diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..9ed584108 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +*.js linguist-vendored +*.mjs linguist-vendored +*.html linguist-documentation +*.css linguist-vendored +*.scss linguist-vendored \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 4f161baa7..770d6cde9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,4 +1,4 @@ -name: Bug Report | 反馈 Bug +name: 🐛 Bug Report description: Create a bug report for MinerU | MinerU 的 Bug 反馈 labels: bug @@ -6,14 +6,41 @@ labels: bug # empty string, Github seems to reject this .yml file. body: + - type: markdown + attributes: + value: | + Thank you for submitting a MinerU 🐛 Bug Report! | 感谢您提交 MinerU 🐛 Bug 反馈! + + - type: checkboxes + attributes: + label: 🔎 Search before asking | 提交之前请先搜索 + description: > + Please search the MinerU [Readme](https://github.com/opendatalab/MinerU), [Issues](https://github.com/opendatalab/MinerU/issues) and [Discussions](https://github.com/opendatalab/MinerU/discussions) to see if a similar bug report already exists. + options: + - label: I have searched the MinerU [Readme](https://github.com/opendatalab/MinerU) and found no similar bug report. + required: true + - label: I have searched the MinerU [Issues](https://github.com/opendatalab/MinerU/issues) and found no similar bug report. + required: true + - label: I have searched the MinerU [Discussions](https://github.com/opendatalab/MinerU/discussions) and found no similar bug report. + required: true + + - type: checkboxes + attributes: + label: 🤖 Consult the online AI assistant for assistance | 在线 AI 助手咨询 + description: > + This [online AI assistant](https://deepwiki.com/opendatalab/MinerU) is specifically trained to help with MinerU and related topics! It's available 24/7 and ready to provide insights. + options: + - label: I have consulted the [online AI assistant](https://deepwiki.com/opendatalab/MinerU) but was unable to obtain a solution to the issue. + required: true - type: textarea id: description attributes: label: Description of the bug | 错误描述 description: | - A clear and concise description of the bug. | 简单描述遇到的问题 - + Provide console output with error messages and/or screenshots of the bug. | 请提供详细报错信息或者截图 + placeholder: | + 💡 ProTip! Include as much information as possible (screenshots, logs, tracebacks etc.) to receive the most helpful response. validations: required: true @@ -24,11 +51,12 @@ body: # Should not word-wrap this description here. description: | - * Explain the steps required to reproduce the bug. | 说明复现此错误所需的步骤。 - * Include required code snippets, example files, etc. | 包含必要的代码片段、示例文件等。 - * Describe what you expected to happen (if not obvious). | 描述你期望发生的情况。 - * If applicable, add screenshots to help explain the problem. | 添加截图以帮助解释问题。 - * Include any other information that could be relevant, for example information about the Python environment. | 包括任何其他可能相关的信息。 + If you have questions about the parsing results or encounter errors during execution: | 如对解析结果有疑问或在运行中出现报错等异常: + * Provide a minimal reproducible example. | 请提供一个最小可复现的demo。 + * The demo should include the complete steps, code, and the PDF file to be parsed. | demo需要包含完整的操作步骤,代码,以及需要解析的PDF文件。 + * When reporting parsing result anomalies and runtime errors, reproducible PDF files are essential. If the document is too large or confidential, you can print the problematic page(s) via the browser and submit the corresponding example file. + * 在反馈解析结果异常和运行时报错时,可复现的PDF文件是必不可少的,如文档过大或涉密,您可通过浏览器打印出出现问题的某一页或某几页再提交相应的示例文件。 + For problems when building or installing MinerU: | 在构建或安装 MinerU 时遇到的问题: * Give the **exact** build/install commands that were run. | 提供**确切**的构建/安装命令。 @@ -44,9 +72,9 @@ body: - type: dropdown - id: os_name + id: os_mode attributes: - label: Operating system | 操作系统 + label: Operating System Mode | 操作系统类型 #multiple: true options: - @@ -56,6 +84,22 @@ body: validations: required: true + - type: textarea + id: os_name_version + attributes: + label: Operating System Version| 操作系统版本 + #multiple: true + description: | + * 如果您使用的是Linux系统,请提供Linux系统的**发行版名称**和**版本号**来帮助开发人员排查问题。 + * If you are using a Linux system, please provide the Linux distribution and version number to help developers troubleshoot the issue. + * 如果您使用的是Windows或MacOS系统,请提供操作系统的**版本号**来帮助开发人员排查问题。 + * If you are using a Windows or MacOS system, please provide the version number of the operating system to help developers troubleshoot the issue. + * 例如:Ubuntu 22.04, CentOS 7.9, MacOS 15.1, Windows 11 + * For example: Ubuntu 22.04, CentOS 7.9, MacOS 15.1, Windows 11. + + validations: + required: true + - type: dropdown id: python_version attributes: @@ -64,23 +108,35 @@ body: # Need quotes around `3.10` otherwise it is treated as a number and shows as `3.1`. options: - + - "3.13" - "3.12" - "3.11" - "3.10" - - "3.9" validations: required: true - type: dropdown id: software_version attributes: - label: Software version | 软件版本 (magic-pdf --version) + label: Software version | 软件版本 (mineru --version) + #multiple: false + options: + - + - "`<2.2.0`" + - "`2.2.x`" + - "`>=2.5`" + validations: + required: true + + - type: dropdown + id: backend_name + attributes: + label: Backend name | 解析后端 #multiple: false options: - - - "0.6.x" - - "0.7.x" - - "0.8.x" + - "vlm" + - "pipeline" validations: required: true @@ -93,5 +149,7 @@ body: - - cpu - cuda + - mps + - npu validations: required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..1a3108c23 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: false +contact_links: + - name: 🙏 Q&A + url: https://github.com/opendatalab/MinerU/discussions/categories/q-a + about: Ask the community for help + - name: 💡 Feature requests and ideas + url: https://github.com/opendatalab/MinerU/discussions/categories/ideas + about: Share ideas for new features + - name: 🙌 Show and tell + url: https://github.com/opendatalab/MinerU/discussions/categories/show-and-tell + about: Show off something you've made \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 8eee8d403..000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -name: Feature request | 功能需求 -about: Suggest an idea for this project | 提出一个有价值的idea -title: '' -labels: enhancement -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** -**您的特性请求是否与某个问题相关?请描述。** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -对存在的问题进行清晰且简洁的描述。例如:我一直很困扰的是 [...] - -**Describe the solution you'd like** -**描述您期望的解决方案** -A clear and concise description of what you want to happen. -清晰且简洁地描述您希望实现的内容。 - -**Describe alternatives you've considered** -**描述您已考虑的替代方案** -A clear and concise description of any alternative solutions or features you've considered. -清晰且简洁地描述您已经考虑过的任何替代解决方案。 - -**Additional context** -**提供更多细节** -Add any other context or screenshots about the feature request here. -请附上任何相关截图、链接或文件,以帮助我们更好地理解您的请求。 \ No newline at end of file diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index e571d6be9..657dfa027 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -18,9 +18,9 @@ jobs: steps: - name: "CLA Assistant" if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' - uses: contributor-assistant/github-action@v2.5.0 + uses: contributor-assistant/github-action@v2.6.1 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # the below token should have repo scope and must be manually added by you in the repository's secret # This token is required only if you have configured to store the signatures in a remote repository/organization PERSONAL_ACCESS_TOKEN: ${{ secrets.RELEASE_TOKEN }} @@ -28,8 +28,8 @@ jobs: path-to-signatures: 'signatures/version1/cla.json' path-to-document: 'https://github.com/opendatalab/MinerU/blob/master/MinerU_CLA.md' # e.g. a CLA or a DCO document # branch should not be protected - branch: 'master' - allowlist: myhloli,dt-yy,Focusshang,renpengli01,icecraft,drunkpig,wangbinDL,qiangqiang199,GDDGCZ518,papayalove,conghui,quyuan,LollipopsAndWine + branch: 'cla' + allowlist: myhloli,dt-yy,Focusshang,renpengli01,icecraft,drunkpig,wangbinDL,qiangqiang199,GDDGCZ518,papayalove,conghui,quyuan,LollipopsAndWine,Sidney233 # the followings are the optional inputs - If the optional inputs are not given, then default values will be taken #remote-organization-name: enter the remote organization name where the signatures should be stored (Default is storing the signatures in the same repository) diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index 92668fd7c..8ab61da29 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -1,7 +1,7 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python -name: mineru +name: mineru-cli-test on: push: branches: @@ -10,59 +10,39 @@ on: paths-ignore: - "cmds/**" - "**.md" - pull_request: - branches: - - "master" - - "dev" - paths-ignore: - - "cmds/**" - - "**.md" - workflow_dispatch: jobs: cli-test: - runs-on: pdf + if: github.repository == 'opendatalab/MinerU' + runs-on: ubuntu-latest timeout-minutes: 240 strategy: fail-fast: true steps: - - name: PDF cli - uses: actions/checkout@v3 - with: - fetch-depth: 2 + - name: PDF cli + uses: actions/checkout@v6 + with: + ref: dev + fetch-depth: 2 - - name: install&test - run: | - source activate mineru - conda env list - pip show coverage - # cd $GITHUB_WORKSPACE && sh tests/retry_env.sh - cd $GITHUB_WORKSPACE && python tests/clean_coverage.py - cd $GITHUB_WORKSPACE && coverage run -m pytest tests/unittest/ --cov=magic_pdf/ --cov-report html --cov-report term-missing - cd $GITHUB_WORKSPACE && python tests/get_coverage.py - cd $GITHUB_WORKSPACE && pytest -m P0 -s -v tests/test_cli/test_cli_sdk.py + - name: install uv + uses: astral-sh/setup-uv@v7 - notify_to_feishu: - if: ${{ always() && !cancelled() && contains(needs.*.result, 'failure') && (github.ref_name == 'master') }} - needs: cli-test - runs-on: pdf - steps: - - name: get_actor - run: | - metion_list="dt-yy" - echo $GITHUB_ACTOR - if [[ $GITHUB_ACTOR == "drunkpig" ]]; then - metion_list="xuchao" - elif [[ $GITHUB_ACTOR == "myhloli" ]]; then - metion_list="zhaoxiaomeng" - elif [[ $GITHUB_ACTOR == "icecraft" ]]; then - metion_list="xurui1" - fi - echo $metion_list - echo "METIONS=$metion_list" >> "$GITHUB_ENV" - echo ${{ env.METIONS }} + - name: install&test + run: | + uv --version + uv venv --python 3.12 + source .venv/bin/activate + uv pip install .[test] + cd $GITHUB_WORKSPACE && python tests/clean_coverage.py + cd $GITHUB_WORKSPACE && coverage run + cd $GITHUB_WORKSPACE && python tests/get_coverage.py - - name: notify - run: | - echo ${{ secrets.USER_ID }} - curl -X POST -H "Content-Type: application/json" -d '{"msg_type":"post","content":{"post":{"zh_cn":{"title":"'${{ github.repository }}' GitHubAction Failed","content":[[{"tag":"text","text":""},{"tag":"a","text":"Please click here for details ","href":"https://github.com/'${{ github.repository }}'/actions/runs/'${GITHUB_RUN_ID}'"},{"tag":"at","user_id":"'${{ secrets.USER_ID }}'"}]]}}}}' ${{ secrets.WEBHOOK_URL }} +# notify_to_feishu: +# if: ${{ always() && !cancelled() && contains(needs.*.result, 'failure')}} +# needs: cli-test +# runs-on: ubuntu-latest +# steps: +# - name: notify +# run: | +# curl -X POST -H "Content-Type: application/json" -d '{"msg_type":"post","content":{"post":{"zh_cn":{"title":"'${{ github.repository }}' GitHubAction Failed","content":[[{"tag":"text","text":""},{"tag":"a","text":"Please click here for details ","href":"https://github.com/'${{ github.repository }}'/actions/runs/'${GITHUB_RUN_ID}'"}]]}}}}' ${{ secrets.FEISHU_WEBHOOK_URL }} diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml deleted file mode 100644 index b6fc09f35..000000000 --- a/.github/workflows/daily.yml +++ /dev/null @@ -1,55 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - -name: mineru -on: - schedule: - - cron: '0 22 * * *' # 每天晚上 10 点执行 -jobs: - cli-test: - runs-on: pdf - timeout-minutes: 240 - strategy: - fail-fast: true - - steps: - - name: PDF cli - uses: actions/checkout@v3 - with: - fetch-depth: 2 - - - name: install&test - run: | - source activate mineru - conda env list - pip show coverage - # cd $GITHUB_WORKSPACE && sh tests/retry_env.sh - cd $GITHUB_WORKSPACE && python tests/clean_coverage.py - cd $GITHUB_WORKSPACE && coverage run -m pytest tests/unittest/ --cov=magic_pdf/ --cov-report html --cov-report term-missing - cd $GITHUB_WORKSPACE && python tests/get_coverage.py - cd $GITHUB_WORKSPACE && pytest -s -v tests/test_cli/test_cli_sdk.py - - notify_to_feishu: - if: ${{ always() && !cancelled() && contains(needs.*.result, 'failure') && (github.ref_name == 'master') }} - needs: cli-test - runs-on: pdf - steps: - - name: get_actor - run: | - metion_list="dt-yy" - echo $GITHUB_ACTOR - if [[ $GITHUB_ACTOR == "drunkpig" ]]; then - metion_list="xuchao" - elif [[ $GITHUB_ACTOR == "myhloli" ]]; then - metion_list="zhaoxiaomeng" - elif [[ $GITHUB_ACTOR == "icecraft" ]]; then - metion_list="xurui1" - fi - echo $metion_list - echo "METIONS=$metion_list" >> "$GITHUB_ENV" - echo ${{ env.METIONS }} - - - name: notify - run: | - echo ${{ secrets.USER_ID }} - curl -X POST -H "Content-Type: application/json" -d '{"msg_type":"post","content":{"post":{"zh_cn":{"title":"'${{ github.repository }}' GitHubAction Failed","content":[[{"tag":"text","text":""},{"tag":"a","text":"Please click here for details ","href":"https://github.com/'${{ github.repository }}'/actions/runs/'${GITHUB_RUN_ID}'"},{"tag":"at","user_id":"'${{ secrets.USER_ID }}'"}]]}}}}' ${{ secrets.WEBHOOK_URL }} diff --git a/.github/workflows/huigui.yml b/.github/workflows/huigui.yml deleted file mode 100644 index 4b4a7905e..000000000 --- a/.github/workflows/huigui.yml +++ /dev/null @@ -1,61 +0,0 @@ -# This workflow will install Python dependencies, run tests and lint with a variety of Python versions -# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python - -name: mineru -on: - push: - branches: - - "master" - - "dev" - paths-ignore: - - "cmds/**" - - "**.md" - workflow_dispatch: -jobs: - cli-test: - runs-on: pdf - timeout-minutes: 240 - strategy: - fail-fast: true - - steps: - - name: PDF cli - uses: actions/checkout@v3 - with: - fetch-depth: 2 - - - name: install&test - run: | - source activate mineru - conda env list - pip show coverage - # cd $GITHUB_WORKSPACE && sh tests/retry_env.sh - cd $GITHUB_WORKSPACE && python tests/clean_coverage.py - cd $GITHUB_WORKSPACE && coverage run -m pytest tests/unittest/ --cov=magic_pdf/ --cov-report html --cov-report term-missing - cd $GITHUB_WORKSPACE && python tests/get_coverage.py - cd $GITHUB_WORKSPACE && pytest -s -v tests/test_cli/test_cli_sdk.py - - notify_to_feishu: - if: ${{ always() && !cancelled() && contains(needs.*.result, 'failure') && (github.ref_name == 'master') }} - needs: cli-test - runs-on: pdf - steps: - - name: get_actor - run: | - metion_list="dt-yy" - echo $GITHUB_ACTOR - if [[ $GITHUB_ACTOR == "drunkpig" ]]; then - metion_list="xuchao" - elif [[ $GITHUB_ACTOR == "myhloli" ]]; then - metion_list="zhaoxiaomeng" - elif [[ $GITHUB_ACTOR == "icecraft" ]]; then - metion_list="xurui1" - fi - echo $metion_list - echo "METIONS=$metion_list" >> "$GITHUB_ENV" - echo ${{ env.METIONS }} - - - name: notify - run: | - echo ${{ secrets.USER_ID }} - curl -X POST -H "Content-Type: application/json" -d '{"msg_type":"post","content":{"post":{"zh_cn":{"title":"'${{ github.repository }}' GitHubAction Failed","content":[[{"tag":"text","text":""},{"tag":"a","text":"Please click here for details ","href":"https://github.com/'${{ github.repository }}'/actions/runs/'${GITHUB_RUN_ID}'"},{"tag":"at","user_id":"'${{ secrets.USER_ID }}'"}]]}}}}' ${{ secrets.WEBHOOK_URL }} diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml new file mode 100644 index 000000000..0c40911b7 --- /dev/null +++ b/.github/workflows/mkdocs.yml @@ -0,0 +1,22 @@ +name: Publish docs via GitHub Pages +on: + push: + branches: + - "master" + - "dev" + +jobs: + build: + name: Deploy docs + runs-on: ubuntu-latest + steps: + - name: Checkout master + uses: actions/checkout@v6 + with: + ref: dev + - name: Deploy docs + uses: mhausenblas/mkdocs-deploy-gh-pages@master + # Or use mhausenblas/mkdocs-deploy-gh-pages@nomaterial to build without the mkdocs-material theme + env: + GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} + REQUIREMENTS: /docs/requirements.txt diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index e1e8f99cb..576af9e2b 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -16,13 +16,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: master fetch-depth: 0 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.10" @@ -32,14 +32,14 @@ jobs: - name: Verify version.py run: | - ls -l magic_pdf/libs/version.py - cat magic_pdf/libs/version.py + ls -l mineru/version.py + cat mineru/version.py - name: Commit changes run: | git config --local user.email "moe@myhloli.com" git config --local user.name "myhloli" - git add magic_pdf/libs/version.py + git add mineru/version.py if git diff-index --quiet HEAD; then echo "No changes to commit" else @@ -54,46 +54,63 @@ jobs: run: | git push origin HEAD:master - build: + check-install: needs: [ update-version ] runs-on: ubuntu-latest strategy: fail-fast: false matrix: - python-version: ["3.10"] + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: master fetch-depth: 0 - name: Verify version.py run: | - ls -l magic_pdf/libs/version.py - cat magic_pdf/libs/version.py + ls -l mineru/version.py + cat mineru/version.py - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - - name: Install dependencies + - name: Install mineru run: | python -m pip install --upgrade pip - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + pip install -e .[core] + + build: + needs: [ check-install ] + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: [ "3.10"] + + steps: + + - name: Checkout code + uses: actions/checkout@v6 + with: + ref: master + fetch-depth: 0 - name: Install wheel run: | python -m pip install wheel + pip install build - name: Build wheel run: | - python setup.py bdist_wheel + python -m build --wheel - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: wheel-file path: dist/*.whl @@ -104,10 +121,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Download artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: name: wheel-file path: dist @@ -122,5 +139,6 @@ jobs: - name: Publish distribution to PyPI run: | - pip install twine + pip install -U twine id keyring packaging readme-renderer requests requests-toolbelt rfc3986 rich urllib3 + twine check dist/* twine upload dist/* -u __token__ -p ${{ secrets.PYPI_TOKEN }} diff --git a/.gitignore b/.gitignore index b6ab45380..79be52ea7 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,12 @@ debug/ *.ipynb .idea +# Python build artifacts +*.egg-info/ +build/ +dist/ +*.egg + # vscode history .history @@ -48,3 +54,6 @@ debug_utils/ # sphinx docs _build/ + + +output/ \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index fc7446dfd..000000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,47 +0,0 @@ -repos: - - repo: https://github.com/PyCQA/flake8 - rev: 5.0.4 - hooks: - - id: flake8 - args: ["--max-line-length=150", "--ignore=E131,E125,W503,W504,E203"] - - repo: https://github.com/PyCQA/isort - rev: 5.11.5 - hooks: - - id: isort - - repo: https://github.com/pre-commit/mirrors-yapf - rev: v0.32.0 - hooks: - - id: yapf - args: ["--style={based_on_style: google, column_limit: 150, indent_width: 4}"] - - repo: https://github.com/codespell-project/codespell - rev: v2.2.1 - hooks: - - id: codespell - args: ['--skip', '*.json'] - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 - hooks: - - id: trailing-whitespace - - id: check-yaml - - id: end-of-file-fixer - - id: requirements-txt-fixer - - id: double-quote-string-fixer - - id: check-merge-conflict - - id: fix-encoding-pragma - args: ["--remove"] - - id: mixed-line-ending - args: ["--fix=lf"] - - repo: https://github.com/executablebooks/mdformat - rev: 0.7.9 - hooks: - - id: mdformat - args: ["--number", "--table-width", "200"] - additional_dependencies: - - mdformat-openmmlab - - mdformat_frontmatter - - linkify-it-py - - repo: https://github.com/myint/docformatter - rev: v1.3.1 - hooks: - - id: docformatter - args: ["--in-place", "--wrap-descriptions", "119"] diff --git a/.readthedocs.yaml b/.readthedocs.yaml deleted file mode 100644 index 974d040f3..000000000 --- a/.readthedocs.yaml +++ /dev/null @@ -1,16 +0,0 @@ -version: 2 - -build: - os: ubuntu-22.04 - tools: - python: "3.10" - -formats: - - epub - -python: - install: - - requirements: docs/zh_cn/requirements.txt - -sphinx: - configuration: docs/zh_cn/conf.py diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 786bab7eb..000000000 --- a/Dockerfile +++ /dev/null @@ -1,51 +0,0 @@ -# Use the official Ubuntu base image -FROM ubuntu:22.04 - -# Set environment variables to non-interactive to avoid prompts during installation -ENV DEBIAN_FRONTEND=noninteractive - -# Update the package list and install necessary packages -RUN apt-get update && \ - apt-get install -y \ - software-properties-common && \ - add-apt-repository ppa:deadsnakes/ppa && \ - apt-get update && \ - apt-get install -y \ - python3.10 \ - python3.10-venv \ - python3.10-distutils \ - python3-pip \ - wget \ - git \ - libgl1 \ - libglib2.0-0 \ - && rm -rf /var/lib/apt/lists/* - -# Set Python 3.10 as the default python3 -RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 - -# Create a virtual environment for MinerU -RUN python3 -m venv /opt/mineru_venv - -# Activate the virtual environment and install necessary Python packages -RUN /bin/bash -c "source /opt/mineru_venv/bin/activate && \ - pip3 install --upgrade pip && \ - wget https://gitee.com/myhloli/MinerU/raw/master/requirements-docker.txt && \ - pip3 install -r requirements-docker.txt --extra-index-url https://wheels.myhloli.com -i https://pypi.tuna.tsinghua.edu.cn/simple && \ - pip3 install paddlepaddle-gpu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/" - -# Copy the configuration file template and install magic-pdf latest -RUN /bin/bash -c "wget https://gitee.com/myhloli/MinerU/raw/master/magic-pdf.template.json && \ - cp magic-pdf.template.json /root/magic-pdf.json && \ - source /opt/mineru_venv/bin/activate && \ - pip3 install -U magic-pdf" - -# Download models and update the configuration file -RUN /bin/bash -c "pip3 install modelscope && \ - wget https://gitee.com/myhloli/MinerU/raw/master/docs/download_models.py && \ - python3 download_models.py && \ - sed -i 's|/tmp/models|/root/.cache/modelscope/hub/opendatalab/PDF-Extract-Kit/models|g' /root/magic-pdf.json && \ - sed -i 's|cpu|cuda|g' /root/magic-pdf.json" - -# Set the entry point to activate the virtual environment and run the command line tool -ENTRYPOINT ["/bin/bash", "-c", "source /opt/mineru_venv/bin/activate && exec \"$@\"", "--"] diff --git a/LICENSE.md b/LICENSE.md index fe6b9036b..6496f9530 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,662 +1,57 @@ - GNU AFFERO GENERAL PUBLIC LICENSE - Version 3, 19 November 2007 +## MinerU Open Source License - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. +MinerU is licensed under Apache License 2.0 and is subject to the additional terms below. Except to the extent expressly modified or supplemented by these additional terms, your other rights and obligations are governed by Apache License 2.0. - Preamble +**1. Commercial License and Thresholds** - The GNU Affero General Public License is a free, copyleft license for -software and other kinds of works, specifically designed to ensure -cooperation with the community in the case of network server software. +MinerU may be used for commercial purposes without a separate commercial license. However, if you and your Affiliates, on a consolidated basis, meet either of the following thresholds, you must obtain a separate commercial license from [MinerU Team] before continuing such use: - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -our General Public Licenses are intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. +a. monthly active users (MAU) exceed 100 million; or +b. total monthly revenue exceeds USD 20 million. - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. +**2. Online Service Attribution Obligation** - Developers that use our General Public Licenses protect your rights -with two steps: (1) assert copyright on the software, and (2) offer -you this License which gives you legal permission to copy, distribute -and/or modify the software. +If you provide online services to third parties based on MinerU, you must clearly and prominently indicate, in the relevant product or service interface or in publicly available documentation, that MinerU is used. - A secondary benefit of defending all users' freedom is that -improvements made in alternate versions of the program, if they -receive widespread use, become available for other developers to -incorporate. Many developers of free software are heartened and -encouraged by the resulting cooperation. However, in the case of -software used on network servers, this result may fail to come about. -The GNU General Public License permits making a modified version and -letting the public access it on a server without ever releasing its -source code to the public. +**3. Termination** - The GNU Affero General Public License is designed specifically to -ensure that, in such cases, the modified source code becomes available -to the community. It requires the operator of a network server to -provide the source code of the modified version running there to the -users of that server. Therefore, public use of a modified version, on -a publicly accessible server, gives the public access to the source -code of the modified version. +Where a separate commercial license is required under Section 1 but is not obtained before continuing such use, or where the attribution obligation under Section 2 is not complied with, this License and all rights granted under this License will terminate automatically, and no further notice from the Licensor is required. - An older license, called the Affero General Public License and -published by Affero, was designed to accomplish similar goals. This is -a different license, not a version of the Affero GPL, but Affero has -released a new version of the Affero GPL which permits relicensing under -this license. +**4. Definitions** - The precise terms and conditions for copying, distribution and -modification follow. +In these additional terms, “Affiliates” means any legal entity that directly or indirectly controls, is controlled by, or is under common control with you. +“Control” means the power to direct the management and operating decisions of an entity, whether through equity ownership, voting rights, contractual arrangements, or otherwise. - TERMS AND CONDITIONS +The full text of Apache License 2.0 is available at https://www.apache.org/licenses/LICENSE-2.0 . - 0. Definitions. +© 2026 [MinerU Team] - "This License" refers to version 3 of the GNU Affero General Public License. +--- - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. +## MinerU 开源许可协议 - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. +MinerU 依据 Apache License 2.0 进行许可,并受以下附加条款约束。除本附加条款明确修改或补充之处外,您的其他权利与义务均适用 Apache License 2.0 的规定。 - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. +**1. 商业许可与门槛** - A "covered work" means either the unmodified Program or a work based -on the Program. +MinerU 可在无需另行取得商业许可的情况下用于商业用途。但是,如果您及您的关联方按合并口径计算,满足以下任一条件,则应当在继续该等使用前,从 [MinerU Team] 处取得单独的商业许可: - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. +a. 月活跃用户数(MAU)超过 1 亿;或 +b. 月总收入超过 2000 万美元。 - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. +**2. 在线服务标识义务** - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. +如果您基于 MinerU 向第三方提供在线服务,您必须在相关产品或服务的操作界面,或对外公开文档的显著位置,清晰明确地标明其使用了 MinerU。 - 1. Source Code. +**3. 协议终止** - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. +凡属于依据第 1 条应当取得单独商业许可而未在继续使用前取得的情形,或者未履行第 2 条所述标识义务的,本许可及本许可项下授予您的全部权利将自动终止,且许可方无须另行通知。 - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. +**4. 定义** - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. +在本附加条款中,“关联方”是指直接或间接控制您、受您控制,或与您处于共同控制之下的任何法律实体。 +“控制”是指通过股权、表决权、合同安排或其他方式,直接或间接决定某一实体管理和经营事项的能力。 - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Remote Network Interaction; Use with the GNU General Public License. - - Notwithstanding any other provision of this License, if you modify the -Program, your modified version must prominently offer all users -interacting with it remotely through a computer network (if your version -supports such interaction) an opportunity to receive the Corresponding -Source of your version by providing access to the Corresponding Source -from a network server at no charge, through some standard or customary -means of facilitating copying of software. This Corresponding Source -shall include the Corresponding Source for any work covered by version 3 -of the GNU General Public License that is incorporated pursuant to the -following paragraph. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the work with which it is combined will remain governed by version -3 of the GNU General Public License. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU Affero General Public License from time to time. Such new versions -will be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU Affero General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU Affero General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU Affero General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published - by the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If your software can interact with users remotely through a computer -network, you should also make sure that it provides a way for users to -get its source. For example, if your program is a web application, its -interface could display a "Source" link that leads users to an archive -of the code. There are many ways you could offer source, and different -solutions will be better for different programs; see section 13 for the -specific requirements. - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU AGPL, see -. +Apache License 2.0 全文见:https://www.apache.org/licenses/LICENSE-2.0 。 +© 2026 [MinerU Team] diff --git a/README.md b/README.md index cea8f0601..b98ae7634 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

- +

@@ -10,15 +10,19 @@ [![forks](https://img.shields.io/github/forks/opendatalab/MinerU.svg)](https://github.com/opendatalab/MinerU) [![open issues](https://img.shields.io/github/issues-raw/opendatalab/MinerU)](https://github.com/opendatalab/MinerU/issues) [![issue resolution](https://img.shields.io/github/issues-closed-raw/opendatalab/MinerU)](https://github.com/opendatalab/MinerU/issues) -[![PyPI version](https://badge.fury.io/py/magic-pdf.svg)](https://badge.fury.io/py/magic-pdf) -[![Downloads](https://static.pepy.tech/badge/magic-pdf)](https://pepy.tech/project/magic-pdf) -[![Downloads](https://static.pepy.tech/badge/magic-pdf/month)](https://pepy.tech/project/magic-pdf) - -[![OpenDataLab](https://img.shields.io/badge/Demo_on_OpenDataLab-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSI+CiA8ZGVmcz4KICA8bGluZWFyR3JhZGllbnQgeTI9IjAuNTMzNjciIHgyPSIxLjAwMDQiIHkxPSIwLjI5MjE5IiB4MT0iLTAuMTEyNjgiIGlkPSJhIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iIzE1NDNGRSIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjOEM0NkZGIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxsaW5lYXJHcmFkaWVudCB5Mj0iMC41OTc1NyIgeDI9IjEuMDExMzciIHkxPSIwLjExMDIzIiB4MT0iLTAuMDg0NzQiIGlkPSJiIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iIzE1NDNGRSIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjOEM0NkZGIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogPC9kZWZzPgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxwYXRoIGlkPSJzdmdfMSIgZmlsbD0idXJsKCNhKSIgZD0ibTEuNjIzLDEyLjA2N2EwLjQ4NCwwLjQ4NCAwIDAgMSAwLjA3LC0wLjM4NGw1LjMxLC03Ljg5NWMwLjA2OCwtMC4xIDAuMTcsLTAuMTcyIDAuMjg4LC0wLjJsMTQuMzc3LC0zLjQ3NGEwLjQ4NCwwLjQ4NCAwIDAgMSAwLjU4NCwwLjM1N2wzLjY2MiwxNS4xNTJjMS40NzcsNi4xMTQgLTIuMjgxLDEyLjI2NyAtOC4zOTQsMTMuNzQ1Yy02LjExNCwxLjQ3NyAtMTIuMjY3LC0yLjI4MSAtMTMuNzQ1LC04LjM5NWwtMi4xNTIsLTguOTA2eiIgb3BhY2l0eT0iMC40Ii8+CiAgPHBhdGggaWQ9InN2Z18yIiBmaWxsPSJ1cmwoI2IpIiBkPSJtNS44MjYsOC42NzNjMCwtMC4xMzYgMC4wNTcsLTAuMjY2IDAuMTU3LC0wLjM1OGw3LjAxNywtNi40MjVhMC40ODQsMC40ODQgMCAwIDEgMC4zMjcsLTAuMTI3bDE0Ljc5LDBjMC4yNjgsMCAwLjQ4NSwwLjIxNiAwLjQ4NSwwLjQ4NGwwLDE1LjU4OWMwLDYuMjkgLTUuMDk5LDExLjM4OCAtMTEuMzg4LDExLjM4OGMtNi4yOSwwIC0xMS4zODgsLTUuMDk5IC0xMS4zODgsLTExLjM4OGwwLC05LjE2M3oiLz4KICA8cGF0aCBpZD0ic3ZnXzMiIGZpbGw9IiM1RDc2RkYiIGQ9Im0xMi4zMzEsOC43NTNsLTYuMzgzLC0wLjM5OGw3LjEyMiwtNi41MmwwLjI5OSw1Ljg5MmEwLjk3OCwwLjk3OCAwIDAgMSAtMS4wMzgsMS4wMjZ6Ii8+CiAgPHBhdGggaWQ9InN2Z180IiBmaWxsPSIjMDAyOEZEIiBkPSJtMjAuNDE2LDE1LjAyMmwwLDEuNzExYTIuNDA0LDIuNDA0IDAgMCAxIC00LjgwOCwwbDAsLTQuMjc4bC0yLjgxLDBsMCw0LjY4NmE1LjIxNSw1LjIxNSAwIDEgMCAxMC40MywwbDAsLTQuNjg2bDAsMi41NjdsLTIuODEyLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDxwYXRoIGlkPSJzdmdfNSIgZmlsbD0iIzAwMjhGRCIgZD0ibTIzLjIyOCwxMy44ODFsMS4xNCwwbDAsMS4xNDFsLTEuMTQsMGwwLC0xLjE0bDAsLTAuMDAxem0tMi44MTIsLTAuNjkybDEuODM0LDBsMCwxLjgzM2wtMS44MzQsMGwwLC0xLjgzMmwwLC0wLjAwMXptMS44MzQsLTAuOTc5bDAuOTc4LDBsMCwwLjk3OWwtMC45NzgsMGwwLC0wLjk3OGwwLC0wLjAwMXptMS41NDgsLTEuNjI5bDAuNjExLDBsMCwwLjYxMWwtMC42MTEsMGwwLC0wLjYxMXoiLz4KICA8cGF0aCBpZD0ic3ZnXzYiIGZpbGw9IiNmZmYiIGQ9Im0yMC4wODYsMTQuOTEybDAsMS43MTFhMi40MDQsMi40MDQgMCAxIDEgLTQuODA3LDBsMCwtNC4yNzhsLTIuODEyLDBsMCw0LjY4NmE1LjIxNSw1LjIxNSAwIDAgMCAxMC40MywwbDAsLTQuNjg2bDAsMi41NjdsLTIuODEsMGwtMC4wMDEsMHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbC1ydWxlPSJldmVub2RkIi8+CiAgPHBhdGggaWQ9InN2Z183IiBmaWxsPSIjZmZmIiBkPSJtMjIuODk4LDEzLjc3MWwxLjE0LDBsMCwxLjE0MWwtMS4xNCwwbDAsLTEuMTRsMCwtMC4wMDF6bS0yLjgxMiwtMC42OTJsMS44MzQsMGwwLDEuODMzbC0xLjgzNCwwbDAsLTEuODMybDAsLTAuMDAxem0xLjgzNCwtMC45NzlsMC45NzgsMGwwLDAuOTc5bC0wLjk3OCwwbDAsLTAuOTc5em0xLjU0OCwtMS42MjlsMC42MTEsMGwwLDAuNjExbC0wLjYxLDBsMCwtMC42MWwtMC4wMDEsLTAuMDAxeiIvPgogPC9nPgo8L3N2Zz4=&labelColor=white)](https://opendatalab.com/OpenSourceTools/Extractor/PDF) +[![PyPI version](https://img.shields.io/pypi/v/mineru)](https://pypi.org/project/mineru/) +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mineru)](https://pypi.org/project/mineru/) +[![Downloads](https://static.pepy.tech/badge/mineru)](https://pepy.tech/project/mineru) +[![Downloads](https://static.pepy.tech/badge/mineru/month)](https://pepy.tech/project/mineru) +[![OpenDataLab](https://img.shields.io/badge/webapp_on_mineru.net-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM0IiBoZWlnaHQ9IjEzNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTIyLDljMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Im0xMjIsOWMwLDUtNCw5LTksOXMtOS00LTktOSw0LTksOS05LDksNCw5LDl6IiBmaWxsPSIjMDEwMTAxIi8+PHBhdGggZD0ibTkxLDE4YzAsNS00LDktOSw5cy05LTQtOS05LDQtOSw5LTksOSw0LDksOXoiIGZpbGw9InVybCgjYikiLz48cGF0aCBkPSJtOTEsMThjMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0iIzAxMDEwMSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0idXJsKCNjKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0iIzAxMDEwMSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=&labelColor=white)](https://mineru.net/OpenSourceTools/Extractor?source=github) [![HuggingFace](https://img.shields.io/badge/Demo_on_HuggingFace-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABYCAMAAACkl9t/AAAAk1BMVEVHcEz/nQv/nQv/nQr/nQv/nQr/nQv/nQv/nQr/wRf/txT/pg7/yRr/rBD/zRz/ngv/oAz/zhz/nwv/txT/ngv/0B3+zBz/nQv/0h7/wxn/vRb/thXkuiT/rxH/pxD/ogzcqyf/nQvTlSz/czCxky7/SjifdjT/Mj3+Mj3wMj15aTnDNz+DSD9RTUBsP0FRO0Q6O0WyIxEIAAAAGHRSTlMADB8zSWF3krDDw8TJ1NbX5efv8ff9/fxKDJ9uAAAGKklEQVR42u2Z63qjOAyGC4RwCOfB2JAGqrSb2WnTw/1f3UaWcSGYNKTdf/P+mOkTrE+yJBulvfvLT2A5ruenaVHyIks33npl/6C4s/ZLAM45SOi/1FtZPyFur1OYofBX3w7d54Bxm+E8db+nDr12ttmESZ4zludJEG5S7TO72YPlKZFyE+YCYUJTBZsMiNS5Sd7NlDmKM2Eg2JQg8awbglfqgbhArjxkS7dgp2RH6hc9AMLdZYUtZN5DJr4molC8BfKrEkPKEnEVjLbgW1fLy77ZVOJagoIcLIl+IxaQZGjiX597HopF5CkaXVMDO9Pyix3AFV3kw4lQLCbHuMovz8FallbcQIJ5Ta0vks9RnolbCK84BtjKRS5uA43hYoZcOBGIG2Epbv6CvFVQ8m8loh66WNySsnN7htL58LNp+NXT8/PhXiBXPMjLSxtwp8W9f/1AngRierBkA+kk/IpUSOeKByzn8y3kAAAfh//0oXgV4roHm/kz4E2z//zRc3/lgwBzbM2mJxQEa5pqgX7d1L0htrhx7LKxOZlKbwcAWyEOWqYSI8YPtgDQVjpB5nvaHaSnBaQSD6hweDi8PosxD6/PT09YY3xQA7LTCTKfYX+QHpA0GCcqmEHvr/cyfKQTEuwgbs2kPxJEB0iNjfJcCTPyocx+A0griHSmADiC91oNGVwJ69RudYe65vJmoqfpul0lrqXadW0jFKH5BKwAeCq+Den7s+3zfRJzA61/Uj/9H/VzLKTx9jFPPdXeeP+L7WEvDLAKAIoF8bPTKT0+TM7W8ePj3Rz/Yn3kOAp2f1Kf0Weony7pn/cPydvhQYV+eFOfmOu7VB/ViPe34/EN3RFHY/yRuT8ddCtMPH/McBAT5s+vRde/gf2c/sPsjLK+m5IBQF5tO+h2tTlBGnP6693JdsvofjOPnnEHkh2TnV/X1fBl9S5zrwuwF8NFrAVJVwCAPTe8gaJlomqlp0pv4Pjn98tJ/t/fL++6unpR1YGC2n/KCoa0tTLoKiEeUPDl94nj+5/Tv3/eT5vBQ60X1S0oZr+IWRR8Ldhu7AlLjPISlJcO9vrFotky9SpzDequlwEir5beYAc0R7D9KS1DXva0jhYRDXoExPdc6yw5GShkZXe9QdO/uOvHofxjrV/TNS6iMJS+4TcSTgk9n5agJdBQbB//IfF/HpvPt3Tbi7b6I6K0R72p6ajryEJrENW2bbeVUGjfgoals4L443c7BEE4mJO2SpbRngxQrAKRudRzGQ8jVOL2qDVjjI8K1gc3TIJ5KiFZ1q+gdsARPB4NQS4AjwVSt72DSoXNyOWUrU5mQ9nRYyjp89Xo7oRI6Bga9QNT1mQ/ptaJq5T/7WcgAZywR/XlPGAUDdet3LE+qS0TI+g+aJU8MIqjo0Kx8Ly+maxLjJmjQ18rA0YCkxLQbUZP1WqdmyQGJLUm7VnQFqodmXSqmRrdVpqdzk5LvmvgtEcW8PMGdaS23EOWyDVbACZzUJPaqMbjDxpA3Qrgl0AikimGDbqmyT8P8NOYiqrldF8rX+YN7TopX4UoHuSCYY7cgX4gHwclQKl1zhx0THf+tCAUValzjI7Wg9EhptrkIcfIJjA94evOn8B2eHaVzvBrnl2ig0So6hvPaz0IGcOvTHvUIlE2+prqAxLSQxZlU2stql1NqCCLdIiIN/i1DBEHUoElM9dBravbiAnKqgpi4IBkw+utSPIoBijDXJipSVV7MpOEJUAc5Qmm3BnUN+w3hteEieYKfRZSIUcXKMVf0u5wD4EwsUNVvZOtUT7A2GkffHjByWpHqvRBYrTV72a6j8zZ6W0DTE86Hn04bmyWX3Ri9WH7ZU6Q7h+ZHo0nHUAcsQvVhXRDZHChwiyi/hnPuOsSEF6Exk3o6Y9DT1eZ+6cASXk2Y9k+6EOQMDGm6WBK10wOQJCBwren86cPPWUcRAnTVjGcU1LBgs9FURiX/e6479yZcLwCBmTxiawEwrOcleuu12t3tbLv/N4RLYIBhYexm7Fcn4OJcn0+zc+s8/VfPeddZHAGN6TT8eGczHdR/Gts1/MzDkThr23zqrVfAMFT33Nx1RJsx1k5zuWILLnG/vsH+Fv5D4NTVcp1Gzo8AAAAAElFTkSuQmCC&labelColor=white)](https://huggingface.co/spaces/opendatalab/MinerU) [![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/OpenDataLab/MinerU) -[![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/gist/papayalove/b5f4913389e7ff9883c6b687de156e78/mineru_demo.ipynb) -[![Paper](https://img.shields.io/badge/Paper-arXiv-green)](https://arxiv.org/pdf/2409.18839?) +[![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/gist/myhloli/a3cb16570ab3cfeadf9d8f0ac91b4fca/mineru_demo.ipynb) +[![arXiv](https://img.shields.io/badge/MinerU-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2409.18839) +[![arXiv](https://img.shields.io/badge/MinerU2.5-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2509.22186) +[![arXiv](https://img.shields.io/badge/MinerU2.5%20Pro-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2604.04771) +[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/opendatalab/MinerU) + opendatalab%2FMinerU | Trendshift @@ -29,363 +33,285 @@

-PDF-Extract-Kit: High-Quality PDF Extraction Toolkit🔥🔥🔥 +🚀Access MinerU Now→✅ Zero-Install Web Version ✅ Full-Featured Desktop Client ✅ Instant API Access; Skip deployment headaches – get all product formats in one click. Developers, dive in!

- 👋 join us on Discord and WeChat + 👋 join us on Discord and WeChat

-# Changelog -- 2024/10/31 0.9.0 released. This is a major new version with extensive code refactoring, addressing numerous issues, improving performance, reducing hardware requirements, and enhancing usability: - - Refactored the sorting module code to use [layoutreader](https://github.com/ppaanngggg/layoutreader) for reading order sorting, ensuring high accuracy in various layouts. - - Refactored the paragraph concatenation module to achieve good results in cross-column, cross-page, cross-figure, and cross-table scenarios. - - Refactored the list and table of contents recognition functions, significantly improving the accuracy of list blocks and table of contents blocks, as well as the parsing of corresponding text paragraphs. - - Refactored the matching logic for figures, tables, and descriptive text, greatly enhancing the accuracy of matching captions and footnotes to figures and tables, and reducing the loss rate of descriptive text to zero. - - Added multi-language support for OCR, supporting detection and recognition of 84 languages.For the list of supported languages, see [OCR Language Support List](https://paddlepaddle.github.io/PaddleOCR/latest/en/ppocr/blog/multi_languages.html#5-support-languages-and-abbreviations). - - Added memory recycling logic and other memory optimization measures, significantly reducing memory usage. The memory requirement for enabling all acceleration features except table acceleration (layout/formula/OCR) has been reduced from 16GB to 8GB, and the memory requirement for enabling all acceleration features has been reduced from 24GB to 10GB. - - Optimized configuration file feature switches, adding an independent formula detection switch to significantly improve speed and parsing results when formula detection is not needed. - - Integrated [PDF-Extract-Kit 1.0](https://github.com/opendatalab/PDF-Extract-Kit): - - Added the self-developed `doclayout_yolo` model, which speeds up processing by more than 10 times compared to the original solution while maintaining similar parsing effects, and can be freely switched with `layoutlmv3` via the configuration file. - - Upgraded formula parsing to `unimernet 0.2.1`, improving formula parsing accuracy while significantly reducing memory usage. -- 2024/09/27 Version 0.8.1 released, Fixed some bugs, and providing a [localized deployment version](projects/web_demo/README.md) of the [online demo](https://opendatalab.com/OpenSourceTools/Extractor/PDF/) and the [front-end interface](projects/web/README.md). -- 2024/09/09: Version 0.8.0 released, supporting fast deployment with Dockerfile, and launching demos on Huggingface and Modelscope. -- 2024/08/30: Version 0.7.1 released, add paddle tablemaster table recognition option -- 2024/08/09: Version 0.7.0b1 released, simplified installation process, added table recognition functionality -- 2024/08/01: Version 0.6.2b1 released, optimized dependency conflict issues and installation documentation -- 2024/07/05: Initial open-source release - - - -
-

Table of Contents

-
    -
  1. - MinerU - -
  2. -
  3. TODO
  4. -
  5. Known Issues
  6. -
  7. FAQ
  8. -
  9. All Thanks To Our Contributors
  10. -
  11. License Information
  12. -
  13. Acknowledgments
  14. -
  15. Citation
  16. -
  17. Star History
  18. -
  19. Magic-doc
  20. -
  21. Magic-html
  22. -
  23. Links
  24. -
+ +
+MinerU — High-accuracy document parsing engine for LLM · RAG · Agent workflows +Converts PDF · DOCX · PPTX · XLSX · Images · Web pages into structured Markdown / JSON · VLM+OCR dual engine · 109 languages
+MCP Server · LangChain / Dify / FastGPT native integration · 10+ domestic AI chip support + +**🔍 Core Parsing Capabilities** + +- Native support for `DOCX`, `PPTX`, and `XLSX` parsing +- Formulas → LaTeX · Tables → HTML, accurate layout reconstruction +- Supports scanned docs, handwriting, multi-column layouts, cross-page table merging +- Output follows human reading order with automatic header/footer removal +- VLM + OCR dual engine, 109-language OCR recognition + +**🔌 Integration** + +| Use Case | Solution | +|----------|----------| +| AI Coding Tools | MCP Server — Cursor · Claude Desktop · Windsurf | +| RAG Frameworks | LangChain · LlamaIndex · RAGFlow · RAG-Anything · Flowise · Dify · FastGPT | +| Development | Python / Go / TypeScript SDK · CLI · REST API · Docker | +| No-Code | mineru.net online · Gradio WebUI · Desktop client | + +**🖥️ Deployment (Private · Fully Offline)** + +| Inference Backend | Best For | +|------------------|---------| +| pipeline | Fast & stable, no hallucination, runs on CPU or GPU | +| vlm-engine | High accuracy, supports vLLM / LMDeploy / mlx ecosystem | +| hybrid-engine | High accuracy, native text extraction, low hallucination | + +Domestic AI chips: Ascend · Cambricon · Enflame · MetaX · Moore Threads · Kunlunxin · Iluvatar · Hygon · Biren · T-Head
+# Changelog + +- 2026/04/18 3.1.0 Released + + This release focuses on **licensing openness, parsing accuracy, and full-format native support**. The main updates include: + + - License upgrade + - MinerU has officially moved from `AGPLv3` to the [MinerU Open Source License](https://github.com/opendatalab/MinerU/blob/master/LICENSE.md), a custom license based on `Apache 2.0`. + - This change significantly reduces adoption friction for both community users and commercial deployments, making MinerU easier to integrate into real-world workflows. + - VLM main model upgrade + - The primary VLM model has been upgraded to `MinerU2.5-Pro-2604-1.2B`, bringing overall parsing accuracy to a state-of-the-art level. + - The new model now supports image and chart parsing, truncated paragraph merging, cross-page table merging, and image recognition inside tables, further strengthening performance on complex document layouts. + - Full-format native parsing support + - Native parsing support has now been extended to `PPTX` and `XLSX`. + - MinerU now fully supports parsing across images, `PDF`, `DOCX`, `PPTX`, and `XLSX`, providing a more complete multi-format document understanding workflow. + + With the 3.1.0 release, MinerU becomes more open, more accurate, and easier to adopt in production. The new license lowers the barrier for both community and commercial use, `MinerU2.5-Pro-2604-1.2B` improves parsing quality on complex content, and native `PPTX` / `XLSX` support completes end-to-end coverage of mainstream document formats. + +- 2026/03/29 3.0.0 Released + + This release delivers a systematic upgrade centered on **parsing capability, system architecture, and engineering usability**. The main updates include: + + - Native `DOCX` parsing + - Official support for native `DOCX` parsing, delivering high-precision results without hallucinations. + - Compared with the traditional workflow of first converting `DOCX` to `PDF` and then parsing it, end-to-end speed is improved by tens of times, making it better suited for scenarios with high requirements for both accuracy and throughput. + - `pipeline` backend upgrade + - The `pipeline` backend achieves a score of `86.2` on OmniDocBench (v1.5), surpassing the accuracy of the previous-generation mainstream VLM `MinerU2.0-2505-0.9B`. + - Added support for parsing images/formulas inside tables, seal text recognition, vertical text support, and interline formula numbering recognition, continuously improving parsing quality for complex document scenarios. + - While maintaining high accuracy, it keeps resource usage extremely low and continues to support inference in pure CPU environments. + - `API / CLI / Router` orchestration upgrade + - `mineru` now runs as an orchestration client based on `mineru-api`; when `--api-url` is not provided, it will automatically start a local temporary service. + - `mineru-api` adds a new asynchronous task endpoint `POST /tasks`, supporting task submission, status querying, and result retrieval; meanwhile, it retains the synchronous parsing endpoint `POST /file_parse` for compatibility with legacy plugins. + - Added `mineru-router`, designed for unified entry deployment and task routing across multiple services and multiple GPUs; its interfaces are fully compatible with `mineru-api` and support automatic task load balancing. + - Deployment and usability improvements + - Resolved compatibility issues with `torch >= 2.8`; the base image has been upgraded to `vllm0.11.2 + torch2.9.0`, unifying installation paths across different Compute Capabilities. + - Optimized the parsing pipeline with a sliding-window mechanism, significantly reducing peak memory usage in long-document scenarios, so documents with tens of thousands of pages no longer need to be split manually. + - Batch inference in `pipeline` now supports streaming writes to disk, allowing completed parsing results to be written out in time and further improving the experience for long-running tasks. + - Completed thread-safety optimization and now fully supports multi-threaded concurrent inference; together with `mineru-router`, this enables one-click multi-GPU deployment and makes it easy to build high-concurrency, high-throughput parsing systems. + - Completely removed the use of two AGPLv3 models (`doclayoutyolo` and `mfd_yolov8`) and one CC-BY-NC-SA 4.0 model (`layoutreader`). + + This update is not just a set of feature enhancements, but a key leap forward in MinerU's overall system capabilities. We specifically addressed the peak memory usage issue in long-document parsing. Through optimizations such as sliding windows and streaming writes to disk, ultra-long document parsing has moved from “requiring manual splitting and careful handling” to being “stable, scalable, and ready for production workloads.” At the same time, we completed thread-safety optimization and fully enabled multi-threaded concurrent inference, further improving single-machine resource utilization and runtime stability under high-concurrency workloads. On top of this, with `mineru-router` and the new `API / CLI` orchestration framework, MinerU now supports one-click multi-GPU deployment, unified access across multiple services, and automatic task load balancing, significantly reducing the difficulty of large-scale deployment. As a result, MinerU is evolving from a standalone data production tool into a large-scale document parsing foundation for high-concurrency and high-throughput scenarios, providing enterprise-grade document data processing with infrastructure that is more stable, more efficient, and easier to scale. + +> 📝 View the complete [Changelog](https://opendatalab.github.io/MinerU/reference/changelog/) for more historical version information + # MinerU ## Project Introduction -MinerU is a tool that converts PDFs into machine-readable formats (e.g., markdown, JSON), allowing for easy extraction into any format. +MinerU is a document parsing tool that converts `PDF`, image, `DOCX`, `PPTX`, and `XLSX` inputs into machine-readable formats such as Markdown and JSON for downstream retrieval, extraction, and processing. MinerU was born during the pre-training process of [InternLM](https://github.com/InternLM/InternLM). We focus on solving symbol conversion issues in scientific literature and hope to contribute to technological development in the era of large models. -Compared to well-known commercial products, MinerU is still young. If you encounter any issues or if the results are not as expected, please submit an issue on [issue](https://github.com/opendatalab/MinerU/issues) and **attach the relevant PDF**. +Compared to well-known commercial products, MinerU is still young. If you encounter any issues or if the results are not as expected, please submit an issue on [issue](https://github.com/opendatalab/MinerU/issues) and **attach the relevant document or sample file**. https://github.com/user-attachments/assets/4bea02c9-6d54-4cd6-97ed-dff14340982c ## Key Features +- Support `PDF`, image, `DOCX`, `PPTX`, and `XLSX` inputs. - Remove headers, footers, footnotes, page numbers, etc., to ensure semantic coherence. - Output text in human-readable order, suitable for single-column, multi-column, and complex layouts. - Preserve the structure of the original document, including headings, paragraphs, lists, etc. - Extract images, image descriptions, tables, table titles, and footnotes. - Automatically recognize and convert formulas in the document to LaTeX format. -- Automatically recognize and convert tables in the document to LaTeX or HTML format. +- Automatically recognize and convert tables in the document to HTML format. - Automatically detect scanned PDFs and garbled PDFs and enable OCR functionality. -- OCR supports detection and recognition of 84 languages. +- OCR supports detection and recognition of 109 languages. - Supports multiple output formats, such as multimodal and NLP Markdown, JSON sorted by reading order, and rich intermediate formats. - Supports various visualization results, including layout visualization and span visualization, for efficient confirmation of output quality. -- Supports both CPU and GPU environments. +- Built-in CLI, FastAPI, Gradio WebUI, for local orchestration and multi-service deployment. +- Supports running in a pure CPU environment, and also supports GPU(CUDA)/NPU(CANN)/MPS acceleration - Compatible with Windows, Linux, and Mac platforms. -## Quick Start +# Quick Start If you encounter any installation issues, please first consult the FAQ.
If the parsing results are not as expected, refer to the Known Issues.
-There are three different ways to experience MinerU: -- [Online Demo (No Installation Required)](#online-demo) -- [Quick CPU Demo (Windows, Linux, Mac)](#quick-cpu-demo) -- [Linux/Windows + CUDA](#Using-GPU) +## Online Experience + +### Official online web application +The official online version has the same functionality as the client, with a beautiful interface and rich features, requires login to use + +- [![OpenDataLab](https://img.shields.io/badge/webapp_on_mineru.net-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM0IiBoZWlnaHQ9IjEzNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTIyLDljMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Im0xMjIsOWMwLDUtNCw5LTksOXMtOS00LTktOSw0LTksOS05LDksNCw5LDl6IiBmaWxsPSIjMDEwMTAxIi8+PHBhdGggZD0ibTkxLDE4YzAsNS00LDktOSw5cy05LTQtOS05LDQtOSw5LTksOSw0LDksOXoiIGZpbGw9InVybCgjYikiLz48cGF0aCBkPSJtOTEsMThjMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0iIzAxMDEwMSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0idXJsKCNjKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0iIzAxMDEwMSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=&labelColor=white)](https://mineru.net/OpenSourceTools/Extractor?source=github) -**⚠️ Pre-installation Notice—Hardware and Software Environment Support** +### Gradio-based online demo +A WebUI developed based on Gradio, with a simple interface and only core parsing functionality, no login required -To ensure the stability and reliability of the project, we only optimize and test for specific hardware and software environments during development. This ensures that users deploying and running the project on recommended system configurations will get the best performance with the fewest compatibility issues. +- [![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/OpenDataLab/MinerU) +- [![HuggingFace](https://img.shields.io/badge/Demo_on_HuggingFace-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABYCAMAAACkl9t/AAAAk1BMVEVHcEz/nQv/nQv/nQr/nQv/nQr/nQv/nQv/nQr/wRf/txT/pg7/yRr/rBD/zRz/ngv/oAz/zhz/nwv/txT/ngv/0B3+zBz/nQv/0h7/wxn/vRb/thXkuiT/rxH/pxD/ogzcqyf/nQvTlSz/czCxky7/SjifdjT/Mj3+Mj3wMj15aTnDNz+DSD9RTUBsP0FRO0Q6O0WyIxEIAAAAGHRSTlMADB8zSWF3krDDw8TJ1NbX5efv8ff9/fxKDJ9uAAAGKklEQVR42u2Z63qjOAyGC4RwCOfB2JAGqrSb2WnTw/1f3UaWcSGYNKTdf/P+mOkTrE+yJBulvfvLT2A5ruenaVHyIks33npl/6C4s/ZLAM45SOi/1FtZPyFur1OYofBX3w7d54Bxm+E8db+nDr12ttmESZ4zludJEG5S7TO72YPlKZFyE+YCYUJTBZsMiNS5Sd7NlDmKM2Eg2JQg8awbglfqgbhArjxkS7dgp2RH6hc9AMLdZYUtZN5DJr4molC8BfKrEkPKEnEVjLbgW1fLy77ZVOJagoIcLIl+IxaQZGjiX597HopF5CkaXVMDO9Pyix3AFV3kw4lQLCbHuMovz8FallbcQIJ5Ta0vks9RnolbCK84BtjKRS5uA43hYoZcOBGIG2Epbv6CvFVQ8m8loh66WNySsnN7htL58LNp+NXT8/PhXiBXPMjLSxtwp8W9f/1AngRierBkA+kk/IpUSOeKByzn8y3kAAAfh//0oXgV4roHm/kz4E2z//zRc3/lgwBzbM2mJxQEa5pqgX7d1L0htrhx7LKxOZlKbwcAWyEOWqYSI8YPtgDQVjpB5nvaHaSnBaQSD6hweDi8PosxD6/PT09YY3xQA7LTCTKfYX+QHpA0GCcqmEHvr/cyfKQTEuwgbs2kPxJEB0iNjfJcCTPyocx+A0griHSmADiC91oNGVwJ69RudYe65vJmoqfpul0lrqXadW0jFKH5BKwAeCq+Den7s+3zfRJzA61/Uj/9H/VzLKTx9jFPPdXeeP+L7WEvDLAKAIoF8bPTKT0+TM7W8ePj3Rz/Yn3kOAp2f1Kf0Weony7pn/cPydvhQYV+eFOfmOu7VB/ViPe34/EN3RFHY/yRuT8ddCtMPH/McBAT5s+vRde/gf2c/sPsjLK+m5IBQF5tO+h2tTlBGnP6693JdsvofjOPnnEHkh2TnV/X1fBl9S5zrwuwF8NFrAVJVwCAPTe8gaJlomqlp0pv4Pjn98tJ/t/fL++6unpR1YGC2n/KCoa0tTLoKiEeUPDl94nj+5/Tv3/eT5vBQ60X1S0oZr+IWRR8Ldhu7AlLjPISlJcO9vrFotky9SpzDequlwEir5beYAc0R7D9KS1DXva0jhYRDXoExPdc6yw5GShkZXe9QdO/uOvHofxjrV/TNS6iMJS+4TcSTgk9n5agJdBQbB//IfF/HpvPt3Tbi7b6I6K0R72p6ajryEJrENW2bbeVUGjfgoals4L443c7BEE4mJO2SpbRngxQrAKRudRzGQ8jVOL2qDVjjI8K1gc3TIJ5KiFZ1q+gdsARPB4NQS4AjwVSt72DSoXNyOWUrU5mQ9nRYyjp89Xo7oRI6Bga9QNT1mQ/ptaJq5T/7WcgAZywR/XlPGAUDdet3LE+qS0TI+g+aJU8MIqjo0Kx8Ly+maxLjJmjQ18rA0YCkxLQbUZP1WqdmyQGJLUm7VnQFqodmXSqmRrdVpqdzk5LvmvgtEcW8PMGdaS23EOWyDVbACZzUJPaqMbjDxpA3Qrgl0AikimGDbqmyT8P8NOYiqrldF8rX+YN7TopX4UoHuSCYY7cgX4gHwclQKl1zhx0THf+tCAUValzjI7Wg9EhptrkIcfIJjA94evOn8B2eHaVzvBrnl2ig0So6hvPaz0IGcOvTHvUIlE2+prqAxLSQxZlU2stql1NqCCLdIiIN/i1DBEHUoElM9dBravbiAnKqgpi4IBkw+utSPIoBijDXJipSVV7MpOEJUAc5Qmm3BnUN+w3hteEieYKfRZSIUcXKMVf0u5wD4EwsUNVvZOtUT7A2GkffHjByWpHqvRBYrTV72a6j8zZ6W0DTE86Hn04bmyWX3Ri9WH7ZU6Q7h+ZHo0nHUAcsQvVhXRDZHChwiyi/hnPuOsSEF6Exk3o6Y9DT1eZ+6cASXk2Y9k+6EOQMDGm6WBK10wOQJCBwren86cPPWUcRAnTVjGcU1LBgs9FURiX/e6479yZcLwCBmTxiawEwrOcleuu12t3tbLv/N4RLYIBhYexm7Fcn4OJcn0+zc+s8/VfPeddZHAGN6TT8eGczHdR/Gts1/MzDkThr23zqrVfAMFT33Nx1RJsx1k5zuWILLnG/vsH+Fv5D4NTVcp1Gzo8AAAAAElFTkSuQmCC&labelColor=white)](https://huggingface.co/spaces/opendatalab/MinerU) -By focusing resources on the mainline environment, our team can more efficiently resolve potential bugs and develop new features. +## Local Deployment -In non-mainline environments, due to the diversity of hardware and software configurations, as well as third-party dependency compatibility issues, we cannot guarantee 100% project availability. Therefore, for users who wish to use this project in non-recommended environments, we suggest carefully reading the documentation and FAQ first. Most issues already have corresponding solutions in the FAQ. We also encourage community feedback to help us gradually expand support. + +> [!WARNING] +> **Pre-installation Notice—Hardware and Software Environment Support** +> +> To ensure the stability and reliability of the project, we only optimize and test for specific hardware and software environments during development. This ensures that users deploying and running the project on recommended system configurations will get the best performance with the fewest compatibility issues. +> +> By focusing resources on the mainline environment, our team can more efficiently resolve potential bugs and develop new features. +> +> In non-mainline environments, due to the diversity of hardware and software configurations, as well as third-party dependency compatibility issues, we cannot guarantee 100% project availability. Therefore, for users who wish to use this project in non-recommended environments, we suggest carefully reading the documentation and FAQ first. Most issues already have corresponding solutions in the FAQ. We also encourage community feedback to help us gradually expand support. + - + + + + - - - + + + + + + + + + + + + - - - - + + + - - + + - - + + + + + + + + + - - - - + + + + + - - - - + + + - - - - + + + - - + + +
Operating SystemParsing Backendpipeline*-auto-engine*-http-client
Ubuntu 22.04 LTSWindows 10 / 11macOS 11+hybridvlmhybridvlm
Backend FeaturesGood CompatibilityHigh Hardware RequirementsFor OpenAI Compatible Servers2
CPUx86_64(unsupported ARM Linux)x86_64(unsupported ARM Windows)x86_64 / arm64Accuracy186+90+
Memory16GB or more, recommended 32GB+Operating SystemLinux3 / Windows4 / macOS5
Python Version3.10(Please make sure to create a Python 3.10 virtual environment using conda)Pure CPU Support
GPU AccelerationVolta and later architecture GPUs or Apple SiliconNot Required
Nvidia Driver Versionlatest (Proprietary Driver)latestNoneMin VRAM4GB8GB8GB2GB
CUDA EnvironmentAutomatic installation [12.1 (pytorch) + 11.8 (paddle)]11.8 (manual installation) + cuDNN v8.7.0 (manual installation)NoneRAMMin 16GB, Recommended 32GB or moreMin 16GB
GPU Hardware Support ListMinimum Requirement 8G+ VRAM3060ti/3070/4060
- 8G VRAM enables layout, formula recognition acceleration and OCR acceleration
NoneDisk SpaceMin 20GB, SSD RecommendedMin 2GB
Recommended Configuration 10G+ VRAM3080/3080ti/3090/3090ti/4070/4070ti/4070tisuper/4080/4090
- 10G VRAM or more can enable layout, formula recognition, OCR acceleration and table recognition acceleration simultaneously -
Python Version3.10-3.13
-### Online Demo - -Stable Version (Stable version verified by QA): -[![OpenDataLab](https://img.shields.io/badge/Demo_on_OpenDataLab-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSI+CiA8ZGVmcz4KICA8bGluZWFyR3JhZGllbnQgeTI9IjAuNTMzNjciIHgyPSIxLjAwMDQiIHkxPSIwLjI5MjE5IiB4MT0iLTAuMTEyNjgiIGlkPSJhIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iIzE1NDNGRSIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjOEM0NkZGIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxsaW5lYXJHcmFkaWVudCB5Mj0iMC41OTc1NyIgeDI9IjEuMDExMzciIHkxPSIwLjExMDIzIiB4MT0iLTAuMDg0NzQiIGlkPSJiIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iIzE1NDNGRSIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjOEM0NkZGIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogPC9kZWZzPgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxwYXRoIGlkPSJzdmdfMSIgZmlsbD0idXJsKCNhKSIgZD0ibTEuNjIzLDEyLjA2N2EwLjQ4NCwwLjQ4NCAwIDAgMSAwLjA3LC0wLjM4NGw1LjMxLC03Ljg5NWMwLjA2OCwtMC4xIDAuMTcsLTAuMTcyIDAuMjg4LC0wLjJsMTQuMzc3LC0zLjQ3NGEwLjQ4NCwwLjQ4NCAwIDAgMSAwLjU4NCwwLjM1N2wzLjY2MiwxNS4xNTJjMS40NzcsNi4xMTQgLTIuMjgxLDEyLjI2NyAtOC4zOTQsMTMuNzQ1Yy02LjExNCwxLjQ3NyAtMTIuMjY3LC0yLjI4MSAtMTMuNzQ1LC04LjM5NWwtMi4xNTIsLTguOTA2eiIgb3BhY2l0eT0iMC40Ii8+CiAgPHBhdGggaWQ9InN2Z18yIiBmaWxsPSJ1cmwoI2IpIiBkPSJtNS44MjYsOC42NzNjMCwtMC4xMzYgMC4wNTcsLTAuMjY2IDAuMTU3LC0wLjM1OGw3LjAxNywtNi40MjVhMC40ODQsMC40ODQgMCAwIDEgMC4zMjcsLTAuMTI3bDE0Ljc5LDBjMC4yNjgsMCAwLjQ4NSwwLjIxNiAwLjQ4NSwwLjQ4NGwwLDE1LjU4OWMwLDYuMjkgLTUuMDk5LDExLjM4OCAtMTEuMzg4LDExLjM4OGMtNi4yOSwwIC0xMS4zODgsLTUuMDk5IC0xMS4zODgsLTExLjM4OGwwLC05LjE2M3oiLz4KICA8cGF0aCBpZD0ic3ZnXzMiIGZpbGw9IiM1RDc2RkYiIGQ9Im0xMi4zMzEsOC43NTNsLTYuMzgzLC0wLjM5OGw3LjEyMiwtNi41MmwwLjI5OSw1Ljg5MmEwLjk3OCwwLjk3OCAwIDAgMSAtMS4wMzgsMS4wMjZ6Ii8+CiAgPHBhdGggaWQ9InN2Z180IiBmaWxsPSIjMDAyOEZEIiBkPSJtMjAuNDE2LDE1LjAyMmwwLDEuNzExYTIuNDA0LDIuNDA0IDAgMCAxIC00LjgwOCwwbDAsLTQuMjc4bC0yLjgxLDBsMCw0LjY4NmE1LjIxNSw1LjIxNSAwIDEgMCAxMC40MywwbDAsLTQuNjg2bDAsMi41NjdsLTIuODEyLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDxwYXRoIGlkPSJzdmdfNSIgZmlsbD0iIzAwMjhGRCIgZD0ibTIzLjIyOCwxMy44ODFsMS4xNCwwbDAsMS4xNDFsLTEuMTQsMGwwLC0xLjE0bDAsLTAuMDAxem0tMi44MTIsLTAuNjkybDEuODM0LDBsMCwxLjgzM2wtMS44MzQsMGwwLC0xLjgzMmwwLC0wLjAwMXptMS44MzQsLTAuOTc5bDAuOTc4LDBsMCwwLjk3OWwtMC45NzgsMGwwLC0wLjk3OGwwLC0wLjAwMXptMS41NDgsLTEuNjI5bDAuNjExLDBsMCwwLjYxMWwtMC42MTEsMGwwLC0wLjYxMXoiLz4KICA8cGF0aCBpZD0ic3ZnXzYiIGZpbGw9IiNmZmYiIGQ9Im0yMC4wODYsMTQuOTEybDAsMS43MTFhMi40MDQsMi40MDQgMCAxIDEgLTQuODA3LDBsMCwtNC4yNzhsLTIuODEyLDBsMCw0LjY4NmE1LjIxNSw1LjIxNSAwIDAgMCAxMC40MywwbDAsLTQuNjg2bDAsMi41NjdsLTIuODEsMGwtMC4wMDEsMHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbC1ydWxlPSJldmVub2RkIi8+CiAgPHBhdGggaWQ9InN2Z183IiBmaWxsPSIjZmZmIiBkPSJtMjIuODk4LDEzLjc3MWwxLjE0LDBsMCwxLjE0MWwtMS4xNCwwbDAsLTEuMTRsMCwtMC4wMDF6bS0yLjgxMiwtMC42OTJsMS44MzQsMGwwLDEuODMzbC0xLjgzNCwwbDAsLTEuODMybDAsLTAuMDAxem0xLjgzNCwtMC45NzlsMC45NzgsMGwwLDAuOTc5bC0wLjk3OCwwbDAsLTAuOTc5em0xLjU0OCwtMS42MjlsMC42MTEsMGwwLDAuNjExbC0wLjYxLDBsMCwtMC42MWwtMC4wMDEsLTAuMDAxeiIvPgogPC9nPgo8L3N2Zz4=&labelColor=white)](https://opendatalab.com/OpenSourceTools/Extractor/PDF) +1 Accuracy metrics are the End-to-End Evaluation Overall scores from OmniDocBench (v1.5), based on the latest version of `MinerU`. +2 Servers compatible with OpenAI API, such as local model servers or remote model services deployed via inference frameworks like `vLLM`/`SGLang`/`LMDeploy`. +3 Linux only supports distributions from 2019 and later. +4 Since the key dependency `ray` does not support Python 3.13 on Windows, only versions 3.10~3.12 are supported. +5 macOS requires version 14.0 or later. -Test Version (Synced with dev branch updates, testing new features): -[![HuggingFace](https://img.shields.io/badge/Demo_on_HuggingFace-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABYCAMAAACkl9t/AAAAk1BMVEVHcEz/nQv/nQv/nQr/nQv/nQr/nQv/nQv/nQr/wRf/txT/pg7/yRr/rBD/zRz/ngv/oAz/zhz/nwv/txT/ngv/0B3+zBz/nQv/0h7/wxn/vRb/thXkuiT/rxH/pxD/ogzcqyf/nQvTlSz/czCxky7/SjifdjT/Mj3+Mj3wMj15aTnDNz+DSD9RTUBsP0FRO0Q6O0WyIxEIAAAAGHRSTlMADB8zSWF3krDDw8TJ1NbX5efv8ff9/fxKDJ9uAAAGKklEQVR42u2Z63qjOAyGC4RwCOfB2JAGqrSb2WnTw/1f3UaWcSGYNKTdf/P+mOkTrE+yJBulvfvLT2A5ruenaVHyIks33npl/6C4s/ZLAM45SOi/1FtZPyFur1OYofBX3w7d54Bxm+E8db+nDr12ttmESZ4zludJEG5S7TO72YPlKZFyE+YCYUJTBZsMiNS5Sd7NlDmKM2Eg2JQg8awbglfqgbhArjxkS7dgp2RH6hc9AMLdZYUtZN5DJr4molC8BfKrEkPKEnEVjLbgW1fLy77ZVOJagoIcLIl+IxaQZGjiX597HopF5CkaXVMDO9Pyix3AFV3kw4lQLCbHuMovz8FallbcQIJ5Ta0vks9RnolbCK84BtjKRS5uA43hYoZcOBGIG2Epbv6CvFVQ8m8loh66WNySsnN7htL58LNp+NXT8/PhXiBXPMjLSxtwp8W9f/1AngRierBkA+kk/IpUSOeKByzn8y3kAAAfh//0oXgV4roHm/kz4E2z//zRc3/lgwBzbM2mJxQEa5pqgX7d1L0htrhx7LKxOZlKbwcAWyEOWqYSI8YPtgDQVjpB5nvaHaSnBaQSD6hweDi8PosxD6/PT09YY3xQA7LTCTKfYX+QHpA0GCcqmEHvr/cyfKQTEuwgbs2kPxJEB0iNjfJcCTPyocx+A0griHSmADiC91oNGVwJ69RudYe65vJmoqfpul0lrqXadW0jFKH5BKwAeCq+Den7s+3zfRJzA61/Uj/9H/VzLKTx9jFPPdXeeP+L7WEvDLAKAIoF8bPTKT0+TM7W8ePj3Rz/Yn3kOAp2f1Kf0Weony7pn/cPydvhQYV+eFOfmOu7VB/ViPe34/EN3RFHY/yRuT8ddCtMPH/McBAT5s+vRde/gf2c/sPsjLK+m5IBQF5tO+h2tTlBGnP6693JdsvofjOPnnEHkh2TnV/X1fBl9S5zrwuwF8NFrAVJVwCAPTe8gaJlomqlp0pv4Pjn98tJ/t/fL++6unpR1YGC2n/KCoa0tTLoKiEeUPDl94nj+5/Tv3/eT5vBQ60X1S0oZr+IWRR8Ldhu7AlLjPISlJcO9vrFotky9SpzDequlwEir5beYAc0R7D9KS1DXva0jhYRDXoExPdc6yw5GShkZXe9QdO/uOvHofxjrV/TNS6iMJS+4TcSTgk9n5agJdBQbB//IfF/HpvPt3Tbi7b6I6K0R72p6ajryEJrENW2bbeVUGjfgoals4L443c7BEE4mJO2SpbRngxQrAKRudRzGQ8jVOL2qDVjjI8K1gc3TIJ5KiFZ1q+gdsARPB4NQS4AjwVSt72DSoXNyOWUrU5mQ9nRYyjp89Xo7oRI6Bga9QNT1mQ/ptaJq5T/7WcgAZywR/XlPGAUDdet3LE+qS0TI+g+aJU8MIqjo0Kx8Ly+maxLjJmjQ18rA0YCkxLQbUZP1WqdmyQGJLUm7VnQFqodmXSqmRrdVpqdzk5LvmvgtEcW8PMGdaS23EOWyDVbACZzUJPaqMbjDxpA3Qrgl0AikimGDbqmyT8P8NOYiqrldF8rX+YN7TopX4UoHuSCYY7cgX4gHwclQKl1zhx0THf+tCAUValzjI7Wg9EhptrkIcfIJjA94evOn8B2eHaVzvBrnl2ig0So6hvPaz0IGcOvTHvUIlE2+prqAxLSQxZlU2stql1NqCCLdIiIN/i1DBEHUoElM9dBravbiAnKqgpi4IBkw+utSPIoBijDXJipSVV7MpOEJUAc5Qmm3BnUN+w3hteEieYKfRZSIUcXKMVf0u5wD4EwsUNVvZOtUT7A2GkffHjByWpHqvRBYrTV72a6j8zZ6W0DTE86Hn04bmyWX3Ri9WH7ZU6Q7h+ZHo0nHUAcsQvVhXRDZHChwiyi/hnPuOsSEF6Exk3o6Y9DT1eZ+6cASXk2Y9k+6EOQMDGm6WBK10wOQJCBwren86cPPWUcRAnTVjGcU1LBgs9FURiX/e6479yZcLwCBmTxiawEwrOcleuu12t3tbLv/N4RLYIBhYexm7Fcn4OJcn0+zc+s8/VfPeddZHAGN6TT8eGczHdR/Gts1/MzDkThr23zqrVfAMFT33Nx1RJsx1k5zuWILLnG/vsH+Fv5D4NTVcp1Gzo8AAAAAElFTkSuQmCC&labelColor=white)](https://huggingface.co/spaces/opendatalab/MinerU) -[![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/OpenDataLab/MinerU) -### Quick CPU Demo - -#### 1. Install magic-pdf +### Install MinerU +#### Install MinerU using pip or uv ```bash -conda create -n MinerU python=3.10 -conda activate MinerU -pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com +pip install --upgrade pip +pip install uv +uv pip install -U "mineru[all]" ``` -#### 2. Download model weight files - -Refer to [How to Download Model Files](docs/how_to_download_models_en.md) for detailed instructions. - -#### 3. Modify the Configuration File for Additional Configuration - -After completing the [2. Download model weight files](#2-download-model-weight-files) step, the script will automatically generate a `magic-pdf.json` file in the user directory and configure the default model path. -You can find the `magic-pdf.json` file in your 【user directory】. - -> The user directory for Windows is "C:\\Users\\username", for Linux it is "/home/username", and for macOS it is "/Users/username". - -You can modify certain configurations in this file to enable or disable features, such as table recognition: - -> If the following items are not present in the JSON, please manually add the required items and remove the comment content (standard JSON does not support comments). - -```json -{ - // other config - "layout-config": { - "model": "layoutlmv3" // Please change to "doclayout_yolo" when using doclayout_yolo. - }, - "formula-config": { - "mfd_model": "yolo_v8_mfd", - "mfr_model": "unimernet_small", - "enable": true // The formula recognition feature is enabled by default. If you need to disable it, please change the value here to "false". - }, - "table-config": { - "model": "tablemaster", // When using structEqTable, please change to "struct_eqtable". - "enable": false, // The table recognition feature is disabled by default. If you need to enable it, please change the value here to "true". - "max_time": 400 - } -} +#### Install MinerU from source code +```bash +git clone https://github.com/opendatalab/MinerU.git +cd MinerU +uv pip install -e .[all] ``` -### Using GPU +> [!TIP] +> `mineru[all]` includes all core features, compatible with Windows / Linux / macOS systems, suitable for most users. +> If you need to specify the inference framework for the VLM model, or only intend to install a lightweight client on an edge device, please refer to the documentation [Extension Modules Installation Guide](https://opendatalab.github.io/MinerU/quick_start/extension_modules/). -If your device supports CUDA and meets the GPU requirements of the mainline environment, you can use GPU acceleration. Please select the appropriate guide based on your system: +--- + +#### Deploy MinerU using Docker +MinerU provides a convenient Docker deployment method, which helps quickly set up the environment and solve some tricky environment compatibility issues. +You can get the [Docker Deployment Instructions](https://opendatalab.github.io/MinerU/quick_start/docker_deployment/) in the documentation. -- [Ubuntu 22.04 LTS + GPU](docs/README_Ubuntu_CUDA_Acceleration_en_US.md) -- [Windows 10/11 + GPU](docs/README_Windows_CUDA_Acceleration_en_US.md) -- Quick Deployment with Docker - > Docker requires a GPU with at least 16GB of VRAM, and all acceleration features are enabled by default. - > - > Before running this Docker, you can use the following command to check if your device supports CUDA acceleration on Docker. - > - > ```bash - > docker run --rm --gpus=all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi - > ``` - ```bash - wget https://github.com/opendatalab/MinerU/raw/master/Dockerfile - docker build -t mineru:latest . - docker run --rm -it --gpus=all mineru:latest /bin/bash - magic-pdf --help - ``` +--- -## Usage +### Using MinerU -### Command Line +If your device meets the GPU acceleration requirements in the table above, you can use a simple command line for document parsing: ```bash -magic-pdf --help -Usage: magic-pdf [OPTIONS] - -Options: - -v, --version display the version and exit - -p, --path PATH local pdf filepath or directory [required] - -o, --output-dir PATH output local directory [required] - -m, --method [ocr|txt|auto] the method for parsing pdf. ocr: using ocr - technique to extract information from pdf. txt: - suitable for the text-based pdf only and - outperform ocr. auto: automatically choose the - best method for parsing pdf from ocr and txt. - without method specified, auto will be used by - default. - -l, --lang TEXT Input the languages in the pdf (if known) to - improve OCR accuracy. Optional. You should - input "Abbreviation" with language form url: ht - tps://paddlepaddle.github.io/PaddleOCR/latest/en - /ppocr/blog/multi_languages.html#5-support-languages- - and-abbreviations - -d, --debug BOOLEAN Enables detailed debugging information during - the execution of the CLI commands. - -s, --start INTEGER The starting page for PDF parsing, beginning - from 0. - -e, --end INTEGER The ending page for PDF parsing, beginning from - 0. - --help Show this message and exit. - - -## show version -magic-pdf -v - -## command line example -magic-pdf -p {some_pdf} -o {some_output_dir} -m auto -``` - -`{some_pdf}` can be a single PDF file or a directory containing multiple PDFs. -The results will be saved in the `{some_output_dir}` directory. The output file list is as follows: - -```text -├── some_pdf.md # markdown file -├── images # directory for storing images -├── some_pdf_layout.pdf # layout diagram (Include layout reading order) -├── some_pdf_middle.json # MinerU intermediate processing result -├── some_pdf_model.json # model inference result -├── some_pdf_origin.pdf # original PDF file -├── some_pdf_spans.pdf # smallest granularity bbox position information diagram -└── some_pdf_content_list.json # Rich text JSON arranged in reading order -``` - -For more information about the output files, please refer to the [Output File Description](docs/output_file_en_us.md). - -### API - -Processing files from local disk - -```python -image_writer = DiskReaderWriter(local_image_dir) -image_dir = str(os.path.basename(local_image_dir)) -jso_useful_key = {"_pdf_type": "", "model_list": []} -pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer) -pipe.pipe_classify() -pipe.pipe_analyze() -pipe.pipe_parse() -md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none") +mineru -p -o ``` - -Processing files from object storage - -```python -s3pdf_cli = S3ReaderWriter(pdf_ak, pdf_sk, pdf_endpoint) -image_dir = "s3://img_bucket/" -s3image_cli = S3ReaderWriter(img_ak, img_sk, img_endpoint, parent_path=image_dir) -pdf_bytes = s3pdf_cli.read(s3_pdf_path, mode=s3pdf_cli.MODE_BIN) -jso_useful_key = {"_pdf_type": "", "model_list": []} -pipe = UNIPipe(pdf_bytes, jso_useful_key, s3image_cli) -pipe.pipe_classify() -pipe.pipe_analyze() -pipe.pipe_parse() -md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none") +If your device does not meet the GPU acceleration requirements, you can specify the backend as `pipeline` to run in a pure CPU environment: +```bash +mineru -p -o -b pipeline ``` -For detailed implementation, refer to: - -- [demo.py Simplest Processing Method](demo/demo.py) -- [magic_pdf_parse_main.py More Detailed Processing Workflow](demo/magic_pdf_parse_main.py) - -### Deploy Derived Projects - -Derived projects include secondary development projects based on MinerU by project developers and community developers, -such as application interfaces based on Gradio, RAG based on llama, web demos similar to the official website, lightweight multi-GPU load balancing client/server ends, etc. -These projects may offer more features and a better user experience. -For specific deployment methods, please refer to the [Derived Project README](projects/README.md) - - -### Development Guide - -TODO +`mineru` currently supports local `PDF`, image, `DOCX`, `PPTX`, and `XLSX` file or directory inputs, and can be used for document parsing through the CLI, API, WebUI, and `mineru-router`. For detailed instructions, please refer to the [Usage Guide](https://opendatalab.github.io/MinerU/usage/). # TODO -- 🗹 Reading order based on the model -- 🗹 Recognition of `index` and `list` in the main text -- 🗹 Table recognition -- ☐ Code block recognition in the main text -- ☐ [Chemical formula recognition](docs/chemical_knowledge_introduction/introduction.pdf) -- ☐ Geometric shape recognition +- [x] Reading order based on the model +- [x] Recognition of `index` and `list` in the main text +- [x] Table recognition +- [x] Heading Classification +- [x] Handwritten Text Recognition +- [x] Vertical Text Recognition +- [x] Latin Accent Mark Recognition +- [x] Code block recognition in the main text +- [x] [Chemical formula recognition](docs/chemical_knowledge_introduction/introduction.pdf)(mineru.net) +- [ ] Geometric shape recognition # Known Issues - Reading order is determined by the model based on the spatial distribution of readable content, and may be out of order in some areas under extremely complex layouts. -- Vertical text is not supported. +- Limited support for vertical text. - Tables of contents and lists are recognized through rules, and some uncommon list formats may not be recognized. -- Only one level of headings is supported; hierarchical headings are not currently supported. - Code blocks are not yet supported in the layout model. - Comic books, art albums, primary school textbooks, and exercises cannot be parsed well. - Table recognition may result in row/column recognition errors in complex tables. @@ -394,9 +320,9 @@ TODO # FAQ -[FAQ in Chinese](docs/FAQ_zh_cn.md) - -[FAQ in English](docs/FAQ_en_us.md) +- If you encounter any issues during usage, you can first check the [FAQ](https://opendatalab.github.io/MinerU/faq/) for solutions. +- If your issue remains unresolved, you may also use [DeepWiki](https://deepwiki.com/opendatalab/MinerU) to interact with an AI assistant, which can address most common problems. +- If you still cannot resolve the issue, you are welcome to join our community via [Discord](https://discord.gg/Tdedn9GTXq) or [WeChat](https://mineru.net/community-portal/?aliasId=3c430f94) to discuss with other users and developers. # All Thanks To Our Contributors @@ -406,31 +332,52 @@ TODO # License Information -[LICENSE.md](LICENSE.md) - -This project currently uses PyMuPDF to achieve advanced functionality. However, since it adheres to the AGPL license, it may impose restrictions on certain usage scenarios. In future iterations, we plan to explore and replace it with a more permissive PDF processing library to enhance user-friendliness and flexibility. +This repository is licensed under the [MinerU Open Source License](https://github.com/opendatalab/MinerU/blob/master/LICENSE.md), based on Apache 2.0 with additional conditions. # Acknowledgments -- [PDF-Extract-Kit](https://github.com/opendatalab/PDF-Extract-Kit) -- [StructEqTable](https://github.com/UniModal4Reasoning/StructEqTable-Deploy) +- [UniMERNet](https://github.com/opendatalab/UniMERNet) +- [TableStructureRec](https://github.com/RapidAI/TableStructureRec) - [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) -- [PyMuPDF](https://github.com/pymupdf/PyMuPDF) -- [layoutreader](https://github.com/ppaanngggg/layoutreader) +- [PaddleOCR2Pytorch](https://github.com/frotms/PaddleOCR2Pytorch) - [fast-langdetect](https://github.com/LlmKira/fast-langdetect) +- [pypdfium2](https://github.com/pypdfium2-team/pypdfium2) +- [pdftext](https://github.com/datalab-to/pdftext) - [pdfminer.six](https://github.com/pdfminer/pdfminer.six) +- [pypdf](https://github.com/py-pdf/pypdf) +- [magika](https://github.com/google/magika) +- [vLLM](https://github.com/vllm-project/vllm) +- [LMDeploy](https://github.com/InternLM/lmdeploy) # Citation ```bibtex -@misc{wang2024mineruopensourcesolutionprecise, - title={MinerU: An Open-Source Solution for Precise Document Content Extraction}, - author={Bin Wang and Chao Xu and Xiaomeng Zhao and Linke Ouyang and Fan Wu and Zhiyuan Zhao and Rui Xu and Kaiwen Liu and Yuan Qu and Fukai Shang and Bo Zhang and Liqun Wei and Zhihao Sui and Wei Li and Botian Shi and Yu Qiao and Dahua Lin and Conghui He}, - year={2024}, - eprint={2409.18839}, - archivePrefix={arXiv}, - primaryClass={cs.CV}, - url={https://arxiv.org/abs/2409.18839}, +@article{wang2026mineru2, + title={MinerU2. 5-Pro: Pushing the Limits of Data-Centric Document Parsing at Scale}, + author={Wang, Bin and He, Tianyao and Ouyang, Linke and Wu, Fan and Zhao, Zhiyuan and Chu, Tao and Qu, Yuan and Jin, Zhenjiang and Zeng, Weijun and Miao, Ziyang and others}, + journal={arXiv preprint arXiv:2604.04771}, + year={2026} +} + +@article{dong2026minerudiffusion, + title={MinerU-Diffusion: Rethinking Document OCR as Inverse Rendering via Diffusion Decoding}, + author={Dong, Hejun and Niu, Junbo and Wang, Bin and Zeng, Weijun and Zhang, Wentao and He, Conghui}, + journal={arXiv preprint arXiv:2603.22458}, + year={2026} +} + +@article{niu2025mineru2, + title={Mineru2. 5: A decoupled vision-language model for efficient high-resolution document parsing}, + author={Niu, Junbo and Liu, Zheng and Gu, Zhuangcheng and Wang, Bin and Ouyang, Linke and Zhao, Zhiyuan and Chu, Tao and He, Tianyao and Wu, Fan and Zhang, Qintong and others}, + journal={arXiv preprint arXiv:2509.22186}, + year={2025} +} + +@article{wang2024mineru, + title={Mineru: An open-source solution for precise document content extraction}, + author={Wang, Bin and Xu, Chao and Zhao, Xiaomeng and Ouyang, Linke and Wu, Fan and Zhao, Zhiyuan and Xu, Rui and Liu, Kaiwen and Qu, Yuan and Shang, Fukai and others}, + journal={arXiv preprint arXiv:2409.18839}, + year={2024} } @article{he2024opendatalab, @@ -451,16 +398,15 @@ This project currently uses PyMuPDF to achieve advanced functionality. However, -# Magic-doc - -[Magic-Doc](https://github.com/InternLM/magic-doc) Fast speed ppt/pptx/doc/docx/pdf extraction tool - -# Magic-html - -[Magic-HTML](https://github.com/opendatalab/magic-html) Mixed web page extraction tool # Links - +- [MinerU-Diffusion: Rethinking Document OCR as Inverse Rendering via Diffusion Decoding](https://github.com/opendatalab/MinerU-Diffusion) +- [Easy Data Preparation with latest LLMs-based Operators and Pipelines](https://github.com/OpenDCAI/DataFlow) +- [Vis3 (OSS browser based on s3)](https://github.com/opendatalab/Vis3) - [LabelU (A Lightweight Multi-modal Data Annotation Tool)](https://github.com/opendatalab/labelU) - [LabelLLM (An Open-source LLM Dialogue Annotation Platform)](https://github.com/opendatalab/LabelLLM) - [PDF-Extract-Kit (A Comprehensive Toolkit for High-Quality PDF Content Extraction)](https://github.com/opendatalab/PDF-Extract-Kit) +- [OmniDocBench (A Comprehensive Benchmark for Document Parsing and Evaluation)](https://github.com/opendatalab/OmniDocBench) +- [Magic-HTML (Mixed web page extraction tool)](https://github.com/opendatalab/magic-html) +- [Magic-Doc (Fast speed ppt/pptx/doc/docx/pdf extraction tool)](https://github.com/InternLM/magic-doc) +- [Dingo: A Comprehensive AI Data Quality Evaluation Tool](https://github.com/MigoXLab/dingo) diff --git a/README_ja-JP.md b/README_ja-JP.md deleted file mode 100644 index 185db18d1..000000000 --- a/README_ja-JP.md +++ /dev/null @@ -1,324 +0,0 @@ -
- -

- -

- -
-
- -[![stars](https://img.shields.io/github/stars/opendatalab/MinerU.svg)](https://github.com/opendatalab/MinerU) -[![forks](https://img.shields.io/github/forks/opendatalab/MinerU.svg)](https://github.com/opendatalab/MinerU) -[![open issues](https://img.shields.io/github/issues-raw/opendatalab/MinerU)](https://github.com/opendatalab/MinerU/issues) -[![issue resolution](https://img.shields.io/github/issues-closed-raw/opendatalab/MinerU)](https://github.com/opendatalab/MinerU/issues) -[![PyPI version](https://badge.fury.io/py/magic-pdf.svg)](https://badge.fury.io/py/magic-pdf) -[![Downloads](https://static.pepy.tech/badge/magic-pdf)](https://pepy.tech/project/magic-pdf) -[![Downloads](https://static.pepy.tech/badge/magic-pdf/month)](https://pepy.tech/project/magic-pdf) - -opendatalab%2FMinerU | Trendshift - - - - -[English](README.md) | [简体中文](README_zh-CN.md) | [日本語](README_ja-JP.md) - -
- - - -# MinerU - - -## 紹介 - -MinerUは、ワンストップのオープンソースで高品質なデータ抽出ツールであり、以下の主要な機能を含みます: - -- [Magic-PDF](#Magic-PDF) PDFドキュメント抽出 -- [Magic-Doc](#Magic-Doc) ウェブページと電子書籍の抽出 - - -# Magic-PDF - - -## 紹介 - -Magic-PDFは、PDFドキュメントをMarkdown形式に変換するためのツールであり、ローカルに保存されたファイルやS3プロトコルをサポートするオブジェクトストレージ上のファイルを処理することができます。 - -主な機能は以下の通りです: - -- 複数のフロントエンドモデル入力をサポート -- ヘッダー、フッター、脚注、ページ番号の削除 -- 人間が読みやすいレイアウトフォーマット -- 見出し、段落、リストなど、元のドキュメントの構造とフォーマットを保持 -- 画像や表を抽出してmarkdown内に表示 -- 数式をLaTeX形式に変換 -- 文字化けしたPDFの自動検出と変換 -- CPUおよびGPU環境に対応 -- Windows、Linux、macOSプラットフォームに対応 - - -https://github.com/user-attachments/assets/4bea02c9-6d54-4cd6-97ed-dff14340982c - - - -## プロジェクト全景 - -![プロジェクト全景](docs/images/project_panorama_en.png) - - -## フローチャート - -![フローチャート](docs/images/flowchart_en.png) - -### 依存リポジトリ - -- [PDF-Extract-Kit : 高品質なPDFコンテンツ抽出のための包括的なツールキット](https://github.com/opendatalab/PDF-Extract-Kit) 🚀🚀🚀 - -## 入門ガイド - -### 要件 - -- Python >= 3.9 - -依存関係の競合を避けるために、仮想環境の使用をお勧めします。venvとcondaの両方が適しています。 -例: -```bash -conda create -n MinerU python=3.10 -conda activate MinerU -``` - -### インストールと設定 - -#### 1. Magic-PDFのインストール - -**1.依存パッケージのインストール** - -フル機能パッケージはdetectron2に依存しており、コンパイルインストールが必要です。 -自分でコンパイルする必要がある場合は、https://github.com/facebookresearch/detectron2/issues/5114 を参照してください。 -または、私たちの事前コンパイルされたwhlパッケージを直接使用できます(Python 3.10に限定): - -```bash -pip install detectron2 --extra-index-url https://wheels.myhloli.com -``` - -**2.pipを使用してフル機能パッケージをインストールします** ->注意:pipでインストールされたパッケージはCPUのみをサポートし、クイックテストに最適です。 -> ->CUDA/MPSによる加速については、[CUDAまたはMPSによる加速](#4-CUDAまたはMPSによる加速)を参照してください。 - -```bash -pip install -U magic-pdf[full] -``` - -> ❗️❗️❗️ -> 私たちは0.6.2 ベータ版を事前にリリースし、私たちのログに記載されている多くの問題に対処しました。しかし、このビルドはまだ完全なQAテストを経ておらず、最終的なリリース品質を表していません。問題に遭遇した場合は、問題を通じて速やかに報告するか、0.6.1バージョンに戻ることをお願いします。 -> ```bash -> pip install -U magic-pdf[full] -> ``` - - -#### 2. モデルの重みファイルのダウンロード - -詳細については、[how_to_download_models](docs/how_to_download_models_en.md)を参照してください。 - -モデルの重みをダウンロードした後、'models'ディレクトリを大きなディスクスペースのあるディレクトリに移動します。できればSSDに移動してください。 - - -#### 3. 設定ファイルのコピーと設定 -リポジトリのルートディレクトリに[magic-pdf.template.json](magic-pdf.template.json)ファイルがあります。 -```bash -cp magic-pdf.template.json ~/magic-pdf.json -``` -magic-pdf.jsonで、"models-dir"をモデルの重みファイルがあるディレクトリに設定します。 - -```json -{ - "models-dir": "/tmp/models" -} -``` - - -#### 4. CUDAまたはMPSによる加速 -利用可能なNvidia GPUを持っている場合や、Apple Siliconを搭載したMacを使用している場合は、それぞれCUDAまたはMPSによる加速を利用できます。 -##### CUDA - -CUDAバージョンに応じたPyTorchバージョンをインストールする必要があります。 -この例では、CUDA 11.8バージョンをインストールします。詳細はhttps://pytorch.org/get-started/locally/ を参照してください。 -```bash -pip install --force-reinstall torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu118 -``` -また、設定ファイルmagic-pdf.jsonの"device-mode"の値を変更する必要があります。 -```json -{ - "device-mode":"cuda" -} -``` - -##### MPS - -Mシリーズチップデバイスを搭載したmacOSユーザーは、推論加速のためにMPSを使用できます。 -設定ファイルmagic-pdf.jsonの"device-mode"の値を変更する必要があります。 -```json -{ - "device-mode":"mps" -} -``` - - -### 使用方法 - -#### 1. コマンドラインでの使用 - -###### シンプル - -```bash -magic-pdf pdf-command --pdf "pdf_path" --inside_model true -``` -プログラムが終了した後、"/tmp/magic-pdf"ディレクトリに生成されたmarkdownファイルが見つかります。 -markdownディレクトリには対応するxxx_model.jsonファイルがあります。 -ポストプロセッシングパイプラインの二次開発を行う場合は、次のコマンドを使用できます: -```bash -magic-pdf pdf-command --pdf "pdf_path" --model "model_json_path" -``` -この方法では、モデルデータを再実行する必要がなくなり、デバッグが便利になります。 - - -###### 詳細 - -```bash -magic-pdf --help -``` - - -#### 2. APIを使用した利用 - -###### ローカル -```python -image_writer = DiskReaderWriter(local_image_dir) -image_dir = str(os.path.basename(local_image_dir)) -jso_useful_key = {"_pdf_type": "", "model_list": []} -pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer) -pipe.pipe_classify() -pipe.pipe_parse() -md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none") -``` - -###### オブジェクトストレージ -```python -s3pdf_cli = S3ReaderWriter(pdf_ak, pdf_sk, pdf_endpoint) -image_dir = "s3://img_bucket/" -s3image_cli = S3ReaderWriter(img_ak, img_sk, img_endpoint, parent_path=image_dir) -pdf_bytes = s3pdf_cli.read(s3_pdf_path, mode=s3pdf_cli.MODE_BIN) -jso_useful_key = {"_pdf_type": "", "model_list": []} -pipe = UNIPipe(pdf_bytes, jso_useful_key, s3image_cli) -pipe.pipe_classify() -pipe.pipe_parse() -md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none") -``` - -デモは[demo.py](demo/demo.py)を参照してください - - -# Magic-Doc - - -## 紹介 - -Magic-Docは、ウェブページや多形式の電子書籍をmarkdown形式に変換するためのツールです。 - -主な機能は以下の通りです: - -- ウェブページ抽出 - - テキスト、画像、表、数式情報のクロスモーダルな正確な解析。 - -- 電子書籍ドキュメント抽出 - - epub、mobiなどのさまざまなドキュメント形式をサポートし、テキストと画像に完全対応。 - -- 言語タイプの識別 - - 176の言語を正確に認識。 - -https://github.com/opendatalab/MinerU/assets/11393164/a5a650e9-f4c0-463e-acc3-960967f1a1ca - - - -https://github.com/opendatalab/MinerU/assets/11393164/0f4a6fe9-6cca-4113-9fdc-a537749d764d - - - -https://github.com/opendatalab/MinerU/assets/11393164/20438a02-ce6c-4af8-9dde-d722a4e825b2 - - - - -## プロジェクトリポジトリ - -- [Magic-Doc](https://github.com/InternLM/magic-doc) - 優れたウェブページと電子書籍の抽出ツール - - -# 貢献者の皆様に感謝 - - - - - - -# ライセンス情報 - -[LICENSE.md](LICENSE.md) - -このプロジェクトは現在、PyMuPDFを利用して高度な機能を提供していますが、AGPLライセンスに準拠しているため、特定の使用ケースに制限を課す可能性があります。今後のバージョンでは、より寛容なライセンスのPDF処理ライブラリへの移行を検討し、ユーザーフレンドリーさと柔軟性を向上させる予定です。 - - -# 謝辞 - -- [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) -- [PyMuPDF](https://github.com/pymupdf/PyMuPDF) -- [fast-langdetect](https://github.com/LlmKira/fast-langdetect) -- [pdfminer.six](https://github.com/pdfminer/pdfminer.six) - - -# 引用 - -```bibtex -@misc{wang2024mineruopensourcesolutionprecise, - title={MinerU: An Open-Source Solution for Precise Document Content Extraction}, - author={Bin Wang and Chao Xu and Xiaomeng Zhao and Linke Ouyang and Fan Wu and Zhiyuan Zhao and Rui Xu and Kaiwen Liu and Yuan Qu and Fukai Shang and Bo Zhang and Liqun Wei and Zhihao Sui and Wei Li and Botian Shi and Yu Qiao and Dahua Lin and Conghui He}, - year={2024}, - eprint={2409.18839}, - archivePrefix={arXiv}, - primaryClass={cs.CV}, - url={https://arxiv.org/abs/2409.18839}, -} - -@article{he2024opendatalab, - title={Opendatalab: Empowering general artificial intelligence with open datasets}, - author={He, Conghui and Li, Wei and Jin, Zhenjiang and Xu, Chao and Wang, Bin and Lin, Dahua}, - journal={arXiv preprint arXiv:2407.13773}, - year={2024} -} -``` - -# スター履歴 - - - - - - Star History Chart - - - -# リンク -- [LabelU (軽量なマルチモーダルデータアノテーションツール)](https://github.com/opendatalab/labelU) -- [LabelLLM (オープンソースのLLM対話アノテーションプラットフォーム)](https://github.com/opendatalab/LabelLLM) -- [PDF-Extract-Kit (高品質なPDFコンテンツ抽出のための包括的なツールキット)](https://github.com/opendatalab/PDF-Extract-Kit) diff --git a/README_zh-CN.md b/README_zh-CN.md index bf6e802bd..2226996b0 100644 --- a/README_zh-CN.md +++ b/README_zh-CN.md @@ -1,7 +1,7 @@

- +

@@ -10,15 +10,19 @@ [![forks](https://img.shields.io/github/forks/opendatalab/MinerU.svg)](https://github.com/opendatalab/MinerU) [![open issues](https://img.shields.io/github/issues-raw/opendatalab/MinerU)](https://github.com/opendatalab/MinerU/issues) [![issue resolution](https://img.shields.io/github/issues-closed-raw/opendatalab/MinerU)](https://github.com/opendatalab/MinerU/issues) -[![PyPI version](https://badge.fury.io/py/magic-pdf.svg)](https://badge.fury.io/py/magic-pdf) -[![Downloads](https://static.pepy.tech/badge/magic-pdf)](https://pepy.tech/project/magic-pdf) -[![Downloads](https://static.pepy.tech/badge/magic-pdf/month)](https://pepy.tech/project/magic-pdf) - -[![OpenDataLab](https://img.shields.io/badge/Demo_on_OpenDataLab-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSI+CiA8ZGVmcz4KICA8bGluZWFyR3JhZGllbnQgeTI9IjAuNTMzNjciIHgyPSIxLjAwMDQiIHkxPSIwLjI5MjE5IiB4MT0iLTAuMTEyNjgiIGlkPSJhIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iIzE1NDNGRSIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjOEM0NkZGIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxsaW5lYXJHcmFkaWVudCB5Mj0iMC41OTc1NyIgeDI9IjEuMDExMzciIHkxPSIwLjExMDIzIiB4MT0iLTAuMDg0NzQiIGlkPSJiIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iIzE1NDNGRSIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjOEM0NkZGIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogPC9kZWZzPgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxwYXRoIGlkPSJzdmdfMSIgZmlsbD0idXJsKCNhKSIgZD0ibTEuNjIzLDEyLjA2N2EwLjQ4NCwwLjQ4NCAwIDAgMSAwLjA3LC0wLjM4NGw1LjMxLC03Ljg5NWMwLjA2OCwtMC4xIDAuMTcsLTAuMTcyIDAuMjg4LC0wLjJsMTQuMzc3LC0zLjQ3NGEwLjQ4NCwwLjQ4NCAwIDAgMSAwLjU4NCwwLjM1N2wzLjY2MiwxNS4xNTJjMS40NzcsNi4xMTQgLTIuMjgxLDEyLjI2NyAtOC4zOTQsMTMuNzQ1Yy02LjExNCwxLjQ3NyAtMTIuMjY3LC0yLjI4MSAtMTMuNzQ1LC04LjM5NWwtMi4xNTIsLTguOTA2eiIgb3BhY2l0eT0iMC40Ii8+CiAgPHBhdGggaWQ9InN2Z18yIiBmaWxsPSJ1cmwoI2IpIiBkPSJtNS44MjYsOC42NzNjMCwtMC4xMzYgMC4wNTcsLTAuMjY2IDAuMTU3LC0wLjM1OGw3LjAxNywtNi40MjVhMC40ODQsMC40ODQgMCAwIDEgMC4zMjcsLTAuMTI3bDE0Ljc5LDBjMC4yNjgsMCAwLjQ4NSwwLjIxNiAwLjQ4NSwwLjQ4NGwwLDE1LjU4OWMwLDYuMjkgLTUuMDk5LDExLjM4OCAtMTEuMzg4LDExLjM4OGMtNi4yOSwwIC0xMS4zODgsLTUuMDk5IC0xMS4zODgsLTExLjM4OGwwLC05LjE2M3oiLz4KICA8cGF0aCBpZD0ic3ZnXzMiIGZpbGw9IiM1RDc2RkYiIGQ9Im0xMi4zMzEsOC43NTNsLTYuMzgzLC0wLjM5OGw3LjEyMiwtNi41MmwwLjI5OSw1Ljg5MmEwLjk3OCwwLjk3OCAwIDAgMSAtMS4wMzgsMS4wMjZ6Ii8+CiAgPHBhdGggaWQ9InN2Z180IiBmaWxsPSIjMDAyOEZEIiBkPSJtMjAuNDE2LDE1LjAyMmwwLDEuNzExYTIuNDA0LDIuNDA0IDAgMCAxIC00LjgwOCwwbDAsLTQuMjc4bC0yLjgxLDBsMCw0LjY4NmE1LjIxNSw1LjIxNSAwIDEgMCAxMC40MywwbDAsLTQuNjg2bDAsMi41NjdsLTIuODEyLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDxwYXRoIGlkPSJzdmdfNSIgZmlsbD0iIzAwMjhGRCIgZD0ibTIzLjIyOCwxMy44ODFsMS4xNCwwbDAsMS4xNDFsLTEuMTQsMGwwLC0xLjE0bDAsLTAuMDAxem0tMi44MTIsLTAuNjkybDEuODM0LDBsMCwxLjgzM2wtMS44MzQsMGwwLC0xLjgzMmwwLC0wLjAwMXptMS44MzQsLTAuOTc5bDAuOTc4LDBsMCwwLjk3OWwtMC45NzgsMGwwLC0wLjk3OGwwLC0wLjAwMXptMS41NDgsLTEuNjI5bDAuNjExLDBsMCwwLjYxMWwtMC42MTEsMGwwLC0wLjYxMXoiLz4KICA8cGF0aCBpZD0ic3ZnXzYiIGZpbGw9IiNmZmYiIGQ9Im0yMC4wODYsMTQuOTEybDAsMS43MTFhMi40MDQsMi40MDQgMCAxIDEgLTQuODA3LDBsMCwtNC4yNzhsLTIuODEyLDBsMCw0LjY4NmE1LjIxNSw1LjIxNSAwIDAgMCAxMC40MywwbDAsLTQuNjg2bDAsMi41NjdsLTIuODEsMGwtMC4wMDEsMHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbC1ydWxlPSJldmVub2RkIi8+CiAgPHBhdGggaWQ9InN2Z183IiBmaWxsPSIjZmZmIiBkPSJtMjIuODk4LDEzLjc3MWwxLjE0LDBsMCwxLjE0MWwtMS4xNCwwbDAsLTEuMTRsMCwtMC4wMDF6bS0yLjgxMiwtMC42OTJsMS44MzQsMGwwLDEuODMzbC0xLjgzNCwwbDAsLTEuODMybDAsLTAuMDAxem0xLjgzNCwtMC45NzlsMC45NzgsMGwwLDAuOTc5bC0wLjk3OCwwbDAsLTAuOTc5em0xLjU0OCwtMS42MjlsMC42MTEsMGwwLDAuNjExbC0wLjYxLDBsMCwtMC42MWwtMC4wMDEsLTAuMDAxeiIvPgogPC9nPgo8L3N2Zz4=&labelColor=white)](https://opendatalab.com/OpenSourceTools/Extractor/PDF) +[![PyPI version](https://img.shields.io/pypi/v/mineru)](https://pypi.org/project/mineru/) +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mineru)](https://pypi.org/project/mineru/) +[![Downloads](https://static.pepy.tech/badge/mineru)](https://pepy.tech/project/mineru) +[![Downloads](https://static.pepy.tech/badge/mineru/month)](https://pepy.tech/project/mineru) +[![OpenDataLab](https://img.shields.io/badge/webapp_on_mineru.net-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM0IiBoZWlnaHQ9IjEzNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTIyLDljMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Im0xMjIsOWMwLDUtNCw5LTksOXMtOS00LTktOSw0LTksOS05LDksNCw5LDl6IiBmaWxsPSIjMDEwMTAxIi8+PHBhdGggZD0ibTkxLDE4YzAsNS00LDktOSw5cy05LTQtOS05LDQtOSw5LTksOSw0LDksOXoiIGZpbGw9InVybCgjYikiLz48cGF0aCBkPSJtOTEsMThjMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0iIzAxMDEwMSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0idXJsKCNjKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0iIzAxMDEwMSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=&labelColor=white)](https://mineru.net/OpenSourceTools/Extractor?source=github) [![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/OpenDataLab/MinerU) [![HuggingFace](https://img.shields.io/badge/Demo_on_HuggingFace-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABYCAMAAACkl9t/AAAAk1BMVEVHcEz/nQv/nQv/nQr/nQv/nQr/nQv/nQv/nQr/wRf/txT/pg7/yRr/rBD/zRz/ngv/oAz/zhz/nwv/txT/ngv/0B3+zBz/nQv/0h7/wxn/vRb/thXkuiT/rxH/pxD/ogzcqyf/nQvTlSz/czCxky7/SjifdjT/Mj3+Mj3wMj15aTnDNz+DSD9RTUBsP0FRO0Q6O0WyIxEIAAAAGHRSTlMADB8zSWF3krDDw8TJ1NbX5efv8ff9/fxKDJ9uAAAGKklEQVR42u2Z63qjOAyGC4RwCOfB2JAGqrSb2WnTw/1f3UaWcSGYNKTdf/P+mOkTrE+yJBulvfvLT2A5ruenaVHyIks33npl/6C4s/ZLAM45SOi/1FtZPyFur1OYofBX3w7d54Bxm+E8db+nDr12ttmESZ4zludJEG5S7TO72YPlKZFyE+YCYUJTBZsMiNS5Sd7NlDmKM2Eg2JQg8awbglfqgbhArjxkS7dgp2RH6hc9AMLdZYUtZN5DJr4molC8BfKrEkPKEnEVjLbgW1fLy77ZVOJagoIcLIl+IxaQZGjiX597HopF5CkaXVMDO9Pyix3AFV3kw4lQLCbHuMovz8FallbcQIJ5Ta0vks9RnolbCK84BtjKRS5uA43hYoZcOBGIG2Epbv6CvFVQ8m8loh66WNySsnN7htL58LNp+NXT8/PhXiBXPMjLSxtwp8W9f/1AngRierBkA+kk/IpUSOeKByzn8y3kAAAfh//0oXgV4roHm/kz4E2z//zRc3/lgwBzbM2mJxQEa5pqgX7d1L0htrhx7LKxOZlKbwcAWyEOWqYSI8YPtgDQVjpB5nvaHaSnBaQSD6hweDi8PosxD6/PT09YY3xQA7LTCTKfYX+QHpA0GCcqmEHvr/cyfKQTEuwgbs2kPxJEB0iNjfJcCTPyocx+A0griHSmADiC91oNGVwJ69RudYe65vJmoqfpul0lrqXadW0jFKH5BKwAeCq+Den7s+3zfRJzA61/Uj/9H/VzLKTx9jFPPdXeeP+L7WEvDLAKAIoF8bPTKT0+TM7W8ePj3Rz/Yn3kOAp2f1Kf0Weony7pn/cPydvhQYV+eFOfmOu7VB/ViPe34/EN3RFHY/yRuT8ddCtMPH/McBAT5s+vRde/gf2c/sPsjLK+m5IBQF5tO+h2tTlBGnP6693JdsvofjOPnnEHkh2TnV/X1fBl9S5zrwuwF8NFrAVJVwCAPTe8gaJlomqlp0pv4Pjn98tJ/t/fL++6unpR1YGC2n/KCoa0tTLoKiEeUPDl94nj+5/Tv3/eT5vBQ60X1S0oZr+IWRR8Ldhu7AlLjPISlJcO9vrFotky9SpzDequlwEir5beYAc0R7D9KS1DXva0jhYRDXoExPdc6yw5GShkZXe9QdO/uOvHofxjrV/TNS6iMJS+4TcSTgk9n5agJdBQbB//IfF/HpvPt3Tbi7b6I6K0R72p6ajryEJrENW2bbeVUGjfgoals4L443c7BEE4mJO2SpbRngxQrAKRudRzGQ8jVOL2qDVjjI8K1gc3TIJ5KiFZ1q+gdsARPB4NQS4AjwVSt72DSoXNyOWUrU5mQ9nRYyjp89Xo7oRI6Bga9QNT1mQ/ptaJq5T/7WcgAZywR/XlPGAUDdet3LE+qS0TI+g+aJU8MIqjo0Kx8Ly+maxLjJmjQ18rA0YCkxLQbUZP1WqdmyQGJLUm7VnQFqodmXSqmRrdVpqdzk5LvmvgtEcW8PMGdaS23EOWyDVbACZzUJPaqMbjDxpA3Qrgl0AikimGDbqmyT8P8NOYiqrldF8rX+YN7TopX4UoHuSCYY7cgX4gHwclQKl1zhx0THf+tCAUValzjI7Wg9EhptrkIcfIJjA94evOn8B2eHaVzvBrnl2ig0So6hvPaz0IGcOvTHvUIlE2+prqAxLSQxZlU2stql1NqCCLdIiIN/i1DBEHUoElM9dBravbiAnKqgpi4IBkw+utSPIoBijDXJipSVV7MpOEJUAc5Qmm3BnUN+w3hteEieYKfRZSIUcXKMVf0u5wD4EwsUNVvZOtUT7A2GkffHjByWpHqvRBYrTV72a6j8zZ6W0DTE86Hn04bmyWX3Ri9WH7ZU6Q7h+ZHo0nHUAcsQvVhXRDZHChwiyi/hnPuOsSEF6Exk3o6Y9DT1eZ+6cASXk2Y9k+6EOQMDGm6WBK10wOQJCBwren86cPPWUcRAnTVjGcU1LBgs9FURiX/e6479yZcLwCBmTxiawEwrOcleuu12t3tbLv/N4RLYIBhYexm7Fcn4OJcn0+zc+s8/VfPeddZHAGN6TT8eGczHdR/Gts1/MzDkThr23zqrVfAMFT33Nx1RJsx1k5zuWILLnG/vsH+Fv5D4NTVcp1Gzo8AAAAAElFTkSuQmCC&labelColor=white)](https://huggingface.co/spaces/opendatalab/MinerU) -[![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/gist/papayalove/b5f4913389e7ff9883c6b687de156e78/mineru_demo.ipynb) -[![Paper](https://img.shields.io/badge/Paper-arXiv-green)](https://arxiv.org/pdf/2409.18839?) +[![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/gist/myhloli/a3cb16570ab3cfeadf9d8f0ac91b4fca/mineru_demo.ipynb) +[![arXiv](https://img.shields.io/badge/MinerU-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2409.18839) +[![arXiv](https://img.shields.io/badge/MinerU2.5-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2509.22186) +[![arXiv](https://img.shields.io/badge/MinerU2.5%20Pro-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2604.04771) +[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/opendatalab/MinerU) + opendatalab%2FMinerU | Trendshift @@ -29,379 +33,302 @@

-PDF-Extract-Kit: 高质量PDF解析工具箱🔥🔥🔥 +🚀MinerU 官网入口→✅ 免装在线版 ✅ 全功能客户端 ✅ 开发者API在线调用,省去部署麻烦,多种产品形态一键get,速冲!

- 👋 join us on Discord and WeChat + 👋 join us on Discord and WeChat

-# 更新记录 +
+MinerU — 专为 LLM · RAG · Agent 场景构建的高精度文档解析引擎 +将 PDF · DOCX · PPTX · XLSX · 图片 · 网页转为结构化 Markdown / JSON · VLM+OCR 双引擎 · 109 种语言
+MCP Server · LangChain / Dify / FastGPT 原生集成 · 10+ 国产算力适配
+ +**🔍 核心解析能力** +- 原生支持 `DOCX`、`PPTX`、`XLSX` 解析 +- 公式 → LaTeX · 表格 → HTML,精准还原复杂版面 +- 支持扫描件、手写体、多栏布局、跨页表格合并 +- 输出符合人类阅读顺序,自动去除页眉页脚 +- VLM + OCR 双引擎,支持 109 种语言识别 + +**🔌 接入方式** + +| 场景 | 方案 | +|------|------| +| AI 编程工具 | MCP Server — Cursor · Claude Desktop · Windsurf | +| RAG 框架 | LangChain · LlamaIndex · RAGFlow · RAG-Anything · Flowise · Dify · FastGPT | +| 开发集成 | Python / Go / TypeScript SDK · CLI · REST API · Docker | +| 零代码 | mineru.net 在线版 · Gradio WebUI · 桌面客户端 | + +**🖥️ 部署生态(支持私有化 · 完全离线)** + +| 推理后端 | 适用场景 | +|--------------|-----------------------------| +| pipeline | 快速稳定,无幻觉,CPU / GPU 均可运行 | +| vlm-engine | 高精度,支持 vLLM / LMdeploy / mlx 生态 | +| hybrid-engine| 高精度,原生文本提取,低幻觉 | + +国产算力:昇腾 · 寒武纪 · 燧原 · 沐曦 · 摩尔线程 · 昆仑芯 · 天数智芯 · 瀚博 · 太初元碁 · 海光 · 平头哥 -- 2024/10/31 0.9.0发布,这是我们进行了大量代码重构的全新版本,解决了众多问题,提升了性能,降低了硬件需求,并提供了更丰富的易用性: - - 重构排序模块代码,使用 [layoutreader](https://github.com/ppaanngggg/layoutreader) 进行阅读顺序排序,确保在各种排版下都能实现极高准确率 - - 重构段落拼接模块,在跨栏、跨页、跨图、跨表情况下均能实现良好的段落拼接效果 - - 重构列表和目录识别功能,极大提升列表块和目录块识别的准确率及对应文本段落的解析效果 - - 重构图、表与描述性文本的匹配逻辑,大幅提升 caption 和 footnote 与图表的匹配准确率,并将描述性文本的丢失率降至零 - - 增加 OCR 的多语言支持,支持 84 种语言的检测与识别,语言支持列表详见 [OCR 语言支持列表](https://paddlepaddle.github.io/PaddleOCR/latest/ppocr/blog/multi_languages.html#5) - - 增加显存回收逻辑及其他显存优化措施,大幅降低显存使用需求。开启除表格加速外的全部加速功能(layout/公式/OCR)的显存需求从16GB降至8GB,开启全部加速功能的显存需求从24GB降至10GB - - 优化配置文件的功能开关,增加独立的公式检测开关,无需公式检测时可大幅提升速度和解析效果 - - 集成 [PDF-Extract-Kit 1.0](https://github.com/opendatalab/PDF-Extract-Kit) - - 加入自研的 `doclayout_yolo` 模型,在相近解析效果情况下比原方案提速10倍以上,可通过配置文件与 `layoutlmv3` 自由切换 - - 公式解析升级至 `unimernet 0.2.1`,在提升公式解析准确率的同时,大幅降低显存需求 -- 2024/09/27 0.8.1发布,修复了一些bug,同时提供了[在线demo](https://opendatalab.com/OpenSourceTools/Extractor/PDF/)的[本地化部署版本](projects/web_demo/README_zh-CN.md)和[前端界面](projects/web/README_zh-CN.md) -- 2024/09/09 0.8.0发布,支持Dockerfile快速部署,同时上线了huggingface、modelscope demo -- 2024/08/30 0.7.1发布,集成了paddle tablemaster表格识别功能 -- 2024/08/09 0.7.0b1发布,简化安装步骤提升易用性,加入表格识别功能 -- 2024/08/01 0.6.2b1发布,优化了依赖冲突问题和安装文档 -- 2024/07/05 首次开源 - - - -
-

文档目录

-
    -
  1. - MinerU - -
  2. -
  3. TODO
  4. -
  5. Known Issues
  6. -
  7. FAQ
  8. -
  9. Contributors
  10. -
  11. License Information
  12. -
  13. Acknowledgements
  14. -
  15. Citation
  16. -
  17. Star History
  18. -
  19. magic-doc快速提取PPT/DOC/PDF
  20. -
  21. magic-html提取混合网页内容
  22. -
  23. Links
  24. -
+# 更新记录 + +- 2026/04/18 3.1.0 发布 + + 本次版本更新聚焦于**许可协议开放性、解析精度提升与全格式原生支持**。主要更新内容包括: + + - 许可协议升级 + - MinerU 已正式从 `AGPLv3` 切换至基于 `Apache 2.0` 的 [MinerU 开源许可证](https://github.com/opendatalab/MinerU/blob/master/LICENSE.md)。 + - 新的许可方式在兼顾开源协作与商业落地的同时,进一步降低了社区使用和商业化接入门槛,让 MinerU 更容易融入真实业务流程。 + - VLM 主模型升级 + - VLM 主模型正式切换为 `MinerU2.5-Pro-2604-1.2B`,整体解析精度提升至业内领先水平。 + - 新模型现已支持子图切分合并、图像与图表解析、截断段落合并、跨页面表格合并以及表格内图像识别,复杂版面场景下的解析能力进一步增强。 + - 全格式原生解析支持 + - 新增 `PPTX` 与 `XLSX` 原生解析能力。 + - 至此,MinerU 已完整支持图片、`PDF`、`DOCX`、`PPTX`、`XLSX` 全格式解析,为多类型文档统一处理提供了更完整的能力闭环。 + + 通过 3.1.0 版本,MinerU 在开放性、解析精度和落地能力上进一步提升。新的许可协议降低了社区使用和商业接入门槛,`MinerU2.5-Pro-2604-1.2B` 提升了复杂内容的解析质量,而 `PPTX` 与 `XLSX` 原生解析的补齐,也让 MinerU 完成了主流文档格式的端到端覆盖。 + +- 2026/03/29 3.0.0 发布 + + 本次版本更新围绕**解析能力、系统架构与工程可用性**进行了系统升级。主要更新内容包括: + + - `DOCX` 原生解析 + - 正式支持 `DOCX` 原生解析,在无幻觉前提下实现高精度解析。 + - 相较于“先将 `DOCX` 转为 `PDF` 再解析”的传统流程,端到端速度提升数十倍以上,更适合对精度与吞吐均有要求的场景。 + - `pipeline` 后端升级 + - `pipeline` 后端在 OmniDocBench (v1.5) 上取得 `86.2` 分,精度超过上一代主流 VLM `MinerU2.0-2505-0.9B`。 + - 新增表格内图片/公式解析、印章文字识别、竖排文本支持、行间公式序号识别等能力,持续提升复杂文档场景下的解析效果。 + - 在保持高精度的同时,资源占用极低,并继续支持纯 CPU 环境推理。 + - `API / CLI / Router` 编排升级 + - `mineru` 现作为基于 `mineru-api` 的编排客户端运行;在未传入 `--api-url` 时,会自动拉起本地临时服务。 + - `mineru-api` 新增异步任务接口 `POST /tasks`,支持任务提交、状态查询与结果获取;同时保留同步解析接口 `POST /file_parse`,以兼容老版本插件。 + - 新增 `mineru-router`,适用于多服务、多 GPU 的统一入口部署与任务路由;其接口与 `mineru-api` 完全兼容,并支持任务自动负载均衡。 + - 部署与使用体验优化 + - 解决了 `torch >= 2.8` 的兼容问题,基础镜像升级为 `vllm0.11.2 + torch2.9.0`,统一了不同 Compute Capability 的安装路径。 + - 通过滑动窗口优化解析链路,显著降低长文档场景下的内存峰值占用,上万页文档解析不再需要手动拆分。 + - `pipeline` 的 batch 推理支持流式落盘,已完成的解析结果可及时写出,进一步提升长任务处理体验。 + - 完成线程安全优化,全面支持多线程并发推理;配合 `mineru-router`,可一键实现多卡部署,轻松构建高并发、高吞吐解析系统。 + - 完全移除了两个 AGPLv3 模型(`doclayoutyolo` 和 `mfd_yolov8`)以及一个 CC-BY-NC-SA 4.0 模型(`layoutreader`)的使用。 + + 本次更新不仅是若干功能点的补强,更是 MinerU 在系统能力上的一次关键跃迁。我们重点解决了长文档解析过程中的内存峰值占用问题,通过滑动窗口、流式落盘等链路优化,让超长文档解析从“需要手动拆分、谨慎处理”走向“稳定可跑、规模可扩展”。同时,我们完成了线程安全优化,全面支持多线程并发推理,进一步提升了单机资源利用率与高并发场景下的运行稳定性。在此基础上,基于 mineru-router 与全新的 API / CLI 编排体系,MinerU 已具备一键多卡部署、多服务统一接入、任务自动负载均衡的能力,显著降低了大规模部署难度。至此,MinerU 正在从单一的数据生产工具,进一步演进为面向高并发、高吞吐场景的大规模文档解析基座,为企业级文档数据处理提供更稳定、更高效、更易扩展的基础设施能力。 + +> 📝 查看完整的 [更新日志](https://opendatalab.github.io/MinerU/zh/reference/changelog/) 了解更多历史版本信息 + # MinerU ## 项目简介 -MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。 +MinerU 是一款文档解析工具,可将 `PDF`、图片以及 `DOCX`、`PPTX`、`XLSX` 转化为机器可读格式(如 Markdown、JSON),便于后续检索、抽取与二次处理。 MinerU诞生于[书生-浦语](https://github.com/InternLM/InternLM)的预训练过程中,我们将会集中精力解决科技文献中的符号转化问题,希望在大模型时代为科技发展做出贡献。 -相比国内外知名商用产品MinerU还很年轻,如果遇到问题或者结果不及预期请到[issue](https://github.com/opendatalab/MinerU/issues)提交问题,同时**附上相关PDF**。 +相比国内外知名商用产品MinerU还很年轻,如果遇到问题或者结果不及预期请到[issue](https://github.com/opendatalab/MinerU/issues)提交问题,同时**附上相关文档或样例文件**。 https://github.com/user-attachments/assets/4bea02c9-6d54-4cd6-97ed-dff14340982c ## 主要功能 +- 支持 `PDF`、图片与 `DOCX`、`PPTX`、`XLSX` 输入 - 删除页眉、页脚、脚注、页码等元素,确保语义连贯 - 输出符合人类阅读顺序的文本,适用于单栏、多栏及复杂排版 - 保留原文档的结构,包括标题、段落、列表等 - 提取图像、图片描述、表格、表格标题及脚注 - 自动识别并转换文档中的公式为LaTeX格式 -- 自动识别并转换文档中的表格为LaTeX或HTML格式 +- 自动识别并转换文档中的表格为HTML格式 - 自动检测扫描版PDF和乱码PDF,并启用OCR功能 -- OCR支持84种语言的检测与识别 +- OCR支持109种语言的检测与识别 - 支持多种输出格式,如多模态与NLP的Markdown、按阅读顺序排序的JSON、含有丰富信息的中间格式等 - 支持多种可视化结果,包括layout可视化、span可视化等,便于高效确认输出效果与质检 -- 支持CPU和GPU环境 +- 内置命令行、FastAPI、Gradio WebUI,支持本地编排和多服务部署 +- 支持纯CPU环境运行,并支持 GPU(CUDA)/NPU(CANN)/MPS 加速 - 兼容Windows、Linux和Mac平台 -## 快速开始 +# 快速开始 -如果遇到任何安装问题,请先查询 FAQ
+如果安装或使用中遇到任何问题,请先查询 FAQ
如果遇到解析效果不及预期,参考 Known Issues
-有3种不同方式可以体验MinerU的效果: -- [在线体验(无需任何安装)](#在线体验) -- [使用CPU快速体验(Windows,Linux,Mac)](#使用cpu快速体验) -- [Linux/Windows + CUDA](#使用gpu) +## 在线体验 -**⚠️安装前必看——软硬件环境支持说明** +### 官网在线应用 +官网在线版功能与客户端一致,界面美观,功能丰富,需要登录使用 + +- [![OpenDataLab](https://img.shields.io/badge/webapp_on_mineru.net-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM0IiBoZWlnaHQ9IjEzNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTIyLDljMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Im0xMjIsOWMwLDUtNCw5LTksOXMtOS00LTktOSw0LTksOS05LDksNCw5LDl6IiBmaWxsPSIjMDEwMTAxIi8+PHBhdGggZD0ibTkxLDE4YzAsNS00LDktOSw5cy05LTQtOS05LDQtOSw5LTksOSw0LDksOXoiIGZpbGw9InVybCgjYikiLz48cGF0aCBkPSJtOTEsMThjMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0iIzAxMDEwMSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0idXJsKCNjKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0iIzAxMDEwMSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=&labelColor=white)](https://mineru.net/OpenSourceTools/Extractor?source=github) -为了确保项目的稳定性和可靠性,我们在开发过程中仅对特定的软硬件环境进行优化和测试。这样当用户在推荐的系统配置上部署和运行项目时,能够获得最佳的性能表现和最少的兼容性问题。 +### 基于Gradio的在线demo +基于gradio开发的webui,界面简洁,仅包含核心解析功能,免登录 -通过集中资源和精力于主线环境,我们团队能够更高效地解决潜在的BUG,及时开发新功能。 +- [![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/OpenDataLab/MinerU) +- [![HuggingFace](https://img.shields.io/badge/Demo_on_HuggingFace-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABYCAMAAACkl9t/AAAAk1BMVEVHcEz/nQv/nQv/nQr/nQv/nQr/nQv/nQv/nQr/wRf/txT/pg7/yRr/rBD/zRz/ngv/oAz/zhz/nwv/txT/ngv/0B3+zBz/nQv/0h7/wxn/vRb/thXkuiT/rxH/pxD/ogzcqyf/nQvTlSz/czCxky7/SjifdjT/Mj3+Mj3wMj15aTnDNz+DSD9RTUBsP0FRO0Q6O0WyIxEIAAAAGHRSTlMADB8zSWF3krDDw8TJ1NbX5efv8ff9/fxKDJ9uAAAGKklEQVR42u2Z63qjOAyGC4RwCOfB2JAGqrSb2WnTw/1f3UaWcSGYNKTdf/P+mOkTrE+yJBulvfvLT2A5ruenaVHyIks33npl/6C4s/ZLAM45SOi/1FtZPyFur1OYofBX3w7d54Bxm+E8db+nDr12ttmESZ4zludJEG5S7TO72YPlKZFyE+YCYUJTBZsMiNS5Sd7NlDmKM2Eg2JQg8awbglfqgbhArjxkS7dgp2RH6hc9AMLdZYUtZN5DJr4molC8BfKrEkPKEnEVjLbgW1fLy77ZVOJagoIcLIl+IxaQZGjiX597HopF5CkaXVMDO9Pyix3AFV3kw4lQLCbHuMovz8FallbcQIJ5Ta0vks9RnolbCK84BtjKRS5uA43hYoZcOBGIG2Epbv6CvFVQ8m8loh66WNySsnN7htL58LNp+NXT8/PhXiBXPMjLSxtwp8W9f/1AngRierBkA+kk/IpUSOeKByzn8y3kAAAfh//0oXgV4roHm/kz4E2z//zRc3/lgwBzbM2mJxQEa5pqgX7d1L0htrhx7LKxOZlKbwcAWyEOWqYSI8YPtgDQVjpB5nvaHaSnBaQSD6hweDi8PosxD6/PT09YY3xQA7LTCTKfYX+QHpA0GCcqmEHvr/cyfKQTEuwgbs2kPxJEB0iNjfJcCTPyocx+A0griHSmADiC91oNGVwJ69RudYe65vJmoqfpul0lrqXadW0jFKH5BKwAeCq+Den7s+3zfRJzA61/Uj/9H/VzLKTx9jFPPdXeeP+L7WEvDLAKAIoF8bPTKT0+TM7W8ePj3Rz/Yn3kOAp2f1Kf0Weony7pn/cPydvhQYV+eFOfmOu7VB/ViPe34/EN3RFHY/yRuT8ddCtMPH/McBAT5s+vRde/gf2c/sPsjLK+m5IBQF5tO+h2tTlBGnP6693JdsvofjOPnnEHkh2TnV/X1fBl9S5zrwuwF8NFrAVJVwCAPTe8gaJlomqlp0pv4Pjn98tJ/t/fL++6unpR1YGC2n/KCoa0tTLoKiEeUPDl94nj+5/Tv3/eT5vBQ60X1S0oZr+IWRR8Ldhu7AlLjPISlJcO9vrFotky9SpzDequlwEir5beYAc0R7D9KS1DXva0jhYRDXoExPdc6yw5GShkZXe9QdO/uOvHofxjrV/TNS6iMJS+4TcSTgk9n5agJdBQbB//IfF/HpvPt3Tbi7b6I6K0R72p6ajryEJrENW2bbeVUGjfgoals4L443c7BEE4mJO2SpbRngxQrAKRudRzGQ8jVOL2qDVjjI8K1gc3TIJ5KiFZ1q+gdsARPB4NQS4AjwVSt72DSoXNyOWUrU5mQ9nRYyjp89Xo7oRI6Bga9QNT1mQ/ptaJq5T/7WcgAZywR/XlPGAUDdet3LE+qS0TI+g+aJU8MIqjo0Kx8Ly+maxLjJmjQ18rA0YCkxLQbUZP1WqdmyQGJLUm7VnQFqodmXSqmRrdVpqdzk5LvmvgtEcW8PMGdaS23EOWyDVbACZzUJPaqMbjDxpA3Qrgl0AikimGDbqmyT8P8NOYiqrldF8rX+YN7TopX4UoHuSCYY7cgX4gHwclQKl1zhx0THf+tCAUValzjI7Wg9EhptrkIcfIJjA94evOn8B2eHaVzvBrnl2ig0So6hvPaz0IGcOvTHvUIlE2+prqAxLSQxZlU2stql1NqCCLdIiIN/i1DBEHUoElM9dBravbiAnKqgpi4IBkw+utSPIoBijDXJipSVV7MpOEJUAc5Qmm3BnUN+w3hteEieYKfRZSIUcXKMVf0u5wD4EwsUNVvZOtUT7A2GkffHjByWpHqvRBYrTV72a6j8zZ6W0DTE86Hn04bmyWX3Ri9WH7ZU6Q7h+ZHo0nHUAcsQvVhXRDZHChwiyi/hnPuOsSEF6Exk3o6Y9DT1eZ+6cASXk2Y9k+6EOQMDGm6WBK10wOQJCBwren86cPPWUcRAnTVjGcU1LBgs9FURiX/e6479yZcLwCBmTxiawEwrOcleuu12t3tbLv/N4RLYIBhYexm7Fcn4OJcn0+zc+s8/VfPeddZHAGN6TT8eGczHdR/Gts1/MzDkThr23zqrVfAMFT33Nx1RJsx1k5zuWILLnG/vsH+Fv5D4NTVcp1Gzo8AAAAAElFTkSuQmCC&labelColor=white)](https://huggingface.co/spaces/opendatalab/MinerU) -在非主线环境中,由于硬件、软件配置的多样性,以及第三方依赖项的兼容性问题,我们无法100%保证项目的完全可用性。因此,对于希望在非推荐环境中使用本项目的用户,我们建议先仔细阅读文档以及FAQ,大多数问题已经在FAQ中有对应的解决方案,除此之外我们鼓励社区反馈问题,以便我们能够逐步扩大支持范围。 +## 本地部署 + +> [!WARNING] +> **安装前必看——软硬件环境支持说明** +> +> 为了确保项目的稳定性和可靠性,我们在开发过程中仅对特定的软硬件环境进行优化和测试。这样当用户在推荐的系统配置上部署和运行项目时,能够获得最佳的性能表现和最少的兼容性问题。 +> +> 通过集中资源和精力于主线环境,我们团队能够更高效地解决潜在的BUG,及时开发新功能。 +> +> 在非主线环境中,由于硬件、软件配置的多样性,以及第三方依赖项的兼容性问题,我们无法100%保证项目的完全可用性。因此,对于希望在非推荐环境中使用本项目的用户,我们建议先仔细阅读文档以及FAQ,大多数问题已经在FAQ中有对应的解决方案,除此之外我们鼓励社区反馈问题,以便我们能够逐步扩大支持范围。 + - + + + + - - - + + + + + + + + + + + + - - - - + + + - - + + - - + + + + + + + + + - - - - + + + + + - - - - + + + - - - - + + + - - + + +
操作系统解析后端pipeline*-auto-engine*-http-client
Ubuntu 22.04 LTSWindows 10 / 11macOS 11+hybridvlmhybridvlm
后端特性兼容性好硬件配置要求较高适用于OpenAI兼容服务器2
CPUx86_64(暂不支持ARM Linux)x86_64(暂不支持ARM Windows)x86_64 / arm64精度指标186+90+
内存大于等于16GB,推荐32G以上操作系统Linux3 / Windows4 / macOS5
python版本3.10 (请务必通过conda创建3.10虚拟环境)纯CPU平台支持
GPU加速支持Volta及以后架构GPU或Apple Silicon不需要
Nvidia Driver 版本latest(专有驱动)latestNone显存最低要求4GB8GB8GB2GB
CUDA环境自动安装[12.1(pytorch)+11.8(paddle)]11.8(手动安装)+cuDNN v8.7.0(手动安装)None内存要求最低16GB以上,推荐32GB以上最低16GB
GPU硬件支持列表最低要求 8G+显存3060ti/3070/4060
- 8G显存可开启layout、公式识别和ocr加速
None磁盘空间要求20GB以上,推荐使用SSD至少2GB
推荐配置 10G+显存3080/3080ti/3090/3090ti/4070/4070ti/4070tisuper/4080/4090
- 10G显存及以上可以同时开启layout、公式识别和ocr加速和表格识别加速
-
python版本3.10-3.13
-### 在线体验 -稳定版(经过QA验证的稳定版本): +1 精度指标为OmniDocBench (v1.5)的End-to-End Evaluation Overall分数,基于`MinerU`最新版本测试 +2 兼容OpenAI API的服务器,如通过`vLLM`/`SGLang`/`LMDeploy`等推理框架部署的本地模型服务器或远程模型服务 +3 Linux仅支持2019年及以后发行版 +4 由于关键依赖`ray`未能在windows平台支持Python 3.13,故仅支持至3.10~3.12版本 +5 macOS 需使用14.0以上版本 -[![OpenDataLab](https://img.shields.io/badge/Demo_on_OpenDataLab-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAiIGhlaWdodD0iMzAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgZmlsbD0ibm9uZSI+CiA8ZGVmcz4KICA8bGluZWFyR3JhZGllbnQgeTI9IjAuNTMzNjciIHgyPSIxLjAwMDQiIHkxPSIwLjI5MjE5IiB4MT0iLTAuMTEyNjgiIGlkPSJhIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iIzE1NDNGRSIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjOEM0NkZGIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxsaW5lYXJHcmFkaWVudCB5Mj0iMC41OTc1NyIgeDI9IjEuMDExMzciIHkxPSIwLjExMDIzIiB4MT0iLTAuMDg0NzQiIGlkPSJiIj4KICAgPHN0b3Agc3RvcC1jb2xvcj0iIzE1NDNGRSIvPgogICA8c3RvcCBzdG9wLWNvbG9yPSIjOEM0NkZGIiBvZmZzZXQ9IjEiLz4KICA8L2xpbmVhckdyYWRpZW50PgogPC9kZWZzPgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxwYXRoIGlkPSJzdmdfMSIgZmlsbD0idXJsKCNhKSIgZD0ibTEuNjIzLDEyLjA2N2EwLjQ4NCwwLjQ4NCAwIDAgMSAwLjA3LC0wLjM4NGw1LjMxLC03Ljg5NWMwLjA2OCwtMC4xIDAuMTcsLTAuMTcyIDAuMjg4LC0wLjJsMTQuMzc3LC0zLjQ3NGEwLjQ4NCwwLjQ4NCAwIDAgMSAwLjU4NCwwLjM1N2wzLjY2MiwxNS4xNTJjMS40NzcsNi4xMTQgLTIuMjgxLDEyLjI2NyAtOC4zOTQsMTMuNzQ1Yy02LjExNCwxLjQ3NyAtMTIuMjY3LC0yLjI4MSAtMTMuNzQ1LC04LjM5NWwtMi4xNTIsLTguOTA2eiIgb3BhY2l0eT0iMC40Ii8+CiAgPHBhdGggaWQ9InN2Z18yIiBmaWxsPSJ1cmwoI2IpIiBkPSJtNS44MjYsOC42NzNjMCwtMC4xMzYgMC4wNTcsLTAuMjY2IDAuMTU3LC0wLjM1OGw3LjAxNywtNi40MjVhMC40ODQsMC40ODQgMCAwIDEgMC4zMjcsLTAuMTI3bDE0Ljc5LDBjMC4yNjgsMCAwLjQ4NSwwLjIxNiAwLjQ4NSwwLjQ4NGwwLDE1LjU4OWMwLDYuMjkgLTUuMDk5LDExLjM4OCAtMTEuMzg4LDExLjM4OGMtNi4yOSwwIC0xMS4zODgsLTUuMDk5IC0xMS4zODgsLTExLjM4OGwwLC05LjE2M3oiLz4KICA8cGF0aCBpZD0ic3ZnXzMiIGZpbGw9IiM1RDc2RkYiIGQ9Im0xMi4zMzEsOC43NTNsLTYuMzgzLC0wLjM5OGw3LjEyMiwtNi41MmwwLjI5OSw1Ljg5MmEwLjk3OCwwLjk3OCAwIDAgMSAtMS4wMzgsMS4wMjZ6Ii8+CiAgPHBhdGggaWQ9InN2Z180IiBmaWxsPSIjMDAyOEZEIiBkPSJtMjAuNDE2LDE1LjAyMmwwLDEuNzExYTIuNDA0LDIuNDA0IDAgMCAxIC00LjgwOCwwbDAsLTQuMjc4bC0yLjgxLDBsMCw0LjY4NmE1LjIxNSw1LjIxNSAwIDEgMCAxMC40MywwbDAsLTQuNjg2bDAsMi41NjdsLTIuODEyLDB6IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPgogIDxwYXRoIGlkPSJzdmdfNSIgZmlsbD0iIzAwMjhGRCIgZD0ibTIzLjIyOCwxMy44ODFsMS4xNCwwbDAsMS4xNDFsLTEuMTQsMGwwLC0xLjE0bDAsLTAuMDAxem0tMi44MTIsLTAuNjkybDEuODM0LDBsMCwxLjgzM2wtMS44MzQsMGwwLC0xLjgzMmwwLC0wLjAwMXptMS44MzQsLTAuOTc5bDAuOTc4LDBsMCwwLjk3OWwtMC45NzgsMGwwLC0wLjk3OGwwLC0wLjAwMXptMS41NDgsLTEuNjI5bDAuNjExLDBsMCwwLjYxMWwtMC42MTEsMGwwLC0wLjYxMXoiLz4KICA8cGF0aCBpZD0ic3ZnXzYiIGZpbGw9IiNmZmYiIGQ9Im0yMC4wODYsMTQuOTEybDAsMS43MTFhMi40MDQsMi40MDQgMCAxIDEgLTQuODA3LDBsMCwtNC4yNzhsLTIuODEyLDBsMCw0LjY4NmE1LjIxNSw1LjIxNSAwIDAgMCAxMC40MywwbDAsLTQuNjg2bDAsMi41NjdsLTIuODEsMGwtMC4wMDEsMHoiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbC1ydWxlPSJldmVub2RkIi8+CiAgPHBhdGggaWQ9InN2Z183IiBmaWxsPSIjZmZmIiBkPSJtMjIuODk4LDEzLjc3MWwxLjE0LDBsMCwxLjE0MWwtMS4xNCwwbDAsLTEuMTRsMCwtMC4wMDF6bS0yLjgxMiwtMC42OTJsMS44MzQsMGwwLDEuODMzbC0xLjgzNCwwbDAsLTEuODMybDAsLTAuMDAxem0xLjgzNCwtMC45NzlsMC45NzgsMGwwLDAuOTc5bC0wLjk3OCwwbDAsLTAuOTc5em0xLjU0OCwtMS42MjlsMC42MTEsMGwwLDAuNjExbC0wLjYxLDBsMCwtMC42MWwtMC4wMDEsLTAuMDAxeiIvPgogPC9nPgo8L3N2Zz4=&labelColor=white)](https://opendatalab.com/OpenSourceTools/Extractor/PDF) +> [!TIP] +> 除以上主流环境与平台外,我们也收录了一些社区用户反馈的其他平台支持情况,详情请参考[其他加速卡适配](https://opendatalab.github.io/MinerU/zh/usage/)。 +> 如果您有意将自己的环境适配经验分享给社区,欢迎通过[show-and-tell](https://github.com/opendatalab/MinerU/discussions/categories/show-and-tell)提交或提交PR至[其他加速卡适配](https://github.com/opendatalab/MinerU/tree/master/docs/zh/usage/acceleration_cards)文档。 -测试版(同步dev分支更新,测试新特性): - -[![HuggingFace](https://img.shields.io/badge/Demo_on_HuggingFace-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABYCAMAAACkl9t/AAAAk1BMVEVHcEz/nQv/nQv/nQr/nQv/nQr/nQv/nQv/nQr/wRf/txT/pg7/yRr/rBD/zRz/ngv/oAz/zhz/nwv/txT/ngv/0B3+zBz/nQv/0h7/wxn/vRb/thXkuiT/rxH/pxD/ogzcqyf/nQvTlSz/czCxky7/SjifdjT/Mj3+Mj3wMj15aTnDNz+DSD9RTUBsP0FRO0Q6O0WyIxEIAAAAGHRSTlMADB8zSWF3krDDw8TJ1NbX5efv8ff9/fxKDJ9uAAAGKklEQVR42u2Z63qjOAyGC4RwCOfB2JAGqrSb2WnTw/1f3UaWcSGYNKTdf/P+mOkTrE+yJBulvfvLT2A5ruenaVHyIks33npl/6C4s/ZLAM45SOi/1FtZPyFur1OYofBX3w7d54Bxm+E8db+nDr12ttmESZ4zludJEG5S7TO72YPlKZFyE+YCYUJTBZsMiNS5Sd7NlDmKM2Eg2JQg8awbglfqgbhArjxkS7dgp2RH6hc9AMLdZYUtZN5DJr4molC8BfKrEkPKEnEVjLbgW1fLy77ZVOJagoIcLIl+IxaQZGjiX597HopF5CkaXVMDO9Pyix3AFV3kw4lQLCbHuMovz8FallbcQIJ5Ta0vks9RnolbCK84BtjKRS5uA43hYoZcOBGIG2Epbv6CvFVQ8m8loh66WNySsnN7htL58LNp+NXT8/PhXiBXPMjLSxtwp8W9f/1AngRierBkA+kk/IpUSOeKByzn8y3kAAAfh//0oXgV4roHm/kz4E2z//zRc3/lgwBzbM2mJxQEa5pqgX7d1L0htrhx7LKxOZlKbwcAWyEOWqYSI8YPtgDQVjpB5nvaHaSnBaQSD6hweDi8PosxD6/PT09YY3xQA7LTCTKfYX+QHpA0GCcqmEHvr/cyfKQTEuwgbs2kPxJEB0iNjfJcCTPyocx+A0griHSmADiC91oNGVwJ69RudYe65vJmoqfpul0lrqXadW0jFKH5BKwAeCq+Den7s+3zfRJzA61/Uj/9H/VzLKTx9jFPPdXeeP+L7WEvDLAKAIoF8bPTKT0+TM7W8ePj3Rz/Yn3kOAp2f1Kf0Weony7pn/cPydvhQYV+eFOfmOu7VB/ViPe34/EN3RFHY/yRuT8ddCtMPH/McBAT5s+vRde/gf2c/sPsjLK+m5IBQF5tO+h2tTlBGnP6693JdsvofjOPnnEHkh2TnV/X1fBl9S5zrwuwF8NFrAVJVwCAPTe8gaJlomqlp0pv4Pjn98tJ/t/fL++6unpR1YGC2n/KCoa0tTLoKiEeUPDl94nj+5/Tv3/eT5vBQ60X1S0oZr+IWRR8Ldhu7AlLjPISlJcO9vrFotky9SpzDequlwEir5beYAc0R7D9KS1DXva0jhYRDXoExPdc6yw5GShkZXe9QdO/uOvHofxjrV/TNS6iMJS+4TcSTgk9n5agJdBQbB//IfF/HpvPt3Tbi7b6I6K0R72p6ajryEJrENW2bbeVUGjfgoals4L443c7BEE4mJO2SpbRngxQrAKRudRzGQ8jVOL2qDVjjI8K1gc3TIJ5KiFZ1q+gdsARPB4NQS4AjwVSt72DSoXNyOWUrU5mQ9nRYyjp89Xo7oRI6Bga9QNT1mQ/ptaJq5T/7WcgAZywR/XlPGAUDdet3LE+qS0TI+g+aJU8MIqjo0Kx8Ly+maxLjJmjQ18rA0YCkxLQbUZP1WqdmyQGJLUm7VnQFqodmXSqmRrdVpqdzk5LvmvgtEcW8PMGdaS23EOWyDVbACZzUJPaqMbjDxpA3Qrgl0AikimGDbqmyT8P8NOYiqrldF8rX+YN7TopX4UoHuSCYY7cgX4gHwclQKl1zhx0THf+tCAUValzjI7Wg9EhptrkIcfIJjA94evOn8B2eHaVzvBrnl2ig0So6hvPaz0IGcOvTHvUIlE2+prqAxLSQxZlU2stql1NqCCLdIiIN/i1DBEHUoElM9dBravbiAnKqgpi4IBkw+utSPIoBijDXJipSVV7MpOEJUAc5Qmm3BnUN+w3hteEieYKfRZSIUcXKMVf0u5wD4EwsUNVvZOtUT7A2GkffHjByWpHqvRBYrTV72a6j8zZ6W0DTE86Hn04bmyWX3Ri9WH7ZU6Q7h+ZHo0nHUAcsQvVhXRDZHChwiyi/hnPuOsSEF6Exk3o6Y9DT1eZ+6cASXk2Y9k+6EOQMDGm6WBK10wOQJCBwren86cPPWUcRAnTVjGcU1LBgs9FURiX/e6479yZcLwCBmTxiawEwrOcleuu12t3tbLv/N4RLYIBhYexm7Fcn4OJcn0+zc+s8/VfPeddZHAGN6TT8eGczHdR/Gts1/MzDkThr23zqrVfAMFT33Nx1RJsx1k5zuWILLnG/vsH+Fv5D4NTVcp1Gzo8AAAAAElFTkSuQmCC&labelColor=white)](https://huggingface.co/spaces/opendatalab/MinerU) -[![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/OpenDataLab/MinerU) - -### 使用CPU快速体验 - -#### 1. 安装magic-pdf - -最新版本国内镜像源同步可能会有延迟,请耐心等待 +### 安装 MinerU +#### 使用pip或uv安装MinerU ```bash -conda create -n MinerU python=3.10 -conda activate MinerU -pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com -i https://pypi.tuna.tsinghua.edu.cn/simple +pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple +pip install uv -i https://mirrors.aliyun.com/pypi/simple +uv pip install -U "mineru[all]" -i https://mirrors.aliyun.com/pypi/simple ``` -#### 2. 下载模型权重文件 - -详细参考 [如何下载模型文件](docs/how_to_download_models_zh_cn.md) - -#### 3. 修改配置文件以进行额外配置 - -完成[2. 下载模型权重文件](#2-下载模型权重文件)步骤后,脚本会自动生成用户目录下的magic-pdf.json文件,并自动配置默认模型路径。 -您可在【用户目录】下找到magic-pdf.json文件。 -> windows的用户目录为 "C:\\Users\\用户名", linux用户目录为 "/home/用户名", macOS用户目录为 "/Users/用户名" - -您可修改该文件中的部分配置实现功能的开关,如表格识别功能: - ->如json内没有如下项目,请手动添加需要的项目,并删除注释内容(标准json不支持注释) - -```json -{ - // other config - "layout-config": { - "model": "layoutlmv3" // 使用doclayout_yolo请修改为“doclayout_yolo" - }, - "formula-config": { - "mfd_model": "yolo_v8_mfd", - "mfr_model": "unimernet_small", - "enable": true // 公式识别功能默认是开启的,如果需要关闭请修改此处的值为"false" - }, - "table-config": { - "model": "tablemaster", // 使用structEqTable请修改为"struct_eqtable" - "enable": false, // 表格识别功能默认是关闭的,如果需要开启请修改此处的值为"true" - "max_time": 400 - } -} +#### 通过源码安装MinerU +```bash +git clone https://github.com/opendatalab/MinerU.git +cd MinerU +uv pip install -e .[all] -i https://mirrors.aliyun.com/pypi/simple ``` -### 使用GPU +> [!TIP] +> `mineru[all]`包含所有核心功能,兼容Windows / Linux / macOS系统,适合绝大多数用户。 +> 如果您需要指定vlm模型的推理框架,或是仅准备在边缘设备安装轻量版client端,可以参考文档[扩展模块安装指南](https://opendatalab.github.io/MinerU/zh/quick_start/extension_modules/)。 -如果您的设备支持CUDA,且满足主线环境中的显卡要求,则可以使用GPU加速,请根据自己的系统选择适合的教程: +--- + +#### 使用docker部署Mineru +MinerU提供了便捷的docker部署方式,这有助于快速搭建环境并解决一些棘手的环境兼容问题。 +您可以在文档中获取[Docker部署说明](https://opendatalab.github.io/MinerU/zh/quick_start/docker_deployment/)。 -- [Ubuntu22.04LTS + GPU](docs/README_Ubuntu_CUDA_Acceleration_zh_CN.md) -- [Windows10/11 + GPU](docs/README_Windows_CUDA_Acceleration_zh_CN.md) -- 使用Docker快速部署 - > Docker 需设备gpu显存大于等于16GB,默认开启所有加速功能 - > - > 运行本docker前可以通过以下命令检测自己的设备是否支持在docker上使用CUDA加速 - > - > ```bash - > docker run --rm --gpus=all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi - > ``` - ```bash - wget https://github.com/opendatalab/MinerU/raw/master/Dockerfile - docker build -t mineru:latest . - docker run --rm -it --gpus=all mineru:latest /bin/bash - magic-pdf --help - ``` - +--- -## 使用 +### 使用 MinerU -### 命令行 +>[!TIP] +>默认使用托管在`huggingface`的模型进行解析,首次使用时会自动下载所需模型文件,后续使用将直接加载本地缓存的模型。如果您无法访问`huggingface`,可以通过以下命令切换至国内镜像源: +>```bash +>export MINERU_MODEL_SOURCE=modelscope +>``` +如果您的设备满足上表中GPU加速的条件,可以使用简单的命令行进行文档解析: ```bash -magic-pdf --help -Usage: magic-pdf [OPTIONS] - -Options: - -v, --version display the version and exit - -p, --path PATH local pdf filepath or directory [required] - -o, --output-dir PATH output local directory [required] - -m, --method [ocr|txt|auto] the method for parsing pdf. ocr: using ocr - technique to extract information from pdf. txt: - suitable for the text-based pdf only and - outperform ocr. auto: automatically choose the - best method for parsing pdf from ocr and txt. - without method specified, auto will be used by - default. - -l, --lang TEXT Input the languages in the pdf (if known) to - improve OCR accuracy. Optional. You should - input "Abbreviation" with language form url: ht - tps://paddlepaddle.github.io/PaddleOCR/latest/en - /ppocr/blog/multi_languages.html#5-support-languages- - and-abbreviations - -d, --debug BOOLEAN Enables detailed debugging information during - the execution of the CLI commands. - -s, --start INTEGER The starting page for PDF parsing, beginning - from 0. - -e, --end INTEGER The ending page for PDF parsing, beginning from - 0. - --help Show this message and exit. - - -## show version -magic-pdf -v - -## command line example -magic-pdf -p {some_pdf} -o {some_output_dir} -m auto +mineru -p -o ``` - -其中 `{some_pdf}` 可以是单个pdf文件,也可以是一个包含多个pdf文件的目录。 -运行完命令后输出的结果会保存在`{some_output_dir}`目录下, 输出的文件列表如下 - -```text -├── some_pdf.md # markdown 文件 -├── images # 存放图片目录 -├── some_pdf_layout.pdf # layout 绘图 (包含layout阅读顺序) -├── some_pdf_middle.json # minerU 中间处理结果 -├── some_pdf_model.json # 模型推理结果 -├── some_pdf_origin.pdf # 原 pdf 文件 -├── some_pdf_spans.pdf # 最小粒度的bbox位置信息绘图 -└── some_pdf_content_list.json # 按阅读顺序排列的富文本json -``` - -更多有关输出文件的信息,请参考[输出文件说明](docs/output_file_zh_cn.md) - -### API - -处理本地磁盘上的文件 - -```python -image_writer = DiskReaderWriter(local_image_dir) -image_dir = str(os.path.basename(local_image_dir)) -jso_useful_key = {"_pdf_type": "", "model_list": []} -pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer) -pipe.pipe_classify() -pipe.pipe_analyze() -pipe.pipe_parse() -md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none") -``` - -处理对象存储上的文件 - -```python -s3pdf_cli = S3ReaderWriter(pdf_ak, pdf_sk, pdf_endpoint) -image_dir = "s3://img_bucket/" -s3image_cli = S3ReaderWriter(img_ak, img_sk, img_endpoint, parent_path=image_dir) -pdf_bytes = s3pdf_cli.read(s3_pdf_path, mode=s3pdf_cli.MODE_BIN) -jso_useful_key = {"_pdf_type": "", "model_list": []} -pipe = UNIPipe(pdf_bytes, jso_useful_key, s3image_cli) -pipe.pipe_classify() -pipe.pipe_analyze() -pipe.pipe_parse() -md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none") +如果您的设备不满足GPU加速条件,可以指定后端为`pipeline`,以在纯CPU环境下运行: +```bash +mineru -p -o -b pipeline ``` -详细实现可参考 - -- [demo.py 最简单的处理方式](demo/demo.py) -- [magic_pdf_parse_main.py 能够更清晰看到处理流程](demo/magic_pdf_parse_main.py) - -### 部署衍生项目 - -衍生项目包含项目开发者和社群开发者们基于MinerU的二次开发项目, -例如基于Gradio的应用界面、基于llama的RAG、官网同款web demo、轻量级的多卡负载均衡c/s端等, -这些项目可能会提供更多的功能和更好的用户体验。 -具体部署方式请参考 [衍生项目readme](projects/README_zh-CN.md) - - -### 二次开发 - -TODO +当前 `mineru` 支持本地 `PDF / 图片 / DOCX / PPTX / XLSX` 文件或目录输入,并可通过命令行、API、WebUI、`mineru-router` 等多种方式进行文档解析,具体使用方法请参考[使用指南](https://opendatalab.github.io/MinerU/zh/usage/)。 # TODO -- 🗹 基于模型的阅读顺序 -- 🗹 正文中目录、列表识别 -- 🗹 表格识别 -- ☐ 正文中代码块识别 -- ☐ [化学式识别](docs/chemical_knowledge_introduction/introduction.pdf) -- ☐ 几何图形识别 +- [x] 基于模型的阅读顺序 +- [x] 正文中目录、列表识别 +- [x] 表格识别 +- [x] 标题分级 +- [x] 手写文本识别 +- [x] 竖排文本识别 +- [x] 拉丁字母重音符号识别 +- [x] 正文中代码块识别 +- [x] [化学式识别](docs/chemical_knowledge_introduction/introduction.pdf)(https://mineru.net) +- [ ] 图表内容识别 # Known Issues - 阅读顺序基于模型对可阅读内容在空间中的分布进行排序,在极端复杂的排版下可能会部分区域乱序 -- 不支持竖排文字 +- 对竖排文字的支持较为有限 - 目录和列表通过规则进行识别,少部分不常见的列表形式可能无法识别 -- 标题只有一级,目前不支持标题分级 - 代码块在layout模型里还没有支持 - 漫画书、艺术图册、小学教材、习题尚不能很好解析 - 表格识别在复杂表格上可能会出现行/列识别错误 -- 在小语种PDF上,OCR识别可能会出现字符不准确的情况(如拉丁文的重音符号、阿拉伯文易混淆字符等) +- 在小语种PDF上,OCR识别可能会出现字符不准确的情况(如阿拉伯文易混淆字符等) - 部分公式可能会无法在markdown中渲染 # FAQ - -[常见问题](docs/FAQ_zh_cn.md) - - -[FAQ](docs/FAQ_en_us.md) + +- 如果您在使用过程中遇到问题,可以先查看[常见问题](https://opendatalab.github.io/MinerU/zh/faq/)是否有解答。 +- 如果未能解决您的问题,您也可以使用[DeepWiki](https://deepwiki.com/opendatalab/MinerU)与AI助手交流,这可以解决大部分常见问题。 +- 如果您仍然无法解决问题,您可通过[Discord](https://discord.gg/Tdedn9GTXq)或[WeChat](https://mineru.net/community-portal/?aliasId=3c430f94)加入社区,与其他用户和开发者交流。 # All Thanks To Our Contributors @@ -411,31 +338,52 @@ TODO # License Information -[LICENSE.md](LICENSE.md) - -本项目目前采用PyMuPDF以实现高级功能,但因其遵循AGPL协议,可能对某些使用场景构成限制。未来版本迭代中,我们计划探索并替换为许可条款更为宽松的PDF处理库,以提升用户友好度及灵活性。 +本仓库采用 [MinerU 开源许可证](https://github.com/opendatalab/MinerU/blob/master/LICENSE.md) 进行许可,基于 Apache 2.0 并附带额外条款。 # Acknowledgments -- [PDF-Extract-Kit](https://github.com/opendatalab/PDF-Extract-Kit) -- [StructEqTable](https://github.com/UniModal4Reasoning/StructEqTable-Deploy) +- [UniMERNet](https://github.com/opendatalab/UniMERNet) +- [TableStructureRec](https://github.com/RapidAI/TableStructureRec) - [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR) -- [PyMuPDF](https://github.com/pymupdf/PyMuPDF) -- [layoutreader](https://github.com/ppaanngggg/layoutreader) +- [PaddleOCR2Pytorch](https://github.com/frotms/PaddleOCR2Pytorch) - [fast-langdetect](https://github.com/LlmKira/fast-langdetect) +- [pypdfium2](https://github.com/pypdfium2-team/pypdfium2) +- [pdftext](https://github.com/datalab-to/pdftext) - [pdfminer.six](https://github.com/pdfminer/pdfminer.six) +- [pypdf](https://github.com/py-pdf/pypdf) +- [magika](https://github.com/google/magika) +- [vLLM](https://github.com/vllm-project/vllm) +- [LMDeploy](https://github.com/InternLM/lmdeploy) # Citation ```bibtex -@misc{wang2024mineruopensourcesolutionprecise, - title={MinerU: An Open-Source Solution for Precise Document Content Extraction}, - author={Bin Wang and Chao Xu and Xiaomeng Zhao and Linke Ouyang and Fan Wu and Zhiyuan Zhao and Rui Xu and Kaiwen Liu and Yuan Qu and Fukai Shang and Bo Zhang and Liqun Wei and Zhihao Sui and Wei Li and Botian Shi and Yu Qiao and Dahua Lin and Conghui He}, - year={2024}, - eprint={2409.18839}, - archivePrefix={arXiv}, - primaryClass={cs.CV}, - url={https://arxiv.org/abs/2409.18839}, +@article{wang2026mineru2, + title={MinerU2. 5-Pro: Pushing the Limits of Data-Centric Document Parsing at Scale}, + author={Wang, Bin and He, Tianyao and Ouyang, Linke and Wu, Fan and Zhao, Zhiyuan and Chu, Tao and Qu, Yuan and Jin, Zhenjiang and Zeng, Weijun and Miao, Ziyang and others}, + journal={arXiv preprint arXiv:2604.04771}, + year={2026} +} + +@article{dong2026minerudiffusion, + title={MinerU-Diffusion: Rethinking Document OCR as Inverse Rendering via Diffusion Decoding}, + author={Dong, Hejun and Niu, Junbo and Wang, Bin and Zeng, Weijun and Zhang, Wentao and He, Conghui}, + journal={arXiv preprint arXiv:2603.22458}, + year={2026} +} + +@article{niu2025mineru2, + title={Mineru2. 5: A decoupled vision-language model for efficient high-resolution document parsing}, + author={Niu, Junbo and Liu, Zheng and Gu, Zhuangcheng and Wang, Bin and Ouyang, Linke and Zhao, Zhiyuan and Chu, Tao and He, Tianyao and Wu, Fan and Zhang, Qintong and others}, + journal={arXiv preprint arXiv:2509.22186}, + year={2025} +} + +@article{wang2024mineru, + title={Mineru: An open-source solution for precise document content extraction}, + author={Wang, Bin and Xu, Chao and Zhao, Xiaomeng and Ouyang, Linke and Wu, Fan and Zhao, Zhiyuan and Xu, Rui and Liu, Kaiwen and Qu, Yuan and Shang, Fukai and others}, + journal={arXiv preprint arXiv:2409.18839}, + year={2024} } @article{he2024opendatalab, @@ -456,16 +404,14 @@ TODO -# Magic-doc - -[Magic-Doc](https://github.com/InternLM/magic-doc) Fast speed ppt/pptx/doc/docx/pdf extraction tool - -# Magic-html - -[Magic-HTML](https://github.com/opendatalab/magic-html) Mixed web page extraction tool # Links - +- [Easy Data Preparation with latest LLMs-based Operators and Pipelines](https://github.com/OpenDCAI/DataFlow) +- [Vis3 (OSS browser based on s3)](https://github.com/opendatalab/Vis3) - [LabelU (A Lightweight Multi-modal Data Annotation Tool)](https://github.com/opendatalab/labelU) - [LabelLLM (An Open-source LLM Dialogue Annotation Platform)](https://github.com/opendatalab/LabelLLM) - [PDF-Extract-Kit (A Comprehensive Toolkit for High-Quality PDF Content Extraction)](https://github.com/opendatalab/PDF-Extract-Kit) +- [OmniDocBench (A Comprehensive Benchmark for Document Parsing and Evaluation)](https://github.com/opendatalab/OmniDocBench) +- [Magic-HTML (Mixed web page extraction tool)](https://github.com/opendatalab/magic-html) +- [Magic-Doc (Fast speed ppt/pptx/doc/docx/pdf extraction tool)](https://github.com/InternLM/magic-doc) +- [Dingo: A Comprehensive AI Data Quality Evaluation Tool](https://github.com/MigoXLab/dingo) diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..7e96a1695 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,31 @@ +# Security Policy + +## Supported Versions + +latest + +## Reporting a Vulnerability + +Please do not report security vulnerabilities through public GitHub issues. + +Instead, please report them at https://github.com/opendatalab/MinerU/security. + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + + * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) + * Full paths of source file(s) related to the manifestation of the issue + * The location of the affected source code (tag/branch/commit or direct URL) + * Any special configuration required to reproduce the issue + * Step-by-step instructions to reproduce the issue + * Proof-of-concept or exploit code (if possible) + * Impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. + +## Preferred Languages + +We prefer all communications to be in English and Chinese. + +## Policy + +We will fix security issues in the project's own code as quickly as possible. Before the project completes the fix, you must not disclose the vulnerability information to any public platform. diff --git a/demo/demo.py b/demo/demo.py index a3bd6d038..8a4235a92 100644 --- a/demo/demo.py +++ b/demo/demo.py @@ -1,25 +1,256 @@ +# Copyright (c) Opendatalab. All rights reserved. +import asyncio import os +import tempfile +from pathlib import Path -from loguru import logger -from magic_pdf.pipe.UNIPipe import UNIPipe -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter - - -try: - current_script_dir = os.path.dirname(os.path.abspath(__file__)) - demo_name = "demo1" - pdf_path = os.path.join(current_script_dir, f"{demo_name}.pdf") - pdf_bytes = open(pdf_path, "rb").read() - jso_useful_key = {"_pdf_type": "", "model_list": []} - local_image_dir = os.path.join(current_script_dir, 'images') - image_dir = str(os.path.basename(local_image_dir)) - image_writer = DiskReaderWriter(local_image_dir) - pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer) - pipe.pipe_classify() - pipe.pipe_analyze() - pipe.pipe_parse() - md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none") - with open(f"{demo_name}.md", "w", encoding="utf-8") as f: - f.write(md_content) -except Exception as e: - logger.exception(e) \ No newline at end of file +import httpx + +from mineru.cli import api_client as _api_client +from mineru.cli.common import image_suffixes, office_suffixes, pdf_suffixes +from mineru.utils.guess_suffix_or_lang import guess_suffix_by_path + +SUPPORTED_INPUT_SUFFIXES = set(pdf_suffixes + image_suffixes + office_suffixes) + + +def collect_input_files(input_path: str | Path) -> list[Path]: + path = Path(input_path).expanduser().resolve() + if not path.exists(): + raise FileNotFoundError(f"Input path does not exist: {path}") + + if path.is_file(): + file_suffix = guess_suffix_by_path(path) + if file_suffix not in SUPPORTED_INPUT_SUFFIXES: + raise ValueError(f"Unsupported input file type: {path.name}") + return [path] + + if not path.is_dir(): + raise ValueError(f"Input path must be a file or directory: {path}") + + input_files = sorted( + ( + candidate.resolve() + for candidate in path.iterdir() + if candidate.is_file() + and guess_suffix_by_path(candidate) in SUPPORTED_INPUT_SUFFIXES + ), + key=lambda item: item.name, + ) + if not input_files: + raise ValueError(f"No supported files found in directory: {path}") + return input_files + + +def build_form_data( + language: str, + backend: str, + parse_method: str, + formula_enable: bool, + table_enable: bool, + server_url: str | None, + start_page_id: int, + end_page_id: int | None, +) -> dict[str, str | list[str]]: + return _api_client.build_parse_request_form_data( + lang_list=[language], + backend=backend, + parse_method=parse_method, + formula_enable=formula_enable, + table_enable=table_enable, + server_url=server_url, + start_page_id=start_page_id, + end_page_id=end_page_id, + return_md=True, + return_middle_json=False, + return_model_output=False, + return_content_list=False, + return_images=True, + response_format_zip=True, + return_original_file=False, + ) + + +def format_status_message(status_snapshot: _api_client.TaskStatusSnapshot) -> str: + if status_snapshot.queued_ahead is None: + return status_snapshot.status + return f"{status_snapshot.status} (queued_ahead={status_snapshot.queued_ahead})" + + +def prepare_local_api_temp_dir() -> None: + current_temp_dir = Path(tempfile.gettempdir()) + if os.name == "nt" or not Path("/tmp").exists(): + return + if not str(current_temp_dir).startswith("/mnt/"): + return + + # vLLM/ZeroMQ IPC sockets fail on drvfs-backed temp directories under WSL. + os.environ["TMPDIR"] = "/tmp" + tempfile.tempdir = None + + +async def run_demo( + input_path: str | Path, + output_dir: str | Path, + *, + api_url: str | None = None, + backend: str = "hybrid-auto-engine", + parse_method: str = "auto", + language: str = "ch", + formula_enable: bool = True, + table_enable: bool = True, + server_url: str | None = None, + start_page_id: int = 0, + end_page_id: int | None = None, +) -> None: + api_url = api_url or None + server_url = server_url or None + if backend.endswith("http-client") and not server_url: + raise ValueError(f"backend={backend} requires server_url") + + input_files = collect_input_files(input_path) + output_path = Path(output_dir).expanduser().resolve() + output_path.mkdir(parents=True, exist_ok=True) + + form_data = build_form_data( + language=language, + backend=backend, + parse_method=parse_method, + formula_enable=formula_enable, + table_enable=table_enable, + server_url=server_url, + start_page_id=start_page_id, + end_page_id=end_page_id, + ) + upload_assets = [ + _api_client.UploadAsset(path=file_path, upload_name=file_path.name) + for file_path in input_files + ] + + local_server: _api_client.LocalAPIServer | None = None + result_zip_path: Path | None = None + task_label = f"{len(input_files)} file(s)" + + async with httpx.AsyncClient( + timeout=_api_client.build_http_timeout(), + follow_redirects=True, + ) as http_client: + try: + if api_url is None: + prepare_local_api_temp_dir() + local_server = _api_client.LocalAPIServer() + base_url = local_server.start() + print(f"Started local mineru-api: {base_url}") + server_health = await _api_client.wait_for_local_api_ready( + http_client, + local_server, + ) + else: + server_health = await _api_client.fetch_server_health( + http_client, + _api_client.normalize_base_url(api_url), + ) + + print(f"Using API: {server_health.base_url}") + print(f"Submitting {len(upload_assets)} file(s)") + submit_response = await _api_client.submit_parse_task( + base_url=server_health.base_url, + upload_assets=upload_assets, + form_data=form_data, + ) + print(f"task_id: {submit_response.task_id}") + if submit_response.queued_ahead is not None: + print(f"status: pending (queued_ahead={submit_response.queued_ahead})") + + last_status_message = None + + def on_status_update(status_snapshot: _api_client.TaskStatusSnapshot) -> None: + nonlocal last_status_message + message = format_status_message(status_snapshot) + if message == last_status_message: + return + last_status_message = message + print(f"status: {message}") + + await _api_client.wait_for_task_result( + client=http_client, + submit_response=submit_response, + task_label=task_label, + status_snapshot_callback=on_status_update, + ) + print("status: completed") + result_zip_path = await _api_client.download_result_zip( + client=http_client, + submit_response=submit_response, + task_label=task_label, + ) + finally: + if local_server is not None: + local_server.stop() + + assert result_zip_path is not None + try: + _api_client.safe_extract_zip(result_zip_path, output_path) + finally: + result_zip_path.unlink(missing_ok=True) + print(f"Extracted result to: {output_path}") + + +def main() -> None: + demo_dir = Path(__file__).resolve().parent + + # Input can be a single supported file or a directory containing supported files. + input_path = demo_dir / "pdfs" + # Parsed outputs will be extracted into this directory. + output_dir = demo_dir / "api_output" + # Set this to an existing MinerU FastAPI base URL, for example: + # "http://127.0.0.1:8000" + # Leave it as None to start a temporary local mineru-api automatically. + api_url = None + + # Available examples: + # "hybrid-auto-engine" -> local hybrid parsing, recommended default + # "pipeline" -> more general OCR/text pipeline + # "vlm-auto-engine" -> local VLM parsing + # "vlm-http-client" -> remote OpenAI-compatible VLM server + # "hybrid-http-client" -> remote OpenAI-compatible hybrid server + backend = "hybrid-auto-engine" + # Available options: + # "auto" -> let MinerU choose between text extraction and OCR + # "txt" -> force text extraction + # "ocr" -> force OCR + parse_method = "auto" + # OCR language hint. This is mainly used by pipeline and hybrid backends. + language = "ch" + # Enable formula parsing in the output. + formula_enable = True + # Enable table parsing in the output. + table_enable = True + # Required only for "*-http-client" backends, for example: + # "http://127.0.0.1:30000" + server_url = None + # Zero-based page range. Set end_page_id to None to parse to the last page. + start_page_id = 0 + end_page_id = None + + """如果您由于网络问题无法下载模型,可以设置环境变量MINERU_MODEL_SOURCE为modelscope使用免代理仓库下载模型""" + # os.environ['MINERU_MODEL_SOURCE'] = "modelscope" + + asyncio.run( + run_demo( + input_path=input_path, + output_dir=output_dir, + api_url=api_url, + backend=backend, + parse_method=parse_method, + language=language, + formula_enable=formula_enable, + table_enable=table_enable, + server_url=server_url, + start_page_id=start_page_id, + end_page_id=end_page_id, + ) + ) + + +if __name__ == "__main__": + main() diff --git a/demo/demo1.json b/demo/demo1.json deleted file mode 100644 index e3b5a30aa..000000000 --- a/demo/demo1.json +++ /dev/null @@ -1 +0,0 @@ -[{"layout_dets": [{"category_id": 2, "poly": [117.85147857666016, 198.19203186035156, 268.09375, 198.19203186035156, 268.09375, 365.4513854980469, 117.85147857666016, 365.4513854980469], "score": 1.0}, {"category_id": 2, "poly": [516.9244995117188, 193.8611297607422, 983.7249145507812, 193.8611297607422, 983.7249145507812, 288.566650390625, 516.9244995117188, 288.566650390625], "score": 0.9999980926513672}, {"category_id": 2, "poly": [119.0521469116211, 1793.3775634765625, 774.3035888671875, 1793.3775634765625, 774.3035888671875, 1842.8583984375, 119.0521469116211, 1842.8583984375], "score": 0.9999951720237732}, {"category_id": 1, "poly": [213.19744873046875, 621.9070434570312, 1290.4381103515625, 621.9070434570312, 1290.4381103515625, 733.4085693359375, 213.19744873046875, 733.4085693359375], "score": 0.9999936819076538}, {"category_id": 1, "poly": [390.47998046875, 751.6647338867188, 1108.0994873046875, 751.6647338867188, 1108.0994873046875, 774.5253295898438, 390.47998046875, 774.5253295898438], "score": 0.9999909400939941}, {"category_id": 2, "poly": [556.6760864257812, 343.6651306152344, 942.158447265625, 343.6651306152344, 942.158447265625, 368.6150207519531, 556.6760864257812, 368.6150207519531], "score": 0.9999899864196777}, {"category_id": 0, "poly": [245.8207244873047, 472.72943115234375, 1257.65380859375, 472.72943115234375, 1257.65380859375, 520.0311889648438, 245.8207244873047, 520.0311889648438], "score": 0.9999768137931824}, {"category_id": 2, "poly": [1119.6229248046875, 199.3274383544922, 1376.630859375, 199.3274383544922, 1376.630859375, 384.0538024902344, 1119.6229248046875, 384.0538024902344], "score": 0.9999668002128601}, {"category_id": 1, "poly": [118.14305114746094, 1571.5140380859375, 864.8477172851562, 1571.5140380859375, 864.8477172851562, 1594.3565673828125, 118.14305114746094, 1594.3565673828125], "score": 0.999945342540741}, {"category_id": 0, "poly": [118.69384002685547, 862.561767578125, 209.67910766601562, 862.561767578125, 209.67910766601562, 888.9332885742188, 118.69384002685547, 888.9332885742188], "score": 0.9999412298202515}, {"category_id": 1, "poly": [239.3308868408203, 550.2936401367188, 1257.6968994140625, 550.2936401367188, 1257.6968994140625, 596.7587280273438, 239.3308868408203, 596.7587280273438], "score": 0.9999355673789978}, {"category_id": 2, "poly": [117.71773529052734, 1687.8800048828125, 1379.2835693359375, 1687.8800048828125, 1379.2835693359375, 1766.3516845703125, 117.71773529052734, 1766.3516845703125], "score": 0.999925971031189}, {"category_id": 1, "poly": [115.68157958984375, 913.7571411132812, 1385.33837890625, 913.7571411132812, 1385.33837890625, 1533.5689697265625, 115.68157958984375, 1533.5689697265625], "score": 0.999893307685852}, {"category_id": 2, "poly": [1084.155517578125, 374.07135009765625, 1378.12109375, 374.07135009765625, 1378.12109375, 396.0621032714844, 1084.155517578125, 396.0621032714844], "score": 0.9371034502983093}, {"category_id": 13, "poly": [714, 1383, 767, 1383, 767, 1411, 714, 1411], "score": 0.89, "latex": "N_{\\mathrm{zero}}"}, {"category_id": 13, "poly": [571, 1351, 636, 1351, 636, 1380, 571, 1380], "score": 0.87, "latex": "(N_{\\mathrm{zero}})"}, {"category_id": 13, "poly": [398, 1793, 419, 1793, 419, 1815, 398, 1815], "score": 0.75, "latex": "\\copyright"}, {"category_id": 13, "poly": [116, 1509, 140, 1509, 140, 1533, 116, 1533], "score": 0.73, "latex": "\\copyright"}, {"category_id": 13, "poly": [315, 1713, 479, 1713, 479, 1739, 315, 1739], "score": 0.36, "latex": "+61\\;3\\;9450\\;8719"}, {"category_id": 13, "poly": [148, 1743, 166, 1743, 166, 1765, 148, 1765], "score": 0.35, "latex": "E"}, {"category_id": 13, "poly": [369, 1743, 387, 1743, 387, 1764, 369, 1764], "score": 0.26, "latex": "@"}, {"category_id": 15, "poly": [120.0, 338.0, 266.0, 338.0, 266.0, 374.0, 120.0, 374.0], "score": 1.0, "text": "ELSEVIER"}, {"category_id": 15, "poly": [515.0, 194.0, 986.0, 194.0, 986.0, 224.0, 515.0, 224.0], "score": 0.99, "text": "Available online at www.sciencedirect.com"}, {"category_id": 15, "poly": [599.0, 245.0, 728.0, 245.0, 728.0, 275.0, 599.0, 275.0], "score": 0.99, "text": "SCIENCE"}, {"category_id": 15, "poly": [712.0, 237.0, 905.0, 229.0, 907.0, 281.0, 714.0, 289.0], "score": 0.77, "text": "CDIRECT."}, {"category_id": 15, "poly": [116.0, 1819.0, 427.0, 1819.0, 427.0, 1847.0, 116.0, 1847.0], "score": 0.99, "text": "doi:10.1016/j.jhydrol.2005.01.006"}, {"category_id": 15, "poly": [114.0, 1793.0, 397.0, 1793.0, 397.0, 1821.0, 114.0, 1821.0], "score": 0.96, "text": "0022-1694/$ - see front matter"}, {"category_id": 15, "poly": [420.0, 1793.0, 777.0, 1793.0, 777.0, 1821.0, 420.0, 1821.0], "score": 0.98, "text": " 2005 Elsevier B.V. All rights reserved."}, {"category_id": 15, "poly": [210.0, 624.0, 1291.0, 624.0, 1291.0, 654.0, 210.0, 654.0], "score": 0.97, "text": "aSchool of Forest and Ecosystem Studies,University of Melbourne,P.O.Box 137,Heidelberg,Victoria 3084,Australia"}, {"category_id": 15, "poly": [460.0, 647.0, 1040.0, 649.0, 1039.0, 679.0, 460.0, 677.0], "score": 0.96, "text": "bCSIRODivision of Land andWater,Canberra,ACT,Australia"}, {"category_id": 15, "poly": [369.0, 679.0, 1130.0, 679.0, 1130.0, 710.0, 369.0, 710.0], "score": 0.97, "text": "cCooperative Research Centre for Catchment Hydrology, Canberra,ACT, Australia"}, {"category_id": 15, "poly": [299.0, 701.0, 1203.0, 703.0, 1203.0, 740.0, 299.0, 737.0], "score": 0.98, "text": "dDepartment of Civil and Environmental Engineering, University of Melbourne, Victoria, Australia"}, {"category_id": 15, "poly": [389.0, 750.0, 1108.0, 750.0, 1108.0, 780.0, 389.0, 780.0], "score": 0.99, "text": "Received 1 October 2003; revised 22 December 2004; accepted 3 January 2005"}, {"category_id": 15, "poly": [554.0, 340.0, 945.0, 337.0, 945.0, 374.0, 554.0, 376.0], "score": 0.98, "text": "Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [247.0, 477.0, 1252.0, 477.0, 1252.0, 520.0, 247.0, 520.0], "score": 0.99, "text": "The response of flow duration curves to afforestation"}, {"category_id": 15, "poly": [1165.0, 212.0, 1285.0, 218.0, 1283.0, 256.0, 1164.0, 251.0], "score": 1.0, "text": "Journal"}, {"category_id": 15, "poly": [1171.0, 260.0, 1207.0, 260.0, 1207.0, 290.0, 1171.0, 290.0], "score": 0.84, "text": "of"}, {"category_id": 15, "poly": [1157.0, 290.0, 1379.0, 297.0, 1378.0, 351.0, 1155.0, 343.0], "score": 1.0, "text": "Hydrology"}, {"category_id": 15, "poly": [1164.0, 374.0, 1368.0, 374.0, 1368.0, 389.0, 1164.0, 389.0], "score": 0.73, "text": "nuriarnom/laonta/ihrdr"}, {"category_id": 15, "poly": [116.0, 1572.0, 868.0, 1572.0, 868.0, 1600.0, 116.0, 1600.0], "score": 0.99, "text": "Keywords: Afforestation; Flow duration curves; Flow reduction; Paired catchments"}, {"category_id": 15, "poly": [116.0, 862.0, 213.0, 862.0, 213.0, 894.0, 116.0, 894.0], "score": 1.0, "text": "Abstract"}, {"category_id": 15, "poly": [238.0, 557.0, 1254.0, 557.0, 1254.0, 600.0, 238.0, 600.0], "score": 0.94, "text": "Patrick N.J. Lanea,c,*, Alice E. Bestb,c,d, Klaus Hickelb;c, Lu Zhangbc"}, {"category_id": 15, "poly": [127.0, 1681.0, 1381.0, 1683.0, 1381.0, 1720.0, 127.0, 1718.0], "score": 0.98, "text": "* Corresponding author. Address: Forest Science Centre, Department of Sustainability and Environment, P.O. Box 137, Heidelberg, Vic."}, {"category_id": 15, "poly": [114.0, 1711.0, 314.0, 1714.0, 314.0, 1744.0, 114.0, 1741.0], "score": 0.97, "text": "3084,Australia.Tel.:"}, {"category_id": 15, "poly": [480.0, 1711.0, 702.0, 1714.0, 702.0, 1744.0, 480.0, 1741.0], "score": 0.93, "text": ";fax: +61 3 9450 8644."}, {"category_id": 15, "poly": [167.0, 1744.0, 368.0, 1744.0, 368.0, 1772.0, 167.0, 1772.0], "score": 1.0, "text": "mailaddress:patrickl"}, {"category_id": 15, "poly": [388.0, 1744.0, 657.0, 1744.0, 657.0, 1772.0, 388.0, 1772.0], "score": 1.0, "text": "unimelb.edu.au (P.N.J. Lane)."}, {"category_id": 15, "poly": [137.0, 912.0, 1385.0, 912.0, 1385.0, 948.0, 137.0, 948.0], "score": 0.98, "text": " The hydrologic effect of replacing pasture or other short crops with trees is reasonably well understood on a mean annual"}, {"category_id": 15, "poly": [116.0, 946.0, 1383.0, 946.0, 1383.0, 976.0, 116.0, 976.0], "score": 0.99, "text": "basis. The impact on fow regime, as described by the annual flow duration curve (FDC) is less certain. A method to assess the"}, {"category_id": 15, "poly": [114.0, 974.0, 1383.0, 974.0, 1383.0, 1010.0, 114.0, 1010.0], "score": 0.99, "text": "impact of plantation establishment on FDCs was developed. The starting point for the analyses was the assumption that rainfall"}, {"category_id": 15, "poly": [116.0, 1008.0, 1381.0, 1008.0, 1381.0, 1038.0, 116.0, 1038.0], "score": 0.99, "text": "and vegetation age are the principal drivers of evapotranspiration. A key objective was to remove the variability in the rainfall"}, {"category_id": 15, "poly": [116.0, 1041.0, 1381.0, 1041.0, 1381.0, 1071.0, 116.0, 1071.0], "score": 0.99, "text": "signal, leaving changes in streamflow solely attributable to the evapotranspiration of the plantation. A method was developed to"}, {"category_id": 15, "poly": [116.0, 1073.0, 1381.0, 1073.0, 1381.0, 1103.0, 116.0, 1103.0], "score": 0.98, "text": "(1) fit a model to the observed annual time series of FDC percentiles; i.e. 1oth percentile for each year of record with annual"}, {"category_id": 15, "poly": [114.0, 1101.0, 1381.0, 1103.0, 1381.0, 1133.0, 114.0, 1131.0], "score": 0.99, "text": "rainfall and plantation age as parameters, (2) replace the annual rainfall variation with the long term mean to obtain climate"}, {"category_id": 15, "poly": [118.0, 1135.0, 1383.0, 1135.0, 1383.0, 1165.0, 118.0, 1165.0], "score": 0.99, "text": "adjusted FDCs, and (3) quantify changes in FDC percentiles as plantations age. Data from 10 catchments from Australia, South"}, {"category_id": 15, "poly": [118.0, 1165.0, 1381.0, 1165.0, 1381.0, 1195.0, 118.0, 1195.0], "score": 0.99, "text": "Africa and New Zealand were used. The model was able to represent flow variation for the majority of percentiles at eight of the"}, {"category_id": 15, "poly": [114.0, 1191.0, 1383.0, 1193.0, 1383.0, 1230.0, 114.0, 1228.0], "score": 0.98, "text": "10 catchments, particularly for the 10-50th percentiles. The adjusted FDCs revealed variable patterns in flow reductions with"}, {"category_id": 15, "poly": [116.0, 1230.0, 1379.0, 1230.0, 1379.0, 1260.0, 116.0, 1260.0], "score": 0.98, "text": "two types of responses (groups) being identified. Group 1 catchments show a substantial increase in the number of zero fow"}, {"category_id": 15, "poly": [114.0, 1258.0, 1381.0, 1260.0, 1381.0, 1290.0, 114.0, 1288.0], "score": 0.98, "text": "days, with low flows being more affected than high flows. Group 2 catchments show a more uniform reduction in flows across"}, {"category_id": 15, "poly": [116.0, 1292.0, 1383.0, 1292.0, 1383.0, 1322.0, 116.0, 1322.0], "score": 0.98, "text": "all percentiles. The differences may be partly explained by storage characteristics. The modelled fow reductions were in accord"}, {"category_id": 15, "poly": [116.0, 1322.0, 1381.0, 1322.0, 1381.0, 1352.0, 116.0, 1352.0], "score": 1.0, "text": "with published results of paired catchment experiments. An additional analysis was performed to characterise the impact of"}, {"category_id": 15, "poly": [116.0, 1417.0, 1381.0, 1417.0, 1381.0, 1447.0, 116.0, 1447.0], "score": 1.0, "text": "in the occurrence of any given flow in response to afforestation. The methods used in this study proved satisfactory in removing"}, {"category_id": 15, "poly": [116.0, 1449.0, 1383.0, 1449.0, 1383.0, 1479.0, 116.0, 1479.0], "score": 0.99, "text": "the rainfall variability, and have added useful insight into the hydrologic impacts of plantation establishment. This approach"}, {"category_id": 15, "poly": [116.0, 1479.0, 1379.0, 1479.0, 1379.0, 1509.0, 116.0, 1509.0], "score": 0.99, "text": "provides a methodology for understanding catchment response to afforestation, where paired catchment data is not available."}, {"category_id": 15, "poly": [114.0, 1382.0, 713.0, 1387.0, 713.0, 1417.0, 114.0, 1413.0], "score": 0.98, "text": "when adjusted for climate, indicated a significant increase in"}, {"category_id": 15, "poly": [768.0, 1382.0, 1381.0, 1387.0, 1381.0, 1417.0, 768.0, 1413.0], "score": 0.98, "text": ".The zero flow day method could be used to determine change"}, {"category_id": 15, "poly": [116.0, 1354.0, 570.0, 1354.0, 570.0, 1385.0, 116.0, 1385.0], "score": 0.98, "text": "afforestation on the number of zero flow days"}, {"category_id": 15, "poly": [637.0, 1354.0, 1383.0, 1354.0, 1383.0, 1385.0, 637.0, 1385.0], "score": 0.99, "text": "for the catchments in group 1. This model performed particularly well, and"}, {"category_id": 15, "poly": [141.0, 1507.0, 541.0, 1509.0, 541.0, 1539.0, 141.0, 1537.0], "score": 0.98, "text": "2005 Elsevier B.V. All rights reserved."}, {"category_id": 15, "poly": [1080.0, 368.0, 1383.0, 365.0, 1383.0, 402.0, 1080.0, 404.0], "score": 0.99, "text": "www.elsevier.com/locate/jhydrol"}], "page_info": {"page_no": 0, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 0, "poly": [130.931640625, 251.82516479492188, 312.8154296875, 251.82516479492188, 312.8154296875, 283.4620056152344, 130.931640625, 283.4620056152344], "score": 0.9999987483024597}, {"category_id": 4, "poly": [794.2171020507812, 763.5051879882812, 1396.4493408203125, 763.5051879882812, 1396.4493408203125, 818.8292236328125, 794.2171020507812, 818.8292236328125], "score": 0.9999982714653015}, {"category_id": 1, "poly": [130.19113159179688, 1017.6807861328125, 732.7059326171875, 1017.6807861328125, 732.7059326171875, 1849.8070068359375, 130.19113159179688, 1849.8070068359375], "score": 0.9999954104423523}, {"category_id": 1, "poly": [793.3727416992188, 1280.632568359375, 1397.07080078125, 1280.632568359375, 1397.07080078125, 1849.0452880859375, 793.3727416992188, 1849.0452880859375], "score": 0.9999947547912598}, {"category_id": 1, "poly": [793.5277099609375, 849.8186645507812, 1397.0140380859375, 849.8186645507812, 1397.0140380859375, 1280.6221923828125, 793.5277099609375, 1280.6221923828125], "score": 0.999994158744812}, {"category_id": 1, "poly": [130.5381317138672, 317.5604248046875, 731.9227905273438, 317.5604248046875, 731.9227905273438, 1015.91748046875, 130.5381317138672, 1015.91748046875], "score": 0.9999940395355225}, {"category_id": 2, "poly": [130.44467163085938, 194.42764282226562, 166.39125061035156, 194.42764282226562, 166.39125061035156, 215.1434783935547, 130.44467163085938, 215.1434783935547], "score": 0.999992847442627}, {"category_id": 2, "poly": [479.5857849121094, 195.1154022216797, 1045.4803466796875, 195.1154022216797, 1045.4803466796875, 218.7963104248047, 479.5857849121094, 218.7963104248047], "score": 0.99998939037323}, {"category_id": 3, "poly": [799.3821411132812, 256.1320495605469, 1390.73681640625, 256.1320495605469, 1390.73681640625, 742.4434204101562, 799.3821411132812, 742.4434204101562], "score": 0.9999882578849792}, {"category_id": 13, "poly": [984, 1180, 1065, 1180, 1065, 1211, 984, 1211], "score": 0.88, "latex": "<20\\%"}, {"category_id": 13, "poly": [128, 1415, 183, 1415, 183, 1445, 128, 1445], "score": 0.86, "latex": "95\\%"}, {"category_id": 13, "poly": [573, 618, 723, 618, 723, 649, 573, 649], "score": 0.67, "latex": "400\u2013500\\;\\mathrm{mm}"}, {"category_id": 15, "poly": [127.0, 249.0, 316.0, 254.0, 315.0, 291.0, 126.0, 286.0], "score": 1.0, "text": "1. Introduction"}, {"category_id": 15, "poly": [793.0, 765.0, 1394.0, 765.0, 1394.0, 793.0, 793.0, 793.0], "score": 0.98, "text": "Fig. 1. Annual flow duration curves of daily flows from Pine Creek,"}, {"category_id": 15, "poly": [793.0, 793.0, 999.0, 793.0, 999.0, 821.0, 793.0, 821.0], "score": 0.97, "text": "Australia, 1989-2000."}, {"category_id": 15, "poly": [161.0, 1017.0, 735.0, 1017.0, 735.0, 1054.0, 161.0, 1054.0], "score": 0.98, "text": "Zhang et al. (1999, 2001) developed simple and"}, {"category_id": 15, "poly": [127.0, 1051.0, 735.0, 1051.0, 735.0, 1088.0, 127.0, 1088.0], "score": 0.99, "text": "easily parameterised models to predict changes in"}, {"category_id": 15, "poly": [129.0, 1086.0, 730.0, 1086.0, 730.0, 1116.0, 129.0, 1116.0], "score": 0.99, "text": "mean annual fows following afforestation. However,"}, {"category_id": 15, "poly": [129.0, 1120.0, 732.0, 1120.0, 732.0, 1150.0, 129.0, 1150.0], "score": 0.98, "text": "there is a need to consider the annual flow regime as the"}, {"category_id": 15, "poly": [129.0, 1152.0, 732.0, 1152.0, 732.0, 1182.0, 129.0, 1182.0], "score": 0.99, "text": "relative changes in high and low flows may have"}, {"category_id": 15, "poly": [129.0, 1187.0, 730.0, 1187.0, 730.0, 1217.0, 129.0, 1217.0], "score": 0.98, "text": "considerable site specific and downstream impacts.."}, {"category_id": 15, "poly": [129.0, 1219.0, 732.0, 1219.0, 732.0, 1249.0, 129.0, 1249.0], "score": 0.99, "text": "Sikka et al. (2003) recently showed a change from"}, {"category_id": 15, "poly": [127.0, 1249.0, 734.0, 1247.0, 735.0, 1284.0, 127.0, 1286.0], "score": 1.0, "text": "grassland to Eucalyptus globulus plantations in India"}, {"category_id": 15, "poly": [129.0, 1284.0, 728.0, 1284.0, 728.0, 1314.0, 129.0, 1314.0], "score": 0.98, "text": "decreased alow flow index by a factor of two during the"}, {"category_id": 15, "poly": [127.0, 1316.0, 735.0, 1316.0, 735.0, 1352.0, 127.0, 1352.0], "score": 0.99, "text": "first rotation (9 years), and by 3.75 during the second"}, {"category_id": 15, "poly": [129.0, 1352.0, 732.0, 1352.0, 732.0, 1382.0, 129.0, 1382.0], "score": 1.0, "text": "rotation, with more subdued impact on peak flows. The"}, {"category_id": 15, "poly": [129.0, 1385.0, 732.0, 1385.0, 732.0, 1415.0, 129.0, 1415.0], "score": 0.99, "text": "index was defined as the 10 day average flow exceeded"}, {"category_id": 15, "poly": [125.0, 1447.0, 735.0, 1449.0, 734.0, 1486.0, 125.0, 1483.0], "score": 0.98, "text": "duration curves. Scott and Smith (1997) reported"}, {"category_id": 15, "poly": [129.0, 1486.0, 732.0, 1486.0, 732.0, 1516.0, 129.0, 1516.0], "score": 0.96, "text": "proportionally greater reductions in low fows"}, {"category_id": 15, "poly": [125.0, 1511.0, 737.0, 1514.0, 737.0, 1550.0, 125.0, 1548.0], "score": 0.98, "text": "(75-100th percentiles) than annual flows from South"}, {"category_id": 15, "poly": [127.0, 1548.0, 735.0, 1550.0, 734.0, 1580.0, 127.0, 1578.0], "score": 0.99, "text": "African research catchments under conversions from"}, {"category_id": 15, "poly": [125.0, 1582.0, 737.0, 1580.0, 737.0, 1617.0, 125.0, 1619.0], "score": 0.98, "text": " grass to pine and eucalypt plantations, while Bosch"}, {"category_id": 15, "poly": [129.0, 1619.0, 732.0, 1619.0, 732.0, 1649.0, 129.0, 1649.0], "score": 0.98, "text": "(1979) found the greatest reduction in seasonal flow"}, {"category_id": 15, "poly": [129.0, 1651.0, 732.0, 1651.0, 732.0, 1681.0, 129.0, 1681.0], "score": 0.98, "text": "from the summer wet season. Fahey and Jackson"}, {"category_id": 15, "poly": [125.0, 1679.0, 735.0, 1681.0, 734.0, 1718.0, 125.0, 1716.0], "score": 0.99, "text": "(1997) reported the reduction in peak flows was twice"}, {"category_id": 15, "poly": [129.0, 1718.0, 732.0, 1718.0, 732.0, 1748.0, 129.0, 1748.0], "score": 0.98, "text": "that of total flow and low flows for pine afforestation in"}, {"category_id": 15, "poly": [125.0, 1746.0, 732.0, 1748.0, 732.0, 1785.0, 125.0, 1782.0], "score": 0.98, "text": " New Zealand. The generalisations that can be drawn"}, {"category_id": 15, "poly": [129.0, 1784.0, 728.0, 1784.0, 728.0, 1815.0, 129.0, 1815.0], "score": 0.99, "text": "from annual analyses, where processes and hydrologic"}, {"category_id": 15, "poly": [127.0, 1819.0, 732.0, 1817.0, 732.0, 1847.0, 127.0, 1849.0], "score": 0.99, "text": "responses are to a certain extent integrated may not"}, {"category_id": 15, "poly": [184.0, 1415.0, 732.0, 1417.0, 732.0, 1447.0, 184.0, 1445.0], "score": 0.99, "text": "of the time, obtained from analysis of 10-day flow"}, {"category_id": 15, "poly": [823.0, 1277.0, 1400.0, 1279.0, 1400.0, 1316.0, 823.0, 1314.0], "score": 0.98, "text": " This paper presents the results of a project aimed at"}, {"category_id": 15, "poly": [793.0, 1316.0, 1398.0, 1316.0, 1398.0, 1346.0, 793.0, 1346.0], "score": 0.96, "text": "quantifying changes in annual fow regime of"}, {"category_id": 15, "poly": [793.0, 1350.0, 1398.0, 1350.0, 1398.0, 1380.0, 793.0, 1380.0], "score": 0.99, "text": "catchments following plantation establishment. The"}, {"category_id": 15, "poly": [793.0, 1385.0, 1398.0, 1385.0, 1398.0, 1415.0, 793.0, 1415.0], "score": 0.98, "text": "flow regime is represented by the flow duration curve"}, {"category_id": 15, "poly": [793.0, 1417.0, 1398.0, 1417.0, 1398.0, 1447.0, 793.0, 1447.0], "score": 0.99, "text": "(FDC). The key assumption was that rainfall and"}, {"category_id": 15, "poly": [793.0, 1451.0, 1396.0, 1451.0, 1396.0, 1481.0, 793.0, 1481.0], "score": 0.99, "text": "forest age are the principal drivers of evapotranspira-"}, {"category_id": 15, "poly": [788.0, 1481.0, 1400.0, 1481.0, 1400.0, 1518.0, 788.0, 1518.0], "score": 0.99, "text": "tion. For any generalisation of response of the FDC to"}, {"category_id": 15, "poly": [793.0, 1518.0, 1398.0, 1518.0, 1398.0, 1548.0, 793.0, 1548.0], "score": 0.99, "text": "vegetation change, the variation in the annual climate"}, {"category_id": 15, "poly": [790.0, 1550.0, 1398.0, 1550.0, 1398.0, 1580.0, 790.0, 1580.0], "score": 0.97, "text": "signal must be removed. The time-tested solution to"}, {"category_id": 15, "poly": [790.0, 1585.0, 1398.0, 1585.0, 1398.0, 1615.0, 790.0, 1615.0], "score": 1.0, "text": "this problem is the paired-catchment (control versus"}, {"category_id": 15, "poly": [790.0, 1617.0, 1398.0, 1617.0, 1398.0, 1647.0, 790.0, 1647.0], "score": 0.98, "text": "treatment) experiment. The benefits in such studies"}, {"category_id": 15, "poly": [793.0, 1651.0, 1396.0, 1651.0, 1396.0, 1681.0, 793.0, 1681.0], "score": 0.98, "text": "are manifold: unambiguous measures of trends,"}, {"category_id": 15, "poly": [790.0, 1686.0, 1392.0, 1686.0, 1392.0, 1716.0, 790.0, 1716.0], "score": 0.99, "text": "insights into the processes driving those trends,"}, {"category_id": 15, "poly": [793.0, 1716.0, 1400.0, 1716.0, 1400.0, 1752.0, 793.0, 1752.0], "score": 0.96, "text": "excellent opportunities for model parameterisation"}, {"category_id": 15, "poly": [793.0, 1750.0, 1394.0, 1750.0, 1394.0, 1780.0, 793.0, 1780.0], "score": 0.98, "text": "and validation. However these data are not readily"}, {"category_id": 15, "poly": [790.0, 1784.0, 1390.0, 1784.0, 1390.0, 1815.0, 790.0, 1815.0], "score": 0.99, "text": "available for the range of treamtments and environ-"}, {"category_id": 15, "poly": [790.0, 1817.0, 1396.0, 1817.0, 1396.0, 1847.0, 790.0, 1847.0], "score": 0.99, "text": " ments required. Consequently, the aims of this project"}, {"category_id": 15, "poly": [793.0, 851.0, 1398.0, 851.0, 1398.0, 882.0, 793.0, 882.0], "score": 0.99, "text": "apply on a seasonal or shorter scale. Further, the"}, {"category_id": 15, "poly": [788.0, 879.0, 1398.0, 882.0, 1398.0, 918.0, 788.0, 916.0], "score": 1.0, "text": " observed impacts of any land use change on flows may"}, {"category_id": 15, "poly": [788.0, 916.0, 1400.0, 916.0, 1400.0, 952.0, 788.0, 952.0], "score": 0.96, "text": "be exaggerated or understated depending on the"}, {"category_id": 15, "poly": [788.0, 948.0, 1400.0, 948.0, 1400.0, 985.0, 788.0, 985.0], "score": 0.99, "text": "prevailing climate. Observations of fow during"}, {"category_id": 15, "poly": [793.0, 985.0, 1398.0, 985.0, 1398.0, 1015.0, 793.0, 1015.0], "score": 0.98, "text": "extended wet or dry spells, or with high annual"}, {"category_id": 15, "poly": [793.0, 1017.0, 1398.0, 1017.0, 1398.0, 1047.0, 793.0, 1047.0], "score": 1.0, "text": "variability can obscure the real impacts. Fig. 1 plots"}, {"category_id": 15, "poly": [790.0, 1051.0, 1398.0, 1051.0, 1398.0, 1081.0, 790.0, 1081.0], "score": 0.98, "text": " annual FDCs over 12 years of plantation growth for one"}, {"category_id": 15, "poly": [793.0, 1084.0, 1398.0, 1084.0, 1398.0, 1114.0, 793.0, 1114.0], "score": 0.99, "text": "of the catchments used in this study, Pine Creek. The"}, {"category_id": 15, "poly": [786.0, 1114.0, 1400.0, 1116.0, 1400.0, 1152.0, 786.0, 1150.0], "score": 0.97, "text": " net change in flow is obscured by rainfall variability;"}, {"category_id": 15, "poly": [788.0, 1148.0, 1400.0, 1146.0, 1400.0, 1182.0, 788.0, 1185.0], "score": 1.0, "text": "e.g. the greatest change in the FDC is in 1996, with the"}, {"category_id": 15, "poly": [786.0, 1215.0, 1398.0, 1213.0, 1398.0, 1249.0, 786.0, 1251.0], "score": 0.99, "text": " compared with 2000, where there is substantially"}, {"category_id": 15, "poly": [788.0, 1249.0, 941.0, 1249.0, 941.0, 1279.0, 788.0, 1279.0], "score": 0.99, "text": "higher flows."}, {"category_id": 15, "poly": [788.0, 1180.0, 983.0, 1180.0, 983.0, 1217.0, 788.0, 1217.0], "score": 0.96, "text": "stream flowing"}, {"category_id": 15, "poly": [1066.0, 1180.0, 1400.0, 1180.0, 1400.0, 1217.0, 1066.0, 1217.0], "score": 0.96, "text": " of the time. This may be"}, {"category_id": 15, "poly": [161.0, 318.0, 728.0, 318.0, 728.0, 355.0, 161.0, 355.0], "score": 1.0, "text": "Widespread afforestation through plantation estab-"}, {"category_id": 15, "poly": [125.0, 348.0, 732.0, 350.0, 732.0, 387.0, 125.0, 385.0], "score": 1.0, "text": "lishment on non-forested land represents a potentially"}, {"category_id": 15, "poly": [129.0, 389.0, 732.0, 389.0, 732.0, 417.0, 129.0, 417.0], "score": 0.98, "text": "significant alteration of catchment evapotranspiration"}, {"category_id": 15, "poly": [129.0, 421.0, 730.0, 421.0, 730.0, 452.0, 129.0, 452.0], "score": 0.98, "text": "(ET). Using data collated from multiple catchment"}, {"category_id": 15, "poly": [129.0, 456.0, 732.0, 456.0, 732.0, 484.0, 129.0, 484.0], "score": 0.99, "text": "studies, researchers have demonstrated a consistent"}, {"category_id": 15, "poly": [125.0, 482.0, 737.0, 484.0, 737.0, 520.0, 125.0, 518.0], "score": 0.98, "text": " difference in ET between forests and grass or short "}, {"category_id": 15, "poly": [122.0, 518.0, 734.0, 516.0, 735.0, 553.0, 123.0, 555.0], "score": 0.99, "text": " crops, and the relationship between ET and rainfall on"}, {"category_id": 15, "poly": [127.0, 553.0, 732.0, 553.0, 732.0, 583.0, 127.0, 583.0], "score": 1.0, "text": "a mean annual basis (Holmes and Sinclair, 1986;"}, {"category_id": 15, "poly": [127.0, 585.0, 732.0, 585.0, 732.0, 621.0, 127.0, 621.0], "score": 0.99, "text": "Vertessy and Bessard, 1999; Zhang et al., 1999,"}, {"category_id": 15, "poly": [129.0, 654.0, 732.0, 654.0, 732.0, 684.0, 129.0, 684.0], "score": 0.99, "text": "there is an increasing divergence between forest and"}, {"category_id": 15, "poly": [125.0, 684.0, 734.0, 682.0, 735.0, 718.0, 125.0, 720.0], "score": 0.99, "text": "grassland ET (Zhang et al., 2001). Research from"}, {"category_id": 15, "poly": [127.0, 718.0, 732.0, 718.0, 732.0, 755.0, 127.0, 755.0], "score": 0.98, "text": "South Africa in particular has demonstrated flow"}, {"category_id": 15, "poly": [129.0, 755.0, 730.0, 755.0, 730.0, 785.0, 129.0, 785.0], "score": 1.0, "text": "reduction following afforestation with both pine and"}, {"category_id": 15, "poly": [125.0, 783.0, 732.0, 780.0, 732.0, 817.0, 125.0, 819.0], "score": 0.99, "text": "eucalypt species (Bosch, 1979; Van Lill et al., 1980;"}, {"category_id": 15, "poly": [131.0, 819.0, 732.0, 819.0, 732.0, 849.0, 131.0, 849.0], "score": 0.98, "text": "Van Wyk, 1987; Bosch and Von Gadow, 1990; Scott"}, {"category_id": 15, "poly": [129.0, 854.0, 730.0, 854.0, 730.0, 884.0, 129.0, 884.0], "score": 0.99, "text": "and Smith, 1997; Scott et al., 2000). In regions, where"}, {"category_id": 15, "poly": [129.0, 888.0, 732.0, 888.0, 732.0, 918.0, 129.0, 918.0], "score": 1.0, "text": "water is an increasingly valuable resource, prediction"}, {"category_id": 15, "poly": [125.0, 914.0, 735.0, 916.0, 734.0, 952.0, 125.0, 950.0], "score": 1.0, "text": " of the long-term hydrologic impact of afforestation is"}, {"category_id": 15, "poly": [127.0, 952.0, 732.0, 952.0, 732.0, 983.0, 127.0, 983.0], "score": 1.0, "text": "a prerequisite for the optimal planning of catchment"}, {"category_id": 15, "poly": [126.0, 982.0, 232.0, 987.0, 231.0, 1017.0, 124.0, 1012.0], "score": 0.98, "text": "land use."}, {"category_id": 15, "poly": [129.0, 619.0, 572.0, 619.0, 572.0, 649.0, 129.0, 649.0], "score": 0.97, "text": "2001). Once annual rainfall exceeds "}, {"category_id": 15, "poly": [127.0, 189.0, 172.0, 189.0, 172.0, 234.0, 127.0, 234.0], "score": 0.86, "text": "254"}, {"category_id": 15, "poly": [481.0, 194.0, 1046.0, 194.0, 1046.0, 224.0, 481.0, 224.0], "score": 0.97, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}], "page_info": {"page_no": 1, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 0, "poly": [117.54735565185547, 651.1103515625, 250.780029296875, 651.1103515625, 250.780029296875, 683.0104370117188, 117.54735565185547, 683.0104370117188], "score": 0.9999984502792358}, {"category_id": 0, "poly": [118.68109130859375, 719.37060546875, 523.2320556640625, 719.37060546875, 523.2320556640625, 748.71435546875, 118.68109130859375, 748.71435546875], "score": 0.9999982714653015}, {"category_id": 1, "poly": [782.3466796875, 254.3662872314453, 1379.406005859375, 254.3662872314453, 1379.406005859375, 382.8451843261719, 782.3466796875, 382.8451843261719], "score": 0.9999969005584717}, {"category_id": 2, "poly": [466.16595458984375, 194.14617919921875, 1030.9322509765625, 194.14617919921875, 1030.9322509765625, 218.86849975585938, 466.16595458984375, 218.86849975585938], "score": 0.9999963641166687}, {"category_id": 9, "poly": [1347.212890625, 1178.8819580078125, 1379.9034423828125, 1178.8819580078125, 1379.9034423828125, 1209.0960693359375, 1347.212890625, 1209.0960693359375], "score": 0.9999951124191284}, {"category_id": 1, "poly": [118.17451477050781, 252.63734436035156, 717.2734375, 252.63734436035156, 717.2734375, 582.23974609375, 118.17451477050781, 582.23974609375], "score": 0.999994158744812}, {"category_id": 1, "poly": [780.9387817382812, 518.9439697265625, 1381.2352294921875, 518.9439697265625, 1381.2352294921875, 1114.6259765625, 780.9387817382812, 1114.6259765625], "score": 0.9999930262565613}, {"category_id": 9, "poly": [1346.75439453125, 438.8963317871094, 1380.3604736328125, 438.8963317871094, 1380.3604736328125, 467.5118713378906, 1346.75439453125, 467.5118713378906], "score": 0.9999922513961792}, {"category_id": 1, "poly": [781.1512451171875, 1283.9832763671875, 1380.4686279296875, 1283.9832763671875, 1380.4686279296875, 1845.6868896484375, 781.1512451171875, 1845.6868896484375], "score": 0.9999905824661255}, {"category_id": 1, "poly": [118.1343994140625, 788.8043212890625, 716.4190673828125, 788.8043212890625, 716.4190673828125, 1282.203125, 118.1343994140625, 1282.203125], "score": 0.9999904632568359}, {"category_id": 2, "poly": [1346.32177734375, 194.7462615966797, 1381.36328125, 194.7462615966797, 1381.36328125, 216.9466552734375, 1346.32177734375, 216.9466552734375], "score": 0.9999903440475464}, {"category_id": 1, "poly": [117.631591796875, 1283.8558349609375, 716.6098022460938, 1283.8558349609375, 716.6098022460938, 1847.49853515625, 117.631591796875, 1847.49853515625], "score": 0.9999891519546509}, {"category_id": 8, "poly": [778.0137939453125, 1156.5975341796875, 1201.7086181640625, 1156.5975341796875, 1201.7086181640625, 1238.48828125, 778.0137939453125, 1238.48828125], "score": 0.9998936653137207}, {"category_id": 8, "poly": [779.0469360351562, 433.1261901855469, 996.4776000976562, 433.1261901855469, 996.4776000976562, 470.7110595703125, 779.0469360351562, 470.7110595703125], "score": 0.979882001876831}, {"category_id": 14, "poly": [777, 1156, 1200, 1156, 1200, 1237, 777, 1237], "score": 0.92, "latex": "Q_{\\mathcal{U}}=a+b(\\Delta P)+\\frac{Y}{1+\\exp\\!\\left(\\frac{T-T_{\\mathrm{half}}}{S}\\right)}"}, {"category_id": 13, "poly": [1150, 520, 1201, 520, 1201, 551, 1150, 551], "score": 0.9, "latex": "f(P)"}, {"category_id": 13, "poly": [1210, 1384, 1262, 1384, 1262, 1414, 1210, 1414], "score": 0.9, "latex": "T_{\\mathrm{half}}"}, {"category_id": 13, "poly": [856, 520, 897, 520, 897, 550, 856, 550], "score": 0.9, "latex": "Q_{\\mathcal{k}}"}, {"category_id": 13, "poly": [930, 552, 982, 552, 982, 584, 930, 584], "score": 0.89, "latex": "g(T)"}, {"category_id": 13, "poly": [857, 1285, 898, 1285, 898, 1315, 857, 1315], "score": 0.89, "latex": "Q_{\\mathcal{k}}"}, {"category_id": 13, "poly": [1196, 1649, 1278, 1649, 1278, 1678, 1196, 1678], "score": 0.89, "latex": "\\Delta P\\!=\\!0"}, {"category_id": 13, "poly": [1270, 1483, 1311, 1483, 1311, 1515, 1270, 1515], "score": 0.89, "latex": "Q_{\\mathrm{\\small{\\mathscr{k}}}}"}, {"category_id": 13, "poly": [1259, 1418, 1301, 1418, 1301, 1449, 1259, 1449], "score": 0.89, "latex": "Q_{\\mathbb{X}}"}, {"category_id": 13, "poly": [1075, 1682, 1140, 1682, 1140, 1711, 1075, 1711], "score": 0.88, "latex": "a+Y."}, {"category_id": 13, "poly": [895, 1483, 976, 1483, 976, 1512, 895, 1512], "score": 0.88, "latex": "\\Delta P\\!=\\!0"}, {"category_id": 13, "poly": [1206, 1285, 1252, 1285, 1252, 1315, 1206, 1315], "score": 0.88, "latex": "Q_{50}"}, {"category_id": 13, "poly": [779, 1682, 821, 1682, 821, 1714, 779, 1714], "score": 0.88, "latex": "Q_{\\mathrm{\\%}}"}, {"category_id": 13, "poly": [1313, 1649, 1374, 1649, 1374, 1678, 1313, 1678], "score": 0.87, "latex": "T{=}0"}, {"category_id": 14, "poly": [777, 432, 997, 432, 997, 470, 777, 470], "score": 0.83, "latex": "\\begin{array}{r}{Q_{\\%}=f(P)+g(T)}\\end{array}"}, {"category_id": 13, "poly": [963, 1350, 1002, 1350, 1002, 1378, 963, 1378], "score": 0.8, "latex": "\\Delta P"}, {"category_id": 13, "poly": [989, 1318, 1012, 1318, 1012, 1345, 989, 1345], "score": 0.64, "latex": "Y"}, {"category_id": 13, "poly": [1077, 1318, 1098, 1318, 1098, 1345, 1077, 1345], "score": 0.64, "latex": "S"}, {"category_id": 13, "poly": [1239, 1583, 1262, 1583, 1262, 1611, 1239, 1611], "score": 0.51, "latex": "S"}, {"category_id": 13, "poly": [989, 1488, 1008, 1488, 1008, 1511, 989, 1511], "score": 0.3, "latex": "a"}, {"category_id": 15, "poly": [112.0, 651.0, 256.0, 651.0, 256.0, 688.0, 112.0, 688.0], "score": 0.96, "text": "2. Methods"}, {"category_id": 15, "poly": [112.0, 716.0, 526.0, 720.0, 526.0, 757.0, 112.0, 752.0], "score": 0.99, "text": "2.1. Characterisation of fow regime"}, {"category_id": 15, "poly": [778.0, 249.0, 1383.0, 252.0, 1383.0, 288.0, 777.0, 286.0], "score": 0.99, "text": " closure, a time term is required to represent plantation"}, {"category_id": 15, "poly": [777.0, 288.0, 1385.0, 284.0, 1385.0, 320.0, 778.0, 325.0], "score": 0.99, "text": "growth. A simple model relating the time series of"}, {"category_id": 15, "poly": [778.0, 318.0, 1383.0, 323.0, 1383.0, 357.0, 777.0, 353.0], "score": 0.99, "text": "each decile with rainfall and vegetation characteristics"}, {"category_id": 15, "poly": [782.0, 357.0, 1018.0, 357.0, 1018.0, 387.0, 782.0, 387.0], "score": 0.99, "text": "can be expressed as:"}, {"category_id": 15, "poly": [466.0, 194.0, 1033.0, 194.0, 1033.0, 224.0, 466.0, 224.0], "score": 0.99, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [112.0, 249.0, 722.0, 252.0, 722.0, 288.0, 112.0, 286.0], "score": 0.99, "text": "were to (1) fit a model to the observed annual time"}, {"category_id": 15, "poly": [116.0, 290.0, 719.0, 290.0, 719.0, 320.0, 116.0, 320.0], "score": 0.98, "text": "series of FDC percentiles; i.e. 10th percentile for each"}, {"category_id": 15, "poly": [112.0, 320.0, 722.0, 320.0, 722.0, 357.0, 112.0, 357.0], "score": 0.99, "text": " year of record with annual rainfall and plantation age"}, {"category_id": 15, "poly": [116.0, 355.0, 719.0, 355.0, 719.0, 385.0, 116.0, 385.0], "score": 1.0, "text": "as parameters, (2) replace the annual rainfall variation"}, {"category_id": 15, "poly": [116.0, 389.0, 722.0, 389.0, 722.0, 419.0, 116.0, 419.0], "score": 0.98, "text": "with the long term mean to obtain climate adjusted"}, {"category_id": 15, "poly": [116.0, 421.0, 719.0, 421.0, 719.0, 452.0, 116.0, 452.0], "score": 0.99, "text": "FDCs, and (3) quantify changes in FDC percentiles as"}, {"category_id": 15, "poly": [116.0, 456.0, 717.0, 456.0, 717.0, 486.0, 116.0, 486.0], "score": 1.0, "text": "plantations age. If the climate signal, represented by"}, {"category_id": 15, "poly": [112.0, 482.0, 722.0, 486.0, 721.0, 523.0, 112.0, 518.0], "score": 0.98, "text": "rainfall, could be successfully removed, the resulting"}, {"category_id": 15, "poly": [116.0, 522.0, 719.0, 522.0, 719.0, 553.0, 116.0, 553.0], "score": 0.99, "text": "changes in the FDC would be solely attributable to the"}, {"category_id": 15, "poly": [114.0, 557.0, 243.0, 557.0, 243.0, 587.0, 114.0, 587.0], "score": 1.0, "text": "vegetation."}, {"category_id": 15, "poly": [780.0, 587.0, 1385.0, 587.0, 1385.0, 617.0, 780.0, 617.0], "score": 0.99, "text": "plantation. Annual rainfall was chosen as the rainfall"}, {"category_id": 15, "poly": [780.0, 621.0, 1385.0, 621.0, 1385.0, 649.0, 780.0, 649.0], "score": 0.99, "text": "statistic as it proved to be the most robust predictor of"}, {"category_id": 15, "poly": [780.0, 654.0, 1385.0, 654.0, 1385.0, 684.0, 780.0, 684.0], "score": 0.97, "text": "flow over the whole range of flow percentiles, as"}, {"category_id": 15, "poly": [777.0, 686.0, 1383.0, 686.0, 1383.0, 722.0, 777.0, 722.0], "score": 0.98, "text": " compared with rainfall percentiles; e.g. median rain-"}, {"category_id": 15, "poly": [777.0, 718.0, 1385.0, 718.0, 1385.0, 755.0, 777.0, 755.0], "score": 0.97, "text": "fall versus 10th flow percentile. The use of annual"}, {"category_id": 15, "poly": [775.0, 748.0, 1385.0, 750.0, 1385.0, 787.0, 775.0, 785.0], "score": 0.99, "text": "rainfall also minimises parameter complexity. The"}, {"category_id": 15, "poly": [782.0, 787.0, 1383.0, 787.0, 1383.0, 817.0, 782.0, 817.0], "score": 0.98, "text": "choice of model form is dependent on selecting a"}, {"category_id": 15, "poly": [780.0, 821.0, 1383.0, 821.0, 1383.0, 849.0, 780.0, 849.0], "score": 0.99, "text": "function that describes the relationship between forest"}, {"category_id": 15, "poly": [777.0, 854.0, 1383.0, 851.0, 1383.0, 881.0, 778.0, 884.0], "score": 0.98, "text": "age and ET. Scott and Smith (1997\uff09 demonstrated"}, {"category_id": 15, "poly": [780.0, 886.0, 1383.0, 886.0, 1383.0, 916.0, 780.0, 916.0], "score": 0.98, "text": "cumulative reductions in annual and low flows"}, {"category_id": 15, "poly": [780.0, 920.0, 1383.0, 920.0, 1383.0, 950.0, 780.0, 950.0], "score": 0.98, "text": "resulting from afforestation fitted a sigmoidal"}, {"category_id": 15, "poly": [777.0, 952.0, 1379.0, 952.0, 1379.0, 983.0, 777.0, 983.0], "score": 0.99, "text": "function, similar to forest growth functions. Conse-"}, {"category_id": 15, "poly": [775.0, 985.0, 1385.0, 983.0, 1385.0, 1019.0, 775.0, 1021.0], "score": 0.99, "text": " quently, we used a sigmoidal function to characterise"}, {"category_id": 15, "poly": [780.0, 1019.0, 1381.0, 1019.0, 1381.0, 1049.0, 780.0, 1049.0], "score": 0.99, "text": "the impact of plantation growth on each fow decile."}, {"category_id": 15, "poly": [780.0, 1054.0, 1383.0, 1054.0, 1383.0, 1084.0, 780.0, 1084.0], "score": 0.98, "text": "Fig. 2a is a schematic of the change in the FDC over"}, {"category_id": 15, "poly": [777.0, 1086.0, 1143.0, 1086.0, 1143.0, 1116.0, 777.0, 1116.0], "score": 0.99, "text": "time. The model took the form:"}, {"category_id": 15, "poly": [1202.0, 522.0, 1385.0, 522.0, 1385.0, 550.0, 1202.0, 550.0], "score": 0.99, "text": "is a function of"}, {"category_id": 15, "poly": [782.0, 522.0, 855.0, 522.0, 855.0, 550.0, 782.0, 550.0], "score": 1.0, "text": "where"}, {"category_id": 15, "poly": [898.0, 522.0, 1149.0, 522.0, 1149.0, 550.0, 898.0, 550.0], "score": 0.98, "text": "is the percentile flow,"}, {"category_id": 15, "poly": [780.0, 555.0, 929.0, 555.0, 929.0, 585.0, 780.0, 585.0], "score": 0.95, "text": "rainfall and"}, {"category_id": 15, "poly": [983.0, 555.0, 1383.0, 555.0, 1383.0, 585.0, 983.0, 585.0], "score": 0.98, "text": " is a function of the age of the"}, {"category_id": 15, "poly": [780.0, 1453.0, 1385.0, 1453.0, 1385.0, 1484.0, 780.0, 1484.0], "score": 1.0, "text": "afforestation has taken place. For the average climate"}, {"category_id": 15, "poly": [775.0, 1516.0, 1383.0, 1516.0, 1383.0, 1546.0, 775.0, 1546.0], "score": 0.98, "text": "the new equilibrium plantation water use under"}, {"category_id": 15, "poly": [777.0, 1552.0, 1385.0, 1552.0, 1385.0, 1582.0, 777.0, 1582.0], "score": 0.99, "text": " afforestation is reached. Y then gives the magnitude"}, {"category_id": 15, "poly": [780.0, 1619.0, 1385.0, 1619.0, 1385.0, 1649.0, 780.0, 1649.0], "score": 0.97, "text": "the shape of the response as shown in Fig. 2b. For"}, {"category_id": 15, "poly": [780.0, 1718.0, 1383.0, 1718.0, 1383.0, 1748.0, 780.0, 1748.0], "score": 0.98, "text": "afforestation condition would not require the time"}, {"category_id": 15, "poly": [780.0, 1752.0, 1383.0, 1752.0, 1383.0, 1782.0, 780.0, 1782.0], "score": 0.98, "text": "term. Details of the optimisation scheme and"}, {"category_id": 15, "poly": [780.0, 1784.0, 1383.0, 1784.0, 1383.0, 1815.0, 780.0, 1815.0], "score": 1.0, "text": "sensitivity tests on initial parameter values are given"}, {"category_id": 15, "poly": [780.0, 1817.0, 1020.0, 1817.0, 1020.0, 1847.0, 780.0, 1847.0], "score": 0.97, "text": "in Lane et al. (2003)."}, {"category_id": 15, "poly": [777.0, 1382.0, 1209.0, 1382.0, 1209.0, 1419.0, 777.0, 1419.0], "score": 0.98, "text": "from the period of record average, and"}, {"category_id": 15, "poly": [1263.0, 1382.0, 1385.0, 1382.0, 1385.0, 1419.0, 1263.0, 1419.0], "score": 0.99, "text": "is the time"}, {"category_id": 15, "poly": [782.0, 1286.0, 856.0, 1286.0, 856.0, 1316.0, 782.0, 1316.0], "score": 1.0, "text": "where"}, {"category_id": 15, "poly": [777.0, 1649.0, 1195.0, 1649.0, 1195.0, 1686.0, 777.0, 1686.0], "score": 1.0, "text": "the average pre-treatment condition"}, {"category_id": 15, "poly": [1312.0, 1486.0, 1385.0, 1486.0, 1385.0, 1516.0, 1312.0, 1516.0], "score": 1.0, "text": "when"}, {"category_id": 15, "poly": [780.0, 1419.0, 1258.0, 1419.0, 1258.0, 1449.0, 780.0, 1449.0], "score": 0.97, "text": "in years at which half of the reduction in"}, {"category_id": 15, "poly": [1302.0, 1419.0, 1385.0, 1419.0, 1385.0, 1449.0, 1302.0, 1449.0], "score": 1.0, "text": "due to"}, {"category_id": 15, "poly": [1141.0, 1686.0, 1379.0, 1686.0, 1379.0, 1716.0, 1141.0, 1716.0], "score": 0.95, "text": " Estimation of a pre-"}, {"category_id": 15, "poly": [780.0, 1486.0, 894.0, 1486.0, 894.0, 1516.0, 780.0, 1516.0], "score": 1.0, "text": "condition"}, {"category_id": 15, "poly": [899.0, 1286.0, 1205.0, 1286.0, 1205.0, 1316.0, 899.0, 1316.0], "score": 0.98, "text": "is the percentile flow (i.e."}, {"category_id": 15, "poly": [1253.0, 1286.0, 1383.0, 1286.0, 1383.0, 1316.0, 1253.0, 1316.0], "score": 1.0, "text": "is the 50th"}, {"category_id": 15, "poly": [822.0, 1686.0, 1074.0, 1686.0, 1074.0, 1716.0, 822.0, 1716.0], "score": 0.99, "text": " approximately equals"}, {"category_id": 15, "poly": [1279.0, 1649.0, 1312.0, 1649.0, 1312.0, 1686.0, 1279.0, 1686.0], "score": 1.0, "text": "at"}, {"category_id": 15, "poly": [777.0, 1352.0, 962.0, 1350.0, 962.0, 1380.0, 778.0, 1382.0], "score": 1.0, "text": "sigmoidal term,"}, {"category_id": 15, "poly": [1003.0, 1352.0, 1385.0, 1350.0, 1385.0, 1380.0, 1003.0, 1382.0], "score": 0.99, "text": "is the deviation of annual rainfall"}, {"category_id": 15, "poly": [775.0, 1316.0, 988.0, 1314.0, 988.0, 1350.0, 775.0, 1352.0], "score": 0.97, "text": "percentile flow),"}, {"category_id": 15, "poly": [1013.0, 1316.0, 1076.0, 1314.0, 1076.0, 1350.0, 1013.0, 1352.0], "score": 0.9, "text": " and"}, {"category_id": 15, "poly": [1099.0, 1316.0, 1385.0, 1314.0, 1385.0, 1350.0, 1099.0, 1352.0], "score": 0.98, "text": " are coefficients of the"}, {"category_id": 15, "poly": [780.0, 1587.0, 1238.0, 1587.0, 1238.0, 1617.0, 780.0, 1617.0], "score": 0.99, "text": "of change due to afforestation, and "}, {"category_id": 15, "poly": [1263.0, 1587.0, 1385.0, 1587.0, 1385.0, 1617.0, 1263.0, 1617.0], "score": 0.99, "text": " describes"}, {"category_id": 15, "poly": [1009.0, 1486.0, 1269.0, 1486.0, 1269.0, 1516.0, 1009.0, 1516.0], "score": 1.0, "text": "becomes the value of"}, {"category_id": 15, "poly": [144.0, 783.0, 720.0, 785.0, 719.0, 821.0, 144.0, 819.0], "score": 0.99, "text": "Flow duration curves display the relationship"}, {"category_id": 15, "poly": [116.0, 821.0, 719.0, 821.0, 719.0, 851.0, 116.0, 851.0], "score": 0.96, "text": "between streamflow and the percentage of time"}, {"category_id": 15, "poly": [116.0, 854.0, 717.0, 854.0, 717.0, 884.0, 116.0, 884.0], "score": 0.98, "text": "the streamflow is exceeded as a cumulative density"}, {"category_id": 15, "poly": [116.0, 888.0, 719.0, 888.0, 719.0, 918.0, 116.0, 918.0], "score": 1.0, "text": "function They can be constructed for any time period"}, {"category_id": 15, "poly": [116.0, 920.0, 715.0, 920.0, 715.0, 950.0, 116.0, 950.0], "score": 0.99, "text": "(daily, weekly, monthly, etc.) and provide a graphical"}, {"category_id": 15, "poly": [114.0, 952.0, 717.0, 955.0, 717.0, 985.0, 114.0, 983.0], "score": 0.99, "text": "and statistical view of historic streamflow variability"}, {"category_id": 15, "poly": [114.0, 987.0, 717.0, 987.0, 717.0, 1017.0, 114.0, 1017.0], "score": 0.99, "text": "in a single catchment or a comparison of inter-"}, {"category_id": 15, "poly": [112.0, 1017.0, 722.0, 1017.0, 722.0, 1054.0, 112.0, 1054.0], "score": 0.99, "text": "catchment flow regimes. Vogel and Fennessey (1994)"}, {"category_id": 15, "poly": [110.0, 1047.0, 722.0, 1049.0, 722.0, 1086.0, 109.0, 1084.0], "score": 0.99, "text": "and Smakhtin (1999, 2001) demonstrate the utility"}, {"category_id": 15, "poly": [114.0, 1088.0, 719.0, 1088.0, 719.0, 1118.0, 114.0, 1118.0], "score": 1.0, "text": "(and caveats) of FDCs in characterising, comparing"}, {"category_id": 15, "poly": [114.0, 1120.0, 722.0, 1120.0, 722.0, 1150.0, 114.0, 1150.0], "score": 0.97, "text": "and predicting flow regimes at varying temporal"}, {"category_id": 15, "poly": [112.0, 1150.0, 724.0, 1150.0, 724.0, 1187.0, 112.0, 1187.0], "score": 0.98, "text": "scales. Fig. 1 is an example of annual FDCs"}, {"category_id": 15, "poly": [114.0, 1187.0, 722.0, 1187.0, 722.0, 1217.0, 114.0, 1217.0], "score": 0.99, "text": "constructed from daily flows. For the consideration"}, {"category_id": 15, "poly": [110.0, 1215.0, 722.0, 1217.0, 722.0, 1253.0, 109.0, 1251.0], "score": 0.99, "text": " of annual flow regime, daily fows are an appropriate"}, {"category_id": 15, "poly": [114.0, 1253.0, 477.0, 1253.0, 477.0, 1284.0, 114.0, 1284.0], "score": 0.99, "text": "time step for FDC construction."}, {"category_id": 15, "poly": [1342.0, 189.0, 1387.0, 189.0, 1387.0, 234.0, 1342.0, 234.0], "score": 1.0, "text": "255"}, {"category_id": 15, "poly": [148.0, 1284.0, 715.0, 1284.0, 715.0, 1314.0, 148.0, 1314.0], "score": 0.99, "text": "FDCs were computed from the distribution of daily"}, {"category_id": 15, "poly": [112.0, 1316.0, 720.0, 1320.0, 719.0, 1350.0, 112.0, 1346.0], "score": 1.0, "text": "flows for each year of record based on the appropriate"}, {"category_id": 15, "poly": [116.0, 1352.0, 719.0, 1352.0, 719.0, 1382.0, 116.0, 1382.0], "score": 0.99, "text": "water years (May-April or November-October) for"}, {"category_id": 15, "poly": [112.0, 1380.0, 722.0, 1382.0, 722.0, 1419.0, 112.0, 1417.0], "score": 0.96, "text": "10 Southern Hemisphere catchments. Each 10th"}, {"category_id": 15, "poly": [114.0, 1419.0, 719.0, 1417.0, 720.0, 1447.0, 114.0, 1449.0], "score": 0.97, "text": "percentile (decile\uff09 was extracted from the annual"}, {"category_id": 15, "poly": [112.0, 1449.0, 720.0, 1451.0, 719.0, 1481.0, 112.0, 1479.0], "score": 0.99, "text": "FDCs of each catchment to form the data sets for"}, {"category_id": 15, "poly": [114.0, 1486.0, 719.0, 1486.0, 719.0, 1516.0, 114.0, 1516.0], "score": 0.99, "text": "analysis. For the purpose of characterising changes in"}, {"category_id": 15, "poly": [114.0, 1518.0, 719.0, 1518.0, 719.0, 1546.0, 114.0, 1546.0], "score": 1.0, "text": "each of the deciles, it is assumed that the time series is"}, {"category_id": 15, "poly": [114.0, 1550.0, 719.0, 1550.0, 719.0, 1580.0, 114.0, 1580.0], "score": 0.96, "text": "principally a function of climate and vegetation"}, {"category_id": 15, "poly": [114.0, 1585.0, 722.0, 1585.0, 722.0, 1615.0, 114.0, 1615.0], "score": 0.99, "text": "characteristics. Given rainfall is generally the most"}, {"category_id": 15, "poly": [114.0, 1619.0, 722.0, 1619.0, 722.0, 1649.0, 114.0, 1649.0], "score": 0.97, "text": "important factor affecting streamflow and the most"}, {"category_id": 15, "poly": [116.0, 1651.0, 719.0, 1651.0, 719.0, 1681.0, 116.0, 1681.0], "score": 0.98, "text": "easily accessed data, it is chosen to represent the"}, {"category_id": 15, "poly": [116.0, 1686.0, 719.0, 1686.0, 719.0, 1716.0, 116.0, 1716.0], "score": 1.0, "text": "climate. Catchment physical properties such as soil"}, {"category_id": 15, "poly": [114.0, 1716.0, 722.0, 1716.0, 722.0, 1752.0, 114.0, 1752.0], "score": 0.98, "text": "properties and topography are assumed to be time"}, {"category_id": 15, "poly": [116.0, 1752.0, 719.0, 1752.0, 719.0, 1782.0, 116.0, 1782.0], "score": 0.99, "text": "invariant and therefore their impact on runoff is"}, {"category_id": 15, "poly": [118.0, 1784.0, 719.0, 1784.0, 719.0, 1815.0, 118.0, 1815.0], "score": 1.0, "text": "considered constant throughout the analysis. As trees"}, {"category_id": 15, "poly": [116.0, 1819.0, 715.0, 1819.0, 715.0, 1849.0, 116.0, 1849.0], "score": 1.0, "text": "intercept and transpire at increasing rates until canopy"}], "page_info": {"page_no": 2, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 4, "poly": [129.72743225097656, 1201.7288818359375, 731.863037109375, 1201.7288818359375, 731.863037109375, 1256.5126953125, 129.72743225097656, 1256.5126953125], "score": 0.9999990463256836}, {"category_id": 1, "poly": [130.2001953125, 1783.3021240234375, 730.197509765625, 1783.3021240234375, 730.197509765625, 1846.7928466796875, 130.2001953125, 1846.7928466796875], "score": 0.9999982714653015}, {"category_id": 0, "poly": [797.18896484375, 501.0386047363281, 1060.7071533203125, 501.0386047363281, 1060.7071533203125, 529.1184692382812, 797.18896484375, 529.1184692382812], "score": 0.9999982714653015}, {"category_id": 2, "poly": [130.7757568359375, 195.0663299560547, 166.40858459472656, 195.0663299560547, 166.40858459472656, 215.67367553710938, 130.7757568359375, 215.67367553710938], "score": 0.9999974966049194}, {"category_id": 9, "poly": [1360.5223388671875, 807.8145751953125, 1393.251953125, 807.8145751953125, 1393.251953125, 835.9564819335938, 1360.5223388671875, 835.9564819335938], "score": 0.9999971389770508}, {"category_id": 3, "poly": [140.5875244140625, 256.1985778808594, 711.4976806640625, 256.1985778808594, 711.4976806640625, 1180.2288818359375, 140.5875244140625, 1180.2288818359375], "score": 0.999996542930603}, {"category_id": 1, "poly": [795.8214721679688, 1244.741455078125, 1393.836181640625, 1244.741455078125, 1393.836181640625, 1508.3616943359375, 795.8214721679688, 1508.3616943359375], "score": 0.9999949932098389}, {"category_id": 2, "poly": [480.60809326171875, 195.57171630859375, 1043.654296875, 195.57171630859375, 1043.654296875, 218.8836212158203, 480.60809326171875, 218.8836212158203], "score": 0.9999940395355225}, {"category_id": 1, "poly": [794.92333984375, 878.8724365234375, 1394.78515625, 878.8724365234375, 1394.78515625, 1241.811279296875, 794.92333984375, 1241.811279296875], "score": 0.9999939799308777}, {"category_id": 8, "poly": [792.0145263671875, 779.4395751953125, 1107.5592041015625, 779.4395751953125, 1107.5592041015625, 865.4520263671875, 792.0145263671875, 865.4520263671875], "score": 0.9999935030937195}, {"category_id": 1, "poly": [794.2274780273438, 567.8933715820312, 1393.5377197265625, 567.8933715820312, 1393.5377197265625, 762.2144775390625, 794.2274780273438, 762.2144775390625], "score": 0.9999918341636658}, {"category_id": 1, "poly": [795.5938110351562, 1715.463134765625, 1394.151611328125, 1715.463134765625, 1394.151611328125, 1845.3857421875, 795.5938110351562, 1845.3857421875], "score": 0.999987781047821}, {"category_id": 1, "poly": [794.4356689453125, 255.30477905273438, 1393.678466796875, 255.30477905273438, 1393.678466796875, 447.8646240234375, 794.4356689453125, 447.8646240234375], "score": 0.9999871253967285}, {"category_id": 1, "poly": [130.53660583496094, 1355.89013671875, 730.9114379882812, 1355.89013671875, 730.9114379882812, 1652.1812744140625, 130.53660583496094, 1652.1812744140625], "score": 0.999987006187439}, {"category_id": 9, "poly": [696.6166381835938, 1699.391845703125, 728.77880859375, 1699.391845703125, 728.77880859375, 1727.2147216796875, 696.6166381835938, 1727.2147216796875], "score": 0.999981164932251}, {"category_id": 9, "poly": [1360.9091796875, 1667.6871337890625, 1393.8095703125, 1667.6871337890625, 1393.8095703125, 1699.094482421875, 1360.9091796875, 1699.094482421875], "score": 0.9999788999557495}, {"category_id": 8, "poly": [790.2078857421875, 1522.67236328125, 1111.4049072265625, 1522.67236328125, 1111.4049072265625, 1604.606689453125, 790.2078857421875, 1604.606689453125], "score": 0.9999706149101257}, {"category_id": 9, "poly": [1361.0799560546875, 1545.7677001953125, 1393.7020263671875, 1545.7677001953125, 1393.7020263671875, 1573.452392578125, 1361.0799560546875, 1573.452392578125], "score": 0.9998459815979004}, {"category_id": 8, "poly": [127.09381866455078, 1678.0965576171875, 565.4200439453125, 1678.0965576171875, 565.4200439453125, 1756.1007080078125, 127.09381866455078, 1756.1007080078125], "score": 0.9997967481613159}, {"category_id": 8, "poly": [794.1704711914062, 1666.248779296875, 974.3306274414062, 1666.248779296875, 974.3306274414062, 1700.88720703125, 794.1704711914062, 1700.88720703125], "score": 0.9997556209564209}, {"category_id": 0, "poly": [131.9687042236328, 1288.984375, 435.8473205566406, 1288.984375, 435.8473205566406, 1316.791259765625, 131.9687042236328, 1316.791259765625], "score": 0.9995421767234802}, {"category_id": 1, "poly": [794.0263671875, 1622.5870361328125, 839.6729125976562, 1622.5870361328125, 839.6729125976562, 1647.691650390625, 794.0263671875, 1647.691650390625], "score": 0.9984337687492371}, {"category_id": 14, "poly": [790, 777, 1108, 777, 1108, 863, 790, 863], "score": 0.94, "latex": "E=1.0-\\frac{\\sum_{i=1}^{N}(O_{i}-P_{i})^{2}}{\\sum_{i=1}^{N}(O_{i}-\\bar{O})^{2}}"}, {"category_id": 14, "poly": [790, 1521, 1110, 1521, 1110, 1602, 790, 1602], "score": 0.94, "latex": "Q_{\\mathcal{Q}}=a+\\frac{Y}{1+\\exp\\left(\\frac{T-T_{\\mathrm{half}}}{S}\\right)}"}, {"category_id": 14, "poly": [125, 1674, 566, 1674, 566, 1756, 125, 1756], "score": 0.93, "latex": "N_{\\mathrm{zero}}=a+b(\\Delta P)+\\frac{Y}{1+\\exp\\left(\\frac{T-T_{\\mathrm{half}}}{S}\\right)}"}, {"category_id": 13, "poly": [1306, 319, 1388, 319, 1388, 349, 1306, 349], "score": 0.91, "latex": "\\Delta P\\!=\\!0"}, {"category_id": 13, "poly": [529, 1555, 589, 1555, 589, 1585, 529, 1585], "score": 0.9, "latex": "N_{\\mathrm{zero}}"}, {"category_id": 13, "poly": [1281, 1176, 1365, 1176, 1365, 1205, 1281, 1205], "score": 0.9, "latex": "E\\!>\\!0.7"}, {"category_id": 13, "poly": [880, 1173, 931, 1173, 931, 1206, 880, 1206], "score": 0.89, "latex": "<\\!r^{2}"}, {"category_id": 13, "poly": [873, 1409, 932, 1409, 932, 1438, 873, 1438], "score": 0.89, "latex": "b\\!=\\!0"}, {"category_id": 13, "poly": [597, 1522, 656, 1522, 656, 1552, 597, 1552], "score": 0.89, "latex": "N_{\\mathrm{zero}}"}, {"category_id": 13, "poly": [792, 353, 856, 353, 856, 382, 792, 382], "score": 0.88, "latex": "a+Y"}, {"category_id": 13, "poly": [649, 1782, 731, 1782, 731, 1810, 649, 1810], "score": 0.88, "latex": "\\Delta P\\!=\\!0"}, {"category_id": 14, "poly": [791, 1663, 976, 1663, 976, 1699, 791, 1699], "score": 0.88, "latex": "Q_{\\%}=a+b\\Delta P"}, {"category_id": 13, "poly": [1199, 1409, 1259, 1409, 1259, 1438, 1199, 1438], "score": 0.87, "latex": "Y{=}\\,0"}, {"category_id": 13, "poly": [513, 1487, 585, 1487, 585, 1519, 513, 1519], "score": 0.85, "latex": "(N_{\\mathrm{zero}})"}, {"category_id": 13, "poly": [1335, 1073, 1362, 1073, 1362, 1104, 1335, 1104], "score": 0.84, "latex": "r^{2}"}, {"category_id": 13, "poly": [845, 908, 869, 908, 869, 938, 845, 938], "score": 0.81, "latex": "\\bar{O}"}, {"category_id": 13, "poly": [1123, 880, 1146, 880, 1146, 905, 1123, 905], "score": 0.79, "latex": "P"}, {"category_id": 13, "poly": [1344, 1145, 1367, 1145, 1367, 1171, 1344, 1171], "score": 0.79, "latex": "E"}, {"category_id": 13, "poly": [872, 879, 896, 879, 896, 905, 872, 905], "score": 0.77, "latex": "o"}, {"category_id": 13, "poly": [713, 1521, 731, 1521, 731, 1548, 713, 1548], "score": 0.76, "latex": "b"}, {"category_id": 13, "poly": [1274, 912, 1298, 912, 1298, 938, 1274, 938], "score": 0.76, "latex": "E"}, {"category_id": 13, "poly": [1347, 699, 1369, 699, 1369, 726, 1347, 726], "score": 0.75, "latex": "E"}, {"category_id": 13, "poly": [263, 1815, 326, 1815, 326, 1847, 263, 1847], "score": 0.74, "latex": "N_{\\mathrm{zero}}"}, {"category_id": 13, "poly": [185, 1814, 245, 1814, 245, 1845, 185, 1845], "score": 0.73, "latex": "T\\!\\!=\\!\\!0"}, {"category_id": 13, "poly": [1010, 1819, 1023, 1819, 1023, 1842, 1010, 1842], "score": 0.7, "latex": "t"}, {"category_id": 13, "poly": [1207, 565, 1246, 565, 1246, 596, 1207, 596], "score": 0.67, "latex": "(E)"}, {"category_id": 13, "poly": [1310, 979, 1364, 979, 1364, 1007, 1310, 1007], "score": 0.64, "latex": "-\\infty"}, {"category_id": 13, "poly": [1031, 1754, 1044, 1754, 1044, 1776, 1031, 1776], "score": 0.57, "latex": "t\\cdot"}, {"category_id": 13, "poly": [1313, 1818, 1326, 1818, 1326, 1842, 1313, 1842], "score": 0.57, "latex": "t\\cdot"}, {"category_id": 13, "poly": [960, 1073, 1001, 1073, 1001, 1108, 960, 1108], "score": 0.55, "latex": "(r^{2})"}, {"category_id": 13, "poly": [175, 1555, 194, 1555, 194, 1582, 175, 1582], "score": 0.47, "latex": "S"}, {"category_id": 13, "poly": [1020, 287, 1043, 287, 1043, 315, 1020, 315], "score": 0.38, "latex": "S"}, {"category_id": 13, "poly": [1016, 1076, 1040, 1076, 1040, 1105, 1016, 1105], "score": 0.36, "latex": "E"}, {"category_id": 13, "poly": [599, 1815, 660, 1815, 660, 1845, 599, 1845], "score": 0.35, "latex": "a,~Y"}, {"category_id": 13, "poly": [637, 1816, 660, 1816, 660, 1843, 637, 1843], "score": 0.32, "latex": "Y"}, {"category_id": 13, "poly": [184, 1814, 324, 1814, 324, 1847, 184, 1847], "score": 0.27, "latex": "T\\!\\!=\\!0,\\ N_{\\mathrm{zero}}"}, {"category_id": 15, "poly": [131.0, 1204.0, 732.0, 1204.0, 732.0, 1232.0, 131.0, 1232.0], "score": 1.0, "text": "Fig. 2. (a) Schematic of the change in the FDC over time, and"}, {"category_id": 15, "poly": [129.0, 1227.0, 447.0, 1232.0, 446.0, 1260.0, 129.0, 1255.0], "score": 0.98, "text": "(b) definition of model parameters."}, {"category_id": 15, "poly": [159.0, 1778.0, 648.0, 1778.0, 648.0, 1821.0, 159.0, 1821.0], "score": 0.99, "text": "For the average pre-treatment condition "}, {"category_id": 15, "poly": [327.0, 1819.0, 598.0, 1819.0, 598.0, 1849.0, 327.0, 1849.0], "score": 0.98, "text": " approximately equals"}, {"category_id": 15, "poly": [661.0, 1819.0, 728.0, 1819.0, 728.0, 1849.0, 661.0, 1849.0], "score": 1.0, "text": "gives"}, {"category_id": 15, "poly": [129.0, 1819.0, 183.0, 1819.0, 183.0, 1849.0, 129.0, 1849.0], "score": 0.88, "text": "and "}, {"category_id": 15, "poly": [793.0, 499.0, 1065.0, 499.0, 1065.0, 535.0, 793.0, 535.0], "score": 0.98, "text": "2.3. Statistical analyses"}, {"category_id": 15, "poly": [127.0, 189.0, 172.0, 189.0, 172.0, 228.0, 127.0, 228.0], "score": 1.0, "text": "256"}, {"category_id": 15, "poly": [825.0, 1245.0, 1396.0, 1245.0, 1396.0, 1275.0, 825.0, 1275.0], "score": 0.98, "text": "It is important to assess the significance of the"}, {"category_id": 15, "poly": [790.0, 1279.0, 1396.0, 1279.0, 1396.0, 1309.0, 790.0, 1309.0], "score": 0.97, "text": "model parameters to check the model assumptions"}, {"category_id": 15, "poly": [788.0, 1307.0, 1400.0, 1309.0, 1400.0, 1346.0, 788.0, 1344.0], "score": 1.0, "text": "that rainfall and forest age are driving changes in the"}, {"category_id": 15, "poly": [790.0, 1346.0, 1396.0, 1346.0, 1396.0, 1376.0, 790.0, 1376.0], "score": 0.99, "text": "FDC. The model (2) was split into simplified forms,"}, {"category_id": 15, "poly": [793.0, 1378.0, 1396.0, 1378.0, 1396.0, 1408.0, 793.0, 1408.0], "score": 1.0, "text": "where only the rainfall or time terms were included by"}, {"category_id": 15, "poly": [793.0, 1445.0, 1398.0, 1445.0, 1398.0, 1475.0, 793.0, 1475.0], "score": 0.99, "text": "Eq. (6). The component models (5) and (6) were then"}, {"category_id": 15, "poly": [790.0, 1477.0, 1233.0, 1477.0, 1233.0, 1507.0, 790.0, 1507.0], "score": 1.0, "text": "tested against the complete model, (2)."}, {"category_id": 15, "poly": [790.0, 1408.0, 872.0, 1408.0, 872.0, 1445.0, 790.0, 1445.0], "score": 0.99, "text": "setting"}, {"category_id": 15, "poly": [933.0, 1408.0, 1198.0, 1408.0, 1198.0, 1445.0, 933.0, 1445.0], "score": 0.99, "text": ", as shown in Eq. (5), or"}, {"category_id": 15, "poly": [1260.0, 1408.0, 1400.0, 1408.0, 1400.0, 1445.0, 1260.0, 1445.0], "score": 0.97, "text": "as shown in"}, {"category_id": 15, "poly": [481.0, 194.0, 1046.0, 194.0, 1046.0, 224.0, 481.0, 224.0], "score": 0.97, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [790.0, 944.0, 1400.0, 944.0, 1400.0, 980.0, 790.0, 980.0], "score": 1.0, "text": "minus the ratio of the mean square error to the"}, {"category_id": 15, "poly": [790.0, 1008.0, 1400.0, 1011.0, 1400.0, 1047.0, 790.0, 1045.0], "score": 0.98, "text": "1.0. Higher values indicate greater agreement between"}, {"category_id": 15, "poly": [788.0, 1041.0, 1403.0, 1043.0, 1402.0, 1079.0, 788.0, 1077.0], "score": 0.97, "text": " observed and predicted data as per the coefficient of "}, {"category_id": 15, "poly": [793.0, 1112.0, 1400.0, 1112.0, 1400.0, 1142.0, 793.0, 1142.0], "score": 0.97, "text": "evaluating hydrologic modelling because it is a"}, {"category_id": 15, "poly": [790.0, 1213.0, 1121.0, 1213.0, 1121.0, 1241.0, 790.0, 1241.0], "score": 0.99, "text": "indicate adequate model fits."}, {"category_id": 15, "poly": [1366.0, 1178.0, 1398.0, 1178.0, 1398.0, 1208.0, 1366.0, 1208.0], "score": 1.0, "text": "to"}, {"category_id": 15, "poly": [793.0, 1178.0, 879.0, 1178.0, 879.0, 1208.0, 793.0, 1208.0], "score": 1.0, "text": "always"}, {"category_id": 15, "poly": [932.0, 1178.0, 1280.0, 1178.0, 1280.0, 1208.0, 932.0, 1208.0], "score": 1.0, "text": "we have arbitrarily considered"}, {"category_id": 15, "poly": [1363.0, 1075.0, 1402.0, 1075.0, 1402.0, 1112.0, 1363.0, 1112.0], "score": 1.0, "text": "in"}, {"category_id": 15, "poly": [788.0, 909.0, 844.0, 909.0, 844.0, 946.0, 788.0, 946.0], "score": 1.0, "text": "and"}, {"category_id": 15, "poly": [1147.0, 875.0, 1398.0, 877.0, 1398.0, 914.0, 1147.0, 912.0], "score": 0.97, "text": " are predicted values,"}, {"category_id": 15, "poly": [793.0, 1146.0, 1343.0, 1146.0, 1343.0, 1176.0, 793.0, 1176.0], "score": 1.0, "text": "measure of the deviation from the 1:1 line. As"}, {"category_id": 15, "poly": [1368.0, 1146.0, 1398.0, 1146.0, 1398.0, 1176.0, 1368.0, 1176.0], "score": 1.0, "text": "is"}, {"category_id": 15, "poly": [788.0, 875.0, 871.0, 877.0, 871.0, 914.0, 788.0, 912.0], "score": 1.0, "text": "where"}, {"category_id": 15, "poly": [897.0, 875.0, 1122.0, 877.0, 1122.0, 914.0, 897.0, 912.0], "score": 1.0, "text": "are observed data,"}, {"category_id": 15, "poly": [870.0, 909.0, 1273.0, 909.0, 1273.0, 946.0, 870.0, 946.0], "score": 0.97, "text": " is the mean for the entire period."}, {"category_id": 15, "poly": [1299.0, 909.0, 1398.0, 909.0, 1398.0, 946.0, 1299.0, 946.0], "score": 1.0, "text": "is unity"}, {"category_id": 15, "poly": [793.0, 980.0, 1309.0, 980.0, 1309.0, 1010.0, 793.0, 1010.0], "score": 1.0, "text": "variance in the observed data, and ranges from"}, {"category_id": 15, "poly": [1365.0, 980.0, 1398.0, 980.0, 1398.0, 1010.0, 1365.0, 1010.0], "score": 1.0, "text": "to"}, {"category_id": 15, "poly": [790.0, 1075.0, 959.0, 1075.0, 959.0, 1112.0, 790.0, 1112.0], "score": 1.0, "text": "determination"}, {"category_id": 15, "poly": [1041.0, 1075.0, 1334.0, 1075.0, 1334.0, 1112.0, 1041.0, 1112.0], "score": 0.98, "text": "is used in preference to"}, {"category_id": 15, "poly": [790.0, 596.0, 1398.0, 598.0, 1398.0, 634.0, 790.0, 632.0], "score": 1.0, "text": "Sutcliffe, 1970; Chiew and McMahon, 1993; Legates"}, {"category_id": 15, "poly": [788.0, 628.0, 1396.0, 632.0, 1396.0, 667.0, 788.0, 662.0], "score": 0.96, "text": " and McCabe, 1999) was used as the ^goodness of fit\u2019"}, {"category_id": 15, "poly": [793.0, 669.0, 1398.0, 669.0, 1398.0, 697.0, 793.0, 697.0], "score": 0.99, "text": "measure to evaluate the fit between observed and"}, {"category_id": 15, "poly": [790.0, 736.0, 905.0, 731.0, 907.0, 763.0, 791.0, 768.0], "score": 0.98, "text": "given by:"}, {"category_id": 15, "poly": [790.0, 701.0, 1346.0, 699.0, 1346.0, 729.0, 790.0, 731.0], "score": 0.99, "text": "predicted flow deciles (2) and zero flow days (3)."}, {"category_id": 15, "poly": [1370.0, 701.0, 1398.0, 699.0, 1398.0, 729.0, 1370.0, 731.0], "score": 1.0, "text": "is"}, {"category_id": 15, "poly": [827.0, 568.0, 1206.0, 568.0, 1206.0, 598.0, 827.0, 598.0], "score": 0.95, "text": "The coefficient of efficiency"}, {"category_id": 15, "poly": [1247.0, 568.0, 1398.0, 568.0, 1398.0, 598.0, 1247.0, 598.0], "score": 0.97, "text": "(Nash and"}, {"category_id": 15, "poly": [825.0, 1716.0, 1394.0, 1716.0, 1394.0, 1752.0, 825.0, 1752.0], "score": 0.99, "text": "For both the fow duration curve analysis and zero"}, {"category_id": 15, "poly": [795.0, 1784.0, 1392.0, 1784.0, 1392.0, 1815.0, 795.0, 1815.0], "score": 0.98, "text": "whether (5) and (6) were significantly different to (2)."}, {"category_id": 15, "poly": [790.0, 1812.0, 1009.0, 1815.0, 1009.0, 1851.0, 790.0, 1849.0], "score": 0.99, "text": "A critical value of"}, {"category_id": 15, "poly": [790.0, 1750.0, 1030.0, 1752.0, 1030.0, 1782.0, 790.0, 1780.0], "score": 1.0, "text": "flow days analysis, a"}, {"category_id": 15, "poly": [1045.0, 1750.0, 1394.0, 1752.0, 1394.0, 1782.0, 1045.0, 1780.0], "score": 0.98, "text": "-test was then performed to test"}, {"category_id": 15, "poly": [1024.0, 1812.0, 1312.0, 1815.0, 1312.0, 1851.0, 1024.0, 1849.0], "score": 1.0, "text": "exceeding the calculated"}, {"category_id": 15, "poly": [1327.0, 1812.0, 1396.0, 1815.0, 1396.0, 1851.0, 1327.0, 1849.0], "score": 1.0, "text": "value"}, {"category_id": 15, "poly": [795.0, 256.0, 1398.0, 256.0, 1398.0, 286.0, 795.0, 286.0], "score": 0.97, "text": "the magnitude of change in zero flow days due to"}, {"category_id": 15, "poly": [790.0, 389.0, 1398.0, 389.0, 1398.0, 419.0, 790.0, 419.0], "score": 0.96, "text": "new equilibrium condition under afforestation is"}, {"category_id": 15, "poly": [790.0, 421.0, 891.0, 421.0, 891.0, 452.0, 790.0, 452.0], "score": 1.0, "text": "reached."}, {"category_id": 15, "poly": [793.0, 322.0, 1305.0, 322.0, 1305.0, 353.0, 793.0, 353.0], "score": 1.0, "text": "response. For the average climate condition"}, {"category_id": 15, "poly": [857.0, 355.0, 1398.0, 355.0, 1398.0, 385.0, 857.0, 385.0], "score": 0.99, "text": "becomes the number of zero flow days when the"}, {"category_id": 15, "poly": [793.0, 290.0, 1019.0, 290.0, 1019.0, 320.0, 793.0, 320.0], "score": 0.98, "text": "afforestation, and"}, {"category_id": 15, "poly": [1044.0, 290.0, 1398.0, 290.0, 1398.0, 320.0, 1044.0, 320.0], "score": 0.95, "text": " describes the shape of the"}, {"category_id": 15, "poly": [157.0, 1350.0, 732.0, 1352.0, 732.0, 1389.0, 157.0, 1387.0], "score": 0.98, "text": " A notable feature of Fig. 1 is the increase in the"}, {"category_id": 15, "poly": [127.0, 1389.0, 735.0, 1389.0, 735.0, 1425.0, 127.0, 1425.0], "score": 0.99, "text": "number of zero fow days. A similar approach to"}, {"category_id": 15, "poly": [129.0, 1423.0, 735.0, 1423.0, 735.0, 1453.0, 129.0, 1453.0], "score": 0.98, "text": "Eq. (2), using an inverse sigmoidal function was"}, {"category_id": 15, "poly": [129.0, 1456.0, 732.0, 1456.0, 732.0, 1486.0, 129.0, 1486.0], "score": 0.98, "text": "employed to assess the impact of afforestation on the"}, {"category_id": 15, "poly": [129.0, 1589.0, 735.0, 1589.0, 735.0, 1619.0, 129.0, 1619.0], "score": 0.99, "text": "rainfall increases, and increases with plantation"}, {"category_id": 15, "poly": [126.0, 1624.0, 220.0, 1618.0, 222.0, 1651.0, 128.0, 1656.0], "score": 1.0, "text": "growth:"}, {"category_id": 15, "poly": [590.0, 1557.0, 732.0, 1557.0, 732.0, 1587.0, 590.0, 1587.0], "score": 1.0, "text": "decreases as"}, {"category_id": 15, "poly": [129.0, 1524.0, 596.0, 1524.0, 596.0, 1554.0, 129.0, 1554.0], "score": 0.98, "text": "the left hand side of Eq. (2) is replaced by"}, {"category_id": 15, "poly": [129.0, 1490.0, 512.0, 1490.0, 512.0, 1520.0, 129.0, 1520.0], "score": 0.99, "text": "number of zero flow days per year"}, {"category_id": 15, "poly": [586.0, 1490.0, 732.0, 1490.0, 732.0, 1520.0, 586.0, 1520.0], "score": 0.97, "text": ". In this case,"}, {"category_id": 15, "poly": [657.0, 1524.0, 712.0, 1524.0, 712.0, 1554.0, 657.0, 1554.0], "score": 0.97, "text": ", and"}, {"category_id": 15, "poly": [129.0, 1557.0, 174.0, 1557.0, 174.0, 1587.0, 129.0, 1587.0], "score": 1.0, "text": "and"}, {"category_id": 15, "poly": [195.0, 1557.0, 528.0, 1557.0, 528.0, 1587.0, 195.0, 1587.0], "score": 0.99, "text": "are constrained to negative as"}, {"category_id": 15, "poly": [129.0, 1288.0, 438.0, 1288.0, 438.0, 1324.0, 129.0, 1324.0], "score": 0.99, "text": "2.2. Zero fow day analysis"}, {"category_id": 15, "poly": [788.0, 1617.0, 844.0, 1617.0, 844.0, 1662.0, 788.0, 1662.0], "score": 1.0, "text": "and"}], "page_info": {"page_no": 3, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 1, "poly": [780.4981079101562, 951.0537109375, 1382.5201416015625, 951.0537109375, 1382.5201416015625, 1648.58154296875, 780.4981079101562, 1648.58154296875], "score": 0.9999959468841553}, {"category_id": 2, "poly": [466.9576110839844, 194.6658935546875, 1030.6968994140625, 194.6658935546875, 1030.6968994140625, 219.20504760742188, 466.9576110839844, 219.20504760742188], "score": 0.9999955892562866}, {"category_id": 0, "poly": [782.29931640625, 886.77197265625, 919.8917236328125, 886.77197265625, 919.8917236328125, 915.8782348632812, 782.29931640625, 915.8782348632812], "score": 0.9999911189079285}, {"category_id": 1, "poly": [782.0343017578125, 253.53207397460938, 1382.2440185546875, 253.53207397460938, 1382.2440185546875, 350.4256896972656, 782.0343017578125, 350.4256896972656], "score": 0.9999889731407166}, {"category_id": 1, "poly": [781.621826171875, 653.5359497070312, 1381.272705078125, 653.5359497070312, 1381.272705078125, 783.18798828125, 781.621826171875, 783.18798828125], "score": 0.9999889731407166}, {"category_id": 5, "poly": [182.05813598632812, 248.86912536621094, 650.3305053710938, 248.86912536621094, 650.3305053710938, 1845.613037109375, 182.05813598632812, 1845.613037109375], "score": 0.9999887347221375}, {"category_id": 1, "poly": [781.0881958007812, 1650.3038330078125, 1382.088134765625, 1650.3038330078125, 1382.088134765625, 1848.214111328125, 781.0881958007812, 1848.214111328125], "score": 0.9999865293502808}, {"category_id": 2, "poly": [1346.05322265625, 194.5203399658203, 1381.46875, 194.5203399658203, 1381.46875, 216.90557861328125, 1346.05322265625, 216.90557861328125], "score": 0.9999804496765137}, {"category_id": 8, "poly": [779.12451171875, 544.6279296875, 1165.58349609375, 544.6279296875, 1165.58349609375, 623.5341796875, 779.12451171875, 623.5341796875], "score": 0.9999717473983765}, {"category_id": 1, "poly": [781.6971435546875, 352.1080017089844, 1382.5953369140625, 352.1080017089844, 1382.5953369140625, 515.912109375, 781.6971435546875, 515.912109375], "score": 0.999969482421875}, {"category_id": 9, "poly": [1347.20849609375, 571.1251831054688, 1380.7503662109375, 571.1251831054688, 1380.7503662109375, 601.0969848632812, 1347.20849609375, 601.0969848632812], "score": 0.9999024868011475}, {"category_id": 7, "poly": [659.8250732421875, 882.5633544921875, 686.8219604492188, 882.5633544921875, 686.8219604492188, 1842.583251953125, 659.8250732421875, 1842.583251953125], "score": 0.9764553904533386}, {"category_id": 6, "poly": [112.29073333740234, 1497.288330078125, 169.8206329345703, 1497.288330078125, 169.8206329345703, 1843.9019775390625, 112.29073333740234, 1843.9019775390625], "score": 0.8885180950164795}, {"category_id": 14, "poly": [776, 546, 1164, 546, 1164, 622, 776, 622], "score": 0.91, "latex": "F=\\frac{[(\\mathrm{SSE_{s}-S S E_{c}})/(\\mathrm{df_{c}-d f_{s}})]}{\\mathrm{SSE_{c}/d f_{c}}}"}, {"category_id": 13, "poly": [1087, 415, 1135, 415, 1135, 447, 1087, 447], "score": 0.88, "latex": "F^{0.5}"}, {"category_id": 13, "poly": [1155, 1183, 1223, 1183, 1223, 1214, 1155, 1214], "score": 0.86, "latex": "100\\%"}, {"category_id": 13, "poly": [779, 1781, 820, 1781, 820, 1812, 779, 1812], "score": 0.82, "latex": "6\\%"}, {"category_id": 13, "poly": [831, 487, 852, 487, 852, 513, 831, 513], "score": 0.77, "latex": "F"}, {"category_id": 13, "poly": [1120, 390, 1133, 390, 1133, 413, 1120, 413], "score": 0.72, "latex": "t\\cdot"}, {"category_id": 13, "poly": [780, 423, 792, 423, 792, 446, 780, 446], "score": 0.49, "latex": "t\\cdot"}, {"category_id": 13, "poly": [1074, 1716, 1095, 1716, 1095, 1742, 1074, 1742], "score": 0.31, "latex": "P"}, {"category_id": 15, "poly": [814.0, 952.0, 1383.0, 952.0, 1383.0, 983.0, 814.0, 983.0], "score": 0.98, "text": "Daily streamflow data were obtained from 10"}, {"category_id": 15, "poly": [782.0, 987.0, 1383.0, 987.0, 1383.0, 1017.0, 782.0, 1017.0], "score": 0.99, "text": "catchment studies from southeastern Australia, New"}, {"category_id": 15, "poly": [780.0, 1019.0, 1383.0, 1019.0, 1383.0, 1049.0, 780.0, 1049.0], "score": 0.99, "text": "Zealand and South Africa. The initial criteria for"}, {"category_id": 15, "poly": [775.0, 1047.0, 1383.0, 1051.0, 1383.0, 1088.0, 775.0, 1084.0], "score": 0.99, "text": "selection of these catchments were a known veg-"}, {"category_id": 15, "poly": [780.0, 1088.0, 1385.0, 1088.0, 1385.0, 1118.0, 780.0, 1118.0], "score": 0.95, "text": "etation history and streamflow records of good"}, {"category_id": 15, "poly": [780.0, 1120.0, 1381.0, 1120.0, 1381.0, 1150.0, 780.0, 1150.0], "score": 0.99, "text": "quality. The ideal data sets were those with a lengthy"}, {"category_id": 15, "poly": [777.0, 1155.0, 1385.0, 1152.0, 1385.0, 1182.0, 778.0, 1185.0], "score": 0.97, "text": "pre- and post-treatment (plantation establishment)"}, {"category_id": 15, "poly": [775.0, 1215.0, 1387.0, 1217.0, 1387.0, 1253.0, 775.0, 1251.0], "score": 0.99, "text": " ment converted from grassland or a crop equivalent to"}, {"category_id": 15, "poly": [780.0, 1253.0, 1385.0, 1253.0, 1385.0, 1284.0, 780.0, 1284.0], "score": 0.99, "text": "plantation. In reality, all these criteria were not easy to"}, {"category_id": 15, "poly": [782.0, 1286.0, 1383.0, 1286.0, 1383.0, 1316.0, 782.0, 1316.0], "score": 0.99, "text": "satisfy. For example in Victoria, Australia, the best"}, {"category_id": 15, "poly": [780.0, 1320.0, 1385.0, 1320.0, 1385.0, 1348.0, 780.0, 1348.0], "score": 0.99, "text": "data is from Stewarts Creek, a set of decommissioned"}, {"category_id": 15, "poly": [780.0, 1352.0, 1385.0, 1352.0, 1385.0, 1382.0, 780.0, 1382.0], "score": 0.99, "text": "research catchments with 9 years of pre-treatment"}, {"category_id": 15, "poly": [780.0, 1387.0, 1383.0, 1387.0, 1383.0, 1417.0, 780.0, 1417.0], "score": 1.0, "text": "data and 25 years of post-treatment. Here, though, the"}, {"category_id": 15, "poly": [778.0, 1417.0, 1383.0, 1419.0, 1383.0, 1449.0, 777.0, 1447.0], "score": 0.98, "text": "treatment was a conversion from native eucalypt"}, {"category_id": 15, "poly": [780.0, 1453.0, 1385.0, 1453.0, 1385.0, 1484.0, 780.0, 1484.0], "score": 0.99, "text": "forest to pine. The assumption made for this data set is"}, {"category_id": 15, "poly": [780.0, 1486.0, 1383.0, 1486.0, 1383.0, 1516.0, 780.0, 1516.0], "score": 0.98, "text": "that the immediate post-treatment period may be"}, {"category_id": 15, "poly": [780.0, 1518.0, 1383.0, 1518.0, 1383.0, 1548.0, 780.0, 1548.0], "score": 0.99, "text": "viewed as a non-forested condition. This condition is"}, {"category_id": 15, "poly": [777.0, 1552.0, 1385.0, 1552.0, 1385.0, 1582.0, 777.0, 1582.0], "score": 0.99, "text": "likely to approximate the ET conditions of pasture or"}, {"category_id": 15, "poly": [780.0, 1587.0, 1385.0, 1587.0, 1385.0, 1617.0, 780.0, 1617.0], "score": 0.98, "text": "short crops for up to 3 years. Catchment details and"}, {"category_id": 15, "poly": [775.0, 1619.0, 1145.0, 1617.0, 1145.0, 1647.0, 775.0, 1649.0], "score": 1.0, "text": "treatments are given in Table 1."}, {"category_id": 15, "poly": [780.0, 1187.0, 1154.0, 1187.0, 1154.0, 1217.0, 780.0, 1217.0], "score": 0.98, "text": "flow record with approximately"}, {"category_id": 15, "poly": [1224.0, 1187.0, 1381.0, 1187.0, 1381.0, 1217.0, 1224.0, 1217.0], "score": 0.99, "text": "of the catch-"}, {"category_id": 15, "poly": [466.0, 194.0, 1033.0, 194.0, 1033.0, 224.0, 466.0, 224.0], "score": 0.99, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [776.0, 881.0, 924.0, 886.0, 923.0, 925.0, 775.0, 920.0], "score": 0.96, "text": " 3. Data sets"}, {"category_id": 15, "poly": [782.0, 254.0, 1383.0, 254.0, 1383.0, 290.0, 782.0, 290.0], "score": 0.99, "text": "when comparing (5) and (2) would indicate the time"}, {"category_id": 15, "poly": [782.0, 290.0, 1381.0, 290.0, 1381.0, 320.0, 782.0, 320.0], "score": 1.0, "text": "term in (6) was required to improve the complete"}, {"category_id": 15, "poly": [778.0, 318.0, 1347.0, 320.0, 1347.0, 357.0, 777.0, 355.0], "score": 1.0, "text": "model and is therefore significant, and vice versa."}, {"category_id": 15, "poly": [782.0, 656.0, 1385.0, 656.0, 1385.0, 686.0, 782.0, 686.0], "score": 1.0, "text": "where SSE is the residual sum of the squared errors, df"}, {"category_id": 15, "poly": [780.0, 686.0, 1383.0, 686.0, 1383.0, 722.0, 780.0, 722.0], "score": 0.99, "text": "is degrees of freedom, and the subscripts s and c refer"}, {"category_id": 15, "poly": [778.0, 720.0, 1379.0, 722.0, 1379.0, 753.0, 777.0, 750.0], "score": 0.98, "text": "to the simplified model and complete models,"}, {"category_id": 15, "poly": [777.0, 752.0, 926.0, 752.0, 926.0, 789.0, 777.0, 789.0], "score": 0.97, "text": "respectively."}, {"category_id": 15, "poly": [816.0, 1651.0, 1381.0, 1651.0, 1381.0, 1681.0, 816.0, 1681.0], "score": 0.99, "text": "All catchments, with the exception of Traralgon"}, {"category_id": 15, "poly": [782.0, 1686.0, 1379.0, 1686.0, 1379.0, 1716.0, 782.0, 1716.0], "score": 1.0, "text": "Creek, were afforested with pine species, predomi-"}, {"category_id": 15, "poly": [782.0, 1752.0, 1379.0, 1752.0, 1379.0, 1782.0, 782.0, 1782.0], "score": 1.0, "text": "Cathedral Peak catchments. Traralgon Creek has only"}, {"category_id": 15, "poly": [776.0, 1812.0, 1147.0, 1817.0, 1147.0, 1851.0, 775.0, 1847.0], "score": 0.99, "text": "of which is Eucalyptus regnans."}, {"category_id": 15, "poly": [821.0, 1784.0, 1381.0, 1784.0, 1381.0, 1815.0, 821.0, 1815.0], "score": 0.99, "text": " pine, with the remainder eucalypts species, most"}, {"category_id": 15, "poly": [780.0, 1718.0, 1073.0, 1718.0, 1073.0, 1748.0, 780.0, 1748.0], "score": 0.97, "text": "nantly Pinus radiata, with"}, {"category_id": 15, "poly": [1096.0, 1718.0, 1381.0, 1718.0, 1381.0, 1748.0, 1096.0, 1748.0], "score": 0.96, "text": "patula planted at the two"}, {"category_id": 15, "poly": [1340.0, 189.0, 1387.0, 189.0, 1387.0, 239.0, 1340.0, 239.0], "score": 1.0, "text": "257"}, {"category_id": 15, "poly": [814.0, 355.0, 1383.0, 355.0, 1383.0, 385.0, 814.0, 385.0], "score": 0.98, "text": "Due to the constraint that the rainfall and time term"}, {"category_id": 15, "poly": [780.0, 456.0, 1381.0, 456.0, 1381.0, 486.0, 780.0, 486.0], "score": 0.97, "text": "the critical value for significance at the 0.05 level."}, {"category_id": 15, "poly": [1136.0, 415.0, 1383.0, 417.0, 1383.0, 454.0, 1136.0, 451.0], "score": 0.98, "text": ", and compared with"}, {"category_id": 15, "poly": [780.0, 486.0, 830.0, 488.0, 830.0, 518.0, 780.0, 516.0], "score": 1.0, "text": "The"}, {"category_id": 15, "poly": [853.0, 486.0, 1160.0, 488.0, 1160.0, 518.0, 853.0, 516.0], "score": 0.99, "text": "-statistic was calculated as:"}, {"category_id": 15, "poly": [782.0, 389.0, 1119.0, 389.0, 1119.0, 419.0, 782.0, 419.0], "score": 0.99, "text": "must be positive, a one tailed"}, {"category_id": 15, "poly": [1134.0, 389.0, 1381.0, 389.0, 1381.0, 419.0, 1134.0, 419.0], "score": 0.98, "text": "-test was applied. The"}, {"category_id": 15, "poly": [793.0, 415.0, 1086.0, 417.0, 1086.0, 454.0, 793.0, 451.0], "score": 0.96, "text": "-value was calculated as"}], "page_info": {"page_no": 4, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 1, "poly": [795.8170166015625, 1284.819091796875, 1393.7825927734375, 1284.819091796875, 1393.7825927734375, 1348.0101318359375, 795.8170166015625, 1348.0101318359375], "score": 0.999998927116394}, {"category_id": 0, "poly": [796.8157348632812, 1217.8375244140625, 1043.37890625, 1217.8375244140625, 1043.37890625, 1247.9854736328125, 796.8157348632812, 1247.9854736328125], "score": 0.9999985694885254}, {"category_id": 2, "poly": [129.85670471191406, 196.5391082763672, 165.74688720703125, 196.5391082763672, 165.74688720703125, 216.1761932373047, 129.85670471191406, 216.1761932373047], "score": 0.9999985098838806}, {"category_id": 6, "poly": [129.43519592285156, 1376.390380859375, 374.6851806640625, 1376.390380859375, 374.6851806640625, 1428.6553955078125, 129.43519592285156, 1428.6553955078125], "score": 0.9999979734420776}, {"category_id": 0, "poly": [796.9744873046875, 1150.6444091796875, 911.8010864257812, 1150.6444091796875, 911.8010864257812, 1181.93017578125, 796.9744873046875, 1181.93017578125], "score": 0.9999944567680359}, {"category_id": 1, "poly": [793.93212890625, 785.8515625, 1394.5316162109375, 785.8515625, 1394.5316162109375, 1081.7857666015625, 793.93212890625, 1081.7857666015625], "score": 0.9999939203262329}, {"category_id": 5, "poly": [123.9719009399414, 1433.21337890625, 1400.553466796875, 1433.21337890625, 1400.553466796875, 1814.204345703125, 123.9719009399414, 1814.204345703125], "score": 0.9999938011169434}, {"category_id": 1, "poly": [130.5817108154297, 786.2269897460938, 730.632080078125, 786.2269897460938, 730.632080078125, 1349.01904296875, 130.5817108154297, 1349.01904296875], "score": 0.9999901652336121}, {"category_id": 6, "poly": [128.56288146972656, 253.8047637939453, 514.1275024414062, 253.8047637939453, 514.1275024414062, 308.0131530761719, 128.56288146972656, 308.0131530761719], "score": 0.9999885559082031}, {"category_id": 5, "poly": [126.36900329589844, 314.1026611328125, 1399.912109375, 314.1026611328125, 1399.912109375, 690.7048950195312, 126.36900329589844, 690.7048950195312], "score": 0.9999723434448242}, {"category_id": 2, "poly": [479.1275939941406, 195.43199157714844, 1044.5283203125, 195.43199157714844, 1044.5283203125, 218.68853759765625, 479.1275939941406, 218.68853759765625], "score": 0.9999346733093262}, {"category_id": 7, "poly": [128.99925231933594, 698.5426635742188, 1394.448486328125, 698.5426635742188, 1394.448486328125, 749.8440551757812, 128.99925231933594, 749.8440551757812], "score": 0.9987799525260925}, {"category_id": 7, "poly": [127.37924194335938, 1819.0853271484375, 1038.7354736328125, 1819.0853271484375, 1038.7354736328125, 1844.94091796875, 127.37924194335938, 1844.94091796875], "score": 0.9987504482269287}, {"category_id": 13, "poly": [626, 696, 660, 696, 660, 720, 626, 720], "score": 0.86, "latex": "5\\%"}, {"category_id": 13, "poly": [1190, 697, 1224, 697, 1224, 720, 1190, 720], "score": 0.86, "latex": "5\\%"}, {"category_id": 13, "poly": [299, 724, 342, 724, 342, 748, 299, 748], "score": 0.85, "latex": "10\\%"}, {"category_id": 13, "poly": [128, 698, 146, 698, 146, 719, 128, 719], "score": 0.69, "latex": "P"}, {"category_id": 13, "poly": [719, 697, 737, 697, 737, 719, 719, 719], "score": 0.44, "latex": "T"}, {"category_id": 13, "poly": [356, 1404, 375, 1404, 375, 1426, 356, 1426], "score": 0.33, "latex": "E"}, {"category_id": 15, "poly": [827.0, 1286.0, 1396.0, 1286.0, 1396.0, 1316.0, 827.0, 1316.0], "score": 0.95, "text": "The fit of the complete model, Eq. (2), to the"}, {"category_id": 15, "poly": [795.0, 1322.0, 1394.0, 1322.0, 1394.0, 1352.0, 795.0, 1352.0], "score": 0.98, "text": "observed data was generally good. Table 2 gives"}, {"category_id": 15, "poly": [795.0, 1221.0, 1046.0, 1221.0, 1046.0, 1251.0, 795.0, 1251.0], "score": 1.0, "text": "4.1. Model evaluation"}, {"category_id": 15, "poly": [127.0, 189.0, 172.0, 189.0, 172.0, 228.0, 127.0, 228.0], "score": 1.0, "text": "258"}, {"category_id": 15, "poly": [131.0, 1378.0, 204.0, 1378.0, 204.0, 1402.0, 131.0, 1402.0], "score": 0.93, "text": "Table 3"}, {"category_id": 15, "poly": [127.0, 1397.0, 355.0, 1400.0, 355.0, 1436.0, 127.0, 1434.0], "score": 0.97, "text": "Coefficient of efficiency,"}, {"category_id": 15, "poly": [790.0, 1150.0, 915.0, 1150.0, 915.0, 1189.0, 790.0, 1189.0], "score": 1.0, "text": "4. Results"}, {"category_id": 15, "poly": [793.0, 787.0, 1396.0, 787.0, 1396.0, 817.0, 793.0, 817.0], "score": 0.99, "text": "and Redhill the lower BFI is matched by the shallow"}, {"category_id": 15, "poly": [793.0, 821.0, 1398.0, 821.0, 1398.0, 849.0, 793.0, 849.0], "score": 0.99, "text": "soils. Pre-treatment data is not available for all"}, {"category_id": 15, "poly": [793.0, 854.0, 1398.0, 854.0, 1398.0, 884.0, 793.0, 884.0], "score": 0.98, "text": "catchment in the data set, so it was decided for the"}, {"category_id": 15, "poly": [793.0, 886.0, 1396.0, 886.0, 1396.0, 916.0, 793.0, 916.0], "score": 1.0, "text": "sake of consistency in the analysis to start each of the"}, {"category_id": 15, "poly": [795.0, 920.0, 1396.0, 920.0, 1396.0, 950.0, 795.0, 950.0], "score": 0.98, "text": "data sets in the year of treatment. The FDCs were"}, {"category_id": 15, "poly": [795.0, 955.0, 1396.0, 955.0, 1396.0, 985.0, 795.0, 985.0], "score": 0.99, "text": "constructed for water years of May-April for eight"}, {"category_id": 15, "poly": [793.0, 987.0, 1396.0, 987.0, 1396.0, 1017.0, 793.0, 1017.0], "score": 1.0, "text": "catchments. The 2 Cathedral Peak catchments were"}, {"category_id": 15, "poly": [790.0, 1019.0, 1398.0, 1019.0, 1398.0, 1049.0, 790.0, 1049.0], "score": 0.98, "text": "analysed for November-October because of the"}, {"category_id": 15, "poly": [790.0, 1054.0, 1192.0, 1054.0, 1192.0, 1084.0, 790.0, 1084.0], "score": 1.0, "text": "summer rainfall maxima (Table 2)."}, {"category_id": 15, "poly": [163.0, 785.0, 732.0, 785.0, 732.0, 815.0, 163.0, 815.0], "score": 0.98, "text": "Data on soil characteristics have been obtained"}, {"category_id": 15, "poly": [125.0, 815.0, 735.0, 817.0, 734.0, 854.0, 125.0, 851.0], "score": 1.0, "text": "from published reports and personal communication"}, {"category_id": 15, "poly": [125.0, 849.0, 732.0, 851.0, 732.0, 888.0, 125.0, 886.0], "score": 1.0, "text": "with researchers, but is far from uniform, particularly"}, {"category_id": 15, "poly": [124.0, 886.0, 734.0, 881.0, 735.0, 918.0, 125.0, 922.0], "score": 1.0, "text": "regarding porosity. Consequently only an indication"}, {"category_id": 15, "poly": [129.0, 920.0, 732.0, 920.0, 732.0, 950.0, 129.0, 950.0], "score": 0.99, "text": "of mean depth is reported here. However, this does"}, {"category_id": 15, "poly": [125.0, 950.0, 732.0, 952.0, 732.0, 989.0, 125.0, 987.0], "score": 0.99, "text": " give some indication of the likely relative storage"}, {"category_id": 15, "poly": [129.0, 987.0, 732.0, 987.0, 732.0, 1017.0, 129.0, 1017.0], "score": 0.99, "text": "capacities of the catchments. To obtain insights into"}, {"category_id": 15, "poly": [129.0, 1021.0, 732.0, 1021.0, 732.0, 1051.0, 129.0, 1051.0], "score": 0.97, "text": "the pre-afforestation hydrologic characteristics a"}, {"category_id": 15, "poly": [129.0, 1054.0, 732.0, 1054.0, 732.0, 1084.0, 129.0, 1084.0], "score": 0.99, "text": "baseflow separation was performed on the daily"}, {"category_id": 15, "poly": [129.0, 1088.0, 732.0, 1088.0, 732.0, 1118.0, 129.0, 1118.0], "score": 0.97, "text": "fows for the first 3 years following disturbance,"}, {"category_id": 15, "poly": [129.0, 1118.0, 730.0, 1118.0, 730.0, 1148.0, 129.0, 1148.0], "score": 0.98, "text": "using the digital filtering method of Lyne and Hollick"}, {"category_id": 15, "poly": [129.0, 1152.0, 732.0, 1152.0, 732.0, 1182.0, 129.0, 1182.0], "score": 0.98, "text": "(1979) with a filter coefficient of 0.925 and three"}, {"category_id": 15, "poly": [125.0, 1185.0, 734.0, 1182.0, 735.0, 1219.0, 125.0, 1221.0], "score": 0.99, "text": " passes. The resultant average basefow index (BFI),"}, {"category_id": 15, "poly": [129.0, 1221.0, 730.0, 1221.0, 730.0, 1249.0, 129.0, 1249.0], "score": 0.98, "text": "the ratio of baseflow to total flow, is given in Table 1."}, {"category_id": 15, "poly": [129.0, 1251.0, 730.0, 1251.0, 730.0, 1281.0, 129.0, 1281.0], "score": 0.97, "text": "The Australian catchments display a notably"}, {"category_id": 15, "poly": [129.0, 1288.0, 732.0, 1288.0, 732.0, 1316.0, 129.0, 1316.0], "score": 0.98, "text": "lower BFI than the South African and New Zealand"}, {"category_id": 15, "poly": [127.0, 1320.0, 734.0, 1318.0, 735.0, 1348.0, 127.0, 1350.0], "score": 0.96, "text": "catchments. For Stewarts Creek, Pine Creek"}, {"category_id": 15, "poly": [129.0, 252.0, 208.0, 252.0, 208.0, 282.0, 129.0, 282.0], "score": 0.98, "text": "Table 2"}, {"category_id": 15, "poly": [129.0, 282.0, 513.0, 282.0, 513.0, 312.0, 129.0, 312.0], "score": 0.99, "text": "Significance of the rainfall and time terms"}, {"category_id": 15, "poly": [481.0, 194.0, 1046.0, 194.0, 1046.0, 224.0, 481.0, 224.0], "score": 0.97, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [1225.0, 697.0, 1396.0, 697.0, 1396.0, 727.0, 1225.0, 727.0], "score": 0.98, "text": "level, * represents"}, {"category_id": 15, "poly": [129.0, 725.0, 298.0, 725.0, 298.0, 755.0, 129.0, 755.0], "score": 0.98, "text": "significance at the"}, {"category_id": 15, "poly": [343.0, 725.0, 941.0, 725.0, 941.0, 755.0, 343.0, 755.0], "score": 0.99, "text": "level, and na denotes too few data points for meaningful analysis."}, {"category_id": 15, "poly": [147.0, 697.0, 625.0, 697.0, 625.0, 727.0, 147.0, 727.0], "score": 0.98, "text": " indicates that the rainfall term was significant at the"}, {"category_id": 15, "poly": [661.0, 697.0, 718.0, 697.0, 718.0, 727.0, 661.0, 727.0], "score": 1.0, "text": "level,"}, {"category_id": 15, "poly": [738.0, 697.0, 1189.0, 697.0, 1189.0, 727.0, 738.0, 727.0], "score": 0.99, "text": "indicates that the time term was significant at the"}, {"category_id": 15, "poly": [129.0, 1821.0, 1037.0, 1821.0, 1037.0, 1849.0, 129.0, 1849.0], "score": 0.99, "text": "ns Indicates that no solution was found, and na denotes deciles with too few data points for analysis"}], "page_info": {"page_no": 5, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 2, "poly": [1345.084228515625, 193.99124145507812, 1383.04443359375, 193.99124145507812, 1383.04443359375, 217.28871154785156, 1345.084228515625, 217.28871154785156], "score": 0.9999984502792358}, {"category_id": 1, "poly": [778.7415161132812, 875.8572387695312, 1385.70263671875, 875.8572387695312, 1385.70263671875, 1045.03857421875, 778.7415161132812, 1045.03857421875], "score": 0.9999930262565613}, {"category_id": 1, "poly": [112.97018432617188, 850.864990234375, 721.0302124023438, 850.864990234375, 721.0302124023438, 1216.21875, 112.97018432617188, 1216.21875], "score": 0.9999922513961792}, {"category_id": 4, "poly": [777.7315673828125, 753.8668212890625, 1386.6640625, 753.8668212890625, 1386.6640625, 842.7579345703125, 777.7315673828125, 842.7579345703125], "score": 0.9999915957450867}, {"category_id": 1, "poly": [777.9397583007812, 1045.28857421875, 1386.9669189453125, 1045.28857421875, 1386.9669189453125, 1678.6064453125, 777.9397583007812, 1678.6064453125], "score": 0.9999915957450867}, {"category_id": 1, "poly": [112.64908599853516, 250.50961303710938, 720.302001953125, 250.50961303710938, 720.302001953125, 849.3114624023438, 112.64908599853516, 849.3114624023438], "score": 0.9999906420707703}, {"category_id": 1, "poly": [112.41944122314453, 1315.5491943359375, 721.3580932617188, 1315.5491943359375, 721.3580932617188, 1851.324462890625, 112.41944122314453, 1851.324462890625], "score": 0.9999880790710449}, {"category_id": 3, "poly": [776.4273681640625, 253.75418090820312, 1388.254638671875, 253.75418090820312, 1388.254638671875, 736.9627685546875, 776.4273681640625, 736.9627685546875], "score": 0.9999828338623047}, {"category_id": 2, "poly": [464.4588928222656, 193.45211791992188, 1032.725341796875, 193.45211791992188, 1032.725341796875, 219.19715881347656, 464.4588928222656, 219.19715881347656], "score": 0.9999587535858154}, {"category_id": 0, "poly": [115.3223876953125, 1251.6119384765625, 695.34326171875, 1251.6119384765625, 695.34326171875, 1287.6334228515625, 115.3223876953125, 1287.6334228515625], "score": 0.9989659786224365}, {"category_id": 1, "poly": [778.8644409179688, 1705.2630615234375, 1386.922119140625, 1705.2630615234375, 1386.922119140625, 1843.95654296875, 778.8644409179688, 1843.95654296875], "score": 0.99659264087677}, {"category_id": 13, "poly": [601, 1814, 711, 1814, 711, 1847, 601, 1847], "score": 0.9, "latex": "T{=}\\,2T_{\\mathrm{half}}"}, {"category_id": 13, "poly": [878, 1079, 975, 1079, 975, 1110, 878, 1110], "score": 0.9, "latex": "Y/(Y+a)"}, {"category_id": 13, "poly": [780, 880, 833, 880, 833, 911, 780, 911], "score": 0.89, "latex": "T_{\\mathrm{half}}"}, {"category_id": 13, "poly": [296, 319, 380, 319, 380, 349, 296, 349], "score": 0.89, "latex": "E\\!>\\!0.7"}, {"category_id": 13, "poly": [160, 1682, 231, 1682, 231, 1713, 160, 1713], "score": 0.88, "latex": "a+Y)"}, {"category_id": 13, "poly": [116, 320, 188, 320, 188, 351, 116, 351], "score": 0.88, "latex": "(77\\%)"}, {"category_id": 13, "poly": [268, 751, 324, 751, 324, 781, 268, 781], "score": 0.87, "latex": "80\\%"}, {"category_id": 13, "poly": [628, 585, 684, 585, 684, 615, 628, 615], "score": 0.87, "latex": "75\\%"}, {"category_id": 13, "poly": [602, 619, 644, 619, 644, 647, 602, 647], "score": 0.85, "latex": "9\\%"}, {"category_id": 13, "poly": [533, 784, 577, 784, 577, 814, 533, 814], "score": 0.83, "latex": "9\\%"}, {"category_id": 13, "poly": [323, 1384, 364, 1384, 364, 1412, 323, 1412], "score": 0.77, "latex": "\\Delta P"}, {"category_id": 13, "poly": [286, 852, 308, 852, 308, 879, 286, 879], "score": 0.75, "latex": "E"}, {"category_id": 13, "poly": [409, 885, 432, 885, 432, 912, 409, 912], "score": 0.71, "latex": "E"}, {"category_id": 13, "poly": [566, 1085, 590, 1085, 590, 1112, 566, 1112], "score": 0.7, "latex": "E"}, {"category_id": 13, "poly": [484, 254, 524, 254, 524, 284, 484, 284], "score": 0.7, "latex": "(E)"}, {"category_id": 13, "poly": [315, 919, 334, 919, 334, 946, 315, 946], "score": 0.66, "latex": "b"}, {"category_id": 13, "poly": [376, 587, 394, 587, 394, 614, 376, 614], "score": 0.62, "latex": "b"}, {"category_id": 13, "poly": [460, 1051, 478, 1051, 478, 1077, 460, 1077], "score": 0.59, "latex": "b"}, {"category_id": 13, "poly": [451, 319, 552, 319, 552, 350, 451, 350], "score": 0.46, "latex": "60\\%~0.8"}, {"category_id": 13, "poly": [498, 719, 522, 719, 522, 746, 498, 746], "score": 0.45, "latex": "Y"}, {"category_id": 15, "poly": [1342.0, 191.0, 1387.0, 191.0, 1387.0, 236.0, 1342.0, 236.0], "score": 1.0, "text": "259"}, {"category_id": 15, "poly": [780.0, 914.0, 1383.0, 914.0, 1383.0, 944.0, 780.0, 944.0], "score": 0.99, "text": "most deciles the adjusted FDCs are identical for 12"}, {"category_id": 15, "poly": [780.0, 948.0, 1381.0, 948.0, 1381.0, 978.0, 780.0, 978.0], "score": 0.98, "text": "and 20 years after treatment. This figure clearly"}, {"category_id": 15, "poly": [782.0, 983.0, 1381.0, 983.0, 1381.0, 1013.0, 782.0, 1013.0], "score": 0.98, "text": "demonstrates the necessity for FDC adjustment,"}, {"category_id": 15, "poly": [773.0, 1013.0, 1168.0, 1010.0, 1168.0, 1047.0, 773.0, 1049.0], "score": 0.99, "text": " particularly for the 20 years FDC."}, {"category_id": 15, "poly": [834.0, 882.0, 1383.0, 882.0, 1383.0, 912.0, 834.0, 912.0], "score": 0.99, "text": "values are given in Table 4. Fig. 3 shows that for"}, {"category_id": 15, "poly": [116.0, 955.0, 719.0, 955.0, 719.0, 985.0, 116.0, 985.0], "score": 0.98, "text": "general the model fits the higher flows (lower deciles)"}, {"category_id": 15, "poly": [116.0, 987.0, 719.0, 987.0, 719.0, 1017.0, 116.0, 1017.0], "score": 1.0, "text": "better, most of the poorer fits are in the 80-100"}, {"category_id": 15, "poly": [112.0, 1017.0, 722.0, 1015.0, 722.0, 1051.0, 112.0, 1054.0], "score": 0.97, "text": " percentile range. This can be expected given the results"}, {"category_id": 15, "poly": [116.0, 1120.0, 722.0, 1120.0, 722.0, 1150.0, 116.0, 1150.0], "score": 0.99, "text": "Glendhu 2 and for 10th and 20th percentiles from"}, {"category_id": 15, "poly": [114.0, 1150.0, 724.0, 1150.0, 724.0, 1187.0, 114.0, 1187.0], "score": 0.98, "text": "Cathedral Peak 3 may exaggerate the goodness of fit to"}, {"category_id": 15, "poly": [114.0, 1187.0, 646.0, 1187.0, 646.0, 1215.0, 114.0, 1215.0], "score": 0.98, "text": "the exact form of the model (Lane et al., 2003)."}, {"category_id": 15, "poly": [150.0, 854.0, 285.0, 854.0, 285.0, 884.0, 150.0, 884.0], "score": 1.0, "text": "The poorest"}, {"category_id": 15, "poly": [309.0, 854.0, 715.0, 854.0, 715.0, 884.0, 309.0, 884.0], "score": 0.99, "text": "values were those from Lambrechts-"}, {"category_id": 15, "poly": [116.0, 886.0, 408.0, 886.0, 408.0, 916.0, 116.0, 916.0], "score": 0.95, "text": "bos A and B. The high"}, {"category_id": 15, "poly": [433.0, 886.0, 719.0, 886.0, 719.0, 916.0, 433.0, 916.0], "score": 0.96, "text": "for 50-100th deciles at"}, {"category_id": 15, "poly": [114.0, 1088.0, 565.0, 1088.0, 565.0, 1118.0, 114.0, 1118.0], "score": 0.97, "text": "sensitivity analysis suggested that the"}, {"category_id": 15, "poly": [591.0, 1088.0, 722.0, 1088.0, 722.0, 1118.0, 591.0, 1118.0], "score": 0.97, "text": "values for"}, {"category_id": 15, "poly": [116.0, 920.0, 314.0, 920.0, 314.0, 950.0, 116.0, 950.0], "score": 1.0, "text": "Biesievlei, where"}, {"category_id": 15, "poly": [335.0, 920.0, 719.0, 920.0, 719.0, 950.0, 335.0, 950.0], "score": 0.99, "text": "was not significant are notable. In"}, {"category_id": 15, "poly": [114.0, 1054.0, 459.0, 1054.0, 459.0, 1084.0, 114.0, 1084.0], "score": 0.95, "text": "of the significance tests for "}, {"category_id": 15, "poly": [479.0, 1054.0, 719.0, 1054.0, 719.0, 1084.0, 479.0, 1084.0], "score": 0.96, "text": ". The results of the"}, {"category_id": 15, "poly": [780.0, 759.0, 1383.0, 759.0, 1383.0, 789.0, 780.0, 789.0], "score": 0.98, "text": "Fig. 3. Examples of observed and fow duration curves adjusted for"}, {"category_id": 15, "poly": [782.0, 787.0, 1381.0, 787.0, 1381.0, 815.0, 782.0, 815.0], "score": 0.97, "text": "average rainfall following afforestation for Stewarts Creek 5,"}, {"category_id": 15, "poly": [779.0, 810.0, 873.0, 815.0, 871.0, 845.0, 777.0, 840.0], "score": 1.0, "text": "Australia."}, {"category_id": 15, "poly": [810.0, 1043.0, 1385.0, 1045.0, 1385.0, 1081.0, 810.0, 1079.0], "score": 0.98, "text": "The relative net flow change due to afforestation is"}, {"category_id": 15, "poly": [775.0, 1109.0, 1387.0, 1112.0, 1387.0, 1148.0, 775.0, 1146.0], "score": 0.99, "text": " old equilibrium water use condition of pre-treatment"}, {"category_id": 15, "poly": [777.0, 1146.0, 1387.0, 1142.0, 1388.0, 1178.0, 778.0, 1183.0], "score": 1.0, "text": "vegetation to the new equilibrium condition at forest"}, {"category_id": 15, "poly": [777.0, 1178.0, 1385.0, 1176.0, 1385.0, 1213.0, 778.0, 1215.0], "score": 0.99, "text": "canopy closure. This quantity is plotted for all catchments"}, {"category_id": 15, "poly": [780.0, 1215.0, 1385.0, 1215.0, 1385.0, 1245.0, 780.0, 1245.0], "score": 0.98, "text": "in Fig. 4. Some deciles have been removed from the data"}, {"category_id": 15, "poly": [782.0, 1247.0, 1383.0, 1247.0, 1383.0, 1277.0, 782.0, 1277.0], "score": 0.98, "text": "set, the 10th and 50th percentile for Glendhu 2 and the"}, {"category_id": 15, "poly": [782.0, 1281.0, 1383.0, 1281.0, 1383.0, 1312.0, 782.0, 1312.0], "score": 1.0, "text": "10th and 20th percentiles from Cathedral Peak 3. The"}, {"category_id": 15, "poly": [780.0, 1314.0, 1383.0, 1314.0, 1383.0, 1344.0, 780.0, 1344.0], "score": 0.98, "text": "optimised value of a was zero or near zero for these cases,"}, {"category_id": 15, "poly": [780.0, 1348.0, 1383.0, 1348.0, 1383.0, 1378.0, 780.0, 1378.0], "score": 1.0, "text": "which is not consistent with the conceptual model. The"}, {"category_id": 15, "poly": [775.0, 1378.0, 1385.0, 1376.0, 1385.0, 1413.0, 775.0, 1415.0], "score": 0.98, "text": " changes shown in Fig. 4 are variable. However, there are"}, {"category_id": 15, "poly": [780.0, 1415.0, 1385.0, 1415.0, 1385.0, 1445.0, 780.0, 1445.0], "score": 1.0, "text": "some commonalities between catchment responses. Two"}, {"category_id": 15, "poly": [775.0, 1447.0, 1387.0, 1445.0, 1387.0, 1481.0, 775.0, 1484.0], "score": 0.99, "text": "types of responses (groups) were identified. Group 1"}, {"category_id": 15, "poly": [780.0, 1481.0, 1385.0, 1481.0, 1385.0, 1511.0, 780.0, 1511.0], "score": 1.0, "text": "catchments show a substantial increase in the number of"}, {"category_id": 15, "poly": [777.0, 1514.0, 1387.0, 1514.0, 1387.0, 1550.0, 777.0, 1550.0], "score": 0.96, "text": " zero flow days, with a greater proportional reduction in"}, {"category_id": 15, "poly": [782.0, 1548.0, 1385.0, 1548.0, 1385.0, 1578.0, 782.0, 1578.0], "score": 0.99, "text": "low flows than high fows. Group 2 catchments show a"}, {"category_id": 15, "poly": [780.0, 1582.0, 1383.0, 1582.0, 1383.0, 1612.0, 780.0, 1612.0], "score": 0.99, "text": "more uniform proportional reduction in fows across all"}, {"category_id": 15, "poly": [777.0, 1617.0, 1383.0, 1615.0, 1383.0, 1645.0, 778.0, 1647.0], "score": 1.0, "text": "percentiles, albeit with some variability. The catchments"}, {"category_id": 15, "poly": [776.0, 1644.0, 980.0, 1649.0, 979.0, 1686.0, 775.0, 1681.0], "score": 0.95, "text": " in each group are:"}, {"category_id": 15, "poly": [780.0, 1079.0, 877.0, 1079.0, 877.0, 1116.0, 780.0, 1116.0], "score": 1.0, "text": "givenby"}, {"category_id": 15, "poly": [976.0, 1079.0, 1385.0, 1079.0, 1385.0, 1116.0, 976.0, 1116.0], "score": 0.98, "text": ", which represents the change from the"}, {"category_id": 15, "poly": [116.0, 288.0, 717.0, 288.0, 717.0, 318.0, 116.0, 318.0], "score": 0.99, "text": "percentile at all the catchments. The majority of fits"}, {"category_id": 15, "poly": [116.0, 355.0, 719.0, 355.0, 719.0, 385.0, 116.0, 385.0], "score": 0.99, "text": "significance of the rainfall and time terms is given in"}, {"category_id": 15, "poly": [114.0, 387.0, 717.0, 387.0, 717.0, 417.0, 114.0, 417.0], "score": 1.0, "text": "Table 3 for all deciles, where solutions were found."}, {"category_id": 15, "poly": [112.0, 417.0, 720.0, 421.0, 719.0, 452.0, 112.0, 447.0], "score": 0.98, "text": "There were not enough data to fit the model in five"}, {"category_id": 15, "poly": [116.0, 456.0, 717.0, 456.0, 717.0, 484.0, 116.0, 484.0], "score": 0.98, "text": "instances because of extended periods of zero flows."}, {"category_id": 15, "poly": [116.0, 488.0, 719.0, 488.0, 719.0, 518.0, 116.0, 518.0], "score": 0.99, "text": "This problem is addressed to some extent in the zero"}, {"category_id": 15, "poly": [116.0, 522.0, 719.0, 522.0, 719.0, 550.0, 116.0, 550.0], "score": 1.0, "text": "fow analysis. If the rainfall signal is to be separated"}, {"category_id": 15, "poly": [114.0, 555.0, 719.0, 555.0, 719.0, 585.0, 114.0, 585.0], "score": 0.98, "text": "from the vegetation signal the rainfall terms must be"}, {"category_id": 15, "poly": [110.0, 649.0, 722.0, 651.0, 722.0, 688.0, 109.0, 686.0], "score": 0.99, "text": " 0.10 level. The incidence of significance was greatest"}, {"category_id": 15, "poly": [116.0, 688.0, 719.0, 688.0, 719.0, 718.0, 116.0, 718.0], "score": 0.99, "text": "for the 10-50th percentiles at 45 of the 50 data sets at"}, {"category_id": 15, "poly": [112.0, 817.0, 432.0, 815.0, 432.0, 851.0, 112.0, 854.0], "score": 0.98, "text": "significant at the 0.10 level."}, {"category_id": 15, "poly": [189.0, 320.0, 295.0, 320.0, 295.0, 350.0, 189.0, 350.0], "score": 1.0, "text": "returned"}, {"category_id": 15, "poly": [116.0, 755.0, 267.0, 755.0, 267.0, 785.0, 116.0, 785.0], "score": 1.0, "text": "results, with"}, {"category_id": 15, "poly": [325.0, 755.0, 719.0, 755.0, 719.0, 785.0, 325.0, 785.0], "score": 0.97, "text": " of the deciles significant at 0.05"}, {"category_id": 15, "poly": [685.0, 589.0, 722.0, 589.0, 722.0, 619.0, 685.0, 619.0], "score": 1.0, "text": "of"}, {"category_id": 15, "poly": [114.0, 621.0, 601.0, 621.0, 601.0, 649.0, 114.0, 649.0], "score": 0.98, "text": "the deciles at the 0.05 level, and a further"}, {"category_id": 15, "poly": [645.0, 621.0, 719.0, 621.0, 719.0, 649.0, 645.0, 649.0], "score": 0.99, "text": "at the"}, {"category_id": 15, "poly": [116.0, 787.0, 532.0, 787.0, 532.0, 815.0, 116.0, 815.0], "score": 0.96, "text": "level. There were an additional"}, {"category_id": 15, "poly": [578.0, 787.0, 719.0, 787.0, 719.0, 815.0, 578.0, 815.0], "score": 0.99, "text": "of deciles"}, {"category_id": 15, "poly": [110.0, 249.0, 483.0, 252.0, 483.0, 288.0, 109.0, 286.0], "score": 0.91, "text": "the coefficient of efficiency "}, {"category_id": 15, "poly": [525.0, 249.0, 720.0, 252.0, 719.0, 288.0, 525.0, 286.0], "score": 0.96, "text": "for each flow"}, {"category_id": 15, "poly": [116.0, 589.0, 375.0, 589.0, 375.0, 619.0, 116.0, 619.0], "score": 1.0, "text": "significant. This term,"}, {"category_id": 15, "poly": [395.0, 589.0, 627.0, 589.0, 627.0, 619.0, 395.0, 619.0], "score": 0.98, "text": ", was significant for"}, {"category_id": 15, "poly": [381.0, 320.0, 450.0, 320.0, 450.0, 350.0, 381.0, 350.0], "score": 0.9, "text": "\uff0cwith"}, {"category_id": 15, "poly": [553.0, 320.0, 719.0, 320.0, 719.0, 350.0, 553.0, 350.0], "score": 0.97, "text": "or better. The"}, {"category_id": 15, "poly": [116.0, 718.0, 497.0, 718.0, 497.0, 748.0, 116.0, 748.0], "score": 0.99, "text": "the 0.05 level. The time term,"}, {"category_id": 15, "poly": [523.0, 718.0, 717.0, 718.0, 717.0, 748.0, 523.0, 748.0], "score": 0.97, "text": "returned similar"}, {"category_id": 15, "poly": [148.0, 1318.0, 719.0, 1318.0, 719.0, 1348.0, 148.0, 1348.0], "score": 0.95, "text": "Following the successful fitting of (2) to the"}, {"category_id": 15, "poly": [114.0, 1352.0, 719.0, 1352.0, 719.0, 1382.0, 114.0, 1382.0], "score": 0.99, "text": "observed percentiles, the FDCs were adjusted for"}, {"category_id": 15, "poly": [114.0, 1419.0, 719.0, 1419.0, 719.0, 1447.0, 114.0, 1447.0], "score": 0.99, "text": "average annual rainfall. The climate adjusted FDCs"}, {"category_id": 15, "poly": [114.0, 1453.0, 719.0, 1453.0, 719.0, 1481.0, 114.0, 1481.0], "score": 0.96, "text": "produce an estimation of the change in flow"}, {"category_id": 15, "poly": [112.0, 1486.0, 722.0, 1483.0, 722.0, 1514.0, 112.0, 1516.0], "score": 0.98, "text": "percentiles over time for each catchment due to"}, {"category_id": 15, "poly": [116.0, 1518.0, 719.0, 1518.0, 719.0, 1548.0, 116.0, 1548.0], "score": 0.99, "text": "afforestation that may be viewed in two forms: new"}, {"category_id": 15, "poly": [114.0, 1552.0, 722.0, 1552.0, 722.0, 1580.0, 114.0, 1580.0], "score": 0.99, "text": "FDCs, adjusted for climate, as exemplified in Fig. 3"}, {"category_id": 15, "poly": [112.0, 1587.0, 721.0, 1582.0, 722.0, 1612.0, 112.0, 1617.0], "score": 0.99, "text": "for Stewarts Creek 5, and a comparison between all"}, {"category_id": 15, "poly": [114.0, 1619.0, 717.0, 1619.0, 717.0, 1649.0, 114.0, 1649.0], "score": 0.99, "text": "catchments of the maximum change in yield (given by"}, {"category_id": 15, "poly": [118.0, 1651.0, 722.0, 1651.0, 722.0, 1681.0, 118.0, 1681.0], "score": 0.99, "text": "Y) for each flow percentile from baseline flows (given"}, {"category_id": 15, "poly": [118.0, 1718.0, 715.0, 1718.0, 715.0, 1748.0, 118.0, 1748.0], "score": 0.98, "text": "equilibrium of maximum water use is reached, the"}, {"category_id": 15, "poly": [116.0, 1750.0, 719.0, 1750.0, 719.0, 1780.0, 116.0, 1780.0], "score": 0.99, "text": "adjusted FDCs for individual years should be identical"}, {"category_id": 15, "poly": [114.0, 1784.0, 719.0, 1784.0, 719.0, 1815.0, 114.0, 1815.0], "score": 0.98, "text": "if rainfall variability has been accounted for. The new"}, {"category_id": 15, "poly": [110.0, 1808.0, 600.0, 1813.0, 600.0, 1856.0, 109.0, 1851.0], "score": 0.96, "text": " equilibrium is approximately reached for "}, {"category_id": 15, "poly": [116.0, 1686.0, 159.0, 1686.0, 159.0, 1716.0, 116.0, 1716.0], "score": 1.0, "text": "by"}, {"category_id": 15, "poly": [232.0, 1686.0, 719.0, 1686.0, 719.0, 1716.0, 232.0, 1716.0], "score": 0.95, "text": " as shown in Fig. 4. Where the new"}, {"category_id": 15, "poly": [116.0, 1387.0, 322.0, 1387.0, 322.0, 1417.0, 116.0, 1417.0], "score": 1.0, "text": "climate by setting"}, {"category_id": 15, "poly": [365.0, 1387.0, 719.0, 1387.0, 719.0, 1417.0, 365.0, 1417.0], "score": 0.99, "text": "to zero, representing long term"}, {"category_id": 15, "poly": [466.0, 194.0, 1033.0, 194.0, 1033.0, 224.0, 466.0, 224.0], "score": 0.99, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [112.0, 1249.0, 694.0, 1251.0, 694.0, 1288.0, 112.0, 1286.0], "score": 0.99, "text": "4.2. Adjusted FDCs\u2014magnitude of fow reductions"}, {"category_id": 15, "poly": [782.0, 1709.0, 1325.0, 1709.0, 1325.0, 1739.0, 782.0, 1739.0], "score": 0.99, "text": "Group 1: Stewarts Creek, Pine Creek, and Redhill"}, {"category_id": 15, "poly": [782.0, 1744.0, 1381.0, 1744.0, 1381.0, 1774.0, 782.0, 1774.0], "score": 0.99, "text": "Group 2: Cathedral Peak 2 and 3, Lambrechtsbos A,"}, {"category_id": 15, "poly": [889.0, 1776.0, 1383.0, 1776.0, 1383.0, 1806.0, 889.0, 1806.0], "score": 1.0, "text": "Lambrechtsbos B, Glendhu 2, Biesievlei and"}, {"category_id": 15, "poly": [889.0, 1810.0, 1072.0, 1810.0, 1072.0, 1840.0, 889.0, 1840.0], "score": 1.0, "text": "Traralgon Creek"}], "page_info": {"page_no": 6, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 6, "poly": [130.38211059570312, 1373.58056640625, 408.3111877441406, 1373.58056640625, 408.3111877441406, 1427.8253173828125, 130.38211059570312, 1427.8253173828125], "score": 0.9999985694885254}, {"category_id": 2, "poly": [131.90994262695312, 195.1804962158203, 165.77700805664062, 195.1804962158203, 165.77700805664062, 215.41661071777344, 131.90994262695312, 215.41661071777344], "score": 0.9999985098838806}, {"category_id": 2, "poly": [481.0845642089844, 195.8048095703125, 1043.9552001953125, 195.8048095703125, 1043.9552001953125, 218.32778930664062, 481.0845642089844, 218.32778930664062], "score": 0.9999977350234985}, {"category_id": 5, "poly": [124.61016845703125, 1434.242919921875, 1399.2454833984375, 1434.242919921875, 1399.2454833984375, 1811.951171875, 124.61016845703125, 1811.951171875], "score": 0.9999969005584717}, {"category_id": 4, "poly": [510.5360107421875, 734.0053100585938, 1013.9042358398438, 734.0053100585938, 1013.9042358398438, 758.7108154296875, 510.5360107421875, 758.7108154296875], "score": 0.9999968409538269}, {"category_id": 1, "poly": [131.32168579101562, 838.9521484375, 730.0957641601562, 838.9521484375, 730.0957641601562, 1314.5084228515625, 131.32168579101562, 1314.5084228515625], "score": 0.9999938011169434}, {"category_id": 3, "poly": [306.1774597167969, 253.64524841308594, 1219.746337890625, 253.64524841308594, 1219.746337890625, 705.4325561523438, 306.1774597167969, 705.4325561523438], "score": 0.9999911785125732}, {"category_id": 1, "poly": [794.51171875, 907.3822631835938, 1395.8782958984375, 907.3822631835938, 1395.8782958984375, 1313.7686767578125, 794.51171875, 1313.7686767578125], "score": 0.9999873042106628}, {"category_id": 7, "poly": [127.02899169921875, 1816.2164306640625, 940.5137939453125, 1816.2164306640625, 940.5137939453125, 1842.17822265625, 127.02899169921875, 1842.17822265625], "score": 0.999592661857605}, {"category_id": 0, "poly": [794.436767578125, 838.79541015625, 1117.543701171875, 838.79541015625, 1117.543701171875, 867.4995727539062, 794.436767578125, 867.4995727539062], "score": 0.9990140795707703}, {"category_id": 13, "poly": [759, 733, 840, 733, 840, 759, 759, 759], "score": 0.9, "latex": "Y/(Y+a)"}, {"category_id": 13, "poly": [815, 1077, 867, 1077, 867, 1108, 815, 1108], "score": 0.89, "latex": "T_{\\mathrm{half}}"}, {"category_id": 13, "poly": [1088, 1179, 1140, 1179, 1140, 1211, 1088, 1211], "score": 0.89, "latex": "T_{\\mathrm{half}}"}, {"category_id": 13, "poly": [130, 1247, 196, 1247, 196, 1277, 130, 1277], "score": 0.84, "latex": "100\\%"}, {"category_id": 13, "poly": [209, 1042, 276, 1042, 276, 1072, 209, 1072], "score": 0.84, "latex": "100\\%"}, {"category_id": 13, "poly": [1174, 940, 1224, 940, 1224, 971, 1174, 971], "score": 0.84, "latex": "T_{\\mathrm{half}}"}, {"category_id": 13, "poly": [129, 1401, 172, 1401, 172, 1428, 129, 1428], "score": 0.7, "latex": "T_{\\mathrm{half}}"}, {"category_id": 15, "poly": [129.0, 1372.0, 208.0, 1372.0, 208.0, 1402.0, 129.0, 1402.0], "score": 0.93, "text": "Table 4"}, {"category_id": 15, "poly": [173.0, 1400.0, 408.0, 1397.0, 408.0, 1434.0, 173.0, 1436.0], "score": 1.0, "text": "(years) for all catchments"}, {"category_id": 15, "poly": [127.0, 189.0, 172.0, 189.0, 172.0, 228.0, 127.0, 228.0], "score": 1.0, "text": "260"}, {"category_id": 15, "poly": [481.0, 194.0, 1046.0, 194.0, 1046.0, 224.0, 481.0, 224.0], "score": 0.97, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [509.0, 733.0, 758.0, 733.0, 758.0, 763.0, 509.0, 763.0], "score": 0.98, "text": "Fig. 4. Net flow reductions"}, {"category_id": 15, "poly": [841.0, 733.0, 1012.0, 733.0, 1012.0, 763.0, 841.0, 763.0], "score": 1.0, "text": "for all catchments."}, {"category_id": 15, "poly": [157.0, 836.0, 737.0, 834.0, 737.0, 871.0, 157.0, 873.0], "score": 0.99, "text": "Group 1 exhibit both the highest reduction of"}, {"category_id": 15, "poly": [127.0, 871.0, 732.0, 871.0, 732.0, 907.0, 127.0, 907.0], "score": 0.98, "text": "flows overall, and show the largest proportional"}, {"category_id": 15, "poly": [129.0, 909.0, 732.0, 909.0, 732.0, 940.0, 129.0, 940.0], "score": 0.96, "text": "reduction at lower flows, leading to a complete"}, {"category_id": 15, "poly": [129.0, 944.0, 732.0, 944.0, 732.0, 974.0, 129.0, 974.0], "score": 0.99, "text": "cessation of fow. Comparison of flow reductions is"}, {"category_id": 15, "poly": [125.0, 972.0, 735.0, 974.0, 734.0, 1011.0, 125.0, 1008.0], "score": 0.99, "text": "hindered slightly by the range of afforestation at the"}, {"category_id": 15, "poly": [129.0, 1010.0, 735.0, 1010.0, 735.0, 1041.0, 129.0, 1041.0], "score": 0.99, "text": "catchments (Table 1). These results could be scaled"}, {"category_id": 15, "poly": [129.0, 1079.0, 730.0, 1079.0, 730.0, 1109.0, 129.0, 1109.0], "score": 0.98, "text": "linear relationship between the area planted and flow"}, {"category_id": 15, "poly": [129.0, 1114.0, 732.0, 1114.0, 732.0, 1144.0, 129.0, 1144.0], "score": 0.98, "text": "reductions. As there is no evidence that this is the"}, {"category_id": 15, "poly": [129.0, 1146.0, 728.0, 1146.0, 728.0, 1176.0, 129.0, 1176.0], "score": 0.98, "text": "case we have not presented scaled reductions here."}, {"category_id": 15, "poly": [125.0, 1178.0, 737.0, 1176.0, 737.0, 1213.0, 125.0, 1215.0], "score": 0.95, "text": "Linear scaling would shift the reduction curves"}, {"category_id": 15, "poly": [125.0, 1213.0, 737.0, 1210.0, 737.0, 1247.0, 125.0, 1249.0], "score": 0.96, "text": "upward for those catchments that are less than"}, {"category_id": 15, "poly": [125.0, 1281.0, 492.0, 1286.0, 492.0, 1320.0, 124.0, 1316.0], "score": 0.98, "text": " of the curves or our groupings."}, {"category_id": 15, "poly": [197.0, 1245.0, 735.0, 1247.0, 734.0, 1284.0, 197.0, 1281.0], "score": 0.98, "text": " afforested, but would not change the shape"}, {"category_id": 15, "poly": [129.0, 1045.0, 208.0, 1045.0, 208.0, 1075.0, 129.0, 1075.0], "score": 0.99, "text": "upto"}, {"category_id": 15, "poly": [277.0, 1045.0, 735.0, 1045.0, 735.0, 1075.0, 277.0, 1075.0], "score": 0.98, "text": " afforested if it is assumed there is a"}, {"category_id": 15, "poly": [825.0, 903.0, 1398.0, 905.0, 1398.0, 942.0, 825.0, 940.0], "score": 0.99, "text": "The speed of fow responses to afforestation can be"}, {"category_id": 15, "poly": [793.0, 976.0, 1398.0, 976.0, 1398.0, 1006.0, 793.0, 1006.0], "score": 0.99, "text": "is substantial variation in response times both over the"}, {"category_id": 15, "poly": [788.0, 1008.0, 1402.0, 1004.0, 1403.0, 1041.0, 788.0, 1045.0], "score": 0.99, "text": " percentile spread in some individual catchments, and"}, {"category_id": 15, "poly": [790.0, 1045.0, 1398.0, 1045.0, 1398.0, 1075.0, 790.0, 1075.0], "score": 0.98, "text": " between the catchments. The majority of responses have"}, {"category_id": 15, "poly": [793.0, 1114.0, 1398.0, 1114.0, 1398.0, 1142.0, 793.0, 1142.0], "score": 0.99, "text": "Stewarts Creek, Redhill and Lambrechtsbos A exhibit the"}, {"category_id": 15, "poly": [793.0, 1148.0, 1398.0, 1148.0, 1398.0, 1178.0, 793.0, 1178.0], "score": 0.99, "text": "fastest responses, with Biesievlei showing the most"}, {"category_id": 15, "poly": [793.0, 1215.0, 1398.0, 1215.0, 1398.0, 1245.0, 793.0, 1245.0], "score": 0.99, "text": "catchments display a good correspondence to published"}, {"category_id": 15, "poly": [793.0, 1249.0, 1394.0, 1249.0, 1394.0, 1279.0, 793.0, 1279.0], "score": 0.99, "text": "annual changes (Scott et al., 2000; Van Wyk, 1987),"}, {"category_id": 15, "poly": [793.0, 1284.0, 1398.0, 1284.0, 1398.0, 1314.0, 793.0, 1314.0], "score": 0.99, "text": "excepting the 10-20th deciles for both Cathedral Peak"}, {"category_id": 15, "poly": [790.0, 1079.0, 814.0, 1079.0, 814.0, 1109.0, 790.0, 1109.0], "score": 0.96, "text": "a"}, {"category_id": 15, "poly": [868.0, 1079.0, 1398.0, 1079.0, 1398.0, 1109.0, 868.0, 1109.0], "score": 0.99, "text": "value between 5 and 10 years. Pine Creek and"}, {"category_id": 15, "poly": [788.0, 1178.0, 1087.0, 1176.0, 1087.0, 1213.0, 788.0, 1215.0], "score": 1.0, "text": "uniformly slow response."}, {"category_id": 15, "poly": [1141.0, 1178.0, 1400.0, 1176.0, 1400.0, 1213.0, 1141.0, 1215.0], "score": 0.94, "text": "for the South African"}, {"category_id": 15, "poly": [793.0, 942.0, 1173.0, 942.0, 1173.0, 972.0, 793.0, 972.0], "score": 1.0, "text": "evaluated by examining the value of"}, {"category_id": 15, "poly": [1225.0, 942.0, 1398.0, 942.0, 1398.0, 972.0, 1225.0, 972.0], "score": 0.97, "text": "(Table 4). There"}, {"category_id": 15, "poly": [129.0, 1815.0, 939.0, 1817.0, 939.0, 1847.0, 129.0, 1845.0], "score": 0.98, "text": "Note that no solution could be found for the 50 percentile for Glendhu indicted by the ns."}, {"category_id": 15, "poly": [793.0, 838.0, 1123.0, 838.0, 1123.0, 875.0, 793.0, 875.0], "score": 1.0, "text": "4.3. Timing of fow reductions"}], "page_info": {"page_no": 7, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 0, "poly": [781.8721923828125, 1618.0399169921875, 928.7534790039062, 1618.0399169921875, 928.7534790039062, 1646.409912109375, 781.8721923828125, 1646.409912109375], "score": 0.9999984502792358}, {"category_id": 6, "poly": [113.6822738647461, 253.5222625732422, 1383.692626953125, 253.5222625732422, 1383.692626953125, 334.94287109375, 113.6822738647461, 334.94287109375], "score": 0.9999982714653015}, {"category_id": 2, "poly": [1345.8267822265625, 196.56283569335938, 1379.01416015625, 196.56283569335938, 1379.01416015625, 215.46395874023438, 1345.8267822265625, 215.46395874023438], "score": 0.999997615814209}, {"category_id": 2, "poly": [467.5944519042969, 195.73922729492188, 1030.1298828125, 195.73922729492188, 1030.1298828125, 218.0099639892578, 467.5944519042969, 218.0099639892578], "score": 0.9999966621398926}, {"category_id": 1, "poly": [117.23767852783203, 1243.1109619140625, 716.3004150390625, 1243.1109619140625, 716.3004150390625, 1847.4835205078125, 117.23767852783203, 1847.4835205078125], "score": 0.9999922513961792}, {"category_id": 1, "poly": [118.47014617919922, 994.3162841796875, 713.6297607421875, 994.3162841796875, 713.6297607421875, 1122.2752685546875, 118.47014617919922, 1122.2752685546875], "score": 0.9999918937683105}, {"category_id": 0, "poly": [119.10287475585938, 1178.6876220703125, 627.3995971679688, 1178.6876220703125, 627.3995971679688, 1206.4453125, 119.10287475585938, 1206.4453125], "score": 0.9999906420707703}, {"category_id": 1, "poly": [782.2766723632812, 1682.373291015625, 1380.46728515625, 1682.373291015625, 1380.46728515625, 1845.99609375, 782.2766723632812, 1845.99609375], "score": 0.9999901652336121}, {"category_id": 1, "poly": [781.3034057617188, 1060.36083984375, 1379.3385009765625, 1060.36083984375, 1379.3385009765625, 1521.511962890625, 781.3034057617188, 1521.511962890625], "score": 0.9999886751174927}, {"category_id": 5, "poly": [113.5753402709961, 341.08380126953125, 1386.5994873046875, 341.08380126953125, 1386.5994873046875, 689.2748413085938, 113.5753402709961, 689.2748413085938], "score": 0.9999498128890991}, {"category_id": 7, "poly": [118.46651458740234, 696.7362670898438, 1380.3681640625, 696.7362670898438, 1380.3681640625, 861.0716552734375, 118.46651458740234, 861.0716552734375], "score": 0.9997767210006714}, {"category_id": 0, "poly": [782.720458984375, 993.1400146484375, 988.5659790039062, 993.1400146484375, 988.5659790039062, 1020.3793334960938, 782.720458984375, 1020.3793334960938], "score": 0.9996650218963623}, {"category_id": 13, "poly": [458, 778, 601, 778, 601, 806, 458, 806], "score": 0.91, "latex": "\\sum Y/\\sum(a+Y)"}, {"category_id": 13, "poly": [169, 1025, 221, 1025, 221, 1056, 169, 1056], "score": 0.91, "latex": "T_{\\mathrm{half}}"}, {"category_id": 13, "poly": [464, 750, 607, 750, 607, 778, 464, 778], "score": 0.88, "latex": "\\sum Y/\\sum(a+Y)"}, {"category_id": 13, "poly": [1201, 1191, 1277, 1191, 1277, 1221, 1201, 1221], "score": 0.88, "latex": "\\Delta N_{\\mathrm{zero}}"}, {"category_id": 13, "poly": [1296, 1323, 1350, 1323, 1350, 1353, 1296, 1353], "score": 0.86, "latex": "50\\%"}, {"category_id": 13, "poly": [1078, 1159, 1101, 1159, 1101, 1185, 1078, 1185], "score": 0.77, "latex": "E"}, {"category_id": 13, "poly": [1113, 1192, 1133, 1192, 1133, 1219, 1113, 1219], "score": 0.69, "latex": "b"}, {"category_id": 13, "poly": [375, 811, 390, 811, 390, 830, 375, 830], "score": 0.67, "latex": "a"}, {"category_id": 13, "poly": [990, 1196, 1003, 1196, 1003, 1218, 990, 1218], "score": 0.61, "latex": "t\\cdot"}, {"category_id": 13, "poly": [1066, 812, 1080, 812, 1080, 830, 1066, 830], "score": 0.58, "latex": "a"}, {"category_id": 13, "poly": [431, 808, 448, 808, 448, 830, 431, 830], "score": 0.46, "latex": "Y"}, {"category_id": 13, "poly": [1246, 1357, 1283, 1357, 1283, 1386, 1246, 1386], "score": 0.43, "latex": "\\mathrm{Ck}"}, {"category_id": 13, "poly": [773, 779, 827, 779, 827, 804, 773, 804], "score": 0.42, "latex": "100\\mathrm{th}"}, {"category_id": 13, "poly": [1107, 1357, 1144, 1357, 1144, 1386, 1107, 1386], "score": 0.41, "latex": "\\mathrm{Ck}"}, {"category_id": 13, "poly": [640, 807, 684, 807, 684, 831, 640, 831], "score": 0.29, "latex": "20\\mathrm{th}"}, {"category_id": 15, "poly": [776.0, 1612.0, 935.0, 1617.0, 933.0, 1656.0, 775.0, 1651.0], "score": 0.97, "text": " 5. Discussion"}, {"category_id": 15, "poly": [112.0, 252.0, 195.0, 252.0, 195.0, 282.0, 112.0, 282.0], "score": 0.98, "text": "Table5"}, {"category_id": 15, "poly": [112.0, 279.0, 1383.0, 282.0, 1383.0, 312.0, 112.0, 310.0], "score": 0.99, "text": " Published fow reductions from paired catchment analyses, after Scott et al. (2000), Hickel (2001), Nandakumar and Mein (1993) and Fahey and"}, {"category_id": 15, "poly": [112.0, 307.0, 681.0, 310.0, 681.0, 340.0, 112.0, 338.0], "score": 0.97, "text": "Jackson (1997) compared to estimated reductions in this study"}, {"category_id": 15, "poly": [1330.0, 202.0, 1368.0, 177.0, 1393.0, 215.0, 1355.0, 240.0], "score": 0.99, "text": "261"}, {"category_id": 15, "poly": [466.0, 194.0, 1033.0, 194.0, 1033.0, 224.0, 466.0, 224.0], "score": 0.99, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [148.0, 1243.0, 720.0, 1245.0, 719.0, 1275.0, 148.0, 1273.0], "score": 0.98, "text": "A further check on the overall model performance is"}, {"category_id": 15, "poly": [112.0, 1279.0, 719.0, 1277.0, 720.0, 1307.0, 112.0, 1309.0], "score": 0.98, "text": " a comparison with published results of paired catchment"}, {"category_id": 15, "poly": [114.0, 1312.0, 719.0, 1312.0, 719.0, 1342.0, 114.0, 1342.0], "score": 1.0, "text": "studies. The data that can be compared with our results"}, {"category_id": 15, "poly": [114.0, 1346.0, 719.0, 1346.0, 719.0, 1376.0, 114.0, 1376.0], "score": 0.98, "text": "are presented in Table 5 and can be broadly compared"}, {"category_id": 15, "poly": [114.0, 1380.0, 719.0, 1380.0, 719.0, 1410.0, 114.0, 1410.0], "score": 0.99, "text": "with Fig. 4. These data are reductions in years with near"}, {"category_id": 15, "poly": [114.0, 1415.0, 722.0, 1415.0, 722.0, 1445.0, 114.0, 1445.0], "score": 0.99, "text": "average annual rainfall, and at a time after treatment "}, {"category_id": 15, "poly": [114.0, 1445.0, 717.0, 1445.0, 717.0, 1475.0, 114.0, 1475.0], "score": 0.99, "text": "when maximum changes in streamflow have occurred."}, {"category_id": 15, "poly": [114.0, 1481.0, 719.0, 1481.0, 719.0, 1509.0, 114.0, 1509.0], "score": 0.99, "text": "Table 5 also includes estimates on the total and low flow"}, {"category_id": 15, "poly": [114.0, 1511.0, 719.0, 1511.0, 719.0, 1542.0, 114.0, 1542.0], "score": 0.99, "text": "reductions calculated from this study. Results from Pine"}, {"category_id": 15, "poly": [114.0, 1548.0, 719.0, 1548.0, 719.0, 1578.0, 114.0, 1578.0], "score": 0.98, "text": "Creek and Traralgon Creek are not included in Table 5"}, {"category_id": 15, "poly": [114.0, 1582.0, 722.0, 1582.0, 722.0, 1612.0, 114.0, 1612.0], "score": 1.0, "text": "as these catchments are not paired. Exact comparisons"}, {"category_id": 15, "poly": [116.0, 1615.0, 719.0, 1615.0, 719.0, 1645.0, 116.0, 1645.0], "score": 0.99, "text": "are impossible because of the rainfall variability, and"}, {"category_id": 15, "poly": [116.0, 1649.0, 717.0, 1649.0, 717.0, 1679.0, 116.0, 1679.0], "score": 0.99, "text": "lack of calibration period for Redhill. Despite this,"}, {"category_id": 15, "poly": [116.0, 1681.0, 719.0, 1681.0, 719.0, 1711.0, 116.0, 1711.0], "score": 0.95, "text": "Table 5 shows that total and low flow reductions"}, {"category_id": 15, "poly": [116.0, 1716.0, 719.0, 1716.0, 719.0, 1746.0, 116.0, 1746.0], "score": 0.99, "text": "estimated from our study are comparable to the results"}, {"category_id": 15, "poly": [116.0, 1750.0, 719.0, 1750.0, 719.0, 1780.0, 116.0, 1780.0], "score": 0.99, "text": "from paired catchment studies, indicating that our"}, {"category_id": 15, "poly": [116.0, 1782.0, 719.0, 1782.0, 719.0, 1812.0, 116.0, 1812.0], "score": 0.99, "text": "simple model has successfully removed the rainfall"}, {"category_id": 15, "poly": [111.0, 1820.0, 190.0, 1814.0, 192.0, 1846.0, 113.0, 1852.0], "score": 0.94, "text": "signal."}, {"category_id": 15, "poly": [112.0, 989.0, 717.0, 987.0, 717.0, 1023.0, 112.0, 1026.0], "score": 1.0, "text": "catchments and the lower deciles at Lambrechtsbos B."}, {"category_id": 15, "poly": [116.0, 1062.0, 715.0, 1062.0, 715.0, 1092.0, 116.0, 1092.0], "score": 0.98, "text": "lower than other published data (Fahey and Jackson,"}, {"category_id": 15, "poly": [116.0, 1092.0, 189.0, 1092.0, 189.0, 1124.0, 116.0, 1124.0], "score": 0.96, "text": "1997)."}, {"category_id": 15, "poly": [116.0, 1028.0, 168.0, 1028.0, 168.0, 1058.0, 116.0, 1058.0], "score": 1.0, "text": "The"}, {"category_id": 15, "poly": [222.0, 1028.0, 715.0, 1028.0, 715.0, 1058.0, 222.0, 1058.0], "score": 1.0, "text": "from Glendhu 2 appears to be substantially"}, {"category_id": 15, "poly": [114.0, 1176.0, 631.0, 1176.0, 631.0, 1213.0, 114.0, 1213.0], "score": 0.99, "text": "4.4. Comparison with paired catchment studies"}, {"category_id": 15, "poly": [816.0, 1686.0, 1381.0, 1686.0, 1381.0, 1716.0, 816.0, 1716.0], "score": 0.98, "text": "The aims of the project have largely been met. The"}, {"category_id": 15, "poly": [782.0, 1720.0, 1383.0, 1720.0, 1383.0, 1750.0, 782.0, 1750.0], "score": 0.97, "text": "general characterisation of FDCs and adjustment for"}, {"category_id": 15, "poly": [782.0, 1750.0, 1385.0, 1750.0, 1385.0, 1787.0, 782.0, 1787.0], "score": 0.99, "text": "climate has been very encouraging given the task of"}, {"category_id": 15, "poly": [782.0, 1784.0, 1381.0, 1784.0, 1381.0, 1815.0, 782.0, 1815.0], "score": 0.98, "text": "fitting our model to 10 flow percentiles, for 10 different"}, {"category_id": 15, "poly": [778.0, 1812.0, 1383.0, 1815.0, 1383.0, 1851.0, 777.0, 1849.0], "score": 0.97, "text": "catchments (resulting in 100 model fits\uff09 with"}, {"category_id": 15, "poly": [816.0, 1060.0, 1381.0, 1060.0, 1381.0, 1090.0, 816.0, 1090.0], "score": 0.96, "text": "As this analysis could only be applied, where there"}, {"category_id": 15, "poly": [782.0, 1094.0, 1383.0, 1094.0, 1383.0, 1124.0, 782.0, 1124.0], "score": 1.0, "text": "was consistent drying up of streams, it was confined to"}, {"category_id": 15, "poly": [782.0, 1127.0, 1381.0, 1127.0, 1381.0, 1157.0, 782.0, 1157.0], "score": 0.99, "text": "Stewarts Creek, Pine Creek and Redhill catchments. The"}, {"category_id": 15, "poly": [780.0, 1228.0, 1383.0, 1228.0, 1383.0, 1256.0, 780.0, 1256.0], "score": 0.99, "text": "significant results at the 0.05 level for both parameters at"}, {"category_id": 15, "poly": [780.0, 1260.0, 1383.0, 1260.0, 1383.0, 1290.0, 780.0, 1290.0], "score": 0.97, "text": "all three catchments. The climate adjusted zero flow"}, {"category_id": 15, "poly": [780.0, 1292.0, 1383.0, 1292.0, 1383.0, 1322.0, 780.0, 1322.0], "score": 1.0, "text": "days are shown in Fig. 5. The increases in zero flow days"}, {"category_id": 15, "poly": [778.0, 1387.0, 1387.0, 1389.0, 1387.0, 1425.0, 777.0, 1423.0], "score": 0.97, "text": "11 at Redhill. The latter has changed from an almost "}, {"category_id": 15, "poly": [775.0, 1423.0, 1385.0, 1421.0, 1385.0, 1458.0, 775.0, 1460.0], "score": 0.97, "text": " permanent to a highly intermittent stream. The curves"}, {"category_id": 15, "poly": [775.0, 1453.0, 1385.0, 1456.0, 1385.0, 1492.0, 775.0, 1490.0], "score": 0.99, "text": " are also in sensible agreement with the flow reductions"}, {"category_id": 15, "poly": [777.0, 1492.0, 885.0, 1492.0, 885.0, 1522.0, 777.0, 1522.0], "score": 0.99, "text": "in Fig. 4."}, {"category_id": 15, "poly": [1278.0, 1193.0, 1383.0, 1193.0, 1383.0, 1223.0, 1278.0, 1223.0], "score": 0.98, "text": " returned"}, {"category_id": 15, "poly": [777.0, 1327.0, 1295.0, 1327.0, 1295.0, 1357.0, 777.0, 1357.0], "score": 0.98, "text": " are substantial with flows confined to less than"}, {"category_id": 15, "poly": [1351.0, 1327.0, 1385.0, 1327.0, 1385.0, 1357.0, 1351.0, 1357.0], "score": 1.0, "text": "of"}, {"category_id": 15, "poly": [780.0, 1161.0, 1077.0, 1161.0, 1077.0, 1189.0, 780.0, 1189.0], "score": 0.96, "text": "model returned values of"}, {"category_id": 15, "poly": [1102.0, 1161.0, 1381.0, 1161.0, 1381.0, 1189.0, 1102.0, 1189.0], "score": 0.98, "text": "of 0.95, 0.99 and 0.99,"}, {"category_id": 15, "poly": [1134.0, 1193.0, 1200.0, 1193.0, 1200.0, 1223.0, 1134.0, 1223.0], "score": 0.97, "text": " and"}, {"category_id": 15, "poly": [780.0, 1193.0, 989.0, 1193.0, 989.0, 1223.0, 780.0, 1223.0], "score": 0.98, "text": "respectively. The"}, {"category_id": 15, "poly": [1004.0, 1193.0, 1112.0, 1193.0, 1112.0, 1223.0, 1004.0, 1223.0], "score": 0.89, "text": "-testson"}, {"category_id": 15, "poly": [1284.0, 1354.0, 1385.0, 1357.0, 1385.0, 1393.0, 1284.0, 1391.0], "score": 1.0, "text": "and year"}, {"category_id": 15, "poly": [775.0, 1354.0, 1106.0, 1357.0, 1106.0, 1393.0, 775.0, 1391.0], "score": 0.98, "text": " the time by year 8 at Stewarts"}, {"category_id": 15, "poly": [1145.0, 1354.0, 1245.0, 1357.0, 1245.0, 1393.0, 1145.0, 1391.0], "score": 1.0, "text": "and Pine"}, {"category_id": 15, "poly": [125.0, 690.0, 1385.0, 694.0, 1385.0, 731.0, 125.0, 727.0], "score": 0.97, "text": "a Rainfall refers to the rainfall in the year used for comparison of results. The value in brackets refers to the deviation from the mean anual"}, {"category_id": 15, "poly": [114.0, 722.0, 408.0, 725.0, 408.0, 755.0, 114.0, 752.0], "score": 1.0, "text": "rainfall for the period of record."}, {"category_id": 15, "poly": [112.0, 832.0, 312.0, 834.0, 311.0, 864.0, 112.0, 862.0], "score": 0.99, "text": " 30-100th percentiles."}, {"category_id": 15, "poly": [125.0, 776.0, 457.0, 780.0, 457.0, 811.0, 125.0, 806.0], "score": 0.96, "text": "c Low flow reduction calculated by"}, {"category_id": 15, "poly": [122.0, 748.0, 463.0, 750.0, 463.0, 780.0, 122.0, 778.0], "score": 0.98, "text": "b Total flow reduction calculated by"}, {"category_id": 15, "poly": [608.0, 748.0, 743.0, 750.0, 743.0, 780.0, 608.0, 778.0], "score": 1.0, "text": "for all deciles."}, {"category_id": 15, "poly": [123.0, 800.0, 374.0, 806.0, 374.0, 843.0, 122.0, 836.0], "score": 0.98, "text": "d For Cathedral Peak 3 the"}, {"category_id": 15, "poly": [1081.0, 800.0, 1385.0, 806.0, 1385.0, 843.0, 1081.0, 836.0], "score": 0.99, "text": "were lower then the values of the"}, {"category_id": 15, "poly": [391.0, 800.0, 430.0, 806.0, 430.0, 843.0, 391.0, 836.0], "score": 1.0, "text": "and"}, {"category_id": 15, "poly": [602.0, 776.0, 772.0, 780.0, 772.0, 811.0, 602.0, 806.0], "score": 0.99, "text": "for 70, 80, 90 and"}, {"category_id": 15, "poly": [828.0, 776.0, 934.0, 780.0, 934.0, 811.0, 828.0, 806.0], "score": 1.0, "text": "percentiles."}, {"category_id": 15, "poly": [449.0, 800.0, 639.0, 806.0, 639.0, 843.0, 449.0, 836.0], "score": 0.98, "text": "values for the 10 and"}, {"category_id": 15, "poly": [685.0, 800.0, 1065.0, 806.0, 1065.0, 843.0, 685.0, 836.0], "score": 0.99, "text": "percentiles were excluded as the values of"}, {"category_id": 15, "poly": [778.0, 987.0, 993.0, 991.0, 992.0, 1030.0, 777.0, 1025.0], "score": 1.0, "text": "4.5. Zero fow days"}], "page_info": {"page_no": 8, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 4, "poly": [130.26629638671875, 1337.3250732421875, 732.2774047851562, 1337.3250732421875, 732.2774047851562, 1418.7119140625, 130.26629638671875, 1418.7119140625], "score": 0.9999995231628418}, {"category_id": 2, "poly": [131.43930053710938, 195.23593139648438, 165.80084228515625, 195.23593139648438, 165.80084228515625, 215.28358459472656, 131.43930053710938, 215.28358459472656], "score": 0.999997615814209}, {"category_id": 3, "poly": [131.99615478515625, 262.13848876953125, 732.1187744140625, 262.13848876953125, 732.1187744140625, 1316.8990478515625, 131.99615478515625, 1316.8990478515625], "score": 0.9999966621398926}, {"category_id": 2, "poly": [480.581787109375, 195.6566162109375, 1043.8951416015625, 195.6566162109375, 1043.8951416015625, 218.63613891601562, 480.581787109375, 218.63613891601562], "score": 0.9999943971633911}, {"category_id": 1, "poly": [794.3954467773438, 1085.8665771484375, 1394.706298828125, 1085.8665771484375, 1394.706298828125, 1847.09423828125, 794.3954467773438, 1847.09423828125], "score": 0.9999863505363464}, {"category_id": 1, "poly": [795.3126831054688, 256.7186279296875, 1395.0584716796875, 256.7186279296875, 1395.0584716796875, 1079.958251953125, 795.3126831054688, 1079.958251953125], "score": 0.9999836683273315}, {"category_id": 1, "poly": [130.74447631835938, 1445.3975830078125, 731.3636474609375, 1445.3975830078125, 731.3636474609375, 1846.5950927734375, 130.74447631835938, 1846.5950927734375], "score": 0.9999815225601196}, {"category_id": 13, "poly": [1045, 452, 1098, 452, 1098, 482, 1045, 482], "score": 0.87, "latex": "27\\%"}, {"category_id": 15, "poly": [129.0, 1339.0, 732.0, 1339.0, 732.0, 1367.0, 129.0, 1367.0], "score": 0.98, "text": "Fig. 5. Number of zero fow days for average rainfall following"}, {"category_id": 15, "poly": [131.0, 1365.0, 730.0, 1365.0, 730.0, 1393.0, 131.0, 1393.0], "score": 0.98, "text": "afforestation for Stewarts Creek 5, Redhill and Pine Creek,"}, {"category_id": 15, "poly": [133.0, 1398.0, 219.0, 1398.0, 219.0, 1421.0, 133.0, 1421.0], "score": 1.0, "text": "Australia."}, {"category_id": 15, "poly": [127.0, 189.0, 172.0, 189.0, 172.0, 228.0, 127.0, 228.0], "score": 0.97, "text": "262"}, {"category_id": 15, "poly": [481.0, 194.0, 1046.0, 194.0, 1046.0, 224.0, 481.0, 224.0], "score": 0.97, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [827.0, 1086.0, 1398.0, 1086.0, 1398.0, 1116.0, 827.0, 1116.0], "score": 0.99, "text": "The model fits show we have quantified the net"}, {"category_id": 15, "poly": [793.0, 1120.0, 1396.0, 1120.0, 1396.0, 1150.0, 793.0, 1150.0], "score": 0.98, "text": "impact of afforestation for the majority of the flow"}, {"category_id": 15, "poly": [786.0, 1150.0, 1398.0, 1146.0, 1398.0, 1182.0, 786.0, 1187.0], "score": 0.99, "text": " percentiles in the 10 catchments. Results for the 10-50th"}, {"category_id": 15, "poly": [788.0, 1185.0, 1400.0, 1180.0, 1400.0, 1217.0, 788.0, 1221.0], "score": 0.98, "text": " percentiles were particularly encouraging. It is not"}, {"category_id": 15, "poly": [793.0, 1219.0, 1396.0, 1219.0, 1396.0, 1249.0, 793.0, 1249.0], "score": 0.99, "text": "surprising that the relationship between rainfall and flow"}, {"category_id": 15, "poly": [793.0, 1251.0, 1396.0, 1251.0, 1396.0, 1281.0, 793.0, 1281.0], "score": 0.97, "text": "diminishes at lower fows (60-100th percentile), where"}, {"category_id": 15, "poly": [793.0, 1286.0, 1396.0, 1286.0, 1396.0, 1316.0, 793.0, 1316.0], "score": 0.98, "text": "seasonal storage effects and rainfall distribution become"}, {"category_id": 15, "poly": [788.0, 1318.0, 1396.0, 1318.0, 1396.0, 1348.0, 788.0, 1348.0], "score": 0.97, "text": " more important drivers for runoff generation. The"}, {"category_id": 15, "poly": [790.0, 1352.0, 1398.0, 1352.0, 1398.0, 1382.0, 790.0, 1382.0], "score": 0.99, "text": "poorest model fits were gained for Lambrechtsbos A"}, {"category_id": 15, "poly": [788.0, 1382.0, 1396.0, 1382.0, 1396.0, 1413.0, 788.0, 1413.0], "score": 0.98, "text": " and B. The likely reason at Lambrechtsbos A is an"}, {"category_id": 15, "poly": [793.0, 1419.0, 1398.0, 1419.0, 1398.0, 1447.0, 793.0, 1447.0], "score": 0.98, "text": "observed annual decrease in stand water use after 12"}, {"category_id": 15, "poly": [793.0, 1451.0, 1398.0, 1451.0, 1398.0, 1481.0, 793.0, 1481.0], "score": 0.99, "text": "years (Scott et al., 2000) which does not conform to the"}, {"category_id": 15, "poly": [793.0, 1486.0, 1398.0, 1486.0, 1398.0, 1516.0, 793.0, 1516.0], "score": 0.99, "text": "sigmoidal form of our model over the full 19 years of"}, {"category_id": 15, "poly": [793.0, 1518.0, 1398.0, 1518.0, 1398.0, 1548.0, 793.0, 1548.0], "score": 0.99, "text": "record. The failure of the model to fit the lower flows at"}, {"category_id": 15, "poly": [786.0, 1546.0, 1400.0, 1548.0, 1400.0, 1585.0, 786.0, 1582.0], "score": 0.98, "text": " Lambrechtsbos B is not as explicable. A decrease in"}, {"category_id": 15, "poly": [790.0, 1587.0, 1398.0, 1587.0, 1398.0, 1615.0, 790.0, 1615.0], "score": 1.0, "text": "stand water use in this catchment is observed as the"}, {"category_id": 15, "poly": [793.0, 1619.0, 1400.0, 1619.0, 1400.0, 1649.0, 793.0, 1649.0], "score": 0.99, "text": "plantation ages, but does not occur during the first 20"}, {"category_id": 15, "poly": [793.0, 1651.0, 1398.0, 1651.0, 1398.0, 1681.0, 793.0, 1681.0], "score": 0.99, "text": "years after treatment (Scott et al., 2000). Other data from"}, {"category_id": 15, "poly": [788.0, 1679.0, 1398.0, 1681.0, 1398.0, 1718.0, 788.0, 1716.0], "score": 0.98, "text": " South Africa (Scott et al., 2000) indicate there are"}, {"category_id": 15, "poly": [791.0, 1711.0, 1398.0, 1716.0, 1398.0, 1752.0, 790.0, 1748.0], "score": 0.99, "text": " diminished flow reductions as plantations age, but again,"}, {"category_id": 15, "poly": [795.0, 1752.0, 1396.0, 1752.0, 1396.0, 1782.0, 795.0, 1782.0], "score": 0.99, "text": "generally after 20 years. Our use of an asymptotic curve"}, {"category_id": 15, "poly": [790.0, 1785.0, 1398.0, 1782.0, 1398.0, 1812.0, 790.0, 1815.0], "score": 0.98, "text": "assumes a new equilibrium of stand water use is"}, {"category_id": 15, "poly": [790.0, 1815.0, 1394.0, 1817.0, 1394.0, 1847.0, 790.0, 1845.0], "score": 0.99, "text": "reached. The results of the model fitting generally justify"}, {"category_id": 15, "poly": [788.0, 249.0, 1398.0, 252.0, 1398.0, 288.0, 788.0, 286.0], "score": 0.97, "text": " Lambrechtsbos B appear to be over-estimated by our"}, {"category_id": 15, "poly": [788.0, 284.0, 1398.0, 288.0, 1398.0, 325.0, 788.0, 320.0], "score": 0.99, "text": " model, which is unsurprising as the model fit was poor."}, {"category_id": 15, "poly": [793.0, 322.0, 1398.0, 322.0, 1398.0, 353.0, 793.0, 353.0], "score": 0.98, "text": "The remaining four South African catchments, and also"}, {"category_id": 15, "poly": [793.0, 355.0, 1398.0, 355.0, 1398.0, 385.0, 793.0, 385.0], "score": 0.99, "text": "Redhill and Stewarts Creek are in good agreement with"}, {"category_id": 15, "poly": [793.0, 389.0, 1400.0, 389.0, 1400.0, 417.0, 793.0, 417.0], "score": 1.0, "text": "the published values, particularly when the deviation of"}, {"category_id": 15, "poly": [793.0, 421.0, 1398.0, 421.0, 1398.0, 452.0, 793.0, 452.0], "score": 0.99, "text": "average rainfall is considered. Glendhu 2 reductions are"}, {"category_id": 15, "poly": [788.0, 488.0, 1396.0, 488.0, 1396.0, 518.0, 788.0, 518.0], "score": 0.99, "text": " a heavier impact on the lower flows. Overall, it appears"}, {"category_id": 15, "poly": [788.0, 518.0, 1400.0, 518.0, 1400.0, 555.0, 788.0, 555.0], "score": 0.99, "text": " there are no significant discrepancies with the published"}, {"category_id": 15, "poly": [793.0, 555.0, 1398.0, 555.0, 1398.0, 585.0, 793.0, 585.0], "score": 0.99, "text": "paired catchment analyses. We suggest our technique"}, {"category_id": 15, "poly": [790.0, 589.0, 1398.0, 589.0, 1398.0, 619.0, 790.0, 619.0], "score": 0.99, "text": " represents an alternative to the paired-catchment method"}, {"category_id": 15, "poly": [788.0, 617.0, 1398.0, 619.0, 1398.0, 656.0, 788.0, 654.0], "score": 0.98, "text": "for assessing hydrologic response to vegetation treat-"}, {"category_id": 15, "poly": [788.0, 651.0, 1400.0, 649.0, 1400.0, 686.0, 788.0, 688.0], "score": 1.0, "text": " ment, where paired data are unavailable. The method"}, {"category_id": 15, "poly": [793.0, 688.0, 1396.0, 688.0, 1396.0, 718.0, 793.0, 718.0], "score": 0.99, "text": "has not yet resulted in a predictive model, but has"}, {"category_id": 15, "poly": [795.0, 722.0, 1394.0, 722.0, 1394.0, 752.0, 795.0, 752.0], "score": 1.0, "text": "increased our knowledge of afforestation impacts. This"}, {"category_id": 15, "poly": [793.0, 755.0, 1398.0, 755.0, 1398.0, 785.0, 793.0, 785.0], "score": 0.96, "text": "is a valuable outcome given the contentious issue of"}, {"category_id": 15, "poly": [793.0, 787.0, 1398.0, 787.0, 1398.0, 817.0, 793.0, 817.0], "score": 0.98, "text": "afforestation in Australia and other countries, and a"}, {"category_id": 15, "poly": [792.0, 821.0, 1398.0, 819.0, 1398.0, 849.0, 793.0, 851.0], "score": 0.99, "text": "current paucity of data on inter-annual flows. It should"}, {"category_id": 15, "poly": [788.0, 849.0, 1396.0, 851.0, 1396.0, 888.0, 788.0, 886.0], "score": 0.99, "text": " be noted that nine of the 10 catchment were pine species."}, {"category_id": 15, "poly": [793.0, 888.0, 1398.0, 888.0, 1398.0, 918.0, 793.0, 918.0], "score": 0.98, "text": "More data is required to compare the impact of"}, {"category_id": 15, "poly": [790.0, 920.0, 1390.0, 920.0, 1390.0, 950.0, 790.0, 950.0], "score": 0.99, "text": "hardwood species, particularly eucalypts, on the FDC."}, {"category_id": 15, "poly": [793.0, 950.0, 1396.0, 955.0, 1396.0, 985.0, 792.0, 980.0], "score": 0.98, "text": "Unfortunately these data are currently scarce. There are"}, {"category_id": 15, "poly": [791.0, 980.0, 1398.0, 985.0, 1398.0, 1021.0, 790.0, 1017.0], "score": 1.0, "text": "substantial data on the physiological controls of eucalypt"}, {"category_id": 15, "poly": [793.0, 1019.0, 1396.0, 1019.0, 1396.0, 1049.0, 793.0, 1049.0], "score": 0.99, "text": "water use (see Whitehead and Beadle, 2004), but not at"}, {"category_id": 15, "poly": [790.0, 1054.0, 1016.0, 1054.0, 1016.0, 1084.0, 790.0, 1084.0], "score": 0.98, "text": "the catchment scale."}, {"category_id": 15, "poly": [788.0, 452.0, 1044.0, 452.0, 1044.0, 488.0, 788.0, 488.0], "score": 0.91, "text": " close to the reported "}, {"category_id": 15, "poly": [1099.0, 452.0, 1398.0, 452.0, 1398.0, 488.0, 1099.0, 488.0], "score": 0.97, "text": ", but our model produces"}, {"category_id": 15, "poly": [129.0, 1443.0, 732.0, 1443.0, 732.0, 1479.0, 129.0, 1479.0], "score": 0.99, "text": "substantially varying spatial scales, soils and geology,"}, {"category_id": 15, "poly": [129.0, 1479.0, 732.0, 1479.0, 732.0, 1509.0, 129.0, 1509.0], "score": 0.99, "text": "species planted and climatic environments. Although"}, {"category_id": 15, "poly": [127.0, 1511.0, 735.0, 1511.0, 735.0, 1548.0, 127.0, 1548.0], "score": 0.98, "text": "there were poor results for individual deciles, the FDCs "}, {"category_id": 15, "poly": [129.0, 1548.0, 732.0, 1548.0, 732.0, 1578.0, 129.0, 1578.0], "score": 0.99, "text": "at eight of the 10 catchments were adequately described"}, {"category_id": 15, "poly": [127.0, 1580.0, 730.0, 1578.0, 730.0, 1608.0, 127.0, 1610.0], "score": 0.99, "text": "by Eq. (2). The results of the statistical tests in which the"}, {"category_id": 15, "poly": [129.0, 1612.0, 726.0, 1612.0, 726.0, 1643.0, 129.0, 1643.0], "score": 0.99, "text": "rainfall term was significant for most deciles demon-"}, {"category_id": 15, "poly": [127.0, 1647.0, 735.0, 1647.0, 735.0, 1683.0, 127.0, 1683.0], "score": 0.99, "text": "strated the model structure was appropriate for adjusting"}, {"category_id": 15, "poly": [129.0, 1683.0, 730.0, 1683.0, 730.0, 1711.0, 129.0, 1711.0], "score": 0.96, "text": "the FDCs for climatic (rainfall) variability. The"}, {"category_id": 15, "poly": [129.0, 1716.0, 732.0, 1716.0, 732.0, 1746.0, 129.0, 1746.0], "score": 0.95, "text": "comparisons of our results with published paired"}, {"category_id": 15, "poly": [129.0, 1750.0, 732.0, 1750.0, 732.0, 1780.0, 129.0, 1780.0], "score": 0.98, "text": "catchment analyses are satisfactory, although the"}, {"category_id": 15, "poly": [129.0, 1784.0, 735.0, 1784.0, 735.0, 1812.0, 129.0, 1812.0], "score": 0.98, "text": "different methodologies make direct comparisons of"}, {"category_id": 15, "poly": [127.0, 1815.0, 737.0, 1817.0, 737.0, 1847.0, 127.0, 1845.0], "score": 0.98, "text": "deciles with total fow uncertain. Low flows at"}], "page_info": {"page_no": 9, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 2, "poly": [466.4325256347656, 194.8888397216797, 1031.1922607421875, 194.8888397216797, 1031.1922607421875, 219.64439392089844, 466.4325256347656, 219.64439392089844], "score": 0.9999977350234985}, {"category_id": 0, "poly": [781.4110107421875, 1350.9322509765625, 1112.086181640625, 1350.9322509765625, 1112.086181640625, 1380.4071044921875, 781.4110107421875, 1380.4071044921875], "score": 0.9999973773956299}, {"category_id": 1, "poly": [118.7479248046875, 587.0300903320312, 715.7766723632812, 587.0300903320312, 715.7766723632812, 883.0694580078125, 118.7479248046875, 883.0694580078125], "score": 0.9999968409538269}, {"category_id": 1, "poly": [118.48811340332031, 252.823486328125, 715.749267578125, 252.823486328125, 715.749267578125, 583.28515625, 118.48811340332031, 583.28515625], "score": 0.9999964237213135}, {"category_id": 1, "poly": [117.62772369384766, 885.8139038085938, 717.3323974609375, 885.8139038085938, 717.3323974609375, 1415.2767333984375, 117.62772369384766, 1415.2767333984375], "score": 0.9999961853027344}, {"category_id": 1, "poly": [782.490234375, 254.01434326171875, 1380.5517578125, 254.01434326171875, 1380.5517578125, 748.8712768554688, 782.490234375, 748.8712768554688], "score": 0.9999944567680359}, {"category_id": 1, "poly": [117.28860473632812, 1415.5831298828125, 716.8341064453125, 1415.5831298828125, 716.8341064453125, 1847.5146484375, 117.28860473632812, 1847.5146484375], "score": 0.9999933242797852}, {"category_id": 1, "poly": [781.5156860351562, 752.15576171875, 1380.3497314453125, 752.15576171875, 1380.3497314453125, 1279.9158935546875, 781.5156860351562, 1279.9158935546875], "score": 0.9999922513961792}, {"category_id": 1, "poly": [781.4845581054688, 1417.2979736328125, 1380.813232421875, 1417.2979736328125, 1380.813232421875, 1845.5704345703125, 781.4845581054688, 1845.5704345703125], "score": 0.9999920725822449}, {"category_id": 2, "poly": [1346.2413330078125, 196.15005493164062, 1380.82568359375, 196.15005493164062, 1380.82568359375, 216.4473876953125, 1346.2413330078125, 216.4473876953125], "score": 0.9999884366989136}, {"category_id": 13, "poly": [510, 1017, 563, 1017, 563, 1047, 510, 1047], "score": 0.89, "latex": "85\\%"}, {"category_id": 13, "poly": [1121, 321, 1143, 321, 1143, 347, 1121, 347], "score": 0.55, "latex": "E"}, {"category_id": 13, "poly": [433, 354, 456, 354, 456, 380, 433, 380], "score": 0.47, "latex": "E."}, {"category_id": 13, "poly": [578, 1018, 683, 1018, 683, 1048, 578, 1048], "score": 0.39, "latex": "1260\\,\\mathrm{mm}"}, {"category_id": 15, "poly": [466.0, 194.0, 1033.0, 194.0, 1033.0, 224.0, 466.0, 224.0], "score": 0.99, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [780.0, 1350.0, 1117.0, 1350.0, 1117.0, 1387.0, 780.0, 1387.0], "score": 0.99, "text": "6. Summary and conclusions"}, {"category_id": 15, "poly": [150.0, 585.0, 717.0, 585.0, 717.0, 615.0, 150.0, 615.0], "score": 0.98, "text": "The small Australian catchments converted to pine in"}, {"category_id": 15, "poly": [109.0, 619.0, 724.0, 617.0, 724.0, 654.0, 110.0, 656.0], "score": 1.0, "text": "response group 1 (Stewarts Creek 5, Pine Creek and"}, {"category_id": 15, "poly": [112.0, 649.0, 722.0, 651.0, 722.0, 688.0, 112.0, 686.0], "score": 0.99, "text": "Redhill) have similar shallow soils, potential evapo-"}, {"category_id": 15, "poly": [116.0, 688.0, 717.0, 688.0, 717.0, 718.0, 116.0, 718.0], "score": 0.99, "text": "transpiration and rainfall distribution (relatively uni-"}, {"category_id": 15, "poly": [116.0, 722.0, 717.0, 722.0, 717.0, 752.0, 116.0, 752.0], "score": 1.0, "text": "form) although Stewarts Creek is significantly wetter."}, {"category_id": 15, "poly": [116.0, 755.0, 719.0, 755.0, 719.0, 785.0, 116.0, 785.0], "score": 0.98, "text": "The combination of small catchment area and the"}, {"category_id": 15, "poly": [116.0, 787.0, 717.0, 787.0, 717.0, 817.0, 116.0, 817.0], "score": 0.99, "text": "increased transpirative demand that exceeds summer"}, {"category_id": 15, "poly": [114.0, 819.0, 720.0, 821.0, 719.0, 851.0, 114.0, 849.0], "score": 1.0, "text": "and autumn rainfall and stored water results in the large"}, {"category_id": 15, "poly": [116.0, 856.0, 638.0, 856.0, 638.0, 884.0, 116.0, 884.0], "score": 0.98, "text": "impact on lower flows, compared to high flows."}, {"category_id": 15, "poly": [114.0, 252.0, 722.0, 252.0, 722.0, 288.0, 114.0, 288.0], "score": 0.98, "text": "this assumption for the length of commercial plantation"}, {"category_id": 15, "poly": [114.0, 286.0, 719.0, 286.0, 719.0, 322.0, 114.0, 322.0], "score": 0.99, "text": "growth (up to 20 years) considered here. The physio-"}, {"category_id": 15, "poly": [116.0, 322.0, 719.0, 322.0, 719.0, 353.0, 116.0, 353.0], "score": 0.99, "text": "logical relationship between stand age and water use for"}, {"category_id": 15, "poly": [114.0, 385.0, 719.0, 385.0, 719.0, 421.0, 114.0, 421.0], "score": 1.0, "text": "thoroughly investigated, although Cornish and Vertessy"}, {"category_id": 15, "poly": [112.0, 417.0, 722.0, 419.0, 722.0, 456.0, 112.0, 454.0], "score": 0.99, "text": "(2001) and Roberts et al. (2001) have shown young"}, {"category_id": 15, "poly": [116.0, 456.0, 719.0, 456.0, 719.0, 486.0, 116.0, 486.0], "score": 1.0, "text": "mixed species eucalypt forests may use more water than"}, {"category_id": 15, "poly": [112.0, 484.0, 722.0, 486.0, 722.0, 522.0, 112.0, 520.0], "score": 0.99, "text": " mature stands, and Putahena and Cordery (2000) suggest "}, {"category_id": 15, "poly": [116.0, 522.0, 719.0, 522.0, 719.0, 553.0, 116.0, 553.0], "score": 0.99, "text": "maximum Pinus radiata water use may have been"}, {"category_id": 15, "poly": [114.0, 553.0, 655.0, 553.0, 655.0, 583.0, 114.0, 583.0], "score": 0.99, "text": "reached after 12 years, with a subsequent decline."}, {"category_id": 15, "poly": [116.0, 355.0, 432.0, 355.0, 432.0, 385.0, 116.0, 385.0], "score": 1.0, "text": "plantation species other than"}, {"category_id": 15, "poly": [457.0, 355.0, 719.0, 355.0, 719.0, 385.0, 457.0, 385.0], "score": 0.96, "text": "regnans have not been"}, {"category_id": 15, "poly": [146.0, 881.0, 720.0, 884.0, 719.0, 920.0, 146.0, 918.0], "score": 0.98, "text": " The magnitude of the response within Group 2 varies"}, {"category_id": 15, "poly": [116.0, 920.0, 717.0, 920.0, 717.0, 950.0, 116.0, 950.0], "score": 1.0, "text": "considerably, with greater reduction in flows in the two"}, {"category_id": 15, "poly": [116.0, 952.0, 717.0, 952.0, 717.0, 983.0, 116.0, 983.0], "score": 0.98, "text": "Cathedral Peak catchments, and Lambrechtsbos B."}, {"category_id": 15, "poly": [114.0, 987.0, 719.0, 987.0, 719.0, 1017.0, 114.0, 1017.0], "score": 0.99, "text": "Potential evaporation is in phase with rainfall at the"}, {"category_id": 15, "poly": [114.0, 1054.0, 722.0, 1054.0, 722.0, 1084.0, 114.0, 1084.0], "score": 0.98, "text": "average) of their rainfall in summer. The conjunction of"}, {"category_id": 15, "poly": [116.0, 1088.0, 722.0, 1088.0, 722.0, 1118.0, 116.0, 1118.0], "score": 0.99, "text": "peak demand and plant water availability may explain"}, {"category_id": 15, "poly": [114.0, 1118.0, 722.0, 1120.0, 722.0, 1150.0, 114.0, 1148.0], "score": 0.98, "text": "the high reductions relative to the remaining catchments "}, {"category_id": 15, "poly": [116.0, 1155.0, 722.0, 1155.0, 722.0, 1185.0, 116.0, 1185.0], "score": 0.98, "text": "in Group 2. In addition, the stocking density was"}, {"category_id": 15, "poly": [116.0, 1187.0, 717.0, 1187.0, 717.0, 1215.0, 116.0, 1215.0], "score": 0.97, "text": "described as \u2018abnormally dense\u2019 by Scott et al. (2000)."}, {"category_id": 15, "poly": [116.0, 1219.0, 719.0, 1219.0, 719.0, 1249.0, 116.0, 1249.0], "score": 1.0, "text": "Growth at Glendhu 2 was notably slow (Fahey and"}, {"category_id": 15, "poly": [112.0, 1247.0, 722.0, 1249.0, 722.0, 1286.0, 112.0, 1284.0], "score": 0.98, "text": " Jackson, 1997) and Lambrechtsbos A and Biesievlei are"}, {"category_id": 15, "poly": [116.0, 1286.0, 719.0, 1286.0, 719.0, 1316.0, 116.0, 1316.0], "score": 1.0, "text": "described as being within sub optimal growth zones"}, {"category_id": 15, "poly": [116.0, 1318.0, 719.0, 1318.0, 719.0, 1348.0, 116.0, 1348.0], "score": 0.99, "text": "(Scott and Smith, 1997) characterised by these authors"}, {"category_id": 15, "poly": [114.0, 1352.0, 719.0, 1352.0, 719.0, 1382.0, 114.0, 1382.0], "score": 0.99, "text": "as having relatively slow response times and lesser"}, {"category_id": 15, "poly": [109.0, 1383.0, 586.0, 1380.0, 586.0, 1417.0, 110.0, 1419.0], "score": 0.96, "text": " reductions that those at more optimal sites."}, {"category_id": 15, "poly": [112.0, 1017.0, 509.0, 1017.0, 509.0, 1054.0, 112.0, 1054.0], "score": 0.98, "text": " Cathedral Peak sites as they receive"}, {"category_id": 15, "poly": [684.0, 1017.0, 719.0, 1017.0, 719.0, 1054.0, 684.0, 1054.0], "score": 0.93, "text": "on"}, {"category_id": 15, "poly": [810.0, 249.0, 1383.0, 252.0, 1383.0, 288.0, 810.0, 286.0], "score": 1.0, "text": "Traralgon Creek would be expected to have both the"}, {"category_id": 15, "poly": [780.0, 286.0, 1385.0, 286.0, 1385.0, 322.0, 780.0, 322.0], "score": 0.98, "text": "most subdued flow reductions and longer response time"}, {"category_id": 15, "poly": [780.0, 355.0, 1385.0, 355.0, 1385.0, 385.0, 780.0, 385.0], "score": 0.97, "text": "uncertain vegetation record. Peak stand water use of a"}, {"category_id": 15, "poly": [777.0, 389.0, 1381.0, 389.0, 1381.0, 419.0, 777.0, 419.0], "score": 0.99, "text": "natural stand of this species is around 30 years."}, {"category_id": 15, "poly": [782.0, 421.0, 1383.0, 421.0, 1383.0, 452.0, 782.0, 452.0], "score": 0.98, "text": "Additionally in this large, \u2018real world\u2019 catchment,"}, {"category_id": 15, "poly": [780.0, 456.0, 1385.0, 456.0, 1385.0, 486.0, 780.0, 486.0], "score": 0.99, "text": "there is a continuous cycle of forest management"}, {"category_id": 15, "poly": [782.0, 488.0, 1385.0, 488.0, 1385.0, 518.0, 782.0, 518.0], "score": 0.98, "text": "which includes harvesting. A mixture of pasture and"}, {"category_id": 15, "poly": [784.0, 522.0, 1383.0, 522.0, 1383.0, 553.0, 784.0, 553.0], "score": 0.99, "text": "'scrub', which could represent significant understorey"}, {"category_id": 15, "poly": [780.0, 555.0, 1381.0, 555.0, 1381.0, 585.0, 780.0, 585.0], "score": 0.99, "text": "stands, were replaced by plantation species. Conse-"}, {"category_id": 15, "poly": [780.0, 589.0, 1385.0, 589.0, 1385.0, 619.0, 780.0, 619.0], "score": 0.99, "text": "quently the difference between pre and post treatment"}, {"category_id": 15, "poly": [777.0, 619.0, 1383.0, 619.0, 1383.0, 649.0, 777.0, 649.0], "score": 0.98, "text": "ET may be less than at other catchments. Reductions of"}, {"category_id": 15, "poly": [777.0, 651.0, 1385.0, 651.0, 1385.0, 688.0, 777.0, 688.0], "score": 1.0, "text": "this magnitude could be more readily expected in larger,"}, {"category_id": 15, "poly": [780.0, 688.0, 1383.0, 688.0, 1383.0, 718.0, 780.0, 718.0], "score": 0.99, "text": "multi land use catchments than the very high impacts"}, {"category_id": 15, "poly": [782.0, 720.0, 1293.0, 720.0, 1293.0, 750.0, 782.0, 750.0], "score": 0.98, "text": "estimated at the smaller Australian catchments."}, {"category_id": 15, "poly": [780.0, 322.0, 1120.0, 322.0, 1120.0, 353.0, 780.0, 353.0], "score": 0.93, "text": "because of the large area of "}, {"category_id": 15, "poly": [1144.0, 322.0, 1385.0, 322.0, 1385.0, 353.0, 1144.0, 353.0], "score": 0.99, "text": "regnans forest, and"}, {"category_id": 15, "poly": [146.0, 1412.0, 720.0, 1415.0, 719.0, 1451.0, 146.0, 1449.0], "score": 0.98, "text": " The response groups may be in part explained by the"}, {"category_id": 15, "poly": [109.0, 1449.0, 722.0, 1447.0, 722.0, 1483.0, 110.0, 1486.0], "score": 0.96, "text": "storage characteristics of the catchments. Accurate"}, {"category_id": 15, "poly": [114.0, 1486.0, 717.0, 1486.0, 717.0, 1516.0, 114.0, 1516.0], "score": 0.99, "text": "measures of storage are not available from the literature,"}, {"category_id": 15, "poly": [114.0, 1518.0, 719.0, 1518.0, 719.0, 1546.0, 114.0, 1546.0], "score": 0.98, "text": "but the soil depths and the baseflow index (Table 1) both"}, {"category_id": 15, "poly": [114.0, 1552.0, 722.0, 1552.0, 722.0, 1580.0, 114.0, 1580.0], "score": 0.97, "text": "show the three south eastern Australian catchments with"}, {"category_id": 15, "poly": [114.0, 1587.0, 722.0, 1587.0, 722.0, 1617.0, 114.0, 1617.0], "score": 0.98, "text": "the greatest reduction are likely to have the lowest"}, {"category_id": 15, "poly": [109.0, 1617.0, 722.0, 1615.0, 722.0, 1651.0, 110.0, 1653.0], "score": 0.99, "text": " storage capacity. The greater flow reductions, particu-"}, {"category_id": 15, "poly": [116.0, 1651.0, 717.0, 1651.0, 717.0, 1681.0, 116.0, 1681.0], "score": 0.97, "text": "larly for low flows, could be expected under these"}, {"category_id": 15, "poly": [116.0, 1686.0, 719.0, 1686.0, 719.0, 1716.0, 116.0, 1716.0], "score": 0.99, "text": "conditions. Inclusion of a storage term in the model is an"}, {"category_id": 15, "poly": [116.0, 1718.0, 719.0, 1718.0, 719.0, 1748.0, 116.0, 1748.0], "score": 0.99, "text": "obvious option for improving the analysis. However the"}, {"category_id": 15, "poly": [116.0, 1752.0, 719.0, 1752.0, 719.0, 1782.0, 116.0, 1782.0], "score": 0.98, "text": "addition of extra parameters would be at the cost of"}, {"category_id": 15, "poly": [116.0, 1784.0, 717.0, 1784.0, 717.0, 1815.0, 116.0, 1815.0], "score": 0.99, "text": "maintaining model simplicity, particularly as character-"}, {"category_id": 15, "poly": [116.0, 1817.0, 518.0, 1817.0, 518.0, 1847.0, 116.0, 1847.0], "score": 1.0, "text": "ising a transient storage is not trivial."}, {"category_id": 15, "poly": [816.0, 755.0, 1381.0, 755.0, 1381.0, 785.0, 816.0, 785.0], "score": 0.97, "text": "The analysis of zero flow days was successful,"}, {"category_id": 15, "poly": [782.0, 787.0, 1383.0, 787.0, 1383.0, 817.0, 782.0, 817.0], "score": 0.99, "text": "demonstrating that the impact on flow intermittence can"}, {"category_id": 15, "poly": [780.0, 819.0, 1383.0, 819.0, 1383.0, 849.0, 780.0, 849.0], "score": 1.0, "text": "be evaluated without of the entire FDC. This was helpful"}, {"category_id": 15, "poly": [777.0, 854.0, 1381.0, 854.0, 1381.0, 884.0, 777.0, 884.0], "score": 0.98, "text": " as the change in the higher percentiles (low flows) could"}, {"category_id": 15, "poly": [782.0, 886.0, 1381.0, 886.0, 1381.0, 916.0, 782.0, 916.0], "score": 0.97, "text": "not always be modelled. The results for the three"}, {"category_id": 15, "poly": [782.0, 920.0, 1381.0, 920.0, 1381.0, 950.0, 782.0, 950.0], "score": 0.98, "text": "catchments analysed are a rather stark indication of the"}, {"category_id": 15, "poly": [782.0, 955.0, 1383.0, 955.0, 1383.0, 985.0, 782.0, 985.0], "score": 0.99, "text": "potential for highly increased zero flow periods in small"}, {"category_id": 15, "poly": [782.0, 987.0, 1381.0, 987.0, 1381.0, 1017.0, 782.0, 1017.0], "score": 0.99, "text": "catchments, at least in south-eastern Australia. However,"}, {"category_id": 15, "poly": [778.0, 1015.0, 1383.0, 1019.0, 1383.0, 1054.0, 777.0, 1049.0], "score": 0.99, "text": "it should be noted these curves probably represent a"}, {"category_id": 15, "poly": [777.0, 1054.0, 1383.0, 1054.0, 1383.0, 1084.0, 777.0, 1084.0], "score": 0.97, "text": " maximum response as they are all derived from small"}, {"category_id": 15, "poly": [777.0, 1088.0, 1381.0, 1088.0, 1381.0, 1118.0, 777.0, 1118.0], "score": 0.97, "text": "catchments with small storage capacities and large"}, {"category_id": 15, "poly": [780.0, 1120.0, 1385.0, 1120.0, 1385.0, 1150.0, 780.0, 1150.0], "score": 0.99, "text": "percentages of afforestation. This method could be used"}, {"category_id": 15, "poly": [777.0, 1150.0, 1381.0, 1150.0, 1381.0, 1180.0, 777.0, 1180.0], "score": 1.0, "text": "to determine change in the occurrence of any given flow"}, {"category_id": 15, "poly": [780.0, 1187.0, 1383.0, 1187.0, 1383.0, 1217.0, 780.0, 1217.0], "score": 0.98, "text": "in response to afforestation; e.g. to determine the"}, {"category_id": 15, "poly": [775.0, 1215.0, 1387.0, 1217.0, 1387.0, 1253.0, 775.0, 1251.0], "score": 0.96, "text": "likelihood of maintaining a reservoir storage or an"}, {"category_id": 15, "poly": [782.0, 1253.0, 1381.0, 1253.0, 1381.0, 1284.0, 782.0, 1284.0], "score": 1.0, "text": "environmental fow that requires an average critical flow."}, {"category_id": 15, "poly": [810.0, 1412.0, 1385.0, 1417.0, 1385.0, 1453.0, 810.0, 1449.0], "score": 0.98, "text": "This project sought to (i) develop a method to remove"}, {"category_id": 15, "poly": [780.0, 1453.0, 1383.0, 1453.0, 1383.0, 1481.0, 780.0, 1481.0], "score": 1.0, "text": "the climate signal from streamflow records to identify"}, {"category_id": 15, "poly": [780.0, 1486.0, 1383.0, 1486.0, 1383.0, 1516.0, 780.0, 1516.0], "score": 0.98, "text": "the impact of vegetation on flow from afforested"}, {"category_id": 15, "poly": [780.0, 1518.0, 1385.0, 1518.0, 1385.0, 1548.0, 780.0, 1548.0], "score": 1.0, "text": "catchments, and (ii) quantify this impact on the flow"}, {"category_id": 15, "poly": [777.0, 1550.0, 1383.0, 1550.0, 1383.0, 1580.0, 777.0, 1580.0], "score": 0.99, "text": "duration curve. A simple model was proposed that"}, {"category_id": 15, "poly": [775.0, 1582.0, 1387.0, 1582.0, 1387.0, 1619.0, 775.0, 1619.0], "score": 0.98, "text": " considered the age of plantation and the annual rainfall"}, {"category_id": 15, "poly": [777.0, 1619.0, 1385.0, 1619.0, 1385.0, 1649.0, 777.0, 1649.0], "score": 0.98, "text": "to be the principal drivers for evapotranspiration. This"}, {"category_id": 15, "poly": [780.0, 1651.0, 1385.0, 1651.0, 1385.0, 1679.0, 780.0, 1679.0], "score": 0.99, "text": "model was fitted to the observed deciles of the FDC, and"}, {"category_id": 15, "poly": [778.0, 1681.0, 1381.0, 1686.0, 1381.0, 1716.0, 777.0, 1711.0], "score": 0.97, "text": "the climate signal was then removed from the stream-"}, {"category_id": 15, "poly": [780.0, 1716.0, 1387.0, 1716.0, 1387.0, 1752.0, 780.0, 1752.0], "score": 0.99, "text": "flow records by adjusting the FDC for average rainfall"}, {"category_id": 15, "poly": [777.0, 1748.0, 1385.0, 1746.0, 1385.0, 1782.0, 778.0, 1785.0], "score": 0.98, "text": "over the period of record. The model was tested and"}, {"category_id": 15, "poly": [777.0, 1780.0, 1381.0, 1780.0, 1381.0, 1817.0, 777.0, 1817.0], "score": 0.99, "text": "applied to 10 afforested catchments. We successfully"}, {"category_id": 15, "poly": [778.0, 1810.0, 1385.0, 1815.0, 1385.0, 1851.0, 777.0, 1847.0], "score": 1.0, "text": "fitted our model to catchments with varying spatial"}, {"category_id": 15, "poly": [1342.0, 189.0, 1387.0, 189.0, 1387.0, 234.0, 1342.0, 234.0], "score": 1.0, "text": "263"}], "page_info": {"page_no": 10, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 0, "poly": [132.2023162841797, 944.2422485351562, 352.39361572265625, 944.2422485351562, 352.39361572265625, 973.2088623046875, 132.2023162841797, 973.2088623046875], "score": 0.9999986886978149}, {"category_id": 2, "poly": [480.25787353515625, 196.37384033203125, 1044.1737060546875, 196.37384033203125, 1044.1737060546875, 218.59146118164062, 480.25787353515625, 218.59146118164062], "score": 0.9999973177909851}, {"category_id": 1, "poly": [131.0494842529297, 255.921875, 730.36865234375, 255.921875, 730.36865234375, 848.8026123046875, 131.0494842529297, 848.8026123046875], "score": 0.9999949336051941}, {"category_id": 1, "poly": [130.6344757080078, 1010.9166870117188, 730.247314453125, 1010.9166870117188, 730.247314453125, 1437.8150634765625, 130.6344757080078, 1437.8150634765625], "score": 0.9999939203262329}, {"category_id": 2, "poly": [130.68336486816406, 196.22927856445312, 164.99691772460938, 196.22927856445312, 164.99691772460938, 215.17306518554688, 130.68336486816406, 215.17306518554688], "score": 0.9999921321868896}, {"category_id": 1, "poly": [131.60971069335938, 1597.386962890625, 732.5863647460938, 1597.386962890625, 732.5863647460938, 1846.581787109375, 131.60971069335938, 1846.581787109375], "score": 0.9999908208847046}, {"category_id": 1, "poly": [791.6022338867188, 251.6699676513672, 1397.9674072265625, 251.6699676513672, 1397.9674072265625, 1848.8499755859375, 791.6022338867188, 1848.8499755859375], "score": 0.9999874830245972}, {"category_id": 0, "poly": [131.00613403320312, 1534.647705078125, 256.1180725097656, 1534.647705078125, 256.1180725097656, 1561.1875, 131.00613403320312, 1561.1875], "score": 0.9999844431877136}, {"category_id": 13, "poly": [1067, 1022, 1120, 1022, 1120, 1049, 1067, 1049], "score": 0.57, "latex": "219{\\mathrm{~p~}}"}, {"category_id": 15, "poly": [129.0, 939.0, 357.0, 944.0, 356.0, 983.0, 129.0, 978.0], "score": 1.0, "text": "Acknowledgements"}, {"category_id": 15, "poly": [481.0, 194.0, 1046.0, 194.0, 1046.0, 224.0, 481.0, 224.0], "score": 0.97, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [127.0, 252.0, 734.0, 249.0, 735.0, 286.0, 127.0, 288.0], "score": 0.99, "text": "scales, species and environments, and have shown that it"}, {"category_id": 15, "poly": [129.0, 290.0, 732.0, 290.0, 732.0, 320.0, 129.0, 320.0], "score": 0.99, "text": "provides a means of separating the influence of climate"}, {"category_id": 15, "poly": [129.0, 322.0, 732.0, 322.0, 732.0, 353.0, 129.0, 353.0], "score": 0.99, "text": "and vegetation on the FDCs. The modelled results"}, {"category_id": 15, "poly": [129.0, 353.0, 730.0, 353.0, 730.0, 383.0, 129.0, 383.0], "score": 0.97, "text": "showed the greatest proportional impacts were for"}, {"category_id": 15, "poly": [129.0, 387.0, 732.0, 387.0, 732.0, 417.0, 129.0, 417.0], "score": 0.99, "text": "median and lower flows. The flow reductions from the"}, {"category_id": 15, "poly": [129.0, 421.0, 732.0, 421.0, 732.0, 449.0, 129.0, 449.0], "score": 0.98, "text": "three small catchments SE Australian were the highest"}, {"category_id": 15, "poly": [129.0, 456.0, 735.0, 456.0, 735.0, 486.0, 129.0, 486.0], "score": 0.99, "text": "and may reflect lower storages. The characterisation of"}, {"category_id": 15, "poly": [129.0, 488.0, 732.0, 488.0, 732.0, 518.0, 129.0, 518.0], "score": 0.99, "text": "the number of zero flow days was also successful for"}, {"category_id": 15, "poly": [129.0, 522.0, 735.0, 522.0, 735.0, 553.0, 129.0, 553.0], "score": 0.98, "text": "these catchments in indicating a significant increase in"}, {"category_id": 15, "poly": [129.0, 555.0, 730.0, 555.0, 730.0, 585.0, 129.0, 585.0], "score": 0.99, "text": "zero flows. The flow reductions identified here probably"}, {"category_id": 15, "poly": [127.0, 589.0, 732.0, 589.0, 732.0, 619.0, 127.0, 619.0], "score": 0.97, "text": "represent a maximum effect given the size of the"}, {"category_id": 15, "poly": [129.0, 619.0, 728.0, 619.0, 728.0, 649.0, 129.0, 649.0], "score": 0.99, "text": "catchments, level of afforestation and the shallow soils."}, {"category_id": 15, "poly": [129.0, 654.0, 732.0, 654.0, 732.0, 684.0, 129.0, 684.0], "score": 0.98, "text": "These results have yielded useful new insights on the"}, {"category_id": 15, "poly": [129.0, 688.0, 735.0, 688.0, 735.0, 718.0, 129.0, 718.0], "score": 0.99, "text": "contentious issue of the hydrological impact of"}, {"category_id": 15, "poly": [129.0, 720.0, 732.0, 720.0, 732.0, 750.0, 129.0, 750.0], "score": 0.99, "text": "afforestation. This research has led to the development"}, {"category_id": 15, "poly": [129.0, 755.0, 732.0, 755.0, 732.0, 785.0, 129.0, 785.0], "score": 0.99, "text": "of a method to assess the net impact of afforestation on"}, {"category_id": 15, "poly": [129.0, 787.0, 730.0, 787.0, 730.0, 817.0, 129.0, 817.0], "score": 0.99, "text": "the fow duration curve which does not require paired-"}, {"category_id": 15, "poly": [127.0, 819.0, 591.0, 821.0, 591.0, 851.0, 127.0, 849.0], "score": 0.98, "text": "catchments to remove climatic variability."}, {"category_id": 15, "poly": [163.0, 1010.0, 730.0, 1010.0, 730.0, 1041.0, 163.0, 1041.0], "score": 0.98, "text": "The authors would like to thank Rory Nathan,"}, {"category_id": 15, "poly": [127.0, 1041.0, 735.0, 1041.0, 735.0, 1077.0, 127.0, 1077.0], "score": 1.0, "text": "Narendra Tuteja, Tom McMahon, Geoff Podger, Rob"}, {"category_id": 15, "poly": [131.0, 1077.0, 728.0, 1077.0, 728.0, 1107.0, 131.0, 1107.0], "score": 0.99, "text": "Vertessy, Glen Walker and Peter Hairsine for particu-"}, {"category_id": 15, "poly": [129.0, 1109.0, 732.0, 1109.0, 732.0, 1140.0, 129.0, 1140.0], "score": 0.99, "text": "larly helpful discussions on methodologies and reviews,"}, {"category_id": 15, "poly": [127.0, 1142.0, 732.0, 1144.0, 732.0, 1174.0, 127.0, 1172.0], "score": 1.0, "text": "Richard Morton for valuable statistical advice, Dave"}, {"category_id": 15, "poly": [129.0, 1178.0, 730.0, 1178.0, 730.0, 1208.0, 129.0, 1208.0], "score": 1.0, "text": "Scott for supplying the South African data, Barry Fahey"}, {"category_id": 15, "poly": [127.0, 1208.0, 732.0, 1210.0, 732.0, 1241.0, 127.0, 1238.0], "score": 0.99, "text": "for the New Zealand data, and Hancocks Victorian"}, {"category_id": 15, "poly": [127.0, 1241.0, 730.0, 1243.0, 730.0, 1273.0, 127.0, 1271.0], "score": 0.99, "text": "Plantations for vegetation data. The study was funded by"}, {"category_id": 15, "poly": [129.0, 1277.0, 735.0, 1277.0, 735.0, 1307.0, 129.0, 1307.0], "score": 0.97, "text": "the Victorian Department of Natural Resources and"}, {"category_id": 15, "poly": [129.0, 1312.0, 732.0, 1312.0, 732.0, 1339.0, 129.0, 1339.0], "score": 0.98, "text": "Environment Private Forestry Unit, the CRC for"}, {"category_id": 15, "poly": [129.0, 1344.0, 735.0, 1344.0, 735.0, 1374.0, 129.0, 1374.0], "score": 1.0, "text": "Catchment Hydrology, and the MDBC funded project"}, {"category_id": 15, "poly": [127.0, 1372.0, 735.0, 1374.0, 734.0, 1410.0, 127.0, 1408.0], "score": 0.99, "text": "\u201cIntegrated assessment of the effects of land use changes"}, {"category_id": 15, "poly": [127.0, 1410.0, 558.0, 1408.0, 558.0, 1438.0, 127.0, 1441.0], "score": 0.98, "text": "on water yield and salt loads\u2019 (D2013)."}, {"category_id": 15, "poly": [127.0, 189.0, 170.0, 189.0, 170.0, 228.0, 127.0, 228.0], "score": 1.0, "text": "264"}, {"category_id": 15, "poly": [127.0, 1593.0, 732.0, 1598.0, 732.0, 1632.0, 127.0, 1627.0], "score": 0.97, "text": "Bosch, J.M., 1979. Treatment effects on annual and dry period"}, {"category_id": 15, "poly": [157.0, 1625.0, 732.0, 1623.0, 732.0, 1653.0, 157.0, 1656.0], "score": 0.99, "text": " streamflow at Cathedral Peak. South African Forestry Journal 108,"}, {"category_id": 15, "poly": [161.0, 1651.0, 230.0, 1651.0, 230.0, 1681.0, 161.0, 1681.0], "score": 0.99, "text": "29-37."}, {"category_id": 15, "poly": [127.0, 1681.0, 732.0, 1681.0, 732.0, 1709.0, 127.0, 1709.0], "score": 0.97, "text": "Bosch, J.M., Von Gadow, K., 1990. Regulating afforestation for water"}, {"category_id": 15, "poly": [159.0, 1709.0, 730.0, 1707.0, 730.0, 1737.0, 159.0, 1739.0], "score": 0.98, "text": " conservation in South Africa. Suid-Afrikaanse Bosboutydskrif 153,"}, {"category_id": 15, "poly": [163.0, 1739.0, 228.0, 1739.0, 228.0, 1763.0, 163.0, 1763.0], "score": 1.0, "text": "41-54."}, {"category_id": 15, "poly": [127.0, 1763.0, 735.0, 1765.0, 734.0, 1795.0, 127.0, 1793.0], "score": 0.97, "text": "Chiew, F.H.S., McMahon, T.A., 1993. Assessing the adequacy of"}, {"category_id": 15, "poly": [161.0, 1793.0, 735.0, 1793.0, 735.0, 1821.0, 161.0, 1821.0], "score": 0.97, "text": "catchment streamflow yield estimates. Australian Journal of Soil"}, {"category_id": 15, "poly": [163.0, 1819.0, 365.0, 1819.0, 365.0, 1847.0, 163.0, 1847.0], "score": 1.0, "text": "Research 31, 665-680."}, {"category_id": 15, "poly": [791.0, 251.0, 1398.0, 256.0, 1398.0, 286.0, 790.0, 282.0], "score": 0.99, "text": "Cornish, P.M., Vertessy, R.A., 2001. Forest age-induced changes in"}, {"category_id": 15, "poly": [823.0, 284.0, 1398.0, 282.0, 1398.0, 312.0, 823.0, 314.0], "score": 0.98, "text": " evapotranspiration and water yield in a eucalypt forest. Journal of"}, {"category_id": 15, "poly": [825.0, 312.0, 1033.0, 312.0, 1033.0, 342.0, 825.0, 342.0], "score": 1.0, "text": "Hydrology 242, 43-63."}, {"category_id": 15, "poly": [788.0, 338.0, 1398.0, 340.0, 1398.0, 370.0, 788.0, 368.0], "score": 1.0, "text": "Fahey, B., Jackson, R., 1997. Hydrological impacts of converting"}, {"category_id": 15, "poly": [820.0, 366.0, 1398.0, 363.0, 1398.0, 400.0, 821.0, 402.0], "score": 0.97, "text": "native forests and grasslands to pine plantations, South"}, {"category_id": 15, "poly": [821.0, 393.0, 1396.0, 396.0, 1396.0, 428.0, 820.0, 426.0], "score": 0.98, "text": " Island, New Zealand. Agricultural and Forest Meteorology 84,"}, {"category_id": 15, "poly": [825.0, 424.0, 889.0, 424.0, 889.0, 454.0, 825.0, 454.0], "score": 1.0, "text": "69-82."}, {"category_id": 15, "poly": [788.0, 451.0, 1396.0, 454.0, 1396.0, 484.0, 788.0, 482.0], "score": 0.99, "text": "Hickel, K., 2001. The effect of pine afforestation on flow regime in"}, {"category_id": 15, "poly": [823.0, 479.0, 1398.0, 484.0, 1398.0, 512.0, 822.0, 507.0], "score": 0.97, "text": "small upland catchments. Masters Thesis, University of Stuttgart,"}, {"category_id": 15, "poly": [820.0, 510.0, 889.0, 505.0, 892.0, 537.0, 822.0, 543.0], "score": 0.94, "text": "p. 134."}, {"category_id": 15, "poly": [790.0, 540.0, 1396.0, 540.0, 1396.0, 568.0, 790.0, 568.0], "score": 1.0, "text": "Holmes, J.W., Sinclair, J.A., 1986. Water yield from some afforested"}, {"category_id": 15, "poly": [825.0, 570.0, 1398.0, 570.0, 1398.0, 598.0, 825.0, 598.0], "score": 0.98, "text": "catchments in Victoria. In Hydrology and Water Resources"}, {"category_id": 15, "poly": [825.0, 596.0, 1398.0, 596.0, 1398.0, 626.0, 825.0, 626.0], "score": 0.99, "text": "Symposium, Griffth University, Brisbane 25-27 November 1986,"}, {"category_id": 15, "poly": [820.0, 626.0, 939.0, 619.0, 941.0, 649.0, 822.0, 656.0], "score": 0.95, "text": "pp. 214-218."}, {"category_id": 15, "poly": [790.0, 654.0, 1398.0, 654.0, 1398.0, 682.0, 790.0, 682.0], "score": 0.99, "text": "Lane, P.N.J., Best, A.E., Hickel, K., Zhang, L., 2003. The effect"}, {"category_id": 15, "poly": [825.0, 682.0, 1398.0, 682.0, 1398.0, 710.0, 825.0, 710.0], "score": 0.99, "text": "of afforestation on flow duration curves. Cooperative Research"}, {"category_id": 15, "poly": [825.0, 710.0, 1396.0, 710.0, 1396.0, 740.0, 825.0, 740.0], "score": 0.97, "text": "Centre for Catchment Hydrology Technical Report O3/13,"}, {"category_id": 15, "poly": [820.0, 745.0, 884.0, 739.0, 886.0, 763.0, 822.0, 768.0], "score": 0.96, "text": "p.25."}, {"category_id": 15, "poly": [790.0, 768.0, 1396.0, 768.0, 1396.0, 798.0, 790.0, 798.0], "score": 0.98, "text": "Legates, D.R., McCabe, G.J., 1999. Evaluating the use of 'goodness-"}, {"category_id": 15, "poly": [825.0, 796.0, 1396.0, 796.0, 1396.0, 823.0, 825.0, 823.0], "score": 0.98, "text": "of-fit\u2019 measures in hydrologic and hydroclimatic model validation."}, {"category_id": 15, "poly": [825.0, 823.0, 1181.0, 823.0, 1181.0, 851.0, 825.0, 851.0], "score": 1.0, "text": "Water Resources Research 35, 233-241."}, {"category_id": 15, "poly": [790.0, 851.0, 1398.0, 851.0, 1398.0, 882.0, 790.0, 882.0], "score": 0.98, "text": "Lyne, V.D., Hollick, M., 1979. Stochastic time-varying rainfall-runoff"}, {"category_id": 15, "poly": [825.0, 882.0, 1398.0, 882.0, 1398.0, 912.0, 825.0, 912.0], "score": 1.0, "text": "modelling. Hydrology and Water Resources Symposium, Perth."}, {"category_id": 15, "poly": [825.0, 909.0, 1224.0, 909.0, 1224.0, 940.0, 825.0, 940.0], "score": 0.98, "text": "Institution of Engineers, Australia, pp. 89-92."}, {"category_id": 15, "poly": [788.0, 935.0, 1398.0, 937.0, 1398.0, 968.0, 788.0, 965.0], "score": 0.98, "text": "Nandakumar, N., Mein, R.G., 1993. Analysis of paired catchment data"}, {"category_id": 15, "poly": [825.0, 965.0, 1398.0, 965.0, 1398.0, 995.0, 825.0, 995.0], "score": 1.0, "text": "to determine the hydrologic effects of changes in vegetative cover"}, {"category_id": 15, "poly": [827.0, 995.0, 1396.0, 995.0, 1396.0, 1026.0, 827.0, 1026.0], "score": 0.99, "text": "on yield. Technical Report for Project UM010, Monash University"}, {"category_id": 15, "poly": [788.0, 1049.0, 1398.0, 1051.0, 1398.0, 1081.0, 788.0, 1079.0], "score": 0.98, "text": "Nash, J.E., Sutcliffe, J.V., 1970. River fow forecasting through"}, {"category_id": 15, "poly": [825.0, 1079.0, 1400.0, 1079.0, 1400.0, 1109.0, 825.0, 1109.0], "score": 0.97, "text": "conceptual models, I, A discussion of principals. Journal of"}, {"category_id": 15, "poly": [825.0, 1109.0, 1042.0, 1109.0, 1042.0, 1137.0, 825.0, 1137.0], "score": 1.0, "text": "Hydrology 10, 282-290."}, {"category_id": 15, "poly": [790.0, 1137.0, 1398.0, 1137.0, 1398.0, 1165.0, 790.0, 1165.0], "score": 0.98, "text": "Putahena, W.M., Cordery, I., 2000. Some hydrological effects of"}, {"category_id": 15, "poly": [827.0, 1165.0, 1398.0, 1165.0, 1398.0, 1195.0, 827.0, 1195.0], "score": 0.99, "text": "changing forest cover from eucalyptus to Pinus radiata. Agricul-"}, {"category_id": 15, "poly": [825.0, 1193.0, 1192.0, 1193.0, 1192.0, 1223.0, 825.0, 1223.0], "score": 0.99, "text": "tural and Forest Meteorology 100, 59-72."}, {"category_id": 15, "poly": [790.0, 1223.0, 1398.0, 1223.0, 1398.0, 1253.0, 790.0, 1253.0], "score": 0.99, "text": "Roberts, S., Vertessy, R.A., Grayson, R.G., 2001. Transpiration from"}, {"category_id": 15, "poly": [825.0, 1251.0, 1400.0, 1251.0, 1400.0, 1281.0, 825.0, 1281.0], "score": 0.99, "text": "Eucalyptus sieberi (L. Johnson) forests of different age. Forest "}, {"category_id": 15, "poly": [825.0, 1279.0, 1183.0, 1279.0, 1183.0, 1309.0, 825.0, 1309.0], "score": 1.0, "text": "Ecology and Management 143, 153-161."}, {"category_id": 15, "poly": [788.0, 1305.0, 1398.0, 1307.0, 1398.0, 1337.0, 788.0, 1335.0], "score": 0.99, "text": "Scott, D.F., Smith, R.E., 1997. Preliminary empirical models to predict"}, {"category_id": 15, "poly": [823.0, 1333.0, 1398.0, 1335.0, 1398.0, 1365.0, 823.0, 1363.0], "score": 0.98, "text": "reductions in total and low flows resulting from afforestation."}, {"category_id": 15, "poly": [825.0, 1363.0, 1046.0, 1363.0, 1046.0, 1393.0, 825.0, 1393.0], "score": 0.99, "text": "Water S.A. 23, 135-140."}, {"category_id": 15, "poly": [790.0, 1393.0, 1398.0, 1393.0, 1398.0, 1421.0, 790.0, 1421.0], "score": 0.97, "text": "Scott, D.F., Prinsloo, F.W., Moses, G., Mehlomakulu, M.,"}, {"category_id": 15, "poly": [825.0, 1421.0, 1398.0, 1421.0, 1398.0, 1449.0, 825.0, 1449.0], "score": 0.97, "text": "Simmers, A.D.A., 2000. Area-analysis of the South African"}, {"category_id": 15, "poly": [825.0, 1449.0, 1398.0, 1449.0, 1398.0, 1479.0, 825.0, 1479.0], "score": 0.96, "text": "catchment afforestation experimental data. WRC Report"}, {"category_id": 15, "poly": [825.0, 1481.0, 954.0, 1481.0, 954.0, 1505.0, 825.0, 1505.0], "score": 0.98, "text": "No. 810/1/00."}, {"category_id": 15, "poly": [790.0, 1507.0, 1396.0, 1507.0, 1396.0, 1535.0, 790.0, 1535.0], "score": 0.98, "text": "Sikka, A.K., Samra, JS., Sharda, V.N., Samraj, P., Lakshmanan, V.,"}, {"category_id": 15, "poly": [825.0, 1535.0, 1400.0, 1535.0, 1400.0, 1565.0, 825.0, 1565.0], "score": 0.98, "text": "2003. Low fow and high responses to converting natural grassland"}, {"category_id": 15, "poly": [827.0, 1561.0, 1400.0, 1561.0, 1400.0, 1591.0, 827.0, 1591.0], "score": 0.99, "text": "into bluegum (Eucalyptus globulus) in Ningiris watersheds of"}, {"category_id": 15, "poly": [825.0, 1591.0, 1235.0, 1591.0, 1235.0, 1621.0, 825.0, 1621.0], "score": 0.99, "text": "South India. Journal of Hydrology 270, 12-26."}, {"category_id": 15, "poly": [790.0, 1621.0, 1398.0, 1621.0, 1398.0, 1651.0, 790.0, 1651.0], "score": 0.98, "text": " Smakhtin, V.U., 1999. A concept of pragmatic hydrological time series "}, {"category_id": 15, "poly": [825.0, 1649.0, 1398.0, 1649.0, 1398.0, 1679.0, 825.0, 1679.0], "score": 0.99, "text": "modelling and its application in South African context. In Ninth"}, {"category_id": 15, "poly": [823.0, 1675.0, 1398.0, 1677.0, 1398.0, 1707.0, 823.0, 1705.0], "score": 0.98, "text": " South African National Hydrology Symposium, 29-30 November"}, {"category_id": 15, "poly": [825.0, 1703.0, 971.0, 1703.0, 971.0, 1739.0, 825.0, 1739.0], "score": 0.99, "text": "1999, pp. 1-11."}, {"category_id": 15, "poly": [790.0, 1735.0, 1398.0, 1735.0, 1398.0, 1765.0, 790.0, 1765.0], "score": 0.98, "text": " Smakhtin, V.U., 2001. Low flow hydrology: a review. Journal of"}, {"category_id": 15, "poly": [825.0, 1763.0, 1052.0, 1763.0, 1052.0, 1793.0, 825.0, 1793.0], "score": 1.0, "text": "Hydrology 240, 147-186."}, {"category_id": 15, "poly": [793.0, 1791.0, 1398.0, 1791.0, 1398.0, 1821.0, 793.0, 1821.0], "score": 0.99, "text": "Van Lill, W.S., Kruger, F.J., Van Wyk, D.B., 1980. The effect of"}, {"category_id": 15, "poly": [827.0, 1819.0, 1398.0, 1819.0, 1398.0, 1849.0, 827.0, 1849.0], "score": 0.98, "text": "afforestation with Eucalyptus grandis Hill ex Maiden and Pinus"}, {"category_id": 15, "poly": [823.0, 1021.0, 1066.0, 1023.0, 1066.0, 1054.0, 822.0, 1051.0], "score": 0.98, "text": " Dept. of Civil Engineering,"}, {"category_id": 15, "poly": [126.0, 1528.0, 260.0, 1533.0, 259.0, 1572.0, 124.0, 1567.0], "score": 1.0, "text": "References"}], "page_info": {"page_no": 11, "height": 2064, "width": 1512}}, {"layout_dets": [{"category_id": 2, "poly": [465.48040771484375, 195.6739959716797, 1032.2401123046875, 195.6739959716797, 1032.2401123046875, 218.9838104248047, 465.48040771484375, 218.9838104248047], "score": 0.9999986886978149}, {"category_id": 1, "poly": [776.9209594726562, 255.59912109375, 1385.6478271484375, 255.59912109375, 1385.6478271484375, 614.4959716796875, 776.9209594726562, 614.4959716796875], "score": 0.9999933242797852}, {"category_id": 2, "poly": [1346.0157470703125, 195.03271484375, 1382.0159912109375, 195.03271484375, 1382.0159912109375, 217.2877960205078, 1346.0157470703125, 217.2877960205078], "score": 0.9999925494194031}, {"category_id": 1, "poly": [116.54571533203125, 257.5740966796875, 716.8768920898438, 257.5740966796875, 716.8768920898438, 615.0397338867188, 116.54571533203125, 615.0397338867188], "score": 0.9999920725822449}, {"category_id": 15, "poly": [466.0, 194.0, 1033.0, 194.0, 1033.0, 224.0, 466.0, 224.0], "score": 0.99, "text": "P.N.J. Lane et al. / Journal of Hydrology 310 (2005) 253-265"}, {"category_id": 15, "poly": [780.0, 254.0, 1383.0, 254.0, 1383.0, 284.0, 780.0, 284.0], "score": 0.99, "text": "Vogel, R.M., Fennessey, N.M., 1994. Flow duration curves. 1. New"}, {"category_id": 15, "poly": [810.0, 279.0, 1385.0, 282.0, 1385.0, 312.0, 810.0, 310.0], "score": 0.98, "text": " interpretation and confidence intervals. Journal of Water Planning"}, {"category_id": 15, "poly": [814.0, 310.0, 1128.0, 310.0, 1128.0, 340.0, 814.0, 340.0], "score": 0.99, "text": "and Management 120 (4), 485-504."}, {"category_id": 15, "poly": [780.0, 338.0, 1387.0, 338.0, 1387.0, 366.0, 780.0, 366.0], "score": 0.98, "text": "Whitehead, D., Beadle C.L., 2004. Physiological regulation of"}, {"category_id": 15, "poly": [808.0, 361.0, 1387.0, 363.0, 1387.0, 400.0, 807.0, 398.0], "score": 0.98, "text": " productivity and water use in Eucalyptus: a review. Forest Ecology"}, {"category_id": 15, "poly": [812.0, 393.0, 1104.0, 393.0, 1104.0, 424.0, 812.0, 424.0], "score": 1.0, "text": "and Management, 193, 113-140."}, {"category_id": 15, "poly": [777.0, 421.0, 1385.0, 421.0, 1385.0, 449.0, 777.0, 449.0], "score": 0.98, "text": "Zhang, L., Dawes, W.R., Walker, G.R., 1999. Predicting the effect of"}, {"category_id": 15, "poly": [814.0, 449.0, 1383.0, 449.0, 1383.0, 479.0, 814.0, 479.0], "score": 0.99, "text": "vegetation changes on catchment average water balance. Coop-"}, {"category_id": 15, "poly": [812.0, 475.0, 1385.0, 475.0, 1385.0, 505.0, 812.0, 505.0], "score": 0.99, "text": "erative Research Centre for Catchment Hydrology Technical"}, {"category_id": 15, "poly": [810.0, 503.0, 994.0, 503.0, 994.0, 533.0, 810.0, 533.0], "score": 0.99, "text": "Report 99/12, p. 35."}, {"category_id": 15, "poly": [777.0, 531.0, 1385.0, 531.0, 1385.0, 561.0, 777.0, 561.0], "score": 0.97, "text": "Zhang, L., Dawes, W.R., Walker, G.R., 2001. Response of mean"}, {"category_id": 15, "poly": [810.0, 557.0, 1385.0, 559.0, 1385.0, 589.0, 810.0, 587.0], "score": 0.98, "text": " annual evapotranspiration to vegetation changes at catchment"}, {"category_id": 15, "poly": [812.0, 587.0, 1222.0, 587.0, 1222.0, 615.0, 812.0, 615.0], "score": 1.0, "text": "scale. Water Resources Research 37, 701-708."}, {"category_id": 15, "poly": [1342.0, 189.0, 1387.0, 189.0, 1387.0, 234.0, 1342.0, 234.0], "score": 1.0, "text": "265"}, {"category_id": 15, "poly": [148.0, 254.0, 719.0, 254.0, 719.0, 284.0, 148.0, 284.0], "score": 1.0, "text": "patula Schlect. et Cham. on streamflow from experimental"}, {"category_id": 15, "poly": [146.0, 279.0, 720.0, 282.0, 719.0, 312.0, 146.0, 310.0], "score": 0.99, "text": "catchments at Mokubulaan, Transval. Journal of Hydrology 48,"}, {"category_id": 15, "poly": [150.0, 312.0, 234.0, 312.0, 234.0, 335.0, 150.0, 335.0], "score": 1.0, "text": "107-118."}, {"category_id": 15, "poly": [114.0, 338.0, 719.0, 338.0, 719.0, 366.0, 114.0, 366.0], "score": 0.97, "text": "Van Wyk, D.B., 1987. Some effects of afforestation on streamflow"}, {"category_id": 15, "poly": [144.0, 366.0, 719.0, 366.0, 719.0, 396.0, 144.0, 396.0], "score": 0.98, "text": "in the Western Cape Province, South Africa. Water S.A. 13,"}, {"category_id": 15, "poly": [148.0, 396.0, 210.0, 396.0, 210.0, 419.0, 148.0, 419.0], "score": 1.0, "text": "31-36."}, {"category_id": 15, "poly": [114.0, 421.0, 719.0, 421.0, 719.0, 452.0, 114.0, 452.0], "score": 0.98, "text": "Vertessy, R.A., Bessard, Y., 1999. Anticipating the negative"}, {"category_id": 15, "poly": [146.0, 449.0, 722.0, 449.0, 722.0, 479.0, 146.0, 479.0], "score": 0.98, "text": "hydrologic effects of plantation expansion: results from a"}, {"category_id": 15, "poly": [148.0, 475.0, 717.0, 475.0, 717.0, 503.0, 148.0, 503.0], "score": 0.98, "text": "GIS-based analysis on the Murrumbidgee Basin, in: Croke, J.,"}, {"category_id": 15, "poly": [146.0, 503.0, 722.0, 503.0, 722.0, 533.0, 146.0, 533.0], "score": 0.99, "text": "Lane, P.N.J. (Eds.), Forest Management for Water Quality and"}, {"category_id": 15, "poly": [144.0, 527.0, 722.0, 529.0, 722.0, 565.0, 144.0, 563.0], "score": 0.99, "text": "Quantity: Proceedings of the 2nd Erosion in Forests Meeting"}, {"category_id": 15, "poly": [146.0, 557.0, 722.0, 559.0, 722.0, 589.0, 146.0, 587.0], "score": 0.97, "text": " Cooperative Research Centre for Catchment Hydrology, Report "}, {"category_id": 15, "poly": [146.0, 587.0, 301.0, 587.0, 301.0, 617.0, 146.0, 617.0], "score": 0.93, "text": "99/6, Pp. 69-73."}], "page_info": {"page_no": 12, "height": 2064, "width": 1512}}] \ No newline at end of file diff --git a/demo/demo2.json b/demo/demo2.json deleted file mode 100644 index d632d70fa..000000000 --- a/demo/demo2.json +++ /dev/null @@ -1 +0,0 @@ -[{"layout_dets": [{"category_id": 0, "poly": [282.1632080078125, 156.2249755859375, 1416.6795654296875, 156.2249755859375, 1416.6795654296875, 313.81280517578125, 282.1632080078125, 313.81280517578125], "score": 0.999998927116394}, {"category_id": 1, "poly": [861.656982421875, 522.7763061523438, 1569.3853759765625, 522.7763061523438, 1569.3853759765625, 656.883544921875, 861.656982421875, 656.883544921875], "score": 0.9999970197677612}, {"category_id": 1, "poly": [131.8020782470703, 924.7362670898438, 838.9530639648438, 924.7362670898438, 838.9530639648438, 1323.7529296875, 131.8020782470703, 1323.7529296875], "score": 0.9999949932098389}, {"category_id": 1, "poly": [133.32005310058594, 1324.5035400390625, 839.2289428710938, 1324.5035400390625, 839.2289428710938, 1589.4503173828125, 133.32005310058594, 1589.4503173828125], "score": 0.999994158744812}, {"category_id": 1, "poly": [863.3811645507812, 1486.610107421875, 1569.2880859375, 1486.610107421875, 1569.2880859375, 1852.443603515625, 863.3811645507812, 1852.443603515625], "score": 0.9999936819076538}, {"category_id": 1, "poly": [862.9096069335938, 1187.8067626953125, 1568.2279052734375, 1187.8067626953125, 1568.2279052734375, 1486.08935546875, 862.9096069335938, 1486.08935546875], "score": 0.9999932050704956}, {"category_id": 1, "poly": [131.8186492919922, 1652.7752685546875, 837.5543823242188, 1652.7752685546875, 837.5543823242188, 2019.429443359375, 131.8186492919922, 2019.429443359375], "score": 0.9999901056289673}, {"category_id": 0, "poly": [375.1526794433594, 881.8807983398438, 594.3075561523438, 881.8807983398438, 594.3075561523438, 913.4786987304688, 375.1526794433594, 913.4786987304688], "score": 0.9999892115592957}, {"category_id": 2, "poly": [636.1867065429688, 2099.795654296875, 1063.7423095703125, 2099.795654296875, 1063.7423095703125, 2124.524169921875, 636.1867065429688, 2124.524169921875], "score": 0.9999860525131226}, {"category_id": 0, "poly": [375.91864013671875, 1610.209228515625, 592.8395385742188, 1610.209228515625, 592.8395385742188, 1641.5789794921875, 375.91864013671875, 1641.5789794921875], "score": 0.9999815821647644}, {"category_id": 4, "poly": [860.6583251953125, 995.6574096679688, 1569.622314453125, 995.6574096679688, 1569.622314453125, 1126.8409423828125, 860.6583251953125, 1126.8409423828125], "score": 0.9999815821647644}, {"category_id": 1, "poly": [443.1008605957031, 353.8008728027344, 1250.531494140625, 353.8008728027344, 1250.531494140625, 464.65576171875, 443.1008605957031, 464.65576171875], "score": 0.9999791979789734}, {"category_id": 1, "poly": [130.8282928466797, 523.2079467773438, 836.5639038085938, 523.2079467773438, 836.5639038085938, 862.0206909179688, 130.8282928466797, 862.0206909179688], "score": 0.9999784231185913}, {"category_id": 1, "poly": [862.6514282226562, 1851.426513671875, 1568.510498046875, 1851.426513671875, 1568.510498046875, 2017.93359375, 862.6514282226562, 2017.93359375], "score": 0.9999769926071167}, {"category_id": 3, "poly": [882.3795166015625, 685.376708984375, 1544.4088134765625, 685.376708984375, 1544.4088134765625, 969.22265625, 882.3795166015625, 969.22265625], "score": 0.9994785785675049}, {"category_id": 13, "poly": [1195, 1062, 1226, 1062, 1226, 1096, 1195, 1096], "score": 0.88, "latex": "d_{p}"}, {"category_id": 13, "poly": [1304, 1030, 1327, 1030, 1327, 1061, 1304, 1061], "score": 0.65, "latex": "\\bar{\\bf p}"}, {"category_id": 15, "poly": [344.0, 165.0, 1354.0, 172.0, 1353.0, 236.0, 344.0, 229.0], "score": 0.99, "text": "Real-time Temporal Stereo Matching"}, {"category_id": 15, "poly": [293.0, 254.0, 1402.0, 254.0, 1402.0, 309.0, 293.0, 309.0], "score": 0.99, "text": "using Iterative Adaptive Support Weights"}, {"category_id": 15, "poly": [864.0, 527.0, 1568.0, 527.0, 1568.0, 559.0, 864.0, 559.0], "score": 0.99, "text": "disparity map. Note that individual disparities can be converted"}, {"category_id": 15, "poly": [864.0, 561.0, 1568.0, 561.0, 1568.0, 594.0, 864.0, 594.0], "score": 0.98, "text": "to actual depths if the geometry of the camera setup is"}, {"category_id": 15, "poly": [859.0, 587.0, 1568.0, 591.0, 1568.0, 630.0, 859.0, 626.0], "score": 0.98, "text": " known, i.e., the stereo configuration of cameras has been pre-"}, {"category_id": 15, "poly": [862.0, 626.0, 984.0, 626.0, 984.0, 658.0, 862.0, 658.0], "score": 1.0, "text": "calibrated."}, {"category_id": 15, "poly": [155.0, 921.0, 839.0, 924.0, 838.0, 963.0, 155.0, 960.0], "score": 0.98, "text": " Modern stereo matching algorithms achieve excellent results"}, {"category_id": 15, "poly": [127.0, 956.0, 838.0, 958.0, 838.0, 997.0, 127.0, 995.0], "score": 0.98, "text": " on static stereo images, as demonstrated by the Middlebury"}, {"category_id": 15, "poly": [132.0, 995.0, 836.0, 995.0, 836.0, 1027.0, 132.0, 1027.0], "score": 0.98, "text": "stereo performance benchmark [1], [2]. However, their ap-"}, {"category_id": 15, "poly": [134.0, 1027.0, 834.0, 1027.0, 834.0, 1059.0, 134.0, 1059.0], "score": 1.0, "text": "plication to stereo video sequences does not guarantee inter-"}, {"category_id": 15, "poly": [134.0, 1061.0, 836.0, 1061.0, 836.0, 1093.0, 134.0, 1093.0], "score": 0.99, "text": "frame consistency of matches extracted from subsequent stereo"}, {"category_id": 15, "poly": [132.0, 1095.0, 838.0, 1095.0, 838.0, 1125.0, 132.0, 1125.0], "score": 0.99, "text": "frame pairs. The lack of temporal consistency of matches"}, {"category_id": 15, "poly": [134.0, 1128.0, 836.0, 1128.0, 836.0, 1157.0, 134.0, 1157.0], "score": 1.0, "text": "between successive frames introduces spurious artifacts in the"}, {"category_id": 15, "poly": [132.0, 1160.0, 836.0, 1160.0, 836.0, 1192.0, 132.0, 1192.0], "score": 0.99, "text": "resulting disparity maps. The problem of obtaining temporally"}, {"category_id": 15, "poly": [132.0, 1194.0, 838.0, 1194.0, 838.0, 1226.0, 132.0, 1226.0], "score": 0.98, "text": "consistent sequences of disparity maps from video streams is"}, {"category_id": 15, "poly": [134.0, 1228.0, 838.0, 1228.0, 838.0, 1260.0, 134.0, 1260.0], "score": 0.98, "text": "known as the temporal stereo correspondence problem, yet"}, {"category_id": 15, "poly": [129.0, 1258.0, 841.0, 1260.0, 841.0, 1293.0, 129.0, 1290.0], "score": 0.98, "text": "the amount of research efforts oriented towards finding an"}, {"category_id": 15, "poly": [134.0, 1292.0, 760.0, 1292.0, 760.0, 1325.0, 134.0, 1325.0], "score": 0.99, "text": "effective solution to this problem is surprisingly small."}, {"category_id": 15, "poly": [157.0, 1320.0, 836.0, 1322.0, 836.0, 1361.0, 157.0, 1359.0], "score": 0.98, "text": " A method is proposed for real-time temporal stereo match-"}, {"category_id": 15, "poly": [134.0, 1361.0, 836.0, 1361.0, 836.0, 1393.0, 134.0, 1393.0], "score": 1.0, "text": "ing that efficiently propagates matching cost information be-"}, {"category_id": 15, "poly": [134.0, 1393.0, 836.0, 1393.0, 836.0, 1425.0, 134.0, 1425.0], "score": 0.99, "text": "tween consecutive frames of a stereo video sequence. This"}, {"category_id": 15, "poly": [132.0, 1423.0, 834.0, 1425.0, 834.0, 1458.0, 132.0, 1455.0], "score": 0.98, "text": "method is invariant to the number of prior frames being"}, {"category_id": 15, "poly": [134.0, 1458.0, 836.0, 1458.0, 836.0, 1490.0, 134.0, 1490.0], "score": 0.99, "text": "considered, and can be easily incorporated into any local stereo"}, {"category_id": 15, "poly": [132.0, 1492.0, 836.0, 1492.0, 836.0, 1524.0, 132.0, 1524.0], "score": 0.98, "text": "method based on edge-aware filters. The iterative adaptive"}, {"category_id": 15, "poly": [132.0, 1526.0, 838.0, 1526.0, 838.0, 1558.0, 132.0, 1558.0], "score": 0.99, "text": "support matching algorithm presented in [3] serves as a"}, {"category_id": 15, "poly": [132.0, 1558.0, 557.0, 1558.0, 557.0, 1590.0, 132.0, 1590.0], "score": 0.99, "text": "foundation for the proposed method."}, {"category_id": 15, "poly": [887.0, 1483.0, 1571.0, 1485.0, 1571.0, 1524.0, 887.0, 1522.0], "score": 0.98, "text": " In contrast, local methods, which are typically built upon"}, {"category_id": 15, "poly": [859.0, 1517.0, 1573.0, 1519.0, 1573.0, 1558.0, 859.0, 1556.0], "score": 0.97, "text": " the Winner-Takes-All (WTA) framework, have the property of "}, {"category_id": 15, "poly": [864.0, 1556.0, 1566.0, 1556.0, 1566.0, 1588.0, 864.0, 1588.0], "score": 0.99, "text": "computational regularity and are thus suitable for implemen-"}, {"category_id": 15, "poly": [862.0, 1588.0, 1566.0, 1588.0, 1566.0, 1620.0, 862.0, 1620.0], "score": 1.0, "text": "tation on parallel graphics hardware. Within the WTA frame-"}, {"category_id": 15, "poly": [862.0, 1616.0, 1568.0, 1618.0, 1568.0, 1657.0, 862.0, 1655.0], "score": 0.98, "text": "work, local stereo algorithms consider a range of disparity"}, {"category_id": 15, "poly": [864.0, 1655.0, 1566.0, 1655.0, 1566.0, 1687.0, 864.0, 1687.0], "score": 0.98, "text": "hypotheses and compute a volume of pixel-wise dissimilarity"}, {"category_id": 15, "poly": [862.0, 1689.0, 1571.0, 1689.0, 1571.0, 1721.0, 862.0, 1721.0], "score": 0.99, "text": "metrics between the reference image and the matched image at"}, {"category_id": 15, "poly": [862.0, 1723.0, 1568.0, 1721.0, 1568.0, 1753.0, 862.0, 1755.0], "score": 0.99, "text": "every considered disparity value. Final disparities are chosen"}, {"category_id": 15, "poly": [864.0, 1755.0, 1568.0, 1755.0, 1568.0, 1785.0, 864.0, 1785.0], "score": 1.0, "text": "from the cost volume by traversing through its values and"}, {"category_id": 15, "poly": [866.0, 1788.0, 1568.0, 1788.0, 1568.0, 1820.0, 866.0, 1820.0], "score": 0.99, "text": "selecting the disparities associated with minimum matching"}, {"category_id": 15, "poly": [859.0, 1817.0, 1377.0, 1820.0, 1377.0, 1859.0, 859.0, 1856.0], "score": 0.98, "text": " costs for every pixel of the reference image."}, {"category_id": 15, "poly": [885.0, 1187.0, 1571.0, 1187.0, 1571.0, 1226.0, 885.0, 1226.0], "score": 0.97, "text": " In their excellent taxonomy paper [1], Scharstein and"}, {"category_id": 15, "poly": [864.0, 1224.0, 1566.0, 1224.0, 1566.0, 1254.0, 864.0, 1254.0], "score": 0.99, "text": "Szeliski classify stereo algorithms as local or global meth-"}, {"category_id": 15, "poly": [859.0, 1249.0, 1571.0, 1254.0, 1570.0, 1293.0, 859.0, 1288.0], "score": 0.99, "text": " ods. Global methods, which offer outstanding accuracy, are"}, {"category_id": 15, "poly": [862.0, 1288.0, 1571.0, 1288.0, 1571.0, 1327.0, 862.0, 1327.0], "score": 0.98, "text": "typically derived from an energy minimization framework"}, {"category_id": 15, "poly": [859.0, 1322.0, 1566.0, 1322.0, 1566.0, 1352.0, 859.0, 1352.0], "score": 0.99, "text": "that allows for explicit integration of disparity smoothness"}, {"category_id": 15, "poly": [864.0, 1357.0, 1568.0, 1357.0, 1568.0, 1389.0, 864.0, 1389.0], "score": 0.99, "text": "constraints and thus is capable of regularizing the solution"}, {"category_id": 15, "poly": [864.0, 1391.0, 1568.0, 1391.0, 1568.0, 1421.0, 864.0, 1421.0], "score": 1.0, "text": "in weakly textured areas. The minimization, however, is often"}, {"category_id": 15, "poly": [864.0, 1423.0, 1568.0, 1423.0, 1568.0, 1455.0, 864.0, 1455.0], "score": 0.99, "text": "achieved using iterative methods or graph cuts, which do not"}, {"category_id": 15, "poly": [864.0, 1458.0, 1418.0, 1458.0, 1418.0, 1487.0, 864.0, 1487.0], "score": 0.99, "text": "lend themselves well to parallel implementation."}, {"category_id": 15, "poly": [155.0, 1650.0, 839.0, 1652.0, 838.0, 1691.0, 155.0, 1689.0], "score": 0.97, "text": " Stereo matching is the process of identifying correspon-"}, {"category_id": 15, "poly": [134.0, 1687.0, 838.0, 1687.0, 838.0, 1719.0, 134.0, 1719.0], "score": 0.99, "text": "dences between pixels in stereo images obtained using a"}, {"category_id": 15, "poly": [132.0, 1723.0, 838.0, 1721.0, 838.0, 1753.0, 132.0, 1755.0], "score": 0.98, "text": "pair of synchronized cameras. These correspondences are"}, {"category_id": 15, "poly": [134.0, 1755.0, 836.0, 1755.0, 836.0, 1788.0, 134.0, 1788.0], "score": 0.99, "text": "conveniently represented using the notion of disparity, i.e. the"}, {"category_id": 15, "poly": [134.0, 1788.0, 836.0, 1788.0, 836.0, 1820.0, 134.0, 1820.0], "score": 1.0, "text": "positional offset between two matching pixels. It is assumed"}, {"category_id": 15, "poly": [134.0, 1822.0, 836.0, 1822.0, 836.0, 1854.0, 134.0, 1854.0], "score": 0.99, "text": "that the stereo images are rectified, such that matching pixels"}, {"category_id": 15, "poly": [132.0, 1854.0, 836.0, 1854.0, 836.0, 1886.0, 132.0, 1886.0], "score": 0.99, "text": "are confined within corresponding rows of the images and"}, {"category_id": 15, "poly": [134.0, 1888.0, 838.0, 1888.0, 838.0, 1918.0, 134.0, 1918.0], "score": 1.0, "text": "thus disparities are restricted to the horizontal dimension, as"}, {"category_id": 15, "poly": [134.0, 1920.0, 838.0, 1920.0, 838.0, 1952.0, 134.0, 1952.0], "score": 1.0, "text": "illustrated in Figure 1. For visualization purposes, disparities"}, {"category_id": 15, "poly": [134.0, 1955.0, 838.0, 1955.0, 838.0, 1987.0, 134.0, 1987.0], "score": 0.99, "text": "recovered for every pixel of a reference image are stored"}, {"category_id": 15, "poly": [129.0, 1985.0, 841.0, 1982.0, 841.0, 2021.0, 129.0, 2024.0], "score": 0.98, "text": "together in the form of an image, which is known as the"}, {"category_id": 15, "poly": [370.0, 885.0, 594.0, 885.0, 594.0, 917.0, 370.0, 917.0], "score": 1.0, "text": "1. INTRODUCTION"}, {"category_id": 15, "poly": [638.0, 2099.0, 1062.0, 2099.0, 1062.0, 2131.0, 638.0, 2131.0], "score": 0.98, "text": "978-1-4673-5208-6/13/$31.00 @2013 IEEE"}, {"category_id": 15, "poly": [374.0, 1613.0, 591.0, 1613.0, 591.0, 1645.0, 374.0, 1645.0], "score": 0.95, "text": "II. BACKGROUND"}, {"category_id": 15, "poly": [859.0, 992.0, 1571.0, 995.0, 1571.0, 1034.0, 859.0, 1031.0], "score": 0.99, "text": " Figure 1: Geometry of two horizontally aligned views where p"}, {"category_id": 15, "poly": [864.0, 1098.0, 1291.0, 1098.0, 1291.0, 1130.0, 864.0, 1130.0], "score": 0.99, "text": "them along the horizontal dimension."}, {"category_id": 15, "poly": [859.0, 1061.0, 1194.0, 1059.0, 1194.0, 1098.0, 859.0, 1100.0], "score": 0.98, "text": " pixel in the target frame, and"}, {"category_id": 15, "poly": [1227.0, 1061.0, 1571.0, 1059.0, 1571.0, 1098.0, 1227.0, 1100.0], "score": 0.97, "text": " denotes the disparity between"}, {"category_id": 15, "poly": [864.0, 1034.0, 1303.0, 1034.0, 1303.0, 1063.0, 864.0, 1063.0], "score": 0.99, "text": "denotes a pixel in the reference frame,"}, {"category_id": 15, "poly": [1328.0, 1034.0, 1566.0, 1034.0, 1566.0, 1063.0, 1328.0, 1063.0], "score": 0.96, "text": " denotes its matching"}, {"category_id": 15, "poly": [508.0, 357.0, 1194.0, 360.0, 1194.0, 392.0, 508.0, 390.0], "score": 0.98, "text": "Jedrzej Kowalczuk, Eric T. Psota, and Lance C. P\u00e9rez"}, {"category_id": 15, "poly": [443.0, 392.0, 1245.0, 392.0, 1245.0, 424.0, 443.0, 424.0], "score": 0.99, "text": "Department of Electrical Engineering, University of Nebraska-Lincoln"}, {"category_id": 15, "poly": [614.0, 435.0, 1081.0, 435.0, 1081.0, 465.0, 614.0, 465.0], "score": 0.99, "text": "[jkowalczuk2,epsota,lperez] @unl.edu"}, {"category_id": 15, "poly": [159.0, 527.0, 836.0, 527.0, 836.0, 559.0, 159.0, 559.0], "score": 0.98, "text": "Abstract-Stereo matching algorithms are nearly always de-"}, {"category_id": 15, "poly": [132.0, 555.0, 838.0, 555.0, 838.0, 587.0, 132.0, 587.0], "score": 0.98, "text": "signed to find matches between a single pair of images. A method"}, {"category_id": 15, "poly": [134.0, 580.0, 836.0, 580.0, 836.0, 612.0, 134.0, 612.0], "score": 1.0, "text": "is presented that was specifically designed to operate on sequences"}, {"category_id": 15, "poly": [132.0, 605.0, 838.0, 607.0, 838.0, 646.0, 132.0, 644.0], "score": 0.99, "text": "of images. This method considers the cost of matching image"}, {"category_id": 15, "poly": [132.0, 637.0, 838.0, 637.0, 838.0, 669.0, 132.0, 669.0], "score": 0.98, "text": "points in both the spatial and temporal domain. To maintain"}, {"category_id": 15, "poly": [134.0, 667.0, 838.0, 667.0, 838.0, 699.0, 134.0, 699.0], "score": 0.97, "text": "real-time operation, a temporal cost aggregation method is used"}, {"category_id": 15, "poly": [132.0, 692.0, 836.0, 692.0, 836.0, 722.0, 132.0, 722.0], "score": 0.98, "text": "to evaluate the likelihood of matches that is invariant with respect"}, {"category_id": 15, "poly": [127.0, 717.0, 841.0, 715.0, 841.0, 754.0, 127.0, 756.0], "score": 0.97, "text": "to the number of prior images being considered. This method"}, {"category_id": 15, "poly": [127.0, 742.0, 841.0, 745.0, 841.0, 784.0, 127.0, 781.0], "score": 0.98, "text": "has been implemented on massively parallel GPU hardware,"}, {"category_id": 15, "poly": [132.0, 777.0, 838.0, 777.0, 838.0, 809.0, 132.0, 809.0], "score": 0.99, "text": "and the implementation ranks as one of the fastest and most"}, {"category_id": 15, "poly": [132.0, 802.0, 838.0, 804.0, 838.0, 836.0, 132.0, 834.0], "score": 0.99, "text": "accurate real-time stereo matching methods as measured by the"}, {"category_id": 15, "poly": [134.0, 830.0, 619.0, 830.0, 619.0, 862.0, 134.0, 862.0], "score": 0.99, "text": "Middlebury stereo performance benchmark."}, {"category_id": 15, "poly": [887.0, 1849.0, 1568.0, 1852.0, 1568.0, 1891.0, 887.0, 1888.0], "score": 0.99, "text": " Disparity maps obtained using this simple strategy are often"}, {"category_id": 15, "poly": [862.0, 1888.0, 1568.0, 1888.0, 1568.0, 1920.0, 862.0, 1920.0], "score": 0.98, "text": "too noisy to be considered useable. To reduce the effects"}, {"category_id": 15, "poly": [864.0, 1923.0, 1568.0, 1923.0, 1568.0, 1952.0, 864.0, 1952.0], "score": 0.99, "text": "of noise and enforce spatial consistency of matches, local"}, {"category_id": 15, "poly": [862.0, 1948.0, 1568.0, 1950.0, 1568.0, 1989.0, 861.0, 1987.0], "score": 0.99, "text": "stereo algorithms consider arbitrarily shaped and sized support"}, {"category_id": 15, "poly": [864.0, 1989.0, 1568.0, 1989.0, 1568.0, 2021.0, 864.0, 2021.0], "score": 0.99, "text": "windows centered at each pixel of the reference image, and"}], "page_info": {"page_no": 0, "height": 2200, "width": 1700}}, {"layout_dets": [{"category_id": 8, "poly": [962.3624267578125, 1513.2073974609375, 1465.4017333984375, 1513.2073974609375, 1465.4017333984375, 1669.1397705078125, 962.3624267578125, 1669.1397705078125], "score": 0.9999995231628418}, {"category_id": 9, "poly": [1530.72998046875, 1101.879638671875, 1565.2568359375, 1101.879638671875, 1565.2568359375, 1130.8609619140625, 1530.72998046875, 1130.8609619140625], "score": 0.9999992251396179}, {"category_id": 9, "poly": [1529.8787841796875, 1575.843505859375, 1565.931396484375, 1575.843505859375, 1565.931396484375, 1607.2161865234375, 1529.8787841796875, 1607.2161865234375], "score": 0.9999987483024597}, {"category_id": 1, "poly": [865.1971435546875, 1684.040283203125, 1566.561279296875, 1684.040283203125, 1566.561279296875, 1813.7021484375, 865.1971435546875, 1813.7021484375], "score": 0.9999987483024597}, {"category_id": 9, "poly": [1530.5263671875, 1839.3990478515625, 1565.1201171875, 1839.3990478515625, 1565.1201171875, 1869.825439453125, 1530.5263671875, 1869.825439453125], "score": 0.9999977946281433}, {"category_id": 8, "poly": [972.3255004882812, 1075.85498046875, 1461.2088623046875, 1075.85498046875, 1461.2088623046875, 1155.465087890625, 972.3255004882812, 1155.465087890625], "score": 0.999996542930603}, {"category_id": 1, "poly": [865.4874267578125, 158.47100830078125, 1565.84375, 158.47100830078125, 1565.84375, 355.3230285644531, 865.4874267578125, 355.3230285644531], "score": 0.9999960660934448}, {"category_id": 1, "poly": [133.51382446289062, 158.21670532226562, 835.5382080078125, 158.21670532226562, 835.5382080078125, 558.8020629882812, 133.51382446289062, 558.8020629882812], "score": 0.9999951124191284}, {"category_id": 1, "poly": [134.01239013671875, 954.4151000976562, 836.1470336914062, 954.4151000976562, 836.1470336914062, 1618.77197265625, 134.01239013671875, 1618.77197265625], "score": 0.9999947547912598}, {"category_id": 1, "poly": [134.4542999267578, 558.8201904296875, 834.2548828125, 558.8201904296875, 834.2548828125, 954.7811279296875, 134.4542999267578, 954.7811279296875], "score": 0.9999943971633911}, {"category_id": 1, "poly": [866.33642578125, 421.84442138671875, 1566.451904296875, 421.84442138671875, 1566.451904296875, 787.1864624023438, 866.33642578125, 787.1864624023438], "score": 0.9999930262565613}, {"category_id": 1, "poly": [864.974853515625, 1167.92236328125, 1567.0927734375, 1167.92236328125, 1567.0927734375, 1298.29541015625, 864.974853515625, 1298.29541015625], "score": 0.9999929666519165}, {"category_id": 1, "poly": [864.5220947265625, 853.943359375, 1565.82080078125, 853.943359375, 1565.82080078125, 1080.8125, 864.5220947265625, 1080.8125], "score": 0.9999923706054688}, {"category_id": 1, "poly": [865.4466552734375, 1919.30615234375, 1566.4720458984375, 1919.30615234375, 1566.4720458984375, 2017.154541015625, 865.4466552734375, 2017.154541015625], "score": 0.9999904036521912}, {"category_id": 1, "poly": [864.801513671875, 1302.438232421875, 1566.760986328125, 1302.438232421875, 1566.760986328125, 1498.9681396484375, 864.801513671875, 1498.9681396484375], "score": 0.9999889135360718}, {"category_id": 1, "poly": [133.34628295898438, 1620.0596923828125, 836.7553100585938, 1620.0596923828125, 836.7553100585938, 2018.44873046875, 133.34628295898438, 2018.44873046875], "score": 0.9999861717224121}, {"category_id": 0, "poly": [865.5296020507812, 809.8997802734375, 1302.7711181640625, 809.8997802734375, 1302.7711181640625, 841.3140869140625, 865.5296020507812, 841.3140869140625], "score": 0.9999798536300659}, {"category_id": 0, "poly": [1131.11181640625, 378.66229248046875, 1299.6181640625, 378.66229248046875, 1299.6181640625, 409.04852294921875, 1131.11181640625, 409.04852294921875], "score": 0.9999651908874512}, {"category_id": 8, "poly": [1003.5569458007812, 1824.2362060546875, 1420.7132568359375, 1824.2362060546875, 1420.7132568359375, 1905.175048828125, 1003.5569458007812, 1905.175048828125], "score": 0.999914288520813}, {"category_id": 14, "poly": [974, 1076, 1454, 1076, 1454, 1155, 974, 1155], "score": 0.94, "latex": "w(p,q)=\\exp{\\left(-\\frac{\\Delta_{g}(p,q)}{\\gamma_{g}}-\\frac{\\Delta_{c}(p,q)}{\\gamma_{c}}\\right)},"}, {"category_id": 14, "poly": [1006, 1825, 1423, 1825, 1423, 1907, 1006, 1907], "score": 0.94, "latex": "\\delta(q,\\bar{q})=\\sum_{c=\\{r,g,b\\}}\\operatorname*{min}(|q_{c}-\\bar{q}_{c}|,\\tau)."}, {"category_id": 14, "poly": [963, 1510, 1464, 1510, 1464, 1671, 963, 1671], "score": 0.93, "latex": "C(p,\\bar{p})=\\frac{\\displaystyle\\sum_{q\\in\\Omega_{p},\\bar{q}\\in\\Omega_{\\bar{p}}}w(p,q)w(\\bar{p},\\bar{q})\\delta(q,\\bar{q})}{\\displaystyle\\sum_{q\\in\\Omega_{p},\\bar{q}\\in\\Omega_{\\bar{p}}}w(p,q)w(\\bar{p},\\bar{q})}\\,,"}, {"category_id": 13, "poly": [1335, 1166, 1432, 1166, 1432, 1200, 1335, 1200], "score": 0.93, "latex": "\\Delta_{c}(p,q)"}, {"category_id": 13, "poly": [939, 1166, 1039, 1166, 1039, 1201, 939, 1201], "score": 0.93, "latex": "\\Delta_{g}(p,q)"}, {"category_id": 13, "poly": [1289, 1683, 1365, 1683, 1365, 1717, 1289, 1717], "score": 0.93, "latex": "\\delta(q,\\bar{q})"}, {"category_id": 13, "poly": [1362, 1367, 1441, 1367, 1441, 1401, 1362, 1401], "score": 0.92, "latex": "\\bar{p}\\in S_{p}"}, {"category_id": 13, "poly": [864, 1019, 951, 1019, 951, 1053, 864, 1053], "score": 0.92, "latex": "q\\in\\Omega_{p}"}, {"category_id": 13, "poly": [1351, 953, 1388, 953, 1388, 987, 1351, 987], "score": 0.9, "latex": "\\Omega_{p}"}, {"category_id": 13, "poly": [913, 1467, 949, 1467, 949, 1501, 913, 1501], "score": 0.89, "latex": "\\Omega_{\\bar{p}}"}, {"category_id": 13, "poly": [1531, 1367, 1565, 1367, 1565, 1401, 1531, 1401], "score": 0.89, "latex": "S_{p}"}, {"category_id": 13, "poly": [1528, 1434, 1565, 1434, 1565, 1468, 1528, 1468], "score": 0.89, "latex": "\\Omega_{p}"}, {"category_id": 13, "poly": [1485, 1205, 1516, 1205, 1516, 1234, 1485, 1234], "score": 0.88, "latex": "\\gamma_{g}"}, {"category_id": 13, "poly": [1159, 1206, 1178, 1206, 1178, 1233, 1159, 1233], "score": 0.82, "latex": "p"}, {"category_id": 13, "poly": [863, 1238, 893, 1238, 893, 1266, 863, 1266], "score": 0.82, "latex": "\\gamma_{c}"}, {"category_id": 13, "poly": [1177, 1436, 1196, 1436, 1196, 1465, 1177, 1465], "score": 0.8, "latex": "\\bar{p}"}, {"category_id": 13, "poly": [1371, 1024, 1391, 1024, 1391, 1051, 1371, 1051], "score": 0.8, "latex": "p"}, {"category_id": 13, "poly": [1540, 1406, 1558, 1406, 1558, 1432, 1540, 1432], "score": 0.8, "latex": "p"}, {"category_id": 13, "poly": [1447, 1024, 1465, 1024, 1465, 1051, 1447, 1051], "score": 0.79, "latex": "q"}, {"category_id": 13, "poly": [1101, 1437, 1121, 1437, 1121, 1465, 1101, 1465], "score": 0.79, "latex": "p"}, {"category_id": 13, "poly": [1389, 1307, 1407, 1307, 1407, 1332, 1389, 1332], "score": 0.79, "latex": "p"}, {"category_id": 13, "poly": [1230, 1206, 1247, 1206, 1247, 1233, 1230, 1233], "score": 0.78, "latex": "q"}, {"category_id": 13, "poly": [1029, 1372, 1048, 1372, 1048, 1399, 1029, 1399], "score": 0.78, "latex": "p"}, {"category_id": 13, "poly": [916, 1752, 934, 1752, 934, 1782, 916, 1782], "score": 0.76, "latex": "\\bar{q}"}, {"category_id": 13, "poly": [1407, 1925, 1425, 1925, 1425, 1946, 1407, 1946], "score": 0.75, "latex": "\\tau"}, {"category_id": 13, "poly": [1548, 1722, 1565, 1722, 1565, 1749, 1548, 1749], "score": 0.75, "latex": "q"}, {"category_id": 13, "poly": [1050, 992, 1068, 992, 1068, 1018, 1050, 1018], "score": 0.75, "latex": "p"}, {"category_id": 15, "poly": [864.0, 1783.0, 1298.0, 1783.0, 1298.0, 1822.0, 864.0, 1822.0], "score": 0.99, "text": "green, and blue components given by"}, {"category_id": 15, "poly": [866.0, 1687.0, 1288.0, 1687.0, 1288.0, 1719.0, 866.0, 1719.0], "score": 0.96, "text": "where the pixel dissimilarity metric"}, {"category_id": 15, "poly": [1366.0, 1687.0, 1564.0, 1687.0, 1564.0, 1719.0, 1366.0, 1719.0], "score": 0.97, "text": "ischosen as the"}, {"category_id": 15, "poly": [866.0, 1751.0, 915.0, 1751.0, 915.0, 1783.0, 866.0, 1783.0], "score": 1.0, "text": "and"}, {"category_id": 15, "poly": [935.0, 1751.0, 1564.0, 1751.0, 1564.0, 1783.0, 935.0, 1783.0], "score": 0.98, "text": ". Here, the truncation of color difference for the red,"}, {"category_id": 15, "poly": [866.0, 1719.0, 1547.0, 1719.0, 1547.0, 1749.0, 866.0, 1749.0], "score": 0.99, "text": "sum of truncated absolute color differences between pixels"}, {"category_id": 15, "poly": [864.0, 163.0, 1568.0, 163.0, 1568.0, 192.0, 864.0, 192.0], "score": 1.0, "text": "temporal information, making it possible to process a temporal"}, {"category_id": 15, "poly": [859.0, 188.0, 1571.0, 193.0, 1570.0, 229.0, 859.0, 225.0], "score": 0.99, "text": " collection of cost volumes. The filtering operation was shown"}, {"category_id": 15, "poly": [864.0, 229.0, 1566.0, 229.0, 1566.0, 261.0, 864.0, 261.0], "score": 0.99, "text": "to preserve spatio-temporal edges present in the cost volumes,"}, {"category_id": 15, "poly": [859.0, 261.0, 1564.0, 264.0, 1564.0, 296.0, 859.0, 293.0], "score": 0.98, "text": " resulting in increased temporal consistency of disparity maps,"}, {"category_id": 15, "poly": [864.0, 296.0, 1566.0, 296.0, 1566.0, 328.0, 864.0, 328.0], "score": 0.99, "text": "greater robustness to image noise, and more accurate behavior"}, {"category_id": 15, "poly": [866.0, 328.0, 1160.0, 328.0, 1160.0, 360.0, 866.0, 360.0], "score": 1.0, "text": "around object boundaries."}, {"category_id": 15, "poly": [129.0, 158.0, 841.0, 153.0, 841.0, 192.0, 130.0, 197.0], "score": 0.99, "text": "aggregate cost values within the pixel neighborhoods defined"}, {"category_id": 15, "poly": [129.0, 188.0, 841.0, 190.0, 841.0, 229.0, 129.0, 227.0], "score": 0.99, "text": "by these windows. In 2005, Yoon and Kweon [4] proposed"}, {"category_id": 15, "poly": [132.0, 229.0, 838.0, 229.0, 838.0, 261.0, 132.0, 261.0], "score": 1.0, "text": "an adaptive matching cost aggregation scheme, which assigns"}, {"category_id": 15, "poly": [132.0, 261.0, 838.0, 261.0, 838.0, 293.0, 132.0, 293.0], "score": 0.98, "text": "a weight value to every pixel located in the support window"}, {"category_id": 15, "poly": [132.0, 293.0, 838.0, 293.0, 838.0, 325.0, 132.0, 325.0], "score": 0.98, "text": "of a given pixel of interest. The weight value is based on"}, {"category_id": 15, "poly": [132.0, 328.0, 836.0, 328.0, 836.0, 360.0, 132.0, 360.0], "score": 0.99, "text": "the spatial and color similarity between the pixel of interest"}, {"category_id": 15, "poly": [134.0, 360.0, 836.0, 360.0, 836.0, 392.0, 134.0, 392.0], "score": 1.0, "text": "and a pixel in its support window, and the aggregated cost is"}, {"category_id": 15, "poly": [134.0, 394.0, 836.0, 394.0, 836.0, 426.0, 134.0, 426.0], "score": 0.99, "text": "computed as a weighted average of the pixel-wise costs within"}, {"category_id": 15, "poly": [127.0, 422.0, 839.0, 424.0, 838.0, 463.0, 127.0, 461.0], "score": 0.98, "text": " the considered support window. The edge-preserving nature"}, {"category_id": 15, "poly": [129.0, 456.0, 838.0, 454.0, 838.0, 493.0, 129.0, 495.0], "score": 0.99, "text": " and matching accuracy of adaptive support weights have made"}, {"category_id": 15, "poly": [132.0, 490.0, 841.0, 490.0, 841.0, 529.0, 132.0, 529.0], "score": 0.99, "text": "them one of the most popular choices for cost aggregation in"}, {"category_id": 15, "poly": [132.0, 527.0, 797.0, 527.0, 797.0, 559.0, 132.0, 559.0], "score": 0.97, "text": "recently proposed stereo matching algorithms [3], [5]-[8]."}, {"category_id": 15, "poly": [157.0, 958.0, 836.0, 958.0, 836.0, 988.0, 157.0, 988.0], "score": 0.99, "text": "It has been demonstrated that the performance of stereo"}, {"category_id": 15, "poly": [132.0, 990.0, 838.0, 990.0, 838.0, 1022.0, 132.0, 1022.0], "score": 0.99, "text": "algorithms designed to match a single pair of images can"}, {"category_id": 15, "poly": [132.0, 1024.0, 836.0, 1024.0, 836.0, 1056.0, 132.0, 1056.0], "score": 0.99, "text": "be adapted to take advantage of the temporal dependencies"}, {"category_id": 15, "poly": [129.0, 1054.0, 838.0, 1054.0, 838.0, 1093.0, 129.0, 1093.0], "score": 0.97, "text": "available in stereo video sequences. Early proposed solutions"}, {"category_id": 15, "poly": [132.0, 1091.0, 836.0, 1091.0, 836.0, 1123.0, 132.0, 1123.0], "score": 0.99, "text": "to temporal stereo matching attempted to average matching"}, {"category_id": 15, "poly": [134.0, 1123.0, 836.0, 1123.0, 836.0, 1155.0, 134.0, 1155.0], "score": 0.99, "text": "costs across subsequent frames of a video sequence [13],"}, {"category_id": 15, "poly": [129.0, 1153.0, 841.0, 1150.0, 841.0, 1189.0, 129.0, 1192.0], "score": 0.98, "text": "[14]. Attempts have been made to integrate estimation of"}, {"category_id": 15, "poly": [134.0, 1192.0, 838.0, 1192.0, 838.0, 1224.0, 134.0, 1224.0], "score": 0.99, "text": "motion fields (optical flow) into temporal stereo matching. The"}, {"category_id": 15, "poly": [132.0, 1224.0, 838.0, 1224.0, 838.0, 1256.0, 132.0, 1256.0], "score": 0.99, "text": "methods of [15] and [16] perform smoothing of disparities"}, {"category_id": 15, "poly": [129.0, 1254.0, 841.0, 1254.0, 841.0, 1292.0, 129.0, 1292.0], "score": 0.99, "text": " along motion vectors recovered from the video sequence. The"}, {"category_id": 15, "poly": [132.0, 1290.0, 838.0, 1290.0, 838.0, 1322.0, 132.0, 1322.0], "score": 0.99, "text": "estimation of the motion field, however, prevents real-time"}, {"category_id": 15, "poly": [132.0, 1325.0, 838.0, 1325.0, 838.0, 1354.0, 132.0, 1354.0], "score": 0.99, "text": "implementation, since state-of-the-art optical flow algorithms"}, {"category_id": 15, "poly": [129.0, 1354.0, 841.0, 1354.0, 841.0, 1393.0, 129.0, 1393.0], "score": 0.99, "text": " do not, in general, approach real-time frame rates. In a related"}, {"category_id": 15, "poly": [129.0, 1386.0, 841.0, 1384.0, 841.0, 1423.0, 129.0, 1425.0], "score": 0.99, "text": "approach, Sizintsev and Wildes [17], [18] used steerable"}, {"category_id": 15, "poly": [134.0, 1423.0, 836.0, 1423.0, 836.0, 1455.0, 134.0, 1455.0], "score": 0.99, "text": "filters to obtain descriptors characterizing motion of image"}, {"category_id": 15, "poly": [134.0, 1455.0, 836.0, 1455.0, 836.0, 1487.0, 134.0, 1487.0], "score": 0.99, "text": "features in both space and time. Unlike traditional algorithms,"}, {"category_id": 15, "poly": [132.0, 1490.0, 838.0, 1490.0, 838.0, 1522.0, 132.0, 1522.0], "score": 0.98, "text": "their method performs matching on spatio-temporal motion"}, {"category_id": 15, "poly": [129.0, 1519.0, 841.0, 1517.0, 841.0, 1556.0, 129.0, 1558.0], "score": 0.99, "text": " descriptors, rather than on pure pixel intensity values, which"}, {"category_id": 15, "poly": [132.0, 1554.0, 841.0, 1554.0, 841.0, 1593.0, 132.0, 1593.0], "score": 0.99, "text": "leads to improved temporal coherence of disparity maps at the"}, {"category_id": 15, "poly": [132.0, 1586.0, 698.0, 1586.0, 698.0, 1618.0, 132.0, 1618.0], "score": 0.99, "text": "cost of reduced accuracy at depth discontinuities."}, {"category_id": 15, "poly": [159.0, 559.0, 838.0, 559.0, 838.0, 591.0, 159.0, 591.0], "score": 0.99, "text": "Recently, Rheman et al. [9], [10] have revisited the cost"}, {"category_id": 15, "poly": [132.0, 594.0, 838.0, 589.0, 839.0, 621.0, 132.0, 626.0], "score": 1.0, "text": "aggregation step of stereo algorithms, and demonstrated that"}, {"category_id": 15, "poly": [132.0, 626.0, 838.0, 626.0, 838.0, 658.0, 132.0, 658.0], "score": 0.99, "text": "cost aggregation can be performed by filtering of subsequent"}, {"category_id": 15, "poly": [134.0, 660.0, 834.0, 660.0, 834.0, 692.0, 134.0, 692.0], "score": 1.0, "text": "layers of the initially computed matching cost volume. In par-"}, {"category_id": 15, "poly": [132.0, 692.0, 836.0, 692.0, 836.0, 724.0, 132.0, 724.0], "score": 0.99, "text": "ticular, the edge-aware image filters, such as the bilateral filter"}, {"category_id": 15, "poly": [127.0, 719.0, 839.0, 724.0, 838.0, 761.0, 127.0, 756.0], "score": 0.99, "text": " of Tomasi and Manducci [11] or the guided filter of He [12],"}, {"category_id": 15, "poly": [132.0, 759.0, 838.0, 759.0, 838.0, 791.0, 132.0, 791.0], "score": 0.98, "text": "have been rendered useful for the problem of matching cost"}, {"category_id": 15, "poly": [132.0, 793.0, 838.0, 791.0, 838.0, 823.0, 132.0, 825.0], "score": 0.99, "text": "aggregation, enabling stereo algorithms to correctly recover"}, {"category_id": 15, "poly": [134.0, 825.0, 838.0, 825.0, 838.0, 857.0, 134.0, 857.0], "score": 0.98, "text": "disparities along object boundaries. In fact, Yoon and Kweon's"}, {"category_id": 15, "poly": [134.0, 859.0, 838.0, 859.0, 838.0, 891.0, 134.0, 891.0], "score": 1.0, "text": "adaptive support-weight cost aggregation scheme is equivalent"}, {"category_id": 15, "poly": [132.0, 891.0, 838.0, 891.0, 838.0, 924.0, 132.0, 924.0], "score": 0.98, "text": "to the application of the so-called joint bilateral filter to the"}, {"category_id": 15, "poly": [134.0, 924.0, 547.0, 924.0, 547.0, 956.0, 134.0, 956.0], "score": 1.0, "text": "layers of the matching cost volume."}, {"category_id": 15, "poly": [889.0, 422.0, 1568.0, 424.0, 1568.0, 456.0, 889.0, 454.0], "score": 0.98, "text": "The proposed temporal stereo matching algorithm is an"}, {"category_id": 15, "poly": [862.0, 456.0, 1571.0, 456.0, 1571.0, 495.0, 862.0, 495.0], "score": 1.0, "text": "extension of the real-time iterative adaptive support-weight"}, {"category_id": 15, "poly": [864.0, 490.0, 1568.0, 490.0, 1568.0, 522.0, 864.0, 522.0], "score": 0.99, "text": "algorithm described in [3]. In addition to real-time two-"}, {"category_id": 15, "poly": [864.0, 525.0, 1566.0, 525.0, 1566.0, 557.0, 864.0, 557.0], "score": 1.0, "text": "pass aggregation of the cost values in the spatial domain,"}, {"category_id": 15, "poly": [864.0, 557.0, 1568.0, 557.0, 1568.0, 589.0, 864.0, 589.0], "score": 0.99, "text": "the proposed algorithm enhances stereo matching on video"}, {"category_id": 15, "poly": [866.0, 594.0, 1566.0, 594.0, 1566.0, 626.0, 866.0, 626.0], "score": 0.97, "text": "sequences by aggregating costs along the time dimension."}, {"category_id": 15, "poly": [864.0, 626.0, 1568.0, 626.0, 1568.0, 658.0, 864.0, 658.0], "score": 1.0, "text": "The operation of the algorithm has been divided into four"}, {"category_id": 15, "poly": [866.0, 660.0, 1568.0, 660.0, 1568.0, 692.0, 866.0, 692.0], "score": 0.99, "text": "stages: 1) two-pass spatial cost aggregation, 2) temporal cost"}, {"category_id": 15, "poly": [862.0, 688.0, 1568.0, 685.0, 1568.0, 724.0, 862.0, 727.0], "score": 1.0, "text": "aggregation, 3) disparity selection and confidence assessment,"}, {"category_id": 15, "poly": [866.0, 724.0, 1568.0, 724.0, 1568.0, 756.0, 866.0, 756.0], "score": 1.0, "text": "and 4) iterative disparity refinement. In the following, each of"}, {"category_id": 15, "poly": [864.0, 759.0, 1254.0, 759.0, 1254.0, 791.0, 864.0, 791.0], "score": 1.0, "text": "these stages is described in detail."}, {"category_id": 15, "poly": [860.0, 1265.0, 1194.0, 1270.0, 1194.0, 1306.0, 859.0, 1301.0], "score": 0.99, "text": " color similarity, respectively."}, {"category_id": 15, "poly": [1433.0, 1169.0, 1566.0, 1169.0, 1566.0, 1201.0, 1433.0, 1201.0], "score": 0.98, "text": "is the color"}, {"category_id": 15, "poly": [864.0, 1169.0, 938.0, 1169.0, 938.0, 1201.0, 864.0, 1201.0], "score": 1.0, "text": "where"}, {"category_id": 15, "poly": [1040.0, 1169.0, 1334.0, 1169.0, 1334.0, 1201.0, 1040.0, 1201.0], "score": 0.98, "text": "is the geometric distance,"}, {"category_id": 15, "poly": [1517.0, 1196.0, 1566.0, 1201.0, 1566.0, 1240.0, 1517.0, 1235.0], "score": 1.0, "text": "and"}, {"category_id": 15, "poly": [862.0, 1196.0, 1158.0, 1201.0, 1158.0, 1240.0, 861.0, 1235.0], "score": 1.0, "text": "difference between pixels"}, {"category_id": 15, "poly": [894.0, 1233.0, 1566.0, 1231.0, 1566.0, 1270.0, 894.0, 1272.0], "score": 0.97, "text": "regulate the strength of grouping by geometric distance and"}, {"category_id": 15, "poly": [1179.0, 1196.0, 1229.0, 1201.0, 1229.0, 1240.0, 1179.0, 1235.0], "score": 1.0, "text": "and"}, {"category_id": 15, "poly": [1248.0, 1196.0, 1484.0, 1201.0, 1484.0, 1240.0, 1248.0, 1235.0], "score": 0.99, "text": ", and the coefficients"}, {"category_id": 15, "poly": [887.0, 848.0, 1568.0, 850.0, 1568.0, 889.0, 887.0, 887.0], "score": 0.99, "text": " Humans group shapes by observing the geometric distance"}, {"category_id": 15, "poly": [859.0, 885.0, 1568.0, 882.0, 1568.0, 921.0, 859.0, 924.0], "score": 0.98, "text": " and color similarity of points in space. To mimic this vi-"}, {"category_id": 15, "poly": [864.0, 921.0, 1568.0, 921.0, 1568.0, 953.0, 864.0, 953.0], "score": 0.99, "text": "sual grouping, the adaptive support-weight stereo matching"}, {"category_id": 15, "poly": [864.0, 1054.0, 899.0, 1054.0, 899.0, 1084.0, 864.0, 1084.0], "score": 1.0, "text": "by"}, {"category_id": 15, "poly": [866.0, 956.0, 1350.0, 956.0, 1350.0, 988.0, 866.0, 988.0], "score": 0.98, "text": "algorithm [4] considers a support window"}, {"category_id": 15, "poly": [1389.0, 956.0, 1566.0, 956.0, 1566.0, 988.0, 1389.0, 988.0], "score": 0.98, "text": " centered at the"}, {"category_id": 15, "poly": [952.0, 1022.0, 1370.0, 1022.0, 1370.0, 1054.0, 952.0, 1054.0], "score": 0.98, "text": ". The support weight relating pixels"}, {"category_id": 15, "poly": [1392.0, 1022.0, 1446.0, 1022.0, 1446.0, 1054.0, 1392.0, 1054.0], "score": 1.0, "text": "and"}, {"category_id": 15, "poly": [1466.0, 1022.0, 1566.0, 1022.0, 1566.0, 1054.0, 1466.0, 1054.0], "score": 0.98, "text": "is given"}, {"category_id": 15, "poly": [866.0, 990.0, 1049.0, 990.0, 1049.0, 1022.0, 866.0, 1022.0], "score": 1.0, "text": "pixel of interest"}, {"category_id": 15, "poly": [1069.0, 990.0, 1566.0, 990.0, 1566.0, 1022.0, 1069.0, 1022.0], "score": 1.0, "text": ", and assigns a support weight to each pixel"}, {"category_id": 15, "poly": [862.0, 1948.0, 1568.0, 1950.0, 1568.0, 1989.0, 861.0, 1987.0], "score": 0.98, "text": "vides additional robustness to outliers. Rather than evaluating"}, {"category_id": 15, "poly": [864.0, 1989.0, 1566.0, 1989.0, 1566.0, 2021.0, 864.0, 2021.0], "score": 0.98, "text": "Equation (2) directly, real-time algorithms often approximate"}, {"category_id": 15, "poly": [862.0, 1920.0, 1406.0, 1920.0, 1406.0, 1952.0, 862.0, 1952.0], "score": 0.99, "text": "This limits each of their magnitudes to at most"}, {"category_id": 15, "poly": [1426.0, 1920.0, 1561.0, 1920.0, 1561.0, 1952.0, 1426.0, 1952.0], "score": 0.96, "text": ",whichpro-"}, {"category_id": 15, "poly": [859.0, 1331.0, 1571.0, 1334.0, 1571.0, 1373.0, 859.0, 1370.0], "score": 0.98, "text": " iterative adaptive support-weight algorithm evaluates matching"}, {"category_id": 15, "poly": [859.0, 1464.0, 912.0, 1467.0, 912.0, 1506.0, 859.0, 1503.0], "score": 1.0, "text": "and"}, {"category_id": 15, "poly": [950.0, 1464.0, 1474.0, 1467.0, 1474.0, 1506.0, 950.0, 1503.0], "score": 1.0, "text": ", the initial matching cost is aggregated using"}, {"category_id": 15, "poly": [1442.0, 1370.0, 1530.0, 1370.0, 1530.0, 1402.0, 1442.0, 1402.0], "score": 0.98, "text": ", where"}, {"category_id": 15, "poly": [1197.0, 1437.0, 1527.0, 1437.0, 1527.0, 1469.0, 1197.0, 1469.0], "score": 0.97, "text": ", and their support windows"}, {"category_id": 15, "poly": [866.0, 1402.0, 1539.0, 1402.0, 1539.0, 1435.0, 866.0, 1435.0], "score": 1.0, "text": "denotes a set of matching candidates associated with pixel"}, {"category_id": 15, "poly": [864.0, 1437.0, 1100.0, 1437.0, 1100.0, 1469.0, 864.0, 1469.0], "score": 0.97, "text": "For a pair of pixels"}, {"category_id": 15, "poly": [1122.0, 1437.0, 1176.0, 1437.0, 1176.0, 1469.0, 1122.0, 1469.0], "score": 0.94, "text": " and"}, {"category_id": 15, "poly": [887.0, 1299.0, 1388.0, 1304.0, 1388.0, 1336.0, 887.0, 1331.0], "score": 0.96, "text": " To identify a match for the pixel of interest"}, {"category_id": 15, "poly": [1408.0, 1299.0, 1568.0, 1304.0, 1568.0, 1336.0, 1408.0, 1331.0], "score": 1.0, "text": ", the real-time"}, {"category_id": 15, "poly": [864.0, 1370.0, 1028.0, 1370.0, 1028.0, 1402.0, 864.0, 1402.0], "score": 1.0, "text": "costs between"}, {"category_id": 15, "poly": [1049.0, 1370.0, 1361.0, 1370.0, 1361.0, 1402.0, 1049.0, 1402.0], "score": 0.99, "text": " and every match candidate"}, {"category_id": 15, "poly": [160.0, 1618.0, 836.0, 1623.0, 836.0, 1655.0, 159.0, 1650.0], "score": 0.99, "text": "Most recently, local stereo algorithms based on edge-aware"}, {"category_id": 15, "poly": [127.0, 1650.0, 841.0, 1652.0, 841.0, 1691.0, 127.0, 1689.0], "score": 0.97, "text": " filters were extended to incorporate temporal evidence into"}, {"category_id": 15, "poly": [132.0, 1687.0, 836.0, 1687.0, 836.0, 1719.0, 132.0, 1719.0], "score": 0.97, "text": "the matching process. The method of Richardt et al. [19]"}, {"category_id": 15, "poly": [134.0, 1723.0, 838.0, 1723.0, 838.0, 1753.0, 134.0, 1753.0], "score": 0.99, "text": "employs a variant of the bilateral grid [20] implemented on"}, {"category_id": 15, "poly": [134.0, 1755.0, 838.0, 1755.0, 838.0, 1788.0, 134.0, 1788.0], "score": 0.99, "text": "graphics hardware, which accelerates cost aggregation and"}, {"category_id": 15, "poly": [134.0, 1788.0, 838.0, 1788.0, 838.0, 1820.0, 134.0, 1820.0], "score": 1.0, "text": "allows for weighted propagation of pixel dissimilarity metrics"}, {"category_id": 15, "poly": [132.0, 1822.0, 838.0, 1822.0, 838.0, 1854.0, 132.0, 1854.0], "score": 0.99, "text": "from previous frames to the current one. Although this method"}, {"category_id": 15, "poly": [129.0, 1856.0, 838.0, 1856.0, 838.0, 1888.0, 129.0, 1888.0], "score": 1.0, "text": " outperforms the baseline frame-to-frame approach, the amount"}, {"category_id": 15, "poly": [132.0, 1888.0, 838.0, 1888.0, 838.0, 1920.0, 132.0, 1920.0], "score": 0.97, "text": "of hardware memory necessary to construct the bilateral grid"}, {"category_id": 15, "poly": [127.0, 1916.0, 841.0, 1918.0, 841.0, 1957.0, 127.0, 1955.0], "score": 0.99, "text": "limits its application to single-channel, i.e., grayscale images "}, {"category_id": 15, "poly": [132.0, 1955.0, 838.0, 1955.0, 838.0, 1985.0, 132.0, 1985.0], "score": 0.99, "text": "only. Hosni et al. [10], on the other hand, reformulated kernels"}, {"category_id": 15, "poly": [132.0, 1989.0, 838.0, 1989.0, 838.0, 2021.0, 132.0, 2021.0], "score": 0.99, "text": "of the guided image filter to operate on both spatial and"}, {"category_id": 15, "poly": [859.0, 809.0, 1307.0, 809.0, 1307.0, 848.0, 859.0, 848.0], "score": 0.99, "text": "A. Two-Pass Spatial Cost Aggregation"}, {"category_id": 15, "poly": [1129.0, 376.0, 1300.0, 376.0, 1300.0, 417.0, 1129.0, 417.0], "score": 0.94, "text": "III. METHOD"}], "page_info": {"page_no": 1, "height": 2200, "width": 1700}}, {"layout_dets": [{"category_id": 1, "poly": [865.5088500976562, 856.5537109375, 1567.692626953125, 856.5537109375, 1567.692626953125, 1420.9698486328125, 865.5088500976562, 1420.9698486328125], "score": 0.9999963045120239}, {"category_id": 8, "poly": [281.1294860839844, 1001.0513916015625, 689.37451171875, 1001.0513916015625, 689.37451171875, 1075.8765869140625, 281.1294860839844, 1075.8765869140625], "score": 0.9999961256980896}, {"category_id": 1, "poly": [133.53353881835938, 158.6427459716797, 836.7297973632812, 158.6427459716797, 836.7297973632812, 390.48828125, 133.53353881835938, 390.48828125], "score": 0.9999960660934448}, {"category_id": 8, "poly": [145.77777099609375, 1839.6416015625, 803.4192504882812, 1839.6416015625, 803.4192504882812, 1993.239013671875, 145.77777099609375, 1993.239013671875], "score": 0.9999958872795105}, {"category_id": 1, "poly": [864.9884643554688, 1420.8831787109375, 1567.3118896484375, 1420.8831787109375, 1567.3118896484375, 2023.257080078125, 864.9884643554688, 2023.257080078125], "score": 0.9999951124191284}, {"category_id": 9, "poly": [1529.267333984375, 388.6717834472656, 1565.1744384765625, 388.6717834472656, 1565.1744384765625, 416.4899597167969, 1529.267333984375, 416.4899597167969], "score": 0.9999918937683105}, {"category_id": 9, "poly": [800.3933715820312, 1551.524169921875, 833.2618408203125, 1551.524169921875, 833.2618408203125, 1582.073486328125, 800.3933715820312, 1582.073486328125], "score": 0.9999911189079285}, {"category_id": 1, "poly": [864.3720092773438, 200.97483825683594, 1565.6871337890625, 200.97483825683594, 1565.6871337890625, 365.6230163574219, 864.3720092773438, 365.6230163574219], "score": 0.9999903440475464}, {"category_id": 1, "poly": [134.87628173828125, 1369.5762939453125, 835.0336303710938, 1369.5762939453125, 835.0336303710938, 1533.884765625, 134.87628173828125, 1533.884765625], "score": 0.9999880790710449}, {"category_id": 1, "poly": [134.59988403320312, 444.5299377441406, 836.5606079101562, 444.5299377441406, 836.5606079101562, 709.0791015625, 134.59988403320312, 709.0791015625], "score": 0.999987006187439}, {"category_id": 1, "poly": [134.15472412109375, 1084.4288330078125, 836.2360229492188, 1084.4288330078125, 836.2360229492188, 1314.6600341796875, 134.15472412109375, 1314.6600341796875], "score": 0.9999866485595703}, {"category_id": 9, "poly": [800.6007690429688, 1023.1047973632812, 833.2154541015625, 1023.1047973632812, 833.2154541015625, 1055.7227783203125, 800.6007690429688, 1055.7227783203125], "score": 0.9999839663505554}, {"category_id": 8, "poly": [948.4016723632812, 372.03607177734375, 1486.11279296875, 372.03607177734375, 1486.11279296875, 449.3696594238281, 948.4016723632812, 449.3696594238281], "score": 0.9999831914901733}, {"category_id": 8, "poly": [145.31065368652344, 714.4036254882812, 820.3599853515625, 714.4036254882812, 820.3599853515625, 791.855712890625, 145.31065368652344, 791.855712890625], "score": 0.9999772906303406}, {"category_id": 1, "poly": [863.8760986328125, 599.6033325195312, 1566.84619140625, 599.6033325195312, 1566.84619140625, 797.44189453125, 863.8760986328125, 797.44189453125], "score": 0.999976396560669}, {"category_id": 1, "poly": [864.925537109375, 464.9669189453125, 1565.212158203125, 464.9669189453125, 1565.212158203125, 529.045654296875, 864.925537109375, 529.045654296875], "score": 0.999973475933075}, {"category_id": 1, "poly": [133.88735961914062, 797.7457885742188, 835.5986328125, 797.7457885742188, 835.5986328125, 994.4456176757812, 133.88735961914062, 994.4456176757812], "score": 0.9999661445617676}, {"category_id": 1, "poly": [134.8787841796875, 1615.116455078125, 835.4554443359375, 1615.116455078125, 835.4554443359375, 1815.4564208984375, 134.8787841796875, 1815.4564208984375], "score": 0.9999580383300781}, {"category_id": 9, "poly": [1530.1783447265625, 550.1576538085938, 1564.607177734375, 550.1576538085938, 1564.607177734375, 578.6950073242188, 1530.1783447265625, 578.6950073242188], "score": 0.9999532103538513}, {"category_id": 9, "poly": [801.0740966796875, 738.4259643554688, 834.7449340820312, 738.4259643554688, 834.7449340820312, 770.4969482421875, 801.0740966796875, 770.4969482421875], "score": 0.9996598958969116}, {"category_id": 0, "poly": [1134.302490234375, 815.6021728515625, 1295.3885498046875, 815.6021728515625, 1295.3885498046875, 844.6544799804688, 1134.302490234375, 844.6544799804688], "score": 0.9994980096817017}, {"category_id": 9, "poly": [798.6090698242188, 1986.7332763671875, 834.5460205078125, 1986.7332763671875, 834.5460205078125, 2017.6595458984375, 798.6090698242188, 2017.6595458984375], "score": 0.9992558360099792}, {"category_id": 0, "poly": [135.0093994140625, 406.12335205078125, 475.6328125, 406.12335205078125, 475.6328125, 437.4545593261719, 135.0093994140625, 437.4545593261719], "score": 0.9990860819816589}, {"category_id": 8, "poly": [1029.3924560546875, 541.857177734375, 1400.174072265625, 541.857177734375, 1400.174072265625, 585.1640625, 1029.3924560546875, 585.1640625], "score": 0.9979717135429382}, {"category_id": 0, "poly": [133.26077270507812, 1330.139892578125, 713.5426635742188, 1330.139892578125, 713.5426635742188, 1363.1341552734375, 133.26077270507812, 1363.1341552734375], "score": 0.9967154860496521}, {"category_id": 8, "poly": [338.6681823730469, 1547.7218017578125, 626.6519775390625, 1547.7218017578125, 626.6519775390625, 1604.587646484375, 338.6681823730469, 1604.587646484375], "score": 0.9945433139801025}, {"category_id": 1, "poly": [864.5469970703125, 160.16702270507812, 1251.313720703125, 160.16702270507812, 1251.313720703125, 190.15760803222656, 864.5469970703125, 190.15760803222656], "score": 0.9902143478393555}, {"category_id": 13, "poly": [550, 577, 648, 577, 648, 612, 550, 612], "score": 0.95, "latex": "C_{a}(p,\\bar{p})"}, {"category_id": 13, "poly": [183, 1780, 304, 1780, 304, 1813, 183, 1813], "score": 0.95, "latex": "p^{\\prime}=m(\\bar{p})"}, {"category_id": 14, "poly": [279, 1000, 687, 1000, 687, 1078, 279, 1078], "score": 0.95, "latex": "w_{t}(p,p_{t-1})=\\exp\\bigg({-\\frac{\\Delta_{c}(p,p_{t-1})}{\\gamma_{t}}}\\bigg),"}, {"category_id": 14, "poly": [147, 1843, 820, 1843, 820, 1992, 147, 1992], "score": 0.94, "latex": "F_{p}=\\left\\{\\begin{array}{l l}{\\underset{\\bar{p}\\in S_{p}\\setminus m(p)}{\\mathrm{min}}\\,C(p,\\bar{p})-\\underset{\\bar{p}\\in S_{p}}{\\mathrm{min}}\\,C(p,\\bar{p})}\\\\ {\\underset{\\bar{p}\\in S_{p}\\setminus m(p)}{\\mathrm{min}}\\,C(p,\\bar{p})}&{|d_{p}-d_{p^{\\prime}}|\\leq1}\\\\ {0,}&{\\mathrm{otherwise}}\\end{array}\\right.."}, {"category_id": 14, "poly": [340, 1546, 628, 1546, 628, 1608, 340, 1608], "score": 0.93, "latex": "m(p)=\\underset{\\bar{p}\\in S_{p}}{\\mathrm{argmin}}\\,C(p,\\bar{p})\\,."}, {"category_id": 13, "poly": [321, 830, 443, 830, 443, 864, 321, 864], "score": 0.93, "latex": "w_{t}(p,p_{t-1})"}, {"category_id": 13, "poly": [581, 1713, 694, 1713, 694, 1747, 581, 1747], "score": 0.93, "latex": "{\\bar{p}}=m(p)"}, {"category_id": 14, "poly": [947, 373, 1478, 373, 1478, 454, 947, 454], "score": 0.93, "latex": "\\Lambda^{i}(p,\\bar{p})=\\alpha\\times\\sum_{q\\in\\Omega_{p}}w(p,q)F_{q}^{i-1}\\left|D_{q}^{i-1}-d_{p}\\right|\\,,"}, {"category_id": 13, "poly": [426, 445, 512, 445, 512, 479, 426, 479], "score": 0.93, "latex": "C(p,{\\bar{p}})"}, {"category_id": 13, "poly": [337, 356, 414, 356, 414, 391, 337, 391], "score": 0.93, "latex": "\\mathcal{O}(\\omega^{2})"}, {"category_id": 13, "poly": [1341, 730, 1565, 730, 1565, 765, 1341, 765], "score": 0.92, "latex": "C_{a}(p,\\bar{p})\\gets C(p,\\bar{p})"}, {"category_id": 13, "poly": [629, 1436, 691, 1436, 691, 1470, 629, 1470], "score": 0.92, "latex": "m(p)"}, {"category_id": 13, "poly": [277, 1469, 361, 1469, 361, 1504, 277, 1504], "score": 0.92, "latex": "\\bar{p}\\in S_{p}"}, {"category_id": 14, "poly": [1030, 541, 1398, 541, 1398, 582, 1030, 582], "score": 0.92, "latex": "C^{i}(p,\\bar{p})=C^{0}(p,\\bar{p})+{\\Lambda^{i}}(p,\\bar{p})\\,,"}, {"category_id": 13, "poly": [453, 356, 518, 356, 518, 391, 453, 391], "score": 0.91, "latex": "\\mathcal{O}(\\omega)"}, {"category_id": 14, "poly": [146, 714, 787, 714, 787, 791, 146, 791], "score": 0.91, "latex": "C(p,\\bar{p})\\gets\\frac{(1-\\lambda)\\cdot C(p,\\bar{p})+\\lambda\\cdot w_{t}(p,p_{t-1})\\cdot C_{a}(p,\\bar{p})}{(1-\\lambda)+\\lambda\\cdot w_{t}(p,p_{t-1})},"}, {"category_id": 13, "poly": [1095, 231, 1134, 231, 1134, 270, 1095, 270], "score": 0.9, "latex": "D_{p}^{i}"}, {"category_id": 13, "poly": [1313, 1752, 1447, 1752, 1447, 1783, 1313, 1783], "score": 0.89, "latex": "640~\\times~480"}, {"category_id": 13, "poly": [593, 1782, 627, 1782, 627, 1815, 593, 1815], "score": 0.89, "latex": "F_{p}"}, {"category_id": 13, "poly": [133, 326, 209, 326, 209, 355, 133, 355], "score": 0.88, "latex": "\\omega\\times\\omega"}, {"category_id": 13, "poly": [208, 1089, 236, 1089, 236, 1116, 208, 1116], "score": 0.85, "latex": "\\gamma_{t}"}, {"category_id": 13, "poly": [1466, 769, 1484, 769, 1484, 797, 1466, 797], "score": 0.83, "latex": "\\bar{p}"}, {"category_id": 13, "poly": [133, 935, 177, 935, 177, 963, 133, 963], "score": 0.83, "latex": "p_{t-1}"}, {"category_id": 13, "poly": [608, 1753, 627, 1753, 627, 1779, 608, 1779], "score": 0.81, "latex": "p"}, {"category_id": 13, "poly": [491, 799, 511, 799, 511, 825, 491, 825], "score": 0.81, "latex": "\\lambda"}, {"category_id": 13, "poly": [1018, 770, 1037, 770, 1037, 796, 1018, 796], "score": 0.81, "latex": "p"}, {"category_id": 13, "poly": [1086, 470, 1107, 470, 1107, 491, 1086, 491], "score": 0.8, "latex": "\\alpha"}, {"category_id": 13, "poly": [466, 901, 485, 901, 485, 929, 466, 929], "score": 0.8, "latex": "p"}, {"category_id": 13, "poly": [208, 484, 227, 484, 227, 511, 208, 511], "score": 0.79, "latex": "p"}, {"category_id": 13, "poly": [462, 1443, 480, 1443, 480, 1468, 462, 1468], "score": 0.77, "latex": "p"}, {"category_id": 13, "poly": [266, 514, 288, 514, 288, 544, 266, 544], "score": 0.77, "latex": "\\bar{p}"}, {"category_id": 13, "poly": [816, 1716, 836, 1716, 836, 1746, 816, 1746], "score": 0.73, "latex": "\\bar{p}"}, {"category_id": 13, "poly": [132, 405, 154, 405, 154, 432, 132, 432], "score": 0.27, "latex": "B"}, {"category_id": 13, "poly": [862, 160, 887, 160, 887, 187, 862, 187], "score": 0.26, "latex": "D"}, {"category_id": 15, "poly": [887.0, 852.0, 1568.0, 855.0, 1568.0, 894.0, 887.0, 891.0], "score": 0.98, "text": " The speed and accuracy of real-time stereo matching al-"}, {"category_id": 15, "poly": [864.0, 891.0, 1566.0, 891.0, 1566.0, 924.0, 864.0, 924.0], "score": 0.99, "text": "gorithms are traditionally demonstrated using still-frame im-"}, {"category_id": 15, "poly": [859.0, 921.0, 1571.0, 919.0, 1571.0, 958.0, 859.0, 960.0], "score": 0.97, "text": " ages from the Middlebury stereo benchmark [1], [2]. Still"}, {"category_id": 15, "poly": [862.0, 956.0, 1568.0, 958.0, 1568.0, 990.0, 862.0, 988.0], "score": 0.99, "text": "frames, however, are insufficient for evaluating stereo match-"}, {"category_id": 15, "poly": [864.0, 992.0, 1571.0, 992.0, 1571.0, 1024.0, 864.0, 1024.0], "score": 1.0, "text": "ing algorithms that incorporate frame-to-frame prediction to"}, {"category_id": 15, "poly": [864.0, 1027.0, 1568.0, 1027.0, 1568.0, 1059.0, 864.0, 1059.0], "score": 0.97, "text": "enhance matching accuracy. An alternative approach is to"}, {"category_id": 15, "poly": [864.0, 1059.0, 1566.0, 1059.0, 1566.0, 1089.0, 864.0, 1089.0], "score": 0.99, "text": "use a stereo video sequence with a ground truth disparity"}, {"category_id": 15, "poly": [862.0, 1091.0, 1566.0, 1091.0, 1566.0, 1123.0, 862.0, 1123.0], "score": 1.0, "text": "for each frame. Obtaining the ground truth disparity of real"}, {"category_id": 15, "poly": [866.0, 1125.0, 1566.0, 1125.0, 1566.0, 1157.0, 866.0, 1157.0], "score": 0.98, "text": "world video sequences is a difficult undertaking due to the"}, {"category_id": 15, "poly": [859.0, 1153.0, 1568.0, 1155.0, 1568.0, 1194.0, 859.0, 1192.0], "score": 0.99, "text": "high frame rate of video and limitations in depth sensing-"}, {"category_id": 15, "poly": [864.0, 1192.0, 1568.0, 1192.0, 1568.0, 1224.0, 864.0, 1224.0], "score": 0.99, "text": "technology. To address the need for stereo video with ground"}, {"category_id": 15, "poly": [864.0, 1224.0, 1568.0, 1224.0, 1568.0, 1256.0, 864.0, 1256.0], "score": 0.99, "text": "truth disparities, five pairs of synthetic stereo video sequences"}, {"category_id": 15, "poly": [864.0, 1258.0, 1568.0, 1258.0, 1568.0, 1290.0, 864.0, 1290.0], "score": 0.99, "text": "of a computer-generated scene were given in [19]. While these"}, {"category_id": 15, "poly": [864.0, 1290.0, 1566.0, 1290.0, 1566.0, 1322.0, 864.0, 1322.0], "score": 1.0, "text": "videos incorporate a sufficient amount of movement variation,"}, {"category_id": 15, "poly": [862.0, 1325.0, 1568.0, 1325.0, 1568.0, 1357.0, 862.0, 1357.0], "score": 0.99, "text": "they were generated from relatively simple models using low-"}, {"category_id": 15, "poly": [862.0, 1359.0, 1571.0, 1359.0, 1571.0, 1389.0, 862.0, 1389.0], "score": 0.99, "text": "resolution rendering, and they do not provide occlusion or"}, {"category_id": 15, "poly": [862.0, 1386.0, 1088.0, 1394.0, 1087.0, 1426.0, 861.0, 1418.0], "score": 0.98, "text": "discontinuity maps."}, {"category_id": 15, "poly": [129.0, 156.0, 839.0, 158.0, 838.0, 197.0, 129.0, 195.0], "score": 0.99, "text": "the matching cost by performing two-pass aggregation using"}, {"category_id": 15, "poly": [130.0, 188.0, 841.0, 193.0, 841.0, 229.0, 129.0, 225.0], "score": 0.98, "text": "two orthogonal 1D windows [5], [6], [8]. The two-pass method "}, {"category_id": 15, "poly": [129.0, 225.0, 841.0, 222.0, 841.0, 261.0, 129.0, 264.0], "score": 0.99, "text": "first aggregates matching costs in the vertical direction, and"}, {"category_id": 15, "poly": [134.0, 261.0, 838.0, 261.0, 838.0, 293.0, 134.0, 293.0], "score": 0.99, "text": "then computes a weighted sum of the aggregated costs in the"}, {"category_id": 15, "poly": [132.0, 291.0, 838.0, 291.0, 838.0, 330.0, 132.0, 330.0], "score": 0.99, "text": "horizontal direction. Given that support regions are of size"}, {"category_id": 15, "poly": [136.0, 360.0, 336.0, 360.0, 336.0, 392.0, 136.0, 392.0], "score": 0.99, "text": "aggregation from"}, {"category_id": 15, "poly": [415.0, 360.0, 452.0, 360.0, 452.0, 392.0, 415.0, 392.0], "score": 0.98, "text": "to"}, {"category_id": 15, "poly": [210.0, 321.0, 836.0, 321.0, 836.0, 360.0, 210.0, 360.0], "score": 0.98, "text": ", the two-pass method reduces the complexity of cost"}, {"category_id": 15, "poly": [887.0, 1416.0, 1571.0, 1419.0, 1571.0, 1458.0, 887.0, 1455.0], "score": 0.98, "text": " To evaluate the performance of temporal aggregation, a"}, {"category_id": 15, "poly": [862.0, 1453.0, 1566.0, 1453.0, 1566.0, 1485.0, 862.0, 1485.0], "score": 0.98, "text": "new synthetic stereo video sequence is introduced along with"}, {"category_id": 15, "poly": [862.0, 1490.0, 1566.0, 1487.0, 1566.0, 1519.0, 862.0, 1522.0], "score": 0.99, "text": "corresponding disparity maps, occlusion maps, and disconti-"}, {"category_id": 15, "poly": [862.0, 1519.0, 1571.0, 1519.0, 1571.0, 1558.0, 862.0, 1558.0], "score": 0.99, "text": "nuity maps for evaluating the performance of temporal stereo"}, {"category_id": 15, "poly": [864.0, 1556.0, 1568.0, 1556.0, 1568.0, 1588.0, 864.0, 1588.0], "score": 1.0, "text": "matching algorithms. To create the video sequence, a complex"}, {"category_id": 15, "poly": [864.0, 1590.0, 1568.0, 1590.0, 1568.0, 1620.0, 864.0, 1620.0], "score": 0.99, "text": "scene was constructed using Google Sketchup and a pair"}, {"category_id": 15, "poly": [864.0, 1622.0, 1568.0, 1622.0, 1568.0, 1655.0, 864.0, 1655.0], "score": 0.99, "text": "of animated paths were rendered photorealistically using the"}, {"category_id": 15, "poly": [859.0, 1650.0, 1571.0, 1652.0, 1571.0, 1691.0, 859.0, 1689.0], "score": 0.99, "text": " Kerkythea rendering software. Realistic material properties"}, {"category_id": 15, "poly": [864.0, 1689.0, 1566.0, 1689.0, 1566.0, 1721.0, 864.0, 1721.0], "score": 1.0, "text": "were used to give surfaces a natural-looking appearance by"}, {"category_id": 15, "poly": [864.0, 1723.0, 1566.0, 1723.0, 1566.0, 1755.0, 864.0, 1755.0], "score": 0.98, "text": "adjusting their specularity, reflectance, and diffusion. The"}, {"category_id": 15, "poly": [864.0, 1788.0, 1568.0, 1788.0, 1568.0, 1820.0, 864.0, 1820.0], "score": 1.0, "text": "frame rate of 30 frames per second, and a duration of 4"}, {"category_id": 15, "poly": [862.0, 1817.0, 1568.0, 1820.0, 1568.0, 1859.0, 861.0, 1856.0], "score": 0.98, "text": "seconds. In addition to performing photorealistic rendering."}, {"category_id": 15, "poly": [864.0, 1856.0, 1568.0, 1856.0, 1568.0, 1888.0, 864.0, 1888.0], "score": 0.99, "text": "depth renders of both video sequences were also generated and"}, {"category_id": 15, "poly": [864.0, 1888.0, 1566.0, 1888.0, 1566.0, 1920.0, 864.0, 1920.0], "score": 0.98, "text": "converted to ground truth disparity for the stereo video. The"}, {"category_id": 15, "poly": [862.0, 1920.0, 1564.0, 1920.0, 1564.0, 1952.0, 862.0, 1952.0], "score": 0.99, "text": "video sequences and ground truth data have been made avail-"}, {"category_id": 15, "poly": [862.0, 1950.0, 1566.0, 1953.0, 1566.0, 1985.0, 862.0, 1982.0], "score": 0.99, "text": "able at http://mc2.unl.edu/current-research"}, {"category_id": 15, "poly": [866.0, 1989.0, 1566.0, 1989.0, 1566.0, 2019.0, 866.0, 2019.0], "score": 0.98, "text": "/ image-processing/. Figure 2 shows two sample frames"}, {"category_id": 15, "poly": [862.0, 1755.0, 1312.0, 1755.0, 1312.0, 1788.0, 862.0, 1788.0], "score": 0.97, "text": "video sequence has a resolution of "}, {"category_id": 15, "poly": [1448.0, 1755.0, 1566.0, 1755.0, 1566.0, 1788.0, 1448.0, 1788.0], "score": 0.99, "text": "pixels,a"}, {"category_id": 15, "poly": [889.0, 197.0, 1566.0, 199.0, 1566.0, 238.0, 889.0, 236.0], "score": 1.0, "text": "Once the first iteration of stereo matching is complete,"}, {"category_id": 15, "poly": [864.0, 268.0, 1566.0, 268.0, 1566.0, 300.0, 864.0, 300.0], "score": 0.99, "text": "subsequent iterations. This is done by penalizing disparities"}, {"category_id": 15, "poly": [864.0, 302.0, 1568.0, 302.0, 1568.0, 335.0, 864.0, 335.0], "score": 1.0, "text": "that deviate from their expected values. The penalty function"}, {"category_id": 15, "poly": [862.0, 337.0, 996.0, 337.0, 996.0, 369.0, 862.0, 369.0], "score": 0.97, "text": "is given by"}, {"category_id": 15, "poly": [864.0, 236.0, 1094.0, 236.0, 1094.0, 268.0, 864.0, 268.0], "score": 0.96, "text": "disparityestimates"}, {"category_id": 15, "poly": [1135.0, 236.0, 1568.0, 236.0, 1568.0, 268.0, 1135.0, 268.0], "score": 0.97, "text": " can be used to guide matching in"}, {"category_id": 15, "poly": [157.0, 1366.0, 839.0, 1368.0, 838.0, 1407.0, 157.0, 1405.0], "score": 1.0, "text": "Having performed temporal cost aggregation, matches are"}, {"category_id": 15, "poly": [134.0, 1405.0, 834.0, 1405.0, 834.0, 1437.0, 134.0, 1437.0], "score": 0.99, "text": "determined using the Winner-Takes-All (WTA) match selec-"}, {"category_id": 15, "poly": [132.0, 1506.0, 374.0, 1506.0, 374.0, 1538.0, 132.0, 1538.0], "score": 1.0, "text": "cost, and is given by"}, {"category_id": 15, "poly": [692.0, 1439.0, 834.0, 1439.0, 834.0, 1471.0, 692.0, 1471.0], "score": 0.99, "text": ", is the can-"}, {"category_id": 15, "poly": [134.0, 1474.0, 276.0, 1474.0, 276.0, 1506.0, 134.0, 1506.0], "score": 0.98, "text": "didate pixel"}, {"category_id": 15, "poly": [362.0, 1474.0, 836.0, 1474.0, 836.0, 1506.0, 362.0, 1506.0], "score": 0.99, "text": " characterized by the minimum matching"}, {"category_id": 15, "poly": [134.0, 1439.0, 461.0, 1439.0, 461.0, 1471.0, 134.0, 1471.0], "score": 1.0, "text": "tion criteria. The match for"}, {"category_id": 15, "poly": [481.0, 1439.0, 628.0, 1439.0, 628.0, 1471.0, 481.0, 1471.0], "score": 0.96, "text": ", denoted as"}, {"category_id": 15, "poly": [134.0, 548.0, 838.0, 545.0, 838.0, 577.0, 134.0, 580.0], "score": 0.99, "text": "aggregation routine is exectuted. At each time instance, the"}, {"category_id": 15, "poly": [134.0, 614.0, 834.0, 614.0, 834.0, 646.0, 134.0, 646.0], "score": 1.0, "text": "weighted summation of costs obtained in the previous frames."}, {"category_id": 15, "poly": [132.0, 646.0, 838.0, 644.0, 838.0, 676.0, 132.0, 678.0], "score": 1.0, "text": "During temporal aggregation, the auxiliary cost is merged with"}, {"category_id": 15, "poly": [132.0, 678.0, 675.0, 681.0, 674.0, 713.0, 132.0, 710.0], "score": 0.99, "text": "the cost obtained from the current frame using"}, {"category_id": 15, "poly": [134.0, 580.0, 549.0, 580.0, 549.0, 612.0, 134.0, 612.0], "score": 1.0, "text": "algorithm stores an auxiliary cost"}, {"category_id": 15, "poly": [649.0, 580.0, 841.0, 580.0, 841.0, 612.0, 649.0, 612.0], "score": 0.96, "text": "which holds a"}, {"category_id": 15, "poly": [157.0, 445.0, 425.0, 442.0, 425.0, 481.0, 157.0, 484.0], "score": 0.98, "text": " Once aggregated costs"}, {"category_id": 15, "poly": [513.0, 445.0, 838.0, 442.0, 838.0, 481.0, 513.0, 484.0], "score": 0.96, "text": " have been computed for all"}, {"category_id": 15, "poly": [132.0, 481.0, 207.0, 481.0, 207.0, 513.0, 132.0, 513.0], "score": 1.0, "text": "pixels"}, {"category_id": 15, "poly": [228.0, 481.0, 838.0, 481.0, 838.0, 513.0, 228.0, 513.0], "score": 0.97, "text": " in the reference image and their respective matching"}, {"category_id": 15, "poly": [134.0, 516.0, 265.0, 516.0, 265.0, 548.0, 134.0, 548.0], "score": 1.0, "text": "candidates"}, {"category_id": 15, "poly": [289.0, 516.0, 838.0, 516.0, 838.0, 548.0, 289.0, 548.0], "score": 0.98, "text": " in the target image, a single-pass temporal"}, {"category_id": 15, "poly": [132.0, 1116.0, 841.0, 1116.0, 841.0, 1155.0, 132.0, 1155.0], "score": 0.99, "text": "in the temporal dimension. The temporal adaptive weight has "}, {"category_id": 15, "poly": [134.0, 1153.0, 838.0, 1153.0, 838.0, 1185.0, 134.0, 1185.0], "score": 0.99, "text": "the effect of preserving edges in the temporal domain, such"}, {"category_id": 15, "poly": [132.0, 1182.0, 836.0, 1182.0, 836.0, 1215.0, 132.0, 1215.0], "score": 0.98, "text": "that when a pixel coordinate transitions from one side of an"}, {"category_id": 15, "poly": [134.0, 1219.0, 838.0, 1219.0, 838.0, 1251.0, 134.0, 1251.0], "score": 0.98, "text": "edge to another in subsequent frames, the auxiliary cost is"}, {"category_id": 15, "poly": [134.0, 1254.0, 838.0, 1254.0, 838.0, 1283.0, 134.0, 1283.0], "score": 0.99, "text": "assigned a small weight and the majority of the cost is derived"}, {"category_id": 15, "poly": [130.0, 1283.0, 404.0, 1286.0, 404.0, 1318.0, 129.0, 1315.0], "score": 1.0, "text": "from the current frame."}, {"category_id": 15, "poly": [134.0, 1086.0, 207.0, 1086.0, 207.0, 1118.0, 134.0, 1118.0], "score": 0.99, "text": "where"}, {"category_id": 15, "poly": [237.0, 1086.0, 836.0, 1086.0, 836.0, 1118.0, 237.0, 1118.0], "score": 0.99, "text": "regulates the strength of grouping by color similarity"}, {"category_id": 15, "poly": [864.0, 600.0, 1568.0, 600.0, 1568.0, 632.0, 864.0, 632.0], "score": 1.0, "text": "and the matches are reselected using the WTA match selection"}, {"category_id": 15, "poly": [864.0, 635.0, 1568.0, 635.0, 1568.0, 667.0, 864.0, 667.0], "score": 0.99, "text": "criteria. The resulting disparity maps are then post-processed"}, {"category_id": 15, "poly": [864.0, 669.0, 1564.0, 669.0, 1564.0, 699.0, 864.0, 699.0], "score": 0.98, "text": "using a combination of median filtering and occlusion filling."}, {"category_id": 15, "poly": [864.0, 701.0, 1566.0, 701.0, 1566.0, 731.0, 864.0, 731.0], "score": 0.98, "text": "Finally, the current cost becomes the auxiliary cost for the next"}, {"category_id": 15, "poly": [862.0, 731.0, 1340.0, 731.0, 1340.0, 770.0, 862.0, 770.0], "score": 0.99, "text": "pair of frames in the video sequence, i.e.,"}, {"category_id": 15, "poly": [864.0, 768.0, 1017.0, 768.0, 1017.0, 800.0, 864.0, 800.0], "score": 1.0, "text": "for all pixels"}, {"category_id": 15, "poly": [1038.0, 768.0, 1465.0, 768.0, 1465.0, 800.0, 1038.0, 800.0], "score": 0.98, "text": " in the and their matching candidates"}, {"category_id": 15, "poly": [864.0, 502.0, 1427.0, 502.0, 1427.0, 532.0, 864.0, 532.0], "score": 1.0, "text": "values are incorporated into the matching cost as"}, {"category_id": 15, "poly": [864.0, 468.0, 1085.0, 468.0, 1085.0, 500.0, 864.0, 500.0], "score": 0.96, "text": "where the value of"}, {"category_id": 15, "poly": [1108.0, 468.0, 1564.0, 468.0, 1564.0, 500.0, 1108.0, 500.0], "score": 0.99, "text": "is chosen empirically. Next, the penalty"}, {"category_id": 15, "poly": [134.0, 866.0, 838.0, 866.0, 838.0, 898.0, 134.0, 898.0], "score": 0.99, "text": "temporal domain. The temporal adaptive weight computed"}, {"category_id": 15, "poly": [132.0, 967.0, 263.0, 967.0, 263.0, 999.0, 132.0, 999.0], "score": 0.93, "text": "is given by"}, {"category_id": 15, "poly": [134.0, 834.0, 320.0, 834.0, 320.0, 866.0, 134.0, 866.0], "score": 0.97, "text": "smoothing and"}, {"category_id": 15, "poly": [444.0, 834.0, 836.0, 834.0, 836.0, 866.0, 444.0, 866.0], "score": 0.92, "text": " enforces color similarity in the"}, {"category_id": 15, "poly": [178.0, 930.0, 838.0, 928.0, 839.0, 967.0, 178.0, 969.0], "score": 0.99, "text": ", located at the same spatial coordinate in the prior frame,"}, {"category_id": 15, "poly": [132.0, 795.0, 490.0, 800.0, 490.0, 832.0, 132.0, 827.0], "score": 0.99, "text": "where the feedback coefficient"}, {"category_id": 15, "poly": [512.0, 795.0, 836.0, 800.0, 836.0, 832.0, 512.0, 827.0], "score": 0.97, "text": " controls the amount of cost"}, {"category_id": 15, "poly": [136.0, 898.0, 465.0, 898.0, 465.0, 930.0, 136.0, 930.0], "score": 0.99, "text": "between the pixel of interest"}, {"category_id": 15, "poly": [486.0, 898.0, 838.0, 898.0, 838.0, 930.0, 486.0, 930.0], "score": 1.0, "text": "in the current frame and pixel"}, {"category_id": 15, "poly": [159.0, 1616.0, 836.0, 1616.0, 836.0, 1648.0, 159.0, 1648.0], "score": 0.99, "text": "To asses the level of confidence associated with selecting"}, {"category_id": 15, "poly": [132.0, 1648.0, 836.0, 1650.0, 836.0, 1682.0, 132.0, 1680.0], "score": 1.0, "text": "minimum cost matches, the algorithm determines another set"}, {"category_id": 15, "poly": [134.0, 1684.0, 838.0, 1684.0, 838.0, 1716.0, 134.0, 1716.0], "score": 1.0, "text": "of matches, this time from the target to reference image, and"}, {"category_id": 15, "poly": [134.0, 1783.0, 182.0, 1783.0, 182.0, 1815.0, 134.0, 1815.0], "score": 1.0, "text": "and"}, {"category_id": 15, "poly": [136.0, 1714.0, 580.0, 1714.0, 580.0, 1746.0, 136.0, 1746.0], "score": 0.98, "text": "verifies if the results agree. Given that"}, {"category_id": 15, "poly": [305.0, 1783.0, 592.0, 1783.0, 592.0, 1815.0, 305.0, 1815.0], "score": 0.99, "text": ", the confidence measure"}, {"category_id": 15, "poly": [628.0, 1783.0, 811.0, 1783.0, 811.0, 1815.0, 628.0, 1815.0], "score": 0.97, "text": "is computed as"}, {"category_id": 15, "poly": [132.0, 1746.0, 607.0, 1751.0, 607.0, 1783.0, 132.0, 1778.0], "score": 1.0, "text": "in the right image is the match for pixel"}, {"category_id": 15, "poly": [628.0, 1746.0, 836.0, 1751.0, 836.0, 1783.0, 628.0, 1778.0], "score": 0.98, "text": "in the left image,"}, {"category_id": 15, "poly": [695.0, 1714.0, 815.0, 1714.0, 815.0, 1746.0, 695.0, 1746.0], "score": 0.99, "text": ", i.e. pixel"}, {"category_id": 15, "poly": [1132.0, 814.0, 1298.0, 814.0, 1298.0, 852.0, 1132.0, 852.0], "score": 1.0, "text": "IV. RESULTS"}, {"category_id": 15, "poly": [155.0, 401.0, 481.0, 406.0, 480.0, 445.0, 155.0, 440.0], "score": 0.99, "text": "Temporal cost aggregation"}, {"category_id": 15, "poly": [129.0, 1325.0, 718.0, 1327.0, 718.0, 1366.0, 129.0, 1363.0], "score": 0.99, "text": "C. Disparity Selection and Confidence Assessment"}, {"category_id": 15, "poly": [888.0, 158.0, 1252.0, 158.0, 1252.0, 197.0, 888.0, 197.0], "score": 0.97, "text": "Iterative Disparity Refinement"}], "page_info": {"page_no": 2, "height": 2200, "width": 1700}}, {"layout_dets": [{"category_id": 1, "poly": [133.2669677734375, 156.7020721435547, 840.6729125976562, 156.7020721435547, 840.6729125976562, 257.75836181640625, 133.2669677734375, 257.75836181640625], "score": 0.9999951124191284}, {"category_id": 3, "poly": [866.177734375, 171.2958526611328, 1510.944580078125, 171.2958526611328, 1510.944580078125, 848.8190307617188, 866.177734375, 848.8190307617188], "score": 0.9999942779541016}, {"category_id": 1, "poly": [131.3756561279297, 1520.5887451171875, 838.545166015625, 1520.5887451171875, 838.545166015625, 1885.353515625, 131.3756561279297, 1885.353515625], "score": 0.9999925494194031}, {"category_id": 4, "poly": [131.56919860839844, 1352.6187744140625, 840.1758422851562, 1352.6187744140625, 840.1758422851562, 1490.513671875, 131.56919860839844, 1490.513671875], "score": 0.9999915361404419}, {"category_id": 1, "poly": [132.41786193847656, 1886.0615234375, 838.675537109375, 1886.0615234375, 838.675537109375, 2019.347412109375, 132.41786193847656, 2019.347412109375], "score": 0.9999526739120483}, {"category_id": 3, "poly": [136.71240234375, 278.259765625, 816.1984252929688, 278.259765625, 816.1984252929688, 1348.5758056640625, 136.71240234375, 1348.5758056640625], "score": 0.9999439120292664}, {"category_id": 1, "poly": [863.4852905273438, 1917.056884765625, 1569.6337890625, 1917.056884765625, 1569.6337890625, 2020.57421875, 863.4852905273438, 2020.57421875], "score": 0.9999344348907471}, {"category_id": 4, "poly": [861.7813720703125, 1749.4459228515625, 1567.659912109375, 1749.4459228515625, 1567.659912109375, 1852.389892578125, 861.7813720703125, 1852.389892578125], "score": 0.9986151456832886}, {"category_id": 3, "poly": [874.6467895507812, 1536.7642822265625, 1506.6514892578125, 1536.7642822265625, 1506.6514892578125, 1734.9659423828125, 874.6467895507812, 1734.9659423828125], "score": 0.9940656423568726}, {"category_id": 4, "poly": [859.3250122070312, 861.2320556640625, 1569.650634765625, 861.2320556640625, 1569.650634765625, 1033.0804443359375, 859.3250122070312, 1033.0804443359375], "score": 0.985899806022644}, {"category_id": 1, "poly": [861.6172485351562, 1064.186279296875, 1564.036865234375, 1064.186279296875, 1564.036865234375, 1135.5125732421875, 861.6172485351562, 1135.5125732421875], "score": 0.9128350019454956}, {"category_id": 3, "poly": [888.8074340820312, 1163.7965087890625, 1529.8028564453125, 1163.7965087890625, 1529.8028564453125, 1510.91162109375, 888.8074340820312, 1510.91162109375], "score": 0.7896175384521484}, {"category_id": 5, "poly": [900.75146484375, 1161.0631103515625, 1527.15673828125, 1161.0631103515625, 1527.15673828125, 1490.2149658203125, 900.75146484375, 1490.2149658203125], "score": 0.7772396802902222}, {"category_id": 0, "poly": [1178.85791015625, 152.25347900390625, 1284.6339111328125, 152.25347900390625, 1284.6339111328125, 179.1011962890625, 1178.85791015625, 179.1011962890625], "score": 0.5732811689376831}, {"category_id": 4, "poly": [1178.981689453125, 152.21678161621094, 1284.4158935546875, 152.21678161621094, 1284.4158935546875, 179.05447387695312, 1178.981689453125, 179.05447387695312], "score": 0.4503781795501709}, {"category_id": 13, "poly": [1295, 896, 1483, 896, 1483, 931, 1295, 931], "score": 0.93, "latex": "\\{\\pm0,\\pm20,\\pm40\\}"}, {"category_id": 13, "poly": [481, 1919, 534, 1919, 534, 1949, 481, 1949], "score": 0.87, "latex": "\\pm20"}, {"category_id": 13, "poly": [591, 1919, 644, 1919, 644, 1949, 591, 1949], "score": 0.87, "latex": "\\pm40"}, {"category_id": 13, "poly": [1227, 1436, 1253, 1436, 1253, 1459, 1227, 1459], "score": 0.86, "latex": "\\gamma_{c}"}, {"category_id": 13, "poly": [1295, 1436, 1323, 1436, 1323, 1461, 1295, 1461], "score": 0.85, "latex": "\\gamma_{g}"}, {"category_id": 13, "poly": [133, 1588, 186, 1588, 186, 1618, 133, 1618], "score": 0.85, "latex": "\\pm20"}, {"category_id": 13, "poly": [249, 1587, 302, 1587, 302, 1618, 249, 1618], "score": 0.84, "latex": "\\pm40"}, {"category_id": 13, "poly": [787, 1555, 828, 1555, 828, 1585, 787, 1585], "score": 0.82, "latex": "\\pm0"}, {"category_id": 13, "poly": [532, 1421, 572, 1421, 572, 1452, 532, 1452], "score": 0.81, "latex": "3^{\\mathrm{rd}}"}, {"category_id": 13, "poly": [230, 1389, 266, 1389, 266, 1419, 230, 1419], "score": 0.8, "latex": "1^{\\mathrm{st}}"}, {"category_id": 13, "poly": [655, 1986, 675, 1986, 675, 2013, 655, 2013], "score": 0.78, "latex": "\\lambda"}, {"category_id": 13, "poly": [200, 1455, 240, 1455, 240, 1486, 200, 1486], "score": 0.75, "latex": "4^{\\mathrm{th}}"}, {"category_id": 13, "poly": [954, 1255, 980, 1255, 980, 1275, 954, 1275], "score": 0.75, "latex": "\\gamma_{c}"}, {"category_id": 13, "poly": [954, 1281, 980, 1281, 980, 1302, 954, 1302], "score": 0.74, "latex": "\\gamma_{g}"}, {"category_id": 13, "poly": [959, 1227, 976, 1227, 976, 1245, 959, 1245], "score": 0.74, "latex": "\\tau"}, {"category_id": 13, "poly": [960, 1352, 976, 1352, 976, 1372, 960, 1372], "score": 0.72, "latex": "k"}, {"category_id": 13, "poly": [410, 1986, 430, 1986, 430, 2013, 410, 2013], "score": 0.7, "latex": "\\lambda"}, {"category_id": 13, "poly": [955, 1331, 979, 1331, 979, 1351, 955, 1351], "score": 0.7, "latex": "\\gamma_{t}"}, {"category_id": 13, "poly": [1489, 1752, 1510, 1752, 1510, 1778, 1489, 1778], "score": 0.69, "latex": "\\lambda"}, {"category_id": 13, "poly": [1176, 965, 1195, 965, 1195, 992, 1176, 992], "score": 0.69, "latex": "\\lambda"}, {"category_id": 13, "poly": [246, 1421, 289, 1421, 289, 1452, 246, 1452], "score": 0.69, "latex": "2^{\\mathrm{nd}}"}, {"category_id": 13, "poly": [958, 1302, 977, 1302, 977, 1323, 958, 1323], "score": 0.63, "latex": "\\lambda"}, {"category_id": 13, "poly": [959, 1380, 977, 1380, 977, 1397, 959, 1397], "score": 0.58, "latex": "\\alpha"}, {"category_id": 13, "poly": [436, 1621, 455, 1621, 455, 1648, 436, 1648], "score": 0.58, "latex": "\\lambda"}, {"category_id": 13, "poly": [959, 1204, 977, 1204, 977, 1219, 959, 1219], "score": 0.42, "latex": "\\omega"}, {"category_id": 13, "poly": [870, 1592, 890, 1592, 890, 1617, 870, 1617], "score": 0.31, "latex": "\\lambda"}, {"category_id": 15, "poly": [134.0, 160.0, 836.0, 160.0, 836.0, 192.0, 134.0, 192.0], "score": 0.99, "text": "of the synthetic stereo scene from a single camera perspective,"}, {"category_id": 15, "poly": [134.0, 195.0, 838.0, 195.0, 838.0, 227.0, 134.0, 227.0], "score": 0.99, "text": "along with the ground truth disparity, occlusion map, and"}, {"category_id": 15, "poly": [130.0, 222.0, 347.0, 230.0, 346.0, 264.0, 129.0, 256.0], "score": 0.99, "text": "discontinuity map."}, {"category_id": 15, "poly": [155.0, 1517.0, 841.0, 1519.0, 841.0, 1558.0, 155.0, 1556.0], "score": 0.99, "text": " The results of temporal stereo matching are given in Figure"}, {"category_id": 15, "poly": [132.0, 1657.0, 838.0, 1657.0, 838.0, 1689.0, 132.0, 1689.0], "score": 0.99, "text": "stereo matching methods, improvements are negligible when"}, {"category_id": 15, "poly": [132.0, 1691.0, 838.0, 1691.0, 838.0, 1723.0, 132.0, 1723.0], "score": 0.99, "text": "no noise is added to the images [10], [19]. This is largely due"}, {"category_id": 15, "poly": [132.0, 1723.0, 836.0, 1723.0, 836.0, 1753.0, 132.0, 1753.0], "score": 0.98, "text": "to the fact that the video used to evaluate these methods is"}, {"category_id": 15, "poly": [129.0, 1753.0, 838.0, 1751.0, 839.0, 1790.0, 129.0, 1792.0], "score": 0.99, "text": " computer generated with very little noise to start with, thus"}, {"category_id": 15, "poly": [134.0, 1790.0, 836.0, 1790.0, 836.0, 1822.0, 134.0, 1822.0], "score": 0.99, "text": "the noise suppression achieved with temporal stereo matching"}, {"category_id": 15, "poly": [132.0, 1817.0, 839.0, 1822.0, 838.0, 1859.0, 132.0, 1854.0], "score": 0.99, "text": "shows little to no improvement over methods that operate on"}, {"category_id": 15, "poly": [130.0, 1856.0, 319.0, 1859.0, 318.0, 1891.0, 129.0, 1888.0], "score": 0.99, "text": "pairs of images."}, {"category_id": 15, "poly": [187.0, 1590.0, 248.0, 1590.0, 248.0, 1622.0, 187.0, 1622.0], "score": 0.87, "text": ",and"}, {"category_id": 15, "poly": [303.0, 1590.0, 838.0, 1590.0, 838.0, 1622.0, 303.0, 1622.0], "score": 0.98, "text": ". Each performance plot is given as a function"}, {"category_id": 15, "poly": [127.0, 1551.0, 786.0, 1554.0, 786.0, 1593.0, 127.0, 1590.0], "score": 0.98, "text": " 3 for uniform additive noise confined to the ranges of"}, {"category_id": 15, "poly": [134.0, 1622.0, 435.0, 1622.0, 435.0, 1655.0, 134.0, 1655.0], "score": 0.99, "text": "of the feedback coefficient"}, {"category_id": 15, "poly": [456.0, 1622.0, 836.0, 1622.0, 836.0, 1655.0, 456.0, 1655.0], "score": 0.97, "text": ". As with the majority of temporal"}, {"category_id": 15, "poly": [134.0, 1359.0, 834.0, 1359.0, 834.0, 1391.0, 134.0, 1391.0], "score": 0.99, "text": "Figure 2: Two sample frames from the synthetic video se-"}, {"category_id": 15, "poly": [573.0, 1418.0, 836.0, 1421.0, 836.0, 1460.0, 573.0, 1457.0], "score": 1.0, "text": "row), and discontinuity"}, {"category_id": 15, "poly": [134.0, 1393.0, 229.0, 1393.0, 229.0, 1425.0, 134.0, 1425.0], "score": 0.96, "text": "quence ("}, {"category_id": 15, "poly": [267.0, 1393.0, 836.0, 1393.0, 836.0, 1425.0, 267.0, 1425.0], "score": 0.98, "text": "row), along with their corresponding ground truth"}, {"category_id": 15, "poly": [127.0, 1456.0, 199.0, 1450.0, 199.0, 1489.0, 128.0, 1495.0], "score": 0.91, "text": "map ("}, {"category_id": 15, "poly": [241.0, 1456.0, 309.0, 1450.0, 310.0, 1489.0, 241.0, 1495.0], "score": 1.0, "text": "row)."}, {"category_id": 15, "poly": [129.0, 1418.0, 245.0, 1421.0, 245.0, 1460.0, 129.0, 1457.0], "score": 0.93, "text": " disparity "}, {"category_id": 15, "poly": [290.0, 1418.0, 531.0, 1421.0, 531.0, 1460.0, 290.0, 1457.0], "score": 1.0, "text": "row), occlusion map ("}, {"category_id": 15, "poly": [159.0, 1888.0, 836.0, 1888.0, 836.0, 1920.0, 159.0, 1920.0], "score": 0.99, "text": " Significant improvements in accuracy can be seen in Figure"}, {"category_id": 15, "poly": [132.0, 1950.0, 839.0, 1955.0, 838.0, 1987.0, 132.0, 1982.0], "score": 1.0, "text": "the effect of noise in the current frame is reduced by increasing"}, {"category_id": 15, "poly": [134.0, 1920.0, 480.0, 1920.0, 480.0, 1952.0, 134.0, 1952.0], "score": 0.99, "text": "3 when the noise has ranges of"}, {"category_id": 15, "poly": [535.0, 1920.0, 590.0, 1920.0, 590.0, 1952.0, 535.0, 1952.0], "score": 0.92, "text": " and"}, {"category_id": 15, "poly": [645.0, 1920.0, 836.0, 1920.0, 836.0, 1952.0, 645.0, 1952.0], "score": 0.96, "text": ". In this scenario,"}, {"category_id": 15, "poly": [676.0, 1989.0, 838.0, 1989.0, 838.0, 2019.0, 676.0, 2019.0], "score": 0.98, "text": "has the effect"}, {"category_id": 15, "poly": [134.0, 1989.0, 409.0, 1989.0, 409.0, 2019.0, 134.0, 2019.0], "score": 1.0, "text": "the feedback coefficient"}, {"category_id": 15, "poly": [431.0, 1989.0, 654.0, 1989.0, 654.0, 2019.0, 431.0, 2019.0], "score": 0.97, "text": ". This increasing of"}, {"category_id": 15, "poly": [864.0, 1920.0, 1566.0, 1920.0, 1566.0, 1952.0, 864.0, 1952.0], "score": 0.98, "text": "of averaging out noise in the per-pixel costs by selecting"}, {"category_id": 15, "poly": [861.0, 1950.0, 1566.0, 1948.0, 1566.0, 1987.0, 862.0, 1989.0], "score": 0.98, "text": "matches based more heavily upon the auxiliary cost, which"}, {"category_id": 15, "poly": [862.0, 1989.0, 1568.0, 1989.0, 1568.0, 2021.0, 862.0, 2021.0], "score": 0.99, "text": "is essentially a much more stable running average of the cost"}, {"category_id": 15, "poly": [864.0, 1788.0, 1564.0, 1785.0, 1564.0, 1817.0, 864.0, 1820.0], "score": 0.99, "text": "responding to the smallest mean squared error (MSE) of the"}, {"category_id": 15, "poly": [864.0, 1822.0, 1427.0, 1822.0, 1427.0, 1854.0, 864.0, 1854.0], "score": 0.99, "text": "disparity estimates for a range of noise strengths."}, {"category_id": 15, "poly": [862.0, 1748.0, 1488.0, 1753.0, 1488.0, 1785.0, 861.0, 1781.0], "score": 0.99, "text": "Figure 4: Optimal values of the feedback coefficient "}, {"category_id": 15, "poly": [1511.0, 1748.0, 1561.0, 1753.0, 1561.0, 1785.0, 1511.0, 1781.0], "score": 0.96, "text": "cor-"}, {"category_id": 15, "poly": [864.0, 866.0, 1566.0, 866.0, 1566.0, 898.0, 864.0, 898.0], "score": 0.99, "text": "Figure 3: Performance of temporal matching at different levels"}, {"category_id": 15, "poly": [864.0, 935.0, 1566.0, 933.0, 1566.0, 965.0, 864.0, 967.0], "score": 0.98, "text": "squared error (MSE) of disparities is plotted versus the values"}, {"category_id": 15, "poly": [864.0, 1001.0, 1492.0, 1001.0, 1492.0, 1031.0, 864.0, 1031.0], "score": 0.99, "text": "values of MSE obtained without temporal aggregation."}, {"category_id": 15, "poly": [864.0, 901.0, 1294.0, 901.0, 1294.0, 933.0, 864.0, 933.0], "score": 0.99, "text": "of uniformly distributed image noise"}, {"category_id": 15, "poly": [1484.0, 901.0, 1568.0, 901.0, 1568.0, 933.0, 1484.0, 933.0], "score": 0.99, "text": ".Mean"}, {"category_id": 15, "poly": [864.0, 967.0, 1175.0, 967.0, 1175.0, 999.0, 864.0, 999.0], "score": 0.99, "text": "of the feedback coefficient"}, {"category_id": 15, "poly": [1196.0, 967.0, 1568.0, 967.0, 1568.0, 999.0, 1196.0, 999.0], "score": 0.99, "text": ". Dashed lines correspond to the"}, {"category_id": 15, "poly": [857.0, 1061.0, 1566.0, 1068.0, 1566.0, 1107.0, 857.0, 1100.0], "score": 0.99, "text": " Table I: Parameters used in the evaluation of real-time tempo-"}, {"category_id": 15, "poly": [859.0, 1102.0, 1093.0, 1105.0, 1092.0, 1137.0, 859.0, 1134.0], "score": 1.0, "text": "ral stereo matching."}, {"category_id": 15, "poly": [1178.0, 151.0, 1282.0, 151.0, 1282.0, 186.0, 1178.0, 186.0], "score": 1.0, "text": "Noise: \u00b10"}, {"category_id": 15, "poly": [1178.0, 151.0, 1282.0, 151.0, 1282.0, 186.0, 1178.0, 186.0], "score": 1.0, "text": "Noise: \u00b10"}], "page_info": {"page_no": 3, "height": 2200, "width": 1700}}, {"layout_dets": [{"category_id": 5, "poly": [880.81298828125, 613.750244140625, 1552.5638427734375, 613.750244140625, 1552.5638427734375, 855.9174194335938, 880.81298828125, 855.9174194335938], "score": 0.9999957084655762}, {"category_id": 1, "poly": [862.7925415039062, 158.05548095703125, 1569.6671142578125, 158.05548095703125, 1569.6671142578125, 456.6153869628906, 862.7925415039062, 456.6153869628906], "score": 0.9999922513961792}, {"category_id": 1, "poly": [864.6585083007812, 1061.7374267578125, 1570.4825439453125, 1061.7374267578125, 1570.4825439453125, 1459.7132568359375, 864.6585083007812, 1459.7132568359375], "score": 0.9999921321868896}, {"category_id": 1, "poly": [130.64285278320312, 1519.7022705078125, 836.2221069335938, 1519.7022705078125, 836.2221069335938, 1882.68359375, 130.64285278320312, 1882.68359375], "score": 0.9999898672103882}, {"category_id": 1, "poly": [133.1135711669922, 158.4307861328125, 837.9683837890625, 158.4307861328125, 837.9683837890625, 323.343017578125, 133.1135711669922, 323.343017578125], "score": 0.9999892115592957}, {"category_id": 4, "poly": [132.3511199951172, 1347.8763427734375, 839.7514038085938, 1347.8763427734375, 839.7514038085938, 1476.9757080078125, 132.3511199951172, 1476.9757080078125], "score": 0.9999880790710449}, {"category_id": 7, "poly": [887.6280517578125, 860.9362182617188, 1551.5972900390625, 860.9362182617188, 1551.5972900390625, 964.0142211914062, 887.6280517578125, 964.0142211914062], "score": 0.9999836683273315}, {"category_id": 1, "poly": [869.9986572265625, 1514.7762451171875, 1571.624755859375, 1514.7762451171875, 1571.624755859375, 2022.618896484375, 869.9986572265625, 2022.618896484375], "score": 0.9999811053276062}, {"category_id": 3, "poly": [164.82151794433594, 352.74810791015625, 805.8219604492188, 352.74810791015625, 805.8219604492188, 1320.43310546875, 164.82151794433594, 1320.43310546875], "score": 0.9999799728393555}, {"category_id": 0, "poly": [1137.668701171875, 1477.0120849609375, 1293.498046875, 1477.0120849609375, 1293.498046875, 1502.5439453125, 1137.668701171875, 1502.5439453125], "score": 0.9999679327011108}, {"category_id": 1, "poly": [133.0285186767578, 1886.7501220703125, 837.0147705078125, 1886.7501220703125, 837.0147705078125, 2018.0294189453125, 133.0285186767578, 2018.0294189453125], "score": 0.9999630451202393}, {"category_id": 0, "poly": [1114.8399658203125, 1022.4933471679688, 1317.0313720703125, 1022.4933471679688, 1317.0313720703125, 1052.679931640625, 1114.8399658203125, 1052.679931640625], "score": 0.9999338984489441}, {"category_id": 1, "poly": [862.0576171875, 480.8196105957031, 1565.8367919921875, 480.8196105957031, 1565.8367919921875, 577.5508422851562, 862.0576171875, 577.5508422851562], "score": 0.8958550691604614}, {"category_id": 6, "poly": [862.0606079101562, 480.7809753417969, 1565.667724609375, 480.7809753417969, 1565.667724609375, 577.4689331054688, 862.0606079101562, 577.4689331054688], "score": 0.4145430028438568}, {"category_id": 13, "poly": [736, 1445, 827, 1445, 827, 1475, 736, 1475], "score": 0.9, "latex": "\\lambda=0.8"}, {"category_id": 13, "poly": [1003, 887, 1105, 887, 1105, 911, 1003, 911], "score": 0.89, "latex": "320\\times240"}, {"category_id": 13, "poly": [338, 1446, 391, 1446, 391, 1475, 338, 1475], "score": 0.87, "latex": "\\pm30"}, {"category_id": 13, "poly": [166, 1619, 219, 1619, 219, 1649, 166, 1649], "score": 0.85, "latex": "\\pm40"}, {"category_id": 13, "poly": [301, 196, 329, 196, 329, 224, 301, 224], "score": 0.84, "latex": "\\gamma_{t}"}, {"category_id": 13, "poly": [795, 1586, 836, 1586, 836, 1616, 795, 1616], "score": 0.84, "latex": "\\pm0"}, {"category_id": 13, "poly": [1037, 939, 1059, 939, 1059, 960, 1037, 960], "score": 0.83, "latex": "\\%"}, {"category_id": 13, "poly": [462, 1586, 482, 1586, 482, 1613, 462, 1613], "score": 0.78, "latex": "\\lambda"}, {"category_id": 15, "poly": [862.0, 160.0, 1571.0, 160.0, 1571.0, 192.0, 862.0, 192.0], "score": 0.98, "text": "the proposed implementation achieves the highest speed of"}, {"category_id": 15, "poly": [864.0, 195.0, 1566.0, 195.0, 1566.0, 227.0, 864.0, 227.0], "score": 0.99, "text": "operation measured by the number of disparity hypotheses"}, {"category_id": 15, "poly": [864.0, 227.0, 1568.0, 227.0, 1568.0, 259.0, 864.0, 259.0], "score": 0.99, "text": "evaluated per second, as shown in Table I1. It is also the second"}, {"category_id": 15, "poly": [862.0, 261.0, 1568.0, 261.0, 1568.0, 293.0, 862.0, 293.0], "score": 0.99, "text": "most accurate real-time method in terms of error rate, as"}, {"category_id": 15, "poly": [864.0, 296.0, 1564.0, 296.0, 1564.0, 325.0, 864.0, 325.0], "score": 1.0, "text": "measured using the Middlebury stereo evaluation benchmark."}, {"category_id": 15, "poly": [859.0, 323.0, 1568.0, 325.0, 1568.0, 358.0, 859.0, 355.0], "score": 0.98, "text": " It should be noted that it is difficult to establish an unbiased"}, {"category_id": 15, "poly": [862.0, 358.0, 1566.0, 358.0, 1566.0, 390.0, 862.0, 390.0], "score": 1.0, "text": "metric for speed comparisons, as the architecture, number of"}, {"category_id": 15, "poly": [866.0, 394.0, 1568.0, 394.0, 1568.0, 426.0, 866.0, 426.0], "score": 0.98, "text": "cores, and clock speed of graphics hardware used are not"}, {"category_id": 15, "poly": [862.0, 424.0, 1259.0, 429.0, 1259.0, 461.0, 861.0, 456.0], "score": 0.99, "text": "consistent across implementations."}, {"category_id": 15, "poly": [889.0, 1061.0, 1571.0, 1061.0, 1571.0, 1100.0, 889.0, 1100.0], "score": 1.0, "text": "While the majority of stereo matching algorithms focus"}, {"category_id": 15, "poly": [859.0, 1093.0, 1571.0, 1095.0, 1571.0, 1134.0, 859.0, 1132.0], "score": 0.99, "text": " on achieving high accuracy on still images, the volume of"}, {"category_id": 15, "poly": [862.0, 1130.0, 1564.0, 1130.0, 1564.0, 1162.0, 862.0, 1162.0], "score": 0.99, "text": "research aimed at recovery of temporally consistent disparity"}, {"category_id": 15, "poly": [862.0, 1162.0, 1568.0, 1162.0, 1568.0, 1201.0, 862.0, 1201.0], "score": 0.99, "text": "maps remains disproportionally small. This paper introduces"}, {"category_id": 15, "poly": [862.0, 1196.0, 1568.0, 1196.0, 1568.0, 1235.0, 862.0, 1235.0], "score": 0.98, "text": "an efficient temporal cost aggregation scheme that can easily"}, {"category_id": 15, "poly": [859.0, 1226.0, 1571.0, 1228.0, 1571.0, 1267.0, 859.0, 1265.0], "score": 0.99, "text": "be combined with conventional spatial cost aggregation to"}, {"category_id": 15, "poly": [864.0, 1265.0, 1568.0, 1265.0, 1568.0, 1297.0, 864.0, 1297.0], "score": 1.0, "text": "improve the accuracy of stereo matching when operating on"}, {"category_id": 15, "poly": [864.0, 1297.0, 1568.0, 1297.0, 1568.0, 1329.0, 864.0, 1329.0], "score": 0.99, "text": "video sequences. A synthetic video sequence, along with"}, {"category_id": 15, "poly": [864.0, 1331.0, 1568.0, 1331.0, 1568.0, 1364.0, 864.0, 1364.0], "score": 0.99, "text": "ground truth disparity data, was generated to evaluate the"}, {"category_id": 15, "poly": [862.0, 1361.0, 1571.0, 1361.0, 1571.0, 1400.0, 862.0, 1400.0], "score": 0.98, "text": "performance of the proposed method. It was shown that"}, {"category_id": 15, "poly": [864.0, 1398.0, 1571.0, 1398.0, 1571.0, 1430.0, 864.0, 1430.0], "score": 0.98, "text": "temporal aggregation is significantly more robust to noise than"}, {"category_id": 15, "poly": [862.0, 1430.0, 1497.0, 1430.0, 1497.0, 1462.0, 862.0, 1462.0], "score": 0.99, "text": "a method that only considers the current stereo frames."}, {"category_id": 15, "poly": [157.0, 1517.0, 838.0, 1517.0, 838.0, 1556.0, 157.0, 1556.0], "score": 0.99, "text": "The optimal value of the feedback coefficient is largely"}, {"category_id": 15, "poly": [134.0, 1554.0, 836.0, 1554.0, 836.0, 1584.0, 134.0, 1584.0], "score": 0.97, "text": "dependent on the noise being added to the image. Figure 4"}, {"category_id": 15, "poly": [132.0, 1655.0, 838.0, 1655.0, 838.0, 1684.0, 132.0, 1684.0], "score": 0.99, "text": "rely on the auxiliary cost when noise is high and it is more"}, {"category_id": 15, "poly": [132.0, 1684.0, 839.0, 1689.0, 838.0, 1721.0, 132.0, 1716.0], "score": 0.98, "text": "beneficial to rely on the current cost when noise is low. Figure"}, {"category_id": 15, "poly": [132.0, 1719.0, 839.0, 1723.0, 838.0, 1755.0, 132.0, 1751.0], "score": 1.0, "text": "5 illustrates the improvements that are achieved when applying"}, {"category_id": 15, "poly": [134.0, 1755.0, 836.0, 1755.0, 836.0, 1785.0, 134.0, 1785.0], "score": 0.98, "text": "temporal stereo matching to a particular pair of frames in the"}, {"category_id": 15, "poly": [134.0, 1788.0, 834.0, 1788.0, 834.0, 1820.0, 134.0, 1820.0], "score": 1.0, "text": "synthetic video sequence. Clearly, the noise in the disparity"}, {"category_id": 15, "poly": [134.0, 1822.0, 836.0, 1822.0, 836.0, 1854.0, 134.0, 1854.0], "score": 0.99, "text": "map is drastically reduced when temporal stereo matching is"}, {"category_id": 15, "poly": [132.0, 1856.0, 196.0, 1856.0, 196.0, 1886.0, 132.0, 1886.0], "score": 1.0, "text": "used."}, {"category_id": 15, "poly": [132.0, 1620.0, 165.0, 1620.0, 165.0, 1652.0, 132.0, 1652.0], "score": 0.99, "text": "to"}, {"category_id": 15, "poly": [220.0, 1620.0, 838.0, 1620.0, 838.0, 1652.0, 220.0, 1652.0], "score": 0.98, "text": ". As intuition would suggest, it is more beneficial to"}, {"category_id": 15, "poly": [127.0, 1584.0, 461.0, 1581.0, 461.0, 1620.0, 127.0, 1623.0], "score": 0.96, "text": " shows the optimal values of"}, {"category_id": 15, "poly": [483.0, 1584.0, 794.0, 1581.0, 794.0, 1620.0, 483.0, 1623.0], "score": 0.99, "text": "for noise ranging between"}, {"category_id": 15, "poly": [134.0, 160.0, 836.0, 160.0, 836.0, 192.0, 134.0, 192.0], "score": 0.99, "text": "over the most recent frames. By maintaining a reasonably"}, {"category_id": 15, "poly": [134.0, 229.0, 836.0, 229.0, 836.0, 261.0, 134.0, 261.0], "score": 0.98, "text": "edges, essentially reducing over-smoothing of a pixel's dis-"}, {"category_id": 15, "poly": [132.0, 261.0, 838.0, 261.0, 838.0, 293.0, 132.0, 293.0], "score": 0.99, "text": "parity when a pixel transitions from one depth to another in"}, {"category_id": 15, "poly": [130.0, 293.0, 354.0, 296.0, 353.0, 328.0, 129.0, 325.0], "score": 1.0, "text": "subsequent frames."}, {"category_id": 15, "poly": [134.0, 192.0, 300.0, 192.0, 300.0, 225.0, 134.0, 225.0], "score": 0.93, "text": "high value of"}, {"category_id": 15, "poly": [330.0, 192.0, 836.0, 192.0, 836.0, 225.0, 330.0, 225.0], "score": 0.99, "text": ", the auxiliary cost also preserves temporal"}, {"category_id": 15, "poly": [132.0, 1345.0, 836.0, 1348.0, 836.0, 1382.0, 132.0, 1380.0], "score": 1.0, "text": "Figure 5: A comparison of stereo matching without temporal"}, {"category_id": 15, "poly": [132.0, 1382.0, 834.0, 1382.0, 834.0, 1414.0, 132.0, 1414.0], "score": 0.98, "text": "cost aggregation (top\uff09 and with temporal cost aggregation"}, {"category_id": 15, "poly": [134.0, 1416.0, 836.0, 1416.0, 836.0, 1446.0, 134.0, 1446.0], "score": 0.98, "text": "(bottom) for a single frame in the synthetic video sequence"}, {"category_id": 15, "poly": [134.0, 1448.0, 337.0, 1446.0, 337.0, 1478.0, 134.0, 1480.0], "score": 0.98, "text": "where the noise is"}, {"category_id": 15, "poly": [392.0, 1448.0, 735.0, 1446.0, 735.0, 1478.0, 392.0, 1480.0], "score": 0.99, "text": "and the feedback coefficient is"}, {"category_id": 15, "poly": [896.0, 855.0, 1324.0, 857.0, 1323.0, 896.0, 896.0, 894.0], "score": 0.95, "text": "1I Millions of Disparity Estimates per Second."}, {"category_id": 15, "poly": [903.0, 912.0, 1550.0, 912.0, 1550.0, 944.0, 903.0, 944.0], "score": 0.99, "text": "3 As measured by the Middlebury stereo performance benchmark using"}, {"category_id": 15, "poly": [901.0, 887.0, 1002.0, 887.0, 1002.0, 919.0, 901.0, 919.0], "score": 0.99, "text": "2Assumes"}, {"category_id": 15, "poly": [1106.0, 887.0, 1404.0, 887.0, 1404.0, 919.0, 1106.0, 919.0], "score": 0.98, "text": "images with 32 disparity levels."}, {"category_id": 15, "poly": [915.0, 937.0, 1036.0, 937.0, 1036.0, 969.0, 915.0, 969.0], "score": 0.96, "text": "the avgerage"}, {"category_id": 15, "poly": [1060.0, 937.0, 1192.0, 937.0, 1192.0, 969.0, 1060.0, 969.0], "score": 0.96, "text": "of bad pixels."}, {"category_id": 15, "poly": [873.0, 1515.0, 1571.0, 1515.0, 1571.0, 1545.0, 873.0, 1545.0], "score": 0.97, "text": "[1] D. Scharstein and R. Szeliski, \u201cA taxonomy and evaluation of dense "}, {"category_id": 15, "poly": [915.0, 1542.0, 1573.0, 1542.0, 1573.0, 1572.0, 915.0, 1572.0], "score": 0.98, "text": "two-frame stereo correspondence algorithms\u201d\u2019 International Journal of"}, {"category_id": 15, "poly": [915.0, 1565.0, 1409.0, 1565.0, 1409.0, 1597.0, 915.0, 1597.0], "score": 0.98, "text": "Computer Vision, vol. 47, pp. 7-42, April-June 2002."}, {"category_id": 15, "poly": [871.0, 1588.0, 1568.0, 1590.0, 1568.0, 1623.0, 871.0, 1620.0], "score": 0.98, "text": "[2] D. Scharstein and R. Szeliski, \u201cHigh-accuracy stereo depth maps using"}, {"category_id": 15, "poly": [915.0, 1616.0, 1568.0, 1616.0, 1568.0, 1648.0, 915.0, 1648.0], "score": 0.97, "text": "structured light,\u201d in In IEEE Computer Society Conference on Computer"}, {"category_id": 15, "poly": [915.0, 1641.0, 1508.0, 1641.0, 1508.0, 1673.0, 915.0, 1673.0], "score": 0.98, "text": "Vision and Pattern Recognition, vol. 1, pp. 195-202, June 2003."}, {"category_id": 15, "poly": [873.0, 1666.0, 1568.0, 1666.0, 1568.0, 1696.0, 873.0, 1696.0], "score": 0.99, "text": "[3] J. Kowalczuk, E. Psota, and L. Perez, \u201cReal-time stereo matching on"}, {"category_id": 15, "poly": [912.0, 1689.0, 1571.0, 1689.0, 1571.0, 1721.0, 912.0, 1721.0], "score": 0.98, "text": " CUDA using an iterative refinement method for adaptive support-weight"}, {"category_id": 15, "poly": [915.0, 1714.0, 1571.0, 1714.0, 1571.0, 1746.0, 915.0, 1746.0], "score": 0.99, "text": "correspondences,\u201d Circuits and Systems for Video Technology, IEEE"}, {"category_id": 15, "poly": [908.0, 1737.0, 1374.0, 1735.0, 1374.0, 1774.0, 908.0, 1776.0], "score": 0.96, "text": "Transactions on, vol. 23, Ppp. 94 -104, Jan. 2013."}, {"category_id": 15, "poly": [873.0, 1765.0, 1568.0, 1765.0, 1568.0, 1797.0, 873.0, 1797.0], "score": 0.99, "text": "[4] K.-J. Yoon and I.-S. Kweon, Locally adaptive support-weight approach"}, {"category_id": 15, "poly": [912.0, 1790.0, 1571.0, 1790.0, 1571.0, 1822.0, 912.0, 1822.0], "score": 0.97, "text": "for visual correspondence search,' in CVPR'05: Proceedings of the 2005"}, {"category_id": 15, "poly": [915.0, 1815.0, 1571.0, 1815.0, 1571.0, 1847.0, 915.0, 1847.0], "score": 0.96, "text": "IEEE Computer Society Conference on ComputerVision andPattern"}, {"category_id": 15, "poly": [915.0, 1840.0, 1568.0, 1840.0, 1568.0, 1872.0, 915.0, 1872.0], "score": 0.97, "text": "Recognition (CVPR'05) - Volume 2, (Washington, DC, USA), Pp. 924-"}, {"category_id": 15, "poly": [912.0, 1863.0, 1247.0, 1863.0, 1247.0, 1895.0, 912.0, 1895.0], "score": 0.98, "text": "931, IEEE Computer Society, 2005."}, {"category_id": 15, "poly": [873.0, 1891.0, 1568.0, 1891.0, 1568.0, 1923.0, 873.0, 1923.0], "score": 0.97, "text": "[5] L. Wang, M. Liao, M. Gong, R. Yang, and D. Nister, \u201cHigh-quality real-"}, {"category_id": 15, "poly": [912.0, 1916.0, 1566.0, 1916.0, 1566.0, 1946.0, 912.0, 1946.0], "score": 0.99, "text": "time stereo using adaptive cost aggregation and dynamic programming,\""}, {"category_id": 15, "poly": [910.0, 1936.0, 1568.0, 1939.0, 1568.0, 1971.0, 910.0, 1969.0], "score": 0.94, "text": "in 3DPVT'06:Proceedings of the Third International Symposium"}, {"category_id": 15, "poly": [915.0, 1964.0, 1568.0, 1964.0, 1568.0, 1996.0, 915.0, 1996.0], "score": 0.98, "text": "on 3D Data Processing, Visualization, and Transmission (3DPVT'06),"}, {"category_id": 15, "poly": [915.0, 1989.0, 1564.0, 1989.0, 1564.0, 2021.0, 915.0, 2021.0], "score": 1.0, "text": "(Washington, DC, USA), Pp. 798-805, IEEE Computer Society, 2006."}, {"category_id": 15, "poly": [1134.0, 1471.0, 1296.0, 1471.0, 1296.0, 1510.0, 1134.0, 1510.0], "score": 1.0, "text": "REFERENCES"}, {"category_id": 15, "poly": [159.0, 1888.0, 836.0, 1888.0, 836.0, 1920.0, 159.0, 1920.0], "score": 0.99, "text": "The algorithm was implement using NVIDIA's Compute"}, {"category_id": 15, "poly": [134.0, 1920.0, 834.0, 1920.0, 834.0, 1950.0, 134.0, 1950.0], "score": 0.98, "text": "Unified Device Architecture (CUDA). The details of the im-"}, {"category_id": 15, "poly": [129.0, 1948.0, 841.0, 1950.0, 841.0, 1989.0, 129.0, 1987.0], "score": 0.98, "text": " plementation are similar to those given in [3]. When compared "}, {"category_id": 15, "poly": [132.0, 1989.0, 836.0, 1989.0, 836.0, 2021.0, 132.0, 2021.0], "score": 0.99, "text": "to other existing real-time stereo matching implementations,"}, {"category_id": 15, "poly": [1111.0, 1022.0, 1317.0, 1022.0, 1317.0, 1061.0, 1111.0, 1061.0], "score": 1.0, "text": "V. CONCLUSION"}, {"category_id": 15, "poly": [864.0, 484.0, 1564.0, 484.0, 1564.0, 516.0, 864.0, 516.0], "score": 0.99, "text": "Table II: A comparison of speed and accuracy for the imple-"}, {"category_id": 15, "poly": [864.0, 518.0, 1564.0, 518.0, 1564.0, 550.0, 864.0, 550.0], "score": 0.99, "text": "mentations of many leading real-time stereo matching meth-"}, {"category_id": 15, "poly": [862.0, 550.0, 917.0, 550.0, 917.0, 584.0, 862.0, 584.0], "score": 0.96, "text": "ods."}, {"category_id": 15, "poly": [864.0, 484.0, 1564.0, 484.0, 1564.0, 516.0, 864.0, 516.0], "score": 0.99, "text": "Table II: A comparison of speed and accuracy for the imple-"}, {"category_id": 15, "poly": [864.0, 518.0, 1564.0, 518.0, 1564.0, 550.0, 864.0, 550.0], "score": 0.99, "text": "mentations of many leading real-time stereo matching meth-"}, {"category_id": 15, "poly": [862.0, 550.0, 917.0, 550.0, 917.0, 584.0, 862.0, 584.0], "score": 0.96, "text": "ods."}], "page_info": {"page_no": 4, "height": 2200, "width": 1700}}, {"layout_dets": [{"category_id": 1, "poly": [134.58497619628906, 157.681884765625, 841.3460693359375, 157.681884765625, 841.3460693359375, 1666.27001953125, 134.58497619628906, 1666.27001953125], "score": 0.9999936819076538}, {"category_id": 15, "poly": [143.0, 163.0, 838.0, 163.0, 838.0, 192.0, 143.0, 192.0], "score": 0.97, "text": "[6] W. Yu, T. Chen, F. Franchetti, and J. C. Hoe, \u201cHigh performance stereo"}, {"category_id": 15, "poly": [182.0, 188.0, 838.0, 188.0, 838.0, 218.0, 182.0, 218.0], "score": 0.98, "text": "vision designed for massively data parallel platforms,\u2019 Circuits and"}, {"category_id": 15, "poly": [182.0, 213.0, 841.0, 213.0, 841.0, 245.0, 182.0, 245.0], "score": 0.98, "text": "Systems for Video Technology, IEEE Transactions on, vol. 20, pp. 1509"}, {"category_id": 15, "poly": [182.0, 238.0, 411.0, 238.0, 411.0, 268.0, 182.0, 268.0], "score": 0.98, "text": "-1519, November 2010."}, {"category_id": 15, "poly": [143.0, 264.0, 838.0, 264.0, 838.0, 293.0, 143.0, 293.0], "score": 0.99, "text": "[7] S. Mattoccia, M. Viti, and F. Ries, \u201cNear real-time fast bilateral stereo"}, {"category_id": 15, "poly": [182.0, 289.0, 838.0, 289.0, 838.0, 319.0, 182.0, 319.0], "score": 0.96, "text": "on the GPU in Computer Vision and Pattern Recognition Workshops"}, {"category_id": 15, "poly": [178.0, 307.0, 841.0, 309.0, 841.0, 348.0, 178.0, 346.0], "score": 0.95, "text": "(CVPRW), 2011 IEEE Computer Society Conference on,Ppp. 136 -143,"}, {"category_id": 15, "poly": [185.0, 339.0, 289.0, 339.0, 289.0, 364.0, 185.0, 364.0], "score": 0.98, "text": "June 2011."}, {"category_id": 15, "poly": [141.0, 362.0, 838.0, 362.0, 838.0, 392.0, 141.0, 392.0], "score": 0.98, "text": "[8] K. Zhang, J. Lu, Q. Yang, G. Lafruit, R. Lauwereins, and L. Van Gool,"}, {"category_id": 15, "poly": [182.0, 387.0, 838.0, 387.0, 838.0, 419.0, 182.0, 419.0], "score": 0.98, "text": "\"Real-time and accurate stereo: A scalable approach with bitwise fast"}, {"category_id": 15, "poly": [185.0, 412.0, 838.0, 412.0, 838.0, 445.0, 185.0, 445.0], "score": 0.97, "text": "voting on CUDA,\u201d Circuits and Systems for Video Technology, IEEE"}, {"category_id": 15, "poly": [182.0, 438.0, 656.0, 438.0, 656.0, 468.0, 182.0, 468.0], "score": 0.99, "text": "Transactions on, vol. 21, pp. 867 -878, July 2011."}, {"category_id": 15, "poly": [141.0, 463.0, 838.0, 463.0, 838.0, 493.0, 141.0, 493.0], "score": 0.96, "text": "[9] C. Rhemann, A. Hosni, M. Bleyer, C. Rother, and M. Gelautz, \u201cFast cost-"}, {"category_id": 15, "poly": [182.0, 488.0, 838.0, 488.0, 838.0, 518.0, 182.0, 518.0], "score": 0.98, "text": "volume filtering for visual correspondence and beyond,\" in Computer"}, {"category_id": 15, "poly": [180.0, 509.0, 841.0, 511.0, 841.0, 543.0, 180.0, 541.0], "score": 0.95, "text": "Vision and Pattern Recognition (CVPR), 20ll IEEE Conference on,"}, {"category_id": 15, "poly": [180.0, 536.0, 448.0, 534.0, 448.0, 566.0, 180.0, 568.0], "score": 0.99, "text": "Pp. 3017 -3024, June 2011."}, {"category_id": 15, "poly": [134.0, 561.0, 838.0, 561.0, 838.0, 591.0, 134.0, 591.0], "score": 0.99, "text": "[10] A. Hosni, C. Rhemann, M. Bleyer, and M. Gelautz, \u201cTemporally con-"}, {"category_id": 15, "poly": [180.0, 587.0, 836.0, 587.0, 836.0, 616.0, 180.0, 616.0], "score": 0.99, "text": " sistent disparity and optical flow via efficient spatio-temporal filtering,\""}, {"category_id": 15, "poly": [182.0, 612.0, 838.0, 612.0, 838.0, 642.0, 182.0, 642.0], "score": 0.97, "text": "in Advances in Image and Video Technology (Y.-S. Ho, ed.), vol. 7087"}, {"category_id": 15, "poly": [180.0, 632.0, 845.0, 632.0, 845.0, 671.0, 180.0, 671.0], "score": 0.88, "text": "of Lectureotes inComputer Science,pp.16517,Springererlin /"}, {"category_id": 15, "poly": [182.0, 660.0, 353.0, 660.0, 353.0, 692.0, 182.0, 692.0], "score": 1.0, "text": "Heidelberg, 2012."}, {"category_id": 15, "poly": [134.0, 685.0, 838.0, 685.0, 838.0, 717.0, 134.0, 717.0], "score": 0.98, "text": "[11] C. Tomasi and R. Manduchi, \u201cBilateral filtering for gray and color"}, {"category_id": 15, "poly": [182.0, 710.0, 838.0, 710.0, 838.0, 742.0, 182.0, 742.0], "score": 0.98, "text": "images,\u201d in Computer Vision, 1998. Sixth International Conference on,"}, {"category_id": 15, "poly": [180.0, 736.0, 411.0, 731.0, 411.0, 763.0, 181.0, 768.0], "score": 0.93, "text": "pPp. 839 -846, jan 1998."}, {"category_id": 15, "poly": [132.0, 761.0, 838.0, 761.0, 838.0, 791.0, 132.0, 791.0], "score": 0.97, "text": "[12] K. He, J. Sun, and X. Tang, \u201cGuided image filtering,\u201d\u2019 in Computer"}, {"category_id": 15, "poly": [180.0, 784.0, 838.0, 786.0, 838.0, 818.0, 180.0, 816.0], "score": 0.98, "text": "Vision - ECCV 2010, vol. 6311 of Lecture Notes in Computer Science,"}, {"category_id": 15, "poly": [180.0, 811.0, 607.0, 807.0, 608.0, 839.0, 180.0, 843.0], "score": 0.98, "text": "pp. 1-14, Springer Berlin / Heidelberg, 2010."}, {"category_id": 15, "poly": [129.0, 832.0, 839.0, 837.0, 838.0, 869.0, 129.0, 864.0], "score": 0.98, "text": "[13] L. Zhang, B. Curless, and S. M. Seitz, \u201cSpacetime stereo: Shape"}, {"category_id": 15, "poly": [182.0, 862.0, 836.0, 862.0, 836.0, 891.0, 182.0, 891.0], "score": 0.98, "text": "recovery for dynamic scenes,\u201d in IEEE Computer Society Conference"}, {"category_id": 15, "poly": [182.0, 885.0, 834.0, 885.0, 834.0, 917.0, 182.0, 917.0], "score": 0.97, "text": "on Computer Vision and Pattern Recognition, pp. 367-374, June 2003."}, {"category_id": 15, "poly": [132.0, 910.0, 838.0, 910.0, 838.0, 940.0, 132.0, 940.0], "score": 0.98, "text": "[14] J. Davis, D. Nehab, R. Ramamoorthi, and S. Rusinkiewicz, \u201cSpacetime"}, {"category_id": 15, "poly": [182.0, 935.0, 838.0, 935.0, 838.0, 965.0, 182.0, 965.0], "score": 0.97, "text": "stereo: a unifying framework for depth from triangulation,\u201d\u2019 Pattern"}, {"category_id": 15, "poly": [182.0, 960.0, 838.0, 960.0, 838.0, 990.0, 182.0, 990.0], "score": 0.98, "text": "Analysis and Machine Intelligence, IEEE Transactions on,vol. 27,"}, {"category_id": 15, "poly": [180.0, 983.0, 462.0, 983.0, 462.0, 1015.0, 180.0, 1015.0], "score": 0.97, "text": "Pp. 296 -302, February 2005."}, {"category_id": 15, "poly": [132.0, 1011.0, 838.0, 1011.0, 838.0, 1040.0, 132.0, 1040.0], "score": 0.99, "text": "[15] E. Larsen, P. Mordohai, M. Pollefeys, and H. Fuchs, \u201cTemporally"}, {"category_id": 15, "poly": [182.0, 1036.0, 836.0, 1036.0, 836.0, 1066.0, 182.0, 1066.0], "score": 0.99, "text": "consistent reconstruction from multiple video streams using enhanced"}, {"category_id": 15, "poly": [178.0, 1054.0, 843.0, 1056.0, 843.0, 1095.0, 178.0, 1093.0], "score": 0.95, "text": "belief propagation in Computer Vision, 2007.ICCV 2007. IEEE1lth"}, {"category_id": 15, "poly": [180.0, 1082.0, 644.0, 1082.0, 644.0, 1121.0, 180.0, 1121.0], "score": 0.97, "text": "International Conference on, pp. 1 -8, oct. 2007."}, {"category_id": 15, "poly": [134.0, 1109.0, 838.0, 1109.0, 838.0, 1141.0, 134.0, 1141.0], "score": 0.97, "text": "[16] M. Bleyer, M. Gelautz, C. Rother, and C. Rhemann, \u201c\"A stereo approach"}, {"category_id": 15, "poly": [180.0, 1134.0, 838.0, 1134.0, 838.0, 1166.0, 180.0, 1166.0], "score": 0.99, "text": "that handles the mating problem via image warping\" in Computer"}, {"category_id": 15, "poly": [182.0, 1157.0, 838.0, 1157.0, 838.0, 1189.0, 182.0, 1189.0], "score": 0.98, "text": "Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference"}, {"category_id": 15, "poly": [180.0, 1183.0, 459.0, 1175.0, 460.0, 1212.0, 181.0, 1219.0], "score": 0.98, "text": "on, pp. 501 -508, June 2009."}, {"category_id": 15, "poly": [129.0, 1205.0, 838.0, 1208.0, 838.0, 1240.0, 129.0, 1237.0], "score": 0.98, "text": " [17] M. Sizintsev and R. Wildes, \u201cSpatiotemporal stereo via spatiotemporal"}, {"category_id": 15, "poly": [182.0, 1235.0, 838.0, 1235.0, 838.0, 1265.0, 182.0, 1265.0], "score": 0.97, "text": "quadric element (stequel) matching,\u201d in Computer Vision and Pattern"}, {"category_id": 15, "poly": [185.0, 1258.0, 841.0, 1258.0, 841.0, 1290.0, 185.0, 1290.0], "score": 0.98, "text": "Recognition, 2009. CVPR 2009. IEEE Conference on, Pp. 493 -500,"}, {"category_id": 15, "poly": [185.0, 1286.0, 286.0, 1286.0, 286.0, 1311.0, 185.0, 1311.0], "score": 0.99, "text": "june 2009."}, {"category_id": 15, "poly": [132.0, 1309.0, 838.0, 1309.0, 838.0, 1338.0, 132.0, 1338.0], "score": 0.97, "text": "[18] M. Sizintsev and R. Wildes, \u201cSpatiotemporal stereo and scene flow via"}, {"category_id": 15, "poly": [182.0, 1334.0, 841.0, 1334.0, 841.0, 1364.0, 182.0, 1364.0], "score": 0.97, "text": "stequel matching,\u201d\u2019Pattern Analysis and Machine Intelligence, IEEE"}, {"category_id": 15, "poly": [182.0, 1359.0, 684.0, 1359.0, 684.0, 1391.0, 182.0, 1391.0], "score": 1.0, "text": "Transactions on, vol. 34, pp. 1206 -1219, june 2012."}, {"category_id": 15, "poly": [132.0, 1382.0, 834.0, 1382.0, 834.0, 1412.0, 132.0, 1412.0], "score": 0.98, "text": "[19] C. Richardt, D. Orr, I. Davies, A. Criminisi, and N. A. Dodgson,"}, {"category_id": 15, "poly": [185.0, 1409.0, 838.0, 1409.0, 838.0, 1441.0, 185.0, 1441.0], "score": 0.98, "text": "\"Real-time spatiotemporal stereo matching using the dual-cross-bilateral"}, {"category_id": 15, "poly": [182.0, 1432.0, 838.0, 1432.0, 838.0, 1464.0, 182.0, 1464.0], "score": 0.95, "text": "grid,\" in Proceedings of the European Conference on Computer Vision"}, {"category_id": 15, "poly": [182.0, 1458.0, 838.0, 1458.0, 838.0, 1490.0, 182.0, 1490.0], "score": 0.98, "text": "(ECCV), Lecture Notes in Computer Science, pp. 510-523, September"}, {"category_id": 15, "poly": [182.0, 1477.0, 243.0, 1483.0, 241.0, 1511.0, 179.0, 1505.0], "score": 1.0, "text": "2010."}, {"category_id": 15, "poly": [134.0, 1508.0, 836.0, 1508.0, 836.0, 1538.0, 134.0, 1538.0], "score": 0.98, "text": "[20] S. Paris and F. Durand, \u201cA fast approximation of the bilateral filter using"}, {"category_id": 15, "poly": [182.0, 1533.0, 836.0, 1533.0, 836.0, 1565.0, 182.0, 1565.0], "score": 0.98, "text": "a signal processing approach,\u201d Int. J. Comput. Vision, vol. 81, pp. 24-52,"}, {"category_id": 15, "poly": [185.0, 1561.0, 282.0, 1561.0, 282.0, 1586.0, 185.0, 1586.0], "score": 0.98, "text": "Jan. 2009."}, {"category_id": 15, "poly": [134.0, 1584.0, 836.0, 1584.0, 836.0, 1613.0, 134.0, 1613.0], "score": 0.98, "text": "[21] Q. Yang, L. Wang, R. Yang, S. Wang, M. Liao, and D. Nist\u00e9r, \u201cReal-"}, {"category_id": 15, "poly": [182.0, 1609.0, 838.0, 1609.0, 838.0, 1641.0, 182.0, 1641.0], "score": 0.98, "text": "time global stereo matching using hierarchical belief propagation.\u201d in"}, {"category_id": 15, "poly": [182.0, 1634.0, 698.0, 1634.0, 698.0, 1666.0, 182.0, 1666.0], "score": 1.0, "text": "British Machine Vision Conference, pp. 989-998, 2006."}], "page_info": {"page_no": 5, "height": 2200, "width": 1700}}] \ No newline at end of file diff --git a/demo/magic_pdf_parse_main.py b/demo/magic_pdf_parse_main.py deleted file mode 100644 index 0e5b93313..000000000 --- a/demo/magic_pdf_parse_main.py +++ /dev/null @@ -1,141 +0,0 @@ -import os -import json -import copy - -from loguru import logger - -from magic_pdf.libs.draw_bbox import draw_layout_bbox, draw_span_bbox -from magic_pdf.pipe.UNIPipe import UNIPipe -from magic_pdf.pipe.OCRPipe import OCRPipe -from magic_pdf.pipe.TXTPipe import TXTPipe -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter - - -# todo: 设备类型选择 (?) - -def json_md_dump( - pipe, - md_writer, - pdf_name, - content_list, - md_content, -): - # 写入模型结果到 model.json - orig_model_list = copy.deepcopy(pipe.model_list) - md_writer.write( - content=json.dumps(orig_model_list, ensure_ascii=False, indent=4), - path=f"{pdf_name}_model.json" - ) - - # 写入中间结果到 middle.json - md_writer.write( - content=json.dumps(pipe.pdf_mid_data, ensure_ascii=False, indent=4), - path=f"{pdf_name}_middle.json" - ) - - # text文本结果写入到 conent_list.json - md_writer.write( - content=json.dumps(content_list, ensure_ascii=False, indent=4), - path=f"{pdf_name}_content_list.json" - ) - - # 写入结果到 .md 文件中 - md_writer.write( - content=md_content, - path=f"{pdf_name}.md" - ) - - -# 可视化 -def draw_visualization_bbox(pdf_info, pdf_bytes, local_md_dir, pdf_file_name): - # 画布局框,附带排序结果 - draw_layout_bbox(pdf_info, pdf_bytes, local_md_dir, pdf_file_name) - # 画 span 框 - draw_span_bbox(pdf_info, pdf_bytes, local_md_dir, pdf_file_name) - - -def pdf_parse_main( - pdf_path: str, - parse_method: str = 'auto', - model_json_path: str = None, - is_json_md_dump: bool = True, - is_draw_visualization_bbox: bool = True, - output_dir: str = None -): - """ - 执行从 pdf 转换到 json、md 的过程,输出 md 和 json 文件到 pdf 文件所在的目录 - - :param pdf_path: .pdf 文件的路径,可以是相对路径,也可以是绝对路径 - :param parse_method: 解析方法, 共 auto、ocr、txt 三种,默认 auto,如果效果不好,可以尝试 ocr - :param model_json_path: 已经存在的模型数据文件,如果为空则使用内置模型,pdf 和 model_json 务必对应 - :param is_json_md_dump: 是否将解析后的数据写入到 .json 和 .md 文件中,默认 True,会将不同阶段的数据写入到不同的 .json 文件中(共3个.json文件),md内容会保存到 .md 文件中 - :param output_dir: 输出结果的目录地址,会生成一个以 pdf 文件名命名的文件夹并保存所有结果 - """ - try: - pdf_name = os.path.basename(pdf_path).split(".")[0] - pdf_path_parent = os.path.dirname(pdf_path) - - if output_dir: - output_path = os.path.join(output_dir, pdf_name) - else: - output_path = os.path.join(pdf_path_parent, pdf_name) - - output_image_path = os.path.join(output_path, 'images') - - # 获取图片的父路径,为的是以相对路径保存到 .md 和 conent_list.json 文件中 - image_path_parent = os.path.basename(output_image_path) - - pdf_bytes = open(pdf_path, "rb").read() # 读取 pdf 文件的二进制数据 - - if model_json_path: - # 读取已经被模型解析后的pdf文件的 json 原始数据,list 类型 - model_json = json.loads(open(model_json_path, "r", encoding="utf-8").read()) - else: - model_json = [] - - # 执行解析步骤 - # image_writer = DiskReaderWriter(output_image_path) - image_writer, md_writer = DiskReaderWriter(output_image_path), DiskReaderWriter(output_path) - - # 选择解析方式 - # jso_useful_key = {"_pdf_type": "", "model_list": model_json} - # pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer) - if parse_method == "auto": - jso_useful_key = {"_pdf_type": "", "model_list": model_json} - pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer) - elif parse_method == "txt": - pipe = TXTPipe(pdf_bytes, model_json, image_writer) - elif parse_method == "ocr": - pipe = OCRPipe(pdf_bytes, model_json, image_writer) - else: - logger.error("unknown parse method, only auto, ocr, txt allowed") - exit(1) - - # 执行分类 - pipe.pipe_classify() - - # 如果没有传入模型数据,则使用内置模型解析 - if not model_json: - pipe.pipe_analyze() # 解析 - - # 执行解析 - pipe.pipe_parse() - - # 保存 text 和 md 格式的结果 - content_list = pipe.pipe_mk_uni_format(image_path_parent, drop_mode="none") - md_content = pipe.pipe_mk_markdown(image_path_parent, drop_mode="none") - - if is_json_md_dump: - json_md_dump(pipe, md_writer, pdf_name, content_list, md_content) - - if is_draw_visualization_bbox: - draw_visualization_bbox(pipe.pdf_mid_data['pdf_info'], pdf_bytes, output_path, pdf_name) - - except Exception as e: - logger.exception(e) - - -# 测试 -if __name__ == '__main__': - pdf_path = r"D:\project\20240617magicpdf\Magic-PDF\demo\demo1.pdf" - pdf_parse_main(pdf_path) diff --git a/demo/office_docs/docx_01.docx b/demo/office_docs/docx_01.docx new file mode 100644 index 000000000..2369ea1e8 Binary files /dev/null and b/demo/office_docs/docx_01.docx differ diff --git a/demo/office_docs/pptx_01.pptx b/demo/office_docs/pptx_01.pptx new file mode 100644 index 000000000..d515e5f40 Binary files /dev/null and b/demo/office_docs/pptx_01.pptx differ diff --git a/demo/office_docs/xlsx_01.xlsx b/demo/office_docs/xlsx_01.xlsx new file mode 100644 index 000000000..5a0475f8b Binary files /dev/null and b/demo/office_docs/xlsx_01.xlsx differ diff --git a/demo/demo1.pdf b/demo/pdfs/demo1.pdf similarity index 100% rename from demo/demo1.pdf rename to demo/pdfs/demo1.pdf diff --git a/demo/demo2.pdf b/demo/pdfs/demo2.pdf similarity index 100% rename from demo/demo2.pdf rename to demo/pdfs/demo2.pdf diff --git a/demo/pdfs/demo3.pdf b/demo/pdfs/demo3.pdf new file mode 100644 index 000000000..75f4e0472 Binary files /dev/null and b/demo/pdfs/demo3.pdf differ diff --git a/demo/small_ocr.pdf b/demo/pdfs/small_ocr.pdf similarity index 100% rename from demo/small_ocr.pdf rename to demo/pdfs/small_ocr.pdf diff --git a/docker/china/Dockerfile b/docker/china/Dockerfile new file mode 100644 index 000000000..2be8b628c --- /dev/null +++ b/docker/china/Dockerfile @@ -0,0 +1,25 @@ +# Use DaoCloud mirrored vllm image for China region for gpu with Volta、Turing、Ampere、Ada Lovelace、Hopper、Blackwell architecture (7.0 <= Compute Capability <= 12.0) +# Compute Capability version query (https://developer.nvidia.com/cuda-gpus) +# support x86_64 architecture and ARM(AArch64) architecture +FROM docker.m.daocloud.io/vllm/vllm-openai:v0.11.2 + +# Install libgl for opencv support & Noto fonts for Chinese characters +RUN apt-get update && \ + apt-get install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig \ + libgl1 && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Install mineru latest +RUN python3 -m pip install -U 'mineru[core]>=3.0.0' -i https://mirrors.aliyun.com/pypi/simple --break-system-packages && \ + python3 -m pip cache purge + +# Download models and update the configuration file +RUN /bin/bash -c "mineru-models-download -s modelscope -m all" + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] \ No newline at end of file diff --git a/docker/china/corex.Dockerfile b/docker/china/corex.Dockerfile new file mode 100644 index 000000000..8e1ba13bd --- /dev/null +++ b/docker/china/corex.Dockerfile @@ -0,0 +1,27 @@ +# Base image containing the vLLM inference environment, requiring amd64(x86-64) CPU + iluvatar GPU. +FROM crpi-vofi3w62lkohhxsp.cn-shanghai.personal.cr.aliyuncs.com/opendatalab-mineru/corex:4.4.0_torch2.7.1_vllm0.11.2_py3.10 + + +# Install Noto fonts for Chinese characters +RUN apt-get update && \ + apt-get install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Install mineru latest +RUN python3 -m pip install -U pip -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip install 'mineru[core]>=3.0.0' \ + numpy==1.26.4 \ + opencv-python==4.11.0.86 \ + -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip cache purge + +# Download models and update the configuration file +RUN /bin/bash -c "mineru-models-download -s modelscope -m all" + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] \ No newline at end of file diff --git a/docker/china/dcu.Dockerfile b/docker/china/dcu.Dockerfile new file mode 100644 index 000000000..8eb334084 --- /dev/null +++ b/docker/china/dcu.Dockerfile @@ -0,0 +1,31 @@ +# Base image containing the vLLM inference environment, requiring amd64(x86-64) CPU + Hygon DCU. +FROM harbor.sourcefind.cn:5443/dcu/admin/base/vllm:0.9.2-ubuntu22.04-dtk25.04.2-1226-das1.7-py3.10-20251226 + + +# Install Noto fonts for Chinese characters +RUN apt-get update && \ + apt-get install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Install mineru latest +RUN python3 -m pip install -U pip -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip install "mineru[gradio]>=3.0.0" \ + "ftfy>=6.3.1,<7" \ + "shapely>=2.0.7,<3" \ + "pyclipper>=1.3.0,<2" \ + "omegaconf>=2.3.0,<3" \ + numpy==1.25.0 \ + opencv-python==4.11.0.86 \ + -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip cache purge + +# Download models and update the configuration file +RUN /bin/bash -c "mineru-models-download -s modelscope -m all" + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] \ No newline at end of file diff --git a/docker/china/gcu.Dockerfile b/docker/china/gcu.Dockerfile new file mode 100644 index 000000000..bcfc74b69 --- /dev/null +++ b/docker/china/gcu.Dockerfile @@ -0,0 +1,30 @@ +# Base image containing the vLLM inference environment, requiring amd64(x86-64) CPU + Enflame GCU. +FROM crpi-vofi3w62lkohhxsp.cn-shanghai.personal.cr.aliyuncs.com/opendatalab-mineru/gcu:docker_images_topsrider_i3x_3.6.20260106_vllm0.11_pytorch2.8.0 + + +# Install Noto fonts for Chinese characters +RUN echo 'deb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse\n\ +deb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse\n\ +deb http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse\n\ +deb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse' > /tmp/aliyun-sources.list && \ + apt-get -o Dir::Etc::SourceList=/tmp/aliyun-sources.list update && \ + apt-get -o Dir::Etc::SourceList=/tmp/aliyun-sources.list install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* /tmp/aliyun-sources.list + +# Install mineru latest +RUN python3 -m pip install "mineru[core]>=3.0.0" \ + numpy==1.26.4 \ + opencv-python==4.11.0.86 \ + -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip cache purge + +# Download models and update the configuration file +RUN /bin/bash -c "mineru-models-download -s modelscope -m all" + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] \ No newline at end of file diff --git a/docker/china/kxpu.Dockerfile b/docker/china/kxpu.Dockerfile new file mode 100644 index 000000000..3559445e5 --- /dev/null +++ b/docker/china/kxpu.Dockerfile @@ -0,0 +1,30 @@ +# Base image containing the vLLM inference environment, requiring amd64(x86-64) CPU + Kunlun XPU. +FROM docker.1ms.run/wjie520/vllm_kunlun:v0.10.1.1rc1 + + +# Install Noto fonts for Chinese characters +RUN apt-get update && \ + apt-get install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Install mineru latest +RUN python3 -m pip install -U pip -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip install "mineru[gradio]>=3.0.0" \ + "ftfy>=6.3.1,<7" \ + "shapely>=2.0.7,<3" \ + "pyclipper>=1.3.0,<2" \ + "omegaconf>=2.3.0,<3" \ + -i https://mirrors.aliyun.com/pypi/simple && \ + sed -i '1,200{s/self\.act = act_layer()/self.act = nn.GELU()/;t;b};' /root/miniconda/envs/vllm_kunlun_0.10.1.1/lib/python3.10/site-packages/vllm_kunlun/models/qwen2_vl.py && \ + python3 -m pip cache purge + +# Download models and update the configuration file +RUN /bin/bash -c "mineru-models-download -s modelscope -m all" + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] \ No newline at end of file diff --git a/docker/china/maca.Dockerfile b/docker/china/maca.Dockerfile new file mode 100644 index 000000000..827f18c6c --- /dev/null +++ b/docker/china/maca.Dockerfile @@ -0,0 +1,34 @@ +# 基础镜像配置 vLLM 或 LMDeploy 推理环境,请根据实际需要选择其中一个,要求 amd64(x86-64) CPU + metax GPU。 +# Base image containing the vLLM inference environment, requiring amd64(x86-64) CPU + metax GPU. +FROM cr.metax-tech.com/public-ai-release/maca/vllm:maca.ai3.1.0.7-torch2.6-py310-ubuntu22.04-amd64 +# Base image containing the LMDeploy inference environment, requiring amd64(x86-64) CPU + metax GPU. +# FROM crpi-vofi3w62lkohhxsp.cn-shanghai.personal.cr.aliyuncs.com/opendatalab-mineru/maca:maca.ai3.1.0.7-torch2.6-py310-ubuntu22.04-lmdeploy0.10.2-amd64 + +# Install libgl for opencv support & Noto fonts for Chinese characters +RUN apt-get update && \ + apt-get install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig \ + libgl1 && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# mod torchvision to be compatible with torch 2.6 +RUN sed -i '3s/^Version: 0.15.1+metax3\.1\.0\.4$/Version: 0.21.0+metax3.1.0.4/' /opt/conda/lib/python3.10/site-packages/torchvision-0.15.1+metax3.1.0.4.dist-info/METADATA && \ + mv /opt/conda/lib/python3.10/site-packages/torchvision-0.15.1+metax3.1.0.4.dist-info /opt/conda/lib/python3.10/site-packages/torchvision-0.21.0+metax3.1.0.4.dist-info + +# Install mineru latest +RUN /opt/conda/bin/python3 -m pip install -U pip -i https://mirrors.aliyun.com/pypi/simple && \ + /opt/conda/bin/python3 -m pip install 'mineru[core]>=3.0.0' \ + numpy==1.26.4 \ + opencv-python==4.11.0.86 \ + -i https://mirrors.aliyun.com/pypi/simple && \ + /opt/conda/bin/python3 -m pip cache purge + +# Download models and update the configuration file +RUN /bin/bash -c "/opt/conda/bin/mineru-models-download -s modelscope -m all" + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] \ No newline at end of file diff --git a/docker/china/mlu.Dockerfile b/docker/china/mlu.Dockerfile new file mode 100644 index 000000000..bd889a916 --- /dev/null +++ b/docker/china/mlu.Dockerfile @@ -0,0 +1,42 @@ +# 基础镜像配置 vLLM 或 LMDeploy ,请根据实际需要选择其中一个,要求 amd64(x86-64) CPU + Cambricon MLU. +# Base image containing the LMDEPLOY inference environment, requiring amd64(x86-64) CPU + Cambricon MLU. +FROM crpi-4crprmm5baj1v8iv.cn-hangzhou.personal.cr.aliyuncs.com/lmdeploy_dlinfer/camb:mineru25 +ARG BACKEND=lmdeploy +# Base image containing the vLLM inference environment, requiring amd64(x86-64) CPU + Cambricon MLU. +# FROM crpi-vofi3w62lkohhxsp.cn-shanghai.personal.cr.aliyuncs.com/opendatalab-mineru/mlu:vllm0.8.3-torch2.6.0-torchmlu1.26.1-ubuntu22.04-py310 +# ARG BACKEND=vllm + +# Install Noto fonts for Chinese characters +RUN apt-get update && \ + apt-get install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Install mineru latest +RUN /bin/bash -c '\ + if [ "$BACKEND" = "vllm" ]; then \ + source /torch/venv3/pytorch_infer/bin/activate; \ + fi && \ + python3 -m pip install -U pip -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip install "mineru[core]>=3.0.0" \ + numpy==1.26.4 \ + opencv-python==4.11.0.86 \ + -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip install $(if [ "$BACKEND" = "lmdeploy" ]; then echo "accelerate==1.2.0"; else echo "transformers==4.50.3"; fi) && \ + python3 -m pip cache purge' + +# Download models and update the configuration file +RUN /bin/bash -c '\ + if [ "$BACKEND" = "vllm" ]; then \ + source /torch/venv3/pytorch_infer/bin/activate; \ + fi && \ + mineru-models-download -s modelscope -m all' + +WORKDIR /workspace + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] diff --git a/docker/china/musa.Dockerfile b/docker/china/musa.Dockerfile new file mode 100644 index 000000000..3bfb63a8e --- /dev/null +++ b/docker/china/musa.Dockerfile @@ -0,0 +1,35 @@ +# Base image containing the vLLM inference environment, requiring amd64(x86-64) CPU + MooreThreads GPU. +FROM registry.mthreads.com/mcconline/vllm-musa-qy2-py310:v0.8.4-release + + +# Install libgl for opencv support & Noto fonts for Chinese characters +RUN apt-get update && \ + apt-get install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig \ + libgl1 && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Install mineru latest +RUN python3 -m pip install -U pip -i https://mirrors.aliyun.com/pypi/simple && \ + git clone https://gitcode.com/gh_mirrors/vi/vision.git -b v0.20.0 --depth 1 && \ + cd vision && \ + python3 setup.py install && \ + python3 -m pip install "mineru[gradio]>=3.0.0" \ + "ftfy>=6.3.1,<7" \ + "shapely>=2.0.7,<3" \ + "pyclipper>=1.3.0,<2" \ + "omegaconf>=2.3.0,<3" \ + numpy==1.26.4 \ + opencv-python==4.11.0.86 \ + -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip cache purge + +# Download models and update the configuration file +RUN /bin/bash -c "mineru-models-download -s modelscope -m all" + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] \ No newline at end of file diff --git a/docker/china/npu.Dockerfile b/docker/china/npu.Dockerfile new file mode 100644 index 000000000..7eb2ff691 --- /dev/null +++ b/docker/china/npu.Dockerfile @@ -0,0 +1,32 @@ +# 基础镜像配置 vLLM 或 LMDeploy ,请根据实际需要选择其中一个,要求 ARM(AArch64) CPU + Ascend NPU。 +# Base image containing the vLLM inference environment, requiring ARM(AArch64) CPU + Ascend NPU. +FROM quay.m.daocloud.io/ascend/vllm-ascend:v0.11.0 +# Base image containing the LMDeploy inference environment, requiring ARM(AArch64) CPU + Ascend NPU. +# FROM crpi-4crprmm5baj1v8iv.cn-hangzhou.personal.cr.aliyuncs.com/lmdeploy_dlinfer/ascend:mineru-a2 + + +# Install libgl for opencv support & Noto fonts for Chinese characters +RUN apt-get update && \ + apt-get install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig \ + libgl1 \ + libglib2.0-0 && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Install mineru latest +RUN python3 -m pip install -U pip -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip install 'mineru[core]>=3.0.0' \ + numpy==1.26.4 \ + opencv-python==4.11.0.86 \ + -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip cache purge + +# Download models and update the configuration file +RUN TORCH_DEVICE_BACKEND_AUTOLOAD=0 /bin/bash -c "mineru-models-download -s modelscope -m all" + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] \ No newline at end of file diff --git a/docker/china/ppu.Dockerfile b/docker/china/ppu.Dockerfile new file mode 100644 index 000000000..5a8ce3251 --- /dev/null +++ b/docker/china/ppu.Dockerfile @@ -0,0 +1,30 @@ +# 基础镜像配置 vLLM 或 LMDeploy 推理环境,请根据实际需要选择其中一个,要求 amd64(x86-64) CPU + t-head PPU。 +# Base image containing the vLLM inference environment, requiring amd64(x86-64) CPU + t-head PPU. +FROM crpi-vofi3w62lkohhxsp.cn-shanghai.personal.cr.aliyuncs.com/opendatalab-mineru/ppu:ppu-pytorch2.6.0-ubuntu24.04-cuda12.6-vllm0.8.5-py312 +# Base image containing the LMDeploy inference environment, requiring amd64(x86-64) CPU + t-head PPU. +# FROM crpi-4crprmm5baj1v8iv.cn-hangzhou.personal.cr.aliyuncs.com/lmdeploy_dlinfer/ppu:mineru-ppu + +# Install libgl for opencv support & Noto fonts for Chinese characters +RUN apt-get update && \ + apt-get install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig \ + libgl1 && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Install mineru latest +RUN python3 -m pip install -U pip -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip install 'mineru[core]>=3.0.0' \ + numpy==1.26.4 \ + opencv-python==4.11.0.86 \ + -i https://mirrors.aliyun.com/pypi/simple && \ + python3 -m pip cache purge + +# Download models and update the configuration file +RUN /bin/bash -c "mineru-models-download -s modelscope -m all" + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] \ No newline at end of file diff --git a/docker/compose.yaml b/docker/compose.yaml new file mode 100644 index 000000000..54171de58 --- /dev/null +++ b/docker/compose.yaml @@ -0,0 +1,120 @@ +services: + mineru-openai-server: + image: mineru:latest + container_name: mineru-openai-server + restart: always + profiles: ["openai-server"] + ports: + - 30000:30000 + environment: + MINERU_MODEL_SOURCE: local + entrypoint: mineru-openai-server + command: + --host 0.0.0.0 + --port 30000 + # --gpu-memory-utilization 0.5 # If encountering VRAM shortage, reduce the KV cache size by this parameter; if VRAM issues persist, try lowering it further to `0.4` or below. + ulimits: + memlock: -1 + stack: 67108864 + ipc: host + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:30000/health || exit 1"] + deploy: + resources: + reservations: + devices: + - driver: nvidia + device_ids: ["0"] # Modify for multiple GPUs: ["0", "1"] + capabilities: [gpu] + + mineru-api: + image: mineru:latest + container_name: mineru-api + restart: always + profiles: ["api"] + ports: + - 8000:8000 + environment: + MINERU_MODEL_SOURCE: local + entrypoint: mineru-api + command: + --host 0.0.0.0 + --port 8000 + # parameters for vllm-engine + # --gpu-memory-utilization 0.5 # If encountering VRAM shortage, reduce the KV cache size by this parameter; if VRAM issues persist, try lowering it further to `0.4` or below. + ulimits: + memlock: -1 + stack: 67108864 + ipc: host + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:8000/health || exit 1"] + deploy: + resources: + reservations: + devices: + - driver: nvidia + device_ids: ["0"] # Modify for multiple GPUs: ["0", "1"] + capabilities: [gpu] + + mineru-router: + image: mineru:latest + container_name: mineru-router + restart: always + profiles: ["router"] + ports: + - 8002:8002 + environment: + MINERU_MODEL_SOURCE: local + entrypoint: mineru-router + command: + --host 0.0.0.0 + --port 8002 + --local-gpus auto + # To aggregate existing mineru-api services instead of starting local workers: + # --local-gpus none + # --upstream-url http://mineru-api:8000 + # --upstream-url http://mineru-api-2:8000 + # parameters for vllm-engine + # --gpu-memory-utilization 0.5 # If encountering VRAM shortage, reduce the KV cache size by this parameter; if VRAM issues persist, try lowering it further to `0.4` or below. + ulimits: + memlock: -1 + stack: 67108864 + ipc: host + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:8002/health || exit 1"] + deploy: + resources: + reservations: + devices: + - driver: nvidia + device_ids: ["0"] # Modify for multiple GPUs: ["0", "1"] + capabilities: [gpu] + + mineru-gradio: + image: mineru:latest + container_name: mineru-gradio + restart: always + profiles: ["gradio"] + ports: + - 7860:7860 + environment: + MINERU_MODEL_SOURCE: local + entrypoint: mineru-gradio + command: + --server-name 0.0.0.0 + --server-port 7860 + # --enable-api false # If you want to disable the API, set this to false + # --max-convert-pages 20 # If you want to limit the number of pages for conversion, set this to a specific number + # parameters for vllm-engine + # --gpu-memory-utilization 0.5 # If encountering VRAM shortage, reduce the KV cache size by this parameter; if VRAM issues persist, try lowering it further to `0.4` or below. + ulimits: + memlock: -1 + stack: 67108864 + ipc: host + deploy: + resources: + reservations: + devices: + - driver: nvidia + device_ids: ["0"] # Modify for multiple GPUs: ["0", "1"] + capabilities: [gpu] diff --git a/docker/global/Dockerfile b/docker/global/Dockerfile new file mode 100644 index 000000000..5e84399df --- /dev/null +++ b/docker/global/Dockerfile @@ -0,0 +1,25 @@ +# Use the official vllm image for gpu with Volta、Turing、Ampere、Ada Lovelace、Hopper、Blackwell architecture (7.0 <= Compute Capability <= 12.0) +# Compute Capability version query (https://developer.nvidia.com/cuda-gpus) +# support x86_64 architecture and ARM(AArch64) architecture +FROM vllm/vllm-openai:v0.11.2 + +# Install libgl for opencv support & Noto fonts for Chinese characters +RUN apt-get update && \ + apt-get install -y \ + fonts-noto-core \ + fonts-noto-cjk \ + fontconfig \ + libgl1 && \ + fc-cache -fv && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Install mineru latest +RUN python3 -m pip install -U 'mineru[core]>=3.0.0' --break-system-packages && \ + python3 -m pip cache purge + +# Download models and update the configuration file +RUN /bin/bash -c "mineru-models-download -s huggingface -m all" + +# Set the entry point to activate the virtual environment and run the command line tool +ENTRYPOINT ["/bin/bash", "-c", "export MINERU_MODEL_SOURCE=local && exec \"$@\"", "--"] \ No newline at end of file diff --git a/docs/FAQ_en_us.md b/docs/FAQ_en_us.md deleted file mode 100644 index 21ca861b6..000000000 --- a/docs/FAQ_en_us.md +++ /dev/null @@ -1,59 +0,0 @@ -# Frequently Asked Questions - -### 1. When using the command `pip install magic-pdf[full]` on newer versions of macOS, the error `zsh: no matches found: magic-pdf[full]` occurs. - -On macOS, the default shell has switched from Bash to Z shell, which has special handling logic for certain types of string matching. This can lead to the "no matches found" error. You can try disabling the globbing feature in the command line and then run the installation command again. - -```bash -setopt no_nomatch -pip install magic-pdf[full] -``` - -### 2. Encountering the error `pickle.UnpicklingError: invalid load key, 'v'.` during use - -This might be due to an incomplete download of the model file. You can try re-downloading the model file and then try again. -Reference: https://github.com/opendatalab/MinerU/issues/143 - -### 3. Where should the model files be downloaded and how should the `/models-dir` configuration be set? - -The path for the model files is configured in "magic-pdf.json". just like: - -```json -{ - "models-dir": "/tmp/models" -} -``` - -This path is an absolute path, not a relative path. You can obtain the absolute path in the models directory using the "pwd" command. -Reference: https://github.com/opendatalab/MinerU/issues/155#issuecomment-2230216874 - -### 4. Encountered the error `ImportError: libGL.so.1: cannot open shared object file: No such file or directory` in Ubuntu 22.04 on WSL2 - -The `libgl` library is missing in Ubuntu 22.04 on WSL2. You can install the `libgl` library with the following command to resolve the issue: - -```bash -sudo apt-get install libgl1-mesa-glx -``` - -Reference: https://github.com/opendatalab/MinerU/issues/388 - -### 5. Encountered error `ModuleNotFoundError: No module named 'fairscale'` - -You need to uninstall the module and reinstall it: - -```bash -pip uninstall fairscale -pip install fairscale -``` - -Reference: https://github.com/opendatalab/MinerU/issues/411 - -### 6. On some newer devices like the H100, the text parsed during OCR using CUDA acceleration is garbled. - -The compatibility of cuda11 with new graphics cards is poor, and the CUDA version used by Paddle needs to be upgraded. - -```bash -pip install paddlepaddle-gpu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/ -``` - -Reference: https://github.com/opendatalab/MinerU/issues/558 diff --git a/docs/FAQ_zh_cn.md b/docs/FAQ_zh_cn.md deleted file mode 100644 index 667abfa82..000000000 --- a/docs/FAQ_zh_cn.md +++ /dev/null @@ -1,61 +0,0 @@ -# 常见问题解答 - -### 1.在较新版本的mac上使用命令安装pip install magic-pdf\[full\] zsh: no matches found: magic-pdf\[full\] - -在 macOS 上,默认的 shell 从 Bash 切换到了 Z shell,而 Z shell 对于某些类型的字符串匹配有特殊的处理逻辑,这可能导致no matches found错误。 -可以通过在命令行禁用globbing特性,再尝试运行安装命令 - -```bash -setopt no_nomatch -pip install magic-pdf[full] -``` - -### 2.使用过程中遇到_pickle.UnpicklingError: invalid load key, 'v'.错误 - -可能是由于模型文件未下载完整导致,可尝试重新下载模型文件后再试 -参考:https://github.com/opendatalab/MinerU/issues/143 - -### 3.模型文件应该下载到哪里/models-dir的配置应该怎么填 - -模型文件的路径输入是在"magic-pdf.json"中通过 - -```json -{ - "models-dir": "/tmp/models" -} -``` - -进行配置的。 -这个路径是绝对路径而不是相对路径,绝对路径的获取可在models目录中通过命令 "pwd" 获取。 -参考:https://github.com/opendatalab/MinerU/issues/155#issuecomment-2230216874 - -### 4.在WSL2的Ubuntu22.04中遇到报错`ImportError: libGL.so.1: cannot open shared object file: No such file or directory` - -WSL2的Ubuntu22.04中缺少`libgl`库,可通过以下命令安装`libgl`库解决: - -```bash -sudo apt-get install libgl1-mesa-glx -``` - -参考:https://github.com/opendatalab/MinerU/issues/388 - -### 5.遇到报错 `ModuleNotFoundError : Nomodulenamed 'fairscale'` - -需要卸载该模块并重新安装 - -```bash -pip uninstall fairscale -pip install fairscale -``` - -参考:https://github.com/opendatalab/MinerU/issues/411 - -### 6.在部分较新的设备如H100上,使用CUDA加速OCR时解析出的文字乱码。 - -cuda11对新显卡的兼容性不好,需要升级paddle使用的cuda版本 - -```bash -pip install paddlepaddle-gpu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/ -``` - -参考:https://github.com/opendatalab/MinerU/issues/558 diff --git a/docs/README_Ubuntu_CUDA_Acceleration_en_US.md b/docs/README_Ubuntu_CUDA_Acceleration_en_US.md deleted file mode 100644 index 010cc7294..000000000 --- a/docs/README_Ubuntu_CUDA_Acceleration_en_US.md +++ /dev/null @@ -1,120 +0,0 @@ -# Ubuntu 22.04 LTS - -### 1. Check if NVIDIA Drivers Are Installed - -```sh -nvidia-smi -``` - -If you see information similar to the following, it means that the NVIDIA drivers are already installed, and you can skip Step 2. - -Notice:`CUDA Version` should be >= 12.1, If the displayed version number is less than 12.1, please upgrade the driver. - -```plaintext -+---------------------------------------------------------------------------------------+ -| NVIDIA-SMI 537.34 Driver Version: 537.34 CUDA Version: 12.2 | -|-----------------------------------------+----------------------+----------------------+ -| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | -| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | -| | | MIG M. | -|=========================================+======================+======================| -| 0 NVIDIA GeForce RTX 3060 Ti WDDM | 00000000:01:00.0 On | N/A | -| 0% 51C P8 12W / 200W | 1489MiB / 8192MiB | 5% Default | -| | | N/A | -+-----------------------------------------+----------------------+----------------------+ -``` - -### 2. Install the Driver - -If no driver is installed, use the following command: - -```sh -sudo apt-get update -sudo apt-get install nvidia-driver-545 -``` - -Install the proprietary driver and restart your computer after installation. - -```sh -reboot -``` - -### 3. Install Anaconda - -If Anaconda is already installed, skip this step. - -```sh -wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh -bash Anaconda3-2024.06-1-Linux-x86_64.sh -``` - -In the final step, enter `yes`, close the terminal, and reopen it. - -### 4. Create an Environment Using Conda - -Specify Python version 3.10. - -```sh -conda create -n MinerU python=3.10 -conda activate MinerU -``` - -### 5. Install Applications - -```sh -pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com -``` - -❗ After installation, make sure to check the version of `magic-pdf` using the following command: - -```sh -magic-pdf --version -``` - -If the version number is less than 0.7.0, please report the issue. - -### 6. Download Models - -Refer to detailed instructions on [how to download model files](how_to_download_models_en.md). - -## 7. Understand the Location of the Configuration File - -After completing the [6. Download Models](#6-download-models) step, the script will automatically generate a `magic-pdf.json` file in the user directory and configure the default model path. -You can find the `magic-pdf.json` file in your user directory. - -> The user directory for Linux is "/home/username". - -### 8. First Run - -Download a sample file from the repository and test it. - -```sh -wget https://github.com/opendatalab/MinerU/raw/master/demo/small_ocr.pdf -magic-pdf -p small_ocr.pdf -``` - -### 9. Test CUDA Acceleration - -If your graphics card has at least **8GB** of VRAM, follow these steps to test CUDA acceleration: - -1. Modify the value of `"device-mode"` in the `magic-pdf.json` configuration file located in your home directory. - ```json - { - "device-mode": "cuda" - } - ``` -2. Test CUDA acceleration with the following command: - ```sh - magic-pdf -p small_ocr.pdf - ``` - -### 10. Enable CUDA Acceleration for OCR - -1. Download `paddlepaddle-gpu`. Installation will automatically enable OCR acceleration. - ```sh - python -m pip install paddlepaddle-gpu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ - ``` -2. Test OCR acceleration with the following command: - ```sh - magic-pdf -p small_ocr.pdf - ``` diff --git a/docs/README_Ubuntu_CUDA_Acceleration_zh_CN.md b/docs/README_Ubuntu_CUDA_Acceleration_zh_CN.md deleted file mode 100644 index f72ffec87..000000000 --- a/docs/README_Ubuntu_CUDA_Acceleration_zh_CN.md +++ /dev/null @@ -1,131 +0,0 @@ -# Ubuntu 22.04 LTS - -## 1. 检测是否已安装nvidia驱动 - -```bash -nvidia-smi -``` - -如果看到类似如下的信息,说明已经安装了nvidia驱动,可以跳过步骤2 - -注意:`CUDA Version` 显示的版本号应 >= 12.1,如显示的版本号小于12.1,请升级驱动 - -```plaintext -``` -+---------------------------------------------------------------------------------------+ -| NVIDIA-SMI 537.34 Driver Version: 537.34 CUDA Version: 12.2 | -|-----------------------------------------+----------------------+----------------------+ -| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | -| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | -| | | MIG M. | -|=========================================+======================+======================| -| 0 NVIDIA GeForce RTX 3060 Ti WDDM | 00000000:01:00.0 On | N/A | -| 0% 51C P8 12W / 200W | 1489MiB / 8192MiB | 5% Default | -| | | N/A | -+-----------------------------------------+----------------------+----------------------+ -``` - -## 2. 安装驱动 - -如没有驱动,则通过如下命令 - -```bash -sudo apt-get update -sudo apt-get install nvidia-driver-545 -``` - -安装专有驱动,安装完成后,重启电脑 - -```bash -reboot -``` - -## 3. 安装anacoda - -如果已安装conda,可以跳过本步骤 - -```bash -wget -U NoSuchBrowser/1.0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.06-1-Linux-x86_64.sh -bash Anaconda3-2024.06-1-Linux-x86_64.sh -``` - -最后一步输入yes,关闭终端重新打开 - -## 4. 使用conda 创建环境 - -需指定python版本为3.10 - -```bash -conda create -n MinerU python=3.10 -conda activate MinerU -``` - -## 5. 安装应用 - -```bash -pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com -i https://pypi.tuna.tsinghua.edu.cn/simple -``` - -> ❗️下载完成后,务必通过以下命令确认magic-pdf的版本是否正确 -> -> ```bash -> magic-pdf --version -> ``` -> -> 如果版本号小于0.7.0,请到issue中向我们反馈 - -## 6. 下载模型 - -详细参考 [如何下载模型文件](how_to_download_models_zh_cn.md) - -## 7. 了解配置文件存放的位置 - -完成[6.下载模型](#6-下载模型)步骤后,脚本会自动生成用户目录下的magic-pdf.json文件,并自动配置默认模型路径。 -您可在【用户目录】下找到magic-pdf.json文件。 - -> linux用户目录为 "/home/用户名" - -## 8. 第一次运行 - -从仓库中下载样本文件,并测试 - -```bash -wget https://gitee.com/myhloli/MinerU/raw/master/demo/small_ocr.pdf -magic-pdf -p small_ocr.pdf -``` - -## 9. 测试CUDA加速 - -如果您的显卡显存大于等于 **8GB** ,可以进行以下流程,测试CUDA解析加速效果 - -**1.修改【用户目录】中配置文件magic-pdf.json中"device-mode"的值** - -```json -{ - "device-mode":"cuda" -} -``` - -**2.运行以下命令测试cuda加速效果** - -```bash -magic-pdf -p small_ocr.pdf -``` - -> 提示:CUDA加速是否生效可以根据log中输出的各个阶段cost耗时来简单判断,通常情况下,`layout detection cost` 和 `mfr time` 应提速10倍以上。 - -## 10. 为ocr开启cuda加速 - -**1.下载paddlepaddle-gpu, 安装完成后会自动开启ocr加速** - -```bash -python -m pip install paddlepaddle-gpu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ -``` - -**2.运行以下命令测试ocr加速效果** - -```bash -magic-pdf -p small_ocr.pdf -``` - -> 提示:CUDA加速是否生效可以根据log中输出的各个阶段cost耗时来简单判断,通常情况下,`ocr cost`应提速10倍以上。 diff --git a/docs/README_Windows_CUDA_Acceleration_en_US.md b/docs/README_Windows_CUDA_Acceleration_en_US.md deleted file mode 100644 index e258011d0..000000000 --- a/docs/README_Windows_CUDA_Acceleration_en_US.md +++ /dev/null @@ -1,100 +0,0 @@ -# Windows 10/11 - -### 1. Install CUDA and cuDNN - -Required versions: CUDA 11.8 + cuDNN 8.7.0 - -- CUDA 11.8: https://developer.nvidia.com/cuda-11-8-0-download-archive -- cuDNN v8.7.0 (November 28th, 2022), for CUDA 11.x: https://developer.nvidia.com/rdp/cudnn-archive - -### 2. Install Anaconda - -If Anaconda is already installed, you can skip this step. - -Download link: https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Windows-x86_64.exe - -### 3. Create an Environment Using Conda - -Python version must be 3.10. - -``` -conda create -n MinerU python=3.10 -conda activate MinerU -``` - -### 4. Install Applications - -``` -pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com -``` - -> ❗️After installation, verify the version of `magic-pdf`: -> -> ```bash -> magic-pdf --version -> ``` -> -> If the version number is less than 0.7.0, please report it in the issues section. - -### 5. Download Models - -Refer to detailed instructions on [how to download model files](how_to_download_models_en.md). - -### 6. Understand the Location of the Configuration File - -After completing the [5. Download Models](#5-download-models) step, the script will automatically generate a `magic-pdf.json` file in the user directory and configure the default model path. -You can find the `magic-pdf.json` file in your 【user directory】 . - -> The user directory for Windows is "C:/Users/username". - -### 7. First Run - -Download a sample file from the repository and test it. - -```powershell - wget https://github.com/opendatalab/MinerU/raw/master/demo/small_ocr.pdf -O small_ocr.pdf - magic-pdf -p small_ocr.pdf -``` - -### 8. Test CUDA Acceleration - -If your graphics card has at least 8GB of VRAM, follow these steps to test CUDA-accelerated parsing performance. - -1. **Overwrite the installation of torch and torchvision** supporting CUDA. - - ``` - pip install --force-reinstall torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu118 - ``` - - > ❗️Ensure the following versions are specified in the command: - > - > ``` - > torch==2.3.1 torchvision==0.18.1 - > ``` - > - > These are the highest versions we support. Installing higher versions without specifying them will cause the program to fail. - -2. **Modify the value of `"device-mode"`** in the `magic-pdf.json` configuration file located in your user directory. - - ```json - { - "device-mode": "cuda" - } - ``` - -3. **Run the following command to test CUDA acceleration**: - - ``` - magic-pdf -p small_ocr.pdf - ``` - -### 9. Enable CUDA Acceleration for OCR - -1. **Download paddlepaddle-gpu**, which will automatically enable OCR acceleration upon installation. - ``` - pip install paddlepaddle-gpu==2.6.1 - ``` -2. **Run the following command to test OCR acceleration**: - ``` - magic-pdf -p small_ocr.pdf - ``` diff --git a/docs/README_Windows_CUDA_Acceleration_zh_CN.md b/docs/README_Windows_CUDA_Acceleration_zh_CN.md deleted file mode 100644 index a88a50dbd..000000000 --- a/docs/README_Windows_CUDA_Acceleration_zh_CN.md +++ /dev/null @@ -1,108 +0,0 @@ -# Windows10/11 - -## 1. 安装cuda和cuDNN - -需要安装的版本 CUDA 11.8 + cuDNN 8.7.0 - -- CUDA 11.8 https://developer.nvidia.com/cuda-11-8-0-download-archive -- cuDNN v8.7.0 (November 28th, 2022), for CUDA 11.x https://developer.nvidia.com/rdp/cudnn-archive - -## 2. 安装anaconda - -如果已安装conda,可以跳过本步骤 - -下载链接: -https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.06-1-Windows-x86_64.exe - -## 3. 使用conda 创建环境 - -需指定python版本为3.10 - -```bash -conda create -n MinerU python=3.10 -conda activate MinerU -``` - -## 4. 安装应用 - -```bash -pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com -i https://pypi.tuna.tsinghua.edu.cn/simple -``` - -> ❗️下载完成后,务必通过以下命令确认magic-pdf的版本是否正确 -> -> ```bash -> magic-pdf --version -> ``` -> -> 如果版本号小于0.7.0,请到issue中向我们反馈 - -## 5. 下载模型 - -详细参考 [如何下载模型文件](how_to_download_models_zh_cn.md) - -## 6. 了解配置文件存放的位置 - -完成[5.下载模型](#5-下载模型)步骤后,脚本会自动生成用户目录下的magic-pdf.json文件,并自动配置默认模型路径。 -您可在【用户目录】下找到magic-pdf.json文件。 - -> windows用户目录为 "C:/Users/用户名" - -## 7. 第一次运行 - -从仓库中下载样本文件,并测试 - -```powershell - wget https://github.com/opendatalab/MinerU/raw/master/demo/small_ocr.pdf -O small_ocr.pdf - magic-pdf -p small_ocr.pdf -``` - -## 8. 测试CUDA加速 - -如果您的显卡显存大于等于 **8GB** ,可以进行以下流程,测试CUDA解析加速效果 - -**1.覆盖安装支持cuda的torch和torchvision** - -```bash -pip install --force-reinstall torch==2.3.1 torchvision==0.18.1 --index-url https://download.pytorch.org/whl/cu118 -``` - -> ❗️务必在命令中指定以下版本 -> -> ```bash -> torch==2.3.1 torchvision==0.18.1 -> ``` -> -> 这是我们支持的最高版本,如果不指定版本会自动安装更高版本导致程序无法运行 - -**2.修改【用户目录】中配置文件magic-pdf.json中"device-mode"的值** - -```json -{ - "device-mode":"cuda" -} -``` - -**3.运行以下命令测试cuda加速效果** - -```bash -magic-pdf -p small_ocr.pdf -``` - -> 提示:CUDA加速是否生效可以根据log中输出的各个阶段的耗时来简单判断,通常情况下,`layout detection time` 和 `mfr time` 应提速10倍以上。 - -## 9. 为ocr开启cuda加速 - -**1.下载paddlepaddle-gpu, 安装完成后会自动开启ocr加速** - -```bash -pip install paddlepaddle-gpu==2.6.1 -``` - -**2.运行以下命令测试ocr加速效果** - -```bash -magic-pdf -p small_ocr.pdf -``` - -> 提示:CUDA加速是否生效可以根据log中输出的各个阶段cost耗时来简单判断,通常情况下,`ocr time`应提速10倍以上。 diff --git a/docs/assets/images/BISHENG_01.png b/docs/assets/images/BISHENG_01.png new file mode 100644 index 000000000..1291233cf Binary files /dev/null and b/docs/assets/images/BISHENG_01.png differ diff --git a/docs/assets/images/Cherry_Studio_1.png b/docs/assets/images/Cherry_Studio_1.png new file mode 100644 index 000000000..dffb4a00a Binary files /dev/null and b/docs/assets/images/Cherry_Studio_1.png differ diff --git a/docs/assets/images/Cherry_Studio_2.png b/docs/assets/images/Cherry_Studio_2.png new file mode 100644 index 000000000..c1b1cfef5 Binary files /dev/null and b/docs/assets/images/Cherry_Studio_2.png differ diff --git a/docs/assets/images/Cherry_Studio_3.png b/docs/assets/images/Cherry_Studio_3.png new file mode 100644 index 000000000..d400e7342 Binary files /dev/null and b/docs/assets/images/Cherry_Studio_3.png differ diff --git a/docs/assets/images/Cherry_Studio_4.png b/docs/assets/images/Cherry_Studio_4.png new file mode 100644 index 000000000..26a5dddb4 Binary files /dev/null and b/docs/assets/images/Cherry_Studio_4.png differ diff --git a/docs/assets/images/Cherry_Studio_5.png b/docs/assets/images/Cherry_Studio_5.png new file mode 100644 index 000000000..da88d85ab Binary files /dev/null and b/docs/assets/images/Cherry_Studio_5.png differ diff --git a/docs/assets/images/Cherry_Studio_6.png b/docs/assets/images/Cherry_Studio_6.png new file mode 100644 index 000000000..35762af1b Binary files /dev/null and b/docs/assets/images/Cherry_Studio_6.png differ diff --git a/docs/assets/images/Cherry_Studio_7.png b/docs/assets/images/Cherry_Studio_7.png new file mode 100644 index 000000000..916ecfe90 Binary files /dev/null and b/docs/assets/images/Cherry_Studio_7.png differ diff --git a/docs/assets/images/Cherry_Studio_8.png b/docs/assets/images/Cherry_Studio_8.png new file mode 100644 index 000000000..ab2a9b96f Binary files /dev/null and b/docs/assets/images/Cherry_Studio_8.png differ diff --git a/docs/assets/images/Coze_1.png b/docs/assets/images/Coze_1.png new file mode 100644 index 000000000..7c834d1d5 Binary files /dev/null and b/docs/assets/images/Coze_1.png differ diff --git a/docs/assets/images/Coze_10.png b/docs/assets/images/Coze_10.png new file mode 100644 index 000000000..6feda8eb1 Binary files /dev/null and b/docs/assets/images/Coze_10.png differ diff --git a/docs/assets/images/Coze_11.png b/docs/assets/images/Coze_11.png new file mode 100644 index 000000000..420776281 Binary files /dev/null and b/docs/assets/images/Coze_11.png differ diff --git a/docs/assets/images/Coze_12.png b/docs/assets/images/Coze_12.png new file mode 100644 index 000000000..ed8ef1e09 Binary files /dev/null and b/docs/assets/images/Coze_12.png differ diff --git a/docs/assets/images/Coze_13.png b/docs/assets/images/Coze_13.png new file mode 100644 index 000000000..fa2e79ccc Binary files /dev/null and b/docs/assets/images/Coze_13.png differ diff --git a/docs/assets/images/Coze_14.png b/docs/assets/images/Coze_14.png new file mode 100644 index 000000000..cc491651c Binary files /dev/null and b/docs/assets/images/Coze_14.png differ diff --git a/docs/assets/images/Coze_15.png b/docs/assets/images/Coze_15.png new file mode 100644 index 000000000..fd95fff29 Binary files /dev/null and b/docs/assets/images/Coze_15.png differ diff --git a/docs/assets/images/Coze_16.png b/docs/assets/images/Coze_16.png new file mode 100644 index 000000000..29c6598de Binary files /dev/null and b/docs/assets/images/Coze_16.png differ diff --git a/docs/assets/images/Coze_17.png b/docs/assets/images/Coze_17.png new file mode 100644 index 000000000..712792724 Binary files /dev/null and b/docs/assets/images/Coze_17.png differ diff --git a/docs/assets/images/Coze_18.png b/docs/assets/images/Coze_18.png new file mode 100644 index 000000000..ef2c54dbe Binary files /dev/null and b/docs/assets/images/Coze_18.png differ diff --git a/docs/assets/images/Coze_19.png b/docs/assets/images/Coze_19.png new file mode 100644 index 000000000..b7afb73df Binary files /dev/null and b/docs/assets/images/Coze_19.png differ diff --git a/docs/assets/images/Coze_2.png b/docs/assets/images/Coze_2.png new file mode 100644 index 000000000..fb8dac378 Binary files /dev/null and b/docs/assets/images/Coze_2.png differ diff --git a/docs/assets/images/Coze_20.png b/docs/assets/images/Coze_20.png new file mode 100644 index 000000000..a7505c3b5 Binary files /dev/null and b/docs/assets/images/Coze_20.png differ diff --git a/docs/assets/images/Coze_21.png b/docs/assets/images/Coze_21.png new file mode 100644 index 000000000..a8365e603 Binary files /dev/null and b/docs/assets/images/Coze_21.png differ diff --git a/docs/assets/images/Coze_3.png b/docs/assets/images/Coze_3.png new file mode 100644 index 000000000..f77f8969e Binary files /dev/null and b/docs/assets/images/Coze_3.png differ diff --git a/docs/assets/images/Coze_4.png b/docs/assets/images/Coze_4.png new file mode 100644 index 000000000..c67f52529 Binary files /dev/null and b/docs/assets/images/Coze_4.png differ diff --git a/docs/assets/images/Coze_5.png b/docs/assets/images/Coze_5.png new file mode 100644 index 000000000..e70ba9ca3 Binary files /dev/null and b/docs/assets/images/Coze_5.png differ diff --git a/docs/assets/images/Coze_6.png b/docs/assets/images/Coze_6.png new file mode 100644 index 000000000..5a0cb1024 Binary files /dev/null and b/docs/assets/images/Coze_6.png differ diff --git a/docs/assets/images/Coze_7.png b/docs/assets/images/Coze_7.png new file mode 100644 index 000000000..9f6f8292f Binary files /dev/null and b/docs/assets/images/Coze_7.png differ diff --git a/docs/assets/images/Coze_8.png b/docs/assets/images/Coze_8.png new file mode 100644 index 000000000..f08e5378d Binary files /dev/null and b/docs/assets/images/Coze_8.png differ diff --git a/docs/assets/images/Coze_9.png b/docs/assets/images/Coze_9.png new file mode 100644 index 000000000..fee7923b2 Binary files /dev/null and b/docs/assets/images/Coze_9.png differ diff --git a/docs/assets/images/DataFLow_01.png b/docs/assets/images/DataFLow_01.png new file mode 100644 index 000000000..17e3882b7 Binary files /dev/null and b/docs/assets/images/DataFLow_01.png differ diff --git a/docs/assets/images/DataFlow_02.png b/docs/assets/images/DataFlow_02.png new file mode 100644 index 000000000..a6182ddfd Binary files /dev/null and b/docs/assets/images/DataFlow_02.png differ diff --git a/docs/assets/images/Dify_1.png b/docs/assets/images/Dify_1.png new file mode 100644 index 000000000..dbb9e6d5f Binary files /dev/null and b/docs/assets/images/Dify_1.png differ diff --git a/docs/assets/images/Dify_10.png b/docs/assets/images/Dify_10.png new file mode 100644 index 000000000..d6626aba2 Binary files /dev/null and b/docs/assets/images/Dify_10.png differ diff --git a/docs/assets/images/Dify_11.png b/docs/assets/images/Dify_11.png new file mode 100644 index 000000000..bec7e91e5 Binary files /dev/null and b/docs/assets/images/Dify_11.png differ diff --git a/docs/assets/images/Dify_12.png b/docs/assets/images/Dify_12.png new file mode 100644 index 000000000..822fd7fbf Binary files /dev/null and b/docs/assets/images/Dify_12.png differ diff --git a/docs/assets/images/Dify_13.png b/docs/assets/images/Dify_13.png new file mode 100644 index 000000000..d5025f13a Binary files /dev/null and b/docs/assets/images/Dify_13.png differ diff --git a/docs/assets/images/Dify_14.png b/docs/assets/images/Dify_14.png new file mode 100644 index 000000000..f785542a2 Binary files /dev/null and b/docs/assets/images/Dify_14.png differ diff --git a/docs/assets/images/Dify_15.png b/docs/assets/images/Dify_15.png new file mode 100644 index 000000000..ef40173c1 Binary files /dev/null and b/docs/assets/images/Dify_15.png differ diff --git a/docs/assets/images/Dify_16.png b/docs/assets/images/Dify_16.png new file mode 100644 index 000000000..1f203b52d Binary files /dev/null and b/docs/assets/images/Dify_16.png differ diff --git a/docs/assets/images/Dify_17.png b/docs/assets/images/Dify_17.png new file mode 100644 index 000000000..f944a3908 Binary files /dev/null and b/docs/assets/images/Dify_17.png differ diff --git a/docs/assets/images/Dify_18.png b/docs/assets/images/Dify_18.png new file mode 100644 index 000000000..a2b069d89 Binary files /dev/null and b/docs/assets/images/Dify_18.png differ diff --git a/docs/assets/images/Dify_19.png b/docs/assets/images/Dify_19.png new file mode 100644 index 000000000..dc278e01e Binary files /dev/null and b/docs/assets/images/Dify_19.png differ diff --git a/docs/assets/images/Dify_2.png b/docs/assets/images/Dify_2.png new file mode 100644 index 000000000..182c85f36 Binary files /dev/null and b/docs/assets/images/Dify_2.png differ diff --git a/docs/assets/images/Dify_20.png b/docs/assets/images/Dify_20.png new file mode 100644 index 000000000..91b910e27 Binary files /dev/null and b/docs/assets/images/Dify_20.png differ diff --git a/docs/assets/images/Dify_21.png b/docs/assets/images/Dify_21.png new file mode 100644 index 000000000..784de7726 Binary files /dev/null and b/docs/assets/images/Dify_21.png differ diff --git a/docs/assets/images/Dify_22.png b/docs/assets/images/Dify_22.png new file mode 100644 index 000000000..304995f1c Binary files /dev/null and b/docs/assets/images/Dify_22.png differ diff --git a/docs/assets/images/Dify_23.png b/docs/assets/images/Dify_23.png new file mode 100644 index 000000000..9a1ac093b Binary files /dev/null and b/docs/assets/images/Dify_23.png differ diff --git a/docs/assets/images/Dify_24.png b/docs/assets/images/Dify_24.png new file mode 100644 index 000000000..4902617ca Binary files /dev/null and b/docs/assets/images/Dify_24.png differ diff --git a/docs/assets/images/Dify_25.png b/docs/assets/images/Dify_25.png new file mode 100644 index 000000000..21315a3fa Binary files /dev/null and b/docs/assets/images/Dify_25.png differ diff --git a/docs/assets/images/Dify_26.png b/docs/assets/images/Dify_26.png new file mode 100644 index 000000000..c59244b2e Binary files /dev/null and b/docs/assets/images/Dify_26.png differ diff --git a/docs/assets/images/Dify_3.png b/docs/assets/images/Dify_3.png new file mode 100644 index 000000000..0a7cb968a Binary files /dev/null and b/docs/assets/images/Dify_3.png differ diff --git a/docs/assets/images/Dify_4.png b/docs/assets/images/Dify_4.png new file mode 100644 index 000000000..759c070aa Binary files /dev/null and b/docs/assets/images/Dify_4.png differ diff --git a/docs/assets/images/Dify_5.png b/docs/assets/images/Dify_5.png new file mode 100644 index 000000000..bc73986de Binary files /dev/null and b/docs/assets/images/Dify_5.png differ diff --git a/docs/assets/images/Dify_6.png b/docs/assets/images/Dify_6.png new file mode 100644 index 000000000..27225bf8a Binary files /dev/null and b/docs/assets/images/Dify_6.png differ diff --git a/docs/assets/images/Dify_7.png b/docs/assets/images/Dify_7.png new file mode 100644 index 000000000..82bb291c4 Binary files /dev/null and b/docs/assets/images/Dify_7.png differ diff --git a/docs/assets/images/Dify_8.png b/docs/assets/images/Dify_8.png new file mode 100644 index 000000000..9f9422ae1 Binary files /dev/null and b/docs/assets/images/Dify_8.png differ diff --git a/docs/assets/images/Dify_9.png b/docs/assets/images/Dify_9.png new file mode 100644 index 000000000..b94f315d9 Binary files /dev/null and b/docs/assets/images/Dify_9.png differ diff --git a/docs/assets/images/DingTalk_01.png b/docs/assets/images/DingTalk_01.png new file mode 100644 index 000000000..413012ad2 Binary files /dev/null and b/docs/assets/images/DingTalk_01.png differ diff --git a/docs/assets/images/FastGPT_01.png b/docs/assets/images/FastGPT_01.png new file mode 100644 index 000000000..25fbdfa03 Binary files /dev/null and b/docs/assets/images/FastGPT_01.png differ diff --git a/docs/assets/images/FastGPT_02.png b/docs/assets/images/FastGPT_02.png new file mode 100644 index 000000000..345f1eecb Binary files /dev/null and b/docs/assets/images/FastGPT_02.png differ diff --git a/docs/assets/images/ModelWhale_01.png b/docs/assets/images/ModelWhale_01.png new file mode 100644 index 000000000..b2f768aae Binary files /dev/null and b/docs/assets/images/ModelWhale_01.png differ diff --git a/docs/assets/images/ModelWhale_02.png b/docs/assets/images/ModelWhale_02.png new file mode 100644 index 000000000..bc964f11e Binary files /dev/null and b/docs/assets/images/ModelWhale_02.png differ diff --git a/docs/assets/images/ModelWhale_1.png b/docs/assets/images/ModelWhale_1.png new file mode 100644 index 000000000..c80e7f42c Binary files /dev/null and b/docs/assets/images/ModelWhale_1.png differ diff --git a/docs/assets/images/RagFlow_01.png b/docs/assets/images/RagFlow_01.png new file mode 100644 index 000000000..476e0de2f Binary files /dev/null and b/docs/assets/images/RagFlow_01.png differ diff --git a/docs/assets/images/RagFlow_02.png b/docs/assets/images/RagFlow_02.png new file mode 100644 index 000000000..f2fec68ec Binary files /dev/null and b/docs/assets/images/RagFlow_02.png differ diff --git a/docs/assets/images/Sider_1.png b/docs/assets/images/Sider_1.png new file mode 100644 index 000000000..f682e38b5 Binary files /dev/null and b/docs/assets/images/Sider_1.png differ diff --git a/docs/assets/images/coze_0.png b/docs/assets/images/coze_0.png new file mode 100644 index 000000000..92ff21310 Binary files /dev/null and b/docs/assets/images/coze_0.png differ diff --git a/docs/assets/images/n8n_0.png b/docs/assets/images/n8n_0.png new file mode 100644 index 000000000..31b42c03b Binary files /dev/null and b/docs/assets/images/n8n_0.png differ diff --git a/docs/assets/images/n8n_1.png b/docs/assets/images/n8n_1.png new file mode 100644 index 000000000..3f9fecbc7 Binary files /dev/null and b/docs/assets/images/n8n_1.png differ diff --git a/docs/assets/images/n8n_10.png b/docs/assets/images/n8n_10.png new file mode 100644 index 000000000..6fdc12cb8 Binary files /dev/null and b/docs/assets/images/n8n_10.png differ diff --git a/docs/assets/images/n8n_2.png b/docs/assets/images/n8n_2.png new file mode 100644 index 000000000..f93599a86 Binary files /dev/null and b/docs/assets/images/n8n_2.png differ diff --git a/docs/assets/images/n8n_3.png b/docs/assets/images/n8n_3.png new file mode 100644 index 000000000..c1ab8807b Binary files /dev/null and b/docs/assets/images/n8n_3.png differ diff --git a/docs/assets/images/n8n_4.png b/docs/assets/images/n8n_4.png new file mode 100644 index 000000000..76657fab4 Binary files /dev/null and b/docs/assets/images/n8n_4.png differ diff --git a/docs/assets/images/n8n_5.png b/docs/assets/images/n8n_5.png new file mode 100644 index 000000000..f6aa18af1 Binary files /dev/null and b/docs/assets/images/n8n_5.png differ diff --git a/docs/assets/images/n8n_6.png b/docs/assets/images/n8n_6.png new file mode 100644 index 000000000..88c9ea3aa Binary files /dev/null and b/docs/assets/images/n8n_6.png differ diff --git a/docs/assets/images/n8n_7.png b/docs/assets/images/n8n_7.png new file mode 100644 index 000000000..7a1e0f707 Binary files /dev/null and b/docs/assets/images/n8n_7.png differ diff --git a/docs/assets/images/n8n_8.png b/docs/assets/images/n8n_8.png new file mode 100644 index 000000000..9daff94e7 Binary files /dev/null and b/docs/assets/images/n8n_8.png differ diff --git a/docs/assets/images/n8n_9.png b/docs/assets/images/n8n_9.png new file mode 100644 index 000000000..77c6272f3 Binary files /dev/null and b/docs/assets/images/n8n_9.png differ diff --git a/docs/download_models.py b/docs/download_models.py deleted file mode 100644 index ed1ee5c3b..000000000 --- a/docs/download_models.py +++ /dev/null @@ -1,59 +0,0 @@ -import json -import os - -import requests -from modelscope import snapshot_download - - -def download_json(url): - # 下载JSON文件 - response = requests.get(url) - response.raise_for_status() # 检查请求是否成功 - return response.json() - - -def download_and_modify_json(url, local_filename, modifications): - if os.path.exists(local_filename): - data = json.load(open(local_filename)) - config_version = data.get('config_version', '0.0.0') - if config_version < '1.0.0': - data = download_json(url) - else: - data = download_json(url) - - # 修改内容 - for key, value in modifications.items(): - data[key] = value - - # 保存修改后的内容 - with open(local_filename, 'w', encoding='utf-8') as f: - json.dump(data, f, ensure_ascii=False, indent=4) - - -if __name__ == '__main__': - mineru_patterns = [ - "models/Layout/LayoutLMv3/*", - "models/Layout/YOLO/*", - "models/MFD/YOLO/*", - "models/MFR/unimernet_small/*", - "models/TabRec/TableMaster/*", - "models/TabRec/StructEqTable/*", - ] - model_dir = snapshot_download('opendatalab/PDF-Extract-Kit-1.0', allow_patterns=mineru_patterns) - layoutreader_model_dir = snapshot_download('ppaanngggg/layoutreader') - model_dir = model_dir + '/models' - print(f'model_dir is: {model_dir}') - print(f'layoutreader_model_dir is: {layoutreader_model_dir}') - - json_url = 'https://gitee.com/myhloli/MinerU/raw/dev/magic-pdf.template.json' - config_file_name = 'magic-pdf.json' - home_dir = os.path.expanduser('~') - config_file = os.path.join(home_dir, config_file_name) - - json_mods = { - 'models-dir': model_dir, - 'layoutreader-model-dir': layoutreader_model_dir, - } - - download_and_modify_json(json_url, config_file, json_mods) - print(f'The configuration file has been configured successfully, the path is: {config_file}') diff --git a/docs/download_models_hf.py b/docs/download_models_hf.py deleted file mode 100644 index 5e6b8dced..000000000 --- a/docs/download_models_hf.py +++ /dev/null @@ -1,66 +0,0 @@ -import json -import os - -import requests -from huggingface_hub import snapshot_download - - -def download_json(url): - # 下载JSON文件 - response = requests.get(url) - response.raise_for_status() # 检查请求是否成功 - return response.json() - - -def download_and_modify_json(url, local_filename, modifications): - if os.path.exists(local_filename): - data = json.load(open(local_filename)) - config_version = data.get('config_version', '0.0.0') - if config_version < '1.0.0': - data = download_json(url) - else: - data = download_json(url) - - # 修改内容 - for key, value in modifications.items(): - data[key] = value - - # 保存修改后的内容 - with open(local_filename, 'w', encoding='utf-8') as f: - json.dump(data, f, ensure_ascii=False, indent=4) - - -if __name__ == '__main__': - - mineru_patterns = [ - "models/Layout/LayoutLMv3/*", - "models/Layout/YOLO/*", - "models/MFD/YOLO/*", - "models/MFR/unimernet_small/*", - "models/TabRec/TableMaster/*", - "models/TabRec/StructEqTable/*", - ] - model_dir = snapshot_download('opendatalab/PDF-Extract-Kit-1.0', allow_patterns=mineru_patterns) - - layoutreader_pattern = [ - "*.json", - "*.safetensors", - ] - layoutreader_model_dir = snapshot_download('hantian/layoutreader', allow_patterns=layoutreader_pattern) - - model_dir = model_dir + '/models' - print(f'model_dir is: {model_dir}') - print(f'layoutreader_model_dir is: {layoutreader_model_dir}') - - json_url = 'https://github.com/opendatalab/MinerU/raw/dev/magic-pdf.template.json' - config_file_name = 'magic-pdf.json' - home_dir = os.path.expanduser('~') - config_file = os.path.join(home_dir, config_file_name) - - json_mods = { - 'models-dir': model_dir, - 'layoutreader-model-dir': layoutreader_model_dir, - } - - download_and_modify_json(json_url, config_file, json_mods) - print(f'The configuration file has been configured successfully, the path is: {config_file}') diff --git a/docs/en/demo/index.md b/docs/en/demo/index.md new file mode 100644 index 000000000..869eb17a1 --- /dev/null +++ b/docs/en/demo/index.md @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/en/faq/index.md b/docs/en/faq/index.md new file mode 100644 index 000000000..0877424e3 --- /dev/null +++ b/docs/en/faq/index.md @@ -0,0 +1,30 @@ +# Frequently Asked Questions + +If your question is not listed, try using [DeepWiki](https://deepwiki.com/opendatalab/MinerU)'s AI assistant for common issues. + +For unresolved problems, join our [Discord](https://discord.gg/Tdedn9GTXq) or [WeChat](https://mineru.net/community-portal/?aliasId=3c430f94) community for support. + +??? question "Encountered the error `ImportError: libGL.so.1: cannot open shared object file: No such file or directory` in Ubuntu 22.04 on WSL2" + + The `libgl` library is missing in Ubuntu 22.04 on WSL2. You can install the `libgl` library with the following command to resolve the issue: + + ```bash + sudo apt-get install libgl1-mesa-glx + ``` + + Reference: [#388](https://github.com/opendatalab/MinerU/issues/388) + + +??? question "Missing text information in parsing results when installing and using on Linux systems." + + MinerU uses `pypdfium2` instead of `pymupdf` as the PDF page rendering engine in versions >=2.0 to resolve AGPLv3 license issues. On some Linux distributions, due to missing CJK fonts, some text may be lost during the process of rendering PDFs to images. + To solve this problem, you can install the noto font package with the following commands, which are effective on Ubuntu/Debian systems: + ```bash + sudo apt update + sudo apt install fonts-noto-core + sudo apt install fonts-noto-cjk + fc-cache -fv + ``` + You can also directly use our [Docker deployment](../quick_start/docker_deployment.md) method to build the image, which includes the above font packages by default. + + Reference: [#2915](https://github.com/opendatalab/MinerU/issues/2915) diff --git a/docs/en/index.md b/docs/en/index.md new file mode 100644 index 000000000..52cd9cb28 --- /dev/null +++ b/docs/en/index.md @@ -0,0 +1,76 @@ +
+ +

+ +

+
+ + + +[![stars](https://img.shields.io/github/stars/opendatalab/MinerU.svg)](https://github.com/opendatalab/MinerU) +[![forks](https://img.shields.io/github/forks/opendatalab/MinerU.svg)](https://github.com/opendatalab/MinerU) +[![open issues](https://img.shields.io/github/issues-raw/opendatalab/MinerU)](https://github.com/opendatalab/MinerU/issues) +[![issue resolution](https://img.shields.io/github/issues-closed-raw/opendatalab/MinerU)](https://github.com/opendatalab/MinerU/issues) +[![PyPI version](https://img.shields.io/pypi/v/mineru)](https://pypi.org/project/mineru/) +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mineru)](https://pypi.org/project/mineru/) +[![Downloads](https://static.pepy.tech/badge/mineru)](https://pepy.tech/project/mineru) +[![Downloads](https://static.pepy.tech/badge/mineru/month)](https://pepy.tech/project/mineru) +[![OpenDataLab](https://img.shields.io/badge/webapp_on_mineru.net-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM0IiBoZWlnaHQ9IjEzNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTIyLDljMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Im0xMjIsOWMwLDUtNCw5LTksOXMtOS00LTktOSw0LTksOS05LDksNCw5LDl6IiBmaWxsPSIjMDEwMTAxIi8+PHBhdGggZD0ibTkxLDE4YzAsNS00LDktOSw5cy05LTQtOS05LDQtOSw5LTksOSw0LDksOXoiIGZpbGw9InVybCgjYikiLz48cGF0aCBkPSJtOTEsMThjMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0iIzAxMDEwMSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0idXJsKCNjKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0iIzAxMDEwMSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=&labelColor=white)](https://mineru.net/OpenSourceTools/Extractor?source=github) +[![HuggingFace](https://img.shields.io/badge/Demo_on_HuggingFace-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABYCAMAAACkl9t/AAAAk1BMVEVHcEz/nQv/nQv/nQr/nQv/nQr/nQv/nQv/nQr/wRf/txT/pg7/yRr/rBD/zRz/ngv/oAz/zhz/nwv/txT/ngv/0B3+zBz/nQv/0h7/wxn/vRb/thXkuiT/rxH/pxD/ogzcqyf/nQvTlSz/czCxky7/SjifdjT/Mj3+Mj3wMj15aTnDNz+DSD9RTUBsP0FRO0Q6O0WyIxEIAAAAGHRSTlMADB8zSWF3krDDw8TJ1NbX5efv8ff9/fxKDJ9uAAAGKklEQVR42u2Z63qjOAyGC4RwCOfB2JAGqrSb2WnTw/1f3UaWcSGYNKTdf/P+mOkTrE+yJBulvfvLT2A5ruenaVHyIks33npl/6C4s/ZLAM45SOi/1FtZPyFur1OYofBX3w7d54Bxm+E8db+nDr12ttmESZ4zludJEG5S7TO72YPlKZFyE+YCYUJTBZsMiNS5Sd7NlDmKM2Eg2JQg8awbglfqgbhArjxkS7dgp2RH6hc9AMLdZYUtZN5DJr4molC8BfKrEkPKEnEVjLbgW1fLy77ZVOJagoIcLIl+IxaQZGjiX597HopF5CkaXVMDO9Pyix3AFV3kw4lQLCbHuMovz8FallbcQIJ5Ta0vks9RnolbCK84BtjKRS5uA43hYoZcOBGIG2Epbv6CvFVQ8m8loh66WNySsnN7htL58LNp+NXT8/PhXiBXPMjLSxtwp8W9f/1AngRierBkA+kk/IpUSOeKByzn8y3kAAAfh//0oXgV4roHm/kz4E2z//zRc3/lgwBzbM2mJxQEa5pqgX7d1L0htrhx7LKxOZlKbwcAWyEOWqYSI8YPtgDQVjpB5nvaHaSnBaQSD6hweDi8PosxD6/PT09YY3xQA7LTCTKfYX+QHpA0GCcqmEHvr/cyfKQTEuwgbs2kPxJEB0iNjfJcCTPyocx+A0griHSmADiC91oNGVwJ69RudYe65vJmoqfpul0lrqXadW0jFKH5BKwAeCq+Den7s+3zfRJzA61/Uj/9H/VzLKTx9jFPPdXeeP+L7WEvDLAKAIoF8bPTKT0+TM7W8ePj3Rz/Yn3kOAp2f1Kf0Weony7pn/cPydvhQYV+eFOfmOu7VB/ViPe34/EN3RFHY/yRuT8ddCtMPH/McBAT5s+vRde/gf2c/sPsjLK+m5IBQF5tO+h2tTlBGnP6693JdsvofjOPnnEHkh2TnV/X1fBl9S5zrwuwF8NFrAVJVwCAPTe8gaJlomqlp0pv4Pjn98tJ/t/fL++6unpR1YGC2n/KCoa0tTLoKiEeUPDl94nj+5/Tv3/eT5vBQ60X1S0oZr+IWRR8Ldhu7AlLjPISlJcO9vrFotky9SpzDequlwEir5beYAc0R7D9KS1DXva0jhYRDXoExPdc6yw5GShkZXe9QdO/uOvHofxjrV/TNS6iMJS+4TcSTgk9n5agJdBQbB//IfF/HpvPt3Tbi7b6I6K0R72p6ajryEJrENW2bbeVUGjfgoals4L443c7BEE4mJO2SpbRngxQrAKRudRzGQ8jVOL2qDVjjI8K1gc3TIJ5KiFZ1q+gdsARPB4NQS4AjwVSt72DSoXNyOWUrU5mQ9nRYyjp89Xo7oRI6Bga9QNT1mQ/ptaJq5T/7WcgAZywR/XlPGAUDdet3LE+qS0TI+g+aJU8MIqjo0Kx8Ly+maxLjJmjQ18rA0YCkxLQbUZP1WqdmyQGJLUm7VnQFqodmXSqmRrdVpqdzk5LvmvgtEcW8PMGdaS23EOWyDVbACZzUJPaqMbjDxpA3Qrgl0AikimGDbqmyT8P8NOYiqrldF8rX+YN7TopX4UoHuSCYY7cgX4gHwclQKl1zhx0THf+tCAUValzjI7Wg9EhptrkIcfIJjA94evOn8B2eHaVzvBrnl2ig0So6hvPaz0IGcOvTHvUIlE2+prqAxLSQxZlU2stql1NqCCLdIiIN/i1DBEHUoElM9dBravbiAnKqgpi4IBkw+utSPIoBijDXJipSVV7MpOEJUAc5Qmm3BnUN+w3hteEieYKfRZSIUcXKMVf0u5wD4EwsUNVvZOtUT7A2GkffHjByWpHqvRBYrTV72a6j8zZ6W0DTE86Hn04bmyWX3Ri9WH7ZU6Q7h+ZHo0nHUAcsQvVhXRDZHChwiyi/hnPuOsSEF6Exk3o6Y9DT1eZ+6cASXk2Y9k+6EOQMDGm6WBK10wOQJCBwren86cPPWUcRAnTVjGcU1LBgs9FURiX/e6479yZcLwCBmTxiawEwrOcleuu12t3tbLv/N4RLYIBhYexm7Fcn4OJcn0+zc+s8/VfPeddZHAGN6TT8eGczHdR/Gts1/MzDkThr23zqrVfAMFT33Nx1RJsx1k5zuWILLnG/vsH+Fv5D4NTVcp1Gzo8AAAAAElFTkSuQmCC&labelColor=white)](https://huggingface.co/spaces/opendatalab/MinerU) +[![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/OpenDataLab/MinerU) +[![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/gist/myhloli/a3cb16570ab3cfeadf9d8f0ac91b4fca/mineru_demo.ipynb) +[![arXiv](https://img.shields.io/badge/MinerU-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2409.18839) +[![arXiv](https://img.shields.io/badge/MinerU2.5-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2509.22186) +[![arXiv](https://img.shields.io/badge/MinerU2.5%20Pro-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2604.04771) +[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/opendatalab/MinerU) + + + +## Project Introduction + +MinerU is a document parsing tool that converts `PDF`, image, `DOCX`, `PPTX`, and `XLSX` inputs into machine-readable formats such as Markdown and JSON for downstream retrieval, extraction, and processing. +MinerU was born during the pre-training process of [InternLM](https://github.com/InternLM/InternLM). We focus on solving symbol conversion issues in scientific literature and hope to contribute to technological development in the era of large models. +Compared to well-known commercial products domestically and internationally, MinerU is still young. If you encounter any issues or if the results are not as expected, please submit an issue on [GitHub Issues](https://github.com/opendatalab/MinerU/issues) and **attach the relevant document or sample file**. + +![type:video](https://github.com/user-attachments/assets/4bea02c9-6d54-4cd6-97ed-dff14340982c) + +## Key Features + +- Support `PDF`, image, `DOCX`, `PPTX`, and `XLSX` inputs +- Remove headers, footers, footnotes, page numbers and other elements to ensure semantic coherence +- Output text in human reading order, suitable for single-column, multi-column and complex layouts +- Retain the original document structure, including titles, paragraphs, lists, etc. +- Extract images, image descriptions, tables, table titles and footnotes +- Automatically identify and convert formulas in documents to LaTeX format +- Automatically identify and convert tables in documents to HTML format +- Automatically detect scanned PDFs and garbled PDFs, and enable OCR functionality +- OCR supports detection and recognition of 109 languages +- Support multiple output formats, such as multimodal and NLP Markdown, reading-order-sorted JSON, and information-rich intermediate formats +- Support multiple visualization results, including layout visualization, span visualization, etc., for efficient confirmation of output effects and quality inspection +- Built-in CLI, FastAPI, Gradio WebUI, for local orchestration and multi-service deployment +- Support pure CPU environment operation, and support GPU(CUDA)/NPU(CANN)/MPS acceleration +- Compatible with Windows, Linux and Mac platforms + + +## User Guide + +- [Quick Start Guide](./quick_start/index.md) +- [Detailed Usage Instructions](./usage/index.md) + +## License Information + +This repository is licensed under the [MinerU Open Source License](https://github.com/opendatalab/MinerU/blob/master/LICENSE.md), based on Apache 2.0 with additional conditions. diff --git a/docs/en/quick_start/docker_deployment.md b/docs/en/quick_start/docker_deployment.md new file mode 100644 index 000000000..d0089256c --- /dev/null +++ b/docs/en/quick_start/docker_deployment.md @@ -0,0 +1,93 @@ +# Deploying MinerU with Docker + +MinerU provides a convenient Docker deployment method, which helps quickly set up the environment and solve some tricky environment compatibility issues. + +## Build Docker Image using Dockerfile + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/global/Dockerfile +docker build -t mineru:latest -f Dockerfile . +``` + +## Docker Description + +MinerU's Docker uses `vllm/vllm-openai` as the base image, so it includes the `vllm` inference acceleration framework and necessary dependencies by default. Therefore, on compatible devices, you can directly use `vllm` to accelerate VLM model inference. + +> [!NOTE] +> Requirements for using `vllm` to accelerate VLM model inference: +> +> - Device must have Volta architecture or later graphics cards with 8GB+ available VRAM. +> - The host machine's graphics driver should support CUDA 12.9.1 or higher; You can check the driver version using the `nvidia-smi` command. +> - Docker container must have access to the host machine's graphics devices. + +## Start Docker Container + +```bash +docker run --gpus all \ + --shm-size 32g \ + -p 30000:30000 -p 7860:7860 -p 8000:8000 -p 8002:8002 \ + --ipc=host \ + -it mineru:latest \ + /bin/bash +``` + +After executing this command, you will enter the Docker container's interactive terminal with some ports mapped for potential services. You can directly run MinerU-related commands within the container to use MinerU's features. +You can also directly start MinerU services by replacing `/bin/bash` with service startup commands. For detailed instructions, please refer to the [Start the service via command](https://opendatalab.github.io/MinerU/usage/quick_usage/#advanced-usage-via-api-webui-http-clientserver). + +## Start Services Directly with Docker Compose + +We provide a [compose.yaml](https://github.com/opendatalab/MinerU/blob/master/docker/compose.yaml) file that you can use to quickly start MinerU services. + +```bash +# Download compose.yaml file +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/compose.yaml +``` + +>[!NOTE] +> +>- The `compose.yaml` file contains configurations for multiple services of MinerU, you can choose to start specific services as needed. +>- Different services might have additional parameter configurations, which you can view and edit in the `compose.yaml` file. +>- Due to the pre-allocation of GPU memory by the `vllm` inference acceleration framework, you may not be able to run multiple `vllm` services simultaneously on the same machine. Therefore, ensure that other services that might use GPU memory have been stopped before starting the `vlm-openai-server` service or using the `vlm-vllm-engine` backend. + +--- + +### Start OpenAI-compatible server service +connect to `openai-server` via `vlm-http-client` backend + ```bash + docker compose -f compose.yaml --profile openai-server up -d + ``` + >[!TIP] + >In another terminal, connect to openai server via http client (only requires CPU and network, no vllm environment needed) + > ```bash + > mineru -p -o -b vlm-http-client -u http://:30000 + > ``` + +--- + +### Start Web API service + ```bash + docker compose -f compose.yaml --profile api up -d + ``` + >[!TIP] + >Access `http://:8000/docs` in your browser to view the API documentation. + +--- + +### Start MinerU Router service + ```bash + docker compose -f compose.yaml --profile router up -d + ``` + >[!TIP] + > + >- The default configuration runs in `--local-gpus auto` mode, automatically starting local workers in the container and exposing the unified entry at `http://:8002/docs`. + >- If you want to aggregate existing `mineru-api` services instead of starting local workers, refer to the commented example under the `mineru-router` service in `compose.yaml` and switch to `--upstream-url`. + +--- + +### Start Gradio WebUI service + ```bash + docker compose -f compose.yaml --profile gradio up -d + ``` + >[!TIP] + > + >- Access `http://:7860` in your browser to use the Gradio WebUI. diff --git a/docs/en/quick_start/extension_modules.md b/docs/en/quick_start/extension_modules.md new file mode 100644 index 000000000..f6bf34acd --- /dev/null +++ b/docs/en/quick_start/extension_modules.md @@ -0,0 +1,56 @@ +# MinerU Extension Modules Installation Guide +MinerU supports installing extension modules on demand based on different needs to enhance functionality or support specific model backends. + +## Common Scenarios + +### Core Functionality Installation +The `core` module is the core dependency of MinerU, containing all functional modules except `vllm`/`lmdeploy`. Installing this module ensures the basic functionality of MinerU works properly. +```bash +uv pip install "mineru[core]" +``` + +--- + +### Using `vllm` to Accelerate VLM Model Inference +> [!NOTE] +> `vllm` and `lmdeploy` have nearly identical VLM inference acceleration effects and usage methods. You can choose one of them to install and use based on your actual needs, but it is not recommended to install both modules simultaneously to avoid potential dependency conflicts. + +The `vllm` module provides acceleration support for VLM model inference, suitable for graphics cards with Volta architecture and later (8GB+ VRAM). Installing this module can significantly improve model inference speed. + +```bash +uv pip install "mineru[core,vllm]" +``` +> [!TIP] +> If exceptions occur during installation of the extra package including vllm, please refer to the [vllm official documentation](https://docs.vllm.ai/en/latest/getting_started/installation/index.html) to try to resolve the issue, or directly use the [Docker](./docker_deployment.md) deployment method. + +--- + +### Using `lmdeploy` to Accelerate VLM Model Inference +> [!NOTE] +> `vllm` and `lmdeploy` have nearly identical VLM inference acceleration effects and usage methods. You can choose one of them to install and use based on your actual needs, but it is not recommended to install both modules simultaneously to avoid potential dependency conflicts. + +The `lmdeploy` module provides acceleration support for VLM model inference, suitable for graphics cards with Volta architecture and later (8GB+ VRAM). Installing this module can significantly improve model inference speed. + +```bash +uv pip install "mineru[core,lmdeploy]" +``` +> [!TIP] +> If exceptions occur during installation of the extra package including lmdeploy, please refer to the [lmdeploy official documentation](https://lmdeploy.readthedocs.io/en/latest/get_started/installation.html) to try to resolve the issue. + +--- + +### Installing Lightweight Client to Connect to OpenAI-compatible servers (for vlm-http-client mode) +If you need to install a lightweight client on edge devices to connect to an OpenAI-compatible server for using VLM mode, you can install the basic mineru package, which is very lightweight and suitable for devices with only CPU and network connectivity. +```bash +uv pip install mineru +mineru -p -o -b vlm-http-client -u http://127.0.0.1:30000 +``` + +--- + +### Installing Lightweight Client to Connect to OpenAI-compatible servers (for hybrid-http-client mode) +If you need to install a lightweight client on edge devices to connect to an OpenAI-compatible server for using hybrid mode, you can install the mineru pipeline extension package, which is relatively lightweight and can be used on devices with only CPU and network connectivity, while running faster on devices that support GPU acceleration. +```bash +uv pip install "mineru[pipeline]" +mineru -p -o -b hybrid-http-client -u http://127.0.0.1:30000 +``` \ No newline at end of file diff --git a/docs/en/quick_start/index.md b/docs/en/quick_start/index.md new file mode 100644 index 000000000..b4a140ef9 --- /dev/null +++ b/docs/en/quick_start/index.md @@ -0,0 +1,143 @@ +# Quick Start + +If you encounter any installation issues, please check the [FAQ](../faq/index.md) first. + +## Online Experience + +### Official online web application +The official online version has the same functionality as the client, with a beautiful interface and rich features, requires login to use + +- [![OpenDataLab](https://img.shields.io/badge/webapp_on_mineru.net-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM0IiBoZWlnaHQ9IjEzNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTIyLDljMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Im0xMjIsOWMwLDUtNCw5LTksOXMtOS00LTktOSw0LTksOS05LDksNCw5LDl6IiBmaWxsPSIjMDEwMTAxIi8+PHBhdGggZD0ibTkxLDE4YzAsNS00LDktOSw5cy05LTQtOS05LDQtOSw5LTksOSw0LDksOXoiIGZpbGw9InVybCgjYikiLz48cGF0aCBkPSJtOTEsMThjMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0iIzAxMDEwMSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0idXJsKCNjKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0iIzAxMDEwMSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=&labelColor=white)](https://mineru.net/OpenSourceTools/Extractor?source=github) + +### Gradio-based online demo +A WebUI developed based on Gradio, with a simple interface and only core parsing functionality, no login required + +- [![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/OpenDataLab/MinerU) +- [![HuggingFace](https://img.shields.io/badge/Demo_on_HuggingFace-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABYCAMAAACkl9t/AAAAk1BMVEVHcEz/nQv/nQv/nQr/nQv/nQr/nQv/nQv/nQr/wRf/txT/pg7/yRr/rBD/zRz/ngv/oAz/zhz/nwv/txT/ngv/0B3+zBz/nQv/0h7/wxn/vRb/thXkuiT/rxH/pxD/ogzcqyf/nQvTlSz/czCxky7/SjifdjT/Mj3+Mj3wMj15aTnDNz+DSD9RTUBsP0FRO0Q6O0WyIxEIAAAAGHRSTlMADB8zSWF3krDDw8TJ1NbX5efv8ff9/fxKDJ9uAAAGKklEQVR42u2Z63qjOAyGC4RwCOfB2JAGqrSb2WnTw/1f3UaWcSGYNKTdf/P+mOkTrE+yJBulvfvLT2A5ruenaVHyIks33npl/6C4s/ZLAM45SOi/1FtZPyFur1OYofBX3w7d54Bxm+E8db+nDr12ttmESZ4zludJEG5S7TO72YPlKZFyE+YCYUJTBZsMiNS5Sd7NlDmKM2Eg2JQg8awbglfqgbhArjxkS7dgp2RH6hc9AMLdZYUtZN5DJr4molC8BfKrEkPKEnEVjLbgW1fLy77ZVOJagoIcLIl+IxaQZGjiX597HopF5CkaXVMDO9Pyix3AFV3kw4lQLCbHuMovz8FallbcQIJ5Ta0vks9RnolbCK84BtjKRS5uA43hYoZcOBGIG2Epbv6CvFVQ8m8loh66WNySsnN7htL58LNp+NXT8/PhXiBXPMjLSxtwp8W9f/1AngRierBkA+kk/IpUSOeKByzn8y3kAAAfh//0oXgV4roHm/kz4E2z//zRc3/lgwBzbM2mJxQEa5pqgX7d1L0htrhx7LKxOZlKbwcAWyEOWqYSI8YPtgDQVjpB5nvaHaSnBaQSD6hweDi8PosxD6/PT09YY3xQA7LTCTKfYX+QHpA0GCcqmEHvr/cyfKQTEuwgbs2kPxJEB0iNjfJcCTPyocx+A0griHSmADiC91oNGVwJ69RudYe65vJmoqfpul0lrqXadW0jFKH5BKwAeCq+Den7s+3zfRJzA61/Uj/9H/VzLKTx9jFPPdXeeP+L7WEvDLAKAIoF8bPTKT0+TM7W8ePj3Rz/Yn3kOAp2f1Kf0Weony7pn/cPydvhQYV+eFOfmOu7VB/ViPe34/EN3RFHY/yRuT8ddCtMPH/McBAT5s+vRde/gf2c/sPsjLK+m5IBQF5tO+h2tTlBGnP6693JdsvofjOPnnEHkh2TnV/X1fBl9S5zrwuwF8NFrAVJVwCAPTe8gaJlomqlp0pv4Pjn98tJ/t/fL++6unpR1YGC2n/KCoa0tTLoKiEeUPDl94nj+5/Tv3/eT5vBQ60X1S0oZr+IWRR8Ldhu7AlLjPISlJcO9vrFotky9SpzDequlwEir5beYAc0R7D9KS1DXva0jhYRDXoExPdc6yw5GShkZXe9QdO/uOvHofxjrV/TNS6iMJS+4TcSTgk9n5agJdBQbB//IfF/HpvPt3Tbi7b6I6K0R72p6ajryEJrENW2bbeVUGjfgoals4L443c7BEE4mJO2SpbRngxQrAKRudRzGQ8jVOL2qDVjjI8K1gc3TIJ5KiFZ1q+gdsARPB4NQS4AjwVSt72DSoXNyOWUrU5mQ9nRYyjp89Xo7oRI6Bga9QNT1mQ/ptaJq5T/7WcgAZywR/XlPGAUDdet3LE+qS0TI+g+aJU8MIqjo0Kx8Ly+maxLjJmjQ18rA0YCkxLQbUZP1WqdmyQGJLUm7VnQFqodmXSqmRrdVpqdzk5LvmvgtEcW8PMGdaS23EOWyDVbACZzUJPaqMbjDxpA3Qrgl0AikimGDbqmyT8P8NOYiqrldF8rX+YN7TopX4UoHuSCYY7cgX4gHwclQKl1zhx0THf+tCAUValzjI7Wg9EhptrkIcfIJjA94evOn8B2eHaVzvBrnl2ig0So6hvPaz0IGcOvTHvUIlE2+prqAxLSQxZlU2stql1NqCCLdIiIN/i1DBEHUoElM9dBravbiAnKqgpi4IBkw+utSPIoBijDXJipSVV7MpOEJUAc5Qmm3BnUN+w3hteEieYKfRZSIUcXKMVf0u5wD4EwsUNVvZOtUT7A2GkffHjByWpHqvRBYrTV72a6j8zZ6W0DTE86Hn04bmyWX3Ri9WH7ZU6Q7h+ZHo0nHUAcsQvVhXRDZHChwiyi/hnPuOsSEF6Exk3o6Y9DT1eZ+6cASXk2Y9k+6EOQMDGm6WBK10wOQJCBwren86cPPWUcRAnTVjGcU1LBgs9FURiX/e6479yZcLwCBmTxiawEwrOcleuu12t3tbLv/N4RLYIBhYexm7Fcn4OJcn0+zc+s8/VfPeddZHAGN6TT8eGczHdR/Gts1/MzDkThr23zqrVfAMFT33Nx1RJsx1k5zuWILLnG/vsH+Fv5D4NTVcp1Gzo8AAAAAElFTkSuQmCC&labelColor=white)](https://huggingface.co/spaces/opendatalab/MinerU) + +## Local Deployment + +> [!WARNING] +> **Prerequisites - Hardware and Software Environment Support** +> +> To ensure the stability and reliability of the project, we have optimized and tested only specific hardware and software environments during development. This ensures that users can achieve optimal performance and encounter the fewest compatibility issues when deploying and running the project on recommended system configurations. +> +> By concentrating our resources and efforts on mainstream environments, our team can more efficiently resolve potential bugs and timely develop new features. +> +> In non-mainstream environments, due to the diversity of hardware and software configurations, as well as compatibility issues with third-party dependencies, we cannot guarantee 100% usability of the project. Therefore, for users who wish to use this project in non-recommended environments, we suggest carefully reading the documentation and FAQ first, as most issues have corresponding solutions in the FAQ. Additionally, we encourage community feedback on issues so that we can gradually expand our support range. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parsing Backendpipeline*-auto-engine*-http-client
hybridvlmhybridvlm
Backend FeaturesGood CompatibilityHigh Hardware RequirementsFor OpenAI Compatible Servers2
Accuracy186+90+
Operating SystemLinux3 / Windows4 / macOS5
Pure CPU Support
GPU AccelerationVolta and later architecture GPUs or Apple SiliconNot Required
Min VRAM4GB8GB8GB2GB
RAMMin 16GB+, Recommended 32GB+16GB
Disk Space20GB+, SSD Recommended2GB
Python Version3.10-3.13
+ +1 Accuracy metrics are the End-to-End Evaluation Overall scores from OmniDocBench (v1.5), based on the latest version of `MinerU`. +2 Servers compatible with OpenAI API, such as local model servers or remote model services deployed via inference frameworks like `vLLM`/`SGLang`/`LMDeploy`. +3 Linux only supports distributions from 2019 and later. +4 Since the key dependency `ray` does not support Python 3.13 on Windows, only versions 3.10~3.12 are supported. +5 macOS requires version 14.0 or later. + + +### Install MinerU + +#### Install MinerU using pip or uv +```bash +pip install --upgrade pip +pip install uv +uv pip install -U "mineru[all]" +``` + +#### Install MinerU from source code +```bash +git clone https://github.com/opendatalab/MinerU.git +cd MinerU +uv pip install -e .[all] +``` + +> [!TIP] +> `mineru[all]` includes all core features, compatible with Windows / Linux / macOS systems, suitable for most users. +> If you need to specify the inference framework for the VLM model, or only intend to install a lightweight client on an edge device, please refer to the documentation [Extension Modules Installation Guide](https://opendatalab.github.io/MinerU/quick_start/extension_modules/). + +--- + +#### Deploy MinerU using Docker +MinerU provides a convenient Docker deployment method, which helps quickly set up the environment and solve some tricky environment compatibility issues. +You can get the [Docker Deployment Instructions](./docker_deployment.md) in the documentation. + +--- + +### Using MinerU + +If your device meets the GPU acceleration requirements in the table above, you can use a simple command line for document parsing: +```bash +mineru -p -o +``` +If your device does not meet the GPU acceleration requirements, you can specify the backend as `pipeline` to run in a pure CPU environment: +```bash +mineru -p -o -b pipeline +``` + +`mineru` currently supports local `PDF`, image, `DOCX`, `PPTX`, and `XLSX` file or directory inputs. + +You can use MinerU for document parsing through the CLI, API, WebUI. For detailed instructions, please refer to the [Usage Guide](../usage/index.md). diff --git a/docs/en/reference/changelog.md b/docs/en/reference/changelog.md new file mode 100644 index 000000000..abbb94b89 --- /dev/null +++ b/docs/en/reference/changelog.md @@ -0,0 +1,497 @@ +# Changelog + +This document records the release history of MinerU, including major capability changes, compatibility updates, and notable fixes. + +--- + +## 2.7 Series Versions + +### 2.7.6 (2026/02/06) + +- Added support for the Kunlunxin and Tecorigin domestic computing platforms. +- Officially or vendor-adapted domestic platforms now include Ascend, T-Head, METAX, Hygon, Enflame, Moore Threads, IluvatarCorex, Cambricon, Kunlunxin, Tecorigin, and Biren. +- MinerU continues to support domestic hardware platforms and mainstream chip architectures for document digitization workloads. + +### 2.7.4 (2026/01/30) + +- Added support for the IluvatarCorex and Cambricon domestic computing platforms. + +### 2.7.2 (2026/01/23) + +- Added support for the Hygon, Enflame, and Moore Threads domestic computing platforms. +- Improved cross-page table merging success rate and merge quality. + +### 2.7.1 (2026/01/06) + +- Bug fix: #4300 +- Updated the `pdfminer.six` dependency to resolve [CVE-2025-64512](https://github.com/advisories/GHSA-wf5f-4jwr-ppcp) +- Added automatic EXIF orientation correction for input images to improve OCR accuracy. #4283 + +### 2.7.0 (2025/12/30) + +- Simplified installation. `uv pip install mineru[all]` now installs dependencies for all optional backends without requiring separate VLM engine installation. +- Added the new `hybrid` backend, which combines the strengths of `pipeline` and `vlm`: + - Direct text extraction from text PDFs with native multilingual support and much lower hallucination risk; + - OCR in 109 languages for scanned PDFs when the OCR language is specified; + - An independent inline-formula toggle for improved rendering when inline formulas are not needed. +- Simplified engine selection for `vlm/hybrid` backends. Users only need to choose `*-auto-engine` and MinerU selects an appropriate local inference engine automatically. +- Switched the default backend from `pipeline` to `hybrid-auto-engine` for better out-of-the-box consistency. +- Added i18n support to the Gradio application, enabling Chinese/English switching. + +--- + +## 2.6 Series Versions + +### 2.6.7 (2025/12/12) + +- Bug fix: #4168 + +### 2.6.6 (2025/12/02) + +**`mineru-api` tool optimizations** + +- Added descriptive text to `mineru-api` interface parameters to improve API documentation readability. +- You can use the environment variable `MINERU_API_ENABLE_FASTAPI_DOCS` to control whether the auto-generated interface documentation page is enabled (enabled by default). +- Added concurrency configuration options for the `vlm-vllm-async-engine`, `vlm-lmdeploy-engine`, and `vlm-http-client` backends. Users can use the environment variable `MINERU_API_MAX_CONCURRENT_REQUESTS` to set the maximum number of concurrent API requests (unlimited by default). + +### 2.6.5 (2025/11/26) + +- Added support for a new backend vlm-lmdeploy-engine. Its usage is similar to vlm-vllm-(async)engine, but it uses lmdeploy as the inference engine and additionally supports native inference acceleration on Windows platforms compared to vllm. + +### 2.6.4 (2025/11/04) + +- Added timeout configuration for PDF image rendering, default is 300 seconds, can be configured via environment variable `MINERU_PDF_RENDER_TIMEOUT` to prevent long blocking of the rendering process caused by some abnormal PDF files. +- Added CPU thread count configuration options for ONNX models, default is the system CPU core count, can be configured via environment variables `MINERU_INTRA_OP_NUM_THREADS` and `MINERU_INTER_OP_NUM_THREADS` to reduce CPU resource contention conflicts in high concurrency scenarios. + +### 2.6.3 (2025/10/31) + +- Added support for a new backend `vlm-mlx-engine`, enabling MLX-accelerated inference for the MinerU2.5 model on Apple Silicon devices. Compared to the `vlm-transformers` backend, `vlm-mlx-engine` delivers a 100%–200% speed improvement. +- Bug fixes: #3849, #3859 + +### 2.6.2 (2025/10/24) + +**`pipeline` backend optimizations** + +- Added experimental support for Chinese formulas, which can be enabled by setting the environment variable `export MINERU_FORMULA_CH_SUPPORT=1`. This feature may cause a slight decrease in MFR speed and failures in recognizing some long formulas. It is recommended to enable it only when parsing Chinese formulas is needed. To disable this feature, set the environment variable to `0`. +- `OCR` speed significantly improved by 200%~300%, thanks to the optimization solution provided by [@cjsdurj](https://github.com/cjsdurj) +- `OCR` models optimized for improved accuracy and coverage of Latin script recognition, and updated Cyrillic, Arabic, Devanagari, Telugu (te), and Tamil (ta) language systems to `ppocr-v5` version, with accuracy improved by over 40% compared to previous models + +**`vlm` backend optimizations** + +- `table_caption` and `table_footnote` matching logic optimized to improve the accuracy of table caption and footnote matching and reading order rationality in scenarios with multiple consecutive tables on a page +- Optimized CPU resource usage during high concurrency when using `vllm` backend, reducing server pressure +- Adapted to `vllm` version 0.11.0 + +**General optimizations** + +- Cross-page table merging effect optimized, added support for cross-page continuation table merging, improving table merging effectiveness in multi-column merge scenarios +- Added environment variable configuration option `MINERU_TABLE_MERGE_ENABLE` for table merging feature. Table merging is enabled by default and can be disabled by setting this variable to `0` + +--- + +## 2.5 Series Versions + +### 2.5.4 (2025/09/26) + +- 🎉🎉 The MinerU2.5 [Technical Report](https://arxiv.org/abs/2509.22186) is now available! We welcome you to read it for a comprehensive overview of its model architecture, training strategy, data engineering and evaluation results. +- Fixed an issue where some `PDF` files were mistakenly identified as `AI` files, causing parsing failures + +### 2.5.3 (2025/09/20) + +- Dependency version range adjustment to enable Turing and earlier architecture GPUs to use vLLM acceleration for MinerU2.5 model inference. +- `pipeline` backend compatibility fixes for torch 2.8.0. +- Reduced default concurrency for vLLM async backend to lower server pressure and avoid connection closure issues caused by high load. +- More compatibility-related details can be found in the [announcement](https://github.com/opendatalab/MinerU/discussions/3548) + +### 2.5.2 (2025/09/19) + +We are officially releasing MinerU2.5, currently the most powerful multimodal large model for document parsing. + +With only 1.2B parameters, MinerU2.5's accuracy on the OmniDocBench benchmark comprehensively surpasses top-tier multimodal models like Gemini 2.5 Pro, GPT-4o, and Qwen2.5-VL-72B. It also significantly outperforms leading specialized models such as dots.ocr, MonkeyOCR, and PP-StructureV3. + +The model has been released on [HuggingFace](https://huggingface.co/opendatalab/MinerU2.5-2509-1.2B) and [ModelScope](https://modelscope.cn/models/opendatalab/MinerU2.5-2509-1.2B) platforms. Welcome to download and use! + +**Core Highlights** + +- SOTA Performance with Extreme Efficiency: As a 1.2B model, it achieves State-of-the-Art (SOTA) results that exceed models in the 10B and 100B+ classes, redefining the performance-per-parameter standard in document AI. +- Advanced Architecture for Across-the-Board Leadership: By combining a two-stage inference pipeline (decoupling layout analysis from content recognition) with a native high-resolution architecture, it achieves SOTA performance across five key areas: layout analysis, text recognition, formula recognition, table recognition, and reading order. + +**Key Capability Enhancements** + +- Layout Detection: Delivers more complete results by accurately covering non-body content like headers, footers, and page numbers. It also provides more precise element localization and natural format reconstruction for lists and references. +- Table Parsing: Drastically improves parsing for challenging cases, including rotated tables, borderless/semi-structured tables, and long/complex tables. +- Formula Recognition: Significantly boosts accuracy for complex, long-form, and hybrid Chinese-English formulas, greatly enhancing the parsing capability for mathematical documents. + +**Repository Adjustments** + +Additionally, with the release of vlm 2.5, we have made some adjustments to the repository: + +- The vlm backend has been upgraded to version 2.5, supporting the MinerU2.5 model and no longer compatible with the MinerU2.0-2505-0.9B model. The last version supporting the 2.0 model is mineru-2.2.2. +- VLM inference-related code has been moved to [mineru_vl_utils](https://github.com/opendatalab/mineru-vl-utils), reducing coupling with the main mineru repository and facilitating independent iteration in the future. +- The vlm accelerated inference framework has been switched from `sglang` to `vllm`, achieving full compatibility with the vllm ecosystem, allowing users to use the MinerU2.5 model and accelerated inference on any platform that supports the vllm framework. +- Due to major upgrades in the vlm model supporting more layout types, we have made some adjustments to the structure of the parsing intermediate file `middle.json` and result file `content_list.json`. Please refer to the [documentation](https://opendatalab.github.io/MinerU/reference/output_files/) for details. + +**Other Repository Optimizations** + +- Removed file extension whitelist validation for input files. When input files are PDF documents or images, there are no longer requirements for file extensions, improving usability. + +--- + +## 2.2 - 2.4 Series Versions + +### 2.2.2 (2025/09/10) + +- Fixed the issue where the new table recognition model would affect the overall parsing task when some table parsing failed + +### 2.2.1 (2025/09/08) + +- Fixed the issue where some newly added models were not downloaded when using the model download command. + +### 2.2.0 (2025/09/05) + +**Major Updates** + +- In this version, we focused on improving table parsing accuracy by introducing a new [wired table recognition model](https://github.com/RapidAI/TableStructureRec) and a brand-new hybrid table structure parsing algorithm, significantly enhancing the table recognition capabilities of the `pipeline` backend. +- We also added support for cross-page table merging, which is supported by both `pipeline` and `vlm` backends, further improving the completeness and accuracy of table parsing. + +**Other Updates** + +- The `pipeline` backend now supports 270-degree rotated table parsing, bringing support for table parsing in 0/90/270-degree orientations +- `pipeline` added OCR capability support for Thai and Greek, and updated the English OCR model to the latest version. English recognition accuracy improved by 11%, Thai recognition model accuracy is 82.68%, and Greek recognition model accuracy is 89.28% (by PPOCRv5) +- Added `bbox` field (mapped to 0-1000 range) in the output `content_list.json`, making it convenient for users to directly obtain position information for each content block +- Removed the `pipeline_old_linux` installation option, no longer supporting legacy Linux systems such as `CentOS 7`, to provide better support for `uv`'s `sync`/`run` commands + +--- + +## 2.1 Series Versions + +### 2.1.10 (2025/08/01) + +- Fixed an issue in the `pipeline` backend where block overlap caused the parsing results to deviate from expectations #3232 + +### 2.1.9 (2025/07/30) + +- `transformers` 4.54.1 version adaptation + +### 2.1.8 (2025/07/28) + +- `sglang` 0.4.9.post5 version adaptation + +### 2.1.7 (2025/07/27) + +- `transformers` 4.54.0 version adaptation + +### 2.1.6 (2025/07/26) + +- Fixed table parsing issues in handwritten documents when using `vlm` backend +- Fixed visualization box position drift issue when document is rotated #3175 + +### 2.1.5 (2025/07/24) + +- `sglang` 0.4.9 version adaptation, synchronously upgrading the dockerfile base image to sglang 0.4.9.post3 + +### 2.1.4 (2025/07/23) + +**Bug Fixes** + +- Fixed the issue of excessive memory consumption during the `MFR` step in the `pipeline` backend under certain scenarios #2771 +- Fixed the inaccurate matching between `image`/`table` and `caption`/`footnote` under certain conditions #3129 + +### 2.1.1 (2025/07/16) + +**Bug fixes** + +- Fixed text block content loss issue that could occur in certain `pipeline` scenarios #3005 +- Fixed issue where `sglang-client` required unnecessary packages like `torch` #2968 +- Updated `dockerfile` to fix incomplete text content parsing due to missing fonts in Linux #2915 + +**Usability improvements** + +- Updated `compose.yaml` to facilitate direct startup of `sglang-server`, `mineru-api`, and `mineru-gradio` services +- Launched brand new [online documentation site](https://opendatalab.github.io/MinerU/), simplified readme, providing better documentation experience + +### 2.1.0 (2025/07/05) + +This is the first major update of MinerU 2, which includes a large number of new features and improvements, covering significant performance optimizations, user experience enhancements, and bug fixes. The detailed update contents are as follows: + +**Performance Optimizations** + +- Significantly improved preprocessing speed for documents with specific resolutions (around 2000 pixels on the long side). +- Greatly enhanced post-processing speed when the `pipeline` backend handles batch processing of documents with fewer pages (<10 pages). +- Layout analysis speed of the `pipeline` backend has been increased by approximately 20%. + +**Experience Enhancements** + +- Built-in ready-to-use `fastapi service` and `gradio webui`. For detailed usage instructions, please refer to [Documentation](https://opendatalab.github.io/MinerU/usage/quick_usage/#advanced-usage-via-api-webui-sglang-clientserver). +- Adapted to `sglang` version `0.4.8`, significantly reducing the GPU memory requirements for the `vlm-sglang` backend. It can now run on graphics cards with as little as `8GB GPU memory` (Turing architecture or newer). +- Added transparent parameter passing for all commands related to `sglang`, allowing the `sglang-engine` backend to receive all `sglang` parameters consistently with the `sglang-server`. +- Supports feature extensions based on configuration files, including `custom formula delimiters`, `enabling heading classification`, and `customizing local model directories`. For detailed usage instructions, please refer to [Documentation](https://opendatalab.github.io/MinerU/usage/quick_usage/#extending-mineru-functionality-with-configuration-files). + +**New Features** + +- Updated the `pipeline` backend with the PP-OCRv5 multilingual text recognition model, supporting text recognition in 37 languages such as French, Spanish, Portuguese, Russian, and Korean, with an average accuracy improvement of over 30%. [Details](https://paddlepaddle.github.io/PaddleOCR/latest/en/version3.x/algorithm/PP-OCRv5/PP-OCRv5_multi_languages.html) +- Introduced limited support for vertical text layout in the `pipeline` backend. + +--- + +## 2.0 Series Versions + +### 2.0.6 (2025/06/20) + +- Fixed occasional parsing interruptions caused by invalid block content in `vlm` mode +- Fixed parsing interruptions caused by incomplete table structures in `vlm` mode + +### 2.0.5 (2025/06/17) + +- Fixed the issue where models were still required to be downloaded in the `sglang-client` mode +- Fixed the issue where the `sglang-client` mode unnecessarily depended on packages like `torch` during runtime. +- Fixed the issue where only the first instance would take effect when attempting to launch multiple `sglang-client` instances via multiple URLs within the same process + +### 2.0.3 (2025/06/15) + +- Fixed a configuration file key-value update error that occurred when downloading model type was set to `all` +- Fixed the issue where the formula and table feature toggle switches were not working in `command line mode`, causing the features to remain enabled. +- Fixed compatibility issues with sglang version 0.4.7 in the `sglang-engine` mode. +- Updated Dockerfile and installation documentation for deploying the full version of MinerU in sglang environment + +### 2.0.0 (2025/06/13) + +**New Architecture** + +MinerU 2.0 has been deeply restructured in code organization and interaction methods, significantly improving system usability, maintainability, and extensibility. + +- **Removal of Third-party Dependency Limitations**: Completely eliminated the dependency on `pymupdf`, moving the project toward a more open and compliant open-source direction. +- **Ready-to-use, Easy Configuration**: No need to manually edit JSON configuration files; most parameters can now be set directly via command line or API. +- **Automatic Model Management**: Added automatic model download and update mechanisms, allowing users to complete model deployment without manual intervention. +- **Offline Deployment Friendly**: Provides built-in model download commands, supporting deployment requirements in completely offline environments. +- **Streamlined Code Structure**: Removed thousands of lines of redundant code, simplified class inheritance logic, significantly improving code readability and development efficiency. +- **Unified Intermediate Format Output**: Adopted standardized `middle_json` format, compatible with most secondary development scenarios based on this format, ensuring seamless ecosystem business migration. + +**New Model** + +MinerU 2.0 integrates our latest small-parameter, high-performance multimodal document parsing model, achieving end-to-end high-speed, high-precision document understanding. + +- **Small Model, Big Capabilities**: With parameters under 1B, yet surpassing traditional 72B-level vision-language models (VLMs) in parsing accuracy. +- **Multiple Functions in One**: A single model covers multilingual recognition, handwriting recognition, layout analysis, table parsing, formula recognition, reading order sorting, and other core tasks. +- **Ultimate Inference Speed**: Achieves peak throughput exceeding 10,000 tokens/s through `sglang` acceleration on a single NVIDIA 4090 card, easily handling large-scale document processing requirements. +- **Online Experience**: You can experience our brand-new VLM model on [MinerU.net](https://mineru.net/OpenSourceTools/Extractor), [Hugging Face](https://huggingface.co/spaces/opendatalab/MinerU), and [ModelScope](https://www.modelscope.cn/studios/OpenDataLab/MinerU). + +**Incompatible Changes Notice** + +To improve overall architectural rationality and long-term maintainability, this version contains some incompatible changes: + +- Python package name changed from `magic-pdf` to `mineru`, and the command-line tool changed from `magic-pdf` to `mineru`. Please update your scripts and command calls accordingly. +- For modular system design and ecosystem consistency considerations, MinerU 2.0 no longer includes the LibreOffice document conversion module. If you need to process Office documents, we recommend converting them to PDF format through an independently deployed LibreOffice service before proceeding with subsequent parsing operations. + +--- + +## 1.x Series Historical Versions + +### 1.3.12 (2025/05/24) + +Added support for PPOCRv5 models, updated `ch_server` model to `PP-OCRv5_rec_server`, and `ch_lite` model to `PP-OCRv5_rec_mobile` (model update required) + +- In testing, we found that PPOCRv5(server) has some improvement for handwritten documents, but has slightly lower accuracy than v4_server_doc for other document types, so the default ch model remains unchanged as `PP-OCRv4_server_rec_doc`. +- Since PPOCRv5 has enhanced recognition capabilities for handwriting and special characters, you can manually choose the PPOCRv5 model for Japanese-Traditional Chinese mixed scenarios and handwritten documents +- You can select the appropriate model through the lang parameter `lang='ch_server'` (Python API) or `--lang ch_server` (command line): + - `ch`: `PP-OCRv4_server_rec_doc` (default) (Chinese/English/Japanese/Traditional Chinese mixed/15K dictionary) + - `ch_server`: `PP-OCRv5_rec_server` (Chinese/English/Japanese/Traditional Chinese mixed + handwriting/18K dictionary) + - `ch_lite`: `PP-OCRv5_rec_mobile` (Chinese/English/Japanese/Traditional Chinese mixed + handwriting/18K dictionary) + - `ch_server_v4`: `PP-OCRv4_rec_server` (Chinese/English mixed/6K dictionary) + - `ch_lite_v4`: `PP-OCRv4_rec_mobile` (Chinese/English mixed/6K dictionary) + +Added support for handwritten documents through optimized layout recognition of handwritten text areas + +- This feature is supported by default, no additional configuration required +- You can refer to the instructions above to manually select the PPOCRv5 model for better handwritten document parsing results + +The `huggingface` and `modelscope` demos have been updated to versions that support handwriting recognition and PPOCRv5 models, which you can experience online + +### 1.3.10 (2025/04/29) + +- Added support for custom formula delimiters, which can be configured by modifying the `latex-delimiter-config` section in the `magic-pdf.json` file in your user directory. + +### 1.3.9 (2025/04/27) + +- Optimized formula parsing functionality, improved formula rendering success rate + +### 1.3.8 (2025/04/23) + +The default `ocr` model (`ch`) has been updated to `PP-OCRv4_server_rec_doc` (model update required) + +- `PP-OCRv4_server_rec_doc` is trained on a mixture of more Chinese document data and PP-OCR training data based on `PP-OCRv4_server_rec`, adding recognition capabilities for some traditional Chinese characters, Japanese, and special characters. It can recognize over 15,000 characters and improves both document-specific and general text recognition abilities. +- [Performance comparison of PP-OCRv4_server_rec_doc/PP-OCRv4_server_rec/PP-OCRv4_mobile_rec](https://paddlepaddle.github.io/PaddleX/latest/module_usage/tutorials/ocr_modules/text_recognition.html#_3) +- After verification, the `PP-OCRv4_server_rec_doc` model shows significant accuracy improvements in Chinese/English/Japanese/Traditional Chinese in both single language and mixed language scenarios, with comparable speed to `PP-OCRv4_server_rec`, making it suitable for most use cases. +- In some pure English scenarios, `PP-OCRv4_server_rec_doc` may have word adhesion issues, while `PP-OCRv4_server_rec` performs better in these cases. Therefore, we've kept the `PP-OCRv4_server_rec` model, which users can access by adding the parameter `lang='ch_server'` (Python API) or `--lang ch_server` (command line). + +### 1.3.7 (2025/04/22) + +- Fixed the issue where the lang parameter was ineffective during table parsing model initialization +- Fixed the significant speed reduction of OCR and table parsing in `cpu` mode + +### 1.3.4 (2025/04/16) + +- Slightly improved OCR-det speed by removing some unnecessary blocks +- Fixed page-internal sorting errors caused by footnotes in certain cases + +### 1.3.2 (2025/04/12) + +- Fixed dependency version incompatibility issues when installing on Windows with Python 3.13 +- Optimized memory usage during batch inference +- Improved parsing of tables rotated 90 degrees +- Enhanced parsing of oversized tables in financial report samples +- Fixed the occasional word adhesion issue in English text areas when OCR language is not specified (model update required) + +### 1.3.1 (2025/04/08) + +Fixed several compatibility issues + +- Added support for Python 3.13 +- Made final adaptations for outdated Linux systems (such as CentOS 7) with no guarantee of continued support in future versions, [installation instructions](https://github.com/opendatalab/MinerU/issues/1004) + +### 1.3.0 (2025/04/03) + +**Installation and compatibility optimizations** + +- Resolved compatibility issues caused by `detectron2` by removing `layoutlmv3` usage in layout +- Extended torch version compatibility to 2.2~2.6 (excluding 2.5) +- Added CUDA compatibility for versions 11.8/12.4/12.6/12.8 (CUDA version determined by torch), solving compatibility issues for users with 50-series and H-series GPUs +- Extended Python compatibility to versions 3.10~3.12, fixing the issue of automatic downgrade to version 0.6.1 when installing in non-3.10 environments +- Optimized offline deployment process, eliminating the need to download any model files after successful deployment + +**Performance optimizations** + +- Enhanced parsing speed for batches of small files by supporting batch processing of multiple PDF files ([script example](demo/batch_demo.py)), with formula parsing speed improved by up to 1400% and overall parsing speed improved by up to 500% compared to version 1.0.1 +- Reduced memory usage and improved parsing speed by optimizing MFR model loading and usage (requires re-running the [model download process](docs/how_to_download_models_zh_cn.md) to get incremental updates to model files) +- Optimized GPU memory usage, requiring only 6GB minimum to run this project +- Improved running speed on MPS devices + +**Parsing effect optimizations** + +- Updated MFR model to `unimernet(2503)`, fixing line break loss issues in multi-line formulas + +**Usability optimizations** + +- Completely replaced the `paddle` framework and `paddleocr` in the project by using `paddleocr2torch`, resolving conflicts between `paddle` and `torch`, as well as thread safety issues caused by the `paddle` framework +- Added real-time progress bar display during parsing, allowing precise tracking of parsing progress and making the waiting process more bearable + +### 1.2.1 (2025/03/03) + +Fixed some issues + +- Fixed the impact on punctuation marks during full-width to half-width conversion of letters and numbers +- Fixed caption matching inaccuracies in certain scenarios +- Fixed formula span loss issues in certain scenarios + +### 1.2.0 (2025/02/24) + +This version includes several fixes and improvements to enhance parsing efficiency and accuracy: + +**Performance Optimization** + +- Increased classification speed for PDF documents in auto mode. + +**Parsing Optimization** + +- Improved parsing logic for documents containing watermarks, significantly enhancing the parsing results for such documents. +- Enhanced the matching logic for multiple images/tables and captions within a single page, improving the accuracy of image-text matching in complex layouts. + +**Bug Fixes** + +- Fixed an issue where image/table spans were incorrectly filled into text blocks under certain conditions. +- Resolved an issue where title blocks were empty in some cases. + +### 1.1.0 (2025/01/22) + +In this version we have focused on improving parsing accuracy and efficiency: + +**Model capability upgrade** (requires re-executing the [model download process](https://github.com/opendatalab/MinerU/blob/master/docs/how_to_download_models_en.md) to obtain incremental updates of model files) + +- The layout recognition model has been upgraded to the latest `doclayout_yolo(2501)` model, improving layout recognition accuracy. +- The formula parsing model has been upgraded to the latest `unimernet(2501)` model, improving formula recognition accuracy. + +**Performance optimization** + +- On devices that meet certain configuration requirements (16GB+ VRAM), by optimizing resource usage and restructuring the processing pipeline, overall parsing speed has been increased by more than 50%. + +**Parsing effect optimization** + +- Added a new heading classification feature (testing version, enabled by default) to the online demo ([mineru.net](https://mineru.net/OpenSourceTools/Extractor)/[huggingface](https://huggingface.co/spaces/opendatalab/MinerU)/[modelscope](https://www.modelscope.cn/studios/OpenDataLab/MinerU)), which supports hierarchical classification of headings, thereby enhancing document structuring. + +### 1.0.1 (2025/01/10) + +This is our first official release, where we have introduced a completely new API interface and enhanced compatibility through extensive refactoring, as well as a brand new automatic language identification feature: + +**New API Interface** + +- For the data-side API, we have introduced the Dataset class, designed to provide a robust and flexible data processing framework. This framework currently supports a variety of document formats, including images (.jpg and .png), PDFs, Word documents (.doc and .docx), and PowerPoint presentations (.ppt and .pptx). It ensures effective support for data processing tasks ranging from simple to complex. +- For the user-side API, we have meticulously designed the MinerU processing workflow as a series of composable Stages. Each Stage represents a specific processing step, allowing users to define new Stages according to their needs and creatively combine these stages to customize their data processing workflows. + +**Enhanced Compatibility** + +- By optimizing the dependency environment and configuration items, we ensure stable and efficient operation on ARM architecture Linux systems. +- We have deeply integrated with Huawei Ascend NPU acceleration, providing autonomous and controllable high-performance computing capabilities. This supports the localization and development of AI application platforms in China. [Ascend NPU Acceleration](https://github.com/opendatalab/MinerU/blob/master/docs/README_Ascend_NPU_Acceleration_zh_CN.md) + +**Automatic Language Identification** + +- By introducing a new language recognition model, setting the `lang` configuration to `auto` during document parsing will automatically select the appropriate OCR language model, improving the accuracy of scanned document parsing. + +--- + +## 0.x Series Historical Versions + +### 0.10.0 (2024/11/22) + +Introducing hybrid OCR text extraction capabilities: + +- Significantly improved parsing performance in complex text distribution scenarios such as dense formulas, irregular span regions, and text represented by images. +- Combines the dual advantages of accurate content extraction and faster speed in text mode, and more precise span/line region recognition in OCR mode. + +### 0.9.3 (2024/11/15) + +Integrated [RapidTable](https://github.com/RapidAI/RapidTable) for table recognition, improving single-table parsing speed by more than 10 times, with higher accuracy and lower GPU memory usage. + +### 0.9.2 (2024/11/06) + +Integrated the [StructTable-InternVL2-1B](https://huggingface.co/U4R/StructTable-InternVL2-1B) model for table recognition functionality. + +### 0.9.0 (2024/10/31) + +This is a major new version with extensive code refactoring, addressing numerous issues, improving performance, reducing hardware requirements, and enhancing usability: + +- Refactored the sorting module code to use [layoutreader](https://github.com/ppaanngggg/layoutreader) for reading order sorting, ensuring high accuracy in various layouts. +- Refactored the paragraph concatenation module to achieve good results in cross-column, cross-page, cross-figure, and cross-table scenarios. +- Refactored the list and table of contents recognition functions, significantly improving the accuracy of list blocks and table of contents blocks, as well as the parsing of corresponding text paragraphs. +- Refactored the matching logic for figures, tables, and descriptive text, greatly enhancing the accuracy of matching captions and footnotes to figures and tables, and reducing the loss rate of descriptive text to near zero. +- Added multi-language support for OCR, supporting detection and recognition of 84 languages. For the list of supported languages, see [OCR Language Support List](https://paddlepaddle.github.io/PaddleOCR/latest/en/ppocr/blog/multi_languages.html#5). +- Added memory recycling logic and other memory optimization measures, significantly reducing memory usage. The memory requirement for enabling all acceleration features except table acceleration (layout/formula/OCR) has been reduced from 16GB to 8GB, and the memory requirement for enabling all acceleration features has been reduced from 24GB to 10GB. +- Optimized configuration file feature switches, adding an independent formula detection switch to significantly improve speed and parsing results when formula detection is not needed. +- Integrated [PDF-Extract-Kit 1.0](https://github.com/opendatalab/PDF-Extract-Kit): + - Added the self-developed `doclayout_yolo` model, which speeds up processing by more than 10 times compared to the original solution while maintaining similar parsing effects, and can be freely switched with `layoutlmv3` via the configuration file. + - Upgraded formula parsing to `unimernet 0.2.1`, improving formula parsing accuracy while significantly reducing memory usage. + - Due to the repository change for `PDF-Extract-Kit 1.0`, you need to re-download the model. Please refer to [How to Download Models](https://github.com/opendatalab/MinerU/blob/master/docs/how_to_download_models_en.md) for detailed steps. + +### 0.8.1 (2024/09/27) + +Fixed some bugs, and providing a [localized deployment version](https://github.com/opendatalab/MinerU/blob/master/projects/web_demo/README.md) of the [online demo](https://opendatalab.com/OpenSourceTools/Extractor/PDF/) and the [front-end interface](https://github.com/opendatalab/MinerU/blob/master/projects/web/README.md). + +### 0.8.0 (2024/09/09) + +Supporting fast deployment with Dockerfile, and launching demos on Huggingface and Modelscope. + +### 0.7.1 (2024/08/30) + +Add paddle tablemaster table recognition option + +### 0.7.0b1 (2024/08/09) + +Simplified installation process, added table recognition functionality + +### 0.6.2b1 (2024/08/01) + +Optimized dependency conflict issues and installation documentation + +### Initial Open-Source Release (2024/07/05) + +MinerU project's first open-source release + diff --git a/docs/en/reference/index.md b/docs/en/reference/index.md new file mode 100644 index 000000000..638dbe36c --- /dev/null +++ b/docs/en/reference/index.md @@ -0,0 +1,27 @@ +# Reference Documentation + +This section provides detailed reference materials for MinerU project. Here you can find technical specifications, API documentation, output file formats, and version history. + +## Table of Contents + +- [Output Files Documentation](./output_files.md) - Detailed explanation of all output files and their formats +- [Changelog](./changelog.md) - Version update history and release notes + +## Documentation Overview + +### Output Files Documentation + +Understanding the output files generated by MinerU is crucial for effective use of the tool. The output files documentation provides: + +- **Visual debugging files**: Help you understand the document parsing process +- **Structured data files**: Contain detailed parsing results for further processing +- **File format specifications**: Detailed descriptions of each output file type + +### Changelog + +The changelog documents the evolution of MinerU, including: + +- **Version updates**: New features and improvements for each release +- **Bug fixes**: Issues resolved in each version +- **Breaking changes**: Important changes that may affect your usage +- **Deprecations**: Features that are being phased out diff --git a/docs/en/reference/output_files.md b/docs/en/reference/output_files.md new file mode 100644 index 000000000..7c60c73bc --- /dev/null +++ b/docs/en/reference/output_files.md @@ -0,0 +1,736 @@ +# MinerU Output Files Documentation + +## Overview + +After executing the `mineru` command, in addition to the main markdown file output, multiple auxiliary files are generated for debugging, quality inspection, and further processing. These files include: + +The exact set of generated files depends on the backend and the input document type. + +- **Visual debugging files**: Help users intuitively understand the document parsing process and results +- **Structured data files**: Contain detailed parsing data for secondary development +- In multimodal markdown output, `image` / `chart` blocks render the screenshot first; when `content` exists, a collapsed HTML `
` block is appended after the image, using the block `sub_type` as the summary label when available and falling back to `image content` or `chart content` + +The following sections provide detailed descriptions of each file's purpose and format. + +## Visual Debugging Files + +### Layout Analysis File (layout.pdf) + +**File naming format**: `{original_filename}_layout.pdf` + +**Functionality**: + +- Visualizes layout analysis results for each page +- Numbers in the top-right corner of each detection box indicate reading order +- Different background colors distinguish different types of content blocks + +**Use cases**: + +- Check if layout analysis is correct +- Verify if reading order is reasonable +- Debug layout-related issues + +![layout page example](../images/layout_example.png) + +### Text Spans File (span.pdf) + +> [!NOTE] +> Only applicable to pipeline backend + +**File naming format**: `{original_filename}_span.pdf` + +**Functionality**: + +- Uses different colored line boxes to annotate page content based on span type +- Used for quality inspection and issue troubleshooting + +**Use cases**: + +- Quickly troubleshoot text loss issues +- Check inline formula recognition +- Verify text segmentation accuracy + +![span page example](../images/spans_example.png) + +## Structured Data Files + +> [!IMPORTANT] +> The VLM backend output has significant changes in version 2.5 and is not backward-compatible with the pipeline backend. If you plan to build secondary development on structured outputs, please read this document carefully. + +### Pipeline Backend Output Results + +#### Model Inference Results (model.json) + +**File naming format**: `{original_filename}_model.json` + +##### Sample Data + +```json +[ + { + "cls_id": 12, + "label": "header", + "score": 0.93, + "bbox": [ + 1217, + 104, + 1516, + 134 + ], + "index": 2 + }, + { + "cls_id": 6, + "label": "doc_title", + "score": 0.9751, + "bbox": [ + 275, + 181, + 1512, + 292 + ], + "index": 3 + }, + { + "cls_id": 22, + "label": "text", + "score": 0.9217, + "bbox": [ + 275, + 330, + 524, + 370 + ], + "index": 4 + } +] +``` + +#### Intermediate Processing Results (middle.json) + +**File naming format**: `{original_filename}_middle.json` + +##### Top-level Structure + +| Field Name | Type | Description | +|------------|------|-------------| +| `pdf_info` | `list[dict]` | Array of parsing results for each page | +| `_backend` | `string` | Parsing mode: `pipeline`, `vlm`, or `office` | +| `_version_name` | `string` | MinerU version number | + +##### Page Information Structure (pdf_info) + +| Field Name | Description | +|------------|-------------| +| `preproc_blocks` | Unsegmented intermediate results after PDF preprocessing | +| `page_idx` | Page number, starting from 0 | +| `page_size` | Page width and height `[width, height]` | +| `images` | Image block information list | +| `tables` | Table block information list | +| `interline_equations` | Interline formula block information list | +| `discarded_blocks` | Block information to be discarded | +| `para_blocks` | Content block results after segmentation | + +##### Block Structure Hierarchy + +``` +Level 1 blocks (table | image | chart) +└── Level 2 blocks + └── Lines + └── Spans +``` + +##### Level 1 Block Fields + +| Field Name | Description | +|------------|-------------| +| `type` | Block type: `table`, `image`, or `chart` | +| `bbox` | Rectangular box coordinates of the block `[x0, y0, x1, y1]` | +| `blocks` | List of contained level 2 blocks | + +##### Level 2 Block Fields + +| Field Name | Description | +|------------|-------------| +| `type` | Block type (see table below) | +| `bbox` | Rectangular box coordinates of the block | +| `lines` | List of contained line information | + +##### Level 2 Block Types + +| Type | Description | +|------|-------------| +| `image_body` | Image body | +| `image_caption` | Image caption text | +| `image_footnote` | Image footnote | +| `table_body` | Table body | +| `table_caption` | Table caption text | +| `table_footnote` | Table footnote | +| `chart_body` | Chart body | +| `chart_caption` | Chart caption text | +| `chart_footnote` | Chart footnote | +| `text` | Text block | +| `title` | Title block | +| `index` | Index block | +| `list` | List block | +| `interline_equation` | Interline formula block | + +##### Line and Span Structure + +**Line fields**: +- `bbox`: Rectangular box coordinates of the line +- `spans`: List of contained spans + +**Span fields**: +- `bbox`: Rectangular box coordinates of the span +- `type`: Span type (`image`, `table`, `chart`, `text`, `inline_equation`, `interline_equation`) +- `content` | `image_path`: Text content or image path + +##### Sample Data + +```json +{ + "pdf_info": [ + { + "preproc_blocks": [ + { + "type": "text", + "bbox": [ + 52, + 61.956024169921875, + 294, + 82.99800872802734 + ], + "lines": [ + { + "bbox": [ + 52, + 61.956024169921875, + 294, + 72.0000228881836 + ], + "spans": [ + { + "bbox": [ + 54.0, + 61.956024169921875, + 296.2261657714844, + 72.0000228881836 + ], + "content": "dependent on the service headway and the reliability of the departure ", + "type": "text", + "score": 1.0 + } + ] + } + ] + } + ], + "layout_bboxes": [ + { + "layout_bbox": [ + 52, + 61, + 294, + 731 + ], + "layout_label": "V", + "sub_layout": [] + } + ], + "page_idx": 0, + "page_size": [ + 612.0, + 792.0 + ], + "_layout_tree": [], + "images": [], + "tables": [], + "interline_equations": [], + "discarded_blocks": [], + "para_blocks": [ + { + "type": "text", + "bbox": [ + 52, + 61.956024169921875, + 294, + 82.99800872802734 + ], + "lines": [ + { + "bbox": [ + 52, + 61.956024169921875, + 294, + 72.0000228881836 + ], + "spans": [ + { + "bbox": [ + 54.0, + 61.956024169921875, + 296.2261657714844, + 72.0000228881836 + ], + "content": "dependent on the service headway and the reliability of the departure ", + "type": "text", + "score": 1.0 + } + ] + } + ] + } + ] + } + ], + "_backend": "pipeline", + "_version_name": "0.6.1" +} +``` + +#### Content List (content_list.json) + +**File naming format**: `{original_filename}_content_list.json` + +##### Functionality + +This is a simplified version of `middle.json` that stores all readable content blocks in reading order as a flat structure, removing complex layout information for easier subsequent processing. + +##### Content Types + +| Type | Description | +|------|-------------| +| `image` | Image | +| `table` | Table | +| `chart` | Chart | +| `text` | Text/Title | +| `equation` | Interline formula | +| `seal` | Seal | +| `code` | Code block / algorithm block | +| `list` | List / reference list | +| `header` / `footer` / `page_number` / `aside_text` / `page_footnote` | Page auxiliary blocks | + +##### Text Level Identification + +Text levels are distinguished through the `text_level` field: + +- No `text_level` or `text_level: 0`: Body text +- `text_level: 1`: Level 1 heading +- `text_level: 2`: Level 2 heading +- And so on... + +##### Common Fields + +- All content blocks include a `page_idx` field indicating the page number (starting from 0). +- All content blocks include a `bbox` field representing the bounding box coordinates of the content block `[x0, y0, x1, y1]`, mapped to a range of 0-1000. +- `code` entries use `sub_type` to distinguish `code` and `algorithm`, and may include fields such as `code_body`, `code_caption`, and `code_footnote`. +- `list` entries may use `sub_type` to distinguish ordinary lists from reference-style lists. +- `image` / `chart` entries may include an optional `sub_type` field to carry the visual subtype through downstream outputs. + +##### Sample Data + +```json +[ + { + "type": "text", + "text": "The response of flow duration curves to afforestation ", + "text_level": 1, + "bbox": [ + 62, + 480, + 946, + 904 + ], + "page_idx": 0 + }, + { + "type": "image", + "img_path": "images/a8ecda1c69b27e4f79fce1589175a9d721cbdc1cf78b4cc06a015f3746f6b9d8.jpg", + "image_caption": [ + "Fig. 1. Annual flow duration curves of daily flows from Pine Creek, Australia, 1989–2000. " + ], + "image_footnote": [], + "bbox": [ + 62, + 480, + 946, + 904 + ], + "page_idx": 1 + }, + { + "type": "equation", + "img_path": "images/181ea56ef185060d04bf4e274685f3e072e922e7b839f093d482c29bf89b71e8.jpg", + "text": "$$\nQ _ { \\% } = f ( P ) + g ( T )\n$$", + "text_format": "latex", + "bbox": [ + 62, + 480, + 946, + 904 + ], + "page_idx": 2 + }, + { + "type": "table", + "img_path": "images/e3cb413394a475e555807ffdad913435940ec637873d673ee1b039e3bc3496d0.jpg", + "table_caption": [ + "Table 2 Significance of the rainfall and time terms " + ], + "table_footnote": [ + "indicates that the rainfall term was significant at the $5 \\%$ level, $T$ indicates that the time term was significant at the $5 \\%$ level, \\* represents significance at the $10 \\%$ level, and na denotes too few data points for meaningful analysis. " + ], + "table_body": "
SitePercentile
102030405060708090100
Traralgon CkPP,*PPP,P,P,P,PP
RedhillP,TP,T,***P.TP,*P*P**,*
Pine CkP,TP,TP,TP,TTTTnana
Stewarts Ck 5P,TP,TP,TP,TP.TP.TP,Tnanana
Glendhu 2PP,TP,*P,TP.TP,nsP,TP,TP,TP,T
Cathedral Peak 2P,TP,TP,TP,TP,T*,TP,TP,TP,TT
Cathedral Peak 3P.TP.TP,TP,TP,TTP,TP,TP,TT
Lambrechtsbos AP,TPPP,T*,T*,T*,T*,T*,TT
Lambrechtsbos BP,TP,TP,TP,TP,TP,TP,TP,TTT
BiesievleiP,TP.TP,TP,T*,T*,TTTP,TP,T
", + "bbox": [ + 62, + 480, + 946, + 904 + ], + "page_idx": 5 + } +] +``` + +### Common Content List V2 (content_list_v2.json)(development version, subject to change) + +**File naming format**: `{original_filename}_content_list_v2.json` + +##### Functionality + +`content_list_v2.json` is the new structured output added in 3.0. All backends now emit it in addition to the legacy `content_list.json`: + +- The top level is grouped by page for page-oriented consumption +- Each item uses a unified `type + content` structure for easier programmatic processing +- The exact supported `type` values depend on the backend and input type + +##### Common Fields + +| Field | Type | Description | +|------|------|-------------| +| `type` | `string` | Content type | +| `content` | `dict` | Structured payload for the given `type` | +| `bbox` | `list[int]` | Optional bounding box mapped into the 0-1000 coordinate range | +| `anchor` | `string` | Optional anchor; some `DOCX` titles or index items may include it | + +`image` / `chart` items may also include an optional top-level `sub_type` field for visual subtype propagation. + +##### Common Types + +| Type | Description | +|------|-------------| +| `title` | Title block with `title_content` and `level` | +| `paragraph` | Paragraph block with `paragraph_content` | +| `equation_interline` | Interline formula with `math_content` and `math_type` | +| `image` / `table` / `chart` / `seal` | Visual blocks with image paths, captions, and related structured fields | +| `code` | Code block with `code_content`, `code_caption`, `code_footnote`, and `code_language` | +| `algorithm` | Algorithm block with `algorithm_content`, `algorithm_caption`, and `algorithm_footnote` | +| `list` / `index` | List and index blocks with `list_items` | +| `page_header` / `page_footer` / `page_number` / `page_aside_text` / `page_footnote` | Page auxiliary blocks | + +##### Sample Data + +```json +[ + [ + { + "type": "title", + "content": { + "title_content": [ + { + "type": "text", + "content": "1 Introduction" + } + ], + "level": 1 + }, + "bbox": [83, 121, 917, 156] + }, + { + "type": "page_footnote", + "content": { + "page_footnote_content": [ + { + "type": "text", + "content": "* Corresponding author" + } + ] + }, + "bbox": [71, 815, 915, 841] + } + ] +] +``` + +### VLM Backend Output Results + +#### Model Inference Results (model.json) + +**File naming format**: `{original_filename}_model.json` + +##### File format description +- Two-level nested list: outer list = pages; inner list = content blocks of that page +- Each block is a dict with at least: `type`, `bbox`, `angle`, `content` (some types add extra fields like `score`, `block_tags`, `content_tags`, `format`) +- Designed for direct, raw model inspection + +##### Supported content types (type field values) +```json +{ + "text": "Plain text", + "title": "Title", + "equation": "Display (interline) formula", + "image": "Image", + "image_caption": "Image caption", + "image_footnote": "Image footnote", + "table": "Table", + "table_caption": "Table caption", + "table_footnote": "Table footnote", + "phonetic": "Phonetic annotation", + "code": "Code block", + "code_caption": "Code caption", + "ref_text": "Reference / citation entry", + "algorithm": "Algorithm block (treated as code subtype)", + "list": "List container", + "header": "Page header", + "footer": "Page footer", + "page_number": "Page number", + "aside_text": "Side / margin note", + "page_footnote": "Page footnote" +} +``` + +##### Coordinate system +- `bbox` = `[x0, y0, x1, y1]` (top-left, bottom-right) +- Origin at top-left of the page +- All coordinates are normalized percentages in `[0,1]` + +##### Sample data +```json +[ + [ + { + "type": "header", + "bbox": [0.077, 0.095, 0.18, 0.181], + "angle": 0, + "score": null, + "block_tags": null, + "content": "ELSEVIER", + "format": null, + "content_tags": null + }, + { + "type": "title", + "bbox": [0.157, 0.228, 0.833, 0.253], + "angle": 0, + "score": null, + "block_tags": null, + "content": "The response of flow duration curves to afforestation", + "format": null, + "content_tags": null + } + ] +] +``` + +#### Intermediate Processing Results (middle.json) + +**File naming format**: `{original_filename}_middle.json` + +Structure is broadly similar to the pipeline backend, but with these differences: + +- `list` becomes a second‑level block, a new field `sub_type` distinguishes list categories: + * `text`: ordinary list + * `ref_text`: reference / bibliography style list +- New `code` block type with `sub_type`(a code block always has at least a `code_body`, it may optionally have a `code_caption`): + * `code` + * `algorithm` +- `discarded_blocks` may contain additional types: + * `header` + * `footer` + * `page_number` + * `aside_text` + * `page_footnote` +- All blocks include an `angle` field indicating rotation (one of `0, 90, 180, 270`). + +##### Examples +- Example: list block + ```json + { + "bbox": [174,155,818,333], + "type": "list", + "angle": 0, + "index": 11, + "blocks": [ + { + "bbox": [174,157,311,175], + "type": "text", + "angle": 0, + "lines": [ + { + "bbox": [174,157,311,175], + "spans": [ + { + "bbox": [174,157,311,175], + "type": "text", + "content": "H.1 Introduction" + } + ] + } + ], + "index": 3 + }, + { + "bbox": [175,182,464,229], + "type": "text", + "angle": 0, + "lines": [ + { + "bbox": [175,182,464,229], + "spans": [ + { + "bbox": [175,182,464,229], + "type": "text", + "content": "H.2 Example: Divide by Zero without Exception Handling" + } + ] + } + ], + "index": 4 + } + ], + "sub_type": "text" + } + ``` + +- Example: code block with optional caption: + ```json + { + "type": "code", + "bbox": [114,780,885,1231], + "blocks": [ + { + "bbox": [114,780,885,1231], + "lines": [ + { + "bbox": [114,780,885,1231], + "spans": [ + { + "bbox": [114,780,885,1231], + "type": "text", + "content": "1 // Fig. H.1: DivideByZeroNoExceptionHandling.java \n2 // Integer division without exception handling. \n3 import java.util.Scanner; \n4 \n5 public class DivideByZeroNoExceptionHandling \n6 { \n7 // demonstrates throwing an exception when a divide-by-zero occurs \n8 public static int quotient( int numerator, int denominator ) \n9 { \n10 return numerator / denominator; // possible division by zero \n11 } // end method quotient \n12 \n13 public static void main(String[] args) \n14 { \n15 Scanner scanner = new Scanner(System.in); // scanner for input \n16 \n17 System.out.print(\"Please enter an integer numerator: \"); \n18 int numerator = scanner.nextInt(); \n19 System.out.print(\"Please enter an integer denominator: \"); \n20 int denominator = scanner.nextInt(); \n21" + } + ] + } + ], + "index": 17, + "angle": 0, + "type": "code_body" + }, + { + "bbox": [867,160,1280,189], + "lines": [ + { + "bbox": [867,160,1280,189], + "spans": [ + { + "bbox": [867,160,1280,189], + "type": "text", + "content": "Algorithm 1 Modules for MCTSteg" + } + ] + } + ], + "index": 19, + "angle": 0, + "type": "code_caption" + } + ], + "index": 17, + "sub_type": "code" + } + ``` + +#### Content List (content_list.json) + +**File naming format**: `{original_filename}_content_list.json` + +Based on the pipeline format, with these VLM-specific extensions: + +- New `code` type with `sub_type` (`code` | `algorithm`): + * Fields: `code_body` (string), optional `code_caption` (list of strings) +- New `list` type with `sub_type` (`text` | `ref_text`): + * Field: `list_items` (array of strings) +- `image` / `chart` entries may carry an optional `sub_type` field for visual subtype propagation. +- `chart` entries may additionally expose `content`, `chart_caption`, and `chart_footnote` alongside `img_path`; `content` preserves the original Markdown table text. +- All `discarded_blocks` entries are also output (e.g., headers, footers, page numbers, margin notes, page footnotes). +- Existing types (`image`, `table`, `text`, `equation`) remain unchanged. +- `bbox` still uses the 0–1000 normalized coordinate mapping. +- Starting with 3.0, the VLM backend also emits `*_content_list_v2.json`; see the common V2 section above for the shared structure. + + +##### Examples +Example: code (algorithm) entry +```json +{ + "type": "code", + "sub_type": "algorithm", + "code_caption": ["Algorithm 1 Modules for MCTSteg"], + "code_body": "1: function GETCOORDINATE(d) \n2: $x \\gets d / l$ , $y \\gets d$ mod $l$ \n3: return $(x, y)$ \n4: end function \n5: function BESTCHILD(v) \n6: $C \\gets$ child set of $v$ \n7: $v' \\gets \\arg \\max_{c \\in C} \\mathrm{UCTScore}(c)$ \n8: $v'.n \\gets v'.n + 1$ \n9: return $v'$ \n10: end function \n11: function BACK PROPAGATE(v) \n12: Calculate $R$ using Equation 11 \n13: while $v$ is not a root node do \n14: $v.r \\gets v.r + R$ , $v \\gets v.p$ \n15: end while \n16: end function \n17: function RANDOMSEARCH(v) \n18: while $v$ is not a leaf node do \n19: Randomly select an untried action $a \\in A(v)$ \n20: Create a new node $v'$ \n21: $(x, y) \\gets \\mathrm{GETCOORDINATE}(v'.d)$ \n22: $v'.p \\gets v$ , $v'.d \\gets v.d + 1$ , $v'.\\Gamma \\gets v.\\Gamma$ \n23: $v'.\\gamma_{x,y} \\gets a$ \n24: if $a = -1$ then \n25: $v.lc \\gets v'$ \n26: else if $a = 0$ then \n27: $v.mc \\gets v'$ \n28: else \n29: $v.rc \\gets v'$ \n30: end if \n31: $v \\gets v'$ \n32: end while \n33: return $v$ \n34: end function \n35: function SEARCH(v) \n36: while $v$ is fully expanded do \n37: $v \\gets$ BESTCHILD(v) \n38: end while \n39: if $v$ is not a leaf node then \n40: $v \\gets$ RANDOMSEARCH(v) \n41: end if \n42: return $v$ \n43: end function", + "bbox": [510,87,881,740], + "page_idx": 0 +} +``` + +Example: list (text) entry +```json +{ + "type": "list", + "sub_type": "text", + "list_items": [ + "H.1 Introduction", + "H.2 Example: Divide by Zero without Exception Handling", + "H.3 Example: Divide by Zero with Exception Handling", + "H.4 Summary" + ], + "bbox": [174,155,818,333], + "page_idx": 0 +} +``` + +Example: discarded blocks output +```json +[ + { + "type": "header", + "text": "Journal of Hydrology 310 (2005) 253-265", + "bbox": [363,164,623,177], + "page_idx": 0 + }, + { + "type": "page_footnote", + "text": "* Corresponding author. Address: Forest Science Centre, Department of Sustainability and Environment, P.O. Box 137, Heidelberg, Vic. 3084, Australia. Tel.: +61 3 9450 8719; fax: +61 3 9450 8644.", + "bbox": [71,815,915,841], + "page_idx": 0 + } +] +``` + +## Summary + +The above files constitute MinerU's complete output results. Users can choose appropriate files for subsequent processing based on their needs: + +- **Model outputs** (Use raw outputs): + * model.json + +- **Debugging and verification** (Use visualization files): + * layout.pdf + * span.pdf + +- **Content extraction**: (Use simplified files): + * *.md + * content_list.json + * content_list_v2.json + +- **Secondary development**: (Use structured files): + * middle.json diff --git a/docs/en/usage/advanced_cli_parameters.md b/docs/en/usage/advanced_cli_parameters.md new file mode 100644 index 000000000..203543df5 --- /dev/null +++ b/docs/en/usage/advanced_cli_parameters.md @@ -0,0 +1,56 @@ +# Advanced Command Line Parameters + +## Pass-through of inference engine parameters + +### Parameter Passing Instructions +> [!TIP] +> - All officially supported vllm/lmdeploy parameters can be passed to MinerU through command line arguments, including the following commands: `mineru`, `mineru-openai-server`, `mineru-gradio`, `mineru-api`, `mineru-router` +> - Command-line options support both `--foo value` and `--foo=value` forms +> - If you want to learn more about `vllm` parameter usage, please refer to the [vllm official documentation](https://docs.vllm.ai/en/latest/cli/serve.html) +> - If you want to learn more about `lmdeploy` parameter usage, please refer to the [lmdeploy official documentation](https://lmdeploy.readthedocs.io/en/latest/llm/api_server.html) + +## GPU Device Selection and Configuration + +### CUDA_VISIBLE_DEVICES Basic Usage +> [!TIP] +> - In any situation, you can specify visible GPU devices by adding the `CUDA_VISIBLE_DEVICES` environment variable at the beginning of the command line. For example: +> ```bash +> CUDA_VISIBLE_DEVICES=1 mineru -p -o +> ``` +> - This method works for all command-line invocations, including `mineru`, `mineru-openai-server`, `mineru-gradio`, `mineru-api`, and `mineru-router`, and it applies to both the `pipeline` and `vlm` backends. + +### Common Device Configuration Examples +> [!TIP] +> Here are some common `CUDA_VISIBLE_DEVICES` setting examples: +> ```bash +> CUDA_VISIBLE_DEVICES=1 # Only device 1 will be seen +> CUDA_VISIBLE_DEVICES=0,1 # Devices 0 and 1 will be visible +> CUDA_VISIBLE_DEVICES="0,1" # Same as above, quotation marks are optional +> CUDA_VISIBLE_DEVICES=0,2,3 # Devices 0, 2, 3 will be visible; device 1 is masked +> CUDA_VISIBLE_DEVICES="" # No GPU will be visible +> ``` + +## Practical Application Scenarios +> [!TIP] +> Here are some possible usage scenarios: +> +> - If you have multiple GPUs and need to start two `openai-server` services on GPU 0 and GPU 1, each listening on a different port, you can use the following commands: +> ```bash +> # In terminal 1 +> CUDA_VISIBLE_DEVICES=0 mineru-openai-server --engine vllm --port 30000 +> # In terminal 2 +> CUDA_VISIBLE_DEVICES=1 mineru-openai-server --engine vllm --port 30001 +> ``` +> +> - If you have multiple GPUs and need to start two `fastapi` services on GPU 0 and GPU 1, each listening on a different port, you can use the following commands: +> ```bash +> # In terminal 1 +> CUDA_VISIBLE_DEVICES=0 mineru-api --host 127.0.0.1 --port 8000 +> # In terminal 2 +> CUDA_VISIBLE_DEVICES=1 mineru-api --host 127.0.0.1 --port 8001 +> ``` +> +> - If you have multiple GPUs and want to use `router` to launch and manage `fastapi` services across four GPUs, you can use the following command: +> ```bash +> CUDA_VISIBLE_DEVICES=0,1,2,3 mineru-router --host 127.0.0.1 --port 8002 +> ``` diff --git a/docs/en/usage/cli_tools.md b/docs/en/usage/cli_tools.md new file mode 100644 index 000000000..4ced9e9dd --- /dev/null +++ b/docs/en/usage/cli_tools.md @@ -0,0 +1,184 @@ +# Command Line Tools Usage Instructions + +## View Help Information +To view help information for MinerU command line tools, you can use the `--help` parameter. Here are help information examples for various command line tools: +```bash +mineru --help +Usage: mineru [OPTIONS] + +Options: + -v, --version Show version and exit + -p, --path PATH Input file path or directory (required) + -o, --output PATH Output directory (required) + --api-url TEXT MinerU FastAPI base URL; if omitted, `mineru` starts a temporary local `mineru-api` + -m, --method [auto|txt|ocr] Parsing method: auto (default), txt, ocr (pipeline and hybrid* backend only) + -b, --backend [pipeline|hybrid-auto-engine|hybrid-http-client|vlm-auto-engine|vlm-http-client] + Parsing backend (default: hybrid-auto-engine) + -l, --lang [ch|ch_server|ch_lite|en|korean|japan|chinese_cht|ta|te|ka|th|el|latin|arabic|east_slavic|cyrillic|devanagari] + Specify document language (improves OCR accuracy, pipeline and hybrid* backend only) + -u, --url TEXT OpenAI-compatible backend URL passed through to the server when using http-client + -s, --start INTEGER Starting page number for parsing (0-based) + -e, --end INTEGER Ending page number for parsing (0-based) + -f, --formula BOOLEAN Enable formula parsing (default: enabled) + -t, --table BOOLEAN Enable table parsing (default: enabled) + --help Show help information +``` +> [!TIP] +> `mineru` currently supports local `PDF`, image, `DOCX`, `PPTX`, and `XLSX` file or directory inputs. + +```bash +mineru-api --help +Usage: mineru-api [OPTIONS] + +Options: + --host TEXT Server host (default: 127.0.0.1) + --port INTEGER Server port (default: 8000) + --reload Enable auto-reload (development mode) + --enable-vlm-preload BOOLEAN + Preload the local VLM model during mineru-api startup. + --help Show this message and exit. +``` +```bash +mineru-gradio --help +Usage: mineru-gradio [OPTIONS] + +Options: + --enable-example BOOLEAN Enable example files for input. The example + files to be input need to be placed in the + `example` folder within the directory where + the command is currently executed. + --enable-http-client BOOLEAN Enable http-client backend to link openai- + compatible servers. + --enable-api BOOLEAN Enable gradio API for serving the + application. + --max-convert-pages INTEGER Set the maximum number of pages to convert + from PDF to Markdown. + --server-name TEXT Set the server name for the Gradio app. + --server-port INTEGER Set the server port for the Gradio app. + --api-url TEXT MinerU FastAPI base URL. If omitted, gradio + starts a reusable local mineru-api service. + --enable-vlm-preload BOOLEAN Preload the local VLM model when gradio + starts a local mineru-api service. + --latex-delimiters-type [a|b|all] + Set the type of LaTeX delimiters to use in + Markdown rendering: 'a' for type '$', 'b' for + type '()[]', 'all' for both types. + --help Show this message and exit. +``` +```bash +mineru-router --help +Usage: mineru-router [OPTIONS] + +Options: + --host TEXT Server host (default: 127.0.0.1) + --port INTEGER Server port (default: 8002) + --reload Enable auto-reload (development mode) + --upstream-url TEXT Existing MinerU FastAPI base URL; repeat to add more + --local-gpus TEXT Local GPU workers to launch: auto, none, or CSV such + as 0,1,2 + --worker-host TEXT Host for router-managed workers (default: 127.0.0.1) + --enable-vlm-preload BOOLEAN + Preload the local VLM model in router-managed + mineru-api workers. + --help Show this message and exit. +``` + +## Environment Variables Description + +> [!NOTE] +> Starting from this version, `mineru` is an orchestration client built on top of `mineru-api`: +> +>- Without `--api-url`, the CLI launches a temporary local `mineru-api` +>- With `--api-url`, the CLI connects to that FastAPI service directly +>- `--url` is no longer the MinerU API address; it is the OpenAI-compatible backend URL used by server-side `vlm/hybrid-http-client` + +Some parameters of MinerU command line tools have equivalent environment variable configurations. Generally, environment variable configurations have higher priority than command line parameters and take effect across all command line tools. +Here are the environment variables and their descriptions: + +- `MINERU_TOOLS_CONFIG_JSON`: + * Used to specify configuration file path + * defaults to `mineru.json` in user directory, can specify other configuration file paths through environment variables. + +- `MINERU_FORMULA_ENABLE`: + * Used to enable formula parsing + * defaults to `true`, can be set to `false` through environment variables to disable formula parsing. + +- `MINERU_FORMULA_CH_SUPPORT`: + * Used to enable Chinese formula parsing optimization (experimental feature) + * Default is `false`, can be set to `true` via environment variable to enable Chinese formula parsing optimization. + * Only effective for `pipeline` backend. + +- `MINERU_TABLE_ENABLE`: + * Used to enable table parsing + * Default is `true`, can be set to `false` via environment variable to disable table parsing. + +- `MINERU_TABLE_MERGE_ENABLE`: + * Used to enable table merging functionality + * Default is `true`, can be set to `false` via environment variable to disable table merging functionality. + +- `MINERU_PDF_RENDER_TIMEOUT`: + * Used to set the timeout (in seconds) for rendering PDFs to images. + * Default is `300` seconds; you can set a different value via an environment variable to adjust the rendering timeout. + * Only effective on Linux and macOS systems. + +- `MINERU_PDF_RENDER_THREADS`: + * Used to set the number of threads used when rendering PDFs to images. + * Default is `4`; you can set a different value via an environment variable to adjust the number of threads for image rendering. + * Only effective on Linux and macOS systems. + +- `MINERU_PROCESSING_WINDOW_SIZE`: + * Used to control the processing window size, which affects memory use and throughput on large-document workloads. + * Default is `64`; set it to another positive integer when needed. + +- `MINERU_API_MAX_CONCURRENT_REQUESTS`: + * Used to control the maximum concurrent requests handled by `mineru-api` or router-managed workers. + * Default is `3`, and it must be a positive integer. + +- `MINERU_API_ENABLE_FASTAPI_DOCS`: + * Used to control whether FastAPI documentation endpoints such as `/docs`, `/openapi.json`, and `/redoc` are enabled. + * Default is `true`. + +- `MINERU_API_OUTPUT_ROOT`: + * Used to configure the root output directory for `mineru-api`. + * Default is `./output` under the current working directory. + +- `MINERU_LOCAL_API_STARTUP_TIMEOUT_SECONDS`: + * Used to control how long CLI tools wait for a locally started `mineru-api` to become healthy. + * Default is `300` seconds. + * Applies to temporary local API startup in `mineru`, preload startup in `mineru-gradio`, and router-managed local workers. + +- `MINERU_API_TASK_RETENTION_SECONDS`: + * Used to set how long completed or failed tasks are retained, in seconds. + * Default is `86400` seconds (24 hours). + +- `MINERU_API_TASK_CLEANUP_INTERVAL_SECONDS`: + * Used to set the cleanup polling interval for expired tasks, in seconds. + * Default is `300` seconds (5 minutes). + +- `MINERU_INTRA_OP_NUM_THREADS`: + * Used to set the intra_op thread count for ONNX models, affects the computation speed of individual operators + * Default is `-1` (auto-select), can be set to other values via environment variable to adjust the thread count. + +- `MINERU_INTER_OP_NUM_THREADS`: + * Used to set the inter_op thread count for ONNX models, affects the parallel execution of multiple operators + * Default is `-1` (auto-select), can be set to other values via environment variable to adjust the thread count. + +- `MINERU_HYBRID_BATCH_RATIO`: + * Used to set the batch ratio for small model processing in `hybrid-*` backends. + * Commonly used in `hybrid-http-client`, it allows adjusting the VRAM usage of a single client by controlling the batch ratio of small models. + * Single Client VRAM Size | MINERU_HYBRID_BATCH_RATIO + ------------------------|-------------------------- + <= 6 GB | 8 + <= 4 GB | 4 + <= 3 GB | 2 + <= 2 GB | 1 + +- `MINERU_HYBRID_FORCE_PIPELINE_ENABLE`: + * Used to force the text extraction part in `hybrid-*` backends to be processed using small models. + * Defaults to `false`. Can be set to `true` via environment variable to enable this feature, thereby reducing hallucinations in certain extreme cases. + +- `MINERU_VL_MODEL_NAME`: + * Used to specify the model name for the vlm/hybrid backend, allowing you to designate the model required for MinerU to run when multiple models exist on a remote openai-server. + +- `MINERU_VL_API_KEY`: + * Used to specify the API Key for the vlm/hybrid backend, enabling authentication on the remote openai-server. diff --git a/docs/en/usage/index.md b/docs/en/usage/index.md new file mode 100644 index 000000000..c79cef601 --- /dev/null +++ b/docs/en/usage/index.md @@ -0,0 +1,18 @@ +# Usage Guide + +This section provides comprehensive usage instructions for the project. We will help you progressively master the project's usage from basic to advanced through the following sections: + +## Table of Contents + +- [Quick Usage](./quick_usage.md) - Quick setup and basic usage +- [Model Source Configuration](./model_source.md) - Detailed configuration instructions for model sources +- [Command Line Tools](./cli_tools.md) - Detailed parameter descriptions for command line tools +- [Advanced Optimization Parameters](./advanced_cli_parameters.md) - Advanced parameter descriptions for command line tool adaptation + +## Getting Started + +Starting with 3.0, `mineru` runs as an orchestration client on top of `mineru-api`; advanced `mineru-router` usage for multi-service and multi-GPU deployments is also covered in this section. + +We recommend reading the documentation in the order listed above, which will help you better understand and use the project features. + +If you encounter issues during usage, please check the [FAQ](../faq/index.md) diff --git a/docs/en/usage/model_source.md b/docs/en/usage/model_source.md new file mode 100644 index 000000000..9fb86ada8 --- /dev/null +++ b/docs/en/usage/model_source.md @@ -0,0 +1,48 @@ +# Model Source Documentation + +MinerU uses `HuggingFace` and `ModelScope` as model repositories. Users can switch model sources or use local models as needed. + +- `HuggingFace` is the default model source, providing excellent loading speed and high stability globally. +- `ModelScope` is the best choice for users in mainland China, providing seamlessly compatible `hf` SDK modules, suitable for users who cannot access HuggingFace. + +## Methods to Switch Model Sources + +### Configure via Environment Variables +MinerU configures model sources through the `MINERU_MODEL_SOURCE` environment variable. This applies to all command line tools and API calls. +```bash +export MINERU_MODEL_SOURCE=modelscope +mineru -p -o +``` +or set it programmatically: +```python +import os +os.environ["MINERU_MODEL_SOURCE"] = "modelscope" +``` +>[!TIP] +> MinerU no longer provides a CLI flag for model source selection. Model sources set through environment variables take effect in the current terminal session until the terminal is closed or the environment variable is modified. + +## Using Local Models + +### 1. Download Models to Local Storage +```bash +mineru-models-download --help +``` +or use the interactive command line tool to select model downloads: +```bash +mineru-models-download +``` +> [!NOTE] +>- After download completion, the model path will be output in the current terminal window and automatically written to `mineru.json` in the user directory. +>- You can also create it by copying the [configuration template file](https://github.com/opendatalab/MinerU/blob/master/mineru.template.json) to your user directory and renaming it to `mineru.json`. +>- After downloading models locally, you can freely move the model folder to other locations while updating the model path in `mineru.json`. +>- If you deploy the model folder to another server, please ensure you move the `mineru.json` file to the user directory of the new device and configure the model path correctly. +>- If you need to update model files, you can run the `mineru-models-download` command again. Model updates do not support custom paths currently - if you haven't moved the local model folder, model files will be incrementally updated; if you have moved the model folder, model files will be re-downloaded to the default location and `mineru.json` will be updated. +>- `mineru-models-download` must use a remote model source to perform a real download. If your current shell already sets `MINERU_MODEL_SOURCE=local`, this command will temporarily ignore that value for this invocation and use your selected `huggingface` or `modelscope` source instead. + +### 2. Use Local Models for Parsing + +Enable local models through environment variables: +```bash +export MINERU_MODEL_SOURCE=local +mineru -p -o +``` diff --git a/docs/en/usage/quick_usage.md b/docs/en/usage/quick_usage.md new file mode 100644 index 000000000..4768f4aaa --- /dev/null +++ b/docs/en/usage/quick_usage.md @@ -0,0 +1,158 @@ +# Using MinerU + +## Quick Model Source Configuration +MinerU uses `huggingface` as the default model source. If users cannot access `huggingface` due to network restrictions, they can conveniently switch the model source to `modelscope` through environment variables: +```bash +export MINERU_MODEL_SOURCE=modelscope +``` +For more information about model source configuration and custom local model paths, please refer to the [Model Source Documentation](./model_source.md) in the documentation. + +## Quick Usage via Command Line +MinerU has built-in command line tools that allow users to quickly use MinerU for document parsing through the command line: +```bash +mineru -p -o +``` +> [!TIP] +>- ``: Local `PDF` / image / `DOCX` / `PPTX` / `XLSX` file or directory +>- ``: Output directory +>- Without `--api-url`, the CLI launches a temporary local `mineru-api` +>- With `--api-url`, the CLI connects to an existing local or remote FastAPI service directly +> +> For more information about output files, please refer to [Output File Documentation](../reference/output_files.md). + +> [!NOTE] +> The command line tool will automatically attempt cuda/mps acceleration on Linux and macOS systems. +> Windows users who need cuda acceleration should visit the [PyTorch official website](https://pytorch.org/get-started/locally/) to select the appropriate command for their cuda version to install acceleration-enabled `torch` and `torchvision`. + +If you need to adjust parsing options through custom parameters, you can also check the more detailed [Command Line Tools Usage Instructions](./cli_tools.md) in the documentation. + +## Advanced Usage via API, WebUI, http-client/server + +- FastAPI calls: + ```bash + mineru-api --host 0.0.0.0 --port 8000 + ``` + >[!TIP] + >Access `http://127.0.0.1:8000/docs` in your browser to view the API documentation. + > + >- Health endpoint: `GET /health` + > Returns `protocol_version`, `processing_window_size`, `max_concurrent_requests`, and task stats + >- Asynchronous task submission endpoint: `POST /tasks` + >- Synchronous parsing endpoint: `POST /file_parse` + >- Task query endpoints: `GET /tasks/{task_id}`, `GET /tasks/{task_id}/result` + >- API outputs are controlled by the server and written to `./output` by default + >- Uploads currently support `PDF`, image, `DOCX`, `PPTX`, and `XLSX` files + > + >- `POST /tasks` returns immediately with a `task_id`. `POST /file_parse` uses the same task manager internally, waits for the task to finish, and then returns the final result synchronously. + >- When a task is waiting in the queue, both the submission response and task-status response may include `queued_ahead` to indicate how many tasks are ahead of it. + >- Tasks are tracked only in-process for a single `mineru-api` instance. Task status is not preserved across service restarts, `--reload`, or multi-process deployments. + >- Completed or failed tasks are retained for 24 hours by default, then their task state and output directory are cleaned automatically. After cleanup, task status and result endpoints return `404`. + >- Use `MINERU_API_TASK_RETENTION_SECONDS` and `MINERU_API_TASK_CLEANUP_INTERVAL_SECONDS` to adjust retention and cleanup polling intervals. + >- Use `--enable-vlm-preload true` to warm up the local VLM model during service startup instead of waiting for the first VLM or hybrid request. + > + >Asynchronous task submission example: + >```bash + >curl -X POST http://127.0.0.1:8000/tasks \ + > -F "files=@demo/pdfs/demo1.pdf" \ + > -F "return_md=true" + >``` + > + >Synchronous parsing example: + >```bash + >curl -X POST http://127.0.0.1:8000/file_parse \ + > -F "files=@demo/pdfs/demo1.pdf" \ + > -F "return_md=true" \ + > -F "response_format_zip=true" \ + > -F "return_original_file=true" + >``` + > + >Poll task status and fetch results: + >```bash + >curl http://127.0.0.1:8000/tasks/ + >curl http://127.0.0.1:8000/tasks//result + >curl http://127.0.0.1:8000/health + >``` + > + >HTTP asynchronous call code example: [Python version](https://github.com/opendatalab/MinerU/blob/master/demo/demo.py) + +- Start Gradio WebUI visual frontend: + ```bash + mineru-gradio --server-name 0.0.0.0 --server-port 7860 + ``` + >[!TIP] + > + >- Access `http://127.0.0.1:7860` in your browser to use the Gradio WebUI. + >- Without `--api-url`, Gradio starts a reusable local `mineru-api`; with `--api-url`, it reuses an existing local or remote service. + >- `--enable-vlm-preload true` makes Gradio start its local `mineru-api` during WebUI startup and wait for VLM preload to finish. It is ignored when `--api-url` points to an existing service. + >- The WebUI currently accepts `PDF`, image, `DOCX`, `PPTX`, and `XLSX` uploads. + +- Use `mineru-router` for multi-service / multi-GPU orchestration: + ```bash + mineru-router --host 0.0.0.0 --port 8002 --local-gpus auto + ``` + >[!TIP] + > + >- `mineru-router` exposes the same `/health`, `/tasks`, `/file_parse`, `/tasks/{task_id}`, and `/tasks/{task_id}/result` interface set as `mineru-api`. + >- Repeat `--upstream-url` to aggregate multiple existing `mineru-api` services, or use `--local-gpus` to launch local workers automatically. + >- `--enable-vlm-preload true` only applies to router-managed local workers. It does not preload remote services passed through `--upstream-url`. + >- It is intended for advanced multi-service, multi-GPU, and unified-entry deployments. + +- Using `http-client/server` method: + ```bash + # Start openai compatible server (requires vllm or lmdeploy environment) + mineru-openai-server --port 30000 + ``` + >[!TIP] + >In another terminal, connect to openai server via http client + > ```bash + > mineru -p -o -b hybrid-http-client -u http://127.0.0.1:30000 + > ``` + >`vlm-http-client` is the lightweight remote client option and does not require local `torch`. + >`hybrid-http-client` requires local pipeline dependencies such as `mineru[pipeline]` and `torch`. + +> [!NOTE] +> All officially supported `vllm/lmdeploy` parameters can be passed to MinerU through command line arguments, including the following commands: `mineru`, `mineru-openai-server`, `mineru-gradio`, `mineru-api`, `mineru-router`. +> We have compiled some commonly used parameters and usage methods for `vllm/lmdeploy`, which can be found in the documentation [Advanced Command Line Parameters](./advanced_cli_parameters.md). + +## Extending MinerU Functionality with Configuration Files + +MinerU is now ready to use out of the box, but also supports extending functionality through configuration files. You can edit `mineru.json` file in your user directory to add custom configurations. + +>[!IMPORTANT] +>The `mineru.json` file will be automatically generated when you use the built-in model download command `mineru-models-download`, or you can create it by copying the [configuration template file](https://github.com/opendatalab/MinerU/blob/master/mineru.template.json) to your user directory and renaming it to `mineru.json`. + +Here are some available configuration options: + +- `latex-delimiter-config`: + * Used to configure LaTeX formula delimiters + * Defaults to `$` symbol, can be modified to other symbols or strings as needed. + +- `llm-aided-config`: + * Used to configure parameters for LLM-assisted title hierarchy + * Compatible with all LLM models supporting `openai protocol`, defaults to using Alibaba Cloud Bailian's `qwen3-next-80b-a3b-instruct` model. + * You need to configure your own API key and set `enable` to `true` to enable this feature. + * If your API provider does not support the `enable_thinking` parameter, please manually remove it. + * For example, in your configuration file, the `llm-aided-config` section may look like: + ```json + "llm-aided-config": { + "api_key": "your_api_key", + "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "model": "qwen3-next-80b-a3b-instruct", + "enable_thinking": false, + "enable": false + } + ``` + * To remove the `enable_thinking` parameter, simply delete the line containing `"enable_thinking": false`, resulting in: + ```json + "llm-aided-config": { + "api_key": "your_api_key", + "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "model": "qwen3-next-80b-a3b-instruct", + "enable": false + } + ``` + +- `models-dir`: + * Used to specify local model storage directory + * Please specify model directories for `pipeline` and `vlm` backends separately. + * After specifying the directory, you can use local models by configuring the environment variable `export MINERU_MODEL_SOURCE=local`. diff --git a/docs/how_to_download_models_en.md b/docs/how_to_download_models_en.md deleted file mode 100644 index 34dd54e4c..000000000 --- a/docs/how_to_download_models_en.md +++ /dev/null @@ -1,31 +0,0 @@ -Model downloads are divided into initial downloads and updates to the model directory. Please refer to the corresponding documentation for instructions on how to proceed. - -# Initial download of model files - -### 1. Download the Model from Hugging Face - -Use a Python Script to Download Model Files from Hugging Face - -```bash -pip install huggingface_hub -wget https://github.com/opendatalab/MinerU/raw/master/docs/download_models_hf.py -O download_models_hf.py -python download_models_hf.py -``` - -The Python script will automatically download the model files and configure the model directory in the configuration file. - -The configuration file can be found in the user directory, with the filename `magic-pdf.json`. - -# How to update models previously downloaded - -## 1. Models downloaded via Git LFS - -> Due to feedback from some users that downloading model files using git lfs was incomplete or resulted in corrupted model files, this method is no longer recommended. - -When magic-pdf <= 0.8.1, if you have previously downloaded the model files via git lfs, you can navigate to the previous download directory and update the models using the `git pull` command. - -> For versions 0.9.x and later, due to the repository change and the addition of the layout sorting model in PDF-Extract-Kit 1.0, the models cannot be updated using the `git pull` command. Instead, a Python script must be used for one-click updates. - -## 2. Models downloaded via Hugging Face or Model Scope - -If you previously downloaded models via Hugging Face or Model Scope, you can rerun the Python script used for the initial download. This will automatically update the model directory to the latest version. diff --git a/docs/how_to_download_models_zh_cn.md b/docs/how_to_download_models_zh_cn.md deleted file mode 100644 index 9b395e34b..000000000 --- a/docs/how_to_download_models_zh_cn.md +++ /dev/null @@ -1,44 +0,0 @@ -模型下载分为首次下载和更新模型目录,请参考对应的文档内容进行操作 - -# 首次下载模型文件 - -模型文件可以从 Hugging Face 或 Model Scope 下载,由于网络原因,国内用户访问HF可能会失败,请使用 ModelScope。 - -
- 方法一:从 Hugging Face 下载模型 -

使用python脚本 从Hugging Face下载模型文件

-
pip install huggingface_hub
-wget https://gitee.com/myhloli/MinerU/raw/master/docs/download_models_hf.py -O download_models_hf.py
-python download_models_hf.py
-
- -## 方法二:从 ModelScope 下载模型 - -### 使用python脚本 从ModelScope下载模型文件 - -```bash -pip install modelscope -wget https://gitee.com/myhloli/MinerU/raw/master/docs/download_models.py -O download_models.py -python download_models.py -``` - -python脚本会自动下载模型文件并配置好配置文件中的模型目录 - -配置文件可以在用户目录中找到,文件名为`magic-pdf.json` - -> windows的用户目录为 "C:\\Users\\用户名", linux用户目录为 "/home/用户名", macOS用户目录为 "/Users/用户名" - -# 此前下载过模型,如何更新 - -## 1. 通过git lfs下载过模型 - -> 由于部分用户反馈通过git lfs下载模型文件遇到下载不全和模型文件损坏情况,现已不推荐使用该方式下载。 - -当magic-pdf <= 0.8.1时,如此前通过 git lfs 下载过模型文件,可以进入到之前的下载目录中,通过`git pull`命令更新模型。 - -> 0.9.x及以后版本由于PDF-Extract-Kit 1.0更换仓库和新增layout排序模型,不能通过`git pull`命令更新,需要使用python脚本一键更新。 - - -## 2. 通过 Hugging Face 或 Model Scope 下载过模型 - -如此前通过 HuggingFace 或 Model Scope 下载过模型,可以重复执行此前的模型下载python脚本,将会自动将模型目录更新到最新版本。 diff --git a/docs/images/MinerU-logo-hq.png b/docs/images/MinerU-logo-hq.png deleted file mode 100644 index 7b33fcda2..000000000 Binary files a/docs/images/MinerU-logo-hq.png and /dev/null differ diff --git a/docs/images/MinerU-logo.png b/docs/images/MinerU-logo.png index 2e6fdf3a9..09ab46b23 100644 Binary files a/docs/images/MinerU-logo.png and b/docs/images/MinerU-logo.png differ diff --git a/docs/images/layout_example.png b/docs/images/layout_example.png index 14e2116f6..4a57dffef 100644 Binary files a/docs/images/layout_example.png and b/docs/images/layout_example.png differ diff --git a/docs/images/logo.png b/docs/images/logo.png new file mode 100644 index 000000000..01818084c Binary files /dev/null and b/docs/images/logo.png differ diff --git a/docs/images/logo.svg b/docs/images/logo.svg new file mode 100644 index 000000000..655397802 --- /dev/null +++ b/docs/images/logo.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/images/web_demo_1.png b/docs/images/web_demo_1.png deleted file mode 100644 index 04adff268..000000000 Binary files a/docs/images/web_demo_1.png and /dev/null differ diff --git a/docs/output_file_en_us.md b/docs/output_file_en_us.md deleted file mode 100644 index 1fe9a1274..000000000 --- a/docs/output_file_en_us.md +++ /dev/null @@ -1,327 +0,0 @@ -## Overview - -After executing the `magic-pdf` command, in addition to outputting files related to markdown, several other files unrelated to markdown will also be generated. These files will be introduced one by one. - -### some_pdf_layout.pdf - -Each page layout consists of one or more boxes. The number at the top left of each box indicates its sequence number. Additionally, in `layout.pdf`, different content blocks are highlighted with different background colors. - -![layout example](images/layout_example.png) - -### some_pdf_spans.pdf - -All spans on the page are drawn with different colored line frames according to the span type. This file can be used for quality control, allowing for quick identification of issues such as missing text or unrecognized inline formulas. - -![spans example](images/spans_example.png) - -### some_pdf_model.json - -#### Structure Definition - -```python -from pydantic import BaseModel, Field -from enum import IntEnum - -class CategoryType(IntEnum): - title = 0 # Title - plain_text = 1 # Text - abandon = 2 # Includes headers, footers, page numbers, and page annotations - figure = 3 # Image - figure_caption = 4 # Image description - table = 5 # Table - table_caption = 6 # Table description - table_footnote = 7 # Table footnote - isolate_formula = 8 # Block formula - formula_caption = 9 # Formula label - - embedding = 13 # Inline formula - isolated = 14 # Block formula - text = 15 # OCR recognition result - - -class PageInfo(BaseModel): - page_no: int = Field(description="Page number, the first page is 0", ge=0) - height: int = Field(description="Page height", gt=0) - width: int = Field(description="Page width", ge=0) - -class ObjectInferenceResult(BaseModel): - category_id: CategoryType = Field(description="Category", ge=0) - poly: list[float] = Field(description="Quadrilateral coordinates, representing the coordinates of the top-left, top-right, bottom-right, and bottom-left points respectively") - score: float = Field(description="Confidence of the inference result") - latex: str | None = Field(description="LaTeX parsing result", default=None) - html: str | None = Field(description="HTML parsing result", default=None) - -class PageInferenceResults(BaseModel): - layout_dets: list[ObjectInferenceResult] = Field(description="Page recognition results", ge=0) - page_info: PageInfo = Field(description="Page metadata") - - -# The inference results of all pages, ordered by page number, are stored in a list as the inference results of MinerU -inference_result: list[PageInferenceResults] = [] - -``` - -The format of the poly coordinates is \[x0, y0, x1, y1, x2, y2, x3, y3\], representing the coordinates of the top-left, top-right, bottom-right, and bottom-left points respectively. -![Poly Coordinate Diagram](images/poly.png) - -#### example - -```json -[ - { - "layout_dets": [ - { - "category_id": 2, - "poly": [ - 99.1906967163086, - 100.3119125366211, - 730.3707885742188, - 100.3119125366211, - 730.3707885742188, - 245.81326293945312, - 99.1906967163086, - 245.81326293945312 - ], - "score": 0.9999997615814209 - } - ], - "page_info": { - "page_no": 0, - "height": 2339, - "width": 1654 - } - }, - { - "layout_dets": [ - { - "category_id": 5, - "poly": [ - 99.13092803955078, - 2210.680419921875, - 497.3183898925781, - 2210.680419921875, - 497.3183898925781, - 2264.78076171875, - 99.13092803955078, - 2264.78076171875 - ], - "score": 0.9999997019767761 - } - ], - "page_info": { - "page_no": 1, - "height": 2339, - "width": 1654 - } - } -] -``` - -### some_pdf_middle.json - -| Field Name | Description | -| :------------- | :------------------------------------------------------------------------------------------------------------- | -| pdf_info | list, each element is a dict representing the parsing result of each PDF page, see the table below for details | -| \_parse_type | ocr \| txt, used to indicate the mode used in this intermediate parsing state | -| \_version_name | string, indicates the version of magic-pdf used in this parsing | - -
- -**pdf_info** - -Field structure description - -| Field Name | Description | -| :------------------ | :----------------------------------------------------------------------------------------------------------------- | -| preproc_blocks | Intermediate result after PDF preprocessing, not yet segmented | -| layout_bboxes | Layout segmentation results, containing layout direction (vertical, horizontal), and bbox, sorted by reading order | -| page_idx | Page number, starting from 0 | -| page_size | Page width and height | -| \_layout_tree | Layout tree structure | -| images | list, each element is a dict representing an img_block | -| tables | list, each element is a dict representing a table_block | -| interline_equations | list, each element is a dict representing an interline_equation_block | -| discarded_blocks | List, block information returned by the model that needs to be dropped | -| para_blocks | Result after segmenting preproc_blocks | - -In the above table, `para_blocks` is an array of dicts, each dict representing a block structure. A block can support up to one level of nesting. - -
- -**block** - -The outer block is referred to as a first-level block, and the fields in the first-level block include: - -| Field Name | Description | -| :--------- | :------------------------------------------------------------- | -| type | Block type (table\|image) | -| bbox | Block bounding box coordinates | -| blocks | list, each element is a dict representing a second-level block | - -
-There are only two types of first-level blocks: "table" and "image". All other blocks are second-level blocks. - -The fields in a second-level block include: - -| Field Name | Description | -| :--------- | :---------------------------------------------------------------------------------------------------------- | -| type | Block type | -| bbox | Block bounding box coordinates | -| lines | list, each element is a dict representing a line, used to describe the composition of a line of information | - -Detailed explanation of second-level block types - -| type | Description | -| :----------------- | :--------------------- | -| image_body | Main body of the image | -| image_caption | Image description text | -| table_body | Main body of the table | -| table_caption | Table description text | -| table_footnote | Table footnote | -| text | Text block | -| title | Title block | -| interline_equation | Block formula | - -
- -**line** - -The field format of a line is as follows: - -| Field Name | Description | -| :--------- | :------------------------------------------------------------------------------------------------------ | -| bbox | Bounding box coordinates of the line | -| spans | list, each element is a dict representing a span, used to describe the composition of the smallest unit | - -
- -**span** - -| Field Name | Description | -| :------------------ | :------------------------------------------------------------------------------------------------------- | -| bbox | Bounding box coordinates of the span | -| type | Type of the span | -| content \| img_path | Text spans use content, chart spans use img_path to store the actual text or screenshot path information | - -The types of spans are as follows: - -| type | Description | -| :----------------- | :------------- | -| image | Image | -| table | Table | -| text | Text | -| inline_equation | Inline formula | -| interline_equation | Block formula | - -**Summary** - -A span is the smallest storage unit for all elements. - -The elements stored within para_blocks are block information. - -The block structure is as follows: - -First-level block (if any) -> Second-level block -> Line -> Span - -#### example - -```json -{ - "pdf_info": [ - { - "preproc_blocks": [ - { - "type": "text", - "bbox": [ - 52, - 61.956024169921875, - 294, - 82.99800872802734 - ], - "lines": [ - { - "bbox": [ - 52, - 61.956024169921875, - 294, - 72.0000228881836 - ], - "spans": [ - { - "bbox": [ - 54.0, - 61.956024169921875, - 296.2261657714844, - 72.0000228881836 - ], - "content": "dependent on the service headway and the reliability of the departure ", - "type": "text", - "score": 1.0 - } - ] - } - ] - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 52, - 61, - 294, - 731 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ], - "_layout_tree": [], - "images": [], - "tables": [], - "interline_equations": [], - "discarded_blocks": [], - "para_blocks": [ - { - "type": "text", - "bbox": [ - 52, - 61.956024169921875, - 294, - 82.99800872802734 - ], - "lines": [ - { - "bbox": [ - 52, - 61.956024169921875, - 294, - 72.0000228881836 - ], - "spans": [ - { - "bbox": [ - 54.0, - 61.956024169921875, - 296.2261657714844, - 72.0000228881836 - ], - "content": "dependent on the service headway and the reliability of the departure ", - "type": "text", - "score": 1.0 - } - ] - } - ] - } - ] - } - ], - "_parse_type": "txt", - "_version_name": "0.6.1" -} -``` diff --git a/docs/output_file_zh_cn.md b/docs/output_file_zh_cn.md deleted file mode 100644 index dd921da95..000000000 --- a/docs/output_file_zh_cn.md +++ /dev/null @@ -1,326 +0,0 @@ -## 概览 - -`magic-pdf` 命令执行后除了输出和 markdown 有关的文件以外,还会生成若干个和 markdown 无关的文件。现在将一一介绍这些文件 - -### some_pdf_layout.pdf - -每一页的 layout 均由一个或多个框组成。 每个框左上脚的数字表明它们的序号。此外 layout.pdf 框内用不同的背景色块圈定不同的内容块。 - -![layout 页面示例](images/layout_example.png) - -### some_pdf_spans.pdf - -根据 span 类型的不同,采用不同颜色线框绘制页面上所有 span。该文件可以用于质检,可以快速排查出文本丢失、行间公式未识别等问题。 - -![span 页面示例](images/spans_example.png) - -### some_pdf_model.json - -#### 结构定义 - -```python -from pydantic import BaseModel, Field -from enum import IntEnum - -class CategoryType(IntEnum): - title = 0 # 标题 - plain_text = 1 # 文本 - abandon = 2 # 包括页眉页脚页码和页面注释 - figure = 3 # 图片 - figure_caption = 4 # 图片描述 - table = 5 # 表格 - table_caption = 6 # 表格描述 - table_footnote = 7 # 表格注释 - isolate_formula = 8 # 行间公式 - formula_caption = 9 # 行间公式的标号 - - embedding = 13 # 行内公式 - isolated = 14 # 行间公式 - text = 15 # ocr 识别结果 - - -class PageInfo(BaseModel): - page_no: int = Field(description="页码序号,第一页的序号是 0", ge=0) - height: int = Field(description="页面高度", gt=0) - width: int = Field(description="页面宽度", ge=0) - -class ObjectInferenceResult(BaseModel): - category_id: CategoryType = Field(description="类别", ge=0) - poly: list[float] = Field(description="四边形坐标, 分别是 左上,右上,右下,左下 四点的坐标") - score: float = Field(description="推理结果的置信度") - latex: str | None = Field(description="latex 解析结果", default=None) - html: str | None = Field(description="html 解析结果", default=None) - -class PageInferenceResults(BaseModel): - layout_dets: list[ObjectInferenceResult] = Field(description="页面识别结果", ge=0) - page_info: PageInfo = Field(description="页面元信息") - - -# 所有页面的推理结果按照页码顺序依次放到列表中即为 minerU 推理结果 -inference_result: list[PageInferenceResults] = [] - -``` - -poly 坐标的格式 \[x0, y0, x1, y1, x2, y2, x3, y3\], 分别表示左上、右上、右下、左下四点的坐标 -![poly 坐标示意图](images/poly.png) - -#### 示例数据 - -```json -[ - { - "layout_dets": [ - { - "category_id": 2, - "poly": [ - 99.1906967163086, - 100.3119125366211, - 730.3707885742188, - 100.3119125366211, - 730.3707885742188, - 245.81326293945312, - 99.1906967163086, - 245.81326293945312 - ], - "score": 0.9999997615814209 - } - ], - "page_info": { - "page_no": 0, - "height": 2339, - "width": 1654 - } - }, - { - "layout_dets": [ - { - "category_id": 5, - "poly": [ - 99.13092803955078, - 2210.680419921875, - 497.3183898925781, - 2210.680419921875, - 497.3183898925781, - 2264.78076171875, - 99.13092803955078, - 2264.78076171875 - ], - "score": 0.9999997019767761 - } - ], - "page_info": { - "page_no": 1, - "height": 2339, - "width": 1654 - } - } -] -``` - -### some_pdf_middle.json - -| 字段名 | 解释 | -| :------------- | :----------------------------------------------------------------- | -| pdf_info | list,每个元素都是一个dict,这个dict是每一页pdf的解析结果,详见下表 | -| \_parse_type | ocr \| txt,用来标识本次解析的中间态使用的模式 | -| \_version_name | string, 表示本次解析使用的 magic-pdf 的版本号 | - -
- -**pdf_info** -字段结构说明 - -| 字段名 | 解释 | -| :------------------ | :------------------------------------------------------------------- | -| preproc_blocks | pdf预处理后,未分段的中间结果 | -| layout_bboxes | 布局分割的结果,含有布局的方向(垂直、水平),和bbox,按阅读顺序排序 | -| page_idx | 页码,从0开始 | -| page_size | 页面的宽度和高度 | -| \_layout_tree | 布局树状结构 | -| images | list,每个元素是一个dict,每个dict表示一个img_block | -| tables | list,每个元素是一个dict,每个dict表示一个table_block | -| interline_equations | list,每个元素是一个dict,每个dict表示一个interline_equation_block | -| discarded_blocks | List, 模型返回的需要drop的block信息 | -| para_blocks | 将preproc_blocks进行分段之后的结果 | - -上表中 `para_blocks` 是个dict的数组,每个dict是一个block结构,block最多支持一次嵌套 - -
- -**block** - -外层block被称为一级block,一级block中的字段包括 - -| 字段名 | 解释 | -| :----- | :---------------------------------------------- | -| type | block类型(table\|image) | -| bbox | block矩形框坐标 | -| blocks | list,里面的每个元素都是一个dict格式的二级block | - -
-一级block只有"table"和"image"两种类型,其余block均为二级block - -二级block中的字段包括 - -| 字段名 | 解释 | -| :----- | :----------------------------------------------------------- | -| type | block类型 | -| bbox | block矩形框坐标 | -| lines | list,每个元素都是一个dict表示的line,用来描述一行信息的构成 | - -二级block的类型详解 - -| type | desc | -| :----------------- | :------------- | -| image_body | 图像的本体 | -| image_caption | 图像的描述文本 | -| table_body | 表格本体 | -| table_caption | 表格的描述文本 | -| table_footnote | 表格的脚注 | -| text | 文本块 | -| title | 标题块 | -| interline_equation | 行间公式块 | - -
- -**line** - -line 的 字段格式如下 - -| 字段名 | 解释 | -| :----- | :------------------------------------------------------------------- | -| bbox | line的矩形框坐标 | -| spans | list,每个元素都是一个dict表示的span,用来描述一个最小组成单元的构成 | - -
- -**span** - -| 字段名 | 解释 | -| :------------------ | :------------------------------------------------------------------------------- | -| bbox | span的矩形框坐标 | -| type | span的类型 | -| content \| img_path | 文本类型的span使用content,图表类使用img_path 用来存储实际的文本或者截图路径信息 | - -span 的类型有如下几种 - -| type | desc | -| :----------------- | :------- | -| image | 图片 | -| table | 表格 | -| text | 文本 | -| inline_equation | 行内公式 | -| interline_equation | 行间公式 | - -**总结** - -span是所有元素的最小存储单元 - -para_blocks内存储的元素为区块信息 - -区块结构为 - -一级block(如有)->二级block->line->span - -#### 示例数据 - -```json -{ - "pdf_info": [ - { - "preproc_blocks": [ - { - "type": "text", - "bbox": [ - 52, - 61.956024169921875, - 294, - 82.99800872802734 - ], - "lines": [ - { - "bbox": [ - 52, - 61.956024169921875, - 294, - 72.0000228881836 - ], - "spans": [ - { - "bbox": [ - 54.0, - 61.956024169921875, - 296.2261657714844, - 72.0000228881836 - ], - "content": "dependent on the service headway and the reliability of the departure ", - "type": "text", - "score": 1.0 - } - ] - } - ] - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 52, - 61, - 294, - 731 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ], - "_layout_tree": [], - "images": [], - "tables": [], - "interline_equations": [], - "discarded_blocks": [], - "para_blocks": [ - { - "type": "text", - "bbox": [ - 52, - 61.956024169921875, - 294, - 82.99800872802734 - ], - "lines": [ - { - "bbox": [ - 52, - 61.956024169921875, - 294, - 72.0000228881836 - ], - "spans": [ - { - "bbox": [ - 54.0, - 61.956024169921875, - 296.2261657714844, - 72.0000228881836 - ], - "content": "dependent on the service headway and the reliability of the departure ", - "type": "text", - "score": 1.0 - } - ] - } - ] - } - ] - } - ], - "_parse_type": "txt", - "_version_name": "0.6.1" -} -``` diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 000000000..6669adadd --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,4 @@ +mkdocs +mkdocs-static-i18n +markdown-gfm-admonition +mkdocs-video \ No newline at end of file diff --git a/docs/zh/demo/index.md b/docs/zh/demo/index.md new file mode 100644 index 000000000..103ffc5e6 --- /dev/null +++ b/docs/zh/demo/index.md @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/zh/faq/index.md b/docs/zh/faq/index.md new file mode 100644 index 000000000..e4a198ded --- /dev/null +++ b/docs/zh/faq/index.md @@ -0,0 +1,29 @@ +# 常见问题解答 + +如果未能列出您的问题,您也可以使用[DeepWiki](https://deepwiki.com/opendatalab/MinerU)与AI助手交流,这可以解决大部分常见问题。 + +如果您仍然无法解决问题,您可通过[Discord](https://discord.gg/Tdedn9GTXq)或[WeChat](https://mineru.net/community-portal/?aliasId=3c430f94)加入社区,与其他用户和开发者交流。 + +??? question "在WSL2的Ubuntu22.04中遇到报错`ImportError: libGL.so.1: cannot open shared object file: No such file or directory`" + + WSL2的Ubuntu22.04中缺少`libgl`库,可通过以下命令安装`libgl`库解决: + + ```bash + sudo apt-get install libgl1-mesa-glx + ``` + + 参考:[#388](https://github.com/opendatalab/MinerU/issues/388) + +??? question "在 Linux 系统安装并使用时,解析结果缺失部份文字信息。" + + MinerU在>=2.0的版本中使用`pypdfium2`代替`pymupdf`作为PDF页面的渲染引擎,以解决AGPLv3的许可证问题,在某些Linux发行版,由于缺少CJK字体,可能会在将PDF渲染成图片的过程中丢失部份文字。 + 为了解决这个问题,您可以通过以下命令安装noto字体包,这在Ubuntu/debian系统中有效: + ```bash + sudo apt update + sudo apt install fonts-noto-core + sudo apt install fonts-noto-cjk + fc-cache -fv + ``` + 也可以直接使用我们的[Docker部署](../quick_start/docker_deployment.md)方式构建镜像,镜像中默认包含以上字体包。 + + 参考:[#2915](https://github.com/opendatalab/MinerU/issues/2915) \ No newline at end of file diff --git a/docs/zh/index.md b/docs/zh/index.md new file mode 100644 index 000000000..ee5cdb4f4 --- /dev/null +++ b/docs/zh/index.md @@ -0,0 +1,75 @@ +
+ +

+ +

+
+ + + +[![stars](https://img.shields.io/github/stars/opendatalab/MinerU.svg)](https://github.com/opendatalab/MinerU) +[![forks](https://img.shields.io/github/forks/opendatalab/MinerU.svg)](https://github.com/opendatalab/MinerU) +[![open issues](https://img.shields.io/github/issues-raw/opendatalab/MinerU)](https://github.com/opendatalab/MinerU/issues) +[![issue resolution](https://img.shields.io/github/issues-closed-raw/opendatalab/MinerU)](https://github.com/opendatalab/MinerU/issues) +[![PyPI version](https://img.shields.io/pypi/v/mineru)](https://pypi.org/project/mineru/) +[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mineru)](https://pypi.org/project/mineru/) +[![Downloads](https://static.pepy.tech/badge/mineru)](https://pepy.tech/project/mineru) +[![Downloads](https://static.pepy.tech/badge/mineru/month)](https://pepy.tech/project/mineru) +[![OpenDataLab](https://img.shields.io/badge/webapp_on_mineru.net-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM0IiBoZWlnaHQ9IjEzNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTIyLDljMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Im0xMjIsOWMwLDUtNCw5LTksOXMtOS00LTktOSw0LTksOS05LDksNCw5LDl6IiBmaWxsPSIjMDEwMTAxIi8+PHBhdGggZD0ibTkxLDE4YzAsNS00LDktOSw5cy05LTQtOS05LDQtOSw5LTksOSw0LDksOXoiIGZpbGw9InVybCgjYikiLz48cGF0aCBkPSJtOTEsMThjMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0iIzAxMDEwMSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0idXJsKCNjKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0iIzAxMDEwMSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=&labelColor=white)](https://mineru.net/OpenSourceTools/Extractor?source=github) +[![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/OpenDataLab/MinerU) +[![HuggingFace](https://img.shields.io/badge/Demo_on_HuggingFace-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABYCAMAAACkl9t/AAAAk1BMVEVHcEz/nQv/nQv/nQr/nQv/nQr/nQv/nQv/nQr/wRf/txT/pg7/yRr/rBD/zRz/ngv/oAz/zhz/nwv/txT/ngv/0B3+zBz/nQv/0h7/wxn/vRb/thXkuiT/rxH/pxD/ogzcqyf/nQvTlSz/czCxky7/SjifdjT/Mj3+Mj3wMj15aTnDNz+DSD9RTUBsP0FRO0Q6O0WyIxEIAAAAGHRSTlMADB8zSWF3krDDw8TJ1NbX5efv8ff9/fxKDJ9uAAAGKklEQVR42u2Z63qjOAyGC4RwCOfB2JAGqrSb2WnTw/1f3UaWcSGYNKTdf/P+mOkTrE+yJBulvfvLT2A5ruenaVHyIks33npl/6C4s/ZLAM45SOi/1FtZPyFur1OYofBX3w7d54Bxm+E8db+nDr12ttmESZ4zludJEG5S7TO72YPlKZFyE+YCYUJTBZsMiNS5Sd7NlDmKM2Eg2JQg8awbglfqgbhArjxkS7dgp2RH6hc9AMLdZYUtZN5DJr4molC8BfKrEkPKEnEVjLbgW1fLy77ZVOJagoIcLIl+IxaQZGjiX597HopF5CkaXVMDO9Pyix3AFV3kw4lQLCbHuMovz8FallbcQIJ5Ta0vks9RnolbCK84BtjKRS5uA43hYoZcOBGIG2Epbv6CvFVQ8m8loh66WNySsnN7htL58LNp+NXT8/PhXiBXPMjLSxtwp8W9f/1AngRierBkA+kk/IpUSOeKByzn8y3kAAAfh//0oXgV4roHm/kz4E2z//zRc3/lgwBzbM2mJxQEa5pqgX7d1L0htrhx7LKxOZlKbwcAWyEOWqYSI8YPtgDQVjpB5nvaHaSnBaQSD6hweDi8PosxD6/PT09YY3xQA7LTCTKfYX+QHpA0GCcqmEHvr/cyfKQTEuwgbs2kPxJEB0iNjfJcCTPyocx+A0griHSmADiC91oNGVwJ69RudYe65vJmoqfpul0lrqXadW0jFKH5BKwAeCq+Den7s+3zfRJzA61/Uj/9H/VzLKTx9jFPPdXeeP+L7WEvDLAKAIoF8bPTKT0+TM7W8ePj3Rz/Yn3kOAp2f1Kf0Weony7pn/cPydvhQYV+eFOfmOu7VB/ViPe34/EN3RFHY/yRuT8ddCtMPH/McBAT5s+vRde/gf2c/sPsjLK+m5IBQF5tO+h2tTlBGnP6693JdsvofjOPnnEHkh2TnV/X1fBl9S5zrwuwF8NFrAVJVwCAPTe8gaJlomqlp0pv4Pjn98tJ/t/fL++6unpR1YGC2n/KCoa0tTLoKiEeUPDl94nj+5/Tv3/eT5vBQ60X1S0oZr+IWRR8Ldhu7AlLjPISlJcO9vrFotky9SpzDequlwEir5beYAc0R7D9KS1DXva0jhYRDXoExPdc6yw5GShkZXe9QdO/uOvHofxjrV/TNS6iMJS+4TcSTgk9n5agJdBQbB//IfF/HpvPt3Tbi7b6I6K0R72p6ajryEJrENW2bbeVUGjfgoals4L443c7BEE4mJO2SpbRngxQrAKRudRzGQ8jVOL2qDVjjI8K1gc3TIJ5KiFZ1q+gdsARPB4NQS4AjwVSt72DSoXNyOWUrU5mQ9nRYyjp89Xo7oRI6Bga9QNT1mQ/ptaJq5T/7WcgAZywR/XlPGAUDdet3LE+qS0TI+g+aJU8MIqjo0Kx8Ly+maxLjJmjQ18rA0YCkxLQbUZP1WqdmyQGJLUm7VnQFqodmXSqmRrdVpqdzk5LvmvgtEcW8PMGdaS23EOWyDVbACZzUJPaqMbjDxpA3Qrgl0AikimGDbqmyT8P8NOYiqrldF8rX+YN7TopX4UoHuSCYY7cgX4gHwclQKl1zhx0THf+tCAUValzjI7Wg9EhptrkIcfIJjA94evOn8B2eHaVzvBrnl2ig0So6hvPaz0IGcOvTHvUIlE2+prqAxLSQxZlU2stql1NqCCLdIiIN/i1DBEHUoElM9dBravbiAnKqgpi4IBkw+utSPIoBijDXJipSVV7MpOEJUAc5Qmm3BnUN+w3hteEieYKfRZSIUcXKMVf0u5wD4EwsUNVvZOtUT7A2GkffHjByWpHqvRBYrTV72a6j8zZ6W0DTE86Hn04bmyWX3Ri9WH7ZU6Q7h+ZHo0nHUAcsQvVhXRDZHChwiyi/hnPuOsSEF6Exk3o6Y9DT1eZ+6cASXk2Y9k+6EOQMDGm6WBK10wOQJCBwren86cPPWUcRAnTVjGcU1LBgs9FURiX/e6479yZcLwCBmTxiawEwrOcleuu12t3tbLv/N4RLYIBhYexm7Fcn4OJcn0+zc+s8/VfPeddZHAGN6TT8eGczHdR/Gts1/MzDkThr23zqrVfAMFT33Nx1RJsx1k5zuWILLnG/vsH+Fv5D4NTVcp1Gzo8AAAAAElFTkSuQmCC&labelColor=white)](https://huggingface.co/spaces/opendatalab/MinerU) +[![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/gist/myhloli/a3cb16570ab3cfeadf9d8f0ac91b4fca/mineru_demo.ipynb) +[![arXiv](https://img.shields.io/badge/MinerU-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2409.18839) +[![arXiv](https://img.shields.io/badge/MinerU2.5-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2509.22186) +[![arXiv](https://img.shields.io/badge/MinerU2.5%20Pro-Technical%20Report-b31b1b.svg?logo=arXiv)](https://arxiv.org/abs/2604.04771) +[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/opendatalab/MinerU) + + + +## 项目简介 + +MinerU 是一款文档解析工具,可将 `PDF`、图片以及 `DOCX`、`PPTX`、`XLSX` 转化为机器可读格式(如 Markdown、JSON),便于后续检索、抽取与二次处理。 +MinerU诞生于[书生-浦语](https://github.com/InternLM/InternLM)的预训练过程中,我们将会集中精力解决科技文献中的符号转化问题,希望在大模型时代为科技发展做出贡献。 +相比国内外知名商用产品MinerU还很年轻,如果遇到问题或者结果不及预期请到[issue](https://github.com/opendatalab/MinerU/issues)提交问题,同时**附上相关文档或样例文件**。 + +![type:video](https://github.com/user-attachments/assets/4bea02c9-6d54-4cd6-97ed-dff14340982c) + +## 主要功能 + +- 支持 `PDF`、图片与 `DOCX`、`PPTX`、`XLSX` 输入 +- 删除页眉、页脚、脚注、页码等元素,确保语义连贯 +- 输出符合人类阅读顺序的文本,适用于单栏、多栏及复杂排版 +- 保留原文档的结构,包括标题、段落、列表等 +- 提取图像、图片描述、表格、表格标题及脚注 +- 自动识别并转换文档中的公式为LaTeX格式 +- 自动识别并转换文档中的表格为HTML格式 +- 自动检测扫描版PDF和乱码PDF,并启用OCR功能 +- OCR支持109种语言的检测与识别 +- 支持多种输出格式,如多模态与NLP的Markdown、按阅读顺序排序的JSON、含有丰富信息的中间格式等 +- 支持多种可视化结果,包括layout可视化、span可视化等,便于高效确认输出效果与质检 +- 内置命令行、FastAPI、Gradio WebUI,支持本地编排和多服务部署 +- 支持纯CPU环境运行,并支持 GPU(CUDA)/NPU(CANN)/MPS 加速 +- 兼容Windows、Linux和Mac平台 + + +## 使用指南 + +- [快速上手指南](./quick_start/index.md) +- [详细使用说明](./usage/index.md) + +## 许可证信息 + +本仓库采用 [MinerU 开源许可证](https://github.com/opendatalab/MinerU/blob/master/LICENSE.md) 进行许可,基于 Apache 2.0 并附带额外条款。 diff --git a/docs/zh/quick_start/docker_deployment.md b/docs/zh/quick_start/docker_deployment.md new file mode 100644 index 000000000..8d74c659a --- /dev/null +++ b/docs/zh/quick_start/docker_deployment.md @@ -0,0 +1,92 @@ +# 使用docker部署Mineru + +MinerU提供了便捷的docker部署方式,这有助于快速搭建环境并解决一些棘手的环境兼容问题。 + +## 使用 Dockerfile 构建镜像 + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/Dockerfile +docker build -t mineru:latest -f Dockerfile . +``` + +## Docker说明 + +Mineru的docker使用了`vllm/vllm-openai`作为基础镜像,因此在docker中默认集成了`vllm`推理加速框架和必需的依赖环境。因此在满足条件的设备上,您可以直接使用`vllm`加速VLM模型推理。 +> [!NOTE] +> 使用`vllm`加速VLM模型推理需要满足的条件是: +> +> - 设备包含Volta及以后架构的显卡,且可用显存大于等于8G。 +> - 物理机的显卡驱动应支持CUDA 12.9.1或更高版本,可通过`nvidia-smi`命令检查驱动版本。 +> - docker中能够访问物理机的显卡设备。 + + +## 启动 Docker 容器 + +```bash +docker run --gpus all \ + --shm-size 32g \ + -p 30000:30000 -p 7860:7860 -p 8000:8000 -p 8002:8002 \ + --ipc=host \ + -it mineru:latest \ + /bin/bash +``` + +执行该命令后,您将进入到Docker容器的交互式终端,并映射了一些端口用于可能会使用的服务,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + +## 通过 Docker Compose 直接启动服务 + +我们提供了[compose.yml](https://github.com/opendatalab/MinerU/blob/master/docker/compose.yaml)文件,您可以通过它来快速启动MinerU服务。 + +```bash +# 下载 compose.yaml 文件 +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/compose.yaml +``` +>[!NOTE] +> +>- `compose.yaml`文件中包含了MinerU的多个服务配置,您可以根据需要选择启动特定的服务。 +>- 不同的服务可能会有额外的参数配置,您可以在`compose.yaml`文件中查看并编辑。 +>- 由于`vllm`推理加速框架预分配显存的特性,您可能无法在同一台机器上同时运行多个`vllm`服务,因此请确保在启动`vlm-openai-server`服务或使用`vlm-vllm-engine`后端时,其他可能使用显存的服务已停止。 + +--- + +### 启动 openai兼容接口 服务 +并通过`vlm-http-client`后端连接`openai-server` + ```bash + docker compose -f compose.yaml --profile openai-server up -d + ``` + >[!TIP] + >在另一个终端中通过http client连接openai server(只需cpu与网络,不需要vllm环境) + > ```bash + > mineru -p -o -b vlm-http-client -u http://:30000 + > ``` + +--- + +### 启动 Web API 服务 + ```bash + docker compose -f compose.yaml --profile api up -d + ``` + >[!TIP] + >在浏览器中访问 `http://:8000/docs` 查看API文档。 + +--- + +### 启动 MinerU Router 服务 + ```bash + docker compose -f compose.yaml --profile router up -d + ``` + >[!TIP] + > + >- 默认配置会以 `--local-gpus auto` 模式在容器内自动拉起本地 worker,并通过 `http://:8002/docs` 暴露统一入口。 + >- 如果您希望聚合已有的 `mineru-api` 服务而不是启动本地 worker,可直接参考 `compose.yaml` 中 `mineru-router` 服务下的注释示例,改为使用 `--upstream-url`。 + +--- + +### 启动 Gradio WebUI 服务 + ```bash + docker compose -f compose.yaml --profile gradio up -d + ``` + >[!TIP] + > + >- 在浏览器中访问 `http://:7860` 使用 Gradio WebUI。 diff --git a/docs/zh/quick_start/extension_modules.md b/docs/zh/quick_start/extension_modules.md new file mode 100644 index 000000000..72bad2622 --- /dev/null +++ b/docs/zh/quick_start/extension_modules.md @@ -0,0 +1,54 @@ +# MinerU 扩展模块安装指南 +MinerU 支持根据不同需求,按需安装扩展模块,以增强功能或支持特定的模型后端。 + +## 常见场景 + +### 核心功能安装 +`core` 模块是 MinerU 的核心依赖,包含了除`vllm`/`lmdeploy`外的所有功能模块。安装此模块可以确保 MinerU 的基本功能正常运行。 +```bash +uv pip install "mineru[core]" +``` + +--- + +### 使用`vllm`加速 VLM 模型推理 +> [!NOTE] +> `vllm`和`lmdeploy`对vlm的推理加速效果和使用方式几乎相同,您可以根据实际情况选择其中之一进行安装和使用,但不建议同时安装这两个模块,以避免潜在的依赖冲突。 + +`vllm` 模块提供了对 VLM 模型推理的加速支持,适用于具有 Volta 及以后架构的显卡(8G 显存及以上)。安装此模块可以显著提升模型推理速度。 +```bash +uv pip install "mineru[core,vllm]" +``` +> [!TIP] +> 如在安装包含`vllm`的扩展包过程中发生异常,请参考 [vllm 官方文档](https://docs.vllm.ai/en/latest/getting_started/installation/index.html) 尝试解决,或直接使用 [Docker](./docker_deployment.md) 方式部署镜像。 + +--- + +### 使用`lmdeploy`加速 VLM 模型推理 +> [!NOTE] +> `vllm`和`lmdeploy`对vlm的推理加速效果和使用方式几乎相同,您可以根据实际情况选择其中之一进行安装和使用,但不建议同时安装这两个模块,以避免潜在的依赖冲突。 + +`lmdeploy` 模块提供了对 VLM 模型推理的加速支持,适用于具有 Volta 及以后架构的显卡(8G 显存及以上)。安装此模块可以显著提升模型推理速度。 +```bash +uv pip install "mineru[core,lmdeploy]" +``` +> [!TIP] +> 如在安装包含`lmdeploy`的扩展包过程中发生异常,请参考 [lmdeploy 官方文档](https://lmdeploy.readthedocs.io/en/latest/get_started/installation.html) 尝试解决。 + +--- + +### 安装轻量版client连接兼容openai服务器使用 (适用vlm-http-client模式) +如果您需要在边缘设备上安装轻量版的 client 端以连接兼容 openai 接口的服务端来使用vlm模式,可以安装mineru的基础包,非常轻量,适合在只有cpu和网络连接的设备上使用。 +```bash +uv pip install mineru +mineru -p -o -b vlm-http-client -u http://127.0.0.1:30000 +``` + +--- + +### 安装轻量版client连接兼容openai服务器使用 (适用hybrid-http-client模式) +如果您需要在边缘设备上安装轻量版的 client 端以连接兼容 openai 接口的服务端来使用hybrid模式,可以安装mineru的pipeline扩展包,相对较轻量,可以在只有cpu和网络连接的设备上使用,同时在支持gpu加速的设备上可以更快运行。 +```bash +uv pip install "mineru[pipeline]" +mineru -p -o -b hybrid-http-client -u http://127.0.0.1:30000 +``` diff --git a/docs/zh/quick_start/index.md b/docs/zh/quick_start/index.md new file mode 100644 index 000000000..be259c2d0 --- /dev/null +++ b/docs/zh/quick_start/index.md @@ -0,0 +1,154 @@ +# 快速入门 + +如果遇到任何安装问题,请先查询 [FAQ](../faq/index.md) + +## 在线体验 + +### 官网在线应用 +官网在线版功能与客户端一致,界面美观,功能丰富,需要登录使用 + +- [![OpenDataLab](https://img.shields.io/badge/webapp_on_mineru.net-blue?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTM0IiBoZWlnaHQ9IjEzNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJtMTIyLDljMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0idXJsKCNhKSIvPjxwYXRoIGQ9Im0xMjIsOWMwLDUtNCw5LTksOXMtOS00LTktOSw0LTksOS05LDksNCw5LDl6IiBmaWxsPSIjMDEwMTAxIi8+PHBhdGggZD0ibTkxLDE4YzAsNS00LDktOSw5cy05LTQtOS05LDQtOSw5LTksOSw0LDksOXoiIGZpbGw9InVybCgjYikiLz48cGF0aCBkPSJtOTEsMThjMCw1LTQsOS05LDlzLTktNC05LTksNC05LDktOSw5LDQsOSw5eiIgZmlsbD0iIzAxMDEwMSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0idXJsKCNjKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJtMzksNjJjMCwxNiw4LDMwLDIwLDM4LDctNiwxMi0xNiwxMi0yNlY0OWMwLTQsMy03LDYtOGw0Ni0xMmM1LTEsMTEsMywxMSw4djMxYzAsMzctMzAsNjYtNjYsNjYtMzcsMC02Ni0zMC02Ni02NlY0NmMwLTQsMy03LDYtOGwyMC02YzUtMSwxMSwzLDExLDh2MjF6bS0yOSw2YzAsMTYsNiwzMCwxNyw0MCwzLDEsNSwxLDgsMSw1LDAsMTAtMSwxNS0zQzM3LDk1LDI5LDc5LDI5LDYyVjQybC0xOSw1djIweiIgZmlsbD0iIzAxMDEwMSIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0iYSIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYiIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iYyIgeDE9Ijg0IiB5MT0iNDEiIHgyPSI3NSIgeTI9IjEyMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiNmZmYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyZTJlMmUiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=&labelColor=white)](https://mineru.net/OpenSourceTools/Extractor?source=github) + +### 基于Gradio的在线demo +基于gradio开发的webui,界面简洁,仅包含核心解析功能,免登录 + +- [![ModelScope](https://img.shields.io/badge/Demo_on_ModelScope-purple?logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIzIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KCiA8Zz4KICA8dGl0bGU+TGF5ZXIgMTwvdGl0bGU+CiAgPHBhdGggaWQ9InN2Z18xNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTAsODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTUiIGZpbGw9IiM2MjRhZmYiIGQ9Im05OS4xNCwxMTUuNDlsMjUuNjUsMGwwLDI1LjY1bC0yNS42NSwwbDAsLTI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTYiIGZpbGw9IiM2MjRhZmYiIGQ9Im0xNzYuMDksMTQxLjE0bC0yNS42NDk5OSwwbDAsMjIuMTlsNDcuODQsMGwwLC00Ny44NGwtMjIuMTksMGwwLDI1LjY1eiIvPgogIDxwYXRoIGlkPSJzdmdfMTciIGZpbGw9IiMzNmNmZDEiIGQ9Im0xMjQuNzksODkuODRsMjUuNjUsMGwwLDI1LjY0OTk5bC0yNS42NSwwbDAsLTI1LjY0OTk5eiIvPgogIDxwYXRoIGlkPSJzdmdfMTgiIGZpbGw9IiMzNmNmZDEiIGQ9Im0wLDY0LjE5bDI1LjY1LDBsMCwyNS42NWwtMjUuNjUsMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzE5IiBmaWxsPSIjNjI0YWZmIiBkPSJtMTk4LjI4LDg5Ljg0bDI1LjY0OTk5LDBsMCwyNS42NDk5OWwtMjUuNjQ5OTksMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIwIiBmaWxsPSIjMzZjZmQxIiBkPSJtMTk4LjI4LDY0LjE5bDI1LjY0OTk5LDBsMCwyNS42NWwtMjUuNjQ5OTksMGwwLC0yNS42NXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIxIiBmaWxsPSIjNjI0YWZmIiBkPSJtMTUwLjQ0LDQybDAsMjIuMTlsMjUuNjQ5OTksMGwwLDI1LjY1bDIyLjE5LDBsMCwtNDcuODRsLTQ3Ljg0LDB6Ii8+CiAgPHBhdGggaWQ9InN2Z18yMiIgZmlsbD0iIzM2Y2ZkMSIgZD0ibTczLjQ5LDg5Ljg0bDI1LjY1LDBsMCwyNS42NDk5OWwtMjUuNjUsMGwwLC0yNS42NDk5OXoiLz4KICA8cGF0aCBpZD0ic3ZnXzIzIiBmaWxsPSIjNjI0YWZmIiBkPSJtNDcuODQsNjQuMTlsMjUuNjUsMGwwLC0yMi4xOWwtNDcuODQsMGwwLDQ3Ljg0bDIyLjE5LDBsMCwtMjUuNjV6Ii8+CiAgPHBhdGggaWQ9InN2Z18yNCIgZmlsbD0iIzYyNGFmZiIgZD0ibTQ3Ljg0LDExNS40OWwtMjIuMTksMGwwLDQ3Ljg0bDQ3Ljg0LDBsMCwtMjIuMTlsLTI1LjY1LDBsMCwtMjUuNjV6Ii8+CiA8L2c+Cjwvc3ZnPg==&labelColor=white)](https://www.modelscope.cn/studios/OpenDataLab/MinerU) +- [![HuggingFace](https://img.shields.io/badge/Demo_on_HuggingFace-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF8AAABYCAMAAACkl9t/AAAAk1BMVEVHcEz/nQv/nQv/nQr/nQv/nQr/nQv/nQv/nQr/wRf/txT/pg7/yRr/rBD/zRz/ngv/oAz/zhz/nwv/txT/ngv/0B3+zBz/nQv/0h7/wxn/vRb/thXkuiT/rxH/pxD/ogzcqyf/nQvTlSz/czCxky7/SjifdjT/Mj3+Mj3wMj15aTnDNz+DSD9RTUBsP0FRO0Q6O0WyIxEIAAAAGHRSTlMADB8zSWF3krDDw8TJ1NbX5efv8ff9/fxKDJ9uAAAGKklEQVR42u2Z63qjOAyGC4RwCOfB2JAGqrSb2WnTw/1f3UaWcSGYNKTdf/P+mOkTrE+yJBulvfvLT2A5ruenaVHyIks33npl/6C4s/ZLAM45SOi/1FtZPyFur1OYofBX3w7d54Bxm+E8db+nDr12ttmESZ4zludJEG5S7TO72YPlKZFyE+YCYUJTBZsMiNS5Sd7NlDmKM2Eg2JQg8awbglfqgbhArjxkS7dgp2RH6hc9AMLdZYUtZN5DJr4molC8BfKrEkPKEnEVjLbgW1fLy77ZVOJagoIcLIl+IxaQZGjiX597HopF5CkaXVMDO9Pyix3AFV3kw4lQLCbHuMovz8FallbcQIJ5Ta0vks9RnolbCK84BtjKRS5uA43hYoZcOBGIG2Epbv6CvFVQ8m8loh66WNySsnN7htL58LNp+NXT8/PhXiBXPMjLSxtwp8W9f/1AngRierBkA+kk/IpUSOeKByzn8y3kAAAfh//0oXgV4roHm/kz4E2z//zRc3/lgwBzbM2mJxQEa5pqgX7d1L0htrhx7LKxOZlKbwcAWyEOWqYSI8YPtgDQVjpB5nvaHaSnBaQSD6hweDi8PosxD6/PT09YY3xQA7LTCTKfYX+QHpA0GCcqmEHvr/cyfKQTEuwgbs2kPxJEB0iNjfJcCTPyocx+A0griHSmADiC91oNGVwJ69RudYe65vJmoqfpul0lrqXadW0jFKH5BKwAeCq+Den7s+3zfRJzA61/Uj/9H/VzLKTx9jFPPdXeeP+L7WEvDLAKAIoF8bPTKT0+TM7W8ePj3Rz/Yn3kOAp2f1Kf0Weony7pn/cPydvhQYV+eFOfmOu7VB/ViPe34/EN3RFHY/yRuT8ddCtMPH/McBAT5s+vRde/gf2c/sPsjLK+m5IBQF5tO+h2tTlBGnP6693JdsvofjOPnnEHkh2TnV/X1fBl9S5zrwuwF8NFrAVJVwCAPTe8gaJlomqlp0pv4Pjn98tJ/t/fL++6unpR1YGC2n/KCoa0tTLoKiEeUPDl94nj+5/Tv3/eT5vBQ60X1S0oZr+IWRR8Ldhu7AlLjPISlJcO9vrFotky9SpzDequlwEir5beYAc0R7D9KS1DXva0jhYRDXoExPdc6yw5GShkZXe9QdO/uOvHofxjrV/TNS6iMJS+4TcSTgk9n5agJdBQbB//IfF/HpvPt3Tbi7b6I6K0R72p6ajryEJrENW2bbeVUGjfgoals4L443c7BEE4mJO2SpbRngxQrAKRudRzGQ8jVOL2qDVjjI8K1gc3TIJ5KiFZ1q+gdsARPB4NQS4AjwVSt72DSoXNyOWUrU5mQ9nRYyjp89Xo7oRI6Bga9QNT1mQ/ptaJq5T/7WcgAZywR/XlPGAUDdet3LE+qS0TI+g+aJU8MIqjo0Kx8Ly+maxLjJmjQ18rA0YCkxLQbUZP1WqdmyQGJLUm7VnQFqodmXSqmRrdVpqdzk5LvmvgtEcW8PMGdaS23EOWyDVbACZzUJPaqMbjDxpA3Qrgl0AikimGDbqmyT8P8NOYiqrldF8rX+YN7TopX4UoHuSCYY7cgX4gHwclQKl1zhx0THf+tCAUValzjI7Wg9EhptrkIcfIJjA94evOn8B2eHaVzvBrnl2ig0So6hvPaz0IGcOvTHvUIlE2+prqAxLSQxZlU2stql1NqCCLdIiIN/i1DBEHUoElM9dBravbiAnKqgpi4IBkw+utSPIoBijDXJipSVV7MpOEJUAc5Qmm3BnUN+w3hteEieYKfRZSIUcXKMVf0u5wD4EwsUNVvZOtUT7A2GkffHjByWpHqvRBYrTV72a6j8zZ6W0DTE86Hn04bmyWX3Ri9WH7ZU6Q7h+ZHo0nHUAcsQvVhXRDZHChwiyi/hnPuOsSEF6Exk3o6Y9DT1eZ+6cASXk2Y9k+6EOQMDGm6WBK10wOQJCBwren86cPPWUcRAnTVjGcU1LBgs9FURiX/e6479yZcLwCBmTxiawEwrOcleuu12t3tbLv/N4RLYIBhYexm7Fcn4OJcn0+zc+s8/VfPeddZHAGN6TT8eGczHdR/Gts1/MzDkThr23zqrVfAMFT33Nx1RJsx1k5zuWILLnG/vsH+Fv5D4NTVcp1Gzo8AAAAAElFTkSuQmCC&labelColor=white)](https://huggingface.co/spaces/opendatalab/MinerU) + +## 本地部署 + +> [!WARNING] +> **安装前必看——软硬件环境支持说明** +> +> 为了确保项目的稳定性和可靠性,我们在开发过程中仅对特定的软硬件环境进行优化和测试。这样当用户在推荐的系统配置上部署和运行项目时,能够获得最佳的性能表现和最少的兼容性问题。 +> +> 通过集中资源和精力于主线环境,我们团队能够更高效地解决潜在的BUG,及时开发新功能。 +> +> 在非主线环境中,由于硬件、软件配置的多样性,以及第三方依赖项的兼容性问题,我们无法100%保证项目的完全可用性。因此,对于希望在非推荐环境中使用本项目的用户,我们建议先仔细阅读文档以及FAQ,大多数问题已经在FAQ中有对应的解决方案,除此之外我们鼓励社区反馈问题,以便我们能够逐步扩大支持范围。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
解析后端pipeline*-auto-engine*-http-client
hybridvlmhybridvlm
后端特性兼容性好硬件配置要求较高适用于OpenAI兼容服务器2
精度指标186+90+
操作系统Linux3 / Windows4 / macOS5
纯CPU平台支持
GPU加速支持Volta及以后架构GPU或Apple Silicon不需要
显存最低要求4GB8GB8GB2GB
内存要求最低16GB以上,推荐32GB以上16GB
磁盘空间要求20GB以上,推荐使用SSD2GB
python版本3.10-3.13
+ +1 精度指标为OmniDocBench (v1.5)的End-to-End Evaluation Overall分数,基于`MinerU`最新版本测试 +2 兼容OpenAI API的服务器,如通过`vLLM`/`SGLang`/`LMDeploy`等推理框架部署的本地模型服务器或远程模型服务 +3 Linux仅支持2019年及以后发行版 +4 由于关键依赖`ray`未能在windows平台支持Python 3.13,故仅支持至3.10~3.12版本 +5 macOS 需使用14.0以上版本 + + +> [!TIP] +> 除以上主流环境与平台外,我们也收录了一些社区用户反馈的其他平台支持情况,详情请参考[其他加速卡适配](https://opendatalab.github.io/MinerU/zh/usage/)。 +> 如果您有意将自己的环境适配经验分享给社区,欢迎通过[show-and-tell](https://github.com/opendatalab/MinerU/discussions/categories/show-and-tell)提交或提交PR至[其他加速卡适配](https://github.com/opendatalab/MinerU/tree/master/docs/zh/usage/acceleration_cards)文档。 + + +### 安装 MinerU + +#### 使用pip或uv安装MinerU +```bash +pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple +pip install uv -i https://mirrors.aliyun.com/pypi/simple +uv pip install -U "mineru[all]" -i https://mirrors.aliyun.com/pypi/simple +``` + +#### 通过源码安装MinerU +```bash +git clone https://github.com/opendatalab/MinerU.git +cd MinerU +uv pip install -e .[all] -i https://mirrors.aliyun.com/pypi/simple +``` + +> [!TIP] +> `mineru[all]`包含所有核心功能,兼容Windows / Linux / macOS系统,适合绝大多数用户。 +> 如果您需要指定vlm模型的推理框架,或是仅准备在边缘设备安装轻量版client端,可以参考文档[扩展模块安装指南](https://opendatalab.github.io/MinerU/zh/quick_start/extension_modules/)。 + +--- + +#### 使用docker部署Mineru +MinerU提供了便捷的docker部署方式,这有助于快速搭建环境并解决一些棘手的环境兼容问题。 +您可以在文档中获取[Docker部署说明](./docker_deployment.md)。 + +--- + +### 使用 MinerU + +>[!TIP] +>默认使用托管在`huggingface`的模型进行解析,首次使用时会自动下载所需模型文件,后续使用将直接加载本地缓存的模型。如果您无法访问`huggingface`,可以通过以下命令切换至国内镜像源: +>```bash +>export MINERU_MODEL_SOURCE=modelscope +>``` + +如果您的设备满足上表中GPU加速的条件,可以使用简单的命令行进行文档解析: +```bash +mineru -p -o +``` +如果您的设备不满足GPU加速条件,可以指定后端为`pipeline`,以在纯CPU环境下运行: +```bash +mineru -p -o -b pipeline +``` + +当前 `mineru` 支持本地 `PDF / 图片 / DOCX / PPTX / XLSX` 文件或目录输入。 + +您可以通过命令行、API、WebUI 等多种方式使用 MinerU 进行文档解析,具体使用方法请参考[使用指南](../usage/index.md)。 diff --git a/docs/zh/reference/changelog.md b/docs/zh/reference/changelog.md new file mode 100644 index 000000000..2196523e4 --- /dev/null +++ b/docs/zh/reference/changelog.md @@ -0,0 +1,502 @@ +# 更新日志 + +本文档记录 MinerU 项目的版本更新历史、主要能力演进和重要兼容性变动。 + +--- + +## 2.7 系列版本 + +### 2.7.6 (2026/02/06) + +- 新增国产算力平台昆仑芯、太初元碁的适配支持。 +- 目前已由官方和厂商适配并支持的国产算力平台包括:昇腾、平头哥、沐曦、海光、燧原、摩尔线程、天数智芯、寒武纪、昆仑芯、太初元碁、壁仞。 +- MinerU 持续兼容国产硬件平台,支持主流芯片架构,助力科研、政企用户迈向文档数字化新高度。 + +### 2.7.4 (2026/01/30) + +- 新增国产算力平台天数智芯、寒武纪的适配支持。 + +### 2.7.2 (2026/01/23) + +- 新增国产算力平台海光、燧原、摩尔线程的适配支持。 +- 跨页表合并优化,提升合并成功率与合并效果。 + +### 2.7.1 (2026/01/06) + +- bug 修复:#4300 +- 更新 `pdfminer.six` 依赖版本以解决 [CVE-2025-64512](https://github.com/advisories/GHSA-wf5f-4jwr-ppcp) +- 支持输入图像的 EXIF 方向自动校正,提升 OCR 识别效果。#4283 + +### 2.7.0 (2025/12/30) + +- 简化安装流程,使用 `uv pip install mineru[all]` 即可安装所有可选后端依赖。 +- 增加全新后端 `hybrid`,结合 `pipeline` 与 `vlm` 的优势: + - 从文本 PDF 中直接抽取文本,在文本 PDF 场景原生支持多语言识别,并大幅减少解析幻觉; + - 通过指定 OCR 语言,在扫描 PDF 场景支持 109 种语言的文本识别; + - 支持独立的行内公式识别开关,在不需要时可单独关闭以改善结果视觉效果。 +- 简化 `vlm/hybrid` 后端的引擎选择逻辑,用户只需指定 `*-auto-engine` 即可自动选择合适的推理引擎。 +- 默认解析后端从 `pipeline` 切换至 `hybrid-auto-engine`,提升新用户开箱即用时的结果一致性。 +- Gradio 应用增加 i18n 适配,支持中英文切换。 + +--- + +## 2.6 系列版本 + +### 2.6.7 (2025/12/12) + +- bug修复: #4168 + +### 2.6.6 (2025/12/02) + +**`Ascend`适配优化** + +- 优化命令行工具初始化流程,使Ascend适配方案中`vlm-vllm-engine`后端在命令行工具中可用。 +- 为Atlas 300I Duo(310p)设备更新适配文档。 + +**`mineru-api`工具优化** + +- 为`mineru-api`接口参数增加描述性文本,优化接口文档可读性。 +- 可通过环境变量`MINERU_API_ENABLE_FASTAPI_DOCS`控制是否启用自动生成的接口文档页面,默认为启用。 +- 为`vlm-vllm-async-engine`、`vlm-lmdeploy-engine`、`vlm-http-client`后端增加并发数配置选项,用户可通过环境变量`MINERU_API_MAX_CONCURRENT_REQUESTS`控制api接口的最大并发请求数,默认为不限制数量。 + +### 2.6.5 (2025/11/26) + +- 增加新后端`vlm-lmdeploy-engine`支持,使用方式与`vlm-vllm-(async)engine`类似,但使用`lmdeploy`作为推理引擎,与`vllm`相比额外支持Windows平台原生推理加速。 +- 新增国产算力平台`昇腾/npu`、`平头哥/ppu`、`沐曦/maca`的适配支持,用户可在对应平台上使用`pipeline`与`vlm`模型,并使用`vllm`/`lmdeploy`引擎加速vlm模型推理,具体使用方式请参考[其他加速卡适配](https://opendatalab.github.io/MinerU/zh/usage/)。 + - 国产平台适配不易,我们已尽量确保适配的完整性和稳定性,但仍可能存在一些稳定性/兼容问题与精度对齐问题,请大家根据适配文档页面内红绿灯情况自行选择合适的环境与场景进行使用。 + - 如在使用国产化平台适配方案的过程中遇到任何文档未提及的问题,为便于其他用户查找解决方案,请在discussions的[指定帖子](https://github.com/opendatalab/MinerU/discussions/4064)中进行反馈。 + +### 2.6.4 (2025/11/04) + +- 为pdf渲染图片增加超时配置,默认为300秒,可通过环境变量`MINERU_PDF_RENDER_TIMEOUT`进行配置,防止部分异常pdf文件导致渲染过程长时间阻塞。 +- 为onnx模型增加cpu线程数配置选项,默认为系统cpu核心数,可通过环境变量`MINERU_INTRA_OP_NUM_THREADS`和`MINERU_INTER_OP_NUM_THREADS`进行配置,以减少高并发场景下的对cpu资源的抢占冲突。 + +### 2.6.3 (2025/10/31) + +- 增加新后端`vlm-mlx-engine`支持,在Apple Silicon设备上支持使用`MLX`加速`MinerU2.5`模型推理,相比`vlm-transformers`后端,`vlm-mlx-engine`后端速度提升100%~200%。 +- bug修复: #3849 #3859 + +### 2.6.2 (2025/10/24) + +**`pipline`后端优化** + +- 增加对中文公式的实验性支持,可通过配置环境变量`export MINERU_FORMULA_CH_SUPPORT=1`开启。该功能可能会导致MFR速率略微下降、部分长公式识别失败等问题,建议仅在需要解析中文公式的场景下开启。如需关闭该功能,可将环境变量设置为`0`。 +- `OCR`速度大幅提升200%~300%,感谢 [@cjsdurj](https://github.com/cjsdurj) 提供的优化方案 +- `OCR`模型优化拉丁文识别的准度和广度,并更新西里尔文(cyrillic)、阿拉伯文(arabic)、天城文(devanagari)、泰卢固语(te)、泰米尔语(ta)语系至`ppocr-v5`版本,精度相比上代模型提升40%以上 + +**`vlm`后端优化** + +- `table_caption`、`table_footnote`匹配逻辑优化,提升页内多张连续表场景下的表格标题和脚注的匹配准确率和阅读顺序合理性 +- 优化使用`vllm`后端时高并发时的cpu资源占用,降低服务端压力 +- 适配`vllm`0.11.0版本 + +**通用优化** + +- 跨页表格合并效果优化,新增跨页续表合并支持,提升在多列合并场景下的表格合并效果 +- 为表格合并功能增加环境变量配置选项`MINERU_TABLE_MERGE_ENABLE`,表格合并功能默认开启,可通过设置该变量为`0`来关闭表格合并功能 + +--- + +## 2.5 系列版本 + +### 2.5.4 (2025/09/26) + +- 🎉🎉 MinerU2.5[技术报告](https://arxiv.org/abs/2509.22186)现已发布,欢迎阅读全面了解其模型架构、训练策略、数据工程和评测结果。 +- 修复部分`pdf`文件被识别成`ai`文件导致无法解析的问题 + +### 2.5.3 (2025/09/20) + +- 依赖版本范围调整,使得Turing及更早架构显卡可以使用vLLM加速推理MinerU2.5模型。 +- `pipeline`后端对torch 2.8.0的一些兼容性修复。 +- 降低vLLM异步后端默认的并发数,降低服务端压力以避免高压导致的链接关闭问题。 +- 更多兼容性相关内容详见[公告](https://github.com/opendatalab/MinerU/discussions/3547) + +### 2.5.2 (2025/09/19) + +我们正式发布 MinerU2.5,当前最强文档解析多模态大模型。仅凭 1.2B 参数,MinerU2.5 在 OmniDocBench 文档解析评测中,精度已全面超越 Gemini2.5-Pro、GPT-4o、Qwen2.5-VL-72B等顶级多模态大模型,并显著领先于主流文档解析专用模型(如 dots.ocr, MonkeyOCR, PP-StructureV3 等)。 + +模型已发布至[HuggingFace](https://huggingface.co/opendatalab/MinerU2.5-2509-1.2B)和[ModelScope](https://modelscope.cn/models/opendatalab/MinerU2.5-2509-1.2B)平台,欢迎大家下载使用! + +**核心亮点** + +- 极致能效,性能SOTA: 以 1.2B 的轻量化规模,实现了超越百亿乃至千亿级模型的SOTA性能,重新定义了文档解析的能效比。 +- 先进架构,全面领先: 通过 "两阶段推理" (解耦布局分析与内容识别) 与 原生高分辨率架构 的结合,在布局分析、文本识别、公式识别、表格识别及阅读顺序五大方面均达到 SOTA 水平。 + +**关键能力提升** + +- 布局检测: 结果更完整,精准覆盖页眉、页脚、页码等非正文内容;同时提供更精准的元素定位与更自然的格式还原(如列表、参考文献)。 +- 表格解析: 大幅优化了对旋转表格、无线/少线表、以及长难表格的解析能力。 +- 公式识别: 显著提升中英混合公式及复杂长公式的识别准确率,大幅改善数学类文档解析能力。 + +**仓库调整** + +此外,伴随vlm 2.5的发布,我们对仓库做出一些调整: + +- vlm后端升级至2.5版本,支持MinerU2.5模型,不再兼容MinerU2.0-2505-0.9B模型,最后一个支持2.0模型的版本为mineru-2.2.2。 +- vlm推理相关代码已移至[mineru_vl_utils](https://github.com/opendatalab/mineru-vl-utils),降低与mineru主仓库的耦合度,便于后续独立迭代。 +- vlm加速推理框架从`sglang`切换至`vllm`,并实现对vllm生态的完全兼容,使得用户可以在任何支持vllm框架的平台上使用MinerU2.5模型并加速推理。 +- 由于vlm模型的重大升级,支持更多layout type,因此我们对解析的中间文件`middle.json`和结果文件`content_list.json`的结构做出一些调整,请参考[文档](https://opendatalab.github.io/MinerU/zh/reference/output_files/)了解详情。 + +**其他仓库优化** + +- 移除对输入文件的后缀名白名单校验,当输入文件为PDF文档或图片时,对文件的后缀名不再有要求,提升易用性。 + +--- + +## 2.2 - 2.4 系列版本 + +### 2.2.2 (2025/09/10) + +- 修复新的表格识别模型在部分表格解析失败时影响整体解析任务的问题 + +### 2.2.1 (2025/09/08) + +- 修复使用模型下载命令时,部分新增模型未下载的问题 + +### 2.2.0 (2025/09/05) + +**主要更新** + +- 在这个版本我们重点提升了表格的解析精度,通过引入新的[有线表识别模型](https://github.com/RapidAI/TableStructureRec)和全新的混合表格结构解析算法,显著提升了`pipeline`后端的表格识别能力。 +- 另外我们增加了对跨页表格合并的支持,这一功能同时支持`pipeline`和`vlm`后端,进一步提升了表格解析的完整性和准确性。 + +**其他更新** + +- `pipeline`后端增加270度旋转的表格解析能力,现已支持0/90/270度三个方向的表格解析 +- `pipeline`增加对泰文、希腊文的ocr能力支持,并更新了英文ocr模型至最新,英文识别精度提升11%,泰文识别模型精度 82.68%,希腊文识别模型精度 89.28%(by PPOCRv5) +- 在输出的`content_list.json`中增加了`bbox`字段(映射至0-1000范围内),方便用户直接获取每个内容块的位置信息 +- 移除`pipeline_old_linux`安装可选项,不再支持老版本的Linux系统如`Centos 7`等,以便对`uv`的`sync`/`run`等命令进行更好的支持 + +--- + +## 2.1 系列版本 + +### 2.1.10 (2025/08/01) + +- 修复`pipeline`后端因block覆盖导致的解析结果与预期不符 #3232 + +### 2.1.9 (2025/07/30) + +- `transformers` 4.54.1 版本适配 + +### 2.1.8 (2025/07/28) + +- `sglang` 0.4.9.post5 版本适配 + +### 2.1.7 (2025/07/27) + +- `transformers` 4.54.0 版本适配 + +### 2.1.6 (2025/07/26) + +- 修复`vlm`后端解析部分手写文档时的表格异常问题 +- 修复文档旋转时可视化框位置漂移问题 #3175 + +### 2.1.5 (2025/07/24) + +- `sglang` 0.4.9 版本适配,同步升级dockerfile基础镜像为sglang 0.4.9.post3 + +### 2.1.4 (2025/07/23) + +**bug修复** + +- 修复`pipeline`后端中`MFR`步骤在某些情况下显存消耗过大的问题 #2771 +- 修复某些情况下`image`/`table`与`caption`/`footnote`匹配不准确的问题 #3129 + +### 2.1.1 (2025/07/16) + +**bug修复** + +- 修复`pipeline`在某些情况可能发生的文本块内容丢失问题 #3005 +- 修复`sglang-client`需要安装`torch`等不必要的包的问题 #2968 +- 更新`dockerfile`以修复linux字体缺失导致的解析文本内容不完整问题 #2915 + +**易用性更新** + +- 更新`compose.yaml`,便于用户直接启动`sglang-server`、`mineru-api`、`mineru-gradio`服务 +- 启用全新的[在线文档站点](https://opendatalab.github.io/MinerU/zh/),简化readme,提供更好的文档体验 + +### 2.1.0 (2025/07/05) + +这是 MinerU 2 的第一个大版本更新,包含了大量新功能和改进,包含众多性能优化、体验优化和bug修复,具体更新内容如下: + +**性能优化** + +- 大幅提升某些特定分辨率(长边2000像素左右)文档的预处理速度 +- 大幅提升`pipeline`后端批量处理大量页数较少(<10)文档时的后处理速度 +- `pipeline`后端的layout分析速度提升约20% + +**体验优化** + +- 内置开箱即用的`fastapi服务`和`gradio webui`,详细使用方法请参考[文档](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuisglang-clientserver) +- `sglang`适配`0.4.8`版本,大幅降低`vlm-sglang`后端的显存要求,最低可在`8G显存`(Turing及以后架构)的显卡上运行 +- 对所有命令增加`sglang`的参数透传,使得`sglang-engine`后端可以与`sglang-server`一致,接收`sglang`的所有参数 +- 支持基于配置文件的功能扩展,包含`自定义公式标识符`、`开启标题分级功能`、`自定义本地模型目录`,详细使用方法请参考[文档](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#mineru_1) + +**新特性** + +- `pipeline`后端更新 PP-OCRv5 多语种文本识别模型,支持法语、西班牙语、葡萄牙语、俄语、韩语等 37 种语言的文字识别,平均精度涨幅超30%。[详情](https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/algorithm/PP-OCRv5/PP-OCRv5_multi_languages.html) +- `pipeline`后端增加对竖排文本的有限支持 + +--- + +## 2.0 系列版本 + +### 2.0.6 (2025/06/20) + +- 修复`vlm`模式下,某些偶发的无效块内容导致解析中断问题 +- 修复`vlm`模式下,某些不完整的表结构导致的解析中断问题 + +### 2.0.5 (2025/06/17) + +- 修复了`sglang-client`模式下依然需要下载模型的问题 +- 修复了`sglang-client`模式需要依赖`torch`等实际运行不需要的包的问题 +- 修复了同一进程内尝试通过多个url启动多个`sglang-client`实例时,只有第一个生效的问题 + +### 2.0.3 (2025/06/15) + +- 修复了当下载模型类型设置为`all`时,配置文件出现键值更新错误的问题 +- 修复了命令行模式下公式和表格功能开关不生效导致功能无法关闭的问题 +- 修复了`sglang-engine`模式下,0.4.7版本sglang的兼容性问题 +- 更新了sglang环境下部署完整版MinerU的Dockerfile和相关安装文档 + +### 2.0.0 (2025/06/13) + +**全新架构** + +MinerU 2.0 在代码结构和交互方式上进行了深度重构,显著提升了系统的易用性、可维护性与扩展能力。 + +- **去除第三方依赖限制**:彻底移除对 `pymupdf` 的依赖,推动项目向更开放、合规的开源方向迈进。 +- **开箱即用,配置便捷**:无需手动编辑 JSON 配置文件,绝大多数参数已支持命令行或 API 直接设置。 +- **模型自动管理**:新增模型自动下载与更新机制,用户无需手动干预即可完成模型部署。 +- **离线部署友好**:提供内置模型下载命令,支持完全断网环境下的部署需求。 +- **代码结构精简**:移除数千行冗余代码,简化类继承逻辑,显著提升代码可读性与开发效率。 +- **统一中间格式输出**:采用标准化的 `middle_json` 格式,兼容多数基于该格式的二次开发场景,确保生态业务无缝迁移。 + +**全新模型** + +MinerU 2.0 集成了我们最新研发的小参数量、高性能多模态文档解析模型,实现端到端的高速、高精度文档理解。 + +- **小模型,大能力**:模型参数不足 1B,却在解析精度上超越传统 72B 级别的视觉语言模型(VLM)。 +- **多功能合一**:单模型覆盖多语言识别、手写识别、版面分析、表格解析、公式识别、阅读顺序排序等核心任务。 +- **极致推理速度**:在单卡 NVIDIA 4090 上通过 `sglang` 加速,达到峰值吞吐量超过 10,000 token/s,轻松应对大规模文档处理需求。 +- **在线体验**:您可以在[MinerU.net](https://mineru.net/OpenSourceTools/Extractor)、[Hugging Face](https://huggingface.co/spaces/opendatalab/MinerU), 以及[ModelScope](https://www.modelscope.cn/studios/OpenDataLab/MinerU)体验我们的全新VLM模型 + +**不兼容变更说明** + +为提升整体架构合理性与长期可维护性,本版本包含部分不兼容的变更: + +- Python 包名从 `magic-pdf` 更改为 `mineru`,命令行工具也由 `magic-pdf` 改为 `mineru`,请同步更新脚本与调用命令。 +- 出于对系统模块化设计与生态一致性的考虑,MinerU 2.0 已不再内置 LibreOffice 文档转换模块。如需处理 Office 文档,建议通过独立部署的 LibreOffice 服务先行转换为 PDF 格式,再进行后续解析操作。 + +--- + +## 1.x 系列历史版本 + +### 1.3.12 (2025/05/24) + +增加ppocrv5模型的支持,将`ch_server`模型更新为`PP-OCRv5_rec_server`,`ch_lite`模型更新为`PP-OCRv5_rec_mobile`(需更新模型) + +- 在测试中,发现ppocrv5(server)对手写文档效果有一定提升,但在其余类别文档的精度略差于v4_server_doc,因此默认的ch模型保持不变,仍为`PP-OCRv4_server_rec_doc`。 +- 由于ppocrv5强化了手写场景和特殊字符的识别能力,因此您可以在日繁混合场景以及手写文档场景下手动选择使用ppocrv5模型 +- 您可通过lang参数`lang='ch_server'`(python api)或`--lang ch_server`(命令行)自行选择相应的模型: + - `ch` :`PP-OCRv4_rec_server_doc`(默认)(中英日繁混合/1.5w字典) + - `ch_server` :`PP-OCRv5_rec_server`(中英日繁混合+手写场景/1.8w字典) + - `ch_lite` :`PP-OCRv5_rec_mobile`(中英日繁混合+手写场景/1.8w字典) + - `ch_server_v4` :`PP-OCRv4_rec_server`(中英混合/6k字典) + - `ch_lite_v4` :`PP-OCRv4_rec_mobile`(中英混合/6k字典) + +增加手写文档的支持,通过优化layout对手写文本区域的识别,现已支持手写文档的解析 + +- 默认支持此功能,无需额外配置 +- 可以参考上述说明,手动选择ppocrv5模型以获得更好的手写文档解析效果 + +`huggingface`和`modelscope`的demo已更新为支持手写识别和ppocrv5模型的版本,可自行在线体验 + +### 1.3.10 (2025/04/29) + +- 支持使用自定义公式标识符,可通过修改用户目录下的`magic-pdf.json`文件中的`latex-delimiter-config`项实现。 + +### 1.3.9 (2025/04/27) + +- 优化公式解析功能,提升公式渲染的成功率 + +### 1.3.8 (2025/04/23) + +`ocr`默认模型(`ch`)更新为`PP-OCRv4_server_rec_doc`(需更新模型) + +- `PP-OCRv4_server_rec_doc`是在`PP-OCRv4_server_rec`的基础上,在更多中文文档数据和PP-OCR训练数据的混合数据训练而成,增加了部分繁体字、日文、特殊字符的识别能力,可支持识别的字符为1.5万+,除文档相关的文字识别能力提升外,也同时提升了通用文字的识别能力。 +- [PP-OCRv4_server_rec_doc/PP-OCRv4_server_rec/PP-OCRv4_mobile_rec 性能对比](https://paddlepaddle.github.io/PaddleX/latest/module_usage/tutorials/ocr_modules/text_recognition.html#_3) +- 经验证,`PP-OCRv4_server_rec_doc`模型在`中英日繁`单种语言或多种语言混合场景均有明显精度提升,且速度与`PP-OCRv4_server_rec`相当,适合绝大部分场景使用。 +- `PP-OCRv4_server_rec_doc`在小部分纯英文场景可能会发生单词粘连问题,`PP-OCRv4_server_rec`则在此场景下表现更好,因此我们保留了`PP-OCRv4_server_rec`模型,用户可通过增加参数`lang='ch_server'`(python api)或`--lang ch_server`(命令行)调用。 + +### 1.3.7 (2025/04/22) + +- 修复表格解析模型初始化时lang参数失效的问题 +- 修复在`cpu`模式下ocr和表格解析速度大幅下降的问题 + +### 1.3.4 (2025/04/16) + +- 通过移除一些无用的块,小幅提升了ocr-det的速度 +- 修复部分情况下由footnote导致的页面内排序错误 + +### 1.3.2 (2025/04/12) + +- 修复了windows系统下,在python3.13环境安装时一些依赖包版本不兼容的问题 +- 优化批量推理时的内存占用 +- 优化旋转90度表格的解析效果 +- 优化财报样本中超大表格的解析效果 +- 修复了在未指定OCR语言时,英文文本区域偶尔出现的单词黏连问题(需要更新模型) + +### 1.3.1 (2025/04/08) + +修复了一些兼容问题 + +- 支持python 3.13 +- 为部分过时的linux系统(如centos7)做出最后适配,并不再保证后续版本的继续支持,[安装说明](https://github.com/opendatalab/MinerU/issues/1004) + +### 1.3.0 (2025/04/03) + +**安装与兼容性优化** + +- 通过移除layout中`layoutlmv3`的使用,解决了由`detectron2`导致的兼容问题 +- torch版本兼容扩展到2.2~2.6(2.5除外) +- cuda兼容支持11.8/12.4/12.6/12.8(cuda版本由torch决定),解决部分用户50系显卡与H系显卡的兼容问题 +- python兼容版本扩展到3.10~3.12,解决了在非3.10环境下安装时自动降级到0.6.1的问题 +- 优化离线部署流程,部署成功后不需要联网下载任何模型文件 + +**性能优化** + +- 通过支持多个pdf文件的batch处理([脚本样例](demo/batch_demo.py)),提升了批量小文件的解析速度 (与1.0.1版本相比,公式解析速度最高提升超过1400%,整体解析速度最高提升超过500%) +- 通过优化mfr模型的加载和使用,降低了显存占用并提升了解析速度(需重新执行[模型下载流程](docs/how_to_download_models_zh_cn.md)以获得模型文件的增量更新) +- 优化显存占用,最低仅需6GB即可运行本项目 +- 优化了在mps设备上的运行速度 + +**解析效果优化** + +- mfr模型更新到`unimernet(2503)`,解决多行公式中换行丢失的问题 + +**易用性优化** + +- 通过使用`paddleocr2torch`,完全替代`paddle`框架以及`paddleocr`在项目中的使用,解决了`paddle`和`torch`的冲突问题,和由于`paddle`框架导致的线程不安全问题 +- 解析过程增加实时进度条显示,精准把握解析进度,让等待不再痛苦 + +### 1.2.1 (2025/03/03) + +修复了一些问题 + +- 修复在字母与数字的全角转半角操作时对标点符号的影响 +- 修复在某些情况下caption的匹配不准确问题 +- 修复在某些情况下的公式span丢失问题 + +### 1.2.0 (2025/02/24) + +这个版本我们修复了一些问题,提升了解析的效率与精度: + +**性能优化** + +- auto模式下pdf文档的分类速度提升 + +**解析优化** + +- 优化对包含水印文档的解析逻辑,显著提升包含水印文档的解析效果 +- 改进了单页内多个图像/表格与caption的匹配逻辑,提升了复杂布局下图文匹配的准确性 + +**问题修复** + +- 修复在某些情况下图片/表格span被填充进textblock导致的异常 +- 修复在某些情况下标题block为空的问题 + +### 1.1.0 (2025/01/22) + +在这个版本我们重点提升了解析的精度与效率: + +**模型能力升级**(需重新执行 [模型下载流程](https://github.com/opendatalab/MinerU/docs/how_to_download_models_zh_cn.md) 以获得模型文件的增量更新) + +- 布局识别模型升级到最新的 `doclayout_yolo(2501)` 模型,提升了layout识别精度 +- 公式解析模型升级到最新的 `unimernet(2501)` 模型,提升了公式识别精度 + +**性能优化** + +- 在配置满足一定条件(显存16GB+)的设备上,通过优化资源占用和重构处理流水线,整体解析速度提升50%以上 + +**解析效果优化** + +- 在线demo([mineru.net](https://mineru.net/OpenSourceTools/Extractor) / [huggingface](https://huggingface.co/spaces/opendatalab/MinerU) / [modelscope](https://www.modelscope.cn/studios/OpenDataLab/MinerU))上新增标题分级功能(测试版本,默认开启),支持对标题进行分级,提升文档结构化程度 + +### 1.0.1 (2025/01/10) + +这是我们的第一个正式版本,在这个版本中,我们通过大量重构带来了全新的API接口和更广泛的兼容性,以及全新的自动语言识别功能: + +**全新API接口** + +- 对于数据侧API,我们引入了Dataset类,旨在提供一个强大而灵活的数据处理框架。该框架当前支持包括图像(.jpg及.png)、PDF、Word(.doc及.docx)、以及PowerPoint(.ppt及.pptx)在内的多种文档格式,确保了从简单到复杂的数据处理任务都能得到有效的支持。 +- 针对用户侧API,我们将MinerU的处理流程精心设计为一系列可组合的Stage阶段。每个Stage代表了一个特定的处理步骤,用户可以根据自身需求自由地定义新的Stage,并通过创造性地组合这些阶段来定制专属的数据处理流程。 + +**更广泛的兼容性适配** + +- 通过优化依赖环境和配置项,确保在ARM架构的Linux系统上能够稳定高效运行。 +- 深度适配华为昇腾NPU加速,积极响应信创要求,提供自主可控的高性能计算能力,助力人工智能应用平台的国产化应用与发展。 [NPU加速教程](https://github.com/opendatalab/MinerU/docs/README_Ascend_NPU_Acceleration_zh_CN.md) + +**自动语言识别** + +- 通过引入全新的语言识别模型, 在文档解析中将 `lang` 配置为 `auto`,即可自动选择合适的OCR语言模型,提升扫描类文档解析的准确性。 + +--- + +## 0.x 系列历史版本 + +### 0.10.0 (2024/11/22) + +通过引入混合OCR文本提取能力: + +- 在公式密集、span区域不规范、部分文本使用图像表现等复杂文本分布场景下获得解析效果的显著提升 +- 同时具备文本模式内容提取准确、速度更快与OCR模式span/line区域识别更准的双重优势 + +### 0.9.3 (2024/11/15) + +为表格识别功能接入了[RapidTable](https://github.com/RapidAI/RapidTable),单表解析速度提升10倍以上,准确率更高,显存占用更低 + +### 0.9.2 (2024/11/06) + +为表格识别功能接入了[StructTable-InternVL2-1B](https://huggingface.co/U4R/StructTable-InternVL2-1B)模型 + +### 0.9.0 (2024/10/31) + +这是我们进行了大量代码重构的全新版本,解决了众多问题,提升了性能,降低了硬件需求,并提供了更丰富的易用性: + +- 重构排序模块代码,使用 [layoutreader](https://github.com/ppaanngggg/layoutreader) 进行阅读顺序排序,确保在各种排版下都能实现极高准确率 +- 重构段落拼接模块,在跨栏、跨页、跨图、跨表情况下均能实现良好的段落拼接效果 +- 重构列表和目录识别功能,极大提升列表块和目录块识别的准确率及对应文本段落的解析效果 +- 重构图、表与描述性文本的匹配逻辑,大幅提升 caption 和 footnote 与图表的匹配准确率,并将描述性文本的丢失率降至接近0 +- 增加 OCR 的多语言支持,支持 84 种语言的检测与识别,语言支持列表详见 [OCR 语言支持列表](https://paddlepaddle.github.io/PaddleOCR/latest/ppocr/blog/multi_languages.html#5) +- 增加显存回收逻辑及其他显存优化措施,大幅降低显存使用需求。开启除表格加速外的全部加速功能(layout/公式/OCR)的显存需求从16GB降至8GB,开启全部加速功能的显存需求从24GB降至10GB +- 优化配置文件的功能开关,增加独立的公式检测开关,无需公式检测时可大幅提升速度和解析效果 +- 集成 [PDF-Extract-Kit 1.0](https://github.com/opendatalab/PDF-Extract-Kit) + - 加入自研的 `doclayout_yolo` 模型,在相近解析效果情况下比原方案提速10倍以上,可通过配置文件与 `layoutlmv3` 自由切换 + - 公式解析升级至 `unimernet 0.2.1`,在提升公式解析准确率的同时,大幅降低显存需求 + - 因 `PDF-Extract-Kit 1.0` 更换仓库,需要重新下载模型,步骤详见 [如何下载模型](https://github.com/opendatalab/MinerU/docs/how_to_download_models_zh_cn.md) + +### 0.8.1 (2024/09/27) + +修复了一些bug,同时提供了[在线demo](https://opendatalab.com/OpenSourceTools/Extractor/PDF/)的[本地化部署版本](https://github.com/opendatalab/MinerU/projects/web_demo/README_zh-CN.md)和[前端界面](https://github.com/opendatalab/MinerU/projects/web/README_zh-CN.md) + +### 0.8.0 (2024/09/09) + +支持Dockerfile快速部署,同时上线了huggingface、modelscope demo + +### 0.7.1 (2024/08/30) + +集成了paddle tablemaster表格识别功能 + +### 0.7.0b1 (2024/08/09) + +简化安装步骤提升易用性,加入表格识别功能 + +### 0.6.2b1 (2024/08/01) + +优化了依赖冲突问题和安装文档 + +### 首次开源 (2024/07/05) + +MinerU项目首次开源发布 diff --git a/docs/zh/reference/index.md b/docs/zh/reference/index.md new file mode 100644 index 000000000..a1b61fb65 --- /dev/null +++ b/docs/zh/reference/index.md @@ -0,0 +1,27 @@ +# 参考文档 + +本章节提供了 MinerU 项目的详细参考资料。在这里您可以找到技术规范、API 文档、输出文件格式说明以及版本历史记录。 + +## 目录 + +- [输出文件说明](./output_files.md) - 详细介绍所有输出文件及其格式 +- [更新日志](./changelog.md) - 版本更新历史和发布说明 + +## 文档概览 + +### 输出文件说明 + +理解 MinerU 生成的输出文件对于有效使用工具至关重要。输出文件文档提供了: + +- **可视化调试文件**:帮助您理解文档解析过程 +- **结构化数据文件**:包含详细的解析结果,可用于进一步处理 +- **文件格式规范**:每种输出文件类型的详细说明 + +### 更新日志 + +更新日志记录了 MinerU 的演进历程,包括: + +- **版本更新**:每个版本的新功能和改进 +- **错误修复**:每个版本中解决的问题 +- **重大变更**:可能影响您使用的重要变更 +- **功能弃用**:正在逐步淘汰的功能 diff --git a/docs/zh/reference/output_files.md b/docs/zh/reference/output_files.md new file mode 100644 index 000000000..0d8a0505a --- /dev/null +++ b/docs/zh/reference/output_files.md @@ -0,0 +1,862 @@ +# MinerU 输出文件说明 + +## 概览 + +`mineru` 命令执行后,除了输出主要的 markdown 文件外,还会生成多个辅助文件用于调试、质检和进一步处理。这些文件包括: + +具体会生成哪些文件,取决于后端类型和输入文档类型。 + +- **可视化调试文件**:帮助用户直观了解文档解析过程和结果 +- **结构化数据文件**:包含详细的解析数据,可用于二次开发 +- 多模态 markdown 输出中,`image` / `chart` 默认以截图为主;若块内存在 `content`,会在图片后追加一个默认折叠的 HTML `
` 内容块,其中折叠标题优先使用块的 `sub_type`,否则回退为 `image content` 或 `chart content` + +下面将详细介绍每个文件的作用和格式。 + +## 可视化调试文件 + +### 布局分析文件 (layout.pdf) + +**文件命名格式**:`{原文件名}_layout.pdf` + +**功能说明**: + +- 可视化展示每一页的布局分析结果 +- 每个检测框右上角的数字表示阅读顺序 +- 使用不同背景色块区分不同类型的内容块 + +**使用场景**: + +- 检查布局分析是否正确 +- 确认阅读顺序是否合理 +- 调试布局相关问题 + +![layout 页面示例](../images/layout_example.png) + +### 文本片段文件 (span.pdf) + +> [!NOTE] +> 仅适用于 pipeline 后端 + +**文件命名格式**:`{原文件名}_span.pdf` + +**功能说明**: + +- 根据 span 类型使用不同颜色线框标注页面内容 +- 用于质量检查和问题排查 + +**使用场景**: + +- 快速排查文本丢失问题 +- 检查行内公式识别情况 +- 验证文本分割准确性 + +![span 页面示例](../images/spans_example.png) + +## 结构化数据文件 + +> [!IMPORTANT] +> 2.5版本vlm后端的输出存在较大变化,与pipeline版本存在不兼容情况,如需基于结构化输出进行二次开发,请仔细阅读本文档内容。 + +### pipeline 后端 输出结果 + +#### 模型推理结果 (model.json) + +**文件命名格式**:`{原文件名}_model.json` + +##### 示例数据 + +```json +[ + { + "cls_id": 12, + "label": "header", + "score": 0.93, + "bbox": [ + 1217, + 104, + 1516, + 134 + ], + "index": 2 + }, + { + "cls_id": 6, + "label": "doc_title", + "score": 0.9751, + "bbox": [ + 275, + 181, + 1512, + 292 + ], + "index": 3 + }, + { + "cls_id": 22, + "label": "text", + "score": 0.9217, + "bbox": [ + 275, + 330, + 524, + 370 + ], + "index": 4 + } +] +``` + +#### 中间处理结果 (middle.json) + +**文件命名格式**:`{原文件名}_middle.json` + +##### 顶层结构 + +| 字段名 | 类型 | 说明 | +|--------|------|------| +| `pdf_info` | `list[dict]` | 每一页的解析结果数组 | +| `_backend` | `string` | 解析模式:`pipeline`、`vlm` 或 `office` | +| `_version_name` | `string` | MinerU 版本号 | + +##### 页面信息结构 (pdf_info) + +| 字段名 | 说明 | +|--------|------| +| `preproc_blocks` | PDF 预处理后的未分段中间结果 | +| `page_idx` | 页码,从 0 开始 | +| `page_size` | 页面的宽度和高度 `[width, height]` | +| `images` | 图片块信息列表 | +| `tables` | 表格块信息列表 | +| `interline_equations` | 行间公式块信息列表 | +| `discarded_blocks` | 需要丢弃的块信息 | +| `para_blocks` | 分段后的内容块结果 | + +##### 块结构层次 + +``` +一级块 (table | image | chart) +└── 二级块 + └── 行 (line) + └── 片段 (span) +``` + +##### 一级块字段 + +| 字段名 | 说明 | +|--------|------| +| `type` | 块类型:`table`、`image` 或 `chart` | +| `bbox` | 块的矩形框坐标 `[x0, y0, x1, y1]` | +| `blocks` | 包含的二级块列表 | + +##### 二级块字段 + +| 字段名 | 说明 | +|--------|------| +| `type` | 块类型(详见下表) | +| `bbox` | 块的矩形框坐标 | +| `lines` | 包含的行信息列表 | + +##### 二级块类型 + +| 类型 | 说明 | +|------|------| +| `image_body` | 图像本体 | +| `image_caption` | 图像描述文本 | +| `image_footnote` | 图像脚注 | +| `table_body` | 表格本体 | +| `table_caption` | 表格描述文本 | +| `table_footnote` | 表格脚注 | +| `chart_body` | 图表本体 | +| `chart_caption` | 图表描述文本 | +| `chart_footnote` | 图表脚注 | +| `text` | 文本块 | +| `title` | 标题块 | +| `index` | 目录块 | +| `list` | 列表块 | +| `interline_equation` | 行间公式块 | + +##### 行和片段结构 + +**行 (line) 字段**: +- `bbox`:行的矩形框坐标 +- `spans`:包含的片段列表 + +**片段 (span) 字段**: +- `bbox`:片段的矩形框坐标 +- `type`:片段类型(`image`、`table`、`chart`、`text`、`inline_equation`、`interline_equation`) +- `content` | `image_path`:文本内容或图片路径 + +##### 示例数据 + +```json +{ + "pdf_info": [ + { + "preproc_blocks": [ + { + "type": "text", + "bbox": [ + 52, + 61.956024169921875, + 294, + 82.99800872802734 + ], + "lines": [ + { + "bbox": [ + 52, + 61.956024169921875, + 294, + 72.0000228881836 + ], + "spans": [ + { + "bbox": [ + 54.0, + 61.956024169921875, + 296.2261657714844, + 72.0000228881836 + ], + "content": "dependent on the service headway and the reliability of the departure ", + "type": "text", + "score": 1.0 + } + ] + } + ] + } + ], + "layout_bboxes": [ + { + "layout_bbox": [ + 52, + 61, + 294, + 731 + ], + "layout_label": "V", + "sub_layout": [] + } + ], + "page_idx": 0, + "page_size": [ + 612.0, + 792.0 + ], + "_layout_tree": [], + "images": [], + "tables": [], + "interline_equations": [], + "discarded_blocks": [], + "para_blocks": [ + { + "type": "text", + "bbox": [ + 52, + 61.956024169921875, + 294, + 82.99800872802734 + ], + "lines": [ + { + "bbox": [ + 52, + 61.956024169921875, + 294, + 72.0000228881836 + ], + "spans": [ + { + "bbox": [ + 54.0, + 61.956024169921875, + 296.2261657714844, + 72.0000228881836 + ], + "content": "dependent on the service headway and the reliability of the departure ", + "type": "text", + "score": 1.0 + } + ] + } + ] + } + ] + } + ], + "_backend": "pipeline", + "_version_name": "0.6.1" +} +``` + +#### 内容列表 (content_list.json) + +**文件命名格式**:`{原文件名}_content_list.json` + +##### 功能说明 + +这是一个简化版的 `middle.json`,按阅读顺序平铺存储所有可读内容块,去除了复杂的布局信息,便于后续处理。 + +##### 内容类型 + +| 类型 | 说明 | +|------|------| +| `image` | 图片 | +| `table` | 表格 | +| `chart` | 图表 | +| `text` | 文本/标题 | +| `equation` | 行间公式 | +| `seal` | 印章 | +| `code` | 代码块 / 算法块 | +| `list` | 列表 / 参考文献列表 | +| `header` / `footer` / `page_number` / `aside_text` / `page_footnote` | 页面辅助块 | + +##### 文本层级标识 + +通过 `text_level` 字段区分文本层级: + +- 无 `text_level` 或 `text_level: 0`:正文文本 +- `text_level: 1`:一级标题 +- `text_level: 2`:二级标题 +- 以此类推... + +##### 通用字段 + +- 所有内容块都包含 `page_idx` 字段,表示所在页码(从 0 开始)。 +- 所有内容块都包含 `bbox` 字段,表示内容块的边界框坐标 `[x0, y0, x1, y1]` 映射在0-1000范围内的结果。 +- `code` 类型会通过 `sub_type` 区分 `code` 和 `algorithm`,并可包含 `code_body`、`code_caption`、`code_footnote` 等字段。 +- `list` 类型可通过 `sub_type` 区分普通列表和参考文献列表。 +- `image` / `chart` 类型可包含可选 `sub_type` 字段,用于透传视觉子类型。 + +##### 示例数据 + +```json +[ + { + "type": "text", + "text": "The response of flow duration curves to afforestation ", + "text_level": 1, + "bbox": [ + 62, + 480, + 946, + 904 + ], + "page_idx": 0 + }, + { + "type": "image", + "img_path": "images/a8ecda1c69b27e4f79fce1589175a9d721cbdc1cf78b4cc06a015f3746f6b9d8.jpg", + "image_caption": [ + "Fig. 1. Annual flow duration curves of daily flows from Pine Creek, Australia, 1989–2000. " + ], + "image_footnote": [], + "bbox": [ + 62, + 480, + 946, + 904 + ], + "page_idx": 1 + }, + { + "type": "equation", + "img_path": "images/181ea56ef185060d04bf4e274685f3e072e922e7b839f093d482c29bf89b71e8.jpg", + "text": "$$\nQ _ { \\% } = f ( P ) + g ( T )\n$$", + "text_format": "latex", + "bbox": [ + 62, + 480, + 946, + 904 + ], + "page_idx": 2 + }, + { + "type": "table", + "img_path": "images/e3cb413394a475e555807ffdad913435940ec637873d673ee1b039e3bc3496d0.jpg", + "table_caption": [ + "Table 2 Significance of the rainfall and time terms " + ], + "table_footnote": [ + "indicates that the rainfall term was significant at the $5 \\%$ level, $T$ indicates that the time term was significant at the $5 \\%$ level, \\* represents significance at the $10 \\%$ level, and na denotes too few data points for meaningful analysis. " + ], + "table_body": "
SitePercentile
102030405060708090100
Traralgon CkPP,*PPP,P,P,P,PP
RedhillP,TP,T,***P.TP,*P*P**,*
Pine CkP,TP,TP,TP,TTTTnana
Stewarts Ck 5P,TP,TP,TP,TP.TP.TP,Tnanana
Glendhu 2PP,TP,*P,TP.TP,nsP,TP,TP,TP,T
Cathedral Peak 2P,TP,TP,TP,TP,T*,TP,TP,TP,TT
Cathedral Peak 3P.TP.TP,TP,TP,TTP,TP,TP,TT
Lambrechtsbos AP,TPPP,T*,T*,T*,T*,T*,TT
Lambrechtsbos BP,TP,TP,TP,TP,TP,TP,TP,TTT
BiesievleiP,TP.TP,TP,T*,T*,TTTP,TP,T
", + "bbox": [ + 62, + 480, + 946, + 904 + ], + "page_idx": 5 + } +] +``` + +### 通用内容列表 V2 (content_list_v2.json)(开发中,格式可能调整) + +**文件命名格式**:`{原文件名}_content_list_v2.json` + +##### 功能说明 + +`content_list_v2.json` 是 3.0 起新增的结构化输出文件,所有后端都会在保留 `content_list.json` 的同时额外输出该文件: + +- 顶层是按页分组的列表,便于按页消费结果 +- 每个内容块使用统一的 `type + content` 结构,适合程序化处理 +- 不同后端和输入类型支持的 `type` 会有所不同 + +##### 通用字段 + +| 字段名 | 类型 | 说明 | +|--------|------|------| +| `type` | `string` | 内容类型 | +| `content` | `dict` | 与 `type` 对应的结构化内容 | +| `bbox` | `list[int]` | 可选,0-1000 范围的边界框 | +| `anchor` | `string` | 可选,部分 `DOCX` 标题或索引项会携带锚点 | + +其中 `image` / `chart` 类型还可能包含可选顶层字段 `sub_type`,用于表示视觉子类型。 + +##### 常见类型 + +| 类型 | 说明 | +|------|------| +| `title` | 标题块,包含 `title_content` 与 `level` | +| `paragraph` | 段落块,包含 `paragraph_content` | +| `equation_interline` | 行间公式,包含 `math_content`、`math_type` | +| `image` / `table` / `chart` / `seal` | 视觉类块,包含图片路径、说明文字等结构化字段 | +| `code` | 代码块,包含 `code_content`、`code_caption`、`code_footnote`、`code_language` | +| `algorithm` | 算法块,包含 `algorithm_content`、`algorithm_caption`、`algorithm_footnote` | +| `list` / `index` | 列表与索引,包含 `list_items` | +| `page_header` / `page_footer` / `page_number` / `page_aside_text` / `page_footnote` | 页面辅助块 | + +##### 示例数据 + +```json +[ + [ + { + "type": "title", + "content": { + "title_content": [ + { + "type": "text", + "content": "1 Introduction" + } + ], + "level": 1 + }, + "bbox": [ + 83, + 121, + 917, + 156 + ] + }, + { + "type": "page_footnote", + "content": { + "page_footnote_content": [ + { + "type": "text", + "content": "* Corresponding author" + } + ] + }, + "bbox": [ + 71, + 815, + 915, + 841 + ] + } + ] +] +``` + +### VLM 后端 输出结果 + +#### 模型推理结果 (model.json) + +**文件命名格式**:`{原文件名}_model.json` + +##### 文件格式说明 + +- 该文件为 VLM 模型的原始输出结果,包含两层嵌套list,外层表示页面,内层表示该页的内容块 +- 每个内容块都是一个dict,包含 `type`、`bbox`、`angle`、`content` 字段 + + +##### 支持的内容类型 + +```json +{ + "text": "文本", + "title": "标题", + "equation": "行间公式", + "image": "图片", + "image_caption": "图片描述", + "image_footnote": "图片脚注", + "table": "表格", + "table_caption": "表格描述", + "table_footnote": "表格脚注", + "phonetic": "拼音", + "code": "代码块", + "code_caption": "代码描述", + "ref_text": "参考文献", + "algorithm": "算法块", + "list": "列表", + "header": "页眉", + "footer": "页脚", + "page_number": "页码", + "aside_text": "装订线旁注", + "page_footnote": "页面脚注" +} +``` + +##### 坐标系统说明 + +`bbox` 坐标格式:`[x0, y0, x1, y1]` + +- 分别表示左上、右下两点的坐标 +- 坐标原点在页面左上角 +- 坐标为相对于原始页面尺寸的百分比,范围在0-1之间 + +##### 示例数据 + +```json +[ + [ + { + "type": "header", + "bbox": [ + 0.077, + 0.095, + 0.18, + 0.181 + ], + "angle": 0, + "score": null, + "block_tags": null, + "content": "ELSEVIER", + "format": null, + "content_tags": null + }, + { + "type": "title", + "bbox": [ + 0.157, + 0.228, + 0.833, + 0.253 + ], + "angle": 0, + "score": null, + "block_tags": null, + "content": "The response of flow duration curves to afforestation", + "format": null, + "content_tags": null + } + ] +] +``` + +#### 中间处理结果 (middle.json) + +**文件命名格式**:`{原文件名}_middle.json` + +##### 文件格式说明 +vlm 后端的 middle.json 文件结构与 pipeline 后端类似,但存在以下差异: + +- list变成二级block,增加`sub_type`字段区分list类型: + * `text`(文本类型) + * `ref_text`(引用类型) + +- 增加code类型block,code类型包含两种"sub_type": + * 分别是`code`和`algorithm` + * 至少有`code_body`, 可选`code_caption` + +- `discarded_blocks`内元素type增加以下类型: + * `header`(页眉) + * `footer`(页脚) + * `page_number`(页码) + * `aside_text`(装订线文本) + * `page_footnote`(脚注) +- 所有block增加`angle`字段,用来表示旋转角度,0,90,180,270 + + +##### 示例数据 +- list block 示例 + ```json + { + "bbox": [ + 174, + 155, + 818, + 333 + ], + "type": "list", + "angle": 0, + "index": 11, + "blocks": [ + { + "bbox": [ + 174, + 157, + 311, + 175 + ], + "type": "text", + "angle": 0, + "lines": [ + { + "bbox": [ + 174, + 157, + 311, + 175 + ], + "spans": [ + { + "bbox": [ + 174, + 157, + 311, + 175 + ], + "type": "text", + "content": "H.1 Introduction" + } + ] + } + ], + "index": 3 + }, + { + "bbox": [ + 175, + 182, + 464, + 229 + ], + "type": "text", + "angle": 0, + "lines": [ + { + "bbox": [ + 175, + 182, + 464, + 229 + ], + "spans": [ + { + "bbox": [ + 175, + 182, + 464, + 229 + ], + "type": "text", + "content": "H.2 Example: Divide by Zero without Exception Handling" + } + ] + } + ], + "index": 4 + } + ], + "sub_type": "text" + } + ``` +- code block 示例 + ```json + { + "type": "code", + "bbox": [ + 114, + 780, + 885, + 1231 + ], + "blocks": [ + { + "bbox": [ + 114, + 780, + 885, + 1231 + ], + "lines": [ + { + "bbox": [ + 114, + 780, + 885, + 1231 + ], + "spans": [ + { + "bbox": [ + 114, + 780, + 885, + 1231 + ], + "type": "text", + "content": "1 // Fig. H.1: DivideByZeroNoExceptionHandling.java \n2 // Integer division without exception handling. \n3 import java.util.Scanner; \n4 \n5 public class DivideByZeroNoExceptionHandling \n6 { \n7 // demonstrates throwing an exception when a divide-by-zero occurs \n8 public static int quotient( int numerator, int denominator ) \n9 { \n10 return numerator / denominator; // possible division by zero \n11 } // end method quotient \n12 \n13 public static void main(String[] args) \n14 { \n15 Scanner scanner = new Scanner(System.in); // scanner for input \n16 \n17 System.out.print(\"Please enter an integer numerator: \"); \n18 int numerator = scanner.nextInt(); \n19 System.out.print(\"Please enter an integer denominator: \"); \n20 int denominator = scanner.nextInt(); \n21" + } + ] + } + ], + "index": 17, + "angle": 0, + "type": "code_body" + }, + { + "bbox": [ + 867, + 160, + 1280, + 189 + ], + "lines": [ + { + "bbox": [ + 867, + 160, + 1280, + 189 + ], + "spans": [ + { + "bbox": [ + 867, + 160, + 1280, + 189 + ], + "type": "text", + "content": "Algorithm 1 Modules for MCTSteg" + } + ] + } + ], + "index": 19, + "angle": 0, + "type": "code_caption" + } + ], + "index": 17, + "sub_type": "code" + } + ``` + +#### 内容列表 (content_list.json) + +**文件命名格式**:`{原文件名}_content_list.json` + +##### 文件格式说明 +vlm 后端的 content_list.json 文件结构与 pipeline 后端类似,伴随本次middle.json的变化,做了以下调整: + +- 新增`code`类型,code类型包含两种"sub_type": + * 分别是`code`和`algorithm` + * 至少有`code_body`, 可选`code_caption` + +- 新增`list`类型,list类型包含两种"sub_type": + * `text` + * `ref_text` + +- `image` / `chart` 类型可能带有可选 `sub_type` 字段,用于透传视觉子类型 +- `chart` 类型除 `img_path` 外,还可包含 `content`、`chart_caption`、`chart_footnote`,其中 `content` 保持原始 Markdown 表格文本 + +- 增加所有所有`discarded_blocks`的输出内容 + * `header` + * `footer` + * `page_number` + * `aside_text` + * `page_footnote` +- 3.0 起,vlm 后端也会同时输出 `*_content_list_v2.json`,其通用结构见上文“通用内容列表 V2”。 + +##### 示例数据 +- code 类型 content + ```json + { + "type": "code", + "sub_type": "algorithm", + "code_caption": [ + "Algorithm 1 Modules for MCTSteg" + ], + "code_body": "1: function GETCOORDINATE(d) \n2: $x \\gets d / l$ , $y \\gets d$ mod $l$ \n3: return $(x, y)$ \n4: end function \n5: function BESTCHILD(v) \n6: $C \\gets$ child set of $v$ \n7: $v' \\gets \\arg \\max_{c \\in C} \\mathrm{UCTScore}(c)$ \n8: $v'.n \\gets v'.n + 1$ \n9: return $v'$ \n10: end function \n11: function BACK PROPAGATE(v) \n12: Calculate $R$ using Equation 11 \n13: while $v$ is not a root node do \n14: $v.r \\gets v.r + R$ , $v \\gets v.p$ \n15: end while \n16: end function \n17: function RANDOMSEARCH(v) \n18: while $v$ is not a leaf node do \n19: Randomly select an untried action $a \\in A(v)$ \n20: Create a new node $v'$ \n21: $(x, y) \\gets \\mathrm{GETCOORDINATE}(v'.d)$ \n22: $v'.p \\gets v$ , $v'.d \\gets v.d + 1$ , $v'.\\Gamma \\gets v.\\Gamma$ \n23: $v'.\\gamma_{x,y} \\gets a$ \n24: if $a = -1$ then \n25: $v.lc \\gets v'$ \n26: else if $a = 0$ then \n27: $v.mc \\gets v'$ \n28: else \n29: $v.rc \\gets v'$ \n30: end if \n31: $v \\gets v'$ \n32: end while \n33: return $v$ \n34: end function \n35: function SEARCH(v) \n36: while $v$ is fully expanded do \n37: $v \\gets$ BESTCHILD(v) \n38: end while \n39: if $v$ is not a leaf node then \n40: $v \\gets$ RANDOMSEARCH(v) \n41: end if \n42: return $v$ \n43: end function", + "bbox": [ + 510, + 87, + 881, + 740 + ], + "page_idx": 0 + } + ``` +- list 类型 content + ```json + { + "type": "list", + "sub_type": "text", + "list_items": [ + "H.1 Introduction", + "H.2 Example: Divide by Zero without Exception Handling", + "H.3 Example: Divide by Zero with Exception Handling", + "H.4 Summary" + ], + "bbox": [ + 174, + 155, + 818, + 333 + ], + "page_idx": 0 + } + ``` +- discarded 类型 content + ```json + [{ + "type": "header", + "text": "Journal of Hydrology 310 (2005) 253-265", + "bbox": [ + 363, + 164, + 623, + 177 + ], + "page_idx": 0 + }, + { + "type": "page_footnote", + "text": "* Corresponding author. Address: Forest Science Centre, Department of Sustainability and Environment, P.O. Box 137, Heidelberg, Vic. 3084, Australia. Tel.: +61 3 9450 8719; fax: +61 3 9450 8644.", + "bbox": [ + 71, + 815, + 915, + 841 + ], + "page_idx": 0 + }] + ``` + + +## 总结 + +以上文件为 MinerU 的完整输出结果,用户可根据需要选择合适的文件进行后续处理: + +- **模型输出**(使用原始输出): + * model.json + +- **调试和验证**(使用可视化文件): + * layout.pdf + * span.pdf + +- **内容提取**(使用简化文件): + * *.md + * content_list.json + * content_list_v2.json + +- **二次开发**(使用结构化文件): + * middle.json diff --git a/docs/zh/usage/acceleration_cards/AMD.md b/docs/zh/usage/acceleration_cards/AMD.md new file mode 100644 index 000000000..1e90e9398 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/AMD.md @@ -0,0 +1,365 @@ +## 基于Triton的ROCm 不同后端实现优化,基本实现vllm后端正常推理,以及pipeline后端中第一步layout用的DocLayout-YOLO + +**已有完整python vllm和mineru环境直接跳转第五步!!!** +**其他GPU执行问题可以参考,先prof查看定位找到哪个算子问题,然后triton后端实现即可** +测试了一下,基本和MinerU官网效果差不多,用AMD的人也不是很多,就在评论区分享给大家了 + +### 1.结果介绍 +**补充一个200页的PDF python编程书测试一下速度,可以到1.99it/s:** +Two Step Extraction: 100%|████████████████████████████████████████| 200/200 [01:40<00:00, 1.99it/s] + +**下面为之前14学术论文测试结果:** +7900xtx mineru-gradio --server-name 0.0.0.0 --server-port 7860 --enable-vllm-engine true 速度大概为**1.6-1.8s/it**,没有仔细测试,简单试了两个文档。第二种矩阵乘法代替原来的dots点乘可以进一步提速到1.3s/it,优化后的主要算子耗时在hipblast(这个没法提升了)和vllm triton后端,各占25%耗时吧,vllm tirion后端这个这个只能等官方优化了。。。。 +doclayout-yolo的layout速度从原来的1.6it/s提高到15it/s,注意需要缓存一下输入的pdf尺寸后,triton必须要缓存尺寸没办法。主要是为了保留模型输入输出接口,最小代码改动。 +采用-b vlm-vllm-engine模式举个例子 + +--- +**测试结果为优化为5d矩阵乘代替原来的点积结果:** +2025-10-05 15:45:12.985 | INFO | mineru.backend.vlm.vlm_analyze:get_model:128 - get vllm-engine predictor cost: 18.45s +Adding requests: 100%|████████████████████████████████████████████████████████████████████████████████| 14/14 [00:01<00:00, 12.20it/s] +Processed prompts: 100%|█████████████████████| 14/14 [00:08<00:00, 1.56it/s, est. speed input: 2174.18 toks/s, output: 791.87 toks/s] +Adding requests: 100%|█████████████████████████████████████████████████████████████████████████████| 278/278 [00:00<00:00, 323.03it/s] +Processed prompts: 100%|██████████████████| 278/278 [00:07<00:00, 37.63it/s, est. speed input: 5264.66 toks/s, output: 2733.31 toks/s] + +mineru-gradio --server-name 0.0.0.0 --server-port 7860 --enable-vllm-engine true测试: +2025-10-05 15:46:55.953 | WARNING | mineru.cli.common:convert_pdf_bytes_to_bytes_by_pypdfium2:54 - end_page_id is out of range, use pdf_docs length +Two Step Extraction: 100%|████████████████████████████████████████████████████████████████████████████| 14/14 [00:18<00:00, 1.30s/it] + +--- + +### 2.原因介绍 +AMD RDNA使用vllm后端有严重的性能问题,原因是因为vllm的**qwen2_vl.py**中有一个算子在rocm kernel上没有对应的实现,导致性能出现严重的卷积计算回退,一次执行花了12s,。。。。。。。。一言难尽。即**MIOpen 库中缺少模型中特定 Conv3d(bfloat16) 的优化内核**。 +DocLayout-YOLO的**g2l_crm.py**空洞卷积也是这个问题,专业的CDNA MI210也没解决这个问题 +正好一起处理了。 + +--- + +### 3.环境介绍 +System: Ubuntu 24.04.3 Kernel: Linux 6.14.0-33-generic ROCm version: 7.0.1 +python环境: +python 3.12 +pytorch-triton-rocm 3.5.0+gitbbb06c03 +torch 2.10.0.dev20251001+rocm7.0 +torchvision 0.25.0.dev20251003+rocm7.0 +vllm 0.11.0rc2.dev198+g736fbf4c8.rocm701 +不同版本无所谓,处理方法是一样的。 + +--- + +### 4.前置环境安装 +``` +uv venv --python python3.12 +source .venv/bin/activate +uv pip install --pre torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple/ --extra-index-url https://download.pytorch.org/whl/nightly/rocm7.0 +uv pip install pip +# 避免覆盖我们本地的pytorch,改用pip而没有继续使用uv pip +pip install -U "mineru[core]" -i https://pypi.mirrors.ustc.edu.cn/simple/ +``` +vllm 安装参考官方手册[Vllm](https://docs.vllm.com.cn/en/latest/getting_started/installation/gpu.html#amd-rocm) +``` +#手动安装aiter,vllm,amd-smi等,自行找一个位置clone,然后进入该目录吧 +git clone --recursive https://github.com/ROCm/aiter.git +cd aiter +git submodule sync; git submodule update --init --recursive +python setup.py develop +cd .. +git clone https://github.com/vllm-project/vllm.git +cd vllm/ +cp -r /opt/rocm/share/amd_smi ~/Pytorch/vllm/ +pip install amd_smi/ +pip install --upgrade numba \ + scipy \ + huggingface-hub[cli,hf_transfer] \ + setuptools_scm +pip install -r requirements/rocm.txt +export PYTORCH_ROCM_ARCH="gfx1100" #根据自己的GPU架构 rocminfo | grep gfx +python setup.py develop +``` +--- + +### 5.vllm中关键triton算子添加 +#### 这里我给出两种解决方法,第一种解决方法就是前面提到的优化到1.5到1.8s/it,第二种方法有手动优化算子到矩阵乘法,7900xtx肯定适用,大概1.3s/it,其他AMD GPU相对方案一也有提速,但是不一定是最佳速度实现,里面的手动部分可能需要微调。 +**注意pip把triton 后端的flash_attn卸载了,搞了半天各种尝试还是报错,问题比较大,直接不用就行了** +``` +#定位自己vllm位置XXX +pip show vllm +``` +**关键更改** +XXX/vllm/model_executor/models/qwen2_vl.py文件: +**1.qwen2_vl.py文件33行下增加from .qwen2_vl_vision_kernels import triton_conv3d_patchify** +``` +from collections.abc import Iterable, Mapping, Sequence +from functools import partial +from typing import Annotated, Any, Callable, Literal, Optional, Union + +import torch +import torch.nn as nn +import torch.nn.functional as F +from .qwen2_vl_vision_kernels import triton_conv3d_patchify +``` +**接下来分为方案一(2.1和3.1)和方案二(2.2和3.2),选取一种实现即可** + +--- +**方案1** +**2.1qwen2_vl.py文件498行class Qwen2VisionPatchEmbed(nn.Module),PS.就是这玩意AMD没有现成的内核算子导致回退** +``` +class Qwen2VisionPatchEmbed(nn.Module): + + def __init__( + self, + patch_size: int = 14, + temporal_patch_size: int = 2, + in_channels: int = 3, + embed_dim: int = 1152, + ) -> None: + super().__init__() + self.patch_size = patch_size + self.temporal_patch_size = temporal_patch_size + self.embed_dim = embed_dim + + kernel_size = (temporal_patch_size, patch_size, patch_size) + self.proj = nn.Conv3d(in_channels, + embed_dim, + kernel_size=kernel_size, + stride=kernel_size, + bias=False) + def forward(self, x: torch.Tensor) -> torch.Tensor: + L, C = x.shape + x_reshaped = x.view(L, -1, self.temporal_patch_size, self.patch_size, + self.patch_size) + + # Call your custom Triton kernel instead of self.proj + x_out = triton_conv3d_patchify(x_reshaped, self.proj.weight) + + # The output of our kernel is already the correct shape [L, embed_dim] + return x_out +``` +**3.1XXX/vllm/model_executor/models/目录下创建qwen2_vl_vision_kernels.py文件,用triton实现** +``` +import torch +from vllm.triton_utils import tl, triton + +@triton.jit +def _conv3d_patchify_kernel( + # Pointers to tensors + X, W, Y, + # Tensor dimensions + N, C_in, D_in, H_in, W_in, + C_out, KD, KH, KW, + # Stride and padding for memory access + stride_xn, stride_xc, stride_xd, stride_xh, stride_xw, + stride_wn, stride_wc, stride_wd, stride_wh, stride_ww, + stride_yn, stride_yc, + # Triton-specific metaparameters + BLOCK_SIZE: tl.constexpr, +): + """ + Triton kernel for a non-overlapping 3D patching convolution. + Each kernel instance computes one output value for one patch. + """ + # Get the program IDs for the N (patch) and C_out (output channel) dimensions + pid_n = tl.program_id(0) # The index of the patch we are processing + pid_cout = tl.program_id(1) # The index of the output channel we are computing + + # --- Calculate memory pointers --- + # Pointer to the start of the current input patch + x_ptr = X + (pid_n * stride_xn) + # Pointer to the start of the current filter (weight) + w_ptr = W + (pid_cout * stride_wn) + # Pointer to where the output will be stored + y_ptr = Y + (pid_n * stride_yn + pid_cout * stride_yc) + + # --- Perform the convolution (element-wise product and sum) --- + # This is a dot product between the flattened patch and the flattened filter. + accumulator = tl.zeros((BLOCK_SIZE,), dtype=tl.float32) + + # Iterate over the elements of the patch/filter + for c_offset in range(0, C_in): + for d_offset in range(0, KD): + for h_offset in range(0, KH): + # Unrolled loop for the innermost dimension (width) for performance + for w_offset in range(0, KW, BLOCK_SIZE): + # Create masks to handle cases where KW is not a multiple of BLOCK_SIZE + w_range = w_offset + tl.arange(0, BLOCK_SIZE) + w_mask = w_range < KW + + # Calculate offsets to load data + patch_offset = (c_offset * stride_xc + d_offset * stride_xd + + h_offset * stride_xh + w_range * stride_xw) + filter_offset = (c_offset * stride_wc + d_offset * stride_wd + + h_offset * stride_wh + w_range * stride_ww) + + # Load patch and filter data, applying masks + patch_vals = tl.load(x_ptr + patch_offset, mask=w_mask, other=0.0) + filter_vals = tl.load(w_ptr + filter_offset, mask=w_mask, other=0.0) + + # Multiply and accumulate + accumulator += patch_vals.to(tl.float32) * filter_vals.to(tl.float32) + + # Sum the accumulator block and store the single output value + output_val = tl.sum(accumulator, axis=0) + tl.store(y_ptr, output_val) + + +def triton_conv3d_patchify(x: torch.Tensor, weight: torch.Tensor) -> torch.Tensor: + """ + Python wrapper for the 3D patching convolution Triton kernel. + """ + # Get tensor dimensions + N, C_in, D_in, H_in, W_in = x.shape + C_out, _, KD, KH, KW = weight.shape + + # Create the output tensor + # The output of this specific conv is (N, C_out, 1, 1, 1), which we squeeze + Y = torch.empty((N, C_out), dtype=x.dtype, device=x.device) + + # Define the grid for launching the Triton kernel + # Each kernel instance handles one patch (N) for one output channel (C_out) + grid = (N, C_out) + + # Launch the kernel + # We pass all strides to make the kernel flexible + _conv3d_patchify_kernel[grid]( + x, weight, Y, + N, C_in, D_in, H_in, W_in, + C_out, KD, KH, KW, + x.stride(0), x.stride(1), x.stride(2), x.stride(3), x.stride(4), + weight.stride(0), weight.stride(1), weight.stride(2), weight.stride(3), weight.stride(4), + Y.stride(0), Y.stride(1), + BLOCK_SIZE=16, # A reasonable default, can be tuned + ) + + return Y +``` +--- +**方案2** +**2.2qwen2_vl.py文件498行class Qwen2VisionPatchEmbed(nn.Module)函数,PS.就是这玩意AMD没有现成的内核算子导致回退,这里我们直接5D张量一步到位,改为矩阵乘法** +``` +class Qwen2VisionPatchEmbed(nn.Module): + + def __init__( + self, + patch_size: int = 14, + temporal_patch_size: int = 2, + in_channels: int = 3, + embed_dim: int = 1152, + ) -> None: + super().__init__() + self.patch_size = patch_size + self.temporal_patch_size = temporal_patch_size + self.embed_dim = embed_dim + + kernel_size = (temporal_patch_size, patch_size, patch_size) + + self.proj = nn.Conv3d(in_channels, + embed_dim, + kernel_size=kernel_size, + stride=kernel_size, + bias=False) + + def forward(self, x: torch.Tensor) -> torch.Tensor: + L, C = x.shape + x_reshaped_5d = x.view(L, -1, self.temporal_patch_size, self.patch_size, + self.patch_size) + + return triton_conv3d_patchify(x_reshaped_5d, self.proj.weight) +``` +**3.2XXX/vllm/model_executor/models/目录下创建qwen2_vl_vision_kernels.py文件,用triton实现** +``` +import torch +from vllm.triton_utils import tl, triton + +@triton.jit +def _conv_gemm_kernel( + A, B, C, M, N, K, + stride_am, stride_ak, + stride_bk, stride_bn, + stride_cm, stride_cn, + BLOCK_M: tl.constexpr, BLOCK_N: tl.constexpr, BLOCK_K: tl.constexpr, +): + pid_m = tl.program_id(0) + pid_n = tl.program_id(1) + offs_m = pid_m * BLOCK_M + tl.arange(0, BLOCK_M) + offs_n = pid_n * BLOCK_N + tl.arange(0, BLOCK_N) + offs_k = tl.arange(0, BLOCK_K) + a_ptrs = A + (offs_m[:, None] * stride_am + offs_k[None, :] * stride_ak) + b_ptrs = B + (offs_k[:, None] * stride_bk + offs_n[None, :] * stride_bn) + accumulator = tl.zeros((BLOCK_M, BLOCK_N), dtype=tl.float32) + for k in range(0, K, BLOCK_K): + a = tl.load(a_ptrs, mask=(offs_m[:, None] < M) & (offs_k[None, :] < K), other=0.0) + b = tl.load(b_ptrs, mask=(offs_k[:, None] < K) & (offs_n[None, :] < N), other=0.0) + accumulator += tl.dot(a, b) + a_ptrs += BLOCK_K * stride_ak + b_ptrs += BLOCK_K * stride_bk + offs_k += BLOCK_K + c = accumulator.to(C.dtype.element_ty) + offs_cm = pid_m * BLOCK_M + tl.arange(0, BLOCK_M) + offs_cn = pid_n * BLOCK_N + tl.arange(0, BLOCK_N) + c_ptrs = C + stride_cm * offs_cm[:, None] + stride_cn * offs_cn[None, :] + c_mask = (offs_cm[:, None] < M) & (offs_cn[None, :] < N) + tl.store(c_ptrs, c, mask=c_mask) + +def triton_conv3d_patchify(x_5d: torch.Tensor, weight_5d: torch.Tensor) -> torch.Tensor: + N_patches, _, _, _, _ = x_5d.shape + C_out, _, _, _, _ = weight_5d.shape + A = x_5d.view(N_patches, -1) + B = weight_5d.view(C_out, -1).transpose(0, 1).contiguous() + M, K = A.shape + _K, N = B.shape + assert K == _K + C = torch.empty((M, N), device=A.device, dtype=A.dtype) + + # --- 针对7900xtx的手动调优配置,其他GPU的最优组合可能需要自行寻找,AMD的autotune效果就是没有效果 --- + best_config = { + 'BLOCK_M': 128, + 'BLOCK_N': 128, + 'BLOCK_K': 32, + } + num_stages = 4 + num_warps = 8 + + grid = (triton.cdiv(M, best_config['BLOCK_M']), + triton.cdiv(N, best_config['BLOCK_N'])) + + _conv_gemm_kernel[grid]( + A, B, C, + M, N, K, + A.stride(0), A.stride(1), + B.stride(0), B.stride(1), + C.stride(0), C.stride(1), + **best_config, + num_stages=num_stages, + num_warps=num_warps + ) + + return C +``` +--- +**4.关闭终端后再次使用mineru-gradio会报一个Lora错误,修改代码跳过它** +``` +pip show mineru_vl_utils +``` + +打开该文件XXX/mineru_vl_utils/vlm_client/vllm_async_engine_client.py修改第58行self.tokenizer = vllm_async_llm.tokenizer.get_lora_tokenizer()为: +``` + try: + self.tokenizer = vllm_async_llm.tokenizer.get_lora_tokenizer() + except AttributeError: + # 如果没有 get_lora_tokenizer 方法,直接使用原始 tokenizer + self.tokenizer = vllm_async_llm.tokenizer +``` + +**最后整两个环境变量后愉快玩耍即可** +``` +export MINERU_MODEL_SOURCE=modelscope +export TORCH_ROCM_AOTRITON_ENABLE_EXPERIMENTAL=1 +``` +--- + +### 6.vllm后端已经没有问题,下面是pipeline 中layout用的doclayout-yolo模型空洞卷积问题 +### 我在 [DocLayout-YOLO](https://github.com/opendatalab/DocLayout-YOLO/issues/120#issuecomment-3368144275) 下做了一个回答,因此 pipeline 的空洞卷积问题不在这里赘述,直接点击链接查看即可。 +查看自己doclayout-yolo安装位置如下,然后进入修改链接中回复介绍的文件即可 +``` +pip show doclayout-yolo +``` + diff --git a/docs/zh/usage/acceleration_cards/Ascend.md b/docs/zh/usage/acceleration_cards/Ascend.md new file mode 100644 index 000000000..1618ce8ba --- /dev/null +++ b/docs/zh/usage/acceleration_cards/Ascend.md @@ -0,0 +1,174 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: CTyunOS 22.06 +cpu: Kunpeng-920 (aarch64) +npu: Ascend 910B2 +driver: 23.0.3 +docker: 20.10.12 +``` + +## 2. 环境准备 + +>[!NOTE] +>Ascend加速卡支持使用`vllm`或`lmdeploy`进行VLM模型推理加速。请根据实际需求选择安装和使用其中之一: + +### 2.1 使用 Dockerfile 构建镜像 (vllm) +> [!TIP] +> ascend-vllm支持设备如下: +> +> - Atlas A2 training series (Atlas 800T A2, Atlas 900 A2 PoD, Atlas 200T A2 Box16, Atlas 300T A2) +> - Atlas 800I A2 inference series (Atlas 800I A2) +> - Atlas A3 training series (Atlas 800T A3, Atlas 900 A3 SuperPoD, Atlas 9000 A3 SuperPoD) +> - Atlas 800I A3 inference series (Atlas 800I A3) +> - [Experimental] Atlas 300I inference series (Atlas 300I Duo) +> +> Dockerfile文件第三行为ascend-vllm基础镜像信息,默认tag为A2适配的版本,例如 `v0.11.0` +> +> - 如需使用A3适配的版本,请将第三行的tag修改为 `v0.11.0-a3`,然后再执行build操作。 +> - 如需使用Atlas 300I Duo适配的版本,请将第三行的tag修改为 `v0.10.0rc1-310p`,然后再执行build操作。 + + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/npu.Dockerfile +docker build --network=host -t mineru:npu-vllm-latest -f npu.Dockerfile . +``` + +### 2.2 使用 Dockerfile 构建镜像 (lmdeploy) + +> [!TIP] +> ascend-lmdeploy支持设备如下: +> +> - Atlas A2 training series (Atlas 800T A2, Atlas 900 A2 PoD, Atlas 200T A2 Box16, Atlas 300T A2) +> - Atlas 800I A2 inference series (Atlas 800I A2) +> +> 如果您的设备为Atlas A3系列或Atlas 300I Duo系列,请使用vllm版本的镜像。 + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/npu.Dockerfile +# 将基础镜像从 vllm 切换为 lmdeploy +sed -i '3s/^/# /' npu.Dockerfile && sed -i '5s/^# //' npu.Dockerfile +docker build --network=host -t mineru:npu-lmdeploy-latest -f npu.Dockerfile . +``` + +## 3. 启动 Docker 容器 + +```bash +docker run -u root --name mineru_docker --privileged=true \ + --ipc=host \ + --network=host \ + --device=/dev/davinci0 \ + --device=/dev/davinci1 \ + --device=/dev/davinci2 \ + --device=/dev/davinci3 \ + --device=/dev/davinci4 \ + --device=/dev/davinci5 \ + --device=/dev/davinci6 \ + --device=/dev/davinci7 \ + --device=/dev/davinci_manager \ + --device=/dev/devmm_svm \ + --device=/dev/hisi_hdc \ + -v /var/log/npu/:/usr/slog \ + -v /usr/local/dcmi:/usr/local/dcmi \ + -v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \ + -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ + -e VLLM_WORKER_MULTIPROC_METHOD=spawn \ + -e MINERU_MODEL_SOURCE=local \ + -e MINERU_LMDEPLOY_DEVICE=ascend \ + -it mineru:npu-vllm-latest \ + /bin/bash +``` + +>[!TIP] +> 请根据实际情况选择使用`vllm`或`lmdeploy`版本的镜像,如需使用lmdeploy,替换上述命令中的`mineru:npu-vllm-latest`为`mineru:npu-lmdeploy-latest`即可。 + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + +>[!NOTE] +> 由于310p加速卡不支持图模式与bf16精度,因此在使用该加速卡时,执行任意与`vllm`相关命令需追加`--enforce-eager --dtype float16`参数。 +> 例如: +> ```bash +> mineru-openai-server --port 30000 --enforce-eager --dtype float16 +> ``` + +## 4. 注意事项 + +不同环境下,MinerU对Ascend加速卡的支持情况如下表所示: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllmlmdeploy
命令行工具(mineru)pipeline🟢🟢
<vlm/hybrid>-auto-engine🟢🟢
<vlm/hybrid>-http-client🟢🟢
fastapi服务(mineru-api)pipeline🟢🟢
<vlm/hybrid>-auto-engine🟢🟢
<vlm/hybrid>-http-client🟢🟢
gradio界面(mineru-gradio)pipeline🟢🟢
<vlm/hybrid>-auto-engine🟢🟢
<vlm/hybrid>-http-client🟢🟢
openai-server服务(mineru-openai-server)🟢🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - NPU加速卡指定可用加速卡的方式与NVIDIA GPU类似,请参考[ASCEND_RT_VISIBLE_DEVICES](https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/850alpha001/maintenref/envvar/envref_07_0028.html) +> - 在Ascend平台可以通过`npu-smi info`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/Biren.md b/docs/zh/usage/acceleration_cards/Biren.md new file mode 100644 index 000000000..acf9a2cc3 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/Biren.md @@ -0,0 +1,108 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: Ubuntu 22.04.4 LTS +cpu: Intel x86-64 +gpu: Biren 106C +driver: 1.10.0 +docker: 28.0.4 +``` + +## 2. 环境准备 + +### 2.1 下载并加载镜像 (vllm) + +```bash +wget http://birentech.com/xxx/MinerU/mineru-vllm.tar 链接获取请联系壁仞内部人员(邮箱:MonaLiu@birentech.com) +docker load -i mineru-vllm.tar +``` + +## 3. 启动 Docker 容器 + +```bash +docker run -it --name mineru_docker \ + --privileged \ + --network=host \ + --shm-size=100G \ + -e MINERU_MODEL_SOURCE=local \ + -e MINERU_DEVICE_MODEL=supa \ + -e SHAPE_TRANSFORM_GRANK=true \ + mineru:biren-vllm-latest \ + /bin/bash +``` + + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + + +## 4. 注意事项 + +不同环境下,MinerU对Biren加速卡的支持情况如下表所示: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllm
命令行工具(mineru)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
fastapi服务(mineru-api)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
gradio界面(mineru-gradio)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
openai-server服务(mineru-openai-server)🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - Biren加速卡指定可用加速卡的方式与NVIDIA GPU类似,请参考[使用指定GPU设备](https://opendatalab.github.io/MinerU/zh/usage/advanced_cli_parameters/#cuda_visible_devices)章节说明, +>将环境变量`CUDA_VISIBLE_DEVICES`替换为`SUPA_VISIBLE_DEVICES`即可。 +> - 在壁仞平台可以通过`brsmi`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/Cambricon.md b/docs/zh/usage/acceleration_cards/Cambricon.md new file mode 100644 index 000000000..fc8a9af42 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/Cambricon.md @@ -0,0 +1,155 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: Ubuntu 22.04.5 LTS +cpu: Hygon Hygon C86 7490 +mlu: MLU590-M9D +driver: v6.2.11 +docker: 28.3.0 +``` + +## 2. 环境准备 + +>[!NOTE] +>Cambricon加速卡支持使用`lmdeploy`或`vllm`进行VLM模型推理加速。请根据实际需求选择安装和使用其中之一: + +### 2.1 使用 Dockerfile 构建镜像 (lmdeploy) + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/mlu.Dockerfile +docker build --network=host -t mineru:mlu-lmdeploy-latest -f mlu.Dockerfile . +``` + +### 2.2 使用 Dockerfile 构建镜像 (vllm) + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/mlu.Dockerfile +# 将基础镜像从 lmdeploy 切换为 vllm +sed -i -e '3,4s/^/# /' -e '6,7s/^# //' mlu.Dockerfile +docker build --network=host -t mineru:mlu-vllm-latest -f mlu.Dockerfile . +``` + +## 3. 启动 Docker 容器 + +```bash +docker run --name mineru_docker \ + --privileged \ + --ipc=host \ + --network=host \ + --shm-size=400g \ + --ulimit memlock=-1 \ + -v /dev:/dev \ + -v /lib/modules:/lib/modules:ro \ + -v /usr/bin/cnmon:/usr/bin/cnmon \ + -e MINERU_MODEL_SOURCE=local \ + -e MINERU_LMDEPLOY_DEVICE=camb \ + -it mineru:mlu-lmdeploy-latest \ + /bin/bash +``` + +>[!TIP] +> 请根据实际情况选择使用`vllm`或`lmdeploy`版本的镜像,如需使用`vllm`,请执行以下操作: +> +> - 替换上述命令中的`mineru:mlu-lmdeploy-latest`为`mineru:mlu-vllm-latest` +> +> - 进入容器后,通过以下命令切换venv环境: +> ```bash +> source /torch/venv3/pytorch_infer/bin/activate +> ``` +> +> - 切换成功后,您可以在命令行前看到`(pytorch_infer)`的标识,这表示您已成功进入`vllm`的虚拟环境。 + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + + +## 4. 注意事项 + +>[!NOTE] +> **兼容性说明**:由于寒武纪(Cambricon)目前对 vLLM v1 引擎的支持尚待完善,MinerU 现阶段采用 v0 引擎作为适配方案。 +> 受此限制,vLLM 的异步引擎(Async Engine)功能存在兼容性问题,可能导致部分使用场景无法正常运行。 +> 我们将持续跟进寒武纪对 vLLM v1 引擎的支持进展,并及时在 MinerU 中进行相应的适配与优化。 + +不同环境下,MinerU对Cambricon加速卡的支持情况如下表所示: + +>[!TIP] +> - `lmdeploy`黄灯问题为不能输入文件夹使用批量解析功能,输入单个文件时表现正常。 +> - `vllm`黄灯问题为在精度未对齐,在部分场景下可能出现预期外结果。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllmlmdeploy
命令行工具(mineru)pipeline🟢🟢
<vlm/hybrid>-auto-engine🟡🟡
<vlm/hybrid>-http-client🟡🟢
fastapi服务(mineru-api)pipeline🟢🟢
<vlm/hybrid>-auto-engine🔴🟢
<vlm/hybrid>-http-client🟡🟢
gradio界面(mineru-gradio)pipeline🟢🟢
<vlm/hybrid>-auto-engine🔴🟢
<vlm/hybrid>-http-client🟡🟢
openai-server服务(mineru-openai-server)🟡🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - Cambricon加速卡指定可用加速卡的方式与NVIDIA GPU类似,请参考[使用指定GPU设备](https://opendatalab.github.io/MinerU/zh/usage/advanced_cli_parameters/#cuda_visible_devices)章节说明, +>将环境变量`CUDA_VISIBLE_DEVICES`替换为`MLU_VISIBLE_DEVICES`即可。 +> - 在Cambricon平台可以通过`cnmon`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/Enflame.md b/docs/zh/usage/acceleration_cards/Enflame.md new file mode 100644 index 000000000..19f662726 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/Enflame.md @@ -0,0 +1,106 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: Ubuntu 22.04.4 LTS +cpu: Intel x86-64 +gcu: Enflame S60 +driver: 1.7.0.9 +docker: 28.0.1 +``` + +## 2. 环境准备 + +### 2.1 使用 Dockerfile 构建镜像 + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/gcu.Dockerfile +docker build --network=host -t mineru:gcu-vllm-latest -f gcu.Dockerfile . +``` + + +## 3. 启动 Docker 容器 + +```bash +docker run -u root --name mineru_docker \ + --network=host \ + --ipc=host \ + --privileged \ + -e MINERU_MODEL_SOURCE=local \ + -it mineru:gcu-vllm-latest \ + /bin/bash +``` + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + + +## 4. 注意事项 + +不同环境下,MinerU对Enflame加速卡的支持情况如下表所示: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllm
命令行工具(mineru)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
fastapi服务(mineru-api)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
gradio界面(mineru-gradio)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
openai-server服务(mineru-openai-server)🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - GCU加速卡指定可用加速卡的方式与NVIDIA GPU类似,请参考[使用指定GPU设备](https://opendatalab.github.io/MinerU/zh/usage/advanced_cli_parameters/#cuda_visible_devices)章节说明, +>将环境变量`CUDA_VISIBLE_DEVICES`替换为`TOPS_VISIBLE_DEVICES`即可。 +> - 在Enflame平台可以通过`efsmi`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/Hygon.md b/docs/zh/usage/acceleration_cards/Hygon.md new file mode 100644 index 000000000..faaada2a3 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/Hygon.md @@ -0,0 +1,112 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: Ubuntu 22.04.3 LTS +cpu: Hygon C86-4G(x86-64) +dcu: BW200 +driver: 6.3.13-V1.12.0a +docker: 20.10.24 +``` + +## 2. 环境准备 + +### 2.1 使用 Dockerfile 构建镜像 + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/dcu.Dockerfile +docker build --network=host -t mineru:dcu-vllm-latest -f dcu.Dockerfile . +``` + + +## 3. 启动 Docker 容器 + +```bash +docker run -u root --name mineru_docker \ + --network=host \ + --ipc=host \ + --shm-size=16G \ + --device=/dev/kfd \ + --device=/dev/mkfd \ + --device=/dev/dri \ + -v /opt/hyhal:/opt/hyhal \ + --group-add video \ + --cap-add=SYS_PTRACE \ + --security-opt seccomp=unconfined \ + -e MINERU_MODEL_SOURCE=local \ + -it mineru:dcu-vllm-latest \ + /bin/bash +``` + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + + +## 4. 注意事项 + +不同环境下,MinerU对Hygon加速卡的支持情况如下表所示: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllm
命令行工具(mineru)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
fastapi服务(mineru-api)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
gradio界面(mineru-gradio)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
openai-server服务(mineru-openai-server)🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - DCU加速卡指定可用加速卡的方式与AMD GPU类似,请参考[GPU isolation techniques](https://rocm.docs.amd.com/en/docs-6.2.4/conceptual/gpu-isolation.html) +> - 在Hygon平台可以通过`hy-smi`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/IluvatarCorex.md b/docs/zh/usage/acceleration_cards/IluvatarCorex.md new file mode 100644 index 000000000..f1ef7c716 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/IluvatarCorex.md @@ -0,0 +1,119 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: Ubuntu 22.04.5 LTS +cpu: Intel x86-64 +gpu: Iluvatar BI-V150 +driver: 4.4.0 +docker: 28.1.1 +``` + +## 2. 环境准备 + +### 2.1 使用 Dockerfile 构建镜像 + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/corex.Dockerfile +docker build --network=host -t mineru:corex-vllm-latest -f corex.Dockerfile . +``` + + +## 3. 启动 Docker 容器 + +```bash +docker run --name mineru_docker \ + -v /usr/src:/usr/src \ + -v /lib/modules:/lib/modules \ + -v /dev:/dev \ + --privileged \ + --cap-add=ALL \ + --pid=host \ + --group-add video \ + --network=host \ + --shm-size '400gb' \ + --ulimit memlock=-1 \ + --security-opt seccomp=unconfined \ + --security-opt apparmor=unconfined \ + -e VLLM_ENFORCE_CUDA_GRAPH=1 \ + -e MINERU_MODEL_SOURCE=local \ + -e MINERU_VLLM_DEVICE=corex \ + -it mineru:corex-vllm-latest \ + /bin/bash +``` + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + + +## 4. 注意事项 + +>[!TIP] +>目前Iluvatar方案使用vllm作为推理引擎时,可能出现服务停止后显存无法正常释放的问题,如果遇到该问题,请重启Docker容器以释放显存。 + +不同环境下,MinerU对Iluvatar加速卡的支持情况如下表所示: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllm
命令行工具(mineru)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
fastapi服务(mineru-api)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
gradio界面(mineru-gradio)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
openai-server服务(mineru-openai-server)🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - Iluvatar加速卡指定可用加速卡的方式与NVIDIA GPU类似,请参考[使用指定GPU设备](https://opendatalab.github.io/MinerU/zh/usage/advanced_cli_parameters/#cuda_visible_devices)章节说明 +> - 在Iluvatar平台可以通过`ixsmi`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/Kunlunxin.md b/docs/zh/usage/acceleration_cards/Kunlunxin.md new file mode 100644 index 000000000..bb54cbdd8 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/Kunlunxin.md @@ -0,0 +1,120 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: Ubuntu 22.04.5 LTS +cpu: Intel x86-64 +xpu: P800 +driver: 515.58 +docker: 20.10.5 +``` + +## 2. 环境准备 + +### 2.1 使用 Dockerfile 构建镜像 (vllm) + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/kxpu.Dockerfile +docker build --network=host -t mineru:kxpu-vllm-latest -f kxpu.Dockerfile . +``` + +## 3. 启动 Docker 容器 + +```bash +docker run -u root --name mineru_docker \ + --device=/dev/xpu0:/dev/xpu0 \ + --device=/dev/xpu1:/dev/xpu1 \ + --device=/dev/xpu2:/dev/xpu2 \ + --device=/dev/xpu3:/dev/xpu3 \ + --device=/dev/xpu4:/dev/xpu4 \ + --device=/dev/xpu5:/dev/xpu5 \ + --device=/dev/xpu6:/dev/xpu6 \ + --device=/dev/xpu7:/dev/xpu7 \ + --device=/dev/xpuctrl:/dev/xpuctrl \ + --net=host \ + --cap-add=SYS_PTRACE --security-opt seccomp=unconfined \ + --tmpfs /dev/shm:rw,nosuid,nodev,exec,size=32g \ + --cap-add=SYS_PTRACE \ + -v /home/users/vllm-kunlun:/home/vllm-kunlun \ + -v /usr/local/bin/xpu-smi:/usr/local/bin/xpu-smi \ + -w /workspace \ + -e MINERU_MODEL_SOURCE=local \ + -e MINERU_FORMULA_CH_SUPPORT=true \ + -e MINERU_VLLM_DEVICE=kxpu \ + -it mineru:kxpu-vllm-latest \ + /bin/bash +``` + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + + +## 4. 注意事项 + +不同环境下,MinerU对Kunlunxin加速卡的支持情况如下表所示: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllm
命令行工具(mineru)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
fastapi服务(mineru-api)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
gradio界面(mineru-gradio)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
openai-server服务(mineru-openai-server)🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - Kunlunxin加速卡指定可用加速卡的方式与NVIDIA GPU类似,请参考[使用指定GPU设备](https://opendatalab.github.io/MinerU/zh/usage/advanced_cli_parameters/#cuda_visible_devices)章节说明, +>将环境变量`CUDA_VISIBLE_DEVICES`替换为`XPU_VISIBLE_DEVICES`即可。 +> - 在Kunlunxin平台可以通过`xpu-smi`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/METAX.md b/docs/zh/usage/acceleration_cards/METAX.md new file mode 100644 index 000000000..cc8f5d196 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/METAX.md @@ -0,0 +1,147 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: Ubuntu 22.04 +cpu: INTEL x86_64 +gpu: C500 +driver: 2.12.13 +docker: 28.1.1 +``` + +## 2. 环境准备 + +>[!NOTE] +>maca加速卡支持使用`vllm`或`lmdeploy`进行VLM模型推理加速。请根据实际需求选择安装和使用其中之一: + +### 2.1 使用metax官方镜像作为基础镜像构建vllm环境镜像 + +1. 从metax官方仓库拉取基础镜像 + - 1.1 镜像获取地址:[https://developer.metax-tech.com/softnova/docker](https://developer.metax-tech.com/softnova/docker) + - 1.2 在镜像网站选择`AI`分类,软件包类型选择`vllm`,操作系统选择`ubuntu` + - 1.3 找到`vllm:maca.ai3.1.0.7-torch2.6-py310-ubuntu22.04-amd64`镜像,复制拉取命令并在本地终端执行 +2. 使用 Dockerfile 构建镜像 (vllm) + ```bash + wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/maca.Dockerfile + docker build --network=host -t mineru:maca-vllm-latest -f maca.Dockerfile . + ``` + + +### 2.2 使用 Dockerfile 构建镜像 (lmdeploy) + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/maca.Dockerfile +# 将基础镜像从 vllm 切换为 lmdeploy +sed -i '3s/^/# /' maca.Dockerfile && sed -i '5s/^# //' maca.Dockerfile +docker build --network=host -t mineru:maca-lmdeploy-latest -f maca.Dockerfile . +``` + +## 3. 启动 Docker 容器 + +```bash +docker run --ipc host \ + --cap-add SYS_PTRACE \ + --privileged=true \ + --device=/dev/mem \ + --device=/dev/dri \ + --device=/dev/mxcd \ + --device=/dev/infiniband \ + --group-add video \ + --network=host \ + --shm-size '100gb' \ + --ulimit memlock=-1 \ + --security-opt seccomp=unconfined \ + --security-opt apparmor=unconfined \ + --name mineru_docker \ + -v /datapool:/datapool \ + -e MINERU_MODEL_SOURCE=local \ + -e MINERU_LMDEPLOY_DEVICE=maca \ + -it mineru:maca-vllm-latest \ + /bin/bash +``` + +>[!TIP] +> 请根据实际情况选择使用`vllm`或`lmdeploy`版本的镜像,如需使用lmdeploy,替换上述命令中的`mineru:maca-vllm-latest`为`mineru:maca-lmdeploy-latest`即可。 + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + +## 4. 注意事项 + +不同环境下,MinerU对maca加速卡的支持情况如下表所示: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllmlmdeploy
命令行工具(mineru)pipeline🟢🟢
<vlm/hybrid>-auto-engine🟢🟢
<vlm/hybrid>-http-client🟢🟢
fastapi服务(mineru-api)pipeline🟢🟢
<vlm/hybrid>-auto-engine🟢🟢
<vlm/hybrid>-http-client🟢🟢
gradio界面(mineru-gradio)pipeline🟢🟢
<vlm/hybrid>-auto-engine🟢🟢
<vlm/hybrid>-http-client🟢🟢
openai-server服务(mineru-openai-server)🟢🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - MACA加速卡指定可用加速卡的方式与NVIDIA GPU类似,请参考[使用指定GPU设备](https://opendatalab.github.io/MinerU/zh/usage/advanced_cli_parameters/#cuda_visible_devices)章节说明。 +> - 在METAX平台可以通过`mx-smi`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/MooreThreads.md b/docs/zh/usage/acceleration_cards/MooreThreads.md new file mode 100644 index 000000000..1015a6377 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/MooreThreads.md @@ -0,0 +1,113 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: Ubuntu 22.04.4 LTS +cpu: Intel x86-64 +dcu: MTT S4000 +driver: 3.0.0-rc-KuaE2.0 +docker: 24.0.7 +``` + +## 2. 环境准备 + +### 2.1 使用 Dockerfile 构建镜像 + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/musa.Dockerfile +docker build --network=host -t mineru:musa-vllm-latest -f musa.Dockerfile . +``` + + +## 3. 启动 Docker 容器 + +```bash +docker run -u root --name mineru_docker \ + --network=host \ + --ipc=host \ + --shm-size=80g \ + --privileged \ + -e MTHREADS_VISIBLE_DEVICES=all \ + -e MINERU_VLLM_DEVICE=musa \ + -e MINERU_MODEL_SOURCE=local \ + -it mineru:musa-vllm-latest \ + /bin/bash +``` + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + + +## 4. 注意事项 + +不同环境下,MinerU对MooreThreads加速卡的支持情况如下表所示: + +>[!NOTE] +> **兼容性说明**:由于摩尔线程(MooreThreads)目前对 vLLM v1 引擎的支持尚待完善,MinerU 现阶段采用 v0 引擎作为适配方案。 +> 受此限制,vLLM 的异步引擎(Async Engine)功能存在兼容性问题,可能导致部分使用场景无法正常运行。 +> 我们将持续跟进摩尔线程对 vLLM v1 引擎的支持进展,并及时在 MinerU 中进行相应的适配与优化。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllm
命令行工具(mineru)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
fastapi服务(mineru-api)pipeline🟢
<vlm/hybrid>-auto-engine🔴
<vlm/hybrid>-http-client🟢
gradio界面(mineru-gradio)pipeline🟢
<vlm/hybrid>-auto-engine🔴
<vlm/hybrid>-http-client🟢
openai-server服务(mineru-openai-server)🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - MooreThreads加速卡指定可用加速卡的方式与NVIDIA GPU类似,请参考[GPU 枚举](https://docs.mthreads.com/cloud-native/cloud-native-doc-online/install_guide/#gpu-%E6%9E%9A%E4%B8%BE) +> - 在MooreThreads平台可以通过`mthreads-gmi`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/THead.md b/docs/zh/usage/acceleration_cards/THead.md new file mode 100644 index 000000000..e46bb79a7 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/THead.md @@ -0,0 +1,138 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: Ubuntu 22.04 +cpu: INTEL x86_64 +ppu: ZW810E +driver: 1.4.0 +docker: 26.1.4 +``` + +## 2. 环境准备 + +>[!NOTE] +>ppu加速卡支持使用`vllm`或`lmdeploy`进行VLM模型推理加速。请根据实际需求选择安装和使用其中之一: + +### 2.1 使用 Dockerfile 构建镜像 (vllm) + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/ppu.Dockerfile +docker build --network=host -t mineru:ppu-vllm-latest -f ppu.Dockerfile . +``` + +### 2.2 使用 Dockerfile 构建镜像 (lmdeploy) + +```bash +wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/ppu.Dockerfile +# 将基础镜像从 vllm 切换为 lmdeploy +sed -i '3s/^/# /' ppu.Dockerfile && sed -i '5s/^# //' ppu.Dockerfile +docker build --network=host -t mineru:ppu-lmdeploy-latest -f ppu.Dockerfile . +``` + + +## 3. 启动 Docker 容器 + +```bash +docker run --privileged=true \ + --name mineru_docker \ + --device=/dev/alixpu \ + --device=/dev/alixpu_ctl \ + --ipc=host \ + --network=host \ + --ulimit memlock=-1 \ + --ulimit stack=67108864 \ + --shm-size=500g \ + -v /mnt:/mnt \ + -v /datapool:/datapool \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -e MINERU_MODEL_SOURCE=local \ + -it mineru:ppu-vllm-latest \ + /bin/bash +``` + +>[!TIP] +> 请根据实际情况选择使用`vllm`或`lmdeploy`版本的镜像,如需使用lmdeploy,替换上述命令中的`mineru:ppu-vllm-latest`为`mineru:ppu-lmdeploy-latest`即可。 + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + +## 4. 注意事项 + +不同环境下,MinerU对ppu加速卡的支持情况如下表所示: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllmlmdeploy
命令行工具(mineru)pipeline🟢🟢
<vlm/hybrid>-auto-engine🟢🟢
<vlm/hybrid>-http-client🟢🟢
fastapi服务(mineru-api)pipeline🟢🟢
<vlm/hybrid>-auto-engine🟢🟢
<vlm/hybrid>-http-client🟢🟢
gradio界面(mineru-gradio)pipeline🟢🟢
<vlm/hybrid>-auto-engine🟢🟢
<vlm/hybrid>-http-client🟢🟢
openai-server服务(mineru-openai-server)🟢🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - PPU加速卡指定可用加速卡的方式与NVIDIA GPU类似,请参考[使用指定GPU设备](https://opendatalab.github.io/MinerU/zh/usage/advanced_cli_parameters/#cuda_visible_devices)章节说明。 +> - 在T-Head平台可以通过`ppu-smi`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/Tecorigin.md b/docs/zh/usage/acceleration_cards/Tecorigin.md new file mode 100644 index 000000000..07180dceb --- /dev/null +++ b/docs/zh/usage/acceleration_cards/Tecorigin.md @@ -0,0 +1,116 @@ +## 1. 测试平台 +以下为本指南测试使用的平台信息,供参考: +``` +os: Ubuntu 22.04.5 LTS +cpu: AMD EPYC (amd64) +gpu: T100 +driver: 3.0.0 +docker: 28.0.4 +``` + +## 2. 环境准备 + +### 2.1 下载并加载镜像 (vllm) + +```bash +wget http://wb.tecorigin.com:8082/repository/teco-customer-repo/Course/MinerU/mineru-vllm.tar + +docker load -i mineru-vllm.tar +``` + +## 3. 启动 Docker 容器 + +```bash +docker run -dit --name mineru_docker \ + --privileged \ + --cap-add SYS_PTRACE \ + --cap-add SYS_ADMIN \ + --network=host \ + --shm-size=500G \ + mineru:sdaa-vllm-latest \ + /bin/bash +``` + +>[!TIP] +> 如需使用`vllm`环境,请执行以下操作: +> - 进入容器后,通过以下命令切换到conda环境: +> ```bash +> conda activate vllm_env_py310 +> ``` +> +> - 切换成功后,您可以在命令行前看到`(vllm_env_py310)`的标识,这表示您已成功进入`vllm`的虚拟环境。 + +执行该命令后,您将进入到Docker容器的交互式终端,您可以直接在容器内运行MinerU相关命令来使用MinerU的功能。 +您也可以直接通过替换`/bin/bash`为服务启动命令来启动MinerU服务,详细说明请参考[通过命令启动服务](https://opendatalab.github.io/MinerU/zh/usage/quick_usage/#apiwebuihttp-clientserver)。 + + +## 4. 注意事项 + +不同环境下,MinerU对Tecorigin加速卡的支持情况如下表所示: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景容器环境
vllm
命令行工具(mineru)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
fastapi服务(mineru-api)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
gradio界面(mineru-gradio)pipeline🟢
<vlm/hybrid>-auto-engine🟢
<vlm/hybrid>-http-client🟢
openai-server服务(mineru-openai-server)🟢
+ +注: +🟢: 支持,运行较稳定,精度与Nvidia GPU基本一致 +🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +🔴: 不支持,无法运行,或精度存在较大差异 + +>[!TIP] +> - Tecorigin加速卡指定可用加速卡的方式与NVIDIA GPU类似,请参考[使用指定GPU设备](https://opendatalab.github.io/MinerU/zh/usage/advanced_cli_parameters/#cuda_visible_devices)章节说明, +>将环境变量`CUDA_VISIBLE_DEVICES`替换为`SDAA_VISIBLE_DEVICES`即可。 +> - 在太初平台可以通过`teco-smi -c`命令查看加速卡的使用情况,并根据需要指定空闲的加速卡ID以避免资源冲突。 \ No newline at end of file diff --git a/docs/zh/usage/acceleration_cards/VastAI.md b/docs/zh/usage/acceleration_cards/VastAI.md new file mode 100644 index 000000000..5698763d9 --- /dev/null +++ b/docs/zh/usage/acceleration_cards/VastAI.md @@ -0,0 +1,215 @@ +## 1. 瀚博半导体 + +![vastaitech](https://github.com/Vastai/VastModelZOO/blob/main/images/index/logo.png?raw=true) + +- 官方网址:https://www.vastaitech.com +- 模型中心:https://github.com/Vastai/VastModelZOO + + +## 2. 测试平台 + +- 以下为本指南测试使用的平台信息,供参考 + ``` + os: Ubuntu-22.04.3-LTS-x86_64 + cpu: Hygon C86-4G + gpu: VA16 / VA1L / VA10L + torch: 2.8.0+cpu + torch-vacc: 1.3.3.777 + vllm: 0.11.1.dev0+gb8b302cde.d20251030.cpu + vllm-vacc: 0.11.0.777 + driver: 00.25.12.30 d3_3_v2_9_a3_1 a76bf37 20251230 + docker: 28.1.1 + ``` + +## 3. 环境准备 + +- 获取vllm_vacc基础镜像 + ```bash + sudo docker pull harbor.vastaitech.com/ai_deliver/vllm_vacc:VVI-25.12.SP2 + ``` + +- 启动容器 + ```bash + sudo docker run -it \ + --privileged=true \ + --shm-size=256g \ + --name vllm_service \ + --ipc=host \ + --network=host \ + harbor.vastaitech.com/ai_deliver/vllm_vacc:VVI-25.12.SP2 bash + ``` + +- 安装MinerU + + - 参考官方文档安装:[README_zh-CN.md#安装-mineru](https://github.com/opendatalab/MinerU/blob/master/README_zh-CN.md#安装-mineru) + + ```bash + # 启动容器 + # sudo docker exec -it vllm_service bash + + # 可选pypi源 + # https://mirrors.163.com/pypi/simple/ + # https://mirrors.aliyun.com/pypi/simple/ + # https://pypi.mirrors.ustc.edu.cn/simple/ + # https://pypi.tuna.tsinghua.edu.cn/simple/ + # https://mirror.baidu.com/pypi/simple + + # 通过源码安装MinerU + git clone https://github.com/opendatalab/MinerU.git + git checkout 8c4b3ef3a20b11ddac9903f25124d24ea82639b5 + pip install -e .[core] -i https://mirrors.aliyun.com/pypi/simple + + # 或使用pip安装MinerU + pip install -U "mineru[core]==2.7.0" -i https://mirrors.aliyun.com/pypi/simple + ``` + +> [!NOTE] +> - `vllm_vacc`基础镜像内已包含`torch/vllm`等相关依赖 +> - 截至`2025/12/31`,`VastAI`已支持`MinerU`至最新版本`2.7.0`,`master分支8c4b3ef3` +> - 和`NVIDIA`硬件下`CUDA_VISIBLE_DEVICES`类似;在`VastAI`硬件中可以使用`VACC_VISIBLE_DEVICES`指定`可见计算卡ID`,如`-e VACC_VISIBLE_DEVICES=0,1,2,3` +> - 需指定适当的`--shm-size`虚拟内存 + +## 4. MinerU功能 + +> [!NOTE] +> - `VastAI`加速卡仅支持使用`vlm-auto-engine`和`vlm-http-client`形式进行`VLM`模型推理加速 + +- 进入容器 + ```bash + sudo docker exec -it vllm_service bash + ``` + +- 使用MinerU + + - 模型准备,参考官方介绍:[model_source.md](https://github.com/opendatalab/MinerU/blob/master/docs/zh/usage/model_source.md) + + - 方式一:`vlm-auto-engine` + + ```bash + export MINERU_MODEL_SOURCE=modelscope + + # step1, 以`vlm-auto-engine`方式启动MinerU解析任务 + mineru -p image.png \ + -o ./output \ + -b vlm-auto-engine \ + --http-timeout 1200 \ + --tensor-parallel-size 2 \ + --enforce_eager \ + --trust-remote-code \ + --max-model-len 16384 + ``` + + - 方式二:`vlm-http-client` + + ```bash + # step1, 启动vLLM API server + vllm serve /root/.cache/modelscope/hub/models/OpenDataLab/MinerU2.5-2509-1.2B \ + --tensor-parallel-size 2 \ + --trust-remote-code \ + --enforce_eager \ + --port 8090 \ + --max-model-len 16384 \ + --served-model-name MinerU2.5-2509-1.2B + + # step2,以`vlm-http-client`方式启动MinerU解析任务 + mineru -p demo/pdfs/demo1.pdf \ + -o ./output \ + -b vlm-http-client \ + -u http://127.0.0.1:8090 \ + --http-timeout 1200 + ``` + + +> [!NOTE] +> - 注意在执行任意与`vllm`相关命令需追加`--enforce_eager`参数 + + +## 5. 注意事项 + +`VastAI`加速卡对`MinerU`的支持情况如下表所示: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
使用场景支持情况
命令行工具(mineru)pipeline🔴
hybrid-http-client🔴
hybrid-auto-engine🔴
vlm-auto-engine🟢
vlm-http-client🟢
fastapi服务(mineru-api)pipeline🔴
hybrid-http-client🔴
hybrid-auto-engine🔴
vlm-auto-engine🟢
vlm-http-client🟢
gradio界面(mineru-gradio)pipeline🔴
hybrid-http-client🔴
hybrid-auto-engine🔴
vlm-auto-engine🟢
vlm-http-client🟢
openai-server服务(mineru-openai-server)🟢
+ + +> [!NOTE] +> - 🟢: 支持,运行较稳定,精度与NVIDIA GPU基本一致 +> - 🟡: 支持但较不稳定,在某些场景下可能出现异常,或精度存在一定差异 +> - 🔴: 不支持,无法运行,或精度存在较大差异 +> - `vlm-auto-engine`:VastAI仅支持vLLM后端 \ No newline at end of file diff --git a/docs/zh/usage/advanced_cli_parameters.md b/docs/zh/usage/advanced_cli_parameters.md new file mode 100644 index 000000000..c0d6d9783 --- /dev/null +++ b/docs/zh/usage/advanced_cli_parameters.md @@ -0,0 +1,57 @@ +# 命令行参数进阶 + +## 推理引擎参数透传 + +### 参数传递说明 +> [!TIP] +> - 所有vllm/lmdeploy官方支持的参数都可用通过命令行参数传递给 MinerU,包括以下命令:`mineru`、`mineru-openai-server`、`mineru-gradio`、`mineru-api`、`mineru-router` +> - 命令行参数同时支持 `--foo value` 与 `--foo=value` 两种写法 +> - 如果您想了解更多有关`vllm`的参数使用方法,请参考 [vllm官方文档](https://docs.vllm.ai/en/latest/cli/serve.html) +> - 如果您想了解更多有关`lmdeploy`的参数使用方法,请参考 [lmdeploy官方文档](https://lmdeploy.readthedocs.io/en/latest/llm/api_server.html) + +## GPU 设备选择与配置 + +### CUDA_VISIBLE_DEVICES 基本用法 +> [!TIP] +> - 任何情况下,您都可以通过在命令行的开头添加`CUDA_VISIBLE_DEVICES` 环境变量来指定可见的 GPU 设备: +> ```bash +> CUDA_VISIBLE_DEVICES=1 mineru -p -o +> ``` +> - 这种指定方式对所有的命令行调用都有效,包括 `mineru`、`mineru-openai-server`、`mineru-gradio`、`mineru-api`和`mineru-router`,且对`pipeline`、`vlm`后端均适用。 + +### 常见设备配置示例 +> [!TIP] +> 以下是一些常见的 `CUDA_VISIBLE_DEVICES` 设置示例: +> ```bash +> CUDA_VISIBLE_DEVICES=1 # Only device 1 will be seen +> CUDA_VISIBLE_DEVICES=0,1 # Devices 0 and 1 will be visible +> CUDA_VISIBLE_DEVICES="0,1" # Same as above, quotation marks are optional +> CUDA_VISIBLE_DEVICES=0,2,3 # Devices 0, 2, 3 will be visible; device 1 is masked +> CUDA_VISIBLE_DEVICES="" # No GPU will be visible +> ``` + +## 实际应用场景 + +> [!TIP] +> 以下是一些可能的使用场景: +> +> - 如果您有多张显卡,需要在卡0和卡1上启动两个`openai-server`服务,并分别监听不同的端口,可以使用以下命令: +> ```bash +> # 在终端1中 +> CUDA_VISIBLE_DEVICES=0 mineru-openai-server --engine vllm --port 30000 +> # 在终端2中 +> CUDA_VISIBLE_DEVICES=1 mineru-openai-server --engine vllm --port 30001 +> ``` +> +> - 如果您有多张显卡,需要在卡0和卡1上启动两个`fastapi`服务,并分别监听不同的端口,可以使用以下命令: +> ```bash +> # 在终端1中 +> CUDA_VISIBLE_DEVICES=0 mineru-api --host 127.0.0.1 --port 8000 +> # 在终端2中 +> CUDA_VISIBLE_DEVICES=1 mineru-api --host 127.0.0.1 --port 8001 +> ``` +> +> - 如果您有多张显卡,需要通过`router`在其中4张卡上启动`fastapi`服务并统一管理,可以使用以下命令: +> ```bash +> CUDA_VISIBLE_DEVICES=0,1,2,3 mineru-router --host 127.0.0.1 --port 8002 +> ``` diff --git a/docs/zh/usage/cli_tools.md b/docs/zh/usage/cli_tools.md new file mode 100644 index 000000000..566e3769e --- /dev/null +++ b/docs/zh/usage/cli_tools.md @@ -0,0 +1,178 @@ +# 命令行工具使用说明 + +## 查看帮助信息 +要查看 MinerU 命令行工具的帮助信息,可以使用 `--help` 参数。以下是各个命令行工具的帮助信息示例: +```bash +mineru --help +Usage: mineru [OPTIONS] + +Options: + -v, --version 显示版本并退出 + -p, --path PATH 输入文件路径或目录(必填) + -o, --output PATH 输出目录(必填) + --api-url TEXT MinerU FastAPI 服务地址;不传时自动拉起本地临时 mineru-api + -m, --method [auto|txt|ocr] 解析方法:auto(默认)、txt、ocr(仅用于 pipeline 与 hybrid* 后端) + -b, --backend [pipeline|hybrid-auto-engine|hybrid-http-client|vlm-auto-engine|vlm-http-client] + 解析后端(默认为 hybrid-auto-engine) + -l, --lang [ch|ch_server|ch_lite|en|korean|japan|chinese_cht|ta|te|ka|th|el|latin|arabic|east_slavic|cyrillic|devanagari] + 指定文档语言(可提升 OCR 准确率,仅用于 pipeline 与 hybrid* 后端) + -u, --url TEXT 当使用 http-client 时,传给服务端后端的 OpenAI 兼容地址 + -s, --start INTEGER 开始解析的页码(从 0 开始) + -e, --end INTEGER 结束解析的页码(从 0 开始) + -f, --formula BOOLEAN 是否启用公式解析(默认开启) + -t, --table BOOLEAN 是否启用表格解析(默认开启) + --help 显示帮助信息 +``` +> [!TIP] +> `mineru` 当前支持本地 `PDF`、图片与 `DOCX`、`PPTX`、`XLSX` 文件或目录输入。 + +```bash +mineru-api --help +Usage: mineru-api [OPTIONS] + +Options: + --host TEXT 服务器主机地址(默认:127.0.0.1) + --port INTEGER 服务器端口(默认:8000) + --reload 启用自动重载(开发模式) + --enable-vlm-preload BOOLEAN + 在 mineru-api 启动阶段预加载本地 VLM 模型 + --help 显示此帮助信息并退出 +``` +```bash +mineru-gradio --help +Usage: mineru-gradio [OPTIONS] + +Options: + --enable-example BOOLEAN 启用示例文件输入(需要将示例文件放置在当前 + 执行命令目录下的 `example` 文件夹中) + --enable-http-client BOOLEAN 在后端选项中启用 HTTP 客户端选项 + --enable-api BOOLEAN 启用 Gradio API 以提供应用程序服务 + --max-convert-pages INTEGER 设置从 PDF 转换为 Markdown 的最大页数 + --server-name TEXT 设置 Gradio 应用程序的服务器主机名 + --server-port INTEGER 设置 Gradio 应用程序的服务器端口 + --api-url TEXT MinerU FastAPI 服务地址;不传时自动拉起可复用的本地 + mineru-api + --enable-vlm-preload BOOLEAN 在 Gradio 拉起本地 mineru-api 时预加载本地 + VLM 模型 + --latex-delimiters-type [a|b|all] + 设置在 Markdown 渲染中使用的 LaTeX 分隔符类型 + ('a' 表示 '$' 类型,'b' 表示 '()[]' 类型, + 'all' 表示两种类型都使用) + --help 显示此帮助信息并退出 +``` +```bash +mineru-router --help +Usage: mineru-router [OPTIONS] + +Options: + --host TEXT 路由服务主机地址(默认:127.0.0.1) + --port INTEGER 路由服务端口(默认:8002) + --reload 启用自动重载(开发模式) + --upstream-url TEXT 现有 MinerU FastAPI 服务地址;可重复传入多个 + --local-gpus TEXT 本地 GPU worker 配置:auto、none 或 0,1,2 形式 + --worker-host TEXT 路由托管 worker 的监听地址(默认:127.0.0.1) + --enable-vlm-preload BOOLEAN + 在 router 托管的本地 mineru-api worker 中预加载本地 + VLM 模型 + --help 显示此帮助信息并退出 +``` + +## 环境变量说明 + +> [!NOTE] +> 从当前版本开始,`mineru` 是基于 `mineru-api` 的编排客户端: +> +>- 未传 `--api-url` 时,CLI 会自动拉起本地临时 `mineru-api` +>- 传入 `--api-url` 时,CLI 会直连该 FastAPI 服务 +>- `--url` 不再表示 MinerU API 地址,而是服务端 `vlm/hybrid-http-client` 所需的 OpenAI 兼容地址 + +MinerU命令行工具的某些参数存在相同功能的环境变量配置,通常环境变量配置的优先级高于命令行参数,且在所有命令行工具中都生效。 +以下是常用的环境变量及其说明: + +- `MINERU_TOOLS_CONFIG_JSON`: + * 用于指定配置文件路径 + * 默认为用户目录下的`mineru.json`,可通过环境变量指定其他配置文件路径。 + +- `MINERU_FORMULA_ENABLE`: + * 用于启用公式解析 + * 默认为`true`,可通过环境变量设置为`false`来禁用公式解析。 + +- `MINERU_FORMULA_CH_SUPPORT`: + * 用于启用中文公式解析优化(实验性功能) + * 默认为`false`,可通过环境变量设置为`true`来启用中文公式解析优化。 + * 仅对`pipeline`后端生效。 + +- `MINERU_TABLE_ENABLE`: + * 用于启用表格解析 + * 默认为`true`,可通过环境变量设置为`false`来禁用表格解析。 + +- `MINERU_TABLE_MERGE_ENABLE`: + * 用于启用表格合并功能 + * 默认为`true`,可通过环境变量设置为`false`来禁用表格合并功能。 + +- `MINERU_PDF_RENDER_TIMEOUT`: + * 用于设置将PDF渲染为图片的超时时间(秒) + * 默认为`300`秒,可通过环境变量设置为其他值以调整渲染图片的超时时间。 + * 仅在linux和macOS系统中生效。 + +- `MINERU_PDF_RENDER_THREADS`: + * 用于设置将PDF渲染为图片时使用的线程数 + * 默认为`4`,可通过环境变量设置为其他值以调整渲染图片时的线程数。 + * 仅在linux和macOS系统中生效。 + +- `MINERU_PROCESSING_WINDOW_SIZE`: + * 用于设置单次处理窗口大小,影响大文档处理时的内存占用和吞吐表现 + * 默认为`64`,可通过环境变量设置为其他正整数。 + +- `MINERU_API_MAX_CONCURRENT_REQUESTS`: + * 用于设置 `mineru-api` 或 `mineru-router` 管理的 worker 最大并发请求数 + * 默认为`3`,需设置为正整数。 + +- `MINERU_API_ENABLE_FASTAPI_DOCS`: + * 用于控制是否启用 FastAPI 自动生成的 `/docs`、`/openapi.json`、`/redoc` + * 默认为`true`。 + +- `MINERU_API_OUTPUT_ROOT`: + * 用于指定 `mineru-api` 输出目录根路径 + * 默认为当前工作目录下的 `./output`。 + +- `MINERU_LOCAL_API_STARTUP_TIMEOUT_SECONDS`: + * 用于控制各命令行工具等待本地拉起的 `mineru-api` 进入健康状态的最长时间 + * 默认为 `300` 秒。 + * 适用于 `mineru` 的临时本地 API、`mineru-gradio` 的 preload 启动,以及 `mineru-router` 托管的本地 worker。 + +- `MINERU_API_TASK_RETENTION_SECONDS`: + * 用于设置任务完成或失败后的保留时长(秒) + * 默认为 `86400` 秒(24 小时)。 + +- `MINERU_API_TASK_CLEANUP_INTERVAL_SECONDS`: + * 用于设置任务清理轮询间隔(秒) + * 默认为 `300` 秒(5 分钟)。 + +- `MINERU_INTRA_OP_NUM_THREADS`: + * 用于设置onnx模型的intra_op线程数,影响单个算子的计算速度 + * 默认为`-1`(自动选择),可通过环境变量设置为其他值以调整线程数。 + +- `MINERU_INTER_OP_NUM_THREADS`: + * 用于设置onnx模型的inter_op线程数,影响多个算子的并行执行 + * 默认为`-1`(自动选择),可通过环境变量设置为其他值以调整线程数。 + +- `MINERU_HYBRID_BATCH_RATIO`: + * 用于设置 hybrid-* 后端中 小模型处理的batch倍率 + * 在hybrid-http-client中较为常用,可以通过控制小模型的batch倍率来调整单个客户端的显存占用量 + * 单个client端显存大小 | MINERU_HYBRID_BATCH_RATIO + ------------------|------------------------ + <= 6 GB | 8 + <= 4 GB | 4 + <= 3 GB | 2 + <= 2 GB | 1 + +- `MINERU_HYBRID_FORCE_PIPELINE_ENABLE`: + * 用于强制将 hybrid-* 后端中的 文本提取部分使用 小模型 进行处理 + * 默认为`false`,可通过环境变量设置为`true`来启用该功能,从而在某些极端情况下减少幻觉的发生。 + +- `MINERU_VL_MODEL_NAME`: + * 用于指定 vlm/hybrid 后端使用的模型名称,这将允许您在同时存在多个模型的远程openai-server中指定 MinerU 运行所需的模型。 + +- `MINERU_VL_API_KEY`: + * 用于指定 vlm/hybrid 后端使用的API Key,这将允许您在远程openai-server中进行身份验证。 diff --git a/docs/zh/usage/index.md b/docs/zh/usage/index.md new file mode 100644 index 000000000..d5b2f313a --- /dev/null +++ b/docs/zh/usage/index.md @@ -0,0 +1,44 @@ +# 使用指南 + +本章节提供了项目的完整使用说明。我们将通过以下几个部分,帮助您从基础到进阶逐步掌握项目的使用方法: + +## 目录 +- 本地部署 + * [基础使用](./quick_usage.md) - 快速上手和基本使用 + * [模型源配置](./model_source.md) - 模型源的详细配置说明 + * [命令行工具](./cli_tools.md) - 命令行工具的详细参数说明 + * [命令行进阶参数](./advanced_cli_parameters.md) - 一些适配命令行工具的进阶参数说明 +- 其他加速卡适配(🚀官方支持/❤️社区贡献) + * [昇腾 Ascend](acceleration_cards/Ascend.md) 🚀 + * [平头哥 T-Head](acceleration_cards/THead.md) 🚀 + * [沐曦 METAX](acceleration_cards/METAX.md) 🚀 + * [海光 Hygon](acceleration_cards/Hygon.md) 🚀 + * [燧原 Enflame](acceleration_cards/Enflame.md) 🚀 + * [摩尔线程 MooreThreads](acceleration_cards/MooreThreads.md) 🚀 + * [天数智芯 IluvatarCorex](acceleration_cards/IluvatarCorex.md) 🚀 + * [寒武纪 Cambricon](acceleration_cards/Cambricon.md) 🚀 + * [昆仑芯 Kunlunxin](acceleration_cards/Kunlunxin.md) 🚀 + * [太初元碁 Tecorigin](acceleration_cards/Tecorigin.md) ❤️ + * [壁仞 Biren](acceleration_cards/Biren.md) ❤️ + * [AMD #3662](https://github.com/opendatalab/MinerU/discussions/3662) ❤️ + * [瀚博 VastAI #4237](https://github.com/opendatalab/MinerU/discussions/4237) ❤️ +- 插件与生态 + * [Cherry Studio](plugin/Cherry_Studio.md) + * [Sider](plugin/Sider.md) + * [Dify](plugin/Dify.md) + * [n8n](plugin/n8n.md) + * [Coze](plugin/Coze.md) + * [FastGPT](plugin/FastGPT.md) + * [ModelWhale](plugin/ModelWhale.md) + * [DingTalk](plugin/DingTalk.md) + * [DataFlow](plugin/DataFlow.md) + * [BISHENG](plugin/BISHENG.md) + * [RagFlow](plugin/RagFlow.md) + +## 开始使用 + +自 3.0 起,`mineru` 默认作为基于 `mineru-api` 的编排客户端运行;`mineru-router` 的多服务、多 GPU 用法也会在本章的基础使用与命令行工具章节中说明。 + +建议按照上述顺序阅读文档,这样可以帮助您更好地理解和使用项目功能。 + +如果您在使用过程中遇到问题,请查看 [FAQ](../faq/index.md) diff --git a/docs/zh/usage/model_source.md b/docs/zh/usage/model_source.md new file mode 100644 index 000000000..ff73cd87c --- /dev/null +++ b/docs/zh/usage/model_source.md @@ -0,0 +1,49 @@ +# 模型源说明 + +MinerU使用 `HuggingFace` 和 `ModelScope` 作为模型仓库,用户可以根据需要切换模型源或使用本地模型。 + +- `HuggingFace` 是默认的模型源,在全球范围内提供了优异的加载速度和极高稳定性。 +- `ModelScope` 是中国大陆地区用户的最佳选择,提供了无缝兼容的SDK模块,适用于无法访问`HuggingFace`的用户。 + +## 模型源的切换方法 + +### 通过环境变量切换 +MinerU 通过 `MINERU_MODEL_SOURCE` 环境变量配置模型源,这适用于所有命令行工具和 API 调用。 +```bash +export MINERU_MODEL_SOURCE=modelscope +mineru -p -o +``` +或在代码中设置: +```python +import os +os.environ["MINERU_MODEL_SOURCE"] = "modelscope" +``` +>[!TIP] +> MinerU 已不再提供用于切换模型源的命令行参数。通过环境变量设置的模型源会在当前终端会话中生效,直到终端关闭或环境变量被修改。 + + +## 使用本地模型 + +### 1. 下载模型到本地 +```bash +mineru-models-download --help +``` +或使用交互式命令行工具选择模型下载: +```bash +mineru-models-download +``` +> [!NOTE] +>- 下载完成后,模型路径会在当前终端窗口输出,并自动写入用户目录下的 `mineru.json`。 +>- 您也可以通过将[配置模板文件](https://github.com/opendatalab/MinerU/blob/master/mineru.template.json)复制到用户目录下并重命名为 `mineru.json` 来创建配置文件。 +>- 模型下载到本地后,您可以自由移动模型文件夹到其他位置,同时需要在 `mineru.json` 中更新模型路径。 +>- 如您将模型文件夹部署到其他服务器上,请确保将 `mineru.json`文件一同移动到新设备的用户目录中并正确配置模型路径。 +>- 如您需要更新模型文件,可以再次运行 `mineru-models-download` 命令,模型更新暂不支持自定义路径,如您没有移动本地模型文件夹,模型文件会增量更新;如您移动了模型文件夹,模型文件会重新下载到默认位置并更新`mineru.json`。 +>- `mineru-models-download` 必须使用远端模型源执行真实下载;如果当前终端已设置 `MINERU_MODEL_SOURCE=local`,该命令会仅在本次执行中临时忽略该值,并改用您选择的 `huggingface` 或 `modelscope` 下载模型。 + +### 2. 使用本地模型进行解析 + +通过环境变量启用本地模型: +```bash +export MINERU_MODEL_SOURCE=local +mineru -p -o +``` diff --git a/docs/zh/usage/plugin/BISHENG.md b/docs/zh/usage/plugin/BISHENG.md new file mode 100644 index 000000000..dc89386fa --- /dev/null +++ b/docs/zh/usage/plugin/BISHENG.md @@ -0,0 +1,11 @@ +# BISHENG 简介 + +BISHENG毕昇 是一款开源 LLM应用开发平台,主攻企业场景, 已有大量行业头部组织及世界500强企业在使用。“毕昇”是活字印刷术的发明人,活字印刷术为人类知识的传递起到了巨大的推动作用。BISHENG毕昇团队希望“BISHENG毕昇”同样能够为智能应用的广泛落地提供有力支撑。 + +![](../../../assets/Images/BISHENG_01.png) + + +- 官网地址:https://bisheng.dataelem.com/ +- Miner 在BISHENG毕昇 项目中的插件项目:https://github.com/dataelement/bisheng/pulls + +特别鸣谢 [@pzc163](https://github.com/pzc163) \ No newline at end of file diff --git a/docs/zh/usage/plugin/Cherry_Studio.md b/docs/zh/usage/plugin/Cherry_Studio.md new file mode 100644 index 000000000..5713a1c87 --- /dev/null +++ b/docs/zh/usage/plugin/Cherry_Studio.md @@ -0,0 +1,238 @@ +# Cherry Studio 简介 + +Cherry Studio 是一款功能强大的多模型 AI 客户端软件,支持 Windows、macOS 和 Linux 等多平台运行,集成了 OpenAI、DeepSeek、Gemini、Anthropic 等主流 AI 云服务,同时支持本地模型运行,用户可以灵活切换不同的AI模型。 + +目前,MinerU 强大的文档解析能力已深度集成到 Cherry Studio 的知识库与对话交互中,为用户带来更便捷的文档处理与信息获取体验。 + +![img](../../../assets/images/Cherry_Studio_1.png) + +- Cherry Studio 官网地址:https://www.cherry-ai.com/ + + +# MinerU 在 Cherry Studio 中的使用方法 + +## 进入 Cherry Studio 设置 + +a. 打开 Cherry Studio 应用程序 + +b. 点击左下角的"设置"按钮,进入设置页面 + +c. 在左侧菜单中,选择"MCP 服务器" + +在右侧的 MCP 服务器配置界面中,您可以看到已有的 MCP 服务器列表。点击右上角的"添加服务器"按钮来创建新的 MCP 服务,或者点击现有服务来编辑配置。 + +## 添加 MinerU-MCP 配置 + +点击"添加服务器"后,您将看到一个配置表单。请按以下步骤填写: + +**a. 名称**:输入"MinerU-MCP"或您喜欢的其他名称 + +**b. 描述**:可选,如"文档转换为Markdown工具" + +**c. 类型**:选择"标准输入/输出(stdio)" + +**d. 命令**:输入 uvx + +**e. 参数**:输入 mineru-mcp + +**f. 环境变量**:添加以下环境变量 + +```Plain +MINERU_API_BASE=https://mineru.net +MINERU_API_KEY=您的API密钥 +OUTPUT_DIR=./downloads +USE_LOCAL_API=false +LOCAL_MINERU_API_BASE=http://localhost:8888 +``` + +使用 *`uvx`* 命令可以自动处理 mineru-mcp 的安装和运行,**无需预先手动安装 mineru-mcp 包**。这是最简单的配置方式。 + +## 保存配置 + +确认无误后,点击界面右上角的"保存"按钮完成配置。保存后,MCP 服务器列表中会显示您刚刚添加的 MinerU-MCP 服务。 + +![img](../../../assets/images/Cherry_Studio_2.png) + +![img](../../../assets/images/Cherry_Studio_3.png) + +## 使用 Cherry Studio 中的 MinerU MCP + +一旦配置完成,您可以在 Cherry Studio 中的对话中使用 MinerU MCP 工具。在 Cherry Studio 中,您可以使用如下提示让模型调用 MinerU MCP 工具。模型会自动识别任务并调用相应的工具。 + +## 示例 1: 使用 URL 转换文档 + +**用户输入:** + +```Plain +请使用 MinerU MCP 将以下 URL 的 PDF 文档转换为 Markdown 格式:https://example.com/sample.pdf +``` + +**模型将执行的步骤:** + +模型识别这是文档转换任务,并调用 *`parse_documents`* 工具,参数为: + +```Plain +{"file_sources": "https://example.com/sample.pdf"} +``` + +工具处理完成后,模型会告知您转换结果。 + +![img](../../../assets/images/Cherry_Studio_4.png) + +## 示例 2: 转换本地文档 + +**用户输入:** + +```Plain +请使用 MinerU-MCP 将本地的 D://sample.pdf 文件转换为 Markdown 格式 +``` + +**模型将执行的步骤:** + +模型识别这是本地文档转换任务,调用 `parse_documents` 工具,参数为: + +```Plain +{"file_sources": "D://sample.pdf"} +``` + +![img](../../../assets/images/Cherry_Studio_5.png) + +## 示例 3: 启用 OCR 处理扫描文档 + +**用户输入:** + +```Plain +请使用 MinerU-MCP 将以下 URL 的扫描版 PDF 文档转换为 Markdown 格式,并启用 OCR 功能: +https://example.com/scanned.pdf +``` + +**模型将执行的步骤:** + +模型识别这是需要 OCR 处理的文档转换任务,调用 `parse_documents` 工具,并启用 OCR 参数: + +```Plain +{"file_sources": "https://example.com/scanned.pdf","enable_ocr": true} +``` + +![img](../../../assets/images/Cherry_Studio_6.png) + +## 示例 4: 完整对话流程 + +以下是一个完整的对话流程示例: + +**用户:** + +```Plain +我有一份学术论文的 PDF,网址是 https://arxiv.org/pdf/2303.08774.pdf,能帮我转换成 Markdown 格式吗? +``` + +**模型:** + +```Plain +我可以帮您将这份学术论文转换为 Markdown 格式。我将使用 MinerU-MCP 工具来处理这个任务。 +[模型调用 parse_documents 工具,处理过程中...] +论文已成功转换为 Markdown 格式。转换结果如下: +# The Capacity of Diffusion Models to Memorize and Generate Training Data +## Abstract +Recent diffusion models can generate high-quality images that are nearly indistinguishable from real ones... +[显示论文内容...] +``` + +![img](../../../assets/images/Cherry_Studio_7.png) + +## 工具参数详解 + +在使用过程中,模型会根据您的指令自动选择合适的工具和参数。以下是主要工具的参数说明: + +### ● *parse_documents* 工具参数 + +![img](../../../assets/images/Cherry_Studio_8.png) + +### ● *get_ocr_languages* 工具参数 + +无需参数,用于获取OCR支持的语言列表。 + +## 高级用法 + +### 指定语言和页码范围 + +**用户输入:** + +```Plain +请使用 MinerU MCP 将以下 URL 的文档转换为 Markdown 格式,只处理第 5-10 页,并指定语言为中文:https://example.com/document.pdf +``` + +模型会使用 *`parse_documents`* 工具,并设置 *`language`* 参数为 "ch",*`page_ranges`* 参数为 "5-10"。 + +### 批量处理多个文档 + +**用户输入:** + +```Plain +请使用 MinerU-MCP 将以下多个 URL 的文档转换为 Markdown 格式: +https://example.com/doc1.pdf +https://example.com/doc2.pdf +https://example.com/doc3.pdf +``` + +模型会调用 *`parse_documents`* 工具,并将多个 URL 以逗号分隔传入 *`file_sources`* 参数。 + +## 注意事项 + +● 当设置 *`USE_LOCAL_API=true`* 时,使用本地配置的API进行解析 + +● 当设置 *`USE_LOCAL_API=false`* 时,会使用 MinerU 官网的API进行解析 + +● 处理大型文档可能需要较长时间,请耐心等待 + +● 如果遇到超时问题,请考虑分批处理文档或使用本地API模式 + +## 常见问题与解决方案 + +### 无法启动 MCP 服务 + +**问题**:运行 *`uv run -m mineru.cli`*` `时报错。 + +**解决方案**: + +● 确保已激活虚拟环境 + +● 检查是否已安装所有依赖 + +● 尝试使用 *`python -m mineru.cli`*` `命令替代 + +### 文件转换失败 + +**问题**:文件上传成功但转换失败。 + +**解决方案**: + +● 检查文件格式是否受支持 + +● 确认API密钥是否正确 + +● 查看MCP服务日志获取详细错误信息 + +### 文件路径问题 + +**问题**:使用 `parse_documents` 工具处理本地文件时报找不到文件错误。 + +**解决方案**:请确保使用绝对路径,或者相对于服务器运行目录的正确相对路径。 + +### MCP 服务调用超时问题 + +**问题**:调用 *`parse_documents`* 工具时出现 *`Error calling tool 'parse_documents': MCP error -32001: Request timed out`* 错误。 + +**解决方案**:这个问题常见于处理大型文档或网络不稳定的情况。在某些 MCP 客户端(如 Cursor)中,超时后可能导致无法再次调用 MCP 服务,需要重启客户端。最新版本的 Cursor 中可能会显示正在调用 MCP,但实际上没有真正调用成功。建议: + +**● 等待官方修复**:这是Cursor客户端的已知问题,建议等待Cursor官方修复 + +**● 处理小文件**:尽量只处理少量小文件,避免处理大型文档导致超时 + +**● 分批处理**:将多个文件分成多次请求处理,每次只处理一两个文件 + +● 增加超时时间设置(如果客户端支持) + +● 对于超时后无法再次调用的问题,需要重启 MCP 客户端 + +● 如果反复出现超时,请检查网络连接或考虑使用本地 API 模式 \ No newline at end of file diff --git a/docs/zh/usage/plugin/Coze.md b/docs/zh/usage/plugin/Coze.md new file mode 100644 index 000000000..5ddfcae47 --- /dev/null +++ b/docs/zh/usage/plugin/Coze.md @@ -0,0 +1,92 @@ +# Coze 简介 + +Coze(中文版名称:扣子) 是字节跳动推出的零代码 AI 应用开发平台。无论用户是否有编程经验,都可以通过该平台快速创建各种类型的聊天机器人、智能体、AI 应用和插件,并将其部署在社交平台和即时聊天应用程序中。 + +目前,MinerU 插件已在 Coze 插件商店上线,通过其强大的文档解析能力,为用户搭建智能体与工作流提供文档解析能力,加快用户 AI 应用的开发。 + +![img](../../../assets/images/coze_0.png) + +- 扣子官网地址:https://www.coze.cn/ +- MinerU 扣子插件下载地址:https://www.coze.cn/store/plugin/7527957359730360354 + +# MinerU 在 Coze 中的使用方法 + +## **Coze:集成应用** + +- 进入 https://www.coze.cn/home coze 开发平台 + +## 智能体 + +### 工作空间 -> 项目开发 -> 创建 -> 创建智能体 -> 创建 -> 输入项目名 + +![img](../../../assets/images/Coze_1.png) + +![img](../../../assets/images/Coze_2.png) + +### 插件配置 -> 添加 `插件` -> 搜索 `MinerU` + +![img](../../../assets/images/Coze_3.png) + +### 添加 `parse_file` 工具(在线版) + +![img](../../../assets/images/Coze_4.png) + +### 选择 `MinerU` 插件 -> 编辑参数 -> 填写 api key + +![img](../../../assets/images/Coze_5.png) + +![img](../../../assets/images/Coze_6.png) + +> 记得关闭 url 和 token 显示 + +### 调试 `智能体` + +![img](../../../assets/images/Coze_7.png) + +## 工作流 + +> 用工作流的方式使用 minerU + +### 工作流 -> 创建工作流 + +![img](../../../assets/images/Coze_8.png) + +![img](../../../assets/images/Coze_9.png) + +### 工作流插件配置 -> 添加 `插件` -> 搜索 `MinerU` -> 添加 + +![img](../../../assets/images/Coze_10.png) + +![img](../../../assets/images/Coze_11.png) + +### 选择`MinerU` 插件 -> 编辑参数 -> 填写 api key + +![img](../../../assets/images/Coze_12.png) + +### 选择开始节点 -> 配置 `input` 类型为文件类型 -> 连接到 `mineru` 节点 + +![img](../../../assets/images/Coze_13.png) + +![img](../../../assets/images/Coze_14.png) + +### 选择结束节点 -> 连接到 `mineru` 节点 -> 配置 `output` 输出为 `mineru` 节点的 `parse_file.text` + +![img](../../../assets/images/Coze_15.png) + +![img](../../../assets/images/Coze_16.png) + +### 上传文件 -> 试运行 + +![img](../../../assets/images/Coze_17.png) + +![img](../../../assets/images/Coze_18.png) + +### 发布 -> 添加到当前智能体 + +![img](../../../assets/images/Coze_19.png) + +![img](../../../assets/images/Coze_20.png) + +### 移除 `mineru` 插件 -> 调试 + +![img](../../../assets/images/Coze_21.png) \ No newline at end of file diff --git a/docs/zh/usage/plugin/DataFlow.md b/docs/zh/usage/plugin/DataFlow.md new file mode 100644 index 000000000..c0d5743b7 --- /dev/null +++ b/docs/zh/usage/plugin/DataFlow.md @@ -0,0 +1,11 @@ +# 元枢智汇 ADP 智能数据平台 简介 + +元枢智汇 ADP 智能数据平台基于自研 AI 数据库和 DataFlow数据准备框架打造,旨在帮助企业高效管理、检索、处理海量数据,并通过体系化、自动化数据治理降低模型/智能体训练的专业门槛,帮助企业结合业务场景发挥私有数据的价值,真正落地AI应用。 + +目前,MinerU 已深度集成于元枢智汇 ADP 智能数据平台的 DataFlow 模块中,其数据解析服务由文档语料提取引擎 MinerU 提供支持。 + +![](../../../assets/images/DataFLow_01.png) +![](../../../assets/images/DataFLow_02.png) + +- 官网地址:https://adp.originhub.tech/agent +- Miner fastGPT 插件下载地址:https://cloud.fastgpt.io/dashboard/systemPlugin?type=productivity \ No newline at end of file diff --git a/docs/zh/usage/plugin/Dify.md b/docs/zh/usage/plugin/Dify.md new file mode 100644 index 000000000..d8b7bee75 --- /dev/null +++ b/docs/zh/usage/plugin/Dify.md @@ -0,0 +1,171 @@ +# Dify 简介 + +**Dify** 是一个开源的大语言模型(LLM)应用开发平台,旨在简化和加速生成式 AI 应用的创建和部署。它结合了后端即服务(BaaS)和 LLMOps 的理念,为开发者提供了用户友好的界面和强大的工具,有效降低了 AI 应用开发的门槛。 + +目前 MinerU 与 Dify 联合研发的 MinerU 插件已在 Dify 市场上架,帮助用户搭建工作流,提供文档解析的工作。 + +![img](../../../assets/images/Dify_2.png) + +- Dify 官网地址:https://dify.ai/zh +- MinerU Dify 插件下载地址:https://marketplace.dify.ai/plugins/langgenius/mineru + +# MinerU 在 Dify 中的使用方法 + +## 一、**新版MinerU Dify插件亮点 (v0.4.0)** + +- **完美适配MinerU2**:全面兼容MinerU2的最新功能,释放顶尖的文档解析能力。 +- **超高灵活性**:同时支持官方在线API和本地化部署的API(并向下兼容 1.x 版本)。 +- **赋能工作流**:让Dify的Agent拥有强大的文档“读写”能力,轻松处理复杂任务。 + + +## **二、实战演练:两个案例带你快速上手** + +空谈不如实战。下面我们通过两个典型场景,向你展示新版插件的强大之处。 + +### 准备 + +1. 在Dify插件页面安装MinerU插件(私有化部署的Dify同理) + + +2. 填写API URL等信息 + +![img](../../../assets/images/Dify_3.png) + +使用官方API时令牌(Token)必须提供👆,使用本地部署API时令牌可不填写👇 + +![img](../../../assets/images/Dify_4.png) + +### **案例一:解析单文件,搭建Chat PDF应用** + +想借助AI与你的文档对话吗?跟着下面几步,轻松实现 + +#### 第一步:创建空白应用,选择“Chatflow” + +输入应用名称与描述 + +![img](../../../assets/images/Dify_5.png) + +#### 第二步:创建的初始模板中,选择“开始”节点 + +字段类型选为单文件,填写变量名称(此处填为input_file),支持文档类型选为文档与图片 + +![img](../../../assets/images/Dify_6.png) + +#### 第三步:添加工具节点——MinerU插件来解析上一步开始节点上传的文件 + +![img](../../../assets/images/Dify_7.png) + +#### 第四步:设置MinerU的输入变量,选择上一步开始节点添加的 `input_file` + +![img](../../../assets/images/Dify_8.png) + +#### 第五步:配置LLM模型 + +选择“LLM”节点后,如果没有模型可用,需要单独在插件市场安装(这里使用 Deepseek作为示例) + +“上下文”选择MinerU的输出变量 `text`(MinerU解析文档后的markdown格式) + +![img](../../../assets/images/Dify_9.png) + +在“SYSTEM”区域根据实际需求填写提示词,可如图填写“在Parse File `text`中提取用户的问题答案” + +![img](../../../assets/images/Dify_10.png) + +#### 第六步:预览,上传文件并提问机器人关于文档的内容 + +至此一个简单的文档问答应用Chat PDF搭建完成,点击“预览”,查看效果如何👇 + +![img](../../../assets/images/Dify_11.png) + +结果如下: + +![img](../../../assets/images/Dify_12.png) + +#### **第七步:发布与测试** + +保存并发布你的应用。现在,上传一份PDF或图片,你就可以和它自由对话了! + +![img](../../../assets/images/Dify_13.png) + +### **案例二:自动化批量处理文档,并上传至云端S3** + +需要处理大量文档并归档?MinerU 插件同样能胜任 + +#### 第一步:安装 botos3 插件 + +![img](../../../assets/images/Dify_14.png) + +#### 第二步:配置 S3 bucket + +![img](../../../assets/images/Dify_15.png) + +#### 第三步:创建工作流 + +选择字段类型为“文件列表”,填写变量名称(此处填为input_files),支持的文档类型选为文档与图片 + +![img](../../../assets/images/Dify_16.png) + +#### 第四步:添加“迭代” + +在“开始”节点后添加“迭代”,并配置迭代内的MinerU节点,设置迭代的输入为上一步开始节点的`upload_files`,输出节点暂时不填写,再整个迭代配置完成后选择MinerU节点Parse File的`full_zip_url` + +![img](../../../assets/images/Dify_17.png) + +将MinerU的输入参数file选择为迭代器的 `item` + +![img](../../../assets/images/Dify_18.png) + +![img](../../../assets/images/Dify_19.png) + +#### 第五步:增加中间节点“代码执行”来转换MinerU的解析结果 + +**输入变量(变量名称需与代码定义一致)** + +- **text:**选择MinerU Parse File的输出变量`text` +- **uploadFiles:**选择“开始”节点的文件列表`upload_files`,用来根据迭代的index索引下标找到对应的原始文件名 +- **index:**迭代的下标索引,选择迭代器的`index` + +**输出变量(变量名称需与代码定义一致)** + +- **fileName:**String +- **base64:**String + +![img](../../../assets/images/Dify_20.png) + +代码选择JavaScript,编写转换代码: + +暂时无法在飞书文档外展示此内容 + +以下为Python版本: + +暂时无法在飞书文档外展示此内容 + +#### 第六步:配置 Botos3 插件来上传内容 + +添加工具节点Botos3,选择“通过s3上传base64” + +![img](../../../assets/images/Dify_21.png) + +文件base64选择代码执行(图中为**转换MINERU MD文本**)输出的base64字段 + +![img](../../../assets/images/Dify_22.png) + +S3对象key,S3 对象key填写文件存储的路径,在 botos3 插件配置界面已经填写了 bucket 名称,这里只需要填写在bucket下存储的目录即可。选择代码执行**(图中为转换MINERU MD文本)**的`fileName` + +![img](../../../assets/images/Dify_23.png) + +#### 第七步:预览效果 + +连接结束节点,至此,一个简单的上传到s3的工作流配置完成,点击“运行”看看效果👇: + +![img](../../../assets/images/Dify_24.png) + +![img](../../../assets/images/Dify_25.png) + +#### 第八步:Vis3查看文档 + +运行结束,可通过[vis3](https://github.com/opendatalab/Vis3?tab=readme-ov-file#features)来查看S3桶内是否已上传解析后的md文件,Vis3使用可参考 + +[新工具开源!Vis3大模型数据可视化利器:填 AK/SK 直接预览 S3 数据,JSON/视频/图片秒开!本地文件也可用](https://mp.weixin.qq.com/s/p3rH4EaoJB-AK7RWeDvOhg) + +![img](../../../assets/images/Dify_26.png) \ No newline at end of file diff --git a/docs/zh/usage/plugin/DingTalk.md b/docs/zh/usage/plugin/DingTalk.md new file mode 100644 index 000000000..18c03262a --- /dev/null +++ b/docs/zh/usage/plugin/DingTalk.md @@ -0,0 +1,12 @@ +# 钉钉简介 + +钉钉(DingTalk)是阿里巴巴集团打造的企业级智能移动办公平台,是数字经济时代的企业组织协同办公和应用开发平台。钉钉整合了 IM 即时沟通、钉钉文档、钉闪会、钉盘、Teambition、OA审批、智能人事、钉工牌、工作台等功能,旨在实现简单、高效、安全、智能的数字化工作方式。它支持企业组织数字化和业务数字化,覆盖“人、财、物、事、产、供、销、存”的全链路管理。 + +通过钉钉开放平台上的SaaS软件,企业可低成本搭建数字化应用,整合所有数字化系统。此外,钉钉提供超过2000个API接口,为企业数字化转型提供开放兼容环境。不会代码的用户也可利用低代码工具构建CRM、ERP、OA、项目管理、进销存等系统。 + +目前,钉钉文档、AI 表格等产品此前已深度集成 MinerU 能力,并通过开放平台向生态开发者开放文档解析功能,为 DLU 的联合研发提供了扎实的技术与场景基础。 + +![](../../../assets/images/DingTalk_01.png) + + +- 钉钉官网:https://www.dingtalk.com/ \ No newline at end of file diff --git a/docs/zh/usage/plugin/FastGPT.md b/docs/zh/usage/plugin/FastGPT.md new file mode 100644 index 000000000..cf32e8c56 --- /dev/null +++ b/docs/zh/usage/plugin/FastGPT.md @@ -0,0 +1,13 @@ +# FastGPT 简介 + +FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,将智能对话与可视化编排完美结合,让 AI 应用开发变得简单自然。无论您是开发者还是业务人员,都能轻松打造专属的 AI 应用。 + +目前,MinerU 插件已在 Coze 插件商店上线,通过其强大的文档解析能力,为用户搭建智能体与工作流提供文档解析能力,加快用户 AI 应用的开发。 + + +![img](../../../assets/images/FastGPT_01.png) + +![img](../../../assets/images/FastGPT_02.png) + +- 官网地址:https://fastgpt.cn +- Miner fastGPT 插件下载地址:https://cloud.fastgpt.io/dashboard/systemPlugin?type=productivity \ No newline at end of file diff --git a/docs/zh/usage/plugin/ModelWhale.md b/docs/zh/usage/plugin/ModelWhale.md new file mode 100644 index 000000000..c3aaf1d6c --- /dev/null +++ b/docs/zh/usage/plugin/ModelWhale.md @@ -0,0 +1,18 @@ +# ModelWhale 简介 + +ModelWhale是一款高效率的数据科学云端协作工具,为数据工作者提供了即开即用的云端分析环境,Jupyter Notebook 交互式和Canvas 拖拽式两种分析界面,帮助科研者、教育工作者解决底层工程繁复、数据难以安全应用、成果流转复现困难等问题。基于不同使用场景,ModelWhale 为用户提供三个产品版本,分别是基础版、专业版、团队版。 + +目前,MinerU 插件已在 ModelWhale 工作中,通过其强大的文档解析能力,为用户搭建智能体与工作流提供文档解析能力,加快用户 AI 应用的开发。 + +images/DingTalk_01.png + + + +![](../../../assets/images/ModelWhale_01.png) + +![](../../../assets/images/ModelWhale_02.png) + + + +- ModelWhale 官网:Mohttps://www.modelwhale.com/pricing?scroll=1 +- MinerU 在ModelWhale 的使用地址:https://www.heywhale.com/org/7b38d/workspace/iframe?url=https://www.heywhale.com/api/model/services/68089d360b1519a862ccb9b4/app/ diff --git a/docs/zh/usage/plugin/RagFlow.md b/docs/zh/usage/plugin/RagFlow.md new file mode 100644 index 000000000..6db7f31b2 --- /dev/null +++ b/docs/zh/usage/plugin/RagFlow.md @@ -0,0 +1,84 @@ +## RAGFlow + +RAGFlow 是一款开源 RAG(Retrieval-Augmented Generation)引擎与应用平台,深度融合了深度文档理解、自动化 RAG 工作流与大模型调用,打通了复杂数据处理、知识检索、增强生成的全流程,旨在为企业及开发者提供一站式智能问答开发服务,并支持各类复杂场景下大模型的构建与应用落地。 + +目前,MinerU 已深度集成至 RAGFlow 知识库在线版本,作为内置 PDF 文档解析器,为用户知识库搭建提供专业、可靠的文档解析支持。本地部署版本部署使用方式详见下方使用教程。 + +使用可访问:https://demo.ragflow.io/ + +![img](../../../assets/images/RagFlow_01.png) + +## 使用教程:如何在 RAGFlow 中使用 MinerU + +### 一、安装配置 + +首先,我们建议您通过 docker 的形式在本地部署 RagFlow 以方便使用 MinerU 插件作为解析工具。在安装完 RagFlow 后执行: + +1. **版本检查:** + + 确保你的RAGFlow版本 >= `v0.21.1`。 + +2. **更新 .env 文件:** + + 为了确保服务能被平稳修改,建议先在 `cmd` 运行 `docker compose down` 停掉服务。 + + 打开 `.env` 文件,在文件的末尾,添加这两行代码,保存文件。 + + ```Python + HF_ENDPOINT=https://hf-mirror.com + MINERU_EXECUTABLE=/ragflow/uv_tools/.venv/bin/mineru + ``` + +3. **启动并进入容器:** + + 在 `cmd` 中,重新启动服务:`docker compose up -d` + + 等待服务全部 `Running` 或 `Healthy` 后,运行以下命令进入RAGFlow的核心容器: + + ```Bash + docker compose exec ragflow-cpu bash + ``` + + (你的命令行提示符会从 `C:\...>` 变为 `root@...`) + +4. **在容器内下载 MinerU 模型:** + + 在容器内部,依次运行以下 5 条命令 + + ```Bash + mkdir uv_tools + cd uv_tools + uv venv .venv + source .venv/bin/activate + uv pip install -U "mineru[core]" -i https://mirrors.aliyun.com/pypi/simple + ``` + +5. **退出并重启:** + + 安装完成后,输入 `exit` 并按回车。 + + 运行重启命令,让 RAGFlow 加载刚装好的 MinerU + + ```Bash + docker compose restart ragflow-cpu + ``` + +### 二、使用入口 + +在本地部署完毕后,要启用 MinerU,您需要在进入 RagFlow 特定知识库的配置页面并选择 MinerU 作为默认的 PDF 解析器。(注:RagFlow 在线版中已经内置了 MinerU 插件为您提供了高级的 PDF 文件解析能力,使用方式与此一致。) + +**入口和配置步骤:** + +1. **进入知识库配置:** + 1. 首先,在您的知识库管理界面,选择您需要配置的特定知识库(例如图示中的 "content" 知识库)。 + 2. 在知识库详情页面的左侧导航栏中,点击【**配置**】选项卡。 +2. **定位 PDF 解析器设置:** + 1. 向下滚动页面,找到“**Ingestion pipeline**”(摄取管道)设置部分。 + 2. 在此部分中,您会看到一个名为【**PDF解析器**】(PDF Parser)的选项。 +3. **选择 MinerU:** + 1. 点击【PDF解析器】旁边的下拉菜单。 + 2. 从可用选项中,选择【**MinerU**】。 +4. **保存修改:** + 1. 完成选择后,请务必点击页面底部的【**保存**】按钮,以使更改生效。 + +![img](../../../assets/images/RagFlow_02.png) \ No newline at end of file diff --git a/docs/zh/usage/plugin/Sider.md b/docs/zh/usage/plugin/Sider.md new file mode 100644 index 000000000..b5f227345 --- /dev/null +++ b/docs/zh/usage/plugin/Sider.md @@ -0,0 +1,10 @@ +# Sider 简介 + +Sider 是一款浏览器侧边栏类的 AI 助手扩展,主要在网页右侧开启一个“随处可用”的智能面板,将对话式 AI(如 GPT、Claude、Gemini 等)带到你正在浏览的任何页面中。它的核心定位是:提升阅读、写作、翻译、检索与总结效率,并与网页内容深度联动。 + +目前,Sider在 Wisebase 模块中深度集成了 MinerU 的相关功能。该模块是一个由AI驱动的知识库,您可以通过上传 PDF 等各类型文件,构建个人图书馆以实现高效的知识管理,MinerU 可以帮助您更好地解析此类文件,精准地提取文件中的信息。 + +![img](../../../assets/images/Sider_1.png) + +- Sider 官网地址:https://sider.ai/zh-CN/chat +- 使用集成 MinerU 相关功能的 Sider 地址:https://sider.ai/zh-CN/wisebase \ No newline at end of file diff --git a/docs/zh/usage/plugin/n8n.md b/docs/zh/usage/plugin/n8n.md new file mode 100644 index 000000000..fa5bb2bf0 --- /dev/null +++ b/docs/zh/usage/plugin/n8n.md @@ -0,0 +1,54 @@ +# n8n 简介 + +**n8n** 是一款以低代码(Low-code)、工作流自动化为核心的应用开发平台,许多企业都借助于其灵活的节点(Node)配置,实现业务流程的自动化执行。它通过可视化界面和代码扩展能力,帮助用户连接各种应用程序和服务,构建复杂的自动化流程,降低用户使用门槛。 + +目前,MinerU 已将其强大的文档解析能力封装为 n8n 节点,用户在搭建工作流时,可以更加便捷地处理复杂的文档解析任务。 + +![img](../../../assets/images/n8n_0.png) + +- n8n 官网地址:https://n8n.io/ +- MinerU n8n 插件下载地址:https://www.npmjs.com/package/n8n-nodes-mineru + +# MinerU 在 n8n 中的使用方法 + +## step1 进入社区node安装界面 + +![img](../../../assets/images/n8n_1.png) + +## step2 安装 n8n-nodes-mineru 节点 + +≈assets/images/n8n_2.png) + +## step3 新建工作流,添加 n8n-nodes-mineru 节点,并设置 api key + +![img](../../../assets/images/n8n_3.png) + +![img](../../../assets/images/n8n_4.png) + +![img](../../../assets/images/n8n_5.png) + +![img](../../../assets/images/n8n_6.png) + +### n8n使用节点文档 + +https://www.npmjs.com/package/n8n-nodes-mineru + +### **在工作流内集成解压功能** + +#### 导入 json 模板 + +暂时无法在飞书文档外展示此内容 + +![img](../../../assets/images/n8n_7.png) + +### 配置 凭证和文档url + +![img](../../../assets/images/n8n_8.png) + +### 根据各自的需求配置所需的输出 + +![img](../../../assets/images/n8n_9.png) + +### 调试 + +![img](../../../assets/images/n8n_10.png) \ No newline at end of file diff --git a/docs/zh/usage/quick_usage.md b/docs/zh/usage/quick_usage.md new file mode 100644 index 000000000..bd85c179d --- /dev/null +++ b/docs/zh/usage/quick_usage.md @@ -0,0 +1,157 @@ +# 使用 MinerU + +## 快速配置模型源 +MinerU默认使用`huggingface`作为模型源,若用户网络无法访问`huggingface`,可以通过环境变量便捷地切换模型源为`modelscope`: +```bash +export MINERU_MODEL_SOURCE=modelscope +``` +有关模型源配置和自定义本地模型路径的更多信息,请参考文档中的[模型源说明](./model_source.md)。 + +## 通过命令行快速使用 +MinerU内置了命令行工具,用户可以通过命令行快速使用MinerU进行文档解析: +```bash +mineru -p -o +``` +> [!TIP] +> - ``:本地 `PDF` / 图片 / `DOCX` / `PPTX` / `XLSX` 文件或目录 +> - ``:输出目录 +> - 未传 `--api-url` 时,CLI 会自动拉起本地临时 `mineru-api` +> - 传入 `--api-url` 时,CLI 会直连远端或已有本地 FastAPI 服务 +> +> 更多关于输出文件的信息,请参考[输出文件说明](../reference/output_files.md)。 + +> [!NOTE] +> 命令行工具会在Linux和macOS系统自动尝试cuda/mps加速。Windows用户如需使用cuda加速, +> 请前往 [Pytorch官网](https://pytorch.org/get-started/locally/) 选择适合自己cuda版本的命令安装支持加速的`torch`和`torchvision`。 + +如果需要通过自定义参数调整解析选项,您也可以在文档中查看更详细的[命令行工具使用说明](./cli_tools.md)。 + +## 通过api、webui、http-client/server进阶使用 + +- 通过fast api方式调用: + ```bash + mineru-api --host 0.0.0.0 --port 8000 + ``` + >[!TIP] + >在浏览器中访问 `http://127.0.0.1:8000/docs` 查看API文档。 + > + >- 健康检查接口:`GET /health` + > 返回 `protocol_version`、`processing_window_size`、`max_concurrent_requests` 等服务信息 + >- 异步任务提交接口:`POST /tasks` + >- 同步解析接口:`POST /file_parse` + >- 任务查询接口:`GET /tasks/{task_id}`、`GET /tasks/{task_id}/result` + >- API 输出目录由服务端固定控制,默认写入 `./output` + >- 上传文件当前支持 `PDF`、图片与 `DOCX`、`PPTX`、`XLSX` + > + >- `POST /tasks` 会立即返回 `task_id`;`POST /file_parse` 会在内部提交到同一个任务管理器,等待任务完成后同步返回最终结果。 + >- 当任务处于排队状态时,任务提交结果和状态查询结果中可能会返回 `queued_ahead` 字段,用于表示前方排队任务数。 + >- 任务为单进程、进程内状态实现,服务重启、`--reload` 热重载或多进程部署后不保证仍可查询历史任务状态。 + >- 默认任务完成或失败后保留 24 小时,随后自动清理任务状态和输出目录;清理后访问任务状态或结果会返回 `404`。 + >- 可通过环境变量 `MINERU_API_TASK_RETENTION_SECONDS` 和 `MINERU_API_TASK_CLEANUP_INTERVAL_SECONDS` 调整保留时长与清理轮询间隔。 + >- 可通过 `--enable-vlm-preload true` 在服务启动阶段预热本地 VLM 模型,避免首次 VLM 或 hybrid 请求时再初始化。 + > + >异步任务提交示例: + >```bash + >curl -X POST http://127.0.0.1:8000/tasks \ + > -F "files=@demo/pdfs/demo1.pdf" \ + > -F "return_md=true" + >``` + > + >同步解析示例: + >```bash + >curl -X POST http://127.0.0.1:8000/file_parse \ + > -F "files=@demo/pdfs/demo1.pdf" \ + > -F "return_md=true" \ + > -F "response_format_zip=true" \ + > -F "return_original_file=true" + >``` + > + >轮询任务状态与结果: + >```bash + >curl http://127.0.0.1:8000/tasks/ + >curl http://127.0.0.1:8000/tasks//result + >curl http://127.0.0.1:8000/health + >``` + > + >http异步调用代码示例:[Python版本](https://github.com/opendatalab/MinerU/blob/master/demo/demo.py) + +- 启动gradio webui 可视化前端: + ```bash + mineru-gradio --server-name 0.0.0.0 --server-port 7860 + ``` + >[!TIP] + > + >- 在浏览器中访问 `http://127.0.0.1:7860` 使用 Gradio WebUI。 + >- 未传 `--api-url` 时,Gradio 会自动拉起可复用的本地 `mineru-api`;传入 `--api-url` 时则会复用已有本地或远端服务。 + >- `--enable-vlm-preload true` 会让 Gradio 在 WebUI 启动阶段主动拉起本地 `mineru-api` 并等待 VLM 预加载完成;传入 `--api-url` 时会被忽略。 + >- WebUI 当前支持上传 `PDF`、图片与 `DOCX`、`PPTX`、`XLSX` 文件。 + +- 通过 `mineru-router` 进行多服务 / 多 GPU 编排: + ```bash + mineru-router --host 0.0.0.0 --port 8002 --local-gpus auto + ``` + >[!TIP] + > + >- `mineru-router` 对外暴露与 `mineru-api` 一致的 `/health`、`/tasks`、`/file_parse`、`/tasks/{task_id}`、`/tasks/{task_id}/result` 接口。 + >- 可重复使用 `--upstream-url` 聚合多个已有 `mineru-api` 服务,也可通过 `--local-gpus` 自动拉起本地 worker。 + >- `--enable-vlm-preload true` 仅作用于 router 托管的本地 worker,不会影响通过 `--upstream-url` 接入的远端服务。 + >- 适用于多服务、多 GPU 和统一入口部署场景。 + +- 使用`http-client/server`方式调用: + ```bash + # 启动openai兼容服务器(需要安装vllm或lmdeploy环境) + mineru-openai-server --port 30000 + ``` + >[!TIP] + >在另一个终端中通过http client连接openai server + > ```bash + > mineru -p -o -b hybrid-http-client -u http://127.0.0.1:30000 + > ``` + >`vlm-http-client` 是轻量远程 client,用法上不要求本地安装 `torch`。 + >`hybrid-http-client` 需要本地具备 `mineru[pipeline]` 及 `torch` 等 pipeline 依赖。 + +> [!NOTE] +> 所有`vllm/lmdeploy`官方支持的参数都可用通过命令行参数传递给 MinerU,包括以下命令:`mineru`、`mineru-openai-server`、`mineru-gradio`、`mineru-api`、`mineru-router`, +> 我们整理了一些`vllm/lmdeploy`使用中的常用参数和使用方法,可以在文档[命令行进阶参数](./advanced_cli_parameters.md)中获取。 + +## 基于配置文件扩展 MinerU 功能 + +MinerU 现已实现开箱即用,但也支持通过配置文件扩展功能。您可通过编辑用户目录下的 `mineru.json` 文件,添加自定义配置。 + +>[!IMPORTANT] +>`mineru.json` 文件会在您使用内置模型下载命令 `mineru-models-download` 时自动生成,也可以通过将[配置模板文件](https://github.com/opendatalab/MinerU/blob/master/mineru.template.json)复制到用户目录下并重命名为 `mineru.json` 来创建。 + +以下是一些可用的配置选项: + +- `latex-delimiter-config`: + * 用于配置 LaTeX 公式的分隔符 + * 默认为`$`符号,可根据需要修改为其他符号或字符串。 + +- `llm-aided-config`: + * 用于配置 LLM 辅助标题分级的相关参数,兼容所有支持`openai协议`的 LLM 模型 + * 默认使用`阿里云百炼`的`qwen3-next-80b-a3b-instruct`模型 + * 您需要自行配置 API 密钥并将`enable`设置为`true`来启用此功能 + * 如果您的api供应商不支持`enable_thinking`参数,请手动将该参数删除 + * 例如,在您的配置文件中,`llm-aided-config` 部分可能如下所示: + ```json + "llm-aided-config": { + "api_key": "your_api_key", + "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "model": "qwen3-next-80b-a3b-instruct", + "enable_thinking": false, + "enable": false + } + ``` + * 要移除`enable_thinking`参数,只需删除包含`"enable_thinking": false`的那一行,结果如下: + ```json + "llm-aided-config": { + "api_key": "your_api_key", + "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "model": "qwen3-next-80b-a3b-instruct", + "enable": false + } + ``` + +- `models-dir`: + * 用于指定本地模型存储目录,请为`pipeline`和`vlm`后端分别指定模型目录, + * 指定目录后您可通过配置环境变量`export MINERU_MODEL_SOURCE=local`来使用本地模型。 diff --git a/magic-pdf.template.json b/magic-pdf.template.json deleted file mode 100644 index 114dfce32..000000000 --- a/magic-pdf.template.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "bucket_info":{ - "bucket-name-1":["ak", "sk", "endpoint"], - "bucket-name-2":["ak", "sk", "endpoint"] - }, - "models-dir":"/tmp/models", - "layoutreader-model-dir":"/tmp/layoutreader", - "device-mode":"cpu", - "layout-config": { - "model": "layoutlmv3" - }, - "formula-config": { - "mfd_model": "yolo_v8_mfd", - "mfr_model": "unimernet_small", - "enable": true - }, - "table-config": { - "model": "tablemaster", - "enable": false, - "max_time": 400 - }, - "config_version": "1.0.0" -} \ No newline at end of file diff --git a/magic_pdf/__init__.py b/magic_pdf/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/config/__init__.py b/magic_pdf/config/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/config/enums.py b/magic_pdf/config/enums.py deleted file mode 100644 index 6f3e91a32..000000000 --- a/magic_pdf/config/enums.py +++ /dev/null @@ -1,7 +0,0 @@ - -import enum - - -class SupportedPdfParseMethod(enum.Enum): - OCR = 'ocr' - TXT = 'txt' diff --git a/magic_pdf/config/exceptions.py b/magic_pdf/config/exceptions.py deleted file mode 100644 index 38f326b51..000000000 --- a/magic_pdf/config/exceptions.py +++ /dev/null @@ -1,32 +0,0 @@ - -class FileNotExisted(Exception): - - def __init__(self, path): - self.path = path - - def __str__(self): - return f'File {self.path} does not exist.' - - -class InvalidConfig(Exception): - def __init__(self, msg): - self.msg = msg - - def __str__(self): - return f'Invalid config: {self.msg}' - - -class InvalidParams(Exception): - def __init__(self, msg): - self.msg = msg - - def __str__(self): - return f'Invalid params: {self.msg}' - - -class EmptyData(Exception): - def __init__(self, msg): - self.msg = msg - - def __str__(self): - return f'Empty data: {self.msg}' diff --git a/magic_pdf/data/__init__.py b/magic_pdf/data/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/data/data_reader_writer/__init__.py b/magic_pdf/data/data_reader_writer/__init__.py deleted file mode 100644 index f8f823473..000000000 --- a/magic_pdf/data/data_reader_writer/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -from magic_pdf.data.data_reader_writer.filebase import \ - FileBasedDataReader # noqa: F401 -from magic_pdf.data.data_reader_writer.filebase import \ - FileBasedDataWriter # noqa: F401 -from magic_pdf.data.data_reader_writer.multi_bucket_s3 import \ - MultiBucketS3DataReader # noqa: F401 -from magic_pdf.data.data_reader_writer.multi_bucket_s3 import \ - MultiBucketS3DataWriter # noqa: F401 -from magic_pdf.data.data_reader_writer.s3 import S3DataReader # noqa: F401 -from magic_pdf.data.data_reader_writer.s3 import S3DataWriter # noqa: F401 -from magic_pdf.data.data_reader_writer.base import DataReader # noqa: F401 -from magic_pdf.data.data_reader_writer.base import DataWriter # noqa: F401 \ No newline at end of file diff --git a/magic_pdf/data/data_reader_writer/base.py b/magic_pdf/data/data_reader_writer/base.py deleted file mode 100644 index 7c9a8e8ec..000000000 --- a/magic_pdf/data/data_reader_writer/base.py +++ /dev/null @@ -1,51 +0,0 @@ - -from abc import ABC, abstractmethod - - -class DataReader(ABC): - - def read(self, path: str) -> bytes: - """Read the file. - - Args: - path (str): file path to read - - Returns: - bytes: the content of the file - """ - return self.read_at(path) - - @abstractmethod - def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes: - """Read the file at offset and limit. - - Args: - path (str): the file path - offset (int, optional): the number of bytes skipped. Defaults to 0. - limit (int, optional): the length of bytes want to read. Defaults to -1. - - Returns: - bytes: the content of the file - """ - pass - - -class DataWriter(ABC): - @abstractmethod - def write(self, path: str, data: bytes) -> None: - """Write the data to the file. - - Args: - path (str): the target file where to write - data (bytes): the data want to write - """ - pass - - def write_string(self, path: str, data: str) -> None: - """Write the data to file, the data will be encoded to bytes. - - Args: - path (str): the target file where to write - data (str): the data want to write - """ - self.write(path, data.encode()) diff --git a/magic_pdf/data/data_reader_writer/multi_bucket_s3.py b/magic_pdf/data/data_reader_writer/multi_bucket_s3.py deleted file mode 100644 index 4f6347b3b..000000000 --- a/magic_pdf/data/data_reader_writer/multi_bucket_s3.py +++ /dev/null @@ -1,137 +0,0 @@ -from magic_pdf.config.exceptions import InvalidConfig, InvalidParams -from magic_pdf.data.data_reader_writer.base import DataReader, DataWriter -from magic_pdf.data.io.s3 import S3Reader, S3Writer -from magic_pdf.data.schemas import S3Config -from magic_pdf.libs.path_utils import (parse_s3_range_params, parse_s3path, - remove_non_official_s3_args) - - -class MultiS3Mixin: - def __init__(self, default_bucket: str, s3_configs: list[S3Config]): - """Initialized with multiple s3 configs. - - Args: - default_bucket (str): the default bucket name of the relative path - s3_configs (list[S3Config]): list of s3 configs, the bucket_name must be unique in the list. - - Raises: - InvalidConfig: default bucket config not in s3_configs - InvalidConfig: bucket name not unique in s3_configs - InvalidConfig: default bucket must be provided - """ - if len(default_bucket) == 0: - raise InvalidConfig('default_bucket must be provided') - - found_default_bucket_config = False - for conf in s3_configs: - if conf.bucket_name == default_bucket: - found_default_bucket_config = True - break - - if not found_default_bucket_config: - raise InvalidConfig( - f'default_bucket: {default_bucket} config must be provided in s3_configs: {s3_configs}' - ) - - uniq_bucket = set([conf.bucket_name for conf in s3_configs]) - if len(uniq_bucket) != len(s3_configs): - raise InvalidConfig( - f'the bucket_name in s3_configs: {s3_configs} must be unique' - ) - - self.default_bucket = default_bucket - self.s3_configs = s3_configs - self._s3_clients_h: dict = {} - - -class MultiBucketS3DataReader(DataReader, MultiS3Mixin): - def read(self, path: str) -> bytes: - """Read the path from s3, select diffect bucket client for each request - based on the path, also support range read. - - Args: - path (str): the s3 path of file, the path must be in the format of s3://bucket_name/path?offset,limit - for example: s3://bucket_name/path?0,100 - - Returns: - bytes: the content of s3 file - """ - may_range_params = parse_s3_range_params(path) - if may_range_params is None or 2 != len(may_range_params): - byte_start, byte_len = 0, -1 - else: - byte_start, byte_len = int(may_range_params[0]), int(may_range_params[1]) - path = remove_non_official_s3_args(path) - return self.read_at(path, byte_start, byte_len) - - def __get_s3_client(self, bucket_name: str): - if bucket_name not in set([conf.bucket_name for conf in self.s3_configs]): - raise InvalidParams( - f'bucket name: {bucket_name} not found in s3_configs: {self.s3_configs}' - ) - if bucket_name not in self._s3_clients_h: - conf = next( - filter(lambda conf: conf.bucket_name == bucket_name, self.s3_configs) - ) - self._s3_clients_h[bucket_name] = S3Reader( - bucket_name, - conf.access_key, - conf.secret_key, - conf.endpoint_url, - conf.addressing_style, - ) - return self._s3_clients_h[bucket_name] - - def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes: - """Read the file with offset and limit, select diffect bucket client - for each request based on the path. - - Args: - path (str): the file path - offset (int, optional): the number of bytes skipped. Defaults to 0. - limit (int, optional): the number of bytes want to read. Defaults to -1 which means infinite. - - Returns: - bytes: the file content - """ - if path.startswith('s3://'): - bucket_name, path = parse_s3path(path) - s3_reader = self.__get_s3_client(bucket_name) - else: - s3_reader = self.__get_s3_client(self.default_bucket) - return s3_reader.read_at(path, offset, limit) - - -class MultiBucketS3DataWriter(DataWriter, MultiS3Mixin): - def __get_s3_client(self, bucket_name: str): - if bucket_name not in set([conf.bucket_name for conf in self.s3_configs]): - raise InvalidParams( - f'bucket name: {bucket_name} not found in s3_configs: {self.s3_configs}' - ) - if bucket_name not in self._s3_clients_h: - conf = next( - filter(lambda conf: conf.bucket_name == bucket_name, self.s3_configs) - ) - self._s3_clients_h[bucket_name] = S3Writer( - bucket_name, - conf.access_key, - conf.secret_key, - conf.endpoint_url, - conf.addressing_style, - ) - return self._s3_clients_h[bucket_name] - - def write(self, path: str, data: bytes) -> None: - """Write file with data, also select diffect bucket client for each - request based on the path. - - Args: - path (str): the path of file, if the path is relative path, it will be joined with parent_dir. - data (bytes): the data want to write - """ - if path.startswith('s3://'): - bucket_name, path = parse_s3path(path) - s3_writer = self.__get_s3_client(bucket_name) - else: - s3_writer = self.__get_s3_client(self.default_bucket) - return s3_writer.write(path, data) diff --git a/magic_pdf/data/data_reader_writer/s3.py b/magic_pdf/data/data_reader_writer/s3.py deleted file mode 100644 index b6f27a276..000000000 --- a/magic_pdf/data/data_reader_writer/s3.py +++ /dev/null @@ -1,69 +0,0 @@ -from magic_pdf.data.data_reader_writer.multi_bucket_s3 import ( - MultiBucketS3DataReader, MultiBucketS3DataWriter) -from magic_pdf.data.schemas import S3Config - - -class S3DataReader(MultiBucketS3DataReader): - def __init__( - self, - bucket: str, - ak: str, - sk: str, - endpoint_url: str, - addressing_style: str = 'auto', - ): - """s3 reader client. - - Args: - bucket (str): bucket name - ak (str): access key - sk (str): secret key - endpoint_url (str): endpoint url of s3 - addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual' - refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html - """ - super().__init__( - bucket, - [ - S3Config( - bucket_name=bucket, - access_key=ak, - secret_key=sk, - endpoint_url=endpoint_url, - addressing_style=addressing_style, - ) - ], - ) - - -class S3DataWriter(MultiBucketS3DataWriter): - def __init__( - self, - bucket: str, - ak: str, - sk: str, - endpoint_url: str, - addressing_style: str = 'auto', - ): - """s3 writer client. - - Args: - bucket (str): bucket name - ak (str): access key - sk (str): secret key - endpoint_url (str): endpoint url of s3 - addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual' - refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html - """ - super().__init__( - bucket, - [ - S3Config( - bucket_name=bucket, - access_key=ak, - secret_key=sk, - endpoint_url=endpoint_url, - addressing_style=addressing_style, - ) - ], - ) diff --git a/magic_pdf/data/dataset.py b/magic_pdf/data/dataset.py deleted file mode 100644 index 0eee3c684..000000000 --- a/magic_pdf/data/dataset.py +++ /dev/null @@ -1,194 +0,0 @@ -from abc import ABC, abstractmethod -from typing import Iterator - -import fitz - -from magic_pdf.config.enums import SupportedPdfParseMethod -from magic_pdf.data.schemas import PageInfo -from magic_pdf.data.utils import fitz_doc_to_image - - -class PageableData(ABC): - @abstractmethod - def get_image(self) -> dict: - """Transform data to image.""" - pass - - @abstractmethod - def get_doc(self) -> fitz.Page: - """Get the pymudoc page.""" - pass - - @abstractmethod - def get_page_info(self) -> PageInfo: - """Get the page info of the page. - - Returns: - PageInfo: the page info of this page - """ - pass - - -class Dataset(ABC): - @abstractmethod - def __len__(self) -> int: - """The length of the dataset.""" - pass - - @abstractmethod - def __iter__(self) -> Iterator[PageableData]: - """Yield the page data.""" - pass - - @abstractmethod - def supported_methods(self) -> list[SupportedPdfParseMethod]: - """The methods that this dataset support. - - Returns: - list[SupportedPdfParseMethod]: The supported methods, Valid methods are: OCR, TXT - """ - pass - - @abstractmethod - def data_bits(self) -> bytes: - """The bits used to create this dataset.""" - pass - - @abstractmethod - def get_page(self, page_id: int) -> PageableData: - """Get the page indexed by page_id. - - Args: - page_id (int): the index of the page - - Returns: - PageableData: the page doc object - """ - pass - - -class PymuDocDataset(Dataset): - def __init__(self, bits: bytes): - """Initialize the dataset, which wraps the pymudoc documents. - - Args: - bits (bytes): the bytes of the pdf - """ - self._records = [Doc(v) for v in fitz.open('pdf', bits)] - self._data_bits = bits - self._raw_data = bits - - def __len__(self) -> int: - """The page number of the pdf.""" - return len(self._records) - - def __iter__(self) -> Iterator[PageableData]: - """Yield the page doc object.""" - return iter(self._records) - - def supported_methods(self) -> list[SupportedPdfParseMethod]: - """The method supported by this dataset. - - Returns: - list[SupportedPdfParseMethod]: the supported methods - """ - return [SupportedPdfParseMethod.OCR, SupportedPdfParseMethod.TXT] - - def data_bits(self) -> bytes: - """The pdf bits used to create this dataset.""" - return self._data_bits - - def get_page(self, page_id: int) -> PageableData: - """The page doc object. - - Args: - page_id (int): the page doc index - - Returns: - PageableData: the page doc object - """ - return self._records[page_id] - - -class ImageDataset(Dataset): - def __init__(self, bits: bytes): - """Initialize the dataset, which wraps the pymudoc documents. - - Args: - bits (bytes): the bytes of the photo which will be converted to pdf first. then converted to pymudoc. - """ - pdf_bytes = fitz.open(stream=bits).convert_to_pdf() - self._records = [Doc(v) for v in fitz.open('pdf', pdf_bytes)] - self._raw_data = bits - self._data_bits = pdf_bytes - - def __len__(self) -> int: - """The length of the dataset.""" - return len(self._records) - - def __iter__(self) -> Iterator[PageableData]: - """Yield the page object.""" - return iter(self._records) - - def supported_methods(self): - """The method supported by this dataset. - - Returns: - list[SupportedPdfParseMethod]: the supported methods - """ - return [SupportedPdfParseMethod.OCR] - - def data_bits(self) -> bytes: - """The pdf bits used to create this dataset.""" - return self._data_bits - - def get_page(self, page_id: int) -> PageableData: - """The page doc object. - - Args: - page_id (int): the page doc index - - Returns: - PageableData: the page doc object - """ - return self._records[page_id] - - -class Doc(PageableData): - """Initialized with pymudoc object.""" - def __init__(self, doc: fitz.Page): - self._doc = doc - - def get_image(self): - """Return the imge info. - - Returns: - dict: { - img: np.ndarray, - width: int, - height: int - } - """ - return fitz_doc_to_image(self._doc) - - def get_doc(self) -> fitz.Page: - """Get the pymudoc object. - - Returns: - fitz.Page: the pymudoc object - """ - return self._doc - - def get_page_info(self) -> PageInfo: - """Get the page info of the page. - - Returns: - PageInfo: the page info of this page - """ - page_w = self._doc.rect.width - page_h = self._doc.rect.height - return PageInfo(w=page_w, h=page_h) - - def __getattr__(self, name): - if hasattr(self._doc, name): - return getattr(self._doc, name) diff --git a/magic_pdf/data/io/__init__.py b/magic_pdf/data/io/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/data/io/base.py b/magic_pdf/data/io/base.py deleted file mode 100644 index c02c2ed42..000000000 --- a/magic_pdf/data/io/base.py +++ /dev/null @@ -1,42 +0,0 @@ -from abc import ABC, abstractmethod - - -class IOReader(ABC): - @abstractmethod - def read(self, path: str) -> bytes: - """Read the file. - - Args: - path (str): file path to read - - Returns: - bytes: the content of the file - """ - pass - - @abstractmethod - def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes: - """Read at offset and limit. - - Args: - path (str): the path of file, if the path is relative path, it will be joined with parent_dir. - offset (int, optional): the number of bytes skipped. Defaults to 0. - limit (int, optional): the length of bytes want to read. Defaults to -1. - - Returns: - bytes: the content of file - """ - pass - - -class IOWriter: - - @abstractmethod - def write(self, path: str, data: bytes) -> None: - """Write file with data. - - Args: - path (str): the path of file, if the path is relative path, it will be joined with parent_dir. - data (bytes): the data want to write - """ - pass diff --git a/magic_pdf/data/io/s3.py b/magic_pdf/data/io/s3.py deleted file mode 100644 index 4222c73fe..000000000 --- a/magic_pdf/data/io/s3.py +++ /dev/null @@ -1,114 +0,0 @@ -import boto3 -from botocore.config import Config - -from magic_pdf.data.io.base import IOReader, IOWriter - - -class S3Reader(IOReader): - def __init__( - self, - bucket: str, - ak: str, - sk: str, - endpoint_url: str, - addressing_style: str = 'auto', - ): - """s3 reader client. - - Args: - bucket (str): bucket name - ak (str): access key - sk (str): secret key - endpoint_url (str): endpoint url of s3 - addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual' - refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html - """ - self._bucket = bucket - self._ak = ak - self._sk = sk - self._s3_client = boto3.client( - service_name='s3', - aws_access_key_id=ak, - aws_secret_access_key=sk, - endpoint_url=endpoint_url, - config=Config( - s3={'addressing_style': addressing_style}, - retries={'max_attempts': 5, 'mode': 'standard'}, - ), - ) - - def read(self, key: str) -> bytes: - """Read the file. - - Args: - path (str): file path to read - - Returns: - bytes: the content of the file - """ - return self.read_at(key) - - def read_at(self, key: str, offset: int = 0, limit: int = -1) -> bytes: - """Read at offset and limit. - - Args: - path (str): the path of file, if the path is relative path, it will be joined with parent_dir. - offset (int, optional): the number of bytes skipped. Defaults to 0. - limit (int, optional): the length of bytes want to read. Defaults to -1. - - Returns: - bytes: the content of file - """ - if limit > -1: - range_header = f'bytes={offset}-{offset+limit-1}' - res = self._s3_client.get_object( - Bucket=self._bucket, Key=key, Range=range_header - ) - else: - res = self._s3_client.get_object( - Bucket=self._bucket, Key=key, Range=f'bytes={offset}-' - ) - return res['Body'].read() - - -class S3Writer(IOWriter): - def __init__( - self, - bucket: str, - ak: str, - sk: str, - endpoint_url: str, - addressing_style: str = 'auto', - ): - """s3 reader client. - - Args: - bucket (str): bucket name - ak (str): access key - sk (str): secret key - endpoint_url (str): endpoint url of s3 - addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual' - refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html - """ - self._bucket = bucket - self._ak = ak - self._sk = sk - self._s3_client = boto3.client( - service_name='s3', - aws_access_key_id=ak, - aws_secret_access_key=sk, - endpoint_url=endpoint_url, - config=Config( - s3={'addressing_style': addressing_style}, - retries={'max_attempts': 5, 'mode': 'standard'}, - ), - ) - - def write(self, key: str, data: bytes): - """Write file with data. - - Args: - path (str): the path of file, if the path is relative path, it will be joined with parent_dir. - data (bytes): the data want to write - """ - self._s3_client.put_object(Bucket=self._bucket, Key=key, Body=data) diff --git a/magic_pdf/data/read_api.py b/magic_pdf/data/read_api.py deleted file mode 100644 index 61e0fbf72..000000000 --- a/magic_pdf/data/read_api.py +++ /dev/null @@ -1,95 +0,0 @@ -import json -import os -from pathlib import Path - -from magic_pdf.config.exceptions import EmptyData, InvalidParams -from magic_pdf.data.data_reader_writer import (FileBasedDataReader, - MultiBucketS3DataReader) -from magic_pdf.data.dataset import ImageDataset, PymuDocDataset - - -def read_jsonl( - s3_path_or_local: str, s3_client: MultiBucketS3DataReader | None = None -) -> list[PymuDocDataset]: - """Read the jsonl file and return the list of PymuDocDataset. - - Args: - s3_path_or_local (str): local file or s3 path - s3_client (MultiBucketS3DataReader | None, optional): s3 client that support multiple bucket. Defaults to None. - - Raises: - InvalidParams: if s3_path_or_local is s3 path but s3_client is not provided. - EmptyData: if no pdf file location is provided in some line of jsonl file. - InvalidParams: if the file location is s3 path but s3_client is not provided - - Returns: - list[PymuDocDataset]: each line in the jsonl file will be converted to a PymuDocDataset - """ - bits_arr = [] - if s3_path_or_local.startswith('s3://'): - if s3_client is None: - raise InvalidParams('s3_client is required when s3_path is provided') - jsonl_bits = s3_client.read(s3_path_or_local) - else: - jsonl_bits = FileBasedDataReader('').read(s3_path_or_local) - jsonl_d = [ - json.loads(line) for line in jsonl_bits.decode().split('\n') if line.strip() - ] - for d in jsonl_d[:5]: - pdf_path = d.get('file_location', '') or d.get('path', '') - if len(pdf_path) == 0: - raise EmptyData('pdf file location is empty') - if pdf_path.startswith('s3://'): - if s3_client is None: - raise InvalidParams('s3_client is required when s3_path is provided') - bits_arr.append(s3_client.read(pdf_path)) - else: - bits_arr.append(FileBasedDataReader('').read(pdf_path)) - return [PymuDocDataset(bits) for bits in bits_arr] - - -def read_local_pdfs(path: str) -> list[PymuDocDataset]: - """Read pdf from path or directory. - - Args: - path (str): pdf file path or directory that contains pdf files - - Returns: - list[PymuDocDataset]: each pdf file will converted to a PymuDocDataset - """ - if os.path.isdir(path): - reader = FileBasedDataReader(path) - return [ - PymuDocDataset(reader.read(doc_path.name)) - for doc_path in Path(path).glob('*.pdf') - ] - else: - reader = FileBasedDataReader() - bits = reader.read(path) - return [PymuDocDataset(bits)] - - -def read_local_images(path: str, suffixes: list[str]) -> list[ImageDataset]: - """Read images from path or directory. - - Args: - path (str): image file path or directory that contains image files - suffixes (list[str]): the suffixes of the image files used to filter the files. Example: ['jpg', 'png'] - - Returns: - list[ImageDataset]: each image file will converted to a ImageDataset - """ - if os.path.isdir(path): - imgs_bits = [] - s_suffixes = set(suffixes) - reader = FileBasedDataReader(path) - for root, _, files in os.walk(path): - for file in files: - suffix = file.split('.') - if suffix[-1] in s_suffixes: - imgs_bits.append(reader.read(file)) - return [ImageDataset(bits) for bits in imgs_bits] - else: - reader = FileBasedDataReader() - bits = reader.read(path) - return [ImageDataset(bits)] diff --git a/magic_pdf/data/utils.py b/magic_pdf/data/utils.py deleted file mode 100644 index dfe7abde1..000000000 --- a/magic_pdf/data/utils.py +++ /dev/null @@ -1,32 +0,0 @@ - -import fitz -import numpy as np - -from magic_pdf.utils.annotations import ImportPIL - - -@ImportPIL -def fitz_doc_to_image(doc, dpi=200) -> dict: - """Convert fitz.Document to image, Then convert the image to numpy array. - - Args: - doc (_type_): pymudoc page - dpi (int, optional): reset the dpi of dpi. Defaults to 200. - - Returns: - dict: {'img': numpy array, 'width': width, 'height': height } - """ - from PIL import Image - mat = fitz.Matrix(dpi / 72, dpi / 72) - pm = doc.get_pixmap(matrix=mat, alpha=False) - - # If the width or height exceeds 9000 after scaling, do not scale further. - if pm.width > 9000 or pm.height > 9000: - pm = doc.get_pixmap(matrix=fitz.Matrix(1, 1), alpha=False) - - img = Image.frombytes('RGB', (pm.width, pm.height), pm.samples) - img = np.array(img) - - img_dict = {'img': img, 'width': pm.width, 'height': pm.height} - - return img_dict diff --git a/magic_pdf/dict2md/__init__.py b/magic_pdf/dict2md/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/dict2md/mkcontent.py b/magic_pdf/dict2md/mkcontent.py deleted file mode 100644 index 049e290e5..000000000 --- a/magic_pdf/dict2md/mkcontent.py +++ /dev/null @@ -1,397 +0,0 @@ -import math -from loguru import logger - -from magic_pdf.libs.boxbase import find_bottom_nearest_text_bbox, find_top_nearest_text_bbox -from magic_pdf.libs.commons import join_path -from magic_pdf.libs.ocr_content_type import ContentType - -TYPE_INLINE_EQUATION = ContentType.InlineEquation -TYPE_INTERLINE_EQUATION = ContentType.InterlineEquation -UNI_FORMAT_TEXT_TYPE = ['text', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'] - - -@DeprecationWarning -def mk_nlp_markdown_1(para_dict: dict): - """ - 对排序后的bboxes拼接内容 - """ - content_lst = [] - for _, page_info in para_dict.items(): - para_blocks = page_info.get("para_blocks") - if not para_blocks: - continue - - for block in para_blocks: - item = block["paras"] - for _, p in item.items(): - para_text = p["para_text"] - is_title = p["is_para_title"] - title_level = p['para_title_level'] - md_title_prefix = "#"*title_level - if is_title: - content_lst.append(f"{md_title_prefix} {para_text}") - else: - content_lst.append(para_text) - - content_text = "\n\n".join(content_lst) - - return content_text - - - -# 找到目标字符串在段落中的索引 -def __find_index(paragraph, target): - index = paragraph.find(target) - if index != -1: - return index - else: - return None - - -def __insert_string(paragraph, target, postion): - new_paragraph = paragraph[:postion] + target + paragraph[postion:] - return new_paragraph - - -def __insert_after(content, image_content, target): - """ - 在content中找到target,将image_content插入到target后面 - """ - index = content.find(target) - if index != -1: - content = content[:index+len(target)] + "\n\n" + image_content + "\n\n" + content[index+len(target):] - else: - logger.error(f"Can't find the location of image {image_content} in the markdown file, search target is {target}") - return content - -def __insert_before(content, image_content, target): - """ - 在content中找到target,将image_content插入到target前面 - """ - index = content.find(target) - if index != -1: - content = content[:index] + "\n\n" + image_content + "\n\n" + content[index:] - else: - logger.error(f"Can't find the location of image {image_content} in the markdown file, search target is {target}") - return content - - -@DeprecationWarning -def mk_mm_markdown_1(para_dict: dict): - """拼装多模态markdown""" - content_lst = [] - for _, page_info in para_dict.items(): - page_lst = [] # 一个page内的段落列表 - para_blocks = page_info.get("para_blocks") - pymu_raw_blocks = page_info.get("preproc_blocks") - - all_page_images = [] - all_page_images.extend(page_info.get("images",[])) - all_page_images.extend(page_info.get("image_backup", []) ) - all_page_images.extend(page_info.get("tables",[])) - all_page_images.extend(page_info.get("table_backup",[]) ) - - if not para_blocks or not pymu_raw_blocks: # 只有图片的拼接的场景 - for img in all_page_images: - page_lst.append(f"![]({img['image_path']})") # TODO 图片顺序 - page_md = "\n\n".join(page_lst) - - else: - for block in para_blocks: - item = block["paras"] - for _, p in item.items(): - para_text = p["para_text"] - is_title = p["is_para_title"] - title_level = p['para_title_level'] - md_title_prefix = "#"*title_level - if is_title: - page_lst.append(f"{md_title_prefix} {para_text}") - else: - page_lst.append(para_text) - - """拼装成一个页面的文本""" - page_md = "\n\n".join(page_lst) - """插入图片""" - for img in all_page_images: - imgbox = img['bbox'] - img_content = f"![]({img['image_path']})" - # 先看在哪个block内 - for block in pymu_raw_blocks: - bbox = block['bbox'] - if bbox[0]-1 <= imgbox[0] < bbox[2]+1 and bbox[1]-1 <= imgbox[1] < bbox[3]+1:# 确定在block内 - for l in block['lines']: - line_box = l['bbox'] - if line_box[0]-1 <= imgbox[0] < line_box[2]+1 and line_box[1]-1 <= imgbox[1] < line_box[3]+1: # 在line内的,插入line前面 - line_txt = "".join([s['text'] for s in l['spans']]) - page_md = __insert_before(page_md, img_content, line_txt) - break - break - else:# 在行与行之间 - # 找到图片x0,y0与line的x0,y0最近的line - min_distance = 100000 - min_line = None - for l in block['lines']: - line_box = l['bbox'] - distance = math.sqrt((line_box[0] - imgbox[0])**2 + (line_box[1] - imgbox[1])**2) - if distance < min_distance: - min_distance = distance - min_line = l - if min_line: - line_txt = "".join([s['text'] for s in min_line['spans']]) - img_h = imgbox[3] - imgbox[1] - if min_distance 0: - if en_length / len(text) >= 0.5: - return 'en' - else: - return 'unknown' - else: - return 'empty' - - -def merge_para_with_text(para_block): - para_text = '' - for i, line in enumerate(para_block['lines']): - - if i >= 1 and line.get(ListLineTag.IS_LIST_START_LINE, False): - para_text += ' \n' - - line_text = '' - line_lang = '' - for span in line['spans']: - span_type = span['type'] - if span_type == ContentType.Text: - line_text += span['content'].strip() - if line_text != '': - line_lang = detect_lang(line_text) - for span in line['spans']: - - span_type = span['type'] - content = '' - if span_type == ContentType.Text: - content = ocr_escape_special_markdown_char(span['content']) - elif span_type == ContentType.InlineEquation: - content = f" ${span['content']}$ " - elif span_type == ContentType.InterlineEquation: - content = f"\n$$\n{span['content']}\n$$\n" - - if content != '': - langs = ['zh', 'ja', 'ko'] - if line_lang in langs: # 遇到一些一个字一个span的文档,这种单字语言判断不准,需要用整行文本判断 - para_text += content # 中文/日语/韩文语境下,content间不需要空格分隔 - elif line_lang == 'en': - # 如果是前一行带有-连字符,那么末尾不应该加空格 - if __is_hyphen_at_line_end(content): - para_text += content[:-1] - else: - para_text += content + ' ' - else: - para_text += content + ' ' # 西方文本语境下 content间需要空格分隔 - return para_text - - -def para_to_standard_format_v2(para_block, img_buket_path, page_idx, drop_reason=None): - para_type = para_block['type'] - para_content = {} - if para_type in [BlockType.Text, BlockType.List, BlockType.Index]: - para_content = { - 'type': 'text', - 'text': merge_para_with_text(para_block), - } - elif para_type == BlockType.Title: - para_content = { - 'type': 'text', - 'text': merge_para_with_text(para_block), - 'text_level': 1, - } - elif para_type == BlockType.InterlineEquation: - para_content = { - 'type': 'equation', - 'text': merge_para_with_text(para_block), - 'text_format': 'latex', - } - elif para_type == BlockType.Image: - para_content = {'type': 'image', 'img_caption': [], 'img_footnote': []} - for block in para_block['blocks']: - if block['type'] == BlockType.ImageBody: - para_content['img_path'] = join_path( - img_buket_path, - block['lines'][0]['spans'][0]['image_path']) - if block['type'] == BlockType.ImageCaption: - para_content['img_caption'].append(merge_para_with_text(block)) - if block['type'] == BlockType.ImageFootnote: - para_content['img_footnote'].append(merge_para_with_text(block)) - elif para_type == BlockType.Table: - para_content = {'type': 'table', 'table_caption': [], 'table_footnote': []} - for block in para_block['blocks']: - if block['type'] == BlockType.TableBody: - if block["lines"][0]["spans"][0].get('latex', ''): - para_content['table_body'] = f"\n\n$\n {block['lines'][0]['spans'][0]['latex']}\n$\n\n" - elif block["lines"][0]["spans"][0].get('html', ''): - para_content['table_body'] = f"\n\n{block['lines'][0]['spans'][0]['html']}\n\n" - para_content['img_path'] = join_path(img_buket_path, block["lines"][0]["spans"][0]['image_path']) - if block['type'] == BlockType.TableCaption: - para_content['table_caption'].append(merge_para_with_text(block)) - if block['type'] == BlockType.TableFootnote: - para_content['table_footnote'].append(merge_para_with_text(block)) - - para_content['page_idx'] = page_idx - - if drop_reason is not None: - para_content['drop_reason'] = drop_reason - - return para_content - - -def union_make(pdf_info_dict: list, - make_mode: str, - drop_mode: str, - img_buket_path: str = '', - ): - output_content = [] - for page_info in pdf_info_dict: - drop_reason_flag = False - drop_reason = None - if page_info.get('need_drop', False): - drop_reason = page_info.get('drop_reason') - if drop_mode == DropMode.NONE: - pass - elif drop_mode == DropMode.NONE_WITH_REASON: - drop_reason_flag = True - elif drop_mode == DropMode.WHOLE_PDF: - raise Exception((f'drop_mode is {DropMode.WHOLE_PDF} ,' - f'drop_reason is {drop_reason}')) - elif drop_mode == DropMode.SINGLE_PAGE: - logger.warning((f'drop_mode is {DropMode.SINGLE_PAGE} ,' - f'drop_reason is {drop_reason}')) - continue - else: - raise Exception('drop_mode can not be null') - - paras_of_layout = page_info.get('para_blocks') - page_idx = page_info.get('page_idx') - if not paras_of_layout: - continue - if make_mode == MakeMode.MM_MD: - page_markdown = ocr_mk_markdown_with_para_core_v2( - paras_of_layout, 'mm', img_buket_path) - output_content.extend(page_markdown) - elif make_mode == MakeMode.NLP_MD: - page_markdown = ocr_mk_markdown_with_para_core_v2( - paras_of_layout, 'nlp') - output_content.extend(page_markdown) - elif make_mode == MakeMode.STANDARD_FORMAT: - for para_block in paras_of_layout: - if drop_reason_flag: - para_content = para_to_standard_format_v2( - para_block, img_buket_path, page_idx) - else: - para_content = para_to_standard_format_v2( - para_block, img_buket_path, page_idx) - output_content.append(para_content) - if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]: - return '\n\n'.join(output_content) - elif make_mode == MakeMode.STANDARD_FORMAT: - return output_content diff --git a/magic_pdf/filter/__init__.py b/magic_pdf/filter/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/filter/pdf_classify_by_type.py b/magic_pdf/filter/pdf_classify_by_type.py deleted file mode 100644 index 319fb3fb2..000000000 --- a/magic_pdf/filter/pdf_classify_by_type.py +++ /dev/null @@ -1,393 +0,0 @@ -""" -根据利用meta_scan得到的结果,对pdf是否为文字版进行分类。 -定义标准: -一、什么pdf会是文字pdf,只要满足以下任意一条 - 1. 随机抽取N页,如果有任何一页文字数目大于100 - 2. 只要存在一个页面,图片的数量为0 -二、什么是扫描版pdf,只要满足以下任意一条 - 1. ~~80%页面上的最大图大小一样并且面积超过页面面积0.6~~ - 2. 大部分页面上文字的长度都是相等的。 - -""" -import json -import sys -from collections import Counter - -import click -import numpy as np -from loguru import logger - -from magic_pdf.libs.commons import mymax, get_top_percent_list -from magic_pdf.filter.pdf_meta_scan import scan_max_page, junk_limit_min - -TEXT_LEN_THRESHOLD = 100 -AVG_TEXT_LEN_THRESHOLD = 100 -TEXT_LEN_SAMPLE_RATIO = 0.1 # 抽取0.1的页面进行文字长度统计 - - -# 一个拼接图片的方案,将某些特殊扫描版本的拆图拼成一张整图 -def merge_images(image_list, page_width, page_height, max_offset=5, max_gap=2): - # 先通过set去除所有bbox重叠的图片数据 - image_list_result = [] - for page_images in image_list: - page_result = [] - dedup = set() - for img in page_images: - x0, y0, x1, y1, img_bojid = img - if (x0, y0, x1, y1) in dedup: # 这里面会出现一些重复的bbox,无需重复出现,需要去掉 - continue - else: - dedup.add((x0, y0, x1, y1)) - page_result.append([x0, y0, x1, y1, img_bojid]) - image_list_result.append(page_result) - - # 接下来,将同一页可拼接的图片进行合并 - merged_images = [] - for page_images in image_list_result: - if not page_images: - continue - - # 先将同一页的图片从上到下,从左到右进行排序 - page_images.sort(key=lambda img: (img[1], img[0])) - - merged = [page_images[0]] - - for img in page_images[1:]: - x0, y0, x1, y1, imgid = img - - last_img = merged[-1] - last_x0, last_y0, last_x1, last_y1, last_imgid = last_img - - # 单张图片宽或者高覆盖页面宽高的9成以上是拼图的一个前置条件 - full_width = abs(x1 - x0) >= page_width * 0.9 - full_height = abs(y1 - y0) >= page_height * 0.9 - - # 如果宽达标,检测是否能竖着拼 - if full_width: - # 竖着拼需要满足两个前提,左右边界各偏移不能超过 max_offset,第一张图的下边界和第二张图的上边界偏移不能超过 max_gap - close1 = (last_x0 - max_offset) <= x0 <= (last_x0 + max_offset) and (last_x1 - max_offset) <= x1 <= ( - last_x1 + max_offset) and (last_y1 - max_gap) <= y0 <= (last_y1 + max_gap) - - # 如果高达标,检测是否可以横着拼 - if full_height: - # 横着拼需要满足两个前提,上下边界各偏移不能超过 max_offset,第一张图的右边界和第二张图的左边界偏移不能超过 max_gap - close2 = (last_y0 - max_offset) <= y0 <= (last_y0 + max_offset) and (last_y1 - max_offset) <= y1 <= ( - last_y1 + max_offset) and (last_x1 - max_gap) <= x0 <= (last_x1 + max_gap) - - # Check if the image can be merged with the last image - if (full_width and close1) or (full_height and close2): - # Merge the image with the last image - merged[-1] = [min(x0, last_x0), min(y0, last_y0), - max(x1, last_x1), max(y1, last_y1), imgid] - else: - # Add the image as a new image - merged.append(img) - - merged_images.append(merged) - - return merged_images - - -def classify_by_area(total_page: int, page_width, page_height, img_sz_list, text_len_list: list): - """ - 80%页面上的最大图大小一样并且面积超过页面面积0.6则返回False,否则返回True - :param pdf_path: - :param total_page: - :param page_width: - :param page_height: - :param img_sz_list: - :return: - """ - # # 只要有一页没有图片,那么就是文字pdf。但是同时还需要满足一个条件就是这个页面上同时不能有文字。发现过一些扫描版pdf,上面有一些空白页面,既没有图片也没有文字。 - # if any([len(img_sz) == 0 for img_sz in img_sz_list]): # 含有不含图片的页面 - # # 现在找到这些页面的index - # empty_page_index = [i for i, img_sz in enumerate(img_sz_list) if len(img_sz) == 0] - # # 然后检查这些页面上是否有文字 - # text_len_at_page_idx = [text_len for i, text_len in enumerate(text_len_list) if i in empty_page_index and text_len > 0] - # if len(text_len_at_page_idx) > TEXT_LEN_THRESHOLD: # 没有图片,但是有文字,说明可能是个文字版,如果没有文字则无法判断,留给下一步,现在要求这页文字量超过一定阈值 - # return True - - # 通过objid去掉重复出现10次以上的图片,这些图片是隐藏的透明图层,其特点是id都一样 - # 先对每个id出现的次数做个统计 - objid_cnt = Counter([objid for page_img_sz in img_sz_list for _, _, _, _, objid in page_img_sz]) - # 再去掉出现次数大于10的 - if total_page >= scan_max_page: # 新的meta_scan只扫描前 scan_max_page 页,页数大于 scan_max_page 当total_page为 scan_max_page - total_page = scan_max_page - - repeat_threshold = 2 # 把bad_image的阈值设为2 - # repeat_threshold = min(2, total_page) # 当total_page为1时,repeat_threshold为1,会产生误判导致所有img变成bad_img - bad_image_objid = set([objid for objid, cnt in objid_cnt.items() if cnt >= repeat_threshold]) - # bad_image_page_idx = [i for i, page_img_sz in enumerate(img_sz_list) if any([objid in bad_image_objid for _, _, _, _, objid in page_img_sz])] - # text_len_at_bad_image_page_idx = [text_len for i, text_len in enumerate(text_len_list) if i in bad_image_page_idx and text_len > 0] - - # 特殊情况,一个文字版pdf,每页覆盖一个超大的透明图片,超大的定义是图片占整页面积的90%以上 - # fake_image_ids = [objid for objid in bad_image_objid if - # any([abs((x1 - x0) * (y1 - y0) / page_width * page_height) > 0.9 for images in img_sz_list for - # x0, y0, x1, y1, _ in images])] # 原来的代码,any里面恒为true了,原因??? - # fake_image_ids = [objid for objid in bad_image_objid for images in img_sz_list for x0, y0, x1, y1, img_id in images - # if img_id == objid and abs((x1 - x0) * (y1 - y0)) / (page_width * page_height) > 0.9] - - # if len(fake_image_ids) > 0 and any([l > TEXT_LEN_THRESHOLD for l in text_len_at_bad_image_page_idx]): # 这些透明图片所在的页面上有文字大于阈值 - # return True - - img_sz_list = [[img_sz for img_sz in page_img_sz if img_sz[-1] not in bad_image_objid] for page_img_sz in - img_sz_list] # 过滤掉重复出现的图片 - - # 有的扫描版会把一页图片拆成很多张,需要先把图拼起来再计算 - img_sz_list = merge_images(img_sz_list, page_width, page_height) - - # 计算每个页面上最大的图的面积,然后计算这个面积占页面面积的比例 - max_image_area_per_page = [mymax([(x1 - x0) * (y1 - y0) for x0, y0, x1, y1, _ in page_img_sz]) for page_img_sz in - img_sz_list] - page_area = page_width * page_height - max_image_area_per_page = [area / page_area for area in max_image_area_per_page] - max_image_area_per_page = [area for area in max_image_area_per_page if area > 0.5] - - if len(max_image_area_per_page) >= 0.5 * total_page: # 阈值从0.8改到0.5,适配3页里面有两页和两页里面有一页的情况 - # 这里条件成立的前提是把反复出现的图片去掉了。这些图片是隐藏的透明图层,其特点是id都一样 - return False - else: - return True - - -def classify_by_text_len(text_len_list: list, total_page: int): - """ - 随机抽取10%的页面,如果少于5个页面,那么就取全部页面。 - 查看页面上的文字长度,如果有任何一个页面的文字长度大于TEXT_LEN_THRESHOLD,那么就是文字pdf - :param total_page: - :param text_len_list: - :return: - """ - select_page_cnt = int(total_page * TEXT_LEN_SAMPLE_RATIO) # 选取10%的页面 - if select_page_cnt < 5: - select_page_cnt = total_page - - # # 排除头尾各10页 - # if total_page > 20: # 如果总页数大于20 - # page_range = list(range(10, total_page - 10)) # 从第11页到倒数第11页 - # else: - # page_range = list(range(total_page)) # 否则选择所有页面 - # page_num = np.random.choice(page_range, min(select_page_cnt, len(page_range)), replace=False) - # 排除前后10页对只有21,22页的pdf很尴尬,如果选出来的中间那一两页恰好没字容易误判,有了avg_words规则,这个规则可以忽略 - page_num = np.random.choice(total_page, select_page_cnt, replace=False) - text_len_lst = [text_len_list[i] for i in page_num] - is_text_pdf = any([text_len > TEXT_LEN_THRESHOLD for text_len in text_len_lst]) - return is_text_pdf - - -def classify_by_avg_words(text_len_list: list): - """ - 补充规则,如果平均每页字数少于 AVG_TEXT_LEN_THRESHOLD,就不是文字pdf - 主要是各种图集 - :param text_len_list: - :return: - """ - sum_words = sum(text_len_list) - count_of_numbers = len(text_len_list) - if count_of_numbers == 0: - is_text_pdf = False - else: - avg_words = round(sum_words / count_of_numbers) - if avg_words > AVG_TEXT_LEN_THRESHOLD: - is_text_pdf = True - else: - is_text_pdf = False - - return is_text_pdf - - -def classify_by_img_num(img_sz_list: list, img_num_list: list): - """ - 补充规则,有一种扫描版本的PDF,每一页都会放所有的扫描页进去,在 metascan 时会被去重, - 这种pdf的 metasca 扫描结果的特点是 img_sz_list 内全是空元素,img_num_list中每一页的数量都很大且相同 - :param img_sz_list: - :param img_num_list: - :return: - """ - # 计算img_sz_list中非空元素的个数 - count_img_sz_list_not_none = sum(1 for item in img_sz_list if item) - # 获取前80%的元素 - top_eighty_percent = get_top_percent_list(img_num_list, 0.8) - # img_sz_list中非空元素的个数小于1,前80%的元素都相等,且最大值大于等于junk_limit_min - if count_img_sz_list_not_none <= 1 and len(set(top_eighty_percent)) == 1 and max(img_num_list) >= junk_limit_min: - - #拿max和min的值,用来判断list内的值是否全都相等 - # min_imgs = min(img_num_list) - # max_imgs = max(img_num_list) - # - # if count_img_sz_list_not_none == 0 and max_imgs == min_imgs and max_imgs >= junk_limit_min: - return False # 如果满足这个条件,一定不是文字版pdf - else: - return True # 不满足这三个条件,可能是文字版pdf,通过其他规则判断 - - -def classify_by_text_layout(text_layout_per_page: list): - """ - 判断文本布局是否以竖排为主。 - - Args: - text_layout_per_page (list): 文本布局列表,列表中的每个元素表示一页的文本布局, - 值为'vertical'表示竖排,值为'horizontal'表示横排。 - - Returns: - bool: 若文本布局以竖排为主,则返回False;否则返回True。 - """ - # 统计text_layout_per_page中竖排的个数 - count_vertical = sum(1 for item in text_layout_per_page if item == 'vertical') - # 统计text_layout_per_page中横排的个数 - count_horizontal = sum(1 for item in text_layout_per_page if item == 'horizontal') - # 计算text_layout_per_page中竖排的占比 - known_layout_cnt = count_vertical + count_horizontal - if known_layout_cnt != 0: - ratio = count_vertical / known_layout_cnt - if ratio >= 0.5: # 阈值设为0.5,适配3页里面有2页和两页里有一页的情况 - return False # 文本布局以竖排为主,认为不是文字版pdf - else: - return True # 文本布局以横排为主,认为是文字版pdf - else: - return False # 文本布局未知,默认认为不是文字版pdf - - -def classify_by_img_narrow_strips(page_width, page_height, img_sz_list): - """ - 判断一页是否由细长条组成,有两个条件: - 1. 图片的宽或高达到页面宽或高的90%,且长边需要是窄边长度的数倍以上 - 2. 整个页面所有的图片有80%以上满足条件1 - - Args: - page_width (float): 页面宽度 - page_height (float): 页面高度 - img_sz_list (list): 图片尺寸列表,每个元素为一个元组,表示图片的矩形区域和尺寸,形如(x0, y0, x1, y1, size),其中(x0, y0)为矩形区域的左上角坐标,(x1, y1)为矩形区域的右下角坐标,size为图片的尺寸 - - Returns: - bool: 如果满足条件的页面的比例小于0.5,返回True,否则返回False - """ - - def is_narrow_strip(img): - x0, y0, x1, y1, _ = img - width, height = x1 - x0, y1 - y0 - return any([ - # 图片宽度大于等于页面宽度的90%,且宽度大于等于高度4倍 - width >= page_width * 0.9 and width >= height * 4, - # 图片高度大于等于页面高度的90%,且高度大于等于宽度4倍 - height >= page_height * 0.9 and height >= width * 4, - ]) - - # 初始化满足条件的页面数量 - narrow_strip_pages_count = 0 - - # 遍历所有页面 - for page_img_list in img_sz_list: - # 忽略空页面 - if not page_img_list: - continue - - # 计算页面中的图片总数 - total_images = len(page_img_list) - - # 计算页面中细长条图片的数量 - narrow_strip_images_count = 0 - for img in page_img_list: - if is_narrow_strip(img): - narrow_strip_images_count += 1 - # 如果细长条图片的数量少于5,跳过 - if narrow_strip_images_count < 5: - continue - else: - # 如果细长条图片的比例大于或等于0.8,增加满足条件的页面数量 - if narrow_strip_images_count / total_images >= 0.8: - narrow_strip_pages_count += 1 - - # 计算满足条件的页面的比例 - narrow_strip_pages_ratio = narrow_strip_pages_count / len(img_sz_list) - - return narrow_strip_pages_ratio < 0.5 - - -def classify(total_page: int, page_width, page_height, img_sz_list: list, text_len_list: list, img_num_list: list, - text_layout_list: list, invalid_chars: bool): - """ - 这里的图片和页面长度单位是pts - :param total_page: - :param text_len_list: - :param page_width: - :param page_height: - :param img_sz_list: - :param pdf_path: - :return: - """ - results = { - 'by_image_area': classify_by_area(total_page, page_width, page_height, img_sz_list, text_len_list), - 'by_text_len': classify_by_text_len(text_len_list, total_page), - 'by_avg_words': classify_by_avg_words(text_len_list), - 'by_img_num': classify_by_img_num(img_sz_list, img_num_list), - 'by_text_layout': classify_by_text_layout(text_layout_list), - 'by_img_narrow_strips': classify_by_img_narrow_strips(page_width, page_height, img_sz_list), - 'by_invalid_chars': invalid_chars, - } - - if all(results.values()): - return True, results - elif not any(results.values()): - return False, results - else: - logger.warning( - f"pdf is not classified by area and text_len, by_image_area: {results['by_image_area']}," - f" by_text: {results['by_text_len']}, by_avg_words: {results['by_avg_words']}, by_img_num: {results['by_img_num']}," - f" by_text_layout: {results['by_text_layout']}, by_img_narrow_strips: {results['by_img_narrow_strips']}," - f" by_invalid_chars: {results['by_invalid_chars']}", - file=sys.stderr) # 利用这种情况可以快速找出来哪些pdf比较特殊,针对性修正分类算法 - return False, results - - -@click.command() -@click.option("--json-file", type=str, help="pdf信息") -def main(json_file): - if json_file is None: - print("json_file is None", file=sys.stderr) - exit(0) - try: - with open(json_file, "r") as f: - for l in f: - if l.strip() == "": - continue - o = json.loads(l) - total_page = o["total_page"] - page_width = o["page_width_pts"] - page_height = o["page_height_pts"] - img_sz_list = o["image_info_per_page"] - text_len_list = o['text_len_per_page'] - text_layout_list = o['text_layout_per_page'] - pdf_path = o['pdf_path'] - is_encrypted = o['is_encrypted'] - is_needs_password = o['is_needs_password'] - if is_encrypted or total_page == 0 or is_needs_password: # 加密的,需要密码的,没有页面的,都不处理 - continue - tag = classify(total_page, page_width, page_height, img_sz_list, text_len_list, text_layout_list) - o['is_text_pdf'] = tag - print(json.dumps(o, ensure_ascii=False)) - except Exception as e: - print("ERROR: ", e, file=sys.stderr) - - -if __name__ == "__main__": - main() - # false = False - # true = True - # null = None - # o = {"pdf_path":"s3://llm-raw-snew/llm-raw-the-eye/raw/World%20Tracker%20Library/worldtracker.org/media/library/Science/Computer%20Science/Shreiner%20-%20OpenGL%20Programming%20Guide%206e%20%5BThe%20Redbook%5D%20%28AW%2C%202008%29.pdf","is_needs_password":false,"is_encrypted":false,"total_page":978,"page_width_pts":368,"page_height_pts":513,"image_info_per_page":[[[0,0,368,513,10037]],[[0,0,368,513,4]],[[0,0,368,513,7]],[[0,0,368,513,10]],[[0,0,368,513,13]],[[0,0,368,513,16]],[[0,0,368,513,19]],[[0,0,368,513,22]],[[0,0,368,513,25]],[[0,0,368,513,28]],[[0,0,368,513,31]],[[0,0,368,513,34]],[[0,0,368,513,37]],[[0,0,368,513,40]],[[0,0,368,513,43]],[[0,0,368,513,46]],[[0,0,368,513,49]],[[0,0,368,513,52]],[[0,0,368,513,55]],[[0,0,368,513,58]],[[0,0,368,513,61]],[[0,0,368,513,64]],[[0,0,368,513,67]],[[0,0,368,513,70]],[[0,0,368,513,73]],[[0,0,368,516,76]],[[0,0,368,516,79]],[[0,0,368,513,82]],[[0,0,368,513,85]],[[0,0,368,513,88]],[[0,0,368,513,91]],[[0,0,368,513,94]],[[0,0,368,513,97]],[[0,0,368,513,100]],[[0,0,368,513,103]],[[0,0,368,513,106]],[[0,0,368,513,109]],[[0,0,368,513,112]],[[0,0,368,513,115]],[[0,0,368,513,118]],[[0,0,368,513,121]],[[0,0,368,513,124]],[[0,0,368,513,127]],[[0,0,368,513,130]],[[0,0,368,513,133]],[[0,0,368,513,136]],[[0,0,368,513,139]],[[0,0,368,513,142]],[[0,0,368,513,145]],[[0,0,368,513,148]],[[0,0,368,513,151]],[[0,0,368,513,154]],[[0,0,368,513,157]],[[0,0,368,513,160]],[[0,0,368,513,163]],[[0,0,368,513,166]],[[0,0,368,513,169]],[[0,0,368,513,172]],[[0,0,368,513,175]],[[0,0,368,513,178]],[[0,0,368,513,181]],[[0,0,368,513,184]],[[0,0,368,513,187]],[[0,0,368,513,190]],[[0,0,368,513,193]],[[0,0,368,513,196]],[[0,0,368,513,199]],[[0,0,368,513,202]],[[0,0,368,513,205]],[[0,0,368,513,208]],[[0,0,368,513,211]],[[0,0,368,513,214]],[[0,0,368,513,217]],[[0,0,368,513,220]],[[0,0,368,513,223]],[[0,0,368,513,226]],[[0,0,368,513,229]],[[0,0,368,513,232]],[[0,0,368,513,235]],[[0,0,368,513,238]],[[0,0,368,513,241]],[[0,0,368,513,244]],[[0,0,368,513,247]],[[0,0,368,513,250]],[[0,0,368,513,253]],[[0,0,368,513,256]],[[0,0,368,513,259]],[[0,0,368,513,262]],[[0,0,368,513,265]],[[0,0,368,513,268]],[[0,0,368,513,271]],[[0,0,368,513,274]],[[0,0,368,513,277]],[[0,0,368,513,280]],[[0,0,368,513,283]],[[0,0,368,513,286]],[[0,0,368,513,289]],[[0,0,368,513,292]],[[0,0,368,513,295]],[[0,0,368,513,298]],[[0,0,368,513,301]],[[0,0,368,513,304]],[[0,0,368,513,307]],[[0,0,368,513,310]],[[0,0,368,513,313]],[[0,0,368,513,316]],[[0,0,368,513,319]],[[0,0,368,513,322]],[[0,0,368,513,325]],[[0,0,368,513,328]],[[0,0,368,513,331]],[[0,0,368,513,334]],[[0,0,368,513,337]],[[0,0,368,513,340]],[[0,0,368,513,343]],[[0,0,368,513,346]],[[0,0,368,513,349]],[[0,0,368,513,352]],[[0,0,368,513,355]],[[0,0,368,513,358]],[[0,0,368,513,361]],[[0,0,368,513,364]],[[0,0,368,513,367]],[[0,0,368,513,370]],[[0,0,368,513,373]],[[0,0,368,513,376]],[[0,0,368,513,379]],[[0,0,368,513,382]],[[0,0,368,513,385]],[[0,0,368,513,388]],[[0,0,368,513,391]],[[0,0,368,513,394]],[[0,0,368,513,397]],[[0,0,368,513,400]],[[0,0,368,513,403]],[[0,0,368,513,406]],[[0,0,368,513,409]],[[0,0,368,513,412]],[[0,0,368,513,415]],[[0,0,368,513,418]],[[0,0,368,513,421]],[[0,0,368,513,424]],[[0,0,368,513,427]],[[0,0,368,513,430]],[[0,0,368,513,433]],[[0,0,368,513,436]],[[0,0,368,513,439]],[[0,0,368,513,442]],[[0,0,368,513,445]],[[0,0,368,513,448]],[[0,0,368,513,451]],[[0,0,368,513,454]],[[0,0,368,513,457]],[[0,0,368,513,460]],[[0,0,368,513,463]],[[0,0,368,513,466]],[[0,0,368,513,469]],[[0,0,368,513,472]],[[0,0,368,513,475]],[[0,0,368,513,478]],[[0,0,368,513,481]],[[0,0,368,513,484]],[[0,0,368,513,487]],[[0,0,368,513,490]],[[0,0,368,513,493]],[[0,0,368,513,496]],[[0,0,368,513,499]],[[0,0,368,513,502]],[[0,0,368,513,505]],[[0,0,368,513,508]],[[0,0,368,513,511]],[[0,0,368,513,514]],[[0,0,368,513,517]],[[0,0,368,513,520]],[[0,0,368,513,523]],[[0,0,368,513,526]],[[0,0,368,513,529]],[[0,0,368,513,532]],[[0,0,368,513,535]],[[0,0,368,513,538]],[[0,0,368,513,541]],[[0,0,368,513,544]],[[0,0,368,513,547]],[[0,0,368,513,550]],[[0,0,368,513,553]],[[0,0,368,513,556]],[[0,0,368,513,559]],[[0,0,368,513,562]],[[0,0,368,513,565]],[[0,0,368,513,568]],[[0,0,368,513,571]],[[0,0,368,513,574]],[[0,0,368,513,577]],[[0,0,368,513,580]],[[0,0,368,513,583]],[[0,0,368,513,586]],[[0,0,368,513,589]],[[0,0,368,513,592]],[[0,0,368,513,595]],[[0,0,368,513,598]],[[0,0,368,513,601]],[[0,0,368,513,604]],[[0,0,368,513,607]],[[0,0,368,513,610]],[[0,0,368,513,613]],[[0,0,368,513,616]],[[0,0,368,513,619]],[[0,0,368,513,622]],[[0,0,368,513,625]],[[0,0,368,513,628]],[[0,0,368,513,631]],[[0,0,368,513,634]],[[0,0,368,513,637]],[[0,0,368,513,640]],[[0,0,368,513,643]],[[0,0,368,513,646]],[[0,0,368,513,649]],[[0,0,368,513,652]],[[0,0,368,513,655]],[[0,0,368,513,658]],[[0,0,368,513,661]],[[0,0,368,513,664]],[[0,0,368,513,667]],[[0,0,368,513,670]],[[0,0,368,513,673]],[[0,0,368,513,676]],[[0,0,368,513,679]],[[0,0,368,513,682]],[[0,0,368,513,685]],[[0,0,368,513,688]],[[0,0,368,513,691]],[[0,0,368,513,694]],[[0,0,368,513,697]],[[0,0,368,513,700]],[[0,0,368,513,703]],[[0,0,368,513,706]],[[0,0,368,513,709]],[[0,0,368,513,712]],[[0,0,368,513,715]],[[0,0,368,513,718]],[[0,0,368,513,721]],[[0,0,368,513,724]],[[0,0,368,513,727]],[[0,0,368,513,730]],[[0,0,368,513,733]],[[0,0,368,513,736]],[[0,0,368,513,739]],[[0,0,368,513,742]],[[0,0,368,513,745]],[[0,0,368,513,748]],[[0,0,368,513,751]],[[0,0,368,513,754]],[[0,0,368,513,757]],[[0,0,368,513,760]],[[0,0,368,513,763]],[[0,0,368,513,766]],[[0,0,368,513,769]],[[0,0,368,513,772]],[[0,0,368,513,775]],[[0,0,368,513,778]],[[0,0,368,513,781]],[[0,0,368,513,784]],[[0,0,368,513,787]],[[0,0,368,513,790]],[[0,0,368,513,793]],[[0,0,368,513,796]],[[0,0,368,513,799]],[[0,0,368,513,802]],[[0,0,368,513,805]],[[0,0,368,513,808]],[[0,0,368,513,811]],[[0,0,368,513,814]],[[0,0,368,513,817]],[[0,0,368,513,820]],[[0,0,368,513,823]],[[0,0,368,513,826]],[[0,0,368,513,829]],[[0,0,368,513,832]],[[0,0,368,513,835]],[[0,0,368,513,838]],[[0,0,368,513,841]],[[0,0,368,513,844]],[[0,0,368,513,847]],[[0,0,368,513,850]],[[0,0,368,513,853]],[[0,0,368,513,856]],[[0,0,368,513,859]],[[0,0,368,513,862]],[[0,0,368,513,865]],[[0,0,368,513,868]],[[0,0,368,513,871]],[[0,0,368,513,874]],[[0,0,368,513,877]],[[0,0,368,513,880]],[[0,0,368,513,883]],[[0,0,368,513,886]],[[0,0,368,513,889]],[[0,0,368,513,892]],[[0,0,368,513,895]],[[0,0,368,513,898]],[[0,0,368,513,901]],[[0,0,368,513,904]],[[0,0,368,513,907]],[[0,0,368,513,910]],[[0,0,368,513,913]],[[0,0,368,513,916]],[[0,0,368,513,919]],[[0,0,368,513,922]],[[0,0,368,513,925]],[[0,0,368,513,928]],[[0,0,368,513,931]],[[0,0,368,513,934]],[[0,0,368,513,937]],[[0,0,368,513,940]],[[0,0,368,513,943]],[[0,0,368,513,946]],[[0,0,368,513,949]],[[0,0,368,513,952]],[[0,0,368,513,955]],[[0,0,368,513,958]],[[0,0,368,513,961]],[[0,0,368,513,964]],[[0,0,368,513,967]],[[0,0,368,513,970]],[[0,0,368,513,973]],[[0,0,368,513,976]],[[0,0,368,513,979]],[[0,0,368,513,982]],[[0,0,368,513,985]],[[0,0,368,513,988]],[[0,0,368,513,991]],[[0,0,368,513,994]],[[0,0,368,513,997]],[[0,0,368,513,1000]],[[0,0,368,513,1003]],[[0,0,368,513,1006]],[[0,0,368,513,1009]],[[0,0,368,513,1012]],[[0,0,368,513,1015]],[[0,0,368,513,1018]],[[0,0,368,513,2797]],[[0,0,368,513,2798]],[[0,0,368,513,2799]],[[0,0,368,513,2800]],[[0,0,368,513,2801]],[[0,0,368,513,2802]],[[0,0,368,513,2803]],[[0,0,368,513,2804]],[[0,0,368,513,2805]],[[0,0,368,513,2806]],[[0,0,368,513,2807]],[[0,0,368,513,2808]],[[0,0,368,513,2809]],[[0,0,368,513,2810]],[[0,0,368,513,2811]],[[0,0,368,513,2812]],[[0,0,368,513,2813]],[[0,0,368,513,2814]],[[0,0,368,513,2815]],[[0,0,368,513,2816]],[[0,0,368,513,2817]],[[0,0,368,513,2818]],[[0,0,368,513,2819]],[[0,0,368,513,2820]],[[0,0,368,513,2821]],[[0,0,368,513,2822]],[[0,0,368,513,2823]],[[0,0,368,513,2824]],[[0,0,368,513,2825]],[[0,0,368,513,2826]],[[0,0,368,513,2827]],[[0,0,368,513,2828]],[[0,0,368,513,2829]],[[0,0,368,513,2830]],[[0,0,368,513,2831]],[[0,0,368,513,2832]],[[0,0,368,513,2833]],[[0,0,368,513,2834]],[[0,0,368,513,2835]],[[0,0,368,513,2836]],[[0,0,368,513,2837]],[[0,0,368,513,2838]],[[0,0,368,513,2839]],[[0,0,368,513,2840]],[[0,0,368,513,2841]],[[0,0,368,513,2842]],[[0,0,368,513,2843]],[[0,0,368,513,2844]],[[0,0,368,513,2845]],[[0,0,368,513,2846]],[[0,0,368,513,2847]],[[0,0,368,513,2848]],[[0,0,368,513,2849]],[[0,0,368,513,2850]],[[0,0,368,513,2851]],[[0,0,368,513,2852]],[[0,0,368,513,2853]],[[0,0,368,513,2854]],[[0,0,368,513,2855]],[[0,0,368,513,2856]],[[0,0,368,513,2857]],[[0,0,368,513,2858]],[[0,0,368,513,2859]],[[0,0,368,513,2860]],[[0,0,368,513,2861]],[[0,0,368,513,2862]],[[0,0,368,513,2863]],[[0,0,368,513,2864]],[[0,0,368,513,2797]],[[0,0,368,513,2798]],[[0,0,368,513,2799]],[[0,0,368,513,2800]],[[0,0,368,513,2801]],[[0,0,368,513,2802]],[[0,0,368,513,2803]],[[0,0,368,513,2804]],[[0,0,368,513,2805]],[[0,0,368,513,2806]],[[0,0,368,513,2807]],[[0,0,368,513,2808]],[[0,0,368,513,2809]],[[0,0,368,513,2810]],[[0,0,368,513,2811]],[[0,0,368,513,2812]],[[0,0,368,513,2813]],[[0,0,368,513,2814]],[[0,0,368,513,2815]],[[0,0,368,513,2816]],[[0,0,368,513,2817]],[[0,0,368,513,2818]],[[0,0,368,513,2819]],[[0,0,368,513,2820]],[[0,0,368,513,2821]],[[0,0,368,513,2822]],[[0,0,368,513,2823]],[[0,0,368,513,2824]],[[0,0,368,513,2825]],[[0,0,368,513,2826]],[[0,0,368,513,2827]],[[0,0,368,513,2828]],[[0,0,368,513,2829]],[[0,0,368,513,2830]],[[0,0,368,513,2831]],[[0,0,368,513,2832]],[[0,0,368,513,2833]],[[0,0,368,513,2834]],[[0,0,368,513,2835]],[[0,0,368,513,2836]],[[0,0,368,513,2837]],[[0,0,368,513,2838]],[[0,0,368,513,2839]],[[0,0,368,513,2840]],[[0,0,368,513,2841]],[[0,0,368,513,2842]],[[0,0,368,513,2843]],[[0,0,368,513,2844]],[[0,0,368,513,2845]],[[0,0,368,513,2846]],[[0,0,368,513,2847]],[[0,0,368,513,2848]],[[0,0,368,513,2849]],[[0,0,368,513,2850]],[[0,0,368,513,2851]],[[0,0,368,513,2852]],[[0,0,368,513,2853]],[[0,0,368,513,2854]],[[0,0,368,513,2855]],[[0,0,368,513,2856]],[[0,0,368,513,2857]],[[0,0,368,513,2858]],[[0,0,368,513,2859]],[[0,0,368,513,2860]],[[0,0,368,513,2861]],[[0,0,368,513,2862]],[[0,0,368,513,2863]],[[0,0,368,513,2864]],[[0,0,368,513,1293]],[[0,0,368,513,1296]],[[0,0,368,513,1299]],[[0,0,368,513,1302]],[[0,0,368,513,1305]],[[0,0,368,513,1308]],[[0,0,368,513,1311]],[[0,0,368,513,1314]],[[0,0,368,513,1317]],[[0,0,368,513,1320]],[[0,0,368,513,1323]],[[0,0,368,513,1326]],[[0,0,368,513,1329]],[[0,0,368,513,1332]],[[0,0,368,513,1335]],[[0,0,368,513,1338]],[[0,0,368,513,1341]],[[0,0,368,513,1344]],[[0,0,368,513,1347]],[[0,0,368,513,1350]],[[0,0,368,513,1353]],[[0,0,368,513,1356]],[[0,0,368,513,1359]],[[0,0,368,513,1362]],[[0,0,368,513,1365]],[[0,0,368,513,1368]],[[0,0,368,513,1371]],[[0,0,368,513,1374]],[[0,0,368,513,1377]],[[0,0,368,513,1380]],[[0,0,368,513,1383]],[[0,0,368,513,1386]],[[0,0,368,513,1389]],[[0,0,368,513,1392]],[[0,0,368,513,1395]],[[0,0,368,513,1398]],[[0,0,368,513,1401]],[[0,0,368,513,1404]],[[0,0,368,513,1407]],[[0,0,368,513,1410]],[[0,0,368,513,1413]],[[0,0,368,513,1416]],[[0,0,368,513,1419]],[[0,0,368,513,1422]],[[0,0,368,513,1425]],[[0,0,368,513,1428]],[[0,0,368,513,1431]],[[0,0,368,513,1434]],[[0,0,368,513,1437]],[[0,0,368,513,1440]],[[0,0,368,513,1443]],[[0,0,368,513,1446]],[[0,0,368,513,1449]],[[0,0,368,513,1452]],[[0,0,368,513,1455]],[[0,0,368,513,1458]],[[0,0,368,513,1461]],[[0,0,368,513,1464]],[[0,0,368,513,1467]],[[0,0,368,513,1470]],[[0,0,368,513,1473]],[[0,0,368,513,1476]],[[0,0,368,513,1479]],[[0,0,368,513,1482]],[[0,0,368,513,1485]],[[0,0,368,513,1488]],[[0,0,368,513,1491]],[[0,0,368,513,1494]],[[0,0,368,513,1497]],[[0,0,368,513,1500]],[[0,0,368,513,1503]],[[0,0,368,513,1506]],[[0,0,368,513,1509]],[[0,0,368,513,1512]],[[0,0,368,513,1515]],[[0,0,368,513,1518]],[[0,0,368,513,1521]],[[0,0,368,513,1524]],[[0,0,368,513,1527]],[[0,0,368,513,1530]],[[0,0,368,513,1533]],[[0,0,368,513,1536]],[[0,0,368,513,1539]],[[0,0,368,513,1542]],[[0,0,368,513,1545]],[[0,0,368,513,1548]],[[0,0,368,513,1551]],[[0,0,368,513,1554]],[[0,0,368,513,1557]],[[0,0,368,513,1560]],[[0,0,368,513,1563]],[[0,0,368,513,1566]],[[0,0,368,513,1569]],[[0,0,368,513,1572]],[[0,0,368,513,1575]],[[0,0,368,513,1578]],[[0,0,368,513,1581]],[[0,0,368,513,1584]],[[0,0,368,513,1587]],[[0,0,368,513,1590]],[[0,0,368,513,1593]],[[0,0,368,513,1596]],[[0,0,368,513,1599]],[[0,0,368,513,1602]],[[0,0,368,513,1605]],[[0,0,368,513,1608]],[[0,0,368,513,1611]],[[0,0,368,513,1614]],[[0,0,368,513,1617]],[[0,0,368,513,1620]],[[0,0,368,513,1623]],[[0,0,368,513,1626]],[[0,0,368,513,1629]],[[0,0,368,513,1632]],[[0,0,368,513,1635]],[[0,0,368,513,1638]],[[0,0,368,513,1641]],[[0,0,368,513,1644]],[[0,0,368,513,1647]],[[0,0,368,513,1650]],[[0,0,368,513,1653]],[[0,0,368,513,1656]],[[0,0,368,513,1659]],[[0,0,368,513,1662]],[[0,0,368,513,1665]],[[0,0,368,513,1668]],[[0,0,368,513,1671]],[[0,0,368,513,1674]],[[0,0,368,513,1677]],[[0,0,368,513,1680]],[[0,0,368,513,1683]],[[0,0,368,513,1686]],[[0,0,368,513,1689]],[[0,0,368,513,1692]],[[0,0,368,513,1695]],[[0,0,368,513,1698]],[[0,0,368,513,1701]],[[0,0,368,513,1704]],[[0,0,368,513,1707]],[[0,0,368,513,1710]],[[0,0,368,513,1713]],[[0,0,368,513,1716]],[[0,0,368,513,1719]],[[0,0,368,513,1722]],[[0,0,368,513,1725]],[[0,0,368,513,1728]],[[0,0,368,513,1731]],[[0,0,368,513,1734]],[[0,0,368,513,1737]],[[0,0,368,513,1740]],[[0,0,368,513,1743]],[[0,0,368,513,1746]],[[0,0,368,513,1749]],[[0,0,368,513,1752]],[[0,0,368,513,1755]],[[0,0,368,513,1758]],[[0,0,368,513,1761]],[[0,0,368,513,1764]],[[0,0,368,513,1767]],[[0,0,368,513,1770]],[[0,0,368,513,1773]],[[0,0,368,513,1776]],[[0,0,368,513,1779]],[[0,0,368,513,1782]],[[0,0,368,513,1785]],[[0,0,368,513,1788]],[[0,0,368,513,1791]],[[0,0,368,513,1794]],[[0,0,368,513,1797]],[[0,0,368,513,1800]],[[0,0,368,513,1803]],[[0,0,368,513,1806]],[[0,0,368,513,1809]],[[0,0,368,513,1812]],[[0,0,368,513,1815]],[[0,0,368,513,1818]],[[0,0,368,513,1821]],[[0,0,368,513,1824]],[[0,0,368,513,1827]],[[0,0,368,513,1830]],[[0,0,368,513,1833]],[[0,0,368,513,1836]],[[0,0,368,513,1839]],[[0,0,368,513,1842]],[[0,0,368,513,1845]],[[0,0,368,513,1848]],[[0,0,368,513,1851]],[[0,0,368,513,1854]],[[0,0,368,513,1857]],[[0,0,368,513,1860]],[[0,0,368,513,1863]],[[0,0,368,513,1866]],[[0,0,368,513,1869]],[[0,0,368,513,1872]],[[0,0,368,513,1875]],[[0,0,368,513,1878]],[[0,0,368,513,1881]],[[0,0,368,513,1884]],[[0,0,368,513,1887]],[[0,0,368,513,1890]],[[0,0,368,513,1893]],[[0,0,368,513,1896]],[[0,0,368,513,1899]],[[0,0,368,513,1902]],[[0,0,368,513,1905]],[[0,0,368,513,1908]],[[0,0,368,513,1911]],[[0,0,368,513,1914]],[[0,0,368,513,1917]],[[0,0,368,513,1920]],[[0,0,368,513,1923]],[[0,0,368,513,1926]],[[0,0,368,513,1929]],[[0,0,368,513,1932]],[[0,0,368,513,1935]],[[0,0,368,513,1938]],[[0,0,368,513,1941]],[[0,0,368,513,1944]],[[0,0,368,513,1947]],[[0,0,368,513,1950]],[[0,0,368,513,1953]],[[0,0,368,513,1956]],[[0,0,368,513,1959]],[[0,0,368,513,1962]],[[0,0,368,513,1965]],[[0,0,368,513,1968]],[[0,0,368,513,1971]],[[0,0,368,513,1974]],[[0,0,368,513,1977]],[[0,0,368,513,1980]],[[0,0,368,513,1983]],[[0,0,368,513,1986]],[[0,0,368,513,1989]],[[0,0,368,513,1992]],[[0,0,368,513,1995]],[[0,0,368,513,1998]],[[0,0,368,513,2001]],[[0,0,368,513,2004]],[[0,0,368,513,2007]],[[0,0,368,513,2010]],[[0,0,368,513,2013]],[[0,0,368,513,2016]],[[0,0,368,513,2019]],[[0,0,368,513,2022]],[[0,0,368,513,2025]],[[0,0,368,513,2028]],[[0,0,368,513,2031]],[[0,0,368,513,2034]],[[0,0,368,513,2037]],[[0,0,368,513,2040]],[[0,0,368,513,2043]],[[0,0,368,513,2046]],[[0,0,368,513,2049]],[[0,0,368,513,2052]],[[0,0,368,513,2055]],[[0,0,368,513,2058]],[[0,0,368,513,2061]],[[0,0,368,513,2064]],[[0,0,368,513,2067]],[[0,0,368,513,2070]],[[0,0,368,513,2073]],[[0,0,368,513,2076]],[[0,0,368,513,2079]],[[0,0,368,513,2082]],[[0,0,368,513,2085]],[[0,0,368,513,2088]],[[0,0,368,513,2091]],[[0,0,368,513,2094]],[[0,0,368,513,2097]],[[0,0,368,513,2100]],[[0,0,368,513,2103]],[[0,0,368,513,2106]],[[0,0,368,513,2109]],[[0,0,368,513,2112]],[[0,0,368,513,2115]],[[0,0,368,513,2118]],[[0,0,368,513,2121]],[[0,0,368,513,2124]],[[0,0,368,513,2127]],[[0,0,368,513,2130]],[[0,0,368,513,2133]],[[0,0,368,513,2136]],[[0,0,368,513,2139]],[[0,0,368,513,2142]],[[0,0,368,513,2145]],[[0,0,368,513,2148]],[[0,0,368,513,2151]],[[0,0,368,513,2154]],[[0,0,368,513,2157]],[[0,0,368,513,2160]],[[0,0,368,513,2163]],[[0,0,368,513,2166]],[[0,0,368,513,2169]],[[0,0,368,513,2172]],[[0,0,368,513,2175]],[[0,0,368,513,2178]],[[0,0,368,513,2181]],[[0,0,368,513,2184]],[[0,0,368,513,2187]],[[0,0,368,513,2190]],[[0,0,368,513,2193]],[[0,0,368,513,2196]],[[0,0,368,513,2199]],[[0,0,368,513,2202]],[[0,0,368,513,2205]],[[0,0,368,513,2208]],[[0,0,368,513,2211]],[[0,0,368,513,2214]],[[0,0,368,513,2217]],[[0,0,368,513,2220]],[[0,0,368,513,2223]],[[0,0,368,513,2226]],[[0,0,368,513,2229]],[[0,0,368,513,2232]],[[0,0,368,513,2235]],[[0,0,368,513,2238]],[[0,0,368,513,2241]],[[0,0,368,513,2244]],[[0,0,368,513,2247]],[[0,0,368,513,2250]],[[0,0,368,513,2253]],[[0,0,368,513,2256]],[[0,0,368,513,2259]],[[0,0,368,513,2262]],[[0,0,368,513,2265]],[[0,0,368,513,2268]],[[0,0,368,513,2271]],[[0,0,368,513,2274]],[[0,0,368,513,2277]],[[0,0,368,513,2280]],[[0,0,368,513,2283]],[[0,0,368,513,2286]],[[0,0,368,513,2289]],[[0,0,368,513,2292]],[[0,0,368,513,2295]],[[0,0,368,513,2298]],[[0,0,368,513,2301]],[[0,0,368,513,2304]],[[0,0,368,513,2307]],[[0,0,368,513,2310]],[[0,0,368,513,2313]],[[0,0,368,513,2316]],[[0,0,368,513,2319]],[[0,0,368,513,2322]],[[0,0,368,513,2325]],[[0,0,368,513,2328]],[[0,0,368,513,2331]],[[0,0,368,513,2334]],[[0,0,368,513,2337]],[[0,0,368,513,2340]],[[0,0,368,513,2343]],[[0,0,368,513,2346]],[[0,0,368,513,2349]],[[0,0,368,513,2352]],[[0,0,368,513,2355]],[[0,0,368,513,2358]],[[0,0,368,513,2361]],[[0,0,368,513,2364]],[[0,0,368,513,2367]],[[0,0,368,513,2370]],[[0,0,368,513,2373]],[[0,0,368,513,2376]],[[0,0,368,513,2379]],[[0,0,368,513,2382]],[[0,0,368,513,2385]],[[0,0,368,513,2388]],[[0,0,368,513,2391]],[[0,0,368,513,2394]],[[0,0,368,513,2397]],[[0,0,368,513,2400]],[[0,0,368,513,2403]],[[0,0,368,513,2406]],[[0,0,368,513,2409]],[[0,0,368,513,2412]],[[0,0,368,513,2415]],[[0,0,368,513,2418]],[[0,0,368,513,2421]],[[0,0,368,513,2424]],[[0,0,368,513,2427]],[[0,0,368,513,2430]],[[0,0,368,513,2433]],[[0,0,368,513,2436]],[[0,0,368,513,2439]],[[0,0,368,513,2442]],[[0,0,368,513,2445]],[[0,0,368,513,2448]],[[0,0,368,513,2451]],[[0,0,368,513,2454]],[[0,0,368,513,2457]],[[0,0,368,513,2460]],[[0,0,368,513,2463]],[[0,0,368,513,2466]],[[0,0,368,513,2469]],[[0,0,368,513,2472]],[[0,0,368,513,2475]],[[0,0,368,513,2478]],[[0,0,368,513,2481]],[[0,0,368,513,2484]],[[0,0,368,513,2487]],[[0,0,368,513,2490]],[[0,0,368,513,2493]],[[0,0,368,513,2496]],[[0,0,368,513,2499]],[[0,0,368,513,2502]],[[0,0,368,513,2505]],[[0,0,368,513,2508]],[[0,0,368,513,2511]],[[0,0,368,513,2514]],[[0,0,368,513,2517]],[[0,0,368,513,2520]],[[0,0,368,513,2523]],[[0,0,368,513,2526]],[[0,0,368,513,2529]],[[0,0,368,513,2532]],[[0,0,368,513,2535]],[[0,0,368,513,2538]],[[0,0,368,513,2541]],[[0,0,368,513,2544]],[[0,0,368,513,2547]],[[0,0,368,513,2550]],[[0,0,368,513,2553]],[[0,0,368,513,2556]],[[0,0,368,513,2559]],[[0,0,368,513,2562]],[[0,0,368,513,2565]],[[0,0,368,513,2568]],[[0,0,368,513,2571]],[[0,0,368,513,2574]],[[0,0,368,513,2577]],[[0,0,368,513,2580]],[[0,0,368,513,2583]],[[0,0,368,513,2586]],[[0,0,368,513,2589]],[[0,0,368,513,2592]],[[0,0,368,513,2595]],[[0,0,368,513,2598]],[[0,0,368,513,2601]],[[0,0,368,513,2604]],[[0,0,368,513,2607]],[[0,0,368,513,2610]],[[0,0,368,513,2613]],[[0,0,368,513,2616]],[[0,0,368,513,2619]],[[0,0,368,513,2622]],[[0,0,368,513,2625]],[[0,0,368,513,2628]],[[0,0,368,513,2631]],[[0,0,368,513,2634]],[[0,0,368,513,2637]],[[0,0,368,513,2640]],[[0,0,368,513,2643]],[[0,0,368,513,2646]],[[0,0,368,513,2649]],[[0,0,368,513,2652]],[[0,0,368,513,2655]],[[0,0,368,513,2658]],[[0,0,368,513,2661]],[[0,0,368,513,2664]],[[0,0,368,513,2667]],[[0,0,368,513,2670]],[[0,0,368,513,2673]],[[0,0,368,513,2676]],[[0,0,368,513,2679]],[[0,0,368,513,2682]],[[0,0,368,513,2685]],[[0,0,368,513,2688]],[[0,0,368,513,2691]],[[0,0,368,513,2694]],[[0,0,368,513,2697]],[[0,0,368,513,2700]],[[0,0,368,513,2703]],[[0,0,368,513,2706]],[[0,0,368,513,2709]],[[0,0,368,513,2712]],[[0,0,368,513,2715]],[[0,0,368,513,2718]],[[0,0,368,513,2721]],[[0,0,368,513,2724]],[[0,0,368,513,2727]],[[0,0,368,513,2730]],[[0,0,368,513,2733]],[[0,0,368,513,2736]],[[0,0,368,513,2739]],[[0,0,368,513,2742]],[[0,0,368,513,2745]],[[0,0,368,513,2748]],[[0,0,368,513,2751]],[[0,0,368,513,2754]],[[0,0,368,513,2757]],[[0,0,368,513,2760]],[[0,0,368,513,2763]],[[0,0,368,513,2766]],[[0,0,368,513,2769]],[[0,0,368,513,2772]],[[0,0,368,513,2775]],[[0,0,368,513,2778]],[[0,0,368,513,2781]],[[0,0,368,513,2784]],[[0,0,368,513,2787]],[[0,0,368,513,2790]],[[0,0,368,513,2793]],[[0,0,368,513,2796]]],"text_len_per_page":[53,53,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54],"metadata":{"format":"PDF 1.6","title":"","author":"","subject":"","keywords":"","creator":"Adobe Acrobat 7.0","producer":"Adobe Acrobat 7.0 Image Conversion Plug-in","creationDate":"D:20080404141457+01'00'","modDate":"D:20080404144821+01'00'","trapped":"","encryption":null}} - # o = json.loads(json.dumps(o)) - # total_page = o["total_page"] - # page_width = o["page_width_pts"] - # page_height = o["page_height_pts"] - # img_sz_list = o["image_info_per_page"] - # text_len_list = o['text_len_per_page'] - # pdf_path = o['pdf_path'] - # is_encrypted = o['is_encrypted'] - # is_needs_password = o['is_needs_password'] - # if is_encrypted or total_page == 0 or is_needs_password: # 加密的,需要密码的,没有页面的,都不处理 - # print("加密的") - # exit(0) - # tag = classify(pdf_path, total_page, page_width, page_height, img_sz_list, text_len_list) - # o['is_text_pdf'] = tag - # print(json.dumps(o, ensure_ascii=False)) diff --git a/magic_pdf/filter/pdf_meta_scan.py b/magic_pdf/filter/pdf_meta_scan.py deleted file mode 100644 index 89d44878d..000000000 --- a/magic_pdf/filter/pdf_meta_scan.py +++ /dev/null @@ -1,388 +0,0 @@ -""" -输入: s3路径,每行一个 -输出: pdf文件元信息,包括每一页上的所有图片的长宽高,bbox位置 -""" -import sys -import click - -from magic_pdf.libs.commons import read_file, mymax, get_top_percent_list -from magic_pdf.libs.commons import fitz -from loguru import logger -from collections import Counter - -from magic_pdf.libs.drop_reason import DropReason -from magic_pdf.libs.language import detect_lang -from magic_pdf.libs.pdf_check import detect_invalid_chars - -scan_max_page = 50 -junk_limit_min = 10 - - -def calculate_max_image_area_per_page(result: list, page_width_pts, page_height_pts): - max_image_area_per_page = [mymax([(x1 - x0) * (y1 - y0) for x0, y0, x1, y1, _ in page_img_sz]) for page_img_sz in - result] - page_area = int(page_width_pts) * int(page_height_pts) - max_image_area_per_page = [area / page_area for area in max_image_area_per_page] - max_image_area_per_page = [area for area in max_image_area_per_page if area > 0.6] - return max_image_area_per_page - - -def process_image(page, junk_img_bojids=[]): - page_result = [] # 存每个页面里的多张图四元组信息 - items = page.get_images() - dedup = set() - for img in items: - # 这里返回的是图片在page上的实际展示的大小。返回一个数组,每个元素第一部分是 - img_bojid = img[0] # 在pdf文件中是全局唯一的,如果这个图反复出现在pdf里那么就可能是垃圾信息,例如水印、页眉页脚等 - if img_bojid in junk_img_bojids: # 如果是垃圾图像,就跳过 - continue - recs = page.get_image_rects(img, transform=True) - if recs: - rec = recs[0][0] - x0, y0, x1, y1 = map(int, rec) - width = x1 - x0 - height = y1 - y0 - if (x0, y0, x1, y1, img_bojid) in dedup: # 这里面会出现一些重复的bbox,无需重复出现,需要去掉 - continue - if not all([width, height]): # 长和宽任何一个都不能是0,否则这个图片不可见,没有实际意义 - continue - dedup.add((x0, y0, x1, y1, img_bojid)) - page_result.append([x0, y0, x1, y1, img_bojid]) - return page_result - - -def get_image_info(doc: fitz.Document, page_width_pts, page_height_pts) -> list: - """ - 返回每个页面里的图片的四元组,每个页面多个图片。 - :param doc: - :return: - """ - # 使用 Counter 计数 img_bojid 的出现次数 - img_bojid_counter = Counter(img[0] for page in doc for img in page.get_images()) - # 找出出现次数超过 len(doc) 半数的 img_bojid - - junk_limit = max(len(doc) * 0.5, junk_limit_min) # 对一些页数比较少的进行豁免 - - junk_img_bojids = [img_bojid for img_bojid, count in img_bojid_counter.items() if count >= junk_limit] - - #todo 加个判断,用前十页就行,这些垃圾图片需要满足两个条件,不止出现的次数要足够多,而且图片占书页面积的比例要足够大,且图与图大小都差不多 - #有两种扫描版,一种文字版,这里可能会有误判 - #扫描版1:每页都有所有扫描页图片,特点是图占比大,每页展示1张 - #扫描版2,每页存储的扫描页图片数量递增,特点是图占比大,每页展示1张,需要清空junklist跑前50页图片信息用于分类判断 - #文字版1.每页存储所有图片,特点是图片占页面比例不大,每页展示可能为0也可能不止1张 这种pdf需要拿前10页抽样检测img大小和个数,如果符合需要清空junklist - imgs_len_list = [len(page.get_images()) for page in doc] - - special_limit_pages = 10 - - # 统一用前十页结果做判断 - result = [] - break_loop = False - for i, page in enumerate(doc): - if break_loop: - break - if i >= special_limit_pages: - break - page_result = process_image(page) # 这里不传junk_img_bojids,拿前十页所有图片信息用于后续分析 - result.append(page_result) - for item in result: - if not any(item): # 如果任何一页没有图片,说明是个文字版,需要判断是否为特殊文字版 - if max(imgs_len_list) == min(imgs_len_list) and max( - imgs_len_list) >= junk_limit_min: # 如果是特殊文字版,就把junklist置空并break - junk_img_bojids = [] - else: # 不是特殊文字版,是个普通文字版,但是存在垃圾图片,不置空junklist - pass - break_loop = True - break - if not break_loop: - # 获取前80%的元素 - top_eighty_percent = get_top_percent_list(imgs_len_list, 0.8) - # 检查前80%的元素是否都相等 - if len(set(top_eighty_percent)) == 1 and max(imgs_len_list) >= junk_limit_min: - - # # 如果前10页跑完都有图,根据每页图片数量是否相等判断是否需要清除junklist - # if max(imgs_len_list) == min(imgs_len_list) and max(imgs_len_list) >= junk_limit_min: - - #前10页都有图,且每页数量一致,需要检测图片大小占页面的比例判断是否需要清除junklist - max_image_area_per_page = calculate_max_image_area_per_page(result, page_width_pts, page_height_pts) - if len(max_image_area_per_page) < 0.8 * special_limit_pages: # 前10页不全是大图,说明可能是个文字版pdf,把垃圾图片list置空 - junk_img_bojids = [] - else: # 前10页都有图,而且80%都是大图,且每页图片数量一致并都很多,说明是扫描版1,不需要清空junklist - pass - else: # 每页图片数量不一致,需要清掉junklist全量跑前50页图片 - junk_img_bojids = [] - - #正式进入取前50页图片的信息流程 - result = [] - for i, page in enumerate(doc): - if i >= scan_max_page: - break - page_result = process_image(page, junk_img_bojids) - # logger.info(f"page {i} img_len: {len(page_result)}") - result.append(page_result) - - return result, junk_img_bojids - - -def get_pdf_page_size_pts(doc: fitz.Document): - page_cnt = len(doc) - l: int = min(page_cnt, 50) - #把所有宽度和高度塞到两个list 分别取中位数(中间遇到了个在纵页里塞横页的pdf,导致宽高互换了) - page_width_list = [] - page_height_list = [] - for i in range(l): - page = doc[i] - page_rect = page.rect - page_width_list.append(page_rect.width) - page_height_list.append(page_rect.height) - - page_width_list.sort() - page_height_list.sort() - - median_width = page_width_list[len(page_width_list) // 2] - median_height = page_height_list[len(page_height_list) // 2] - - return median_width, median_height - - -def get_pdf_textlen_per_page(doc: fitz.Document): - text_len_lst = [] - for page in doc: - # 拿包含img和text的所有blocks - # text_block = page.get_text("blocks") - # 拿所有text的blocks - # text_block = page.get_text("words") - # text_block_len = sum([len(t[4]) for t in text_block]) - #拿所有text的str - text_block = page.get_text("text") - text_block_len = len(text_block) - # logger.info(f"page {page.number} text_block_len: {text_block_len}") - text_len_lst.append(text_block_len) - - return text_len_lst - - -def get_pdf_text_layout_per_page(doc: fitz.Document): - """ - 根据PDF文档的每一页文本布局,判断该页的文本布局是横向、纵向还是未知。 - - Args: - doc (fitz.Document): PDF文档对象。 - - Returns: - List[str]: 每一页的文本布局(横向、纵向、未知)。 - - """ - text_layout_list = [] - - for page_id, page in enumerate(doc): - if page_id >= scan_max_page: - break - # 创建每一页的纵向和横向的文本行数计数器 - vertical_count = 0 - horizontal_count = 0 - text_dict = page.get_text("dict") - if "blocks" in text_dict: - for block in text_dict["blocks"]: - if 'lines' in block: - for line in block["lines"]: - # 获取line的bbox顶点坐标 - x0, y0, x1, y1 = line['bbox'] - # 计算bbox的宽高 - width = x1 - x0 - height = y1 - y0 - # 计算bbox的面积 - area = width * height - font_sizes = [] - for span in line['spans']: - if 'size' in span: - font_sizes.append(span['size']) - if len(font_sizes) > 0: - average_font_size = sum(font_sizes) / len(font_sizes) - else: - average_font_size = 10 # 有的line拿不到font_size,先定一个阈值100 - if area <= average_font_size ** 2: # 判断bbox的面积是否小于平均字体大小的平方,单字无法计算是横向还是纵向 - continue - else: - if 'wmode' in line: # 通过wmode判断文本方向 - if line['wmode'] == 1: # 判断是否为竖向文本 - vertical_count += 1 - elif line['wmode'] == 0: # 判断是否为横向文本 - horizontal_count += 1 - # if 'dir' in line: # 通过旋转角度计算判断文本方向 - # # 获取行的 "dir" 值 - # dir_value = line['dir'] - # cosine, sine = dir_value - # # 计算角度 - # angle = math.degrees(math.acos(cosine)) - # - # # 判断是否为横向文本 - # if abs(angle - 0) < 0.01 or abs(angle - 180) < 0.01: - # # line_text = ' '.join(span['text'] for span in line['spans']) - # # print('This line is horizontal:', line_text) - # horizontal_count += 1 - # # 判断是否为纵向文本 - # elif abs(angle - 90) < 0.01 or abs(angle - 270) < 0.01: - # # line_text = ' '.join(span['text'] for span in line['spans']) - # # print('This line is vertical:', line_text) - # vertical_count += 1 - # print(f"page_id: {page_id}, vertical_count: {vertical_count}, horizontal_count: {horizontal_count}") - # 判断每一页的文本布局 - if vertical_count == 0 and horizontal_count == 0: # 该页没有文本,无法判断 - text_layout_list.append("unknow") - continue - else: - if vertical_count > horizontal_count: # 该页的文本纵向行数大于横向的 - text_layout_list.append("vertical") - else: # 该页的文本横向行数大于纵向的 - text_layout_list.append("horizontal") - # logger.info(f"page_id: {page_id}, vertical_count: {vertical_count}, horizontal_count: {horizontal_count}") - return text_layout_list - - -'''定义一个自定义异常用来抛出单页svg太多的pdf''' - - -class PageSvgsTooManyError(Exception): - def __init__(self, message="Page SVGs are too many"): - self.message = message - super().__init__(self.message) - - -def get_svgs_per_page(doc: fitz.Document): - svgs_len_list = [] - for page_id, page in enumerate(doc): - # svgs = page.get_drawings() - svgs = page.get_cdrawings() # 切换成get_cdrawings,效率更高 - len_svgs = len(svgs) - if len_svgs >= 3000: - raise PageSvgsTooManyError() - else: - svgs_len_list.append(len_svgs) - # logger.info(f"page_id: {page_id}, svgs_len: {len(svgs)}") - return svgs_len_list - - -def get_imgs_per_page(doc: fitz.Document): - imgs_len_list = [] - for page_id, page in enumerate(doc): - imgs = page.get_images() - imgs_len_list.append(len(imgs)) - # logger.info(f"page_id: {page}, imgs_len: {len(imgs)}") - - return imgs_len_list - - -def get_language(doc: fitz.Document): - """ - 获取PDF文档的语言。 - Args: - doc (fitz.Document): PDF文档对象。 - Returns: - str: 文档语言,如 "en-US"。 - """ - language_lst = [] - for page_id, page in enumerate(doc): - if page_id >= scan_max_page: - break - # 拿所有text的str - text_block = page.get_text("text") - page_language = detect_lang(text_block) - language_lst.append(page_language) - - # logger.info(f"page_id: {page_id}, page_language: {page_language}") - - # 统计text_language_list中每种语言的个数 - count_dict = Counter(language_lst) - # 输出text_language_list中出现的次数最多的语言 - language = max(count_dict, key=count_dict.get) - return language - - -def check_invalid_chars(pdf_bytes): - """ - 乱码检测 - """ - return detect_invalid_chars(pdf_bytes) - - -def pdf_meta_scan(pdf_bytes: bytes): - """ - :param s3_pdf_path: - :param pdf_bytes: pdf文件的二进制数据 - 几个维度来评价:是否加密,是否需要密码,纸张大小,总页数,是否文字可提取 - """ - doc = fitz.open("pdf", pdf_bytes) - is_needs_password = doc.needs_pass - is_encrypted = doc.is_encrypted - total_page = len(doc) - if total_page == 0: - logger.warning(f"drop this pdf, drop_reason: {DropReason.EMPTY_PDF}") - result = {"_need_drop": True, "_drop_reason": DropReason.EMPTY_PDF} - return result - else: - page_width_pts, page_height_pts = get_pdf_page_size_pts(doc) - # logger.info(f"page_width_pts: {page_width_pts}, page_height_pts: {page_height_pts}") - - # svgs_per_page = get_svgs_per_page(doc) - # logger.info(f"svgs_per_page: {svgs_per_page}") - imgs_per_page = get_imgs_per_page(doc) - # logger.info(f"imgs_per_page: {imgs_per_page}") - - image_info_per_page, junk_img_bojids = get_image_info(doc, page_width_pts, page_height_pts) - # logger.info(f"image_info_per_page: {image_info_per_page}, junk_img_bojids: {junk_img_bojids}") - text_len_per_page = get_pdf_textlen_per_page(doc) - # logger.info(f"text_len_per_page: {text_len_per_page}") - text_layout_per_page = get_pdf_text_layout_per_page(doc) - # logger.info(f"text_layout_per_page: {text_layout_per_page}") - text_language = get_language(doc) - # logger.info(f"text_language: {text_language}") - invalid_chars = check_invalid_chars(pdf_bytes) - # logger.info(f"invalid_chars: {invalid_chars}") - - # 最后输出一条json - res = { - "is_needs_password": is_needs_password, - "is_encrypted": is_encrypted, - "total_page": total_page, - "page_width_pts": int(page_width_pts), - "page_height_pts": int(page_height_pts), - "image_info_per_page": image_info_per_page, - "text_len_per_page": text_len_per_page, - "text_layout_per_page": text_layout_per_page, - "text_language": text_language, - # "svgs_per_page": svgs_per_page, - "imgs_per_page": imgs_per_page, # 增加每页img数量list - "junk_img_bojids": junk_img_bojids, # 增加垃圾图片的bojid list - "invalid_chars": invalid_chars, - "metadata": doc.metadata - } - # logger.info(json.dumps(res, ensure_ascii=False)) - return res - - -@click.command() -@click.option('--s3-pdf-path', help='s3上pdf文件的路径') -@click.option('--s3-profile', help='s3上的profile') -def main(s3_pdf_path: str, s3_profile: str): - """ - - """ - try: - file_content = read_file(s3_pdf_path, s3_profile) - pdf_meta_scan(file_content) - except Exception as e: - print(f"ERROR: {s3_pdf_path}, {e}", file=sys.stderr) - logger.exception(e) - - -if __name__ == '__main__': - main() - # "D:\project/20231108code-clean\pdf_cost_time\竖排例子\净空法师-大乘无量寿.pdf" - # "D:\project/20231108code-clean\pdf_cost_time\竖排例子\三国演义_繁体竖排版.pdf" - # "D:\project/20231108code-clean\pdf_cost_time\scihub\scihub_86800000\libgen.scimag86880000-86880999.zip_10.1021/acsami.1c03109.s002.pdf" - # "D:/project/20231108code-clean/pdf_cost_time/scihub/scihub_18600000/libgen.scimag18645000-18645999.zip_10.1021/om3006239.pdf" - # file_content = read_file("D:/project/20231108code-clean/pdf_cost_time/scihub/scihub_31000000/libgen.scimag31098000-31098999.zip_10.1109/isit.2006.261791.pdf","") - # file_content = read_file("D:\project/20231108code-clean\pdf_cost_time\竖排例子\净空法师_大乘无量寿.pdf","") - # doc = fitz.open("pdf", file_content) - # text_layout_lst = get_pdf_text_layout_per_page(doc) - # print(text_layout_lst) diff --git a/magic_pdf/integrations/__init__.py b/magic_pdf/integrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/integrations/rag/__init__.py b/magic_pdf/integrations/rag/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/integrations/rag/api.py b/magic_pdf/integrations/rag/api.py deleted file mode 100644 index 5c05f9116..000000000 --- a/magic_pdf/integrations/rag/api.py +++ /dev/null @@ -1,82 +0,0 @@ -import os -from pathlib import Path - -from loguru import logger - -from magic_pdf.integrations.rag.type import (ElementRelation, LayoutElements, - Node) -from magic_pdf.integrations.rag.utils import inference - - -class RagPageReader: - - def __init__(self, pagedata: LayoutElements): - self.o = [ - Node( - category_type=v.category_type, - text=v.text, - image_path=v.image_path, - anno_id=v.anno_id, - latex=v.latex, - html=v.html, - ) for v in pagedata.layout_dets - ] - - self.pagedata = pagedata - - def __iter__(self): - return iter(self.o) - - def get_rel_map(self) -> list[ElementRelation]: - return self.pagedata.extra.element_relation - - -class RagDocumentReader: - - def __init__(self, ragdata: list[LayoutElements]): - self.o = [RagPageReader(v) for v in ragdata] - - def __iter__(self): - return iter(self.o) - - -class DataReader: - - def __init__(self, path_or_directory: str, method: str, output_dir: str): - self.path_or_directory = path_or_directory - self.method = method - self.output_dir = output_dir - self.pdfs = [] - if os.path.isdir(path_or_directory): - for doc_path in Path(path_or_directory).glob('*.pdf'): - self.pdfs.append(doc_path) - else: - assert path_or_directory.endswith('.pdf') - self.pdfs.append(Path(path_or_directory)) - - def get_documents_count(self) -> int: - """Returns the number of documents in the directory.""" - return len(self.pdfs) - - def get_document_result(self, idx: int) -> RagDocumentReader | None: - """ - Args: - idx (int): the index of documents under the - directory path_or_directory - - Returns: - RagDocumentReader | None: RagDocumentReader is an iterable object, - more details @RagDocumentReader - """ - if idx >= self.get_documents_count() or idx < 0: - logger.error(f'invalid idx: {idx}') - return None - res = inference(str(self.pdfs[idx]), self.output_dir, self.method) - if res is None: - logger.warning(f'failed to inference pdf {self.pdfs[idx]}') - return None - return RagDocumentReader(res) - - def get_document_filename(self, idx: int) -> Path: - """get the filename of the document.""" - return self.pdfs[idx] diff --git a/magic_pdf/integrations/rag/type.py b/magic_pdf/integrations/rag/type.py deleted file mode 100644 index 11258af39..000000000 --- a/magic_pdf/integrations/rag/type.py +++ /dev/null @@ -1,82 +0,0 @@ -from enum import Enum - -from pydantic import BaseModel, Field - - -# rag -class CategoryType(Enum): # py310 not support StrEnum - text = 'text' - title = 'title' - interline_equation = 'interline_equation' - image = 'image' - image_body = 'image_body' - image_caption = 'image_caption' - table = 'table' - table_body = 'table_body' - table_caption = 'table_caption' - table_footnote = 'table_footnote' - - -class ElementRelType(Enum): - sibling = 'sibling' - - -class PageInfo(BaseModel): - page_no: int = Field(description='the index of page, start from zero', - ge=0) - height: int = Field(description='the height of page', gt=0) - width: int = Field(description='the width of page', ge=0) - image_path: str | None = Field(description='the image of this page', - default=None) - - -class ContentObject(BaseModel): - category_type: CategoryType = Field(description='类别') - poly: list[float] = Field( - description=('Coordinates, need to convert back to PDF coordinates,' - ' order is top-left, top-right, bottom-right, bottom-left' - ' x,y coordinates')) - ignore: bool = Field(description='whether ignore this object', - default=False) - text: str | None = Field(description='text content of the object', - default=None) - image_path: str | None = Field(description='path of embedded image', - default=None) - order: int = Field(description='the order of this object within a page', - default=-1) - anno_id: int = Field(description='unique id', default=-1) - latex: str | None = Field(description='latex result', default=None) - html: str | None = Field(description='html result', default=None) - - -class ElementRelation(BaseModel): - source_anno_id: int = Field(description='unique id of the source object', - default=-1) - target_anno_id: int = Field(description='unique id of the target object', - default=-1) - relation: ElementRelType = Field( - description='the relation between source and target element') - - -class LayoutElementsExtra(BaseModel): - element_relation: list[ElementRelation] = Field( - description='the relation between source and target element') - - -class LayoutElements(BaseModel): - layout_dets: list[ContentObject] = Field( - description='layout element details') - page_info: PageInfo = Field(description='page info') - extra: LayoutElementsExtra = Field(description='extra information') - - -# iter data format -class Node(BaseModel): - category_type: CategoryType = Field(description='类别') - text: str | None = Field(description='text content of the object', - default=None) - image_path: str | None = Field(description='path of embedded image', - default=None) - anno_id: int = Field(description='unique id', default=-1) - latex: str | None = Field(description='latex result', default=None) - html: str | None = Field(description='html result', default=None) diff --git a/magic_pdf/integrations/rag/utils.py b/magic_pdf/integrations/rag/utils.py deleted file mode 100644 index ed736ffbc..000000000 --- a/magic_pdf/integrations/rag/utils.py +++ /dev/null @@ -1,285 +0,0 @@ -import json -import os -from pathlib import Path - -from loguru import logger - -import magic_pdf.model as model_config -from magic_pdf.dict2md.ocr_mkcontent import merge_para_with_text -from magic_pdf.integrations.rag.type import (CategoryType, ContentObject, - ElementRelation, ElementRelType, - LayoutElements, - LayoutElementsExtra, PageInfo) -from magic_pdf.libs.ocr_content_type import BlockType, ContentType -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter -from magic_pdf.tools.common import do_parse, prepare_env - - -def convert_middle_json_to_layout_elements( - json_data: dict, - output_dir: str, -) -> list[LayoutElements]: - uniq_anno_id = 0 - - res: list[LayoutElements] = [] - for page_no, page_data in enumerate(json_data['pdf_info']): - order_id = 0 - page_info = PageInfo( - height=int(page_data['page_size'][1]), - width=int(page_data['page_size'][0]), - page_no=page_no, - ) - layout_dets: list[ContentObject] = [] - extra_element_relation: list[ElementRelation] = [] - - for para_block in page_data['para_blocks']: - para_text = '' - para_type = para_block['type'] - - if para_type == BlockType.Text: - para_text = merge_para_with_text(para_block) - x0, y0, x1, y1 = para_block['bbox'] - content = ContentObject( - anno_id=uniq_anno_id, - category_type=CategoryType.text, - text=para_text, - order=order_id, - poly=[x0, y0, x1, y0, x1, y1, x0, y1], - ) - uniq_anno_id += 1 - order_id += 1 - layout_dets.append(content) - - elif para_type == BlockType.Title: - para_text = merge_para_with_text(para_block) - x0, y0, x1, y1 = para_block['bbox'] - content = ContentObject( - anno_id=uniq_anno_id, - category_type=CategoryType.title, - text=para_text, - order=order_id, - poly=[x0, y0, x1, y0, x1, y1, x0, y1], - ) - uniq_anno_id += 1 - order_id += 1 - layout_dets.append(content) - - elif para_type == BlockType.InterlineEquation: - para_text = merge_para_with_text(para_block) - x0, y0, x1, y1 = para_block['bbox'] - content = ContentObject( - anno_id=uniq_anno_id, - category_type=CategoryType.interline_equation, - text=para_text, - order=order_id, - poly=[x0, y0, x1, y0, x1, y1, x0, y1], - ) - uniq_anno_id += 1 - order_id += 1 - layout_dets.append(content) - - elif para_type == BlockType.Image: - body_anno_id = -1 - caption_anno_id = -1 - - for block in para_block['blocks']: - if block['type'] == BlockType.ImageBody: - for line in block['lines']: - for span in line['spans']: - if span['type'] == ContentType.Image: - x0, y0, x1, y1 = block['bbox'] - content = ContentObject( - anno_id=uniq_anno_id, - category_type=CategoryType.image_body, - image_path=os.path.join( - output_dir, span['image_path']), - order=order_id, - poly=[x0, y0, x1, y0, x1, y1, x0, y1], - ) - body_anno_id = uniq_anno_id - uniq_anno_id += 1 - order_id += 1 - layout_dets.append(content) - - for block in para_block['blocks']: - if block['type'] == BlockType.ImageCaption: - para_text += merge_para_with_text(block) - x0, y0, x1, y1 = block['bbox'] - content = ContentObject( - anno_id=uniq_anno_id, - category_type=CategoryType.image_caption, - text=para_text, - order=order_id, - poly=[x0, y0, x1, y0, x1, y1, x0, y1], - ) - caption_anno_id = uniq_anno_id - uniq_anno_id += 1 - order_id += 1 - layout_dets.append(content) - - if body_anno_id > 0 and caption_anno_id > 0: - element_relation = ElementRelation( - relation=ElementRelType.sibling, - source_anno_id=body_anno_id, - target_anno_id=caption_anno_id, - ) - extra_element_relation.append(element_relation) - - elif para_type == BlockType.Table: - body_anno_id, caption_anno_id, footnote_anno_id = -1, -1, -1 - - for block in para_block['blocks']: - if block['type'] == BlockType.TableCaption: - para_text += merge_para_with_text(block) - x0, y0, x1, y1 = block['bbox'] - content = ContentObject( - anno_id=uniq_anno_id, - category_type=CategoryType.table_caption, - text=para_text, - order=order_id, - poly=[x0, y0, x1, y0, x1, y1, x0, y1], - ) - caption_anno_id = uniq_anno_id - uniq_anno_id += 1 - order_id += 1 - layout_dets.append(content) - - for block in para_block['blocks']: - if block['type'] == BlockType.TableBody: - for line in block['lines']: - for span in line['spans']: - if span['type'] == ContentType.Table: - x0, y0, x1, y1 = para_block['bbox'] - content = ContentObject( - anno_id=uniq_anno_id, - category_type=CategoryType.table_body, - order=order_id, - poly=[x0, y0, x1, y0, x1, y1, x0, y1], - ) - body_anno_id = uniq_anno_id - uniq_anno_id += 1 - order_id += 1 - # if processed by table model - if span.get('latex', ''): - content.latex = span['latex'] - else: - content.image_path = os.path.join( - output_dir, span['image_path']) - layout_dets.append(content) - - for block in para_block['blocks']: - if block['type'] == BlockType.TableFootnote: - para_text += merge_para_with_text(block) - x0, y0, x1, y1 = block['bbox'] - content = ContentObject( - anno_id=uniq_anno_id, - category_type=CategoryType.table_footnote, - text=para_text, - order=order_id, - poly=[x0, y0, x1, y0, x1, y1, x0, y1], - ) - footnote_anno_id = uniq_anno_id - uniq_anno_id += 1 - order_id += 1 - layout_dets.append(content) - - if caption_anno_id != -1 and body_anno_id != -1: - element_relation = ElementRelation( - relation=ElementRelType.sibling, - source_anno_id=body_anno_id, - target_anno_id=caption_anno_id, - ) - extra_element_relation.append(element_relation) - - if footnote_anno_id != -1 and body_anno_id != -1: - element_relation = ElementRelation( - relation=ElementRelType.sibling, - source_anno_id=body_anno_id, - target_anno_id=footnote_anno_id, - ) - extra_element_relation.append(element_relation) - - res.append( - LayoutElements( - page_info=page_info, - layout_dets=layout_dets, - extra=LayoutElementsExtra( - element_relation=extra_element_relation), - )) - - return res - - -def inference(path, output_dir, method): - model_config.__use_inside_model__ = True - model_config.__model_mode__ = 'full' - if output_dir == '': - if os.path.isdir(path): - output_dir = os.path.join(path, 'output') - else: - output_dir = os.path.join(os.path.dirname(path), 'output') - - local_image_dir, local_md_dir = prepare_env(output_dir, - str(Path(path).stem), method) - - def read_fn(path): - disk_rw = DiskReaderWriter(os.path.dirname(path)) - return disk_rw.read(os.path.basename(path), AbsReaderWriter.MODE_BIN) - - def parse_doc(doc_path: str): - try: - file_name = str(Path(doc_path).stem) - pdf_data = read_fn(doc_path) - do_parse( - output_dir, - file_name, - pdf_data, - [], - method, - False, - f_draw_span_bbox=False, - f_draw_layout_bbox=False, - f_dump_md=False, - f_dump_middle_json=True, - f_dump_model_json=False, - f_dump_orig_pdf=False, - f_dump_content_list=False, - f_draw_model_bbox=False, - ) - - middle_json_fn = os.path.join(local_md_dir, - f'{file_name}_middle.json') - with open(middle_json_fn) as fd: - jso = json.load(fd) - os.remove(middle_json_fn) - return convert_middle_json_to_layout_elements(jso, local_image_dir) - - except Exception as e: - logger.exception(e) - - return parse_doc(path) - - -if __name__ == '__main__': - import pprint - - base_dir = '/opt/data/pdf/resources/samples/' - if 0: - with open(base_dir + 'json_outputs/middle.json') as f: - d = json.load(f) - result = convert_middle_json_to_layout_elements(d, '/tmp') - pprint.pp(result) - if 0: - with open(base_dir + 'json_outputs/middle.3.json') as f: - d = json.load(f) - result = convert_middle_json_to_layout_elements(d, '/tmp') - pprint.pp(result) - - if 1: - res = inference( - base_dir + 'samples/pdf/one_page_with_table_image.pdf', - '/tmp/output', - 'ocr', - ) - pprint.pp(res) diff --git a/magic_pdf/layout/__init__.py b/magic_pdf/layout/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/layout/bbox_sort.py b/magic_pdf/layout/bbox_sort.py deleted file mode 100644 index 5e1508ff5..000000000 --- a/magic_pdf/layout/bbox_sort.py +++ /dev/null @@ -1,681 +0,0 @@ -# 定义这里的bbox是一个list [x0, y0, x1, y1, block_content, idx_x, idx_y, content_type, ext_x0, ext_y0, ext_x1, ext_y1], 初始时候idx_x, idx_y都是None -# 其中x0, y0代表左上角坐标,x1, y1代表右下角坐标,坐标原点在左上角。 - - - -from magic_pdf.layout.layout_spiler_recog import get_spilter_of_page -from magic_pdf.libs.boxbase import _is_in, _is_in_or_part_overlap, _is_vertical_full_overlap -from magic_pdf.libs.commons import mymax - -X0_IDX = 0 -Y0_IDX = 1 -X1_IDX = 2 -Y1_IDX = 3 -CONTENT_IDX = 4 -IDX_X = 5 -IDX_Y = 6 -CONTENT_TYPE_IDX = 7 - -X0_EXT_IDX = 8 -Y0_EXT_IDX = 9 -X1_EXT_IDX = 10 -Y1_EXT_IDX = 11 - - -def prepare_bboxes_for_layout_split(image_info, image_backup_info, table_info, inline_eq_info, interline_eq_info, text_raw_blocks: dict, page_boundry, page): - """ - text_raw_blocks:结构参考test/assets/papre/pymu_textblocks.json - 把bbox重新组装成一个list,每个元素[x0, y0, x1, y1, block_content, idx_x, idx_y, content_type, ext_x0, ext_y0, ext_x1, ext_y1], 初始时候idx_x, idx_y都是None. 对于图片、公式来说,block_content是图片的地址, 对于段落来说,block_content是pymupdf里的block结构 - """ - all_bboxes = [] - - for image in image_info: - box = image['bbox'] - # 由于没有实现横向的栏切分,因此在这里先过滤掉一些小的图片。这些图片有可能影响layout,造成没有横向栏切分的情况下,layout切分不准确。例如 scihub_76500000/libgen.scimag76570000-76570999.zip_10.1186/s13287-019-1355-1 - # 把长宽都小于50的去掉 - if abs(box[0]-box[2]) < 50 and abs(box[1]-box[3]) < 50: - continue - all_bboxes.append([box[0], box[1], box[2], box[3], None, None, None, 'image', None, None, None, None]) - - for table in table_info: - box = table['bbox'] - all_bboxes.append([box[0], box[1], box[2], box[3], None, None, None, 'table', None, None, None, None]) - - """由于公式与段落混合,因此公式不再参与layout划分,无需加入all_bboxes""" - # 加入文本block - text_block_temp = [] - for block in text_raw_blocks: - bbox = block['bbox'] - text_block_temp.append([bbox[0], bbox[1], bbox[2], bbox[3], None, None, None, 'text', None, None, None, None]) - - text_block_new = resolve_bbox_overlap_for_layout_det(text_block_temp) - text_block_new = filter_lines_bbox(text_block_new) # 去掉线条bbox,有可能让layout探测陷入无限循环 - - - """找出会影响layout的色块、横向分割线""" - spilter_bboxes = get_spilter_of_page(page, [b['bbox'] for b in image_info]+[b['bbox'] for b in image_backup_info], [b['bbox'] for b in table_info], ) - # 还要去掉存在于spilter_bboxes里的text_block - if len(spilter_bboxes) > 0: - text_block_new = [box for box in text_block_new if not any([_is_in_or_part_overlap(box[:4], spilter_bbox) for spilter_bbox in spilter_bboxes])] - - for bbox in text_block_new: - all_bboxes.append([bbox[0], bbox[1], bbox[2], bbox[3], None, None, None, 'text', None, None, None, None]) - - for bbox in spilter_bboxes: - all_bboxes.append([bbox[0], bbox[1], bbox[2], bbox[3], None, None, None, 'spilter', None, None, None, None]) - - - return all_bboxes - -def resolve_bbox_overlap_for_layout_det(bboxes:list): - """ - 1. 去掉bbox互相包含的,去掉被包含的 - 2. 上下方向上如果有重叠,就扩大大box范围,直到覆盖小box - """ - def _is_in_other_bbox(i:int): - """ - 判断i个box是否被其他box有所包含 - """ - for j in range(0, len(bboxes)): - if j!=i and _is_in(bboxes[i][:4], bboxes[j][:4]): - return True - # elif j!=i and _is_bottom_full_overlap(bboxes[i][:4], bboxes[j][:4]): - # return True - - return False - - # 首先去掉被包含的bbox - new_bbox_1 = [] - for i in range(0, len(bboxes)): - if not _is_in_other_bbox(i): - new_bbox_1.append(bboxes[i]) - - # 其次扩展大的box - new_box = [] - new_bbox_2 = [] - len_1 = len(new_bbox_2) - while True: - merged_idx = [] - for i in range(0, len(new_bbox_1)): - if i in merged_idx: - continue - for j in range(i+1, len(new_bbox_1)): - if j in merged_idx: - continue - bx1 = new_bbox_1[i] - bx2 = new_bbox_1[j] - if i!=j and _is_vertical_full_overlap(bx1[:4], bx2[:4]): - merged_box = min([bx1[0], bx2[0]]), min([bx1[1], bx2[1]]), max([bx1[2], bx2[2]]), max([bx1[3], bx2[3]]) - new_bbox_2.append(merged_box) - merged_idx.append(i) - merged_idx.append(j) - - for i in range(0, len(new_bbox_1)): # 没有合并的加入进来 - if i not in merged_idx: - new_bbox_2.append(new_bbox_1[i]) - - if len(new_bbox_2)==0 or len_1==len(new_bbox_2): - break - else: - len_1 = len(new_bbox_2) - new_box = new_bbox_2 - new_bbox_1, new_bbox_2 = new_bbox_2, [] - - return new_box - - -def filter_lines_bbox(bboxes: list): - """ - 过滤掉bbox为空的行 - """ - new_box = [] - for box in bboxes: - x0, y0, x1, y1 = box[0], box[1], box[2], box[3] - if abs(x0-x1)<=1 or abs(y0-y1)<=1: - continue - else: - new_box.append(box) - return new_box - - -################################################################################ -# 第一种排序算法 -# 以下是基于延长线遮挡做的一个算法 -# -################################################################################ -def find_all_left_bbox(this_bbox, all_bboxes) -> list: - """ - 寻找this_bbox左边的所有bbox - """ - left_boxes = [box for box in all_bboxes if box[X1_IDX] <= this_bbox[X0_IDX]] - return left_boxes - - -def find_all_top_bbox(this_bbox, all_bboxes) -> list: - """ - 寻找this_bbox上面的所有bbox - """ - top_boxes = [box for box in all_bboxes if box[Y1_IDX] <= this_bbox[Y0_IDX]] - return top_boxes - - -def get_and_set_idx_x(this_bbox, all_bboxes) -> int: - """ - 寻找this_bbox在all_bboxes中的遮挡深度 idx_x - """ - if this_bbox[IDX_X] is not None: - return this_bbox[IDX_X] - else: - all_left_bboxes = find_all_left_bbox(this_bbox, all_bboxes) - if len(all_left_bboxes) == 0: - this_bbox[IDX_X] = 0 - else: - all_left_bboxes_idx = [get_and_set_idx_x(bbox, all_bboxes) for bbox in all_left_bboxes] - max_idx_x = mymax(all_left_bboxes_idx) - this_bbox[IDX_X] = max_idx_x + 1 - return this_bbox[IDX_X] - - -def get_and_set_idx_y(this_bbox, all_bboxes) -> int: - """ - 寻找this_bbox在all_bboxes中y方向的遮挡深度 idx_y - """ - if this_bbox[IDX_Y] is not None: - return this_bbox[IDX_Y] - else: - all_top_bboxes = find_all_top_bbox(this_bbox, all_bboxes) - if len(all_top_bboxes) == 0: - this_bbox[IDX_Y] = 0 - else: - all_top_bboxes_idx = [get_and_set_idx_y(bbox, all_bboxes) for bbox in all_top_bboxes] - max_idx_y = mymax(all_top_bboxes_idx) - this_bbox[IDX_Y] = max_idx_y + 1 - return this_bbox[IDX_Y] - - -def bbox_sort(all_bboxes: list): - """ - 排序 - """ - all_bboxes_idx_x = [get_and_set_idx_x(bbox, all_bboxes) for bbox in all_bboxes] - all_bboxes_idx_y = [get_and_set_idx_y(bbox, all_bboxes) for bbox in all_bboxes] - all_bboxes_idx = [(idx_x, idx_y) for idx_x, idx_y in zip(all_bboxes_idx_x, all_bboxes_idx_y)] - - all_bboxes_idx = [idx_x_y[0] * 100000 + idx_x_y[1] for idx_x_y in all_bboxes_idx] # 变换成一个点,保证能够先X,X相同时按Y排序 - all_bboxes_idx = list(zip(all_bboxes_idx, all_bboxes)) - all_bboxes_idx.sort(key=lambda x: x[0]) - sorted_bboxes = [bbox for idx, bbox in all_bboxes_idx] - return sorted_bboxes - - -################################################################################ -# 第二种排序算法 -# 下面的算法在计算idx_x和idx_y的时候不考虑延长线,而只考虑实际的长或者宽被遮挡的情况 -# -################################################################################ - -def find_left_nearest_bbox(this_bbox, all_bboxes) -> list: - """ - 在all_bboxes里找到所有右侧高度和this_bbox有重叠的bbox - """ - left_boxes = [box for box in all_bboxes if box[X1_IDX] <= this_bbox[X0_IDX] and any([ - box[Y0_IDX] < this_bbox[Y0_IDX] < box[Y1_IDX], box[Y0_IDX] < this_bbox[Y1_IDX] < box[Y1_IDX], - this_bbox[Y0_IDX] < box[Y0_IDX] < this_bbox[Y1_IDX], this_bbox[Y0_IDX] < box[Y1_IDX] < this_bbox[Y1_IDX], - box[Y0_IDX]==this_bbox[Y0_IDX] and box[Y1_IDX]==this_bbox[Y1_IDX]])] - - # 然后再过滤一下,找到水平上距离this_bbox最近的那个 - if len(left_boxes) > 0: - left_boxes.sort(key=lambda x: x[X1_IDX], reverse=True) - left_boxes = [left_boxes[0]] - else: - left_boxes = [] - return left_boxes - - -def get_and_set_idx_x_2(this_bbox, all_bboxes): - """ - 寻找this_bbox在all_bboxes中的被直接遮挡的深度 idx_x - 这个遮挡深度不考虑延长线,而是被实际的长或者宽遮挡的情况 - """ - if this_bbox[IDX_X] is not None: - return this_bbox[IDX_X] - else: - left_nearest_bbox = find_left_nearest_bbox(this_bbox, all_bboxes) - if len(left_nearest_bbox) == 0: - this_bbox[IDX_X] = 0 - else: - left_idx_x = get_and_set_idx_x_2(left_nearest_bbox[0], all_bboxes) - this_bbox[IDX_X] = left_idx_x + 1 - return this_bbox[IDX_X] - - -def find_top_nearest_bbox(this_bbox, all_bboxes) -> list: - """ - 在all_bboxes里找到所有下侧宽度和this_bbox有重叠的bbox - """ - top_boxes = [box for box in all_bboxes if box[Y1_IDX] <= this_bbox[Y0_IDX] and any([ - box[X0_IDX] < this_bbox[X0_IDX] < box[X1_IDX], box[X0_IDX] < this_bbox[X1_IDX] < box[X1_IDX], - this_bbox[X0_IDX] < box[X0_IDX] < this_bbox[X1_IDX], this_bbox[X0_IDX] < box[X1_IDX] < this_bbox[X1_IDX], - box[X0_IDX]==this_bbox[X0_IDX] and box[X1_IDX]==this_bbox[X1_IDX]])] - # 然后再过滤一下,找到水平上距离this_bbox最近的那个 - if len(top_boxes) > 0: - top_boxes.sort(key=lambda x: x[Y1_IDX], reverse=True) - top_boxes = [top_boxes[0]] - else: - top_boxes = [] - return top_boxes - - -def get_and_set_idx_y_2(this_bbox, all_bboxes): - """ - 寻找this_bbox在all_bboxes中的被直接遮挡的深度 idx_y - 这个遮挡深度不考虑延长线,而是被实际的长或者宽遮挡的情况 - """ - if this_bbox[IDX_Y] is not None: - return this_bbox[IDX_Y] - else: - top_nearest_bbox = find_top_nearest_bbox(this_bbox, all_bboxes) - if len(top_nearest_bbox) == 0: - this_bbox[IDX_Y] = 0 - else: - top_idx_y = get_and_set_idx_y_2(top_nearest_bbox[0], all_bboxes) - this_bbox[IDX_Y] = top_idx_y + 1 - return this_bbox[IDX_Y] - - -def paper_bbox_sort(all_bboxes: list, page_width, page_height): - all_bboxes_idx_x = [get_and_set_idx_x_2(bbox, all_bboxes) for bbox in all_bboxes] - all_bboxes_idx_y = [get_and_set_idx_y_2(bbox, all_bboxes) for bbox in all_bboxes] - all_bboxes_idx = [(idx_x, idx_y) for idx_x, idx_y in zip(all_bboxes_idx_x, all_bboxes_idx_y)] - - all_bboxes_idx = [idx_x_y[0] * 100000 + idx_x_y[1] for idx_x_y in all_bboxes_idx] # 变换成一个点,保证能够先X,X相同时按Y排序 - all_bboxes_idx = list(zip(all_bboxes_idx, all_bboxes)) - all_bboxes_idx.sort(key=lambda x: x[0]) - sorted_bboxes = [bbox for idx, bbox in all_bboxes_idx] - return sorted_bboxes - -################################################################################ -""" -第三种排序算法, 假设page的最左侧为X0,最右侧为X1,最上侧为Y0,最下侧为Y1 -这个排序算法在第二种算法基础上增加对bbox的预处理步骤。预处理思路如下: -1. 首先在水平方向上对bbox进行扩展。扩展方法是: - - 对每个bbox,找到其左边最近的bbox(也就是y方向有重叠),然后将其左边界扩展到左边最近bbox的右边界(x1+1),这里加1是为了避免重叠。如果没有左边的bbox,那么就将其左边界扩展到page的最左侧X0。 - - 对每个bbox,找到其右边最近的bbox(也就是y方向有重叠),然后将其右边界扩展到右边最近bbox的左边界(x0-1),这里减1是为了避免重叠。如果没有右边的bbox,那么就将其右边界扩展到page的最右侧X1。 - - 经过上面2个步骤,bbox扩展到了水平方向的最大范围。[左最近bbox.x1+1, 右最近bbox.x0-1] - -2. 合并所有的连续水平方向的bbox, 合并方法是: - - 对bbox进行y方向排序,然后从上到下遍历所有bbox,如果当前bbox和下一个bbox的x0, x1等于X0, X1,那么就合并这两个bbox。 - -3. 然后在垂直方向上对bbox进行扩展。扩展方法是: - - 首先从page上切割掉合并后的水平bbox, 得到几个新的block - 针对每个block - - x0: 扎到位于左侧x=x0延长线的左侧所有的bboxes, 找到最大的x1,让x0=x1+1。如果没有,则x0=X0 - - x1: 找到位于右侧x=x1延长线右侧所有的bboxes, 找到最小的x0, 让x1=x0-1。如果没有,则x1=X1 - 随后在垂直方向上合并所有的连续的block,方法如下: - - 对block进行x方向排序,然后从左到右遍历所有block,如果当前block和下一个block的x0, x1相等,那么就合并这两个block。 - 如果垂直切分后所有小bbox都被分配到了一个block, 那么分割就完成了。这些合并后的block打上标签'GOOD_LAYOUT’ - 如果在某个垂直方向上无法被完全分割到一个block,那么就将这个block打上标签'BAD_LAYOUT'。 - 至此完成,一个页面的预处理,天然的block要么属于'GOOD_LAYOUT',要么属于'BAD_LAYOUT'。针对含有'BAD_LAYOUT'的页面,可以先按照自上而下,自左到右进行天然排序,也可以先过滤掉这种书籍。 - (完成条件下次加强:进行水平方向切分,把混乱的layout部分尽可能切割出去) -""" -################################################################################ -def find_left_neighbor_bboxes(this_bbox, all_bboxes) -> list: - """ - 在all_bboxes里找到所有右侧高度和this_bbox有重叠的bbox - 这里使用扩展之后的bbox - """ - left_boxes = [box for box in all_bboxes if box[X1_EXT_IDX] <= this_bbox[X0_EXT_IDX] and any([ - box[Y0_EXT_IDX] < this_bbox[Y0_EXT_IDX] < box[Y1_EXT_IDX], box[Y0_EXT_IDX] < this_bbox[Y1_EXT_IDX] < box[Y1_EXT_IDX], - this_bbox[Y0_EXT_IDX] < box[Y0_EXT_IDX] < this_bbox[Y1_EXT_IDX], this_bbox[Y0_EXT_IDX] < box[Y1_EXT_IDX] < this_bbox[Y1_EXT_IDX], - box[Y0_EXT_IDX]==this_bbox[Y0_EXT_IDX] and box[Y1_EXT_IDX]==this_bbox[Y1_EXT_IDX]])] - - # 然后再过滤一下,找到水平上距离this_bbox最近的那个 - if len(left_boxes) > 0: - left_boxes.sort(key=lambda x: x[X1_EXT_IDX], reverse=True) - left_boxes = left_boxes - else: - left_boxes = [] - return left_boxes - -def find_top_neighbor_bboxes(this_bbox, all_bboxes) -> list: - """ - 在all_bboxes里找到所有下侧宽度和this_bbox有重叠的bbox - 这里使用扩展之后的bbox - """ - top_boxes = [box for box in all_bboxes if box[Y1_EXT_IDX] <= this_bbox[Y0_EXT_IDX] and any([ - box[X0_EXT_IDX] < this_bbox[X0_EXT_IDX] < box[X1_EXT_IDX], box[X0_EXT_IDX] < this_bbox[X1_EXT_IDX] < box[X1_EXT_IDX], - this_bbox[X0_EXT_IDX] < box[X0_EXT_IDX] < this_bbox[X1_EXT_IDX], this_bbox[X0_EXT_IDX] < box[X1_EXT_IDX] < this_bbox[X1_EXT_IDX], - box[X0_EXT_IDX]==this_bbox[X0_EXT_IDX] and box[X1_EXT_IDX]==this_bbox[X1_EXT_IDX]])] - # 然后再过滤一下,找到水平上距离this_bbox最近的那个 - if len(top_boxes) > 0: - top_boxes.sort(key=lambda x: x[Y1_EXT_IDX], reverse=True) - top_boxes = top_boxes - else: - top_boxes = [] - return top_boxes - -def get_and_set_idx_x_2_ext(this_bbox, all_bboxes): - """ - 寻找this_bbox在all_bboxes中的被直接遮挡的深度 idx_x - 这个遮挡深度不考虑延长线,而是被实际的长或者宽遮挡的情况 - """ - if this_bbox[IDX_X] is not None: - return this_bbox[IDX_X] - else: - left_nearest_bbox = find_left_neighbor_bboxes(this_bbox, all_bboxes) - if len(left_nearest_bbox) == 0: - this_bbox[IDX_X] = 0 - else: - left_idx_x = [get_and_set_idx_x_2(b, all_bboxes) for b in left_nearest_bbox] - this_bbox[IDX_X] = mymax(left_idx_x) + 1 - return this_bbox[IDX_X] - -def get_and_set_idx_y_2_ext(this_bbox, all_bboxes): - """ - 寻找this_bbox在all_bboxes中的被直接遮挡的深度 idx_y - 这个遮挡深度不考虑延长线,而是被实际的长或者宽遮挡的情况 - """ - if this_bbox[IDX_Y] is not None: - return this_bbox[IDX_Y] - else: - top_nearest_bbox = find_top_neighbor_bboxes(this_bbox, all_bboxes) - if len(top_nearest_bbox) == 0: - this_bbox[IDX_Y] = 0 - else: - top_idx_y = [get_and_set_idx_y_2_ext(b, all_bboxes) for b in top_nearest_bbox] - this_bbox[IDX_Y] = mymax(top_idx_y) + 1 - return this_bbox[IDX_Y] - -def _paper_bbox_sort_ext(all_bboxes: list): - all_bboxes_idx_x = [get_and_set_idx_x_2_ext(bbox, all_bboxes) for bbox in all_bboxes] - all_bboxes_idx_y = [get_and_set_idx_y_2_ext(bbox, all_bboxes) for bbox in all_bboxes] - all_bboxes_idx = [(idx_x, idx_y) for idx_x, idx_y in zip(all_bboxes_idx_x, all_bboxes_idx_y)] - - all_bboxes_idx = [idx_x_y[0] * 100000 + idx_x_y[1] for idx_x_y in all_bboxes_idx] # 变换成一个点,保证能够先X,X相同时按Y排序 - all_bboxes_idx = list(zip(all_bboxes_idx, all_bboxes)) - all_bboxes_idx.sort(key=lambda x: x[0]) - sorted_bboxes = [bbox for idx, bbox in all_bboxes_idx] - return sorted_bboxes - -# =============================================================================================== -def find_left_bbox_ext_line(this_bbox, all_bboxes) -> list: - """ - 寻找this_bbox左边的所有bbox, 使用延长线 - """ - left_boxes = [box for box in all_bboxes if box[X1_IDX] <= this_bbox[X0_IDX]] - if len(left_boxes): - left_boxes.sort(key=lambda x: x[X1_IDX], reverse=True) - left_boxes = left_boxes[0] - else: - left_boxes = None - - return left_boxes - -def find_right_bbox_ext_line(this_bbox, all_bboxes) -> list: - """ - 寻找this_bbox右边的所有bbox, 使用延长线 - """ - right_boxes = [box for box in all_bboxes if box[X0_IDX] >= this_bbox[X1_IDX]] - if len(right_boxes): - right_boxes.sort(key=lambda x: x[X0_IDX]) - right_boxes = right_boxes[0] - else: - right_boxes = None - return right_boxes - -# ============================================================================================= - -def find_left_nearest_bbox_direct(this_bbox, all_bboxes) -> list: - """ - 在all_bboxes里找到所有右侧高度和this_bbox有重叠的bbox, 不用延长线并且不能像 - """ - left_boxes = [box for box in all_bboxes if box[X1_IDX] <= this_bbox[X0_IDX] and any([ - box[Y0_IDX] < this_bbox[Y0_IDX] < box[Y1_IDX], box[Y0_IDX] < this_bbox[Y1_IDX] < box[Y1_IDX], - this_bbox[Y0_IDX] < box[Y0_IDX] < this_bbox[Y1_IDX], this_bbox[Y0_IDX] < box[Y1_IDX] < this_bbox[Y1_IDX], - box[Y0_IDX]==this_bbox[Y0_IDX] and box[Y1_IDX]==this_bbox[Y1_IDX]])] - - # 然后再过滤一下,找到水平上距离this_bbox最近的那个——x1最大的那个 - if len(left_boxes) > 0: - left_boxes.sort(key=lambda x: x[X1_EXT_IDX] if x[X1_EXT_IDX] else x[X1_IDX], reverse=True) - left_boxes = left_boxes[0] - else: - left_boxes = None - return left_boxes - -def find_right_nearst_bbox_direct(this_bbox, all_bboxes) -> list: - """ - 找到在this_bbox右侧且距离this_bbox距离最近的bbox.必须是直接遮挡的那种 - """ - right_bboxes = [box for box in all_bboxes if box[X0_IDX] >= this_bbox[X1_IDX] and any([ - this_bbox[Y0_IDX] < box[Y0_IDX] < this_bbox[Y1_IDX], this_bbox[Y0_IDX] < box[Y1_IDX] < this_bbox[Y1_IDX], - box[Y0_IDX] < this_bbox[Y0_IDX] < box[Y1_IDX], box[Y0_IDX] < this_bbox[Y1_IDX] < box[Y1_IDX], - box[Y0_IDX]==this_bbox[Y0_IDX] and box[Y1_IDX]==this_bbox[Y1_IDX]])] - - if len(right_bboxes)>0: - right_bboxes.sort(key=lambda x: x[X0_EXT_IDX] if x[X0_EXT_IDX] else x[X0_IDX]) - right_bboxes = right_bboxes[0] - else: - right_bboxes = None - return right_bboxes - -def reset_idx_x_y(all_boxes:list)->list: - for box in all_boxes: - box[IDX_X] = None - box[IDX_Y] = None - - return all_boxes - -# =================================================================================================== -def find_top_nearest_bbox_direct(this_bbox, bboxes_collection) -> list: - """ - 找到在this_bbox上方且距离this_bbox距离最近的bbox.必须是直接遮挡的那种 - """ - top_bboxes = [box for box in bboxes_collection if box[Y1_IDX] <= this_bbox[Y0_IDX] and any([ - box[X0_IDX] < this_bbox[X0_IDX] < box[X1_IDX], box[X0_IDX] < this_bbox[X1_IDX] < box[X1_IDX], - this_bbox[X0_IDX] < box[X0_IDX] < this_bbox[X1_IDX], this_bbox[X0_IDX] < box[X1_IDX] < this_bbox[X1_IDX], - box[X0_IDX]==this_bbox[X0_IDX] and box[X1_IDX]==this_bbox[X1_IDX]])] - # 然后再过滤一下,找到上方距离this_bbox最近的那个 - if len(top_bboxes) > 0: - top_bboxes.sort(key=lambda x: x[Y1_IDX], reverse=True) - top_bboxes = top_bboxes[0] - else: - top_bboxes = None - return top_bboxes - -def find_bottom_nearest_bbox_direct(this_bbox, bboxes_collection) -> list: - """ - 找到在this_bbox下方且距离this_bbox距离最近的bbox.必须是直接遮挡的那种 - """ - bottom_bboxes = [box for box in bboxes_collection if box[Y0_IDX] >= this_bbox[Y1_IDX] and any([ - box[X0_IDX] < this_bbox[X0_IDX] < box[X1_IDX], box[X0_IDX] < this_bbox[X1_IDX] < box[X1_IDX], - this_bbox[X0_IDX] < box[X0_IDX] < this_bbox[X1_IDX], this_bbox[X0_IDX] < box[X1_IDX] < this_bbox[X1_IDX], - box[X0_IDX]==this_bbox[X0_IDX] and box[X1_IDX]==this_bbox[X1_IDX]])] - # 然后再过滤一下,找到水平上距离this_bbox最近的那个 - if len(bottom_bboxes) > 0: - bottom_bboxes.sort(key=lambda x: x[Y0_IDX]) - bottom_bboxes = bottom_bboxes[0] - else: - bottom_bboxes = None - return bottom_bboxes - -def find_boundry_bboxes(bboxes:list) -> tuple: - """ - 找到bboxes的边界——找到所有bbox里最小的(x0, y0), 最大的(x1, y1) - """ - x0, y0, x1, y1 = bboxes[0][X0_IDX], bboxes[0][Y0_IDX], bboxes[0][X1_IDX], bboxes[0][Y1_IDX] - for box in bboxes: - x0 = min(box[X0_IDX], x0) - y0 = min(box[Y0_IDX], y0) - x1 = max(box[X1_IDX], x1) - y1 = max(box[Y1_IDX], y1) - - return x0, y0, x1, y1 - - -def extend_bbox_vertical(bboxes:list, boundry_x0, boundry_y0, boundry_x1, boundry_y1) -> list: - """ - 在垂直方向上扩展能够直接垂直打通的bbox,也就是那些上下都没有其他box的bbox - """ - for box in bboxes: - top_nearest_bbox = find_top_nearest_bbox_direct(box, bboxes) - bottom_nearest_bbox = find_bottom_nearest_bbox_direct(box, bboxes) - if top_nearest_bbox is None and bottom_nearest_bbox is None: # 独占一列 - box[X0_EXT_IDX] = box[X0_IDX] - box[Y0_EXT_IDX] = boundry_y0 - box[X1_EXT_IDX] = box[X1_IDX] - box[Y1_EXT_IDX] = boundry_y1 - # else: - # if top_nearest_bbox is None: - # box[Y0_EXT_IDX] = boundry_y0 - # else: - # box[Y0_EXT_IDX] = top_nearest_bbox[Y1_IDX] + 1 - # if bottom_nearest_bbox is None: - # box[Y1_EXT_IDX] = boundry_y1 - # else: - # box[Y1_EXT_IDX] = bottom_nearest_bbox[Y0_IDX] - 1 - # box[X0_EXT_IDX] = box[X0_IDX] - # box[X1_EXT_IDX] = box[X1_IDX] - return bboxes - - -# =================================================================================================== - -def paper_bbox_sort_v2(all_bboxes: list, page_width:int, page_height:int): - """ - 增加预处理行为的排序: - return: - [ - { - "layout_bbox": [x0, y0, x1, y1], - "layout_label":"GOOD_LAYOUT/BAD_LAYOUT", - "content_bboxes": [] #每个元素都是[x0, y0, x1, y1, block_content, idx_x, idx_y, content_type, ext_x0, ext_y0, ext_x1, ext_y1], 并且顺序就是阅读顺序 - } - ] - """ - sorted_layouts = [] # 最后的返回结果 - page_x0, page_y0, page_x1, page_y1 = 1, 1, page_width-1, page_height-1 - - all_bboxes = paper_bbox_sort(all_bboxes) # 大致拍下序 - # 首先在水平方向上扩展独占一行的bbox - for bbox in all_bboxes: - left_nearest_bbox = find_left_nearest_bbox_direct(bbox, all_bboxes) # 非扩展线 - right_nearest_bbox = find_right_nearst_bbox_direct(bbox, all_bboxes) - if left_nearest_bbox is None and right_nearest_bbox is None: # 独占一行 - bbox[X0_EXT_IDX] = page_x0 - bbox[Y0_EXT_IDX] = bbox[Y0_IDX] - bbox[X1_EXT_IDX] = page_x1 - bbox[Y1_EXT_IDX] = bbox[Y1_IDX] - - # 此时独占一行的被成功扩展到指定的边界上,这个时候利用边界条件合并连续的bbox,成为一个group - if len(all_bboxes)==1: - return [{"layout_bbox": [page_x0, page_y0, page_x1, page_y1], "layout_label":"GOOD_LAYOUT", "content_bboxes": all_bboxes}] - if len(all_bboxes)==0: - return [] - - """ - 然后合并所有连续水平方向的bbox. - - """ - all_bboxes.sort(key=lambda x: x[Y0_IDX]) - h_bboxes = [] - h_bbox_group = [] - v_boxes = [] - - for bbox in all_bboxes: - if bbox[X0_IDX] == page_x0 and bbox[X1_IDX] == page_x1: - h_bbox_group.append(bbox) - else: - if len(h_bbox_group)>0: - h_bboxes.append(h_bbox_group) - h_bbox_group = [] - # 最后一个group - if len(h_bbox_group)>0: - h_bboxes.append(h_bbox_group) - - """ - 现在h_bboxes里面是所有的group了,每个group都是一个list - 对h_bboxes里的每个group进行计算放回到sorted_layouts里 - """ - for gp in h_bboxes: - gp.sort(key=lambda x: x[Y0_IDX]) - block_info = {"layout_label":"GOOD_LAYOUT", "content_bboxes": gp} - # 然后计算这个group的layout_bbox,也就是最小的x0,y0, 最大的x1,y1 - x0, y0, x1, y1 = gp[0][X0_EXT_IDX], gp[0][Y0_EXT_IDX], gp[-1][X1_EXT_IDX], gp[-1][Y1_EXT_IDX] - block_info["layout_bbox"] = [x0, y0, x1, y1] - sorted_layouts.append(block_info) - - # 接下来利用这些连续的水平bbox的layout_bbox的y0, y1,从水平上切分开其余的为几个部分 - h_split_lines = [page_y0] - for gp in h_bboxes: - layout_bbox = gp['layout_bbox'] - y0, y1 = layout_bbox[1], layout_bbox[3] - h_split_lines.append(y0) - h_split_lines.append(y1) - h_split_lines.append(page_y1) - - unsplited_bboxes = [] - for i in range(0, len(h_split_lines), 2): - start_y0, start_y1 = h_split_lines[i:i+2] - # 然后找出[start_y0, start_y1]之间的其他bbox,这些组成一个未分割板块 - bboxes_in_block = [bbox for bbox in all_bboxes if bbox[Y0_IDX]>=start_y0 and bbox[Y1_IDX]<=start_y1] - unsplited_bboxes.append(bboxes_in_block) - # ================== 至此,水平方向的 已经切分排序完毕==================================== - """ - 接下来针对每个非水平的部分切分垂直方向的 - 此时,只剩下了无法被完全水平打通的bbox了。对这些box,优先进行垂直扩展,然后进行垂直切分. - 分3步: - 1. 先把能完全垂直打通的隔离出去当做一个layout - 2. 其余的先垂直切分 - 3. 垂直切分之后的部分再尝试水平切分 - 4. 剩下的不能被切分的各个部分当成一个layout - """ - # 对每部分进行垂直切分 - for bboxes_in_block in unsplited_bboxes: - # 首先对这个block的bbox进行垂直方向上的扩展 - boundry_x0, boundry_y0, boundry_x1, boundry_y1 = find_boundry_bboxes(bboxes_in_block) - # 进行垂直方向上的扩展 - extended_vertical_bboxes = extend_bbox_vertical(bboxes_in_block, boundry_x0, boundry_y0, boundry_x1, boundry_y1) - # 然后对这个block进行垂直方向上的切分 - extend_bbox_vertical.sort(key=lambda x: x[X0_IDX]) # x方向上从小到大,代表了从左到右读取 - v_boxes_group = [] - for bbox in extended_vertical_bboxes: - if bbox[Y0_IDX]==boundry_y0 and bbox[Y1_IDX]==boundry_y1: - v_boxes_group.append(bbox) - else: - if len(v_boxes_group)>0: - v_boxes.append(v_boxes_group) - v_boxes_group = [] - - if len(v_boxes_group)>0: - - v_boxes.append(v_boxes_group) - - # 把连续的垂直部分加入到sorted_layouts里。注意这个时候已经是连续的垂直部分了,因为上面已经做了 - for gp in v_boxes: - gp.sort(key=lambda x: x[X0_IDX]) - block_info = {"layout_label":"GOOD_LAYOUT", "content_bboxes": gp} - # 然后计算这个group的layout_bbox,也就是最小的x0,y0, 最大的x1,y1 - x0, y0, x1, y1 = gp[0][X0_EXT_IDX], gp[0][Y0_EXT_IDX], gp[-1][X1_EXT_IDX], gp[-1][Y1_EXT_IDX] - block_info["layout_bbox"] = [x0, y0, x1, y1] - sorted_layouts.append(block_info) - - # 在垂直方向上,划分子块,也就是用贯通的垂直线进行切分。这些被切分出来的块,极大可能是可被垂直切分的,如果不能完全的垂直切分,那么尝试水平切分。都不能的则当成一个layout - v_split_lines = [boundry_x0] - for gp in v_boxes: - layout_bbox = gp['layout_bbox'] - x0, x1 = layout_bbox[0], layout_bbox[2] - v_split_lines.append(x0) - v_split_lines.append(x1) - v_split_lines.append(boundry_x1) - - reset_idx_x_y(all_bboxes) - all_boxes = _paper_bbox_sort_ext(all_bboxes) - return all_boxes - - - - - - - - diff --git a/magic_pdf/layout/layout_det_utils.py b/magic_pdf/layout/layout_det_utils.py deleted file mode 100644 index 8b2b36cc0..000000000 --- a/magic_pdf/layout/layout_det_utils.py +++ /dev/null @@ -1,182 +0,0 @@ -from magic_pdf.layout.bbox_sort import X0_EXT_IDX, X0_IDX, X1_EXT_IDX, X1_IDX, Y0_IDX, Y1_EXT_IDX, Y1_IDX -from magic_pdf.libs.boxbase import _is_bottom_full_overlap, _left_intersect, _right_intersect - - -def find_all_left_bbox_direct(this_bbox, all_bboxes) -> list: - """ - 在all_bboxes里找到所有右侧垂直方向上和this_bbox有重叠的bbox, 不用延长线 - 并且要考虑两个box左右相交的情况,如果相交了,那么右侧的box就不算最左侧。 - """ - left_boxes = [box for box in all_bboxes if box[X1_IDX] <= this_bbox[X0_IDX] - and any([ - box[Y0_IDX] < this_bbox[Y0_IDX] < box[Y1_IDX], box[Y0_IDX] < this_bbox[Y1_IDX] < box[Y1_IDX], - this_bbox[Y0_IDX] < box[Y0_IDX] < this_bbox[Y1_IDX], this_bbox[Y0_IDX] < box[Y1_IDX] < this_bbox[Y1_IDX], - box[Y0_IDX]==this_bbox[Y0_IDX] and box[Y1_IDX]==this_bbox[Y1_IDX]]) or _left_intersect(box[:4], this_bbox[:4])] - - # 然后再过滤一下,找到水平上距离this_bbox最近的那个——x1最大的那个 - if len(left_boxes) > 0: - left_boxes.sort(key=lambda x: x[X1_EXT_IDX] if x[X1_EXT_IDX] else x[X1_IDX], reverse=True) - left_boxes = left_boxes[0] - else: - left_boxes = None - return left_boxes - -def find_all_right_bbox_direct(this_bbox, all_bboxes) -> list: - """ - 找到在this_bbox右侧且距离this_bbox距离最近的bbox.必须是直接遮挡的那种 - """ - right_bboxes = [box for box in all_bboxes if box[X0_IDX] >= this_bbox[X1_IDX] - and any([ - this_bbox[Y0_IDX] < box[Y0_IDX] < this_bbox[Y1_IDX], this_bbox[Y0_IDX] < box[Y1_IDX] < this_bbox[Y1_IDX], - box[Y0_IDX] < this_bbox[Y0_IDX] < box[Y1_IDX], box[Y0_IDX] < this_bbox[Y1_IDX] < box[Y1_IDX], - box[Y0_IDX]==this_bbox[Y0_IDX] and box[Y1_IDX]==this_bbox[Y1_IDX]]) or _right_intersect(this_bbox[:4], box[:4])] - - if len(right_bboxes)>0: - right_bboxes.sort(key=lambda x: x[X0_EXT_IDX] if x[X0_EXT_IDX] else x[X0_IDX]) - right_bboxes = right_bboxes[0] - else: - right_bboxes = None - return right_bboxes - -def find_all_top_bbox_direct(this_bbox, all_bboxes) -> list: - """ - 找到在this_bbox上侧且距离this_bbox距离最近的bbox.必须是直接遮挡的那种 - """ - top_bboxes = [box for box in all_bboxes if box[Y1_IDX] <= this_bbox[Y0_IDX] and any([ - box[X0_IDX] < this_bbox[X0_IDX] < box[X1_IDX], box[X0_IDX] < this_bbox[X1_IDX] < box[X1_IDX], - this_bbox[X0_IDX] < box[X0_IDX] < this_bbox[X1_IDX], this_bbox[X0_IDX] < box[X1_IDX] < this_bbox[X1_IDX], - box[X0_IDX]==this_bbox[X0_IDX] and box[X1_IDX]==this_bbox[X1_IDX]])] - - if len(top_bboxes)>0: - top_bboxes.sort(key=lambda x: x[Y1_EXT_IDX] if x[Y1_EXT_IDX] else x[Y1_IDX], reverse=True) - top_bboxes = top_bboxes[0] - else: - top_bboxes = None - return top_bboxes - -def find_all_bottom_bbox_direct(this_bbox, all_bboxes) -> list: - """ - 找到在this_bbox下侧且距离this_bbox距离最近的bbox.必须是直接遮挡的那种 - """ - bottom_bboxes = [box for box in all_bboxes if box[Y0_IDX] >= this_bbox[Y1_IDX] and any([ - this_bbox[X0_IDX] < box[X0_IDX] < this_bbox[X1_IDX], this_bbox[X0_IDX] < box[X1_IDX] < this_bbox[X1_IDX], - box[X0_IDX] < this_bbox[X0_IDX] < box[X1_IDX], box[X0_IDX] < this_bbox[X1_IDX] < box[X1_IDX], - box[X0_IDX]==this_bbox[X0_IDX] and box[X1_IDX]==this_bbox[X1_IDX]])] - - if len(bottom_bboxes)>0: - bottom_bboxes.sort(key=lambda x: x[Y0_IDX]) - bottom_bboxes = bottom_bboxes[0] - else: - bottom_bboxes = None - return bottom_bboxes - -# =================================================================================================================== -def find_bottom_bbox_direct_from_right_edge(this_bbox, all_bboxes) -> list: - """ - 找到在this_bbox下侧且距离this_bbox距离最近的bbox.必须是直接遮挡的那种 - """ - bottom_bboxes = [box for box in all_bboxes if box[Y0_IDX] >= this_bbox[Y1_IDX] and any([ - this_bbox[X0_IDX] < box[X0_IDX] < this_bbox[X1_IDX], this_bbox[X0_IDX] < box[X1_IDX] < this_bbox[X1_IDX], - box[X0_IDX] < this_bbox[X0_IDX] < box[X1_IDX], box[X0_IDX] < this_bbox[X1_IDX] < box[X1_IDX], - box[X0_IDX]==this_bbox[X0_IDX] and box[X1_IDX]==this_bbox[X1_IDX]])] - - if len(bottom_bboxes)>0: - # y0最小, X1最大的那个,也就是box上边缘最靠近this_bbox的那个,并且还最靠右 - bottom_bboxes.sort(key=lambda x: x[Y0_IDX]) - bottom_bboxes = [box for box in bottom_bboxes if box[Y0_IDX]==bottom_bboxes[0][Y0_IDX]] - # 然后再y1相同的情况下,找到x1最大的那个 - bottom_bboxes.sort(key=lambda x: x[X1_IDX], reverse=True) - bottom_bboxes = bottom_bboxes[0] - else: - bottom_bboxes = None - return bottom_bboxes - -def find_bottom_bbox_direct_from_left_edge(this_bbox, all_bboxes) -> list: - """ - 找到在this_bbox下侧且距离this_bbox距离最近的bbox.必须是直接遮挡的那种 - """ - bottom_bboxes = [box for box in all_bboxes if box[Y0_IDX] >= this_bbox[Y1_IDX] and any([ - this_bbox[X0_IDX] < box[X0_IDX] < this_bbox[X1_IDX], this_bbox[X0_IDX] < box[X1_IDX] < this_bbox[X1_IDX], - box[X0_IDX] < this_bbox[X0_IDX] < box[X1_IDX], box[X0_IDX] < this_bbox[X1_IDX] < box[X1_IDX], - box[X0_IDX]==this_bbox[X0_IDX] and box[X1_IDX]==this_bbox[X1_IDX]])] - - if len(bottom_bboxes)>0: - # y0最小, X0最小的那个 - bottom_bboxes.sort(key=lambda x: x[Y0_IDX]) - bottom_bboxes = [box for box in bottom_bboxes if box[Y0_IDX]==bottom_bboxes[0][Y0_IDX]] - # 然后再y0相同的情况下,找到x0最小的那个 - bottom_bboxes.sort(key=lambda x: x[X0_IDX]) - bottom_bboxes = bottom_bboxes[0] - else: - bottom_bboxes = None - return bottom_bboxes - -def find_top_bbox_direct_from_left_edge(this_bbox, all_bboxes) -> list: - """ - 找到在this_bbox上侧且距离this_bbox距离最近的bbox.必须是直接遮挡的那种 - """ - top_bboxes = [box for box in all_bboxes if box[Y1_IDX] <= this_bbox[Y0_IDX] and any([ - box[X0_IDX] < this_bbox[X0_IDX] < box[X1_IDX], box[X0_IDX] < this_bbox[X1_IDX] < box[X1_IDX], - this_bbox[X0_IDX] < box[X0_IDX] < this_bbox[X1_IDX], this_bbox[X0_IDX] < box[X1_IDX] < this_bbox[X1_IDX], - box[X0_IDX]==this_bbox[X0_IDX] and box[X1_IDX]==this_bbox[X1_IDX]])] - - if len(top_bboxes)>0: - # y1最大, X0最小的那个 - top_bboxes.sort(key=lambda x: x[Y1_IDX], reverse=True) - top_bboxes = [box for box in top_bboxes if box[Y1_IDX]==top_bboxes[0][Y1_IDX]] - # 然后再y1相同的情况下,找到x0最小的那个 - top_bboxes.sort(key=lambda x: x[X0_IDX]) - top_bboxes = top_bboxes[0] - else: - top_bboxes = None - return top_bboxes - -def find_top_bbox_direct_from_right_edge(this_bbox, all_bboxes) -> list: - """ - 找到在this_bbox上侧且距离this_bbox距离最近的bbox.必须是直接遮挡的那种 - """ - top_bboxes = [box for box in all_bboxes if box[Y1_IDX] <= this_bbox[Y0_IDX] and any([ - box[X0_IDX] < this_bbox[X0_IDX] < box[X1_IDX], box[X0_IDX] < this_bbox[X1_IDX] < box[X1_IDX], - this_bbox[X0_IDX] < box[X0_IDX] < this_bbox[X1_IDX], this_bbox[X0_IDX] < box[X1_IDX] < this_bbox[X1_IDX], - box[X0_IDX]==this_bbox[X0_IDX] and box[X1_IDX]==this_bbox[X1_IDX]])] - - if len(top_bboxes)>0: - # y1最大, X1最大的那个 - top_bboxes.sort(key=lambda x: x[Y1_IDX], reverse=True) - top_bboxes = [box for box in top_bboxes if box[Y1_IDX]==top_bboxes[0][Y1_IDX]] - # 然后再y1相同的情况下,找到x1最大的那个 - top_bboxes.sort(key=lambda x: x[X1_IDX], reverse=True) - top_bboxes = top_bboxes[0] - else: - top_bboxes = None - return top_bboxes - -# =================================================================================================================== - -def get_left_edge_bboxes(all_bboxes) -> list: - """ - 返回最左边的bbox - """ - left_bboxes = [box for box in all_bboxes if find_all_left_bbox_direct(box, all_bboxes) is None] - return left_bboxes - -def get_right_edge_bboxes(all_bboxes) -> list: - """ - 返回最右边的bbox - """ - right_bboxes = [box for box in all_bboxes if find_all_right_bbox_direct(box, all_bboxes) is None] - return right_bboxes - -def fix_vertical_bbox_pos(bboxes:list): - """ - 检查这批bbox在垂直方向是否有轻微的重叠,如果重叠了,就把重叠的bbox往下移动一点 - 在x方向上必须一个包含或者被包含,或者完全重叠,不能只有部分重叠 - """ - bboxes.sort(key=lambda x: x[Y0_IDX]) # 从上向下排列 - for i in range(0, len(bboxes)): - for j in range(i+1, len(bboxes)): - if _is_bottom_full_overlap(bboxes[i][:4], bboxes[j][:4]): - # 如果两个bbox有部分重叠,那么就把下面的bbox往下移动一点 - bboxes[j][Y0_IDX] = bboxes[i][Y1_IDX] + 2 # 2是个经验值 - break - return bboxes diff --git a/magic_pdf/layout/layout_sort.py b/magic_pdf/layout/layout_sort.py deleted file mode 100644 index 383ea5bfd..000000000 --- a/magic_pdf/layout/layout_sort.py +++ /dev/null @@ -1,921 +0,0 @@ -"""对pdf上的box进行layout识别,并对内部组成的box进行排序.""" - -from loguru import logger - -from magic_pdf.layout.bbox_sort import (CONTENT_IDX, CONTENT_TYPE_IDX, - X0_EXT_IDX, X0_IDX, X1_EXT_IDX, X1_IDX, - Y0_EXT_IDX, Y0_IDX, Y1_EXT_IDX, Y1_IDX, - paper_bbox_sort) -from magic_pdf.layout.layout_det_utils import ( - find_all_bottom_bbox_direct, find_all_left_bbox_direct, - find_all_right_bbox_direct, find_all_top_bbox_direct, - find_bottom_bbox_direct_from_left_edge, - find_bottom_bbox_direct_from_right_edge, - find_top_bbox_direct_from_left_edge, find_top_bbox_direct_from_right_edge, - get_left_edge_bboxes, get_right_edge_bboxes) -from magic_pdf.libs.boxbase import get_bbox_in_boundary - -LAYOUT_V = 'V' -LAYOUT_H = 'H' -LAYOUT_UNPROC = 'U' -LAYOUT_BAD = 'B' - - -def _is_single_line_text(bbox): - """检查bbox里面的文字是否只有一行.""" - return True # TODO - box_type = bbox[CONTENT_TYPE_IDX] - if box_type != 'text': - return False - paras = bbox[CONTENT_IDX]['paras'] - text_content = '' - for para_id, para in paras.items(): # 拼装内部的段落文本 - is_title = para['is_title'] - if is_title != 0: - text_content += f"## {para['text']}" - else: - text_content += para['text'] - text_content += '\n\n' - - return bbox[CONTENT_TYPE_IDX] == 'text' and len(text_content.split('\n\n')) <= 1 - - -def _horizontal_split(bboxes: list, boundary: tuple, avg_font_size=20) -> list: - """ - 对bboxes进行水平切割 - 方法是:找到左侧和右侧都没有被直接遮挡的box,然后进行扩展,之后进行切割 - return: - 返回几个大的Layout区域 [[x0, y0, x1, y1, "h|u|v"], ], h代表水平,u代表未探测的,v代表垂直布局 - """ - sorted_layout_blocks = [] # 这是要最终返回的值 - - bound_x0, bound_y0, bound_x1, bound_y1 = boundary - all_bboxes = get_bbox_in_boundary(bboxes, boundary) - # all_bboxes = paper_bbox_sort(all_bboxes, abs(bound_x1-bound_x0), abs(bound_y1-bound_x0)) # 大致拍下序, 这个是基于直接遮挡的。 - """ - 首先在水平方向上扩展独占一行的bbox - - """ - last_h_split_line_y1 = bound_y0 # 记录下上次的水平分割线 - for i, bbox in enumerate(all_bboxes): - left_nearest_bbox = find_all_left_bbox_direct(bbox, all_bboxes) # 非扩展线 - right_nearest_bbox = find_all_right_bbox_direct(bbox, all_bboxes) - if left_nearest_bbox is None and right_nearest_bbox is None: # 独占一行 - """ - 然而,如果只是孤立的一行文字,那么就还要满足以下几个条件才可以: - 1. bbox和中心线相交。或者 - 2. 上方或者下方也存在同类水平的独占一行的bbox。 或者 - 3. TODO 加强条件:这个bbox上方和下方是同一列column,那么就不能算作独占一行 - """ - # 先检查这个bbox里是否只包含一行文字 - # is_single_line = _is_single_line_text(bbox) - """ - 这里有个点需要注意,当页面内容不是居中的时候,第一次调用传递的是page的boundary,这个时候mid_x就不是中心线了. - 所以这里计算出最紧致的boundary,然后再计算mid_x - """ - boundary_real_x0, boundary_real_x1 = min( - [bbox[X0_IDX] for bbox in all_bboxes] - ), max([bbox[X1_IDX] for bbox in all_bboxes]) - mid_x = (boundary_real_x0 + boundary_real_x1) / 2 - # 检查这个box是否内容在中心线有交 - # 必须跨过去2个字符的宽度 - is_cross_boundary_mid_line = ( - min(mid_x - bbox[X0_IDX], bbox[X1_IDX] - mid_x) > avg_font_size * 2 - ) - """ - 检查条件2 - """ - is_belong_to_col = False - """ - 检查是否能被上方col吸收,方法是: - 1. 上方非空且不是独占一行的,并且 - 2. 从上个水平分割的最大y=y1开始到当前bbox,最左侧的bbox的[min_x0, max_x1],能够覆盖当前box的[x0, x1] - """ - """ - 以迭代的方式向上找,查找范围是[bound_x0, last_h_sp, bound_x1, bbox[Y0_IDX]] - """ - # 先确定上方的y0, y0 - b_y0, b_y1 = last_h_split_line_y1, bbox[Y0_IDX] - # 然后从box开始逐个向上找到所有与box在x上有交集的box - box_to_check = [bound_x0, b_y0, bound_x1, b_y1] - bbox_in_bound_check = get_bbox_in_boundary(all_bboxes, box_to_check) - - bboxes_on_top = [] - virtual_box = bbox - while True: - b_on_top = find_all_top_bbox_direct(virtual_box, bbox_in_bound_check) - if b_on_top is not None: - bboxes_on_top.append(b_on_top) - virtual_box = [ - min([virtual_box[X0_IDX], b_on_top[X0_IDX]]), - min(virtual_box[Y0_IDX], b_on_top[Y0_IDX]), - max([virtual_box[X1_IDX], b_on_top[X1_IDX]]), - b_y1, - ] - else: - break - - # 随后确定这些box的最小x0, 最大x1 - if len(bboxes_on_top) > 0 and len(bboxes_on_top) != len( - bbox_in_bound_check - ): # virtual_box可能会膨胀到占满整个区域,这实际上就不能属于一个col了。 - min_x0, max_x1 = virtual_box[X0_IDX], virtual_box[X1_IDX] - # 然后采用一种比较粗糙的方法,看min_x0,max_x1是否与位于[bound_x0, last_h_sp, bound_x1, bbox[Y0_IDX]]之间的box有相交 - - if not any( - [ - b[X0_IDX] <= min_x0 - 1 <= b[X1_IDX] - or b[X0_IDX] <= max_x1 + 1 <= b[X1_IDX] - for b in bbox_in_bound_check - ] - ): - # 其上,下都不能被扩展成行,暂时只检查一下上方 TODO - top_nearest_bbox = find_all_top_bbox_direct(bbox, bboxes) - bottom_nearest_bbox = find_all_bottom_bbox_direct(bbox, bboxes) - if not any( - [ - top_nearest_bbox is not None - and ( - find_all_left_bbox_direct(top_nearest_bbox, bboxes) - is None - and find_all_right_bbox_direct(top_nearest_bbox, bboxes) - is None - ), - bottom_nearest_bbox is not None - and ( - find_all_left_bbox_direct(bottom_nearest_bbox, bboxes) - is None - and find_all_right_bbox_direct( - bottom_nearest_bbox, bboxes - ) - is None - ), - top_nearest_bbox is None or bottom_nearest_bbox is None, - ] - ): - is_belong_to_col = True - - # 检查是否能被下方col吸收 TODO - """ - 这里为什么没有is_cross_boundary_mid_line的条件呢? - 确实有些杂志左右两栏宽度不是对称的。 - """ - if not is_belong_to_col or is_cross_boundary_mid_line: - bbox[X0_EXT_IDX] = bound_x0 - bbox[Y0_EXT_IDX] = bbox[Y0_IDX] - bbox[X1_EXT_IDX] = bound_x1 - bbox[Y1_EXT_IDX] = bbox[Y1_IDX] - last_h_split_line_y1 = bbox[Y1_IDX] # 更新这条线 - else: - continue - """ - 此时独占一行的被成功扩展到指定的边界上,这个时候利用边界条件合并连续的bbox,成为一个group - 然后合并所有连续水平方向的bbox. - """ - all_bboxes.sort(key=lambda x: x[Y0_IDX]) - h_bboxes = [] - h_bbox_group = [] - - for bbox in all_bboxes: - if bbox[X0_EXT_IDX] == bound_x0 and bbox[X1_EXT_IDX] == bound_x1: - h_bbox_group.append(bbox) - else: - if len(h_bbox_group) > 0: - h_bboxes.append(h_bbox_group) - h_bbox_group = [] - # 最后一个group - if len(h_bbox_group) > 0: - h_bboxes.append(h_bbox_group) - """ - 现在h_bboxes里面是所有的group了,每个group都是一个list - 对h_bboxes里的每个group进行计算放回到sorted_layouts里 - """ - h_layouts = [] - for gp in h_bboxes: - gp.sort(key=lambda x: x[Y0_IDX]) - # 然后计算这个group的layout_bbox,也就是最小的x0,y0, 最大的x1,y1 - x0, y0, x1, y1 = ( - gp[0][X0_EXT_IDX], - gp[0][Y0_EXT_IDX], - gp[-1][X1_EXT_IDX], - gp[-1][Y1_EXT_IDX], - ) - h_layouts.append([x0, y0, x1, y1, LAYOUT_H]) # 水平的布局 - """ - 接下来利用这些连续的水平bbox的layout_bbox的y0, y1,从水平上切分开其余的为几个部分 - """ - h_split_lines = [bound_y0] - for gp in h_bboxes: # gp是一个list[bbox_list] - y0, y1 = gp[0][1], gp[-1][3] - h_split_lines.append(y0) - h_split_lines.append(y1) - h_split_lines.append(bound_y1) - - unsplited_bboxes = [] - for i in range(0, len(h_split_lines), 2): - start_y0, start_y1 = h_split_lines[i : i + 2] - # 然后找出[start_y0, start_y1]之间的其他bbox,这些组成一个未分割板块 - bboxes_in_block = [ - bbox - for bbox in all_bboxes - if bbox[Y0_IDX] >= start_y0 and bbox[Y1_IDX] <= start_y1 - ] - unsplited_bboxes.append(bboxes_in_block) - # 接着把未处理的加入到h_layouts里 - for bboxes_in_block in unsplited_bboxes: - if len(bboxes_in_block) == 0: - continue - x0, y0, x1, y1 = ( - bound_x0, - min([bbox[Y0_IDX] for bbox in bboxes_in_block]), - bound_x1, - max([bbox[Y1_IDX] for bbox in bboxes_in_block]), - ) - h_layouts.append([x0, y0, x1, y1, LAYOUT_UNPROC]) - - h_layouts.sort(key=lambda x: x[1]) # 按照y0排序, 也就是从上到下的顺序 - """ - 转换成如下格式返回 - """ - for layout in h_layouts: - sorted_layout_blocks.append( - { - 'layout_bbox': layout[:4], - 'layout_label': layout[4], - 'sub_layout': [], - } - ) - return sorted_layout_blocks - - -############################################################################################### -# -# 垂直方向的处理 -# -# -############################################################################################### -def _vertical_align_split_v1(bboxes: list, boundary: tuple) -> list: - """ - 计算垂直方向上的对齐, 并分割bboxes成layout。负责对一列多行的进行列维度分割。 - 如果不能完全分割,剩余部分作为layout_lable为u的layout返回 - ----------------------- - | | | - | | | - | | | - | | | - ------------------------- - 此函数会将:以上布局将会切分出来2列 - """ - sorted_layout_blocks = [] # 这是要最终返回的值 - new_boundary = [boundary[0], boundary[1], boundary[2], boundary[3]] - - v_blocks = [] - """ - 先从左到右切分 - """ - while True: - all_bboxes = get_bbox_in_boundary(bboxes, new_boundary) - left_edge_bboxes = get_left_edge_bboxes(all_bboxes) - if len(left_edge_bboxes) == 0: - break - right_split_line_x1 = max([bbox[X1_IDX] for bbox in left_edge_bboxes]) + 1 - # 然后检查这条线能不与其他bbox的左边界相交或者重合 - if any( - [bbox[X0_IDX] <= right_split_line_x1 <= bbox[X1_IDX] for bbox in all_bboxes] - ): - # 垂直切分线与某些box发生相交,说明无法完全垂直方向切分。 - break - else: # 说明成功分割出一列 - # 找到左侧边界最靠左的bbox作为layout的x0 - layout_x0 = min( - [bbox[X0_IDX] for bbox in left_edge_bboxes] - ) # 这里主要是为了画出来有一定间距 - v_blocks.append( - [ - layout_x0, - new_boundary[1], - right_split_line_x1, - new_boundary[3], - LAYOUT_V, - ] - ) - new_boundary[0] = right_split_line_x1 # 更新边界 - """ - 再从右到左切, 此时如果还是无法完全切分,那么剩余部分作为layout_lable为u的layout返回 - """ - unsplited_block = [] - while True: - all_bboxes = get_bbox_in_boundary(bboxes, new_boundary) - right_edge_bboxes = get_right_edge_bboxes(all_bboxes) - if len(right_edge_bboxes) == 0: - break - left_split_line_x0 = min([bbox[X0_IDX] for bbox in right_edge_bboxes]) - 1 - # 然后检查这条线能不与其他bbox的左边界相交或者重合 - if any( - [bbox[X0_IDX] <= left_split_line_x0 <= bbox[X1_IDX] for bbox in all_bboxes] - ): - # 这里是余下的 - unsplited_block.append( - [ - new_boundary[0], - new_boundary[1], - new_boundary[2], - new_boundary[3], - LAYOUT_UNPROC, - ] - ) - break - else: - # 找到右侧边界最靠右的bbox作为layout的x1 - layout_x1 = max([bbox[X1_IDX] for bbox in right_edge_bboxes]) - v_blocks.append( - [ - left_split_line_x0, - new_boundary[1], - layout_x1, - new_boundary[3], - LAYOUT_V, - ] - ) - new_boundary[2] = left_split_line_x0 # 更新右边界 - """ - 最后拼装成layout格式返回 - """ - for block in v_blocks: - sorted_layout_blocks.append( - { - 'layout_bbox': block[:4], - 'layout_label': block[4], - 'sub_layout': [], - } - ) - for block in unsplited_block: - sorted_layout_blocks.append( - { - 'layout_bbox': block[:4], - 'layout_label': block[4], - 'sub_layout': [], - } - ) - - # 按照x0排序 - sorted_layout_blocks.sort(key=lambda x: x['layout_bbox'][0]) - return sorted_layout_blocks - - -def _vertical_align_split_v2(bboxes: list, boundary: tuple) -> list: - """改进的 - _vertical_align_split算法,原算法会因为第二列的box由于左侧没有遮挡被认为是左侧的一部分,导致整个layout多列被识别为一列。 - 利用从左上角的box开始向下看的方法,不断扩展w_x0, w_x1,直到不能继续向下扩展,或者到达边界下边界。""" - sorted_layout_blocks = [] # 这是要最终返回的值 - new_boundary = [boundary[0], boundary[1], boundary[2], boundary[3]] - bad_boxes = [] # 被割中的box - v_blocks = [] - while True: - all_bboxes = get_bbox_in_boundary(bboxes, new_boundary) - if len(all_bboxes) == 0: - break - left_top_box = min( - all_bboxes, key=lambda x: (x[X0_IDX], x[Y0_IDX]) - ) # 这里应该加强,检查一下必须是在第一列的 TODO - start_box = [ - left_top_box[X0_IDX], - left_top_box[Y0_IDX], - left_top_box[X1_IDX], - left_top_box[Y1_IDX], - ] - w_x0, w_x1 = left_top_box[X0_IDX], left_top_box[X1_IDX] - """ - 然后沿着这个box线向下找最近的那个box, 然后扩展w_x0, w_x1 - 扩展之后,宽度会增加,随后用x=w_x1来检测在边界内是否有box与相交,如果相交,那么就说明不能再扩展了。 - 当不能扩展的时候就要看是否到达下边界: - 1. 达到,那么更新左边界继续分下一个列 - 2. 没有达到,那么此时开始从右侧切分进入下面的循环里 - """ - while left_top_box is not None: # 向下去找 - virtual_box = [w_x0, left_top_box[Y0_IDX], w_x1, left_top_box[Y1_IDX]] - left_top_box = find_bottom_bbox_direct_from_left_edge( - virtual_box, all_bboxes - ) - if left_top_box: - w_x0, w_x1 = min(virtual_box[X0_IDX], left_top_box[X0_IDX]), max( - [virtual_box[X1_IDX], left_top_box[X1_IDX]] - ) - # 万一这个初始的box在column中间,那么还要向上看 - start_box = [ - w_x0, - start_box[Y0_IDX], - w_x1, - start_box[Y1_IDX], - ] # 扩展一下宽度更鲁棒 - left_top_box = find_top_bbox_direct_from_left_edge(start_box, all_bboxes) - while left_top_box is not None: # 向上去找 - virtual_box = [w_x0, left_top_box[Y0_IDX], w_x1, left_top_box[Y1_IDX]] - left_top_box = find_top_bbox_direct_from_left_edge(virtual_box, all_bboxes) - if left_top_box: - w_x0, w_x1 = min(virtual_box[X0_IDX], left_top_box[X0_IDX]), max( - [virtual_box[X1_IDX], left_top_box[X1_IDX]] - ) - - # 检查相交 - if any([bbox[X0_IDX] <= w_x1 + 1 <= bbox[X1_IDX] for bbox in all_bboxes]): - for b in all_bboxes: - if b[X0_IDX] <= w_x1 + 1 <= b[X1_IDX]: - bad_boxes.append([b[X0_IDX], b[Y0_IDX], b[X1_IDX], b[Y1_IDX]]) - break - else: # 说明成功分割出一列 - v_blocks.append([w_x0, new_boundary[1], w_x1, new_boundary[3], LAYOUT_V]) - new_boundary[0] = w_x1 # 更新边界 - """ - 接着开始从右上角的box扫描 - """ - w_x0, w_x1 = 0, 0 - unsplited_block = [] - while True: - all_bboxes = get_bbox_in_boundary(bboxes, new_boundary) - if len(all_bboxes) == 0: - break - # 先找到X1最大的 - bbox_list_sorted = sorted( - all_bboxes, key=lambda bbox: bbox[X1_IDX], reverse=True - ) - # Then, find the boxes with the smallest Y0 value - bigest_x1 = bbox_list_sorted[0][X1_IDX] - boxes_with_bigest_x1 = [ - bbox for bbox in bbox_list_sorted if bbox[X1_IDX] == bigest_x1 - ] # 也就是最靠右的那些 - right_top_box = min( - boxes_with_bigest_x1, key=lambda bbox: bbox[Y0_IDX] - ) # y0最小的那个 - start_box = [ - right_top_box[X0_IDX], - right_top_box[Y0_IDX], - right_top_box[X1_IDX], - right_top_box[Y1_IDX], - ] - w_x0, w_x1 = right_top_box[X0_IDX], right_top_box[X1_IDX] - - while right_top_box is not None: - virtual_box = [w_x0, right_top_box[Y0_IDX], w_x1, right_top_box[Y1_IDX]] - right_top_box = find_bottom_bbox_direct_from_right_edge( - virtual_box, all_bboxes - ) - if right_top_box: - w_x0, w_x1 = min([w_x0, right_top_box[X0_IDX]]), max( - [w_x1, right_top_box[X1_IDX]] - ) - # 在向上扫描 - start_box = [ - w_x0, - start_box[Y0_IDX], - w_x1, - start_box[Y1_IDX], - ] # 扩展一下宽度更鲁棒 - right_top_box = find_top_bbox_direct_from_right_edge(start_box, all_bboxes) - while right_top_box is not None: - virtual_box = [w_x0, right_top_box[Y0_IDX], w_x1, right_top_box[Y1_IDX]] - right_top_box = find_top_bbox_direct_from_right_edge( - virtual_box, all_bboxes - ) - if right_top_box: - w_x0, w_x1 = min([w_x0, right_top_box[X0_IDX]]), max( - [w_x1, right_top_box[X1_IDX]] - ) - - # 检查是否与其他box相交, 垂直切分线与某些box发生相交,说明无法完全垂直方向切分。 - if any([bbox[X0_IDX] <= w_x0 - 1 <= bbox[X1_IDX] for bbox in all_bboxes]): - unsplited_block.append( - [ - new_boundary[0], - new_boundary[1], - new_boundary[2], - new_boundary[3], - LAYOUT_UNPROC, - ] - ) - for b in all_bboxes: - if b[X0_IDX] <= w_x0 - 1 <= b[X1_IDX]: - bad_boxes.append([b[X0_IDX], b[Y0_IDX], b[X1_IDX], b[Y1_IDX]]) - break - else: # 说明成功分割出一列 - v_blocks.append([w_x0, new_boundary[1], w_x1, new_boundary[3], LAYOUT_V]) - new_boundary[2] = w_x0 - """转换数据结构""" - for block in v_blocks: - sorted_layout_blocks.append( - { - 'layout_bbox': block[:4], - 'layout_label': block[4], - 'sub_layout': [], - } - ) - - for block in unsplited_block: - sorted_layout_blocks.append( - { - 'layout_bbox': block[:4], - 'layout_label': block[4], - 'sub_layout': [], - 'bad_boxes': bad_boxes, # 记录下来,这个box是被割中的 - } - ) - - # 按照x0排序 - sorted_layout_blocks.sort(key=lambda x: x['layout_bbox'][0]) - return sorted_layout_blocks - - -def _try_horizontal_mult_column_split(bboxes: list, boundary: tuple) -> list: - """ - 尝试水平切分,如果切分不动,那就当一个BAD_LAYOUT返回 - ------------------ - | | | - ------------------ - | | | | <- 这里是此函数要切分的场景 - ------------------ - | | | - | | | - """ - pass - - -def _vertical_split(bboxes: list, boundary: tuple) -> list: - """ - 从垂直方向进行切割,分block - 这个版本里,如果垂直切分不动,那就当一个BAD_LAYOUT返回 - - -------------------------- - | | | - | | | - | | - 这种列是此函数要切分的 -> | | - | | - | | | - | | | - ------------------------- - """ - sorted_layout_blocks = [] # 这是要最终返回的值 - - bound_x0, bound_y0, bound_x1, bound_y1 = boundary - all_bboxes = get_bbox_in_boundary(bboxes, boundary) - """ - all_bboxes = fix_vertical_bbox_pos(all_bboxes) # 垂直方向解覆盖 - all_bboxes = fix_hor_bbox_pos(all_bboxes) # 水平解覆盖 - - 这两行代码目前先不执行,因为公式检测,表格检测还不是很成熟,导致非常多的textblock参与了运算,时间消耗太大。 - 这两行代码的作用是: - 如果遇到互相重叠的bbox, 那么会把面积较小的box进行压缩,从而避免重叠。对布局切分来说带来正反馈。 - """ - - # all_bboxes = paper_bbox_sort(all_bboxes, abs(bound_x1-bound_x0), abs(bound_y1-bound_x0)) # 大致拍下序, 这个是基于直接遮挡的。 - """ - 首先在垂直方向上扩展独占一行的bbox - - """ - for bbox in all_bboxes: - top_nearest_bbox = find_all_top_bbox_direct(bbox, all_bboxes) # 非扩展线 - bottom_nearest_bbox = find_all_bottom_bbox_direct(bbox, all_bboxes) - if ( - top_nearest_bbox is None - and bottom_nearest_bbox is None - and not any( - [ - b[X0_IDX] < bbox[X1_IDX] < b[X1_IDX] - or b[X0_IDX] < bbox[X0_IDX] < b[X1_IDX] - for b in all_bboxes - ] - ) - ): # 独占一列, 且不和其他重叠 - bbox[X0_EXT_IDX] = bbox[X0_IDX] - bbox[Y0_EXT_IDX] = bound_y0 - bbox[X1_EXT_IDX] = bbox[X1_IDX] - bbox[Y1_EXT_IDX] = bound_y1 - """ - 此时独占一列的被成功扩展到指定的边界上,这个时候利用边界条件合并连续的bbox,成为一个group - 然后合并所有连续垂直方向的bbox. - """ - all_bboxes.sort(key=lambda x: x[X0_IDX]) - # fix: 这里水平方向的列不要合并成一个行,因为需要保证返回给下游的最小block,总是可以无脑从上到下阅读文字。 - v_bboxes = [] - for box in all_bboxes: - if box[Y0_EXT_IDX] == bound_y0 and box[Y1_EXT_IDX] == bound_y1: - v_bboxes.append(box) - """ - 现在v_bboxes里面是所有的group了,每个group都是一个list - 对v_bboxes里的每个group进行计算放回到sorted_layouts里 - """ - v_layouts = [] - for vbox in v_bboxes: - # gp.sort(key=lambda x: x[X0_IDX]) - # 然后计算这个group的layout_bbox,也就是最小的x0,y0, 最大的x1,y1 - x0, y0, x1, y1 = ( - vbox[X0_EXT_IDX], - vbox[Y0_EXT_IDX], - vbox[X1_EXT_IDX], - vbox[Y1_EXT_IDX], - ) - v_layouts.append([x0, y0, x1, y1, LAYOUT_V]) # 垂直的布局 - """ - 接下来利用这些连续的垂直bbox的layout_bbox的x0, x1,从垂直上切分开其余的为几个部分 - """ - v_split_lines = [bound_x0] - for gp in v_bboxes: - x0, x1 = gp[X0_IDX], gp[X1_IDX] - v_split_lines.append(x0) - v_split_lines.append(x1) - v_split_lines.append(bound_x1) - - unsplited_bboxes = [] - for i in range(0, len(v_split_lines), 2): - start_x0, start_x1 = v_split_lines[i : i + 2] - # 然后找出[start_x0, start_x1]之间的其他bbox,这些组成一个未分割板块 - bboxes_in_block = [ - bbox - for bbox in all_bboxes - if bbox[X0_IDX] >= start_x0 and bbox[X1_IDX] <= start_x1 - ] - unsplited_bboxes.append(bboxes_in_block) - # 接着把未处理的加入到v_layouts里 - for bboxes_in_block in unsplited_bboxes: - if len(bboxes_in_block) == 0: - continue - x0, y0, x1, y1 = ( - min([bbox[X0_IDX] for bbox in bboxes_in_block]), - bound_y0, - max([bbox[X1_IDX] for bbox in bboxes_in_block]), - bound_y1, - ) - v_layouts.append( - [x0, y0, x1, y1, LAYOUT_UNPROC] - ) # 说明这篇区域未能够分析出可靠的版面 - - v_layouts.sort(key=lambda x: x[0]) # 按照x0排序, 也就是从左到右的顺序 - - for layout in v_layouts: - sorted_layout_blocks.append( - { - 'layout_bbox': layout[:4], - 'layout_label': layout[4], - 'sub_layout': [], - } - ) - """ - 至此,垂直方向切成了2种类型,其一是独占一列的,其二是未处理的。 - 下面对这些未处理的进行垂直方向切分,这个切分要切出来类似“吕”这种类型的垂直方向的布局 - """ - for i, layout in enumerate(sorted_layout_blocks): - if layout['layout_label'] == LAYOUT_UNPROC: - x0, y0, x1, y1 = layout['layout_bbox'] - v_split_layouts = _vertical_align_split_v2(bboxes, [x0, y0, x1, y1]) - sorted_layout_blocks[i] = { - 'layout_bbox': [x0, y0, x1, y1], - 'layout_label': LAYOUT_H, - 'sub_layout': v_split_layouts, - } - layout['layout_label'] = LAYOUT_H # 被垂线切分成了水平布局 - - return sorted_layout_blocks - - -def split_layout(bboxes: list, boundary: tuple, page_num: int) -> list: - """ - 把bboxes切割成layout - return: - [ - { - "layout_bbox": [x0,y0,x1,y1], - "layout_label":"u|v|h|b", 未处理|垂直|水平|BAD_LAYOUT - "sub_layout":[] #每个元素都是[ - x0,y0, - x1,y1, - block_content, - idx_x,idx_y, - content_type, - ext_x0,ext_y0, - ext_x1,ext_y1 - ], 并且顺序就是阅读顺序 - } - ] - example: - [ - { - "layout_bbox": [0, 0, 100, 100], - "layout_label":"u|v|h|b", - "sub_layout":[ - - ] - }, - { - "layout_bbox": [0, 0, 100, 100], - "layout_label":"u|v|h|b", - "sub_layout":[ - { - "layout_bbox": [0, 0, 100, 100], - "layout_label":"u|v|h|b", - "content_bboxes":[ - [], - [], - [] - ] - }, - { - "layout_bbox": [0, 0, 100, 100], - "layout_label":"u|v|h|b", - "sub_layout":[ - - ] - } - } - ] - """ - sorted_layouts = [] # 最终返回的结果 - - boundary_x0, boundary_y0, boundary_x1, boundary_y1 = boundary - if len(bboxes) <= 1: - return [ - { - 'layout_bbox': [boundary_x0, boundary_y0, boundary_x1, boundary_y1], - 'layout_label': LAYOUT_V, - 'sub_layout': [], - } - ] - """ - 接下来按照先水平后垂直的顺序进行切分 - """ - bboxes = paper_bbox_sort( - bboxes, boundary_x1 - boundary_x0, boundary_y1 - boundary_y0 - ) - sorted_layouts = _horizontal_split(bboxes, boundary) # 通过水平分割出来的layout - for i, layout in enumerate(sorted_layouts): - x0, y0, x1, y1 = layout['layout_bbox'] - layout_type = layout['layout_label'] - if layout_type == LAYOUT_UNPROC: # 说明是非独占单行的,这些需要垂直切分 - v_split_layouts = _vertical_split(bboxes, [x0, y0, x1, y1]) - """ - 最后这里有个逻辑问题:如果这个函数只分离出来了一个column layout,那么这个layout分割肯定超出了算法能力范围。因为我们假定的是传进来的 - box已经把行全部剥离了,所以这里必须十多个列才可以。如果只剥离出来一个layout,并且是多个box,那么就说明这个layout是无法分割的,标记为LAYOUT_UNPROC - """ - layout_label = LAYOUT_V - if len(v_split_layouts) == 1: - if len(v_split_layouts[0]['sub_layout']) == 0: - layout_label = LAYOUT_UNPROC - # logger.warning(f"WARNING: pageno={page_num}, 无法分割的layout: ", v_split_layouts) - """ - 组合起来最终的layout - """ - sorted_layouts[i] = { - 'layout_bbox': [x0, y0, x1, y1], - 'layout_label': layout_label, - 'sub_layout': v_split_layouts, - } - layout['layout_label'] = LAYOUT_H - """ - 水平和垂直方向都切分完毕了。此时还有一些未处理的,这些未处理的可能是因为水平和垂直方向都无法切分。 - 这些最后调用_try_horizontal_mult_block_split做一次水平多个block的联合切分,如果也不能切分最终就当做BAD_LAYOUT返回 - """ - # TODO - - return sorted_layouts - - -def get_bboxes_layout(all_boxes: list, boundary: tuple, page_id: int): - """ - 对利用layout排序之后的box,进行排序 - return: - [ - { - "layout_bbox": [x0, y0, x1, y1], - "layout_label":"u|v|h|b", 未处理|垂直|水平|BAD_LAYOUT - }, - ] - """ - - def _preorder_traversal(layout): - """对sorted_layouts的叶子节点,也就是len(sub_layout)==0的节点进行排序。排序按照前序遍历的顺序,也就是从上到 - 下,从左到右的顺序.""" - sorted_layout_blocks = [] - for layout in layout: - sub_layout = layout['sub_layout'] - if len(sub_layout) == 0: - sorted_layout_blocks.append(layout) - else: - s = _preorder_traversal(sub_layout) - sorted_layout_blocks.extend(s) - return sorted_layout_blocks - - # ------------------------------------------------------------------------------------------------------------------------- - sorted_layouts = split_layout( - all_boxes, boundary, page_id - ) # 先切分成layout,得到一个Tree - total_sorted_layout_blocks = _preorder_traversal(sorted_layouts) - return total_sorted_layout_blocks, sorted_layouts - - -def get_columns_cnt_of_layout(layout_tree): - """获取一个layout的宽度.""" - max_width_list = [0] # 初始化一个元素,防止max,min函数报错 - - for items in layout_tree: # 针对每一层(横切)计算列数,横着的算一列 - layout_type = items['layout_label'] - sub_layouts = items['sub_layout'] - if len(sub_layouts) == 0: - max_width_list.append(1) - else: - if layout_type == LAYOUT_H: - max_width_list.append(1) - else: - width = 0 - for sub_layout in sub_layouts: - if len(sub_layout['sub_layout']) == 0: - width += 1 - else: - for lay in sub_layout['sub_layout']: - width += get_columns_cnt_of_layout([lay]) - max_width_list.append(width) - - return max(max_width_list) - - -def sort_with_layout(bboxes: list, page_width, page_height) -> (list, list): - """输入是一个bbox的list. - - 获取到输入之后,先进行layout切分,然后对这些bbox进行排序。返回排序后的bboxes - """ - - new_bboxes = [] - for box in bboxes: - # new_bboxes.append([box[0], box[1], box[2], box[3], None, None, None, 'text', None, None, None, None]) - new_bboxes.append( - [ - box[0], - box[1], - box[2], - box[3], - None, - None, - None, - 'text', - None, - None, - None, - None, - box[4], - ] - ) - - layout_bboxes, _ = get_bboxes_layout( - new_bboxes, tuple([0, 0, page_width, page_height]), 0 - ) - if any([lay['layout_label'] == LAYOUT_UNPROC for lay in layout_bboxes]): - logger.warning('drop this pdf, reason: 复杂版面') - return None, None - - sorted_bboxes = [] - # 利用layout bbox每次框定一些box,然后排序 - for layout in layout_bboxes: - lbox = layout['layout_bbox'] - bbox_in_layout = get_bbox_in_boundary(new_bboxes, lbox) - sorted_bbox = paper_bbox_sort( - bbox_in_layout, lbox[2] - lbox[0], lbox[3] - lbox[1] - ) - sorted_bboxes.extend(sorted_bbox) - - return sorted_bboxes, layout_bboxes - - -def sort_text_block(text_block, layout_bboxes): - """对一页的text_block进行排序.""" - sorted_text_bbox = [] - all_text_bbox = [] - # 做一个box=>text的映射 - box_to_text = {} - for blk in text_block: - box = blk['bbox'] - box_to_text[(box[0], box[1], box[2], box[3])] = blk - all_text_bbox.append(box) - - # text_blocks_to_sort = [] - # for box in box_to_text.keys(): - # text_blocks_to_sort.append([box[0], box[1], box[2], box[3], None, None, None, 'text', None, None, None, None]) - - # 按照layout_bboxes的顺序,对text_block进行排序 - for layout in layout_bboxes: - layout_box = layout['layout_bbox'] - text_bbox_in_layout = get_bbox_in_boundary( - all_text_bbox, - [ - layout_box[0] - 1, - layout_box[1] - 1, - layout_box[2] + 1, - layout_box[3] + 1, - ], - ) - # sorted_bbox = paper_bbox_sort(text_bbox_in_layout, layout_box[2]-layout_box[0], layout_box[3]-layout_box[1]) - text_bbox_in_layout.sort( - key=lambda x: x[1] - ) # 一个layout内部的box,按照y0自上而下排序 - # sorted_bbox = [[b] for b in text_blocks_to_sort] - for sb in text_bbox_in_layout: - sorted_text_bbox.append(box_to_text[(sb[0], sb[1], sb[2], sb[3])]) - - return sorted_text_bbox diff --git a/magic_pdf/layout/layout_spiler_recog.py b/magic_pdf/layout/layout_spiler_recog.py deleted file mode 100644 index ea9d0410f..000000000 --- a/magic_pdf/layout/layout_spiler_recog.py +++ /dev/null @@ -1,101 +0,0 @@ -""" -找到能分割布局的水平的横线、色块 -""" - -import os -from magic_pdf.libs.commons import fitz -from magic_pdf.libs.boxbase import _is_in_or_part_overlap - - -def __rect_filter_by_width(rect, page_w, page_h): - mid_x = page_w/2 - if rect[0]< mid_x < rect[2]: - return True - return False - - -def __rect_filter_by_pos(rect, image_bboxes, table_bboxes): - """ - 不能出现在table和image的位置 - """ - for box in image_bboxes: - if _is_in_or_part_overlap(rect, box): - return False - - for box in table_bboxes: - if _is_in_or_part_overlap(rect, box): - return False - - return True - - -def __debug_show_page(page, bboxes1: list,bboxes2: list,bboxes3: list,): - save_path = "./tmp/debug.pdf" - if os.path.exists(save_path): - # 删除已经存在的文件 - os.remove(save_path) - # 创建一个新的空白 PDF 文件 - doc = fitz.open('') - - width = page.rect.width - height = page.rect.height - new_page = doc.new_page(width=width, height=height) - - shape = new_page.new_shape() - for bbox in bboxes1: - # 原始box画上去 - rect = fitz.Rect(*bbox[0:4]) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=fitz.pdfcolor['red'], fill=fitz.pdfcolor['blue'], fill_opacity=0.2) - shape.finish() - shape.commit() - - for bbox in bboxes2: - # 原始box画上去 - rect = fitz.Rect(*bbox[0:4]) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=None, fill=fitz.pdfcolor['yellow'], fill_opacity=0.2) - shape.finish() - shape.commit() - - for bbox in bboxes3: - # 原始box画上去 - rect = fitz.Rect(*bbox[0:4]) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=fitz.pdfcolor['red'], fill=None) - shape.finish() - shape.commit() - - parent_dir = os.path.dirname(save_path) - if not os.path.exists(parent_dir): - os.makedirs(parent_dir) - - doc.save(save_path) - doc.close() - -def get_spilter_of_page(page, image_bboxes, table_bboxes): - """ - 获取到色块和横线 - """ - cdrawings = page.get_cdrawings() - - spilter_bbox = [] - for block in cdrawings: - if 'fill' in block: - fill = block['fill'] - if 'fill' in block and block['fill'] and block['fill']!=(1.0,1.0,1.0): - rect = block['rect'] - if __rect_filter_by_width(rect, page.rect.width, page.rect.height) and __rect_filter_by_pos(rect, image_bboxes, table_bboxes): - spilter_bbox.append(list(rect)) - - """过滤、修正一下这些box。因为有时候会有一些矩形,高度为0或者为负数,造成layout计算无限循环。如果是负高度或者0高度,统一修正为高度为1""" - for box in spilter_bbox: - if box[3]-box[1] <= 0: - box[3] = box[1] + 1 - - #__debug_show_page(page, spilter_bbox, [], []) - - return spilter_bbox diff --git a/magic_pdf/layout/mcol_sort.py b/magic_pdf/layout/mcol_sort.py deleted file mode 100644 index f0580c26a..000000000 --- a/magic_pdf/layout/mcol_sort.py +++ /dev/null @@ -1,336 +0,0 @@ -""" -This is an advanced PyMuPDF utility for detecting multi-column pages. -It can be used in a shell script, or its main function can be imported and -invoked as descript below. - -Features ---------- -- Identify text belonging to (a variable number of) columns on the page. -- Text with different background color is handled separately, allowing for - easier treatment of side remarks, comment boxes, etc. -- Uses text block detection capability to identify text blocks and - uses the block bboxes as primary structuring principle. -- Supports ignoring footers via a footer margin parameter. -- Returns re-created text boundary boxes (integer coordinates), sorted ascending - by the top, then by the left coordinates. - -Restrictions -------------- -- Only supporting horizontal, left-to-right text -- Returns a list of text boundary boxes - not the text itself. The caller is - expected to extract text from within the returned boxes. -- Text written above images is ignored altogether (option). -- This utility works as expected in most cases. The following situation cannot - be handled correctly: - * overlapping (non-disjoint) text blocks - * image captions are not recognized and are handled like normal text - -Usage ------- -- As a CLI shell command use - - python multi_column.py input.pdf footer_margin - - Where footer margin is the height of the bottom stripe to ignore on each page. - This code is intended to be modified according to your need. - -- Use in a Python script as follows: - - ---------------------------------------------------------------------------------- - from multi_column import column_boxes - - # for each page execute - bboxes = column_boxes(page, footer_margin=50, no_image_text=True) - - # bboxes is a list of fitz.IRect objects, that are sort ascending by their y0, - # then x0 coordinates. Their text content can be extracted by all PyMuPDF - # get_text() variants, like for instance the following: - for rect in bboxes: - print(page.get_text(clip=rect, sort=True)) - ---------------------------------------------------------------------------------- -""" -import sys -from magic_pdf.libs.commons import fitz - - -def column_boxes(page, footer_margin=50, header_margin=50, no_image_text=True): - """Determine bboxes which wrap a column.""" - paths = page.get_drawings() - bboxes = [] - - # path rectangles - path_rects = [] - - # image bboxes - img_bboxes = [] - - # bboxes of non-horizontal text - # avoid when expanding horizontal text boxes - vert_bboxes = [] - - # compute relevant page area - clip = +page.rect - clip.y1 -= footer_margin # Remove footer area - clip.y0 += header_margin # Remove header area - - def can_extend(temp, bb, bboxlist): - """Determines whether rectangle 'temp' can be extended by 'bb' - without intersecting any of the rectangles contained in 'bboxlist'. - - Items of bboxlist may be None if they have been removed. - - Returns: - True if 'temp' has no intersections with items of 'bboxlist'. - """ - for b in bboxlist: - if not intersects_bboxes(temp, vert_bboxes) and ( - b == None or b == bb or (temp & b).is_empty - ): - continue - return False - - return True - - def in_bbox(bb, bboxes): - """Return 1-based number if a bbox contains bb, else return 0.""" - for i, bbox in enumerate(bboxes): - if bb in bbox: - return i + 1 - return 0 - - def intersects_bboxes(bb, bboxes): - """Return True if a bbox intersects bb, else return False.""" - for bbox in bboxes: - if not (bb & bbox).is_empty: - return True - return False - - def extend_right(bboxes, width, path_bboxes, vert_bboxes, img_bboxes): - """Extend a bbox to the right page border. - - Whenever there is no text to the right of a bbox, enlarge it up - to the right page border. - - Args: - bboxes: (list[IRect]) bboxes to check - width: (int) page width - path_bboxes: (list[IRect]) bboxes with a background color - vert_bboxes: (list[IRect]) bboxes with vertical text - img_bboxes: (list[IRect]) bboxes of images - Returns: - Potentially modified bboxes. - """ - for i, bb in enumerate(bboxes): - # do not extend text with background color - if in_bbox(bb, path_bboxes): - continue - - # do not extend text in images - if in_bbox(bb, img_bboxes): - continue - - # temp extends bb to the right page border - temp = +bb - temp.x1 = width - - # do not cut through colored background or images - if intersects_bboxes(temp, path_bboxes + vert_bboxes + img_bboxes): - continue - - # also, do not intersect other text bboxes - check = can_extend(temp, bb, bboxes) - if check: - bboxes[i] = temp # replace with enlarged bbox - - return [b for b in bboxes if b != None] - - def clean_nblocks(nblocks): - """Do some elementary cleaning.""" - - # 1. remove any duplicate blocks. - blen = len(nblocks) - if blen < 2: - return nblocks - start = blen - 1 - for i in range(start, -1, -1): - bb1 = nblocks[i] - bb0 = nblocks[i - 1] - if bb0 == bb1: - del nblocks[i] - - # 2. repair sequence in special cases: - # consecutive bboxes with almost same bottom value are sorted ascending - # by x-coordinate. - y1 = nblocks[0].y1 # first bottom coordinate - i0 = 0 # its index - i1 = -1 # index of last bbox with same bottom - - # Iterate over bboxes, identifying segments with approx. same bottom value. - # Replace every segment by its sorted version. - for i in range(1, len(nblocks)): - b1 = nblocks[i] - if abs(b1.y1 - y1) > 10: # different bottom - if i1 > i0: # segment length > 1? Sort it! - nblocks[i0 : i1 + 1] = sorted( - nblocks[i0 : i1 + 1], key=lambda b: b.x0 - ) - y1 = b1.y1 # store new bottom value - i0 = i # store its start index - i1 = i # store current index - if i1 > i0: # segment waiting to be sorted - nblocks[i0 : i1 + 1] = sorted(nblocks[i0 : i1 + 1], key=lambda b: b.x0) - return nblocks - - # extract vector graphics - for p in paths: - path_rects.append(p["rect"].irect) - path_bboxes = path_rects - - # sort path bboxes by ascending top, then left coordinates - path_bboxes.sort(key=lambda b: (b.y0, b.x0)) - - # bboxes of images on page, no need to sort them - for item in page.get_images(): - img_bboxes.extend(page.get_image_rects(item[0])) - - # blocks of text on page - blocks = page.get_text( - "dict", - flags=fitz.TEXTFLAGS_TEXT, - clip=clip, - )["blocks"] - - # Make block rectangles, ignoring non-horizontal text - for b in blocks: - bbox = fitz.IRect(b["bbox"]) # bbox of the block - - # ignore text written upon images - if no_image_text and in_bbox(bbox, img_bboxes): - continue - - # confirm first line to be horizontal - line0 = b["lines"][0] # get first line - if line0["dir"] != (1, 0): # only accept horizontal text - vert_bboxes.append(bbox) - continue - - srect = fitz.EMPTY_IRECT() - for line in b["lines"]: - lbbox = fitz.IRect(line["bbox"]) - text = "".join([s["text"].strip() for s in line["spans"]]) - if len(text) > 1: - srect |= lbbox - bbox = +srect - - if not bbox.is_empty: - bboxes.append(bbox) - - # Sort text bboxes by ascending background, top, then left coordinates - bboxes.sort(key=lambda k: (in_bbox(k, path_bboxes), k.y0, k.x0)) - - # Extend bboxes to the right where possible - bboxes = extend_right( - bboxes, int(page.rect.width), path_bboxes, vert_bboxes, img_bboxes - ) - - # immediately return of no text found - if bboxes == []: - return [] - - # -------------------------------------------------------------------- - # Join bboxes to establish some column structure - # -------------------------------------------------------------------- - # the final block bboxes on page - nblocks = [bboxes[0]] # pre-fill with first bbox - bboxes = bboxes[1:] # remaining old bboxes - - for i, bb in enumerate(bboxes): # iterate old bboxes - check = False # indicates unwanted joins - - # check if bb can extend one of the new blocks - for j in range(len(nblocks)): - nbb = nblocks[j] # a new block - - # never join across columns - if bb == None or nbb.x1 < bb.x0 or bb.x1 < nbb.x0: - continue - - # never join across different background colors - if in_bbox(nbb, path_bboxes) != in_bbox(bb, path_bboxes): - continue - - temp = bb | nbb # temporary extension of new block - check = can_extend(temp, nbb, nblocks) - if check == True: - break - - if not check: # bb cannot be used to extend any of the new bboxes - nblocks.append(bb) # so add it to the list - j = len(nblocks) - 1 # index of it - temp = nblocks[j] # new bbox added - - # check if some remaining bbox is contained in temp - check = can_extend(temp, bb, bboxes) - if check == False: - nblocks.append(bb) - else: - nblocks[j] = temp - bboxes[i] = None - - # do some elementary cleaning - nblocks = clean_nblocks(nblocks) - - # return identified text bboxes - return nblocks - - -if __name__ == "__main__": - """Only for debugging purposes, currently. - - Draw red borders around the returned text bboxes and insert - the bbox number. - Then save the file under the name "input-blocks.pdf". - """ - - # get the file name - filename = sys.argv[1] - - # check if footer margin is given - if len(sys.argv) > 2: - footer_margin = int(sys.argv[2]) - else: # use default vaue - footer_margin = 50 - - # check if header margin is given - if len(sys.argv) > 3: - header_margin = int(sys.argv[3]) - else: # use default vaue - header_margin = 50 - - # open document - doc = fitz.open(filename) - - # iterate over the pages - for page in doc: - # remove any geometry issues - page.wrap_contents() - - # get the text bboxes - bboxes = column_boxes(page, footer_margin=footer_margin, header_margin=header_margin) - - # prepare a canvas to draw rectangles and text - shape = page.new_shape() - - # iterate over the bboxes - for i, rect in enumerate(bboxes): - shape.draw_rect(rect) # draw a border - - # write sequence number - shape.insert_text(rect.tl + (5, 15), str(i), color=fitz.pdfcolor["red"]) - - # finish drawing / text with color red - shape.finish(color=fitz.pdfcolor["red"]) - shape.commit() # store to the page - - # save document with text bboxes - doc.ez_save(filename.replace(".pdf", "-blocks.pdf")) \ No newline at end of file diff --git a/magic_pdf/libs/Constants.py b/magic_pdf/libs/Constants.py deleted file mode 100644 index 0799f6fde..000000000 --- a/magic_pdf/libs/Constants.py +++ /dev/null @@ -1,53 +0,0 @@ -""" -span维度自定义字段 -""" -# span是否是跨页合并的 -CROSS_PAGE = "cross_page" - -""" -block维度自定义字段 -""" -# block中lines是否被删除 -LINES_DELETED = "lines_deleted" - -# table recognition max time default value -TABLE_MAX_TIME_VALUE = 400 - -# pp_table_result_max_length -TABLE_MAX_LEN = 480 - -# table master structure dict -TABLE_MASTER_DICT = "table_master_structure_dict.txt" - -# table master dir -TABLE_MASTER_DIR = "table_structure_tablemaster_infer/" - -# pp detect model dir -DETECT_MODEL_DIR = "ch_PP-OCRv4_det_infer" - -# pp rec model dir -REC_MODEL_DIR = "ch_PP-OCRv4_rec_infer" - -# pp rec char dict path -REC_CHAR_DICT = "ppocr_keys_v1.txt" - -# pp rec copy rec directory -PP_REC_DIRECTORY = ".paddleocr/whl/rec/ch/ch_PP-OCRv4_rec_infer" - -# pp rec copy det directory -PP_DET_DIRECTORY = ".paddleocr/whl/det/ch/ch_PP-OCRv4_det_infer" - - -class MODEL_NAME: - # pp table structure algorithm - TABLE_MASTER = "tablemaster" - # struct eqtable - STRUCT_EQTABLE = "struct_eqtable" - - DocLayout_YOLO = "doclayout_yolo" - - LAYOUTLMv3 = "layoutlmv3" - - YOLO_V8_MFD = "yolo_v8_mfd" - - UniMerNet_v2_Small = "unimernet_small" \ No newline at end of file diff --git a/magic_pdf/libs/MakeContentConfig.py b/magic_pdf/libs/MakeContentConfig.py deleted file mode 100644 index 896edf62f..000000000 --- a/magic_pdf/libs/MakeContentConfig.py +++ /dev/null @@ -1,11 +0,0 @@ -class MakeMode: - MM_MD = "mm_markdown" - NLP_MD = "nlp_markdown" - STANDARD_FORMAT = "standard_format" - - -class DropMode: - WHOLE_PDF = "whole_pdf" - SINGLE_PAGE = "single_page" - NONE = "none" - NONE_WITH_REASON = "none_with_reason" diff --git a/magic_pdf/libs/ModelBlockTypeEnum.py b/magic_pdf/libs/ModelBlockTypeEnum.py deleted file mode 100644 index 494da6f6d..000000000 --- a/magic_pdf/libs/ModelBlockTypeEnum.py +++ /dev/null @@ -1,9 +0,0 @@ -from enum import Enum - -class ModelBlockTypeEnum(Enum): - TITLE = 0 - PLAIN_TEXT = 1 - ABANDON = 2 - ISOLATE_FORMULA = 8 - EMBEDDING = 13 - ISOLATED = 14 \ No newline at end of file diff --git a/magic_pdf/libs/__init__.py b/magic_pdf/libs/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/libs/boxbase.py b/magic_pdf/libs/boxbase.py deleted file mode 100644 index 52779a22d..000000000 --- a/magic_pdf/libs/boxbase.py +++ /dev/null @@ -1,482 +0,0 @@ -import math - - -def _is_in_or_part_overlap(box1, box2) -> bool: - """两个bbox是否有部分重叠或者包含.""" - if box1 is None or box2 is None: - return False - - x0_1, y0_1, x1_1, y1_1 = box1 - x0_2, y0_2, x1_2, y1_2 = box2 - - return not (x1_1 < x0_2 or # box1在box2的左边 - x0_1 > x1_2 or # box1在box2的右边 - y1_1 < y0_2 or # box1在box2的上边 - y0_1 > y1_2) # box1在box2的下边 - - -def _is_in_or_part_overlap_with_area_ratio(box1, - box2, - area_ratio_threshold=0.6): - """判断box1是否在box2里面,或者box1和box2有部分重叠,且重叠面积占box1的比例超过area_ratio_threshold.""" - if box1 is None or box2 is None: - return False - - x0_1, y0_1, x1_1, y1_1 = box1 - x0_2, y0_2, x1_2, y1_2 = box2 - - if not _is_in_or_part_overlap(box1, box2): - return False - - # 计算重叠面积 - x_left = max(x0_1, x0_2) - y_top = max(y0_1, y0_2) - x_right = min(x1_1, x1_2) - y_bottom = min(y1_1, y1_2) - overlap_area = (x_right - x_left) * (y_bottom - y_top) - - # 计算box1的面积 - box1_area = (x1_1 - x0_1) * (y1_1 - y0_1) - - return overlap_area / box1_area > area_ratio_threshold - - -def _is_in(box1, box2) -> bool: - """box1是否完全在box2里面.""" - x0_1, y0_1, x1_1, y1_1 = box1 - x0_2, y0_2, x1_2, y1_2 = box2 - - return (x0_1 >= x0_2 and # box1的左边界不在box2的左边外 - y0_1 >= y0_2 and # box1的上边界不在box2的上边外 - x1_1 <= x1_2 and # box1的右边界不在box2的右边外 - y1_1 <= y1_2) # box1的下边界不在box2的下边外 - - -def _is_part_overlap(box1, box2) -> bool: - """两个bbox是否有部分重叠,但不完全包含.""" - if box1 is None or box2 is None: - return False - - return _is_in_or_part_overlap(box1, box2) and not _is_in(box1, box2) - - -def _left_intersect(left_box, right_box): - """检查两个box的左边界是否有交集,也就是left_box的右边界是否在right_box的左边界内.""" - if left_box is None or right_box is None: - return False - - x0_1, y0_1, x1_1, y1_1 = left_box - x0_2, y0_2, x1_2, y1_2 = right_box - - return x1_1 > x0_2 and x0_1 < x0_2 and (y0_1 <= y0_2 <= y1_1 - or y0_1 <= y1_2 <= y1_1) - - -def _right_intersect(left_box, right_box): - """检查box是否在右侧边界有交集,也就是left_box的左边界是否在right_box的右边界内.""" - if left_box is None or right_box is None: - return False - - x0_1, y0_1, x1_1, y1_1 = left_box - x0_2, y0_2, x1_2, y1_2 = right_box - - return x0_1 < x1_2 and x1_1 > x1_2 and (y0_1 <= y0_2 <= y1_1 - or y0_1 <= y1_2 <= y1_1) - - -def _is_vertical_full_overlap(box1, box2, x_torlence=2): - """x方向上:要么box1包含box2, 要么box2包含box1。不能部分包含 y方向上:box1和box2有重叠.""" - # 解析box的坐标 - x11, y11, x12, y12 = box1 # 左上角和右下角的坐标 (x1, y1, x2, y2) - x21, y21, x22, y22 = box2 - - # 在x轴方向上,box1是否包含box2 或 box2包含box1 - contains_in_x = (x11 - x_torlence <= x21 and x12 + x_torlence >= x22) or ( - x21 - x_torlence <= x11 and x22 + x_torlence >= x12) - - # 在y轴方向上,box1和box2是否有重叠 - overlap_in_y = not (y12 < y21 or y11 > y22) - - return contains_in_x and overlap_in_y - - -def _is_bottom_full_overlap(box1, box2, y_tolerance=2): - """检查box1下方和box2的上方有轻微的重叠,轻微程度收到y_tolerance的限制 这个函数和_is_vertical- - full_overlap的区别是,这个函数允许box1和box2在x方向上有轻微的重叠,允许一定的模糊度.""" - if box1 is None or box2 is None: - return False - - x0_1, y0_1, x1_1, y1_1 = box1 - x0_2, y0_2, x1_2, y1_2 = box2 - tolerance_margin = 2 - is_xdir_full_overlap = ( - (x0_1 - tolerance_margin <= x0_2 <= x1_1 + tolerance_margin - and x0_1 - tolerance_margin <= x1_2 <= x1_1 + tolerance_margin) - or (x0_2 - tolerance_margin <= x0_1 <= x1_2 + tolerance_margin - and x0_2 - tolerance_margin <= x1_1 <= x1_2 + tolerance_margin)) - - return y0_2 < y1_1 and 0 < (y1_1 - - y0_2) < y_tolerance and is_xdir_full_overlap - - -def _is_left_overlap( - box1, - box2, -): - """检查box1的左侧是否和box2有重叠 在Y方向上可以是部分重叠或者是完全重叠。不分box1和box2的上下关系,也就是无论box1在box2下 - 方还是box2在box1下方,都可以检测到重叠。 X方向上.""" - - def __overlap_y(Ay1, Ay2, By1, By2): - return max(0, min(Ay2, By2) - max(Ay1, By1)) - - if box1 is None or box2 is None: - return False - - x0_1, y0_1, x1_1, y1_1 = box1 - x0_2, y0_2, x1_2, y1_2 = box2 - - y_overlap_len = __overlap_y(y0_1, y1_1, y0_2, y1_2) - ratio_1 = 1.0 * y_overlap_len / (y1_1 - y0_1) if y1_1 - y0_1 != 0 else 0 - ratio_2 = 1.0 * y_overlap_len / (y1_2 - y0_2) if y1_2 - y0_2 != 0 else 0 - vertical_overlap_cond = ratio_1 >= 0.5 or ratio_2 >= 0.5 - - # vertical_overlap_cond = y0_1<=y0_2<=y1_1 or y0_1<=y1_2<=y1_1 or y0_2<=y0_1<=y1_2 or y0_2<=y1_1<=y1_2 - return x0_1 <= x0_2 <= x1_1 and vertical_overlap_cond - - -def __is_overlaps_y_exceeds_threshold(bbox1, - bbox2, - overlap_ratio_threshold=0.8): - """检查两个bbox在y轴上是否有重叠,并且该重叠区域的高度占两个bbox高度更低的那个超过80%""" - _, y0_1, _, y1_1 = bbox1 - _, y0_2, _, y1_2 = bbox2 - - overlap = max(0, min(y1_1, y1_2) - max(y0_1, y0_2)) - height1, height2 = y1_1 - y0_1, y1_2 - y0_2 - # max_height = max(height1, height2) - min_height = min(height1, height2) - - return (overlap / min_height) > overlap_ratio_threshold - - -def calculate_iou(bbox1, bbox2): - """计算两个边界框的交并比(IOU)。 - - Args: - bbox1 (list[float]): 第一个边界框的坐标,格式为 [x1, y1, x2, y2],其中 (x1, y1) 为左上角坐标,(x2, y2) 为右下角坐标。 - bbox2 (list[float]): 第二个边界框的坐标,格式与 `bbox1` 相同。 - - Returns: - float: 两个边界框的交并比(IOU),取值范围为 [0, 1]。 - """ - # Determine the coordinates of the intersection rectangle - x_left = max(bbox1[0], bbox2[0]) - y_top = max(bbox1[1], bbox2[1]) - x_right = min(bbox1[2], bbox2[2]) - y_bottom = min(bbox1[3], bbox2[3]) - - if x_right < x_left or y_bottom < y_top: - return 0.0 - - # The area of overlap area - intersection_area = (x_right - x_left) * (y_bottom - y_top) - - # The area of both rectangles - bbox1_area = (bbox1[2] - bbox1[0]) * (bbox1[3] - bbox1[1]) - bbox2_area = (bbox2[2] - bbox2[0]) * (bbox2[3] - bbox2[1]) - - # Compute the intersection over union by taking the intersection area - # and dividing it by the sum of both areas minus the intersection area - iou = intersection_area / float(bbox1_area + bbox2_area - - intersection_area) - return iou - - -def calculate_overlap_area_2_minbox_area_ratio(bbox1, bbox2): - """计算box1和box2的重叠面积占最小面积的box的比例.""" - # Determine the coordinates of the intersection rectangle - x_left = max(bbox1[0], bbox2[0]) - y_top = max(bbox1[1], bbox2[1]) - x_right = min(bbox1[2], bbox2[2]) - y_bottom = min(bbox1[3], bbox2[3]) - - if x_right < x_left or y_bottom < y_top: - return 0.0 - - # The area of overlap area - intersection_area = (x_right - x_left) * (y_bottom - y_top) - min_box_area = min([(bbox1[2] - bbox1[0]) * (bbox1[3] - bbox1[1]), - (bbox2[3] - bbox2[1]) * (bbox2[2] - bbox2[0])]) - if min_box_area == 0: - return 0 - else: - return intersection_area / min_box_area - - -def calculate_overlap_area_in_bbox1_area_ratio(bbox1, bbox2): - """计算box1和box2的重叠面积占bbox1的比例.""" - # Determine the coordinates of the intersection rectangle - x_left = max(bbox1[0], bbox2[0]) - y_top = max(bbox1[1], bbox2[1]) - x_right = min(bbox1[2], bbox2[2]) - y_bottom = min(bbox1[3], bbox2[3]) - - if x_right < x_left or y_bottom < y_top: - return 0.0 - - # The area of overlap area - intersection_area = (x_right - x_left) * (y_bottom - y_top) - bbox1_area = (bbox1[2] - bbox1[0]) * (bbox1[3] - bbox1[1]) - if bbox1_area == 0: - return 0 - else: - return intersection_area / bbox1_area - - -def get_minbox_if_overlap_by_ratio(bbox1, bbox2, ratio): - """通过calculate_overlap_area_2_minbox_area_ratio计算两个bbox重叠的面积占最小面积的box的比例 - 如果比例大于ratio,则返回小的那个bbox, 否则返回None.""" - x1_min, y1_min, x1_max, y1_max = bbox1 - x2_min, y2_min, x2_max, y2_max = bbox2 - area1 = (x1_max - x1_min) * (y1_max - y1_min) - area2 = (x2_max - x2_min) * (y2_max - y2_min) - overlap_ratio = calculate_overlap_area_2_minbox_area_ratio(bbox1, bbox2) - if overlap_ratio > ratio: - if area1 <= area2: - return bbox1 - else: - return bbox2 - else: - return None - - -def get_bbox_in_boundary(bboxes: list, boundary: tuple) -> list: - x0, y0, x1, y1 = boundary - new_boxes = [ - box for box in bboxes - if box[0] >= x0 and box[1] >= y0 and box[2] <= x1 and box[3] <= y1 - ] - return new_boxes - - -def is_vbox_on_side(bbox, width, height, side_threshold=0.2): - """判断一个bbox是否在pdf页面的边缘.""" - x0, x1 = bbox[0], bbox[2] - if x1 <= width * side_threshold or x0 >= width * (1 - side_threshold): - return True - return False - - -def find_top_nearest_text_bbox(pymu_blocks, obj_bbox): - tolerance_margin = 4 - top_boxes = [ - box for box in pymu_blocks - if obj_bbox[1] - box['bbox'][3] >= -tolerance_margin - and not _is_in(box['bbox'], obj_bbox) - ] - # 然后找到X方向上有互相重叠的 - top_boxes = [ - box for box in top_boxes if any([ - obj_bbox[0] - tolerance_margin <= box['bbox'][0] <= obj_bbox[2] + - tolerance_margin, obj_bbox[0] - - tolerance_margin <= box['bbox'][2] <= obj_bbox[2] + - tolerance_margin, box['bbox'][0] - - tolerance_margin <= obj_bbox[0] <= box['bbox'][2] + - tolerance_margin, box['bbox'][0] - - tolerance_margin <= obj_bbox[2] <= box['bbox'][2] + - tolerance_margin - ]) - ] - - # 然后找到y1最大的那个 - if len(top_boxes) > 0: - top_boxes.sort(key=lambda x: x['bbox'][3], reverse=True) - return top_boxes[0] - else: - return None - - -def find_bottom_nearest_text_bbox(pymu_blocks, obj_bbox): - bottom_boxes = [ - box for box in pymu_blocks if box['bbox'][1] - - obj_bbox[3] >= -2 and not _is_in(box['bbox'], obj_bbox) - ] - # 然后找到X方向上有互相重叠的 - bottom_boxes = [ - box for box in bottom_boxes if any([ - obj_bbox[0] - 2 <= box['bbox'][0] <= obj_bbox[2] + 2, obj_bbox[0] - - 2 <= box['bbox'][2] <= obj_bbox[2] + 2, box['bbox'][0] - - 2 <= obj_bbox[0] <= box['bbox'][2] + 2, box['bbox'][0] - - 2 <= obj_bbox[2] <= box['bbox'][2] + 2 - ]) - ] - - # 然后找到y0最小的那个 - if len(bottom_boxes) > 0: - bottom_boxes.sort(key=lambda x: x['bbox'][1], reverse=False) - return bottom_boxes[0] - else: - return None - - -def find_left_nearest_text_bbox(pymu_blocks, obj_bbox): - """寻找左侧最近的文本block.""" - left_boxes = [ - box for box in pymu_blocks if obj_bbox[0] - - box['bbox'][2] >= -2 and not _is_in(box['bbox'], obj_bbox) - ] - # 然后找到X方向上有互相重叠的 - left_boxes = [ - box for box in left_boxes if any([ - obj_bbox[1] - 2 <= box['bbox'][1] <= obj_bbox[3] + 2, obj_bbox[1] - - 2 <= box['bbox'][3] <= obj_bbox[3] + 2, box['bbox'][1] - - 2 <= obj_bbox[1] <= box['bbox'][3] + 2, box['bbox'][1] - - 2 <= obj_bbox[3] <= box['bbox'][3] + 2 - ]) - ] - - # 然后找到x1最大的那个 - if len(left_boxes) > 0: - left_boxes.sort(key=lambda x: x['bbox'][2], reverse=True) - return left_boxes[0] - else: - return None - - -def find_right_nearest_text_bbox(pymu_blocks, obj_bbox): - """寻找右侧最近的文本block.""" - right_boxes = [ - box for box in pymu_blocks if box['bbox'][0] - - obj_bbox[2] >= -2 and not _is_in(box['bbox'], obj_bbox) - ] - # 然后找到X方向上有互相重叠的 - right_boxes = [ - box for box in right_boxes if any([ - obj_bbox[1] - 2 <= box['bbox'][1] <= obj_bbox[3] + 2, obj_bbox[1] - - 2 <= box['bbox'][3] <= obj_bbox[3] + 2, box['bbox'][1] - - 2 <= obj_bbox[1] <= box['bbox'][3] + 2, box['bbox'][1] - - 2 <= obj_bbox[3] <= box['bbox'][3] + 2 - ]) - ] - - # 然后找到x0最小的那个 - if len(right_boxes) > 0: - right_boxes.sort(key=lambda x: x['bbox'][0], reverse=False) - return right_boxes[0] - else: - return None - - -def bbox_relative_pos(bbox1, bbox2): - """判断两个矩形框的相对位置关系. - - Args: - bbox1: 一个四元组,表示第一个矩形框的左上角和右下角的坐标,格式为(x1, y1, x1b, y1b) - bbox2: 一个四元组,表示第二个矩形框的左上角和右下角的坐标,格式为(x2, y2, x2b, y2b) - - Returns: - 一个四元组,表示矩形框1相对于矩形框2的位置关系,格式为(left, right, bottom, top) - 其中,left表示矩形框1是否在矩形框2的左侧,right表示矩形框1是否在矩形框2的右侧, - bottom表示矩形框1是否在矩形框2的下方,top表示矩形框1是否在矩形框2的上方 - """ - x1, y1, x1b, y1b = bbox1 - x2, y2, x2b, y2b = bbox2 - - left = x2b < x1 - right = x1b < x2 - bottom = y2b < y1 - top = y1b < y2 - return left, right, bottom, top - - -def bbox_distance(bbox1, bbox2): - """计算两个矩形框的距离。 - - Args: - bbox1 (tuple): 第一个矩形框的坐标,格式为 (x1, y1, x2, y2),其中 (x1, y1) 为左上角坐标,(x2, y2) 为右下角坐标。 - bbox2 (tuple): 第二个矩形框的坐标,格式为 (x1, y1, x2, y2),其中 (x1, y1) 为左上角坐标,(x2, y2) 为右下角坐标。 - - Returns: - float: 矩形框之间的距离。 - """ - - def dist(point1, point2): - return math.sqrt((point1[0] - point2[0])**2 + - (point1[1] - point2[1])**2) - - x1, y1, x1b, y1b = bbox1 - x2, y2, x2b, y2b = bbox2 - - left, right, bottom, top = bbox_relative_pos(bbox1, bbox2) - - if top and left: - return dist((x1, y1b), (x2b, y2)) - elif left and bottom: - return dist((x1, y1), (x2b, y2b)) - elif bottom and right: - return dist((x1b, y1), (x2, y2b)) - elif right and top: - return dist((x1b, y1b), (x2, y2)) - elif left: - return x1 - x2b - elif right: - return x2 - x1b - elif bottom: - return y1 - y2b - elif top: - return y2 - y1b - return 0.0 - - -def box_area(bbox): - return (bbox[2] - bbox[0]) * (bbox[3] - bbox[1]) - - -def get_overlap_area(bbox1, bbox2): - """计算box1和box2的重叠面积占bbox1的比例.""" - # Determine the coordinates of the intersection rectangle - x_left = max(bbox1[0], bbox2[0]) - y_top = max(bbox1[1], bbox2[1]) - x_right = min(bbox1[2], bbox2[2]) - y_bottom = min(bbox1[3], bbox2[3]) - - if x_right < x_left or y_bottom < y_top: - return 0.0 - - # The area of overlap area - return (x_right - x_left) * (y_bottom - y_top) - - -def calculate_vertical_projection_overlap_ratio(block1, block2): - """ - Calculate the proportion of the x-axis covered by the vertical projection of two blocks. - - Args: - block1 (tuple): Coordinates of the first block (x0, y0, x1, y1). - block2 (tuple): Coordinates of the second block (x0, y0, x1, y1). - - Returns: - float: The proportion of the x-axis covered by the vertical projection of the two blocks. - """ - x0_1, _, x1_1, _ = block1 - x0_2, _, x1_2, _ = block2 - - # Calculate the intersection of the x-coordinates - x_left = max(x0_1, x0_2) - x_right = min(x1_1, x1_2) - - if x_right < x_left: - return 0.0 - - # Length of the intersection - intersection_length = x_right - x_left - - # Length of the x-axis projection of the first block - block1_length = x1_1 - x0_1 - - if block1_length == 0: - return 0.0 - - # Proportion of the x-axis covered by the intersection - # logger.info(f"intersection_length: {intersection_length}, block1_length: {block1_length}") - return intersection_length / block1_length diff --git a/magic_pdf/libs/calc_span_stats.py b/magic_pdf/libs/calc_span_stats.py deleted file mode 100644 index c0bf61a8d..000000000 --- a/magic_pdf/libs/calc_span_stats.py +++ /dev/null @@ -1,239 +0,0 @@ -import os -import csv -import json -import pandas as pd -from pandas import DataFrame as df -from matplotlib import pyplot as plt -from termcolor import cprint - -""" -Execute this script in the following way: - -1. Make sure there are pdf_dic.json files under the directory code-clean/tmp/unittest/md/, such as the following: - - code-clean/tmp/unittest/md/scihub/scihub_00500000/libgen.scimag00527000-00527999.zip_10.1002/app.25178/pdf_dic.json - -2. Under the directory code-clean, execute the following command: - - $ python -m libs.calc_span_stats - -""" - - -def print_green_on_red(text): - cprint(text, "green", "on_red", attrs=["bold"], end="\n\n") - - -def print_green(text): - print() - cprint(text, "green", attrs=["bold"], end="\n\n") - - -def print_red(text): - print() - cprint(text, "red", attrs=["bold"], end="\n\n") - - -def safe_get(dict_obj, key, default): - val = dict_obj.get(key) - if val is None: - return default - else: - return val - - -class SpanStatsCalc: - """Calculate statistics of span.""" - - def draw_charts(self, span_stats: pd.DataFrame, fig_num: int, save_path: str): - """Draw multiple figures in one figure.""" - # make a canvas - fig = plt.figure(fig_num, figsize=(20, 20)) - - pass - - def calc_stats_per_dict(self, pdf_dict) -> pd.DataFrame: - """Calculate statistics per pdf_dict.""" - span_stats = pd.DataFrame() - - span_stats = [] - span_id = 0 - for page_id, blocks in pdf_dict.items(): - if page_id.startswith("page_"): - if "para_blocks" in blocks.keys(): - for para_block in blocks["para_blocks"]: - for line in para_block["lines"]: - for span in line["spans"]: - span_text = safe_get(span, "text", "") - span_font_name = safe_get(span, "font", "") - span_font_size = safe_get(span, "size", 0) - span_font_color = safe_get(span, "color", "") - span_font_flags = safe_get(span, "flags", 0) - - span_font_flags_decoded = safe_get(span, "decomposed_flags", {}) - span_is_super_script = safe_get(span_font_flags_decoded, "is_superscript", False) - span_is_italic = safe_get(span_font_flags_decoded, "is_italic", False) - span_is_serifed = safe_get(span_font_flags_decoded, "is_serifed", False) - span_is_sans_serifed = safe_get(span_font_flags_decoded, "is_sans_serifed", False) - span_is_monospaced = safe_get(span_font_flags_decoded, "is_monospaced", False) - span_is_proportional = safe_get(span_font_flags_decoded, "is_proportional", False) - span_is_bold = safe_get(span_font_flags_decoded, "is_bold", False) - - span_stats.append( - { - "span_id": span_id, # id of span - "page_id": page_id, # page number of pdf - "span_text": span_text, # text of span - "span_font_name": span_font_name, # font name of span - "span_font_size": span_font_size, # font size of span - "span_font_color": span_font_color, # font color of span - "span_font_flags": span_font_flags, # font flags of span - "span_is_superscript": int( - span_is_super_script - ), # indicate whether the span is super script or not - "span_is_italic": int(span_is_italic), # indicate whether the span is italic or not - "span_is_serifed": int(span_is_serifed), # indicate whether the span is serifed or not - "span_is_sans_serifed": int( - span_is_sans_serifed - ), # indicate whether the span is sans serifed or not - "span_is_monospaced": int( - span_is_monospaced - ), # indicate whether the span is monospaced or not - "span_is_proportional": int( - span_is_proportional - ), # indicate whether the span is proportional or not - "span_is_bold": int(span_is_bold), # indicate whether the span is bold or not - } - ) - - span_id += 1 - - span_stats = pd.DataFrame(span_stats) - # print(span_stats) - - return span_stats - - -def __find_pdf_dic_files( - jf_name="pdf_dic.json", - base_code_name="code-clean", - tgt_base_dir_name="tmp", - unittest_dir_name="unittest", - md_dir_name="md", - book_names=[ - "scihub", - ], # other possible values: "zlib", "arxiv" and so on -): - pdf_dict_files = [] - - curr_dir = os.path.dirname(__file__) - - for i in range(len(curr_dir)): - if curr_dir[i : i + len(base_code_name)] == base_code_name: - base_code_dir_name = curr_dir[: i + len(base_code_name)] - for book_name in book_names: - search_dir_relative_name = os.path.join(tgt_base_dir_name, unittest_dir_name, md_dir_name, book_name) - if os.path.exists(base_code_dir_name): - search_dir_name = os.path.join(base_code_dir_name, search_dir_relative_name) - for root, dirs, files in os.walk(search_dir_name): - for file in files: - if file == jf_name: - pdf_dict_files.append(os.path.join(root, file)) - break - - return pdf_dict_files - - -def combine_span_texts(group_df, span_stats): - combined_span_texts = [] - for _, row in group_df.iterrows(): - curr_span_id = row.name - curr_span_text = row["span_text"] - - pre_span_id = curr_span_id - 1 - pre_span_text = span_stats.at[pre_span_id, "span_text"] if pre_span_id in span_stats.index else "" - - next_span_id = curr_span_id + 1 - next_span_text = span_stats.at[next_span_id, "span_text"] if next_span_id in span_stats.index else "" - - # pointer_sign is a right arrow if the span is superscript, otherwise it is a down arrow - pointer_sign = "→ → → " - combined_text = "\n".join([pointer_sign + pre_span_text, pointer_sign + curr_span_text, pointer_sign + next_span_text]) - combined_span_texts.append(combined_text) - - return "\n\n".join(combined_span_texts) - - -# pd.set_option("display.max_colwidth", None) # 设置为 None 来显示完整的文本 -pd.set_option("display.max_rows", None) # 设置为 None 来显示更多的行 - - -def main(): - pdf_dict_files = __find_pdf_dic_files() - # print(pdf_dict_files) - - span_stats_calc = SpanStatsCalc() - - for pdf_dict_file in pdf_dict_files: - print("-" * 100) - print_green_on_red(f"Processing {pdf_dict_file}") - - with open(pdf_dict_file, "r", encoding="utf-8") as f: - pdf_dict = json.load(f) - - raw_df = span_stats_calc.calc_stats_per_dict(pdf_dict) - save_path = pdf_dict_file.replace("pdf_dic.json", "span_stats_raw.csv") - raw_df.to_csv(save_path, index=False) - - filtered_df = raw_df[raw_df["span_is_superscript"] == 1] - if filtered_df.empty: - print("No superscript span found!") - continue - - filtered_grouped_df = filtered_df.groupby(["span_font_name", "span_font_size", "span_font_color"]) - - combined_span_texts = filtered_grouped_df.apply(combine_span_texts, span_stats=raw_df) # type: ignore - - final_df = filtered_grouped_df.size().reset_index(name="count") - final_df["span_texts"] = combined_span_texts.reset_index(level=[0, 1, 2], drop=True) - - print(final_df) - - final_df["span_texts"] = final_df["span_texts"].apply(lambda x: x.replace("\n", "\r\n")) - - save_path = pdf_dict_file.replace("pdf_dic.json", "span_stats_final.csv") - # 使用 UTF-8 编码并添加 BOM,确保所有字段被双引号包围 - final_df.to_csv(save_path, index=False, encoding="utf-8-sig", quoting=csv.QUOTE_ALL) - - # 创建一个 2x2 的图表布局 - fig, axs = plt.subplots(2, 2, figsize=(15, 10)) - - # 按照 span_font_name 分类作图 - final_df.groupby("span_font_name")["count"].sum().plot(kind="bar", ax=axs[0, 0], title="By Font Name") - - # 按照 span_font_size 分类作图 - final_df.groupby("span_font_size")["count"].sum().plot(kind="bar", ax=axs[0, 1], title="By Font Size") - - # 按照 span_font_color 分类作图 - final_df.groupby("span_font_color")["count"].sum().plot(kind="bar", ax=axs[1, 0], title="By Font Color") - - # 按照 span_font_name、span_font_size 和 span_font_color 共同分类作图 - grouped = final_df.groupby(["span_font_name", "span_font_size", "span_font_color"]) - grouped["count"].sum().unstack().plot(kind="bar", ax=axs[1, 1], title="Combined Grouping") - - # 调整布局 - plt.tight_layout() - - # 显示图表 - # plt.show() - - # 保存图表到 PNG 文件 - save_path = pdf_dict_file.replace("pdf_dic.json", "span_stats_combined.png") - plt.savefig(save_path) - - # 清除画布 - plt.clf() - - -if __name__ == "__main__": - main() diff --git a/magic_pdf/libs/clean_memory.py b/magic_pdf/libs/clean_memory.py deleted file mode 100644 index 6bfc174fa..000000000 --- a/magic_pdf/libs/clean_memory.py +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright (c) Opendatalab. All rights reserved. -import torch -import gc - - -def clean_memory(): - if torch.cuda.is_available(): - torch.cuda.empty_cache() - torch.cuda.ipc_collect() - gc.collect() \ No newline at end of file diff --git a/magic_pdf/libs/commons.py b/magic_pdf/libs/commons.py deleted file mode 100644 index 15592dbfe..000000000 --- a/magic_pdf/libs/commons.py +++ /dev/null @@ -1,204 +0,0 @@ -import datetime -import json -import os, re, configparser -import subprocess -import time - -import boto3 -from loguru import logger -from boto3.s3.transfer import TransferConfig -from botocore.config import Config - -import fitz # 1.23.9中已经切换到rebase -# import fitz_old as fitz # 使用1.23.9之前的pymupdf库 - - -def get_delta_time(input_time): - return round(time.time() - input_time, 2) - - -def join_path(*args): - return '/'.join(str(s).rstrip('/') for s in args) - - -#配置全局的errlog_path,方便demo同步引用 -error_log_path = "s3://llm-pdf-text/err_logs/" -# json_dump_path = "s3://pdf_books_temp/json_dump/" # 这条路径仅用于临时本地测试,不能提交到main -json_dump_path = "s3://llm-pdf-text/json_dump/" - -# s3_image_save_path = "s3://mllm-raw-media/pdf2md_img/" # 基础库不应该有这些存在的路径,应该在业务代码中定义 - - -def get_top_percent_list(num_list, percent): - """ - 获取列表中前百分之多少的元素 - :param num_list: - :param percent: - :return: - """ - if len(num_list) == 0: - top_percent_list = [] - else: - # 对imgs_len_list排序 - sorted_imgs_len_list = sorted(num_list, reverse=True) - # 计算 percent 的索引 - top_percent_index = int(len(sorted_imgs_len_list) * percent) - # 取前80%的元素 - top_percent_list = sorted_imgs_len_list[:top_percent_index] - return top_percent_list - - -def formatted_time(time_stamp): - dt_object = datetime.datetime.fromtimestamp(time_stamp) - output_time = dt_object.strftime("%Y-%m-%d-%H:%M:%S") - return output_time - - -def mymax(alist: list): - if len(alist) == 0: - return 0 # 空是0, 0*0也是0大小q - else: - return max(alist) - -def parse_aws_param(profile): - if isinstance(profile, str): - # 解析配置文件 - config_file = join_path(os.path.expanduser("~"), ".aws", "config") - credentials_file = join_path(os.path.expanduser("~"), ".aws", "credentials") - config = configparser.ConfigParser() - config.read(credentials_file) - config.read(config_file) - # 获取 AWS 账户相关信息 - ak = config.get(profile, "aws_access_key_id") - sk = config.get(profile, "aws_secret_access_key") - if profile == "default": - s3_str = config.get(f"{profile}", "s3") - else: - s3_str = config.get(f"profile {profile}", "s3") - end_match = re.search("endpoint_url[\s]*=[\s]*([^\s\n]+)[\s\n]*$", s3_str, re.MULTILINE) - if end_match: - endpoint = end_match.group(1) - else: - raise ValueError(f"aws 配置文件中没有找到 endpoint_url") - style_match = re.search("addressing_style[\s]*=[\s]*([^\s\n]+)[\s\n]*$", s3_str, re.MULTILINE) - if style_match: - addressing_style = style_match.group(1) - else: - addressing_style = "path" - elif isinstance(profile, dict): - ak = profile["ak"] - sk = profile["sk"] - endpoint = profile["endpoint"] - addressing_style = "auto" - - return ak, sk, endpoint, addressing_style - - -def parse_bucket_key(s3_full_path: str): - """ - 输入 s3://bucket/path/to/my/file.txt - 输出 bucket, path/to/my/file.txt - """ - s3_full_path = s3_full_path.strip() - if s3_full_path.startswith("s3://"): - s3_full_path = s3_full_path[5:] - if s3_full_path.startswith("/"): - s3_full_path = s3_full_path[1:] - bucket, key = s3_full_path.split("/", 1) - return bucket, key - - -def read_file(pdf_path: str, s3_profile): - if pdf_path.startswith("s3://"): - ak, sk, end_point, addressing_style = parse_aws_param(s3_profile) - cli = boto3.client(service_name="s3", aws_access_key_id=ak, aws_secret_access_key=sk, endpoint_url=end_point, - config=Config(s3={'addressing_style': addressing_style}, retries={'max_attempts': 10, 'mode': 'standard'})) - bucket_name, bucket_key = parse_bucket_key(pdf_path) - res = cli.get_object(Bucket=bucket_name, Key=bucket_key) - file_content = res["Body"].read() - return file_content - else: - with open(pdf_path, "rb") as f: - return f.read() - - -def get_docx_model_output(pdf_model_output, page_id): - - model_output_json = pdf_model_output[page_id] - - return model_output_json - - -def list_dir(dir_path:str, s3_profile:str): - """ - 列出dir_path下的所有文件 - """ - ret = [] - - if dir_path.startswith("s3"): - ak, sk, end_point, addressing_style = parse_aws_param(s3_profile) - s3info = re.findall(r"s3:\/\/([^\/]+)\/(.*)", dir_path) - bucket, path = s3info[0][0], s3info[0][1] - try: - cli = boto3.client(service_name="s3", aws_access_key_id=ak, aws_secret_access_key=sk, endpoint_url=end_point, - config=Config(s3={'addressing_style': addressing_style})) - def list_obj_scluster(): - marker = None - while True: - list_kwargs = dict(MaxKeys=1000, Bucket=bucket, Prefix=path) - if marker: - list_kwargs['Marker'] = marker - response = cli.list_objects(**list_kwargs) - contents = response.get("Contents", []) - yield from contents - if not response.get("IsTruncated") or len(contents)==0: - break - marker = contents[-1]['Key'] - - - for info in list_obj_scluster(): - file_path = info['Key'] - #size = info['Size'] - - if path!="": - afile = file_path[len(path):] - if afile.endswith(".json"): - ret.append(f"s3://{bucket}/{file_path}") - - return ret - - except Exception as e: - logger.exception(e) - exit(-1) - else: #本地的目录,那么扫描本地目录并返会这个目录里的所有jsonl文件 - - for root, dirs, files in os.walk(dir_path): - for file in files: - if file.endswith(".json"): - ret.append(join_path(root, file)) - ret.sort() - return ret - -def get_img_s3_client(save_path:str, image_s3_config:str): - """ - """ - if save_path.startswith("s3://"): # 放这里是为了最少创建一个s3 client - ak, sk, end_point, addressing_style = parse_aws_param(image_s3_config) - img_s3_client = boto3.client( - service_name="s3", - aws_access_key_id=ak, - aws_secret_access_key=sk, - endpoint_url=end_point, - config=Config(s3={"addressing_style": addressing_style}, retries={'max_attempts': 5, 'mode': 'standard'}), - ) - else: - img_s3_client = None - - return img_s3_client - -if __name__=="__main__": - s3_path = "s3://llm-pdf-text/layout_det/scihub/scimag07865000-07865999/10.1007/s10729-011-9175-6.pdf/" - s3_profile = "langchao" - ret = list_dir(s3_path, s3_profile) - print(ret) - \ No newline at end of file diff --git a/magic_pdf/libs/config_reader.py b/magic_pdf/libs/config_reader.py deleted file mode 100644 index 5e1a300d9..000000000 --- a/magic_pdf/libs/config_reader.py +++ /dev/null @@ -1,121 +0,0 @@ -"""根据bucket的名字返回对应的s3 AK, SK,endpoint三元组.""" - -import json -import os - -from loguru import logger - -from magic_pdf.libs.Constants import MODEL_NAME -from magic_pdf.libs.commons import parse_bucket_key - -# 定义配置文件名常量 -CONFIG_FILE_NAME = os.getenv('MINERU_TOOLS_CONFIG_JSON', 'magic-pdf.json') - - -def read_config(): - if os.path.isabs(CONFIG_FILE_NAME): - config_file = CONFIG_FILE_NAME - else: - home_dir = os.path.expanduser('~') - config_file = os.path.join(home_dir, CONFIG_FILE_NAME) - - if not os.path.exists(config_file): - raise FileNotFoundError(f'{config_file} not found') - - with open(config_file, 'r', encoding='utf-8') as f: - config = json.load(f) - return config - - -def get_s3_config(bucket_name: str): - """~/magic-pdf.json 读出来.""" - config = read_config() - - bucket_info = config.get('bucket_info') - if bucket_name not in bucket_info: - access_key, secret_key, storage_endpoint = bucket_info['[default]'] - else: - access_key, secret_key, storage_endpoint = bucket_info[bucket_name] - - if access_key is None or secret_key is None or storage_endpoint is None: - raise Exception(f'ak, sk or endpoint not found in {CONFIG_FILE_NAME}') - - # logger.info(f"get_s3_config: ak={access_key}, sk={secret_key}, endpoint={storage_endpoint}") - - return access_key, secret_key, storage_endpoint - - -def get_s3_config_dict(path: str): - access_key, secret_key, storage_endpoint = get_s3_config(get_bucket_name(path)) - return {'ak': access_key, 'sk': secret_key, 'endpoint': storage_endpoint} - - -def get_bucket_name(path): - bucket, key = parse_bucket_key(path) - return bucket - - -def get_local_models_dir(): - config = read_config() - models_dir = config.get('models-dir') - if models_dir is None: - logger.warning(f"'models-dir' not found in {CONFIG_FILE_NAME}, use '/tmp/models' as default") - return '/tmp/models' - else: - return models_dir - - -def get_local_layoutreader_model_dir(): - config = read_config() - layoutreader_model_dir = config.get('layoutreader-model-dir') - if layoutreader_model_dir is None or not os.path.exists(layoutreader_model_dir): - home_dir = os.path.expanduser('~') - layoutreader_at_modelscope_dir_path = os.path.join(home_dir, '.cache/modelscope/hub/ppaanngggg/layoutreader') - logger.warning(f"'layoutreader-model-dir' not exists, use {layoutreader_at_modelscope_dir_path} as default") - return layoutreader_at_modelscope_dir_path - else: - return layoutreader_model_dir - - -def get_device(): - config = read_config() - device = config.get('device-mode') - if device is None: - logger.warning(f"'device-mode' not found in {CONFIG_FILE_NAME}, use 'cpu' as default") - return 'cpu' - else: - return device - - -def get_table_recog_config(): - config = read_config() - table_config = config.get('table-config') - if table_config is None: - logger.warning(f"'table-config' not found in {CONFIG_FILE_NAME}, use 'False' as default") - return json.loads(f'{{"model": "{MODEL_NAME.TABLE_MASTER}","enable": false, "max_time": 400}}') - else: - return table_config - - -def get_layout_config(): - config = read_config() - layout_config = config.get("layout-config") - if layout_config is None: - logger.warning(f"'layout-config' not found in {CONFIG_FILE_NAME}, use '{MODEL_NAME.LAYOUTLMv3}' as default") - return json.loads(f'{{"model": "{MODEL_NAME.LAYOUTLMv3}"}}') - else: - return layout_config - - -def get_formula_config(): - config = read_config() - formula_config = config.get("formula-config") - if formula_config is None: - logger.warning(f"'formula-config' not found in {CONFIG_FILE_NAME}, use 'True' as default") - return json.loads(f'{{"mfd_model": "{MODEL_NAME.YOLO_V8_MFD}","mfr_model": "{MODEL_NAME.UniMerNet_v2_Small}","enable": true}}') - else: - return formula_config - - -if __name__ == "__main__": - ak, sk, endpoint = get_s3_config("llm-raw") diff --git a/magic_pdf/libs/convert_utils.py b/magic_pdf/libs/convert_utils.py deleted file mode 100644 index 99a1879d4..000000000 --- a/magic_pdf/libs/convert_utils.py +++ /dev/null @@ -1,5 +0,0 @@ -def dict_to_list(input_dict): - items_list = [] - for _, item in input_dict.items(): - items_list.append(item) - return items_list diff --git a/magic_pdf/libs/coordinate_transform.py b/magic_pdf/libs/coordinate_transform.py deleted file mode 100644 index 7cd7a0768..000000000 --- a/magic_pdf/libs/coordinate_transform.py +++ /dev/null @@ -1,9 +0,0 @@ -def get_scale_ratio(model_page_info, page): - pix = page.get_pixmap(dpi=72) - pymu_width = int(pix.w) - pymu_height = int(pix.h) - width_from_json = model_page_info['page_info']['width'] - height_from_json = model_page_info['page_info']['height'] - horizontal_scale_ratio = width_from_json / pymu_width - vertical_scale_ratio = height_from_json / pymu_height - return horizontal_scale_ratio, vertical_scale_ratio diff --git a/magic_pdf/libs/detect_language_from_model.py b/magic_pdf/libs/detect_language_from_model.py deleted file mode 100644 index 55abf1058..000000000 --- a/magic_pdf/libs/detect_language_from_model.py +++ /dev/null @@ -1,21 +0,0 @@ -from collections import Counter - -from magic_pdf.libs.language import detect_lang - -def get_language_from_model(model_list: list): - language_lst = [] - for ocr_page_info in model_list: - page_text = "" - layout_dets = ocr_page_info["layout_dets"] - for layout_det in layout_dets: - category_id = layout_det["category_id"] - allow_category_id_list = [15] - if category_id in allow_category_id_list: - page_text += layout_det["text"] - page_language = detect_lang(page_text) - language_lst.append(page_language) - # 统计text_language_list中每种语言的个数 - count_dict = Counter(language_lst) - # 输出text_language_list中出现的次数最多的语言 - language = max(count_dict, key=count_dict.get) - return language diff --git a/magic_pdf/libs/draw_bbox.py b/magic_pdf/libs/draw_bbox.py deleted file mode 100644 index 9703e131e..000000000 --- a/magic_pdf/libs/draw_bbox.py +++ /dev/null @@ -1,402 +0,0 @@ -from magic_pdf.data.dataset import PymuDocDataset -from magic_pdf.libs.commons import fitz # PyMuPDF -from magic_pdf.libs.Constants import CROSS_PAGE -from magic_pdf.libs.ocr_content_type import BlockType, CategoryId, ContentType -from magic_pdf.model.magic_model import MagicModel - - -def draw_bbox_without_number(i, bbox_list, page, rgb_config, fill_config): - new_rgb = [] - for item in rgb_config: - item = float(item) / 255 - new_rgb.append(item) - page_data = bbox_list[i] - for bbox in page_data: - x0, y0, x1, y1 = bbox - rect_coords = fitz.Rect(x0, y0, x1, y1) # Define the rectangle - if fill_config: - page.draw_rect( - rect_coords, - color=None, - fill=new_rgb, - fill_opacity=0.3, - width=0.5, - overlay=True, - ) # Draw the rectangle - else: - page.draw_rect( - rect_coords, - color=new_rgb, - fill=None, - fill_opacity=1, - width=0.5, - overlay=True, - ) # Draw the rectangle - - -def draw_bbox_with_number(i, bbox_list, page, rgb_config, fill_config, draw_bbox=True): - new_rgb = [] - for item in rgb_config: - item = float(item) / 255 - new_rgb.append(item) - page_data = bbox_list[i] - for j, bbox in enumerate(page_data): - x0, y0, x1, y1 = bbox - rect_coords = fitz.Rect(x0, y0, x1, y1) # Define the rectangle - if draw_bbox: - if fill_config: - page.draw_rect( - rect_coords, - color=None, - fill=new_rgb, - fill_opacity=0.3, - width=0.5, - overlay=True, - ) # Draw the rectangle - else: - page.draw_rect( - rect_coords, - color=new_rgb, - fill=None, - fill_opacity=1, - width=0.5, - overlay=True, - ) # Draw the rectangle - page.insert_text( - (x1 + 2, y0 + 10), str(j + 1), fontsize=10, color=new_rgb - ) # Insert the index in the top left corner of the rectangle - - -def draw_layout_bbox(pdf_info, pdf_bytes, out_path, filename): - dropped_bbox_list = [] - tables_list, tables_body_list = [], [] - tables_caption_list, tables_footnote_list = [], [] - imgs_list, imgs_body_list, imgs_caption_list = [], [], [] - imgs_footnote_list = [] - titles_list = [] - texts_list = [] - interequations_list = [] - lists_list = [] - indexs_list = [] - for page in pdf_info: - - page_dropped_list = [] - tables, tables_body, tables_caption, tables_footnote = [], [], [], [] - imgs, imgs_body, imgs_caption, imgs_footnote = [], [], [], [] - titles = [] - texts = [] - interequations = [] - lists = [] - indices = [] - - for dropped_bbox in page['discarded_blocks']: - page_dropped_list.append(dropped_bbox['bbox']) - dropped_bbox_list.append(page_dropped_list) - for block in page['para_blocks']: - bbox = block['bbox'] - if block['type'] == BlockType.Table: - tables.append(bbox) - for nested_block in block['blocks']: - bbox = nested_block['bbox'] - if nested_block['type'] == BlockType.TableBody: - tables_body.append(bbox) - elif nested_block['type'] == BlockType.TableCaption: - tables_caption.append(bbox) - elif nested_block['type'] == BlockType.TableFootnote: - tables_footnote.append(bbox) - elif block['type'] == BlockType.Image: - imgs.append(bbox) - for nested_block in block['blocks']: - bbox = nested_block['bbox'] - if nested_block['type'] == BlockType.ImageBody: - imgs_body.append(bbox) - elif nested_block['type'] == BlockType.ImageCaption: - imgs_caption.append(bbox) - elif nested_block['type'] == BlockType.ImageFootnote: - imgs_footnote.append(bbox) - elif block['type'] == BlockType.Title: - titles.append(bbox) - elif block['type'] == BlockType.Text: - texts.append(bbox) - elif block['type'] == BlockType.InterlineEquation: - interequations.append(bbox) - elif block['type'] == BlockType.List: - lists.append(bbox) - elif block['type'] == BlockType.Index: - indices.append(bbox) - - tables_list.append(tables) - tables_body_list.append(tables_body) - tables_caption_list.append(tables_caption) - tables_footnote_list.append(tables_footnote) - imgs_list.append(imgs) - imgs_body_list.append(imgs_body) - imgs_caption_list.append(imgs_caption) - imgs_footnote_list.append(imgs_footnote) - titles_list.append(titles) - texts_list.append(texts) - interequations_list.append(interequations) - lists_list.append(lists) - indexs_list.append(indices) - - layout_bbox_list = [] - - table_type_order = { - 'table_caption': 1, - 'table_body': 2, - 'table_footnote': 3 - } - for page in pdf_info: - page_block_list = [] - for block in page['para_blocks']: - if block['type'] in [ - BlockType.Text, - BlockType.Title, - BlockType.InterlineEquation, - BlockType.List, - BlockType.Index, - ]: - bbox = block['bbox'] - page_block_list.append(bbox) - elif block['type'] in [BlockType.Image]: - for sub_block in block['blocks']: - bbox = sub_block['bbox'] - page_block_list.append(bbox) - elif block['type'] in [BlockType.Table]: - sorted_blocks = sorted(block['blocks'], key=lambda x: table_type_order[x['type']]) - for sub_block in sorted_blocks: - bbox = sub_block['bbox'] - page_block_list.append(bbox) - - layout_bbox_list.append(page_block_list) - - pdf_docs = fitz.open('pdf', pdf_bytes) - - for i, page in enumerate(pdf_docs): - - draw_bbox_without_number(i, dropped_bbox_list, page, [158, 158, 158], True) - # draw_bbox_without_number(i, tables_list, page, [153, 153, 0], True) # color ! - draw_bbox_without_number(i, tables_body_list, page, [204, 204, 0], True) - draw_bbox_without_number(i, tables_caption_list, page, [255, 255, 102], True) - draw_bbox_without_number(i, tables_footnote_list, page, [229, 255, 204], True) - # draw_bbox_without_number(i, imgs_list, page, [51, 102, 0], True) - draw_bbox_without_number(i, imgs_body_list, page, [153, 255, 51], True) - draw_bbox_without_number(i, imgs_caption_list, page, [102, 178, 255], True) - draw_bbox_without_number(i, imgs_footnote_list, page, [255, 178, 102], True), - draw_bbox_without_number(i, titles_list, page, [102, 102, 255], True) - draw_bbox_without_number(i, texts_list, page, [153, 0, 76], True) - draw_bbox_without_number(i, interequations_list, page, [0, 255, 0], True) - draw_bbox_without_number(i, lists_list, page, [40, 169, 92], True) - draw_bbox_without_number(i, indexs_list, page, [40, 169, 92], True) - - draw_bbox_with_number( - i, layout_bbox_list, page, [255, 0, 0], False, draw_bbox=False - ) - - # Save the PDF - pdf_docs.save(f'{out_path}/{filename}_layout.pdf') - - -def draw_span_bbox(pdf_info, pdf_bytes, out_path, filename): - text_list = [] - inline_equation_list = [] - interline_equation_list = [] - image_list = [] - table_list = [] - dropped_list = [] - next_page_text_list = [] - next_page_inline_equation_list = [] - - def get_span_info(span): - if span['type'] == ContentType.Text: - if span.get(CROSS_PAGE, False): - next_page_text_list.append(span['bbox']) - else: - page_text_list.append(span['bbox']) - elif span['type'] == ContentType.InlineEquation: - if span.get(CROSS_PAGE, False): - next_page_inline_equation_list.append(span['bbox']) - else: - page_inline_equation_list.append(span['bbox']) - elif span['type'] == ContentType.InterlineEquation: - page_interline_equation_list.append(span['bbox']) - elif span['type'] == ContentType.Image: - page_image_list.append(span['bbox']) - elif span['type'] == ContentType.Table: - page_table_list.append(span['bbox']) - - for page in pdf_info: - page_text_list = [] - page_inline_equation_list = [] - page_interline_equation_list = [] - page_image_list = [] - page_table_list = [] - page_dropped_list = [] - - # 将跨页的span放到移动到下一页的列表中 - if len(next_page_text_list) > 0: - page_text_list.extend(next_page_text_list) - next_page_text_list.clear() - if len(next_page_inline_equation_list) > 0: - page_inline_equation_list.extend(next_page_inline_equation_list) - next_page_inline_equation_list.clear() - - # 构造dropped_list - for block in page['discarded_blocks']: - if block['type'] == BlockType.Discarded: - for line in block['lines']: - for span in line['spans']: - page_dropped_list.append(span['bbox']) - dropped_list.append(page_dropped_list) - # 构造其余useful_list - for block in page['para_blocks']: - if block['type'] in [ - BlockType.Text, - BlockType.Title, - BlockType.InterlineEquation, - BlockType.List, - BlockType.Index, - ]: - for line in block['lines']: - for span in line['spans']: - get_span_info(span) - elif block['type'] in [BlockType.Image, BlockType.Table]: - for sub_block in block['blocks']: - for line in sub_block['lines']: - for span in line['spans']: - get_span_info(span) - text_list.append(page_text_list) - inline_equation_list.append(page_inline_equation_list) - interline_equation_list.append(page_interline_equation_list) - image_list.append(page_image_list) - table_list.append(page_table_list) - pdf_docs = fitz.open('pdf', pdf_bytes) - for i, page in enumerate(pdf_docs): - # 获取当前页面的数据 - draw_bbox_without_number(i, text_list, page, [255, 0, 0], False) - draw_bbox_without_number(i, inline_equation_list, page, [0, 255, 0], False) - draw_bbox_without_number(i, interline_equation_list, page, [0, 0, 255], False) - draw_bbox_without_number(i, image_list, page, [255, 204, 0], False) - draw_bbox_without_number(i, table_list, page, [204, 0, 255], False) - draw_bbox_without_number(i, dropped_list, page, [158, 158, 158], False) - - # Save the PDF - pdf_docs.save(f'{out_path}/{filename}_spans.pdf') - - -def draw_model_bbox(model_list: list, pdf_bytes, out_path, filename): - dropped_bbox_list = [] - tables_body_list, tables_caption_list, tables_footnote_list = [], [], [] - imgs_body_list, imgs_caption_list, imgs_footnote_list = [], [], [] - titles_list = [] - texts_list = [] - interequations_list = [] - pdf_docs = fitz.open('pdf', pdf_bytes) - magic_model = MagicModel(model_list, PymuDocDataset(pdf_bytes)) - for i in range(len(model_list)): - page_dropped_list = [] - tables_body, tables_caption, tables_footnote = [], [], [] - imgs_body, imgs_caption, imgs_footnote = [], [], [] - titles = [] - texts = [] - interequations = [] - page_info = magic_model.get_model_list(i) - layout_dets = page_info['layout_dets'] - for layout_det in layout_dets: - bbox = layout_det['bbox'] - if layout_det['category_id'] == CategoryId.Text: - texts.append(bbox) - elif layout_det['category_id'] == CategoryId.Title: - titles.append(bbox) - elif layout_det['category_id'] == CategoryId.TableBody: - tables_body.append(bbox) - elif layout_det['category_id'] == CategoryId.TableCaption: - tables_caption.append(bbox) - elif layout_det['category_id'] == CategoryId.TableFootnote: - tables_footnote.append(bbox) - elif layout_det['category_id'] == CategoryId.ImageBody: - imgs_body.append(bbox) - elif layout_det['category_id'] == CategoryId.ImageCaption: - imgs_caption.append(bbox) - elif layout_det['category_id'] == CategoryId.InterlineEquation_YOLO: - interequations.append(bbox) - elif layout_det['category_id'] == CategoryId.Abandon: - page_dropped_list.append(bbox) - elif layout_det['category_id'] == CategoryId.ImageFootnote: - imgs_footnote.append(bbox) - - tables_body_list.append(tables_body) - tables_caption_list.append(tables_caption) - tables_footnote_list.append(tables_footnote) - imgs_body_list.append(imgs_body) - imgs_caption_list.append(imgs_caption) - titles_list.append(titles) - texts_list.append(texts) - interequations_list.append(interequations) - dropped_bbox_list.append(page_dropped_list) - imgs_footnote_list.append(imgs_footnote) - - for i, page in enumerate(pdf_docs): - draw_bbox_with_number( - i, dropped_bbox_list, page, [158, 158, 158], True - ) # color ! - draw_bbox_with_number(i, tables_body_list, page, [204, 204, 0], True) - draw_bbox_with_number(i, tables_caption_list, page, [255, 255, 102], True) - draw_bbox_with_number(i, tables_footnote_list, page, [229, 255, 204], True) - draw_bbox_with_number(i, imgs_body_list, page, [153, 255, 51], True) - draw_bbox_with_number(i, imgs_caption_list, page, [102, 178, 255], True) - draw_bbox_with_number(i, imgs_footnote_list, page, [255, 178, 102], True) - draw_bbox_with_number(i, titles_list, page, [102, 102, 255], True) - draw_bbox_with_number(i, texts_list, page, [153, 0, 76], True) - draw_bbox_with_number(i, interequations_list, page, [0, 255, 0], True) - - # Save the PDF - pdf_docs.save(f'{out_path}/{filename}_model.pdf') - - -def draw_line_sort_bbox(pdf_info, pdf_bytes, out_path, filename): - layout_bbox_list = [] - - for page in pdf_info: - page_line_list = [] - for block in page['preproc_blocks']: - if block['type'] in [BlockType.Text, BlockType.Title, BlockType.InterlineEquation]: - for line in block['lines']: - bbox = line['bbox'] - index = line['index'] - page_line_list.append({'index': index, 'bbox': bbox}) - if block['type'] in [BlockType.Image, BlockType.Table]: - for sub_block in block['blocks']: - if sub_block['type'] in [BlockType.ImageBody, BlockType.TableBody]: - for line in sub_block['virtual_lines']: - bbox = line['bbox'] - index = line['index'] - page_line_list.append({'index': index, 'bbox': bbox}) - elif sub_block['type'] in [BlockType.ImageCaption, BlockType.TableCaption, BlockType.ImageFootnote, BlockType.TableFootnote]: - for line in sub_block['lines']: - bbox = line['bbox'] - index = line['index'] - page_line_list.append({'index': index, 'bbox': bbox}) - sorted_bboxes = sorted(page_line_list, key=lambda x: x['index']) - layout_bbox_list.append(sorted_bbox['bbox'] for sorted_bbox in sorted_bboxes) - pdf_docs = fitz.open('pdf', pdf_bytes) - for i, page in enumerate(pdf_docs): - draw_bbox_with_number(i, layout_bbox_list, page, [255, 0, 0], False) - - pdf_docs.save(f'{out_path}/{filename}_line_sort.pdf') - - -def draw_layout_sort_bbox(pdf_info, pdf_bytes, out_path, filename): - layout_bbox_list = [] - - for page in pdf_info: - page_block_list = [] - for block in page['para_blocks']: - bbox = block['bbox'] - page_block_list.append(bbox) - layout_bbox_list.append(page_block_list) - pdf_docs = fitz.open('pdf', pdf_bytes) - for i, page in enumerate(pdf_docs): - draw_bbox_with_number(i, layout_bbox_list, page, [255, 0, 0], False) - - pdf_docs.save(f'{out_path}/{filename}_layout_sort.pdf') diff --git a/magic_pdf/libs/drop_reason.py b/magic_pdf/libs/drop_reason.py deleted file mode 100644 index 9f574fc2a..000000000 --- a/magic_pdf/libs/drop_reason.py +++ /dev/null @@ -1,27 +0,0 @@ - -class DropReason: - TEXT_BLCOK_HOR_OVERLAP = "text_block_horizontal_overlap" # 文字块有水平互相覆盖,导致无法准确定位文字顺序 - USEFUL_BLOCK_HOR_OVERLAP = "useful_block_horizontal_overlap" # 需保留的block水平覆盖 - COMPLICATED_LAYOUT = "complicated_layout" # 复杂的布局,暂时不支持 - TOO_MANY_LAYOUT_COLUMNS = "too_many_layout_columns" # 目前不支持分栏超过2列的 - COLOR_BACKGROUND_TEXT_BOX = "color_background_text_box" # 含有带色块的PDF,色块会改变阅读顺序,目前不支持带底色文字块的PDF。 - HIGH_COMPUTATIONAL_lOAD_BY_IMGS = "high_computational_load_by_imgs" # 含特殊图片,计算量太大,从而丢弃 - HIGH_COMPUTATIONAL_lOAD_BY_SVGS = "high_computational_load_by_svgs" # 特殊的SVG图,计算量太大,从而丢弃 - HIGH_COMPUTATIONAL_lOAD_BY_TOTAL_PAGES = "high_computational_load_by_total_pages" # 计算量超过负荷,当前方法下计算量消耗过大 - MISS_DOC_LAYOUT_RESULT = "missing doc_layout_result" # 版面分析失败 - Exception = "_exception" # 解析中发生异常 - ENCRYPTED = "encrypted" # PDF是加密的 - EMPTY_PDF = "total_page=0" # PDF页面总数为0 - NOT_IS_TEXT_PDF = "not_is_text_pdf" # 不是文字版PDF,无法直接解析 - DENSE_SINGLE_LINE_BLOCK = "dense_single_line_block" # 无法清晰的分段 - TITLE_DETECTION_FAILED = "title_detection_failed" # 探测标题失败 - TITLE_LEVEL_FAILED = "title_level_failed" # 分析标题级别失败(例如一级、二级、三级标题) - PARA_SPLIT_FAILED = "para_split_failed" # 识别段落失败 - PARA_MERGE_FAILED = "para_merge_failed" # 段落合并失败 - NOT_ALLOW_LANGUAGE = "not_allow_language" # 不支持的语种 - SPECIAL_PDF = "special_pdf" - PSEUDO_SINGLE_COLUMN = "pseudo_single_column" # 无法精确判断文字分栏 - CAN_NOT_DETECT_PAGE_LAYOUT="can_not_detect_page_layout" # 无法分析页面的版面 - NEGATIVE_BBOX_AREA = "negative_bbox_area" # 缩放导致 bbox 面积为负 - OVERLAP_BLOCKS_CAN_NOT_SEPARATION = "overlap_blocks_can_t_separation" # 无法分离重叠的block - \ No newline at end of file diff --git a/magic_pdf/libs/drop_tag.py b/magic_pdf/libs/drop_tag.py deleted file mode 100644 index b1c577174..000000000 --- a/magic_pdf/libs/drop_tag.py +++ /dev/null @@ -1,19 +0,0 @@ - -COLOR_BG_HEADER_TXT_BLOCK = "color_background_header_txt_block" -PAGE_NO = "page-no" # 页码 -CONTENT_IN_FOOT_OR_HEADER = 'in-foot-header-area' # 页眉页脚内的文本 -VERTICAL_TEXT = 'vertical-text' # 垂直文本 -ROTATE_TEXT = 'rotate-text' # 旋转文本 -EMPTY_SIDE_BLOCK = 'empty-side-block' # 边缘上的空白没有任何内容的block -ON_IMAGE_TEXT = 'on-image-text' # 文本在图片上 -ON_TABLE_TEXT = 'on-table-text' # 文本在表格上 - - -class DropTag: - PAGE_NUMBER = "page_no" - HEADER = "header" - FOOTER = "footer" - FOOTNOTE = "footnote" - NOT_IN_LAYOUT = "not_in_layout" - SPAN_OVERLAP = "span_overlap" - BLOCK_OVERLAP = "block_overlap" diff --git a/magic_pdf/libs/hash_utils.py b/magic_pdf/libs/hash_utils.py deleted file mode 100644 index 47b8aea74..000000000 --- a/magic_pdf/libs/hash_utils.py +++ /dev/null @@ -1,15 +0,0 @@ -import hashlib - - -def compute_md5(file_bytes): - hasher = hashlib.md5() - hasher.update(file_bytes) - return hasher.hexdigest().upper() - - -def compute_sha256(input_string): - hasher = hashlib.sha256() - # 在Python3中,需要将字符串转化为字节对象才能被哈希函数处理 - input_bytes = input_string.encode('utf-8') - hasher.update(input_bytes) - return hasher.hexdigest() diff --git a/magic_pdf/libs/json_compressor.py b/magic_pdf/libs/json_compressor.py deleted file mode 100644 index 77ef1c876..000000000 --- a/magic_pdf/libs/json_compressor.py +++ /dev/null @@ -1,27 +0,0 @@ -import json -import brotli -import base64 - -class JsonCompressor: - - @staticmethod - def compress_json(data): - """ - Compress a json object and encode it with base64 - """ - json_str = json.dumps(data) - json_bytes = json_str.encode('utf-8') - compressed = brotli.compress(json_bytes, quality=6) - compressed_str = base64.b64encode(compressed).decode('utf-8') # convert bytes to string - return compressed_str - - @staticmethod - def decompress_json(compressed_str): - """ - Decode the base64 string and decompress the json object - """ - compressed = base64.b64decode(compressed_str.encode('utf-8')) # convert string to bytes - decompressed_bytes = brotli.decompress(compressed) - json_str = decompressed_bytes.decode('utf-8') - data = json.loads(json_str) - return data diff --git a/magic_pdf/libs/language.py b/magic_pdf/libs/language.py deleted file mode 100644 index 396c9008d..000000000 --- a/magic_pdf/libs/language.py +++ /dev/null @@ -1,36 +0,0 @@ -import os -import unicodedata - -if not os.getenv("FTLANG_CACHE"): - current_file_path = os.path.abspath(__file__) - current_dir = os.path.dirname(current_file_path) - root_dir = os.path.dirname(current_dir) - ftlang_cache_dir = os.path.join(root_dir, 'resources', 'fasttext-langdetect') - os.environ["FTLANG_CACHE"] = str(ftlang_cache_dir) - # print(os.getenv("FTLANG_CACHE")) - -from fast_langdetect import detect_language - - -def detect_lang(text: str) -> str: - - if len(text) == 0: - return "" - try: - lang_upper = detect_language(text) - except: - html_no_ctrl_chars = ''.join([l for l in text if unicodedata.category(l)[0] not in ['C', ]]) - lang_upper = detect_language(html_no_ctrl_chars) - try: - lang = lang_upper.lower() - except: - lang = "" - return lang - - -if __name__ == '__main__': - print(os.getenv("FTLANG_CACHE")) - print(detect_lang("This is a test.")) - print(detect_lang("This is a test")) - print(detect_lang("这个是中文测试。")) - print(detect_lang("这个是中文测试。")) diff --git a/magic_pdf/libs/local_math.py b/magic_pdf/libs/local_math.py deleted file mode 100644 index 9edbcc707..000000000 --- a/magic_pdf/libs/local_math.py +++ /dev/null @@ -1,9 +0,0 @@ -def float_gt(a, b): - if 0.0001 >= abs(a -b): - return False - return a > b - -def float_equal(a, b): - if 0.0001 >= abs(a-b): - return True - return False \ No newline at end of file diff --git a/magic_pdf/libs/markdown_utils.py b/magic_pdf/libs/markdown_utils.py deleted file mode 100644 index 5708b477e..000000000 --- a/magic_pdf/libs/markdown_utils.py +++ /dev/null @@ -1,31 +0,0 @@ -import re - - -def escape_special_markdown_char(pymu_blocks): - """ - 转义正文里对markdown语法有特殊意义的字符 - """ - special_chars = ["*", "`", "~", "$"] - for blk in pymu_blocks: - for line in blk['lines']: - for span in line['spans']: - for char in special_chars: - span_text = span['text'] - span_type = span.get("_type", None) - if span_type in ['inline-equation', 'interline-equation']: - continue - elif span_text: - span['text'] = span['text'].replace(char, "\\" + char) - - return pymu_blocks - - -def ocr_escape_special_markdown_char(content): - """ - 转义正文里对markdown语法有特殊意义的字符 - """ - special_chars = ["*", "`", "~", "$"] - for char in special_chars: - content = content.replace(char, "\\" + char) - - return content diff --git a/magic_pdf/libs/nlp_utils.py b/magic_pdf/libs/nlp_utils.py deleted file mode 100644 index 49a7365b3..000000000 --- a/magic_pdf/libs/nlp_utils.py +++ /dev/null @@ -1,203 +0,0 @@ -import re -from os import path - -from collections import Counter - -from loguru import logger - -# from langdetect import detect -import spacy -import en_core_web_sm -import zh_core_web_sm - -from magic_pdf.libs.language import detect_lang - - -class NLPModels: - """ - How to upload local models to s3: - - config aws cli: - doc\SETUP-CLI.md - doc\setup_cli.sh - app\config\__init__.py - - $ cd {local_dir_storing_models} - - $ ls models - en_core_web_sm-3.7.1/ - zh_core_web_sm-3.7.0/ - - $ aws s3 sync models/ s3://llm-infra/models --profile=p_project_norm - - $ aws s3 --profile=p_project_norm ls s3://llm-infra/models/ - PRE en_core_web_sm-3.7.1/ - PRE zh_core_web_sm-3.7.0/ - """ - - def __init__(self): - # if OS is windows, set "TMP_DIR" to "D:/tmp" - - home_dir = path.expanduser("~") - self.default_local_path = path.join(home_dir, ".nlp_models") - self.default_shared_path = "/share/pdf_processor/nlp_models" - self.default_hdfs_path = "hdfs://pdf_processor/nlp_models" - self.default_s3_path = "s3://llm-infra/models" - self.nlp_models = self.nlp_models = { - "en_core_web_sm": { - "type": "spacy", - "version": "3.7.1", - }, - "en_core_web_md": { - "type": "spacy", - "version": "3.7.1", - }, - "en_core_web_lg": { - "type": "spacy", - "version": "3.7.1", - }, - "zh_core_web_sm": { - "type": "spacy", - "version": "3.7.0", - }, - "zh_core_web_md": { - "type": "spacy", - "version": "3.7.0", - }, - "zh_core_web_lg": { - "type": "spacy", - "version": "3.7.0", - }, - } - self.en_core_web_sm_model = en_core_web_sm.load() - self.zh_core_web_sm_model = zh_core_web_sm.load() - - def load_model(self, model_name, model_type, model_version): - if ( - model_name in self.nlp_models - and self.nlp_models[model_name]["type"] == model_type - and self.nlp_models[model_name]["version"] == model_version - ): - return spacy.load(model_name) if spacy.util.is_package(model_name) else None - - else: - logger.error(f"Unsupported model name or version: {model_name} {model_version}") - return None - - def detect_language(self, text, use_langdetect=False): - if len(text) == 0: - return None - if use_langdetect: - # print("use_langdetect") - # print(detect_lang(text)) - # return detect_lang(text) - if detect_lang(text) == "zh": - return "zh" - else: - return "en" - - if not use_langdetect: - en_count = len(re.findall(r"[a-zA-Z]", text)) - cn_count = len(re.findall(r"[\u4e00-\u9fff]", text)) - - if en_count > cn_count: - return "en" - - if cn_count > en_count: - return "zh" - - def detect_entity_catgr_using_nlp(self, text, threshold=0.5): - """ - Detect entity categories using NLP models and return the most frequent entity types. - - Parameters - ---------- - text : str - Text to be processed. - - Returns - ------- - str - The most frequent entity type. - """ - lang = self.detect_language(text, use_langdetect=True) - - if lang == "en": - nlp_model = self.en_core_web_sm_model - elif lang == "zh": - nlp_model = self.zh_core_web_sm_model - else: - # logger.error(f"Unsupported language: {lang}") - return {} - - # Splitting text into smaller parts - text_parts = re.split(r"[,;,;、\s & |]+", text) - - text_parts = [part for part in text_parts if not re.match(r"[\d\W]+", part)] # Remove non-words - text_combined = " ".join(text_parts) - - try: - doc = nlp_model(text_combined) - entity_counts = Counter([ent.label_ for ent in doc.ents]) - word_counts_in_entities = Counter() - - for ent in doc.ents: - word_counts_in_entities[ent.label_] += len(ent.text.split()) - - total_words_in_entities = sum(word_counts_in_entities.values()) - total_words = len([token for token in doc if not token.is_punct]) - - if total_words_in_entities == 0 or total_words == 0: - return None - - entity_percentage = total_words_in_entities / total_words - if entity_percentage < 0.5: - return None - - most_common_entity, word_count = word_counts_in_entities.most_common(1)[0] - entity_percentage = word_count / total_words_in_entities - - if entity_percentage >= threshold: - return most_common_entity - else: - return None - except Exception as e: - logger.error(f"Error in entity detection: {e}") - return None - - -def __main__(): - nlpModel = NLPModels() - - test_strings = [ - "张三", - "张三, 李四,王五; 赵六", - "John Doe", - "Jane Smith", - "Lee, John", - "John Doe, Jane Smith; Alice Johnson,Bob Lee", - "孙七, Michael Jordan;赵八", - "David Smith Michael O'Connor; Kevin ßáçøñ", - "李雷·韩梅梅, 张三·李四", - "Charles Robert Darwin, Isaac Newton", - "莱昂纳多·迪卡普里奥, 杰克·吉伦哈尔", - "John Doe, Jane Smith; Alice Johnson", - "张三, 李四,王五; 赵六", - "Lei Wang, Jia Li, and Xiaojun Chen, LINKE YANG OU, and YUAN ZHANG", - "Rachel Mills & William Barry & Susanne B. Haga", - "Claire Chabut* and Jean-François Bussières", - "1 Department of Chemistry, Northeastern University, Shenyang 110004, China 2 State Key Laboratory of Polymer Physics and Chemistry, Changchun Institute of Applied Chemistry, Chinese Academy of Sciences, Changchun 130022, China", - "Changchun", - "china", - "Rongjun Song, 1,2 Baoyan Zhang, 1 Baotong Huang, 2 Tao Tang 2", - "Synergistic Effect of Supported Nickel Catalyst with Intumescent Flame-Retardants on Flame Retardancy and Thermal Stability of Polypropylene", - "Synergistic Effect of Supported Nickel Catalyst with", - "Intumescent Flame-Retardants on Flame Retardancy", - "and Thermal Stability of Polypropylene", - ] - - for test in test_strings: - print() - print(f"Original String: {test}") - - result = nlpModel.detect_entity_catgr_using_nlp(test) - print(f"Detected entities: {result}") - - -if __name__ == "__main__": - __main__() diff --git a/magic_pdf/libs/ocr_content_type.py b/magic_pdf/libs/ocr_content_type.py deleted file mode 100644 index 30d88cfde..000000000 --- a/magic_pdf/libs/ocr_content_type.py +++ /dev/null @@ -1,40 +0,0 @@ -class ContentType: - Image = 'image' - Table = 'table' - Text = 'text' - InlineEquation = 'inline_equation' - InterlineEquation = 'interline_equation' - - -class BlockType: - Image = 'image' - ImageBody = 'image_body' - ImageCaption = 'image_caption' - ImageFootnote = 'image_footnote' - Table = 'table' - TableBody = 'table_body' - TableCaption = 'table_caption' - TableFootnote = 'table_footnote' - Text = 'text' - Title = 'title' - InterlineEquation = 'interline_equation' - Footnote = 'footnote' - Discarded = 'discarded' - List = 'list' - Index = 'index' - - -class CategoryId: - Title = 0 - Text = 1 - Abandon = 2 - ImageBody = 3 - ImageCaption = 4 - TableBody = 5 - TableCaption = 6 - TableFootnote = 7 - InterlineEquation_Layout = 8 - InlineEquation = 13 - InterlineEquation_YOLO = 14 - OcrText = 15 - ImageFootnote = 101 diff --git a/magic_pdf/libs/pdf_check.py b/magic_pdf/libs/pdf_check.py deleted file mode 100644 index 3f9dc350c..000000000 --- a/magic_pdf/libs/pdf_check.py +++ /dev/null @@ -1,62 +0,0 @@ -from io import BytesIO -import re -import fitz -import numpy as np -from loguru import logger -from pdfminer.high_level import extract_text - - -def calculate_sample_count(total_page: int): - """ - 根据总页数和采样率计算采样页面的数量。 - """ - select_page_cnt = min(10, total_page) - return select_page_cnt - - -def extract_pages(src_pdf_bytes: bytes): - pdf_docs = fitz.open("pdf", src_pdf_bytes) - total_page = len(pdf_docs) - if total_page == 0: - # 如果PDF没有页面,直接返回空文档 - logger.warning("PDF is empty, return empty document") - return fitz.Document() - select_page_cnt = calculate_sample_count(total_page) - - page_num = np.random.choice(total_page, select_page_cnt, replace=False) - sample_docs = fitz.Document() - try: - for index in page_num: - sample_docs.insert_pdf(pdf_docs, from_page=int(index), to_page=int(index)) - except Exception as e: - logger.exception(e) - return sample_docs - - -def detect_invalid_chars(src_pdf_bytes: bytes) -> bool: - """" - 检测PDF中是否包含非法字符 - """ - '''pdfminer比较慢,需要先随机抽取10页左右的sample''' - sample_docs = extract_pages(src_pdf_bytes) - sample_pdf_bytes = sample_docs.tobytes() - sample_pdf_file_like_object = BytesIO(sample_pdf_bytes) - text = extract_text(sample_pdf_file_like_object) - text = text.replace("\n", "") - # logger.info(text) - '''乱码文本用pdfminer提取出来的文本特征是(cid:xxx)''' - cid_pattern = re.compile(r'\(cid:\d+\)') - matches = cid_pattern.findall(text) - cid_count = len(matches) - cid_len = sum(len(match) for match in matches) - text_len = len(text) - if text_len == 0: - cid_chars_radio = 0 - else: - cid_chars_radio = cid_count/(cid_count + text_len - cid_len) - logger.info(f"cid_count: {cid_count}, text_len: {text_len}, cid_chars_radio: {cid_chars_radio}") - '''当一篇文章存在5%以上的文本是乱码时,认为该文档为乱码文档''' - if cid_chars_radio > 0.05: - return False # 乱码文档 - else: - return True # 正常文档 diff --git a/magic_pdf/libs/pdf_image_tools.py b/magic_pdf/libs/pdf_image_tools.py deleted file mode 100644 index 2e5a57eec..000000000 --- a/magic_pdf/libs/pdf_image_tools.py +++ /dev/null @@ -1,33 +0,0 @@ - -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.libs.commons import fitz -from magic_pdf.libs.commons import join_path -from magic_pdf.libs.hash_utils import compute_sha256 - - -def cut_image(bbox: tuple, page_num: int, page: fitz.Page, return_path, imageWriter: AbsReaderWriter): - """ - 从第page_num页的page中,根据bbox进行裁剪出一张jpg图片,返回图片路径 - save_path:需要同时支持s3和本地, 图片存放在save_path下,文件名是: {page_num}_{bbox[0]}_{bbox[1]}_{bbox[2]}_{bbox[3]}.jpg , bbox内数字取整。 - """ - # 拼接文件名 - filename = f"{page_num}_{int(bbox[0])}_{int(bbox[1])}_{int(bbox[2])}_{int(bbox[3])}" - - # 老版本返回不带bucket的路径 - img_path = join_path(return_path, filename) if return_path is not None else None - - # 新版本生成平铺路径 - img_hash256_path = f"{compute_sha256(img_path)}.jpg" - - # 将坐标转换为fitz.Rect对象 - rect = fitz.Rect(*bbox) - # 配置缩放倍数为3倍 - zoom = fitz.Matrix(3, 3) - # 截取图片 - pix = page.get_pixmap(clip=rect, matrix=zoom) - - byte_data = pix.tobytes(output='jpeg', jpg_quality=95) - - imageWriter.write(byte_data, img_hash256_path, AbsReaderWriter.MODE_BIN) - - return img_hash256_path diff --git a/magic_pdf/libs/safe_filename.py b/magic_pdf/libs/safe_filename.py deleted file mode 100644 index 1076a4bae..000000000 --- a/magic_pdf/libs/safe_filename.py +++ /dev/null @@ -1,11 +0,0 @@ -import os - - -def sanitize_filename(filename, replacement="_"): - if os.name == 'nt': - invalid_chars = '<>:"|?*' - - for char in invalid_chars: - filename = filename.replace(char, replacement) - - return filename diff --git a/magic_pdf/libs/textbase.py b/magic_pdf/libs/textbase.py deleted file mode 100644 index bb8875b38..000000000 --- a/magic_pdf/libs/textbase.py +++ /dev/null @@ -1,33 +0,0 @@ -import math - - -def __inc_dict_val(mp, key, val_inc:int): - if mp.get(key): - mp[key] = mp[key] + val_inc - else: - mp[key] = val_inc - - - -def get_text_block_base_info(block): - """ - 获取这个文本块里的字体的颜色、字号、字体 - 按照正文字数最多的返回 - """ - - counter = {} - - for line in block['lines']: - for span in line['spans']: - color = span['color'] - size = round(span['size'], 2) - font = span['font'] - - txt_len = len(span['text']) - __inc_dict_val(counter, (color, size, font), txt_len) - - - c, s, ft = max(counter, key=counter.get) - - return c, s, ft - \ No newline at end of file diff --git a/magic_pdf/libs/version.py b/magic_pdf/libs/version.py deleted file mode 100644 index 777f190df..000000000 --- a/magic_pdf/libs/version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "0.8.0" diff --git a/magic_pdf/libs/vis_utils.py b/magic_pdf/libs/vis_utils.py deleted file mode 100644 index 5a4988a77..000000000 --- a/magic_pdf/libs/vis_utils.py +++ /dev/null @@ -1,308 +0,0 @@ -from magic_pdf.libs.commons import fitz -import os - - -def draw_bbox_on_page(raw_pdf_doc: fitz.Document, paras_dict:dict, save_path: str): - """ - 在page上画出bbox,保存到save_path - """ - # 检查文件是否存在 - is_new_pdf = False - if os.path.exists(save_path): - # 打开现有的 PDF 文件 - doc = fitz.open(save_path) - else: - # 创建一个新的空白 PDF 文件 - is_new_pdf = True - doc = fitz.open('') - - color_map = { - 'image': fitz.pdfcolor["yellow"], - 'text': fitz.pdfcolor['blue'], - "table": fitz.pdfcolor['green'] - } - - for k, v in paras_dict.items(): - page_idx = v['page_idx'] - width = raw_pdf_doc[page_idx].rect.width - height = raw_pdf_doc[page_idx].rect.height - new_page = doc.new_page(width=width, height=height) - - shape = new_page.new_shape() - for order, block in enumerate(v['preproc_blocks']): - rect = fitz.Rect(block['bbox']) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=None, fill=color_map['text'], fill_opacity=0.2) - shape.finish() - shape.commit() - - for img in v['images']: - # 原始box画上去 - rect = fitz.Rect(img['bbox']) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=None, fill=fitz.pdfcolor['yellow']) - shape.finish() - shape.commit() - - for img in v['image_backup']: - # 原始box画上去 - rect = fitz.Rect(img['bbox']) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=fitz.pdfcolor['yellow'], fill=None) - shape.finish() - shape.commit() - - for tb in v['droped_text_block']: - # 原始box画上去 - rect = fitz.Rect(tb['bbox']) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=None, fill=fitz.pdfcolor['black'], fill_opacity=0.4) - shape.finish() - shape.commit() - - # TODO table - for tb in v['tables']: - rect = fitz.Rect(tb['bbox']) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=None, fill=fitz.pdfcolor['green'], fill_opacity=0.2) - shape.finish() - shape.commit() - - - parent_dir = os.path.dirname(save_path) - if not os.path.exists(parent_dir): - os.makedirs(parent_dir) - - if is_new_pdf: - doc.save(save_path) - else: - doc.saveIncr() - doc.close() - - -def debug_show_bbox(raw_pdf_doc: fitz.Document, page_idx: int, bboxes: list, droped_bboxes:list, expect_drop_bboxes:list, save_path: str, expected_page_id:int): - """ - 以覆盖的方式写个临时的pdf,用于debug - """ - if page_idx!=expected_page_id: - return - - if os.path.exists(save_path): - # 删除已经存在的文件 - os.remove(save_path) - # 创建一个新的空白 PDF 文件 - doc = fitz.open('') - - width = raw_pdf_doc[page_idx].rect.width - height = raw_pdf_doc[page_idx].rect.height - new_page = doc.new_page(width=width, height=height) - - shape = new_page.new_shape() - for bbox in bboxes: - # 原始box画上去 - rect = fitz.Rect(*bbox[0:4]) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=fitz.pdfcolor['red'], fill=fitz.pdfcolor['blue'], fill_opacity=0.2) - shape.finish() - shape.commit() - - for bbox in droped_bboxes: - # 原始box画上去 - rect = fitz.Rect(*bbox[0:4]) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=None, fill=fitz.pdfcolor['yellow'], fill_opacity=0.2) - shape.finish() - shape.commit() - - for bbox in expect_drop_bboxes: - # 原始box画上去 - rect = fitz.Rect(*bbox[0:4]) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=fitz.pdfcolor['red'], fill=None) - shape.finish() - shape.commit() - - # shape.insert_textbox(fitz.Rect(200, 0, 600, 20), f"total bboxes: {len(bboxes)}", fontname="helv", fontsize=12, - # color=(0, 0, 0)) - # shape.finish(color=fitz.pdfcolor['black']) - # shape.commit() - - parent_dir = os.path.dirname(save_path) - if not os.path.exists(parent_dir): - os.makedirs(parent_dir) - - doc.save(save_path) - doc.close() - - -def debug_show_page(page, bboxes1: list,bboxes2: list,bboxes3: list,): - save_path = "./tmp/debug.pdf" - if os.path.exists(save_path): - # 删除已经存在的文件 - os.remove(save_path) - # 创建一个新的空白 PDF 文件 - doc = fitz.open('') - - width = page.rect.width - height = page.rect.height - new_page = doc.new_page(width=width, height=height) - - shape = new_page.new_shape() - for bbox in bboxes1: - # 原始box画上去 - rect = fitz.Rect(*bbox[0:4]) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=fitz.pdfcolor['red'], fill=fitz.pdfcolor['blue'], fill_opacity=0.2) - shape.finish() - shape.commit() - - for bbox in bboxes2: - # 原始box画上去 - rect = fitz.Rect(*bbox[0:4]) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=None, fill=fitz.pdfcolor['yellow'], fill_opacity=0.2) - shape.finish() - shape.commit() - - for bbox in bboxes3: - # 原始box画上去 - rect = fitz.Rect(*bbox[0:4]) - shape = new_page.new_shape() - shape.draw_rect(rect) - shape.finish(color=fitz.pdfcolor['red'], fill=None) - shape.finish() - shape.commit() - - parent_dir = os.path.dirname(save_path) - if not os.path.exists(parent_dir): - os.makedirs(parent_dir) - - doc.save(save_path) - doc.close() - - - - -def draw_layout_bbox_on_page(raw_pdf_doc: fitz.Document, paras_dict:dict, header, footer, pdf_path: str): - """ - 在page上画出bbox,保存到save_path - """ - # 检查文件是否存在 - is_new_pdf = False - if os.path.exists(pdf_path): - # 打开现有的 PDF 文件 - doc = fitz.open(pdf_path) - else: - # 创建一个新的空白 PDF 文件 - is_new_pdf = True - doc = fitz.open('') - - for k, v in paras_dict.items(): - page_idx = v['page_idx'] - layouts = v['layout_bboxes'] - page = doc[page_idx] - shape = page.new_shape() - for order, layout in enumerate(layouts): - border_offset = 1 - rect_box = layout['layout_bbox'] - layout_label = layout['layout_label'] - fill_color = fitz.pdfcolor['pink'] if layout_label=='U' else None - rect_box = [rect_box[0]+1, rect_box[1]-border_offset, rect_box[2]-1, rect_box[3]+border_offset] - rect = fitz.Rect(*rect_box) - shape.draw_rect(rect) - shape.finish(color=fitz.pdfcolor['red'], fill=fill_color, fill_opacity=0.4) - """ - draw order text on layout box - """ - font_size = 10 - shape.insert_text((rect_box[0] + 1, rect_box[1] + font_size), f"{order}", fontsize=font_size, color=(0, 0, 0)) - - """画上footer header""" - if header: - shape.draw_rect(fitz.Rect(header)) - shape.finish(color=None, fill=fitz.pdfcolor['black'], fill_opacity=0.2) - if footer: - shape.draw_rect(fitz.Rect(footer)) - shape.finish(color=None, fill=fitz.pdfcolor['black'], fill_opacity=0.2) - - shape.commit() - - if is_new_pdf: - doc.save(pdf_path) - else: - doc.saveIncr() - doc.close() - - -@DeprecationWarning -def draw_layout_on_page(raw_pdf_doc: fitz.Document, page_idx: int, page_layout: list, pdf_path: str): - """ - 把layout的box用红色边框花在pdf_path的page_idx上 - """ - def draw(shape, layout, fill_color=fitz.pdfcolor['pink']): - border_offset = 1 - rect_box = layout['layout_bbox'] - layout_label = layout['layout_label'] - sub_layout = layout['sub_layout'] - if len(sub_layout)==0: - fill_color = fill_color if layout_label=='U' else None - rect_box = [rect_box[0]+1, rect_box[1]-border_offset, rect_box[2]-1, rect_box[3]+border_offset] - rect = fitz.Rect(*rect_box) - shape.draw_rect(rect) - shape.finish(color=fitz.pdfcolor['red'], fill=fill_color, fill_opacity=0.2) - # if layout_label=='U': - # bad_boxes = layout.get("bad_boxes", []) - # for bad_box in bad_boxes: - # rect = fitz.Rect(*bad_box) - # shape.draw_rect(rect) - # shape.finish(color=fitz.pdfcolor['red'], fill=fitz.pdfcolor['red'], fill_opacity=0.2) - # else: - # rect = fitz.Rect(*rect_box) - # shape.draw_rect(rect) - # shape.finish(color=fitz.pdfcolor['blue']) - - for sub_layout in sub_layout: - draw(shape, sub_layout) - shape.commit() - - - # 检查文件是否存在 - is_new_pdf = False - if os.path.exists(pdf_path): - # 打开现有的 PDF 文件 - doc = fitz.open(pdf_path) - else: - # 创建一个新的空白 PDF 文件 - is_new_pdf = True - doc = fitz.open('') - - page = doc[page_idx] - shape = page.new_shape() - for order, layout in enumerate(page_layout): - draw(shape, layout, fitz.pdfcolor['yellow']) - - # shape.insert_textbox(fitz.Rect(200, 0, 600, 20), f"total bboxes: {len(layout)}", fontname="helv", fontsize=12, - # color=(0, 0, 0)) - # shape.finish(color=fitz.pdfcolor['black']) - # shape.commit() - - parent_dir = os.path.dirname(pdf_path) - if not os.path.exists(parent_dir): - os.makedirs(parent_dir) - - if is_new_pdf: - doc.save(pdf_path) - else: - doc.saveIncr() - doc.close() - \ No newline at end of file diff --git a/magic_pdf/model/__init__.py b/magic_pdf/model/__init__.py deleted file mode 100644 index 08653f24e..000000000 --- a/magic_pdf/model/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -__use_inside_model__ = True -__model_mode__ = "full" diff --git a/magic_pdf/model/doc_analyze_by_custom_model.py b/magic_pdf/model/doc_analyze_by_custom_model.py deleted file mode 100644 index ee50d6eb3..000000000 --- a/magic_pdf/model/doc_analyze_by_custom_model.py +++ /dev/null @@ -1,183 +0,0 @@ -import time - -import fitz -import numpy as np -from loguru import logger - -from magic_pdf.libs.clean_memory import clean_memory -from magic_pdf.libs.config_reader import get_local_models_dir, get_device, get_table_recog_config, get_layout_config, \ - get_formula_config -from magic_pdf.model.model_list import MODEL -import magic_pdf.model as model_config - - -def dict_compare(d1, d2): - return d1.items() == d2.items() - - -def remove_duplicates_dicts(lst): - unique_dicts = [] - for dict_item in lst: - if not any( - dict_compare(dict_item, existing_dict) for existing_dict in unique_dicts - ): - unique_dicts.append(dict_item) - return unique_dicts - - -def load_images_from_pdf(pdf_bytes: bytes, dpi=200, start_page_id=0, end_page_id=None) -> list: - try: - from PIL import Image - except ImportError: - logger.error("Pillow not installed, please install by pip.") - exit(1) - - images = [] - with fitz.open("pdf", pdf_bytes) as doc: - pdf_page_num = doc.page_count - end_page_id = end_page_id if end_page_id is not None and end_page_id >= 0 else pdf_page_num - 1 - if end_page_id > pdf_page_num - 1: - logger.warning("end_page_id is out of range, use images length") - end_page_id = pdf_page_num - 1 - - for index in range(0, doc.page_count): - if start_page_id <= index <= end_page_id: - page = doc[index] - mat = fitz.Matrix(dpi / 72, dpi / 72) - pm = page.get_pixmap(matrix=mat, alpha=False) - - # If the width or height exceeds 9000 after scaling, do not scale further. - if pm.width > 9000 or pm.height > 9000: - pm = page.get_pixmap(matrix=fitz.Matrix(1, 1), alpha=False) - - img = Image.frombytes("RGB", (pm.width, pm.height), pm.samples) - img = np.array(img) - img_dict = {"img": img, "width": pm.width, "height": pm.height} - else: - img_dict = {"img": [], "width": 0, "height": 0} - - images.append(img_dict) - return images - - -class ModelSingleton: - _instance = None - _models = {} - - def __new__(cls, *args, **kwargs): - if cls._instance is None: - cls._instance = super().__new__(cls) - return cls._instance - - def get_model(self, ocr: bool, show_log: bool, lang=None, layout_model=None, formula_enable=None, table_enable=None): - key = (ocr, show_log, lang, layout_model, formula_enable, table_enable) - if key not in self._models: - self._models[key] = custom_model_init(ocr=ocr, show_log=show_log, lang=lang, layout_model=layout_model, - formula_enable=formula_enable, table_enable=table_enable) - return self._models[key] - - -def custom_model_init(ocr: bool = False, show_log: bool = False, lang=None, - layout_model=None, formula_enable=None, table_enable=None): - - model = None - - if model_config.__model_mode__ == "lite": - logger.warning("The Lite mode is provided for developers to conduct testing only, and the output quality is " - "not guaranteed to be reliable.") - model = MODEL.Paddle - elif model_config.__model_mode__ == "full": - model = MODEL.PEK - - if model_config.__use_inside_model__: - model_init_start = time.time() - if model == MODEL.Paddle: - from magic_pdf.model.pp_structure_v2 import CustomPaddleModel - custom_model = CustomPaddleModel(ocr=ocr, show_log=show_log, lang=lang) - elif model == MODEL.PEK: - from magic_pdf.model.pdf_extract_kit import CustomPEKModel - # 从配置文件读取model-dir和device - local_models_dir = get_local_models_dir() - device = get_device() - - layout_config = get_layout_config() - if layout_model is not None: - layout_config["model"] = layout_model - - formula_config = get_formula_config() - if formula_enable is not None: - formula_config["enable"] = formula_enable - - table_config = get_table_recog_config() - if table_enable is not None: - table_config["enable"] = table_enable - - model_input = { - "ocr": ocr, - "show_log": show_log, - "models_dir": local_models_dir, - "device": device, - "table_config": table_config, - "layout_config": layout_config, - "formula_config": formula_config, - "lang": lang, - } - - custom_model = CustomPEKModel(**model_input) - else: - logger.error("Not allow model_name!") - exit(1) - model_init_cost = time.time() - model_init_start - logger.info(f"model init cost: {model_init_cost}") - else: - logger.error("use_inside_model is False, not allow to use inside model") - exit(1) - - return custom_model - - -def doc_analyze(pdf_bytes: bytes, ocr: bool = False, show_log: bool = False, - start_page_id=0, end_page_id=None, lang=None, - layout_model=None, formula_enable=None, table_enable=None): - - if lang == "": - lang = None - - model_manager = ModelSingleton() - custom_model = model_manager.get_model(ocr, show_log, lang, layout_model, formula_enable, table_enable) - - with fitz.open("pdf", pdf_bytes) as doc: - pdf_page_num = doc.page_count - end_page_id = end_page_id if end_page_id is not None and end_page_id >= 0 else pdf_page_num - 1 - if end_page_id > pdf_page_num - 1: - logger.warning("end_page_id is out of range, use images length") - end_page_id = pdf_page_num - 1 - - images = load_images_from_pdf(pdf_bytes, start_page_id=start_page_id, end_page_id=end_page_id) - - model_json = [] - doc_analyze_start = time.time() - - for index, img_dict in enumerate(images): - img = img_dict["img"] - page_width = img_dict["width"] - page_height = img_dict["height"] - if start_page_id <= index <= end_page_id: - result = custom_model(img) - else: - result = [] - page_info = {"page_no": index, "height": page_height, "width": page_width} - page_dict = {"layout_dets": result, "page_info": page_info} - model_json.append(page_dict) - - gc_start = time.time() - clean_memory() - gc_time = round(time.time() - gc_start, 2) - logger.info(f"gc time: {gc_time}") - - doc_analyze_time = round(time.time() - doc_analyze_start, 2) - doc_analyze_speed = round( (end_page_id + 1 - start_page_id) / doc_analyze_time, 2) - logger.info(f"doc analyze time: {round(time.time() - doc_analyze_start, 2)}," - f" speed: {doc_analyze_speed} pages/second") - - return model_json diff --git a/magic_pdf/model/magic_model.py b/magic_pdf/model/magic_model.py deleted file mode 100644 index 62bbeb152..000000000 --- a/magic_pdf/model/magic_model.py +++ /dev/null @@ -1,1023 +0,0 @@ -import json - -from magic_pdf.data.dataset import Dataset -from magic_pdf.libs.boxbase import (_is_in, _is_part_overlap, bbox_distance, - bbox_relative_pos, box_area, calculate_iou, - calculate_overlap_area_in_bbox1_area_ratio, - get_overlap_area) -from magic_pdf.libs.commons import fitz, join_path -from magic_pdf.libs.coordinate_transform import get_scale_ratio -from magic_pdf.libs.local_math import float_gt -from magic_pdf.libs.ModelBlockTypeEnum import ModelBlockTypeEnum -from magic_pdf.libs.ocr_content_type import CategoryId, ContentType -from magic_pdf.pre_proc.remove_bbox_overlap import _remove_overlap_between_bbox -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter - -CAPATION_OVERLAP_AREA_RATIO = 0.6 -MERGE_BOX_OVERLAP_AREA_RATIO = 1.1 - - -class MagicModel: - """每个函数没有得到元素的时候返回空list.""" - - def __fix_axis(self): - for model_page_info in self.__model_list: - need_remove_list = [] - page_no = model_page_info['page_info']['page_no'] - horizontal_scale_ratio, vertical_scale_ratio = get_scale_ratio( - model_page_info, self.__docs.get_page(page_no) - ) - layout_dets = model_page_info['layout_dets'] - for layout_det in layout_dets: - - if layout_det.get('bbox') is not None: - # 兼容直接输出bbox的模型数据,如paddle - x0, y0, x1, y1 = layout_det['bbox'] - else: - # 兼容直接输出poly的模型数据,如xxx - x0, y0, _, _, x1, y1, _, _ = layout_det['poly'] - - bbox = [ - int(x0 / horizontal_scale_ratio), - int(y0 / vertical_scale_ratio), - int(x1 / horizontal_scale_ratio), - int(y1 / vertical_scale_ratio), - ] - layout_det['bbox'] = bbox - # 删除高度或者宽度小于等于0的spans - if bbox[2] - bbox[0] <= 0 or bbox[3] - bbox[1] <= 0: - need_remove_list.append(layout_det) - for need_remove in need_remove_list: - layout_dets.remove(need_remove) - - def __fix_by_remove_low_confidence(self): - for model_page_info in self.__model_list: - need_remove_list = [] - layout_dets = model_page_info['layout_dets'] - for layout_det in layout_dets: - if layout_det['score'] <= 0.05: - need_remove_list.append(layout_det) - else: - continue - for need_remove in need_remove_list: - layout_dets.remove(need_remove) - - def __fix_by_remove_high_iou_and_low_confidence(self): - for model_page_info in self.__model_list: - need_remove_list = [] - layout_dets = model_page_info['layout_dets'] - for layout_det1 in layout_dets: - for layout_det2 in layout_dets: - if layout_det1 == layout_det2: - continue - if layout_det1['category_id'] in [ - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - ] and layout_det2['category_id'] in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]: - if ( - calculate_iou(layout_det1['bbox'], layout_det2['bbox']) - > 0.9 - ): - if layout_det1['score'] < layout_det2['score']: - layout_det_need_remove = layout_det1 - else: - layout_det_need_remove = layout_det2 - - if layout_det_need_remove not in need_remove_list: - need_remove_list.append(layout_det_need_remove) - else: - continue - else: - continue - for need_remove in need_remove_list: - layout_dets.remove(need_remove) - - def __init__(self, model_list: list, docs: Dataset): - self.__model_list = model_list - self.__docs = docs - """为所有模型数据添加bbox信息(缩放,poly->bbox)""" - self.__fix_axis() - """删除置信度特别低的模型数据(<0.05),提高质量""" - self.__fix_by_remove_low_confidence() - """删除高iou(>0.9)数据中置信度较低的那个""" - self.__fix_by_remove_high_iou_and_low_confidence() - self.__fix_footnote() - - def _bbox_distance(self, bbox1, bbox2): - left, right, bottom, top = bbox_relative_pos(bbox1, bbox2) - flags = [left, right, bottom, top] - count = sum([1 if v else 0 for v in flags]) - if count > 1: - return float('inf') - if left or right: - l1 = bbox1[3] - bbox1[1] - l2 = bbox2[3] - bbox2[1] - else: - l1 = bbox1[2] - bbox1[0] - l2 = bbox2[2] - bbox2[0] - - if l2 > l1 and (l2 - l1) / l1 > 0.3: - return float('inf') - - return bbox_distance(bbox1, bbox2) - - def __fix_footnote(self): - # 3: figure, 5: table, 7: footnote - for model_page_info in self.__model_list: - footnotes = [] - figures = [] - tables = [] - - for obj in model_page_info['layout_dets']: - if obj['category_id'] == 7: - footnotes.append(obj) - elif obj['category_id'] == 3: - figures.append(obj) - elif obj['category_id'] == 5: - tables.append(obj) - if len(footnotes) * len(figures) == 0: - continue - dis_figure_footnote = {} - dis_table_footnote = {} - - for i in range(len(footnotes)): - for j in range(len(figures)): - pos_flag_count = sum( - list( - map( - lambda x: 1 if x else 0, - bbox_relative_pos( - footnotes[i]['bbox'], figures[j]['bbox'] - ), - ) - ) - ) - if pos_flag_count > 1: - continue - dis_figure_footnote[i] = min( - self._bbox_distance(figures[j]['bbox'], footnotes[i]['bbox']), - dis_figure_footnote.get(i, float('inf')), - ) - for i in range(len(footnotes)): - for j in range(len(tables)): - pos_flag_count = sum( - list( - map( - lambda x: 1 if x else 0, - bbox_relative_pos( - footnotes[i]['bbox'], tables[j]['bbox'] - ), - ) - ) - ) - if pos_flag_count > 1: - continue - - dis_table_footnote[i] = min( - self._bbox_distance(tables[j]['bbox'], footnotes[i]['bbox']), - dis_table_footnote.get(i, float('inf')), - ) - for i in range(len(footnotes)): - if i not in dis_figure_footnote: - continue - if dis_table_footnote.get(i, float('inf')) > dis_figure_footnote[i]: - footnotes[i]['category_id'] = CategoryId.ImageFootnote - - def __reduct_overlap(self, bboxes): - N = len(bboxes) - keep = [True] * N - for i in range(N): - for j in range(N): - if i == j: - continue - if _is_in(bboxes[i]['bbox'], bboxes[j]['bbox']): - keep[i] = False - return [bboxes[i] for i in range(N) if keep[i]] - - def __tie_up_category_by_distance( - self, page_no, subject_category_id, object_category_id - ): - """假定每个 subject 最多有一个 object (可以有多个相邻的 object 合并为单个 object),每个 object - 只能属于一个 subject.""" - ret = [] - MAX_DIS_OF_POINT = 10**9 + 7 - """ - subject 和 object 的 bbox 会合并成一个大的 bbox (named: merged bbox)。 - 筛选出所有和 merged bbox 有 overlap 且 overlap 面积大于 object 的面积的 subjects。 - 再求出筛选出的 subjects 和 object 的最短距离 - """ - - def search_overlap_between_boxes(subject_idx, object_idx): - idxes = [subject_idx, object_idx] - x0s = [all_bboxes[idx]['bbox'][0] for idx in idxes] - y0s = [all_bboxes[idx]['bbox'][1] for idx in idxes] - x1s = [all_bboxes[idx]['bbox'][2] for idx in idxes] - y1s = [all_bboxes[idx]['bbox'][3] for idx in idxes] - - merged_bbox = [ - min(x0s), - min(y0s), - max(x1s), - max(y1s), - ] - ratio = 0 - - other_objects = list( - map( - lambda x: {'bbox': x['bbox'], 'score': x['score']}, - filter( - lambda x: x['category_id'] - not in (object_category_id, subject_category_id), - self.__model_list[page_no]['layout_dets'], - ), - ) - ) - for other_object in other_objects: - ratio = max( - ratio, - get_overlap_area(merged_bbox, other_object['bbox']) - * 1.0 - / box_area(all_bboxes[object_idx]['bbox']), - ) - if ratio >= MERGE_BOX_OVERLAP_AREA_RATIO: - break - - return ratio - - def may_find_other_nearest_bbox(subject_idx, object_idx): - ret = float('inf') - - x0 = min( - all_bboxes[subject_idx]['bbox'][0], all_bboxes[object_idx]['bbox'][0] - ) - y0 = min( - all_bboxes[subject_idx]['bbox'][1], all_bboxes[object_idx]['bbox'][1] - ) - x1 = max( - all_bboxes[subject_idx]['bbox'][2], all_bboxes[object_idx]['bbox'][2] - ) - y1 = max( - all_bboxes[subject_idx]['bbox'][3], all_bboxes[object_idx]['bbox'][3] - ) - - object_area = abs( - all_bboxes[object_idx]['bbox'][2] - all_bboxes[object_idx]['bbox'][0] - ) * abs( - all_bboxes[object_idx]['bbox'][3] - all_bboxes[object_idx]['bbox'][1] - ) - - for i in range(len(all_bboxes)): - if ( - i == subject_idx - or all_bboxes[i]['category_id'] != subject_category_id - ): - continue - if _is_part_overlap([x0, y0, x1, y1], all_bboxes[i]['bbox']) or _is_in( - all_bboxes[i]['bbox'], [x0, y0, x1, y1] - ): - - i_area = abs( - all_bboxes[i]['bbox'][2] - all_bboxes[i]['bbox'][0] - ) * abs(all_bboxes[i]['bbox'][3] - all_bboxes[i]['bbox'][1]) - if i_area >= object_area: - ret = min(float('inf'), dis[i][object_idx]) - - return ret - - def expand_bbbox(idxes): - x0s = [all_bboxes[idx]['bbox'][0] for idx in idxes] - y0s = [all_bboxes[idx]['bbox'][1] for idx in idxes] - x1s = [all_bboxes[idx]['bbox'][2] for idx in idxes] - y1s = [all_bboxes[idx]['bbox'][3] for idx in idxes] - return min(x0s), min(y0s), max(x1s), max(y1s) - - subjects = self.__reduct_overlap( - list( - map( - lambda x: {'bbox': x['bbox'], 'score': x['score']}, - filter( - lambda x: x['category_id'] == subject_category_id, - self.__model_list[page_no]['layout_dets'], - ), - ) - ) - ) - - objects = self.__reduct_overlap( - list( - map( - lambda x: {'bbox': x['bbox'], 'score': x['score']}, - filter( - lambda x: x['category_id'] == object_category_id, - self.__model_list[page_no]['layout_dets'], - ), - ) - ) - ) - subject_object_relation_map = {} - - subjects.sort( - key=lambda x: x['bbox'][0] ** 2 + x['bbox'][1] ** 2 - ) # get the distance ! - - all_bboxes = [] - - for v in subjects: - all_bboxes.append( - { - 'category_id': subject_category_id, - 'bbox': v['bbox'], - 'score': v['score'], - } - ) - - for v in objects: - all_bboxes.append( - { - 'category_id': object_category_id, - 'bbox': v['bbox'], - 'score': v['score'], - } - ) - - N = len(all_bboxes) - dis = [[MAX_DIS_OF_POINT] * N for _ in range(N)] - - for i in range(N): - for j in range(i): - if ( - all_bboxes[i]['category_id'] == subject_category_id - and all_bboxes[j]['category_id'] == subject_category_id - ): - continue - - subject_idx, object_idx = i, j - if all_bboxes[j]['category_id'] == subject_category_id: - subject_idx, object_idx = j, i - - if ( - search_overlap_between_boxes(subject_idx, object_idx) - >= MERGE_BOX_OVERLAP_AREA_RATIO - ): - dis[i][j] = float('inf') - dis[j][i] = dis[i][j] - continue - - dis[i][j] = self._bbox_distance( - all_bboxes[subject_idx]['bbox'], all_bboxes[object_idx]['bbox'] - ) - dis[j][i] = dis[i][j] - - used = set() - for i in range(N): - # 求第 i 个 subject 所关联的 object - if all_bboxes[i]['category_id'] != subject_category_id: - continue - seen = set() - candidates = [] - arr = [] - for j in range(N): - - pos_flag_count = sum( - list( - map( - lambda x: 1 if x else 0, - bbox_relative_pos( - all_bboxes[i]['bbox'], all_bboxes[j]['bbox'] - ), - ) - ) - ) - if pos_flag_count > 1: - continue - if ( - all_bboxes[j]['category_id'] != object_category_id - or j in used - or dis[i][j] == MAX_DIS_OF_POINT - ): - continue - left, right, _, _ = bbox_relative_pos( - all_bboxes[i]['bbox'], all_bboxes[j]['bbox'] - ) # 由 pos_flag_count 相关逻辑保证本段逻辑准确性 - if left or right: - one_way_dis = all_bboxes[i]['bbox'][2] - all_bboxes[i]['bbox'][0] - else: - one_way_dis = all_bboxes[i]['bbox'][3] - all_bboxes[i]['bbox'][1] - if dis[i][j] > one_way_dis: - continue - arr.append((dis[i][j], j)) - - arr.sort(key=lambda x: x[0]) - if len(arr) > 0: - """ - bug: 离该subject 最近的 object 可能跨越了其它的 subject。 - 比如 [this subect] [some sbuject] [the nearest object of subject] - """ - if may_find_other_nearest_bbox(i, arr[0][1]) >= arr[0][0]: - - candidates.append(arr[0][1]) - seen.add(arr[0][1]) - - # 已经获取初始种子 - for j in set(candidates): - tmp = [] - for k in range(i + 1, N): - pos_flag_count = sum( - list( - map( - lambda x: 1 if x else 0, - bbox_relative_pos( - all_bboxes[j]['bbox'], all_bboxes[k]['bbox'] - ), - ) - ) - ) - - if pos_flag_count > 1: - continue - - if ( - all_bboxes[k]['category_id'] != object_category_id - or k in used - or k in seen - or dis[j][k] == MAX_DIS_OF_POINT - or dis[j][k] > dis[i][j] - ): - continue - - is_nearest = True - for ni in range(i + 1, N): - if ni in (j, k) or ni in used or ni in seen: - continue - - if not float_gt(dis[ni][k], dis[j][k]): - is_nearest = False - break - - if is_nearest: - nx0, ny0, nx1, ny1 = expand_bbbox(list(seen) + [k]) - n_dis = bbox_distance( - all_bboxes[i]['bbox'], [nx0, ny0, nx1, ny1] - ) - if float_gt(dis[i][j], n_dis): - continue - tmp.append(k) - seen.add(k) - - candidates = tmp - if len(candidates) == 0: - break - - # 已经获取到某个 figure 下所有的最靠近的 captions,以及最靠近这些 captions 的 captions 。 - # 先扩一下 bbox, - ox0, oy0, ox1, oy1 = expand_bbbox(list(seen) + [i]) - ix0, iy0, ix1, iy1 = all_bboxes[i]['bbox'] - - # 分成了 4 个截取空间,需要计算落在每个截取空间下 objects 合并后占据的矩形面积 - caption_poses = [ - [ox0, oy0, ix0, oy1], - [ox0, oy0, ox1, iy0], - [ox0, iy1, ox1, oy1], - [ix1, oy0, ox1, oy1], - ] - - caption_areas = [] - for bbox in caption_poses: - embed_arr = [] - for idx in seen: - if ( - calculate_overlap_area_in_bbox1_area_ratio( - all_bboxes[idx]['bbox'], bbox - ) - > CAPATION_OVERLAP_AREA_RATIO - ): - embed_arr.append(idx) - - if len(embed_arr) > 0: - embed_x0 = min([all_bboxes[idx]['bbox'][0] for idx in embed_arr]) - embed_y0 = min([all_bboxes[idx]['bbox'][1] for idx in embed_arr]) - embed_x1 = max([all_bboxes[idx]['bbox'][2] for idx in embed_arr]) - embed_y1 = max([all_bboxes[idx]['bbox'][3] for idx in embed_arr]) - caption_areas.append( - int(abs(embed_x1 - embed_x0) * abs(embed_y1 - embed_y0)) - ) - else: - caption_areas.append(0) - - subject_object_relation_map[i] = [] - if max(caption_areas) > 0: - max_area_idx = caption_areas.index(max(caption_areas)) - caption_bbox = caption_poses[max_area_idx] - - for j in seen: - if ( - calculate_overlap_area_in_bbox1_area_ratio( - all_bboxes[j]['bbox'], caption_bbox - ) - > CAPATION_OVERLAP_AREA_RATIO - ): - used.add(j) - subject_object_relation_map[i].append(j) - - for i in sorted(subject_object_relation_map.keys()): - result = { - 'subject_body': all_bboxes[i]['bbox'], - 'all': all_bboxes[i]['bbox'], - 'score': all_bboxes[i]['score'], - } - - if len(subject_object_relation_map[i]) > 0: - x0 = min( - [all_bboxes[j]['bbox'][0] for j in subject_object_relation_map[i]] - ) - y0 = min( - [all_bboxes[j]['bbox'][1] for j in subject_object_relation_map[i]] - ) - x1 = max( - [all_bboxes[j]['bbox'][2] for j in subject_object_relation_map[i]] - ) - y1 = max( - [all_bboxes[j]['bbox'][3] for j in subject_object_relation_map[i]] - ) - result['object_body'] = [x0, y0, x1, y1] - result['all'] = [ - min(x0, all_bboxes[i]['bbox'][0]), - min(y0, all_bboxes[i]['bbox'][1]), - max(x1, all_bboxes[i]['bbox'][2]), - max(y1, all_bboxes[i]['bbox'][3]), - ] - ret.append(result) - - total_subject_object_dis = 0 - # 计算已经配对的 distance 距离 - for i in subject_object_relation_map.keys(): - for j in subject_object_relation_map[i]: - total_subject_object_dis += bbox_distance( - all_bboxes[i]['bbox'], all_bboxes[j]['bbox'] - ) - - # 计算未匹配的 subject 和 object 的距离(非精确版) - with_caption_subject = set( - [ - key - for key in subject_object_relation_map.keys() - if len(subject_object_relation_map[i]) > 0 - ] - ) - for i in range(N): - if all_bboxes[i]['category_id'] != object_category_id or i in used: - continue - candidates = [] - for j in range(N): - if ( - all_bboxes[j]['category_id'] != subject_category_id - or j in with_caption_subject - ): - continue - candidates.append((dis[i][j], j)) - if len(candidates) > 0: - candidates.sort(key=lambda x: x[0]) - total_subject_object_dis += candidates[0][1] - with_caption_subject.add(j) - return ret, total_subject_object_dis - - def __tie_up_category_by_distance_v2( - self, page_no, subject_category_id, object_category_id - ): - - AXIS_MULPLICITY = 0.5 - subjects = self.__reduct_overlap( - list( - map( - lambda x: {'bbox': x['bbox'], 'score': x['score']}, - filter( - lambda x: x['category_id'] == subject_category_id, - self.__model_list[page_no]['layout_dets'], - ), - ) - ) - ) - - objects = self.__reduct_overlap( - list( - map( - lambda x: {'bbox': x['bbox'], 'score': x['score']}, - filter( - lambda x: x['category_id'] == object_category_id, - self.__model_list[page_no]['layout_dets'], - ), - ) - ) - ) - M = len(objects) - - subjects.sort(key=lambda x: x['bbox'][0] ** 2 + x['bbox'][1] ** 2) - objects.sort(key=lambda x: x['bbox'][0] ** 2 + x['bbox'][1] ** 2) - - sub_obj_map_h = {i: [] for i in range(len(subjects))} - - dis_by_directions = { - 'top': [[-1, float('inf')]] * M, - 'bottom': [[-1, float('inf')]] * M, - 'left': [[-1, float('inf')]] * M, - 'right': [[-1, float('inf')]] * M, - } - - for i, obj in enumerate(objects): - l_x_axis, l_y_axis = ( - obj['bbox'][2] - obj['bbox'][0], - obj['bbox'][3] - obj['bbox'][1], - ) - axis_unit = min(l_x_axis, l_y_axis) - for j, sub in enumerate(subjects): - - bbox1, bbox2, _ = _remove_overlap_between_bbox( - objects[i]['bbox'], subjects[j]['bbox'] - ) - left, right, bottom, top = bbox_relative_pos(bbox1, bbox2) - flags = [left, right, bottom, top] - if sum([1 if v else 0 for v in flags]) > 1: - continue - - if left: - if dis_by_directions['left'][i][1] > bbox_distance( - obj['bbox'], sub['bbox'] - ): - dis_by_directions['left'][i] = [ - j, - bbox_distance(obj['bbox'], sub['bbox']), - ] - if right: - if dis_by_directions['right'][i][1] > bbox_distance( - obj['bbox'], sub['bbox'] - ): - dis_by_directions['right'][i] = [ - j, - bbox_distance(obj['bbox'], sub['bbox']), - ] - if bottom: - if dis_by_directions['bottom'][i][1] > bbox_distance( - obj['bbox'], sub['bbox'] - ): - dis_by_directions['bottom'][i] = [ - j, - bbox_distance(obj['bbox'], sub['bbox']), - ] - if top: - if dis_by_directions['top'][i][1] > bbox_distance( - obj['bbox'], sub['bbox'] - ): - dis_by_directions['top'][i] = [ - j, - bbox_distance(obj['bbox'], sub['bbox']), - ] - if dis_by_directions['left'][i][1] != float('inf') or dis_by_directions[ - 'right' - ][i][1] != float('inf'): - if dis_by_directions['left'][i][1] != float( - 'inf' - ) and dis_by_directions['right'][i][1] != float('inf'): - if AXIS_MULPLICITY * axis_unit >= abs( - dis_by_directions['left'][i][1] - - dis_by_directions['right'][i][1] - ): - left_sub_bbox = subjects[dis_by_directions['left'][i][0]][ - 'bbox' - ] - right_sub_bbox = subjects[dis_by_directions['right'][i][0]][ - 'bbox' - ] - - left_sub_bbox_y_axis = left_sub_bbox[3] - left_sub_bbox[1] - right_sub_bbox_y_axis = right_sub_bbox[3] - right_sub_bbox[1] - - if ( - abs(left_sub_bbox_y_axis - l_y_axis) - + dis_by_directions['left'][i][0] - > abs(right_sub_bbox_y_axis - l_y_axis) - + dis_by_directions['right'][i][0] - ): - left_or_right = dis_by_directions['right'][i] - else: - left_or_right = dis_by_directions['left'][i] - else: - left_or_right = dis_by_directions['left'][i] - if left_or_right[1] > dis_by_directions['right'][i][1]: - left_or_right = dis_by_directions['right'][i] - else: - left_or_right = dis_by_directions['left'][i] - if left_or_right[1] == float('inf'): - left_or_right = dis_by_directions['right'][i] - else: - left_or_right = [-1, float('inf')] - - if dis_by_directions['top'][i][1] != float('inf') or dis_by_directions[ - 'bottom' - ][i][1] != float('inf'): - if dis_by_directions['top'][i][1] != float('inf') and dis_by_directions[ - 'bottom' - ][i][1] != float('inf'): - if AXIS_MULPLICITY * axis_unit >= abs( - dis_by_directions['top'][i][1] - - dis_by_directions['bottom'][i][1] - ): - top_bottom = subjects[dis_by_directions['bottom'][i][0]]['bbox'] - bottom_top = subjects[dis_by_directions['top'][i][0]]['bbox'] - - top_bottom_x_axis = top_bottom[2] - top_bottom[0] - bottom_top_x_axis = bottom_top[2] - bottom_top[0] - if abs(top_bottom_x_axis - l_x_axis) + dis_by_directions['bottom'][i][1] > abs( - bottom_top_x_axis - l_x_axis - ) + dis_by_directions['top'][i][1]: - top_or_bottom = dis_by_directions['top'][i] - else: - top_or_bottom = dis_by_directions['bottom'][i] - else: - top_or_bottom = dis_by_directions['top'][i] - if top_or_bottom[1] > dis_by_directions['bottom'][i][1]: - top_or_bottom = dis_by_directions['bottom'][i] - else: - top_or_bottom = dis_by_directions['top'][i] - if top_or_bottom[1] == float('inf'): - top_or_bottom = dis_by_directions['bottom'][i] - else: - top_or_bottom = [-1, float('inf')] - - if left_or_right[1] != float('inf') or top_or_bottom[1] != float('inf'): - if left_or_right[1] != float('inf') and top_or_bottom[1] != float( - 'inf' - ): - if AXIS_MULPLICITY * axis_unit >= abs( - left_or_right[1] - top_or_bottom[1] - ): - y_axis_bbox = subjects[left_or_right[0]]['bbox'] - x_axis_bbox = subjects[top_or_bottom[0]]['bbox'] - - if ( - abs((x_axis_bbox[2] - x_axis_bbox[0]) - l_x_axis) / l_x_axis - > abs((y_axis_bbox[3] - y_axis_bbox[1]) - l_y_axis) - / l_y_axis - ): - sub_obj_map_h[left_or_right[0]].append(i) - else: - sub_obj_map_h[top_or_bottom[0]].append(i) - else: - if left_or_right[1] > top_or_bottom[1]: - sub_obj_map_h[top_or_bottom[0]].append(i) - else: - sub_obj_map_h[left_or_right[0]].append(i) - else: - if left_or_right[1] != float('inf'): - sub_obj_map_h[left_or_right[0]].append(i) - else: - sub_obj_map_h[top_or_bottom[0]].append(i) - ret = [] - for i in sub_obj_map_h.keys(): - ret.append( - { - 'sub_bbox': { - 'bbox': subjects[i]['bbox'], - 'score': subjects[i]['score'], - }, - 'obj_bboxes': [ - {'score': objects[j]['score'], 'bbox': objects[j]['bbox']} - for j in sub_obj_map_h[i] - ], - 'sub_idx': i, - } - ) - return ret - - def get_imgs_v2(self, page_no: int): - with_captions = self.__tie_up_category_by_distance_v2(page_no, 3, 4) - with_footnotes = self.__tie_up_category_by_distance_v2( - page_no, 3, CategoryId.ImageFootnote - ) - ret = [] - for v in with_captions: - record = { - 'image_body': v['sub_bbox'], - 'image_caption_list': v['obj_bboxes'], - } - filter_idx = v['sub_idx'] - d = next(filter(lambda x: x['sub_idx'] == filter_idx, with_footnotes)) - record['image_footnote_list'] = d['obj_bboxes'] - ret.append(record) - return ret - - def get_tables_v2(self, page_no: int) -> list: - with_captions = self.__tie_up_category_by_distance_v2(page_no, 5, 6) - with_footnotes = self.__tie_up_category_by_distance_v2(page_no, 5, 7) - ret = [] - for v in with_captions: - record = { - 'table_body': v['sub_bbox'], - 'table_caption_list': v['obj_bboxes'], - } - filter_idx = v['sub_idx'] - d = next(filter(lambda x: x['sub_idx'] == filter_idx, with_footnotes)) - record['table_footnote_list'] = d['obj_bboxes'] - ret.append(record) - return ret - - def get_imgs(self, page_no: int): - with_captions, _ = self.__tie_up_category_by_distance(page_no, 3, 4) - with_footnotes, _ = self.__tie_up_category_by_distance( - page_no, 3, CategoryId.ImageFootnote - ) - ret = [] - N, M = len(with_captions), len(with_footnotes) - assert N == M - for i in range(N): - record = { - 'score': with_captions[i]['score'], - 'img_caption_bbox': with_captions[i].get('object_body', None), - 'img_body_bbox': with_captions[i]['subject_body'], - 'img_footnote_bbox': with_footnotes[i].get('object_body', None), - } - - x0 = min(with_captions[i]['all'][0], with_footnotes[i]['all'][0]) - y0 = min(with_captions[i]['all'][1], with_footnotes[i]['all'][1]) - x1 = max(with_captions[i]['all'][2], with_footnotes[i]['all'][2]) - y1 = max(with_captions[i]['all'][3], with_footnotes[i]['all'][3]) - record['bbox'] = [x0, y0, x1, y1] - ret.append(record) - return ret - - def get_tables( - self, page_no: int - ) -> list: # 3个坐标, caption, table主体,table-note - with_captions, _ = self.__tie_up_category_by_distance(page_no, 5, 6) - with_footnotes, _ = self.__tie_up_category_by_distance(page_no, 5, 7) - ret = [] - N, M = len(with_captions), len(with_footnotes) - assert N == M - for i in range(N): - record = { - 'score': with_captions[i]['score'], - 'table_caption_bbox': with_captions[i].get('object_body', None), - 'table_body_bbox': with_captions[i]['subject_body'], - 'table_footnote_bbox': with_footnotes[i].get('object_body', None), - } - - x0 = min(with_captions[i]['all'][0], with_footnotes[i]['all'][0]) - y0 = min(with_captions[i]['all'][1], with_footnotes[i]['all'][1]) - x1 = max(with_captions[i]['all'][2], with_footnotes[i]['all'][2]) - y1 = max(with_captions[i]['all'][3], with_footnotes[i]['all'][3]) - record['bbox'] = [x0, y0, x1, y1] - ret.append(record) - return ret - - def get_equations(self, page_no: int) -> list: # 有坐标,也有字 - inline_equations = self.__get_blocks_by_type( - ModelBlockTypeEnum.EMBEDDING.value, page_no, ['latex'] - ) - interline_equations = self.__get_blocks_by_type( - ModelBlockTypeEnum.ISOLATED.value, page_no, ['latex'] - ) - interline_equations_blocks = self.__get_blocks_by_type( - ModelBlockTypeEnum.ISOLATE_FORMULA.value, page_no - ) - return inline_equations, interline_equations, interline_equations_blocks - - def get_discarded(self, page_no: int) -> list: # 自研模型,只有坐标 - blocks = self.__get_blocks_by_type(ModelBlockTypeEnum.ABANDON.value, page_no) - return blocks - - def get_text_blocks(self, page_no: int) -> list: # 自研模型搞的,只有坐标,没有字 - blocks = self.__get_blocks_by_type(ModelBlockTypeEnum.PLAIN_TEXT.value, page_no) - return blocks - - def get_title_blocks(self, page_no: int) -> list: # 自研模型,只有坐标,没字 - blocks = self.__get_blocks_by_type(ModelBlockTypeEnum.TITLE.value, page_no) - return blocks - - def get_ocr_text(self, page_no: int) -> list: # paddle 搞的,有字也有坐标 - text_spans = [] - model_page_info = self.__model_list[page_no] - layout_dets = model_page_info['layout_dets'] - for layout_det in layout_dets: - if layout_det['category_id'] == '15': - span = { - 'bbox': layout_det['bbox'], - 'content': layout_det['text'], - } - text_spans.append(span) - return text_spans - - def get_all_spans(self, page_no: int) -> list: - - def remove_duplicate_spans(spans): - new_spans = [] - for span in spans: - if not any(span == existing_span for existing_span in new_spans): - new_spans.append(span) - return new_spans - - all_spans = [] - model_page_info = self.__model_list[page_no] - layout_dets = model_page_info['layout_dets'] - allow_category_id_list = [3, 5, 13, 14, 15] - """当成span拼接的""" - # 3: 'image', # 图片 - # 5: 'table', # 表格 - # 13: 'inline_equation', # 行内公式 - # 14: 'interline_equation', # 行间公式 - # 15: 'text', # ocr识别文本 - for layout_det in layout_dets: - category_id = layout_det['category_id'] - if category_id in allow_category_id_list: - span = {'bbox': layout_det['bbox'], 'score': layout_det['score']} - if category_id == 3: - span['type'] = ContentType.Image - elif category_id == 5: - # 获取table模型结果 - latex = layout_det.get('latex', None) - html = layout_det.get('html', None) - if latex: - span['latex'] = latex - elif html: - span['html'] = html - span['type'] = ContentType.Table - elif category_id == 13: - span['content'] = layout_det['latex'] - span['type'] = ContentType.InlineEquation - elif category_id == 14: - span['content'] = layout_det['latex'] - span['type'] = ContentType.InterlineEquation - elif category_id == 15: - span['content'] = layout_det['text'] - span['type'] = ContentType.Text - all_spans.append(span) - return remove_duplicate_spans(all_spans) - - def get_page_size(self, page_no: int): # 获取页面宽高 - # 获取当前页的page对象 - page = self.__docs.get_page(page_no).get_page_info() - # 获取当前页的宽高 - page_w = page.w - page_h = page.h - return page_w, page_h - - def __get_blocks_by_type( - self, type: int, page_no: int, extra_col: list[str] = [] - ) -> list: - blocks = [] - for page_dict in self.__model_list: - layout_dets = page_dict.get('layout_dets', []) - page_info = page_dict.get('page_info', {}) - page_number = page_info.get('page_no', -1) - if page_no != page_number: - continue - for item in layout_dets: - category_id = item.get('category_id', -1) - bbox = item.get('bbox', None) - - if category_id == type: - block = { - 'bbox': bbox, - 'score': item.get('score'), - } - for col in extra_col: - block[col] = item.get(col, None) - blocks.append(block) - return blocks - - def get_model_list(self, page_no): - return self.__model_list[page_no] - - -if __name__ == '__main__': - drw = DiskReaderWriter(r'D:/project/20231108code-clean') - if 0: - pdf_file_path = r'linshixuqiu\19983-00.pdf' - model_file_path = r'linshixuqiu\19983-00_new.json' - pdf_bytes = drw.read(pdf_file_path, AbsReaderWriter.MODE_BIN) - model_json_txt = drw.read(model_file_path, AbsReaderWriter.MODE_TXT) - model_list = json.loads(model_json_txt) - write_path = r'D:\project\20231108code-clean\linshixuqiu\19983-00' - img_bucket_path = 'imgs' - img_writer = DiskReaderWriter(join_path(write_path, img_bucket_path)) - pdf_docs = fitz.open('pdf', pdf_bytes) - magic_model = MagicModel(model_list, pdf_docs) - - if 1: - model_list = json.loads( - drw.read('/opt/data/pdf/20240418/j.chroma.2009.03.042.json') - ) - pdf_bytes = drw.read( - '/opt/data/pdf/20240418/j.chroma.2009.03.042.pdf', AbsReaderWriter.MODE_BIN - ) - pdf_docs = fitz.open('pdf', pdf_bytes) - magic_model = MagicModel(model_list, pdf_docs) - for i in range(7): - print(magic_model.get_imgs(i)) diff --git a/magic_pdf/model/model_list.py b/magic_pdf/model/model_list.py deleted file mode 100644 index c4bcf0217..000000000 --- a/magic_pdf/model/model_list.py +++ /dev/null @@ -1,11 +0,0 @@ -class MODEL: - Paddle = "pp_structure_v2" - PEK = "pdf_extract_kit" - - -class AtomicModel: - Layout = "layout" - MFD = "mfd" - MFR = "mfr" - OCR = "ocr" - Table = "table" diff --git a/magic_pdf/model/pdf_extract_kit.py b/magic_pdf/model/pdf_extract_kit.py deleted file mode 100644 index f1478b10b..000000000 --- a/magic_pdf/model/pdf_extract_kit.py +++ /dev/null @@ -1,488 +0,0 @@ -from loguru import logger -import os -import time -from pathlib import Path -import shutil -from magic_pdf.libs.Constants import * -from magic_pdf.libs.clean_memory import clean_memory -from magic_pdf.model.model_list import AtomicModel - -os.environ['NO_ALBUMENTATIONS_UPDATE'] = '1' # 禁止albumentations检查更新 -os.environ['YOLO_VERBOSE'] = 'False' # disable yolo logger -try: - import cv2 - import yaml - import argparse - import numpy as np - import torch - import torchtext - - if torchtext.__version__ >= "0.18.0": - torchtext.disable_torchtext_deprecation_warning() - from PIL import Image - from torchvision import transforms - from torch.utils.data import Dataset, DataLoader - from ultralytics import YOLO - from unimernet.common.config import Config - import unimernet.tasks as tasks - from unimernet.processors import load_processor - from doclayout_yolo import YOLOv10 - -except ImportError as e: - logger.exception(e) - logger.error( - 'Required dependency not installed, please install by \n' - '"pip install magic-pdf[full] --extra-index-url https://myhloli.github.io/wheels/"') - exit(1) - -from magic_pdf.model.pek_sub_modules.layoutlmv3.model_init import Layoutlmv3_Predictor -from magic_pdf.model.pek_sub_modules.post_process import latex_rm_whitespace -from magic_pdf.model.pek_sub_modules.self_modify import ModifiedPaddleOCR -from magic_pdf.model.pek_sub_modules.structeqtable.StructTableModel import StructTableModel -from magic_pdf.model.ppTableModel import ppTableModel - - -def table_model_init(table_model_type, model_path, max_time, _device_='cpu'): - if table_model_type == MODEL_NAME.STRUCT_EQTABLE: - table_model = StructTableModel(model_path, max_time=max_time, device=_device_) - else: - config = { - "model_dir": model_path, - "device": _device_ - } - table_model = ppTableModel(config) - return table_model - - -def mfd_model_init(weight): - mfd_model = YOLO(weight) - return mfd_model - - -def mfr_model_init(weight_dir, cfg_path, _device_='cpu'): - args = argparse.Namespace(cfg_path=cfg_path, options=None) - cfg = Config(args) - cfg.config.model.pretrained = os.path.join(weight_dir, "pytorch_model.pth") - cfg.config.model.model_config.model_name = weight_dir - cfg.config.model.tokenizer_config.path = weight_dir - task = tasks.setup_task(cfg) - model = task.build_model(cfg) - model.to(_device_) - model.eval() - vis_processor = load_processor('formula_image_eval', cfg.config.datasets.formula_rec_eval.vis_processor.eval) - mfr_transform = transforms.Compose([vis_processor, ]) - return [model, mfr_transform] - - -def layout_model_init(weight, config_file, device): - model = Layoutlmv3_Predictor(weight, config_file, device) - return model - - -def doclayout_yolo_model_init(weight): - model = YOLOv10(weight) - return model - - -def ocr_model_init(show_log: bool = False, det_db_box_thresh=0.3, lang=None, use_dilation=True, det_db_unclip_ratio=1.8): - if lang is not None: - model = ModifiedPaddleOCR(show_log=show_log, det_db_box_thresh=det_db_box_thresh, lang=lang, use_dilation=use_dilation, det_db_unclip_ratio=det_db_unclip_ratio) - else: - model = ModifiedPaddleOCR(show_log=show_log, det_db_box_thresh=det_db_box_thresh, use_dilation=use_dilation, det_db_unclip_ratio=det_db_unclip_ratio) - return model - - -class MathDataset(Dataset): - def __init__(self, image_paths, transform=None): - self.image_paths = image_paths - self.transform = transform - - def __len__(self): - return len(self.image_paths) - - def __getitem__(self, idx): - # if not pil image, then convert to pil image - if isinstance(self.image_paths[idx], str): - raw_image = Image.open(self.image_paths[idx]) - else: - raw_image = self.image_paths[idx] - if self.transform: - image = self.transform(raw_image) - return image - - -class AtomModelSingleton: - _instance = None - _models = {} - - def __new__(cls, *args, **kwargs): - if cls._instance is None: - cls._instance = super().__new__(cls) - return cls._instance - - def get_atom_model(self, atom_model_name: str, **kwargs): - lang = kwargs.get("lang", None) - layout_model_name = kwargs.get("layout_model_name", None) - key = (atom_model_name, layout_model_name, lang) - if key not in self._models: - self._models[key] = atom_model_init(model_name=atom_model_name, **kwargs) - return self._models[key] - - -def atom_model_init(model_name: str, **kwargs): - - if model_name == AtomicModel.Layout: - if kwargs.get("layout_model_name") == MODEL_NAME.LAYOUTLMv3: - atom_model = layout_model_init( - kwargs.get("layout_weights"), - kwargs.get("layout_config_file"), - kwargs.get("device") - ) - elif kwargs.get("layout_model_name") == MODEL_NAME.DocLayout_YOLO: - atom_model = doclayout_yolo_model_init( - kwargs.get("doclayout_yolo_weights"), - ) - elif model_name == AtomicModel.MFD: - atom_model = mfd_model_init( - kwargs.get("mfd_weights") - ) - elif model_name == AtomicModel.MFR: - atom_model = mfr_model_init( - kwargs.get("mfr_weight_dir"), - kwargs.get("mfr_cfg_path"), - kwargs.get("device") - ) - elif model_name == AtomicModel.OCR: - atom_model = ocr_model_init( - kwargs.get("ocr_show_log"), - kwargs.get("det_db_box_thresh"), - kwargs.get("lang") - ) - elif model_name == AtomicModel.Table: - atom_model = table_model_init( - kwargs.get("table_model_name"), - kwargs.get("table_model_path"), - kwargs.get("table_max_time"), - kwargs.get("device") - ) - else: - logger.error("model name not allow") - exit(1) - - return atom_model - - -# Unified crop img logic -def crop_img(input_res, input_pil_img, crop_paste_x=0, crop_paste_y=0): - crop_xmin, crop_ymin = int(input_res['poly'][0]), int(input_res['poly'][1]) - crop_xmax, crop_ymax = int(input_res['poly'][4]), int(input_res['poly'][5]) - # Create a white background with an additional width and height of 50 - crop_new_width = crop_xmax - crop_xmin + crop_paste_x * 2 - crop_new_height = crop_ymax - crop_ymin + crop_paste_y * 2 - return_image = Image.new('RGB', (crop_new_width, crop_new_height), 'white') - - # Crop image - crop_box = (crop_xmin, crop_ymin, crop_xmax, crop_ymax) - cropped_img = input_pil_img.crop(crop_box) - return_image.paste(cropped_img, (crop_paste_x, crop_paste_y)) - return_list = [crop_paste_x, crop_paste_y, crop_xmin, crop_ymin, crop_xmax, crop_ymax, crop_new_width, crop_new_height] - return return_image, return_list - - -class CustomPEKModel: - - def __init__(self, ocr: bool = False, show_log: bool = False, **kwargs): - """ - ======== model init ======== - """ - # 获取当前文件(即 pdf_extract_kit.py)的绝对路径 - current_file_path = os.path.abspath(__file__) - # 获取当前文件所在的目录(model) - current_dir = os.path.dirname(current_file_path) - # 上一级目录(magic_pdf) - root_dir = os.path.dirname(current_dir) - # model_config目录 - model_config_dir = os.path.join(root_dir, 'resources', 'model_config') - # 构建 model_configs.yaml 文件的完整路径 - config_path = os.path.join(model_config_dir, 'model_configs.yaml') - with open(config_path, "r", encoding='utf-8') as f: - self.configs = yaml.load(f, Loader=yaml.FullLoader) - # 初始化解析配置 - - # layout config - self.layout_config = kwargs.get("layout_config") - self.layout_model_name = self.layout_config.get("model", MODEL_NAME.DocLayout_YOLO) - - # formula config - self.formula_config = kwargs.get("formula_config") - self.mfd_model_name = self.formula_config.get("mfd_model", MODEL_NAME.YOLO_V8_MFD) - self.mfr_model_name = self.formula_config.get("mfr_model", MODEL_NAME.UniMerNet_v2_Small) - self.apply_formula = self.formula_config.get("enable", True) - - # table config - self.table_config = kwargs.get("table_config") - self.apply_table = self.table_config.get("enable", False) - self.table_max_time = self.table_config.get("max_time", TABLE_MAX_TIME_VALUE) - self.table_model_name = self.table_config.get("model", MODEL_NAME.TABLE_MASTER) - - # ocr config - self.apply_ocr = ocr - self.lang = kwargs.get("lang", None) - - logger.info( - "DocAnalysis init, this may take some times, layout_model: {}, apply_formula: {}, apply_ocr: {}, " - "apply_table: {}, table_model: {}, lang: {}".format( - self.layout_model_name, self.apply_formula, self.apply_ocr, self.apply_table, self.table_model_name, self.lang - ) - ) - # 初始化解析方案 - self.device = kwargs.get("device", "cpu") - logger.info("using device: {}".format(self.device)) - models_dir = kwargs.get("models_dir", os.path.join(root_dir, "resources", "models")) - logger.info("using models_dir: {}".format(models_dir)) - - atom_model_manager = AtomModelSingleton() - - # 初始化公式识别 - if self.apply_formula: - - # 初始化公式检测模型 - self.mfd_model = atom_model_manager.get_atom_model( - atom_model_name=AtomicModel.MFD, - mfd_weights=str(os.path.join(models_dir, self.configs["weights"][self.mfd_model_name])) - ) - - # 初始化公式解析模型 - mfr_weight_dir = str(os.path.join(models_dir, self.configs["weights"][self.mfr_model_name])) - mfr_cfg_path = str(os.path.join(model_config_dir, "UniMERNet", "demo.yaml")) - self.mfr_model, self.mfr_transform = atom_model_manager.get_atom_model( - atom_model_name=AtomicModel.MFR, - mfr_weight_dir=mfr_weight_dir, - mfr_cfg_path=mfr_cfg_path, - device=self.device - ) - - # 初始化layout模型 - if self.layout_model_name == MODEL_NAME.LAYOUTLMv3: - self.layout_model = atom_model_manager.get_atom_model( - atom_model_name=AtomicModel.Layout, - layout_model_name=MODEL_NAME.LAYOUTLMv3, - layout_weights=str(os.path.join(models_dir, self.configs['weights'][self.layout_model_name])), - layout_config_file=str(os.path.join(model_config_dir, "layoutlmv3", "layoutlmv3_base_inference.yaml")), - device=self.device - ) - elif self.layout_model_name == MODEL_NAME.DocLayout_YOLO: - self.layout_model = atom_model_manager.get_atom_model( - atom_model_name=AtomicModel.Layout, - layout_model_name=MODEL_NAME.DocLayout_YOLO, - doclayout_yolo_weights=str(os.path.join(models_dir, self.configs['weights'][self.layout_model_name])) - ) - # 初始化ocr - if self.apply_ocr: - - # self.ocr_model = ModifiedPaddleOCR(show_log=show_log, det_db_box_thresh=0.3) - self.ocr_model = atom_model_manager.get_atom_model( - atom_model_name=AtomicModel.OCR, - ocr_show_log=show_log, - det_db_box_thresh=0.3, - lang=self.lang - ) - # init table model - if self.apply_table: - table_model_dir = self.configs["weights"][self.table_model_name] - self.table_model = atom_model_manager.get_atom_model( - atom_model_name=AtomicModel.Table, - table_model_name=self.table_model_name, - table_model_path=str(os.path.join(models_dir, table_model_dir)), - table_max_time=self.table_max_time, - device=self.device - ) - - home_directory = Path.home() - det_source = os.path.join(models_dir, table_model_dir, DETECT_MODEL_DIR) - rec_source = os.path.join(models_dir, table_model_dir, REC_MODEL_DIR) - det_dest_dir = os.path.join(home_directory, PP_DET_DIRECTORY) - rec_dest_dir = os.path.join(home_directory, PP_REC_DIRECTORY) - - if not os.path.exists(det_dest_dir): - shutil.copytree(det_source, det_dest_dir) - if not os.path.exists(rec_dest_dir): - shutil.copytree(rec_source, rec_dest_dir) - - logger.info('DocAnalysis init done!') - - def __call__(self, image): - - page_start = time.time() - - latex_filling_list = [] - mf_image_list = [] - - # layout检测 - layout_start = time.time() - if self.layout_model_name == MODEL_NAME.LAYOUTLMv3: - # layoutlmv3 - layout_res = self.layout_model(image, ignore_catids=[]) - elif self.layout_model_name == MODEL_NAME.DocLayout_YOLO: - # doclayout_yolo - layout_res = [] - doclayout_yolo_res = self.layout_model.predict(image, imgsz=1024, conf=0.25, iou=0.45, verbose=True, device=self.device)[0] - for xyxy, conf, cla in zip(doclayout_yolo_res.boxes.xyxy.cpu(), doclayout_yolo_res.boxes.conf.cpu(), doclayout_yolo_res.boxes.cls.cpu()): - xmin, ymin, xmax, ymax = [int(p.item()) for p in xyxy] - new_item = { - 'category_id': int(cla.item()), - 'poly': [xmin, ymin, xmax, ymin, xmax, ymax, xmin, ymax], - 'score': round(float(conf.item()), 3), - } - layout_res.append(new_item) - layout_cost = round(time.time() - layout_start, 2) - logger.info(f"layout detection time: {layout_cost}") - - pil_img = Image.fromarray(image) - - if self.apply_formula: - # 公式检测 - mfd_start = time.time() - mfd_res = self.mfd_model.predict(image, imgsz=1888, conf=0.25, iou=0.45, verbose=True, device=self.device)[0] - logger.info(f"mfd time: {round(time.time() - mfd_start, 2)}") - for xyxy, conf, cla in zip(mfd_res.boxes.xyxy.cpu(), mfd_res.boxes.conf.cpu(), mfd_res.boxes.cls.cpu()): - xmin, ymin, xmax, ymax = [int(p.item()) for p in xyxy] - new_item = { - 'category_id': 13 + int(cla.item()), - 'poly': [xmin, ymin, xmax, ymin, xmax, ymax, xmin, ymax], - 'score': round(float(conf.item()), 2), - 'latex': '', - } - layout_res.append(new_item) - latex_filling_list.append(new_item) - bbox_img = pil_img.crop((xmin, ymin, xmax, ymax)) - mf_image_list.append(bbox_img) - - # 公式识别 - mfr_start = time.time() - dataset = MathDataset(mf_image_list, transform=self.mfr_transform) - dataloader = DataLoader(dataset, batch_size=64, num_workers=0) - mfr_res = [] - for mf_img in dataloader: - mf_img = mf_img.to(self.device) - with torch.no_grad(): - output = self.mfr_model.generate({'image': mf_img}) - mfr_res.extend(output['pred_str']) - for res, latex in zip(latex_filling_list, mfr_res): - res['latex'] = latex_rm_whitespace(latex) - mfr_cost = round(time.time() - mfr_start, 2) - logger.info(f"formula nums: {len(mf_image_list)}, mfr time: {mfr_cost}") - - # Select regions for OCR / formula regions / table regions - ocr_res_list = [] - table_res_list = [] - single_page_mfdetrec_res = [] - for res in layout_res: - if int(res['category_id']) in [13, 14]: - single_page_mfdetrec_res.append({ - "bbox": [int(res['poly'][0]), int(res['poly'][1]), - int(res['poly'][4]), int(res['poly'][5])], - }) - elif int(res['category_id']) in [0, 1, 2, 4, 6, 7]: - ocr_res_list.append(res) - elif int(res['category_id']) in [5]: - table_res_list.append(res) - - if torch.cuda.is_available(): - properties = torch.cuda.get_device_properties(self.device) - total_memory = properties.total_memory / (1024 ** 3) # 将字节转换为 GB - if total_memory <= 10: - gc_start = time.time() - clean_memory() - gc_time = round(time.time() - gc_start, 2) - logger.info(f"gc time: {gc_time}") - - # ocr识别 - if self.apply_ocr: - ocr_start = time.time() - # Process each area that requires OCR processing - for res in ocr_res_list: - new_image, useful_list = crop_img(res, pil_img, crop_paste_x=50, crop_paste_y=50) - paste_x, paste_y, xmin, ymin, xmax, ymax, new_width, new_height = useful_list - # Adjust the coordinates of the formula area - adjusted_mfdetrec_res = [] - for mf_res in single_page_mfdetrec_res: - mf_xmin, mf_ymin, mf_xmax, mf_ymax = mf_res["bbox"] - # Adjust the coordinates of the formula area to the coordinates relative to the cropping area - x0 = mf_xmin - xmin + paste_x - y0 = mf_ymin - ymin + paste_y - x1 = mf_xmax - xmin + paste_x - y1 = mf_ymax - ymin + paste_y - # Filter formula blocks outside the graph - if any([x1 < 0, y1 < 0]) or any([x0 > new_width, y0 > new_height]): - continue - else: - adjusted_mfdetrec_res.append({ - "bbox": [x0, y0, x1, y1], - }) - - # OCR recognition - new_image = cv2.cvtColor(np.asarray(new_image), cv2.COLOR_RGB2BGR) - ocr_res = self.ocr_model.ocr(new_image, mfd_res=adjusted_mfdetrec_res)[0] - - # Integration results - if ocr_res: - for box_ocr_res in ocr_res: - p1, p2, p3, p4 = box_ocr_res[0] - text, score = box_ocr_res[1] - - # Convert the coordinates back to the original coordinate system - p1 = [p1[0] - paste_x + xmin, p1[1] - paste_y + ymin] - p2 = [p2[0] - paste_x + xmin, p2[1] - paste_y + ymin] - p3 = [p3[0] - paste_x + xmin, p3[1] - paste_y + ymin] - p4 = [p4[0] - paste_x + xmin, p4[1] - paste_y + ymin] - - layout_res.append({ - 'category_id': 15, - 'poly': p1 + p2 + p3 + p4, - 'score': round(score, 2), - 'text': text, - }) - - ocr_cost = round(time.time() - ocr_start, 2) - logger.info(f"ocr time: {ocr_cost}") - - # 表格识别 table recognition - if self.apply_table: - table_start = time.time() - for res in table_res_list: - new_image, _ = crop_img(res, pil_img) - single_table_start_time = time.time() - # logger.info("------------------table recognition processing begins-----------------") - latex_code = None - html_code = None - if self.table_model_name == MODEL_NAME.STRUCT_EQTABLE: - with torch.no_grad(): - latex_code = self.table_model.image2latex(new_image)[0] - else: - html_code = self.table_model.img2html(new_image) - - run_time = time.time() - single_table_start_time - # logger.info(f"------------table recognition processing ends within {run_time}s-----") - if run_time > self.table_max_time: - logger.warning(f"------------table recognition processing exceeds max time {self.table_max_time}s----------") - # 判断是否返回正常 - - if latex_code: - expected_ending = latex_code.strip().endswith('end{tabular}') or latex_code.strip().endswith( - 'end{table}') - if expected_ending: - res["latex"] = latex_code - else: - logger.warning(f"table recognition processing fails, not found expected LaTeX table end") - elif html_code: - res["html"] = html_code - else: - logger.warning(f"table recognition processing fails, not get latex or html return") - logger.info(f"table time: {round(time.time() - table_start, 2)}") - - logger.info(f"-----page total time: {round(time.time() - page_start, 2)}-----") - - return layout_res - - diff --git a/magic_pdf/model/pek_sub_modules/__init__.py b/magic_pdf/model/pek_sub_modules/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/__init__.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/backbone.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/backbone.py deleted file mode 100644 index 5364f862e..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/backbone.py +++ /dev/null @@ -1,179 +0,0 @@ -# -------------------------------------------------------------------------------- -# VIT: Multi-Path Vision Transformer for Dense Prediction -# Copyright (c) 2022 Electronics and Telecommunications Research Institute (ETRI). -# All Rights Reserved. -# Written by Youngwan Lee -# This source code is licensed(Dual License(GPL3.0 & Commercial)) under the license found in the -# LICENSE file in the root directory of this source tree. -# -------------------------------------------------------------------------------- -# References: -# timm: https://github.com/rwightman/pytorch-image-models/tree/master/timm -# CoaT: https://github.com/mlpc-ucsd/CoaT -# -------------------------------------------------------------------------------- - - -import torch - -from detectron2.layers import ( - ShapeSpec, -) -from detectron2.modeling import Backbone, BACKBONE_REGISTRY, FPN -from detectron2.modeling.backbone.fpn import LastLevelP6P7, LastLevelMaxPool - -from .beit import beit_base_patch16, dit_base_patch16, dit_large_patch16, beit_large_patch16 -from .deit import deit_base_patch16, mae_base_patch16 -from .layoutlmft.models.layoutlmv3 import LayoutLMv3Model -from transformers import AutoConfig - -__all__ = [ - "build_vit_fpn_backbone", -] - - -class VIT_Backbone(Backbone): - """ - Implement VIT backbone. - """ - - def __init__(self, name, out_features, drop_path, img_size, pos_type, model_kwargs, - config_path=None, image_only=False, cfg=None): - super().__init__() - self._out_features = out_features - if 'base' in name: - self._out_feature_strides = {"layer3": 4, "layer5": 8, "layer7": 16, "layer11": 32} - self._out_feature_channels = {"layer3": 768, "layer5": 768, "layer7": 768, "layer11": 768} - else: - self._out_feature_strides = {"layer7": 4, "layer11": 8, "layer15": 16, "layer23": 32} - self._out_feature_channels = {"layer7": 1024, "layer11": 1024, "layer15": 1024, "layer23": 1024} - - if name == 'beit_base_patch16': - model_func = beit_base_patch16 - elif name == 'dit_base_patch16': - model_func = dit_base_patch16 - elif name == "deit_base_patch16": - model_func = deit_base_patch16 - elif name == "mae_base_patch16": - model_func = mae_base_patch16 - elif name == "dit_large_patch16": - model_func = dit_large_patch16 - elif name == "beit_large_patch16": - model_func = beit_large_patch16 - - if 'beit' in name or 'dit' in name: - if pos_type == "abs": - self.backbone = model_func(img_size=img_size, - out_features=out_features, - drop_path_rate=drop_path, - use_abs_pos_emb=True, - **model_kwargs) - elif pos_type == "shared_rel": - self.backbone = model_func(img_size=img_size, - out_features=out_features, - drop_path_rate=drop_path, - use_shared_rel_pos_bias=True, - **model_kwargs) - elif pos_type == "rel": - self.backbone = model_func(img_size=img_size, - out_features=out_features, - drop_path_rate=drop_path, - use_rel_pos_bias=True, - **model_kwargs) - else: - raise ValueError() - elif "layoutlmv3" in name: - config = AutoConfig.from_pretrained(config_path) - # disable relative bias as DiT - config.has_spatial_attention_bias = False - config.has_relative_attention_bias = False - self.backbone = LayoutLMv3Model(config, detection=True, - out_features=out_features, image_only=image_only) - else: - self.backbone = model_func(img_size=img_size, - out_features=out_features, - drop_path_rate=drop_path, - **model_kwargs) - self.name = name - - def forward(self, x): - """ - Args: - x: Tensor of shape (N,C,H,W). H, W must be a multiple of ``self.size_divisibility``. - - Returns: - dict[str->Tensor]: names and the corresponding features - """ - if "layoutlmv3" in self.name: - return self.backbone.forward( - input_ids=x["input_ids"] if "input_ids" in x else None, - bbox=x["bbox"] if "bbox" in x else None, - images=x["images"] if "images" in x else None, - attention_mask=x["attention_mask"] if "attention_mask" in x else None, - # output_hidden_states=True, - ) - assert x.dim() == 4, f"VIT takes an input of shape (N, C, H, W). Got {x.shape} instead!" - return self.backbone.forward_features(x) - - def output_shape(self): - return { - name: ShapeSpec( - channels=self._out_feature_channels[name], stride=self._out_feature_strides[name] - ) - for name in self._out_features - } - - -def build_VIT_backbone(cfg): - """ - Create a VIT instance from config. - - Args: - cfg: a detectron2 CfgNode - - Returns: - A VIT backbone instance. - """ - # fmt: off - name = cfg.MODEL.VIT.NAME - out_features = cfg.MODEL.VIT.OUT_FEATURES - drop_path = cfg.MODEL.VIT.DROP_PATH - img_size = cfg.MODEL.VIT.IMG_SIZE - pos_type = cfg.MODEL.VIT.POS_TYPE - - model_kwargs = eval(str(cfg.MODEL.VIT.MODEL_KWARGS).replace("`", "")) - - if 'layoutlmv3' in name: - if cfg.MODEL.CONFIG_PATH != '': - config_path = cfg.MODEL.CONFIG_PATH - else: - config_path = cfg.MODEL.WEIGHTS.replace('pytorch_model.bin', '') # layoutlmv3 pre-trained models - config_path = config_path.replace('model_final.pth', '') # detection fine-tuned models - else: - config_path = None - - return VIT_Backbone(name, out_features, drop_path, img_size, pos_type, model_kwargs, - config_path=config_path, image_only=cfg.MODEL.IMAGE_ONLY, cfg=cfg) - - -@BACKBONE_REGISTRY.register() -def build_vit_fpn_backbone(cfg, input_shape: ShapeSpec): - """ - Create a VIT w/ FPN backbone. - - Args: - cfg: a detectron2 CfgNode - - Returns: - backbone (Backbone): backbone module, must be a subclass of :class:`Backbone`. - """ - bottom_up = build_VIT_backbone(cfg) - in_features = cfg.MODEL.FPN.IN_FEATURES - out_channels = cfg.MODEL.FPN.OUT_CHANNELS - backbone = FPN( - bottom_up=bottom_up, - in_features=in_features, - out_channels=out_channels, - norm=cfg.MODEL.FPN.NORM, - top_block=LastLevelMaxPool(), - fuse_type=cfg.MODEL.FPN.FUSE_TYPE, - ) - return backbone diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/beit.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/beit.py deleted file mode 100644 index 03d4fabdc..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/beit.py +++ /dev/null @@ -1,671 +0,0 @@ -""" Vision Transformer (ViT) in PyTorch - -A PyTorch implement of Vision Transformers as described in -'An Image Is Worth 16 x 16 Words: Transformers for Image Recognition at Scale' - https://arxiv.org/abs/2010.11929 - -The official jax code is released and available at https://github.com/google-research/vision_transformer - -Status/TODO: -* Models updated to be compatible with official impl. Args added to support backward compat for old PyTorch weights. -* Weights ported from official jax impl for 384x384 base and small models, 16x16 and 32x32 patches. -* Trained (supervised on ImageNet-1k) my custom 'small' patch model to 77.9, 'base' to 79.4 top-1 with this code. -* Hopefully find time and GPUs for SSL or unsupervised pretraining on OpenImages w/ ImageNet fine-tune in future. - -Acknowledgments: -* The paper authors for releasing code and weights, thanks! -* I fixed my class token impl based on Phil Wang's https://github.com/lucidrains/vit-pytorch ... check it out -for some einops/einsum fun -* Simple transformer style inspired by Andrej Karpathy's https://github.com/karpathy/minGPT -* Bert reference code checks against Huggingface Transformers and Tensorflow Bert - -Hacked together by / Copyright 2020 Ross Wightman -""" -import warnings -import math -import torch -from functools import partial -import torch.nn as nn -import torch.nn.functional as F -import torch.utils.checkpoint as checkpoint -from timm.models.layers import drop_path, to_2tuple, trunc_normal_ - - -def _cfg(url='', **kwargs): - return { - 'url': url, - 'num_classes': 1000, 'input_size': (3, 224, 224), 'pool_size': None, - 'crop_pct': .9, 'interpolation': 'bicubic', - 'mean': (0.5, 0.5, 0.5), 'std': (0.5, 0.5, 0.5), - **kwargs - } - - -class DropPath(nn.Module): - """Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks). - """ - - def __init__(self, drop_prob=None): - super(DropPath, self).__init__() - self.drop_prob = drop_prob - - def forward(self, x): - return drop_path(x, self.drop_prob, self.training) - - def extra_repr(self) -> str: - return 'p={}'.format(self.drop_prob) - - -class Mlp(nn.Module): - def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.): - super().__init__() - out_features = out_features or in_features - hidden_features = hidden_features or in_features - self.fc1 = nn.Linear(in_features, hidden_features) - self.act = act_layer() - self.fc2 = nn.Linear(hidden_features, out_features) - self.drop = nn.Dropout(drop) - - def forward(self, x): - x = self.fc1(x) - x = self.act(x) - # x = self.drop(x) - # commit this for the orignal BERT implement - x = self.fc2(x) - x = self.drop(x) - return x - - -class Attention(nn.Module): - def __init__( - self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., - proj_drop=0., window_size=None, attn_head_dim=None): - super().__init__() - self.num_heads = num_heads - head_dim = dim // num_heads - if attn_head_dim is not None: - head_dim = attn_head_dim - all_head_dim = head_dim * self.num_heads - # NOTE scale factor was wrong in my original version, can set manually to be compat with prev weights - self.scale = qk_scale or head_dim ** -0.5 - - self.qkv = nn.Linear(dim, all_head_dim * 3, bias=False) - if qkv_bias: - self.q_bias = nn.Parameter(torch.zeros(all_head_dim)) - self.v_bias = nn.Parameter(torch.zeros(all_head_dim)) - else: - self.q_bias = None - self.v_bias = None - - if window_size: - self.window_size = window_size - self.num_relative_distance = (2 * window_size[0] - 1) * (2 * window_size[1] - 1) + 3 - self.relative_position_bias_table = nn.Parameter( - torch.zeros(self.num_relative_distance, num_heads)) # 2*Wh-1 * 2*Ww-1, nH - # cls to token & token 2 cls & cls to cls - - # get pair-wise relative position index for each token inside the window - coords_h = torch.arange(window_size[0]) - coords_w = torch.arange(window_size[1]) - coords = torch.stack(torch.meshgrid([coords_h, coords_w])) # 2, Wh, Ww - coords_flatten = torch.flatten(coords, 1) # 2, Wh*Ww - relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :] # 2, Wh*Ww, Wh*Ww - relative_coords = relative_coords.permute(1, 2, 0).contiguous() # Wh*Ww, Wh*Ww, 2 - relative_coords[:, :, 0] += window_size[0] - 1 # shift to start from 0 - relative_coords[:, :, 1] += window_size[1] - 1 - relative_coords[:, :, 0] *= 2 * window_size[1] - 1 - relative_position_index = \ - torch.zeros(size=(window_size[0] * window_size[1] + 1,) * 2, dtype=relative_coords.dtype) - relative_position_index[1:, 1:] = relative_coords.sum(-1) # Wh*Ww, Wh*Ww - relative_position_index[0, 0:] = self.num_relative_distance - 3 - relative_position_index[0:, 0] = self.num_relative_distance - 2 - relative_position_index[0, 0] = self.num_relative_distance - 1 - - self.register_buffer("relative_position_index", relative_position_index) - - # trunc_normal_(self.relative_position_bias_table, std=.0) - else: - self.window_size = None - self.relative_position_bias_table = None - self.relative_position_index = None - - self.attn_drop = nn.Dropout(attn_drop) - self.proj = nn.Linear(all_head_dim, dim) - self.proj_drop = nn.Dropout(proj_drop) - - def forward(self, x, rel_pos_bias=None, training_window_size=None): - B, N, C = x.shape - qkv_bias = None - if self.q_bias is not None: - qkv_bias = torch.cat((self.q_bias, torch.zeros_like(self.v_bias, requires_grad=False), self.v_bias)) - # qkv = self.qkv(x).reshape(B, N, 3, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4) - qkv = F.linear(input=x, weight=self.qkv.weight, bias=qkv_bias) - qkv = qkv.reshape(B, N, 3, self.num_heads, -1).permute(2, 0, 3, 1, 4) - q, k, v = qkv[0], qkv[1], qkv[2] # make torchscript happy (cannot use tensor as tuple) - - q = q * self.scale - attn = (q @ k.transpose(-2, -1)) - - if self.relative_position_bias_table is not None: - if training_window_size == self.window_size: - relative_position_bias = \ - self.relative_position_bias_table[self.relative_position_index.view(-1)].view( - self.window_size[0] * self.window_size[1] + 1, - self.window_size[0] * self.window_size[1] + 1, -1) # Wh*Ww,Wh*Ww,nH - relative_position_bias = relative_position_bias.permute(2, 0, 1).contiguous() # nH, Wh*Ww, Wh*Ww - attn = attn + relative_position_bias.unsqueeze(0) - else: - training_window_size = tuple(training_window_size.tolist()) - new_num_relative_distance = (2 * training_window_size[0] - 1) * (2 * training_window_size[1] - 1) + 3 - # new_num_relative_dis 为 所有可能的相对位置选项,包含cls-cls,tok-cls,与cls-tok - new_relative_position_bias_table = F.interpolate( - self.relative_position_bias_table[:-3, :].permute(1, 0).view(1, self.num_heads, - 2 * self.window_size[0] - 1, - 2 * self.window_size[1] - 1), - size=(2 * training_window_size[0] - 1, 2 * training_window_size[1] - 1), mode='bicubic', - align_corners=False) - new_relative_position_bias_table = new_relative_position_bias_table.view(self.num_heads, - new_num_relative_distance - 3).permute( - 1, 0) - new_relative_position_bias_table = torch.cat( - [new_relative_position_bias_table, self.relative_position_bias_table[-3::]], dim=0) - - # get pair-wise relative position index for each token inside the window - coords_h = torch.arange(training_window_size[0]) - coords_w = torch.arange(training_window_size[1]) - coords = torch.stack(torch.meshgrid([coords_h, coords_w])) # 2, Wh, Ww - coords_flatten = torch.flatten(coords, 1) # 2, Wh*Ww - relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :] # 2, Wh*Ww, Wh*Ww - relative_coords = relative_coords.permute(1, 2, 0).contiguous() # Wh*Ww, Wh*Ww, 2 - relative_coords[:, :, 0] += training_window_size[0] - 1 # shift to start from 0 - relative_coords[:, :, 1] += training_window_size[1] - 1 - relative_coords[:, :, 0] *= 2 * training_window_size[1] - 1 - relative_position_index = \ - torch.zeros(size=(training_window_size[0] * training_window_size[1] + 1,) * 2, - dtype=relative_coords.dtype) - relative_position_index[1:, 1:] = relative_coords.sum(-1) # Wh*Ww, Wh*Ww - relative_position_index[0, 0:] = new_num_relative_distance - 3 - relative_position_index[0:, 0] = new_num_relative_distance - 2 - relative_position_index[0, 0] = new_num_relative_distance - 1 - - relative_position_bias = \ - new_relative_position_bias_table[relative_position_index.view(-1)].view( - training_window_size[0] * training_window_size[1] + 1, - training_window_size[0] * training_window_size[1] + 1, -1) # Wh*Ww,Wh*Ww,nH - relative_position_bias = relative_position_bias.permute(2, 0, 1).contiguous() # nH, Wh*Ww, Wh*Ww - attn = attn + relative_position_bias.unsqueeze(0) - - if rel_pos_bias is not None: - attn = attn + rel_pos_bias - - attn = attn.softmax(dim=-1) - attn = self.attn_drop(attn) - - x = (attn @ v).transpose(1, 2).reshape(B, N, -1) - x = self.proj(x) - x = self.proj_drop(x) - return x - - -class Block(nn.Module): - - def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0., - drop_path=0., init_values=None, act_layer=nn.GELU, norm_layer=nn.LayerNorm, - window_size=None, attn_head_dim=None): - super().__init__() - self.norm1 = norm_layer(dim) - self.attn = Attention( - dim, num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale, - attn_drop=attn_drop, proj_drop=drop, window_size=window_size, attn_head_dim=attn_head_dim) - # NOTE: drop path for stochastic depth, we shall see if this is better than dropout here - self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity() - self.norm2 = norm_layer(dim) - mlp_hidden_dim = int(dim * mlp_ratio) - self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop) - - if init_values is not None: - self.gamma_1 = nn.Parameter(init_values * torch.ones((dim)), requires_grad=True) - self.gamma_2 = nn.Parameter(init_values * torch.ones((dim)), requires_grad=True) - else: - self.gamma_1, self.gamma_2 = None, None - - def forward(self, x, rel_pos_bias=None, training_window_size=None): - if self.gamma_1 is None: - x = x + self.drop_path( - self.attn(self.norm1(x), rel_pos_bias=rel_pos_bias, training_window_size=training_window_size)) - x = x + self.drop_path(self.mlp(self.norm2(x))) - else: - x = x + self.drop_path(self.gamma_1 * self.attn(self.norm1(x), rel_pos_bias=rel_pos_bias, - training_window_size=training_window_size)) - x = x + self.drop_path(self.gamma_2 * self.mlp(self.norm2(x))) - return x - - -class PatchEmbed(nn.Module): - """ Image to Patch Embedding - """ - - def __init__(self, img_size=[224, 224], patch_size=16, in_chans=3, embed_dim=768): - super().__init__() - img_size = to_2tuple(img_size) - patch_size = to_2tuple(patch_size) - num_patches = (img_size[1] // patch_size[1]) * (img_size[0] // patch_size[0]) - self.patch_shape = (img_size[0] // patch_size[0], img_size[1] // patch_size[1]) - self.num_patches_w = self.patch_shape[0] - self.num_patches_h = self.patch_shape[1] - # the so-called patch_shape is the patch shape during pre-training - self.img_size = img_size - self.patch_size = patch_size - self.num_patches = num_patches - - self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=patch_size) - - def forward(self, x, position_embedding=None, **kwargs): - # FIXME look at relaxing size constraints - # assert H == self.img_size[0] and W == self.img_size[1], \ - # f"Input image size ({H}*{W}) doesn't match model ({self.img_size[0]}*{self.img_size[1]})." - x = self.proj(x) - Hp, Wp = x.shape[2], x.shape[3] - - if position_embedding is not None: - # interpolate the position embedding to the corresponding size - position_embedding = position_embedding.view(1, self.patch_shape[0], self.patch_shape[1], -1).permute(0, 3, - 1, 2) - position_embedding = F.interpolate(position_embedding, size=(Hp, Wp), mode='bicubic') - x = x + position_embedding - - x = x.flatten(2).transpose(1, 2) - return x, (Hp, Wp) - - -class HybridEmbed(nn.Module): - """ CNN Feature Map Embedding - Extract feature map from CNN, flatten, project to embedding dim. - """ - - def __init__(self, backbone, img_size=[224, 224], feature_size=None, in_chans=3, embed_dim=768): - super().__init__() - assert isinstance(backbone, nn.Module) - img_size = to_2tuple(img_size) - self.img_size = img_size - self.backbone = backbone - if feature_size is None: - with torch.no_grad(): - # FIXME this is hacky, but most reliable way of determining the exact dim of the output feature - # map for all networks, the feature metadata has reliable channel and stride info, but using - # stride to calc feature dim requires info about padding of each stage that isn't captured. - training = backbone.training - if training: - backbone.eval() - o = self.backbone(torch.zeros(1, in_chans, img_size[0], img_size[1]))[-1] - feature_size = o.shape[-2:] - feature_dim = o.shape[1] - backbone.train(training) - else: - feature_size = to_2tuple(feature_size) - feature_dim = self.backbone.feature_info.channels()[-1] - self.num_patches = feature_size[0] * feature_size[1] - self.proj = nn.Linear(feature_dim, embed_dim) - - def forward(self, x): - x = self.backbone(x)[-1] - x = x.flatten(2).transpose(1, 2) - x = self.proj(x) - return x - - -class RelativePositionBias(nn.Module): - - def __init__(self, window_size, num_heads): - super().__init__() - self.window_size = window_size - self.num_heads = num_heads - self.num_relative_distance = (2 * window_size[0] - 1) * (2 * window_size[1] - 1) + 3 - self.relative_position_bias_table = nn.Parameter( - torch.zeros(self.num_relative_distance, num_heads)) # 2*Wh-1 * 2*Ww-1, nH - # cls to token & token 2 cls & cls to cls - - # get pair-wise relative position index for each token inside the window - coords_h = torch.arange(window_size[0]) - coords_w = torch.arange(window_size[1]) - coords = torch.stack(torch.meshgrid([coords_h, coords_w])) # 2, Wh, Ww - coords_flatten = torch.flatten(coords, 1) # 2, Wh*Ww - relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :] # 2, Wh*Ww, Wh*Ww - relative_coords = relative_coords.permute(1, 2, 0).contiguous() # Wh*Ww, Wh*Ww, 2 - relative_coords[:, :, 0] += window_size[0] - 1 # shift to start from 0 - relative_coords[:, :, 1] += window_size[1] - 1 - relative_coords[:, :, 0] *= 2 * window_size[1] - 1 - relative_position_index = \ - torch.zeros(size=(window_size[0] * window_size[1] + 1,) * 2, dtype=relative_coords.dtype) - relative_position_index[1:, 1:] = relative_coords.sum(-1) # Wh*Ww, Wh*Ww - relative_position_index[0, 0:] = self.num_relative_distance - 3 - relative_position_index[0:, 0] = self.num_relative_distance - 2 - relative_position_index[0, 0] = self.num_relative_distance - 1 - - self.register_buffer("relative_position_index", relative_position_index) - - # trunc_normal_(self.relative_position_bias_table, std=.02) - - def forward(self, training_window_size): - if training_window_size == self.window_size: - relative_position_bias = \ - self.relative_position_bias_table[self.relative_position_index.view(-1)].view( - self.window_size[0] * self.window_size[1] + 1, - self.window_size[0] * self.window_size[1] + 1, -1) # Wh*Ww,Wh*Ww,nH - relative_position_bias = relative_position_bias.permute(2, 0, 1).contiguous() # nH, Wh*Ww, Wh*Ww - else: - training_window_size = tuple(training_window_size.tolist()) - new_num_relative_distance = (2 * training_window_size[0] - 1) * (2 * training_window_size[1] - 1) + 3 - # new_num_relative_dis 为 所有可能的相对位置选项,包含cls-cls,tok-cls,与cls-tok - new_relative_position_bias_table = F.interpolate( - self.relative_position_bias_table[:-3, :].permute(1, 0).view(1, self.num_heads, - 2 * self.window_size[0] - 1, - 2 * self.window_size[1] - 1), - size=(2 * training_window_size[0] - 1, 2 * training_window_size[1] - 1), mode='bicubic', - align_corners=False) - new_relative_position_bias_table = new_relative_position_bias_table.view(self.num_heads, - new_num_relative_distance - 3).permute( - 1, 0) - new_relative_position_bias_table = torch.cat( - [new_relative_position_bias_table, self.relative_position_bias_table[-3::]], dim=0) - - # get pair-wise relative position index for each token inside the window - coords_h = torch.arange(training_window_size[0]) - coords_w = torch.arange(training_window_size[1]) - coords = torch.stack(torch.meshgrid([coords_h, coords_w])) # 2, Wh, Ww - coords_flatten = torch.flatten(coords, 1) # 2, Wh*Ww - relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :] # 2, Wh*Ww, Wh*Ww - relative_coords = relative_coords.permute(1, 2, 0).contiguous() # Wh*Ww, Wh*Ww, 2 - relative_coords[:, :, 0] += training_window_size[0] - 1 # shift to start from 0 - relative_coords[:, :, 1] += training_window_size[1] - 1 - relative_coords[:, :, 0] *= 2 * training_window_size[1] - 1 - relative_position_index = \ - torch.zeros(size=(training_window_size[0] * training_window_size[1] + 1,) * 2, - dtype=relative_coords.dtype) - relative_position_index[1:, 1:] = relative_coords.sum(-1) # Wh*Ww, Wh*Ww - relative_position_index[0, 0:] = new_num_relative_distance - 3 - relative_position_index[0:, 0] = new_num_relative_distance - 2 - relative_position_index[0, 0] = new_num_relative_distance - 1 - - relative_position_bias = \ - new_relative_position_bias_table[relative_position_index.view(-1)].view( - training_window_size[0] * training_window_size[1] + 1, - training_window_size[0] * training_window_size[1] + 1, -1) # Wh*Ww,Wh*Ww,nH - relative_position_bias = relative_position_bias.permute(2, 0, 1).contiguous() # nH, Wh*Ww, Wh*Ww - - return relative_position_bias - - -class BEiT(nn.Module): - """ Vision Transformer with support for patch or hybrid CNN input stage - """ - - def __init__(self, - img_size=[224, 224], - patch_size=16, - in_chans=3, - num_classes=80, - embed_dim=768, - depth=12, - num_heads=12, - mlp_ratio=4., - qkv_bias=False, - qk_scale=None, - drop_rate=0., - attn_drop_rate=0., - drop_path_rate=0., - hybrid_backbone=None, - norm_layer=None, - init_values=None, - use_abs_pos_emb=False, - use_rel_pos_bias=False, - use_shared_rel_pos_bias=False, - use_checkpoint=True, - pretrained=None, - out_features=None, - ): - - super(BEiT, self).__init__() - - norm_layer = norm_layer or partial(nn.LayerNorm, eps=1e-6) - self.num_classes = num_classes - self.num_features = self.embed_dim = embed_dim # num_features for consistency with other models - self.use_checkpoint = use_checkpoint - - if hybrid_backbone is not None: - self.patch_embed = HybridEmbed( - hybrid_backbone, img_size=img_size, in_chans=in_chans, embed_dim=embed_dim) - else: - self.patch_embed = PatchEmbed( - img_size=img_size, patch_size=patch_size, in_chans=in_chans, embed_dim=embed_dim) - num_patches = self.patch_embed.num_patches - self.out_features = out_features - self.out_indices = [int(name[5:]) for name in out_features] - - self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dim)) - # self.mask_token = nn.Parameter(torch.zeros(1, 1, embed_dim)) - if use_abs_pos_emb: - self.pos_embed = nn.Parameter(torch.zeros(1, num_patches + 1, embed_dim)) - else: - self.pos_embed = None - self.pos_drop = nn.Dropout(p=drop_rate) - - self.use_shared_rel_pos_bias = use_shared_rel_pos_bias - if use_shared_rel_pos_bias: - self.rel_pos_bias = RelativePositionBias(window_size=self.patch_embed.patch_shape, num_heads=num_heads) - else: - self.rel_pos_bias = None - - dpr = [x.item() for x in torch.linspace(0, drop_path_rate, depth)] # stochastic depth decay rule - self.use_rel_pos_bias = use_rel_pos_bias - self.blocks = nn.ModuleList([ - Block( - dim=embed_dim, num_heads=num_heads, mlp_ratio=mlp_ratio, qkv_bias=qkv_bias, qk_scale=qk_scale, - drop=drop_rate, attn_drop=attn_drop_rate, drop_path=dpr[i], norm_layer=norm_layer, - init_values=init_values, window_size=self.patch_embed.patch_shape if use_rel_pos_bias else None) - for i in range(depth)]) - - # trunc_normal_(self.mask_token, std=.02) - - if patch_size == 16: - self.fpn1 = nn.Sequential( - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - # nn.SyncBatchNorm(embed_dim), - nn.BatchNorm2d(embed_dim), - nn.GELU(), - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - ) - - self.fpn2 = nn.Sequential( - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - ) - - self.fpn3 = nn.Identity() - - self.fpn4 = nn.MaxPool2d(kernel_size=2, stride=2) - elif patch_size == 8: - self.fpn1 = nn.Sequential( - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - ) - - self.fpn2 = nn.Identity() - - self.fpn3 = nn.Sequential( - nn.MaxPool2d(kernel_size=2, stride=2), - ) - - self.fpn4 = nn.Sequential( - nn.MaxPool2d(kernel_size=4, stride=4), - ) - - if self.pos_embed is not None: - trunc_normal_(self.pos_embed, std=.02) - trunc_normal_(self.cls_token, std=.02) - self.apply(self._init_weights) - self.fix_init_weight() - - def fix_init_weight(self): - def rescale(param, layer_id): - param.div_(math.sqrt(2.0 * layer_id)) - - for layer_id, layer in enumerate(self.blocks): - rescale(layer.attn.proj.weight.data, layer_id + 1) - rescale(layer.mlp.fc2.weight.data, layer_id + 1) - - def _init_weights(self, m): - if isinstance(m, nn.Linear): - trunc_normal_(m.weight, std=.02) - if isinstance(m, nn.Linear) and m.bias is not None: - nn.init.constant_(m.bias, 0) - elif isinstance(m, nn.LayerNorm): - nn.init.constant_(m.bias, 0) - nn.init.constant_(m.weight, 1.0) - - ''' - def init_weights(self): - """Initialize the weights in backbone. - - Args: - pretrained (str, optional): Path to pre-trained weights. - Defaults to None. - """ - logger = get_root_logger() - - if self.pos_embed is not None: - trunc_normal_(self.pos_embed, std=.02) - trunc_normal_(self.cls_token, std=.02) - self.apply(self._init_weights) - self.fix_init_weight() - - if self.init_cfg is None: - logger.warn(f'No pre-trained weights for ' - f'{self.__class__.__name__}, ' - f'training start from scratch') - else: - assert 'checkpoint' in self.init_cfg, f'Only support ' \ - f'specify `Pretrained` in ' \ - f'`init_cfg` in ' \ - f'{self.__class__.__name__} ' - logger.info(f"Will load ckpt from {self.init_cfg['checkpoint']}") - load_checkpoint(self, - filename=self.init_cfg['checkpoint'], - strict=False, - logger=logger, - beit_spec_expand_rel_pos = self.use_rel_pos_bias, - ) - ''' - - def get_num_layers(self): - return len(self.blocks) - - @torch.jit.ignore - def no_weight_decay(self): - return {'pos_embed', 'cls_token'} - - def forward_features(self, x): - B, C, H, W = x.shape - x, (Hp, Wp) = self.patch_embed(x, self.pos_embed[:, 1:, :] if self.pos_embed is not None else None) - # Hp, Wp are HW for patches - batch_size, seq_len, _ = x.size() - - cls_tokens = self.cls_token.expand(batch_size, -1, -1) # stole cls_tokens impl from Phil Wang, thanks - if self.pos_embed is not None: - cls_tokens = cls_tokens + self.pos_embed[:, :1, :] - x = torch.cat((cls_tokens, x), dim=1) - x = self.pos_drop(x) - - features = [] - training_window_size = torch.tensor([Hp, Wp]) - - rel_pos_bias = self.rel_pos_bias(training_window_size) if self.rel_pos_bias is not None else None - - for i, blk in enumerate(self.blocks): - if self.use_checkpoint: - x = checkpoint.checkpoint(blk, x, rel_pos_bias, training_window_size) - else: - x = blk(x, rel_pos_bias=rel_pos_bias, training_window_size=training_window_size) - if i in self.out_indices: - xp = x[:, 1:, :].permute(0, 2, 1).reshape(B, -1, Hp, Wp) - features.append(xp.contiguous()) - - ops = [self.fpn1, self.fpn2, self.fpn3, self.fpn4] - for i in range(len(features)): - features[i] = ops[i](features[i]) - - feat_out = {} - - for name, value in zip(self.out_features, features): - feat_out[name] = value - - return feat_out - - def forward(self, x): - x = self.forward_features(x) - return x - - -def beit_base_patch16(pretrained=False, **kwargs): - model = BEiT( - patch_size=16, - embed_dim=768, - depth=12, - num_heads=12, - mlp_ratio=4, - qkv_bias=True, - norm_layer=partial(nn.LayerNorm, eps=1e-6), - init_values=None, - **kwargs) - model.default_cfg = _cfg() - return model - -def beit_large_patch16(pretrained=False, **kwargs): - model = BEiT( - patch_size=16, - embed_dim=1024, - depth=24, - num_heads=16, - mlp_ratio=4, - qkv_bias=True, - norm_layer=partial(nn.LayerNorm, eps=1e-6), - init_values=None, - **kwargs) - model.default_cfg = _cfg() - return model - -def dit_base_patch16(pretrained=False, **kwargs): - model = BEiT( - patch_size=16, - embed_dim=768, - depth=12, - num_heads=12, - mlp_ratio=4, - qkv_bias=True, - norm_layer=partial(nn.LayerNorm, eps=1e-6), - init_values=0.1, - **kwargs) - model.default_cfg = _cfg() - return model - -def dit_large_patch16(pretrained=False, **kwargs): - model = BEiT( - patch_size=16, - embed_dim=1024, - depth=24, - num_heads=16, - mlp_ratio=4, - qkv_bias=True, - norm_layer=partial(nn.LayerNorm, eps=1e-6), - init_values=1e-5, - **kwargs) - model.default_cfg = _cfg() - return model - -if __name__ == '__main__': - model = BEiT(use_checkpoint=True, use_shared_rel_pos_bias=True) - model = model.to("cuda:0") - input1 = torch.rand(2, 3, 512, 762).to("cuda:0") - input2 = torch.rand(2, 3, 800, 1200).to("cuda:0") - input3 = torch.rand(2, 3, 720, 1000).to("cuda:0") - output1 = model(input1) - output2 = model(input2) - output3 = model(input3) - print("all done") diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/deit.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/deit.py deleted file mode 100644 index 9a13bb0a8..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/deit.py +++ /dev/null @@ -1,476 +0,0 @@ -""" -Mostly copy-paste from DINO and timm library: -https://github.com/facebookresearch/dino -https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py -""" -import warnings - -import math -import torch -import torch.nn as nn -import torch.utils.checkpoint as checkpoint -from timm.models.layers import trunc_normal_, drop_path, to_2tuple -from functools import partial - -def _cfg(url='', **kwargs): - return { - 'url': url, - 'num_classes': 1000, 'input_size': (3, 224, 224), 'pool_size': None, - 'crop_pct': .9, 'interpolation': 'bicubic', - 'mean': (0.5, 0.5, 0.5), 'std': (0.5, 0.5, 0.5), - **kwargs - } - -class DropPath(nn.Module): - """Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks). - """ - - def __init__(self, drop_prob=None): - super(DropPath, self).__init__() - self.drop_prob = drop_prob - - def forward(self, x): - return drop_path(x, self.drop_prob, self.training) - - def extra_repr(self) -> str: - return 'p={}'.format(self.drop_prob) - - -class Mlp(nn.Module): - def __init__(self, in_features, hidden_features=None, out_features=None, act_layer=nn.GELU, drop=0.): - super().__init__() - out_features = out_features or in_features - hidden_features = hidden_features or in_features - self.fc1 = nn.Linear(in_features, hidden_features) - self.act = act_layer() - self.fc2 = nn.Linear(hidden_features, out_features) - self.drop = nn.Dropout(drop) - - def forward(self, x): - x = self.fc1(x) - x = self.act(x) - x = self.drop(x) - x = self.fc2(x) - x = self.drop(x) - return x - - -class Attention(nn.Module): - def __init__(self, dim, num_heads=8, qkv_bias=False, qk_scale=None, attn_drop=0., proj_drop=0.): - super().__init__() - self.num_heads = num_heads - head_dim = dim // num_heads - # NOTE scale factor was wrong in my original version, can set manually to be compat with prev weights - self.scale = qk_scale or head_dim ** -0.5 - - self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias) - self.attn_drop = nn.Dropout(attn_drop) - self.proj = nn.Linear(dim, dim) - self.proj_drop = nn.Dropout(proj_drop) - - def forward(self, x): - B, N, C = x.shape - q, k, v = self.qkv(x).reshape(B, N, 3, self.num_heads, - C // self.num_heads).permute(2, 0, 3, 1, 4) - - attn = (q @ k.transpose(-2, -1)) * self.scale - attn = attn.softmax(dim=-1) - attn = self.attn_drop(attn) - - x = (attn @ v).transpose(1, 2).reshape(B, N, C) - x = self.proj(x) - x = self.proj_drop(x) - return x - - -class Block(nn.Module): - - def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, qk_scale=None, drop=0., attn_drop=0., - drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm): - super().__init__() - self.norm1 = norm_layer(dim) - self.attn = Attention( - dim, num_heads=num_heads, qkv_bias=qkv_bias, qk_scale=qk_scale, attn_drop=attn_drop, proj_drop=drop) - # NOTE: drop path for stochastic depth, we shall see if this is better than dropout here - self.drop_path = DropPath( - drop_path) if drop_path > 0. else nn.Identity() - self.norm2 = norm_layer(dim) - mlp_hidden_dim = int(dim * mlp_ratio) - self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, - act_layer=act_layer, drop=drop) - - def forward(self, x): - x = x + self.drop_path(self.attn(self.norm1(x))) - x = x + self.drop_path(self.mlp(self.norm2(x))) - return x - - -class PatchEmbed(nn.Module): - """ Image to Patch Embedding - """ - - def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768): - super().__init__() - img_size = to_2tuple(img_size) - patch_size = to_2tuple(patch_size) - - self.window_size = (img_size[0] // patch_size[0], img_size[1] // patch_size[1]) - - self.num_patches_w, self.num_patches_h = self.window_size - - self.num_patches = self.window_size[0] * self.window_size[1] - self.img_size = img_size - self.patch_size = patch_size - - self.proj = nn.Conv2d(in_chans, embed_dim, - kernel_size=patch_size, stride=patch_size) - - def forward(self, x): - x = self.proj(x) - return x - - -class HybridEmbed(nn.Module): - """ CNN Feature Map Embedding - Extract feature map from CNN, flatten, project to embedding dim. - """ - - def __init__(self, backbone, img_size=224, feature_size=None, in_chans=3, embed_dim=768): - super().__init__() - assert isinstance(backbone, nn.Module) - img_size = to_2tuple(img_size) - self.img_size = img_size - self.backbone = backbone - if feature_size is None: - with torch.no_grad(): - # FIXME this is hacky, but most reliable way of determining the exact dim of the output feature - # map for all networks, the feature metadata has reliable channel and stride info, but using - # stride to calc feature dim requires info about padding of each stage that isn't captured. - training = backbone.training - if training: - backbone.eval() - o = self.backbone(torch.zeros( - 1, in_chans, img_size[0], img_size[1]))[-1] - feature_size = o.shape[-2:] - feature_dim = o.shape[1] - backbone.train(training) - else: - feature_size = to_2tuple(feature_size) - feature_dim = self.backbone.feature_info.channels()[-1] - self.num_patches = feature_size[0] * feature_size[1] - self.proj = nn.Linear(feature_dim, embed_dim) - - def forward(self, x): - x = self.backbone(x)[-1] - x = x.flatten(2).transpose(1, 2) - x = self.proj(x) - return x - - -class ViT(nn.Module): - """ Vision Transformer with support for patch or hybrid CNN input stage - """ - - def __init__(self, - model_name='vit_base_patch16_224', - img_size=384, - patch_size=16, - in_chans=3, - embed_dim=1024, - depth=24, - num_heads=16, - num_classes=19, - mlp_ratio=4., - qkv_bias=True, - qk_scale=None, - drop_rate=0.1, - attn_drop_rate=0., - drop_path_rate=0., - hybrid_backbone=None, - norm_layer=partial(nn.LayerNorm, eps=1e-6), - norm_cfg=None, - pos_embed_interp=False, - random_init=False, - align_corners=False, - use_checkpoint=False, - num_extra_tokens=1, - out_features=None, - **kwargs, - ): - - super(ViT, self).__init__() - self.model_name = model_name - self.img_size = img_size - self.patch_size = patch_size - self.in_chans = in_chans - self.embed_dim = embed_dim - self.depth = depth - self.num_heads = num_heads - self.num_classes = num_classes - self.mlp_ratio = mlp_ratio - self.qkv_bias = qkv_bias - self.qk_scale = qk_scale - self.drop_rate = drop_rate - self.attn_drop_rate = attn_drop_rate - self.drop_path_rate = drop_path_rate - self.hybrid_backbone = hybrid_backbone - self.norm_layer = norm_layer - self.norm_cfg = norm_cfg - self.pos_embed_interp = pos_embed_interp - self.random_init = random_init - self.align_corners = align_corners - self.use_checkpoint = use_checkpoint - self.num_extra_tokens = num_extra_tokens - self.out_features = out_features - self.out_indices = [int(name[5:]) for name in out_features] - - # self.num_stages = self.depth - # self.out_indices = tuple(range(self.num_stages)) - - if self.hybrid_backbone is not None: - self.patch_embed = HybridEmbed( - self.hybrid_backbone, img_size=self.img_size, in_chans=self.in_chans, embed_dim=self.embed_dim) - else: - self.patch_embed = PatchEmbed( - img_size=self.img_size, patch_size=self.patch_size, in_chans=self.in_chans, embed_dim=self.embed_dim) - self.num_patches = self.patch_embed.num_patches - - self.cls_token = nn.Parameter(torch.zeros(1, 1, self.embed_dim)) - - if self.num_extra_tokens == 2: - self.dist_token = nn.Parameter(torch.zeros(1, 1, self.embed_dim)) - - self.pos_embed = nn.Parameter(torch.zeros( - 1, self.num_patches + self.num_extra_tokens, self.embed_dim)) - self.pos_drop = nn.Dropout(p=self.drop_rate) - - # self.num_extra_tokens = self.pos_embed.shape[-2] - self.num_patches - dpr = [x.item() for x in torch.linspace(0, self.drop_path_rate, - self.depth)] # stochastic depth decay rule - self.blocks = nn.ModuleList([ - Block( - dim=self.embed_dim, num_heads=self.num_heads, mlp_ratio=self.mlp_ratio, qkv_bias=self.qkv_bias, - qk_scale=self.qk_scale, - drop=self.drop_rate, attn_drop=self.attn_drop_rate, drop_path=dpr[i], norm_layer=self.norm_layer) - for i in range(self.depth)]) - - # NOTE as per official impl, we could have a pre-logits representation dense layer + tanh here - # self.repr = nn.Linear(embed_dim, representation_size) - # self.repr_act = nn.Tanh() - - if patch_size == 16: - self.fpn1 = nn.Sequential( - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - nn.SyncBatchNorm(embed_dim), - nn.GELU(), - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - ) - - self.fpn2 = nn.Sequential( - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - ) - - self.fpn3 = nn.Identity() - - self.fpn4 = nn.MaxPool2d(kernel_size=2, stride=2) - elif patch_size == 8: - self.fpn1 = nn.Sequential( - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - ) - - self.fpn2 = nn.Identity() - - self.fpn3 = nn.Sequential( - nn.MaxPool2d(kernel_size=2, stride=2), - ) - - self.fpn4 = nn.Sequential( - nn.MaxPool2d(kernel_size=4, stride=4), - ) - - trunc_normal_(self.pos_embed, std=.02) - trunc_normal_(self.cls_token, std=.02) - if self.num_extra_tokens==2: - trunc_normal_(self.dist_token, std=0.2) - self.apply(self._init_weights) - # self.fix_init_weight() - - def fix_init_weight(self): - def rescale(param, layer_id): - param.div_(math.sqrt(2.0 * layer_id)) - - for layer_id, layer in enumerate(self.blocks): - rescale(layer.attn.proj.weight.data, layer_id + 1) - rescale(layer.mlp.fc2.weight.data, layer_id + 1) - - def _init_weights(self, m): - if isinstance(m, nn.Linear): - trunc_normal_(m.weight, std=.02) - if isinstance(m, nn.Linear) and m.bias is not None: - nn.init.constant_(m.bias, 0) - elif isinstance(m, nn.LayerNorm): - nn.init.constant_(m.bias, 0) - nn.init.constant_(m.weight, 1.0) - - ''' - def init_weights(self): - logger = get_root_logger() - - trunc_normal_(self.pos_embed, std=.02) - trunc_normal_(self.cls_token, std=.02) - self.apply(self._init_weights) - - if self.init_cfg is None: - logger.warn(f'No pre-trained weights for ' - f'{self.__class__.__name__}, ' - f'training start from scratch') - else: - assert 'checkpoint' in self.init_cfg, f'Only support ' \ - f'specify `Pretrained` in ' \ - f'`init_cfg` in ' \ - f'{self.__class__.__name__} ' - logger.info(f"Will load ckpt from {self.init_cfg['checkpoint']}") - load_checkpoint(self, filename=self.init_cfg['checkpoint'], strict=False, logger=logger) - ''' - - def get_num_layers(self): - return len(self.blocks) - - @torch.jit.ignore - def no_weight_decay(self): - return {'pos_embed', 'cls_token'} - - def _conv_filter(self, state_dict, patch_size=16): - """ convert patch embedding weight from manual patchify + linear proj to conv""" - out_dict = {} - for k, v in state_dict.items(): - if 'patch_embed.proj.weight' in k: - v = v.reshape((v.shape[0], 3, patch_size, patch_size)) - out_dict[k] = v - return out_dict - - def to_2D(self, x): - n, hw, c = x.shape - h = w = int(math.sqrt(hw)) - x = x.transpose(1, 2).reshape(n, c, h, w) - return x - - def to_1D(self, x): - n, c, h, w = x.shape - x = x.reshape(n, c, -1).transpose(1, 2) - return x - - def interpolate_pos_encoding(self, x, w, h): - npatch = x.shape[1] - self.num_extra_tokens - N = self.pos_embed.shape[1] - self.num_extra_tokens - if npatch == N and w == h: - return self.pos_embed - - class_ORdist_pos_embed = self.pos_embed[:, 0:self.num_extra_tokens] - - patch_pos_embed = self.pos_embed[:, self.num_extra_tokens:] - - dim = x.shape[-1] - w0 = w // self.patch_embed.patch_size[0] - h0 = h // self.patch_embed.patch_size[1] - # we add a small number to avoid floating point error in the interpolation - # see discussion at https://github.com/facebookresearch/dino/issues/8 - w0, h0 = w0 + 0.1, h0 + 0.1 - patch_pos_embed = nn.functional.interpolate( - patch_pos_embed.reshape(1, int(math.sqrt(N)), int(math.sqrt(N)), dim).permute(0, 3, 1, 2), - scale_factor=(w0 / math.sqrt(N), h0 / math.sqrt(N)), - mode='bicubic', - ) - assert int(w0) == patch_pos_embed.shape[-2] and int(h0) == patch_pos_embed.shape[-1] - patch_pos_embed = patch_pos_embed.permute(0, 2, 3, 1).view(1, -1, dim) - - return torch.cat((class_ORdist_pos_embed, patch_pos_embed), dim=1) - - def prepare_tokens(self, x, mask=None): - B, nc, w, h = x.shape - # patch linear embedding - x = self.patch_embed(x) - - # mask image modeling - if mask is not None: - x = self.mask_model(x, mask) - x = x.flatten(2).transpose(1, 2) - - # add the [CLS] token to the embed patch tokens - all_tokens = [self.cls_token.expand(B, -1, -1)] - - if self.num_extra_tokens == 2: - dist_tokens = self.dist_token.expand(B, -1, -1) - all_tokens.append(dist_tokens) - all_tokens.append(x) - - x = torch.cat(all_tokens, dim=1) - - # add positional encoding to each token - x = x + self.interpolate_pos_encoding(x, w, h) - - return self.pos_drop(x) - - def forward_features(self, x): - # print(f"==========shape of x is {x.shape}==========") - B, _, H, W = x.shape - Hp, Wp = H // self.patch_size, W // self.patch_size - x = self.prepare_tokens(x) - - features = [] - for i, blk in enumerate(self.blocks): - if self.use_checkpoint: - x = checkpoint.checkpoint(blk, x) - else: - x = blk(x) - if i in self.out_indices: - xp = x[:, self.num_extra_tokens:, :].permute(0, 2, 1).reshape(B, -1, Hp, Wp) - features.append(xp.contiguous()) - - ops = [self.fpn1, self.fpn2, self.fpn3, self.fpn4] - for i in range(len(features)): - features[i] = ops[i](features[i]) - - feat_out = {} - - for name, value in zip(self.out_features, features): - feat_out[name] = value - - return feat_out - - def forward(self, x): - x = self.forward_features(x) - return x - - -def deit_base_patch16(pretrained=False, **kwargs): - model = ViT( - patch_size=16, - drop_rate=0., - embed_dim=768, - depth=12, - num_heads=12, - num_classes=1000, - mlp_ratio=4., - qkv_bias=True, - use_checkpoint=True, - num_extra_tokens=2, - **kwargs) - model.default_cfg = _cfg() - return model - -def mae_base_patch16(pretrained=False, **kwargs): - model = ViT( - patch_size=16, - drop_rate=0., - embed_dim=768, - depth=12, - num_heads=12, - num_classes=1000, - mlp_ratio=4., - qkv_bias=True, - use_checkpoint=True, - num_extra_tokens=1, - **kwargs) - model.default_cfg = _cfg() - return model \ No newline at end of file diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/__init__.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/__init__.py deleted file mode 100644 index cd997b55f..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .models import ( - LayoutLMv3Config, - LayoutLMv3ForTokenClassification, - LayoutLMv3ForQuestionAnswering, - LayoutLMv3ForSequenceClassification, - LayoutLMv3Tokenizer, -) diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/__init__.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/__init__.py deleted file mode 100644 index 5bcec6c7c..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# flake8: noqa -from .data_collator import DataCollatorForKeyValueExtraction diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/cord.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/cord.py deleted file mode 100644 index 820dc53a4..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/cord.py +++ /dev/null @@ -1,171 +0,0 @@ -''' -Reference: https://huggingface.co/datasets/pierresi/cord/blob/main/cord.py -''' - - -import json -import os -from pathlib import Path -import datasets -from .image_utils import load_image, normalize_bbox -logger = datasets.logging.get_logger(__name__) -_CITATION = """\ -@article{park2019cord, - title={CORD: A Consolidated Receipt Dataset for Post-OCR Parsing}, - author={Park, Seunghyun and Shin, Seung and Lee, Bado and Lee, Junyeop and Surh, Jaeheung and Seo, Minjoon and Lee, Hwalsuk} - booktitle={Document Intelligence Workshop at Neural Information Processing Systems} - year={2019} -} -""" -_DESCRIPTION = """\ -https://github.com/clovaai/cord/ -""" - -def quad_to_box(quad): - # test 87 is wrongly annotated - box = ( - max(0, quad["x1"]), - max(0, quad["y1"]), - quad["x3"], - quad["y3"] - ) - if box[3] < box[1]: - bbox = list(box) - tmp = bbox[3] - bbox[3] = bbox[1] - bbox[1] = tmp - box = tuple(bbox) - if box[2] < box[0]: - bbox = list(box) - tmp = bbox[2] - bbox[2] = bbox[0] - bbox[0] = tmp - box = tuple(bbox) - return box - -def _get_drive_url(url): - base_url = 'https://drive.google.com/uc?id=' - split_url = url.split('/') - return base_url + split_url[5] - -_URLS = [ - _get_drive_url("https://drive.google.com/file/d/1MqhTbcj-AHXOqYoeoh12aRUwIprzTJYI/"), - _get_drive_url("https://drive.google.com/file/d/1wYdp5nC9LnHQZ2FcmOoC0eClyWvcuARU/") - # If you failed to download the dataset through the automatic downloader, - # you can download it manually and modify the code to get the local dataset. - # Or you can use the following links. Please follow the original LICENSE of CORD for usage. - # "https://layoutlm.blob.core.windows.net/cord/CORD-1k-001.zip", - # "https://layoutlm.blob.core.windows.net/cord/CORD-1k-002.zip" -] - -class CordConfig(datasets.BuilderConfig): - """BuilderConfig for CORD""" - def __init__(self, **kwargs): - """BuilderConfig for CORD. - Args: - **kwargs: keyword arguments forwarded to super. - """ - super(CordConfig, self).__init__(**kwargs) - -class Cord(datasets.GeneratorBasedBuilder): - BUILDER_CONFIGS = [ - CordConfig(name="cord", version=datasets.Version("1.0.0"), description="CORD dataset"), - ] - - def _info(self): - return datasets.DatasetInfo( - description=_DESCRIPTION, - features=datasets.Features( - { - "id": datasets.Value("string"), - "words": datasets.Sequence(datasets.Value("string")), - "bboxes": datasets.Sequence(datasets.Sequence(datasets.Value("int64"))), - "ner_tags": datasets.Sequence( - datasets.features.ClassLabel( - names=["O","B-MENU.NM","B-MENU.NUM","B-MENU.UNITPRICE","B-MENU.CNT","B-MENU.DISCOUNTPRICE","B-MENU.PRICE","B-MENU.ITEMSUBTOTAL","B-MENU.VATYN","B-MENU.ETC","B-MENU.SUB_NM","B-MENU.SUB_UNITPRICE","B-MENU.SUB_CNT","B-MENU.SUB_PRICE","B-MENU.SUB_ETC","B-VOID_MENU.NM","B-VOID_MENU.PRICE","B-SUB_TOTAL.SUBTOTAL_PRICE","B-SUB_TOTAL.DISCOUNT_PRICE","B-SUB_TOTAL.SERVICE_PRICE","B-SUB_TOTAL.OTHERSVC_PRICE","B-SUB_TOTAL.TAX_PRICE","B-SUB_TOTAL.ETC","B-TOTAL.TOTAL_PRICE","B-TOTAL.TOTAL_ETC","B-TOTAL.CASHPRICE","B-TOTAL.CHANGEPRICE","B-TOTAL.CREDITCARDPRICE","B-TOTAL.EMONEYPRICE","B-TOTAL.MENUTYPE_CNT","B-TOTAL.MENUQTY_CNT","I-MENU.NM","I-MENU.NUM","I-MENU.UNITPRICE","I-MENU.CNT","I-MENU.DISCOUNTPRICE","I-MENU.PRICE","I-MENU.ITEMSUBTOTAL","I-MENU.VATYN","I-MENU.ETC","I-MENU.SUB_NM","I-MENU.SUB_UNITPRICE","I-MENU.SUB_CNT","I-MENU.SUB_PRICE","I-MENU.SUB_ETC","I-VOID_MENU.NM","I-VOID_MENU.PRICE","I-SUB_TOTAL.SUBTOTAL_PRICE","I-SUB_TOTAL.DISCOUNT_PRICE","I-SUB_TOTAL.SERVICE_PRICE","I-SUB_TOTAL.OTHERSVC_PRICE","I-SUB_TOTAL.TAX_PRICE","I-SUB_TOTAL.ETC","I-TOTAL.TOTAL_PRICE","I-TOTAL.TOTAL_ETC","I-TOTAL.CASHPRICE","I-TOTAL.CHANGEPRICE","I-TOTAL.CREDITCARDPRICE","I-TOTAL.EMONEYPRICE","I-TOTAL.MENUTYPE_CNT","I-TOTAL.MENUQTY_CNT"] - ) - ), - "image": datasets.Array3D(shape=(3, 224, 224), dtype="uint8"), - "image_path": datasets.Value("string"), - } - ), - supervised_keys=None, - citation=_CITATION, - homepage="https://github.com/clovaai/cord/", - ) - - def _split_generators(self, dl_manager): - """Returns SplitGenerators.""" - """Uses local files located with data_dir""" - downloaded_file = dl_manager.download_and_extract(_URLS) - # move files from the second URL together with files from the first one. - dest = Path(downloaded_file[0])/"CORD" - for split in ["train", "dev", "test"]: - for file_type in ["image", "json"]: - if split == "test" and file_type == "json": - continue - files = (Path(downloaded_file[1])/"CORD"/split/file_type).iterdir() - for f in files: - os.rename(f, dest/split/file_type/f.name) - return [ - datasets.SplitGenerator( - name=datasets.Split.TRAIN, gen_kwargs={"filepath": dest/"train"} - ), - datasets.SplitGenerator( - name=datasets.Split.VALIDATION, gen_kwargs={"filepath": dest/"dev"} - ), - datasets.SplitGenerator( - name=datasets.Split.TEST, gen_kwargs={"filepath": dest/"test"} - ), - ] - - def get_line_bbox(self, bboxs): - x = [bboxs[i][j] for i in range(len(bboxs)) for j in range(0, len(bboxs[i]), 2)] - y = [bboxs[i][j] for i in range(len(bboxs)) for j in range(1, len(bboxs[i]), 2)] - - x0, y0, x1, y1 = min(x), min(y), max(x), max(y) - - assert x1 >= x0 and y1 >= y0 - bbox = [[x0, y0, x1, y1] for _ in range(len(bboxs))] - return bbox - - def _generate_examples(self, filepath): - logger.info("⏳ Generating examples from = %s", filepath) - ann_dir = os.path.join(filepath, "json") - img_dir = os.path.join(filepath, "image") - for guid, file in enumerate(sorted(os.listdir(ann_dir))): - words = [] - bboxes = [] - ner_tags = [] - file_path = os.path.join(ann_dir, file) - with open(file_path, "r", encoding="utf8") as f: - data = json.load(f) - image_path = os.path.join(img_dir, file) - image_path = image_path.replace("json", "png") - image, size = load_image(image_path) - for item in data["valid_line"]: - cur_line_bboxes = [] - line_words, label = item["words"], item["category"] - line_words = [w for w in line_words if w["text"].strip() != ""] - if len(line_words) == 0: - continue - if label == "other": - for w in line_words: - words.append(w["text"]) - ner_tags.append("O") - cur_line_bboxes.append(normalize_bbox(quad_to_box(w["quad"]), size)) - else: - words.append(line_words[0]["text"]) - ner_tags.append("B-" + label.upper()) - cur_line_bboxes.append(normalize_bbox(quad_to_box(line_words[0]["quad"]), size)) - for w in line_words[1:]: - words.append(w["text"]) - ner_tags.append("I-" + label.upper()) - cur_line_bboxes.append(normalize_bbox(quad_to_box(w["quad"]), size)) - # by default: --segment_level_layout 1 - # if do not want to use segment_level_layout, comment the following line - cur_line_bboxes = self.get_line_bbox(cur_line_bboxes) - bboxes.extend(cur_line_bboxes) - # yield guid, {"id": str(guid), "words": words, "bboxes": bboxes, "ner_tags": ner_tags, "image": image} - yield guid, {"id": str(guid), "words": words, "bboxes": bboxes, "ner_tags": ner_tags, - "image": image, "image_path": image_path} diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/data_collator.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/data_collator.py deleted file mode 100644 index 4232a6660..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/data_collator.py +++ /dev/null @@ -1,124 +0,0 @@ -import torch -from dataclasses import dataclass -from typing import Any, Dict, List, Optional, Tuple, Union - -from transformers import BatchEncoding, PreTrainedTokenizerBase -from transformers.data.data_collator import ( - DataCollatorMixin, - _torch_collate_batch, -) -from transformers.file_utils import PaddingStrategy - -from typing import NewType -InputDataClass = NewType("InputDataClass", Any) - -def pre_calc_rel_mat(segment_ids): - valid_span = torch.zeros((segment_ids.shape[0], segment_ids.shape[1], segment_ids.shape[1]), - device=segment_ids.device, dtype=torch.bool) - for i in range(segment_ids.shape[0]): - for j in range(segment_ids.shape[1]): - valid_span[i, j, :] = segment_ids[i, :] == segment_ids[i, j] - - return valid_span - -@dataclass -class DataCollatorForKeyValueExtraction(DataCollatorMixin): - """ - Data collator that will dynamically pad the inputs received, as well as the labels. - Args: - tokenizer (:class:`~transformers.PreTrainedTokenizer` or :class:`~transformers.PreTrainedTokenizerFast`): - The tokenizer used for encoding the data. - padding (:obj:`bool`, :obj:`str` or :class:`~transformers.file_utils.PaddingStrategy`, `optional`, defaults to :obj:`True`): - Select a strategy to pad the returned sequences (according to the model's padding side and padding index) - among: - * :obj:`True` or :obj:`'longest'`: Pad to the longest sequence in the batch (or no padding if only a single - sequence if provided). - * :obj:`'max_length'`: Pad to a maximum length specified with the argument :obj:`max_length` or to the - maximum acceptable input length for the model if that argument is not provided. - * :obj:`False` or :obj:`'do_not_pad'` (default): No padding (i.e., can output a batch with sequences of - different lengths). - max_length (:obj:`int`, `optional`): - Maximum length of the returned list and optionally padding length (see above). - pad_to_multiple_of (:obj:`int`, `optional`): - If set will pad the sequence to a multiple of the provided value. - This is especially useful to enable the use of Tensor Cores on NVIDIA hardware with compute capability >= - 7.5 (Volta). - label_pad_token_id (:obj:`int`, `optional`, defaults to -100): - The id to use when padding the labels (-100 will be automatically ignore by PyTorch loss functions). - """ - - tokenizer: PreTrainedTokenizerBase - padding: Union[bool, str, PaddingStrategy] = True - max_length: Optional[int] = None - pad_to_multiple_of: Optional[int] = None - label_pad_token_id: int = -100 - - def __call__(self, features): - label_name = "label" if "label" in features[0].keys() else "labels" - labels = [feature[label_name] for feature in features] if label_name in features[0].keys() else None - - images = None - if "images" in features[0]: - images = torch.stack([torch.tensor(d.pop("images")) for d in features]) - IMAGE_LEN = int(images.shape[-1] / 16) * int(images.shape[-1] / 16) + 1 - - batch = self.tokenizer.pad( - features, - padding=self.padding, - max_length=self.max_length, - pad_to_multiple_of=self.pad_to_multiple_of, - # Conversion to tensors will fail if we have labels as they are not of the same length yet. - return_tensors="pt" if labels is None else None, - ) - - if images is not None: - batch["images"] = images - batch = {k: torch.tensor(v, dtype=torch.int64) if isinstance(v[0], list) and k == 'attention_mask' else v - for k, v in batch.items()} - visual_attention_mask = torch.ones((len(batch['input_ids']), IMAGE_LEN), dtype=torch.long) - batch["attention_mask"] = torch.cat([batch['attention_mask'], visual_attention_mask], dim=1) - - if labels is None: - return batch - - has_bbox_input = "bbox" in features[0] - has_position_input = "position_ids" in features[0] - padding_idx=self.tokenizer.pad_token_id - sequence_length = torch.tensor(batch["input_ids"]).shape[1] - padding_side = self.tokenizer.padding_side - if padding_side == "right": - batch["labels"] = [label + [self.label_pad_token_id] * (sequence_length - len(label)) for label in labels] - if has_bbox_input: - batch["bbox"] = [bbox + [[0, 0, 0, 0]] * (sequence_length - len(bbox)) for bbox in batch["bbox"]] - if has_position_input: - batch["position_ids"] = [position_id + [padding_idx] * (sequence_length - len(position_id)) - for position_id in batch["position_ids"]] - - else: - batch["labels"] = [[self.label_pad_token_id] * (sequence_length - len(label)) + label for label in labels] - if has_bbox_input: - batch["bbox"] = [[[0, 0, 0, 0]] * (sequence_length - len(bbox)) + bbox for bbox in batch["bbox"]] - if has_position_input: - batch["position_ids"] = [[padding_idx] * (sequence_length - len(position_id)) - + position_id for position_id in batch["position_ids"]] - - if 'segment_ids' in batch: - assert 'position_ids' in batch - for i in range(len(batch['segment_ids'])): - batch['segment_ids'][i] = batch['segment_ids'][i] + [batch['segment_ids'][i][-1] + 1] * (sequence_length - len(batch['segment_ids'][i])) + [ - batch['segment_ids'][i][-1] + 2] * IMAGE_LEN - - batch = {k: torch.tensor(v, dtype=torch.int64) if isinstance(v[0], list) else v for k, v in batch.items()} - - if 'segment_ids' in batch: - valid_span = pre_calc_rel_mat( - segment_ids=batch['segment_ids'] - ) - batch['valid_span'] = valid_span - del batch['segment_ids'] - - if images is not None: - visual_labels = torch.ones((len(batch['input_ids']), IMAGE_LEN), dtype=torch.long) * -100 - batch["labels"] = torch.cat([batch['labels'], visual_labels], dim=1) - - return batch diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/funsd.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/funsd.py deleted file mode 100644 index 9f3404202..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/funsd.py +++ /dev/null @@ -1,136 +0,0 @@ -# coding=utf-8 -''' -Reference: https://huggingface.co/datasets/nielsr/funsd/blob/main/funsd.py -''' -import json -import os - -import datasets - -from .image_utils import load_image, normalize_bbox - - -logger = datasets.logging.get_logger(__name__) - - -_CITATION = """\ -@article{Jaume2019FUNSDAD, - title={FUNSD: A Dataset for Form Understanding in Noisy Scanned Documents}, - author={Guillaume Jaume and H. K. Ekenel and J. Thiran}, - journal={2019 International Conference on Document Analysis and Recognition Workshops (ICDARW)}, - year={2019}, - volume={2}, - pages={1-6} -} -""" - -_DESCRIPTION = """\ -https://guillaumejaume.github.io/FUNSD/ -""" - - -class FunsdConfig(datasets.BuilderConfig): - """BuilderConfig for FUNSD""" - - def __init__(self, **kwargs): - """BuilderConfig for FUNSD. - - Args: - **kwargs: keyword arguments forwarded to super. - """ - super(FunsdConfig, self).__init__(**kwargs) - - -class Funsd(datasets.GeneratorBasedBuilder): - """Conll2003 dataset.""" - - BUILDER_CONFIGS = [ - FunsdConfig(name="funsd", version=datasets.Version("1.0.0"), description="FUNSD dataset"), - ] - - def _info(self): - return datasets.DatasetInfo( - description=_DESCRIPTION, - features=datasets.Features( - { - "id": datasets.Value("string"), - "tokens": datasets.Sequence(datasets.Value("string")), - "bboxes": datasets.Sequence(datasets.Sequence(datasets.Value("int64"))), - "ner_tags": datasets.Sequence( - datasets.features.ClassLabel( - names=["O", "B-HEADER", "I-HEADER", "B-QUESTION", "I-QUESTION", "B-ANSWER", "I-ANSWER"] - ) - ), - "image": datasets.Array3D(shape=(3, 224, 224), dtype="uint8"), - "image_path": datasets.Value("string"), - } - ), - supervised_keys=None, - homepage="https://guillaumejaume.github.io/FUNSD/", - citation=_CITATION, - ) - - def _split_generators(self, dl_manager): - """Returns SplitGenerators.""" - downloaded_file = dl_manager.download_and_extract("https://guillaumejaume.github.io/FUNSD/dataset.zip") - return [ - datasets.SplitGenerator( - name=datasets.Split.TRAIN, gen_kwargs={"filepath": f"{downloaded_file}/dataset/training_data/"} - ), - datasets.SplitGenerator( - name=datasets.Split.TEST, gen_kwargs={"filepath": f"{downloaded_file}/dataset/testing_data/"} - ), - ] - - def get_line_bbox(self, bboxs): - x = [bboxs[i][j] for i in range(len(bboxs)) for j in range(0, len(bboxs[i]), 2)] - y = [bboxs[i][j] for i in range(len(bboxs)) for j in range(1, len(bboxs[i]), 2)] - - x0, y0, x1, y1 = min(x), min(y), max(x), max(y) - - assert x1 >= x0 and y1 >= y0 - bbox = [[x0, y0, x1, y1] for _ in range(len(bboxs))] - return bbox - - def _generate_examples(self, filepath): - logger.info("⏳ Generating examples from = %s", filepath) - ann_dir = os.path.join(filepath, "annotations") - img_dir = os.path.join(filepath, "images") - for guid, file in enumerate(sorted(os.listdir(ann_dir))): - tokens = [] - bboxes = [] - ner_tags = [] - - file_path = os.path.join(ann_dir, file) - with open(file_path, "r", encoding="utf8") as f: - data = json.load(f) - image_path = os.path.join(img_dir, file) - image_path = image_path.replace("json", "png") - image, size = load_image(image_path) - for item in data["form"]: - cur_line_bboxes = [] - words, label = item["words"], item["label"] - words = [w for w in words if w["text"].strip() != ""] - if len(words) == 0: - continue - if label == "other": - for w in words: - tokens.append(w["text"]) - ner_tags.append("O") - cur_line_bboxes.append(normalize_bbox(w["box"], size)) - else: - tokens.append(words[0]["text"]) - ner_tags.append("B-" + label.upper()) - cur_line_bboxes.append(normalize_bbox(words[0]["box"], size)) - for w in words[1:]: - tokens.append(w["text"]) - ner_tags.append("I-" + label.upper()) - cur_line_bboxes.append(normalize_bbox(w["box"], size)) - # by default: --segment_level_layout 1 - # if do not want to use segment_level_layout, comment the following line - cur_line_bboxes = self.get_line_bbox(cur_line_bboxes) - # box = normalize_bbox(item["box"], size) - # cur_line_bboxes = [box for _ in range(len(words))] - bboxes.extend(cur_line_bboxes) - yield guid, {"id": str(guid), "tokens": tokens, "bboxes": bboxes, "ner_tags": ner_tags, - "image": image, "image_path": image_path} \ No newline at end of file diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/image_utils.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/image_utils.py deleted file mode 100644 index 90a4b3437..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/image_utils.py +++ /dev/null @@ -1,284 +0,0 @@ -import torchvision.transforms.functional as F -import warnings -import math -import random -import numpy as np -from PIL import Image -import torch - -from detectron2.data.detection_utils import read_image -from detectron2.data.transforms import ResizeTransform, TransformList - -def normalize_bbox(bbox, size): - return [ - int(1000 * bbox[0] / size[0]), - int(1000 * bbox[1] / size[1]), - int(1000 * bbox[2] / size[0]), - int(1000 * bbox[3] / size[1]), - ] - - -def load_image(image_path): - image = read_image(image_path, format="BGR") - h = image.shape[0] - w = image.shape[1] - img_trans = TransformList([ResizeTransform(h=h, w=w, new_h=224, new_w=224)]) - image = torch.tensor(img_trans.apply_image(image).copy()).permute(2, 0, 1) # copy to make it writeable - return image, (w, h) - - -def crop(image, i, j, h, w, boxes=None): - cropped_image = F.crop(image, i, j, h, w) - - if boxes is not None: - # Currently we cannot use this case since when some boxes is out of the cropped image, - # it may be better to drop out these boxes along with their text input (instead of min or clamp) - # which haven't been implemented here - max_size = torch.as_tensor([w, h], dtype=torch.float32) - cropped_boxes = torch.as_tensor(boxes) - torch.as_tensor([j, i, j, i]) - cropped_boxes = torch.min(cropped_boxes.reshape(-1, 2, 2), max_size) - cropped_boxes = cropped_boxes.clamp(min=0) - boxes = cropped_boxes.reshape(-1, 4) - - return cropped_image, boxes - - -def resize(image, size, interpolation, boxes=None): - # It seems that we do not need to resize boxes here, since the boxes will be resized to 1000x1000 finally, - # which is compatible with a square image size of 224x224 - rescaled_image = F.resize(image, size, interpolation) - - if boxes is None: - return rescaled_image, None - - ratios = tuple(float(s) / float(s_orig) for s, s_orig in zip(rescaled_image.size, image.size)) - ratio_width, ratio_height = ratios - - # boxes = boxes.copy() - scaled_boxes = boxes * torch.as_tensor([ratio_width, ratio_height, ratio_width, ratio_height]) - - return rescaled_image, scaled_boxes - - -def clamp(num, min_value, max_value): - return max(min(num, max_value), min_value) - - -def get_bb(bb, page_size): - bbs = [float(j) for j in bb] - xs, ys = [], [] - for i, b in enumerate(bbs): - if i % 2 == 0: - xs.append(b) - else: - ys.append(b) - (width, height) = page_size - return_bb = [ - clamp(min(xs), 0, width - 1), - clamp(min(ys), 0, height - 1), - clamp(max(xs), 0, width - 1), - clamp(max(ys), 0, height - 1), - ] - return_bb = [ - int(1000 * return_bb[0] / width), - int(1000 * return_bb[1] / height), - int(1000 * return_bb[2] / width), - int(1000 * return_bb[3] / height), - ] - return return_bb - - -class ToNumpy: - - def __call__(self, pil_img): - np_img = np.array(pil_img, dtype=np.uint8) - if np_img.ndim < 3: - np_img = np.expand_dims(np_img, axis=-1) - np_img = np.rollaxis(np_img, 2) # HWC to CHW - return np_img - - -class ToTensor: - - def __init__(self, dtype=torch.float32): - self.dtype = dtype - - def __call__(self, pil_img): - np_img = np.array(pil_img, dtype=np.uint8) - if np_img.ndim < 3: - np_img = np.expand_dims(np_img, axis=-1) - np_img = np.rollaxis(np_img, 2) # HWC to CHW - return torch.from_numpy(np_img).to(dtype=self.dtype) - - -_pil_interpolation_to_str = { - F.InterpolationMode.NEAREST: 'F.InterpolationMode.NEAREST', - F.InterpolationMode.BILINEAR: 'F.InterpolationMode.BILINEAR', - F.InterpolationMode.BICUBIC: 'F.InterpolationMode.BICUBIC', - F.InterpolationMode.LANCZOS: 'F.InterpolationMode.LANCZOS', - F.InterpolationMode.HAMMING: 'F.InterpolationMode.HAMMING', - F.InterpolationMode.BOX: 'F.InterpolationMode.BOX', -} - - -def _pil_interp(method): - if method == 'bicubic': - return F.InterpolationMode.BICUBIC - elif method == 'lanczos': - return F.InterpolationMode.LANCZOS - elif method == 'hamming': - return F.InterpolationMode.HAMMING - else: - # default bilinear, do we want to allow nearest? - return F.InterpolationMode.BILINEAR - - -class Compose: - """Composes several transforms together. This transform does not support torchscript. - Please, see the note below. - - Args: - transforms (list of ``Transform`` objects): list of transforms to compose. - - Example: - >>> transforms.Compose([ - >>> transforms.CenterCrop(10), - >>> transforms.PILToTensor(), - >>> transforms.ConvertImageDtype(torch.float), - >>> ]) - - .. note:: - In order to script the transformations, please use ``torch.nn.Sequential`` as below. - - >>> transforms = torch.nn.Sequential( - >>> transforms.CenterCrop(10), - >>> transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)), - >>> ) - >>> scripted_transforms = torch.jit.script(transforms) - - Make sure to use only scriptable transformations, i.e. that work with ``torch.Tensor``, does not require - `lambda` functions or ``PIL.Image``. - - """ - - def __init__(self, transforms): - self.transforms = transforms - - def __call__(self, img, augmentation=False, box=None): - for t in self.transforms: - img = t(img, augmentation, box) - return img - - -class RandomResizedCropAndInterpolationWithTwoPic: - """Crop the given PIL Image to random size and aspect ratio with random interpolation. - A crop of random size (default: of 0.08 to 1.0) of the original size and a random - aspect ratio (default: of 3/4 to 4/3) of the original aspect ratio is made. This crop - is finally resized to given size. - This is popularly used to train the Inception networks. - Args: - size: expected output size of each edge - scale: range of size of the origin size cropped - ratio: range of aspect ratio of the origin aspect ratio cropped - interpolation: Default: PIL.Image.BILINEAR - """ - - def __init__(self, size, second_size=None, scale=(0.08, 1.0), ratio=(3. / 4., 4. / 3.), - interpolation='bilinear', second_interpolation='lanczos'): - if isinstance(size, tuple): - self.size = size - else: - self.size = (size, size) - if second_size is not None: - if isinstance(second_size, tuple): - self.second_size = second_size - else: - self.second_size = (second_size, second_size) - else: - self.second_size = None - if (scale[0] > scale[1]) or (ratio[0] > ratio[1]): - warnings.warn("range should be of kind (min, max)") - - self.interpolation = _pil_interp(interpolation) - self.second_interpolation = _pil_interp(second_interpolation) - self.scale = scale - self.ratio = ratio - - @staticmethod - def get_params(img, scale, ratio): - """Get parameters for ``crop`` for a random sized crop. - Args: - img (PIL Image): Image to be cropped. - scale (tuple): range of size of the origin size cropped - ratio (tuple): range of aspect ratio of the origin aspect ratio cropped - Returns: - tuple: params (i, j, h, w) to be passed to ``crop`` for a random - sized crop. - """ - area = img.size[0] * img.size[1] - - for attempt in range(10): - target_area = random.uniform(*scale) * area - log_ratio = (math.log(ratio[0]), math.log(ratio[1])) - aspect_ratio = math.exp(random.uniform(*log_ratio)) - - w = int(round(math.sqrt(target_area * aspect_ratio))) - h = int(round(math.sqrt(target_area / aspect_ratio))) - - if w <= img.size[0] and h <= img.size[1]: - i = random.randint(0, img.size[1] - h) - j = random.randint(0, img.size[0] - w) - return i, j, h, w - - # Fallback to central crop - in_ratio = img.size[0] / img.size[1] - if in_ratio < min(ratio): - w = img.size[0] - h = int(round(w / min(ratio))) - elif in_ratio > max(ratio): - h = img.size[1] - w = int(round(h * max(ratio))) - else: # whole image - w = img.size[0] - h = img.size[1] - i = (img.size[1] - h) // 2 - j = (img.size[0] - w) // 2 - return i, j, h, w - - def __call__(self, img, augmentation=False, box=None): - """ - Args: - img (PIL Image): Image to be cropped and resized. - Returns: - PIL Image: Randomly cropped and resized image. - """ - if augmentation: - i, j, h, w = self.get_params(img, self.scale, self.ratio) - img = F.crop(img, i, j, h, w) - # img, box = crop(img, i, j, h, w, box) - img = F.resize(img, self.size, self.interpolation) - second_img = F.resize(img, self.second_size, self.second_interpolation) \ - if self.second_size is not None else None - return img, second_img - - def __repr__(self): - if isinstance(self.interpolation, (tuple, list)): - interpolate_str = ' '.join([_pil_interpolation_to_str[x] for x in self.interpolation]) - else: - interpolate_str = _pil_interpolation_to_str[self.interpolation] - format_string = self.__class__.__name__ + '(size={0}'.format(self.size) - format_string += ', scale={0}'.format(tuple(round(s, 4) for s in self.scale)) - format_string += ', ratio={0}'.format(tuple(round(r, 4) for r in self.ratio)) - format_string += ', interpolation={0}'.format(interpolate_str) - if self.second_size is not None: - format_string += ', second_size={0}'.format(self.second_size) - format_string += ', second_interpolation={0}'.format(_pil_interpolation_to_str[self.second_interpolation]) - format_string += ')' - return format_string - - -def pil_loader(path: str) -> Image.Image: - # open path as file to avoid ResourceWarning (https://github.com/python-pillow/Pillow/issues/835) - with open(path, 'rb') as f: - img = Image.open(f) - return img.convert('RGB') diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/xfund.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/xfund.py deleted file mode 100644 index 7749ba5dd..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/data/xfund.py +++ /dev/null @@ -1,213 +0,0 @@ -import os -import json - -import torch -from torch.utils.data.dataset import Dataset -from torchvision import transforms -from PIL import Image - -from .image_utils import Compose, RandomResizedCropAndInterpolationWithTwoPic - -XFund_label2ids = { - "O":0, - 'B-HEADER':1, - 'I-HEADER':2, - 'B-QUESTION':3, - 'I-QUESTION':4, - 'B-ANSWER':5, - 'I-ANSWER':6, -} - -class xfund_dataset(Dataset): - def box_norm(self, box, width, height): - def clip(min_num, num, max_num): - return min(max(num, min_num), max_num) - - x0, y0, x1, y1 = box - x0 = clip(0, int((x0 / width) * 1000), 1000) - y0 = clip(0, int((y0 / height) * 1000), 1000) - x1 = clip(0, int((x1 / width) * 1000), 1000) - y1 = clip(0, int((y1 / height) * 1000), 1000) - assert x1 >= x0 - assert y1 >= y0 - return [x0, y0, x1, y1] - - def get_segment_ids(self, bboxs): - segment_ids = [] - for i in range(len(bboxs)): - if i == 0: - segment_ids.append(0) - else: - if bboxs[i - 1] == bboxs[i]: - segment_ids.append(segment_ids[-1]) - else: - segment_ids.append(segment_ids[-1] + 1) - return segment_ids - - def get_position_ids(self, segment_ids): - position_ids = [] - for i in range(len(segment_ids)): - if i == 0: - position_ids.append(2) - else: - if segment_ids[i] == segment_ids[i - 1]: - position_ids.append(position_ids[-1] + 1) - else: - position_ids.append(2) - return position_ids - - def load_data( - self, - data_file, - ): - # re-org data format - total_data = {"id": [], "lines": [], "bboxes": [], "ner_tags": [], "image_path": []} - for i in range(len(data_file['documents'])): - width, height = data_file['documents'][i]['img']['width'], data_file['documents'][i]['img'][ - 'height'] - - cur_doc_lines, cur_doc_bboxes, cur_doc_ner_tags, cur_doc_image_path = [], [], [], [] - for j in range(len(data_file['documents'][i]['document'])): - cur_item = data_file['documents'][i]['document'][j] - cur_doc_lines.append(cur_item['text']) - cur_doc_bboxes.append(self.box_norm(cur_item['box'], width=width, height=height)) - cur_doc_ner_tags.append(cur_item['label']) - total_data['id'] += [len(total_data['id'])] - total_data['lines'] += [cur_doc_lines] - total_data['bboxes'] += [cur_doc_bboxes] - total_data['ner_tags'] += [cur_doc_ner_tags] - total_data['image_path'] += [data_file['documents'][i]['img']['fname']] - - # tokenize text and get bbox/label - total_input_ids, total_bboxs, total_label_ids = [], [], [] - for i in range(len(total_data['lines'])): - cur_doc_input_ids, cur_doc_bboxs, cur_doc_labels = [], [], [] - for j in range(len(total_data['lines'][i])): - cur_input_ids = self.tokenizer(total_data['lines'][i][j], truncation=False, add_special_tokens=False, return_attention_mask=False)['input_ids'] - if len(cur_input_ids) == 0: continue - - cur_label = total_data['ner_tags'][i][j].upper() - if cur_label == 'OTHER': - cur_labels = ["O"] * len(cur_input_ids) - for k in range(len(cur_labels)): - cur_labels[k] = self.label2ids[cur_labels[k]] - else: - cur_labels = [cur_label] * len(cur_input_ids) - cur_labels[0] = self.label2ids['B-' + cur_labels[0]] - for k in range(1, len(cur_labels)): - cur_labels[k] = self.label2ids['I-' + cur_labels[k]] - assert len(cur_input_ids) == len([total_data['bboxes'][i][j]] * len(cur_input_ids)) == len(cur_labels) - cur_doc_input_ids += cur_input_ids - cur_doc_bboxs += [total_data['bboxes'][i][j]] * len(cur_input_ids) - cur_doc_labels += cur_labels - assert len(cur_doc_input_ids) == len(cur_doc_bboxs) == len(cur_doc_labels) - assert len(cur_doc_input_ids) > 0 - - total_input_ids.append(cur_doc_input_ids) - total_bboxs.append(cur_doc_bboxs) - total_label_ids.append(cur_doc_labels) - assert len(total_input_ids) == len(total_bboxs) == len(total_label_ids) - - # split text to several slices because of over-length - input_ids, bboxs, labels = [], [], [] - segment_ids, position_ids = [], [] - image_path = [] - for i in range(len(total_input_ids)): - start = 0 - cur_iter = 0 - while start < len(total_input_ids[i]): - end = min(start + 510, len(total_input_ids[i])) - - input_ids.append([self.tokenizer.cls_token_id] + total_input_ids[i][start: end] + [self.tokenizer.sep_token_id]) - bboxs.append([[0, 0, 0, 0]] + total_bboxs[i][start: end] + [[1000, 1000, 1000, 1000]]) - labels.append([-100] + total_label_ids[i][start: end] + [-100]) - - cur_segment_ids = self.get_segment_ids(bboxs[-1]) - cur_position_ids = self.get_position_ids(cur_segment_ids) - segment_ids.append(cur_segment_ids) - position_ids.append(cur_position_ids) - image_path.append(os.path.join(self.args.data_dir, "images", total_data['image_path'][i])) - - start = end - cur_iter += 1 - - assert len(input_ids) == len(bboxs) == len(labels) == len(segment_ids) == len(position_ids) - assert len(segment_ids) == len(image_path) - - res = { - 'input_ids': input_ids, - 'bbox': bboxs, - 'labels': labels, - 'segment_ids': segment_ids, - 'position_ids': position_ids, - 'image_path': image_path, - } - return res - - def __init__( - self, - args, - tokenizer, - mode - ): - self.args = args - self.mode = mode - self.cur_la = args.language - self.tokenizer = tokenizer - self.label2ids = XFund_label2ids - - - self.common_transform = Compose([ - RandomResizedCropAndInterpolationWithTwoPic( - size=args.input_size, interpolation=args.train_interpolation, - ), - ]) - - self.patch_transform = transforms.Compose([ - transforms.ToTensor(), - transforms.Normalize( - mean=torch.tensor((0.5, 0.5, 0.5)), - std=torch.tensor((0.5, 0.5, 0.5))) - ]) - - data_file = json.load( - open(os.path.join(args.data_dir, "{}.{}.json".format(self.cur_la, 'train' if mode == 'train' else 'val')), - 'r')) - - self.feature = self.load_data(data_file) - - def __len__(self): - return len(self.feature['input_ids']) - - def __getitem__(self, index): - input_ids = self.feature["input_ids"][index] - - # attention_mask = self.feature["attention_mask"][index] - attention_mask = [1] * len(input_ids) - labels = self.feature["labels"][index] - bbox = self.feature["bbox"][index] - segment_ids = self.feature['segment_ids'][index] - position_ids = self.feature['position_ids'][index] - - img = pil_loader(self.feature['image_path'][index]) - for_patches, _ = self.common_transform(img, augmentation=False) - patch = self.patch_transform(for_patches) - - assert len(input_ids) == len(attention_mask) == len(labels) == len(bbox) == len(segment_ids) - - res = { - "input_ids": input_ids, - "attention_mask": attention_mask, - "labels": labels, - "bbox": bbox, - "segment_ids": segment_ids, - "position_ids": position_ids, - "images": patch, - } - return res - -def pil_loader(path: str) -> Image.Image: - # open path as file to avoid ResourceWarning (https://github.com/python-pillow/Pillow/issues/835) - with open(path, 'rb') as f: - img = Image.open(f) - return img.convert('RGB') \ No newline at end of file diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/__init__.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/__init__.py deleted file mode 100644 index 0b3100eff..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -from .layoutlmv3 import ( - LayoutLMv3Config, - LayoutLMv3ForTokenClassification, - LayoutLMv3ForQuestionAnswering, - LayoutLMv3ForSequenceClassification, - LayoutLMv3Tokenizer, -) diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/__init__.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/__init__.py deleted file mode 100644 index e06a24b0c..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -from transformers import AutoConfig, AutoModel, AutoModelForTokenClassification, \ - AutoModelForQuestionAnswering, AutoModelForSequenceClassification, AutoTokenizer -from transformers.convert_slow_tokenizer import SLOW_TO_FAST_CONVERTERS, RobertaConverter - -from .configuration_layoutlmv3 import LayoutLMv3Config -from .modeling_layoutlmv3 import ( - LayoutLMv3ForTokenClassification, - LayoutLMv3ForQuestionAnswering, - LayoutLMv3ForSequenceClassification, - LayoutLMv3Model, -) -from .tokenization_layoutlmv3 import LayoutLMv3Tokenizer -from .tokenization_layoutlmv3_fast import LayoutLMv3TokenizerFast - - -#AutoConfig.register("layoutlmv3", LayoutLMv3Config) -#AutoModel.register(LayoutLMv3Config, LayoutLMv3Model) -#AutoModelForTokenClassification.register(LayoutLMv3Config, LayoutLMv3ForTokenClassification) -#AutoModelForQuestionAnswering.register(LayoutLMv3Config, LayoutLMv3ForQuestionAnswering) -#AutoModelForSequenceClassification.register(LayoutLMv3Config, LayoutLMv3ForSequenceClassification) -#AutoTokenizer.register( -# LayoutLMv3Config, slow_tokenizer_class=LayoutLMv3Tokenizer, fast_tokenizer_class=LayoutLMv3TokenizerFast -#) -SLOW_TO_FAST_CONVERTERS.update({"LayoutLMv3Tokenizer": RobertaConverter}) diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/configuration_layoutlmv3.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/configuration_layoutlmv3.py deleted file mode 100644 index d2c7b4d71..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/configuration_layoutlmv3.py +++ /dev/null @@ -1,60 +0,0 @@ -# coding=utf-8 -from transformers.models.bert.configuration_bert import BertConfig -from transformers.utils import logging - - -logger = logging.get_logger(__name__) - -LAYOUTLMV3_PRETRAINED_CONFIG_ARCHIVE_MAP = { - "layoutlmv3-base": "https://huggingface.co/microsoft/layoutlmv3-base/resolve/main/config.json", - "layoutlmv3-large": "https://huggingface.co/microsoft/layoutlmv3-large/resolve/main/config.json", - # See all LayoutLMv3 models at https://huggingface.co/models?filter=layoutlmv3 -} - - -class LayoutLMv3Config(BertConfig): - model_type = "layoutlmv3" - - def __init__( - self, - pad_token_id=1, - bos_token_id=0, - eos_token_id=2, - max_2d_position_embeddings=1024, - coordinate_size=None, - shape_size=None, - has_relative_attention_bias=False, - rel_pos_bins=32, - max_rel_pos=128, - has_spatial_attention_bias=False, - rel_2d_pos_bins=64, - max_rel_2d_pos=256, - visual_embed=True, - mim=False, - wpa_task=False, - discrete_vae_weight_path='', - discrete_vae_type='dall-e', - input_size=224, - second_input_size=112, - device='cuda', - **kwargs - ): - """Constructs RobertaConfig.""" - super().__init__(pad_token_id=pad_token_id, bos_token_id=bos_token_id, eos_token_id=eos_token_id, **kwargs) - self.max_2d_position_embeddings = max_2d_position_embeddings - self.coordinate_size = coordinate_size - self.shape_size = shape_size - self.has_relative_attention_bias = has_relative_attention_bias - self.rel_pos_bins = rel_pos_bins - self.max_rel_pos = max_rel_pos - self.has_spatial_attention_bias = has_spatial_attention_bias - self.rel_2d_pos_bins = rel_2d_pos_bins - self.max_rel_2d_pos = max_rel_2d_pos - self.visual_embed = visual_embed - self.mim = mim - self.wpa_task = wpa_task - self.discrete_vae_weight_path = discrete_vae_weight_path - self.discrete_vae_type = discrete_vae_type - self.input_size = input_size - self.second_input_size = second_input_size - self.device = device diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/modeling_layoutlmv3.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/modeling_layoutlmv3.py deleted file mode 100644 index 113eb8eb1..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/modeling_layoutlmv3.py +++ /dev/null @@ -1,1282 +0,0 @@ -# coding=utf-8 -# Copyright 2018 The Google AI Language Team Authors and The HuggingFace Inc. team. -# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""PyTorch LayoutLMv3 model. """ -import math - -import torch -import torch.nn as nn -import torch.nn.functional as F -import torch.utils.checkpoint -from torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss - -from transformers import apply_chunking_to_forward -from transformers.modeling_outputs import ( - BaseModelOutputWithPastAndCrossAttentions, - BaseModelOutputWithPoolingAndCrossAttentions, - MaskedLMOutput, - TokenClassifierOutput, - QuestionAnsweringModelOutput, - SequenceClassifierOutput, -) -from transformers.modeling_utils import PreTrainedModel, find_pruneable_heads_and_indices, prune_linear_layer -from transformers.models.roberta.modeling_roberta import ( - RobertaIntermediate, - RobertaLMHead, - RobertaOutput, - RobertaSelfOutput, -) -from transformers.utils import logging - -from .configuration_layoutlmv3 import LayoutLMv3Config -from timm.models.layers import to_2tuple - - -logger = logging.get_logger(__name__) - - -class PatchEmbed(nn.Module): - """ Image to Patch Embedding - """ - def __init__(self, img_size=224, patch_size=16, in_chans=3, embed_dim=768): - super().__init__() - img_size = to_2tuple(img_size) - patch_size = to_2tuple(patch_size) - self.patch_shape = (img_size[0] // patch_size[0], img_size[1] // patch_size[1]) - self.proj = nn.Conv2d(in_chans, embed_dim, kernel_size=patch_size, stride=patch_size) - # The following variables are used in detection mycheckpointer.py - self.num_patches = (img_size[1] // patch_size[1]) * (img_size[0] // patch_size[0]) - self.num_patches_w = self.patch_shape[0] - self.num_patches_h = self.patch_shape[1] - - def forward(self, x, position_embedding=None): - x = self.proj(x) - - if position_embedding is not None: - # interpolate the position embedding to the corresponding size - position_embedding = position_embedding.view(1, self.patch_shape[0], self.patch_shape[1], -1).permute(0, 3, 1, 2) - Hp, Wp = x.shape[2], x.shape[3] - position_embedding = F.interpolate(position_embedding, size=(Hp, Wp), mode='bicubic') - x = x + position_embedding - - x = x.flatten(2).transpose(1, 2) - return x - -class LayoutLMv3Embeddings(nn.Module): - """ - Same as BertEmbeddings with a tiny tweak for positional embeddings indexing. - """ - - # Copied from transformers.models.bert.modeling_bert.BertEmbeddings.__init__ - def __init__(self, config): - super().__init__() - self.word_embeddings = nn.Embedding(config.vocab_size, config.hidden_size, padding_idx=config.pad_token_id) - self.token_type_embeddings = nn.Embedding(config.type_vocab_size, config.hidden_size) - - self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) - self.dropout = nn.Dropout(config.hidden_dropout_prob) - - # position_ids (1, len position emb) is contiguous in memory and exported when serialized - self.register_buffer("position_ids", torch.arange(config.max_position_embeddings).expand((1, -1))) - - # End copy - self.padding_idx = config.pad_token_id - self.position_embeddings = nn.Embedding( - config.max_position_embeddings, config.hidden_size, padding_idx=self.padding_idx - ) - - self.x_position_embeddings = nn.Embedding(config.max_2d_position_embeddings, config.coordinate_size) - self.y_position_embeddings = nn.Embedding(config.max_2d_position_embeddings, config.coordinate_size) - self.h_position_embeddings = nn.Embedding(config.max_2d_position_embeddings, config.shape_size) - self.w_position_embeddings = nn.Embedding(config.max_2d_position_embeddings, config.shape_size) - - def _calc_spatial_position_embeddings(self, bbox): - try: - assert torch.all(0 <= bbox) and torch.all(bbox <= 1023) - left_position_embeddings = self.x_position_embeddings(bbox[:, :, 0]) - upper_position_embeddings = self.y_position_embeddings(bbox[:, :, 1]) - right_position_embeddings = self.x_position_embeddings(bbox[:, :, 2]) - lower_position_embeddings = self.y_position_embeddings(bbox[:, :, 3]) - except IndexError as e: - raise IndexError("The :obj:`bbox` coordinate values should be within 0-1000 range.") from e - - h_position_embeddings = self.h_position_embeddings(torch.clip(bbox[:, :, 3] - bbox[:, :, 1], 0, 1023)) - w_position_embeddings = self.w_position_embeddings(torch.clip(bbox[:, :, 2] - bbox[:, :, 0], 0, 1023)) - - # below is the difference between LayoutLMEmbeddingsV2 (torch.cat) and LayoutLMEmbeddingsV1 (add) - spatial_position_embeddings = torch.cat( - [ - left_position_embeddings, - upper_position_embeddings, - right_position_embeddings, - lower_position_embeddings, - h_position_embeddings, - w_position_embeddings, - ], - dim=-1, - ) - return spatial_position_embeddings - - def create_position_ids_from_input_ids(self, input_ids, padding_idx, past_key_values_length=0): - """ - Replace non-padding symbols with their position numbers. Position numbers begin at padding_idx+1. Padding symbols - are ignored. This is modified from fairseq's `utils.make_positions`. - - Args: - x: torch.Tensor x: - - Returns: torch.Tensor - """ - # The series of casts and type-conversions here are carefully balanced to both work with ONNX export and XLA. - mask = input_ids.ne(padding_idx).int() - incremental_indices = (torch.cumsum(mask, dim=1).type_as(mask) + past_key_values_length) * mask - return incremental_indices.long() + padding_idx - - def forward( - self, - input_ids=None, - bbox=None, - token_type_ids=None, - position_ids=None, - inputs_embeds=None, - past_key_values_length=0, - ): - if position_ids is None: - if input_ids is not None: - # Create the position ids from the input token ids. Any padded tokens remain padded. - position_ids = self.create_position_ids_from_input_ids( - input_ids, self.padding_idx, past_key_values_length).to(input_ids.device) - else: - position_ids = self.create_position_ids_from_inputs_embeds(inputs_embeds) - - if input_ids is not None: - input_shape = input_ids.size() - else: - input_shape = inputs_embeds.size()[:-1] - - if token_type_ids is None: - token_type_ids = torch.zeros(input_shape, dtype=torch.long, device=self.position_ids.device) - - if inputs_embeds is None: - inputs_embeds = self.word_embeddings(input_ids) - token_type_embeddings = self.token_type_embeddings(token_type_ids) - - embeddings = inputs_embeds + token_type_embeddings - position_embeddings = self.position_embeddings(position_ids) - embeddings += position_embeddings - - spatial_position_embeddings = self._calc_spatial_position_embeddings(bbox) - - embeddings = embeddings + spatial_position_embeddings - - embeddings = self.LayerNorm(embeddings) - embeddings = self.dropout(embeddings) - return embeddings - - def create_position_ids_from_inputs_embeds(self, inputs_embeds): - """ - We are provided embeddings directly. We cannot infer which are padded so just generate sequential position ids. - - Args: - inputs_embeds: torch.Tensor≈ - - Returns: torch.Tensor - """ - input_shape = inputs_embeds.size()[:-1] - sequence_length = input_shape[1] - - position_ids = torch.arange( - self.padding_idx + 1, sequence_length + self.padding_idx + 1, dtype=torch.long, device=inputs_embeds.device - ) - return position_ids.unsqueeze(0).expand(input_shape) - - -class LayoutLMv3PreTrainedModel(PreTrainedModel): - """ - An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained - models. - """ - - config_class = LayoutLMv3Config - base_model_prefix = "layoutlmv3" - - # Copied from transformers.models.bert.modeling_bert.BertPreTrainedModel._init_weights - def _init_weights(self, module): - """Initialize the weights""" - if isinstance(module, nn.Linear): - # Slightly different from the TF version which uses truncated_normal for initialization - # cf https://github.com/pytorch/pytorch/pull/5617 - module.weight.data.normal_(mean=0.0, std=self.config.initializer_range) - if module.bias is not None: - module.bias.data.zero_() - elif isinstance(module, nn.Embedding): - module.weight.data.normal_(mean=0.0, std=self.config.initializer_range) - if module.padding_idx is not None: - module.weight.data[module.padding_idx].zero_() - elif isinstance(module, nn.LayerNorm): - module.bias.data.zero_() - module.weight.data.fill_(1.0) - - -class LayoutLMv3SelfAttention(nn.Module): - def __init__(self, config): - super().__init__() - if config.hidden_size % config.num_attention_heads != 0 and not hasattr(config, "embedding_size"): - raise ValueError( - f"The hidden size ({config.hidden_size}) is not a multiple of the number of attention " - f"heads ({config.num_attention_heads})" - ) - - self.num_attention_heads = config.num_attention_heads - self.attention_head_size = int(config.hidden_size / config.num_attention_heads) - self.all_head_size = self.num_attention_heads * self.attention_head_size - - self.query = nn.Linear(config.hidden_size, self.all_head_size) - self.key = nn.Linear(config.hidden_size, self.all_head_size) - self.value = nn.Linear(config.hidden_size, self.all_head_size) - - self.dropout = nn.Dropout(config.attention_probs_dropout_prob) - self.has_relative_attention_bias = config.has_relative_attention_bias - self.has_spatial_attention_bias = config.has_spatial_attention_bias - - def transpose_for_scores(self, x): - new_x_shape = x.size()[:-1] + (self.num_attention_heads, self.attention_head_size) - x = x.view(*new_x_shape) - return x.permute(0, 2, 1, 3) - - def cogview_attn(self, attention_scores, alpha=32): - ''' - https://arxiv.org/pdf/2105.13290.pdf - Section 2.4 Stabilization of training: Precision Bottleneck Relaxation (PB-Relax). - A replacement of the original nn.Softmax(dim=-1)(attention_scores) - Seems the new attention_probs will result in a slower speed and a little bias - Can use torch.allclose(standard_attention_probs, cogview_attention_probs, atol=1e-08) for comparison - The smaller atol (e.g., 1e-08), the better. - ''' - scaled_attention_scores = attention_scores / alpha - max_value = scaled_attention_scores.amax(dim=(-1)).unsqueeze(-1) - # max_value = scaled_attention_scores.amax(dim=(-2, -1)).unsqueeze(-1).unsqueeze(-1) - new_attention_scores = (scaled_attention_scores - max_value) * alpha - return nn.Softmax(dim=-1)(new_attention_scores) - - def forward( - self, - hidden_states, - attention_mask=None, - head_mask=None, - encoder_hidden_states=None, - encoder_attention_mask=None, - past_key_value=None, - output_attentions=False, - rel_pos=None, - rel_2d_pos=None, - ): - mixed_query_layer = self.query(hidden_states) - - # If this is instantiated as a cross-attention module, the keys - # and values come from an encoder; the attention mask needs to be - # such that the encoder's padding tokens are not attended to. - is_cross_attention = encoder_hidden_states is not None - - if is_cross_attention and past_key_value is not None: - # reuse k,v, cross_attentions - key_layer = past_key_value[0] - value_layer = past_key_value[1] - attention_mask = encoder_attention_mask - elif is_cross_attention: - key_layer = self.transpose_for_scores(self.key(encoder_hidden_states)) - value_layer = self.transpose_for_scores(self.value(encoder_hidden_states)) - attention_mask = encoder_attention_mask - elif past_key_value is not None: - key_layer = self.transpose_for_scores(self.key(hidden_states)) - value_layer = self.transpose_for_scores(self.value(hidden_states)) - key_layer = torch.cat([past_key_value[0], key_layer], dim=2) - value_layer = torch.cat([past_key_value[1], value_layer], dim=2) - else: - key_layer = self.transpose_for_scores(self.key(hidden_states)) - value_layer = self.transpose_for_scores(self.value(hidden_states)) - - query_layer = self.transpose_for_scores(mixed_query_layer) - - # Take the dot product between "query" and "key" to get the raw attention scores. - # The attention scores QT K/√d could be significantly larger than input elements, and result in overflow. - # Changing the computational order into QT(K/√d) alleviates the problem. (https://arxiv.org/pdf/2105.13290.pdf) - attention_scores = torch.matmul(query_layer / math.sqrt(self.attention_head_size), key_layer.transpose(-1, -2)) - - if self.has_relative_attention_bias and self.has_spatial_attention_bias: - attention_scores += (rel_pos + rel_2d_pos) / math.sqrt(self.attention_head_size) - elif self.has_relative_attention_bias: - attention_scores += rel_pos / math.sqrt(self.attention_head_size) - - # if self.has_relative_attention_bias: - # attention_scores += rel_pos - # if self.has_spatial_attention_bias: - # attention_scores += rel_2d_pos - - # attention_scores = attention_scores / math.sqrt(self.attention_head_size) - if attention_mask is not None: - # Apply the attention mask is (precomputed for all layers in RobertaModel forward() function) - attention_scores = attention_scores + attention_mask - - # Normalize the attention scores to probabilities. - # attention_probs = nn.Softmax(dim=-1)(attention_scores) # comment the line below and use this line for speedup - attention_probs = self.cogview_attn(attention_scores) # to stablize training - # assert torch.allclose(attention_probs, nn.Softmax(dim=-1)(attention_scores), atol=1e-8) - - # This is actually dropping out entire tokens to attend to, which might - # seem a bit unusual, but is taken from the original Transformer paper. - attention_probs = self.dropout(attention_probs) - - # Mask heads if we want to - if head_mask is not None: - attention_probs = attention_probs * head_mask - - context_layer = torch.matmul(attention_probs, value_layer) - - context_layer = context_layer.permute(0, 2, 1, 3).contiguous() - new_context_layer_shape = context_layer.size()[:-2] + (self.all_head_size,) - context_layer = context_layer.view(*new_context_layer_shape) - - outputs = (context_layer, attention_probs) if output_attentions else (context_layer,) - - return outputs - - -class LayoutLMv3Attention(nn.Module): - def __init__(self, config): - super().__init__() - self.self = LayoutLMv3SelfAttention(config) - self.output = RobertaSelfOutput(config) - self.pruned_heads = set() - - def prune_heads(self, heads): - if len(heads) == 0: - return - heads, index = find_pruneable_heads_and_indices( - heads, self.self.num_attention_heads, self.self.attention_head_size, self.pruned_heads - ) - - # Prune linear layers - self.self.query = prune_linear_layer(self.self.query, index) - self.self.key = prune_linear_layer(self.self.key, index) - self.self.value = prune_linear_layer(self.self.value, index) - self.output.dense = prune_linear_layer(self.output.dense, index, dim=1) - - # Update hyper params and store pruned heads - self.self.num_attention_heads = self.self.num_attention_heads - len(heads) - self.self.all_head_size = self.self.attention_head_size * self.self.num_attention_heads - self.pruned_heads = self.pruned_heads.union(heads) - - def forward( - self, - hidden_states, - attention_mask=None, - head_mask=None, - encoder_hidden_states=None, - encoder_attention_mask=None, - past_key_value=None, - output_attentions=False, - rel_pos=None, - rel_2d_pos=None, - ): - self_outputs = self.self( - hidden_states, - attention_mask, - head_mask, - encoder_hidden_states, - encoder_attention_mask, - past_key_value, - output_attentions, - rel_pos=rel_pos, - rel_2d_pos=rel_2d_pos, - ) - attention_output = self.output(self_outputs[0], hidden_states) - outputs = (attention_output,) + self_outputs[1:] # add attentions if we output them - return outputs - - -class LayoutLMv3Layer(nn.Module): - def __init__(self, config): - super().__init__() - self.chunk_size_feed_forward = config.chunk_size_feed_forward - self.seq_len_dim = 1 - self.attention = LayoutLMv3Attention(config) - assert not config.is_decoder and not config.add_cross_attention, \ - "This version do not support decoder. Please refer to RoBERTa for implementation of is_decoder." - self.intermediate = RobertaIntermediate(config) - self.output = RobertaOutput(config) - - def forward( - self, - hidden_states, - attention_mask=None, - head_mask=None, - encoder_hidden_states=None, - encoder_attention_mask=None, - past_key_value=None, - output_attentions=False, - rel_pos=None, - rel_2d_pos=None, - ): - # decoder uni-directional self-attention cached key/values tuple is at positions 1,2 - self_attn_past_key_value = past_key_value[:2] if past_key_value is not None else None - self_attention_outputs = self.attention( - hidden_states, - attention_mask, - head_mask, - output_attentions=output_attentions, - past_key_value=self_attn_past_key_value, - rel_pos=rel_pos, - rel_2d_pos=rel_2d_pos, - ) - attention_output = self_attention_outputs[0] - - outputs = self_attention_outputs[1:] # add self attentions if we output attention weights - - layer_output = apply_chunking_to_forward( - self.feed_forward_chunk, self.chunk_size_feed_forward, self.seq_len_dim, attention_output - ) - outputs = (layer_output,) + outputs - - return outputs - - def feed_forward_chunk(self, attention_output): - intermediate_output = self.intermediate(attention_output) - layer_output = self.output(intermediate_output, attention_output) - return layer_output - - -class LayoutLMv3Encoder(nn.Module): - def __init__(self, config, detection=False, out_features=None): - super().__init__() - self.config = config - self.detection = detection - self.layer = nn.ModuleList([LayoutLMv3Layer(config) for _ in range(config.num_hidden_layers)]) - self.gradient_checkpointing = False - - self.has_relative_attention_bias = config.has_relative_attention_bias - self.has_spatial_attention_bias = config.has_spatial_attention_bias - - if self.has_relative_attention_bias: - self.rel_pos_bins = config.rel_pos_bins - self.max_rel_pos = config.max_rel_pos - self.rel_pos_onehot_size = config.rel_pos_bins - self.rel_pos_bias = nn.Linear(self.rel_pos_onehot_size, config.num_attention_heads, bias=False) - - if self.has_spatial_attention_bias: - self.max_rel_2d_pos = config.max_rel_2d_pos - self.rel_2d_pos_bins = config.rel_2d_pos_bins - self.rel_2d_pos_onehot_size = config.rel_2d_pos_bins - self.rel_pos_x_bias = nn.Linear(self.rel_2d_pos_onehot_size, config.num_attention_heads, bias=False) - self.rel_pos_y_bias = nn.Linear(self.rel_2d_pos_onehot_size, config.num_attention_heads, bias=False) - - if self.detection: - self.gradient_checkpointing = True - embed_dim = self.config.hidden_size - self.out_features = out_features - self.out_indices = [int(name[5:]) for name in out_features] - self.fpn1 = nn.Sequential( - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - # nn.SyncBatchNorm(embed_dim), - nn.BatchNorm2d(embed_dim), - nn.GELU(), - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - ) - - self.fpn2 = nn.Sequential( - nn.ConvTranspose2d(embed_dim, embed_dim, kernel_size=2, stride=2), - ) - - self.fpn3 = nn.Identity() - - self.fpn4 = nn.MaxPool2d(kernel_size=2, stride=2) - self.ops = [self.fpn1, self.fpn2, self.fpn3, self.fpn4] - - def relative_position_bucket(self, relative_position, bidirectional=True, num_buckets=32, max_distance=128): - ret = 0 - if bidirectional: - num_buckets //= 2 - ret += (relative_position > 0).long() * num_buckets - n = torch.abs(relative_position) - else: - n = torch.max(-relative_position, torch.zeros_like(relative_position)) - # now n is in the range [0, inf) - - # half of the buckets are for exact increments in positions - max_exact = num_buckets // 2 - is_small = n < max_exact - - # The other half of the buckets are for logarithmically bigger bins in positions up to max_distance - val_if_large = max_exact + ( - torch.log(n.float() / max_exact) / math.log(max_distance / max_exact) * (num_buckets - max_exact) - ).to(torch.long) - val_if_large = torch.min(val_if_large, torch.full_like(val_if_large, num_buckets - 1)) - - ret += torch.where(is_small, n, val_if_large) - return ret - - def _cal_1d_pos_emb(self, hidden_states, position_ids, valid_span): - VISUAL_NUM = 196 + 1 - - rel_pos_mat = position_ids.unsqueeze(-2) - position_ids.unsqueeze(-1) - - if valid_span is not None: - # for the text part, if two words are not in the same line, - # set their distance to the max value (position_ids.shape[-1]) - rel_pos_mat[(rel_pos_mat > 0) & (valid_span == False)] = position_ids.shape[1] - rel_pos_mat[(rel_pos_mat < 0) & (valid_span == False)] = -position_ids.shape[1] - - # image-text, minimum distance - rel_pos_mat[:, -VISUAL_NUM:, :-VISUAL_NUM] = 0 - rel_pos_mat[:, :-VISUAL_NUM, -VISUAL_NUM:] = 0 - - rel_pos = self.relative_position_bucket( - rel_pos_mat, - num_buckets=self.rel_pos_bins, - max_distance=self.max_rel_pos, - ) - rel_pos = F.one_hot(rel_pos, num_classes=self.rel_pos_onehot_size).type_as(hidden_states) - rel_pos = self.rel_pos_bias(rel_pos).permute(0, 3, 1, 2) - rel_pos = rel_pos.contiguous() - return rel_pos - - def _cal_2d_pos_emb(self, hidden_states, bbox): - position_coord_x = bbox[:, :, 0] - position_coord_y = bbox[:, :, 3] - rel_pos_x_2d_mat = position_coord_x.unsqueeze(-2) - position_coord_x.unsqueeze(-1) - rel_pos_y_2d_mat = position_coord_y.unsqueeze(-2) - position_coord_y.unsqueeze(-1) - rel_pos_x = self.relative_position_bucket( - rel_pos_x_2d_mat, - num_buckets=self.rel_2d_pos_bins, - max_distance=self.max_rel_2d_pos, - ) - rel_pos_y = self.relative_position_bucket( - rel_pos_y_2d_mat, - num_buckets=self.rel_2d_pos_bins, - max_distance=self.max_rel_2d_pos, - ) - rel_pos_x = F.one_hot(rel_pos_x, num_classes=self.rel_2d_pos_onehot_size).type_as(hidden_states) - rel_pos_y = F.one_hot(rel_pos_y, num_classes=self.rel_2d_pos_onehot_size).type_as(hidden_states) - rel_pos_x = self.rel_pos_x_bias(rel_pos_x).permute(0, 3, 1, 2) - rel_pos_y = self.rel_pos_y_bias(rel_pos_y).permute(0, 3, 1, 2) - rel_pos_x = rel_pos_x.contiguous() - rel_pos_y = rel_pos_y.contiguous() - rel_2d_pos = rel_pos_x + rel_pos_y - return rel_2d_pos - - def forward( - self, - hidden_states, - bbox=None, - attention_mask=None, - head_mask=None, - encoder_hidden_states=None, - encoder_attention_mask=None, - past_key_values=None, - use_cache=None, - output_attentions=False, - output_hidden_states=False, - return_dict=True, - position_ids=None, - Hp=None, - Wp=None, - valid_span=None, - ): - all_hidden_states = () if output_hidden_states else None - all_self_attentions = () if output_attentions else None - all_cross_attentions = () if output_attentions and self.config.add_cross_attention else None - - next_decoder_cache = () if use_cache else None - - rel_pos = self._cal_1d_pos_emb(hidden_states, position_ids, valid_span) if self.has_relative_attention_bias else None - rel_2d_pos = self._cal_2d_pos_emb(hidden_states, bbox) if self.has_spatial_attention_bias else None - - if self.detection: - feat_out = {} - j = 0 - - for i, layer_module in enumerate(self.layer): - if output_hidden_states: - all_hidden_states = all_hidden_states + (hidden_states,) - - layer_head_mask = head_mask[i] if head_mask is not None else None - past_key_value = past_key_values[i] if past_key_values is not None else None - - if self.gradient_checkpointing and self.training: - - if use_cache: - logger.warning( - "`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`..." - ) - use_cache = False - - def create_custom_forward(module): - def custom_forward(*inputs): - return module(*inputs) - # return module(*inputs, past_key_value, output_attentions, rel_pos, rel_2d_pos) - # The above line will cause error: - # RuntimeError: Trying to backward through the graph a second time - # (or directly access saved tensors after they have already been freed). - return custom_forward - - layer_outputs = torch.utils.checkpoint.checkpoint( - create_custom_forward(layer_module), - hidden_states, - attention_mask, - layer_head_mask, - encoder_hidden_states, - encoder_attention_mask, - past_key_value, - output_attentions, - rel_pos, - rel_2d_pos - ) - else: - layer_outputs = layer_module( - hidden_states, - attention_mask, - layer_head_mask, - encoder_hidden_states, - encoder_attention_mask, - past_key_value, - output_attentions, - rel_pos=rel_pos, - rel_2d_pos=rel_2d_pos, - ) - - hidden_states = layer_outputs[0] - if use_cache: - next_decoder_cache += (layer_outputs[-1],) - if output_attentions: - all_self_attentions = all_self_attentions + (layer_outputs[1],) - if self.config.add_cross_attention: - all_cross_attentions = all_cross_attentions + (layer_outputs[2],) - - if self.detection and i in self.out_indices: - xp = hidden_states[:, -Hp*Wp:, :].permute(0, 2, 1).reshape(len(hidden_states), -1, Hp, Wp) - feat_out[self.out_features[j]] = self.ops[j](xp.contiguous()) - j += 1 - - if self.detection: - return feat_out - - if output_hidden_states: - all_hidden_states = all_hidden_states + (hidden_states,) - - if not return_dict: - return tuple( - v - for v in [ - hidden_states, - next_decoder_cache, - all_hidden_states, - all_self_attentions, - all_cross_attentions, - ] - if v is not None - ) - return BaseModelOutputWithPastAndCrossAttentions( - last_hidden_state=hidden_states, - past_key_values=next_decoder_cache, - hidden_states=all_hidden_states, - attentions=all_self_attentions, - cross_attentions=all_cross_attentions, - ) - - -class LayoutLMv3Model(LayoutLMv3PreTrainedModel): - """ - """ - - _keys_to_ignore_on_load_missing = [r"position_ids"] - - # Copied from transformers.models.bert.modeling_bert.BertModel.__init__ with Bert->Roberta - def __init__(self, config, detection=False, out_features=None, image_only=False): - super().__init__(config) - self.config = config - assert not config.is_decoder and not config.add_cross_attention, \ - "This version do not support decoder. Please refer to RoBERTa for implementation of is_decoder." - self.detection = detection - if not self.detection: - self.image_only = False - else: - assert config.visual_embed - self.image_only = image_only - - if not self.image_only: - self.embeddings = LayoutLMv3Embeddings(config) - self.encoder = LayoutLMv3Encoder(config, detection=detection, out_features=out_features) - - if config.visual_embed: - embed_dim = self.config.hidden_size - # use the default pre-training parameters for fine-tuning (e.g., input_size) - # when the input_size is larger in fine-tuning, we will interpolate the position embedding in forward - self.patch_embed = PatchEmbed(embed_dim=embed_dim) - - patch_size = 16 - size = int(self.config.input_size / patch_size) - self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dim)) - self.pos_embed = nn.Parameter(torch.zeros(1, size * size + 1, embed_dim)) - self.pos_drop = nn.Dropout(p=0.) - - self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) - self.dropout = nn.Dropout(config.hidden_dropout_prob) - - if self.config.has_relative_attention_bias or self.config.has_spatial_attention_bias: - self._init_visual_bbox(img_size=(size, size)) - - from functools import partial - norm_layer = partial(nn.LayerNorm, eps=1e-6) - self.norm = norm_layer(embed_dim) - - self.init_weights() - - def get_input_embeddings(self): - return self.embeddings.word_embeddings - - def set_input_embeddings(self, value): - self.embeddings.word_embeddings = value - - def _prune_heads(self, heads_to_prune): - """ - Prunes heads of the model. heads_to_prune: dict of {layer_num: list of heads to prune in this layer} See base - class PreTrainedModel - """ - for layer, heads in heads_to_prune.items(): - self.encoder.layer[layer].attention.prune_heads(heads) - - def _init_visual_bbox(self, img_size=(14, 14), max_len=1000): - visual_bbox_x = torch.div(torch.arange(0, max_len * (img_size[1] + 1), max_len), - img_size[1], rounding_mode='trunc') - visual_bbox_y = torch.div(torch.arange(0, max_len * (img_size[0] + 1), max_len), - img_size[0], rounding_mode='trunc') - visual_bbox = torch.stack( - [ - visual_bbox_x[:-1].repeat(img_size[0], 1), - visual_bbox_y[:-1].repeat(img_size[1], 1).transpose(0, 1), - visual_bbox_x[1:].repeat(img_size[0], 1), - visual_bbox_y[1:].repeat(img_size[1], 1).transpose(0, 1), - ], - dim=-1, - ).view(-1, 4) - - cls_token_box = torch.tensor([[0 + 1, 0 + 1, max_len - 1, max_len - 1]]) - self.visual_bbox = torch.cat([cls_token_box, visual_bbox], dim=0) - - def _calc_visual_bbox(self, device, dtype, bsz): # , img_size=(14, 14), max_len=1000): - visual_bbox = self.visual_bbox.repeat(bsz, 1, 1) - visual_bbox = visual_bbox.to(device).type(dtype) - return visual_bbox - - def forward_image(self, x): - if self.detection: - x = self.patch_embed(x, self.pos_embed[:, 1:, :] if self.pos_embed is not None else None) - else: - x = self.patch_embed(x) - batch_size, seq_len, _ = x.size() - - cls_tokens = self.cls_token.expand(batch_size, -1, -1) # stole cls_tokens impl from Phil Wang, thanks - if self.pos_embed is not None and self.detection: - cls_tokens = cls_tokens + self.pos_embed[:, :1, :] - - x = torch.cat((cls_tokens, x), dim=1) - if self.pos_embed is not None and not self.detection: - x = x + self.pos_embed - x = self.pos_drop(x) - - x = self.norm(x) - return x - - # Copied from transformers.models.bert.modeling_bert.BertModel.forward - def forward( - self, - input_ids=None, - bbox=None, - attention_mask=None, - token_type_ids=None, - valid_span=None, - position_ids=None, - head_mask=None, - inputs_embeds=None, - encoder_hidden_states=None, - encoder_attention_mask=None, - past_key_values=None, - use_cache=None, - output_attentions=None, - output_hidden_states=None, - return_dict=None, - images=None, - ): - r""" - encoder_hidden_states (:obj:`torch.FloatTensor` of shape :obj:`(batch_size, sequence_length, hidden_size)`, `optional`): - Sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention if - the model is configured as a decoder. - encoder_attention_mask (:obj:`torch.FloatTensor` of shape :obj:`(batch_size, sequence_length)`, `optional`): - Mask to avoid performing attention on the padding token indices of the encoder input. This mask is used in - the cross-attention if the model is configured as a decoder. Mask values selected in ``[0, 1]``: - - - 1 for tokens that are **not masked**, - - 0 for tokens that are **masked**. - past_key_values (:obj:`tuple(tuple(torch.FloatTensor))` of length :obj:`config.n_layers` with each tuple having 4 tensors of shape :obj:`(batch_size, num_heads, sequence_length - 1, embed_size_per_head)`): - Contains precomputed key and value hidden states of the attention blocks. Can be used to speed up decoding. - - If :obj:`past_key_values` are used, the user can optionally input only the last :obj:`decoder_input_ids` - (those that don't have their past key value states given to this model) of shape :obj:`(batch_size, 1)` - instead of all :obj:`decoder_input_ids` of shape :obj:`(batch_size, sequence_length)`. - use_cache (:obj:`bool`, `optional`): - If set to :obj:`True`, :obj:`past_key_values` key value states are returned and can be used to speed up - decoding (see :obj:`past_key_values`). - """ - output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions - output_hidden_states = ( - output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states - ) - return_dict = return_dict if return_dict is not None else self.config.use_return_dict - - use_cache = False - - # if input_ids is not None and inputs_embeds is not None: - # raise ValueError("You cannot specify both input_ids and inputs_embeds at the same time") - if input_ids is not None: - input_shape = input_ids.size() - batch_size, seq_length = input_shape - device = input_ids.device - elif inputs_embeds is not None: - input_shape = inputs_embeds.size()[:-1] - batch_size, seq_length = input_shape - device = inputs_embeds.device - elif images is not None: - batch_size = len(images) - device = images.device - else: - raise ValueError("You have to specify either input_ids or inputs_embeds or images") - - if not self.image_only: - # past_key_values_length - past_key_values_length = past_key_values[0][0].shape[2] if past_key_values is not None else 0 - - if attention_mask is None: - attention_mask = torch.ones(((batch_size, seq_length + past_key_values_length)), device=device) - if token_type_ids is None: - token_type_ids = torch.zeros(input_shape, dtype=torch.long, device=device) - - # We can provide a self-attention mask of dimensions [batch_size, from_seq_length, to_seq_length] - # ourselves in which case we just need to make it broadcastable to all heads. - # extended_attention_mask: torch.Tensor = self.get_extended_attention_mask(attention_mask, input_shape, device) - - encoder_extended_attention_mask = None - - # Prepare head mask if needed - # 1.0 in head_mask indicate we keep the head - # attention_probs has shape bsz x n_heads x N x N - # input head_mask has shape [num_heads] or [num_hidden_layers x num_heads] - # and head_mask is converted to shape [num_hidden_layers x batch x num_heads x seq_length x seq_length] - head_mask = self.get_head_mask(head_mask, self.config.num_hidden_layers) - - if not self.image_only: - if bbox is None: - bbox = torch.zeros(tuple(list(input_shape) + [4]), dtype=torch.long, device=device) - - embedding_output = self.embeddings( - input_ids=input_ids, - bbox=bbox, - position_ids=position_ids, - token_type_ids=token_type_ids, - inputs_embeds=inputs_embeds, - past_key_values_length=past_key_values_length, - ) - - final_bbox = final_position_ids = None - Hp = Wp = None - if images is not None: - patch_size = 16 - Hp, Wp = int(images.shape[2] / patch_size), int(images.shape[3] / patch_size) - visual_emb = self.forward_image(images) - if self.detection: - visual_attention_mask = torch.ones((batch_size, visual_emb.shape[1]), dtype=torch.long, device=device) - if self.image_only: - attention_mask = visual_attention_mask - else: - attention_mask = torch.cat([attention_mask, visual_attention_mask], dim=1) - elif self.image_only: - attention_mask = torch.ones((batch_size, visual_emb.shape[1]), dtype=torch.long, device=device) - - if self.config.has_relative_attention_bias or self.config.has_spatial_attention_bias: - if self.config.has_spatial_attention_bias: - visual_bbox = self._calc_visual_bbox(device, dtype=torch.long, bsz=batch_size) - if self.image_only: - final_bbox = visual_bbox - else: - final_bbox = torch.cat([bbox, visual_bbox], dim=1) - - visual_position_ids = torch.arange(0, visual_emb.shape[1], dtype=torch.long, device=device).repeat( - batch_size, 1) - if self.image_only: - final_position_ids = visual_position_ids - else: - position_ids = torch.arange(0, input_shape[1], device=device).unsqueeze(0) - position_ids = position_ids.expand_as(input_ids) - final_position_ids = torch.cat([position_ids, visual_position_ids], dim=1) - - if self.image_only: - embedding_output = visual_emb - else: - embedding_output = torch.cat([embedding_output, visual_emb], dim=1) - embedding_output = self.LayerNorm(embedding_output) - embedding_output = self.dropout(embedding_output) - elif self.config.has_relative_attention_bias or self.config.has_spatial_attention_bias: - if self.config.has_spatial_attention_bias: - final_bbox = bbox - if self.config.has_relative_attention_bias: - position_ids = self.embeddings.position_ids[:, :input_shape[1]] - position_ids = position_ids.expand_as(input_ids) - final_position_ids = position_ids - - extended_attention_mask: torch.Tensor = self.get_extended_attention_mask(attention_mask, None, device) - - encoder_outputs = self.encoder( - embedding_output, - bbox=final_bbox, - position_ids=final_position_ids, - attention_mask=extended_attention_mask, - head_mask=head_mask, - encoder_hidden_states=encoder_hidden_states, - encoder_attention_mask=encoder_extended_attention_mask, - past_key_values=past_key_values, - use_cache=use_cache, - output_attentions=output_attentions, - output_hidden_states=output_hidden_states, - return_dict=return_dict, - Hp=Hp, - Wp=Wp, - valid_span=valid_span, - ) - - if self.detection: - return encoder_outputs - - sequence_output = encoder_outputs[0] - pooled_output = None - - if not return_dict: - return (sequence_output, pooled_output) + encoder_outputs[1:] - - return BaseModelOutputWithPoolingAndCrossAttentions( - last_hidden_state=sequence_output, - pooler_output=pooled_output, - past_key_values=encoder_outputs.past_key_values, - hidden_states=encoder_outputs.hidden_states, - attentions=encoder_outputs.attentions, - cross_attentions=encoder_outputs.cross_attentions, - ) - - -class LayoutLMv3ClassificationHead(nn.Module): - """ - Head for sentence-level classification tasks. - Reference: RobertaClassificationHead - """ - - def __init__(self, config, pool_feature=False): - super().__init__() - self.pool_feature = pool_feature - if pool_feature: - self.dense = nn.Linear(config.hidden_size*3, config.hidden_size) - else: - self.dense = nn.Linear(config.hidden_size, config.hidden_size) - classifier_dropout = ( - config.classifier_dropout if config.classifier_dropout is not None else config.hidden_dropout_prob - ) - self.dropout = nn.Dropout(classifier_dropout) - self.out_proj = nn.Linear(config.hidden_size, config.num_labels) - - def forward(self, x): - # x = features[:, 0, :] # take token (equiv. to [CLS]) - x = self.dropout(x) - x = self.dense(x) - x = torch.tanh(x) - x = self.dropout(x) - x = self.out_proj(x) - return x - - -class LayoutLMv3ForTokenClassification(LayoutLMv3PreTrainedModel): - _keys_to_ignore_on_load_unexpected = [r"pooler"] - _keys_to_ignore_on_load_missing = [r"position_ids"] - - def __init__(self, config): - super().__init__(config) - self.num_labels = config.num_labels - - self.layoutlmv3 = LayoutLMv3Model(config) - self.dropout = nn.Dropout(config.hidden_dropout_prob) - if config.num_labels < 10: - self.classifier = nn.Linear(config.hidden_size, config.num_labels) - else: - self.classifier = LayoutLMv3ClassificationHead(config, pool_feature=False) - - self.init_weights() - - def forward( - self, - input_ids=None, - bbox=None, - attention_mask=None, - token_type_ids=None, - position_ids=None, - valid_span=None, - head_mask=None, - inputs_embeds=None, - labels=None, - output_attentions=None, - output_hidden_states=None, - return_dict=None, - images=None, - ): - r""" - labels (:obj:`torch.LongTensor` of shape :obj:`(batch_size, sequence_length)`, `optional`): - Labels for computing the token classification loss. Indices should be in ``[0, ..., config.num_labels - - 1]``. - """ - return_dict = return_dict if return_dict is not None else self.config.use_return_dict - - outputs = self.layoutlmv3( - input_ids, - bbox=bbox, - attention_mask=attention_mask, - token_type_ids=token_type_ids, - position_ids=position_ids, - head_mask=head_mask, - inputs_embeds=inputs_embeds, - output_attentions=output_attentions, - output_hidden_states=output_hidden_states, - return_dict=return_dict, - images=images, - valid_span=valid_span, - ) - - sequence_output = outputs[0] - - sequence_output = self.dropout(sequence_output) - logits = self.classifier(sequence_output) - - loss = None - if labels is not None: - loss_fct = CrossEntropyLoss() - # Only keep active parts of the loss - if attention_mask is not None: - active_loss = attention_mask.view(-1) == 1 - active_logits = logits.view(-1, self.num_labels) - active_labels = torch.where( - active_loss, labels.view(-1), torch.tensor(loss_fct.ignore_index).type_as(labels) - ) - loss = loss_fct(active_logits, active_labels) - else: - loss = loss_fct(logits.view(-1, self.num_labels), labels.view(-1)) - - if not return_dict: - output = (logits,) + outputs[2:] - return ((loss,) + output) if loss is not None else output - - return TokenClassifierOutput( - loss=loss, - logits=logits, - hidden_states=outputs.hidden_states, - attentions=outputs.attentions, - ) - - -class LayoutLMv3ForQuestionAnswering(LayoutLMv3PreTrainedModel): - _keys_to_ignore_on_load_unexpected = [r"pooler"] - _keys_to_ignore_on_load_missing = [r"position_ids"] - - def __init__(self, config): - super().__init__(config) - self.num_labels = config.num_labels - - self.layoutlmv3 = LayoutLMv3Model(config) - # self.qa_outputs = nn.Linear(config.hidden_size, config.num_labels) - self.qa_outputs = LayoutLMv3ClassificationHead(config, pool_feature=False) - - self.init_weights() - - def forward( - self, - input_ids=None, - attention_mask=None, - token_type_ids=None, - position_ids=None, - valid_span=None, - head_mask=None, - inputs_embeds=None, - start_positions=None, - end_positions=None, - output_attentions=None, - output_hidden_states=None, - return_dict=None, - bbox=None, - images=None, - ): - r""" - start_positions (:obj:`torch.LongTensor` of shape :obj:`(batch_size,)`, `optional`): - Labels for position (index) of the start of the labelled span for computing the token classification loss. - Positions are clamped to the length of the sequence (:obj:`sequence_length`). Position outside of the - sequence are not taken into account for computing the loss. - end_positions (:obj:`torch.LongTensor` of shape :obj:`(batch_size,)`, `optional`): - Labels for position (index) of the end of the labelled span for computing the token classification loss. - Positions are clamped to the length of the sequence (:obj:`sequence_length`). Position outside of the - sequence are not taken into account for computing the loss. - """ - return_dict = return_dict if return_dict is not None else self.config.use_return_dict - - outputs = self.layoutlmv3( - input_ids, - attention_mask=attention_mask, - token_type_ids=token_type_ids, - position_ids=position_ids, - head_mask=head_mask, - inputs_embeds=inputs_embeds, - output_attentions=output_attentions, - output_hidden_states=output_hidden_states, - return_dict=return_dict, - bbox=bbox, - images=images, - valid_span=valid_span, - ) - - sequence_output = outputs[0] - - logits = self.qa_outputs(sequence_output) - start_logits, end_logits = logits.split(1, dim=-1) - start_logits = start_logits.squeeze(-1).contiguous() - end_logits = end_logits.squeeze(-1).contiguous() - - total_loss = None - if start_positions is not None and end_positions is not None: - # If we are on multi-GPU, split add a dimension - if len(start_positions.size()) > 1: - start_positions = start_positions.squeeze(-1) - if len(end_positions.size()) > 1: - end_positions = end_positions.squeeze(-1) - # sometimes the start/end positions are outside our model inputs, we ignore these terms - ignored_index = start_logits.size(1) - start_positions = start_positions.clamp(0, ignored_index) - end_positions = end_positions.clamp(0, ignored_index) - - loss_fct = CrossEntropyLoss(ignore_index=ignored_index) - start_loss = loss_fct(start_logits, start_positions) - end_loss = loss_fct(end_logits, end_positions) - total_loss = (start_loss + end_loss) / 2 - - if not return_dict: - output = (start_logits, end_logits) + outputs[2:] - return ((total_loss,) + output) if total_loss is not None else output - - return QuestionAnsweringModelOutput( - loss=total_loss, - start_logits=start_logits, - end_logits=end_logits, - hidden_states=outputs.hidden_states, - attentions=outputs.attentions, - ) - - -class LayoutLMv3ForSequenceClassification(LayoutLMv3PreTrainedModel): - _keys_to_ignore_on_load_missing = [r"position_ids"] - - def __init__(self, config): - super().__init__(config) - self.num_labels = config.num_labels - self.config = config - self.layoutlmv3 = LayoutLMv3Model(config) - self.classifier = LayoutLMv3ClassificationHead(config, pool_feature=False) - - self.init_weights() - - def forward( - self, - input_ids=None, - attention_mask=None, - token_type_ids=None, - position_ids=None, - valid_span=None, - head_mask=None, - inputs_embeds=None, - labels=None, - output_attentions=None, - output_hidden_states=None, - return_dict=None, - bbox=None, - images=None, - ): - r""" - labels (:obj:`torch.LongTensor` of shape :obj:`(batch_size,)`, `optional`): - Labels for computing the sequence classification/regression loss. Indices should be in :obj:`[0, ..., - config.num_labels - 1]`. If :obj:`config.num_labels == 1` a regression loss is computed (Mean-Square loss), - If :obj:`config.num_labels > 1` a classification loss is computed (Cross-Entropy). - """ - return_dict = return_dict if return_dict is not None else self.config.use_return_dict - - outputs = self.layoutlmv3( - input_ids, - attention_mask=attention_mask, - token_type_ids=token_type_ids, - position_ids=position_ids, - head_mask=head_mask, - inputs_embeds=inputs_embeds, - output_attentions=output_attentions, - output_hidden_states=output_hidden_states, - return_dict=return_dict, - bbox=bbox, - images=images, - valid_span=valid_span, - ) - - sequence_output = outputs[0][:, 0, :] - logits = self.classifier(sequence_output) - - loss = None - if labels is not None: - if self.config.problem_type is None: - if self.num_labels == 1: - self.config.problem_type = "regression" - elif self.num_labels > 1 and (labels.dtype == torch.long or labels.dtype == torch.int): - self.config.problem_type = "single_label_classification" - else: - self.config.problem_type = "multi_label_classification" - - if self.config.problem_type == "regression": - loss_fct = MSELoss() - if self.num_labels == 1: - loss = loss_fct(logits.squeeze(), labels.squeeze()) - else: - loss = loss_fct(logits, labels) - elif self.config.problem_type == "single_label_classification": - loss_fct = CrossEntropyLoss() - loss = loss_fct(logits.view(-1, self.num_labels), labels.view(-1)) - elif self.config.problem_type == "multi_label_classification": - loss_fct = BCEWithLogitsLoss() - loss = loss_fct(logits, labels) - - if not return_dict: - output = (logits,) + outputs[2:] - return ((loss,) + output) if loss is not None else output - - return SequenceClassifierOutput( - loss=loss, - logits=logits, - hidden_states=outputs.hidden_states, - attentions=outputs.attentions, - ) diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/tokenization_layoutlmv3.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/tokenization_layoutlmv3.py deleted file mode 100644 index f340d3c6a..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/tokenization_layoutlmv3.py +++ /dev/null @@ -1,32 +0,0 @@ -# coding=utf-8 -# Copyright 2018 The Open AI Team Authors and The HuggingFace Inc. team. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Tokenization classes for LayoutLMv3, refer to RoBERTa.""" - -from transformers.models.roberta import RobertaTokenizer -from transformers.utils import logging - - -logger = logging.get_logger(__name__) - -VOCAB_FILES_NAMES = { - "vocab_file": "vocab.json", - "merges_file": "merges.txt", -} - -class LayoutLMv3Tokenizer(RobertaTokenizer): - vocab_files_names = VOCAB_FILES_NAMES - # pretrained_vocab_files_map = PRETRAINED_VOCAB_FILES_MAP - # max_model_input_sizes = PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES - model_input_names = ["input_ids", "attention_mask"] diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/tokenization_layoutlmv3_fast.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/tokenization_layoutlmv3_fast.py deleted file mode 100644 index 9fd75ff1d..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/layoutlmft/models/layoutlmv3/tokenization_layoutlmv3_fast.py +++ /dev/null @@ -1,34 +0,0 @@ -# coding=utf-8 -# Copyright 2018 The Open AI Team Authors and The HuggingFace Inc. team. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Fast Tokenization classes for LayoutLMv3, refer to RoBERTa.""" - - -from transformers.models.roberta.tokenization_roberta_fast import RobertaTokenizerFast -from transformers.utils import logging - -from .tokenization_layoutlmv3 import LayoutLMv3Tokenizer - - -logger = logging.get_logger(__name__) - -VOCAB_FILES_NAMES = {"vocab_file": "vocab.json", "merges_file": "merges.txt", "tokenizer_file": "tokenizer.json"} - - -class LayoutLMv3TokenizerFast(RobertaTokenizerFast): - vocab_files_names = VOCAB_FILES_NAMES - # pretrained_vocab_files_map = PRETRAINED_VOCAB_FILES_MAP - # max_model_input_sizes = PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES - model_input_names = ["input_ids", "attention_mask"] - slow_tokenizer_class = LayoutLMv3Tokenizer diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/model_init.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/model_init.py deleted file mode 100644 index a624d60d5..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/model_init.py +++ /dev/null @@ -1,151 +0,0 @@ -from .visualizer import Visualizer -from .rcnn_vl import * -from .backbone import * - -from detectron2.config import get_cfg -from detectron2.config import CfgNode as CN -from detectron2.data import MetadataCatalog, DatasetCatalog -from detectron2.data.datasets import register_coco_instances -from detectron2.engine import DefaultTrainer, default_argument_parser, default_setup, launch, DefaultPredictor - - -def add_vit_config(cfg): - """ - Add config for VIT. - """ - _C = cfg - - _C.MODEL.VIT = CN() - - # CoaT model name. - _C.MODEL.VIT.NAME = "" - - # Output features from CoaT backbone. - _C.MODEL.VIT.OUT_FEATURES = ["layer3", "layer5", "layer7", "layer11"] - - _C.MODEL.VIT.IMG_SIZE = [224, 224] - - _C.MODEL.VIT.POS_TYPE = "shared_rel" - - _C.MODEL.VIT.DROP_PATH = 0. - - _C.MODEL.VIT.MODEL_KWARGS = "{}" - - _C.SOLVER.OPTIMIZER = "ADAMW" - - _C.SOLVER.BACKBONE_MULTIPLIER = 1.0 - - _C.AUG = CN() - - _C.AUG.DETR = False - - _C.MODEL.IMAGE_ONLY = True - _C.PUBLAYNET_DATA_DIR_TRAIN = "" - _C.PUBLAYNET_DATA_DIR_TEST = "" - _C.FOOTNOTE_DATA_DIR_TRAIN = "" - _C.FOOTNOTE_DATA_DIR_VAL = "" - _C.SCIHUB_DATA_DIR_TRAIN = "" - _C.SCIHUB_DATA_DIR_TEST = "" - _C.JIAOCAI_DATA_DIR_TRAIN = "" - _C.JIAOCAI_DATA_DIR_TEST = "" - _C.ICDAR_DATA_DIR_TRAIN = "" - _C.ICDAR_DATA_DIR_TEST = "" - _C.M6DOC_DATA_DIR_TEST = "" - _C.DOCSTRUCTBENCH_DATA_DIR_TEST = "" - _C.DOCSTRUCTBENCHv2_DATA_DIR_TEST = "" - _C.CACHE_DIR = "" - _C.MODEL.CONFIG_PATH = "" - - # effective update steps would be MAX_ITER/GRADIENT_ACCUMULATION_STEPS - # maybe need to set MAX_ITER *= GRADIENT_ACCUMULATION_STEPS - _C.SOLVER.GRADIENT_ACCUMULATION_STEPS = 1 - - -def setup(args, device): - """ - Create configs and perform basic setups. - """ - cfg = get_cfg() - - # add_coat_config(cfg) - add_vit_config(cfg) - cfg.merge_from_file(args.config_file) - cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.2 # set threshold for this model - cfg.merge_from_list(args.opts) - - # 使用统一的device配置 - cfg.MODEL.DEVICE = device - - cfg.freeze() - default_setup(cfg, args) - - #@todo 可以删掉这块? - # register_coco_instances( - # "scihub_train", - # {}, - # cfg.SCIHUB_DATA_DIR_TRAIN + ".json", - # cfg.SCIHUB_DATA_DIR_TRAIN - # ) - - return cfg - - -class DotDict(dict): - def __init__(self, *args, **kwargs): - super(DotDict, self).__init__(*args, **kwargs) - - def __getattr__(self, key): - if key not in self.keys(): - return None - value = self[key] - if isinstance(value, dict): - value = DotDict(value) - return value - - def __setattr__(self, key, value): - self[key] = value - - -class Layoutlmv3_Predictor(object): - def __init__(self, weights, config_file, device): - layout_args = { - "config_file": config_file, - "resume": False, - "eval_only": False, - "num_gpus": 1, - "num_machines": 1, - "machine_rank": 0, - "dist_url": "tcp://127.0.0.1:57823", - "opts": ["MODEL.WEIGHTS", weights], - } - layout_args = DotDict(layout_args) - - cfg = setup(layout_args, device) - self.mapping = ["title", "plain text", "abandon", "figure", "figure_caption", "table", "table_caption", - "table_footnote", "isolate_formula", "formula_caption"] - MetadataCatalog.get(cfg.DATASETS.TRAIN[0]).thing_classes = self.mapping - self.predictor = DefaultPredictor(cfg) - - def __call__(self, image, ignore_catids=[]): - # page_layout_result = { - # "layout_dets": [] - # } - layout_dets = [] - outputs = self.predictor(image) - boxes = outputs["instances"].to("cpu")._fields["pred_boxes"].tensor.tolist() - labels = outputs["instances"].to("cpu")._fields["pred_classes"].tolist() - scores = outputs["instances"].to("cpu")._fields["scores"].tolist() - for bbox_idx in range(len(boxes)): - if labels[bbox_idx] in ignore_catids: - continue - layout_dets.append({ - "category_id": labels[bbox_idx], - "poly": [ - boxes[bbox_idx][0], boxes[bbox_idx][1], - boxes[bbox_idx][2], boxes[bbox_idx][1], - boxes[bbox_idx][2], boxes[bbox_idx][3], - boxes[bbox_idx][0], boxes[bbox_idx][3], - ], - "score": scores[bbox_idx] - }) - return layout_dets diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/rcnn_vl.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/rcnn_vl.py deleted file mode 100644 index 46b2e1610..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/rcnn_vl.py +++ /dev/null @@ -1,163 +0,0 @@ -# Copyright (c) Facebook, Inc. and its affiliates. -import logging -import numpy as np -from typing import Dict, List, Optional, Tuple -import torch -from torch import nn - -from detectron2.config import configurable -from detectron2.structures import ImageList, Instances -from detectron2.utils.events import get_event_storage - -from detectron2.modeling.backbone import Backbone, build_backbone -from detectron2.modeling.meta_arch.build import META_ARCH_REGISTRY - -from detectron2.modeling.meta_arch import GeneralizedRCNN - -from detectron2.modeling.postprocessing import detector_postprocess -from detectron2.modeling.roi_heads.fast_rcnn import fast_rcnn_inference_single_image -from contextlib import contextmanager -from itertools import count - -@META_ARCH_REGISTRY.register() -class VLGeneralizedRCNN(GeneralizedRCNN): - """ - Generalized R-CNN. Any models that contains the following three components: - 1. Per-image feature extraction (aka backbone) - 2. Region proposal generation - 3. Per-region feature extraction and prediction - """ - - def forward(self, batched_inputs: List[Dict[str, torch.Tensor]]): - """ - Args: - batched_inputs: a list, batched outputs of :class:`DatasetMapper` . - Each item in the list contains the inputs for one image. - For now, each item in the list is a dict that contains: - - * image: Tensor, image in (C, H, W) format. - * instances (optional): groundtruth :class:`Instances` - * proposals (optional): :class:`Instances`, precomputed proposals. - - Other information that's included in the original dicts, such as: - - * "height", "width" (int): the output resolution of the model, used in inference. - See :meth:`postprocess` for details. - - Returns: - list[dict]: - Each dict is the output for one input image. - The dict contains one key "instances" whose value is a :class:`Instances`. - The :class:`Instances` object has the following keys: - "pred_boxes", "pred_classes", "scores", "pred_masks", "pred_keypoints" - """ - if not self.training: - return self.inference(batched_inputs) - - images = self.preprocess_image(batched_inputs) - if "instances" in batched_inputs[0]: - gt_instances = [x["instances"].to(self.device) for x in batched_inputs] - else: - gt_instances = None - - # features = self.backbone(images.tensor) - input = self.get_batch(batched_inputs, images) - features = self.backbone(input) - - if self.proposal_generator is not None: - proposals, proposal_losses = self.proposal_generator(images, features, gt_instances) - else: - assert "proposals" in batched_inputs[0] - proposals = [x["proposals"].to(self.device) for x in batched_inputs] - proposal_losses = {} - - _, detector_losses = self.roi_heads(images, features, proposals, gt_instances) - if self.vis_period > 0: - storage = get_event_storage() - if storage.iter % self.vis_period == 0: - self.visualize_training(batched_inputs, proposals) - - losses = {} - losses.update(detector_losses) - losses.update(proposal_losses) - return losses - - def inference( - self, - batched_inputs: List[Dict[str, torch.Tensor]], - detected_instances: Optional[List[Instances]] = None, - do_postprocess: bool = True, - ): - """ - Run inference on the given inputs. - - Args: - batched_inputs (list[dict]): same as in :meth:`forward` - detected_instances (None or list[Instances]): if not None, it - contains an `Instances` object per image. The `Instances` - object contains "pred_boxes" and "pred_classes" which are - known boxes in the image. - The inference will then skip the detection of bounding boxes, - and only predict other per-ROI outputs. - do_postprocess (bool): whether to apply post-processing on the outputs. - - Returns: - When do_postprocess=True, same as in :meth:`forward`. - Otherwise, a list[Instances] containing raw network outputs. - """ - assert not self.training - - images = self.preprocess_image(batched_inputs) - # features = self.backbone(images.tensor) - input = self.get_batch(batched_inputs, images) - features = self.backbone(input) - - if detected_instances is None: - if self.proposal_generator is not None: - proposals, _ = self.proposal_generator(images, features, None) - else: - assert "proposals" in batched_inputs[0] - proposals = [x["proposals"].to(self.device) for x in batched_inputs] - - results, _ = self.roi_heads(images, features, proposals, None) - else: - detected_instances = [x.to(self.device) for x in detected_instances] - results = self.roi_heads.forward_with_given_boxes(features, detected_instances) - - if do_postprocess: - assert not torch.jit.is_scripting(), "Scripting is not supported for postprocess." - return GeneralizedRCNN._postprocess(results, batched_inputs, images.image_sizes) - else: - return results - - def get_batch(self, examples, images): - if len(examples) >= 1 and "bbox" not in examples[0]: # image_only - return {"images": images.tensor} - - return input - - def _batch_inference(self, batched_inputs, detected_instances=None): - """ - Execute inference on a list of inputs, - using batch size = self.batch_size (e.g., 2), instead of the length of the list. - - Inputs & outputs have the same format as :meth:`GeneralizedRCNN.inference` - """ - if detected_instances is None: - detected_instances = [None] * len(batched_inputs) - - outputs = [] - inputs, instances = [], [] - for idx, input, instance in zip(count(), batched_inputs, detected_instances): - inputs.append(input) - instances.append(instance) - if len(inputs) == 2 or idx == len(batched_inputs) - 1: - outputs.extend( - self.inference( - inputs, - instances if instances[0] is not None else None, - do_postprocess=True, # False - ) - ) - inputs, instances = [], [] - return outputs diff --git a/magic_pdf/model/pek_sub_modules/layoutlmv3/visualizer.py b/magic_pdf/model/pek_sub_modules/layoutlmv3/visualizer.py deleted file mode 100644 index 8185984e6..000000000 --- a/magic_pdf/model/pek_sub_modules/layoutlmv3/visualizer.py +++ /dev/null @@ -1,1236 +0,0 @@ -# Copyright (c) Facebook, Inc. and its affiliates. -import colorsys -import logging -import math -import numpy as np -from enum import Enum, unique -import cv2 -import matplotlib as mpl -import matplotlib.colors as mplc -import matplotlib.figure as mplfigure -import pycocotools.mask as mask_util -import torch -from matplotlib.backends.backend_agg import FigureCanvasAgg -from PIL import Image - -from detectron2.data import MetadataCatalog -from detectron2.structures import BitMasks, Boxes, BoxMode, Keypoints, PolygonMasks, RotatedBoxes -from detectron2.utils.file_io import PathManager - -from detectron2.utils.colormap import random_color - -import pdb - -logger = logging.getLogger(__name__) - -__all__ = ["ColorMode", "VisImage", "Visualizer"] - - -_SMALL_OBJECT_AREA_THRESH = 1000 -_LARGE_MASK_AREA_THRESH = 120000 -_OFF_WHITE = (1.0, 1.0, 240.0 / 255) -_BLACK = (0, 0, 0) -_RED = (1.0, 0, 0) - -_KEYPOINT_THRESHOLD = 0.05 - -#CLASS_NAMES = ["footnote", "footer", "header"] - -@unique -class ColorMode(Enum): - """ - Enum of different color modes to use for instance visualizations. - """ - - IMAGE = 0 - """ - Picks a random color for every instance and overlay segmentations with low opacity. - """ - SEGMENTATION = 1 - """ - Let instances of the same category have similar colors - (from metadata.thing_colors), and overlay them with - high opacity. This provides more attention on the quality of segmentation. - """ - IMAGE_BW = 2 - """ - Same as IMAGE, but convert all areas without masks to gray-scale. - Only available for drawing per-instance mask predictions. - """ - - -class GenericMask: - """ - Attribute: - polygons (list[ndarray]): list[ndarray]: polygons for this mask. - Each ndarray has format [x, y, x, y, ...] - mask (ndarray): a binary mask - """ - - def __init__(self, mask_or_polygons, height, width): - self._mask = self._polygons = self._has_holes = None - self.height = height - self.width = width - - m = mask_or_polygons - if isinstance(m, dict): - # RLEs - assert "counts" in m and "size" in m - if isinstance(m["counts"], list): # uncompressed RLEs - h, w = m["size"] - assert h == height and w == width - m = mask_util.frPyObjects(m, h, w) - self._mask = mask_util.decode(m)[:, :] - return - - if isinstance(m, list): # list[ndarray] - self._polygons = [np.asarray(x).reshape(-1) for x in m] - return - - if isinstance(m, np.ndarray): # assumed to be a binary mask - assert m.shape[1] != 2, m.shape - assert m.shape == ( - height, - width, - ), f"mask shape: {m.shape}, target dims: {height}, {width}" - self._mask = m.astype("uint8") - return - - raise ValueError("GenericMask cannot handle object {} of type '{}'".format(m, type(m))) - - @property - def mask(self): - if self._mask is None: - self._mask = self.polygons_to_mask(self._polygons) - return self._mask - - @property - def polygons(self): - if self._polygons is None: - self._polygons, self._has_holes = self.mask_to_polygons(self._mask) - return self._polygons - - @property - def has_holes(self): - if self._has_holes is None: - if self._mask is not None: - self._polygons, self._has_holes = self.mask_to_polygons(self._mask) - else: - self._has_holes = False # if original format is polygon, does not have holes - return self._has_holes - - def mask_to_polygons(self, mask): - # cv2.RETR_CCOMP flag retrieves all the contours and arranges them to a 2-level - # hierarchy. External contours (boundary) of the object are placed in hierarchy-1. - # Internal contours (holes) are placed in hierarchy-2. - # cv2.CHAIN_APPROX_NONE flag gets vertices of polygons from contours. - mask = np.ascontiguousarray(mask) # some versions of cv2 does not support incontiguous arr - res = cv2.findContours(mask.astype("uint8"), cv2.RETR_CCOMP, cv2.CHAIN_APPROX_NONE) - hierarchy = res[-1] - if hierarchy is None: # empty mask - return [], False - has_holes = (hierarchy.reshape(-1, 4)[:, 3] >= 0).sum() > 0 - res = res[-2] - res = [x.flatten() for x in res] - # These coordinates from OpenCV are integers in range [0, W-1 or H-1]. - # We add 0.5 to turn them into real-value coordinate space. A better solution - # would be to first +0.5 and then dilate the returned polygon by 0.5. - res = [x + 0.5 for x in res if len(x) >= 6] - return res, has_holes - - def polygons_to_mask(self, polygons): - rle = mask_util.frPyObjects(polygons, self.height, self.width) - rle = mask_util.merge(rle) - return mask_util.decode(rle)[:, :] - - def area(self): - return self.mask.sum() - - def bbox(self): - p = mask_util.frPyObjects(self.polygons, self.height, self.width) - p = mask_util.merge(p) - bbox = mask_util.toBbox(p) - bbox[2] += bbox[0] - bbox[3] += bbox[1] - return bbox - - -class _PanopticPrediction: - """ - Unify different panoptic annotation/prediction formats - """ - - def __init__(self, panoptic_seg, segments_info, metadata=None): - if segments_info is None: - assert metadata is not None - # If "segments_info" is None, we assume "panoptic_img" is a - # H*W int32 image storing the panoptic_id in the format of - # category_id * label_divisor + instance_id. We reserve -1 for - # VOID label. - label_divisor = metadata.label_divisor - segments_info = [] - for panoptic_label in np.unique(panoptic_seg.numpy()): - if panoptic_label == -1: - # VOID region. - continue - pred_class = panoptic_label // label_divisor - isthing = pred_class in metadata.thing_dataset_id_to_contiguous_id.values() - segments_info.append( - { - "id": int(panoptic_label), - "category_id": int(pred_class), - "isthing": bool(isthing), - } - ) - del metadata - - self._seg = panoptic_seg - - self._sinfo = {s["id"]: s for s in segments_info} # seg id -> seg info - segment_ids, areas = torch.unique(panoptic_seg, sorted=True, return_counts=True) - areas = areas.numpy() - sorted_idxs = np.argsort(-areas) - self._seg_ids, self._seg_areas = segment_ids[sorted_idxs], areas[sorted_idxs] - self._seg_ids = self._seg_ids.tolist() - for sid, area in zip(self._seg_ids, self._seg_areas): - if sid in self._sinfo: - self._sinfo[sid]["area"] = float(area) - - def non_empty_mask(self): - """ - Returns: - (H, W) array, a mask for all pixels that have a prediction - """ - empty_ids = [] - for id in self._seg_ids: - if id not in self._sinfo: - empty_ids.append(id) - if len(empty_ids) == 0: - return np.zeros(self._seg.shape, dtype=np.uint8) - assert ( - len(empty_ids) == 1 - ), ">1 ids corresponds to no labels. This is currently not supported" - return (self._seg != empty_ids[0]).numpy().astype(np.bool) - - def semantic_masks(self): - for sid in self._seg_ids: - sinfo = self._sinfo.get(sid) - if sinfo is None or sinfo["isthing"]: - # Some pixels (e.g. id 0 in PanopticFPN) have no instance or semantic predictions. - continue - yield (self._seg == sid).numpy().astype(np.bool), sinfo - - def instance_masks(self): - for sid in self._seg_ids: - sinfo = self._sinfo.get(sid) - if sinfo is None or not sinfo["isthing"]: - continue - mask = (self._seg == sid).numpy().astype(np.bool) - if mask.sum() > 0: - yield mask, sinfo - - -def _create_text_labels(classes, scores, class_names, is_crowd=None): - """ - Args: - classes (list[int] or None): - scores (list[float] or None): - class_names (list[str] or None): - is_crowd (list[bool] or None): - - Returns: - list[str] or None - """ - #class_names = CLASS_NAMES - labels = None - if classes is not None: - if class_names is not None and len(class_names) > 0: - labels = [class_names[i] for i in classes] - else: - labels = [str(i) for i in classes] - - if scores is not None: - if labels is None: - labels = ["{:.0f}%".format(s * 100) for s in scores] - else: - labels = ["{} {:.0f}%".format(l, s * 100) for l, s in zip(labels, scores)] - if labels is not None and is_crowd is not None: - labels = [l + ("|crowd" if crowd else "") for l, crowd in zip(labels, is_crowd)] - return labels - - -class VisImage: - def __init__(self, img, scale=1.0): - """ - Args: - img (ndarray): an RGB image of shape (H, W, 3) in range [0, 255]. - scale (float): scale the input image - """ - self.img = img - self.scale = scale - self.width, self.height = img.shape[1], img.shape[0] - self._setup_figure(img) - - def _setup_figure(self, img): - """ - Args: - Same as in :meth:`__init__()`. - - Returns: - fig (matplotlib.pyplot.figure): top level container for all the image plot elements. - ax (matplotlib.pyplot.Axes): contains figure elements and sets the coordinate system. - """ - fig = mplfigure.Figure(frameon=False) - self.dpi = fig.get_dpi() - # add a small 1e-2 to avoid precision lost due to matplotlib's truncation - # (https://github.com/matplotlib/matplotlib/issues/15363) - fig.set_size_inches( - (self.width * self.scale + 1e-2) / self.dpi, - (self.height * self.scale + 1e-2) / self.dpi, - ) - self.canvas = FigureCanvasAgg(fig) - # self.canvas = mpl.backends.backend_cairo.FigureCanvasCairo(fig) - ax = fig.add_axes([0.0, 0.0, 1.0, 1.0]) - ax.axis("off") - self.fig = fig - self.ax = ax - self.reset_image(img) - - def reset_image(self, img): - """ - Args: - img: same as in __init__ - """ - img = img.astype("uint8") - self.ax.imshow(img, extent=(0, self.width, self.height, 0), interpolation="nearest") - - def save(self, filepath): - """ - Args: - filepath (str): a string that contains the absolute path, including the file name, where - the visualized image will be saved. - """ - self.fig.savefig(filepath) - - def get_image(self): - """ - Returns: - ndarray: - the visualized image of shape (H, W, 3) (RGB) in uint8 type. - The shape is scaled w.r.t the input image using the given `scale` argument. - """ - canvas = self.canvas - s, (width, height) = canvas.print_to_buffer() - # buf = io.BytesIO() # works for cairo backend - # canvas.print_rgba(buf) - # width, height = self.width, self.height - # s = buf.getvalue() - - buffer = np.frombuffer(s, dtype="uint8") - - img_rgba = buffer.reshape(height, width, 4) - rgb, alpha = np.split(img_rgba, [3], axis=2) - return rgb.astype("uint8") - - -class Visualizer: - """ - Visualizer that draws data about detection/segmentation on images. - - It contains methods like `draw_{text,box,circle,line,binary_mask,polygon}` - that draw primitive objects to images, as well as high-level wrappers like - `draw_{instance_predictions,sem_seg,panoptic_seg_predictions,dataset_dict}` - that draw composite data in some pre-defined style. - - Note that the exact visualization style for the high-level wrappers are subject to change. - Style such as color, opacity, label contents, visibility of labels, or even the visibility - of objects themselves (e.g. when the object is too small) may change according - to different heuristics, as long as the results still look visually reasonable. - - To obtain a consistent style, you can implement custom drawing functions with the - abovementioned primitive methods instead. If you need more customized visualization - styles, you can process the data yourself following their format documented in - tutorials (:doc:`/tutorials/models`, :doc:`/tutorials/datasets`). This class does not - intend to satisfy everyone's preference on drawing styles. - - This visualizer focuses on high rendering quality rather than performance. It is not - designed to be used for real-time applications. - """ - - # TODO implement a fast, rasterized version using OpenCV - - def __init__(self, img_rgb, metadata=None, scale=1.0, instance_mode=ColorMode.IMAGE): - """ - Args: - img_rgb: a numpy array of shape (H, W, C), where H and W correspond to - the height and width of the image respectively. C is the number of - color channels. The image is required to be in RGB format since that - is a requirement of the Matplotlib library. The image is also expected - to be in the range [0, 255]. - metadata (Metadata): dataset metadata (e.g. class names and colors) - instance_mode (ColorMode): defines one of the pre-defined style for drawing - instances on an image. - """ - self.img = np.asarray(img_rgb).clip(0, 255).astype(np.uint8) - if metadata is None: - metadata = MetadataCatalog.get("__nonexist__") - self.metadata = metadata - self.output = VisImage(self.img, scale=scale) - self.cpu_device = torch.device("cpu") - - # too small texts are useless, therefore clamp to 9 - self._default_font_size = max( - np.sqrt(self.output.height * self.output.width) // 90, 10 // scale - ) - self._instance_mode = instance_mode - self.keypoint_threshold = _KEYPOINT_THRESHOLD - - def draw_instance_predictions(self, predictions): - """ - Draw instance-level prediction results on an image. - - Args: - predictions (Instances): the output of an instance detection/segmentation - model. Following fields will be used to draw: - "pred_boxes", "pred_classes", "scores", "pred_masks" (or "pred_masks_rle"). - - Returns: - output (VisImage): image object with visualizations. - """ - boxes = predictions.pred_boxes if predictions.has("pred_boxes") else None - scores = predictions.scores if predictions.has("scores") else None - classes = predictions.pred_classes.tolist() if predictions.has("pred_classes") else None - labels = _create_text_labels(classes, scores, self.metadata.get("thing_classes", None)) - keypoints = predictions.pred_keypoints if predictions.has("pred_keypoints") else None - - if predictions.has("pred_masks"): - masks = np.asarray(predictions.pred_masks) - masks = [GenericMask(x, self.output.height, self.output.width) for x in masks] - else: - masks = None - - if self._instance_mode == ColorMode.SEGMENTATION and self.metadata.get("thing_colors"): - colors = [ - self._jitter([x / 255 for x in self.metadata.thing_colors[c]]) for c in classes - ] - alpha = 0.8 - else: - colors = None - alpha = 0.5 - - if self._instance_mode == ColorMode.IMAGE_BW: - self.output.reset_image( - self._create_grayscale_image( - (predictions.pred_masks.any(dim=0) > 0).numpy() - if predictions.has("pred_masks") - else None - ) - ) - alpha = 0.3 - - self.overlay_instances( - masks=masks, - boxes=boxes, - labels=labels, - keypoints=keypoints, - assigned_colors=colors, - alpha=alpha, - ) - return self.output - - def draw_sem_seg(self, sem_seg, area_threshold=None, alpha=0.8): - """ - Draw semantic segmentation predictions/labels. - - Args: - sem_seg (Tensor or ndarray): the segmentation of shape (H, W). - Each value is the integer label of the pixel. - area_threshold (int): segments with less than `area_threshold` are not drawn. - alpha (float): the larger it is, the more opaque the segmentations are. - - Returns: - output (VisImage): image object with visualizations. - """ - if isinstance(sem_seg, torch.Tensor): - sem_seg = sem_seg.numpy() - labels, areas = np.unique(sem_seg, return_counts=True) - sorted_idxs = np.argsort(-areas).tolist() - labels = labels[sorted_idxs] - for label in filter(lambda l: l < len(self.metadata.stuff_classes), labels): - try: - mask_color = [x / 255 for x in self.metadata.stuff_colors[label]] - except (AttributeError, IndexError): - mask_color = None - - binary_mask = (sem_seg == label).astype(np.uint8) - text = self.metadata.stuff_classes[label] - self.draw_binary_mask( - binary_mask, - color=mask_color, - edge_color=_OFF_WHITE, - text=text, - alpha=alpha, - area_threshold=area_threshold, - ) - return self.output - - def draw_panoptic_seg(self, panoptic_seg, segments_info, area_threshold=None, alpha=0.7): - """ - Draw panoptic prediction annotations or results. - - Args: - panoptic_seg (Tensor): of shape (height, width) where the values are ids for each - segment. - segments_info (list[dict] or None): Describe each segment in `panoptic_seg`. - If it is a ``list[dict]``, each dict contains keys "id", "category_id". - If None, category id of each pixel is computed by - ``pixel // metadata.label_divisor``. - area_threshold (int): stuff segments with less than `area_threshold` are not drawn. - - Returns: - output (VisImage): image object with visualizations. - """ - pred = _PanopticPrediction(panoptic_seg, segments_info, self.metadata) - - if self._instance_mode == ColorMode.IMAGE_BW: - self.output.reset_image(self._create_grayscale_image(pred.non_empty_mask())) - - # draw mask for all semantic segments first i.e. "stuff" - for mask, sinfo in pred.semantic_masks(): - category_idx = sinfo["category_id"] - try: - mask_color = [x / 255 for x in self.metadata.stuff_colors[category_idx]] - except AttributeError: - mask_color = None - - text = self.metadata.stuff_classes[category_idx] - self.draw_binary_mask( - mask, - color=mask_color, - edge_color=_OFF_WHITE, - text=text, - alpha=alpha, - area_threshold=area_threshold, - ) - - # draw mask for all instances second - all_instances = list(pred.instance_masks()) - if len(all_instances) == 0: - return self.output - masks, sinfo = list(zip(*all_instances)) - category_ids = [x["category_id"] for x in sinfo] - - try: - scores = [x["score"] for x in sinfo] - except KeyError: - scores = None - labels = _create_text_labels( - category_ids, scores, self.metadata.thing_classes, [x.get("iscrowd", 0) for x in sinfo] - ) - - try: - colors = [ - self._jitter([x / 255 for x in self.metadata.thing_colors[c]]) for c in category_ids - ] - except AttributeError: - colors = None - self.overlay_instances(masks=masks, labels=labels, assigned_colors=colors, alpha=alpha) - - return self.output - - draw_panoptic_seg_predictions = draw_panoptic_seg # backward compatibility - - def draw_dataset_dict(self, dic): - """ - Draw annotations/segmentaions in Detectron2 Dataset format. - - Args: - dic (dict): annotation/segmentation data of one image, in Detectron2 Dataset format. - - Returns: - output (VisImage): image object with visualizations. - """ - annos = dic.get("annotations", None) - if annos: - if "segmentation" in annos[0]: - masks = [x["segmentation"] for x in annos] - else: - masks = None - if "keypoints" in annos[0]: - keypts = [x["keypoints"] for x in annos] - keypts = np.array(keypts).reshape(len(annos), -1, 3) - else: - keypts = None - - boxes = [ - BoxMode.convert(x["bbox"], x["bbox_mode"], BoxMode.XYXY_ABS) - if len(x["bbox"]) == 4 - else x["bbox"] - for x in annos - ] - - colors = None - category_ids = [x["category_id"] for x in annos] - if self._instance_mode == ColorMode.SEGMENTATION and self.metadata.get("thing_colors"): - colors = [ - self._jitter([x / 255 for x in self.metadata.thing_colors[c]]) - for c in category_ids - ] - names = self.metadata.get("thing_classes", None) - labels = _create_text_labels( - category_ids, - scores=None, - class_names=names, - is_crowd=[x.get("iscrowd", 0) for x in annos], - ) - self.overlay_instances( - labels=labels, boxes=boxes, masks=masks, keypoints=keypts, assigned_colors=colors - ) - - sem_seg = dic.get("sem_seg", None) - if sem_seg is None and "sem_seg_file_name" in dic: - with PathManager.open(dic["sem_seg_file_name"], "rb") as f: - sem_seg = Image.open(f) - sem_seg = np.asarray(sem_seg, dtype="uint8") - if sem_seg is not None: - self.draw_sem_seg(sem_seg, area_threshold=0, alpha=0.5) - - pan_seg = dic.get("pan_seg", None) - if pan_seg is None and "pan_seg_file_name" in dic: - with PathManager.open(dic["pan_seg_file_name"], "rb") as f: - pan_seg = Image.open(f) - pan_seg = np.asarray(pan_seg) - from panopticapi.utils import rgb2id - - pan_seg = rgb2id(pan_seg) - if pan_seg is not None: - segments_info = dic["segments_info"] - pan_seg = torch.tensor(pan_seg) - self.draw_panoptic_seg(pan_seg, segments_info, area_threshold=0, alpha=0.5) - return self.output - - def overlay_instances( - self, - *, - boxes=None, - labels=None, - masks=None, - keypoints=None, - assigned_colors=None, - alpha=0.5, - ): - """ - Args: - boxes (Boxes, RotatedBoxes or ndarray): either a :class:`Boxes`, - or an Nx4 numpy array of XYXY_ABS format for the N objects in a single image, - or a :class:`RotatedBoxes`, - or an Nx5 numpy array of (x_center, y_center, width, height, angle_degrees) format - for the N objects in a single image, - labels (list[str]): the text to be displayed for each instance. - masks (masks-like object): Supported types are: - - * :class:`detectron2.structures.PolygonMasks`, - :class:`detectron2.structures.BitMasks`. - * list[list[ndarray]]: contains the segmentation masks for all objects in one image. - The first level of the list corresponds to individual instances. The second - level to all the polygon that compose the instance, and the third level - to the polygon coordinates. The third level should have the format of - [x0, y0, x1, y1, ..., xn, yn] (n >= 3). - * list[ndarray]: each ndarray is a binary mask of shape (H, W). - * list[dict]: each dict is a COCO-style RLE. - keypoints (Keypoint or array like): an array-like object of shape (N, K, 3), - where the N is the number of instances and K is the number of keypoints. - The last dimension corresponds to (x, y, visibility or score). - assigned_colors (list[matplotlib.colors]): a list of colors, where each color - corresponds to each mask or box in the image. Refer to 'matplotlib.colors' - for full list of formats that the colors are accepted in. - - Returns: - output (VisImage): image object with visualizations. - """ - num_instances = 0 - if boxes is not None: - boxes = self._convert_boxes(boxes) - num_instances = len(boxes) - if masks is not None: - masks = self._convert_masks(masks) - if num_instances: - assert len(masks) == num_instances - else: - num_instances = len(masks) - if keypoints is not None: - if num_instances: - assert len(keypoints) == num_instances - else: - num_instances = len(keypoints) - keypoints = self._convert_keypoints(keypoints) - if labels is not None: - assert len(labels) == num_instances - if assigned_colors is None: - assigned_colors = [random_color(rgb=True, maximum=1) for _ in range(num_instances)] - if num_instances == 0: - return self.output - if boxes is not None and boxes.shape[1] == 5: - return self.overlay_rotated_instances( - boxes=boxes, labels=labels, assigned_colors=assigned_colors - ) - - # Display in largest to smallest order to reduce occlusion. - areas = None - if boxes is not None: - areas = np.prod(boxes[:, 2:] - boxes[:, :2], axis=1) - elif masks is not None: - areas = np.asarray([x.area() for x in masks]) - - if areas is not None: - sorted_idxs = np.argsort(-areas).tolist() - # Re-order overlapped instances in descending order. - boxes = boxes[sorted_idxs] if boxes is not None else None - labels = [labels[k] for k in sorted_idxs] if labels is not None else None - masks = [masks[idx] for idx in sorted_idxs] if masks is not None else None - assigned_colors = [assigned_colors[idx] for idx in sorted_idxs] - keypoints = keypoints[sorted_idxs] if keypoints is not None else None - - for i in range(num_instances): - color = assigned_colors[i] - if boxes is not None: - self.draw_box(boxes[i], edge_color=color) - - if masks is not None: - for segment in masks[i].polygons: - self.draw_polygon(segment.reshape(-1, 2), color, alpha=alpha) - - if labels is not None: - # first get a box - if boxes is not None: - x0, y0, x1, y1 = boxes[i] - text_pos = (x0, y0) # if drawing boxes, put text on the box corner. - horiz_align = "left" - elif masks is not None: - # skip small mask without polygon - if len(masks[i].polygons) == 0: - continue - - x0, y0, x1, y1 = masks[i].bbox() - - # draw text in the center (defined by median) when box is not drawn - # median is less sensitive to outliers. - text_pos = np.median(masks[i].mask.nonzero(), axis=1)[::-1] - horiz_align = "center" - else: - continue # drawing the box confidence for keypoints isn't very useful. - # for small objects, draw text at the side to avoid occlusion - instance_area = (y1 - y0) * (x1 - x0) - if ( - instance_area < _SMALL_OBJECT_AREA_THRESH * self.output.scale - or y1 - y0 < 40 * self.output.scale - ): - if y1 >= self.output.height - 5: - text_pos = (x1, y0) - else: - text_pos = (x0, y1) - - height_ratio = (y1 - y0) / np.sqrt(self.output.height * self.output.width) - lighter_color = self._change_color_brightness(color, brightness_factor=0.7) - font_size = ( - np.clip((height_ratio - 0.02) / 0.08 + 1, 1.2, 2) - * 0.5 - * self._default_font_size - ) - self.draw_text( - labels[i], - text_pos, - color=lighter_color, - horizontal_alignment=horiz_align, - font_size=font_size, - ) - - # draw keypoints - if keypoints is not None: - for keypoints_per_instance in keypoints: - self.draw_and_connect_keypoints(keypoints_per_instance) - - return self.output - - def overlay_rotated_instances(self, boxes=None, labels=None, assigned_colors=None): - """ - Args: - boxes (ndarray): an Nx5 numpy array of - (x_center, y_center, width, height, angle_degrees) format - for the N objects in a single image. - labels (list[str]): the text to be displayed for each instance. - assigned_colors (list[matplotlib.colors]): a list of colors, where each color - corresponds to each mask or box in the image. Refer to 'matplotlib.colors' - for full list of formats that the colors are accepted in. - - Returns: - output (VisImage): image object with visualizations. - """ - num_instances = len(boxes) - - if assigned_colors is None: - assigned_colors = [random_color(rgb=True, maximum=1) for _ in range(num_instances)] - if num_instances == 0: - return self.output - - # Display in largest to smallest order to reduce occlusion. - if boxes is not None: - areas = boxes[:, 2] * boxes[:, 3] - - sorted_idxs = np.argsort(-areas).tolist() - # Re-order overlapped instances in descending order. - boxes = boxes[sorted_idxs] - labels = [labels[k] for k in sorted_idxs] if labels is not None else None - colors = [assigned_colors[idx] for idx in sorted_idxs] - - for i in range(num_instances): - self.draw_rotated_box_with_label( - boxes[i], edge_color=colors[i], label=labels[i] if labels is not None else None - ) - - return self.output - - def draw_and_connect_keypoints(self, keypoints): - """ - Draws keypoints of an instance and follows the rules for keypoint connections - to draw lines between appropriate keypoints. This follows color heuristics for - line color. - - Args: - keypoints (Tensor): a tensor of shape (K, 3), where K is the number of keypoints - and the last dimension corresponds to (x, y, probability). - - Returns: - output (VisImage): image object with visualizations. - """ - visible = {} - keypoint_names = self.metadata.get("keypoint_names") - for idx, keypoint in enumerate(keypoints): - # draw keypoint - x, y, prob = keypoint - if prob > self.keypoint_threshold: - self.draw_circle((x, y), color=_RED) - if keypoint_names: - keypoint_name = keypoint_names[idx] - visible[keypoint_name] = (x, y) - - if self.metadata.get("keypoint_connection_rules"): - for kp0, kp1, color in self.metadata.keypoint_connection_rules: - if kp0 in visible and kp1 in visible: - x0, y0 = visible[kp0] - x1, y1 = visible[kp1] - color = tuple(x / 255.0 for x in color) - self.draw_line([x0, x1], [y0, y1], color=color) - - # draw lines from nose to mid-shoulder and mid-shoulder to mid-hip - # Note that this strategy is specific to person keypoints. - # For other keypoints, it should just do nothing - try: - ls_x, ls_y = visible["left_shoulder"] - rs_x, rs_y = visible["right_shoulder"] - mid_shoulder_x, mid_shoulder_y = (ls_x + rs_x) / 2, (ls_y + rs_y) / 2 - except KeyError: - pass - else: - # draw line from nose to mid-shoulder - nose_x, nose_y = visible.get("nose", (None, None)) - if nose_x is not None: - self.draw_line([nose_x, mid_shoulder_x], [nose_y, mid_shoulder_y], color=_RED) - - try: - # draw line from mid-shoulder to mid-hip - lh_x, lh_y = visible["left_hip"] - rh_x, rh_y = visible["right_hip"] - except KeyError: - pass - else: - mid_hip_x, mid_hip_y = (lh_x + rh_x) / 2, (lh_y + rh_y) / 2 - self.draw_line([mid_hip_x, mid_shoulder_x], [mid_hip_y, mid_shoulder_y], color=_RED) - return self.output - - """ - Primitive drawing functions: - """ - - def draw_text( - self, - text, - position, - *, - font_size=None, - color="g", - horizontal_alignment="center", - rotation=0, - ): - """ - Args: - text (str): class label - position (tuple): a tuple of the x and y coordinates to place text on image. - font_size (int, optional): font of the text. If not provided, a font size - proportional to the image width is calculated and used. - color: color of the text. Refer to `matplotlib.colors` for full list - of formats that are accepted. - horizontal_alignment (str): see `matplotlib.text.Text` - rotation: rotation angle in degrees CCW - - Returns: - output (VisImage): image object with text drawn. - """ - if not font_size: - font_size = self._default_font_size - - # since the text background is dark, we don't want the text to be dark - color = np.maximum(list(mplc.to_rgb(color)), 0.2) - color[np.argmax(color)] = max(0.8, np.max(color)) - - x, y = position - self.output.ax.text( - x, - y, - text, - size=font_size * self.output.scale, - family="sans-serif", - bbox={"facecolor": "black", "alpha": 0.8, "pad": 0.7, "edgecolor": "none"}, - verticalalignment="top", - horizontalalignment=horizontal_alignment, - color=color, - zorder=10, - rotation=rotation, - ) - return self.output - - def draw_box(self, box_coord, alpha=0.5, edge_color="g", line_style="-"): - """ - Args: - box_coord (tuple): a tuple containing x0, y0, x1, y1 coordinates, where x0 and y0 - are the coordinates of the image's top left corner. x1 and y1 are the - coordinates of the image's bottom right corner. - alpha (float): blending efficient. Smaller values lead to more transparent masks. - edge_color: color of the outline of the box. Refer to `matplotlib.colors` - for full list of formats that are accepted. - line_style (string): the string to use to create the outline of the boxes. - - Returns: - output (VisImage): image object with box drawn. - """ - x0, y0, x1, y1 = box_coord - width = x1 - x0 - height = y1 - y0 - - linewidth = max(self._default_font_size / 4, 1) - - self.output.ax.add_patch( - mpl.patches.Rectangle( - (x0, y0), - width, - height, - fill=False, - edgecolor=edge_color, - linewidth=linewidth * self.output.scale, - alpha=alpha, - linestyle=line_style, - ) - ) - return self.output - - def draw_rotated_box_with_label( - self, rotated_box, alpha=0.5, edge_color="g", line_style="-", label=None - ): - """ - Draw a rotated box with label on its top-left corner. - - Args: - rotated_box (tuple): a tuple containing (cnt_x, cnt_y, w, h, angle), - where cnt_x and cnt_y are the center coordinates of the box. - w and h are the width and height of the box. angle represents how - many degrees the box is rotated CCW with regard to the 0-degree box. - alpha (float): blending efficient. Smaller values lead to more transparent masks. - edge_color: color of the outline of the box. Refer to `matplotlib.colors` - for full list of formats that are accepted. - line_style (string): the string to use to create the outline of the boxes. - label (string): label for rotated box. It will not be rendered when set to None. - - Returns: - output (VisImage): image object with box drawn. - """ - cnt_x, cnt_y, w, h, angle = rotated_box - area = w * h - # use thinner lines when the box is small - linewidth = self._default_font_size / ( - 6 if area < _SMALL_OBJECT_AREA_THRESH * self.output.scale else 3 - ) - - theta = angle * math.pi / 180.0 - c = math.cos(theta) - s = math.sin(theta) - rect = [(-w / 2, h / 2), (-w / 2, -h / 2), (w / 2, -h / 2), (w / 2, h / 2)] - # x: left->right ; y: top->down - rotated_rect = [(s * yy + c * xx + cnt_x, c * yy - s * xx + cnt_y) for (xx, yy) in rect] - for k in range(4): - j = (k + 1) % 4 - self.draw_line( - [rotated_rect[k][0], rotated_rect[j][0]], - [rotated_rect[k][1], rotated_rect[j][1]], - color=edge_color, - linestyle="--" if k == 1 else line_style, - linewidth=linewidth, - ) - - if label is not None: - text_pos = rotated_rect[1] # topleft corner - - height_ratio = h / np.sqrt(self.output.height * self.output.width) - label_color = self._change_color_brightness(edge_color, brightness_factor=0.7) - font_size = ( - np.clip((height_ratio - 0.02) / 0.08 + 1, 1.2, 2) * 0.5 * self._default_font_size - ) - self.draw_text(label, text_pos, color=label_color, font_size=font_size, rotation=angle) - - return self.output - - def draw_circle(self, circle_coord, color, radius=3): - """ - Args: - circle_coord (list(int) or tuple(int)): contains the x and y coordinates - of the center of the circle. - color: color of the polygon. Refer to `matplotlib.colors` for a full list of - formats that are accepted. - radius (int): radius of the circle. - - Returns: - output (VisImage): image object with box drawn. - """ - x, y = circle_coord - self.output.ax.add_patch( - mpl.patches.Circle(circle_coord, radius=radius, fill=True, color=color) - ) - return self.output - - def draw_line(self, x_data, y_data, color, linestyle="-", linewidth=None): - """ - Args: - x_data (list[int]): a list containing x values of all the points being drawn. - Length of list should match the length of y_data. - y_data (list[int]): a list containing y values of all the points being drawn. - Length of list should match the length of x_data. - color: color of the line. Refer to `matplotlib.colors` for a full list of - formats that are accepted. - linestyle: style of the line. Refer to `matplotlib.lines.Line2D` - for a full list of formats that are accepted. - linewidth (float or None): width of the line. When it's None, - a default value will be computed and used. - - Returns: - output (VisImage): image object with line drawn. - """ - if linewidth is None: - linewidth = self._default_font_size / 3 - linewidth = max(linewidth, 1) - self.output.ax.add_line( - mpl.lines.Line2D( - x_data, - y_data, - linewidth=linewidth * self.output.scale, - color=color, - linestyle=linestyle, - ) - ) - return self.output - - def draw_binary_mask( - self, binary_mask, color=None, *, edge_color=None, text=None, alpha=0.5, area_threshold=0 - ): - """ - Args: - binary_mask (ndarray): numpy array of shape (H, W), where H is the image height and - W is the image width. Each value in the array is either a 0 or 1 value of uint8 - type. - color: color of the mask. Refer to `matplotlib.colors` for a full list of - formats that are accepted. If None, will pick a random color. - edge_color: color of the polygon edges. Refer to `matplotlib.colors` for a - full list of formats that are accepted. - text (str): if None, will be drawn in the object's center of mass. - alpha (float): blending efficient. Smaller values lead to more transparent masks. - area_threshold (float): a connected component small than this will not be shown. - - Returns: - output (VisImage): image object with mask drawn. - """ - if color is None: - color = random_color(rgb=True, maximum=1) - color = mplc.to_rgb(color) - - has_valid_segment = False - binary_mask = binary_mask.astype("uint8") # opencv needs uint8 - mask = GenericMask(binary_mask, self.output.height, self.output.width) - shape2d = (binary_mask.shape[0], binary_mask.shape[1]) - - if not mask.has_holes: - # draw polygons for regular masks - for segment in mask.polygons: - area = mask_util.area(mask_util.frPyObjects([segment], shape2d[0], shape2d[1])) - if area < (area_threshold or 0): - continue - has_valid_segment = True - segment = segment.reshape(-1, 2) - self.draw_polygon(segment, color=color, edge_color=edge_color, alpha=alpha) - else: - # TODO: Use Path/PathPatch to draw vector graphics: - # https://stackoverflow.com/questions/8919719/how-to-plot-a-complex-polygon - rgba = np.zeros(shape2d + (4,), dtype="float32") - rgba[:, :, :3] = color - rgba[:, :, 3] = (mask.mask == 1).astype("float32") * alpha - has_valid_segment = True - self.output.ax.imshow(rgba, extent=(0, self.output.width, self.output.height, 0)) - - if text is not None and has_valid_segment: - # TODO sometimes drawn on wrong objects. the heuristics here can improve. - lighter_color = self._change_color_brightness(color, brightness_factor=0.7) - _num_cc, cc_labels, stats, centroids = cv2.connectedComponentsWithStats(binary_mask, 8) - largest_component_id = np.argmax(stats[1:, -1]) + 1 - - # draw text on the largest component, as well as other very large components. - for cid in range(1, _num_cc): - if cid == largest_component_id or stats[cid, -1] > _LARGE_MASK_AREA_THRESH: - # median is more stable than centroid - # center = centroids[largest_component_id] - center = np.median((cc_labels == cid).nonzero(), axis=1)[::-1] - self.draw_text(text, center, color=lighter_color) - return self.output - - def draw_polygon(self, segment, color, edge_color=None, alpha=0.5): - """ - Args: - segment: numpy array of shape Nx2, containing all the points in the polygon. - color: color of the polygon. Refer to `matplotlib.colors` for a full list of - formats that are accepted. - edge_color: color of the polygon edges. Refer to `matplotlib.colors` for a - full list of formats that are accepted. If not provided, a darker shade - of the polygon color will be used instead. - alpha (float): blending efficient. Smaller values lead to more transparent masks. - - Returns: - output (VisImage): image object with polygon drawn. - """ - if edge_color is None: - # make edge color darker than the polygon color - if alpha > 0.8: - edge_color = self._change_color_brightness(color, brightness_factor=-0.7) - else: - edge_color = color - edge_color = mplc.to_rgb(edge_color) + (1,) - - polygon = mpl.patches.Polygon( - segment, - fill=True, - facecolor=mplc.to_rgb(color) + (alpha,), - edgecolor=edge_color, - linewidth=max(self._default_font_size // 15 * self.output.scale, 1), - ) - self.output.ax.add_patch(polygon) - return self.output - - """ - Internal methods: - """ - - def _jitter(self, color): - """ - Randomly modifies given color to produce a slightly different color than the color given. - - Args: - color (tuple[double]): a tuple of 3 elements, containing the RGB values of the color - picked. The values in the list are in the [0.0, 1.0] range. - - Returns: - jittered_color (tuple[double]): a tuple of 3 elements, containing the RGB values of the - color after being jittered. The values in the list are in the [0.0, 1.0] range. - """ - color = mplc.to_rgb(color) - vec = np.random.rand(3) - # better to do it in another color space - vec = vec / np.linalg.norm(vec) * 0.5 - res = np.clip(vec + color, 0, 1) - return tuple(res) - - def _create_grayscale_image(self, mask=None): - """ - Create a grayscale version of the original image. - The colors in masked area, if given, will be kept. - """ - img_bw = self.img.astype("f4").mean(axis=2) - img_bw = np.stack([img_bw] * 3, axis=2) - if mask is not None: - img_bw[mask] = self.img[mask] - return img_bw - - def _change_color_brightness(self, color, brightness_factor): - """ - Depending on the brightness_factor, gives a lighter or darker color i.e. a color with - less or more saturation than the original color. - - Args: - color: color of the polygon. Refer to `matplotlib.colors` for a full list of - formats that are accepted. - brightness_factor (float): a value in [-1.0, 1.0] range. A lightness factor of - 0 will correspond to no change, a factor in [-1.0, 0) range will result in - a darker color and a factor in (0, 1.0] range will result in a lighter color. - - Returns: - modified_color (tuple[double]): a tuple containing the RGB values of the - modified color. Each value in the tuple is in the [0.0, 1.0] range. - """ - assert brightness_factor >= -1.0 and brightness_factor <= 1.0 - color = mplc.to_rgb(color) - polygon_color = colorsys.rgb_to_hls(*mplc.to_rgb(color)) - modified_lightness = polygon_color[1] + (brightness_factor * polygon_color[1]) - modified_lightness = 0.0 if modified_lightness < 0.0 else modified_lightness - modified_lightness = 1.0 if modified_lightness > 1.0 else modified_lightness - modified_color = colorsys.hls_to_rgb(polygon_color[0], modified_lightness, polygon_color[2]) - return modified_color - - def _convert_boxes(self, boxes): - """ - Convert different format of boxes to an NxB array, where B = 4 or 5 is the box dimension. - """ - if isinstance(boxes, Boxes) or isinstance(boxes, RotatedBoxes): - return boxes.tensor.detach().numpy() - else: - return np.asarray(boxes) - - def _convert_masks(self, masks_or_polygons): - """ - Convert different format of masks or polygons to a tuple of masks and polygons. - - Returns: - list[GenericMask]: - """ - - m = masks_or_polygons - if isinstance(m, PolygonMasks): - m = m.polygons - if isinstance(m, BitMasks): - m = m.tensor.numpy() - if isinstance(m, torch.Tensor): - m = m.numpy() - ret = [] - for x in m: - if isinstance(x, GenericMask): - ret.append(x) - else: - ret.append(GenericMask(x, self.output.height, self.output.width)) - return ret - - def _convert_keypoints(self, keypoints): - if isinstance(keypoints, Keypoints): - keypoints = keypoints.tensor - keypoints = np.asarray(keypoints) - return keypoints - - def get_output(self): - """ - Returns: - output (VisImage): the image output containing the visualizations added - to the image. - """ - return self.output diff --git a/magic_pdf/model/pek_sub_modules/post_process.py b/magic_pdf/model/pek_sub_modules/post_process.py deleted file mode 100644 index aa050b612..000000000 --- a/magic_pdf/model/pek_sub_modules/post_process.py +++ /dev/null @@ -1,36 +0,0 @@ -import re - -def layout_rm_equation(layout_res): - rm_idxs = [] - for idx, ele in enumerate(layout_res['layout_dets']): - if ele['category_id'] == 10: - rm_idxs.append(idx) - - for idx in rm_idxs[::-1]: - del layout_res['layout_dets'][idx] - return layout_res - - -def get_croped_image(image_pil, bbox): - x_min, y_min, x_max, y_max = bbox - croped_img = image_pil.crop((x_min, y_min, x_max, y_max)) - return croped_img - - -def latex_rm_whitespace(s: str): - """Remove unnecessary whitespace from LaTeX code. - """ - text_reg = r'(\\(operatorname|mathrm|text|mathbf)\s?\*? {.*?})' - letter = '[a-zA-Z]' - noletter = '[\W_^\d]' - names = [x[0].replace(' ', '') for x in re.findall(text_reg, s)] - s = re.sub(text_reg, lambda match: str(names.pop(0)), s) - news = s - while True: - s = news - news = re.sub(r'(?!\\ )(%s)\s+?(%s)' % (noletter, noletter), r'\1\2', s) - news = re.sub(r'(?!\\ )(%s)\s+?(%s)' % (noletter, letter), r'\1\2', news) - news = re.sub(r'(%s)\s+?(%s)' % (letter, noletter), r'\1\2', news) - if news == s: - break - return s \ No newline at end of file diff --git a/magic_pdf/model/pek_sub_modules/self_modify.py b/magic_pdf/model/pek_sub_modules/self_modify.py deleted file mode 100644 index c39c1a9cd..000000000 --- a/magic_pdf/model/pek_sub_modules/self_modify.py +++ /dev/null @@ -1,388 +0,0 @@ -import time -import copy -import base64 -import cv2 -import numpy as np -from io import BytesIO -from PIL import Image - -from paddleocr import PaddleOCR -from paddleocr.ppocr.utils.logging import get_logger -from paddleocr.ppocr.utils.utility import check_and_read, alpha_to_color, binarize_img -from paddleocr.tools.infer.utility import draw_ocr_box_txt, get_rotate_crop_image, get_minarea_rect_crop - -from magic_pdf.libs.boxbase import __is_overlaps_y_exceeds_threshold -from magic_pdf.pre_proc.ocr_dict_merge import merge_spans_to_line - -logger = get_logger() - - -def img_decode(content: bytes): - np_arr = np.frombuffer(content, dtype=np.uint8) - return cv2.imdecode(np_arr, cv2.IMREAD_UNCHANGED) - - -def check_img(img): - if isinstance(img, bytes): - img = img_decode(img) - if isinstance(img, str): - image_file = img - img, flag_gif, flag_pdf = check_and_read(image_file) - if not flag_gif and not flag_pdf: - with open(image_file, 'rb') as f: - img_str = f.read() - img = img_decode(img_str) - if img is None: - try: - buf = BytesIO() - image = BytesIO(img_str) - im = Image.open(image) - rgb = im.convert('RGB') - rgb.save(buf, 'jpeg') - buf.seek(0) - image_bytes = buf.read() - data_base64 = str(base64.b64encode(image_bytes), - encoding="utf-8") - image_decode = base64.b64decode(data_base64) - img_array = np.frombuffer(image_decode, np.uint8) - img = cv2.imdecode(img_array, cv2.IMREAD_COLOR) - except: - logger.error("error in loading image:{}".format(image_file)) - return None - if img is None: - logger.error("error in loading image:{}".format(image_file)) - return None - if isinstance(img, np.ndarray) and len(img.shape) == 2: - img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) - - return img - - -def sorted_boxes(dt_boxes): - """ - Sort text boxes in order from top to bottom, left to right - args: - dt_boxes(array):detected text boxes with shape [4, 2] - return: - sorted boxes(array) with shape [4, 2] - """ - num_boxes = dt_boxes.shape[0] - sorted_boxes = sorted(dt_boxes, key=lambda x: (x[0][1], x[0][0])) - _boxes = list(sorted_boxes) - - for i in range(num_boxes - 1): - for j in range(i, -1, -1): - if abs(_boxes[j + 1][0][1] - _boxes[j][0][1]) < 10 and \ - (_boxes[j + 1][0][0] < _boxes[j][0][0]): - tmp = _boxes[j] - _boxes[j] = _boxes[j + 1] - _boxes[j + 1] = tmp - else: - break - return _boxes - - -def bbox_to_points(bbox): - """ 将bbox格式转换为四个顶点的数组 """ - x0, y0, x1, y1 = bbox - return np.array([[x0, y0], [x1, y0], [x1, y1], [x0, y1]]).astype('float32') - - -def points_to_bbox(points): - """ 将四个顶点的数组转换为bbox格式 """ - x0, y0 = points[0] - x1, _ = points[1] - _, y1 = points[2] - return [x0, y0, x1, y1] - - -def merge_intervals(intervals): - # Sort the intervals based on the start value - intervals.sort(key=lambda x: x[0]) - - merged = [] - for interval in intervals: - # If the list of merged intervals is empty or if the current - # interval does not overlap with the previous, simply append it. - if not merged or merged[-1][1] < interval[0]: - merged.append(interval) - else: - # Otherwise, there is overlap, so we merge the current and previous intervals. - merged[-1][1] = max(merged[-1][1], interval[1]) - - return merged - - -def remove_intervals(original, masks): - # Merge all mask intervals - merged_masks = merge_intervals(masks) - - result = [] - original_start, original_end = original - - for mask in merged_masks: - mask_start, mask_end = mask - - # If the mask starts after the original range, ignore it - if mask_start > original_end: - continue - - # If the mask ends before the original range starts, ignore it - if mask_end < original_start: - continue - - # Remove the masked part from the original range - if original_start < mask_start: - result.append([original_start, mask_start - 1]) - - original_start = max(mask_end + 1, original_start) - - # Add the remaining part of the original range, if any - if original_start <= original_end: - result.append([original_start, original_end]) - - return result - - -def update_det_boxes(dt_boxes, mfd_res): - new_dt_boxes = [] - for text_box in dt_boxes: - text_bbox = points_to_bbox(text_box) - masks_list = [] - for mf_box in mfd_res: - mf_bbox = mf_box['bbox'] - if __is_overlaps_y_exceeds_threshold(text_bbox, mf_bbox): - masks_list.append([mf_bbox[0], mf_bbox[2]]) - text_x_range = [text_bbox[0], text_bbox[2]] - text_remove_mask_range = remove_intervals(text_x_range, masks_list) - temp_dt_box = [] - for text_remove_mask in text_remove_mask_range: - temp_dt_box.append(bbox_to_points([text_remove_mask[0], text_bbox[1], text_remove_mask[1], text_bbox[3]])) - if len(temp_dt_box) > 0: - new_dt_boxes.extend(temp_dt_box) - return new_dt_boxes - - -def merge_overlapping_spans(spans): - """ - Merges overlapping spans on the same line. - - :param spans: A list of span coordinates [(x1, y1, x2, y2), ...] - :return: A list of merged spans - """ - # Return an empty list if the input spans list is empty - if not spans: - return [] - - # Sort spans by their starting x-coordinate - spans.sort(key=lambda x: x[0]) - - # Initialize the list of merged spans - merged = [] - for span in spans: - # Unpack span coordinates - x1, y1, x2, y2 = span - # If the merged list is empty or there's no horizontal overlap, add the span directly - if not merged or merged[-1][2] < x1: - merged.append(span) - else: - # If there is horizontal overlap, merge the current span with the previous one - last_span = merged.pop() - # Update the merged span's top-left corner to the smaller (x1, y1) and bottom-right to the larger (x2, y2) - x1 = min(last_span[0], x1) - y1 = min(last_span[1], y1) - x2 = max(last_span[2], x2) - y2 = max(last_span[3], y2) - # Add the merged span back to the list - merged.append((x1, y1, x2, y2)) - - # Return the list of merged spans - return merged - - -def merge_det_boxes(dt_boxes): - """ - Merge detection boxes. - - This function takes a list of detected bounding boxes, each represented by four corner points. - The goal is to merge these bounding boxes into larger text regions. - - Parameters: - dt_boxes (list): A list containing multiple text detection boxes, where each box is defined by four corner points. - - Returns: - list: A list containing the merged text regions, where each region is represented by four corner points. - """ - # Convert the detection boxes into a dictionary format with bounding boxes and type - dt_boxes_dict_list = [] - for text_box in dt_boxes: - text_bbox = points_to_bbox(text_box) - text_box_dict = { - 'bbox': text_bbox, - 'type': 'text', - } - dt_boxes_dict_list.append(text_box_dict) - - # Merge adjacent text regions into lines - lines = merge_spans_to_line(dt_boxes_dict_list) - - # Initialize a new list for storing the merged text regions - new_dt_boxes = [] - for line in lines: - line_bbox_list = [] - for span in line: - line_bbox_list.append(span['bbox']) - - # Merge overlapping text regions within the same line - merged_spans = merge_overlapping_spans(line_bbox_list) - - # Convert the merged text regions back to point format and add them to the new detection box list - for span in merged_spans: - new_dt_boxes.append(bbox_to_points(span)) - - return new_dt_boxes - - -class ModifiedPaddleOCR(PaddleOCR): - def ocr(self, img, det=True, rec=True, cls=True, bin=False, inv=False, mfd_res=None, alpha_color=(255, 255, 255)): - """ - OCR with PaddleOCR - args: - img: img for OCR, support ndarray, img_path and list or ndarray - det: use text detection or not. If False, only rec will be exec. Default is True - rec: use text recognition or not. If False, only det will be exec. Default is True - cls: use angle classifier or not. Default is True. If True, the text with rotation of 180 degrees can be recognized. If no text is rotated by 180 degrees, use cls=False to get better performance. Text with rotation of 90 or 270 degrees can be recognized even if cls=False. - bin: binarize image to black and white. Default is False. - inv: invert image colors. Default is False. - alpha_color: set RGB color Tuple for transparent parts replacement. Default is pure white. - """ - assert isinstance(img, (np.ndarray, list, str, bytes)) - if isinstance(img, list) and det == True: - logger.error('When input a list of images, det must be false') - exit(0) - if cls == True and self.use_angle_cls == False: - pass - # logger.warning( - # 'Since the angle classifier is not initialized, it will not be used during the forward process' - # ) - - img = check_img(img) - # for infer pdf file - if isinstance(img, list): - if self.page_num > len(img) or self.page_num == 0: - self.page_num = len(img) - imgs = img[:self.page_num] - else: - imgs = [img] - - def preprocess_image(_image): - _image = alpha_to_color(_image, alpha_color) - if inv: - _image = cv2.bitwise_not(_image) - if bin: - _image = binarize_img(_image) - return _image - - if det and rec: - ocr_res = [] - for idx, img in enumerate(imgs): - img = preprocess_image(img) - dt_boxes, rec_res, _ = self.__call__(img, cls, mfd_res=mfd_res) - if not dt_boxes and not rec_res: - ocr_res.append(None) - continue - tmp_res = [[box.tolist(), res] - for box, res in zip(dt_boxes, rec_res)] - ocr_res.append(tmp_res) - return ocr_res - elif det and not rec: - ocr_res = [] - for idx, img in enumerate(imgs): - img = preprocess_image(img) - dt_boxes, elapse = self.text_detector(img) - if not dt_boxes: - ocr_res.append(None) - continue - tmp_res = [box.tolist() for box in dt_boxes] - ocr_res.append(tmp_res) - return ocr_res - else: - ocr_res = [] - cls_res = [] - for idx, img in enumerate(imgs): - if not isinstance(img, list): - img = preprocess_image(img) - img = [img] - if self.use_angle_cls and cls: - img, cls_res_tmp, elapse = self.text_classifier(img) - if not rec: - cls_res.append(cls_res_tmp) - rec_res, elapse = self.text_recognizer(img) - ocr_res.append(rec_res) - if not rec: - return cls_res - return ocr_res - - def __call__(self, img, cls=True, mfd_res=None): - time_dict = {'det': 0, 'rec': 0, 'cls': 0, 'all': 0} - - if img is None: - logger.debug("no valid image provided") - return None, None, time_dict - - start = time.time() - ori_im = img.copy() - dt_boxes, elapse = self.text_detector(img) - time_dict['det'] = elapse - - if dt_boxes is None: - logger.debug("no dt_boxes found, elapsed : {}".format(elapse)) - end = time.time() - time_dict['all'] = end - start - return None, None, time_dict - else: - logger.debug("dt_boxes num : {}, elapsed : {}".format( - len(dt_boxes), elapse)) - img_crop_list = [] - - dt_boxes = sorted_boxes(dt_boxes) - - dt_boxes = merge_det_boxes(dt_boxes) - - if mfd_res: - bef = time.time() - dt_boxes = update_det_boxes(dt_boxes, mfd_res) - aft = time.time() - logger.debug("split text box by formula, new dt_boxes num : {}, elapsed : {}".format( - len(dt_boxes), aft - bef)) - - for bno in range(len(dt_boxes)): - tmp_box = copy.deepcopy(dt_boxes[bno]) - if self.args.det_box_type == "quad": - img_crop = get_rotate_crop_image(ori_im, tmp_box) - else: - img_crop = get_minarea_rect_crop(ori_im, tmp_box) - img_crop_list.append(img_crop) - if self.use_angle_cls and cls: - img_crop_list, angle_list, elapse = self.text_classifier( - img_crop_list) - time_dict['cls'] = elapse - logger.debug("cls num : {}, elapsed : {}".format( - len(img_crop_list), elapse)) - - rec_res, elapse = self.text_recognizer(img_crop_list) - time_dict['rec'] = elapse - logger.debug("rec_res num : {}, elapsed : {}".format( - len(rec_res), elapse)) - if self.args.save_crop_res: - self.draw_crop_rec_res(self.args.crop_res_save_dir, img_crop_list, - rec_res) - filter_boxes, filter_rec_res = [], [] - for box, rec_result in zip(dt_boxes, rec_res): - text, score = rec_result - if score >= self.drop_score: - filter_boxes.append(box) - filter_rec_res.append(rec_result) - end = time.time() - time_dict['all'] = end - start - return filter_boxes, filter_rec_res, time_dict \ No newline at end of file diff --git a/magic_pdf/model/pek_sub_modules/structeqtable/StructTableModel.py b/magic_pdf/model/pek_sub_modules/structeqtable/StructTableModel.py deleted file mode 100644 index 2d1ce584f..000000000 --- a/magic_pdf/model/pek_sub_modules/structeqtable/StructTableModel.py +++ /dev/null @@ -1,21 +0,0 @@ -from struct_eqtable.model import StructTable -from pypandoc import convert_text -class StructTableModel: - def __init__(self, model_path, max_new_tokens=2048, max_time=400, device = 'cpu'): - # init - self.model_path = model_path - self.max_new_tokens = max_new_tokens # maximum output tokens length - self.max_time = max_time # timeout for processing in seconds - if device == 'cuda': - self.model = StructTable(self.model_path, self.max_new_tokens, self.max_time).cuda() - else: - self.model = StructTable(self.model_path, self.max_new_tokens, self.max_time) - - def image2latex(self, image) -> str: - table_latex = self.model.forward(image) - return table_latex - - def image2html(self, image) -> str: - table_latex = self.image2latex(image) - table_html = convert_text(table_latex, 'html', format='latex') - return table_html diff --git a/magic_pdf/model/pek_sub_modules/structeqtable/__init__.py b/magic_pdf/model/pek_sub_modules/structeqtable/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/model/ppTableModel.py b/magic_pdf/model/ppTableModel.py deleted file mode 100644 index 933f31a05..000000000 --- a/magic_pdf/model/ppTableModel.py +++ /dev/null @@ -1,67 +0,0 @@ -from paddleocr.ppstructure.table.predict_table import TableSystem -from paddleocr.ppstructure.utility import init_args -from magic_pdf.libs.Constants import * -import os -from PIL import Image -import numpy as np - - -class ppTableModel(object): - """ - This class is responsible for converting image of table into HTML format using a pre-trained model. - - Attributes: - - table_sys: An instance of TableSystem initialized with parsed arguments. - - Methods: - - __init__(config): Initializes the model with configuration parameters. - - img2html(image): Converts a PIL Image or NumPy array to HTML string. - - parse_args(**kwargs): Parses configuration arguments. - """ - - def __init__(self, config): - """ - Parameters: - - config (dict): Configuration dictionary containing model_dir and device. - """ - args = self.parse_args(**config) - self.table_sys = TableSystem(args) - - def img2html(self, image): - """ - Parameters: - - image (PIL.Image or np.ndarray): The image of the table to be converted. - - Return: - - HTML (str): A string representing the HTML structure with content of the table. - """ - if isinstance(image, Image.Image): - image = np.array(image) - pred_res, _ = self.table_sys(image) - pred_html = pred_res["html"] - res = '' + pred_html.replace("
", "").replace("
", - "") + "\n" - return res - - def parse_args(self, **kwargs): - parser = init_args() - model_dir = kwargs.get("model_dir") - table_model_dir = os.path.join(model_dir, TABLE_MASTER_DIR) - table_char_dict_path = os.path.join(model_dir, TABLE_MASTER_DICT) - det_model_dir = os.path.join(model_dir, DETECT_MODEL_DIR) - rec_model_dir = os.path.join(model_dir, REC_MODEL_DIR) - rec_char_dict_path = os.path.join(model_dir, REC_CHAR_DICT) - device = kwargs.get("device", "cpu") - use_gpu = True if device.startswith("cuda") else False - config = { - "use_gpu": use_gpu, - "table_max_len": kwargs.get("table_max_len", TABLE_MAX_LEN), - "table_algorithm": "TableMaster", - "table_model_dir": table_model_dir, - "table_char_dict_path": table_char_dict_path, - "det_model_dir": det_model_dir, - "rec_model_dir": rec_model_dir, - "rec_char_dict_path": rec_char_dict_path, - } - parser.set_defaults(**config) - return parser.parse_args([]) diff --git a/magic_pdf/model/pp_structure_v2.py b/magic_pdf/model/pp_structure_v2.py deleted file mode 100644 index 6fd081e8f..000000000 --- a/magic_pdf/model/pp_structure_v2.py +++ /dev/null @@ -1,90 +0,0 @@ -import random - -from loguru import logger - -try: - from paddleocr import PPStructure -except ImportError: - logger.error('paddleocr not installed, please install by "pip install magic-pdf[lite]"') - exit(1) - - -def region_to_bbox(region): - x0 = region[0][0] - y0 = region[0][1] - x1 = region[2][0] - y1 = region[2][1] - return [x0, y0, x1, y1] - - -class CustomPaddleModel: - def __init__(self, ocr: bool = False, show_log: bool = False, lang=None): - if lang is not None: - self.model = PPStructure(table=False, ocr=ocr, show_log=show_log, lang=lang) - else: - self.model = PPStructure(table=False, ocr=ocr, show_log=show_log) - - def __call__(self, img): - try: - import cv2 - except ImportError: - logger.error("opencv-python not installed, please install by pip.") - exit(1) - # 将RGB图片转换为BGR格式适配paddle - img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) - result = self.model(img) - spans = [] - for line in result: - line.pop("img") - """ - 为paddle输出适配type no. - title: 0 # 标题 - text: 1 # 文本 - header: 2 # abandon - footer: 2 # abandon - reference: 1 # 文本 or abandon - equation: 8 # 行间公式 block - equation: 14 # 行间公式 text - figure: 3 # 图片 - figure_caption: 4 # 图片描述 - table: 5 # 表格 - table_caption: 6 # 表格描述 - """ - if line["type"] == "title": - line["category_id"] = 0 - elif line["type"] in ["text", "reference"]: - line["category_id"] = 1 - elif line["type"] == "figure": - line["category_id"] = 3 - elif line["type"] == "figure_caption": - line["category_id"] = 4 - elif line["type"] == "table": - line["category_id"] = 5 - elif line["type"] == "table_caption": - line["category_id"] = 6 - elif line["type"] == "equation": - line["category_id"] = 8 - elif line["type"] in ["header", "footer"]: - line["category_id"] = 2 - else: - logger.warning(f"unknown type: {line['type']}") - - # 兼容不输出score的paddleocr版本 - if line.get("score") is None: - line["score"] = 0.5 + random.random() * 0.5 - - res = line.pop("res", None) - if res is not None and len(res) > 0: - for span in res: - new_span = { - "category_id": 15, - "bbox": region_to_bbox(span["text_region"]), - "score": span["confidence"], - "text": span["text"], - } - spans.append(new_span) - - if len(spans) > 0: - result.extend(spans) - - return result diff --git a/magic_pdf/model/v3/__init__.py b/magic_pdf/model/v3/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/model/v3/helpers.py b/magic_pdf/model/v3/helpers.py deleted file mode 100644 index dfe71a89c..000000000 --- a/magic_pdf/model/v3/helpers.py +++ /dev/null @@ -1,125 +0,0 @@ -from collections import defaultdict -from typing import List, Dict - -import torch -from transformers import LayoutLMv3ForTokenClassification - -MAX_LEN = 510 -CLS_TOKEN_ID = 0 -UNK_TOKEN_ID = 3 -EOS_TOKEN_ID = 2 - - -class DataCollator: - def __call__(self, features: List[dict]) -> Dict[str, torch.Tensor]: - bbox = [] - labels = [] - input_ids = [] - attention_mask = [] - - # clip bbox and labels to max length, build input_ids and attention_mask - for feature in features: - _bbox = feature["source_boxes"] - if len(_bbox) > MAX_LEN: - _bbox = _bbox[:MAX_LEN] - _labels = feature["target_index"] - if len(_labels) > MAX_LEN: - _labels = _labels[:MAX_LEN] - _input_ids = [UNK_TOKEN_ID] * len(_bbox) - _attention_mask = [1] * len(_bbox) - assert len(_bbox) == len(_labels) == len(_input_ids) == len(_attention_mask) - bbox.append(_bbox) - labels.append(_labels) - input_ids.append(_input_ids) - attention_mask.append(_attention_mask) - - # add CLS and EOS tokens - for i in range(len(bbox)): - bbox[i] = [[0, 0, 0, 0]] + bbox[i] + [[0, 0, 0, 0]] - labels[i] = [-100] + labels[i] + [-100] - input_ids[i] = [CLS_TOKEN_ID] + input_ids[i] + [EOS_TOKEN_ID] - attention_mask[i] = [1] + attention_mask[i] + [1] - - # padding to max length - max_len = max(len(x) for x in bbox) - for i in range(len(bbox)): - bbox[i] = bbox[i] + [[0, 0, 0, 0]] * (max_len - len(bbox[i])) - labels[i] = labels[i] + [-100] * (max_len - len(labels[i])) - input_ids[i] = input_ids[i] + [EOS_TOKEN_ID] * (max_len - len(input_ids[i])) - attention_mask[i] = attention_mask[i] + [0] * ( - max_len - len(attention_mask[i]) - ) - - ret = { - "bbox": torch.tensor(bbox), - "attention_mask": torch.tensor(attention_mask), - "labels": torch.tensor(labels), - "input_ids": torch.tensor(input_ids), - } - # set label > MAX_LEN to -100, because original labels may be > MAX_LEN - ret["labels"][ret["labels"] > MAX_LEN] = -100 - # set label > 0 to label-1, because original labels are 1-indexed - ret["labels"][ret["labels"] > 0] -= 1 - return ret - - -def boxes2inputs(boxes: List[List[int]]) -> Dict[str, torch.Tensor]: - bbox = [[0, 0, 0, 0]] + boxes + [[0, 0, 0, 0]] - input_ids = [CLS_TOKEN_ID] + [UNK_TOKEN_ID] * len(boxes) + [EOS_TOKEN_ID] - attention_mask = [1] + [1] * len(boxes) + [1] - return { - "bbox": torch.tensor([bbox]), - "attention_mask": torch.tensor([attention_mask]), - "input_ids": torch.tensor([input_ids]), - } - - -def prepare_inputs( - inputs: Dict[str, torch.Tensor], model: LayoutLMv3ForTokenClassification -) -> Dict[str, torch.Tensor]: - ret = {} - for k, v in inputs.items(): - v = v.to(model.device) - if torch.is_floating_point(v): - v = v.to(model.dtype) - ret[k] = v - return ret - - -def parse_logits(logits: torch.Tensor, length: int) -> List[int]: - """ - parse logits to orders - - :param logits: logits from model - :param length: input length - :return: orders - """ - logits = logits[1 : length + 1, :length] - orders = logits.argsort(descending=False).tolist() - ret = [o.pop() for o in orders] - while True: - order_to_idxes = defaultdict(list) - for idx, order in enumerate(ret): - order_to_idxes[order].append(idx) - # filter idxes len > 1 - order_to_idxes = {k: v for k, v in order_to_idxes.items() if len(v) > 1} - if not order_to_idxes: - break - # filter - for order, idxes in order_to_idxes.items(): - # find original logits of idxes - idxes_to_logit = {} - for idx in idxes: - idxes_to_logit[idx] = logits[idx, order] - idxes_to_logit = sorted( - idxes_to_logit.items(), key=lambda x: x[1], reverse=True - ) - # keep the highest logit as order, set others to next candidate - for idx, _ in idxes_to_logit[1:]: - ret[idx] = orders[idx].pop() - - return ret - - -def check_duplicate(a: List[int]) -> bool: - return len(a) != len(set(a)) diff --git a/magic_pdf/para/__init__.py b/magic_pdf/para/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/para/block_continuation_processor.py b/magic_pdf/para/block_continuation_processor.py deleted file mode 100644 index b4aa59d77..000000000 --- a/magic_pdf/para/block_continuation_processor.py +++ /dev/null @@ -1,562 +0,0 @@ -import os -import unicodedata - -from magic_pdf.para.commons import * - - -if sys.version_info[0] >= 3: - sys.stdout.reconfigure(encoding="utf-8") # type: ignore - - -class BlockContinuationProcessor: - """ - This class is used to process the blocks to detect block continuations. - """ - - def __init__(self) -> None: - pass - - def __is_similar_font_type(self, font_type1, font_type2, prefix_length_ratio=0.3): - """ - This function checks if the two font types are similar. - Definition of similar font types: the two font types have a common prefix, - and the length of the common prefix is at least a certain ratio of the length of the shorter font type. - - Parameters - ---------- - font_type1 : str - font type 1 - font_type2 : str - font type 2 - prefix_length_ratio : float - minimum ratio of the common prefix length to the length of the shorter font type - - Returns - ------- - bool - True if the two font types are similar, False otherwise. - """ - - if isinstance(font_type1, list): - font_type1 = font_type1[0] if font_type1 else "" - if isinstance(font_type2, list): - font_type2 = font_type2[0] if font_type2 else "" - - if font_type1 == font_type2: - return True - - # Find the length of the common prefix - common_prefix_length = len(os.path.commonprefix([font_type1, font_type2])) - - # Calculate the minimum prefix length based on the ratio - min_prefix_length = int(min(len(font_type1), len(font_type2)) * prefix_length_ratio) - - return common_prefix_length >= min_prefix_length - - def __is_same_block_font(self, block1, block2): - """ - This function compares the font of block1 and block2 - - Parameters - ---------- - block1 : dict - block1 - block2 : dict - block2 - - Returns - ------- - is_same : bool - True if block1 and block2 have the same font, else False - """ - block_1_font_type = safe_get(block1, "block_font_type", "") - block_1_font_size = safe_get(block1, "block_font_size", 0) - block_1_avg_char_width = safe_get(block1, "avg_char_width", 0) - - block_2_font_type = safe_get(block2, "block_font_type", "") - block_2_font_size = safe_get(block2, "block_font_size", 0) - block_2_avg_char_width = safe_get(block2, "avg_char_width", 0) - - if isinstance(block_1_font_size, list): - block_1_font_size = block_1_font_size[0] if block_1_font_size else 0 - if isinstance(block_2_font_size, list): - block_2_font_size = block_2_font_size[0] if block_2_font_size else 0 - - block_1_text = safe_get(block1, "text", "") - block_2_text = safe_get(block2, "text", "") - - if block_1_avg_char_width == 0 or block_2_avg_char_width == 0: - return False - - if not block_1_text or not block_2_text: - return False - else: - text_len_ratio = len(block_2_text) / len(block_1_text) - if text_len_ratio < 0.2: - avg_char_width_condition = ( - abs(block_1_avg_char_width - block_2_avg_char_width) / min(block_1_avg_char_width, block_2_avg_char_width) - < 0.5 - ) - else: - avg_char_width_condition = ( - abs(block_1_avg_char_width - block_2_avg_char_width) / min(block_1_avg_char_width, block_2_avg_char_width) - < 0.2 - ) - - block_font_size_condtion = abs(block_1_font_size - block_2_font_size) < 1 - - return ( - self.__is_similar_font_type(block_1_font_type, block_2_font_type) - and avg_char_width_condition - and block_font_size_condtion - ) - - def _is_alphabet_char(self, char): - if (char >= "\u0041" and char <= "\u005a") or (char >= "\u0061" and char <= "\u007a"): - return True - else: - return False - - def _is_chinese_char(self, char): - if char >= "\u4e00" and char <= "\u9fa5": - return True - else: - return False - - def _is_other_letter_char(self, char): - try: - cat = unicodedata.category(char) - if cat == "Lu" or cat == "Ll": - return not self._is_alphabet_char(char) and not self._is_chinese_char(char) - except TypeError: - print("The input to the function must be a single character.") - return False - - def _is_year(self, s: str): - try: - number = int(s) - return 1900 <= number <= 2099 - except ValueError: - return False - - def __is_para_font_consistent(self, para_1, para_2): - """ - This function compares the font of para1 and para2 - - Parameters - ---------- - para1 : dict - para1 - para2 : dict - para2 - - Returns - ------- - is_same : bool - True if para1 and para2 have the same font, else False - """ - if para_1 is None or para_2 is None: - return False - - para_1_font_type = safe_get(para_1, "para_font_type", "") - para_1_font_size = safe_get(para_1, "para_font_size", 0) - para_1_font_color = safe_get(para_1, "para_font_color", "") - - para_2_font_type = safe_get(para_2, "para_font_type", "") - para_2_font_size = safe_get(para_2, "para_font_size", 0) - para_2_font_color = safe_get(para_2, "para_font_color", "") - - if isinstance(para_1_font_type, list): # get the most common font type - para_1_font_type = max(set(para_1_font_type), key=para_1_font_type.count) - if isinstance(para_2_font_type, list): - para_2_font_type = max(set(para_2_font_type), key=para_2_font_type.count) - if isinstance(para_1_font_size, list): # compute average font type - para_1_font_size = sum(para_1_font_size) / len(para_1_font_size) - if isinstance(para_2_font_size, list): # compute average font type - para_2_font_size = sum(para_2_font_size) / len(para_2_font_size) - - return ( - self.__is_similar_font_type(para_1_font_type, para_2_font_type) - and abs(para_1_font_size - para_2_font_size) < 1.5 - # and para_font_color1 == para_font_color2 - ) - - def _is_para_puncs_consistent(self, para_1, para_2): - """ - This function determines whether para1 and para2 are originally from the same paragraph by checking the puncs of para1(former) and para2(latter) - - Parameters - ---------- - para1 : dict - para1 - para2 : dict - para2 - - Returns - ------- - is_same : bool - True if para1 and para2 are from the same paragraph by using the puncs, else False - """ - para_1_text = safe_get(para_1, "para_text", "").strip() - para_2_text = safe_get(para_2, "para_text", "").strip() - - para_1_bboxes = safe_get(para_1, "para_bbox", []) - para_1_font_sizes = safe_get(para_1, "para_font_size", 0) - - para_2_bboxes = safe_get(para_2, "para_bbox", []) - para_2_font_sizes = safe_get(para_2, "para_font_size", 0) - - # print_yellow(" Features of determine puncs_consistent:") - # print(f" para_1_text: {para_1_text}") - # print(f" para_2_text: {para_2_text}") - # print(f" para_1_bboxes: {para_1_bboxes}") - # print(f" para_2_bboxes: {para_2_bboxes}") - # print(f" para_1_font_sizes: {para_1_font_sizes}") - # print(f" para_2_font_sizes: {para_2_font_sizes}") - - if is_nested_list(para_1_bboxes): - x0_1, y0_1, x1_1, y1_1 = para_1_bboxes[-1] - else: - x0_1, y0_1, x1_1, y1_1 = para_1_bboxes - - if is_nested_list(para_2_bboxes): - x0_2, y0_2, x1_2, y1_2 = para_2_bboxes[0] - para_2_font_sizes = para_2_font_sizes[0] # type: ignore - else: - x0_2, y0_2, x1_2, y1_2 = para_2_bboxes - - right_align_threshold = 0.5 * (para_1_font_sizes + para_2_font_sizes) * 0.8 - are_two_paras_right_aligned = abs(x1_1 - x1_2) < right_align_threshold - - left_indent_threshold = 0.5 * (para_1_font_sizes + para_2_font_sizes) * 0.8 - is_para1_left_indent_than_papa2 = x0_1 - x0_2 > left_indent_threshold - is_para2_left_indent_than_papa1 = x0_2 - x0_1 > left_indent_threshold - - # Check if either para_text1 or para_text2 is empty - if not para_1_text or not para_2_text: - return False - - # Define the end puncs for a sentence to end and hyphen - end_puncs = [".", "?", "!", "。", "?", "!", "…"] - hyphen = ["-", "—"] - - # Check if para_text1 ends with either hyphen or non-end punctuation or spaces - para_1_end_with_hyphen = para_1_text and para_1_text[-1] in hyphen - para_1_end_with_end_punc = para_1_text and para_1_text[-1] in end_puncs - para_1_end_with_space = para_1_text and para_1_text[-1] == " " - para_1_not_end_with_end_punc = para_1_text and para_1_text[-1] not in end_puncs - - # print_yellow(f" para_1_end_with_hyphen: {para_1_end_with_hyphen}") - # print_yellow(f" para_1_end_with_end_punc: {para_1_end_with_end_punc}") - # print_yellow(f" para_1_not_end_with_end_punc: {para_1_not_end_with_end_punc}") - # print_yellow(f" para_1_end_with_space: {para_1_end_with_space}") - - if para_1_end_with_hyphen: # If para_text1 ends with hyphen - # print_red(f"para_1 is end with hyphen.") - para_2_is_consistent = para_2_text and ( - para_2_text[0] in hyphen - or (self._is_alphabet_char(para_2_text[0]) and para_2_text[0].islower()) - or (self._is_chinese_char(para_2_text[0])) - or (self._is_other_letter_char(para_2_text[0])) - ) - if para_2_is_consistent: - # print(f"para_2 is consistent.\n") - return True - else: - # print(f"para_2 is not consistent.\n") - pass - - elif para_1_end_with_end_punc: # If para_text1 ends with ending punctuations - # print_red(f"para_1 is end with end_punc.") - para_2_is_consistent = ( - para_2_text - and ( - para_2_text[0] == " " - or (self._is_alphabet_char(para_2_text[0]) and para_2_text[0].isupper()) - or (self._is_chinese_char(para_2_text[0])) - or (self._is_other_letter_char(para_2_text[0])) - ) - and not is_para2_left_indent_than_papa1 - ) - if para_2_is_consistent: - # print(f"para_2 is consistent.\n") - return True - else: - # print(f"para_2 is not consistent.\n") - pass - - elif para_1_not_end_with_end_punc: # If para_text1 is not end with ending punctuations - # print_red(f"para_1 is NOT end with end_punc.") - para_2_is_consistent = para_2_text and ( - para_2_text[0] == " " - or (self._is_alphabet_char(para_2_text[0]) and para_2_text[0].islower()) - or (self._is_alphabet_char(para_2_text[0])) - or (self._is_year(para_2_text[0:4])) - or (are_two_paras_right_aligned or is_para1_left_indent_than_papa2) - or (self._is_chinese_char(para_2_text[0])) - or (self._is_other_letter_char(para_2_text[0])) - ) - if para_2_is_consistent: - # print(f"para_2 is consistent.\n") - return True - else: - # print(f"para_2 is not consistent.\n") - pass - - elif para_1_end_with_space: # If para_text1 ends with space - # print_red(f"para_1 is end with space.") - para_2_is_consistent = para_2_text and ( - para_2_text[0] == " " - or (self._is_alphabet_char(para_2_text[0]) and para_2_text[0].islower()) - or (self._is_chinese_char(para_2_text[0])) - or (self._is_other_letter_char(para_2_text[0])) - ) - if para_2_is_consistent: - # print(f"para_2 is consistent.\n") - return True - else: - pass - # print(f"para_2 is not consistent.\n") - - return False - - def _is_block_consistent(self, block1, block2): - """ - This function determines whether block1 and block2 are originally from the same block - - Parameters - ---------- - block1 : dict - block1s - block2 : dict - block2 - - Returns - ------- - is_same : bool - True if block1 and block2 are from the same block, else False - """ - return self.__is_same_block_font(block1, block2) - - def _is_para_continued(self, para1, para2): - """ - This function determines whether para1 and para2 are originally from the same paragraph - - Parameters - ---------- - para1 : dict - para1 - para2 : dict - para2 - - Returns - ------- - is_same : bool - True if para1 and para2 are from the same paragraph, else False - """ - is_para_font_consistent = self.__is_para_font_consistent(para1, para2) - is_para_puncs_consistent = self._is_para_puncs_consistent(para1, para2) - - return is_para_font_consistent and is_para_puncs_consistent - - def _are_boundaries_of_block_consistent(self, block1, block2): - """ - This function checks if the boundaries of block1 and block2 are consistent - - Parameters - ---------- - block1 : dict - block1 - - block2 : dict - block2 - - Returns - ------- - is_consistent : bool - True if the boundaries of block1 and block2 are consistent, else False - """ - - last_line_of_block1 = block1["lines"][-1] - first_line_of_block2 = block2["lines"][0] - - spans_of_last_line_of_block1 = last_line_of_block1["spans"] - spans_of_first_line_of_block2 = first_line_of_block2["spans"] - - font_type_of_last_line_of_block1 = spans_of_last_line_of_block1[0]["font"].lower() - font_size_of_last_line_of_block1 = spans_of_last_line_of_block1[0]["size"] - font_color_of_last_line_of_block1 = spans_of_last_line_of_block1[0]["color"] - font_flags_of_last_line_of_block1 = spans_of_last_line_of_block1[0]["flags"] - - font_type_of_first_line_of_block2 = spans_of_first_line_of_block2[0]["font"].lower() - font_size_of_first_line_of_block2 = spans_of_first_line_of_block2[0]["size"] - font_color_of_first_line_of_block2 = spans_of_first_line_of_block2[0]["color"] - font_flags_of_first_line_of_block2 = spans_of_first_line_of_block2[0]["flags"] - - return ( - self.__is_similar_font_type(font_type_of_last_line_of_block1, font_type_of_first_line_of_block2) - and abs(font_size_of_last_line_of_block1 - font_size_of_first_line_of_block2) < 1 - # and font_color_of_last_line_of_block1 == font_color_of_first_line_of_block2 - and font_flags_of_last_line_of_block1 == font_flags_of_first_line_of_block2 - ) - - def _get_last_paragraph(self, block): - """ - Retrieves the last paragraph from a block. - - Parameters - ---------- - block : dict - The block from which to retrieve the paragraph. - - Returns - ------- - dict - The last paragraph of the block. - """ - if block["paras"]: - last_para_key = list(block["paras"].keys())[-1] - return block["paras"][last_para_key] - else: - return None - - def _get_first_paragraph(self, block): - """ - Retrieves the first paragraph from a block. - - Parameters - ---------- - block : dict - The block from which to retrieve the paragraph. - - Returns - ------- - dict - The first paragraph of the block. - """ - if block["paras"]: - first_para_key = list(block["paras"].keys())[0] - return block["paras"][first_para_key] - else: - return None - - def should_merge_next_para(self, curr_para, next_para): - if self._is_para_continued(curr_para, next_para): - return True - else: - return False - - def batch_tag_paras(self, pdf_dict): - the_last_page_id = len(pdf_dict) - 1 - - for curr_page_idx, (curr_page_id, curr_page_content) in enumerate(pdf_dict.items()): - if curr_page_id.startswith("page_") and curr_page_content.get("para_blocks", []): - para_blocks_of_curr_page = curr_page_content["para_blocks"] - next_page_idx = curr_page_idx + 1 - next_page_id = f"page_{next_page_idx}" - next_page_content = pdf_dict.get(next_page_id, {}) - - for i, current_block in enumerate(para_blocks_of_curr_page): - for para_id, curr_para in current_block["paras"].items(): - curr_para["curr_para_location"] = [ - curr_page_idx, - current_block["block_id"], - int(para_id.split("_")[-1]), - ] - curr_para["next_para_location"] = None # 默认设置为None - curr_para["merge_next_para"] = False # 默认设置为False - - next_block = para_blocks_of_curr_page[i + 1] if i < len(para_blocks_of_curr_page) - 1 else None - - if next_block: - curr_block_last_para_key = list(current_block["paras"].keys())[-1] - curr_blk_last_para = current_block["paras"][curr_block_last_para_key] - - next_block_first_para_key = list(next_block["paras"].keys())[0] - next_blk_first_para = next_block["paras"][next_block_first_para_key] - - if self.should_merge_next_para(curr_blk_last_para, next_blk_first_para): - curr_blk_last_para["next_para_location"] = [ - curr_page_idx, - next_block["block_id"], - int(next_block_first_para_key.split("_")[-1]), - ] - curr_blk_last_para["merge_next_para"] = True - else: - # Handle the case where the next block is in a different page - curr_block_last_para_key = list(current_block["paras"].keys())[-1] - curr_blk_last_para = current_block["paras"][curr_block_last_para_key] - - while not next_page_content.get("para_blocks", []) and next_page_idx <= the_last_page_id: - next_page_idx += 1 - next_page_id = f"page_{next_page_idx}" - next_page_content = pdf_dict.get(next_page_id, {}) - - if next_page_content.get("para_blocks", []): - next_blk_first_para_key = list(next_page_content["para_blocks"][0]["paras"].keys())[0] - next_blk_first_para = next_page_content["para_blocks"][0]["paras"][next_blk_first_para_key] - - if self.should_merge_next_para(curr_blk_last_para, next_blk_first_para): - curr_blk_last_para["next_para_location"] = [ - next_page_idx, - next_page_content["para_blocks"][0]["block_id"], - int(next_blk_first_para_key.split("_")[-1]), - ] - curr_blk_last_para["merge_next_para"] = True - - return pdf_dict - - def find_block_by_id(self, para_blocks, block_id): - for block in para_blocks: - if block.get("block_id") == block_id: - return block - return None - - def batch_merge_paras(self, pdf_dict): - for page_id, page_content in pdf_dict.items(): - if page_id.startswith("page_") and page_content.get("para_blocks", []): - para_blocks_of_page = page_content["para_blocks"] - - for i in range(len(para_blocks_of_page)): - current_block = para_blocks_of_page[i] - paras = current_block["paras"] - - for para_id, curr_para in list(paras.items()): - # 跳过标题段落 - if curr_para.get("is_para_title"): - continue - - while curr_para.get("merge_next_para"): - next_para_location = curr_para.get("next_para_location") - if not next_para_location: - break - - next_page_idx, next_block_id, next_para_id = next_para_location - next_page_id = f"page_{next_page_idx}" - next_page_content = pdf_dict.get(next_page_id) - if not next_page_content: - break - - next_block = self.find_block_by_id(next_page_content.get("para_blocks", []), next_block_id) - if not next_block: - break - - next_para = next_block["paras"].get(f"para_{next_para_id}") - if not next_para or next_para.get("is_para_title"): - break - - # 合并段落文本 - curr_para_text = curr_para.get("para_text", "") - next_para_text = next_para.get("para_text", "") - curr_para["para_text"] = curr_para_text + " " + next_para_text - - # 更新 next_para_location - curr_para["next_para_location"] = next_para.get("next_para_location") - - # 将下一个段落文本置为空,表示已被合并 - next_para["para_text"] = "" - - # 更新 merge_next_para 标记 - curr_para["merge_next_para"] = next_para.get("merge_next_para", False) - - return pdf_dict diff --git a/magic_pdf/para/block_termination_processor.py b/magic_pdf/para/block_termination_processor.py deleted file mode 100644 index 54b393caa..000000000 --- a/magic_pdf/para/block_termination_processor.py +++ /dev/null @@ -1,480 +0,0 @@ -from magic_pdf.para.commons import * - - -if sys.version_info[0] >= 3: - sys.stdout.reconfigure(encoding="utf-8") # type: ignore - - - -class BlockTerminationProcessor: - def __init__(self) -> None: - pass - - def _is_consistent_lines( - self, - curr_line, - prev_line, - next_line, - consistent_direction, # 0 for prev, 1 for next, 2 for both - ): - """ - This function checks if the line is consistent with its neighbors - - Parameters - ---------- - curr_line : dict - current line - prev_line : dict - previous line - next_line : dict - next line - consistent_direction : int - 0 for prev, 1 for next, 2 for both - - Returns - ------- - bool - True if the line is consistent with its neighbors, False otherwise. - """ - - curr_line_font_size = curr_line["spans"][0]["size"] - curr_line_font_type = curr_line["spans"][0]["font"].lower() - - if consistent_direction == 0: - if prev_line: - prev_line_font_size = prev_line["spans"][0]["size"] - prev_line_font_type = prev_line["spans"][0]["font"].lower() - return curr_line_font_size == prev_line_font_size and curr_line_font_type == prev_line_font_type - else: - return False - - elif consistent_direction == 1: - if next_line: - next_line_font_size = next_line["spans"][0]["size"] - next_line_font_type = next_line["spans"][0]["font"].lower() - return curr_line_font_size == next_line_font_size and curr_line_font_type == next_line_font_type - else: - return False - - elif consistent_direction == 2: - if prev_line and next_line: - prev_line_font_size = prev_line["spans"][0]["size"] - prev_line_font_type = prev_line["spans"][0]["font"].lower() - next_line_font_size = next_line["spans"][0]["size"] - next_line_font_type = next_line["spans"][0]["font"].lower() - return (curr_line_font_size == prev_line_font_size and curr_line_font_type == prev_line_font_type) and ( - curr_line_font_size == next_line_font_size and curr_line_font_type == next_line_font_type - ) - else: - return False - - else: - return False - - def _is_regular_line(self, curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, X0, X1, avg_line_height): - """ - This function checks if the line is a regular line - - Parameters - ---------- - curr_line_bbox : list - bbox of the current line - prev_line_bbox : list - bbox of the previous line - next_line_bbox : list - bbox of the next line - avg_char_width : float - average of char widths - X0 : float - median of x0 values, which represents the left average boundary of the page - X1 : float - median of x1 values, which represents the right average boundary of the page - avg_line_height : float - average of line heights - - Returns - ------- - bool - True if the line is a regular line, False otherwise. - """ - horizontal_ratio = 0.5 - vertical_ratio = 0.5 - horizontal_thres = horizontal_ratio * avg_char_width - vertical_thres = vertical_ratio * avg_line_height - - x0, y0, x1, y1 = curr_line_bbox - - x0_near_X0 = abs(x0 - X0) < horizontal_thres - x1_near_X1 = abs(x1 - X1) < horizontal_thres - - prev_line_is_end_of_para = prev_line_bbox and (abs(prev_line_bbox[2] - X1) > avg_char_width) - - sufficient_spacing_above = False - if prev_line_bbox: - vertical_spacing_above = y1 - prev_line_bbox[3] - sufficient_spacing_above = vertical_spacing_above > vertical_thres - - sufficient_spacing_below = False - if next_line_bbox: - vertical_spacing_below = next_line_bbox[1] - y0 - sufficient_spacing_below = vertical_spacing_below > vertical_thres - - return ( - (sufficient_spacing_above or sufficient_spacing_below) - or (not x0_near_X0 and not x1_near_X1) - or prev_line_is_end_of_para - ) - - def _is_possible_start_of_para(self, curr_line, prev_line, next_line, X0, X1, avg_char_width, avg_font_size): - """ - This function checks if the line is a possible start of a paragraph - - Parameters - ---------- - curr_line : dict - current line - prev_line : dict - previous line - next_line : dict - next line - X0 : float - median of x0 values, which represents the left average boundary of the page - X1 : float - median of x1 values, which represents the right average boundary of the page - avg_char_width : float - average of char widths - avg_line_height : float - average of line heights - - Returns - ------- - bool - True if the line is a possible start of a paragraph, False otherwise. - """ - start_confidence = 0.5 # Initial confidence of the line being a start of a paragraph - decision_path = [] # Record the decision path - - curr_line_bbox = curr_line["bbox"] - prev_line_bbox = prev_line["bbox"] if prev_line else None - next_line_bbox = next_line["bbox"] if next_line else None - - indent_ratio = 1 - - vertical_ratio = 1.5 - vertical_thres = vertical_ratio * avg_font_size - - left_horizontal_ratio = 0.5 - left_horizontal_thres = left_horizontal_ratio * avg_char_width - - right_horizontal_ratio = 2.5 - right_horizontal_thres = right_horizontal_ratio * avg_char_width - - x0, y0, x1, y1 = curr_line_bbox - - indent_condition = x0 > X0 + indent_ratio * avg_char_width - if indent_condition: - start_confidence += 0.2 - decision_path.append("indent_condition_met") - - x0_near_X0 = abs(x0 - X0) < left_horizontal_thres - if x0_near_X0: - start_confidence += 0.1 - decision_path.append("x0_near_X0") - - x1_near_X1 = abs(x1 - X1) < right_horizontal_thres - if x1_near_X1: - start_confidence += 0.1 - decision_path.append("x1_near_X1") - - if prev_line is None: - prev_line_is_end_of_para = True - start_confidence += 0.2 - decision_path.append("no_prev_line") - else: - prev_line_is_end_of_para, _, _ = self._is_possible_end_of_para(prev_line, next_line, X0, X1, avg_char_width) - if prev_line_is_end_of_para: - start_confidence += 0.1 - decision_path.append("prev_line_is_end_of_para") - - sufficient_spacing_above = False - if prev_line_bbox: - vertical_spacing_above = y1 - prev_line_bbox[3] - sufficient_spacing_above = vertical_spacing_above > vertical_thres - if sufficient_spacing_above: - start_confidence += 0.2 - decision_path.append("sufficient_spacing_above") - - sufficient_spacing_below = False - if next_line_bbox: - vertical_spacing_below = next_line_bbox[1] - y0 - sufficient_spacing_below = vertical_spacing_below > vertical_thres - if sufficient_spacing_below: - start_confidence += 0.2 - decision_path.append("sufficient_spacing_below") - - is_regular_line = self._is_regular_line( - curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, X0, X1, avg_font_size - ) - if is_regular_line: - start_confidence += 0.1 - decision_path.append("is_regular_line") - - is_start_of_para = ( - (sufficient_spacing_above or sufficient_spacing_below) - or (indent_condition) - or (not indent_condition and x0_near_X0 and x1_near_X1 and not is_regular_line) - or prev_line_is_end_of_para - ) - return (is_start_of_para, start_confidence, decision_path) - - def _is_possible_end_of_para(self, curr_line, next_line, X0, X1, avg_char_width): - """ - This function checks if the line is a possible end of a paragraph - - Parameters - ---------- - curr_line : dict - current line - next_line : dict - next line - X0 : float - median of x0 values, which represents the left average boundary of the page - X1 : float - median of x1 values, which represents the right average boundary of the page - avg_char_width : float - average of char widths - - Returns - ------- - bool - True if the line is a possible end of a paragraph, False otherwise. - """ - - end_confidence = 0.5 # Initial confidence of the line being a end of a paragraph - decision_path = [] # Record the decision path - - curr_line_bbox = curr_line["bbox"] - next_line_bbox = next_line["bbox"] if next_line else None - - left_horizontal_ratio = 0.5 - right_horizontal_ratio = 0.5 - - x0, _, x1, y1 = curr_line_bbox - next_x0, next_y0, _, _ = next_line_bbox if next_line_bbox else (0, 0, 0, 0) - - x0_near_X0 = abs(x0 - X0) < left_horizontal_ratio * avg_char_width - if x0_near_X0: - end_confidence += 0.1 - decision_path.append("x0_near_X0") - - x1_smaller_than_X1 = x1 < X1 - right_horizontal_ratio * avg_char_width - if x1_smaller_than_X1: - end_confidence += 0.1 - decision_path.append("x1_smaller_than_X1") - - next_line_is_start_of_para = ( - next_line_bbox - and (next_x0 > X0 + left_horizontal_ratio * avg_char_width) - and (not is_line_left_aligned_from_neighbors(curr_line_bbox, None, next_line_bbox, avg_char_width, direction=1)) - ) - if next_line_is_start_of_para: - end_confidence += 0.2 - decision_path.append("next_line_is_start_of_para") - - is_line_left_aligned_from_neighbors_bool = is_line_left_aligned_from_neighbors( - curr_line_bbox, None, next_line_bbox, avg_char_width - ) - if is_line_left_aligned_from_neighbors_bool: - end_confidence += 0.1 - decision_path.append("line_is_left_aligned_from_neighbors") - - is_line_right_aligned_from_neighbors_bool = is_line_right_aligned_from_neighbors( - curr_line_bbox, None, next_line_bbox, avg_char_width - ) - if not is_line_right_aligned_from_neighbors_bool: - end_confidence += 0.1 - decision_path.append("line_is_not_right_aligned_from_neighbors") - - is_end_of_para = end_with_punctuation(curr_line["text"]) and ( - (x0_near_X0 and x1_smaller_than_X1) - or (is_line_left_aligned_from_neighbors_bool and not is_line_right_aligned_from_neighbors_bool) - ) - - return (is_end_of_para, end_confidence, decision_path) - - def _cut_paras_per_block( - self, - block, - ): - """ - Processes a raw block from PyMuPDF and returns the processed block. - - Parameters - ---------- - raw_block : dict - A raw block from pymupdf. - - Returns - ------- - processed_block : dict - - """ - - def _construct_para(lines, is_block_title, para_title_level): - """ - Construct a paragraph from given lines. - """ - - font_sizes = [span["size"] for line in lines for span in line["spans"]] - avg_font_size = sum(font_sizes) / len(font_sizes) if font_sizes else 0 - - font_colors = [span["color"] for line in lines for span in line["spans"]] - most_common_font_color = max(set(font_colors), key=font_colors.count) if font_colors else None - - # font_types = [span["font"] for line in lines for span in line["spans"]] - # most_common_font_type = max(set(font_types), key=font_types.count) if font_types else None - - font_type_lengths = {} - for line in lines: - for span in line["spans"]: - font_type = span["font"] - bbox_width = span["bbox"][2] - span["bbox"][0] - if font_type in font_type_lengths: - font_type_lengths[font_type] += bbox_width - else: - font_type_lengths[font_type] = bbox_width - - # get the font type with the longest bbox width - most_common_font_type = max(font_type_lengths, key=font_type_lengths.get) if font_type_lengths else None # type: ignore - - para_bbox = calculate_para_bbox(lines) - para_text = " ".join(line["text"] for line in lines) - - return { - "para_bbox": para_bbox, - "para_text": para_text, - "para_font_type": most_common_font_type, - "para_font_size": avg_font_size, - "para_font_color": most_common_font_color, - "is_para_title": is_block_title, - "para_title_level": para_title_level, - } - - block_bbox = block["bbox"] - block_text = block["text"] - block_lines = block["lines"] - - X0 = safe_get(block, "X0", 0) - X1 = safe_get(block, "X1", 0) - avg_char_width = safe_get(block, "avg_char_width", 0) - avg_char_height = safe_get(block, "avg_char_height", 0) - avg_font_size = safe_get(block, "avg_font_size", 0) - - is_block_title = safe_get(block, "is_block_title", False) - para_title_level = safe_get(block, "block_title_level", 0) - - # Segment into paragraphs - para_ranges = [] - in_paragraph = False - start_idx_of_para = None - - # Create the processed paragraphs - processed_paras = {} - para_bboxes = [] - end_idx_of_para = 0 - - for line_index, line in enumerate(block_lines): - curr_line = line - prev_line = block_lines[line_index - 1] if line_index > 0 else None - next_line = block_lines[line_index + 1] if line_index < len(block_lines) - 1 else None - - """ - Start processing paragraphs. - """ - - # Check if the line is the start of a paragraph - is_start_of_para, start_confidence, decision_path = self._is_possible_start_of_para( - curr_line, prev_line, next_line, X0, X1, avg_char_width, avg_font_size - ) - if not in_paragraph and is_start_of_para: - in_paragraph = True - start_idx_of_para = line_index - - # print_green(">>> Start of a paragraph") - # print(" curr_line_text: ", curr_line["text"]) - # print(" start_confidence: ", start_confidence) - # print(" decision_path: ", decision_path) - - # Check if the line is the end of a paragraph - is_end_of_para, end_confidence, decision_path = self._is_possible_end_of_para( - curr_line, next_line, X0, X1, avg_char_width - ) - if in_paragraph and (is_end_of_para or not next_line): - para_ranges.append((start_idx_of_para, line_index)) - start_idx_of_para = None - in_paragraph = False - - # print_red(">>> End of a paragraph") - # print(" curr_line_text: ", curr_line["text"]) - # print(" end_confidence: ", end_confidence) - # print(" decision_path: ", decision_path) - - # Add the last paragraph if it is not added - if in_paragraph and start_idx_of_para is not None: - para_ranges.append((start_idx_of_para, len(block_lines) - 1)) - - # Process the matched paragraphs - for para_index, (start_idx, end_idx) in enumerate(para_ranges): - matched_lines = block_lines[start_idx : end_idx + 1] - para_properties = _construct_para(matched_lines, is_block_title, para_title_level) - para_key = f"para_{len(processed_paras)}" - processed_paras[para_key] = para_properties - para_bboxes.append(para_properties["para_bbox"]) - end_idx_of_para = end_idx + 1 - - # Deal with the remaining lines - if end_idx_of_para < len(block_lines): - unmatched_lines = block_lines[end_idx_of_para:] - unmatched_properties = _construct_para(unmatched_lines, is_block_title, para_title_level) - unmatched_key = f"para_{len(processed_paras)}" - processed_paras[unmatched_key] = unmatched_properties - para_bboxes.append(unmatched_properties["para_bbox"]) - - block["paras"] = processed_paras - - return block - - def batch_process_blocks(self, pdf_dict): - """ - Parses the blocks of all pages. - - Parameters - ---------- - pdf_dict : dict - PDF dictionary. - filter_blocks : list - List of bounding boxes to filter. - - Returns - ------- - result_dict : dict - Result dictionary. - - """ - - num_paras = 0 - - for page_id, page in pdf_dict.items(): - if page_id.startswith("page_"): - para_blocks = [] - if "para_blocks" in page.keys(): - input_blocks = page["para_blocks"] - for input_block in input_blocks: - new_block = self._cut_paras_per_block(input_block) - para_blocks.append(new_block) - num_paras += len(new_block["paras"]) - - page["para_blocks"] = para_blocks - - pdf_dict["statistics"]["num_paras"] = num_paras - return pdf_dict diff --git a/magic_pdf/para/commons.py b/magic_pdf/para/commons.py deleted file mode 100644 index 716f30744..000000000 --- a/magic_pdf/para/commons.py +++ /dev/null @@ -1,222 +0,0 @@ -import sys - -from magic_pdf.libs.commons import fitz -from termcolor import cprint - - -if sys.version_info[0] >= 3: - sys.stdout.reconfigure(encoding="utf-8") # type: ignore - - -def open_pdf(pdf_path): - try: - pdf_document = fitz.open(pdf_path) # type: ignore - return pdf_document - except Exception as e: - print(f"无法打开PDF文件:{pdf_path}。原因是:{e}") - raise e - - -def print_green_on_red(text): - cprint(text, "green", "on_red", attrs=["bold"], end="\n\n") - - -def print_green(text): - print() - cprint(text, "green", attrs=["bold"], end="\n\n") - - -def print_red(text): - print() - cprint(text, "red", attrs=["bold"], end="\n\n") - - -def print_yellow(text): - print() - cprint(text, "yellow", attrs=["bold"], end="\n\n") - - -def safe_get(dict_obj, key, default): - val = dict_obj.get(key) - if val is None: - return default - else: - return val - - -def is_bbox_overlap(bbox1, bbox2): - """ - This function checks if bbox1 and bbox2 overlap or not - - Parameters - ---------- - bbox1 : list - bbox1 - bbox2 : list - bbox2 - - Returns - ------- - bool - True if bbox1 and bbox2 overlap, else False - """ - x0_1, y0_1, x1_1, y1_1 = bbox1 - x0_2, y0_2, x1_2, y1_2 = bbox2 - - if x0_1 > x1_2 or x0_2 > x1_1: - return False - if y0_1 > y1_2 or y0_2 > y1_1: - return False - - return True - - -def is_in_bbox(bbox1, bbox2): - """ - This function checks if bbox1 is in bbox2 - - Parameters - ---------- - bbox1 : list - bbox1 - bbox2 : list - bbox2 - - Returns - ------- - bool - True if bbox1 is in bbox2, else False - """ - x0_1, y0_1, x1_1, y1_1 = bbox1 - x0_2, y0_2, x1_2, y1_2 = bbox2 - - if x0_1 >= x0_2 and y0_1 >= y0_2 and x1_1 <= x1_2 and y1_1 <= y1_2: - return True - else: - return False - - -def calculate_para_bbox(lines): - """ - This function calculates the minimum bbox of the paragraph - - Parameters - ---------- - lines : list - lines - - Returns - ------- - para_bbox : list - bbox of the paragraph - """ - x0 = min(line["bbox"][0] for line in lines) - y0 = min(line["bbox"][1] for line in lines) - x1 = max(line["bbox"][2] for line in lines) - y1 = max(line["bbox"][3] for line in lines) - return [x0, y0, x1, y1] - - -def is_line_right_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction=2): - """ - This function checks if the line is right aligned from its neighbors - - Parameters - ---------- - curr_line_bbox : list - bbox of the current line - prev_line_bbox : list - bbox of the previous line - next_line_bbox : list - bbox of the next line - avg_char_width : float - average of char widths - direction : int - 0 for prev, 1 for next, 2 for both - - Returns - ------- - bool - True if the line is right aligned from its neighbors, False otherwise. - """ - horizontal_ratio = 0.5 - horizontal_thres = horizontal_ratio * avg_char_width - - _, _, x1, _ = curr_line_bbox - _, _, prev_x1, _ = prev_line_bbox if prev_line_bbox else (0, 0, 0, 0) - _, _, next_x1, _ = next_line_bbox if next_line_bbox else (0, 0, 0, 0) - - if direction == 0: - return abs(x1 - prev_x1) < horizontal_thres - elif direction == 1: - return abs(x1 - next_x1) < horizontal_thres - elif direction == 2: - return abs(x1 - prev_x1) < horizontal_thres and abs(x1 - next_x1) < horizontal_thres - else: - return False - - -def is_line_left_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction=2): - """ - This function checks if the line is left aligned from its neighbors - - Parameters - ---------- - curr_line_bbox : list - bbox of the current line - prev_line_bbox : list - bbox of the previous line - next_line_bbox : list - bbox of the next line - avg_char_width : float - average of char widths - direction : int - 0 for prev, 1 for next, 2 for both - - Returns - ------- - bool - True if the line is left aligned from its neighbors, False otherwise. - """ - horizontal_ratio = 0.5 - horizontal_thres = horizontal_ratio * avg_char_width - - x0, _, _, _ = curr_line_bbox - prev_x0, _, _, _ = prev_line_bbox if prev_line_bbox else (0, 0, 0, 0) - next_x0, _, _, _ = next_line_bbox if next_line_bbox else (0, 0, 0, 0) - - if direction == 0: - return abs(x0 - prev_x0) < horizontal_thres - elif direction == 1: - return abs(x0 - next_x0) < horizontal_thres - elif direction == 2: - return abs(x0 - prev_x0) < horizontal_thres and abs(x0 - next_x0) < horizontal_thres - else: - return False - - -def end_with_punctuation(line_text): - """ - This function checks if the line ends with punctuation marks - """ - - english_end_puncs = [".", "?", "!"] - chinese_end_puncs = ["。", "?", "!"] - end_puncs = english_end_puncs + chinese_end_puncs - - last_non_space_char = None - for ch in line_text[::-1]: - if not ch.isspace(): - last_non_space_char = ch - break - - if last_non_space_char is None: - return False - - return last_non_space_char in end_puncs - - -def is_nested_list(lst): - if isinstance(lst, list): - return any(isinstance(sub, list) for sub in lst) - return False diff --git a/magic_pdf/para/denoise.py b/magic_pdf/para/denoise.py deleted file mode 100644 index 2d49f3834..000000000 --- a/magic_pdf/para/denoise.py +++ /dev/null @@ -1,246 +0,0 @@ -import math - -from collections import defaultdict -from magic_pdf.para.commons import * - -if sys.version_info[0] >= 3: - sys.stdout.reconfigure(encoding="utf-8") # type: ignore - - -class HeaderFooterProcessor: - def __init__(self) -> None: - pass - - def get_most_common_bboxes(self, bboxes, page_height, position="top", threshold=0.25, num_bboxes=3, min_frequency=2): - """ - This function gets the most common bboxes from the bboxes - - Parameters - ---------- - bboxes : list - bboxes - page_height : float - height of the page - position : str, optional - "top" or "bottom", by default "top" - threshold : float, optional - threshold, by default 0.25 - num_bboxes : int, optional - number of bboxes to return, by default 3 - min_frequency : int, optional - minimum frequency of the bbox, by default 2 - - Returns - ------- - common_bboxes : list - common bboxes - """ - # Filter bbox by position - if position == "top": - filtered_bboxes = [bbox for bbox in bboxes if bbox[1] < page_height * threshold] - else: - filtered_bboxes = [bbox for bbox in bboxes if bbox[3] > page_height * (1 - threshold)] - - # Find the most common bbox - bbox_count = defaultdict(int) - for bbox in filtered_bboxes: - bbox_count[tuple(bbox)] += 1 - - # Get the most frequently occurring bbox, but only consider it when the frequency exceeds min_frequency - common_bboxes = [ - bbox for bbox, count in sorted(bbox_count.items(), key=lambda item: item[1], reverse=True) if count >= min_frequency - ][:num_bboxes] - return common_bboxes - - def detect_footer_header(self, result_dict, similarity_threshold=0.5): - """ - This function detects the header and footer of the document. - - Parameters - ---------- - result_dict : dict - result dictionary - - Returns - ------- - result_dict : dict - result dictionary - """ - - def compare_bbox_with_list(bbox, bbox_list, tolerance=1): - return any(all(abs(a - b) < tolerance for a, b in zip(bbox, common_bbox)) for common_bbox in bbox_list) - - def is_single_line_block(block): - # Determine based on the width and height of the block - block_width = block["X1"] - block["X0"] - block_height = block["bbox"][3] - block["bbox"][1] - - # If the height of the block is close to the average character height and the width is large, it is considered a single line - return block_height <= block["avg_char_height"] * 3 and block_width > block["avg_char_width"] * 3 - - # Traverse all blocks in the document - single_preproc_blocks = 0 - total_blocks = 0 - single_preproc_blocks = 0 - - for page_id, blocks in result_dict.items(): - if page_id.startswith("page_"): - for block_key, block in blocks.items(): - if block_key.startswith("block_"): - total_blocks += 1 - if is_single_line_block(block): - single_preproc_blocks += 1 - - # If there are no blocks, skip the header and footer detection - if total_blocks == 0: - print("No blocks found. Skipping header/footer detection.") - return result_dict - - # If most of the blocks are single-line, skip the header and footer detection - if single_preproc_blocks / total_blocks > 0.5: # 50% of the blocks are single-line - return result_dict - - # Collect the bounding boxes of all blocks - all_bboxes = [] - all_texts = [] - - for page_id, blocks in result_dict.items(): - if page_id.startswith("page_"): - for block_key, block in blocks.items(): - if block_key.startswith("block_"): - all_bboxes.append(block["bbox"]) - - # Get the height of the page - page_height = max(bbox[3] for bbox in all_bboxes) - - # Get the most common bbox lists for headers and footers - common_header_bboxes = self.get_most_common_bboxes(all_bboxes, page_height, position="top") if all_bboxes else [] - common_footer_bboxes = self.get_most_common_bboxes(all_bboxes, page_height, position="bottom") if all_bboxes else [] - - # Detect and mark headers and footers - for page_id, blocks in result_dict.items(): - if page_id.startswith("page_"): - for block_key, block in blocks.items(): - if block_key.startswith("block_"): - bbox = block["bbox"] - text = block["text"] - - is_header = compare_bbox_with_list(bbox, common_header_bboxes) - is_footer = compare_bbox_with_list(bbox, common_footer_bboxes) - - block["is_header"] = int(is_header) - block["is_footer"] = int(is_footer) - - return result_dict - - -class NonHorizontalTextProcessor: - def __init__(self) -> None: - pass - - def detect_non_horizontal_texts(self, result_dict): - """ - This function detects watermarks and vertical margin notes in the document. - - Watermarks are identified by finding blocks with the same coordinates and frequently occurring identical texts across multiple pages. - If these conditions are met, the blocks are highly likely to be watermarks, as opposed to headers or footers, which can change from page to page. - If the direction of these blocks is not horizontal, they are definitely considered to be watermarks. - - Vertical margin notes are identified by finding blocks with the same coordinates and frequently occurring identical texts across multiple pages. - If these conditions are met, the blocks are highly likely to be vertical margin notes, which typically appear on the left and right sides of the page. - If the direction of these blocks is vertical, they are definitely considered to be vertical margin notes. - - - Parameters - ---------- - result_dict : dict - The result dictionary. - - Returns - ------- - result_dict : dict - The updated result dictionary. - """ - # Dictionary to store information about potential watermarks - potential_watermarks = {} - potential_margin_notes = {} - - for page_id, page_content in result_dict.items(): - if page_id.startswith("page_"): - for block_id, block_data in page_content.items(): - if block_id.startswith("block_"): - if "dir" in block_data: - coordinates_text = (block_data["bbox"], block_data["text"]) # Tuple of coordinates and text - - angle = math.atan2(block_data["dir"][1], block_data["dir"][0]) - angle = abs(math.degrees(angle)) - - if angle > 5 and angle < 85: # Check if direction is watermarks - if coordinates_text in potential_watermarks: - potential_watermarks[coordinates_text] += 1 - else: - potential_watermarks[coordinates_text] = 1 - - if angle > 85 and angle < 105: # Check if direction is vertical - if coordinates_text in potential_margin_notes: - potential_margin_notes[coordinates_text] += 1 # Increment count - else: - potential_margin_notes[coordinates_text] = 1 # Initialize count - - # Identify watermarks by finding entries with counts higher than a threshold (e.g., appearing on more than half of the pages) - watermark_threshold = len(result_dict) // 2 - watermarks = {k: v for k, v in potential_watermarks.items() if v > watermark_threshold} - - # Identify margin notes by finding entries with counts higher than a threshold (e.g., appearing on more than half of the pages) - margin_note_threshold = len(result_dict) // 2 - margin_notes = {k: v for k, v in potential_margin_notes.items() if v > margin_note_threshold} - - # Add watermark information to the result dictionary - for page_id, blocks in result_dict.items(): - if page_id.startswith("page_"): - for block_id, block_data in blocks.items(): - coordinates_text = (block_data["bbox"], block_data["text"]) - if coordinates_text in watermarks: - block_data["is_watermark"] = 1 - else: - block_data["is_watermark"] = 0 - - if coordinates_text in margin_notes: - block_data["is_vertical_margin_note"] = 1 - else: - block_data["is_vertical_margin_note"] = 0 - - return result_dict - - -class NoiseRemover: - def __init__(self) -> None: - pass - - def skip_data_noises(self, result_dict): - """ - This function skips the data noises, including overlap blocks, header, footer, watermark, vertical margin note, title - """ - filtered_result_dict = {} - for page_id, blocks in result_dict.items(): - if page_id.startswith("page_"): - filtered_blocks = {} - for block_id, block in blocks.items(): - if block_id.startswith("block_"): - if any( - block.get(key, 0) - for key in [ - "is_overlap", - "is_header", - "is_footer", - "is_watermark", - "is_vertical_margin_note", - "is_block_title", - ] - ): - continue - filtered_blocks[block_id] = block - if filtered_blocks: - filtered_result_dict[page_id] = filtered_blocks - - return filtered_result_dict diff --git a/magic_pdf/para/draw.py b/magic_pdf/para/draw.py deleted file mode 100644 index 041a21bcb..000000000 --- a/magic_pdf/para/draw.py +++ /dev/null @@ -1,121 +0,0 @@ -from magic_pdf.libs.commons import fitz - -from magic_pdf.para.commons import * - - -if sys.version_info[0] >= 3: - sys.stdout.reconfigure(encoding="utf-8") # type: ignore - - -class DrawAnnos: - """ - This class draws annotations on the pdf file - - ---------------------------------------- - Color Code - ---------------------------------------- - Red: (1, 0, 0) - Green: (0, 1, 0) - Blue: (0, 0, 1) - Yellow: (1, 1, 0) - mix of red and green - Cyan: (0, 1, 1) - mix of green and blue - Magenta: (1, 0, 1) - mix of red and blue - White: (1, 1, 1) - red, green and blue full intensity - Black: (0, 0, 0) - no color component whatsoever - Gray: (0.5, 0.5, 0.5) - equal and medium intensity of red, green and blue color components - Orange: (1, 0.65, 0) - maximum intensity of red, medium intensity of green, no blue component - """ - - def __init__(self) -> None: - pass - - def __is_nested_list(self, lst): - """ - This function returns True if the given list is a nested list of any degree. - """ - if isinstance(lst, list): - return any(self.__is_nested_list(i) for i in lst) or any(isinstance(i, list) for i in lst) - return False - - def __valid_rect(self, bbox): - # Ensure that the rectangle is not empty or invalid - if isinstance(bbox[0], list): - return False # It's a nested list, hence it can't be valid rect - else: - return bbox[0] < bbox[2] and bbox[1] < bbox[3] - - def __draw_nested_boxes(self, page, nested_bbox, color=(0, 1, 1)): - """ - This function draws the nested boxes - - Parameters - ---------- - page : fitz.Page - page - nested_bbox : list - nested bbox - color : tuple - color, by default (0, 1, 1) # draw with cyan color for combined paragraph - """ - if self.__is_nested_list(nested_bbox): # If it's a nested list - for bbox in nested_bbox: - self.__draw_nested_boxes(page, bbox, color) # Recursively call the function - elif self.__valid_rect(nested_bbox): # If valid rectangle - para_rect = fitz.Rect(nested_bbox) - para_anno = page.add_rect_annot(para_rect) - para_anno.set_colors(stroke=color) # draw with cyan color for combined paragraph - para_anno.set_border(width=1) - para_anno.update() - - def draw_annos(self, input_pdf_path, pdf_dic, output_pdf_path): - pdf_doc = open_pdf(input_pdf_path) - - if pdf_dic is None: - pdf_dic = {} - - if output_pdf_path is None: - output_pdf_path = input_pdf_path.replace(".pdf", "_anno.pdf") - - for page_id, page in enumerate(pdf_doc): # type: ignore - page_key = f"page_{page_id}" - for ele_key, ele_data in pdf_dic[page_key].items(): - if ele_key == "para_blocks": - para_blocks = ele_data - for para_block in para_blocks: - if "paras" in para_block.keys(): - paras = para_block["paras"] - for para_key, para_content in paras.items(): - para_bbox = para_content["para_bbox"] - # print(f"para_bbox: {para_bbox}") - # print(f"is a nested list: {self.__is_nested_list(para_bbox)}") - if self.__is_nested_list(para_bbox) and len(para_bbox) > 1: - color = (0, 1, 1) - self.__draw_nested_boxes( - page, para_bbox, color - ) # draw with cyan color for combined paragraph - else: - if self.__valid_rect(para_bbox): - para_rect = fitz.Rect(para_bbox) - para_anno = page.add_rect_annot(para_rect) - para_anno.set_colors(stroke=(0, 1, 0)) # draw with green color for normal paragraph - para_anno.set_border(width=0.5) - para_anno.update() - - is_para_title = para_content["is_para_title"] - if is_para_title: - if self.__is_nested_list(para_content["para_bbox"]) and len(para_content["para_bbox"]) > 1: - color = (0, 0, 1) - self.__draw_nested_boxes( - page, para_content["para_bbox"], color - ) # draw with cyan color for combined title - else: - if self.__valid_rect(para_content["para_bbox"]): - para_rect = fitz.Rect(para_content["para_bbox"]) - if self.__valid_rect(para_content["para_bbox"]): - para_anno = page.add_rect_annot(para_rect) - para_anno.set_colors(stroke=(0, 0, 1)) # draw with blue color for normal title - para_anno.set_border(width=0.5) - para_anno.update() - - pdf_doc.save(output_pdf_path) - pdf_doc.close() diff --git a/magic_pdf/para/exceptions.py b/magic_pdf/para/exceptions.py deleted file mode 100644 index 75b19fac4..000000000 --- a/magic_pdf/para/exceptions.py +++ /dev/null @@ -1,198 +0,0 @@ -class DenseSingleLineBlockException(Exception): - """ - This class defines the exception type for dense single line-block. - """ - - def __init__(self, message="DenseSingleLineBlockException"): - self.message = message - super().__init__(self.message) - - def __str__(self): - return f"{self.message}" - - def __repr__(self): - return f"{self.message}" - - -class TitleDetectionException(Exception): - """ - This class defines the exception type for title detection. - """ - - def __init__(self, message="TitleDetectionException"): - self.message = message - super().__init__(self.message) - - def __str__(self): - return f"{self.message}" - - def __repr__(self): - return f"{self.message}" - - -class TitleLevelException(Exception): - """ - This class defines the exception type for title level. - """ - - def __init__(self, message="TitleLevelException"): - self.message = message - super().__init__(self.message) - - def __str__(self): - return f"{self.message}" - - def __repr__(self): - return f"{self.message}" - - -class ParaSplitException(Exception): - """ - This class defines the exception type for paragraph splitting. - """ - - def __init__(self, message="ParaSplitException"): - self.message = message - super().__init__(self.message) - - def __str__(self): - return f"{self.message}" - - def __repr__(self): - return f"{self.message}" - - -class ParaMergeException(Exception): - """ - This class defines the exception type for paragraph merging. - """ - - def __init__(self, message="ParaMergeException"): - self.message = message - super().__init__(self.message) - - def __str__(self): - return f"{self.message}" - - def __repr__(self): - return f"{self.message}" - - -class DiscardByException: - """ - This class discards pdf files by exception - """ - - def __init__(self) -> None: - pass - - def discard_by_single_line_block(self, pdf_dic, exception: DenseSingleLineBlockException): - """ - This function discards pdf files by single line block exception - - Parameters - ---------- - pdf_dic : dict - pdf dictionary - exception : str - exception message - - Returns - ------- - error_message : str - """ - exception_page_nums = 0 - page_num = 0 - for page_id, page in pdf_dic.items(): - if page_id.startswith("page_"): - page_num += 1 - if "preproc_blocks" in page.keys(): - preproc_blocks = page["preproc_blocks"] - - all_single_line_blocks = [] - for block in preproc_blocks: - if len(block["lines"]) == 1: - all_single_line_blocks.append(block) - - if len(preproc_blocks) > 0 and len(all_single_line_blocks) / len(preproc_blocks) > 0.9: - exception_page_nums += 1 - - if page_num == 0: - return None - - if exception_page_nums / page_num > 0.1: # Low ratio means basically, whenever this is the case, it is discarded - return exception.message - - return None - - def discard_by_title_detection(self, pdf_dic, exception: TitleDetectionException): - """ - This function discards pdf files by title detection exception - - Parameters - ---------- - pdf_dic : dict - pdf dictionary - exception : str - exception message - - Returns - ------- - error_message : str - """ - # return exception.message - return None - - def discard_by_title_level(self, pdf_dic, exception: TitleLevelException): - """ - This function discards pdf files by title level exception - - Parameters - ---------- - pdf_dic : dict - pdf dictionary - exception : str - exception message - - Returns - ------- - error_message : str - """ - # return exception.message - return None - - def discard_by_split_para(self, pdf_dic, exception: ParaSplitException): - """ - This function discards pdf files by split para exception - - Parameters - ---------- - pdf_dic : dict - pdf dictionary - exception : str - exception message - - Returns - ------- - error_message : str - """ - # return exception.message - return None - - def discard_by_merge_para(self, pdf_dic, exception: ParaMergeException): - """ - This function discards pdf files by merge para exception - - Parameters - ---------- - pdf_dic : dict - pdf dictionary - exception : str - exception message - - Returns - ------- - error_message : str - """ - # return exception.message - return None diff --git a/magic_pdf/para/layout_match_processor.py b/magic_pdf/para/layout_match_processor.py deleted file mode 100644 index 4f93f1a87..000000000 --- a/magic_pdf/para/layout_match_processor.py +++ /dev/null @@ -1,40 +0,0 @@ -import math -from magic_pdf.para.commons import * - - -if sys.version_info[0] >= 3: - sys.stdout.reconfigure(encoding="utf-8") # type: ignore - - -class LayoutFilterProcessor: - def __init__(self) -> None: - pass - - def batch_process_blocks(self, pdf_dict): - for page_id, blocks in pdf_dict.items(): - if page_id.startswith("page_"): - if "layout_bboxes" in blocks.keys() and "para_blocks" in blocks.keys(): - layout_bbox_objs = blocks["layout_bboxes"] - if layout_bbox_objs is None: - continue - layout_bboxes = [bbox_obj["layout_bbox"] for bbox_obj in layout_bbox_objs] - - # Use math.ceil function to enlarge each value of x0, y0, x1, y1 of each layout_bbox - layout_bboxes = [ - [math.ceil(x0), math.ceil(y0), math.ceil(x1), math.ceil(y1)] for x0, y0, x1, y1 in layout_bboxes - ] - - para_blocks = blocks["para_blocks"] - if para_blocks is None: - continue - - for lb_bbox in layout_bboxes: - for i, para_block in enumerate(para_blocks): - para_bbox = para_block["bbox"] - para_blocks[i]["in_layout"] = 0 - if is_in_bbox(para_bbox, lb_bbox): - para_blocks[i]["in_layout"] = 1 - - blocks["para_blocks"] = para_blocks - - return pdf_dict diff --git a/magic_pdf/para/para_pipeline.py b/magic_pdf/para/para_pipeline.py deleted file mode 100644 index 13911c1a7..000000000 --- a/magic_pdf/para/para_pipeline.py +++ /dev/null @@ -1,297 +0,0 @@ -import os -import json - -from magic_pdf.para.commons import * - -from magic_pdf.para.raw_processor import RawBlockProcessor -from magic_pdf.para.layout_match_processor import LayoutFilterProcessor -from magic_pdf.para.stats import BlockStatisticsCalculator -from magic_pdf.para.stats import DocStatisticsCalculator -from magic_pdf.para.title_processor import TitleProcessor -from magic_pdf.para.block_termination_processor import BlockTerminationProcessor -from magic_pdf.para.block_continuation_processor import BlockContinuationProcessor -from magic_pdf.para.draw import DrawAnnos -from magic_pdf.para.exceptions import ( - DenseSingleLineBlockException, - TitleDetectionException, - TitleLevelException, - ParaSplitException, - ParaMergeException, - DiscardByException, -) - - -if sys.version_info[0] >= 3: - sys.stdout.reconfigure(encoding="utf-8") # type: ignore - - -class ParaProcessPipeline: - def __init__(self) -> None: - pass - - def para_process_pipeline(self, pdf_info_dict, para_debug_mode=None, input_pdf_path=None, output_pdf_path=None): - """ - This function processes the paragraphs, including: - 1. Read raw input json file into pdf_dic - 2. Detect and replace equations - 3. Combine spans into a natural line - 4. Check if the paragraphs are inside bboxes passed from "layout_bboxes" key - 5. Compute statistics for each block - 6. Detect titles in the document - 7. Detect paragraphs inside each block - 8. Divide the level of the titles - 9. Detect and combine paragraphs from different blocks into one paragraph - 10. Check whether the final results after checking headings, dividing paragraphs within blocks, and merging paragraphs between blocks are plausible and reasonable. - 11. Draw annotations on the pdf file - - Parameters - ---------- - pdf_dic_json_fpath : str - path to the pdf dictionary json file. - Notice: data noises, including overlap blocks, header, footer, watermark, vertical margin note have been removed already. - input_pdf_doc : str - path to the input pdf file - output_pdf_path : str - path to the output pdf file - - Returns - ------- - pdf_dict : dict - result dictionary - """ - - error_info = None - - output_json_file = "" - output_dir = "" - - if input_pdf_path is not None: - input_pdf_path = os.path.abspath(input_pdf_path) - - # print_green_on_red(f">>>>>>>>>>>>>>>>>>> Process the paragraphs of {input_pdf_path}") - - if output_pdf_path is not None: - output_dir = os.path.dirname(output_pdf_path) - output_json_file = f"{output_dir}/pdf_dic.json" - - def __save_pdf_dic(pdf_dic, output_pdf_path, stage="0", para_debug_mode=para_debug_mode): - """ - Save the pdf_dic to a json file - """ - output_pdf_file_name = os.path.basename(output_pdf_path) - # output_dir = os.path.dirname(output_pdf_path) - output_dir = "\\tmp\\pdf_parse" - output_pdf_file_name = output_pdf_file_name.replace(".pdf", f"_stage_{stage}.json") - pdf_dic_json_fpath = os.path.join(output_dir, output_pdf_file_name) - - if not os.path.exists(output_dir): - os.makedirs(output_dir) - - if para_debug_mode == "full": - with open(pdf_dic_json_fpath, "w", encoding="utf-8") as f: - json.dump(pdf_dic, f, indent=2, ensure_ascii=False) - - # Validate the output already exists - if not os.path.exists(pdf_dic_json_fpath): - print_red(f"Failed to save the pdf_dic to {pdf_dic_json_fpath}") - return None - else: - print_green(f"Succeed to save the pdf_dic to {pdf_dic_json_fpath}") - - return pdf_dic_json_fpath - - """ - Preprocess the lines of block - """ - # Find and replace the interline and inline equations, should be better done before the paragraph processing - # Create "para_blocks" for each page. - # equationProcessor = EquationsProcessor() - # pdf_dic = equationProcessor.batch_process_blocks(pdf_info_dict) - - # Combine spans into a natural line - rawBlockProcessor = RawBlockProcessor() - pdf_dic = rawBlockProcessor.batch_process_blocks(pdf_info_dict) - # print(f"pdf_dic['page_0']['para_blocks'][0]: {pdf_dic['page_0']['para_blocks'][0]}", end="\n\n") - - # Check if the paragraphs are inside bboxes passed from "layout_bboxes" key - layoutFilter = LayoutFilterProcessor() - pdf_dic = layoutFilter.batch_process_blocks(pdf_dic) - - # Compute statistics for each block - blockStatisticsCalculator = BlockStatisticsCalculator() - pdf_dic = blockStatisticsCalculator.batch_process_blocks(pdf_dic) - # print(f"pdf_dic['page_0']['para_blocks'][0]: {pdf_dic['page_0']['para_blocks'][0]}", end="\n\n") - - # Compute statistics for all blocks(namely this pdf document) - docStatisticsCalculator = DocStatisticsCalculator() - pdf_dic = docStatisticsCalculator.calc_stats_of_doc(pdf_dic) - # print(f"pdf_dic['statistics']: {pdf_dic['statistics']}", end="\n\n") - - # Dump the first three stages of pdf_dic to a json file - if para_debug_mode == "full": - pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="0", para_debug_mode=para_debug_mode) - - """ - Detect titles in the document - """ - doc_statistics = pdf_dic["statistics"] - titleProcessor = TitleProcessor(doc_statistics) - pdf_dic = titleProcessor.batch_process_blocks_detect_titles(pdf_dic) - - if para_debug_mode == "full": - pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="1", para_debug_mode=para_debug_mode) - - """ - Detect and divide the level of the titles - """ - titleProcessor = TitleProcessor() - - pdf_dic = titleProcessor.batch_process_blocks_recog_title_level(pdf_dic) - - if para_debug_mode == "full": - pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="2", para_debug_mode=para_debug_mode) - - """ - Detect and split paragraphs inside each block - """ - blockInnerParasProcessor = BlockTerminationProcessor() - - pdf_dic = blockInnerParasProcessor.batch_process_blocks(pdf_dic) - - if para_debug_mode == "full": - pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="3", para_debug_mode=para_debug_mode) - - # pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="3", para_debug_mode="full") - # print_green(f"pdf_dic_json_fpath: {pdf_dic_json_fpath}") - - """ - Detect and combine paragraphs from different blocks into one paragraph - """ - blockContinuationProcessor = BlockContinuationProcessor() - - pdf_dic = blockContinuationProcessor.batch_tag_paras(pdf_dic) - pdf_dic = blockContinuationProcessor.batch_merge_paras(pdf_dic) - - if para_debug_mode == "full": - pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="4", para_debug_mode=para_debug_mode) - - # pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="4", para_debug_mode="full") - # print_green(f"pdf_dic_json_fpath: {pdf_dic_json_fpath}") - - """ - Discard pdf files by checking exceptions and return the error info to the caller - """ - discardByException = DiscardByException() - - is_discard_by_single_line_block = discardByException.discard_by_single_line_block( - pdf_dic, exception=DenseSingleLineBlockException() - ) - is_discard_by_title_detection = discardByException.discard_by_title_detection( - pdf_dic, exception=TitleDetectionException() - ) - is_discard_by_title_level = discardByException.discard_by_title_level(pdf_dic, exception=TitleLevelException()) - is_discard_by_split_para = discardByException.discard_by_split_para(pdf_dic, exception=ParaSplitException()) - is_discard_by_merge_para = discardByException.discard_by_merge_para(pdf_dic, exception=ParaMergeException()) - - """ - if any( - info is not None - for info in [ - is_discard_by_single_line_block, - is_discard_by_title_detection, - is_discard_by_title_level, - is_discard_by_split_para, - is_discard_by_merge_para, - ] - ): - error_info = next( - ( - info - for info in [ - is_discard_by_single_line_block, - is_discard_by_title_detection, - is_discard_by_title_level, - is_discard_by_split_para, - is_discard_by_merge_para, - ] - if info is not None - ), - None, - ) - return pdf_dic, error_info - - if any( - info is not None - for info in [ - is_discard_by_single_line_block, - is_discard_by_title_detection, - is_discard_by_title_level, - is_discard_by_split_para, - is_discard_by_merge_para, - ] - ): - error_info = next( - ( - info - for info in [ - is_discard_by_single_line_block, - is_discard_by_title_detection, - is_discard_by_title_level, - is_discard_by_split_para, - is_discard_by_merge_para, - ] - if info is not None - ), - None, - ) - return pdf_dic, error_info - """ - - """ - Dump the final pdf_dic to a json file - """ - if para_debug_mode is not None: - with open(output_json_file, "w", encoding="utf-8") as f: - json.dump(pdf_info_dict, f, ensure_ascii=False, indent=4) - - """ - Draw the annotations - """ - - if is_discard_by_single_line_block is not None: - error_info = is_discard_by_single_line_block - elif is_discard_by_title_detection is not None: - error_info = is_discard_by_title_detection - elif is_discard_by_title_level is not None: - error_info = is_discard_by_title_level - elif is_discard_by_split_para is not None: - error_info = is_discard_by_split_para - elif is_discard_by_merge_para is not None: - error_info = is_discard_by_merge_para - - if error_info is not None: - return pdf_dic, error_info - - """ - Dump the final pdf_dic to a json file - """ - if para_debug_mode is not None: - with open(output_json_file, "w", encoding="utf-8") as f: - json.dump(pdf_info_dict, f, ensure_ascii=False, indent=4) - - """ - Draw the annotations - """ - if para_debug_mode is not None: - drawAnnos = DrawAnnos() - drawAnnos.draw_annos(input_pdf_path, pdf_dic, output_pdf_path) - - """ - Remove the intermediate files which are generated in the process of paragraph processing if debug_mode is simple - """ - if para_debug_mode is not None: - for fpath in os.listdir(output_dir): - if fpath.endswith(".json") and "stage" in fpath: - os.remove(os.path.join(output_dir, fpath)) - - return pdf_dic, error_info diff --git a/magic_pdf/para/para_split.py b/magic_pdf/para/para_split.py deleted file mode 100644 index c9808abed..000000000 --- a/magic_pdf/para/para_split.py +++ /dev/null @@ -1,644 +0,0 @@ -from sklearn.cluster import DBSCAN -import numpy as np -from loguru import logger - -from magic_pdf.libs.boxbase import _is_in_or_part_overlap_with_area_ratio as is_in_layout -from magic_pdf.libs.ocr_content_type import ContentType - - -LINE_STOP_FLAG = ['.', '!', '?', '。', '!', '?',":", ":", ")", ")", ";"] -INLINE_EQUATION = ContentType.InlineEquation -INTERLINE_EQUATION = ContentType.InterlineEquation -TEXT = ContentType.Text - - -def __get_span_text(span): - c = span.get('content', '') - if len(c)==0: - c = span.get('image_path', '') - - return c - - -def __detect_list_lines(lines, new_layout_bboxes, lang): - """ - 探测是否包含了列表,并且把列表的行分开. - 这样的段落特点是,顶格字母大写/数字,紧跟着几行缩进的。缩进的行首字母含小写的。 - """ - def find_repeating_patterns(lst): - indices = [] - ones_indices = [] - i = 0 - while i < len(lst) - 1: # 确保余下元素至少有2个 - if lst[i] == 1 and lst[i+1] in [2, 3]: # 额外检查以防止连续出现的1 - start = i - ones_in_this_interval = [i] - i += 1 - while i < len(lst) and lst[i] in [2, 3]: - i += 1 - # 验证下一个序列是否符合条件 - if i < len(lst) - 1 and lst[i] == 1 and lst[i+1] in [2, 3] and lst[i-1] in [2, 3]: - while i < len(lst) and lst[i] in [1, 2, 3]: - if lst[i] == 1: - ones_in_this_interval.append(i) - i += 1 - indices.append((start, i - 1)) - ones_indices.append(ones_in_this_interval) - else: - i += 1 - else: - i += 1 - return indices, ones_indices - """====================""" - def split_indices(slen, index_array): - result = [] - last_end = 0 - - for start, end in sorted(index_array): - if start > last_end: - # 前一个区间结束到下一个区间开始之间的部分标记为"text" - result.append(('text', last_end, start - 1)) - # 区间内标记为"list" - result.append(('list', start, end)) - last_end = end + 1 - - if last_end < slen: - # 如果最后一个区间结束后还有剩余的字符串,将其标记为"text" - result.append(('text', last_end, slen - 1)) - - return result - """====================""" - - if lang!='en': - return lines, None - else: - total_lines = len(lines) - line_fea_encode = [] - """ - 对每一行进行特征编码,编码规则如下: - 1. 如果行顶格,且大写字母开头或者数字开头,编码为1 - 2. 如果顶格,其他非大写开头编码为4 - 3. 如果非顶格,首字符大写,编码为2 - 4. 如果非顶格,首字符非大写编码为3 - """ - for l in lines: - first_char = __get_span_text(l['spans'][0])[0] - layout_left = __find_layout_bbox_by_line(l['bbox'], new_layout_bboxes)[0] - if l['bbox'][0] == layout_left: - if first_char.isupper() or first_char.isdigit(): - line_fea_encode.append(1) - else: - line_fea_encode.append(4) - else: - if first_char.isupper(): - line_fea_encode.append(2) - else: - line_fea_encode.append(3) - - # 然后根据编码进行分段, 选出来 1,2,3连续出现至少2次的行,认为是列表。 - - list_indice, list_start_idx = find_repeating_patterns(line_fea_encode) - if len(list_indice)>0: - logger.info(f"发现了列表,列表行数:{list_indice}, {list_start_idx}") - - # TODO check一下这个特列表里缩进的行左侧是不是对齐的。 - segments = [] - for start, end in list_indice: - for i in range(start, end+1): - if i>0: - if line_fea_encode[i] == 4: - logger.info(f"列表行的第{i}行不是顶格的") - break - else: - logger.info(f"列表行的第{start}到第{end}行是列表") - - return split_indices(total_lines, list_indice), list_start_idx - - - -def __valign_lines(blocks, layout_bboxes): - """ - 在一个layoutbox内对齐行的左侧和右侧。 - 扫描行的左侧和右侧,如果x0, x1差距不超过一个阈值,就强行对齐到所处layout的左右两侧(和layout有一段距离)。 - 3是个经验值,TODO,计算得来,可以设置为1.5个正文字符。 - """ - - min_distance = 3 - min_sample = 2 - new_layout_bboxes = [] - - for layout_box in layout_bboxes: - blocks_in_layoutbox = [b for b in blocks if is_in_layout(b['bbox'], layout_box['layout_bbox'])] - if len(blocks_in_layoutbox)==0: - continue - - x0_lst = np.array([[line['bbox'][0], 0] for block in blocks_in_layoutbox for line in block['lines']]) - x1_lst = np.array([[line['bbox'][2], 0] for block in blocks_in_layoutbox for line in block['lines']]) - x0_clusters = DBSCAN(eps=min_distance, min_samples=min_sample).fit(x0_lst) - x1_clusters = DBSCAN(eps=min_distance, min_samples=min_sample).fit(x1_lst) - x0_uniq_label = np.unique(x0_clusters.labels_) - x1_uniq_label = np.unique(x1_clusters.labels_) - - x0_2_new_val = {} # 存储旧值对应的新值映射 - x1_2_new_val = {} - for label in x0_uniq_label: - if label==-1: - continue - x0_index_of_label = np.where(x0_clusters.labels_==label) - x0_raw_val = x0_lst[x0_index_of_label][:,0] - x0_new_val = np.min(x0_lst[x0_index_of_label][:,0]) - x0_2_new_val.update({idx: x0_new_val for idx in x0_raw_val}) - for label in x1_uniq_label: - if label==-1: - continue - x1_index_of_label = np.where(x1_clusters.labels_==label) - x1_raw_val = x1_lst[x1_index_of_label][:,0] - x1_new_val = np.max(x1_lst[x1_index_of_label][:,0]) - x1_2_new_val.update({idx: x1_new_val for idx in x1_raw_val}) - - for block in blocks_in_layoutbox: - for line in block['lines']: - x0, x1 = line['bbox'][0], line['bbox'][2] - if x0 in x0_2_new_val: - line['bbox'][0] = int(x0_2_new_val[x0]) - - if x1 in x1_2_new_val: - line['bbox'][2] = int(x1_2_new_val[x1]) - # 其余对不齐的保持不动 - - # 由于修改了block里的line长度,现在需要重新计算block的bbox - for block in blocks_in_layoutbox: - block['bbox'] = [min([line['bbox'][0] for line in block['lines']]), - min([line['bbox'][1] for line in block['lines']]), - max([line['bbox'][2] for line in block['lines']]), - max([line['bbox'][3] for line in block['lines']])] - - """新计算layout的bbox,因为block的bbox变了。""" - layout_x0 = min([block['bbox'][0] for block in blocks_in_layoutbox]) - layout_y0 = min([block['bbox'][1] for block in blocks_in_layoutbox]) - layout_x1 = max([block['bbox'][2] for block in blocks_in_layoutbox]) - layout_y1 = max([block['bbox'][3] for block in blocks_in_layoutbox]) - new_layout_bboxes.append([layout_x0, layout_y0, layout_x1, layout_y1]) - - return new_layout_bboxes - - -def __align_text_in_layout(blocks, layout_bboxes): - """ - 由于ocr出来的line,有时候会在前后有一段空白,这个时候需要对文本进行对齐,超出的部分被layout左右侧截断。 - """ - for layout in layout_bboxes: - lb = layout['layout_bbox'] - blocks_in_layoutbox = [b for b in blocks if is_in_layout(b['bbox'], lb)] - if len(blocks_in_layoutbox)==0: - continue - - for block in blocks_in_layoutbox: - for line in block['lines']: - x0, x1 = line['bbox'][0], line['bbox'][2] - if x0 < lb[0]: - line['bbox'][0] = lb[0] - if x1 > lb[2]: - line['bbox'][2] = lb[2] - - -def __common_pre_proc(blocks, layout_bboxes): - """ - 不分语言的,对文本进行预处理 - """ - #__add_line_period(blocks, layout_bboxes) - __align_text_in_layout(blocks, layout_bboxes) - aligned_layout_bboxes = __valign_lines(blocks, layout_bboxes) - - return aligned_layout_bboxes - -def __pre_proc_zh_blocks(blocks, layout_bboxes): - """ - 对中文文本进行分段预处理 - """ - pass - - -def __pre_proc_en_blocks(blocks, layout_bboxes): - """ - 对英文文本进行分段预处理 - """ - pass - - -def __group_line_by_layout(blocks, layout_bboxes, lang="en"): - """ - 每个layout内的行进行聚合 - """ - # 因为只是一个block一行目前, 一个block就是一个段落 - lines_group = [] - - for lyout in layout_bboxes: - lines = [line for block in blocks if is_in_layout(block['bbox'], lyout['layout_bbox']) for line in block['lines']] - lines_group.append(lines) - - return lines_group - - -def __split_para_in_layoutbox(lines_group, new_layout_bbox, lang="en", char_avg_len=10): - """ - lines_group 进行行分段——layout内部进行分段。lines_group内每个元素是一个Layoutbox内的所有行。 - 1. 先计算每个group的左右边界。 - 2. 然后根据行末尾特征进行分段。 - 末尾特征:以句号等结束符结尾。并且距离右侧边界有一定距离。 - 且下一行开头不留空白。 - - """ - list_info = [] # 这个layout最后是不是列表,记录每一个layout里是不是列表开头,列表结尾 - layout_paras = [] - right_tail_distance = 1.5 * char_avg_len - - for lines in lines_group: - paras = [] - total_lines = len(lines) - if total_lines==0: - continue # 0行无需处理 - if total_lines==1: # 1行无法分段。 - layout_paras.append([lines]) - list_info.append([False, False]) - continue - - """在进入到真正的分段之前,要对文字块从统计维度进行对齐方式的探测, - 对齐方式分为以下: - 1. 左对齐的文本块(特点是左侧顶格,或者左侧不顶格但是右侧顶格的行数大于非顶格的行数,顶格的首字母有大写也有小写) - 1) 右侧对齐的行,单独成一段 - 2) 中间对齐的行,按照字体/行高聚合成一段 - 2. 左对齐的列表块(其特点是左侧顶格的行数小于等于非顶格的行数,非定格首字母会有小写,顶格90%是大写。并且左侧顶格行数大于1,大于1是为了这种模式连续出现才能称之为列表) - 这样的文本块,顶格的为一个段落开头,紧随其后非顶格的行属于这个段落。 - """ - - text_segments, list_start_line = __detect_list_lines(lines, new_layout_bbox, lang) - """根据list_range,把lines分成几个部分 - - """ - - layout_right = __find_layout_bbox_by_line(lines[0]['bbox'], new_layout_bbox)[2] - layout_left = __find_layout_bbox_by_line(lines[0]['bbox'], new_layout_bbox)[0] - para = [] # 元素是line - layout_list_info = [False, False] # 这个layout最后是不是列表,记录每一个layout里是不是列表开头,列表结尾 - for content_type, start, end in text_segments: - if content_type == 'list': - for i, line in enumerate(lines[start:end+1]): - line_x0 = line['bbox'][0] - if line_x0 == layout_left: # 列表开头 - if len(para)>0: - paras.append(para) - para = [] - para.append(line) - else: - para.append(line) - if len(para)>0: - paras.append(para) - para = [] - if start==0: - layout_list_info[0] = True - if end==total_lines-1: - layout_list_info[1] = True - else: # 是普通文本 - for i, line in enumerate(lines[start:end+1]): - # 如果i有下一行,那么就要根据下一行位置综合判断是否要分段。如果i之后没有行,那么只需要判断i行自己的结尾特征。 - cur_line_type = line['spans'][-1]['type'] - next_line = lines[i+1] if i= layout_right - right_tail_distance and next_line and next_line['bbox'][0] == layout_left: # 现在这行到了行尾沾满,下一行存在且顶格。 - para.append(line) - else: - para.append(line) - paras.append(para) - para = [] - else: # 其他,图片、表格、行间公式,各自占一段 - if len(para)>0: # 先把之前的段落加入到结果中 - paras.append(para) - para = [] - paras.append([line]) # 再把当前行加入到结果中。当前行为行间公式、图、表等。 - para = [] - - if len(para)>0: - paras.append(para) - para = [] - - list_info.append(layout_list_info) - layout_paras.append(paras) - paras = [] - - - return layout_paras, list_info - -def __connect_list_inter_layout(layout_paras, new_layout_bbox, layout_list_info, page_num, lang): - """ - 如果上个layout的最后一个段落是列表,下一个layout的第一个段落也是列表,那么将他们连接起来。 TODO 因为没有区分列表和段落,所以这个方法暂时不实现。 - 根据layout_list_info判断是不是列表。,下个layout的第一个段如果不是列表,那么看他们是否有几行都有相同的缩进。 - """ - if len(layout_paras)==0 or len(layout_list_info)==0: # 0的时候最后的return 会出错 - return layout_paras, [False, False] - - for i in range(1, len(layout_paras)): - pre_layout_list_info = layout_list_info[i-1] - next_layout_list_info = layout_list_info[i] - pre_last_para = layout_paras[i-1][-1] - next_paras = layout_paras[i] - next_first_para = next_paras[0] - - if pre_layout_list_info[1] and not next_layout_list_info[0]: # 前一个是列表结尾,后一个是非列表开头,此时检测是否有相同的缩进 - logger.info(f"连接page {page_num} 内的list") - # 向layout_paras[i] 寻找开头具有相同缩进的连续的行 - may_list_lines = [] - for j in range(len(next_paras)): - line = next_paras[j] - if len(line)==1: # 只可能是一行,多行情况再需要分析了 - if line[0]['bbox'][0] > __find_layout_bbox_by_line(line[0]['bbox'], new_layout_bbox)[0]: - may_list_lines.append(line[0]) - else: - break - else: - break - # 如果这些行的缩进是相等的,那么连到上一个layout的最后一个段落上。 - if len(may_list_lines)>0 and len(set([x['bbox'][0] for x in may_list_lines]))==1: - pre_last_para.extend(may_list_lines) - layout_paras[i] = layout_paras[i][len(may_list_lines):] - - return layout_paras, [layout_list_info[0][0], layout_list_info[-1][1]] # 同时还返回了这个页面级别的开头、结尾是不是列表的信息 - - -def __connect_list_inter_page(pre_page_paras, next_page_paras, pre_page_layout_bbox, next_page_layout_bbox, pre_page_list_info, next_page_list_info, page_num, lang): - """ - 如果上个layout的最后一个段落是列表,下一个layout的第一个段落也是列表,那么将他们连接起来。 TODO 因为没有区分列表和段落,所以这个方法暂时不实现。 - 根据layout_list_info判断是不是列表。,下个layout的第一个段如果不是列表,那么看他们是否有几行都有相同的缩进。 - """ - if len(pre_page_paras)==0 or len(next_page_paras)==0: # 0的时候最后的return 会出错 - return False - - if pre_page_list_info[1] and not next_page_list_info[0]: # 前一个是列表结尾,后一个是非列表开头,此时检测是否有相同的缩进 - logger.info(f"连接page {page_num} 内的list") - # 向layout_paras[i] 寻找开头具有相同缩进的连续的行 - may_list_lines = [] - for j in range(len(next_page_paras[0])): - line = next_page_paras[0][j] - if len(line)==1: # 只可能是一行,多行情况再需要分析了 - if line[0]['bbox'][0] > __find_layout_bbox_by_line(line[0]['bbox'], next_page_layout_bbox)[0]: - may_list_lines.append(line[0]) - else: - break - else: - break - # 如果这些行的缩进是相等的,那么连到上一个layout的最后一个段落上。 - if len(may_list_lines)>0 and len(set([x['bbox'][0] for x in may_list_lines]))==1: - pre_page_paras[-1].append(may_list_lines) - next_page_paras[0] = next_page_paras[0][len(may_list_lines):] - return True - - return False - - -def __find_layout_bbox_by_line(line_bbox, layout_bboxes): - """ - 根据line找到所在的layout - """ - for layout in layout_bboxes: - if is_in_layout(line_bbox, layout): - return layout - return None - - -def __connect_para_inter_layoutbox(layout_paras, new_layout_bbox, lang): - """ - layout之间进行分段。 - 主要是计算前一个layOut的最后一行和后一个layout的第一行是否可以连接。 - 连接的条件需要同时满足: - 1. 上一个layout的最后一行沾满整个行。并且没有结尾符号。 - 2. 下一行开头不留空白。 - - """ - connected_layout_paras = [] - if len(layout_paras)==0: - return connected_layout_paras - - connected_layout_paras.append(layout_paras[0]) - for i in range(1, len(layout_paras)): - try: - if len(layout_paras[i])==0 or len(layout_paras[i-1])==0: # TODO 考虑连接问题, - continue - pre_last_line = layout_paras[i-1][-1][-1] - next_first_line = layout_paras[i][0][0] - except Exception as e: - logger.error(f"page layout {i} has no line") - continue - pre_last_line_text = ''.join([__get_span_text(span) for span in pre_last_line['spans']]) - pre_last_line_type = pre_last_line['spans'][-1]['type'] - next_first_line_text = ''.join([__get_span_text(span) for span in next_first_line['spans']]) - next_first_line_type = next_first_line['spans'][0]['type'] - if pre_last_line_type not in [TEXT, INLINE_EQUATION] or next_first_line_type not in [TEXT, INLINE_EQUATION]: - connected_layout_paras.append(layout_paras[i]) - continue - - pre_x2_max = __find_layout_bbox_by_line(pre_last_line['bbox'], new_layout_bbox)[2] - next_x0_min = __find_layout_bbox_by_line(next_first_line['bbox'], new_layout_bbox)[0] - - pre_last_line_text = pre_last_line_text.strip() - next_first_line_text = next_first_line_text.strip() - if pre_last_line['bbox'][2] == pre_x2_max and pre_last_line_text[-1] not in LINE_STOP_FLAG and next_first_line['bbox'][0]==next_x0_min: # 前面一行沾满了整个行,并且没有结尾符号.下一行没有空白开头。 - """连接段落条件成立,将前一个layout的段落和后一个layout的段落连接。""" - connected_layout_paras[-1][-1].extend(layout_paras[i][0]) - layout_paras[i].pop(0) # 删除后一个layout的第一个段落, 因为他已经被合并到前一个layout的最后一个段落了。 - if len(layout_paras[i])==0: - layout_paras.pop(i) - else: - connected_layout_paras.append(layout_paras[i]) - else: - """连接段落条件不成立,将前一个layout的段落加入到结果中。""" - connected_layout_paras.append(layout_paras[i]) - - return connected_layout_paras - - -def __connect_para_inter_page(pre_page_paras, next_page_paras, pre_page_layout_bbox, next_page_layout_bbox, page_num, lang): - """ - 连接起来相邻两个页面的段落——前一个页面最后一个段落和后一个页面的第一个段落。 - 是否可以连接的条件: - 1. 前一个页面的最后一个段落最后一行沾满整个行。并且没有结尾符号。 - 2. 后一个页面的第一个段落第一行没有空白开头。 - """ - # 有的页面可能压根没有文字 - if len(pre_page_paras)==0 or len(next_page_paras)==0 or len(pre_page_paras[0])==0 or len(next_page_paras[0])==0: # TODO [[]]为什么出现在pre_page_paras里? - return False - pre_last_para = pre_page_paras[-1][-1] - next_first_para = next_page_paras[0][0] - pre_last_line = pre_last_para[-1] - next_first_line = next_first_para[0] - pre_last_line_text = ''.join([__get_span_text(span) for span in pre_last_line['spans']]) - pre_last_line_type = pre_last_line['spans'][-1]['type'] - next_first_line_text = ''.join([__get_span_text(span) for span in next_first_line['spans']]) - next_first_line_type = next_first_line['spans'][0]['type'] - - if pre_last_line_type not in [TEXT, INLINE_EQUATION] or next_first_line_type not in [TEXT, INLINE_EQUATION]: # TODO,真的要做好,要考虑跨table, image, 行间的情况 - # 不是文本,不连接 - return False - - pre_x2_max = __find_layout_bbox_by_line(pre_last_line['bbox'], pre_page_layout_bbox)[2] - next_x0_min = __find_layout_bbox_by_line(next_first_line['bbox'], next_page_layout_bbox)[0] - - pre_last_line_text = pre_last_line_text.strip() - next_first_line_text = next_first_line_text.strip() - if pre_last_line['bbox'][2] == pre_x2_max and pre_last_line_text[-1] not in LINE_STOP_FLAG and next_first_line['bbox'][0]==next_x0_min: # 前面一行沾满了整个行,并且没有结尾符号.下一行没有空白开头。 - """连接段落条件成立,将前一个layout的段落和后一个layout的段落连接。""" - pre_last_para.extend(next_first_para) - next_page_paras[0].pop(0) # 删除后一个页面的第一个段落, 因为他已经被合并到前一个页面的最后一个段落了。 - return True - else: - return False - -def find_consecutive_true_regions(input_array): - start_index = None # 连续True区域的起始索引 - regions = [] # 用于保存所有连续True区域的起始和结束索引 - - for i in range(len(input_array)): - # 如果我们找到了一个True值,并且当前并没有在连续True区域中 - if input_array[i] and start_index is None: - start_index = i # 记录连续True区域的起始索引 - - # 如果我们找到了一个False值,并且当前在连续True区域中 - elif not input_array[i] and start_index is not None: - # 如果连续True区域长度大于1,那么将其添加到结果列表中 - if i - start_index > 1: - regions.append((start_index, i-1)) - start_index = None # 重置起始索引 - - # 如果最后一个元素是True,那么需要将最后一个连续True区域加入到结果列表中 - if start_index is not None and len(input_array) - start_index > 1: - regions.append((start_index, len(input_array)-1)) - - return regions - - -def __connect_middle_align_text(page_paras, new_layout_bbox, page_num, lang, debug_mode): - """ - 找出来中间对齐的连续单行文本,如果连续行高度相同,那么合并为一个段落。 - 一个line居中的条件是: - 1. 水平中心点跨越layout的中心点。 - 2. 左右两侧都有空白 - """ - - for layout_i, layout_para in enumerate(page_paras): - layout_box = new_layout_bbox[layout_i] - single_line_paras_tag = [] - for i in range(len(layout_para)): - single_line_paras_tag.append(len(layout_para[i])==1 and layout_para[i][0]['spans'][0]['type']==TEXT) - - """找出来连续的单行文本,如果连续行高度相同,那么合并为一个段落。""" - consecutive_single_line_indices = find_consecutive_true_regions(single_line_paras_tag) - if len(consecutive_single_line_indices)>0: - index_offset = 0 - """检查这些行是否是高度相同的,居中的""" - for start, end in consecutive_single_line_indices: - start += index_offset - end += index_offset - line_hi = np.array([line[0]['bbox'][3]-line[0]['bbox'][1] for line in layout_para[start:end+1]]) - first_line_text = ''.join([__get_span_text(span) for span in layout_para[start][0]['spans']]) - if "Table" in first_line_text or "Figure" in first_line_text: - pass - if debug_mode: - logger.debug(line_hi.std()) - - if line_hi.std()<2: - """行高度相同,那么判断是否居中""" - all_left_x0 = [line[0]['bbox'][0] for line in layout_para[start:end+1]] - all_right_x1 = [line[0]['bbox'][2] for line in layout_para[start:end+1]] - layout_center = (layout_box[0] + layout_box[2]) / 2 - if all([x0 < layout_center < x1 for x0, x1 in zip(all_left_x0, all_right_x1)]) \ - and not all([x0==layout_box[0] for x0 in all_left_x0]) \ - and not all([x1==layout_box[2] for x1 in all_right_x1]): - merge_para = [l[0] for l in layout_para[start:end+1]] - para_text = ''.join([__get_span_text(span) for line in merge_para for span in line['spans']]) - if debug_mode: - logger.debug(para_text) - layout_para[start:end+1] = [merge_para] - index_offset -= end-start - - return - - -def __merge_signle_list_text(page_paras, new_layout_bbox, page_num, lang): - """ - 找出来连续的单行文本,如果首行顶格,接下来的几个单行段落缩进对齐,那么合并为一个段落。 - """ - - pass - - -def __do_split_page(blocks, layout_bboxes, new_layout_bbox, page_num, lang): - """ - 根据line和layout情况进行分段 - 先实现一个根据行末尾特征分段的简单方法。 - """ - """ - 算法思路: - 1. 扫描layout里每一行,找出来行尾距离layout有边界有一定距离的行。 - 2. 从上述行中找到末尾是句号等可作为断行标志的行。 - 3. 参照上述行尾特征进行分段。 - 4. 图、表,目前独占一行,不考虑分段。 - """ - if page_num==343: - pass - lines_group = __group_line_by_layout(blocks, layout_bboxes, lang) # block内分段 - layout_paras, layout_list_info = __split_para_in_layoutbox(lines_group, new_layout_bbox, lang) # layout内分段 - layout_paras2, page_list_info = __connect_list_inter_layout(layout_paras, new_layout_bbox, layout_list_info, page_num, lang) # layout之间连接列表段落 - connected_layout_paras = __connect_para_inter_layoutbox(layout_paras2, new_layout_bbox, lang) # layout间链接段落 - - - return connected_layout_paras, page_list_info - - -def para_split(pdf_info_dict, debug_mode, lang="en"): - """ - 根据line和layout情况进行分段 - """ - new_layout_of_pages = [] # 数组的数组,每个元素是一个页面的layoutS - all_page_list_info = [] # 保存每个页面开头和结尾是否是列表 - for page_num, page in pdf_info_dict.items(): - blocks = page['preproc_blocks'] - layout_bboxes = page['layout_bboxes'] - new_layout_bbox = __common_pre_proc(blocks, layout_bboxes) - new_layout_of_pages.append(new_layout_bbox) - splited_blocks, page_list_info = __do_split_page(blocks, layout_bboxes, new_layout_bbox, page_num, lang) - all_page_list_info.append(page_list_info) - page['para_blocks'] = splited_blocks - - """连接页面与页面之间的可能合并的段落""" - pdf_infos = list(pdf_info_dict.values()) - for page_num, page in enumerate(pdf_info_dict.values()): - if page_num==0: - continue - pre_page_paras = pdf_infos[page_num-1]['para_blocks'] - next_page_paras = pdf_infos[page_num]['para_blocks'] - pre_page_layout_bbox = new_layout_of_pages[page_num-1] - next_page_layout_bbox = new_layout_of_pages[page_num] - - is_conn = __connect_para_inter_page(pre_page_paras, next_page_paras, pre_page_layout_bbox, next_page_layout_bbox, page_num, lang) - if debug_mode: - if is_conn: - logger.info(f"连接了第{page_num-1}页和第{page_num}页的段落") - - is_list_conn = __connect_list_inter_page(pre_page_paras, next_page_paras, pre_page_layout_bbox, next_page_layout_bbox, all_page_list_info[page_num-1], all_page_list_info[page_num], page_num, lang) - if debug_mode: - if is_list_conn: - logger.info(f"连接了第{page_num-1}页和第{page_num}页的列表段落") - - """接下来可能会漏掉一些特别的一些可以合并的内容,对他们进行段落连接 - 1. 正文中有时出现一个行顶格,接下来几行缩进的情况。 - 2. 居中的一些连续单行,如果高度相同,那么可能是一个段落。 - """ - for page_num, page in enumerate(pdf_info_dict.values()): - page_paras = page['para_blocks'] - new_layout_bbox = new_layout_of_pages[page_num] - __connect_middle_align_text(page_paras, new_layout_bbox, page_num, lang, debug_mode=debug_mode) - __merge_signle_list_text(page_paras, new_layout_bbox, page_num, lang) diff --git a/magic_pdf/para/para_split_v2.py b/magic_pdf/para/para_split_v2.py deleted file mode 100644 index 0e9ab0cdb..000000000 --- a/magic_pdf/para/para_split_v2.py +++ /dev/null @@ -1,789 +0,0 @@ -import copy - -from sklearn.cluster import DBSCAN -import numpy as np -from loguru import logger -import re -from magic_pdf.libs.boxbase import _is_in_or_part_overlap_with_area_ratio as is_in_layout -from magic_pdf.libs.ocr_content_type import ContentType, BlockType -from magic_pdf.model.magic_model import MagicModel -from magic_pdf.libs.Constants import * - -LINE_STOP_FLAG = ['.', '!', '?', '。', '!', '?', ":", ":", ")", ")", ";"] -INLINE_EQUATION = ContentType.InlineEquation -INTERLINE_EQUATION = ContentType.InterlineEquation -TEXT = ContentType.Text -debug_able = False - - -def __get_span_text(span): - c = span.get('content', '') - if len(c) == 0: - c = span.get('image_path', '') - - return c - - -def __detect_list_lines(lines, new_layout_bboxes, lang): - global debug_able - """ - 探测是否包含了列表,并且把列表的行分开. - 这样的段落特点是,顶格字母大写/数字,紧跟着几行缩进的。缩进的行首字母含小写的。 - """ - - def find_repeating_patterns2(lst): - indices = [] - ones_indices = [] - i = 0 - while i < len(lst): # Loop through the entire list - if lst[i] == 1: # If we encounter a '1', we might be at the start of a pattern - start = i - ones_in_this_interval = [i] - i += 1 - # Traverse elements that are 1, 2 or 3, until we encounter something else - while i < len(lst) and lst[i] in [1, 2, 3]: - if lst[i] == 1: - ones_in_this_interval.append(i) - i += 1 - if len(ones_in_this_interval) > 1 or ( - start < len(lst) - 1 and ones_in_this_interval and lst[start + 1] in [2, 3]): - indices.append((start, i - 1)) - ones_indices.append(ones_in_this_interval) - else: - i += 1 - return indices, ones_indices - - def find_repeating_patterns(lst): - indices = [] - ones_indices = [] - i = 0 - while i < len(lst) - 1: # 确保余下元素至少有2个 - if lst[i] == 1 and lst[i + 1] in [2, 3]: # 额外检查以防止连续出现的1 - start = i - ones_in_this_interval = [i] - i += 1 - while i < len(lst) and lst[i] in [2, 3]: - i += 1 - # 验证下一个序列是否符合条件 - if i < len(lst) - 1 and lst[i] == 1 and lst[i + 1] in [2, 3] and lst[i - 1] in [2, 3]: - while i < len(lst) and lst[i] in [1, 2, 3]: - if lst[i] == 1: - ones_in_this_interval.append(i) - i += 1 - indices.append((start, i - 1)) - ones_indices.append(ones_in_this_interval) - else: - i += 1 - else: - i += 1 - return indices, ones_indices - - """====================""" - - def split_indices(slen, index_array): - result = [] - last_end = 0 - - for start, end in sorted(index_array): - if start > last_end: - # 前一个区间结束到下一个区间开始之间的部分标记为"text" - result.append(('text', last_end, start - 1)) - # 区间内标记为"list" - result.append(('list', start, end)) - last_end = end + 1 - - if last_end < slen: - # 如果最后一个区间结束后还有剩余的字符串,将其标记为"text" - result.append(('text', last_end, slen - 1)) - - return result - - """====================""" - - if lang != 'en': - return lines, None - - total_lines = len(lines) - line_fea_encode = [] - """ - 对每一行进行特征编码,编码规则如下: - 1. 如果行顶格,且大写字母开头或者数字开头,编码为1 - 2. 如果顶格,其他非大写开头编码为4 - 3. 如果非顶格,首字符大写,编码为2 - 4. 如果非顶格,首字符非大写编码为3 - """ - if len(lines) > 0: - x_map_tag_dict, min_x_tag = cluster_line_x(lines) - for l in lines: - span_text = __get_span_text(l['spans'][0]) - if not span_text: - line_fea_encode.append(0) - continue - first_char = span_text[0] - layout = __find_layout_bbox_by_line(l['bbox'], new_layout_bboxes) - if not layout: - line_fea_encode.append(0) - else: - # - if x_map_tag_dict[round(l['bbox'][0])] == min_x_tag: - # if first_char.isupper() or first_char.isdigit() or not first_char.isalnum(): - if not first_char.isalnum() or if_match_reference_list(span_text): - line_fea_encode.append(1) - else: - line_fea_encode.append(4) - else: - if first_char.isupper(): - line_fea_encode.append(2) - else: - line_fea_encode.append(3) - - # 然后根据编码进行分段, 选出来 1,2,3连续出现至少2次的行,认为是列表。 - - list_indice, list_start_idx = find_repeating_patterns2(line_fea_encode) - if len(list_indice) > 0: - if debug_able: - logger.info(f"发现了列表,列表行数:{list_indice}, {list_start_idx}") - - # TODO check一下这个特列表里缩进的行左侧是不是对齐的。 - segments = [] - for start, end in list_indice: - for i in range(start, end + 1): - if i > 0: - if line_fea_encode[i] == 4: - if debug_able: - logger.info(f"列表行的第{i}行不是顶格的") - break - else: - if debug_able: - logger.info(f"列表行的第{start}到第{end}行是列表") - - return split_indices(total_lines, list_indice), list_start_idx - - -def cluster_line_x(lines: list) -> dict: - """ - 对一个block内所有lines的bbox的x0聚类 - """ - min_distance = 5 - min_sample = 1 - x0_lst = np.array([[round(line['bbox'][0]), 0] for line in lines]) - x0_clusters = DBSCAN(eps=min_distance, min_samples=min_sample).fit(x0_lst) - x0_uniq_label = np.unique(x0_clusters.labels_) - # x1_lst = np.array([[line['bbox'][2], 0] for line in lines]) - x0_2_new_val = {} # 存储旧值对应的新值映射 - min_x0 = round(lines[0]["bbox"][0]) - for label in x0_uniq_label: - if label == -1: - continue - x0_index_of_label = np.where(x0_clusters.labels_ == label) - x0_raw_val = x0_lst[x0_index_of_label][:, 0] - x0_new_val = np.min(x0_lst[x0_index_of_label][:, 0]) - x0_2_new_val.update({round(raw_val): round(x0_new_val) for raw_val in x0_raw_val}) - if x0_new_val < min_x0: - min_x0 = x0_new_val - return x0_2_new_val, min_x0 - - -def if_match_reference_list(text: str) -> bool: - pattern = re.compile(r'^\d+\..*') - if pattern.match(text): - return True - else: - return False - - -def __valign_lines(blocks, layout_bboxes): - """ - 在一个layoutbox内对齐行的左侧和右侧。 - 扫描行的左侧和右侧,如果x0, x1差距不超过一个阈值,就强行对齐到所处layout的左右两侧(和layout有一段距离)。 - 3是个经验值,TODO,计算得来,可以设置为1.5个正文字符。 - """ - - min_distance = 3 - min_sample = 2 - new_layout_bboxes = [] - # add bbox_fs for para split calculation - for block in blocks: - block["bbox_fs"] = copy.deepcopy(block["bbox"]) - for layout_box in layout_bboxes: - blocks_in_layoutbox = [b for b in blocks if - b["type"] == BlockType.Text and is_in_layout(b['bbox'], layout_box['layout_bbox'])] - if len(blocks_in_layoutbox) == 0 or len(blocks_in_layoutbox[0]["lines"]) == 0: - new_layout_bboxes.append(layout_box['layout_bbox']) - continue - - x0_lst = np.array([[line['bbox'][0], 0] for block in blocks_in_layoutbox for line in block['lines']]) - x1_lst = np.array([[line['bbox'][2], 0] for block in blocks_in_layoutbox for line in block['lines']]) - x0_clusters = DBSCAN(eps=min_distance, min_samples=min_sample).fit(x0_lst) - x1_clusters = DBSCAN(eps=min_distance, min_samples=min_sample).fit(x1_lst) - x0_uniq_label = np.unique(x0_clusters.labels_) - x1_uniq_label = np.unique(x1_clusters.labels_) - - x0_2_new_val = {} # 存储旧值对应的新值映射 - x1_2_new_val = {} - for label in x0_uniq_label: - if label == -1: - continue - x0_index_of_label = np.where(x0_clusters.labels_ == label) - x0_raw_val = x0_lst[x0_index_of_label][:, 0] - x0_new_val = np.min(x0_lst[x0_index_of_label][:, 0]) - x0_2_new_val.update({idx: x0_new_val for idx in x0_raw_val}) - for label in x1_uniq_label: - if label == -1: - continue - x1_index_of_label = np.where(x1_clusters.labels_ == label) - x1_raw_val = x1_lst[x1_index_of_label][:, 0] - x1_new_val = np.max(x1_lst[x1_index_of_label][:, 0]) - x1_2_new_val.update({idx: x1_new_val for idx in x1_raw_val}) - - for block in blocks_in_layoutbox: - for line in block['lines']: - x0, x1 = line['bbox'][0], line['bbox'][2] - if x0 in x0_2_new_val: - line['bbox'][0] = int(x0_2_new_val[x0]) - - if x1 in x1_2_new_val: - line['bbox'][2] = int(x1_2_new_val[x1]) - # 其余对不齐的保持不动 - - # 由于修改了block里的line长度,现在需要重新计算block的bbox - for block in blocks_in_layoutbox: - if len(block["lines"]) > 0: - block['bbox_fs'] = [min([line['bbox'][0] for line in block['lines']]), - min([line['bbox'][1] for line in block['lines']]), - max([line['bbox'][2] for line in block['lines']]), - max([line['bbox'][3] for line in block['lines']])] - """新计算layout的bbox,因为block的bbox变了。""" - layout_x0 = min([block['bbox_fs'][0] for block in blocks_in_layoutbox]) - layout_y0 = min([block['bbox_fs'][1] for block in blocks_in_layoutbox]) - layout_x1 = max([block['bbox_fs'][2] for block in blocks_in_layoutbox]) - layout_y1 = max([block['bbox_fs'][3] for block in blocks_in_layoutbox]) - new_layout_bboxes.append([layout_x0, layout_y0, layout_x1, layout_y1]) - - return new_layout_bboxes - - -def __align_text_in_layout(blocks, layout_bboxes): - """ - 由于ocr出来的line,有时候会在前后有一段空白,这个时候需要对文本进行对齐,超出的部分被layout左右侧截断。 - """ - for layout in layout_bboxes: - lb = layout['layout_bbox'] - blocks_in_layoutbox = [block for block in blocks if - block["type"] == BlockType.Text and is_in_layout(block['bbox'], lb)] - if len(blocks_in_layoutbox) == 0: - continue - - for block in blocks_in_layoutbox: - for line in block.get("lines", []): - x0, x1 = line['bbox'][0], line['bbox'][2] - if x0 < lb[0]: - line['bbox'][0] = lb[0] - if x1 > lb[2]: - line['bbox'][2] = lb[2] - - -def __common_pre_proc(blocks, layout_bboxes): - """ - 不分语言的,对文本进行预处理 - """ - # __add_line_period(blocks, layout_bboxes) - __align_text_in_layout(blocks, layout_bboxes) - aligned_layout_bboxes = __valign_lines(blocks, layout_bboxes) - - return aligned_layout_bboxes - - -def __pre_proc_zh_blocks(blocks, layout_bboxes): - """ - 对中文文本进行分段预处理 - """ - pass - - -def __pre_proc_en_blocks(blocks, layout_bboxes): - """ - 对英文文本进行分段预处理 - """ - pass - - -def __group_line_by_layout(blocks, layout_bboxes): - """ - 每个layout内的行进行聚合 - """ - # 因为只是一个block一行目前, 一个block就是一个段落 - blocks_group = [] - for lyout in layout_bboxes: - blocks_in_layout = [block for block in blocks if is_in_layout(block.get('bbox_fs', None), lyout['layout_bbox'])] - blocks_group.append(blocks_in_layout) - return blocks_group - - -def __split_para_in_layoutbox(blocks_group, new_layout_bbox, lang="en"): - """ - lines_group 进行行分段——layout内部进行分段。lines_group内每个元素是一个Layoutbox内的所有行。 - 1. 先计算每个group的左右边界。 - 2. 然后根据行末尾特征进行分段。 - 末尾特征:以句号等结束符结尾。并且距离右侧边界有一定距离。 - 且下一行开头不留空白。 - - """ - list_info = [] # 这个layout最后是不是列表,记录每一个layout里是不是列表开头,列表结尾 - for blocks in blocks_group: - is_start_list = None - is_end_list = None - if len(blocks) == 0: - list_info.append([False, False]) - continue - if blocks[0]["type"] != BlockType.Text and blocks[-1]["type"] != BlockType.Text: - list_info.append([False, False]) - continue - if blocks[0]["type"] != BlockType.Text: - is_start_list = False - if blocks[-1]["type"] != BlockType.Text: - is_end_list = False - - lines = [line for block in blocks if - block["type"] == BlockType.Text for line in - block['lines']] - total_lines = len(lines) - if total_lines == 1 or total_lines == 0: - list_info.append([False, False]) - continue - """在进入到真正的分段之前,要对文字块从统计维度进行对齐方式的探测, - 对齐方式分为以下: - 1. 左对齐的文本块(特点是左侧顶格,或者左侧不顶格但是右侧顶格的行数大于非顶格的行数,顶格的首字母有大写也有小写) - 1) 右侧对齐的行,单独成一段 - 2) 中间对齐的行,按照字体/行高聚合成一段 - 2. 左对齐的列表块(其特点是左侧顶格的行数小于等于非顶格的行数,非定格首字母会有小写,顶格90%是大写。并且左侧顶格行数大于1,大于1是为了这种模式连续出现才能称之为列表) - 这样的文本块,顶格的为一个段落开头,紧随其后非顶格的行属于这个段落。 - """ - text_segments, list_start_line = __detect_list_lines(lines, new_layout_bbox, lang) - """根据list_range,把lines分成几个部分 - - """ - for list_start in list_start_line: - if len(list_start) > 1: - for i in range(0, len(list_start)): - index = list_start[i] - 1 - if index >= 0: - if "content" in lines[index]["spans"][-1] and lines[index]["spans"][-1].get('type', '') not in [ - ContentType.InlineEquation, ContentType.InterlineEquation]: - lines[index]["spans"][-1]["content"] += '\n\n' - layout_list_info = [False, False] # 这个layout最后是不是列表,记录每一个layout里是不是列表开头,列表结尾 - for content_type, start, end in text_segments: - if content_type == 'list': - if start == 0 and is_start_list is None: - layout_list_info[0] = True - if end == total_lines - 1 and is_end_list is None: - layout_list_info[1] = True - - list_info.append(layout_list_info) - return list_info - - -def __split_para_lines(lines: list, text_blocks: list) -> list: - text_paras = [] - other_paras = [] - text_lines = [] - for line in lines: - - spans_types = [span["type"] for span in line] - if ContentType.Table in spans_types: - other_paras.append([line]) - continue - if ContentType.Image in spans_types: - other_paras.append([line]) - continue - if ContentType.InterlineEquation in spans_types: - other_paras.append([line]) - continue - text_lines.append(line) - - for block in text_blocks: - block_bbox = block["bbox"] - para = [] - for line in text_lines: - bbox = line["bbox"] - if is_in_layout(bbox, block_bbox): - para.append(line) - if len(para) > 0: - text_paras.append(para) - paras = other_paras.extend(text_paras) - paras_sorted = sorted(paras, key=lambda x: x[0]["bbox"][1]) - return paras_sorted - - -def __connect_list_inter_layout(blocks_group, new_layout_bbox, layout_list_info, page_num, lang): - global debug_able - """ - 如果上个layout的最后一个段落是列表,下一个layout的第一个段落也是列表,那么将他们连接起来。 TODO 因为没有区分列表和段落,所以这个方法暂时不实现。 - 根据layout_list_info判断是不是列表。,下个layout的第一个段如果不是列表,那么看他们是否有几行都有相同的缩进。 - """ - if len(blocks_group) == 0 or len(blocks_group) == 0: # 0的时候最后的return 会出错 - return blocks_group, [False, False] - - for i in range(1, len(blocks_group)): - if len(blocks_group[i]) == 0 or len(blocks_group[i - 1]) == 0: - continue - pre_layout_list_info = layout_list_info[i - 1] - next_layout_list_info = layout_list_info[i] - pre_last_para = blocks_group[i - 1][-1].get("lines", []) - next_paras = blocks_group[i] - next_first_para = next_paras[0] - - if pre_layout_list_info[1] and not next_layout_list_info[0] and next_first_para[ - "type"] == BlockType.Text: # 前一个是列表结尾,后一个是非列表开头,此时检测是否有相同的缩进 - if debug_able: - logger.info(f"连接page {page_num} 内的list") - # 向layout_paras[i] 寻找开头具有相同缩进的连续的行 - may_list_lines = [] - lines = next_first_para.get("lines", []) - - for line in lines: - if line['bbox'][0] > __find_layout_bbox_by_line(line['bbox'], new_layout_bbox)[0]: - may_list_lines.append(line) - else: - break - # 如果这些行的缩进是相等的,那么连到上一个layout的最后一个段落上。 - if len(may_list_lines) > 0 and len(set([x['bbox'][0] for x in may_list_lines])) == 1: - pre_last_para.extend(may_list_lines) - next_first_para["lines"] = next_first_para["lines"][len(may_list_lines):] - - return blocks_group, [layout_list_info[0][0], layout_list_info[-1][1]] # 同时还返回了这个页面级别的开头、结尾是不是列表的信息 - - -def __connect_list_inter_page(pre_page_paras, next_page_paras, pre_page_layout_bbox, next_page_layout_bbox, - pre_page_list_info, next_page_list_info, page_num, lang): - """ - 如果上个layout的最后一个段落是列表,下一个layout的第一个段落也是列表,那么将他们连接起来。 TODO 因为没有区分列表和段落,所以这个方法暂时不实现。 - 根据layout_list_info判断是不是列表。,下个layout的第一个段如果不是列表,那么看他们是否有几行都有相同的缩进。 - """ - if len(pre_page_paras) == 0 or len(next_page_paras) == 0: # 0的时候最后的return 会出错 - return False - if len(pre_page_paras[-1]) == 0 or len(next_page_paras[0]) == 0: - return False - if pre_page_paras[-1][-1]["type"] != BlockType.Text or next_page_paras[0][0]["type"] != BlockType.Text: - return False - if pre_page_list_info[1] and not next_page_list_info[0]: # 前一个是列表结尾,后一个是非列表开头,此时检测是否有相同的缩进 - if debug_able: - logger.info(f"连接page {page_num} 内的list") - # 向layout_paras[i] 寻找开头具有相同缩进的连续的行 - may_list_lines = [] - next_page_first_para = next_page_paras[0][0] - if next_page_first_para["type"] == BlockType.Text: - lines = next_page_first_para["lines"] - for line in lines: - if line['bbox'][0] > __find_layout_bbox_by_line(line['bbox'], next_page_layout_bbox)[0]: - may_list_lines.append(line) - else: - break - # 如果这些行的缩进是相等的,那么连到上一个layout的最后一个段落上。 - if len(may_list_lines) > 0 and len(set([x['bbox'][0] for x in may_list_lines])) == 1: - # pre_page_paras[-1].append(may_list_lines) - # 下一页合并到上一页最后一段,打一个cross_page的标签 - for line in may_list_lines: - for span in line["spans"]: - span[CROSS_PAGE] = True - pre_page_paras[-1][-1]["lines"].extend(may_list_lines) - next_page_first_para["lines"] = next_page_first_para["lines"][len(may_list_lines):] - return True - - return False - - -def __find_layout_bbox_by_line(line_bbox, layout_bboxes): - """ - 根据line找到所在的layout - """ - for layout in layout_bboxes: - if is_in_layout(line_bbox, layout): - return layout - return None - - -def __connect_para_inter_layoutbox(blocks_group, new_layout_bbox): - """ - layout之间进行分段。 - 主要是计算前一个layOut的最后一行和后一个layout的第一行是否可以连接。 - 连接的条件需要同时满足: - 1. 上一个layout的最后一行沾满整个行。并且没有结尾符号。 - 2. 下一行开头不留空白。 - - """ - connected_layout_blocks = [] - if len(blocks_group) == 0: - return connected_layout_blocks - - connected_layout_blocks.append(blocks_group[0]) - for i in range(1, len(blocks_group)): - try: - if len(blocks_group[i]) == 0: - continue - if len(blocks_group[i - 1]) == 0: # TODO 考虑连接问题, - connected_layout_blocks.append(blocks_group[i]) - continue - # text类型的段才需要考虑layout间的合并 - if blocks_group[i - 1][-1]["type"] != BlockType.Text or blocks_group[i][0]["type"] != BlockType.Text: - connected_layout_blocks.append(blocks_group[i]) - continue - if len(blocks_group[i - 1][-1]["lines"]) == 0 or len(blocks_group[i][0]["lines"]) == 0: - connected_layout_blocks.append(blocks_group[i]) - continue - pre_last_line = blocks_group[i - 1][-1]["lines"][-1] - next_first_line = blocks_group[i][0]["lines"][0] - except Exception as e: - logger.error(f"page layout {i} has no line") - continue - pre_last_line_text = ''.join([__get_span_text(span) for span in pre_last_line['spans']]) - pre_last_line_type = pre_last_line['spans'][-1]['type'] - next_first_line_text = ''.join([__get_span_text(span) for span in next_first_line['spans']]) - next_first_line_type = next_first_line['spans'][0]['type'] - if pre_last_line_type not in [TEXT, INLINE_EQUATION] or next_first_line_type not in [TEXT, INLINE_EQUATION]: - connected_layout_blocks.append(blocks_group[i]) - continue - pre_layout = __find_layout_bbox_by_line(pre_last_line['bbox'], new_layout_bbox) - next_layout = __find_layout_bbox_by_line(next_first_line['bbox'], new_layout_bbox) - - pre_x2_max = pre_layout[2] if pre_layout else -1 - next_x0_min = next_layout[0] if next_layout else -1 - - pre_last_line_text = pre_last_line_text.strip() - next_first_line_text = next_first_line_text.strip() - if pre_last_line['bbox'][2] == pre_x2_max and pre_last_line_text and pre_last_line_text[ - -1] not in LINE_STOP_FLAG and \ - next_first_line['bbox'][0] == next_x0_min: # 前面一行沾满了整个行,并且没有结尾符号.下一行没有空白开头。 - """连接段落条件成立,将前一个layout的段落和后一个layout的段落连接。""" - connected_layout_blocks[-1][-1]["lines"].extend(blocks_group[i][0]["lines"]) - blocks_group[i][0]["lines"] = [] # 删除后一个layout第一个段落中的lines,因为他已经被合并到前一个layout的最后一个段落了 - blocks_group[i][0][LINES_DELETED] = True - # if len(layout_paras[i]) == 0: - # layout_paras.pop(i) - # else: - # connected_layout_paras.append(layout_paras[i]) - connected_layout_blocks.append(blocks_group[i]) - else: - """连接段落条件不成立,将前一个layout的段落加入到结果中。""" - connected_layout_blocks.append(blocks_group[i]) - return connected_layout_blocks - - -def __connect_para_inter_page(pre_page_paras, next_page_paras, pre_page_layout_bbox, next_page_layout_bbox, page_num, - lang): - """ - 连接起来相邻两个页面的段落——前一个页面最后一个段落和后一个页面的第一个段落。 - 是否可以连接的条件: - 1. 前一个页面的最后一个段落最后一行沾满整个行。并且没有结尾符号。 - 2. 后一个页面的第一个段落第一行没有空白开头。 - """ - # 有的页面可能压根没有文字 - if len(pre_page_paras) == 0 or len(next_page_paras) == 0 or len(pre_page_paras[0]) == 0 or len( - next_page_paras[0]) == 0: # TODO [[]]为什么出现在pre_page_paras里? - return False - pre_last_block = pre_page_paras[-1][-1] - next_first_block = next_page_paras[0][0] - if pre_last_block["type"] != BlockType.Text or next_first_block["type"] != BlockType.Text: - return False - if len(pre_last_block["lines"]) == 0 or len(next_first_block["lines"]) == 0: - return False - pre_last_para = pre_last_block["lines"] - next_first_para = next_first_block["lines"] - pre_last_line = pre_last_para[-1] - next_first_line = next_first_para[0] - pre_last_line_text = ''.join([__get_span_text(span) for span in pre_last_line['spans']]) - pre_last_line_type = pre_last_line['spans'][-1]['type'] - next_first_line_text = ''.join([__get_span_text(span) for span in next_first_line['spans']]) - next_first_line_type = next_first_line['spans'][0]['type'] - - if pre_last_line_type not in [TEXT, INLINE_EQUATION] or next_first_line_type not in [TEXT, - INLINE_EQUATION]: # TODO,真的要做好,要考虑跨table, image, 行间的情况 - # 不是文本,不连接 - return False - - pre_x2_max_bbox = __find_layout_bbox_by_line(pre_last_line['bbox'], pre_page_layout_bbox) - if not pre_x2_max_bbox: - return False - next_x0_min_bbox = __find_layout_bbox_by_line(next_first_line['bbox'], next_page_layout_bbox) - if not next_x0_min_bbox: - return False - - pre_x2_max = pre_x2_max_bbox[2] - next_x0_min = next_x0_min_bbox[0] - - pre_last_line_text = pre_last_line_text.strip() - next_first_line_text = next_first_line_text.strip() - if pre_last_line['bbox'][2] == pre_x2_max and pre_last_line_text[-1] not in LINE_STOP_FLAG and \ - next_first_line['bbox'][0] == next_x0_min: # 前面一行沾满了整个行,并且没有结尾符号.下一行没有空白开头。 - """连接段落条件成立,将前一个layout的段落和后一个layout的段落连接。""" - # 下一页合并到上一页最后一段,打一个cross_page的标签 - for line in next_first_para: - for span in line["spans"]: - span[CROSS_PAGE] = True - pre_last_para.extend(next_first_para) - - # next_page_paras[0].pop(0) # 删除后一个页面的第一个段落, 因为他已经被合并到前一个页面的最后一个段落了。 - next_page_paras[0][0]["lines"] = [] - next_page_paras[0][0][LINES_DELETED] = True - return True - else: - return False - - -def find_consecutive_true_regions(input_array): - start_index = None # 连续True区域的起始索引 - regions = [] # 用于保存所有连续True区域的起始和结束索引 - - for i in range(len(input_array)): - # 如果我们找到了一个True值,并且当前并没有在连续True区域中 - if input_array[i] and start_index is None: - start_index = i # 记录连续True区域的起始索引 - - # 如果我们找到了一个False值,并且当前在连续True区域中 - elif not input_array[i] and start_index is not None: - # 如果连续True区域长度大于1,那么将其添加到结果列表中 - if i - start_index > 1: - regions.append((start_index, i - 1)) - start_index = None # 重置起始索引 - - # 如果最后一个元素是True,那么需要将最后一个连续True区域加入到结果列表中 - if start_index is not None and len(input_array) - start_index > 1: - regions.append((start_index, len(input_array) - 1)) - - return regions - - -def __connect_middle_align_text(page_paras, new_layout_bbox, page_num, lang): - global debug_able - """ - 找出来中间对齐的连续单行文本,如果连续行高度相同,那么合并为一个段落。 - 一个line居中的条件是: - 1. 水平中心点跨越layout的中心点。 - 2. 左右两侧都有空白 - """ - - for layout_i, layout_para in enumerate(page_paras): - layout_box = new_layout_bbox[layout_i] - single_line_paras_tag = [] - for i in range(len(layout_para)): - # single_line_paras_tag.append(len(layout_para[i]) == 1 and layout_para[i][0]['spans'][0]['type'] == TEXT) - single_line_paras_tag.append(layout_para[i]['type'] == BlockType.Text and len(layout_para[i]["lines"]) == 1) - """找出来连续的单行文本,如果连续行高度相同,那么合并为一个段落。""" - consecutive_single_line_indices = find_consecutive_true_regions(single_line_paras_tag) - if len(consecutive_single_line_indices) > 0: - """检查这些行是否是高度相同的,居中的""" - for start, end in consecutive_single_line_indices: - # start += index_offset - # end += index_offset - line_hi = np.array([block["lines"][0]['bbox'][3] - block["lines"][0]['bbox'][1] for block in - layout_para[start:end + 1]]) - first_line_text = ''.join([__get_span_text(span) for span in layout_para[start]["lines"][0]['spans']]) - if "Table" in first_line_text or "Figure" in first_line_text: - pass - if debug_able: - logger.info(line_hi.std()) - - if line_hi.std() < 2: - """行高度相同,那么判断是否居中""" - all_left_x0 = [block["lines"][0]['bbox'][0] for block in layout_para[start:end + 1]] - all_right_x1 = [block["lines"][0]['bbox'][2] for block in layout_para[start:end + 1]] - layout_center = (layout_box[0] + layout_box[2]) / 2 - if all([x0 < layout_center < x1 for x0, x1 in zip(all_left_x0, all_right_x1)]) \ - and not all([x0 == layout_box[0] for x0 in all_left_x0]) \ - and not all([x1 == layout_box[2] for x1 in all_right_x1]): - merge_para = [block["lines"][0] for block in layout_para[start:end + 1]] - para_text = ''.join([__get_span_text(span) for line in merge_para for span in line['spans']]) - if debug_able: - logger.info(para_text) - layout_para[start]["lines"] = merge_para - for i_para in range(start + 1, end + 1): - layout_para[i_para]["lines"] = [] - layout_para[i_para][LINES_DELETED] = True - # layout_para[start:end + 1] = [merge_para] - - # index_offset -= end - start - - return - - -def __merge_signle_list_text(page_paras, new_layout_bbox, page_num, lang): - """ - 找出来连续的单行文本,如果首行顶格,接下来的几个单行段落缩进对齐,那么合并为一个段落。 - """ - - pass - - -def __do_split_page(blocks, layout_bboxes, new_layout_bbox, page_num, lang): - """ - 根据line和layout情况进行分段 - 先实现一个根据行末尾特征分段的简单方法。 - """ - """ - 算法思路: - 1. 扫描layout里每一行,找出来行尾距离layout有边界有一定距离的行。 - 2. 从上述行中找到末尾是句号等可作为断行标志的行。 - 3. 参照上述行尾特征进行分段。 - 4. 图、表,目前独占一行,不考虑分段。 - """ - blocks_group = __group_line_by_layout(blocks, layout_bboxes) # block内分段 - layout_list_info = __split_para_in_layoutbox(blocks_group, new_layout_bbox, lang) # layout内分段 - blocks_group, page_list_info = __connect_list_inter_layout(blocks_group, new_layout_bbox, layout_list_info, - page_num, lang) # layout之间连接列表段落 - connected_layout_blocks = __connect_para_inter_layoutbox(blocks_group, new_layout_bbox) # layout间链接段落 - - return connected_layout_blocks, page_list_info - - -def para_split(pdf_info_dict, debug_mode, lang="en"): - global debug_able - debug_able = debug_mode - new_layout_of_pages = [] # 数组的数组,每个元素是一个页面的layoutS - all_page_list_info = [] # 保存每个页面开头和结尾是否是列表 - for page_num, page in pdf_info_dict.items(): - blocks = copy.deepcopy(page['preproc_blocks']) - layout_bboxes = page['layout_bboxes'] - new_layout_bbox = __common_pre_proc(blocks, layout_bboxes) - new_layout_of_pages.append(new_layout_bbox) - splited_blocks, page_list_info = __do_split_page(blocks, layout_bboxes, new_layout_bbox, page_num, lang) - all_page_list_info.append(page_list_info) - page['para_blocks'] = splited_blocks - - """连接页面与页面之间的可能合并的段落""" - pdf_infos = list(pdf_info_dict.values()) - for page_num, page in enumerate(pdf_info_dict.values()): - if page_num == 0: - continue - pre_page_paras = pdf_infos[page_num - 1]['para_blocks'] - next_page_paras = pdf_infos[page_num]['para_blocks'] - pre_page_layout_bbox = new_layout_of_pages[page_num - 1] - next_page_layout_bbox = new_layout_of_pages[page_num] - - is_conn = __connect_para_inter_page(pre_page_paras, next_page_paras, pre_page_layout_bbox, - next_page_layout_bbox, page_num, lang) - if debug_able: - if is_conn: - logger.info(f"连接了第{page_num - 1}页和第{page_num}页的段落") - - is_list_conn = __connect_list_inter_page(pre_page_paras, next_page_paras, pre_page_layout_bbox, - next_page_layout_bbox, all_page_list_info[page_num - 1], - all_page_list_info[page_num], page_num, lang) - if debug_able: - if is_list_conn: - logger.info(f"连接了第{page_num - 1}页和第{page_num}页的列表段落") - - """接下来可能会漏掉一些特别的一些可以合并的内容,对他们进行段落连接 - 1. 正文中有时出现一个行顶格,接下来几行缩进的情况。 - 2. 居中的一些连续单行,如果高度相同,那么可能是一个段落。 - """ - for page_num, page in enumerate(pdf_info_dict.values()): - page_paras = page['para_blocks'] - new_layout_bbox = new_layout_of_pages[page_num] - __connect_middle_align_text(page_paras, new_layout_bbox, page_num, lang) - __merge_signle_list_text(page_paras, new_layout_bbox, page_num, lang) - - # layout展平 - for page_num, page in enumerate(pdf_info_dict.values()): - page_paras = page['para_blocks'] - page_blocks = [block for layout in page_paras for block in layout] - page["para_blocks"] = page_blocks diff --git a/magic_pdf/para/para_split_v3.py b/magic_pdf/para/para_split_v3.py deleted file mode 100644 index 237c4a5e2..000000000 --- a/magic_pdf/para/para_split_v3.py +++ /dev/null @@ -1,296 +0,0 @@ -import copy - -from loguru import logger - -from magic_pdf.libs.Constants import LINES_DELETED, CROSS_PAGE -from magic_pdf.libs.ocr_content_type import BlockType, ContentType - -LINE_STOP_FLAG = ('.', '!', '?', '。', '!', '?', ')', ')', '"', '”', ':', ':', ';', ';') -LIST_END_FLAG = ('.', '。', ';', ';') - - -class ListLineTag: - IS_LIST_START_LINE = "is_list_start_line" - IS_LIST_END_LINE = "is_list_end_line" - - -def __process_blocks(blocks): - # 对所有block预处理 - # 1.通过title和interline_equation将block分组 - # 2.bbox边界根据line信息重置 - - result = [] - current_group = [] - - for i in range(len(blocks)): - current_block = blocks[i] - - # 如果当前块是 text 类型 - if current_block['type'] == 'text': - current_block["bbox_fs"] = copy.deepcopy(current_block["bbox"]) - if 'lines' in current_block and len(current_block["lines"]) > 0: - current_block['bbox_fs'] = [min([line['bbox'][0] for line in current_block['lines']]), - min([line['bbox'][1] for line in current_block['lines']]), - max([line['bbox'][2] for line in current_block['lines']]), - max([line['bbox'][3] for line in current_block['lines']])] - current_group.append(current_block) - - # 检查下一个块是否存在 - if i + 1 < len(blocks): - next_block = blocks[i + 1] - # 如果下一个块不是 text 类型且是 title 或 interline_equation 类型 - if next_block['type'] in ['title', 'interline_equation']: - result.append(current_group) - current_group = [] - - # 处理最后一个 group - if current_group: - result.append(current_group) - - return result - - -def __is_list_or_index_block(block): - # 一个block如果是list block 应该同时满足以下特征 - # 1.block内有多个line 2.block 内有多个line左侧顶格写 3.block内有多个line 右侧不顶格(狗牙状) - # 1.block内有多个line 2.block 内有多个line左侧顶格写 3.多个line以endflag结尾 - # 1.block内有多个line 2.block 内有多个line左侧顶格写 3.block内有多个line 左侧不顶格 - - # index block 是一种特殊的list block - # 一个block如果是index block 应该同时满足以下特征 - # 1.block内有多个line 2.block 内有多个line两侧均顶格写 3.line的开头或者结尾均为数字 - if len(block['lines']) >= 2: - first_line = block['lines'][0] - line_height = first_line['bbox'][3] - first_line['bbox'][1] - block_weight = block['bbox_fs'][2] - block['bbox_fs'][0] - - left_close_num = 0 - left_not_close_num = 0 - right_not_close_num = 0 - right_close_num = 0 - lines_text_list = [] - - multiple_para_flag = False - last_line = block['lines'][-1] - # 如果首行左边不顶格而右边顶格,末行左边顶格而右边不顶格 (第一行可能可以右边不顶格) - if (first_line['bbox'][0] - block['bbox_fs'][0] > line_height / 2 and - # block['bbox_fs'][2] - first_line['bbox'][2] < line_height and - abs(last_line['bbox'][0] - block['bbox_fs'][0]) < line_height / 2 and - block['bbox_fs'][2] - last_line['bbox'][2] > line_height - ): - multiple_para_flag = True - - for line in block['lines']: - - line_text = "" - - for span in line['spans']: - span_type = span['type'] - if span_type == ContentType.Text: - line_text += span['content'].strip() - - lines_text_list.append(line_text) - - # 计算line左侧顶格数量是否大于2,是否顶格用abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height/2 来判断 - if abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height / 2: - left_close_num += 1 - elif line['bbox'][0] - block['bbox_fs'][0] > line_height: - # logger.info(f"{line_text}, {block['bbox_fs']}, {line['bbox']}") - left_not_close_num += 1 - - # 计算右侧是否顶格 - if abs(block['bbox_fs'][2] - line['bbox'][2]) < line_height: - right_close_num += 1 - else: - # 右侧不顶格情况下是否有一段距离,拍脑袋用0.3block宽度做阈值 - closed_area = 0.3 * block_weight - # closed_area = 5 * line_height - if block['bbox_fs'][2] - line['bbox'][2] > closed_area: - right_not_close_num += 1 - - # 判断lines_text_list中的元素是否有超过80%都以LIST_END_FLAG结尾 - line_end_flag = False - # 判断lines_text_list中的元素是否有超过80%都以数字开头或都以数字结尾 - line_num_flag = False - num_start_count = 0 - num_end_count = 0 - flag_end_count = 0 - if len(lines_text_list) > 0: - for line_text in lines_text_list: - if len(line_text) > 0: - if line_text[-1] in LIST_END_FLAG: - flag_end_count += 1 - if line_text[0].isdigit(): - num_start_count += 1 - if line_text[-1].isdigit(): - num_end_count += 1 - - if flag_end_count / len(lines_text_list) >= 0.8: - line_end_flag = True - - if num_start_count / len(lines_text_list) >= 0.8 or num_end_count / len(lines_text_list) >= 0.8: - line_num_flag = True - - # 有的目录右侧不贴边, 目前认为左边或者右边有一边全贴边,且符合数字规则极为index - if ((left_close_num/len(block['lines']) >= 0.8 or right_close_num/len(block['lines']) >= 0.8) - and line_num_flag - ): - for line in block['lines']: - line[ListLineTag.IS_LIST_START_LINE] = True - return BlockType.Index - - elif left_close_num >= 2 and ( - right_not_close_num >= 2 or line_end_flag or left_not_close_num >= 2) and not multiple_para_flag: - # 处理一种特殊的没有缩进的list,所有行都贴左边,通过右边的空隙判断是否是item尾 - if left_close_num / len(block['lines']) > 0.9: - # 这种是每个item只有一行,且左边都贴边的短item list - if flag_end_count == 0 and right_close_num / len(block['lines']) < 0.5: - for line in block['lines']: - if abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height / 2: - line[ListLineTag.IS_LIST_START_LINE] = True - # 这种是大部分line item 都有结束标识符的情况,按结束标识符区分不同item - elif line_end_flag: - for i, line in enumerate(block['lines']): - if lines_text_list[i][-1] in LIST_END_FLAG: - line[ListLineTag.IS_LIST_END_LINE] = True - if i + 1 < len(block['lines']): - block['lines'][i+1][ListLineTag.IS_LIST_START_LINE] = True - # line item基本没有结束标识符,而且也没有缩进,按右侧空隙判断哪些是item end - else: - line_start_flag = False - for i, line in enumerate(block['lines']): - if line_start_flag: - line[ListLineTag.IS_LIST_START_LINE] = True - line_start_flag = False - elif abs(block['bbox_fs'][2] - line['bbox'][2]) > line_height: - line[ListLineTag.IS_LIST_END_LINE] = True - line_start_flag = True - # 一种有缩进的特殊有序list,start line 左侧不贴边且以数字开头,end line 以 IS_LIST_END_LINE 结尾且数量和start line 一致 - elif num_start_count >= 2 and num_start_count == flag_end_count: # 简单一点先不考虑左侧不贴边的情况 - for i, line in enumerate(block['lines']): - if lines_text_list[i][0].isdigit(): - line[ListLineTag.IS_LIST_START_LINE] = True - if lines_text_list[i][-1] in LIST_END_FLAG: - line[ListLineTag.IS_LIST_END_LINE] = True - else: - # 正常有缩进的list处理 - for line in block['lines']: - if abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height / 2: - line[ListLineTag.IS_LIST_START_LINE] = True - if abs(block['bbox_fs'][2] - line['bbox'][2]) > line_height: - line[ListLineTag.IS_LIST_END_LINE] = True - - return BlockType.List - else: - return BlockType.Text - else: - return BlockType.Text - - -def __merge_2_text_blocks(block1, block2): - if len(block1['lines']) > 0: - first_line = block1['lines'][0] - line_height = first_line['bbox'][3] - first_line['bbox'][1] - block1_weight = block1['bbox'][2] - block1['bbox'][0] - block2_weight = block2['bbox'][2] - block2['bbox'][0] - min_block_weight = min(block1_weight, block2_weight) - if abs(block1['bbox_fs'][0] - first_line['bbox'][0]) < line_height / 2: - last_line = block2['lines'][-1] - if len(last_line['spans']) > 0: - last_span = last_line['spans'][-1] - line_height = last_line['bbox'][3] - last_line['bbox'][1] - if (abs(block2['bbox_fs'][2] - last_line['bbox'][2]) < line_height and - not last_span['content'].endswith(LINE_STOP_FLAG) and - # 两个block宽度差距超过2倍也不合并 - abs(block1_weight - block2_weight) < min_block_weight - ): - if block1['page_num'] != block2['page_num']: - for line in block1['lines']: - for span in line['spans']: - span[CROSS_PAGE] = True - block2['lines'].extend(block1['lines']) - block1['lines'] = [] - block1[LINES_DELETED] = True - - return block1, block2 - - -def __merge_2_list_blocks(block1, block2): - if block1['page_num'] != block2['page_num']: - for line in block1['lines']: - for span in line['spans']: - span[CROSS_PAGE] = True - block2['lines'].extend(block1['lines']) - block1['lines'] = [] - block1[LINES_DELETED] = True - - return block1, block2 - - -def __is_list_group(text_blocks_group): - # list group的特征是一个group内的所有block都满足以下条件 - # 1.每个block都不超过3行 2. 每个block 的左边界都比较接近(逻辑简单点先不加这个规则) - for block in text_blocks_group: - if len(block['lines']) > 3: - return False - return True - - -def __para_merge_page(blocks): - page_text_blocks_groups = __process_blocks(blocks) - for text_blocks_group in page_text_blocks_groups: - - if len(text_blocks_group) > 0: - # 需要先在合并前对所有block判断是否为list or index block - for block in text_blocks_group: - block_type = __is_list_or_index_block(block) - block['type'] = block_type - # logger.info(f"{block['type']}:{block}") - - if len(text_blocks_group) > 1: - - # 在合并前判断这个group 是否是一个 list group - is_list_group = __is_list_group(text_blocks_group) - - # 倒序遍历 - for i in range(len(text_blocks_group) - 1, -1, -1): - current_block = text_blocks_group[i] - - # 检查是否有前一个块 - if i - 1 >= 0: - prev_block = text_blocks_group[i - 1] - - if current_block['type'] == 'text' and prev_block['type'] == 'text' and not is_list_group: - __merge_2_text_blocks(current_block, prev_block) - elif ( - (current_block['type'] == BlockType.List and prev_block['type'] == BlockType.List) or - (current_block['type'] == BlockType.Index and prev_block['type'] == BlockType.Index) - ): - __merge_2_list_blocks(current_block, prev_block) - - else: - continue - - -def para_split(pdf_info_dict, debug_mode=False): - all_blocks = [] - for page_num, page in pdf_info_dict.items(): - blocks = copy.deepcopy(page['preproc_blocks']) - for block in blocks: - block['page_num'] = page_num - all_blocks.extend(blocks) - - __para_merge_page(all_blocks) - for page_num, page in pdf_info_dict.items(): - page['para_blocks'] = [] - for block in all_blocks: - if block['page_num'] == page_num: - page['para_blocks'].append(block) - - -if __name__ == '__main__': - input_blocks = [] - # 调用函数 - groups = __process_blocks(input_blocks) - for group_index, group in enumerate(groups): - print(f"Group {group_index}: {group}") diff --git a/magic_pdf/para/raw_processor.py b/magic_pdf/para/raw_processor.py deleted file mode 100644 index edbf9964b..000000000 --- a/magic_pdf/para/raw_processor.py +++ /dev/null @@ -1,207 +0,0 @@ -class RawBlockProcessor: - def __init__(self) -> None: - self.y_tolerance = 2 - self.pdf_dic = {} - - def __span_flags_decomposer(self, span_flags): - """ - Make font flags human readable. - - Parameters - ---------- - self : object - The instance of the class. - - span_flags : int - span flags - - Returns - ------- - l : dict - decomposed flags - """ - - l = { - "is_superscript": False, - "is_italic": False, - "is_serifed": False, - "is_sans_serifed": False, - "is_monospaced": False, - "is_proportional": False, - "is_bold": False, - } - - if span_flags & 2**0: - l["is_superscript"] = True # 表示上标 - - if span_flags & 2**1: - l["is_italic"] = True # 表示斜体 - - if span_flags & 2**2: - l["is_serifed"] = True # 表示衬线字体 - else: - l["is_sans_serifed"] = True # 表示非衬线字体 - - if span_flags & 2**3: - l["is_monospaced"] = True # 表示等宽字体 - else: - l["is_proportional"] = True # 表示比例字体 - - if span_flags & 2**4: - l["is_bold"] = True # 表示粗体 - - return l - - def __make_new_lines(self, raw_lines): - """ - This function makes new lines. - - Parameters - ---------- - self : object - The instance of the class. - - raw_lines : list - raw lines - - Returns - ------- - new_lines : list - new lines - """ - new_lines = [] - new_line = None - - for raw_line in raw_lines: - raw_line_bbox = raw_line["bbox"] - raw_line_spans = raw_line["spans"] - raw_line_text = "".join([span["text"] for span in raw_line_spans]) - raw_line_dir = raw_line.get("dir", None) - - decomposed_line_spans = [] - for span in raw_line_spans: - raw_flags = span["flags"] - decomposed_flags = self.__span_flags_decomposer(raw_flags) - span["decomposed_flags"] = decomposed_flags - decomposed_line_spans.append(span) - - if new_line is None: - new_line = { - "bbox": raw_line_bbox, - "text": raw_line_text, - "dir": raw_line_dir if raw_line_dir else (0, 0), - "spans": decomposed_line_spans, - } - else: - if ( - abs(raw_line_bbox[1] - new_line["bbox"][1]) <= self.y_tolerance - and abs(raw_line_bbox[3] - new_line["bbox"][3]) <= self.y_tolerance - ): - new_line["bbox"] = ( - min(new_line["bbox"][0], raw_line_bbox[0]), # left - new_line["bbox"][1], # top - max(new_line["bbox"][2], raw_line_bbox[2]), # right - raw_line_bbox[3], # bottom - ) - new_line["text"] += " " + raw_line_text - new_line["spans"].extend(raw_line_spans) - new_line["dir"] = ( - new_line["dir"][0] + raw_line_dir[0], - new_line["dir"][1] + raw_line_dir[1], - ) - else: - new_lines.append(new_line) - new_line = { - "bbox": raw_line_bbox, - "text": raw_line_text, - "dir": raw_line_dir if raw_line_dir else (0, 0), - "spans": raw_line_spans, - } - if new_line: - new_lines.append(new_line) - - return new_lines - - def __make_new_block(self, raw_block): - """ - This function makes a new block. - - Parameters - ---------- - self : object - The instance of the class. - ---------- - raw_block : dict - a raw block - - Returns - ------- - new_block : dict - - Schema of new_block: - { - "block_id": "block_1", - "bbox": [0, 0, 100, 100], - "text": "This is a block.", - "lines": [ - { - "bbox": [0, 0, 100, 100], - "text": "This is a line.", - "spans": [ - { - "text": "This is a span.", - "font": "Times New Roman", - "size": 12, - "color": "#000000", - } - ], - } - ], - } - """ - new_block = {} - - block_id = raw_block["number"] - block_bbox = raw_block["bbox"] - block_text = " ".join(span["text"] for line in raw_block["lines"] for span in line["spans"]) - raw_lines = raw_block["lines"] - block_lines = self.__make_new_lines(raw_lines) - - new_block["block_id"] = block_id - new_block["bbox"] = block_bbox - new_block["text"] = block_text - new_block["lines"] = block_lines - - return new_block - - def batch_process_blocks(self, pdf_dic): - """ - This function processes the blocks in batch. - - Parameters - ---------- - self : object - The instance of the class. - ---------- - blocks : list - Input block is a list of raw blocks. Schema can refer to the value of key ""preproc_blocks", demo file is app/pdf_toolbox/tests/preproc_2_parasplit_example.json. - - Returns - ------- - result_dict : dict - result dictionary - """ - - for page_id, blocks in pdf_dic.items(): - if page_id.startswith("page_"): - para_blocks = [] - if "preproc_blocks" in blocks.keys(): - input_blocks = blocks["preproc_blocks"] - for raw_block in input_blocks: - new_block = self.__make_new_block(raw_block) - para_blocks.append(new_block) - - blocks["para_blocks"] = para_blocks - - return pdf_dic - diff --git a/magic_pdf/para/stats.py b/magic_pdf/para/stats.py deleted file mode 100644 index fd509b952..000000000 --- a/magic_pdf/para/stats.py +++ /dev/null @@ -1,268 +0,0 @@ -from collections import Counter -import numpy as np - -from magic_pdf.para.commons import * - - -if sys.version_info[0] >= 3: - sys.stdout.reconfigure(encoding="utf-8") # type: ignore - - -class BlockStatisticsCalculator: - def __init__(self) -> None: - pass - - def __calc_stats_of_new_lines(self, new_lines): - """ - This function calculates the paragraph metrics - - Parameters - ---------- - combined_lines : list - combined lines - - Returns - ------- - X0 : float - Median of x0 values, which represents the left average boundary of the block - X1 : float - Median of x1 values, which represents the right average boundary of the block - avg_char_width : float - Average of char widths, which represents the average char width of the block - avg_char_height : float - Average of line heights, which represents the average line height of the block - - """ - x0_values = [] - x1_values = [] - char_widths = [] - char_heights = [] - - block_font_types = [] - block_font_sizes = [] - block_directions = [] - - if len(new_lines) > 0: - for i, line in enumerate(new_lines): - line_bbox = line["bbox"] - line_text = line["text"] - line_spans = line["spans"] - - num_chars = len([ch for ch in line_text if not ch.isspace()]) - - x0_values.append(line_bbox[0]) - x1_values.append(line_bbox[2]) - - if num_chars > 0: - char_width = (line_bbox[2] - line_bbox[0]) / num_chars - char_widths.append(char_width) - - for span in line_spans: - block_font_types.append(span["font"]) - block_font_sizes.append(span["size"]) - - if "dir" in line: - block_directions.append(line["dir"]) - - # line_font_types = [span["font"] for span in line_spans] - char_heights = [span["size"] for span in line_spans] - - X0 = np.median(x0_values) if x0_values else 0 - X1 = np.median(x1_values) if x1_values else 0 - avg_char_width = sum(char_widths) / len(char_widths) if char_widths else 0 - avg_char_height = sum(char_heights) / len(char_heights) if char_heights else 0 - - # max_freq_font_type = max(set(block_font_types), key=block_font_types.count) if block_font_types else None - - max_span_length = 0 - max_span_font_type = None - for line in new_lines: - line_spans = line["spans"] - for span in line_spans: - span_length = span["bbox"][2] - span["bbox"][0] - if span_length > max_span_length: - max_span_length = span_length - max_span_font_type = span["font"] - - max_freq_font_type = max_span_font_type - - avg_font_size = sum(block_font_sizes) / len(block_font_sizes) if block_font_sizes else None - - avg_dir_horizontal = sum([dir[0] for dir in block_directions]) / len(block_directions) if block_directions else 0 - avg_dir_vertical = sum([dir[1] for dir in block_directions]) / len(block_directions) if block_directions else 0 - - median_font_size = float(np.median(block_font_sizes)) if block_font_sizes else None - - return ( - X0, - X1, - avg_char_width, - avg_char_height, - max_freq_font_type, - avg_font_size, - (avg_dir_horizontal, avg_dir_vertical), - median_font_size, - ) - - def __make_new_block(self, input_block): - new_block = {} - - raw_lines = input_block["lines"] - stats = self.__calc_stats_of_new_lines(raw_lines) - - block_id = input_block["block_id"] - block_bbox = input_block["bbox"] - block_text = input_block["text"] - block_lines = raw_lines - block_avg_left_boundary = stats[0] - block_avg_right_boundary = stats[1] - block_avg_char_width = stats[2] - block_avg_char_height = stats[3] - block_font_type = stats[4] - block_font_size = stats[5] - block_direction = stats[6] - block_median_font_size = stats[7] - - new_block["block_id"] = block_id - new_block["bbox"] = block_bbox - new_block["text"] = block_text - new_block["dir"] = block_direction - new_block["X0"] = block_avg_left_boundary - new_block["X1"] = block_avg_right_boundary - new_block["avg_char_width"] = block_avg_char_width - new_block["avg_char_height"] = block_avg_char_height - new_block["block_font_type"] = block_font_type - new_block["block_font_size"] = block_font_size - new_block["lines"] = block_lines - new_block["median_font_size"] = block_median_font_size - - return new_block - - def batch_process_blocks(self, pdf_dic): - """ - This function processes the blocks in batch. - - Parameters - ---------- - self : object - The instance of the class. - ---------- - blocks : list - Input block is a list of raw blocks. Schema can refer to the value of key ""preproc_blocks", demo file is app/pdf_toolbox/tests/preproc_2_parasplit_example.json - - Returns - ------- - result_dict : dict - result dictionary - """ - - for page_id, blocks in pdf_dic.items(): - if page_id.startswith("page_"): - para_blocks = [] - if "para_blocks" in blocks.keys(): - input_blocks = blocks["para_blocks"] - for input_block in input_blocks: - new_block = self.__make_new_block(input_block) - para_blocks.append(new_block) - - blocks["para_blocks"] = para_blocks - - return pdf_dic - - -class DocStatisticsCalculator: - def __init__(self) -> None: - pass - - def calc_stats_of_doc(self, pdf_dict): - """ - This function computes the statistics of the document - - Parameters - ---------- - result_dict : dict - result dictionary - - Returns - ------- - statistics : dict - statistics of the document - """ - - total_text_length = 0 - total_num_blocks = 0 - - for page_id, blocks in pdf_dict.items(): - if page_id.startswith("page_"): - if "para_blocks" in blocks.keys(): - para_blocks = blocks["para_blocks"] - for para_block in para_blocks: - total_text_length += len(para_block["text"]) - total_num_blocks += 1 - - avg_text_length = total_text_length / total_num_blocks if total_num_blocks else 0 - - font_list = [] - - for page_id, blocks in pdf_dict.items(): - if page_id.startswith("page_"): - if "para_blocks" in blocks.keys(): - input_blocks = blocks["para_blocks"] - for input_block in input_blocks: - block_text_length = len(input_block.get("text", "")) - if block_text_length < avg_text_length * 0.5: - continue - block_font_type = safe_get(input_block, "block_font_type", "") - block_font_size = safe_get(input_block, "block_font_size", 0) - font_list.append((block_font_type, block_font_size)) - - font_counter = Counter(font_list) - most_common_font = font_counter.most_common(1)[0] if font_list else (("", 0), 0) - second_most_common_font = font_counter.most_common(2)[1] if len(font_counter) > 1 else (("", 0), 0) - - statistics = { - "num_pages": 0, - "num_blocks": 0, - "num_paras": 0, - "num_titles": 0, - "num_header_blocks": 0, - "num_footer_blocks": 0, - "num_watermark_blocks": 0, - "num_vertical_margin_note_blocks": 0, - "most_common_font_type": most_common_font[0][0], - "most_common_font_size": most_common_font[0][1], - "number_of_most_common_font": most_common_font[1], - "second_most_common_font_type": second_most_common_font[0][0], - "second_most_common_font_size": second_most_common_font[0][1], - "number_of_second_most_common_font": second_most_common_font[1], - "avg_text_length": avg_text_length, - } - - for page_id, blocks in pdf_dict.items(): - if page_id.startswith("page_"): - blocks = pdf_dict[page_id]["para_blocks"] - statistics["num_pages"] += 1 - for block_id, block_data in enumerate(blocks): - statistics["num_blocks"] += 1 - - if "paras" in block_data.keys(): - statistics["num_paras"] += len(block_data["paras"]) - - for line in block_data["lines"]: - if line.get("is_title", 0): - statistics["num_titles"] += 1 - - if block_data.get("is_header", 0): - statistics["num_header_blocks"] += 1 - if block_data.get("is_footer", 0): - statistics["num_footer_blocks"] += 1 - if block_data.get("is_watermark", 0): - statistics["num_watermark_blocks"] += 1 - if block_data.get("is_vertical_margin_note", 0): - statistics["num_vertical_margin_note_blocks"] += 1 - - pdf_dict["statistics"] = statistics - - return pdf_dict - - diff --git a/magic_pdf/para/title_processor.py b/magic_pdf/para/title_processor.py deleted file mode 100644 index 00d330fcd..000000000 --- a/magic_pdf/para/title_processor.py +++ /dev/null @@ -1,1014 +0,0 @@ -import os -import re -import numpy as np - -from magic_pdf.libs.nlp_utils import NLPModels - -from magic_pdf.para.commons import * - -if sys.version_info[0] >= 3: - sys.stdout.reconfigure(encoding="utf-8") # type: ignore - - -class TitleProcessor: - def __init__(self, *doc_statistics) -> None: - if len(doc_statistics) > 0: - self.doc_statistics = doc_statistics[0] - - self.nlp_model = NLPModels() - self.MAX_TITLE_LEVEL = 3 - self.numbered_title_pattern = r""" - ^ # 行首 - ( # 开始捕获组 - [\(\(]\d+[\)\)] # 括号内数字,支持中文和英文括号,例如:(1) 或 (1) - |\d+[\)\)]\s # 数字后跟右括号和空格,支持中文和英文括号,例如:2) 或 2) - |[\(\(][A-Z][\)\)] # 括号内大写字母,支持中文和英文括号,例如:(A) 或 (A) - |[A-Z][\)\)]\s # 大写字母后跟右括号和空格,例如:A) 或 A) - |[\(\(][IVXLCDM]+[\)\)] # 括号内罗马数字,支持中文和英文括号,例如:(I) 或 (I) - |[IVXLCDM]+[\)\)]\s # 罗马数字后跟右括号和空格,例如:I) 或 I) - |\d+(\.\d+)*\s # 数字或复合数字编号后跟空格,例如:1. 或 3.2.1 - |[一二三四五六七八九十百千]+[、\s] # 中文序号后跟顿号和空格,例如:一、 - |[\(|\(][一二三四五六七八九十百千]+[\)|\)]\s* # 中文括号内中文序号后跟空格,例如:(一) - |[A-Z]\.\d+(\.\d+)?\s # 大写字母后跟点和数字,例如:A.1 或 A.1.1 - |[\(\(][a-z][\)\)] # 括号内小写字母,支持中文和英文括号,例如:(a) 或 (a) - |[a-z]\)\s # 小写字母后跟右括号和空格,例如:a) - |[A-Z]-\s # 大写字母后跟短横线和空格,例如:A- - |\w+:\s # 英文序号词后跟冒号和空格,例如:First: - |第[一二三四五六七八九十百千]+[章节部分条款]\s # 以“第”开头的中文标题后跟空格 - |[IVXLCDM]+\. # 罗马数字后跟点,例如:I. - |\d+\.\s # 单个数字后跟点和空格,例如:1. - ) # 结束捕获组 - .+ # 标题的其余部分 - """ - - def _is_potential_title( - self, - curr_line, - prev_line, - prev_line_is_title, - next_line, - avg_char_width, - avg_char_height, - median_font_size, - ): - """ - This function checks if the line is a potential title. - - Parameters - ---------- - curr_line : dict - current line - prev_line : dict - previous line - next_line : dict - next line - avg_char_width : float - average of char widths - avg_char_height : float - average of line heights - - Returns - ------- - bool - True if the line is a potential title, False otherwise. - """ - - def __is_line_centered(line_bbox, page_bbox, avg_char_width): - """ - This function checks if the line is centered on the page - - Parameters - ---------- - line_bbox : list - bbox of the line - page_bbox : list - bbox of the page - avg_char_width : float - average of char widths - - Returns - ------- - bool - True if the line is centered on the page, False otherwise. - """ - horizontal_ratio = 0.5 - horizontal_thres = horizontal_ratio * avg_char_width - - x0, _, x1, _ = line_bbox - _, _, page_x1, _ = page_bbox - - return abs((x0 + x1) / 2 - page_x1 / 2) < horizontal_thres - - def __is_bold_font_line(line): - """ - Check if a line contains any bold font style. - """ - - def _is_bold_span(span): - # if span text is empty or only contains space, return False - if not span["text"].strip(): - return False - - return bool(span["flags"] & 2**4) # Check if the font is bold - - for span in line["spans"]: - if not _is_bold_span(span): - return False - - return True - - def __is_italic_font_line(line): - """ - Check if a line contains any italic font style. - """ - - def __is_italic_span(span): - return bool(span["flags"] & 2**1) # Check if the font is italic - - for span in line["spans"]: - if not __is_italic_span(span): - return False - - return True - - def __is_punctuation_heavy(line_text): - """ - Check if the line contains a high ratio of punctuation marks, which may indicate - that the line is not a title. - - Parameters: - line_text (str): Text of the line. - - Returns: - bool: True if the line is heavy with punctuation, False otherwise. - """ - # Pattern for common title format like "X.Y. Title" - pattern = r"\b\d+\.\d+\..*\b" - - # If the line matches the title format, return False - if re.match(pattern, line_text.strip()): - return False - - # Find all punctuation marks in the line - punctuation_marks = re.findall(r"[^\w\s]", line_text) - number_of_punctuation_marks = len(punctuation_marks) - - text_length = len(line_text) - - if text_length == 0: - return False - - punctuation_ratio = number_of_punctuation_marks / text_length - if punctuation_ratio >= 0.1: - return True - - return False - - def __has_mixed_font_styles(spans, strict_mode=False): - """ - This function checks if the line has mixed font styles, the strict mode will compare the font types - - Parameters - ---------- - spans : list - spans of the line - strict_mode : bool - True for strict mode, the font types will be fully compared - False for non-strict mode, the font types will be compared by the most longest common prefix - - Returns - ------- - bool - True if the line has mixed font styles, False otherwise. - """ - if strict_mode: - font_styles = set() - for span in spans: - font_style = span["font"].lower() - font_styles.add(font_style) - - return len(font_styles) > 1 - - else: # non-strict mode - font_styles = [] - for span in spans: - font_style = span["font"].lower() - font_styles.append(font_style) - - if len(font_styles) > 1: - longest_common_prefix = os.path.commonprefix(font_styles) - if len(longest_common_prefix) > 0: - return False - else: - return True - else: - return False - - def __is_different_font_type_from_neighbors(curr_line_font_type, prev_line_font_type, next_line_font_type): - """ - This function checks if the current line has a different font type from the previous and next lines - - Parameters - ---------- - curr_line_font_type : str - font type of the current line - prev_line_font_type : str - font type of the previous line - next_line_font_type : str - font type of the next line - - Returns - ------- - bool - True if the current line has a different font type from the previous and next lines, False otherwise. - """ - return all( - curr_line_font_type != other_font_type.lower() - for other_font_type in [prev_line_font_type, next_line_font_type] - if other_font_type is not None - ) - - def __is_larger_font_size_from_neighbors(curr_line_font_size, prev_line_font_size, next_line_font_size): - """ - This function checks if the current line has a larger font size than the previous and next lines - - Parameters - ---------- - curr_line_font_size : float - font size of the current line - prev_line_font_size : float - font size of the previous line - next_line_font_size : float - font size of the next line - - Returns - ------- - bool - True if the current line has a larger font size than the previous and next lines, False otherwise. - """ - return all( - curr_line_font_size > other_font_size * 1.2 - for other_font_size in [prev_line_font_size, next_line_font_size] - if other_font_size is not None - ) - - def __is_similar_to_pre_line(curr_line_font_type, prev_line_font_type, curr_line_font_size, prev_line_font_size): - """ - This function checks if the current line is similar to the previous line - - Parameters - ---------- - curr_line : dict - current line - prev_line : dict - previous line - - Returns - ------- - bool - True if the current line is similar to the previous line, False otherwise. - """ - - if curr_line_font_type == prev_line_font_type and curr_line_font_size == prev_line_font_size: - return True - else: - return False - - def __is_same_font_type_of_docAvg(curr_line_font_type): - """ - This function checks if the current line has the same font type as the document average font type - - Parameters - ---------- - curr_line_font_type : str - font type of the current line - - Returns - ------- - bool - True if the current line has the same font type as the document average font type, False otherwise. - """ - doc_most_common_font_type = safe_get(self.doc_statistics, "most_common_font_type", "").lower() - doc_second_most_common_font_type = safe_get(self.doc_statistics, "second_most_common_font_type", "").lower() - - return curr_line_font_type.lower() in [doc_most_common_font_type, doc_second_most_common_font_type] - - def __is_font_size_not_less_than_docAvg(curr_line_font_size, ratio: float = 1): - """ - This function checks if the current line has a large enough font size - - Parameters - ---------- - curr_line_font_size : float - font size of the current line - ratio : float - ratio of the current line font size to the document average font size - - Returns - ------- - bool - True if the current line has a large enough font size, False otherwise. - """ - doc_most_common_font_size = safe_get(self.doc_statistics, "most_common_font_size", 0) - doc_second_most_common_font_size = safe_get(self.doc_statistics, "second_most_common_font_size", 0) - doc_avg_font_size = min(doc_most_common_font_size, doc_second_most_common_font_size) - - return curr_line_font_size >= doc_avg_font_size * ratio - - def __is_sufficient_spacing_above_and_below( - curr_line_bbox, - prev_line_bbox, - next_line_bbox, - avg_char_height, - median_font_size, - ): - """ - This function checks if the current line has sufficient spacing above and below - - Parameters - ---------- - curr_line_bbox : list - bbox of the current line - prev_line_bbox : list - bbox of the previous line - next_line_bbox : list - bbox of the next line - avg_char_width : float - average of char widths - avg_char_height : float - average of line heights - - Returns - ------- - bool - True if the current line has sufficient spacing above and below, False otherwise. - """ - vertical_ratio = 1.25 - vertical_thres = vertical_ratio * median_font_size - - _, y0, _, y1 = curr_line_bbox - - sufficient_spacing_above = False - if prev_line_bbox: - vertical_spacing_above = min(y0 - prev_line_bbox[1], y1 - prev_line_bbox[3]) - sufficient_spacing_above = vertical_spacing_above > vertical_thres - else: - sufficient_spacing_above = True - - sufficient_spacing_below = False - if next_line_bbox: - vertical_spacing_below = min(next_line_bbox[1] - y0, next_line_bbox[3] - y1) - sufficient_spacing_below = vertical_spacing_below > vertical_thres - else: - sufficient_spacing_below = True - - return (sufficient_spacing_above, sufficient_spacing_below) - - def __is_word_list_line_by_rules(curr_line_text): - """ - This function checks if the current line is a word list - - Parameters - ---------- - curr_line_text : str - text of the current line - - Returns - ------- - bool - True if the current line is a name list, False otherwise. - """ - # name_list_pattern = r"([a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]|[\u4e00-\u9fa5·]{2,16})(?=[,,;;\s]|$)" - name_list_pattern = r"(?= 0.9: - return True - - return False - - def __is_equation(line_text): - """ - This function checks if the current line is an equation. - - Parameters - ---------- - line_text : str - - Returns - ------- - bool - True if the current line is an equation, False otherwise. - """ - equation_reg = r"\$.*?\\overline.*?\$" # to match interline equations - - if re.search(equation_reg, line_text): - return True - else: - return False - - def __is_title_by_len(text, max_length=200): - """ - This function checks if the current line is a title by length. - - Parameters - ---------- - text : str - text of the current line - - max_length : int - max length of the title - - Returns - ------- - bool - True if the current line is a title, False otherwise. - - """ - text = text.strip() - return len(text) <= max_length - - def __compute_line_font_type_and_size(curr_line): - """ - This function computes the font type and font size of the line. - - Parameters - ---------- - line : dict - line - - Returns - ------- - font_type : str - font type of the line - font_size : float - font size of the line - """ - spans = curr_line["spans"] - max_accumulated_length = 0 - max_span_font_size = curr_line["spans"][0]["size"] # default value, float type - max_span_font_type = curr_line["spans"][0]["font"].lower() # default value, string type - for span in spans: - if span["text"].isspace(): - continue - span_length = span["bbox"][2] - span["bbox"][0] - if span_length > max_accumulated_length: - max_accumulated_length = span_length - max_span_font_size = span["size"] - max_span_font_type = span["font"].lower() - - return max_span_font_type, max_span_font_size - - """ - Title detecting main Process. - """ - - """ - Basic features about the current line. - """ - curr_line_bbox = curr_line["bbox"] - curr_line_text = curr_line["text"] - curr_line_font_type, curr_line_font_size = __compute_line_font_type_and_size(curr_line) - - if len(curr_line_text.strip()) == 0: # skip empty lines - return False - - prev_line_bbox = prev_line["bbox"] if prev_line else None - if prev_line: - prev_line_font_type, prev_line_font_size = __compute_line_font_type_and_size(prev_line) - else: - prev_line_font_type, prev_line_font_size = None, None - - next_line_bbox = next_line["bbox"] if next_line else None - if next_line: - next_line_font_type, next_line_font_size = __compute_line_font_type_and_size(next_line) - else: - next_line_font_type, next_line_font_size = None, None - - """ - Aggregated features about the current line. - """ - is_italc_font = __is_italic_font_line(curr_line) - is_bold_font = __is_bold_font_line(curr_line) - - is_font_size_little_less_than_doc_avg = __is_font_size_not_less_than_docAvg(curr_line_font_size, ratio=0.8) - is_font_size_not_less_than_doc_avg = __is_font_size_not_less_than_docAvg(curr_line_font_size, ratio=1) - is_much_larger_font_than_doc_avg = __is_font_size_not_less_than_docAvg(curr_line_font_size, ratio=1.6) - - is_not_same_font_type_of_docAvg = not __is_same_font_type_of_docAvg(curr_line_font_type) - - is_potential_title_font = is_bold_font or is_font_size_not_less_than_doc_avg or is_not_same_font_type_of_docAvg - - is_mix_font_styles_strict = __has_mixed_font_styles(curr_line["spans"], strict_mode=True) - is_mix_font_styles_loose = __has_mixed_font_styles(curr_line["spans"], strict_mode=False) - - is_punctuation_heavy = __is_punctuation_heavy(curr_line_text) - - is_word_list_line_by_rules = __is_word_list_line_by_rules(curr_line_text) - is_person_or_org_list_line_by_nlp = __get_text_catgr_by_nlp(curr_line_text) in ["PERSON", "GPE", "ORG"] - - is_font_size_larger_than_neighbors = __is_larger_font_size_from_neighbors( - curr_line_font_size, prev_line_font_size, next_line_font_size - ) - - is_font_type_diff_from_neighbors = __is_different_font_type_from_neighbors( - curr_line_font_type, prev_line_font_type, next_line_font_type - ) - - has_sufficient_spaces_above, has_sufficient_spaces_below = __is_sufficient_spacing_above_and_below( - curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_height, median_font_size - ) - - is_similar_to_pre_line = __is_similar_to_pre_line( - curr_line_font_type, prev_line_font_type, curr_line_font_size, prev_line_font_size - ) - - """ - Further aggregated features about the current line. - - Attention: - Features that start with __ are for internal use. - """ - - __is_line_left_aligned_from_neighbors = is_line_left_aligned_from_neighbors( - curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width - ) - __is_font_diff_from_neighbors = is_font_size_larger_than_neighbors or is_font_type_diff_from_neighbors - is_a_left_inline_title = ( - is_mix_font_styles_strict and __is_line_left_aligned_from_neighbors and __is_font_diff_from_neighbors - ) - - is_title_by_check_prev_line = prev_line is None and has_sufficient_spaces_above and is_potential_title_font - is_title_by_check_next_line = next_line is None and has_sufficient_spaces_below and is_potential_title_font - - is_title_by_check_pre_and_next_line = ( - (prev_line is not None or next_line is not None) - and has_sufficient_spaces_above - and has_sufficient_spaces_below - and is_potential_title_font - ) - - is_numbered_title = __is_numbered_title(curr_line_text) and ( - (has_sufficient_spaces_above or prev_line is None) and (has_sufficient_spaces_below or next_line is None) - ) - - is_not_end_with_ending_puncs = not __is_end_with_ending_puncs(curr_line_text) - - is_not_only_no_meaning_symbols = not __contains_only_no_meaning_symbols(curr_line_text) - - is_equation = __is_equation(curr_line_text) - - is_title_by_len = __is_title_by_len(curr_line_text) - - """ - Decide if the line is a title. - """ - # is_title = False - # if prev_line_is_title: - - is_title = ( - is_not_end_with_ending_puncs # not end with ending punctuation marks - and is_not_only_no_meaning_symbols # not only have no meaning symbols - and is_title_by_len # is a title by length, default max length is 200 - and not is_equation # an interline equation should never be a title - and is_potential_title_font # is a potential title font, which is bold or larger than the document average font size or not the same font type as the document average font type - and ( - (is_not_same_font_type_of_docAvg and is_font_size_not_less_than_doc_avg) - or (is_bold_font and is_much_larger_font_than_doc_avg and is_not_same_font_type_of_docAvg) - or ( - is_much_larger_font_than_doc_avg - and (is_title_by_check_prev_line or is_title_by_check_next_line or is_title_by_check_pre_and_next_line) - ) - or ( - is_font_size_little_less_than_doc_avg - and is_bold_font - and (is_title_by_check_prev_line or is_title_by_check_next_line or is_title_by_check_pre_and_next_line) - ) - ) # not the same font type as the document average font type, which includes the most common font type and the second most common font type - and ( - ( - not is_person_or_org_list_line_by_nlp - and ( - is_much_larger_font_than_doc_avg - or (is_not_same_font_type_of_docAvg and is_font_size_not_less_than_doc_avg) - ) - ) - or ( - not (is_word_list_line_by_rules and is_person_or_org_list_line_by_nlp) - and not is_a_left_inline_title - and not is_punctuation_heavy - and (is_title_by_check_prev_line or is_title_by_check_next_line or is_title_by_check_pre_and_next_line) - ) - or ( - is_person_or_org_list_line_by_nlp - and (is_bold_font and is_much_larger_font_than_doc_avg and is_not_same_font_type_of_docAvg) - and (is_bold_font and is_much_larger_font_than_doc_avg and is_not_same_font_type_of_docAvg) - ) - or (is_numbered_title and not is_a_left_inline_title) - ) - ) - # ) or (is_similar_to_pre_line and prev_line_is_title) - - is_name_or_org_list_to_be_removed = ( - (is_person_or_org_list_line_by_nlp) - and is_punctuation_heavy - and (is_title_by_check_prev_line or is_title_by_check_next_line or is_title_by_check_pre_and_next_line) - ) and not is_title - - if is_name_or_org_list_to_be_removed: - is_author_or_org_list = True - # print curr_line_text to check - # print_yellow(f"Text of is_author_or_org_list: {curr_line_text}") - else: - is_author_or_org_list = False - """ - # print reason why the line is a title - if is_title: - print_green("This line is a title.") - print_green("↓" * 10) - print() - print("curr_line_text: ", curr_line_text) - print() - - # print reason why the line is not a title - line_text = curr_line_text.strip() - test_text = "Career/Personal Life" - text_content_condition = line_text == test_text - - if not is_title and text_content_condition: # Print specific line - # if not is_title: # Print each line - print_red("This line is not a title.") - print_red("↓" * 10) - - print() - print("curr_line_text: ", curr_line_text) - print() - - if is_not_end_with_ending_puncs: - print_green(f"is_not_end_with_ending_puncs") - else: - print_red(f"is_end_with_ending_puncs") - - if is_not_only_no_meaning_symbols: - print_green(f"is_not_only_no_meaning_symbols") - else: - print_red(f"is_only_no_meaning_symbols") - - if is_title_by_len: - print_green(f"is_title_by_len: {is_title_by_len}") - else: - print_red(f"is_not_title_by_len: {is_title_by_len}") - - if is_equation: - print_red(f"is_equation") - else: - print_green(f"is_not_equation") - - if is_potential_title_font: - print_green(f"is_potential_title_font") - else: - print_red(f"is_not_potential_title_font") - - if is_punctuation_heavy: - print_red("is_punctuation_heavy") - else: - print_green("is_not_punctuation_heavy") - - if is_bold_font: - print_green(f"is_bold_font") - else: - print_red(f"is_not_bold_font") - - if is_font_size_not_less_than_doc_avg: - print_green(f"is_larger_font_than_doc_avg") - else: - print_red(f"is_not_larger_font_than_doc_avg") - - if is_much_larger_font_than_doc_avg: - print_green(f"is_much_larger_font_than_doc_avg") - else: - print_red(f"is_not_much_larger_font_than_doc_avg") - - if is_not_same_font_type_of_docAvg: - print_green(f"is_not_same_font_type_of_docAvg") - else: - print_red(f"is_same_font_type_of_docAvg") - - if is_word_list_line_by_rules: - print_red("is_word_list_line_by_rules") - else: - print_green("is_not_name_list_by_rules") - - if is_person_or_org_list_line_by_nlp: - print_red("is_person_or_org_list_line_by_nlp") - else: - print_green("is_not_person_or_org_list_line_by_nlp") - - if not is_numbered_title: - print_red("is_not_numbered_title") - else: - print_green("is_numbered_title") - - if is_a_left_inline_title: - print_red("is_a_left_inline_title") - else: - print_green("is_not_a_left_inline_title") - - if not is_title_by_check_prev_line: - print_red("is_not_title_by_check_prev_line") - else: - print_green("is_title_by_check_prev_line") - - if not is_title_by_check_next_line: - print_red("is_not_title_by_check_next_line") - else: - print_green("is_title_by_check_next_line") - - if not is_title_by_check_pre_and_next_line: - print_red("is_not_title_by_check_pre_and_next_line") - else: - print_green("is_title_by_check_pre_and_next_line") - - # print_green("Common features:") - # print_green("↓" * 10) - - # print(f" curr_line_font_type: {curr_line_font_type}") - # print(f" curr_line_font_size: {curr_line_font_size}") - # print() - - """ - - return is_title, is_author_or_org_list - - def _detect_block_title(self, input_block): - """ - Use the functions 'is_potential_title' to detect titles of each paragraph block. - If a line is a title, then the value of key 'is_title' of the line will be set to True. - """ - - raw_lines = input_block["lines"] - - prev_line_is_title_flag = False - - for i, curr_line in enumerate(raw_lines): - prev_line = raw_lines[i - 1] if i > 0 else None - next_line = raw_lines[i + 1] if i < len(raw_lines) - 1 else None - - blk_avg_char_width = input_block["avg_char_width"] - blk_avg_char_height = input_block["avg_char_height"] - blk_media_font_size = input_block["median_font_size"] - - is_title, is_author_or_org_list = self._is_potential_title( - curr_line, - prev_line, - prev_line_is_title_flag, - next_line, - blk_avg_char_width, - blk_avg_char_height, - blk_media_font_size, - ) - - if is_title: - curr_line["is_title"] = is_title - prev_line_is_title_flag = True - else: - curr_line["is_title"] = False - prev_line_is_title_flag = False - - if is_author_or_org_list: - curr_line["is_author_or_org_list"] = is_author_or_org_list - else: - curr_line["is_author_or_org_list"] = False - - return input_block - - def batch_process_blocks_detect_titles(self, pdf_dic): - """ - This function batch process the blocks to detect titles. - - Parameters - ---------- - pdf_dict : dict - result dictionary - - Returns - ------- - pdf_dict : dict - result dictionary - """ - num_titles = 0 - - for page_id, blocks in pdf_dic.items(): - if page_id.startswith("page_"): - para_blocks = [] - if "para_blocks" in blocks.keys(): - para_blocks = blocks["para_blocks"] - - all_single_line_blocks = [] - for block in para_blocks: - if len(block["lines"]) == 1: - all_single_line_blocks.append(block) - - new_para_blocks = [] - if not len(all_single_line_blocks) == len(para_blocks): # Not all blocks are single line blocks. - for para_block in para_blocks: - new_block = self._detect_block_title(para_block) - new_para_blocks.append(new_block) - num_titles += sum([line.get("is_title", 0) for line in new_block["lines"]]) - else: # All blocks are single line blocks. - for para_block in para_blocks: - new_para_blocks.append(para_block) - num_titles += sum([line.get("is_title", 0) for line in para_block["lines"]]) - para_blocks = new_para_blocks - - blocks["para_blocks"] = para_blocks - - for para_block in para_blocks: - all_titles = all(safe_get(line, "is_title", False) for line in para_block["lines"]) - para_text_len = sum([len(line["text"]) for line in para_block["lines"]]) - if ( - all_titles and para_text_len < 200 - ): # total length of the paragraph is less than 200, more than this should not be a title - para_block["is_block_title"] = 1 - else: - para_block["is_block_title"] = 0 - - all_name_or_org_list_to_be_removed = all( - safe_get(line, "is_author_or_org_list", False) for line in para_block["lines"] - ) - if all_name_or_org_list_to_be_removed and page_id == "page_0": - para_block["is_block_an_author_or_org_list"] = 1 - else: - para_block["is_block_an_author_or_org_list"] = 0 - - pdf_dic["statistics"]["num_titles"] = num_titles - - return pdf_dic - - def __determine_size_based_level(self, title_blocks): - """ - This function determines the title level based on the font size of the title. - - Parameters - ---------- - title_blocks : list - - Returns - ------- - title_blocks : list - """ - - font_sizes = np.array([safe_get(tb["block"], "block_font_size", 0) for tb in title_blocks]) - - # Use the mean and std of font sizes to remove extreme values - mean_font_size = np.mean(font_sizes) - std_font_size = np.std(font_sizes) - min_extreme_font_size = mean_font_size - std_font_size # type: ignore - max_extreme_font_size = mean_font_size + std_font_size # type: ignore - - # Compute the threshold for title level - middle_font_sizes = font_sizes[(font_sizes > min_extreme_font_size) & (font_sizes < max_extreme_font_size)] - if middle_font_sizes.size > 0: - middle_mean_font_size = np.mean(middle_font_sizes) - level_threshold = middle_mean_font_size - else: - level_threshold = mean_font_size - - for tb in title_blocks: - title_block = tb["block"] - title_font_size = safe_get(title_block, "block_font_size", 0) - - current_level = 1 # Initialize title level, the biggest level is 1 - - # print(f"Before adjustment by font size, {current_level}") - if title_font_size >= max_extreme_font_size: - current_level = 1 - elif title_font_size <= min_extreme_font_size: - current_level = 3 - elif float(title_font_size) >= float(level_threshold): - current_level = 2 - else: - current_level = 3 - # print(f"After adjustment by font size, {current_level}") - - title_block["block_title_level"] = current_level - - return title_blocks - - def batch_process_blocks_recog_title_level(self, pdf_dic): - title_blocks = [] - - # Collect all titles - for page_id, blocks in pdf_dic.items(): - if page_id.startswith("page_"): - para_blocks = blocks.get("para_blocks", []) - for block in para_blocks: - if block.get("is_block_title"): - title_obj = {"page_id": page_id, "block": block} - title_blocks.append(title_obj) - - # Determine title level - if title_blocks: - # Determine title level based on font size - title_blocks = self.__determine_size_based_level(title_blocks) - - return pdf_dic diff --git a/magic_pdf/pdf_parse_by_ocr.py b/magic_pdf/pdf_parse_by_ocr.py deleted file mode 100644 index ca2f394b1..000000000 --- a/magic_pdf/pdf_parse_by_ocr.py +++ /dev/null @@ -1,21 +0,0 @@ -from magic_pdf.config.enums import SupportedPdfParseMethod -from magic_pdf.data.dataset import PymuDocDataset -from magic_pdf.pdf_parse_union_core_v2 import pdf_parse_union - - -def parse_pdf_by_ocr(pdf_bytes, - model_list, - imageWriter, - start_page_id=0, - end_page_id=None, - debug_mode=False, - ): - dataset = PymuDocDataset(pdf_bytes) - return pdf_parse_union(dataset, - model_list, - imageWriter, - SupportedPdfParseMethod.OCR, - start_page_id=start_page_id, - end_page_id=end_page_id, - debug_mode=debug_mode, - ) diff --git a/magic_pdf/pdf_parse_by_txt.py b/magic_pdf/pdf_parse_by_txt.py deleted file mode 100644 index bae800f48..000000000 --- a/magic_pdf/pdf_parse_by_txt.py +++ /dev/null @@ -1,22 +0,0 @@ -from magic_pdf.config.enums import SupportedPdfParseMethod -from magic_pdf.data.dataset import PymuDocDataset -from magic_pdf.pdf_parse_union_core_v2 import pdf_parse_union - - -def parse_pdf_by_txt( - pdf_bytes, - model_list, - imageWriter, - start_page_id=0, - end_page_id=None, - debug_mode=False, -): - dataset = PymuDocDataset(pdf_bytes) - return pdf_parse_union(dataset, - model_list, - imageWriter, - SupportedPdfParseMethod.TXT, - start_page_id=start_page_id, - end_page_id=end_page_id, - debug_mode=debug_mode, - ) diff --git a/magic_pdf/pdf_parse_union_core.py b/magic_pdf/pdf_parse_union_core.py deleted file mode 100644 index c764f0cef..000000000 --- a/magic_pdf/pdf_parse_union_core.py +++ /dev/null @@ -1,271 +0,0 @@ -import time - -from loguru import logger - -from magic_pdf.libs.commons import fitz, get_delta_time -from magic_pdf.layout.layout_sort import get_bboxes_layout, LAYOUT_UNPROC, get_columns_cnt_of_layout -from magic_pdf.libs.convert_utils import dict_to_list -from magic_pdf.libs.drop_reason import DropReason -from magic_pdf.libs.hash_utils import compute_md5 -from magic_pdf.libs.local_math import float_equal -from magic_pdf.libs.ocr_content_type import ContentType -from magic_pdf.model.magic_model import MagicModel -from magic_pdf.para.para_split_v2 import para_split -from magic_pdf.pre_proc.citationmarker_remove import remove_citation_marker -from magic_pdf.pre_proc.construct_page_dict import ocr_construct_page_component_v2 -from magic_pdf.pre_proc.cut_image import ocr_cut_image_and_table -from magic_pdf.pre_proc.equations_replace import remove_chars_in_text_blocks, replace_equations_in_textblock, \ - combine_chars_to_pymudict -from magic_pdf.pre_proc.ocr_detect_all_bboxes import ocr_prepare_bboxes_for_layout_split -from magic_pdf.pre_proc.ocr_dict_merge import sort_blocks_by_layout, fill_spans_in_blocks, fix_block_spans, \ - fix_discarded_block -from magic_pdf.pre_proc.ocr_span_list_modify import remove_overlaps_min_spans, get_qa_need_list_v2, \ - remove_overlaps_low_confidence_spans -from magic_pdf.pre_proc.resolve_bbox_conflict import check_useful_block_horizontal_overlap - - -def remove_horizontal_overlap_block_which_smaller(all_bboxes): - useful_blocks = [] - for bbox in all_bboxes: - useful_blocks.append({ - "bbox": bbox[:4] - }) - is_useful_block_horz_overlap, smaller_bbox, bigger_bbox = check_useful_block_horizontal_overlap(useful_blocks) - if is_useful_block_horz_overlap: - logger.warning( - f"skip this page, reason: {DropReason.USEFUL_BLOCK_HOR_OVERLAP}, smaller bbox is {smaller_bbox}, bigger bbox is {bigger_bbox}") - for bbox in all_bboxes.copy(): - if smaller_bbox == bbox[:4]: - all_bboxes.remove(bbox) - - return is_useful_block_horz_overlap, all_bboxes - - -def __replace_STX_ETX(text_str:str): - """ Replace \u0002 and \u0003, as these characters become garbled when extracted using pymupdf. In fact, they were originally quotation marks. -Drawback: This issue is only observed in English text; it has not been found in Chinese text so far. - - Args: - text_str (str): raw text - - Returns: - _type_: replaced text - """ - if text_str: - s = text_str.replace('\u0002', "'") - s = s.replace("\u0003", "'") - return s - return text_str - - -def txt_spans_extract(pdf_page, inline_equations, interline_equations): - text_raw_blocks = pdf_page.get_text("dict", flags=fitz.TEXTFLAGS_TEXT)["blocks"] - char_level_text_blocks = pdf_page.get_text("rawdict", flags=fitz.TEXTFLAGS_TEXT)[ - "blocks" - ] - text_blocks = combine_chars_to_pymudict(text_raw_blocks, char_level_text_blocks) - text_blocks = replace_equations_in_textblock( - text_blocks, inline_equations, interline_equations - ) - text_blocks = remove_citation_marker(text_blocks) - text_blocks = remove_chars_in_text_blocks(text_blocks) - spans = [] - for v in text_blocks: - for line in v["lines"]: - for span in line["spans"]: - bbox = span["bbox"] - if float_equal(bbox[0], bbox[2]) or float_equal(bbox[1], bbox[3]): - continue - if span.get('type') not in (ContentType.InlineEquation, ContentType.InterlineEquation): - spans.append( - { - "bbox": list(span["bbox"]), - "content": __replace_STX_ETX(span["text"]), - "type": ContentType.Text, - "score": 1.0, - } - ) - return spans - - -def replace_text_span(pymu_spans, ocr_spans): - return list(filter(lambda x: x["type"] != ContentType.Text, ocr_spans)) + pymu_spans - - -def parse_page_core(pdf_docs, magic_model, page_id, pdf_bytes_md5, imageWriter, parse_mode): - need_drop = False - drop_reason = [] - - '''从magic_model对象中获取后面会用到的区块信息''' - img_blocks = magic_model.get_imgs(page_id) - table_blocks = magic_model.get_tables(page_id) - discarded_blocks = magic_model.get_discarded(page_id) - text_blocks = magic_model.get_text_blocks(page_id) - title_blocks = magic_model.get_title_blocks(page_id) - inline_equations, interline_equations, interline_equation_blocks = magic_model.get_equations(page_id) - - page_w, page_h = magic_model.get_page_size(page_id) - - spans = magic_model.get_all_spans(page_id) - - '''根据parse_mode,构造spans''' - if parse_mode == "txt": - """ocr 中文本类的 span 用 pymu spans 替换!""" - pymu_spans = txt_spans_extract( - pdf_docs[page_id], inline_equations, interline_equations - ) - spans = replace_text_span(pymu_spans, spans) - elif parse_mode == "ocr": - pass - else: - raise Exception("parse_mode must be txt or ocr") - - '''删除重叠spans中置信度较低的那些''' - spans, dropped_spans_by_confidence = remove_overlaps_low_confidence_spans(spans) - '''删除重叠spans中较小的那些''' - spans, dropped_spans_by_span_overlap = remove_overlaps_min_spans(spans) - '''对image和table截图''' - spans = ocr_cut_image_and_table(spans, pdf_docs[page_id], page_id, pdf_bytes_md5, imageWriter) - - '''将所有区块的bbox整理到一起''' - # interline_equation_blocks参数不够准,后面切换到interline_equations上 - interline_equation_blocks = [] - if len(interline_equation_blocks) > 0: - all_bboxes, all_discarded_blocks, drop_reasons = ocr_prepare_bboxes_for_layout_split( - img_blocks, table_blocks, discarded_blocks, text_blocks, title_blocks, - interline_equation_blocks, page_w, page_h) - else: - all_bboxes, all_discarded_blocks, drop_reasons = ocr_prepare_bboxes_for_layout_split( - img_blocks, table_blocks, discarded_blocks, text_blocks, title_blocks, - interline_equations, page_w, page_h) - - if len(drop_reasons) > 0: - need_drop = True - drop_reason.append(DropReason.OVERLAP_BLOCKS_CAN_NOT_SEPARATION) - - '''先处理不需要排版的discarded_blocks''' - discarded_block_with_spans, spans = fill_spans_in_blocks(all_discarded_blocks, spans, 0.4) - fix_discarded_blocks = fix_discarded_block(discarded_block_with_spans) - - '''如果当前页面没有bbox则跳过''' - if len(all_bboxes) == 0: - logger.warning(f"skip this page, not found useful bbox, page_id: {page_id}") - return ocr_construct_page_component_v2([], [], page_id, page_w, page_h, [], - [], [], interline_equations, fix_discarded_blocks, - need_drop, drop_reason) - - """在切分之前,先检查一下bbox是否有左右重叠的情况,如果有,那么就认为这个pdf暂时没有能力处理好,这种左右重叠的情况大概率是由于pdf里的行间公式、表格没有被正确识别出来造成的 """ - - while True: # 循环检查左右重叠的情况,如果存在就删除掉较小的那个bbox,直到不存在左右重叠的情况 - is_useful_block_horz_overlap, all_bboxes = remove_horizontal_overlap_block_which_smaller(all_bboxes) - if is_useful_block_horz_overlap: - need_drop = True - drop_reason.append(DropReason.USEFUL_BLOCK_HOR_OVERLAP) - else: - break - - '''根据区块信息计算layout''' - page_boundry = [0, 0, page_w, page_h] - layout_bboxes, layout_tree = get_bboxes_layout(all_bboxes, page_boundry, page_id) - - if len(text_blocks) > 0 and len(all_bboxes) > 0 and len(layout_bboxes) == 0: - logger.warning( - f"skip this page, page_id: {page_id}, reason: {DropReason.CAN_NOT_DETECT_PAGE_LAYOUT}") - need_drop = True - drop_reason.append(DropReason.CAN_NOT_DETECT_PAGE_LAYOUT) - - """以下去掉复杂的布局和超过2列的布局""" - if any([lay["layout_label"] == LAYOUT_UNPROC for lay in layout_bboxes]): # 复杂的布局 - logger.warning( - f"skip this page, page_id: {page_id}, reason: {DropReason.COMPLICATED_LAYOUT}") - need_drop = True - drop_reason.append(DropReason.COMPLICATED_LAYOUT) - - layout_column_width = get_columns_cnt_of_layout(layout_tree) - if layout_column_width > 2: # 去掉超过2列的布局pdf - logger.warning( - f"skip this page, page_id: {page_id}, reason: {DropReason.TOO_MANY_LAYOUT_COLUMNS}") - need_drop = True - drop_reason.append(DropReason.TOO_MANY_LAYOUT_COLUMNS) - - '''根据layout顺序,对当前页面所有需要留下的block进行排序''' - sorted_blocks = sort_blocks_by_layout(all_bboxes, layout_bboxes) - - '''将span填入排好序的blocks中''' - block_with_spans, spans = fill_spans_in_blocks(sorted_blocks, spans, 0.3) - - '''对block进行fix操作''' - fix_blocks = fix_block_spans(block_with_spans, img_blocks, table_blocks) - - '''获取QA需要外置的list''' - images, tables, interline_equations = get_qa_need_list_v2(fix_blocks) - - '''构造pdf_info_dict''' - page_info = ocr_construct_page_component_v2(fix_blocks, layout_bboxes, page_id, page_w, page_h, layout_tree, - images, tables, interline_equations, fix_discarded_blocks, - need_drop, drop_reason) - return page_info - - -def pdf_parse_union(pdf_bytes, - model_list, - imageWriter, - parse_mode, - start_page_id=0, - end_page_id=None, - debug_mode=False, - ): - pdf_bytes_md5 = compute_md5(pdf_bytes) - pdf_docs = fitz.open("pdf", pdf_bytes) - - '''初始化空的pdf_info_dict''' - pdf_info_dict = {} - - '''用model_list和docs对象初始化magic_model''' - magic_model = MagicModel(model_list, pdf_docs) - - '''根据输入的起始范围解析pdf''' - # end_page_id = end_page_id if end_page_id else len(pdf_docs) - 1 - end_page_id = end_page_id if end_page_id is not None and end_page_id >= 0 else len(pdf_docs) - 1 - - if end_page_id > len(pdf_docs) - 1: - logger.warning("end_page_id is out of range, use pdf_docs length") - end_page_id = len(pdf_docs) - 1 - - '''初始化启动时间''' - start_time = time.time() - - for page_id, page in enumerate(pdf_docs): - '''debug时输出每页解析的耗时''' - if debug_mode: - time_now = time.time() - logger.info( - f"page_id: {page_id}, last_page_cost_time: {get_delta_time(start_time)}" - ) - start_time = time_now - - '''解析pdf中的每一页''' - if start_page_id <= page_id <= end_page_id: - page_info = parse_page_core(pdf_docs, magic_model, page_id, pdf_bytes_md5, imageWriter, parse_mode) - else: - page_w = page.rect.width - page_h = page.rect.height - page_info = ocr_construct_page_component_v2([], [], page_id, page_w, page_h, [], - [], [], [], [], - True, "skip page") - pdf_info_dict[f"page_{page_id}"] = page_info - - """分段""" - para_split(pdf_info_dict, debug_mode=debug_mode) - - """dict转list""" - pdf_info_list = dict_to_list(pdf_info_dict) - new_pdf_info_dict = { - "pdf_info": pdf_info_list, - } - - return new_pdf_info_dict - - -if __name__ == '__main__': - pass diff --git a/magic_pdf/pdf_parse_union_core_v2.py b/magic_pdf/pdf_parse_union_core_v2.py deleted file mode 100644 index 4c3a6d006..000000000 --- a/magic_pdf/pdf_parse_union_core_v2.py +++ /dev/null @@ -1,597 +0,0 @@ -import copy -import os -import statistics -import time -from typing import List - -import torch -from loguru import logger - -from magic_pdf.config.enums import SupportedPdfParseMethod -from magic_pdf.data.dataset import Dataset, PageableData -from magic_pdf.libs.clean_memory import clean_memory -from magic_pdf.libs.commons import fitz, get_delta_time -from magic_pdf.libs.config_reader import get_local_layoutreader_model_dir -from magic_pdf.libs.convert_utils import dict_to_list -from magic_pdf.libs.drop_reason import DropReason -from magic_pdf.libs.hash_utils import compute_md5 -from magic_pdf.libs.local_math import float_equal -from magic_pdf.libs.ocr_content_type import ContentType, BlockType -from magic_pdf.model.magic_model import MagicModel -from magic_pdf.para.para_split_v3 import para_split -from magic_pdf.pre_proc.citationmarker_remove import remove_citation_marker -from magic_pdf.pre_proc.construct_page_dict import \ - ocr_construct_page_component_v2 -from magic_pdf.pre_proc.cut_image import ocr_cut_image_and_table -from magic_pdf.pre_proc.equations_replace import ( - combine_chars_to_pymudict, remove_chars_in_text_blocks, - replace_equations_in_textblock) -from magic_pdf.pre_proc.ocr_detect_all_bboxes import \ - ocr_prepare_bboxes_for_layout_split_v2 -from magic_pdf.pre_proc.ocr_dict_merge import (fill_spans_in_blocks, - fix_block_spans, - fix_discarded_block, fix_block_spans_v2) -from magic_pdf.pre_proc.ocr_span_list_modify import ( - get_qa_need_list_v2, remove_overlaps_low_confidence_spans, - remove_overlaps_min_spans) -from magic_pdf.pre_proc.resolve_bbox_conflict import \ - check_useful_block_horizontal_overlap - - -def remove_horizontal_overlap_block_which_smaller(all_bboxes): - useful_blocks = [] - for bbox in all_bboxes: - useful_blocks.append({'bbox': bbox[:4]}) - is_useful_block_horz_overlap, smaller_bbox, bigger_bbox = ( - check_useful_block_horizontal_overlap(useful_blocks) - ) - if is_useful_block_horz_overlap: - logger.warning( - f'skip this page, reason: {DropReason.USEFUL_BLOCK_HOR_OVERLAP}, smaller bbox is {smaller_bbox}, bigger bbox is {bigger_bbox}' - ) # noqa: E501 - for bbox in all_bboxes.copy(): - if smaller_bbox == bbox[:4]: - all_bboxes.remove(bbox) - - return is_useful_block_horz_overlap, all_bboxes - - -def __replace_STX_ETX(text_str: str): - """Replace \u0002 and \u0003, as these characters become garbled when extracted using pymupdf. In fact, they were originally quotation marks. - Drawback: This issue is only observed in English text; it has not been found in Chinese text so far. - - Args: - text_str (str): raw text - - Returns: - _type_: replaced text - """ # noqa: E501 - if text_str: - s = text_str.replace('\u0002', "'") - s = s.replace('\u0003', "'") - return s - return text_str - - -def txt_spans_extract(pdf_page, inline_equations, interline_equations): - text_raw_blocks = pdf_page.get_text('dict', flags=fitz.TEXTFLAGS_TEXT)['blocks'] - char_level_text_blocks = pdf_page.get_text('rawdict', flags=fitz.TEXTFLAGS_TEXT)[ - 'blocks' - ] - text_blocks = combine_chars_to_pymudict(text_raw_blocks, char_level_text_blocks) - text_blocks = replace_equations_in_textblock( - text_blocks, inline_equations, interline_equations - ) - text_blocks = remove_citation_marker(text_blocks) - text_blocks = remove_chars_in_text_blocks(text_blocks) - spans = [] - for v in text_blocks: - for line in v['lines']: - for span in line['spans']: - bbox = span['bbox'] - if float_equal(bbox[0], bbox[2]) or float_equal(bbox[1], bbox[3]): - continue - if span.get('type') not in ( - ContentType.InlineEquation, - ContentType.InterlineEquation, - ): - spans.append( - { - 'bbox': list(span['bbox']), - 'content': __replace_STX_ETX(span['text']), - 'type': ContentType.Text, - 'score': 1.0, - } - ) - return spans - - -def replace_text_span(pymu_spans, ocr_spans): - return list(filter(lambda x: x['type'] != ContentType.Text, ocr_spans)) + pymu_spans - - -def model_init(model_name: str): - from transformers import LayoutLMv3ForTokenClassification - - if torch.cuda.is_available(): - device = torch.device('cuda') - if torch.cuda.is_bf16_supported(): - supports_bfloat16 = True - else: - supports_bfloat16 = False - else: - device = torch.device('cpu') - supports_bfloat16 = False - - if model_name == 'layoutreader': - # 检测modelscope的缓存目录是否存在 - layoutreader_model_dir = get_local_layoutreader_model_dir() - if os.path.exists(layoutreader_model_dir): - model = LayoutLMv3ForTokenClassification.from_pretrained( - layoutreader_model_dir - ) - else: - logger.warning( - 'local layoutreader model not exists, use online model from huggingface' - ) - model = LayoutLMv3ForTokenClassification.from_pretrained( - 'hantian/layoutreader' - ) - # 检查设备是否支持 bfloat16 - if supports_bfloat16: - model.bfloat16() - model.to(device).eval() - else: - logger.error('model name not allow') - exit(1) - return model - - -class ModelSingleton: - _instance = None - _models = {} - - def __new__(cls, *args, **kwargs): - if cls._instance is None: - cls._instance = super().__new__(cls) - return cls._instance - - def get_model(self, model_name: str): - if model_name not in self._models: - self._models[model_name] = model_init(model_name=model_name) - return self._models[model_name] - - -def do_predict(boxes: List[List[int]], model) -> List[int]: - from magic_pdf.model.v3.helpers import (boxes2inputs, parse_logits, - prepare_inputs) - - inputs = boxes2inputs(boxes) - inputs = prepare_inputs(inputs, model) - logits = model(**inputs).logits.cpu().squeeze(0) - return parse_logits(logits, len(boxes)) - - -def cal_block_index(fix_blocks, sorted_bboxes): - for block in fix_blocks: - - line_index_list = [] - if len(block['lines']) == 0: - block['index'] = sorted_bboxes.index(block['bbox']) - else: - for line in block['lines']: - line['index'] = sorted_bboxes.index(line['bbox']) - line_index_list.append(line['index']) - median_value = statistics.median(line_index_list) - block['index'] = median_value - - # 删除图表body block中的虚拟line信息, 并用real_lines信息回填 - if block['type'] in [BlockType.ImageBody, BlockType.TableBody]: - block['virtual_lines'] = copy.deepcopy(block['lines']) - block['lines'] = copy.deepcopy(block['real_lines']) - del block['real_lines'] - - return fix_blocks - - -def insert_lines_into_block(block_bbox, line_height, page_w, page_h): - # block_bbox是一个元组(x0, y0, x1, y1),其中(x0, y0)是左下角坐标,(x1, y1)是右上角坐标 - x0, y0, x1, y1 = block_bbox - - block_height = y1 - y0 - block_weight = x1 - x0 - - # 如果block高度小于n行正文,则直接返回block的bbox - if line_height * 3 < block_height: - if ( - block_height > page_h * 0.25 and page_w * 0.5 > block_weight > page_w * 0.25 - ): # 可能是双列结构,可以切细点 - lines = int(block_height / line_height) + 1 - else: - # 如果block的宽度超过0.4页面宽度,则将block分成3行(是一种复杂布局,图不能切的太细) - if block_weight > page_w * 0.4: - line_height = (y1 - y0) / 3 - lines = 3 - elif block_weight > page_w * 0.25: # (可能是三列结构,也切细点) - lines = int(block_height / line_height) + 1 - else: # 判断长宽比 - if block_height / block_weight > 1.2: # 细长的不分 - return [[x0, y0, x1, y1]] - else: # 不细长的还是分成两行 - line_height = (y1 - y0) / 2 - lines = 2 - - # 确定从哪个y位置开始绘制线条 - current_y = y0 - - # 用于存储线条的位置信息[(x0, y), ...] - lines_positions = [] - - for i in range(lines): - lines_positions.append([x0, current_y, x1, current_y + line_height]) - current_y += line_height - return lines_positions - - else: - return [[x0, y0, x1, y1]] - - -def sort_lines_by_model(fix_blocks, page_w, page_h, line_height): - page_line_list = [] - for block in fix_blocks: - if block['type'] in [ - BlockType.Text, BlockType.Title, BlockType.InterlineEquation, - BlockType.ImageCaption, BlockType.ImageFootnote, - BlockType.TableCaption, BlockType.TableFootnote - ]: - if len(block['lines']) == 0: - bbox = block['bbox'] - lines = insert_lines_into_block(bbox, line_height, page_w, page_h) - for line in lines: - block['lines'].append({'bbox': line, 'spans': []}) - page_line_list.extend(lines) - else: - for line in block['lines']: - bbox = line['bbox'] - page_line_list.append(bbox) - elif block['type'] in [BlockType.ImageBody, BlockType.TableBody]: - bbox = block['bbox'] - block["real_lines"] = copy.deepcopy(block['lines']) - lines = insert_lines_into_block(bbox, line_height, page_w, page_h) - block['lines'] = [] - for line in lines: - block['lines'].append({'bbox': line, 'spans': []}) - page_line_list.extend(lines) - - # 使用layoutreader排序 - x_scale = 1000.0 / page_w - y_scale = 1000.0 / page_h - boxes = [] - # logger.info(f"Scale: {x_scale}, {y_scale}, Boxes len: {len(page_line_list)}") - for left, top, right, bottom in page_line_list: - if left < 0: - logger.warning( - f'left < 0, left: {left}, right: {right}, top: {top}, bottom: {bottom}, page_w: {page_w}, page_h: {page_h}' - ) # noqa: E501 - left = 0 - if right > page_w: - logger.warning( - f'right > page_w, left: {left}, right: {right}, top: {top}, bottom: {bottom}, page_w: {page_w}, page_h: {page_h}' - ) # noqa: E501 - right = page_w - if top < 0: - logger.warning( - f'top < 0, left: {left}, right: {right}, top: {top}, bottom: {bottom}, page_w: {page_w}, page_h: {page_h}' - ) # noqa: E501 - top = 0 - if bottom > page_h: - logger.warning( - f'bottom > page_h, left: {left}, right: {right}, top: {top}, bottom: {bottom}, page_w: {page_w}, page_h: {page_h}' - ) # noqa: E501 - bottom = page_h - - left = round(left * x_scale) - top = round(top * y_scale) - right = round(right * x_scale) - bottom = round(bottom * y_scale) - assert ( - 1000 >= right >= left >= 0 and 1000 >= bottom >= top >= 0 - ), f'Invalid box. right: {right}, left: {left}, bottom: {bottom}, top: {top}' # noqa: E126, E121 - boxes.append([left, top, right, bottom]) - model_manager = ModelSingleton() - model = model_manager.get_model('layoutreader') - with torch.no_grad(): - orders = do_predict(boxes, model) - sorted_bboxes = [page_line_list[i] for i in orders] - - return sorted_bboxes - - -def get_line_height(blocks): - page_line_height_list = [] - for block in blocks: - if block['type'] in [ - BlockType.Text, BlockType.Title, - BlockType.ImageCaption, BlockType.ImageFootnote, - BlockType.TableCaption, BlockType.TableFootnote - ]: - for line in block['lines']: - bbox = line['bbox'] - page_line_height_list.append(int(bbox[3] - bbox[1])) - if len(page_line_height_list) > 0: - return statistics.median(page_line_height_list) - else: - return 10 - - -def process_groups(groups, body_key, caption_key, footnote_key): - body_blocks = [] - caption_blocks = [] - footnote_blocks = [] - for i, group in enumerate(groups): - group[body_key]['group_id'] = i - body_blocks.append(group[body_key]) - for caption_block in group[caption_key]: - caption_block['group_id'] = i - caption_blocks.append(caption_block) - for footnote_block in group[footnote_key]: - footnote_block['group_id'] = i - footnote_blocks.append(footnote_block) - return body_blocks, caption_blocks, footnote_blocks - - -def process_block_list(blocks, body_type, block_type): - indices = [block['index'] for block in blocks] - median_index = statistics.median(indices) - - body_bbox = next((block['bbox'] for block in blocks if block.get('type') == body_type), []) - - return { - 'type': block_type, - 'bbox': body_bbox, - 'blocks': blocks, - 'index': median_index, - } - - -def revert_group_blocks(blocks): - image_groups = {} - table_groups = {} - new_blocks = [] - for block in blocks: - if block['type'] in [BlockType.ImageBody, BlockType.ImageCaption, BlockType.ImageFootnote]: - group_id = block['group_id'] - if group_id not in image_groups: - image_groups[group_id] = [] - image_groups[group_id].append(block) - elif block['type'] in [BlockType.TableBody, BlockType.TableCaption, BlockType.TableFootnote]: - group_id = block['group_id'] - if group_id not in table_groups: - table_groups[group_id] = [] - table_groups[group_id].append(block) - else: - new_blocks.append(block) - - for group_id, blocks in image_groups.items(): - new_blocks.append(process_block_list(blocks, BlockType.ImageBody, BlockType.Image)) - - for group_id, blocks in table_groups.items(): - new_blocks.append(process_block_list(blocks, BlockType.TableBody, BlockType.Table)) - - return new_blocks - - -def parse_page_core( - page_doc: PageableData, magic_model, page_id, pdf_bytes_md5, imageWriter, parse_mode -): - need_drop = False - drop_reason = [] - - """从magic_model对象中获取后面会用到的区块信息""" - # img_blocks = magic_model.get_imgs(page_id) - # table_blocks = magic_model.get_tables(page_id) - - img_groups = magic_model.get_imgs_v2(page_id) - table_groups = magic_model.get_tables_v2(page_id) - - img_body_blocks, img_caption_blocks, img_footnote_blocks = process_groups( - img_groups, 'image_body', 'image_caption_list', 'image_footnote_list' - ) - - table_body_blocks, table_caption_blocks, table_footnote_blocks = process_groups( - table_groups, 'table_body', 'table_caption_list', 'table_footnote_list' - ) - - discarded_blocks = magic_model.get_discarded(page_id) - text_blocks = magic_model.get_text_blocks(page_id) - title_blocks = magic_model.get_title_blocks(page_id) - inline_equations, interline_equations, interline_equation_blocks = ( - magic_model.get_equations(page_id) - ) - - page_w, page_h = magic_model.get_page_size(page_id) - - spans = magic_model.get_all_spans(page_id) - - """根据parse_mode,构造spans""" - if parse_mode == SupportedPdfParseMethod.TXT: - """ocr 中文本类的 span 用 pymu spans 替换!""" - pymu_spans = txt_spans_extract(page_doc, inline_equations, interline_equations) - spans = replace_text_span(pymu_spans, spans) - elif parse_mode == SupportedPdfParseMethod.OCR: - pass - else: - raise Exception('parse_mode must be txt or ocr') - - """删除重叠spans中置信度较低的那些""" - spans, dropped_spans_by_confidence = remove_overlaps_low_confidence_spans(spans) - """删除重叠spans中较小的那些""" - spans, dropped_spans_by_span_overlap = remove_overlaps_min_spans(spans) - """对image和table截图""" - spans = ocr_cut_image_and_table( - spans, page_doc, page_id, pdf_bytes_md5, imageWriter - ) - - """将所有区块的bbox整理到一起""" - # interline_equation_blocks参数不够准,后面切换到interline_equations上 - interline_equation_blocks = [] - if len(interline_equation_blocks) > 0: - all_bboxes, all_discarded_blocks = ocr_prepare_bboxes_for_layout_split_v2( - img_body_blocks, img_caption_blocks, img_footnote_blocks, - table_body_blocks, table_caption_blocks, table_footnote_blocks, - discarded_blocks, - text_blocks, - title_blocks, - interline_equation_blocks, - page_w, - page_h, - ) - else: - all_bboxes, all_discarded_blocks = ocr_prepare_bboxes_for_layout_split_v2( - img_body_blocks, img_caption_blocks, img_footnote_blocks, - table_body_blocks, table_caption_blocks, table_footnote_blocks, - discarded_blocks, - text_blocks, - title_blocks, - interline_equations, - page_w, - page_h, - ) - - """先处理不需要排版的discarded_blocks""" - discarded_block_with_spans, spans = fill_spans_in_blocks( - all_discarded_blocks, spans, 0.4 - ) - fix_discarded_blocks = fix_discarded_block(discarded_block_with_spans) - - """如果当前页面没有bbox则跳过""" - if len(all_bboxes) == 0: - logger.warning(f'skip this page, not found useful bbox, page_id: {page_id}') - return ocr_construct_page_component_v2( - [], - [], - page_id, - page_w, - page_h, - [], - [], - [], - interline_equations, - fix_discarded_blocks, - need_drop, - drop_reason, - ) - - """将span填入blocks中""" - block_with_spans, spans = fill_spans_in_blocks(all_bboxes, spans, 0.5) - - """对block进行fix操作""" - fix_blocks = fix_block_spans_v2(block_with_spans) - - """获取所有line并计算正文line的高度""" - line_height = get_line_height(fix_blocks) - - """获取所有line并对line排序""" - sorted_bboxes = sort_lines_by_model(fix_blocks, page_w, page_h, line_height) - - """根据line的中位数算block的序列关系""" - fix_blocks = cal_block_index(fix_blocks, sorted_bboxes) - - """将image和table的block还原回group形式参与后续流程""" - fix_blocks = revert_group_blocks(fix_blocks) - - """重排block""" - sorted_blocks = sorted(fix_blocks, key=lambda b: b['index']) - - """获取QA需要外置的list""" - images, tables, interline_equations = get_qa_need_list_v2(sorted_blocks) - - """构造pdf_info_dict""" - page_info = ocr_construct_page_component_v2( - sorted_blocks, - [], - page_id, - page_w, - page_h, - [], - images, - tables, - interline_equations, - fix_discarded_blocks, - need_drop, - drop_reason, - ) - return page_info - - -def pdf_parse_union( - dataset: Dataset, - model_list, - imageWriter, - parse_mode, - start_page_id=0, - end_page_id=None, - debug_mode=False, -): - pdf_bytes_md5 = compute_md5(dataset.data_bits()) - - """初始化空的pdf_info_dict""" - pdf_info_dict = {} - - """用model_list和docs对象初始化magic_model""" - magic_model = MagicModel(model_list, dataset) - - """根据输入的起始范围解析pdf""" - # end_page_id = end_page_id if end_page_id else len(pdf_docs) - 1 - end_page_id = ( - end_page_id - if end_page_id is not None and end_page_id >= 0 - else len(dataset) - 1 - ) - - if end_page_id > len(dataset) - 1: - logger.warning('end_page_id is out of range, use pdf_docs length') - end_page_id = len(dataset) - 1 - - """初始化启动时间""" - start_time = time.time() - - for page_id, page in enumerate(dataset): - """debug时输出每页解析的耗时.""" - if debug_mode: - time_now = time.time() - logger.info( - f'page_id: {page_id}, last_page_cost_time: {get_delta_time(start_time)}' - ) - start_time = time_now - - """解析pdf中的每一页""" - if start_page_id <= page_id <= end_page_id: - page_info = parse_page_core( - page, magic_model, page_id, pdf_bytes_md5, imageWriter, parse_mode - ) - else: - page_info = page.get_page_info() - page_w = page_info.w - page_h = page_info.h - page_info = ocr_construct_page_component_v2( - [], [], page_id, page_w, page_h, [], [], [], [], [], True, 'skip page' - ) - pdf_info_dict[f'page_{page_id}'] = page_info - - """分段""" - para_split(pdf_info_dict, debug_mode=debug_mode) - - """dict转list""" - pdf_info_list = dict_to_list(pdf_info_dict) - new_pdf_info_dict = { - 'pdf_info': pdf_info_list, - } - - clean_memory() - - return new_pdf_info_dict - - -if __name__ == '__main__': - pass diff --git a/magic_pdf/pipe/AbsPipe.py b/magic_pdf/pipe/AbsPipe.py deleted file mode 100644 index 198413745..000000000 --- a/magic_pdf/pipe/AbsPipe.py +++ /dev/null @@ -1,114 +0,0 @@ -from abc import ABC, abstractmethod - -from magic_pdf.dict2md.ocr_mkcontent import union_make -from magic_pdf.filter.pdf_classify_by_type import classify -from magic_pdf.filter.pdf_meta_scan import pdf_meta_scan -from magic_pdf.libs.MakeContentConfig import MakeMode, DropMode -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.libs.drop_reason import DropReason -from magic_pdf.libs.json_compressor import JsonCompressor - - -class AbsPipe(ABC): - """ - txt和ocr处理的抽象类 - """ - PIP_OCR = "ocr" - PIP_TXT = "txt" - - def __init__(self, pdf_bytes: bytes, model_list: list, image_writer: AbsReaderWriter, is_debug: bool = False, - start_page_id=0, end_page_id=None, lang=None, layout_model=None, formula_enable=None, table_enable=None): - self.pdf_bytes = pdf_bytes - self.model_list = model_list - self.image_writer = image_writer - self.pdf_mid_data = None # 未压缩 - self.is_debug = is_debug - self.start_page_id = start_page_id - self.end_page_id = end_page_id - self.lang = lang - self.layout_model = layout_model - self.formula_enable = formula_enable - self.table_enable = table_enable - - def get_compress_pdf_mid_data(self): - return JsonCompressor.compress_json(self.pdf_mid_data) - - @abstractmethod - def pipe_classify(self): - """ - 有状态的分类 - """ - raise NotImplementedError - - @abstractmethod - def pipe_analyze(self): - """ - 有状态的跑模型分析 - """ - raise NotImplementedError - - @abstractmethod - def pipe_parse(self): - """ - 有状态的解析 - """ - raise NotImplementedError - - def pipe_mk_uni_format(self, img_parent_path: str, drop_mode=DropMode.WHOLE_PDF): - content_list = AbsPipe.mk_uni_format(self.get_compress_pdf_mid_data(), img_parent_path, drop_mode) - return content_list - - def pipe_mk_markdown(self, img_parent_path: str, drop_mode=DropMode.WHOLE_PDF, md_make_mode=MakeMode.MM_MD): - md_content = AbsPipe.mk_markdown(self.get_compress_pdf_mid_data(), img_parent_path, drop_mode, md_make_mode) - return md_content - - @staticmethod - def classify(pdf_bytes: bytes) -> str: - """ - 根据pdf的元数据,判断是文本pdf,还是ocr pdf - """ - pdf_meta = pdf_meta_scan(pdf_bytes) - if pdf_meta.get("_need_drop", False): # 如果返回了需要丢弃的标志,则抛出异常 - raise Exception(f"pdf meta_scan need_drop,reason is {pdf_meta['_drop_reason']}") - else: - is_encrypted = pdf_meta["is_encrypted"] - is_needs_password = pdf_meta["is_needs_password"] - if is_encrypted or is_needs_password: # 加密的,需要密码的,没有页面的,都不处理 - raise Exception(f"pdf meta_scan need_drop,reason is {DropReason.ENCRYPTED}") - else: - is_text_pdf, results = classify( - pdf_meta["total_page"], - pdf_meta["page_width_pts"], - pdf_meta["page_height_pts"], - pdf_meta["image_info_per_page"], - pdf_meta["text_len_per_page"], - pdf_meta["imgs_per_page"], - pdf_meta["text_layout_per_page"], - pdf_meta["invalid_chars"], - ) - if is_text_pdf: - return AbsPipe.PIP_TXT - else: - return AbsPipe.PIP_OCR - - @staticmethod - def mk_uni_format(compressed_pdf_mid_data: str, img_buket_path: str, drop_mode=DropMode.WHOLE_PDF) -> list: - """ - 根据pdf类型,生成统一格式content_list - """ - pdf_mid_data = JsonCompressor.decompress_json(compressed_pdf_mid_data) - pdf_info_list = pdf_mid_data["pdf_info"] - content_list = union_make(pdf_info_list, MakeMode.STANDARD_FORMAT, drop_mode, img_buket_path) - return content_list - - @staticmethod - def mk_markdown(compressed_pdf_mid_data: str, img_buket_path: str, drop_mode=DropMode.WHOLE_PDF, md_make_mode=MakeMode.MM_MD) -> list: - """ - 根据pdf类型,markdown - """ - pdf_mid_data = JsonCompressor.decompress_json(compressed_pdf_mid_data) - pdf_info_list = pdf_mid_data["pdf_info"] - md_content = union_make(pdf_info_list, md_make_mode, drop_mode, img_buket_path) - return md_content - - diff --git a/magic_pdf/pipe/OCRPipe.py b/magic_pdf/pipe/OCRPipe.py deleted file mode 100644 index 71002a936..000000000 --- a/magic_pdf/pipe/OCRPipe.py +++ /dev/null @@ -1,41 +0,0 @@ -from loguru import logger - -from magic_pdf.libs.MakeContentConfig import DropMode, MakeMode -from magic_pdf.model.doc_analyze_by_custom_model import doc_analyze -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.pipe.AbsPipe import AbsPipe -from magic_pdf.user_api import parse_ocr_pdf - - -class OCRPipe(AbsPipe): - - def __init__(self, pdf_bytes: bytes, model_list: list, image_writer: AbsReaderWriter, is_debug: bool = False, - start_page_id=0, end_page_id=None, lang=None, - layout_model=None, formula_enable=None, table_enable=None): - super().__init__(pdf_bytes, model_list, image_writer, is_debug, start_page_id, end_page_id, lang, - layout_model, formula_enable, table_enable) - - def pipe_classify(self): - pass - - def pipe_analyze(self): - self.model_list = doc_analyze(self.pdf_bytes, ocr=True, - start_page_id=self.start_page_id, end_page_id=self.end_page_id, - lang=self.lang, layout_model=self.layout_model, - formula_enable=self.formula_enable, table_enable=self.table_enable) - - def pipe_parse(self): - self.pdf_mid_data = parse_ocr_pdf(self.pdf_bytes, self.model_list, self.image_writer, is_debug=self.is_debug, - start_page_id=self.start_page_id, end_page_id=self.end_page_id, - lang=self.lang, layout_model=self.layout_model, - formula_enable=self.formula_enable, table_enable=self.table_enable) - - def pipe_mk_uni_format(self, img_parent_path: str, drop_mode=DropMode.WHOLE_PDF): - result = super().pipe_mk_uni_format(img_parent_path, drop_mode) - logger.info("ocr_pipe mk content list finished") - return result - - def pipe_mk_markdown(self, img_parent_path: str, drop_mode=DropMode.WHOLE_PDF, md_make_mode=MakeMode.MM_MD): - result = super().pipe_mk_markdown(img_parent_path, drop_mode, md_make_mode) - logger.info(f"ocr_pipe mk {md_make_mode} finished") - return result diff --git a/magic_pdf/pipe/TXTPipe.py b/magic_pdf/pipe/TXTPipe.py deleted file mode 100644 index f0bc9b7b3..000000000 --- a/magic_pdf/pipe/TXTPipe.py +++ /dev/null @@ -1,42 +0,0 @@ -from loguru import logger - -from magic_pdf.libs.MakeContentConfig import DropMode, MakeMode -from magic_pdf.model.doc_analyze_by_custom_model import doc_analyze -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.libs.json_compressor import JsonCompressor -from magic_pdf.pipe.AbsPipe import AbsPipe -from magic_pdf.user_api import parse_txt_pdf - - -class TXTPipe(AbsPipe): - - def __init__(self, pdf_bytes: bytes, model_list: list, image_writer: AbsReaderWriter, is_debug: bool = False, - start_page_id=0, end_page_id=None, lang=None, - layout_model=None, formula_enable=None, table_enable=None): - super().__init__(pdf_bytes, model_list, image_writer, is_debug, start_page_id, end_page_id, lang, - layout_model, formula_enable, table_enable) - - def pipe_classify(self): - pass - - def pipe_analyze(self): - self.model_list = doc_analyze(self.pdf_bytes, ocr=False, - start_page_id=self.start_page_id, end_page_id=self.end_page_id, - lang=self.lang, layout_model=self.layout_model, - formula_enable=self.formula_enable, table_enable=self.table_enable) - - def pipe_parse(self): - self.pdf_mid_data = parse_txt_pdf(self.pdf_bytes, self.model_list, self.image_writer, is_debug=self.is_debug, - start_page_id=self.start_page_id, end_page_id=self.end_page_id, - lang=self.lang, layout_model=self.layout_model, - formula_enable=self.formula_enable, table_enable=self.table_enable) - - def pipe_mk_uni_format(self, img_parent_path: str, drop_mode=DropMode.WHOLE_PDF): - result = super().pipe_mk_uni_format(img_parent_path, drop_mode) - logger.info("txt_pipe mk content list finished") - return result - - def pipe_mk_markdown(self, img_parent_path: str, drop_mode=DropMode.WHOLE_PDF, md_make_mode=MakeMode.MM_MD): - result = super().pipe_mk_markdown(img_parent_path, drop_mode, md_make_mode) - logger.info(f"txt_pipe mk {md_make_mode} finished") - return result diff --git a/magic_pdf/pipe/UNIPipe.py b/magic_pdf/pipe/UNIPipe.py deleted file mode 100644 index a1ae7f90c..000000000 --- a/magic_pdf/pipe/UNIPipe.py +++ /dev/null @@ -1,99 +0,0 @@ -import json - -from loguru import logger - -from magic_pdf.libs.MakeContentConfig import DropMode, MakeMode -from magic_pdf.model.doc_analyze_by_custom_model import doc_analyze -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter -from magic_pdf.libs.commons import join_path -from magic_pdf.pipe.AbsPipe import AbsPipe -from magic_pdf.user_api import parse_union_pdf, parse_ocr_pdf - - -class UNIPipe(AbsPipe): - - def __init__(self, pdf_bytes: bytes, jso_useful_key: dict, image_writer: AbsReaderWriter, is_debug: bool = False, - start_page_id=0, end_page_id=None, lang=None, - layout_model=None, formula_enable=None, table_enable=None): - self.pdf_type = jso_useful_key["_pdf_type"] - super().__init__(pdf_bytes, jso_useful_key["model_list"], image_writer, is_debug, start_page_id, end_page_id, - lang, layout_model, formula_enable, table_enable) - if len(self.model_list) == 0: - self.input_model_is_empty = True - else: - self.input_model_is_empty = False - - def pipe_classify(self): - self.pdf_type = AbsPipe.classify(self.pdf_bytes) - - def pipe_analyze(self): - if self.pdf_type == self.PIP_TXT: - self.model_list = doc_analyze(self.pdf_bytes, ocr=False, - start_page_id=self.start_page_id, end_page_id=self.end_page_id, - lang=self.lang, layout_model=self.layout_model, - formula_enable=self.formula_enable, table_enable=self.table_enable) - elif self.pdf_type == self.PIP_OCR: - self.model_list = doc_analyze(self.pdf_bytes, ocr=True, - start_page_id=self.start_page_id, end_page_id=self.end_page_id, - lang=self.lang, layout_model=self.layout_model, - formula_enable=self.formula_enable, table_enable=self.table_enable) - - def pipe_parse(self): - if self.pdf_type == self.PIP_TXT: - self.pdf_mid_data = parse_union_pdf(self.pdf_bytes, self.model_list, self.image_writer, - is_debug=self.is_debug, input_model_is_empty=self.input_model_is_empty, - start_page_id=self.start_page_id, end_page_id=self.end_page_id, - lang=self.lang, layout_model=self.layout_model, - formula_enable=self.formula_enable, table_enable=self.table_enable) - elif self.pdf_type == self.PIP_OCR: - self.pdf_mid_data = parse_ocr_pdf(self.pdf_bytes, self.model_list, self.image_writer, - is_debug=self.is_debug, - start_page_id=self.start_page_id, end_page_id=self.end_page_id, - lang=self.lang) - - def pipe_mk_uni_format(self, img_parent_path: str, drop_mode=DropMode.NONE_WITH_REASON): - result = super().pipe_mk_uni_format(img_parent_path, drop_mode) - logger.info("uni_pipe mk content list finished") - return result - - def pipe_mk_markdown(self, img_parent_path: str, drop_mode=DropMode.WHOLE_PDF, md_make_mode=MakeMode.MM_MD): - result = super().pipe_mk_markdown(img_parent_path, drop_mode, md_make_mode) - logger.info(f"uni_pipe mk {md_make_mode} finished") - return result - - -if __name__ == '__main__': - # 测试 - drw = DiskReaderWriter(r"D:/project/20231108code-clean") - - pdf_file_path = r"linshixuqiu\19983-00.pdf" - model_file_path = r"linshixuqiu\19983-00.json" - pdf_bytes = drw.read(pdf_file_path, AbsReaderWriter.MODE_BIN) - model_json_txt = drw.read(model_file_path, AbsReaderWriter.MODE_TXT) - model_list = json.loads(model_json_txt) - write_path = r"D:\project\20231108code-clean\linshixuqiu\19983-00" - img_bucket_path = "imgs" - img_writer = DiskReaderWriter(join_path(write_path, img_bucket_path)) - - # pdf_type = UNIPipe.classify(pdf_bytes) - # jso_useful_key = { - # "_pdf_type": pdf_type, - # "model_list": model_list - # } - - jso_useful_key = { - "_pdf_type": "", - "model_list": model_list - } - pipe = UNIPipe(pdf_bytes, jso_useful_key, img_writer) - pipe.pipe_classify() - pipe.pipe_parse() - md_content = pipe.pipe_mk_markdown(img_bucket_path) - content_list = pipe.pipe_mk_uni_format(img_bucket_path) - - md_writer = DiskReaderWriter(write_path) - md_writer.write(md_content, "19983-00.md", AbsReaderWriter.MODE_TXT) - md_writer.write(json.dumps(pipe.pdf_mid_data, ensure_ascii=False, indent=4), "19983-00.json", - AbsReaderWriter.MODE_TXT) - md_writer.write(str(content_list), "19983-00.txt", AbsReaderWriter.MODE_TXT) diff --git a/magic_pdf/pipe/__init__.py b/magic_pdf/pipe/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/post_proc/__init__.py b/magic_pdf/post_proc/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/post_proc/detect_para.py b/magic_pdf/post_proc/detect_para.py deleted file mode 100644 index 17b41d27c..000000000 --- a/magic_pdf/post_proc/detect_para.py +++ /dev/null @@ -1,3472 +0,0 @@ -import os -import sys -import json -import re -import math -import unicodedata -from collections import Counter - - -import numpy as np -from termcolor import cprint - - -from magic_pdf.libs.commons import fitz -from magic_pdf.libs.nlp_utils import NLPModels - - -if sys.version_info[0] >= 3: - sys.stdout.reconfigure(encoding="utf-8") # type: ignore - - -def open_pdf(pdf_path): - try: - pdf_document = fitz.open(pdf_path) # type: ignore - return pdf_document - except Exception as e: - print(f"无法打开PDF文件:{pdf_path}。原因是:{e}") - raise e - - -def print_green_on_red(text): - cprint(text, "green", "on_red", attrs=["bold"], end="\n\n") - - -def print_green(text): - print() - cprint(text, "green", attrs=["bold"], end="\n\n") - - -def print_red(text): - print() - cprint(text, "red", attrs=["bold"], end="\n\n") - - -def print_yellow(text): - print() - cprint(text, "yellow", attrs=["bold"], end="\n\n") - - -def safe_get(dict_obj, key, default): - val = dict_obj.get(key) - if val is None: - return default - else: - return val - - -def is_bbox_overlap(bbox1, bbox2): - """ - This function checks if bbox1 and bbox2 overlap or not - - Parameters - ---------- - bbox1 : list - bbox1 - bbox2 : list - bbox2 - - Returns - ------- - bool - True if bbox1 and bbox2 overlap, else False - """ - x0_1, y0_1, x1_1, y1_1 = bbox1 - x0_2, y0_2, x1_2, y1_2 = bbox2 - - if x0_1 > x1_2 or x0_2 > x1_1: - return False - if y0_1 > y1_2 or y0_2 > y1_1: - return False - - return True - - -def is_in_bbox(bbox1, bbox2): - """ - This function checks if bbox1 is in bbox2 - - Parameters - ---------- - bbox1 : list - bbox1 - bbox2 : list - bbox2 - - Returns - ------- - bool - True if bbox1 is in bbox2, else False - """ - x0_1, y0_1, x1_1, y1_1 = bbox1 - x0_2, y0_2, x1_2, y1_2 = bbox2 - - if x0_1 >= x0_2 and y0_1 >= y0_2 and x1_1 <= x1_2 and y1_1 <= y1_2: - return True - else: - return False - - -def calculate_para_bbox(lines): - """ - This function calculates the minimum bbox of the paragraph - - Parameters - ---------- - lines : list - lines - - Returns - ------- - para_bbox : list - bbox of the paragraph - """ - x0 = min(line["bbox"][0] for line in lines) - y0 = min(line["bbox"][1] for line in lines) - x1 = max(line["bbox"][2] for line in lines) - y1 = max(line["bbox"][3] for line in lines) - return [x0, y0, x1, y1] - - -def is_line_right_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction=2): - """ - This function checks if the line is right aligned from its neighbors - - Parameters - ---------- - curr_line_bbox : list - bbox of the current line - prev_line_bbox : list - bbox of the previous line - next_line_bbox : list - bbox of the next line - avg_char_width : float - average of char widths - direction : int - 0 for prev, 1 for next, 2 for both - - Returns - ------- - bool - True if the line is right aligned from its neighbors, False otherwise. - """ - horizontal_ratio = 0.5 - horizontal_thres = horizontal_ratio * avg_char_width - - _, _, x1, _ = curr_line_bbox - _, _, prev_x1, _ = prev_line_bbox if prev_line_bbox else (0, 0, 0, 0) - _, _, next_x1, _ = next_line_bbox if next_line_bbox else (0, 0, 0, 0) - - if direction == 0: - return abs(x1 - prev_x1) < horizontal_thres - elif direction == 1: - return abs(x1 - next_x1) < horizontal_thres - elif direction == 2: - return abs(x1 - prev_x1) < horizontal_thres and abs(x1 - next_x1) < horizontal_thres - else: - return False - - -def is_line_left_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction=2): - """ - This function checks if the line is left aligned from its neighbors - - Parameters - ---------- - curr_line_bbox : list - bbox of the current line - prev_line_bbox : list - bbox of the previous line - next_line_bbox : list - bbox of the next line - avg_char_width : float - average of char widths - direction : int - 0 for prev, 1 for next, 2 for both - - Returns - ------- - bool - True if the line is left aligned from its neighbors, False otherwise. - """ - horizontal_ratio = 0.5 - horizontal_thres = horizontal_ratio * avg_char_width - - x0, _, _, _ = curr_line_bbox - prev_x0, _, _, _ = prev_line_bbox if prev_line_bbox else (0, 0, 0, 0) - next_x0, _, _, _ = next_line_bbox if next_line_bbox else (0, 0, 0, 0) - - if direction == 0: - return abs(x0 - prev_x0) < horizontal_thres - elif direction == 1: - return abs(x0 - next_x0) < horizontal_thres - elif direction == 2: - return abs(x0 - prev_x0) < horizontal_thres and abs(x0 - next_x0) < horizontal_thres - else: - return False - - -def end_with_punctuation(line_text): - """ - This function checks if the line ends with punctuation marks - """ - - english_end_puncs = [".", "?", "!"] - chinese_end_puncs = ["。", "?", "!"] - end_puncs = english_end_puncs + chinese_end_puncs - - last_non_space_char = None - for ch in line_text[::-1]: - if not ch.isspace(): - last_non_space_char = ch - break - - if last_non_space_char is None: - return False - - return last_non_space_char in end_puncs - - -def is_nested_list(lst): - if isinstance(lst, list): - return any(isinstance(sub, list) for sub in lst) - return False - - -class DenseSingleLineBlockException(Exception): - """ - This class defines the exception type for dense single line-block. - """ - - def __init__(self, message="DenseSingleLineBlockException"): - self.message = message - super().__init__(self.message) - - def __str__(self): - return f"{self.message}" - - def __repr__(self): - return f"{self.message}" - - -class TitleDetectionException(Exception): - """ - This class defines the exception type for title detection. - """ - - def __init__(self, message="TitleDetectionException"): - self.message = message - super().__init__(self.message) - - def __str__(self): - return f"{self.message}" - - def __repr__(self): - return f"{self.message}" - - -class TitleLevelException(Exception): - """ - This class defines the exception type for title level. - """ - - def __init__(self, message="TitleLevelException"): - self.message = message - super().__init__(self.message) - - def __str__(self): - return f"{self.message}" - - def __repr__(self): - return f"{self.message}" - - -class ParaSplitException(Exception): - """ - This class defines the exception type for paragraph splitting. - """ - - def __init__(self, message="ParaSplitException"): - self.message = message - super().__init__(self.message) - - def __str__(self): - return f"{self.message}" - - def __repr__(self): - return f"{self.message}" - - -class ParaMergeException(Exception): - """ - This class defines the exception type for paragraph merging. - """ - - def __init__(self, message="ParaMergeException"): - self.message = message - super().__init__(self.message) - - def __str__(self): - return f"{self.message}" - - def __repr__(self): - return f"{self.message}" - - -class DiscardByException: - """ - This class discards pdf files by exception - """ - - def __init__(self) -> None: - pass - - def discard_by_single_line_block(self, pdf_dic, exception: DenseSingleLineBlockException): - """ - This function discards pdf files by single line block exception - - Parameters - ---------- - pdf_dic : dict - pdf dictionary - exception : str - exception message - - Returns - ------- - error_message : str - """ - exception_page_nums = 0 - page_num = 0 - for page_id, page in pdf_dic.items(): - if page_id.startswith("page_"): - page_num += 1 - if "preproc_blocks" in page.keys(): - preproc_blocks = page["preproc_blocks"] - - all_single_line_blocks = [] - for block in preproc_blocks: - if len(block["lines"]) == 1: - all_single_line_blocks.append(block) - - if len(preproc_blocks) > 0 and len(all_single_line_blocks) / len(preproc_blocks) > 0.9: - exception_page_nums += 1 - - if page_num == 0: - return None - - if exception_page_nums / page_num > 0.1: # Low ratio means basically, whenever this is the case, it is discarded - return exception.message - - return None - - def discard_by_title_detection(self, pdf_dic, exception: TitleDetectionException): - """ - This function discards pdf files by title detection exception - - Parameters - ---------- - pdf_dic : dict - pdf dictionary - exception : str - exception message - - Returns - ------- - error_message : str - """ - # return exception.message - return None - - def discard_by_title_level(self, pdf_dic, exception: TitleLevelException): - """ - This function discards pdf files by title level exception - - Parameters - ---------- - pdf_dic : dict - pdf dictionary - exception : str - exception message - - Returns - ------- - error_message : str - """ - # return exception.message - return None - - def discard_by_split_para(self, pdf_dic, exception: ParaSplitException): - """ - This function discards pdf files by split para exception - - Parameters - ---------- - pdf_dic : dict - pdf dictionary - exception : str - exception message - - Returns - ------- - error_message : str - """ - # return exception.message - return None - - def discard_by_merge_para(self, pdf_dic, exception: ParaMergeException): - """ - This function discards pdf files by merge para exception - - Parameters - ---------- - pdf_dic : dict - pdf dictionary - exception : str - exception message - - Returns - ------- - error_message : str - """ - # return exception.message - return None - - -class LayoutFilterProcessor: - def __init__(self) -> None: - pass - - def batch_process_blocks(self, pdf_dict): - """ - This function processes the blocks in batch. - - Parameters - ---------- - self : object - The instance of the class. - - pdf_dict : dict - pdf dictionary - - Returns - ------- - pdf_dict : dict - pdf dictionary - """ - for page_id, blocks in pdf_dict.items(): - if page_id.startswith("page_"): - if "layout_bboxes" in blocks.keys() and "para_blocks" in blocks.keys(): - layout_bbox_objs = blocks["layout_bboxes"] - if layout_bbox_objs is None: - continue - layout_bboxes = [bbox_obj["layout_bbox"] for bbox_obj in layout_bbox_objs] - - # Enlarge each value of x0, y0, x1, y1 for each layout_bbox to prevent loss of text. - layout_bboxes = [ - [math.ceil(x0), math.ceil(y0), math.ceil(x1), math.ceil(y1)] for x0, y0, x1, y1 in layout_bboxes - ] - - para_blocks = blocks["para_blocks"] - if para_blocks is None: - continue - - for lb_bbox in layout_bboxes: - for i, para_block in enumerate(para_blocks): - para_bbox = para_block["bbox"] - para_blocks[i]["in_layout"] = 0 - if is_in_bbox(para_bbox, lb_bbox): - para_blocks[i]["in_layout"] = 1 - - blocks["para_blocks"] = para_blocks - - return pdf_dict - - -class RawBlockProcessor: - def __init__(self) -> None: - self.y_tolerance = 2 - self.pdf_dic = {} - - def __span_flags_decomposer(self, span_flags): - """ - Make font flags human readable. - - Parameters - ---------- - self : object - The instance of the class. - - span_flags : int - span flags - - Returns - ------- - l : dict - decomposed flags - """ - - l = { - "is_superscript": False, - "is_italic": False, - "is_serifed": False, - "is_sans_serifed": False, - "is_monospaced": False, - "is_proportional": False, - "is_bold": False, - } - - if span_flags & 2**0: - l["is_superscript"] = True # 表示上标 - - if span_flags & 2**1: - l["is_italic"] = True # 表示斜体 - - if span_flags & 2**2: - l["is_serifed"] = True # 表示衬线字体 - else: - l["is_sans_serifed"] = True # 表示非衬线字体 - - if span_flags & 2**3: - l["is_monospaced"] = True # 表示等宽字体 - else: - l["is_proportional"] = True # 表示比例字体 - - if span_flags & 2**4: - l["is_bold"] = True # 表示粗体 - - return l - - def __make_new_lines(self, raw_lines): - """ - This function makes new lines. - - Parameters - ---------- - self : object - The instance of the class. - - raw_lines : list - raw lines - - Returns - ------- - new_lines : list - new lines - """ - new_lines = [] - new_line = None - - for raw_line in raw_lines: - raw_line_bbox = raw_line["bbox"] - raw_line_spans = raw_line["spans"] - raw_line_text = "".join([span["text"] for span in raw_line_spans]) - raw_line_dir = raw_line.get("dir", None) - - decomposed_line_spans = [] - for span in raw_line_spans: - raw_flags = span["flags"] - decomposed_flags = self.__span_flags_decomposer(raw_flags) - span["decomposed_flags"] = decomposed_flags - decomposed_line_spans.append(span) - - if new_line is None: # Handle the first line - new_line = { - "bbox": raw_line_bbox, - "text": raw_line_text, - "dir": raw_line_dir if raw_line_dir else (0, 0), - "spans": decomposed_line_spans, - } - else: # Handle the rest lines - if ( - abs(raw_line_bbox[1] - new_line["bbox"][1]) <= self.y_tolerance - and abs(raw_line_bbox[3] - new_line["bbox"][3]) <= self.y_tolerance - ): - new_line["bbox"] = ( - min(new_line["bbox"][0], raw_line_bbox[0]), # left - new_line["bbox"][1], # top - max(new_line["bbox"][2], raw_line_bbox[2]), # right - raw_line_bbox[3], # bottom - ) - new_line["text"] += raw_line_text - new_line["spans"].extend(raw_line_spans) - new_line["dir"] = ( - new_line["dir"][0] + raw_line_dir[0], - new_line["dir"][1] + raw_line_dir[1], - ) - else: - new_lines.append(new_line) - new_line = { - "bbox": raw_line_bbox, - "text": raw_line_text, - "dir": raw_line_dir if raw_line_dir else (0, 0), - "spans": raw_line_spans, - } - if new_line: - new_lines.append(new_line) - - return new_lines - - def __make_new_block(self, raw_block): - """ - This function makes a new block. - - Parameters - ---------- - self : object - The instance of the class. - ---------- - raw_block : dict - a raw block - - Returns - ------- - new_block : dict - """ - new_block = {} - - block_id = raw_block["number"] - block_bbox = raw_block["bbox"] - block_text = "".join(span["text"] for line in raw_block["lines"] for span in line["spans"]) - raw_lines = raw_block["lines"] - block_lines = self.__make_new_lines(raw_lines) - - new_block["block_id"] = block_id - new_block["bbox"] = block_bbox - new_block["text"] = block_text - new_block["lines"] = block_lines - - return new_block - - def batch_process_blocks(self, pdf_dic): - """ - This function processes the blocks in batch. - - Parameters - ---------- - self : object - The instance of the class. - ---------- - blocks : list - Input block is a list of raw blocks. - - Returns - ------- - result_dict : dict - result dictionary - """ - - for page_id, blocks in pdf_dic.items(): - if page_id.startswith("page_"): - para_blocks = [] - if "preproc_blocks" in blocks.keys(): - input_blocks = blocks["preproc_blocks"] - for raw_block in input_blocks: - new_block = self.__make_new_block(raw_block) - para_blocks.append(new_block) - - blocks["para_blocks"] = para_blocks - - return pdf_dic - - -class BlockStatisticsCalculator: - """ - This class calculates the statistics of the block. - """ - - def __init__(self) -> None: - pass - - def __calc_stats_of_new_lines(self, new_lines): - """ - This function calculates the paragraph metrics - - Parameters - ---------- - combined_lines : list - combined lines - - Returns - ------- - X0 : float - Median of x0 values, which represents the left average boundary of the block - X1 : float - Median of x1 values, which represents the right average boundary of the block - avg_char_width : float - Average of char widths, which represents the average char width of the block - avg_char_height : float - Average of line heights, which represents the average line height of the block - - """ - x0_values = [] - x1_values = [] - char_widths = [] - char_heights = [] - - block_font_types = [] - block_font_sizes = [] - block_directions = [] - - if len(new_lines) > 0: - for i, line in enumerate(new_lines): - line_bbox = line["bbox"] - line_text = line["text"] - line_spans = line["spans"] - - num_chars = len([ch for ch in line_text if not ch.isspace()]) - - x0_values.append(line_bbox[0]) - x1_values.append(line_bbox[2]) - - if num_chars > 0: - char_width = (line_bbox[2] - line_bbox[0]) / num_chars - char_widths.append(char_width) - - for span in line_spans: - block_font_types.append(span["font"]) - block_font_sizes.append(span["size"]) - - if "dir" in line: - block_directions.append(line["dir"]) - - # line_font_types = [span["font"] for span in line_spans] - char_heights = [span["size"] for span in line_spans] - - X0 = np.median(x0_values) if x0_values else 0 - X1 = np.median(x1_values) if x1_values else 0 - avg_char_width = sum(char_widths) / len(char_widths) if char_widths else 0 - avg_char_height = sum(char_heights) / len(char_heights) if char_heights else 0 - - # max_freq_font_type = max(set(block_font_types), key=block_font_types.count) if block_font_types else None - - max_span_length = 0 - max_span_font_type = None - for line in new_lines: - line_spans = line["spans"] - for span in line_spans: - span_length = span["bbox"][2] - span["bbox"][0] - if span_length > max_span_length: - max_span_length = span_length - max_span_font_type = span["font"] - - max_freq_font_type = max_span_font_type - - avg_font_size = sum(block_font_sizes) / len(block_font_sizes) if block_font_sizes else None - - avg_dir_horizontal = sum([dir[0] for dir in block_directions]) / len(block_directions) if block_directions else 0 - avg_dir_vertical = sum([dir[1] for dir in block_directions]) / len(block_directions) if block_directions else 0 - - median_font_size = float(np.median(block_font_sizes)) if block_font_sizes else None - - return ( - X0, - X1, - avg_char_width, - avg_char_height, - max_freq_font_type, - avg_font_size, - (avg_dir_horizontal, avg_dir_vertical), - median_font_size, - ) - - def __make_new_block(self, input_block): - new_block = {} - - raw_lines = input_block["lines"] - stats = self.__calc_stats_of_new_lines(raw_lines) - - block_id = input_block["block_id"] - block_bbox = input_block["bbox"] - block_text = input_block["text"] - block_lines = raw_lines - block_avg_left_boundary = stats[0] - block_avg_right_boundary = stats[1] - block_avg_char_width = stats[2] - block_avg_char_height = stats[3] - block_font_type = stats[4] - block_font_size = stats[5] - block_direction = stats[6] - block_median_font_size = stats[7] - - new_block["block_id"] = block_id - new_block["bbox"] = block_bbox - new_block["text"] = block_text - new_block["dir"] = block_direction - new_block["X0"] = block_avg_left_boundary - new_block["X1"] = block_avg_right_boundary - new_block["avg_char_width"] = block_avg_char_width - new_block["avg_char_height"] = block_avg_char_height - new_block["block_font_type"] = block_font_type - new_block["block_font_size"] = block_font_size - new_block["lines"] = block_lines - new_block["median_font_size"] = block_median_font_size - - return new_block - - def batch_process_blocks(self, pdf_dic): - """ - This function processes the blocks in batch. - - Parameters - ---------- - self : object - The instance of the class. - ---------- - blocks : list - Input block is a list of raw blocks. - Schema can refer to the value of key ""preproc_blocks". - - Returns - ------- - result_dict : dict - result dictionary - """ - - for page_id, blocks in pdf_dic.items(): - if page_id.startswith("page_"): - para_blocks = [] - if "para_blocks" in blocks.keys(): - input_blocks = blocks["para_blocks"] - for input_block in input_blocks: - new_block = self.__make_new_block(input_block) - para_blocks.append(new_block) - - blocks["para_blocks"] = para_blocks - - return pdf_dic - - -class DocStatisticsCalculator: - """ - This class calculates the statistics of the document. - """ - - def __init__(self) -> None: - pass - - def calc_stats_of_doc(self, pdf_dict): - """ - This function computes the statistics of the document - - Parameters - ---------- - result_dict : dict - result dictionary - - Returns - ------- - statistics : dict - statistics of the document - """ - - total_text_length = 0 - total_num_blocks = 0 - - for page_id, blocks in pdf_dict.items(): - if page_id.startswith("page_"): - if "para_blocks" in blocks.keys(): - para_blocks = blocks["para_blocks"] - for para_block in para_blocks: - total_text_length += len(para_block["text"]) - total_num_blocks += 1 - - avg_text_length = total_text_length / total_num_blocks if total_num_blocks else 0 - - font_list = [] - - for page_id, blocks in pdf_dict.items(): - if page_id.startswith("page_"): - if "para_blocks" in blocks.keys(): - input_blocks = blocks["para_blocks"] - for input_block in input_blocks: - block_text_length = len(input_block.get("text", "")) - if block_text_length < avg_text_length * 0.5: - continue - block_font_type = safe_get(input_block, "block_font_type", "") - block_font_size = safe_get(input_block, "block_font_size", 0) - font_list.append((block_font_type, block_font_size)) - - font_counter = Counter(font_list) - most_common_font = font_counter.most_common(1)[0] if font_list else (("", 0), 0) - second_most_common_font = font_counter.most_common(2)[1] if len(font_counter) > 1 else (("", 0), 0) - - statistics = { - "num_pages": 0, - "num_blocks": 0, - "num_paras": 0, - "num_titles": 0, - "num_header_blocks": 0, - "num_footer_blocks": 0, - "num_watermark_blocks": 0, - "num_vertical_margin_note_blocks": 0, - "most_common_font_type": most_common_font[0][0], - "most_common_font_size": most_common_font[0][1], - "number_of_most_common_font": most_common_font[1], - "second_most_common_font_type": second_most_common_font[0][0], - "second_most_common_font_size": second_most_common_font[0][1], - "number_of_second_most_common_font": second_most_common_font[1], - "avg_text_length": avg_text_length, - } - - for page_id, blocks in pdf_dict.items(): - if page_id.startswith("page_"): - blocks = pdf_dict[page_id]["para_blocks"] - statistics["num_pages"] += 1 - for block_id, block_data in enumerate(blocks): - statistics["num_blocks"] += 1 - - if "paras" in block_data.keys(): - statistics["num_paras"] += len(block_data["paras"]) - - for line in block_data["lines"]: - if line.get("is_title", 0): - statistics["num_titles"] += 1 - - if block_data.get("is_header", 0): - statistics["num_header_blocks"] += 1 - if block_data.get("is_footer", 0): - statistics["num_footer_blocks"] += 1 - if block_data.get("is_watermark", 0): - statistics["num_watermark_blocks"] += 1 - if block_data.get("is_vertical_margin_note", 0): - statistics["num_vertical_margin_note_blocks"] += 1 - - pdf_dict["statistics"] = statistics - - return pdf_dict - - -class TitleProcessor: - """ - This class processes the title. - """ - - def __init__(self, *doc_statistics) -> None: - if len(doc_statistics) > 0: - self.doc_statistics = doc_statistics[0] - - self.nlp_model = NLPModels() - self.MAX_TITLE_LEVEL = 3 - self.numbered_title_pattern = r""" - ^ # 行首 - ( # 开始捕获组 - [\(\(]\d+[\)\)] # 括号内数字,支持中文和英文括号,例如:(1) 或 (1) - |\d+[\)\)]\s # 数字后跟右括号和空格,支持中文和英文括号,例如:2) 或 2) - |[\(\(][A-Z][\)\)] # 括号内大写字母,支持中文和英文括号,例如:(A) 或 (A) - |[A-Z][\)\)]\s # 大写字母后跟右括号和空格,例如:A) 或 A) - |[\(\(][IVXLCDM]+[\)\)] # 括号内罗马数字,支持中文和英文括号,例如:(I) 或 (I) - |[IVXLCDM]+[\)\)]\s # 罗马数字后跟右括号和空格,例如:I) 或 I) - |\d+(\.\d+)*\s # 数字或复合数字编号后跟空格,例如:1. 或 3.2.1 - |[一二三四五六七八九十百千]+[、\s] # 中文序号后跟顿号和空格,例如:一、 - |[\(|\(][一二三四五六七八九十百千]+[\)|\)]\s* # 中文括号内中文序号后跟空格,例如:(一) - |[A-Z]\.\d+(\.\d+)?\s # 大写字母后跟点和数字,例如:A.1 或 A.1.1 - |[\(\(][a-z][\)\)] # 括号内小写字母,支持中文和英文括号,例如:(a) 或 (a) - |[a-z]\)\s # 小写字母后跟右括号和空格,例如:a) - |[A-Z]-\s # 大写字母后跟短横线和空格,例如:A- - |\w+:\s # 英文序号词后跟冒号和空格,例如:First: - |第[一二三四五六七八九十百千]+[章节部分条款]\s # 以“第”开头的中文标题后跟空格 - |[IVXLCDM]+\. # 罗马数字后跟点,例如:I. - |\d+\.\s # 单个数字后跟点和空格,例如:1. - ) # 结束捕获组 - .+ # 标题的其余部分 - """ - - def _is_potential_title( - self, - curr_line, - prev_line, - prev_line_is_title, - next_line, - avg_char_width, - avg_char_height, - median_font_size, - ): - """ - This function checks if the line is a potential title. - - Parameters - ---------- - curr_line : dict - current line - prev_line : dict - previous line - next_line : dict - next line - avg_char_width : float - average of char widths - avg_char_height : float - average of line heights - - Returns - ------- - bool - True if the line is a potential title, False otherwise. - """ - - def __is_line_centered(line_bbox, page_bbox, avg_char_width): - """ - This function checks if the line is centered on the page - - Parameters - ---------- - line_bbox : list - bbox of the line - page_bbox : list - bbox of the page - avg_char_width : float - average of char widths - - Returns - ------- - bool - True if the line is centered on the page, False otherwise. - """ - horizontal_ratio = 0.5 - horizontal_thres = horizontal_ratio * avg_char_width - - x0, _, x1, _ = line_bbox - _, _, page_x1, _ = page_bbox - - return abs((x0 + x1) / 2 - page_x1 / 2) < horizontal_thres - - def __is_bold_font_line(line): - """ - Check if a line contains any bold font style. - """ - - def _is_bold_span(span): - # if span text is empty or only contains space, return False - if not span["text"].strip(): - return False - - return bool(span["flags"] & 2**4) # Check if the font is bold - - for span in line["spans"]: - if not _is_bold_span(span): - return False - - return True - - def __is_italic_font_line(line): - """ - Check if a line contains any italic font style. - """ - - def __is_italic_span(span): - return bool(span["flags"] & 2**1) # Check if the font is italic - - for span in line["spans"]: - if not __is_italic_span(span): - return False - - return True - - def __is_punctuation_heavy(line_text): - """ - Check if the line contains a high ratio of punctuation marks, which may indicate - that the line is not a title. - - Parameters: - line_text (str): Text of the line. - - Returns: - bool: True if the line is heavy with punctuation, False otherwise. - """ - # Pattern for common title format like "X.Y. Title" - pattern = r"\b\d+\.\d+\..*\b" - - # If the line matches the title format, return False - if re.match(pattern, line_text.strip()): - return False - - # Find all punctuation marks in the line - punctuation_marks = re.findall(r"[^\w\s]", line_text) - number_of_punctuation_marks = len(punctuation_marks) - - text_length = len(line_text) - - if text_length == 0: - return False - - punctuation_ratio = number_of_punctuation_marks / text_length - if punctuation_ratio >= 0.1: - return True - - return False - - def __has_mixed_font_styles(spans, strict_mode=False): - """ - This function checks if the line has mixed font styles, the strict mode will compare the font types - - Parameters - ---------- - spans : list - spans of the line - strict_mode : bool - True for strict mode, the font types will be fully compared - False for non-strict mode, the font types will be compared by the most longest common prefix - - Returns - ------- - bool - True if the line has mixed font styles, False otherwise. - """ - if strict_mode: - font_styles = set() - for span in spans: - font_style = span["font"].lower() - font_styles.add(font_style) - - return len(font_styles) > 1 - - else: # non-strict mode - font_styles = [] - for span in spans: - font_style = span["font"].lower() - font_styles.append(font_style) - - if len(font_styles) > 1: - longest_common_prefix = os.path.commonprefix(font_styles) - if len(longest_common_prefix) > 0: - return False - else: - return True - else: - return False - - def __is_different_font_type_from_neighbors(curr_line_font_type, prev_line_font_type, next_line_font_type): - """ - This function checks if the current line has a different font type from the previous and next lines - - Parameters - ---------- - curr_line_font_type : str - font type of the current line - prev_line_font_type : str - font type of the previous line - next_line_font_type : str - font type of the next line - - Returns - ------- - bool - True if the current line has a different font type from the previous and next lines, False otherwise. - """ - return all( - curr_line_font_type != other_font_type.lower() - for other_font_type in [prev_line_font_type, next_line_font_type] - if other_font_type is not None - ) - - def __is_larger_font_size_from_neighbors(curr_line_font_size, prev_line_font_size, next_line_font_size): - """ - This function checks if the current line has a larger font size than the previous and next lines - - Parameters - ---------- - curr_line_font_size : float - font size of the current line - prev_line_font_size : float - font size of the previous line - next_line_font_size : float - font size of the next line - - Returns - ------- - bool - True if the current line has a larger font size than the previous and next lines, False otherwise. - """ - return all( - curr_line_font_size > other_font_size * 1.2 - for other_font_size in [prev_line_font_size, next_line_font_size] - if other_font_size is not None - ) - - def __is_similar_to_pre_line(curr_line_font_type, prev_line_font_type, curr_line_font_size, prev_line_font_size): - """ - This function checks if the current line is similar to the previous line - - Parameters - ---------- - curr_line : dict - current line - prev_line : dict - previous line - - Returns - ------- - bool - True if the current line is similar to the previous line, False otherwise. - """ - - if curr_line_font_type == prev_line_font_type and curr_line_font_size == prev_line_font_size: - return True - else: - return False - - def __is_same_font_type_of_docAvg(curr_line_font_type): - """ - This function checks if the current line has the same font type as the document average font type - - Parameters - ---------- - curr_line_font_type : str - font type of the current line - - Returns - ------- - bool - True if the current line has the same font type as the document average font type, False otherwise. - """ - doc_most_common_font_type = safe_get(self.doc_statistics, "most_common_font_type", "").lower() - doc_second_most_common_font_type = safe_get(self.doc_statistics, "second_most_common_font_type", "").lower() - - return curr_line_font_type.lower() in [doc_most_common_font_type, doc_second_most_common_font_type] - - def __is_font_size_not_less_than_docAvg(curr_line_font_size, ratio: float = 1): - """ - This function checks if the current line has a large enough font size - - Parameters - ---------- - curr_line_font_size : float - font size of the current line - ratio : float - ratio of the current line font size to the document average font size - - Returns - ------- - bool - True if the current line has a large enough font size, False otherwise. - """ - doc_most_common_font_size = safe_get(self.doc_statistics, "most_common_font_size", 0) - doc_second_most_common_font_size = safe_get(self.doc_statistics, "second_most_common_font_size", 0) - doc_avg_font_size = min(doc_most_common_font_size, doc_second_most_common_font_size) - - return curr_line_font_size >= doc_avg_font_size * ratio - - def __is_sufficient_spacing_above_and_below( - curr_line_bbox, - prev_line_bbox, - next_line_bbox, - avg_char_height, - median_font_size, - ): - """ - This function checks if the current line has sufficient spacing above and below - - Parameters - ---------- - curr_line_bbox : list - bbox of the current line - prev_line_bbox : list - bbox of the previous line - next_line_bbox : list - bbox of the next line - avg_char_width : float - average of char widths - avg_char_height : float - average of line heights - - Returns - ------- - bool - True if the current line has sufficient spacing above and below, False otherwise. - """ - vertical_ratio = 1.25 - vertical_thres = vertical_ratio * median_font_size - - _, y0, _, y1 = curr_line_bbox - - sufficient_spacing_above = False - if prev_line_bbox: - vertical_spacing_above = min(y0 - prev_line_bbox[1], y1 - prev_line_bbox[3]) - sufficient_spacing_above = vertical_spacing_above > vertical_thres - else: - sufficient_spacing_above = True - - sufficient_spacing_below = False - if next_line_bbox: - vertical_spacing_below = min(next_line_bbox[1] - y0, next_line_bbox[3] - y1) - sufficient_spacing_below = vertical_spacing_below > vertical_thres - else: - sufficient_spacing_below = True - - return (sufficient_spacing_above, sufficient_spacing_below) - - def __is_word_list_line_by_rules(curr_line_text): - """ - This function checks if the current line is a word list - - Parameters - ---------- - curr_line_text : str - text of the current line - - Returns - ------- - bool - True if the current line is a name list, False otherwise. - """ - # name_list_pattern = r"([a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]|[\u4e00-\u9fa5·]{2,16})(?=[,,;;\s]|$)" - name_list_pattern = r"(?= 0.9: - return True - - return False - - def __is_equation(line_text): - """ - This function checks if the current line is an equation. - - Parameters - ---------- - line_text : str - - Returns - ------- - bool - True if the current line is an equation, False otherwise. - """ - equation_reg = r"\$.*?\\overline.*?\$" # to match interline equations - - if re.search(equation_reg, line_text): - return True - else: - return False - - def __is_title_by_len(text, max_length=200): - """ - This function checks if the current line is a title by length. - - Parameters - ---------- - text : str - text of the current line - - max_length : int - max length of the title - - Returns - ------- - bool - True if the current line is a title, False otherwise. - - """ - text = text.strip() - return len(text) <= max_length - - def __compute_line_font_type_and_size(curr_line): - """ - This function computes the font type and font size of the line. - - Parameters - ---------- - line : dict - line - - Returns - ------- - font_type : str - font type of the line - font_size : float - font size of the line - """ - spans = curr_line["spans"] - max_accumulated_length = 0 - max_span_font_size = curr_line["spans"][0]["size"] # default value, float type - max_span_font_type = curr_line["spans"][0]["font"].lower() # default value, string type - for span in spans: - if span["text"].isspace(): - continue - span_length = span["bbox"][2] - span["bbox"][0] - if span_length > max_accumulated_length: - max_accumulated_length = span_length - max_span_font_size = span["size"] - max_span_font_type = span["font"].lower() - - return max_span_font_type, max_span_font_size - - def __is_a_consistent_sub_title(pre_line, curr_line): - """ - This function checks if the current line is a consistent sub title. - - Parameters - ---------- - pre_line : dict - previous line - curr_line : dict - current line - - Returns - ------- - bool - True if the current line is a consistent sub title, False otherwise. - """ - if pre_line is None: - return False - - start_letter_of_pre_line = pre_line["text"][0] - start_letter_of_curr_line = curr_line["text"][0] - - has_same_prefix_digit = ( - start_letter_of_pre_line.isdigit() - and start_letter_of_curr_line.isdigit() - and start_letter_of_pre_line == start_letter_of_curr_line - ) - - # prefix text of curr_line satisfies the following title format: x.x - prefix_text_pattern = r"^\d+\.\d+" - has_subtitle_format = re.match(prefix_text_pattern, curr_line["text"]) - - if has_same_prefix_digit or has_subtitle_format: - return True - - """ - Title detecting main Process. - """ - - """ - Basic features about the current line. - """ - curr_line_bbox = curr_line["bbox"] - curr_line_text = curr_line["text"] - curr_line_font_type, curr_line_font_size = __compute_line_font_type_and_size(curr_line) - - if len(curr_line_text.strip()) == 0: # skip empty lines - return False, False - - prev_line_bbox = prev_line["bbox"] if prev_line else None - if prev_line: - prev_line_font_type, prev_line_font_size = __compute_line_font_type_and_size(prev_line) - else: - prev_line_font_type, prev_line_font_size = None, None - - next_line_bbox = next_line["bbox"] if next_line else None - if next_line: - next_line_font_type, next_line_font_size = __compute_line_font_type_and_size(next_line) - else: - next_line_font_type, next_line_font_size = None, None - - """ - Aggregated features about the current line. - """ - is_italc_font = __is_italic_font_line(curr_line) - is_bold_font = __is_bold_font_line(curr_line) - - is_font_size_little_less_than_doc_avg = __is_font_size_not_less_than_docAvg(curr_line_font_size, ratio=0.8) - is_font_size_not_less_than_doc_avg = __is_font_size_not_less_than_docAvg(curr_line_font_size, ratio=1) - is_much_larger_font_than_doc_avg = __is_font_size_not_less_than_docAvg(curr_line_font_size, ratio=1.6) - - is_not_same_font_type_of_docAvg = not __is_same_font_type_of_docAvg(curr_line_font_type) - - is_potential_title_font = is_bold_font or is_font_size_not_less_than_doc_avg or is_not_same_font_type_of_docAvg - - is_mix_font_styles_strict = __has_mixed_font_styles(curr_line["spans"], strict_mode=True) - is_mix_font_styles_loose = __has_mixed_font_styles(curr_line["spans"], strict_mode=False) - - is_punctuation_heavy = __is_punctuation_heavy(curr_line_text) - - is_word_list_line_by_rules = __is_word_list_line_by_rules(curr_line_text) - is_person_or_org_list_line_by_nlp = __get_text_catgr_by_nlp(curr_line_text) in ["PERSON", "GPE", "ORG"] - - is_font_size_larger_than_neighbors = __is_larger_font_size_from_neighbors( - curr_line_font_size, prev_line_font_size, next_line_font_size - ) - - is_font_type_diff_from_neighbors = __is_different_font_type_from_neighbors( - curr_line_font_type, prev_line_font_type, next_line_font_type - ) - - has_sufficient_spaces_above, has_sufficient_spaces_below = __is_sufficient_spacing_above_and_below( - curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_height, median_font_size - ) - - is_similar_to_pre_line = __is_similar_to_pre_line( - curr_line_font_type, prev_line_font_type, curr_line_font_size, prev_line_font_size - ) - - is_consis_sub_title = __is_a_consistent_sub_title(prev_line, curr_line) - - """ - Further aggregated features about the current line. - - Attention: - Features that start with __ are for internal use. - """ - - __is_line_left_aligned_from_neighbors = is_line_left_aligned_from_neighbors( - curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width - ) - __is_font_diff_from_neighbors = is_font_size_larger_than_neighbors or is_font_type_diff_from_neighbors - is_a_left_inline_title = ( - is_mix_font_styles_strict and __is_line_left_aligned_from_neighbors and __is_font_diff_from_neighbors - ) - - is_title_by_check_prev_line = prev_line is None and has_sufficient_spaces_above and is_potential_title_font - is_title_by_check_next_line = next_line is None and has_sufficient_spaces_below and is_potential_title_font - - is_title_by_check_pre_and_next_line = ( - (prev_line is not None or next_line is not None) - and has_sufficient_spaces_above - and has_sufficient_spaces_below - and is_potential_title_font - ) - - is_numbered_title = __is_numbered_title(curr_line_text) and ( - (has_sufficient_spaces_above or prev_line is None) and (has_sufficient_spaces_below or next_line is None) - ) - - is_not_end_with_ending_puncs = not __is_end_with_ending_puncs(curr_line_text) - - is_not_only_no_meaning_symbols = not __contains_only_no_meaning_symbols(curr_line_text) - - is_equation = __is_equation(curr_line_text) - - is_title_by_len = __is_title_by_len(curr_line_text) - - """ - Decide if the line is a title. - """ - - is_title = ( - is_not_end_with_ending_puncs # not end with ending punctuation marks - and is_not_only_no_meaning_symbols # not only have no meaning symbols - and is_title_by_len # is a title by length, default max length is 200 - and not is_equation # an interline equation should never be a title - and is_potential_title_font # is a potential title font, which is bold or larger than the document average font size or not the same font type as the document average font type - and ( - (is_not_same_font_type_of_docAvg and is_font_size_not_less_than_doc_avg) - or (is_bold_font and is_much_larger_font_than_doc_avg and is_not_same_font_type_of_docAvg) - or ( - is_much_larger_font_than_doc_avg - and (is_title_by_check_prev_line or is_title_by_check_next_line or is_title_by_check_pre_and_next_line) - ) - or ( - is_font_size_little_less_than_doc_avg - and is_bold_font - and (is_title_by_check_prev_line or is_title_by_check_next_line or is_title_by_check_pre_and_next_line) - ) - ) # Consider the following situations: bold font, much larger font than doc avg, not same font type as doc avg, sufficient spacing above and below - and ( - ( - not is_person_or_org_list_line_by_nlp - and ( - is_much_larger_font_than_doc_avg - or (is_not_same_font_type_of_docAvg and is_font_size_not_less_than_doc_avg) - ) - ) - or ( - not (is_word_list_line_by_rules and is_person_or_org_list_line_by_nlp) - and not is_a_left_inline_title - and not is_punctuation_heavy - and (is_title_by_check_prev_line or is_title_by_check_next_line or is_title_by_check_pre_and_next_line) - ) - or ( - is_person_or_org_list_line_by_nlp - and (is_bold_font and is_much_larger_font_than_doc_avg and is_not_same_font_type_of_docAvg) - and (is_bold_font and is_much_larger_font_than_doc_avg and is_not_same_font_type_of_docAvg) - ) - or (is_numbered_title and not is_a_left_inline_title) - ) # Exclude the following situations: person/org list - ) - # ) or (prev_line_is_title and is_consis_sub_title) - - is_name_or_org_list_to_be_removed = ( - (is_person_or_org_list_line_by_nlp) - and is_punctuation_heavy - and (is_title_by_check_prev_line or is_title_by_check_next_line or is_title_by_check_pre_and_next_line) - ) and not is_title - - if is_name_or_org_list_to_be_removed: - is_author_or_org_list = True - else: - is_author_or_org_list = False - - # return is_title, is_author_or_org_list - - """ - # print reason why the line is a title - if is_title: - print_green("This line is a title.") - print_green("↓" * 10) - print() - print("curr_line_text: ", curr_line_text) - print() - - # print reason why the line is not a title - line_text = curr_line_text.strip() - test_text = "Career/Personal Life" - text_content_condition = line_text == test_text - - if not is_title and text_content_condition: # Print specific line - # if not is_title: # Print each line - print_red("This line is not a title.") - print_red("↓" * 10) - - print() - print("curr_line_text: ", curr_line_text) - print() - - if is_not_end_with_ending_puncs: - print_green(f"is_not_end_with_ending_puncs") - else: - print_red(f"is_end_with_ending_puncs") - - if is_not_only_no_meaning_symbols: - print_green(f"is_not_only_no_meaning_symbols") - else: - print_red(f"is_only_no_meaning_symbols") - - if is_title_by_len: - print_green(f"is_title_by_len: {is_title_by_len}") - else: - print_red(f"is_not_title_by_len: {is_title_by_len}") - - if is_equation: - print_red(f"is_equation") - else: - print_green(f"is_not_equation") - - if is_potential_title_font: - print_green(f"is_potential_title_font") - else: - print_red(f"is_not_potential_title_font") - - if is_punctuation_heavy: - print_red("is_punctuation_heavy") - else: - print_green("is_not_punctuation_heavy") - - if is_bold_font: - print_green(f"is_bold_font") - else: - print_red(f"is_not_bold_font") - - if is_font_size_not_less_than_doc_avg: - print_green(f"is_larger_font_than_doc_avg") - else: - print_red(f"is_not_larger_font_than_doc_avg") - - if is_much_larger_font_than_doc_avg: - print_green(f"is_much_larger_font_than_doc_avg") - else: - print_red(f"is_not_much_larger_font_than_doc_avg") - - if is_not_same_font_type_of_docAvg: - print_green(f"is_not_same_font_type_of_docAvg") - else: - print_red(f"is_same_font_type_of_docAvg") - - if is_word_list_line_by_rules: - print_red("is_word_list_line_by_rules") - else: - print_green("is_not_name_list_by_rules") - - if is_person_or_org_list_line_by_nlp: - print_red("is_person_or_org_list_line_by_nlp") - else: - print_green("is_not_person_or_org_list_line_by_nlp") - - if not is_numbered_title: - print_red("is_not_numbered_title") - else: - print_green("is_numbered_title") - - if is_a_left_inline_title: - print_red("is_a_left_inline_title") - else: - print_green("is_not_a_left_inline_title") - - if not is_title_by_check_prev_line: - print_red("is_not_title_by_check_prev_line") - else: - print_green("is_title_by_check_prev_line") - - if not is_title_by_check_next_line: - print_red("is_not_title_by_check_next_line") - else: - print_green("is_title_by_check_next_line") - - if not is_title_by_check_pre_and_next_line: - print_red("is_not_title_by_check_pre_and_next_line") - else: - print_green("is_title_by_check_pre_and_next_line") - - # print_green("Common features:") - # print_green("↓" * 10) - - # print(f" curr_line_font_type: {curr_line_font_type}") - # print(f" curr_line_font_size: {curr_line_font_size}") - # print() - - """ - - return is_title, is_author_or_org_list - - def _detect_title(self, input_block): - """ - Use the functions 'is_potential_title' to detect titles of each paragraph block. - If a line is a title, then the value of key 'is_title' of the line will be set to True. - """ - - raw_lines = input_block["lines"] - - prev_line_is_title_flag = False - - for i, curr_line in enumerate(raw_lines): - prev_line = raw_lines[i - 1] if i > 0 else None - next_line = raw_lines[i + 1] if i < len(raw_lines) - 1 else None - - blk_avg_char_width = input_block["avg_char_width"] - blk_avg_char_height = input_block["avg_char_height"] - blk_media_font_size = input_block["median_font_size"] - - is_title, is_author_or_org_list = self._is_potential_title( - curr_line, - prev_line, - prev_line_is_title_flag, - next_line, - blk_avg_char_width, - blk_avg_char_height, - blk_media_font_size, - ) - - if is_title: - curr_line["is_title"] = is_title - prev_line_is_title_flag = True - else: - curr_line["is_title"] = False - prev_line_is_title_flag = False - - # print(f"curr_line['text']: {curr_line['text']}") - # print(f"curr_line['is_title']: {curr_line['is_title']}") - # print(f"prev_line['text']: {prev_line['text'] if prev_line else None}") - # print(f"prev_line_is_title_flag: {prev_line_is_title_flag}") - # print() - - if is_author_or_org_list: - curr_line["is_author_or_org_list"] = is_author_or_org_list - else: - curr_line["is_author_or_org_list"] = False - - return input_block - - def batch_detect_titles(self, pdf_dic): - """ - This function batch process the blocks to detect titles. - - Parameters - ---------- - pdf_dict : dict - result dictionary - - Returns - ------- - pdf_dict : dict - result dictionary - """ - num_titles = 0 - - for page_id, blocks in pdf_dic.items(): - if page_id.startswith("page_"): - para_blocks = [] - if "para_blocks" in blocks.keys(): - para_blocks = blocks["para_blocks"] - - all_single_line_blocks = [] - for block in para_blocks: - if len(block["lines"]) == 1: - all_single_line_blocks.append(block) - - new_para_blocks = [] - if not len(all_single_line_blocks) == len(para_blocks): # Not all blocks are single line blocks. - for para_block in para_blocks: - new_block = self._detect_title(para_block) - new_para_blocks.append(new_block) - num_titles += sum([line.get("is_title", 0) for line in new_block["lines"]]) - else: # All blocks are single line blocks. - for para_block in para_blocks: - new_para_blocks.append(para_block) - num_titles += sum([line.get("is_title", 0) for line in para_block["lines"]]) - para_blocks = new_para_blocks - - blocks["para_blocks"] = para_blocks - - for para_block in para_blocks: - all_titles = all(safe_get(line, "is_title", False) for line in para_block["lines"]) - para_text_len = sum([len(line["text"]) for line in para_block["lines"]]) - if ( - all_titles and para_text_len < 200 - ): # total length of the paragraph is less than 200, more than this should not be a title - para_block["is_block_title"] = 1 - else: - para_block["is_block_title"] = 0 - - all_name_or_org_list_to_be_removed = all( - safe_get(line, "is_author_or_org_list", False) for line in para_block["lines"] - ) - if all_name_or_org_list_to_be_removed and page_id == "page_0": - para_block["is_block_an_author_or_org_list"] = 1 - else: - para_block["is_block_an_author_or_org_list"] = 0 - - pdf_dic["statistics"]["num_titles"] = num_titles - - return pdf_dic - - def _recog_title_level(self, title_blocks): - """ - This function determines the title level based on the font size of the title. - - Parameters - ---------- - title_blocks : list - - Returns - ------- - title_blocks : list - """ - - font_sizes = np.array([safe_get(tb["block"], "block_font_size", 0) for tb in title_blocks]) - - # Use the mean and std of font sizes to remove extreme values - mean_font_size = np.mean(font_sizes) - std_font_size = np.std(font_sizes) - min_extreme_font_size = mean_font_size - std_font_size # type: ignore - max_extreme_font_size = mean_font_size + std_font_size # type: ignore - - # Compute the threshold for title level - middle_font_sizes = font_sizes[(font_sizes > min_extreme_font_size) & (font_sizes < max_extreme_font_size)] - if middle_font_sizes.size > 0: - middle_mean_font_size = np.mean(middle_font_sizes) - level_threshold = middle_mean_font_size - else: - level_threshold = mean_font_size - - for tb in title_blocks: - title_block = tb["block"] - title_font_size = safe_get(title_block, "block_font_size", 0) - - current_level = 1 # Initialize title level, the biggest level is 1 - - # print(f"Before adjustment by font size, {current_level}") - if title_font_size >= max_extreme_font_size: - current_level = 1 - elif title_font_size <= min_extreme_font_size: - current_level = 3 - elif float(title_font_size) >= float(level_threshold): - current_level = 2 - else: - current_level = 3 - # print(f"After adjustment by font size, {current_level}") - - title_block["block_title_level"] = current_level - - return title_blocks - - def batch_recog_title_level(self, pdf_dic): - """ - This function batch process the blocks to recognize title level. - - Parameters - ---------- - pdf_dict : dict - result dictionary - - Returns - ------- - pdf_dict : dict - result dictionary - """ - title_blocks = [] - - # Collect all titles - for page_id, blocks in pdf_dic.items(): - if page_id.startswith("page_"): - para_blocks = blocks.get("para_blocks", []) - for block in para_blocks: - if block.get("is_block_title"): - title_obj = {"page_id": page_id, "block": block} - title_blocks.append(title_obj) - - # Determine title level - if title_blocks: - # Determine title level based on font size - title_blocks = self._recog_title_level(title_blocks) - - return pdf_dic - - -class BlockTerminationProcessor: - """ - This class is used to process the block termination. - """ - - def __init__(self) -> None: - pass - - def _is_consistent_lines( - self, - curr_line, - prev_line, - next_line, - consistent_direction, # 0 for prev, 1 for next, 2 for both - ): - """ - This function checks if the line is consistent with its neighbors - - Parameters - ---------- - curr_line : dict - current line - prev_line : dict - previous line - next_line : dict - next line - consistent_direction : int - 0 for prev, 1 for next, 2 for both - - Returns - ------- - bool - True if the line is consistent with its neighbors, False otherwise. - """ - - curr_line_font_size = curr_line["spans"][0]["size"] - curr_line_font_type = curr_line["spans"][0]["font"].lower() - - if consistent_direction == 0: - if prev_line: - prev_line_font_size = prev_line["spans"][0]["size"] - prev_line_font_type = prev_line["spans"][0]["font"].lower() - return curr_line_font_size == prev_line_font_size and curr_line_font_type == prev_line_font_type - else: - return False - - elif consistent_direction == 1: - if next_line: - next_line_font_size = next_line["spans"][0]["size"] - next_line_font_type = next_line["spans"][0]["font"].lower() - return curr_line_font_size == next_line_font_size and curr_line_font_type == next_line_font_type - else: - return False - - elif consistent_direction == 2: - if prev_line and next_line: - prev_line_font_size = prev_line["spans"][0]["size"] - prev_line_font_type = prev_line["spans"][0]["font"].lower() - next_line_font_size = next_line["spans"][0]["size"] - next_line_font_type = next_line["spans"][0]["font"].lower() - return (curr_line_font_size == prev_line_font_size and curr_line_font_type == prev_line_font_type) and ( - curr_line_font_size == next_line_font_size and curr_line_font_type == next_line_font_type - ) - else: - return False - - else: - return False - - def _is_regular_line(self, curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, X0, X1, avg_line_height): - """ - This function checks if the line is a regular line - - Parameters - ---------- - curr_line_bbox : list - bbox of the current line - prev_line_bbox : list - bbox of the previous line - next_line_bbox : list - bbox of the next line - avg_char_width : float - average of char widths - X0 : float - median of x0 values, which represents the left average boundary of the page - X1 : float - median of x1 values, which represents the right average boundary of the page - avg_line_height : float - average of line heights - - Returns - ------- - bool - True if the line is a regular line, False otherwise. - """ - horizontal_ratio = 0.5 - vertical_ratio = 0.5 - horizontal_thres = horizontal_ratio * avg_char_width - vertical_thres = vertical_ratio * avg_line_height - - x0, y0, x1, y1 = curr_line_bbox - - x0_near_X0 = abs(x0 - X0) < horizontal_thres - x1_near_X1 = abs(x1 - X1) < horizontal_thres - - prev_line_is_end_of_para = prev_line_bbox and (abs(prev_line_bbox[2] - X1) > avg_char_width) - - sufficient_spacing_above = False - if prev_line_bbox: - vertical_spacing_above = y1 - prev_line_bbox[3] - sufficient_spacing_above = vertical_spacing_above > vertical_thres - - sufficient_spacing_below = False - if next_line_bbox: - vertical_spacing_below = next_line_bbox[1] - y0 - sufficient_spacing_below = vertical_spacing_below > vertical_thres - - return ( - (sufficient_spacing_above or sufficient_spacing_below) - or (not x0_near_X0 and not x1_near_X1) - or prev_line_is_end_of_para - ) - - def _is_possible_start_of_para(self, curr_line, prev_line, next_line, X0, X1, avg_char_width, avg_font_size): - """ - This function checks if the line is a possible start of a paragraph - - Parameters - ---------- - curr_line : dict - current line - prev_line : dict - previous line - next_line : dict - next line - X0 : float - median of x0 values, which represents the left average boundary of the page - X1 : float - median of x1 values, which represents the right average boundary of the page - avg_char_width : float - average of char widths - avg_line_height : float - average of line heights - - Returns - ------- - bool - True if the line is a possible start of a paragraph, False otherwise. - """ - start_confidence = 0.5 # Initial confidence of the line being a start of a paragraph - decision_path = [] # Record the decision path - - curr_line_bbox = curr_line["bbox"] - prev_line_bbox = prev_line["bbox"] if prev_line else None - next_line_bbox = next_line["bbox"] if next_line else None - - indent_ratio = 1 - - vertical_ratio = 1.5 - vertical_thres = vertical_ratio * avg_font_size - - left_horizontal_ratio = 0.5 - left_horizontal_thres = left_horizontal_ratio * avg_char_width - - right_horizontal_ratio = 2.5 - right_horizontal_thres = right_horizontal_ratio * avg_char_width - - x0, y0, x1, y1 = curr_line_bbox - - indent_condition = x0 > X0 + indent_ratio * avg_char_width - if indent_condition: - start_confidence += 0.2 - decision_path.append("indent_condition_met") - - x0_near_X0 = abs(x0 - X0) < left_horizontal_thres - if x0_near_X0: - start_confidence += 0.1 - decision_path.append("x0_near_X0") - - x1_near_X1 = abs(x1 - X1) < right_horizontal_thres - if x1_near_X1: - start_confidence += 0.1 - decision_path.append("x1_near_X1") - - if prev_line is None: - prev_line_is_end_of_para = True - start_confidence += 0.2 - decision_path.append("no_prev_line") - else: - prev_line_is_end_of_para, _, _ = self._is_possible_end_of_para(prev_line, next_line, X0, X1, avg_char_width) - if prev_line_is_end_of_para: - start_confidence += 0.1 - decision_path.append("prev_line_is_end_of_para") - - sufficient_spacing_above = False - if prev_line_bbox: - vertical_spacing_above = y1 - prev_line_bbox[3] - sufficient_spacing_above = vertical_spacing_above > vertical_thres - if sufficient_spacing_above: - start_confidence += 0.2 - decision_path.append("sufficient_spacing_above") - - sufficient_spacing_below = False - if next_line_bbox: - vertical_spacing_below = next_line_bbox[1] - y0 - sufficient_spacing_below = vertical_spacing_below > vertical_thres - if sufficient_spacing_below: - start_confidence += 0.2 - decision_path.append("sufficient_spacing_below") - - is_regular_line = self._is_regular_line( - curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, X0, X1, avg_font_size - ) - if is_regular_line: - start_confidence += 0.1 - decision_path.append("is_regular_line") - - is_start_of_para = ( - (sufficient_spacing_above or sufficient_spacing_below) - or (indent_condition) - or (not indent_condition and x0_near_X0 and x1_near_X1 and not is_regular_line) - or prev_line_is_end_of_para - ) - return (is_start_of_para, start_confidence, decision_path) - - def _is_possible_end_of_para(self, curr_line, next_line, X0, X1, avg_char_width): - """ - This function checks if the line is a possible end of a paragraph - - Parameters - ---------- - curr_line : dict - current line - next_line : dict - next line - X0 : float - median of x0 values, which represents the left average boundary of the page - X1 : float - median of x1 values, which represents the right average boundary of the page - avg_char_width : float - average of char widths - - Returns - ------- - bool - True if the line is a possible end of a paragraph, False otherwise. - """ - - end_confidence = 0.5 # Initial confidence of the line being a end of a paragraph - decision_path = [] # Record the decision path - - curr_line_bbox = curr_line["bbox"] - next_line_bbox = next_line["bbox"] if next_line else None - - left_horizontal_ratio = 0.5 - right_horizontal_ratio = 0.5 - - x0, _, x1, y1 = curr_line_bbox - next_x0, next_y0, _, _ = next_line_bbox if next_line_bbox else (0, 0, 0, 0) - - x0_near_X0 = abs(x0 - X0) < left_horizontal_ratio * avg_char_width - if x0_near_X0: - end_confidence += 0.1 - decision_path.append("x0_near_X0") - - x1_smaller_than_X1 = x1 < X1 - right_horizontal_ratio * avg_char_width - if x1_smaller_than_X1: - end_confidence += 0.1 - decision_path.append("x1_smaller_than_X1") - - next_line_is_start_of_para = ( - next_line_bbox - and (next_x0 > X0 + left_horizontal_ratio * avg_char_width) - and (not is_line_left_aligned_from_neighbors(curr_line_bbox, None, next_line_bbox, avg_char_width, direction=1)) - ) - if next_line_is_start_of_para: - end_confidence += 0.2 - decision_path.append("next_line_is_start_of_para") - - is_line_left_aligned_from_neighbors_bool = is_line_left_aligned_from_neighbors( - curr_line_bbox, None, next_line_bbox, avg_char_width - ) - if is_line_left_aligned_from_neighbors_bool: - end_confidence += 0.1 - decision_path.append("line_is_left_aligned_from_neighbors") - - is_line_right_aligned_from_neighbors_bool = is_line_right_aligned_from_neighbors( - curr_line_bbox, None, next_line_bbox, avg_char_width - ) - if not is_line_right_aligned_from_neighbors_bool: - end_confidence += 0.1 - decision_path.append("line_is_not_right_aligned_from_neighbors") - - is_end_of_para = end_with_punctuation(curr_line["text"]) and ( - (x0_near_X0 and x1_smaller_than_X1) - or (is_line_left_aligned_from_neighbors_bool and not is_line_right_aligned_from_neighbors_bool) - ) - - return (is_end_of_para, end_confidence, decision_path) - - def _cut_paras_per_block( - self, - block, - ): - """ - Processes a raw block from PyMuPDF and returns the processed block. - - Parameters - ---------- - raw_block : dict - A raw block from pymupdf. - - Returns - ------- - processed_block : dict - - """ - - def _construct_para(lines, is_block_title, para_title_level): - """ - Construct a paragraph from given lines. - """ - - font_sizes = [span["size"] for line in lines for span in line["spans"]] - avg_font_size = sum(font_sizes) / len(font_sizes) if font_sizes else 0 - - font_colors = [span["color"] for line in lines for span in line["spans"]] - most_common_font_color = max(set(font_colors), key=font_colors.count) if font_colors else None - - font_type_lengths = {} - for line in lines: - for span in line["spans"]: - font_type = span["font"] - bbox_width = span["bbox"][2] - span["bbox"][0] - if font_type in font_type_lengths: - font_type_lengths[font_type] += bbox_width - else: - font_type_lengths[font_type] = bbox_width - - # get the font type with the longest bbox width - most_common_font_type = max(font_type_lengths, key=font_type_lengths.get) if font_type_lengths else None # type: ignore - - para_bbox = calculate_para_bbox(lines) - para_text = " ".join(line["text"] for line in lines) - - return { - "para_bbox": para_bbox, - "para_text": para_text, - "para_font_type": most_common_font_type, - "para_font_size": avg_font_size, - "para_font_color": most_common_font_color, - "is_para_title": is_block_title, - "para_title_level": para_title_level, - } - - block_bbox = block["bbox"] - block_text = block["text"] - block_lines = block["lines"] - - X0 = safe_get(block, "X0", 0) - X1 = safe_get(block, "X1", 0) - avg_char_width = safe_get(block, "avg_char_width", 0) - avg_char_height = safe_get(block, "avg_char_height", 0) - avg_font_size = safe_get(block, "avg_font_size", 0) - - is_block_title = safe_get(block, "is_block_title", False) - para_title_level = safe_get(block, "block_title_level", 0) - - # Segment into paragraphs - para_ranges = [] - in_paragraph = False - start_idx_of_para = None - - # Create the processed paragraphs - processed_paras = {} - para_bboxes = [] - end_idx_of_para = 0 - - for line_index, line in enumerate(block_lines): - curr_line = line - prev_line = block_lines[line_index - 1] if line_index > 0 else None - next_line = block_lines[line_index + 1] if line_index < len(block_lines) - 1 else None - - """ - Start processing paragraphs. - """ - - # Check if the line is the start of a paragraph - is_start_of_para, start_confidence, decision_path = self._is_possible_start_of_para( - curr_line, prev_line, next_line, X0, X1, avg_char_width, avg_font_size - ) - if not in_paragraph and is_start_of_para: - in_paragraph = True - start_idx_of_para = line_index - - # print_green(">>> Start of a paragraph") - # print(" curr_line_text: ", curr_line["text"]) - # print(" start_confidence: ", start_confidence) - # print(" decision_path: ", decision_path) - - # Check if the line is the end of a paragraph - is_end_of_para, end_confidence, decision_path = self._is_possible_end_of_para( - curr_line, next_line, X0, X1, avg_char_width - ) - if in_paragraph and (is_end_of_para or not next_line): - para_ranges.append((start_idx_of_para, line_index)) - start_idx_of_para = None - in_paragraph = False - - # print_red(">>> End of a paragraph") - # print(" curr_line_text: ", curr_line["text"]) - # print(" end_confidence: ", end_confidence) - # print(" decision_path: ", decision_path) - - # Add the last paragraph if it is not added - if in_paragraph and start_idx_of_para is not None: - para_ranges.append((start_idx_of_para, len(block_lines) - 1)) - - # Process the matched paragraphs - for para_index, (start_idx, end_idx) in enumerate(para_ranges): - matched_lines = block_lines[start_idx : end_idx + 1] - para_properties = _construct_para(matched_lines, is_block_title, para_title_level) - para_key = f"para_{len(processed_paras)}" - processed_paras[para_key] = para_properties - para_bboxes.append(para_properties["para_bbox"]) - end_idx_of_para = end_idx + 1 - - # Deal with the remaining lines - if end_idx_of_para < len(block_lines): - unmatched_lines = block_lines[end_idx_of_para:] - unmatched_properties = _construct_para(unmatched_lines, is_block_title, para_title_level) - unmatched_key = f"para_{len(processed_paras)}" - processed_paras[unmatched_key] = unmatched_properties - para_bboxes.append(unmatched_properties["para_bbox"]) - - block["paras"] = processed_paras - - return block - - def batch_process_blocks(self, pdf_dict): - """ - Parses the blocks of all pages. - - Parameters - ---------- - pdf_dict : dict - PDF dictionary. - filter_blocks : list - List of bounding boxes to filter. - - Returns - ------- - result_dict : dict - Result dictionary. - - """ - - num_paras = 0 - - for page_id, page in pdf_dict.items(): - if page_id.startswith("page_"): - para_blocks = [] - if "para_blocks" in page.keys(): - input_blocks = page["para_blocks"] - for input_block in input_blocks: - new_block = self._cut_paras_per_block(input_block) - para_blocks.append(new_block) - num_paras += len(new_block["paras"]) - - page["para_blocks"] = para_blocks - - pdf_dict["statistics"]["num_paras"] = num_paras - return pdf_dict - - -class BlockContinuationProcessor: - """ - This class is used to process the blocks to detect block continuations. - """ - - def __init__(self) -> None: - pass - - def __is_similar_font_type(self, font_type_1, font_type_2, prefix_length_ratio=0.3): - """ - This function checks if the two font types are similar. - Definition of similar font types: the two font types have a common prefix, - and the length of the common prefix is at least a certain ratio of the length of the shorter font type. - - Parameters - ---------- - font_type1 : str - font type 1 - font_type2 : str - font type 2 - prefix_length_ratio : float - minimum ratio of the common prefix length to the length of the shorter font type - - Returns - ------- - bool - True if the two font types are similar, False otherwise. - """ - - if isinstance(font_type_1, list): - font_type_1 = font_type_1[0] if font_type_1 else "" - if isinstance(font_type_2, list): - font_type_2 = font_type_2[0] if font_type_2 else "" - - if font_type_1 == font_type_2: - return True - - # Find the length of the common prefix - common_prefix_length = len(os.path.commonprefix([font_type_1, font_type_2])) - - # Calculate the minimum prefix length based on the ratio - min_prefix_length = int(min(len(font_type_1), len(font_type_2)) * prefix_length_ratio) - - return common_prefix_length >= min_prefix_length - - def __is_same_block_font(self, block_1, block_2): - """ - This function compares the font of block1 and block2 - - Parameters - ---------- - block1 : dict - block1 - block2 : dict - block2 - - Returns - ------- - is_same : bool - True if block1 and block2 have the same font, else False - """ - block_1_font_type = safe_get(block_1, "block_font_type", "") - block_1_font_size = safe_get(block_1, "block_font_size", 0) - block_1_avg_char_width = safe_get(block_1, "avg_char_width", 0) - - block_2_font_type = safe_get(block_2, "block_font_type", "") - block_2_font_size = safe_get(block_2, "block_font_size", 0) - block_2_avg_char_width = safe_get(block_2, "avg_char_width", 0) - - if isinstance(block_1_font_size, list): - block_1_font_size = block_1_font_size[0] if block_1_font_size else 0 - if isinstance(block_2_font_size, list): - block_2_font_size = block_2_font_size[0] if block_2_font_size else 0 - - block_1_text = safe_get(block_1, "text", "") - block_2_text = safe_get(block_2, "text", "") - - if block_1_avg_char_width == 0 or block_2_avg_char_width == 0: - return False - - if not block_1_text or not block_2_text: - return False - else: - text_len_ratio = len(block_2_text) / len(block_1_text) - if text_len_ratio < 0.2: - avg_char_width_condition = ( - abs(block_1_avg_char_width - block_2_avg_char_width) / min(block_1_avg_char_width, block_2_avg_char_width) - < 0.5 - ) - else: - avg_char_width_condition = ( - abs(block_1_avg_char_width - block_2_avg_char_width) / min(block_1_avg_char_width, block_2_avg_char_width) - < 0.2 - ) - - block_font_size_condition = abs(block_1_font_size - block_2_font_size) < 1 - - return ( - self.__is_similar_font_type(block_1_font_type, block_2_font_type) - and avg_char_width_condition - and block_font_size_condition - ) - - def _is_alphabet_char(self, char): - if (char >= "\u0041" and char <= "\u005a") or (char >= "\u0061" and char <= "\u007a"): - return True - else: - return False - - def _is_chinese_char(self, char): - if char >= "\u4e00" and char <= "\u9fa5": - return True - else: - return False - - def _is_other_letter_char(self, char): - try: - cat = unicodedata.category(char) - if cat == "Lu" or cat == "Ll": - return not self._is_alphabet_char(char) and not self._is_chinese_char(char) - except TypeError: - print("The input to the function must be a single character.") - return False - - def _is_year(self, s: str): - try: - number = int(s) - return 1900 <= number <= 2099 - except ValueError: - return False - - def _match_brackets(self, text): - # pattern = r"^[\(\)\[\]()【】{}{}<><>〔〕〘〙\"\'“”‘’]" - pattern = r"^[\(\)\]()】{}{}>>〕〙\"\'“”‘’]" - return bool(re.match(pattern, text)) - - def _is_para_font_consistent(self, para_1, para_2): - """ - This function compares the font of para1 and para2 - - Parameters - ---------- - para1 : dict - para1 - para2 : dict - para2 - - Returns - ------- - is_same : bool - True if para1 and para2 have the same font, else False - """ - if para_1 is None or para_2 is None: - return False - - para_1_font_type = safe_get(para_1, "para_font_type", "") - para_1_font_size = safe_get(para_1, "para_font_size", 0) - para_1_font_color = safe_get(para_1, "para_font_color", "") - - para_2_font_type = safe_get(para_2, "para_font_type", "") - para_2_font_size = safe_get(para_2, "para_font_size", 0) - para_2_font_color = safe_get(para_2, "para_font_color", "") - - if isinstance(para_1_font_type, list): # get the most common font type - para_1_font_type = max(set(para_1_font_type), key=para_1_font_type.count) - if isinstance(para_2_font_type, list): - para_2_font_type = max(set(para_2_font_type), key=para_2_font_type.count) - if isinstance(para_1_font_size, list): # compute average font type - para_1_font_size = sum(para_1_font_size) / len(para_1_font_size) - if isinstance(para_2_font_size, list): # compute average font type - para_2_font_size = sum(para_2_font_size) / len(para_2_font_size) - - return ( - self.__is_similar_font_type(para_1_font_type, para_2_font_type) - and abs(para_1_font_size - para_2_font_size) < 1.5 - # and para_font_color1 == para_font_color2 - ) - - def _is_para_puncs_consistent(self, para_1, para_2): - """ - This function determines whether para1 and para2 are originally from the same paragraph by checking the puncs of para1(former) and para2(latter) - - Parameters - ---------- - para1 : dict - para1 - para2 : dict - para2 - - Returns - ------- - is_same : bool - True if para1 and para2 are from the same paragraph by using the puncs, else False - """ - para_1_text = safe_get(para_1, "para_text", "").strip() - para_2_text = safe_get(para_2, "para_text", "").strip() - - para_1_bboxes = safe_get(para_1, "para_bbox", []) - para_1_font_sizes = safe_get(para_1, "para_font_size", 0) - - para_2_bboxes = safe_get(para_2, "para_bbox", []) - para_2_font_sizes = safe_get(para_2, "para_font_size", 0) - - # print_yellow(" Features of determine puncs_consistent:") - # print(f" para_1_text: {para_1_text}") - # print(f" para_2_text: {para_2_text}") - # print(f" para_1_bboxes: {para_1_bboxes}") - # print(f" para_2_bboxes: {para_2_bboxes}") - # print(f" para_1_font_sizes: {para_1_font_sizes}") - # print(f" para_2_font_sizes: {para_2_font_sizes}") - - if is_nested_list(para_1_bboxes): - x0_1, y0_1, x1_1, y1_1 = para_1_bboxes[-1] - else: - x0_1, y0_1, x1_1, y1_1 = para_1_bboxes - - if is_nested_list(para_2_bboxes): - x0_2, y0_2, x1_2, y1_2 = para_2_bboxes[0] - para_2_font_sizes = para_2_font_sizes[0] # type: ignore - else: - x0_2, y0_2, x1_2, y1_2 = para_2_bboxes - - right_align_threshold = 0.5 * (para_1_font_sizes + para_2_font_sizes) * 0.8 - are_two_paras_right_aligned = abs(x1_1 - x1_2) < right_align_threshold - - left_indent_threshold = 0.5 * (para_1_font_sizes + para_2_font_sizes) * 0.8 - is_para1_left_indent_than_papa2 = x0_1 - x0_2 > left_indent_threshold - is_para2_left_indent_than_papa1 = x0_2 - x0_1 > left_indent_threshold - - # Check if either para_text1 or para_text2 is empty - if not para_1_text or not para_2_text: - return False - - # Define the end puncs for a sentence to end and hyphen - end_puncs = [".", "?", "!", "。", "?", "!", "…"] - hyphen = ["-", "—"] - - # Check if para_text1 ends with either hyphen or non-end punctuation or spaces - para_1_end_with_hyphen = para_1_text and para_1_text[-1] in hyphen - para_1_end_with_end_punc = para_1_text and para_1_text[-1] in end_puncs - para_1_end_with_space = para_1_text and para_1_text[-1] == " " - para_1_not_end_with_end_punc = para_1_text and para_1_text[-1] not in end_puncs - - # print_yellow(f" para_1_end_with_hyphen: {para_1_end_with_hyphen}") - # print_yellow(f" para_1_end_with_end_punc: {para_1_end_with_end_punc}") - # print_yellow(f" para_1_not_end_with_end_punc: {para_1_not_end_with_end_punc}") - # print_yellow(f" para_1_end_with_space: {para_1_end_with_space}") - - if para_1_end_with_hyphen: # If para_text1 ends with hyphen - # print_red(f"para_1 is end with hyphen.") - para_2_is_consistent = para_2_text and ( - para_2_text[0] in hyphen - or (self._is_alphabet_char(para_2_text[0]) and para_2_text[0].islower()) - or (self._is_chinese_char(para_2_text[0])) - or (self._is_other_letter_char(para_2_text[0])) - ) - if para_2_is_consistent: - # print(f"para_2 is consistent.\n") - return True - else: - # print(f"para_2 is not consistent.\n") - pass - - elif para_1_end_with_end_punc: # If para_text1 ends with ending punctuations - # print_red(f"para_1 is end with end_punc.") - para_2_is_consistent = ( - para_2_text - and ( - para_2_text[0] - == " " - # or (self._is_alphabet_char(para_2_text[0]) and para_2_text[0].isupper()) - # or (self._is_chinese_char(para_2_text[0])) - # or (self._is_other_letter_char(para_2_text[0])) - ) - and not is_para2_left_indent_than_papa1 - ) - if para_2_is_consistent: - # print(f"para_2 is consistent.\n") - return True - else: - # print(f"para_2 is not consistent.\n") - pass - - elif para_1_not_end_with_end_punc: # If para_text1 is not end with ending punctuations - # print_red(f"para_1 is NOT end with end_punc.") - para_2_is_consistent = para_2_text and ( - para_2_text[0] == " " - or (self._is_alphabet_char(para_2_text[0]) and para_2_text[0].islower()) - or (self._is_alphabet_char(para_2_text[0])) - or (self._is_year(para_2_text[0:4])) - or (are_two_paras_right_aligned or is_para1_left_indent_than_papa2) - or (self._is_chinese_char(para_2_text[0])) - or (self._is_other_letter_char(para_2_text[0])) - or (self._match_brackets(para_2_text[0])) - ) - if para_2_is_consistent: - # print(f"para_2 is consistent.\n") - return True - else: - # print(f"para_2 is not consistent.\n") - pass - - elif para_1_end_with_space: # If para_text1 ends with space - # print_red(f"para_1 is end with space.") - para_2_is_consistent = para_2_text and ( - para_2_text[0] == " " - or (self._is_alphabet_char(para_2_text[0]) and para_2_text[0].islower()) - or (self._is_chinese_char(para_2_text[0])) - or (self._is_other_letter_char(para_2_text[0])) - ) - if para_2_is_consistent: - # print(f"para_2 is consistent.\n") - return True - else: - pass - # print(f"para_2 is not consistent.\n") - - return False - - def _is_block_consistent(self, block_1, block_2): - """ - This function determines whether block1 and block2 are originally from the same block - - Parameters - ---------- - block1 : dict - block1s - block2 : dict - block2 - - Returns - ------- - is_same : bool - True if block1 and block2 are from the same block, else False - """ - return self.__is_same_block_font(block_1, block_2) - - def _is_para_continued(self, para_1, para_2): - """ - This function determines whether para1 and para2 are originally from the same paragraph - - Parameters - ---------- - para1 : dict - para1 - para2 : dict - para2 - - Returns - ------- - is_same : bool - True if para1 and para2 are from the same paragraph, else False - """ - is_para_font_consistent = self._is_para_font_consistent(para_1, para_2) - is_para_puncs_consistent = self._is_para_puncs_consistent(para_1, para_2) - - return is_para_font_consistent and is_para_puncs_consistent - - def _are_boundaries_of_block_consistent(self, block_1, block_2): - """ - This function checks if the boundaries of block1 and block2 are consistent - - Parameters - ---------- - block1 : dict - block1 - - block2 : dict - block2 - - Returns - ------- - is_consistent : bool - True if the boundaries of block1 and block2 are consistent, else False - """ - - last_line_of_block_1 = block_1["lines"][-1] - first_line_of_block_2 = block_2["lines"][0] - - spans_of_last_line_of_block_1 = last_line_of_block_1["spans"] - spans_of_first_line_of_block_2 = first_line_of_block_2["spans"] - - font_type_of_last_line_of_block_1 = spans_of_last_line_of_block_1[0]["font"].lower() - font_size_of_last_line_of_block_1 = spans_of_last_line_of_block_1[0]["size"] - font_color_of_last_line_of_block_1 = spans_of_last_line_of_block_1[0]["color"] - font_flags_of_last_line_of_block_1 = spans_of_last_line_of_block_1[0]["flags"] - - font_type_of_first_line_of_block_2 = spans_of_first_line_of_block_2[0]["font"].lower() - font_size_of_first_line_of_block_2 = spans_of_first_line_of_block_2[0]["size"] - font_color_of_first_line_of_block_2 = spans_of_first_line_of_block_2[0]["color"] - font_flags_of_first_line_of_block_2 = spans_of_first_line_of_block_2[0]["flags"] - - return ( - self.__is_similar_font_type(font_type_of_last_line_of_block_1, font_type_of_first_line_of_block_2) - and abs(font_size_of_last_line_of_block_1 - font_size_of_first_line_of_block_2) < 1 - # and font_color_of_last_line_of_block1 == font_color_of_first_line_of_block2 - and font_flags_of_last_line_of_block_1 == font_flags_of_first_line_of_block_2 - ) - - def should_merge_next_para(self, curr_para, next_para): - """ - This function checks if the next_para should be merged into the curr_para. - - Parameters - ---------- - curr_para : dict - The current paragraph. - next_para : dict - The next paragraph. - - Returns - ------- - bool - True if the next_para should be merged into the curr_para, False otherwise. - """ - if self._is_para_continued(curr_para, next_para): - return True - else: - return False - - def batch_tag_paras(self, pdf_dict): - """ - This function tags the paragraphs in the pdf_dict. - - Parameters - ---------- - pdf_dict : dict - PDF dictionary. - - Returns - ------- - pdf_dict : dict - PDF dictionary with tagged paragraphs. - """ - the_last_page_id = len(pdf_dict) - 1 - - for curr_page_idx, (curr_page_id, curr_page_content) in enumerate(pdf_dict.items()): - if curr_page_id.startswith("page_") and curr_page_content.get("para_blocks", []): - para_blocks_of_curr_page = curr_page_content["para_blocks"] - next_page_idx = curr_page_idx + 1 - next_page_id = f"page_{next_page_idx}" - next_page_content = pdf_dict.get(next_page_id, {}) - - for i, current_block in enumerate(para_blocks_of_curr_page): - for para_id, curr_para in current_block["paras"].items(): - curr_para["curr_para_location"] = [ - curr_page_idx, - current_block["block_id"], - int(para_id.split("_")[-1]), - ] - curr_para["next_para_location"] = None # 默认设置为None - curr_para["merge_next_para"] = False # 默认设置为False - - next_block = para_blocks_of_curr_page[i + 1] if i < len(para_blocks_of_curr_page) - 1 else None - - if next_block: - curr_block_last_para_key = list(current_block["paras"].keys())[-1] - curr_blk_last_para = current_block["paras"][curr_block_last_para_key] - - next_block_first_para_key = list(next_block["paras"].keys())[0] - next_blk_first_para = next_block["paras"][next_block_first_para_key] - - if self.should_merge_next_para(curr_blk_last_para, next_blk_first_para): - curr_blk_last_para["next_para_location"] = [ - curr_page_idx, - next_block["block_id"], - int(next_block_first_para_key.split("_")[-1]), - ] - curr_blk_last_para["merge_next_para"] = True - else: - # Handle the case where the next block is in a different page - curr_block_last_para_key = list(current_block["paras"].keys())[-1] - curr_blk_last_para = current_block["paras"][curr_block_last_para_key] - - while not next_page_content.get("para_blocks", []) and next_page_idx <= the_last_page_id: - next_page_idx += 1 - next_page_id = f"page_{next_page_idx}" - next_page_content = pdf_dict.get(next_page_id, {}) - - if next_page_content.get("para_blocks", []): - next_blk_first_para_key = list(next_page_content["para_blocks"][0]["paras"].keys())[0] - next_blk_first_para = next_page_content["para_blocks"][0]["paras"][next_blk_first_para_key] - - if self.should_merge_next_para(curr_blk_last_para, next_blk_first_para): - curr_blk_last_para["next_para_location"] = [ - next_page_idx, - next_page_content["para_blocks"][0]["block_id"], - int(next_blk_first_para_key.split("_")[-1]), - ] - curr_blk_last_para["merge_next_para"] = True - - return pdf_dict - - def find_block_by_id(self, para_blocks, block_id): - """ - This function finds a block by its id. - - Parameters - ---------- - para_blocks : list - List of blocks. - block_id : int - Id of the block to find. - - Returns - ------- - block : dict - The block with the given id. - """ - for blk_idx, block in enumerate(para_blocks): - if block.get("block_id") == block_id: - return block - return None - - def batch_merge_paras(self, pdf_dict): - """ - This function merges the paragraphs in the pdf_dict. - - Parameters - ---------- - pdf_dict : dict - PDF dictionary. - - Returns - ------- - pdf_dict : dict - PDF dictionary with merged paragraphs. - """ - for page_id, page_content in pdf_dict.items(): - if page_id.startswith("page_") and page_content.get("para_blocks", []): - para_blocks_of_page = page_content["para_blocks"] - - for i in range(len(para_blocks_of_page)): - current_block = para_blocks_of_page[i] - paras = current_block["paras"] - - for para_id, curr_para in list(paras.items()): - # print(f"current para_id: {para_id}") - # 跳过标题段落 - if curr_para.get("is_para_title"): - continue - - while curr_para.get("merge_next_para"): - curr_para_location = curr_para.get("curr_para_location") - next_para_location = curr_para.get("next_para_location") - - # print(f"curr_para_location: {curr_para_location}, next_para_location: {next_para_location}") - - if not next_para_location: - break - - if curr_para_location == next_para_location: - # print_red("The next para is in the same block as the current para.") - curr_para["merge_next_para"] = False - break - - next_page_idx, next_block_id, next_para_id = next_para_location - next_page_id = f"page_{next_page_idx}" - next_page_content = pdf_dict.get(next_page_id) - if not next_page_content: - break - - next_block = self.find_block_by_id(next_page_content.get("para_blocks", []), next_block_id) - - if not next_block: - break - - next_para = next_block["paras"].get(f"para_{next_para_id}") - - if not next_para or next_para.get("is_para_title"): - break - - # 合并段落文本 - curr_para_text = curr_para.get("para_text", "") - next_para_text = next_para.get("para_text", "") - curr_para["para_text"] = curr_para_text + " " + next_para_text - - # 更新 next_para_location - curr_para["next_para_location"] = next_para.get("next_para_location") - - # 将下一个段落文本置为空,表示已被合并 - next_para["para_text"] = "" - - # 更新 merge_next_para 标记 - curr_para["merge_next_para"] = next_para.get("merge_next_para", False) - - return pdf_dict - - -class DrawAnnos: - """ - This class draws annotations on the pdf file - - ---------------------------------------- - Color Code - ---------------------------------------- - Red: (1, 0, 0) - Green: (0, 1, 0) - Blue: (0, 0, 1) - Yellow: (1, 1, 0) - mix of red and green - Cyan: (0, 1, 1) - mix of green and blue - Magenta: (1, 0, 1) - mix of red and blue - White: (1, 1, 1) - red, green and blue full intensity - Black: (0, 0, 0) - no color component whatsoever - Gray: (0.5, 0.5, 0.5) - equal and medium intensity of red, green and blue color components - Orange: (1, 0.65, 0) - maximum intensity of red, medium intensity of green, no blue component - """ - - def __init__(self) -> None: - pass - - def __is_nested_list(self, lst): - """ - This function returns True if the given list is a nested list of any degree. - """ - if isinstance(lst, list): - return any(self.__is_nested_list(i) for i in lst) or any(isinstance(i, list) for i in lst) - return False - - def __valid_rect(self, bbox): - # Ensure that the rectangle is not empty or invalid - if isinstance(bbox[0], list): - return False # It's a nested list, hence it can't be valid rect - else: - return bbox[0] < bbox[2] and bbox[1] < bbox[3] - - def __draw_nested_boxes(self, page, nested_bbox, color=(0, 1, 1)): - """ - This function draws the nested boxes - - Parameters - ---------- - page : fitz.Page - page - nested_bbox : list - nested bbox - color : tuple - color, by default (0, 1, 1) # draw with cyan color for combined paragraph - """ - if self.__is_nested_list(nested_bbox): # If it's a nested list - for bbox in nested_bbox: - self.__draw_nested_boxes(page, bbox, color) # Recursively call the function - elif self.__valid_rect(nested_bbox): # If valid rectangle - para_rect = fitz.Rect(nested_bbox) - para_anno = page.add_rect_annot(para_rect) - para_anno.set_colors(stroke=color) # draw with cyan color for combined paragraph - para_anno.set_border(width=1) - para_anno.update() - - def draw_annos(self, input_pdf_path, pdf_dic, output_pdf_path): - """ - This function draws annotations on the pdf file. - - Parameters - ---------- - input_pdf_path : str - path to the input pdf file - pdf_dic : dict - pdf dictionary - output_pdf_path : str - path to the output pdf file - - pdf_dic : dict - pdf dictionary - """ - pdf_doc = open_pdf(input_pdf_path) - - if pdf_dic is None: - pdf_dic = {} - - if output_pdf_path is None: - output_pdf_path = input_pdf_path.replace(".pdf", "_anno.pdf") - - for page_id, page in enumerate(pdf_doc): # type: ignore - page_key = f"page_{page_id}" - for ele_key, ele_data in pdf_dic[page_key].items(): - if ele_key == "para_blocks": - para_blocks = ele_data - for para_block in para_blocks: - if "paras" in para_block.keys(): - paras = para_block["paras"] - for para_key, para_content in paras.items(): - para_bbox = para_content["para_bbox"] - # print(f"para_bbox: {para_bbox}") - # print(f"is a nested list: {self.__is_nested_list(para_bbox)}") - if self.__is_nested_list(para_bbox) and len(para_bbox) > 1: - color = (0, 1, 1) - self.__draw_nested_boxes( - page, para_bbox, color - ) # draw with cyan color for combined paragraph - else: - if self.__valid_rect(para_bbox): - para_rect = fitz.Rect(para_bbox) - para_anno = page.add_rect_annot(para_rect) - para_anno.set_colors(stroke=(0, 1, 0)) # draw with green color for normal paragraph - para_anno.set_border(width=0.5) - para_anno.update() - - is_para_title = para_content["is_para_title"] - if is_para_title: - if self.__is_nested_list(para_content["para_bbox"]) and len(para_content["para_bbox"]) > 1: - color = (0, 0, 1) - self.__draw_nested_boxes( - page, para_content["para_bbox"], color - ) # draw with cyan color for combined title - else: - if self.__valid_rect(para_content["para_bbox"]): - para_rect = fitz.Rect(para_content["para_bbox"]) - if self.__valid_rect(para_content["para_bbox"]): - para_anno = page.add_rect_annot(para_rect) - para_anno.set_colors(stroke=(0, 0, 1)) # draw with blue color for normal title - para_anno.set_border(width=0.5) - para_anno.update() - - pdf_doc.save(output_pdf_path) - pdf_doc.close() - - -class ParaProcessPipeline: - def __init__(self) -> None: - pass - - def para_process_pipeline(self, pdf_info_dict, para_debug_mode=None, input_pdf_path=None, output_pdf_path=None): - """ - This function processes the paragraphs, including: - 1. Read raw input json file into pdf_dic - 2. Detect and replace equations - 3. Combine spans into a natural line - 4. Check if the paragraphs are inside bboxes passed from "layout_bboxes" key - 5. Compute statistics for each block - 6. Detect titles in the document - 7. Detect paragraphs inside each block - 8. Divide the level of the titles - 9. Detect and combine paragraphs from different blocks into one paragraph - 10. Check whether the final results after checking headings, dividing paragraphs within blocks, and merging paragraphs between blocks are plausible and reasonable. - 11. Draw annotations on the pdf file - - Parameters - ---------- - pdf_dic_json_fpath : str - path to the pdf dictionary json file. - Notice: data noises, including overlap blocks, header, footer, watermark, vertical margin note have been removed already. - input_pdf_doc : str - path to the input pdf file - output_pdf_path : str - path to the output pdf file - - Returns - ------- - pdf_dict : dict - result dictionary - """ - - error_info = None - - output_json_file = "" - output_dir = "" - - if input_pdf_path is not None: - input_pdf_path = os.path.abspath(input_pdf_path) - - # print_green_on_red(f">>>>>>>>>>>>>>>>>>> Process the paragraphs of {input_pdf_path}") - - if output_pdf_path is not None: - output_dir = os.path.dirname(output_pdf_path) - output_json_file = f"{output_dir}/pdf_dic.json" - - def __save_pdf_dic(pdf_dic, output_pdf_path, stage="0", para_debug_mode=para_debug_mode): - """ - Save the pdf_dic to a json file - """ - output_pdf_file_name = os.path.basename(output_pdf_path) - # output_dir = os.path.dirname(output_pdf_path) - output_dir = "\\tmp\\pdf_parse" - output_pdf_file_name = output_pdf_file_name.replace(".pdf", f"_stage_{stage}.json") - pdf_dic_json_fpath = os.path.join(output_dir, output_pdf_file_name) - - if not os.path.exists(output_dir): - os.makedirs(output_dir) - - if para_debug_mode == "full": - with open(pdf_dic_json_fpath, "w", encoding="utf-8") as f: - json.dump(pdf_dic, f, indent=2, ensure_ascii=False) - - # Validate the output already exists - if not os.path.exists(pdf_dic_json_fpath): - print_red(f"Failed to save the pdf_dic to {pdf_dic_json_fpath}") - return None - else: - print_green(f"Succeed to save the pdf_dic to {pdf_dic_json_fpath}") - - return pdf_dic_json_fpath - - """ - Preprocess the lines of block - """ - # Combine spans into a natural line - rawBlockProcessor = RawBlockProcessor() - pdf_dic = rawBlockProcessor.batch_process_blocks(pdf_info_dict) - # print(f"pdf_dic['page_0']['para_blocks'][0]: {pdf_dic['page_0']['para_blocks'][0]}", end="\n\n") - - # Check if the paragraphs are inside bboxes passed from "layout_bboxes" key - layoutFilter = LayoutFilterProcessor() - pdf_dic = layoutFilter.batch_process_blocks(pdf_dic) - - # Compute statistics for each block - blockStatisticsCalculator = BlockStatisticsCalculator() - pdf_dic = blockStatisticsCalculator.batch_process_blocks(pdf_dic) - # print(f"pdf_dic['page_0']['para_blocks'][0]: {pdf_dic['page_0']['para_blocks'][0]}", end="\n\n") - - # Compute statistics for all blocks(namely this pdf document) - docStatisticsCalculator = DocStatisticsCalculator() - pdf_dic = docStatisticsCalculator.calc_stats_of_doc(pdf_dic) - # print(f"pdf_dic['statistics']: {pdf_dic['statistics']}", end="\n\n") - - # Dump the first three stages of pdf_dic to a json file - if para_debug_mode == "full": - pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="0", para_debug_mode=para_debug_mode) - - """ - Detect titles in the document - """ - doc_statistics = pdf_dic["statistics"] - titleProcessor = TitleProcessor(doc_statistics) - pdf_dic = titleProcessor.batch_detect_titles(pdf_dic) - - if para_debug_mode == "full": - pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="1", para_debug_mode=para_debug_mode) - - """ - Detect and divide the level of the titles - """ - titleProcessor = TitleProcessor() - - pdf_dic = titleProcessor.batch_recog_title_level(pdf_dic) - - if para_debug_mode == "full": - pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="2", para_debug_mode=para_debug_mode) - - """ - Detect and split paragraphs inside each block - """ - blockInnerParasProcessor = BlockTerminationProcessor() - - pdf_dic = blockInnerParasProcessor.batch_process_blocks(pdf_dic) - - if para_debug_mode == "full": - pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="3", para_debug_mode=para_debug_mode) - - # pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="3", para_debug_mode="full") - # print_green(f"pdf_dic_json_fpath: {pdf_dic_json_fpath}") - - """ - Detect and combine paragraphs from different blocks into one paragraph - """ - blockContinuationProcessor = BlockContinuationProcessor() - - pdf_dic = blockContinuationProcessor.batch_tag_paras(pdf_dic) - pdf_dic = blockContinuationProcessor.batch_merge_paras(pdf_dic) - - if para_debug_mode == "full": - pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="4", para_debug_mode=para_debug_mode) - - # pdf_dic_json_fpath = __save_pdf_dic(pdf_dic, output_pdf_path, stage="4", para_debug_mode="full") - # print_green(f"pdf_dic_json_fpath: {pdf_dic_json_fpath}") - - """ - Discard pdf files by checking exceptions and return the error info to the caller - """ - discardByException = DiscardByException() - - is_discard_by_single_line_block = discardByException.discard_by_single_line_block( - pdf_dic, exception=DenseSingleLineBlockException() - ) - is_discard_by_title_detection = discardByException.discard_by_title_detection( - pdf_dic, exception=TitleDetectionException() - ) - is_discard_by_title_level = discardByException.discard_by_title_level(pdf_dic, exception=TitleLevelException()) - is_discard_by_split_para = discardByException.discard_by_split_para(pdf_dic, exception=ParaSplitException()) - is_discard_by_merge_para = discardByException.discard_by_merge_para(pdf_dic, exception=ParaMergeException()) - - if is_discard_by_single_line_block is not None: - error_info = is_discard_by_single_line_block - elif is_discard_by_title_detection is not None: - error_info = is_discard_by_title_detection - elif is_discard_by_title_level is not None: - error_info = is_discard_by_title_level - elif is_discard_by_split_para is not None: - error_info = is_discard_by_split_para - elif is_discard_by_merge_para is not None: - error_info = is_discard_by_merge_para - - if error_info is not None: - return pdf_dic, error_info - - """ - Dump the final pdf_dic to a json file - """ - if para_debug_mode is not None: - with open(output_json_file, "w", encoding="utf-8") as f: - json.dump(pdf_info_dict, f, ensure_ascii=False, indent=4) - - """ - Draw the annotations - """ - if para_debug_mode is not None: - drawAnnos = DrawAnnos() - drawAnnos.draw_annos(input_pdf_path, pdf_dic, output_pdf_path) - - """ - Remove the intermediate files which are generated in the process of paragraph processing if debug_mode is simple - """ - if para_debug_mode is not None: - for fpath in os.listdir(output_dir): - if fpath.endswith(".json") and "stage" in fpath: - os.remove(os.path.join(output_dir, fpath)) - - return pdf_dic, error_info - - -""" -Run this script to test the function with Command: - -python detect_para.py [pdf_path] [output_pdf_path] - -Params: -- pdf_path: the path of the pdf file -- output_pdf_path: the path of the output pdf file -""" - -if __name__ == "__main__": - DEFAULT_PDF_PATH = ( - "app/pdf_toolbox/tests/assets/paper/paper.pdf" if os.name != "nt" else "app\\pdf_toolbox\\tests\\assets\\paper\\paper.pdf" - ) - input_pdf_path = sys.argv[1] if len(sys.argv) > 1 else DEFAULT_PDF_PATH - output_pdf_path = sys.argv[2] if len(sys.argv) > 2 else input_pdf_path.split(".")[0] + "_recogPara.pdf" - output_json_path = sys.argv[3] if len(sys.argv) > 3 else input_pdf_path.split(".")[0] + "_recogPara.json" - - import stat - - # Remove existing output file if it exists - if os.path.exists(output_pdf_path): - os.chmod(output_pdf_path, stat.S_IWRITE) - os.remove(output_pdf_path) - - input_pdf_doc = open_pdf(input_pdf_path) - - # postprocess the paragraphs - paraProcessPipeline = ParaProcessPipeline() - - # parse paragraph and save to json file - pdf_dic = {} - - blockInnerParasProcessor = BlockTerminationProcessor() - - """ - Construct the pdf dictionary. - """ - - for page_id, page in enumerate(input_pdf_doc): # type: ignore - # print(f"Processing page {page_id}") - # print(f"page: {page}") - raw_blocks = page.get_text("dict")["blocks"] - - # Save text blocks to "preproc_blocks" - preproc_blocks = [] - for block in raw_blocks: - if block["type"] == 0: - preproc_blocks.append(block) - - layout_bboxes = [] - - # Construct the pdf dictionary as schema above - page_dict = { - "para_blocks": None, - "preproc_blocks": preproc_blocks, - "images": None, - "tables": None, - "interline_equations": None, - "inline_equations": None, - "layout_bboxes": None, - "pymu_raw_blocks": None, - "global_statistic": None, - "droped_text_block": None, - "droped_image_block": None, - "droped_table_block": None, - "image_backup": None, - "table_backup": None, - } - - pdf_dic[f"page_{page_id}"] = page_dict - - # print(f"pdf_dic: {pdf_dic}") - - with open(output_json_path, "w", encoding="utf-8") as f: - json.dump(pdf_dic, f, ensure_ascii=False, indent=4) - - pdf_dic = paraProcessPipeline.para_process_pipeline(output_json_path, input_pdf_doc, output_pdf_path) diff --git a/magic_pdf/post_proc/pdf_post_filter.py b/magic_pdf/post_proc/pdf_post_filter.py deleted file mode 100644 index 862e66607..000000000 --- a/magic_pdf/post_proc/pdf_post_filter.py +++ /dev/null @@ -1,67 +0,0 @@ -from loguru import logger - -from magic_pdf.layout.layout_sort import get_columns_cnt_of_layout -from magic_pdf.libs.drop_reason import DropReason - - -def __is_pseudo_single_column(page_info) -> bool: - """ - 判断一个页面是否伪单列。 - - Args: - page_info (dict): 页面信息字典,包括'_layout_tree'和'preproc_blocks'。 - - Returns: - Tuple[bool, Optional[str]]: 如果页面伪单列返回(True, extra_info),否则返回(False, None)。 - - """ - layout_tree = page_info['_layout_tree'] - layout_column_width = get_columns_cnt_of_layout(layout_tree) - if layout_column_width == 1: - text_blocks = page_info['preproc_blocks'] - # 遍历每一个text_block - for text_block in text_blocks: - lines = text_block['lines'] - num_lines = len(lines) - num_satisfying_lines = 0 - - for i in range(num_lines - 1): - current_line = lines[i] - next_line = lines[i + 1] - - # 获取当前line和下一个line的bbox属性 - current_bbox = current_line['bbox'] - next_bbox = next_line['bbox'] - - # 检查是否满足条件 - if next_bbox[0] > current_bbox[2] or next_bbox[2] < current_bbox[0]: - num_satisfying_lines += 1 - # 如果有一半以上的line满足条件,就drop - # print("num_satisfying_lines:", num_satisfying_lines, "num_lines:", num_lines) - if num_lines > 20: - radio = num_satisfying_lines / num_lines - if radio >= 0.5: - extra_info = f"{{num_lines: {num_lines}, num_satisfying_lines: {num_satisfying_lines}}}" - block_text = [] - for line in lines: - if line['spans']: - for span in line['spans']: - block_text.append(span['text']) - logger.warning(f"pseudo_single_column block_text: {block_text}") - return True, extra_info - - return False, None - - -def pdf_post_filter(page_info) -> tuple: - """ - return:(True|False, err_msg) - True, 如果pdf符合要求 - False, 如果pdf不符合要求 - - """ - bool_is_pseudo_single_column, extra_info = __is_pseudo_single_column(page_info) - if bool_is_pseudo_single_column: - return False, {"_need_drop": True, "_drop_reason": DropReason.PSEUDO_SINGLE_COLUMN, "extra_info": extra_info} - - return True, None \ No newline at end of file diff --git a/magic_pdf/post_proc/remove_footnote.py b/magic_pdf/post_proc/remove_footnote.py deleted file mode 100644 index 976d3a6a4..000000000 --- a/magic_pdf/post_proc/remove_footnote.py +++ /dev/null @@ -1,153 +0,0 @@ -from magic_pdf.libs.boxbase import _is_in, _is_in_or_part_overlap -import collections # 统计库 - - - -def is_below(bbox1, bbox2): - # 如果block1的上边y坐标大于block2的下边y坐标,那么block1在block2下面 - return bbox1[1] > bbox2[3] - - -def merge_bboxes(bboxes): - # 找出所有blocks的最小x0,最大y1,最大x1,最小y0,这就是合并后的bbox - x0 = min(bbox[0] for bbox in bboxes) - y0 = min(bbox[1] for bbox in bboxes) - x1 = max(bbox[2] for bbox in bboxes) - y1 = max(bbox[3] for bbox in bboxes) - return [x0, y0, x1, y1] - - -def merge_footnote_blocks(page_info, main_text_font): - page_info['merged_bboxes'] = [] - for layout in page_info['layout_bboxes']: - # 找出layout中的所有footnote blocks和preproc_blocks - footnote_bboxes = [block for block in page_info['footnote_bboxes_tmp'] if _is_in(block, layout['layout_bbox'])] - # 如果没有footnote_blocks,就跳过这个layout - if not footnote_bboxes: - continue - - preproc_blocks = [block for block in page_info['preproc_blocks'] if _is_in(block['bbox'], layout['layout_bbox'])] - # preproc_bboxes = [block['bbox'] for block in preproc_blocks] - font_names = collections.Counter() - if len(preproc_blocks) > 0: - # 存储每一行的文本块大小的列表 - line_sizes = [] - # 存储每个文本块的平均行大小 - block_sizes = [] - for block in preproc_blocks: - block_line_sizes = [] - block_fonts = collections.Counter() - for line in block['lines']: - # 提取每个span的size属性,并计算行大小 - span_sizes = [span['size'] for span in line['spans'] if 'size' in span] - if span_sizes: - line_size = sum(span_sizes) / len(span_sizes) - line_sizes.append(line_size) - block_line_sizes.append(line_size) - span_font = [(span['font'], len(span['text'])) for span in line['spans'] if - 'font' in span and len(span['text']) > 0] - if span_font: - # # todo main_text_font应该用基于字数最多的字体而不是span级别的统计 - # font_names.append(font_name for font_name in span_font) - # block_fonts.append(font_name for font_name in span_font) - for font, count in span_font: - # font_names.extend([font] * count) - # block_fonts.extend([font] * count) - font_names[font] += count - block_fonts[font] += count - if block_line_sizes: - # 计算文本块的平均行大小 - block_size = sum(block_line_sizes) / len(block_line_sizes) - block_font = block_fonts.most_common(1)[0][0] - block_sizes.append((block, block_size, block_font)) - - # 计算main_text_size - # main_text_font = font_names.most_common(1)[0][0] - main_text_size = collections.Counter(line_sizes).most_common(1)[0][0] - else: - continue - - need_merge_bboxes = [] - # 任何一个下面有正文block的footnote bbox都是假footnote - for footnote_bbox in footnote_bboxes: - # 检测footnote下面是否有正文block(正文block需满足,block平均size大于等于main_text_size,且block行数大于等于5) - main_text_bboxes_below = [block['bbox'] for block, size, block_font in block_sizes if - is_below(block['bbox'], footnote_bbox) and - sum([size >= main_text_size, - len(block['lines']) >= 5, - block_font == main_text_font]) - >= 2] - # 如果main_text_bboxes_below不为空,说明footnote下面有正文block,这个footnote不成立,跳过 - if len(main_text_bboxes_below) > 0: - continue - else: - # 否则,说明footnote下面没有正文block,这个footnote成立,添加到待merge的footnote_bboxes中 - need_merge_bboxes.append(footnote_bbox) - if len(need_merge_bboxes) == 0: - continue - # 找出最靠上的footnote block - top_footnote_bbox = min(need_merge_bboxes, key=lambda bbox: bbox[1]) - # 找出所有在top_footnote_block下面的preproc_blocks,并确保这些preproc_blocks的平均行大小小于main_text_size - bboxes_below = [block['bbox'] for block, size, block_font in block_sizes if is_below(block['bbox'], top_footnote_bbox)] - # # 找出所有在top_footnote_block下面的preproc_blocks - # bboxes_below = [bbox for bbox in preproc_bboxes if is_below(bbox, top_footnote_bbox)] - # 合并top_footnote_block和blocks_below - merged_bbox = merge_bboxes([top_footnote_bbox] + bboxes_below) - # 添加到新的footnote_bboxes_tmp中 - page_info['merged_bboxes'].append(merged_bbox) - return page_info - - -def remove_footnote_blocks(page_info): - if page_info.get('merged_bboxes'): - # 从文字中去掉footnote - remain_text_blocks, removed_footnote_text_blocks = remove_footnote_text(page_info['preproc_blocks'], page_info['merged_bboxes']) - # 从图片中去掉footnote - image_blocks, removed_footnote_imgs_blocks = remove_footnote_image(page_info['images'], page_info['merged_bboxes']) - # 更新page_info - page_info['preproc_blocks'] = remain_text_blocks - page_info['images'] = image_blocks - page_info['droped_text_block'].extend(removed_footnote_text_blocks) - page_info['droped_image_block'].extend(removed_footnote_imgs_blocks) - # 删除footnote_bboxes_tmp和merged_bboxes - del page_info['merged_bboxes'] - del page_info['footnote_bboxes_tmp'] - return page_info - - -def remove_footnote_text(raw_text_block, footnote_bboxes): - """ - :param raw_text_block: str类型,是当前页的文本内容 - :param footnoteBboxes: list类型,是当前页的脚注bbox - """ - footnote_text_blocks = [] - for block in raw_text_block: - text_bbox = block['bbox'] - # TODO 更严谨点在line级别做 - if any([_is_in_or_part_overlap(text_bbox, footnote_bbox) for footnote_bbox in footnote_bboxes]): - # if any([text_bbox[3]>=footnote_bbox[1] for footnote_bbox in footnote_bboxes]): - block['tag'] = 'footnote' - footnote_text_blocks.append(block) - # raw_text_block.remove(block) - - # 移除,不能再内部移除,否则会出错 - for block in footnote_text_blocks: - raw_text_block.remove(block) - - return raw_text_block, footnote_text_blocks - - -def remove_footnote_image(image_blocks, footnote_bboxes): - """ - :param image_bboxes: list类型,是当前页的图片bbox(结构体) - :param footnoteBboxes: list类型,是当前页的脚注bbox - """ - footnote_imgs_blocks = [] - for image_block in image_blocks: - if any([_is_in(image_block['bbox'], footnote_bbox) for footnote_bbox in footnote_bboxes]): - footnote_imgs_blocks.append(image_block) - - for footnote_imgs_block in footnote_imgs_blocks: - image_blocks.remove(footnote_imgs_block) - - return image_blocks, footnote_imgs_blocks \ No newline at end of file diff --git a/magic_pdf/pre_proc/__init__.py b/magic_pdf/pre_proc/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/pre_proc/citationmarker_remove.py b/magic_pdf/pre_proc/citationmarker_remove.py deleted file mode 100644 index cb69e238a..000000000 --- a/magic_pdf/pre_proc/citationmarker_remove.py +++ /dev/null @@ -1,161 +0,0 @@ -""" -去掉正文的引文引用marker -https://aicarrier.feishu.cn/wiki/YLOPwo1PGiwFRdkwmyhcZmr0n3d -""" -import re -# from magic_pdf.libs.nlp_utils import NLPModels - - -# __NLP_MODEL = NLPModels() - -def check_1(spans, cur_span_i): - """寻找前一个char,如果是句号,逗号,那么就是角标""" - if cur_span_i==0: - return False # 不是角标 - pre_span = spans[cur_span_i-1] - pre_char = pre_span['chars'][-1]['c'] - if pre_char in ['。', ',', '.', ',']: - return True - - return False - - -# def check_2(spans, cur_span_i): -# """检查前面一个span的最后一个单词,如果长度大于5,全都是字母,并且不含大写,就是角标""" -# pattern = r'\b[A-Z]\.\s[A-Z][a-z]*\b' # 形如A. Bcde, L. Bcde, 人名的缩写 -# -# if cur_span_i==0 and len(spans)>1: -# next_span = spans[cur_span_i+1] -# next_txt = "".join([c['c'] for c in next_span['chars']]) -# result = __NLP_MODEL.detect_entity_catgr_using_nlp(next_txt) -# if result in ["PERSON", "GPE", "ORG"]: -# return True -# -# if re.findall(pattern, next_txt): -# return True -# -# return False # 不是角标 -# elif cur_span_i==0 and len(spans)==1: # 角标占用了整行?谨慎删除 -# return False -# -# # 如果这个span是最后一个span, -# if cur_span_i==len(spans)-1: -# pre_span = spans[cur_span_i-1] -# pre_txt = "".join([c['c'] for c in pre_span['chars']]) -# pre_word = pre_txt.split(' ')[-1] -# result = __NLP_MODEL.detect_entity_catgr_using_nlp(pre_txt) -# if result in ["PERSON", "GPE", "ORG"]: -# return True -# -# if re.findall(pattern, pre_txt): -# return True -# -# return len(pre_word) > 5 and pre_word.isalpha() and pre_word.islower() -# else: # 既不是第一个span,也不是最后一个span,那么此时检查一下这个角标距离前后哪个单词更近就属于谁的角标 -# pre_span = spans[cur_span_i-1] -# next_span = spans[cur_span_i+1] -# cur_span = spans[cur_span_i] -# # 找到前一个和后一个span里的距离最近的单词 -# pre_distance = 10000 # 一个很大的数 -# next_distance = 10000 # 一个很大的数 -# for c in pre_span['chars'][::-1]: -# if c['c'].isalpha(): -# pre_distance = cur_span['bbox'][0] - c['bbox'][2] -# break -# for c in next_span['chars']: -# if c['c'].isalpha(): -# next_distance = c['bbox'][0] - cur_span['bbox'][2] -# break -# -# if pre_distance 5 and pre_word.isalpha() and pre_word.islower() - - -def check_3(spans, cur_span_i): - """上标里有[], 有*, 有-, 有逗号""" - # 如[2-3],[22] - # 如 2,3,4 - cur_span_txt = ''.join(c['c'] for c in spans[cur_span_i]['chars']).strip() - bad_char = ['[', ']', '*', ','] - - if any([c in cur_span_txt for c in bad_char]) and any(character.isdigit() for character in cur_span_txt): - return True - - # 如2-3, a-b - patterns = [r'\d+-\d+', r'[a-zA-Z]-[a-zA-Z]', r'[a-zA-Z],[a-zA-Z]'] - for pattern in patterns: - match = re.match(pattern, cur_span_txt) - if match is not None: - return True - - return False - - -def remove_citation_marker(with_char_text_blcoks): - for blk in with_char_text_blcoks: - for line in blk['lines']: - # 如果span里的个数少于2个,那只能忽略,角标不可能自己独占一行 - if len(line['spans'])<=1: - continue - - # 找到高度最高的span作为位置比较的基准 - max_hi_span = line['spans'][0]['bbox'] - min_font_sz = 10000 # line里最小的字体 - max_font_sz = 0 # line里最大的字体 - - for s in line['spans']: - if max_hi_span[3]-max_hi_span[1]s['size']: - min_font_sz = s['size'] - if max_font_sz0.2 or (base_span_mid_y-span_mid_y>0 and abs(span_font_sz-min_font_sz)/min_font_sz<0.1): - """ - 1. 它的前一个char如果是句号或者逗号的话,那么肯定是角标而不是公式 - 2. 如果这个角标的前面是一个单词(长度大于5)而不是任何大写或小写的短字母的话 应该也是角标 - 3. 上标里有数字和逗号或者数字+星号的组合,方括号,一般肯定就是角标了 - 4. 这个角标属于前文还是后文要根据距离来判断,如果距离前面的文本太近,那么就是前面的角标,否则就是后面的角标 - """ - if (check_1(line['spans'], i) or - # check_2(line['spans'], i) or - check_3(line['spans'], i) - ): - """删除掉这个角标:删除这个span, 同时还要更新line的text""" - span_to_del.append(span) - if len(span_to_del)>0: - for span in span_to_del: - line['spans'].remove(span) - line['text'] = ''.join([c['c'] for s in line['spans'] for c in s['chars']]) - - return with_char_text_blcoks diff --git a/magic_pdf/pre_proc/construct_page_dict.py b/magic_pdf/pre_proc/construct_page_dict.py deleted file mode 100644 index c2f83c100..000000000 --- a/magic_pdf/pre_proc/construct_page_dict.py +++ /dev/null @@ -1,72 +0,0 @@ -def construct_page_component(page_id, image_info, table_info, text_blocks_preproc, layout_bboxes, inline_eq_info, - interline_eq_info, raw_pymu_blocks, - removed_text_blocks, removed_image_blocks, images_backup, droped_table_block, table_backup, - layout_tree, - page_w, page_h, footnote_bboxes_tmp): - """ - - """ - return_dict = {} - - return_dict['para_blocks'] = {} - return_dict['preproc_blocks'] = text_blocks_preproc - return_dict['images'] = image_info - return_dict['tables'] = table_info - return_dict['interline_equations'] = interline_eq_info - return_dict['inline_equations'] = inline_eq_info - return_dict['layout_bboxes'] = layout_bboxes - return_dict['pymu_raw_blocks'] = raw_pymu_blocks - return_dict['global_statistic'] = {} - - return_dict['droped_text_block'] = removed_text_blocks - return_dict['droped_image_block'] = removed_image_blocks - return_dict['droped_table_block'] = [] - return_dict['image_backup'] = images_backup - return_dict['table_backup'] = [] - return_dict['page_idx'] = page_id - return_dict['page_size'] = [page_w, page_h] - return_dict['_layout_tree'] = layout_tree # 辅助分析layout作用 - return_dict['footnote_bboxes_tmp'] = footnote_bboxes_tmp - - return return_dict - - -def ocr_construct_page_component(blocks, layout_bboxes, page_id, page_w, page_h, layout_tree, - images, tables, interline_equations, inline_equations, - dropped_text_block, dropped_image_block, dropped_table_block, dropped_equation_block, - need_remove_spans_bboxes_dict): - return_dict = { - 'preproc_blocks': blocks, - 'layout_bboxes': layout_bboxes, - 'page_idx': page_id, - 'page_size': [page_w, page_h], - '_layout_tree': layout_tree, - 'images': images, - 'tables': tables, - 'interline_equations': interline_equations, - 'inline_equations': inline_equations, - 'droped_text_block': dropped_text_block, - 'droped_image_block': dropped_image_block, - 'droped_table_block': dropped_table_block, - 'dropped_equation_block': dropped_equation_block, - 'droped_bboxes': need_remove_spans_bboxes_dict, - } - return return_dict - - -def ocr_construct_page_component_v2(blocks, layout_bboxes, page_id, page_w, page_h, layout_tree, - images, tables, interline_equations, discarded_blocks, need_drop, drop_reason): - return_dict = { - 'preproc_blocks': blocks, - 'layout_bboxes': layout_bboxes, - 'page_idx': page_id, - 'page_size': [page_w, page_h], - '_layout_tree': layout_tree, - 'images': images, - 'tables': tables, - 'interline_equations': interline_equations, - 'discarded_blocks': discarded_blocks, - 'need_drop': need_drop, - 'drop_reason': drop_reason, - } - return return_dict diff --git a/magic_pdf/pre_proc/cut_image.py b/magic_pdf/pre_proc/cut_image.py deleted file mode 100644 index 18ee65129..000000000 --- a/magic_pdf/pre_proc/cut_image.py +++ /dev/null @@ -1,71 +0,0 @@ -from loguru import logger - -from magic_pdf.libs.commons import join_path -from magic_pdf.libs.ocr_content_type import ContentType -from magic_pdf.libs.pdf_image_tools import cut_image - - -def ocr_cut_image_and_table(spans, page, page_id, pdf_bytes_md5, imageWriter): - def return_path(type): - return join_path(pdf_bytes_md5, type) - - for span in spans: - span_type = span['type'] - if span_type == ContentType.Image: - if not check_img_bbox(span['bbox']): - continue - span['image_path'] = cut_image(span['bbox'], page_id, page, return_path=return_path('images'), - imageWriter=imageWriter) - elif span_type == ContentType.Table: - if not check_img_bbox(span['bbox']): - continue - span['image_path'] = cut_image(span['bbox'], page_id, page, return_path=return_path('tables'), - imageWriter=imageWriter) - - return spans - - -def txt_save_images_by_bboxes(page_num: int, page, pdf_bytes_md5: str, - image_bboxes: list, images_overlap_backup: list, table_bboxes: list, - equation_inline_bboxes: list, - equation_interline_bboxes: list, imageWriter) -> dict: - """ - 返回一个dict, key为bbox, 值是图片地址 - """ - image_info = [] - image_backup_info = [] - table_info = [] - inline_eq_info = [] - interline_eq_info = [] - - # 图片的保存路径组成是这样的: {s3_or_local_path}/{book_name}/{images|tables|equations}/{page_num}_{bbox[0]}_{bbox[1]}_{bbox[2]}_{bbox[3]}.jpg - - def return_path(type): - return join_path(pdf_bytes_md5, type) - - for bbox in image_bboxes: - if not check_img_bbox(bbox): - continue - image_path = cut_image(bbox, page_num, page, return_path("images"), imageWriter) - image_info.append({"bbox": bbox, "image_path": image_path}) - - for bbox in images_overlap_backup: - if not check_img_bbox(bbox): - continue - image_path = cut_image(bbox, page_num, page, return_path("images"), imageWriter) - image_backup_info.append({"bbox": bbox, "image_path": image_path}) - - for bbox in table_bboxes: - if not check_img_bbox(bbox): - continue - image_path = cut_image(bbox, page_num, page, return_path("tables"), imageWriter) - table_info.append({"bbox": bbox, "image_path": image_path}) - - return image_info, image_backup_info, table_info, inline_eq_info, interline_eq_info - - -def check_img_bbox(bbox) -> bool: - if any([bbox[0] >= bbox[2], bbox[1] >= bbox[3]]): - logger.warning(f"image_bboxes: 错误的box, {bbox}") - return False - return True diff --git a/magic_pdf/pre_proc/detect_equation.py b/magic_pdf/pre_proc/detect_equation.py deleted file mode 100644 index f395030c4..000000000 --- a/magic_pdf/pre_proc/detect_equation.py +++ /dev/null @@ -1,134 +0,0 @@ -from magic_pdf.libs.boxbase import _is_in, calculate_overlap_area_2_minbox_area_ratio # 正则 -from magic_pdf.libs.commons import fitz # pyMuPDF库 - - -def __solve_contain_bboxs(all_bbox_list: list): - - """将两个公式的bbox做判断是否有包含关系,若有的话则删掉较小的bbox""" - - dump_list = [] - for i in range(len(all_bbox_list)): - for j in range(i + 1, len(all_bbox_list)): - # 获取当前两个值 - bbox1 = all_bbox_list[i][:4] - bbox2 = all_bbox_list[j][:4] - - # 删掉较小的框 - if _is_in(bbox1, bbox2): - dump_list.append(all_bbox_list[i]) - elif _is_in(bbox2, bbox1): - dump_list.append(all_bbox_list[j]) - else: - ratio = calculate_overlap_area_2_minbox_area_ratio(bbox1, bbox2) - if ratio > 0.7: - s1 = (bbox1[2] - bbox1[0]) * (bbox1[3] - bbox1[1]) - s2 = (bbox2[2] - bbox2[0]) * (bbox2[3] - bbox2[1]) - if s2 > s1: - dump_list.append(all_bbox_list[i]) - else: - dump_list.append(all_bbox_list[i]) - - # 遍历需要删除的列表中的每个元素 - for item in dump_list: - - while item in all_bbox_list: - all_bbox_list.remove(item) - return all_bbox_list - - -def parse_equations(page_ID: int, page: fitz.Page, json_from_DocXchain_obj: dict): - """ - :param page_ID: int类型,当前page在当前pdf文档中是第page_D页。 - :param page :fitz读取的当前页的内容 - :param res_dir_path: str类型,是每一个pdf文档,在当前.py文件的目录下生成一个与pdf文档同名的文件夹,res_dir_path就是文件夹的dir - :param json_from_DocXchain_obj: dict类型,把pdf文档送入DocXChain模型中后,提取bbox,结果保存到pdf文档同名文件夹下的 page_ID.json文件中了。json_from_DocXchain_obj就是打开后的dict - """ - DPI = 72 # use this resolution - pix = page.get_pixmap(dpi=DPI) - pageL = 0 - pageR = int(pix.w) - pageU = 0 - pageD = int(pix.h) - - - #--------- 通过json_from_DocXchain来获取 table ---------# - equationEmbedding_from_DocXChain_bboxs = [] - equationIsolated_from_DocXChain_bboxs = [] - - xf_json = json_from_DocXchain_obj - width_from_json = xf_json['page_info']['width'] - height_from_json = xf_json['page_info']['height'] - LR_scaleRatio = width_from_json / (pageR - pageL) - UD_scaleRatio = height_from_json / (pageD - pageU) - - for xf in xf_json['layout_dets']: - # {0: 'title', 1: 'figure', 2: 'plain text', 3: 'header', 4: 'page number', 5: 'footnote', 6: 'footer', 7: 'table', 8: 'table caption', 9: 'figure caption', 10: 'equation', 11: 'full column', 12: 'sub column'} - L = xf['poly'][0] / LR_scaleRatio - U = xf['poly'][1] / UD_scaleRatio - R = xf['poly'][2] / LR_scaleRatio - D = xf['poly'][5] / UD_scaleRatio - # L += pageL # 有的页面,artBox偏移了。不在(0,0) - # R += pageL - # U += pageU - # D += pageU - L, R = min(L, R), max(L, R) - U, D = min(U, D), max(U, D) - # equation - img_suffix = f"{page_ID}_{int(L)}_{int(U)}_{int(R)}_{int(D)}" - if xf['category_id'] == 13 and xf['score'] >= 0.3: - latex_text = xf.get("latex", "EmptyInlineEquationResult") - debugable_latex_text = f"{latex_text}|{img_suffix}" - equationEmbedding_from_DocXChain_bboxs.append((L, U, R, D, latex_text)) - if xf['category_id'] == 14 and xf['score'] >= 0.3: - latex_text = xf.get("latex", "EmptyInterlineEquationResult") - debugable_latex_text = f"{latex_text}|{img_suffix}" - equationIsolated_from_DocXChain_bboxs.append((L, U, R, D, latex_text)) - - #---------------------------------------- 排序,编号,保存 -----------------------------------------# - equationIsolated_from_DocXChain_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - equationIsolated_from_DocXChain_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - - equationEmbedding_from_DocXChain_names = [] - equationEmbedding_ID = 0 - - equationIsolated_from_DocXChain_names = [] - equationIsolated_ID = 0 - - for L, U, R, D, _ in equationEmbedding_from_DocXChain_bboxs: - if not(L < R and U < D): - continue - try: - # cur_equation = page.get_pixmap(clip=(L,U,R,D)) - new_equation_name = "equationEmbedding_{}_{}.png".format(page_ID, equationEmbedding_ID) # 公式name - # cur_equation.save(res_dir_path + '/' + new_equation_name) # 把公式存出在新建的文件夹,并命名 - equationEmbedding_from_DocXChain_names.append(new_equation_name) # 把公式的名字存在list中,方便在md中插入引用 - equationEmbedding_ID += 1 - except: - pass - - for L, U, R, D, _ in equationIsolated_from_DocXChain_bboxs: - if not(L < R and U < D): - continue - try: - # cur_equation = page.get_pixmap(clip=(L,U,R,D)) - new_equation_name = "equationEmbedding_{}_{}.png".format(page_ID, equationIsolated_ID) # 公式name - # cur_equation.save(res_dir_path + '/' + new_equation_name) # 把公式存出在新建的文件夹,并命名 - equationIsolated_from_DocXChain_names.append(new_equation_name) # 把公式的名字存在list中,方便在md中插入引用 - equationIsolated_ID += 1 - except: - pass - - equationEmbedding_from_DocXChain_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - equationIsolated_from_DocXChain_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - - - """根据pdf可视区域,调整bbox的坐标""" - cropbox = page.cropbox - if cropbox[0]!=page.rect[0] or cropbox[1]!=page.rect[1]: - for eq_box in equationEmbedding_from_DocXChain_bboxs: - eq_box = [eq_box[0]+cropbox[0], eq_box[1]+cropbox[1], eq_box[2]+cropbox[0], eq_box[3]+cropbox[1], eq_box[4]] - for eq_box in equationIsolated_from_DocXChain_bboxs: - eq_box = [eq_box[0]+cropbox[0], eq_box[1]+cropbox[1], eq_box[2]+cropbox[0], eq_box[3]+cropbox[1], eq_box[4]] - - deduped_embedding_eq_bboxes = __solve_contain_bboxs(equationEmbedding_from_DocXChain_bboxs) - return deduped_embedding_eq_bboxes, equationIsolated_from_DocXChain_bboxs diff --git a/magic_pdf/pre_proc/detect_footer_by_model.py b/magic_pdf/pre_proc/detect_footer_by_model.py deleted file mode 100644 index 0c1fbf38b..000000000 --- a/magic_pdf/pre_proc/detect_footer_by_model.py +++ /dev/null @@ -1,64 +0,0 @@ -from magic_pdf.libs.commons import fitz # pyMuPDF库 -from magic_pdf.libs.coordinate_transform import get_scale_ratio - - -def parse_footers(page_ID: int, page: fitz.Page, json_from_DocXchain_obj: dict): - """ - :param page_ID: int类型,当前page在当前pdf文档中是第page_D页。 - :param page :fitz读取的当前页的内容 - :param res_dir_path: str类型,是每一个pdf文档,在当前.py文件的目录下生成一个与pdf文档同名的文件夹,res_dir_path就是文件夹的dir - :param json_from_DocXchain_obj: dict类型,把pdf文档送入DocXChain模型中后,提取bbox,结果保存到pdf文档同名文件夹下的 page_ID.json文件中了。json_from_DocXchain_obj就是打开后的dict - """ - - #--------- 通过json_from_DocXchain来获取 footer ---------# - footer_bbox_from_DocXChain = [] - - xf_json = json_from_DocXchain_obj - horizontal_scale_ratio, vertical_scale_ratio = get_scale_ratio(xf_json, page) - - # {0: 'title', # 标题 - # 1: 'figure', # 图片 - # 2: 'plain text', # 文本 - # 3: 'header', # 页眉 - # 4: 'page number', # 页码 - # 5: 'footnote', # 脚注 - # 6: 'footer', # 页脚 - # 7: 'table', # 表格 - # 8: 'table caption', # 表格描述 - # 9: 'figure caption', # 图片描述 - # 10: 'equation', # 公式 - # 11: 'full column', # 单栏 - # 12: 'sub column', # 多栏 - # 13: 'embedding', # 嵌入公式 - # 14: 'isolated'} # 单行公式 - for xf in xf_json['layout_dets']: - L = xf['poly'][0] / horizontal_scale_ratio - U = xf['poly'][1] / vertical_scale_ratio - R = xf['poly'][2] / horizontal_scale_ratio - D = xf['poly'][5] / vertical_scale_ratio - # L += pageL # 有的页面,artBox偏移了。不在(0,0) - # R += pageL - # U += pageU - # D += pageU - L, R = min(L, R), max(L, R) - U, D = min(U, D), max(U, D) - if xf['category_id'] == 6 and xf['score'] >= 0.3: - footer_bbox_from_DocXChain.append((L, U, R, D)) - - - footer_final_names = [] - footer_final_bboxs = [] - footer_ID = 0 - for L, U, R, D in footer_bbox_from_DocXChain: - # cur_footer = page.get_pixmap(clip=(L,U,R,D)) - new_footer_name = "footer_{}_{}.png".format(page_ID, footer_ID) # 脚注name - # cur_footer.save(res_dir_path + '/' + new_footer_name) # 把页脚存储在新建的文件夹,并命名 - footer_final_names.append(new_footer_name) # 把脚注的名字存在list中 - footer_final_bboxs.append((L, U, R, D)) - footer_ID += 1 - - - footer_final_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - curPage_all_footer_bboxs = footer_final_bboxs - return curPage_all_footer_bboxs - diff --git a/magic_pdf/pre_proc/detect_footer_header_by_statistics.py b/magic_pdf/pre_proc/detect_footer_header_by_statistics.py deleted file mode 100644 index 340965d0e..000000000 --- a/magic_pdf/pre_proc/detect_footer_header_by_statistics.py +++ /dev/null @@ -1,284 +0,0 @@ -from collections import defaultdict - -from magic_pdf.libs.boxbase import calculate_iou - - -def compare_bbox_with_list(bbox, bbox_list, tolerance=1): - return any(all(abs(a - b) < tolerance for a, b in zip(bbox, common_bbox)) for common_bbox in bbox_list) - -def is_single_line_block(block): - # Determine based on the width and height of the block - block_width = block["X1"] - block["X0"] - block_height = block["bbox"][3] - block["bbox"][1] - - # If the height of the block is close to the average character height and the width is large, it is considered a single line - return block_height <= block["avg_char_height"] * 3 and block_width > block["avg_char_width"] * 3 - -def get_most_common_bboxes(bboxes, page_height, position="top", threshold=0.25, num_bboxes=3, min_frequency=2): - """ - This function gets the most common bboxes from the bboxes - - Parameters - ---------- - bboxes : list - bboxes - page_height : float - height of the page - position : str, optional - "top" or "bottom", by default "top" - threshold : float, optional - threshold, by default 0.25 - num_bboxes : int, optional - number of bboxes to return, by default 3 - min_frequency : int, optional - minimum frequency of the bbox, by default 2 - - Returns - ------- - common_bboxes : list - common bboxes - """ - # Filter bbox by position - if position == "top": - filtered_bboxes = [bbox for bbox in bboxes if bbox[1] < page_height * threshold] - else: - filtered_bboxes = [bbox for bbox in bboxes if bbox[3] > page_height * (1 - threshold)] - - # Find the most common bbox - bbox_count = defaultdict(int) - for bbox in filtered_bboxes: - bbox_count[tuple(bbox)] += 1 - - # Get the most frequently occurring bbox, but only consider it when the frequency exceeds min_frequency - common_bboxes = [ - bbox for bbox, count in sorted(bbox_count.items(), key=lambda item: item[1], reverse=True) if count >= min_frequency - ][:num_bboxes] - return common_bboxes - -def detect_footer_header2(result_dict, similarity_threshold=0.5): - """ - This function detects the header and footer of the document. - - Parameters - ---------- - result_dict : dict - result dictionary - - Returns - ------- - result_dict : dict - result dictionary - """ - # Traverse all blocks in the document - single_line_blocks = 0 - total_blocks = 0 - single_line_blocks = 0 - - for page_id, blocks in result_dict.items(): - if page_id.startswith("page_"): - for block_key, block in blocks.items(): - if block_key.startswith("block_"): - total_blocks += 1 - if is_single_line_block(block): - single_line_blocks += 1 - - # If there are no blocks, skip the header and footer detection - if total_blocks == 0: - print("No blocks found. Skipping header/footer detection.") - return result_dict - - # If most of the blocks are single-line, skip the header and footer detection - if single_line_blocks / total_blocks > 0.5: # 50% of the blocks are single-line - # print("Skipping header/footer detection for text-dense document.") - return result_dict - - # Collect the bounding boxes of all blocks - all_bboxes = [] - all_texts = [] - - for page_id, blocks in result_dict.items(): - if page_id.startswith("page_"): - for block_key, block in blocks.items(): - if block_key.startswith("block_"): - all_bboxes.append(block["bbox"]) - - # Get the height of the page - page_height = max(bbox[3] for bbox in all_bboxes) - - # Get the most common bbox lists for headers and footers - common_header_bboxes = get_most_common_bboxes(all_bboxes, page_height, position="top") if all_bboxes else [] - common_footer_bboxes = get_most_common_bboxes(all_bboxes, page_height, position="bottom") if all_bboxes else [] - - # Detect and mark headers and footers - for page_id, blocks in result_dict.items(): - if page_id.startswith("page_"): - for block_key, block in blocks.items(): - if block_key.startswith("block_"): - bbox = block["bbox"] - text = block["text"] - - is_header = compare_bbox_with_list(bbox, common_header_bboxes) - is_footer = compare_bbox_with_list(bbox, common_footer_bboxes) - block["is_header"] = int(is_header) - block["is_footer"] = int(is_footer) - - return result_dict - - -def __get_page_size(page_sizes:list): - """ - 页面大小可能不一样 - """ - w = sum([w for w,h in page_sizes])/len(page_sizes) - h = sum([h for w,h in page_sizes])/len(page_sizes) - return w, h - -def __calculate_iou(bbox1, bbox2): - iou = calculate_iou(bbox1, bbox2) - return iou - -def __is_same_pos(box1, box2, iou_threshold): - iou = __calculate_iou(box1, box2) - return iou >= iou_threshold - - -def get_most_common_bbox(bboxes:list, page_size:list, page_cnt:int, page_range_threshold=0.2, iou_threshold=0.9): - """ - common bbox必须大于page_cnt的1/3 - """ - min_occurance_cnt = max(3, page_cnt//4) - header_det_bbox = [] - footer_det_bbox = [] - - hdr_same_pos_group = [] - btn_same_pos_group = [] - - page_w, page_h = __get_page_size(page_size) - top_y, bottom_y = page_w*page_range_threshold, page_h*(1-page_range_threshold) - - top_bbox = [b for b in bboxes if b[3]bottom_y] - # 然后开始排序,寻找最经常出现的bbox, 寻找的时候如果IOU>iou_threshold就算是一个 - for i in range(0, len(top_bbox)): - hdr_same_pos_group.append([top_bbox[i]]) - for j in range(i+1, len(top_bbox)): - if __is_same_pos(top_bbox[i], top_bbox[j], iou_threshold): - #header_det_bbox = [min(top_bbox[i][0], top_bbox[j][0]), min(top_bbox[i][1], top_bbox[j][1]), max(top_bbox[i][2], top_bbox[j][2]), max(top_bbox[i][3],top_bbox[j][3])] - hdr_same_pos_group[i].append(top_bbox[j]) - - for i in range(0, len(bottom_bbox)): - btn_same_pos_group.append([bottom_bbox[i]]) - for j in range(i+1, len(bottom_bbox)): - if __is_same_pos(bottom_bbox[i], bottom_bbox[j], iou_threshold): - #footer_det_bbox = [min(bottom_bbox[i][0], bottom_bbox[j][0]), min(bottom_bbox[i][1], bottom_bbox[j][1]), max(bottom_bbox[i][2], bottom_bbox[j][2]), max(bottom_bbox[i][3],bottom_bbox[j][3])] - btn_same_pos_group[i].append(bottom_bbox[j]) - - # 然后看下每一组的bbox,是否符合大于page_cnt一定比例 - hdr_same_pos_group = [g for g in hdr_same_pos_group if len(g)>=min_occurance_cnt] - btn_same_pos_group = [g for g in btn_same_pos_group if len(g)>=min_occurance_cnt] - - # 平铺2个list[list] - hdr_same_pos_group = [bbox for g in hdr_same_pos_group for bbox in g] - btn_same_pos_group = [bbox for g in btn_same_pos_group for bbox in g] - # 寻找hdr_same_pos_group中的box[3]最大值,btn_same_pos_group中的box[1]最小值 - hdr_same_pos_group.sort(key=lambda b:b[3]) - btn_same_pos_group.sort(key=lambda b:b[1]) - - hdr_y = hdr_same_pos_group[-1][3] if hdr_same_pos_group else 0 - btn_y = btn_same_pos_group[0][1] if btn_same_pos_group else page_h - - header_det_bbox = [0, 0, page_w, hdr_y] - footer_det_bbox = [0, btn_y, page_w, page_h] - # logger.warning(f"header: {header_det_bbox}, footer: {footer_det_bbox}") - return header_det_bbox, footer_det_bbox, page_w, page_h - - -def drop_footer_header(pdf_info_dict:dict): - """ - 启用规则探测,在全局的视角上通过统计的方法。 - """ - header = [] - footer = [] - - all_text_bboxes = [blk['bbox'] for _, val in pdf_info_dict.items() for blk in val['preproc_blocks']] - image_bboxes = [img['bbox'] for _, val in pdf_info_dict.items() for img in val['images']] + [img['bbox'] for _, val in pdf_info_dict.items() for img in val['image_backup']] - page_size = [val['page_size'] for _, val in pdf_info_dict.items()] - page_cnt = len(pdf_info_dict.keys()) # 一共多少页 - header, footer, page_w, page_h = get_most_common_bbox(all_text_bboxes+image_bboxes, page_size, page_cnt) - - """" - 把范围扩展到页面水平的整个方向上 - """ - if header: - header = [0, 0, page_w, header[3]+1] - - if footer: - footer = [0, footer[1]-1, page_w, page_h] - - # 找到footer, header范围之后,针对每一页pdf,从text、图片中删除这些范围内的内容 - # 移除text block - - for _, page_info in pdf_info_dict.items(): - header_text_blk = [] - footer_text_blk = [] - for blk in page_info['preproc_blocks']: - blk_bbox = blk['bbox'] - if header and blk_bbox[3]<=header[3]: - blk['tag'] = "header" - header_text_blk.append(blk) - elif footer and blk_bbox[1]>=footer[1]: - blk['tag'] = "footer" - footer_text_blk.append(blk) - - # 放入text_block_droped中 - page_info['droped_text_block'].extend(header_text_blk) - page_info['droped_text_block'].extend(footer_text_blk) - - for blk in header_text_blk: - page_info['preproc_blocks'].remove(blk) - for blk in footer_text_blk: - page_info['preproc_blocks'].remove(blk) - - """接下来把footer、header上的图片也删除掉。图片包括正常的和backup的""" - header_image = [] - footer_image = [] - - for image_info in page_info['images']: - img_bbox = image_info['bbox'] - if header and img_bbox[3]<=header[3]: - image_info['tag'] = "header" - header_image.append(image_info) - elif footer and img_bbox[1]>=footer[1]: - image_info['tag'] = "footer" - footer_image.append(image_info) - - page_info['droped_image_block'].extend(header_image) - page_info['droped_image_block'].extend(footer_image) - - for img in header_image: - page_info['images'].remove(img) - for img in footer_image: - page_info['images'].remove(img) - - """接下来吧backup的图片也删除掉""" - header_image = [] - footer_image = [] - - for image_info in page_info['image_backup']: - img_bbox = image_info['bbox'] - if header and img_bbox[3]<=header[3]: - image_info['tag'] = "header" - header_image.append(image_info) - elif footer and img_bbox[1]>=footer[1]: - image_info['tag'] = "footer" - footer_image.append(image_info) - - page_info['droped_image_block'].extend(header_image) - page_info['droped_image_block'].extend(footer_image) - - for img in header_image: - page_info['image_backup'].remove(img) - for img in footer_image: - page_info['image_backup'].remove(img) - - return header, footer diff --git a/magic_pdf/pre_proc/detect_footnote.py b/magic_pdf/pre_proc/detect_footnote.py deleted file mode 100644 index 4f903c855..000000000 --- a/magic_pdf/pre_proc/detect_footnote.py +++ /dev/null @@ -1,170 +0,0 @@ -from collections import Counter -from magic_pdf.libs.commons import fitz # pyMuPDF库 -from magic_pdf.libs.coordinate_transform import get_scale_ratio - - -def parse_footnotes_by_model(page_ID: int, page: fitz.Page, json_from_DocXchain_obj: dict, md_bookname_save_path=None, debug_mode=False): - """ - :param page_ID: int类型,当前page在当前pdf文档中是第page_D页。 - :param page :fitz读取的当前页的内容 - :param res_dir_path: str类型,是每一个pdf文档,在当前.py文件的目录下生成一个与pdf文档同名的文件夹,res_dir_path就是文件夹的dir - :param json_from_DocXchain_obj: dict类型,把pdf文档送入DocXChain模型中后,提取bbox,结果保存到pdf文档同名文件夹下的 page_ID.json文件中了。json_from_DocXchain_obj就是打开后的dict - """ - - #--------- 通过json_from_DocXchain来获取 footnote ---------# - footnote_bbox_from_DocXChain = [] - - xf_json = json_from_DocXchain_obj - horizontal_scale_ratio, vertical_scale_ratio = get_scale_ratio(xf_json, page) - - # {0: 'title', # 标题 - # 1: 'figure', # 图片 - # 2: 'plain text', # 文本 - # 3: 'header', # 页眉 - # 4: 'page number', # 页码 - # 5: 'footnote', # 脚注 - # 6: 'footer', # 页脚 - # 7: 'table', # 表格 - # 8: 'table caption', # 表格描述 - # 9: 'figure caption', # 图片描述 - # 10: 'equation', # 公式 - # 11: 'full column', # 单栏 - # 12: 'sub column', # 多栏 - # 13: 'embedding', # 嵌入公式 - # 14: 'isolated'} # 单行公式 - for xf in xf_json['layout_dets']: - L = xf['poly'][0] / horizontal_scale_ratio - U = xf['poly'][1] / vertical_scale_ratio - R = xf['poly'][2] / horizontal_scale_ratio - D = xf['poly'][5] / vertical_scale_ratio - # L += pageL # 有的页面,artBox偏移了。不在(0,0) - # R += pageL - # U += pageU - # D += pageU - L, R = min(L, R), max(L, R) - U, D = min(U, D), max(U, D) - # if xf['category_id'] == 5 and xf['score'] >= 0.3: - if xf['category_id'] == 5 and xf['score'] >= 0.43: # 新的footnote阈值 - footnote_bbox_from_DocXChain.append((L, U, R, D)) - - - footnote_final_names = [] - footnote_final_bboxs = [] - footnote_ID = 0 - for L, U, R, D in footnote_bbox_from_DocXChain: - if debug_mode: - # cur_footnote = page.get_pixmap(clip=(L,U,R,D)) - new_footnote_name = "footnote_{}_{}.png".format(page_ID, footnote_ID) # 脚注name - # cur_footnote.save(md_bookname_save_path + '/' + new_footnote_name) # 把脚注存储在新建的文件夹,并命名 - footnote_final_names.append(new_footnote_name) # 把脚注的名字存在list中 - footnote_final_bboxs.append((L, U, R, D)) - footnote_ID += 1 - - - footnote_final_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - curPage_all_footnote_bboxs = footnote_final_bboxs - return curPage_all_footnote_bboxs - - -def need_remove(block): - if 'lines' in block and len(block['lines']) > 0: - # block中只有一行,且该行文本全是大写字母,或字体为粗体bold关键词,SB关键词,把这个block捞回来 - if len(block['lines']) == 1: - if 'spans' in block['lines'][0] and len(block['lines'][0]['spans']) == 1: - font_keywords = ['SB', 'bold', 'Bold'] - if block['lines'][0]['spans'][0]['text'].isupper() or any(keyword in block['lines'][0]['spans'][0]['font'] for keyword in font_keywords): - return True - for line in block['lines']: - if 'spans' in line and len(line['spans']) > 0: - for span in line['spans']: - # 检测"keyword"是否在span中,忽略大小写 - if "keyword" in span['text'].lower(): - return True - return False - -def parse_footnotes_by_rule(remain_text_blocks, page_height, page_id, main_text_font): - """ - 根据给定的文本块、页高和页码,解析出符合规则的脚注文本块,并返回其边界框。 - - Args: - remain_text_blocks (list): 包含所有待处理的文本块的列表。 - page_height (float): 页面的高度。 - page_id (int): 页面的ID。 - - Returns: - list: 符合规则的脚注文本块的边界框列表。 - - """ - # if page_id > 20: - if page_id > 2: # 为保证精确度,先只筛选前3页 - return [] - else: - # 存储每一行的文本块大小的列表 - line_sizes = [] - # 存储每个文本块的平均行大小 - block_sizes = [] - # 存储每一行的字体信息 - # font_names = [] - font_names = Counter() - if len(remain_text_blocks) > 0: - for block in remain_text_blocks: - block_line_sizes = [] - # block_fonts = [] - block_fonts = Counter() - for line in block['lines']: - # 提取每个span的size属性,并计算行大小 - span_sizes = [span['size'] for span in line['spans'] if 'size' in span] - if span_sizes: - line_size = sum(span_sizes) / len(span_sizes) - line_sizes.append(line_size) - block_line_sizes.append(line_size) - span_font = [(span['font'], len(span['text'])) for span in line['spans'] if 'font' in span and len(span['text']) > 0] - if span_font: - # main_text_font应该用基于字数最多的字体而不是span级别的统计 - # font_names.append(font_name for font_name in span_font) - # block_fonts.append(font_name for font_name in span_font) - for font, count in span_font: - # font_names.extend([font] * count) - # block_fonts.extend([font] * count) - font_names[font] += count - block_fonts[font] += count - if block_line_sizes: - # 计算文本块的平均行大小 - block_size = sum(block_line_sizes) / len(block_line_sizes) - # block_font = collections.Counter(block_fonts).most_common(1)[0][0] - block_font = block_fonts.most_common(1)[0][0] - block_sizes.append((block, block_size, block_font)) - - # 计算main_text_size - main_text_size = Counter(line_sizes).most_common(1)[0][0] - # 计算main_text_font - # main_text_font = collections.Counter(font_names).most_common(1)[0][0] - # main_text_font = font_names.most_common(1)[0][0] - # 删除一些可能被误识别为脚注的文本块 - block_sizes = [(block, block_size, block_font) for block, block_size, block_font in block_sizes if not need_remove(block)] - - # 检测footnote_block 并返回 footnote_bboxes - # footnote_bboxes = [block['bbox'] for block, block_size, block_font in block_sizes if - # block['bbox'][1] > page_height * 0.6 and block_size < main_text_size - # and (len(block['lines']) < 5 or block_font != main_text_font)] - # and len(block['lines']) < 5] - footnote_bboxes = [block['bbox'] for block, block_size, block_font in block_sizes if - block['bbox'][1] > page_height * 0.6 and - # 较为严格的规则 - block_size < main_text_size and - (len(block['lines']) < 5 or - block_font != main_text_font)] - - # 较为宽松的规则 - # sum([block_size < main_text_size, - # len(block['lines']) < 5, - # block_font != main_text_font]) - # >= 2] - - - return footnote_bboxes - else: - return [] - - - diff --git a/magic_pdf/pre_proc/detect_header.py b/magic_pdf/pre_proc/detect_header.py deleted file mode 100644 index 670eccd3d..000000000 --- a/magic_pdf/pre_proc/detect_header.py +++ /dev/null @@ -1,64 +0,0 @@ -from magic_pdf.libs.commons import fitz # pyMuPDF库 -from magic_pdf.libs.coordinate_transform import get_scale_ratio - - -def parse_headers(page_ID: int, page: fitz.Page, json_from_DocXchain_obj: dict): - """ - :param page_ID: int类型,当前page在当前pdf文档中是第page_D页。 - :param page :fitz读取的当前页的内容 - :param res_dir_path: str类型,是每一个pdf文档,在当前.py文件的目录下生成一个与pdf文档同名的文件夹,res_dir_path就是文件夹的dir - :param json_from_DocXchain_obj: dict类型,把pdf文档送入DocXChain模型中后,提取bbox,结果保存到pdf文档同名文件夹下的 page_ID.json文件中了。json_from_DocXchain_obj就是打开后的dict - """ - - #--------- 通过json_from_DocXchain来获取 header ---------# - header_bbox_from_DocXChain = [] - - xf_json = json_from_DocXchain_obj - horizontal_scale_ratio, vertical_scale_ratio = get_scale_ratio(xf_json, page) - - # {0: 'title', # 标题 - # 1: 'figure', # 图片 - # 2: 'plain text', # 文本 - # 3: 'header', # 页眉 - # 4: 'page number', # 页码 - # 5: 'footnote', # 脚注 - # 6: 'footer', # 页脚 - # 7: 'table', # 表格 - # 8: 'table caption', # 表格描述 - # 9: 'figure caption', # 图片描述 - # 10: 'equation', # 公式 - # 11: 'full column', # 单栏 - # 12: 'sub column', # 多栏 - # 13: 'embedding', # 嵌入公式 - # 14: 'isolated'} # 单行公式 - for xf in xf_json['layout_dets']: - L = xf['poly'][0] / horizontal_scale_ratio - U = xf['poly'][1] / vertical_scale_ratio - R = xf['poly'][2] / horizontal_scale_ratio - D = xf['poly'][5] / vertical_scale_ratio - # L += pageL # 有的页面,artBox偏移了。不在(0,0) - # R += pageL - # U += pageU - # D += pageU - L, R = min(L, R), max(L, R) - U, D = min(U, D), max(U, D) - if xf['category_id'] == 3 and xf['score'] >= 0.3: - header_bbox_from_DocXChain.append((L, U, R, D)) - - - header_final_names = [] - header_final_bboxs = [] - header_ID = 0 - for L, U, R, D in header_bbox_from_DocXChain: - # cur_header = page.get_pixmap(clip=(L,U,R,D)) - new_header_name = "header_{}_{}.png".format(page_ID, header_ID) # 页眉name - # cur_header.save(res_dir_path + '/' + new_header_name) # 把页眉存储在新建的文件夹,并命名 - header_final_names.append(new_header_name) # 把页面的名字存在list中 - header_final_bboxs.append((L, U, R, D)) - header_ID += 1 - - - header_final_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - curPage_all_header_bboxs = header_final_bboxs - return curPage_all_header_bboxs - diff --git a/magic_pdf/pre_proc/detect_images.py b/magic_pdf/pre_proc/detect_images.py deleted file mode 100644 index fe72f60c3..000000000 --- a/magic_pdf/pre_proc/detect_images.py +++ /dev/null @@ -1,647 +0,0 @@ -import collections # 统计库 -import re -from magic_pdf.libs.commons import fitz # pyMuPDF库 - - -#--------------------------------------- Tool Functions --------------------------------------# -# 正则化,输入文本,输出只保留a-z,A-Z,0-9 -def remove_special_chars(s: str) -> str: - pattern = r"[^a-zA-Z0-9]" - res = re.sub(pattern, "", s) - return res - -def check_rect1_sameWith_rect2(L1: float, U1: float, R1: float, D1: float, L2: float, U2: float, R2: float, D2: float) -> bool: - # 判断rect1和rect2是否一模一样 - return L1 == L2 and U1 == U2 and R1 == R2 and D1 == D2 - -def check_rect1_contains_rect2(L1: float, U1: float, R1: float, D1: float, L2: float, U2: float, R2: float, D2: float) -> bool: - # 判断rect1包含了rect2 - return (L1 <= L2 <= R2 <= R1) and (U1 <= U2 <= D2 <= D1) - -def check_rect1_overlaps_rect2(L1: float, U1: float, R1: float, D1: float, L2: float, U2: float, R2: float, D2: float) -> bool: - # 判断rect1与rect2是否存在重叠(只有一条边重叠,也算重叠) - return max(L1, L2) <= min(R1, R2) and max(U1, U2) <= min(D1, D2) - -def calculate_overlapRatio_between_rect1_and_rect2(L1: float, U1: float, R1: float, D1: float, L2: float, U2: float, R2: float, D2: float) -> (float, float): - # 计算两个rect,重叠面积各占2个rect面积的比例 - if min(R1, R2) < max(L1, L2) or min(D1, D2) < max(U1, U2): - return 0, 0 - square_1 = (R1 - L1) * (D1 - U1) - square_2 = (R2 - L2) * (D2 - U2) - if square_1 == 0 or square_2 == 0: - return 0, 0 - square_overlap = (min(R1, R2) - max(L1, L2)) * (min(D1, D2) - max(U1, U2)) - return square_overlap / square_1, square_overlap / square_2 - -def calculate_overlapRatio_between_line1_and_line2(L1: float, R1: float, L2: float, R2: float) -> (float, float): - # 计算两个line,重叠区间各占2个line长度的比例 - if max(L1, L2) > min(R1, R2): - return 0, 0 - if L1 == R1 or L2 == R2: - return 0, 0 - overlap_line = min(R1, R2) - max(L1, L2) - return overlap_line / (R1 - L1), overlap_line / (R2 - L2) - - -# 判断rect其实是一条line -def check_rect_isLine(L: float, U: float, R: float, D: float) -> bool: - width = R - L - height = D - U - if width <= 3 or height <= 3: - return True - if width / height >= 30 or height / width >= 30: - return True - - - -def parse_images(page_ID: int, page: fitz.Page, json_from_DocXchain_obj: dict, junk_img_bojids=[]): - """ - :param page_ID: int类型,当前page在当前pdf文档中是第page_D页。 - :param page :fitz读取的当前页的内容 - :param res_dir_path: str类型,是每一个pdf文档,在当前.py文件的目录下生成一个与pdf文档同名的文件夹,res_dir_path就是文件夹的dir - :param json_from_DocXchain_obj: dict类型,把pdf文档送入DocXChain模型中后,提取bbox,结果保存到pdf文档同名文件夹下的 page_ID.json文件中了。json_from_DocXchain_obj就是打开后的dict - """ - #### 通过fitz获取page信息 - ## 超越边界 - DPI = 72 # use this resolution - pix = page.get_pixmap(dpi=DPI) - pageL = 0 - pageR = int(pix.w) - pageU = 0 - pageD = int(pix.h) - - #----------------- 保存每一个文本块的LURD ------------------# - textLine_blocks = [] - blocks = page.get_text( - "dict", - flags=fitz.TEXTFLAGS_TEXT, - #clip=clip, - )["blocks"] - for i in range(len(blocks)): - bbox = blocks[i]['bbox'] - # print(bbox) - for tt in blocks[i]['lines']: - # 当前line - cur_line_bbox = None # 当前line,最右侧的section的bbox - for xf in tt['spans']: - L, U, R, D = xf['bbox'] - L, R = min(L, R), max(L, R) - U, D = min(U, D), max(U, D) - textLine_blocks.append((L, U, R, D)) - textLine_blocks.sort(key = lambda LURD: (LURD[1], LURD[0])) - - - #---------------------------------------------- 保存img --------------------------------------------------# - raw_imgs = page.get_images() # 获取所有的图片 - imgs = [] - img_names = [] # 保存图片的名字,方便在md中插入引用 - img_bboxs = [] # 保存图片的location信息。 - img_visited = [] # 记忆化,记录该图片是否在md中已经插入过了 - img_ID = 0 - - ## 获取、保存每张img的location信息(x1, y1, x2, y2, UL, DR坐标) - for i in range(len(raw_imgs)): - # 如果图片在junklist中则跳过 - if raw_imgs[i][0] in junk_img_bojids: - continue - else: - try: - tt = page.get_image_rects(raw_imgs[i][0], transform = True) - - rec = tt[0][0] - L, U, R, D = int(rec[0]), int(rec[1]), int(rec[2]), int(rec[3]) - - L, R = min(L, R), max(L, R) - U, D = min(U, D), max(U, D) - if not(pageL <= L < R <= pageR and pageU <= U < D <= pageD): - continue - if pageL == L and R == pageR: - continue - if pageU == U and D == pageD: - continue - # pix1 = page.get_Pixmap(clip=(L,U,R,D)) - new_img_name = "{}_{}.png".format(page_ID, i) # 图片name - # pix1.save(res_dir_path + '/' + new_img_name) # 把图片存出在新建的文件夹,并命名 - img_names.append(new_img_name) - img_bboxs.append((L, U, R, D)) - img_visited.append(False) - imgs.append(raw_imgs[i]) - except: - continue - - #-------- 如果img之间有重叠。说明获取的img大小有问题,位置也不一定对。就扔掉--------# - imgs_ok = [True for _ in range(len(imgs))] - for i in range(len(imgs)): - L1, U1, R1, D1 = img_bboxs[i] - for j in range(i + 1, len(imgs)): - L2, U2, R2, D2 = img_bboxs[j] - ratio_1, ratio_2 = calculate_overlapRatio_between_rect1_and_rect2(L1, U1, R1, D1, L2, U2, R2, D2) - s1 = abs(R1 - L1) * abs(D1 - U1) - s2 = abs(R2 - L2) * abs(D2 - U2) - if ratio_1 > 0 and ratio_2 > 0: - if ratio_1 == 1 and ratio_2 > 0.8: - imgs_ok[i] = False - elif ratio_1 > 0.8 and ratio_2 == 1: - imgs_ok[j] = False - elif s1 > 20000 and s2 > 20000 and ratio_1 > 0.4 and ratio_2 > 0.4: - imgs_ok[i] = False - imgs_ok[j] = False - elif s1 / s2 > 5 and ratio_2 > 0.5: - imgs_ok[j] = False - elif s2 / s1 > 5 and ratio_1 > 0.5: - imgs_ok[i] = False - - imgs = [imgs[i] for i in range(len(imgs)) if imgs_ok[i] == True] - img_names = [img_names[i] for i in range(len(imgs)) if imgs_ok[i] == True] - img_bboxs = [img_bboxs[i] for i in range(len(imgs)) if imgs_ok[i] == True] - img_visited = [img_visited[i] for i in range(len(imgs)) if imgs_ok[i] == True] - #*******************************************************************************# - - #---------------------------------------- 通过fitz提取svg的信息 -----------------------------------------# - # - svgs = page.get_drawings() - #------------ preprocess, check一些大框,看是否是合理的 ----------# - ## 去重。有时候会遇到rect1和rect2是完全一样的情形。 - svg_rect_visited = set() - available_svgIdx = [] - for i in range(len(svgs)): - L, U, R, D = svgs[i]['rect'].irect - L, R = min(L, R), max(L, R) - U, D = min(U, D), max(U, D) - tt = (L, U, R, D) - if tt not in svg_rect_visited: - svg_rect_visited.add(tt) - available_svgIdx.append(i) - - svgs = [svgs[i] for i in available_svgIdx] # 去重后,有效的svgs - svg_childs = [[] for _ in range(len(svgs))] - svg_parents = [[] for _ in range(len(svgs))] - svg_overlaps = [[] for _ in range(len(svgs))] #svg_overlaps[i]是一个list,存的是与svg_i有重叠的svg的index。e.g., svg_overlaps[0] = [1, 2, 7, 9] - svg_visited = [False for _ in range(len(svgs))] - svg_exceedPage = [0 for _ in range(len(svgs))] # 是否超越边界(artbox),很大,但一般是一个svg的底。 - - - for i in range(len(svgs)): - L, U, R, D = svgs[i]['rect'].irect - ratio_1, ratio_2 = calculate_overlapRatio_between_rect1_and_rect2(L, U, R, D, pageL, pageU, pageR, pageD) - if (pageL + 20 < L <= R < pageR - 20) and (pageU + 20 < U <= D < pageD - 20): - if ratio_2 >= 0.7: - svg_exceedPage[i] += 4 - else: - if L <= pageL: - svg_exceedPage[i] += 1 - if pageR <= R: - svg_exceedPage[i] += 1 - if U <= pageU: - svg_exceedPage[i] += 1 - if pageD <= D: - svg_exceedPage[i] += 1 - - #### 如果有≥2个的超边界的框,就不要手写规则判断svg了。很难写对。 - if len([x for x in svg_exceedPage if x >= 1]) >= 2: - svgs = [] - svg_childs = [] - svg_parents = [] - svg_overlaps = [] - svg_visited = [] - svg_exceedPage = [] - - #---------------------------- build graph ----------------------------# - for i, p in enumerate(svgs): - L1, U1, R1, D1 = svgs[i]["rect"].irect - for j in range(len(svgs)): - if i == j: - continue - L2, U2, R2, D2 = svgs[j]["rect"].irect - ## 包含 - if check_rect1_contains_rect2(L1, U1, R1, D1, L2, U2, R2, D2) == True: - svg_childs[i].append(j) - svg_parents[j].append(i) - else: - ## 交叉 - if check_rect1_overlaps_rect2(L1, U1, R1, D1, L2, U2, R2, D2) == True: - svg_overlaps[i].append(j) - - #---------------- 确定最终的svg。连通块儿的外围 -------------------# - eps_ERROR = 5 # 给识别出的svg,四周留白(为了防止pyMuPDF的rect不准) - svg_ID = 0 - svg_final_names = [] - svg_final_bboxs = [] - svg_final_visited = [] # 为下面,text识别左准备。作用同img_visited - - svg_idxs = [i for i in range(len(svgs))] - svg_idxs.sort(key = lambda i: -(svgs[i]['rect'].irect[2] - svgs[i]['rect'].irect[0]) * (svgs[i]['rect'].irect[3] - svgs[i]['rect'].irect[1])) # 按照面积,从大到小排序 - - for i in svg_idxs: - if svg_visited[i] == True: - continue - svg_visited[i] = True - L, U, R, D = svgs[i]['rect'].irect - width = R - L - height = D - U - if check_rect_isLine(L, U, R, D) == True: - svg_visited[i] = False - continue - # if i == 4: - # print(i, L, U, R, D) - # print(svg_parents[i]) - - cur_block_element_cnt = 0 # 当前要判定为svg的区域中,有多少elements,最外围的最大svg框除外。 - if len(svg_parents[i]) == 0: - ## 是个普通框的情形 - cur_block_element_cnt += len(svg_childs[i]) - if svg_exceedPage[i] == 0: - ## 误差。可能已经包含在某个框里面了 - neglect_flag = False - for pL, pU, pR, pD in svg_final_bboxs: - if pL <= L <= R <= pR and pU <= U <= D <= pD: - neglect_flag = True - break - if neglect_flag == True: - continue - - ## 搜索连通域, bfs+记忆化 - q = collections.deque() - for j in svg_overlaps[i]: - q.append(j) - while q: - j = q.popleft() - svg_visited[j] = True - L2, U2, R2, D2 = svgs[j]['rect'].irect - # width2 = R2 - L2 - # height2 = D2 - U2 - # if width2 <= 2 or height2 <= 2 or (height2 / width2) >= 30 or (width2 / height2) >= 30: - # continue - L = min(L, L2) - R = max(R, R2) - U = min(U, U2) - D = max(D, D2) - cur_block_element_cnt += 1 - cur_block_element_cnt += len(svg_childs[j]) - for k in svg_overlaps[j]: - if svg_visited[k] == False and svg_exceedPage[k] == 0: - svg_visited[k] = True - q.append(k) - elif svg_exceedPage[i] <= 2: - ## 误差。可能已经包含在某个svg_final_bbox框里面了 - neglect_flag = False - for sL, sU, sR, sD in svg_final_bboxs: - if sL <= L <= R <= sR and sU <= U <= D <= sD: - neglect_flag = True - break - if neglect_flag == True: - continue - - L, U, R, D = pageR, pageD, pageL, pageU - ## 所有孩子元素的最大边界 - for j in svg_childs[i]: - if svg_visited[j] == True: - continue - if svg_exceedPage[j] >= 1: - continue - svg_visited[j] = True #### 这个位置考虑一下 - L2, U2, R2, D2 = svgs[j]['rect'].irect - L = min(L, L2) - R = max(R, R2) - U = min(U, U2) - D = max(D, D2) - cur_block_element_cnt += 1 - - # 如果是条line,就不用保存了 - if check_rect_isLine(L, U, R, D) == True: - continue - # 如果当前的svg,连2个elements都没有,就不用保存了 - if cur_block_element_cnt < 3: - continue - - ## 当前svg,框住了多少文本框。如果框多了,可能就是错了 - contain_textLineBlock_cnt = 0 - for L2, U2, R2, D2 in textLine_blocks: - if check_rect1_contains_rect2(L, U, R, D, L2, U2, R2, D2) == True: - contain_textLineBlock_cnt += 1 - if contain_textLineBlock_cnt >= 10: - continue - - # L -= eps_ERROR * 2 - # U -= eps_ERROR - # R += eps_ERROR * 2 - # D += eps_ERROR - # # cur_svg = page.get_pixmap(matrix=fitz.Identity, dpi=None, colorspace=fitz.csRGB, clip=(U,L,R,D), alpha=False, annots=True) - # cur_svg = page.get_pixmap(clip=(L,U,R,D)) - new_svg_name = "svg_{}_{}.png".format(page_ID, svg_ID) # 图片name - # cur_svg.save(res_dir_path + '/' + new_svg_name) # 把图片存出在新建的文件夹,并命名 - svg_final_names.append(new_svg_name) # 把图片的名字存在list中,方便在md中插入引用 - svg_final_bboxs.append((L, U, R, D)) - svg_final_visited.append(False) - svg_ID += 1 - - ## 识别出的svg,可能有 包含,相邻的情形。需要进一步合并 - svg_idxs = [i for i in range(len(svg_final_bboxs))] - svg_idxs.sort(key = lambda i: (svg_final_bboxs[i][1], svg_final_bboxs[i][0])) # (U, L) - svg_final_names_2 = [] - svg_final_bboxs_2 = [] - svg_final_visited_2 = [] # 为下面,text识别左准备。作用同img_visited - svg_ID_2 = 0 - for i in range(len(svg_final_bboxs)): - L1, U1, R1, D1 = svg_final_bboxs[i] - for j in range(i + 1, len(svg_final_bboxs)): - L2, U2, R2, D2 = svg_final_bboxs[j] - # 如果 rect1包含了rect2 - if check_rect1_contains_rect2(L1, U1, R1, D1, L2, U2, R2, D2) == True: - svg_final_visited[j] = True - continue - # 水平并列 - ratio_1, ratio_2 = calculate_overlapRatio_between_line1_and_line2(U1, D1, U2, D2) - if ratio_1 >= 0.7 and ratio_2 >= 0.7: - if abs(L2 - R1) >= 20: - continue - LL = min(L1, L2) - UU = min(U1, U2) - RR = max(R1, R2) - DD = max(D1, D2) - svg_final_bboxs[i] = (LL, UU, RR, DD) - svg_final_visited[j] = True - continue - # 竖直并列 - ratio_1, ratio_2 = calculate_overlapRatio_between_line1_and_line2(L1, R2, L2, R2) - if ratio_1 >= 0.7 and ratio_2 >= 0.7: - if abs(U2 - D1) >= 20: - continue - LL = min(L1, L2) - UU = min(U1, U2) - RR = max(R1, R2) - DD = max(D1, D2) - svg_final_bboxs[i] = (LL, UU, RR, DD) - svg_final_visited[j] = True - - for i in range(len(svg_final_bboxs)): - if svg_final_visited[i] == False: - L, U, R, D = svg_final_bboxs[i] - svg_final_bboxs_2.append((L, U, R, D)) - - L -= eps_ERROR * 2 - U -= eps_ERROR - R += eps_ERROR * 2 - D += eps_ERROR - # cur_svg = page.get_pixmap(clip=(L,U,R,D)) - new_svg_name = "svg_{}_{}.png".format(page_ID, svg_ID_2) # 图片name - # cur_svg.save(res_dir_path + '/' + new_svg_name) # 把图片存出在新建的文件夹,并命名 - svg_final_names_2.append(new_svg_name) # 把图片的名字存在list中,方便在md中插入引用 - svg_final_bboxs_2.append((L, U, R, D)) - svg_final_visited_2.append(False) - svg_ID_2 += 1 - - ## svg收尾。识别为drawing,但是在上面没有拼成一张图的。 - # 有收尾才comprehensive - # xxxx - # xxxx - # xxxx - # xxxx - - - #--------- 通过json_from_DocXchain来获取,figure, table, equation的bbox ---------# - figure_bbox_from_DocXChain = [] - - figure_from_DocXChain_visited = [] # 记忆化 - figure_bbox_from_DocXChain_overlappedRatio = [] - - figure_only_from_DocXChain_bboxs = [] # 存储 - figure_only_from_DocXChain_names = [] - figure_only_from_DocXChain_visited = [] - figure_only_ID = 0 - - xf_json = json_from_DocXchain_obj - width_from_json = xf_json['page_info']['width'] - height_from_json = xf_json['page_info']['height'] - LR_scaleRatio = width_from_json / (pageR - pageL) - UD_scaleRatio = height_from_json / (pageD - pageU) - - for xf in xf_json['layout_dets']: - # {0: 'title', 1: 'figure', 2: 'plain text', 3: 'header', 4: 'page number', 5: 'footnote', 6: 'footer', 7: 'table', 8: 'table caption', 9: 'figure caption', 10: 'equation', 11: 'full column', 12: 'sub column'} - L = xf['poly'][0] / LR_scaleRatio - U = xf['poly'][1] / UD_scaleRatio - R = xf['poly'][2] / LR_scaleRatio - D = xf['poly'][5] / UD_scaleRatio - # L += pageL # 有的页面,artBox偏移了。不在(0,0) - # R += pageL - # U += pageU - # D += pageU - L, R = min(L, R), max(L, R) - U, D = min(U, D), max(U, D) - # figure - if xf["category_id"] == 1 and xf['score'] >= 0.3: - figure_bbox_from_DocXChain.append((L, U, R, D)) - figure_from_DocXChain_visited.append(False) - figure_bbox_from_DocXChain_overlappedRatio.append(0.0) - - #---------------------- 比对上面识别出来的img,svg 与DocXChain给的figure -----------------------# - - ## 比对imgs - for i, b1 in enumerate(figure_bbox_from_DocXChain): - # print('--------- DocXChain的图片', b1) - L1, U1, R1, D1 = b1 - for b2 in img_bboxs: - # print('-------- igms得到的图', b2) - L2, U2, R2, D2 = b2 - s1 = abs(R1 - L1) * abs(D1 - U1) - s2 = abs(R2 - L2) * abs(D2 - U2) - # 相同 - if check_rect1_sameWith_rect2(L1, U1, R1, D1, L2, U2, R2, D2) == True: - figure_from_DocXChain_visited[i] = True - # 包含 - elif check_rect1_contains_rect2(L1, U1, R1, D1, L2, U2, R2, D2) == True: - if s2 / s1 > 0.8: - figure_from_DocXChain_visited[i] = True - elif check_rect1_contains_rect2(L2, U2, R2, D2, L1, U1, R1, D1) == True: - if s1 / s2 > 0.8: - figure_from_DocXChain_visited[i] = True - else: - # 重叠了相当一部分 - # print('进入第3部分') - ratio_1, ratio_2 = calculate_overlapRatio_between_rect1_and_rect2(L1, U1, R1, D1, L2, U2, R2, D2) - if (ratio_1 >= 0.6 and ratio_2 >= 0.6) or (ratio_1 >= 0.8 and s1/s2>0.8) or (ratio_2 >= 0.8 and s2/s1>0.8): - figure_from_DocXChain_visited[i] = True - else: - figure_bbox_from_DocXChain_overlappedRatio[i] += ratio_1 - # print('图片的重叠率是{}'.format(ratio_1)) - - - ## 比对svgs - svg_final_bboxs_2_badIdxs = [] - for i, b1 in enumerate(figure_bbox_from_DocXChain): - L1, U1, R1, D1 = b1 - for j, b2 in enumerate(svg_final_bboxs_2): - L2, U2, R2, D2 = b2 - s1 = abs(R1 - L1) * abs(D1 - U1) - s2 = abs(R2 - L2) * abs(D2 - U2) - # 相同 - if check_rect1_sameWith_rect2(L1, U1, R1, D1, L2, U2, R2, D2) == True: - figure_from_DocXChain_visited[i] = True - # 包含 - elif check_rect1_contains_rect2(L1, U1, R1, D1, L2, U2, R2, D2) == True: - figure_from_DocXChain_visited[i] = True - elif check_rect1_contains_rect2(L2, U2, R2, D2, L1, U1, R1, D1) == True: - if s1 / s2 > 0.7: - figure_from_DocXChain_visited[i] = True - else: - svg_final_bboxs_2_badIdxs.append(j) # svg丢弃。用DocXChain的结果。 - else: - # 重叠了相当一部分 - ratio_1, ratio_2 = calculate_overlapRatio_between_rect1_and_rect2(L1, U1, R1, D1, L2, U2, R2, D2) - if (ratio_1 >= 0.5 and ratio_2 >= 0.5) or (min(ratio_1, ratio_2) >= 0.4 and max(ratio_1, ratio_2) >= 0.6): - figure_from_DocXChain_visited[i] = True - else: - figure_bbox_from_DocXChain_overlappedRatio[i] += ratio_1 - - # 丢掉错误的svg - svg_final_bboxs_2 = [svg_final_bboxs_2[i] for i in range(len(svg_final_bboxs_2)) if i not in set(svg_final_bboxs_2_badIdxs)] - - for i in range(len(figure_from_DocXChain_visited)): - if figure_bbox_from_DocXChain_overlappedRatio[i] >= 0.7: - figure_from_DocXChain_visited[i] = True - - # DocXChain识别出来的figure,但是没被保存的。 - for i in range(len(figure_from_DocXChain_visited)): - if figure_from_DocXChain_visited[i] == False: - figure_from_DocXChain_visited[i] = True - cur_bbox = figure_bbox_from_DocXChain[i] - # cur_figure = page.get_pixmap(clip=cur_bbox) - new_figure_name = "figure_only_{}_{}.png".format(page_ID, figure_only_ID) # 图片name - # cur_figure.save(res_dir_path + '/' + new_figure_name) # 把图片存出在新建的文件夹,并命名 - figure_only_from_DocXChain_names.append(new_figure_name) # 把图片的名字存在list中,方便在md中插入引用 - figure_only_from_DocXChain_bboxs.append(cur_bbox) - figure_only_from_DocXChain_visited.append(False) - figure_only_ID += 1 - - img_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - svg_final_bboxs_2.sort(key = lambda LURD: (LURD[1], LURD[0])) - figure_only_from_DocXChain_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - curPage_all_fig_bboxs = img_bboxs + svg_final_bboxs + figure_only_from_DocXChain_bboxs - - #--------------------------- 最后统一去重 -----------------------------------# - curPage_all_fig_bboxs.sort(key = lambda LURD: ( (LURD[2]-LURD[0])*(LURD[3]-LURD[1]) , LURD[0], LURD[1]) ) - - #### 先考虑包含关系的小块 - final_duplicate = set() - for i in range(len(curPage_all_fig_bboxs)): - L1, U1, R1, D1 = curPage_all_fig_bboxs[i] - for j in range(len(curPage_all_fig_bboxs)): - if i == j: - continue - L2, U2, R2, D2 = curPage_all_fig_bboxs[j] - s1 = abs(R1 - L1) * abs(D1 - U1) - s2 = abs(R2 - L2) * abs(D2 - U2) - if check_rect1_contains_rect2(L2, U2, R2, D2, L1, U1, R1, D1) == True: - final_duplicate.add((L1, U1, R1, D1)) - else: - ratio_1, ratio_2 = calculate_overlapRatio_between_rect1_and_rect2(L1, U1, R1, D1, L2, U2, R2, D2) - if ratio_1 >= 0.8 and ratio_2 <= 0.6: - final_duplicate.add((L1, U1, R1, D1)) - - curPage_all_fig_bboxs = [LURD for LURD in curPage_all_fig_bboxs if LURD not in final_duplicate] - - #### 再考虑重叠关系的块 - final_duplicate = set() - final_synthetic_bboxs = [] - for i in range(len(curPage_all_fig_bboxs)): - L1, U1, R1, D1 = curPage_all_fig_bboxs[i] - for j in range(len(curPage_all_fig_bboxs)): - if i == j: - continue - L2, U2, R2, D2 = curPage_all_fig_bboxs[j] - s1 = abs(R1 - L1) * abs(D1 - U1) - s2 = abs(R2 - L2) * abs(D2 - U2) - ratio_1, ratio_2 = calculate_overlapRatio_between_rect1_and_rect2(L1, U1, R1, D1, L2, U2, R2, D2) - union_ok = False - if (ratio_1 >= 0.8 and ratio_2 <= 0.6) or (ratio_1 > 0.6 and ratio_2 > 0.6): - union_ok = True - if (ratio_1 > 0.2 and s2 / s1 > 5): - union_ok = True - if (L1 <= (L2+R2)/2 <= R1) and (U1 <= (U2+D2)/2 <= D1): - union_ok = True - if (L2 <= (L1+R1)/2 <= R2) and (U2 <= (U1+D1)/2 <= D2): - union_ok = True - if union_ok == True: - final_duplicate.add((L1, U1, R1, D1)) - final_duplicate.add((L2, U2, R2, D2)) - L3, U3, R3, D3 = min(L1, L2), min(U1, U2), max(R1, R2), max(D1, D2) - final_synthetic_bboxs.append((L3, U3, R3, D3)) - - # print('---------- curPage_all_fig_bboxs ---------') - # print(curPage_all_fig_bboxs) - curPage_all_fig_bboxs = [b for b in curPage_all_fig_bboxs if b not in final_duplicate] - final_synthetic_bboxs = list(set(final_synthetic_bboxs)) - - - ## 再再考虑重叠关系。极端情况下会迭代式地2进1 - new_images = [] - droped_img_idx = [] - image_bboxes = [[b[0], b[1], b[2], b[3]] for b in final_synthetic_bboxs] - for i in range(0, len(image_bboxes)): - for j in range(i+1, len(image_bboxes)): - if j not in droped_img_idx: - L2, U2, R2, D2 = image_bboxes[j] - s1 = abs(R1 - L1) * abs(D1 - U1) - s2 = abs(R2 - L2) * abs(D2 - U2) - ratio_1, ratio_2 = calculate_overlapRatio_between_rect1_and_rect2(L1, U1, R1, D1, L2, U2, R2, D2) - union_ok = False - if (ratio_1 >= 0.8 and ratio_2 <= 0.6) or (ratio_1 > 0.6 and ratio_2 > 0.6): - union_ok = True - if (ratio_1 > 0.2 and s2 / s1 > 5): - union_ok = True - if (L1 <= (L2+R2)/2 <= R1) and (U1 <= (U2+D2)/2 <= D1): - union_ok = True - if (L2 <= (L1+R1)/2 <= R2) and (U2 <= (U1+D1)/2 <= D2): - union_ok = True - if union_ok == True: - # 合并 - image_bboxes[i][0], image_bboxes[i][1],image_bboxes[i][2],image_bboxes[i][3] = min(image_bboxes[i][0], image_bboxes[j][0]), min(image_bboxes[i][1], image_bboxes[j][1]), max(image_bboxes[i][2], image_bboxes[j][2]), max(image_bboxes[i][3], image_bboxes[j][3]) - droped_img_idx.append(j) - - for i in range(0, len(image_bboxes)): - if i not in droped_img_idx: - new_images.append(image_bboxes[i]) - - - # find_union_FLAG = True - # while find_union_FLAG == True: - # find_union_FLAG = False - # final_duplicate = set() - # tmp = [] - # for i in range(len(final_synthetic_bboxs)): - # L1, U1, R1, D1 = final_synthetic_bboxs[i] - # for j in range(len(final_synthetic_bboxs)): - # if i == j: - # continue - # L2, U2, R2, D2 = final_synthetic_bboxs[j] - # s1 = abs(R1 - L1) * abs(D1 - U1) - # s2 = abs(R2 - L2) * abs(D2 - U2) - # ratio_1, ratio_2 = calculate_overlapRatio_between_rect1_and_rect2(L1, U1, R1, D1, L2, U2, R2, D2) - # union_ok = False - # if (ratio_1 >= 0.8 and ratio_2 <= 0.6) or (ratio_1 > 0.6 and ratio_2 > 0.6): - # union_ok = True - # if (ratio_1 > 0.2 and s2 / s1 > 5): - # union_ok = True - # if (L1 <= (L2+R2)/2 <= R1) and (U1 <= (U2+D2)/2 <= D1): - # union_ok = True - # if (L2 <= (L1+R1)/2 <= R2) and (U2 <= (U1+D1)/2 <= D2): - # union_ok = True - # if union_ok == True: - # find_union_FLAG = True - # final_duplicate.add((L1, U1, R1, D1)) - # final_duplicate.add((L2, U2, R2, D2)) - # L3, U3, R3, D3 = min(L1, L2), min(U1, U2), max(R1, R2), max(D1, D2) - # tmp.append((L3, U3, R3, D3)) - # if find_union_FLAG == True: - # tmp = list(set(tmp)) - # final_synthetic_bboxs = tmp[:] - - - # curPage_all_fig_bboxs += final_synthetic_bboxs - # print('--------- final synthetic') - # print(final_synthetic_bboxs) - #**************************************************************************# - images1 = [[img[0], img[1], img[2], img[3]] for img in curPage_all_fig_bboxs] - images = images1 + new_images - return images - diff --git a/magic_pdf/pre_proc/detect_page_number.py b/magic_pdf/pre_proc/detect_page_number.py deleted file mode 100644 index 35920a99b..000000000 --- a/magic_pdf/pre_proc/detect_page_number.py +++ /dev/null @@ -1,64 +0,0 @@ -from magic_pdf.libs.commons import fitz # pyMuPDF库 -from magic_pdf.libs.coordinate_transform import get_scale_ratio - - -def parse_pageNos(page_ID: int, page: fitz.Page, json_from_DocXchain_obj: dict): - """ - :param page_ID: int类型,当前page在当前pdf文档中是第page_D页。 - :param page :fitz读取的当前页的内容 - :param res_dir_path: str类型,是每一个pdf文档,在当前.py文件的目录下生成一个与pdf文档同名的文件夹,res_dir_path就是文件夹的dir - :param json_from_DocXchain_obj: dict类型,把pdf文档送入DocXChain模型中后,提取bbox,结果保存到pdf文档同名文件夹下的 page_ID.json文件中了。json_from_DocXchain_obj就是打开后的dict - """ - - #--------- 通过json_from_DocXchain来获取 pageNo ---------# - pageNo_bbox_from_DocXChain = [] - - xf_json = json_from_DocXchain_obj - horizontal_scale_ratio, vertical_scale_ratio = get_scale_ratio(xf_json, page) - - # {0: 'title', # 标题 - # 1: 'figure', # 图片 - # 2: 'plain text', # 文本 - # 3: 'header', # 页眉 - # 4: 'page number', # 页码 - # 5: 'footnote', # 脚注 - # 6: 'footer', # 页脚 - # 7: 'table', # 表格 - # 8: 'table caption', # 表格描述 - # 9: 'figure caption', # 图片描述 - # 10: 'equation', # 公式 - # 11: 'full column', # 单栏 - # 12: 'sub column', # 多栏 - # 13: 'embedding', # 嵌入公式 - # 14: 'isolated'} # 单行公式 - for xf in xf_json['layout_dets']: - L = xf['poly'][0] / horizontal_scale_ratio - U = xf['poly'][1] / vertical_scale_ratio - R = xf['poly'][2] / horizontal_scale_ratio - D = xf['poly'][5] / vertical_scale_ratio - # L += pageL # 有的页面,artBox偏移了。不在(0,0) - # R += pageL - # U += pageU - # D += pageU - L, R = min(L, R), max(L, R) - U, D = min(U, D), max(U, D) - if xf['category_id'] == 4 and xf['score'] >= 0.3: - pageNo_bbox_from_DocXChain.append((L, U, R, D)) - - - pageNo_final_names = [] - pageNo_final_bboxs = [] - pageNo_ID = 0 - for L, U, R, D in pageNo_bbox_from_DocXChain: - # cur_pageNo = page.get_pixmap(clip=(L,U,R,D)) - new_pageNo_name = "pageNo_{}_{}.png".format(page_ID, pageNo_ID) # 页码name - # cur_pageNo.save(res_dir_path + '/' + new_pageNo_name) # 把页码存储在新建的文件夹,并命名 - pageNo_final_names.append(new_pageNo_name) # 把页码的名字存在list中 - pageNo_final_bboxs.append((L, U, R, D)) - pageNo_ID += 1 - - - pageNo_final_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - curPage_all_pageNo_bboxs = pageNo_final_bboxs - return curPage_all_pageNo_bboxs - diff --git a/magic_pdf/pre_proc/detect_tables.py b/magic_pdf/pre_proc/detect_tables.py deleted file mode 100644 index fc2992eec..000000000 --- a/magic_pdf/pre_proc/detect_tables.py +++ /dev/null @@ -1,62 +0,0 @@ -from magic_pdf.libs.commons import fitz # pyMuPDF库 - - -def parse_tables(page_ID: int, page: fitz.Page, json_from_DocXchain_obj: dict): - """ - :param page_ID: int类型,当前page在当前pdf文档中是第page_D页。 - :param page :fitz读取的当前页的内容 - :param res_dir_path: str类型,是每一个pdf文档,在当前.py文件的目录下生成一个与pdf文档同名的文件夹,res_dir_path就是文件夹的dir - :param json_from_DocXchain_obj: dict类型,把pdf文档送入DocXChain模型中后,提取bbox,结果保存到pdf文档同名文件夹下的 page_ID.json文件中了。json_from_DocXchain_obj就是打开后的dict - """ - DPI = 72 # use this resolution - pix = page.get_pixmap(dpi=DPI) - pageL = 0 - pageR = int(pix.w) - pageU = 0 - pageD = int(pix.h) - - - #--------- 通过json_from_DocXchain来获取 table ---------# - table_bbox_from_DocXChain = [] - - xf_json = json_from_DocXchain_obj - width_from_json = xf_json['page_info']['width'] - height_from_json = xf_json['page_info']['height'] - LR_scaleRatio = width_from_json / (pageR - pageL) - UD_scaleRatio = height_from_json / (pageD - pageU) - - - for xf in xf_json['layout_dets']: - # {0: 'title', 1: 'figure', 2: 'plain text', 3: 'header', 4: 'page number', 5: 'footnote', 6: 'footer', 7: 'table', 8: 'table caption', 9: 'figure caption', 10: 'equation', 11: 'full column', 12: 'sub column'} - # 13: 'embedding', # 嵌入公式 - # 14: 'isolated'} # 单行公式 - L = xf['poly'][0] / LR_scaleRatio - U = xf['poly'][1] / UD_scaleRatio - R = xf['poly'][2] / LR_scaleRatio - D = xf['poly'][5] / UD_scaleRatio - # L += pageL # 有的页面,artBox偏移了。不在(0,0) - # R += pageL - # U += pageU - # D += pageU - L, R = min(L, R), max(L, R) - U, D = min(U, D), max(U, D) - if xf['category_id'] == 7 and xf['score'] >= 0.3: - table_bbox_from_DocXChain.append((L, U, R, D)) - - - table_final_names = [] - table_final_bboxs = [] - table_ID = 0 - for L, U, R, D in table_bbox_from_DocXChain: - # cur_table = page.get_pixmap(clip=(L,U,R,D)) - new_table_name = "table_{}_{}.png".format(page_ID, table_ID) # 表格name - # cur_table.save(res_dir_path + '/' + new_table_name) # 把表格存出在新建的文件夹,并命名 - table_final_names.append(new_table_name) # 把表格的名字存在list中,方便在md中插入引用 - table_final_bboxs.append((L, U, R, D)) - table_ID += 1 - - - table_final_bboxs.sort(key = lambda LURD: (LURD[1], LURD[0])) - curPage_all_table_bboxs = table_final_bboxs - return curPage_all_table_bboxs - diff --git a/magic_pdf/pre_proc/equations_replace.py b/magic_pdf/pre_proc/equations_replace.py deleted file mode 100644 index 289fbf3fe..000000000 --- a/magic_pdf/pre_proc/equations_replace.py +++ /dev/null @@ -1,559 +0,0 @@ -""" -对pymupdf返回的结构里的公式进行替换,替换为模型识别的公式结果 -""" - -from magic_pdf.libs.commons import fitz -import json -import os -from pathlib import Path -from loguru import logger -from magic_pdf.libs.ocr_content_type import ContentType - -TYPE_INLINE_EQUATION = ContentType.InlineEquation -TYPE_INTERLINE_EQUATION = ContentType.InterlineEquation - - -def combine_chars_to_pymudict(block_dict, char_dict): - """ - 把block级别的pymupdf 结构里加入char结构 - """ - # 因为block_dict 被裁剪过,因此先把他和char_dict文字块对齐,才能进行补充 - char_map = {tuple(item["bbox"]): item for item in char_dict} - - for i in range(len(block_dict)): # blcok - block = block_dict[i] - key = block["bbox"] - char_dict_item = char_map[tuple(key)] - char_dict_map = {tuple(item["bbox"]): item for item in char_dict_item["lines"]} - for j in range(len(block["lines"])): - lines = block["lines"][j] - with_char_lines = char_dict_map[lines["bbox"]] - for k in range(len(lines["spans"])): - spans = lines["spans"][k] - try: - chars = with_char_lines["spans"][k]["chars"] - except Exception as e: - logger.error(char_dict[i]["lines"][j]) - - spans["chars"] = chars - - return block_dict - - -def calculate_overlap_area_2_minbox_area_ratio(bbox1, min_bbox): - """ - 计算box1和box2的重叠面积占最小面积的box的比例 - """ - # Determine the coordinates of the intersection rectangle - x_left = max(bbox1[0], min_bbox[0]) - y_top = max(bbox1[1], min_bbox[1]) - x_right = min(bbox1[2], min_bbox[2]) - y_bottom = min(bbox1[3], min_bbox[3]) - - if x_right < x_left or y_bottom < y_top: - return 0.0 - - # The area of overlap area - intersection_area = (x_right - x_left) * (y_bottom - y_top) - min_box_area = (min_bbox[3] - min_bbox[1]) * (min_bbox[2] - min_bbox[0]) - if min_box_area == 0: - return 0 - else: - return intersection_area / min_box_area - - -def _is_xin(bbox1, bbox2): - area1 = abs(bbox1[2] - bbox1[0]) * abs(bbox1[3] - bbox1[1]) - area2 = abs(bbox2[2] - bbox2[0]) * abs(bbox2[3] - bbox2[1]) - if area1 < area2: - ratio = calculate_overlap_area_2_minbox_area_ratio(bbox2, bbox1) - else: - ratio = calculate_overlap_area_2_minbox_area_ratio(bbox1, bbox2) - - return ratio > 0.6 - - -def remove_text_block_in_interline_equation_bbox(interline_bboxes, text_blocks): - """消除掉整个块都在行间公式块内部的文本块""" - for eq_bbox in interline_bboxes: - removed_txt_blk = [] - for text_blk in text_blocks: - text_bbox = text_blk["bbox"] - if ( - calculate_overlap_area_2_minbox_area_ratio(eq_bbox["bbox"], text_bbox) - >= 0.7 - ): - removed_txt_blk.append(text_blk) - for blk in removed_txt_blk: - text_blocks.remove(blk) - - return text_blocks - - -def _is_in_or_part_overlap(box1, box2) -> bool: - """ - 两个bbox是否有部分重叠或者包含 - """ - if box1 is None or box2 is None: - return False - - x0_1, y0_1, x1_1, y1_1 = box1 - x0_2, y0_2, x1_2, y1_2 = box2 - - return not ( - x1_1 < x0_2 # box1在box2的左边 - or x0_1 > x1_2 # box1在box2的右边 - or y1_1 < y0_2 # box1在box2的上边 - or y0_1 > y1_2 - ) # box1在box2的下边 - - -def remove_text_block_overlap_interline_equation_bbox( - interline_eq_bboxes, pymu_block_list -): - - """消除掉行行内公式有部分重叠的文本块的内容。 - 同时重新计算消除重叠之后文本块的大小""" - deleted_block = [] - for text_block in pymu_block_list: - deleted_line = [] - for line in text_block["lines"]: - deleted_span = [] - for span in line["spans"]: - deleted_chars = [] - for char in span["chars"]: - if any( - [ - (calculate_overlap_area_2_minbox_area_ratio(eq_bbox["bbox"], char["bbox"]) > 0.5) - for eq_bbox in interline_eq_bboxes - ] - ): - deleted_chars.append(char) - # 检查span里没有char则删除这个span - for char in deleted_chars: - span["chars"].remove(char) - # 重新计算这个span的大小 - if len(span["chars"]) == 0: # 删除这个span - deleted_span.append(span) - else: - span["bbox"] = ( - min([b["bbox"][0] for b in span["chars"]]), - min([b["bbox"][1] for b in span["chars"]]), - max([b["bbox"][2] for b in span["chars"]]), - max([b["bbox"][3] for b in span["chars"]]), - ) - - # 检查这个span - for span in deleted_span: - line["spans"].remove(span) - if len(line["spans"]) == 0: # 删除这个line - deleted_line.append(line) - else: - line["bbox"] = ( - min([b["bbox"][0] for b in line["spans"]]), - min([b["bbox"][1] for b in line["spans"]]), - max([b["bbox"][2] for b in line["spans"]]), - max([b["bbox"][3] for b in line["spans"]]), - ) - - # 检查这个block是否可以删除 - for line in deleted_line: - text_block["lines"].remove(line) - if len(text_block["lines"]) == 0: # 删除block - deleted_block.append(text_block) - else: - text_block["bbox"] = ( - min([b["bbox"][0] for b in text_block["lines"]]), - min([b["bbox"][1] for b in text_block["lines"]]), - max([b["bbox"][2] for b in text_block["lines"]]), - max([b["bbox"][3] for b in text_block["lines"]]), - ) - - # 检查text block删除 - for block in deleted_block: - pymu_block_list.remove(block) - if len(pymu_block_list) == 0: - return [] - - return pymu_block_list - - -def insert_interline_equations_textblock(interline_eq_bboxes, pymu_block_list): - """在行间公式对应的地方插上一个伪造的block""" - for eq in interline_eq_bboxes: - bbox = eq["bbox"] - latex_content = eq["latex"] - text_block = { - "number": len(pymu_block_list), - "type": 0, - "bbox": bbox, - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "type": TYPE_INTERLINE_EQUATION, - "flags": 4, - "font": TYPE_INTERLINE_EQUATION, - "color": 0, - "ascender": 0.9409999847412109, - "descender": -0.3050000071525574, - "latex": latex_content, - "origin": [bbox[0], bbox[1]], - "bbox": bbox, - } - ], - "wmode": 0, - "dir": [1.0, 0.0], - "bbox": bbox, - } - ], - } - pymu_block_list.append(text_block) - - -def x_overlap_ratio(box1, box2): - a, _, c, _ = box1 - e, _, g, _ = box2 - - # 计算重叠宽度 - overlap_x = max(min(c, g) - max(a, e), 0) - - # 计算box1的宽度 - width1 = g - e - - # 计算重叠比例 - overlap_ratio = overlap_x / width1 if width1 != 0 else 0 - - return overlap_ratio - - -def __is_x_dir_overlap(bbox1, bbox2): - return not (bbox1[2] < bbox2[0] or bbox1[0] > bbox2[2]) - - -def __y_overlap_ratio(box1, box2): - """""" - _, b, _, d = box1 - _, f, _, h = box2 - - # 计算重叠高度 - overlap_y = max(min(d, h) - max(b, f), 0) - - # 计算box1的高度 - height1 = d - b - - # 计算重叠比例 - overlap_ratio = overlap_y / height1 if height1 != 0 else 0 - - return overlap_ratio - - -def replace_line_v2(eqinfo, line): - """ - 扫描这一行所有的和公式框X方向重叠的char,然后计算char的左、右x0, x1,位于这个区间内的span删除掉。 - 最后与这个x0,x1有相交的span0, span1内部进行分割。 - """ - first_overlap_span = -1 - first_overlap_span_idx = -1 - last_overlap_span = -1 - delete_chars = [] - for i in range(0, len(line["spans"])): - if "chars" not in line["spans"][i]: - continue - - if line["spans"][i].get("_type", None) is not None: - continue # 忽略,因为已经是插入的伪造span公式了 - - for char in line["spans"][i]["chars"]: - if __is_x_dir_overlap(eqinfo["bbox"], char["bbox"]): - line_txt = "" - for span in line["spans"]: - span_txt = "" - for ch in span["chars"]: - span_txt = span_txt + ch["c"] - - span_txt = span_txt + "" - - line_txt = line_txt + span_txt - - if first_overlap_span_idx == -1: - first_overlap_span = line["spans"][i] - first_overlap_span_idx = i - last_overlap_span = line["spans"][i] - delete_chars.append(char) - - # 第一个和最后一个char要进行检查,到底属于公式多还是属于正常span多 - if len(delete_chars) > 0: - ch0_bbox = delete_chars[0]["bbox"] - if x_overlap_ratio(eqinfo["bbox"], ch0_bbox) < 0.51: - delete_chars.remove(delete_chars[0]) - if len(delete_chars) > 0: - ch0_bbox = delete_chars[-1]["bbox"] - if x_overlap_ratio(eqinfo["bbox"], ch0_bbox) < 0.51: - delete_chars.remove(delete_chars[-1]) - - # 计算x方向上被删除区间内的char的真实x0, x1 - if len(delete_chars): - x0, x1 = min([b["bbox"][0] for b in delete_chars]), max( - [b["bbox"][2] for b in delete_chars] - ) - else: - # logger.debug(f"行内公式替换没有发生,尝试下一行匹配, eqinfo={eqinfo}") - return False - - # 删除位于x0, x1这两个中间的span - delete_span = [] - for span in line["spans"]: - span_box = span["bbox"] - if x0 <= span_box[0] and span_box[2] <= x1: - delete_span.append(span) - for span in delete_span: - line["spans"].remove(span) - - equation_span = { - "size": 9.962599754333496, - "type": TYPE_INLINE_EQUATION, - "flags": 4, - "font": TYPE_INLINE_EQUATION, - "color": 0, - "ascender": 0.9409999847412109, - "descender": -0.3050000071525574, - "latex": "", - "origin": [337.1410153102337, 216.0205245153934], - "bbox": eqinfo["bbox"] - } - # equation_span = line['spans'][0].copy() - equation_span["latex"] = eqinfo['latex'] - equation_span["bbox"] = [x0, equation_span["bbox"][1], x1, equation_span["bbox"][3]] - equation_span["origin"] = [equation_span["bbox"][0], equation_span["bbox"][1]] - equation_span["chars"] = delete_chars - equation_span["type"] = TYPE_INLINE_EQUATION - equation_span["_eq_bbox"] = eqinfo["bbox"] - line["spans"].insert(first_overlap_span_idx + 1, equation_span) # 放入公式 - - # logger.info(f"==>text is 【{line_txt}】, equation is 【{eqinfo['latex_text']}】") - - # 第一个、和最后一个有overlap的span进行分割,然后插入对应的位置 - first_span_chars = [ - char - for char in first_overlap_span["chars"] - if (char["bbox"][2] + char["bbox"][0]) / 2 < x0 - ] - tail_span_chars = [ - char - for char in last_overlap_span["chars"] - if (char["bbox"][0] + char["bbox"][2]) / 2 > x1 - ] - - if len(first_span_chars) > 0: - first_overlap_span["chars"] = first_span_chars - first_overlap_span["text"] = "".join([char["c"] for char in first_span_chars]) - first_overlap_span["bbox"] = ( - first_overlap_span["bbox"][0], - first_overlap_span["bbox"][1], - max([chr["bbox"][2] for chr in first_span_chars]), - first_overlap_span["bbox"][3], - ) - # first_overlap_span['_type'] = "first" - else: - # 删掉 - if first_overlap_span not in delete_span: - line["spans"].remove(first_overlap_span) - - if len(tail_span_chars) > 0: - min_of_tail_span_x0 = min([chr["bbox"][0] for chr in tail_span_chars]) - min_of_tail_span_y0 = min([chr["bbox"][1] for chr in tail_span_chars]) - max_of_tail_span_x1 = max([chr["bbox"][2] for chr in tail_span_chars]) - max_of_tail_span_y1 = max([chr["bbox"][3] for chr in tail_span_chars]) - - if last_overlap_span == first_overlap_span: # 这个时候应该插入一个新的 - tail_span_txt = "".join([char["c"] for char in tail_span_chars]) - last_span_to_insert = last_overlap_span.copy() - last_span_to_insert["chars"] = tail_span_chars - last_span_to_insert["text"] = "".join( - [char["c"] for char in tail_span_chars] - ) - if equation_span["bbox"][2] >= last_overlap_span["bbox"][2]: - last_span_to_insert["bbox"] = ( - min_of_tail_span_x0, - min_of_tail_span_y0, - max_of_tail_span_x1, - max_of_tail_span_y1 - ) - else: - last_span_to_insert["bbox"] = ( - min([chr["bbox"][0] for chr in tail_span_chars]), - last_overlap_span["bbox"][1], - last_overlap_span["bbox"][2], - last_overlap_span["bbox"][3], - ) - # 插入到公式对象之后 - equation_idx = line["spans"].index(equation_span) - line["spans"].insert(equation_idx + 1, last_span_to_insert) # 放入公式 - else: # 直接修改原来的span - last_overlap_span["chars"] = tail_span_chars - last_overlap_span["text"] = "".join([char["c"] for char in tail_span_chars]) - last_overlap_span["bbox"] = ( - min([chr["bbox"][0] for chr in tail_span_chars]), - last_overlap_span["bbox"][1], - last_overlap_span["bbox"][2], - last_overlap_span["bbox"][3], - ) - else: - # 删掉 - if ( - last_overlap_span not in delete_span - and last_overlap_span != first_overlap_span - ): - line["spans"].remove(last_overlap_span) - - remain_txt = "" - for span in line["spans"]: - span_txt = "" - for char in span["chars"]: - span_txt = span_txt + char["c"] - - span_txt = span_txt + "" - - remain_txt = remain_txt + span_txt - - # logger.info(f"<== succ replace, text is 【{remain_txt}】, equation is 【{eqinfo['latex_text']}】") - - return True - - -def replace_eq_blk(eqinfo, text_block): - """替换行内公式""" - for line in text_block["lines"]: - line_bbox = line["bbox"] - if ( - _is_xin(eqinfo["bbox"], line_bbox) - or __y_overlap_ratio(eqinfo["bbox"], line_bbox) > 0.6 - ): # 定位到行, 使用y方向重合率是因为有的时候,一个行的宽度会小于公式位置宽度:行很高,公式很窄, - replace_succ = replace_line_v2(eqinfo, line) - if ( - not replace_succ - ): # 有的时候,一个pdf的line高度从API里会计算的有问题,因此在行内span级别会替换不成功,这就需要继续重试下一行 - continue - else: - break - else: - return False - return True - - -def replace_inline_equations(inline_equation_bboxes, raw_text_blocks): - """替换行内公式""" - for eqinfo in inline_equation_bboxes: - eqbox = eqinfo["bbox"] - for blk in raw_text_blocks: - if _is_xin(eqbox, blk["bbox"]): - if not replace_eq_blk(eqinfo, blk): - logger.warning(f"行内公式没有替换成功:{eqinfo} ") - else: - break - - return raw_text_blocks - - -def remove_chars_in_text_blocks(text_blocks): - """删除text_blocks里的char""" - for blk in text_blocks: - for line in blk["lines"]: - for span in line["spans"]: - _ = span.pop("chars", "no such key") - return text_blocks - - -def replace_equations_in_textblock( - raw_text_blocks, inline_equation_bboxes, interline_equation_bboxes -): - """ - 替换行间和和行内公式为latex - """ - raw_text_blocks = remove_text_block_in_interline_equation_bbox( - interline_equation_bboxes, raw_text_blocks - ) # 消除重叠:第一步,在公式内部的 - - raw_text_blocks = remove_text_block_overlap_interline_equation_bbox( - interline_equation_bboxes, raw_text_blocks - ) # 消重,第二步,和公式覆盖的 - - insert_interline_equations_textblock(interline_equation_bboxes, raw_text_blocks) - raw_text_blocks = replace_inline_equations(inline_equation_bboxes, raw_text_blocks) - return raw_text_blocks - - -def draw_block_on_pdf_with_txt_replace_eq_bbox(json_path, pdf_path): - """ """ - new_pdf = f"{Path(pdf_path).parent}/{Path(pdf_path).stem}.step3-消除行内公式text_block.pdf" - with open(json_path, "r", encoding="utf-8") as f: - obj = json.loads(f.read()) - - if os.path.exists(new_pdf): - os.remove(new_pdf) - new_doc = fitz.open("") - - doc = fitz.open(pdf_path) - new_doc = fitz.open(pdf_path) - for i in range(len(new_doc)): - page = new_doc[i] - inline_equation_bboxes = obj[f"page_{i}"]["inline_equations"] - interline_equation_bboxes = obj[f"page_{i}"]["interline_equations"] - raw_text_blocks = obj[f"page_{i}"]["preproc_blocks"] - raw_text_blocks = remove_text_block_in_interline_equation_bbox( - interline_equation_bboxes, raw_text_blocks - ) # 消除重叠:第一步,在公式内部的 - raw_text_blocks = remove_text_block_overlap_interline_equation_bbox( - interline_equation_bboxes, raw_text_blocks - ) # 消重,第二步,和公式覆盖的 - insert_interline_equations_textblock(interline_equation_bboxes, raw_text_blocks) - raw_text_blocks = replace_inline_equations( - inline_equation_bboxes, raw_text_blocks - ) - - # 为了检验公式是否重复,把每一行里,含有公式的span背景改成黄色的 - color_map = [fitz.pdfcolor["blue"], fitz.pdfcolor["green"]] - j = 0 - for blk in raw_text_blocks: - for i, line in enumerate(blk["lines"]): - - # line_box = line['bbox'] - # shape = page.new_shape() - # shape.draw_rect(line_box) - # shape.finish(color=fitz.pdfcolor['red'], fill=color_map[j%2], fill_opacity=0.3) - # shape.commit() - # j = j+1 - - for i, span in enumerate(line["spans"]): - shape_page = page.new_shape() - span_type = span.get("_type") - color = fitz.pdfcolor["blue"] - if span_type == "first": - color = fitz.pdfcolor["blue"] - elif span_type == "tail": - color = fitz.pdfcolor["green"] - elif span_type == TYPE_INLINE_EQUATION: - color = fitz.pdfcolor["black"] - else: - color = None - - b = span["bbox"] - shape_page.draw_rect(b) - - shape_page.finish(color=None, fill=color, fill_opacity=0.3) - shape_page.commit() - - new_doc.save(new_pdf) - logger.info(f"save ok {new_pdf}") - final_json = json.dumps(obj, ensure_ascii=False, indent=2) - with open("equations_test/final_json.json", "w") as f: - f.write(final_json) - - return new_pdf - - -if __name__ == "__main__": - # draw_block_on_pdf_with_txt_replace_eq_bbox(new_json_path, equation_color_pdf) - pass diff --git a/magic_pdf/pre_proc/fix_image.py b/magic_pdf/pre_proc/fix_image.py deleted file mode 100644 index d2f83570d..000000000 --- a/magic_pdf/pre_proc/fix_image.py +++ /dev/null @@ -1,244 +0,0 @@ - - - -import re -from magic_pdf.libs.boxbase import _is_in_or_part_overlap, _is_part_overlap, find_bottom_nearest_text_bbox, find_left_nearest_text_bbox, find_right_nearest_text_bbox, find_top_nearest_text_bbox - -from magic_pdf.libs.textbase import get_text_block_base_info - -def fix_image_vertical(image_bboxes:list, text_blocks:list): - """ - 修正图片的位置 - 如果图片与文字block发生一定重叠(也就是图片切到了一部分文字),那么减少图片边缘,让文字和图片不再重叠。 - 只对垂直方向进行。 - """ - for image_bbox in image_bboxes: - for text_block in text_blocks: - text_bbox = text_block["bbox"] - if _is_part_overlap(text_bbox, image_bbox) and any([text_bbox[0]>=image_bbox[0] and text_bbox[2]<=image_bbox[2], text_bbox[0]<=image_bbox[0] and text_bbox[2]>=image_bbox[2]]): - if text_bbox[1] < image_bbox[1]:#在图片上方 - image_bbox[1] = text_bbox[3]+1 - elif text_bbox[3]>image_bbox[3]:#在图片下方 - image_bbox[3] = text_bbox[1]-1 - - return image_bboxes - -def __merge_if_common_edge(bbox1, bbox2): - x_min_1, y_min_1, x_max_1, y_max_1 = bbox1 - x_min_2, y_min_2, x_max_2, y_max_2 = bbox2 - - # 检查是否有公共的水平边 - if y_min_1 == y_min_2 or y_max_1 == y_max_2: - # 确保一个框的x范围在另一个框的x范围内 - if max(x_min_1, x_min_2) <= min(x_max_1, x_max_2): - return [min(x_min_1, x_min_2), min(y_min_1, y_min_2), max(x_max_1, x_max_2), max(y_max_1, y_max_2)] - - # 检查是否有公共的垂直边 - if x_min_1 == x_min_2 or x_max_1 == x_max_2: - # 确保一个框的y范围在另一个框的y范围内 - if max(y_min_1, y_min_2) <= min(y_max_1, y_max_2): - return [min(x_min_1, x_min_2), min(y_min_1, y_min_2), max(x_max_1, x_max_2), max(y_max_1, y_max_2)] - - # 如果没有公共边 - return None - -def fix_seperated_image(image_bboxes:list): - """ - 如果2个图片有一个边重叠,那么合并2个图片 - """ - new_images = [] - droped_img_idx = [] - - for i in range(0, len(image_bboxes)): - for j in range(i+1, len(image_bboxes)): - new_img = __merge_if_common_edge(image_bboxes[i], image_bboxes[j]) - if new_img is not None: - new_images.append(new_img) - droped_img_idx.append(i) - droped_img_idx.append(j) - break - - for i in range(0, len(image_bboxes)): - if i not in droped_img_idx: - new_images.append(image_bboxes[i]) - - return new_images - - -def __check_img_title_pattern(text): - """ - 检查文本段是否是表格的标题 - """ - patterns = [r"^(fig|figure).*", r"^(scheme).*"] - text = text.strip() - for pattern in patterns: - match = re.match(pattern, text, re.IGNORECASE) - if match: - return True - return False - -def __get_fig_caption_text(text_block): - txt = " ".join(span['text'] for line in text_block['lines'] for span in line['spans']) - line_cnt = len(text_block['lines']) - txt = txt.replace("Ž . ", '') - return txt, line_cnt - - -def __find_and_extend_bottom_caption(text_block, pymu_blocks, image_box): - """ - 继续向下方寻找和图片caption字号,字体,颜色一样的文字框,合并入caption。 - text_block是已经找到的图片catpion(这个caption可能不全,多行被划分到多个pymu block里了) - """ - combined_image_caption_text_block = list(text_block.copy()['bbox']) - base_font_color, base_font_size, base_font_type = get_text_block_base_info(text_block) - while True: - tb_add = find_bottom_nearest_text_bbox(pymu_blocks, combined_image_caption_text_block) - if not tb_add: - break - tb_font_color, tb_font_size, tb_font_type = get_text_block_base_info(tb_add) - if tb_font_color==base_font_color and tb_font_size==base_font_size and tb_font_type==base_font_type: - combined_image_caption_text_block[0] = min(combined_image_caption_text_block[0], tb_add['bbox'][0]) - combined_image_caption_text_block[2] = max(combined_image_caption_text_block[2], tb_add['bbox'][2]) - combined_image_caption_text_block[3] = tb_add['bbox'][3] - else: - break - - image_box[0] = min(image_box[0], combined_image_caption_text_block[0]) - image_box[1] = min(image_box[1], combined_image_caption_text_block[1]) - image_box[2] = max(image_box[2], combined_image_caption_text_block[2]) - image_box[3] = max(image_box[3], combined_image_caption_text_block[3]) - text_block['_image_caption'] = True - - -def include_img_title(pymu_blocks, image_bboxes: list): - """ - 向上方和下方寻找符合图片title的文本block,合并到图片里 - 如果图片上下都有fig的情况怎么办?寻找标题距离最近的那个。 - --- - 增加对左侧和右侧图片标题的寻找 - """ - - - for tb in image_bboxes: - # 优先找下方的 - max_find_cnt = 3 # 向上,向下最多找3个就停止 - temp_box = tb.copy() - while max_find_cnt>0: - text_block_btn = find_bottom_nearest_text_bbox(pymu_blocks, temp_box) - if text_block_btn: - txt, line_cnt = __get_fig_caption_text(text_block_btn) - if len(txt.strip())>0: - if not __check_img_title_pattern(txt) and max_find_cnt>0 and line_cnt<3: # 设置line_cnt<=2目的是为了跳过子标题,或者有时候图片下方文字没有被图片识别模型放入图片里 - max_find_cnt = max_find_cnt - 1 - temp_box[3] = text_block_btn['bbox'][3] - continue - else: - break - else: - temp_box[3] = text_block_btn['bbox'][3] # 宽度不变,扩大 - max_find_cnt = max_find_cnt - 1 - else: - break - - max_find_cnt = 3 # 向上,向下最多找3个就停止 - temp_box = tb.copy() - while max_find_cnt>0: - text_block_top = find_top_nearest_text_bbox(pymu_blocks, temp_box) - if text_block_top: - txt, line_cnt = __get_fig_caption_text(text_block_top) - if len(txt.strip())>0: - if not __check_img_title_pattern(txt) and max_find_cnt>0 and line_cnt <3: - max_find_cnt = max_find_cnt - 1 - temp_box[1] = text_block_top['bbox'][1] - continue - else: - break - else: - b = text_block_top['bbox'] - temp_box[1] = b[1] # 宽度不变,扩大 - max_find_cnt = max_find_cnt - 1 - else: - break - - if text_block_btn and text_block_top and text_block_btn.get("_image_caption", False) is False and text_block_top.get("_image_caption", False) is False : - btn_text, _ = __get_fig_caption_text(text_block_btn) - top_text, _ = __get_fig_caption_text(text_block_top) - if __check_img_title_pattern(btn_text) and __check_img_title_pattern(top_text): - # 取距离图片最近的 - btn_text_distance = text_block_btn['bbox'][1] - tb[3] - top_text_distance = tb[1] - text_block_top['bbox'][3] - if btn_text_distance= 5: - cur_line = (LL, UU, RR, DD) - res.append(cur_line) - LL = L1 - else: - RR = max(RR, R1) - cur_line = (LL, UU, RR, DD) - res.append(cur_line) - return res - -def fix_tables(page: fitz.Page, table_bboxes: list, include_table_title: bool, scan_line_num: int): - """ - :param page :fitz读取的当前页的内容 - :param table_bboxes: list类型,每一个元素是一个元祖 (L, U, R, D) - :param include_table_title: 是否将表格的标题也圈进来 - :param scan_line_num: 在与表格框临近的上下几个文本框里扫描搜索标题 - """ - - drawings_lines = get_merged_line(page) - fix_table_bboxes = [] - - for table in table_bboxes: - (L, U, R, D) = table - fix_table_L = [] - fix_table_U = [] - fix_table_R = [] - fix_table_D = [] - width = R - L - width_range = width * 0.1 # 只看距离表格整体宽度10%之内偏差的线 - height = D - U - height_range = height * 0.1 # 只看距离表格整体高度10%之内偏差的线 - for line in drawings_lines: - if (L - width_range) <= line[0] <= (L + width_range) and (R - width_range) <= line[2] <= (R + width_range): # 相近的宽度 - if (U - height_range) < line[1] < (U + height_range): # 上边界,在一定的高度范围内 - fix_table_U.append(line[1]) - fix_table_L.append(line[0]) - fix_table_R.append(line[2]) - elif (D - height_range) < line[1] < (D + height_range): # 下边界,在一定的高度范围内 - fix_table_D.append(line[1]) - fix_table_L.append(line[0]) - fix_table_R.append(line[2]) - - if fix_table_U: - U = min(fix_table_U) - if fix_table_D: - D = max(fix_table_D) - if fix_table_L: - L = min(fix_table_L) - if fix_table_R: - R = max(fix_table_R) - - if include_table_title: # 需要将表格标题包括 - text_blocks = page.get_text("dict", flags=fitz.TEXTFLAGS_TEXT)["blocks"] # 所有的text的block - incolumn_text_blocks = [block for block in text_blocks if not ((block['bbox'][0] < L and block['bbox'][2] < L) or (block['bbox'][0] > R and block['bbox'][2] > R))] # 将与表格完全没有任何遮挡的文字筛除掉(比如另一栏的文字) - upper_text_blocks = [block for block in incolumn_text_blocks if (U - block['bbox'][3]) > 0] # 将在表格线以上的text block筛选出来 - sorted_filtered_text_blocks = sorted(upper_text_blocks, key=lambda x: (U - x['bbox'][3], x['bbox'][0])) # 按照text block的下边界距离表格上边界的距离升序排序,如果是同一个高度,则先左再右 - - for idx in range(scan_line_num): - if idx+1 <= len(sorted_filtered_text_blocks): - line_temp = sorted_filtered_text_blocks[idx]['lines'] - if line_temp: - text = line_temp[0]['spans'][0]['text'] # 提取出第一个span里的text内容 - check_en = re.match('Table', text) # 检查是否有Table开头的(英文) - check_ch = re.match('表', text) # 检查是否有Table开头的(中文) - if check_en or check_ch: - if sorted_filtered_text_blocks[idx]['bbox'][1] < D: # 以防出现负的bbox - U = sorted_filtered_text_blocks[idx]['bbox'][1] - - fix_table_bboxes.append([L-2, U-2, R+2, D+2]) - - return fix_table_bboxes - -def __check_table_title_pattern(text): - """ - 检查文本段是否是表格的标题 - """ - patterns = [r'^table\s\d+'] - - for pattern in patterns: - match = re.match(pattern, text, re.IGNORECASE) - if match: - return True - else: - return False - - -def fix_table_text_block(pymu_blocks, table_bboxes: list): - """ - 调整table, 如果table和上下的text block有相交区域,则将table的上下边界调整到text block的上下边界 - 例如 tmp/unittest/unittest_pdf/纯2列_ViLT_6_文字 表格.pdf - """ - for tb in table_bboxes: - (L, U, R, D) = tb - for block in pymu_blocks: - if _is_in_or_part_overlap((L, U, R, D), block['bbox']): - txt = " ".join(span['text'] for line in block['lines'] for span in line['spans']) - if not __check_table_title_pattern(txt) and block.get("_table", False) is False: # 如果是table的title,那么不调整。因为下一步会统一调整,如果这里进行了调整,后面的调整会造成调整到其他table的title上(在连续出现2个table的情况下)。 - tb[0] = min(tb[0], block['bbox'][0]) - tb[1] = min(tb[1], block['bbox'][1]) - tb[2] = max(tb[2], block['bbox'][2]) - tb[3] = max(tb[3], block['bbox'][3]) - block['_table'] = True # 占位,防止其他table再次占用 - - """如果是个table的title,但是有部分重叠,那么修正这个title,使得和table不重叠""" - if _is_part_overlap(tb, block['bbox']) and __check_table_title_pattern(txt): - block['bbox'] = list(block['bbox']) - if block['bbox'][3] > U: - block['bbox'][3] = U-1 - if block['bbox'][1] < D: - block['bbox'][1] = D+1 - - - return table_bboxes - - -def __get_table_caption_text(text_block): - txt = " ".join(span['text'] for line in text_block['lines'] for span in line['spans']) - line_cnt = len(text_block['lines']) - txt = txt.replace("Ž . ", '') - return txt, line_cnt - - -def include_table_title(pymu_blocks, table_bboxes: list): - """ - 把表格的title也包含进来,扩展到table_bbox上 - """ - for tb in table_bboxes: - max_find_cnt = 3 # 上上最多找3次 - temp_box = tb.copy() - while max_find_cnt>0: - text_block_top = find_top_nearest_text_bbox(pymu_blocks, temp_box) - if text_block_top: - txt, line_cnt = __get_table_caption_text(text_block_top) - if len(txt.strip())>0: - if not __check_table_title_pattern(txt) and max_find_cnt>0 and line_cnt<3: - max_find_cnt = max_find_cnt -1 - temp_box[1] = text_block_top['bbox'][1] - continue - else: - break - else: - temp_box[1] = text_block_top['bbox'][1] # 宽度不变,扩大 - max_find_cnt = max_find_cnt - 1 - else: - break - - max_find_cnt = 3 # 向下找 - temp_box = tb.copy() - while max_find_cnt>0: - text_block_bottom = find_bottom_nearest_text_bbox(pymu_blocks, temp_box) - if text_block_bottom: - txt, line_cnt = __get_table_caption_text(text_block_bottom) - if len(txt.strip())>0: - if not __check_table_title_pattern(txt) and max_find_cnt>0 and line_cnt<3: - max_find_cnt = max_find_cnt - 1 - temp_box[3] = text_block_bottom['bbox'][3] - continue - else: - break - else: - temp_box[3] = text_block_bottom['bbox'][3] - max_find_cnt = max_find_cnt - 1 - else: - break - - if text_block_top and text_block_bottom and text_block_top.get("_table_caption", False) is False and text_block_bottom.get("_table_caption", False) is False : - btn_text, _ = __get_table_caption_text(text_block_bottom) - top_text, _ = __get_table_caption_text(text_block_top) - if __check_table_title_pattern(btn_text) and __check_table_title_pattern(top_text): # 上下都有一个tbale的caption - # 取距离最近的 - btn_text_distance = text_block_bottom['bbox'][1] - tb[3] - top_text_distance = tb[1] - text_block_top['bbox'][3] - text_block = text_block_bottom if btn_text_distance 0] - if span_font: - # main_text_font应该用基于字数最多的字体而不是span级别的统计 - # font_names.append(font_name for font_name in span_font) - # block_fonts.append(font_name for font_name in span_font) - for font, count in span_font: - font_names[font] += count - main_text_font = font_names.most_common(1)[0][0] - return main_text_font - diff --git a/magic_pdf/pre_proc/ocr_detect_all_bboxes.py b/magic_pdf/pre_proc/ocr_detect_all_bboxes.py deleted file mode 100644 index 77f242b7d..000000000 --- a/magic_pdf/pre_proc/ocr_detect_all_bboxes.py +++ /dev/null @@ -1,244 +0,0 @@ -from loguru import logger - -from magic_pdf.libs.boxbase import get_minbox_if_overlap_by_ratio, calculate_overlap_area_in_bbox1_area_ratio, \ - calculate_iou, calculate_vertical_projection_overlap_ratio -from magic_pdf.libs.drop_tag import DropTag -from magic_pdf.libs.ocr_content_type import BlockType -from magic_pdf.pre_proc.remove_bbox_overlap import remove_overlap_between_bbox_for_block - - -def ocr_prepare_bboxes_for_layout_split(img_blocks, table_blocks, discarded_blocks, text_blocks, - title_blocks, interline_equation_blocks, page_w, page_h): - all_bboxes = [] - all_discarded_blocks = [] - for image in img_blocks: - x0, y0, x1, y1 = image['bbox'] - all_bboxes.append([x0, y0, x1, y1, None, None, None, BlockType.Image, None, None, None, None, image["score"]]) - - for table in table_blocks: - x0, y0, x1, y1 = table['bbox'] - all_bboxes.append([x0, y0, x1, y1, None, None, None, BlockType.Table, None, None, None, None, table["score"]]) - - for text in text_blocks: - x0, y0, x1, y1 = text['bbox'] - all_bboxes.append([x0, y0, x1, y1, None, None, None, BlockType.Text, None, None, None, None, text["score"]]) - - for title in title_blocks: - x0, y0, x1, y1 = title['bbox'] - all_bboxes.append([x0, y0, x1, y1, None, None, None, BlockType.Title, None, None, None, None, title["score"]]) - - for interline_equation in interline_equation_blocks: - x0, y0, x1, y1 = interline_equation['bbox'] - all_bboxes.append([x0, y0, x1, y1, None, None, None, BlockType.InterlineEquation, None, None, None, None, interline_equation["score"]]) - - '''block嵌套问题解决''' - '''文本框与标题框重叠,优先信任文本框''' - all_bboxes = fix_text_overlap_title_blocks(all_bboxes) - '''任何框体与舍弃框重叠,优先信任舍弃框''' - all_bboxes = remove_need_drop_blocks(all_bboxes, discarded_blocks) - - # interline_equation 与title或text框冲突的情况,分两种情况处理 - '''interline_equation框与文本类型框iou比较接近1的时候,信任行间公式框''' - all_bboxes = fix_interline_equation_overlap_text_blocks_with_hi_iou(all_bboxes) - '''interline_equation框被包含在文本类型框内,且interline_equation比文本区块小很多时信任文本框,这时需要舍弃公式框''' - # 通过后续大框套小框逻辑删除 - - '''discarded_blocks中只保留宽度超过1/3页面宽度的,高度超过10的,处于页面下半50%区域的(限定footnote)''' - for discarded in discarded_blocks: - x0, y0, x1, y1 = discarded['bbox'] - all_discarded_blocks.append([x0, y0, x1, y1, None, None, None, BlockType.Discarded, None, None, None, None, discarded["score"]]) - # 将footnote加入到all_bboxes中,用来计算layout - if (x1 - x0) > (page_w / 3) and (y1 - y0) > 10 and y0 > (page_h / 2): - all_bboxes.append([x0, y0, x1, y1, None, None, None, BlockType.Footnote, None, None, None, None, discarded["score"]]) - - '''经过以上处理后,还存在大框套小框的情况,则删除小框''' - all_bboxes = remove_overlaps_min_blocks(all_bboxes) - all_discarded_blocks = remove_overlaps_min_blocks(all_discarded_blocks) - '''将剩余的bbox做分离处理,防止后面分layout时出错''' - all_bboxes, drop_reasons = remove_overlap_between_bbox_for_block(all_bboxes) - - return all_bboxes, all_discarded_blocks, drop_reasons - - -def add_bboxes(blocks, block_type, bboxes): - for block in blocks: - x0, y0, x1, y1 = block['bbox'] - if block_type in [ - BlockType.ImageBody, BlockType.ImageCaption, BlockType.ImageFootnote, - BlockType.TableBody, BlockType.TableCaption, BlockType.TableFootnote - ]: - bboxes.append([x0, y0, x1, y1, None, None, None, block_type, None, None, None, None, block["score"], block["group_id"]]) - else: - bboxes.append([x0, y0, x1, y1, None, None, None, block_type, None, None, None, None, block["score"]]) - - -def ocr_prepare_bboxes_for_layout_split_v2( - img_body_blocks, img_caption_blocks, img_footnote_blocks, - table_body_blocks, table_caption_blocks, table_footnote_blocks, - discarded_blocks, text_blocks, title_blocks, interline_equation_blocks, page_w, page_h -): - all_bboxes = [] - - add_bboxes(img_body_blocks, BlockType.ImageBody, all_bboxes) - add_bboxes(img_caption_blocks, BlockType.ImageCaption, all_bboxes) - add_bboxes(img_footnote_blocks, BlockType.ImageFootnote, all_bboxes) - add_bboxes(table_body_blocks, BlockType.TableBody, all_bboxes) - add_bboxes(table_caption_blocks, BlockType.TableCaption, all_bboxes) - add_bboxes(table_footnote_blocks, BlockType.TableFootnote, all_bboxes) - add_bboxes(text_blocks, BlockType.Text, all_bboxes) - add_bboxes(title_blocks, BlockType.Title, all_bboxes) - add_bboxes(interline_equation_blocks, BlockType.InterlineEquation, all_bboxes) - - '''block嵌套问题解决''' - '''文本框与标题框重叠,优先信任文本框''' - all_bboxes = fix_text_overlap_title_blocks(all_bboxes) - '''任何框体与舍弃框重叠,优先信任舍弃框''' - all_bboxes = remove_need_drop_blocks(all_bboxes, discarded_blocks) - - # interline_equation 与title或text框冲突的情况,分两种情况处理 - '''interline_equation框与文本类型框iou比较接近1的时候,信任行间公式框''' - all_bboxes = fix_interline_equation_overlap_text_blocks_with_hi_iou(all_bboxes) - '''interline_equation框被包含在文本类型框内,且interline_equation比文本区块小很多时信任文本框,这时需要舍弃公式框''' - # 通过后续大框套小框逻辑删除 - - '''discarded_blocks''' - all_discarded_blocks = [] - add_bboxes(discarded_blocks, BlockType.Discarded, all_discarded_blocks) - - '''footnote识别:宽度超过1/3页面宽度的,高度超过10的,处于页面下半50%区域的''' - footnote_blocks = [] - for discarded in discarded_blocks: - x0, y0, x1, y1 = discarded['bbox'] - if (x1 - x0) > (page_w / 3) and (y1 - y0) > 10 and y0 > (page_h / 2): - footnote_blocks.append([x0, y0, x1, y1]) - - '''移除在footnote下面的任何框''' - need_remove_blocks = find_blocks_under_footnote(all_bboxes, footnote_blocks) - if len(need_remove_blocks) > 0: - for block in need_remove_blocks: - all_bboxes.remove(block) - all_discarded_blocks.append(block) - - '''经过以上处理后,还存在大框套小框的情况,则删除小框''' - all_bboxes = remove_overlaps_min_blocks(all_bboxes) - all_discarded_blocks = remove_overlaps_min_blocks(all_discarded_blocks) - '''将剩余的bbox做分离处理,防止后面分layout时出错''' - all_bboxes, drop_reasons = remove_overlap_between_bbox_for_block(all_bboxes) - - return all_bboxes, all_discarded_blocks - - -def find_blocks_under_footnote(all_bboxes, footnote_blocks): - need_remove_blocks = [] - for block in all_bboxes: - block_x0, block_y0, block_x1, block_y1 = block[:4] - for footnote_bbox in footnote_blocks: - footnote_x0, footnote_y0, footnote_x1, footnote_y1 = footnote_bbox - # 如果footnote的纵向投影覆盖了block的纵向投影的80%且block的y0大于等于footnote的y1 - if block_y0 >= footnote_y1 and calculate_vertical_projection_overlap_ratio((block_x0, block_y0, block_x1, block_y1), footnote_bbox) >= 0.8: - if block not in need_remove_blocks: - need_remove_blocks.append(block) - break - return need_remove_blocks - - -def fix_interline_equation_overlap_text_blocks_with_hi_iou(all_bboxes): - # 先提取所有text和interline block - text_blocks = [] - for block in all_bboxes: - if block[7] == BlockType.Text: - text_blocks.append(block) - interline_equation_blocks = [] - for block in all_bboxes: - if block[7] == BlockType.InterlineEquation: - interline_equation_blocks.append(block) - - need_remove = [] - - for interline_equation_block in interline_equation_blocks: - for text_block in text_blocks: - interline_equation_block_bbox = interline_equation_block[:4] - text_block_bbox = text_block[:4] - if calculate_iou(interline_equation_block_bbox, text_block_bbox) > 0.8: - if text_block not in need_remove: - need_remove.append(text_block) - - if len(need_remove) > 0: - for block in need_remove: - all_bboxes.remove(block) - - return all_bboxes - - -def fix_text_overlap_title_blocks(all_bboxes): - # 先提取所有text和title block - text_blocks = [] - for block in all_bboxes: - if block[7] == BlockType.Text: - text_blocks.append(block) - title_blocks = [] - for block in all_bboxes: - if block[7] == BlockType.Title: - title_blocks.append(block) - - need_remove = [] - - for text_block in text_blocks: - for title_block in title_blocks: - text_block_bbox = text_block[:4] - title_block_bbox = title_block[:4] - if calculate_iou(text_block_bbox, title_block_bbox) > 0.8: - if title_block not in need_remove: - need_remove.append(title_block) - - if len(need_remove) > 0: - for block in need_remove: - all_bboxes.remove(block) - - return all_bboxes - - -def remove_need_drop_blocks(all_bboxes, discarded_blocks): - need_remove = [] - for block in all_bboxes: - for discarded_block in discarded_blocks: - block_bbox = block[:4] - if calculate_overlap_area_in_bbox1_area_ratio(block_bbox, discarded_block['bbox']) > 0.6: - if block not in need_remove: - need_remove.append(block) - break - - if len(need_remove) > 0: - for block in need_remove: - all_bboxes.remove(block) - return all_bboxes - - -def remove_overlaps_min_blocks(all_bboxes): - # 重叠block,小的不能直接删除,需要和大的那个合并成一个更大的。 - # 删除重叠blocks中较小的那些 - need_remove = [] - for block1 in all_bboxes: - for block2 in all_bboxes: - if block1 != block2: - block1_bbox = block1[:4] - block2_bbox = block2[:4] - overlap_box = get_minbox_if_overlap_by_ratio(block1_bbox, block2_bbox, 0.8) - if overlap_box is not None: - block_to_remove = next((block for block in all_bboxes if block[:4] == overlap_box), None) - if block_to_remove is not None and block_to_remove not in need_remove: - large_block = block1 if block1 != block_to_remove else block2 - x1, y1, x2, y2 = large_block[:4] - sx1, sy1, sx2, sy2 = block_to_remove[:4] - x1 = min(x1, sx1) - y1 = min(y1, sy1) - x2 = max(x2, sx2) - y2 = max(y2, sy2) - large_block[:4] = [x1, y1, x2, y2] - need_remove.append(block_to_remove) - - if len(need_remove) > 0: - for block in need_remove: - all_bboxes.remove(block) - - return all_bboxes diff --git a/magic_pdf/pre_proc/ocr_detect_layout.py b/magic_pdf/pre_proc/ocr_detect_layout.py deleted file mode 100644 index 4dad3593d..000000000 --- a/magic_pdf/pre_proc/ocr_detect_layout.py +++ /dev/null @@ -1,133 +0,0 @@ -import fitz - -from magic_pdf.layout.layout_sort import get_bboxes_layout -from magic_pdf.libs.boxbase import _is_part_overlap, _is_in -from magic_pdf.libs.coordinate_transform import get_scale_ratio - - -def get_center_point(bbox): - """ - 根据边界框坐标信息,计算出该边界框的中心点坐标。 - Args: - bbox (list): 边界框坐标信息,包含四个元素,分别为左上角x坐标、左上角y坐标、右下角x坐标、右下角y坐标。 - Returns: - list: 中心点坐标信息,包含两个元素,分别为x坐标和y坐标。 - """ - return [(bbox[0] + bbox[2]) / 2, (bbox[1] + bbox[3]) / 2] - - -def get_area(bbox): - """ - 根据边界框坐标信息,计算出该边界框的面积。 - Args: - bbox (list): 边界框坐标信息,包含四个元素,分别为左上角x坐标、左上角y坐标、右下角x坐标、右下角y坐标。 - Returns: - float: 该边界框的面积。 - """ - return (bbox[2] - bbox[0]) * (bbox[3] - bbox[1]) - - -def adjust_layouts(layout_bboxes, page_boundry, page_id): - # 遍历所有布局框 - for i in range(len(layout_bboxes)): - # 遍历当前布局框之后的布局框 - for j in range(i + 1, len(layout_bboxes)): - # 判断两个布局框是否重叠 - if _is_part_overlap(layout_bboxes[i], layout_bboxes[j]): - # 计算每个布局框的中心点坐标和面积 - area_i = get_area(layout_bboxes[i]) - area_j = get_area(layout_bboxes[j]) - - # 较大布局框和较小布局框的赋值 - if area_i > area_j: - larger_layout, smaller_layout = layout_bboxes[i], layout_bboxes[j] - else: - larger_layout, smaller_layout = layout_bboxes[j], layout_bboxes[i] - - center_large = get_center_point(larger_layout) - center_small = get_center_point(smaller_layout) - # 计算横向和纵向的距离差 - distance_x = center_large[0] - center_small[0] - distance_y = center_large[1] - center_small[1] - - # 根据距离差判断重叠方向并修正边界 - if abs(distance_x) > abs(distance_y): # 左右重叠 - if distance_x > 0 and larger_layout[0] < smaller_layout[2]: - larger_layout[0] = smaller_layout[2]+1 - if distance_x < 0 and larger_layout[2] > smaller_layout[0]: - larger_layout[2] = smaller_layout[0]-1 - else: # 上下重叠 - if distance_y > 0 and larger_layout[1] < smaller_layout[3]: - larger_layout[1] = smaller_layout[3]+1 - if distance_y < 0 and larger_layout[3] > smaller_layout[1]: - larger_layout[3] = smaller_layout[1]-1 - # 排序调整布局边界框列表 - new_bboxes = [] - for layout_bbox in layout_bboxes: - new_bboxes.append([layout_bbox[0], layout_bbox[1], layout_bbox[2], layout_bbox[3], None, None, None, None, None, None, None, None, None]) - - layout_bboxes, layout_tree = get_bboxes_layout(new_bboxes, page_boundry, page_id) - - # 返回排序调整后的布局边界框列表 - return layout_bboxes, layout_tree - - -def layout_detect(layout_info, page: fitz.Page, ocr_page_info): - """ - 对输入的布局信息进行解析,提取出每个子布局的边界框,并对所有子布局进行排序调整。 - - Args: - layout_info (list): 包含子布局信息的列表,每个子布局信息为字典类型,包含'poly'字段,表示子布局的边界框坐标信息。 - - Returns: - list: 经过排序调整后的所有子布局边界框信息的列表,每个边界框信息为字典类型,包含'layout_bbox'字段,表示边界框的坐标信息。 - - """ - page_id = ocr_page_info['page_info']['page_no']-1 - horizontal_scale_ratio, vertical_scale_ratio = get_scale_ratio(ocr_page_info, page) - # 初始化布局边界框列表 - layout_bboxes = [] - # 遍历每个子布局 - for sub_layout in layout_info: - # 提取子布局的边界框坐标信息 - x0, y0, _, _, x1, y1, _, _ = sub_layout['poly'] - bbox = [int(x0 / horizontal_scale_ratio), int(y0 / vertical_scale_ratio), - int(x1 / horizontal_scale_ratio), int(y1 / vertical_scale_ratio)] - - # 将子布局的边界框添加到列表中 - layout_bboxes.append(bbox) - - # 初始化新的布局边界框列表 - new_layout_bboxes = [] - # 遍历每个布局边界框 - for i in range(len(layout_bboxes)): - # 初始化标记变量,用于判断当前边界框是否需要保留 - keep = True - # 获取当前边界框的坐标信息 - box_i = layout_bboxes[i] - - # 遍历其他边界框 - for j in range(len(layout_bboxes)): - # 排除当前边界框自身 - if i != j: - # 获取其他边界框的坐标信息 - box_j = layout_bboxes[j] - # 检测box_i是否被box_j包含 - if _is_in(box_i, box_j): - # 如果当前边界框被其他边界框包含,则标记为不需要保留 - keep = False - # 跳出内层循环 - break - - # 如果当前边界框需要保留,则添加到新的布局边界框列表中 - if keep: - new_layout_bboxes.append(layout_bboxes[i]) - - # 对新的布局边界框列表进行排序调整 - page_width = page.rect.width - page_height = page.rect.height - page_boundry = [0, 0, page_width, page_height] - layout_bboxes, layout_tree = adjust_layouts(new_layout_bboxes, page_boundry, page_id) - - # 返回排序调整后的布局边界框列表 - return layout_bboxes, layout_tree diff --git a/magic_pdf/pre_proc/ocr_dict_merge.py b/magic_pdf/pre_proc/ocr_dict_merge.py deleted file mode 100644 index 1b5539787..000000000 --- a/magic_pdf/pre_proc/ocr_dict_merge.py +++ /dev/null @@ -1,362 +0,0 @@ -from magic_pdf.libs.boxbase import (__is_overlaps_y_exceeds_threshold, - _is_in_or_part_overlap_with_area_ratio, - calculate_overlap_area_in_bbox1_area_ratio) -from magic_pdf.libs.drop_tag import DropTag -from magic_pdf.libs.ocr_content_type import BlockType, ContentType - - -# 将每一个line中的span从左到右排序 -def line_sort_spans_by_left_to_right(lines): - line_objects = [] - for line in lines: - # 按照x0坐标排序 - line.sort(key=lambda span: span['bbox'][0]) - line_bbox = [ - min(span['bbox'][0] for span in line), # x0 - min(span['bbox'][1] for span in line), # y0 - max(span['bbox'][2] for span in line), # x1 - max(span['bbox'][3] for span in line), # y1 - ] - line_objects.append({ - 'bbox': line_bbox, - 'spans': line, - }) - return line_objects - - -def merge_spans_to_line(spans): - if len(spans) == 0: - return [] - else: - # 按照y0坐标排序 - spans.sort(key=lambda span: span['bbox'][1]) - - lines = [] - current_line = [spans[0]] - for span in spans[1:]: - # 如果当前的span类型为"interline_equation" 或者 当前行中已经有"interline_equation" - # image和table类型,同上 - if span['type'] in [ - ContentType.InterlineEquation, ContentType.Image, - ContentType.Table - ] or any(s['type'] in [ - ContentType.InterlineEquation, ContentType.Image, - ContentType.Table - ] for s in current_line): - # 则开始新行 - lines.append(current_line) - current_line = [span] - continue - - # 如果当前的span与当前行的最后一个span在y轴上重叠,则添加到当前行 - if __is_overlaps_y_exceeds_threshold(span['bbox'], current_line[-1]['bbox'], 0.5): - current_line.append(span) - else: - # 否则,开始新行 - lines.append(current_line) - current_line = [span] - - # 添加最后一行 - if current_line: - lines.append(current_line) - - return lines - - -def merge_spans_to_line_by_layout(spans, layout_bboxes): - lines = [] - new_spans = [] - dropped_spans = [] - for item in layout_bboxes: - layout_bbox = item['layout_bbox'] - # 遍历spans,将每个span放入对应的layout中 - layout_sapns = [] - for span in spans: - if calculate_overlap_area_in_bbox1_area_ratio( - span['bbox'], layout_bbox) > 0.6: - layout_sapns.append(span) - # 如果layout_sapns不为空,则放入new_spans中 - if len(layout_sapns) > 0: - new_spans.append(layout_sapns) - # 从spans删除已经放入layout_sapns中的span - for layout_sapn in layout_sapns: - spans.remove(layout_sapn) - - if len(new_spans) > 0: - for layout_sapns in new_spans: - layout_lines = merge_spans_to_line(layout_sapns) - lines.extend(layout_lines) - - # 对line中的span进行排序 - lines = line_sort_spans_by_left_to_right(lines) - - for span in spans: - span['tag'] = DropTag.NOT_IN_LAYOUT - dropped_spans.append(span) - - return lines, dropped_spans - - -def merge_lines_to_block(lines): - # 目前不做block拼接,先做个结构,每个block中只有一个line,block的bbox就是line的bbox - blocks = [] - for line in lines: - blocks.append({ - 'bbox': line['bbox'], - 'lines': [line], - }) - return blocks - - -def sort_blocks_by_layout(all_bboxes, layout_bboxes): - new_blocks = [] - sort_blocks = [] - for item in layout_bboxes: - layout_bbox = item['layout_bbox'] - - # 遍历blocks,将每个blocks放入对应的layout中 - layout_blocks = [] - for block in all_bboxes: - # 如果是footnote则跳过 - if block[7] == BlockType.Footnote: - continue - block_bbox = block[:4] - if calculate_overlap_area_in_bbox1_area_ratio( - block_bbox, layout_bbox) > 0.8: - layout_blocks.append(block) - - # 如果layout_blocks不为空,则放入new_blocks中 - if len(layout_blocks) > 0: - new_blocks.append(layout_blocks) - # 从all_bboxes删除已经放入layout_blocks中的block - for layout_block in layout_blocks: - all_bboxes.remove(layout_block) - - # 如果new_blocks不为空,则对new_blocks中每个block进行排序 - if len(new_blocks) > 0: - for bboxes_in_layout_block in new_blocks: - bboxes_in_layout_block.sort( - key=lambda x: x[1]) # 一个layout内部的box,按照y0自上而下排序 - sort_blocks.extend(bboxes_in_layout_block) - - # sort_blocks中已经包含了当前页面所有最终留下的block,且已经排好了顺序 - return sort_blocks - - -def fill_spans_in_blocks(blocks, spans, radio): - """将allspans中的span按位置关系,放入blocks中.""" - block_with_spans = [] - for block in blocks: - block_type = block[7] - block_bbox = block[0:4] - block_dict = { - 'type': block_type, - 'bbox': block_bbox, - } - if block_type in [ - BlockType.ImageBody, BlockType.ImageCaption, BlockType.ImageFootnote, - BlockType.TableBody, BlockType.TableCaption, BlockType.TableFootnote - ]: - block_dict["group_id"] = block[-1] - block_spans = [] - for span in spans: - span_bbox = span['bbox'] - if calculate_overlap_area_in_bbox1_area_ratio( - span_bbox, block_bbox) > radio: - block_spans.append(span) - '''行内公式调整, 高度调整至与同行文字高度一致(优先左侧, 其次右侧)''' - # displayed_list = [] - # text_inline_lines = [] - # modify_y_axis(block_spans, displayed_list, text_inline_lines) - '''模型识别错误的行间公式, type类型转换成行内公式''' - # block_spans = modify_inline_equation(block_spans, displayed_list, text_inline_lines) - '''bbox去除粘连''' # 去粘连会影响span的bbox,导致后续fill的时候出错 - # block_spans = remove_overlap_between_bbox_for_span(block_spans) - - block_dict['spans'] = block_spans - block_with_spans.append(block_dict) - - # 从spans删除已经放入block_spans中的span - if len(block_spans) > 0: - for span in block_spans: - spans.remove(span) - - return block_with_spans, spans - - -def fix_block_spans(block_with_spans, img_blocks, table_blocks): - """1、img_block和table_block因为包含caption和footnote的关系,存在block的嵌套关系 - 需要将caption和footnote的text_span放入相应img_block和table_block内的 - caption_block和footnote_block中 2、同时需要删除block中的spans字段.""" - fix_blocks = [] - for block in block_with_spans: - block_type = block['type'] - - if block_type == BlockType.Image: - block = fix_image_block(block, img_blocks) - elif block_type == BlockType.Table: - block = fix_table_block(block, table_blocks) - elif block_type in [BlockType.Text, BlockType.Title]: - block = fix_text_block(block) - elif block_type == BlockType.InterlineEquation: - block = fix_interline_block(block) - else: - continue - fix_blocks.append(block) - return fix_blocks - - -def fix_block_spans_v2(block_with_spans): - """1、img_block和table_block因为包含caption和footnote的关系,存在block的嵌套关系 - 需要将caption和footnote的text_span放入相应img_block和table_block内的 - caption_block和footnote_block中 2、同时需要删除block中的spans字段.""" - fix_blocks = [] - for block in block_with_spans: - block_type = block['type'] - - if block_type in [BlockType.Text, BlockType.Title, - BlockType.ImageCaption, BlockType.ImageFootnote, - BlockType.TableCaption, BlockType.TableFootnote - ]: - block = fix_text_block(block) - elif block_type in [BlockType.InterlineEquation, BlockType.ImageBody, BlockType.TableBody]: - block = fix_interline_block(block) - else: - continue - fix_blocks.append(block) - return fix_blocks - - -def fix_discarded_block(discarded_block_with_spans): - fix_discarded_blocks = [] - for block in discarded_block_with_spans: - block = fix_text_block(block) - fix_discarded_blocks.append(block) - return fix_discarded_blocks - - -def merge_spans_to_block(spans: list, block_bbox: list, block_type: str): - block_spans = [] - # 如果有img_caption,则将img_block中的text_spans放入img_caption_block中 - for span in spans: - if calculate_overlap_area_in_bbox1_area_ratio(span['bbox'], - block_bbox) > 0.6: - block_spans.append(span) - block_lines = merge_spans_to_line(block_spans) - # 对line中的span进行排序 - sort_block_lines = line_sort_spans_by_left_to_right(block_lines) - block = {'bbox': block_bbox, 'type': block_type, 'lines': sort_block_lines} - return block, block_spans - - -def make_body_block(span: dict, block_bbox: list, block_type: str): - # 创建body_block - body_line = { - 'bbox': block_bbox, - 'spans': [span], - } - body_block = {'bbox': block_bbox, 'type': block_type, 'lines': [body_line]} - return body_block - - -def fix_image_block(block, img_blocks): - block['blocks'] = [] - # 遍历img_blocks,找到与当前block匹配的img_block - for img_block in img_blocks: - if _is_in_or_part_overlap_with_area_ratio(block['bbox'], - img_block['bbox'], 0.95): - - # 创建img_body_block - for span in block['spans']: - if span['type'] == ContentType.Image and img_block[ - 'img_body_bbox'] == span['bbox']: - # 创建img_body_block - img_body_block = make_body_block( - span, img_block['img_body_bbox'], BlockType.ImageBody) - block['blocks'].append(img_body_block) - - # 从spans中移除img_body_block中已经放入的span - block['spans'].remove(span) - break - - # 根据list长度,判断img_block中是否有img_caption - if img_block['img_caption_bbox'] is not None: - img_caption_block, img_caption_spans = merge_spans_to_block( - block['spans'], img_block['img_caption_bbox'], - BlockType.ImageCaption) - block['blocks'].append(img_caption_block) - - if img_block['img_footnote_bbox'] is not None: - img_footnote_block, img_footnote_spans = merge_spans_to_block( - block['spans'], img_block['img_footnote_bbox'], - BlockType.ImageFootnote) - block['blocks'].append(img_footnote_block) - break - del block['spans'] - return block - - -def fix_table_block(block, table_blocks): - block['blocks'] = [] - # 遍历table_blocks,找到与当前block匹配的table_block - for table_block in table_blocks: - if _is_in_or_part_overlap_with_area_ratio(block['bbox'], - table_block['bbox'], 0.95): - - # 创建table_body_block - for span in block['spans']: - if span['type'] == ContentType.Table and table_block[ - 'table_body_bbox'] == span['bbox']: - # 创建table_body_block - table_body_block = make_body_block( - span, table_block['table_body_bbox'], - BlockType.TableBody) - block['blocks'].append(table_body_block) - - # 从spans中移除img_body_block中已经放入的span - block['spans'].remove(span) - break - - # 根据list长度,判断table_block中是否有caption - if table_block['table_caption_bbox'] is not None: - table_caption_block, table_caption_spans = merge_spans_to_block( - block['spans'], table_block['table_caption_bbox'], - BlockType.TableCaption) - block['blocks'].append(table_caption_block) - - # 如果table_caption_block_spans不为空 - if len(table_caption_spans) > 0: - # 一些span已经放入了caption_block中,需要从block['spans']中删除 - for span in table_caption_spans: - block['spans'].remove(span) - - # 根据list长度,判断table_block中是否有table_note - if table_block['table_footnote_bbox'] is not None: - table_footnote_block, table_footnote_spans = merge_spans_to_block( - block['spans'], table_block['table_footnote_bbox'], - BlockType.TableFootnote) - block['blocks'].append(table_footnote_block) - - break - del block['spans'] - return block - - -def fix_text_block(block): - # 文本block中的公式span都应该转换成行内type - for span in block['spans']: - if span['type'] == ContentType.InterlineEquation: - span['type'] = ContentType.InlineEquation - block_lines = merge_spans_to_line(block['spans']) - sort_block_lines = line_sort_spans_by_left_to_right(block_lines) - block['lines'] = sort_block_lines - del block['spans'] - return block - - -def fix_interline_block(block): - block_lines = merge_spans_to_line(block['spans']) - sort_block_lines = line_sort_spans_by_left_to_right(block_lines) - block['lines'] = sort_block_lines - del block['spans'] - return block diff --git a/magic_pdf/pre_proc/ocr_span_list_modify.py b/magic_pdf/pre_proc/ocr_span_list_modify.py deleted file mode 100644 index 9c2d6cc81..000000000 --- a/magic_pdf/pre_proc/ocr_span_list_modify.py +++ /dev/null @@ -1,263 +0,0 @@ -from loguru import logger - -from magic_pdf.libs.boxbase import calculate_overlap_area_in_bbox1_area_ratio, get_minbox_if_overlap_by_ratio, \ - __is_overlaps_y_exceeds_threshold, calculate_iou -from magic_pdf.libs.drop_tag import DropTag -from magic_pdf.libs.ocr_content_type import ContentType, BlockType - - -def remove_overlaps_low_confidence_spans(spans): - dropped_spans = [] - # 删除重叠spans中置信度低的的那些 - for span1 in spans: - for span2 in spans: - if span1 != span2: - # span1 或 span2 任何一个都不应该在 dropped_spans 中 - if span1 in dropped_spans or span2 in dropped_spans: - continue - else: - if calculate_iou(span1['bbox'], span2['bbox']) > 0.9: - if span1['score'] < span2['score']: - span_need_remove = span1 - else: - span_need_remove = span2 - if span_need_remove is not None and span_need_remove not in dropped_spans: - dropped_spans.append(span_need_remove) - - if len(dropped_spans) > 0: - for span_need_remove in dropped_spans: - spans.remove(span_need_remove) - span_need_remove['tag'] = DropTag.SPAN_OVERLAP - - return spans, dropped_spans - - -def remove_overlaps_min_spans(spans): - dropped_spans = [] - # 删除重叠spans中较小的那些 - for span1 in spans: - for span2 in spans: - if span1 != span2: - overlap_box = get_minbox_if_overlap_by_ratio(span1['bbox'], span2['bbox'], 0.65) - if overlap_box is not None: - span_need_remove = next((span for span in spans if span['bbox'] == overlap_box), None) - if span_need_remove is not None and span_need_remove not in dropped_spans: - dropped_spans.append(span_need_remove) - - if len(dropped_spans) > 0: - for span_need_remove in dropped_spans: - spans.remove(span_need_remove) - span_need_remove['tag'] = DropTag.SPAN_OVERLAP - - return spans, dropped_spans - - -def remove_spans_by_bboxes(spans, need_remove_spans_bboxes): - # 遍历spans, 判断是否在removed_span_block_bboxes中 - # 如果是, 则删除该span 否则, 保留该span - need_remove_spans = [] - for span in spans: - for removed_bbox in need_remove_spans_bboxes: - if calculate_overlap_area_in_bbox1_area_ratio(span['bbox'], removed_bbox) > 0.5: - if span not in need_remove_spans: - need_remove_spans.append(span) - break - - if len(need_remove_spans) > 0: - for span in need_remove_spans: - spans.remove(span) - - return spans - - -def remove_spans_by_bboxes_dict(spans, need_remove_spans_bboxes_dict): - dropped_spans = [] - for drop_tag, removed_bboxes in need_remove_spans_bboxes_dict.items(): - # logger.info(f"remove spans by bbox dict, drop_tag: {drop_tag}, removed_bboxes: {removed_bboxes}") - need_remove_spans = [] - for span in spans: - # 通过判断span的bbox是否在removed_bboxes中, 判断是否需要删除该span - for removed_bbox in removed_bboxes: - if calculate_overlap_area_in_bbox1_area_ratio(span['bbox'], removed_bbox) > 0.5: - need_remove_spans.append(span) - break - # 当drop_tag为DropTag.FOOTNOTE时, 判断span是否在removed_bboxes中任意一个的下方,如果是,则删除该span - elif drop_tag == DropTag.FOOTNOTE and (span['bbox'][1] + span['bbox'][3]) / 2 > removed_bbox[3] and \ - removed_bbox[0] < (span['bbox'][0] + span['bbox'][2]) / 2 < removed_bbox[2]: - need_remove_spans.append(span) - break - - for span in need_remove_spans: - spans.remove(span) - span['tag'] = drop_tag - dropped_spans.append(span) - - return spans, dropped_spans - - -def adjust_bbox_for_standalone_block(spans): - # 对tpye=["interline_equation", "image", "table"]进行额外处理,如果左边有字的话,将该span的bbox中y0调整至不高于文字的y0 - for sb_span in spans: - if sb_span['type'] in [ContentType.InterlineEquation, ContentType.Image, ContentType.Table]: - for text_span in spans: - if text_span['type'] in [ContentType.Text, ContentType.InlineEquation]: - # 判断span2的纵向高度是否被span所覆盖 - if sb_span['bbox'][1] < text_span['bbox'][1] and sb_span['bbox'][3] > text_span['bbox'][3]: - # 判断span2是否在span左边 - if text_span['bbox'][0] < sb_span['bbox'][0]: - # 调整span的y0和span2的y0一致 - sb_span['bbox'][1] = text_span['bbox'][1] - return spans - - -def modify_y_axis(spans: list, displayed_list: list, text_inline_lines: list): - # displayed_list = [] - # 如果spans为空,则不处理 - if len(spans) == 0: - pass - else: - spans.sort(key=lambda span: span['bbox'][1]) - - lines = [] - current_line = [spans[0]] - if spans[0]["type"] in [ContentType.InterlineEquation, ContentType.Image, ContentType.Table]: - displayed_list.append(spans[0]) - - line_first_y0 = spans[0]["bbox"][1] - line_first_y = spans[0]["bbox"][3] - # 用于给行间公式搜索 - # text_inline_lines = [] - for span in spans[1:]: - # if span.get("content","") == "78.": - # print("debug") - # 如果当前的span类型为"interline_equation" 或者 当前行中已经有"interline_equation" - # image和table类型,同上 - if span['type'] in [ContentType.InterlineEquation, ContentType.Image, ContentType.Table] or any( - s['type'] in [ContentType.InterlineEquation, ContentType.Image, ContentType.Table] for s in - current_line): - # 传入 - if span["type"] in [ContentType.InterlineEquation, ContentType.Image, ContentType.Table]: - displayed_list.append(span) - # 则开始新行 - lines.append(current_line) - if len(current_line) > 1 or current_line[0]["type"] in [ContentType.Text, ContentType.InlineEquation]: - text_inline_lines.append((current_line, (line_first_y0, line_first_y))) - current_line = [span] - line_first_y0 = span["bbox"][1] - line_first_y = span["bbox"][3] - continue - - # 如果当前的span与当前行的最后一个span在y轴上重叠,则添加到当前行 - if __is_overlaps_y_exceeds_threshold(span['bbox'], current_line[-1]['bbox']): - if span["type"] == "text": - line_first_y0 = span["bbox"][1] - line_first_y = span["bbox"][3] - current_line.append(span) - - else: - # 否则,开始新行 - lines.append(current_line) - text_inline_lines.append((current_line, (line_first_y0, line_first_y))) - current_line = [span] - line_first_y0 = span["bbox"][1] - line_first_y = span["bbox"][3] - - # 添加最后一行 - if current_line: - lines.append(current_line) - if len(current_line) > 1 or current_line[0]["type"] in [ContentType.Text, ContentType.InlineEquation]: - text_inline_lines.append((current_line, (line_first_y0, line_first_y))) - for line in text_inline_lines: - # 按照x0坐标排序 - current_line = line[0] - current_line.sort(key=lambda span: span['bbox'][0]) - - # 调整每一个文字行内bbox统一 - for line in text_inline_lines: - current_line, (line_first_y0, line_first_y) = line - for span in current_line: - span["bbox"][1] = line_first_y0 - span["bbox"][3] = line_first_y - - # return spans, displayed_list, text_inline_lines - - -def modify_inline_equation(spans: list, displayed_list: list, text_inline_lines: list): - # 错误行间公式转行内公式 - j = 0 - for i in range(len(displayed_list)): - # if i == 8: - # print("debug") - span = displayed_list[i] - span_y0, span_y = span["bbox"][1], span["bbox"][3] - - while j < len(text_inline_lines): - text_line = text_inline_lines[j] - y0, y1 = text_line[1] - if ( - span_y0 < y0 < span_y or span_y0 < y1 < span_y or span_y0 < y0 and span_y > y1 - ) and __is_overlaps_y_exceeds_threshold( - span['bbox'], (0, y0, 0, y1) - ): - # 调整公式类型 - if span["type"] == ContentType.InterlineEquation: - # 最后一行是行间公式 - if j + 1 >= len(text_inline_lines): - span["type"] = ContentType.InlineEquation - span["bbox"][1] = y0 - span["bbox"][3] = y1 - else: - # 行间公式旁边有多行文字或者行间公式比文字高3倍则不转换 - y0_next, y1_next = text_inline_lines[j + 1][1] - if not __is_overlaps_y_exceeds_threshold(span['bbox'], (0, y0_next, 0, y1_next)) and 3 * ( - y1 - y0) > span_y - span_y0: - span["type"] = ContentType.InlineEquation - span["bbox"][1] = y0 - span["bbox"][3] = y1 - break - elif span_y < y0 or span_y0 < y0 < span_y and not __is_overlaps_y_exceeds_threshold(span['bbox'], - (0, y0, 0, y1)): - break - else: - j += 1 - - return spans - - -def get_qa_need_list(blocks): - # 创建 images, tables, interline_equations, inline_equations 的副本 - images = [] - tables = [] - interline_equations = [] - inline_equations = [] - - for block in blocks: - for line in block["lines"]: - for span in line["spans"]: - if span["type"] == ContentType.Image: - images.append(span) - elif span["type"] == ContentType.Table: - tables.append(span) - elif span["type"] == ContentType.InlineEquation: - inline_equations.append(span) - elif span["type"] == ContentType.InterlineEquation: - interline_equations.append(span) - else: - continue - return images, tables, interline_equations, inline_equations - - -def get_qa_need_list_v2(blocks): - # 创建 images, tables, interline_equations, inline_equations 的副本 - images = [] - tables = [] - interline_equations = [] - - for block in blocks: - if block["type"] == BlockType.Image: - images.append(block) - elif block["type"] == BlockType.Table: - tables.append(block) - elif block["type"] == BlockType.InterlineEquation: - interline_equations.append(block) - return images, tables, interline_equations diff --git a/magic_pdf/pre_proc/pdf_pre_filter.py b/magic_pdf/pre_proc/pdf_pre_filter.py deleted file mode 100644 index 1704d0efb..000000000 --- a/magic_pdf/pre_proc/pdf_pre_filter.py +++ /dev/null @@ -1,74 +0,0 @@ -from magic_pdf.libs.commons import fitz -from magic_pdf.libs.boxbase import _is_in, _is_in_or_part_overlap -from magic_pdf.libs.drop_reason import DropReason - - -def __area(box): - return (box[2] - box[0]) * (box[3] - box[1]) - -def __is_contain_color_background_rect(page:fitz.Page, text_blocks, image_bboxes) -> bool: - """ - 检查page是包含有颜色背景的矩形 - """ - color_bg_rect = [] - p_width, p_height = page.rect.width, page.rect.height - - # 先找到最大的带背景矩形 - blocks = page.get_cdrawings() - for block in blocks: - - if 'fill' in block and block['fill']: # 过滤掉透明的 - fill = list(block['fill']) - fill[0], fill[1], fill[2] = int(fill[0]), int(fill[1]), int(fill[2]) - if fill==(1.0,1.0,1.0): - continue - rect = block['rect'] - # 过滤掉特别小的矩形 - if __area(rect) < 10*10: - continue - # 为了防止是svg图片上的色块,这里过滤掉这类 - - if any([_is_in_or_part_overlap(rect, img_bbox) for img_bbox in image_bboxes]): - continue - color_bg_rect.append(rect) - - # 找到最大的背景矩形 - if len(color_bg_rect) > 0: - max_rect = max(color_bg_rect, key=lambda x:__area(x)) - max_rect_int = (int(max_rect[0]), int(max_rect[1]), int(max_rect[2]), int(max_rect[3])) - # 判断最大的背景矩形是否包含超过3行文字,或者50个字 TODO - if max_rect[2]-max_rect[0] > 0.2*p_width and max_rect[3]-max_rect[1] > 0.1*p_height:#宽度符合 - #看是否有文本块落入到这个矩形中 - for text_block in text_blocks: - box = text_block['bbox'] - box_int = (int(box[0]), int(box[1]), int(box[2]), int(box[3])) - if _is_in(box_int, max_rect_int): - return True - - return False - - -def __is_table_overlap_text_block(text_blocks, table_bbox): - """ - 检查table_bbox是否覆盖了text_blocks里的文本块 - TODO - """ - for text_block in text_blocks: - box = text_block['bbox'] - if _is_in_or_part_overlap(table_bbox, box): - return True - return False - - -def pdf_filter(page:fitz.Page, text_blocks, table_bboxes, image_bboxes) -> tuple: - """ - return:(True|False, err_msg) - True, 如果pdf符合要求 - False, 如果pdf不符合要求 - - """ - if __is_contain_color_background_rect(page, text_blocks, image_bboxes): - return False, {"_need_drop": True, "_drop_reason": DropReason.COLOR_BACKGROUND_TEXT_BOX} - - - return True, None \ No newline at end of file diff --git a/magic_pdf/pre_proc/post_layout_split.py b/magic_pdf/pre_proc/post_layout_split.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/pre_proc/remove_bbox_overlap.py b/magic_pdf/pre_proc/remove_bbox_overlap.py deleted file mode 100644 index 2afb07119..000000000 --- a/magic_pdf/pre_proc/remove_bbox_overlap.py +++ /dev/null @@ -1,98 +0,0 @@ -from magic_pdf.libs.boxbase import _is_in_or_part_overlap, _is_in, _is_part_overlap -from magic_pdf.libs.drop_reason import DropReason - -def _remove_overlap_between_bbox(bbox1, bbox2): - if _is_part_overlap(bbox1, bbox2): - ix0, iy0, ix1, iy1 = bbox1 - x0, y0, x1, y1 = bbox2 - - diff_x = min(x1, ix1) - max(x0, ix0) - diff_y = min(y1, iy1) - max(y0, iy0) - - if diff_y > diff_x: - if x1 >= ix1: - mid = (x0 + ix1) // 2 - ix1 = min(mid - 0.25, ix1) - x0 = max(mid + 0.25, x0) - else: - mid = (ix0 + x1) // 2 - ix0 = max(mid + 0.25, ix0) - x1 = min(mid - 0.25, x1) - else: - if y1 >= iy1: - mid = (y0 + iy1) // 2 - y0 = max(mid + 0.25, y0) - iy1 = min(iy1, mid-0.25) - else: - mid = (iy0 + y1) // 2 - y1 = min(y1, mid-0.25) - iy0 = max(mid + 0.25, iy0) - - if ix1 > ix0 and iy1 > iy0 and y1 > y0 and x1 > x0: - bbox1 = [ix0, iy0, ix1, iy1] - bbox2 = [x0, y0, x1, y1] - return bbox1, bbox2, None - else: - return bbox1, bbox2, DropReason.NEGATIVE_BBOX_AREA - else: - return bbox1, bbox2, None - - -def _remove_overlap_between_bboxes(arr): - drop_reasons = [] - N = len(arr) - keeps = [True] * N - res = [None] * N - for i in range(N): - for j in range(N): - if i == j: - continue - if _is_in(arr[i]["bbox"], arr[j]["bbox"]): - keeps[i] = False - - for idx, v in enumerate(arr): - if not keeps[idx]: - continue - for i in range(N): - if res[i] is None: - continue - - bbox1, bbox2, drop_reason = _remove_overlap_between_bbox(v["bbox"], res[i]["bbox"]) - if drop_reason is None: - v["bbox"] = bbox1 - res[i]["bbox"] = bbox2 - else: - if v["score"] > res[i]["score"]: - keeps[i] = False - res[i] = None - else: - keeps[idx] = False - drop_reasons.append(drop_reasons) - if keeps[idx]: - res[idx] = v - return res, drop_reasons - - -def remove_overlap_between_bbox_for_span(spans): - arr = [{"bbox": span["bbox"], "score": span.get("score", 0.1)} for span in spans ] - res, drop_reasons = _remove_overlap_between_bboxes(arr) - ret = [] - for i in range(len(res)): - if res[i] is None: - continue - spans[i]["bbox"] = res[i]["bbox"] - ret.append(spans[i]) - return ret, drop_reasons - - -def remove_overlap_between_bbox_for_block(all_bboxes): - arr = [{"bbox": bbox[:4], "score": bbox[-1]} for bbox in all_bboxes ] - res, drop_reasons = _remove_overlap_between_bboxes(arr) - ret = [] - for i in range(len(res)): - if res[i] is None: - continue - all_bboxes[i][:4] = res[i]["bbox"] - ret.append(all_bboxes[i]) - return ret, drop_reasons - diff --git a/magic_pdf/pre_proc/remove_colored_strip_bbox.py b/magic_pdf/pre_proc/remove_colored_strip_bbox.py deleted file mode 100644 index 17be73aa5..000000000 --- a/magic_pdf/pre_proc/remove_colored_strip_bbox.py +++ /dev/null @@ -1,79 +0,0 @@ -from magic_pdf.libs.boxbase import _is_in, _is_in_or_part_overlap, calculate_overlap_area_2_minbox_area_ratio -from loguru import logger - -from magic_pdf.libs.drop_tag import COLOR_BG_HEADER_TXT_BLOCK - - -def __area(box): - return (box[2] - box[0]) * (box[3] - box[1]) - - -def rectangle_position_determination(rect, p_width): - """ - 判断矩形是否在页面中轴线附近。 - - Args: - rect (list): 矩形坐标,格式为[x1, y1, x2, y2]。 - p_width (int): 页面宽度。 - - Returns: - bool: 若矩形在页面中轴线附近则返回True,否则返回False。 - """ - # 页面中轴线x坐标 - x_axis = p_width / 2 - # 矩形是否跨越中轴线 - is_span = rect[0] < x_axis and rect[2] > x_axis - if is_span: - return True - else: - # 矩形与中轴线的距离,只算近的那一边 - distance = rect[0] - x_axis if rect[0] > x_axis else x_axis - rect[2] - # 判断矩形与中轴线的距离是否小于页面宽度的20% - if distance < p_width * 0.2: - return True - else: - return False - -def remove_colored_strip_textblock(remain_text_blocks, page): - """ - 根据页面中特定颜色和大小过滤文本块,将符合条件的文本块从remain_text_blocks中移除,并返回移除的文本块列表colored_strip_textblock。 - - Args: - remain_text_blocks (list): 剩余文本块列表。 - page (Page): 页面对象。 - - Returns: - tuple: 剩余文本块列表和移除的文本块列表。 - """ - colored_strip_textblocks = [] # 先构造一个空的返回 - if len(remain_text_blocks) > 0: - p_width, p_height = page.rect.width, page.rect.height - blocks = page.get_cdrawings() - colored_strip_bg_rect = [] - for block in blocks: - is_filled = 'fill' in block and block['fill'] and block['fill'] != (1.0, 1.0, 1.0) # 过滤掉透明的 - rect = block['rect'] - area_is_large_enough = __area(rect) > 100 # 过滤掉特别小的矩形 - rectangle_position_determination_result = rectangle_position_determination(rect, p_width) - in_upper_half_page = rect[3] < p_height * 0.3 # 找到位于页面上半部分的矩形,下边界小于页面高度的30% - aspect_ratio_exceeds_4 = (rect[2] - rect[0]) > (rect[3] - rect[1]) * 4 # 找到长宽比超过4的矩形 - - if is_filled and area_is_large_enough and rectangle_position_determination_result and in_upper_half_page and aspect_ratio_exceeds_4: - colored_strip_bg_rect.append(rect) - - if len(colored_strip_bg_rect) > 0: - for colored_strip_block_bbox in colored_strip_bg_rect: - for text_block in remain_text_blocks: - text_bbox = text_block['bbox'] - if _is_in(text_bbox, colored_strip_block_bbox) or (_is_in_or_part_overlap(text_bbox, colored_strip_block_bbox) and calculate_overlap_area_2_minbox_area_ratio(text_bbox, colored_strip_block_bbox) > 0.6): - logger.info(f'remove_colored_strip_textblock: {text_bbox}, {colored_strip_block_bbox}') - text_block['tag'] = COLOR_BG_HEADER_TXT_BLOCK - colored_strip_textblocks.append(text_block) - - if len(colored_strip_textblocks) > 0: - for colored_strip_textblock in colored_strip_textblocks: - if colored_strip_textblock in remain_text_blocks: - remain_text_blocks.remove(colored_strip_textblock) - - return remain_text_blocks, colored_strip_textblocks - diff --git a/magic_pdf/pre_proc/remove_footer_header.py b/magic_pdf/pre_proc/remove_footer_header.py deleted file mode 100644 index 9e04817c3..000000000 --- a/magic_pdf/pre_proc/remove_footer_header.py +++ /dev/null @@ -1,117 +0,0 @@ -import re - -from magic_pdf.libs.boxbase import _is_in_or_part_overlap -from magic_pdf.libs.drop_tag import CONTENT_IN_FOOT_OR_HEADER, PAGE_NO - - -def remove_headder_footer_one_page(text_raw_blocks, image_bboxes, table_bboxes, header_bboxs, footer_bboxs, - page_no_bboxs, page_w, page_h): - """ - 删除页眉页脚,页码 - 从line级别进行删除,删除之后观察这个text-block是否是空的,如果是空的,则移动到remove_list中 - """ - header = [] - footer = [] - if len(header) == 0: - model_header = header_bboxs - if model_header: - x0 = min([x for x, _, _, _ in model_header]) - y0 = min([y for _, y, _, _ in model_header]) - x1 = max([x1 for _, _, x1, _ in model_header]) - y1 = max([y1 for _, _, _, y1 in model_header]) - header = [x0, y0, x1, y1] - if len(footer) == 0: - model_footer = footer_bboxs - if model_footer: - x0 = min([x for x, _, _, _ in model_footer]) - y0 = min([y for _, y, _, _ in model_footer]) - x1 = max([x1 for _, _, x1, _ in model_footer]) - y1 = max([y1 for _, _, _, y1 in model_footer]) - footer = [x0, y0, x1, y1] - - header_y0 = 0 if len(header) == 0 else header[3] - footer_y0 = page_h if len(footer) == 0 else footer[1] - if page_no_bboxs: - top_part = [b for b in page_no_bboxs if b[3] < page_h / 2] - btn_part = [b for b in page_no_bboxs if b[1] > page_h / 2] - - top_max_y0 = max([b[1] for b in top_part]) if top_part else 0 - btn_min_y1 = min([b[3] for b in btn_part]) if btn_part else page_h - - header_y0 = max(header_y0, top_max_y0) - footer_y0 = min(footer_y0, btn_min_y1) - - content_boundry = [0, header_y0, page_w, footer_y0] - - header = [0, 0, page_w, header_y0] - footer = [0, footer_y0, page_w, page_h] - - """以上计算出来了页眉页脚的边界,下面开始进行删除""" - text_block_to_remove = [] - # 首先检查每个textblock - for blk in text_raw_blocks: - if len(blk['lines']) > 0: - for line in blk['lines']: - line_del = [] - for span in line['spans']: - span_del = [] - if span['bbox'][3] < header_y0: - span_del.append(span) - elif _is_in_or_part_overlap(span['bbox'], header) or _is_in_or_part_overlap(span['bbox'], footer): - span_del.append(span) - for span in span_del: - line['spans'].remove(span) - if not line['spans']: - line_del.append(line) - - for line in line_del: - blk['lines'].remove(line) - else: - # if not blk['lines']: - blk['tag'] = CONTENT_IN_FOOT_OR_HEADER - text_block_to_remove.append(blk) - - """有的时候由于pageNo太小了,总是会有一点和content_boundry重叠一点,被放入正文,因此对于pageNo,进行span粒度的删除""" - page_no_block_2_remove = [] - if page_no_bboxs: - for pagenobox in page_no_bboxs: - for block in text_raw_blocks: - if _is_in_or_part_overlap(pagenobox, block['bbox']): # 在span级别删除页码 - for line in block['lines']: - for span in line['spans']: - if _is_in_or_part_overlap(pagenobox, span['bbox']): - # span['text'] = '' - span['tag'] = PAGE_NO - # 检查这个block是否只有这一个span,如果是,那么就把这个block也删除 - if len(line['spans']) == 1 and len(block['lines']) == 1: - page_no_block_2_remove.append(block) - else: - # 测试最后一个是不是页码:规则是,最后一个block仅有1个line,一个span,且text是数字,空格,符号组成,不含字母,并且包含数字 - if len(text_raw_blocks) > 0: - text_raw_blocks.sort(key=lambda x: x['bbox'][1], reverse=True) - last_block = text_raw_blocks[0] - if len(last_block['lines']) == 1: - last_line = last_block['lines'][0] - if len(last_line['spans']) == 1: - last_span = last_line['spans'][0] - if last_span['text'].strip() and not re.search('[a-zA-Z]', last_span['text']) and re.search('[0-9]', - last_span[ - 'text']): - last_span['tag'] = PAGE_NO - page_no_block_2_remove.append(last_block) - - for b in page_no_block_2_remove: - text_block_to_remove.append(b) - - for blk in text_block_to_remove: - if blk in text_raw_blocks: - text_raw_blocks.remove(blk) - - text_block_remain = text_raw_blocks - image_bbox_to_remove = [bbox for bbox in image_bboxes if not _is_in_or_part_overlap(bbox, content_boundry)] - - image_bbox_remain = [bbox for bbox in image_bboxes if _is_in_or_part_overlap(bbox, content_boundry)] - table_bbox_to_remove = [bbox for bbox in table_bboxes if not _is_in_or_part_overlap(bbox, content_boundry)] - table_bbox_remain = [bbox for bbox in table_bboxes if _is_in_or_part_overlap(bbox, content_boundry)] - - return image_bbox_remain, table_bbox_remain, text_block_remain, text_block_to_remove, image_bbox_to_remove, table_bbox_to_remove diff --git a/magic_pdf/pre_proc/remove_rotate_bbox.py b/magic_pdf/pre_proc/remove_rotate_bbox.py deleted file mode 100644 index d47aa51c5..000000000 --- a/magic_pdf/pre_proc/remove_rotate_bbox.py +++ /dev/null @@ -1,188 +0,0 @@ -import math - -from magic_pdf.libs.boxbase import is_vbox_on_side -from magic_pdf.libs.drop_tag import EMPTY_SIDE_BLOCK, ROTATE_TEXT, VERTICAL_TEXT - - -def detect_non_horizontal_texts(result_dict): - """ - This function detects watermarks and vertical margin notes in the document. - - Watermarks are identified by finding blocks with the same coordinates and frequently occurring identical texts across multiple pages. - If these conditions are met, the blocks are highly likely to be watermarks, as opposed to headers or footers, which can change from page to page. - If the direction of these blocks is not horizontal, they are definitely considered to be watermarks. - - Vertical margin notes are identified by finding blocks with the same coordinates and frequently occurring identical texts across multiple pages. - If these conditions are met, the blocks are highly likely to be vertical margin notes, which typically appear on the left and right sides of the page. - If the direction of these blocks is vertical, they are definitely considered to be vertical margin notes. - - - Parameters - ---------- - result_dict : dict - The result dictionary. - - Returns - ------- - result_dict : dict - The updated result dictionary. - """ - # Dictionary to store information about potential watermarks - potential_watermarks = {} - potential_margin_notes = {} - - for page_id, page_content in result_dict.items(): - if page_id.startswith("page_"): - for block_id, block_data in page_content.items(): - if block_id.startswith("block_"): - if "dir" in block_data: - coordinates_text = (block_data["bbox"], block_data["text"]) # Tuple of coordinates and text - - angle = math.atan2(block_data["dir"][1], block_data["dir"][0]) - angle = abs(math.degrees(angle)) - - if angle > 5 and angle < 85: # Check if direction is watermarks - if coordinates_text in potential_watermarks: - potential_watermarks[coordinates_text] += 1 - else: - potential_watermarks[coordinates_text] = 1 - - if angle > 85 and angle < 105: # Check if direction is vertical - if coordinates_text in potential_margin_notes: - potential_margin_notes[coordinates_text] += 1 # Increment count - else: - potential_margin_notes[coordinates_text] = 1 # Initialize count - - # Identify watermarks by finding entries with counts higher than a threshold (e.g., appearing on more than half of the pages) - watermark_threshold = len(result_dict) // 2 - watermarks = {k: v for k, v in potential_watermarks.items() if v > watermark_threshold} - - # Identify margin notes by finding entries with counts higher than a threshold (e.g., appearing on more than half of the pages) - margin_note_threshold = len(result_dict) // 2 - margin_notes = {k: v for k, v in potential_margin_notes.items() if v > margin_note_threshold} - - # Add watermark information to the result dictionary - for page_id, blocks in result_dict.items(): - if page_id.startswith("page_"): - for block_id, block_data in blocks.items(): - coordinates_text = (block_data["bbox"], block_data["text"]) - if coordinates_text in watermarks: - block_data["is_watermark"] = 1 - else: - block_data["is_watermark"] = 0 - - if coordinates_text in margin_notes: - block_data["is_vertical_margin_note"] = 1 - else: - block_data["is_vertical_margin_note"] = 0 - - return result_dict - - -""" -1. 当一个block里全部文字都不是dir=(1,0),这个block整体去掉 -2. 当一个block里全部文字都是dir=(1,0),但是每行只有一个字,这个block整体去掉。这个block必须出现在页面的四周,否则不去掉 -""" -import re - -def __is_a_word(sentence): - # 如果输入是中文并且长度为1,则返回True - if re.fullmatch(r'[\u4e00-\u9fa5]', sentence): - return True - # 判断是否为单个英文单词或字符(包括ASCII标点) - elif re.fullmatch(r'[a-zA-Z0-9]+', sentence) and len(sentence) <=2: - return True - else: - return False - - -def __get_text_color(num): - """获取字体的颜色RGB值""" - blue = num & 255 - green = (num >> 8) & 255 - red = (num >> 16) & 255 - return red, green, blue - - -def __is_empty_side_box(text_block): - """ - 是否是边缘上的空白没有任何内容的block - """ - for line in text_block['lines']: - for span in line['spans']: - font_color = span['color'] - r,g,b = __get_text_color(font_color) - if len(span['text'].strip())>0 and (r,g,b)!=(255,255,255): - return False - - return True - - -def remove_rotate_side_textblock(pymu_text_block, page_width, page_height): - """ - 返回删除了垂直,水印,旋转的textblock - 删除的内容打上tag返回 - """ - removed_text_block = [] - - for i, block in enumerate(pymu_text_block): # 格式参考test/assets/papre/pymu_textblocks.json - lines = block['lines'] - block_bbox = block['bbox'] - if not is_vbox_on_side(block_bbox, page_width, page_height, 0.2): # 保证这些box必须在页面的两边 - continue - - if all([__is_a_word(line['spans'][0]["text"]) for line in lines if len(line['spans'])>0]) and len(lines)>1 and all([len(line['spans'])==1 for line in lines]): - is_box_valign = (len(set([int(line['spans'][0]['bbox'][0] ) for line in lines if len(line['spans'])>0]))==1) and (len([int(line['spans'][0]['bbox'][0] ) for line in lines if len(line['spans'])>0])>1) # 测试bbox在垂直方向是不是x0都相等,也就是在垂直方向排列.同时必须大于等于2个字 - - if is_box_valign: - block['tag'] = VERTICAL_TEXT - removed_text_block.append(block) - continue - - for line in lines: - if line['dir']!=(1,0): - block['tag'] = ROTATE_TEXT - removed_text_block.append(block) # 只要有一个line不是dir=(1,0),就把整个block都删掉 - break - - for block in removed_text_block: - pymu_text_block.remove(block) - - return pymu_text_block, removed_text_block - -def get_side_boundry(rotate_bbox, page_width, page_height): - """ - 根据rotate_bbox,返回页面的左右正文边界 - """ - left_x = 0 - right_x = page_width - for x in rotate_bbox: - box = x['bbox'] - if box[2]0.05: - # text_block['tag'] = "belong-to-interline-equation" - # text_block_removed_2.append(text_block) - # break - - # for tb in text_block_removed_2: - # if tb in text_raw_blocks: - # text_raw_blocks.remove(tb) - - # text_block_removed = text_block_removed + text_block_removed_2 - - return images, tables, interline_equations, inline_equations, text_raw_blocks, text_block_removed, images_backup, text_block_removed_2 - - -def check_text_block_horizontal_overlap(text_blocks: list, header, footer) -> bool: - """ - 检查文本block之间的水平重叠情况,这种情况如果发生,那么这个pdf就不再继续处理了。 - 因为这种情况大概率发生了公式没有被检测出来。 - - """ - if len(text_blocks) == 0: - return False - - page_min_y = 0 - page_max_y = max(yy['bbox'][3] for yy in text_blocks) - - def __max_y(lst: list): - if len(lst) > 0: - return max([item[1] for item in lst]) - return page_min_y - - def __min_y(lst: list): - if len(lst) > 0: - return min([item[3] for item in lst]) - return page_max_y - - clip_y0 = __max_y(header) - clip_y1 = __min_y(footer) - - txt_bboxes = [] - for text_block in text_blocks: - bbox = text_block["bbox"] - if bbox[1] >= clip_y0 and bbox[3] <= clip_y1: - txt_bboxes.append(bbox) - - for i in range(len(txt_bboxes)): - for j in range(i + 1, len(txt_bboxes)): - if _is_left_overlap(txt_bboxes[i], txt_bboxes[j]) or _is_left_overlap(txt_bboxes[j], txt_bboxes[i]): - return True - - return False - - -def check_useful_block_horizontal_overlap(useful_blocks: list) -> bool: - """ - 检查文本block之间的水平重叠情况,这种情况如果发生,那么这个pdf就不再继续处理了。 - 因为这种情况大概率发生了公式没有被检测出来。 - - """ - if len(useful_blocks) == 0: - return False - - page_min_y = 0 - page_max_y = max(yy['bbox'][3] for yy in useful_blocks) - - useful_bboxes = [] - for text_block in useful_blocks: - bbox = text_block["bbox"] - if bbox[1] >= page_min_y and bbox[3] <= page_max_y: - useful_bboxes.append(bbox) - - for i in range(len(useful_bboxes)): - for j in range(i + 1, len(useful_bboxes)): - area_i = (useful_bboxes[i][2] - useful_bboxes[i][0]) * (useful_bboxes[i][3] - useful_bboxes[i][1]) - area_j = (useful_bboxes[j][2] - useful_bboxes[j][0]) * (useful_bboxes[j][3] - useful_bboxes[j][1]) - if _is_left_overlap(useful_bboxes[i], useful_bboxes[j]) or _is_left_overlap(useful_bboxes[j], useful_bboxes[i]): - if area_i > area_j: - return True, useful_bboxes[j], useful_bboxes[i] - else: - return True, useful_bboxes[i], useful_bboxes[j] - - return False, None, None diff --git a/magic_pdf/pre_proc/solve_line_alien.py b/magic_pdf/pre_proc/solve_line_alien.py deleted file mode 100644 index 966fb89ea..000000000 --- a/magic_pdf/pre_proc/solve_line_alien.py +++ /dev/null @@ -1,29 +0,0 @@ -def solve_inline_too_large_interval(pdf_info_dict: dict) -> dict: # text_block -> json中的preproc_block - """解决行内文本间距过大问题""" - for i in range(len(pdf_info_dict)): - - text_blocks = pdf_info_dict[f'page_{i}']['preproc_blocks'] - - for block in text_blocks: - - x_pre_1, y_pre_1, x_pre_2, y_pre_2 = 0, 0, 0, 0 - - for line in block['lines']: - - x_cur_1, y_cur_1, x_cur_2, y_cur_2 = line['bbox'] - # line_box = [x1, y1, x2, y2] - if int(y_cur_1) == int(y_pre_1) and int(y_cur_2) == int(y_pre_2): - # if len(line['spans']) == 1: - line['spans'][0]['text'] = ' ' + line['spans'][0]['text'] - - x_pre_1, y_pre_1, x_pre_2, y_pre_2 = line['bbox'] - - return pdf_info_dict - - - - - - - - diff --git a/magic_pdf/pre_proc/statistics.py b/magic_pdf/pre_proc/statistics.py deleted file mode 100644 index 5bf7c78fe..000000000 --- a/magic_pdf/pre_proc/statistics.py +++ /dev/null @@ -1,12 +0,0 @@ - -""" -统计处需要跨页、全局性的数据 -- 统计出字号从大到小 -- 正文区域占比最高的前5 -- 正文平均行间距 -- 正文平均字间距 -- 正文平均字符宽度 -- 正文平均字符高度 - -""" - diff --git a/magic_pdf/resources/model_config/UniMERNet/demo.yaml b/magic_pdf/resources/model_config/UniMERNet/demo.yaml deleted file mode 100644 index de83b07ae..000000000 --- a/magic_pdf/resources/model_config/UniMERNet/demo.yaml +++ /dev/null @@ -1,46 +0,0 @@ -model: - arch: unimernet - model_type: unimernet - model_config: - model_name: ./models/unimernet_base - max_seq_len: 1536 - - load_pretrained: True - pretrained: './models/unimernet_base/pytorch_model.pth' - tokenizer_config: - path: ./models/unimernet_base - -datasets: - formula_rec_eval: - vis_processor: - eval: - name: "formula_image_eval" - image_size: - - 192 - - 672 - -run: - runner: runner_iter - task: unimernet_train - - batch_size_train: 64 - batch_size_eval: 64 - num_workers: 1 - - iters_per_inner_epoch: 2000 - max_iters: 60000 - - seed: 42 - output_dir: "../output/demo" - - evaluate: True - test_splits: [ "eval" ] - - device: "cuda" - world_size: 1 - dist_url: "env://" - distributed: True - distributed_type: ddp # or fsdp when train llm - - generate_cfg: - temperature: 0.0 \ No newline at end of file diff --git a/magic_pdf/resources/model_config/layoutlmv3/layoutlmv3_base_inference.yaml b/magic_pdf/resources/model_config/layoutlmv3/layoutlmv3_base_inference.yaml deleted file mode 100644 index 3e0fd309f..000000000 --- a/magic_pdf/resources/model_config/layoutlmv3/layoutlmv3_base_inference.yaml +++ /dev/null @@ -1,351 +0,0 @@ -AUG: - DETR: true -CACHE_DIR: ~/cache/huggingface -CUDNN_BENCHMARK: false -DATALOADER: - ASPECT_RATIO_GROUPING: true - FILTER_EMPTY_ANNOTATIONS: false - NUM_WORKERS: 4 - REPEAT_THRESHOLD: 0.0 - SAMPLER_TRAIN: TrainingSampler -DATASETS: - PRECOMPUTED_PROPOSAL_TOPK_TEST: 1000 - PRECOMPUTED_PROPOSAL_TOPK_TRAIN: 2000 - PROPOSAL_FILES_TEST: [] - PROPOSAL_FILES_TRAIN: [] - TEST: - - scihub_train - TRAIN: - - scihub_train -GLOBAL: - HACK: 1.0 -ICDAR_DATA_DIR_TEST: '' -ICDAR_DATA_DIR_TRAIN: '' -INPUT: - CROP: - ENABLED: true - SIZE: - - 384 - - 600 - TYPE: absolute_range - FORMAT: RGB - MASK_FORMAT: polygon - MAX_SIZE_TEST: 1333 - MAX_SIZE_TRAIN: 1333 - MIN_SIZE_TEST: 800 - MIN_SIZE_TRAIN: - - 480 - - 512 - - 544 - - 576 - - 608 - - 640 - - 672 - - 704 - - 736 - - 768 - - 800 - MIN_SIZE_TRAIN_SAMPLING: choice - RANDOM_FLIP: horizontal -MODEL: - ANCHOR_GENERATOR: - ANGLES: - - - -90 - - 0 - - 90 - ASPECT_RATIOS: - - - 0.5 - - 1.0 - - 2.0 - NAME: DefaultAnchorGenerator - OFFSET: 0.0 - SIZES: - - - 32 - - - 64 - - - 128 - - - 256 - - - 512 - BACKBONE: - FREEZE_AT: 2 - NAME: build_vit_fpn_backbone - CONFIG_PATH: '' - DEVICE: cuda - FPN: - FUSE_TYPE: sum - IN_FEATURES: - - layer3 - - layer5 - - layer7 - - layer11 - NORM: '' - OUT_CHANNELS: 256 - IMAGE_ONLY: true - KEYPOINT_ON: false - LOAD_PROPOSALS: false - MASK_ON: true - META_ARCHITECTURE: VLGeneralizedRCNN - PANOPTIC_FPN: - COMBINE: - ENABLED: true - INSTANCES_CONFIDENCE_THRESH: 0.5 - OVERLAP_THRESH: 0.5 - STUFF_AREA_LIMIT: 4096 - INSTANCE_LOSS_WEIGHT: 1.0 - PIXEL_MEAN: - - 127.5 - - 127.5 - - 127.5 - PIXEL_STD: - - 127.5 - - 127.5 - - 127.5 - PROPOSAL_GENERATOR: - MIN_SIZE: 0 - NAME: RPN - RESNETS: - DEFORM_MODULATED: false - DEFORM_NUM_GROUPS: 1 - DEFORM_ON_PER_STAGE: - - false - - false - - false - - false - DEPTH: 50 - NORM: FrozenBN - NUM_GROUPS: 1 - OUT_FEATURES: - - res4 - RES2_OUT_CHANNELS: 256 - RES5_DILATION: 1 - STEM_OUT_CHANNELS: 64 - STRIDE_IN_1X1: true - WIDTH_PER_GROUP: 64 - RETINANET: - BBOX_REG_LOSS_TYPE: smooth_l1 - BBOX_REG_WEIGHTS: - - 1.0 - - 1.0 - - 1.0 - - 1.0 - FOCAL_LOSS_ALPHA: 0.25 - FOCAL_LOSS_GAMMA: 2.0 - IN_FEATURES: - - p3 - - p4 - - p5 - - p6 - - p7 - IOU_LABELS: - - 0 - - -1 - - 1 - IOU_THRESHOLDS: - - 0.4 - - 0.5 - NMS_THRESH_TEST: 0.5 - NORM: '' - NUM_CLASSES: 10 - NUM_CONVS: 4 - PRIOR_PROB: 0.01 - SCORE_THRESH_TEST: 0.05 - SMOOTH_L1_LOSS_BETA: 0.1 - TOPK_CANDIDATES_TEST: 1000 - ROI_BOX_CASCADE_HEAD: - BBOX_REG_WEIGHTS: - - - 10.0 - - 10.0 - - 5.0 - - 5.0 - - - 20.0 - - 20.0 - - 10.0 - - 10.0 - - - 30.0 - - 30.0 - - 15.0 - - 15.0 - IOUS: - - 0.5 - - 0.6 - - 0.7 - ROI_BOX_HEAD: - BBOX_REG_LOSS_TYPE: smooth_l1 - BBOX_REG_LOSS_WEIGHT: 1.0 - BBOX_REG_WEIGHTS: - - 10.0 - - 10.0 - - 5.0 - - 5.0 - CLS_AGNOSTIC_BBOX_REG: true - CONV_DIM: 256 - FC_DIM: 1024 - NAME: FastRCNNConvFCHead - NORM: '' - NUM_CONV: 0 - NUM_FC: 2 - POOLER_RESOLUTION: 7 - POOLER_SAMPLING_RATIO: 0 - POOLER_TYPE: ROIAlignV2 - SMOOTH_L1_BETA: 0.0 - TRAIN_ON_PRED_BOXES: false - ROI_HEADS: - BATCH_SIZE_PER_IMAGE: 512 - IN_FEATURES: - - p2 - - p3 - - p4 - - p5 - IOU_LABELS: - - 0 - - 1 - IOU_THRESHOLDS: - - 0.5 - NAME: CascadeROIHeads - NMS_THRESH_TEST: 0.5 - NUM_CLASSES: 10 - POSITIVE_FRACTION: 0.25 - PROPOSAL_APPEND_GT: true - SCORE_THRESH_TEST: 0.05 - ROI_KEYPOINT_HEAD: - CONV_DIMS: - - 512 - - 512 - - 512 - - 512 - - 512 - - 512 - - 512 - - 512 - LOSS_WEIGHT: 1.0 - MIN_KEYPOINTS_PER_IMAGE: 1 - NAME: KRCNNConvDeconvUpsampleHead - NORMALIZE_LOSS_BY_VISIBLE_KEYPOINTS: true - NUM_KEYPOINTS: 17 - POOLER_RESOLUTION: 14 - POOLER_SAMPLING_RATIO: 0 - POOLER_TYPE: ROIAlignV2 - ROI_MASK_HEAD: - CLS_AGNOSTIC_MASK: false - CONV_DIM: 256 - NAME: MaskRCNNConvUpsampleHead - NORM: '' - NUM_CONV: 4 - POOLER_RESOLUTION: 14 - POOLER_SAMPLING_RATIO: 0 - POOLER_TYPE: ROIAlignV2 - RPN: - BATCH_SIZE_PER_IMAGE: 256 - BBOX_REG_LOSS_TYPE: smooth_l1 - BBOX_REG_LOSS_WEIGHT: 1.0 - BBOX_REG_WEIGHTS: - - 1.0 - - 1.0 - - 1.0 - - 1.0 - BOUNDARY_THRESH: -1 - CONV_DIMS: - - -1 - HEAD_NAME: StandardRPNHead - IN_FEATURES: - - p2 - - p3 - - p4 - - p5 - - p6 - IOU_LABELS: - - 0 - - -1 - - 1 - IOU_THRESHOLDS: - - 0.3 - - 0.7 - LOSS_WEIGHT: 1.0 - NMS_THRESH: 0.7 - POSITIVE_FRACTION: 0.5 - POST_NMS_TOPK_TEST: 1000 - POST_NMS_TOPK_TRAIN: 2000 - PRE_NMS_TOPK_TEST: 1000 - PRE_NMS_TOPK_TRAIN: 2000 - SMOOTH_L1_BETA: 0.0 - SEM_SEG_HEAD: - COMMON_STRIDE: 4 - CONVS_DIM: 128 - IGNORE_VALUE: 255 - IN_FEATURES: - - p2 - - p3 - - p4 - - p5 - LOSS_WEIGHT: 1.0 - NAME: SemSegFPNHead - NORM: GN - NUM_CLASSES: 10 - VIT: - DROP_PATH: 0.1 - IMG_SIZE: - - 224 - - 224 - NAME: layoutlmv3_base - OUT_FEATURES: - - layer3 - - layer5 - - layer7 - - layer11 - POS_TYPE: abs - WEIGHTS: -OUTPUT_DIR: -SCIHUB_DATA_DIR_TRAIN: ~/publaynet/layout_scihub/train -SEED: 42 -SOLVER: - AMP: - ENABLED: true - BACKBONE_MULTIPLIER: 1.0 - BASE_LR: 0.0002 - BIAS_LR_FACTOR: 1.0 - CHECKPOINT_PERIOD: 2000 - CLIP_GRADIENTS: - CLIP_TYPE: full_model - CLIP_VALUE: 1.0 - ENABLED: true - NORM_TYPE: 2.0 - GAMMA: 0.1 - GRADIENT_ACCUMULATION_STEPS: 1 - IMS_PER_BATCH: 32 - LR_SCHEDULER_NAME: WarmupCosineLR - MAX_ITER: 20000 - MOMENTUM: 0.9 - NESTEROV: false - OPTIMIZER: ADAMW - REFERENCE_WORLD_SIZE: 0 - STEPS: - - 10000 - WARMUP_FACTOR: 0.01 - WARMUP_ITERS: 333 - WARMUP_METHOD: linear - WEIGHT_DECAY: 0.05 - WEIGHT_DECAY_BIAS: null - WEIGHT_DECAY_NORM: 0.0 -TEST: - AUG: - ENABLED: false - FLIP: true - MAX_SIZE: 4000 - MIN_SIZES: - - 400 - - 500 - - 600 - - 700 - - 800 - - 900 - - 1000 - - 1100 - - 1200 - DETECTIONS_PER_IMAGE: 100 - EVAL_PERIOD: 1000 - EXPECTED_RESULTS: [] - KEYPOINT_OKS_SIGMAS: [] - PRECISE_BN: - ENABLED: false - NUM_ITER: 200 -VERSION: 2 -VIS_PERIOD: 0 diff --git a/magic_pdf/resources/model_config/model_configs.yaml b/magic_pdf/resources/model_config/model_configs.yaml deleted file mode 100644 index e56d6ee19..000000000 --- a/magic_pdf/resources/model_config/model_configs.yaml +++ /dev/null @@ -1,7 +0,0 @@ -weights: - layoutlmv3: Layout/LayoutLMv3/model_final.pth - doclayout_yolo: Layout/YOLO/doclayout_yolo_ft.pt - yolo_v8_mfd: MFD/YOLO/yolo_v8_ft.pt - unimernet_small: MFR/unimernet_small - struct_eqtable: TabRec/StructEqTable - tablemaster: TabRec/TableMaster \ No newline at end of file diff --git a/magic_pdf/rw/AbsReaderWriter.py b/magic_pdf/rw/AbsReaderWriter.py deleted file mode 100644 index 78e455af3..000000000 --- a/magic_pdf/rw/AbsReaderWriter.py +++ /dev/null @@ -1,17 +0,0 @@ -from abc import ABC, abstractmethod - - -class AbsReaderWriter(ABC): - MODE_TXT = "text" - MODE_BIN = "binary" - @abstractmethod - def read(self, path: str, mode=MODE_TXT): - raise NotImplementedError - - @abstractmethod - def write(self, content: str, path: str, mode=MODE_TXT): - raise NotImplementedError - - @abstractmethod - def read_offset(self, path: str, offset=0, limit=None) -> bytes: - raise NotImplementedError diff --git a/magic_pdf/rw/DiskReaderWriter.py b/magic_pdf/rw/DiskReaderWriter.py deleted file mode 100644 index dd627fde4..000000000 --- a/magic_pdf/rw/DiskReaderWriter.py +++ /dev/null @@ -1,74 +0,0 @@ -import os -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from loguru import logger - - -class DiskReaderWriter(AbsReaderWriter): - def __init__(self, parent_path, encoding="utf-8"): - self.path = parent_path - self.encoding = encoding - - def read(self, path, mode=AbsReaderWriter.MODE_TXT): - if os.path.isabs(path): - abspath = path - else: - abspath = os.path.join(self.path, path) - if not os.path.exists(abspath): - logger.error(f"file {abspath} not exists") - raise Exception(f"file {abspath} no exists") - if mode == AbsReaderWriter.MODE_TXT: - with open(abspath, "r", encoding=self.encoding) as f: - return f.read() - elif mode == AbsReaderWriter.MODE_BIN: - with open(abspath, "rb") as f: - return f.read() - else: - raise ValueError("Invalid mode. Use 'text' or 'binary'.") - - def write(self, content, path, mode=AbsReaderWriter.MODE_TXT): - if os.path.isabs(path): - abspath = path - else: - abspath = os.path.join(self.path, path) - directory_path = os.path.dirname(abspath) - if not os.path.exists(directory_path): - os.makedirs(directory_path) - if mode == AbsReaderWriter.MODE_TXT: - with open(abspath, "w", encoding=self.encoding, errors="replace") as f: - f.write(content) - - elif mode == AbsReaderWriter.MODE_BIN: - with open(abspath, "wb") as f: - f.write(content) - else: - raise ValueError("Invalid mode. Use 'text' or 'binary'.") - - def read_offset(self, path: str, offset=0, limit=None): - abspath = path - if not os.path.isabs(path): - abspath = os.path.join(self.path, path) - with open(abspath, "rb") as f: - f.seek(offset) - return f.read(limit) - - -if __name__ == "__main__": - if 0: - file_path = "io/test/example.txt" - drw = DiskReaderWriter("D:\projects\papayfork\Magic-PDF\magic_pdf") - - # 写入内容到文件 - drw.write(b"Hello, World!", path="io/test/example.txt", mode="binary") - - # 从文件读取内容 - content = drw.read(path=file_path) - if content: - logger.info(f"从 {file_path} 读取的内容: {content}") - if 1: - drw = DiskReaderWriter("/opt/data/pdf/resources/test/io/") - content_bin = drw.read_offset("1.txt") - assert content_bin == b"ABCD!" - - content_bin = drw.read_offset("1.txt", offset=1, limit=2) - assert content_bin == b"BC" - diff --git a/magic_pdf/rw/S3ReaderWriter.py b/magic_pdf/rw/S3ReaderWriter.py deleted file mode 100644 index ac1cc1f17..000000000 --- a/magic_pdf/rw/S3ReaderWriter.py +++ /dev/null @@ -1,142 +0,0 @@ -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.libs.commons import parse_aws_param, parse_bucket_key, join_path -import boto3 -from loguru import logger -from botocore.config import Config - - -class S3ReaderWriter(AbsReaderWriter): - def __init__( - self, - ak: str, - sk: str, - endpoint_url: str, - addressing_style: str = "auto", - parent_path: str = "", - ): - self.client = self._get_client(ak, sk, endpoint_url, addressing_style) - self.path = parent_path - - def _get_client(self, ak: str, sk: str, endpoint_url: str, addressing_style: str): - s3_client = boto3.client( - service_name="s3", - aws_access_key_id=ak, - aws_secret_access_key=sk, - endpoint_url=endpoint_url, - config=Config( - s3={"addressing_style": addressing_style}, - retries={"max_attempts": 5, "mode": "standard"}, - ), - ) - return s3_client - - def read(self, s3_relative_path, mode=AbsReaderWriter.MODE_TXT, encoding="utf-8"): - if s3_relative_path.startswith("s3://"): - s3_path = s3_relative_path - else: - s3_path = join_path(self.path, s3_relative_path) - bucket_name, key = parse_bucket_key(s3_path) - res = self.client.get_object(Bucket=bucket_name, Key=key) - body = res["Body"].read() - if mode == AbsReaderWriter.MODE_TXT: - data = body.decode(encoding) # Decode bytes to text - elif mode == AbsReaderWriter.MODE_BIN: - data = body - else: - raise ValueError("Invalid mode. Use 'text' or 'binary'.") - return data - - def write(self, content, s3_relative_path, mode=AbsReaderWriter.MODE_TXT, encoding="utf-8"): - if s3_relative_path.startswith("s3://"): - s3_path = s3_relative_path - else: - s3_path = join_path(self.path, s3_relative_path) - if mode == AbsReaderWriter.MODE_TXT: - body = content.encode(encoding) # Encode text data as bytes - elif mode == AbsReaderWriter.MODE_BIN: - body = content - else: - raise ValueError("Invalid mode. Use 'text' or 'binary'.") - bucket_name, key = parse_bucket_key(s3_path) - self.client.put_object(Body=body, Bucket=bucket_name, Key=key) - logger.info(f"内容已写入 {s3_path} ") - - def read_offset(self, path: str, offset=0, limit=None) -> bytes: - if path.startswith("s3://"): - s3_path = path - else: - s3_path = join_path(self.path, path) - bucket_name, key = parse_bucket_key(s3_path) - - range_header = ( - f"bytes={offset}-{offset+limit-1}" if limit else f"bytes={offset}-" - ) - res = self.client.get_object(Bucket=bucket_name, Key=key, Range=range_header) - return res["Body"].read() - - -if __name__ == "__main__": - if 0: - # Config the connection info - ak = "" - sk = "" - endpoint_url = "" - addressing_style = "auto" - bucket_name = "" - # Create an S3ReaderWriter object - s3_reader_writer = S3ReaderWriter( - ak, sk, endpoint_url, addressing_style, "s3://bucket_name/" - ) - - # Write text data to S3 - text_data = "This is some text data" - s3_reader_writer.write( - text_data, - s3_relative_path=f"s3://{bucket_name}/ebook/test/test.json", - mode=AbsReaderWriter.MODE_TXT, - ) - - # Read text data from S3 - text_data_read = s3_reader_writer.read( - s3_relative_path=f"s3://{bucket_name}/ebook/test/test.json", mode=AbsReaderWriter.MODE_TXT - ) - logger.info(f"Read text data from S3: {text_data_read}") - # Write binary data to S3 - binary_data = b"This is some binary data" - s3_reader_writer.write( - text_data, - s3_relative_path=f"s3://{bucket_name}/ebook/test/test.json", - mode=AbsReaderWriter.MODE_BIN, - ) - - # Read binary data from S3 - binary_data_read = s3_reader_writer.read( - s3_relative_path=f"s3://{bucket_name}/ebook/test/test.json", mode=AbsReaderWriter.MODE_BIN - ) - logger.info(f"Read binary data from S3: {binary_data_read}") - - # Range Read text data from S3 - binary_data_read = s3_reader_writer.read_offset( - path=f"s3://{bucket_name}/ebook/test/test.json", offset=0, limit=10 - ) - logger.info(f"Read binary data from S3: {binary_data_read}") - if 1: - import os - import json - - ak = os.getenv("AK", "") - sk = os.getenv("SK", "") - endpoint_url = os.getenv("ENDPOINT", "") - bucket = os.getenv("S3_BUCKET", "") - prefix = os.getenv("S3_PREFIX", "") - key_basename = os.getenv("S3_KEY_BASENAME", "") - s3_reader_writer = S3ReaderWriter( - ak, sk, endpoint_url, "auto", f"s3://{bucket}/{prefix}" - ) - content_bin = s3_reader_writer.read_offset(key_basename) - assert content_bin[:10] == b'{"track_id' - assert content_bin[-10:] == b'r":null}}\n' - - content_bin = s3_reader_writer.read_offset(key_basename, offset=424, limit=426) - jso = json.dumps(content_bin.decode("utf-8")) - print(jso) diff --git a/magic_pdf/rw/__init__.py b/magic_pdf/rw/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/spark/__init__.py b/magic_pdf/spark/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/spark/spark_api.py b/magic_pdf/spark/spark_api.py deleted file mode 100644 index bf0045ac7..000000000 --- a/magic_pdf/spark/spark_api.py +++ /dev/null @@ -1,51 +0,0 @@ -from loguru import logger - -from magic_pdf.libs.drop_reason import DropReason - - -def get_data_source(jso: dict): - data_source = jso.get("data_source") - if data_source is None: - data_source = jso.get("file_source") - return data_source - - -def get_data_type(jso: dict): - data_type = jso.get("data_type") - if data_type is None: - data_type = jso.get("file_type") - return data_type - - -def get_bookid(jso: dict): - book_id = jso.get("bookid") - if book_id is None: - book_id = jso.get("original_file_id") - return book_id - - -def exception_handler(jso: dict, e): - logger.exception(e) - jso["_need_drop"] = True - jso["_drop_reason"] = DropReason.Exception - jso["_exception"] = f"ERROR: {e}" - return jso - - -def get_bookname(jso: dict): - data_source = get_data_source(jso) - file_id = jso.get("file_id") - book_name = f"{data_source}/{file_id}" - return book_name - - -def spark_json_extractor(jso: dict) -> dict: - - """ - 从json中提取数据,返回一个dict - """ - - return { - "_pdf_type": jso["_pdf_type"], - "model_list": jso["doc_layout_result"], - } diff --git a/magic_pdf/tools/__init__.py b/magic_pdf/tools/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/tools/cli.py b/magic_pdf/tools/cli.py deleted file mode 100644 index c19176fa3..000000000 --- a/magic_pdf/tools/cli.py +++ /dev/null @@ -1,119 +0,0 @@ -import os -from pathlib import Path - -import click -from loguru import logger - -import magic_pdf.model as model_config -from magic_pdf.libs.version import __version__ -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter -from magic_pdf.tools.common import do_parse, parse_pdf_methods - - -@click.command() -@click.version_option(__version__, - '--version', - '-v', - help='display the version and exit') -@click.option( - '-p', - '--path', - 'path', - type=click.Path(exists=True), - required=True, - help='local pdf filepath or directory', -) -@click.option( - '-o', - '--output-dir', - 'output_dir', - type=click.Path(), - required=True, - help='output local directory', -) -@click.option( - '-m', - '--method', - 'method', - type=parse_pdf_methods, - help="""the method for parsing pdf. -ocr: using ocr technique to extract information from pdf. -txt: suitable for the text-based pdf only and outperform ocr. -auto: automatically choose the best method for parsing pdf from ocr and txt. -without method specified, auto will be used by default.""", - default='auto', -) -@click.option( - '-l', - '--lang', - 'lang', - type=str, - help=""" - Input the languages in the pdf (if known) to improve OCR accuracy. Optional. - You should input "Abbreviation" with language form url: - https://paddlepaddle.github.io/PaddleOCR/latest/en/ppocr/blog/multi_languages.html#5-support-languages-and-abbreviations - """, - default=None, -) -@click.option( - '-d', - '--debug', - 'debug_able', - type=bool, - help='Enables detailed debugging information during the execution of the CLI commands.', - default=False, -) -@click.option( - '-s', - '--start', - 'start_page_id', - type=int, - help='The starting page for PDF parsing, beginning from 0.', - default=0, -) -@click.option( - '-e', - '--end', - 'end_page_id', - type=int, - help='The ending page for PDF parsing, beginning from 0.', - default=None, -) -def cli(path, output_dir, method, lang, debug_able, start_page_id, end_page_id): - model_config.__use_inside_model__ = True - model_config.__model_mode__ = 'full' - os.makedirs(output_dir, exist_ok=True) - - def read_fn(path): - disk_rw = DiskReaderWriter(os.path.dirname(path)) - return disk_rw.read(os.path.basename(path), AbsReaderWriter.MODE_BIN) - - def parse_doc(doc_path: str): - try: - file_name = str(Path(doc_path).stem) - pdf_data = read_fn(doc_path) - do_parse( - output_dir, - file_name, - pdf_data, - [], - method, - debug_able, - start_page_id=start_page_id, - end_page_id=end_page_id, - lang=lang - ) - - except Exception as e: - logger.exception(e) - - if os.path.isdir(path): - for doc_path in Path(path).glob('*.pdf'): - parse_doc(doc_path) - else: - parse_doc(path) - - -if __name__ == '__main__': - cli() diff --git a/magic_pdf/tools/cli_dev.py b/magic_pdf/tools/cli_dev.py deleted file mode 100644 index c037f262f..000000000 --- a/magic_pdf/tools/cli_dev.py +++ /dev/null @@ -1,152 +0,0 @@ -import json as json_parse -import os -from pathlib import Path - -import click - -import magic_pdf.model as model_config -from magic_pdf.libs.config_reader import get_s3_config -from magic_pdf.libs.path_utils import (parse_s3_range_params, parse_s3path, - remove_non_official_s3_args) -from magic_pdf.libs.version import __version__ -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter -from magic_pdf.rw.S3ReaderWriter import S3ReaderWriter -from magic_pdf.tools.common import do_parse, parse_pdf_methods - - -def read_s3_path(s3path): - bucket, key = parse_s3path(s3path) - - s3_ak, s3_sk, s3_endpoint = get_s3_config(bucket) - s3_rw = S3ReaderWriter(s3_ak, s3_sk, s3_endpoint, 'auto', - remove_non_official_s3_args(s3path)) - may_range_params = parse_s3_range_params(s3path) - if may_range_params is None or 2 != len(may_range_params): - byte_start, byte_end = 0, None - else: - byte_start, byte_end = int(may_range_params[0]), int( - may_range_params[1]) - return s3_rw.read_offset( - remove_non_official_s3_args(s3path), - byte_start, - byte_end, - ) - - -@click.group() -@click.version_option(__version__, '--version', '-v', help='显示版本信息') -def cli(): - pass - - -@cli.command() -@click.option( - '-j', - '--jsonl', - 'jsonl', - type=str, - help='输入 jsonl 路径,本地或者 s3 上的文件', - required=True, -) -@click.option( - '-m', - '--method', - 'method', - type=parse_pdf_methods, - help='指定解析方法。txt: 文本型 pdf 解析方法, ocr: 光学识别解析 pdf, auto: 程序智能选择解析方法', - default='auto', -) -@click.option( - '-o', - '--output-dir', - 'output_dir', - type=click.Path(), - required=True, - help='输出到本地目录', -) -def jsonl(jsonl, method, output_dir): - model_config.__use_inside_model__ = False - if jsonl.startswith('s3://'): - jso = json_parse.loads(read_s3_path(jsonl).decode('utf-8')) - else: - with open(jsonl) as f: - jso = json_parse.loads(f.readline()) - os.makedirs(output_dir, exist_ok=True) - s3_file_path = jso.get('file_location') - if s3_file_path is None: - s3_file_path = jso.get('path') - pdf_file_name = Path(s3_file_path).stem - pdf_data = read_s3_path(s3_file_path) - - print(pdf_file_name, jso, method) - do_parse( - output_dir, - pdf_file_name, - pdf_data, - jso['doc_layout_result'], - method, - False, - f_dump_content_list=True, - f_draw_model_bbox=True, - ) - - -@cli.command() -@click.option( - '-p', - '--pdf', - 'pdf', - type=click.Path(exists=True), - required=True, - help='本地 PDF 文件', -) -@click.option( - '-j', - '--json', - 'json_data', - type=click.Path(exists=True), - required=True, - help='本地模型推理出的 json 数据', -) -@click.option('-o', - '--output-dir', - 'output_dir', - type=click.Path(), - required=True, - help='本地输出目录') -@click.option( - '-m', - '--method', - 'method', - type=parse_pdf_methods, - help='指定解析方法。txt: 文本型 pdf 解析方法, ocr: 光学识别解析 pdf, auto: 程序智能选择解析方法', - default='auto', -) -def pdf(pdf, json_data, output_dir, method): - model_config.__use_inside_model__ = False - full_pdf_path = os.path.realpath(pdf) - os.makedirs(output_dir, exist_ok=True) - - def read_fn(path): - disk_rw = DiskReaderWriter(os.path.dirname(path)) - return disk_rw.read(os.path.basename(path), AbsReaderWriter.MODE_BIN) - - model_json_list = json_parse.loads(read_fn(json_data).decode('utf-8')) - - file_name = str(Path(full_pdf_path).stem) - pdf_data = read_fn(full_pdf_path) - do_parse( - output_dir, - file_name, - pdf_data, - model_json_list, - method, - False, - f_dump_content_list=True, - f_draw_model_bbox=True, - ) - - -if __name__ == '__main__': - cli() diff --git a/magic_pdf/tools/common.py b/magic_pdf/tools/common.py deleted file mode 100644 index c98da4c37..000000000 --- a/magic_pdf/tools/common.py +++ /dev/null @@ -1,152 +0,0 @@ -import copy -import json as json_parse -import os - -import click -from loguru import logger - -import magic_pdf.model as model_config -from magic_pdf.libs.draw_bbox import (draw_layout_bbox, draw_line_sort_bbox, - draw_model_bbox, draw_span_bbox) -from magic_pdf.libs.MakeContentConfig import DropMode, MakeMode -from magic_pdf.pipe.OCRPipe import OCRPipe -from magic_pdf.pipe.TXTPipe import TXTPipe -from magic_pdf.pipe.UNIPipe import UNIPipe -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter - - -def prepare_env(output_dir, pdf_file_name, method): - local_parent_dir = os.path.join(output_dir, pdf_file_name, method) - - local_image_dir = os.path.join(str(local_parent_dir), 'images') - local_md_dir = local_parent_dir - os.makedirs(local_image_dir, exist_ok=True) - os.makedirs(local_md_dir, exist_ok=True) - return local_image_dir, local_md_dir - - -def do_parse( - output_dir, - pdf_file_name, - pdf_bytes, - model_list, - parse_method, - debug_able, - f_draw_span_bbox=True, - f_draw_layout_bbox=True, - f_dump_md=True, - f_dump_middle_json=True, - f_dump_model_json=True, - f_dump_orig_pdf=True, - f_dump_content_list=True, - f_make_md_mode=MakeMode.MM_MD, - f_draw_model_bbox=False, - f_draw_line_sort_bbox=False, - start_page_id=0, - end_page_id=None, - lang=None, - layout_model=None, - formula_enable=None, - table_enable=None, -): - if debug_able: - logger.warning('debug mode is on') - f_draw_model_bbox = True - f_draw_line_sort_bbox = True - - orig_model_list = copy.deepcopy(model_list) - local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, - parse_method) - - image_writer, md_writer = DiskReaderWriter( - local_image_dir), DiskReaderWriter(local_md_dir) - image_dir = str(os.path.basename(local_image_dir)) - - if parse_method == 'auto': - jso_useful_key = {'_pdf_type': '', 'model_list': model_list} - pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer, is_debug=True, - start_page_id=start_page_id, end_page_id=end_page_id, lang=lang, - layout_model=layout_model, formula_enable=formula_enable, table_enable=table_enable) - elif parse_method == 'txt': - pipe = TXTPipe(pdf_bytes, model_list, image_writer, is_debug=True, - start_page_id=start_page_id, end_page_id=end_page_id, lang=lang, - layout_model=layout_model, formula_enable=formula_enable, table_enable=table_enable) - elif parse_method == 'ocr': - pipe = OCRPipe(pdf_bytes, model_list, image_writer, is_debug=True, - start_page_id=start_page_id, end_page_id=end_page_id, lang=lang, - layout_model=layout_model, formula_enable=formula_enable, table_enable=table_enable) - else: - logger.error('unknown parse method') - exit(1) - - pipe.pipe_classify() - - if len(model_list) == 0: - if model_config.__use_inside_model__: - pipe.pipe_analyze() - orig_model_list = copy.deepcopy(pipe.model_list) - else: - logger.error('need model list input') - exit(2) - - pipe.pipe_parse() - pdf_info = pipe.pdf_mid_data['pdf_info'] - if f_draw_layout_bbox: - draw_layout_bbox(pdf_info, pdf_bytes, local_md_dir, pdf_file_name) - if f_draw_span_bbox: - draw_span_bbox(pdf_info, pdf_bytes, local_md_dir, pdf_file_name) - if f_draw_model_bbox: - draw_model_bbox(copy.deepcopy(orig_model_list), pdf_bytes, local_md_dir, pdf_file_name) - if f_draw_line_sort_bbox: - draw_line_sort_bbox(pdf_info, pdf_bytes, local_md_dir, pdf_file_name) - - md_content = pipe.pipe_mk_markdown(image_dir, - drop_mode=DropMode.NONE, - md_make_mode=f_make_md_mode) - if f_dump_md: - md_writer.write( - content=md_content, - path=f'{pdf_file_name}.md', - mode=AbsReaderWriter.MODE_TXT, - ) - - if f_dump_middle_json: - md_writer.write( - content=json_parse.dumps(pipe.pdf_mid_data, - ensure_ascii=False, - indent=4), - path=f'{pdf_file_name}_middle.json', - mode=AbsReaderWriter.MODE_TXT, - ) - - if f_dump_model_json: - md_writer.write( - content=json_parse.dumps(orig_model_list, - ensure_ascii=False, - indent=4), - path=f'{pdf_file_name}_model.json', - mode=AbsReaderWriter.MODE_TXT, - ) - - if f_dump_orig_pdf: - md_writer.write( - content=pdf_bytes, - path=f'{pdf_file_name}_origin.pdf', - mode=AbsReaderWriter.MODE_BIN, - ) - - content_list = pipe.pipe_mk_uni_format(image_dir, drop_mode=DropMode.NONE) - if f_dump_content_list: - md_writer.write( - content=json_parse.dumps(content_list, - ensure_ascii=False, - indent=4), - path=f'{pdf_file_name}_content_list.json', - mode=AbsReaderWriter.MODE_TXT, - ) - - logger.info(f'local output dir is {local_md_dir}') - - -parse_pdf_methods = click.Choice(['ocr', 'txt', 'auto']) diff --git a/magic_pdf/user_api.py b/magic_pdf/user_api.py deleted file mode 100644 index 2a4bd59e5..000000000 --- a/magic_pdf/user_api.py +++ /dev/null @@ -1,130 +0,0 @@ -""" -用户输入: - model数组,每个元素代表一个页面 - pdf在s3的路径 - 截图保存的s3位置 - -然后: - 1)根据s3路径,调用spark集群的api,拿到ak,sk,endpoint,构造出s3PDFReader - 2)根据用户输入的s3地址,调用spark集群的api,拿到ak,sk,endpoint,构造出s3ImageWriter - -其余部分至于构造s3cli, 获取ak,sk都在code-clean里写代码完成。不要反向依赖!!! - -""" -import re - -from loguru import logger - -from magic_pdf.libs.version import __version__ -from magic_pdf.model.doc_analyze_by_custom_model import doc_analyze -from magic_pdf.rw import AbsReaderWriter -from magic_pdf.pdf_parse_by_ocr import parse_pdf_by_ocr -from magic_pdf.pdf_parse_by_txt import parse_pdf_by_txt - -PARSE_TYPE_TXT = "txt" -PARSE_TYPE_OCR = "ocr" - - -def parse_txt_pdf(pdf_bytes: bytes, pdf_models: list, imageWriter: AbsReaderWriter, is_debug=False, - start_page_id=0, end_page_id=None, lang=None, - *args, **kwargs): - """ - 解析文本类pdf - """ - pdf_info_dict = parse_pdf_by_txt( - pdf_bytes, - pdf_models, - imageWriter, - start_page_id=start_page_id, - end_page_id=end_page_id, - debug_mode=is_debug, - ) - - pdf_info_dict["_parse_type"] = PARSE_TYPE_TXT - - pdf_info_dict["_version_name"] = __version__ - - if lang is not None: - pdf_info_dict["_lang"] = lang - - return pdf_info_dict - - -def parse_ocr_pdf(pdf_bytes: bytes, pdf_models: list, imageWriter: AbsReaderWriter, is_debug=False, - start_page_id=0, end_page_id=None, lang=None, - *args, **kwargs): - """ - 解析ocr类pdf - """ - pdf_info_dict = parse_pdf_by_ocr( - pdf_bytes, - pdf_models, - imageWriter, - start_page_id=start_page_id, - end_page_id=end_page_id, - debug_mode=is_debug, - ) - - pdf_info_dict["_parse_type"] = PARSE_TYPE_OCR - - pdf_info_dict["_version_name"] = __version__ - - if lang is not None: - pdf_info_dict["_lang"] = lang - - return pdf_info_dict - - -def parse_union_pdf(pdf_bytes: bytes, pdf_models: list, imageWriter: AbsReaderWriter, is_debug=False, - input_model_is_empty: bool = False, - start_page_id=0, end_page_id=None, lang=None, - *args, **kwargs): - """ - ocr和文本混合的pdf,全部解析出来 - """ - - def parse_pdf(method): - try: - return method( - pdf_bytes, - pdf_models, - imageWriter, - start_page_id=start_page_id, - end_page_id=end_page_id, - debug_mode=is_debug, - ) - except Exception as e: - logger.exception(e) - return None - - pdf_info_dict = parse_pdf(parse_pdf_by_txt) - if pdf_info_dict is None or pdf_info_dict.get("_need_drop", False): - logger.warning(f"parse_pdf_by_txt drop or error, switch to parse_pdf_by_ocr") - if input_model_is_empty: - layout_model = kwargs.get("layout_model", None) - formula_enable = kwargs.get("formula_enable", None) - table_enable = kwargs.get("table_enable", None) - pdf_models = doc_analyze( - pdf_bytes, - ocr=True, - start_page_id=start_page_id, - end_page_id=end_page_id, - lang=lang, - layout_model=layout_model, - formula_enable=formula_enable, - table_enable=table_enable, - ) - pdf_info_dict = parse_pdf(parse_pdf_by_ocr) - if pdf_info_dict is None: - raise Exception("Both parse_pdf_by_txt and parse_pdf_by_ocr failed.") - else: - pdf_info_dict["_parse_type"] = PARSE_TYPE_OCR - else: - pdf_info_dict["_parse_type"] = PARSE_TYPE_TXT - - pdf_info_dict["_version_name"] = __version__ - - if lang is not None: - pdf_info_dict["_lang"] = lang - - return pdf_info_dict diff --git a/magic_pdf/utils/__init__.py b/magic_pdf/utils/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/magic_pdf/utils/annotations.py b/magic_pdf/utils/annotations.py deleted file mode 100644 index 898d88033..000000000 --- a/magic_pdf/utils/annotations.py +++ /dev/null @@ -1,11 +0,0 @@ - -from loguru import logger - - -def ImportPIL(f): - try: - import PIL # noqa: F401 - except ImportError: - logger.error('Pillow not installed, please install by pip.') - exit(1) - return f diff --git a/mineru.template.json b/mineru.template.json new file mode 100644 index 000000000..7d979ec8c --- /dev/null +++ b/mineru.template.json @@ -0,0 +1,30 @@ +{ + "bucket_info":{ + "bucket-name-1":["ak", "sk", "endpoint"], + "bucket-name-2":["ak", "sk", "endpoint"] + }, + "latex-delimiter-config": { + "display": { + "left": "$$", + "right": "$$" + }, + "inline": { + "left": "$", + "right": "$" + } + }, + "llm-aided-config": { + "title_aided": { + "api_key": "your_api_key", + "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", + "model": "qwen3.5-plus", + "enable_thinking": false, + "enable": false + } + }, + "models-dir": { + "pipeline": "", + "vlm": "" + }, + "config_version": "1.3.1" +} \ No newline at end of file diff --git a/mineru/__init__.py b/mineru/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/backend/__init__.py b/mineru/backend/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/backend/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/backend/hybrid/__init__.py b/mineru/backend/hybrid/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/backend/hybrid/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/backend/hybrid/hybrid_analyze.py b/mineru/backend/hybrid/hybrid_analyze.py new file mode 100644 index 000000000..cfa76f3d7 --- /dev/null +++ b/mineru/backend/hybrid/hybrid_analyze.py @@ -0,0 +1,793 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import time +from collections import defaultdict + +import cv2 +import numpy as np +import pypdfium2 as pdfium +from loguru import logger +from mineru_vl_utils import MinerUClient +from mineru_vl_utils.structs import BlockType +from tqdm import tqdm + +from mineru.backend.hybrid.hybrid_model_output_to_middle_json import ( + append_page_model_list_to_middle_json, + finalize_middle_json, + init_middle_json, +) +from mineru.backend.utils.runtime_utils import exclude_progress_bar_idle_time +from mineru.backend.pipeline.model_init import HybridModelSingleton +from mineru.backend.vlm.vlm_analyze import ( + ModelSingleton, + aio_predictor_execution_guard, + predictor_execution_guard, + _maybe_enable_serial_execution, +) +from mineru.data.data_reader_writer import DataWriter +from mineru.utils.config_reader import get_device, get_processing_window_size +from mineru.utils.enum_class import ImageType, NotExtractType +from mineru.utils.model_utils import crop_img, get_vram, clean_memory +from mineru.utils.ocr_utils import get_adjusted_mfdetrec_res, get_ocr_result_list, sorted_boxes, merge_det_boxes, \ + update_det_boxes, OcrConfidence +from mineru.utils.pdf_classify import classify +from mineru.utils.pdf_image_tools import load_images_from_pdf_doc +from mineru.utils.pdfium_guard import ( + close_pdfium_document, + get_pdfium_document_page_count, + open_pdfium_document, +) + +os.environ['PYTORCH_ENABLE_MPS_FALLBACK'] = '1' # 让mps可以fallback +os.environ['NO_ALBUMENTATIONS_UPDATE'] = '1' # 禁止albumentations检查更新 + +LAYOUT_BASE_BATCH_SIZE = 1 +MFR_BASE_BATCH_SIZE = 16 +OCR_DET_BASE_BATCH_SIZE = 8 + +not_extract_list = [item.value for item in NotExtractType] + +def ocr_classify(pdf_bytes, parse_method: str = 'auto',) -> bool: + # 确定OCR设置 + _ocr_enable = False + if parse_method == 'auto': + if classify(pdf_bytes) == 'ocr': + _ocr_enable = True + elif parse_method == 'ocr': + _ocr_enable = True + return _ocr_enable + +def ocr_det( + hybrid_pipeline_model, + np_images, + model_list, + mfd_res, + _ocr_enable, + batch_ratio: int = 1, +): + def _set_temp_pixel_bbox(res, pixel_bbox): + res["_normalized_bbox"] = list(res["bbox"]) + res["bbox"] = pixel_bbox + + def _restore_normalized_bbox(res): + normalized_bbox = res.pop("_normalized_bbox", None) + if normalized_bbox is not None: + res["bbox"] = normalized_bbox + + ocr_res_list = [] + if not hybrid_pipeline_model.enable_ocr_det_batch: + # 非批处理模式 - 逐页处理 + for np_image, page_mfd_res, page_results in tqdm( + zip(np_images, mfd_res, model_list), + total=len(np_images), + desc="OCR-det" + ): + ocr_res_list.append([]) + img_height, img_width = np_image.shape[:2] + for res in page_results: + if res['type'] not in not_extract_list: + continue + x0 = max(0, int(res['bbox'][0] * img_width)) + y0 = max(0, int(res['bbox'][1] * img_height)) + x1 = min(img_width, int(res['bbox'][2] * img_width)) + y1 = min(img_height, int(res['bbox'][3] * img_height)) + if x1 <= x0 or y1 <= y0: + continue + _set_temp_pixel_bbox(res, [x0, y0, x1, y1]) + try: + new_image, useful_list = crop_img( + res, np_image, crop_paste_x=50, crop_paste_y=50 + ) + finally: + _restore_normalized_bbox(res) + adjusted_mfdetrec_res = get_adjusted_mfdetrec_res( + page_mfd_res, useful_list + ) + bgr_image = cv2.cvtColor(new_image, cv2.COLOR_RGB2BGR) + ocr_res = hybrid_pipeline_model.ocr_model.ocr( + bgr_image, mfd_res=adjusted_mfdetrec_res, rec=False + )[0] + if ocr_res: + ocr_result_list = get_ocr_result_list( + ocr_res, useful_list, _ocr_enable, bgr_image, hybrid_pipeline_model.lang + ) + + ocr_res_list[-1].extend(ocr_result_list) + else: + # 批处理模式 - 按语言和分辨率分组 + # 收集所有需要OCR检测的裁剪图像 + all_cropped_images_info = [] + + for np_image, page_mfd_res, page_results in zip( + np_images, mfd_res, model_list + ): + ocr_res_list.append([]) + img_height, img_width = np_image.shape[:2] + for res in page_results: + if res['type'] not in not_extract_list: + continue + x0 = max(0, int(res['bbox'][0] * img_width)) + y0 = max(0, int(res['bbox'][1] * img_height)) + x1 = min(img_width, int(res['bbox'][2] * img_width)) + y1 = min(img_height, int(res['bbox'][3] * img_height)) + if x1 <= x0 or y1 <= y0: + continue + _set_temp_pixel_bbox(res, [x0, y0, x1, y1]) + try: + new_image, useful_list = crop_img( + res, np_image, crop_paste_x=50, crop_paste_y=50 + ) + finally: + _restore_normalized_bbox(res) + adjusted_mfdetrec_res = get_adjusted_mfdetrec_res( + page_mfd_res, useful_list + ) + bgr_image = cv2.cvtColor(new_image, cv2.COLOR_RGB2BGR) + all_cropped_images_info.append(( + bgr_image, useful_list, adjusted_mfdetrec_res, ocr_res_list[-1] + )) + + # 按分辨率分组并同时完成padding + RESOLUTION_GROUP_STRIDE = 64 # 32 + + resolution_groups = defaultdict(list) + for crop_info in all_cropped_images_info: + cropped_img = crop_info[0] + h, w = cropped_img.shape[:2] + # 直接计算目标尺寸并用作分组键 + target_h = ((h + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE + target_w = ((w + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE + group_key = (target_h, target_w) + resolution_groups[group_key].append(crop_info) + + # 对每个分辨率组进行批处理 + for (target_h, target_w), group_crops in tqdm(resolution_groups.items(), desc=f"OCR-det"): + # 对所有图像进行padding到统一尺寸 + batch_images = [] + for crop_info in group_crops: + img = crop_info[0] + h, w = img.shape[:2] + # 创建目标尺寸的白色背景 + padded_img = np.ones((target_h, target_w, 3), dtype=np.uint8) * 255 + padded_img[:h, :w] = img + batch_images.append(padded_img) + + # 批处理检测 + det_batch_size = min(len(batch_images), batch_ratio * OCR_DET_BASE_BATCH_SIZE) + batch_results = hybrid_pipeline_model.ocr_model.text_detector.batch_predict(batch_images, det_batch_size) + + # 处理批处理结果 + for crop_info, (dt_boxes, _) in zip(group_crops, batch_results): + bgr_image, useful_list, adjusted_mfdetrec_res, ocr_page_res_list = crop_info + + if dt_boxes is not None and len(dt_boxes) > 0: + # 处理检测框 + dt_boxes_sorted = sorted_boxes(dt_boxes) + dt_boxes_merged = merge_det_boxes(dt_boxes_sorted) if dt_boxes_sorted else [] + + # 根据公式位置更新检测框 + dt_boxes_final = (update_det_boxes(dt_boxes_merged, adjusted_mfdetrec_res) + if dt_boxes_merged and adjusted_mfdetrec_res + else dt_boxes_merged) + + if dt_boxes_final: + ocr_res = [box.tolist() if hasattr(box, 'tolist') else box for box in dt_boxes_final] + ocr_result_list = get_ocr_result_list( + ocr_res, useful_list, _ocr_enable, bgr_image, hybrid_pipeline_model.lang + ) + ocr_page_res_list.extend(ocr_result_list) + return ocr_res_list + +def mask_image_regions(np_images, model_list): + # 根据vlm返回的结果,在每一页中将image、table、equation块mask成白色背景图像 + for np_image, vlm_page_results in zip(np_images, model_list): + img_height, img_width = np_image.shape[:2] + # 收集需要mask的区域 + mask_regions = [] + for block in vlm_page_results: + if block['type'] in [BlockType.IMAGE, BlockType.TABLE, BlockType.EQUATION]: + bbox = block['bbox'] + # 批量转换归一化坐标到像素坐标,并进行边界检查 + x0 = max(0, int(bbox[0] * img_width)) + y0 = max(0, int(bbox[1] * img_height)) + x1 = min(img_width, int(bbox[2] * img_width)) + y1 = min(img_height, int(bbox[3] * img_height)) + # 只添加有效区域 + if x1 > x0 and y1 > y0: + mask_regions.append((y0, y1, x0, x1)) + # 批量应用mask + for y0, y1, x0, x1 in mask_regions: + np_image[y0:y1, x0:x1, :] = 255 + return np_images + + +def normalize_bbox_to_unit(item, page_width, page_height): + """将像素级bbox归一化为[0, 1]区间""" + bbox = item.get('bbox') + if bbox is None or len(bbox) != 4: + return False + + x0, y0, x1, y1 = [float(v) for v in bbox] + if ( + 0.0 <= x0 <= 1.0 + and 0.0 <= y0 <= 1.0 + and 0.0 <= x1 <= 1.0 + and 0.0 <= y1 <= 1.0 + ): + normalized_bbox = [x0, y0, x1, y1] + else: + normalized_bbox = [ + x0 / page_width, + y0 / page_height, + x1 / page_width, + y1 / page_height, + ] + item['bbox'] = [round(min(max(v, 0), 1), 3) for v in normalized_bbox] + return True + + +def _formula_item_to_pixel_bbox(item): + bbox = item.get('bbox') + if bbox is not None and len(bbox) == 4: + return [int(float(v)) for v in bbox] + + return None + + +def _build_inline_formula_inputs(images_layout_res): + inline_formula_inputs = [] + for layout_res in images_layout_res: + page_inline_formula_inputs = [] + for res in layout_res: + if res.get('label') not in ['inline_formula', 'display_formula']: + continue + bbox = res.get('bbox') + if bbox is None or len(bbox) != 4: + continue + page_inline_formula_inputs.append( + { + "label": "inline_formula", + "bbox": list(bbox), + "score": float(res.get('score', 0.0)), + "latex": res.get('latex', ''), + } + ) + inline_formula_inputs.append(page_inline_formula_inputs) + return inline_formula_inputs + + +def _process_ocr_and_formulas( + images_pil_list, + model_list, + language, + inline_formula_enable, + _ocr_enable, + batch_ratio: int = 1, +): + """处理OCR和公式识别""" + + # 遍历model_list,对文本块截图交由OCR识别 + # 根据_ocr_enable决定ocr只开det还是det+rec + # 根据inline_formula_enable决定是使用mfd和ocr结合的方式,还是纯ocr方式 + + # 将PIL图片转换为numpy数组 + np_images = [np.asarray(pil_image).copy() for pil_image in images_pil_list] + + # 获取混合模型实例 + hybrid_model_singleton = HybridModelSingleton() + hybrid_pipeline_model = hybrid_model_singleton.get_model( + lang=language, + formula_enable=inline_formula_enable, + ) + + if inline_formula_enable: + # 在进行`行内`公式检测和识别前,先将图像中的图片、表格、`行间`公式区域mask掉 + np_images = mask_image_regions(np_images, model_list) + # 使用layout模型提供行内公式检测框 + images_layout_res = hybrid_pipeline_model.layout_model.batch_predict( + np_images, + batch_size=min(8, batch_ratio * LAYOUT_BASE_BATCH_SIZE), + ) + images_mfd_res = _build_inline_formula_inputs(images_layout_res) + # 公式识别 + inline_formula_list = hybrid_pipeline_model.mfr_model.batch_predict( + images_mfd_res, + np_images, + batch_size=batch_ratio * MFR_BASE_BATCH_SIZE, + interline_enable=True, + ) + else: + inline_formula_list = [[] for _ in range(len(images_pil_list))] + + mfd_res = [] + for page_inline_formula_list in inline_formula_list: + page_mfd_res = [] + for formula in page_inline_formula_list: + bbox = _formula_item_to_pixel_bbox(formula) + if bbox is None: + continue + page_mfd_res.append({"bbox": bbox}) + mfd_res.append(page_mfd_res) + + # vlm没有执行ocr,需要ocr_det + ocr_res_list = ocr_det( + hybrid_pipeline_model, + np_images, + model_list, + mfd_res, + _ocr_enable, + batch_ratio=batch_ratio, + ) + + # 如果需要ocr则做ocr_rec + if _ocr_enable: + need_ocr_list = [] + img_crop_list = [] + for page_ocr_res_list in ocr_res_list: + for ocr_res in page_ocr_res_list: + if 'np_img' in ocr_res: + need_ocr_list.append((page_ocr_res_list, ocr_res)) + img_crop_list.append(ocr_res.pop('np_img')) + if len(img_crop_list) > 0: + # Process OCR + ocr_result_list = hybrid_pipeline_model.ocr_model.ocr(img_crop_list, det=False, tqdm_enable=True)[0] + + # Verify we have matching counts + assert len(ocr_result_list) == len(need_ocr_list), f'ocr_result_list: {len(ocr_result_list)}, need_ocr_list: {len(need_ocr_list)}' + + items_to_remove = [] + # Process OCR results for this language + for index, (page_ocr_res_list, need_ocr_res) in enumerate(need_ocr_list): + ocr_text, ocr_score = ocr_result_list[index] + need_ocr_res['text'] = ocr_text + need_ocr_res['score'] = float(f"{ocr_score:.3f}") + should_remove = False + if ocr_score < OcrConfidence.min_confidence: + should_remove = True + else: + layout_res_bbox = need_ocr_res.get("bbox") + if layout_res_bbox is None and need_ocr_res.get("poly") is not None: + layout_res_bbox = [ + need_ocr_res['poly'][0], + need_ocr_res['poly'][1], + need_ocr_res['poly'][4], + need_ocr_res['poly'][5], + ] + if layout_res_bbox is None: + should_remove = True + continue + layout_res_width = layout_res_bbox[2] - layout_res_bbox[0] + layout_res_height = layout_res_bbox[3] - layout_res_bbox[1] + if ( + ocr_text in [ + '(204号', '(20', '(2', '(2号', '(20号', '号','(204', + '(cid:)', '(ci:)', '(cd:1)', 'cd:)', 'c)', '(cd:)', 'c', 'id:)', + ':)', '√:)', '√i:)', '−i:)', '−:' , 'i:)', + ] + and ocr_score < 0.8 + and layout_res_width < layout_res_height + ): + should_remove = True + + if should_remove: + items_to_remove.append((page_ocr_res_list, need_ocr_res)) + + for page_ocr_res_list, need_ocr_res in items_to_remove: + if need_ocr_res in page_ocr_res_list: + page_ocr_res_list.remove(need_ocr_res) + + _normalize_bbox(inline_formula_list, ocr_res_list, images_pil_list) + merged_model_list = _merge_page_sidecar_items( + model_list, + inline_formula_list, + ocr_res_list, + ) + return merged_model_list, hybrid_pipeline_model + + +def _normalize_bbox( + inline_formula_list, + ocr_res_list, + images_pil_list, +): + """归一化坐标并生成最终结果""" + for page_inline_formula_list, page_ocr_res_list, page_pil_image in zip( + inline_formula_list, ocr_res_list, images_pil_list + ): + if page_inline_formula_list or page_ocr_res_list: + page_width, page_height = page_pil_image.size + # 处理公式列表 + for formula in page_inline_formula_list: + normalize_bbox_to_unit(formula, page_width, page_height) + # 处理OCR结果列表 + for ocr_res in page_ocr_res_list: + normalize_bbox_to_unit(ocr_res, page_width, page_height) + + +def _build_inline_formula_model_item(formula): + return { + "type": "inline_formula", + "bbox": list(formula["bbox"]), + "latex": formula.get("latex", ""), + "score": float(formula.get("score", 0.0)), + } + + +def _build_ocr_text_model_item(ocr_res): + return { + "type": "ocr_text", + "bbox": list(ocr_res["bbox"]), + "text": ocr_res.get("text", ""), + "score": float(ocr_res.get("score", 0.0)), + } + + +def _merge_page_sidecar_items( + model_list, + inline_formula_list, + ocr_res_list, +): + merged_model_list = [] + for page_model_list, page_inline_formula_list, page_ocr_res_list in zip( + model_list, inline_formula_list, ocr_res_list + ): + merged_page_model_list = list(page_model_list) + merged_page_model_list.extend( + _build_inline_formula_model_item(formula) + for formula in page_inline_formula_list + if formula.get("bbox") is not None + ) + merged_page_model_list.extend( + _build_ocr_text_model_item(ocr_res) + for ocr_res in page_ocr_res_list + if ocr_res.get("bbox") is not None + ) + merged_model_list.append(merged_page_model_list) + return merged_model_list + + +def get_batch_ratio(device): + """ + 根据显存大小或环境变量获取 batch ratio + """ + # 1. 优先尝试从环境变量获取 + """ + c/s架构分离部署时,建议通过设置环境变量 MINERU_HYBRID_BATCH_RATIO 来指定 batch ratio + 建议的设置值如如下,以下配置值已考虑一定的冗余,单卡多终端部署时为了保证稳定性,可以额外保留一个client端的显存作为整体冗余 + 单个client端显存大小 | MINERU_HYBRID_BATCH_RATIO + ------------------|------------------------ + <= 6 GB | 8 + <= 4 GB | 4 + <= 3 GB | 2 + <= 2 GB | 1 + 例如: + export MINERU_HYBRID_BATCH_RATIO=4 + """ + env_val = os.getenv("MINERU_HYBRID_BATCH_RATIO") + if env_val: + try: + batch_ratio = int(env_val) + logger.info(f"hybrid batch ratio (from env): {batch_ratio}") + return batch_ratio + except ValueError as e: + logger.warning(f"Invalid MINERU_HYBRID_BATCH_RATIO value: {env_val}, switching to auto mode. Error: {e}") + + # 2. 根据显存自动推断 + """ + 根据总显存大小粗略估计 batch ratio,需要排除掉vllm等推理框架占用的显存开销 + """ + gpu_memory = get_vram(device) + if gpu_memory >= 32: + batch_ratio = 16 + elif gpu_memory >= 16: + batch_ratio = 8 + elif gpu_memory >= 12: + batch_ratio = 4 + elif gpu_memory >= 8: + batch_ratio = 2 + else: + batch_ratio = 1 + + logger.info(f"hybrid batch ratio (auto, vram={gpu_memory}GB): {batch_ratio}") + return batch_ratio + + +def _should_enable_vlm_ocr(ocr_enable: bool, language: str, inline_formula_enable: bool) -> bool: + """判断是否启用VLM OCR""" + force_enable = os.getenv("MINERU_FORCE_VLM_OCR_ENABLE", "0").lower() in ("1", "true", "yes") + if force_enable: + return True + + force_pipeline = os.getenv("MINERU_HYBRID_FORCE_PIPELINE_ENABLE", "0").lower() in ("1", "true", "yes") + return ( + ocr_enable + and language in ["ch", "en"] + and inline_formula_enable + and not force_pipeline + ) + + +def _close_images(images_list): + for image_dict in images_list or []: + pil_img = image_dict.get("img_pil") + if pil_img is not None: + try: + pil_img.close() + except Exception: + pass + + +def doc_analyze( + pdf_bytes, + image_writer: DataWriter | None, + predictor: MinerUClient | None = None, + backend="transformers", + parse_method: str = 'auto', + language: str = 'ch', + inline_formula_enable: bool = True, + model_path: str | None = None, + server_url: str | None = None, + **kwargs, +): + if predictor is None: + predictor = ModelSingleton().get_model(backend, model_path, server_url, **kwargs) + predictor = _maybe_enable_serial_execution(predictor, backend) + + device = get_device() + _ocr_enable = ocr_classify(pdf_bytes, parse_method=parse_method) + _vlm_ocr_enable = _should_enable_vlm_ocr(_ocr_enable, language, inline_formula_enable) + + pdf_doc = open_pdfium_document(pdfium.PdfDocument, pdf_bytes) + middle_json = init_middle_json(_ocr_enable, _vlm_ocr_enable) + model_list = [] + doc_closed = False + hybrid_pipeline_model = None + try: + page_count = get_pdfium_document_page_count(pdf_doc) + configured_window_size = get_processing_window_size(default=64) + effective_window_size = min(page_count, configured_window_size) if page_count else 0 + total_windows = ( + (page_count + effective_window_size - 1) // effective_window_size + if effective_window_size + else 0 + ) + logger.info( + f'Hybrid processing-window run. page_count={page_count}, ' + f'window_size={configured_window_size}, total_windows={total_windows}' + ) + + batch_ratio = get_batch_ratio(device) if not _vlm_ocr_enable else 1 + + infer_start = time.time() + progress_bar = None + last_append_end_time = None + try: + for window_index, window_start in enumerate(range(0, page_count, effective_window_size or 1)): + window_end = min(page_count - 1, window_start + effective_window_size - 1) + images_list = load_images_from_pdf_doc( + pdf_doc, + start_page_id=window_start, + end_page_id=window_end, + image_type=ImageType.PIL, + pdf_bytes=pdf_bytes, + ) + try: + images_pil_list = [image_dict["img_pil"] for image_dict in images_list] + logger.info( + f'Hybrid processing window {window_index + 1}/{total_windows}: ' + f'pages {window_start + 1}-{window_end + 1}/{page_count} ' + f'({len(images_pil_list)} pages)' + ) + if _vlm_ocr_enable: + with predictor_execution_guard(predictor): + window_model_list = predictor.batch_two_step_extract(images=images_pil_list) + else: + with predictor_execution_guard(predictor): + window_model_list = predictor.batch_two_step_extract( + images=images_pil_list, + not_extract_list=not_extract_list + ) + window_model_list, hybrid_pipeline_model = _process_ocr_and_formulas( + images_pil_list, + window_model_list, + language, + inline_formula_enable, + _ocr_enable, + batch_ratio=batch_ratio, + ) + + model_list.extend(window_model_list) + if progress_bar is None: + progress_bar = tqdm(total=page_count, desc="Processing pages") + else: + exclude_progress_bar_idle_time( + progress_bar, + last_append_end_time, + now=time.time(), + ) + append_page_model_list_to_middle_json( + middle_json, + window_model_list, + images_list, + pdf_doc, + image_writer, + page_start_index=window_start, + _ocr_enable=_ocr_enable, + _vlm_ocr_enable=_vlm_ocr_enable, + progress_bar=progress_bar, + ) + last_append_end_time = time.time() + finally: + _close_images(images_list) + finally: + if progress_bar is not None: + progress_bar.close() + + infer_time = round(time.time() - infer_start, 2) + if infer_time > 0 and page_count > 0: + logger.debug( + f"processing-window infer finished, cost: {infer_time}, " + f"speed: {round(len(model_list) / infer_time, 3)} page/s" + ) + + finalize_middle_json( + middle_json["pdf_info"], + hybrid_pipeline_model, + _ocr_enable, + _vlm_ocr_enable, + ) + close_pdfium_document(pdf_doc) + doc_closed = True + clean_memory(device) + return middle_json, model_list, _vlm_ocr_enable + finally: + if not doc_closed: + close_pdfium_document(pdf_doc) + + +async def aio_doc_analyze( + pdf_bytes, + image_writer: DataWriter | None, + predictor: MinerUClient | None = None, + backend="transformers", + parse_method: str = 'auto', + language: str = 'ch', + inline_formula_enable: bool = True, + model_path: str | None = None, + server_url: str | None = None, + **kwargs, +): + if predictor is None: + predictor = ModelSingleton().get_model(backend, model_path, server_url, **kwargs) + predictor = _maybe_enable_serial_execution(predictor, backend) + + device = get_device() + _ocr_enable = ocr_classify(pdf_bytes, parse_method=parse_method) + _vlm_ocr_enable = _should_enable_vlm_ocr(_ocr_enable, language, inline_formula_enable) + + pdf_doc = open_pdfium_document(pdfium.PdfDocument, pdf_bytes) + middle_json = init_middle_json(_ocr_enable, _vlm_ocr_enable) + model_list = [] + doc_closed = False + hybrid_pipeline_model = None + try: + page_count = get_pdfium_document_page_count(pdf_doc) + configured_window_size = get_processing_window_size(default=64) + effective_window_size = min(page_count, configured_window_size) if page_count else 0 + total_windows = ( + (page_count + effective_window_size - 1) // effective_window_size + if effective_window_size + else 0 + ) + logger.info( + f'Hybrid processing-window run. page_count={page_count}, ' + f'window_size={configured_window_size}, total_windows={total_windows}' + ) + + batch_ratio = get_batch_ratio(device) if not _vlm_ocr_enable else 1 + + infer_start = time.time() + progress_bar = None + last_append_end_time = None + try: + for window_index, window_start in enumerate(range(0, page_count, effective_window_size or 1)): + window_end = min(page_count - 1, window_start + effective_window_size - 1) + images_list = load_images_from_pdf_doc( + pdf_doc, + start_page_id=window_start, + end_page_id=window_end, + image_type=ImageType.PIL, + pdf_bytes=pdf_bytes, + ) + try: + images_pil_list = [image_dict["img_pil"] for image_dict in images_list] + logger.info( + f'Hybrid processing window {window_index + 1}/{total_windows}: ' + f'pages {window_start + 1}-{window_end + 1}/{page_count} ' + f'({len(images_pil_list)} pages)' + ) + if _vlm_ocr_enable: + async with aio_predictor_execution_guard(predictor): + window_model_list = await predictor.aio_batch_two_step_extract(images=images_pil_list) + else: + async with aio_predictor_execution_guard(predictor): + window_model_list = await predictor.aio_batch_two_step_extract( + images=images_pil_list, + not_extract_list=not_extract_list + ) + window_model_list, hybrid_pipeline_model = _process_ocr_and_formulas( + images_pil_list, + window_model_list, + language, + inline_formula_enable, + _ocr_enable, + batch_ratio=batch_ratio, + ) + + model_list.extend(window_model_list) + if progress_bar is None: + progress_bar = tqdm(total=page_count, desc="Processing pages") + else: + exclude_progress_bar_idle_time( + progress_bar, + last_append_end_time, + now=time.time(), + ) + append_page_model_list_to_middle_json( + middle_json, + window_model_list, + images_list, + pdf_doc, + image_writer, + page_start_index=window_start, + _ocr_enable=_ocr_enable, + _vlm_ocr_enable=_vlm_ocr_enable, + progress_bar=progress_bar, + ) + last_append_end_time = time.time() + finally: + _close_images(images_list) + finally: + if progress_bar is not None: + progress_bar.close() + + infer_time = round(time.time() - infer_start, 2) + if infer_time > 0 and page_count > 0: + logger.debug( + f"processing-window infer finished, cost: {infer_time}, " + f"speed: {round(len(model_list) / infer_time, 3)} page/s" + ) + + finalize_middle_json( + middle_json["pdf_info"], + hybrid_pipeline_model, + _ocr_enable, + _vlm_ocr_enable, + ) + close_pdfium_document(pdf_doc) + doc_closed = True + clean_memory(device) + return middle_json, model_list, _vlm_ocr_enable + finally: + if not doc_closed: + close_pdfium_document(pdf_doc) diff --git a/mineru/backend/hybrid/hybrid_magic_model.py b/mineru/backend/hybrid/hybrid_magic_model.py new file mode 100644 index 000000000..a88563b47 --- /dev/null +++ b/mineru/backend/hybrid/hybrid_magic_model.py @@ -0,0 +1,487 @@ +# Copyright (c) Opendatalab. All rights reserved. +import copy +import re + +from loguru import logger + +from mineru.utils.boxbase import calculate_overlap_area_in_bbox1_area_ratio +from mineru.utils.enum_class import ContentType, BlockType, NotExtractType +from mineru.utils.guess_suffix_or_lang import guess_language_by_text +from mineru.utils.span_block_fix import fix_text_block +from mineru.utils.span_pre_proc import txt_spans_extract +from mineru.utils.visual_magic_model_utils import ( + GENERIC_CHILD_TYPES, + IMAGE_BLOCK_BODY, + VISUAL_MAIN_TYPES, + clean_content, + code_content_clean, + isolated_formula_clean, + regroup_visual_blocks, +) +not_extract_list = [item.value for item in NotExtractType] + [ + BlockType.CAPTION, + BlockType.FOOTNOTE, +] + + +def _copy_raw_text_block_metadata(raw_block_type, block_info, block): + if raw_block_type != BlockType.TEXT: + return + if "merge_prev" in block_info: + block["merge_prev"] = block_info["merge_prev"] + + +class MagicModel: + def __init__( + self, + page_model_list: list, + page, + scale, + page_pil_img, + width, + height, + _ocr_enable, + _vlm_ocr_enable, + ): + ( + self.page_blocks, + self.page_inline_formula, + self.page_ocr_res, + ) = self._split_page_model_list(copy.deepcopy(page_model_list)) + + self.width = width + self.height = height + + blocks = [] + self.all_spans = [] + + page_text_inline_formula_spans = [] + if not _vlm_ocr_enable: + for inline_formula in self.page_inline_formula: + inline_formula["bbox"] = self.cal_real_bbox(inline_formula["bbox"]) + inline_formula_latex = inline_formula.pop("latex", "") + if inline_formula_latex: + page_text_inline_formula_spans.append( + { + "bbox": inline_formula["bbox"], + "type": ContentType.INLINE_EQUATION, + "content": inline_formula_latex, + "score": inline_formula["score"], + } + ) + for ocr_res in self.page_ocr_res: + ocr_res["bbox"] = self.cal_real_bbox(ocr_res["bbox"]) + page_text_inline_formula_spans.append( + { + "bbox": ocr_res["bbox"], + "type": ContentType.TEXT, + "content": ocr_res["text"], + "score": ocr_res["score"], + } + ) + if not _ocr_enable: + virtual_block = [0, 0, width, height, None, None, None, "text"] + page_text_inline_formula_spans = txt_spans_extract( + page, + page_text_inline_formula_spans, + page_pil_img, + scale, + [virtual_block], + [], + ) + + # 解析每个块 + for index, block_info in enumerate(self.page_blocks): + try: + block_bbox = self.cal_real_bbox(block_info["bbox"]) + block_type = block_info["type"] + raw_block_type = block_type + block_content = block_info.get("content") + block_angle = block_info.get("angle", 0) + block_sub_type = ( + block_info.get("sub_type") + if raw_block_type in ["image", "chart"] + else None + ) + except Exception as e: + # 如果解析失败,可能是因为格式不正确,跳过这个块 + logger.warning(f"Invalid block format: {block_info}, error: {e}") + continue + + span_type = "unknown" + code_block_sub_type = None + guess_lang = None + + if block_type in [ + "text", + "title", + "ref_text", + "phonetic", + "header", + "footer", + "page_number", + "aside_text", + "page_footnote", + "list", + ]: + span_type = ContentType.TEXT + elif block_type in ["image_caption", "table_caption", "code_caption"]: + block_type = BlockType.CAPTION + span_type = ContentType.TEXT + elif block_type in ["image_footnote", "table_footnote"]: + block_type = BlockType.FOOTNOTE + span_type = ContentType.TEXT + elif block_type == "image": + block_type = BlockType.IMAGE_BODY + span_type = ContentType.IMAGE + elif block_type == "image_block": + block_type = IMAGE_BLOCK_BODY + span_type = ContentType.IMAGE + elif block_type == "table": + block_type = BlockType.TABLE_BODY + span_type = ContentType.TABLE + elif block_type == "chart": + block_type = BlockType.CHART_BODY + span_type = ContentType.CHART + elif block_type in ["code", "algorithm"]: + block_content = code_content_clean(block_content) + code_block_sub_type = block_type + block_type = BlockType.CODE_BODY + span_type = ContentType.TEXT + guess_lang = guess_language_by_text(block_content) + elif block_type == "equation": + block_type = BlockType.INTERLINE_EQUATION + span_type = ContentType.INTERLINE_EQUATION + + # code 和 algorithm 类型的块,如果内容中包含行内公式,则需要将块类型切换为 algorithm + switch_code_to_algorithm = False + + span = None + if span_type in [ContentType.IMAGE, ContentType.TABLE, ContentType.CHART]: + span = { + "bbox": block_bbox, + "type": span_type, + } + if span_type == ContentType.TABLE: + span["html"] = block_content + elif raw_block_type in ["image", "chart"] and block_content is not None: + span["content"] = block_content + elif span_type == ContentType.INTERLINE_EQUATION: + span = { + "bbox": block_bbox, + "type": span_type, + "content": isolated_formula_clean(block_content), + } + elif _vlm_ocr_enable or block_type not in not_extract_list: + # vlm_ocr_enable 模式下,所有文本块都直接使用 block 的内容 + # 非 vlm_ocr_enable 模式下,非提取块仍沿用直接内容模式 + if block_content: + block_content = clean_content(block_content) + + if block_type == "title" and block_content: + block_content = re.sub(r"\n\s*", " ", block_content).strip() + + if ( + block_content + and block_content.count("\\(") == block_content.count("\\)") + and block_content.count("\\(") > 0 + ): + switch_code_to_algorithm = True + + spans = [] + last_end = 0 + for match in re.finditer(r"\\\((.+?)\\\)", block_content): + start, end = match.span() + + if start > last_end: + text_before = block_content[last_end:start] + if text_before.strip(): + spans.append( + { + "bbox": block_bbox, + "type": ContentType.TEXT, + "content": text_before, + } + ) + + formula = match.group(1) + spans.append( + { + "bbox": block_bbox, + "type": ContentType.INLINE_EQUATION, + "content": formula.strip(), + } + ) + + last_end = end + + if last_end < len(block_content): + text_after = block_content[last_end:] + if text_after.strip(): + spans.append( + { + "bbox": block_bbox, + "type": ContentType.TEXT, + "content": text_after, + } + ) + + span = spans + else: + span = { + "bbox": block_bbox, + "type": span_type, + "content": block_content, + } + + if ( + span_type + in [ + ContentType.IMAGE, + ContentType.TABLE, + ContentType.CHART, + ContentType.INTERLINE_EQUATION, + ] + or (_vlm_ocr_enable or block_type not in not_extract_list) + ): + if span is None: + continue + if isinstance(span, dict) and "bbox" in span: + self.all_spans.append(span) + spans = [span] + elif isinstance(span, list): + self.all_spans.extend(span) + spans = span + else: + raise ValueError( + f"Invalid span type: {span_type}, expected dict or list, got {type(span)}" + ) + + if block_type == BlockType.CODE_BODY: + if switch_code_to_algorithm and code_block_sub_type == "code": + code_block_sub_type = "algorithm" + line = { + "bbox": block_bbox, + "spans": spans, + "extra": { + "type": code_block_sub_type, + "guess_lang": guess_lang, + }, + } + else: + line = {"bbox": block_bbox, "spans": spans} + + block = { + "bbox": block_bbox, + "type": block_type, + "angle": block_angle, + "lines": [line], + "index": index, + } + if block_sub_type: + block["sub_type"] = block_sub_type + if raw_block_type == "table" and "cell_merge" in block_info: + block["cell_merge"] = block_info["cell_merge"] + _copy_raw_text_block_metadata(raw_block_type, block_info, block) + else: + block_spans = [] + for span in page_text_inline_formula_spans: + if ( + calculate_overlap_area_in_bbox1_area_ratio( + span["bbox"], + block_bbox, + ) + > 0.5 + ): + block_spans.append(span) + + if block_spans: + for span in block_spans: + page_text_inline_formula_spans.remove(span) + + block = { + "bbox": block_bbox, + "type": block_type, + "angle": block_angle, + "spans": block_spans, + "index": index, + } + block = fix_text_block(block) + _copy_raw_text_block_metadata(raw_block_type, block_info, block) + + blocks.append(block) + + self.image_blocks = [] + self.table_blocks = [] + self.chart_blocks = [] + self.interline_equation_blocks = [] + self.text_blocks = [] + self.title_blocks = [] + self.code_blocks = [] + self.discarded_blocks = [] + self.ref_text_blocks = [] + self.phonetic_blocks = [] + self.list_blocks = [] + + for block in blocks: + if block["type"] in VISUAL_MAIN_TYPES or block["type"] in GENERIC_CHILD_TYPES: + continue + elif block["type"] == BlockType.INTERLINE_EQUATION: + self.interline_equation_blocks.append(block) + elif block["type"] == BlockType.TEXT: + self.text_blocks.append(block) + elif block["type"] == BlockType.TITLE: + self.title_blocks.append(block) + elif block["type"] == BlockType.REF_TEXT: + self.ref_text_blocks.append(block) + elif block["type"] == BlockType.PHONETIC: + self.phonetic_blocks.append(block) + elif block["type"] in [ + BlockType.HEADER, + BlockType.FOOTER, + BlockType.PAGE_NUMBER, + BlockType.ASIDE_TEXT, + BlockType.PAGE_FOOTNOTE, + ]: + self.discarded_blocks.append(block) + elif block["type"] == BlockType.LIST: + self.list_blocks.append(block) + + self.list_blocks, self.text_blocks, self.ref_text_blocks = fix_list_blocks( + self.list_blocks, + self.text_blocks, + self.ref_text_blocks, + ) + + visual_groups, unmatched_child_blocks = regroup_visual_blocks(blocks) + self.image_blocks = visual_groups[BlockType.IMAGE] + self.table_blocks = visual_groups[BlockType.TABLE] + self.chart_blocks = visual_groups[BlockType.CHART] + self.code_blocks = visual_groups[BlockType.CODE] + + for code_block in self.code_blocks: + for block in code_block["blocks"]: + if block["type"] == BlockType.CODE_BODY: + if block["lines"]: + line = block["lines"][0] + code_block["sub_type"] = line["extra"]["type"] + if code_block["sub_type"] == "code": + code_block["guess_lang"] = line["extra"]["guess_lang"] + del line["extra"] + else: + code_block["sub_type"] = "code" + code_block["guess_lang"] = "txt" + + for block in unmatched_child_blocks: + block["type"] = BlockType.TEXT + self.text_blocks.append(block) + + @staticmethod + def _split_page_model_list(page_model_list): + page_blocks = [] + page_inline_formula = [] + page_ocr_res = [] + + for item in page_model_list: + item_type = item.get("type") or item.get("label") + if item_type == "inline_formula": + page_inline_formula.append(item) + elif item_type == "ocr_text": + page_ocr_res.append(item) + else: + page_blocks.append(item) + + return page_blocks, page_inline_formula, page_ocr_res + + def cal_real_bbox(self, bbox): + x1, y1, x2, y2 = bbox + x_1, y_1, x_2, y_2 = ( + int(x1 * self.width), + int(y1 * self.height), + int(x2 * self.width), + int(y2 * self.height), + ) + if x_2 < x_1: + x_1, x_2 = x_2, x_1 + if y_2 < y_1: + y_1, y_2 = y_2, y_1 + return (x_1, y_1, x_2, y_2) + + def get_list_blocks(self): + return self.list_blocks + + def get_image_blocks(self): + return self.image_blocks + + def get_table_blocks(self): + return self.table_blocks + + def get_chart_blocks(self): + return self.chart_blocks + + def get_code_blocks(self): + return self.code_blocks + + def get_ref_text_blocks(self): + return self.ref_text_blocks + + def get_phonetic_blocks(self): + return self.phonetic_blocks + + def get_title_blocks(self): + return self.title_blocks + + def get_text_blocks(self): + return self.text_blocks + + def get_interline_equation_blocks(self): + return self.interline_equation_blocks + + def get_discarded_blocks(self): + return self.discarded_blocks + + def get_all_spans(self): + return self.all_spans +def fix_list_blocks(list_blocks, text_blocks, ref_text_blocks): + for list_block in list_blocks: + list_block["blocks"] = [] + if "lines" in list_block: + del list_block["lines"] + + temp_text_blocks = text_blocks + ref_text_blocks + need_remove_blocks = [] + for block in temp_text_blocks: + for list_block in list_blocks: + if ( + calculate_overlap_area_in_bbox1_area_ratio( + block["bbox"], + list_block["bbox"], + ) + >= 0.8 + ): + list_block["blocks"].append(block) + need_remove_blocks.append(block) + break + + for block in need_remove_blocks: + if block in text_blocks: + text_blocks.remove(block) + elif block in ref_text_blocks: + ref_text_blocks.remove(block) + + list_blocks = [lb for lb in list_blocks if lb["blocks"]] + + for list_block in list_blocks: + type_count = {} + for sub_block in list_block["blocks"]: + sub_block_type = sub_block["type"] + if sub_block_type not in type_count: + type_count[sub_block_type] = 0 + type_count[sub_block_type] += 1 + + if type_count: + list_block["sub_type"] = max(type_count, key=type_count.get) + else: + list_block["sub_type"] = "unknown" + + return list_blocks, text_blocks, ref_text_blocks diff --git a/mineru/backend/hybrid/hybrid_model_output_to_middle_json.py b/mineru/backend/hybrid/hybrid_model_output_to_middle_json.py new file mode 100644 index 000000000..a197976b2 --- /dev/null +++ b/mineru/backend/hybrid/hybrid_model_output_to_middle_json.py @@ -0,0 +1,344 @@ +# Copyright (c) Opendatalab. All rights reserved. + +import os +import time + +import numpy as np +from loguru import logger +from tqdm import tqdm + +from mineru.backend.utils.html_image_utils import replace_inline_table_images +from mineru.backend.utils.ocr_det_utils import ( + detect_ocr_boxes_from_padded_crop, + get_ch_lite_ocr_det_model, +) +from mineru.backend.utils.para_block_utils import ( + annotate_hybrid_cross_page_merge_prev, + build_para_blocks_from_preproc, + cleanup_internal_para_block_metadata, + edge_text_line_hints_key, + iter_block_spans, + merge_para_text_blocks, +) +from mineru.backend.hybrid.hybrid_magic_model import MagicModel +from mineru.backend.utils.runtime_utils import cross_page_table_merge +from mineru.utils.config_reader import get_table_enable, get_llm_aided_config +from mineru.utils.cut_image import cut_image_and_table +from mineru.utils.enum_class import ContentType +from mineru.utils.hash_utils import bytes_md5 +from mineru.utils.ocr_utils import OcrConfidence, rotate_vertical_crop_if_needed +from mineru.utils.pdfium_guard import close_pdfium_document, pdfium_guard +from mineru.version import __version__ + +from mineru.utils.llm_aided import llm_aided_title +title_aided_enable = False +llm_aided_config = get_llm_aided_config() +if llm_aided_config: + title_aided_config = llm_aided_config.get('title_aided', {}) + title_aided_enable = title_aided_config.get('enable', False) + + +def blocks_to_page_info( + page_model_list, + image_dict, + page, + image_writer, + page_index, + _ocr_enable, + _vlm_ocr_enable, +) -> dict: + """将blocks转换为页面信息""" + + scale = image_dict["scale"] + page_pil_img = image_dict["img_pil"] + page_img_md5 = bytes_md5(page_pil_img.tobytes()) + with pdfium_guard(): + width, height = map(int, page.get_size()) + + magic_model = MagicModel( + page_model_list, + page, + scale, + page_pil_img, + width, + height, + _ocr_enable, + _vlm_ocr_enable, + ) + image_blocks = magic_model.get_image_blocks() + table_blocks = magic_model.get_table_blocks() + chart_blocks = magic_model.get_chart_blocks() + title_blocks = magic_model.get_title_blocks() + discarded_blocks = magic_model.get_discarded_blocks() + code_blocks = magic_model.get_code_blocks() + ref_text_blocks = magic_model.get_ref_text_blocks() + phonetic_blocks = magic_model.get_phonetic_blocks() + list_blocks = magic_model.get_list_blocks() + + # 如果有标题优化需求,计算标题的平均行高 + if title_aided_enable: + if _vlm_ocr_enable: # vlm_ocr导致没有line信息,需要重新det获取平均行高 + ocr_model = get_ch_lite_ocr_det_model() + for title_block in title_blocks: + ocr_det_res, _ = detect_ocr_boxes_from_padded_crop( + title_block.get('bbox'), + page_pil_img, + scale, + ocr_model=ocr_model, + ) + if len(ocr_det_res) > 0: + # 计算所有res的平均高度 + avg_height = np.mean([box[2][1] - box[0][1] for box in ocr_det_res]) + title_block['line_avg_height'] = round(avg_height/scale) + else: # 有line信息,直接计算平均行高 + for title_block in title_blocks: + lines = title_block.get('lines', []) + if lines: + # 使用列表推导式和内置函数,一次性计算平均高度 + avg_height = sum(line['bbox'][3] - line['bbox'][1] for line in lines) / len(lines) + title_block['line_avg_height'] = round(avg_height) + else: + title_block['line_avg_height'] = title_block['bbox'][3] - title_block['bbox'][1] + + text_blocks = magic_model.get_text_blocks() + interline_equation_blocks = magic_model.get_interline_equation_blocks() + + all_spans = magic_model.get_all_spans() + # 对image/table/chart/interline_equation的span截图 + for span in all_spans: + if span["type"] in [ContentType.IMAGE, ContentType.TABLE, ContentType.CHART, ContentType.INTERLINE_EQUATION]: + span = cut_image_and_table(span, page_pil_img, page_img_md5, page_index, image_writer, scale=scale) + + replace_inline_table_images(table_blocks, image_writer, page_index) + + page_blocks = [] + page_blocks.extend([ + *image_blocks, + *table_blocks, + *chart_blocks, + *code_blocks, + *ref_text_blocks, + *phonetic_blocks, + *title_blocks, + *text_blocks, + *interline_equation_blocks, + *list_blocks, + ]) + # 对page_blocks根据index的值进行排序 + page_blocks.sort(key=lambda x: x["index"]) + + page_info = { + "preproc_blocks": page_blocks, + "discarded_blocks": discarded_blocks, + "page_size": [width, height], + "page_idx": page_index, + } + if _vlm_ocr_enable: + edge_text_line_hints = _detect_edge_text_line_hints(page_blocks, page_pil_img, scale) + if edge_text_line_hints: + page_info[edge_text_line_hints_key()] = edge_text_line_hints + return page_info + + +def _apply_post_ocr(pdf_info_list, hybrid_pipeline_model): + need_ocr_list = [] + img_crop_list = [] + for page_info in pdf_info_list: + for block in page_info.get('preproc_blocks', []): + for span in iter_block_spans(block): + if 'np_img' in span: + need_ocr_list.append(span) + img_crop_list.append(rotate_vertical_crop_if_needed(span['np_img'])) + span.pop('np_img') + for block in page_info.get('discarded_blocks', []): + for span in iter_block_spans(block): + if 'np_img' in span: + need_ocr_list.append(span) + img_crop_list.append(rotate_vertical_crop_if_needed(span['np_img'])) + span.pop('np_img') + if len(img_crop_list) > 0: + ocr_res_list = hybrid_pipeline_model.ocr_model.ocr(img_crop_list, det=False, tqdm_enable=True)[0] + assert len(ocr_res_list) == len( + need_ocr_list), f'ocr_res_list: {len(ocr_res_list)}, need_ocr_list: {len(need_ocr_list)}' + for index, span in enumerate(need_ocr_list): + ocr_text, ocr_score = ocr_res_list[index] + if ocr_score > OcrConfidence.min_confidence: + span['content'] = ocr_text + span['score'] = float(f"{ocr_score:.3f}") + else: + span['content'] = '' + span['score'] = 0.0 + + +def init_middle_json(_ocr_enable, _vlm_ocr_enable): + return { + "pdf_info": [], + "_backend": "hybrid", + "_ocr_enable": _ocr_enable, + "_vlm_ocr_enable": _vlm_ocr_enable, + "_version_name": __version__ + } + + +def append_page_results_to_middle_json( + middle_json, + model_list, + images_list, + pdf_doc, + image_writer, + page_start_index=0, + _ocr_enable=False, + _vlm_ocr_enable=False, + progress_bar=None, +): + for offset, (page_model_list, image_dict) in enumerate( + zip(model_list, images_list) + ): + page_index = page_start_index + offset + with pdfium_guard(): + page = pdf_doc[page_index] + page_info = blocks_to_page_info( + page_model_list, + image_dict, + page, + image_writer, + page_index, + _ocr_enable, + _vlm_ocr_enable, + ) + middle_json["pdf_info"].append(page_info) + if progress_bar is not None: + progress_bar.update(1) + + +def append_page_model_list_to_middle_json( + middle_json, + model_list, + images_list, + pdf_doc, + image_writer, + page_start_index=0, + _ocr_enable=False, + _vlm_ocr_enable=False, + progress_bar=None, +): + append_page_results_to_middle_json( + middle_json, + model_list, + images_list, + pdf_doc, + image_writer, + page_start_index=page_start_index, + _ocr_enable=_ocr_enable, + _vlm_ocr_enable=_vlm_ocr_enable, + progress_bar=progress_bar, + ) + + +def finalize_middle_json(pdf_info_list, hybrid_pipeline_model, _ocr_enable, _vlm_ocr_enable): + if not (_vlm_ocr_enable or _ocr_enable): + _apply_post_ocr(pdf_info_list, hybrid_pipeline_model) + + build_para_blocks_from_preproc(pdf_info_list) + annotate_hybrid_cross_page_merge_prev( + pdf_info_list, + prefer_edge_line_hints=_vlm_ocr_enable, + ) + merge_para_text_blocks(pdf_info_list, allow_cross_page=True) + + table_enable = get_table_enable(os.getenv('MINERU_VLM_TABLE_ENABLE', 'True').lower() == 'true') + if table_enable: + cross_page_table_merge(pdf_info_list) + + if title_aided_enable: + llm_aided_title_start_time = time.time() + llm_aided_title(pdf_info_list, title_aided_config) + logger.info(f'llm aided title time: {round(time.time() - llm_aided_title_start_time, 2)}') + + cleanup_internal_para_block_metadata(pdf_info_list) + + +def _detect_edge_text_line_hints(page_blocks, page_pil_img, scale): + text_blocks = [block for block in page_blocks if block.get("type") == "text"] + if not text_blocks: + return {} + + edge_blocks = {} + edge_blocks["first"] = text_blocks[0] + edge_blocks["last"] = text_blocks[-1] + + ocr_model = get_ch_lite_ocr_det_model() + + edge_line_hints = {} + for edge_name, block in edge_blocks.items(): + line_bboxes = _detect_block_line_bboxes(block, page_pil_img, scale, ocr_model) + if line_bboxes: + edge_line_hints[edge_name] = { + "index": block.get("index"), + "lines": [{"bbox": bbox, "spans": []} for bbox in line_bboxes], + } + + return edge_line_hints + + +def _detect_block_line_bboxes(block, page_pil_img, scale, ocr_model): + block_bbox = block.get("bbox") + if not block_bbox: + return [] + + ocr_det_res, padding = detect_ocr_boxes_from_padded_crop( + block_bbox, + page_pil_img, + scale, + ocr_model=ocr_model, + ) + if not ocr_det_res: + return [] + + block_x0, block_y0 = block_bbox[0], block_bbox[1] + line_bboxes = [] + for box in ocr_det_res: + x_coords = [point[0] - padding for point in box] + y_coords = [point[1] - padding for point in box] + line_bboxes.append([ + block_x0 + min(x_coords) / scale, + block_y0 + min(y_coords) / scale, + block_x0 + max(x_coords) / scale, + block_y0 + max(y_coords) / scale, + ]) + + line_bboxes.sort(key=lambda bbox: bbox[1]) + return line_bboxes + + +def result_to_middle_json( + model_list, + images_list, + pdf_doc, + image_writer, + _ocr_enable, + _vlm_ocr_enable, + hybrid_pipeline_model, +): + middle_json = init_middle_json(_ocr_enable, _vlm_ocr_enable) + + with tqdm(total=len(model_list), desc="Processing pages") as progress_bar: + append_page_model_list_to_middle_json( + middle_json, + model_list, + images_list, + pdf_doc, + image_writer, + _ocr_enable=_ocr_enable, + _vlm_ocr_enable=_vlm_ocr_enable, + progress_bar=progress_bar, + ) + + finalize_middle_json( + middle_json["pdf_info"], + hybrid_pipeline_model, + _ocr_enable, + _vlm_ocr_enable, + ) + close_pdfium_document(pdf_doc) + return middle_json diff --git a/mineru/backend/office/__init__.py b/mineru/backend/office/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/backend/office/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/backend/office/docx_analyze.py b/mineru/backend/office/docx_analyze.py new file mode 100644 index 000000000..a37e73946 --- /dev/null +++ b/mineru/backend/office/docx_analyze.py @@ -0,0 +1,70 @@ +# Copyright (c) Opendatalab. All rights reserved. +import time +from io import BytesIO + +from loguru import logger +from mineru.backend.office.model_output_to_middle_json import result_to_middle_json + +from mineru.model.docx.main import convert_binary + + +def office_docx_analyze( + file_bytes, + image_writer=None +): + infer_start = time.time() + + file_stream = BytesIO(file_bytes) + results = convert_binary(file_stream) + + infer_time = round(time.time() - infer_start, 2) + safe_time = max(infer_time, 0.01) + logger.debug(f"infer finished, cost: {infer_time}, speed: {round(len(results) / safe_time, 3)} page/s") + + middle_json = result_to_middle_json( + results, + image_writer, + ) + + return middle_json, results + +if __name__ == '__main__': + # Resolve a default docx file relative to this script so the example + # works no matter what the current working directory is when the + # module is executed. Allow the user to override the path via a + # command-line argument for even greater flexibility. + from pathlib import Path + import argparse + + script_root = Path(__file__).resolve().parent.parent.parent.parent + default_docx = script_root / "demo" / "office_docs" / "docx_01.docx" + + parser = argparse.ArgumentParser( + description="Quick demo runner for office_docx_analyze" + ) + parser.add_argument( + "docx", + nargs="?", + default=str(default_docx), + help="path to docx file (defaults to demo/office_docs/docx_01.docx relative to project root)" + ) + parser.add_argument( + "--output-images", + help="directory to write image outputs", + default="./output_images" + ) + args = parser.parse_args() + + docx_path = Path(args.docx) + from mineru.data.data_reader_writer import FileBasedDataWriter + + with open(docx_path, 'rb') as f: + file_bytes = f.read() + image_writer = FileBasedDataWriter(args.output_images) + middle_json, results = office_docx_analyze( + file_bytes, + image_writer=image_writer, + ) + + import json + logger.info(json.dumps(middle_json, indent=2, ensure_ascii=False)) diff --git a/mineru/backend/office/model_output_to_middle_json.py b/mineru/backend/office/model_output_to_middle_json.py new file mode 100644 index 000000000..208cf0c4b --- /dev/null +++ b/mineru/backend/office/model_output_to_middle_json.py @@ -0,0 +1,171 @@ +# Copyright (c) Opendatalab. All rights reserved. +import re +from collections import defaultdict + +from mineru.backend.utils.html_image_utils import replace_inline_table_images, save_span_image_if_needed +from mineru.backend.office.office_magic_model import MagicModel +from mineru.utils.enum_class import BlockType +from mineru.version import __version__ + + +def blocks_to_page_info(page_blocks, image_writer, page_index) -> dict: + """将blocks转换为页面信息""" + + magic_model = MagicModel(page_blocks) + image_blocks = magic_model.get_image_blocks() + table_blocks = magic_model.get_table_blocks() + chart_blocks = magic_model.get_chart_blocks() + + if image_writer: + + # Write embedded images to local storage via image_writer + for img_block in image_blocks: + for sub_block in img_block.get("blocks", []): + if sub_block.get("type") != "image_body": + continue + for line in sub_block.get("lines", []): + for span in line.get("spans", []): + save_span_image_if_needed(span, image_writer, page_index) + + replace_inline_table_images(table_blocks, image_writer, page_index) + + # Replace inline base64 images inside chart content with local paths + for chart_block in chart_blocks: + for sub_block in chart_block.get("blocks", []): + if sub_block.get("type") != "chart_body": + continue + for line in sub_block.get("lines", []): + for span in line.get("spans", []): + if span.get("type") != "chart": + continue + save_span_image_if_needed(span, image_writer, page_index) + + title_blocks = magic_model.get_title_blocks() + discarded_blocks = magic_model.get_discarded_blocks() + list_blocks = magic_model.get_list_blocks() + index_blocks = magic_model.get_index_blocks() + text_blocks = magic_model.get_text_blocks() + interline_equation_blocks = magic_model.get_interline_equation_blocks() + + page_blocks = [] + page_blocks.extend([ + *image_blocks, + *chart_blocks, + *table_blocks, + *title_blocks, + *text_blocks, + *interline_equation_blocks, + *list_blocks, + *index_blocks, + ]) + # 对page_blocks根据index的值进行排序 + page_blocks.sort(key=lambda x: x["index"]) + + page_info = {"para_blocks": page_blocks, "discarded_blocks": discarded_blocks, "page_idx": page_index} + return page_info + + +def _extract_section_parts_from_content(content: str, level: int): + """Try to extract a leading section number (e.g. '1.2.1') from title content. + + Returns a list of ints [n1, n2, ..., nL] when the number of parts equals + `level`, otherwise None. Handles formats like: + '1心肌特异性...' (no separator) + '1.2.1建立...' (Chinese text immediately after number) + '2.2.1 ALKBH5 ...' (space separator) + """ + match = re.match(r'^(\d+(?:\.\d+)*)', content.strip()) + if match: + parts = [int(p) for p in match.group(1).split('.')] + if len(parts) == level: + return parts + return None + + +def _collect_index_text_blocks(index_block: dict, result: list[dict]) -> None: + """Depth-first collect TOC leaf text blocks.""" + for child in index_block.get("blocks", []): + if child.get("type") == BlockType.INDEX: + _collect_index_text_blocks(child, result) + elif child.get("type") == BlockType.TEXT: + result.append(child) + + +def _link_index_entries_by_anchor(middle_json: dict) -> None: + """Keep TOC anchors only when they exist on parsed body blocks.""" + pdf_info = middle_json.get("pdf_info", []) + valid_anchors: set[str] = set() + + for page_info in pdf_info: + for block in page_info.get("para_blocks", []): + anchor = block.get("anchor") + if isinstance(anchor, str) and anchor.strip(): + valid_anchors.add(anchor.strip()) + + if not valid_anchors: + return + + for page_info in pdf_info: + for block in page_info.get("para_blocks", []): + if block.get("type") != BlockType.INDEX: + continue + toc_text_blocks: list[dict] = [] + _collect_index_text_blocks(block, toc_text_blocks) + for text_block in toc_text_blocks: + anchor = text_block.get("anchor") + if not isinstance(anchor, str): + text_block.pop("anchor", None) + continue + anchor = anchor.strip() + if not anchor or anchor not in valid_anchors: + text_block.pop("anchor", None) + continue + text_block["anchor"] = anchor + + +def result_to_middle_json(model_output_blocks_list, image_writer): + middle_json = {"pdf_info": [], "_backend":"office", "_version_name": __version__} + for index, page_blocks in enumerate(model_output_blocks_list): + page_info = blocks_to_page_info(page_blocks, image_writer, index) + middle_json["pdf_info"].append(page_info) + + section_counters: dict[int, int] = defaultdict(int) + for page_info in middle_json["pdf_info"]: + for block in page_info.get("para_blocks", []): + if block.get("type") != BlockType.TITLE: + continue + level = block.get("level", 1) + if block.get("is_numbered_style", False): + # Ensure all ancestor levels start at 1 (never 0) + for ancestor in range(1, level): + if section_counters[ancestor] == 0: + section_counters[ancestor] = 1 + # Increment current level counter and reset all deeper levels + section_counters[level] += 1 + for deeper in list(section_counters.keys()): + if deeper > level: + section_counters[deeper] = 0 + # Build section number string, e.g. "1.2.1." + section_number = ".".join( + str(section_counters[l]) for l in range(1, level + 1) + ) + "." + block["section_number"] = section_number + else: + # Some documents embed the section number directly in the content + # (is_numbered_style=False). Parse it and sync the counters so + # that subsequent numbered blocks continue from the right base. + lines = block.get("lines", []) + content = "" + if lines and lines[0].get("spans"): + content = lines[0]["spans"][0].get("content", "") + parts = _extract_section_parts_from_content(content, level) + if parts: + for k, v in enumerate(parts, start=1): + section_counters[k] = v + # Reset all deeper levels + for deeper in list(section_counters.keys()): + if deeper > level: + section_counters[deeper] = 0 + + _link_index_entries_by_anchor(middle_json) + return middle_json diff --git a/mineru/backend/office/office_magic_model.py b/mineru/backend/office/office_magic_model.py new file mode 100644 index 000000000..1450d75e6 --- /dev/null +++ b/mineru/backend/office/office_magic_model.py @@ -0,0 +1,781 @@ +# Copyright (c) Opendatalab. All rights reserved. +import re +from typing import Literal + +from loguru import logger + +from mineru.utils.enum_class import ContentType, BlockType +from mineru.utils.magic_model_utils import tie_up_category_by_index + + +class MagicModel: + def __init__(self, page_blocks: list): + self.page_blocks = page_blocks + + blocks = [] + self.all_spans = [] + + # 对caption块进行分类,将其分类为image_caption, table_caption, chart_caption + page_blocks = classify_caption_blocks(page_blocks) + + # 解析每个块 + for index, block_info in enumerate(page_blocks): + + block_type = block_info["type"] + block_content = block_info.get("content", "") + if not block_content and block_type != BlockType.CHART: + continue + + if block_type in [ + "text", + "title", + "image_caption", + "table_caption", + "chart_caption", + "header", + "footer", + "page_footnote", + ]: + span = parse_text_block_spans(block_content) + + elif block_type in ["image"]: + block_type = BlockType.IMAGE_BODY + span = { + "type": ContentType.IMAGE, + "image_base64": block_content, + } + elif block_type in ["table"]: + block_type = BlockType.TABLE_BODY + span = { + "type": ContentType.TABLE, + "html": clean_table_html(block_content), + } + elif block_type in ["chart"]: + block_type = BlockType.CHART_BODY + span = { + "type": ContentType.CHART, + "content": block_content, + } + if block_info.get("image_base64"): + span["image_base64"] = block_info["image_base64"] + elif block_type in ["equation"]: + block_type = BlockType.INTERLINE_EQUATION + span = { + "type": ContentType.INTERLINE_EQUATION, + "content": block_content, + } + elif block_type in ["list"]: + # 解析嵌套列表结构,生成与VLM一致的blocks结构 + parsed_list = parse_list_block(block_info) + if parsed_list: + # 使用外层index作为列表block的index + parsed_list["index"] = index + blocks.append(parsed_list) + continue + elif block_type in ["index"]: + # 解析嵌套索引结构(目录),生成与list一致的blocks结构 + parsed_index = parse_index_block(block_info) + if parsed_index: + parsed_index["index"] = index + blocks.append(parsed_index) + continue + else: + # 未知类型,跳过 + continue + + # 处理span类型并添加到all_spans + if isinstance(span, dict): + line = { + "spans": [span] + } + elif isinstance(span, list): + line = { + "spans":span + } + else: + raise ValueError(f"Unsupported span type: {type(span)}") + + block = { + "type": block_type, + "lines": [line], + "index": index, + } + anchor = block_info.get("anchor") + if ( + isinstance(anchor, str) + and anchor.strip() + and block_type in [BlockType.TITLE, BlockType.TEXT, BlockType.INTERLINE_EQUATION] + ): + block["anchor"] = anchor.strip() + if block_type == BlockType.TITLE: + block["is_numbered_style"] = block_info.get("is_numbered_style", False) + block["level"] = block_info.get("level", 1) + blocks.append(block) + + self.image_blocks = [] + self.table_blocks = [] + self.chart_blocks = [] + self.interline_equation_blocks = [] + self.text_blocks = [] + self.title_blocks = [] + self.discarded_blocks = [] + self.list_blocks = [] + self.index_blocks = [] + for block in blocks: + if block["type"] in [BlockType.IMAGE_BODY, BlockType.IMAGE_CAPTION, BlockType.IMAGE_FOOTNOTE]: + self.image_blocks.append(block) + elif block["type"] in [BlockType.TABLE_BODY, BlockType.TABLE_CAPTION, BlockType.TABLE_FOOTNOTE]: + self.table_blocks.append(block) + elif block["type"] in [BlockType.CHART_BODY, BlockType.CHART_CAPTION]: + self.chart_blocks.append(block) + elif block["type"] == BlockType.INTERLINE_EQUATION: + self.interline_equation_blocks.append(block) + elif block["type"] == BlockType.TEXT: + self.text_blocks.append(block) + elif block["type"] == BlockType.TITLE: + self.title_blocks.append(block) + elif block["type"] in [BlockType.REF_TEXT]: + self.ref_text_blocks.append(block) + elif block["type"] in [BlockType.PHONETIC]: + self.phonetic_blocks.append(block) + elif block["type"] in [BlockType.HEADER, BlockType.FOOTER, BlockType.PAGE_NUMBER, BlockType.ASIDE_TEXT, BlockType.PAGE_FOOTNOTE]: + self.discarded_blocks.append(block) + elif block["type"] == BlockType.LIST: + self.list_blocks.append(block) + elif block["type"] == BlockType.INDEX: + self.index_blocks.append(block) + else: + continue + + self.image_blocks, not_include_image_blocks = fix_two_layer_blocks(self.image_blocks, BlockType.IMAGE) + self.table_blocks, not_include_table_blocks = fix_two_layer_blocks(self.table_blocks, BlockType.TABLE) + self.chart_blocks, not_include_chart_blocks = fix_two_layer_blocks(self.chart_blocks, BlockType.CHART) + + for block in not_include_image_blocks + not_include_table_blocks + not_include_chart_blocks: + block["type"] = BlockType.TEXT + self.text_blocks.append(block) + + + def get_list_blocks(self): + return self.list_blocks + + def get_index_blocks(self): + return self.index_blocks + + def get_image_blocks(self): + return self.image_blocks + + def get_table_blocks(self): + return self.table_blocks + + def get_chart_blocks(self): + return self.chart_blocks + + def get_title_blocks(self): + return self.title_blocks + + def get_text_blocks(self): + return self.text_blocks + + def get_interline_equation_blocks(self): + return self.interline_equation_blocks + + def get_discarded_blocks(self): + return self.discarded_blocks + + +def parse_text_block_spans(content: str) -> list: + """ + 解析文本类block的content,提取其中的文本、行内公式、超链接和字体样式。 + + 支持的标签格式: + - ...: 行内公式 + - ......: 超链接(支持样式) + - ...: 带字体样式的普通文本 + + 字体样式值(逗号分隔):bold, italic, underline, strikethrough + + Args: + content: 文本块的content字符串,可能包含特殊标签 + + Returns: + 包含多个span的列表,每个span是一个字典,包含type和content等字段。 + 带样式的文本span额外包含 style 字段(list类型)。 + """ + if not content: + return [] + + # 匹配 开始标签 + _text_tag_re = re.compile(r'') + + spans = [] + last_end = 0 + pos = 0 + + while pos < len(content): + # 查找行内公式标签 ... + eq_start = content.find('', pos) + # 查找超链接标签 + hyperlink_start = content.find('', pos) + # 查找带样式的文本标签 (顶层,不在 hyperlink 内部) + text_tag_match = _text_tag_re.search(content, pos) + text_tag_start = text_tag_match.start() if text_tag_match else -1 + + # 收集所有有效的标签位置 + candidates = [] + if eq_start != -1: + candidates.append((eq_start, 'eq')) + if hyperlink_start != -1: + candidates.append((hyperlink_start, 'hyperlink')) + if text_tag_start != -1: + candidates.append((text_tag_start, 'text')) + + # 没有找到任何标签,处理剩余文本 + if not candidates: + remaining_text = content[last_end:] + if remaining_text: + spans.append({ + "type": ContentType.TEXT, + "content": remaining_text + }) + break + + # 取位置最小的标签 + next_tag_pos, next_tag_type = min(candidates, key=lambda x: x[0]) + + # 处理标签前的文本 + if next_tag_pos > last_end: + text_before = content[last_end:next_tag_pos] + if text_before: + spans.append({ + "type": ContentType.TEXT, + "content": text_before + }) + + # 处理行内公式 + if next_tag_type == 'eq': + eq_end = content.find('', next_tag_pos) + if eq_end != -1: + formula_content = content[next_tag_pos + 4:eq_end] + spans.append({ + "type": ContentType.INLINE_EQUATION, + "content": formula_content + }) + pos = eq_end + 5 # 跳过 + last_end = pos + else: + # 未找到闭合标签,将作为普通文本处理 + spans.append({ + "type": ContentType.TEXT, + "content": content[last_end:] + }) + break + + # 处理带样式的文本标签 + elif next_tag_type == 'text': + text_end = content.find('', next_tag_pos) + if text_end != -1: + # text_tag_match 对应当前 next_tag_pos 的匹配 + # 重新匹配确保位置对齐 + tag_open_end = content.find('>', next_tag_pos) + 1 + text_content = content[tag_open_end:text_end] + style_str = text_tag_match.group(1) if text_tag_match and text_tag_match.start() == next_tag_pos else None + span = { + "type": ContentType.TEXT, + "content": text_content + } + if style_str: + span["style"] = [s.strip() for s in style_str.split(',') if s.strip()] + spans.append(span) + pos = text_end + 7 # 跳过 + last_end = pos + else: + # 未找到闭合标签,作为普通文本处理 + spans.append({ + "type": ContentType.TEXT, + "content": content[last_end:] + }) + break + + # 处理超链接 + elif next_tag_type == 'hyperlink': + hyperlink_end = content.find('', next_tag_pos) + if hyperlink_end != -1: + # 提取超链接内容 + hyperlink_content = content[next_tag_pos + 11:hyperlink_end] + + # 解析内部的 标签 + inner_text_match = _text_tag_re.search(hyperlink_content) + text_end_in_hl = hyperlink_content.find('') + url_start = hyperlink_content.find('') + url_end = hyperlink_content.find('') + + if inner_text_match and text_end_in_hl != -1 and url_start != -1 and url_end != -1: + style_str = inner_text_match.group(1) + link_text_start = inner_text_match.end() # 开始标签结束后的位置 + link_text = hyperlink_content[link_text_start:text_end_in_hl] + link_url = hyperlink_content[url_start + 5:url_end] + + span = { + "type": ContentType.HYPERLINK, + "content": link_text, + "url": link_url + } + if style_str: + span["style"] = [s.strip() for s in style_str.split(',') if s.strip()] + spans.append(span) + pos = hyperlink_end + 12 # 跳过 + last_end = pos + else: + # 超链接格式不正确,作为普通文本处理 + spans.append({ + "type": ContentType.TEXT, + "content": content[last_end:] + }) + break + else: + # 未找到闭合标签,将作为普通文本处理 + spans.append({ + "type": ContentType.TEXT, + "content": content[last_end:] + }) + break + + return spans + + +def parse_list_block(list_block: dict): + """ + 递归解析嵌套列表结构,生成与VLM一致的blocks结构。 + + Args: + list_block: 列表块字典 + + Returns: + tuple: (解析后的列表block, 下一个可用索引) + """ + content = list_block.get("content", []) + if not content: + return None + + blocks = [] + + for item in content: + item_type = item.get("type", "") + + if item_type == "text": + # 解析文本项(可能包含行内公式和超链接) + text_content = item.get("content", "") + spans = parse_text_block_spans(text_content) + text_block = { + "type": BlockType.TEXT, + "lines": [{"spans": spans}] + } + blocks.append(text_block) + + elif item_type == "list": + # 递归解析嵌套列表 + nested_list = parse_list_block(item) + if nested_list: + blocks.append(nested_list) + + # 构建当前列表block + result = { + "type": BlockType.LIST, + "attribute": list_block.get("attribute", "unordered"), + "ilevel": list_block.get("ilevel", 0), + "blocks": blocks + } + + return result + + +def parse_index_block(index_block: dict): + """ + 递归解析嵌套索引结构(目录),生成与list一致的blocks结构。 + + Args: + index_block: 索引块字典 + + Returns: + 解析后的索引block字典,若内容为空则返回 None + """ + content = index_block.get("content", []) + if not content: + return None + + blocks = [] + + for item in content: + item_type = item.get("type", "") + + if item_type == "text": + text_content = item.get("content", "") + spans = parse_text_block_spans(text_content) + text_block = { + "type": BlockType.TEXT, + "lines": [{"spans": spans}] + } + anchor = item.get("anchor") + if isinstance(anchor, str) and anchor.strip(): + text_block["anchor"] = anchor.strip() + blocks.append(text_block) + + elif item_type == "index": + nested_index = parse_index_block(item) + if nested_index: + blocks.append(nested_index) + + result = { + "type": BlockType.INDEX, + "ilevel": index_block.get("ilevel", 0), + "blocks": blocks + } + + return result + + +def clean_table_html(html: str) -> str: + """ + 清洗表格HTML,只保留对表格结构表示有用的信息。 + + 保留的属性: + - colspan: 列合并 + - rowspan: 行合并 + + 清洗的内容: + - 移除所有style属性 + - 移除所有class属性 + - 移除border等其他属性 + - 保持表格结构标签(table, thead, tbody, tr, th, td等) + + Args: + html: 原始表格HTML字符串 + + Returns: + 清洗后的HTML字符串 + """ + if not html: + return "" + + # 需要保留的属性(对表格结构有用) + preserved_attrs = {'colspan', 'rowspan'} + # img 标签需要额外保留的属性(内联 base64 图片内容) + img_preserved_attrs = {'src', 'alt', 'width', 'height'} + + def clean_tag(match): + """清洗单个标签,只保留结构相关的属性""" + full_tag = match.group(0) + tag_name = match.group(1).lower() + + # 自闭合标签的处理 + is_self_closing = full_tag.rstrip().endswith('/>') + + # img 标签额外保留图片相关属性(如内联 base64 src) + current_preserved = preserved_attrs | (img_preserved_attrs if tag_name == 'img' else set()) + + # 提取需要保留的属性 + kept_attrs = [] + + # 匹配所有属性: attr="value" 或 attr='value' 或 attr=value 或单独的attr + attr_pattern = r'(\w+)\s*=\s*(?:"([^"]*)"|\'([^\']*)\'|(\S+))|(\w+)(?=\s|>|/>)' + for attr_match in re.finditer(attr_pattern, full_tag): + if attr_match.group(5): + # 单独的属性(如 disabled),跳过 + continue + + attr_name = attr_match.group(1) + if attr_name is None: + continue + attr_name = attr_name.lower() + attr_value = attr_match.group(2) or attr_match.group(3) or attr_match.group(4) or "" + + # 只保留指定属性(表格结构属性,img 标签还额外保留图片内容属性) + if attr_name in current_preserved: + kept_attrs.append(f'{attr_name}="{attr_value}"') + + # 重建标签 + if kept_attrs: + attrs_str = ' ' + ' '.join(kept_attrs) + else: + attrs_str = '' + + if is_self_closing: + return f'<{tag_name}{attrs_str}/>' + else: + return f'<{tag_name}{attrs_str}>' + + # 匹配开始标签(包括自闭合标签),捕获标签名 + # 匹配 + tag_pattern = r'<(\w+)(?:\s+[^>]*)?\s*/?>' + + result = re.sub(tag_pattern, clean_tag, html) + + return result + + +def isolated_formula_clean(txt): + latex = txt[:] + if latex.startswith("\\["): latex = latex[2:] + if latex.endswith("\\]"): latex = latex[:-2] + latex = latex.strip() + return latex + + +def code_content_clean(content): + """清理代码内容,移除Markdown代码块的开始和结束标记""" + if not content: + return "" + + lines = content.splitlines() + start_idx = 0 + end_idx = len(lines) + + # 处理开头的三个反引号 + if lines and lines[0].startswith("```"): + start_idx = 1 + + # 处理结尾的三个反引号 + if lines and end_idx > start_idx and lines[end_idx - 1].strip() == "```": + end_idx -= 1 + + # 只有在有内容时才进行join操作 + if start_idx < end_idx: + return "\n".join(lines[start_idx:end_idx]).strip() + return "" + + +def __tie_up_category_by_index(blocks, subject_block_type, object_block_type): + """基于index的主客体关联包装函数""" + # 定义获取主体和客体对象的函数 + def get_subjects(): + return list( + map( + lambda x: {"lines": x["lines"], "index": x["index"]}, + filter( + lambda x: x["type"] == subject_block_type, + blocks, + ), + ) + ) + + def get_objects(): + return list( + map( + lambda x: {"lines": x["lines"], "index": x["index"]}, + filter( + lambda x: x["type"] == object_block_type, + blocks, + ), + ) + ) + + # 调用通用方法 + return tie_up_category_by_index( + get_subjects, + get_objects, + include_bbox=False, + ) + + +def get_type_blocks(blocks, block_type: Literal["image", "table", "chart"]): + with_captions = __tie_up_category_by_index(blocks, f"{block_type}_body", f"{block_type}_caption") + ret = [] + for v in with_captions: + record = { + f"{block_type}_body": v["sub_bbox"], + f"{block_type}_caption_list": v["obj_bboxes"], + } + ret.append(record) + return ret + + +def fix_two_layer_blocks(blocks, fix_type: Literal["image", "table", "chart"]): + need_fix_blocks = get_type_blocks(blocks, fix_type) + fixed_blocks = [] + not_include_blocks = [] + processed_indices = set() + + # 将每个block的caption_list中不连续index的元素提出来作为普通block处理 + for block in need_fix_blocks: + caption_list = block[f"{fix_type}_caption_list"] + body_index = block[f"{fix_type}_body"]["index"] + + # 处理caption_list (从body往前看,caption在body之前) + if caption_list: + # 按index降序排列,从最接近body的开始检查 + caption_list.sort(key=lambda x: x["index"], reverse=True) + filtered_captions = [caption_list[0]] + for i in range(1, len(caption_list)): + prev_index = caption_list[i - 1]["index"] + curr_index = caption_list[i]["index"] + + # 检查是否连续 + if curr_index == prev_index - 1: + filtered_captions.append(caption_list[i]) + else: + # 检查gap中是否只有body_index + gap_indices = set(range(curr_index + 1, prev_index)) + if gap_indices == {body_index}: + # gap中只有body_index,不算真正的gap + filtered_captions.append(caption_list[i]) + else: + # 出现真正的gap,后续所有caption都作为普通block + not_include_blocks.extend(caption_list[i:]) + break + # 恢复升序 + filtered_captions.reverse() + block[f"{fix_type}_caption_list"] = filtered_captions + + # 构建两层结构blocks + for block in need_fix_blocks: + body = block[f"{fix_type}_body"] + caption_list = block[f"{fix_type}_caption_list"] + + body["type"] = f"{fix_type}_body" + for caption in caption_list: + caption["type"] = f"{fix_type}_caption" + processed_indices.add(caption["index"]) + + processed_indices.add(body["index"]) + + two_layer_block = { + "type": fix_type, + "blocks": [body], + "index": body["index"], + } + two_layer_block["blocks"].extend([*caption_list]) + # 对blocks按index排序 + two_layer_block["blocks"].sort(key=lambda x: x["index"]) + + fixed_blocks.append(two_layer_block) + + # 添加未处理的blocks + for block in blocks: + block.pop("type", None) + if block["index"] not in processed_indices and block not in not_include_blocks: + not_include_blocks.append(block) + + return fixed_blocks, not_include_blocks + + +def classify_caption_blocks(page_blocks: list) -> list: + """ + 对page_blocks中的caption块进行分类,将其分类为image_caption、table_caption或chart_caption。 + + 规则: + 1. 只有与type为table、image或chart相邻的caption可以作为caption + 2. caption块与table、image或chart中相隔的块全部是caption的情况视为该caption块与母块相邻 + 3. caption的类型与他前置位相邻的母块type一致,如果没有前置位母块则检查是否有后置位母块 + 4. 没有相邻母块的caption需要变更type为text + 5. 当一个block的type是table、image或chart时,其后续的第一个text块如果以特定前缀开头,则将其设置为相应的caption类型 + - table后的text块以["表", "table"]开头(不区分大小写)-> table_caption + - image后的text块以["图", "fig"]开头(不区分大小写)-> image_caption + - chart后的text块以["图", "fig", "chart"]开头(不区分大小写)-> chart_caption + """ + if not page_blocks: + return page_blocks + + available_types = ["table", "image", "chart"] + + # 定义caption前缀匹配规则 + table_caption_prefixes = ["表", "table"] + image_caption_prefixes = ["图", "fig"] + chart_caption_prefixes = ["图", "fig", "chart"] + + # 第一步:处理table/image/chart后续的text块,将符合条件的text块标记为caption + preprocessed_blocks = [] + n = len(page_blocks) + + for i, block in enumerate(page_blocks): + block_type = block.get("type") + + # 检查是否是table或image块 + if block_type in available_types: + preprocessed_blocks.append(block) + + # 查找后续的第一个text块 + if i + 1 < n: + next_block = page_blocks[i + 1] + next_block_type = next_block.get("type") + + if next_block_type == "text": + content = next_block.get("content", "").strip().lower() + + # 根据当前块类型检查是否匹配caption前缀 + if block_type == "table": + if any(content.startswith(prefix.lower()) for prefix in table_caption_prefixes): + # 将text块标记为caption,后续会被处理为table_caption + next_block = next_block.copy() + next_block["type"] = "caption" + page_blocks[i + 1] = next_block + elif block_type == "image": + if any(content.startswith(prefix.lower()) for prefix in image_caption_prefixes): + # 将text块标记为caption,后续会被处理为image_caption + next_block = next_block.copy() + next_block["type"] = "caption" + page_blocks[i + 1] = next_block + elif block_type == "chart": + if any(content.startswith(prefix.lower()) for prefix in chart_caption_prefixes): + # 将text块标记为caption,后续会被处理为chart_caption + next_block = next_block.copy() + next_block["type"] = "caption" + page_blocks[i + 1] = next_block + else: + preprocessed_blocks.append(block) + + # 第二步:处理caption块的分类 + result_blocks = [] + + for i, block in enumerate(page_blocks): + if block.get("type") != "caption": + result_blocks.append(block) + continue + + # 查找前置位相邻的母块(table、image或chart) + # 向前查找,跳过连续的caption块 + prev_parent_type = None + j = i - 1 + while j >= 0: + prev_block_type = page_blocks[j].get("type") + if prev_block_type in available_types: + prev_parent_type = prev_block_type + break + elif prev_block_type == "caption": + # 继续向前查找 + j -= 1 + else: + # 遇到非caption且非table/image/chart的块,停止查找 + break + + # 查找后置位相邻的母块(table、image或chart) + # 向后查找,跳过连续的caption块 + next_parent_type = None + k = i + 1 + while k < n: + next_block_type = page_blocks[k].get("type") + if next_block_type in available_types: + next_parent_type = next_block_type + break + elif next_block_type == "caption": + # 继续向后查找 + k += 1 + else: + # 遇到非caption且非table/image/chart的块,停止查找 + break + + # 根据规则确定caption类型 + new_block = block.copy() + if prev_parent_type: + # 优先使用前置位母块的类型 + new_block["type"] = f"{prev_parent_type}_caption" + elif next_parent_type: + # 没有前置位母块,使用后置位母块的类型 + new_block["type"] = f"{next_parent_type}_caption" + else: + # 没有相邻母块,变更为text + new_block["type"] = "text" + + result_blocks.append(new_block) + + return result_blocks diff --git a/mineru/backend/office/office_middle_json_mkcontent.py b/mineru/backend/office/office_middle_json_mkcontent.py new file mode 100644 index 000000000..7e268da67 --- /dev/null +++ b/mineru/backend/office/office_middle_json_mkcontent.py @@ -0,0 +1,1042 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import re +import unicodedata +from html import escape + +from loguru import logger + +from mineru.backend.utils.markdown_utils import ( + escape_conservative_markdown_text, + escape_text_block_markdown_prefix, +) +from mineru.utils.config_reader import get_latex_delimiter_config +from mineru.utils.enum_class import MakeMode, BlockType, ContentType, ContentTypeV2 + +latex_delimiters_config = get_latex_delimiter_config() + +default_delimiters = { + 'display': {'left': '$$', 'right': '$$'}, + 'inline': {'left': '$', 'right': '$'} +} + +delimiters = latex_delimiters_config if latex_delimiters_config else default_delimiters + +display_left_delimiter = delimiters['display']['left'] +display_right_delimiter = delimiters['display']['right'] +inline_left_delimiter = delimiters['inline']['left'] +inline_right_delimiter = delimiters['inline']['right'] + +OFFICE_STYLE_RENDER_MODE_ENV = 'MINERU_OFFICE_STYLE_RENDER_MODE' +OFFICE_STYLE_RENDER_MODE_HTML = 'html' +OFFICE_STYLE_RENDER_MODE_MARKDOWN = 'markdown' +OFFICE_MARKDOWN_WRAPPER_STYLES = {'bold', 'italic', 'strikethrough'} + + +def _apply_markdown_style(content: str, style: list) -> str: + """ + 按照字体样式列表对文本内容应用 Markdown 格式。 + + 支持的样式:bold, italic, underline, strikethrough + 组合顺序(由内到外): + 1. bold/italic(纯 Markdown,最内层,兼容性最广) + 2. strikethrough(~~,中间层,包裹纯 Markdown 符号广泛支持) + 3. underline(HTML ,最外层,作为 HTML 容器不干扰内部 Markdown 解析) + + 这样可避免 `**~~text~~**` 在部分渲染器中因 HTML 标签打断 + 外层 Markdown 标记解析而导致样式失效的问题, + 改为输出 `~~**text**~~`,兼容性更好。 + + Args: + content: 待格式化的文本内容 + style: 样式列表,如 ["bold", "italic"] + + Returns: + str: 应用 Markdown 格式后的文本 + """ + if not style or not content: + return content + + # 第一层(最内层):bold / italic —— 纯 Markdown 符号,放最里面兼容性最好 + if 'bold' in style and 'italic' in style: + content = f'***{content}***' + elif 'bold' in style: + content = f'**{content}**' + elif 'italic' in style: + content = f'*{content}*' + + # 第二层:strikethrough —— ~~text~~,包裹纯 Markdown 内容,广泛支持 + if 'strikethrough' in style: + content = f'~~{content}~~' + + # 第三层(最外层):underline —— markdown 无原生语法,使用 HTML 标签 + # 作为外层 HTML 容器,不会干扰内部 Markdown 标记的解析 + if 'underline' in style: + content = f'{content}' + + return content + + +def _apply_html_style(content: str, style: list) -> str: + """Apply inline styles with HTML tags for markdown-hostile contexts.""" + if not style or not content: + return content + + if 'bold' in style and 'italic' in style: + content = f'{content}' + elif 'bold' in style: + content = f'{content}' + elif 'italic' in style: + content = f'{content}' + + if 'strikethrough' in style: + content = f'{content}' + + if 'underline' in style: + content = f'{content}' + + return content + + +def _get_office_style_render_mode() -> str: + mode = os.getenv( + OFFICE_STYLE_RENDER_MODE_ENV, + OFFICE_STYLE_RENDER_MODE_MARKDOWN, + ).strip().lower() + if mode in { + OFFICE_STYLE_RENDER_MODE_HTML, + OFFICE_STYLE_RENDER_MODE_MARKDOWN, + }: + return mode + logger.warning( + f"Invalid {OFFICE_STYLE_RENDER_MODE_ENV}={mode!r}, " + f"fallback to {OFFICE_STYLE_RENDER_MODE_MARKDOWN!r}" + ) + return OFFICE_STYLE_RENDER_MODE_MARKDOWN + + +def _apply_configured_style(content: str, style: list) -> str: + if _get_office_style_render_mode() == OFFICE_STYLE_RENDER_MODE_MARKDOWN: + return _apply_markdown_style(content, style) + return _apply_html_style(content, style) + + +def _render_link(text: str, url: str) -> str: + if _get_office_style_render_mode() == OFFICE_STYLE_RENDER_MODE_MARKDOWN: + return f'[{text}]({url})' + return f'{text}' + + +def _prefix_table_img_src(html: str, img_buket_path: str) -> str: + """Prefix local-path img src attributes in table HTML with img_buket_path.""" + if not html or not img_buket_path: + return html + return re.sub( + r'src="(?!data:)([^"]+)"', + lambda m: f'src="{img_buket_path}/{m.group(1)}"', + html, + ) + + +def _replace_eq_tags_in_table_html(html: str) -> str: + """Replace ... tags in table HTML with inline math delimiters.""" + if not html: + return html + return re.sub( + r'(.*?)', + lambda m: f' {inline_left_delimiter}{m.group(1)}{inline_right_delimiter} ', + html, + flags=re.DOTALL, + ) + + +def _format_embedded_html(html: str, img_buket_path: str) -> str: + """Apply image-path prefixing and equation replacement for HTML-like content.""" + return _replace_eq_tags_in_table_html(_prefix_table_img_src(html, img_buket_path)) + + +def _build_media_path(img_buket_path: str, image_path: str) -> str: + """Build a display path while keeping empty image references empty.""" + if not image_path: + return '' + if not img_buket_path: + return image_path + return f"{img_buket_path}/{image_path}" + + +def _escape_office_markdown_text(content: str) -> str: + """Escape plain-text Office content before applying Markdown wrappers.""" + if not content: + return content + if _get_office_style_render_mode() != OFFICE_STYLE_RENDER_MODE_MARKDOWN: + return content + return escape_conservative_markdown_text(content) + + +def get_title_level(para_block): + title_level = para_block.get('level', 2) + return title_level + + +def _make_rendered_part( + span_type, + rendered_content: str, + raw_content: str = '', + style: list | None = None, + has_markdown_wrapper: bool = False, +): + return { + 'span_type': span_type, + 'rendered_content': rendered_content, + 'raw_content': raw_content, + 'style': style or [], + 'has_markdown_wrapper': has_markdown_wrapper, + } + + +def _has_markdown_wrapper(style: list) -> bool: + if _get_office_style_render_mode() != OFFICE_STYLE_RENDER_MODE_MARKDOWN: + return False + if not style or 'underline' in style: + return False + return any(name in OFFICE_MARKDOWN_WRAPPER_STYLES for name in style) + + +def _get_first_non_whitespace_char(text: str): + for ch in text: + if not ch.isspace(): + return ch + return None + + +def _get_last_non_whitespace_char(text: str): + for ch in reversed(text): + if not ch.isspace(): + return ch + return None + + +def _is_punctuation_or_symbol(ch: str) -> bool: + return unicodedata.category(ch).startswith(('P', 'S')) + + +def _is_boundary_text_char(ch: str) -> bool: + if ch.isspace(): + return False + return not _is_punctuation_or_symbol(ch) + + +def _needs_markdown_it_boundary_space(prev_part: dict, next_part: dict) -> bool: + if _get_office_style_render_mode() != OFFICE_STYLE_RENDER_MODE_MARKDOWN: + return False + if not prev_part.get('has_markdown_wrapper', False): + return False + if next_part.get('span_type') in { + ContentType.HYPERLINK, + ContentType.INLINE_EQUATION, + ContentType.INTERLINE_EQUATION, + }: + return False + + prev_raw = prev_part.get('raw_content', '') + next_raw = next_part.get('raw_content', '') + if not prev_raw.strip() or not next_raw.strip(): + return False + if prev_raw[-1].isspace() or next_raw[0].isspace(): + return False + + prev_char = _get_last_non_whitespace_char(prev_raw) + next_char = _get_first_non_whitespace_char(next_raw) + if prev_char is None or next_char is None: + return False + if not _is_punctuation_or_symbol(prev_char): + return False + if not _is_boundary_text_char(next_char): + return False + return True + + +def _join_rendered_parts(parts: list[dict]) -> str: + para_text = '' + prev_part = None + + for i, part in enumerate(parts): + span_type = part['span_type'] + content = part['rendered_content'] + is_last = i == len(parts) - 1 + + if span_type == ContentType.INLINE_EQUATION: + if para_text and not para_text.endswith(' '): + para_text += ' ' + para_text += content + if not is_last: + para_text += ' ' + else: + if prev_part is not None and _needs_markdown_it_boundary_space(prev_part, part): + para_text += ' ' + para_text += content + + prev_part = part + + return para_text + + +def _append_text_part(parts: list[dict], original_content: str, span_style: list): + escaped_content = _escape_office_markdown_text(original_content) + content_stripped = escaped_content.strip() + if content_stripped: + styled = _apply_configured_style(content_stripped, span_style) + leading = escaped_content[:len(escaped_content) - len(escaped_content.lstrip())] + trailing = escaped_content[len(escaped_content.rstrip()):] + parts.append( + _make_rendered_part( + ContentType.TEXT, + leading + styled + trailing, + raw_content=original_content, + style=span_style, + has_markdown_wrapper=_has_markdown_wrapper(span_style), + ) + ) + elif original_content: + visible_styles = {'underline', 'strikethrough'} + if span_style and any(s in visible_styles for s in span_style): + rendered_content = original_content.replace(" ", " ") + rendered_content = _apply_configured_style(rendered_content, span_style) + else: + rendered_content = original_content + parts.append( + _make_rendered_part( + ContentType.TEXT, + rendered_content, + raw_content=original_content, + style=span_style, + ) + ) + + +def _append_hyperlink_part( + parts: list[dict], + original_content: str, + span_style: list, + url: str = '', + plain_text_only: bool = False, +): + link_text = _escape_office_markdown_text(original_content.strip()) + if not link_text: + return + + styled_text = _apply_configured_style(link_text, span_style) + if plain_text_only: + leading = original_content[:len(original_content) - len(original_content.lstrip())] + trailing = original_content[len(original_content.rstrip()):] + rendered_content = leading + styled_text + trailing + has_markdown_wrapper = _has_markdown_wrapper(span_style) + else: + rendered_content = _render_link(styled_text, url) + has_markdown_wrapper = False + + parts.append( + _make_rendered_part( + ContentType.HYPERLINK, + rendered_content, + raw_content=original_content, + style=span_style, + has_markdown_wrapper=has_markdown_wrapper, + ) + ) + + +def merge_para_with_text(para_block, escape_text_block_prefix=True): + # First pass: collect rendered parts with raw boundary metadata. + parts = [] + if para_block['type'] == BlockType.TITLE: + if para_block.get('is_numbered_style', False): + section_number = para_block.get('section_number', '') + if section_number: + parts.append( + _make_rendered_part( + ContentType.TEXT, + f"{section_number} ", + raw_content=f"{section_number} ", + ) + ) + + for line in para_block['lines']: + for span in line['spans']: + span_type = span['type'] + span_style = span.get('style', []) + + if span_type == ContentType.TEXT: + _append_text_part(parts, span['content'], span_style) + elif span_type == ContentType.INLINE_EQUATION: + content = f"{inline_left_delimiter}{span['content']}{inline_right_delimiter}" + content = content.strip() + if content: + parts.append( + _make_rendered_part( + span_type, + content, + raw_content=span['content'], + ) + ) + elif span_type == ContentType.INTERLINE_EQUATION: + content = f"\n{display_left_delimiter}\n{span['content']}\n{display_right_delimiter}\n" + content = content.strip() + if content: + parts.append( + _make_rendered_part( + span_type, + content, + raw_content=span['content'], + ) + ) + elif span_type == ContentType.HYPERLINK: + _append_hyperlink_part( + parts, + span['content'], + span_style, + url=span.get('url', ''), + ) + + para_text = _join_rendered_parts(parts) + if escape_text_block_prefix and para_block.get('type') == BlockType.TEXT: + para_text = escape_text_block_markdown_prefix(para_text) + return para_text + + +def _flatten_list_items(list_block): + """Recursively flatten nested list blocks into a list of prefixed item strings.""" + items = [] + ilevel = list_block.get('ilevel', 0) + attribute = list_block.get('attribute', 'unordered') + indent = ' ' * ilevel + ordered_counter = 1 + + for block in list_block.get('blocks', []): + if block['type'] in [BlockType.LIST, BlockType.INDEX]: + items.extend(_flatten_list_items(block)) + else: + item_text = merge_para_with_text(block, escape_text_block_prefix=False) + if item_text.strip(): + if attribute == 'ordered': + items.append(f"{indent}{ordered_counter}. {item_text}") + ordered_counter += 1 + else: + items.append(f"{indent}- {item_text}") + + return items + + +def _flatten_list_items_v2(list_block): + """Recursively flatten nested list blocks into v2-structured item dicts.""" + items = [] + ilevel = list_block.get('ilevel', 0) + attribute = list_block.get('attribute', 'unordered') + ordered_counter = 1 + + for block in list_block.get('blocks', []): + if block['type'] in [BlockType.LIST, BlockType.INDEX]: + items.extend(_flatten_list_items_v2(block)) + else: + item_content = merge_para_with_text_v2(block) + if item_content: + if attribute == 'ordered': + prefix = f"{' ' * ilevel}{ordered_counter}." + ordered_counter += 1 + else: + prefix = f"{' ' * ilevel}-" + item = { + 'item_type': 'text', + 'ilevel': ilevel, + 'prefix': prefix, + 'item_content': item_content, + } + anchor = block.get("anchor") + if isinstance(anchor, str) and anchor.strip(): + item["anchor"] = anchor.strip() + items.append(item) + + return items + + +def merge_list_to_markdown(list_block): + """Recursively convert a nested list block to markdown text.""" + return '\n'.join(_flatten_list_items(list_block)) + '\n' + + +def _flatten_index_items(index_block): + """Recursively flatten index (TOC) blocks into markdown list items. + + Strips the trailing tab+page-number from span content and, when target + location fields are present on the leaf text block, wraps the text in + a markdown hyperlink pointing to the body-block anchor. + + Styling (bold, italic, underline, strikethrough) is applied via the + configured office style render mode. HYPERLINK spans are rendered as + plain styled text (without the URL) because TOC entries use + document-internal bookmark links, not external URLs. + + The tab+page-number is stripped from the raw content BEFORE markdown + style markers are applied, so that closing markers (e.g. ``**``) are + never inadvertently removed by the tab-stripping step. + """ + items = [] + ilevel = index_block.get('ilevel', 0) + indent = ' ' * ilevel + + for child in index_block.get('blocks', []): + if child.get('type') == BlockType.INDEX: + items.extend(_flatten_index_items(child)) + elif child.get('type') == BlockType.TEXT: + span_items = [] # list of (content, span_type, span_style) + anchor = child.get('anchor') + if not isinstance(anchor, str) or not anchor.strip(): + anchor = None + else: + anchor = anchor.strip() + + for line in child.get('lines', []): + for span in line.get('spans', []): + content = span.get('content', '') + span_style = span.get('style', []) + span_type = span.get('type') + span_items.append((content, span_type, span_style)) + + if not span_items: + continue + + # ---------------------------------------------------------- + # Step 1: Strip the trailing tab+page-number from the raw + # (unstyled) content BEFORE applying markdown markers. + # + # Find the last non-equation span that contains a tab; strip + # everything after its last tab ONLY when the trailing token + # actually looks like a page number. + # Then replace any remaining internal tabs with spaces so that + # "1.1\t研究对象" → "1.1 研究对象". + # ---------------------------------------------------------- + def _looks_like_page_token(token: str) -> bool: + token = token.strip() + if not token: + return False + # Page tokens are usually short and contain no CJK characters. + if len(token) > 12: + return False + if re.search(r'[\u4e00-\u9fff]', token): + return False + # Arabic / Roman / single-letter page styles. + if re.fullmatch(r'\d+', token): + return True + if re.fullmatch(r'[ivxlcdm]+', token.lower()): + return True + if re.fullmatch(r'[a-zA-Z]', token): + return True + return False + + last_tab_span_idx = -1 + for i, (content, span_type, _) in enumerate(span_items): + if span_type != ContentType.INLINE_EQUATION and '\t' in content: + last_tab_span_idx = i + + should_strip_page_tail = False + if last_tab_span_idx != -1: + last_tab_content = span_items[last_tab_span_idx][0] + tab_tail = last_tab_content.rsplit('\t', 1)[1] + should_strip_page_tail = _looks_like_page_token(tab_tail) + + # Build stripped span_items + stripped_span_items = [] + for i, (content, span_type, span_style) in enumerate(span_items): + if span_type != ContentType.INLINE_EQUATION: + if i == last_tab_span_idx and should_strip_page_tail: + # Strip from last tab onwards (removes tab + page number) + content = content.rsplit('\t', 1)[0] + # Replace remaining internal tabs with spaces + content = content.replace('\t', ' ') + stripped_span_items.append((content, span_type, span_style)) + + # ---------------------------------------------------------- + # Step 2: Apply markdown styles and build the final text. + # + # If all non-equation spans share the same non-empty style + # (common in TOC entries like all-bold), apply style once to + # the whole item to avoid fragmented markers such as + # "**foo****bar**". + # ---------------------------------------------------------- + non_eq_styles = [ + tuple(span_style) + for content, span_type, span_style in stripped_span_items + if content and span_type != ContentType.INLINE_EQUATION + ] + uniform_style = None + if non_eq_styles: + first_style = non_eq_styles[0] + if first_style and all(s == first_style for s in non_eq_styles): + uniform_style = list(first_style) + + if uniform_style: + raw_parts = [] + for content, span_type, _span_style in stripped_span_items: + if not content: + continue + if span_type == ContentType.INLINE_EQUATION: + raw_parts.append( + f'{inline_left_delimiter}{content}{inline_right_delimiter}' + ) + else: + # For TOC rendering, hyperlink spans output as plain text. + raw_parts.append(_escape_office_markdown_text(content)) + item_text = ''.join(raw_parts).strip() + if item_text: + item_text = _apply_configured_style(item_text, uniform_style) + else: + rendered_parts = [] + for content, span_type, span_style in stripped_span_items: + if not content: + continue + if span_type == ContentType.INLINE_EQUATION: + rendered_parts.append( + _make_rendered_part( + span_type, + f'{inline_left_delimiter}{content}{inline_right_delimiter}', + raw_content=content, + ) + ) + elif span_type == ContentType.HYPERLINK: + _append_hyperlink_part( + rendered_parts, + content, + span_style, + plain_text_only=True, + ) + else: + _append_text_part(rendered_parts, content, span_style) + + item_text = _join_rendered_parts(rendered_parts).strip() + if not item_text: + continue + + if anchor is not None: + item_text = _render_link(item_text, f"#{anchor}") + + items.append(f"{indent}- {item_text}") + + return items + + +def merge_index_to_markdown(index_block): + """Convert a nested index (TOC) block to markdown with hyperlinks.""" + return '\n'.join(_flatten_index_items(index_block)) + '\n' + + +def mk_blocks_to_markdown(para_blocks, make_mode, img_buket_path='', page_idx=None): + page_markdown = [] + for para_block in para_blocks: + para_text = '' + para_type = para_block['type'] + if para_type in [BlockType.TEXT, BlockType.INTERLINE_EQUATION]: + para_text = merge_para_with_text(para_block) + if para_type == BlockType.TEXT: + bookmark_anchor = para_block.get("anchor") + if ( + isinstance(bookmark_anchor, str) + and bookmark_anchor.strip() + and bookmark_anchor.strip().startswith("_Toc") + ): + para_text = f'\n{para_text}' + elif para_type == BlockType.LIST: + para_text = merge_list_to_markdown(para_block) + elif para_type == BlockType.INDEX: + para_text = merge_index_to_markdown(para_block) + elif para_type == BlockType.TITLE: + title_level = get_title_level(para_block) + title_text = merge_para_with_text(para_block) + bookmark_anchor = para_block.get("anchor") + if isinstance(bookmark_anchor, str) and bookmark_anchor.strip(): + para_text = f'\n{"#" * title_level} {title_text}' + else: + para_text = f'{"#" * title_level} {title_text}' + elif para_type == BlockType.IMAGE: + if make_mode == MakeMode.NLP_MD: + continue + elif make_mode == MakeMode.MM_MD: + for block in para_block['blocks']: # 1st.拼image_body + if block['type'] == BlockType.IMAGE_BODY: + for line in block['lines']: + for span in line['spans']: + if span['type'] == ContentType.IMAGE: + if span.get('image_path', ''): + para_text += f"![]({img_buket_path}/{span['image_path']})" + for block in para_block['blocks']: # 2nd.拼image_caption + if block['type'] == BlockType.IMAGE_CAPTION: + para_text += ' \n' + merge_para_with_text(block) + + elif para_type == BlockType.TABLE: + if make_mode == MakeMode.NLP_MD: + continue + elif make_mode == MakeMode.MM_MD: + for block in para_block['blocks']: # 1st.拼table_body + if block['type'] == BlockType.TABLE_BODY: + for line in block['lines']: + for span in line['spans']: + if span['type'] == ContentType.TABLE: + para_text += f"\n{_format_embedded_html(span['html'], img_buket_path)}\n" + for block in para_block['blocks']: # 2nd.拼table_caption + if block['type'] == BlockType.TABLE_CAPTION: + para_text += ' \n' + merge_para_with_text(block) + elif para_type == BlockType.CHART: + if make_mode == MakeMode.NLP_MD: + continue + elif make_mode == MakeMode.MM_MD: + image_path, chart_content = get_body_data(para_block) + if chart_content: + para_text += f"\n{_format_embedded_html(chart_content, img_buket_path)}\n" + elif image_path: + para_text += f"![]({_build_media_path(img_buket_path, image_path)})" + else: + continue + for block in para_block['blocks']: + if block['type'] == BlockType.CHART_CAPTION: + para_text += ' \n' + merge_para_with_text(block) + if para_text.strip() == '': + continue + else: + # page_markdown.append(para_text.strip()) + page_markdown.append(para_text.strip('\r\n')) + + return page_markdown + + +def make_blocks_to_content_list(para_block, img_buket_path, page_idx): + para_type = para_block['type'] + para_content = {} + if para_type in [ + BlockType.TEXT, + BlockType.HEADER, + BlockType.FOOTER, + BlockType.PAGE_FOOTNOTE, + ]: + para_content = { + 'type': para_type, + 'text': merge_para_with_text(para_block), + } + elif para_type == BlockType.LIST: + attribute = para_block.get('attribute', 'unordered') + para_content = { + 'type': para_type, + 'list_items': _flatten_list_items(para_block), + } + elif para_type == BlockType.INDEX: + para_content = { + 'type': para_type, + 'list_items': _flatten_index_items(para_block), + } + elif para_type == BlockType.TITLE: + title_level = get_title_level(para_block) + para_content = { + 'type': ContentType.TEXT, + 'text': merge_para_with_text(para_block), + } + if title_level != 0: + para_content['text_level'] = title_level + elif para_type == BlockType.INTERLINE_EQUATION: + para_content = { + 'type': ContentType.EQUATION, + 'text': merge_para_with_text(para_block), + 'text_format': 'latex', + } + elif para_type == BlockType.IMAGE: + para_content = {'type': ContentType.IMAGE, 'img_path': '', BlockType.IMAGE_CAPTION: []} + for block in para_block['blocks']: + if block['type'] == BlockType.IMAGE_BODY: + for line in block['lines']: + for span in line['spans']: + if span['type'] == ContentType.IMAGE: + if span.get('image_path', ''): + para_content['img_path'] = f"{img_buket_path}/{span['image_path']}" + if block['type'] == BlockType.IMAGE_CAPTION: + para_content[BlockType.IMAGE_CAPTION].append(merge_para_with_text(block)) + elif para_type == BlockType.TABLE: + para_content = {'type': ContentType.TABLE, BlockType.TABLE_CAPTION: []} + for block in para_block['blocks']: + if block['type'] == BlockType.TABLE_BODY: + for line in block['lines']: + for span in line['spans']: + if span['type'] == ContentType.TABLE: + if span.get('html', ''): + para_content[BlockType.TABLE_BODY] = _format_embedded_html(span['html'], img_buket_path) + if block['type'] == BlockType.TABLE_CAPTION: + para_content[BlockType.TABLE_CAPTION].append(merge_para_with_text(block)) + elif para_type == BlockType.CHART: + para_content = { + 'type': ContentType.CHART, + 'img_path': '', + 'content': '', + BlockType.CHART_CAPTION: [], + } + for block in para_block['blocks']: + if block['type'] == BlockType.CHART_BODY: + for line in block['lines']: + for span in line['spans']: + if span['type'] == ContentType.CHART: + para_content['img_path'] = _build_media_path( + img_buket_path, + span.get('image_path', ''), + ) + if span.get('content', ''): + para_content['content'] = _format_embedded_html( + span['content'], + img_buket_path, + ) + if block['type'] == BlockType.CHART_CAPTION: + para_content[BlockType.CHART_CAPTION].append(merge_para_with_text(block)) + + para_content['page_idx'] = page_idx + anchor = para_block.get("anchor") + if isinstance(anchor, str) and anchor.strip(): + para_content["anchor"] = anchor.strip() + + return para_content + + +def make_blocks_to_content_list_v2(para_block, img_buket_path): + para_type = para_block['type'] + para_content = {} + if para_type in [ + BlockType.HEADER, + BlockType.FOOTER, + BlockType.PAGE_FOOTNOTE, + ]: + if para_type == BlockType.HEADER: + content_type = ContentTypeV2.PAGE_HEADER + elif para_type == BlockType.FOOTER: + content_type = ContentTypeV2.PAGE_FOOTER + elif para_type == BlockType.PAGE_FOOTNOTE: + content_type = ContentTypeV2.PAGE_FOOTNOTE + else: + raise ValueError(f"Unknown para_type: {para_type}") + para_content = { + 'type': content_type, + 'content': { + f"{content_type}_content": merge_para_with_text_v2(para_block), + } + } + elif para_type == BlockType.TITLE: + title_level = get_title_level(para_block) + if title_level != 0: + para_content = { + 'type': ContentTypeV2.TITLE, + 'content': { + "title_content": merge_para_with_text_v2(para_block), + "level": title_level + } + } + else: + para_content = { + 'type': ContentTypeV2.PARAGRAPH, + 'content': { + "paragraph_content": merge_para_with_text_v2(para_block), + } + } + elif para_type in [ + BlockType.TEXT, + ]: + para_content = { + 'type': ContentTypeV2.PARAGRAPH, + 'content': { + 'paragraph_content': merge_para_with_text_v2(para_block), + } + } + elif para_type == BlockType.INTERLINE_EQUATION: + _, math_content = get_body_data(para_block) + para_content = { + 'type': ContentTypeV2.EQUATION_INTERLINE, + 'content': { + 'math_content': math_content, + 'math_type': 'latex', + } + } + elif para_type == BlockType.IMAGE: + image_caption = [] + image_path, _ = get_body_data(para_block) + image_source = { + 'path': f"{img_buket_path}/{image_path}", + } + for block in para_block['blocks']: + if block['type'] == BlockType.IMAGE_CAPTION: + image_caption.extend(merge_para_with_text_v2(block)) + para_content = { + 'type': ContentTypeV2.IMAGE, + 'content': { + 'image_source': image_source, + 'image_caption': image_caption, + } + } + elif para_type == BlockType.TABLE: + table_caption = [] + _, html = get_body_data(para_block) + if html.count(" 1: + table_nest_level = 2 + else: + table_nest_level = 1 + if ( + "colspan" in html or + "rowspan" in html or + table_nest_level > 1 + ): + table_type = ContentTypeV2.TABLE_COMPLEX + else: + table_type = ContentTypeV2.TABLE_SIMPLE + + for block in para_block['blocks']: + if block['type'] == BlockType.TABLE_CAPTION: + table_caption.extend(merge_para_with_text_v2(block)) + para_content = { + 'type': ContentTypeV2.TABLE, + 'content': { + 'table_caption': table_caption, + 'html': _format_embedded_html(html, img_buket_path), + 'table_type': table_type, + 'table_nest_level': table_nest_level, + } + } + elif para_type == BlockType.CHART: + chart_caption = [] + image_path, chart_content = get_body_data(para_block) + for block in para_block['blocks']: + if block['type'] == BlockType.CHART_CAPTION: + chart_caption.extend(merge_para_with_text_v2(block)) + para_content = { + 'type': ContentTypeV2.CHART, + 'content': { + 'image_source': { + 'path': _build_media_path(img_buket_path, image_path), + }, + 'content': _format_embedded_html(chart_content, img_buket_path), + 'chart_caption': chart_caption, + } + } + elif para_type == BlockType.LIST: + list_type = ContentTypeV2.LIST_TEXT + attribute = para_block.get('attribute', 'unordered') + para_content = { + 'type': ContentTypeV2.LIST, + 'content': { + 'list_type': list_type, + 'attribute': attribute, + 'list_items': _flatten_list_items_v2(para_block), + } + } + elif para_type == BlockType.INDEX: + para_content = { + 'type': ContentTypeV2.INDEX, + 'content': { + 'list_type': ContentTypeV2.LIST_TEXT, + 'list_items': _flatten_list_items_v2(para_block), + } + } + + anchor = para_block.get("anchor") + if isinstance(anchor, str) and anchor.strip(): + para_content["anchor"] = anchor.strip() + + return para_content + + +def get_body_data(para_block): + """ + Extract image_path and body content from para_block + Returns: + - For IMAGE/INTERLINE_EQUATION: (image_path, '') + - For TABLE: (image_path, html) + - For CHART: (image_path, content) + - Default: ('', '') + """ + + def get_data_from_spans(lines): + for line in lines: + for span in line.get('spans', []): + span_type = span.get('type') + if span_type == ContentType.TABLE: + return span.get('image_path', ''), span.get('html', '') + elif span_type == ContentType.CHART: + return span.get('image_path', ''), span.get('content', '') + elif span_type == ContentType.IMAGE: + return span.get('image_path', ''), '' + elif span_type == ContentType.INTERLINE_EQUATION: + return span.get('image_path', ''), span.get('content', '') + elif span_type == ContentType.TEXT: + return '', span.get('content', '') + return '', '' + + # 处理嵌套的 blocks 结构 + if 'blocks' in para_block: + for block in para_block['blocks']: + block_type = block.get('type') + if block_type in [BlockType.IMAGE_BODY, BlockType.TABLE_BODY, BlockType.CHART_BODY, BlockType.CODE_BODY]: + result = get_data_from_spans(block.get('lines', [])) + if result != ('', ''): + return result + if block_type == BlockType.CHART_BODY: + return result + return '', '' + + # 处理直接包含 lines 的结构 + return get_data_from_spans(para_block.get('lines', [])) + + +def merge_para_with_text_v2(para_block): + _visible_styles = {'underline', 'strikethrough'} + para_content = [] + for i, line in enumerate(para_block['lines']): + for j, span in enumerate(line['spans']): + content = span.get("content", '') + span_style = span.get('style', []) + has_visible_style = bool( + span_style and any(s in _visible_styles for s in span_style) + ) + if content.strip() or (content and has_visible_style): + if span['type'] == ContentType.INLINE_EQUATION: + span['type'] = ContentTypeV2.SPAN_EQUATION_INLINE + para_content.append(span) + return para_content + + +def union_make(pdf_info_dict: list, + make_mode: str, + img_buket_path: str = '', + ): + + output_content = [] + for page_info in pdf_info_dict: + paras_of_layout = page_info.get('para_blocks') + paras_of_discarded = page_info.get('discarded_blocks') + page_idx = page_info.get('page_idx') + if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]: + if not paras_of_layout: + continue + page_markdown = mk_blocks_to_markdown(paras_of_layout, make_mode, img_buket_path, + page_idx=page_idx) + output_content.extend(page_markdown) + elif make_mode == MakeMode.CONTENT_LIST: + para_blocks = (paras_of_layout or []) + (paras_of_discarded or []) + if not para_blocks: + continue + for para_block in para_blocks: + para_content = make_blocks_to_content_list(para_block, img_buket_path, page_idx) + output_content.append(para_content) + elif make_mode == MakeMode.CONTENT_LIST_V2: + # https://github.com/drunkpig/llm-webkit-mirror/blob/dev6/docs/specification/output_format/content_list_spec.md + para_blocks = (paras_of_layout or []) + (paras_of_discarded or []) + page_contents = [] + if para_blocks: + for para_block in para_blocks: + para_content = make_blocks_to_content_list_v2(para_block, img_buket_path) + page_contents.append(para_content) + output_content.append(page_contents) + + if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]: + return '\n\n'.join(output_content) + elif make_mode in [MakeMode.CONTENT_LIST, MakeMode.CONTENT_LIST_V2]: + return output_content + return None diff --git a/mineru/backend/office/pptx_analyze.py b/mineru/backend/office/pptx_analyze.py new file mode 100644 index 000000000..22cac4f0b --- /dev/null +++ b/mineru/backend/office/pptx_analyze.py @@ -0,0 +1,71 @@ +# Copyright (c) Opendatalab. All rights reserved. +import time +from io import BytesIO + +from loguru import logger +from mineru.backend.office.model_output_to_middle_json import result_to_middle_json + +from mineru.model.pptx.main import convert_binary + + +def office_pptx_analyze(file_bytes, image_writer=None): + infer_start = time.time() + + file_stream = BytesIO(file_bytes) + results = convert_binary(file_stream) + + infer_time = round(time.time() - infer_start, 2) + safe_time = max(infer_time, 0.01) + logger.debug( + f"infer finished, cost: {infer_time}, speed: {round(len(results) / safe_time, 3)} page/s" + ) + + middle_json = result_to_middle_json( + results, + image_writer, + ) + + return middle_json, results + + +if __name__ == "__main__": + # Resolve a default pptx file relative to this script so the example + # works no matter what the current working directory is when the + # module is executed. Allow the user to override the path via a + # command-line argument for even greater flexibility. + from pathlib import Path + import argparse + + script_root = Path(__file__).resolve().parent.parent.parent.parent + default_pptx = script_root / "demo" / "office_docs" / "pptx_01.pptx" + + parser = argparse.ArgumentParser( + description="Quick demo runner for office_pptx_analyze" + ) + parser.add_argument( + "pptx", + nargs="?", + default=str(default_pptx), + help="path to pptx file (defaults to demo/office_docs/pptx_01.pptx relative to project root)", + ) + parser.add_argument( + "--output-images", + help="directory to write image outputs", + default="./output_images", + ) + args = parser.parse_args() + + pptx_path = Path(args.pptx) + from mineru.data.data_reader_writer import FileBasedDataWriter + + with open(pptx_path, "rb") as f: + file_bytes = f.read() + image_writer = FileBasedDataWriter(args.output_images) + middle_json, results = office_pptx_analyze( + file_bytes, + image_writer=image_writer, + ) + + import json + + logger.info(json.dumps(middle_json, indent=2, ensure_ascii=False)) diff --git a/mineru/backend/office/xlsx_analyze.py b/mineru/backend/office/xlsx_analyze.py new file mode 100644 index 000000000..3aae75d79 --- /dev/null +++ b/mineru/backend/office/xlsx_analyze.py @@ -0,0 +1,71 @@ +# Copyright (c) Opendatalab. All rights reserved. +import time +from io import BytesIO + +from loguru import logger +from mineru.backend.office.model_output_to_middle_json import result_to_middle_json + +from mineru.model.xlsx.main import convert_binary + + +def office_xlsx_analyze(file_bytes, image_writer=None): + infer_start = time.time() + + file_stream = BytesIO(file_bytes) + results = convert_binary(file_stream) + + infer_time = round(time.time() - infer_start, 2) + safe_time = max(infer_time, 0.01) + logger.debug( + f"infer finished, cost: {infer_time}, speed: {round(len(results) / safe_time, 3)} page/s" + ) + + middle_json = result_to_middle_json( + results, + image_writer, + ) + + return middle_json, results + + +if __name__ == "__main__": + # Resolve a default xlsx file relative to this script so the example + # works no matter what the current working directory is when the + # module is executed. Allow the user to override the path via a + # command-line argument for even greater flexibility. + from pathlib import Path + import argparse + + script_root = Path(__file__).resolve().parent.parent.parent.parent + default_xlsx = script_root / "demo" / "office_docs" / "xlsx_01.xlsx" + + parser = argparse.ArgumentParser( + description="Quick demo runner for office_xlsx_analyze" + ) + parser.add_argument( + "xlsx", + nargs="?", + default=str(default_xlsx), + help="path to xlsx file (defaults to demo/office_docs/xlsx_01.xlsx relative to project root)", + ) + parser.add_argument( + "--output-images", + help="directory to write image outputs", + default="./output_images", + ) + args = parser.parse_args() + + xlsx_path = Path(args.xlsx) + from mineru.data.data_reader_writer import FileBasedDataWriter + + with open(xlsx_path, "rb") as f: + file_bytes = f.read() + image_writer = FileBasedDataWriter(args.output_images) + middle_json, results = office_xlsx_analyze( + file_bytes, + image_writer=image_writer, + ) + + import json + + logger.info(json.dumps(middle_json, indent=2, ensure_ascii=False)) diff --git a/mineru/backend/pipeline/__init__.py b/mineru/backend/pipeline/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/backend/pipeline/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/backend/pipeline/batch_analyze.py b/mineru/backend/pipeline/batch_analyze.py new file mode 100644 index 000000000..1d88eb425 --- /dev/null +++ b/mineru/backend/pipeline/batch_analyze.py @@ -0,0 +1,878 @@ +# Copyright (c) Opendatalab. All rights reserved. +import base64 +import html + +import cv2 +from loguru import logger +from tqdm import tqdm +from collections import defaultdict +import numpy as np + +from .model_init import AtomModelSingleton +from .model_list import AtomicModel +from ...utils.config_reader import ( + get_formula_enable, + get_ocr_det_mask_inline_formula_enable, + get_table_enable, +) +from ...utils.bbox_utils import normalize_to_int_bbox +from ...utils.model_utils import crop_img, get_res_list_from_layout_res, clean_vram +from ...utils.ocr_utils import merge_det_boxes, update_det_boxes, sorted_boxes +from ...utils.ocr_utils import ( + get_adjusted_mfdetrec_res, + get_ocr_result_list, + OcrConfidence, + get_rotate_crop_image_for_text_rec, +) +from ...utils.pdf_image_tools import get_crop_np_img + +LAYOUT_BASE_BATCH_SIZE = 1 +MFR_BASE_BATCH_SIZE = 16 +OCR_DET_BASE_BATCH_SIZE = 8 +TABLE_ORI_CLS_BATCH_SIZE = 16 +TABLE_Wired_Wireless_CLS_BATCH_SIZE = 16 + + +class BatchAnalyze: + def __init__( + self, + model_manager, + batch_ratio: int, + formula_enable, + table_enable, + enable_ocr_det_batch: bool = True, + table_ori_cls_batch_enabled: bool | None = None, + text_ocr_det_batch_enabled: bool | None = None, + mask_inline_formula_for_ocr_det: bool = True, + ): + self.batch_ratio = batch_ratio + self.formula_enable = get_formula_enable(formula_enable) + self.table_enable = get_table_enable(table_enable) + self.model_manager = model_manager + self.enable_ocr_det_batch = enable_ocr_det_batch + self.table_ori_cls_batch_enabled = ( + enable_ocr_det_batch if table_ori_cls_batch_enabled is None else table_ori_cls_batch_enabled + ) + self.text_ocr_det_batch_enabled = ( + enable_ocr_det_batch if text_ocr_det_batch_enabled is None else text_ocr_det_batch_enabled + ) + self.mask_inline_formula_for_ocr_det = ( + get_ocr_det_mask_inline_formula_enable(mask_inline_formula_for_ocr_det) + ) + + @staticmethod + def _apply_mask_boxes_to_image( + bgr_image: np.ndarray, + mask_boxes: list[dict] | None, + ) -> np.ndarray: + if not mask_boxes: + return bgr_image + + masked_image = bgr_image.copy() + image_h, image_w = masked_image.shape[:2] + for mask_box in mask_boxes: + bbox = mask_box.get("bbox") + if bbox is None: + continue + + int_bbox = normalize_to_int_bbox(bbox, image_size=(image_h, image_w)) + if int_bbox is None: + continue + + x0, y0, x1, y1 = int_bbox + masked_image[y0:y1, x0:x1] = 255 + + return masked_image + + def _get_masked_det_image( + self, + bgr_image: np.ndarray, + mask_boxes: list[dict] | None, + ) -> np.ndarray: + if not self.mask_inline_formula_for_ocr_det: + return bgr_image + return self._apply_mask_boxes_to_image(bgr_image, mask_boxes) + + @staticmethod + def _prune_empty_ocr_text_blocks(layout_res: list[dict], ocr_enable: bool) -> None: + if not ocr_enable or not layout_res: + return + + def keep_item(item: dict) -> bool: + if item.get("label") != "ocr_text": + return True + + text = item.get("text") + if isinstance(text, str): + return bool(text.strip()) + return bool(text) + + layout_res[:] = [item for item in layout_res if keep_item(item)] + + @staticmethod + def _bbox_center(bbox: list[float]) -> tuple[float, float]: + return (float(bbox[0] + bbox[2]) / 2.0, float(bbox[1] + bbox[3]) / 2.0) + + @staticmethod + def _is_point_in_bbox(point: tuple[float, float], bbox: list[float]) -> bool: + x, y = point + return bbox[0] <= x <= bbox[2] and bbox[1] <= y <= bbox[3] + + @staticmethod + def _bbox_intersection(bbox1: list[float], bbox2: list[float]) -> list[float] | None: + x0 = max(float(bbox1[0]), float(bbox2[0])) + y0 = max(float(bbox1[1]), float(bbox2[1])) + x1 = min(float(bbox1[2]), float(bbox2[2])) + y1 = min(float(bbox1[3]), float(bbox2[3])) + if x1 <= x0 or y1 <= y0: + return None + return [x0, y0, x1, y1] + + @classmethod + def _bbox_intersection_area(cls, bbox1: list[float], bbox2: list[float]) -> float: + overlap_bbox = cls._bbox_intersection(bbox1, bbox2) + if overlap_bbox is None: + return 0.0 + return float(overlap_bbox[2] - overlap_bbox[0]) * float(overlap_bbox[3] - overlap_bbox[1]) + + @staticmethod + def _bbox_to_relative_bbox(bbox: list[float], base_bbox: list[float]) -> list[float]: + return [ + float(bbox[0]) - float(base_bbox[0]), + float(bbox[1]) - float(base_bbox[1]), + float(bbox[2]) - float(base_bbox[0]), + float(bbox[3]) - float(base_bbox[1]), + ] + + @staticmethod + def _bbox_to_quad(bbox: list[float]) -> np.ndarray: + x0, y0, x1, y1 = bbox + return np.asarray([[x0, y0], [x1, y0], [x1, y1], [x0, y1]], dtype=np.float32) + + @staticmethod + def _encode_table_inline_image(np_img: np.ndarray, bbox: list[float]) -> str: + image_h, image_w = np_img.shape[:2] + image_bbox = normalize_to_int_bbox(bbox, image_size=(image_h, image_w)) + if image_bbox is None: + return "" + + x0, y0, x1, y1 = image_bbox + if x1 <= x0 or y1 <= y0: + return "" + + crop_rgb = np_img[y0:y1, x0:x1] + if crop_rgb.size == 0: + return "" + + crop_bgr = cv2.cvtColor(crop_rgb, cv2.COLOR_RGB2BGR) + success, encoded = cv2.imencode(".jpg", crop_bgr) + if not success: + return "" + + b64_str = base64.b64encode(encoded.tobytes()).decode("ascii") + return f"data:image/jpg;base64,{b64_str}" + + @staticmethod + def _get_virtual_image_bbox(bbox: list[float], box_size: float = 10.0) -> list[float]: + center_x, center_y = BatchAnalyze._bbox_center(bbox) + half_size = box_size / 2.0 + return [ + center_x - half_size, + center_y - half_size, + center_x + half_size, + center_y + half_size, + ] + + @staticmethod + def _table_supports_inline_objects(table_res_dict: dict) -> bool: + return str(table_res_dict.get("rotate_label", "0")) == "0" + + @staticmethod + def _sort_table_ocr_result(ocr_result: list[list]) -> None: + if not ocr_result: + return + + sorted_result = sorted( + ocr_result, + key=lambda item: (float(np.asarray(item[0])[0][1]), float(np.asarray(item[0])[0][0])), + ) + + for i in range(len(sorted_result) - 1): + for j in range(i, -1, -1): + cur_box = np.asarray(sorted_result[j][0], dtype=np.float32) + next_box = np.asarray(sorted_result[j + 1][0], dtype=np.float32) + if ( + abs(float(next_box[0][1]) - float(cur_box[0][1])) < 10 + and float(next_box[0][0]) < float(cur_box[0][0]) + ): + sorted_result[j], sorted_result[j + 1] = sorted_result[j + 1], sorted_result[j] + else: + break + + ocr_result[:] = sorted_result + + @classmethod + def _extract_table_inline_objects( + cls, + layout_res: list[dict], + np_img: np.ndarray, + formula_enable: bool, + ) -> dict[int, list[dict]]: + image_h, image_w = np_img.shape[:2] + image_size = (image_h, image_w) + + tables = [] + for res in layout_res: + if res.get("label") != "table": + continue + table_bbox = normalize_to_int_bbox(res.get("bbox"), image_size=image_size) + if table_bbox is None: + continue + tables.append((res, table_bbox)) + + if not tables: + return {} + + table_inline_objects = {id(table_res): [] for table_res, _ in tables} + remove_ids = set() + candidate_labels = {"image"} + if formula_enable: + candidate_labels.update({"inline_formula", "display_formula"}) + + for layout_item in layout_res: + label = layout_item.get("label") + if label not in candidate_labels: + continue + + item_bbox = normalize_to_int_bbox(layout_item.get("bbox"), image_size=image_size) + if item_bbox is None: + continue + + item_center = cls._bbox_center(item_bbox) + matched_tables = [] + for table_res, table_bbox in tables: + if not cls._is_point_in_bbox(item_center, table_bbox): + continue + overlap_area = cls._bbox_intersection_area(item_bbox, table_bbox) + matched_tables.append((overlap_area, table_res, table_bbox)) + + if not matched_tables: + continue + + matched_tables.sort(key=lambda item: item[0], reverse=True) + _, table_res, table_bbox = matched_tables[0] + overlap_bbox = cls._bbox_intersection(item_bbox, table_bbox) + if overlap_bbox is None: + continue + + rel_overlap_bbox = cls._bbox_to_relative_bbox(overlap_bbox, table_bbox) + score = float(layout_item.get("score", 1.0)) + + if label == "image": + image_src = cls._encode_table_inline_image(np_img, item_bbox) + if not image_src: + continue + content = f'' + token_bbox = cls._get_virtual_image_bbox(rel_overlap_bbox) + kind = "image" + else: + latex = layout_item.get("latex", "") + if not latex: + continue + content = f"{html.escape(latex)}" + token_bbox = rel_overlap_bbox + kind = "formula" + + table_inline_objects[id(table_res)].append( + { + "kind": kind, + "page_bbox": item_bbox, + "table_rel_mask_bbox": rel_overlap_bbox, + "table_token_bbox": token_bbox, + "content": content, + "score": score, + } + ) + remove_ids.add(id(layout_item)) + + if remove_ids: + layout_res[:] = [item for item in layout_res if id(item) not in remove_ids] + + return table_inline_objects + + + def __call__(self, images_with_extra_info: list) -> list: + if len(images_with_extra_info) == 0: + return [] + + images_layout_res = [] + + self.model = self.model_manager.get_model( + lang=None, + formula_enable=self.formula_enable, + table_enable=self.table_enable, + ) + atom_model_manager = AtomModelSingleton() + + pil_images = [image for image, _, _ in images_with_extra_info] + + np_images = [np.asarray(image) for image, _, _ in images_with_extra_info] + + # pp-doclayout_v2 + images_layout_res += self.model.layout_model.batch_predict( + pil_images, + batch_size=min(8, self.batch_ratio * LAYOUT_BASE_BATCH_SIZE) + ) + # 清理显存 + clean_vram(self.model.device, vram_threshold=8) + + if self.formula_enable: + images_mfd_res = [] + for layout_res in images_layout_res: + page_formula_res = [] + for res in layout_res: + if res.get("label") in ["display_formula", "inline_formula"]: + res.setdefault("latex", "") + page_formula_res.append(res) + images_mfd_res.append(page_formula_res) + + # 公式识别 + images_formula_list = self.model.mfr_model.batch_predict( + images_mfd_res, + np_images, + batch_size=self.batch_ratio * MFR_BASE_BATCH_SIZE, + ) + mfr_count = 0 + for image_index in range(len(np_images)): + mfr_count += len(images_formula_list[image_index]) + for formula_res, formula_with_latex in zip( + images_mfd_res[image_index], images_formula_list[image_index] + ): + formula_res["latex"] = formula_with_latex.get("latex", "") + + # 清理显存 + clean_vram(self.model.device, vram_threshold=8) + + else: + for layout_res in images_layout_res: + # 移除所有的"inline_formula" + layout_res[:] = [res for res in layout_res if res.get("label") != "inline_formula"] + + + + ocr_res_list_all_page = [] + table_res_list_all_page = [] + for index in range(len(np_images)): + _, ocr_enable, _lang = images_with_extra_info[index] + layout_res = images_layout_res[index] + np_img = np_images[index] + table_inline_objects = ( + self._extract_table_inline_objects( + layout_res, + np_img, + formula_enable=self.formula_enable, + ) + if self.table_enable + else {} + ) + + ocr_res_list, table_res_list, single_page_mfdetrec_res = ( + get_res_list_from_layout_res(layout_res) + ) + + ocr_res_list_all_page.append({'ocr_res_list':ocr_res_list, + 'lang':_lang, + 'ocr_enable':ocr_enable, + 'np_img':np_img, + 'single_page_mfdetrec_res':single_page_mfdetrec_res, + 'layout_res':layout_res, + }) + + for table_res in table_res_list: + def get_crop_table_img(scale): + bbox = normalize_to_int_bbox( + [float(v) / float(scale) for v in table_res["bbox"]] + ) + if bbox is None: + return np_img[0:0, 0:0] + return get_crop_np_img(bbox, np_img, scale=scale) + + wireless_table_img = get_crop_table_img(scale = 1) + wired_table_img = get_crop_table_img(scale = 10/3) + table_page_bbox = normalize_to_int_bbox( + table_res.get("bbox"), + image_size=np_img.shape[:2], + ) or [0, 0, 0, 0] + + table_res_list_all_page.append({'table_res':table_res, + 'lang':_lang, + 'table_img':wireless_table_img, + 'wired_table_img':wired_table_img, + 'table_page_bbox':table_page_bbox, + 'table_inline_objects':table_inline_objects.get(id(table_res), []), + }) + + # 表格识别 table recognition + if self.table_enable: + + # 图片旋转批量处理 + img_orientation_cls_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.ImgOrientationCls, + ) + try: + if self.table_ori_cls_batch_enabled: + img_orientation_cls_model.batch_predict(table_res_list_all_page, + det_batch_size=self.batch_ratio * OCR_DET_BASE_BATCH_SIZE, + batch_size=TABLE_ORI_CLS_BATCH_SIZE) + else: + for table_res in table_res_list_all_page: + rotate_label = img_orientation_cls_model.predict(table_res['table_img']) + img_orientation_cls_model.img_rotate(table_res, rotate_label) + except Exception as e: + logger.warning( + f"Image orientation classification failed: {e}, using original image" + ) + + # 表格分类 + table_cls_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.TableCls, + ) + try: + table_cls_model.batch_predict(table_res_list_all_page, + batch_size=TABLE_Wired_Wireless_CLS_BATCH_SIZE) + except Exception as e: + logger.warning( + f"Table classification failed: {e}, using default model" + ) + + # OCR det 过程,顺序执行 + rec_img_lang_group = defaultdict(list) + det_ocr_engine = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + det_db_box_thresh=0.5, + det_db_unclip_ratio=1.6, + enable_merge_det_boxes=False, + ) + for index, table_res_dict in enumerate( + tqdm(table_res_list_all_page, desc="Table-ocr det") + ): + bgr_image = cv2.cvtColor(table_res_dict["table_img"], cv2.COLOR_RGB2BGR) + table_inline_objects = ( + table_res_dict.get("table_inline_objects", []) + if self._table_supports_inline_objects(table_res_dict) + else [] + ) + inline_mask_boxes = [ + {"bbox": inline_object["table_rel_mask_bbox"]} + for inline_object in table_inline_objects + ] + formula_mask_boxes = [ + {"bbox": inline_object["table_rel_mask_bbox"]} + for inline_object in table_inline_objects + if inline_object["kind"] == "formula" + ] + det_image = ( + self._apply_mask_boxes_to_image(bgr_image, inline_mask_boxes) + if inline_mask_boxes + else bgr_image + ) + ocr_result = det_ocr_engine.ocr(det_image, rec=False)[0] + if ocr_result and formula_mask_boxes: + ocr_result = update_det_boxes(ocr_result, formula_mask_boxes) + if ocr_result: + ocr_result = sorted_boxes(ocr_result) + # 构造需要 OCR 识别的图片字典,包括cropped_img, dt_box, table_id,并按照语言进行分组 + for dt_box in ocr_result: + rec_img_lang_group[table_res_dict["lang"]].append( + { + "cropped_img": get_rotate_crop_image_for_text_rec( + bgr_image, np.asarray(dt_box, dtype=np.float32) + ), + "dt_box": np.asarray(dt_box, dtype=np.float32), + "table_id": index, + } + ) + + # OCR rec,按照语言分批处理 + for _lang, rec_img_list in rec_img_lang_group.items(): + if not rec_img_list: + continue + ocr_engine = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + det_db_box_thresh=0.5, + det_db_unclip_ratio=1.6, + lang=_lang, + enable_merge_det_boxes=False, + ) + cropped_img_list = [item["cropped_img"] for item in rec_img_list] + ocr_res_list = ocr_engine.ocr(cropped_img_list, det=False, tqdm_enable=True, tqdm_desc=f"Table-ocr rec {_lang}")[0] + # 按照 table_id 将识别结果进行回填 + for img_dict, ocr_res in zip(rec_img_list, ocr_res_list): + if table_res_list_all_page[img_dict["table_id"]].get("ocr_result"): + table_res_list_all_page[img_dict["table_id"]]["ocr_result"].append( + [img_dict["dt_box"], html.escape(ocr_res[0]), ocr_res[1]] + ) + else: + table_res_list_all_page[img_dict["table_id"]]["ocr_result"] = [ + [img_dict["dt_box"], html.escape(ocr_res[0]), ocr_res[1]] + ] + + # 先对所有表格使用无线表格模型,然后对分类为有线的表格使用有线表格模型 + for table_res_dict in table_res_list_all_page: + if not self._table_supports_inline_objects(table_res_dict): + continue + + table_inline_objects = table_res_dict.get("table_inline_objects", []) + if not table_inline_objects: + continue + + table_ocr_result = table_res_dict.setdefault("ocr_result", []) + for inline_object in table_inline_objects: + table_ocr_result.append( + [ + self._bbox_to_quad(inline_object["table_token_bbox"]), + inline_object["content"], + inline_object["score"], + ] + ) + + self._sort_table_ocr_result(table_ocr_result) + + wireless_table_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.WirelessTable, + ) + wireless_table_model.batch_predict(table_res_list_all_page) + + # 单独拿出有线表格进行预测 + wired_table_res_list = [] + for table_res_dict in table_res_list_all_page: + # logger.debug(f"Table classification result: {table_res_dict["table_res"]["cls_label"]} with confidence {table_res_dict["table_res"]["cls_score"]}") + if ( + (table_res_dict["table_res"]["cls_label"] == AtomicModel.WirelessTable and table_res_dict["table_res"]["cls_score"] < 0.9) + or table_res_dict["table_res"]["cls_label"] == AtomicModel.WiredTable + ): + wired_table_res_list.append(table_res_dict) + del table_res_dict["table_res"]["cls_label"] + del table_res_dict["table_res"]["cls_score"] + if wired_table_res_list: + for table_res_dict in tqdm( + wired_table_res_list, desc="Table-wired Predict" + ): + if not table_res_dict.get("ocr_result", None): + continue + + wired_table_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.WiredTable, + lang=table_res_dict["lang"], + ) + table_res_dict["table_res"]["html"] = wired_table_model.predict( + table_res_dict["wired_table_img"], + table_res_dict["ocr_result"], + table_res_dict["table_res"].get("html", None) + ) + + # 表格格式清理 + for table_res_dict in table_res_list_all_page: + html_code = table_res_dict["table_res"].get("html", "") or "" + + # 检查html_code是否包含''和'
' + if "" in html_code and "
" in html_code: + # 选用到
的内容,放入table_res_dict['table_res']['html'] + start_index = html_code.find("") + end_index = html_code.rfind("
") + len("") + table_res_dict["table_res"]["html"] = html_code[start_index:end_index] + + + # OCR det + if self.text_ocr_det_batch_enabled: + # 批处理模式 - 按语言和分辨率分组 + # 收集所有需要OCR检测的裁剪图像 + all_cropped_images_info = [] + + for ocr_res_list_dict in ocr_res_list_all_page: + _lang = ocr_res_list_dict['lang'] + + for res in ocr_res_list_dict['ocr_res_list']: + new_image, useful_list = crop_img( + res, ocr_res_list_dict['np_img'], crop_paste_x=50, crop_paste_y=50 + ) + adjusted_mfdetrec_res = get_adjusted_mfdetrec_res( + ocr_res_list_dict['single_page_mfdetrec_res'], useful_list + ) + + # BGR转换 + bgr_image = cv2.cvtColor(new_image, cv2.COLOR_RGB2BGR) + det_image = self._get_masked_det_image( + bgr_image, + adjusted_mfdetrec_res, + ) + + all_cropped_images_info.append(( + bgr_image, + det_image, + useful_list, + ocr_res_list_dict, + adjusted_mfdetrec_res, + _lang, + )) + + # 按语言分组 + lang_groups = defaultdict(list) + for crop_info in all_cropped_images_info: + lang = crop_info[5] + lang_groups[lang].append(crop_info) + + # 对每种语言按分辨率分组并批处理 + for lang, lang_crop_list in lang_groups.items(): + if not lang_crop_list: + continue + + # logger.info(f"Processing OCR detection for language {lang} with {len(lang_crop_list)} images") + + # 获取OCR模型 + ocr_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + det_db_box_thresh=0.3, + lang=lang + ) + + # 按分辨率分组并同时完成padding + # RESOLUTION_GROUP_STRIDE = 32 + RESOLUTION_GROUP_STRIDE = 64 + + resolution_groups = defaultdict(list) + for crop_info in lang_crop_list: + cropped_img = crop_info[1] + h, w = cropped_img.shape[:2] + # 直接计算目标尺寸并用作分组键 + target_h = ((h + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE + target_w = ((w + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE + group_key = (target_h, target_w) + resolution_groups[group_key].append(crop_info) + + # 对每个分辨率组进行批处理 + for (target_h, target_w), group_crops in tqdm(resolution_groups.items(), desc=f"OCR-det {lang}"): + # 对所有图像进行padding到统一尺寸 + batch_images = [] + for crop_info in group_crops: + img = crop_info[1] + h, w = img.shape[:2] + # 创建目标尺寸的白色背景 + padded_img = np.ones((target_h, target_w, 3), dtype=np.uint8) * 255 + padded_img[:h, :w] = img + batch_images.append(padded_img) + + # 批处理检测 + det_batch_size = min(len(batch_images), self.batch_ratio * OCR_DET_BASE_BATCH_SIZE) + batch_results = ocr_model.text_detector.batch_predict(batch_images, det_batch_size) + + # 处理批处理结果 + for crop_info, (dt_boxes, _) in zip(group_crops, batch_results): + ( + bgr_image, + _det_image, + useful_list, + ocr_res_list_dict, + adjusted_mfdetrec_res, + _lang, + ) = crop_info + + if dt_boxes is not None and len(dt_boxes) > 0: + # 处理检测框 + dt_boxes_sorted = sorted_boxes(dt_boxes) + dt_boxes_merged = merge_det_boxes(dt_boxes_sorted) if dt_boxes_sorted else [] + + # 根据公式位置更新检测框 + dt_boxes_final = (update_det_boxes(dt_boxes_merged, adjusted_mfdetrec_res) + if dt_boxes_merged and adjusted_mfdetrec_res + else dt_boxes_merged) + + if dt_boxes_final: + ocr_res = [box.tolist() if hasattr(box, 'tolist') else box for box in dt_boxes_final] + ocr_result_list = get_ocr_result_list( + ocr_res, + useful_list, + ocr_res_list_dict['ocr_enable'], + bgr_image, + _lang, + ) + ocr_res_list_dict['layout_res'].extend(ocr_result_list) + + # 清理显存 + clean_vram(self.model.device, vram_threshold=8) + + else: + # 原始单张处理模式 + for ocr_res_list_dict in tqdm(ocr_res_list_all_page, desc="OCR-det Predict"): + # Process each area that requires OCR processing + _lang = ocr_res_list_dict['lang'] + # Get OCR results for this language's images + ocr_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + ocr_show_log=False, + det_db_box_thresh=0.3, + lang=_lang + ) + for res in ocr_res_list_dict['ocr_res_list']: + new_image, useful_list = crop_img( + res, ocr_res_list_dict['np_img'], crop_paste_x=50, crop_paste_y=50 + ) + adjusted_mfdetrec_res = get_adjusted_mfdetrec_res( + ocr_res_list_dict['single_page_mfdetrec_res'], useful_list + ) + # OCR-det + bgr_image = cv2.cvtColor(new_image, cv2.COLOR_RGB2BGR) + det_image = self._get_masked_det_image( + bgr_image, + adjusted_mfdetrec_res, + ) + ocr_res = ocr_model.ocr( + det_image, mfd_res=adjusted_mfdetrec_res, rec=False + )[0] + + # Integration results + if ocr_res: + ocr_result_list = get_ocr_result_list( + ocr_res, + useful_list, + ocr_res_list_dict['ocr_enable'], + bgr_image, + _lang, + ) + + ocr_res_list_dict['layout_res'].extend(ocr_result_list) + + # OCR rec + # Create dictionaries to store items by language + need_ocr_lists_by_lang = {} # Dict of lists for each language + img_crop_lists_by_lang = {} # Dict of lists for each language + + for layout_res in images_layout_res: + for layout_res_item in layout_res: + if not layout_res_item.get("_need_ocr_rec"): + continue + if 'np_img' in layout_res_item and 'lang' in layout_res_item: + lang = layout_res_item['lang'] + + # Initialize lists for this language if not exist + if lang not in need_ocr_lists_by_lang: + need_ocr_lists_by_lang[lang] = [] + img_crop_lists_by_lang[lang] = [] + + # Add to the appropriate language-specific lists + need_ocr_lists_by_lang[lang].append((layout_res, layout_res_item)) + img_crop_lists_by_lang[lang].append(layout_res_item['np_img']) + + # Remove temporary fields after collecting + layout_res_item.pop('np_img', None) + layout_res_item.pop('lang', None) + layout_res_item.pop('_need_ocr_rec', None) + + if len(img_crop_lists_by_lang) > 0: + + # Process OCR by language + total_processed = 0 + + # Process each language separately + for lang, img_crop_list in img_crop_lists_by_lang.items(): + if len(img_crop_list) > 0: + # Get OCR results for this language's images + + ocr_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + det_db_box_thresh=0.3, + lang=lang + ) + ocr_res_list = ocr_model.ocr(img_crop_list, det=False, tqdm_enable=True)[0] + + # Verify we have matching counts + assert len(ocr_res_list) == len( + need_ocr_lists_by_lang[lang]), f'ocr_res_list: {len(ocr_res_list)}, need_ocr_list: {len(need_ocr_lists_by_lang[lang])} for lang: {lang}' + + items_to_remove = [] + # Process OCR results for this language + for index, (page_layout_res, layout_res_item) in enumerate(need_ocr_lists_by_lang[lang]): + ocr_text, ocr_score = ocr_res_list[index] + layout_res_item['text'] = ocr_text + layout_res_item['score'] = float(f"{ocr_score:.3f}") + should_remove = False + if ocr_score < OcrConfidence.min_confidence: + should_remove = True + else: + layout_res_bbox = layout_res_item['bbox'] + layout_res_width = layout_res_bbox[2] - layout_res_bbox[0] + layout_res_height = layout_res_bbox[3] - layout_res_bbox[1] + if ( + ocr_text in [ + '(204号', '(20', '(2', '(2号', '(20号', '号', '(204', + '(cid:)', '(ci:)', '(cd:1)', 'cd:)', 'c)', '(cd:)', 'c', 'id:)', + ':)', '√:)', '√i:)', '−i:)', '−:', 'i:)', + ] + and ocr_score < 0.8 + and layout_res_width < layout_res_height + ): + should_remove = True + + if should_remove: + items_to_remove.append((page_layout_res, layout_res_item)) + + for page_layout_res, layout_res_item in items_to_remove: + if layout_res_item in page_layout_res: + page_layout_res.remove(layout_res_item) + + total_processed += len(img_crop_list) + + seal_ocr_items = [] + for ocr_res_list_dict in ocr_res_list_all_page: + for layout_res_item in ocr_res_list_dict['layout_res']: + if layout_res_item.get("label") == "seal": + seal_ocr_items.append((ocr_res_list_dict, layout_res_item)) + + seal_ocr_model = None + for ocr_res_list_dict, layout_res_item in tqdm(seal_ocr_items, desc="Seal Predict"): + np_img = ocr_res_list_dict['np_img'] + image_h, image_w = np_img.shape[:2] + layout_res_item["text"] = "" + seal_bbox = normalize_to_int_bbox( + layout_res_item.get("bbox"), + image_size=(image_h, image_w), + ) + if seal_bbox is None: + continue + + x0, y0, x1, y1 = seal_bbox + seal_crop_rgb = np_img[y0:y1, x0:x1] + if seal_crop_rgb.size == 0: + continue + + if seal_ocr_model is None: + seal_ocr_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + lang="seal", + ) + + seal_crop_bgr = cv2.cvtColor(seal_crop_rgb, cv2.COLOR_RGB2BGR) + seal_ocr_res = seal_ocr_model.ocr(seal_crop_bgr, det=True, rec=True)[0] + if not seal_ocr_res: + continue + + seal_texts = [] + for seal_item in seal_ocr_res: + if not seal_item or len(seal_item) != 2: + continue + rec_result = seal_item[1] + if not rec_result or len(rec_result) < 1: + continue + rec_text = rec_result[0] + if rec_text: + seal_texts.append(rec_text) + + layout_res_item["text"] = seal_texts + + for ocr_res_list_dict in ocr_res_list_all_page: + self._prune_empty_ocr_text_blocks( + ocr_res_list_dict["layout_res"], + ocr_res_list_dict["ocr_enable"], + ) + + return images_layout_res diff --git a/mineru/backend/pipeline/model_init.py b/mineru/backend/pipeline/model_init.py new file mode 100644 index 000000000..3c76a6596 --- /dev/null +++ b/mineru/backend/pipeline/model_init.py @@ -0,0 +1,363 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import threading + +import torch +from loguru import logger + +from .model_list import AtomicModel +from ...model.layout.pp_doclayoutv2 import PPDocLayoutV2LayoutModel +from ...model.mfr.unimernet.Unimernet import UnimernetModel +from ...model.mfr.pp_formulanet_plus_m.predict_formula import FormulaRecognizer +from mineru.model.ocr.pytorch_paddle import PytorchPaddleOCR +from ...model.ori_cls.paddle_ori_cls import PaddleOrientationClsModel +from ...model.table.cls.paddle_table_cls import PaddleTableClsModel +from ...model.table.rec.slanet_plus.main import PaddleTableModel +from ...model.table.rec.unet_table.main import UnetTableModel +from ...utils.config_reader import get_device +from ...utils.enum_class import ModelPath +from ...utils.models_download_utils import auto_download_and_get_model_root_path + +PIPELINE_MODEL_INIT_LOCK = threading.RLock() + +MFR_MODEL = os.getenv('MINERU_FORMULA_CH_SUPPORT', 'False') +if MFR_MODEL.lower() in ['true', '1', 'yes']: + MFR_MODEL = "pp_formulanet_plus_m" +elif MFR_MODEL.lower() in ['false', '0', 'no']: + MFR_MODEL = "unimernet_small" +else: + logger.warning(f"Invalid MINERU_FORMULA_CH_SUPPORT value: {MFR_MODEL}, set to default 'False'") + MFR_MODEL = "unimernet_small" + + +def img_orientation_cls_model_init(): + atom_model_manager = AtomModelSingleton() + ocr_engine = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + det_db_box_thresh=0.5, + det_db_unclip_ratio=1.6, + lang="ch_lite", + enable_merge_det_boxes=False + ) + cls_model = PaddleOrientationClsModel(ocr_engine) + return cls_model + + +def table_cls_model_init(): + return PaddleTableClsModel() + + +def wired_table_model_init(lang=None): + atom_model_manager = AtomModelSingleton() + ocr_engine = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + det_db_box_thresh=0.5, + det_db_unclip_ratio=1.6, + lang=lang, + enable_merge_det_boxes=False + ) + table_model = UnetTableModel(ocr_engine) + return table_model + + +def wireless_table_model_init(lang=None): + atom_model_manager = AtomModelSingleton() + ocr_engine = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + det_db_box_thresh=0.5, + det_db_unclip_ratio=1.6, + lang=lang, + enable_merge_det_boxes=False + ) + table_model = PaddleTableModel(ocr_engine) + return table_model + + +def mfr_model_init(weight_dir, device='cpu'): + if MFR_MODEL == "unimernet_small": + mfr_model = UnimernetModel(weight_dir, device) + elif MFR_MODEL == "pp_formulanet_plus_m": + mfr_model = FormulaRecognizer(weight_dir, device) + else: + logger.error('MFR model name not allow') + exit(1) + return mfr_model + + +def pp_doclayout_v2_model_init(weight, device='cpu'): + if str(device).startswith('npu'): + device = torch.device(device) + model = PPDocLayoutV2LayoutModel(weight, device) + return model + +def ocr_model_init(det_db_box_thresh=0.3, + lang=None, + det_db_unclip_ratio=1.8, + enable_merge_det_boxes=True + ): + if lang is not None and lang != '': + model = PytorchPaddleOCR( + det_db_box_thresh=det_db_box_thresh, + lang=lang, + use_dilation=True, + det_db_unclip_ratio=det_db_unclip_ratio, + enable_merge_det_boxes=enable_merge_det_boxes, + ) + else: + model = PytorchPaddleOCR( + det_db_box_thresh=det_db_box_thresh, + use_dilation=True, + det_db_unclip_ratio=det_db_unclip_ratio, + enable_merge_det_boxes=enable_merge_det_boxes, + ) + return model + + +class AtomModelSingleton: + _instance = None + _models = {} + _lock = PIPELINE_MODEL_INIT_LOCK + + def __new__(cls, *args, **kwargs): + with cls._lock: + if cls._instance is None: + cls._instance = super().__new__(cls) + return cls._instance + + def get_atom_model(self, atom_model_name: str, **kwargs): + + lang = kwargs.get('lang', None) + + if atom_model_name in [AtomicModel.WiredTable, AtomicModel.WirelessTable]: + key = ( + atom_model_name, + lang + ) + elif atom_model_name in [AtomicModel.OCR]: + key = ( + atom_model_name, + kwargs.get('det_db_box_thresh', 0.3), + lang, + kwargs.get('det_db_unclip_ratio', 1.8), + kwargs.get('enable_merge_det_boxes', True) + ) + elif atom_model_name in [AtomicModel.Layout, AtomicModel.MFR]: + key = ( + atom_model_name, + kwargs.get('device'), + ) + else: + key = atom_model_name + + with self._lock: + if key not in self._models: + self._models[key] = atom_model_init(model_name=atom_model_name, **kwargs) + return self._models[key] + +def atom_model_init(model_name: str, **kwargs): + atom_model = None + if model_name == AtomicModel.Layout: + atom_model = pp_doclayout_v2_model_init( + kwargs.get('pp_doclayout_v2_weights'), + kwargs.get('device') + ) + elif model_name == AtomicModel.MFR: + atom_model = mfr_model_init( + kwargs.get('mfr_weight_dir'), + kwargs.get('device') + ) + elif model_name == AtomicModel.OCR: + atom_model = ocr_model_init( + kwargs.get('det_db_box_thresh', 0.3), + kwargs.get('lang'), + kwargs.get('det_db_unclip_ratio', 1.8), + kwargs.get('enable_merge_det_boxes', True) + ) + elif model_name == AtomicModel.WirelessTable: + atom_model = wireless_table_model_init( + kwargs.get('lang'), + ) + elif model_name == AtomicModel.WiredTable: + atom_model = wired_table_model_init( + kwargs.get('lang'), + ) + elif model_name == AtomicModel.TableCls: + atom_model = table_cls_model_init() + elif model_name == AtomicModel.ImgOrientationCls: + atom_model = img_orientation_cls_model_init() + else: + logger.error('model name not allow') + exit(1) + + if atom_model is None: + logger.error('model init failed') + exit(1) + else: + return atom_model + + +class MineruPipelineModel: + def __init__(self, **kwargs): + self.formula_config = kwargs.get('formula_config') + self.apply_formula = self.formula_config.get('enable', True) + self.table_config = kwargs.get('table_config') + self.apply_table = self.table_config.get('enable', True) + self.lang = kwargs.get('lang', None) + self.device = kwargs.get('device', 'cpu') + logger.info( + 'DocAnalysis init, this may take some times......' + ) + atom_model_manager = AtomModelSingleton() + + if self.apply_formula: + # 初始化公式解析模型 + if MFR_MODEL == "unimernet_small": + mfr_model_path = ModelPath.unimernet_small + elif MFR_MODEL == "pp_formulanet_plus_m": + mfr_model_path = ModelPath.pp_formulanet_plus_m + else: + logger.error('MFR model name not allow') + exit(1) + + self.mfr_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.MFR, + mfr_weight_dir=str(os.path.join(auto_download_and_get_model_root_path(mfr_model_path), mfr_model_path)), + device=self.device, + ) + + # 初始化layout模型 + self.layout_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.Layout, + pp_doclayout_v2_weights=str( + os.path.join(auto_download_and_get_model_root_path(ModelPath.pp_doclayout_v2), ModelPath.pp_doclayout_v2) + ), + device=self.device, + ) + # 初始化ocr + self.ocr_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + det_db_box_thresh=0.3, + lang=self.lang + ) + # init table model + if self.apply_table: + self.wired_table_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.WiredTable, + lang=self.lang, + ) + self.wireless_table_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.WirelessTable, + lang=self.lang, + ) + self.table_cls_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.TableCls, + ) + self.img_orientation_cls_model = atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.ImgOrientationCls, + lang=self.lang, + ) + + logger.info('DocAnalysis init done!') + + +class HybridModelSingleton: + _instance = None + _models = {} + _lock = PIPELINE_MODEL_INIT_LOCK + + def __new__(cls, *args, **kwargs): + with cls._lock: + if cls._instance is None: + cls._instance = super().__new__(cls) + return cls._instance + + def get_model( + self, + lang=None, + formula_enable=None, + ): + key = (lang, formula_enable) + with self._lock: + if key not in self._models: + self._models[key] = MineruHybridModel( + lang=lang, + formula_enable=formula_enable, + ) + return self._models[key] + +def ocr_det_batch_setting(): + import torch + from packaging import version + device_type = os.getenv("MINERU_LMDEPLOY_DEVICE", "") + if device_type.lower() in ["corex"]: + enable_ocr_det_batch = False + else: + if version.parse(torch.__version__) >= version.parse("2.8.0"): + os.environ["TORCH_CUDNN_V8_API_DISABLED"] = "1" + enable_ocr_det_batch = True + + return enable_ocr_det_batch + +class MineruHybridModel: + def __init__( + self, + device=None, + lang=None, + formula_enable=True, + ): + if device is not None: + self.device = device + else: + self.device = get_device() + + self.lang = lang + + self.enable_ocr_det_batch = ocr_det_batch_setting() + + if str(self.device).startswith('npu'): + try: + import torch_npu + if torch_npu.npu.is_available(): + torch_npu.npu.set_compile_mode(jit_compile=False) + except Exception as e: + raise RuntimeError( + "NPU is selected as device, but torch_npu is not available. " + "Please ensure that the torch_npu package is installed correctly." + ) from e + + self.atom_model_manager = AtomModelSingleton() + + # 初始化OCR模型 + self.ocr_model = self.atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.OCR, + det_db_box_thresh=0.3, + lang=self.lang + ) + + if formula_enable: + # 初始化layout模型,用于提供行内公式检测框 + self.layout_model = self.atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.Layout, + pp_doclayout_v2_weights=str( + os.path.join( + auto_download_and_get_model_root_path(ModelPath.pp_doclayout_v2), + ModelPath.pp_doclayout_v2, + ) + ), + device=self.device, + ) + + # 初始化公式解析模型 + if MFR_MODEL == "unimernet_small": + mfr_model_path = ModelPath.unimernet_small + elif MFR_MODEL == "pp_formulanet_plus_m": + mfr_model_path = ModelPath.pp_formulanet_plus_m + else: + logger.error('MFR model name not allow') + exit(1) + + self.mfr_model = self.atom_model_manager.get_atom_model( + atom_model_name=AtomicModel.MFR, + mfr_weight_dir=str(os.path.join(auto_download_and_get_model_root_path(mfr_model_path), mfr_model_path)), + device=self.device, + ) diff --git a/mineru/backend/pipeline/model_json_to_middle_json.py b/mineru/backend/pipeline/model_json_to_middle_json.py new file mode 100644 index 000000000..d99a207dc --- /dev/null +++ b/mineru/backend/pipeline/model_json_to_middle_json.py @@ -0,0 +1,315 @@ +# Copyright (c) Opendatalab. All rights reserved. +import copy +import os +import time + +from loguru import logger +from tqdm import tqdm + +from mineru.backend.utils.html_image_utils import replace_inline_table_images +from mineru.backend.utils.runtime_utils import cross_page_table_merge +from mineru.utils.config_reader import get_device, get_llm_aided_config +from mineru.backend.pipeline.model_init import AtomModelSingleton +from mineru.backend.pipeline.para_split import para_split +from mineru.utils.char_utils import full_to_half +from mineru.utils.cut_image import cut_image_and_table +from mineru.utils.enum_class import ContentType, BlockType +from mineru.utils.llm_aided import llm_aided_title +from mineru.utils.model_utils import clean_memory +from mineru.backend.pipeline.pipeline_magic_model import MagicModel +from mineru.utils.ocr_utils import OcrConfidence, rotate_vertical_crop_if_needed +from mineru.version import __version__ +from mineru.utils.hash_utils import bytes_md5 +from mineru.utils.pdfium_guard import close_pdfium_document, pdfium_guard + + +def page_model_info_to_page_info(page_model_info, image_dict, page, image_writer, page_index, ocr_enable=False): + scale = image_dict["scale"] + page_pil_img = image_dict["img_pil"] + page_img_md5 = bytes_md5(page_pil_img.tobytes()) + with pdfium_guard(): + page_w, page_h = map(int, page.get_size()) + magic_model = MagicModel( + page_model_info, + page, + scale, + page_pil_img, + page_w, + page_h, + ocr_enable + ) + + """从magic_model对象中获取后面会用到的区块信息""" + preproc_blocks = magic_model.get_preproc_blocks() + discarded_blocks = magic_model.get_discarded_blocks() + all_image_spans = magic_model.get_all_image_spans() + + # 对image/table/chart/interline_equation的span截图 + for span in all_image_spans: + if span["type"] in [ + ContentType.IMAGE, + ContentType.TABLE, + ContentType.CHART, + ContentType.SEAL, + ContentType.INTERLINE_EQUATION + ]: + span = cut_image_and_table(span, page_pil_img, page_img_md5, page_index, image_writer, scale=scale) + + """构造page_info""" + replace_inline_table_images(preproc_blocks, image_writer, page_index) + + page_info = make_page_info_dict(preproc_blocks, page_index, page_w, page_h, discarded_blocks) + + return page_info + + +def build_page_model_info(page_layout_dets, page_index, pil_img): + page_info_dict = {'page_no': page_index, 'width': pil_img.width, 'height': pil_img.height} + return {'layout_dets': page_layout_dets, 'page_info': page_info_dict} + + +def append_page_model_infos_to_middle_json( + middle_json, + page_model_infos, + images_list, + pdf_doc, + image_writer, + page_start_index=0, + ocr_enable=False, + progress_bar=None, +): + for offset, (page_model_info, image_dict) in enumerate(zip(page_model_infos, images_list)): + page_index = page_start_index + offset + with pdfium_guard(): + page = pdf_doc[page_index] + page_info = page_model_info_to_page_info( + copy.deepcopy(page_model_info), + image_dict, + page, + image_writer, + page_index, + ocr_enable=ocr_enable, + ) + if page_info is None: + with pdfium_guard(): + page_w, page_h = map(int, pdf_doc[page_index].get_size()) + page_info = make_page_info_dict([], page_index, page_w, page_h, []) + middle_json["pdf_info"].append(page_info) + if progress_bar is not None: + progress_bar.update(1) + + +def append_batch_results_to_middle_json( + middle_json, + batch_results, + images_list, + pdf_doc, + image_writer, + page_start_index=0, + ocr_enable=False, + model_list=None, + progress_bar=None, +): + page_model_infos = [] + for offset, (image_dict, page_layout_dets) in enumerate(zip(images_list, batch_results)): + page_index = page_start_index + offset + page_model_info = build_page_model_info(page_layout_dets, page_index, image_dict['img_pil']) + page_model_infos.append(page_model_info) + + if model_list is not None: + model_list.extend(page_model_infos) + + append_page_model_infos_to_middle_json( + middle_json, + page_model_infos, + images_list, + pdf_doc, + image_writer, + page_start_index=page_start_index, + ocr_enable=ocr_enable, + progress_bar=progress_bar, + ) + + +def _extract_text_from_block(block): + text_parts = [] + for line in block.get("lines", []): + for span in line.get("spans", []): + if span.get("type") == ContentType.TEXT: + text_parts.append(span.get("content", "")) + return "".join(text_parts).strip() + + +def _iter_block_spans(block): + for line in block.get("lines", []): + for span in line.get("spans", []): + yield span + + for sub_block in block.get("blocks", []): + yield from _iter_block_spans(sub_block) + + +def _normalize_formula_tag_content(tag_content): + tag_content = full_to_half(tag_content.strip()) + if tag_content.startswith("("): + tag_content = tag_content[1:].strip() + if tag_content.endswith(")"): + tag_content = tag_content[:-1].strip() + return tag_content + + +def _get_interline_equation_span(block): + for line in block.get("lines", []): + for span in line.get("spans", []): + if span.get("type") == ContentType.INTERLINE_EQUATION: + return span + return None + + +def _append_formula_number_tag(equation_block, formula_number_block): + equation_span = _get_interline_equation_span(equation_block) + tag_content = _normalize_formula_tag_content(_extract_text_from_block(formula_number_block)) + if equation_span is not None: + formula = equation_span.get("content", "") + equation_span["content"] = f"{formula}\\tag{{{tag_content}}}" + + +def _optimize_formula_number_blocks(pdf_info_list): + for page_info in pdf_info_list: + optimized_blocks = [] + blocks = page_info.get("preproc_blocks", []) + for index, block in enumerate(blocks): + if block.get("type") != BlockType.FORMULA_NUMBER: + optimized_blocks.append(block) + continue + + prev_block = blocks[index - 1] if index > 0 else None + if prev_block and prev_block.get("type") == BlockType.INTERLINE_EQUATION: + _append_formula_number_tag(prev_block, block) + continue + + next_block = blocks[index + 1] if index + 1 < len(blocks) else None + next_next_block = blocks[index + 2] if index + 2 < len(blocks) else None + if ( + next_block + and next_block.get("type") == BlockType.INTERLINE_EQUATION + and (next_next_block is None or next_next_block.get("type") != BlockType.FORMULA_NUMBER) + ): + _append_formula_number_tag(next_block, block) + continue + + block["type"] = BlockType.TEXT + optimized_blocks.append(block) + + page_info["preproc_blocks"] = optimized_blocks + + +def _apply_post_ocr(pdf_info_list, lang=None): + need_ocr_list = [] + img_crop_list = [] + + for page_info in pdf_info_list: + for block in page_info.get('preproc_blocks', []): + for span in _iter_block_spans(block): + if 'np_img' in span: + need_ocr_list.append(span) + # Keep post-OCR rec aligned with the main OCR pipeline for vertical tall crops. + img_crop_list.append(rotate_vertical_crop_if_needed(span['np_img'])) + span.pop('np_img') + + for block in page_info.get('discarded_blocks', []): + for span in _iter_block_spans(block): + if 'np_img' in span: + need_ocr_list.append(span) + # Keep post-OCR rec aligned with the main OCR pipeline for vertical tall crops. + img_crop_list.append(rotate_vertical_crop_if_needed(span['np_img'])) + span.pop('np_img') + + if len(img_crop_list) == 0: + return + + atom_model_manager = AtomModelSingleton() + ocr_model = atom_model_manager.get_atom_model( + atom_model_name='ocr', + det_db_box_thresh=0.3, + lang=lang + ) + ocr_res_list = ocr_model.ocr(img_crop_list, det=False, tqdm_enable=True)[0] + assert len(ocr_res_list) == len( + need_ocr_list), f'ocr_res_list: {len(ocr_res_list)}, need_ocr_list: {len(need_ocr_list)}' + for index, span in enumerate(need_ocr_list): + ocr_text, ocr_score = ocr_res_list[index] + if ocr_score > OcrConfidence.min_confidence: + span['content'] = ocr_text + span['score'] = float(f"{ocr_score:.3f}") + else: + span['content'] = '' + span['score'] = 0.0 + + +def _post_block_process(pdf_info_list): + for page_info in pdf_info_list: + for block_key in ["preproc_blocks", "para_blocks"]: + for block in page_info.get(block_key, []): + block_type = block.get("type") + if block_type == BlockType.DOC_TITLE: + block["type"] = BlockType.TITLE + block["level"] = 1 + elif block_type == BlockType.PARAGRAPH_TITLE: + block["type"] = BlockType.TITLE + block["level"] = 2 + elif block_type == BlockType.VERTICAL_TEXT: + block["type"] = BlockType.TEXT + + +def finalize_middle_json(pdf_info_list, lang=None, ocr_enable=False): + """Apply document-level post processing once all page_info entries are ready.""" + _apply_post_ocr(pdf_info_list, lang=lang) + _optimize_formula_number_blocks(pdf_info_list) + para_split(pdf_info_list) + cross_page_table_merge(pdf_info_list) + + llm_aided_config = get_llm_aided_config() + if llm_aided_config is not None: + title_aided_config = llm_aided_config.get('title_aided', None) + if title_aided_config is not None and title_aided_config.get('enable', False): + llm_aided_title_start_time = time.time() + llm_aided_title(pdf_info_list, title_aided_config) + logger.info(f'llm aided title time: {round(time.time() - llm_aided_title_start_time, 2)}') + + _post_block_process(pdf_info_list) + + if os.getenv('MINERU_DONOT_CLEAN_MEM') is None and len(pdf_info_list) >= 10: + clean_memory(get_device()) + + +def init_middle_json(): + return {"pdf_info": [], "_backend": "pipeline", "_version_name": __version__} + + +def result_to_middle_json(model_list, images_list, pdf_doc, image_writer, lang=None, ocr_enable=False, formula_enable=None): + middle_json = init_middle_json() + with tqdm(total=len(model_list), desc="Processing pages") as progress_bar: + append_page_model_infos_to_middle_json( + middle_json, + model_list, + images_list, + pdf_doc, + image_writer, + ocr_enable=ocr_enable, + progress_bar=progress_bar, + ) + + finalize_middle_json(middle_json["pdf_info"], lang=lang, ocr_enable=ocr_enable) + close_pdfium_document(pdf_doc) + return middle_json + + +def make_page_info_dict(blocks, page_id, page_w, page_h, discarded_blocks): + return_dict = { + 'preproc_blocks': blocks, + 'page_idx': page_id, + 'page_size': [page_w, page_h], + 'discarded_blocks': discarded_blocks, + } + return return_dict diff --git a/mineru/backend/pipeline/model_list.py b/mineru/backend/pipeline/model_list.py new file mode 100644 index 000000000..6e635b59c --- /dev/null +++ b/mineru/backend/pipeline/model_list.py @@ -0,0 +1,10 @@ +# Copyright (c) Opendatalab. All rights reserved. +class AtomicModel: + Layout = "layout" + MFD = "mfd" + MFR = "mfr" + OCR = "ocr" + WirelessTable = "wireless_table" + WiredTable = "wired_table" + TableCls = "table_cls" + ImgOrientationCls = "img_ori_cls" diff --git a/mineru/backend/pipeline/para_split.py b/mineru/backend/pipeline/para_split.py new file mode 100644 index 000000000..0d70ad4b9 --- /dev/null +++ b/mineru/backend/pipeline/para_split.py @@ -0,0 +1,443 @@ +# Copyright (c) Opendatalab. All rights reserved. +import copy +from loguru import logger +from mineru.utils.enum_class import ContentType, BlockType, SplitFlag +from mineru.utils.language import detect_lang + + +LINE_STOP_FLAG = ('.', '!', '?', '。', '!', '?', ')', ')', '"', '”', ':', ':', ';', ';') +LIST_END_FLAG = ('.', '。', ';', ';') + + +class ListLineTag: + IS_LIST_START_LINE = 'is_list_start_line' + IS_LIST_END_LINE = 'is_list_end_line' + + +def __process_blocks(blocks): + # 对所有block预处理 + # 1.通过title和interline_equation将block分组 + # 2.bbox边界根据line信息重置 + + result = [] + current_group = [] + + for i in range(len(blocks)): + current_block = blocks[i] + + # 如果当前块是 text 类型 + if current_block['type'] in [BlockType.TEXT, BlockType.INDEX, BlockType.VERTICAL_TEXT]: + current_block['bbox_fs'] = copy.deepcopy(current_block['bbox']) + if 'lines' in current_block and len(current_block['lines']) > 0: + current_block['bbox_fs'] = [ + min([line['bbox'][0] for line in current_block['lines']]), + min([line['bbox'][1] for line in current_block['lines']]), + max([line['bbox'][2] for line in current_block['lines']]), + max([line['bbox'][3] for line in current_block['lines']]), + ] + current_group.append(current_block) + + # 检查下一个块是否存在 + if i + 1 < len(blocks): + next_block = blocks[i + 1] + # 如果下一个块不是 text 类型且是 title 或 interline_equation 类型 + if next_block['type'] in [ + BlockType.ABSTRACT, + BlockType.INTERLINE_EQUATION, + BlockType.DOC_TITLE, + BlockType.PARAGRAPH_TITLE, + ]: + result.append(current_group) + current_group = [] + + # 处理最后一个 group + if current_group: + result.append(current_group) + + return result + + +def __is_list_or_index_block(block): + if block['type'] == BlockType.VERTICAL_TEXT: + return BlockType.VERTICAL_TEXT + if block['type'] == BlockType.INDEX: + for line in block['lines']: + line[ListLineTag.IS_LIST_START_LINE] = True + return BlockType.INDEX + # 一个block如果是list block 应该同时满足以下特征 + # 1.block内有多个line 2.block 内有多个line左侧顶格写 3.block内有多个line 右侧不顶格(狗牙状) + # 1.block内有多个line 2.block 内有多个line左侧顶格写 3.多个line以endflag结尾 + # 1.block内有多个line 2.block 内有多个line左侧顶格写 3.block内有多个line 左侧不顶格 + + # index block 是一种特殊的list block + # 一个block如果是index block 应该同时满足以下特征 + # 1.block内有多个line 2.block 内有多个line两侧均顶格写 3.line的开头或者结尾均为数字 + if len(block['lines']) >= 2: + first_line = block['lines'][0] + line_height = first_line['bbox'][3] - first_line['bbox'][1] + block_weight = block['bbox_fs'][2] - block['bbox_fs'][0] + block_height = block['bbox_fs'][3] - block['bbox_fs'][1] + page_weight, page_height = block['page_size'] + + left_close_num = 0 + left_not_close_num = 0 + right_not_close_num = 0 + right_close_num = 0 + lines_text_list = [] + center_close_num = 0 + external_sides_not_close_num = 0 + multiple_para_flag = False + last_line = block['lines'][-1] + + if page_weight == 0: + block_weight_ratio = 0 + else: + block_weight_ratio = block_weight / page_weight + # logger.info(f"block_weight_ratio: {block_weight_ratio}") + + # 如果首行左边不顶格而右边顶格,末行左边顶格而右边不顶格 (第一行可能可以右边不顶格) + if ( + first_line['bbox'][0] - block['bbox_fs'][0] > line_height / 2 + and abs(last_line['bbox'][0] - block['bbox_fs'][0]) < line_height / 2 + and block['bbox_fs'][2] - last_line['bbox'][2] > line_height + ): + multiple_para_flag = True + + block_text = '' + + for line in block['lines']: + line_text = '' + + for span in line['spans']: + span_type = span['type'] + if span_type == ContentType.TEXT: + line_text += span['content'].strip() + # 添加所有文本,包括空行,保持与block['lines']长度一致 + lines_text_list.append(line_text) + block_text = ''.join(lines_text_list) + + block_lang = detect_lang(block_text) + # logger.info(f"block_lang: {block_lang}") + + for line in block['lines']: + line_mid_x = (line['bbox'][0] + line['bbox'][2]) / 2 + block_mid_x = (block['bbox_fs'][0] + block['bbox_fs'][2]) / 2 + if ( + line['bbox'][0] - block['bbox_fs'][0] > 0.7 * line_height + and block['bbox_fs'][2] - line['bbox'][2] > 0.7 * line_height + ): + external_sides_not_close_num += 1 + if abs(line_mid_x - block_mid_x) < line_height / 2: + center_close_num += 1 + + # 计算line左侧顶格数量是否大于2,是否顶格用abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height/2 来判断 + if abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height / 2: + left_close_num += 1 + elif line['bbox'][0] - block['bbox_fs'][0] > line_height: + left_not_close_num += 1 + + # 计算右侧是否顶格 + if abs(block['bbox_fs'][2] - line['bbox'][2]) < line_height: + right_close_num += 1 + else: + # 类中文没有超长单词的情况,可以用统一的阈值 + if block_lang in ['zh', 'ja', 'ko']: + closed_area = 0.26 * block_weight + else: + # 右侧不顶格情况下是否有一段距离,拍脑袋用0.3block宽度做阈值 + # block宽的阈值可以小些,block窄的阈值要大 + if block_weight_ratio >= 0.5: + closed_area = 0.26 * block_weight + else: + closed_area = 0.36 * block_weight + if block['bbox_fs'][2] - line['bbox'][2] > closed_area: + right_not_close_num += 1 + + # 判断lines_text_list中的元素是否有超过80%都以LIST_END_FLAG结尾 + line_end_flag = False + # 判断lines_text_list中的元素是否有超过80%都以数字开头或都以数字结尾 + line_num_flag = False + num_start_count = 0 + num_end_count = 0 + flag_end_count = 0 + + if len(lines_text_list) > 0: + for line_text in lines_text_list: + if len(line_text) > 0: + if line_text[-1] in LIST_END_FLAG: + flag_end_count += 1 + if line_text[0].isdigit(): + num_start_count += 1 + if line_text[-1].isdigit(): + num_end_count += 1 + + if ( + num_start_count / len(lines_text_list) >= 0.8 + or num_end_count / len(lines_text_list) >= 0.8 + ): + line_num_flag = True + if flag_end_count / len(lines_text_list) >= 0.8: + line_end_flag = True + + # 有的目录右侧不贴边, 目前认为左边或者右边有一边全贴边,且符合数字规则极为index + if ( + left_close_num / len(block['lines']) >= 0.8 + or right_close_num / len(block['lines']) >= 0.8 + ) and line_num_flag: + for line in block['lines']: + line[ListLineTag.IS_LIST_START_LINE] = True + return BlockType.INDEX + + # 全部line都居中的特殊list识别,每行都需要换行,特征是多行,且大多数行都前后not_close,每line中点x坐标接近 + # 补充条件block的长宽比有要求 + elif ( + external_sides_not_close_num >= 2 + and center_close_num == len(block['lines']) + and external_sides_not_close_num / len(block['lines']) >= 0.5 + and block_height / block_weight > 0.4 + ): + for line in block['lines']: + line[ListLineTag.IS_LIST_START_LINE] = True + return BlockType.LIST + + elif ( + left_close_num >= 2 + and (right_not_close_num >= 2 or line_end_flag or left_not_close_num >= 2) + and not multiple_para_flag + # and block_weight_ratio > 0.27 + ): + # 处理一种特殊的没有缩进的list,所有行都贴左边,通过右边的空隙判断是否是item尾 + if left_close_num / len(block['lines']) > 0.8: + # 这种是每个item只有一行,且左边都贴边的短item list + if flag_end_count == 0 and right_close_num / len(block['lines']) < 0.5: + for line in block['lines']: + if abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height / 2: + line[ListLineTag.IS_LIST_START_LINE] = True + # 这种是大部分line item 都有结束标识符的情况,按结束标识符区分不同item + elif line_end_flag: + for i, line in enumerate(block['lines']): + if ( + len(lines_text_list[i]) > 0 + and lines_text_list[i][-1] in LIST_END_FLAG + ): + line[ListLineTag.IS_LIST_END_LINE] = True + if i + 1 < len(block['lines']): + block['lines'][i + 1][ + ListLineTag.IS_LIST_START_LINE + ] = True + # line item基本没有结束标识符,而且也没有缩进,按右侧空隙判断哪些是item end + else: + line_start_flag = False + for i, line in enumerate(block['lines']): + if line_start_flag: + line[ListLineTag.IS_LIST_START_LINE] = True + line_start_flag = False + + if ( + abs(block['bbox_fs'][2] - line['bbox'][2]) + > 0.1 * block_weight + ): + line[ListLineTag.IS_LIST_END_LINE] = True + line_start_flag = True + # 一种有缩进的特殊有序list,start line 左侧不贴边且以数字开头,end line 以 IS_LIST_END_FLAG 结尾且数量和start line 一致 + elif num_start_count >= 2 and num_start_count == flag_end_count: + for i, line in enumerate(block['lines']): + if len(lines_text_list[i]) > 0: + if lines_text_list[i][0].isdigit(): + line[ListLineTag.IS_LIST_START_LINE] = True + if lines_text_list[i][-1] in LIST_END_FLAG: + line[ListLineTag.IS_LIST_END_LINE] = True + else: + # 正常有缩进的list处理 + for line in block['lines']: + if abs(block['bbox_fs'][0] - line['bbox'][0]) < line_height / 2: + line[ListLineTag.IS_LIST_START_LINE] = True + if abs(block['bbox_fs'][2] - line['bbox'][2]) > line_height: + line[ListLineTag.IS_LIST_END_LINE] = True + + return BlockType.LIST + else: + return BlockType.TEXT + else: + return BlockType.TEXT + + +def __merge_2_text_blocks(block1, block2): + if len(block1['lines']) > 0 and len(block2['lines']) > 0: + first_line = block1['lines'][0] + line_height = first_line['bbox'][3] - first_line['bbox'][1] + block1_weight = block1['bbox'][2] - block1['bbox'][0] + block2_weight = block2['bbox'][2] - block2['bbox'][0] + min_block_weight = min(block1_weight, block2_weight) + if abs(block1['bbox_fs'][0] - first_line['bbox'][0]) < line_height / 2: + last_line = block2['lines'][-1] + if len(last_line['spans']) > 0: + last_span = last_line['spans'][-1] + line_height = last_line['bbox'][3] - last_line['bbox'][1] + if len(first_line['spans']) > 0: + first_span = first_line['spans'][0] + if len(first_span['content']) > 0: + span_start_with_num = first_span['content'][0].isdigit() + span_start_with_big_char = first_span['content'][0].isupper() + if ( + # 上一个block的最后一个line的右边界和block的右边界差距不超过line_height + abs(block2['bbox_fs'][2] - last_line['bbox'][2]) < line_height + # 上一个block的最后一个span不是以特定符号结尾 + and not last_span['content'].endswith(LINE_STOP_FLAG) + # 两个block宽度差距超过2倍也不合并 + and abs(block1_weight - block2_weight) < min_block_weight + # 下一个block的第一个字符是数字 + and not span_start_with_num + # 下一个block的第一个字符是大写字母 + and not span_start_with_big_char + # 下一个块的y0要比上一个块的y1小 + and block1['bbox'][1] < block2['bbox'][3] + # 两个块任意一个块需要大于1行 + and (len(block1['lines']) > 1 or len(block2['lines']) > 1) + ): + if block1['page_num'] != block2['page_num']: + for line in block1['lines']: + for span in line['spans']: + span[SplitFlag.CROSS_PAGE] = True + block2['lines'].extend(block1['lines']) + block1['lines'] = [] + block1[SplitFlag.LINES_DELETED] = True + + return block1, block2 + + +def __merge_2_vertical_text_blocks(block1, block2): + if len(block1['lines']) > 0 and len(block2['lines']) > 0: + first_line = block1['lines'][0] + line_width = first_line['bbox'][2] - first_line['bbox'][0] + block1_height = block1['bbox'][3] - block1['bbox'][1] + block2_height = block2['bbox'][3] - block2['bbox'][1] + min_block_height = min(block1_height, block2_height) + if line_width > 0 and abs(block1['bbox_fs'][1] - first_line['bbox'][1]) < line_width / 2: + last_line = block2['lines'][-1] + if len(last_line['spans']) > 0: + last_span = last_line['spans'][-1] + line_width = last_line['bbox'][2] - last_line['bbox'][0] + if line_width > 0 and len(first_line['spans']) > 0: + first_span = first_line['spans'][0] + first_content = first_span.get('content', '') + last_content = last_span.get('content', '') + if len(first_content) > 0: + span_start_with_num = first_content[0].isdigit() + span_start_with_big_char = first_content[0].isupper() + if ( + abs(block2['bbox_fs'][3] - last_line['bbox'][3]) < line_width + and not last_content.endswith(LINE_STOP_FLAG) + and abs(block1_height - block2_height) < min_block_height + and not span_start_with_num + and not span_start_with_big_char + ): + if block1['page_num'] != block2['page_num']: + for line in block1['lines']: + for span in line['spans']: + span[SplitFlag.CROSS_PAGE] = True + block2['lines'].extend(block1['lines']) + block1['lines'] = [] + block1[SplitFlag.LINES_DELETED] = True + + return block1, block2 + + +def __merge_2_list_blocks(block1, block2): + if block1['page_num'] != block2['page_num']: + for line in block1['lines']: + for span in line['spans']: + span[SplitFlag.CROSS_PAGE] = True + block2['lines'].extend(block1['lines']) + block1['lines'] = [] + block1[SplitFlag.LINES_DELETED] = True + + return block1, block2 + + +def __is_list_group(text_blocks_group): + # list group的特征是一个group内的所有block都满足以下条件 + # 1.每个block都不超过3行 2. 每个block 的左边界都比较接近(逻辑简单点先不加这个规则) + for block in text_blocks_group: + if block['type'] == BlockType.VERTICAL_TEXT: + return False + if len(block['lines']) > 3: + return False + return True + + +def __para_merge_page(blocks): + page_text_blocks_groups = __process_blocks(blocks) + for text_blocks_group in page_text_blocks_groups: + if len(text_blocks_group) > 0: + # 需要先在合并前对所有block判断是否为list or index block + for block in text_blocks_group: + block_type = __is_list_or_index_block(block) + block['type'] = block_type + # logger.info(f"{block['type']}:{block}") + + if len(text_blocks_group) > 1: + # 在合并前判断这个group 是否是一个 list group + is_list_group = __is_list_group(text_blocks_group) + + # 倒序遍历 + for i in range(len(text_blocks_group) - 1, -1, -1): + current_block = text_blocks_group[i] + + # 检查是否有前一个块 + if i - 1 >= 0: + prev_block = text_blocks_group[i - 1] + + if ( + current_block['type'] == BlockType.VERTICAL_TEXT + and prev_block['type'] == BlockType.VERTICAL_TEXT + ): + __merge_2_vertical_text_blocks(current_block, prev_block) + elif ( + current_block['type'] == BlockType.TEXT + and prev_block['type'] == BlockType.TEXT + and not is_list_group + ): + __merge_2_text_blocks(current_block, prev_block) + elif ( + current_block['type'] == BlockType.LIST + and prev_block['type'] == BlockType.LIST + ) or ( + current_block['type'] == BlockType.INDEX + and prev_block['type'] == BlockType.INDEX + ): + __merge_2_list_blocks(current_block, prev_block) + + else: + continue + + +def para_split(page_info_list): + all_blocks = [] + for page_info in page_info_list: + blocks = copy.deepcopy(page_info['preproc_blocks']) + for block in blocks: + block['page_num'] = page_info['page_idx'] + block['page_size'] = page_info['page_size'] + all_blocks.extend(blocks) + + __para_merge_page(all_blocks) + for page_info in page_info_list: + page_info['para_blocks'] = [] + for block in all_blocks: + if 'page_num' in block: + if block['page_num'] == page_info['page_idx']: + if block['type'] == BlockType.VERTICAL_TEXT: + block['type'] = BlockType.TEXT + page_info['para_blocks'].append(block) + # 从block中删除不需要的page_num和page_size字段 + del block['page_num'] + del block['page_size'] + + +if __name__ == '__main__': + input_blocks = [] + # 调用函数 + groups = __process_blocks(input_blocks) + for group_index, group in enumerate(groups): + print(f'Group {group_index}: {group}') diff --git a/mineru/backend/pipeline/pipeline_analyze.py b/mineru/backend/pipeline/pipeline_analyze.py new file mode 100644 index 000000000..aa309145f --- /dev/null +++ b/mineru/backend/pipeline/pipeline_analyze.py @@ -0,0 +1,348 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import time +from typing import List, Tuple + +import pypdfium2 as pdfium +from PIL import Image +from loguru import logger +from tqdm import tqdm + +from .model_init import MineruPipelineModel, PIPELINE_MODEL_INIT_LOCK +from .model_json_to_middle_json import ( + append_batch_results_to_middle_json, + finalize_middle_json, + init_middle_json, +) +from ..utils.runtime_utils import exclude_progress_bar_idle_time +from mineru.utils.config_reader import get_device, get_processing_window_size +from ...utils.enum_class import ImageType +from ...utils.pdf_classify import classify +from ...utils.pdf_image_tools import load_images_from_pdf_doc +from ...utils.model_utils import get_vram, clean_memory +from ...utils.pdfium_guard import ( + close_pdfium_document, + get_pdfium_document_page_count, + open_pdfium_document, +) + + +os.environ['PYTORCH_ENABLE_MPS_FALLBACK'] = '1' # 让mps可以fallback +os.environ['NO_ALBUMENTATIONS_UPDATE'] = '1' # 禁止albumentations检查更新 + +class ModelSingleton: + _instance = None + _models = {} + _lock = PIPELINE_MODEL_INIT_LOCK + + def __new__(cls, *args, **kwargs): + with cls._lock: + if cls._instance is None: + cls._instance = super().__new__(cls) + return cls._instance + + def get_model( + self, + lang=None, + formula_enable=None, + table_enable=None, + ): + key = (lang, formula_enable, table_enable) + with self._lock: + if key not in self._models: + self._models[key] = custom_model_init( + lang=lang, + formula_enable=formula_enable, + table_enable=table_enable, + ) + return self._models[key] + + +def custom_model_init( + lang=None, + formula_enable=True, + table_enable=True, +): + model_init_start = time.time() + # 从配置文件读取model-dir和device + device = get_device() + + formula_config = {"enable": formula_enable} + table_config = {"enable": table_enable} + + model_input = { + 'device': device, + 'table_config': table_config, + 'formula_config': formula_config, + 'lang': lang, + } + + custom_model = MineruPipelineModel(**model_input) + + model_init_cost = time.time() - model_init_start + logger.info(f'model init cost: {model_init_cost}') + + return custom_model + + +def _get_ocr_enable(pdf_bytes, parse_method: str) -> bool: + if parse_method == 'auto': + return classify(pdf_bytes) == 'ocr' + if parse_method == 'ocr': + return True + return False + + +def _close_images(images_list): + for image_dict in images_list or []: + pil_img = image_dict.get('img_pil') + if pil_img is not None: + try: + pil_img.close() + except Exception: + pass + + +def _format_doc_slices(batch_slices): + return ",".join( + f"doc{item['doc_index']}:{item['page_start'] + 1}-{item['page_end'] + 1}" + for item in batch_slices + ) + + +def _finalize_processing_window_context(context, on_doc_ready): + if context['closed']: + return + finalize_middle_json( + context['middle_json']['pdf_info'], + lang=context['lang'], + ocr_enable=context['ocr_enable'], + ) + logger.debug( + f"Pipeline doc ready: doc{context['doc_index']} pages={context['page_count']}" + ) + on_doc_ready( + context['doc_index'], + context['model_list'], + context['middle_json'], + context['ocr_enable'], + ) + close_pdfium_document(context['pdf_doc']) + context['closed'] = True + + +def _emit_zero_page_contexts(doc_contexts, on_doc_ready): + for context in doc_contexts: + if context['page_count'] == 0 and not context['closed']: + _finalize_processing_window_context(context, on_doc_ready) + + +def doc_analyze_streaming( + pdf_bytes_list, + image_writer_list, + lang_list, + on_doc_ready, + parse_method: str = 'auto', + formula_enable=True, + table_enable=True, +): + if not (len(pdf_bytes_list) == len(image_writer_list) == len(lang_list)): + raise ValueError("pdf_bytes_list, image_writer_list, and lang_list must have the same length") + + doc_contexts = [] + total_pages = 0 + for doc_index, (pdf_bytes, image_writer, lang) in enumerate( + zip(pdf_bytes_list, image_writer_list, lang_list) + ): + _ocr_enable = _get_ocr_enable(pdf_bytes, parse_method) + pdf_doc = open_pdfium_document(pdfium.PdfDocument, pdf_bytes) + page_count = get_pdfium_document_page_count(pdf_doc) + total_pages += page_count + doc_contexts.append( + { + 'doc_index': doc_index, + 'pdf_bytes': pdf_bytes, + 'pdf_doc': pdf_doc, + 'page_count': page_count, + 'next_page_idx': 0, + 'middle_json': init_middle_json(), + 'model_list': [], + 'image_writer': image_writer, + 'lang': lang, + 'ocr_enable': _ocr_enable, + 'closed': False, + } + ) + + if total_pages == 0: + _emit_zero_page_contexts(doc_contexts, on_doc_ready) + return + + window_size = get_processing_window_size(default=64) + total_batches = (total_pages + window_size - 1) // window_size + logger.info( + f'Pipeline processing-window multi-file run. doc_count={len(doc_contexts)}, ' + f'total_pages={total_pages}, window_size={window_size}, total_batches={total_batches}' + ) + + _emit_zero_page_contexts(doc_contexts, on_doc_ready) + processed_pages = 0 + infer_start = time.time() + try: + progress_bar = None + last_append_end_time = None + try: + batch_index = 0 + while processed_pages < total_pages: + batch_index += 1 + batch_capacity = window_size + batch_images = [] + batch_slices = [] + batch_payloads = [] + + for context in doc_contexts: + if batch_capacity == 0: + break + page_start = context['next_page_idx'] + if page_start >= context['page_count']: + continue + take_count = min(batch_capacity, context['page_count'] - page_start) + page_end = page_start + take_count - 1 + images_list = load_images_from_pdf_doc( + context['pdf_doc'], + start_page_id=page_start, + end_page_id=page_end, + image_type=ImageType.PIL, + pdf_bytes=context['pdf_bytes'], + ) + images_with_extra_info = [ + (image_dict['img_pil'], context['ocr_enable'], context['lang']) + for image_dict in images_list + ] + batch_images.extend(images_with_extra_info) + batch_slices.append( + { + 'doc_index': context['doc_index'], + 'page_start': page_start, + 'page_end': page_end, + 'count': take_count, + } + ) + batch_payloads.append((context, images_list, page_start, take_count)) + context['next_page_idx'] = page_end + 1 + batch_capacity -= take_count + + logger.info( + f'Pipeline processing window batch {batch_index}/{total_batches}: ' + f'{processed_pages + len(batch_images)}/{total_pages} pages, ' + f'batch_pages={len(batch_images)}, doc_slices={_format_doc_slices(batch_slices)}' + ) + + batch_results = batch_image_analyze( + batch_images, + formula_enable=formula_enable, + table_enable=table_enable, + ) + if progress_bar is None: + progress_bar = tqdm(total=total_pages, desc="Processing pages") + else: + exclude_progress_bar_idle_time( + progress_bar, + last_append_end_time, + now=time.time(), + ) + + result_offset = 0 + for context, images_list, page_start, take_count in batch_payloads: + result_slice = batch_results[result_offset: result_offset + take_count] + append_batch_results_to_middle_json( + context['middle_json'], + result_slice, + images_list, + context['pdf_doc'], + context['image_writer'], + page_start_index=page_start, + ocr_enable=context['ocr_enable'], + model_list=context['model_list'], + progress_bar=progress_bar, + ) + result_offset += take_count + _close_images(images_list) + images_list.clear() + + if context['next_page_idx'] >= context['page_count'] and not context['closed']: + _finalize_processing_window_context(context, on_doc_ready) + + last_append_end_time = time.time() + processed_pages += len(batch_images) + finally: + if progress_bar is not None: + progress_bar.close() + + infer_time = round(time.time() - infer_start, 2) + if infer_time > 0: + logger.debug( + f"processing-window multi-file infer finished, cost: {infer_time}, " + f"speed: {round(total_pages / infer_time, 3)} page/s" + ) + finally: + for context in doc_contexts: + if not context['closed']: + close_pdfium_document(context['pdf_doc']) + context['closed'] = True + + +def batch_image_analyze( + images_with_extra_info: List[Tuple[Image.Image, bool, str]], + formula_enable=True, + table_enable=True): + + from .batch_analyze import BatchAnalyze + + model_manager = ModelSingleton() + + device = get_device() + + if str(device).startswith('npu'): + try: + import torch_npu + if torch_npu.npu.is_available(): + torch_npu.npu.set_compile_mode(jit_compile=False) + except Exception as e: + raise RuntimeError( + "NPU is selected as device, but torch_npu is not available. " + "Please ensure that the torch_npu package is installed correctly." + ) from e + + gpu_memory = get_vram(device) + if gpu_memory >= 32: + batch_ratio = 16 + elif gpu_memory >= 16: + batch_ratio = 8 + elif gpu_memory >= 8: + batch_ratio = 4 + elif gpu_memory >= 6: + batch_ratio = 2 + else: + batch_ratio = 1 + logger.info( + f'GPU Memory: {gpu_memory} GB, Batch Ratio: {batch_ratio}. ' + ) + + # 检测torch的版本号 + import torch + from packaging import version + device_type = os.getenv("MINERU_LMDEPLOY_DEVICE", "") + if device_type.lower() in ["corex"]: + enable_ocr_det_batch = False + else: + if version.parse(torch.__version__) >= version.parse("2.8.0"): + os.environ["TORCH_CUDNN_V8_API_DISABLED"] = "1" + enable_ocr_det_batch = True + + batch_model = BatchAnalyze(model_manager, batch_ratio, formula_enable, table_enable, enable_ocr_det_batch) + results = batch_model(images_with_extra_info) + + clean_memory(get_device()) + + return results diff --git a/mineru/backend/pipeline/pipeline_magic_model.py b/mineru/backend/pipeline/pipeline_magic_model.py new file mode 100644 index 000000000..3bc04c093 --- /dev/null +++ b/mineru/backend/pipeline/pipeline_magic_model.py @@ -0,0 +1,553 @@ +# Copyright (c) Opendatalab. All rights reserved. +from mineru.backend.pipeline.para_split import ListLineTag +from mineru.backend.pipeline.pipeline_middle_json_mkcontent import _merge_para_text +from mineru.utils.boxbase import ( + bbox_center_distance, + bbox_distance, + calculate_overlap_area_2_minbox_area_ratio, + calculate_overlap_area_in_bbox1_area_ratio, +) +from mineru.utils.enum_class import ContentType, BlockType +from mineru.utils.guess_suffix_or_lang import guess_language_by_text +from mineru.utils.span_block_fix import merge_spans_to_vertical_line, vertical_line_sort_spans_from_top_to_bottom, \ + merge_spans_to_line, line_sort_spans_by_left_to_right +from mineru.utils.span_pre_proc import txt_spans_extract + + +class MagicModel: + + PP_DOCLAYOUT_V2_LABELS_TO_BLOCK_TYPES = { + "abstract": BlockType.ABSTRACT, + "algorithm": BlockType.CODE, + "aside_text": BlockType.ASIDE_TEXT, + "chart": BlockType.CHART, + "content": BlockType.INDEX, + "display_formula": BlockType.INTERLINE_EQUATION, + "doc_title": BlockType.DOC_TITLE, + "figure_title": BlockType.CAPTION, + "footer": BlockType.FOOTER, + "footer_image": BlockType.FOOTER, + "footnote": BlockType.PAGE_FOOTNOTE, + "formula_number": BlockType.FORMULA_NUMBER, + "header": BlockType.HEADER, + "header_image": BlockType.HEADER, + "image": BlockType.IMAGE, + "number": BlockType.PAGE_NUMBER, + "paragraph_title": BlockType.PARAGRAPH_TITLE, + "reference_content": BlockType.REF_TEXT, + "seal": BlockType.SEAL, + "table": BlockType.TABLE, + "text": BlockType.TEXT, + "vertical_text": BlockType.VERTICAL_TEXT, + "vision_footnote": BlockType.FOOTNOTE, + } + + VISUAL_MAIN_TYPES = (BlockType.IMAGE, BlockType.TABLE, BlockType.CHART, BlockType.CODE) + VISUAL_CHILD_TYPES = (BlockType.CAPTION, BlockType.FOOTNOTE) + VISUAL_TYPE_MAPPING = { + BlockType.IMAGE: { + "body": BlockType.IMAGE_BODY, + "caption": BlockType.IMAGE_CAPTION, + "footnote": BlockType.IMAGE_FOOTNOTE, + }, + BlockType.TABLE: { + "body": BlockType.TABLE_BODY, + "caption": BlockType.TABLE_CAPTION, + "footnote": BlockType.TABLE_FOOTNOTE, + }, + BlockType.CHART: { + "body": BlockType.CHART_BODY, + "caption": BlockType.CHART_CAPTION, + "footnote": BlockType.CHART_FOOTNOTE, + }, + BlockType.CODE: { + "body": BlockType.CODE_BODY, + "caption": BlockType.CODE_CAPTION, + "footnote": BlockType.CODE_FOOTNOTE, + } + } + + def __init__( + self, + page_model_info: dict, + page=None, + scale=1, + page_pil_img=None, + page_w=None, + page_h=None, + ocr_enable=False, + ): + self.__page_model_info = page_model_info + self.page_inline_formula = [] + self.page_ocr_res = [] + self.page_blocks = [] + self.image_groups = [] + self.table_groups = [] + self.chart_groups = [] + self.all_image_spans = [] + self.__layout_det_by_index = {} + self.__scale = scale + self.__fix_axis() # bbox坐标修正,删除高度或者宽度小于等于0的spans + self.__post_process() # index重排,填充行内公式和文本span + if not ocr_enable: + virtual_block = [0, 0, page_w, page_h, None, None, None, "text"] + self.page_ocr_res = txt_spans_extract( + page, + self.page_ocr_res, + page_pil_img, + scale, + [virtual_block], + [], + ) + self.page_text_inline_formula_spans = self.page_inline_formula + self.page_ocr_res + + for layout_det in self.__page_model_info['layout_dets']: + if layout_det.get('label') in self.PP_DOCLAYOUT_V2_LABELS_TO_BLOCK_TYPES: + block_bbox = layout_det['bbox'] + block_type = self.PP_DOCLAYOUT_V2_LABELS_TO_BLOCK_TYPES[layout_det['label']] + block_index = layout_det['index'] + block_score = layout_det['score'] + block = self.__copy_block_fields( + layout_det, + type=block_type, + bbox=block_bbox, + index=block_index, + score=block_score, + ) + self.page_blocks.append(block) + + self.page_blocks.sort(key=lambda x: x["index"]) + self.__build_page_blocks() + self.__classify_visual_blocks() + self.__build_return_blocks() + + + @staticmethod + def __fix_text_block(block): + if block["type"] == BlockType.VERTICAL_TEXT: + # 如果是纵向文本块,则按纵向lines处理 + block_lines = merge_spans_to_vertical_line(block['spans']) + sort_block_lines = vertical_line_sort_spans_from_top_to_bottom(block_lines) + else: + block_lines = merge_spans_to_line(block['spans']) + sort_block_lines = line_sort_spans_by_left_to_right(block_lines) + + if block["type"] == BlockType.CODE: + for line in sort_block_lines: + line[ListLineTag.IS_LIST_START_LINE] = True + code_content = _merge_para_text( + {'lines': sort_block_lines}, + False, + '\n' + ) + guess_lang = guess_language_by_text(code_content) + if guess_lang not in ["txt", "unknown"]: + block["sub_type"] = "code" + block["guess_lang"] = guess_lang + + block['lines'] = sort_block_lines + del block['spans'] + return block + + @staticmethod + def __copy_block_fields(block, **overrides): + copied_block = { + key: value + for key, value in block.items() + if key not in {"cls_id", "label"} + } + copied_block.update(overrides) + return copied_block + + + @staticmethod + def __is_inline_formula_block(layout_det: dict) -> bool: + return ( + layout_det.get("label") == "inline_formula" + or layout_det.get("cls_id") == 15 + ) + + @staticmethod + def __is_ocr_text_block(layout_det: dict) -> bool: + return layout_det.get("label") == "ocr_text" + + def __build_return_blocks(self): + self.preproc_blocks = [] + self.discarded_blocks = [] + for block in self.page_blocks: + if block["type"] in [ + BlockType.HEADER, + BlockType.FOOTER, + BlockType.PAGE_NUMBER, + BlockType.ASIDE_TEXT, + BlockType.PAGE_FOOTNOTE + ]: + self.discarded_blocks.append(block) + else: + # 单独处理code block + if block["type"] in [BlockType.CODE]: + for sub_block in block["blocks"]: + if sub_block["type"] == BlockType.CODE_BODY: + block["sub_type"] = sub_block.pop("sub_type", "algorithm") + if block["sub_type"] == "code": + block["guess_lang"] = sub_block.pop("guess_lang", "txt") + + self.preproc_blocks.append(block) + + def __build_page_blocks(self): + span_type = "unknown" + for block in self.page_blocks: + if block["type"] in [ + BlockType.ABSTRACT, + BlockType.CODE, + BlockType.ASIDE_TEXT, + BlockType.INDEX, + BlockType.DOC_TITLE, + BlockType.CAPTION, + BlockType.FOOTER, + BlockType.PAGE_FOOTNOTE, + BlockType.FORMULA_NUMBER, + BlockType.HEADER, + BlockType.PAGE_NUMBER, + BlockType.PARAGRAPH_TITLE, + BlockType.REF_TEXT, + BlockType.TEXT, + BlockType.VERTICAL_TEXT, + BlockType.FOOTNOTE, + ]: + span_type = ContentType.TEXT + elif block["type"] in [BlockType.IMAGE]: + span_type = ContentType.IMAGE + elif block["type"] in [BlockType.TABLE]: + span_type = ContentType.TABLE + elif block["type"] in [BlockType.CHART]: + span_type = ContentType.CHART + elif block["type"] in [BlockType.INTERLINE_EQUATION]: + span_type = ContentType.INTERLINE_EQUATION + elif block["type"] in [BlockType.SEAL]: + span_type = ContentType.SEAL + + if span_type in [ + ContentType.IMAGE, + ContentType.TABLE, + ContentType.CHART, + ContentType.INTERLINE_EQUATION, + ContentType.SEAL + ]: + span = { + "bbox": block["bbox"], + "type": span_type, + } + if span_type == ContentType.TABLE: + span["html"] = block.get("html", "") + block.pop("html", None) + if span_type == ContentType.INTERLINE_EQUATION: + span["content"] = block.get("latex", "") + block.pop("latex", None) + if span_type == ContentType.SEAL: + span["content"] = block.get("text") + block.pop("text", None) + + self.all_image_spans.append(span) + # 构造line对象 + spans = [span] + line = {"bbox": block["bbox"], "spans": spans} + block["lines"] = [line] + else: + # span填充 + block_spans = [] + for span in self.page_text_inline_formula_spans: + overlap_ratio = calculate_overlap_area_in_bbox1_area_ratio( + span['bbox'], block["bbox"] + ) + if block["type"] == BlockType.FORMULA_NUMBER: + # OCR 检测框通常会比公式编号框更大,使用最小框重叠比避免编号文字无法回填。 + overlap_ratio = max( + overlap_ratio, + calculate_overlap_area_2_minbox_area_ratio( + span['bbox'], block["bbox"] + ), + ) + if overlap_ratio > 0.5: + block_spans.append(span) + # 从spans删除已经放入block_spans中的span + if len(block_spans) > 0: + for span in block_spans: + self.page_text_inline_formula_spans.remove(span) + + block["spans"] = block_spans + block = self.__fix_text_block(block) + + def __fix_axis(self): + need_remove_list = [] + layout_dets = self.__page_model_info["layout_dets"] + for layout_det in layout_dets: + x0, y0, x1, y1 = layout_det["bbox"] + bbox = [ + int(x0 / self.__scale), + int(y0 / self.__scale), + int(x1 / self.__scale), + int(y1 / self.__scale), + ] + layout_det["bbox"] = bbox + # 删除高度或者宽度小于等于2的spans + if bbox[2] - bbox[0] <= 2 or bbox[3] - bbox[1] <= 2: + need_remove_list.append(layout_det) + for need_remove in need_remove_list: + layout_dets.remove(need_remove) + + def __post_process(self): + next_index = 1 + layout_dets = self.__page_model_info["layout_dets"] + for layout_det in layout_dets: + if self.__is_inline_formula_block(layout_det): + layout_det.pop("index", None) + self.page_inline_formula.append({ + "bbox": layout_det["bbox"], + "type": ContentType.INLINE_EQUATION, + "content": layout_det["latex"], + "score": layout_det["score"], + }) + continue + + if self.__is_ocr_text_block(layout_det): + self.page_ocr_res.append({ + "bbox": layout_det["bbox"], + "type": ContentType.TEXT, + "content": layout_det["text"], + "score": layout_det["score"], + }) + continue + + if "index" in layout_det: + layout_det["index"] = next_index + next_index += 1 + + def __classify_visual_blocks(self): + if not self.page_blocks: + return + + ordered_blocks = sorted(self.page_blocks, key=lambda x: x["index"]) + original_type_by_index = { + block["index"]: block["type"] for block in ordered_blocks + } + position_by_index = { + block["index"]: pos for pos, block in enumerate(ordered_blocks) + } + main_blocks = [ + block + for block in ordered_blocks + if original_type_by_index[block["index"]] in self.VISUAL_MAIN_TYPES + ] + child_blocks = [ + block + for block in ordered_blocks + if original_type_by_index[block["index"]] in self.VISUAL_CHILD_TYPES + ] + + child_parent_map = {} + grouped_children = { + main_block["index"]: {"captions": [], "footnotes": []} + for main_block in main_blocks + } + + for child_block in child_blocks: + parent_block = self.__find_best_visual_parent( + child_block, + main_blocks, + ordered_blocks, + original_type_by_index, + position_by_index, + ) + child_parent_map[child_block["index"]] = ( + None if parent_block is None else parent_block["index"] + ) + + for child_block in child_blocks: + original_child_type = original_type_by_index[child_block["index"]] + parent_index = child_parent_map[child_block["index"]] + + if parent_index is None: + child_block["type"] = BlockType.TEXT + self.__sync_layout_det_type(child_block["index"], BlockType.TEXT) + continue + + parent_type = original_type_by_index[parent_index] + child_kind = self.__child_kind(original_child_type) + mapped_type = self.VISUAL_TYPE_MAPPING[parent_type][child_kind] + child_block["type"] = mapped_type + self.__sync_layout_det_type(child_block["index"], mapped_type) + grouped_children[parent_index][f"{child_kind}s"].append(child_block) + + self.image_groups = [] + self.table_groups = [] + self.chart_groups = [] + + rebuilt_page_blocks = [] + for block in ordered_blocks: + original_block_type = original_type_by_index[block["index"]] + + if original_block_type in self.VISUAL_CHILD_TYPES: + if child_parent_map[block["index"]] is None: + rebuilt_page_blocks.append(block) + continue + + if original_block_type not in self.VISUAL_MAIN_TYPES: + rebuilt_page_blocks.append(block) + continue + + mapping = self.VISUAL_TYPE_MAPPING[original_block_type] + body_block = self.__make_child_block(block, mapping["body"]) + captions = sorted( + [ + self.__make_child_block(caption, mapping["caption"]) + for caption in grouped_children[block["index"]]["captions"] + ], + key=lambda x: x["index"], + ) + footnotes = sorted( + [ + self.__make_child_block(footnote, mapping["footnote"]) + for footnote in grouped_children[block["index"]]["footnotes"] + ], + key=lambda x: x["index"], + ) + + self.__sync_layout_det_type(block["index"], mapping["body"]) + + group_info = { + f"{original_block_type}_body": body_block, + f"{original_block_type}_caption_list": captions, + f"{original_block_type}_footnote_list": footnotes, + } + if original_block_type == BlockType.IMAGE: + self.image_groups.append(group_info) + elif original_block_type == BlockType.TABLE: + self.table_groups.append(group_info) + else: + self.chart_groups.append(group_info) + + two_layer_block = { + "type": original_block_type, + "bbox": block["bbox"], + "blocks": [body_block, *captions, *footnotes], + "index": block["index"], + "score": block.get("score"), + } + # 对blocks按index排序 + two_layer_block["blocks"].sort(key=lambda x: x["index"]) + rebuilt_page_blocks.append(two_layer_block) + + self.page_blocks = rebuilt_page_blocks + + def __find_best_visual_parent( + self, + child_block, + main_blocks, + ordered_blocks, + original_type_by_index, + position_by_index, + ): + child_type = original_type_by_index[child_block["index"]] + if child_type not in self.VISUAL_CHILD_TYPES: + return None + + best_parent = None + best_key = None + for main_block in main_blocks: + if not self.__is_visual_neighbor( + child_block, + main_block, + ordered_blocks, + original_type_by_index, + position_by_index, + ): + continue + + candidate_key = ( + abs(child_block["index"] - main_block["index"]), + bbox_distance(child_block["bbox"], main_block["bbox"]), + bbox_center_distance(child_block["bbox"], main_block["bbox"]), + main_block["index"], + ) + + if best_key is None or candidate_key < best_key: + best_key = candidate_key + best_parent = main_block + + return best_parent + + def __is_visual_neighbor( + self, + child_block, + main_block, + ordered_blocks, + original_type_by_index, + position_by_index, + ): + child_type = original_type_by_index[child_block["index"]] + if child_type == BlockType.FOOTNOTE and child_block["index"] < main_block["index"]: + return False + + child_pos = position_by_index[child_block["index"]] + main_pos = position_by_index[main_block["index"]] + start_pos = min(child_pos, main_pos) + 1 + end_pos = max(child_pos, main_pos) + + for pos in range(start_pos, end_pos): + between_block = ordered_blocks[pos] + if original_type_by_index[between_block["index"]] != child_type: + return False + + return True + + @staticmethod + def __child_kind(block_type): + if block_type == BlockType.CAPTION: + return "caption" + return "footnote" + + @staticmethod + def __make_child_block(block, block_type): + return MagicModel.__copy_block_fields(block, type=block_type) + + def __sync_layout_det_type(self, block_index, block_type): + layout_det = self.__layout_det_by_index.get(block_index) + if layout_det is not None: + layout_det["type"] = block_type + + def get_page_blocks(self): + return self.page_blocks + + def get_all_image_spans(self): + return self.all_image_spans + + def get_preproc_blocks(self): + return self.preproc_blocks + + def get_discarded_blocks(self): + return self.discarded_blocks + + def get_imgs(self): + return self.image_groups + + def get_tables(self): + return self.table_groups + + def get_charts(self): + return self.chart_groups + + def get_image_blocks(self): + return [ + block for block in self.page_blocks if block["type"] == BlockType.IMAGE + ] + + def get_table_blocks(self): + return [ + block for block in self.page_blocks if block["type"] == BlockType.TABLE + ] + + def get_chart_blocks(self): + return [ + block for block in self.page_blocks if block["type"] == BlockType.CHART + ] diff --git a/mineru/backend/pipeline/pipeline_middle_json_mkcontent.py b/mineru/backend/pipeline/pipeline_middle_json_mkcontent.py new file mode 100644 index 000000000..660064120 --- /dev/null +++ b/mineru/backend/pipeline/pipeline_middle_json_mkcontent.py @@ -0,0 +1,1028 @@ +# Copyright (c) Opendatalab. All rights reserved. +import re +from html import unescape + +from loguru import logger + +from mineru.utils.char_utils import full_to_half_exclude_marks, is_hyphen_at_line_end +from mineru.utils.config_reader import get_latex_delimiter_config +from mineru.backend.pipeline.para_split import ListLineTag +from mineru.utils.enum_class import BlockType, ContentType, ContentTypeV2, MakeMode +from mineru.utils.language import detect_lang +from mineru.backend.utils.markdown_utils import ( + escape_conservative_markdown_text, + escape_text_block_markdown_prefix, +) + + +def make_blocks_to_markdown(paras_of_layout, + mode, + img_buket_path='', + ): + page_markdown = [] + for para_block in paras_of_layout: + para_text = '' + para_type = para_block['type'] + if para_type in [ + BlockType.TEXT, + BlockType.LIST, + BlockType.INDEX, + BlockType.ABSTRACT, + BlockType.REF_TEXT + ]: + para_text = merge_para_with_text(para_block) + elif para_type == BlockType.TITLE: + title_level = get_title_level(para_block) + para_text = f'{"#" * title_level} {merge_para_with_text(para_block)}' + elif para_type == BlockType.INTERLINE_EQUATION: + if len(para_block['lines']) == 0 or len(para_block['lines'][0]['spans']) == 0: + continue + if para_block['lines'][0]['spans'][0].get('content', ''): + para_text = merge_para_with_text(para_block) + else: + para_text = f"![]({img_buket_path}/{para_block['lines'][0]['spans'][0]['image_path']})" + elif para_type == BlockType.SEAL: + if len(para_block['lines']) == 0 or len(para_block['lines'][0]['spans']) == 0: + continue + para_text = f"![]({img_buket_path}/{para_block['lines'][0]['spans'][0]['image_path']})" + if para_block['lines'][0]['spans'][0].get('content', []): + content = " ".join(para_block['lines'][0]['spans'][0]['content']) + para_text += f" \n{content}" + elif para_type == BlockType.IMAGE: + if mode == MakeMode.NLP_MD: + continue + elif mode == MakeMode.MM_MD: + para_text = merge_visual_blocks_to_markdown(para_block, img_buket_path) + elif para_type == BlockType.CHART: + if mode == MakeMode.NLP_MD: + continue + elif mode == MakeMode.MM_MD: + para_text = merge_visual_blocks_to_markdown(para_block, img_buket_path) + elif para_type == BlockType.TABLE: + if mode == MakeMode.NLP_MD: + continue + elif mode == MakeMode.MM_MD: + para_text = merge_visual_blocks_to_markdown(para_block, img_buket_path) + elif para_type == BlockType.CODE: + para_text = merge_visual_blocks_to_markdown(para_block) + + if para_text.strip() == '': + continue + else: + page_markdown.append(para_text.strip()) + + return page_markdown + + +def merge_visual_blocks_to_markdown(para_block, img_buket_path=''): + # 将 image/table/chart/code 这类视觉块的子 block 按阅读顺序拼接成 markdown。 + # 这里不再写死 caption/body/footnote 的优先级,而是先展开成 segment, + # 再根据 markdown_line / html_block 两类片段决定分隔方式。 + rendered_segments = [] + + for block in get_blocks_in_index_order(para_block.get('blocks', [])): + render_block = _inherit_parent_code_render_metadata(block, para_block) + rendered_segments.extend(render_visual_block_segments(render_block, img_buket_path)) + + para_text = '' + prev_segment_kind = None + for segment_text, segment_kind in rendered_segments: + if para_text: + para_text += get_visual_block_separator(prev_segment_kind, segment_kind) + para_text += segment_text + prev_segment_kind = segment_kind + + return para_text + + +def get_blocks_in_index_order(blocks): + # 按 middle json 中的 index 排序子 block; + # 如果 index 缺失,则退化为保持原始顺序。 + return [ + block + for _, block in sorted( + enumerate(blocks), + key=lambda item: (item[1].get('index', float('inf')), item[0]), + ) + ] + + +def _inherit_parent_code_render_metadata(block, parent_block): + # pipeline_magic_model 会把 code_body 的 sub_type/guess_lang 提升到父 code block。 + # markdown 渲染 code_body 时需要把这两个字段临时透传回来,但不能修改原始输入。 + if block.get('type') != BlockType.CODE_BODY: + return block + if parent_block.get('type') != BlockType.CODE: + return block + + needs_sub_type = 'sub_type' not in block and 'sub_type' in parent_block + needs_guess_lang = 'guess_lang' not in block and 'guess_lang' in parent_block + if not needs_sub_type and not needs_guess_lang: + return block + + render_block = dict(block) + if needs_sub_type: + render_block['sub_type'] = parent_block['sub_type'] + if needs_guess_lang: + render_block['guess_lang'] = parent_block['guess_lang'] + return render_block + + +def render_visual_block_segments(block, img_buket_path=''): + # 将单个视觉子 block 渲染成一个或多个 segment。 + # 文本类子块统一输出 markdown_line; + # table 的 html 输出为 html_block,供后续决定是否需要空行隔开。 + block_type = block['type'] + + if block_type in [ + BlockType.IMAGE_CAPTION, + BlockType.IMAGE_FOOTNOTE, + BlockType.TABLE_CAPTION, + BlockType.TABLE_FOOTNOTE, + BlockType.CODE_BODY, + BlockType.CODE_CAPTION, + BlockType.CODE_FOOTNOTE, + BlockType.CHART_CAPTION, + BlockType.CHART_FOOTNOTE, + ]: + block_text = merge_para_with_text(block) + if block_text.strip(): + return [(block_text, 'markdown_line')] + return [] + + if block_type == BlockType.IMAGE_BODY: + return [ + (f"![]({img_buket_path}/{span['image_path']})", 'markdown_line') + for line in block['lines'] + for span in line['spans'] + if span['type'] == ContentType.IMAGE and span.get('image_path', '') + ] + + if block_type == BlockType.CHART_BODY: + return [ + (f"![]({img_buket_path}/{span['image_path']})", 'markdown_line') + for line in block['lines'] + for span in line['spans'] + if span['type'] == ContentType.CHART and span.get('image_path', '') + ] + + if block_type == BlockType.TABLE_BODY: + rendered_segments = [] + for line in block['lines']: + for span in line['spans']: + if span['type'] != ContentType.TABLE: + continue + if span.get('html', ''): + rendered_segments.append(( + _format_embedded_html(span['html'], img_buket_path), + 'html_block', + )) + elif span.get('image_path', ''): + rendered_segments.append((f"![]({img_buket_path}/{span['image_path']})", 'markdown_line')) + return rendered_segments + + return [] + + +def get_visual_block_separator(prev_segment_kind, current_segment_kind): + # 根据前后 segment 类型决定分隔符: + # 1. 普通 markdown 行之间用 hard break(" \\n") + # 2. 进入 html block 前只换一行 + # 3. html block 后必须留空行,否则后续文本仍会被当作 html 块内容 + if prev_segment_kind == 'html_block': + # Raw HTML blocks need a blank line after them, otherwise the following + # markdown text is still treated as part of the HTML block. + return '\n\n' + if current_segment_kind == 'html_block': + return '\n' + return ' \n' + + +latex_delimiters_config = get_latex_delimiter_config() + +default_delimiters = { + 'display': {'left': '$$', 'right': '$$'}, + 'inline': {'left': '$', 'right': '$'} +} + +delimiters = latex_delimiters_config if latex_delimiters_config else default_delimiters + +display_left_delimiter = delimiters['display']['left'] +display_right_delimiter = delimiters['display']['right'] +inline_left_delimiter = delimiters['inline']['left'] +inline_right_delimiter = delimiters['inline']['right'] + +CJK_LANGS = {'zh', 'ja', 'ko'} + + +def _prefix_table_img_src(html, img_buket_path): + """Prefix non-data image sources in table HTML with img_buket_path.""" + if not html or not img_buket_path: + return html + + return re.sub( + r'src="(?!data:)([^"]+)"', + lambda match: f'src="{img_buket_path}/{match.group(1)}"', + html, + ) + + +def _replace_eq_tags_in_table_html(html): + """Replace ... tags in table HTML with inline math delimiters.""" + if not html: + return html + + return re.sub( + r'(.*?)', + lambda match: ( + f" {inline_left_delimiter}{unescape(match.group(1))}{inline_right_delimiter} " + ), + html, + flags=re.DOTALL, + ) + + +def _format_embedded_html(html, img_buket_path): + """Normalize embedded table HTML for markdown/content outputs.""" + return _replace_eq_tags_in_table_html(_prefix_table_img_src(html, img_buket_path)) + + +def merge_para_with_text(para_block): + if _is_fenced_code_block(para_block): + code_text = _merge_para_text( + para_block, + escape_markdown=False, + list_line_break='\n', + ) + if not code_text: + return '' + code_text = '\n'.join(line.rstrip() for line in code_text.split('\n')) + guess_lang = para_block.get('guess_lang', 'txt') or 'txt' + return f"```{guess_lang}\n{code_text}\n```" + + para_text = _merge_para_text(para_block) + if para_block.get('type') == BlockType.TEXT: + para_text = escape_text_block_markdown_prefix(para_text) + return para_text + + +def _merge_para_text(para_block, escape_markdown=True, list_line_break=' \n'): + # 将普通文本段落 block 渲染成 markdown 字符串。 + # 处理流程分为三层: + # 1. 先收集文本内容做语言检测 + # 2. 再把每个 span 渲染成 markdown 片段 + # 3. 最后按语言和上下文决定 span 之间如何补空格/换行 + block_lang = detect_lang(_collect_text_for_lang_detection(para_block)) + para_parts = [] + + for line_idx, line in enumerate(para_block['lines']): + line_prefix = _line_prefix(line_idx, line, list_line_break) + if line_prefix: + para_parts.append(line_prefix) + + for span_idx, span in enumerate(line['spans']): + rendered_span = _render_span(span, escape_markdown=escape_markdown) + if rendered_span is None: + continue + + span_type, content = rendered_span + content, suffix = _join_rendered_span( + para_block, + block_lang, + line, + line_idx, + span_idx, + span_type, + content, + ) + para_parts.append(content) + if suffix: + para_parts.append(suffix) + + return ''.join(para_parts).rstrip() + + +def _is_fenced_code_block(para_block): + return ( + para_block.get('type') == BlockType.CODE_BODY + and para_block.get('sub_type') == BlockType.CODE + ) + + +def _collect_text_for_lang_detection(para_block): + # 只收集 TEXT span 的内容,用于语言检测。 + # 这里会先做全角转半角,但不会修改原始输入数据。 + block_text_parts = [] + for line in para_block['lines']: + for span in line['spans']: + if span['type'] == ContentType.TEXT: + block_text_parts.append(_normalize_text_content(span.get('content', ''))) + return ''.join(block_text_parts) + + +def _normalize_text_content(content): + # 对原始文本做统一归一化,当前只负责全角转半角。 + # 单独拆出来是为了让语言检测和渲染阶段复用同一套文本预处理。 + return full_to_half_exclude_marks(content or '') + + +def _render_span(span, escape_markdown=True): + # 将单个 span 渲染成 markdown 片段。 + # 这里只负责“渲染成什么文本”,不决定后面是否补空格。 + span_type = span['type'] + content = '' + + if span_type == ContentType.TEXT: + content = _normalize_text_content(span.get('content', '')) + if escape_markdown: + content = escape_special_markdown_char(content) + elif span_type == ContentType.INLINE_EQUATION: + if span.get('content', ''): + content = f"{inline_left_delimiter}{span['content']}{inline_right_delimiter}" + elif span_type == ContentType.INTERLINE_EQUATION: + if span.get('content', ''): + content = f"\n{display_left_delimiter}\n{span['content']}\n{display_right_delimiter}\n" + else: + return None + + content = content.strip() + if not content: + return None + + return span_type, content + + +def _join_rendered_span(para_block, block_lang, line, line_idx, span_idx, span_type, content): + # 根据语言和上下文决定当前 span 后面的分隔符。 + # 这里集中处理: + # 1. CJK 与西文的空格差异 + # 2. 西文行尾连字符是否需要跨行合并 + # 3. 独立公式是否作为块内容直接插入 + if span_type == ContentType.INTERLINE_EQUATION: + return content, '' + + is_last_span = span_idx == len(line['spans']) - 1 + + if block_lang in CJK_LANGS: + if is_last_span and span_type != ContentType.INLINE_EQUATION: + return content, '' + return content, ' ' + + if span_type not in [ContentType.TEXT, ContentType.INLINE_EQUATION]: + return content, '' + + if ( + is_last_span + and span_type == ContentType.TEXT + and is_hyphen_at_line_end(content) + ): + if _next_line_starts_with_lowercase_text(para_block, line_idx): + return content[:-1], '' + return content, '' + + return content, ' ' + + +def _line_prefix(line_idx, line, list_line_break=' \n'): + # 处理进入新 list item 前的 block 级换行。 + # 这里保留历史语义:list 起始行前插入一个 hard break。 + if line_idx >= 1 and line.get(ListLineTag.IS_LIST_START_LINE, False): + return list_line_break + return '' + + +def _next_line_starts_with_lowercase_text(para_block, line_idx): + # 判断下一行是否以小写英文文本开头。 + # 这个条件用于决定西文行尾的连字符是否应与下一行合并。 + if line_idx + 1 >= len(para_block['lines']): + return False + + next_line_spans = para_block['lines'][line_idx + 1].get('spans') + if not next_line_spans: + return False + + next_span = next_line_spans[0] + if next_span.get('type') != ContentType.TEXT: + return False + + next_content = _normalize_text_content(next_span.get('content', '')) + return bool(next_content) and next_content[0].islower() + + +def merge_adjacent_ref_text_blocks_for_content(para_blocks): + merged_blocks = [] + ref_group = [] + + def flush_ref_group(): + nonlocal ref_group + if not ref_group: + return + if len(ref_group) == 1: + merged_blocks.append(ref_group[0]) + else: + merged_blocks.append({ + 'type': BlockType.REF_TEXT, + 'blocks': list(ref_group), + 'bbox': ref_group[0].get('bbox'), + }) + ref_group = [] + + for para_block in para_blocks or []: + if para_block.get('type') == BlockType.REF_TEXT: + ref_group.append(para_block) + continue + + flush_ref_group() + merged_blocks.append(para_block) + + flush_ref_group() + return merged_blocks + + +def _build_bbox(para_bbox, page_size): + if not para_bbox or not page_size: + return None + + page_width, page_height = page_size + x0, y0, x1, y1 = para_bbox + return [ + int(x0 * 1000 / page_width), + int(y0 * 1000 / page_height), + int(x1 * 1000 / page_width), + int(y1 * 1000 / page_height), + ] + + +def _get_seal_span(para_block): + for line in para_block.get('lines', []): + for span in line.get('spans', []): + if span.get('type') == ContentType.SEAL: + return span + return None + + +def _get_seal_text(para_block): + seal_span = _get_seal_span(para_block) + if not seal_span: + return '' + + content = seal_span.get('content', '') + if isinstance(content, list): + return ' '.join(str(item) for item in content if str(item).strip()) + if isinstance(content, str): + return content.strip() + return '' + + +def _get_ref_text_item_blocks(para_block): + return para_block.get('blocks') or [para_block] + + +def _split_list_item_blocks(para_block): + item_blocks = [] + current_lines = [] + + for line_idx, line in enumerate(para_block.get('lines', [])): + if line_idx > 0 and line.get(ListLineTag.IS_LIST_START_LINE, False) and current_lines: + item_blocks.append({ + 'type': BlockType.TEXT, + 'lines': current_lines, + }) + current_lines = [] + current_lines.append(line) + + if current_lines: + item_blocks.append({ + 'type': BlockType.TEXT, + 'lines': current_lines, + }) + + return item_blocks + + +def _get_body_data(para_block): + def get_data_from_spans(lines): + for line in lines: + for span in line.get('spans', []): + span_type = span.get('type') + if span_type == ContentType.TABLE: + return span.get('image_path', ''), span.get('html', '') + if span_type == ContentType.CHART: + return span.get('image_path', ''), span.get('content', '') + if span_type == ContentType.IMAGE: + return span.get('image_path', ''), '' + if span_type == ContentType.INTERLINE_EQUATION: + return span.get('image_path', ''), span.get('content', '') + return '', '' + + if 'blocks' in para_block: + for block in para_block['blocks']: + block_type = block.get('type') + if block_type in [ + BlockType.IMAGE_BODY, + BlockType.TABLE_BODY, + BlockType.CHART_BODY, + BlockType.CODE_BODY, + ]: + result = get_data_from_spans(block.get('lines', [])) + if result != ('', '') or block_type == BlockType.CHART_BODY: + return result + return '', '' + + return get_data_from_spans(para_block.get('lines', [])) + + +def merge_para_with_text_v2(para_block): + block_lang = detect_lang(_collect_text_for_lang_detection(para_block)) + para_content = [] + para_type = para_block.get('type') + + for line_idx, line in enumerate(para_block.get('lines', [])): + for span_idx, span in enumerate(line.get('spans', [])): + span_type = span.get('type') + + if span_type == ContentType.TEXT: + content = _normalize_text_content(span.get('content', '')) + if not content.strip(): + continue + + output_type = ( + ContentTypeV2.SPAN_PHONETIC + if para_type == BlockType.PHONETIC + else ContentTypeV2.SPAN_TEXT + ) + is_last_span = span_idx == len(line['spans']) - 1 + + if block_lang in CJK_LANGS: + rendered_content = content if is_last_span else f"{content} " + else: + if ( + is_last_span + and is_hyphen_at_line_end(content) + and _next_line_starts_with_lowercase_text(para_block, line_idx) + ): + rendered_content = content[:-1] + elif is_last_span and is_hyphen_at_line_end(content): + rendered_content = content + else: + rendered_content = f"{content} " + + if para_content and para_content[-1]['type'] == output_type: + para_content[-1]['content'] += rendered_content + else: + para_content.append({ + 'type': output_type, + 'content': rendered_content, + }) + elif span_type == ContentType.INLINE_EQUATION: + content = span.get('content', '').strip() + if content: + para_content.append({ + 'type': ContentTypeV2.SPAN_EQUATION_INLINE, + 'content': content, + }) + + if para_content and para_content[-1]['type'] in [ + ContentTypeV2.SPAN_TEXT, + ContentTypeV2.SPAN_PHONETIC, + ]: + para_content[-1]['content'] = para_content[-1]['content'].rstrip() + + return para_content + + +def make_blocks_to_content_list(para_block, img_buket_path, page_idx, page_size): + para_type = para_block['type'] + para_content = None + if para_type in [ + BlockType.TEXT, + BlockType.INDEX, + BlockType.LIST, + BlockType.ABSTRACT, + ]: + para_content = { + 'type': ContentType.TEXT, + 'text': merge_para_with_text(para_block), + } + elif para_type in [ + BlockType.HEADER, + BlockType.FOOTER, + BlockType.PAGE_NUMBER, + BlockType.ASIDE_TEXT, + BlockType.PAGE_FOOTNOTE, + ]: + para_content = { + 'type': para_type, + 'text': merge_para_with_text(para_block), + } + elif para_type == BlockType.REF_TEXT: + para_content = { + 'type': BlockType.LIST, + 'sub_type': BlockType.REF_TEXT, + 'list_items': [], + } + for block in _get_ref_text_item_blocks(para_block): + item_text = merge_para_with_text(block) + if item_text.strip(): + para_content['list_items'].append(item_text) + elif para_type == BlockType.TITLE: + para_content = { + 'type': ContentType.TEXT, + 'text': merge_para_with_text(para_block), + } + title_level = get_title_level(para_block) + if title_level != 0: + para_content['text_level'] = title_level + elif para_type == BlockType.INTERLINE_EQUATION: + if len(para_block['lines']) == 0 or len(para_block['lines'][0]['spans']) == 0: + return None + para_content = { + 'type': ContentType.EQUATION, + 'img_path': f"{img_buket_path}/{para_block['lines'][0]['spans'][0].get('image_path', '')}", + } + if para_block['lines'][0]['spans'][0].get('content', ''): + para_content['text'] = merge_para_with_text(para_block) + para_content['text_format'] = 'latex' + elif para_type == BlockType.SEAL: + seal_span = _get_seal_span(para_block) + if not seal_span: + return None + para_content = { + 'type': ContentType.SEAL, + 'img_path': f"{img_buket_path}/{seal_span.get('image_path', '')}", + 'text': _get_seal_text(para_block), + } + elif para_type == BlockType.IMAGE: + para_content = {'type': ContentType.IMAGE, 'img_path': '', BlockType.IMAGE_CAPTION: [], BlockType.IMAGE_FOOTNOTE: []} + for block in para_block['blocks']: + if block['type'] == BlockType.IMAGE_BODY: + for line in block['lines']: + for span in line['spans']: + if span['type'] == ContentType.IMAGE: + if span.get('image_path', ''): + para_content['img_path'] = f"{img_buket_path}/{span['image_path']}" + if block['type'] == BlockType.IMAGE_CAPTION: + para_content[BlockType.IMAGE_CAPTION].append(merge_para_with_text(block)) + if block['type'] == BlockType.IMAGE_FOOTNOTE: + para_content[BlockType.IMAGE_FOOTNOTE].append(merge_para_with_text(block)) + elif para_type == BlockType.TABLE: + para_content = {'type': ContentType.TABLE, 'img_path': '', BlockType.TABLE_CAPTION: [], BlockType.TABLE_FOOTNOTE: []} + for block in para_block['blocks']: + if block['type'] == BlockType.TABLE_BODY: + for line in block['lines']: + for span in line['spans']: + if span['type'] == ContentType.TABLE: + if span.get('html', ''): + para_content[BlockType.TABLE_BODY] = _format_embedded_html( + span['html'], + img_buket_path, + ) + + if span.get('image_path', ''): + para_content['img_path'] = f"{img_buket_path}/{span['image_path']}" + + if block['type'] == BlockType.TABLE_CAPTION: + para_content[BlockType.TABLE_CAPTION].append(merge_para_with_text(block)) + if block['type'] == BlockType.TABLE_FOOTNOTE: + para_content[BlockType.TABLE_FOOTNOTE].append(merge_para_with_text(block)) + elif para_type == BlockType.CHART: + para_content = { + 'type': ContentType.CHART, + 'img_path': '', + 'content': '', + BlockType.CHART_CAPTION: [], + BlockType.CHART_FOOTNOTE: [], + } + for block in para_block.get('blocks', []): + if block['type'] == BlockType.CHART_BODY: + for line in block['lines']: + for span in line['spans']: + if span['type'] == ContentType.CHART and span.get('image_path', ''): + para_content['img_path'] = f"{img_buket_path}/{span['image_path']}" + if block['type'] == BlockType.CHART_CAPTION: + para_content[BlockType.CHART_CAPTION].append(merge_para_with_text(block)) + if block['type'] == BlockType.CHART_FOOTNOTE: + para_content[BlockType.CHART_FOOTNOTE].append(merge_para_with_text(block)) + elif para_type == BlockType.CODE: + para_content = { + 'type': BlockType.CODE, + 'sub_type': para_block['sub_type'], + BlockType.CODE_CAPTION: [], + BlockType.CODE_FOOTNOTE: [], + } + for block in para_block.get('blocks', []): + render_block = _inherit_parent_code_render_metadata(block, para_block) + if block['type'] == BlockType.CODE_BODY: + para_content[BlockType.CODE_BODY] = merge_para_with_text(render_block) + if block['type'] == BlockType.CODE_CAPTION: + para_content[BlockType.CODE_CAPTION].append(merge_para_with_text(block)) + if block['type'] == BlockType.CODE_FOOTNOTE: + para_content[BlockType.CODE_FOOTNOTE].append(merge_para_with_text(block)) + + if not para_content: + return None + + bbox = _build_bbox(para_block.get('bbox'), page_size) + if bbox: + para_content['bbox'] = bbox + para_content['page_idx'] = page_idx + + return para_content + + +def make_blocks_to_content_list_v2(para_block, img_buket_path, page_size): + para_type = para_block['type'] + para_content = None + + if para_type in [ + BlockType.HEADER, + BlockType.FOOTER, + BlockType.ASIDE_TEXT, + BlockType.PAGE_NUMBER, + BlockType.PAGE_FOOTNOTE, + ]: + if para_type == BlockType.HEADER: + content_type = ContentTypeV2.PAGE_HEADER + elif para_type == BlockType.FOOTER: + content_type = ContentTypeV2.PAGE_FOOTER + elif para_type == BlockType.ASIDE_TEXT: + content_type = ContentTypeV2.PAGE_ASIDE_TEXT + elif para_type == BlockType.PAGE_NUMBER: + content_type = ContentTypeV2.PAGE_NUMBER + elif para_type == BlockType.PAGE_FOOTNOTE: + content_type = ContentTypeV2.PAGE_FOOTNOTE + else: + raise ValueError(f"Unknown para_type: {para_type}") + para_content = { + 'type': content_type, + 'content': { + f"{content_type}_content": merge_para_with_text_v2(para_block), + }, + } + elif para_type == BlockType.TITLE: + title_level = get_title_level(para_block) + if title_level != 0: + para_content = { + 'type': ContentTypeV2.TITLE, + 'content': { + 'title_content': merge_para_with_text_v2(para_block), + 'level': title_level, + }, + } + else: + para_content = { + 'type': ContentTypeV2.PARAGRAPH, + 'content': { + 'paragraph_content': merge_para_with_text_v2(para_block), + }, + } + elif para_type in [ + BlockType.TEXT, + BlockType.ABSTRACT, + ]: + para_content = { + 'type': ContentTypeV2.PARAGRAPH, + 'content': { + 'paragraph_content': merge_para_with_text_v2(para_block), + }, + } + elif para_type == BlockType.INTERLINE_EQUATION: + image_path, math_content = _get_body_data(para_block) + para_content = { + 'type': ContentTypeV2.EQUATION_INTERLINE, + 'content': { + 'math_content': math_content, + 'math_type': 'latex', + 'image_source': {'path': f"{img_buket_path}/{image_path}"}, + }, + } + elif para_type == BlockType.IMAGE: + image_caption = [] + image_footnote = [] + image_path, _ = _get_body_data(para_block) + for block in para_block.get('blocks', []): + if block['type'] == BlockType.IMAGE_CAPTION: + image_caption.extend(merge_para_with_text_v2(block)) + if block['type'] == BlockType.IMAGE_FOOTNOTE: + image_footnote.extend(merge_para_with_text_v2(block)) + para_content = { + 'type': ContentTypeV2.IMAGE, + 'content': { + 'image_source': {'path': f"{img_buket_path}/{image_path}"}, + 'image_caption': image_caption, + 'image_footnote': image_footnote, + }, + } + elif para_type == BlockType.TABLE: + table_caption = [] + table_footnote = [] + image_path, html = _get_body_data(para_block) + table_html = _format_embedded_html(html, img_buket_path) + table_nest_level = 2 if table_html.count(' 1 else 1 + if 'colspan' in table_html or 'rowspan' in table_html or table_nest_level > 1: + table_type = ContentTypeV2.TABLE_COMPLEX + else: + table_type = ContentTypeV2.TABLE_SIMPLE + for block in para_block.get('blocks', []): + if block['type'] == BlockType.TABLE_CAPTION: + table_caption.extend(merge_para_with_text_v2(block)) + if block['type'] == BlockType.TABLE_FOOTNOTE: + table_footnote.extend(merge_para_with_text_v2(block)) + para_content = { + 'type': ContentTypeV2.TABLE, + 'content': { + 'image_source': {'path': f"{img_buket_path}/{image_path}"}, + 'table_caption': table_caption, + 'table_footnote': table_footnote, + 'html': table_html, + 'table_type': table_type, + 'table_nest_level': table_nest_level, + }, + } + elif para_type == BlockType.CHART: + chart_caption = [] + chart_footnote = [] + image_path, _ = _get_body_data(para_block) + for block in para_block.get('blocks', []): + if block['type'] == BlockType.CHART_CAPTION: + chart_caption.extend(merge_para_with_text_v2(block)) + if block['type'] == BlockType.CHART_FOOTNOTE: + chart_footnote.extend(merge_para_with_text_v2(block)) + para_content = { + 'type': ContentTypeV2.CHART, + 'content': { + 'image_source': {'path': f"{img_buket_path}/{image_path}"}, + 'content': '', + 'chart_caption': chart_caption, + 'chart_footnote': chart_footnote, + }, + } + elif para_type == BlockType.CODE: + code_caption = [] + code_footnote = [] + code_content = [] + for block in para_block.get('blocks', []): + if block['type'] == BlockType.CODE_CAPTION: + code_caption.extend(merge_para_with_text_v2(block)) + if block['type'] == BlockType.CODE_FOOTNOTE: + code_footnote.extend(merge_para_with_text_v2(block)) + if block['type'] == BlockType.CODE_BODY: + code_content = merge_para_with_text_v2(block) + + sub_type = para_block['sub_type'] + if sub_type == BlockType.CODE: + para_content = { + 'type': ContentTypeV2.CODE, + 'content': { + 'code_caption': code_caption, + 'code_content': code_content, + 'code_footnote': code_footnote, + 'code_language': para_block.get('guess_lang', 'txt'), + }, + } + elif sub_type == BlockType.ALGORITHM: + para_content = { + 'type': ContentTypeV2.ALGORITHM, + 'content': { + 'algorithm_caption': code_caption, + 'algorithm_content': code_content, + 'algorithm_footnote': code_footnote, + }, + } + else: + raise ValueError(f"Unknown code sub_type: {sub_type}") + elif para_type == BlockType.REF_TEXT: + list_items = [] + for block in _get_ref_text_item_blocks(para_block): + item_content = merge_para_with_text_v2(block) + if item_content: + list_items.append({ + 'item_type': 'text', + 'item_content': item_content, + }) + para_content = { + 'type': ContentTypeV2.LIST, + 'content': { + 'list_type': ContentTypeV2.LIST_REF, + 'list_items': list_items, + }, + } + elif para_type == BlockType.LIST: + list_items = [] + for block in _split_list_item_blocks(para_block): + item_content = merge_para_with_text_v2(block) + if item_content: + list_items.append({ + 'item_type': 'text', + 'item_content': item_content, + }) + para_content = { + 'type': ContentTypeV2.LIST, + 'content': { + 'list_type': ContentTypeV2.LIST_TEXT, + 'attribute': para_block.get('attribute', 'unordered'), + 'list_items': list_items, + }, + } + elif para_type == BlockType.INDEX: + list_items = [] + for block in _split_list_item_blocks(para_block): + item_content = merge_para_with_text_v2(block) + if item_content: + list_items.append({ + 'item_type': 'text', + 'item_content': item_content, + }) + para_content = { + 'type': ContentTypeV2.INDEX, + 'content': { + 'list_type': ContentTypeV2.LIST_TEXT, + 'list_items': list_items, + }, + } + elif para_type == BlockType.SEAL: + seal_span = _get_seal_span(para_block) + if not seal_span: + return None + seal_text = _get_seal_text(para_block) + para_content = { + 'type': ContentTypeV2.SEAL, + 'content': { + 'image_source': { + 'path': f"{img_buket_path}/{seal_span.get('image_path', '')}", + }, + 'seal_content': ( + [{'type': ContentTypeV2.SPAN_TEXT, 'content': seal_text}] + if seal_text else [] + ), + }, + } + + if not para_content: + return None + + bbox = _build_bbox(para_block.get('bbox'), page_size) + if bbox: + para_content['bbox'] = bbox + + return para_content + + +def union_make(pdf_info_dict: list, + make_mode: str, + img_buket_path: str = '', + ): + output_content = [] + for page_info in pdf_info_dict: + paras_of_layout = page_info.get('para_blocks') + paras_of_discarded = page_info.get('discarded_blocks') + page_idx = page_info.get('page_idx') + page_size = page_info.get('page_size') + if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]: + if not paras_of_layout: + continue + page_markdown = make_blocks_to_markdown(paras_of_layout, make_mode, img_buket_path) + output_content.extend(page_markdown) + elif make_mode == MakeMode.CONTENT_LIST: + para_blocks = merge_adjacent_ref_text_blocks_for_content( + (paras_of_layout or []) + (paras_of_discarded or []) + ) + if not para_blocks: + continue + for para_block in para_blocks: + para_content = make_blocks_to_content_list(para_block, img_buket_path, page_idx, page_size) + if para_content: + output_content.append(para_content) + elif make_mode == MakeMode.CONTENT_LIST_V2: + para_blocks = merge_adjacent_ref_text_blocks_for_content( + (paras_of_layout or []) + (paras_of_discarded or []) + ) + page_contents = [] + if para_blocks: + for para_block in para_blocks: + para_content = make_blocks_to_content_list_v2(para_block, img_buket_path, page_size) + if para_content: + page_contents.append(para_content) + output_content.append(page_contents) + + if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]: + return '\n\n'.join(output_content) + elif make_mode in [MakeMode.CONTENT_LIST, MakeMode.CONTENT_LIST_V2]: + return output_content + else: + logger.error(f"Unsupported make mode: {make_mode}") + return None + + +def get_title_level(block): + title_level = block.get('level', 1) + if title_level < 1: + title_level = 0 + return title_level + + +def escape_special_markdown_char(content): + """ + 转义正文里对markdown语法有特殊意义的字符 + """ + return escape_conservative_markdown_text(content) diff --git a/mineru/backend/utils/__init__.py b/mineru/backend/utils/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/backend/utils/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/backend/utils/html_image_utils.py b/mineru/backend/utils/html_image_utils.py new file mode 100644 index 000000000..979caaa36 --- /dev/null +++ b/mineru/backend/utils/html_image_utils.py @@ -0,0 +1,106 @@ +# Copyright (c) Opendatalab. All rights reserved. +import base64 +import re + +from loguru import logger + +from mineru.utils.enum_class import BlockType, ContentType +from mineru.utils.hash_utils import str_sha256 + + +def _normalize_image_extension(fmt: str) -> str: + normalized = fmt.lower().split("+", 1)[0] + return "jpg" if normalized == "jpeg" else normalized + + +def save_base64_image(b64_data_uri: str, image_writer, page_index: int): + """Persist a data-URI image via image_writer and return a relative path.""" + if not image_writer: + return None + + match = re.match(r"data:image/([^;]+);base64,(.+)", b64_data_uri, re.DOTALL) + if not match: + logger.warning(f"Unrecognized image_base64 format in page {page_index}, skipping.") + return None + + fmt = _normalize_image_extension(match.group(1)) + try: + img_bytes = base64.b64decode(match.group(2)) + except Exception as exc: + logger.warning(f"Failed to decode image_base64 on page {page_index}: {exc}") + return None + + img_path = f"{str_sha256(b64_data_uri)}.{fmt}" + image_writer.write(img_path, img_bytes) + return img_path + + +def replace_inline_base64_img_src(markup: str, image_writer, page_index: int) -> str: + """Replace inline base64 image sources in HTML-like markup with local paths.""" + if not markup or not image_writer or "base64," not in markup: + return markup + + def _replace_src(match, _writer=image_writer, _idx=page_index): + img_path = save_base64_image(match.group(1), _writer, _idx) + if img_path: + return f'src="{img_path}"' + return match.group(0) + + return re.sub( + r'src="(data:image/[^"]+)"', + _replace_src, + markup, + ) + + +def replace_inline_table_images( + blocks: list[dict], + image_writer, + page_index: int, + table_block_type=BlockType.TABLE, + table_body_type=BlockType.TABLE_BODY, + table_span_type=ContentType.TABLE, +) -> None: + """Persist inline base64 images embedded inside table HTML.""" + if not image_writer: + return + + for block in blocks: + if block.get("type") != table_block_type: + continue + + for sub_block in block.get("blocks", []): + if sub_block.get("type") != table_body_type: + continue + + for line in sub_block.get("lines", []): + for span in line.get("spans", []): + if span.get("type") != table_span_type: + continue + span["html"] = replace_inline_base64_img_src( + span.get("html", ""), + image_writer, + page_index, + ) + + +def save_span_image_if_needed( + span: dict, + image_writer, + page_index: int, + source_key: str = "image_base64", + target_key: str = "image_path", +) -> None: + """Persist a span-level base64 image and normalize the target path field.""" + image_base64 = span.get(source_key, "") + if not image_base64: + span.setdefault(target_key, "") + return + + img_path = save_base64_image(image_base64, image_writer, page_index) + if img_path: + span[target_key] = img_path + del span[source_key] + return + + span.setdefault(target_key, "") diff --git a/mineru/backend/utils/markdown_utils.py b/mineru/backend/utils/markdown_utils.py new file mode 100644 index 000000000..296078a50 --- /dev/null +++ b/mineru/backend/utils/markdown_utils.py @@ -0,0 +1,32 @@ +# Copyright (c) Opendatalab. All rights reserved. + +import re + +CONSERVATIVE_MARKDOWN_SPECIAL_CHARS = ("*", "_", "`", "~", "$") +TEXT_BLOCK_MARKDOWN_PREFIX_RE = re.compile( + r"^(?P[ \t]{0,3})(?P#{1,6}|[+-])(?=[ \t])" +) + + +def escape_conservative_markdown_text(content: str) -> str: + """Escape plain-text characters that carry inline Markdown semantics.""" + if not content: + return content + + for char in CONSERVATIVE_MARKDOWN_SPECIAL_CHARS: + content = content.replace(char, "\\" + char) + + return content + + +def escape_text_block_markdown_prefix(content: str) -> str: + """Escape a leading Markdown block marker in an assembled text block.""" + if not content: + return content + + match = TEXT_BLOCK_MARKDOWN_PREFIX_RE.match(content) + if not match: + return content + + marker_start = match.start("marker") + return f"{content[:marker_start]}\\{content[marker_start:]}" diff --git a/mineru/backend/utils/ocr_det_utils.py b/mineru/backend/utils/ocr_det_utils.py new file mode 100644 index 000000000..28f1d69f8 --- /dev/null +++ b/mineru/backend/utils/ocr_det_utils.py @@ -0,0 +1,50 @@ +# Copyright (c) Opendatalab. All rights reserved. + +import cv2 +import numpy as np +from loguru import logger + +from mineru.utils.pdf_image_tools import get_crop_img + +OCR_DET_PADDING = 50 + + +def get_ch_lite_ocr_det_model(): + try: + from mineru.backend.pipeline.model_init import AtomModelSingleton + except Exception as e: + logger.error( + "Failed to import AtomModelSingleton, OCR detection will not work. If you want to use OCR features, " + "please execute `pip install mineru[core]` to install the required packages." + ) + raise e + + atom_model_manager = AtomModelSingleton() + return atom_model_manager.get_atom_model( + atom_model_name='ocr', + ocr_show_log=False, + det_db_box_thresh=0.3, + lang='ch_lite' + ) + + +def detect_ocr_boxes_from_padded_crop(bbox, page_pil_img, scale, ocr_model=None, padding=OCR_DET_PADDING): + if not bbox: + return [], padding + + crop_pil_img = get_crop_img(bbox, page_pil_img, scale) + crop_np_img = np.array(crop_pil_img) + if crop_np_img.size == 0: + return [], padding + + if padding > 0: + crop_np_img = cv2.copyMakeBorder( + crop_np_img, padding, padding, padding, padding, cv2.BORDER_CONSTANT, value=[255, 255, 255] + ) + + crop_img = cv2.cvtColor(crop_np_img, cv2.COLOR_RGB2BGR) + if ocr_model is None: + ocr_model = get_ch_lite_ocr_det_model() + + ocr_det_res = ocr_model.ocr(crop_img, rec=False)[0] + return ocr_det_res or [], padding diff --git a/mineru/backend/utils/office_chart.py b/mineru/backend/utils/office_chart.py new file mode 100644 index 000000000..9c016c235 --- /dev/null +++ b/mineru/backend/utils/office_chart.py @@ -0,0 +1,31 @@ +# Copyright (c) Opendatalab. All rights reserved. +import re +from io import BytesIO + +import pandas as pd + + +def minify_html(html: str) -> str: + """Strip formatting whitespace from HTML while preserving content.""" + if not html: + return html + + html = re.sub(r'>\s+<', '><', html) + html = re.sub(r'\n\s*', '', html) + return html + + +def html_table_from_excel_bytes(excel_bytes: bytes) -> str: + """Convert the first non-empty worksheet in an embedded workbook to HTML.""" + if not excel_bytes: + return "" + + worksheets = pd.read_excel(BytesIO(excel_bytes), sheet_name=None) + for dataframe in worksheets.values(): + if dataframe is None: + continue + if dataframe.empty and len(dataframe.columns) == 0: + continue + return minify_html(dataframe.to_html(index=False, header=True)) + + return "" diff --git a/mineru/backend/utils/office_image.py b/mineru/backend/utils/office_image.py new file mode 100644 index 000000000..57a9f6aab --- /dev/null +++ b/mineru/backend/utils/office_image.py @@ -0,0 +1,116 @@ +# Copyright (c) Opendatalab. All rights reserved. +from PIL import Image, ImageDraw, ImageFont +from loguru import logger + +from mineru.utils.check_sys_env import is_windows_environment +from mineru.utils.pdf_reader import image_to_b64str + + +VECTOR_IMAGE_FORMATS = frozenset({"WMF", "EMF"}) + + +def is_vector_image(pil_image: Image.Image) -> bool: + return (getattr(pil_image, "format", None) or "").upper() in VECTOR_IMAGE_FORMATS + + +def _load_placeholder_font(font_size: int) -> ImageFont.ImageFont: + for font_name in ( + "DejaVuSans.ttf", + "Arial.ttf", + "LiberationSans-Regular.ttf", + ): + try: + return ImageFont.truetype(font_name, font_size) + except OSError: + continue + return ImageFont.load_default() + + +def create_text_placeholder( + size: tuple[int, int], lines: list[str] +) -> Image.Image: + width = max(int(size[0]), 1) + height = max(int(size[1]), 1) + placeholder = Image.new("RGB", (width, height), (240, 240, 240)) + draw = ImageDraw.Draw(placeholder) + + border_width = max(1, min(width, height) // 80) + draw.rectangle( + (0, 0, width - 1, height - 1), + outline=(190, 190, 190), + width=border_width, + ) + + max_text_width = max(width - 16, 1) + max_text_height = max(height - 16, 1) + fallback_text = "WMF/EMF" + text = "\n".join(line for line in lines if line) + if not text: + text = fallback_text + + font = None + spacing = 4 + bbox = None + for font_size in range(max(min(width, height) // 7, 10), 7, -1): + font = _load_placeholder_font(font_size) + spacing = max(2, font_size // 4) + bbox = draw.multiline_textbbox( + (0, 0), text, font=font, spacing=spacing, align="center" + ) + text_width = bbox[2] - bbox[0] + text_height = bbox[3] - bbox[1] + if text_width <= max_text_width and text_height <= max_text_height: + break + else: + text = fallback_text + font = _load_placeholder_font(max(min(width, height) // 5, 10)) + spacing = 2 + bbox = draw.multiline_textbbox( + (0, 0), text, font=font, spacing=spacing, align="center" + ) + + text_width = bbox[2] - bbox[0] + text_height = bbox[3] - bbox[1] + origin = ((width - text_width) / 2, (height - text_height) / 2) + draw.multiline_text( + origin, + text, + fill=(90, 90, 90), + font=font, + spacing=spacing, + align="center", + ) + return placeholder + + +def serialize_vector_image_with_placeholder( + pil_image: Image.Image, image_format_override: str | None = None +) -> str: + image_format = ( + image_format_override or getattr(pil_image, "format", None) or "WMF/EMF" + ).upper() + + if is_windows_environment(): + try: + pil_image.load() + return image_to_b64str(pil_image, image_format="PNG") + except OSError as e: + logger.warning( + f"Failed to render {image_format} image: {e}, size: {pil_image.size}. Using placeholder instead." + ) + placeholder_lines = [ + f"{image_format} placeholder", + "Windows rendering failed", + ] + else: + logger.warning( + f"Skipping {image_format} image on non-Windows environment, size: {pil_image.size}" + ) + placeholder_lines = [ + f"{image_format} placeholder", + "Use Windows to parse", + "the original image", + ] + + placeholder = create_text_placeholder(pil_image.size, placeholder_lines) + return image_to_b64str(placeholder, image_format="JPEG") diff --git a/mineru/backend/utils/para_block_utils.py b/mineru/backend/utils/para_block_utils.py new file mode 100644 index 000000000..84583e16f --- /dev/null +++ b/mineru/backend/utils/para_block_utils.py @@ -0,0 +1,258 @@ +# Copyright (c) Opendatalab. All rights reserved. +import copy + +from mineru.utils.enum_class import BlockType, SplitFlag + + +LINE_STOP_FLAG = ('.', '!', '?', '。', '!', '?', ')', ')', '"', '”', ':', ':', ';', ';') +MERGE_BARRIER_TYPES = { + BlockType.TITLE, + BlockType.INTERLINE_EQUATION, + BlockType.LIST, +} +_CROSS_PAGE_MERGE_KEY = "_cross_page_merge_prev" +_EDGE_TEXT_LINE_HINTS_KEY = "_edge_text_line_hints" + + +def iter_block_spans(block): + for line in block.get("lines", []): + for span in line.get("spans", []): + yield span + + for sub_block in block.get("blocks", []): + yield from iter_block_spans(sub_block) + + +def build_para_blocks_from_preproc(pdf_info_list): + for page_info in pdf_info_list: + page_info["para_blocks"] = copy.deepcopy(page_info.get("preproc_blocks", [])) + + +def merge_para_text_blocks(pdf_info_list, allow_cross_page=False): + ordered_blocks = [] + for page_info in pdf_info_list: + page_idx = page_info.get("page_idx") + for order_idx, block in enumerate(page_info.get("para_blocks", [])): + ordered_blocks.append((page_idx, order_idx, block)) + + for current_index in range(len(ordered_blocks) - 1, -1, -1): + current_page_idx, _, current_block = ordered_blocks[current_index] + if current_block.get("type") != BlockType.TEXT: + continue + if not current_block.get("merge_prev"): + continue + if not _block_has_lines(current_block): + continue + + previous_block = _find_previous_text_block( + ordered_blocks, + current_index, + current_block, + current_page_idx, + allow_cross_page=allow_cross_page, + ) + if previous_block is None: + continue + + previous_page_idx, _, previous_text_block = previous_block + _merge_text_block( + current_block, + previous_text_block, + is_cross_page=current_page_idx != previous_page_idx, + ) + + +def annotate_hybrid_cross_page_merge_prev(pdf_info_list, prefer_edge_line_hints=False): + for page_index in range(1, len(pdf_info_list)): + previous_page_info = pdf_info_list[page_index - 1] + current_page_info = pdf_info_list[page_index] + + previous_text_block = _find_last_page_edge_text_block(previous_page_info) + current_text_block = _find_first_page_edge_text_block(current_page_info) + if previous_text_block is None or current_text_block is None: + continue + + previous_metric_lines = _resolve_metric_lines( + previous_page_info, + previous_text_block, + edge_name="last", + prefer_edge_line_hints=prefer_edge_line_hints, + ) + current_metric_lines = _resolve_metric_lines( + current_page_info, + current_text_block, + edge_name="first", + prefer_edge_line_hints=prefer_edge_line_hints, + ) + if not previous_metric_lines or not current_metric_lines: + continue + + if can_merge_text_blocks( + current_text_block, + previous_text_block, + current_metric_lines=current_metric_lines, + previous_metric_lines=previous_metric_lines, + ): + current_text_block["merge_prev"] = True + current_text_block[_CROSS_PAGE_MERGE_KEY] = True + + +def can_merge_text_blocks(current_block, previous_block, current_metric_lines=None, previous_metric_lines=None): + current_lines = current_block.get("lines", []) + previous_lines = previous_block.get("lines", []) + if not current_lines or not previous_lines: + return False + + current_metric_lines = current_metric_lines or current_lines + previous_metric_lines = previous_metric_lines or previous_lines + if not current_metric_lines or not previous_metric_lines: + return False + + first_metric_line = current_metric_lines[0] + first_line_height = _line_height(first_metric_line) + if first_line_height <= 0: + return False + + current_bbox_fs = _build_bbox_fs(current_block, current_metric_lines) + if abs(current_bbox_fs[0] - first_metric_line["bbox"][0]) >= first_line_height / 2: + return False + + last_metric_line = previous_metric_lines[-1] + last_line_height = _line_height(last_metric_line) + if last_line_height <= 0: + return False + + previous_bbox_fs = _build_bbox_fs(previous_block, previous_metric_lines) + + first_span = _first_span(current_lines[0]) + last_span = _last_span(previous_lines[-1]) + if first_span is None or last_span is None: + return False + + first_content = first_span.get("content", "") + last_content = last_span.get("content", "") + if not first_content: + return False + + current_block_width = current_block["bbox"][2] - current_block["bbox"][0] + previous_block_width = previous_block["bbox"][2] - previous_block["bbox"][0] + min_block_width = min(current_block_width, previous_block_width) + if min_block_width <= 0: + return False + + if abs(previous_bbox_fs[2] - last_metric_line["bbox"][2]) >= last_line_height: + return False + if last_content.endswith(LINE_STOP_FLAG): + return False + if abs(current_block_width - previous_block_width) >= min_block_width: + return False + if first_content[0].isdigit() or first_content[0].isupper(): + return False + if current_block["bbox"][1] >= previous_block["bbox"][3]: + return False + if len(current_metric_lines) <= 1 and len(previous_metric_lines) <= 1: + return False + + return True + + +def cleanup_internal_para_block_metadata(pdf_info_list): + for page_info in pdf_info_list: + page_info.pop(_EDGE_TEXT_LINE_HINTS_KEY, None) + for block in page_info.get("para_blocks", []): + block.pop(_CROSS_PAGE_MERGE_KEY, None) + + +def edge_text_line_hints_key(): + return _EDGE_TEXT_LINE_HINTS_KEY + + +def _find_previous_text_block(ordered_blocks, current_index, current_block, current_page_idx, allow_cross_page): + cross_page_allowed = allow_cross_page and current_block.get(_CROSS_PAGE_MERGE_KEY, False) + + for previous_index in range(current_index - 1, -1, -1): + previous_page_idx, _, previous_block = ordered_blocks[previous_index] + if previous_page_idx != current_page_idx and not cross_page_allowed: + return None + + previous_type = previous_block.get("type") + if previous_type in MERGE_BARRIER_TYPES: + return None + if previous_type != BlockType.TEXT: + continue + return ordered_blocks[previous_index] + + return None + + +def _find_first_page_edge_text_block(page_info): + for block in page_info.get("para_blocks", []): + block_type = block.get("type") + if block_type in MERGE_BARRIER_TYPES: + return None + if block_type == BlockType.TEXT and _block_has_lines(block): + return block + return None + + +def _find_last_page_edge_text_block(page_info): + for block in reversed(page_info.get("para_blocks", [])): + block_type = block.get("type") + if block_type in MERGE_BARRIER_TYPES: + return None + if block_type == BlockType.TEXT and _block_has_lines(block): + return block + return None + + +def _resolve_metric_lines(page_info, block, edge_name, prefer_edge_line_hints): + if prefer_edge_line_hints: + edge_line_hints = page_info.get(_EDGE_TEXT_LINE_HINTS_KEY, {}) + edge_hint = edge_line_hints.get(edge_name) + if edge_hint and edge_hint.get("index") == block.get("index"): + return edge_hint.get("lines", []) + return [] + return block.get("lines", []) + + +def _merge_text_block(current_block, previous_block, is_cross_page): + if is_cross_page: + for line in current_block.get("lines", []): + for span in line.get("spans", []): + span[SplitFlag.CROSS_PAGE] = True + + previous_block.setdefault("lines", []).extend(current_block.get("lines", [])) + current_block["lines"] = [] + current_block[SplitFlag.LINES_DELETED] = True + + +def _line_height(line): + bbox = line.get("bbox") + if not bbox: + return 0 + return bbox[3] - bbox[1] + + +def _build_bbox_fs(block, lines): + if lines: + return [ + min(line["bbox"][0] for line in lines), + min(line["bbox"][1] for line in lines), + max(line["bbox"][2] for line in lines), + max(line["bbox"][3] for line in lines), + ] + return list(block.get("bbox", [])) + + +def _block_has_lines(block): + return any(line.get("spans") for line in block.get("lines", [])) + + +def _first_span(line): + spans = line.get("spans", []) + return spans[0] if spans else None + + +def _last_span(line): + spans = line.get("spans", []) + return spans[-1] if spans else None diff --git a/mineru/backend/utils/runtime_utils.py b/mineru/backend/utils/runtime_utils.py new file mode 100644 index 000000000..43f677436 --- /dev/null +++ b/mineru/backend/utils/runtime_utils.py @@ -0,0 +1,46 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import time + +from loguru import logger + +from mineru.utils.table_merge import merge_table + + +def cross_page_table_merge(pdf_info: list[dict]): + """Merge tables that span across multiple pages in a PDF document. + + Args: + pdf_info (list[dict]): A list of dictionaries containing information about each page in the PDF. + + Returns: + None + """ + is_merge_table = os.getenv('MINERU_TABLE_MERGE_ENABLE', 'true') + if is_merge_table.lower() in ['true', '1', 'yes']: + merge_table(pdf_info) + elif is_merge_table.lower() in ['false', '0', 'no']: + pass + else: + logger.warning(f'unknown MINERU_TABLE_MERGE_ENABLE config: {is_merge_table}, pass') + pass + + +def exclude_progress_bar_idle_time(progress_bar, idle_since: float | None, now: float | None = None): + """Exclude non-processing idle time from a reused tqdm progress bar.""" + if progress_bar is None or idle_since is None: + return + + if now is None: + now = time.time() + + idle_duration = now - idle_since + if idle_duration <= 0: + return + + if hasattr(progress_bar, "start_t"): + progress_bar.start_t += idle_duration + if hasattr(progress_bar, "last_print_t"): + progress_bar.last_print_t = now + if hasattr(progress_bar, "last_print_n") and hasattr(progress_bar, "n"): + progress_bar.last_print_n = progress_bar.n diff --git a/mineru/backend/vlm/__init__.py b/mineru/backend/vlm/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/backend/vlm/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/backend/vlm/model_output_to_middle_json.py b/mineru/backend/vlm/model_output_to_middle_json.py new file mode 100644 index 000000000..78ba54fbc --- /dev/null +++ b/mineru/backend/vlm/model_output_to_middle_json.py @@ -0,0 +1,162 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import time + +import numpy as np +from loguru import logger +from tqdm import tqdm + +from mineru.backend.utils.html_image_utils import replace_inline_table_images +from mineru.backend.utils.para_block_utils import ( + build_para_blocks_from_preproc, + cleanup_internal_para_block_metadata, + merge_para_text_blocks, +) +from mineru.backend.utils.runtime_utils import cross_page_table_merge +from mineru.backend.vlm.vlm_magic_model import MagicModel +from mineru.utils.config_reader import get_table_enable, get_llm_aided_config +from mineru.utils.cut_image import cut_image_and_table +from mineru.utils.enum_class import ContentType +from mineru.utils.hash_utils import bytes_md5 +from mineru.utils.pdfium_guard import close_pdfium_document, pdfium_guard +from mineru.version import __version__ + + +heading_level_import_success = False +llm_aided_config = get_llm_aided_config() +if llm_aided_config: + title_aided_config = llm_aided_config.get('title_aided', {}) + if title_aided_config.get('enable', False): + from mineru.utils.llm_aided import llm_aided_title + from mineru.backend.utils.ocr_det_utils import ( + detect_ocr_boxes_from_padded_crop, + get_ch_lite_ocr_det_model, + ) + heading_level_import_success = True + + +def blocks_to_page_info(page_blocks, image_dict, page, image_writer, page_index) -> dict: + """将blocks转换为页面信息""" + + scale = image_dict["scale"] + page_pil_img = image_dict["img_pil"] + page_img_md5 = bytes_md5(page_pil_img.tobytes()) + with pdfium_guard(): + width, height = map(int, page.get_size()) + + magic_model = MagicModel(page_blocks, width, height) + image_blocks = magic_model.get_image_blocks() + table_blocks = magic_model.get_table_blocks() + chart_blocks = magic_model.get_chart_blocks() + title_blocks = magic_model.get_title_blocks() + discarded_blocks = magic_model.get_discarded_blocks() + code_blocks = magic_model.get_code_blocks() + ref_text_blocks = magic_model.get_ref_text_blocks() + phonetic_blocks = magic_model.get_phonetic_blocks() + list_blocks = magic_model.get_list_blocks() + + # 如果有标题优化需求,则对title_blocks截图det + if heading_level_import_success: + ocr_model = get_ch_lite_ocr_det_model() + for title_block in title_blocks: + ocr_det_res, _ = detect_ocr_boxes_from_padded_crop( + title_block.get('bbox'), + page_pil_img, + scale, + ocr_model=ocr_model, + ) + if len(ocr_det_res) > 0: + # 计算所有res的平均高度 + avg_height = np.mean([box[2][1] - box[0][1] for box in ocr_det_res]) + title_block['line_avg_height'] = round(avg_height/scale) + + text_blocks = magic_model.get_text_blocks() + interline_equation_blocks = magic_model.get_interline_equation_blocks() + + all_spans = magic_model.get_all_spans() + # 对image/table/chart/interline_equation的span截图 + for span in all_spans: + if span["type"] in [ContentType.IMAGE, ContentType.TABLE, ContentType.CHART, ContentType.INTERLINE_EQUATION]: + span = cut_image_and_table(span, page_pil_img, page_img_md5, page_index, image_writer, scale=scale) + + replace_inline_table_images(table_blocks, image_writer, page_index) + + page_blocks = [] + page_blocks.extend([ + *image_blocks, + *table_blocks, + *chart_blocks, + *code_blocks, + *ref_text_blocks, + *phonetic_blocks, + *title_blocks, + *text_blocks, + *interline_equation_blocks, + *list_blocks, + ]) + # 对page_blocks根据index的值进行排序 + page_blocks.sort(key=lambda x: x["index"]) + + page_info = { + "preproc_blocks": page_blocks, + "discarded_blocks": discarded_blocks, + "page_size": [width, height], + "page_idx": page_index, + } + return page_info + + +def init_middle_json(): + return {"pdf_info": [], "_backend": "vlm", "_version_name": __version__} + + +def append_page_blocks_to_middle_json( + middle_json, + model_output_blocks_list, + images_list, + pdf_doc, + image_writer, + page_start_index=0, + progress_bar=None, +): + for offset, (page_blocks, image_dict) in enumerate(zip(model_output_blocks_list, images_list)): + page_index = page_start_index + offset + with pdfium_guard(): + page = pdf_doc[page_index] + page_info = blocks_to_page_info(page_blocks, image_dict, page, image_writer, page_index) + middle_json["pdf_info"].append(page_info) + if progress_bar is not None: + progress_bar.update(1) + + +def finalize_middle_json(pdf_info_list): + build_para_blocks_from_preproc(pdf_info_list) + merge_para_text_blocks(pdf_info_list, allow_cross_page=False) + + table_enable = get_table_enable(os.getenv('MINERU_VLM_TABLE_ENABLE', 'True').lower() == 'true') + if table_enable: + cross_page_table_merge(pdf_info_list) + + if heading_level_import_success: + llm_aided_title_start_time = time.time() + llm_aided_title(pdf_info_list, title_aided_config) + logger.info(f'llm aided title time: {round(time.time() - llm_aided_title_start_time, 2)}') + + cleanup_internal_para_block_metadata(pdf_info_list) + + +def result_to_middle_json(model_output_blocks_list, images_list, pdf_doc, image_writer): + middle_json = init_middle_json() + with tqdm(total=len(model_output_blocks_list), desc="Processing pages") as progress_bar: + append_page_blocks_to_middle_json( + middle_json, + model_output_blocks_list, + images_list, + pdf_doc, + image_writer, + progress_bar=progress_bar, + ) + + finalize_middle_json(middle_json["pdf_info"]) + close_pdfium_document(pdf_doc) + return middle_json diff --git a/mineru/backend/vlm/utils.py b/mineru/backend/vlm/utils.py new file mode 100644 index 000000000..bf05f685a --- /dev/null +++ b/mineru/backend/vlm/utils.py @@ -0,0 +1,235 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os + +from loguru import logger +from packaging import version + +from mineru.utils.check_sys_env import is_windows_environment, is_linux_environment +from mineru.utils.config_reader import get_device +from mineru.utils.model_utils import get_vram + + +def enable_custom_logits_processors() -> bool: + import torch + from vllm import __version__ as vllm_version + + if torch.cuda.is_available(): + major, minor = torch.cuda.get_device_capability() + # 正确计算Compute Capability + compute_capability = f"{major}.{minor}" + elif hasattr(torch, 'npu') and torch.npu.is_available(): + compute_capability = "8.0" + elif hasattr(torch, 'gcu') and torch.gcu.is_available(): + compute_capability = "8.0" + elif hasattr(torch, 'musa') and torch.musa.is_available(): + compute_capability = "8.0" + elif hasattr(torch, 'mlu') and torch.mlu.is_available(): + compute_capability = "8.0" + elif hasattr(torch, 'sdaa') and torch.sdaa.is_available(): + compute_capability = "8.0" + + else: + logger.info("CUDA not available, disabling custom_logits_processors") + return False + + # 安全地处理环境变量 + vllm_use_v1_str = os.getenv('VLLM_USE_V1', "1") + if vllm_use_v1_str.isdigit(): + vllm_use_v1 = int(vllm_use_v1_str) + else: + vllm_use_v1 = 1 + + if vllm_use_v1 == 0: + logger.info("VLLM_USE_V1 is set to 0, disabling custom_logits_processors") + return False + elif version.parse(vllm_version) < version.parse("0.10.1"): + logger.info(f"vllm version: {vllm_version} < 0.10.1, disable custom_logits_processors") + return False + elif version.parse(compute_capability) < version.parse("8.0"): + if version.parse(vllm_version) >= version.parse("0.10.2"): + logger.info(f"compute_capability: {compute_capability} < 8.0, but vllm version: {vllm_version} >= 0.10.2, enable custom_logits_processors") + return True + else: + logger.info(f"compute_capability: {compute_capability} < 8.0 and vllm version: {vllm_version} < 0.10.2, disable custom_logits_processors") + return False + else: + logger.info(f"compute_capability: {compute_capability} >= 8.0 and vllm version: {vllm_version} >= 0.10.1, enable custom_logits_processors") + return True + + +def set_lmdeploy_backend(device_type: str) -> str: + if device_type.lower() in ["ascend", "maca", "camb"]: + lmdeploy_backend = "pytorch" + elif device_type.lower() in ["cuda"]: + import torch + if not torch.cuda.is_available(): + raise ValueError("CUDA is not available.") + if is_windows_environment(): + lmdeploy_backend = "turbomind" + elif is_linux_environment(): + major, minor = torch.cuda.get_device_capability() + compute_capability = f"{major}.{minor}" + if version.parse(compute_capability) >= version.parse("8.0"): + lmdeploy_backend = "pytorch" + else: + lmdeploy_backend = "turbomind" + else: + raise ValueError("Unsupported operating system.") + else: + raise ValueError(f"Unsupported lmdeploy device type: {device_type}") + return lmdeploy_backend + + +def set_default_gpu_memory_utilization() -> float: + from vllm import __version__ as vllm_version + device = get_device() + gpu_memory = get_vram(device) + default_gpu_memory_utilization = 0.5 + if version.parse(vllm_version) >= version.parse("0.11.0") and gpu_memory <= 8: + default_gpu_memory_utilization = 0.7 + + logger.debug(f"vllm_version: {vllm_version}, gpu_memory: {gpu_memory} GB, default_gpu_memory_utilization: {default_gpu_memory_utilization}") + return default_gpu_memory_utilization + + +def set_default_batch_size() -> int: + try: + device = get_device() + gpu_memory = get_vram(device) + + if gpu_memory >= 16: + batch_size = 8 + elif gpu_memory >= 8: + batch_size = 4 + else: + batch_size = 1 + logger.info(f'gpu_memory: {gpu_memory} GB, batch_size: {batch_size}') + + except Exception as e: + logger.warning(f'Error determining VRAM: {e}, using default batch_ratio: 1') + batch_size = 1 + return batch_size + + +def _get_device_config(device_type: str) -> dict | None: + """获取不同设备类型的配置参数""" + + # 各设备类型的配置定义 + DEVICE_CONFIGS = { + # "musa": { + # "compilation_config_dict": { + # "cudagraph_capture_sizes": [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20, 24, 28, 30], + # "simple_cuda_graph": True + # }, + # "block_size": 32, + # }, + "corex": { + "compilation_config_dict": { + "cudagraph_mode": "FULL_DECODE_ONLY", + "level": 0 + }, + }, + "kxpu": { + "compilation_config_dict": { + "splitting_ops": [ + "vllm.unified_attention", "vllm.unified_attention_with_output", + "vllm.unified_attention_with_output_kunlun", "vllm.mamba_mixer2", + "vllm.mamba_mixer", "vllm.short_conv", "vllm.linear_attention", + "vllm.plamo2_mamba_mixer", "vllm.gdn_attention", "vllm.sparse_attn_indexer" + ] + }, + "block_size": 128, + "dtype": "float16", + "distributed_executor_backend": "mp", + "enable_chunked_prefill": False, + "enable_prefix_caching": False, + }, + } + + return DEVICE_CONFIGS.get(device_type.lower()) + + +def _check_server_arg_exists(args: list, arg_name: str) -> bool: + """检查命令行参数列表中是否已存在指定参数""" + return any(arg == f"--{arg_name}" or arg.startswith(f"--{arg_name}=") for arg in args) + + +def _add_server_arg_if_missing(args: list, arg_name: str, value: str) -> None: + """如果参数不存在,则添加到命令行参数列表""" + if not _check_server_arg_exists(args, arg_name): + args.extend([f"--{arg_name}", value]) + + +def _add_server_flag_if_missing(args: list, flag_name: str) -> None: + """如果 flag 不存在,则添加到命令行参数列表""" + if not _check_server_arg_exists(args, flag_name): + args.append(f"--{flag_name}") + + +def _add_engine_kwarg_if_missing(kwargs: dict, key: str, value) -> None: + """如果参数不存在,则添加到 kwargs 字典""" + if key not in kwargs: + kwargs[key] = value + + +def mod_kwargs_by_device_type(kwargs_or_args: dict | list, vllm_mode: str) -> dict | list: + """根据设备类型修改 vllm 配置参数 + + Args: + kwargs_or_args: 配置参数,server 模式为 list,engine 模式为 dict + vllm_mode: vllm 运行模式 ("server", "sync_engine", "async_engine") + + Returns: + 修改后的配置参数 + """ + device_type = os.getenv("MINERU_VLLM_DEVICE", "") + config = _get_device_config(device_type) + + if config is None: + return kwargs_or_args + + if vllm_mode == "server": + _apply_server_config(kwargs_or_args, config) + else: + _apply_engine_config(kwargs_or_args, config, vllm_mode) + + return kwargs_or_args + + +def _apply_server_config(args: list, config: dict) -> None: + """应用 server 模式的配置""" + import json + + for key, value in config.items(): + if key == "compilation_config_dict": + _add_server_arg_if_missing( + args, "compilation-config", + json.dumps(value, separators=(',', ':')) + ) + else: + # 转换 key 格式: block_size -> block-size + arg_name = key.replace("_", "-") + if arg_name in {"enable-chunked-prefill", "enable-prefix-caching"} and value is False: + _add_server_flag_if_missing(args, f"no-{arg_name}") + continue + _add_server_arg_if_missing(args, arg_name, str(value)) + + +def _apply_engine_config(kwargs: dict, config: dict, vllm_mode: str) -> None: + """应用 engine 模式的配置""" + try: + from vllm.config import CompilationConfig + except ImportError: + raise ImportError("Please install vllm to use the vllm-async-engine backend.") + + for key, value in config.items(): + if key == "compilation_config_dict": + if vllm_mode == "sync_engine": + compilation_config = value + elif vllm_mode == "async_engine": + compilation_config = CompilationConfig(**value) + else: + continue + _add_engine_kwarg_if_missing(kwargs, "compilation_config", compilation_config) + else: + _add_engine_kwarg_if_missing(kwargs, key, value) diff --git a/mineru/backend/vlm/vlm_analyze.py b/mineru/backend/vlm/vlm_analyze.py new file mode 100644 index 000000000..cb2e72c41 --- /dev/null +++ b/mineru/backend/vlm/vlm_analyze.py @@ -0,0 +1,586 @@ +# Copyright (c) Opendatalab. All rights reserved. +import asyncio +import atexit +import gc +import os +import time +import json +import threading +from contextlib import asynccontextmanager, contextmanager + +import pypdfium2 as pdfium +from loguru import logger +from tqdm import tqdm + +from .utils import enable_custom_logits_processors, set_default_gpu_memory_utilization, set_default_batch_size, \ + set_lmdeploy_backend, mod_kwargs_by_device_type +from .model_output_to_middle_json import ( + append_page_blocks_to_middle_json, + finalize_middle_json, + init_middle_json, +) +from mineru.backend.utils.runtime_utils import exclude_progress_bar_idle_time +from ...data.data_reader_writer import DataWriter +from mineru.utils.pdf_image_tools import load_images_from_pdf_doc +from ...utils.check_sys_env import is_mac_os_version_supported +from ...utils.config_reader import get_device, get_processing_window_size + +from ...utils.enum_class import ImageType +from ...utils.pdfium_guard import ( + close_pdfium_document, + get_pdfium_document_page_count, + open_pdfium_document, +) +from ...utils.models_download_utils import auto_download_and_get_model_root_path + +from mineru_vl_utils import MinerUClient +from packaging import version + + +class ModelSingleton: + _instance = None + _models = {} + _lock = threading.RLock() + + def __new__(cls, *args, **kwargs): + with cls._lock: + if cls._instance is None: + cls._instance = super().__new__(cls) + return cls._instance + + def get_model( + self, + backend: str, + model_path: str | None, + server_url: str | None, + **kwargs, + ) -> MinerUClient: + key = (backend, model_path, server_url) + with self._lock: + if key not in self._models: + start_time = time.time() + model = None + processor = None + vllm_llm = None + lmdeploy_engine = None + vllm_async_llm = None + batch_size = kwargs.get("batch_size", 0) # for transformers backend only + max_concurrency = kwargs.get("max_concurrency", 100) # for http-client backend only + http_timeout = kwargs.get("http_timeout", 600) # for http-client backend only + server_headers = kwargs.get("server_headers", None) # for http-client backend only + max_retries = kwargs.get("max_retries", 3) # for http-client backend only + retry_backoff_factor = kwargs.get("retry_backoff_factor", 0.5) # for http-client backend only + # 从kwargs中移除这些参数,避免传递给不相关的初始化函数 + for param in ["batch_size", "max_concurrency", "http_timeout", "server_headers", "max_retries", "retry_backoff_factor"]: + if param in kwargs: + del kwargs[param] + if backend not in ["http-client"] and not model_path: + model_path = auto_download_and_get_model_root_path("/","vlm") + if backend == "transformers": + try: + from transformers import ( + AutoProcessor, + Qwen2VLForConditionalGeneration, + ) + from transformers import __version__ as transformers_version + except ImportError: + raise ImportError("Please install transformers to use the transformers backend.") + + if version.parse(transformers_version) >= version.parse("4.56.0"): + dtype_key = "dtype" + else: + dtype_key = "torch_dtype" + device = get_device() + model = Qwen2VLForConditionalGeneration.from_pretrained( + model_path, + device_map={"": device}, + **{dtype_key: "auto"}, # type: ignore + ) + processor = AutoProcessor.from_pretrained( + model_path, + use_fast=True, + ) + if batch_size == 0: + batch_size = set_default_batch_size() + elif backend == "mlx-engine": + mlx_supported = is_mac_os_version_supported() + if not mlx_supported: + raise EnvironmentError("mlx-engine backend is only supported on macOS 13.5+ with Apple Silicon.") + from mineru_vl_utils.mlx_compat import load_mlx_model + model, processor = load_mlx_model(model_path) + else: + if os.getenv('OMP_NUM_THREADS') is None: + os.environ["OMP_NUM_THREADS"] = "1" + + if backend == "vllm-engine": + try: + import vllm + except ImportError: + raise ImportError("Please install vllm to use the vllm-engine backend.") + + kwargs = mod_kwargs_by_device_type(kwargs, vllm_mode="sync_engine") + + if "compilation_config" in kwargs: + if isinstance(kwargs["compilation_config"], str): + try: + kwargs["compilation_config"] = json.loads(kwargs["compilation_config"]) + except json.JSONDecodeError: + logger.warning( + f"Failed to parse compilation_config as JSON: {kwargs['compilation_config']}") + del kwargs["compilation_config"] + if "gpu_memory_utilization" not in kwargs: + kwargs["gpu_memory_utilization"] = set_default_gpu_memory_utilization() + if "model" not in kwargs: + kwargs["model"] = model_path + if enable_custom_logits_processors() and ("logits_processors" not in kwargs): + from mineru_vl_utils import MinerULogitsProcessor + kwargs["logits_processors"] = [MinerULogitsProcessor] + # 使用kwargs为 vllm初始化参数 + vllm_llm = vllm.LLM(**kwargs) + elif backend == "vllm-async-engine": + try: + from vllm.engine.arg_utils import AsyncEngineArgs + from vllm.v1.engine.async_llm import AsyncLLM + from vllm.config import CompilationConfig + except ImportError: + raise ImportError("Please install vllm to use the vllm-async-engine backend.") + + kwargs = mod_kwargs_by_device_type(kwargs, vllm_mode="async_engine") + + if "compilation_config" in kwargs: + if isinstance(kwargs["compilation_config"], dict): + # 如果是字典,转换为 CompilationConfig 对象 + kwargs["compilation_config"] = CompilationConfig(**kwargs["compilation_config"]) + elif isinstance(kwargs["compilation_config"], str): + # 如果是 JSON 字符串,先解析再转换 + try: + config_dict = json.loads(kwargs["compilation_config"]) + kwargs["compilation_config"] = CompilationConfig(**config_dict) + except (json.JSONDecodeError, TypeError) as e: + logger.warning( + f"Failed to parse compilation_config: {kwargs['compilation_config']}, error: {e}") + del kwargs["compilation_config"] + if "gpu_memory_utilization" not in kwargs: + kwargs["gpu_memory_utilization"] = set_default_gpu_memory_utilization() + if "model" not in kwargs: + kwargs["model"] = model_path + if enable_custom_logits_processors() and ("logits_processors" not in kwargs): + from mineru_vl_utils import MinerULogitsProcessor + kwargs["logits_processors"] = [MinerULogitsProcessor] + # 使用kwargs为 vllm初始化参数 + vllm_async_llm = AsyncLLM.from_engine_args(AsyncEngineArgs(**kwargs)) + elif backend == "lmdeploy-engine": + try: + from lmdeploy import PytorchEngineConfig, TurbomindEngineConfig + from lmdeploy.serve.vl_async_engine import VLAsyncEngine + except ImportError: + raise ImportError("Please install lmdeploy to use the lmdeploy-engine backend.") + if "cache_max_entry_count" not in kwargs: + kwargs["cache_max_entry_count"] = 0.5 + + device_type = os.getenv("MINERU_LMDEPLOY_DEVICE", "") + if device_type == "": + if "lmdeploy_device" in kwargs: + device_type = kwargs.pop("lmdeploy_device") + if device_type not in ["cuda", "ascend", "maca", "camb"]: + raise ValueError(f"Unsupported lmdeploy device type: {device_type}") + else: + device_type = "cuda" + lm_backend = os.getenv("MINERU_LMDEPLOY_BACKEND", "") + if lm_backend == "": + if "lmdeploy_backend" in kwargs: + lm_backend = kwargs.pop("lmdeploy_backend") + if lm_backend not in ["pytorch", "turbomind"]: + raise ValueError(f"Unsupported lmdeploy backend: {lm_backend}") + else: + lm_backend = set_lmdeploy_backend(device_type) + logger.info(f"lmdeploy device is: {device_type}, lmdeploy backend is: {lm_backend}") + + if lm_backend == "pytorch": + kwargs["device_type"] = device_type + backend_config = PytorchEngineConfig(**kwargs) + elif lm_backend == "turbomind": + backend_config = TurbomindEngineConfig(**kwargs) + else: + raise ValueError(f"Unsupported lmdeploy backend: {lm_backend}") + + log_level = 'ERROR' + from lmdeploy.utils import get_logger + lm_logger = get_logger('lmdeploy') + lm_logger.setLevel(log_level) + if os.getenv('TM_LOG_LEVEL') is None: + os.environ['TM_LOG_LEVEL'] = log_level + + lmdeploy_engine = VLAsyncEngine( + model_path, + backend=lm_backend, + backend_config=backend_config, + ) + predictor = MinerUClient( + backend=backend, + model=model, + processor=processor, + lmdeploy_engine=lmdeploy_engine, + vllm_llm=vllm_llm, + vllm_async_llm=vllm_async_llm, + server_url=server_url, + batch_size=batch_size, + max_concurrency=max_concurrency, + http_timeout=http_timeout, + server_headers=server_headers, + max_retries=max_retries, + retry_backoff_factor=retry_backoff_factor, + enable_table_formula_eq_wrap=True, + image_analysis=True, + enable_cross_page_table_merge=True, + ) + predictor._mineru_runtime_handles = { + "backend": backend, + "model": model, + "processor": processor, + "vllm_llm": vllm_llm, + "vllm_async_llm": vllm_async_llm, + "lmdeploy_engine": lmdeploy_engine, + } + _maybe_enable_serial_execution(predictor, backend) + self._models[key] = predictor + elapsed = round(time.time() - start_time, 2) + logger.info(f"get {backend} predictor cost: {elapsed}s") + return self._models[key] + + def shutdown(self) -> None: + with self._lock: + predictors = list(self._models.values()) + self._models.clear() + + for predictor in predictors: + _shutdown_predictor_runtime(predictor) + + gc.collect() + + +def _iter_shutdown_candidates(predictor: MinerUClient): + runtime_handles = getattr(predictor, "_mineru_runtime_handles", {}) + client = getattr(predictor, "client", None) + + seen_ids = set() + + def _yield_candidate(candidate): + if candidate is None: + return + candidate_id = id(candidate) + if candidate_id in seen_ids: + return + seen_ids.add(candidate_id) + yield candidate + + for key in ("vllm_llm", "vllm_async_llm", "lmdeploy_engine", "model"): + yield from _yield_candidate(runtime_handles.get(key)) + + if client is not None: + for key in ("vllm_llm", "vllm_async_llm", "lmdeploy_engine", "model"): + yield from _yield_candidate(getattr(client, key, None)) + + +def _call_nested_shutdown(target, method_path: str, label: str) -> bool: + current = target + for attr in method_path.split("."): + current = getattr(current, attr, None) + if current is None: + return False + + if not callable(current): + return False + + try: + current() + logger.debug(f"Shutdown {label} via `{method_path}`") + return True + except TypeError: + logger.debug(f"Skip unsupported shutdown call {label}.{method_path}") + return False + except Exception as exc: + logger.debug(f"Failed to shutdown {label} via `{method_path}`: {exc}") + return False + + +def _shutdown_runtime_handle(handle) -> None: + for method_path in ( + "shutdown", + "close", + "stop", + "terminate", + "destroy", + "engine.shutdown", + "engine.close", + "engine_core.shutdown", + "engine_core.close", + "llm_engine.shutdown", + "llm_engine.close", + "llm_engine.model_executor.shutdown", + "llm_engine.model_executor.close", + "model_executor.shutdown", + "model_executor.close", + ): + if _call_nested_shutdown(handle, method_path, type(handle).__name__): + return + + +def _clear_predictor_references(predictor: MinerUClient) -> None: + runtime_handles = getattr(predictor, "_mineru_runtime_handles", {}) + for key in tuple(runtime_handles.keys()): + runtime_handles[key] = None + + client = getattr(predictor, "client", None) + if client is not None: + for attr in ("vllm_llm", "vllm_async_llm", "lmdeploy_engine", "model", "processor"): + if hasattr(client, attr): + setattr(client, attr, None) + + +def _shutdown_predictor_runtime(predictor: MinerUClient) -> None: + for handle in _iter_shutdown_candidates(predictor): + _shutdown_runtime_handle(handle) + _clear_predictor_references(predictor) + + +def shutdown_cached_models() -> None: + ModelSingleton().shutdown() + + +atexit.register(shutdown_cached_models) + + +def _predictor_uses_mlx(predictor: MinerUClient, backend: str | None = None) -> bool: + if backend == "mlx-engine": + return True + client = getattr(predictor, "client", None) + return type(client).__module__.endswith(".mlx_client") + + +def _maybe_enable_serial_execution( + predictor: MinerUClient, + backend: str | None = None, +) -> MinerUClient: + if _predictor_uses_mlx(predictor, backend) and not hasattr( + predictor, "_mineru_execution_lock" + ): + predictor._mineru_execution_lock = threading.Lock() + return predictor + + +@contextmanager +def predictor_execution_guard(predictor: MinerUClient): + lock = getattr(predictor, "_mineru_execution_lock", None) + if lock is None: + yield + return + with lock: + yield + + +@asynccontextmanager +async def aio_predictor_execution_guard(predictor: MinerUClient): + lock = getattr(predictor, "_mineru_execution_lock", None) + if lock is None: + yield + return + await asyncio.to_thread(lock.acquire) + try: + yield + finally: + lock.release() + + +def _close_images(images_list): + for image_dict in images_list or []: + pil_img = image_dict.get("img_pil") + if pil_img is not None: + try: + pil_img.close() + except Exception: + pass + + +def doc_analyze( + pdf_bytes, + image_writer: DataWriter | None, + predictor: MinerUClient | None = None, + backend="transformers", + model_path: str | None = None, + server_url: str | None = None, + **kwargs, +): + if predictor is None: + predictor = ModelSingleton().get_model(backend, model_path, server_url, **kwargs) + predictor = _maybe_enable_serial_execution(predictor, backend) + + pdf_doc = open_pdfium_document(pdfium.PdfDocument, pdf_bytes) + middle_json = init_middle_json() + results = [] + doc_closed = False + try: + page_count = get_pdfium_document_page_count(pdf_doc) + configured_window_size = get_processing_window_size(default=64) + effective_window_size = min(page_count, configured_window_size) if page_count else 0 + total_windows = ( + (page_count + effective_window_size - 1) // effective_window_size + if effective_window_size + else 0 + ) + logger.info( + f'VLM processing-window run. page_count={page_count}, ' + f'window_size={configured_window_size}, total_windows={total_windows}' + ) + + infer_start = time.time() + progress_bar = None + last_append_end_time = None + try: + for window_index, window_start in enumerate(range(0, page_count, effective_window_size or 1)): + window_end = min(page_count - 1, window_start + effective_window_size - 1) + images_list = load_images_from_pdf_doc( + pdf_doc, + start_page_id=window_start, + end_page_id=window_end, + image_type=ImageType.PIL, + pdf_bytes=pdf_bytes, + ) + try: + images_pil_list = [image_dict["img_pil"] for image_dict in images_list] + logger.info( + f'VLM processing window {window_index + 1}/{total_windows}: ' + f'pages {window_start + 1}-{window_end + 1}/{page_count} ' + f'({len(images_pil_list)} pages)' + ) + with predictor_execution_guard(predictor): + window_results = predictor.batch_two_step_extract(images=images_pil_list) + results.extend(window_results) + if progress_bar is None: + progress_bar = tqdm(total=page_count, desc="Processing pages") + else: + exclude_progress_bar_idle_time( + progress_bar, + last_append_end_time, + now=time.time(), + ) + append_page_blocks_to_middle_json( + middle_json, + window_results, + images_list, + pdf_doc, + image_writer, + page_start_index=window_start, + progress_bar=progress_bar, + ) + last_append_end_time = time.time() + finally: + _close_images(images_list) + finally: + if progress_bar is not None: + progress_bar.close() + infer_time = round(time.time() - infer_start, 2) + if infer_time > 0 and page_count > 0: + logger.debug( + f"processing-window infer finished, cost: {infer_time}, " + f"speed: {round(len(results) / infer_time, 3)} page/s" + ) + finalize_middle_json(middle_json["pdf_info"]) + close_pdfium_document(pdf_doc) + doc_closed = True + return middle_json, results + finally: + if not doc_closed: + close_pdfium_document(pdf_doc) + + +async def aio_doc_analyze( + pdf_bytes, + image_writer: DataWriter | None, + predictor: MinerUClient | None = None, + backend="transformers", + model_path: str | None = None, + server_url: str | None = None, + **kwargs, +): + if predictor is None: + predictor = ModelSingleton().get_model(backend, model_path, server_url, **kwargs) + predictor = _maybe_enable_serial_execution(predictor, backend) + + pdf_doc = open_pdfium_document(pdfium.PdfDocument, pdf_bytes) + middle_json = init_middle_json() + results = [] + doc_closed = False + try: + page_count = get_pdfium_document_page_count(pdf_doc) + configured_window_size = get_processing_window_size(default=64) + effective_window_size = min(page_count, configured_window_size) if page_count else 0 + total_windows = ( + (page_count + effective_window_size - 1) // effective_window_size + if effective_window_size + else 0 + ) + logger.info( + f'VLM processing-window run. page_count={page_count}, ' + f'window_size={configured_window_size}, total_windows={total_windows}' + ) + + infer_start = time.time() + progress_bar = None + last_append_end_time = None + try: + for window_index, window_start in enumerate(range(0, page_count, effective_window_size or 1)): + window_end = min(page_count - 1, window_start + effective_window_size - 1) + images_list = load_images_from_pdf_doc( + pdf_doc, + start_page_id=window_start, + end_page_id=window_end, + image_type=ImageType.PIL, + pdf_bytes=pdf_bytes, + ) + try: + images_pil_list = [image_dict["img_pil"] for image_dict in images_list] + logger.info( + f'VLM processing window {window_index + 1}/{total_windows}: ' + f'pages {window_start + 1}-{window_end + 1}/{page_count} ' + f'({len(images_pil_list)} pages)' + ) + async with aio_predictor_execution_guard(predictor): + window_results = await predictor.aio_batch_two_step_extract(images=images_pil_list) + results.extend(window_results) + if progress_bar is None: + progress_bar = tqdm(total=page_count, desc="Processing pages") + else: + exclude_progress_bar_idle_time( + progress_bar, + last_append_end_time, + now=time.time(), + ) + append_page_blocks_to_middle_json( + middle_json, + window_results, + images_list, + pdf_doc, + image_writer, + page_start_index=window_start, + progress_bar=progress_bar, + ) + last_append_end_time = time.time() + finally: + _close_images(images_list) + finally: + if progress_bar is not None: + progress_bar.close() + infer_time = round(time.time() - infer_start, 2) + if infer_time > 0 and page_count > 0: + logger.debug( + f"processing-window infer finished, cost: {infer_time}, " + f"speed: {round(len(results) / infer_time, 3)} page/s" + ) + finalize_middle_json(middle_json["pdf_info"]) + close_pdfium_document(pdf_doc) + doc_closed = True + return middle_json, results + finally: + if not doc_closed: + close_pdfium_document(pdf_doc) diff --git a/mineru/backend/vlm/vlm_magic_model.py b/mineru/backend/vlm/vlm_magic_model.py new file mode 100644 index 000000000..32ecb66bd --- /dev/null +++ b/mineru/backend/vlm/vlm_magic_model.py @@ -0,0 +1,375 @@ +# Copyright (c) Opendatalab. All rights reserved. +import re + +from loguru import logger + +from mineru.utils.boxbase import calculate_overlap_area_in_bbox1_area_ratio +from mineru.utils.enum_class import ContentType, BlockType +from mineru.utils.guess_suffix_or_lang import guess_language_by_text +from mineru.utils.visual_magic_model_utils import ( + GENERIC_CHILD_TYPES, + IMAGE_BLOCK_BODY, + VISUAL_MAIN_TYPES, + clean_content, + code_content_clean, + isolated_formula_clean, + regroup_visual_blocks, +) + + +def _copy_raw_text_block_metadata(raw_block_type, block_info, block): + if raw_block_type != BlockType.TEXT: + return + if "merge_prev" in block_info: + block["merge_prev"] = block_info["merge_prev"] + + +class MagicModel: + def __init__(self, page_blocks: list, width, height): + self.page_blocks = page_blocks + + blocks = [] + self.all_spans = [] + # 解析每个块 + for index, block_info in enumerate(page_blocks): + block_bbox = block_info["bbox"] + try: + x1, y1, x2, y2 = block_bbox + x_1, y_1, x_2, y_2 = ( + int(x1 * width), + int(y1 * height), + int(x2 * width), + int(y2 * height), + ) + if x_2 < x_1: + x_1, x_2 = x_2, x_1 + if y_2 < y_1: + y_1, y_2 = y_2, y_1 + block_bbox = (x_1, y_1, x_2, y_2) + block_type = block_info["type"] + raw_block_type = block_type + block_content = block_info.get("content") + block_angle = block_info.get("angle", 0) + block_sub_type = ( + block_info.get("sub_type") + if raw_block_type in ["image", "chart"] + else None + ) + except Exception as e: + # 如果解析失败,可能是因为格式不正确,跳过这个块 + logger.warning(f"Invalid block format: {block_info}, error: {e}") + continue + + span_type = "unknown" + code_block_sub_type = None + guess_lang = None + + if block_type in [ + "text", + "title", + "ref_text", + "phonetic", + "header", + "footer", + "page_number", + "aside_text", + "page_footnote", + "list", + ]: + span_type = ContentType.TEXT + elif block_type in ["image_caption", "table_caption", "code_caption"]: + block_type = BlockType.CAPTION + span_type = ContentType.TEXT + elif block_type in ["image_footnote", "table_footnote"]: + block_type = BlockType.FOOTNOTE + span_type = ContentType.TEXT + elif block_type == "image": + block_type = BlockType.IMAGE_BODY + span_type = ContentType.IMAGE + elif block_type == "image_block": + block_type = IMAGE_BLOCK_BODY + span_type = ContentType.IMAGE + elif block_type == "table": + block_type = BlockType.TABLE_BODY + span_type = ContentType.TABLE + elif block_type == "chart": + block_type = BlockType.CHART_BODY + span_type = ContentType.CHART + elif block_type in ["code", "algorithm"]: + block_content = code_content_clean(block_content) + code_block_sub_type = block_type + block_type = BlockType.CODE_BODY + span_type = ContentType.TEXT + guess_lang = guess_language_by_text(block_content) + elif block_type == "equation": + block_type = BlockType.INTERLINE_EQUATION + span_type = ContentType.INTERLINE_EQUATION + + # code 和 algorithm 类型的块,如果内容中包含行内公式,则需要将块类型切换为 algorithm + switch_code_to_algorithm = False + + if span_type in [ContentType.IMAGE, ContentType.TABLE, ContentType.CHART]: + span = { + "bbox": block_bbox, + "type": span_type, + } + if span_type == ContentType.TABLE: + span["html"] = block_content + elif raw_block_type in ["image", "chart"] and block_content is not None: + span["content"] = block_content + elif span_type == ContentType.INTERLINE_EQUATION: + span = { + "bbox": block_bbox, + "type": span_type, + "content": isolated_formula_clean(block_content), + } + else: + if block_content: + block_content = clean_content(block_content) + + if block_type == "title" and block_content: + block_content = re.sub(r"\n\s*", " ", block_content).strip() + + if ( + block_content + and block_content.count("\\(") == block_content.count("\\)") + and block_content.count("\\(") > 0 + ): + switch_code_to_algorithm = True + + # 生成包含文本和公式的span列表 + spans = [] + last_end = 0 + + # 查找所有公式 + for match in re.finditer(r"\\\((.+?)\\\)", block_content): + start, end = match.span() + + # 添加公式前的文本 + if start > last_end: + text_before = block_content[last_end:start] + if text_before.strip(): + spans.append( + { + "bbox": block_bbox, + "type": ContentType.TEXT, + "content": text_before, + } + ) + + # 添加公式(去除\(和\)) + formula = match.group(1) + spans.append( + { + "bbox": block_bbox, + "type": ContentType.INLINE_EQUATION, + "content": formula.strip(), + } + ) + + last_end = end + + # 添加最后一个公式后的文本 + if last_end < len(block_content): + text_after = block_content[last_end:] + if text_after.strip(): + spans.append( + { + "bbox": block_bbox, + "type": ContentType.TEXT, + "content": text_after, + } + ) + + span = spans + else: + span = { + "bbox": block_bbox, + "type": span_type, + "content": block_content, + } + + # 处理span类型并添加到all_spans + if isinstance(span, dict) and "bbox" in span: + self.all_spans.append(span) + spans = [span] + elif isinstance(span, list): + self.all_spans.extend(span) + spans = span + else: + raise ValueError( + f"Invalid span type: {span_type}, expected dict or list, got {type(span)}" + ) + + # 构造 line 对象 + if block_type == BlockType.CODE_BODY: + if switch_code_to_algorithm and code_block_sub_type == "code": + code_block_sub_type = "algorithm" + line = { + "bbox": block_bbox, + "spans": spans, + "extra": {"type": code_block_sub_type, "guess_lang": guess_lang}, + } + else: + line = {"bbox": block_bbox, "spans": spans} + + block = { + "bbox": block_bbox, + "type": block_type, + "angle": block_angle, + "lines": [line], + "index": index, + } + if block_sub_type: + block["sub_type"] = block_sub_type + if raw_block_type == "table" and "cell_merge" in block_info: + block["cell_merge"] = block_info["cell_merge"] + _copy_raw_text_block_metadata(raw_block_type, block_info, block) + + blocks.append(block) + + self.image_blocks = [] + self.table_blocks = [] + self.chart_blocks = [] + self.interline_equation_blocks = [] + self.text_blocks = [] + self.title_blocks = [] + self.code_blocks = [] + self.discarded_blocks = [] + self.ref_text_blocks = [] + self.phonetic_blocks = [] + self.list_blocks = [] + + for block in blocks: + if block["type"] in VISUAL_MAIN_TYPES or block["type"] in GENERIC_CHILD_TYPES: + continue + elif block["type"] == BlockType.INTERLINE_EQUATION: + self.interline_equation_blocks.append(block) + elif block["type"] == BlockType.TEXT: + self.text_blocks.append(block) + elif block["type"] == BlockType.TITLE: + self.title_blocks.append(block) + elif block["type"] == BlockType.REF_TEXT: + self.ref_text_blocks.append(block) + elif block["type"] == BlockType.PHONETIC: + self.phonetic_blocks.append(block) + elif block["type"] in [ + BlockType.HEADER, + BlockType.FOOTER, + BlockType.PAGE_NUMBER, + BlockType.ASIDE_TEXT, + BlockType.PAGE_FOOTNOTE, + ]: + self.discarded_blocks.append(block) + elif block["type"] == BlockType.LIST: + self.list_blocks.append(block) + + self.list_blocks, self.text_blocks, self.ref_text_blocks = fix_list_blocks( + self.list_blocks, + self.text_blocks, + self.ref_text_blocks, + ) + + visual_groups, unmatched_child_blocks = regroup_visual_blocks(blocks) + self.image_blocks = visual_groups[BlockType.IMAGE] + self.table_blocks = visual_groups[BlockType.TABLE] + self.chart_blocks = visual_groups[BlockType.CHART] + self.code_blocks = visual_groups[BlockType.CODE] + + for code_block in self.code_blocks: + for block in code_block["blocks"]: + if block["type"] == BlockType.CODE_BODY: + if block["lines"]: + line = block["lines"][0] + code_block["sub_type"] = line["extra"]["type"] + if code_block["sub_type"] == "code": + code_block["guess_lang"] = line["extra"]["guess_lang"] + del line["extra"] + else: + code_block["sub_type"] = "code" + code_block["guess_lang"] = "txt" + + for block in unmatched_child_blocks: + block["type"] = BlockType.TEXT + self.text_blocks.append(block) + + def get_list_blocks(self): + return self.list_blocks + + def get_image_blocks(self): + return self.image_blocks + + def get_table_blocks(self): + return self.table_blocks + + def get_chart_blocks(self): + return self.chart_blocks + + def get_code_blocks(self): + return self.code_blocks + + def get_ref_text_blocks(self): + return self.ref_text_blocks + + def get_phonetic_blocks(self): + return self.phonetic_blocks + + def get_title_blocks(self): + return self.title_blocks + + def get_text_blocks(self): + return self.text_blocks + + def get_interline_equation_blocks(self): + return self.interline_equation_blocks + + def get_discarded_blocks(self): + return self.discarded_blocks + + def get_all_spans(self): + return self.all_spans +def fix_list_blocks(list_blocks, text_blocks, ref_text_blocks): + for list_block in list_blocks: + list_block["blocks"] = [] + if "lines" in list_block: + del list_block["lines"] + + temp_text_blocks = text_blocks + ref_text_blocks + need_remove_blocks = [] + for block in temp_text_blocks: + for list_block in list_blocks: + if ( + calculate_overlap_area_in_bbox1_area_ratio( + block["bbox"], + list_block["bbox"], + ) + >= 0.8 + ): + list_block["blocks"].append(block) + need_remove_blocks.append(block) + break + + for block in need_remove_blocks: + if block in text_blocks: + text_blocks.remove(block) + elif block in ref_text_blocks: + ref_text_blocks.remove(block) + + # 移除blocks为空的list_block + list_blocks = [lb for lb in list_blocks if lb["blocks"]] + + for list_block in list_blocks: + # 统计list_block["blocks"]中所有block的type,用众数作为list_block的sub_type + type_count = {} + for sub_block in list_block["blocks"]: + sub_block_type = sub_block["type"] + if sub_block_type not in type_count: + type_count[sub_block_type] = 0 + type_count[sub_block_type] += 1 + + if type_count: + list_block["sub_type"] = max(type_count, key=type_count.get) + else: + list_block["sub_type"] = "unknown" + + return list_blocks, text_blocks, ref_text_blocks diff --git a/mineru/backend/vlm/vlm_middle_json_mkcontent.py b/mineru/backend/vlm/vlm_middle_json_mkcontent.py new file mode 100644 index 000000000..439e054c3 --- /dev/null +++ b/mineru/backend/vlm/vlm_middle_json_mkcontent.py @@ -0,0 +1,895 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import re +from html import escape, unescape + +from loguru import logger + +from mineru.utils.char_utils import full_to_half_exclude_marks, is_hyphen_at_line_end +from mineru.utils.config_reader import get_latex_delimiter_config, get_formula_enable, get_table_enable +from mineru.utils.enum_class import MakeMode, BlockType, ContentType, ContentTypeV2 +from mineru.utils.language import detect_lang +from mineru.backend.utils.markdown_utils import ( + escape_conservative_markdown_text, + escape_text_block_markdown_prefix, +) + +latex_delimiters_config = get_latex_delimiter_config() + +default_delimiters = { + 'display': {'left': '$$', 'right': '$$'}, + 'inline': {'left': '$', 'right': '$'} +} + +delimiters = latex_delimiters_config if latex_delimiters_config else default_delimiters + +display_left_delimiter = delimiters['display']['left'] +display_right_delimiter = delimiters['display']['right'] +inline_left_delimiter = delimiters['inline']['left'] +inline_right_delimiter = delimiters['inline']['right'] + + +def _prefix_table_img_src(html, img_buket_path): + """Prefix non-data image sources in table HTML with img_buket_path.""" + if not html or not img_buket_path: + return html + + return re.sub( + r'src="(?!data:)([^"]+)"', + lambda match: f'src="{img_buket_path}/{match.group(1)}"', + html, + ) + + +def _replace_eq_tags_in_table_html(html): + """Replace ... tags in table HTML with inline math delimiters.""" + if not html: + return html + + return re.sub( + r'(.*?)', + lambda match: ( + f" {inline_left_delimiter}{unescape(match.group(1))}{inline_right_delimiter} " + ), + html, + flags=re.DOTALL, + ) + + +def _format_embedded_html(html, img_buket_path): + """Normalize embedded table HTML for markdown/content outputs.""" + return _replace_eq_tags_in_table_html(_prefix_table_img_src(html, img_buket_path)) + + +def _build_media_path(img_buket_path, image_path): + if not image_path: + return '' + if not img_buket_path: + return image_path + return f"{img_buket_path}/{image_path}" + + +def _apply_visual_sub_type(para_content, para_block): + sub_type = para_block.get('sub_type') + if sub_type: + para_content['sub_type'] = sub_type + + +def _build_visual_details_block(content, span_type, summary_override=''): + if not isinstance(content, str) or not content.strip(): + return '' + + if span_type == ContentType.CHART: + summary = summary_override or "chart content" + else: + summary = summary_override or "image content" + + return ( + "
\n" + f"{summary}\n\n" + f"{content}\n" + "
" + ) + + +def _build_visual_body_segments(image_path, content, img_buket_path, span_type, summary_override=''): + body_segments = [] + media_path = _build_media_path(img_buket_path, image_path) + if media_path: + body_segments.append((f"![]({media_path})", 'markdown_line')) + + details_block = _build_visual_details_block( + content, + span_type, + summary_override=summary_override, + ) + if details_block: + body_segments.append((details_block, 'html_block')) + + return body_segments + + +def _get_blocks_in_index_order(blocks): + return [ + block + for _, block in sorted( + enumerate(blocks), + key=lambda item: (item[1].get('index', float('inf')), item[0]), + ) + ] + + +def _render_code_block_markdown(block, para_block): + code_text = merge_para_with_text(block) + if para_block.get('sub_type') == BlockType.CODE: + guess_lang = para_block.get('guess_lang', 'txt') + return f"```{guess_lang}\n{code_text}\n```" + return code_text + + +def _render_visual_block_segments(block, para_block, img_buket_path='', table_enable=True): + block_type = block['type'] + + if block_type in [ + BlockType.IMAGE_CAPTION, + BlockType.IMAGE_FOOTNOTE, + BlockType.TABLE_CAPTION, + BlockType.TABLE_FOOTNOTE, + BlockType.CODE_CAPTION, + BlockType.CODE_FOOTNOTE, + BlockType.CHART_CAPTION, + BlockType.CHART_FOOTNOTE, + ]: + block_text = merge_para_with_text(block) + if block_text.strip(): + return [(block_text, 'markdown_line')] + return [] + + if block_type == BlockType.IMAGE_BODY: + rendered_segments = [] + for line in block.get('lines', []): + for span in line.get('spans', []): + if span.get('type') != ContentType.IMAGE: + continue + rendered_segments.extend( + _build_visual_body_segments( + span.get('image_path', ''), + span.get('content', ''), + img_buket_path, + ContentType.IMAGE, + summary_override=para_block.get('sub_type', ''), + ) + ) + return rendered_segments + + if block_type == BlockType.CHART_BODY: + rendered_segments = [] + for line in block.get('lines', []): + for span in line.get('spans', []): + if span.get('type') != ContentType.CHART: + continue + rendered_segments.extend( + _build_visual_body_segments( + span.get('image_path', ''), + span.get('content', ''), + img_buket_path, + ContentType.CHART, + summary_override=para_block.get('sub_type', ''), + ) + ) + return rendered_segments + + if block_type == BlockType.TABLE_BODY: + rendered_segments = [] + for line in block.get('lines', []): + for span in line.get('spans', []): + if span.get('type') != ContentType.TABLE: + continue + if table_enable and span.get('html', ''): + rendered_segments.append(( + _format_embedded_html(span['html'], img_buket_path), + 'html_block', + )) + elif span.get('image_path', ''): + rendered_segments.append(( + f"![]({_build_media_path(img_buket_path, span['image_path'])})", + 'markdown_line', + )) + return rendered_segments + + if block_type == BlockType.CODE_BODY: + block_text = _render_code_block_markdown(block, para_block) + if block_text.strip(): + return [(block_text, 'markdown_line')] + return [] + + return [] + + +def _get_visual_block_separator(prev_segment_kind, current_segment_kind): + if prev_segment_kind == 'html_block' or current_segment_kind == 'html_block': + return '\n\n' + return ' \n' + + +def _merge_visual_blocks_to_markdown(para_block, img_buket_path='', table_enable=True): + rendered_segments = [] + for block in _get_blocks_in_index_order(para_block.get('blocks', [])): + rendered_segments.extend( + _render_visual_block_segments( + block, + para_block, + img_buket_path, + table_enable=table_enable, + ) + ) + + para_text = '' + prev_segment_kind = None + for segment_text, segment_kind in rendered_segments: + if para_text: + para_text += _get_visual_block_separator(prev_segment_kind, segment_kind) + para_text += segment_text + prev_segment_kind = segment_kind + + return para_text + + +def merge_para_with_text( + para_block, + formula_enable=True, + img_buket_path='', + escape_text_block_prefix=True, +): + block_text = '' + for line in para_block['lines']: + for span in line['spans']: + if span['type'] in [ContentType.TEXT]: + span['content'] = full_to_half_exclude_marks(span['content']) + block_text += span['content'] + block_lang = detect_lang(block_text) + escape_markdown_text = para_block.get('type') != BlockType.CODE_BODY + + para_text = '' + for i, line in enumerate(para_block['lines']): + for j, span in enumerate(line['spans']): + span_type = span['type'] + content = '' + if span_type == ContentType.TEXT: + content = span['content'] + if escape_markdown_text: + content = escape_conservative_markdown_text(content) + elif span_type == ContentType.INLINE_EQUATION: + content = f"{inline_left_delimiter}{span['content']}{inline_right_delimiter}" + elif span_type == ContentType.INTERLINE_EQUATION: + if formula_enable: + content = f"\n{display_left_delimiter}\n{span['content']}\n{display_right_delimiter}\n" + else: + if span.get('image_path', ''): + content = f"![]({img_buket_path}/{span['image_path']})" + + content = content.strip() + if content: + + if span_type == ContentType.INTERLINE_EQUATION: + para_text += content + continue + + # 定义CJK语言集合(中日韩) + cjk_langs = {'zh', 'ja', 'ko'} + # logger.info(f'block_lang: {block_lang}, content: {content}') + + # 判断是否为行末span + is_last_span = j == len(line['spans']) - 1 + + if block_lang in cjk_langs: # 中文/日语/韩文语境下,换行不需要空格分隔,但是如果是行内公式结尾,还是要加空格 + if is_last_span and span_type != ContentType.INLINE_EQUATION: + para_text += content + else: + para_text += f'{content} ' + else: + # 西方文本语境下 每行的最后一个span判断是否要去除连字符 + if span_type in [ContentType.TEXT, ContentType.INLINE_EQUATION]: + # 如果span是line的最后一个且末尾带有-连字符,那么末尾不应该加空格,同时应该把-删除 + if ( + is_last_span + and span_type == ContentType.TEXT + and is_hyphen_at_line_end(content) + ): + # 如果下一行的第一个span是小写字母开头,删除连字符 + if ( + i+1 < len(para_block['lines']) + and para_block['lines'][i + 1].get('spans') + and para_block['lines'][i + 1]['spans'][0].get('type') == ContentType.TEXT + and para_block['lines'][i + 1]['spans'][0].get('content', '') + and para_block['lines'][i + 1]['spans'][0]['content'][0].islower() + ): + para_text += content[:-1] + else: # 如果没有下一行,或者下一行的第一个span不是小写字母开头,则保留连字符但不加空格 + para_text += content + else: # 西方文本语境下 content间需要空格分隔 + para_text += f'{content} ' + if escape_text_block_prefix and para_block.get('type') == BlockType.TEXT: + para_text = escape_text_block_markdown_prefix(para_text) + return para_text + + +def mk_blocks_to_markdown(para_blocks, make_mode, formula_enable, table_enable, img_buket_path=''): + page_markdown = [] + for para_block in para_blocks: + para_text = '' + para_type = para_block['type'] + if para_type in [BlockType.TEXT, BlockType.INTERLINE_EQUATION, BlockType.PHONETIC, BlockType.REF_TEXT]: + para_text = merge_para_with_text(para_block, formula_enable=formula_enable, img_buket_path=img_buket_path) + elif para_type == BlockType.LIST: + for block in para_block['blocks']: + item_text = merge_para_with_text( + block, + formula_enable=formula_enable, + img_buket_path=img_buket_path, + escape_text_block_prefix=False, + ) + para_text += f"{item_text} \n" + elif para_type == BlockType.TITLE: + title_level = get_title_level(para_block) + para_text = f'{"#" * title_level} {merge_para_with_text(para_block)}' + elif para_type == BlockType.IMAGE: + if make_mode == MakeMode.NLP_MD: + continue + elif make_mode == MakeMode.MM_MD: + para_text = _merge_visual_blocks_to_markdown( + para_block, + img_buket_path, + table_enable=table_enable, + ) + + elif para_type == BlockType.TABLE: + if make_mode == MakeMode.NLP_MD: + continue + elif make_mode == MakeMode.MM_MD: + para_text = _merge_visual_blocks_to_markdown( + para_block, + img_buket_path, + table_enable=table_enable, + ) + elif para_type == BlockType.CHART: + if make_mode == MakeMode.NLP_MD: + continue + elif make_mode == MakeMode.MM_MD: + para_text = _merge_visual_blocks_to_markdown( + para_block, + img_buket_path, + table_enable=table_enable, + ) + elif para_type == BlockType.CODE: + para_text = _merge_visual_blocks_to_markdown( + para_block, + img_buket_path, + table_enable=table_enable, + ) + + if para_text.strip() == '': + continue + else: + # page_markdown.append(para_text.strip() + ' ') + page_markdown.append(para_text.strip()) + + return page_markdown + + +def make_blocks_to_content_list(para_block, img_buket_path, page_idx, page_size): + para_type = para_block['type'] + para_content = {} + if para_type in [ + BlockType.TEXT, + BlockType.REF_TEXT, + BlockType.PHONETIC, + BlockType.HEADER, + BlockType.FOOTER, + BlockType.PAGE_NUMBER, + BlockType.ASIDE_TEXT, + BlockType.PAGE_FOOTNOTE, + ]: + para_content = { + 'type': para_type, + 'text': merge_para_with_text(para_block), + } + elif para_type == BlockType.LIST: + para_content = { + 'type': para_type, + 'sub_type': para_block.get('sub_type', ''), + 'list_items':[], + } + for block in para_block['blocks']: + item_text = merge_para_with_text(block, escape_text_block_prefix=False) + if item_text.strip(): + para_content['list_items'].append(item_text) + elif para_type == BlockType.TITLE: + title_level = get_title_level(para_block) + para_content = { + 'type': ContentType.TEXT, + 'text': merge_para_with_text(para_block), + } + if title_level != 0: + para_content['text_level'] = title_level + elif para_type == BlockType.INTERLINE_EQUATION: + para_content = { + 'type': ContentType.EQUATION, + 'text': merge_para_with_text(para_block), + 'text_format': 'latex', + } + elif para_type == BlockType.IMAGE: + para_content = {'type': ContentType.IMAGE, 'img_path': '', BlockType.IMAGE_CAPTION: [], BlockType.IMAGE_FOOTNOTE: []} + image_path, _ = get_body_data(para_block) + para_content['img_path'] = _build_media_path(img_buket_path, image_path) + _apply_visual_sub_type(para_content, para_block) + for block in para_block['blocks']: + if block['type'] == BlockType.IMAGE_CAPTION: + para_content[BlockType.IMAGE_CAPTION].append(merge_para_with_text(block)) + if block['type'] == BlockType.IMAGE_FOOTNOTE: + para_content[BlockType.IMAGE_FOOTNOTE].append(merge_para_with_text(block)) + elif para_type == BlockType.TABLE: + para_content = {'type': ContentType.TABLE, 'img_path': '', BlockType.TABLE_CAPTION: [], BlockType.TABLE_FOOTNOTE: []} + for block in para_block['blocks']: + if block['type'] == BlockType.TABLE_BODY: + for line in block['lines']: + for span in line['spans']: + if span['type'] == ContentType.TABLE: + + if span.get('html', ''): + para_content[BlockType.TABLE_BODY] = _format_embedded_html( + span['html'], + img_buket_path, + ) + + if span.get('image_path', ''): + para_content['img_path'] = f"{img_buket_path}/{span['image_path']}" + + if block['type'] == BlockType.TABLE_CAPTION: + para_content[BlockType.TABLE_CAPTION].append(merge_para_with_text(block)) + if block['type'] == BlockType.TABLE_FOOTNOTE: + para_content[BlockType.TABLE_FOOTNOTE].append(merge_para_with_text(block)) + elif para_type == BlockType.CHART: + image_path, chart_content = get_body_data(para_block) + para_content = { + 'type': ContentType.CHART, + 'img_path': _build_media_path(img_buket_path, image_path), + 'content': chart_content if chart_content else '', + BlockType.CHART_CAPTION: [], + BlockType.CHART_FOOTNOTE: [], + } + _apply_visual_sub_type(para_content, para_block) + for block in para_block['blocks']: + if block['type'] == BlockType.CHART_CAPTION: + para_content[BlockType.CHART_CAPTION].append(merge_para_with_text(block)) + if block['type'] == BlockType.CHART_FOOTNOTE: + para_content[BlockType.CHART_FOOTNOTE].append(merge_para_with_text(block)) + elif para_type == BlockType.CODE: + para_content = {'type': BlockType.CODE, 'sub_type': para_block["sub_type"], BlockType.CODE_CAPTION: []} + for block in para_block['blocks']: + if block['type'] == BlockType.CODE_BODY: + code_text = merge_para_with_text(block) + if para_block['sub_type'] == BlockType.CODE: + guess_lang = para_block.get("guess_lang", "txt") + code_text = f"```{guess_lang}\n{code_text}\n```" + para_content[BlockType.CODE_BODY] = code_text + if block['type'] == BlockType.CODE_CAPTION: + para_content[BlockType.CODE_CAPTION].append(merge_para_with_text(block)) + + page_width, page_height = page_size + para_bbox = para_block.get('bbox') + if para_bbox: + x0, y0, x1, y1 = para_bbox + para_content['bbox'] = [ + int(x0 * 1000 / page_width), + int(y0 * 1000 / page_height), + int(x1 * 1000 / page_width), + int(y1 * 1000 / page_height), + ] + + para_content['page_idx'] = page_idx + + return para_content + + +def make_blocks_to_content_list_v2(para_block, img_buket_path, page_size): + para_type = para_block['type'] + para_content = {} + if para_type in [ + BlockType.HEADER, + BlockType.FOOTER, + BlockType.ASIDE_TEXT, + BlockType.PAGE_NUMBER, + BlockType.PAGE_FOOTNOTE, + ]: + if para_type == BlockType.HEADER: + content_type = ContentTypeV2.PAGE_HEADER + elif para_type == BlockType.FOOTER: + content_type = ContentTypeV2.PAGE_FOOTER + elif para_type == BlockType.ASIDE_TEXT: + content_type = ContentTypeV2.PAGE_ASIDE_TEXT + elif para_type == BlockType.PAGE_NUMBER: + content_type = ContentTypeV2.PAGE_NUMBER + elif para_type == BlockType.PAGE_FOOTNOTE: + content_type = ContentTypeV2.PAGE_FOOTNOTE + else: + raise ValueError(f"Unknown para_type: {para_type}") + para_content = { + 'type': content_type, + 'content': { + f"{content_type}_content": merge_para_with_text_v2(para_block), + } + } + elif para_type == BlockType.TITLE: + title_level = get_title_level(para_block) + if title_level != 0: + para_content = { + 'type': ContentTypeV2.TITLE, + 'content': { + "title_content": merge_para_with_text_v2(para_block), + "level": title_level + } + } + else: + para_content = { + 'type': ContentTypeV2.PARAGRAPH, + 'content': { + "paragraph_content": merge_para_with_text_v2(para_block), + } + } + elif para_type in [ + BlockType.TEXT, + BlockType.PHONETIC + ]: + para_content = { + 'type': ContentTypeV2.PARAGRAPH, + 'content': { + 'paragraph_content': merge_para_with_text_v2(para_block), + } + } + elif para_type == BlockType.INTERLINE_EQUATION: + image_path, math_content = get_body_data(para_block) + para_content = { + 'type': ContentTypeV2.EQUATION_INTERLINE, + 'content': { + 'math_content': math_content, + 'math_type': 'latex', + 'image_source': {'path': f"{img_buket_path}/{image_path}"}, + } + } + elif para_type == BlockType.IMAGE: + image_caption = [] + image_footnote = [] + image_path, _ = get_body_data(para_block) + image_source = { + 'path': _build_media_path(img_buket_path, image_path), + } + for block in para_block['blocks']: + if block['type'] == BlockType.IMAGE_CAPTION: + image_caption.extend(merge_para_with_text_v2(block)) + if block['type'] == BlockType.IMAGE_FOOTNOTE: + image_footnote.extend(merge_para_with_text_v2(block)) + para_content = { + 'type': ContentTypeV2.IMAGE, + 'content': { + 'image_source': image_source, + 'image_caption': image_caption, + 'image_footnote': image_footnote, + } + } + _apply_visual_sub_type(para_content, para_block) + elif para_type == BlockType.TABLE: + table_caption = [] + table_footnote = [] + image_path, html = get_body_data(para_block) + table_html = _format_embedded_html(html, img_buket_path) + image_source = { + 'path': f"{img_buket_path}/{image_path}", + } + if table_html.count(" 1: + table_nest_level = 2 + else: + table_nest_level = 1 + if ( + "colspan" in table_html or + "rowspan" in table_html or + table_nest_level > 1 + ): + table_type = ContentTypeV2.TABLE_COMPLEX + else: + table_type = ContentTypeV2.TABLE_SIMPLE + + for block in para_block['blocks']: + if block['type'] == BlockType.TABLE_CAPTION: + table_caption.extend(merge_para_with_text_v2(block)) + if block['type'] == BlockType.TABLE_FOOTNOTE: + table_footnote.extend(merge_para_with_text_v2(block)) + para_content = { + 'type': ContentTypeV2.TABLE, + 'content': { + 'image_source': image_source, + 'table_caption': table_caption, + 'table_footnote': table_footnote, + 'html': table_html, + 'table_type': table_type, + 'table_nest_level': table_nest_level, + } + } + elif para_type == BlockType.CHART: + chart_caption = [] + chart_footnote = [] + image_path, chart_content = get_body_data(para_block) + for block in para_block['blocks']: + if block['type'] == BlockType.CHART_CAPTION: + chart_caption.extend(merge_para_with_text_v2(block)) + if block['type'] == BlockType.CHART_FOOTNOTE: + chart_footnote.extend(merge_para_with_text_v2(block)) + para_content = { + 'type': ContentTypeV2.CHART, + 'content': { + 'image_source': { + 'path': _build_media_path(img_buket_path, image_path), + }, + 'content': chart_content if chart_content else '', + 'chart_caption': chart_caption, + 'chart_footnote': chart_footnote, + } + } + _apply_visual_sub_type(para_content, para_block) + elif para_type == BlockType.CODE: + code_caption = [] + code_content = [] + for block in para_block['blocks']: + if block['type'] == BlockType.CODE_CAPTION: + code_caption.extend(merge_para_with_text_v2(block)) + if block['type'] == BlockType.CODE_BODY: + code_content = merge_para_with_text_v2(block) + sub_type = para_block["sub_type"] + if sub_type == BlockType.CODE: + para_content = { + 'type': ContentTypeV2.CODE, + 'content': { + 'code_caption': code_caption, + 'code_content': code_content, + 'code_language': para_block.get('guess_lang', 'txt'), + } + } + elif sub_type == BlockType.ALGORITHM: + para_content = { + 'type': ContentTypeV2.ALGORITHM, + 'content': { + 'algorithm_caption': code_caption, + 'algorithm_content': code_content, + } + } + else: + raise ValueError(f"Unknown code sub_type: {sub_type}") + elif para_type == BlockType.REF_TEXT: + para_content = { + 'type': ContentTypeV2.LIST, + 'content': { + 'list_type': ContentTypeV2.LIST_REF, + 'list_items': [ + { + 'item_type': 'text', + 'item_content': merge_para_with_text_v2(para_block), + } + ], + } + } + elif para_type == BlockType.LIST: + if 'sub_type' in para_block: + if para_block['sub_type'] == BlockType.REF_TEXT: + list_type = ContentTypeV2.LIST_REF + elif para_block['sub_type'] == BlockType.TEXT: + list_type = ContentTypeV2.LIST_TEXT + else: + raise ValueError(f"Unknown list sub_type: {para_block['sub_type']}") + else: + list_type = ContentTypeV2.LIST_TEXT + list_items = [] + for block in para_block['blocks']: + item_content = merge_para_with_text_v2(block) + if item_content: + list_items.append({ + 'item_type': 'text', + 'item_content': item_content, + }) + para_content = { + 'type': ContentTypeV2.LIST, + 'content': { + 'list_type': list_type, + 'list_items': list_items, + } + } + + page_width, page_height = page_size + para_bbox = para_block.get('bbox') + if para_bbox: + x0, y0, x1, y1 = para_bbox + para_content['bbox'] = [ + int(x0 * 1000 / page_width), + int(y0 * 1000 / page_height), + int(x1 * 1000 / page_width), + int(y1 * 1000 / page_height), + ] + + return para_content + + + + + +def get_body_data(para_block): + """ + Extract image_path and body content from para_block + Returns: + - For IMAGE: (image_path, content) + - For TABLE: (image_path, html) + - For CHART: (image_path, content) + - For INTERLINE_EQUATION: (image_path, content) + - Default: ('', '') + """ + + def get_data_from_spans(lines): + for line in lines: + for span in line.get('spans', []): + span_type = span.get('type') + if span_type == ContentType.TABLE: + return span.get('image_path', ''), span.get('html', '') + elif span_type == ContentType.CHART: + return span.get('image_path', ''), span.get('content', '') + elif span_type == ContentType.IMAGE: + return span.get('image_path', ''), span.get('content', '') + elif span_type == ContentType.INTERLINE_EQUATION: + return span.get('image_path', ''), span.get('content', '') + elif span_type == ContentType.TEXT: + return '', span.get('content', '') + return '', '' + + # 处理嵌套的 blocks 结构 + if 'blocks' in para_block: + for block in para_block['blocks']: + block_type = block.get('type') + if block_type in [BlockType.IMAGE_BODY, BlockType.TABLE_BODY, BlockType.CHART_BODY, BlockType.CODE_BODY]: + result = get_data_from_spans(block.get('lines', [])) + if result != ('', ''): + return result + return '', '' + + # 处理直接包含 lines 的结构 + return get_data_from_spans(para_block.get('lines', [])) + + +def merge_para_with_text_v2(para_block): + block_text = '' + for line in para_block['lines']: + for span in line['spans']: + if span['type'] in [ContentType.TEXT]: + span['content'] = full_to_half_exclude_marks(span['content']) + block_text += span['content'] + block_lang = detect_lang(block_text) + + para_content = [] + para_type = para_block['type'] + for i, line in enumerate(para_block['lines']): + for j, span in enumerate(line['spans']): + span_type = span['type'] + if span.get("content", '').strip(): + if span_type == ContentType.TEXT: + if para_type == BlockType.PHONETIC: + span_type = ContentTypeV2.SPAN_PHONETIC + else: + span_type = ContentTypeV2.SPAN_TEXT + if span_type == ContentType.INLINE_EQUATION: + span_type = ContentTypeV2.SPAN_EQUATION_INLINE + if span_type in [ + ContentTypeV2.SPAN_TEXT, + ]: + # 定义CJK语言集合(中日韩) + cjk_langs = {'zh', 'ja', 'ko'} + # logger.info(f'block_lang: {block_lang}, content: {content}') + + # 判断是否为行末span + is_last_span = j == len(line['spans']) - 1 + + if block_lang in cjk_langs: # 中文/日语/韩文语境下,换行不需要空格分隔,但是如果是行内公式结尾,还是要加空格 + if is_last_span: + span_content = span['content'] + else: + span_content = f"{span['content']} " + else: + # 如果span是line的最后一个且末尾带有-连字符,那么末尾不应该加空格,同时应该把-删除 + if ( + is_last_span + and is_hyphen_at_line_end(span['content']) + ): + # 如果下一行的第一个span是小写字母开头,删除连字符 + if ( + i + 1 < len(para_block['lines']) + and para_block['lines'][i + 1].get('spans') + and para_block['lines'][i + 1]['spans'][0].get('type') == ContentType.TEXT + and para_block['lines'][i + 1]['spans'][0].get('content', '') + and para_block['lines'][i + 1]['spans'][0]['content'][0].islower() + ): + span_content = span['content'][:-1] + else: # 如果没有下一行,或者下一行的第一个span不是小写字母开头,则保留连字符但不加空格 + span_content = span['content'] + else: + # 西方文本语境下content间需要空格分隔 + span_content = f"{span['content']} " + + if para_content and para_content[-1]['type'] == span_type: + # 合并相同类型的span + para_content[-1]['content'] += span_content + else: + span_content = { + 'type': span_type, + 'content': span_content, + } + para_content.append(span_content) + + elif span_type in [ + ContentTypeV2.SPAN_PHONETIC, + ContentTypeV2.SPAN_EQUATION_INLINE, + ]: + span_content = { + 'type': span_type, + 'content': span['content'], + } + para_content.append(span_content) + else: + logger.warning(f"Unknown span type in merge_para_with_text_v2: {span_type}") + return para_content + + +def union_make(pdf_info_dict: list, + make_mode: str, + img_buket_path: str = '', + ): + + formula_enable = get_formula_enable(os.getenv('MINERU_VLM_FORMULA_ENABLE', 'True').lower() == 'true') + table_enable = get_table_enable(os.getenv('MINERU_VLM_TABLE_ENABLE', 'True').lower() == 'true') + + output_content = [] + for page_info in pdf_info_dict: + paras_of_layout = page_info.get('para_blocks') + paras_of_discarded = page_info.get('discarded_blocks') + page_idx = page_info.get('page_idx') + page_size = page_info.get('page_size') + if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]: + if not paras_of_layout: + continue + page_markdown = mk_blocks_to_markdown(paras_of_layout, make_mode, formula_enable, table_enable, img_buket_path) + output_content.extend(page_markdown) + elif make_mode == MakeMode.CONTENT_LIST: + para_blocks = (paras_of_layout or []) + (paras_of_discarded or []) + if not para_blocks: + continue + for para_block in para_blocks: + para_content = make_blocks_to_content_list(para_block, img_buket_path, page_idx, page_size) + output_content.append(para_content) + elif make_mode == MakeMode.CONTENT_LIST_V2: + # https://github.com/drunkpig/llm-webkit-mirror/blob/dev6/docs/specification/output_format/content_list_spec.md + para_blocks = (paras_of_layout or []) + (paras_of_discarded or []) + page_contents = [] + if para_blocks: + for para_block in para_blocks: + para_content = make_blocks_to_content_list_v2(para_block, img_buket_path, page_size) + page_contents.append(para_content) + output_content.append(page_contents) + + if make_mode in [MakeMode.MM_MD, MakeMode.NLP_MD]: + return '\n\n'.join(output_content) + elif make_mode in [MakeMode.CONTENT_LIST, MakeMode.CONTENT_LIST_V2]: + return output_content + return None + + +def get_title_level(block): + title_level = block.get('level', 1) + if title_level > 4: + title_level = 4 + elif title_level < 1: + title_level = 0 + return title_level diff --git a/mineru/cli/__init__.py b/mineru/cli/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/cli/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/cli/api_client.py b/mineru/cli/api_client.py new file mode 100644 index 000000000..9370f5f00 --- /dev/null +++ b/mineru/cli/api_client.py @@ -0,0 +1,730 @@ +# Copyright (c) Opendatalab. All rights reserved. +import asyncio +import atexit +import json +import mimetypes +import os +import signal +import socket +import subprocess +import sys +import tempfile +import threading +import time +import zipfile +from contextlib import ExitStack +from dataclasses import dataclass +from pathlib import Path, PurePosixPath +from typing import Callable, Optional, Sequence + +import click +import httpx +from loguru import logger + +from mineru.cli.api_protocol import ( + API_PROTOCOL_VERSION, + DEFAULT_MAX_CONCURRENT_REQUESTS, +) +from mineru.utils.config_reader import ( + get_max_concurrent_requests as read_max_concurrent_requests, +) + +HEALTH_ENDPOINT = "/health" +TASKS_ENDPOINT = "/tasks" +TASK_STATUS_POLL_INTERVAL_SECONDS = 1.0 +TASK_RESULT_TIMEOUT_SECONDS = 3600 +LOCAL_API_SHUTDOWN_TIMEOUT_SECONDS = 10 +LOCAL_API_CLEANUP_RETRIES = 8 +LOCAL_API_CLEANUP_RETRY_INTERVAL_SECONDS = 0.25 +PROCESS_TREE_CLEANUP_GRACE_SECONDS = 0.1 + + +def get_float_env(name: str, default: float, minimum: float = 0.0) -> float: + value = os.getenv(name) + if value is None: + return default + try: + resolved = float(value) + except ValueError: + logger.warning( + "Invalid {} value: {}. Expected a number, using default {}.", + name, + value, + default, + ) + return default + if resolved < minimum: + logger.warning( + "Invalid {} value: {}. Expected a number >= {}, using default {}.", + name, + value, + minimum, + default, + ) + return default + return resolved + + +def get_local_api_startup_timeout_seconds(default: float = 300.0) -> float: + return get_float_env( + "MINERU_LOCAL_API_STARTUP_TIMEOUT_SECONDS", + default, + minimum=1.0, + ) + + +LOCAL_API_STARTUP_TIMEOUT_SECONDS = get_local_api_startup_timeout_seconds() + + +def build_managed_process_popen_kwargs() -> dict[str, object]: + if os.name == "nt": + creationflags = getattr(subprocess, "CREATE_NEW_PROCESS_GROUP", 0) + if creationflags: + return {"creationflags": creationflags} + return {} + return {"start_new_session": True} + + +def _signal_process_tree(process: subprocess.Popen[bytes], *, force: bool) -> None: + if os.name == "nt": + command = ["taskkill", "/PID", str(process.pid), "/T"] + if force: + command.append("/F") + try: + subprocess.run( + command, + check=False, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL, + ) + except Exception as exc: + logger.debug( + "Failed to signal managed MinerU process tree {} on Windows: {}", + process.pid, + exc, + ) + return + + sig = signal.SIGKILL if force else signal.SIGTERM + try: + os.killpg(process.pid, sig) + except ProcessLookupError: + return + except OSError as exc: + logger.debug( + "Failed to signal managed MinerU process group {}: {}", + process.pid, + exc, + ) + + +def cleanup_process_tree_descendants( + process: subprocess.Popen[bytes], + *, + grace_seconds: float = PROCESS_TREE_CLEANUP_GRACE_SECONDS, +) -> None: + if os.name == "nt": + return + + _signal_process_tree(process, force=False) + if grace_seconds > 0: + time.sleep(grace_seconds) + _signal_process_tree(process, force=True) + + +def stop_managed_process( + process: subprocess.Popen[bytes] | None, + *, + shutdown_timeout_seconds: float, + use_stdin_shutdown_watcher: bool, +) -> None: + if process is None: + return + + was_running_at_entry = process.poll() is None + exited_via_stdin_eof = False + tree_signaled = False + + if not was_running_at_entry: + return + + if use_stdin_shutdown_watcher: + if process.stdin is not None and not process.stdin.closed: + process.stdin.close() + try: + process.wait(timeout=shutdown_timeout_seconds) + exited_via_stdin_eof = True + except subprocess.TimeoutExpired: + logger.debug( + "Managed MinerU process did not stop after stdin EOF within {}s. Falling back to process-tree termination.", + shutdown_timeout_seconds, + ) + + if process.poll() is None: + _signal_process_tree(process, force=False) + tree_signaled = True + try: + process.wait(timeout=shutdown_timeout_seconds) + except subprocess.TimeoutExpired: + pass + + if process.poll() is None: + _signal_process_tree(process, force=True) + tree_signaled = True + try: + process.wait(timeout=shutdown_timeout_seconds) + except subprocess.TimeoutExpired: + logger.warning( + "Managed MinerU process {} did not exit after forceful stop.", + process.pid, + ) + + if exited_via_stdin_eof and not tree_signaled: + cleanup_process_tree_descendants(process) + + +@dataclass(frozen=True) +class UploadAsset: + path: Path + upload_name: str + + +@dataclass(frozen=True) +class ServerHealth: + base_url: str + max_concurrent_requests: int + processing_window_size: int + + +@dataclass(frozen=True) +class SubmitResponse: + task_id: str + status_url: str + result_url: str + file_names: tuple[str, ...] = () + queued_ahead: int | None = None + + +@dataclass(frozen=True) +class TaskStatusSnapshot: + status: str + queued_ahead: int | None = None + + +class LocalAPIServer: + def __init__(self, extra_cli_args: Sequence[str] = ()): + self.temp_dir = tempfile.TemporaryDirectory(prefix="mineru-api-client-") + self.temp_root = Path(self.temp_dir.name) + self.output_root = self.temp_root / "output" + self.base_url: str | None = None + self.process: subprocess.Popen[bytes] | None = None + self._atexit_registered = False + self.extra_cli_args = tuple(extra_cli_args) + # On Windows, the temporary FastAPI child process can stall during parsing + # startup when launched with stdin=PIPE and an EOF-based shutdown watcher. + # Use explicit process termination there instead of stdin-driven shutdown. + self._use_stdin_shutdown_watcher = os.name != "nt" + + def start(self) -> str: + if self.process is not None: + raise RuntimeError("Local API server is already running") + + resolved_port = find_free_port() + remaining_cli_args = strip_local_api_network_args(self.extra_cli_args) + self.base_url = f"http://127.0.0.1:{resolved_port}" + env = os.environ.copy() + env["MINERU_API_OUTPUT_ROOT"] = str(self.output_root) + env["MINERU_API_MAX_CONCURRENT_REQUESTS"] = str( + read_max_concurrent_requests(default=DEFAULT_MAX_CONCURRENT_REQUESTS) + ) + env["MINERU_API_DISABLE_ACCESS_LOG"] = "1" + if self._use_stdin_shutdown_watcher: + env["MINERU_API_SHUTDOWN_ON_STDIN_EOF"] = "1" + stdin_target = subprocess.PIPE + else: + env.pop("MINERU_API_SHUTDOWN_ON_STDIN_EOF", None) + stdin_target = subprocess.DEVNULL + self.output_root.mkdir(parents=True, exist_ok=True) + + command = [ + sys.executable, + "-m", + "mineru.cli.fast_api", + "--host", + "127.0.0.1", + "--port", + str(resolved_port), + *remaining_cli_args, + ] + self.process = subprocess.Popen( + command, + cwd=os.getcwd(), + env=env, + stdin=stdin_target, + **build_managed_process_popen_kwargs(), + ) + + if not self._atexit_registered: + atexit.register(self.stop) + self._atexit_registered = True + return self.base_url + + def stop(self) -> None: + process = self.process + self.process = None + try: + if process is not None: + stop_managed_process( + process, + shutdown_timeout_seconds=LOCAL_API_SHUTDOWN_TIMEOUT_SECONDS, + use_stdin_shutdown_watcher=self._use_stdin_shutdown_watcher, + ) + finally: + if self._atexit_registered: + try: + atexit.unregister(self.stop) + except Exception: + pass + self._atexit_registered = False + self._cleanup_temp_dir() + + def _cleanup_temp_dir(self) -> None: + last_error: Exception | None = None + for attempt in range(LOCAL_API_CLEANUP_RETRIES): + try: + self.temp_dir.cleanup() + return + except FileNotFoundError: + return + except Exception as exc: + last_error = exc + if attempt + 1 < LOCAL_API_CLEANUP_RETRIES: + time.sleep(LOCAL_API_CLEANUP_RETRY_INTERVAL_SECONDS) + + if last_error is not None: + logger.warning( + "Failed to clean up temporary MinerU API directory {}: {}. " + "You can remove it manually after processes release any open handles.", + self.temp_root, + last_error, + ) + + +class ReusableLocalAPIServer: + def __init__(self, extra_cli_args: Sequence[str] = ()): + self._lock = threading.Lock() + self._server: LocalAPIServer | None = None + self._extra_cli_args = tuple(extra_cli_args) + + def configure(self, extra_cli_args: Sequence[str]) -> None: + with self._lock: + self._extra_cli_args = tuple(extra_cli_args) + server = self._server + if server is None: + return + if server.process is not None and server.process.poll() is None: + return + self._server = None + + def ensure_started(self) -> tuple[LocalAPIServer, bool]: + with self._lock: + server = self._server + if server is not None and server.process is not None and server.process.poll() is None: + return server, False + + if server is not None: + server.stop() + + server = LocalAPIServer(extra_cli_args=self._extra_cli_args) + server.start() + self._server = server + return server, True + + def stop(self) -> None: + with self._lock: + server = self._server + self._server = None + if server is not None: + server.stop() + + +def build_http_timeout() -> httpx.Timeout: + return httpx.Timeout(connect=10, read=60, write=300, pool=30) + + +def find_free_port() -> int: + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: + sock.bind(("127.0.0.1", 0)) + sock.listen(1) + return int(sock.getsockname()[1]) + + +def strip_local_api_network_args(extra_cli_args: Sequence[str]) -> tuple[str, ...]: + remaining_args: list[str] = [] + i = 0 + + while i < len(extra_cli_args): + arg = extra_cli_args[i] + if arg == "--host": + next_index = i + 1 + if next_index < len(extra_cli_args) and not extra_cli_args[next_index].startswith("--"): + i += 2 + else: + i += 1 + continue + + if arg == "--port": + next_index = i + 1 + if next_index < len(extra_cli_args) and not extra_cli_args[next_index].startswith("--"): + i += 2 + else: + i += 1 + continue + + if arg.startswith("--host="): + i += 1 + continue + + if arg.startswith("--port="): + i += 1 + continue + + remaining_args.append(arg) + i += 1 + + return tuple(remaining_args) + + +def normalize_base_url(url: str) -> str: + return url.rstrip("/") + + +def resolve_effective_max_concurrent_requests( + local_max: int, + server_max: int, +) -> int: + if local_max <= 0 or server_max <= 0: + raise ValueError( + "local_max and server_max must both be positive integers" + ) + return min(local_max, server_max) + + +def response_detail(response: httpx.Response) -> str: + try: + payload = response.json() + except Exception: + text = response.text.strip() + return text or response.reason_phrase + + if isinstance(payload, dict): + detail = payload.get("detail") + if isinstance(detail, str): + return detail + error = payload.get("error") + if isinstance(error, str): + return error + message = payload.get("message") + if isinstance(message, str): + return message + return json.dumps(payload, ensure_ascii=False) + + +def validate_server_health_payload(payload: dict, base_url: str) -> ServerHealth: + status = payload.get("status") + if status != "healthy": + raise click.ClickException( + f"MinerU API at {base_url} is not healthy: {json.dumps(payload, ensure_ascii=False)}" + ) + + protocol_version = payload.get("protocol_version") + if protocol_version != API_PROTOCOL_VERSION: + raise click.ClickException( + f"MinerU API at {base_url} returned protocol_version={protocol_version}, " + f"expected {API_PROTOCOL_VERSION}" + ) + + max_concurrent_requests = payload.get("max_concurrent_requests") + processing_window_size = payload.get("processing_window_size") + if not isinstance(max_concurrent_requests, int) or max_concurrent_requests <= 0: + raise click.ClickException( + f"MinerU API at {base_url} did not return a valid positive max_concurrent_requests" + ) + if not isinstance(processing_window_size, int): + raise click.ClickException( + f"MinerU API at {base_url} did not return a valid processing_window_size" + ) + + return ServerHealth( + base_url=base_url, + max_concurrent_requests=max_concurrent_requests, + processing_window_size=max(1, processing_window_size), + ) + + +async def fetch_server_health( + client: httpx.AsyncClient, + base_url: str, +) -> ServerHealth: + response = await client.get(f"{base_url}{HEALTH_ENDPOINT}") + if response.status_code != 200: + raise click.ClickException( + f"Failed to query MinerU API health from {base_url}: " + f"{response.status_code} {response_detail(response)}" + ) + return validate_server_health_payload(response.json(), base_url) + + +async def wait_for_local_api_ready( + client: httpx.AsyncClient, + local_server: LocalAPIServer, + timeout_seconds: float = LOCAL_API_STARTUP_TIMEOUT_SECONDS, +) -> ServerHealth: + assert local_server.base_url is not None + deadline = asyncio.get_running_loop().time() + timeout_seconds + last_error: str | None = None + + while asyncio.get_running_loop().time() < deadline: + process = local_server.process + if process is not None and process.poll() is not None: + raise click.ClickException( + "Local mineru-api exited before becoming healthy." + ) + try: + return await fetch_server_health(client, local_server.base_url) + except click.ClickException as exc: + last_error = str(exc) + except httpx.HTTPError as exc: + last_error = str(exc) + await asyncio.sleep(TASK_STATUS_POLL_INTERVAL_SECONDS) + + message = "Timed out waiting for local mineru-api to become healthy." + if last_error: + message = f"{message} {last_error}" + raise click.ClickException(message) + + +def build_parse_request_form_data( + lang_list: Sequence[str], + backend: str, + parse_method: str, + formula_enable: bool, + table_enable: bool, + server_url: Optional[str], + start_page_id: int, + end_page_id: Optional[int], + *, + return_md: bool, + return_middle_json: bool, + return_model_output: bool, + return_content_list: bool, + return_images: bool, + response_format_zip: bool, + return_original_file: bool, +) -> dict[str, str | list[str]]: + effective_lang_list = list(lang_list) or ["ch"] + data: dict[str, str | list[str]] = { + "lang_list": effective_lang_list, + "backend": backend, + "parse_method": parse_method, + "formula_enable": str(formula_enable).lower(), + "table_enable": str(table_enable).lower(), + "return_md": str(return_md).lower(), + "return_middle_json": str(return_middle_json).lower(), + "return_model_output": str(return_model_output).lower(), + "return_content_list": str(return_content_list).lower(), + "return_images": str(return_images).lower(), + "response_format_zip": str(response_format_zip).lower(), + "return_original_file": str(return_original_file).lower(), + "start_page_id": str(start_page_id), + "end_page_id": str(99999 if end_page_id is None else end_page_id), + } + if server_url: + data["server_url"] = server_url + return data + + +async def submit_parse_task( + base_url: str, + upload_assets: Sequence[UploadAsset], + form_data: dict[str, str | list[str]], +) -> SubmitResponse: + return await asyncio.to_thread( + submit_parse_task_sync, + base_url, + upload_assets, + form_data, + ) + + +def submit_parse_task_sync( + base_url: str, + upload_assets: Sequence[UploadAsset], + form_data: dict[str, str | list[str]], +) -> SubmitResponse: + with httpx.Client(timeout=build_http_timeout(), follow_redirects=True) as sync_client: + with ExitStack() as stack: + files = [] + for upload_asset in upload_assets: + mime_type = ( + mimetypes.guess_type(upload_asset.upload_name)[0] + or "application/octet-stream" + ) + file_handle = stack.enter_context(open(upload_asset.path, "rb")) + files.append( + ( + "files", + ( + upload_asset.upload_name, + file_handle, + mime_type, + ), + ) + ) + + response = sync_client.post( + f"{base_url}{TASKS_ENDPOINT}", + data=form_data, + files=files, + ) + + if response.status_code != 202: + raise click.ClickException( + f"Failed to submit parsing task: " + f"{response.status_code} {response_detail(response)}" + ) + + payload = response.json() + task_id = payload.get("task_id") + status_url = payload.get("status_url") + result_url = payload.get("result_url") + file_names = payload.get("file_names") + queued_ahead = payload.get("queued_ahead") + if ( + not isinstance(task_id, str) + or not isinstance(status_url, str) + or not isinstance(result_url, str) + ): + raise click.ClickException("MinerU API returned an invalid task payload") + + normalized_file_names: tuple[str, ...] = () + if isinstance(file_names, list) and all(isinstance(name, str) for name in file_names): + normalized_file_names = tuple(file_names) + if not isinstance(queued_ahead, int): + queued_ahead = None + + return SubmitResponse( + task_id=task_id, + status_url=status_url, + result_url=result_url, + file_names=normalized_file_names, + queued_ahead=queued_ahead, + ) + + +async def wait_for_task_result( + client: httpx.AsyncClient, + submit_response: SubmitResponse, + task_label: str, + *, + status_callback: Optional[Callable[[str], None]] = None, + status_snapshot_callback: Optional[Callable[[TaskStatusSnapshot], None]] = None, + timeout_seconds: float = TASK_RESULT_TIMEOUT_SECONDS, +) -> None: + deadline = asyncio.get_running_loop().time() + timeout_seconds + while asyncio.get_running_loop().time() < deadline: + try: + response = await client.get(submit_response.status_url) + except httpx.ReadTimeout: + logger.warning( + "Timed out while polling task status for {} (task_id={}). " + "This can happen during cold start; retrying until the task deadline.", + task_label, + submit_response.task_id, + ) + await asyncio.sleep(TASK_STATUS_POLL_INTERVAL_SECONDS) + continue + if response.status_code != 200: + raise click.ClickException( + f"Failed to query task status for {task_label}: " + f"{response.status_code} {response_detail(response)}" + ) + + payload = response.json() + status = payload.get("status") + if status in {"pending", "processing"}: + queued_ahead = payload.get("queued_ahead") + if not isinstance(queued_ahead, int): + queued_ahead = None + if status_snapshot_callback is not None: + status_snapshot_callback( + TaskStatusSnapshot( + status=status, + queued_ahead=queued_ahead, + ) + ) + if status_callback is not None: + status_callback(status) + await asyncio.sleep(TASK_STATUS_POLL_INTERVAL_SECONDS) + continue + if status == "completed": + return + raise click.ClickException( + f"Task {submit_response.task_id} failed for {task_label}: " + f"{json.dumps(payload, ensure_ascii=False)}" + ) + + raise click.ClickException( + f"Timed out waiting for result of task {submit_response.task_id} " + f"for {task_label}" + ) + + +async def download_result_zip( + client: httpx.AsyncClient, + submit_response: SubmitResponse, + task_label: str, +) -> Path: + response = await client.get(submit_response.result_url) + if response.status_code != 200: + raise click.ClickException( + f"Failed to download result ZIP for task {submit_response.task_id}: " + f"{response.status_code} {response_detail(response)}" + ) + content_type = response.headers.get("content-type", "") + if "application/zip" not in content_type: + raise click.ClickException( + f"Expected a ZIP result for {task_label}, " + f"got content-type={content_type or 'unknown'}" + ) + + zip_fd, zip_path = tempfile.mkstemp(suffix=".zip", prefix="mineru_cli_result_") + os.close(zip_fd) + Path(zip_path).write_bytes(response.content) + return Path(zip_path) + + +def safe_extract_zip(zip_path: Path, output_dir: Path) -> None: + output_dir.mkdir(parents=True, exist_ok=True) + output_root = output_dir.resolve() + + with zipfile.ZipFile(zip_path, "r") as zip_file: + for member in zip_file.infolist(): + member_path = PurePosixPath(member.filename) + if member_path.is_absolute() or ".." in member_path.parts: + raise click.ClickException( + f"Refusing to extract unsafe ZIP entry: {member.filename}" + ) + target_path = (output_root / Path(*member_path.parts)).resolve() + if target_path != output_root and output_root not in target_path.parents: + raise click.ClickException( + f"Refusing to extract unsafe ZIP entry: {member.filename}" + ) + + if member.is_dir(): + target_path.mkdir(parents=True, exist_ok=True) + continue + + target_path.parent.mkdir(parents=True, exist_ok=True) + with zip_file.open(member, "r") as source, open(target_path, "wb") as handle: + handle.write(source.read()) diff --git a/mineru/cli/api_protocol.py b/mineru/cli/api_protocol.py new file mode 100644 index 000000000..dee49f098 --- /dev/null +++ b/mineru/cli/api_protocol.py @@ -0,0 +1,4 @@ +# Copyright (c) Opendatalab. All rights reserved. +API_PROTOCOL_VERSION = 1 +DEFAULT_MAX_CONCURRENT_REQUESTS = 3 +DEFAULT_PROCESSING_WINDOW_SIZE = 64 diff --git a/mineru/cli/client.py b/mineru/cli/client.py new file mode 100644 index 000000000..bc7a58159 --- /dev/null +++ b/mineru/cli/client.py @@ -0,0 +1,1124 @@ +# Copyright (c) Opendatalab. All rights reserved. +import asyncio +import os +import sys +import threading +from concurrent.futures import Future, ProcessPoolExecutor +from dataclasses import dataclass +from pathlib import Path +from typing import Awaitable, Callable, Optional, TextIO + +import click +import httpx +import pypdfium2 as pdfium +from loguru import logger + +from mineru.cli.api_protocol import ( + DEFAULT_MAX_CONCURRENT_REQUESTS, + DEFAULT_PROCESSING_WINDOW_SIZE, +) +from mineru.utils.config_reader import ( + get_max_concurrent_requests as read_max_concurrent_requests, +) +from mineru.utils.guess_suffix_or_lang import guess_suffix_by_path +from mineru.utils.pdf_page_id import get_end_page_id +from mineru.utils.pdfium_guard import ( + close_pdfium_document, + get_pdfium_document_page_count, + open_pdfium_document, +) + +from mineru.version import __version__ +from mineru.cli.common import ( + HybridDependencyError, + ensure_backend_dependencies, + image_suffixes, + office_suffixes, + pdf_suffixes, + uniquify_task_stems, +) +from mineru.cli import api_client as _api_client +from mineru.cli.output_paths import resolve_parse_dir +from mineru.cli.visualization import ( + VisualizationJob, + run_visualization_job, +) + +os.environ["TORCH_CUDNN_V8_API_DISABLED"] = "1" +log_level = os.getenv("MINERU_LOG_LEVEL", "INFO").upper() + +@dataclass(frozen=True) +class InputDocument: + path: Path + suffix: str + stem: str + effective_pages: int + order: int + + +@dataclass +class PlannedTask: + index: int + documents: list[InputDocument] + total_pages: int + + +@dataclass +class TaskExecutionProgress: + total_tasks: int + total_pages: int + completed_tasks: int + completed_pages: int + lock: asyncio.Lock + + +@dataclass +class VisualizationContext: + executor: ProcessPoolExecutor + futures: list[Future] + + +ServerHealth = _api_client.ServerHealth +SubmitResponse = _api_client.SubmitResponse +LocalAPIServer = _api_client.LocalAPIServer + + +@dataclass(frozen=True) +class TaskFailure: + task_index: int + document_stems: tuple[str, ...] + message: str + + +@dataclass +class LiveTaskStatusState: + task_index: int + task_id: str + status: str + queued_ahead: int | None = None + frame_step: int = 0 + + +class LiveAwareStderrSink: + def __init__(self, stream: TextIO): + self.stream = stream + self.lock = threading.RLock() + self.renderer: LiveTaskStatusRenderer | None = None + + def set_renderer(self, renderer: "LiveTaskStatusRenderer | None") -> None: + with self.lock: + self.renderer = renderer + + def isatty(self) -> bool: + return bool(getattr(self.stream, "isatty", lambda: False)()) + + def write(self, message: str) -> None: + with self.lock: + renderer = self.renderer + if renderer is not None: + renderer.clear_locked() + self.stream.write(message) + self.stream.flush() + if renderer is not None: + renderer.render_locked() + + def flush(self) -> None: + self.stream.flush() + + def stop(self) -> None: + self.flush() + + +class LiveTaskStatusRenderer: + BAR_WIDTH = 12 + RUNNER_WIDTH = 4 + ACTIVE_STATUSES = {"pending", "processing"} + + def __init__(self, sink: LiveAwareStderrSink): + self.sink = sink + self._rendered_line_count = 0 + self._task_states: dict[str, LiveTaskStatusState] = {} + + def register_task( + self, + task: PlannedTask, + task_id: str, + queued_ahead: int | None = None, + ) -> None: + with self.sink.lock: + self._task_states[task_id] = LiveTaskStatusState( + task_index=task.index, + task_id=task_id, + status="pending", + queued_ahead=queued_ahead, + ) + self.render_locked() + + def update_status( + self, + task_id: str, + status_update: _api_client.TaskStatusSnapshot | str, + ) -> None: + with self.sink.lock: + state = self._task_states.get(task_id) + if state is None: + return + if isinstance(status_update, _api_client.TaskStatusSnapshot): + status = status_update.status + queued_ahead = ( + status_update.queued_ahead if status == "pending" else None + ) + else: + status = status_update + queued_ahead = None + + state.status = status + state.queued_ahead = queued_ahead + if status in self.ACTIVE_STATUSES: + state.frame_step += 1 + self.render_locked() + + def remove_task(self, task_id: str) -> None: + with self.sink.lock: + if self._task_states.pop(task_id, None) is None: + return + self.render_locked() + + def close(self) -> None: + with self.sink.lock: + self._task_states.clear() + self.clear_locked() + + def clear_locked(self) -> None: + if self._rendered_line_count <= 0: + return + + self.sink.stream.write(f"\x1b[{self._rendered_line_count}A\r") + for index in range(self._rendered_line_count): + self.sink.stream.write("\x1b[2K") + if index + 1 < self._rendered_line_count: + self.sink.stream.write("\x1b[1B\r") + if self._rendered_line_count > 1: + self.sink.stream.write(f"\x1b[{self._rendered_line_count - 1}A\r") + self.sink.stream.flush() + self._rendered_line_count = 0 + + def render_locked(self) -> None: + self.clear_locked() + lines = self._build_render_lines_locked() + if lines: + self.sink.stream.write("\n".join(lines)) + self.sink.stream.write("\n") + self.sink.stream.flush() + self._rendered_line_count = len(lines) + + def _build_render_lines_locked(self) -> list[str]: + states = sorted( + self._task_states.values(), + key=lambda state: (state.task_index, state.task_id), + ) + return [ + self._build_render_line_locked(state) + for state in states + ] + + @staticmethod + def _build_render_line_locked(state: LiveTaskStatusState) -> str: + parts = [f"status={state.status}"] + if state.status == "pending" and state.queued_ahead is not None: + parts.append(f"ahead={state.queued_ahead}") + parts.append(f"task_id={state.task_id}") + return f"{LiveTaskStatusRenderer._build_bar(state.frame_step)} {' | '.join(parts)}" + + @classmethod + def _build_bar(cls, frame_step: int) -> str: + cells = [" "] * cls.BAR_WIDTH + runner_start = frame_step % cls.BAR_WIDTH + for offset in range(cls.RUNNER_WIDTH): + position = (runner_start + offset) % cls.BAR_WIDTH + cells[position] = "=" + head_position = (runner_start + cls.RUNNER_WIDTH - 1) % cls.BAR_WIDTH + cells[head_position] = ">" + return f"[{''.join(cells)}]" + + +def create_live_task_status_renderer( + api_url: Optional[str], +) -> Optional[LiveTaskStatusRenderer]: + if api_url is None or not _stderr_sink.isatty(): + _stderr_sink.set_renderer(None) + return None + + renderer = LiveTaskStatusRenderer(_stderr_sink) + _stderr_sink.set_renderer(renderer) + return renderer + + +_stderr_sink = LiveAwareStderrSink(sys.stderr) +logger.remove() +logger.add(_stderr_sink, level=log_level) + + +def build_http_timeout() -> httpx.Timeout: + return _api_client.build_http_timeout() + +def find_free_port() -> int: + return _api_client.find_free_port() + + +def normalize_base_url(url: str) -> str: + return _api_client.normalize_base_url(url) + + +def format_task_label(task: PlannedTask) -> str: + doc_names = ", ".join(doc.stem for doc in task.documents) + return f"task#{task.index} [{doc_names}]" + + +def format_task_log_label(task: PlannedTask, max_documents: int = 3) -> str: + if len(task.documents) <= max_documents: + return format_task_label(task) + + visible_names = ", ".join(doc.stem for doc in task.documents[:max_documents]) + hidden_count = len(task.documents) - max_documents + return f"task#{task.index} [{visible_names}, +{hidden_count} more]" + + +def format_count(value: int, singular: str, plural: Optional[str] = None) -> str: + unit = singular if value == 1 else (plural or f"{singular}s") + return f"{value} {unit}" + + +def format_task_submission_message( + task: PlannedTask, + progress: TaskExecutionProgress, +) -> str: + return ( + f"Submitting batch {task.index}/{progress.total_tasks} | " + f"{format_count(len(task.documents), 'document')}, " + f"{format_count(task.total_pages, 'page')} in this batch | " + f"{format_count(progress.total_pages, 'page')} total | " + f"{format_task_log_label(task)}" + ) + + +def format_task_completion_message( + task: PlannedTask, + progress: TaskExecutionProgress, + completed_tasks: int, + completed_pages: int, +) -> str: + batch_word = "batch" if progress.total_tasks == 1 else "batches" + page_word = "page" if progress.total_pages == 1 else "pages" + return ( + f"Completed batch {task.index}/{progress.total_tasks} | " + f"Processed {completed_pages}/{progress.total_pages} {page_word} | " + f"{completed_tasks} of {progress.total_tasks} {batch_word} finished | " + f"{format_task_log_label(task)}" + ) + + +def build_task_execution_progress( + planned_tasks: list[PlannedTask], +) -> TaskExecutionProgress: + return TaskExecutionProgress( + total_tasks=len(planned_tasks), + total_pages=sum(task.total_pages for task in planned_tasks), + completed_tasks=0, + completed_pages=0, + lock=asyncio.Lock(), + ) + + +async def mark_task_completed( + progress: TaskExecutionProgress, + completed_pages: int, +) -> tuple[int, int]: + async with progress.lock: + progress.completed_tasks += 1 + progress.completed_pages += completed_pages + return progress.completed_tasks, progress.completed_pages + + +def create_visualization_context() -> Optional[VisualizationContext]: + try: + return VisualizationContext( + executor=ProcessPoolExecutor(max_workers=1), + futures=[], + ) + except Exception as exc: + logger.warning(f"Failed to start visualization worker process: {exc}") + return None + + +def build_visualization_jobs( + planned_task: PlannedTask, + output_dir: Path, + backend: str, + parse_method: str, +) -> list[VisualizationJob]: + draw_span = backend.startswith("pipeline") + return [ + VisualizationJob( + document_stem=document.stem, + backend=backend, + parse_method=parse_method, + parse_dir=resolve_parse_dir( + output_dir, + document.stem, + backend, + parse_method, + is_office=document.suffix in office_suffixes, + ), + draw_span=draw_span, + ) + for document in planned_task.documents + ] + + +def log_visualization_future_result( + job: VisualizationJob, + future: Future, +) -> None: + try: + result = future.result() + except Exception as exc: + logger.warning(f"Skipping visualization for {job.document_stem}: {exc}") + return + + if result.status != "finished": + logger.warning( + f"Skipping visualization for {result.document_stem}: {result.message}" + ) + + +def queue_visualization_jobs( + visualization_context: Optional[VisualizationContext], + jobs: list[VisualizationJob], + planned_task: PlannedTask, +) -> int: + if visualization_context is None or not jobs: + return 0 + + del planned_task + queued_jobs = 0 + for job in jobs: + try: + future = visualization_context.executor.submit(run_visualization_job, job) + except Exception as exc: + logger.warning(f"Skipping visualization for {job.document_stem}: {exc}") + continue + + future.add_done_callback( + lambda completed_future, job=job: log_visualization_future_result( + job, + completed_future, + ) + ) + visualization_context.futures.append(future) + queued_jobs += 1 + + return queued_jobs + + +async def wait_for_visualization_jobs( + visualization_context: Optional[VisualizationContext], +) -> None: + if visualization_context is None: + return + + try: + if visualization_context.futures: + await asyncio.gather( + *( + asyncio.wrap_future(future) + for future in visualization_context.futures + ), + return_exceptions=True, + ) + finally: + visualization_context.executor.shutdown(wait=True) + + +def response_detail(response: httpx.Response) -> str: + return _api_client.response_detail(response) + + +def validate_server_health_payload(payload: dict, base_url: str) -> ServerHealth: + return _api_client.validate_server_health_payload(payload, base_url) + + +async def fetch_server_health( + client: httpx.AsyncClient, + base_url: str, +) -> ServerHealth: + return await _api_client.fetch_server_health(client, base_url) + + +async def wait_for_local_api_ready( + client: httpx.AsyncClient, + local_server: LocalAPIServer, + timeout_seconds: float = _api_client.LOCAL_API_STARTUP_TIMEOUT_SECONDS, +) -> ServerHealth: + return await _api_client.wait_for_local_api_ready( + client, + local_server, + timeout_seconds=timeout_seconds, + ) + + +def probe_pdf_effective_pages( + path: Path, + start_page_id: int, + end_page_id: Optional[int], +) -> int: + pdf_doc = open_pdfium_document(pdfium.PdfDocument, str(path)) + try: + page_count = get_pdfium_document_page_count(pdf_doc) + finally: + close_pdfium_document(pdf_doc) + + if page_count <= 0: + raise click.ClickException(f"PDF has no pages: {path}") + + effective_end_page_id = get_end_page_id(end_page_id, page_count) + if start_page_id > effective_end_page_id: + raise click.ClickException( + f"Requested page range is empty for PDF {path}: " + f"start={start_page_id}, end={end_page_id}" + ) + return effective_end_page_id - start_page_id + 1 + + +def collect_input_documents( + input_path: Path, + start_page_id: int, + end_page_id: Optional[int], +) -> list[InputDocument]: + documents: list[Path] + if input_path.is_dir(): + documents = [path for path in sorted(input_path.glob("*")) if path.is_file()] + else: + documents = [input_path] + + collected: list[InputDocument] = [] + for order, path in enumerate(documents): + suffix = guess_suffix_by_path(path) + if suffix not in pdf_suffixes + image_suffixes + office_suffixes: + continue + + if suffix in pdf_suffixes: + effective_pages = probe_pdf_effective_pages( + path, + start_page_id=start_page_id, + end_page_id=end_page_id, + ) + else: + effective_pages = 1 + + collected.append( + InputDocument( + path=path, + suffix=suffix, + stem=path.stem, + effective_pages=effective_pages, + order=order, + ) + ) + + if not collected: + raise click.ClickException(f"No supported documents found under {input_path}") + + normalized_stems, renamed_stems = uniquify_task_stems( + [document.stem for document in collected] + ) + if renamed_stems: + rename_details = ", ".join( + f"{document.path.name} -> {effective_stem}" + for document, effective_stem in zip(collected, normalized_stems) + if document.stem != effective_stem + ) + logger.warning( + f"Normalized duplicate document stems within this run: {rename_details}" + ) + return [ + InputDocument( + path=document.path, + suffix=document.suffix, + stem=effective_stem, + effective_pages=document.effective_pages, + order=document.order, + ) + for document, effective_stem in zip(collected, normalized_stems) + ] + + return collected + + +def plan_pipeline_tasks( + documents: list[InputDocument], + processing_window_size: int, +) -> list[PlannedTask]: + bins: list[PlannedTask] = [] + sorted_docs = sorted( + documents, + key=lambda doc: (-doc.effective_pages, doc.order), + ) + + for document in sorted_docs: + if document.effective_pages > processing_window_size: + bins.append( + PlannedTask( + index=len(bins) + 1, + documents=[document], + total_pages=document.effective_pages, + ) + ) + continue + + candidates = [ + task + for task in bins + if task.total_pages + document.effective_pages <= processing_window_size + ] + if candidates: + selected = min(candidates, key=lambda task: (task.total_pages, task.index)) + selected.documents.append(document) + selected.total_pages += document.effective_pages + continue + + bins.append( + PlannedTask( + index=len(bins) + 1, + documents=[document], + total_pages=document.effective_pages, + ) + ) + + for index, task in enumerate(bins, start=1): + task.index = index + return bins + + +def plan_tasks( + documents: list[InputDocument], + backend: str, + processing_window_size: int, +) -> list[PlannedTask]: + if backend == "pipeline": + return plan_pipeline_tasks(documents, processing_window_size) + return [ + PlannedTask(index=index, documents=[document], total_pages=document.effective_pages) + for index, document in enumerate(documents, start=1) + ] + + +def build_request_form_data( + lang: str, + backend: str, + method: str, + formula_enable: bool, + table_enable: bool, + server_url: Optional[str], + start_page_id: int, + end_page_id: Optional[int], +) -> dict[str, str | list[str]]: + return _api_client.build_parse_request_form_data( + lang_list=[lang], + backend=backend, + parse_method=method, + formula_enable=formula_enable, + table_enable=table_enable, + server_url=server_url, + start_page_id=start_page_id, + end_page_id=end_page_id, + return_md=True, + return_middle_json=True, + return_model_output=True, + return_content_list=True, + return_images=True, + response_format_zip=True, + return_original_file=True, + ) + + +async def submit_task( + client: httpx.AsyncClient, + base_url: str, + planned_task: PlannedTask, + form_data: dict[str, str | list[str]], +) -> SubmitResponse: + del client + upload_assets = [ + _api_client.UploadAsset( + path=document.path, + upload_name=f"{document.stem}{document.path.suffix}", + ) + for document in planned_task.documents + ] + return await _api_client.submit_parse_task( + base_url=base_url, + upload_assets=upload_assets, + form_data=form_data, + ) + + +async def wait_for_task_result( + client: httpx.AsyncClient, + submit_response: SubmitResponse, + planned_task: PlannedTask, + live_renderer: Optional[LiveTaskStatusRenderer] = None, + timeout_seconds: float = _api_client.TASK_RESULT_TIMEOUT_SECONDS, +) -> None: + return await _api_client.wait_for_task_result( + client=client, + submit_response=submit_response, + task_label=format_task_label(planned_task), + status_snapshot_callback=( + None + if live_renderer is None + else lambda snapshot: live_renderer.update_status( + submit_response.task_id, + snapshot, + ) + ), + timeout_seconds=timeout_seconds, + ) + + +async def download_result_zip( + client: httpx.AsyncClient, + submit_response: SubmitResponse, + planned_task: PlannedTask, +) -> Path: + return await _api_client.download_result_zip( + client=client, + submit_response=submit_response, + task_label=format_task_label(planned_task), + ) + + +def safe_extract_zip(zip_path: Path, output_dir: Path) -> None: + _api_client.safe_extract_zip(zip_path, output_dir) + + +def resolve_submit_concurrency(max_concurrent_requests: int, task_count: int) -> int: + if max_concurrent_requests <= 0: + raise ValueError("max_concurrent_requests must be a positive integer") + return max(1, min(max_concurrent_requests, task_count)) + + +def resolve_effective_max_concurrent_requests( + local_max: int, + server_max: int, +) -> int: + return _api_client.resolve_effective_max_concurrent_requests( + local_max=local_max, + server_max=server_max, + ) + + +async def execute_planned_tasks( + planned_tasks: list[PlannedTask], + concurrency: int, + task_runner: Callable[[PlannedTask], Awaitable[None]], +) -> list[TaskFailure]: + queue: asyncio.Queue[PlannedTask | None] = asyncio.Queue() + failures: list[TaskFailure] = [] + + for task in planned_tasks: + await queue.put(task) + for _ in range(concurrency): + await queue.put(None) + + async def worker() -> None: + while True: + planned_task = await queue.get() + try: + if planned_task is None: + return + await task_runner(planned_task) + except Exception as exc: + assert planned_task is not None + failures.append( + TaskFailure( + task_index=planned_task.index, + document_stems=tuple(doc.stem for doc in planned_task.documents), + message=str(exc), + ) + ) + finally: + queue.task_done() + + workers = [asyncio.create_task(worker()) for _ in range(concurrency)] + await queue.join() + await asyncio.gather(*workers, return_exceptions=True) + return failures + + +async def run_planned_task( + client: httpx.AsyncClient, + server_health: ServerHealth, + planned_task: PlannedTask, + progress: TaskExecutionProgress, + backend: str, + parse_method: str, + visualization_context: Optional[VisualizationContext], + form_data: dict[str, str], + output_dir: Path, + live_renderer: Optional[LiveTaskStatusRenderer] = None, +) -> None: + logger.info(format_task_submission_message(planned_task, progress)) + submit_response = await submit_task( + client=client, + base_url=server_health.base_url, + planned_task=planned_task, + form_data=form_data, + ) + if live_renderer is not None: + live_renderer.register_task( + planned_task, + submit_response.task_id, + queued_ahead=submit_response.queued_ahead, + ) + try: + await wait_for_task_result( + client=client, + submit_response=submit_response, + planned_task=planned_task, + live_renderer=live_renderer, + ) + finally: + if live_renderer is not None: + live_renderer.remove_task(submit_response.task_id) + zip_path = await download_result_zip( + client=client, + submit_response=submit_response, + planned_task=planned_task, + ) + try: + safe_extract_zip(zip_path, output_dir) + finally: + zip_path.unlink(missing_ok=True) + completed_tasks, completed_pages = await mark_task_completed( + progress, + planned_task.total_pages, + ) + logger.info( + format_task_completion_message( + planned_task, + progress, + completed_tasks, + completed_pages, + ) + ) + try: + visualization_jobs = build_visualization_jobs( + planned_task, + output_dir, + backend, + parse_method, + ) + except Exception as exc: + logger.warning( + f"Skipping visualization for {format_task_log_label(planned_task)}: {exc}" + ) + else: + queue_visualization_jobs( + visualization_context, + visualization_jobs, + planned_task, + ) + + +async def run_orchestrated_cli( + input_path: Path, + output_dir: Path, + method: str, + backend: str, + lang: str, + server_url: Optional[str], + api_url: Optional[str], + start_page_id: int, + end_page_id: Optional[int], + formula_enable: bool, + table_enable: bool, + extra_cli_args: tuple[str, ...] = (), +) -> None: + if start_page_id < 0: + raise click.ClickException("--start must be greater than or equal to 0") + if end_page_id is not None and end_page_id < 0: + raise click.ClickException("--end must be greater than or equal to 0") + if api_url is None: + try: + ensure_backend_dependencies(backend) + except HybridDependencyError as exc: + raise click.ClickException(str(exc)) from exc + + output_dir.mkdir(parents=True, exist_ok=True) + documents = collect_input_documents( + input_path=input_path, + start_page_id=start_page_id, + end_page_id=end_page_id, + ) + + timeout = build_http_timeout() + local_server: LocalAPIServer | None = None + visualization_context: Optional[VisualizationContext] = None + live_renderer: Optional[LiveTaskStatusRenderer] = None + async with httpx.AsyncClient(timeout=timeout, follow_redirects=True) as http_client: + try: + if api_url is None: + local_server = LocalAPIServer(extra_cli_args=extra_cli_args) + base_url = local_server.start() + logger.info(f"Started local mineru-api at {base_url}") + server_health = await wait_for_local_api_ready(http_client, local_server) + effective_max_concurrent_requests = ( + server_health.max_concurrent_requests + ) + else: + server_health = await fetch_server_health( + http_client, + normalize_base_url(api_url), + ) + effective_max_concurrent_requests = ( + resolve_effective_max_concurrent_requests( + read_max_concurrent_requests( + default=DEFAULT_MAX_CONCURRENT_REQUESTS + ), + server_health.max_concurrent_requests, + ) + ) + live_renderer = create_live_task_status_renderer(api_url) + + planned_tasks = plan_tasks( + documents=documents, + backend=backend, + processing_window_size=server_health.processing_window_size + if backend == "pipeline" + else DEFAULT_PROCESSING_WINDOW_SIZE, + ) + progress = build_task_execution_progress(planned_tasks) + concurrency = resolve_submit_concurrency( + effective_max_concurrent_requests, + len(planned_tasks), + ) + form_data = build_request_form_data( + lang=lang, + backend=backend, + method=method, + formula_enable=formula_enable, + table_enable=table_enable, + server_url=server_url, + start_page_id=start_page_id, + end_page_id=end_page_id, + ) + visualization_context = create_visualization_context() + failures = await execute_planned_tasks( + planned_tasks=planned_tasks, + concurrency=concurrency, + task_runner=lambda planned_task: run_planned_task( + client=http_client, + server_health=server_health, + planned_task=planned_task, + progress=progress, + backend=backend, + parse_method=method, + visualization_context=visualization_context, + form_data=form_data, + output_dir=output_dir, + live_renderer=live_renderer, + ), + ) + if failures: + details = "\n".join( + f"- task#{failure.task_index} ({', '.join(failure.document_stems)}): {failure.message}" + for failure in sorted(failures, key=lambda item: item.task_index) + ) + raise click.ClickException( + f"{len(failures)} task(s) failed while processing documents:\n{details}" + ) + finally: + try: + if local_server is not None: + local_server.stop() + finally: + try: + await wait_for_visualization_jobs(visualization_context) + finally: + if live_renderer is not None: + live_renderer.close() + _stderr_sink.set_renderer(None) + + +@click.command(context_settings=dict(ignore_unknown_options=True, allow_extra_args=True)) +@click.pass_context +@click.version_option(__version__, "--version", "-v", help="display the version and exit") +@click.option( + "-p", + "--path", + "input_path", + type=click.Path(exists=True, path_type=Path), + required=True, + help="local filepath or directory. support pdf, image, docx, pptx, xlsx files", +) +@click.option( + "-o", + "--output", + "output_dir", + type=click.Path(path_type=Path), + required=True, + help="output local directory", +) +@click.option( + "--api-url", + "api_url", + type=str, + default=None, + help="MinerU FastAPI base URL. If omitted, mineru starts a temporary local mineru-api service.", +) +@click.option( + "-m", + "--method", + "method", + type=click.Choice(["auto", "txt", "ocr"]), + default="auto", + help="""\b + the method for parsing pdf: + auto: Automatically determine the method based on the file type. + txt: Use text extraction method. + ocr: Use OCR method for image-based PDFs. + Without method specified, 'auto' will be used by default. + Adapted only for the case where the backend is set to 'pipeline' and 'hybrid-*'.""", +) +@click.option( + "-b", + "--backend", + "backend", + type=click.Choice( + [ + "pipeline", + "vlm-http-client", + "hybrid-http-client", + "vlm-auto-engine", + "hybrid-auto-engine", + ] + ), + default="hybrid-auto-engine", + help="""\b + the backend for parsing pdf: + pipeline: More general. + vlm-auto-engine: High accuracy via local computing power. + vlm-http-client: High accuracy via remote computing power(client suitable for openai-compatible servers). + hybrid-auto-engine: Next-generation high accuracy solution via local computing power. + hybrid-http-client: High accuracy but requires a little local computing power(client suitable for openai-compatible servers). + Without method specified, hybrid-auto-engine will be used by default.""", +) +@click.option( + "-l", + "--lang", + "lang", + type=click.Choice( + [ + "ch", + "ch_server", + "ch_lite", + "en", + "korean", + "japan", + "chinese_cht", + "ta", + "te", + "ka", + "th", + "el", + "latin", + "arabic", + "east_slavic", + "cyrillic", + "devanagari", + ] + ), + default="ch", + help=""" + Input the languages in the pdf (if known) to improve OCR accuracy. + Without languages specified, 'ch' will be used by default. + Adapted only for the case where the backend is set to 'pipeline' and 'hybrid-*'. + """, +) +@click.option( + "-u", + "--url", + "server_url", + type=str, + default=None, + help=""" + When the backend is `-http-client`, you need to specify the server_url, for example:`http://127.0.0.1:30000` + """, +) +@click.option( + "-s", + "--start", + "start_page_id", + type=int, + default=0, + help="The starting page for PDF parsing, beginning from 0.", +) +@click.option( + "-e", + "--end", + "end_page_id", + type=int, + default=None, + help="The ending page for PDF parsing, beginning from 0.", +) +@click.option( + "-f", + "--formula", + "formula_enable", + type=bool, + default=True, + help="Enable formula parsing. Default is True. ", +) +@click.option( + "-t", + "--table", + "table_enable", + type=bool, + default=True, + help="Enable table parsing. Default is True. ", +) +def main( + ctx: click.Context, + input_path: Path, + output_dir: Path, + api_url: Optional[str], + method: str, + backend: str, + lang: str, + server_url: Optional[str], + start_page_id: int, + end_page_id: Optional[int], + formula_enable: bool, + table_enable: bool, +) -> None: + asyncio.run( + run_orchestrated_cli( + input_path=input_path, + output_dir=output_dir, + method=method, + backend=backend, + lang=lang, + server_url=server_url, + api_url=api_url, + start_page_id=start_page_id, + end_page_id=end_page_id, + formula_enable=formula_enable, + table_enable=table_enable, + extra_cli_args=tuple(ctx.args), + ) + ) + + +if __name__ == "__main__": + main() diff --git a/mineru/cli/common.py b/mineru/cli/common.py new file mode 100644 index 000000000..96d559fa9 --- /dev/null +++ b/mineru/cli/common.py @@ -0,0 +1,814 @@ +# Copyright (c) Opendatalab. All rights reserved. +import importlib +import importlib.util +import json +import os +from concurrent.futures import ThreadPoolExecutor +from pathlib import Path +from typing import Sequence + +from loguru import logger + +from mineru.data.data_reader_writer import FileBasedDataWriter +from mineru.utils.draw_bbox import draw_layout_bbox, draw_span_bbox +from mineru.utils.engine_utils import get_vlm_engine +from mineru.utils.enum_class import MakeMode +from mineru.utils.guess_suffix_or_lang import guess_suffix_by_bytes +from mineru.utils.pdf_image_tools import images_bytes_to_pdf_bytes +from mineru.backend.vlm.vlm_middle_json_mkcontent import union_make as vlm_union_make +from mineru.backend.office.office_middle_json_mkcontent import union_make as office_union_make +from mineru.backend.vlm.vlm_analyze import doc_analyze as vlm_doc_analyze +from mineru.backend.vlm.vlm_analyze import aio_doc_analyze as aio_vlm_doc_analyze +from mineru.backend.office.pptx_analyze import office_pptx_analyze +from mineru.backend.office.xlsx_analyze import office_xlsx_analyze +from mineru.backend.office.docx_analyze import office_docx_analyze +from mineru.utils.pdfium_guard import rewrite_pdf_bytes_with_pdfium + +os.environ["TORCH_CUDNN_V8_API_DISABLED"] = "1" +if os.getenv("MINERU_LMDEPLOY_DEVICE", "") == "maca": + import torch + torch.backends.cudnn.enabled = False + + +pdf_suffixes = ["pdf"] +image_suffixes = ["png", "jpeg", "jp2", "webp", "gif", "bmp", "jpg", "tiff"] +docx_suffixes = ["docx"] +pptx_suffixes = ["pptx"] +xlsx_suffixes = ["xlsx"] +office_suffixes = docx_suffixes + pptx_suffixes + xlsx_suffixes + +os.environ["TOKENIZERS_PARALLELISM"] = "false" +# Maximum UTF-8 byte length allowed for task stems used in filenames. +# 200 bytes is chosen to stay well below common filesystem limits (e.g. 255 bytes) +# and to prevent generating excessively long or incompatible filenames. +MAX_TASK_STEM_BYTES = 200 + + +class HybridDependencyError(RuntimeError): + pass + + +def build_hybrid_dependency_error_message(backend: str) -> str: + return ( + f"`{backend}` requires local pipeline dependencies (`mineru[pipeline]`, " + "including `torch`). Install `mineru[pipeline]` or `mineru[core]`. " + "If you need a lightweight remote client without local `torch`, " + "use `vlm-http-client` instead." + ) + + +def ensure_backend_dependencies(backend: str) -> None: + if not backend.startswith("hybrid-"): + return + if importlib.util.find_spec("torch") is None: + raise HybridDependencyError(build_hybrid_dependency_error_message(backend)) + + +def _load_hybrid_analyze_entrypoint(entrypoint_name: str, backend: str): + ensure_backend_dependencies(backend) + try: + hybrid_analyze = importlib.import_module("mineru.backend.hybrid.hybrid_analyze") + except (ImportError, ModuleNotFoundError) as exc: + raise HybridDependencyError( + build_hybrid_dependency_error_message(backend) + ) from exc + return getattr(hybrid_analyze, entrypoint_name) + + +def utf8_byte_length(value: str) -> int: + return len(value.encode("utf-8")) + + +def truncate_to_utf8_bytes(value: str, max_bytes: int) -> str: + if max_bytes <= 0: + return "" + + encoded = value.encode("utf-8") + if len(encoded) <= max_bytes: + return value + + truncated = encoded[:max_bytes] + while truncated: + try: + return truncated.decode("utf-8") + except UnicodeDecodeError as exc: + truncated = truncated[:exc.start] + return "" + + +def normalize_task_stem(stem: str, max_bytes: int = MAX_TASK_STEM_BYTES) -> str: + return truncate_to_utf8_bytes(stem, max_bytes) + + +def normalize_upload_filename(upload_name: str) -> str: + sanitized_name = Path(upload_name).name + sanitized_path = Path(sanitized_name) + normalized_stem = normalize_task_stem(sanitized_path.stem) + return f"{normalized_stem}{sanitized_path.suffix}" + + +def build_task_stem_candidate( + stem: str, + suffix: str = "", + max_bytes: int = MAX_TASK_STEM_BYTES, +) -> str: + if utf8_byte_length(f"{stem}{suffix}") <= max_bytes: + return f"{stem}{suffix}" + suffix_bytes = utf8_byte_length(suffix) + if suffix_bytes >= max_bytes: + return truncate_to_utf8_bytes(suffix, max_bytes) + return f"{truncate_to_utf8_bytes(stem, max_bytes - suffix_bytes)}{suffix}" + + +def uniquify_task_stems( + stems: Sequence[str], +) -> tuple[list[str], list[tuple[str, str]]]: + """Assign task-local unique stems while preserving input order.""" + normalized_inputs = [normalize_task_stem(stem) for stem in stems] + raw_keys = {stem.casefold() for stem in normalized_inputs} + occurrence_counts: dict[str, int] = {} + assigned_keys: set[str] = set() + unique_stems: list[str] = [] + renamed: list[tuple[str, str]] = [] + + for stem, normalized_stem in zip(stems, normalized_inputs): + stem_base = normalized_stem or stem + stem_key = stem_base.casefold() + seen_count = occurrence_counts.get(stem_key, 0) + occurrence_counts[stem_key] = seen_count + 1 + + if seen_count == 0 and stem_key not in assigned_keys: + effective_stem = stem_base + else: + suffix = seen_count + 1 + while True: + candidate = build_task_stem_candidate(stem_base, f"_{suffix}") + candidate_key = candidate.casefold() + if candidate_key not in raw_keys and candidate_key not in assigned_keys: + effective_stem = candidate + break + suffix += 1 + + assigned_keys.add(effective_stem.casefold()) + unique_stems.append(effective_stem) + if effective_stem != stem: + renamed.append((stem, effective_stem)) + + return unique_stems, renamed + + +def read_fn(path, file_suffix: str | None = None): + if not isinstance(path, Path): + path = Path(path) + with open(str(path), "rb") as input_file: + file_bytes = input_file.read() + if file_suffix is None: + file_suffix = guess_suffix_by_bytes(file_bytes, path) + if file_suffix in image_suffixes: + return images_bytes_to_pdf_bytes(file_bytes) + elif file_suffix in pdf_suffixes + office_suffixes: + return file_bytes + else: + raise Exception(f"Unknown file suffix: {file_suffix}") + + +def prepare_env(output_dir, pdf_file_name, parse_method): + local_md_dir = str(os.path.join(output_dir, pdf_file_name, parse_method)) + local_image_dir = os.path.join(str(local_md_dir), "images") + os.makedirs(local_image_dir, exist_ok=True) + os.makedirs(local_md_dir, exist_ok=True) + return local_image_dir, local_md_dir + + +def convert_pdf_bytes_to_bytes(pdf_bytes, start_page_id=0, end_page_id=None): + try: + rebuilt_pdf_bytes = rewrite_pdf_bytes_with_pdfium( + pdf_bytes, + start_page_id=start_page_id, + end_page_id=end_page_id, + ) + if rebuilt_pdf_bytes: + return rebuilt_pdf_bytes + logger.warning("PDFium rewrite returned empty bytes, using original PDF bytes.") + except Exception as fallback_error: + logger.warning( + f"Error in converting PDF bytes with pdfium: {fallback_error}, " + "using original PDF bytes." + ) + return pdf_bytes + + +def _prepare_pdf_bytes(pdf_bytes_list, start_page_id, end_page_id): + """准备处理PDF字节数据""" + result = [] + for pdf_bytes in pdf_bytes_list: + new_pdf_bytes = convert_pdf_bytes_to_bytes(pdf_bytes, start_page_id, end_page_id) + result.append(new_pdf_bytes) + return result + + +def _process_output( + pdf_info, + pdf_bytes, + pdf_file_name, + local_md_dir, + local_image_dir, + md_writer, + f_draw_layout_bbox, + f_draw_span_bbox, + f_dump_orig_pdf, + f_dump_md, + f_dump_content_list, + f_dump_middle_json, + f_dump_model_output, + f_make_md_mode, + middle_json, + model_output=None, + process_mode="vlm", +): + from mineru.backend.pipeline.pipeline_middle_json_mkcontent import union_make as pipeline_union_make + if process_mode == "pipeline": + make_func = pipeline_union_make + elif process_mode == "vlm": + make_func = vlm_union_make + elif process_mode in office_suffixes: + make_func = office_union_make + else: + raise Exception(f"Unknown process_mode: {process_mode}") + """处理输出文件""" + if f_draw_layout_bbox: + try: + draw_layout_bbox(pdf_info, pdf_bytes, local_md_dir, f"{pdf_file_name}_layout.pdf") + except Exception as exc: + logger.warning(f"Skipping layout bbox visualization for {pdf_file_name}: {exc}") + + if f_draw_span_bbox: + try: + draw_span_bbox(pdf_info, pdf_bytes, local_md_dir, f"{pdf_file_name}_span.pdf") + except Exception as exc: + logger.warning(f"Skipping span bbox visualization for {pdf_file_name}: {exc}") + + if f_dump_orig_pdf: + if process_mode in ["pipeline", "vlm"]: + md_writer.write( + f"{pdf_file_name}_origin.pdf", + pdf_bytes, + ) + elif process_mode in office_suffixes: + md_writer.write( + f"{pdf_file_name}_origin.{process_mode}", + pdf_bytes, + ) + + image_dir = str(os.path.basename(local_image_dir)) + + if f_dump_md: + md_content_str = make_func(pdf_info, f_make_md_mode, image_dir) + md_writer.write_string( + f"{pdf_file_name}.md", + md_content_str, + ) + + if f_dump_content_list: + + content_list = make_func(pdf_info, MakeMode.CONTENT_LIST, image_dir) + md_writer.write_string( + f"{pdf_file_name}_content_list.json", + json.dumps(content_list, ensure_ascii=False, indent=4), + ) + + content_list_v2 = make_func(pdf_info, MakeMode.CONTENT_LIST_V2, image_dir) + md_writer.write_string( + f"{pdf_file_name}_content_list_v2.json", + json.dumps(content_list_v2, ensure_ascii=False, indent=4), + ) + + + if f_dump_middle_json: + md_writer.write_string( + f"{pdf_file_name}_middle.json", + json.dumps(middle_json, ensure_ascii=False, indent=4), + ) + + if f_dump_model_output: + md_writer.write_string( + f"{pdf_file_name}_model.json", + json.dumps(model_output, ensure_ascii=False, indent=4), + ) + + logger.debug(f"local output dir is {local_md_dir}") + + +def _process_pipeline( + output_dir, + pdf_file_names, + pdf_bytes_list, + p_lang_list, + parse_method, + p_formula_enable, + p_table_enable, + f_draw_layout_bbox, + f_draw_span_bbox, + f_dump_md, + f_dump_middle_json, + f_dump_model_output, + f_dump_orig_pdf, + f_dump_content_list, + f_make_md_mode, +): + """处理pipeline后端逻辑""" + from mineru.backend.pipeline.pipeline_analyze import doc_analyze_streaming as pipeline_doc_analyze_streaming + + image_writer_list = [] + md_writer_list = [] + local_output_info = [] + for idx, pdf_bytes in enumerate(pdf_bytes_list): + pdf_file_name = pdf_file_names[idx] + local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, parse_method) + image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir) + image_writer_list.append(image_writer) + md_writer_list.append(md_writer) + local_output_info.append((pdf_file_name, local_image_dir, local_md_dir)) + + output_futures = [] + + def run_output_task(doc_index, middle_json, model_list): + pdf_file_name, local_image_dir, local_md_dir = local_output_info[doc_index] + md_writer = md_writer_list[doc_index] + pdf_bytes = pdf_bytes_list[doc_index] + logger.debug(f"Pipeline output start: doc{doc_index}") + try: + _process_output( + middle_json["pdf_info"], pdf_bytes, pdf_file_name, local_md_dir, local_image_dir, + md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_pdf, + f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output, + f_make_md_mode, middle_json, model_list, process_mode="pipeline" + ) + logger.debug(f"Pipeline output complete: doc{doc_index}") + except Exception: + logger.exception(f"Pipeline output failed: doc{doc_index}") + raise + + with ThreadPoolExecutor(max_workers=1) as output_executor: + def on_doc_ready(doc_index, model_list, middle_json, ocr_enable): + logger.debug( + f"Pipeline doc ready: doc{doc_index} pages={len(middle_json['pdf_info'])} output_submitted=1" + ) + future = output_executor.submit(run_output_task, doc_index, middle_json, model_list) + output_futures.append(future) + + pipeline_doc_analyze_streaming( + pdf_bytes_list, + image_writer_list, + p_lang_list, + on_doc_ready, + parse_method=parse_method, + formula_enable=p_formula_enable, + table_enable=p_table_enable, + ) + + for future in output_futures: + future.result() + return + + +async def _async_process_vlm( + output_dir, + pdf_file_names, + pdf_bytes_list, + backend, + f_draw_layout_bbox, + f_draw_span_bbox, + f_dump_md, + f_dump_middle_json, + f_dump_model_output, + f_dump_orig_pdf, + f_dump_content_list, + f_make_md_mode, + server_url=None, + **kwargs, +): + """异步处理VLM后端逻辑""" + parse_method = "vlm" + f_draw_span_bbox = False + if not backend.endswith("client"): + server_url = None + + for idx, pdf_bytes in enumerate(pdf_bytes_list): + pdf_file_name = pdf_file_names[idx] + local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, parse_method) + image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir) + + middle_json, infer_result = await aio_vlm_doc_analyze( + pdf_bytes, image_writer=image_writer, backend=backend, server_url=server_url, **kwargs, + ) + + pdf_info = middle_json["pdf_info"] + + _process_output( + pdf_info, pdf_bytes, pdf_file_name, local_md_dir, local_image_dir, + md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_pdf, + f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output, + f_make_md_mode, middle_json, infer_result, process_mode="vlm" + ) + + +def _process_vlm( + output_dir, + pdf_file_names, + pdf_bytes_list, + backend, + f_draw_layout_bbox, + f_draw_span_bbox, + f_dump_md, + f_dump_middle_json, + f_dump_model_output, + f_dump_orig_pdf, + f_dump_content_list, + f_make_md_mode, + server_url=None, + **kwargs, +): + """同步处理VLM后端逻辑""" + parse_method = "vlm" + f_draw_span_bbox = False + if not backend.endswith("client"): + server_url = None + + for idx, pdf_bytes in enumerate(pdf_bytes_list): + pdf_file_name = pdf_file_names[idx] + local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, parse_method) + image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir) + + middle_json, infer_result = vlm_doc_analyze( + pdf_bytes, image_writer=image_writer, backend=backend, server_url=server_url, **kwargs, + ) + + pdf_info = middle_json["pdf_info"] + + _process_output( + pdf_info, pdf_bytes, pdf_file_name, local_md_dir, local_image_dir, + md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_pdf, + f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output, + f_make_md_mode, middle_json, infer_result, process_mode="vlm" + ) + + +def _process_hybrid( + output_dir, + pdf_file_names, + pdf_bytes_list, + h_lang_list, + parse_method, + inline_formula_enable, + backend, + f_draw_layout_bbox, + f_draw_span_bbox, + f_dump_md, + f_dump_middle_json, + f_dump_model_output, + f_dump_orig_pdf, + f_dump_content_list, + f_make_md_mode, + server_url=None, + **kwargs, +): + hybrid_doc_analyze = _load_hybrid_analyze_entrypoint( + "doc_analyze", + f"hybrid-{backend}", + ) + """同步处理hybrid后端逻辑""" + if not backend.endswith("client"): + server_url = None + + for idx, (pdf_bytes, lang) in enumerate(zip(pdf_bytes_list, h_lang_list)): + pdf_file_name = pdf_file_names[idx] + local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, f"hybrid_{parse_method}") + image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir) + + middle_json, infer_result, _vlm_ocr_enable = hybrid_doc_analyze( + pdf_bytes, + image_writer=image_writer, + backend=backend, + parse_method=parse_method, + language=lang, + inline_formula_enable=inline_formula_enable, + server_url=server_url, + **kwargs, + ) + + pdf_info = middle_json["pdf_info"] + + # f_draw_span_bbox = not _vlm_ocr_enable + f_draw_span_bbox = False + + _process_output( + pdf_info, pdf_bytes, pdf_file_name, local_md_dir, local_image_dir, + md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_pdf, + f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output, + f_make_md_mode, middle_json, infer_result, process_mode="vlm" + ) + + +async def _async_process_hybrid( + output_dir, + pdf_file_names, + pdf_bytes_list, + h_lang_list, + parse_method, + inline_formula_enable, + backend, + f_draw_layout_bbox, + f_draw_span_bbox, + f_dump_md, + f_dump_middle_json, + f_dump_model_output, + f_dump_orig_pdf, + f_dump_content_list, + f_make_md_mode, + server_url=None, + **kwargs, +): + aio_hybrid_doc_analyze = _load_hybrid_analyze_entrypoint( + "aio_doc_analyze", + f"hybrid-{backend}", + ) + """异步处理hybrid后端逻辑""" + if not backend.endswith("client"): + server_url = None + + for idx, (pdf_bytes, lang) in enumerate(zip(pdf_bytes_list, h_lang_list)): + pdf_file_name = pdf_file_names[idx] + local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, f"hybrid_{parse_method}") + image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir) + + middle_json, infer_result, _vlm_ocr_enable = await aio_hybrid_doc_analyze( + pdf_bytes, + image_writer=image_writer, + backend=backend, + parse_method=parse_method, + language=lang, + inline_formula_enable=inline_formula_enable, + server_url=server_url, + **kwargs, + ) + + pdf_info = middle_json["pdf_info"] + + # f_draw_span_bbox = not _vlm_ocr_enable + f_draw_span_bbox = False + + _process_output( + pdf_info, pdf_bytes, pdf_file_name, local_md_dir, local_image_dir, + md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_pdf, + f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output, + f_make_md_mode, middle_json, infer_result, process_mode="vlm" + ) + + +def _process_office_doc( + output_dir, + pdf_file_names: list[str], + pdf_bytes_list: list[bytes], + f_dump_md=True, + f_dump_middle_json=True, + f_dump_model_output=True, + f_dump_orig_file=True, + f_dump_content_list=True, + f_make_md_mode=MakeMode.MM_MD, +): + need_remove_index = [] + for i, file_bytes in enumerate(pdf_bytes_list): + pdf_file_name = pdf_file_names[i] + file_suffix = guess_suffix_by_bytes(file_bytes) + if file_suffix in office_suffixes: + + need_remove_index.append(i) + + local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, f"office") + image_writer, md_writer = FileBasedDataWriter(local_image_dir), FileBasedDataWriter(local_md_dir) + + if file_suffix in docx_suffixes: + office_analyze = office_docx_analyze + elif file_suffix in pptx_suffixes: + office_analyze = office_pptx_analyze + elif file_suffix in xlsx_suffixes: + office_analyze = office_xlsx_analyze + else: + raise ValueError(f"Unsupported office suffix: {file_suffix}") + + middle_json, infer_result = office_analyze( + file_bytes, + image_writer=image_writer, + ) + + f_draw_layout_bbox = False + f_draw_span_bbox = False + pdf_info = middle_json["pdf_info"] + + _process_output( + pdf_info, file_bytes, pdf_file_name, local_md_dir, local_image_dir, + md_writer, f_draw_layout_bbox, f_draw_span_bbox, f_dump_orig_file, + f_dump_md, f_dump_content_list, f_dump_middle_json, f_dump_model_output, + f_make_md_mode, middle_json, infer_result, process_mode=file_suffix + ) + + return need_remove_index + + +def do_parse( + output_dir, + pdf_file_names: list[str], + pdf_bytes_list: list[bytes], + p_lang_list: list[str], + backend="pipeline", + parse_method="auto", + formula_enable=True, + table_enable=True, + server_url=None, + f_draw_layout_bbox=True, + f_draw_span_bbox=True, + f_dump_md=True, + f_dump_middle_json=True, + f_dump_model_output=True, + f_dump_orig_pdf=True, + f_dump_content_list=True, + f_make_md_mode=MakeMode.MM_MD, + start_page_id=0, + end_page_id=None, + **kwargs, +): + need_remove_index = _process_office_doc( + output_dir, + pdf_file_names=pdf_file_names, + pdf_bytes_list=pdf_bytes_list, + f_dump_md=f_dump_md, + f_dump_middle_json=f_dump_middle_json, + f_dump_model_output=f_dump_model_output, + f_dump_orig_file=f_dump_orig_pdf, + f_dump_content_list=f_dump_content_list, + f_make_md_mode=f_make_md_mode, + ) + for index in sorted(need_remove_index, reverse=True): + del pdf_bytes_list[index] + del pdf_file_names[index] + del p_lang_list[index] + if not pdf_bytes_list: + logger.warning("No valid PDF or image files to process.") + return + + # 预处理PDF字节数据 + pdf_bytes_list = _prepare_pdf_bytes(pdf_bytes_list, start_page_id, end_page_id) + + if backend == "pipeline": + _process_pipeline( + output_dir, pdf_file_names, pdf_bytes_list, p_lang_list, + parse_method, formula_enable, table_enable, + f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json, + f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode + ) + else: + if backend.startswith("vlm-"): + backend = backend[4:] + + if backend == "vllm-async-engine": + raise Exception("vlm-vllm-async-engine backend is not supported in sync mode, please use vlm-vllm-engine backend") + + if backend == "auto-engine": + backend = get_vlm_engine(inference_engine='auto', is_async=False) + + os.environ['MINERU_VLM_FORMULA_ENABLE'] = str(formula_enable) + os.environ['MINERU_VLM_TABLE_ENABLE'] = str(table_enable) + + _process_vlm( + output_dir, pdf_file_names, pdf_bytes_list, backend, + f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json, + f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode, + server_url, **kwargs, + ) + elif backend.startswith("hybrid-"): + ensure_backend_dependencies(backend) + backend = backend[7:] + + if backend == "vllm-async-engine": + raise Exception( + "hybrid-vllm-async-engine backend is not supported in sync mode, please use hybrid-vllm-engine backend") + + if backend == "auto-engine": + backend = get_vlm_engine(inference_engine='auto', is_async=False) + + os.environ['MINERU_VLM_TABLE_ENABLE'] = str(table_enable) + os.environ['MINERU_VLM_FORMULA_ENABLE'] = "true" + + _process_hybrid( + output_dir, pdf_file_names, pdf_bytes_list, p_lang_list, parse_method, formula_enable, backend, + f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json, + f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode, + server_url, **kwargs, + ) + + +async def aio_do_parse( + output_dir, + pdf_file_names: list[str], + pdf_bytes_list: list[bytes], + p_lang_list: list[str], + backend="pipeline", + parse_method="auto", + formula_enable=True, + table_enable=True, + server_url=None, + f_draw_layout_bbox=True, + f_draw_span_bbox=True, + f_dump_md=True, + f_dump_middle_json=True, + f_dump_model_output=True, + f_dump_orig_pdf=True, + f_dump_content_list=True, + f_make_md_mode=MakeMode.MM_MD, + start_page_id=0, + end_page_id=None, + **kwargs, +): + need_remove_index = _process_office_doc( + output_dir, + pdf_file_names=pdf_file_names, + pdf_bytes_list=pdf_bytes_list, + f_dump_md=f_dump_md, + f_dump_middle_json=f_dump_middle_json, + f_dump_model_output=f_dump_model_output, + f_dump_orig_file=f_dump_orig_pdf, + f_dump_content_list=f_dump_content_list, + f_make_md_mode=f_make_md_mode, + ) + for index in sorted(need_remove_index, reverse=True): + del pdf_bytes_list[index] + del pdf_file_names[index] + del p_lang_list[index] + if not pdf_bytes_list: + logger.warning("No valid PDF or image files to process.") + return + + # 预处理PDF字节数据 + pdf_bytes_list = _prepare_pdf_bytes(pdf_bytes_list, start_page_id, end_page_id) + + if backend == "pipeline": + # pipeline模式暂不支持异步,使用同步处理方式 + _process_pipeline( + output_dir, pdf_file_names, pdf_bytes_list, p_lang_list, + parse_method, formula_enable, table_enable, + f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json, + f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode + ) + else: + if backend.startswith("vlm-"): + backend = backend[4:] + + if backend == "vllm-engine": + raise Exception("vlm-vllm-engine backend is not supported in async mode, please use vlm-vllm-async-engine backend") + + if backend == "auto-engine": + backend = get_vlm_engine(inference_engine='auto', is_async=True) + + os.environ['MINERU_VLM_FORMULA_ENABLE'] = str(formula_enable) + os.environ['MINERU_VLM_TABLE_ENABLE'] = str(table_enable) + + await _async_process_vlm( + output_dir, pdf_file_names, pdf_bytes_list, backend, + f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json, + f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode, + server_url, **kwargs, + ) + elif backend.startswith("hybrid-"): + ensure_backend_dependencies(backend) + backend = backend[7:] + + if backend == "vllm-engine": + raise Exception("hybrid-vllm-engine backend is not supported in async mode, please use hybrid-vllm-async-engine backend") + + if backend == "auto-engine": + backend = get_vlm_engine(inference_engine='auto', is_async=True) + + os.environ['MINERU_VLM_TABLE_ENABLE'] = str(table_enable) + os.environ['MINERU_VLM_FORMULA_ENABLE'] = "true" + + await _async_process_hybrid( + output_dir, pdf_file_names, pdf_bytes_list, p_lang_list, parse_method, formula_enable, backend, + f_draw_layout_bbox, f_draw_span_bbox, f_dump_md, f_dump_middle_json, + f_dump_model_output, f_dump_orig_pdf, f_dump_content_list, f_make_md_mode, + server_url, **kwargs, + ) + + +if __name__ == "__main__": + # pdf_path = "../../demo/pdfs/demo3.pdf" + pdf_path = "C:/Users/zhaoxiaomeng/Downloads/4546d0e2-ba60-40a5-a17e-b68555cec741.pdf" + + try: + do_parse("./output", [Path(pdf_path).stem], [read_fn(Path(pdf_path))],["ch"], + end_page_id=10, + backend='vlm-huggingface' + # backend = 'pipeline' + ) + except Exception as e: + logger.exception(e) diff --git a/mineru/cli/fast_api.py b/mineru/cli/fast_api.py new file mode 100644 index 000000000..edcbaae64 --- /dev/null +++ b/mineru/cli/fast_api.py @@ -0,0 +1,1620 @@ +# Copyright (c) Opendatalab. All rights reserved. +import asyncio +import mimetypes +import multiprocessing +import os +import shutil +import sys +import tempfile +import threading +import uuid +import zipfile +from contextlib import asynccontextmanager, suppress +from dataclasses import dataclass +from datetime import datetime, timezone +from pathlib import Path +from typing import Annotated, Any, Optional + +import click +import uvicorn +from fastapi import ( + BackgroundTasks, + Depends, + FastAPI, + File, + Form, + HTTPException, + Request, + UploadFile, +) +from fastapi.middleware.gzip import GZipMiddleware +from fastapi.responses import FileResponse, JSONResponse, Response +from loguru import logger + +from base64 import b64encode + +from mineru.cli.common import ( + aio_do_parse, + do_parse, + image_suffixes, + normalize_upload_filename, + office_suffixes, + pdf_suffixes, + normalize_task_stem, + read_fn, + uniquify_task_stems, +) +from mineru.cli.public_http_client_policy import ( + configure_public_http_client_policy, + is_public_bind_host, + validate_public_http_client_request, + warn_if_public_http_client_policy as _warn_if_public_http_client_policy, +) +from mineru.cli.output_paths import resolve_parse_dir +from mineru.cli.api_protocol import ( + API_PROTOCOL_VERSION, + DEFAULT_MAX_CONCURRENT_REQUESTS, + DEFAULT_PROCESSING_WINDOW_SIZE, +) +from mineru.cli.vlm_preload import ( + maybe_preload_vlm_model, + split_service_and_model_config, +) +from mineru.backend.vlm.vlm_analyze import shutdown_cached_models +from mineru.utils.cli_parser import arg_parse +from mineru.utils.check_sys_env import is_mac_environment +from mineru.utils.config_reader import ( + get_max_concurrent_requests as read_max_concurrent_requests, + get_processing_window_size, +) +from mineru.utils.guess_suffix_or_lang import guess_suffix_by_path +from mineru.utils.pdf_image_tools import shutdown_pdf_render_executor +from mineru.version import __version__ + +os.environ["TORCH_CUDNN_V8_API_DISABLED"] = "1" +log_level = os.getenv("MINERU_LOG_LEVEL", "INFO").upper() +logger.remove() +logger.add(sys.stderr, level=log_level) + +TASK_PENDING = "pending" +TASK_PROCESSING = "processing" +TASK_COMPLETED = "completed" +TASK_FAILED = "failed" +TASK_TERMINAL_STATES = {TASK_COMPLETED, TASK_FAILED} +SUPPORTED_UPLOAD_SUFFIXES = pdf_suffixes + image_suffixes + office_suffixes +DEFAULT_TASK_RETENTION_SECONDS = 24 * 60 * 60 +DEFAULT_TASK_CLEANUP_INTERVAL_SECONDS = 5 * 60 +DEFAULT_OUTPUT_ROOT = "./output" +ALLOWED_PARSE_METHODS = {"auto", "txt", "ocr"} +FILE_PARSE_TASK_ID_HEADER = "X-MinerU-Task-Id" +FILE_PARSE_TASK_STATUS_HEADER = "X-MinerU-Task-Status" +FILE_PARSE_TASK_STATUS_URL_HEADER = "X-MinerU-Task-Status-Url" +FILE_PARSE_TASK_RESULT_URL_HEADER = "X-MinerU-Task-Result-Url" +MINERU_API_PUBLIC_BIND_EXPOSED_ENV = "MINERU_API_PUBLIC_BIND_EXPOSED" +MINERU_API_ALLOW_PUBLIC_HTTP_CLIENT_ENV = "MINERU_API_ALLOW_PUBLIC_HTTP_CLIENT" +SWAGGER_UI_FILE_ARRAY_SCHEMA_EXTRA = { + # Swagger UI 5 currently fails to render a usable multi-file picker when + # FastAPI emits OpenAPI 3.1 byte arrays with contentMediaType. + "items": {"type": "string", "format": "binary"} +} + +# 并发控制器 +_request_semaphore: Optional[asyncio.Semaphore] = None +_configured_max_concurrent_requests = 1 + + +def env_flag_enabled(name: str, default: bool = False) -> bool: + value = os.getenv(name) + if value is None: + return default + return value.lower() in ("1", "true", "yes", "on") + + +def is_main_multiprocessing_process() -> bool: + try: + return multiprocessing.current_process().name == "MainProcess" + except Exception: + return True + + +def install_stdin_shutdown_watcher(server: uvicorn.Server) -> None: + if not env_flag_enabled("MINERU_API_SHUTDOWN_ON_STDIN_EOF"): + return + + def _watch_stdin_for_eof() -> None: + stdin_stream = getattr(sys.stdin, "buffer", sys.stdin) + try: + stdin_stream.read() + except Exception: + return + server.should_exit = True + + watcher = threading.Thread( + target=_watch_stdin_for_eof, + name="mineru-api-stdin-shutdown", + daemon=True, + ) + watcher.start() + + +@dataclass +class ParseRequestOptions: + files: list[UploadFile] + lang_list: list[str] + backend: str + parse_method: str + formula_enable: bool + table_enable: bool + server_url: Optional[str] + return_md: bool + return_middle_json: bool + return_model_output: bool + return_content_list: bool + return_images: bool + response_format_zip: bool + return_original_file: bool + start_page_id: int + end_page_id: int + + +@dataclass +class StoredUpload: + original_name: str + stem: str + path: str + + +@dataclass +class AsyncParseTask: + task_id: str + status: str + backend: str + file_names: list[str] + created_at: str + output_dir: str + parse_method: str + lang_list: list[str] + formula_enable: bool + table_enable: bool + server_url: Optional[str] + return_md: bool + return_middle_json: bool + return_model_output: bool + return_content_list: bool + return_images: bool + response_format_zip: bool + return_original_file: bool + start_page_id: int + end_page_id: int + upload_names: list[str] + uploads: list[str] + submit_order: int = 0 + started_at: Optional[str] = None + completed_at: Optional[str] = None + error: Optional[str] = None + + def to_status_payload( + self, + request: Request, + queued_ahead: int | None = None, + ) -> dict[str, Any]: + payload = { + "task_id": self.task_id, + "status": self.status, + "backend": self.backend, + "file_names": self.file_names, + "created_at": self.created_at, + "started_at": self.started_at, + "completed_at": self.completed_at, + "error": self.error, + "status_url": str( + request.url_for("get_async_task_status", task_id=self.task_id) + ), + "result_url": str( + request.url_for("get_async_task_result", task_id=self.task_id) + ), + } + if queued_ahead is not None: + payload["queued_ahead"] = queued_ahead + return payload + + +class TaskWaitAbortedError(RuntimeError): + """Raised when a synchronous file_parse request cannot keep waiting safely.""" + + +@asynccontextmanager +async def lifespan(app: FastAPI): + await startup_app_state(app) + try: + yield + finally: + await shutdown_app_state(app) + + +def create_app(): + # By default, the OpenAPI documentation endpoints (openapi_url, docs_url, redoc_url) are enabled. + # To disable the FastAPI docs and schema endpoints, set the environment variable MINERU_API_ENABLE_FASTAPI_DOCS=0. + enable_docs = env_flag_enabled("MINERU_API_ENABLE_FASTAPI_DOCS", default=True) + app = FastAPI( + openapi_url="/openapi.json" if enable_docs else None, + docs_url="/docs" if enable_docs else None, + redoc_url="/redoc" if enable_docs else None, + lifespan=lifespan, + ) + + global _request_semaphore, _configured_max_concurrent_requests + + if is_mac_environment(): + max_concurrent_requests = 1 + else: + max_concurrent_requests = read_max_concurrent_requests( + default=DEFAULT_MAX_CONCURRENT_REQUESTS + ) + + _configured_max_concurrent_requests = max_concurrent_requests + app.state.max_concurrent_requests = max_concurrent_requests + _request_semaphore = asyncio.Semaphore(max_concurrent_requests) + if is_main_multiprocessing_process(): + logger.info(f"Request concurrency limited to {max_concurrent_requests}") + + app.add_middleware(GZipMiddleware, minimum_size=1000) + app.state.public_bind_exposed = env_flag_enabled( + MINERU_API_PUBLIC_BIND_EXPOSED_ENV, + default=False, + ) + app.state.allow_public_http_client = env_flag_enabled( + MINERU_API_ALLOW_PUBLIC_HTTP_CLIENT_ENV, + default=False, + ) + default_service_config, default_model_config = split_service_and_model_config( + { + "enable_vlm_preload": env_flag_enabled( + "MINERU_API_ENABLE_VLM_PRELOAD", + default=False, + ) + } + ) + app.state.service_config = default_service_config + app.state.config = default_model_config + app.state.task_manager = None + return app + + +app = create_app() + + +async def startup_app_state(app: FastAPI) -> "AsyncTaskManager": + task_manager = AsyncTaskManager(app) + await task_manager.start() + try: + service_config = getattr(app.state, "service_config", {}) + model_config = getattr(app.state, "config", {}) + maybe_preload_vlm_model( + bool(service_config.get("enable_vlm_preload", False)), + model_kwargs=model_config, + ) + except Exception: + await task_manager.shutdown() + app.state.task_manager = None + raise + + app.state.task_manager = task_manager + return task_manager + + +async def shutdown_app_state(app: FastAPI) -> None: + current_task_manager = getattr(app.state, "task_manager", None) + if current_task_manager is not None: + await current_task_manager.shutdown() + app.state.task_manager = None + shutdown_runtime_resources() + + +def shutdown_runtime_resources() -> None: + try: + shutdown_cached_models() + except Exception as exc: + logger.warning(f"Failed to shutdown cached VLM models: {exc}") + + try: + shutdown_pdf_render_executor() + except Exception as exc: + logger.warning(f"Failed to shutdown PDF render executor: {exc}") + + +def utc_now_iso() -> str: + return datetime.now(timezone.utc).isoformat() + + +def get_int_env(name: str, default: int, minimum: int = 0) -> int: + try: + value = int(os.getenv(name, str(default))) + except ValueError: + return default + if value < minimum: + return default + return value + + +def get_max_concurrent_requests() -> int: + return _configured_max_concurrent_requests + + +def get_task_retention_seconds() -> int: + return get_int_env( + "MINERU_API_TASK_RETENTION_SECONDS", + DEFAULT_TASK_RETENTION_SECONDS, + minimum=0, + ) + + +def get_task_cleanup_interval_seconds() -> int: + return get_int_env( + "MINERU_API_TASK_CLEANUP_INTERVAL_SECONDS", + DEFAULT_TASK_CLEANUP_INTERVAL_SECONDS, + minimum=1, + ) + + +def get_output_root() -> Path: + root = Path(os.getenv("MINERU_API_OUTPUT_ROOT", DEFAULT_OUTPUT_ROOT)).expanduser() + root.mkdir(parents=True, exist_ok=True) + return root.resolve() + + +def warn_if_public_http_client_policy(host: str, allow_public_http_client: bool) -> None: + _warn_if_public_http_client_policy( + service_name="API", + host=host, + allow_public_http_client=allow_public_http_client, + ) + + +def validate_parse_method(parse_method: str) -> str: + if parse_method not in ALLOWED_PARSE_METHODS: + raise HTTPException( + status_code=400, + detail=( + "Invalid parse_method. Allowed values: " + + ", ".join(sorted(ALLOWED_PARSE_METHODS)) + ), + ) + return parse_method + + +def cleanup_file(file_path: str) -> None: + """清理临时文件或目录""" + try: + if os.path.exists(file_path): + if os.path.isfile(file_path): + os.remove(file_path) + elif os.path.isdir(file_path): + shutil.rmtree(file_path) + except Exception as e: + logger.warning(f"fail clean file {file_path}: {e}") + + +def build_upload_destination(upload_dir: str, filename: str) -> Path: + destination = Path(upload_dir) / filename + if not destination.exists(): + return destination + + base_name = Path(filename).stem + suffix = Path(filename).suffix + index = 2 + while True: + candidate = Path(upload_dir) / f"{base_name}__upload_{index}{suffix}" + if not candidate.exists(): + return candidate + index += 1 + + +def encode_image(image_path: str) -> str: + """Encode image using base64""" + with open(image_path, "rb") as f: + return b64encode(f.read()).decode() + + +def get_images_dir_image_paths(images_dir: str) -> list[str]: + """Return all supported image files directly under images_dir.""" + if not os.path.isdir(images_dir): + return [] + + return sorted( + str(path) + for path in Path(images_dir).iterdir() + if path.is_file() and path.suffix.lstrip(".").lower() in image_suffixes + ) + + +def get_image_mime_type(image_path: str) -> str: + mime_type, _ = mimetypes.guess_type(image_path) + if mime_type: + return mime_type + return "image/jpeg" + + +def get_infer_result( + file_suffix_identifier: str, pdf_name: str, parse_dir: str +) -> Optional[str]: + """从结果文件中读取推理结果""" + result_file_path = os.path.join(parse_dir, f"{pdf_name}{file_suffix_identifier}") + if os.path.exists(result_file_path): + with open(result_file_path, "r", encoding="utf-8") as fp: + return fp.read() + return None + + +def normalize_lang_list(lang_list: list[str], file_count: int) -> list[str]: + if len(lang_list) == file_count: + return lang_list + base_lang = lang_list[0] if lang_list else "ch" + return [base_lang] * file_count + + +def get_parse_dir(output_dir: str, pdf_name: str, backend: str, parse_method: str) -> str: + return str( + resolve_parse_dir( + output_dir, + pdf_name, + backend, + parse_method, + allow_office_fallback=True, + ) + ) + + +def is_task_terminal(status: str) -> bool: + return status in TASK_TERMINAL_STATES + + +def build_result_dict( + output_dir: str, + pdf_file_names: list[str], + backend: str, + parse_method: str, + return_md: bool, + return_middle_json: bool, + return_model_output: bool, + return_content_list: bool, + return_images: bool, +) -> dict[str, dict[str, Any]]: + result_dict: dict[str, dict[str, Any]] = {} + for pdf_name in pdf_file_names: + result_dict[pdf_name] = {} + data = result_dict[pdf_name] + + try: + parse_dir = get_parse_dir(output_dir, pdf_name, backend, parse_method) + except ValueError: + logger.warning(f"Unknown backend type: {backend}, skipping {pdf_name}") + continue + + if not os.path.exists(parse_dir): + continue + + if return_md: + data["md_content"] = get_infer_result(".md", pdf_name, parse_dir) + if return_middle_json: + data["middle_json"] = get_infer_result("_middle.json", pdf_name, parse_dir) + if return_model_output: + data["model_output"] = get_infer_result("_model.json", pdf_name, parse_dir) + if return_content_list: + data["content_list"] = get_infer_result( + "_content_list.json", pdf_name, parse_dir + ) + if return_images: + images_dir = os.path.join(parse_dir, "images") + image_paths = get_images_dir_image_paths(images_dir) + data["images"] = { + os.path.basename( + image_path + ): f"data:{get_image_mime_type(image_path)};base64,{encode_image(image_path)}" + for image_path in image_paths + } + return result_dict + + +def build_zip_arcname( + pdf_name: str, + parse_dir: str, + relative_path: str, +) -> str: + return os.path.join(pdf_name, os.path.basename(parse_dir), relative_path) + + +def create_result_zip( + output_dir: str, + pdf_file_names: list[str], + backend: str, + parse_method: str, + return_md: bool, + return_middle_json: bool, + return_model_output: bool, + return_content_list: bool, + return_images: bool, + return_original_file: bool, +) -> str: + zip_fd, zip_path = tempfile.mkstemp(suffix=".zip", prefix="mineru_results_") + os.close(zip_fd) + + with zipfile.ZipFile(zip_path, "w", compression=zipfile.ZIP_DEFLATED) as zf: + for pdf_name in pdf_file_names: + try: + parse_dir = get_parse_dir(output_dir, pdf_name, backend, parse_method) + except ValueError: + logger.warning(f"Unknown backend type: {backend}, skipping {pdf_name}") + continue + + if not os.path.exists(parse_dir): + continue + + if return_md: + path = os.path.join(parse_dir, f"{pdf_name}.md") + if os.path.exists(path): + zf.write( + path, + arcname=build_zip_arcname( + pdf_name, + parse_dir, + f"{pdf_name}.md", + ), + ) + + if return_middle_json: + path = os.path.join(parse_dir, f"{pdf_name}_middle.json") + if os.path.exists(path): + zf.write( + path, + arcname=build_zip_arcname( + pdf_name, + parse_dir, + f"{pdf_name}_middle.json", + ), + ) + + if return_model_output: + path = os.path.join(parse_dir, f"{pdf_name}_model.json") + if os.path.exists(path): + zf.write( + path, + arcname=build_zip_arcname( + pdf_name, + parse_dir, + f"{pdf_name}_model.json", + ), + ) + + if return_content_list: + path = os.path.join(parse_dir, f"{pdf_name}_content_list.json") + if os.path.exists(path): + zf.write( + path, + arcname=build_zip_arcname( + pdf_name, + parse_dir, + f"{pdf_name}_content_list.json", + ), + ) + + path = os.path.join(parse_dir, f"{pdf_name}_content_list_v2.json") + if os.path.exists(path): + zf.write( + path, + arcname=build_zip_arcname( + pdf_name, + parse_dir, + f"{pdf_name}_content_list_v2.json", + ), + ) + + if return_images: + images_dir = os.path.join(parse_dir, "images") + image_paths = get_images_dir_image_paths(images_dir) + for image_path in image_paths: + zf.write( + image_path, + arcname=build_zip_arcname( + pdf_name, + parse_dir, + os.path.join("images", os.path.basename(image_path)), + ), + ) + + if return_original_file: + origin_pattern = f"{pdf_name}_origin." + for path in sorted(Path(parse_dir).iterdir()): + if not path.is_file(): + continue + if not path.name.startswith(origin_pattern): + continue + zf.write( + str(path), + arcname=build_zip_arcname( + pdf_name, + parse_dir, + path.name, + ), + ) + return zip_path + + +def build_result_response( + background_tasks: BackgroundTasks, + status_code: int, + output_dir: str, + pdf_file_names: list[str], + backend: str, + parse_method: str, + return_md: bool, + return_middle_json: bool, + return_model_output: bool, + return_content_list: bool, + return_images: bool, + response_format_zip: bool, + return_original_file: bool, + zip_filename: str = "results.zip", +) -> Response: + if response_format_zip: + zip_path = create_result_zip( + output_dir=output_dir, + pdf_file_names=pdf_file_names, + backend=backend, + parse_method=parse_method, + return_md=return_md, + return_middle_json=return_middle_json, + return_model_output=return_model_output, + return_content_list=return_content_list, + return_images=return_images, + return_original_file=return_original_file, + ) + background_tasks.add_task(cleanup_file, zip_path) + return FileResponse( + path=zip_path, + media_type="application/zip", + filename=zip_filename, + status_code=status_code, + ) + + result_dict = build_result_dict( + output_dir=output_dir, + pdf_file_names=pdf_file_names, + backend=backend, + parse_method=parse_method, + return_md=return_md, + return_middle_json=return_middle_json, + return_model_output=return_model_output, + return_content_list=return_content_list, + return_images=return_images, + ) + return JSONResponse( + status_code=status_code, + content={ + "backend": backend, + "version": __version__, + "results": result_dict, + }, + ) + + +def build_task_submission_response( + task: AsyncParseTask, + request: Request, + task_manager: "AsyncTaskManager", +) -> JSONResponse: + payload = task_manager.build_status_payload(task, request) + payload["message"] = "Task submitted successfully" + return JSONResponse(status_code=202, content=payload) + + +def build_sync_file_parse_response( + background_tasks: BackgroundTasks, + task: AsyncParseTask, + request: Request, +) -> Response: + task_payload = task.to_status_payload(request) + if task.response_format_zip: + response = build_result_response( + background_tasks=background_tasks, + status_code=200, + output_dir=task.output_dir, + pdf_file_names=task.file_names, + backend=task.backend, + parse_method=task.parse_method, + return_md=task.return_md, + return_middle_json=task.return_middle_json, + return_model_output=task.return_model_output, + return_content_list=task.return_content_list, + return_images=task.return_images, + response_format_zip=task.response_format_zip, + return_original_file=task.return_original_file, + zip_filename=f"{task.task_id}.zip", + ) + response.headers[FILE_PARSE_TASK_ID_HEADER] = task.task_id + response.headers[FILE_PARSE_TASK_STATUS_HEADER] = task.status + response.headers[FILE_PARSE_TASK_STATUS_URL_HEADER] = task_payload["status_url"] + response.headers[FILE_PARSE_TASK_RESULT_URL_HEADER] = task_payload["result_url"] + return response + + result_dict = build_result_dict( + output_dir=task.output_dir, + pdf_file_names=task.file_names, + backend=task.backend, + parse_method=task.parse_method, + return_md=task.return_md, + return_middle_json=task.return_middle_json, + return_model_output=task.return_model_output, + return_content_list=task.return_content_list, + return_images=task.return_images, + ) + return JSONResponse( + status_code=200, + content={ + **task_payload, + "backend": task.backend, + "version": __version__, + "results": result_dict, + }, + ) + + +async def parse_request_form( + request: Request, + files: Annotated[ + list[UploadFile], + File( + description="Upload PDF, image, DOCX, PPTX, or XLSX files for parsing", + json_schema_extra=SWAGGER_UI_FILE_ARRAY_SCHEMA_EXTRA, + ), + ], + lang_list: Annotated[ + list[str], + Form( + description="""(Adapted only for pipeline and hybrid backend)Input the languages in the pdf to improve OCR accuracy.Options: +- ch: Chinese, English, Chinese Traditional. +- ch_lite: Chinese, English, Chinese Traditional, Japanese. +- ch_server: Chinese, English, Chinese Traditional, Japanese. +- en: English. +- korean: Korean, English. +- japan: Chinese, English, Chinese Traditional, Japanese. +- chinese_cht: Chinese, English, Chinese Traditional, Japanese. +- ta: Tamil, English. +- te: Telugu, English. +- ka: Kannada. +- th: Thai, English. +- el: Greek, English. +- latin: French, German, Afrikaans, Italian, Spanish, Bosnian, Portuguese, Czech, Welsh, Danish, Estonian, Irish, Croatian, Uzbek, Hungarian, Serbian (Latin), Indonesian, Occitan, Icelandic, Lithuanian, Maori, Malay, Dutch, Norwegian, Polish, Slovak, Slovenian, Albanian, Swedish, Swahili, Tagalog, Turkish, Latin, Azerbaijani, Kurdish, Latvian, Maltese, Pali, Romanian, Vietnamese, Finnish, Basque, Galician, Luxembourgish, Romansh, Catalan, Quechua. +- arabic: Arabic, Persian, Uyghur, Urdu, Pashto, Kurdish, Sindhi, Balochi, English. +- east_slavic: Russian, Belarusian, Ukrainian, English. +- cyrillic: Russian, Belarusian, Ukrainian, Serbian (Cyrillic), Bulgarian, Mongolian, Abkhazian, Adyghe, Kabardian, Avar, Dargin, Ingush, Chechen, Lak, Lezgin, Tabasaran, Kazakh, Kyrgyz, Tajik, Macedonian, Tatar, Chuvash, Bashkir, Malian, Moldovan, Udmurt, Komi, Ossetian, Buryat, Kalmyk, Tuvan, Sakha, Karakalpak, English. +- devanagari: Hindi, Marathi, Nepali, Bihari, Maithili, Angika, Bhojpuri, Magahi, Santali, Newari, Konkani, Sanskrit, Haryanvi, English. +""", + ), + ] = ["ch"], + backend: Annotated[ + str, + Form( + description="""The backend for parsing: +- pipeline: More general, supports multiple languages, hallucination-free. +- vlm-auto-engine: High accuracy via local computing power, supports Chinese and English documents only. +- vlm-http-client: High accuracy via remote computing power(client suitable for openai-compatible servers), supports Chinese and English documents only. +- hybrid-auto-engine: Next-generation high accuracy solution via local computing power, supports multiple languages. +- hybrid-http-client: High accuracy via remote computing power but requires a little local computing power(client suitable for openai-compatible servers), supports multiple languages.""", + ), + ] = "hybrid-auto-engine", + parse_method: Annotated[ + str, + Form( + description="""(Adapted only for pipeline and hybrid backend)The method for parsing PDF: +- auto: Automatically determine the method based on the file type +- txt: Use text extraction method +- ocr: Use OCR method for image-based PDFs +""", + ), + ] = "auto", + formula_enable: Annotated[ + bool, + Form(description="Enable formula parsing."), + ] = True, + table_enable: Annotated[ + bool, + Form(description="Enable table parsing."), + ] = True, + server_url: Annotated[ + Optional[str], + Form( + description="(Adapted only for -http-client backend)openai compatible server url, e.g., http://127.0.0.1:30000", + ), + ] = None, + return_md: Annotated[ + bool, + Form(description="Return markdown content in response"), + ] = True, + return_middle_json: Annotated[ + bool, + Form(description="Return middle JSON in response"), + ] = False, + return_model_output: Annotated[ + bool, + Form(description="Return model output JSON in response"), + ] = False, + return_content_list: Annotated[ + bool, + Form(description="Return content list JSON in response"), + ] = False, + return_images: Annotated[ + bool, + Form(description="Return extracted images in response"), + ] = False, + response_format_zip: Annotated[ + bool, + Form(description="Return results as a ZIP file instead of JSON"), + ] = False, + return_original_file: Annotated[ + bool, + Form( + description=( + "Include the processed original input file in the ZIP result; " + "ignored unless response_format_zip=true" + ), + ), + ] = False, + start_page_id: Annotated[ + int, + Form(description="The starting page for PDF parsing, beginning from 0"), + ] = 0, + end_page_id: Annotated[ + int, + Form(description="The ending page for PDF parsing, beginning from 0"), + ] = 99999, +) -> ParseRequestOptions: + validate_public_http_client_request( + public_bind_exposed=bool( + getattr(request.app.state, "public_bind_exposed", False) + ), + allow_public_http_client=bool( + getattr(request.app.state, "allow_public_http_client", False) + ), + backend=backend, + server_url=server_url, + ) + effective_return_original_file = return_original_file and response_format_zip + return ParseRequestOptions( + files=files, + lang_list=lang_list, + backend=backend, + parse_method=validate_parse_method(parse_method), + formula_enable=formula_enable, + table_enable=table_enable, + server_url=server_url, + return_md=return_md, + return_middle_json=return_middle_json, + return_model_output=return_model_output, + return_content_list=return_content_list, + return_images=return_images, + response_format_zip=response_format_zip, + return_original_file=effective_return_original_file, + start_page_id=start_page_id, + end_page_id=end_page_id, + ) + + +async def save_upload_files(upload_dir: str, files: list[UploadFile]) -> list[StoredUpload]: + os.makedirs(upload_dir, exist_ok=True) + uploads: list[StoredUpload] = [] + + for upload in files: + original_name = upload.filename or f"upload-{uuid.uuid4()}" + filename = normalize_upload_filename(original_name) + normalized_stem = normalize_task_stem(Path(filename).stem) + destination = build_upload_destination(upload_dir, filename) + try: + with open(destination, "wb") as handle: + while True: + chunk = await upload.read(1 << 20) + if not chunk: + break + handle.write(chunk) + + file_suffix = guess_suffix_by_path(destination) + if file_suffix not in SUPPORTED_UPLOAD_SUFFIXES: + cleanup_file(str(destination)) + raise HTTPException( + status_code=400, + detail=f"Unsupported file type: {file_suffix}", + ) + + uploads.append( + StoredUpload( + original_name=original_name, + stem=normalized_stem, + path=str(destination), + ) + ) + except Exception: + cleanup_file(str(destination)) + raise + finally: + await upload.close() + + normalized_stems, renamed_stems = uniquify_task_stems( + [upload.stem for upload in uploads] + ) + if renamed_stems: + rename_details = ", ".join( + f"{Path(upload.original_name).name} -> {effective_stem}" + for upload, effective_stem in zip(uploads, normalized_stems) + if upload.stem != effective_stem + ) + logger.warning( + f"Normalized duplicate upload stems within request: {rename_details}" + ) + uploads = [ + StoredUpload( + original_name=upload.original_name, + stem=effective_stem, + path=upload.path, + ) + for upload, effective_stem in zip(uploads, normalized_stems) + ] + return uploads + + +def load_parse_inputs(uploads: list[StoredUpload]) -> tuple[list[str], list[bytes]]: + pdf_file_names = [] + pdf_bytes_list = [] + + for upload in uploads: + try: + pdf_bytes = read_fn(Path(upload.path)) + except Exception as exc: + raise RuntimeError(f"Failed to load file {upload.original_name}: {exc}") from exc + pdf_file_names.append(upload.stem) + pdf_bytes_list.append(pdf_bytes) + return pdf_file_names, pdf_bytes_list + + +async def run_parse_job( + output_dir: str, + uploads: list[StoredUpload], + request_options: ParseRequestOptions | AsyncParseTask, + config: dict[str, Any], +) -> list[str]: + pdf_file_names, pdf_bytes_list = await asyncio.to_thread(load_parse_inputs, uploads) + actual_lang_list = normalize_lang_list(request_options.lang_list, len(pdf_file_names)) + response_file_names = list(pdf_file_names) + + parse_kwargs = dict( + output_dir=output_dir, + pdf_file_names=list(pdf_file_names), + pdf_bytes_list=list(pdf_bytes_list), + p_lang_list=list(actual_lang_list), + backend=request_options.backend, + parse_method=request_options.parse_method, + formula_enable=request_options.formula_enable, + table_enable=request_options.table_enable, + server_url=request_options.server_url, + f_draw_layout_bbox=False, + f_draw_span_bbox=False, + f_dump_md=request_options.return_md, + f_dump_middle_json=request_options.return_middle_json, + f_dump_model_output=request_options.return_model_output, + f_dump_orig_pdf=( + request_options.return_original_file and request_options.response_format_zip + ), + f_dump_content_list=request_options.return_content_list, + start_page_id=request_options.start_page_id, + end_page_id=request_options.end_page_id, + **config, + ) + + if request_options.backend == "pipeline": + await asyncio.to_thread(do_parse, **parse_kwargs) + else: + await aio_do_parse(**parse_kwargs) + return response_file_names + + +def create_task_output_dir(task_id: str) -> str: + output_root = get_output_root() + task_output_dir = output_root / task_id + task_output_dir.mkdir(parents=True, exist_ok=True) + return str(task_output_dir) + + +async def create_async_parse_task( + request_options: ParseRequestOptions, +) -> AsyncParseTask: + task_id = str(uuid.uuid4()) + task_output_dir = create_task_output_dir(task_id) + uploads_dir = os.path.join(task_output_dir, "uploads") + task_manager = get_task_manager() + + try: + uploads = await save_upload_files(uploads_dir, request_options.files) + request_options.files.clear() + file_names = [upload.stem for upload in uploads] + task = AsyncParseTask( + task_id=task_id, + status=TASK_PENDING, + backend=request_options.backend, + file_names=file_names, + created_at=utc_now_iso(), + output_dir=task_output_dir, + parse_method=request_options.parse_method, + lang_list=request_options.lang_list, + formula_enable=request_options.formula_enable, + table_enable=request_options.table_enable, + server_url=request_options.server_url, + return_md=request_options.return_md, + return_middle_json=request_options.return_middle_json, + return_model_output=request_options.return_model_output, + return_content_list=request_options.return_content_list, + return_images=request_options.return_images, + response_format_zip=request_options.response_format_zip, + return_original_file=request_options.return_original_file, + start_page_id=request_options.start_page_id, + end_page_id=request_options.end_page_id, + upload_names=[upload.original_name for upload in uploads], + uploads=[upload.path for upload in uploads], + ) + await task_manager.submit(task) + return task + except HTTPException: + cleanup_file(task_output_dir) + raise + except Exception: + cleanup_file(task_output_dir) + raise + + +class AsyncTaskManager: + def __init__(self, fastapi_app: FastAPI): + self.app = fastapi_app + self.tasks: dict[str, AsyncParseTask] = {} + self.task_events: dict[str, asyncio.Event] = {} + self.queue: asyncio.Queue[str] = asyncio.Queue() + self.dispatcher_task: Optional[asyncio.Task[Any]] = None + self.cleanup_task: Optional[asyncio.Task[Any]] = None + self.active_tasks: set[asyncio.Task[Any]] = set() + self.last_worker_error: Optional[str] = None + self.is_shutting_down = False + self.task_retention_seconds = get_task_retention_seconds() + self.task_cleanup_interval_seconds = get_task_cleanup_interval_seconds() + self.manager_wakeup = asyncio.Event() + self._next_submit_order = 1 + + async def start(self) -> None: + self.is_shutting_down = False + self.last_worker_error = None + self.manager_wakeup = asyncio.Event() + if self.dispatcher_task is None or self.dispatcher_task.done(): + self.dispatcher_task = asyncio.create_task( + self._dispatcher_loop(), name="mineru-fastapi-task-dispatcher" + ) + if ( + self.task_retention_seconds > 0 + and (self.cleanup_task is None or self.cleanup_task.done()) + ): + self.cleanup_task = asyncio.create_task( + self._cleanup_loop(), name="mineru-fastapi-task-cleanup" + ) + + async def shutdown(self) -> None: + self.is_shutting_down = True + self._wake_waiters() + if self.dispatcher_task is not None: + self.dispatcher_task.cancel() + with suppress(asyncio.CancelledError): + await self.dispatcher_task + self.dispatcher_task = None + if self.cleanup_task is not None: + self.cleanup_task.cancel() + with suppress(asyncio.CancelledError): + await self.cleanup_task + self.cleanup_task = None + + pending = list(self.active_tasks) + for processor in pending: + processor.cancel() + if pending: + await asyncio.gather(*pending, return_exceptions=True) + self.active_tasks.clear() + + async def submit(self, task: AsyncParseTask) -> None: + task.submit_order = self._next_submit_order + self._next_submit_order += 1 + self.tasks[task.task_id] = task + self.task_events[task.task_id] = asyncio.Event() + await self.queue.put(task.task_id) + + def get(self, task_id: str) -> Optional[AsyncParseTask]: + return self.tasks.get(task_id) + + def get_queued_ahead(self, task_id: str) -> int | None: + task = self.tasks.get(task_id) + if task is None: + return None + if task.status != TASK_PENDING: + return 0 + + return sum( + 1 + for other_task in self.tasks.values() + if ( + other_task.task_id != task_id + and other_task.status == TASK_PENDING + and 0 < other_task.submit_order < task.submit_order + ) + ) + + def build_status_payload( + self, + task: AsyncParseTask, + request: Request, + ) -> dict[str, Any]: + return task.to_status_payload( + request, + queued_ahead=self.get_queued_ahead(task.task_id), + ) + + async def wait_for_terminal_state(self, task_id: str) -> AsyncParseTask: + task = self.tasks.get(task_id) + if task is None: + raise TaskWaitAbortedError("Task not found") + if is_task_terminal(task.status): + return task + + task_event = self.task_events.get(task_id) + if task_event is None: + raise TaskWaitAbortedError("Task wait handle is unavailable") + + event_wait_task = asyncio.create_task(task_event.wait()) + manager_wait_task = asyncio.create_task(self.manager_wakeup.wait()) + done: set[asyncio.Task[Any]] = set() + pending: set[asyncio.Task[Any]] = set() + try: + done, pending = await asyncio.wait( + {event_wait_task, manager_wait_task}, + return_when=asyncio.FIRST_COMPLETED, + ) + finally: + for waiter in pending: + waiter.cancel() + if pending: + await asyncio.gather(*pending, return_exceptions=True) + for waiter in done: + with suppress(asyncio.CancelledError): + waiter.result() + + task = self.tasks.get(task_id) + if task is None: + if self.is_shutting_down: + raise TaskWaitAbortedError("Task manager is shutting down") + raise TaskWaitAbortedError("Task was removed before completion") + if is_task_terminal(task.status): + return task + if self.is_shutting_down: + raise TaskWaitAbortedError("Task manager is shutting down") + raise TaskWaitAbortedError( + self.last_worker_error or "Task manager became unavailable while waiting" + ) + + def get_stats(self) -> dict[str, int]: + stats = { + TASK_PENDING: 0, + TASK_PROCESSING: 0, + TASK_COMPLETED: 0, + TASK_FAILED: 0, + } + for task in self.tasks.values(): + if task.status in stats: + stats[task.status] += 1 + return stats + + def is_healthy(self) -> bool: + if self.dispatcher_task is None: + return False + if self.dispatcher_task.done() and not self.is_shutting_down: + return False + if self.task_retention_seconds > 0 and self.cleanup_task is None: + return False + if ( + self.task_retention_seconds > 0 + and self.cleanup_task is not None + and self.cleanup_task.done() + and not self.is_shutting_down + ): + return False + return self.last_worker_error is None + + def _wake_waiters(self) -> None: + self.manager_wakeup.set() + for task_event in self.task_events.values(): + task_event.set() + + def _signal_task_event(self, task_id: str) -> None: + task_event = self.task_events.get(task_id) + if task_event is not None: + task_event.set() + + async def _dispatcher_loop(self) -> None: + try: + while True: + task_id = await self.queue.get() + processor = asyncio.create_task( + self._process_task(task_id), + name=f"mineru-fastapi-task-{task_id}", + ) + self.active_tasks.add(processor) + processor.add_done_callback(self._on_processor_done) + self.queue.task_done() + except asyncio.CancelledError: + raise + except Exception as exc: + self.last_worker_error = str(exc) + self._wake_waiters() + logger.exception("Async task dispatcher crashed") + raise + + async def _cleanup_loop(self) -> None: + try: + while True: + await asyncio.sleep(self.task_cleanup_interval_seconds) + self.cleanup_expired_tasks() + except asyncio.CancelledError: + raise + except Exception as exc: + self.last_worker_error = str(exc) + logger.exception("Async task cleanup loop crashed") + raise + + def _on_processor_done(self, processor: asyncio.Task[Any]) -> None: + self.active_tasks.discard(processor) + if processor.cancelled(): + return + exception = processor.exception() + if exception is not None: + logger.error(f"Async task processor crashed: {exception}") + self.last_worker_error = str(exception) + + async def _process_task(self, task_id: str) -> None: + task = self.tasks.get(task_id) + if task is None: + return + + try: + if _request_semaphore is not None: + async with _request_semaphore: + await self._run_task(task) + else: + await self._run_task(task) + except asyncio.CancelledError: + raise + except Exception as exc: + task.status = TASK_FAILED + task.error = str(exc) + task.completed_at = utc_now_iso() + self._signal_task_event(task_id) + logger.exception(f"Async task failed: {task_id}") + + async def _run_task(self, task: AsyncParseTask) -> None: + task.status = TASK_PROCESSING + task.started_at = utc_now_iso() + task.error = None + + uploads = [ + StoredUpload( + original_name=upload_name, + stem=file_name, + path=upload_path, + ) + for upload_name, file_name, upload_path in zip( + task.upload_names, + task.file_names, + task.uploads, + ) + ] + config = getattr(self.app.state, "config", {}) + await run_parse_job( + output_dir=task.output_dir, + uploads=uploads, + request_options=task, + config=config, + ) + task.status = TASK_COMPLETED + task.completed_at = utc_now_iso() + self._signal_task_event(task.task_id) + + def cleanup_expired_tasks(self) -> int: + if self.task_retention_seconds <= 0: + return 0 + + now = datetime.now(timezone.utc) + expired_task_ids = [ + task_id + for task_id, task in self.tasks.items() + if self._is_task_expired(task, now) + ] + + for task_id in expired_task_ids: + task = self.tasks.pop(task_id, None) + if task is None: + continue + task_event = self.task_events.pop(task_id, None) + if task_event is not None: + task_event.set() + cleanup_file(task.output_dir) + logger.info(f"Cleaned expired async task: {task_id}") + return len(expired_task_ids) + + def _is_task_expired(self, task: AsyncParseTask, now: datetime) -> bool: + if task.status not in (TASK_COMPLETED, TASK_FAILED): + return False + if not task.completed_at: + return False + try: + completed_at = datetime.fromisoformat(task.completed_at) + except ValueError: + logger.warning(f"Invalid completed_at for task {task.task_id}: {task.completed_at}") + return False + if completed_at.tzinfo is None: + completed_at = completed_at.replace(tzinfo=timezone.utc) + return (now - completed_at).total_seconds() >= self.task_retention_seconds + + +def get_task_manager() -> AsyncTaskManager: + task_manager = getattr(app.state, "task_manager", None) + if task_manager is None: + raise HTTPException(status_code=503, detail="Task manager is not initialized") + return task_manager + + +@app.post( + path="/file_parse", + status_code=200, + summary="Synchronously parse uploaded files", + description=( + "Submit a parsing task to the shared async task manager, wait for it to " + "finish, and return the final parsing result in the same response." + ), +) +async def parse_pdf( + http_request: Request, + background_tasks: BackgroundTasks, + request_options: Annotated[ + ParseRequestOptions, Depends(parse_request_form) + ], +): + task = await create_async_parse_task(request_options) + request_options = None + task_manager = get_task_manager() + + try: + task = await task_manager.wait_for_terminal_state(task.task_id) + except TaskWaitAbortedError as exc: + return JSONResponse( + status_code=503, + content={ + **task.to_status_payload(http_request), + "message": "Task manager became unavailable while waiting for result", + "error": str(exc), + }, + ) + + if task.status == TASK_FAILED: + return JSONResponse( + status_code=409, + content={ + **task.to_status_payload(http_request), + "message": "Task execution failed", + }, + ) + + return build_sync_file_parse_response( + background_tasks=background_tasks, + task=task, + request=http_request, + ) + + +@app.post( + path="/tasks", + status_code=202, + summary="Submit an asynchronous parse task", + description=( + "Submit files for parsing and return immediately with a task id that can be " + "checked via the task status and result endpoints." + ), +) +async def submit_parse_task( + http_request: Request, + request_options: Annotated[ + ParseRequestOptions, Depends(parse_request_form) + ], +): + task_manager = get_task_manager() + task = await create_async_parse_task(request_options) + return build_task_submission_response(task, http_request, task_manager) + + +@app.get(path="/tasks/{task_id}", name="get_async_task_status") +async def get_async_task_status(task_id: str, request: Request): + task_manager = get_task_manager() + task = task_manager.get(task_id) + if task is None: + raise HTTPException(status_code=404, detail="Task not found") + return task_manager.build_status_payload(task, request) + + +@app.get(path="/tasks/{task_id}/result", name="get_async_task_result") +async def get_async_task_result( + task_id: str, + request: Request, + background_tasks: BackgroundTasks, +): + task_manager = get_task_manager() + task = task_manager.get(task_id) + if task is None: + raise HTTPException(status_code=404, detail="Task not found") + + if task.status in (TASK_PENDING, TASK_PROCESSING): + return JSONResponse( + status_code=202, + content={ + **task.to_status_payload(request), + "message": "Task result is not ready yet", + }, + ) + + if task.status == TASK_FAILED: + return JSONResponse( + status_code=409, + content={ + **task.to_status_payload(request), + "message": "Task execution failed", + }, + ) + + return build_result_response( + background_tasks=background_tasks, + status_code=200, + output_dir=task.output_dir, + pdf_file_names=task.file_names, + backend=task.backend, + parse_method=task.parse_method, + return_md=task.return_md, + return_middle_json=task.return_middle_json, + return_model_output=task.return_model_output, + return_content_list=task.return_content_list, + return_images=task.return_images, + response_format_zip=task.response_format_zip, + return_original_file=task.return_original_file, + zip_filename=f"{task.task_id}.zip", + ) + + +@app.get(path="/health") +async def health_check(): + task_manager = getattr(app.state, "task_manager", None) + if task_manager is None or not task_manager.is_healthy(): + return JSONResponse( + status_code=503, + content={ + "status": "unhealthy", + "version": __version__, + "error": ( + "Task manager is not initialized" + if task_manager is None + else task_manager.last_worker_error + or ( + "Task cleanup loop is not running" + if ( + task_manager.task_retention_seconds > 0 + and task_manager.cleanup_task is None + ) + else "Task dispatcher is not running" + ) + ), + }, + ) + + stats = task_manager.get_stats() + return { + "status": "healthy", + "version": __version__, + "protocol_version": API_PROTOCOL_VERSION, + "queued_tasks": stats[TASK_PENDING], + "processing_tasks": stats[TASK_PROCESSING], + "completed_tasks": stats[TASK_COMPLETED], + "failed_tasks": stats[TASK_FAILED], + "max_concurrent_requests": get_max_concurrent_requests(), + "processing_window_size": get_processing_window_size( + default=DEFAULT_PROCESSING_WINDOW_SIZE + ), + "task_retention_seconds": task_manager.task_retention_seconds, + "task_cleanup_interval_seconds": task_manager.task_cleanup_interval_seconds, + } + + +@click.command( + context_settings=dict(ignore_unknown_options=True, allow_extra_args=True) +) +@click.pass_context +@click.option("--host", default="127.0.0.1", help="Server host (default: 127.0.0.1)") +@click.option("--port", default=8000, type=int, help="Server port (default: 8000)") +@click.option("--reload", is_flag=True, help="Enable auto-reload (development mode)") +@click.option( + "--allow-public-http-client", + is_flag=True, + help=( + "Allow *-http-client backends and server_url even when binding the API to " + "0.0.0.0 or ::." + ), +) +@click.option( + "--enable-vlm-preload", + "enable_vlm_preload", + type=bool, + default=False, + help="Preload the local VLM model during mineru-api startup.", +) +def main( + ctx, + host, + port, + reload, + allow_public_http_client, + enable_vlm_preload, + **kwargs, +): + del kwargs + raw_config = arg_parse(ctx) + raw_config["enable_vlm_preload"] = enable_vlm_preload + service_config, model_config = split_service_and_model_config(raw_config) + public_bind_exposed = is_public_bind_host(host) + + app.state.service_config = service_config + app.state.config = model_config + configure_public_http_client_policy( + app, + public_bind_exposed=public_bind_exposed, + allow_public_http_client=allow_public_http_client, + ) + os.environ["MINERU_API_ENABLE_VLM_PRELOAD"] = ( + "1" if service_config["enable_vlm_preload"] else "0" + ) + os.environ[MINERU_API_PUBLIC_BIND_EXPOSED_ENV] = "1" if public_bind_exposed else "0" + os.environ[MINERU_API_ALLOW_PUBLIC_HTTP_CLIENT_ENV] = ( + "1" if allow_public_http_client else "0" + ) + warn_if_public_http_client_policy(host, allow_public_http_client) + access_log = not env_flag_enabled("MINERU_API_DISABLE_ACCESS_LOG") + + print(f"Start MinerU FastAPI Service: http://{host}:{port}") + print(f"API documentation: http://{host}:{port}/docs") + + if reload: + uvicorn.run( + "mineru.cli.fast_api:app", + host=host, + port=port, + reload=True, + access_log=access_log, + ) + else: + config = uvicorn.Config( + app, + host=host, + port=port, + reload=False, + access_log=access_log, + ) + server = uvicorn.Server(config) + install_stdin_shutdown_watcher(server) + server.run() + + +if __name__ == "__main__": + main() diff --git a/mineru/cli/gradio_app.py b/mineru/cli/gradio_app.py new file mode 100644 index 000000000..6724157c1 --- /dev/null +++ b/mineru/cli/gradio_app.py @@ -0,0 +1,1412 @@ +# Copyright (c) Opendatalab. All rights reserved. + +import base64 +import asyncio +import httpx +import os +import re +import sys +import threading +import time +import uuid +import zipfile +from contextlib import asynccontextmanager +from dataclasses import dataclass, field +from pathlib import Path +from typing import Callable + +import click +import gradio as gr +from gradio_pdf import PDF +from loguru import logger + +os.environ["TORCH_CUDNN_V8_API_DISABLED"] = "1" +# 检测 Gradio 版本,用于兼容 Gradio 5 和 Gradio 6 +_gradio_major_version = int(gr.__version__.split('.')[0]) +IS_GRADIO_6 = _gradio_major_version >= 6 + +log_level = os.getenv("MINERU_LOG_LEVEL", "INFO").upper() +logger.remove() # 移除默认handler +logger.add(sys.stderr, level=log_level) # 添加新handler + +from mineru.cli.common import ( + docx_suffixes, + image_suffixes, + normalize_task_stem, + office_suffixes, + pdf_suffixes, + read_fn, +) +from mineru.cli import api_client as _api_client +from mineru.cli.output_paths import resolve_parse_dir +from mineru.cli.vlm_preload import resolve_gradio_local_api_cli_args +from mineru.cli.visualization import VisualizationJob, run_visualization_job + +_gradio_local_api_server = _api_client.ReusableLocalAPIServer() + + +@dataclass(frozen=True) +class GradioConcurrencyWaitSnapshot: + limit: int + active: int + waiting: int + ahead: int + + +@dataclass +class _LimiterState: + semaphore: asyncio.Semaphore + active: int = 0 + waiters: list[object] = field(default_factory=list) + + +class GradioRequestConcurrencyLimiter: + def __init__(self): + self._lock = threading.Lock() + self._states: dict[int, _LimiterState] = {} + + def _get_state(self, limit: int): + if limit <= 0: + return None + with self._lock: + state = self._states.get(limit) + if state is None: + state = _LimiterState(semaphore=asyncio.Semaphore(limit)) + self._states[limit] = state + return state + + def _build_wait_snapshot( + self, + state: _LimiterState, + limit: int, + wait_token: object, + ) -> GradioConcurrencyWaitSnapshot | None: + if wait_token not in state.waiters: + return None + + return GradioConcurrencyWaitSnapshot( + limit=limit, + active=state.active, + waiting=len(state.waiters), + ahead=state.waiters.index(wait_token), + ) + + def _remove_waiter(self, state: _LimiterState, wait_token: object) -> None: + if wait_token in state.waiters: + state.waiters.remove(wait_token) + + async def _cleanup_acquire_interruption( + self, + state: _LimiterState, + acquire_task: asyncio.Task[bool], + wait_token: object, + should_wait: bool, + ) -> None: + if not acquire_task.done(): + acquire_task.cancel() + await asyncio.gather(acquire_task, return_exceptions=True) + elif not acquire_task.cancelled(): + try: + acquired = acquire_task.result() + except Exception: + acquired = False + if acquired: + state.semaphore.release() + + if should_wait: + with self._lock: + self._remove_waiter(state, wait_token) + + @asynccontextmanager + async def acquire( + self, + limit: int, + on_wait: Callable[[GradioConcurrencyWaitSnapshot], None] | None = None, + ): + state = self._get_state(limit) + if state is None: + yield + return + + wait_token = object() + should_wait = False + snapshot = None + with self._lock: + if state.active >= limit or state.waiters: + state.waiters.append(wait_token) + should_wait = True + snapshot = self._build_wait_snapshot(state, limit, wait_token) + + acquire_task: asyncio.Task[bool] = asyncio.create_task(state.semaphore.acquire()) + last_wait_ahead = None + if should_wait and on_wait is not None and snapshot is not None: + on_wait(snapshot) + last_wait_ahead = snapshot.ahead + + try: + if should_wait: + while True: + done, _ = await asyncio.wait( + {acquire_task}, + timeout=STATUS_TIMER_INTERVAL_SECONDS, + ) + if acquire_task in done: + acquire_task.result() + break + + if on_wait is None: + continue + + with self._lock: + snapshot = self._build_wait_snapshot(state, limit, wait_token) + + if snapshot is None or snapshot.ahead == last_wait_ahead: + continue + + on_wait(snapshot) + last_wait_ahead = snapshot.ahead + else: + await acquire_task + except BaseException: + await self._cleanup_acquire_interruption( + state=state, + acquire_task=acquire_task, + wait_token=wait_token, + should_wait=should_wait, + ) + raise + + with self._lock: + if should_wait: + self._remove_waiter(state, wait_token) + state.active += 1 + try: + yield + finally: + with self._lock: + state.active = max(0, state.active - 1) + state.semaphore.release() + + +_gradio_request_concurrency_limiter = GradioRequestConcurrencyLimiter() + +STATUS_BOX_AUTOSCROLL_JS = """ +(value) => { + const scrollToBottom = () => { + const textarea = document.querySelector(".convert-status-box textarea"); + if (!textarea) { + return; + } + textarea.scrollTop = textarea.scrollHeight; + }; + + requestAnimationFrame(() => { + scrollToBottom(); + requestAnimationFrame(scrollToBottom); + }); + + return []; +} +""" + +STATUS_TIMER_INTERVAL_SECONDS = 0.1 +STATUS_QUEUE_ANIMATION_INTERVAL_SECONDS = 1.0 +STATUS_QUEUE_ANIMATION_MAX_DOTS = 10 + +STATUS_PREPARING_REQUEST = "Preparing request..." +STATUS_CHECKING_SERVER = "Checking server status..." +STATUS_SUBMITTING_TASK = "Submitting task..." +STATUS_DOWNLOADING_RESULT = "Task completed, downloading result..." +STATUS_PROCESSING_OUTPUT = "Preparing outputs..." +STATUS_COMPLETED = "Completed" +STATUS_QUEUED_ON_SERVER = "Queued on server" +STATUS_PROCESSING_ON_SERVER = "Processing on server" +STATUS_QUEUED_LOCALLY_PREFIX = "Queued locally:" + + +@dataclass +class StatusPanelState: + lines: list[str] = field(default_factory=list) + processing_index: int | None = None + processing_started_at: float | None = None + queue_index: int | None = None + queue_started_at: float | None = None + queue_base_message: str | None = None + + def append(self, message: str) -> bool: + if not message: + return False + + if self.is_queue_message(message): + self.finalize_processing() + return self.update_queue(message) + + if message == STATUS_PROCESSING_ON_SERVER: + self.finalize_queue() + return self.start_processing() + + self.finalize_processing() + self.finalize_queue() + if not self.lines or self.lines[-1] != message: + self.lines.append(message) + return True + return False + + def start_processing(self) -> bool: + if self.processing_started_at is not None: + return self.tick_processing() + + self.processing_started_at = time.monotonic() + self.processing_index = len(self.lines) + self.lines.append(format_processing_status(0.0)) + return True + + def tick_processing(self) -> bool: + if self.processing_started_at is None or self.processing_index is None: + return False + + updated = format_processing_status( + max(0.0, time.monotonic() - self.processing_started_at) + ) + if self.lines[self.processing_index] != updated: + self.lines[self.processing_index] = updated + return True + return False + + def finalize_processing(self) -> bool: + if self.processing_started_at is None or self.processing_index is None: + return False + + self.tick_processing() + self.processing_started_at = None + self.processing_index = None + return True + + def update_queue(self, message: str) -> bool: + if ( + self.queue_index is None + or self.queue_started_at is None + or self.queue_base_message is None + ): + self.queue_started_at = time.monotonic() + self.queue_index = len(self.lines) + self.queue_base_message = message + self.lines.append(format_queue_status(message, 0.0)) + return True + + self.queue_base_message = message + updated = format_queue_status( + message, + max(0.0, time.monotonic() - self.queue_started_at), + ) + if self.lines[self.queue_index] != updated: + self.lines[self.queue_index] = updated + return True + return False + + def tick_queue(self) -> bool: + if ( + self.queue_index is None + or self.queue_started_at is None + or self.queue_base_message is None + ): + return False + + updated = format_queue_status( + self.queue_base_message, + max(0.0, time.monotonic() - self.queue_started_at), + ) + if self.lines[self.queue_index] != updated: + self.lines[self.queue_index] = updated + return True + return False + + def finalize_queue(self) -> bool: + if ( + self.queue_index is None + or self.queue_started_at is None + or self.queue_base_message is None + ): + return False + + self.tick_queue() + self.queue_index = None + self.queue_started_at = None + self.queue_base_message = None + return True + + def tick(self) -> bool: + if self.is_processing: + return self.tick_processing() + if self.is_queueing: + return self.tick_queue() + return False + + @property + def is_processing(self) -> bool: + return self.processing_started_at is not None + + @property + def is_queueing(self) -> bool: + return self.queue_started_at is not None + + @property + def animation_interval_seconds(self) -> float | None: + if self.is_processing: + return STATUS_TIMER_INTERVAL_SECONDS + if self.is_queueing: + return STATUS_QUEUE_ANIMATION_INTERVAL_SECONDS + return None + + @staticmethod + def is_queue_message(message: str) -> bool: + return ( + message.startswith(STATUS_QUEUED_LOCALLY_PREFIX) + or message.startswith(STATUS_QUEUED_ON_SERVER) + ) + + def render(self) -> str: + return "\n".join(self.lines) + + +def format_failed_status(error: Exception | str) -> str: + return f"Failed: {error}" + + +def format_processing_status(elapsed_seconds: float) -> str: + return f"{STATUS_PROCESSING_ON_SERVER} ({elapsed_seconds:.1f}s)" + + +def format_queue_status(base_message: str, elapsed_seconds: float) -> str: + dots = "." * ( + (int(max(0.0, elapsed_seconds)) % STATUS_QUEUE_ANIMATION_MAX_DOTS) + 1 + ) + return f"{base_message}{dots}" + + +def format_concurrency_wait_message(snapshot: GradioConcurrencyWaitSnapshot) -> str: + return f"{STATUS_QUEUED_LOCALLY_PREFIX} {snapshot.ahead} request(s) ahead" + + +def format_remote_status_message( + status_snapshot: _api_client.TaskStatusSnapshot | str, +) -> str: + if isinstance(status_snapshot, _api_client.TaskStatusSnapshot): + status = status_snapshot.status + queued_ahead = status_snapshot.queued_ahead + else: + status = status_snapshot + queued_ahead = None + + if status == "pending": + if queued_ahead is not None: + return f"{STATUS_QUEUED_ON_SERVER}: {queued_ahead} request(s) ahead" + return STATUS_QUEUED_ON_SERVER + if status == "processing": + return STATUS_PROCESSING_ON_SERVER + if status == "completed": + return STATUS_COMPLETED + if status == "failed": + return format_failed_status("server task failed") + return f"Task status: {status}" + + +def compress_directory_to_zip(directory_path, output_zip_path): + """压缩指定目录到一个 ZIP 文件。 + + :param directory_path: 要压缩的目录路径 + :param output_zip_path: 输出的 ZIP 文件路径 + """ + try: + with zipfile.ZipFile(output_zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf: + + # 遍历目录中的所有文件和子目录 + for root, dirs, files in os.walk(directory_path): + for file in files: + # 构建完整的文件路径 + file_path = os.path.join(root, file) + # 计算相对路径 + arcname = os.path.relpath(file_path, directory_path) + # 添加文件到 ZIP 文件 + zipf.write(file_path, arcname) + return 0 + except Exception as e: + logger.exception(e) + return -1 + + +def image_to_base64(image_path): + with open(image_path, 'rb') as image_file: + return base64.b64encode(image_file.read()).decode('utf-8') + + +def replace_image_with_base64(markdown_text, image_dir_path): + # MIME类型映射 + mime_types = { + '.jpg': 'image/jpeg', + '.jpeg': 'image/jpeg', + '.png': 'image/png', + '.gif': 'image/gif', + '.webp': 'image/webp', + '.svg': 'image/svg+xml', + } + + def _path_to_data_uri(relative_path): + file_ext = os.path.splitext(relative_path)[1].lower() + if file_ext not in mime_types: + return None + try: + full_path = os.path.join(image_dir_path, relative_path) + base64_image = image_to_base64(full_path) + return f'data:{mime_types[file_ext]};base64,{base64_image}' + except Exception as e: + logger.warning(f"Failed to convert image {relative_path} to base64: {e}") + return None + + # 匹配Markdown中的图片标签 ![...](path) + def replace_md(match): + relative_path = match.group(1) + data_uri = _path_to_data_uri(relative_path) + if data_uri: + return f'![{relative_path}]({data_uri})' + return match.group(0) + + result = re.sub(r'\!\[(?:[^\]]*)\]\(([^)]+)\)', replace_md, markdown_text) + + # 匹配HTML表格中的 (跳过已有的data: URI) + def replace_html_src(match): + relative_path = match.group(1) + data_uri = _path_to_data_uri(relative_path) + if data_uri: + return f'src="{data_uri}"' + return match.group(0) + + result = re.sub(r'src="(?!data:)([^"]+)"', replace_html_src, result) + + return result + + +def normalize_language(language): + if '(' in language and ')' in language: + return language.split('(')[0].strip() + return language + + +def resolve_parse_method(file_path, is_ocr, backend): + file_suffix = Path(file_path).suffix.lower().lstrip('.') + if file_suffix in office_suffixes: + return "auto" + if backend.startswith("vlm"): + return "auto" + return "ocr" if is_ocr else "auto" + + +def create_gradio_run_paths(file_path, output_root="./output"): + run_id = f"{time.strftime('%y%m%d_%H%M%S')}_{uuid.uuid4().hex[:8]}_{safe_stem(Path(file_path).stem)}" + run_root = Path(output_root) / "gradio" / run_id + extract_root = run_root / "result" + archive_zip_path = run_root / f"{safe_stem(Path(file_path).stem)}.zip" + return run_root, extract_root, archive_zip_path + + +def build_gradio_upload_name(file_path): + path = Path(file_path) + return f"{normalize_task_stem(path.stem)}{path.suffix}" + + +def resolve_result_file_name(submit_response, extract_root, file_path): + if submit_response.file_names: + return submit_response.file_names[0] + + candidate_dirs = sorted(path.name for path in Path(extract_root).iterdir() if path.is_dir()) + if len(candidate_dirs) == 1: + return candidate_dirs[0] + return normalize_task_stem(Path(file_path).stem) + + +async def resolve_server_health(http_client, api_url): + if api_url: + return await _api_client.fetch_server_health( + http_client, + _api_client.normalize_base_url(api_url), + ) + + local_server, started_now = _gradio_local_api_server.ensure_started() + if started_now: + logger.info(f"Started local mineru-api at {local_server.base_url}") + return await _api_client.wait_for_local_api_ready(http_client, local_server) + + +async def ensure_local_api_ready_for_gradio_startup( + timeout_seconds: float = _api_client.LOCAL_API_STARTUP_TIMEOUT_SECONDS, +): + local_server, started_now = _gradio_local_api_server.ensure_started() + if started_now: + logger.info(f"Started local mineru-api at {local_server.base_url}") + + async with httpx.AsyncClient( + timeout=_api_client.build_http_timeout(), + follow_redirects=True, + ) as http_client: + return await _api_client.wait_for_local_api_ready( + http_client, + local_server, + timeout_seconds=timeout_seconds, + ) + + +def maybe_prepare_local_api_for_gradio_startup( + *, + api_url: str | None, + enable_vlm_preload: bool, +): + if api_url is not None or not enable_vlm_preload: + return None + + try: + return asyncio.run(ensure_local_api_ready_for_gradio_startup()) + except Exception: + _gradio_local_api_server.stop() + raise + + +def resolve_gradio_max_concurrent_requests(api_url, server_health): + if api_url is None: + return server_health.max_concurrent_requests + + return _api_client.resolve_effective_max_concurrent_requests( + local_max=_api_client.read_max_concurrent_requests( + default=_api_client.DEFAULT_MAX_CONCURRENT_REQUESTS + ), + server_max=server_health.max_concurrent_requests, + ) + + +def maybe_generate_local_preview(extract_root, file_name, file_suffix, backend, parse_method): + if file_suffix in office_suffixes: + return None + + parse_dir = resolve_parse_dir( + extract_root, + file_name, + backend, + parse_method, + allow_office_fallback=True, + ) + visualization_job = VisualizationJob( + document_stem=file_name, + backend=backend, + parse_method=parse_method, + parse_dir=parse_dir, + draw_span=backend.startswith("pipeline"), + ) + result = run_visualization_job(visualization_job) + if result.status != "finished": + logger.warning( + f"Skipping visualization for {visualization_job.document_stem}: {result.message}" + ) + return resolve_preview_pdf_path(parse_dir, file_name) + + +async def _run_to_markdown_job( + file_path, + end_pages=10, + is_ocr=False, + formula_enable=True, + table_enable=True, + language="ch", + backend="pipeline", + url=None, + api_url=None, + status_callback: Callable[[str], None] | None = None, +): + if file_path is None: + return "", "", None, None + + def emit_status(message: str) -> None: + if status_callback is not None: + status_callback(message) + + normalized_language = normalize_language(language) + file_path = str(file_path) + file_suffix = Path(file_path).suffix.lower().lstrip('.') + parse_method = resolve_parse_method(file_path, is_ocr, backend) + run_root, extract_root, archive_zip_path = create_gradio_run_paths(file_path) + run_root.mkdir(parents=True, exist_ok=True) + + form_data = _api_client.build_parse_request_form_data( + lang_list=[normalized_language], + backend=backend, + parse_method=parse_method, + formula_enable=formula_enable, + table_enable=table_enable, + server_url=url, + start_page_id=0, + end_page_id=end_pages - 1, + return_md=True, + return_middle_json=True, + return_model_output=True, + return_content_list=True, + return_images=True, + response_format_zip=True, + return_original_file=True, + ) + upload_assets = [ + _api_client.UploadAsset( + path=Path(file_path), + upload_name=build_gradio_upload_name(file_path), + ) + ] + + async with httpx.AsyncClient( + timeout=_api_client.build_http_timeout(), + follow_redirects=True, + ) as http_client: + emit_status(STATUS_PREPARING_REQUEST) + emit_status(STATUS_CHECKING_SERVER) + server_health = await resolve_server_health(http_client, api_url) + effective_max_concurrent_requests = resolve_gradio_max_concurrent_requests( + api_url=api_url, + server_health=server_health, + ) + async with _gradio_request_concurrency_limiter.acquire( + effective_max_concurrent_requests, + on_wait=lambda snapshot: emit_status( + format_concurrency_wait_message(snapshot) + ), + ): + emit_status(STATUS_SUBMITTING_TASK) + submit_response = await _api_client.submit_parse_task( + base_url=server_health.base_url, + upload_assets=upload_assets, + form_data=form_data, + ) + emit_status(f"Task submitted:task_id={submit_response.task_id}") + + last_task_snapshot = None + + def handle_task_status( + status_snapshot: _api_client.TaskStatusSnapshot, + ) -> None: + nonlocal last_task_snapshot + if status_snapshot == last_task_snapshot: + return + last_task_snapshot = status_snapshot + emit_status(format_remote_status_message(status_snapshot)) + + await _api_client.wait_for_task_result( + client=http_client, + submit_response=submit_response, + task_label=Path(file_path).name, + status_snapshot_callback=handle_task_status, + ) + emit_status(STATUS_DOWNLOADING_RESULT) + result_zip_path = await _api_client.download_result_zip( + client=http_client, + submit_response=submit_response, + task_label=Path(file_path).name, + ) + + try: + _api_client.safe_extract_zip(result_zip_path, extract_root) + finally: + result_zip_path.unlink(missing_ok=True) + + file_name = resolve_result_file_name(submit_response, extract_root, file_path) + local_md_dir = resolve_parse_dir( + extract_root, + file_name, + backend, + parse_method, + allow_office_fallback=True, + ) + preview_pdf_path = maybe_generate_local_preview( + extract_root=extract_root, + file_name=file_name, + file_suffix=file_suffix, + backend=backend, + parse_method=parse_method, + ) + + emit_status(STATUS_PROCESSING_OUTPUT) + zip_archive_success = compress_directory_to_zip(local_md_dir, archive_zip_path) + if zip_archive_success == 0: + logger.info('Compression successful') + else: + logger.error('Compression failed') + + md_path = Path(local_md_dir) / f"{file_name}.md" + with open(md_path, 'r', encoding='utf-8') as f: + txt_content = f.read() + md_content = replace_image_with_base64(txt_content, local_md_dir) + + if file_suffix in office_suffixes: + preview_pdf_path = None + + emit_status(STATUS_COMPLETED) + return md_content, txt_content, str(archive_zip_path), preview_pdf_path + + +async def stream_to_markdown( + file_path, + end_pages=10, + is_ocr=False, + formula_enable=True, + table_enable=True, + language="ch", + backend="pipeline", + url=None, + api_url=None, +): + status_state = StatusPanelState() + job_task: asyncio.Task | None = None + queue_get_task: asyncio.Task | None = None + timer_task: asyncio.Task | None = None + yield status_state.render(), None, "", "", gr.skip() + + if file_path is None: + return + + status_queue: asyncio.Queue[str] = asyncio.Queue() + loop = asyncio.get_running_loop() + + def enqueue_status(message: str) -> None: + loop.call_soon_threadsafe(status_queue.put_nowait, message) + + try: + job_task = asyncio.create_task( + _run_to_markdown_job( + file_path=file_path, + end_pages=end_pages, + is_ocr=is_ocr, + formula_enable=formula_enable, + table_enable=table_enable, + language=language, + backend=backend, + url=url, + api_url=api_url, + status_callback=enqueue_status, + ) + ) + + while True: + if job_task.done() and status_queue.empty(): + status_state.finalize_processing() + status_state.finalize_queue() + break + + queue_get_task = asyncio.create_task(status_queue.get()) + wait_tasks: set[asyncio.Task] = {job_task, queue_get_task} + timer_task = None + animation_interval = status_state.animation_interval_seconds + if animation_interval is not None: + timer_task = asyncio.create_task( + asyncio.sleep(animation_interval) + ) + wait_tasks.add(timer_task) + + done, pending = await asyncio.wait( + wait_tasks, + return_when=asyncio.FIRST_COMPLETED, + ) + + if queue_get_task in done: + message = queue_get_task.result() + if status_state.append(message): + yield status_state.render(), None, "", "", gr.skip() + elif timer_task is not None and timer_task in done: + if status_state.tick(): + yield status_state.render(), None, "", "", gr.skip() + else: + queue_get_task.cancel() + await asyncio.gather(queue_get_task, return_exceptions=True) + + for pending_task in pending: + if pending_task is job_task: + continue + pending_task.cancel() + await asyncio.gather(pending_task, return_exceptions=True) + queue_get_task = None + timer_task = None + + while not status_queue.empty(): + status_state.append(status_queue.get_nowait()) + except Exception as exc: + status_state.append(format_failed_status(exc)) + yield status_state.render(), None, "", "", gr.skip() + raise + finally: + for task in (queue_get_task, timer_task, job_task): + if task is None or task.done(): + continue + task.cancel() + await asyncio.gather(task, return_exceptions=True) + + try: + md_content, txt_content, archive_zip_path, preview_pdf_path = await job_task + except Exception as exc: + status_state.append(format_failed_status(exc)) + yield status_state.render(), None, "", "", gr.skip() + raise + + status_state.append(STATUS_COMPLETED) + yield ( + status_state.render(), + archive_zip_path, + md_content, + txt_content, + preview_pdf_path, + ) + + +def resolve_preview_pdf_path(local_md_dir, file_name): + layout_pdf_path = os.path.join(local_md_dir, file_name + '_layout.pdf') + if os.path.exists(layout_pdf_path): + return layout_pdf_path + + origin_pdf_path = os.path.join(local_md_dir, file_name + '_origin.pdf') + if os.path.exists(origin_pdf_path): + logger.warning( + f"Layout preview PDF not found for {file_name}, " + f"falling back to origin PDF: {origin_pdf_path}" + ) + return origin_pdf_path + + logger.warning(f"No preview PDF found for {file_name} under {local_md_dir}") + return None + + +latex_delimiters_type_a = [ + {'left': '$$', 'right': '$$', 'display': True}, + {'left': '$', 'right': '$', 'display': False}, +] +latex_delimiters_type_b = [ + {'left': '\\(', 'right': '\\)', 'display': False}, + {'left': '\\[', 'right': '\\]', 'display': True}, +] +latex_delimiters_type_all = latex_delimiters_type_a + latex_delimiters_type_b + +header_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), 'resources', 'header.html') +with open(header_path, mode='r', encoding='utf-8') as header_file: + header = header_file.read() + +other_lang = [ + 'ch (Chinese, English, Chinese Traditional)', + 'ch_lite (Chinese, English, Chinese Traditional, Japanese)', + 'ch_server (Chinese, English, Chinese Traditional, Japanese)', + 'en (English)', + 'korean (Korean, English)', + 'japan (Chinese, English, Chinese Traditional, Japanese)', + 'chinese_cht (Chinese, English, Chinese Traditional, Japanese)', + 'ta (Tamil, English)', + 'te (Telugu, English)', + 'ka (Kannada)', + 'el (Greek, English)', + 'th (Thai, English)' +] +add_lang = [ + 'latin (French, German, Afrikaans, Italian, Spanish, Bosnian, Portuguese, Czech, Welsh, Danish, Estonian, Irish, Croatian, Uzbek, Hungarian, Serbian (Latin), Indonesian, Occitan, Icelandic, Lithuanian, Maori, Malay, Dutch, Norwegian, Polish, Slovak, Slovenian, Albanian, Swedish, Swahili, Tagalog, Turkish, Latin, Azerbaijani, Kurdish, Latvian, Maltese, Pali, Romanian, Vietnamese, Finnish, Basque, Galician, Luxembourgish, Romansh, Catalan, Quechua)', + 'arabic (Arabic, Persian, Uyghur, Urdu, Pashto, Kurdish, Sindhi, Balochi, English)', + 'east_slavic (Russian, Belarusian, Ukrainian, English)', + 'cyrillic (Russian, Belarusian, Ukrainian, Serbian (Cyrillic), Bulgarian, Mongolian, Abkhazian, Adyghe, Kabardian, Avar, Dargin, Ingush, Chechen, Lak, Lezgin, Tabasaran, Kazakh, Kyrgyz, Tajik, Macedonian, Tatar, Chuvash, Bashkir, Malian, Moldovan, Udmurt, Komi, Ossetian, Buryat, Kalmyk, Tuvan, Sakha, Karakalpak, English)', + 'devanagari (Hindi, Marathi, Nepali, Bihari, Maithili, Angika, Bhojpuri, Magahi, Santali, Newari, Konkani, Sanskrit, Haryanvi, English)' +] +all_lang = [*other_lang, *add_lang] + + +def safe_stem(file_path): + stem = Path(file_path).stem + # 只保留字母、数字、下划线和点,其他字符替换为下划线 + return re.sub(r'[^\w.]', '_', stem) + + +def to_pdf(file_path): + + if file_path is None: + return None + + pdf_bytes = read_fn(file_path) + + # unique_filename = f'{uuid.uuid4()}.pdf' + unique_filename = f'{safe_stem(file_path)}.pdf' + + # 构建完整的文件路径 + tmp_file_path = os.path.join(os.path.dirname(file_path), unique_filename) + + # 将字节数据写入文件 + with open(tmp_file_path, 'wb') as tmp_pdf_file: + tmp_pdf_file.write(pdf_bytes) + + return tmp_file_path + + +def to_pdf_preview(file_path): + """用于 PDF 预览的转换函数,office 文件不支持预览,返回 None。""" + if file_path is None: + return None + file_suffix = Path(file_path).suffix.lower().lstrip('.') + if file_suffix in office_suffixes: + return None + return to_pdf(file_path) + + +def update_file_options_html(file_path, request: gr.Request): + """处理文件上传第一阶段:根据文件类型更新 options_group 和 office_html。 + 将 doc_show(gradio_pdf.PDF)的更新拆分到独立的 .then() 事件中, + 以规避 gradio_pdf 0.0.24 在 Gradio 6 中对 value=None 处理不当导致的 + 整个事件 processing 状态卡死的兼容性问题。 + """ + if file_path is None: + return ( + gr.update(visible=True), # options_group - 恢复显示 + gr.update(value="", visible=False), # office_html - 隐藏 + ) + + file_suffix = Path(file_path).suffix.lower().lstrip('.') + is_office = file_suffix in office_suffixes + + if is_office: + # 构建可公开访问的文件 URL,供 Microsoft 在线预览使用 + host = (request.headers.get('x-forwarded-host') + or request.headers.get('host', 'localhost:7860')) + proto = request.headers.get('x-forwarded-proto', 'http') + base_url = f"{proto}://{host}" + public_url = f"{base_url}/gradio_api/file={file_path}" + viewer_url = f"https://view.officeapps.live.com/op/embed.aspx?src={public_url}" + html_content = ( + f'' + ) + return ( + gr.update(visible=False), # options_group - 隐藏 + gr.update(value=html_content, visible=True), # office_html - 显示 + ) + else: + return ( + gr.update(visible=True), # options_group - 显示 + gr.update(value="", visible=False), # office_html - 隐藏 + ) + + +def update_doc_show(file_path): + """处理文件上传第二阶段:单独更新 doc_show(gradio_pdf.PDF)组件。 + 对 office 文件仅改变 visible,避免传递 value=None 触发 + gradio_pdf 0.0.24 在 Gradio 6 中无法完成的加载周期。 + """ + if file_path is None: + # 无文件时恢复显示并清空(clear 按钮路径) + return gr.update(value=None, visible=True) + + file_suffix = Path(file_path).suffix.lower().lstrip('.') + is_office = file_suffix in office_suffixes + + if is_office: + # 仅隐藏,不改变 value,避免触发 gradio_pdf 加载周期导致事件 pending 卡死 + return gr.update(visible=False) + else: + pdf_path = to_pdf_preview(file_path) + return gr.update(value=pdf_path, visible=True) + + +@click.command(context_settings=dict(ignore_unknown_options=True, allow_extra_args=True)) +@click.pass_context +@click.option( + '--enable-example', + 'example_enable', + type=bool, + help="Enable example files for input." + "The example files to be input need to be placed in the `example` folder within the directory where the command is currently executed.", + default=True, +) +@click.option( + '--enable-http-client', + 'http_client_enable', + type=bool, + help="Enable http-client backend to link openai-compatible servers.", + default=False, +) +@click.option( + '--enable-api', + 'api_enable', + type=bool, + help="Enable gradio API for serving the application.", + default=True, +) +@click.option( + '--max-convert-pages', + 'max_convert_pages', + type=int, + help="Set the maximum number of pages to convert from PDF to Markdown.", + default=1000, +) +@click.option( + '--server-name', + 'server_name', + type=str, + help="Set the server name for the Gradio app.", + default=None, +) +@click.option( + '--server-port', + 'server_port', + type=int, + help="Set the server port for the Gradio app.", + default=None, +) +@click.option( + '--api-url', + 'api_url', + type=str, + help="MinerU FastAPI base URL. If omitted, gradio starts a reusable local mineru-api service.", + default=None, +) +@click.option( + '--enable-vlm-preload', + 'enable_vlm_preload', + type=bool, + help="Preload the local VLM model when gradio starts a local mineru-api service.", + default=False, +) +@click.option( + '--latex-delimiters-type', + 'latex_delimiters_type', + type=click.Choice(['a', 'b', 'all']), + help="Set the type of LaTeX delimiters to use in Markdown rendering:" + "'a' for type '$', 'b' for type '()[]', 'all' for both types.", + default='all', +) +def main(ctx, + example_enable, + http_client_enable, + api_enable, max_convert_pages, + server_name, server_port, api_url, enable_vlm_preload, latex_delimiters_type, **kwargs +): + + # 创建 i18n 实例,支持中英文 + i18n = gr.I18n( + en={ + "upload_file": "Please select a file to upload (PDF, image, DOCX, PPTX, or XLSX)", + "max_pages": "Max convert pages", + "backend": "Backend", + "server_url": "Server URL", + "server_url_info": "OpenAI-compatible server URL for http-client backend.", + "recognition_options": "**Recognition Options:**", + "table_enable": "Enable table recognition", + "table_info": "If disabled, tables will be shown as images.", + "formula_label_vlm": "Enable display formula recognition", + "formula_label_pipeline": "Enable formula recognition", + "formula_label_hybrid": "Enable inline formula recognition", + "formula_info_vlm": "If disabled, display formulas will be shown as images.", + "formula_info_pipeline": "If disabled, display formulas will be shown as images, and inline formulas will not be detected or parsed.", + "formula_info_hybrid": "If disabled, inline formulas will not be detected or parsed.", + "ocr_language": "OCR Language", + "ocr_language_info": "Select the OCR language for image-based PDFs and images.", + "force_ocr": "Force enable OCR", + "force_ocr_info": "Enable only if the result is extremely poor. Requires correct OCR language.", + "convert": "Convert", + "clear": "Clear", + "doc_preview": "Document preview", + "examples": "Examples:", + "convert_status": "Conversion Status", + "convert_result": "Convert result", + "md_rendering": "Markdown rendering", + "md_text": "Markdown text", + "backend_info_vlm": "High-precision parsing via VLM, supports Chinese and English documents only.", + "backend_info_pipeline": "Traditional Multi-model pipeline parsing, supports multiple languages, hallucination-free.", + "backend_info_hybrid": "High-precision hybrid parsing, supports multiple languages.", + "backend_info_default": "Select the backend engine for document parsing.", + }, + zh={ + "upload_file": "请选择要上传的文件(PDF、图片、DOCX、PPTX 或 XLSX)", + "max_pages": "最大转换页数", + "backend": "解析后端", + "server_url": "服务器地址", + "server_url_info": "http-client 后端的 OpenAI 兼容服务器地址。", + "recognition_options": "**识别选项:**", + "table_enable": "启用表格识别", + "table_info": "禁用后,表格将显示为图片。", + "formula_label_vlm": "启用行间公式识别", + "formula_label_pipeline": "启用公式识别", + "formula_label_hybrid": "启用行内公式识别", + "formula_info_vlm": "禁用后,行间公式将显示为图片。", + "formula_info_pipeline": "禁用后,行间公式将显示为图片,行内公式将不会被检测或解析。", + "formula_info_hybrid": "禁用后,行内公式将不会被检测或解析。", + "ocr_language": "OCR 语言", + "ocr_language_info": "为扫描版 PDF 和图片选择 OCR 语言。", + "force_ocr": "强制启用 OCR", + "force_ocr_info": "仅在识别效果极差时启用,需选择正确的 OCR 语言。", + "convert": "转换", + "clear": "清除", + "doc_preview": "文档预览", + "examples": "示例:", + "convert_status": "转换状态", + "convert_result": "转换结果", + "md_rendering": "Markdown 渲染", + "md_text": "Markdown 文本", + "backend_info_vlm": "多模态大模型高精度解析,仅支持中英文文档。", + "backend_info_pipeline": "传统多模型管道解析,支持多语言,无幻觉。", + "backend_info_hybrid": "高精度混合解析,支持多语言。", + "backend_info_default": "选择文档解析的后端引擎。", + }, + ) + + # 根据后端类型获取公式识别标签(闭包函数以支持 i18n) + def get_formula_label(backend_choice): + if backend_choice.startswith("vlm"): + return i18n("formula_label_vlm") + elif backend_choice == "pipeline": + return i18n("formula_label_pipeline") + elif backend_choice.startswith("hybrid"): + return i18n("formula_label_hybrid") + else: + return i18n("formula_label_pipeline") + + def get_formula_info(backend_choice): + if backend_choice.startswith("vlm"): + return i18n("formula_info_vlm") + elif backend_choice == "pipeline": + return i18n("formula_info_pipeline") + elif backend_choice.startswith("hybrid"): + return i18n("formula_info_hybrid") + else: + return "" + + def get_backend_info(backend_choice): + if backend_choice.startswith("vlm"): + return i18n("backend_info_vlm") + elif backend_choice == "pipeline": + return i18n("backend_info_pipeline") + elif backend_choice.startswith("hybrid"): + return i18n("backend_info_hybrid") + else: + return i18n("backend_info_default") + + # 更新界面函数 + def update_interface(backend_choice): + formula_label_update = gr.update(label=get_formula_label(backend_choice), info=get_formula_info(backend_choice)) + backend_info_update = gr.update(info=get_backend_info(backend_choice)) + if "http-client" in backend_choice: + client_options_update = gr.update(visible=True) + else: + client_options_update = gr.update(visible=False) + if "vlm" in backend_choice: + ocr_options_update = gr.update(visible=False) + else: + ocr_options_update = gr.update(visible=True) + + return client_options_update, ocr_options_update, formula_label_update, backend_info_update + + + del kwargs + _gradio_local_api_server.configure( + resolve_gradio_local_api_cli_args( + ctx.args, + api_url=api_url, + enable_vlm_preload=enable_vlm_preload, + ) + ) + + if latex_delimiters_type == 'a': + latex_delimiters = latex_delimiters_type_a + elif latex_delimiters_type == 'b': + latex_delimiters = latex_delimiters_type_b + elif latex_delimiters_type == 'all': + latex_delimiters = latex_delimiters_type_all + else: + raise ValueError(f"Invalid latex delimiters type: {latex_delimiters_type}.") + + + async def convert_to_markdown_stream( + file_path, + end_pages=10, + is_ocr=False, + formula_enable=True, + table_enable=True, + language="ch", + backend="pipeline", + url=None, + ): + async for update in stream_to_markdown( + file_path=file_path, + end_pages=end_pages, + is_ocr=is_ocr, + formula_enable=formula_enable, + table_enable=table_enable, + language=language, + backend=backend, + url=url, + api_url=api_url, + ): + yield update + + suffixes = [f".{suffix}" for suffix in pdf_suffixes + image_suffixes + office_suffixes] + with gr.Blocks() as demo: + gr.HTML(header) + with gr.Row(): + with gr.Column(variant='panel', scale=5): + with gr.Row(): + input_file = gr.File(label=i18n("upload_file"), file_types=suffixes) + # 下面这些选项在上传 office 文件时会被自动隐藏 + with gr.Group() as options_group: + with gr.Row(): + max_pages = gr.Slider(1, max_convert_pages, max_convert_pages, step=1, label=i18n("max_pages")) + with gr.Row(): + drop_list = ["pipeline", "vlm-auto-engine", "hybrid-auto-engine"] + preferred_option = "hybrid-auto-engine" + if http_client_enable: + drop_list.extend(["vlm-http-client", "hybrid-http-client"]) + backend = gr.Dropdown(drop_list, label=i18n("backend"), value=preferred_option, info=get_backend_info(preferred_option)) + with gr.Row(visible=False) as client_options: + url = gr.Textbox(label=i18n("server_url"), value='http://localhost:30000', placeholder='http://localhost:30000', info=i18n("server_url_info")) + with gr.Row(equal_height=True): + with gr.Column(): + gr.Markdown(i18n("recognition_options")) + table_enable = gr.Checkbox(label=i18n("table_enable"), value=True, info=i18n("table_info")) + formula_enable = gr.Checkbox(label=get_formula_label(preferred_option), value=True, info=get_formula_info(preferred_option)) + with gr.Column() as ocr_options: + language = gr.Dropdown(all_lang, label=i18n("ocr_language"), value='ch (Chinese, English, Chinese Traditional)', info=i18n("ocr_language_info")) + is_ocr = gr.Checkbox(label=i18n("force_ocr"), value=False, info=i18n("force_ocr_info")) + with gr.Row(): + change_bu = gr.Button(i18n("convert")) + clear_bu = gr.ClearButton(value=i18n("clear")) + _doc_preview_label = "doc preview" if IS_GRADIO_6 else i18n("doc_preview") + doc_show = PDF(label=_doc_preview_label, interactive=False, visible=True, height=800) + office_html = gr.HTML(value="", visible=False) + if example_enable: + example_root = os.path.join(os.getcwd(), 'examples') + if os.path.exists(example_root): + gr.Examples( + label=i18n("examples"), + examples=[os.path.join(example_root, _) for _ in os.listdir(example_root) if + _.endswith(tuple(suffixes))], + inputs=input_file + ) + + with gr.Column(variant='panel', scale=5): + status_box = gr.TextArea( + label=i18n("convert_status"), + value="", + lines=4, + max_lines=4, + interactive=False, + autoscroll=True, + elem_classes=["convert-status-box"], + ) + output_file = gr.File(label=i18n("convert_result"), interactive=False) + with gr.Blocks(): + with gr.Tab(i18n("md_rendering")): + _md_copy_kwargs = {"buttons": ["copy"]} if IS_GRADIO_6 else {"show_copy_button": True} + md = gr.Markdown( + label=i18n("md_rendering"), + height=1200, + latex_delimiters=latex_delimiters, + line_breaks=True, + **_md_copy_kwargs + ) + with gr.Tab(i18n("md_text")): + _textarea_copy_kwargs = {"buttons": ["copy"]} if IS_GRADIO_6 else {"show_copy_button": True} + md_text = gr.TextArea( + lines=45, + label=i18n("md_text"), + **_textarea_copy_kwargs + ) + + # 添加事件处理 + _private_api_kwargs = ( + {"api_visibility": "private", "queue": False} + if IS_GRADIO_6 + else {"api_name": False, "queue": False} + ) + backend.change( + fn=update_interface, + inputs=[backend], + outputs=[client_options, ocr_options, formula_enable, backend], + **_private_api_kwargs + ) + # 添加demo.load事件,在页面加载时触发一次界面更新 + demo.load( + fn=update_interface, + inputs=[backend], + outputs=[client_options, ocr_options, formula_enable, backend], + **_private_api_kwargs + ) + status_box.change( + fn=None, + inputs=[status_box], + outputs=[], + js=STATUS_BOX_AUTOSCROLL_JS, + **_private_api_kwargs + ) + clear_bu.add([input_file, md, doc_show, md_text, output_file, is_ocr, office_html, status_box]) + + # 清除按钮额外重置 UI 可见性(ClearButton 不一定触发 input_file.change) + clear_bu.click( + fn=lambda: ( + gr.update(visible=True), + gr.update(value=None, visible=True), + gr.update(value="", visible=False), + gr.update(value=""), + ), + inputs=[], + outputs=[options_group, doc_show, office_html, status_box], + **_private_api_kwargs + ) + + # 第一阶段:快速更新 options_group 和 office_html,不涉及 gradio_pdf 组件 + # 第二阶段(.then):单独更新 doc_show,使 office_html 的 processing 遮罩 + # 在第一阶段完成后立即消失,规避 gradio_pdf 0.0.24 与 Gradio 6 的兼容性问题。 + input_file.change( + fn=update_file_options_html, + inputs=input_file, + outputs=[options_group, office_html], + **_private_api_kwargs + ).then( + fn=update_doc_show, + inputs=input_file, + outputs=[doc_show], + **_private_api_kwargs + ) + _to_md_api_kwargs = ( + { + "api_visibility": "public" if api_enable else "private", + "queue": True, + "show_progress": "hidden", + } + if IS_GRADIO_6 + else { + "api_name": "to_markdown" if api_enable else False, + "queue": True, + "show_progress": "hidden", + } + ) + change_bu.click( + fn=convert_to_markdown_stream, + inputs=[input_file, max_pages, is_ocr, formula_enable, table_enable, language, backend, url], + outputs=[status_box, output_file, md, md_text, doc_show], + **_to_md_api_kwargs + ) + + demo.queue(default_concurrency_limit=None) + + if IS_GRADIO_6: + footer_links = ["gradio", "settings"] + if api_enable: + footer_links.append("api") + _launch_kwargs = {"footer_links": footer_links} + else: + _launch_kwargs = {"show_api": api_enable} + maybe_prepare_local_api_for_gradio_startup( + api_url=api_url, + enable_vlm_preload=enable_vlm_preload, + ) + demo.launch( + server_name=server_name, + server_port=server_port, + i18n=i18n, + **_launch_kwargs, + ) + + +if __name__ == '__main__': + main() diff --git a/mineru/cli/models_download.py b/mineru/cli/models_download.py new file mode 100644 index 000000000..4179e01fc --- /dev/null +++ b/mineru/cli/models_download.py @@ -0,0 +1,188 @@ +# Copyright (c) Opendatalab. All rights reserved. +from contextlib import contextmanager +import json +import os +import sys +import click +import requests +from loguru import logger + +from mineru.utils.enum_class import ModelPath +from mineru.utils.models_download_utils import auto_download_and_get_model_root_path + +MODEL_SOURCE_ENV_VAR = 'MINERU_MODEL_SOURCE' +REMOTE_MODEL_SOURCES = ('huggingface', 'modelscope') + + +def download_json(url): + """下载JSON文件""" + response = requests.get(url) + response.raise_for_status() + return response.json() + + +def download_and_modify_json(url, local_filename, modifications): + """下载JSON并修改内容""" + if os.path.exists(local_filename): + data = json.load(open(local_filename)) + config_version = data.get('config_version', '0.0.0') + if config_version < '1.3.1': + data = download_json(url) + else: + data = download_json(url) + + # 修改内容 + for key, value in modifications.items(): + if key in data: + if isinstance(data[key], dict): + # 如果是字典,合并新值 + data[key].update(value) + else: + # 否则直接替换 + data[key] = value + + # 保存修改后的内容 + with open(local_filename, 'w', encoding='utf-8') as f: + json.dump(data, f, ensure_ascii=False, indent=4) + + +def configure_model(model_dir, model_type): + """配置模型""" + json_url = 'https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/mineru.template.json' + config_file_name = os.getenv('MINERU_TOOLS_CONFIG_JSON', 'mineru.json') + home_dir = os.path.expanduser('~') + config_file = os.path.join(home_dir, config_file_name) + + json_mods = { + 'models-dir': { + f'{model_type}': model_dir + } + } + + download_and_modify_json(json_url, config_file, json_mods) + logger.info(f'The configuration file has been successfully configured, the path is: {config_file}') + + +def download_pipeline_models(): + """下载Pipeline模型""" + model_paths = [ + ModelPath.pp_doclayout_v2, + ModelPath.unimernet_small, + ModelPath.pytorch_paddle, + ModelPath.slanet_plus, + ModelPath.unet_structure, + ModelPath.paddle_table_cls, + ModelPath.paddle_orientation_classification, + ModelPath.pp_formulanet_plus_m, + ] + download_finish_path = "" + for model_path in model_paths: + logger.info(f"Downloading model: {model_path}") + download_finish_path = auto_download_and_get_model_root_path(model_path, repo_mode='pipeline') + logger.info(f"Pipeline models downloaded successfully to: {download_finish_path}") + configure_model(download_finish_path, "pipeline") + + +def download_vlm_models(): + """下载VLM模型""" + download_finish_path = auto_download_and_get_model_root_path("/", repo_mode='vlm') + logger.info(f"VLM models downloaded successfully to: {download_finish_path}") + configure_model(download_finish_path, "vlm") + + +def get_effective_download_model_source(requested_model_source): + """获取本次下载命令实际使用的模型源。""" + current_model_source = os.getenv(MODEL_SOURCE_ENV_VAR) + if current_model_source == 'local': + logger.warning( + f"{MODEL_SOURCE_ENV_VAR}=local means using pre-downloaded local models. " + f"`mineru-models-download` will temporarily use '{requested_model_source}' " + f"to perform a real download." + ) + return requested_model_source + + if current_model_source is None: + return requested_model_source + + return current_model_source + + +@contextmanager +def temporary_model_source(model_source): + """在命令执行期间临时设置模型源,并在结束后恢复。""" + original_model_source = os.getenv(MODEL_SOURCE_ENV_VAR) + os.environ[MODEL_SOURCE_ENV_VAR] = model_source + try: + yield + finally: + if original_model_source is None: + os.environ.pop(MODEL_SOURCE_ENV_VAR, None) + else: + os.environ[MODEL_SOURCE_ENV_VAR] = original_model_source + + +@click.command() +@click.option( + '-s', + '--source', + 'model_source', + type=click.Choice(REMOTE_MODEL_SOURCES), + help=""" + The source of the model repository. + """, + default=None, +) +@click.option( + '-m', + '--model_type', + 'model_type', + type=click.Choice(['pipeline', 'vlm', 'all']), + help=""" + The type of the model to download. + """, + default=None, +) +def download_models(model_source, model_type): + """Download MinerU model files. + + Supports downloading pipeline or VLM models from ModelScope or HuggingFace. + """ + # 如果未显式指定则交互式输入下载来源 + if model_source is None: + model_source = click.prompt( + "Please select the model download source: ", + type=click.Choice(REMOTE_MODEL_SOURCES), + default='huggingface' + ) + + effective_model_source = get_effective_download_model_source(model_source) + + # 如果未显式指定则交互式输入模型类型 + if model_type is None: + model_type = click.prompt( + "Please select the model type to download: ", + type=click.Choice(['pipeline', 'vlm', 'all']), + default='all' + ) + + logger.info(f"Downloading {model_type} model from {effective_model_source}...") + + try: + with temporary_model_source(effective_model_source): + if model_type == 'pipeline': + download_pipeline_models() + elif model_type == 'vlm': + download_vlm_models() + elif model_type == 'all': + download_pipeline_models() + download_vlm_models() + else: + click.echo(f"Unsupported model type: {model_type}", err=True) + sys.exit(1) + + except Exception as e: + logger.exception(f"An error occurred while downloading models: {str(e)}") + sys.exit(1) + +if __name__ == '__main__': + download_models() diff --git a/mineru/cli/output_paths.py b/mineru/cli/output_paths.py new file mode 100644 index 000000000..4cb478144 --- /dev/null +++ b/mineru/cli/output_paths.py @@ -0,0 +1,58 @@ +# Copyright (c) Opendatalab. All rights reserved. +from pathlib import Path + + +OFFICE_PARSE_DIR_NAME = "office" +VLM_PARSE_DIR_NAME = "vlm" + + +def build_parse_dir( + output_dir: str | Path, + pdf_name: str, + backend: str, + parse_method: str, + *, + is_office: bool = False, +) -> Path: + output_root = Path(output_dir) + if is_office: + return output_root / pdf_name / OFFICE_PARSE_DIR_NAME + if backend.startswith("pipeline"): + return output_root / pdf_name / parse_method + if backend.startswith("vlm"): + return output_root / pdf_name / VLM_PARSE_DIR_NAME + if backend.startswith("hybrid"): + return output_root / pdf_name / f"hybrid_{parse_method}" + raise ValueError(f"Unknown backend type: {backend}") + + +def resolve_parse_dir( + output_dir: str | Path, + pdf_name: str, + backend: str, + parse_method: str, + *, + is_office: bool = False, + allow_office_fallback: bool = False, +) -> Path: + parse_dir = build_parse_dir( + output_dir, + pdf_name, + backend, + parse_method, + is_office=is_office, + ) + if is_office: + return parse_dir + + if allow_office_fallback and not parse_dir.exists(): + office_dir = build_parse_dir( + output_dir, + pdf_name, + backend, + parse_method, + is_office=True, + ) + if office_dir.exists(): + return office_dir + return parse_dir diff --git a/mineru/cli/public_http_client_policy.py b/mineru/cli/public_http_client_policy.py new file mode 100644 index 000000000..e14420303 --- /dev/null +++ b/mineru/cli/public_http_client_policy.py @@ -0,0 +1,65 @@ +# Copyright (c) Opendatalab. All rights reserved. +from fastapi import FastAPI, HTTPException +from loguru import logger + + +PUBLIC_HTTP_CLIENT_DISABLED_DETAIL = ( + "Publicly exposed API disables *-http-client backends and server_url by " + "default. Rebind to 127.0.0.1 or start with " + "--allow-public-http-client if you understand the SSRF risk." +) + + +def is_public_bind_host(host: str) -> bool: + return host in {"0.0.0.0", "::"} + + +def configure_public_http_client_policy( + app: FastAPI, + *, + public_bind_exposed: bool, + allow_public_http_client: bool, +) -> None: + app.state.public_bind_exposed = public_bind_exposed + app.state.allow_public_http_client = allow_public_http_client + + +def validate_public_http_client_request( + *, + public_bind_exposed: bool, + allow_public_http_client: bool, + backend: str, + server_url: str | None, +) -> None: + if not public_bind_exposed or allow_public_http_client: + return + if backend.endswith("-http-client") or bool(server_url and server_url.strip()): + raise HTTPException(status_code=400, detail=PUBLIC_HTTP_CLIENT_DISABLED_DETAIL) + + +def warn_if_public_http_client_policy( + *, + service_name: str, + host: str, + allow_public_http_client: bool, +) -> None: + if not is_public_bind_host(host): + return + if allow_public_http_client: + logger.warning( + "MinerU {} is listening on {} with --allow-public-http-client enabled. " + "Requests may supply remote HTTP inference endpoints and turn the service " + "into an externally driven outbound request primitive, creating SSRF and " + "internal network probing risk.", + service_name, + host, + ) + return + logger.warning( + "MinerU {} is listening on {}. Disabling *-http-client backends and " + "server_url by default because these inputs let callers choose remote HTTP " + "inference endpoints; when the API is publicly reachable, that creates SSRF " + "and internal network probing risk.", + service_name, + host, + ) diff --git a/mineru/cli/router.py b/mineru/cli/router.py new file mode 100644 index 000000000..5fb6f7d34 --- /dev/null +++ b/mineru/cli/router.py @@ -0,0 +1,1532 @@ +# Copyright (c) Opendatalab. All rights reserved. +import asyncio +import json +import os +import random +import shutil +import subprocess +import sys +import tempfile +import uuid +from contextlib import ExitStack, asynccontextmanager, suppress +from dataclasses import dataclass, field +from datetime import datetime, timezone +from pathlib import Path +from typing import Any, Optional, Sequence + +import click +import httpx +import uvicorn +from fastapi import FastAPI, HTTPException, Request +from fastapi.middleware.gzip import GZipMiddleware +from fastapi.responses import JSONResponse, Response, StreamingResponse +from loguru import logger +from starlette.background import BackgroundTask +from starlette.datastructures import UploadFile as StarletteUploadFile + +from mineru.cli.api_client import ( + LOCAL_API_CLEANUP_RETRIES, + LOCAL_API_CLEANUP_RETRY_INTERVAL_SECONDS, + LOCAL_API_STARTUP_TIMEOUT_SECONDS, + TASK_RESULT_TIMEOUT_SECONDS, + TASK_STATUS_POLL_INTERVAL_SECONDS, + build_managed_process_popen_kwargs, + build_http_timeout, + find_free_port, + normalize_base_url, + stop_managed_process, + strip_local_api_network_args, + response_detail, +) +from mineru.cli.api_protocol import API_PROTOCOL_VERSION +from mineru.cli.common import normalize_upload_filename +from mineru.cli.public_http_client_policy import ( + configure_public_http_client_policy, + is_public_bind_host, + validate_public_http_client_request, + warn_if_public_http_client_policy as _warn_if_public_http_client_policy, +) +from mineru.cli.vlm_preload import build_local_api_cli_args +from mineru.version import __version__ + +TASK_PENDING = "pending" +TASK_PROCESSING = "processing" +TASK_COMPLETED = "completed" +TASK_FAILED = "failed" +TASK_TERMINAL_STATES = {TASK_COMPLETED, TASK_FAILED} +DEFAULT_TASK_RETENTION_SECONDS = 24 * 60 * 60 +DEFAULT_TASK_CLEANUP_INTERVAL_SECONDS = 5 * 60 +FILE_PARSE_TASK_ID_HEADER = "X-MinerU-Task-Id" +FILE_PARSE_TASK_STATUS_HEADER = "X-MinerU-Task-Status" +FILE_PARSE_TASK_STATUS_URL_HEADER = "X-MinerU-Task-Status-Url" +FILE_PARSE_TASK_RESULT_URL_HEADER = "X-MinerU-Task-Result-Url" +HEALTH_ENDPOINT = "/health" +TASKS_ENDPOINT = "/tasks" +SOURCE_LOCAL = "local" +SOURCE_REMOTE = "remote" +LOCAL_GPU_AUTO = "auto" +LOCAL_GPU_NONE = "none" +HTTP_RETRYABLE_STATUS_CODES = {500, 502, 503, 504} +UPSTREAM_FAILURE_THRESHOLD = 3 +WORKER_REFRESH_INTERVAL_SECONDS = 2.0 +MIN_HEALTHY_PROCESSING_WINDOW_SIZE = 1 +MINERU_ROUTER_PUBLIC_BIND_EXPOSED_ENV = "MINERU_ROUTER_PUBLIC_BIND_EXPOSED" +MINERU_ROUTER_ALLOW_PUBLIC_HTTP_CLIENT_ENV = "MINERU_ROUTER_ALLOW_PUBLIC_HTTP_CLIENT" + + +def utc_now_iso() -> str: + return datetime.now(timezone.utc).isoformat() + + +def env_flag_enabled(name: str, default: bool = False) -> bool: + value = os.getenv(name) + if value is None: + return default + return value.lower() in ("1", "true", "yes", "on") + + +def get_int_env(name: str, default: int, minimum: int = 0) -> int: + try: + value = int(os.getenv(name, str(default))) + except ValueError: + return default + if value < minimum: + return default + return value + + +def _parse_json_object_response( + response: httpx.Response, + payload_name: str, +) -> dict[str, Any]: + try: + payload = response.json() + except ValueError as exc: + raise ValueError(f"{payload_name} is not valid JSON") from exc + if not isinstance(payload, dict): + raise ValueError(f"{payload_name} must be a JSON object") + return payload + + +def get_task_retention_seconds() -> int: + return get_int_env( + "MINERU_API_TASK_RETENTION_SECONDS", + DEFAULT_TASK_RETENTION_SECONDS, + minimum=0, + ) + + +def get_task_cleanup_interval_seconds() -> int: + return get_int_env( + "MINERU_API_TASK_CLEANUP_INTERVAL_SECONDS", + DEFAULT_TASK_CLEANUP_INTERVAL_SECONDS, + minimum=1, + ) + + +def is_task_terminal(status: str) -> bool: + return status in TASK_TERMINAL_STATES + + +def warn_if_public_http_client_policy(host: str, allow_public_http_client: bool) -> None: + _warn_if_public_http_client_policy( + service_name="router", + host=host, + allow_public_http_client=allow_public_http_client, + ) + + +def cleanup_path(path: str) -> None: + try: + if os.path.isfile(path): + os.remove(path) + elif os.path.isdir(path): + shutil.rmtree(path) + except FileNotFoundError: + return + except Exception as exc: + logger.warning("Failed to clean up {}: {}", path, exc) + + +def cleanup_temporary_directory(temp_dir: tempfile.TemporaryDirectory[str]) -> None: + last_error: Exception | None = None + for attempt in range(LOCAL_API_CLEANUP_RETRIES): + try: + temp_dir.cleanup() + return + except FileNotFoundError: + return + except Exception as exc: + last_error = exc + if attempt + 1 < LOCAL_API_CLEANUP_RETRIES: + import time + + time.sleep(LOCAL_API_CLEANUP_RETRY_INTERVAL_SECONDS) + + if last_error is not None: + logger.warning("Failed to clean up temporary directory {}: {}", temp_dir.name, last_error) + + +def parse_json_env(name: str, default: Sequence[str] = ()) -> tuple[str, ...]: + raw = os.getenv(name) + if not raw: + return tuple(default) + try: + payload = json.loads(raw) + except json.JSONDecodeError: + logger.warning("Invalid {} value: {}", name, raw) + return tuple(default) + if not isinstance(payload, list) or not all(isinstance(item, str) for item in payload): + logger.warning("Invalid {} value: {}", name, raw) + return tuple(default) + return tuple(payload) + + +def resolve_connect_host(host: str) -> str: + if host in {"0.0.0.0", "::"}: + return "127.0.0.1" + return host + + +def detect_visible_cuda_devices() -> list[str]: + configured_visible_devices = os.getenv("CUDA_VISIBLE_DEVICES") + if configured_visible_devices is not None: + return [ + item.strip() + for item in configured_visible_devices.split(",") + if item.strip() + ] + + try: + import torch # type: ignore + except ImportError: + return [] + if not torch.cuda.is_available(): + return [] + return [str(index) for index in range(torch.cuda.device_count())] + + +def parse_local_gpus(local_gpus: str) -> list[str | None]: + value = local_gpus.strip().lower() + if value == LOCAL_GPU_NONE: + return [] + if value == LOCAL_GPU_AUTO: + detected = detect_visible_cuda_devices() + if detected: + return detected + return [None] + + resolved: list[str | None] = [] + for item in local_gpus.split(","): + normalized = item.strip() + if not normalized: + continue + resolved.append(normalized) + return resolved + + +@dataclass(frozen=True) +class RouterSettings: + upstream_urls: tuple[str, ...] = () + local_gpus: str = LOCAL_GPU_AUTO + worker_host: str = "127.0.0.1" + enable_vlm_preload: bool = False + worker_extra_args: tuple[str, ...] = () + task_retention_seconds: int = DEFAULT_TASK_RETENTION_SECONDS + task_cleanup_interval_seconds: int = DEFAULT_TASK_CLEANUP_INTERVAL_SECONDS + worker_refresh_interval_seconds: float = WORKER_REFRESH_INTERVAL_SECONDS + + @classmethod + def from_env(cls) -> "RouterSettings": + return cls( + upstream_urls=parse_json_env("MINERU_ROUTER_UPSTREAM_URLS_JSON"), + local_gpus=os.getenv("MINERU_ROUTER_LOCAL_GPUS", LOCAL_GPU_AUTO), + worker_host=os.getenv("MINERU_ROUTER_WORKER_HOST", "127.0.0.1"), + enable_vlm_preload=env_flag_enabled( + "MINERU_ROUTER_ENABLE_VLM_PRELOAD", + default=False, + ), + worker_extra_args=parse_json_env("MINERU_ROUTER_WORKER_ARGS_JSON"), + task_retention_seconds=get_task_retention_seconds(), + task_cleanup_interval_seconds=get_task_cleanup_interval_seconds(), + ) + + +@dataclass +class StagedUpload: + field_name: str + upload_name: str + content_type: str + path: str + + +@dataclass +class MultipartPayload: + temp_dir: str + fields: list[tuple[str, str]] + uploads: list[StagedUpload] + + def cleanup(self) -> None: + cleanup_path(self.temp_dir) + + def get_field_value(self, name: str) -> Optional[str]: + for key, value in reversed(self.fields): + if key == name: + return value + return None + + +@dataclass +class RouterTaskRecord: + task_id: str + upstream_server_id: str + upstream_task_id: str + upstream_base_url: str + backend: str + file_names: list[str] + created_at: str + status: str + started_at: Optional[str] = None + completed_at: Optional[str] = None + error: Optional[str] = None + queued_ahead: int | None = None + upstream_error_count: int = 0 + + def to_status_payload(self, request: Request) -> dict[str, Any]: + payload = { + "task_id": self.task_id, + "status": self.status, + "backend": self.backend, + "file_names": self.file_names, + "created_at": self.created_at, + "started_at": self.started_at, + "completed_at": self.completed_at, + "error": self.error, + "status_url": str(request.url_for("get_router_task_status", task_id=self.task_id)), + "result_url": str(request.url_for("get_router_task_result", task_id=self.task_id)), + } + if self.queued_ahead is not None: + payload["queued_ahead"] = self.queued_ahead + return payload + + +@dataclass +class ManagedLocalServer: + server_id: str + worker_host: str + gpu: str | None + enable_vlm_preload: bool + extra_cli_args: tuple[str, ...] + connect_host: str = field(init=False) + base_url: str | None = None + process: subprocess.Popen[bytes] | None = None + temp_dir: tempfile.TemporaryDirectory[str] | None = None + + def __post_init__(self) -> None: + self.connect_host = resolve_connect_host(self.worker_host) + + def is_running(self) -> bool: + return self.process is not None and self.process.poll() is None + + async def start(self, client: httpx.AsyncClient) -> None: + if self.is_running(): + return + + self.temp_dir = tempfile.TemporaryDirectory(prefix=f"{self.server_id}-") + output_root = Path(self.temp_dir.name) / "output" + output_root.mkdir(parents=True, exist_ok=True) + + resolved_port = find_free_port() + remaining_cli_args = strip_local_api_network_args(self.extra_cli_args) + worker_cli_args = build_local_api_cli_args( + remaining_cli_args, + enable_vlm_preload=self.enable_vlm_preload, + ) + self.base_url = f"http://{self.connect_host}:{resolved_port}" + env = os.environ.copy() + env["MINERU_API_OUTPUT_ROOT"] = str(output_root) + env["MINERU_API_DISABLE_ACCESS_LOG"] = "1" + if self.gpu is not None: + env["CUDA_VISIBLE_DEVICES"] = str(self.gpu) + + command = [ + sys.executable, + "-m", + "mineru.cli.fast_api", + "--host", + self.worker_host, + "--port", + str(resolved_port), + *worker_cli_args, + ] + self.process = subprocess.Popen( + command, + cwd=os.getcwd(), + env=env, + **build_managed_process_popen_kwargs(), + ) + + try: + await self.wait_until_ready(client) + except Exception: + self.stop() + raise + + async def wait_until_ready( + self, + client: httpx.AsyncClient, + timeout_seconds: float = LOCAL_API_STARTUP_TIMEOUT_SECONDS, + ) -> None: + assert self.base_url is not None + deadline = asyncio.get_running_loop().time() + timeout_seconds + last_error: str | None = None + while asyncio.get_running_loop().time() < deadline: + if self.process is not None and self.process.poll() is not None: + raise RuntimeError(f"Local worker {self.server_id} exited before becoming healthy") + try: + response = await client.get(f"{self.base_url}{HEALTH_ENDPOINT}") + if response.status_code == 200: + return + last_error = response_detail(response) + except httpx.HTTPError as exc: + last_error = str(exc) + await asyncio.sleep(TASK_STATUS_POLL_INTERVAL_SECONDS) + + message = f"Timed out waiting for local worker {self.server_id} to become healthy" + if last_error: + message = f"{message}: {last_error}" + raise RuntimeError(message) + + async def restart(self, client: httpx.AsyncClient) -> None: + self.stop() + await self.start(client) + + def stop(self) -> None: + process = self.process + self.process = None + try: + if process is not None: + stop_managed_process( + process, + shutdown_timeout_seconds=5, + use_stdin_shutdown_watcher=False, + ) + finally: + temp_dir = self.temp_dir + self.temp_dir = None + self.base_url = None + if temp_dir is not None: + cleanup_temporary_directory(temp_dir) + + +@dataclass +class WorkerState: + server_id: str + source: str + base_url: str + gpu: str | None + local_server: ManagedLocalServer | None = None + healthy: bool = False + queued_tasks: int = 0 + processing_tasks: int = 0 + completed_tasks: int = 0 + failed_tasks: int = 0 + max_concurrent_requests: int = 0 + processing_window_size: int = MIN_HEALTHY_PROCESSING_WINDOW_SIZE + last_error: Optional[str] = None + last_checked_at: Optional[str] = None + pending_assignments: int = 0 + consecutive_health_failures: int = 0 + + def score(self) -> float: + denominator = max(1, self.max_concurrent_requests) + numerator = self.queued_tasks + self.processing_tasks + self.pending_assignments + return numerator / denominator + + def snapshot(self) -> dict[str, Any]: + return { + "server_id": self.server_id, + "base_url": self.base_url, + "source": self.source, + "healthy": self.healthy, + "gpu": self.gpu, + "queued_tasks": self.queued_tasks, + "processing_tasks": self.processing_tasks, + "completed_tasks": self.completed_tasks, + "failed_tasks": self.failed_tasks, + "max_concurrent_requests": self.max_concurrent_requests, + "processing_window_size": self.processing_window_size, + "last_error": self.last_error, + "last_checked_at": self.last_checked_at, + } + + +class WorkerPool: + def __init__( + self, + settings: RouterSettings, + client: httpx.AsyncClient, + *, + randomizer: Optional[random.Random] = None, + ): + self.settings = settings + self.client = client + self.randomizer = randomizer or random.Random() + self._selection_lock = asyncio.Lock() + self._monitor_task: asyncio.Task[Any] | None = None + self._servers: dict[str, WorkerState] = {} + self._build_servers() + + def _build_servers(self) -> None: + for index, url in enumerate(dict.fromkeys(normalize_base_url(item) for item in self.settings.upstream_urls), start=1): + server_id = f"remote-{index}" + self._servers[server_id] = WorkerState( + server_id=server_id, + source=SOURCE_REMOTE, + base_url=url, + gpu=None, + ) + + local_specs = parse_local_gpus(self.settings.local_gpus) + for index, gpu in enumerate(local_specs, start=1): + if gpu is None: + server_id = "local-cpu-1" + else: + server_id = f"local-gpu-{gpu}" + local_server = ManagedLocalServer( + server_id=server_id, + worker_host=self.settings.worker_host, + gpu=gpu, + enable_vlm_preload=self.settings.enable_vlm_preload, + extra_cli_args=self.settings.worker_extra_args, + ) + self._servers[server_id] = WorkerState( + server_id=server_id, + source=SOURCE_LOCAL, + base_url="", + gpu=gpu, + local_server=local_server, + ) + + @property + def servers(self) -> list[WorkerState]: + return list(self._servers.values()) + + async def start(self) -> None: + for server in self.servers: + if server.local_server is None: + continue + try: + await server.local_server.start(self.client) + server.base_url = normalize_base_url(server.local_server.base_url or "") + except Exception as exc: + server.healthy = False + server.last_error = str(exc) + server.last_checked_at = utc_now_iso() + + await self.refresh_all() + if self._monitor_task is None or self._monitor_task.done(): + self._monitor_task = asyncio.create_task(self._monitor_loop(), name="mineru-router-worker-monitor") + + async def shutdown(self) -> None: + if self._monitor_task is not None: + self._monitor_task.cancel() + with suppress(asyncio.CancelledError): + await self._monitor_task + self._monitor_task = None + for server in self.servers: + if server.local_server is not None: + server.local_server.stop() + + async def _monitor_loop(self) -> None: + while True: + await asyncio.sleep(self.settings.worker_refresh_interval_seconds) + await self.refresh_all() + + async def refresh_all(self) -> None: + for server in self.servers: + await self._refresh_server(server) + + def _update_server_from_health_payload( + self, + server: WorkerState, + payload: dict[str, Any], + ) -> None: + protocol_version = payload.get("protocol_version") + if protocol_version != API_PROTOCOL_VERSION: + raise ValueError( + f"Unsupported protocol_version={protocol_version}, expected {API_PROTOCOL_VERSION}" + ) + + server.queued_tasks = int(payload.get("queued_tasks", 0)) + server.processing_tasks = int(payload.get("processing_tasks", 0)) + server.completed_tasks = int(payload.get("completed_tasks", 0)) + server.failed_tasks = int(payload.get("failed_tasks", 0)) + server.max_concurrent_requests = int(payload.get("max_concurrent_requests", 0)) + if server.max_concurrent_requests <= 0: + raise ValueError("max_concurrent_requests must be a positive integer") + server.processing_window_size = max( + MIN_HEALTHY_PROCESSING_WINDOW_SIZE, + int( + payload.get( + "processing_window_size", + MIN_HEALTHY_PROCESSING_WINDOW_SIZE, + ) + ), + ) + server.healthy = payload.get("status") == "healthy" + server.last_error = ( + None if server.healthy else json.dumps(payload, ensure_ascii=False) + ) + server.consecutive_health_failures = ( + 0 if server.healthy else server.consecutive_health_failures + 1 + ) + + async def _refresh_server(self, server: WorkerState) -> None: + if server.local_server is not None: + if not server.local_server.is_running(): + try: + await server.local_server.restart(self.client) + server.base_url = normalize_base_url(server.local_server.base_url or "") + except Exception as exc: + server.healthy = False + server.last_error = str(exc) + server.last_checked_at = utc_now_iso() + server.consecutive_health_failures += 1 + return + elif server.local_server.base_url is not None: + server.base_url = normalize_base_url(server.local_server.base_url) + + if not server.base_url: + server.healthy = False + server.last_error = "Upstream base_url is not configured" + server.last_checked_at = utc_now_iso() + server.consecutive_health_failures += 1 + return + + try: + response = await self.client.get(f"{server.base_url}{HEALTH_ENDPOINT}") + except httpx.HTTPError as exc: + server.healthy = False + server.last_error = str(exc) + server.last_checked_at = utc_now_iso() + server.consecutive_health_failures += 1 + if server.local_server is not None and server.consecutive_health_failures >= 2: + await self._restart_local_server(server) + return + + server.last_checked_at = utc_now_iso() + if response.status_code != 200: + server.healthy = False + server.last_error = response_detail(response) + server.consecutive_health_failures += 1 + if server.local_server is not None and server.consecutive_health_failures >= 2: + await self._restart_local_server(server) + return + + try: + payload = _parse_json_object_response(response, "health payload") + self._update_server_from_health_payload(server, payload) + except (TypeError, ValueError) as exc: + server.healthy = False + server.last_error = f"Invalid health payload: {exc}" + server.consecutive_health_failures += 1 + if server.local_server is not None and server.consecutive_health_failures >= 2: + await self._restart_local_server(server) + return + + async def _restart_local_server(self, server: WorkerState) -> None: + local_server = server.local_server + if local_server is None: + return + try: + await local_server.restart(self.client) + server.base_url = normalize_base_url(local_server.base_url or "") + response = await self.client.get(f"{server.base_url}{HEALTH_ENDPOINT}") + if response.status_code == 200: + server.last_checked_at = utc_now_iso() + payload = _parse_json_object_response(response, "health payload") + self._update_server_from_health_payload(server, payload) + except (TypeError, ValueError) as exc: + server.healthy = False + server.last_error = f"Invalid health payload: {exc}" + server.last_checked_at = utc_now_iso() + except Exception as exc: + server.healthy = False + server.last_error = str(exc) + server.last_checked_at = utc_now_iso() + + async def acquire_submission_server(self, excluded_server_ids: Optional[set[str]] = None) -> WorkerState | None: + excluded = excluded_server_ids or set() + async with self._selection_lock: + candidates = [ + server + for server in self.servers + if server.healthy and server.server_id not in excluded + ] + if not candidates: + return None + + randomized = list(candidates) + self.randomizer.shuffle(randomized) + randomized.sort( + key=lambda item: ( + item.score(), + item.pending_assignments, + 0 if item.source == SOURCE_LOCAL else 1, + ) + ) + selected = randomized[0] + selected.pending_assignments += 1 + return selected + + async def release_submission_server(self, server_id: str) -> None: + async with self._selection_lock: + server = self._servers.get(server_id) + if server is None: + return + if server.pending_assignments > 0: + server.pending_assignments -= 1 + + async def mark_submission_failure(self, server_id: str, error: str) -> None: + async with self._selection_lock: + server = self._servers.get(server_id) + if server is None: + return + server.healthy = False + server.last_error = error + server.last_checked_at = utc_now_iso() + + def get_server(self, server_id: str) -> WorkerState | None: + return self._servers.get(server_id) + + def health_payload(self) -> tuple[bool, dict[str, Any]]: + servers = [server.snapshot() for server in self.servers] + healthy_servers = [server for server in self.servers if server.healthy] + payload = { + "status": "healthy" if healthy_servers else "unhealthy", + "version": __version__, + "protocol_version": API_PROTOCOL_VERSION, + "queued_tasks": sum(server.queued_tasks for server in self.servers), + "processing_tasks": sum(server.processing_tasks for server in self.servers), + "completed_tasks": sum(server.completed_tasks for server in self.servers), + "failed_tasks": sum(server.failed_tasks for server in self.servers), + "max_concurrent_requests": sum( + server.max_concurrent_requests for server in healthy_servers + ), + "processing_window_size": min( + (server.processing_window_size for server in healthy_servers), + default=MIN_HEALTHY_PROCESSING_WINDOW_SIZE, + ), + "servers": servers, + } + if not healthy_servers: + payload["error"] = "No healthy upstream MinerU API servers are available" + return bool(healthy_servers), payload + + +class RouterTaskRegistry: + def __init__( + self, + *, + task_retention_seconds: int, + cleanup_interval_seconds: int, + ): + self.task_retention_seconds = task_retention_seconds + self.cleanup_interval_seconds = cleanup_interval_seconds + self._tasks: dict[str, RouterTaskRecord] = {} + self._lock = asyncio.Lock() + self._cleanup_task: asyncio.Task[Any] | None = None + + async def start(self) -> None: + if self.task_retention_seconds <= 0: + return + if self._cleanup_task is None or self._cleanup_task.done(): + self._cleanup_task = asyncio.create_task(self._cleanup_loop(), name="mineru-router-task-cleanup") + + async def shutdown(self) -> None: + if self._cleanup_task is not None: + self._cleanup_task.cancel() + with suppress(asyncio.CancelledError): + await self._cleanup_task + self._cleanup_task = None + + async def _cleanup_loop(self) -> None: + while True: + await asyncio.sleep(self.cleanup_interval_seconds) + await self.cleanup_expired_tasks() + + async def register( + self, + *, + upstream_server_id: str, + upstream_base_url: str, + upstream_task_id: str, + backend: str, + file_names: list[str], + created_at: str, + status: str, + started_at: Optional[str], + completed_at: Optional[str], + error: Optional[str], + queued_ahead: int | None, + ) -> RouterTaskRecord: + task = RouterTaskRecord( + task_id=str(uuid.uuid4()), + upstream_server_id=upstream_server_id, + upstream_task_id=upstream_task_id, + upstream_base_url=upstream_base_url, + backend=backend, + file_names=file_names, + created_at=created_at, + status=status, + started_at=started_at, + completed_at=completed_at, + error=error, + queued_ahead=queued_ahead, + ) + async with self._lock: + self._tasks[task.task_id] = task + return task + + async def get(self, task_id: str) -> RouterTaskRecord | None: + async with self._lock: + return self._tasks.get(task_id) + + async def update_from_upstream_payload( + self, + task_id: str, + payload: dict[str, Any], + ) -> RouterTaskRecord | None: + async with self._lock: + task = self._tasks.get(task_id) + if task is None: + return None + task.status = str(payload.get("status", task.status)) + task.backend = str(payload.get("backend", task.backend)) + file_names = payload.get("file_names") + if isinstance(file_names, list) and all(isinstance(item, str) for item in file_names): + task.file_names = list(file_names) + task.created_at = str(payload.get("created_at", task.created_at)) + task.started_at = payload.get("started_at") if payload.get("started_at") is None else str(payload.get("started_at")) + task.completed_at = payload.get("completed_at") if payload.get("completed_at") is None else str(payload.get("completed_at")) + task.error = payload.get("error") if payload.get("error") is None else str(payload.get("error")) + queued_ahead = payload.get("queued_ahead") + task.queued_ahead = queued_ahead if isinstance(queued_ahead, int) else None + task.upstream_error_count = 0 + return task + + async def increment_upstream_error( + self, + task_id: str, + error: str, + ) -> RouterTaskRecord | None: + async with self._lock: + task = self._tasks.get(task_id) + if task is None: + return None + task.upstream_error_count += 1 + if task.upstream_error_count >= UPSTREAM_FAILURE_THRESHOLD: + task.status = TASK_FAILED + task.error = error + task.completed_at = utc_now_iso() + return task + + async def mark_failed(self, task_id: str, error: str) -> RouterTaskRecord | None: + async with self._lock: + task = self._tasks.get(task_id) + if task is None: + return None + task.status = TASK_FAILED + task.error = error + task.completed_at = utc_now_iso() + return task + + async def cleanup_expired_tasks(self) -> int: + if self.task_retention_seconds <= 0: + return 0 + + now = datetime.now(timezone.utc) + async with self._lock: + expired_ids = [ + task_id + for task_id, task in self._tasks.items() + if self._is_task_expired(task, now) + ] + for task_id in expired_ids: + self._tasks.pop(task_id, None) + return len(expired_ids) + + def _is_task_expired(self, task: RouterTaskRecord, now: datetime) -> bool: + if task.status not in TASK_TERMINAL_STATES or not task.completed_at: + return False + try: + completed_at = datetime.fromisoformat(task.completed_at) + except ValueError: + return False + if completed_at.tzinfo is None: + completed_at = completed_at.replace(tzinfo=timezone.utc) + return (now - completed_at).total_seconds() >= self.task_retention_seconds + + +def warn_if_router_preload_ignored(settings: RouterSettings) -> None: + if settings.enable_vlm_preload and not parse_local_gpus(settings.local_gpus): + logger.warning( + "Ignoring --enable-vlm-preload because mineru-router is not launching any local mineru-api workers." + ) + + +async def startup_router_state(app: FastAPI, settings: RouterSettings) -> None: + http_client = httpx.AsyncClient( + timeout=build_http_timeout(), + follow_redirects=True, + ) + worker_pool = WorkerPool(settings, http_client) + registry = RouterTaskRegistry( + task_retention_seconds=settings.task_retention_seconds, + cleanup_interval_seconds=settings.task_cleanup_interval_seconds, + ) + + try: + await registry.start() + await worker_pool.start() + healthy, payload = worker_pool.health_payload() + if not healthy: + raise RuntimeError( + payload.get( + "error", + "No healthy upstream MinerU API servers are available", + ) + ) + except Exception: + await registry.shutdown() + await worker_pool.shutdown() + await http_client.aclose() + raise + + app.state.http_client = http_client + app.state.worker_pool = worker_pool + app.state.router_task_registry = registry + + +async def shutdown_router_state(app: FastAPI) -> None: + registry = getattr(app.state, "router_task_registry", None) + worker_pool = getattr(app.state, "worker_pool", None) + http_client = getattr(app.state, "http_client", None) + + if registry is not None: + await registry.shutdown() + if worker_pool is not None: + await worker_pool.shutdown() + if http_client is not None: + await http_client.aclose() + + app.state.router_task_registry = None + app.state.worker_pool = None + app.state.http_client = None + + +class UpstreamSubmissionUnavailable(RuntimeError): + pass + + +class UpstreamSubmissionRejected(RuntimeError): + def __init__(self, status_code: int, detail: str): + self.status_code = status_code + self.detail = detail + super().__init__(detail) + + +def build_upload_destination(upload_dir: str, filename: str) -> Path: + destination = Path(upload_dir) / filename + if not destination.exists(): + return destination + + base_name = Path(filename).stem + suffix = Path(filename).suffix + index = 2 + while True: + candidate = Path(upload_dir) / f"{base_name}__upload_{index}{suffix}" + if not candidate.exists(): + return candidate + index += 1 + + +async def stage_multipart_request(request: Request) -> MultipartPayload: + temp_dir = tempfile.mkdtemp(prefix="mineru-router-request-") + uploads: list[StagedUpload] = [] + fields: list[tuple[str, str]] = [] + + try: + form = await request.form() + for key, value in form.multi_items(): + if isinstance(value, StarletteUploadFile): + original_name = value.filename or f"upload-{uuid.uuid4()}" + filename = normalize_upload_filename(original_name) + destination = build_upload_destination(temp_dir, filename) + with open(destination, "wb") as handle: + while True: + chunk = await value.read(1 << 20) + if not chunk: + break + handle.write(chunk) + uploads.append( + StagedUpload( + field_name=key, + upload_name=original_name, + content_type=value.content_type or "application/octet-stream", + path=str(destination), + ) + ) + await value.close() + else: + fields.append((key, str(value))) + except Exception: + cleanup_path(temp_dir) + raise + + return MultipartPayload(temp_dir=temp_dir, fields=fields, uploads=uploads) + + +def parse_submit_response(payload: Any) -> dict[str, Any]: + if not isinstance(payload, dict): + raise ValueError("MinerU upstream returned an invalid submit payload") + task_id = payload.get("task_id") + status = payload.get("status") + backend = payload.get("backend") + created_at = payload.get("created_at") + if not isinstance(task_id, str) or not isinstance(status, str) or not isinstance(backend, str): + raise ValueError("MinerU upstream returned an invalid submit payload") + if created_at is not None and not isinstance(created_at, str): + raise ValueError("MinerU upstream returned an invalid submit payload") + return { + "task_id": task_id, + "status": status, + "backend": backend, + "file_names": payload.get("file_names", []), + "created_at": created_at or utc_now_iso(), + "started_at": payload.get("started_at"), + "completed_at": payload.get("completed_at"), + "error": payload.get("error"), + "queued_ahead": payload.get("queued_ahead") if isinstance(payload.get("queued_ahead"), int) else None, + } + + +def submit_payload_to_upstream_sync( + base_url: str, + payload: MultipartPayload, +) -> dict[str, Any]: + with ExitStack() as stack, httpx.Client( + timeout=build_http_timeout(), + follow_redirects=True, + ) as client: + multipart = [ + ( + field_name, + (None, field_value), + ) + for field_name, field_value in payload.fields + ] + multipart.extend( + [ + ( + upload.field_name, + ( + upload.upload_name, + stack.enter_context(open(upload.path, "rb")), + upload.content_type, + ), + ) + for upload in payload.uploads + ] + ) + try: + response = client.post( + f"{base_url}{TASKS_ENDPOINT}", + files=multipart, + ) + except httpx.HTTPError as exc: + raise UpstreamSubmissionUnavailable(str(exc)) from exc + + if response.status_code == 202: + try: + submit_response = _parse_json_object_response(response, "submit payload") + return parse_submit_response(submit_response) + except ValueError as exc: + raise UpstreamSubmissionUnavailable(f"Invalid submit payload: {exc}") from exc + if response.status_code in HTTP_RETRYABLE_STATUS_CODES: + raise UpstreamSubmissionUnavailable( + f"{response.status_code} {response_detail(response)}" + ) + raise UpstreamSubmissionRejected(response.status_code, response_detail(response)) + + +async def submit_payload_to_upstream( + base_url: str, + payload: MultipartPayload, +) -> dict[str, Any]: + return await asyncio.to_thread(submit_payload_to_upstream_sync, base_url, payload) + + +async def submit_router_task( + request: Request, + payload: MultipartPayload, +) -> RouterTaskRecord: + validate_public_http_client_request( + public_bind_exposed=bool( + getattr(request.app.state, "public_bind_exposed", False) + ), + allow_public_http_client=bool( + getattr(request.app.state, "allow_public_http_client", False) + ), + backend=payload.get_field_value("backend") or "", + server_url=payload.get_field_value("server_url"), + ) + worker_pool: WorkerPool = request.app.state.worker_pool + registry: RouterTaskRegistry = request.app.state.router_task_registry + attempted_servers: set[str] = set() + last_error: str | None = None + + while True: + server = await worker_pool.acquire_submission_server(excluded_server_ids=attempted_servers) + if server is None: + if last_error is None: + raise HTTPException(status_code=503, detail="No healthy upstream MinerU API servers are available") + raise HTTPException(status_code=503, detail=last_error) + + try: + upstream_payload = await submit_payload_to_upstream(server.base_url, payload) + file_names = upstream_payload["file_names"] + normalized_file_names = ( + list(file_names) + if isinstance(file_names, list) and all(isinstance(item, str) for item in file_names) + else [] + ) + return await registry.register( + upstream_server_id=server.server_id, + upstream_base_url=server.base_url, + upstream_task_id=upstream_payload["task_id"], + backend=upstream_payload["backend"], + file_names=normalized_file_names, + created_at=upstream_payload["created_at"], + status=upstream_payload["status"], + started_at=upstream_payload["started_at"] if isinstance(upstream_payload["started_at"], str) else None, + completed_at=upstream_payload["completed_at"] if isinstance(upstream_payload["completed_at"], str) else None, + error=upstream_payload["error"] if isinstance(upstream_payload["error"], str) else None, + queued_ahead=upstream_payload["queued_ahead"], + ) + except UpstreamSubmissionRejected as exc: + raise HTTPException(status_code=exc.status_code, detail=exc.detail) from exc + except UpstreamSubmissionUnavailable as exc: + attempted_servers.add(server.server_id) + last_error = f"Failed to submit task via {server.server_id}: {exc}" + await worker_pool.mark_submission_failure(server.server_id, str(exc)) + finally: + await worker_pool.release_submission_server(server.server_id) + + +async def fetch_router_task_status( + request: Request, + task: RouterTaskRecord, +) -> RouterTaskRecord: + if is_task_terminal(task.status): + return task + + registry: RouterTaskRegistry = request.app.state.router_task_registry + client: httpx.AsyncClient = request.app.state.http_client + url = f"{task.upstream_base_url}{TASKS_ENDPOINT}/{task.upstream_task_id}" + try: + response = await client.get(url) + except httpx.HTTPError as exc: + updated = await registry.increment_upstream_error(task.task_id, str(exc)) + if updated is None: + raise HTTPException(status_code=404, detail="Task not found") from exc + return updated + + if response.status_code != 200: + error = f"{response.status_code} {response_detail(response)}" + updated = await registry.increment_upstream_error(task.task_id, error) + if updated is None: + raise HTTPException(status_code=404, detail="Task not found") + return updated + + try: + status_payload = _parse_json_object_response(response, "task status payload") + except ValueError as exc: + updated = await registry.increment_upstream_error( + task.task_id, + f"Invalid task status payload: {exc}", + ) + if updated is None: + raise HTTPException(status_code=404, detail="Task not found") + return updated + + updated = await registry.update_from_upstream_payload(task.task_id, status_payload) + if updated is None: + raise HTTPException(status_code=404, detail="Task not found") + return updated + + +async def wait_for_router_task_terminal_state( + request: Request, + task: RouterTaskRecord, + timeout_seconds: float = TASK_RESULT_TIMEOUT_SECONDS, +) -> RouterTaskRecord: + deadline = asyncio.get_running_loop().time() + timeout_seconds + current_task = task + while asyncio.get_running_loop().time() < deadline: + current_task = await fetch_router_task_status(request, current_task) + if is_task_terminal(current_task.status): + return current_task + await asyncio.sleep(TASK_STATUS_POLL_INTERVAL_SECONDS) + + raise HTTPException( + status_code=504, + detail=f"Timed out waiting for result of task {task.task_id}", + ) + + +async def proxy_router_task_result( + request: Request, + task: RouterTaskRecord, +) -> Response: + client: httpx.AsyncClient = request.app.state.http_client + result_url = f"{task.upstream_base_url}{TASKS_ENDPOINT}/{task.upstream_task_id}/result" + try: + upstream_response = await client.send( + client.build_request("GET", result_url), + stream=True, + ) + except httpx.HTTPError as exc: + await request.app.state.router_task_registry.increment_upstream_error(task.task_id, str(exc)) + raise HTTPException(status_code=502, detail=str(exc)) from exc + + if upstream_response.status_code != 200: + body = await upstream_response.aread() + await upstream_response.aclose() + detail = body.decode("utf-8", errors="replace").strip() or upstream_response.reason_phrase + await request.app.state.router_task_registry.increment_upstream_error( + task.task_id, + f"{upstream_response.status_code} {detail}", + ) + raise HTTPException( + status_code=upstream_response.status_code, + detail=detail, + ) + + content_type = upstream_response.headers.get("content-type", "") + if "application/json" in content_type: + body = await upstream_response.aread() + await upstream_response.aclose() + return Response( + content=body, + status_code=200, + media_type="application/json", + ) + + headers: dict[str, str] = {} + content_disposition = upstream_response.headers.get("content-disposition") + if content_disposition: + headers["content-disposition"] = content_disposition + return StreamingResponse( + upstream_response.aiter_bytes(), + status_code=200, + media_type=content_type or "application/octet-stream", + headers=headers, + background=BackgroundTask(upstream_response.aclose), + ) + + +async def build_sync_router_task_result_response( + request: Request, + task: RouterTaskRecord, +) -> Response: + client: httpx.AsyncClient = request.app.state.http_client + result_url = f"{task.upstream_base_url}{TASKS_ENDPOINT}/{task.upstream_task_id}/result" + try: + upstream_response = await client.send( + client.build_request("GET", result_url), + stream=True, + ) + except httpx.HTTPError as exc: + await request.app.state.router_task_registry.increment_upstream_error(task.task_id, str(exc)) + raise HTTPException(status_code=502, detail=str(exc)) from exc + + if upstream_response.status_code != 200: + body = await upstream_response.aread() + await upstream_response.aclose() + detail = body.decode("utf-8", errors="replace").strip() or upstream_response.reason_phrase + await request.app.state.router_task_registry.increment_upstream_error( + task.task_id, + f"{upstream_response.status_code} {detail}", + ) + raise HTTPException(status_code=upstream_response.status_code, detail=detail) + + sync_headers = build_sync_task_headers(task, request) + content_type = upstream_response.headers.get("content-type", "") + if "application/json" in content_type: + try: + await upstream_response.aread() + payload_data = _parse_json_object_response( + upstream_response, + "task result payload", + ) + except ValueError as exc: + detail = f"Invalid task result payload: {exc}" + await request.app.state.router_task_registry.increment_upstream_error( + task.task_id, + detail, + ) + raise HTTPException(status_code=502, detail=detail) from exc + finally: + await upstream_response.aclose() + + merged_payload = { + **task.to_status_payload(request), + "backend": payload_data.get("backend", task.backend), + "version": payload_data.get("version", __version__), + "results": payload_data.get("results", {}), + } + return JSONResponse(status_code=200, content=merged_payload, headers=sync_headers) + + headers: dict[str, str] = {} + content_disposition = upstream_response.headers.get("content-disposition") + if content_disposition: + headers["content-disposition"] = content_disposition + return StreamingResponse( + upstream_response.aiter_bytes(), + status_code=200, + media_type=content_type or "application/octet-stream", + headers={**headers, **sync_headers}, + background=BackgroundTask(upstream_response.aclose), + ) + + +def build_sync_task_headers(task: RouterTaskRecord, request: Request) -> dict[str, str]: + payload = task.to_status_payload(request) + return { + FILE_PARSE_TASK_ID_HEADER: task.task_id, + FILE_PARSE_TASK_STATUS_HEADER: task.status, + FILE_PARSE_TASK_STATUS_URL_HEADER: payload["status_url"], + FILE_PARSE_TASK_RESULT_URL_HEADER: payload["result_url"], + } + + +def create_app(settings: RouterSettings | None = None) -> FastAPI: + resolved_settings = settings or RouterSettings.from_env() + enable_docs = env_flag_enabled("MINERU_API_ENABLE_FASTAPI_DOCS", default=True) + + @asynccontextmanager + async def lifespan(app: FastAPI): + await startup_router_state(app, resolved_settings) + try: + yield + finally: + await shutdown_router_state(app) + + app = FastAPI( + openapi_url="/openapi.json" if enable_docs else None, + docs_url="/docs" if enable_docs else None, + redoc_url="/redoc" if enable_docs else None, + lifespan=lifespan, + ) + app.state.router_settings = resolved_settings + configure_public_http_client_policy( + app, + public_bind_exposed=env_flag_enabled( + MINERU_ROUTER_PUBLIC_BIND_EXPOSED_ENV, + default=False, + ), + allow_public_http_client=env_flag_enabled( + MINERU_ROUTER_ALLOW_PUBLIC_HTTP_CLIENT_ENV, + default=False, + ), + ) + app.add_middleware(GZipMiddleware, minimum_size=1000) + + @app.post(path="/tasks", status_code=202) + async def submit_parse_task(http_request: Request): + payload = await stage_multipart_request(http_request) + try: + router_task = await submit_router_task(http_request, payload) + finally: + payload.cleanup() + response_payload = router_task.to_status_payload(http_request) + response_payload["message"] = "Task submitted successfully" + return JSONResponse(status_code=202, content=response_payload) + + @app.get(path="/tasks/{task_id}", name="get_router_task_status") + async def get_router_task_status(task_id: str, request: Request): + registry: RouterTaskRegistry = request.app.state.router_task_registry + task = await registry.get(task_id) + if task is None: + raise HTTPException(status_code=404, detail="Task not found") + task = await fetch_router_task_status(request, task) + return task.to_status_payload(request) + + @app.get(path="/tasks/{task_id}/result", name="get_router_task_result") + async def get_router_task_result(task_id: str, request: Request): + registry: RouterTaskRegistry = request.app.state.router_task_registry + task = await registry.get(task_id) + if task is None: + raise HTTPException(status_code=404, detail="Task not found") + + task = await fetch_router_task_status(request, task) + if task.status in {TASK_PENDING, TASK_PROCESSING}: + return JSONResponse( + status_code=202, + content={ + **task.to_status_payload(request), + "message": "Task result is not ready yet", + }, + ) + if task.status == TASK_FAILED: + return JSONResponse( + status_code=409, + content={ + **task.to_status_payload(request), + "message": "Task execution failed", + }, + ) + return await proxy_router_task_result(request, task) + + @app.post(path="/file_parse", status_code=200) + async def file_parse(request: Request): + payload = await stage_multipart_request(request) + try: + router_task = await submit_router_task(request, payload) + finally: + payload.cleanup() + + router_task = await wait_for_router_task_terminal_state(request, router_task) + if router_task.status == TASK_FAILED: + return JSONResponse( + status_code=409, + content={ + **router_task.to_status_payload(request), + "message": "Task execution failed", + }, + ) + + return await build_sync_router_task_result_response(request, router_task) + + @app.get(path="/health") + async def health_check(request: Request): + worker_pool: WorkerPool = request.app.state.worker_pool + healthy, payload = worker_pool.health_payload() + if healthy: + return payload + return JSONResponse(status_code=503, content=payload) + + return app + + +app = create_app() + + +@click.command( + context_settings=dict(ignore_unknown_options=True, allow_extra_args=True) +) +@click.pass_context +@click.option("--host", default="127.0.0.1", help="Server host (default: 127.0.0.1)") +@click.option("--port", default=8002, type=int, help="Server port (default: 8002)") +@click.option("--reload", is_flag=True, help="Enable auto-reload (development mode)") +@click.option( + "--allow-public-http-client", + is_flag=True, + help=( + "Allow *-http-client backends and server_url even when binding the router " + "to 0.0.0.0 or ::." + ), +) +@click.option( + "--upstream-url", + "upstream_urls", + multiple=True, + help="Existing MinerU FastAPI base URL. Repeat to add multiple upstream servers.", +) +@click.option( + "--local-gpus", + default=LOCAL_GPU_AUTO, + help="Local GPU workers to launch: auto, none, or CSV such as 0,1,2.", +) +@click.option( + "--worker-host", + default="127.0.0.1", + help="Host for router-managed mineru-api workers (default: 127.0.0.1).", +) +@click.option( + "--enable-vlm-preload", + "enable_vlm_preload", + type=bool, + default=False, + help="Preload the local VLM model in router-managed mineru-api workers.", +) +def main( + ctx: click.Context, + host: str, + port: int, + reload: bool, + allow_public_http_client: bool, + upstream_urls: tuple[str, ...], + local_gpus: str, + worker_host: str, + enable_vlm_preload: bool, +): + settings = RouterSettings( + upstream_urls=tuple(upstream_urls), + local_gpus=local_gpus, + worker_host=worker_host, + enable_vlm_preload=enable_vlm_preload, + worker_extra_args=tuple(ctx.args), + task_retention_seconds=get_task_retention_seconds(), + task_cleanup_interval_seconds=get_task_cleanup_interval_seconds(), + ) + public_bind_exposed = is_public_bind_host(host) + warn_if_router_preload_ignored(settings) + configure_public_http_client_policy( + app, + public_bind_exposed=public_bind_exposed, + allow_public_http_client=allow_public_http_client, + ) + os.environ["MINERU_ROUTER_UPSTREAM_URLS_JSON"] = json.dumps(list(settings.upstream_urls)) + os.environ["MINERU_ROUTER_LOCAL_GPUS"] = settings.local_gpus + os.environ["MINERU_ROUTER_WORKER_HOST"] = settings.worker_host + os.environ["MINERU_ROUTER_ENABLE_VLM_PRELOAD"] = ( + "1" if settings.enable_vlm_preload else "0" + ) + os.environ["MINERU_ROUTER_WORKER_ARGS_JSON"] = json.dumps(list(settings.worker_extra_args)) + os.environ[MINERU_ROUTER_PUBLIC_BIND_EXPOSED_ENV] = ( + "1" if public_bind_exposed else "0" + ) + os.environ[MINERU_ROUTER_ALLOW_PUBLIC_HTTP_CLIENT_ENV] = ( + "1" if allow_public_http_client else "0" + ) + warn_if_public_http_client_policy(host, allow_public_http_client) + + access_log = not env_flag_enabled("MINERU_API_DISABLE_ACCESS_LOG") + print(f"Start MinerU Router Service: http://{host}:{port}") + print(f"API documentation: http://{host}:{port}/docs") + + if reload: + uvicorn.run( + "mineru.cli.router:app", + host=host, + port=port, + reload=True, + access_log=access_log, + ) + return + + configured_app = create_app(settings) + uvicorn.run( + configured_app, + host=host, + port=port, + reload=False, + access_log=access_log, + ) + + +if __name__ == "__main__": + main() diff --git a/mineru/cli/visualization.py b/mineru/cli/visualization.py new file mode 100644 index 000000000..cbb3ac8f8 --- /dev/null +++ b/mineru/cli/visualization.py @@ -0,0 +1,90 @@ +# Copyright (c) Opendatalab. All rights reserved. +import json +from dataclasses import dataclass +from pathlib import Path + +from mineru.utils.draw_bbox import draw_layout_bbox, draw_span_bbox + + +VISUALIZATION_FINISHED = "finished" +VISUALIZATION_SKIPPED = "skipped" + + +@dataclass(frozen=True) +class VisualizationJob: + document_stem: str + backend: str + parse_method: str + parse_dir: Path + draw_span: bool + + +@dataclass(frozen=True) +class VisualizationResult: + document_stem: str + parse_dir: Path + status: str + message: str + generated_files: tuple[str, ...] = () + + +def run_visualization_job(job: VisualizationJob) -> VisualizationResult: + middle_json_path = job.parse_dir / f"{job.document_stem}_middle.json" + origin_pdf_path = job.parse_dir / f"{job.document_stem}_origin.pdf" + + if not middle_json_path.exists(): + return VisualizationResult( + document_stem=job.document_stem, + parse_dir=job.parse_dir, + status=VISUALIZATION_SKIPPED, + message=f"missing middle.json: {middle_json_path.name}", + ) + if not origin_pdf_path.exists(): + return VisualizationResult( + document_stem=job.document_stem, + parse_dir=job.parse_dir, + status=VISUALIZATION_SKIPPED, + message=f"missing origin.pdf: {origin_pdf_path.name}", + ) + + try: + payload = json.loads(middle_json_path.read_text(encoding="utf-8")) + except Exception as exc: + return VisualizationResult( + document_stem=job.document_stem, + parse_dir=job.parse_dir, + status=VISUALIZATION_SKIPPED, + message=f"failed to read middle.json: {exc}", + ) + + pdf_info = payload.get("pdf_info") + if not isinstance(pdf_info, list): + return VisualizationResult( + document_stem=job.document_stem, + parse_dir=job.parse_dir, + status=VISUALIZATION_SKIPPED, + message="invalid middle.json: missing pdf_info", + ) + + try: + pdf_bytes = origin_pdf_path.read_bytes() + generated_files = [f"{job.document_stem}_layout.pdf"] + draw_layout_bbox(pdf_info, pdf_bytes, str(job.parse_dir), generated_files[0]) + if job.draw_span: + generated_files.append(f"{job.document_stem}_span.pdf") + draw_span_bbox(pdf_info, pdf_bytes, str(job.parse_dir), generated_files[1]) + except Exception as exc: + return VisualizationResult( + document_stem=job.document_stem, + parse_dir=job.parse_dir, + status=VISUALIZATION_SKIPPED, + message=f"visualization failed: {exc}", + ) + + return VisualizationResult( + document_stem=job.document_stem, + parse_dir=job.parse_dir, + status=VISUALIZATION_FINISHED, + message="generated visualization pdf(s)", + generated_files=tuple(generated_files), + ) diff --git a/mineru/cli/vlm_preload.py b/mineru/cli/vlm_preload.py new file mode 100644 index 000000000..6464c42c0 --- /dev/null +++ b/mineru/cli/vlm_preload.py @@ -0,0 +1,85 @@ +# Copyright (c) Opendatalab. All rights reserved. +from collections.abc import Mapping, Sequence +from typing import Any + +from loguru import logger + +from mineru.utils.engine_utils import get_vlm_engine + +SERVICE_CONFIG_DEFAULTS: dict[str, Any] = { + "enable_vlm_preload": False, +} + + +def split_service_and_model_config( + config: Mapping[str, Any] | None, +) -> tuple[dict[str, Any], dict[str, Any]]: + raw_config = dict(config or {}) + service_config: dict[str, Any] = {} + + for key, default in SERVICE_CONFIG_DEFAULTS.items(): + service_config[key] = bool(raw_config.pop(key, default)) + + return service_config, raw_config + + +def build_local_api_cli_args( + extra_cli_args: Sequence[str], + *, + enable_vlm_preload: bool, +) -> tuple[str, ...]: + args = tuple(extra_cli_args) + if not enable_vlm_preload: + return args + + if "--enable-vlm-preload" in args or any( + arg.startswith("--enable-vlm-preload=") for arg in args + ): + return args + + return args + ("--enable-vlm-preload", "true") + + +def resolve_gradio_local_api_cli_args( + extra_cli_args: Sequence[str], + *, + api_url: str | None, + enable_vlm_preload: bool, +) -> tuple[str, ...]: + if enable_vlm_preload and api_url: + logger.warning( + "Ignoring --enable-vlm-preload because --api-url points to an existing MinerU FastAPI service." + ) + return tuple(extra_cli_args) + + return build_local_api_cli_args( + extra_cli_args, + enable_vlm_preload=enable_vlm_preload, + ) + + +def preload_vlm_model(*, model_kwargs: Mapping[str, Any] | None = None) -> str: + vlm_engine = get_vlm_engine("auto", is_async=True) + logger.info(f"Start init {vlm_engine}...") + + from mineru.backend.vlm.vlm_analyze import ModelSingleton + + model_singleton = ModelSingleton() + model_singleton.get_model( + vlm_engine, + None, + None, + **dict(model_kwargs or {}), + ) + logger.info(f"{vlm_engine} init successfully.") + return vlm_engine + + +def maybe_preload_vlm_model( + enable_vlm_preload: bool, + *, + model_kwargs: Mapping[str, Any] | None = None, +) -> str | None: + if not enable_vlm_preload: + return None + return preload_vlm_model(model_kwargs=model_kwargs) diff --git a/mineru/cli/vlm_server.py b/mineru/cli/vlm_server.py new file mode 100644 index 000000000..0155199f1 --- /dev/null +++ b/mineru/cli/vlm_server.py @@ -0,0 +1,62 @@ +# Copyright (c) Opendatalab. All rights reserved. +import click +import sys + +from loguru import logger + + +def vllm_server(): + from mineru.model.vlm.vllm_server import main + main() + + +def lmdeploy_server(): + from mineru.model.vlm.lmdeploy_server import main + main() + + +@click.command(context_settings=dict(ignore_unknown_options=True, allow_extra_args=True)) +@click.option( + '-e', + '--engine', + 'inference_engine', + type=click.Choice(['auto', 'vllm', 'lmdeploy']), + default='auto', + help='Select the inference engine used to accelerate VLM inference, default is "auto".', +) +@click.pass_context +def openai_server(ctx, inference_engine): + sys.argv = [sys.argv[0]] + ctx.args + if inference_engine == 'auto': + try: + import vllm + inference_engine = 'vllm' + logger.info("Using vLLM as the inference engine for VLM server.") + except ImportError: + logger.info("vLLM not found, attempting to use LMDeploy as the inference engine for VLM server.") + try: + import lmdeploy + inference_engine = 'lmdeploy' + # Success message moved after successful import + logger.info("Using LMDeploy as the inference engine for VLM server.") + except ImportError: + logger.error("Neither vLLM nor LMDeploy is installed. Please install at least one of them.") + sys.exit(1) + + if inference_engine == 'vllm': + try: + import vllm + except ImportError: + logger.error("vLLM is not installed. Please install vLLM or choose LMDeploy as the inference engine.") + sys.exit(1) + vllm_server() + elif inference_engine == 'lmdeploy': + try: + import lmdeploy + except ImportError: + logger.error("LMDeploy is not installed. Please install LMDeploy or choose vLLM as the inference engine.") + sys.exit(1) + lmdeploy_server() + +if __name__ == "__main__": + openai_server() \ No newline at end of file diff --git a/mineru/data/__init__.py b/mineru/data/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/data/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/data/data_reader_writer/__init__.py b/mineru/data/data_reader_writer/__init__.py new file mode 100644 index 000000000..9cc042f68 --- /dev/null +++ b/mineru/data/data_reader_writer/__init__.py @@ -0,0 +1,18 @@ +# Copyright (c) Opendatalab. All rights reserved. +from .base import DataReader, DataWriter +from .dummy import DummyDataWriter +from .filebase import FileBasedDataReader, FileBasedDataWriter +from .multi_bucket_s3 import MultiBucketS3DataReader, MultiBucketS3DataWriter +from .s3 import S3DataReader, S3DataWriter + +__all__ = [ + "DataReader", + "DataWriter", + "FileBasedDataReader", + "FileBasedDataWriter", + "S3DataReader", + "S3DataWriter", + "MultiBucketS3DataReader", + "MultiBucketS3DataWriter", + "DummyDataWriter", +] diff --git a/mineru/data/data_reader_writer/base.py b/mineru/data/data_reader_writer/base.py new file mode 100644 index 000000000..38b6be9ed --- /dev/null +++ b/mineru/data/data_reader_writer/base.py @@ -0,0 +1,64 @@ +# Copyright (c) Opendatalab. All rights reserved. + +from abc import ABC, abstractmethod + + +class DataReader(ABC): + + def read(self, path: str) -> bytes: + """Read the file. + + Args: + path (str): file path to read + + Returns: + bytes: the content of the file + """ + return self.read_at(path) + + @abstractmethod + def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes: + """Read the file at offset and limit. + + Args: + path (str): the file path + offset (int, optional): the number of bytes skipped. Defaults to 0. + limit (int, optional): the length of bytes want to read. Defaults to -1. + + Returns: + bytes: the content of the file + """ + pass + + +class DataWriter(ABC): + @abstractmethod + def write(self, path: str, data: bytes) -> None: + """Write the data to the file. + + Args: + path (str): the target file where to write + data (bytes): the data want to write + """ + pass + + def write_string(self, path: str, data: str) -> None: + """Write the data to file, the data will be encoded to bytes. + + Args: + path (str): the target file where to write + data (str): the data want to write + """ + + def safe_encode(data: str, method: str): + try: + bit_data = data.encode(encoding=method, errors='replace') + return bit_data, True + except: # noqa + return None, False + + for method in ['utf-8', 'ascii']: + bit_data, flag = safe_encode(data, method) + if flag: + self.write(path, bit_data) + break diff --git a/mineru/data/data_reader_writer/dummy.py b/mineru/data/data_reader_writer/dummy.py new file mode 100644 index 000000000..c79417348 --- /dev/null +++ b/mineru/data/data_reader_writer/dummy.py @@ -0,0 +1,12 @@ +# Copyright (c) Opendatalab. All rights reserved. +from .base import DataWriter + + +class DummyDataWriter(DataWriter): + def write(self, path: str, data: bytes) -> None: + """Dummy write method that does nothing.""" + pass + + def write_string(self, path: str, data: str) -> None: + """Dummy write_string method that does nothing.""" + pass diff --git a/magic_pdf/data/data_reader_writer/filebase.py b/mineru/data/data_reader_writer/filebase.py similarity index 88% rename from magic_pdf/data/data_reader_writer/filebase.py rename to mineru/data/data_reader_writer/filebase.py index 40e9e4ff1..0ad4f79c8 100644 --- a/magic_pdf/data/data_reader_writer/filebase.py +++ b/mineru/data/data_reader_writer/filebase.py @@ -1,6 +1,7 @@ +# Copyright (c) Opendatalab. All rights reserved. import os -from magic_pdf.data.data_reader_writer.base import DataReader, DataWriter +from .base import DataReader, DataWriter class FileBasedDataReader(DataReader): @@ -55,5 +56,8 @@ def write(self, path: str, data: bytes) -> None: if not os.path.isabs(fn_path) and len(self._parent_dir) > 0: fn_path = os.path.join(self._parent_dir, path) + if not os.path.exists(os.path.dirname(fn_path)) and os.path.dirname(fn_path) != "": + os.makedirs(os.path.dirname(fn_path), exist_ok=True) + with open(fn_path, 'wb') as f: f.write(data) diff --git a/mineru/data/data_reader_writer/multi_bucket_s3.py b/mineru/data/data_reader_writer/multi_bucket_s3.py new file mode 100644 index 000000000..e4e7e7c91 --- /dev/null +++ b/mineru/data/data_reader_writer/multi_bucket_s3.py @@ -0,0 +1,145 @@ +# Copyright (c) Opendatalab. All rights reserved. + +from ..utils.exceptions import InvalidConfig, InvalidParams +from .base import DataReader, DataWriter +from ..io.s3 import S3Reader, S3Writer +from ..utils.schemas import S3Config +from ..utils.path_utils import parse_s3_range_params, parse_s3path, remove_non_official_s3_args + + +class MultiS3Mixin: + def __init__(self, default_prefix: str, s3_configs: list[S3Config]): + """Initialized with multiple s3 configs. + + Args: + default_prefix (str): the default prefix of the relative path. for example, {some_bucket}/{some_prefix} or {some_bucket} + s3_configs (list[S3Config]): list of s3 configs, the bucket_name must be unique in the list. + + Raises: + InvalidConfig: default bucket config not in s3_configs. + InvalidConfig: bucket name not unique in s3_configs. + InvalidConfig: default bucket must be provided. + """ + if len(default_prefix) == 0: + raise InvalidConfig('default_prefix must be provided') + + arr = default_prefix.strip('/').split('/') + self.default_bucket = arr[0] + self.default_prefix = '/'.join(arr[1:]) + + found_default_bucket_config = False + for conf in s3_configs: + if conf.bucket_name == self.default_bucket: + found_default_bucket_config = True + break + + if not found_default_bucket_config: + raise InvalidConfig( + f'default_bucket: {self.default_bucket} config must be provided in s3_configs: {s3_configs}' + ) + + uniq_bucket = set([conf.bucket_name for conf in s3_configs]) + if len(uniq_bucket) != len(s3_configs): + raise InvalidConfig( + f'the bucket_name in s3_configs: {s3_configs} must be unique' + ) + + self.s3_configs = s3_configs + self._s3_clients_h: dict = {} + + +class MultiBucketS3DataReader(DataReader, MultiS3Mixin): + def read(self, path: str) -> bytes: + """Read the path from s3, select diffect bucket client for each request + based on the bucket, also support range read. + + Args: + path (str): the s3 path of file, the path must be in the format of s3://bucket_name/path?offset,limit. + for example: s3://bucket_name/path?0,100. + + Returns: + bytes: the content of s3 file. + """ + may_range_params = parse_s3_range_params(path) + if may_range_params is None or 2 != len(may_range_params): + byte_start, byte_len = 0, -1 + else: + byte_start, byte_len = int(may_range_params[0]), int(may_range_params[1]) + path = remove_non_official_s3_args(path) + return self.read_at(path, byte_start, byte_len) + + def __get_s3_client(self, bucket_name: str): + if bucket_name not in set([conf.bucket_name for conf in self.s3_configs]): + raise InvalidParams( + f'bucket name: {bucket_name} not found in s3_configs: {self.s3_configs}' + ) + if bucket_name not in self._s3_clients_h: + conf = next( + filter(lambda conf: conf.bucket_name == bucket_name, self.s3_configs) + ) + self._s3_clients_h[bucket_name] = S3Reader( + bucket_name, + conf.access_key, + conf.secret_key, + conf.endpoint_url, + conf.addressing_style, + ) + return self._s3_clients_h[bucket_name] + + def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes: + """Read the file with offset and limit, select diffect bucket client + for each request based on the bucket. + + Args: + path (str): the file path. + offset (int, optional): the number of bytes skipped. Defaults to 0. + limit (int, optional): the number of bytes want to read. Defaults to -1 which means infinite. + + Returns: + bytes: the file content. + """ + if path.startswith('s3://'): + bucket_name, path = parse_s3path(path) + s3_reader = self.__get_s3_client(bucket_name) + else: + s3_reader = self.__get_s3_client(self.default_bucket) + if self.default_prefix: + path = self.default_prefix + '/' + path + return s3_reader.read_at(path, offset, limit) + + +class MultiBucketS3DataWriter(DataWriter, MultiS3Mixin): + def __get_s3_client(self, bucket_name: str): + if bucket_name not in set([conf.bucket_name for conf in self.s3_configs]): + raise InvalidParams( + f'bucket name: {bucket_name} not found in s3_configs: {self.s3_configs}' + ) + if bucket_name not in self._s3_clients_h: + conf = next( + filter(lambda conf: conf.bucket_name == bucket_name, self.s3_configs) + ) + self._s3_clients_h[bucket_name] = S3Writer( + bucket_name, + conf.access_key, + conf.secret_key, + conf.endpoint_url, + conf.addressing_style, + ) + return self._s3_clients_h[bucket_name] + + def write(self, path: str, data: bytes) -> None: + """Write file with data, also select diffect bucket client for each + request based on the bucket. + + Args: + path (str): the path of file, if the path is relative path, it will be joined with parent_dir. + data (bytes): the data want to write. + """ + if path.startswith('s3://'): + bucket_name, path = parse_s3path(path) + s3_writer = self.__get_s3_client(bucket_name) + else: + s3_writer = self.__get_s3_client(self.default_bucket) + if self.default_prefix: + path = self.default_prefix + '/' + path + return s3_writer.write(path, data) diff --git a/mineru/data/data_reader_writer/s3.py b/mineru/data/data_reader_writer/s3.py new file mode 100644 index 000000000..57312cbb6 --- /dev/null +++ b/mineru/data/data_reader_writer/s3.py @@ -0,0 +1,73 @@ +# Copyright (c) Opendatalab. All rights reserved. +from .multi_bucket_s3 import MultiBucketS3DataReader, MultiBucketS3DataWriter +from ..utils.schemas import S3Config + + +class S3DataReader(MultiBucketS3DataReader): + def __init__( + self, + default_prefix_without_bucket: str, + bucket: str, + ak: str, + sk: str, + endpoint_url: str, + addressing_style: str = 'auto', + ): + """s3 reader client. + + Args: + default_prefix_without_bucket: prefix that not contains bucket + bucket (str): bucket name + ak (str): access key + sk (str): secret key + endpoint_url (str): endpoint url of s3 + addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual' + refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html + """ + super().__init__( + f'{bucket}/{default_prefix_without_bucket}', + [ + S3Config( + bucket_name=bucket, + access_key=ak, + secret_key=sk, + endpoint_url=endpoint_url, + addressing_style=addressing_style, + ) + ], + ) + + +class S3DataWriter(MultiBucketS3DataWriter): + def __init__( + self, + default_prefix_without_bucket: str, + bucket: str, + ak: str, + sk: str, + endpoint_url: str, + addressing_style: str = 'auto', + ): + """s3 writer client. + + Args: + default_prefix_without_bucket: prefix that not contains bucket + bucket (str): bucket name + ak (str): access key + sk (str): secret key + endpoint_url (str): endpoint url of s3 + addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual' + refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html + """ + super().__init__( + f'{bucket}/{default_prefix_without_bucket}', + [ + S3Config( + bucket_name=bucket, + access_key=ak, + secret_key=sk, + endpoint_url=endpoint_url, + addressing_style=addressing_style, + ) + ], + ) diff --git a/mineru/data/io/__init__.py b/mineru/data/io/__init__.py new file mode 100644 index 000000000..43bfe5ee4 --- /dev/null +++ b/mineru/data/io/__init__.py @@ -0,0 +1,7 @@ +# Copyright (c) Opendatalab. All rights reserved. + +from .base import IOReader, IOWriter +from .http import HttpReader, HttpWriter +from .s3 import S3Reader, S3Writer + +__all__ = ['IOReader', 'IOWriter', 'HttpReader', 'HttpWriter', 'S3Reader', 'S3Writer'] \ No newline at end of file diff --git a/mineru/data/io/base.py b/mineru/data/io/base.py new file mode 100644 index 000000000..ede371f01 --- /dev/null +++ b/mineru/data/io/base.py @@ -0,0 +1,43 @@ +# Copyright (c) Opendatalab. All rights reserved. +from abc import ABC, abstractmethod + + +class IOReader(ABC): + @abstractmethod + def read(self, path: str) -> bytes: + """Read the file. + + Args: + path (str): file path to read + + Returns: + bytes: the content of the file + """ + pass + + @abstractmethod + def read_at(self, path: str, offset: int = 0, limit: int = -1) -> bytes: + """Read at offset and limit. + + Args: + path (str): the path of file, if the path is relative path, it will be joined with parent_dir. + offset (int, optional): the number of bytes skipped. Defaults to 0. + limit (int, optional): the length of bytes want to read. Defaults to -1. + + Returns: + bytes: the content of file + """ + pass + + +class IOWriter(ABC): + + @abstractmethod + def write(self, path: str, data: bytes) -> None: + """Write file with data. + + Args: + path (str): the path of file, if the path is relative path, it will be joined with parent_dir. + data (bytes): the data want to write + """ + pass diff --git a/magic_pdf/data/io/http.py b/mineru/data/io/http.py similarity index 91% rename from magic_pdf/data/io/http.py rename to mineru/data/io/http.py index 3b08271f0..15340f1bd 100644 --- a/magic_pdf/data/io/http.py +++ b/mineru/data/io/http.py @@ -1,9 +1,10 @@ +# Copyright (c) Opendatalab. All rights reserved. import io import requests -from magic_pdf.data.io.base import IOReader, IOWriter +from .base import IOReader, IOWriter class HttpReader(IOReader): diff --git a/mineru/data/io/s3.py b/mineru/data/io/s3.py new file mode 100644 index 000000000..f1dc94a47 --- /dev/null +++ b/mineru/data/io/s3.py @@ -0,0 +1,115 @@ +# Copyright (c) Opendatalab. All rights reserved. +import boto3 +from botocore.config import Config + +from ..io.base import IOReader, IOWriter + + +class S3Reader(IOReader): + def __init__( + self, + bucket: str, + ak: str, + sk: str, + endpoint_url: str, + addressing_style: str = 'auto', + ): + """s3 reader client. + + Args: + bucket (str): bucket name + ak (str): access key + sk (str): secret key + endpoint_url (str): endpoint url of s3 + addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual' + refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html + """ + self._bucket = bucket + self._ak = ak + self._sk = sk + self._s3_client = boto3.client( + service_name='s3', + aws_access_key_id=ak, + aws_secret_access_key=sk, + endpoint_url=endpoint_url, + config=Config( + s3={'addressing_style': addressing_style}, + retries={'max_attempts': 5, 'mode': 'standard'}, + ), + ) + + def read(self, key: str) -> bytes: + """Read the file. + + Args: + path (str): file path to read + + Returns: + bytes: the content of the file + """ + return self.read_at(key) + + def read_at(self, key: str, offset: int = 0, limit: int = -1) -> bytes: + """Read at offset and limit. + + Args: + path (str): the path of file, if the path is relative path, it will be joined with parent_dir. + offset (int, optional): the number of bytes skipped. Defaults to 0. + limit (int, optional): the length of bytes want to read. Defaults to -1. + + Returns: + bytes: the content of file + """ + if limit > -1: + range_header = f'bytes={offset}-{offset+limit-1}' + res = self._s3_client.get_object( + Bucket=self._bucket, Key=key, Range=range_header + ) + else: + res = self._s3_client.get_object( + Bucket=self._bucket, Key=key, Range=f'bytes={offset}-' + ) + return res['Body'].read() + + +class S3Writer(IOWriter): + def __init__( + self, + bucket: str, + ak: str, + sk: str, + endpoint_url: str, + addressing_style: str = 'auto', + ): + """s3 reader client. + + Args: + bucket (str): bucket name + ak (str): access key + sk (str): secret key + endpoint_url (str): endpoint url of s3 + addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual' + refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html + """ + self._bucket = bucket + self._ak = ak + self._sk = sk + self._s3_client = boto3.client( + service_name='s3', + aws_access_key_id=ak, + aws_secret_access_key=sk, + endpoint_url=endpoint_url, + config=Config( + s3={'addressing_style': addressing_style}, + retries={'max_attempts': 5, 'mode': 'standard'}, + ), + ) + + def write(self, key: str, data: bytes): + """Write file with data. + + Args: + path (str): the path of file, if the path is relative path, it will be joined with parent_dir. + data (bytes): the data want to write + """ + self._s3_client.put_object(Bucket=self._bucket, Key=key, Body=data) diff --git a/mineru/data/utils/__init__.py b/mineru/data/utils/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/data/utils/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/data/utils/exceptions.py b/mineru/data/utils/exceptions.py new file mode 100644 index 000000000..0b0c52c64 --- /dev/null +++ b/mineru/data/utils/exceptions.py @@ -0,0 +1,40 @@ +# Copyright (c) Opendatalab. All rights reserved. + +class FileNotExisted(Exception): + + def __init__(self, path): + self.path = path + + def __str__(self): + return f'File {self.path} does not exist.' + + +class InvalidConfig(Exception): + def __init__(self, msg): + self.msg = msg + + def __str__(self): + return f'Invalid config: {self.msg}' + + +class InvalidParams(Exception): + def __init__(self, msg): + self.msg = msg + + def __str__(self): + return f'Invalid params: {self.msg}' + + +class EmptyData(Exception): + def __init__(self, msg): + self.msg = msg + + def __str__(self): + return f'Empty data: {self.msg}' + +class CUDA_NOT_AVAILABLE(Exception): + def __init__(self, msg): + self.msg = msg + + def __str__(self): + return f'CUDA not available: {self.msg}' \ No newline at end of file diff --git a/magic_pdf/libs/path_utils.py b/mineru/data/utils/path_utils.py similarity index 95% rename from magic_pdf/libs/path_utils.py rename to mineru/data/utils/path_utils.py index 15fff01b5..fc321f6f0 100644 --- a/magic_pdf/libs/path_utils.py +++ b/mineru/data/utils/path_utils.py @@ -1,3 +1,4 @@ +# Copyright (c) Opendatalab. All rights reserved. def remove_non_official_s3_args(s3path): diff --git a/magic_pdf/data/schemas.py b/mineru/data/utils/schemas.py similarity index 83% rename from magic_pdf/data/schemas.py rename to mineru/data/utils/schemas.py index 3adb6760d..00634735f 100644 --- a/magic_pdf/data/schemas.py +++ b/mineru/data/utils/schemas.py @@ -1,8 +1,11 @@ +# Copyright (c) Opendatalab. All rights reserved. from pydantic import BaseModel, Field class S3Config(BaseModel): + """S3 config + """ bucket_name: str = Field(description='s3 bucket name', min_length=1) access_key: str = Field(description='s3 access key', min_length=1) secret_key: str = Field(description='s3 secret key', min_length=1) @@ -11,5 +14,7 @@ class S3Config(BaseModel): class PageInfo(BaseModel): + """The width and height of page + """ w: float = Field(description='the width of page') h: float = Field(description='the height of page') diff --git a/mineru/model/__init__.py b/mineru/model/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/docx/__init__.py b/mineru/model/docx/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/docx/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/docx/docx_converter.py b/mineru/model/docx/docx_converter.py new file mode 100644 index 000000000..4fce717c5 --- /dev/null +++ b/mineru/model/docx/docx_converter.py @@ -0,0 +1,2794 @@ +# Copyright (c) Opendatalab. All rights reserved. +import re +import zipfile +from io import BytesIO +from pathlib import Path +from typing import BinaryIO, Optional, Union, Any, Final, Iterator + +from PIL import Image +from loguru import logger +from docx import Document +from docx.document import Document as DocxDocument +from docx.oxml.xmlchemy import BaseOxmlElement +from docx.text.paragraph import Paragraph +from docx.text.hyperlink import Hyperlink +from docx.text.run import Run +from lxml import etree +from pydantic import AnyUrl +from mammoth.conversion import convert_document_element_to_html +from mammoth.docx import body_xml + +from mineru.model.docx.tools.office_xml import read_str +from mineru.model.docx.tools.math.omml import oMath2Latex +from mineru.utils.docx_formatting import Formatting, Script +from mineru.utils.enum_class import BlockType, ContentType +from mineru.backend.utils.office_image import ( + is_vector_image, + serialize_vector_image_with_placeholder, +) +from mineru.backend.utils.office_chart import html_table_from_excel_bytes +from mineru.utils.pdf_reader import image_to_b64str + +class DocxConverter: + _BLIP_NAMESPACES: Final = { + "a": "http://schemas.openxmlformats.org/drawingml/2006/main", + "r": "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + "w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main", + "wp": "http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", + "mc": "http://schemas.openxmlformats.org/markup-compatibility/2006", + "v": "urn:schemas-microsoft-com:vml", + "wps": "http://schemas.microsoft.com/office/word/2010/wordprocessingShape", + "w10": "urn:schemas-microsoft-com:office:word", + "a14": "http://schemas.microsoft.com/office/drawing/2010/main", + "c": "http://schemas.openxmlformats.org/drawingml/2006/chart", + } + _PARAGRAPH_TRANSPARENT_INLINE_CONTAINERS: Final = { + "bdo", + "customXml", + "dir", + "fldSimple", + "ins", + "moveTo", + "smartTag", + } + """ + Word 文档中使用的 XML 命名空间映射。 + + 这些命名空间用于解析 DOCX 文件中的各种元素,包括: + - a: DrawingML 主命名空间 + - r: Office 文档关系命名空间 + - w: WordprocessingML 主命名空间 + - wp: Wordprocessing Drawing 命名空间 + - mc: 标记兼容性命名空间 + - v: VML (Vector Markup Language) 命名空间 + - wps: Wordprocessing Shape 命名空间 + - w10: Office Word 命名空间 + - a14: Office 2010 Drawing 命名空间 + """ + + def __init__(self): + self.XML_KEY = ( + "{http://schemas.openxmlformats.org/wordprocessingml/2006/main}val" + ) + self.xml_namespaces = { + "w": "http://schemas.microsoft.com/office/word/2003/wordml" + } + self.blip_xpath_expr = etree.XPath( + ".//a:blip", namespaces=DocxConverter._BLIP_NAMESPACES + ) + + # 存放文档字节数据,用于需要重读 ZIP 的辅助方法 + self._file_bytes: bytes = b'' + self.docx_obj = None + self.pages = [] + self.cur_page = [] + self._mammoth_tables_html: list = [] # 完整文档 mammoth 预解析的表格 HTML 列表 + self._mammoth_table_idx: int = 0 # 当前预解析表格游标 + self.pre_num_id: int = -1 # 上一个处理元素的 numId + self.pre_ilevel: int = -1 # 上一个处理元素的缩进等级, 用于判断列表层级 + self.list_block_stack: list = [] # 列表块堆栈 + self.list_counters: dict[tuple[int, int], int] = ( + {} + ) # 列表计数器 (numId, ilvl) -> count + self.index_block_stack: list = [] # 目录索引块堆栈 + self.pre_index_ilevel: int = -1 # 上一个目录项的缩进等级 + self.heading_list_numids: set = set() # 用作章节标题的列表numId集合 + self.equation_bookends: str = "{EQ}" # 公式标记格式 + self.chart_list = [] # 图表列表 + self.processed_textbox_elements: list = [] + self.toc_anchor_set: set[str] = set() # TOC 超链接目标锚点集合 + self._numbering_root: Optional[BaseOxmlElement] = None + self._numbering_root_loaded: bool = False + self._numbering_level_cache: dict[ + tuple[int, int], Optional[BaseOxmlElement] + ] = {} + + @staticmethod + def _escape_hyperlink_text(text: str) -> str: + """ + 转义超链接文本中的方括号。 + + Args: + text: 要转义的文本 + + Returns: + str: 转义后的文本 + """ + if not text: + return text + # 转义方括号 + text = text.replace("[", "\\[").replace("]", "\\]") + return text + + @staticmethod + def _escape_hyperlink_url(url: str) -> str: + """ + 转义超链接 URL 中的括号。 + + Args: + url: 要转义的 URL + + Returns: + str: 转义后的 URL + """ + if not url: + return url + # 对括号进行 URL 编码 + url = url.replace("(", "%28").replace(")", "%29") + return url + + @staticmethod + def _get_style_str_from_format(format_obj) -> Optional[str]: + """ + 从 Formatting 对象提取样式字符串。 + + Args: + format_obj: Formatting 对象 + + Returns: + Optional[str]: 样式字符串(如 "bold,italic"),无样式时返回 None + """ + if format_obj is None: + return None + styles = [] + if format_obj.bold: + styles.append('bold') + if format_obj.italic: + styles.append('italic') + if format_obj.underline: + styles.append('underline') + if format_obj.strikethrough: + styles.append('strikethrough') + return ','.join(styles) if styles else None + + @staticmethod + def _has_visible_style(format_obj) -> bool: + """ + 检查格式是否包含可见样式(下划线或删除线)。 + + 空白文本在有这些样式时仍然是可见的,应当保留。 + + Args: + format_obj: Formatting 对象 + + Returns: + bool: 是否包含可见样式 + """ + if format_obj is None: + return False + return bool(format_obj.underline or format_obj.strikethrough) + + @staticmethod + def _is_hidden_run(run: Run) -> bool: + """Check whether a run is marked as hidden text in Word.""" + _W = "http://schemas.openxmlformats.org/wordprocessingml/2006/main" + rpr = run._element.find(f"{{{_W}}}rPr") + if rpr is None: + return False + # webHidden: commonly used by TOC page-number field runs + if rpr.find(f"{{{_W}}}webHidden") is not None: + return True + # vanish: generic hidden text + if rpr.find(f"{{{_W}}}vanish") is not None: + return True + return False + + @classmethod + def _format_text_with_hyperlink( + cls, + text: str, + hyperlink: Optional[Union[AnyUrl, Path, str]], + style_str: Optional[str] = None, + ) -> str: + """ + 将文本和超链接格式化,支持字体样式标记。 + + 无超链接时:有样式包裹为 文本,无样式直接返回文本。 + 有超链接时:格式化为 文本链接。 + + Args: + text: 文本内容 + hyperlink: 超链接地址 + style_str: 样式字符串(如 "bold,italic"),无样式时为 None + + Returns: + str: 格式化后的文本 + """ + if not text: + return text + + # 检查超链接是否有效(非空) + if hyperlink is None: + # 无超链接:只有有样式时才包裹 标签 + if style_str: + return f'{text}' + return text + + hyperlink_str = str(hyperlink) + if not hyperlink_str or hyperlink_str.strip() == "" or hyperlink_str == ".": + if style_str: + return f'{text}' + return text + + # 有超链接:构建 标签(含可选样式) + if style_str: + text_tag = f'{text}' + else: + text_tag = f'{text}' + + return f"{text_tag}{hyperlink_str}" + + def _build_text_from_elements( + self, + paragraph_elements: list[ + tuple[str, Optional[Formatting], Optional[Union[AnyUrl, Path, str]]] + ], + ) -> str: + """ + 从 paragraph_elements 重组文本,应用超链接格式和字体样式。 + + Args: + paragraph_elements: 段落元素列表 + + Returns: + str: 重组后的文本 + """ + result_parts = [] + for text, format_obj, hyperlink in paragraph_elements: + if text: + style_str = self._get_style_str_from_format(format_obj) + formatted_text = self._format_text_with_hyperlink(text, hyperlink, style_str) + result_parts.append(formatted_text) + return "".join(result_parts) if result_parts else "" + + @staticmethod + def _split_paragraph_elements_at_eq_boundaries( + paragraph_elements: list, + non_eq_segments: list, + ) -> list: + """ + 在公式边界处拆分段落元素,解决格式标注跨公式边界失效的问题。 + + 当 _get_paragraph_elements 处理含公式(oMath)的段落时,python-docx 的 + iter_inner_content() 不会遍历 oMath 元素。如果公式前后的文本格式相同, + 它们会被合并为单个元素,导致文本跨越 标签两侧。 + _replace_text_outside_equations 只在单个非公式片段中搜索,无法找到跨片段的文本, + 从而导致样式替换失败。 + + 本方法通过将这些跨边界的合并元素重新拆分为多个片段来修复此问题, + 使每个元素都对应 text_with_equations 中唯一的非公式片段。 + + Args: + paragraph_elements: (text, format, hyperlink) 元组的列表 + non_eq_segments: 从 text_with_equations 中提取的非公式文本片段列表 + + Returns: + 重新拆分后的 (text, format, hyperlink) 列表,每个元素均位于单个公式片段内 + """ + if len(non_eq_segments) <= 1: + return paragraph_elements + + # 计算各非公式片段的累积结束位置,作为分割边界 + boundaries: set[int] = set() + pos = 0 + for seg in non_eq_segments[:-1]: # 最后一个片段后无需分割 + pos += len(seg) + boundaries.add(pos) + + if not boundaries: + return paragraph_elements + + # 验证段落元素的拼接文本与非公式片段的拼接文本一致 + concat_elem_text = "".join(text for text, _, _ in paragraph_elements) + concat_seg_text = "".join(non_eq_segments) + if concat_elem_text != concat_seg_text: + # 文本不匹配时安全降级:原样返回 + return paragraph_elements + + # 在边界处分割元素 + result = [] + text_pos = 0 + for (text, fmt, hyperlink) in paragraph_elements: + if not text: + result.append((text, fmt, hyperlink)) + text_pos += len(text) + continue + + elem_start = text_pos + elem_end = elem_start + len(text) + text_pos = elem_end + + # 找到落在该元素内部的分割点 + splits_in_elem = sorted( + b - elem_start for b in boundaries if elem_start < b < elem_end + ) + + if not splits_in_elem: + result.append((text, fmt, hyperlink)) + else: + prev = 0 + for split_pos in splits_in_elem: + fragment = text[prev:split_pos] + if fragment: + result.append((fragment, fmt, hyperlink)) + prev = split_pos + fragment = text[prev:] + if fragment: + result.append((fragment, fmt, hyperlink)) + + return result + + def _build_text_with_equations_and_hyperlinks( + self, + paragraph_elements: list[ + tuple[str, Optional[Formatting], Optional[Union[AnyUrl, Path, str]]] + ], + text_with_equations: str, + equations: list, + ) -> str: + """ + 构建同时包含公式、超链接和字体样式的文本。 + + Args: + paragraph_elements: 段落元素列表,包含格式和超链接信息 + text_with_equations: 包含公式标记的原始文本 + equations: 公式列表 + + Returns: + str: 包含公式标记、超链接格式和字体样式的文本 + """ + if not equations: + # 没有公式,直接返回带超链接和样式的文本 + return self._build_text_from_elements(paragraph_elements) + + # 检查是否有超链接 + has_hyperlink = any( + hyperlink is not None and str(hyperlink).strip() not in ("", ".") + for _, _, hyperlink in paragraph_elements + ) + + # 检查是否有字体样式 + has_style = any( + fmt is not None and (fmt.bold or fmt.italic or fmt.underline or fmt.strikethrough) + for _, fmt, _ in paragraph_elements + ) + + if not has_hyperlink and not has_style: + # 没有超链接也没有样式,直接返回带公式的文本 + return text_with_equations + + # 同时有公式和超链接/样式,需要合并处理 + # 策略:在带公式的文本基础上,将样式/超链接标记插入到正确的位置 + + # 0. 拆分 text_with_equations,获取各非公式片段,用于解决跨公式边界的元素合并问题 + eq_split_pattern = re.compile(r'.*?', re.DOTALL) + non_eq_segments = eq_split_pattern.split(text_with_equations) + + # 在公式边界处重新拆分段落元素,避免单个元素跨越多个非公式片段 + paragraph_elements = self._split_paragraph_elements_at_eq_boundaries( + paragraph_elements, non_eq_segments + ) + + # 1. 记录每个元素的原始文本和对应的格式化结果 + element_mappings = [] + for text, format_obj, hyperlink in paragraph_elements: + if text: + style_str = self._get_style_str_from_format(format_obj) + formatted_text = self._format_text_with_hyperlink(text, hyperlink, style_str) + element_mappings.append((text, formatted_text)) + + # 2. 在 text_with_equations 中定位每个元素的原始文本,然后替换为格式化后的文本 + result_text = text_with_equations + for original_text, formatted_text in element_mappings: + if original_text != formatted_text: + # 只有当文本被格式化(添加样式或超链接)时才需要替换 + result_text = self._replace_text_outside_equations( + result_text, original_text, formatted_text + ) + + return result_text + + def _replace_text_outside_equations( + self, text: str, old_text: str, new_text: str + ) -> str: + """ + 在公式标记外替换文本。 + + Args: + text: 原始文本 + old_text: 要替换的文本 + new_text: 替换后的文本 + + Returns: + str: 替换后的文本 + """ + # 分割文本为公式和非公式部分 + eq_pattern = re.compile(r"(.*?)") + parts = eq_pattern.split(text) + + result_parts = [] + for part in parts: + if part.startswith("") and part.endswith(""): + # 公式部分,保持不变 + result_parts.append(part) + else: + # 非公式部分,进行替换 + result_parts.append(part.replace(old_text, new_text, 1)) + + return "".join(result_parts) + + def convert( + self, + file_stream: BinaryIO, + ): + # 重置所有实例状态,确保同一实例多次调用 convert() 时不会残留上次的数据 + self.pages = [] + self.cur_page = [] + self.pre_num_id = -1 + self.pre_ilevel = -1 + self.list_block_stack = [] + self.list_counters = {} + self.index_block_stack = [] + self.pre_index_ilevel = -1 + self.heading_list_numids = set() + self.chart_list = [] + self.processed_textbox_elements = [] + self.toc_anchor_set = set() + self._numbering_root = None + self._numbering_root_loaded = False + self._numbering_level_cache = {} + + # 读取文件字节,以便 mammoth 和 python-docx 各自使用独立读取流 + file_bytes = file_stream.read() + # 保存一份字节副本用于后续需要重新打开 ZIP 的方法 + self._file_bytes = file_bytes + # 使用完整文档 mammoth 转换预解析所有表格,获得完整上下文(编号/图片/样式等) + self._mammoth_tables_html = self._preparse_tables_with_mammoth(file_bytes) + self._mammoth_table_idx = 0 + self.docx_obj = Document(BytesIO(file_bytes)) + self.toc_anchor_set = self._collect_toc_anchor_set() + # 预扫描文档,识别用作章节标题的列表numId + self.heading_list_numids = self._detect_heading_list_numids() + self.pages.append(self.cur_page) + self._walk_linear(self.docx_obj.element.body) + self._add_header_footer(self.docx_obj) + self._add_chart_table() + + def _collect_toc_anchor_set(self) -> set[str]: + """Collect TOC hyperlink anchors from the entire document body.""" + anchor_attr = ( + "{http://schemas.openxmlformats.org/wordprocessingml/2006/main}anchor" + ) + anchors: set[str] = set() + for hl in self.docx_obj.element.body.findall( + ".//w:hyperlink", namespaces=DocxConverter._BLIP_NAMESPACES + ): + anchor = hl.get(anchor_attr, "").strip() + if anchor and anchor.startswith("_Toc"): + anchors.add(anchor) + return anchors + + def _walk_linear( + self, + body: BaseOxmlElement, + ): + for element in body: + # 获取元素的标签名(去除命名空间前缀) + tag_name = etree.QName(element).localname + # 检查是否存在内联图像(blip元素) + drawing_blip = self.blip_xpath_expr(element) + + # 查找所有绘图元素(用于处理DrawingML) + drawingml_els = element.findall( + ".//w:drawing", namespaces=DocxConverter._BLIP_NAMESPACES + ) + if drawingml_els: + self._handle_drawingml(drawingml_els) + + # 检查文本框内容(支持多种文本框格式) + # 仅当该元素之前未被处理时才处理 + if element not in self.processed_textbox_elements: + # 现代 Word 文本框 + txbx_xpath = etree.XPath( + ".//w:txbxContent|.//v:textbox//w:p", + namespaces=DocxConverter._BLIP_NAMESPACES, + ) + textbox_elements = txbx_xpath(element) + + # 未找到现代文本框,检查替代/旧版文本框格式 + if not textbox_elements and tag_name in ["drawing", "pict"]: + # 额外检查 DrawingML 和 VML 格式中的文本框 + alt_txbx_xpath = etree.XPath( + ".//wps:txbx//w:p|.//w10:wrap//w:p|.//a:p//a:t", + namespaces=DocxConverter._BLIP_NAMESPACES, + ) + textbox_elements = alt_txbx_xpath(element) + + # 检查不在标准文本框内的形状文本 + if not textbox_elements: + shape_text_xpath = etree.XPath( + ".//a:bodyPr/ancestor::*//a:t|.//a:txBody//a:t", + namespaces=DocxConverter._BLIP_NAMESPACES, + ) + shape_text_elements = shape_text_xpath(element) + if shape_text_elements: + # 从形状文本创建自定义文本元素 + text_content = " ".join( + [t.text for t in shape_text_elements if t.text] + ) + if text_content.strip(): + logger.debug( + f"Found shape text: {text_content[:50]}..." + ) + self.cur_page.append( + { + "type": BlockType.TEXT, + "content": text_content, + } + ) + if textbox_elements: + self.processed_textbox_elements.append(element) + for tb_element in textbox_elements: + self.processed_textbox_elements.append(tb_element) + + logger.debug( + f"Found textbox content with {len(textbox_elements)} elements" + ) + self._handle_textbox_content(textbox_elements) + + if tag_name == "tbl": + # 表格是顶层块级元素,会中断活跃列表的上下文。 + # 若不重置列表状态,后续列表项会被追加到表格之前创建的列表块中, + # 导致表格在 cur_page 中出现在那些列表项之后,产生顺序错乱。 + if self.pre_num_id != -1: + self.pre_num_id = -1 + self.pre_ilevel = -1 + self.list_block_stack = [] + self.list_counters = {} + try: + # 处理表格元素 + self._handle_tables(element) + except Exception: + # 如果表格解析失败,记录调试信息 + logger.debug("could not parse a table, broken docx table") + # 检查图片元素 + elif drawing_blip: + # 判断图片是否为锚定(浮动)图片 + is_anchored = bool( + element.findall( + ".//wp:anchor", + namespaces=DocxConverter._BLIP_NAMESPACES, + ) + ) + # 锚定图片在段落中浮动定位,段落文本应出现在图片之前 + if is_anchored and tag_name == "p": + self._handle_text_elements(element) + self._handle_pictures(drawing_blip) + else: + # 处理图片元素 + self._handle_pictures(drawing_blip) + # 如果是段落元素,同时处理其中的文本内容(如描述性文字) + if tag_name == "p": + self._handle_text_elements(element) + # 检查 sdt 元素 + elif tag_name == "sdt": + sdt_content = element.find( + ".//w:sdtContent", namespaces=DocxConverter._BLIP_NAMESPACES + ) + if sdt_content is not None: + if self._is_toc_sdt(element): + # 处理目录SDT,转换为INDEX块 + self._handle_sdt_as_index(sdt_content) + else: + # 其他SDT元素,按普通文本处理 + paragraphs = sdt_content.findall( + ".//w:p", namespaces=DocxConverter._BLIP_NAMESPACES + ) + for p in paragraphs: + self._handle_text_elements(p) + # 检查文本段落元素 + elif tag_name == "p": + # 处理文本元素(包括段落属性如"tcPr", "sectPr"等) + self._handle_text_elements(element) + + # 忽略其他未知元素并记录日志 + else: + logger.debug(f"Ignoring element in DOCX with tag: {tag_name}") + + def _preparse_tables_with_mammoth(self, file_bytes: bytes) -> list: + """ + 使用 mammoth 完整文档转换预解析所有顶层表格的 HTML。 + + 孤立模式下(仅传入 XML 片段),mammoth 缺少编号定义 + (word/numbering.xml)、样式(word/styles.xml)和关系 + (word/_rels/document.xml.rels)等上下文,在遇到含列表项或图片 + 的单元格时会抛出 AttributeError。通过完整文档转换,mammoth 可 + 获得完整上下文,从而正确处理这些情况。 + + 图片会被 mammoth 转换为内联 data-URI base64 格式()。 + + 注意:mammoth 不支持 OMML(Office Math Markup Language)公式,会静默丢弃 + 表格单元格内的公式。本方法在获取 mammoth HTML 后,会同步遍历原始 DOCX XML, + 将丢失的公式重新注入对应的 HTML 单元格。 + + Returns: + list[str]: 文档中所有顶层表格的 HTML 字符串列表,按文档顺序排列 + """ + try: + import mammoth as _mammoth + from bs4 import BeautifulSoup as _BeautifulSoup + + result = _mammoth.convert_to_html(BytesIO(file_bytes)) + soup = _BeautifulSoup(result.value, 'html.parser') + + # 仅保留顶层表格,排除嵌套在其他表格单元格内的子表格 + all_tables = soup.find_all('table') + top_level_tables = [t for t in all_tables if not t.find_parent('table')] + + # 同步加载 DOCX XML,获取所有顶层表格元素,用于公式注入 + docx_obj = Document(BytesIO(file_bytes)) + xml_top_tables = [ + elem for elem in docx_obj.element.body + if etree.QName(elem).localname == 'tbl' + ] + + logger.debug( + f"Pre-parsed {len(top_level_tables)} top-level tables via full mammoth conversion" + ) + + # 将 XML 表格中的 OMML 公式注入到 mammoth HTML 表格中 + result_tables = [] + for idx, html_table in enumerate(top_level_tables): + if idx < len(xml_top_tables): + html_table = self._inject_equations_into_table( + html_table, xml_top_tables[idx] + ) + result_tables.append(str(html_table)) + return result_tables + except Exception as e: + logger.debug(f"Could not pre-parse tables with full mammoth conversion: {e}") + return [] + + def _inject_equations_into_table(self, html_table, xml_table): + """ + 将 DOCX XML 表格中的 OMML 公式注入到 mammoth 生成的 HTML 表格中。 + + mammoth 会静默丢弃 OMML(Office Math Markup Language)公式,导致含公式 + 的表格单元格在 HTML 中为空。本方法并行遍历 HTML 表格(BeautifulSoup 对象) + 和 XML 表格(lxml 元素),对含有 OMML 公式的单元格用包含公式占位符的内容 + 替换原来的空内容。 + + Args: + html_table: BeautifulSoup 的 Tag 对象,代表 mammoth 生成的 元素 + xml_table: lxml 的 Element 对象,代表原始 DOCX 中对应的 元素 + + Returns: + BeautifulSoup Tag: 注入公式后的
元素(原地修改并返回) + """ + OMML_NS = "http://schemas.openxmlformats.org/officeDocument/2006/math" + W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main" + + # 快速检查:该表格是否含有任何公式 + if not xml_table.findall(f".//{{{OMML_NS}}}oMath"): + return html_table + + from bs4 import BeautifulSoup + + html_rows = html_table.find_all('tr') + xml_rows = xml_table.findall(f"{{{W_NS}}}tr") + + if len(html_rows) != len(xml_rows): + logger.debug( + f"Table row count mismatch when injecting equations: " + f"HTML {len(html_rows)} vs XML {len(xml_rows)}" + ) + return html_table + + for html_row, xml_row in zip(html_rows, xml_rows): + html_cells = html_row.find_all(['td', 'th']) + xml_cells = xml_row.findall(f"{{{W_NS}}}tc") + + if len(html_cells) != len(xml_cells): + continue + + for html_cell, xml_cell in zip(html_cells, xml_cells): + if not xml_cell.findall(f".//{{{OMML_NS}}}oMath"): + continue + + # 该单元格含公式,重建其 HTML 内容以保留公式 + new_content = self._build_cell_html_with_equations(xml_cell) + if new_content: + html_cell.clear() + new_soup = BeautifulSoup(new_content, 'html.parser') + for child in list(new_soup.children): + html_cell.append(child) + + return html_table + + def _build_cell_html_with_equations(self, xml_cell) -> str: + """ + 为含 OMML 公式的表格单元格构建 HTML 内容字符串。 + + 遍历单元格内的段落,将普通文本和 OMML 公式(转换为 LaTeX 占位符) + 混合在一起,生成与 mammoth 输出风格一致的 HTML 片段。 + + Args: + xml_cell: lxml Element,代表 DOCX 中的 元素 + + Returns: + str: 单元格内容的 HTML 字符串,如 "

textlatex

"; + 若单元格为空则返回空字符串 + """ + W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main" + + parts = [] + for child in xml_cell: + child_tag = etree.QName(child).localname + if child_tag == 'p': + para_html = self._build_paragraph_html_with_equations(child) + if para_html is not None: + parts.append(para_html) + # 嵌套表格暂不处理,由外层逻辑负责 + return ''.join(parts) + + def _build_paragraph_html_with_equations(self, xml_para) -> Optional[str]: + """ + 为可能含 OMML 公式的段落构建 HTML 字符串。 + + 使用与 _handle_equations_in_text 相同的迭代逻辑: + - 普通 元素的文本直接收集 + - 元素转换为 LaTeX 并包装为公式占位符 ... + - 等 math 命名空间下的 元素因标签中含 "math" 而被跳过, + 避免在 oMath2Latex 已处理整个 oMath 子树后重复提取 + + Args: + xml_para: lxml Element,代表 DOCX 中的 元素 + + Returns: + str | None: 格式为 "

...

" 的 HTML 字符串;段落为空时返回 None + """ + items = [] + for subt in xml_para.iter(): + tag_name = etree.QName(subt).localname + # 普通文本节点(排除 math 命名空间下的 ) + if tag_name == 't' and 'math' not in subt.tag: + if isinstance(subt.text, str) and subt.text: + items.append(subt.text) + # OMML 公式元素(排除 oMathPara 容器避免重复处理) + elif 'oMath' in subt.tag and 'oMathPara' not in subt.tag: + try: + latex = str(oMath2Latex(subt)).strip() + if latex: + items.append(self.equation_bookends.format(EQ=latex)) + except Exception as e: + logger.debug(f"Failed to convert OMML equation to LaTeX: {e}") + + if not items: + return None + return f'

{"".join(items)}

' + + def _handle_tables(self, element: BaseOxmlElement): + """ + 处理表格。 + + 优先使用完整文档 mammoth 转换的预解析结果(支持列表、图片、样式等 + 复杂单元格内容),若预解析结果耗尽则回退到孤立 XML 解析模式。 + + Args: + element: 元素对象 + Returns: + list[RefItem]: 元素引用列表 + """ + # 优先使用预解析表格(完整文档上下文,能正确处理列表/图片等) + if self._mammoth_table_idx < len(self._mammoth_tables_html): + html = self._mammoth_tables_html[self._mammoth_table_idx] + self._mammoth_table_idx += 1 + html = self._normalize_table_colspans(html) + table_block = { + "type": BlockType.TABLE, + "content": html, + } + self.cur_page.append(table_block) + return + + # 回退:孤立 XML 解析模式(原始方案,不含文档上下文) + table = read_str(element.xml) + body_reader = body_xml.reader() + t = body_reader.read_all([table]) + res = convert_document_element_to_html(t.value[0]) + html = self._normalize_table_colspans(res.value) + table_block = { + "type": BlockType.TABLE, + "content": html, + } + self.cur_page.append(table_block) + + def _normalize_table_colspans(self, html: str) -> str: + """ + 修正 HTML 表格中因无线表/少线表导致的 colspan 不一致问题。 + + 在无边框或少边框的 DOCX 表格中,部分行的单元格包含 w:gridSpan 值, + 该值来自 Word 内部虚拟栅格,并不反映实际视觉列数。mammoth 将这些 + w:gridSpan 值直接转换为 HTML colspan 属性,导致不同行的有效列数 + (所有 colspan 之和)不一致,产生行列对不齐的问题。 + + 本方法检测此类不一致,并将有效列数过多的行的 colspan 缩减至 + 最常见的目标列数,从而恢复表格的正确结构。 + + 算法: + 1. 计算每行的有效列数(该行所有单元格 colspan 之和) + 2. 取最常见的列数作为目标列数 + 3. 对有效列数超过目标值的行,从第一个 colspan > 1 的单元格开始缩减 + + Args: + html: 包含表格的 HTML 字符串 + + Returns: + str: 修正后的 HTML 字符串 + """ + try: + from bs4 import BeautifulSoup + from collections import Counter + + soup = BeautifulSoup(html, 'html.parser') + tables = soup.find_all('table') + modified = False + + for table in tables: + rows = table.find_all('tr') + if not rows: + continue + + # 若表格中存在 rowspan > 1 的单元格,各行的显式 colspan 之和 + # 无法反映真实网格宽度(被 rowspan 占据的列不出现在后续行的 td + # 列表中),此时算法的假设不成立,跳过该表格以避免误修改合法的 + # colspan。 + all_cells = table.find_all(['td', 'th']) + if any(int(c.get('rowspan', 1)) > 1 for c in all_cells): + continue + + # 计算每行的有效列数(所有单元格的 colspan 之和) + row_col_counts = [] + for row in rows: + cells = row.find_all(['td', 'th']) + total = sum(int(c.get('colspan', 1)) for c in cells) + row_col_counts.append(total) + + if not row_col_counts: + continue + + # 找到目标列数(出现最多的列数) + count_freq = Counter(row_col_counts) + if len(count_freq) == 1: + continue # 各行列数已一致,无需修正 + + target = count_freq.most_common(1)[0][0] + + # 修正有效列数超过目标值的行:缩减 colspan > 1 的单元格 + for row, col_count in zip(rows, row_col_counts): + if col_count <= target: + continue + + excess = col_count - target + cells = row.find_all(['td', 'th']) + + for cell in cells: + if excess <= 0: + break + span = int(cell.get('colspan', 1)) + if span > 1: + reduce_by = min(span - 1, excess) + new_span = span - reduce_by + if new_span == 1: + if 'colspan' in cell.attrs: + del cell['colspan'] + else: + cell['colspan'] = str(new_span) + excess -= reduce_by + modified = True + + if modified: + return str(soup) + return html + except Exception as e: + logger.debug(f"Failed to normalize table colspans: {e}") + return html + + def _handle_text_elements( + self, + element: BaseOxmlElement, + ): + """ + 处理文本元素。 + + Args: + element: 元素对象 + doc: DoclingDocument 对象 + + Returns: + + """ + is_section_end = False + if element.find(".//w:sectPr", namespaces=DocxConverter._BLIP_NAMESPACES) is not None: + # 如果没有text内容 + if element.text == "": + self.cur_page = [] + self.pages.append(self.cur_page) + else: + # 标记本节结束,处理完文本之后再分节 + is_section_end = True + paragraph = Paragraph(element, self.docx_obj) + paragraph_elements = self._get_paragraph_elements(paragraph) + paragraph_text = self._get_paragraph_text(paragraph) + paragraph_anchor = self._extract_paragraph_bookmark(element) + text, equations = self._handle_equations_in_text( + element=element, text=paragraph_text + ) + + if text is None: + return None + text = text.strip() + + # 常见的项目符号和编号列表样式。 + # "List Bullet", "List Number", "List Paragraph" + # 识别列表是否为编号列表 + p_style_id, p_level = self._get_label_and_level(paragraph) + numid, ilevel = self._get_numId_and_ilvl(paragraph) + + if numid == 0: + numid = None + + # 处理列表 + if ( + numid is not None + and ilevel is not None + and p_style_id not in ["Title", "Heading"] + ): + # 通过检查 numFmt 来确认这是否实际上是编号列表 + is_numbered = self._is_numbered_list(numid, ilevel) + + if numid in self.heading_list_numids: + # 该列表被用作章节标题(列表项间穿插了正文内容),直接转换为title block + # 先关闭任何活跃的普通列表 + if self.pre_num_id != -1: + self.pre_num_id = -1 + self.pre_ilevel = -1 + self.list_block_stack = [] + self.list_counters = {} + content_text = self._build_text_with_equations_and_hyperlinks( + paragraph_elements, text, equations + ) + if content_text: + title_block = { + "type": BlockType.TITLE, + "level": ilevel + 1, + "is_numbered_style": is_numbered, + "content": content_text, + } + if paragraph_anchor: + title_block["anchor"] = paragraph_anchor + self.cur_page.append(title_block) + else: + self._add_list_item( + numid=numid, + ilevel=ilevel, + elements=paragraph_elements, + is_numbered=is_numbered, + text=text, + equations=equations, + ) + # 列表项已处理,返回 + return None + elif ( # 列表结束处理 + numid is None + and self.pre_num_id != -1 + and p_style_id not in ["Title", "Heading"] + ): # 关闭列表 + # 重置列表状态 + self.pre_num_id = -1 + self.pre_ilevel = -1 + self.list_block_stack = [] + self.list_counters = {} + + if p_style_id in ["Title"]: + # 构建包含公式和超链接的文本 + content_text = self._build_text_with_equations_and_hyperlinks( + paragraph_elements, text, equations + ) + if content_text != "": + title_block = { + "type": BlockType.TITLE, + "level": 1, + "is_numbered_style": False, + "content": content_text, + } + if paragraph_anchor: + title_block["anchor"] = paragraph_anchor + self.cur_page.append(title_block) + + elif "Heading" in p_style_id: + style_element = getattr(paragraph.style, "element", None) + if style_element is not None: + is_numbered_style = ( + "" in style_element.xml or "" in element.xml + ) + else: + is_numbered_style = False + # 构建包含公式和超链接的文本 + content_text = self._build_text_with_equations_and_hyperlinks( + paragraph_elements, text, equations + ) + if content_text != "": + h_block = { + "type": BlockType.TITLE, + "level": p_level if p_level is not None else 2, + "is_numbered_style": is_numbered_style, + "content": content_text, + } + if paragraph_anchor: + h_block["anchor"] = paragraph_anchor + self.cur_page.append(h_block) + + elif len(equations) > 0: + if (paragraph_text is None or len(paragraph_text.strip()) == 0) and len( + text + ) > 0: + # 独立公式 + eq_block = { + "type": BlockType.EQUATION, + "content": text.replace("", "").replace("", ""), + } + self.cur_page.append(eq_block) + else: + # 包含行内公式的文本块,同时支持超链接 + content_text = self._build_text_with_equations_and_hyperlinks( + paragraph_elements, text, equations + ) + text_with_inline_eq_block = { + "type": BlockType.TEXT, + "content": content_text, + } + if paragraph_anchor: + text_with_inline_eq_block["anchor"] = paragraph_anchor + self.cur_page.append(text_with_inline_eq_block) + elif p_style_id in [ + "Paragraph", + "Normal", + "Subtitle", + "Author", + "DefaultText", + "ListParagraph", + "ListBullet", + "Quote", + ]: + # 构建包含公式和超链接的文本 + content_text = self._build_text_with_equations_and_hyperlinks( + paragraph_elements, text, equations + ) + if content_text != "": + text_block = { + "type": BlockType.TEXT, + "content": content_text, + } + if paragraph_anchor: + text_block["anchor"] = paragraph_anchor + self.cur_page.append(text_block) + # 判断是否是 Caption + elif self._is_caption(element): + # 构建包含公式和超链接的文本 + content_text = self._build_text_with_equations_and_hyperlinks( + paragraph_elements, text, equations + ) + if content_text != "": + caption_block = { + "type": BlockType.CAPTION, + "content": content_text, + } + self.cur_page.append(caption_block) + else: + # 文本样式名称不仅有默认值,还可能有用户自定义值 + # 因此我们将所有其他标签视为纯文本 + # 构建包含公式和超链接的文本 + content_text = self._build_text_with_equations_and_hyperlinks( + paragraph_elements, text, equations + ) + if content_text != "": + text_block = { + "type": BlockType.TEXT, + "content": content_text, + } + if paragraph_anchor: + text_block["anchor"] = paragraph_anchor + self.cur_page.append(text_block) + + if is_section_end: + self.cur_page = [] + self.pages.append(self.cur_page) + + def _handle_pictures(self, drawing_blip: Any): + """ + 处理图片。 + + Args: + drawing_blip: 绘图 blip 对象 + + Returns: + + """ + + def get_docx_image(image: Any) -> Optional[bytes]: + """ + 获取 DOCX 图像数据。 + + Args: + image: 单个 blip 元素 + + Returns: + + Optional[bytes]: 图像数据 + """ + image_data: Optional[bytes] = None + rId = image.get( + "{http://schemas.openxmlformats.org/officeDocument/2006/relationships}embed" + ) + if rId in self.docx_obj.part.rels: + # 使用关系 ID 访问图像部分 + image_part = self.docx_obj.part.rels[rId].target_part + image_data = image_part.blob # 获取二进制图像数据 + return image_data + + # 遍历所有 blip 元素,支持 group images(多个 blip) + for image in drawing_blip: + image_data: Optional[bytes] = get_docx_image(image) + if image_data is None: + logger.warning("Warning: image cannot be found") + else: + image_bytes = BytesIO(image_data) + pil_image = Image.open(image_bytes) + if is_vector_image(pil_image): + img_base64 = serialize_vector_image_with_placeholder(pil_image) + else: + # 处理常规图片 + if pil_image.mode != "RGB": + # RGBA, P, L 等模式保留原貌并存为 PNG (PNG支持透明度) + img_base64 = image_to_b64str(pil_image, image_format="PNG") + else: + # 纯 RGB 图片存为 JPEG 以减小体积 + img_base64 = image_to_b64str(pil_image, image_format="JPEG") + image_block = { + "type": BlockType.IMAGE, + "content": img_base64, + } + self.cur_page.append(image_block) + + def _get_paragraph_elements(self, paragraph: Paragraph): + """ + 提取段落元素及其格式和超链接信息。 + + Args: + paragraph: 段落对象 + + Returns: + list[tuple[str, Optional[Formatting], Optional[Union[AnyUrl, Path, str]]]]: + 段落元素列表,每个元素包含文本、格式和超链接信息 + """ + + inner_contents = list(self._iter_paragraph_inner_content(paragraph)) + paragraph_text = self._get_paragraph_text_from_contents(inner_contents) + + # 目前保留空段落以保持向后兼容性: + if paragraph_text.strip() == "": + # 检查是否存在带可见样式(下划线或删除线)的空白文本 run。 + # 有可见样式的空白文本(如带下划线的空格)在视觉上是可见的,应予保留, + # 因此跳过提前返回,交由后续完整 run 处理流程处理。 + has_visible_style_run = any( + isinstance(c, Run) and c.text and self._has_visible_style(self._get_format_from_run(c)) + for c in inner_contents + ) + if not has_visible_style_run: + return [("", None, None)] + + paragraph_elements: list[ + tuple[str, Optional[Formatting], Optional[Union[AnyUrl, Path, str]]] + ] = [] + group_text = "" + previous_format = None + + # 字段代码超链接内联检测状态(处理 w:fldChar + w:instrText 形式的超链接) + _W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main" + _field_in = False # 当前是否在字段域内 + _field_url = None # 当前字段域解析出的 URL + _field_phase = None # 'instr' 或 'result' + _field_acc_text = "" # 累积的显示文本 + _field_acc_format = None # 首个显示 run 的格式 + + # 遍历段落的 runs 并按格式分组 + for c in inner_contents: + if isinstance(c, Hyperlink): + # 若地址为 URL(含 ://),直接保留字符串,避免 Path 将 // 规范化为 / + address = c.address + if address and "://" in address: + hyperlink = address + else: + hyperlink = Path(address) if address else Path(".") + # Hyperlink 内可能包含多个 run(且样式不同,如 TOC 项中的删除线/斜体)。 + # 按 run 粒度展开,避免只取首个 run 导致样式丢失。 + if c.runs and len(c.runs) > 0: + # 先落盘当前累积的普通文本分组 + prev_has_visible = len(group_text.strip()) > 0 or ( + group_text and self._has_visible_style(previous_format) + ) + if prev_has_visible: + paragraph_elements.append((group_text, previous_format, None)) + group_text = "" + + for h_run in c.runs: + # Skip hidden runs in hyperlinks, especially TOC page-number fields. + if self._is_hidden_run(h_run): + continue + h_text = h_run.text or "" + h_format = self._get_format_from_run(h_run) + # 保留非空文本(含制表符)以及带可见样式的空白 run + if h_text != "" or self._has_visible_style(h_format): + paragraph_elements.append((h_text, h_format, hyperlink)) + # 保持 previous_format 为最近的普通文本格式,不跨越超链接合并 + continue + else: + text = c.text + format = None + elif isinstance(c, Run): + # ---- 字段代码超链接内联检测 ---- + fld_char = c._element.find(f"{{{_W_NS}}}fldChar") + if fld_char is not None: + fld_type = fld_char.get(f"{{{_W_NS}}}fldCharType") + if fld_type == "begin": + _field_in = True + _field_url = None + _field_phase = "instr" + _field_acc_text = "" + _field_acc_format = None + continue + elif fld_type == "separate": + _field_phase = "result" + continue + elif fld_type == "end": + if _field_url and _field_acc_text.strip(): + # 将累积的字段代码超链接作为一个整体处理 + text = _field_acc_text + hyperlink = _field_url + format = _field_acc_format + elif _field_acc_text.strip(): + # 非超链接字段(如 SEQ 序号字段),将累积的显示文本作为普通文本处理 + text = _field_acc_text + hyperlink = None + format = _field_acc_format + else: + _field_in = False + _field_url = None + _field_phase = None + _field_acc_text = "" + _field_acc_format = None + continue + _field_in = False + _field_url = None + _field_phase = None + _field_acc_text = "" + _field_acc_format = None + # 继续执行下方的 hyperlink 统一处理逻辑 + else: + continue + else: + instr_elem = c._element.find(f"{{{_W_NS}}}instrText") + if instr_elem is not None and _field_phase == "instr": + # 捕获 HYPERLINK 指令中的 URL + if instr_elem.text: + m = re.search(r'HYPERLINK\s+"([^"]+)"', instr_elem.text) + if m: + _field_url = m.group(1) + continue + + if _field_in and _field_phase == "result": + # 显示文本 run:累积到字段文本 + t_elem = c._element.find(f"{{{_W_NS}}}t") + if t_elem is not None: + _field_acc_text += c.text + if _field_acc_format is None: + _field_acc_format = self._get_format_from_run(c) + continue + + # 普通 run + text = c.text + hyperlink = None + format = self._get_format_from_run(c) + else: + continue + + # 当新 run 有可见内容(非空或带可见样式的空白)且格式变化时触发分组 + has_visible_content = len(text.strip()) > 0 or self._has_visible_style(format) + if (has_visible_content and format != previous_format) or ( + hyperlink is not None + ): + # 前一组有实质内容(非空或带可见样式的空白)时才保存 + prev_has_visible = len(group_text.strip()) > 0 or ( + group_text and self._has_visible_style(previous_format) + ) + if prev_has_visible: + paragraph_elements.append( + (group_text, previous_format, None) + ) + group_text = "" + + # 如果有超链接,则立即添加 + if hyperlink is not None: + paragraph_elements.append((text.strip(), format, hyperlink)) + text = "" + else: + previous_format = format + + group_text += text + + # 格式化最后一个组 + # 注意:使用 previous_format(当前累积组的格式),而非 format(最后一次循环迭代的格式)。 + # 最后一次迭代可能是无样式的空 run,若使用 format 会导致样式丢失。 + last_has_visible = len(group_text.strip()) > 0 or ( + group_text and self._has_visible_style(previous_format) + ) + if last_has_visible: + paragraph_elements.append((group_text, previous_format, None)) + + return paragraph_elements + + def _iter_paragraph_inner_content( + self, + paragraph: Paragraph, + container: Optional[BaseOxmlElement] = None, + ) -> Iterator[Union[Run, Hyperlink]]: + """Yield visible paragraph inline containers in document order. + + python-docx only walks direct ``w:r`` and ``w:hyperlink`` children of ``w:p``. + Inline ``w:sdt`` content controls are skipped entirely, which drops their text + from both ``paragraph.text`` and ``paragraph.iter_inner_content()``. This walker + treats ``w:sdt`` and a few transparent wrapper nodes as pass-through containers + and reuses the existing Run/Hyperlink wrappers for the actual visible content. + """ + if container is None: + container = paragraph._element + + _W_NS = "http://schemas.openxmlformats.org/wordprocessingml/2006/main" + + for child in container: + tag_name = etree.QName(child).localname + + if tag_name == "r": + yield Run(child, paragraph) + elif tag_name == "hyperlink": + yield Hyperlink(child, paragraph) + elif tag_name == "sdt": + sdt_content = child.find(f"{{{_W_NS}}}sdtContent") + if sdt_content is not None: + yield from self._iter_paragraph_inner_content(paragraph, sdt_content) + elif tag_name in self._PARAGRAPH_TRANSPARENT_INLINE_CONTAINERS: + yield from self._iter_paragraph_inner_content(paragraph, child) + + @staticmethod + def _get_paragraph_text_from_contents( + inner_contents: list[Union[Run, Hyperlink]], + ) -> str: + """Rebuild paragraph plain text from visible inline containers.""" + return "".join(content.text or "" for content in inner_contents) + + def _get_paragraph_text(self, paragraph: Paragraph) -> str: + """Return paragraph plain text, including inline ``w:sdt`` content.""" + return self._get_paragraph_text_from_contents( + list(self._iter_paragraph_inner_content(paragraph)) + ) + + @classmethod + def _resolve_style_chain_bool( + cls, + style_obj, + attr_name: str, + ) -> Optional[bool]: + """从样式继承链中解析布尔字体属性。""" + style = style_obj + while style is not None: + font = getattr(style, "font", None) + if font is not None: + if attr_name == "underline": + value = font.underline + elif attr_name == "strikethrough": + value = font.strike + else: + value = getattr(font, attr_name, None) + if value is not None: + return bool(value) + style = getattr(style, "base_style", None) + return None + + @classmethod + def _resolve_run_bool_with_inheritance( + cls, + run: Run, + attr_name: str, + ) -> bool: + """解析 run 的字体属性,支持 run/字符样式/段落样式继承。""" + if attr_name == "underline": + direct_value = run.underline + elif attr_name == "strikethrough": + direct_value = run.font.strike + else: + direct_value = getattr(run, attr_name, None) + + if direct_value is not None: + return bool(direct_value) + + # 先看 run 级字符样式链(跳过 Hyperlink 默认字符样式,避免把默认下划线 + # 误当作正文强调样式注入到解析结果中) + run_style = getattr(run, "style", None) + run_style_id = str(getattr(run_style, "style_id", "") or "").lower() + run_style_name = str(getattr(run_style, "name", "") or "").lower() + is_hyperlink_style = ( + run_style_id == "hyperlink" or "hyperlink" in run_style_name + ) + if not is_hyperlink_style: + inherited = cls._resolve_style_chain_bool(run_style, attr_name) + if inherited is not None: + return inherited + + # 再看所在段落样式链 + parent = getattr(run, "_parent", None) + inherited = cls._resolve_style_chain_bool(getattr(parent, "style", None), attr_name) + if inherited is not None: + return inherited + + return False + + @classmethod + def _get_format_from_run(cls, run: Run) -> Optional[Formatting]: + """ + 从 Run 对象获取格式信息。 + + Args: + run: Run 对象 + + Returns: + Optional[Formatting]: 格式对象 + """ + is_bold = cls._resolve_run_bool_with_inheritance(run, "bold") + is_italic = cls._resolve_run_bool_with_inheritance(run, "italic") + is_strikethrough = cls._resolve_run_bool_with_inheritance(run, "strikethrough") + is_underline = cls._resolve_run_bool_with_inheritance(run, "underline") + + # 检测着重符号 (w:em):若存在非 none 的 em 值,则视为下划线样式 + _W = "http://schemas.openxmlformats.org/wordprocessingml/2006/main" + rPr = run._element.find(f'{{{_W}}}rPr') + if rPr is not None: + em = rPr.find(f'{{{_W}}}em') + if em is not None: + em_val = em.get(f'{{{_W}}}val', '') + if em_val and em_val != 'none': + is_underline = True + + is_sub = run.font.subscript or False + is_sup = run.font.superscript or False + script = Script.SUB if is_sub else Script.SUPER if is_sup else Script.BASELINE + + return Formatting( + bold=is_bold, + italic=is_italic, + underline=is_underline, + strikethrough=is_strikethrough, + script=script, + ) + + def _handle_equations_in_text(self, element, text): + """ + 处理文本中的公式。 + + Args: + element: 元素对象 + text: 文本内容 + + Returns: + tuple: (处理后的文本, 公式列表) + """ + only_texts = [] + only_equations = [] + texts_and_equations = [] + for subt in element.iter(): + tag_name = etree.QName(subt).localname + if tag_name == "t" and "math" not in subt.tag: + if isinstance(subt.text, str): + only_texts.append(subt.text) + texts_and_equations.append(subt.text) + elif "oMath" in subt.tag and "oMathPara" not in subt.tag: + latex_equation = str(oMath2Latex(subt)).strip() + if len(latex_equation) > 0: + only_equations.append( + self.equation_bookends.format(EQ=latex_equation) + ) + texts_and_equations.append( + self.equation_bookends.format(EQ=latex_equation) + ) + + if len(only_equations) < 1: + return text, [] + + if ( + re.sub(r"\s+", "", "".join(only_texts)).strip() + != re.sub(r"\s+", "", text).strip() + ): + # 如果我们无法重构初始原始文本 + # 不要尝试解析公式并返回原始文本 + return text, [] + + # 将公式插入原始文本中 + # 这样做是为了保持空白结构 + output_text = text[:] + init_i = 0 + for i_substr, substr in enumerate(texts_and_equations): + if len(substr) == 0: + continue + + if substr in output_text[init_i:]: + init_i += output_text[init_i:].find(substr) + len(substr) + else: + if i_substr > 0: + output_text = output_text[:init_i] + substr + output_text[init_i:] + init_i += len(substr) + else: + output_text = substr + output_text + + return output_text, only_equations + + def _get_label_and_level(self, paragraph: Paragraph) -> tuple[str, Optional[int]]: + """ + 获取段落的标签和层级。 + + Args: + paragraph: 段落对象 + + Returns: + tuple[str, Optional[int]]: (标签, 层级) 元组 + """ + if paragraph.style is None: + return "Normal", None + + label = paragraph.style.style_id + name = paragraph.style.name + + if label is None: + return "Normal", None + + for style in self._iter_style_chain(paragraph.style): + style_label = getattr(style, "style_id", None) + style_name = getattr(style, "name", None) + + if style_label and ":" in style_label: + parts = style_label.split(":") + if len(parts) == 2: + return parts[0], self._str_to_int(parts[1], None) + + for candidate in (style_label, style_name): + if candidate and "heading" in candidate.lower(): + return self._get_heading_and_level(candidate) + + outline_level = self._get_effective_outline_level(paragraph) + if outline_level is not None: + return "Heading", outline_level + 1 + + return name, None + + def _iter_style_chain(self, style: Any) -> Iterator[Any]: + """Yield a style and its base-style chain once each.""" + seen: set[int] = set() + current = style + while current is not None: + current_id = id(current) + if current_id in seen: + break + seen.add(current_id) + yield current + current = getattr(current, "base_style", None) + + def _get_paragraph_property_child( + self, xml_element: Optional[BaseOxmlElement], child_tag: str + ) -> Optional[BaseOxmlElement]: + """Read a direct child from w:pPr without matching nested descendants.""" + if xml_element is None: + return None + + namespaces = getattr(xml_element, "nsmap", None) or DocxConverter._BLIP_NAMESPACES + pPr = xml_element.find("w:pPr", namespaces=namespaces) + if pPr is None: + return None + return pPr.find(child_tag, namespaces=namespaces) + + def _get_effective_numPr( + self, paragraph: Paragraph + ) -> Optional[BaseOxmlElement]: + """Resolve paragraph numbering from direct properties, then style inheritance.""" + numPr = self._get_paragraph_property_child(paragraph._element, "w:numPr") + if numPr is not None: + return numPr + + for style in self._iter_style_chain(getattr(paragraph, "style", None)): + style_element = getattr(style, "element", None) + numPr = self._get_paragraph_property_child(style_element, "w:numPr") + if numPr is not None: + return numPr + + return None + + def _get_effective_outline_level(self, paragraph: Paragraph) -> Optional[int]: + """Resolve outline level from paragraph properties or inherited styles.""" + outline_lvl = self._get_paragraph_property_child( + paragraph._element, "w:outlineLvl" + ) + if outline_lvl is None: + for style in self._iter_style_chain(getattr(paragraph, "style", None)): + style_element = getattr(style, "element", None) + outline_lvl = self._get_paragraph_property_child( + style_element, "w:outlineLvl" + ) + if outline_lvl is not None: + break + + if outline_lvl is None: + return None + + return self._str_to_int(outline_lvl.get(self.XML_KEY), None) + + def _get_numId_and_ilvl( + self, paragraph: Paragraph + ) -> tuple[Optional[int], Optional[int]]: + """ + 获取段落的列表编号ID和层级。 + + Args: + paragraph: 段落对象 + + Returns: + tuple[Optional[int], Optional[int]]: (numId, ilvl) 元组 + """ + numPr = self._get_effective_numPr(paragraph) + + if numPr is not None: + # 获取 numId 元素并提取值 + namespaces = getattr(numPr, "nsmap", None) or DocxConverter._BLIP_NAMESPACES + numId_elem = numPr.find("w:numId", namespaces=namespaces) + ilvl_elem = numPr.find("w:ilvl", namespaces=namespaces) + numId = numId_elem.get(self.XML_KEY) if numId_elem is not None else None + ilvl = ilvl_elem.get(self.XML_KEY) if ilvl_elem is not None else None + + return self._str_to_int(numId, None), self._str_to_int(ilvl, None) + + return None, None # 如果段落不是列表的一部分 + + def _get_numbering_root(self) -> Optional[BaseOxmlElement]: + """Load and cache word/numbering.xml once per conversion.""" + if self._numbering_root_loaded: + return self._numbering_root + + self._numbering_root_loaded = True + + if not hasattr(self.docx_obj, "part") or not hasattr(self.docx_obj.part, "package"): + return None + + for part in self.docx_obj.part.package.parts: + if "numbering" in part.partname: + self._numbering_root = part.element + break + + return self._numbering_root + + def _get_numbering_level_definition( + self, numId: int, ilvl: int + ) -> Optional[BaseOxmlElement]: + """Resolve and cache the numbering level definition for a numId/ilvl pair.""" + cache_key = (numId, ilvl) + if cache_key in self._numbering_level_cache: + return self._numbering_level_cache[cache_key] + + numbering_root = self._get_numbering_root() + namespaces = { + "w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main" + } + lvl_element: Optional[BaseOxmlElement] = None + + if numbering_root is not None: + num_xpath = f".//w:num[@w:numId='{numId}']" + num_element = numbering_root.find(num_xpath, namespaces=namespaces) + + if num_element is not None: + abstract_num_id_elem = num_element.find( + ".//w:abstractNumId", namespaces=namespaces + ) + if abstract_num_id_elem is not None: + abstract_num_id = abstract_num_id_elem.get(self.XML_KEY) + if abstract_num_id is not None: + abstract_num_xpath = ( + f".//w:abstractNum[@w:abstractNumId='{abstract_num_id}']" + ) + abstract_num_element = numbering_root.find( + abstract_num_xpath, namespaces=namespaces + ) + if abstract_num_element is not None: + lvl_xpath = f".//w:lvl[@w:ilvl='{ilvl}']" + lvl_element = abstract_num_element.find( + lvl_xpath, namespaces=namespaces + ) + + self._numbering_level_cache[cache_key] = lvl_element + return lvl_element + + def _is_numbered_list(self, numId: int, ilvl: int) -> bool: + """ + 根据 numFmt 值检查列表是否为编号列表。 + + Args: + numId: 列表编号ID + ilvl: 列表层级 + + Returns: + bool: 如果是编号列表返回 True,否则返回 False + """ + try: + lvl_element = self._get_numbering_level_definition(numId, ilvl) + if lvl_element is None: + return False + namespaces = { + "w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main" + } + + # 获取 numFmt 元素 + num_fmt_element = lvl_element.find(".//w:numFmt", namespaces=namespaces) + if num_fmt_element is None: + return False + + num_fmt = num_fmt_element.get( + "{http://schemas.openxmlformats.org/wordprocessingml/2006/main}val" + ) + + # 编号格式包括: decimal, lowerRoman, upperRoman, lowerLetter, upperLetter + # 项目符号格式包括: bullet + numbered_formats = { + "decimal", + "lowerRoman", + "upperRoman", + "lowerLetter", + "upperLetter", + "decimalZero", + } + + return num_fmt in numbered_formats + + except Exception as e: + logger.debug(f"Error determining if list is numbered: {e}") + return False + + def _add_list_item( + self, + *, + numid: int, + ilevel: int, + elements: list, + is_numbered: bool = False, + text: str = "", + equations: list = None, + ) -> list: + """ + 添加列表项。 + + 生成的列表结构: + { + "type": "list", + "attribute": "ordered" / "unordered", + "ilevel": 0, + "content": [ + {"type": "text", "content": "列表项文本"}, + {"type": "list", "attribute": "...", "ilevel": 1, "content": [...]}, + {"type": "text", "content": "另一个列表项"} + ] + } + + Args: + numid: 列表ID + ilevel: 缩进等级 + elements: 元素列表 + is_numbered: 是否编号 + text: 处理后的文本(包含公式标记) + equations: 公式列表 + + Returns: + list[RefItem]: 元素引用列表 + """ + if equations is None: + equations = [] + if not elements: + return None + + # 构建 content_text,处理行内公式和超链接 + content_text = self._build_text_with_equations_and_hyperlinks( + elements, text, equations + ) + + # 确定列表属性 + list_attribute = "ordered" if is_numbered else "unordered" + + # 情况 1: 不存在上一个列表ID,或遇到了不同 numId 的新列表,创建新的顶层列表 + if self.pre_num_id == -1 or self.pre_num_id != numid: + # 切换到不同的列表时,先重置旧列表状态 + if self.pre_num_id != -1: + self.pre_num_id = -1 + self.pre_ilevel = -1 + self.list_block_stack = [] + self.list_counters = {} + # 为新编号序列重置计数器,确保编号从1开始 + self._reset_list_counters_for_new_sequence(numid) + + list_block = { + "type": BlockType.LIST, + "attribute": list_attribute, + "content": [], + "ilevel": ilevel, + } + self.cur_page.append(list_block) + # 入栈, 记录当前的列表块 + self.list_block_stack.append(list_block) + + list_item = { + "type": BlockType.TEXT, + "content": content_text, + } + + list_block["content"].append(list_item) + self.pre_num_id = numid + self.pre_ilevel = ilevel + + # 情况 2: 增加缩进,打开子列表 + elif ( + self.pre_num_id == numid # 同一个列表 + and self.pre_ilevel != -1 # 上一个缩进级别已知 + and self.pre_ilevel < ilevel # 当前层级比之前更缩进 + ): + # 创建新的子列表块 + child_list_block = { + "type": BlockType.LIST, + "attribute": list_attribute, + "content": [], + "ilevel": ilevel, + } + + # 获取栈顶的列表块,将子列表直接添加到其content中 + parent_list_block = self.list_block_stack[-1] + parent_list_block["content"].append(child_list_block) + + # 入栈, 记录当前的列表块 + self.list_block_stack.append(child_list_block) + + # 添加当前列表项到子列表 + list_item = { + "type": BlockType.TEXT, + "content": content_text, + } + child_list_block["content"].append(list_item) + + # 更新目前缩进 + self.pre_ilevel = ilevel + + # 情况3: 减少缩进,关闭子列表 + elif ( + self.pre_num_id == numid # 同一个列表 + and self.pre_ilevel != -1 # 上一个缩进级别已知 + and ilevel < self.pre_ilevel # 当前层级比之前更少缩进 + ): + # 出栈,直到找到匹配的 ilevel + while self.list_block_stack: + top_list_block = self.list_block_stack[-1] + if top_list_block["ilevel"] == ilevel: + break + self.list_block_stack.pop() + list_block = self.list_block_stack[-1] + + list_item = { + "type": BlockType.TEXT, + "content": content_text, + } + list_block["content"].append(list_item) + self.pre_ilevel = ilevel + + # 情况 4: 同级列表项(相同缩进) + elif self.pre_num_id == numid and self.pre_ilevel == ilevel: + # 获取栈顶的列表块 + list_block = self.list_block_stack[-1] + + + list_item = { + "type": BlockType.TEXT, + "content": content_text, + } + list_block["content"].append(list_item) + + else: + logger.warning( + "Unexpected DOCX list state in _add_list_item: " + f"pre_num_id={self.pre_num_id}, numid={numid}, " + f"pre_ilevel={self.pre_ilevel}, ilevel={ilevel}, " + f"stack_depth={len(self.list_block_stack)}. " + ) + + def _detect_heading_list_numids(self) -> set: + """ + 预扫描文档,检测用作章节标题的列表numId。 + + 判断依据(需同时满足两个条件): + 1. 该numId的列表项之间穿插了非列表的正文内容(段落/表格等); + 2. 该numId的列表项出现在**多个不同的缩进层级**(ilevel > 1种), + 即为真正的多级列表结构,而非普通的单级内容条目列表。 + + 这样可以避免将"多段内容条目之间穿插了小标签"的单级列表误判为标题列表。 + + Returns: + set: 应当转换为标题块的列表numId集合 + """ + heading_numids = set() + # 收集文档元素序列:("list", numid, ilevel) 或 ("content",) + items = [] + # 记录每个numId出现过的所有ilevel,用于判断是否为真正的多级列表 + numid_ilvels: dict[int, set] = {} + + for element in self.docx_obj.element.body: + tag_name = etree.QName(element).localname + if tag_name == "p": + try: + paragraph = Paragraph(element, self.docx_obj) + p_style_id, _ = self._get_label_and_level(paragraph) + numid, ilevel = self._get_numId_and_ilvl(paragraph) + if numid == 0: + numid = None + text = self._get_paragraph_text(paragraph).strip() + except Exception: + continue + + if ( + numid is not None + and ilevel is not None + and p_style_id not in ["Title", "Heading"] + and text + ): + items.append(("list", numid, ilevel)) + if numid not in numid_ilvels: + numid_ilvels[numid] = set() + numid_ilvels[numid].add(ilevel) + elif p_style_id not in ["Title", "Heading"] and text: + items.append(("content", None, None)) + elif tag_name == "tbl": + items.append(("content", None, None)) + + # 对每个numId,检测其列表项之间是否有正文内容穿插 + # seen_numids[numid] = True 表示该numId的最后一个列表项之后出现了正文内容 + seen_numids: dict[int, bool] = {} + + for item_type, numid, ilevel in items: + if item_type == "list": + if numid in seen_numids and seen_numids[numid]: + # 上次列表项之后出现了正文内容,满足条件1 + heading_numids.add(numid) + seen_numids[numid] = False # 重置:记录该numId出现了新列表项 + elif item_type == "content": + # 将所有已见numId标记为"之后出现了正文内容" + for nid in seen_numids: + seen_numids[nid] = True + + # 条件2:只保留真正的多级列表(出现过多于1种ilevel的numId) + # 单级列表(如只有ilevel=0的内容条目列表)即使有正文段落穿插也不应转换为标题 + heading_numids = { + nid for nid in heading_numids + if len(numid_ilvels.get(nid, set())) > 1 + } + + if heading_numids: + logger.debug( + f"Detected heading-style list numIds (will convert to title blocks): {heading_numids}" + ) + + return heading_numids + + def _reset_list_counters_for_new_sequence(self, numid: int): + """ + 开始新的编号序列时重置计数器。 + + Args: + numid: 列表编号ID + """ + keys_to_reset = [key for key in self.list_counters.keys() if key[0] == numid] + for key in keys_to_reset: + self.list_counters[key] = 0 + + def _is_toc_sdt(self, element: BaseOxmlElement) -> bool: + """ + 检测SDT元素是否为目录(Table of Contents)。 + + 检测策略: + 1. 检查 w:sdtPr 中的 docPartGallery 或 tag 元素 + 2. 回退到检查内容中的段落样式是否为 "TOC N" 格式 + + Args: + element: SDT XML元素 + + Returns: + bool: 如果是目录SDT返回 True,否则返回 False + """ + # 方法1: 检查 w:sdtPr 中的 docPartGallery + sdt_pr = element.find("w:sdtPr", namespaces=DocxConverter._BLIP_NAMESPACES) + if sdt_pr is not None: + doc_part_gallery = sdt_pr.find( + ".//w:docPartGallery", namespaces=DocxConverter._BLIP_NAMESPACES + ) + if doc_part_gallery is not None: + val = doc_part_gallery.get(self.XML_KEY, "") + if "Table of Contents" in val or "toc" in val.lower(): + return True + + # 检查 tag 元素的值 + tag_elem = sdt_pr.find("w:tag", namespaces=DocxConverter._BLIP_NAMESPACES) + if tag_elem is not None: + val = tag_elem.get(self.XML_KEY, "").lower().replace(" ", "") + if "toc" in val or "contents" in val or "tableofcontents" in val: + return True + + # 方法2: 检查内容段落的样式是否为 "TOC N" 格式 + sdt_content = element.find( + "w:sdtContent", namespaces=DocxConverter._BLIP_NAMESPACES + ) + if sdt_content is not None: + paragraphs = sdt_content.findall( + "w:p", namespaces=DocxConverter._BLIP_NAMESPACES + ) + for p in paragraphs[:5]: # 只检查前5个段落即可判断 + try: + p_obj = Paragraph(p, self.docx_obj) + if p_obj.style and p_obj.style.name: + style_name = p_obj.style.name + if re.match(r'^TOC\s*\d+$', style_name, re.IGNORECASE) or \ + re.match(r'^目录\s*\d+$', style_name): + return True + except Exception: + continue + + return False + + def _get_toc_item_level(self, paragraph: Paragraph) -> Optional[int]: + """ + 从段落样式中获取目录项的层级(0-based)。 + + "TOC 1" -> 0 + "TOC 2" -> 1 + "目录 1" -> 0 + + Args: + paragraph: 段落对象 + + Returns: + Optional[int]: 层级(0-based),如果不是目录样式则返回 None + """ + if paragraph.style is None: + return None + style_name = paragraph.style.name + if style_name: + match = re.match(r'^(?:TOC|目录)\s*(\d+)$', style_name, re.IGNORECASE) + if match: + level = int(match.group(1)) + return level - 1 # 转换为 0-based + return None + + def _is_flat_list_toc( + self, items: list[tuple[int, str, list, list, Optional[str]]] + ) -> bool: + """ + 检测目录是否为扁平列表(插图清单、列表清单等), + 这类目录的所有条目应在同一层级,不应嵌套。 + + 策略:检查是否超过 50% 的条目以"图"或"表"开头。 + """ + match_count = 0 + total_count = 0 + for _level, text, _elements, _equations, _anchor in items: + stripped = text.strip() + if not stripped: + continue + total_count += 1 + if re.match(r'^[图表][\d\s.]', stripped) or re.match( + r'^(Figure|Table)\s+\d', stripped, re.IGNORECASE + ): + match_count += 1 + if total_count == 0: + return False + return match_count / total_count > 0.5 + + def _correct_toc_level_by_text(self, toc_level: int, text: str) -> int: + """ + 通过文本中的编号深度修正目录项的层级。 + + 仅对 toc_level > 0 的条目进行修正,避免影响顶层章节标题。 + 例如: + - "1.1 LYSO..." (toc 3 → ilevel=2) → text depth 2 → 返回 1 + - "1.1.1 LYSO..." (toc 3 → ilevel=2) → text depth 3 → 返回 2 + - "本章小结" (toc 1 → ilevel=0) → 返回 0(不修正) + """ + if toc_level == 0: + return 0 + stripped = text.strip() + match = re.match(r'^(\d+(?:\.\d+)*)', stripped) + if match: + parts = match.group(1).split('.') + # "1.1" -> 2 parts -> level 1; "1.1.1" -> 3 parts -> level 2 + return len(parts) - 1 + return toc_level + + def _add_index_item( + self, + *, + ilevel: int, + elements: list, + text: str = "", + equations: list = None, + anchor: Optional[str] = None, + ) -> None: + """ + 添加目录项到索引块。 + + 生成的索引结构: + { + "type": "index", + "ilevel": 0, + "content": [ + {"type": "text", "content": "目录项文本"}, + {"type": "index", "ilevel": 1, "content": [...]}, + ] + } + + Args: + ilevel: 缩进等级(0-based) + elements: 元素列表 + text: 处理后的文本(包含公式标记) + equations: 公式列表 + """ + if equations is None: + equations = [] + if not elements: + return + + content_text = self._build_text_with_equations_and_hyperlinks( + elements, text, equations + ) + + # 情况 1: 首个目录项,创建新的顶层索引块 + if self.pre_index_ilevel == -1: + index_block = { + "type": BlockType.INDEX, + "content": [], + "ilevel": ilevel, + } + self.cur_page.append(index_block) + self.index_block_stack.append(index_block) + + index_item = { + "type": BlockType.TEXT, + "content": content_text, + } + if anchor: + index_item["anchor"] = anchor + index_block["content"].append(index_item) + self.pre_index_ilevel = ilevel + + # 情况 2: 增加缩进,打开子索引块 + elif self.pre_index_ilevel < ilevel: + child_index_block = { + "type": BlockType.INDEX, + "content": [], + "ilevel": ilevel, + } + parent_index_block = self.index_block_stack[-1] + parent_index_block["content"].append(child_index_block) + self.index_block_stack.append(child_index_block) + + index_item = { + "type": BlockType.TEXT, + "content": content_text, + } + if anchor: + index_item["anchor"] = anchor + child_index_block["content"].append(index_item) + self.pre_index_ilevel = ilevel + + # 情况 3: 减少缩进,关闭子索引块 + elif ilevel < self.pre_index_ilevel: + while self.index_block_stack: + top_block = self.index_block_stack[-1] + if top_block["ilevel"] == ilevel: + break + self.index_block_stack.pop() + if self.index_block_stack: + index_block = self.index_block_stack[-1] + index_item = { + "type": BlockType.TEXT, + "content": content_text, + } + if anchor: + index_item["anchor"] = anchor + index_block["content"].append(index_item) + self.pre_index_ilevel = ilevel + + # 情况 4: 同级目录项 + else: + if self.index_block_stack: + index_block = self.index_block_stack[-1] + index_item = { + "type": BlockType.TEXT, + "content": content_text, + } + if anchor: + index_item["anchor"] = anchor + index_block["content"].append(index_item) + + def _extract_paragraph_bookmark(self, paragraph_element: BaseOxmlElement) -> Optional[str]: + """Extract a bookmark name from a paragraph, prioritizing TOC bookmarks.""" + bookmark_name_attr = ( + "{http://schemas.openxmlformats.org/wordprocessingml/2006/main}name" + ) + names = [] + for bm in paragraph_element.findall( + ".//w:bookmarkStart", namespaces=DocxConverter._BLIP_NAMESPACES + ): + name = bm.get(bookmark_name_attr, "").strip() + if not name: + continue + # skip Word navigation artifacts + if name.startswith("_GoBack"): + continue + names.append(name) + if not names: + return None + toc_names = [name for name in names if name.startswith("_Toc")] + if toc_names: + # Prefer anchors that are actually referenced by TOC hyperlinks. + for name in toc_names: + if name in self.toc_anchor_set: + return name + return toc_names[0] + return names[0] + + def _extract_toc_target_anchor(self, paragraph_element: BaseOxmlElement) -> Optional[str]: + """Extract internal bookmark target from a TOC paragraph hyperlink.""" + anchor_attr = ( + "{http://schemas.openxmlformats.org/wordprocessingml/2006/main}anchor" + ) + anchors = [] + for hl in paragraph_element.findall( + ".//w:hyperlink", namespaces=DocxConverter._BLIP_NAMESPACES + ): + anchor = hl.get(anchor_attr, "").strip() + if anchor: + anchors.append(anchor) + if not anchors: + return None + for anchor in anchors: + if anchor.startswith("_Toc"): + return anchor + return anchors[0] + + def _handle_sdt_as_index(self, sdt_content: BaseOxmlElement) -> None: + """ + 处理目录SDT内容,将其转换为层级化的INDEX块。 + + 两阶段处理: + 1. 收集所有段落及其层级; + 2. 检测目录类型(常规目录 vs 扁平列表),对层级进行修正后写入索引块。 + + Args: + sdt_content: w:sdtContent XML元素 + """ + paragraphs = sdt_content.findall( + ".//w:p", namespaces=DocxConverter._BLIP_NAMESPACES + ) + + # --- 第一阶段:收集所有条目 --- + toc_items: list[tuple[int, str, list, list, Optional[str]]] = [] + for p in paragraphs: + try: + p_obj = Paragraph(p, self.docx_obj) + paragraph_elements = self._get_paragraph_elements(p_obj) + text, equations = self._handle_equations_in_text( + element=p, text=p_obj.text + ) + target_anchor = self._extract_toc_target_anchor(p) + if target_anchor and target_anchor.startswith("_Toc"): + self.toc_anchor_set.add(target_anchor) + if text is None: + continue + text = text.strip() + if not text: + continue + + toc_level = self._get_toc_item_level(p_obj) + if toc_level is None: + toc_level = 0 + + toc_items.append( + (toc_level, text, paragraph_elements, equations, target_anchor) + ) + except Exception as e: + logger.debug(f"Error collecting TOC paragraph: {e}") + continue + + # --- 第二阶段:修正层级并写入索引块 --- + is_flat = self._is_flat_list_toc(toc_items) + + # 重置索引状态,开始新的目录块 + self.index_block_stack = [] + self.pre_index_ilevel = -1 + + for toc_level, text, elements, equations, target_anchor in toc_items: + if is_flat: + # 插图/列表清单:强制全部扁平(层级 0) + corrected_level = 0 + else: + # 常规目录:依据文本编号深度修正层级,解决 docx 跳级问题 + corrected_level = self._correct_toc_level_by_text(toc_level, text) + + self._add_index_item( + ilevel=corrected_level, + elements=elements, + text=text, + equations=equations, + anchor=target_anchor, + ) + + # 处理完成后重置索引状态 + self.index_block_stack = [] + self.pre_index_ilevel = -1 + + def _get_heading_and_level(self, style_label: str) -> tuple[str, Optional[int]]: + """ + 从样式标签获取标题和层级。 + + Args: + style_label: 样式标签 + + Returns: + tuple[str, Optional[int]]: (标签字符串, 层级) 元组 + """ + parts = self._split_text_and_number(style_label) + + if len(parts) == 2: + parts.sort() + label_str: str = "" + label_level: Optional[int] = 0 + if parts[0].strip().lower() == "heading": + label_str = "Heading" + label_level = self._str_to_int(parts[1], None) + if parts[1].strip().lower() == "heading": + label_str = "Heading" + label_level = self._str_to_int(parts[0], None) + return label_str, label_level + + return style_label, None + + def _split_text_and_number(self, input_string: str) -> list[str]: + """ + 分割字符串中的文本和数字部分。 + + Args: + input_string: 输入字符串 + + Returns: + list[str]: 分割后的部分列表 + """ + match = re.match(r"(\D+)(\d+)$|^(\d+)(\D+)", input_string) + if match: + parts = list(filter(None, match.groups())) + return parts + else: + return [input_string] + + def _str_to_int( + self, s: Optional[str], default: Optional[int] = 0 + ) -> Optional[int]: + """ + 将字符串转换为整数。 + + Args: + s: 要转换的字符串 + default: 默认值,转换失败时返回 + + Returns: + Optional[int]: 转换后的整数,转换失败时返回默认值 + """ + if s is None: + return None + try: + return int(s) + except ValueError: + return default + + def _process_header_footer_paragraph(self, paragraph: Paragraph) -> str: + """ + 处理页眉/页脚中的单个段落,支持行内公式和超链接。 + + Args: + paragraph: 段落对象 + + Returns: + str: 处理后的文本内容(包含公式标记和超链接格式) + """ + paragraph_elements = self._get_paragraph_elements(paragraph) + paragraph_text = self._get_paragraph_text(paragraph) + text, equations = self._handle_equations_in_text( + element=paragraph._element, text=paragraph_text + ) + + if text is None: + return "" + + text = text.strip() + if not text: + return "" + + # 构建包含公式和超链接的文本 + content_text = self._build_text_with_equations_and_hyperlinks( + paragraph_elements, text, equations + ) + + return content_text + + def _add_header_footer(self, docx_obj: DocxDocument) -> None: + """ + 处理页眉和页脚,按照分节顺序添加到 pages 列表中,过滤掉空字符串和纯数字内容 + 分为整个文档是否启用奇偶页不同和每一节是否启用首页不同两种情况, + 支持行内公式和超链接,并根据类型去重 + """ + is_odd_even_different = docx_obj.settings.odd_and_even_pages_header_footer + for sec_idx, section in enumerate(docx_obj.sections): + # 用于去重的集合 + added_headers = set() + added_footers = set() + + hdrs = [section.header] + if is_odd_even_different: + hdrs.append(section.even_page_header) + if section.different_first_page_header_footer: + hdrs.append(section.first_page_header) + for hdr in hdrs: + # 处理每个段落,支持公式和超链接 + processed_parts = [] + for par in hdr.paragraphs: + content = self._process_header_footer_paragraph(par) + if content: + processed_parts.append(content) + text = " ".join(processed_parts) + if text != "" and not text.isdigit() and text not in added_headers: + added_headers.add(text) + try: + self.pages[sec_idx].append( + { + "type": BlockType.HEADER, + "content": text, + } + ) + except IndexError: + logger.error("Section index out of range when adding header.") + + ftrs = [section.footer] + if is_odd_even_different: + ftrs.append(section.even_page_footer) + if section.different_first_page_header_footer: + ftrs.append(section.first_page_footer) + for ftr in ftrs: + # 处理每个段落,支持公式和超链接 + processed_parts = [] + for par in ftr.paragraphs: + content = self._process_header_footer_paragraph(par) + if content: + processed_parts.append(content) + text = " ".join(processed_parts) + if text != "" and not text.isdigit() and text not in added_footers: + added_footers.add(text) + try: + self.pages[sec_idx].append( + { + "type": BlockType.FOOTER, + "content": text, + } + ) + except IndexError: + logger.error("Section index out of range when adding footer.") + + def _is_caption(self, element: BaseOxmlElement) -> bool: + """ + 根据 insertText 中是否有 SEQ 字段来判断是否为 caption + + Args: + element: 段落元素对象 + + Returns: + bool: 如果是标题返回 True,否则返回 False + """ + instr_texts = element.findall( + ".//w:instrText", namespaces=DocxConverter._BLIP_NAMESPACES + ) + + for instr in instr_texts: + if instr.text and "SEQ" in instr.text: + return True + + return False + + def _handle_drawingml(self, elements: list[BaseOxmlElement]): + """ + 处理 DrawingML 元素,目前先处理 chart 元素。 + + Args: + elements: 包含 DrawingML 元素的列表 + + Returns: + + """ + for element in elements: + chart = element.find( + ".//c:chart", namespaces=DocxConverter._BLIP_NAMESPACES + ) + if chart is not None: + # 如果找到 chart 元素,构造空的图表块,后续回填 html。 + chart_block = { + "type": BlockType.CHART, + "content": "", + } + self.cur_page.append(chart_block) + self.chart_list.append(chart_block) + + def _add_chart_table(self): + idx_xlsx_map = {} + rel_pattern = re.compile(r"word/charts/_rels/chart(\d+)\.xml\.rels$") + + # 定义命名空间 + namespaces = { + "r": "http://schemas.openxmlformats.org/package/2006/relationships" + } + + # first pass: read relationships from rewindable byte buffer + with zipfile.ZipFile(BytesIO(self._file_bytes), "r") as zf: + for name in zf.namelist(): + match = rel_pattern.match(name) + if match: + # 读取 .rels 文件内容 + rels_content = zf.read(name) + # 解析 XML + rels_root = etree.fromstring(rels_content) + + # 查找所有 Relationship 元素 + for rel in rels_root.findall( + ".//r:Relationship", namespaces=namespaces + ): + target = rel.get("Target") + if target and target.endswith(".xlsx"): + path = Path(target) + idx_xlsx_map[path.name] = int(match.group(1)) + + # second pass: again open buffer rather than original stream + with zipfile.ZipFile(BytesIO(self._file_bytes), "r") as zf: + for name in zf.namelist(): + if name.startswith("word/embeddings/"): + for path_name, chart_idx in idx_xlsx_map.items(): + if name.endswith(path_name): + content = zf.read(name) + self.chart_list[chart_idx - 1]["content"] = ( + html_table_from_excel_bytes(content) + ) + + def _handle_textbox_content( + self, + textbox_elements: list, + ): + """ + 处理文本框内容并将其添加到文档结构。 + """ + # 收集并组织段落 + container_paragraphs = self._collect_textbox_paragraphs(textbox_elements) + + # 处理所有段落 + all_paragraphs = [] + + # 对每个容器内的段落进行排序,然后按容器顺序处理 + for paragraphs in container_paragraphs.values(): + # 按容器内的垂直位置进行排序 + sorted_container_paragraphs = sorted( + paragraphs, + key=lambda x: ( + x[1] is None, + x[1] if x[1] is not None else float("inf"), + ), + ) + + # 将排序后的段落添加到待处理列表 + all_paragraphs.extend(sorted_container_paragraphs) + + # 跟踪已处理段落以避免重复(相同内容和位置) + processed_paragraphs = set() + + # 处理所有段落 + for p, position in all_paragraphs: + # 创建 Paragraph 对象以获取文本内容 + paragraph = Paragraph(p, self.docx_obj) + text_content = self._get_paragraph_text(paragraph) + + # 基于内容和位置创建唯一标识 + paragraph_id = (text_content, position) + + # 如果该段落(相同内容和位置)已处理,则跳过 + if paragraph_id in processed_paragraphs: + logger.debug( + f"Skipping duplicate paragraph: content='{text_content[:50]}...', position={position}" + ) + continue + + # 将该段落标记为已处理 + processed_paragraphs.add(paragraph_id) + + self._handle_text_elements(p) + return + + def _collect_textbox_paragraphs(self, textbox_elements): + """ + 从文本框元素中收集并组织段落。 + """ + processed_paragraphs = [] + container_paragraphs = {} + + for element in textbox_elements: + element_id = id(element) + # 如果已处理相同元素,则跳过 + if element_id in processed_paragraphs: + continue + + tag_name = etree.QName(element).localname + processed_paragraphs.append(element_id) + + # 处理直接找到的段落(VML 文本框) + if tag_name == "p": + # 查找包含该段落的文本框或形状元素 + container_id = None + for ancestor in element.iterancestors(): + if any(ns in ancestor.tag for ns in ["textbox", "shape", "txbx"]): + container_id = id(ancestor) + break + + if container_id not in container_paragraphs: + container_paragraphs[container_id] = [] + container_paragraphs[container_id].append( + (element, self._get_paragraph_position(element)) + ) + + # 处理 txbxContent 元素(Word DrawingML 文本框) + elif tag_name == "txbxContent": + paragraphs = element.findall(".//w:p", namespaces=element.nsmap) + container_id = id(element) + if container_id not in container_paragraphs: + container_paragraphs[container_id] = [] + + for p in paragraphs: + p_id = id(p) + if p_id not in processed_paragraphs: + processed_paragraphs.append(p_id) + container_paragraphs[container_id].append( + (p, self._get_paragraph_position(p)) + ) + else: + # 尝试从未知元素中提取任何段落 + paragraphs = element.findall(".//w:p", namespaces=element.nsmap) + container_id = id(element) + if container_id not in container_paragraphs: + container_paragraphs[container_id] = [] + + for p in paragraphs: + p_id = id(p) + if p_id not in processed_paragraphs: + processed_paragraphs.append(p_id) + container_paragraphs[container_id].append( + (p, self._get_paragraph_position(p)) + ) + + return container_paragraphs + + def _get_paragraph_position(self, paragraph_element): + """ + 从段落元素提取垂直位置信息。 + """ + # 先尝试直接从包含顺序相关属性的 w:p 元素获取索引 + if ( + hasattr(paragraph_element, "getparent") + and paragraph_element.getparent() is not None + ): + parent = paragraph_element.getparent() + # 获取所有段落兄弟节点 + paragraphs = [ + p for p in parent.getchildren() if etree.QName(p).localname == "p" + ] + # 查找当前段落在其兄弟节点中的索引 + try: + paragraph_index = paragraphs.index(paragraph_element) + return paragraph_index # 使用索引作为位置以保证一致的排序 + except ValueError: + pass + + # 在元素及其祖先中查找位置提示属性 + for elem in (*[paragraph_element], *paragraph_element.iterancestors()): + # 检查直接的位置信息属性 + for attr_name in ["y", "top", "positionY", "y-position", "position"]: + value = elem.get(attr_name) + if value: + try: + # 移除任何非数字字符(如 'pt', 'px' 等) + clean_value = re.sub(r"[^0-9.]", "", value) + if clean_value: + return float(clean_value) + except (ValueError, TypeError): + pass + + # 检查 transform 属性中的位移信息 + transform = elem.get("transform") + if transform: + # 从 transform 矩阵中提取 translate 的第二个参数 + match = re.search(r"translate\([^,]+,\s*([0-9.]+)", transform) + if match: + try: + return float(match.group(1)) + except ValueError: + pass + + # 检查 Word 格式中的锚点或相对位置指示器 + # 'dist' 类属性可以表示相对位置 + for attr_name in ["distT", "distB", "anchor", "relativeFrom"]: + if elem.get(attr_name) is not None: + return elem.sourceline # 使用 XML 源行号作为回退 + + # 针对 VML 形状,查找特定属性 + for ns_uri in paragraph_element.nsmap.values(): + if "vml" in ns_uri: + # 尝试从 style 属性提取 top 值 + style = paragraph_element.get("style") + if style: + match = re.search(r"top:([0-9.]+)pt", style) + if match: + try: + return float(match.group(1)) + except ValueError: + pass + + # 如果没有更好的位置指示,则使用 XML 源行号作为顺序的代理 + return ( + paragraph_element.sourceline + if hasattr(paragraph_element, "sourceline") + else None + ) diff --git a/mineru/model/docx/main.py b/mineru/model/docx/main.py new file mode 100644 index 000000000..fe5a2315a --- /dev/null +++ b/mineru/model/docx/main.py @@ -0,0 +1,51 @@ +# Copyright (c) Opendatalab. All rights reserved. +from typing import BinaryIO + +from mineru.model.docx.docx_converter import DocxConverter + + +def convert_path(file_path: str): + with open(file_path, "rb") as fh: + return convert_binary(fh) + + +def convert_binary(file_binary: BinaryIO): + converter = DocxConverter() + converter.convert(file_binary) + return converter.pages + + +if __name__ == "__main__": + # provide a more robust command-line interface and resolve the demo + # document path relative to the project root instead of depending on + # the current working directory. + from pathlib import Path + import argparse + + # climb up until we find pyproject.toml or reach a reasonable depth + def find_project_root(start: Path) -> Path: + current = start + for _ in range(6): # avoid infinite loops + if (current / "pyproject.toml").exists() or (current / "README.md").exists(): + return current + if current.parent == current: + break + current = current.parent + return start + + script_path = Path(__file__).resolve() + project_root = find_project_root(script_path.parent) + default_docx = project_root / "demo" / "docx" / "demo1.docx" + + parser = argparse.ArgumentParser( + description="Convert a DOCX file to internal JSON representation" + ) + parser.add_argument( + "docx", + nargs="?", + default=str(default_docx), + help="path to the .docx file to convert (defaults to demo/docx/demo1.docx)" + ) + args = parser.parse_args() + + print(convert_path(args.docx)) diff --git a/mineru/model/docx/tools/__init__.py b/mineru/model/docx/tools/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/docx/tools/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/docx/tools/math/__init__.py b/mineru/model/docx/tools/math/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/docx/tools/math/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/docx/tools/math/latex_dict.py b/mineru/model/docx/tools/math/latex_dict.py new file mode 100644 index 000000000..3042f8f54 --- /dev/null +++ b/mineru/model/docx/tools/math/latex_dict.py @@ -0,0 +1,318 @@ +# Copyright (c) Opendatalab. All rights reserved. +""" +Adapted from https://github.com/xiilei/dwml/blob/master/dwml/latex_dict.py +On 23/01/2025 +""" + +CHARS = ("{", "}", "_", "^", "#", "&", "$", "%") + +BLANK = "" +BACKSLASH = "\\" +ALN = "&" + +CHR = { + # Unicode : Latex Math Symbols + # Top accents + "\u0300": "\\grave{{{0}}}", + "\u0301": "\\acute{{{0}}}", + "\u0302": "\\hat{{{0}}}", + "\u0303": "\\tilde{{{0}}}", + "\u0304": "\\bar{{{0}}}", + "\u0305": "\\overbar{{{0}}}", + "\u0306": "\\breve{{{0}}}", + "\u0307": "\\dot{{{0}}}", + "\u0308": "\\ddot{{{0}}}", + "\u0309": "\\ovhook{{{0}}}", + "\u030a": "\\ocirc{{{0}}}", + "\u030c": "\\check{{{0}}}", + "\u0310": "\\candra{{{0}}}", + "\u0312": "\\oturnedcomma{{{0}}}", + "\u0315": "\\ocommatopright{{{0}}}", + "\u031a": "\\droang{{{0}}}", + "\u0338": "\\not{{{0}}}", + "\u20d0": "\\leftharpoonaccent{{{0}}}", + "\u20d1": "\\rightharpoonaccent{{{0}}}", + "\u20d2": "\\vertoverlay{{{0}}}", + "\u20d6": "\\overleftarrow{{{0}}}", + "\u20d7": "\\vec{{{0}}}", + "\u20db": "\\dddot{{{0}}}", + "\u20dc": "\\ddddot{{{0}}}", + "\u20e1": "\\overleftrightarrow{{{0}}}", + "\u20e7": "\\annuity{{{0}}}", + "\u20e9": "\\widebridgeabove{{{0}}}", + "\u20f0": "\\asteraccent{{{0}}}", + # Bottom accents + "\u0330": "\\wideutilde{{{0}}}", + "\u0331": "\\underbar{{{0}}}", + "\u20e8": "\\threeunderdot{{{0}}}", + "\u20ec": "\\underrightharpoondown{{{0}}}", + "\u20ed": "\\underleftharpoondown{{{0}}}", + "\u20ee": "\\underleftarrow{{{0}}}", + "\u20ef": "\\underrightarrow{{{0}}}", + # Over | group + "\u23b4": "\\overbracket{{{0}}}", + "\u23dc": "\\overparen{{{0}}}", + "\u23de": "\\overbrace{{{0}}}", + # Under| group + "\u23b5": "\\underbracket{{{0}}}", + "\u23dd": "\\underparen{{{0}}}", + "\u23df": "\\underbrace{{{0}}}", +} + +CHR_BO = { + # Big operators, + "\u2140": "\\Bbbsum", + "\u220f": "\\prod", + "\u2210": "\\coprod", + "\u2211": "\\sum", + "\u222b": "\\int", + "\u222c": "\\iint", + "\u222d": "\\iiint", + "\u222e": "\\oint", + "\u222f": "\\oiint", + "\u2230": "\\oiiint", + "\u22c0": "\\bigwedge", + "\u22c1": "\\bigvee", + "\u22c2": "\\bigcap", + "\u22c3": "\\bigcup", + "\u2a00": "\\bigodot", + "\u2a01": "\\bigoplus", + "\u2a02": "\\bigotimes", +} + +T = { + # Whitespace characters + " ": " ", # NON-BREAKING SPACE (U+00A0) — pylatexenc maps this to "~" (text-mode), + # which escape_latex would mangle to "\~" (invalid in math mode); + # use a plain space instead. + # Greek letters + "\U0001d6fc": "\\alpha ", + "\U0001d6fd": "\\beta ", + "\U0001d6fe": "\\gamma ", + "\U0001d6ff": "\\delta ", + "\U0001d700": "\\epsilon ", + "\U0001d701": "\\zeta ", + "\U0001d702": "\\eta ", + "\U0001d703": "\\theta ", + "\U0001d704": "\\iota ", + "\U0001d705": "\\kappa ", + "\U0001d706": "\\lambda ", + "\U0001d707": "\\mu ", + "\U0001d708": "\\nu ", + "\U0001d709": "\\xi ", + "\U0001d70a": "\\omicron ", + "\U0001d70b": "\\pi ", + "\U0001d70c": "\\rho ", + "\U0001d70d": "\\varsigma ", + "\U0001d70e": "\\sigma ", + "\U0001d70f": "\\tau ", + "\U0001d710": "\\upsilon ", + "\U0001d711": "\\phi ", + "\U0001d712": "\\chi ", + "\U0001d713": "\\psi ", + "\U0001d714": "\\omega ", + "\U0001d715": "\\partial ", + "\U0001d716": "\\varepsilon ", + "\U0001d717": "\\vartheta ", + "\U0001d718": "\\varkappa ", + "\U0001d719": "\\varphi ", + "\U0001d71a": "\\varrho ", + "\U0001d71b": "\\varpi ", + # Relation symbols + "\u2190": "\\leftarrow ", + "\u2191": "\\uparrow ", + "\u2192": "\\rightarrow ", + "\u2193": "\\downarrow ", + "\u2194": "\\leftrightarrow ", + "\u2195": "\\updownarrow ", + "\u2196": "\\nwarrow ", + "\u2197": "\\nearrow ", + "\u2198": "\\searrow ", + "\u2199": "\\swarrow ", + "\u2026": "\\ldots ", # HORIZONTAL ELLIPSIS (…) — pylatexenc maps this to \textellipsis (text-mode), override to \ldots (math-mode) + "\u22ee": "\\vdots ", + "\u22ef": "\\cdots ", + "\u22f0": "\\adots ", + "\u22f1": "\\ddots ", + "\u2260": "\\ne ", + "\u2264": "\\leq ", + "\u2265": "\\geq ", + "\u2266": "\\leqq ", + "\u2267": "\\geqq ", + "\u2268": "\\lneqq ", + "\u2269": "\\gneqq ", + "\u226a": "\\ll ", + "\u226b": "\\gg ", + "\u2208": "\\in ", + "\u2209": "\\notin ", + "\u220b": "\\ni ", + "\u220c": "\\nni ", + # Ordinary symbols + "\u221e": "\\infty ", + # Binary relations + "\u00b1": "\\pm ", + "\u2213": "\\mp ", + # Characters whose pylatexenc text-mode mappings are invalid in math environments + "\u00f0": "\\eth ", # ð LATIN SMALL LETTER ETH — pylatexenc: \dh (tipa, not in KaTeX/MathJax) + "\u0131": "\\imath ", # ı LATIN SMALL LETTER DOTLESS I — pylatexenc: \i (text-mode only) + "\u2127": "\\mho ", # ℧ INVERTED OHM SIGN — pylatexenc: \textmho (textcomp, not in KaTeX/MathJax) + "\u212e": "e", # ℮ ESTIMATED SIGN — pylatexenc: \textestimated (no math equivalent; use 'e') + "\u00c5": "\\mathring{A} ", # Å LATIN CAPITAL LETTER A WITH RING — pylatexenc: \r{A} (text-mode only) + # Multiplication/division operators (text-mode pylatexenc mappings overridden to math-mode) + "\u00b7": "\\cdot ", # MIDDLE DOT (·) — common in Chinese scientific notation + "\u22c5": "\\cdot ", # DOT OPERATOR (⋅) + "\u2219": "\\bullet ", # BULLET OPERATOR (∙) + "\u00d7": "\\times ", # MULTIPLICATION SIGN (×) + "\u00f7": "\\div ", # DIVISION SIGN (÷) + "\u2212": "-", # MINUS SIGN (−) + # Degree / prime — avoid ^{} syntax since escape_latex will mangle bare ^ and braces + "\u00b0": "\\circ ", # DEGREE SIGN (°) — caller's context (e.g. 90°) provides the ^ + "\u2032": "'", # PRIME (′) + "\u2033": "''", # DOUBLE PRIME (″) + # Superscript digits — avoid \texttwosuperior / \textthreesuperior from pylatexenc + "\u00b2": "2", + "\u00b3": "3", + "\u00b9": "1", + # Big operators as plain text characters — pylatexenc maps some to non-KaTeX commands + # (e.g. ∯→\surfintegral, ∰→\volintegral, ∱→\clwintegral) which don't render in KaTeX/MathJax. + # Override with standard KaTeX-compatible commands; if no KaTeX equivalent exists, keep Unicode. + "\u222f": "\\oiint ", # ∯ SURFACE INTEGRAL — pylatexenc: \surfintegral (not in KaTeX) + "\u2230": "\\oiiint ", # ∰ VOLUME INTEGRAL — pylatexenc: \volintegral (not in KaTeX) + "\u2231": "\u2231", # ∱ CLOCKWISE INTEGRAL — pylatexenc: \clwintegral (not in KaTeX); keep Unicode + "\u2232": "\u2232", # ∲ CLOCKWISE CONTOUR INTEGRAL — no KaTeX equivalent; keep Unicode + "\u2233": "\u2233", # ∳ ANTICLOCKWISE CONTOUR INTEGRAL — no KaTeX equivalent; keep Unicode + # N-ary operators: ⨀⨁⨂ have KaTeX commands; ⨃⨄ do not — keep Unicode for those + "\u2a00": "\\bigodot ", # ⨀ N-ARY CIRCLED DOT OPERATOR + "\u2a01": "\\bigoplus ", # ⨁ N-ARY CIRCLED PLUS OPERATOR + "\u2a02": "\\bigotimes ", # ⨂ N-ARY CIRCLED TIMES OPERATOR + "\u2a03": "\u2a03", # ⨃ N-ARY UNION WITH DOT — no exact KaTeX equivalent; keep Unicode + "\u2a04": "\u2a04", # ⨄ N-ARY UNION WITH PLUS — no exact KaTeX equivalent; keep Unicode + # Wave arrows — pylatexenc: \arrowwaveleft / \arrowwaveright (not in KaTeX); keep Unicode + "\u219c": "\u219c", # ↜ LEFTWARDS WAVE ARROW + "\u219d": "\u219d", # ↝ RIGHTWARDS WAVE ARROW + # Italic, Latin, uppercase + "\U0001d434": "A", + "\U0001d435": "B", + "\U0001d436": "C", + "\U0001d437": "D", + "\U0001d438": "E", + "\U0001d439": "F", + "\U0001d43a": "G", + "\U0001d43b": "H", + "\U0001d43c": "I", + "\U0001d43d": "J", + "\U0001d43e": "K", + "\U0001d43f": "L", + "\U0001d440": "M", + "\U0001d441": "N", + "\U0001d442": "O", + "\U0001d443": "P", + "\U0001d444": "Q", + "\U0001d445": "R", + "\U0001d446": "S", + "\U0001d447": "T", + "\U0001d448": "U", + "\U0001d449": "V", + "\U0001d44a": "W", + "\U0001d44b": "X", + "\U0001d44c": "Y", + "\U0001d44d": "Z", + # Italic, Latin, lowercase + "\U0001d44e": "a", + "\U0001d44f": "b", + "\U0001d450": "c", + "\U0001d451": "d", + "\U0001d452": "e", + "\U0001d453": "f", + "\U0001d454": "g", + "\U0001d456": "i", + "\U0001d457": "j", + "\U0001d458": "k", + "\U0001d459": "l", + "\U0001d45a": "m", + "\U0001d45b": "n", + "\U0001d45c": "o", + "\U0001d45d": "p", + "\U0001d45e": "q", + "\U0001d45f": "r", + "\U0001d460": "s", + "\U0001d461": "t", + "\U0001d462": "u", + "\U0001d463": "v", + "\U0001d464": "w", + "\U0001d465": "x", + "\U0001d466": "y", + "\U0001d467": "z", +} + +FUNC = { + "sin": "\\sin({fe})", + "cos": "\\cos({fe})", + "tan": "\\tan({fe})", + "arcsin": "\\arcsin({fe})", + "arccos": "\\arccos({fe})", + "arctan": "\\arctan({fe})", + "arccot": "\\arccot({fe})", + "sinh": "\\sinh({fe})", + "cosh": "\\cosh({fe})", + "tanh": "\\tanh({fe})", + "coth": "\\coth({fe})", + "sec": "\\sec({fe})", + "csc": "\\csc({fe})", + "mod": "\\mod {fe}", + "max": "\\max({fe})", + "min": "\\min({fe})", +} + +FUNC_PLACE = "{fe}" + +BRK = "\\\\" + +CHR_DEFAULT = { + "ACC_VAL": "\\hat{{{0}}}", +} + +POS = { + "top": "\\overline{{{0}}}", # not sure + "bot": "\\underline{{{0}}}", +} + +POS_DEFAULT = { + "BAR_VAL": "\\overline{{{0}}}", +} + +SUB = "_{{{0}}}" + +SUP = "^{{{0}}}" + +F = { + "bar": "\\frac{{{num}}}{{{den}}}", + "skw": r"^{{{num}}}/_{{{den}}}", + "noBar": "\\genfrac{{}}{{}}{{0pt}}{{}}{{{num}}}{{{den}}}", + "lin": "{{{num}}}/{{{den}}}", +} +F_DEFAULT = "\\frac{{{num}}}{{{den}}}" + +D = "\\left{left}{text}\\right{right}" + +D_DEFAULT = { + "left": "(", + "right": ")", + "null": ".", +} + +RAD = "\\sqrt[{deg}]{{{text}}}" +RAD_DEFAULT = "\\sqrt{{{text}}}" +ARR = "\\begin{{array}}{{c}}{text}\\end{{array}}" + +LIM_FUNC = { + "lim": "\\lim_{{{lim}}}", + "max": "\\max_{{{lim}}}", + "min": "\\min_{{{lim}}}", +} + +LIM_TO = ("\\rightarrow", "\\to") + +LIM_UPP = "\\overset{{{lim}}}{{{text}}}" + +M = "\\begin{{matrix}}{text}\\end{{matrix}}" diff --git a/mineru/model/docx/tools/math/omml.py b/mineru/model/docx/tools/math/omml.py new file mode 100644 index 000000000..590bc57c0 --- /dev/null +++ b/mineru/model/docx/tools/math/omml.py @@ -0,0 +1,513 @@ +# Copyright (c) Opendatalab. All rights reserved. +""" +Office Math Markup Language (OMML) + +Adapted from https://github.com/xiilei/dwml/blob/master/dwml/omml.py +On 23/01/2025 +""" +import re + +import lxml.etree as ET +from loguru import logger +from pylatexenc.latexencode import UnicodeToLatexEncoder + +from .latex_dict import ( + ALN, + ARR, + BACKSLASH, + BLANK, + BRK, + CHARS, + CHR, + CHR_BO, + CHR_DEFAULT, + D_DEFAULT, + F_DEFAULT, + FUNC, + FUNC_PLACE, + LIM_FUNC, + LIM_TO, + LIM_UPP, + POS, + POS_DEFAULT, + RAD, + RAD_DEFAULT, + SUB, + SUP, + D, + F, + M, + T, +) + +OMML_NS = "{http://schemas.openxmlformats.org/officeDocument/2006/math}" + +# Mapping from OMML values to LaTeX math font commands. +# Used in do_r to convert math script/font style to appropriate LaTeX commands. +SCR_TO_LATEX = { + "script": "\\mathscr{{{0}}}", # 手写体/花体 — \mathscr covers both upper and lowercase + "fraktur": "\\mathfrak{{{0}}}", # 德国哥特体 — \mathfrak for upper and lowercase + "double-struck": "\\mathbb{{{0}}}", # 双线体/黑板粗体 — \mathbb + "sans-serif": "\\mathsf{{{0}}}", # 无衬线体 + "monospace": "\\mathtt{{{0}}}", # 等宽字体 +} + + +def load(stream): + tree = ET.parse(stream) + for omath in tree.findall(OMML_NS + "oMath"): + yield oMath2Latex(omath) + + +def load_string(string): + root = ET.fromstring(string) + for omath in root.findall(OMML_NS + "oMath"): + yield oMath2Latex(omath) + + +def escape_latex(strs): + last = None + new_chr = [] + strs = strs.replace(r"\\", "\\") + for c in strs: + if (c in CHARS) and (last != BACKSLASH): + new_chr.append(BACKSLASH + c) + else: + new_chr.append(c) + last = c + return BLANK.join(new_chr) + + +def get_val(key, default=None, store=CHR): + if key is not None: + return key if not store else store.get(key, key) + else: + return default + + +class Tag2Method: + def call_method(self, elm, stag=None): + getmethod = self.tag2meth.get + if stag is None: + stag = elm.tag.replace(OMML_NS, "") + method = getmethod(stag) + if method: + return method(self, elm) + else: + return None + + def process_children_list(self, elm, include=None): + """ + process children of the elm,return iterable + """ + for _e in list(elm): + if OMML_NS not in _e.tag: + continue + stag = _e.tag.replace(OMML_NS, "") + if include and (stag not in include): + continue + t = self.call_method(_e, stag=stag) + if t is None: + t = self.process_unknow(_e, stag) + if t is None: + continue + yield (stag, t, _e) + + def process_children_dict(self, elm, include=None): + """ + process children of the elm,return dict + """ + latex_chars = dict() + for stag, t, e in self.process_children_list(elm, include): + latex_chars[stag] = t + return latex_chars + + def process_children(self, elm, include=None): + """ + process children of the elm,return string + """ + return BLANK.join( + ( + t if not isinstance(t, Tag2Method) else str(t) + for stag, t, e in self.process_children_list(elm, include) + ) + ) + + def process_unknow(self, elm, stag): + return None + + +class Pr(Tag2Method): + text = "" + + __val_tags = ("chr", "pos", "begChr", "endChr", "type") + + __innerdict = None # can't use the __dict__ + + """ common properties of element""" + + def __init__(self, elm): + self.__innerdict = {} + self.text = self.process_children(elm) + + def __str__(self): + return self.text + + def __unicode__(self): + return self.__str__(self) + + def __getattr__(self, name): + return self.__innerdict.get(name, None) + + def do_brk(self, elm): + self.__innerdict["brk"] = BRK + return BRK + + def do_common(self, elm): + stag = elm.tag.replace(OMML_NS, "") + if stag in self.__val_tags: + t = elm.get(f"{OMML_NS}val") + self.__innerdict[stag] = t + return None + + tag2meth = { + "brk": do_brk, + "chr": do_common, + "pos": do_common, + "begChr": do_common, + "endChr": do_common, + "type": do_common, + } + + +class oMath2Latex(Tag2Method): + """ + Convert oMath element of omml to latex + """ + + _t_dict = T + + __direct_tags = ("box", "sSub", "sSup", "sSubSup", "num", "den", "deg", "e") + u = UnicodeToLatexEncoder( + replacement_latex_protection="braces-all", + unknown_char_policy="keep", + unknown_char_warning=False, + ) + + def __init__(self, element): + self._latex = self.process_children(element) + + def __str__(self): + return self.latex.replace(" ", " ") + + def __unicode__(self): + return self.__str__(self) + + def process_unknow(self, elm, stag): + if stag in self.__direct_tags: + return self.process_children(elm) + elif stag[-2:] == "Pr": + return Pr(elm) + else: + return None + + @property + def latex(self): + return self._latex + + def do_acc(self, elm): + """ + the accent function + """ + c_dict = self.process_children_dict(elm) + latex_s = get_val( + c_dict["accPr"].chr, default=CHR_DEFAULT.get("ACC_VAL"), store=CHR + ) + return latex_s.format(c_dict["e"]) + + def do_bar(self, elm): + """ + the bar function + """ + c_dict = self.process_children_dict(elm) + pr = c_dict["barPr"] + latex_s = get_val(pr.pos, default=POS_DEFAULT.get("BAR_VAL"), store=POS) + return pr.text + latex_s.format(c_dict["e"]) + + def do_d(self, elm): + """ + the delimiter object + """ + c_dict = self.process_children_dict(elm) + pr = c_dict["dPr"] + null = D_DEFAULT.get("null") + + s_val = get_val(pr.begChr, default=D_DEFAULT.get("left"), store=T) + e_val = get_val(pr.endChr, default=D_DEFAULT.get("right"), store=T) + delim = pr.text + D.format( + left=null if not s_val else escape_latex(s_val), + text=c_dict["e"], + right=null if not e_val else escape_latex(e_val), + ) + return delim + + def do_spre(self, elm): + """ + the Pre-Sub-Superscript object -- Not support yet + """ + + def do_sub(self, elm): + text = self.process_children(elm) + return SUB.format(text) + + def do_sup(self, elm): + text = self.process_children(elm) + return SUP.format(text) + + def do_f(self, elm): + """ + the fraction object + """ + c_dict = self.process_children_dict(elm) + pr = c_dict.get("fPr") + if pr is None: + # Handle missing fPr element gracefully + logger.debug("Missing fPr element in fraction, using default formatting") + latex_s = F_DEFAULT + return latex_s.format( + num=c_dict.get("num"), + den=c_dict.get("den"), + ) + latex_s = get_val(pr.type, default=F_DEFAULT, store=F) + return pr.text + latex_s.format(num=c_dict.get("num"), den=c_dict.get("den")) + + def do_func(self, elm): + """ + the Function-Apply object (Examples:sin cos) + """ + c_dict = self.process_children_dict(elm) + func_name = c_dict.get("fName") + return func_name.replace(FUNC_PLACE, c_dict.get("e")) + + def do_fname(self, elm): + """ + the func name + """ + latex_chars = [] + for stag, t, e in self.process_children_list(elm): + if stag == "r": + if FUNC.get(t): + latex_chars.append(FUNC[t]) + else: + logger.warning("Function not supported, will default to text: %s", t) + if isinstance(t, str): + latex_chars.append(t) + elif isinstance(t, str): + latex_chars.append(t) + t = BLANK.join(latex_chars) + return t if FUNC_PLACE in t else t + FUNC_PLACE # do_func will replace this + + def do_groupchr(self, elm): + """ + the Group-Character object + """ + c_dict = self.process_children_dict(elm) + pr = c_dict["groupChrPr"] + latex_s = get_val(pr.chr) + return pr.text + latex_s.format(c_dict["e"]) + + def do_rad(self, elm): + """ + the radical object + """ + c_dict = self.process_children_dict(elm) + text = c_dict.get("e") + deg_text = c_dict.get("deg") + if deg_text: + return RAD.format(deg=deg_text, text=text) + else: + return RAD_DEFAULT.format(text=text) + + def do_eqarr(self, elm): + """ + the Array object. + + Handles two cases: + 1. Single-row eqArr with a right-aligned equation tag encoded as + ``\\#(n)`` at the end of the row (OMML column-alignment syntax). + The ``#`` column separator and the equation number ``(n)`` are + converted to LaTeX ``\\tag{n}`` so KaTeX can render the tag, + and the unnecessary ``\\begin{array}{c}...\\end{array}`` wrapper + is omitted. + 2. Single-row eqArr without a tag: content is returned as-is (no + array wrapper needed). + 3. Multi-row eqArr: kept as ``\\begin{array}{c}...\\end{array}``. + """ + rows = [t for stag, t, e in self.process_children_list(elm, include=("e",))] + + if len(rows) == 1: + row = rows[0] + # Detect the OMML equation-tag pattern: the text element "#(n)" is + # stored verbatim inside the row; do_r converts "#" via pylatexenc + # to "\# " (escaped hash with surrounding spaces due to brace- + # protection stripping). Match that at the end of the row, + # allowing optional whitespace between "\#" and the opening "(". + tag_match = re.search(r'\\#\s*\(([^)]*)\)\s*$', row) + if tag_match: + formula = row[:tag_match.start()].rstrip() + tag_content = tag_match.group(1) + return f'{formula}\\tag{{{tag_content}}}' + # Single row without tag — no array wrapper required. + return row + + return ARR.format(text=BRK.join(rows)) + + def do_limlow(self, elm): + """ + the Lower-Limit object + """ + t_dict = self.process_children_dict(elm, include=("e", "lim")) + latex_s = LIM_FUNC.get(t_dict["e"]) + if not latex_s: + raise RuntimeError("Not support lim {}".format(t_dict["e"])) + else: + return latex_s.format(lim=t_dict.get("lim")) + + def do_limupp(self, elm): + """ + the Upper-Limit object + """ + t_dict = self.process_children_dict(elm, include=("e", "lim")) + return LIM_UPP.format(lim=t_dict.get("lim"), text=t_dict.get("e")) + + def do_lim(self, elm): + """ + the lower limit of the limLow object and the upper limit of the limUpp function + """ + return self.process_children(elm).replace(LIM_TO[0], LIM_TO[1]) + + def do_m(self, elm): + """ + the Matrix object + """ + rows = [] + for stag, t, e in self.process_children_list(elm): + if stag == "mPr": + pass + elif stag == "mr": + rows.append(t) + return M.format(text=BRK.join(rows)) + + def do_mr(self, elm): + """ + a single row of the matrix m + """ + return ALN.join( + [t for stag, t, e in self.process_children_list(elm, include=("e",))] + ) + + def do_nary(self, elm): + """ + the n-ary object + """ + res = [] + bo = "" + for stag, t, e in self.process_children_list(elm): + if stag == "naryPr": + # if contains no , the n-ary represents an integral + bo = get_val(t.chr, default="\\int", store=CHR_BO) + else: + res.append(t) + return bo + BLANK.join(res) + + def process_unicode(self, s): + # Check T dictionary first for known math-mode symbols. + # The T dictionary holds explicit math-mode LaTeX mappings and takes precedence + # over pylatexenc, which uses text-mode mappings by default and therefore produces + # text-mode commands like \textperiodcentered (for U+00B7 ·) that are invalid + # inside math environments. + t_result = self._t_dict.get(s) + if t_result is not None: + return t_result + + out_latex_str = self.u.unicode_to_latex(s) + + if ( + s.startswith("{") is False + and out_latex_str.startswith("{") + and s.endswith("}") is False + and out_latex_str.endswith("}") + ): + out_latex_str = f" {out_latex_str[1:-1]} " + + if "ensuremath" in out_latex_str: + out_latex_str = out_latex_str.replace("\\ensuremath{", " ") + out_latex_str = out_latex_str.replace("}", " ") + + # Do NOT wrap remaining content in \text{}. + # Previously this code matched any string starting with "\text" and wrapped it + # again, producing invalid constructs like \text{ \textperiodcentered } for + # textcomp symbols. Characters that truly need text mode should be mapped in + # the T dictionary above; for all others we keep the pylatexenc output as-is. + + return out_latex_str + + + def do_r(self, elm): + """ + Get text from 'r' element,And try convert them to latex symbols + @todo text style support , (sty) + @todo \text (latex pure text support) + """ + _str = [] + _base_str = [] + found_text = elm.findtext(f"./{OMML_NS}t") + if found_text: + for s in found_text: + out_latex_str = self.process_unicode(s) + _str.append(out_latex_str) + _base_str.append(s) + + proc_str = escape_latex(BLANK.join(_str)) + base_proc_str = BLANK.join(_base_str) + + if "{" not in base_proc_str and "\\{" in proc_str: + proc_str = proc_str.replace("\\{", "{") + + if "}" not in base_proc_str and "\\}" in proc_str: + proc_str = proc_str.replace("\\}", "}") + + # Handle math font style (script, fraktur, double-struck, etc.) + # OMML encodes math alphabets via rather than + # Unicode math-alphabet codepoints, so we must apply the LaTeX wrapper here. + rPr = elm.find(f"{OMML_NS}rPr") + if rPr is not None: + scr_elem = rPr.find(f"{OMML_NS}scr") + if scr_elem is not None: + scr_val = scr_elem.get(f"{OMML_NS}val") + latex_template = SCR_TO_LATEX.get(scr_val) + if latex_template and proc_str.strip(): + proc_str = latex_template.format(proc_str.strip()) + + return proc_str + + tag2meth = { + "acc": do_acc, + "r": do_r, + "bar": do_bar, + "sub": do_sub, + "sup": do_sup, + "f": do_f, + "func": do_func, + "fName": do_fname, + "groupChr": do_groupchr, + "d": do_d, + "rad": do_rad, + "eqArr": do_eqarr, + "limLow": do_limlow, + "limUpp": do_limupp, + "lim": do_lim, + "m": do_m, + "mr": do_mr, + "nary": do_nary, + } diff --git a/mineru/model/docx/tools/office_xml.py b/mineru/model/docx/tools/office_xml.py new file mode 100644 index 000000000..f16e71dc8 --- /dev/null +++ b/mineru/model/docx/tools/office_xml.py @@ -0,0 +1,56 @@ +# Copyright (c) Opendatalab. All rights reserved. +import xml.dom.minidom + +from mammoth.docx.xmlparser import XmlText, XmlElement +from mammoth.docx.office_xml import _collapse_alternate_content, _namespaces + + +def parse_xml_str(xml_str, namespace_mapping=None): + if namespace_mapping is None: + namespace_prefixes = {} + else: + namespace_prefixes = dict((uri, prefix) for prefix, uri in namespace_mapping) + + document = xml.dom.minidom.parseString(xml_str) + + def convert_node(node): + if node.nodeType == xml.dom.Node.ELEMENT_NODE: + return convert_element(node) + elif node.nodeType == xml.dom.Node.TEXT_NODE: + return XmlText(node.nodeValue) + else: + return None + + def convert_element(element): + converted_name = convert_name(element) + + converted_attributes = dict( + (convert_name(attribute), attribute.value) + for attribute in element.attributes.values() + if attribute.namespaceURI != "http://www.w3.org/2000/xmlns/" + ) + + converted_children = [] + for child_node in element.childNodes: + converted_child_node = convert_node(child_node) + if converted_child_node is not None: + converted_children.append(converted_child_node) + + return XmlElement(converted_name, converted_attributes, converted_children) + + def convert_name(node): + if node.namespaceURI is None: + return node.localName + else: + prefix = namespace_prefixes.get(node.namespaceURI) + if prefix is None: + return "{%s}%s" % (node.namespaceURI, node.localName) + else: + return "%s:%s" % (prefix, node.localName) + + return convert_node(document.documentElement) + + +def read_str(xml_str): + i = parse_xml_str(xml_str, _namespaces) + return _collapse_alternate_content(i)[0] diff --git a/mineru/model/layout/__init__.py b/mineru/model/layout/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/layout/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/layout/pp_doclayoutv2.py b/mineru/model/layout/pp_doclayoutv2.py new file mode 100644 index 000000000..d3f8da9d5 --- /dev/null +++ b/mineru/model/layout/pp_doclayoutv2.py @@ -0,0 +1,1436 @@ +# Copyright (c) Opendatalab. All rights reserved. +import argparse +import colorsys +import hashlib +import json +import math +import os +from dataclasses import dataclass +from typing import Dict, List, Optional, Sequence, Tuple, Union + +import numpy as np +from PIL import Image, ImageDraw, ImageFont +from torch import nn +from tqdm import tqdm +import torchvision.transforms.v2.functional as tvF +from torchvision.transforms import InterpolationMode + +import torch +from transformers import AutoConfig +from transformers.activations import ACT2FN +from transformers.configuration_utils import PretrainedConfig +from transformers.modeling_outputs import BaseModelOutput +from transformers.models.layoutlmv3.modeling_layoutlmv3 import LayoutLMv3TextEmbeddings +from transformers.models.rt_detr.configuration_rt_detr import RTDetrConfig +from transformers.models.rt_detr.modeling_rt_detr import RTDetrForObjectDetection, RTDetrModel, RTDetrPreTrainedModel +from transformers.utils import ModelOutput + +from mineru.utils.bbox_utils import normalize_to_int_bbox + +DEFAULT_IMAGE_SIZE = (800, 800) +DEFAULT_RESCALE_FACTOR = 1.0 / 255.0 + +PP_DOCLAYOUT_V2_LABELS = [ + "abstract", # 0 论文摘要 + "algorithm", # 1 算法 + "aside_text", # 2 页边注文本,通常位于页面边缘,提供补充信息或注释,与主内容相关但不直接包含在内 + "chart", # 3 图表,通常包含数据可视化元素,如柱状图、折线图、饼图等,用于展示数据关系和趋势 + "content", # 4 只在大的目录块中出现,其他地方未见 + "display_formula", # 5 独立展示的公式,通常占据整行或多行,具有较大字体和清晰的布局,以突出其重要性和可读性 + "doc_title", # 6 文章标题,一篇文章的主标题 + "figure_title", # 7 image/chart/table的caption + "footer", # 8 页脚文本 + "footer_image", # 9 页脚图片 + "footnote", # 10 page footnote,通常位于页面底部,提供对正文中特定内容的补充说明、引用来源或其他相关信息 + "formula_number", # 11 公式编号,通常与display_formula配合使用,标识独立展示的公式在文档中的位置和顺序,便于引用和索引 + "header", # 12 页眉文本 + "header_image", # 13 页眉图片 + "image", # 14 图片 + "inline_formula", # 15 行内公式 + "number", # 16 页码 + "paragraph_title", # 17 段落标题,有别与文章标题 + "reference", # 18 参考文献,list外框 + "reference_content", # 19 参考文献内容,list item + "seal", # 20 印章 + "table", # 21 表格 + "text", # 22 一般文本 + "vertical_text", # 23 竖排文本 + "vision_footnote", # 24 image/chart/table的footnote +] + +# Per-class confidence threshold used before reading-order decoding. +DEFAULT_CLASS_THRESHOLDS = [ + 0.5, # 0 abstract + 0.5, # 1 algorithm + 0.5, # 2 aside_text + 0.5, # 3 chart + 0.5, # 4 content + 0.4, # 5 display_formula + 0.4, # 6 doc_title + 0.5, # 7 figure_title + 0.5, # 8 footer + 0.5, # 9 footer_image + 0.5, # 10 footnote + 0.5, # 11 formula_number + 0.5, # 12 header + 0.5, # 13 header_image + 0.5, # 14 image + 0.4, # 15 inline_formula + 0.5, # 16 number + 0.4, # 17 paragraph_title + 0.5, # 18 reference + 0.5, # 19 reference_content + 0.45, # 20 seal + 0.5, # 21 table + 0.4, # 22 text + 0.4, # 23 vertical_text + 0.5, # 24 vision_footnote +] + +# Reading-order head class remap used by the original upstream model. +DEFAULT_CLASS_ORDER = [ + 4, # 0 abstract + 2, # 1 algorithm + 14, # 2 aside_text + 1, # 3 chart + 5, # 4 content + 7, # 5 display_formula + 8, # 6 doc_title + 6, # 7 figure_title + 11, # 8 footer + 11, # 9 footer + 9, # 10 footnote + 13, # 11 formula_number + 10, # 12 header + 10, # 13 header_image + 1, # 14 image + 2, # 15 inline_formula + 3, # 16 number + 0, # 17 paragraph_title + 2, # 18 reference + 2, # 19 reference_content + 12, # 20 seal + 1, # 21 table + 2, # 22 text + 15, # 23 vertical_text + 6, # 24 vision_footnote +] + + +def _build_default_backbone_config(): + return AutoConfig.for_model( + "hgnet_v2", + arch="L", + return_idx=[1, 2, 3], + freeze_stem_only=True, + freeze_at=0, + freeze_norm=True, + lr_mult_list=[0, 0.05, 0.05, 0.05, 0.05], + out_features=["stage2", "stage3", "stage4"], + ) + + +def _create_bidirectional_mask( + inputs_embeds: torch.Tensor, + attention_mask: Optional[torch.Tensor], + encoder_hidden_states: Optional[torch.Tensor] = None, +) -> Optional[torch.Tensor]: + if attention_mask is None: + return None + if attention_mask.ndim == 4: + return attention_mask + if attention_mask.ndim != 2: + raise ValueError( + f"PP-DocLayoutV2 reading-order mask must be 2D or 4D, got shape {tuple(attention_mask.shape)}" + ) + + embeds = encoder_hidden_states if encoder_hidden_states is not None else inputs_embeds + batch_size, query_length = inputs_embeds.shape[:2] + key_length = attention_mask.shape[1] + + if attention_mask.shape[0] != batch_size: + raise ValueError( + f"Attention mask batch size {attention_mask.shape[0]} does not match embeddings batch size {batch_size}" + ) + + expanded_mask = attention_mask[:, None, None, :].expand(batch_size, 1, query_length, key_length) + expanded_mask = expanded_mask.to(device=embeds.device, dtype=embeds.dtype) + min_value = torch.finfo(embeds.dtype).min + return torch.where( + expanded_mask > 0, + torch.zeros(1, dtype=embeds.dtype, device=embeds.device), + torch.full((1,), min_value, dtype=embeds.dtype, device=embeds.device), + ) + + +def _load_preprocess_config(model_dir: str) -> Dict: + config_path = os.path.join(model_dir, "preprocessor_config.json") + if not os.path.exists(config_path): + return {} + with open(config_path, "r", encoding="utf-8") as f: + return json.load(f) + + +def _label_to_color(label: str) -> Tuple[int, int, int]: + digest = hashlib.md5(label.encode("utf-8")).digest() + hue = digest[0] / 255.0 + saturation = 0.65 + (digest[1] / 255.0) * 0.2 + value = 0.85 + (digest[2] / 255.0) * 0.1 + r, g, b = colorsys.hsv_to_rgb(hue, saturation, value) + return int(r * 255), int(g * 255), int(b * 255) + + +@dataclass +class PPDocLayoutV2ForObjectDetectionOutput(ModelOutput): + logits: torch.FloatTensor | None = None + pred_boxes: torch.FloatTensor | None = None + order_logits: torch.FloatTensor | None = None + last_hidden_state: torch.FloatTensor | None = None + intermediate_hidden_states: torch.FloatTensor | None = None + intermediate_logits: torch.FloatTensor | None = None + intermediate_reference_points: torch.FloatTensor | None = None + intermediate_predicted_corners: torch.FloatTensor | None = None + initial_reference_points: torch.FloatTensor | None = None + decoder_hidden_states: tuple[torch.FloatTensor, ...] | None = None + decoder_attentions: tuple[torch.FloatTensor, ...] | None = None + cross_attentions: tuple[torch.FloatTensor, ...] | None = None + encoder_last_hidden_state: torch.FloatTensor | None = None + encoder_hidden_states: tuple[torch.FloatTensor, ...] | None = None + encoder_attentions: tuple[torch.FloatTensor, ...] | None = None + init_reference_points: torch.FloatTensor | None = None + enc_topk_logits: torch.FloatTensor | None = None + enc_topk_bboxes: torch.FloatTensor | None = None + enc_outputs_class: torch.FloatTensor | None = None + enc_outputs_coord_logits: torch.FloatTensor | None = None + denoising_meta_values: dict | None = None + + +class PPDocLayoutV2ReadingOrderConfig(PretrainedConfig): + model_type = "pp_doclayout_v2_reading_order" + + def __init__( + self, + hidden_size=512, + num_attention_heads=8, + attention_probs_dropout_prob=0.1, + has_relative_attention_bias=False, + has_spatial_attention_bias=True, + layer_norm_eps=1e-5, + hidden_dropout_prob=0.1, + intermediate_size=2048, + hidden_act="gelu", + num_hidden_layers=6, + rel_pos_bins=32, + max_rel_pos=128, + rel_2d_pos_bins=64, + max_rel_2d_pos=256, + max_position_embeddings=514, + max_2d_position_embeddings=1024, + type_vocab_size=1, + vocab_size=4, + initializer_range=0.01, + start_token_id=0, + pad_token_id=1, + end_token_id=2, + pred_token_id=3, + coordinate_size=171, + shape_size=170, + num_classes=20, + relation_bias_embed_dim=16, + relation_bias_theta=10000, + relation_bias_scale=100, + global_pointer_head_size=64, + gp_dropout_value=0.0, + **kwargs, + ): + self.hidden_size = hidden_size + self.num_attention_heads = num_attention_heads + self.attention_probs_dropout_prob = attention_probs_dropout_prob + self.has_relative_attention_bias = has_relative_attention_bias + self.has_spatial_attention_bias = has_spatial_attention_bias + self.layer_norm_eps = layer_norm_eps + self.hidden_dropout_prob = hidden_dropout_prob + self.intermediate_size = intermediate_size + self.hidden_act = hidden_act + self.num_hidden_layers = num_hidden_layers + self.rel_pos_bins = rel_pos_bins + self.max_rel_pos = max_rel_pos + self.rel_2d_pos_bins = rel_2d_pos_bins + self.max_rel_2d_pos = max_rel_2d_pos + self.max_position_embeddings = max_position_embeddings + self.max_2d_position_embeddings = max_2d_position_embeddings + self.type_vocab_size = type_vocab_size + self.vocab_size = vocab_size + self.initializer_range = initializer_range + self.start_token_id = start_token_id + self.pad_token_id = pad_token_id + self.end_token_id = end_token_id + self.pred_token_id = pred_token_id + self.coordinate_size = coordinate_size + self.shape_size = shape_size + self.num_classes = num_classes + self.relation_bias_embed_dim = relation_bias_embed_dim + self.relation_bias_theta = relation_bias_theta + self.relation_bias_scale = relation_bias_scale + self.global_pointer_head_size = global_pointer_head_size + self.gp_dropout_value = gp_dropout_value + super().__init__(pad_token_id=pad_token_id, **kwargs) + + +class PPDocLayoutV2Config(RTDetrConfig): + model_type = "pp_doclayout_v2" + sub_configs = {"backbone_config": AutoConfig, "reading_order_config": PPDocLayoutV2ReadingOrderConfig} + + def __init__( + self, + backbone_config=None, + class_thresholds: Optional[List[float]] = None, + class_order: Optional[List[int]] = None, + reading_order_config: Optional[Union[PPDocLayoutV2ReadingOrderConfig, Dict]] = None, + **kwargs, + ): + if backbone_config is None: + backbone_config = _build_default_backbone_config() + if isinstance(reading_order_config, PPDocLayoutV2ReadingOrderConfig): + reading_order = reading_order_config + else: + reading_order = PPDocLayoutV2ReadingOrderConfig(**(reading_order_config or {})) + + super().__init__( + backbone_config=backbone_config, + class_thresholds=class_thresholds or list(DEFAULT_CLASS_THRESHOLDS), + class_order=class_order or list(DEFAULT_CLASS_ORDER), + **kwargs, + ) + self.class_thresholds = list(class_thresholds or DEFAULT_CLASS_THRESHOLDS) + self.class_order = list(class_order or DEFAULT_CLASS_ORDER) + self.reading_order_config = reading_order + + def to_dict(self): + output = super().to_dict() + output["reading_order_config"] = self.reading_order_config.to_dict() + return output + + +class PPDocLayoutV2GlobalPointer(nn.Module): + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig): + super().__init__() + self.head_size = config.global_pointer_head_size + self.dense = nn.Linear(config.hidden_size, self.head_size * 2) + self.dropout = nn.Dropout(config.gp_dropout_value) + + def forward(self, inputs: torch.Tensor) -> torch.Tensor: + batch_size, sequence_length, _ = inputs.shape + projection = self.dense(inputs).reshape(batch_size, sequence_length, 2, self.head_size) + projection = self.dropout(projection) + queries, keys = torch.unbind(projection, dim=2) + logits = (queries @ keys.transpose(-2, -1)) / (self.head_size**0.5) + mask = torch.tril(torch.ones(sequence_length, sequence_length, device=logits.device)).bool() + return logits.masked_fill(mask.unsqueeze(0), -1e4) + + +class PPDocLayoutV2PositionRelationEmbedding(nn.Module): + inv_freq: torch.Tensor + + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig, device=None): + super().__init__() + self.config = config + self.embed_dim = config.relation_bias_embed_dim + self.scale = config.relation_bias_scale + self.pos_proj = nn.Conv2d( + in_channels=self.embed_dim * 4, + out_channels=config.num_attention_heads, + kernel_size=1, + ) + inv_freq, _ = self.compute_default_rope_parameters(config, device) + self.register_buffer("inv_freq", inv_freq, persistent=False) + + @staticmethod + def compute_default_rope_parameters( + config: PPDocLayoutV2ReadingOrderConfig, + device: Optional[torch.device] = None, + ) -> Tuple[torch.Tensor, float]: + base = config.relation_bias_theta + dim = config.relation_bias_embed_dim + half_dim = dim // 2 + inv_freq = 1.0 / ( + base ** (torch.arange(0, dim, 2, dtype=torch.int64).to(device=device, dtype=torch.float) / half_dim) + ) + return inv_freq, 1.0 + + def box_relative_encoding( + self, + source_boxes: torch.Tensor, + target_boxes: Optional[torch.Tensor] = None, + epsilon: float = 1e-5, + ) -> torch.Tensor: + source_boxes = source_boxes.unsqueeze(-2) + target_boxes = source_boxes if target_boxes is None else target_boxes.unsqueeze(-3) + source_coordinates, source_dim = source_boxes[..., :2], source_boxes[..., 2:] + target_coordinates, target_dim = target_boxes[..., :2], target_boxes[..., 2:] + coordinate_difference = torch.abs(source_coordinates - target_coordinates) + relative_coordinates = torch.log(coordinate_difference / (source_dim + epsilon) + 1.0) + relative_dim = torch.log((source_dim + epsilon) / (target_dim + epsilon)) + return torch.cat([relative_coordinates, relative_dim], dim=-1) + + def get_position_embedding(self, x: torch.Tensor, scale: float = 100.0) -> torch.Tensor: + embedding = (x * scale).unsqueeze(-1) * self.inv_freq + return torch.cat((embedding.sin(), embedding.cos()), dim=-1).flatten(start_dim=-2).to(x.dtype) + + def forward(self, source_boxes: torch.Tensor, target_boxes: Optional[torch.Tensor] = None) -> torch.Tensor: + target_boxes = source_boxes if target_boxes is None else target_boxes + with torch.no_grad(): + relative_encoding = self.box_relative_encoding(source_boxes, target_boxes) + position_embedding = self.get_position_embedding(relative_encoding, self.scale).permute(0, 3, 1, 2) + return self.pos_proj(position_embedding) + + +class PPDocLayoutV2ReadingOrderSelfAttention(nn.Module): + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig): + super().__init__() + if config.hidden_size % config.num_attention_heads != 0 and not hasattr(config, "embedding_size"): + raise ValueError( + f"The hidden size ({config.hidden_size}) is not a multiple of the number of attention heads " + f"({config.num_attention_heads})" + ) + + self.num_attention_heads = config.num_attention_heads + self.attention_head_size = int(config.hidden_size / config.num_attention_heads) + self.all_head_size = self.num_attention_heads * self.attention_head_size + self.query = nn.Linear(config.hidden_size, self.all_head_size) + self.key = nn.Linear(config.hidden_size, self.all_head_size) + self.value = nn.Linear(config.hidden_size, self.all_head_size) + self.dropout = nn.Dropout(config.attention_probs_dropout_prob) + self.has_relative_attention_bias = config.has_relative_attention_bias + self.has_spatial_attention_bias = config.has_spatial_attention_bias + + @staticmethod + def cogview_attention(attention_scores: torch.Tensor, alpha: float = 32.0) -> torch.Tensor: + scaled_attention_scores = attention_scores / alpha + max_value = scaled_attention_scores.amax(dim=-1, keepdim=True) + return nn.Softmax(dim=-1)((scaled_attention_scores - max_value) * alpha) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + head_mask: Optional[torch.Tensor] = None, + output_attentions: bool = False, + rel_pos: Optional[torch.Tensor] = None, + rel_2d_pos: Optional[torch.Tensor] = None, + ): + batch_size, _, _ = hidden_states.shape + query_layer = ( + self.query(hidden_states) + .view(batch_size, -1, self.num_attention_heads, self.attention_head_size) + .transpose(1, 2) + ) + key_layer = ( + self.key(hidden_states) + .view(batch_size, -1, self.num_attention_heads, self.attention_head_size) + .transpose(1, 2) + ) + value_layer = ( + self.value(hidden_states) + .view(batch_size, -1, self.num_attention_heads, self.attention_head_size) + .transpose(1, 2) + ) + + attention_scores = torch.matmul(query_layer / (self.attention_head_size**0.5), key_layer.transpose(-1, -2)) + if rel_2d_pos is not None: + attention_scores = attention_scores + rel_2d_pos + elif self.has_relative_attention_bias and rel_pos is not None: + attention_scores = attention_scores + rel_pos / (self.attention_head_size**0.5) + + if attention_mask is not None: + attention_scores = attention_scores + attention_mask + + attention_probs = self.cogview_attention(attention_scores) + attention_probs = self.dropout(attention_probs) + if head_mask is not None: + attention_probs = attention_probs * head_mask + + context_layer = torch.matmul(attention_probs, value_layer) + context_layer = context_layer.permute(0, 2, 1, 3).contiguous() + context_layer = context_layer.view(*context_layer.size()[:-2], self.all_head_size) + outputs = (context_layer, attention_probs) if output_attentions else (context_layer,) + return outputs + + +class PPDocLayoutV2ReadingOrderSelfOutput(nn.Module): + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig): + super().__init__() + self.dense = nn.Linear(config.hidden_size, config.hidden_size) + self.dropout = nn.Dropout(config.hidden_dropout_prob) + self.norm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) + + def forward(self, hidden_states: torch.Tensor, input_tensor: torch.Tensor) -> torch.Tensor: + hidden_states = self.dense(hidden_states) + hidden_states = self.dropout(hidden_states) + return self.norm(hidden_states + input_tensor) + + +class PPDocLayoutV2ReadingOrderIntermediate(nn.Module): + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig): + super().__init__() + self.dense = nn.Linear(config.hidden_size, config.intermediate_size) + if isinstance(config.hidden_act, str): + self.intermediate_act_fn = ACT2FN[config.hidden_act] + else: + self.intermediate_act_fn = config.hidden_act + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + return self.intermediate_act_fn(self.dense(hidden_states)) + + +class PPDocLayoutV2ReadingOrderOutput(nn.Module): + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig): + super().__init__() + self.dense = nn.Linear(config.intermediate_size, config.hidden_size) + self.dropout = nn.Dropout(config.hidden_dropout_prob) + self.norm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) + + def forward(self, hidden_states: torch.Tensor, input_tensor: torch.Tensor) -> torch.Tensor: + hidden_states = self.dense(hidden_states) + hidden_states = self.dropout(hidden_states) + return self.norm(hidden_states + input_tensor) + + +class PPDocLayoutV2ReadingOrderAttention(nn.Module): + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig): + super().__init__() + self.self = PPDocLayoutV2ReadingOrderSelfAttention(config) + self.output = PPDocLayoutV2ReadingOrderSelfOutput(config) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + head_mask: Optional[torch.Tensor] = None, + output_attentions: bool = False, + rel_pos: Optional[torch.Tensor] = None, + rel_2d_pos: Optional[torch.Tensor] = None, + ): + self_outputs = self.self( + hidden_states, + attention_mask=attention_mask, + head_mask=head_mask, + output_attentions=output_attentions, + rel_pos=rel_pos, + rel_2d_pos=rel_2d_pos, + ) + attention_output = self.output(self_outputs[0], hidden_states) + return (attention_output,) + self_outputs[1:] + + +class PPDocLayoutV2ReadingOrderLayer(nn.Module): + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig): + super().__init__() + self.attention = PPDocLayoutV2ReadingOrderAttention(config) + self.intermediate = PPDocLayoutV2ReadingOrderIntermediate(config) + self.output = PPDocLayoutV2ReadingOrderOutput(config) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + head_mask: Optional[torch.Tensor] = None, + output_attentions: bool = False, + rel_pos: Optional[torch.Tensor] = None, + rel_2d_pos: Optional[torch.Tensor] = None, + ): + attention_outputs = self.attention( + hidden_states, + attention_mask=attention_mask, + head_mask=head_mask, + output_attentions=output_attentions, + rel_pos=rel_pos, + rel_2d_pos=rel_2d_pos, + ) + attention_output = attention_outputs[0] + layer_output = self.output(self.intermediate(attention_output), attention_output) + return (layer_output,) + attention_outputs[1:] + + +class PPDocLayoutV2ReadingOrderEncoder(nn.Module): + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig): + super().__init__() + self.config = config + self.layer = nn.ModuleList([PPDocLayoutV2ReadingOrderLayer(config) for _ in range(config.num_hidden_layers)]) + self.has_relative_attention_bias = config.has_relative_attention_bias + self.has_spatial_attention_bias = config.has_spatial_attention_bias + self.gradient_checkpointing = False + + if self.has_relative_attention_bias: + self.rel_pos_bins = config.rel_pos_bins + self.max_rel_pos = config.max_rel_pos + self.rel_pos_bias = nn.Linear(self.rel_pos_bins, config.num_attention_heads, bias=False) + + self.rel_bias_module = PPDocLayoutV2PositionRelationEmbedding(config) + + @staticmethod + def relative_position_bucket( + relative_position: torch.Tensor, + bidirectional: bool = True, + num_buckets: int = 32, + max_distance: int = 128, + ) -> torch.Tensor: + ret = 0 + if bidirectional: + num_buckets //= 2 + ret += (relative_position > 0).long() * num_buckets + relative_position = torch.abs(relative_position) + else: + relative_position = torch.max(-relative_position, torch.zeros_like(relative_position)) + + max_exact = num_buckets // 2 + is_small = relative_position < max_exact + val_if_large = max_exact + ( + torch.log(relative_position.float() / max_exact) / math.log(max_distance / max_exact) + * (num_buckets - max_exact) + ).to(torch.long) + val_if_large = torch.min(val_if_large, torch.full_like(val_if_large, num_buckets - 1)) + return ret + torch.where(is_small, relative_position, val_if_large) + + def _cal_1d_pos_emb(self, position_ids: torch.Tensor) -> torch.Tensor: + rel_pos_mat = position_ids.unsqueeze(-2) - position_ids.unsqueeze(-1) + rel_pos = self.relative_position_bucket( + rel_pos_mat, + num_buckets=self.rel_pos_bins, + max_distance=self.max_rel_pos, + ) + with torch.no_grad(): + rel_pos = self.rel_pos_bias.weight.t()[rel_pos].permute(0, 3, 1, 2) + return rel_pos.contiguous() + + def _cal_2d_pos_emb(self, bbox: torch.Tensor) -> torch.Tensor: + x_min, y_min, x_max, y_max = bbox[..., 0], bbox[..., 1], bbox[..., 2], bbox[..., 3] + width = (x_max - x_min).clamp(min=1e-3) + height = (y_max - y_min).clamp(min=1e-3) + center_x = (x_min + x_max) * 0.5 + center_y = (y_min + y_max) * 0.5 + boxes = torch.stack([center_x, center_y, width, height], dim=-1) + return self.rel_bias_module(boxes) + + def forward( + self, + hidden_states: torch.Tensor, + bbox: Optional[torch.Tensor] = None, + attention_mask: Optional[torch.Tensor] = None, + head_mask: Optional[torch.Tensor] = None, + output_attentions: bool = False, + output_hidden_states: bool = False, + return_dict: bool = True, + position_ids: Optional[torch.Tensor] = None, + ): + all_hidden_states = () if output_hidden_states else None + all_self_attentions = () if output_attentions else None + + rel_pos = self._cal_1d_pos_emb(position_ids) if self.has_relative_attention_bias and position_ids is not None else None + rel_2d_pos = self._cal_2d_pos_emb(bbox) if self.has_spatial_attention_bias and bbox is not None else None + + for i, layer_module in enumerate(self.layer): + if output_hidden_states: + all_hidden_states = all_hidden_states + (hidden_states,) + layer_head_mask = head_mask[i] if head_mask is not None else None + layer_outputs = layer_module( + hidden_states, + attention_mask=attention_mask, + head_mask=layer_head_mask, + output_attentions=output_attentions, + rel_pos=rel_pos, + rel_2d_pos=rel_2d_pos, + ) + hidden_states = layer_outputs[0] + if output_attentions: + all_self_attentions = all_self_attentions + (layer_outputs[1],) + + if output_hidden_states: + all_hidden_states = all_hidden_states + (hidden_states,) + + if not return_dict: + return tuple(v for v in [hidden_states, all_hidden_states, all_self_attentions] if v is not None) + + return BaseModelOutput( + last_hidden_state=hidden_states, + hidden_states=all_hidden_states, + attentions=all_self_attentions, + ) + + +class PPDocLayoutV2TextEmbeddings(LayoutLMv3TextEmbeddings): + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig): + super().__init__(config) + del self.LayerNorm + self.norm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps) + spatial_embed_dim = 4 * config.coordinate_size + 2 * config.shape_size + self.spatial_proj = nn.Linear(spatial_embed_dim, config.hidden_size) + + def forward( + self, + input_ids: Optional[torch.Tensor] = None, + bbox: Optional[torch.Tensor] = None, + token_type_ids: Optional[torch.Tensor] = None, + position_ids: Optional[torch.Tensor] = None, + inputs_embeds: Optional[torch.Tensor] = None, + ) -> torch.Tensor: + if position_ids is None: + if input_ids is not None: + position_ids = self.create_position_ids_from_input_ids(input_ids, self.padding_idx).to(input_ids.device) + else: + position_ids = self.create_position_ids_from_inputs_embeds(inputs_embeds) + + if input_ids is not None: + input_shape = input_ids.size() + else: + input_shape = inputs_embeds.size()[:-1] + + if token_type_ids is None: + token_type_ids = torch.zeros(input_shape, dtype=torch.long, device=self.position_ids.device) + + if inputs_embeds is None: + inputs_embeds = self.word_embeddings(input_ids) + + embeddings = inputs_embeds + self.token_type_embeddings(token_type_ids) + embeddings = embeddings + self.position_embeddings(position_ids) + spatial_position_embeddings = self.spatial_proj(self.calculate_spatial_position_embeddings(bbox)) + return embeddings + spatial_position_embeddings + + +class PPDocLayoutV2PreTrainedModel(RTDetrPreTrainedModel): + config_class = PPDocLayoutV2Config + + @torch.no_grad() + def _init_weights(self, module): + super()._init_weights(module) + if isinstance(module, PPDocLayoutV2TextEmbeddings): + module.position_ids.copy_(torch.arange(module.position_ids.shape[-1]).expand((1, -1))) + if isinstance(module, nn.Embedding): + nn.init.normal_(module.weight, mean=0.0, std=self.config.initializer_range) + if module.padding_idx is not None: + module.weight.data[module.padding_idx].zero_() + if isinstance(module, PPDocLayoutV2PositionRelationEmbedding): + inv_freq, _ = module.compute_default_rope_parameters(module.config, module.inv_freq.device) + module.register_buffer("inv_freq", inv_freq, persistent=False) + + +class PPDocLayoutV2ReadingOrder(PPDocLayoutV2PreTrainedModel): + config_class = PPDocLayoutV2ReadingOrderConfig + + def __init__(self, config: PPDocLayoutV2ReadingOrderConfig): + super().__init__(config) + self.embeddings = PPDocLayoutV2TextEmbeddings(config) + self.label_embeddings = nn.Embedding(config.num_classes, config.hidden_size) + self.label_features_projection = nn.Linear(config.hidden_size, config.hidden_size) + self.encoder = PPDocLayoutV2ReadingOrderEncoder(config) + self.relative_head = PPDocLayoutV2GlobalPointer(config) + self.post_init() + + def forward( + self, + boxes: torch.Tensor, + labels: Optional[torch.Tensor] = None, + mask: Optional[torch.Tensor] = None, + ) -> torch.Tensor: + if mask is None: + raise ValueError("PP-DocLayoutV2 reading-order inference requires a mask tensor.") + + device = mask.device + batch_size, seq_len = mask.shape + num_pred = mask.sum(dim=1) + + input_ids = torch.full( + (batch_size, seq_len + 2), + self.config.pad_token_id, + dtype=torch.long, + device=device, + ) + input_ids[:, 0] = self.config.start_token_id + pred_col_idx = torch.arange(seq_len + 2, device=device).unsqueeze(0) + pred_mask = (pred_col_idx >= 1) & (pred_col_idx <= num_pred.unsqueeze(1)) + input_ids[pred_mask] = self.config.pred_token_id + input_ids[torch.arange(batch_size, device=device), num_pred + 1] = self.config.end_token_id + + pad_box = torch.zeros((batch_size, 1, boxes.shape[-1]), dtype=boxes.dtype, device=device) + pad_boxes = torch.cat([pad_box, boxes, pad_box], dim=1) + bbox_embedding = self.embeddings(input_ids=input_ids, bbox=pad_boxes.long()) + + if labels is not None: + label_proj = self.label_features_projection(self.label_embeddings(labels)) + pad_label = torch.zeros((batch_size, 1, label_proj.shape[-1]), dtype=label_proj.dtype, device=device) + label_proj = torch.cat([pad_label, label_proj, pad_label], dim=1) + else: + label_proj = torch.zeros_like(bbox_embedding) + + final_embeddings = self.embeddings.norm(bbox_embedding + label_proj) + final_embeddings = self.embeddings.dropout(final_embeddings) + + attention_mask = pred_col_idx < (num_pred + 2).unsqueeze(1) + attention_mask = _create_bidirectional_mask(final_embeddings, attention_mask) + position_ids = self.embeddings.create_position_ids_from_input_ids(input_ids, self.embeddings.padding_idx) + encoder_output = self.encoder( + hidden_states=final_embeddings, + bbox=pad_boxes, + attention_mask=attention_mask, + position_ids=position_ids, + ) + token = encoder_output.last_hidden_state[:, 1 : 1 + seq_len, :] + return self.relative_head(token) + + +class PPDocLayoutV2Model(RTDetrModel): + def __init__(self, config: PPDocLayoutV2Config): + super().__init__(config) + self.denoising_class_embed = nn.Embedding(config.num_labels, config.d_model) + nn.init.xavier_uniform_(self.denoising_class_embed.weight) + + +class PPDocLayoutV2ForObjectDetection(RTDetrForObjectDetection): + config_class = PPDocLayoutV2Config + _keys_to_ignore_on_load_missing = ["num_batches_tracked", "rel_pos_y_bias", "rel_pos_x_bias"] + + def __init__(self, config: PPDocLayoutV2Config): + super().__init__(config) + self.model = PPDocLayoutV2Model(config) + self.model.decoder.class_embed = self.class_embed + self.model.decoder.bbox_embed = self.bbox_embed + self.reading_order = PPDocLayoutV2ReadingOrder(config.reading_order_config) + self.num_queries = config.num_queries + self.config = config + self.post_init() + + def forward( + self, + pixel_values: torch.FloatTensor, + pixel_mask: Optional[torch.LongTensor] = None, + encoder_outputs: Optional[torch.FloatTensor] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + decoder_inputs_embeds: Optional[torch.FloatTensor] = None, + labels: Optional[list[dict]] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + **kwargs, + ): + if labels is not None: + raise ValueError("PPDocLayoutV2ForObjectDetection only supports inference.") + + use_return_dict = return_dict if return_dict is not None else self.config.use_return_dict + outputs = self.model( + pixel_values, + pixel_mask=pixel_mask, + encoder_outputs=encoder_outputs, + inputs_embeds=inputs_embeds, + decoder_inputs_embeds=decoder_inputs_embeds, + labels=None, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=True, + ) + + raw_bboxes = outputs.intermediate_reference_points[:, -1] + logits = outputs.intermediate_logits[:, -1] + + box_centers, box_sizes = raw_bboxes.split(2, dim=-1) + bboxes = torch.cat([box_centers - 0.5 * box_sizes, box_centers + 0.5 * box_sizes], dim=-1) * 1000.0 + bboxes = bboxes.clamp_(0.0, 1000.0) + + max_logits, class_ids = logits.max(dim=-1) + max_probs = max_logits.sigmoid() + class_thresholds = torch.tensor(self.config.class_thresholds, dtype=torch.float32, device=logits.device) + thresholds = class_thresholds[class_ids] + mask = max_probs >= thresholds + indices = torch.argsort(mask.to(torch.int8), dim=1, descending=True) + + sorted_class_ids = torch.take_along_dim(class_ids, indices, dim=1) + sorted_boxes = torch.take_along_dim(bboxes, indices[..., None].expand(-1, -1, 4), dim=1) + pred_boxes = torch.take_along_dim(raw_bboxes, indices[..., None].expand(-1, -1, 4), dim=1) + logits = torch.take_along_dim(logits, indices[..., None].expand(-1, -1, logits.size(-1)), dim=1) + sorted_mask = torch.take_along_dim(mask, indices, dim=1) + + pad_boxes = torch.where(sorted_mask[..., None], sorted_boxes, torch.zeros_like(sorted_boxes)) + pad_class_ids = torch.where(sorted_mask, sorted_class_ids, torch.zeros_like(sorted_class_ids)) + class_order = torch.tensor(self.config.class_order, dtype=torch.long, device=logits.device) + pad_class_ids = class_order[pad_class_ids] + + order_logits = self.reading_order( + boxes=pad_boxes, + labels=pad_class_ids, + mask=mask, + )[:, :, : self.num_queries] + + result = PPDocLayoutV2ForObjectDetectionOutput( + logits=logits, + pred_boxes=pred_boxes, + order_logits=order_logits, + last_hidden_state=outputs.last_hidden_state, + intermediate_hidden_states=outputs.intermediate_hidden_states, + intermediate_logits=outputs.intermediate_logits, + intermediate_reference_points=outputs.intermediate_reference_points, + intermediate_predicted_corners=outputs.intermediate_predicted_corners, + initial_reference_points=outputs.initial_reference_points, + decoder_hidden_states=outputs.decoder_hidden_states, + decoder_attentions=outputs.decoder_attentions, + cross_attentions=outputs.cross_attentions, + encoder_last_hidden_state=outputs.encoder_last_hidden_state, + encoder_hidden_states=outputs.encoder_hidden_states, + encoder_attentions=outputs.encoder_attentions, + init_reference_points=outputs.init_reference_points, + enc_topk_logits=outputs.enc_topk_logits, + enc_topk_bboxes=outputs.enc_topk_bboxes, + enc_outputs_class=outputs.enc_outputs_class, + enc_outputs_coord_logits=outputs.enc_outputs_coord_logits, + denoising_meta_values=outputs.denoising_meta_values, + ) + return result if use_return_dict else result.to_tuple() + + +class PPDocLayoutV2LayoutModel: + def __init__( + self, + weight: str, + device: Optional[str] = "cuda", + imgsz: Tuple[int, int] = DEFAULT_IMAGE_SIZE, + conf: float = 0.5, + use_paddlex_filter_boxes: bool = True, + ): + self.device = device + self.conf = conf + self.use_paddlex_filter_boxes = use_paddlex_filter_boxes + self.model_dir = weight + self.preprocess_config = _load_preprocess_config(self.model_dir) + size = self.preprocess_config.get("size", {}) + self.imgsz = ( + int(size.get("width", imgsz[0])), + int(size.get("height", imgsz[1])), + ) + self.rescale_factor = float(self.preprocess_config.get("rescale_factor", DEFAULT_RESCALE_FACTOR)) + self.config = PPDocLayoutV2Config.from_pretrained(self.model_dir) + self.model = PPDocLayoutV2ForObjectDetection.from_pretrained(self.model_dir, config=self.config) + self.model.to(self.device) + self.model.eval() + + @staticmethod + def _get_order_seqs(order_logits: torch.Tensor) -> torch.Tensor: + order_scores = torch.sigmoid(order_logits) + batch_size, sequence_length, _ = order_scores.shape + order_votes = order_scores.triu(diagonal=1).sum(dim=1) + ( + 1.0 - order_scores.transpose(1, 2) + ).tril(diagonal=-1).sum(dim=1) + order_pointers = torch.argsort(order_votes, dim=1) + order_seq = torch.empty_like(order_pointers) + ranks = torch.arange(sequence_length, device=order_pointers.device, dtype=order_pointers.dtype).expand( + batch_size, -1 + ) + order_seq.scatter_(1, order_pointers, ranks) + return order_seq + + def _preprocess_single_image(self, image: Union[np.ndarray, Image.Image]) -> Tuple[torch.Tensor, Tuple[int, int]]: + if isinstance(image, np.ndarray): + pil_image = Image.fromarray(image) + elif isinstance(image, Image.Image): + pil_image = image + else: + raise TypeError(f"Unsupported image type for PP-DocLayoutV2: {type(image)}") + + pil_image = pil_image.convert("RGB") + target_size = pil_image.size[1], pil_image.size[0] + pixel_values = tvF.pil_to_tensor(pil_image) + pixel_values = tvF.resize( + pixel_values, + size=[self.imgsz[1], self.imgsz[0]], + interpolation=InterpolationMode.BICUBIC, + antialias=False, + ) + pixel_values = pixel_values.to(dtype=torch.float32) * self.rescale_factor + return pixel_values, target_size + + def _post_process_object_detection( + self, + outputs: PPDocLayoutV2ForObjectDetectionOutput, + target_sizes: Sequence[Tuple[int, int]], + ) -> List[Dict[str, torch.Tensor]]: + boxes = outputs.pred_boxes + logits = outputs.logits + order_logits = outputs.order_logits + order_seqs = self._get_order_seqs(order_logits) + + box_centers, box_dims = torch.split(boxes, 2, dim=-1) + boxes = torch.cat([box_centers - 0.5 * box_dims, box_centers + 0.5 * box_dims], dim=-1) + + img_height, img_width = torch.as_tensor(target_sizes, device=boxes.device).unbind(1) + scale_factor = torch.stack([img_width, img_height, img_width, img_height], dim=1).to(boxes.device) + boxes = boxes * scale_factor[:, None, :] + + num_top_queries = logits.shape[1] + num_classes = logits.shape[2] + scores = torch.sigmoid(logits) + scores, index = torch.topk(scores.flatten(1), num_top_queries, dim=-1) + labels = index % num_classes + index = index // num_classes + boxes = boxes.gather(dim=1, index=index.unsqueeze(-1).repeat(1, 1, boxes.shape[-1])) + order_seqs = order_seqs.gather(dim=1, index=index) + + results = [] + for score, label, box, order_seq in zip(scores, labels, boxes, order_seqs): + keep = score >= self.conf + order_seq = order_seq[keep] + order_seq, indices = torch.sort(order_seq) + results.append( + { + "scores": score[keep][indices], + "labels": label[keep][indices], + "boxes": box[keep][indices], + "order_seq": order_seq, + } + ) + return results + + def _label_id_to_label_name(self, label_id: int) -> str: + if 0 <= label_id < len(PP_DOCLAYOUT_V2_LABELS): + return PP_DOCLAYOUT_V2_LABELS[label_id] + return str(self.config.id2label.get(label_id, self.config.id2label.get(str(label_id), label_id))) + + @staticmethod + def _clip_bbox(box: Sequence[float], image_size: Tuple[int, int]) -> Optional[List[int]]: + return normalize_to_int_bbox(box, image_size=image_size) + + def _parse_prediction(self, result: Dict[str, torch.Tensor], image_size: Tuple[int, int]) -> List[Dict]: + layout_res = [] + for index, (score, label_id, box, _order_seq) in enumerate( + zip( + result["scores"], + result["labels"], + result["boxes"], + result["order_seq"], + ), + start=1, + ): + bbox = self._clip_bbox(box.tolist(), image_size) + if bbox is None: + continue + + cls_id = int(label_id.item()) + layout_res.append( + { + "cls_id": cls_id, + "label": self._label_id_to_label_name(cls_id), + "score": round(float(score.item()), 4), + "bbox": bbox, + "index": index, + } + ) + return layout_res + + @staticmethod + def _calculate_bbox_area(box: Sequence[float]) -> float: + xmin, ymin, xmax, ymax = [float(v) for v in box] + return max(0.0, xmax - xmin) * max(0.0, ymax - ymin) + + @classmethod + def _calculate_intersection_area(cls, box1: Sequence[float], box2: Sequence[float]) -> float: + x1_min, y1_min, x1_max, y1_max = [float(v) for v in box1] + x2_min, y2_min, x2_max, y2_max = [float(v) for v in box2] + inter_xmin = max(x1_min, x2_min) + inter_ymin = max(y1_min, y2_min) + inter_xmax = min(x1_max, x2_max) + inter_ymax = min(y1_max, y2_max) + return cls._calculate_bbox_area((inter_xmin, inter_ymin, inter_xmax, inter_ymax)) + + @classmethod + def _calculate_overlap_ratio(cls, box1: Sequence[float], box2: Sequence[float]) -> float: + inter_area = cls._calculate_intersection_area(box1, box2) + ref_area = min(cls._calculate_bbox_area(box1), cls._calculate_bbox_area(box2)) + if ref_area <= 0.0: + return 0.0 + return inter_area / ref_area + + @classmethod + def _calculate_iou(cls, box1: Sequence[float], box2: Sequence[float]) -> float: + inter_area = cls._calculate_intersection_area(box1, box2) + union_area = cls._calculate_bbox_area(box1) + cls._calculate_bbox_area(box2) - inter_area + if union_area <= 0.0: + return 0.0 + return inter_area / union_area + + @classmethod + def _calculate_cover_ratio(cls, box1: Sequence[float], box2: Sequence[float]) -> float: + box1_area = cls._calculate_bbox_area(box1) + if box1_area <= 0.0: + return 0.0 + return cls._calculate_intersection_area(box1, box2) / box1_area + + @staticmethod + def _is_reference_box(box: Dict) -> bool: + return box.get("label") == "reference" or int(box.get("cls_id", -1)) == 18 + + @staticmethod + def _is_display_formula_box(box: Dict) -> bool: + return box.get("label") == "display_formula" or int(box.get("cls_id", -1)) == 5 + + @staticmethod + def _is_inline_formula_box(box: Dict) -> bool: + return box.get("label") == "inline_formula" or int(box.get("cls_id", -1)) == 15 + + @staticmethod + def _is_formula_box(box: Dict) -> bool: + return ( + PPDocLayoutV2LayoutModel._is_display_formula_box(box) + or PPDocLayoutV2LayoutModel._is_inline_formula_box(box) + ) + + @staticmethod + def _is_formula_number_box(box: Dict) -> bool: + return box.get("label") == "formula_number" or int(box.get("cls_id", -1)) == 11 + + @staticmethod + def _set_formula_label(box: Dict, label: str) -> None: + if label == "inline_formula": + cls_id = 15 + elif label == "display_formula": + cls_id = 5 + else: + raise ValueError(f"Unsupported formula label: {label}") + box["label"] = label + box["cls_id"] = cls_id + + @staticmethod + def _union_bbox(box1: Sequence[float], box2: Sequence[float]) -> List[int]: + x1_min, y1_min, x1_max, y1_max = [float(v) for v in box1] + x2_min, y2_min, x2_max, y2_max = [float(v) for v in box2] + return [ + math.floor(min(x1_min, x2_min)), + math.floor(min(y1_min, y2_min)), + math.ceil(max(x1_max, x2_max)), + math.ceil(max(y1_max, y2_max)), + ] + + @staticmethod + def _renumber_indices(boxes: List[Dict]) -> List[Dict]: + for index, box in enumerate(boxes, start=1): + box["index"] = index + return boxes + + @classmethod + def _deduplicate_boxes_by_iou( + cls, + boxes: List[Dict], + iou_threshold: float = 0.9, + ) -> List[Dict]: + if len(boxes) <= 1: + return boxes + + sorted_candidates = sorted( + enumerate(boxes), + key=lambda item: (-float(item[1].get("score", 0.0)), item[0]), + ) + suppressed_indexes = set() + kept_indexes = [] + + for candidate_pos, (current_index, current_box) in enumerate(sorted_candidates): + if current_index in suppressed_indexes: + continue + kept_indexes.append(current_index) + for other_index, other_box in sorted_candidates[candidate_pos + 1 :]: + if other_index in suppressed_indexes: + continue + if cls._calculate_iou(current_box["bbox"], other_box["bbox"]) > iou_threshold: + suppressed_indexes.add(other_index) + + kept_indexes.sort() + return [boxes[index] for index in kept_indexes] + + @classmethod + def _merge_nested_formula_boxes( + cls, + boxes: List[Dict], + overlap_threshold: float = 0.7, + ) -> List[Dict]: + if len(boxes) <= 1: + return boxes + + changed = True + while changed: + changed = False + formula_indexes = [index for index, box in enumerate(boxes) if cls._is_formula_box(box)] + for formula_pos, left_index in enumerate(formula_indexes): + for right_index in formula_indexes[formula_pos + 1 :]: + left_box = boxes[left_index] + right_box = boxes[right_index] + if cls._calculate_overlap_ratio(left_box["bbox"], right_box["bbox"]) < overlap_threshold: + continue + + left_area = cls._calculate_bbox_area(left_box["bbox"]) + right_area = cls._calculate_bbox_area(right_box["bbox"]) + if left_area > right_area: + keep_index, drop_index = left_index, right_index + elif right_area > left_area: + keep_index, drop_index = right_index, left_index + else: + left_score = float(left_box.get("score", 0.0)) + right_score = float(right_box.get("score", 0.0)) + keep_index, drop_index = ( + (left_index, right_index) + if left_score >= right_score + else (right_index, left_index) + ) + + keep_box = boxes[keep_index] + drop_box = boxes[drop_index] + keep_box["bbox"] = cls._union_bbox(keep_box["bbox"], drop_box["bbox"]) + keep_box["score"] = round( + max(float(keep_box.get("score", 0.0)), float(drop_box.get("score", 0.0))), + 4, + ) + del boxes[drop_index] + changed = True + break + if changed: + break + + return boxes + + @classmethod + def _relabel_formula_boxes( + cls, + boxes: List[Dict], + overlap_threshold: float = 0.7, + ) -> List[Dict]: + parent_candidates = [ + box + for box in boxes + if ( + not cls._is_formula_box(box) + and not cls._is_formula_number_box(box) + and not cls._is_reference_box(box) + ) + ] + + for box in boxes: + if not cls._is_formula_box(box): + continue + target_label = "display_formula" + for parent_box in parent_candidates: + if cls._calculate_cover_ratio(box["bbox"], parent_box["bbox"]) >= overlap_threshold: + target_label = "inline_formula" + break + cls._set_formula_label(box, target_label) + + return boxes + + @classmethod + def _apply_layout_post_process(cls, boxes: List[Dict]) -> List[Dict]: + processed_boxes = [{**box, "bbox": list(box["bbox"])} for box in boxes] + processed_boxes = cls._deduplicate_boxes_by_iou(processed_boxes, iou_threshold=0.9) + processed_boxes = cls._merge_nested_formula_boxes(processed_boxes, overlap_threshold=0.7) + processed_boxes = cls._relabel_formula_boxes(processed_boxes, overlap_threshold=0.7) + return cls._renumber_indices(processed_boxes) + + @classmethod + def _apply_paddlex_filter_boxes( + cls, + boxes: List[Dict], + drop_inline_formula: bool = True, + ) -> List[Dict]: + filtered_boxes = [dict(box) for box in boxes if not cls._is_reference_box(box)] + dropped_indexes = set() + + for i in range(len(filtered_boxes)): + if i in dropped_indexes: + continue + x1, y1, x2, y2 = filtered_boxes[i]["bbox"] + width = float(x2) - float(x1) + height = float(y2) - float(y1) + if ( + (width < 6.0 or height < 6.0) + and (drop_inline_formula or not cls._is_inline_formula_box(filtered_boxes[i])) + ): + dropped_indexes.add(i) + continue + + for j in range(i + 1, len(filtered_boxes)): + if i in dropped_indexes or j in dropped_indexes: + continue + + if ( + not drop_inline_formula + and ( + cls._is_inline_formula_box(filtered_boxes[i]) + or cls._is_inline_formula_box(filtered_boxes[j]) + ) + ): + continue + + overlap_ratio = cls._calculate_overlap_ratio( + filtered_boxes[i]["bbox"], + filtered_boxes[j]["bbox"], + ) + if ( + drop_inline_formula + and ( + cls._is_inline_formula_box(filtered_boxes[i]) + or cls._is_inline_formula_box(filtered_boxes[j]) + ) + ): + if overlap_ratio > 0.5: + if cls._is_inline_formula_box(filtered_boxes[i]): + dropped_indexes.add(i) + if cls._is_inline_formula_box(filtered_boxes[j]): + dropped_indexes.add(j) + continue + + if overlap_ratio > 0.7: + box_area_i = cls._calculate_bbox_area(filtered_boxes[i]["bbox"]) + box_area_j = cls._calculate_bbox_area(filtered_boxes[j]["bbox"]) + labels = {filtered_boxes[i]["label"], filtered_boxes[j]["label"]} + if labels & {"image", "table", "seal", "chart"} and len(labels) > 1: + if "table" not in labels or labels <= {"table", "image", "seal", "chart"}: + continue + if box_area_i >= box_area_j: + dropped_indexes.add(j) + else: + dropped_indexes.add(i) + + kept_boxes = [ + box for index, box in enumerate(filtered_boxes) if index not in dropped_indexes + ] + return cls._renumber_indices(kept_boxes) + + def predict( + self, + image: Union[np.ndarray, Image.Image], + use_paddlex_filter_boxes: Optional[bool] = None, + ) -> List[Dict]: + return self.batch_predict( + [image], + batch_size=1, + use_paddlex_filter_boxes=use_paddlex_filter_boxes, + )[0] + + def batch_predict( + self, + images: List[Union[np.ndarray, Image.Image]], + batch_size: int = 1, + use_paddlex_filter_boxes: Optional[bool] = None, + ) -> List[List[Dict]]: + if len(images) == 0: + return [] + + use_paddlex_filter_boxes = ( + self.use_paddlex_filter_boxes + if use_paddlex_filter_boxes is None + else use_paddlex_filter_boxes + ) + results: List[List[Dict]] = [] + with torch.no_grad(): + with tqdm(total=len(images), desc="Layout Predict") as pbar: + for start in range(0, len(images), batch_size): + batch_images = images[start : start + batch_size] + pixel_values_list = [] + target_sizes = [] + for image in batch_images: + pixel_values, target_size = self._preprocess_single_image(image) + pixel_values_list.append(pixel_values) + target_sizes.append(target_size) + + batch_tensor = torch.stack(pixel_values_list, dim=0).to(self.device) + outputs = self.model(pixel_values=batch_tensor) + predictions = self._post_process_object_detection(outputs, target_sizes) + for prediction, image_size in zip(predictions, target_sizes): + layout_res = self._parse_prediction(prediction, image_size) + if use_paddlex_filter_boxes: + layout_res = self._apply_paddlex_filter_boxes(layout_res, drop_inline_formula=False) + layout_res = self._apply_layout_post_process(layout_res) + results.append(layout_res) + pbar.update(len(batch_images)) + return results + + def visualize( + self, + image: Union[np.ndarray, Image.Image], + results: List[Dict], + ) -> Image.Image: + if isinstance(image, np.ndarray): + image = Image.fromarray(image) + image = image.convert("RGB").copy() + draw = ImageDraw.Draw(image) + font = ImageFont.load_default() + for res in sorted(results, key=lambda item: (item.get("index", 10**9), item.get("bbox", [0, 0, 0, 0])[1])): + xmin, ymin, xmax, ymax = res["bbox"] + color = _label_to_color(res["label"]) + draw.rectangle([xmin, ymin, xmax, ymax], outline=color, width=3) + + text = f"{res['index']}: {res['label']} {res['score']:.2f}" + text_top = int(round(ymin)) + text_bbox = draw.textbbox((0, 0), text, font=font) + text_width = text_bbox[2] - text_bbox[0] + text_height = text_bbox[3] - text_bbox[1] + pad = 3 + + if text_top - text_height - pad * 2 >= 0: + text_bg_top = text_top - text_height - pad * 2 + else: + text_bg_top = text_top + text_bg_bottom = text_bg_top + text_height + pad * 2 + text_bg_right = int(round(xmax)) + text_bg_left = text_bg_right - text_width - pad * 2 + + draw.rectangle( + [text_bg_left, text_bg_top, text_bg_right, text_bg_bottom], + fill=color, + ) + draw.text( + (text_bg_left + pad, text_bg_top + pad), + text, + fill="white", + font=font, + ) + return image + + +__all__ = [ + "PPDocLayoutV2Config", + "PPDocLayoutV2ForObjectDetection", + "PPDocLayoutV2LayoutModel", + "PPDocLayoutV2ReadingOrder", + "PPDocLayoutV2ReadingOrderConfig", +] + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description="PP-DocLayoutV2 local inference smoke test") + parser.add_argument("image", nargs="?", help="Path to an input image. If omitted, only model loading is tested.") + parser.add_argument("--model", default=None, help="Model name or path.") + parser.add_argument("--device", default=None, help="Runtime device, e.g. cpu/mps/cuda.") + parser.add_argument("--output", default=None, help="Optional path to save the visualization image.") + parser.add_argument("--no-show", action="store_true", help="Do not open the visualization window.") + args = parser.parse_args() + + if args.device is None: + from mineru.utils.config_reader import get_device + args.device = get_device() + + if args.model is None: + from mineru.utils.enum_class import ModelPath + from mineru.utils.models_download_utils import auto_download_and_get_model_root_path + args.model = str( + os.path.join(auto_download_and_get_model_root_path(ModelPath.pp_doclayout_v2), ModelPath.pp_doclayout_v2) + ) + + args.image = "/Users/myhloli/pdf/png/index.png" + + model = PPDocLayoutV2LayoutModel( + weight=args.model, + device=args.device, + ) + print(f"model loaded on {model.device}") + + if args.image: + with Image.open(args.image) as img: + results = model.predict(img) + print(json.dumps(results, ensure_ascii=False, indent=2)) + vis_img = model.visualize(img, results) + if args.output: + vis_img.save(args.output) + if not args.no_show: + vis_img.show() diff --git a/mineru/model/mfr/__init__.py b/mineru/model/mfr/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/mfr/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/mfr/pp_formulanet_plus_m/__init__.py b/mineru/model/mfr/pp_formulanet_plus_m/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/mfr/pp_formulanet_plus_m/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/mfr/pp_formulanet_plus_m/predict_formula.py b/mineru/model/mfr/pp_formulanet_plus_m/predict_formula.py new file mode 100644 index 000000000..33ac30a6e --- /dev/null +++ b/mineru/model/mfr/pp_formulanet_plus_m/predict_formula.py @@ -0,0 +1,211 @@ +# Copyright (c) Opendatalab. All rights reserved. +import math +import os +from pathlib import Path + +import torch +import yaml +from tqdm import tqdm + +from mineru.model.utils.pytorchocr.base_ocr_v20 import BaseOCRV20 +from mineru.model.utils.tools.infer import pytorchocr_utility + +from ..utils import build_mfr_batch_groups +from .processors import ( + LatexImageFormat, + ToBatch, + UniMERNetDecode, + UniMERNetImgDecode, + UniMERNetTestTransform, +) + + +class FormulaRecognizer(BaseOCRV20): + def __init__( + self, + weight_dir, + device="cpu", + ): + self.weights_path = os.path.join( + weight_dir, + "PP-FormulaNet_plus-M.pth", + ) + self.yaml_path = os.path.join( + Path(__file__).parent.parent.parent, + "utils", + "pytorchocr", + "utils", + "resources", + "pp_formulanet_arch_config.yaml", + ) + self.infer_yaml_path = os.path.join( + weight_dir, + "PP-FormulaNet_plus-M_inference.yml", + ) + + network_config = pytorchocr_utility.AnalysisConfig( + self.weights_path, + self.yaml_path, + ) + weights = self.read_pytorch_weights(self.weights_path) + + super(FormulaRecognizer, self).__init__(network_config) + + self.load_state_dict(weights) + self.device = torch.device(device) if isinstance(device, str) else device + self.net.to(self.device) + self.net.eval() + + with open(self.infer_yaml_path, "r", encoding="utf-8") as yaml_file: + data = yaml.load(yaml_file, Loader=yaml.FullLoader) + + self.pre_tfs = { + "UniMERNetImgDecode": UniMERNetImgDecode(input_size=(384, 384)), + "UniMERNetTestTransform": UniMERNetTestTransform(), + "LatexImageFormat": LatexImageFormat(), + "ToBatch": ToBatch(), + } + + self.post_op = UniMERNetDecode( + character_list=data["PostProcess"]["character_dict"] + ) + + @staticmethod + def _normalize_bbox(bbox, image): + if bbox is None: + return None + + xmin, ymin, xmax, ymax = [float(v) for v in bbox] + xmin = math.floor(xmin) + ymin = math.floor(ymin) + xmax = math.ceil(xmax) + ymax = math.ceil(ymax) + height, width = image.shape[:2] + xmin = max(0, min(width, xmin)) + xmax = max(0, min(width, xmax)) + ymin = max(0, min(height, ymin)) + ymax = max(0, min(height, ymax)) + if xmax <= xmin or ymax <= ymin: + return None + return xmin, ymin, xmax, ymax + + @staticmethod + def _item_to_bbox(item, image): + return FormulaRecognizer._normalize_bbox(item.get("bbox"), image) + + def _build_formula_items(self, mfd_res, image, interline_enable=True): + formula_list = [] + crop_targets = [] + + for item in mfd_res or []: + if not isinstance(item, dict): + continue + label = item.get("label") + if label not in ["inline_formula", "display_formula"]: + continue + if not interline_enable and label == "display_formula": + continue + + new_item = dict(item) + new_item.setdefault("latex", "") + formula_list.append(new_item) + + bbox = self._item_to_bbox(new_item, image) + if bbox is not None: + crop_targets.append((new_item, bbox)) + + return formula_list, crop_targets + + def predict( + self, + mfd_res, + image, + batch_size: int = 64, + interline_enable: bool = True, + ) -> list: + return self.batch_predict( + [mfd_res], + [image], + batch_size=batch_size, + interline_enable=interline_enable, + )[0] + + def batch_predict( + self, + images_mfd_res: list, + images: list, + batch_size: int = 64, + interline_enable: bool = True, + ) -> list: + if not images_mfd_res: + return [] + + if len(images_mfd_res) != len(images): + raise ValueError("images_mfd_res and images must have the same length.") + + images_formula_list = [] + mf_image_list = [] + backfill_list = [] + image_info = [] + + for mfd_res, image in zip(images_mfd_res, images): + formula_list, crop_targets = self._build_formula_items( + mfd_res, + image, + interline_enable=interline_enable, + ) + + for formula_item, (xmin, ymin, xmax, ymax) in crop_targets: + bbox_img = image[ymin:ymax, xmin:xmax] + area = (xmax - xmin) * (ymax - ymin) + + curr_idx = len(mf_image_list) + image_info.append((area, curr_idx, bbox_img)) + mf_image_list.append(bbox_img) + backfill_list.append(formula_item) + + images_formula_list.append(formula_list) + + if not image_info: + return images_formula_list + + image_info.sort(key=lambda x: x[0]) + sorted_areas = [x[0] for x in image_info] + sorted_indices = [x[1] for x in image_info] + sorted_images = [x[2] for x in image_info] + index_mapping = { + new_idx: old_idx for new_idx, old_idx in enumerate(sorted_indices) + } + + formula_requested_batch_size = max(1, batch_size // 2) + batch_groups = build_mfr_batch_groups( + sorted_areas, + formula_requested_batch_size, + ) + + batch_imgs = self.pre_tfs["UniMERNetImgDecode"](imgs=sorted_images) + batch_imgs = self.pre_tfs["UniMERNetTestTransform"](imgs=batch_imgs) + batch_imgs = self.pre_tfs["LatexImageFormat"](imgs=batch_imgs) + inp = self.pre_tfs["ToBatch"](imgs=batch_imgs) + inp = torch.from_numpy(inp[0]).to(self.device) + + rec_formula = [] + with torch.no_grad(): + with tqdm(total=len(inp), desc="MFR Predict") as pbar: + for batch_group in batch_groups: + batch_data = inp[batch_group] + batch_preds = [self.net(batch_data)] + batch_preds = [p.reshape([-1]) for p in batch_preds[0]] + batch_preds = [bp.cpu().numpy() for bp in batch_preds] + rec_formula += self.post_op(batch_preds) + pbar.update(len(batch_group)) + + unsorted_results = [""] * len(rec_formula) + for new_idx, latex in enumerate(rec_formula): + original_idx = index_mapping[new_idx] + unsorted_results[original_idx] = latex + + for res, latex in zip(backfill_list, unsorted_results): + res["latex"] = latex + + return images_formula_list diff --git a/mineru/model/mfr/pp_formulanet_plus_m/processors.py b/mineru/model/mfr/pp_formulanet_plus_m/processors.py new file mode 100644 index 000000000..452d70496 --- /dev/null +++ b/mineru/model/mfr/pp_formulanet_plus_m/processors.py @@ -0,0 +1,658 @@ +# Copyright (c) Opendatalab. All rights reserved. +import json +import numpy as np +import cv2 +import math +import re + +from PIL import Image, ImageOps +from typing import List, Optional, Tuple, Union, Dict, Any + +from loguru import logger +from tokenizers import AddedToken +from tokenizers import Tokenizer as TokenizerFast + +from mineru.model.mfr.utils import fix_latex_left_right, fix_latex_environments, remove_up_commands, \ + remove_unsupported_commands + + +class UniMERNetImgDecode(object): + """Class for decoding images for UniMERNet, including cropping margins, resizing, and padding.""" + + def __init__( + self, input_size: Tuple[int, int], random_padding: bool = False, **kwargs + ) -> None: + """Initializes the UniMERNetImgDecode class with input size and random padding options. + + Args: + input_size (tuple): The desired input size for the images (height, width). + random_padding (bool): Whether to use random padding for resizing. + **kwargs: Additional keyword arguments.""" + self.input_size = input_size + self.random_padding = random_padding + + def crop_margin(self, img: Image.Image) -> Image.Image: + """Crops the margin of the image based on grayscale thresholding. + + Args: + img (PIL.Image.Image): The input image. + + Returns: + PIL.Image.Image: The cropped image.""" + data = np.array(img.convert("L")) + data = data.astype(np.uint8) + max_val = data.max() + min_val = data.min() + if max_val == min_val: + return img + data = (data - min_val) / (max_val - min_val) * 255 + gray = 255 * (data < 200).astype(np.uint8) + coords = cv2.findNonZero(gray) # Find all non-zero points (text) + a, b, w, h = cv2.boundingRect(coords) # Find minimum spanning bounding box + return img.crop((a, b, w + a, h + b)) + + def get_dimensions(self, img: Union[Image.Image, np.ndarray]) -> List[int]: + """Gets the dimensions of the image. + + Args: + img (PIL.Image.Image or numpy.ndarray): The input image. + + Returns: + list: A list containing the number of channels, height, and width.""" + if hasattr(img, "getbands"): + channels = len(img.getbands()) + else: + channels = img.channels + width, height = img.size + return [channels, height, width] + + def _compute_resized_output_size( + self, + image_size: Tuple[int, int], + size: Union[int, Tuple[int, int]], + max_size: Optional[int] = None, + ) -> List[int]: + """Computes the resized output size of the image. + + Args: + image_size (tuple): The original size of the image (height, width). + size (int or tuple): The desired size for the smallest edge or both height and width. + max_size (int, optional): The maximum allowed size for the longer edge. + + Returns: + list: A list containing the new height and width.""" + if len(size) == 1: # specified size only for the smallest edge + h, w = image_size + short, long = (w, h) if w <= h else (h, w) + requested_new_short = size if isinstance(size, int) else size[0] + + new_short, new_long = requested_new_short, int( + requested_new_short * long / short + ) + + if max_size is not None: + if max_size <= requested_new_short: + raise ValueError( + f"max_size = {max_size} must be strictly greater than the requested " + f"size for the smaller edge size = {size}" + ) + if new_long > max_size: + new_short, new_long = int(max_size * new_short / new_long), max_size + + new_w, new_h = (new_short, new_long) if w <= h else (new_long, new_short) + else: # specified both h and w + new_w, new_h = size[1], size[0] + return [new_h, new_w] + + def resize( + self, img: Image.Image, size: Union[int, Tuple[int, int]] + ) -> Image.Image: + """Resizes the image to the specified size. + + Args: + img (PIL.Image.Image): The input image. + size (int or tuple): The desired size for the smallest edge or both height and width. + + Returns: + PIL.Image.Image: The resized image.""" + _, image_height, image_width = self.get_dimensions(img) + if isinstance(size, int): + size = [size] + max_size = None + output_size = self._compute_resized_output_size( + (image_height, image_width), size, max_size + ) + img = img.resize(tuple(output_size[::-1]), resample=2) + return img + + def img_decode(self, img: np.ndarray) -> Optional[np.ndarray]: + """Decodes the image by cropping margins, resizing, and adding padding. + + Args: + img (numpy.ndarray): The input image array. + + Returns: + numpy.ndarray: The decoded image array.""" + try: + img = self.crop_margin(Image.fromarray(img).convert("RGB")) + except OSError: + return + if img.height == 0 or img.width == 0: + return + img = self.resize(img, min(self.input_size)) + img.thumbnail((self.input_size[1], self.input_size[0])) + delta_width = self.input_size[1] - img.width + delta_height = self.input_size[0] - img.height + if self.random_padding: + pad_width = np.random.randint(low=0, high=delta_width + 1) + pad_height = np.random.randint(low=0, high=delta_height + 1) + else: + pad_width = delta_width // 2 + pad_height = delta_height // 2 + padding = ( + pad_width, + pad_height, + delta_width - pad_width, + delta_height - pad_height, + ) + return np.array(ImageOps.expand(img, padding)) + + def __call__(self, imgs: List[np.ndarray]) -> List[Optional[np.ndarray]]: + """Calls the img_decode method on a list of images. + + Args: + imgs (list of numpy.ndarray): The list of input image arrays. + + Returns: + list of numpy.ndarray: The list of decoded image arrays.""" + return [self.img_decode(img) for img in imgs] + + +class UniMERNetTestTransform: + """ + A class for transforming images according to UniMERNet test specifications. + """ + + def __init__(self, **kwargs) -> None: + """ + Initializes the UniMERNetTestTransform class. + """ + super().__init__() + self.num_output_channels = 3 + + def transform(self, img: np.ndarray) -> np.ndarray: + """ + Transforms a single image for UniMERNet testing. + + Args: + img (numpy.ndarray): The input image. + + Returns: + numpy.ndarray: The transformed image. + """ + mean = [0.7931, 0.7931, 0.7931] + std = [0.1738, 0.1738, 0.1738] + scale = float(1 / 255.0) + shape = (1, 1, 3) + mean = np.array(mean).reshape(shape).astype("float32") + std = np.array(std).reshape(shape).astype("float32") + img = (img.astype("float32") * scale - mean) / std + grayscale_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + squeezed = np.squeeze(grayscale_image) + img = cv2.merge([squeezed] * self.num_output_channels) + return img + + def __call__(self, imgs: List[np.ndarray]) -> List[np.ndarray]: + """ + Applies the transform to a list of images. + + Args: + imgs (list of numpy.ndarray): The list of input images. + + Returns: + list of numpy.ndarray: The list of transformed images. + """ + return [self.transform(img) for img in imgs] + + +class LatexImageFormat: + """Class for formatting images to a specific format suitable for LaTeX.""" + + def __init__(self, **kwargs) -> None: + """Initializes the LatexImageFormat class with optional keyword arguments.""" + super().__init__() + + def format(self, img: np.ndarray) -> np.ndarray: + """Formats a single image to the LaTeX-compatible format. + + Args: + img (numpy.ndarray): The input image as a numpy array. + + Returns: + numpy.ndarray: The formatted image as a numpy array with an added dimension for color. + """ + im_h, im_w = img.shape[:2] + divide_h = math.ceil(im_h / 16) * 16 + divide_w = math.ceil(im_w / 16) * 16 + img = img[:, :, 0] + img = np.pad( + img, ((0, divide_h - im_h), (0, divide_w - im_w)), constant_values=(1, 1) + ) + img_expanded = img[:, :, np.newaxis].transpose(2, 0, 1) + return img_expanded[np.newaxis, :] + + def __call__(self, imgs: List[np.ndarray]) -> List[np.ndarray]: + """Applies the format method to a list of images. + + Args: + imgs (list of numpy.ndarray): A list of input images as numpy arrays. + + Returns: + list of numpy.ndarray: A list of formatted images as numpy arrays. + """ + return [self.format(img) for img in imgs] + + +class ToBatch(object): + """A class for batching images.""" + + def __init__(self, **kwargs) -> None: + """Initializes the ToBatch object.""" + super(ToBatch, self).__init__() + + def __call__(self, imgs: List[np.ndarray]) -> List[np.ndarray]: + """Concatenates a list of images into a single batch. + + Args: + imgs (list): A list of image arrays to be concatenated. + + Returns: + list: A list containing the concatenated batch of images wrapped in another list (to comply with common batch processing formats). + """ + batch_imgs = np.concatenate(imgs) + batch_imgs = batch_imgs.copy() + x = [batch_imgs] + return x + + +class UniMERNetDecode(object): + """Class for decoding tokenized inputs using UniMERNet tokenizer. + + Attributes: + SPECIAL_TOKENS_ATTRIBUTES (List[str]): List of special token attributes. + model_input_names (List[str]): List of model input names. + max_seq_len (int): Maximum sequence length. + pad_token_id (int): ID for the padding token. + bos_token_id (int): ID for the beginning-of-sequence token. + eos_token_id (int): ID for the end-of-sequence token. + padding_side (str): Padding side, either 'left' or 'right'. + pad_token (str): Padding token. + pad_token_type_id (int): Type ID for the padding token. + pad_to_multiple_of (Optional[int]): If set, pad to a multiple of this value. + tokenizer (TokenizerFast): Fast tokenizer instance. + + Args: + character_list (Dict[str, Any]): Dictionary containing tokenizer configuration. + **kwargs: Additional keyword arguments. + """ + + SPECIAL_TOKENS_ATTRIBUTES = [ + "bos_token", + "eos_token", + "unk_token", + "sep_token", + "pad_token", + "cls_token", + "mask_token", + "additional_special_tokens", + ] + + def __init__( + self, + character_list: Dict[str, Any], + **kwargs, + ) -> None: + """Initializes the UniMERNetDecode class. + + Args: + character_list (Dict[str, Any]): Dictionary containing tokenizer configuration. + **kwargs: Additional keyword arguments. + """ + + self._unk_token = "" + self._bos_token = "" + self._eos_token = "" + self._pad_token = "" + self._sep_token = None + self._cls_token = None + self._mask_token = None + self._additional_special_tokens = [] + self.model_input_names = ["input_ids", "token_type_ids", "attention_mask"] + self.max_seq_len = 2048 + self.pad_token_id = 1 + self.bos_token_id = 0 + self.eos_token_id = 2 + self.padding_side = "right" + self.pad_token_id = 1 + self.pad_token = "" + self.pad_token_type_id = 0 + self.pad_to_multiple_of = None + + fast_tokenizer_str = json.dumps(character_list["fast_tokenizer_file"]) + fast_tokenizer_buffer = fast_tokenizer_str.encode("utf-8") + self.tokenizer = TokenizerFast.from_buffer(fast_tokenizer_buffer) + tokenizer_config = ( + character_list["tokenizer_config_file"] + if "tokenizer_config_file" in character_list + else None + ) + added_tokens_decoder = {} + added_tokens_map = {} + if tokenizer_config is not None: + init_kwargs = tokenizer_config + if "added_tokens_decoder" in init_kwargs: + for idx, token in init_kwargs["added_tokens_decoder"].items(): + if isinstance(token, dict): + token = AddedToken(**token) + if isinstance(token, AddedToken): + added_tokens_decoder[int(idx)] = token + added_tokens_map[str(token)] = token + else: + raise ValueError( + f"Found a {token.__class__} in the saved `added_tokens_decoder`, should be a dictionary or an AddedToken instance" + ) + init_kwargs["added_tokens_decoder"] = added_tokens_decoder + added_tokens_decoder = init_kwargs.pop("added_tokens_decoder", {}) + tokens_to_add = [ + token + for index, token in sorted( + added_tokens_decoder.items(), key=lambda x: x[0] + ) + if token not in added_tokens_decoder + ] + added_tokens_encoder = self.added_tokens_encoder(added_tokens_decoder) + encoder = list(added_tokens_encoder.keys()) + [ + str(token) for token in tokens_to_add + ] + tokens_to_add += [ + token + for token in self.all_special_tokens_extended + if token not in encoder and token not in tokens_to_add + ] + if len(tokens_to_add) > 0: + is_last_special = None + tokens = [] + special_tokens = self.all_special_tokens + for token in tokens_to_add: + is_special = ( + (token.special or str(token) in special_tokens) + if isinstance(token, AddedToken) + else str(token) in special_tokens + ) + if is_last_special is None or is_last_special == is_special: + tokens.append(token) + else: + self._add_tokens(tokens, special_tokens=is_last_special) + tokens = [token] + is_last_special = is_special + if tokens: + self._add_tokens(tokens, special_tokens=is_last_special) + + def _add_tokens( + self, new_tokens: "List[Union[AddedToken, str]]", special_tokens: bool = False + ) -> "List[Union[AddedToken, str]]": + """Adds new tokens to the tokenizer. + + Args: + new_tokens (List[Union[AddedToken, str]]): Tokens to be added. + special_tokens (bool): Indicates whether the tokens are special tokens. + + Returns: + List[Union[AddedToken, str]]: added tokens. + """ + if special_tokens: + return self.tokenizer.add_special_tokens(new_tokens) + + return self.tokenizer.add_tokens(new_tokens) + + def added_tokens_encoder( + self, added_tokens_decoder: "Dict[int, AddedToken]" + ) -> Dict[str, int]: + """Creates an encoder dictionary from added tokens. + + Args: + added_tokens_decoder (Dict[int, AddedToken]): Dictionary mapping token IDs to tokens. + + Returns: + Dict[str, int]: Dictionary mapping token strings to IDs. + """ + return { + k.content: v + for v, k in sorted(added_tokens_decoder.items(), key=lambda item: item[0]) + } + + @property + def all_special_tokens(self) -> List[str]: + """Retrieves all special tokens. + + Returns: + List[str]: List of all special tokens as strings. + """ + all_toks = [str(s) for s in self.all_special_tokens_extended] + return all_toks + + @property + def all_special_tokens_extended(self) -> "List[Union[str, AddedToken]]": + """Retrieves all special tokens, including extended ones. + + Returns: + List[Union[str, AddedToken]]: List of all special tokens. + """ + all_tokens = [] + seen = set() + for value in self.special_tokens_map_extended.values(): + if isinstance(value, (list, tuple)): + tokens_to_add = [token for token in value if str(token) not in seen] + else: + tokens_to_add = [value] if str(value) not in seen else [] + seen.update(map(str, tokens_to_add)) + all_tokens.extend(tokens_to_add) + return all_tokens + + @property + def special_tokens_map_extended(self) -> Dict[str, Union[str, List[str]]]: + """Retrieves the extended map of special tokens. + + Returns: + Dict[str, Union[str, List[str]]]: Dictionary mapping special token attributes to their values. + """ + set_attr = {} + for attr in self.SPECIAL_TOKENS_ATTRIBUTES: + attr_value = getattr(self, "_" + attr) + if attr_value: + set_attr[attr] = attr_value + return set_attr + + def convert_ids_to_tokens( + self, ids: Union[int, List[int]], skip_special_tokens: bool = False + ) -> Union[str, List[str]]: + """Converts token IDs to token strings. + + Args: + ids (Union[int, List[int]]): Token ID(s) to convert. + skip_special_tokens (bool): Whether to skip special tokens during conversion. + + Returns: + Union[str, List[str]]: Converted token string(s). + """ + if isinstance(ids, int): + return self.tokenizer.id_to_token(ids) + tokens = [] + for index in ids: + index = int(index) + if skip_special_tokens and index in self.all_special_ids: + continue + tokens.append(self.tokenizer.id_to_token(index)) + return tokens + + def detokenize(self, tokens: List[List[int]]) -> List[List[str]]: + """Detokenizes a list of token IDs back into strings. + + Args: + tokens (List[List[int]]): List of token ID lists. + + Returns: + List[List[str]]: List of detokenized strings. + """ + self.tokenizer.bos_token = "" + self.tokenizer.eos_token = "" + self.tokenizer.pad_token = "" + toks = [self.convert_ids_to_tokens(tok) for tok in tokens] + for b in range(len(toks)): + for i in reversed(range(len(toks[b]))): + if toks[b][i] is None: + toks[b][i] = "" + toks[b][i] = toks[b][i].replace("Ġ", " ").strip() + if toks[b][i] in ( + [ + self.tokenizer.bos_token, + self.tokenizer.eos_token, + self.tokenizer.pad_token, + ] + ): + del toks[b][i] + return toks + + def token2str(self, token_ids: List[List[int]]) -> List[str]: + """Converts a list of token IDs to strings. + + Args: + token_ids (List[List[int]]): List of token ID lists. + + Returns: + List[str]: List of converted strings. + """ + generated_text = [] + for tok_id in token_ids: + end_idx = np.argwhere(tok_id == 2) + if len(end_idx) > 0: + end_idx = int(end_idx[0][0]) + tok_id = tok_id[: end_idx + 1] + generated_text.append( + self.tokenizer.decode(tok_id, skip_special_tokens=True) + ) + generated_text = [self.post_process(text) for text in generated_text] + return generated_text + + def normalize(self, s: str) -> str: + """Normalizes a string by removing unnecessary spaces. + + Args: + s (str): String to normalize. + + Returns: + str: Normalized string. + """ + text_reg = r"(\\(operatorname|mathrm|text|mathbf)\s?\*? {.*?})" + letter = "[a-zA-Z]" + noletter = r"[\W_^\d]" + names = [] + for x in re.findall(text_reg, s): + pattern = r"(\\[a-zA-Z]+)\s(?=\w)|\\[a-zA-Z]+\s(?=})" + matches = re.findall(pattern, x[0]) + for m in matches: + if ( + m + not in [ + "\\operatorname", + "\\mathrm", + "\\text", + "\\mathbf", + ] + and m.strip() != "" + ): + s = s.replace(m, m + "XXXXXXX") + s = s.replace(" ", "") + names.append(s) + if len(names) > 0: + s = re.sub(text_reg, lambda match: str(names.pop(0)), s) + news = s + while True: + s = news + news = re.sub(r"(?!\\ )(%s)\s+?(%s)" % (noletter, noletter), r"\1\2", s) + news = re.sub(r"(?!\\ )(%s)\s+?(%s)" % (noletter, letter), r"\1\2", news) + news = re.sub(r"(%s)\s+?(%s)" % (letter, noletter), r"\1\2", news) + if news == s: + break + return s.replace("XXXXXXX", " ") + + def remove_chinese_text_wrapping(self, formula): + pattern = re.compile(r"\\text\s*{\s*([^}]*?[\u4e00-\u9fff]+[^}]*?)\s*}") + + def replacer(match): + return match.group(1) + + replaced_formula = pattern.sub(replacer, formula) + return replaced_formula.replace('"', "") + + def post_process(self, text: str) -> str: + """Post-processes a string by fixing text and normalizing it. + + Args: + text (str): String to post-process. + + Returns: + str: Post-processed string. + """ + from ftfy import fix_text + + text = self.remove_chinese_text_wrapping(text) + text = fix_text(text) + # logger.debug(f"Text after ftfy fix: {text}") + text = self.fix_latex(text) + # logger.debug(f"Text after LaTeX fix: {text}") + return text + + def fix_latex(self, text: str) -> str: + """Fixes LaTeX formatting in a string. + + Args: + text (str): String to fix. + + Returns: + str: Fixed string. + """ + text = fix_latex_left_right(text, fix_delimiter=False) + text = fix_latex_environments(text) + text = remove_up_commands(text) + text = remove_unsupported_commands(text) + # text = self.normalize(text) + return text + + def __call__( + self, + preds: np.ndarray, + label: Optional[np.ndarray] = None, + mode: str = "eval", + *args, + **kwargs, + ) -> Union[List[str], tuple]: + """Processes predictions and optionally labels, returning the decoded text. + + Args: + preds (np.ndarray): Model predictions. + label (Optional[np.ndarray]): True labels, if available. + mode (str): Mode of operation, either 'train' or 'eval'. + + Returns: + Union[List[str], tuple]: Decoded text, optionally with labels. + """ + if mode == "train": + preds_idx = np.array(preds.argmax(axis=2)) + text = self.token2str(preds_idx) + else: + text = self.token2str(np.array(preds)) + if label is None: + return text + label = self.token2str(np.array(label)) + return text, label diff --git a/mineru/model/mfr/unimernet/Unimernet.py b/mineru/model/mfr/unimernet/Unimernet.py new file mode 100644 index 000000000..8c321596f --- /dev/null +++ b/mineru/model/mfr/unimernet/Unimernet.py @@ -0,0 +1,176 @@ +# Copyright (c) Opendatalab. All rights reserved. +import math + +import torch +from torch.utils.data import DataLoader, Dataset +from tqdm import tqdm + +from ..utils import build_mfr_batch_groups + + +class MathDataset(Dataset): + def __init__(self, image_paths, transform=None): + self.image_paths = image_paths + self.transform = transform + + def __len__(self): + return len(self.image_paths) + + def __getitem__(self, idx): + raw_image = self.image_paths[idx] + if self.transform: + image = self.transform(raw_image) + return image + + +class UnimernetModel(object): + def __init__(self, weight_dir, _device_="cpu"): + from .unimernet_hf import UnimernetModel + + if _device_.startswith("mps") or _device_.startswith("npu") or _device_.startswith("musa"): + self.model = UnimernetModel.from_pretrained( + weight_dir, + attn_implementation="eager", + ) + else: + self.model = UnimernetModel.from_pretrained(weight_dir) + self.device = torch.device(_device_) + self.model.to(self.device) + if not _device_.startswith("cpu"): + self.model = self.model.to(dtype=torch.float16) + self.model.eval() + + @staticmethod + def _normalize_bbox(bbox, image): + if bbox is None: + return None + + xmin, ymin, xmax, ymax = [float(v) for v in bbox] + xmin = math.floor(xmin) + ymin = math.floor(ymin) + xmax = math.ceil(xmax) + ymax = math.ceil(ymax) + height, width = image.shape[:2] + xmin = max(0, min(width, xmin)) + xmax = max(0, min(width, xmax)) + ymin = max(0, min(height, ymin)) + ymax = max(0, min(height, ymax)) + if xmax <= xmin or ymax <= ymin: + return None + return xmin, ymin, xmax, ymax + + @staticmethod + def _item_to_bbox(item, image): + return UnimernetModel._normalize_bbox(item.get("bbox"), image) + + def _build_formula_items(self, mfd_res, image, interline_enable=True): + formula_list = [] + crop_targets = [] + + for item in mfd_res or []: + if not isinstance(item, dict): + continue + label = item.get("label") + if label not in ["inline_formula", "display_formula"]: + continue + if not interline_enable and label == "display_formula": + continue + + new_item = dict(item) + new_item.setdefault("latex", "") + formula_list.append(new_item) + + bbox = self._item_to_bbox(new_item, image) + if bbox is not None: + crop_targets.append((new_item, bbox)) + + return formula_list, crop_targets + + def predict( + self, + mfd_res, + image, + batch_size: int = 64, + interline_enable: bool = True, + ) -> list: + return self.batch_predict( + [mfd_res], + [image], + batch_size=batch_size, + interline_enable=interline_enable, + )[0] + + def batch_predict( + self, + images_mfd_res: list, + images: list, + batch_size: int = 64, + interline_enable: bool = True, + ) -> list: + if not images_mfd_res: + return [] + + if len(images_mfd_res) != len(images): + raise ValueError("images_mfd_res and images must have the same length.") + + images_formula_list = [] + mf_image_list = [] + backfill_list = [] + image_info = [] + + for mfd_res, image in zip(images_mfd_res, images): + formula_list, crop_targets = self._build_formula_items( + mfd_res, + image, + interline_enable=interline_enable, + ) + + for formula_item, (xmin, ymin, xmax, ymax) in crop_targets: + bbox_img = image[ymin:ymax, xmin:xmax] + area = (xmax - xmin) * (ymax - ymin) + + curr_idx = len(mf_image_list) + image_info.append((area, curr_idx, bbox_img)) + mf_image_list.append(bbox_img) + backfill_list.append(formula_item) + + images_formula_list.append(formula_list) + + if not image_info: + return images_formula_list + + image_info.sort(key=lambda x: x[0]) + sorted_areas = [x[0] for x in image_info] + sorted_indices = [x[1] for x in image_info] + sorted_images = [x[2] for x in image_info] + index_mapping = { + new_idx: old_idx for new_idx, old_idx in enumerate(sorted_indices) + } + + batch_groups = build_mfr_batch_groups(sorted_areas, batch_size) + dataset = MathDataset(sorted_images, transform=self.model.transform) + dataloader = DataLoader(dataset, batch_sampler=batch_groups, num_workers=0) + + mfr_res = [] + with tqdm(total=len(sorted_images), desc="MFR Predict") as pbar: + for batch_group, mf_img in zip(batch_groups, dataloader): + current_batch_size = len(batch_group) + mf_img = mf_img.to(dtype=self.model.dtype) + mf_img = mf_img.to(self.device) + with torch.no_grad(): + output = self.model.generate( + {"image": mf_img}, + batch_size=current_batch_size, + ) + mfr_res.extend(output["fixed_str"]) + pbar.update(current_batch_size) + + unsorted_results = [""] * len(mfr_res) + for new_idx, latex in enumerate(mfr_res): + original_idx = index_mapping[new_idx] + unsorted_results[original_idx] = latex + + for res, latex in zip(backfill_list, unsorted_results): + res["latex"] = latex + + return images_formula_list diff --git a/mineru/model/mfr/unimernet/__init__.py b/mineru/model/mfr/unimernet/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/mfr/unimernet/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/mfr/unimernet/unimernet_hf/__init__.py b/mineru/model/mfr/unimernet/unimernet_hf/__init__.py new file mode 100644 index 000000000..b1071a4f2 --- /dev/null +++ b/mineru/model/mfr/unimernet/unimernet_hf/__init__.py @@ -0,0 +1,14 @@ +# Copyright (c) Opendatalab. All rights reserved. +from .unimer_swin import UnimerSwinConfig, UnimerSwinModel, UnimerSwinImageProcessor +from .unimer_mbart import UnimerMBartConfig, UnimerMBartModel, UnimerMBartForCausalLM +from .modeling_unimernet import UnimernetModel + +__all__ = [ + "UnimerSwinConfig", + "UnimerSwinModel", + "UnimerSwinImageProcessor", + "UnimerMBartConfig", + "UnimerMBartModel", + "UnimerMBartForCausalLM", + "UnimernetModel", +] diff --git a/mineru/model/mfr/unimernet/unimernet_hf/modeling_unimernet.py b/mineru/model/mfr/unimernet/unimernet_hf/modeling_unimernet.py new file mode 100644 index 000000000..3875f73fa --- /dev/null +++ b/mineru/model/mfr/unimernet/unimernet_hf/modeling_unimernet.py @@ -0,0 +1,177 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import warnings +from typing import Optional + +import torch +from ftfy import fix_text +from loguru import logger + +from transformers import AutoConfig, AutoModel, AutoModelForCausalLM, AutoTokenizer, PretrainedConfig, PreTrainedModel +from transformers import VisionEncoderDecoderConfig, VisionEncoderDecoderModel +from transformers.models.vision_encoder_decoder.modeling_vision_encoder_decoder import logger as base_model_logger + +from .unimer_swin import UnimerSwinConfig, UnimerSwinModel, UnimerSwinImageProcessor +from .unimer_mbart import UnimerMBartConfig, UnimerMBartForCausalLM +from ...utils import latex_rm_whitespace + +AutoConfig.register(UnimerSwinConfig.model_type, UnimerSwinConfig) +AutoConfig.register(UnimerMBartConfig.model_type, UnimerMBartConfig) +AutoModel.register(UnimerSwinConfig, UnimerSwinModel) +AutoModelForCausalLM.register(UnimerMBartConfig, UnimerMBartForCausalLM) + + +# TODO: rewrite tokenizer +class TokenizerWrapper: + def __init__(self, tokenizer): + self.tokenizer = tokenizer + self.pad_token_id = self.tokenizer.pad_token_id + self.bos_token_id = self.tokenizer.bos_token_id + self.eos_token_id = self.tokenizer.eos_token_id + + def __len__(self): + return len(self.tokenizer) + + def tokenize(self, text, **kwargs): + return self.tokenizer( + text, + return_token_type_ids=False, + return_tensors="pt", + padding="longest", + truncation=True, + **kwargs, + ) + + def token2str(self, tokens) -> list: + generated_text = self.tokenizer.batch_decode(tokens, skip_special_tokens=True) + generated_text = [fix_text(text) for text in generated_text] + return generated_text + + def detokenize(self, tokens): + toks = [self.tokenizer.convert_ids_to_tokens(tok) for tok in tokens] + for b in range(len(toks)): + for i in reversed(range(len(toks[b]))): + if toks[b][i] is None: + toks[b][i] = '' + toks[b][i] = toks[b][i].replace('Ġ', ' ').strip() + if toks[b][i] in ([self.tokenizer.bos_token, self.tokenizer.eos_token, self.tokenizer.pad_token]): + del toks[b][i] + return toks + +class UnimernetModel(VisionEncoderDecoderModel): + def __init__( + self, + config: Optional[PretrainedConfig] = None, + encoder: Optional[PreTrainedModel] = None, + decoder: Optional[PreTrainedModel] = None, + ): + # VisionEncoderDecoderModel's checking log has bug, disable for temp. + base_model_logger.disabled = True + try: + super().__init__(config, encoder, decoder) + finally: + base_model_logger.disabled = False + + if not config or not hasattr(config, "_name_or_path"): + raise RuntimeError("config._name_or_path is required by UnimernetModel.") + + model_path = config._name_or_path + self.transform = UnimerSwinImageProcessor() + self.tokenizer = TokenizerWrapper(AutoTokenizer.from_pretrained(model_path)) + self._post_check() + + def _post_check(self): + tokenizer = self.tokenizer + + if tokenizer.tokenizer.model_max_length != self.config.decoder.max_position_embeddings: + warnings.warn( + f"decoder.max_position_embeddings={self.config.decoder.max_position_embeddings}," + + f" but tokenizer.model_max_length={tokenizer.tokenizer.model_max_length}, will set" + + f" tokenizer.model_max_length to {self.config.decoder.max_position_embeddings}.") + tokenizer.tokenizer.model_max_length = self.config.decoder.max_position_embeddings + + assert self.config.decoder.vocab_size == len(tokenizer) + assert self.config.decoder_start_token_id == tokenizer.bos_token_id + assert self.config.pad_token_id == tokenizer.pad_token_id + + @classmethod + def from_checkpoint(cls, model_path: str, model_filename: str = "pytorch_model.pth", state_dict_strip_prefix="model.model."): + config = VisionEncoderDecoderConfig.from_pretrained(model_path) + config._name_or_path = model_path + config.encoder = UnimerSwinConfig(**vars(config.encoder)) + config.decoder = UnimerMBartConfig(**vars(config.decoder)) + + encoder = UnimerSwinModel(config.encoder) + decoder = UnimerMBartForCausalLM(config.decoder) + model = cls(config, encoder, decoder) + + # load model weights + model_file_path = os.path.join(model_path, model_filename) + checkpoint = torch.load(model_file_path, map_location="cpu", weights_only=True) + state_dict = checkpoint["model"] if "model" in checkpoint else checkpoint + if not state_dict: + raise RuntimeError("state_dict is empty.") + if state_dict_strip_prefix: + state_dict = { + k[len(state_dict_strip_prefix):] if k.startswith(state_dict_strip_prefix) else k: v + for k, v in state_dict.items() + } + missing_keys, unexpected_keys = model.load_state_dict(state_dict, strict=False) + if len(unexpected_keys) > 0: + warnings.warn("Unexpected key(s) in state_dict: {}.".format(", ".join(f'"{k}"' for k in unexpected_keys))) + if len(missing_keys) > 0: + raise RuntimeError("Missing key(s) in state_dict: {}.".format(", ".join(f'"{k}"' for k in missing_keys))) + return model + + def forward_bak(self, samples): + pixel_values, text = samples["image"], samples["text_input"] + + text_inputs = self.tokenizer.tokenize(text).to(pixel_values.device) + decoder_input_ids, decoder_attention_mask = text_inputs["input_ids"], text_inputs["attention_mask"] + + num_channels = pixel_values.shape[1] + if num_channels == 1: + pixel_values = pixel_values.repeat(1, 3, 1, 1) + + labels = decoder_input_ids * 1 + labels = labels.masked_fill(labels == self.tokenizer.pad_token_id, -100) + + loss = self.model( + pixel_values=pixel_values, + decoder_input_ids=decoder_input_ids[:, :-1], + decoder_attention_mask=decoder_attention_mask[:, :-1], + labels=labels[:, 1:], + ).loss + return {"loss": loss} + + def generate(self, samples, do_sample: bool = False, temperature: float = 0.2, top_p: float = 0.95, batch_size=64): + pixel_values = samples["image"] + num_channels = pixel_values.shape[1] + if num_channels == 1: + pixel_values = pixel_values.repeat(1, 3, 1, 1) + + kwargs = {} + if do_sample: + kwargs["temperature"] = temperature + kwargs["top_p"] = top_p + + if self.tokenizer.tokenizer.model_max_length > 1152: + if batch_size <= 32: + self.tokenizer.tokenizer.model_max_length = 1152 # 6g + else: + self.tokenizer.tokenizer.model_max_length = 1344 # 8g + + outputs = super().generate( + pixel_values=pixel_values, + max_new_tokens=self.tokenizer.tokenizer.model_max_length, # required + decoder_start_token_id=self.tokenizer.tokenizer.bos_token_id, + do_sample=do_sample, + **kwargs, + ) + + outputs = outputs[:, 1:].cpu().numpy() + pred_tokens = self.tokenizer.detokenize(outputs) + pred_str = self.tokenizer.token2str(outputs) + fixed_str = [latex_rm_whitespace(s) for s in pred_str] + return {"pred_ids": outputs, "pred_tokens": pred_tokens, "pred_str": pred_str, "fixed_str": fixed_str} + diff --git a/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/__init__.py b/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/__init__.py new file mode 100644 index 000000000..f62e8e0e5 --- /dev/null +++ b/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/__init__.py @@ -0,0 +1,9 @@ +# Copyright (c) Opendatalab. All rights reserved. +from .configuration_unimer_mbart import UnimerMBartConfig +from .modeling_unimer_mbart import UnimerMBartModel, UnimerMBartForCausalLM + +__all__ = [ + "UnimerMBartConfig", + "UnimerMBartModel", + "UnimerMBartForCausalLM", +] diff --git a/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/configuration_unimer_mbart.py b/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/configuration_unimer_mbart.py new file mode 100644 index 000000000..eef4a57d0 --- /dev/null +++ b/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/configuration_unimer_mbart.py @@ -0,0 +1,163 @@ +# coding=utf-8 +# Copyright 2021, The Facebook AI Research Team and The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""UnimerMBART model configuration""" + +from transformers.configuration_utils import PretrainedConfig +from transformers.utils import logging + + +logger = logging.get_logger(__name__) + + +class UnimerMBartConfig(PretrainedConfig): + r""" + This is the configuration class to store the configuration of a [`MBartModel`]. It is used to instantiate an MBART + model according to the specified arguments, defining the model architecture. Instantiating a configuration with the + defaults will yield a similar configuration to that of the MBART + [facebook/mbart-large-cc25](https://huggingface.co/facebook/mbart-large-cc25) architecture. + + Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the + documentation from [`PretrainedConfig`] for more information. + + + Args: + vocab_size (`int`, *optional*, defaults to 50265): + Vocabulary size of the MBART model. Defines the number of different tokens that can be represented by the + `inputs_ids` passed when calling [`MBartModel`] or [`TFMBartModel`]. + d_model (`int`, *optional*, defaults to 1024): + Dimensionality of the layers and the pooler layer. + qk_squeeze (`int`, *optional*, defaults to 2): + Squeeze ratio for query/key's output dimension. See the [UniMERNet paper](https://arxiv.org/abs/2404.15254). + Squeeze Attention maps the query and key to a lower-dimensional space without excessive loss of information, + thereby accelerating the computation of attention. + encoder_layers (`int`, *optional*, defaults to 12): + Number of encoder layers. + decoder_layers (`int`, *optional*, defaults to 12): + Number of decoder layers. + encoder_attention_heads (`int`, *optional*, defaults to 16): + Number of attention heads for each attention layer in the Transformer encoder. + decoder_attention_heads (`int`, *optional*, defaults to 16): + Number of attention heads for each attention layer in the Transformer decoder. + decoder_ffn_dim (`int`, *optional*, defaults to 4096): + Dimensionality of the "intermediate" (often named feed-forward) layer in decoder. + encoder_ffn_dim (`int`, *optional*, defaults to 4096): + Dimensionality of the "intermediate" (often named feed-forward) layer in decoder. + activation_function (`str` or `function`, *optional*, defaults to `"gelu"`): + The non-linear activation function (function or string) in the encoder and pooler. If string, `"gelu"`, + `"relu"`, `"silu"` and `"gelu_new"` are supported. + dropout (`float`, *optional*, defaults to 0.1): + The dropout probability for all fully connected layers in the embeddings, encoder, and pooler. + attention_dropout (`float`, *optional*, defaults to 0.0): + The dropout ratio for the attention probabilities. + activation_dropout (`float`, *optional*, defaults to 0.0): + The dropout ratio for activations inside the fully connected layer. + classifier_dropout (`float`, *optional*, defaults to 0.0): + The dropout ratio for classifier. + max_position_embeddings (`int`, *optional*, defaults to 1024): + The maximum sequence length that this model might ever be used with. Typically set this to something large + just in case (e.g., 512 or 1024 or 2048). + init_std (`float`, *optional*, defaults to 0.02): + The standard deviation of the truncated_normal_initializer for initializing all weight matrices. + encoder_layerdrop (`float`, *optional*, defaults to 0.0): + The LayerDrop probability for the encoder. See the [LayerDrop paper](see https://arxiv.org/abs/1909.11556) + for more details. + decoder_layerdrop (`float`, *optional*, defaults to 0.0): + The LayerDrop probability for the decoder. See the [LayerDrop paper](see https://arxiv.org/abs/1909.11556) + for more details. + scale_embedding (`bool`, *optional*, defaults to `False`): + Scale embeddings by diving by sqrt(d_model). + use_cache (`bool`, *optional*, defaults to `True`): + Whether or not the model should return the last key/values attentions (not used by all models) + forced_eos_token_id (`int`, *optional*, defaults to 2): + The id of the token to force as the last generated token when `max_length` is reached. Usually set to + `eos_token_id`. + + Example: + + ```python + >>> from transformers import MBartConfig, MBartModel + + >>> # Initializing a MBART facebook/mbart-large-cc25 style configuration + >>> configuration = MBartConfig() + + >>> # Initializing a model (with random weights) from the facebook/mbart-large-cc25 style configuration + >>> model = MBartModel(configuration) + + >>> # Accessing the model configuration + >>> configuration = model.config + ```""" + + model_type = "unimer-mbart" + keys_to_ignore_at_inference = ["past_key_values"] + attribute_map = {"num_attention_heads": "encoder_attention_heads", "hidden_size": "d_model"} + + def __init__( + self, + vocab_size=50265, + max_position_embeddings=1024, + encoder_layers=12, + encoder_ffn_dim=4096, + encoder_attention_heads=16, + decoder_layers=12, + decoder_ffn_dim=4096, + decoder_attention_heads=16, + encoder_layerdrop=0.0, + decoder_layerdrop=0.0, + use_cache=True, + is_encoder_decoder=True, + activation_function="gelu", + d_model=1024, + qk_squeeze=2, + dropout=0.1, + attention_dropout=0.0, + activation_dropout=0.0, + init_std=0.02, + classifier_dropout=0.0, + scale_embedding=False, + pad_token_id=1, + bos_token_id=0, + eos_token_id=2, + forced_eos_token_id=2, + **kwargs, + ): + self.vocab_size = vocab_size + self.max_position_embeddings = max_position_embeddings + self.d_model = d_model + self.qk_squeeze = qk_squeeze + self.encoder_ffn_dim = encoder_ffn_dim + self.encoder_layers = encoder_layers + self.encoder_attention_heads = encoder_attention_heads + self.decoder_ffn_dim = decoder_ffn_dim + self.decoder_layers = decoder_layers + self.decoder_attention_heads = decoder_attention_heads + self.dropout = dropout + self.attention_dropout = attention_dropout + self.activation_dropout = activation_dropout + self.activation_function = activation_function + self.init_std = init_std + self.encoder_layerdrop = encoder_layerdrop + self.decoder_layerdrop = decoder_layerdrop + self.classifier_dropout = classifier_dropout + self.use_cache = use_cache + self.num_hidden_layers = encoder_layers + self.scale_embedding = scale_embedding # scale factor will be sqrt(d_model) if True + super().__init__( + pad_token_id=pad_token_id, + bos_token_id=bos_token_id, + eos_token_id=eos_token_id, + is_encoder_decoder=is_encoder_decoder, + forced_eos_token_id=forced_eos_token_id, + **kwargs, + ) diff --git a/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/modeling_unimer_mbart.py b/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/modeling_unimer_mbart.py new file mode 100644 index 000000000..7f503f913 --- /dev/null +++ b/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/modeling_unimer_mbart.py @@ -0,0 +1,2361 @@ +# coding=utf-8 +# Copyright 2021, The Facebook AI Research Team and The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""PyTorch UnimerMBART model.""" + +import copy +import math +from dataclasses import dataclass +from typing import List, Optional, Tuple, Union + +import torch +import torch.nn.functional as F +import torch.utils.checkpoint +from torch import nn +from torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss + +from transformers.activations import ACT2FN +from transformers.modeling_attn_mask_utils import ( + _prepare_4d_attention_mask, + _prepare_4d_attention_mask_for_sdpa, + _prepare_4d_causal_attention_mask, + _prepare_4d_causal_attention_mask_for_sdpa, +) +from transformers.modeling_outputs import ( + BaseModelOutput, + BaseModelOutputWithPastAndCrossAttentions, + CausalLMOutputWithCrossAttentions, + Seq2SeqLMOutput, + Seq2SeqModelOutput, + Seq2SeqQuestionAnsweringModelOutput, + Seq2SeqSequenceClassifierOutput, +) +from transformers import GenerationMixin, PreTrainedModel +from transformers.utils import ( + add_code_sample_docstrings, + add_end_docstrings, + add_start_docstrings, + add_start_docstrings_to_model_forward, + is_flash_attn_2_available, + is_flash_attn_greater_or_equal_2_10, + logging, + replace_return_docstrings, +) +from .configuration_unimer_mbart import UnimerMBartConfig + + +if is_flash_attn_2_available(): + from flash_attn import flash_attn_func, flash_attn_varlen_func + from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input # noqa + + +logger = logging.get_logger(__name__) + +_CHECKPOINT_FOR_DOC = "facebook/mbart-large-cc25" +_CONFIG_FOR_DOC = "MBartConfig" + +# Base model docstring +_EXPECTED_OUTPUT_SHAPE = [1, 8, 1024] + + +# Copied from transformers.models.llama.modeling_llama._get_unpad_data +def _get_unpad_data(attention_mask): + seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32) + indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten() + max_seqlen_in_batch = seqlens_in_batch.max().item() + cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.int32), (1, 0)) + return ( + indices, + cu_seqlens, + max_seqlen_in_batch, + ) + + +def shift_tokens_right(input_ids: torch.Tensor, pad_token_id: int): + """ + Shift input ids one token to the right, and wrap the last non pad token (the token) Note that MBart does not + have a single `decoder_start_token_id` in contrast to other Bart-like models. + """ + prev_output_tokens = input_ids.clone() + + if pad_token_id is None: + raise ValueError("self.model.config.pad_token_id has to be defined.") + # replace possible -100 values in labels by `pad_token_id` + prev_output_tokens.masked_fill_(prev_output_tokens == -100, pad_token_id) + + index_of_eos = (prev_output_tokens.ne(pad_token_id).sum(dim=1) - 1).unsqueeze(-1) + decoder_start_tokens = prev_output_tokens.gather(1, index_of_eos).squeeze() + prev_output_tokens[:, 1:] = prev_output_tokens[:, :-1].clone() + prev_output_tokens[:, 0] = decoder_start_tokens + + return prev_output_tokens + +@dataclass +class CausalLMOutputWithCrossAttentionsAndCounting(CausalLMOutputWithCrossAttentions): + """ + Base class for causal language model (or autoregressive) outputs. + + Args: + loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided): + Language modeling loss (for next-token prediction). + logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.vocab_size)`): + Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax). + hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`): + Tuple of `torch.FloatTensor` (one for the output of the embeddings, if the model has an embedding layer, + + one for the output of each layer) of shape `(batch_size, sequence_length, hidden_size)`. + + Hidden-states of the model at the output of each layer plus the optional initial embedding outputs. + attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`): + Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, num_heads, sequence_length, + sequence_length)`. + + Attentions weights after the attention softmax, used to compute the weighted average in the self-attention + heads. + cross_attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`): + Tuple of `torch.FloatTensor` (one for each layer) of shape `(batch_size, num_heads, sequence_length, + sequence_length)`. + + Cross attentions weights after the attention softmax, used to compute the weighted average in the + cross-attention heads. + past_key_values (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`): + Tuple of `torch.FloatTensor` tuples of length `config.n_layers`, with each tuple containing the cached key, + value states of the self-attention and the cross-attention layers if model is used in encoder-decoder + setting. Only relevant if `config.is_decoder = True`. + + Contains pre-computed hidden-states (key and values in the attention blocks) that can be used (see + `past_key_values` input) to speed up sequential decoding. + counting: + Counting + """ + counting: Optional[torch.FloatTensor] = None + +# Copied from transformers.models.bart.modeling_bart.BartLearnedPositionalEmbedding with Bart->MBart +class UnimerMBartLearnedPositionalEmbedding(nn.Embedding): + """ + This module learns positional embeddings up to a fixed maximum size. + """ + + def __init__(self, num_embeddings: int, embedding_dim: int): + # MBart is set up so that if padding_idx is specified then offset the embedding ids by 2 + # and adjust num_embeddings appropriately. Other models don't have this hack + self.offset = 2 + super().__init__(num_embeddings + self.offset, embedding_dim) + + def forward(self, input_ids: torch.Tensor, past_key_values_length: int = 0): + """`input_ids' shape is expected to be [bsz x seqlen].""" + + bsz, seq_len = input_ids.shape[:2] + positions = torch.arange( + past_key_values_length, past_key_values_length + seq_len, dtype=torch.long, device=self.weight.device + ).expand(bsz, -1) + + return super().forward(positions + self.offset) + + +# Copied from transformers.models.bart.modeling_bart.BartScaledWordEmbedding with Bart->MBart +class UnimerMBartScaledWordEmbedding(nn.Embedding): + """ + This module overrides nn.Embeddings' forward by multiplying with embeddings scale. + """ + + def __init__(self, num_embeddings: int, embedding_dim: int, padding_idx: int, embed_scale: Optional[float] = 1.0): + super().__init__(num_embeddings, embedding_dim, padding_idx) + self.embed_scale = embed_scale + + def forward(self, input_ids: torch.Tensor): + return super().forward(input_ids) * self.embed_scale + + +# Copied from transformers.models.bart.modeling_bart.BartAttention with Bart->MBart +class UnimerMBartAttention(nn.Module): + """Multi-headed attention from 'Attention Is All You Need' paper, with qk_squeeze""" + + def __init__( + self, + embed_dim: int, + num_heads: int, + dropout: float = 0.0, + is_decoder: bool = False, + bias: bool = True, + is_causal: bool = False, + *, + config: UnimerMBartConfig, + ): + super().__init__() + self.embed_dim = embed_dim + self.num_heads = num_heads + self.dropout = dropout + self.head_dim = embed_dim // num_heads + self.config = config + + if (self.head_dim * num_heads) != self.embed_dim: + raise ValueError( + f"embed_dim must be divisible by num_heads (got `embed_dim`: {self.embed_dim}" + f" and `num_heads`: {num_heads})." + ) + + self.squeeze_dim = embed_dim // config.qk_squeeze + self.squeeze_head_dim = self.squeeze_dim // num_heads + self.scaling = self.squeeze_head_dim**-0.5 + self.is_decoder = is_decoder + self.is_causal = is_causal + + self.q_proj = nn.Linear(embed_dim, self.squeeze_dim, bias=bias) + self.k_proj = nn.Linear(embed_dim, self.squeeze_dim, bias=bias) + self.v_proj = nn.Linear(embed_dim, embed_dim, bias=bias) + self.out_proj = nn.Linear(embed_dim, embed_dim, bias=bias) + + def _shape_qk(self, tensor: torch.Tensor, seq_len: int, bsz: int): + return tensor.view(bsz, seq_len, self.num_heads, self.squeeze_head_dim).transpose(1, 2).contiguous() + + def _shape_v(self, tensor: torch.Tensor, seq_len: int, bsz: int): + return tensor.view(bsz, seq_len, self.num_heads, self.head_dim).transpose(1, 2).contiguous() + + def forward( + self, + hidden_states: torch.Tensor, + key_value_states: Optional[torch.Tensor] = None, + past_key_value: Optional[Tuple[torch.Tensor]] = None, + attention_mask: Optional[torch.Tensor] = None, + layer_head_mask: Optional[torch.Tensor] = None, + output_attentions: bool = False, + ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]: + """Input shape: Batch x Time x Channel""" + + # if key_value_states are provided this layer is used as a cross-attention layer + # for the decoder + is_cross_attention = key_value_states is not None + + bsz, tgt_len, _ = hidden_states.size() + + # get query proj + query_states = self.q_proj(hidden_states) * self.scaling + # get key, value proj + # `past_key_value[0].shape[2] == key_value_states.shape[1]` + # is checking that the `sequence_length` of the `past_key_value` is the same as + # the provided `key_value_states` to support prefix tuning + if ( + is_cross_attention + and past_key_value is not None + and past_key_value[0].shape[2] == key_value_states.shape[1] + ): + # reuse k,v, cross_attentions + key_states = past_key_value[0] + value_states = past_key_value[1] + elif is_cross_attention: + # cross_attentions + key_states = self._shape_qk(self.k_proj(key_value_states), -1, bsz) + value_states = self._shape_v(self.v_proj(key_value_states), -1, bsz) + elif past_key_value is not None: + # reuse k, v, self_attention + key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz) + value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz) + key_states = torch.cat([past_key_value[0], key_states], dim=2) + value_states = torch.cat([past_key_value[1], value_states], dim=2) + else: + # self_attention + key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz) + value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz) + + if self.is_decoder: + # if cross_attention save Tuple(torch.Tensor, torch.Tensor) of all cross attention key/value_states. + # Further calls to cross_attention layer can then reuse all cross-attention + # key/value_states (first "if" case) + # if uni-directional self-attention (decoder) save Tuple(torch.Tensor, torch.Tensor) of + # all previous decoder key/value_states. Further calls to uni-directional self-attention + # can concat previous decoder key/value_states to current projected key/value_states (third "elif" case) + # if encoder bi-directional self-attention `past_key_value` is always `None` + past_key_value = (key_states, value_states) + + proj_shape = (bsz * self.num_heads, -1, self.squeeze_head_dim) + value_shape = (bsz * self.num_heads, -1, self.head_dim) + query_states = self._shape_qk(query_states, tgt_len, bsz).view(*proj_shape) + key_states = key_states.reshape(*proj_shape) + value_states = value_states.reshape(*value_shape) + + src_len = key_states.size(1) + attn_weights = torch.bmm(query_states, key_states.transpose(1, 2)) + + if attn_weights.size() != (bsz * self.num_heads, tgt_len, src_len): + raise ValueError( + f"Attention weights should be of size {(bsz * self.num_heads, tgt_len, src_len)}, but is" + f" {attn_weights.size()}" + ) + + if attention_mask is not None: + if attention_mask.size() != (bsz, 1, tgt_len, src_len): + raise ValueError( + f"Attention mask should be of size {(bsz, 1, tgt_len, src_len)}, but is {attention_mask.size()}" + ) + attn_weights = attn_weights.view(bsz, self.num_heads, tgt_len, src_len) + attention_mask + attn_weights = attn_weights.view(bsz * self.num_heads, tgt_len, src_len) + + attn_weights = nn.functional.softmax(attn_weights, dim=-1) + + if layer_head_mask is not None: + if layer_head_mask.size() != (self.num_heads,): + raise ValueError( + f"Head mask for a single layer should be of size {(self.num_heads,)}, but is" + f" {layer_head_mask.size()}" + ) + attn_weights = layer_head_mask.view(1, -1, 1, 1) * attn_weights.view(bsz, self.num_heads, tgt_len, src_len) + attn_weights = attn_weights.view(bsz * self.num_heads, tgt_len, src_len) + + if output_attentions: + # this operation is a bit awkward, but it's required to + # make sure that attn_weights keeps its gradient. + # In order to do so, attn_weights have to be reshaped + # twice and have to be reused in the following + attn_weights_reshaped = attn_weights.view(bsz, self.num_heads, tgt_len, src_len) + attn_weights = attn_weights_reshaped.view(bsz * self.num_heads, tgt_len, src_len) + else: + attn_weights_reshaped = None + + attn_probs = nn.functional.dropout(attn_weights, p=self.dropout, training=self.training) + attn_output = torch.bmm(attn_probs, value_states) + + if attn_output.size() != (bsz * self.num_heads, tgt_len, self.head_dim): + raise ValueError( + f"`attn_output` should be of size {(bsz * self.num_heads, tgt_len, self.head_dim)}, but is" + f" {attn_output.size()}" + ) + + attn_output = attn_output.view(bsz, self.num_heads, tgt_len, self.head_dim) + attn_output = attn_output.transpose(1, 2) + + # Use the `embed_dim` from the config (stored in the class) rather than `hidden_state` because `attn_output` can be + # partitioned across GPUs when using tensor-parallelism. + attn_output = attn_output.reshape(bsz, tgt_len, self.embed_dim) + + attn_output = self.out_proj(attn_output) + + return attn_output, attn_weights_reshaped, past_key_value + + +# Copied from transformers.models.bart.modeling_bart.BartFlashAttention2 with Bart->MBart +class UnimerMBartFlashAttention2(UnimerMBartAttention): + """ + MBart flash attention module. This module inherits from `MBartSqueezeAttention` as the weights of the module stays + untouched. The only required change would be on the forward pass where it needs to correctly call the public API of + flash attention and deal with padding tokens in case the input contains any of them. + """ + + # Copied from transformers.models.llama.modeling_llama.LlamaFlashAttention2.__init__ + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1. + # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0. + # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left). + self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10() + + # def _reshape(self, tensor: torch.Tensor, seq_len: int, bsz: int): + # return tensor.view(bsz, seq_len, self.num_heads, self.head_dim) + + def _shape_qk(self, tensor: torch.Tensor, seq_len: int, bsz: int): + return tensor.view(bsz, seq_len, self.num_heads, self.squeeze_head_dim) + + def _shape_v(self, tensor: torch.Tensor, seq_len: int, bsz: int): + return tensor.view(bsz, seq_len, self.num_heads, self.head_dim) + + def forward( + self, + hidden_states: torch.Tensor, + key_value_states: Optional[torch.Tensor] = None, + past_key_value: Optional[Tuple[torch.Tensor]] = None, + attention_mask: Optional[torch.Tensor] = None, + layer_head_mask: Optional[torch.Tensor] = None, + output_attentions: bool = False, + ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]: + # MBartFlashAttention2 attention does not support output_attentions + if output_attentions: + raise ValueError("MBartFlashAttention2 attention does not support output_attentions") + + # if key_value_states are provided this layer is used as a cross-attention layer + # for the decoder + is_cross_attention = key_value_states is not None + + bsz, q_len, _ = hidden_states.size() + + # get query proj + query_states = self._shape_qk(self.q_proj(hidden_states), -1, bsz) + + # get key, value proj + # `past_key_value[0].shape[2] == key_value_states.shape[1]` + # is checking that the `sequence_length` of the `past_key_value` is the same as + # the provided `key_value_states` to support prefix tuning + if ( + is_cross_attention + and past_key_value is not None + and past_key_value[0].shape[2] == key_value_states.shape[1] + ): + # reuse k,v, cross_attentions + key_states = past_key_value[0].transpose(1, 2) + value_states = past_key_value[1].transpose(1, 2) + elif is_cross_attention: + # cross_attentions + key_states = self._shape_qk(self.k_proj(key_value_states), -1, bsz) + value_states = self._shape_v(self.v_proj(key_value_states), -1, bsz) + elif past_key_value is not None: + # reuse k, v, self_attention + key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz) + value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz) + key_states = torch.cat([past_key_value[0].transpose(1, 2), key_states], dim=1) + value_states = torch.cat([past_key_value[1].transpose(1, 2), value_states], dim=1) + else: + # self_attention + key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz) + value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz) + + if self.is_decoder: + # if cross_attention save Tuple(torch.Tensor, torch.Tensor) of all cross attention key/value_states. + # Further calls to cross_attention layer can then reuse all cross-attention + # key/value_states (first "if" case) + # if uni-directional self-attention (decoder) save Tuple(torch.Tensor, torch.Tensor) of + # all previous decoder key/value_states. Further calls to uni-directional self-attention + # can concat previous decoder key/value_states to current projected key/value_states (third "elif" case) + # if encoder bi-directional self-attention `past_key_value` is always `None` + past_key_value = (key_states.transpose(1, 2), value_states.transpose(1, 2)) + + kv_seq_len = key_states.shape[-2] + if past_key_value is not None: + kv_seq_len += past_key_value[0].shape[-2] + + # In PEFT, usually we cast the layer norms in float32 for training stability reasons + # therefore the input hidden states gets silently casted in float32. Hence, we need + # cast them back in the correct dtype just to be sure everything works as expected. + # This might slowdown training & inference so it is recommended to not cast the LayerNorms + # in fp32. (LlamaRMSNorm handles it correctly) + + input_dtype = query_states.dtype + if input_dtype == torch.float32: + if torch.is_autocast_enabled(): + target_dtype = torch.get_autocast_gpu_dtype() + # Handle the case where the model is quantized + elif hasattr(self.config, "_pre_quantization_dtype"): + target_dtype = self.config._pre_quantization_dtype + else: + target_dtype = self.q_proj.weight.dtype + + logger.warning_once( + f"The input hidden states seems to be silently casted in float32, this might be related to" + f" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in" + f" {target_dtype}." + ) + + query_states = query_states.to(target_dtype) + key_states = key_states.to(target_dtype) + value_states = value_states.to(target_dtype) + + attn_output = self._flash_attention_forward( + query_states, key_states, value_states, attention_mask, q_len, dropout=self.dropout + ) + + attn_output = attn_output.reshape(bsz, q_len, -1) + attn_output = self.out_proj(attn_output) + + if not output_attentions: + attn_weights = None + + return attn_output, attn_weights, past_key_value + + # Copied from transformers.models.llama.modeling_llama.LlamaFlashAttention2._flash_attention_forward + def _flash_attention_forward( + self, query_states, key_states, value_states, attention_mask, query_length, dropout=0.0, softmax_scale=None + ): + """ + Calls the forward method of Flash Attention - if the input hidden states contain at least one padding token + first unpad the input, then computes the attention scores and pad the final attention scores. + + Args: + query_states (`torch.Tensor`): + Input query states to be passed to Flash Attention API + key_states (`torch.Tensor`): + Input key states to be passed to Flash Attention API + value_states (`torch.Tensor`): + Input value states to be passed to Flash Attention API + attention_mask (`torch.Tensor`): + The padding mask - corresponds to a tensor of size `(batch_size, seq_len)` where 0 stands for the + position of padding tokens and 1 for the position of non-padding tokens. + dropout (`float`): + Attention dropout + softmax_scale (`float`, *optional*): + The scaling of QK^T before applying softmax. Default to 1 / sqrt(head_dim) + """ + if not self._flash_attn_uses_top_left_mask: + causal = self.is_causal + else: + # TODO: Remove the `query_length != 1` check once Flash Attention for RoCm is bumped to 2.1. For details, please see the comment in LlamaFlashAttention2 __init__. + causal = self.is_causal and query_length != 1 + + # Contains at least one padding token in the sequence + if attention_mask is not None: + batch_size = query_states.shape[0] + + query_states, key_states, value_states, indices_q, cu_seq_lens, max_seq_lens = self._upad_input( + query_states, key_states, value_states, attention_mask, query_length + ) + + cu_seqlens_q, cu_seqlens_k = cu_seq_lens + max_seqlen_in_batch_q, max_seqlen_in_batch_k = max_seq_lens + + attn_output_unpad = flash_attn_varlen_func( + query_states, + key_states, + value_states, + cu_seqlens_q=cu_seqlens_q, + cu_seqlens_k=cu_seqlens_k, + max_seqlen_q=max_seqlen_in_batch_q, + max_seqlen_k=max_seqlen_in_batch_k, + dropout_p=dropout, + softmax_scale=softmax_scale, + causal=causal, + ) + + attn_output = pad_input(attn_output_unpad, indices_q, batch_size, query_length) + else: + attn_output = flash_attn_func( + query_states, key_states, value_states, dropout, softmax_scale=softmax_scale, causal=causal + ) + + return attn_output + + # Copied from transformers.models.llama.modeling_llama.LlamaFlashAttention2._upad_input + def _upad_input(self, query_layer, key_layer, value_layer, attention_mask, query_length): + indices_k, cu_seqlens_k, max_seqlen_in_batch_k = _get_unpad_data(attention_mask) + batch_size, kv_seq_len, num_key_value_heads, head_dim = key_layer.shape + + key_layer = index_first_axis( + key_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k + ) + value_layer = index_first_axis( + value_layer.reshape(batch_size * kv_seq_len, num_key_value_heads, head_dim), indices_k + ) + if query_length == kv_seq_len: + query_layer = index_first_axis( + query_layer.reshape(batch_size * kv_seq_len, self.num_heads, head_dim), indices_k + ) + cu_seqlens_q = cu_seqlens_k + max_seqlen_in_batch_q = max_seqlen_in_batch_k + indices_q = indices_k + elif query_length == 1: + max_seqlen_in_batch_q = 1 + cu_seqlens_q = torch.arange( + batch_size + 1, dtype=torch.int32, device=query_layer.device + ) # There is a memcpy here, that is very bad. + indices_q = cu_seqlens_q[:-1] + query_layer = query_layer.squeeze(1) + else: + # The -q_len: slice assumes left padding. + attention_mask = attention_mask[:, -query_length:] + query_layer, indices_q, cu_seqlens_q, max_seqlen_in_batch_q = unpad_input(query_layer, attention_mask) + + return ( + query_layer, + key_layer, + value_layer, + indices_q, + (cu_seqlens_q, cu_seqlens_k), + (max_seqlen_in_batch_q, max_seqlen_in_batch_k), + ) + +class UnimerMBartSdpaAttention(UnimerMBartAttention): + def forward( + self, + hidden_states: torch.Tensor, + key_value_states: Optional[torch.Tensor] = None, + past_key_value: Optional[Tuple[torch.Tensor]] = None, + attention_mask: Optional[torch.Tensor] = None, + layer_head_mask: Optional[torch.Tensor] = None, + output_attentions: bool = False, + ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]: + """Input shape: Batch x Time x Channel""" + if output_attentions or layer_head_mask is not None: + # TODO: Improve this warning with e.g. `model.config._attn_implementation = "manual"` once this is implemented. + logger.warning( + "BartModel is using BartSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True` or `layer_head_mask` not None. Falling back to the manual attention" + ' implementation, but specifying the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can be removed using the argument `attn_implementation="eager"` when loading the model.' + ) + return super().forward( + hidden_states, + key_value_states=key_value_states, + past_key_value=past_key_value, + attention_mask=attention_mask, + layer_head_mask=layer_head_mask, + output_attentions=output_attentions, + ) + + # if key_value_states are provided this layer is used as a cross-attention layer + # for the decoder + is_cross_attention = key_value_states is not None + + bsz, tgt_len, _ = hidden_states.size() + + # get query proj + query_states = self.q_proj(hidden_states) + # get key, value proj + # `past_key_value[0].shape[2] == key_value_states.shape[1]` + # is checking that the `sequence_length` of the `past_key_value` is the same as + # the provided `key_value_states` to support prefix tuning + if ( + is_cross_attention + and past_key_value is not None + and past_key_value[0].shape[2] == key_value_states.shape[1] + ): + # reuse k,v, cross_attentions + key_states = past_key_value[0] + value_states = past_key_value[1] + elif is_cross_attention: + # cross_attentions + key_states = self._shape_qk(self.k_proj(key_value_states), -1, bsz) + value_states = self._shape_v(self.v_proj(key_value_states), -1, bsz) + elif past_key_value is not None: + # reuse k, v, self_attention + key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz) + value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz) + key_states = torch.cat([past_key_value[0], key_states], dim=2) + value_states = torch.cat([past_key_value[1], value_states], dim=2) + else: + # self_attention + key_states = self._shape_qk(self.k_proj(hidden_states), -1, bsz) + value_states = self._shape_v(self.v_proj(hidden_states), -1, bsz) + + if self.is_decoder: + # if cross_attention save Tuple(torch.Tensor, torch.Tensor) of all cross attention key/value_states. + # Further calls to cross_attention layer can then reuse all cross-attention + # key/value_states (first "if" case) + # if uni-directional self-attention (decoder) save Tuple(torch.Tensor, torch.Tensor) of + # all previous decoder key/value_states. Further calls to uni-directional self-attention + # can concat previous decoder key/value_states to current projected key/value_states (third "elif" case) + # if encoder bi-directional self-attention `past_key_value` is always `None` + past_key_value = (key_states, value_states) + + query_states = self._shape_qk(query_states, tgt_len, bsz) + + # We dispatch to SDPA's Flash Attention or Efficient kernels via this `is_causal` if statement instead of an inline conditional assignment + # in SDPA to support both torch.compile's dynamic shapes and full graph options. An inline conditional prevents dynamic shapes from compiling. + # The tgt_len > 1 is necessary to match with AttentionMaskConverter.to_causal_4d that does not create a causal mask in case tgt_len == 1. + is_causal = True if self.is_causal and attention_mask is None and tgt_len > 1 else False + + # NOTE: SDPA with memory-efficient backend is currently (torch==2.1.2) bugged when using non-contiguous inputs and a custom attn_mask, + # but we are fine here as `_shape` do call `.contiguous()`. Reference: https://github.com/pytorch/pytorch/issues/112577 + attn_output = torch.nn.functional.scaled_dot_product_attention( + query_states, + key_states, + value_states, + attn_mask=attention_mask, + dropout_p=self.dropout if self.training else 0.0, + is_causal=is_causal, + ) + + if attn_output.size() != (bsz, self.num_heads, tgt_len, self.head_dim): + raise ValueError( + f"`attn_output` should be of size {(bsz, self.num_heads, tgt_len, self.head_dim)}, but is" + f" {attn_output.size()}" + ) + + attn_output = attn_output.transpose(1, 2) + + # Use the `embed_dim` from the config (stored in the class) rather than `hidden_state` because `attn_output` can be + # partitioned across GPUs when using tensor-parallelism. + attn_output = attn_output.reshape(bsz, tgt_len, self.embed_dim) + + attn_output = self.out_proj(attn_output) + + return attn_output, None, past_key_value + +UNIMER_MBART_ATTENTION_CLASSES = { + "eager": UnimerMBartAttention, + "flash_attention_2": UnimerMBartFlashAttention2, + "sdpa": UnimerMBartSdpaAttention, +} + + +class UnimerMBartEncoderLayer(nn.Module): + def __init__(self, config: UnimerMBartConfig): + super().__init__() + self.embed_dim = config.d_model + + self.self_attn = UNIMER_MBART_ATTENTION_CLASSES[config._attn_implementation]( + embed_dim=self.embed_dim, + num_heads=config.encoder_attention_heads, + dropout=config.attention_dropout, + config=config, + ) + self.self_attn_layer_norm = nn.LayerNorm(self.embed_dim) + self.dropout = config.dropout + self.activation_fn = ACT2FN[config.activation_function] + self.activation_dropout = config.activation_dropout + self.fc1 = nn.Linear(self.embed_dim, config.encoder_ffn_dim) + self.fc2 = nn.Linear(config.encoder_ffn_dim, self.embed_dim) + self.final_layer_norm = nn.LayerNorm(self.embed_dim) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: torch.Tensor, + layer_head_mask: torch.Tensor, + output_attentions: bool = False, + ) -> torch.Tensor: + """ + Args: + hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)` + attention_mask (`torch.FloatTensor`): attention mask of size + `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values. + layer_head_mask (`torch.FloatTensor`): mask for attention heads in a given layer of size + `(encoder_attention_heads,)`. + output_attentions (`bool`, *optional*): + Whether or not to return the attentions tensors of all attention layers. See `attentions` under + returned tensors for more detail. + """ + residual = hidden_states + hidden_states = self.self_attn_layer_norm(hidden_states) + hidden_states, attn_weights, _ = self.self_attn( + hidden_states=hidden_states, + attention_mask=attention_mask, + layer_head_mask=layer_head_mask, + output_attentions=output_attentions, + ) + hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training) + hidden_states = residual + hidden_states + + residual = hidden_states + hidden_states = self.final_layer_norm(hidden_states) + hidden_states = self.activation_fn(self.fc1(hidden_states)) + hidden_states = nn.functional.dropout(hidden_states, p=self.activation_dropout, training=self.training) + hidden_states = self.fc2(hidden_states) + hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training) + hidden_states = residual + hidden_states + + if hidden_states.dtype == torch.float16 and ( + torch.isinf(hidden_states).any() or torch.isnan(hidden_states).any() + ): + clamp_value = torch.finfo(hidden_states.dtype).max - 1000 + hidden_states = torch.clamp(hidden_states, min=-clamp_value, max=clamp_value) + + outputs = (hidden_states,) + + if output_attentions: + outputs += (attn_weights,) + + return outputs + + +class UnimerMBartDecoderLayer(nn.Module): + def __init__(self, config: UnimerMBartConfig): + super().__init__() + self.embed_dim = config.d_model + + self.self_attn = UNIMER_MBART_ATTENTION_CLASSES[config._attn_implementation]( + embed_dim=self.embed_dim, + num_heads=config.decoder_attention_heads, + dropout=config.attention_dropout, + is_decoder=True, + is_causal=True, + config=config, + ) + self.dropout = config.dropout + self.activation_fn = ACT2FN[config.activation_function] + self.activation_dropout = config.activation_dropout + + self.self_attn_layer_norm = nn.LayerNorm(self.embed_dim) + self.encoder_attn = UNIMER_MBART_ATTENTION_CLASSES[config._attn_implementation]( + self.embed_dim, + config.decoder_attention_heads, + dropout=config.attention_dropout, + is_decoder=True, + config=config, + ) + self.encoder_attn_layer_norm = nn.LayerNorm(self.embed_dim) + self.fc1 = nn.Linear(self.embed_dim, config.decoder_ffn_dim) + self.fc2 = nn.Linear(config.decoder_ffn_dim, self.embed_dim) + self.final_layer_norm = nn.LayerNorm(self.embed_dim) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + encoder_hidden_states: Optional[torch.Tensor] = None, + encoder_attention_mask: Optional[torch.Tensor] = None, + layer_head_mask: Optional[torch.Tensor] = None, + cross_attn_layer_head_mask: Optional[torch.Tensor] = None, + past_key_value: Optional[Tuple[torch.Tensor]] = None, + output_attentions: Optional[bool] = False, + use_cache: Optional[bool] = True, + ) -> torch.Tensor: + """ + Args: + hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)` + attention_mask (`torch.FloatTensor`): attention mask of size + `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values. + encoder_hidden_states (`torch.FloatTensor`): + cross attention input to the layer of shape `(batch, seq_len, embed_dim)` + encoder_attention_mask (`torch.FloatTensor`): encoder attention mask of size + `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values. + layer_head_mask (`torch.FloatTensor`): mask for attention heads in a given layer of size + `(encoder_attention_heads,)`. + cross_attn_layer_head_mask (`torch.FloatTensor`): mask for cross-attention heads in a given layer of + size `(decoder_attention_heads,)`. + past_key_value (`Tuple(torch.FloatTensor)`): cached past key and value projection states + output_attentions (`bool`, *optional*): + Whether or not to return the attentions tensors of all attention layers. See `attentions` under + returned tensors for more detail. + """ + residual = hidden_states + hidden_states = self.self_attn_layer_norm(hidden_states) + + # Self Attention + # decoder uni-directional self-attention cached key/values tuple is at positions 1,2 + self_attn_past_key_value = past_key_value[:2] if past_key_value is not None else None + # add present self-attn cache to positions 1,2 of present_key_value tuple + hidden_states, self_attn_weights, present_key_value = self.self_attn( + hidden_states=hidden_states, + past_key_value=self_attn_past_key_value, + attention_mask=attention_mask, + layer_head_mask=layer_head_mask, + output_attentions=output_attentions, + ) + hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training) + hidden_states = residual + hidden_states + + # Cross-Attention Block + cross_attn_present_key_value = None + cross_attn_weights = None + if encoder_hidden_states is not None: + residual = hidden_states + hidden_states = self.encoder_attn_layer_norm(hidden_states) + + # cross_attn cached key/values tuple is at positions 3,4 of present_key_value tuple + cross_attn_past_key_value = past_key_value[-2:] if past_key_value is not None else None + hidden_states, cross_attn_weights, cross_attn_present_key_value = self.encoder_attn( + hidden_states=hidden_states, + key_value_states=encoder_hidden_states, + attention_mask=encoder_attention_mask, + layer_head_mask=cross_attn_layer_head_mask, + past_key_value=cross_attn_past_key_value, + output_attentions=output_attentions, + ) + hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training) + hidden_states = residual + hidden_states + + # add cross-attn to positions 3,4 of present_key_value tuple + present_key_value = present_key_value + cross_attn_present_key_value + + # Fully Connected + residual = hidden_states + hidden_states = self.final_layer_norm(hidden_states) + hidden_states = self.activation_fn(self.fc1(hidden_states)) + hidden_states = nn.functional.dropout(hidden_states, p=self.activation_dropout, training=self.training) + hidden_states = self.fc2(hidden_states) + hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training) + hidden_states = residual + hidden_states + + outputs = (hidden_states,) + + if output_attentions: + outputs += (self_attn_weights, cross_attn_weights) + + if use_cache: + outputs += (present_key_value,) + + return outputs + + +# Copied from transformers.models.bart.modeling_bart.BartClassificationHead with Bart->MBart +class UnimerMBartClassificationHead(nn.Module): + """Head for sentence-level classification tasks.""" + + def __init__( + self, + input_dim: int, + inner_dim: int, + num_classes: int, + pooler_dropout: float, + ): + super().__init__() + self.dense = nn.Linear(input_dim, inner_dim) + self.dropout = nn.Dropout(p=pooler_dropout) + self.out_proj = nn.Linear(inner_dim, num_classes) + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + hidden_states = self.dropout(hidden_states) + hidden_states = self.dense(hidden_states) + hidden_states = torch.tanh(hidden_states) + hidden_states = self.dropout(hidden_states) + hidden_states = self.out_proj(hidden_states) + return hidden_states + + +class UnimerMBartPreTrainedModel(PreTrainedModel): + config_class = UnimerMBartConfig + base_model_prefix = "model" + supports_gradient_checkpointing = True + _no_split_modules = ["MBartDecoderLayer", "MBartSqueezeAttention"] + _supports_flash_attn_2 = True + _supports_sdpa = True + + def _init_weights(self, module): + std = self.config.init_std + if isinstance(module, nn.Linear): + module.weight.data.normal_(mean=0.0, std=std) + if module.bias is not None: + module.bias.data.zero_() + elif isinstance(module, nn.Embedding): + module.weight.data.normal_(mean=0.0, std=std) + if module.padding_idx is not None: + module.weight.data[module.padding_idx].zero_() + + @property + def dummy_inputs(self): + pad_token = self.config.pad_token_id + input_ids = torch.tensor([[0, 6, 10, 4, 2], [0, 8, 12, 2, pad_token]], device=self.device) + dummy_inputs = { + "attention_mask": input_ids.ne(pad_token), + "input_ids": input_ids, + } + return dummy_inputs + + +MBART_START_DOCSTRING = r""" + This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the + library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads + etc.) + + This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass. + Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage + and behavior. + + Parameters: + config ([`MBartConfig`]): + Model configuration class with all the parameters of the model. Initializing with a config file does not + load the weights associated with the model, only the configuration. Check out the + [`~PreTrainedModel.from_pretrained`] method to load the model weights. +""" + +MBART_GENERATION_EXAMPLE = r""" + Translation example: + + ```python + >>> from transformers import AutoTokenizer, MBartForConditionalGeneration + + >>> model = MBartForConditionalGeneration.from_pretrained("facebook/mbart-large-en-ro") + >>> tokenizer = AutoTokenizer.from_pretrained("facebook/mbart-large-en-ro") + + >>> example_english_phrase = "42 is the answer" + >>> inputs = tokenizer(example_english_phrase, return_tensors="pt") + + >>> # Translate + >>> generated_ids = model.generate(**inputs, num_beams=4, max_length=5) + >>> tokenizer.batch_decode(generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0] + '42 este răspuns' + ``` + + Mask filling example: + + ```python + >>> from transformers import AutoTokenizer, MBartForConditionalGeneration + + >>> model = MBartForConditionalGeneration.from_pretrained("facebook/mbart-large-cc25") + >>> tokenizer = AutoTokenizer.from_pretrained("facebook/mbart-large-cc25") + + >>> # de_DE is the language symbol id for German + >>> TXT = " Meine Freunde sind nett aber sie essen zu viel Kuchen. de_DE" + + >>> input_ids = tokenizer([TXT], add_special_tokens=False, return_tensors="pt")["input_ids"] + >>> logits = model(input_ids).logits + + >>> masked_index = (input_ids[0] == tokenizer.mask_token_id).nonzero().item() + >>> probs = logits[0, masked_index].softmax(dim=0) + >>> values, predictions = probs.topk(5) + + >>> tokenizer.decode(predictions).split() + ['nett', 'sehr', 'ganz', 'nicht', 'so'] + ``` +""" + +MBART_INPUTS_DOCSTRING = r""" + Args: + input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`): + Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide + it. + + Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and + [`PreTrainedTokenizer.__call__`] for details. + + [What are input IDs?](../glossary#input-ids) + attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*): + Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`: + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + + [What are attention masks?](../glossary#attention-mask) + decoder_input_ids (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*): + Indices of decoder input sequence tokens in the vocabulary. + + Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and + [`PreTrainedTokenizer.__call__`] for details. + + [What are decoder input IDs?](../glossary#decoder-input-ids) + + MBart uses a specific language id token as the starting token for `decoder_input_ids` generation that + varies according to source and target language, *e.g.* 25004 for *en_XX*, and 25003 for *de_DE*. If + `past_key_values` is used, optionally only the last `decoder_input_ids` have to be input (see + `past_key_values`). + + For translation and summarization training, `decoder_input_ids` should be provided. If no + `decoder_input_ids` is provided, the model will create this tensor by shifting the `input_ids` to the right + for denoising pre-training following the paper. + decoder_attention_mask (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*): + Default behavior: generate a tensor that ignores pad tokens in `decoder_input_ids`. Causal mask will also + be used by default. + head_mask (`torch.Tensor` of shape `(encoder_layers, encoder_attention_heads)`, *optional*): + Mask to nullify selected heads of the attention modules in the encoder. Mask values selected in `[0, 1]`: + + - 1 indicates the head is **not masked**, + - 0 indicates the head is **masked**. + + decoder_head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*): + Mask to nullify selected heads of the attention modules in the decoder. Mask values selected in `[0, 1]`: + + - 1 indicates the head is **not masked**, + - 0 indicates the head is **masked**. + + cross_attn_head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*): + Mask to nullify selected heads of the cross-attention modules in the decoder. Mask values selected in `[0, + 1]`: + + - 1 indicates the head is **not masked**, + - 0 indicates the head is **masked**. + + encoder_outputs (`tuple(tuple(torch.FloatTensor)`, *optional*): + Tuple consists of (`last_hidden_state`, *optional*: `hidden_states`, *optional*: `attentions`) + `last_hidden_state` of shape `(batch_size, sequence_length, hidden_size)`, *optional*) is a sequence of + hidden-states at the output of the last layer of the encoder. Used in the cross-attention of the decoder. + past_key_values (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`): + Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of shape + `(batch_size, num_heads, sequence_length, embed_size_per_head)`) and 2 additional tensors of shape + `(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)`. + + Contains pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention + blocks) that can be used (see `past_key_values` input) to speed up sequential decoding. + + If `past_key_values` are used, the user can optionally input only the last `decoder_input_ids` (those that + don't have their past key value states given to this model) of shape `(batch_size, 1)` instead of all + `decoder_input_ids` of shape `(batch_size, sequence_length)`. + inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*): + Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. + This is useful if you want more control over how to convert `input_ids` indices into associated vectors + than the model's internal embedding lookup matrix. + decoder_inputs_embeds (`torch.FloatTensor` of shape `(batch_size, target_sequence_length, hidden_size)`, *optional*): + Optionally, instead of passing `decoder_input_ids` you can choose to directly pass an embedded + representation. If `past_key_values` is used, optionally only the last `decoder_inputs_embeds` have to be + input (see `past_key_values`). This is useful if you want more control over how to convert + `decoder_input_ids` indices into associated vectors than the model's internal embedding lookup matrix. + + If `decoder_input_ids` and `decoder_inputs_embeds` are both unset, `decoder_inputs_embeds` takes the value + of `inputs_embeds`. + use_cache (`bool`, *optional*): + If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see + `past_key_values`). + output_attentions (`bool`, *optional*): + Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned + tensors for more detail. + output_hidden_states (`bool`, *optional*): + Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for + more detail. + return_dict (`bool`, *optional*): + Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple. +""" + + +class UnimerMBartEncoder(UnimerMBartPreTrainedModel): + """ + Transformer encoder consisting of *config.encoder_layers* self attention layers. Each layer is a + [`MBartEncoderLayer`]. + + Args: + config: MBartConfig + embed_tokens (nn.Embedding): output embedding + """ + + def __init__(self, config: UnimerMBartConfig, embed_tokens: Optional[nn.Embedding] = None): + super().__init__(config) + + self.dropout = config.dropout + self.layerdrop = config.encoder_layerdrop + + embed_dim = config.d_model + self.padding_idx = config.pad_token_id + self.max_source_positions = config.max_position_embeddings + embed_scale = math.sqrt(embed_dim) if config.scale_embedding else 1.0 + + self.embed_tokens = UnimerMBartScaledWordEmbedding( + config.vocab_size, embed_dim, self.padding_idx, embed_scale=embed_scale + ) + + if embed_tokens is not None: + self.embed_tokens.weight = embed_tokens.weight + + self.embed_positions = UnimerMBartLearnedPositionalEmbedding( + config.max_position_embeddings, + embed_dim, + ) + self.layers = nn.ModuleList([UnimerMBartEncoderLayer(config) for _ in range(config.encoder_layers)]) + self._use_flash_attention_2 = config._attn_implementation == "flash_attention_2" + self._use_sdpa = config._attn_implementation == "sdpa" + self.layernorm_embedding = nn.LayerNorm(embed_dim) + self.layer_norm = nn.LayerNorm(config.d_model) + + self.gradient_checkpointing = False + # Initialize weights and apply final processing + self.post_init() + + def _backward_compatibility_gradient_checkpointing(self): + # Override to not delete the attribute from the config + if self.supports_gradient_checkpointing and getattr(self.config, "gradient_checkpointing", False): + self.gradient_checkpointing_enable() + + def forward( + self, + input_ids: torch.LongTensor = None, + attention_mask: Optional[torch.Tensor] = None, + head_mask: Optional[torch.Tensor] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + ) -> Union[Tuple, BaseModelOutput]: + r""" + Args: + input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`): + Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you + provide it. + + Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and + [`PreTrainedTokenizer.__call__`] for details. + + [What are input IDs?](../glossary#input-ids) + attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*): + Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`: + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + + [What are attention masks?](../glossary#attention-mask) + head_mask (`torch.Tensor` of shape `(encoder_layers, encoder_attention_heads)`, *optional*): + Mask to nullify selected heads of the attention modules. Mask values selected in `[0, 1]`: + + - 1 indicates the head is **not masked**, + - 0 indicates the head is **masked**. + + inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*): + Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. + This is useful if you want more control over how to convert `input_ids` indices into associated vectors + than the model's internal embedding lookup matrix. + output_attentions (`bool`, *optional*): + Whether or not to return the attentions tensors of all attention layers. See `attentions` under + returned tensors for more detail. + output_hidden_states (`bool`, *optional*): + Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors + for more detail. + return_dict (`bool`, *optional*): + Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple. + """ + output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions + output_hidden_states = ( + output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states + ) + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + # retrieve input_ids and inputs_embeds + if input_ids is not None and inputs_embeds is not None: + raise ValueError("You cannot specify both input_ids and inputs_embeds at the same time") + elif input_ids is not None: + input = input_ids + input_shape = input.shape + input_ids = input_ids.view(-1, input_shape[-1]) + elif inputs_embeds is not None: + input = inputs_embeds[:, :, -1] + else: + raise ValueError("You have to specify either input_ids or inputs_embeds") + + if inputs_embeds is None: + inputs_embeds = self.embed_tokens(input_ids) + + embed_pos = self.embed_positions(input) + + hidden_states = inputs_embeds + embed_pos.to(inputs_embeds.device) + hidden_states = self.layernorm_embedding(hidden_states) + hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training) + + # expand attention_mask + if attention_mask is not None: + # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len] + if self._use_flash_attention_2: + attention_mask = attention_mask if 0 in attention_mask else None + elif self._use_sdpa and head_mask is None and not output_attentions: + # output_attentions=True & head_mask can not be supported when using SDPA, fall back to + # the manual implementation that requires a 4D causal mask in all cases. + # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len] + attention_mask = _prepare_4d_attention_mask_for_sdpa(attention_mask, inputs_embeds.dtype) + else: + # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len] + attention_mask = _prepare_4d_attention_mask(attention_mask, inputs_embeds.dtype) + + encoder_states = () if output_hidden_states else None + all_attentions = () if output_attentions else None + + # check if head_mask has a correct number of layers specified if desired + if head_mask is not None: + if head_mask.size()[0] != len(self.layers): + raise ValueError( + f"The head_mask should be specified for {len(self.layers)} layers, but it is for" + f" {head_mask.size()[0]}." + ) + for idx, encoder_layer in enumerate(self.layers): + if output_hidden_states: + encoder_states = encoder_states + (hidden_states,) + # add LayerDrop (see https://arxiv.org/abs/1909.11556 for description) + to_drop = False + if self.training: + dropout_probability = torch.rand([]) + if dropout_probability < self.layerdrop: # skip the layer + to_drop = True + + if to_drop: + layer_outputs = (None, None) + else: + if self.gradient_checkpointing and self.training: + layer_outputs = self._gradient_checkpointing_func( + encoder_layer.__call__, + hidden_states, + attention_mask, + (head_mask[idx] if head_mask is not None else None), + output_attentions, + ) + else: + layer_outputs = encoder_layer( + hidden_states, + attention_mask, + layer_head_mask=(head_mask[idx] if head_mask is not None else None), + output_attentions=output_attentions, + ) + + hidden_states = layer_outputs[0] + + if output_attentions: + all_attentions = all_attentions + (layer_outputs[1],) + + hidden_states = self.layer_norm(hidden_states) + + if output_hidden_states: + encoder_states = encoder_states + (hidden_states,) + + if not return_dict: + return tuple(v for v in [hidden_states, encoder_states, all_attentions] if v is not None) + return BaseModelOutput( + last_hidden_state=hidden_states, hidden_states=encoder_states, attentions=all_attentions + ) + + +class UnimerMBartDecoder(UnimerMBartPreTrainedModel): + """ + Transformer decoder consisting of *config.decoder_layers* layers. Each layer is a [`MBartDecoderLayer`] + + Args: + config: MBartConfig + embed_tokens (nn.Embedding): output embedding + """ + + def __init__(self, config: UnimerMBartConfig, embed_tokens: Optional[nn.Embedding] = None): + super().__init__(config) + self.dropout = config.dropout + self.layerdrop = config.decoder_layerdrop + self.padding_idx = config.pad_token_id + self.max_target_positions = config.max_position_embeddings + embed_scale = math.sqrt(config.d_model) if config.scale_embedding else 1.0 + + self.embed_tokens = UnimerMBartScaledWordEmbedding( + config.vocab_size, config.d_model, self.padding_idx, embed_scale=embed_scale + ) + + if embed_tokens is not None: + self.embed_tokens.weight = embed_tokens.weight + + self.embed_positions = UnimerMBartLearnedPositionalEmbedding( + config.max_position_embeddings, + config.d_model, + ) + self.layers = nn.ModuleList([UnimerMBartDecoderLayer(config) for _ in range(config.decoder_layers)]) + self._use_flash_attention_2 = config._attn_implementation == "flash_attention_2" + self._use_sdpa = config._attn_implementation == "sdpa" + self.layernorm_embedding = nn.LayerNorm(config.d_model) + self.layer_norm = nn.LayerNorm(config.d_model) + + self.gradient_checkpointing = False + # Initialize weights and apply final processing + self.post_init() + + def get_input_embeddings(self): + return self.embed_tokens + + def set_input_embeddings(self, value): + self.embed_tokens = value + + def forward( + self, + input_ids: torch.LongTensor = None, + attention_mask: Optional[torch.Tensor] = None, + count_pred: Optional[torch.FloatTensor] = None, + encoder_hidden_states: Optional[torch.FloatTensor] = None, + encoder_attention_mask: Optional[torch.LongTensor] = None, + head_mask: Optional[torch.Tensor] = None, + cross_attn_head_mask: Optional[torch.Tensor] = None, + past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + use_cache: Optional[bool] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + ) -> Union[Tuple, BaseModelOutputWithPastAndCrossAttentions]: + r""" + Args: + input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`): + Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you + provide it. + + Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and + [`PreTrainedTokenizer.__call__`] for details. + + [What are input IDs?](../glossary#input-ids) + attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*): + Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`: + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + + [What are attention masks?](../glossary#attention-mask) + encoder_hidden_states (`torch.FloatTensor` of shape `(batch_size, encoder_sequence_length, hidden_size)`, *optional*): + Sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention + of the decoder. + encoder_attention_mask (`torch.LongTensor` of shape `(batch_size, encoder_sequence_length)`, *optional*): + Mask to avoid performing cross-attention on padding tokens indices of encoder input_ids. Mask values + selected in `[0, 1]`: + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + + [What are attention masks?](../glossary#attention-mask) + head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*): + Mask to nullify selected heads of the attention modules. Mask values selected in `[0, 1]`: + + - 1 indicates the head is **not masked**, + - 0 indicates the head is **masked**. + + cross_attn_head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*): + Mask to nullify selected heads of the cross-attention modules in the decoder to avoid performing + cross-attention on hidden heads. Mask values selected in `[0, 1]`: + + - 1 indicates the head is **not masked**, + - 0 indicates the head is **masked**. + + past_key_values (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`): + Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of + shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`) and 2 additional tensors of + shape `(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)`. + + Contains pre-computed hidden-states (key and values in the self-attention blocks and in the + cross-attention blocks) that can be used (see `past_key_values` input) to speed up sequential decoding. + + If `past_key_values` are used, the user can optionally input only the last `decoder_input_ids` (those + that don't have their past key value states given to this model) of shape `(batch_size, 1)` instead of + all `decoder_input_ids` of shape `(batch_size, sequence_length)`. + inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*): + Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. + This is useful if you want more control over how to convert `input_ids` indices into associated vectors + than the model's internal embedding lookup matrix. + output_attentions (`bool`, *optional*): + Whether or not to return the attentions tensors of all attention layers. See `attentions` under + returned tensors for more detail. + output_hidden_states (`bool`, *optional*): + Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors + for more detail. + return_dict (`bool`, *optional*): + Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple. + """ + output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions + output_hidden_states = ( + output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states + ) + use_cache = use_cache if use_cache is not None else self.config.use_cache + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + # retrieve input_ids and inputs_embeds + if input_ids is not None and inputs_embeds is not None: + raise ValueError("You cannot specify both decoder_input_ids and decoder_inputs_embeds at the same time") + elif input_ids is not None: + input = input_ids + input_shape = input.size() + input_ids = input_ids.view(-1, input_shape[-1]) + elif inputs_embeds is not None: + input_shape = inputs_embeds.size()[:-1] + input = inputs_embeds[:, :, -1] + else: + raise ValueError("You have to specify either decoder_input_ids or decoder_inputs_embeds") + + # past_key_values_length + # past_key_values_length = past_key_values[0][0].shape[2] if past_key_values is not None else 0 + past_key_values_length = 0 + if past_key_values is not None: + if isinstance(past_key_values, (list, tuple)) and past_key_values: + past_key_values_length = past_key_values[0][0].shape[2] + + if inputs_embeds is None: + inputs_embeds = self.embed_tokens(input_ids) + + if self._use_flash_attention_2: + # 2d mask is passed through the layers + attention_mask = attention_mask if (attention_mask is not None and 0 in attention_mask) else None + elif self._use_sdpa and not output_attentions and cross_attn_head_mask is None: + # output_attentions=True & cross_attn_head_mask can not be supported when using SDPA, and we fall back on + # the manual implementation that requires a 4D causal mask in all cases. + attention_mask = _prepare_4d_causal_attention_mask_for_sdpa( + attention_mask, + input_shape, + inputs_embeds, + past_key_values_length, + ) + else: + # 4d mask is passed through the layers + attention_mask = _prepare_4d_causal_attention_mask( + attention_mask, input_shape, inputs_embeds, past_key_values_length + ) + + # expand encoder attention mask + if encoder_hidden_states is not None and encoder_attention_mask is not None: + if self._use_flash_attention_2: + encoder_attention_mask = encoder_attention_mask if 0 in encoder_attention_mask else None + elif self._use_sdpa and cross_attn_head_mask is None and not output_attentions: + # output_attentions=True & cross_attn_head_mask can not be supported when using SDPA, and we fall back on + # the manual implementation that requires a 4D causal mask in all cases. + # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len] + encoder_attention_mask = _prepare_4d_attention_mask_for_sdpa( + encoder_attention_mask, + inputs_embeds.dtype, + tgt_len=input_shape[-1], + ) + else: + # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len] + encoder_attention_mask = _prepare_4d_attention_mask( + encoder_attention_mask, inputs_embeds.dtype, tgt_len=input_shape[-1] + ) + + # embed positions + positions = self.embed_positions(input, past_key_values_length) + + hidden_states = inputs_embeds + positions.to(inputs_embeds.device) + + # TODO: add counting context weight to hidden_states + if count_pred is not None: + count_context_weight = self.counting_context_weight(count_pred) + hidden_states = hidden_states + 0.5 * count_context_weight.unsqueeze(1) + + hidden_states = self.layernorm_embedding(hidden_states) + hidden_states = nn.functional.dropout(hidden_states, p=self.dropout, training=self.training) + + if self.gradient_checkpointing and self.training: + if use_cache: + logger.warning_once( + "`use_cache=True` is incompatible with gradient checkpointing`. Setting `use_cache=False`..." + ) + use_cache = False + + # decoder layers + all_hidden_states = () if output_hidden_states else None + all_self_attns = () if output_attentions else None + all_cross_attentions = () if (output_attentions and encoder_hidden_states is not None) else None + next_decoder_cache = () if use_cache else None + + # check if head_mask/cross_attn_head_mask has a correct number of layers specified if desired + for attn_mask, mask_name in zip([head_mask, cross_attn_head_mask], ["head_mask", "cross_attn_head_mask"]): + if attn_mask is not None: + if attn_mask.size()[0] != len(self.layers): + raise ValueError( + f"The `{mask_name}` should be specified for {len(self.layers)} layers, but it is for" + f" {attn_mask.size()[0]}." + ) + for idx, decoder_layer in enumerate(self.layers): + # add LayerDrop (see https://arxiv.org/abs/1909.11556 for description) + if output_hidden_states: + all_hidden_states += (hidden_states,) + if self.training: + dropout_probability = torch.rand([]) + if dropout_probability < self.layerdrop: + continue + + # past_key_value = past_key_values[idx] if past_key_values is not None else None + past_key_value = past_key_values[idx] if ( + past_key_values is not None and + isinstance(past_key_values, (list, tuple)) and + idx < len(past_key_values) + ) else None + + if self.gradient_checkpointing and self.training: + layer_outputs = self._gradient_checkpointing_func( + decoder_layer.__call__, + hidden_states, + attention_mask, + encoder_hidden_states, + encoder_attention_mask, + head_mask[idx] if head_mask is not None else None, + cross_attn_head_mask[idx] if cross_attn_head_mask is not None else None, + None, + output_attentions, + use_cache, + ) + else: + layer_outputs = decoder_layer( + hidden_states, + attention_mask=attention_mask, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=encoder_attention_mask, + layer_head_mask=(head_mask[idx] if head_mask is not None else None), + cross_attn_layer_head_mask=( + cross_attn_head_mask[idx] if cross_attn_head_mask is not None else None + ), + past_key_value=past_key_value, + output_attentions=output_attentions, + use_cache=use_cache, + ) + hidden_states = layer_outputs[0] + + if use_cache: + next_decoder_cache += (layer_outputs[3 if output_attentions else 1],) + + if output_attentions: + all_self_attns += (layer_outputs[1],) + + if encoder_hidden_states is not None: + all_cross_attentions += (layer_outputs[2],) + + hidden_states = self.layer_norm(hidden_states) + + # add hidden states from the last decoder layer + if output_hidden_states: + all_hidden_states += (hidden_states,) + + next_cache = next_decoder_cache if use_cache else None + if not return_dict: + return tuple( + v + for v in [hidden_states, next_cache, all_hidden_states, all_self_attns, all_cross_attentions] + if v is not None + ) + return BaseModelOutputWithPastAndCrossAttentions( + last_hidden_state=hidden_states, + past_key_values=next_cache, + hidden_states=all_hidden_states, + attentions=all_self_attns, + cross_attentions=all_cross_attentions, + ) + + +@add_start_docstrings( + "The bare MBART Model outputting raw hidden-states without any specific head on top.", + MBART_START_DOCSTRING, +) +class UnimerMBartModel(UnimerMBartPreTrainedModel): + _tied_weights_keys = ["encoder.embed_tokens.weight", "decoder.embed_tokens.weight"] + + def __init__(self, config: UnimerMBartConfig): + super().__init__(config) + + padding_idx, vocab_size = config.pad_token_id, config.vocab_size + self.shared = nn.Embedding(vocab_size, config.d_model, padding_idx) + + self.encoder = UnimerMBartEncoder(config, self.shared) + self.decoder = UnimerMBartDecoder(config, self.shared) + + # Initialize weights and apply final processing + self.post_init() + + def get_input_embeddings(self): + return self.shared + + def set_input_embeddings(self, value): + self.shared = value + self.encoder.embed_tokens = self.shared + self.decoder.embed_tokens = self.shared + + def get_encoder(self): + return self.encoder + + def get_decoder(self): + return self.decoder + + def _tie_weights(self): + if self.config.tie_word_embeddings: + self._tie_or_clone_weights(self.encoder.embed_tokens, self.get_input_embeddings()) + self._tie_or_clone_weights(self.decoder.embed_tokens, self.get_input_embeddings()) + + @add_start_docstrings_to_model_forward(MBART_INPUTS_DOCSTRING) + @add_code_sample_docstrings( + checkpoint=_CHECKPOINT_FOR_DOC, + output_type=Seq2SeqModelOutput, + config_class=_CONFIG_FOR_DOC, + expected_output=_EXPECTED_OUTPUT_SHAPE, + ) + def forward( + self, + input_ids: torch.LongTensor = None, + attention_mask: Optional[torch.Tensor] = None, + decoder_input_ids: Optional[torch.LongTensor] = None, + decoder_attention_mask: Optional[torch.LongTensor] = None, + head_mask: Optional[torch.Tensor] = None, + decoder_head_mask: Optional[torch.Tensor] = None, + cross_attn_head_mask: Optional[torch.Tensor] = None, + encoder_outputs: Optional[Tuple[Tuple[torch.FloatTensor]]] = None, + past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + decoder_inputs_embeds: Optional[torch.FloatTensor] = None, + use_cache: Optional[bool] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + ) -> Union[Seq2SeqModelOutput, Tuple[torch.FloatTensor]]: + output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions + output_hidden_states = ( + output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states + ) + use_cache = use_cache if use_cache is not None else self.config.use_cache + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + # different to other models, MBart automatically creates decoder_input_ids from + # input_ids if no decoder_input_ids are provided + if decoder_input_ids is None and decoder_inputs_embeds is None: + decoder_input_ids = shift_tokens_right(input_ids, self.config.pad_token_id) + + if encoder_outputs is None: + encoder_outputs = self.encoder( + input_ids=input_ids, + attention_mask=attention_mask, + head_mask=head_mask, + inputs_embeds=inputs_embeds, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + # If the user passed a tuple for encoder_outputs, we wrap it in a BaseModelOutput when return_dict=True + elif return_dict and not isinstance(encoder_outputs, BaseModelOutput): + encoder_outputs = BaseModelOutput( + last_hidden_state=encoder_outputs[0], + hidden_states=encoder_outputs[1] if len(encoder_outputs) > 1 else None, + attentions=encoder_outputs[2] if len(encoder_outputs) > 2 else None, + ) + + # decoder outputs consists of (dec_features, past_key_value, dec_hidden, dec_attn) + decoder_outputs = self.decoder( + input_ids=decoder_input_ids, + attention_mask=decoder_attention_mask, + encoder_hidden_states=encoder_outputs[0], + encoder_attention_mask=attention_mask, + head_mask=decoder_head_mask, + cross_attn_head_mask=cross_attn_head_mask, + past_key_values=past_key_values, + inputs_embeds=decoder_inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + + if not return_dict: + return decoder_outputs + encoder_outputs + + return Seq2SeqModelOutput( + last_hidden_state=decoder_outputs.last_hidden_state, + past_key_values=decoder_outputs.past_key_values, + decoder_hidden_states=decoder_outputs.hidden_states, + decoder_attentions=decoder_outputs.attentions, + cross_attentions=decoder_outputs.cross_attentions, + encoder_last_hidden_state=encoder_outputs.last_hidden_state, + encoder_hidden_states=encoder_outputs.hidden_states, + encoder_attentions=encoder_outputs.attentions, + ) + + +@add_start_docstrings( + "The MBART Model with a language modeling head. Can be used for summarization, after fine-tuning the pretrained models.", + MBART_START_DOCSTRING, +) +class UnimerMBartForConditionalGeneration(UnimerMBartPreTrainedModel, GenerationMixin): + base_model_prefix = "model" + _keys_to_ignore_on_load_missing = ["final_logits_bias"] + _tied_weights_keys = ["model.encoder.embed_tokens.weight", "model.decoder.embed_tokens.weight", "lm_head.weight"] + + def __init__(self, config: UnimerMBartConfig): + super().__init__(config) + self.model = UnimerMBartModel(config) + self.register_buffer("final_logits_bias", torch.zeros((1, self.model.shared.num_embeddings))) + self.lm_head = nn.Linear(config.d_model, self.model.shared.num_embeddings, bias=False) + + # Initialize weights and apply final processing + self.post_init() + + def get_encoder(self): + return self.model.get_encoder() + + def get_decoder(self): + return self.model.get_decoder() + + def resize_token_embeddings(self, new_num_tokens: int, pad_to_multiple_of: Optional[int] = None) -> nn.Embedding: + new_embeddings = super().resize_token_embeddings(new_num_tokens, pad_to_multiple_of) + self._resize_final_logits_bias(new_embeddings.weight.shape[0]) + return new_embeddings + + def _resize_final_logits_bias(self, new_num_tokens: int) -> None: + old_num_tokens = self.final_logits_bias.shape[-1] + if new_num_tokens <= old_num_tokens: + new_bias = self.final_logits_bias[:, :new_num_tokens] + else: + extra_bias = torch.zeros((1, new_num_tokens - old_num_tokens), device=self.final_logits_bias.device) + new_bias = torch.cat([self.final_logits_bias, extra_bias], dim=1) + self.register_buffer("final_logits_bias", new_bias) + + def get_output_embeddings(self): + return self.lm_head + + def set_output_embeddings(self, new_embeddings): + self.lm_head = new_embeddings + + @add_start_docstrings_to_model_forward(MBART_INPUTS_DOCSTRING) + @replace_return_docstrings(output_type=Seq2SeqLMOutput, config_class=_CONFIG_FOR_DOC) + @add_end_docstrings(MBART_GENERATION_EXAMPLE) + def forward( + self, + input_ids: torch.LongTensor = None, + attention_mask: Optional[torch.Tensor] = None, + decoder_input_ids: Optional[torch.LongTensor] = None, + decoder_attention_mask: Optional[torch.LongTensor] = None, + head_mask: Optional[torch.Tensor] = None, + decoder_head_mask: Optional[torch.Tensor] = None, + cross_attn_head_mask: Optional[torch.Tensor] = None, + encoder_outputs: Optional[Tuple[Tuple[torch.FloatTensor]]] = None, + past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + decoder_inputs_embeds: Optional[torch.FloatTensor] = None, + labels: Optional[torch.LongTensor] = None, + use_cache: Optional[bool] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + ) -> Union[Seq2SeqLMOutput, Tuple[torch.FloatTensor]]: + r""" + labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*): + Labels for computing the masked language modeling loss. Indices should either be in `[0, ..., + config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored + (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`. + + Returns: + + """ + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + if labels is not None: + if use_cache: + logger.warning("The `use_cache` argument is changed to `False` since `labels` is provided.") + use_cache = False + if decoder_input_ids is None and decoder_inputs_embeds is None: + decoder_input_ids = shift_tokens_right(labels, self.config.pad_token_id) + + outputs = self.model( + input_ids, + attention_mask=attention_mask, + decoder_input_ids=decoder_input_ids, + encoder_outputs=encoder_outputs, + decoder_attention_mask=decoder_attention_mask, + head_mask=head_mask, + decoder_head_mask=decoder_head_mask, + cross_attn_head_mask=cross_attn_head_mask, + past_key_values=past_key_values, + inputs_embeds=inputs_embeds, + decoder_inputs_embeds=decoder_inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + lm_logits = self.lm_head(outputs[0]) + self.final_logits_bias + + masked_lm_loss = None + if labels is not None: + loss_fct = CrossEntropyLoss() + masked_lm_loss = loss_fct(lm_logits.view(-1, self.config.vocab_size), labels.view(-1)) + + if not return_dict: + output = (lm_logits,) + outputs[1:] + return ((masked_lm_loss,) + output) if masked_lm_loss is not None else output + + return Seq2SeqLMOutput( + loss=masked_lm_loss, + logits=lm_logits, + past_key_values=outputs.past_key_values, + decoder_hidden_states=outputs.decoder_hidden_states, + decoder_attentions=outputs.decoder_attentions, + cross_attentions=outputs.cross_attentions, + encoder_last_hidden_state=outputs.encoder_last_hidden_state, + encoder_hidden_states=outputs.encoder_hidden_states, + encoder_attentions=outputs.encoder_attentions, + ) + + def prepare_inputs_for_generation( + self, + decoder_input_ids, + past_key_values=None, + attention_mask=None, + head_mask=None, + decoder_head_mask=None, + cross_attn_head_mask=None, + use_cache=None, + encoder_outputs=None, + **kwargs, + ): + # cut decoder_input_ids if past is used + if past_key_values is not None: + past_length = past_key_values[0][0].shape[2] + + # Some generation methods already pass only the last input ID + if decoder_input_ids.shape[1] > past_length: + remove_prefix_length = past_length + else: + # Default to old behavior: keep only final ID + remove_prefix_length = decoder_input_ids.shape[1] - 1 + + decoder_input_ids = decoder_input_ids[:, remove_prefix_length:] + + return { + "input_ids": None, # encoder_outputs is defined. input_ids not needed + "encoder_outputs": encoder_outputs, + "past_key_values": past_key_values, + "decoder_input_ids": decoder_input_ids, + "attention_mask": attention_mask, + "head_mask": head_mask, + "decoder_head_mask": decoder_head_mask, + "cross_attn_head_mask": cross_attn_head_mask, + "use_cache": use_cache, # change this to avoid caching (presumably for debugging) + } + + def prepare_decoder_input_ids_from_labels(self, labels: torch.Tensor): + return shift_tokens_right(labels, self.config.pad_token_id) + + @staticmethod + def _reorder_cache(past_key_values, beam_idx): + reordered_past = () + for layer_past in past_key_values: + # cached cross_attention states don't have to be reordered -> they are always the same + reordered_past += ( + tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past[:2]) + + layer_past[2:], + ) + return reordered_past + + +@add_start_docstrings( + """ + MBart model with a sequence classification/head on top (a linear layer on top of the pooled output) e.g. for GLUE + tasks. + """, + MBART_START_DOCSTRING, +) +class UnimerMBartForSequenceClassification(UnimerMBartPreTrainedModel): + _tied_weights_keys = ["model.encoder.embed_tokens.weight", "model.decoder.embed_tokens.weight"] + + def __init__(self, config: UnimerMBartConfig, **kwargs): + super().__init__(config, **kwargs) + self.model = UnimerMBartModel(config) + self.classification_head = UnimerMBartClassificationHead( + config.d_model, + config.d_model, + config.num_labels, + config.classifier_dropout, + ) + + # Initialize weights and apply final processing + self.post_init() + + @add_start_docstrings_to_model_forward(MBART_INPUTS_DOCSTRING) + @add_code_sample_docstrings( + checkpoint=_CHECKPOINT_FOR_DOC, + output_type=Seq2SeqSequenceClassifierOutput, + config_class=_CONFIG_FOR_DOC, + ) + # Copied from transformers.models.bart.modeling_bart.BartForSequenceClassification.forward + def forward( + self, + input_ids: torch.LongTensor = None, + attention_mask: Optional[torch.Tensor] = None, + decoder_input_ids: Optional[torch.LongTensor] = None, + decoder_attention_mask: Optional[torch.LongTensor] = None, + head_mask: Optional[torch.Tensor] = None, + decoder_head_mask: Optional[torch.Tensor] = None, + cross_attn_head_mask: Optional[torch.Tensor] = None, + encoder_outputs: Optional[List[torch.FloatTensor]] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + decoder_inputs_embeds: Optional[torch.FloatTensor] = None, + labels: Optional[torch.LongTensor] = None, + use_cache: Optional[bool] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + ) -> Union[Tuple, Seq2SeqSequenceClassifierOutput]: + r""" + labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*): + Labels for computing the sequence classification/regression loss. Indices should be in `[0, ..., + config.num_labels - 1]`. If `config.num_labels > 1` a classification loss is computed (Cross-Entropy). + """ + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + if labels is not None: + use_cache = False + + if input_ids is None and inputs_embeds is not None: + raise NotImplementedError( + f"Passing input embeddings is currently not supported for {self.__class__.__name__}" + ) + + outputs = self.model( + input_ids, + attention_mask=attention_mask, + decoder_input_ids=decoder_input_ids, + decoder_attention_mask=decoder_attention_mask, + head_mask=head_mask, + decoder_head_mask=decoder_head_mask, + cross_attn_head_mask=cross_attn_head_mask, + encoder_outputs=encoder_outputs, + inputs_embeds=inputs_embeds, + decoder_inputs_embeds=decoder_inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + hidden_states = outputs[0] # last hidden state + + eos_mask = input_ids.eq(self.config.eos_token_id).to(hidden_states.device) + + if len(torch.unique_consecutive(eos_mask.sum(1))) > 1: + raise ValueError("All examples must have the same number of tokens.") + sentence_representation = hidden_states[eos_mask, :].view(hidden_states.size(0), -1, hidden_states.size(-1))[ + :, -1, : + ] + logits = self.classification_head(sentence_representation) + + loss = None + if labels is not None: + labels = labels.to(logits.device) + if self.config.problem_type is None: + if self.config.num_labels == 1: + self.config.problem_type = "regression" + elif self.config.num_labels > 1 and (labels.dtype == torch.long or labels.dtype == torch.int): + self.config.problem_type = "single_label_classification" + else: + self.config.problem_type = "multi_label_classification" + + if self.config.problem_type == "regression": + loss_fct = MSELoss() + if self.config.num_labels == 1: + loss = loss_fct(logits.squeeze(), labels.squeeze()) + else: + loss = loss_fct(logits, labels) + elif self.config.problem_type == "single_label_classification": + loss_fct = CrossEntropyLoss() + loss = loss_fct(logits.view(-1, self.config.num_labels), labels.view(-1)) + elif self.config.problem_type == "multi_label_classification": + loss_fct = BCEWithLogitsLoss() + loss = loss_fct(logits, labels) + if not return_dict: + output = (logits,) + outputs[1:] + return ((loss,) + output) if loss is not None else output + + return Seq2SeqSequenceClassifierOutput( + loss=loss, + logits=logits, + past_key_values=outputs.past_key_values, + decoder_hidden_states=outputs.decoder_hidden_states, + decoder_attentions=outputs.decoder_attentions, + cross_attentions=outputs.cross_attentions, + encoder_last_hidden_state=outputs.encoder_last_hidden_state, + encoder_hidden_states=outputs.encoder_hidden_states, + encoder_attentions=outputs.encoder_attentions, + ) + + +@add_start_docstrings( + """ + MBART Model with a span classification head on top for extractive question-answering tasks like SQuAD (a linear + layer on top of the hidden-states output to compute `span start logits` and `span end logits`). + """, + MBART_START_DOCSTRING, +) +class UnimerMBartForQuestionAnswering(UnimerMBartPreTrainedModel): + _tied_weights_keys = ["model.encoder.embed_tokens.weight", "model.decoder.embed_tokens.weight"] + + def __init__(self, config): + super().__init__(config) + + config.num_labels = 2 + self.num_labels = config.num_labels + + self.model = UnimerMBartModel(config) + self.qa_outputs = nn.Linear(config.hidden_size, config.num_labels) + + # Initialize weights and apply final processing + self.post_init() + + @add_start_docstrings_to_model_forward(MBART_INPUTS_DOCSTRING) + @add_code_sample_docstrings( + checkpoint=_CHECKPOINT_FOR_DOC, + output_type=Seq2SeqQuestionAnsweringModelOutput, + config_class=_CONFIG_FOR_DOC, + ) + # Copied from transformers.models.bart.modeling_bart.BartForQuestionAnswering.forward + def forward( + self, + input_ids: torch.Tensor = None, + attention_mask: Optional[torch.Tensor] = None, + decoder_input_ids: Optional[torch.LongTensor] = None, + decoder_attention_mask: Optional[torch.LongTensor] = None, + head_mask: Optional[torch.Tensor] = None, + decoder_head_mask: Optional[torch.Tensor] = None, + cross_attn_head_mask: Optional[torch.Tensor] = None, + encoder_outputs: Optional[List[torch.FloatTensor]] = None, + start_positions: Optional[torch.LongTensor] = None, + end_positions: Optional[torch.LongTensor] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + decoder_inputs_embeds: Optional[torch.FloatTensor] = None, + use_cache: Optional[bool] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + ) -> Union[Tuple, Seq2SeqQuestionAnsweringModelOutput]: + r""" + start_positions (`torch.LongTensor` of shape `(batch_size,)`, *optional*): + Labels for position (index) of the start of the labelled span for computing the token classification loss. + Positions are clamped to the length of the sequence (*sequence_length*). Position outside of the sequence + are not taken into account for computing the loss. + end_positions (`torch.LongTensor` of shape `(batch_size,)`, *optional*): + Labels for position (index) of the end of the labelled span for computing the token classification loss. + Positions are clamped to the length of the sequence (*sequence_length*). Position outside of the sequence + are not taken into account for computing the loss. + """ + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + if start_positions is not None and end_positions is not None: + use_cache = False + + outputs = self.model( + input_ids, + attention_mask=attention_mask, + decoder_input_ids=decoder_input_ids, + decoder_attention_mask=decoder_attention_mask, + head_mask=head_mask, + decoder_head_mask=decoder_head_mask, + cross_attn_head_mask=cross_attn_head_mask, + encoder_outputs=encoder_outputs, + inputs_embeds=inputs_embeds, + decoder_inputs_embeds=decoder_inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + + sequence_output = outputs[0] + + logits = self.qa_outputs(sequence_output) + start_logits, end_logits = logits.split(1, dim=-1) + start_logits = start_logits.squeeze(-1).contiguous() + end_logits = end_logits.squeeze(-1).contiguous() + + total_loss = None + if start_positions is not None and end_positions is not None: + # If we are on multi-GPU, split add a dimension + if len(start_positions.size()) > 1: + start_positions = start_positions.squeeze(-1) + if len(end_positions.size()) > 1: + end_positions = end_positions.squeeze(-1) + # sometimes the start/end positions are outside our model inputs, we ignore these terms + ignored_index = start_logits.size(1) + start_positions = start_positions.clamp(0, ignored_index) + end_positions = end_positions.clamp(0, ignored_index) + + loss_fct = CrossEntropyLoss(ignore_index=ignored_index) + start_loss = loss_fct(start_logits, start_positions) + end_loss = loss_fct(end_logits, end_positions) + total_loss = (start_loss + end_loss) / 2 + + if not return_dict: + output = ( + start_logits, + end_logits, + ) + outputs[1:] + return ((total_loss,) + output) if total_loss is not None else output + + return Seq2SeqQuestionAnsweringModelOutput( + loss=total_loss, + start_logits=start_logits, + end_logits=end_logits, + past_key_values=outputs.past_key_values, + decoder_hidden_states=outputs.decoder_hidden_states, + decoder_attentions=outputs.decoder_attentions, + cross_attentions=outputs.cross_attentions, + encoder_last_hidden_state=outputs.encoder_last_hidden_state, + encoder_hidden_states=outputs.encoder_hidden_states, + encoder_attentions=outputs.encoder_attentions, + ) + + +# Copied from transformers.models.bart.modeling_bart.BartDecoderWrapper with Bart->MBart +class UnimerMBartDecoderWrapper(UnimerMBartPreTrainedModel): + """ + This wrapper class is a helper class to correctly load pretrained checkpoints when the causal language model is + used in combination with the [`EncoderDecoderModel`] framework. + """ + + def __init__(self, config): + super().__init__(config) + self.decoder = UnimerMBartDecoder(config) + + def forward(self, *args, **kwargs): + return self.decoder(*args, **kwargs) + + +# Copied from transformers.models.bart.modeling_bart.BartForCausalLM with Bart->MBart, facebook/bart-base->facebook/mbart-large-cc25 +class UnimerMBartForCausalLM(UnimerMBartPreTrainedModel, GenerationMixin): + _tied_weights_keys = ["lm_head.weight"] + + def __init__(self, config): + config = copy.deepcopy(config) + config.is_decoder = True + config.is_encoder_decoder = False + super().__init__(config) + self.model = UnimerMBartDecoderWrapper(config) + + self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False) + + # Initialize weights and apply final processing + self.post_init() + + def get_input_embeddings(self): + return self.model.decoder.embed_tokens + + def set_input_embeddings(self, value): + self.model.decoder.embed_tokens = value + + def get_output_embeddings(self): + return self.lm_head + + def set_output_embeddings(self, new_embeddings): + self.lm_head = new_embeddings + + def set_decoder(self, decoder): + self.model.decoder = decoder + + def get_decoder(self): + return self.model.decoder + + @replace_return_docstrings(output_type=CausalLMOutputWithCrossAttentionsAndCounting, config_class=_CONFIG_FOR_DOC) + def forward( + self, + input_ids: torch.LongTensor = None, + attention_mask: Optional[torch.Tensor] = None, + encoder_hidden_states: Optional[torch.FloatTensor] = None, + encoder_attention_mask: Optional[torch.FloatTensor] = None, + head_mask: Optional[torch.Tensor] = None, + cross_attn_head_mask: Optional[torch.Tensor] = None, + past_key_values: Optional[List[torch.FloatTensor]] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + labels: Optional[torch.LongTensor] = None, + use_cache: Optional[bool] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + count_gt: Optional[torch.LongTensor] = None, + **kwargs, + ) -> Union[Tuple, CausalLMOutputWithCrossAttentions]: + r""" + Args: + input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`): + Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you + provide it. + + Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and + [`PreTrainedTokenizer.__call__`] for details. + + [What are input IDs?](../glossary#input-ids) + attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*): + Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`: + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + + [What are attention masks?](../glossary#attention-mask) + encoder_hidden_states (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*): + Sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention + if the model is configured as a decoder. + encoder_attention_mask (`torch.FloatTensor` of shape `(batch_size, sequence_length)`, *optional*): + Mask to avoid performing attention on the padding token indices of the encoder input. This mask is used + in the cross-attention if the model is configured as a decoder. Mask values selected in `[0, 1]`: + head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*): + Mask to nullify selected heads of the attention modules. Mask values selected in `[0, 1]`: + + - 1 indicates the head is **not masked**, + - 0 indicates the head is **masked**. + + cross_attn_head_mask (`torch.Tensor` of shape `(decoder_layers, decoder_attention_heads)`, *optional*): + Mask to nullify selected heads of the cross-attention modules. Mask values selected in `[0, 1]`: + + - 1 indicates the head is **not masked**, + - 0 indicates the head is **masked**. + + past_key_values (`tuple(tuple(torch.FloatTensor))`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`): + Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of + shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`) and 2 additional tensors of + shape `(batch_size, num_heads, encoder_sequence_length, embed_size_per_head)`. The two additional + tensors are only required when the model is used as a decoder in a Sequence to Sequence model. + + Contains pre-computed hidden-states (key and values in the self-attention blocks and in the + cross-attention blocks) that can be used (see `past_key_values` input) to speed up sequential decoding. + + If `past_key_values` are used, the user can optionally input only the last `decoder_input_ids` (those + that don't have their past key value states given to this model) of shape `(batch_size, 1)` instead of + all `decoder_input_ids` of shape `(batch_size, sequence_length)`. + labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*): + Labels for computing the masked language modeling loss. Indices should either be in `[0, ..., + config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored + (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`. + use_cache (`bool`, *optional*): + If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding + (see `past_key_values`). + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + output_attentions (`bool`, *optional*): + Whether or not to return the attentions tensors of all attention layers. See `attentions` under + returned tensors for more detail. + output_hidden_states (`bool`, *optional*): + Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors + for more detail. + return_dict (`bool`, *optional*): + Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple. + + Returns: + + Example: + + ```python + >>> from transformers import AutoTokenizer, MBartForCausalLM + + >>> tokenizer = AutoTokenizer.from_pretrained("facebook/mbart-large-cc25") + >>> model = MBartForCausalLM.from_pretrained("facebook/mbart-large-cc25", add_cross_attention=False) + >>> assert model.config.is_decoder, f"{model.__class__} has to be configured as a decoder." + >>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt") + >>> outputs = model(**inputs) + + >>> logits = outputs.logits + >>> expected_shape = [1, inputs.input_ids.shape[-1], model.config.vocab_size] + >>> list(logits.shape) == expected_shape + True + ```""" + + output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions + output_hidden_states = ( + output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states + ) + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + count_pred = None + + # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn) + outputs = self.model.decoder( + input_ids=input_ids, + attention_mask=attention_mask, + count_pred=count_pred, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=encoder_attention_mask, + head_mask=head_mask, + cross_attn_head_mask=cross_attn_head_mask, + past_key_values=past_key_values, + inputs_embeds=inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + + logits = self.lm_head(outputs[0]) + + loss = None + if labels is not None: + labels = labels.to(logits.device) + loss_fct = CrossEntropyLoss() + loss = loss_fct(logits.view(-1, self.config.vocab_size), labels.view(-1)) + + if not return_dict: + output = (logits,) + outputs[1:] + return (loss,) + output if loss is not None else output + + return CausalLMOutputWithCrossAttentionsAndCounting( + loss=loss, + logits=logits, + past_key_values=outputs.past_key_values, + hidden_states=outputs.hidden_states, + attentions=outputs.attentions, + cross_attentions=outputs.cross_attentions, + counting=count_pred, + ) + + def prepare_inputs_for_generation( + self, input_ids, past_key_values=None, attention_mask=None, use_cache=None, **kwargs + ): + # if model is used as a decoder in encoder-decoder model, the decoder attention mask is created on the fly + if attention_mask is None: + attention_mask = input_ids.new_ones(input_ids.shape) + + if past_key_values: + past_length = past_key_values[0][0].shape[2] + + # Some generation methods already pass only the last input ID + if input_ids.shape[1] > past_length: + remove_prefix_length = past_length + else: + # Default to old behavior: keep only final ID + remove_prefix_length = input_ids.shape[1] - 1 + + input_ids = input_ids[:, remove_prefix_length:] + # first step, decoder_cached_states are empty + return { + "input_ids": input_ids, # encoder_outputs is defined. input_ids not needed + "attention_mask": attention_mask, + "past_key_values": past_key_values, + "use_cache": use_cache, + } + + @staticmethod + def _reorder_cache(past_key_values, beam_idx): + reordered_past = () + for layer_past in past_key_values: + reordered_past += ( + tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past), + ) + return reordered_past diff --git a/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/tokenization_unimer_mbart.py b/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/tokenization_unimer_mbart.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/mfr/unimernet/unimernet_hf/unimer_mbart/tokenization_unimer_mbart.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/__init__.py b/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/__init__.py new file mode 100644 index 000000000..df37a1211 --- /dev/null +++ b/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/__init__.py @@ -0,0 +1,10 @@ +# Copyright (c) Opendatalab. All rights reserved. +from .configuration_unimer_swin import UnimerSwinConfig +from .modeling_unimer_swin import UnimerSwinModel +from .image_processing_unimer_swin import UnimerSwinImageProcessor + +__all__ = [ + "UnimerSwinConfig", + "UnimerSwinModel", + "UnimerSwinImageProcessor", +] diff --git a/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/configuration_unimer_swin.py b/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/configuration_unimer_swin.py new file mode 100644 index 000000000..6c577e7c9 --- /dev/null +++ b/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/configuration_unimer_swin.py @@ -0,0 +1,132 @@ +# coding=utf-8 +# Copyright 2022 The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""Donut Swin Transformer model configuration""" + +from transformers.configuration_utils import PretrainedConfig +from transformers.utils import logging + + +logger = logging.get_logger(__name__) + + +class UnimerSwinConfig(PretrainedConfig): + r""" + This is the configuration class to store the configuration of a [`UnimerSwinModel`]. It is used to instantiate a + Donut model according to the specified arguments, defining the model architecture. Instantiating a configuration + with the defaults will yield a similar configuration to that of the Donut + [naver-clova-ix/donut-base](https://huggingface.co/naver-clova-ix/donut-base) architecture. + + Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the + documentation from [`PretrainedConfig`] for more information. + + Args: + image_size (`int`, *optional*, defaults to 224): + The size (resolution) of each image. + patch_size (`int`, *optional*, defaults to 4): + The size (resolution) of each patch. + num_channels (`int`, *optional*, defaults to 3): + The number of input channels. + embed_dim (`int`, *optional*, defaults to 96): + Dimensionality of patch embedding. + depths (`list(int)`, *optional*, defaults to `[2, 2, 6, 2]`): + Depth of each layer in the Transformer encoder. + num_heads (`list(int)`, *optional*, defaults to `[3, 6, 12, 24]`): + Number of attention heads in each layer of the Transformer encoder. + window_size (`int`, *optional*, defaults to 7): + Size of windows. + mlp_ratio (`float`, *optional*, defaults to 4.0): + Ratio of MLP hidden dimensionality to embedding dimensionality. + qkv_bias (`bool`, *optional*, defaults to `True`): + Whether or not a learnable bias should be added to the queries, keys and values. + hidden_dropout_prob (`float`, *optional*, defaults to 0.0): + The dropout probability for all fully connected layers in the embeddings and encoder. + attention_probs_dropout_prob (`float`, *optional*, defaults to 0.0): + The dropout ratio for the attention probabilities. + drop_path_rate (`float`, *optional*, defaults to 0.1): + Stochastic depth rate. + hidden_act (`str` or `function`, *optional*, defaults to `"gelu"`): + The non-linear activation function (function or string) in the encoder. If string, `"gelu"`, `"relu"`, + `"selu"` and `"gelu_new"` are supported. + use_absolute_embeddings (`bool`, *optional*, defaults to `False`): + Whether or not to add absolute position embeddings to the patch embeddings. + initializer_range (`float`, *optional*, defaults to 0.02): + The standard deviation of the truncated_normal_initializer for initializing all weight matrices. + layer_norm_eps (`float`, *optional*, defaults to 1e-05): + The epsilon used by the layer normalization layers. + + Example: + + ```python + >>> from transformers import UnimerSwinConfig, UnimerSwinModel + + >>> # Initializing a Donut naver-clova-ix/donut-base style configuration + >>> configuration = UnimerSwinConfig() + + >>> # Randomly initializing a model from the naver-clova-ix/donut-base style configuration + >>> model = UnimerSwinModel(configuration) + + >>> # Accessing the model configuration + >>> configuration = model.config + ```""" + + model_type = "unimer-swin" + + attribute_map = { + "num_attention_heads": "num_heads", + "num_hidden_layers": "num_layers", + } + + def __init__( + self, + image_size=224, + patch_size=4, + num_channels=3, + embed_dim=96, + depths=[2, 2, 6, 2], + num_heads=[3, 6, 12, 24], + window_size=7, + mlp_ratio=4.0, + qkv_bias=True, + hidden_dropout_prob=0.0, + attention_probs_dropout_prob=0.0, + drop_path_rate=0.1, + hidden_act="gelu", + use_absolute_embeddings=False, + initializer_range=0.02, + layer_norm_eps=1e-5, + **kwargs, + ): + super().__init__(**kwargs) + + self.image_size = image_size + self.patch_size = patch_size + self.num_channels = num_channels + self.embed_dim = embed_dim + self.depths = depths + self.num_layers = len(depths) + self.num_heads = num_heads + self.window_size = window_size + self.mlp_ratio = mlp_ratio + self.qkv_bias = qkv_bias + self.hidden_dropout_prob = hidden_dropout_prob + self.attention_probs_dropout_prob = attention_probs_dropout_prob + self.drop_path_rate = drop_path_rate + self.hidden_act = hidden_act + self.use_absolute_embeddings = use_absolute_embeddings + self.layer_norm_eps = layer_norm_eps + self.initializer_range = initializer_range + # we set the hidden_size attribute in order to make Swin work with VisionEncoderDecoderModel + # this indicates the channel dimension after the last stage of the model + self.hidden_size = int(embed_dim * 2 ** (len(depths) - 1)) diff --git a/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/image_processing_unimer_swin.py b/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/image_processing_unimer_swin.py new file mode 100644 index 000000000..d343ee86f --- /dev/null +++ b/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/image_processing_unimer_swin.py @@ -0,0 +1,175 @@ +# Copyright (c) Opendatalab. All rights reserved. +from PIL import Image, ImageOps +from transformers.image_processing_utils import BaseImageProcessor +import numpy as np +import cv2 +import albumentations as alb +from albumentations.pytorch import ToTensorV2 +from torchvision.transforms.functional import resize + + +# TODO: dereference cv2 if possible +class UnimerSwinImageProcessor(BaseImageProcessor): + def __init__( + self, + image_size = (192, 672), + ): + self.input_size = [int(_) for _ in image_size] + assert len(self.input_size) == 2 + + self.transform = alb.Compose( + [ + alb.ToGray(), + alb.Normalize((0.7931, 0.7931, 0.7931), (0.1738, 0.1738, 0.1738)), + # alb.Sharpen() + ToTensorV2(), + ] + ) + + def __call__(self, item): + image = self.prepare_input(item) + return self.transform(image=image)['image'][:1] + + @staticmethod + def crop_margin(img: Image.Image) -> Image.Image: + data = np.array(img.convert("L")) + data = data.astype(np.uint8) + max_val = data.max() + min_val = data.min() + if max_val == min_val: + return img + data = (data - min_val) / (max_val - min_val) * 255 + gray = 255 * (data < 200).astype(np.uint8) + + coords = cv2.findNonZero(gray) # Find all non-zero points (text) + a, b, w, h = cv2.boundingRect(coords) # Find minimum spanning bounding box + return img.crop((a, b, w + a, h + b)) + + @staticmethod + def crop_margin_numpy(img: np.ndarray) -> np.ndarray: + """Crop margins of image using NumPy operations""" + # Convert to grayscale if it's a color image + if len(img.shape) == 3 and img.shape[2] == 3: + gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) + else: + gray = img.copy() + + # Normalize and threshold + if gray.max() == gray.min(): + return img + + normalized = (((gray - gray.min()) / (gray.max() - gray.min())) * 255).astype(np.uint8) + binary = 255 * (normalized < 200).astype(np.uint8) + + # Find bounding box + coords = cv2.findNonZero(binary) # Find all non-zero points (text) + x, y, w, h = cv2.boundingRect(coords) # Find minimum spanning bounding box + + # Return cropped image + return img[y:y + h, x:x + w] + + def prepare_input(self, img, random_padding: bool = False): + """ + Convert PIL Image or numpy array to properly sized and padded image after: + - crop margins + - resize while maintaining aspect ratio + - pad to target size + """ + if img is None: + return None + + # Handle numpy array + elif isinstance(img, np.ndarray): + try: + img = self.crop_margin_numpy(img) + except Exception: + # might throw an error for broken files + return None + + if img.shape[0] == 0 or img.shape[1] == 0: + return None + + # Get current dimensions + h, w = img.shape[:2] + target_h, target_w = self.input_size + + # Calculate scale to preserve aspect ratio (equivalent to resize + thumbnail) + scale = min(target_h / h, target_w / w) + + # Calculate new dimensions + new_h, new_w = int(h * scale), int(w * scale) + + # Resize the image while preserving aspect ratio + resized_img = cv2.resize(img, (new_w, new_h)) + + # Calculate padding values using the existing method + delta_width = target_w - new_w + delta_height = target_h - new_h + + pad_width, pad_height = self._get_padding_values(new_w, new_h, random_padding) + + # Apply padding (convert PIL padding format to OpenCV format) + padding_color = [0, 0, 0] if len(img.shape) == 3 else [0] + + padded_img = cv2.copyMakeBorder( + resized_img, + pad_height, # top + delta_height - pad_height, # bottom + pad_width, # left + delta_width - pad_width, # right + cv2.BORDER_CONSTANT, + value=padding_color + ) + + return padded_img + + # Handle PIL Image + elif isinstance(img, Image.Image): + try: + img = self.crop_margin(img.convert("RGB")) + except OSError: + # might throw an error for broken files + return None + + if img.height == 0 or img.width == 0: + return None + + # Resize while preserving aspect ratio + img = resize(img, min(self.input_size)) + img.thumbnail((self.input_size[1], self.input_size[0])) + new_w, new_h = img.width, img.height + + # Calculate and apply padding + padding = self._calculate_padding(new_w, new_h, random_padding) + return np.array(ImageOps.expand(img, padding)) + + else: + return None + + def _calculate_padding(self, new_w, new_h, random_padding): + """Calculate padding values for PIL images""" + delta_width = self.input_size[1] - new_w + delta_height = self.input_size[0] - new_h + + pad_width, pad_height = self._get_padding_values(new_w, new_h, random_padding) + + return ( + pad_width, + pad_height, + delta_width - pad_width, + delta_height - pad_height, + ) + + def _get_padding_values(self, new_w, new_h, random_padding): + """Get padding values based on image dimensions and padding strategy""" + delta_width = self.input_size[1] - new_w + delta_height = self.input_size[0] - new_h + + if random_padding: + pad_width = np.random.randint(low=0, high=delta_width + 1) + pad_height = np.random.randint(low=0, high=delta_height + 1) + else: + pad_width = delta_width // 2 + pad_height = delta_height // 2 + + return pad_width, pad_height diff --git a/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/modeling_unimer_swin.py b/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/modeling_unimer_swin.py new file mode 100644 index 000000000..1b808e8bd --- /dev/null +++ b/mineru/model/mfr/unimernet/unimernet_hf/unimer_swin/modeling_unimer_swin.py @@ -0,0 +1,1084 @@ +# coding=utf-8 +# Copyright 2022 The HuggingFace Inc. team. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +"""PyTorch UnimerSwin Transformer model. + +This implementation is identical to a regular Swin Transformer, without final layer norm on top of the final hidden +states.""" + +import collections.abc +import math +from dataclasses import dataclass +from typing import Optional, Tuple, Union + +import torch +import torch.utils.checkpoint +from torch import nn + +from transformers.activations import ACT2FN +from transformers.modeling_utils import PreTrainedModel +from transformers.pytorch_utils import find_pruneable_heads_and_indices, meshgrid, prune_linear_layer +from transformers.utils import ( + ModelOutput, + add_code_sample_docstrings, + add_start_docstrings, + add_start_docstrings_to_model_forward, + logging, + torch_int, +) +from .configuration_unimer_swin import UnimerSwinConfig + + +logger = logging.get_logger(__name__) + +# General docstring +_CONFIG_FOR_DOC = "UnimerSwinConfig" + +# Base docstring +_CHECKPOINT_FOR_DOC = "https://huggingface.co/naver-clova-ix/donut-base" +_EXPECTED_OUTPUT_SHAPE = [1, 49, 768] + + +@dataclass +# Copied from transformers.models.swin.modeling_swin.SwinEncoderOutput with Swin->UnimerSwin +class UnimerSwinEncoderOutput(ModelOutput): + """ + UnimerSwin encoder's outputs, with potential hidden states and attentions. + + Args: + last_hidden_state (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`): + Sequence of hidden-states at the output of the last layer of the model. + hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`): + Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of + shape `(batch_size, sequence_length, hidden_size)`. + + Hidden-states of the model at the output of each layer plus the initial embedding outputs. + attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`): + Tuple of `torch.FloatTensor` (one for each stage) of shape `(batch_size, num_heads, sequence_length, + sequence_length)`. + + Attentions weights after the attention softmax, used to compute the weighted average in the self-attention + heads. + reshaped_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`): + Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of + shape `(batch_size, hidden_size, height, width)`. + + Hidden-states of the model at the output of each layer plus the initial embedding outputs reshaped to + include the spatial dimensions. + """ + + last_hidden_state: torch.FloatTensor = None + hidden_states: Optional[Tuple[torch.FloatTensor, ...]] = None + attentions: Optional[Tuple[torch.FloatTensor, ...]] = None + reshaped_hidden_states: Optional[Tuple[torch.FloatTensor, ...]] = None + + +@dataclass +# Copied from transformers.models.swin.modeling_swin.SwinModelOutput with Swin->UnimerSwin +class UnimerSwinModelOutput(ModelOutput): + """ + UnimerSwin model's outputs that also contains a pooling of the last hidden states. + + Args: + last_hidden_state (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`): + Sequence of hidden-states at the output of the last layer of the model. + pooler_output (`torch.FloatTensor` of shape `(batch_size, hidden_size)`, *optional*, returned when `add_pooling_layer=True` is passed): + Average pooling of the last layer hidden-state. + hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`): + Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of + shape `(batch_size, sequence_length, hidden_size)`. + + Hidden-states of the model at the output of each layer plus the initial embedding outputs. + attentions (`tuple(torch.FloatTensor)`, *optional*, returned when `output_attentions=True` is passed or when `config.output_attentions=True`): + Tuple of `torch.FloatTensor` (one for each stage) of shape `(batch_size, num_heads, sequence_length, + sequence_length)`. + + Attentions weights after the attention softmax, used to compute the weighted average in the self-attention + heads. + reshaped_hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`): + Tuple of `torch.FloatTensor` (one for the output of the embeddings + one for the output of each stage) of + shape `(batch_size, hidden_size, height, width)`. + + Hidden-states of the model at the output of each layer plus the initial embedding outputs reshaped to + include the spatial dimensions. + """ + + last_hidden_state: torch.FloatTensor = None + pooler_output: Optional[torch.FloatTensor] = None + hidden_states: Optional[Tuple[torch.FloatTensor, ...]] = None + attentions: Optional[Tuple[torch.FloatTensor, ...]] = None + reshaped_hidden_states: Optional[Tuple[torch.FloatTensor, ...]] = None + + +# Copied from transformers.models.swin.modeling_swin.window_partition +def window_partition(input_feature, window_size): + """ + Partitions the given input into windows. + """ + batch_size, height, width, num_channels = input_feature.shape + input_feature = input_feature.view( + batch_size, height // window_size, window_size, width // window_size, window_size, num_channels + ) + windows = input_feature.permute(0, 1, 3, 2, 4, 5).contiguous().view(-1, window_size, window_size, num_channels) + return windows + + +# Copied from transformers.models.swin.modeling_swin.window_reverse +def window_reverse(windows, window_size, height, width): + """ + Merges windows to produce higher resolution features. + """ + num_channels = windows.shape[-1] + windows = windows.view(-1, height // window_size, width // window_size, window_size, window_size, num_channels) + windows = windows.permute(0, 1, 3, 2, 4, 5).contiguous().view(-1, height, width, num_channels) + return windows + + +# Copied from transformers.models.swin.modeling_swin.SwinEmbeddings with Swin->UnimerSwin +class UnimerSwinEmbeddings(nn.Module): + """ + Construct the patch and position embeddings. Optionally, also the mask token. + """ + + def __init__(self, config, use_mask_token=False): + super().__init__() + + self.patch_embeddings = UnimerSwinPatchEmbeddings(config) + num_patches = self.patch_embeddings.num_patches + self.patch_grid = self.patch_embeddings.grid_size + self.mask_token = nn.Parameter(torch.zeros(1, 1, config.embed_dim)) if use_mask_token else None + + if config.use_absolute_embeddings: + self.position_embeddings = nn.Parameter(torch.zeros(1, num_patches + 1, config.embed_dim)) + else: + self.position_embeddings = None + + ### code added. ### + if config.use_2d_embeddings: + self.row_embeddings = nn.Parameter(torch.zeros(1, self.patch_grid[0] + 1, config.embed_dim)) + self.column_embeddings = nn.Parameter(torch.zeros(1, self.patch_grid[1] + 1, config.embed_dim)) + else: + self.row_embeddings = None + self.column_embeddings = None + ###### + + self.norm = nn.LayerNorm(config.embed_dim) + self.dropout = nn.Dropout(config.hidden_dropout_prob) + + def interpolate_pos_encoding(self, embeddings: torch.Tensor, height: int, width: int) -> torch.Tensor: + """ + This method allows to interpolate the pre-trained position encodings, to be able to use the model on higher + resolution images. + + Source: + https://github.com/facebookresearch/dino/blob/de9ee3df6cf39fac952ab558447af1fa1365362a/vision_transformer.py#L174 + """ + + num_patches = embeddings.shape[1] - 1 + num_positions = self.position_embeddings.shape[1] - 1 + if num_patches == num_positions and height == width: + return self.position_embeddings + class_pos_embed = self.position_embeddings[:, 0] + patch_pos_embed = self.position_embeddings[:, 1:] + dim = embeddings.shape[-1] + h0 = height // self.config.patch_size + w0 = width // self.config.patch_size + # we add a small number to avoid floating point error in the interpolation + # see discussion at https://github.com/facebookresearch/dino/issues/8 + h0, w0 = h0 + 0.1, w0 + 0.1 + patch_pos_embed = patch_pos_embed.reshape(1, int(math.sqrt(num_positions)), int(math.sqrt(num_positions)), dim) + patch_pos_embed = patch_pos_embed.permute(0, 3, 1, 2) + patch_pos_embed = nn.functional.interpolate( + patch_pos_embed, + scale_factor=(h0 / math.sqrt(num_positions), w0 / math.sqrt(num_positions)), + mode="bicubic", + align_corners=False, + ) + patch_pos_embed = patch_pos_embed.permute(0, 2, 3, 1).view(1, -1, dim) + return torch.cat((class_pos_embed.unsqueeze(0), patch_pos_embed), dim=1) + + def forward( + self, + pixel_values: Optional[torch.FloatTensor], + bool_masked_pos: Optional[torch.BoolTensor] = None, + interpolate_pos_encoding: bool = False, + ) -> Tuple[torch.Tensor]: + _, num_channels, height, width = pixel_values.shape + embeddings, output_dimensions = self.patch_embeddings(pixel_values) + embeddings = self.norm(embeddings) + batch_size, seq_len, _ = embeddings.size() + + if bool_masked_pos is not None: + mask_tokens = self.mask_token.expand(batch_size, seq_len, -1) + # replace the masked visual tokens by mask_tokens + mask = bool_masked_pos.unsqueeze(-1).type_as(mask_tokens) + embeddings = embeddings * (1.0 - mask) + mask_tokens * mask + + if self.position_embeddings is not None: + # if interpolate_pos_encoding: + # embeddings = embeddings + self.interpolate_pos_encoding(embeddings, height, width) + # else: + # embeddings = embeddings + self.position_embeddings + embeddings = embeddings + self.position_embeddings[:, :seq_len, :] # code edited. + + ### code added. ### + if self.row_embeddings is not None and self.column_embeddings is not None: + # Repeat the x position embeddings across the y axis like 0, 1, 2, 3, 0, 1, 2, 3, ... + row_embeddings = self.row_embeddings[:, :output_dimensions[0], :].repeat_interleave(output_dimensions[1], dim=1) + column_embeddings = self.column_embeddings[:, :output_dimensions[1], :].repeat(1, output_dimensions[0], 1) + embeddings = embeddings + row_embeddings + column_embeddings + ###### + + embeddings = self.dropout(embeddings) + + return embeddings, output_dimensions + +class StemLayer(nn.Module): + r""" Stem layer of InternImage + Args: + in_chans (int): number of input channels + out_chans (int): number of output channels + act_layer (str): activation layer + norm_layer (str): normalization layer + """ + + def __init__(self, in_chans=3, out_chans=96, act_layer=nn.GELU, norm_layer='BN'): + super().__init__() + self.conv1 = nn.Conv2d(in_chans, out_chans // 2, kernel_size=3, stride=2, padding=1) + self.norm1 = self.build_norm_layer(out_chans // 2, norm_layer) + self.act = act_layer() + self.conv2 = nn.Conv2d(out_chans // 2, out_chans, kernel_size=3, stride=2, padding=1) + + def build_norm_layer(self, dim, norm_layer): + layers = [] + if norm_layer == 'BN': + layers.append(nn.BatchNorm2d(dim)) + else: + raise NotImplementedError(f'build_norm_layer does not support {norm_layer}') + return nn.Sequential(*layers) + + def forward(self, x): + x = self.conv1(x) + x = self.norm1(x) + x = self.act(x) + x = self.conv2(x) + return x + +# Copied from transformers.models.swin.modeling_swin.SwinPatchEmbeddings with Swin->UnimerSwin +class UnimerSwinPatchEmbeddings(nn.Module): + """ + This class turns `pixel_values` of shape `(batch_size, num_channels, height, width)` into the initial + `hidden_states` (patch embeddings) of shape `(batch_size, seq_length, hidden_size)` to be consumed by a + Transformer. + """ + + def __init__(self, config): + super().__init__() + image_size, patch_size = config.image_size, config.patch_size + num_channels, hidden_size = config.num_channels, config.embed_dim + image_size = image_size if isinstance(image_size, collections.abc.Iterable) else (image_size, image_size) + patch_size = patch_size if isinstance(patch_size, collections.abc.Iterable) else (patch_size, patch_size) + num_patches = (image_size[1] // patch_size[1]) * (image_size[0] // patch_size[0]) + self.image_size = image_size + self.patch_size = patch_size + self.num_channels = num_channels + self.num_patches = num_patches + self.grid_size = (image_size[0] // patch_size[0], image_size[1] // patch_size[1]) + + ### code edited. ### + # self.projection = nn.Conv2d(num_channels, hidden_size, kernel_size=patch_size, stride=patch_size) + self.projection = StemLayer(in_chans=num_channels, out_chans=hidden_size) + ### + + def maybe_pad(self, pixel_values, height, width): + if width % self.patch_size[1] != 0: + pad_values = (0, self.patch_size[1] - width % self.patch_size[1]) + pixel_values = nn.functional.pad(pixel_values, pad_values) + if height % self.patch_size[0] != 0: + pad_values = (0, 0, 0, self.patch_size[0] - height % self.patch_size[0]) + pixel_values = nn.functional.pad(pixel_values, pad_values) + return pixel_values + + def forward(self, pixel_values: Optional[torch.FloatTensor]) -> Tuple[torch.Tensor, Tuple[int]]: + _, num_channels, height, width = pixel_values.shape + # pad the input to be divisible by self.patch_size, if needed + pixel_values = self.maybe_pad(pixel_values, height, width) + embeddings = self.projection(pixel_values) + _, _, height, width = embeddings.shape + output_dimensions = (height, width) + embeddings = embeddings.flatten(2).transpose(1, 2) + + return embeddings, output_dimensions + + +# Copied from transformers.models.swin.modeling_swin.SwinPatchMerging +class UnimerSwinPatchMerging(nn.Module): + """ + Patch Merging Layer. + + Args: + input_resolution (`Tuple[int]`): + Resolution of input feature. + dim (`int`): + Number of input channels. + norm_layer (`nn.Module`, *optional*, defaults to `nn.LayerNorm`): + Normalization layer class. + """ + + def __init__(self, input_resolution: Tuple[int], dim: int, norm_layer: nn.Module = nn.LayerNorm) -> None: + super().__init__() + self.input_resolution = input_resolution + self.dim = dim + self.reduction = nn.Linear(4 * dim, 2 * dim, bias=False) + self.norm = norm_layer(4 * dim) + + def maybe_pad(self, input_feature, height, width): + should_pad = (height % 2 == 1) or (width % 2 == 1) + if should_pad: + pad_values = (0, 0, 0, width % 2, 0, height % 2) + input_feature = nn.functional.pad(input_feature, pad_values) + + return input_feature + + def forward(self, input_feature: torch.Tensor, input_dimensions: Tuple[int, int]) -> torch.Tensor: + height, width = input_dimensions + # `dim` is height * width + batch_size, dim, num_channels = input_feature.shape + + input_feature = input_feature.view(batch_size, height, width, num_channels) + # pad input to be disible by width and height, if needed + input_feature = self.maybe_pad(input_feature, height, width) + # [batch_size, height/2, width/2, num_channels] + input_feature_0 = input_feature[:, 0::2, 0::2, :] + # [batch_size, height/2, width/2, num_channels] + input_feature_1 = input_feature[:, 1::2, 0::2, :] + # [batch_size, height/2, width/2, num_channels] + input_feature_2 = input_feature[:, 0::2, 1::2, :] + # [batch_size, height/2, width/2, num_channels] + input_feature_3 = input_feature[:, 1::2, 1::2, :] + # batch_size height/2 width/2 4*num_channels + input_feature = torch.cat([input_feature_0, input_feature_1, input_feature_2, input_feature_3], -1) + input_feature = input_feature.view(batch_size, -1, 4 * num_channels) # batch_size height/2*width/2 4*C + + input_feature = self.norm(input_feature) + input_feature = self.reduction(input_feature) + + return input_feature + + +# Copied from transformers.models.beit.modeling_beit.drop_path +def drop_path(input: torch.Tensor, drop_prob: float = 0.0, training: bool = False) -> torch.Tensor: + """ + Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks). + + Comment by Ross Wightman: This is the same as the DropConnect impl I created for EfficientNet, etc networks, + however, the original name is misleading as 'Drop Connect' is a different form of dropout in a separate paper... + See discussion: https://github.com/tensorflow/tpu/issues/494#issuecomment-532968956 ... I've opted for changing the + layer and argument names to 'drop path' rather than mix DropConnect as a layer name and use 'survival rate' as the + argument. + """ + if drop_prob == 0.0 or not training: + return input + keep_prob = 1 - drop_prob + shape = (input.shape[0],) + (1,) * (input.ndim - 1) # work with diff dim tensors, not just 2D ConvNets + random_tensor = keep_prob + torch.rand(shape, dtype=input.dtype, device=input.device) + random_tensor.floor_() # binarize + output = input.div(keep_prob) * random_tensor + return output + + +# Copied from transformers.models.swin.modeling_swin.SwinDropPath +class UnimerSwinDropPath(nn.Module): + """Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks).""" + + def __init__(self, drop_prob: Optional[float] = None) -> None: + super().__init__() + self.drop_prob = drop_prob + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + return drop_path(hidden_states, self.drop_prob, self.training) + + def extra_repr(self) -> str: + return "p={}".format(self.drop_prob) + + +# Copied from transformers.models.swin.modeling_swin.SwinSelfAttention with Swin->UnimerSwin +class UnimerSwinSelfAttention(nn.Module): + def __init__(self, config, dim, num_heads, window_size): + super().__init__() + if dim % num_heads != 0: + raise ValueError( + f"The hidden size ({dim}) is not a multiple of the number of attention heads ({num_heads})" + ) + + self.num_attention_heads = num_heads + self.attention_head_size = int(dim / num_heads) + self.all_head_size = self.num_attention_heads * self.attention_head_size + self.window_size = ( + window_size if isinstance(window_size, collections.abc.Iterable) else (window_size, window_size) + ) + + self.relative_position_bias_table = nn.Parameter( + torch.zeros((2 * self.window_size[0] - 1) * (2 * self.window_size[1] - 1), num_heads) + ) + + # get pair-wise relative position index for each token inside the window + coords_h = torch.arange(self.window_size[0]) + coords_w = torch.arange(self.window_size[1]) + coords = torch.stack(meshgrid([coords_h, coords_w], indexing="ij")) + coords_flatten = torch.flatten(coords, 1) + relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :] + relative_coords = relative_coords.permute(1, 2, 0).contiguous() + relative_coords[:, :, 0] += self.window_size[0] - 1 + relative_coords[:, :, 1] += self.window_size[1] - 1 + relative_coords[:, :, 0] *= 2 * self.window_size[1] - 1 + relative_position_index = relative_coords.sum(-1) + self.register_buffer("relative_position_index", relative_position_index) + + self.query = nn.Linear(self.all_head_size, self.all_head_size, bias=config.qkv_bias) + self.key = nn.Linear(self.all_head_size, self.all_head_size, bias=config.qkv_bias) + self.value = nn.Linear(self.all_head_size, self.all_head_size, bias=config.qkv_bias) + + self.dropout = nn.Dropout(config.attention_probs_dropout_prob) + + def transpose_for_scores(self, x): + new_x_shape = x.size()[:-1] + (self.num_attention_heads, self.attention_head_size) + x = x.view(new_x_shape) + return x.permute(0, 2, 1, 3) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.FloatTensor] = None, + head_mask: Optional[torch.FloatTensor] = None, + output_attentions: Optional[bool] = False, + ) -> Tuple[torch.Tensor]: + batch_size, dim, num_channels = hidden_states.shape + mixed_query_layer = self.query(hidden_states) + + key_layer = self.transpose_for_scores(self.key(hidden_states)) + value_layer = self.transpose_for_scores(self.value(hidden_states)) + query_layer = self.transpose_for_scores(mixed_query_layer) + + # Take the dot product between "query" and "key" to get the raw attention scores. + attention_scores = torch.matmul(query_layer, key_layer.transpose(-1, -2)) + + attention_scores = attention_scores / math.sqrt(self.attention_head_size) + + relative_position_bias = self.relative_position_bias_table[self.relative_position_index.view(-1)] + relative_position_bias = relative_position_bias.view( + self.window_size[0] * self.window_size[1], self.window_size[0] * self.window_size[1], -1 + ) + + relative_position_bias = relative_position_bias.permute(2, 0, 1).contiguous() + attention_scores = attention_scores + relative_position_bias.unsqueeze(0) + + if attention_mask is not None: + # Apply the attention mask is (precomputed for all layers in UnimerSwinModel forward() function) + mask_shape = attention_mask.shape[0] + attention_scores = attention_scores.view( + batch_size // mask_shape, mask_shape, self.num_attention_heads, dim, dim + ) + attention_scores = attention_scores + attention_mask.unsqueeze(1).unsqueeze(0) + attention_scores = attention_scores.view(-1, self.num_attention_heads, dim, dim) + + # Normalize the attention scores to probabilities. + attention_probs = nn.functional.softmax(attention_scores, dim=-1) + + # This is actually dropping out entire tokens to attend to, which might + # seem a bit unusual, but is taken from the original Transformer paper. + attention_probs = self.dropout(attention_probs) + + # Mask heads if we want to + if head_mask is not None: + attention_probs = attention_probs * head_mask + + context_layer = torch.matmul(attention_probs, value_layer) + context_layer = context_layer.permute(0, 2, 1, 3).contiguous() + new_context_layer_shape = context_layer.size()[:-2] + (self.all_head_size,) + context_layer = context_layer.view(new_context_layer_shape) + + outputs = (context_layer, attention_probs) if output_attentions else (context_layer,) + + return outputs + + +# Copied from transformers.models.swin.modeling_swin.SwinSelfOutput +class UnimerSwinSelfOutput(nn.Module): + def __init__(self, config, dim): + super().__init__() + self.dense = nn.Linear(dim, dim) + self.dropout = nn.Dropout(config.attention_probs_dropout_prob) + + def forward(self, hidden_states: torch.Tensor, input_tensor: torch.Tensor) -> torch.Tensor: + hidden_states = self.dense(hidden_states) + hidden_states = self.dropout(hidden_states) + + return hidden_states + + +# Copied from transformers.models.swin.modeling_swin.SwinAttention with Swin->UnimerSwin +class UnimerSwinAttention(nn.Module): + def __init__(self, config, dim, num_heads, window_size): + super().__init__() + self.self = UnimerSwinSelfAttention(config, dim, num_heads, window_size) + self.output = UnimerSwinSelfOutput(config, dim) + self.pruned_heads = set() + + def prune_heads(self, heads): + if len(heads) == 0: + return + heads, index = find_pruneable_heads_and_indices( + heads, self.self.num_attention_heads, self.self.attention_head_size, self.pruned_heads + ) + + # Prune linear layers + self.self.query = prune_linear_layer(self.self.query, index) + self.self.key = prune_linear_layer(self.self.key, index) + self.self.value = prune_linear_layer(self.self.value, index) + self.output.dense = prune_linear_layer(self.output.dense, index, dim=1) + + # Update hyper params and store pruned heads + self.self.num_attention_heads = self.self.num_attention_heads - len(heads) + self.self.all_head_size = self.self.attention_head_size * self.self.num_attention_heads + self.pruned_heads = self.pruned_heads.union(heads) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.FloatTensor] = None, + head_mask: Optional[torch.FloatTensor] = None, + output_attentions: Optional[bool] = False, + ) -> Tuple[torch.Tensor]: + self_outputs = self.self(hidden_states, attention_mask, head_mask, output_attentions) + attention_output = self.output(self_outputs[0], hidden_states) + outputs = (attention_output,) + self_outputs[1:] # add attentions if we output them + return outputs + + +# Copied from transformers.models.swin.modeling_swin.SwinIntermediate +class UnimerSwinIntermediate(nn.Module): + def __init__(self, config, dim): + super().__init__() + self.dense = nn.Linear(dim, int(config.mlp_ratio * dim)) + if isinstance(config.hidden_act, str): + self.intermediate_act_fn = ACT2FN[config.hidden_act] + else: + self.intermediate_act_fn = config.hidden_act + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + hidden_states = self.dense(hidden_states) + hidden_states = self.intermediate_act_fn(hidden_states) + return hidden_states + + +# Copied from transformers.models.swin.modeling_swin.SwinOutput +class UnimerSwinOutput(nn.Module): + def __init__(self, config, dim): + super().__init__() + self.dense = nn.Linear(int(config.mlp_ratio * dim), dim) + self.dropout = nn.Dropout(config.hidden_dropout_prob) + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + hidden_states = self.dense(hidden_states) + hidden_states = self.dropout(hidden_states) + return hidden_states + + +class ConvEnhance(nn.Module): + """Depth-wise convolution to get the positional information. + """ + def __init__(self, config, dim, k=3): + super(ConvEnhance, self).__init__() + self.proj = nn.Conv2d(dim, + dim, + (k,k), + (1,1), + (k // 2,k // 2), + groups=dim) + self.act_fn = ACT2FN[config.hidden_act] + + def forward(self, x, size: Tuple[int, int]): + B, N, C = x.shape + H, W = size + assert N == H * W + + feat = x.transpose(1, 2).view(B, C, H, W) + feat = self.proj(feat) + feat = self.act_fn(feat) + feat = feat.flatten(2).transpose(1, 2) + + x = x + feat + return x + + +# Copied from transformers.models.swin.modeling_swin.SwinLayer with Swin->UnimerSwin +class UnimerSwinLayer(nn.Module): + def __init__(self, config, dim, input_resolution, num_heads, shift_size=0): + super().__init__() + self.chunk_size_feed_forward = config.chunk_size_feed_forward + self.shift_size = shift_size + self.window_size = config.window_size + self.input_resolution = input_resolution + self.layernorm_before = nn.LayerNorm(dim, eps=config.layer_norm_eps) + + self.ce = nn.ModuleList([ConvEnhance(config, dim=dim, k=3), + ConvEnhance(config, dim=dim, k=3)]) + + self.attention = UnimerSwinAttention(config, dim, num_heads, window_size=self.window_size) + self.drop_path = UnimerSwinDropPath(config.drop_path_rate) if config.drop_path_rate > 0.0 else nn.Identity() + self.layernorm_after = nn.LayerNorm(dim, eps=config.layer_norm_eps) + self.intermediate = UnimerSwinIntermediate(config, dim) + self.output = UnimerSwinOutput(config, dim) + + def set_shift_and_window_size(self, input_resolution): + if min(input_resolution) <= self.window_size: + # if window size is larger than input resolution, we don't partition windows + self.shift_size = torch_int(0) + self.window_size = ( + torch.min(torch.tensor(input_resolution)) if torch.jit.is_tracing() else min(input_resolution) + ) + + def get_attn_mask(self, height, width, dtype, device): + if self.shift_size > 0: + # calculate attention mask for SW-MSA + img_mask = torch.zeros((1, height, width, 1), dtype=dtype, device=device) + height_slices = ( + slice(0, -self.window_size), + slice(-self.window_size, -self.shift_size), + slice(-self.shift_size, None), + ) + width_slices = ( + slice(0, -self.window_size), + slice(-self.window_size, -self.shift_size), + slice(-self.shift_size, None), + ) + count = 0 + for height_slice in height_slices: + for width_slice in width_slices: + img_mask[:, height_slice, width_slice, :] = count + count += 1 + + mask_windows = window_partition(img_mask, self.window_size) + mask_windows = mask_windows.view(-1, self.window_size * self.window_size) + attn_mask = mask_windows.unsqueeze(1) - mask_windows.unsqueeze(2) + attn_mask = attn_mask.masked_fill(attn_mask != 0, float(-100.0)).masked_fill(attn_mask == 0, float(0.0)) + else: + attn_mask = None + return attn_mask + + def maybe_pad(self, hidden_states, height, width): + pad_right = (self.window_size - width % self.window_size) % self.window_size + pad_bottom = (self.window_size - height % self.window_size) % self.window_size + pad_values = (0, 0, 0, pad_right, 0, pad_bottom) + hidden_states = nn.functional.pad(hidden_states, pad_values) + return hidden_states, pad_values + + def forward( + self, + hidden_states: torch.Tensor, + input_dimensions: Tuple[int, int], + head_mask: Optional[torch.FloatTensor] = None, + output_attentions: Optional[bool] = False, + always_partition: Optional[bool] = False, + ) -> Tuple[torch.Tensor, torch.Tensor]: + if not always_partition: + self.set_shift_and_window_size(input_dimensions) + else: + pass + height, width = input_dimensions + batch_size, _, channels = hidden_states.size() + + + + hidden_states = self.ce[0](hidden_states, input_dimensions) + shortcut = hidden_states + + + hidden_states = self.layernorm_before(hidden_states) + hidden_states = hidden_states.view(batch_size, height, width, channels) + + # pad hidden_states to multiples of window size + hidden_states, pad_values = self.maybe_pad(hidden_states, height, width) + + _, height_pad, width_pad, _ = hidden_states.shape + # cyclic shift + if self.shift_size > 0: + shifted_hidden_states = torch.roll(hidden_states, shifts=(-self.shift_size, -self.shift_size), dims=(1, 2)) + else: + shifted_hidden_states = hidden_states + + # partition windows + hidden_states_windows = window_partition(shifted_hidden_states, self.window_size) + hidden_states_windows = hidden_states_windows.view(-1, self.window_size * self.window_size, channels) + attn_mask = self.get_attn_mask( + height_pad, width_pad, dtype=hidden_states.dtype, device=hidden_states_windows.device + ) + + attention_outputs = self.attention( + hidden_states_windows, attn_mask, head_mask, output_attentions=output_attentions + ) + + attention_output = attention_outputs[0] + + attention_windows = attention_output.view(-1, self.window_size, self.window_size, channels) + shifted_windows = window_reverse(attention_windows, self.window_size, height_pad, width_pad) + + # reverse cyclic shift + if self.shift_size > 0: + attention_windows = torch.roll(shifted_windows, shifts=(self.shift_size, self.shift_size), dims=(1, 2)) + else: + attention_windows = shifted_windows + + was_padded = pad_values[3] > 0 or pad_values[5] > 0 + if was_padded: + attention_windows = attention_windows[:, :height, :width, :].contiguous() + + attention_windows = attention_windows.view(batch_size, height * width, channels) + + hidden_states = shortcut + self.drop_path(attention_windows) + + + + hidden_states = self.ce[1](hidden_states, input_dimensions) + layer_output = self.layernorm_after(hidden_states) + layer_output = self.intermediate(layer_output) + layer_output = hidden_states + self.output(layer_output) + + layer_outputs = (layer_output, attention_outputs[1]) if output_attentions else (layer_output,) + return layer_outputs + + +# Copied from transformers.models.swin.modeling_swin.SwinStage with Swin->UnimerSwin +class UnimerSwinStage(nn.Module): + def __init__(self, config, dim, input_resolution, depth, num_heads, drop_path, downsample): + super().__init__() + self.config = config + self.dim = dim + self.blocks = nn.ModuleList( + [ + UnimerSwinLayer( + config=config, + dim=dim, + input_resolution=input_resolution, + num_heads=num_heads, + shift_size=0, + ) + for i in range(depth) + ] + ) + + # patch merging layer + if downsample is not None: + self.downsample = downsample(input_resolution, dim=dim, norm_layer=nn.LayerNorm) + else: + self.downsample = None + + self.pointing = False + + def forward( + self, + hidden_states: torch.Tensor, + input_dimensions: Tuple[int, int], + head_mask: Optional[torch.FloatTensor] = None, + output_attentions: Optional[bool] = False, + always_partition: Optional[bool] = False, + ) -> Tuple[torch.Tensor]: + height, width = input_dimensions + for i, layer_module in enumerate(self.blocks): + layer_head_mask = head_mask[i] if head_mask is not None else None + + layer_outputs = layer_module( + hidden_states, input_dimensions, layer_head_mask, output_attentions, always_partition + ) + + hidden_states = layer_outputs[0] + + hidden_states_before_downsampling = hidden_states + if self.downsample is not None: + height_downsampled, width_downsampled = (height + 1) // 2, (width + 1) // 2 + output_dimensions = (height, width, height_downsampled, width_downsampled) + hidden_states = self.downsample(hidden_states_before_downsampling, input_dimensions) + else: + output_dimensions = (height, width, height, width) + + stage_outputs = (hidden_states, hidden_states_before_downsampling, output_dimensions) + + if output_attentions: + stage_outputs += layer_outputs[1:] + return stage_outputs + + +# Copied from transformers.models.swin.modeling_swin.SwinEncoder with Swin->UnimerSwin +class UnimerSwinEncoder(nn.Module): + def __init__(self, config, grid_size): + super().__init__() + self.num_layers = len(config.depths) + self.config = config + dpr = [x.item() for x in torch.linspace(0, config.drop_path_rate, sum(config.depths))] + self.layers = nn.ModuleList( + [ + UnimerSwinStage( + config=config, + dim=int(config.embed_dim * 2**i_layer), + input_resolution=(grid_size[0] // (2**i_layer), grid_size[1] // (2**i_layer)), + depth=config.depths[i_layer], + num_heads=config.num_heads[i_layer], + drop_path=dpr[sum(config.depths[:i_layer]) : sum(config.depths[: i_layer + 1])], + downsample=UnimerSwinPatchMerging if (i_layer < self.num_layers - 1) else None, + ) + for i_layer in range(self.num_layers) + ] + ) + + self.gradient_checkpointing = False + + def forward( + self, + hidden_states: torch.Tensor, + input_dimensions: Tuple[int, int], + head_mask: Optional[torch.FloatTensor] = None, + output_attentions: Optional[bool] = False, + output_hidden_states: Optional[bool] = False, + output_hidden_states_before_downsampling: Optional[bool] = False, + always_partition: Optional[bool] = False, + return_dict: Optional[bool] = True, + ) -> Union[Tuple, UnimerSwinEncoderOutput]: + all_hidden_states = () if output_hidden_states else None + all_reshaped_hidden_states = () if output_hidden_states else None + all_self_attentions = () if output_attentions else None + + if output_hidden_states: + batch_size, _, hidden_size = hidden_states.shape + # rearrange b (h w) c -> b c h w + reshaped_hidden_state = hidden_states.view(batch_size, *input_dimensions, hidden_size) + reshaped_hidden_state = reshaped_hidden_state.permute(0, 3, 1, 2) + all_hidden_states += (hidden_states,) + all_reshaped_hidden_states += (reshaped_hidden_state,) + + for i, layer_module in enumerate(self.layers): + layer_head_mask = head_mask[i] if head_mask is not None else None + + if self.gradient_checkpointing and self.training: + layer_outputs = self._gradient_checkpointing_func( + layer_module.__call__, + hidden_states, + input_dimensions, + layer_head_mask, + output_attentions, + always_partition, + ) + else: + layer_outputs = layer_module( + hidden_states, input_dimensions, layer_head_mask, output_attentions, always_partition + ) + + hidden_states = layer_outputs[0] + hidden_states_before_downsampling = layer_outputs[1] + output_dimensions = layer_outputs[2] + + input_dimensions = (output_dimensions[-2], output_dimensions[-1]) + + if output_hidden_states and output_hidden_states_before_downsampling: + batch_size, _, hidden_size = hidden_states_before_downsampling.shape + # rearrange b (h w) c -> b c h w + # here we use the original (not downsampled) height and width + reshaped_hidden_state = hidden_states_before_downsampling.view( + batch_size, *(output_dimensions[0], output_dimensions[1]), hidden_size + ) + reshaped_hidden_state = reshaped_hidden_state.permute(0, 3, 1, 2) + all_hidden_states += (hidden_states_before_downsampling,) + all_reshaped_hidden_states += (reshaped_hidden_state,) + elif output_hidden_states and not output_hidden_states_before_downsampling: + batch_size, _, hidden_size = hidden_states.shape + # rearrange b (h w) c -> b c h w + reshaped_hidden_state = hidden_states.view(batch_size, *input_dimensions, hidden_size) + reshaped_hidden_state = reshaped_hidden_state.permute(0, 3, 1, 2) + all_hidden_states += (hidden_states,) + all_reshaped_hidden_states += (reshaped_hidden_state,) + + if output_attentions: + all_self_attentions += layer_outputs[3:] + + if not return_dict: + return tuple(v for v in [hidden_states, all_hidden_states, all_self_attentions] if v is not None) + + return UnimerSwinEncoderOutput( + last_hidden_state=hidden_states, + hidden_states=all_hidden_states, + attentions=all_self_attentions, + reshaped_hidden_states=all_reshaped_hidden_states, + ) + + +# Copied from transformers.models.swin.modeling_swin.SwinPreTrainedModel with Swin->UnimerSwin +class UnimerSwinPreTrainedModel(PreTrainedModel): + """ + An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained + models. + """ + + config_class = UnimerSwinConfig + base_model_prefix = "unimer-swin" + main_input_name = "pixel_values" + supports_gradient_checkpointing = True + _no_split_modules = ["UnimerSwinStage"] + + def _init_weights(self, module): + """Initialize the weights""" + if isinstance(module, (nn.Linear, nn.Conv2d)): + # Slightly different from the TF version which uses truncated_normal for initialization + # cf https://github.com/pytorch/pytorch/pull/5617 + module.weight.data.normal_(mean=0.0, std=self.config.initializer_range) + if module.bias is not None: + module.bias.data.zero_() + elif isinstance(module, nn.LayerNorm): + module.bias.data.zero_() + module.weight.data.fill_(1.0) + + +SWIN_START_DOCSTRING = r""" + This model is a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) sub-class. Use + it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage and + behavior. + + Parameters: + config ([`UnimerSwinConfig`]): Model configuration class with all the parameters of the model. + Initializing with a config file does not load the weights associated with the model, only the + configuration. Check out the [`~PreTrainedModel.from_pretrained`] method to load the model weights. +""" + +SWIN_INPUTS_DOCSTRING = r""" + Args: + pixel_values (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`): + Pixel values. Pixel values can be obtained using [`AutoImageProcessor`]. See + [`DonutImageProcessor.__call__`] for details. + head_mask (`torch.FloatTensor` of shape `(num_heads,)` or `(num_layers, num_heads)`, *optional*): + Mask to nullify selected heads of the self-attention modules. Mask values selected in `[0, 1]`: + + - 1 indicates the head is **not masked**, + - 0 indicates the head is **masked**. + + output_attentions (`bool`, *optional*): + Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned + tensors for more detail. + output_hidden_states (`bool`, *optional*): + Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for + more detail. + interpolate_pos_encoding (`bool`, *optional*, defaults to `False`): + Whether to interpolate the pre-trained position encodings. + return_dict (`bool`, *optional*): + Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple. +""" + + +@add_start_docstrings( + "The bare UnimerSwin Model transformer outputting raw hidden-states without any specific head on top.", + SWIN_START_DOCSTRING, +) +class UnimerSwinModel(UnimerSwinPreTrainedModel): + def __init__(self, config, add_pooling_layer=True, use_mask_token=False): + super().__init__(config) + self.config = config + self.num_layers = len(config.depths) + self.num_features = int(config.embed_dim * 2 ** (self.num_layers - 1)) + + self.embeddings = UnimerSwinEmbeddings(config, use_mask_token=use_mask_token) + self.encoder = UnimerSwinEncoder(config, self.embeddings.patch_grid) + self.pooler = nn.AdaptiveAvgPool1d(1) if add_pooling_layer else None + + # Initialize weights and apply final processing + self.post_init() + + def get_input_embeddings(self): + return self.embeddings.patch_embeddings + + def _prune_heads(self, heads_to_prune): + """ + Prunes heads of the model. heads_to_prune: dict of {layer_num: list of heads to prune in this layer} See base + class PreTrainedModel + """ + for layer, heads in heads_to_prune.items(): + self.encoder.layer[layer].attention.prune_heads(heads) + + @add_start_docstrings_to_model_forward(SWIN_INPUTS_DOCSTRING) + @add_code_sample_docstrings( + checkpoint=_CHECKPOINT_FOR_DOC, + output_type=UnimerSwinModelOutput, + config_class=_CONFIG_FOR_DOC, + modality="vision", + expected_output=_EXPECTED_OUTPUT_SHAPE, + ) + def forward( + self, + pixel_values: Optional[torch.FloatTensor] = None, + bool_masked_pos: Optional[torch.BoolTensor] = None, + head_mask: Optional[torch.FloatTensor] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + interpolate_pos_encoding: bool = False, + return_dict: Optional[bool] = None, + ) -> Union[Tuple, UnimerSwinModelOutput]: + r""" + bool_masked_pos (`torch.BoolTensor` of shape `(batch_size, num_patches)`): + Boolean masked positions. Indicates which patches are masked (1) and which aren't (0). + """ + output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions + output_hidden_states = ( + output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states + ) + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + if pixel_values is None: + raise ValueError("You have to specify pixel_values") + + # Prepare head mask if needed + # 1.0 in head_mask indicate we keep the head + # attention_probs has shape bsz x n_heads x N x N + # input head_mask has shape [num_heads] or [num_hidden_layers x num_heads] + # and head_mask is converted to shape [num_hidden_layers x batch x num_heads x seq_length x seq_length] + head_mask = self.get_head_mask(head_mask, len(self.config.depths)) + + embedding_output, input_dimensions = self.embeddings( + pixel_values, bool_masked_pos=bool_masked_pos, interpolate_pos_encoding=interpolate_pos_encoding + ) + + encoder_outputs = self.encoder( + embedding_output, + input_dimensions, + head_mask=head_mask, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + + sequence_output = encoder_outputs[0] + + pooled_output = None + if self.pooler is not None: + pooled_output = self.pooler(sequence_output.transpose(1, 2)) + pooled_output = torch.flatten(pooled_output, 1) + + if not return_dict: + output = (sequence_output, pooled_output) + encoder_outputs[1:] + + return output + + return UnimerSwinModelOutput( + last_hidden_state=sequence_output, + pooler_output=pooled_output, + hidden_states=encoder_outputs.hidden_states, + attentions=encoder_outputs.attentions, + reshaped_hidden_states=encoder_outputs.reshaped_hidden_states, + ) diff --git a/mineru/model/mfr/utils.py b/mineru/model/mfr/utils.py new file mode 100644 index 000000000..a646ef91d --- /dev/null +++ b/mineru/model/mfr/utils.py @@ -0,0 +1,448 @@ +# Copyright (c) Opendatalab. All rights reserved. +import re + +LEFT_PATTERN = re.compile(r'(\\left)(\S*)') +RIGHT_PATTERN = re.compile(r'(\\right)(\S*)') +LEFT_COUNT_PATTERN = re.compile(r'\\left(?![a-zA-Z])') +RIGHT_COUNT_PATTERN = re.compile(r'\\right(?![a-zA-Z])') +LEFT_RIGHT_REMOVE_PATTERN = re.compile(r'\\left\.?|\\right\.?') + +def fix_latex_left_right(s, fix_delimiter=True): + """ + 修复LaTeX中的\\left和\\right命令 + 1. 确保它们后面跟有效分隔符 + 2. 平衡\\left和\\right的数量 + """ + # 白名单分隔符 + valid_delims_list = [r'(', r')', r'[', r']', r'{', r'}', r'/', r'|', + r'\{', r'\}', r'\lceil', r'\rceil', r'\lfloor', + r'\rfloor', r'\backslash', r'\uparrow', r'\downarrow', + r'\Uparrow', r'\Downarrow', r'\|', r'\.'] + + # 为\left后缺失有效分隔符的情况添加点 + def fix_delim(match, is_left=True): + cmd = match.group(1) # \left 或 \right + rest = match.group(2) if len(match.groups()) > 1 else "" + if not rest or rest not in valid_delims_list: + return cmd + "." + return match.group(0) + + # 使用更精确的模式匹配\left和\right命令 + # 确保它们是独立的命令,不是其他命令的一部分 + # 使用预编译正则和统一回调函数 + if fix_delimiter: + s = LEFT_PATTERN.sub(lambda m: fix_delim(m, True), s) + s = RIGHT_PATTERN.sub(lambda m: fix_delim(m, False), s) + + # 更精确地计算\left和\right的数量 + left_count = len(LEFT_COUNT_PATTERN.findall(s)) # 不匹配\lefteqn等 + right_count = len(RIGHT_COUNT_PATTERN.findall(s)) # 不匹配\rightarrow等 + + if left_count == right_count: + # 如果数量相等,检查是否在同一组 + return fix_left_right_pairs(s) + # return s + else: + # 如果数量不等,移除所有\left和\right + # logger.debug(f"latex:{s}") + # logger.warning(f"left_count: {left_count}, right_count: {right_count}") + return LEFT_RIGHT_REMOVE_PATTERN.sub('', s) + + +def fix_left_right_pairs(latex_formula): + """ + 检测并修复LaTeX公式中\\left和\\right不在同一组的情况 + + Args: + latex_formula (str): 输入的LaTeX公式 + + Returns: + str: 修复后的LaTeX公式 + """ + # 用于跟踪花括号嵌套层级 + brace_stack = [] + # 用于存储\left信息: (位置, 深度, 分隔符) + left_stack = [] + # 存储需要调整的\right信息: (开始位置, 结束位置, 目标位置) + adjustments = [] + + i = 0 + while i < len(latex_formula): + # 检查是否是转义字符 + if i > 0 and latex_formula[i - 1] == '\\': + backslash_count = 0 + j = i - 1 + while j >= 0 and latex_formula[j] == '\\': + backslash_count += 1 + j -= 1 + + if backslash_count % 2 == 1: + i += 1 + continue + + # 检测\left命令 + if i + 5 < len(latex_formula) and latex_formula[i:i + 5] == "\\left" and i + 5 < len(latex_formula): + delimiter = latex_formula[i + 5] + left_stack.append((i, len(brace_stack), delimiter)) + i += 6 # 跳过\left和分隔符 + continue + + # 检测\right命令 + elif i + 6 < len(latex_formula) and latex_formula[i:i + 6] == "\\right" and i + 6 < len(latex_formula): + delimiter = latex_formula[i + 6] + + if left_stack: + left_pos, left_depth, left_delim = left_stack.pop() + + # 如果\left和\right不在同一花括号深度 + if left_depth != len(brace_stack): + # 找到\left所在花括号组的结束位置 + target_pos = find_group_end(latex_formula, left_pos, left_depth) + if target_pos != -1: + # 记录需要移动的\right + adjustments.append((i, i + 7, target_pos)) + + i += 7 # 跳过\right和分隔符 + continue + + # 处理花括号 + if latex_formula[i] == '{': + brace_stack.append(i) + elif latex_formula[i] == '}': + if brace_stack: + brace_stack.pop() + + i += 1 + + # 应用调整,从后向前处理以避免索引变化 + if not adjustments: + return latex_formula + + result = list(latex_formula) + adjustments.sort(reverse=True, key=lambda x: x[0]) + + for start, end, target in adjustments: + # 提取\right部分 + right_part = result[start:end] + # 从原位置删除 + del result[start:end] + # 在目标位置插入 + result.insert(target, ''.join(right_part)) + + return ''.join(result) + + +def find_group_end(text, pos, depth): + """查找特定深度的花括号组的结束位置""" + current_depth = depth + i = pos + + while i < len(text): + if text[i] == '{' and (i == 0 or not is_escaped(text, i)): + current_depth += 1 + elif text[i] == '}' and (i == 0 or not is_escaped(text, i)): + current_depth -= 1 + if current_depth < depth: + return i + i += 1 + + return -1 # 未找到对应结束位置 + + +def is_escaped(text, pos): + """检查字符是否被转义""" + backslash_count = 0 + j = pos - 1 + while j >= 0 and text[j] == '\\': + backslash_count += 1 + j -= 1 + + return backslash_count % 2 == 1 + + +def fix_unbalanced_braces(latex_formula): + """ + 检测LaTeX公式中的花括号是否闭合,并删除无法配对的花括号 + + Args: + latex_formula (str): 输入的LaTeX公式 + + Returns: + str: 删除无法配对的花括号后的LaTeX公式 + """ + stack = [] # 存储左括号的索引 + unmatched = set() # 存储不匹配括号的索引 + i = 0 + + while i < len(latex_formula): + # 检查是否是转义的花括号 + if latex_formula[i] in ['{', '}']: + # 计算前面连续的反斜杠数量 + backslash_count = 0 + j = i - 1 + while j >= 0 and latex_formula[j] == '\\': + backslash_count += 1 + j -= 1 + + # 如果前面有奇数个反斜杠,则该花括号是转义的,不参与匹配 + if backslash_count % 2 == 1: + i += 1 + continue + + # 否则,该花括号参与匹配 + if latex_formula[i] == '{': + stack.append(i) + else: # latex_formula[i] == '}' + if stack: # 有对应的左括号 + stack.pop() + else: # 没有对应的左括号 + unmatched.add(i) + + i += 1 + + # 所有未匹配的左括号 + unmatched.update(stack) + + # 构建新字符串,删除不匹配的括号 + return ''.join(char for i, char in enumerate(latex_formula) if i not in unmatched) + + +def process_latex(input_string): + """ + 处理LaTeX公式中的反斜杠: + 1. 如果\后跟特殊字符(#$%&~_^\\{})或空格,保持不变 + 2. 如果\后跟两个小写字母,保持不变 + 3. 其他情况,在\后添加空格 + + Args: + input_string (str): 输入的LaTeX公式 + + Returns: + str: 处理后的LaTeX公式 + """ + + def replace_func(match): + # 获取\后面的字符 + next_char = match.group(1) + + # 如果是特殊字符或空格,保持不变 + if next_char in "#$%&~_^|\\{} \t\n\r\v\f": + return match.group(0) + + # 如果是字母,检查下一个字符 + if 'a' <= next_char <= 'z' or 'A' <= next_char <= 'Z': + pos = match.start() + 2 # \x后的位置 + if pos < len(input_string) and ('a' <= input_string[pos] <= 'z' or 'A' <= input_string[pos] <= 'Z'): + # 下一个字符也是字母,保持不变 + return match.group(0) + + # 其他情况,在\后添加空格 + return '\\' + ' ' + next_char + + # 匹配\后面跟一个字符的情况 + pattern = r'\\(.)' + + return re.sub(pattern, replace_func, input_string) + +# 常见的在KaTeX/MathJax中可用的数学环境 +ENV_TYPES = ['array', 'matrix', 'pmatrix', 'bmatrix', 'vmatrix', + 'Bmatrix', 'Vmatrix', 'cases', 'aligned', 'gathered', 'align', 'align*'] +ENV_BEGIN_PATTERNS = {env: re.compile(r'\\begin\{' + env + r'\}') for env in ENV_TYPES} +ENV_END_PATTERNS = {env: re.compile(r'\\end\{' + env + r'\}') for env in ENV_TYPES} +ENV_FORMAT_PATTERNS = {env: re.compile(r'\\begin\{' + env + r'\}\{([^}]*)\}') for env in ENV_TYPES} + +def fix_latex_environments(s): + """ + 检测LaTeX中环境(如array)的\\begin和\\end是否匹配 + 1. 如果缺少\\begin标签则在开头添加 + 2. 如果缺少\\end标签则在末尾添加 + """ + for env in ENV_TYPES: + begin_count = len(ENV_BEGIN_PATTERNS[env].findall(s)) + end_count = len(ENV_END_PATTERNS[env].findall(s)) + + if begin_count != end_count: + if end_count > begin_count: + format_match = ENV_FORMAT_PATTERNS[env].search(s) + default_format = '{c}' if env == 'array' else '' + format_str = '{' + format_match.group(1) + '}' if format_match else default_format + + missing_count = end_count - begin_count + begin_command = '\\begin{' + env + '}' + format_str + ' ' + s = begin_command * missing_count + s + else: + missing_count = begin_count - end_count + s = s + (' \\end{' + env + '}') * missing_count + + return s + + +REPLACEMENTS_PATTERNS = { + re.compile(r'\\underbar'): r'\\underline', + re.compile(r'\\Bar'): r'\\hat', + re.compile(r'\\Hat'): r'\\hat', + re.compile(r'\\Tilde'): r'\\tilde', + re.compile(r'\\slash'): r'/', + re.compile(r'\\textperthousand'): r'‰', + re.compile(r'\\sun'): r'☉', + re.compile(r'\\textunderscore'): r'\\_', + re.compile(r'\\fint'): r'⨏', + re.compile(r'\\up '): r'\\ ', + re.compile(r'\\vline = '): r'\\models ', + re.compile(r'\\vDash '): r'\\models ', + re.compile(r'\\sq \\sqcup '): r'\\square ', + re.compile(r'\\copyright'): r'©', + re.compile(r'\\Dot'): r'\\dot', +} +QQUAD_PATTERN = re.compile(r'\\qquad(?!\s)') + + +def remove_up_commands(s: str): + """Remove unnecessary up commands from LaTeX code.""" + UP_PATTERN = re.compile(r'\\up([a-zA-Z]+)') + s = UP_PATTERN.sub( + lambda m: m.group(0) if m.group(1) in ["arrow", "downarrow", "lus", "silon"] else f"\\{m.group(1)}", s + ) + return s + + +def remove_unsupported_commands(s: str): + """Remove unsupported LaTeX commands.""" + COMMANDS_TO_REMOVE_PATTERN = re.compile( + r'\\(?:lefteqn|boldmath|ensuremath|centering|textsubscript|sides|textsl|textcent|emph|protect|null)') + s = COMMANDS_TO_REMOVE_PATTERN.sub('', s) + return s + + +def latex_rm_whitespace(s: str): + """Remove unnecessary whitespace from LaTeX code.""" + s = fix_unbalanced_braces(s) + s = fix_latex_left_right(s) + s = fix_latex_environments(s) + + s = remove_up_commands(s) + s = remove_unsupported_commands(s) + + # 应用所有替换 + for pattern, replacement in REPLACEMENTS_PATTERNS.items(): + s = pattern.sub(replacement, s) + + # 处理LaTeX中的反斜杠和空格 + s = process_latex(s) + + # \qquad后补空格 + s = QQUAD_PATTERN.sub(r'\\qquad ', s) + + # 如果字符串以反斜杠结尾,去掉最后的反斜杠 + while s.endswith('\\'): + s = s[:-1] + + return s + + +def largest_power_of_two_leq(value: int) -> int: + if value < 1: + return 0 + return 2 ** (value.bit_length() - 1) + + +def get_mfr_effective_batch_size(num_items: int, requested_batch_size: int) -> int: + return min( + requested_batch_size, + largest_power_of_two_leq(max(1, num_items)), + ) + + +def get_mfr_min_dynamic_batch_size(requested_batch_size: int) -> int: + return max(16, requested_batch_size // 4) + + +def finalize_mfr_batch_groups( + batch_groups: list[list[int]], + total_count: int, + requested_batch_size: int, +) -> list[list[int]]: + if not batch_groups: + return [] + + if len(batch_groups) == 1: + if total_count <= 1 or requested_batch_size <= total_count: + return batch_groups + + first_group_size = largest_power_of_two_leq(total_count - 1) + if first_group_size < 1: + return batch_groups + + source_group = batch_groups[0] + first_group = source_group[:first_group_size] + second_group = source_group[first_group_size:] + if not first_group or not second_group: + return batch_groups + return [first_group, second_group] + + while ( + len(batch_groups) >= 3 + and len(batch_groups[-1]) < len(batch_groups[-2]) + ): + tail_group = batch_groups.pop() + batch_groups[-1].extend(tail_group) + + return batch_groups + + +def build_mfr_batch_groups(sorted_areas: list[int], requested_batch_size: int) -> list[list[int]]: + if not sorted_areas: + return [] + + total_count = len(sorted_areas) + effective_batch_size = get_mfr_effective_batch_size( + total_count, + requested_batch_size, + ) + if effective_batch_size < 1: + return [] + + min_dynamic_batch_size = get_mfr_min_dynamic_batch_size(requested_batch_size) + batch_groups = [] + if total_count < min_dynamic_batch_size: + batch_groups.append(list(range(total_count))) + return finalize_mfr_batch_groups( + batch_groups, + total_count, + requested_batch_size, + ) + + base_mean_area = sum(sorted_areas[:effective_batch_size]) / effective_batch_size + cursor = 0 + + while cursor < total_count: + remaining_count = total_count - cursor + if remaining_count < min_dynamic_batch_size: + batch_groups.append(list(range(cursor, total_count))) + break + + probe_size = min(effective_batch_size, remaining_count) + current_mean_area = sum(sorted_areas[cursor : cursor + probe_size]) / probe_size + ratio = 1 if base_mean_area <= 0 else current_mean_area / base_mean_area + + candidate_batch_size = effective_batch_size + threshold = 4 + while ( + ratio >= threshold + and candidate_batch_size // 2 >= min_dynamic_batch_size + ): + candidate_batch_size //= 2 + threshold *= 2 + + candidate_batch_size = min( + candidate_batch_size, + largest_power_of_two_leq(remaining_count), + ) + batch_groups.append(list(range(cursor, cursor + candidate_batch_size))) + cursor += candidate_batch_size + + return finalize_mfr_batch_groups( + batch_groups, + total_count, + requested_batch_size, + ) diff --git a/mineru/model/ocr/__init__.py b/mineru/model/ocr/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/ocr/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/ocr/pytorch_paddle.py b/mineru/model/ocr/pytorch_paddle.py new file mode 100644 index 000000000..08db11ed6 --- /dev/null +++ b/mineru/model/ocr/pytorch_paddle.py @@ -0,0 +1,407 @@ +# Copyright (c) Opendatalab. All rights reserved. +import copy +import json +import os +import warnings +from pathlib import Path + +import cv2 +import numpy as np +import yaml +from loguru import logger + +from mineru.model.ocr.seal_crop import CropByPolys, SortPolyBoxes +from mineru.utils.config_reader import get_device +from mineru.utils.enum_class import ModelPath +from mineru.utils.models_download_utils import auto_download_and_get_model_root_path +from mineru.utils.ocr_utils import ( + check_img, + preprocess_image, + sorted_boxes, + merge_det_boxes, + update_det_boxes, + get_rotate_crop_image_for_text_rec, +) +from mineru.model.utils.tools.infer.predict_system import TextSystem +from mineru.model.utils.tools.infer import pytorchocr_utility as utility +import argparse + + +latin_lang = [ + "af", + "az", + "bs", + "cs", + "cy", + "da", + "de", + "es", + "et", + "fr", + "ga", + "hr", + "hu", + "id", + "is", + "it", + "ku", + "la", + "lt", + "lv", + "mi", + "ms", + "mt", + "nl", + "no", + "oc", + "pi", + "pl", + "pt", + "ro", + "rs_latin", + "sk", + "sl", + "sq", + "sv", + "sw", + "tl", + "tr", + "uz", + "vi", + "french", + "german", + "fi", + "eu", + "gl", + "lb", + "rm", + "ca", + "qu", +] +arabic_lang = ["ar", "fa", "ug", "ur", "ps", "ku", "sd", "bal"] +cyrillic_lang = [ + "ru", + "rs_cyrillic", + "be", + "bg", + "uk", + "mn", + "abq", + "ady", + "kbd", + "ava", + "dar", + "inh", + "che", + "lbe", + "lez", + "tab", + "kk", + "ky", + "tg", + "mk", + "tt", + "cv", + "ba", + "mhr", + "mo", + "udm", + "kv", + "os", + "bua", + "xal", + "tyv", + "sah", + "kaa", +] +east_slavic_lang = ["ru", "be", "uk"] +devanagari_lang = [ + "hi", + "mr", + "ne", + "bh", + "mai", + "ang", + "bho", + "mah", + "sck", + "new", + "gom", + "sa", + "bgc", +] + + +def get_model_params(lang, config): + if lang in config['lang']: + params = config['lang'][lang] + det = params.get('det') + rec = params.get('rec') + dict_file = params.get('dict') + return det, rec, dict_file + else: + raise Exception (f'Language {lang} not supported') + + +root_dir = os.path.join(Path(__file__).resolve().parent.parent, 'utils') +DEFAULT_SEAL_DEBUG_DIR = os.path.join( + Path(__file__).resolve().parents[3], + 'output_images', + 'seal_ocr_debug', +) + + +class PytorchPaddleOCR(TextSystem): + def __init__(self, *args, **kwargs): + parser = utility.init_args() + args = parser.parse_args(args) + + self.lang = kwargs.get('lang', 'ch') + self.is_seal = self.lang in ['seal', 'seal_lite'] + self.enable_merge_det_boxes = kwargs.get("enable_merge_det_boxes", True) + + device = get_device() + if device == 'cpu': + if self.lang in ['ch', 'ch_server', 'japan', 'chinese_cht']: + # logger.warning("The current device in use is CPU. To ensure the speed of parsing, the language is automatically switched to ch_lite.") + self.lang = 'ch_lite' + elif self.lang in ['seal']: + self.lang = 'seal_lite' + + if self.lang in latin_lang: + self.lang = 'latin' + elif self.lang in east_slavic_lang: + self.lang = 'east_slavic' + elif self.lang in arabic_lang: + self.lang = 'arabic' + elif self.lang in cyrillic_lang: + self.lang = 'cyrillic' + elif self.lang in devanagari_lang: + self.lang = 'devanagari' + else: + pass + + models_config_path = os.path.join(root_dir, 'pytorchocr', 'utils', 'resources', 'models_config.yml') + with open(models_config_path) as file: + config = yaml.safe_load(file) + det, rec, dict_file = get_model_params(self.lang, config) + ocr_models_dir = ModelPath.pytorch_paddle + + det_model_path = f"{ocr_models_dir}/{det}" + det_model_path = os.path.join(auto_download_and_get_model_root_path(det_model_path), det_model_path) + rec_model_path = f"{ocr_models_dir}/{rec}" + rec_model_path = os.path.join(auto_download_and_get_model_root_path(rec_model_path), rec_model_path) + kwargs['det_model_path'] = det_model_path + kwargs['rec_model_path'] = rec_model_path + kwargs['rec_char_dict_path'] = os.path.join(root_dir, 'pytorchocr', 'utils', 'resources', 'dict', dict_file) + kwargs['rec_batch_num'] = 6 + if self.is_seal: + kwargs['det_limit_side_len'] = 736 + kwargs['det_limit_type'] = 'min' + kwargs['det_max_side_limit'] = 4000 + kwargs['det_db_thresh'] = 0.2 + kwargs['det_db_box_thresh'] = 0.6 + kwargs['det_db_unclip_ratio'] = 0.5 + kwargs['det_box_type'] = 'poly' + kwargs['use_dilation'] = False + kwargs['enable_merge_det_boxes'] = False + kwargs['drop_score'] = 0 + self.enable_merge_det_boxes = False + + kwargs['device'] = device + + default_args = vars(args) + default_args.update(kwargs) + args = argparse.Namespace(**default_args) + + super().__init__(args) + if self.is_seal: + self._seal_sort_boxes = SortPolyBoxes() + self._seal_crop_by_polys = CropByPolys(det_box_type='poly') + self._seal_debug_counter = 0 + self._seal_debug_dir = self._resolve_seal_debug_dir() + + def _resolve_seal_debug_dir(self): + if not self.is_seal: + return None + + debug_dir = os.getenv("MINERU_SEAL_OCR_DEBUG_DIR") + if debug_dir: + return debug_dir + + debug_enable = os.getenv("MINERU_SEAL_OCR_DEBUG", "").lower() + if debug_enable in {"1", "true", "yes", "on"}: + return DEFAULT_SEAL_DEBUG_DIR + + return None + + def _dump_seal_debug_artifacts(self, input_image, dt_boxes, img_crop_list, rec_res=None): + if not self._seal_debug_dir: + return + + sample_dir = os.path.join( + self._seal_debug_dir, + f"sample_{self._seal_debug_counter:04d}", + ) + self._seal_debug_counter += 1 + os.makedirs(sample_dir, exist_ok=True) + + cv2.imwrite(os.path.join(sample_dir, "input.png"), input_image) + + det_vis = input_image.copy() + for index, box in enumerate(dt_boxes or []): + points = np.asarray(box, dtype=np.int32).reshape((-1, 1, 2)) + cv2.polylines(det_vis, [points], isClosed=True, color=(0, 0, 255), thickness=2) + anchor = tuple(np.asarray(box[0], dtype=np.int32).tolist()) + cv2.putText( + det_vis, + str(index), + anchor, + cv2.FONT_HERSHEY_SIMPLEX, + 0.6, + (255, 0, 0), + 2, + cv2.LINE_AA, + ) + cv2.imwrite(os.path.join(sample_dir, "det_vis.png"), det_vis) + + records = [] + for index, crop_img in enumerate(img_crop_list or []): + crop_name = f"crop_{index:02d}.png" + cv2.imwrite(os.path.join(sample_dir, crop_name), crop_img) + record = { + "index": index, + "crop_path": crop_name, + } + if rec_res is not None and index < len(rec_res): + text, score = rec_res[index] + record["text"] = text + record["score"] = float(score) + records.append(record) + + with open(os.path.join(sample_dir, "meta.json"), "w", encoding="utf-8") as f: + json.dump(records, f, ensure_ascii=False, indent=2) + + def ocr(self, + img, + det=True, + rec=True, + mfd_res=None, + tqdm_enable=False, + tqdm_desc="OCR-rec Predict", + ): + assert isinstance(img, (np.ndarray, list, str, bytes)) + if isinstance(img, list) and det == True: + logger.error('When input a list of images, det must be false') + exit(0) + img = check_img(img) + imgs = [img] + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=RuntimeWarning) + if det and rec: + ocr_res = [] + for img in imgs: + img = preprocess_image(img) + dt_boxes, rec_res = self.__call__(img, mfd_res=mfd_res) + if not dt_boxes and not rec_res: + ocr_res.append(None) + continue + tmp_res = [[box.tolist(), res] for box, res in zip(dt_boxes, rec_res)] + ocr_res.append(tmp_res) + return ocr_res + elif det and not rec: + ocr_res = [] + for img in imgs: + img = preprocess_image(img) + dt_boxes, elapse = self.text_detector(img) + # logger.debug("dt_boxes num : {}, elapsed : {}".format(len(dt_boxes), elapse)) + if dt_boxes is None: + ocr_res.append(None) + continue + if self.is_seal: + dt_boxes = self._seal_sort_boxes(dt_boxes) + img_crop_list = self._seal_crop_by_polys(img, dt_boxes) + self._dump_seal_debug_artifacts(img, dt_boxes, img_crop_list) + else: + dt_boxes = sorted_boxes(dt_boxes) + # merge_det_boxes 和 update_det_boxes 都会把poly转成bbox再转回poly,因此需要过滤所有倾斜程度较大的文本框 + if self.enable_merge_det_boxes: + dt_boxes = merge_det_boxes(dt_boxes) + if mfd_res: + dt_boxes = update_det_boxes(dt_boxes, mfd_res) + tmp_res = [box.tolist() for box in dt_boxes] + ocr_res.append(tmp_res) + return ocr_res + elif not det and rec: + ocr_res = [] + for img in imgs: + if not isinstance(img, list): + img = preprocess_image(img) + img = [img] + rec_res, elapse = self.text_recognizer(img, tqdm_enable=tqdm_enable, tqdm_desc=tqdm_desc) + # logger.debug("rec_res num : {}, elapsed : {}".format(len(rec_res), elapse)) + ocr_res.append(rec_res) + return ocr_res + + def __call__(self, img, mfd_res=None): + + if img is None: + logger.debug("no valid image provided") + return None, None + + ori_im = img.copy() + dt_boxes, elapse = self.text_detector(img) + + if dt_boxes is None: + logger.debug("no dt_boxes found, elapsed : {}".format(elapse)) + return None, None + else: + pass + # logger.debug("dt_boxes num : {}, elapsed : {}".format(len(dt_boxes), elapse)) + if self.is_seal: + dt_boxes = self._seal_sort_boxes(dt_boxes) + img_crop_list = self._seal_crop_by_polys(ori_im, dt_boxes) + else: + img_crop_list = [] + + dt_boxes = sorted_boxes(dt_boxes) + + # merge_det_boxes 和 update_det_boxes 都会把poly转成bbox再转回poly,因此需要过滤所有倾斜程度较大的文本框 + if self.enable_merge_det_boxes: + dt_boxes = merge_det_boxes(dt_boxes) + + if mfd_res: + dt_boxes = update_det_boxes(dt_boxes, mfd_res) + + # Standard text OCR rotates tall crops before recognition. + # Seal OCR keeps its dedicated poly-crop path above. + for bno in range(len(dt_boxes)): + tmp_box = copy.deepcopy(dt_boxes[bno]) + img_crop = get_rotate_crop_image_for_text_rec(ori_im, tmp_box) + img_crop_list.append(img_crop) + + rec_res, elapse = self.text_recognizer(img_crop_list) + # logger.debug("rec_res num : {}, elapsed : {}".format(len(rec_res), elapse)) + if self.is_seal: + self._dump_seal_debug_artifacts(ori_im, dt_boxes, img_crop_list, rec_res) + + filter_boxes, filter_rec_res = [], [] + for box, rec_result in zip(dt_boxes, rec_res): + text, score = rec_result + if score >= self.drop_score: + filter_boxes.append(box) + filter_rec_res.append(rec_result) + + return filter_boxes, filter_rec_res + +if __name__ == '__main__': + pytorch_paddle_ocr = PytorchPaddleOCR() + img = cv2.imread("/Users/myhloli/Downloads/screenshot-20250326-194348.png") + dt_boxes, rec_res = pytorch_paddle_ocr(img) + ocr_res = [] + if not dt_boxes and not rec_res: + ocr_res.append(None) + else: + tmp_res = [[box.tolist(), res] for box, res in zip(dt_boxes, rec_res)] + ocr_res.append(tmp_res) + print(ocr_res) diff --git a/mineru/model/ocr/seal_crop.py b/mineru/model/ocr/seal_crop.py new file mode 100644 index 000000000..d1f39f269 --- /dev/null +++ b/mineru/model/ocr/seal_crop.py @@ -0,0 +1,394 @@ +# Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import copy +from typing import List, Tuple + +import cv2 +import numpy as np +from numpy.linalg import norm +from shapely.geometry import Polygon + +from .seal_det_warp import AutoRectifier + + +class SortPolyBoxes: + def __call__(self, dt_polys: List[np.ndarray]) -> np.ndarray: + num_boxes = len(dt_polys) + if num_boxes == 0: + return dt_polys + else: + y_min_list = [] + for bno in range(num_boxes): + y_min_list.append(min(dt_polys[bno][:, 1])) + rank = np.argsort(np.array(y_min_list)) + dt_polys_rank = [] + for no in range(num_boxes): + dt_polys_rank.append(dt_polys[rank[no]]) + return dt_polys_rank + + +class CropByPolys: + def __init__(self, det_box_type: str = "quad") -> None: + self.det_box_type = det_box_type + + def __call__(self, img: np.ndarray, dt_polys: List[list]) -> List[np.ndarray]: + if self.det_box_type == "quad": + dt_boxes = np.array(dt_polys) + output_list = [] + for bno in range(len(dt_boxes)): + tmp_box = copy.deepcopy(dt_boxes[bno]) + img_crop = self.get_minarea_rect_crop(img, tmp_box) + output_list.append(img_crop) + elif self.det_box_type == "poly": + output_list = [] + dt_boxes = dt_polys + for bno in range(len(dt_boxes)): + tmp_box = copy.deepcopy(dt_boxes[bno]) + img_crop = self.get_poly_rect_crop(img.copy(), tmp_box) + output_list.append(img_crop) + else: + raise NotImplementedError + + return output_list + + def get_minarea_rect_crop(self, img: np.ndarray, points: np.ndarray) -> np.ndarray: + bounding_box = cv2.minAreaRect(np.array(points).astype(np.int32)) + points = sorted(list(cv2.boxPoints(bounding_box)), key=lambda x: x[0]) + + index_a, index_b, index_c, index_d = 0, 1, 2, 3 + if points[1][1] > points[0][1]: + index_a = 0 + index_d = 1 + else: + index_a = 1 + index_d = 0 + if points[3][1] > points[2][1]: + index_b = 2 + index_c = 3 + else: + index_b = 3 + index_c = 2 + + box = [points[index_a], points[index_b], points[index_c], points[index_d]] + crop_img = self.get_rotate_crop_image(img, np.array(box)) + return crop_img + + def get_rotate_crop_image(self, img: np.ndarray, points: list) -> np.ndarray: + assert len(points) == 4, "shape of points must be 4*2" + img_crop_width = int( + max( + np.linalg.norm(points[0] - points[1]), + np.linalg.norm(points[2] - points[3]), + ) + ) + img_crop_height = int( + max( + np.linalg.norm(points[0] - points[3]), + np.linalg.norm(points[1] - points[2]), + ) + ) + pts_std = np.float32( + [ + [0, 0], + [img_crop_width, 0], + [img_crop_width, img_crop_height], + [0, img_crop_height], + ] + ) + M = cv2.getPerspectiveTransform(points, pts_std) + dst_img = cv2.warpPerspective( + img, + M, + (img_crop_width, img_crop_height), + borderMode=cv2.BORDER_REPLICATE, + flags=cv2.INTER_CUBIC, + ) + dst_img_height, dst_img_width = dst_img.shape[0:2] + if dst_img_height * 1.0 / dst_img_width >= 1.5: + dst_img = np.rot90(dst_img) + return dst_img + + def reorder_poly_edge( + self, points: np.ndarray + ) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray]: + assert points.ndim == 2 + assert points.shape[0] >= 4 + assert points.shape[1] == 2 + + orientation_thr = 2.0 + + head_inds, tail_inds = self.find_head_tail(points, orientation_thr) + head_edge, tail_edge = points[head_inds], points[tail_inds] + + pad_points = np.vstack([points, points]) + if tail_inds[1] < 1: + tail_inds[1] = len(points) + sideline1 = pad_points[head_inds[1] : tail_inds[1]] + sideline2 = pad_points[tail_inds[1] : (head_inds[1] + len(points))] + return head_edge, tail_edge, sideline1, sideline2 + + def vector_slope(self, vec: list) -> float: + assert len(vec) == 2 + return abs(vec[1] / (vec[0] + 1e-8)) + + def find_head_tail( + self, points: np.ndarray, orientation_thr: float + ) -> Tuple[list, list]: + assert points.ndim == 2 + assert points.shape[0] >= 4 + assert points.shape[1] == 2 + assert isinstance(orientation_thr, float) + + if len(points) > 4: + pad_points = np.vstack([points, points[0]]) + edge_vec = pad_points[1:] - pad_points[:-1] + + theta_sum = [] + adjacent_vec_theta = [] + for i, edge_vec1 in enumerate(edge_vec): + adjacent_ind = [x % len(edge_vec) for x in [i - 1, i + 1]] + adjacent_edge_vec = edge_vec[adjacent_ind] + temp_theta_sum = np.sum(self.vector_angle(edge_vec1, adjacent_edge_vec)) + temp_adjacent_theta = self.vector_angle( + adjacent_edge_vec[0], adjacent_edge_vec[1] + ) + theta_sum.append(temp_theta_sum) + adjacent_vec_theta.append(temp_adjacent_theta) + theta_sum_score = np.array(theta_sum) / np.pi + adjacent_theta_score = np.array(adjacent_vec_theta) / np.pi + poly_center = np.mean(points, axis=0) + edge_dist = np.maximum( + norm(pad_points[1:] - poly_center, axis=-1), + norm(pad_points[:-1] - poly_center, axis=-1), + ) + dist_score = edge_dist / np.max(edge_dist) + position_score = np.zeros(len(edge_vec)) + score = 0.5 * theta_sum_score + 0.15 * adjacent_theta_score + score += 0.35 * dist_score + if len(points) % 2 == 0: + position_score[(len(score) // 2 - 1)] += 1 + position_score[-1] += 1 + score += 0.1 * position_score + pad_score = np.concatenate([score, score]) + score_matrix = np.zeros((len(score), len(score) - 3)) + x = np.arange(len(score) - 3) / float(len(score) - 4) + gaussian = ( + 1.0 + / (np.sqrt(2.0 * np.pi) * 0.5) + * np.exp(-np.power((x - 0.5) / 0.5, 2.0) / 2) + ) + gaussian = gaussian / np.max(gaussian) + for i in range(len(score)): + score_matrix[i, :] = ( + score[i] + + pad_score[(i + 2) : (i + len(score) - 1)] * gaussian * 0.3 + ) + + head_start, tail_increment = np.unravel_index( + score_matrix.argmax(), score_matrix.shape + ) + tail_start = (head_start + tail_increment + 2) % len(points) + head_end = (head_start + 1) % len(points) + tail_end = (tail_start + 1) % len(points) + + if head_end > tail_end: + head_start, tail_start = tail_start, head_start + head_end, tail_end = tail_end, head_end + head_inds = [head_start, head_end] + tail_inds = [tail_start, tail_end] + else: + if self.vector_slope(points[1] - points[0]) + self.vector_slope( + points[3] - points[2] + ) < self.vector_slope(points[2] - points[1]) + self.vector_slope( + points[0] - points[3] + ): + horizontal_edge_inds = [[0, 1], [2, 3]] + vertical_edge_inds = [[3, 0], [1, 2]] + else: + horizontal_edge_inds = [[3, 0], [1, 2]] + vertical_edge_inds = [[0, 1], [2, 3]] + + vertical_len_sum = norm( + points[vertical_edge_inds[0][0]] - points[vertical_edge_inds[0][1]] + ) + norm( + points[vertical_edge_inds[1][0]] - points[vertical_edge_inds[1][1]] + ) + horizontal_len_sum = norm( + points[horizontal_edge_inds[0][0]] - points[horizontal_edge_inds[0][1]] + ) + norm( + points[horizontal_edge_inds[1][0]] - points[horizontal_edge_inds[1][1]] + ) + + if vertical_len_sum > horizontal_len_sum * orientation_thr: + head_inds = horizontal_edge_inds[0] + tail_inds = horizontal_edge_inds[1] + else: + head_inds = vertical_edge_inds[0] + tail_inds = vertical_edge_inds[1] + + return head_inds, tail_inds + + def vector_angle(self, vec1: np.ndarray, vec2: np.ndarray) -> float: + if vec1.ndim > 1: + unit_vec1 = vec1 / (norm(vec1, axis=-1) + 1e-8).reshape((-1, 1)) + else: + unit_vec1 = vec1 / (norm(vec1, axis=-1) + 1e-8) + if vec2.ndim > 1: + unit_vec2 = vec2 / (norm(vec2, axis=-1) + 1e-8).reshape((-1, 1)) + else: + unit_vec2 = vec2 / (norm(vec2, axis=-1) + 1e-8) + return np.arccos(np.clip(np.sum(unit_vec1 * unit_vec2, axis=-1), -1.0, 1.0)) + + def get_minarea_rect( + self, img: np.ndarray, points: np.ndarray + ) -> Tuple[np.ndarray, list]: + bounding_box = cv2.minAreaRect(points) + points = sorted(list(cv2.boxPoints(bounding_box)), key=lambda x: x[0]) + + index_a, index_b, index_c, index_d = 0, 1, 2, 3 + if points[1][1] > points[0][1]: + index_a = 0 + index_d = 1 + else: + index_a = 1 + index_d = 0 + if points[3][1] > points[2][1]: + index_b = 2 + index_c = 3 + else: + index_b = 3 + index_c = 2 + + box = [points[index_a], points[index_b], points[index_c], points[index_d]] + crop_img = self.get_rotate_crop_image(img, np.array(box)) + return crop_img, box + + def sample_points_on_bbox_bp(self, line, n=50): + assert line.ndim == 2 + assert line.shape[0] >= 2 + assert line.shape[1] == 2 + assert isinstance(n, int) + assert n > 0 + + length_list = [norm(line[i + 1] - line[i]) for i in range(len(line) - 1)] + total_length = sum(length_list) + length_cumsum = np.cumsum([0.0] + length_list) + delta_length = total_length / (float(n) + 1e-8) + current_edge_ind = 0 + resampled_line = [line[0]] + + for i in range(1, n): + current_line_len = i * delta_length + while ( + current_edge_ind + 1 < len(length_cumsum) + and current_line_len >= length_cumsum[current_edge_ind + 1] + ): + current_edge_ind += 1 + current_edge_end_shift = current_line_len - length_cumsum[current_edge_ind] + if current_edge_ind >= len(length_list): + break + end_shift_ratio = current_edge_end_shift / length_list[current_edge_ind] + current_point = ( + line[current_edge_ind] + + (line[current_edge_ind + 1] - line[current_edge_ind]) + * end_shift_ratio + ) + resampled_line.append(current_point) + resampled_line.append(line[-1]) + resampled_line = np.array(resampled_line) + return resampled_line + + def sample_points_on_bbox(self, line, n=50): + assert line.ndim == 2 + assert line.shape[0] >= 2 + assert line.shape[1] == 2 + assert isinstance(n, int) + assert n > 0 + + length_list = [norm(line[i + 1] - line[i]) for i in range(len(line) - 1)] + total_length = sum(length_list) + mean_length = total_length / (len(length_list) + 1e-8) + group = [[0]] + for i in range(len(length_list)): + point_id = i + 1 + if length_list[i] < 0.9 * mean_length: + for g in group: + if i in g: + g.append(point_id) + break + else: + g = [point_id] + group.append(g) + + top_tail_len = norm(line[0] - line[-1]) + if top_tail_len < 0.9 * mean_length: + group[0].extend(g) + group.remove(g) + mean_positions = [] + for indices in group: + x_sum = 0 + y_sum = 0 + for index in indices: + x, y = line[index] + x_sum += x + y_sum += y + num_points = len(indices) + mean_x = x_sum / num_points + mean_y = y_sum / num_points + mean_positions.append((mean_x, mean_y)) + resampled_line = np.array(mean_positions) + return resampled_line + + def get_poly_rect_crop(self, img, points): + points = np.array(points).astype(np.int32).reshape(-1, 2) + temp_crop_img, temp_box = self.get_minarea_rect(img, points) + + def get_union(pD, pG): + return Polygon(pD).union(Polygon(pG)).area + + def get_intersection_over_union(pD, pG): + return get_intersection(pD, pG) / (get_union(pD, pG) + 1e-10) + + def get_intersection(pD, pG): + return Polygon(pD).intersection(Polygon(pG)).area + + if not Polygon(points).is_valid: + return temp_crop_img + cal_IoU = get_intersection_over_union(points, temp_box) + + if cal_IoU >= 0.7: + points = self.sample_points_on_bbox_bp(points, 31) + return temp_crop_img + + points_sample = self.sample_points_on_bbox(points) + points_sample = points_sample.astype(np.int32) + head_edge, tail_edge, top_line, bot_line = self.reorder_poly_edge(points_sample) + + resample_top_line = self.sample_points_on_bbox_bp(top_line, 15) + resample_bot_line = self.sample_points_on_bbox_bp(bot_line, 15) + + sideline_mean_shift = np.mean(resample_top_line, axis=0) - np.mean( + resample_bot_line, axis=0 + ) + if sideline_mean_shift[1] > 0: + resample_bot_line, resample_top_line = resample_top_line, resample_bot_line + rectifier = AutoRectifier() + new_points = np.concatenate([resample_top_line, resample_bot_line]) + new_points_list = list(new_points.astype(np.float32).reshape(1, -1).tolist()) + + if len(img.shape) == 2: + img = np.stack((img,) * 3, axis=-1) + img_crop, _ = rectifier.run(img, new_points_list, mode="homography") + return np.array(img_crop[0], dtype=np.uint8) diff --git a/mineru/model/ocr/seal_det_warp.py b/mineru/model/ocr/seal_det_warp.py new file mode 100644 index 000000000..aa6318a77 --- /dev/null +++ b/mineru/model/ocr/seal_det_warp.py @@ -0,0 +1,823 @@ +# Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import copy + +import cv2 +import numpy as np +from loguru import logger +from numpy import arctan, cos, sin, sqrt + + +def Homography( + image, + img_points, + world_width, + world_height, + interpolation=None, + ratio_width=1.0, + ratio_height=1.0, +): + if interpolation is None: + interpolation = cv2.INTER_CUBIC + + _points = np.array(img_points).reshape(-1, 2).astype(np.float32) + + expand_x = int(0.5 * world_width * (ratio_width - 1)) + expand_y = int(0.5 * world_height * (ratio_height - 1)) + + pt_lefttop = [expand_x, expand_y] + pt_righttop = [expand_x + world_width, expand_y] + pt_leftbottom = [expand_x + world_width, expand_y + world_height] + pt_rightbottom = [expand_x, expand_y + world_height] + + pts_std = np.float32([pt_lefttop, pt_righttop, pt_leftbottom, pt_rightbottom]) + + img_crop_width = int(world_width * ratio_width) + img_crop_height = int(world_height * ratio_height) + + M = cv2.getPerspectiveTransform(_points, pts_std) + + dst_img = cv2.warpPerspective( + image, + M, + (img_crop_width, img_crop_height), + borderMode=cv2.BORDER_CONSTANT, + flags=interpolation, + ) + + return dst_img + + +class PlanB: + def __call__( + self, + image, + points, + curveTextRectifier, + interpolation=None, + ratio_width=1.0, + ratio_height=1.0, + loss_thresh=5.0, + square=False, + ): + if interpolation is None: + interpolation = cv2.INTER_LINEAR + h, w = image.shape[:2] + _points = np.array(points).reshape(-1, 2).astype(np.float32) + x_min = int(np.min(_points[:, 0])) + y_min = int(np.min(_points[:, 1])) + x_max = int(np.max(_points[:, 0])) + y_max = int(np.max(_points[:, 1])) + dx = x_max - x_min + dy = y_max - y_min + max_d = max(dx, dy) + mean_pt = np.mean(_points, 0) + + expand_x = (ratio_width - 1.0) * 0.5 * max_d + expand_y = (ratio_height - 1.0) * 0.5 * max_d + + if square: + x_min = np.clip(int(mean_pt[0] - max_d - expand_x), 0, w - 1) + y_min = np.clip(int(mean_pt[1] - max_d - expand_y), 0, h - 1) + x_max = np.clip(int(mean_pt[0] + max_d + expand_x), 0, w - 1) + y_max = np.clip(int(mean_pt[1] + max_d + expand_y), 0, h - 1) + else: + x_min = np.clip(int(x_min - expand_x), 0, w - 1) + y_min = np.clip(int(y_min - expand_y), 0, h - 1) + x_max = np.clip(int(x_max + expand_x), 0, w - 1) + y_max = np.clip(int(y_max + expand_y), 0, h - 1) + + new_image = image[y_min:y_max, x_min:x_max, :].copy() + new_points = _points.copy() + new_points[:, 0] -= x_min + new_points[:, 1] -= y_min + + dst_img, loss = curveTextRectifier( + new_image, + new_points, + interpolation, + ratio_width, + ratio_height, + mode="calibration", + ) + + return dst_img, loss + + +class CurveTextRectifier: + def __init__(self): + self.get_virtual_camera_parameter() + + def get_virtual_camera_parameter(self): + vcam_thz = 0 + vcam_thx1 = 180 + vcam_thy = 180 + vcam_thx2 = 0 + + vcam_x = 0 + vcam_y = 0 + vcam_z = 100 + + radian = np.pi / 180 + + angle_z = radian * vcam_thz + angle_x1 = radian * vcam_thx1 + angle_y = radian * vcam_thy + angle_x2 = radian * vcam_thx2 + + optic_x = vcam_x + optic_y = vcam_y + optic_z = vcam_z + + fu = 100 + fv = 100 + + matT = np.zeros((4, 4)) + matT[0, 0] = cos(angle_z) * cos(angle_y) - sin(angle_z) * sin(angle_x1) * sin( + angle_y + ) + matT[0, 1] = cos(angle_z) * sin(angle_y) * sin(angle_x2) - sin(angle_z) * ( + cos(angle_x1) * cos(angle_x2) - sin(angle_x1) * cos(angle_y) * sin(angle_x2) + ) + matT[0, 2] = cos(angle_z) * sin(angle_y) * cos(angle_x2) + sin(angle_z) * ( + cos(angle_x1) * sin(angle_x2) + sin(angle_x1) * cos(angle_y) * cos(angle_x2) + ) + matT[0, 3] = optic_x + matT[1, 0] = sin(angle_z) * cos(angle_y) + cos(angle_z) * sin(angle_x1) * sin( + angle_y + ) + matT[1, 1] = sin(angle_z) * sin(angle_y) * sin(angle_x2) + cos(angle_z) * ( + cos(angle_x1) * cos(angle_x2) - sin(angle_x1) * cos(angle_y) * sin(angle_x2) + ) + matT[1, 2] = sin(angle_z) * sin(angle_y) * cos(angle_x2) - cos(angle_z) * ( + cos(angle_x1) * sin(angle_x2) + sin(angle_x1) * cos(angle_y) * cos(angle_x2) + ) + matT[1, 3] = optic_y + matT[2, 0] = -cos(angle_x1) * sin(angle_y) + matT[2, 1] = cos(angle_x1) * cos(angle_y) * sin(angle_x2) + sin(angle_x1) * cos( + angle_x2 + ) + matT[2, 2] = cos(angle_x1) * cos(angle_y) * cos(angle_x2) - sin(angle_x1) * sin( + angle_x2 + ) + matT[2, 3] = optic_z + matT[3, 0] = 0 + matT[3, 1] = 0 + matT[3, 2] = 0 + matT[3, 3] = 1 + + matS = np.zeros((4, 4)) + matS[2, 3] = 0.5 + matS[3, 2] = 0.5 + + self.ifu = 1 / fu + self.ifv = 1 / fv + + self.matT = matT + self.matS = matS + self.K = np.dot(matT.T, matS) + self.K = np.dot(self.K, matT) + + def vertical_text_process(self, points, org_size): + org_w, org_h = org_size + _points = np.array(points).reshape(-1).tolist() + _points = np.array(_points[2:] + _points[:2]).reshape(-1, 2) + + adjusted_points = np.zeros(_points.shape, dtype=np.float32) + adjusted_points[:, 0] = _points[:, 1] + adjusted_points[:, 1] = org_h - _points[:, 0] - 1 + + _image_coord, _world_coord, _new_image_size = self.horizontal_text_process( + adjusted_points + ) + + image_coord = _points.reshape(1, -1, 2) + world_coord = np.zeros(_world_coord.shape, dtype=np.float32) + world_coord[:, :, 0] = 0 - _world_coord[:, :, 1] + world_coord[:, :, 1] = _world_coord[:, :, 0] + world_coord[:, :, 2] = _world_coord[:, :, 2] + new_image_size = (_new_image_size[1], _new_image_size[0]) + + return image_coord, world_coord, new_image_size + + def horizontal_text_process(self, points): + poly = np.array(points).reshape(-1) + + dx_list = [] + dy_list = [] + for i in range(1, len(poly) // 2): + xdx = poly[i * 2] - poly[(i - 1) * 2] + xdy = poly[i * 2 + 1] - poly[(i - 1) * 2 + 1] + d = sqrt(xdx**2 + xdy**2) + dx_list.append(d) + + for i in range(0, len(poly) // 4): + ydx = poly[i * 2] - poly[len(poly) - 1 - (i * 2 + 1)] + ydy = poly[i * 2 + 1] - poly[len(poly) - 1 - (i * 2)] + d = sqrt(ydx**2 + ydy**2) + dy_list.append(d) + + dx_list = [ + (dx_list[i] + dx_list[len(dx_list) - 1 - i]) / 2 + for i in range(len(dx_list) // 2) + ] + + height = np.around(np.mean(dy_list)) + + rect_coord = [0, 0] + for i in range(0, len(poly) // 4 - 1): + x = rect_coord[-2] + x += dx_list[i] + y = 0 + rect_coord.append(x) + rect_coord.append(y) + + rect_coord_half = copy.deepcopy(rect_coord) + for i in range(0, len(poly) // 4): + x = rect_coord_half[len(rect_coord_half) - 2 * i - 2] + y = height + rect_coord.append(x) + rect_coord.append(y) + + np_rect_coord = np.array(rect_coord).reshape(-1, 2) + x_min = np.min(np_rect_coord[:, 0]) + y_min = np.min(np_rect_coord[:, 1]) + x_max = np.max(np_rect_coord[:, 0]) + y_max = np.max(np_rect_coord[:, 1]) + new_image_size = (int(x_max - x_min + 0.5), int(y_max - y_min + 0.5)) + x_mean = (x_max - x_min) / 2 + y_mean = (y_max - y_min) / 2 + np_rect_coord[:, 0] -= x_mean + np_rect_coord[:, 1] -= y_mean + rect_coord = np_rect_coord.reshape(-1).tolist() + + rect_coord = np.array(rect_coord).reshape(-1, 2) + world_coord = np.ones((len(rect_coord), 3)) * 0 + + world_coord[:, :2] = rect_coord + + image_coord = np.array(poly).reshape(1, -1, 2) + world_coord = world_coord.reshape(1, -1, 3) + + return image_coord, world_coord, new_image_size + + def horizontal_text_estimate(self, points): + pts = np.array(points).reshape(-1, 2) + x_min = int(np.min(pts[:, 0])) + y_min = int(np.min(pts[:, 1])) + x_max = int(np.max(pts[:, 0])) + y_max = int(np.max(pts[:, 1])) + x = x_max - x_min + y = y_max - y_min + is_horizontal_text = True + if y / x > 1.5: + is_horizontal_text = False + return is_horizontal_text + + def virtual_camera_to_world(self, size): + ifu, ifv = self.ifu, self.ifv + K, matT = self.K, self.matT + + ppu = size[0] / 2 + 1e-6 + ppv = size[1] / 2 + 1e-6 + + P = np.zeros((size[1], size[0], 3)) + + lu = np.array([i for i in range(size[0])]) + lv = np.array([i for i in range(size[1])]) + u, v = np.meshgrid(lu, lv) + + yp = (v - ppv) * ifv + xp = (u - ppu) * ifu + angle_a = arctan(sqrt(xp * xp + yp * yp)) + angle_b = arctan(yp / xp) + + D0 = sin(angle_a) * cos(angle_b) + D1 = sin(angle_a) * sin(angle_b) + D2 = cos(angle_a) + + D0[xp <= 0] = -D0[xp <= 0] + D1[xp <= 0] = -D1[xp <= 0] + + ratio_a = ( + K[0, 0] * D0 * D0 + + K[1, 1] * D1 * D1 + + K[2, 2] * D2 * D2 + + (K[0, 1] + K[1, 0]) * D0 * D1 + + (K[0, 2] + K[2, 0]) * D0 * D2 + + (K[1, 2] + K[2, 1]) * D1 * D2 + ) + ratio_b = ( + (K[0, 3] + K[3, 0]) * D0 + + (K[1, 3] + K[3, 1]) * D1 + + (K[2, 3] + K[3, 2]) * D2 + ) + ratio_c = K[3, 3] * np.ones(ratio_b.shape) + + delta = ratio_b * ratio_b - 4 * ratio_a * ratio_c + t = np.zeros(delta.shape) + t[ratio_a == 0] = -ratio_c[ratio_a == 0] / ratio_b[ratio_a == 0] + t[ratio_a != 0] = (-ratio_b[ratio_a != 0] + sqrt(delta[ratio_a != 0])) / ( + 2 * ratio_a[ratio_a != 0] + ) + t[delta < 0] = 0 + + P[:, :, 0] = matT[0, 3] + t * ( + matT[0, 0] * D0 + matT[0, 1] * D1 + matT[0, 2] * D2 + ) + P[:, :, 1] = matT[1, 3] + t * ( + matT[1, 0] * D0 + matT[1, 1] * D1 + matT[1, 2] * D2 + ) + P[:, :, 2] = matT[2, 3] + t * ( + matT[2, 0] * D0 + matT[2, 1] * D1 + matT[2, 2] * D2 + ) + + return P + + def world_to_image(self, image_size, world, intrinsic, distCoeffs, rotation, tvec): + r11 = rotation[0, 0] + r12 = rotation[0, 1] + r13 = rotation[0, 2] + r21 = rotation[1, 0] + r22 = rotation[1, 1] + r23 = rotation[1, 2] + r31 = rotation[2, 0] + r32 = rotation[2, 1] + r33 = rotation[2, 2] + + t1 = tvec[0] + t2 = tvec[1] + t3 = tvec[2] + + k1 = distCoeffs[0] + k2 = distCoeffs[1] + p1 = distCoeffs[2] + p2 = distCoeffs[3] + k3 = distCoeffs[4] + k4 = distCoeffs[5] + k5 = distCoeffs[6] + k6 = distCoeffs[7] + + if len(distCoeffs) > 8: + s1 = distCoeffs[8] + s2 = distCoeffs[9] + s3 = distCoeffs[10] + s4 = distCoeffs[11] + else: + s1 = s2 = s3 = s4 = 0 + + if len(distCoeffs) > 12: + tx = distCoeffs[12] + ty = distCoeffs[13] + else: + tx = ty = 0 + + fu = intrinsic[0, 0] + fv = intrinsic[1, 1] + ppu = intrinsic[0, 2] + ppv = intrinsic[1, 2] + + cos_tx = cos(tx) + cos_ty = cos(ty) + sin_tx = sin(tx) + sin_ty = sin(ty) + + tao11 = cos_ty * cos_tx * cos_ty + sin_ty * cos_tx * sin_ty + tao12 = cos_ty * cos_tx * sin_ty * sin_tx - sin_ty * cos_tx * cos_ty * sin_tx + tao13 = -cos_ty * cos_tx * sin_ty * cos_tx + sin_ty * cos_tx * cos_ty * cos_tx + tao21 = -sin_tx * sin_ty + tao22 = cos_ty * cos_tx * cos_tx + sin_tx * cos_ty * sin_tx + tao23 = cos_ty * cos_tx * sin_tx - sin_tx * cos_ty * cos_tx + + P = np.zeros((image_size[1], image_size[0], 2)) + + c3 = r31 * world[:, :, 0] + r32 * world[:, :, 1] + r33 * world[:, :, 2] + t3 + c1 = r11 * world[:, :, 0] + r12 * world[:, :, 1] + r13 * world[:, :, 2] + t1 + c2 = r21 * world[:, :, 0] + r22 * world[:, :, 1] + r23 * world[:, :, 2] + t2 + + x1 = c1 / c3 + y1 = c2 / c3 + x12 = x1 * x1 + y12 = y1 * y1 + x1y1 = 2 * x1 * y1 + r2 = x12 + y12 + r4 = r2 * r2 + r6 = r2 * r4 + + radial_distortion = (1 + k1 * r2 + k2 * r4 + k3 * r6) / ( + 1 + k4 * r2 + k5 * r4 + k6 * r6 + ) + x2 = ( + x1 * radial_distortion + p1 * x1y1 + p2 * (r2 + 2 * x12) + s1 * r2 + s2 * r4 + ) + y2 = ( + y1 * radial_distortion + p2 * x1y1 + p1 * (r2 + 2 * y12) + s3 * r2 + s4 * r4 + ) + + x3 = tao11 * x2 + tao12 * y2 + tao13 + y3 = tao21 * x2 + tao22 * y2 + tao23 + + P[:, :, 0] = fu * x3 + ppu + P[:, :, 1] = fv * y3 + ppv + P[c3 <= 0] = 0 + + return P + + def spatial_transform( + self, image_data, new_image_size, mtx, dist, rvecs, tvecs, interpolation + ): + rotation, _ = cv2.Rodrigues(rvecs) + world_map = self.virtual_camera_to_world(new_image_size) + image_map = self.world_to_image( + new_image_size, world_map, mtx, dist, rotation, tvecs + ) + image_map = image_map.astype(np.float32) + dst = cv2.remap( + image_data, image_map[:, :, 0], image_map[:, :, 1], interpolation + ) + return dst + + def calibrate(self, org_size, image_coord, world_coord): + flag = cv2.CALIB_RATIONAL_MODEL + flag2 = cv2.CALIB_RATIONAL_MODEL | cv2.CALIB_TILTED_MODEL + flag3 = cv2.CALIB_RATIONAL_MODEL | cv2.CALIB_THIN_PRISM_MODEL + flag4 = ( + cv2.CALIB_RATIONAL_MODEL + | cv2.CALIB_ZERO_TANGENT_DIST + | cv2.CALIB_FIX_ASPECT_RATIO + ) + flag5 = ( + cv2.CALIB_RATIONAL_MODEL + | cv2.CALIB_TILTED_MODEL + | cv2.CALIB_ZERO_TANGENT_DIST + ) + flag6 = cv2.CALIB_RATIONAL_MODEL | cv2.CALIB_FIX_ASPECT_RATIO + flag_list = [flag2, flag3, flag4, flag5, flag6] + + ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera( + world_coord.astype(np.float32), + image_coord.astype(np.float32), + org_size, + None, + None, + flags=flag, + ) + if ret > 2: + min_ret = ret + for flag in flag_list: + _ret, _mtx, _dist, _rvecs, _tvecs = cv2.calibrateCamera( + world_coord.astype(np.float32), + image_coord.astype(np.float32), + org_size, + None, + None, + flags=flag, + ) + if _ret < min_ret: + min_ret = _ret + ret, mtx, dist, rvecs, tvecs = _ret, _mtx, _dist, _rvecs, _tvecs + + return ret, mtx, dist, rvecs, tvecs + + def dc_homo( + self, + img, + img_points, + obj_points, + is_horizontal_text, + interpolation=None, + ratio_width=1.0, + ratio_height=1.0, + ): + if interpolation is None: + interpolation = cv2.INTER_LINEAR + + _img_points = img_points.reshape(-1, 2) + _obj_points = obj_points.reshape(-1, 3) + + homo_img_list = [] + width_list = [] + height_list = [] + for i in range(len(_img_points) // 2 - 1): + new_img_points = np.zeros((4, 2)).astype(np.float32) + new_obj_points = np.zeros((4, 2)).astype(np.float32) + + new_img_points[0:2, :] = _img_points[i : (i + 2), :2] + new_img_points[2:4, :] = _img_points[::-1, :][i : (i + 2), :2][::-1, :] + + new_obj_points[0:2, :] = _obj_points[i : (i + 2), :2] + new_obj_points[2:4, :] = _obj_points[::-1, :][i : (i + 2), :2][::-1, :] + + if is_horizontal_text: + world_width = np.abs(new_obj_points[1, 0] - new_obj_points[0, 0]) + world_height = np.abs(new_obj_points[3, 1] - new_obj_points[0, 1]) + else: + world_width = np.abs(new_obj_points[1, 1] - new_obj_points[0, 1]) + world_height = np.abs(new_obj_points[3, 0] - new_obj_points[0, 0]) + + homo_img = Homography( + img, + new_img_points, + world_width, + world_height, + interpolation=interpolation, + ratio_width=ratio_width, + ratio_height=ratio_height, + ) + + homo_img_list.append(homo_img) + _h, _w = homo_img.shape[:2] + width_list.append(_w) + height_list.append(_h) + + rectified_image = np.zeros((np.max(height_list), sum(width_list), 3)).astype( + np.uint8 + ) + + st = 0 + for homo_img, w, h in zip(homo_img_list, width_list, height_list): + rectified_image[:h, st : st + w, :] = homo_img + st += w + + if not is_horizontal_text: + rectified_image = np.rot90(rectified_image, 3) + + return rectified_image + + def __call__( + self, + image_data, + points, + interpolation=None, + ratio_width=1.0, + ratio_height=1.0, + mode="calibration", + ): + if interpolation is None: + interpolation = cv2.INTER_LINEAR + + org_h, org_w = image_data.shape[:2] + org_size = (org_w, org_h) + self.image = image_data + + is_horizontal_text = self.horizontal_text_estimate(points) + if is_horizontal_text: + image_coord, world_coord, new_image_size = self.horizontal_text_process( + points + ) + else: + image_coord, world_coord, new_image_size = self.vertical_text_process( + points, org_size + ) + + if mode.lower() == "calibration": + ret, mtx, dist, rvecs, tvecs = self.calibrate( + org_size, image_coord, world_coord + ) + + st_size = ( + int(new_image_size[0] * ratio_width), + int(new_image_size[1] * ratio_height), + ) + dst = self.spatial_transform( + image_data, st_size, mtx, dist[0], rvecs[0], tvecs[0], interpolation + ) + elif mode.lower() == "homography": + ret = 0.01 + dst = self.dc_homo( + image_data, + image_coord, + world_coord, + is_horizontal_text, + interpolation=interpolation, + ratio_width=1.0, + ratio_height=1.0, + ) + else: + raise ValueError( + 'mode must be ["calibration", "homography"], but got {}'.format(mode) + ) + + return dst, ret + + +class AutoRectifier: + def __init__(self): + self.npoints = 10 + self.curveTextRectifier = CurveTextRectifier() + + @staticmethod + def get_rotate_crop_image( + img, points, interpolation=None, ratio_width=1.0, ratio_height=1.0 + ): + if interpolation is None: + interpolation = cv2.INTER_CUBIC + h, w = img.shape[:2] + _points = np.array(points).reshape(-1, 2).astype(np.float32) + + if len(_points) != 4: + x_min = int(np.min(_points[:, 0])) + y_min = int(np.min(_points[:, 1])) + x_max = int(np.max(_points[:, 0])) + y_max = int(np.max(_points[:, 1])) + dx = x_max - x_min + dy = y_max - y_min + expand_x = int(0.5 * dx * (ratio_width - 1)) + expand_y = int(0.5 * dy * (ratio_height - 1)) + x_min = np.clip(int(x_min - expand_x), 0, w - 1) + y_min = np.clip(int(y_min - expand_y), 0, h - 1) + x_max = np.clip(int(x_max + expand_x), 0, w - 1) + y_max = np.clip(int(y_max + expand_y), 0, h - 1) + + dst_img = img[y_min:y_max, x_min:x_max, :].copy() + else: + img_crop_width = int( + max( + np.linalg.norm(_points[0] - _points[1]), + np.linalg.norm(_points[2] - _points[3]), + ) + ) + img_crop_height = int( + max( + np.linalg.norm(_points[0] - _points[3]), + np.linalg.norm(_points[1] - _points[2]), + ) + ) + + dst_img = Homography( + img, + _points, + img_crop_width, + img_crop_height, + interpolation, + ratio_width, + ratio_height, + ) + + return dst_img + + def visualize(self, image_data, points_list): + visualization = image_data.copy() + + for box in points_list: + box = np.array(box).reshape(-1, 2).astype(np.int32) + cv2.drawContours( + visualization, [np.array(box).reshape((-1, 1, 2))], -1, (0, 0, 255), 2 + ) + for i, p in enumerate(box): + if i != 0: + cv2.circle( + visualization, + tuple(p), + radius=1, + color=(255, 0, 0), + thickness=2, + ) + else: + cv2.circle( + visualization, + tuple(p), + radius=1, + color=(255, 255, 0), + thickness=2, + ) + return visualization + + def __call__( + self, + image_data, + points, + interpolation=None, + ratio_width=1.0, + ratio_height=1.0, + loss_thresh=5.0, + mode="calibration", + ): + if interpolation is None: + interpolation = cv2.INTER_LINEAR + _points = np.array(points).reshape(-1, 2) + if len(_points) >= self.npoints and len(_points) % 2 == 0: + try: + curveTextRectifier = CurveTextRectifier() + + dst_img, loss = curveTextRectifier( + image_data, points, interpolation, ratio_width, ratio_height, mode + ) + if loss >= 2: + img_list, loss_list = [dst_img], [loss] + _dst_img, _loss = PlanB()( + image_data, + points, + curveTextRectifier, + interpolation, + ratio_width, + ratio_height, + loss_thresh=loss_thresh, + square=True, + ) + img_list += [_dst_img] + loss_list += [_loss] + + _dst_img, _loss = PlanB()( + image_data, + points, + curveTextRectifier, + interpolation, + ratio_width, + ratio_height, + loss_thresh=loss_thresh, + square=False, + ) + img_list += [_dst_img] + loss_list += [_loss] + + min_loss = min(loss_list) + dst_img = img_list[loss_list.index(min_loss)] + + if min_loss >= loss_thresh: + logger.warning( + "calibration loss: {} is too large for spatial transformer. It is failed. Using get_rotate_crop_image".format( + loss + ) + ) + dst_img = self.get_rotate_crop_image( + image_data, points, interpolation, ratio_width, ratio_height + ) + except Exception as e: + logger.warning(f"Exception caught: {e}") + dst_img = self.get_rotate_crop_image( + image_data, points, interpolation, ratio_width, ratio_height + ) + else: + dst_img = self.get_rotate_crop_image( + image_data, _points, interpolation, ratio_width, ratio_height + ) + + return dst_img + + def run( + self, + image_data, + points_list, + interpolation=None, + ratio_width=1.0, + ratio_height=1.0, + loss_thresh=5.0, + mode="calibration", + ): + if image_data is None: + raise ValueError + if not isinstance(points_list, list): + raise ValueError + for points in points_list: + if not isinstance(points, list): + raise ValueError + if interpolation is None: + interpolation = cv2.INTER_LINEAR + + if ratio_width < 1.0 or ratio_height < 1.0: + raise ValueError( + "ratio_width and ratio_height cannot be smaller than 1, but got {}", + (ratio_width, ratio_height), + ) + + if mode.lower() != "calibration" and mode.lower() != "homography": + raise ValueError( + 'mode must be ["calibration", "homography"], but got {}'.format(mode) + ) + + if mode.lower() == "homography" and ratio_width != 1.0 and ratio_height != 1.0: + raise ValueError( + "ratio_width and ratio_height must be 1.0 when mode is homography, but got mode:{}, ratio:({},{})".format( + mode, ratio_width, ratio_height + ) + ) + + res = [] + for points in points_list: + rectified_img = self( + image_data, + points, + interpolation, + ratio_width, + ratio_height, + loss_thresh=loss_thresh, + mode=mode, + ) + res.append(rectified_img) + + visualized_image = self.visualize(image_data, points_list) + + return res, visualized_image diff --git a/mineru/model/ori_cls/__init__.py b/mineru/model/ori_cls/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/ori_cls/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/ori_cls/paddle_ori_cls.py b/mineru/model/ori_cls/paddle_ori_cls.py new file mode 100644 index 000000000..001a9c2e1 --- /dev/null +++ b/mineru/model/ori_cls/paddle_ori_cls.py @@ -0,0 +1,277 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os + +from PIL import Image +from collections import defaultdict +from typing import List, Dict +from tqdm import tqdm +import cv2 +import numpy as np +import onnxruntime + +from mineru.utils.enum_class import ModelPath +from mineru.utils.models_download_utils import auto_download_and_get_model_root_path + + +class PaddleOrientationClsModel: + def __init__(self, ocr_engine): + self.sess = onnxruntime.InferenceSession( + os.path.join(auto_download_and_get_model_root_path(ModelPath.paddle_orientation_classification), ModelPath.paddle_orientation_classification) + ) + self.ocr_engine = ocr_engine + self.less_length = 256 + self.cw, self.ch = 224, 224 + self.std = [0.229, 0.224, 0.225] + self.scale = 0.00392156862745098 + self.mean = [0.485, 0.456, 0.406] + self.labels = ["0", "90", "180", "270"] + + def preprocess(self, input_img): + # 放大图片,使其最短边长为256 + h, w = input_img.shape[:2] + scale = 256 / min(h, w) + h_resize = round(h * scale) + w_resize = round(w * scale) + img = cv2.resize(input_img, (w_resize, h_resize), interpolation=1) + # 调整为224*224的正方形 + h, w = img.shape[:2] + cw, ch = 224, 224 + x1 = max(0, (w - cw) // 2) + y1 = max(0, (h - ch) // 2) + x2 = min(w, x1 + cw) + y2 = min(h, y1 + ch) + if w < cw or h < ch: + raise ValueError( + f"Input image ({w}, {h}) smaller than the target size ({cw}, {ch})." + ) + img = img[y1:y2, x1:x2, ...] + # 正则化 + split_im = list(cv2.split(img)) + std = [0.229, 0.224, 0.225] + scale = 0.00392156862745098 + mean = [0.485, 0.456, 0.406] + alpha = [scale / std[i] for i in range(len(std))] + beta = [-mean[i] / std[i] for i in range(len(std))] + for c in range(img.shape[2]): + split_im[c] = split_im[c].astype(np.float32) + split_im[c] *= alpha[c] + split_im[c] += beta[c] + img = cv2.merge(split_im) + # 5. 转换为 CHW 格式 + img = img.transpose((2, 0, 1)) + imgs = [img] + x = np.stack(imgs, axis=0).astype(dtype=np.float32, copy=False) + return x + + def predict(self, input_img): + rotate_label = "0" # Default to 0 if no rotation detected or not portrait + if isinstance(input_img, Image.Image): + np_img = np.asarray(input_img) + elif isinstance(input_img, np.ndarray): + np_img = input_img + else: + raise ValueError("Input must be a pillow object or a numpy array.") + bgr_image = cv2.cvtColor(np_img, cv2.COLOR_RGB2BGR) + # First check the overall image aspect ratio (height/width) + img_height, img_width = bgr_image.shape[:2] + img_aspect_ratio = img_height / img_width if img_width > 0 else 1.0 + img_is_portrait = img_aspect_ratio > 1.2 + + if img_is_portrait: + + det_res = self.ocr_engine.ocr(bgr_image, rec=False)[0] + # Check if table is rotated by analyzing text box aspect ratios + if det_res: + vertical_count = 0 + is_rotated = False + + for box_ocr_res in det_res: + p1, p2, p3, p4 = box_ocr_res + + # Calculate width and height + width = p3[0] - p1[0] + height = p3[1] - p1[1] + + aspect_ratio = width / height if height > 0 else 1.0 + + # Count vertical vs horizontal text boxes + if aspect_ratio < 0.8: # Taller than wide - vertical text + vertical_count += 1 + # elif aspect_ratio > 1.2: # Wider than tall - horizontal text + # horizontal_count += 1 + + if vertical_count >= len(det_res) * 0.28 and vertical_count >= 3: + is_rotated = True + # logger.debug(f"Text orientation analysis: vertical={vertical_count}, det_res={len(det_res)}, rotated={is_rotated}") + + # If we have more vertical text boxes than horizontal ones, + # and vertical ones are significant, table might be rotated + if is_rotated: + x = self.preprocess(np_img) + (result,) = self.sess.run(None, {"x": x}) + rotate_label = self.labels[np.argmax(result)] + # logger.debug(f"Orientation classification result: {label}") + + return rotate_label + + def list_2_batch(self, img_list, batch_size=16): + """ + 将任意长度的列表按照指定的batch size分成多个batch + + Args: + img_list: 输入的列表 + batch_size: 每个batch的大小,默认为16 + + Returns: + 一个包含多个batch的列表,每个batch都是原列表的一个子列表 + """ + batches = [] + for i in range(0, len(img_list), batch_size): + batch = img_list[i : min(i + batch_size, len(img_list))] + batches.append(batch) + return batches + + def batch_preprocess(self, imgs): + res_imgs = [] + for img_info in imgs: + img = np.asarray(img_info["table_img"]) + # 放大图片,使其最短边长为256 + h, w = img.shape[:2] + scale = 256 / min(h, w) + h_resize = round(h * scale) + w_resize = round(w * scale) + img = cv2.resize(img, (w_resize, h_resize), interpolation=1) + # 调整为224*224的正方形 + h, w = img.shape[:2] + cw, ch = 224, 224 + x1 = max(0, (w - cw) // 2) + y1 = max(0, (h - ch) // 2) + x2 = min(w, x1 + cw) + y2 = min(h, y1 + ch) + if w < cw or h < ch: + raise ValueError( + f"Input image ({w}, {h}) smaller than the target size ({cw}, {ch})." + ) + img = img[y1:y2, x1:x2, ...] + # 正则化 + split_im = list(cv2.split(img)) + std = [0.229, 0.224, 0.225] + scale = 0.00392156862745098 + mean = [0.485, 0.456, 0.406] + alpha = [scale / std[i] for i in range(len(std))] + beta = [-mean[i] / std[i] for i in range(len(std))] + for c in range(img.shape[2]): + split_im[c] = split_im[c].astype(np.float32) + split_im[c] *= alpha[c] + split_im[c] += beta[c] + img = cv2.merge(split_im) + # 5. 转换为 CHW 格式 + img = img.transpose((2, 0, 1)) + res_imgs.append(img) + x = np.stack(res_imgs, axis=0).astype(dtype=np.float32, copy=False) + return x + + def batch_predict( + self, imgs: List[Dict], det_batch_size: int, batch_size: int = 16 + ) -> None: + """ + 批量预测传入的包含图片信息列表的旋转信息,并且将旋转过的图片正确地旋转回来 + """ + RESOLUTION_GROUP_STRIDE = 128 + # 跳过长宽比小于1.2的图片 + resolution_groups = defaultdict(list) + for img in imgs: + # RGB图像转换BGR + bgr_img: np.ndarray = cv2.cvtColor(np.asarray(img["table_img"]), cv2.COLOR_RGB2BGR) + img["table_img_bgr"] = bgr_img + img_height, img_width = bgr_img.shape[:2] + img_aspect_ratio = img_height / img_width if img_width > 0 else 1.0 + if img_aspect_ratio > 1.2: + # 归一化尺寸到RESOLUTION_GROUP_STRIDE的倍数 + normalized_h = ((img_height + RESOLUTION_GROUP_STRIDE) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE # 向上取整到RESOLUTION_GROUP_STRIDE的倍数 + normalized_w = ((img_width + RESOLUTION_GROUP_STRIDE) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE + group_key = (normalized_h, normalized_w) + resolution_groups[group_key].append(img) + + # 对每个分辨率组进行批处理 + rotated_imgs = [] + for group_key, group_imgs in tqdm(resolution_groups.items(), desc="Table-ori cls stage1 predict", disable=True): + # 计算目标尺寸(组内最大尺寸,向上取整到RESOLUTION_GROUP_STRIDE的倍数) + max_h = max(img["table_img_bgr"].shape[0] for img in group_imgs) + max_w = max(img["table_img_bgr"].shape[1] for img in group_imgs) + target_h = ((max_h + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE + target_w = ((max_w + RESOLUTION_GROUP_STRIDE - 1) // RESOLUTION_GROUP_STRIDE) * RESOLUTION_GROUP_STRIDE + + # 对所有图像进行padding到统一尺寸 + batch_images = [] + for img in group_imgs: + bgr_img = img["table_img_bgr"] + h, w = bgr_img.shape[:2] + # 创建目标尺寸的白色背景 + padded_img = np.ones((target_h, target_w, 3), dtype=np.uint8) * 255 + # 将原图像粘贴到左上角 + padded_img[:h, :w] = bgr_img + batch_images.append(padded_img) + + # 批处理检测 + batch_results = self.ocr_engine.text_detector.batch_predict( + batch_images, min(len(batch_images), det_batch_size) + ) + + # 根据批处理结果检测图像是否旋转,旋转的图像放入列表中,继续进行旋转角度的预测 + + for index, (img_info, (dt_boxes, elapse)) in enumerate( + zip(group_imgs, batch_results) + ): + vertical_count = 0 + for box_ocr_res in dt_boxes: + p1, p2, p3, p4 = box_ocr_res + + # Calculate width and height + width = p3[0] - p1[0] + height = p3[1] - p1[1] + + aspect_ratio = width / height if height > 0 else 1.0 + + # Count vertical text boxes + if aspect_ratio < 0.8: # Taller than wide - vertical text + vertical_count += 1 + + if vertical_count >= len(dt_boxes) * 0.28 and vertical_count >= 3: + rotated_imgs.append(img_info) + + # 对旋转的图片进行旋转角度预测 + if len(rotated_imgs) > 0: + imgs = self.list_2_batch(rotated_imgs, batch_size=batch_size) + with tqdm(total=len(rotated_imgs), desc="Table-ori cls stage2 predict", disable=True) as pbar: + for img_batch in imgs: + x = self.batch_preprocess(img_batch) + results = self.sess.run(None, {"x": x}) + for img_info, res in zip(rotated_imgs, results[0]): + label = self.labels[np.argmax(res)] + self.img_rotate(img_info, label) + pbar.update(1) + + def img_rotate(self, img_info, label): + img_info["rotate_label"] = label + if label == "270": + img_info["table_img"] = cv2.rotate( + np.asarray(img_info["table_img"]), + cv2.ROTATE_90_CLOCKWISE, + ) + img_info["wired_table_img"] = cv2.rotate( + np.asarray(img_info["wired_table_img"]), + cv2.ROTATE_90_CLOCKWISE, + ) + elif label == "90": + img_info["table_img"] = cv2.rotate( + np.asarray(img_info["table_img"]), + cv2.ROTATE_90_COUNTERCLOCKWISE, + ) + img_info["wired_table_img"] = cv2.rotate( + np.asarray(img_info["wired_table_img"]), + cv2.ROTATE_90_COUNTERCLOCKWISE, + ) + else: + # 180度和0度不做处理 + pass diff --git a/mineru/model/pptx/__init__.py b/mineru/model/pptx/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/pptx/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/pptx/main.py b/mineru/model/pptx/main.py new file mode 100644 index 000000000..d9effd369 --- /dev/null +++ b/mineru/model/pptx/main.py @@ -0,0 +1,19 @@ +# Copyright (c) Opendatalab. All rights reserved. +from typing import BinaryIO + +from mineru.model.pptx.pptx_converter import PptxConverter + + +def convert_path(file_path: str): + with open(file_path, "rb") as fh: + return convert_binary(fh) + + +def convert_binary(file_binary: BinaryIO): + converter = PptxConverter() + converter.convert(file_binary) + return converter.pages + + +if __name__ == "__main__": + print(convert_path("powerpoint_sample.pptx")) diff --git a/mineru/model/pptx/pptx_converter.py b/mineru/model/pptx/pptx_converter.py new file mode 100644 index 000000000..fd25d888b --- /dev/null +++ b/mineru/model/pptx/pptx_converter.py @@ -0,0 +1,1945 @@ +# Copyright (c) Opendatalab. All rights reserved. +import base64 +from collections import Counter +from dataclasses import dataclass +from io import BytesIO +from typing import Any, Final, BinaryIO, Optional + +from lxml import etree +from pptx import Presentation, presentation +from pptx.enum.shapes import MSO_SHAPE_TYPE, PP_PLACEHOLDER +from pptx.oxml.text import CT_TextLineBreak +from loguru import logger +from PIL import Image, UnidentifiedImageError + +from mineru.utils.enum_class import BlockType +from mineru.backend.utils.office_image import ( + is_vector_image, + serialize_vector_image_with_placeholder, +) +from mineru.model.docx.tools.math.omml import oMath2Latex +from mineru.backend.utils.office_chart import html_table_from_excel_bytes +from mineru.model.pptx.xycut_pp_sorter import sort_entries +from mineru.utils.pdf_reader import image_to_b64str + +IGNORED_NOTES_PLACEHOLDER_TYPES: Final = { + PP_PLACEHOLDER.SLIDE_IMAGE, + PP_PLACEHOLDER.SLIDE_NUMBER, + PP_PLACEHOLDER.DATE, + PP_PLACEHOLDER.FOOTER, +} +MIN_PICTURE_DIMENSION_RATIO: Final = 0.1 +MIN_PICTURE_AREA_RATIO: Final = 0.01 +BACKGROUND_PICTURE_TEXT_COVERAGE_RATIO: Final = 0.1 +# PPTX_XYCUT_BETA: Final = 0.7 +PPTX_XYCUT_BETA: Final = 2.0 +PPTX_XYCUT_DENSITY_THRESHOLD: Final = 0.9 +DRAWINGML_NS: Final = "http://schemas.openxmlformats.org/drawingml/2006/main" +RELATIONSHIP_NS: Final = "http://schemas.openxmlformats.org/officeDocument/2006/relationships" +SVG_BLIP_NS: Final = "http://schemas.microsoft.com/office/drawing/2016/SVG/main" +A14_DRAWING_NS: Final = "http://schemas.microsoft.com/office/drawing/2010/main" +OMML_NS: Final = "http://schemas.openxmlformats.org/officeDocument/2006/math" +_EFFECTIVE_FONT_SIZE_KEY: Final = "_effective_font_size_pt" +_EFFECTIVE_ALL_BOLD_KEY: Final = "_effective_all_bold" + + +@dataclass(frozen=True) +class _SlideTransform: + scale_x: float = 1.0 + scale_y: float = 1.0 + translate_x: float = 0.0 + translate_y: float = 0.0 + + def apply_bbox( + self, + bbox: Optional[tuple[float, float, float, float]], + ) -> Optional[tuple[float, float, float, float]]: + if bbox is None: + return None + + left = self.scale_x * bbox[0] + self.translate_x + top = self.scale_y * bbox[1] + self.translate_y + right = self.scale_x * bbox[2] + self.translate_x + bottom = self.scale_y * bbox[3] + self.translate_y + return (left, top, right, bottom) + + def compose(self, inner: "_SlideTransform") -> "_SlideTransform": + return _SlideTransform( + scale_x=self.scale_x * inner.scale_x, + scale_y=self.scale_y * inner.scale_y, + translate_x=self.scale_x * inner.translate_x + self.translate_x, + translate_y=self.scale_y * inner.translate_y + self.translate_y, + ) + + +@dataclass(frozen=True) +class _FlattenedShape: + shape: Any + bbox: Optional[tuple[float, float, float, float]] + + +class PptxConverter: + + def __init__(self): + self.namespaces = { + "a": "http://schemas.openxmlformats.org/drawingml/2006/main", + "c": "http://schemas.openxmlformats.org/drawingml/2006/chart", + "m": "http://schemas.openxmlformats.org/officeDocument/2006/math", + "p": "http://schemas.openxmlformats.org/presentationml/2006/main", + } + self.file_stream = None + self.pptx_obj = None + self.pages = [] + self.cur_page = [] + self.list_block_stack: list = [] # 列表块堆栈 + self.equation_bookends: str = "{EQ}" # 公式标记格式 + + def convert( + self, + file_stream: BinaryIO, + ): + self.pages = [] + self.cur_page = [] + self.list_block_stack = [] + self.file_stream = file_stream + self.pptx_obj = Presentation(self.file_stream) + self.pages.append(self.cur_page) + if self.pptx_obj: + self._walk_linear(self.pptx_obj) + if self.pages and self.pages[-1] == []: + self.pages.pop() + + def _walk_linear(self, pptx_obj: presentation.Presentation): + slide_width = int(pptx_obj.slide_width) + slide_height = int(pptx_obj.slide_height) + + # 遍历每一张幻灯片 + for _, slide in enumerate(pptx_obj.slides): + linear_shapes = self._flatten_slide_shapes(slide.shapes) + sortable_shape_entries = [] + tail_blocks = [] + + # 遍历幻灯片中的每一个形状 + for shape_index, shape_entry in enumerate(linear_shapes): + shape_blocks = self._collect_shape_blocks( + shape_entry, + linear_shapes, + shape_index, + slide_width, + slide_height, + ) + if not shape_blocks: + continue + + if shape_entry.bbox is None: + tail_blocks.extend(shape_blocks) + continue + + sortable_shape_entries.append( + { + "bbox": shape_entry.bbox, + "blocks": shape_blocks, + } + ) + + sorted_shape_entries = sort_entries( + sortable_shape_entries, + beta=PPTX_XYCUT_BETA, + density_threshold=PPTX_XYCUT_DENSITY_THRESHOLD, + ) + for entry in sorted_shape_entries: + self.cur_page.extend(entry["blocks"]) + self.cur_page.extend(tail_blocks) + + self._handle_slide_notes(slide) + self._promote_slide_text_blocks_to_titles(self.cur_page) + self._cleanup_slide_text_block_metadata(self.cur_page) + self.cur_page = [] + self.pages.append(self.cur_page) + + def _flatten_slide_shapes( + self, + shapes, + slide_transform: Optional[_SlideTransform] = None, + ) -> list[_FlattenedShape]: + if slide_transform is None: + slide_transform = _SlideTransform() + + linear_shapes: list[_FlattenedShape] = [] + for shape in shapes: + if shape.shape_type == MSO_SHAPE_TYPE.GROUP: + group_transform = self._group_shape_transform(shape) + linear_shapes.extend( + self._flatten_slide_shapes( + shape.shapes, + slide_transform.compose(group_transform), + ) + ) + else: + linear_shapes.append( + _FlattenedShape( + shape=shape, + bbox=slide_transform.apply_bbox(self._shape_bbox(shape)), + ) + ) + return linear_shapes + + def _collect_shape_blocks( + self, + shape_entry: _FlattenedShape, + linear_shapes: list[_FlattenedShape], + shape_index: int, + slide_width: int, + slide_height: int, + ) -> list: + shape = shape_entry.shape + shape_blocks = [] + previous_page = self.cur_page + previous_list_block_stack = self.list_block_stack + self.cur_page = shape_blocks + self.list_block_stack = [] + + try: + if shape.has_table: + self._handle_tables(shape) + + if getattr(shape, "has_chart", False): + self._handle_chart(shape) + + if shape.shape_type == MSO_SHAPE_TYPE.PICTURE: + later_shapes = linear_shapes[shape_index + 1 :] + if not self._should_skip_picture( + shape_entry, + later_shapes, + slide_width, + slide_height, + ): + self._handle_pictures(shape) + + if not hasattr(shape, "text"): + return shape_blocks + if shape.text is None: + return shape_blocks + if len(shape.text.strip()) == 0: + return shape_blocks + if not shape.has_text_frame: + logger.warning("Warning: shape has text but not text_frame") + return shape_blocks + + self._handle_text_elements(shape) + return shape_blocks + finally: + self.cur_page = previous_page + self.list_block_stack = previous_list_block_stack + + @staticmethod + def _shape_bbox(shape) -> Optional[tuple[float, float, float, float]]: + try: + left = float(shape.left) + top = float(shape.top) + width = float(shape.width) + height = float(shape.height) + except Exception: + return None + + if width <= 0 or height <= 0: + return None + + return (left, top, left + width, top + height) + + @staticmethod + def _group_shape_transform(shape) -> _SlideTransform: + group_properties = getattr(shape._element, "grpSpPr", None) + xfrm = ( + getattr(group_properties, "xfrm", None) + if group_properties is not None + else None + ) + if xfrm is None: + return _SlideTransform() + + child_offset = getattr(xfrm, "chOff", None) + child_extent = getattr(xfrm, "chExt", None) + if child_offset is None or child_extent is None: + return _SlideTransform() + + try: + offset_x = float(xfrm.x) + offset_y = float(xfrm.y) + extent_x = float(xfrm.cx) + extent_y = float(xfrm.cy) + child_offset_x = float(child_offset.x) + child_offset_y = float(child_offset.y) + child_extent_x = float(child_extent.cx) + child_extent_y = float(child_extent.cy) + except Exception: + return _SlideTransform() + + if ( + extent_x <= 0 + or extent_y <= 0 + or child_extent_x <= 0 + or child_extent_y <= 0 + ): + return _SlideTransform() + + scale_x = extent_x / child_extent_x + scale_y = extent_y / child_extent_y + return _SlideTransform( + scale_x=scale_x, + scale_y=scale_y, + translate_x=offset_x - child_offset_x * scale_x, + translate_y=offset_y - child_offset_y * scale_y, + ) + + @staticmethod + def _bbox_area(bbox: tuple[float, float, float, float]) -> float: + return max(0.0, bbox[2] - bbox[0]) * max(0.0, bbox[3] - bbox[1]) + + @staticmethod + def _bbox_intersection( + bbox1: tuple[float, float, float, float], + bbox2: tuple[float, float, float, float], + ) -> Optional[tuple[float, float, float, float]]: + x0 = max(bbox1[0], bbox2[0]) + y0 = max(bbox1[1], bbox2[1]) + x1 = min(bbox1[2], bbox2[2]) + y1 = min(bbox1[3], bbox2[3]) + + if x1 <= x0 or y1 <= y0: + return None + + return (x0, y0, x1, y1) + + @classmethod + def _rectangles_union_area(cls, bboxes: list[tuple[float, float, float, float]]) -> float: + if not bboxes: + return 0.0 + + xs = sorted({bbox[0] for bbox in bboxes} | {bbox[2] for bbox in bboxes}) + total_area = 0.0 + + for idx in range(len(xs) - 1): + x_left = xs[idx] + x_right = xs[idx + 1] + if x_right <= x_left: + continue + + y_intervals = [] + for bbox in bboxes: + if bbox[0] < x_right and bbox[2] > x_left: + y_intervals.append((bbox[1], bbox[3])) + + if not y_intervals: + continue + + y_intervals.sort() + merged_height = 0.0 + current_y0, current_y1 = y_intervals[0] + + for y0, y1 in y_intervals[1:]: + if y0 <= current_y1: + current_y1 = max(current_y1, y1) + continue + + merged_height += max(0.0, current_y1 - current_y0) + current_y0, current_y1 = y0, y1 + + merged_height += max(0.0, current_y1 - current_y0) + total_area += (x_right - x_left) * merged_height + + return total_area + + @staticmethod + def _is_nonempty_text_shape(shape) -> bool: + if not getattr(shape, "has_text_frame", False): + return False + + text = getattr(shape, "text", None) + if text is None: + return False + + return len(text.strip()) > 0 + + def _is_small_picture( + self, + picture_bbox: Optional[tuple[float, float, float, float]], + slide_width: int, + slide_height: int, + ) -> bool: + if picture_bbox is None: + return False + + picture_width = picture_bbox[2] - picture_bbox[0] + picture_height = picture_bbox[3] - picture_bbox[1] + + if picture_width <= 0 or picture_height <= 0: + return False + + slide_area = float(slide_width) * float(slide_height) + if slide_area <= 0: + return False + + if picture_width < MIN_PICTURE_DIMENSION_RATIO * float(slide_width): + return True + if picture_height < MIN_PICTURE_DIMENSION_RATIO * float(slide_height): + return True + + picture_area_ratio = (picture_width * picture_height) / slide_area + return picture_area_ratio < MIN_PICTURE_AREA_RATIO + + def _is_background_picture( + self, + picture_entry: _FlattenedShape, + later_shapes: list[_FlattenedShape], + ) -> bool: + picture_bbox = picture_entry.bbox + if picture_bbox is None: + return False + + picture_area = self._bbox_area(picture_bbox) + if picture_area <= 0: + return False + + overlap_bboxes = [] + for later_shape in later_shapes: + if not self._is_nonempty_text_shape(later_shape.shape): + continue + + later_bbox = later_shape.bbox + if later_bbox is None: + continue + + overlap_bbox = self._bbox_intersection(picture_bbox, later_bbox) + if overlap_bbox is not None: + overlap_bboxes.append(overlap_bbox) + + if not overlap_bboxes: + return False + + covered_area = self._rectangles_union_area(overlap_bboxes) + return ( + covered_area / picture_area + >= BACKGROUND_PICTURE_TEXT_COVERAGE_RATIO + ) + + def _should_skip_picture( + self, + picture_entry: _FlattenedShape, + later_shapes: list[_FlattenedShape], + slide_width: int, + slide_height: int, + ) -> bool: + return self._is_small_picture( + picture_entry.bbox, + slide_width, + slide_height, + ) or self._is_background_picture( + picture_entry, + later_shapes, + ) + + def _handle_slide_notes(self, slide) -> None: + if not slide.has_notes_slide: + return + + try: + notes_slide = slide.notes_slide + except Exception as e: + logger.warning(f"Warning: notes slide cannot be loaded: {e}") + return + + def handle_notes_shape(shape) -> None: + if shape.shape_type == MSO_SHAPE_TYPE.GROUP: + for grouped_shape in shape.shapes: + handle_notes_shape(grouped_shape) + return + + if self._should_skip_notes_shape(shape): + return + + for paragraph in shape.text_frame.paragraphs: + note_text = self._normalize_text_block_content( + self._build_paragraph_rich_text(paragraph, shape) + ) + if not note_text: + continue + self.cur_page.append( + { + "type": BlockType.PAGE_FOOTNOTE, + "content": note_text, + } + ) + + for shape in notes_slide.shapes: + handle_notes_shape(shape) + + @staticmethod + def _should_skip_notes_shape(shape) -> bool: + if not getattr(shape, "has_text_frame", False): + return True + + text = getattr(shape, "text", None) + if text is None or len(text.strip()) == 0: + return True + + if not getattr(shape, "is_placeholder", False): + return False + + try: + return shape.placeholder_format.type in IGNORED_NOTES_PLACEHOLDER_TYPES + except Exception: + return False + + def _handle_tables(self, shape): + """将PowerPoint表格转换为HTML格式。 + + Args: + shape: 包含表格的形状对象。 + parent_slide: 父幻灯片组。 + slide_ind: 当前幻灯片索引。 + doc: 文档对象(此实现中未使用)。 + slide_size: 幻灯片尺寸。 + + Returns: + str: 表格的HTML字符串,如果没有表格则返回None。 + """ + if not shape.has_table: + return None + + table = shape.table + table_xml = shape._element + + # 开始构建HTML表格 + html_parts = ['
'] + + # 跟踪已被合并单元格占用的位置 + # 格式: {(row, col): True} + occupied_cells = {} + + for row_idx, row in enumerate(table.rows): + html_parts.append(" ") + + for col_idx, cell in enumerate(row.cells): + # 跳过被合并占用的单元格 + if (row_idx, col_idx) in occupied_cells: + continue + # 获取单元格XML以读取跨度信息 + cell_xml = table_xml.xpath( + f".//a:tbl/a:tr[{row_idx + 1}]/a:tc[{col_idx + 1}]" + ) + + if not cell_xml: + continue + + cell_xml = cell_xml[0] + + # 解析行跨度和列跨度 + row_span = cell_xml.get("rowSpan") + col_span = cell_xml.get("gridSpan") + + row_span = int(row_span) if row_span else 1 + col_span = int(col_span) if col_span else 1 + + # 标记被此单元格占用的位置 + for r in range(row_idx, row_idx + row_span): + for c in range(col_idx, col_idx + col_span): + if (r, c) != (row_idx, col_idx): + occupied_cells[(r, c)] = True + + # 确定标签类型:第一行使用") + + html_parts.append("
,其他使用 + tag = "th" if row_idx == 0 else "td" + + # 构建属性字符串 + attrs = [] + if row_span > 1: + attrs.append(f'rowspan="{row_span}"') + if col_span > 1: + attrs.append(f'colspan="{col_span}"') + + attr_str = " " + " ".join(attrs) if attrs else "" + + # 获取单元格文本内容 + cell_text = cell.text.strip() if cell.text else "" + # 转义HTML特殊字符,防止XSS + cell_text = ( + cell_text.replace("&", "&") + .replace("<", "<") + .replace(">", ">") + ) + + html_parts.append(f" <{tag}{attr_str}>{cell_text}") + + html_parts.append("
") + + self.cur_page.append( + { + "type": BlockType.TABLE, + "content": "\n".join(html_parts), + } + ) + + return None + + def _handle_chart(self, shape) -> None: + try: + chart_workbook = shape.chart.part.chart_workbook + xlsx_part = chart_workbook.xlsx_part + if xlsx_part is None: + logger.warning("Warning: chart workbook part is missing") + return + + chart_html = html_table_from_excel_bytes(xlsx_part.blob) + except Exception as e: + logger.warning(f"Warning: chart workbook cannot be loaded: {e}") + return + + if not chart_html: + return + + self.cur_page.append( + { + "type": BlockType.CHART, + "content": chart_html, + } + ) + + def _handle_pictures(self, shape): + image_data = self._get_shape_image_data(shape) + if image_data is None: + return + + image_bytes, content_type = image_data + + if content_type == "image/svg+xml": + image_block = { + "type": BlockType.IMAGE, + "content": self._bytes_to_data_uri(image_bytes, content_type), + } + self.cur_page.append(image_block) + return + + # 使用PIL打开图像 + try: + pil_image = Image.open(BytesIO(image_bytes)) + + if is_vector_image(pil_image): + img_base64 = serialize_vector_image_with_placeholder(pil_image) + else: + if pil_image.mode != "RGB": + pil_image = pil_image.convert("RGB") + img_base64 = image_to_b64str(pil_image) + image_block = { + "type": BlockType.IMAGE, + "content": img_base64, + } + self.cur_page.append(image_block) + + except (UnidentifiedImageError, OSError) as e: + logger.warning(f"Warning: image cannot be loaded by Pillow: {e}") + return + + @staticmethod + def _bytes_to_data_uri(image_bytes: bytes, content_type: str) -> str: + encoded = base64.b64encode(image_bytes).decode("utf-8") + return f"data:{content_type};base64,{encoded}" + + @staticmethod + def _find_first_embedded_image_rid(shape) -> Optional[str]: + svg_blips = shape._element.findall(f".//{{{SVG_BLIP_NS}}}svgBlip") + for svg_blip in svg_blips: + relationship_id = svg_blip.get(f"{{{RELATIONSHIP_NS}}}embed") + if relationship_id: + return relationship_id + + blips = shape._element.findall(f".//{{{DRAWINGML_NS}}}blip") + for blip in blips: + relationship_id = blip.get(f"{{{RELATIONSHIP_NS}}}embed") + if relationship_id: + return relationship_id + + return None + + def _get_shape_image_data(self, shape) -> Optional[tuple[bytes, Optional[str]]]: + relationship_id = None + if hasattr(shape, "_element"): + relationship_id = self._find_first_embedded_image_rid(shape) + + if relationship_id: + try: + image_part = shape.part.related_part(relationship_id) + image_bytes = image_part.blob + except Exception as e: + logger.warning( + f"Warning: embedded image relation {relationship_id} cannot be loaded: {e}" + ) + else: + return image_bytes, getattr(image_part, "content_type", None) + + try: + image = shape.image + except ValueError as e: + logger.warning(f"Warning: shape image cannot be loaded: {e}") + return None + except AttributeError: + return None + + return image.blob, None + + @staticmethod + def _normalize_xml_toggle_attr(value: Optional[str]) -> Optional[bool]: + if value is None: + return None + + normalized = str(value).strip().lower() + if normalized in {"1", "true", "t", "on"}: + return True + if normalized in {"0", "false", "f", "off", "none"}: + return False + return None + + @classmethod + def _parse_toggle_attr_from_rpr( + cls, + rpr: Optional[etree._Element], + attr_name: str, + ) -> Optional[bool]: + if rpr is None: + return None + return cls._normalize_xml_toggle_attr(rpr.get(attr_name)) + + @classmethod + def _parse_underline_from_rpr( + cls, + rpr: Optional[etree._Element], + ) -> Optional[bool]: + if rpr is None: + return None + + underline = rpr.get("u") + if underline is None: + return None + + normalized = str(underline).strip().lower() + if normalized in {"0", "false", "f", "off", "none"}: + return False + return True + + @classmethod + def _parse_strikethrough_from_rpr( + cls, + rpr: Optional[etree._Element], + ) -> Optional[bool]: + if rpr is None: + return None + + strike = rpr.get("strike") + if strike is None: + return None + + normalized = str(strike).strip().lower() + if normalized in {"0", "false", "f", "off", "none", "nostrike"}: + return False + return True + + def _get_run_rpr( + self, + run, + ) -> Optional[etree._Element]: + if run is None: + return None + + run_xml = getattr(run, "_r", None) + if run_xml is None: + return None + + try: + return run_xml.find("a:rPr", namespaces=self.namespaces) + except Exception: + return None + + def _resolve_effective_run_bool( + self, + run, + paragraph_font_sources: list[etree._Element], + parser, + ) -> bool: + for source in [self._get_run_rpr(run), *paragraph_font_sources]: + resolved = parser(source) + if resolved is not None: + return resolved + return False + + def _resolve_effective_run_italic( + self, + run, + paragraph_font_sources: list[etree._Element], + ) -> bool: + return self._resolve_effective_run_bool( + run, + paragraph_font_sources, + self._parse_italic_from_rpr, + ) + + def _resolve_effective_run_underline( + self, + run, + paragraph_font_sources: list[etree._Element], + ) -> bool: + return self._resolve_effective_run_bool( + run, + paragraph_font_sources, + self._parse_underline_from_rpr, + ) + + def _resolve_effective_run_strikethrough( + self, + run, + paragraph_font_sources: list[etree._Element], + ) -> bool: + return self._resolve_effective_run_bool( + run, + paragraph_font_sources, + self._parse_strikethrough_from_rpr, + ) + + def _get_style_str_from_run( + self, + run, + paragraph_font_sources: list[etree._Element], + ) -> Optional[str]: + """从PPTX run对象提取可序列化的生效字体样式字符串。""" + if run is None: + return None + + styles = [] + if self._resolve_effective_run_bold(run, paragraph_font_sources): + styles.append("bold") + if self._resolve_effective_run_italic(run, paragraph_font_sources): + styles.append("italic") + if self._resolve_effective_run_underline(run, paragraph_font_sources): + styles.append("underline") + if self._resolve_effective_run_strikethrough(run, paragraph_font_sources): + styles.append("strikethrough") + + return ",".join(styles) if styles else None + + @staticmethod + def _format_text_with_hyperlink( + text: str, + hyperlink: Optional[str], + style_str: Optional[str] = None, + ) -> str: + """按Office约定格式输出带样式/超链接的文本片段。""" + if not text: + return "" + + if hyperlink is None or str(hyperlink).strip() in ("", "."): + if style_str: + return f'{text}' + return text + + if style_str: + text_tag = f'{text}' + else: + text_tag = f"{text}" + + return f"{text_tag}{hyperlink}" + + def _resolve_hyperlink_from_run(self, run, shape) -> Optional[str]: + """解析 run 对应的超链接,优先公开 API,回退到 XML + rels。""" + try: + if hasattr(run, "hyperlink") and run.hyperlink is not None: + address = run.hyperlink.address + if address and str(address).strip(): + return str(address).strip() + except Exception: + pass + + try: + rPr = run._r.find("a:rPr", namespaces=self.namespaces) + if rPr is None: + return None + + hlink_click = rPr.find("a:hlinkClick", namespaces=self.namespaces) + if hlink_click is None: + return None + + rid = hlink_click.get( + "{http://schemas.openxmlformats.org/officeDocument/2006/relationships}id" + ) + if not rid: + return None + + rels = shape.part.rels + if rid not in rels: + return None + + rel = rels[rid] + target_ref = getattr(rel, "target_ref", None) + if target_ref and str(target_ref).strip(): + return str(target_ref).strip() + + target_part = getattr(rel, "target_part", None) + if target_part is not None: + partname = getattr(target_part, "partname", None) + if partname and str(partname).strip(): + return str(partname).strip() + except Exception: + return None + + return None + + def _build_paragraph_plain_text(self, paragraph) -> str: + """构建段落纯文本(保留软换行为空格)。""" + p = paragraph._element + text_parts = [] + for node in p.content_children: + if isinstance(node, CT_TextLineBreak): + text_parts.append(" ") + continue + + node_text = getattr(node, "text", None) + if node_text is not None: + text_parts.append(node_text) + + return "".join(text_parts) + + @staticmethod + def _is_math_content_node(node) -> bool: + tag = getattr(node, "tag", None) + return tag in { + f"{{{A14_DRAWING_NS}}}m", + f"{{{OMML_NS}}}oMath", + f"{{{OMML_NS}}}oMathPara", + } + + @staticmethod + def _strip_math_delimiters(math_text: str) -> str: + stripped = math_text.strip() + if ( + stripped.startswith("$$") + and stripped.endswith("$$") + and len(stripped) >= 4 + ): + return stripped[2:-2].strip() + if ( + stripped.startswith("$") + and stripped.endswith("$") + and len(stripped) >= 2 + ): + return stripped[1:-1].strip() + return stripped + + def _convert_math_node_to_latex(self, node) -> Optional[str]: + omath = None + if getattr(node, "tag", None) == f"{{{OMML_NS}}}oMath": + omath = node + else: + omath = node.find(".//m:oMath", namespaces=self.namespaces) + + if omath is not None: + try: + latex = str(oMath2Latex(omath)).strip() + except Exception as exc: + logger.debug(f"Failed to convert PPTX OMML equation to LaTeX: {exc}") + else: + if latex: + return latex + + fallback_text = getattr(node, "text", None) + if isinstance(fallback_text, str): + latex = self._strip_math_delimiters(fallback_text) + if latex: + return latex + + return None + + def _build_paragraph_rich_text(self, paragraph, shape) -> str: + """按 run 维度构建段落富文本,支持样式与超链接标签。""" + paragraph_font_sources = self._get_paragraph_font_sources(shape, paragraph) + run_map = {} + for run in paragraph.runs: + try: + run_map[id(run._r)] = run + except Exception: + continue + + segments = [] + + for node in paragraph._element.content_children: + if isinstance(node, CT_TextLineBreak): + segments.append( + { + "text": " ", + "style_str": None, + "hyperlink": None, + } + ) + continue + + if self._is_math_content_node(node): + latex = self._convert_math_node_to_latex(node) + if latex: + segments.append( + { + "text": self.equation_bookends.format(EQ=latex), + "style_str": None, + "hyperlink": None, + } + ) + continue + + node_text = getattr(node, "text", None) + if node_text is None: + continue + if node_text == "": + continue + + run = run_map.get(id(node)) + if run is None: + segments.append( + { + "text": node_text, + "style_str": None, + "hyperlink": None, + } + ) + continue + + segments.append( + { + "text": node_text, + "style_str": self._get_style_str_from_run( + run, + paragraph_font_sources, + ), + "hyperlink": self._resolve_hyperlink_from_run(run, shape), + } + ) + + segments = self._trim_rich_text_segments(segments) + if not segments: + return "" + + merged_segments = [] + for segment in segments: + if ( + merged_segments + and merged_segments[-1]["hyperlink"] is None + and segment["hyperlink"] is None + and merged_segments[-1]["style_str"] == segment["style_str"] + ): + merged_segments[-1]["text"] += segment["text"] + else: + merged_segments.append(segment) + + return "".join( + self._format_text_with_hyperlink( + segment["text"], + segment["hyperlink"], + segment["style_str"], + ) + for segment in merged_segments + ) + + @staticmethod + def _trim_rich_text_segments(segments: list[dict]) -> list[dict]: + trimmed_segments = [dict(segment) for segment in segments if segment.get("text") is not None] + if not trimmed_segments: + return [] + + start_idx = 0 + while start_idx < len(trimmed_segments): + normalized_text = trimmed_segments[start_idx]["text"].lstrip() + if normalized_text: + trimmed_segments[start_idx]["text"] = normalized_text + break + start_idx += 1 + + if start_idx == len(trimmed_segments): + return [] + + trimmed_segments = trimmed_segments[start_idx:] + end_idx = len(trimmed_segments) - 1 + while end_idx >= 0: + normalized_text = trimmed_segments[end_idx]["text"].rstrip() + if normalized_text: + trimmed_segments[end_idx]["text"] = normalized_text + break + end_idx -= 1 + + if end_idx < 0: + return [] + + return trimmed_segments[:end_idx + 1] + + @staticmethod + def _normalize_text_block_content(content: str) -> str: + """Normalize extracted text-block content without changing internal spacing.""" + if not content: + return "" + return content.strip() + + @staticmethod + def _parse_font_size_pt_from_rpr( + rpr: Optional[etree._Element], + ) -> Optional[float]: + if rpr is None: + return None + + size = rpr.get("sz") + if size is None: + return None + + try: + return round(int(size) / 100, 1) + except (TypeError, ValueError): + return None + + @staticmethod + def _parse_bold_from_rpr( + rpr: Optional[etree._Element], + ) -> Optional[bool]: + return PptxConverter._parse_toggle_attr_from_rpr(rpr, "b") + + @staticmethod + def _parse_italic_from_rpr( + rpr: Optional[etree._Element], + ) -> Optional[bool]: + return PptxConverter._parse_toggle_attr_from_rpr(rpr, "i") + + def _find_def_rpr( + self, + paragraph_properties: Optional[etree._Element], + ) -> Optional[etree._Element]: + if paragraph_properties is None: + return None + return paragraph_properties.find("a:defRPr", namespaces=self.namespaces) + + def _find_end_para_rpr( + self, + paragraph: Optional[etree._Element], + ) -> Optional[etree._Element]: + if paragraph is None: + return None + return paragraph.find("a:endParaRPr", namespaces=self.namespaces) + + def _get_font_sources_from_paragraph( + self, + paragraph: Optional[etree._Element], + ) -> list[etree._Element]: + if paragraph is None: + return [] + + sources = [] + paragraph_properties = paragraph.find("a:pPr", namespaces=self.namespaces) + paragraph_def_rpr = self._find_def_rpr(paragraph_properties) + if paragraph_def_rpr is not None: + sources.append(paragraph_def_rpr) + + end_para_rpr = self._find_end_para_rpr(paragraph) + if end_para_rpr is not None: + sources.append(end_para_rpr) + + return sources + + def _get_font_sources_from_text_body( + self, + tx_body: Optional[etree._Element], + level: int, + ) -> list[etree._Element]: + if tx_body is None: + return [] + + lst_style = tx_body.find("a:lstStyle", namespaces=self.namespaces) + if lst_style is None: + return [] + + sources = [] + level_properties = self._find_level_properties_in_list_style( + lst_style, + level, + ) + level_def_rpr = self._find_def_rpr(level_properties) + if level_def_rpr is not None: + sources.append(level_def_rpr) + + default_properties = lst_style.find("a:defPPr", namespaces=self.namespaces) + default_def_rpr = self._find_def_rpr(default_properties) + if default_def_rpr is not None: + sources.append(default_def_rpr) + + return sources + + def _get_font_sources_from_text_style_bucket( + self, + style_bucket: Optional[etree._Element], + level: int, + ) -> list[etree._Element]: + if style_bucket is None: + return [] + + sources = [] + level_properties = style_bucket.find( + f"a:lvl{level + 1}pPr", + namespaces=self.namespaces, + ) + level_def_rpr = self._find_def_rpr(level_properties) + if level_def_rpr is not None: + sources.append(level_def_rpr) + + default_properties = style_bucket.find( + "a:defPPr", + namespaces=self.namespaces, + ) + default_def_rpr = self._find_def_rpr(default_properties) + if default_def_rpr is not None: + sources.append(default_def_rpr) + + return sources + + def _resolve_layout_placeholder(self, shape): + if not getattr(shape, "is_placeholder", False): + return None + + try: + idx = shape.placeholder_format.idx + layout = shape.part.slide.slide_layout + layout_ph = layout.placeholders.get(idx) + except Exception: + layout_ph = None + + if layout_ph is not None: + return layout_ph + + try: + placeholder_type = shape.placeholder_format.type + layout = shape.part.slide.slide_layout + for candidate in layout.placeholders: + if candidate.placeholder_format.type == placeholder_type: + return candidate + except Exception: + return None + + return None + + def _get_paragraph_font_sources(self, shape, paragraph) -> list[etree._Element]: + level = self._get_paragraph_level(paragraph._element) + sources = self._get_font_sources_from_paragraph(paragraph._element) + + tx_body = shape._element.find(".//p:txBody", namespaces=self.namespaces) + sources.extend(self._get_font_sources_from_text_body(tx_body, level)) + + if getattr(shape, "is_placeholder", False): + layout_placeholder = self._resolve_layout_placeholder(shape) + if layout_placeholder is not None: + layout_tx_body = layout_placeholder._element.find( + ".//p:txBody", + namespaces=self.namespaces, + ) + sources.extend( + self._get_font_sources_from_text_body(layout_tx_body, level) + ) + + try: + placeholder_type = shape.placeholder_format.type + slide_master = shape.part.slide.slide_layout.slide_master + except Exception: + return sources + + style_bucket = self._get_master_text_style_node( + slide_master, + placeholder_type, + ) + sources.extend( + self._get_font_sources_from_text_style_bucket( + style_bucket, + level, + ) + ) + + return sources + + def _resolve_effective_run_font_size_pt( + self, + run, + paragraph_font_sources: list[etree._Element], + ) -> Optional[float]: + for source in [self._get_run_rpr(run), *paragraph_font_sources]: + font_size_pt = self._parse_font_size_pt_from_rpr(source) + if font_size_pt is not None: + return font_size_pt + return None + + def _resolve_effective_run_bold( + self, + run, + paragraph_font_sources: list[etree._Element], + ) -> bool: + return self._resolve_effective_run_bool( + run, + paragraph_font_sources, + self._parse_bold_from_rpr, + ) + + def _build_paragraph_style_profile(self, shape, paragraph) -> dict[str, Optional[float] | bool]: + paragraph_font_sources = self._get_paragraph_font_sources(shape, paragraph) + effective_font_size_pt = None + all_bold = True + has_non_whitespace_run = False + + for run in paragraph.runs: + run_text = getattr(run, "text", None) + if run_text is None or not run_text.strip(): + continue + + has_non_whitespace_run = True + + run_font_size_pt = self._resolve_effective_run_font_size_pt( + run, + paragraph_font_sources, + ) + if run_font_size_pt is not None: + if effective_font_size_pt is None: + effective_font_size_pt = run_font_size_pt + else: + effective_font_size_pt = max( + effective_font_size_pt, + run_font_size_pt, + ) + + if ( + self._resolve_effective_run_bold(run, paragraph_font_sources) + is not True + ): + all_bold = False + + return { + "font_size_pt": effective_font_size_pt, + "all_bold": has_non_whitespace_run and all_bold, + } + + def _get_paragraph_list_info(self, shape, paragraph) -> dict: + """基于段落->文本框->布局->母版继承链解析段落列表属性。""" + marker_info = self._get_effective_list_marker(shape, paragraph) + p = paragraph._element + level = marker_info.get("level", self._get_paragraph_level(p)) + kind = marker_info.get("kind") + + if marker_info.get("is_list") is False: + return { + "is_list": False, + "attribute": "unordered", + "level": level, + "kind": kind, + } + + if kind == "buAutoNum": + return { + "is_list": True, + "attribute": "ordered", + "level": level, + "kind": kind, + } + + if kind in ("buChar", "buBlip"): + return { + "is_list": True, + "attribute": "unordered", + "level": level, + "kind": kind, + } + + if marker_info.get("is_list") is True: + return { + "is_list": True, + "attribute": "unordered", + "level": level, + "kind": kind, + } + + # 兜底:段落级标记 + 缩进层级判断 + if p.find(".//a:buAutoNum", namespaces={"a": self.namespaces["a"]}) is not None: + return { + "is_list": True, + "attribute": "ordered", + "level": paragraph.level, + "kind": "buAutoNum", + } + + if p.find(".//a:buChar", namespaces={"a": self.namespaces["a"]}) is not None: + return { + "is_list": True, + "attribute": "unordered", + "level": paragraph.level, + "kind": "buChar", + } + + if paragraph.level > 0: + return { + "is_list": True, + "attribute": "unordered", + "level": paragraph.level, + "kind": None, + } + + return { + "is_list": False, + "attribute": "unordered", + "level": 0, + "kind": None, + } + + def _ensure_list_level(self, list_stack: list, level: int, attribute: str): + """将列表栈调整到目标层级,并在必要时创建同级/子级列表块。""" + while len(list_stack) > level + 1: + list_stack.pop() + + if len(list_stack) == level + 1 and list_stack[level].get("attribute") != attribute: + list_stack.pop() + + while len(list_stack) < level + 1: + ilevel = len(list_stack) + new_list_block = { + "type": BlockType.LIST, + "attribute": attribute, + "ilevel": ilevel, + "content": [], + } + + if list_stack: + list_stack[-1]["content"].append(new_list_block) + else: + self.cur_page.append(new_list_block) + + list_stack.append(new_list_block) + + def _append_list_item( + self, + list_stack: list, + level: int, + attribute: str, + content: str, + ): + """向目标层级列表追加文本项。""" + self._ensure_list_level(list_stack, level, attribute) + list_stack[-1]["content"].append( + { + "type": BlockType.TEXT, + "content": content, + } + ) + + @staticmethod + def _most_common_size(font_sizes: list[float]) -> Optional[float]: + if not font_sizes: + return None + + counts = Counter(font_sizes) + return min( + counts.items(), + key=lambda item: (-item[1], item[0]), + )[0] + + def _promote_slide_text_blocks_to_titles(self, slide_blocks: list[dict]) -> None: + body_font_size_pt = self._most_common_size( + [ + block[_EFFECTIVE_FONT_SIZE_KEY] + for block in slide_blocks + if ( + block.get("type") == BlockType.TEXT + and block.get(_EFFECTIVE_FONT_SIZE_KEY) is not None + and not block.get(_EFFECTIVE_ALL_BOLD_KEY, False) + ) + ] + ) + + self._promote_level2_text_blocks(slide_blocks, body_font_size_pt) + self._promote_level3_text_blocks(slide_blocks, body_font_size_pt) + + def _promote_level2_text_blocks( + self, + slide_blocks: list[dict], + body_font_size_pt: Optional[float], + ) -> None: + bold_text_blocks = [ + block + for block in slide_blocks + if ( + block.get("type") == BlockType.TEXT + and block.get(_EFFECTIVE_ALL_BOLD_KEY, False) + and block.get(_EFFECTIVE_FONT_SIZE_KEY) is not None + ) + ] + if not bold_text_blocks: + return + + bold_font_sizes = sorted( + { + block[_EFFECTIVE_FONT_SIZE_KEY] + for block in bold_text_blocks + }, + reverse=True, + ) + level2_font_size_pt = bold_font_sizes[0] + level2_candidates = [ + block + for block in bold_text_blocks + if block[_EFFECTIVE_FONT_SIZE_KEY] == level2_font_size_pt + ] + + if len(level2_candidates) != 1: + return + + if ( + body_font_size_pt is not None + and level2_font_size_pt < body_font_size_pt + 4 + ): + return + + if ( + len(bold_font_sizes) > 1 + and level2_font_size_pt < bold_font_sizes[1] + 2 + ): + return + + level2_candidates[0]["type"] = BlockType.TITLE + level2_candidates[0]["level"] = 2 + + def _promote_level3_text_blocks( + self, + slide_blocks: list[dict], + body_font_size_pt: Optional[float], + ) -> None: + if body_font_size_pt is None: + return + + level2_font_sizes = sorted( + { + block[_EFFECTIVE_FONT_SIZE_KEY] + for block in slide_blocks + if ( + block.get("type") == BlockType.TITLE + and block.get("level") == 2 + and block.get(_EFFECTIVE_FONT_SIZE_KEY) is not None + ) + }, + reverse=True, + ) + if not level2_font_sizes: + return + + level2_font_size_pt = level2_font_sizes[0] + level3_font_sizes = sorted( + { + block[_EFFECTIVE_FONT_SIZE_KEY] + for block in slide_blocks + if ( + block.get("type") == BlockType.TEXT + and block.get(_EFFECTIVE_ALL_BOLD_KEY, False) + and block.get(_EFFECTIVE_FONT_SIZE_KEY) is not None + and block[_EFFECTIVE_FONT_SIZE_KEY] < level2_font_size_pt + ) + }, + reverse=True, + ) + if not level3_font_sizes: + return + + level3_font_size_pt = level3_font_sizes[0] + if level3_font_size_pt < body_font_size_pt + 2: + return + if level2_font_size_pt < level3_font_size_pt + 2: + return + + for block in slide_blocks: + if ( + block.get("type") == BlockType.TEXT + and block.get(_EFFECTIVE_ALL_BOLD_KEY, False) + and block.get(_EFFECTIVE_FONT_SIZE_KEY) == level3_font_size_pt + ): + block["type"] = BlockType.TITLE + block["level"] = 3 + + @staticmethod + def _cleanup_slide_text_block_metadata(slide_blocks: list[dict]) -> None: + for block in slide_blocks: + block.pop(_EFFECTIVE_FONT_SIZE_KEY, None) + block.pop(_EFFECTIVE_ALL_BOLD_KEY, None) + + def _handle_text_elements(self, shape): + self.list_block_stack = [] + + # 遍历段落以构建文本 + for paragraph in shape.text_frame.paragraphs: + list_info = self._get_paragraph_list_info(shape, paragraph) + + if list_info["is_list"]: + rich_text = self._normalize_text_block_content( + self._build_paragraph_rich_text(paragraph, shape) + ) + if rich_text: + self._append_list_item( + self.list_block_stack, + list_info["level"], + list_info["attribute"], + rich_text, + ) + continue + + # 段落不是列表项,关闭当前 shape 的列表上下文 + self.list_block_stack.clear() + + p_text = self._normalize_text_block_content( + self._build_paragraph_rich_text(paragraph, shape) + ) + if not p_text: + continue + + style_profile = self._build_paragraph_style_profile(shape, paragraph) + + block = { + "type": BlockType.TEXT, + "content": p_text, + _EFFECTIVE_FONT_SIZE_KEY: style_profile["font_size_pt"], + _EFFECTIVE_ALL_BOLD_KEY: style_profile["all_bold"], + } + if shape.is_placeholder: + placeholder_type = shape.placeholder_format.type + if placeholder_type in [ + PP_PLACEHOLDER.CENTER_TITLE, + PP_PLACEHOLDER.TITLE, + PP_PLACEHOLDER.SUBTITLE, + ]: + block["type"] = BlockType.TITLE + block["level"] = 2 + + self.cur_page.append(block) + + # shape 结束后清理列表上下文,避免跨 shape 污染 + self.list_block_stack.clear() + return + + def _is_list_item(self, paragraph) -> tuple[bool, str]: + """ + 判断段落是否应被视为列表项。 + 该方法首先尝试通过拥有该段落的形状来解析列表样式信息。 + 如果无法做到,则回退到基于段落属性和级别的更简单检查。 + Args: + paragraph: 需要检查的'python-pptx'段落对象。 + + Returns: + 返回一个2元组(`is_list`, `bullet_type`),其中: + `is_list` - 若段落被视为列表项,为True,否则为False; + `bullet_type` - 为以下之一:'Bullet'(项目符号)、'Numbered'(编号)或'None', + 描述列表标记类型。 + """ + # 尝试从段落获取形状(包含该段落的对象),如果可能的话 + shape = None + try: + # 这个路径适用于python-pptx段落对象 + # 首先获取文本框架(段落的父对象) + text_frame = paragraph._parent + # 然后获取形状(文本框架的父对象) + shape = text_frame._parent + except AttributeError: + pass + + if shape is not None: + list_info = self._get_paragraph_list_info(shape, paragraph) + if not list_info["is_list"]: + return (False, "None") + + if list_info["attribute"] == "ordered": + return (True, "Numbered") + return (True, "Bullet") + + # 如果无法获取形状,使用更简单的检查方式 + p = paragraph._element + if p.find(".//a:buChar", namespaces={"a": self.namespaces["a"]}) is not None: + return (True, "Bullet") + elif ( + p.find(".//a:buAutoNum", namespaces={"a": self.namespaces["a"]}) is not None + ): + return (True, "Numbered") + elif paragraph.level > 0: + # 很可能是子列表项(缩进表示嵌套) + return (True, "None") + else: + return (False, "None") + + def _get_effective_list_marker(self, shape, paragraph) -> dict: + """ + 返回描述段落的有效列表标记的字典。 + 列表标记信息可以来自多个来源:直接段落属性、形状级别的列表样式、 + 布局占位符或主幻灯片文本样式。此辅助方法解析所有这些层,并返回 + 有效标记的统一视图。 + + Args: + shape: 包含段落的形状对象。 + paragraph: 需要检查的'python-pptx'段落对象。 + + Returns: + 返回列表标记信息的字典,其中: + `is_list` - True/False/None,表示这是否是列表项; + `kind` - 为以下之一:`buChar`、`buAutoNum`、`buBlip`、`buNone`或None,描述标记类型; + `detail` - 项目符号字符或编号类型字符串,或如果不适用则为None; + `level` - 段落级别,范围在(0, 8)内。 + """ + p = paragraph._element + lvl = self._get_paragraph_level(p) + + # 1) 直接段落属性 + pPr = p.find("a:pPr", namespaces=self.namespaces) + is_list, kind, detail = self._parse_bullet_from_paragraph_properties(pPr) + if is_list is not None: + return { + "is_list": is_list, + "kind": kind, + "detail": detail, + "level": lvl, + } + + # 2) 形状级别的列表样式(txBody/a:lstStyle) + txBody = shape._element.find(".//p:txBody", namespaces=self.namespaces) + is_list, kind, detail = self._parse_bullet_from_text_body_list_style( + txBody, lvl + ) + if is_list is not None: + return { + "is_list": is_list, + "kind": kind, + "detail": detail, + "level": lvl, + } + + # 3) 布局占位符列表样式(如果这是一个占位符) + layout_result = None + if shape.is_placeholder: + layout_ph = self._resolve_layout_placeholder(shape) + + if layout_ph is not None: + layout_tx = layout_ph._element.find( + ".//p:txBody", namespaces=self.namespaces + ) + is_list, kind, detail = self._parse_bullet_from_text_body_list_style( + layout_tx, lvl + ) + + # 仅在is_list明确为True/False时使用布局结果 + if is_list is not None: + layout_result = { + "is_list": is_list, + "kind": kind, + "detail": detail, + "level": lvl, + } + + # 4) 解析主文本样式 + ph_type = shape.placeholder_format.type + master = shape.part.slide.slide_layout.slide_master + is_list, kind, detail = self._parse_bullet_from_master_text_styles( + master, ph_type, lvl + ) + + # 检查主样式是否有标记信息 + if kind in ("buChar", "buAutoNum", "buBlip"): + return { + "is_list": True, + "kind": kind, + "detail": detail, + "level": lvl, + } + elif is_list is not None: + return { + "is_list": is_list, + "kind": kind, + "detail": detail, + "level": lvl, + } + + # If layout has explicit is_list value but master didn't override it, use layout + # 如果布局有显式的is_list值但主样式没有覆盖它,则使用布局结果 + if layout_result is not None: + return layout_result + + return { + "is_list": None, + "kind": None, + "detail": None, + "level": lvl, + } + + def _get_paragraph_level(self, paragraph) -> int: + """ + 返回段落XML元素的缩进级别。 + 段落可以有不同的缩进级别(0-8)。级别存储在段落属性XML元素的'lvl'属性中。 + + Args: + paragraph: 需要提取级别的段落XML元素。 + + Returns: + 返回范围在(0, 8)内的段落级别。当找不到'a:pPr'元素、没有'lvl'属性 + 或'lvl'属性值无效时,返回0。 + """ + pPr = paragraph.find("a:pPr", namespaces=self.namespaces) + if pPr is not None and "lvl" in pPr.attrib: + try: + return int(pPr.get("lvl")) + except ValueError: + pass + return 0 + + def _parse_bullet_from_paragraph_properties( + self, pPr + ) -> tuple[Optional[bool], Optional[str], Optional[str]]: + """ + 从段落属性节点解析项目符号或编号信息。 + 检查'a:pPr'或'a:lvlXpPr'元素,并提取关于项目符号字符、自动编号、 + 图片项目符号或显式'buNone'标记的信息。 + + Args: + pPr: 段落属性XML元素('a:pPr'或'a:lvlXpPr')。 + + Returns: + 返回一个3元组(`is_list`, `kind`, `detail`),其中: + `is_list` - 为True/False/None,表示这是否是列表项; + `kind` - 为以下之一:`buChar`(项目符号字符)、`buAutoNum`(自动编号)、 + `buBlip`(图片项目符号)、`buNone`(无标记)或None,描述标记类型; + `detail` - 项目符号字符、编号类型字符串,或如果不适用则为None。 + """ + if pPr is None: + return (None, None, None) + + # 显式指定无项目符号 + if pPr.find("a:buNone", namespaces=self.namespaces) is not None: + return (False, "buNone", None) + + # 项目符号字符 + buChar = pPr.find("a:buChar", namespaces=self.namespaces) + if buChar is not None: + return (True, "buChar", buChar.get("char")) + + # 自动编号 + buAuto = pPr.find("a:buAutoNum", namespaces=self.namespaces) + if buAuto is not None: + return (True, "buAutoNum", buAuto.get("type")) + + # 图片项目符号 + buBlip = pPr.find("a:buBlip", namespaces=self.namespaces) + if buBlip is not None: + return (True, "buBlip", "image") + + return (None, None, None) + + def _parse_bullet_from_text_body_list_style( + self, txBody, lvl: int + ) -> tuple[Optional[bool], Optional[str], Optional[str]]: + """ + 从文本体的列表样式中解析项目符号或编号信息。 + 在'txBody'下搜索'a:lstStyle/a:lvl{lvl+1}pPr',并使用级别特定的段落属性 + 推断项目符号或编号信息。 + + Args: + txBody: 文本体XML元素'p:txBody'。 + lvl: 段落级别,范围在(0, 8)内。 + Returns: + 返回一个3元组(`is_list`, `kind`, `detail`),其中: + `is_list` - 为True/False/None,表示这是否是列表项; + `kind` - 为以下之一:`buChar`、`buAutoNum`、`buBlip`、`buNone`或None; + `detail` - 项目符号字符、编号类型字符串,或如果不适用则为None。 + """ + if txBody is None: + return (None, None, None) + lstStyle = txBody.find("a:lstStyle", namespaces=self.namespaces) + lvl_pPr = self._find_level_properties_in_list_style(lstStyle, lvl) + is_list, kind, detail = self._parse_bullet_from_paragraph_properties(lvl_pPr) + return (is_list, kind, detail) + + def _parse_bullet_from_master_text_styles( + self, slide_master, placeholder_type, lvl: int + ) -> tuple[Optional[bool], Optional[str], Optional[str]]: + """ + 从主幻灯片的文本样式中解析项目符号或编号信息。 + 在主幻灯片的'p:txStyles'中查找相应的样式bucket('titleStyle'、'bodyStyle'或 + 'otherStyle'),并为给定的级别提取项目符号或编号信息。 + + Args: + slide_master: 与当前幻灯片关联的主幻灯片对象。 + placeholder_type: 来自'PP_PLACEHOLDER'的占位符类型枚举。 + lvl: 段落级别,范围在(0, 8)内。 + + Returns: + 返回一个3元组(`is_list`, `kind`, `detail`),其中: + `is_list` - 为True/False/None,表示这是否是列表项; + `kind` - 为以下之一:`buChar`、`buAutoNum`、`buBlip`、`buNone`或None; + `detail` - 项目符号字符、编号类型字符串,或如果不适用则为None。 + """ + style = self._get_master_text_style_node(slide_master, placeholder_type) + if style is None: + return (None, None, None) + + lvl_pPr = style.find(f".//a:lvl{lvl + 1}pPr", namespaces=self.namespaces) + is_list, kind, detail = self._parse_bullet_from_paragraph_properties(lvl_pPr) + return (is_list, kind, detail) + + def _find_level_properties_in_list_style(self, lstStyle, lvl: int): + """Find the level-specific paragraph properties node from a list style. + 从列表样式中查找指定级别的段落属性节点。 + + This looks for an `a:lvl{lvl+1}pPr` node inside an `a:lstStyle` element, where + 在'a:lstStyle'元素内查找'a:lvl{lvl+1}pPr'节点,其中'a:lvl1pPr'对应级别0, + `a:lvl1pPr` corresponds to level 0, `a:lvl2pPr` to level 1, and so on. + 'a:lvl2pPr'对应级别1,依此类推。 + + Args: + lstStyle: List style XML element `a:lstStyle`. + lstStyle: 列表样式XML元素'a:lstStyle'。 + lvl: Paragraph level in the range (0, 8). + lvl: 段落级别,范围在(0, 8)内。 + + Returns: + Matching `a:lvl{lvl+1}pPr` XML element, or None if no matching element is + 匹配的'a:lvl{lvl+1}pPr'XML元素,如果未找到匹配元素则返回None。 + found. + """ + if lstStyle is None: + return None + tag = f"a:lvl{lvl + 1}pPr" + return lstStyle.find(tag, namespaces=self.namespaces) + + def _get_master_text_style_node( + self, slide_master, placeholder_type + ) -> Optional[etree._Element]: + """ + 获取占位符的相应主文本样式节点。 + 大多数内容占位符(BODY/OBJECT)使用'p:bodyStyle',而标题使用'p:titleStyle'。 + 所有其他占位符默认使用'p:otherStyle'。 + + Args: + slide_master: 与当前幻灯片关联的主幻灯片对象。 + placeholder_type: 来自'PP_PLACEHOLDER'的占位符类型枚举。 + + Returns: + 从主幻灯片的'p:txStyles'中匹配的样式节点('p:bodyStyle'、'p:titleStyle'或'p:otherStyle'),或当未定义样式时返回None。 + """ + txStyles = slide_master._element.find( + ".//p:txStyles", namespaces=self.namespaces + ) + if txStyles is None: + return None + + if placeholder_type in (PP_PLACEHOLDER.BODY, PP_PLACEHOLDER.OBJECT): + return txStyles.find("p:bodyStyle", namespaces=self.namespaces) + + if placeholder_type in ( + PP_PLACEHOLDER.TITLE, + PP_PLACEHOLDER.CENTER_TITLE, + PP_PLACEHOLDER.SUBTITLE, + ): + return txStyles.find("p:titleStyle", namespaces=self.namespaces) + + return txStyles.find("p:otherStyle", namespaces=self.namespaces) diff --git a/mineru/model/pptx/xycut_pp_sorter.py b/mineru/model/pptx/xycut_pp_sorter.py new file mode 100644 index 000000000..9e5464c34 --- /dev/null +++ b/mineru/model/pptx/xycut_pp_sorter.py @@ -0,0 +1,414 @@ +# Copyright (c) Opendatalab. All rights reserved. +from dataclasses import dataclass +from typing import Any, Final, Sequence + + +""" + * XY-Cut++ algorithm for reading order detection based on arXiv:2504.10258. + *

+ * An enhanced XY-Cut implementation that handles: + *

    + *
  • Cross-layout elements (headers, footers spanning multiple columns)
  • + *
  • Adaptive axis selection based on density ratios
  • + *
  • L-shaped region handling
  • + *
+ *

+ * This is a simplified geometric implementation without semantic type priorities. + *

+ * Algorithm overview: + *

    + *
  1. Pre-mask: Identify cross-layout elements (width > beta * maxWidth, overlaps >= 2)
  2. + *
  3. Compute density ratio to determine split direction preference
  4. + *
  5. Recursive segmentation with adaptive XY/YX-Cut
  6. + *
  7. Merge cross-layout elements at appropriate positions
  8. + *
+""" + + +DEFAULT_BETA: Final = 2.0 +DEFAULT_DENSITY_THRESHOLD: Final = 0.9 +OVERLAP_THRESHOLD: Final = 0.1 +MIN_OVERLAP_COUNT: Final = 2 +MIN_GAP_THRESHOLD: Final = 5.0 +NARROW_ELEMENT_WIDTH_RATIO: Final = 0.1 + + +@dataclass +class _CutInfo: + position: float + gap: float + + +@dataclass +class _SortableEntry: + index: int + payload: dict[str, Any] + bbox: tuple[float, float, float, float] + + @property + def left(self) -> float: + return self.bbox[0] + + @property + def top(self) -> float: + return self.bbox[1] + + @property + def right(self) -> float: + return self.bbox[2] + + @property + def bottom(self) -> float: + return self.bbox[3] + + @property + def width(self) -> float: + return self.right - self.left + + @property + def height(self) -> float: + return self.bottom - self.top + + @property + def area(self) -> float: + return self.width * self.height + + @property + def center_x(self) -> float: + return (self.left + self.right) / 2.0 + + @property + def center_y(self) -> float: + return (self.top + self.bottom) / 2.0 + + +def sort_entries( + entries: Sequence[dict[str, Any]], + *, + beta: float = DEFAULT_BETA, + density_threshold: float = DEFAULT_DENSITY_THRESHOLD, +) -> list[dict[str, Any]]: + if len(entries) <= 1: + return list(entries) + + valid_entries = _build_sortable_entries(entries) + if len(valid_entries) <= 1: + return [entry.payload for entry in valid_entries] + + cross_layout_entries = _identify_cross_layout_elements(valid_entries, beta) + cross_layout_ids = {entry.index for entry in cross_layout_entries} + remaining_entries = [ + entry for entry in valid_entries if entry.index not in cross_layout_ids + ] + + if not remaining_entries: + return [entry.payload for entry in _sort_by_y_then_x(valid_entries)] + + density_ratio = _compute_density_ratio(remaining_entries) + prefer_horizontal_first = density_ratio > density_threshold + sorted_main = _recursive_segment(remaining_entries, prefer_horizontal_first) + merged_entries = _merge_cross_layout_elements(sorted_main, cross_layout_entries) + return [entry.payload for entry in merged_entries] + + +def _build_sortable_entries( + entries: Sequence[dict[str, Any]], +) -> list[_SortableEntry]: + sortable_entries: list[_SortableEntry] = [] + for index, entry in enumerate(entries): + bbox = _normalize_bbox(entry.get("bbox")) + if bbox is None: + continue + sortable_entries.append( + _SortableEntry( + index=index, + payload=entry, + bbox=bbox, + ) + ) + return sortable_entries + + +def _normalize_bbox( + bbox: Any, +) -> tuple[float, float, float, float] | None: + if not isinstance(bbox, (list, tuple)) or len(bbox) != 4: + return None + + try: + x0, y0, x1, y1 = (float(value) for value in bbox) + except (TypeError, ValueError): + return None + + if x1 <= x0 or y1 <= y0: + return None + + return (x0, y0, x1, y1) + + +def _identify_cross_layout_elements( + entries: Sequence[_SortableEntry], beta: float +) -> list[_SortableEntry]: + if len(entries) < 3: + return [] + + max_width = max(entry.width for entry in entries) + threshold = beta * max_width + + cross_layout_entries = [] + for entry in entries: + if entry.width < threshold: + continue + if _has_minimum_overlaps(entry, entries, MIN_OVERLAP_COUNT): + cross_layout_entries.append(entry) + return cross_layout_entries + + +def _has_minimum_overlaps( + entry: _SortableEntry, + entries: Sequence[_SortableEntry], + min_count: int, +) -> bool: + overlap_count = 0 + for other in entries: + if other.index == entry.index: + continue + overlap_ratio = _calculate_horizontal_overlap_ratio(entry, other) + if overlap_ratio < OVERLAP_THRESHOLD: + continue + overlap_count += 1 + if overlap_count >= min_count: + return True + return False + + +def _calculate_horizontal_overlap_ratio( + entry1: _SortableEntry, + entry2: _SortableEntry, +) -> float: + overlap_left = max(entry1.left, entry2.left) + overlap_right = min(entry1.right, entry2.right) + overlap_width = max(0.0, overlap_right - overlap_left) + if overlap_width <= 0: + return 0.0 + + smaller_width = min(entry1.width, entry2.width) + if smaller_width <= 0: + return 0.0 + + return overlap_width / smaller_width + + +def _compute_density_ratio(entries: Sequence[_SortableEntry]) -> float: + if not entries: + return 1.0 + + region = _calculate_bounding_region(entries) + if region is None: + return 1.0 + + region_area = (region[2] - region[0]) * (region[3] - region[1]) + if region_area <= 0: + return 1.0 + + content_area = sum(entry.area for entry in entries) + return min(1.0, content_area / region_area) + + +def _calculate_bounding_region( + entries: Sequence[_SortableEntry], +) -> tuple[float, float, float, float] | None: + if not entries: + return None + + left = min(entry.left for entry in entries) + top = min(entry.top for entry in entries) + right = max(entry.right for entry in entries) + bottom = max(entry.bottom for entry in entries) + if right <= left or bottom <= top: + return None + return (left, top, right, bottom) + + +def _recursive_segment( + entries: Sequence[_SortableEntry], + prefer_horizontal_first: bool, +) -> list[_SortableEntry]: + if len(entries) <= 1: + return list(entries) + + horizontal_cut = _find_best_horizontal_cut_with_projection(entries) + vertical_cut = _find_best_vertical_cut_with_projection(entries) + + has_valid_horizontal_cut = horizontal_cut.gap >= MIN_GAP_THRESHOLD + has_valid_vertical_cut = vertical_cut.gap >= MIN_GAP_THRESHOLD + + if has_valid_horizontal_cut and has_valid_vertical_cut: + use_horizontal_cut = horizontal_cut.gap > vertical_cut.gap + elif has_valid_horizontal_cut: + use_horizontal_cut = True + elif has_valid_vertical_cut: + use_horizontal_cut = False + else: + return _sort_by_y_then_x(entries) + + if use_horizontal_cut: + groups = _split_by_horizontal_cut(entries, horizontal_cut.position) + else: + groups = _split_by_vertical_cut(entries, vertical_cut.position) + + if len(groups) <= 1: + return _sort_by_y_then_x(entries) + + result: list[_SortableEntry] = [] + for group in groups: + result.extend(_recursive_segment(group, prefer_horizontal_first)) + return result + + +def _find_best_vertical_cut_with_projection( + entries: Sequence[_SortableEntry], +) -> _CutInfo: + if len(entries) < 2: + return _CutInfo(0.0, 0.0) + + edge_cut = _find_vertical_cut_by_edges(entries) + if edge_cut.gap >= MIN_GAP_THRESHOLD: + return edge_cut + + if len(entries) < 3: + return edge_cut + + region = _calculate_bounding_region(entries) + if region is None: + return edge_cut + + region_width = region[2] - region[0] + narrow_threshold = region_width * NARROW_ELEMENT_WIDTH_RATIO + filtered_entries = [ + entry for entry in entries if entry.width >= narrow_threshold + ] + if len(filtered_entries) < 2 or len(filtered_entries) == len(entries): + return edge_cut + + filtered_cut = _find_vertical_cut_by_edges(filtered_entries) + if ( + filtered_cut.gap > edge_cut.gap + and filtered_cut.gap >= MIN_GAP_THRESHOLD + ): + return filtered_cut + return edge_cut + + +def _find_vertical_cut_by_edges(entries: Sequence[_SortableEntry]) -> _CutInfo: + sorted_entries = sorted(entries, key=lambda entry: (entry.left, entry.right)) + largest_gap = 0.0 + cut_position = 0.0 + prev_right: float | None = None + + for entry in sorted_entries: + if prev_right is not None and entry.left > prev_right: + gap = entry.left - prev_right + if gap > largest_gap: + largest_gap = gap + cut_position = (prev_right + entry.left) / 2.0 + prev_right = entry.right if prev_right is None else max(prev_right, entry.right) + + return _CutInfo(cut_position, largest_gap) + + +def _find_best_horizontal_cut_with_projection( + entries: Sequence[_SortableEntry], +) -> _CutInfo: + if len(entries) < 2: + return _CutInfo(0.0, 0.0) + + sorted_entries = sorted(entries, key=lambda entry: (entry.top, entry.bottom)) + largest_gap = 0.0 + cut_position = 0.0 + prev_bottom: float | None = None + + for entry in sorted_entries: + if prev_bottom is not None and entry.top > prev_bottom: + gap = entry.top - prev_bottom + if gap > largest_gap: + largest_gap = gap + cut_position = (prev_bottom + entry.top) / 2.0 + prev_bottom = entry.bottom if prev_bottom is None else max(prev_bottom, entry.bottom) + + return _CutInfo(cut_position, largest_gap) + + +def _split_by_horizontal_cut( + entries: Sequence[_SortableEntry], + cut_y: float, +) -> list[list[_SortableEntry]]: + above = [entry for entry in entries if entry.center_y < cut_y] + below = [entry for entry in entries if entry.center_y >= cut_y] + + groups = [] + if above: + groups.append(above) + if below: + groups.append(below) + return groups + + +def _split_by_vertical_cut( + entries: Sequence[_SortableEntry], + cut_x: float, +) -> list[list[_SortableEntry]]: + left = [entry for entry in entries if entry.center_x < cut_x] + right = [entry for entry in entries if entry.center_x >= cut_x] + + groups = [] + if left: + groups.append(left) + if right: + groups.append(right) + return groups + + +def _merge_cross_layout_elements( + sorted_main: Sequence[_SortableEntry], + cross_layout_entries: Sequence[_SortableEntry], +) -> list[_SortableEntry]: + if not cross_layout_entries: + return list(sorted_main) + + if not sorted_main: + return _sort_by_y_then_x(cross_layout_entries) + + sorted_cross_layout = _sort_by_y_then_x(cross_layout_entries) + + result: list[_SortableEntry] = [] + main_index = 0 + cross_index = 0 + + while main_index < len(sorted_main) or cross_index < len(sorted_cross_layout): + if cross_index >= len(sorted_cross_layout): + result.append(sorted_main[main_index]) + main_index += 1 + continue + + if main_index >= len(sorted_main): + result.append(sorted_cross_layout[cross_index]) + cross_index += 1 + continue + + main_entry = sorted_main[main_index] + cross_entry = sorted_cross_layout[cross_index] + if cross_entry.top <= main_entry.top: + result.append(cross_entry) + cross_index += 1 + else: + result.append(main_entry) + main_index += 1 + + return result + + +def _sort_by_y_then_x( + entries: Sequence[_SortableEntry], +) -> list[_SortableEntry]: + return sorted(entries, key=lambda entry: (entry.top, entry.left)) diff --git a/mineru/model/table/__init__.py b/mineru/model/table/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/table/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/table/cls/__init__.py b/mineru/model/table/cls/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/table/cls/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/table/cls/paddle_table_cls.py b/mineru/model/table/cls/paddle_table_cls.py new file mode 100644 index 000000000..45489f5e0 --- /dev/null +++ b/mineru/model/table/cls/paddle_table_cls.py @@ -0,0 +1,149 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os + +from PIL import Image +import cv2 +import numpy as np +import onnxruntime +from loguru import logger +from tqdm import tqdm + +from mineru.backend.pipeline.model_list import AtomicModel +from mineru.utils.enum_class import ModelPath +from mineru.utils.models_download_utils import auto_download_and_get_model_root_path + + +class PaddleTableClsModel: + def __init__(self): + self.sess = onnxruntime.InferenceSession( + os.path.join(auto_download_and_get_model_root_path(ModelPath.paddle_table_cls), ModelPath.paddle_table_cls) + ) + self.less_length = 256 + self.cw, self.ch = 224, 224 + self.std = [0.229, 0.224, 0.225] + self.scale = 0.00392156862745098 + self.mean = [0.485, 0.456, 0.406] + self.labels = [AtomicModel.WiredTable, AtomicModel.WirelessTable] + + def preprocess(self, input_img): + # 放大图片,使其最短边长为256 + h, w = input_img.shape[:2] + scale = 256 / min(h, w) + h_resize = round(h * scale) + w_resize = round(w * scale) + img = cv2.resize(input_img, (w_resize, h_resize), interpolation=1) + # 调整为224*224的正方形 + h, w = img.shape[:2] + cw, ch = 224, 224 + x1 = max(0, (w - cw) // 2) + y1 = max(0, (h - ch) // 2) + x2 = min(w, x1 + cw) + y2 = min(h, y1 + ch) + if w < cw or h < ch: + raise ValueError( + f"Input image ({w}, {h}) smaller than the target size ({cw}, {ch})." + ) + img = img[y1:y2, x1:x2, ...] + # 正则化 + split_im = list(cv2.split(img)) + std = [0.229, 0.224, 0.225] + scale = 0.00392156862745098 + mean = [0.485, 0.456, 0.406] + alpha = [scale / std[i] for i in range(len(std))] + beta = [-mean[i] / std[i] for i in range(len(std))] + for c in range(img.shape[2]): + split_im[c] = split_im[c].astype(np.float32) + split_im[c] *= alpha[c] + split_im[c] += beta[c] + img = cv2.merge(split_im) + # 5. 转换为 CHW 格式 + img = img.transpose((2, 0, 1)) + imgs = [img] + x = np.stack(imgs, axis=0).astype(dtype=np.float32, copy=False) + return x + + def predict(self, input_img): + if isinstance(input_img, Image.Image): + np_img = np.asarray(input_img) + elif isinstance(input_img, np.ndarray): + np_img = input_img + else: + raise ValueError("Input must be a pillow object or a numpy array.") + x = self.preprocess(np_img) + result = self.sess.run(None, {"x": x}) + idx = np.argmax(result) + conf = float(np.max(result)) + return self.labels[idx], conf + + def list_2_batch(self, img_list, batch_size=16): + """ + 将任意长度的列表按照指定的batch size分成多个batch + + Args: + img_list: 输入的列表 + batch_size: 每个batch的大小,默认为16 + + Returns: + 一个包含多个batch的列表,每个batch都是原列表的一个子列表 + """ + batches = [] + for i in range(0, len(img_list), batch_size): + batch = img_list[i : min(i + batch_size, len(img_list))] + batches.append(batch) + return batches + + def batch_preprocess(self, imgs): + res_imgs = [] + for img in imgs: + img = np.asarray(img) + # 放大图片,使其最短边长为256 + h, w = img.shape[:2] + scale = 256 / min(h, w) + h_resize = round(h * scale) + w_resize = round(w * scale) + img = cv2.resize(img, (w_resize, h_resize), interpolation=1) + # 调整为224*224的正方形 + h, w = img.shape[:2] + cw, ch = 224, 224 + x1 = max(0, (w - cw) // 2) + y1 = max(0, (h - ch) // 2) + x2 = min(w, x1 + cw) + y2 = min(h, y1 + ch) + if w < cw or h < ch: + raise ValueError( + f"Input image ({w}, {h}) smaller than the target size ({cw}, {ch})." + ) + img = img[y1:y2, x1:x2, ...] + # 正则化 + split_im = list(cv2.split(img)) + std = [0.229, 0.224, 0.225] + scale = 0.00392156862745098 + mean = [0.485, 0.456, 0.406] + alpha = [scale / std[i] for i in range(len(std))] + beta = [-mean[i] / std[i] for i in range(len(std))] + for c in range(img.shape[2]): + split_im[c] = split_im[c].astype(np.float32) + split_im[c] *= alpha[c] + split_im[c] += beta[c] + img = cv2.merge(split_im) + # 5. 转换为 CHW 格式 + img = img.transpose((2, 0, 1)) + res_imgs.append(img) + x = np.stack(res_imgs, axis=0).astype(dtype=np.float32, copy=False) + return x + def batch_predict(self, img_info_list, batch_size=16): + imgs = [item["wired_table_img"] for item in img_info_list] + imgs = self.list_2_batch(imgs, batch_size=batch_size) + label_res = [] + with tqdm(total=len(img_info_list), desc="Table-wired/wireless cls predict", disable=True) as pbar: + for img_batch in imgs: + x = self.batch_preprocess(img_batch) + result = self.sess.run(None, {"x": x}) + for img_res in result[0]: + idx = np.argmax(img_res) + conf = float(np.max(img_res)) + label_res.append((self.labels[idx],conf)) + pbar.update(len(img_batch)) + for img_info, (label, conf) in zip(img_info_list, label_res): + img_info['table_res']["cls_label"] = label + img_info['table_res']["cls_score"] = round(conf, 3) diff --git a/mineru/model/table/rec/__init__.py b/mineru/model/table/rec/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/table/rec/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/table/rec/slanet_plus/__init__.py b/mineru/model/table/rec/slanet_plus/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/table/rec/slanet_plus/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/table/rec/slanet_plus/main.py b/mineru/model/table/rec/slanet_plus/main.py new file mode 100644 index 000000000..4d603b974 --- /dev/null +++ b/mineru/model/table/rec/slanet_plus/main.py @@ -0,0 +1,213 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import copy +import time +import html +from dataclasses import asdict, dataclass +from pathlib import Path +from typing import Dict, List, Optional, Tuple, Union + +import cv2 +import numpy as np +from loguru import logger +from tqdm import tqdm + +from .matcher import TableMatch +from .table_structure import TableStructurer +from mineru.utils.enum_class import ModelPath +from mineru.utils.models_download_utils import auto_download_and_get_model_root_path + + +@dataclass +class PaddleTableInput: + model_type: Optional[str] = "slanet_plus" + model_path: Union[str, Path, None, Dict[str, str]] = None + use_cuda: bool = False + device: str = "cpu" + + +@dataclass +class PaddleTableOutput: + pred_html: Optional[str] = None + cell_bboxes: Optional[np.ndarray] = None + logic_points: Optional[np.ndarray] = None + elapse: Optional[float] = None + + +class PaddleTable: + def __init__(self, config: PaddleTableInput): + self.table_structure = TableStructurer(asdict(config)) + self.table_matcher = TableMatch() + + def predict( + self, + img: np.ndarray, + ocr_result: List[Union[List[List[float]], str, str]] = None, + ) -> PaddleTableOutput: + if ocr_result is None: + raise ValueError("OCR result is None") + + s = time.perf_counter() + h, w = img.shape[:2] + + dt_boxes, rec_res = self.get_boxes_recs(ocr_result, h, w) + + pred_structures, cell_bboxes, _ = self.table_structure.process( + copy.deepcopy(img) + ) + + # 适配slanet-plus模型输出的box缩放还原 + cell_bboxes = self.adapt_slanet_plus(img, cell_bboxes) + + pred_html = self.table_matcher(pred_structures, cell_bboxes, dt_boxes, rec_res) + + # 过滤掉占位的bbox + mask = ~np.all(cell_bboxes == 0, axis=1) + cell_bboxes = cell_bboxes[mask] + + logic_points = self.table_matcher.decode_logic_points(pred_structures) + elapse = time.perf_counter() - s + return PaddleTableOutput(pred_html, cell_bboxes, logic_points, elapse) + + def batch_predict( + self, + images: List[np.ndarray], + ocr_results: List[List[Union[List[List[float]], str, str]]], + batch_size: int = 4, + ) -> List[PaddleTableOutput]: + """批量处理图像""" + s = time.perf_counter() + + batch_dt_boxes = [] + batch_rec_res = [] + + for i, img in enumerate(images): + h, w = img.shape[:2] + dt_boxes, rec_res = self.get_boxes_recs(ocr_results[i], h, w) + batch_dt_boxes.append(dt_boxes) + batch_rec_res.append(rec_res) + + # 批量表格结构识别 + batch_results = self.table_structure.batch_process(images) + + output_results = [] + for i, (img, ocr_result, (pred_structures, cell_bboxes, _)) in enumerate( + zip(images, ocr_results, batch_results) + ): + # 适配slanet-plus模型输出的box缩放还原 + cell_bboxes = self.adapt_slanet_plus(img, cell_bboxes) + pred_html = self.table_matcher( + pred_structures, cell_bboxes, batch_dt_boxes[i], batch_rec_res[i] + ) + # 过滤掉占位的bbox + mask = ~np.all(cell_bboxes == 0, axis=1) + cell_bboxes = cell_bboxes[mask] + + logic_points = self.table_matcher.decode_logic_points(pred_structures) + result = PaddleTableOutput(pred_html, cell_bboxes, logic_points, 0) + output_results.append(result) + + total_elapse = time.perf_counter() - s + for result in output_results: + result.elapse = total_elapse / len(output_results) + + return output_results + + def get_boxes_recs( + self, ocr_result: List[Union[List[List[float]], str, str]], h: int, w: int + ) -> Tuple[np.ndarray, Tuple[str, str]]: + if not ocr_result: + return np.empty((0, 4), dtype=np.float32), [] + + dt_boxes, rec_res, scores = list(zip(*ocr_result)) + rec_res = list(zip(rec_res, scores)) + + r_boxes = [] + for box in dt_boxes: + box = np.array(box) + x_min = max(0, box[:, 0].min() - 1) + x_max = min(w, box[:, 0].max() + 1) + y_min = max(0, box[:, 1].min() - 1) + y_max = min(h, box[:, 1].max() + 1) + box = [x_min, y_min, x_max, y_max] + r_boxes.append(box) + dt_boxes = np.array(r_boxes) + return dt_boxes, rec_res + + def adapt_slanet_plus(self, img: np.ndarray, cell_bboxes: np.ndarray) -> np.ndarray: + h, w = img.shape[:2] + resized = 488 + ratio = min(resized / h, resized / w) + w_ratio = resized / (w * ratio) + h_ratio = resized / (h * ratio) + cell_bboxes[:, 0::2] *= w_ratio + cell_bboxes[:, 1::2] *= h_ratio + return cell_bboxes + + +def escape_html(input_string): + """Escape HTML Entities.""" + return html.escape(input_string) + + +class PaddleTableModel(object): + def __init__(self, ocr_engine): + slanet_plus_model_path = os.path.join( + auto_download_and_get_model_root_path(ModelPath.slanet_plus), + ModelPath.slanet_plus, + ) + input_args = PaddleTableInput( + model_type="slanet_plus", model_path=slanet_plus_model_path + ) + self.table_model = PaddleTable(input_args) + self.ocr_engine = ocr_engine + + def predict(self, image, ocr_result=None): + bgr_image = cv2.cvtColor(np.asarray(image), cv2.COLOR_RGB2BGR) + # Continue with OCR on potentially rotated image + + if ocr_result is None: + ocr_result = self.ocr_engine.ocr(bgr_image)[0] + ocr_result = [ + [item[0], escape_html(item[1][0]), item[1][1]] + for item in ocr_result + if len(item) == 2 and isinstance(item[1], tuple) + ] + + try: + table_results = self.table_model.predict(np.asarray(image), ocr_result or []) + html_code = table_results.pred_html + table_cell_bboxes = table_results.cell_bboxes + logic_points = table_results.logic_points + elapse = table_results.elapse + return html_code, table_cell_bboxes, logic_points, elapse + except Exception as e: + logger.exception(e) + + return None, None, None, None + + def batch_predict(self, table_res_list: List[Dict], batch_size: int = 4) -> None: + """对传入的字典列表进行批量预测,无返回值""" + + with tqdm(total=len(table_res_list), desc="Table-wireless Predict") as pbar: + for index in range(0, len(table_res_list), batch_size): + batch_imgs = [ + cv2.cvtColor(np.asarray(table_res_list[i]["table_img"]), cv2.COLOR_RGB2BGR) + for i in range(index, min(index + batch_size, len(table_res_list))) + ] + batch_ocrs = [ + table_res_list[i].get("ocr_result") or [] + for i in range(index, min(index + batch_size, len(table_res_list))) + ] + results = self.table_model.batch_predict( + batch_imgs, batch_ocrs, batch_size=batch_size + ) + for i, result in enumerate(results): + table_res = table_res_list[index + i] + table_res["wireless_cell_bboxes"] = result.cell_bboxes + table_res["wireless_logic_points"] = result.logic_points + if result.pred_html is not None: + table_res['table_res']['html'] = result.pred_html + + # 更新进度条 + pbar.update(len(results)) diff --git a/mineru/model/table/rec/slanet_plus/matcher.py b/mineru/model/table/rec/slanet_plus/matcher.py new file mode 100644 index 000000000..76ed8d420 --- /dev/null +++ b/mineru/model/table/rec/slanet_plus/matcher.py @@ -0,0 +1,199 @@ +# Copyright (c) Opendatalab. All rights reserved. +# copyright (c) 2022 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import numpy as np + +from .matcher_utils import compute_iou, distance + + +class TableMatch: + def __init__(self, filter_ocr_result=True, use_master=False): + self.filter_ocr_result = filter_ocr_result + self.use_master = use_master + + def __call__(self, pred_structures, cell_bboxes, dt_boxes, rec_res): + if self.filter_ocr_result: + dt_boxes, rec_res = self._filter_ocr_result(cell_bboxes, dt_boxes, rec_res) + matched_index = self.match_result(dt_boxes, cell_bboxes) + pred_html, pred = self.get_pred_html(pred_structures, matched_index, rec_res) + return pred_html + + def match_result(self, dt_boxes, cell_bboxes, min_iou=0.1**8): + matched = {} + for i, gt_box in enumerate(dt_boxes): + distances = [] + for j, pred_box in enumerate(cell_bboxes): + if len(pred_box) == 8: + pred_box = [ + np.min(pred_box[0::2]), + np.min(pred_box[1::2]), + np.max(pred_box[0::2]), + np.max(pred_box[1::2]), + ] + distances.append( + (distance(gt_box, pred_box), 1.0 - compute_iou(gt_box, pred_box)) + ) # compute iou and l1 distance + sorted_distances = distances.copy() + # select det box by iou and l1 distance + sorted_distances = sorted( + sorted_distances, key=lambda item: (item[1], item[0]) + ) + # must > min_iou + if sorted_distances[0][1] >= 1 - min_iou: + continue + + if distances.index(sorted_distances[0]) not in matched: + matched[distances.index(sorted_distances[0])] = [i] + else: + matched[distances.index(sorted_distances[0])].append(i) + return matched + + def get_pred_html(self, pred_structures, matched_index, ocr_contents): + end_html = [] + td_index = 0 + for tag in pred_structures: + if "" not in tag: + end_html.append(tag) + continue + + if "" == tag: + end_html.extend("") + + if td_index in matched_index.keys(): + b_with = False + if ( + "" in ocr_contents[matched_index[td_index][0]] + and len(matched_index[td_index]) > 1 + ): + b_with = True + end_html.extend("") + + for i, td_index_index in enumerate(matched_index[td_index]): + content = ocr_contents[td_index_index][0] + if len(matched_index[td_index]) > 1: + if len(content) == 0: + continue + + if content[0] == " ": + content = content[1:] + + if "" in content: + content = content[3:] + + if "" in content: + content = content[:-4] + + if len(content) == 0: + continue + + if i != len(matched_index[td_index]) - 1 and " " != content[-1]: + content += " " + end_html.extend(content) + + if b_with: + end_html.extend("") + + if "" == tag: + end_html.append("") + else: + end_html.append(tag) + + td_index += 1 + + # Filter elements + filter_elements = ["", "", "", ""] + end_html = [v for v in end_html if v not in filter_elements] + return "".join(end_html), end_html + + def decode_logic_points(self, pred_structures): + logic_points = [] + current_row = 0 + current_col = 0 + max_rows = 0 + max_cols = 0 + occupied_cells = {} # 用于记录已经被占用的单元格 + + def is_occupied(row, col): + return (row, col) in occupied_cells + + def mark_occupied(row, col, rowspan, colspan): + for r in range(row, row + rowspan): + for c in range(col, col + colspan): + occupied_cells[(r, c)] = True + + i = 0 + while i < len(pred_structures): + token = pred_structures[i] + + if token == "": + current_col = 0 # 每次遇到 时,重置当前列号 + elif token == "": + current_row += 1 # 行结束,行号增加 + elif token.startswith(""): + if "colspan=" in pred_structures[j]: + colspan = int(pred_structures[j].split("=")[1].strip("\"'")) + elif "rowspan=" in pred_structures[j]: + rowspan = int(pred_structures[j].split("=")[1].strip("\"'")) + j += 1 + + # 跳过已经处理过的属性 token + i = j + + # 找到下一个未被占用的列 + while is_occupied(current_row, current_col): + current_col += 1 + + # 计算逻辑坐标 + r_start = current_row + r_end = current_row + rowspan - 1 + col_start = current_col + col_end = current_col + colspan - 1 + + # 记录逻辑坐标 + logic_points.append([r_start, r_end, col_start, col_end]) + + # 标记占用的单元格 + mark_occupied(r_start, col_start, rowspan, colspan) + + # 更新当前列号 + current_col += colspan + + # 更新最大行数和列数 + max_rows = max(max_rows, r_end + 1) + max_cols = max(max_cols, col_end + 1) + + i += 1 + + return logic_points + + def _filter_ocr_result(self, cell_bboxes, dt_boxes, rec_res): + y1 = cell_bboxes[:, 1::2].min() + new_dt_boxes = [] + new_rec_res = [] + + for box, rec in zip(dt_boxes, rec_res): + if np.max(box[1::2]) < y1: + continue + new_dt_boxes.append(box) + new_rec_res.append(rec) + return new_dt_boxes, new_rec_res diff --git a/mineru/model/table/rec/slanet_plus/matcher_utils.py b/mineru/model/table/rec/slanet_plus/matcher_utils.py new file mode 100644 index 000000000..895587cf7 --- /dev/null +++ b/mineru/model/table/rec/slanet_plus/matcher_utils.py @@ -0,0 +1,247 @@ +# Copyright (c) Opendatalab. All rights reserved. +# copyright (c) 2022 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import copy +import re + + +def deal_isolate_span(thead_part): + """ + Deal with isolate span cases in this function. + It causes by wrong prediction in structure recognition model. + eg. predict to rowspan="2">. + :param thead_part: + :return: + """ + # 1. find out isolate span tokens. + isolate_pattern = ( + r" rowspan='(\d)+' colspan='(\d)+'>|" + r" colspan='(\d)+' rowspan='(\d)+'>|" + r" rowspan='(\d)+'>|" + r" colspan='(\d)+'>" + ) + isolate_iter = re.finditer(isolate_pattern, thead_part) + isolate_list = [i.group() for i in isolate_iter] + + # 2. find out span number, by step 1 result. + span_pattern = ( + r" rowspan='(\d)+' colspan='(\d)+'|" + r" colspan='(\d)+' rowspan='(\d)+'|" + r" rowspan='(\d)+'|" + r" colspan='(\d)+'" + ) + corrected_list = [] + for isolate_item in isolate_list: + span_part = re.search(span_pattern, isolate_item) + spanStr_in_isolateItem = span_part.group() + # 3. merge the span number into the span token format string. + if spanStr_in_isolateItem is not None: + corrected_item = f"" + corrected_list.append(corrected_item) + else: + corrected_list.append(None) + + # 4. replace original isolated token. + for corrected_item, isolate_item in zip(corrected_list, isolate_list): + if corrected_item is not None: + thead_part = thead_part.replace(isolate_item, corrected_item) + else: + pass + return thead_part + + +def deal_duplicate_bb(thead_part): + """ + Deal duplicate or after replace. + Keep one in a token. + :param thead_part: + :return: + """ + # 1. find out in . + td_pattern = ( + r"(.+?)|" + r"(.+?)|" + r"(.+?)|" + r"(.+?)|" + r"(.*?)" + ) + td_iter = re.finditer(td_pattern, thead_part) + td_list = [t.group() for t in td_iter] + + # 2. is multiply in or not? + new_td_list = [] + for td_item in td_list: + if td_item.count("") > 1 or td_item.count("") > 1: + # multiply in case. + # 1. remove all + td_item = td_item.replace("", "").replace("", "") + # 2. replace -> , -> . + td_item = td_item.replace("", "").replace("", "") + new_td_list.append(td_item) + else: + new_td_list.append(td_item) + + # 3. replace original thead part. + for td_item, new_td_item in zip(td_list, new_td_list): + thead_part = thead_part.replace(td_item, new_td_item) + return thead_part + + +def deal_bb(result_token): + """ + In our opinion, always occurs in text's context. + This function will find out all tokens in and insert by manual. + :param result_token: + :return: + """ + # find out parts. + thead_pattern = "(.*?)" + if re.search(thead_pattern, result_token) is None: + return result_token + thead_part = re.search(thead_pattern, result_token).group() + origin_thead_part = copy.deepcopy(thead_part) + + # check "rowspan" or "colspan" occur in parts or not . + span_pattern = r"|||" + span_iter = re.finditer(span_pattern, thead_part) + span_list = [s.group() for s in span_iter] + has_span_in_head = True if len(span_list) > 0 else False + + if not has_span_in_head: + # not include "rowspan" or "colspan" branch 1. + # 1. replace to , and to + # 2. it is possible to predict text include or by Text-line recognition, + # so we replace to , and to + thead_part = ( + thead_part.replace("", "") + .replace("", "") + .replace("", "") + .replace("", "") + ) + else: + # include "rowspan" or "colspan" branch 2. + # Firstly, we deal rowspan or colspan cases. + # 1. replace > to > + # 2. replace to + # 3. it is possible to predict text include or by Text-line recognition, + # so we replace to , and to + + # Secondly, deal ordinary cases like branch 1 + + # replace ">" to "" + replaced_span_list = [] + for sp in span_list: + replaced_span_list.append(sp.replace(">", ">")) + for sp, rsp in zip(span_list, replaced_span_list): + thead_part = thead_part.replace(sp, rsp) + + # replace "" to "" + thead_part = thead_part.replace("", "") + + # remove duplicated by re.sub + mb_pattern = "()+" + single_b_string = "" + thead_part = re.sub(mb_pattern, single_b_string, thead_part) + + mgb_pattern = "()+" + single_gb_string = "" + thead_part = re.sub(mgb_pattern, single_gb_string, thead_part) + + # ordinary cases like branch 1 + thead_part = thead_part.replace("", "").replace("", "") + + # convert back to , empty cell has no . + # but space cell( ) is suitable for + thead_part = thead_part.replace("", "") + # deal with duplicated + thead_part = deal_duplicate_bb(thead_part) + # deal with isolate span tokens, which causes by wrong predict by structure prediction. + # eg.PMC5994107_011_00.png + thead_part = deal_isolate_span(thead_part) + # replace original result with new thead part. + result_token = result_token.replace(origin_thead_part, thead_part) + return result_token + + +def deal_eb_token(master_token): + """ + post process with , , ... + emptyBboxTokenDict = { + "[]": '', + "[' ']": '', + "['', ' ', '']": '', + "['\\u2028', '\\u2028']": '', + "['', ' ', '']": '', + "['', '']": '', + "['', ' ', '']": '', + "['', '', '', '']": '', + "['', '', ' ', '', '']": '', + "['', '']": '', + "['', ' ', '\\u2028', ' ', '\\u2028', ' ', '']": '', + } + :param master_token: + :return: + """ + master_token = master_token.replace("", "") + master_token = master_token.replace("", " ") + master_token = master_token.replace("", " ") + master_token = master_token.replace("", "\u2028\u2028") + master_token = master_token.replace("", " ") + master_token = master_token.replace("", "") + master_token = master_token.replace("", " ") + master_token = master_token.replace("", "") + master_token = master_token.replace("", " ") + master_token = master_token.replace("", "") + master_token = master_token.replace( + "", " \u2028 \u2028 " + ) + return master_token + + +def distance(box_1, box_2): + x1, y1, x2, y2 = box_1 + x3, y3, x4, y4 = box_2 + dis = abs(x3 - x1) + abs(y3 - y1) + abs(x4 - x2) + abs(y4 - y2) + dis_2 = abs(x3 - x1) + abs(y3 - y1) + dis_3 = abs(x4 - x2) + abs(y4 - y2) + return dis + min(dis_2, dis_3) + + +def compute_iou(rec1, rec2): + """ + computing IoU + :param rec1: (y0, x0, y1, x1), which reflects + (top, left, bottom, right) + :param rec2: (y0, x0, y1, x1) + :return: scala value of IoU + """ + # computing area of each rectangles + S_rec1 = (rec1[2] - rec1[0]) * (rec1[3] - rec1[1]) + S_rec2 = (rec2[2] - rec2[0]) * (rec2[3] - rec2[1]) + + # computing the sum_area + sum_area = S_rec1 + S_rec2 + + # find the each edge of intersect rectangle + left_line = max(rec1[1], rec2[1]) + right_line = min(rec1[3], rec2[3]) + top_line = max(rec1[0], rec2[0]) + bottom_line = min(rec1[2], rec2[2]) + + # judge if there is an intersect + if left_line >= right_line or top_line >= bottom_line: + return 0.0 + + intersect = (right_line - left_line) * (bottom_line - top_line) + return (intersect / (sum_area - intersect)) * 1.0 diff --git a/mineru/model/table/rec/slanet_plus/table_structure.py b/mineru/model/table/rec/slanet_plus/table_structure.py new file mode 100644 index 000000000..d9b2f0ced --- /dev/null +++ b/mineru/model/table/rec/slanet_plus/table_structure.py @@ -0,0 +1,113 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import time +from typing import Any, Dict, List, Tuple + +import numpy as np + +from mineru.utils.os_env_config import get_op_num_threads +from .table_structure_utils import ( + OrtInferSession, + TableLabelDecode, + TablePreprocess, + BatchTablePreprocess, +) + + +class TableStructurer: + def __init__(self, config: Dict[str, Any]): + self.preprocess_op = TablePreprocess() + self.batch_preprocess_op = BatchTablePreprocess() + + config["intra_op_num_threads"] = get_op_num_threads("MINERU_INTRA_OP_NUM_THREADS") + config["inter_op_num_threads"] = get_op_num_threads("MINERU_INTER_OP_NUM_THREADS") + + self.session = OrtInferSession(config) + + self.character = self.session.get_metadata() + self.postprocess_op = TableLabelDecode(self.character) + + def process(self, img): + starttime = time.time() + data = {"image": img} + data = self.preprocess_op(data) + img = data[0] + if img is None: + return None, 0 + img = np.expand_dims(img, axis=0) + img = img.copy() + + outputs = self.session([img]) + + preds = {"loc_preds": outputs[0], "structure_probs": outputs[1]} + + shape_list = np.expand_dims(data[-1], axis=0) + post_result = self.postprocess_op(preds, [shape_list]) + + bbox_list = post_result["bbox_batch_list"][0] + + structure_str_list = post_result["structure_batch_list"][0] + structure_str_list = structure_str_list[0] + structure_str_list = ( + ["", "", ""] + + structure_str_list + + ["
", "", ""] + ) + elapse = time.time() - starttime + return structure_str_list, bbox_list, elapse + + def batch_process( + self, img_list: List[np.ndarray] + ) -> List[Tuple[List[str], np.ndarray, float]]: + """批量处理图像列表 + Args: + img_list: 图像列表 + Returns: + 结果列表,每个元素包含 (table_struct_str, cell_bboxes, elapse) + """ + starttime = time.perf_counter() + + batch_data = self.batch_preprocess_op(img_list) + preprocessed_images = batch_data[0] + shape_lists = batch_data[1] + + preprocessed_images = np.array(preprocessed_images) + bbox_preds, struct_probs = self.session([preprocessed_images]) + + batch_size = preprocessed_images.shape[0] + results = [] + for bbox_pred, struct_prob, shape_list in zip( + bbox_preds, struct_probs, shape_lists + ): + preds = { + "loc_preds": np.expand_dims(bbox_pred, axis=0), + "structure_probs": np.expand_dims(struct_prob, axis=0), + } + shape_list = np.expand_dims(shape_list, axis=0) + post_result = self.postprocess_op(preds, [shape_list]) + bbox_list = post_result["bbox_batch_list"][0] + structure_str_list = post_result["structure_batch_list"][0] + structure_str_list = structure_str_list[0] + structure_str_list = ( + ["", "", ""] + + structure_str_list + + ["
", "", ""] + ) + results.append((structure_str_list, bbox_list, 0)) + + total_elapse = time.perf_counter() - starttime + for i in range(len(results)): + results[i] = (results[i][0], results[i][1], total_elapse / batch_size) + + return results diff --git a/mineru/model/table/rec/slanet_plus/table_structure_utils.py b/mineru/model/table/rec/slanet_plus/table_structure_utils.py new file mode 100644 index 000000000..9a1b3b76c --- /dev/null +++ b/mineru/model/table/rec/slanet_plus/table_structure_utils.py @@ -0,0 +1,446 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import os +import platform +import traceback +from enum import Enum +from pathlib import Path +from typing import Any, Dict, List, Tuple, Union + +import cv2 +import numpy as np +from onnxruntime import ( + GraphOptimizationLevel, + InferenceSession, + SessionOptions, + get_available_providers, + get_device, +) + +from loguru import logger + + +class EP(Enum): + CPU_EP = "CPUExecutionProvider" + + +class OrtInferSession: + def __init__(self, config: Dict[str, Any]): + self.logger = logger + + model_path = config.get("model_path", None) + self._verify_model(model_path) + + self.had_providers: List[str] = get_available_providers() + EP_list = self._get_ep_list() + + sess_opt = self._init_sess_opts(config) + self.session = InferenceSession( + model_path, + sess_options=sess_opt, + providers=EP_list, + ) + + @staticmethod + def _init_sess_opts(config: Dict[str, Any]) -> SessionOptions: + sess_opt = SessionOptions() + sess_opt.log_severity_level = 4 + sess_opt.enable_cpu_mem_arena = False + sess_opt.graph_optimization_level = GraphOptimizationLevel.ORT_ENABLE_ALL + + cpu_nums = os.cpu_count() + intra_op_num_threads = config.get("intra_op_num_threads", -1) + if intra_op_num_threads != -1 and 1 <= intra_op_num_threads <= cpu_nums: + sess_opt.intra_op_num_threads = intra_op_num_threads + + inter_op_num_threads = config.get("inter_op_num_threads", -1) + if inter_op_num_threads != -1 and 1 <= inter_op_num_threads <= cpu_nums: + sess_opt.inter_op_num_threads = inter_op_num_threads + + return sess_opt + + def get_metadata(self, key: str = "character") -> list: + meta_dict = self.session.get_modelmeta().custom_metadata_map + content_list = meta_dict[key].splitlines() + return content_list + + def _get_ep_list(self) -> List[Tuple[str, Dict[str, Any]]]: + cpu_provider_opts = { + "arena_extend_strategy": "kSameAsRequested", + } + EP_list = [(EP.CPU_EP.value, cpu_provider_opts)] + return EP_list + + def __call__(self, input_content: List[np.ndarray]) -> np.ndarray: + input_dict = dict(zip(self.get_input_names(), input_content)) + try: + return self.session.run(None, input_dict) + except Exception as e: + error_info = traceback.format_exc() + raise ONNXRuntimeError(error_info) from e + + def get_input_names(self) -> List[str]: + return [v.name for v in self.session.get_inputs()] + + def get_output_names(self) -> List[str]: + return [v.name for v in self.session.get_outputs()] + + def get_character_list(self, key: str = "character") -> List[str]: + meta_dict = self.session.get_modelmeta().custom_metadata_map + return meta_dict[key].splitlines() + + def have_key(self, key: str = "character") -> bool: + meta_dict = self.session.get_modelmeta().custom_metadata_map + if key in meta_dict.keys(): + return True + return False + + @staticmethod + def _verify_model(model_path: Union[str, Path, None]): + if model_path is None: + raise ValueError("model_path is None!") + + model_path = Path(model_path) + if not model_path.exists(): + raise FileNotFoundError(f"{model_path} does not exists.") + + if not model_path.is_file(): + raise FileExistsError(f"{model_path} is not a file.") + + +class ONNXRuntimeError(Exception): + pass + + +class TableLabelDecode: + def __init__(self, dict_character, merge_no_span_structure=True, **kwargs): + if merge_no_span_structure: + if "" not in dict_character: + dict_character.append("") + if "" in dict_character: + dict_character.remove("") + + dict_character = self.add_special_char(dict_character) + self.dict = {} + for i, char in enumerate(dict_character): + self.dict[char] = i + self.character = dict_character + self.td_token = ["", ""] + + def __call__(self, preds, batch=None): + structure_probs = preds["structure_probs"] + bbox_preds = preds["loc_preds"] + shape_list = batch[-1] + result = self.decode(structure_probs, bbox_preds, shape_list) + if len(batch) == 1: # only contains shape + return result + + label_decode_result = self.decode_label(batch) + return result, label_decode_result + + def decode(self, structure_probs, bbox_preds, shape_list): + """convert text-label into text-index.""" + ignored_tokens = self.get_ignored_tokens() + end_idx = self.dict[self.end_str] + + structure_idx = structure_probs.argmax(axis=2) + structure_probs = structure_probs.max(axis=2) + + structure_batch_list = [] + bbox_batch_list = [] + batch_size = len(structure_idx) + for batch_idx in range(batch_size): + structure_list = [] + bbox_list = [] + score_list = [] + for idx in range(len(structure_idx[batch_idx])): + char_idx = int(structure_idx[batch_idx][idx]) + if idx > 0 and char_idx == end_idx: + break + + if char_idx in ignored_tokens: + continue + + text = self.character[char_idx] + if text in self.td_token: + bbox = bbox_preds[batch_idx, idx] + bbox = self._bbox_decode(bbox, shape_list[batch_idx]) + bbox_list.append(bbox) + structure_list.append(text) + score_list.append(structure_probs[batch_idx, idx]) + structure_batch_list.append([structure_list, np.mean(score_list)]) + bbox_batch_list.append(np.array(bbox_list)) + result = { + "bbox_batch_list": bbox_batch_list, + "structure_batch_list": structure_batch_list, + } + return result + + def decode_label(self, batch): + """convert text-label into text-index.""" + structure_idx = batch[1] + gt_bbox_list = batch[2] + shape_list = batch[-1] + ignored_tokens = self.get_ignored_tokens() + end_idx = self.dict[self.end_str] + + structure_batch_list = [] + bbox_batch_list = [] + batch_size = len(structure_idx) + for batch_idx in range(batch_size): + structure_list = [] + bbox_list = [] + for idx in range(len(structure_idx[batch_idx])): + char_idx = int(structure_idx[batch_idx][idx]) + if idx > 0 and char_idx == end_idx: + break + + if char_idx in ignored_tokens: + continue + + structure_list.append(self.character[char_idx]) + + bbox = gt_bbox_list[batch_idx][idx] + if bbox.sum() != 0: + bbox = self._bbox_decode(bbox, shape_list[batch_idx]) + bbox_list.append(bbox) + + structure_batch_list.append(structure_list) + bbox_batch_list.append(bbox_list) + result = { + "bbox_batch_list": bbox_batch_list, + "structure_batch_list": structure_batch_list, + } + return result + + def _bbox_decode(self, bbox, shape): + h, w = shape[:2] + bbox[0::2] *= w + bbox[1::2] *= h + return bbox + + def get_ignored_tokens(self): + beg_idx = self.get_beg_end_flag_idx("beg") + end_idx = self.get_beg_end_flag_idx("end") + return [beg_idx, end_idx] + + def get_beg_end_flag_idx(self, beg_or_end): + if beg_or_end == "beg": + return np.array(self.dict[self.beg_str]) + + if beg_or_end == "end": + return np.array(self.dict[self.end_str]) + + raise TypeError(f"unsupport type {beg_or_end} in get_beg_end_flag_idx") + + def add_special_char(self, dict_character): + self.beg_str = "sos" + self.end_str = "eos" + dict_character = [self.beg_str] + dict_character + [self.end_str] + return dict_character + + +class TablePreprocess: + def __init__(self): + self.table_max_len = 488 + self.build_pre_process_list() + self.ops = self.create_operators() + + def __call__(self, data): + """transform""" + if self.ops is None: + self.ops = [] + + for op in self.ops: + data = op(data) + if data is None: + return None + return data + + def create_operators( + self, + ): + """ + create operators based on the config + + Args: + params(list): a dict list, used to create some operators + """ + assert isinstance( + self.pre_process_list, list + ), "operator config should be a list" + ops = [] + for operator in self.pre_process_list: + assert ( + isinstance(operator, dict) and len(operator) == 1 + ), "yaml format error" + op_name = list(operator)[0] + param = {} if operator[op_name] is None else operator[op_name] + op = eval(op_name)(**param) + ops.append(op) + return ops + + def build_pre_process_list(self): + resize_op = { + "ResizeTableImage": { + "max_len": self.table_max_len, + } + } + pad_op = { + "PaddingTableImage": {"size": [self.table_max_len, self.table_max_len]} + } + normalize_op = { + "NormalizeImage": { + "std": [0.229, 0.224, 0.225], + "mean": [0.485, 0.456, 0.406], + "scale": "1./255.", + "order": "hwc", + } + } + to_chw_op = {"ToCHWImage": None} + keep_keys_op = {"KeepKeys": {"keep_keys": ["image", "shape"]}} + self.pre_process_list = [ + resize_op, + normalize_op, + pad_op, + to_chw_op, + keep_keys_op, + ] + + +class BatchTablePreprocess: + + def __init__(self): + self.preprocess = TablePreprocess() + + def __call__( + self, img_list: List[np.ndarray] + ) -> Tuple[List[np.ndarray], List[List[float]]]: + """批量处理图像 + + Args: + img_list: 图像列表 + + Returns: + 预处理后的图像列表和形状信息列表 + """ + processed_imgs = [] + shape_lists = [] + + for img in img_list: + if img is None: + continue + data = {"image": img} + img_processed, shape_list = self.preprocess(data) + processed_imgs.append(img_processed) + shape_lists.append(shape_list) + return processed_imgs, shape_lists + + +class ResizeTableImage: + def __init__(self, max_len, resize_bboxes=False, infer_mode=False): + super(ResizeTableImage, self).__init__() + self.max_len = max_len + self.resize_bboxes = resize_bboxes + self.infer_mode = infer_mode + + def __call__(self, data): + img = data["image"] + height, width = img.shape[0:2] + ratio = self.max_len / (max(height, width) * 1.0) + resize_h = int(height * ratio) + resize_w = int(width * ratio) + resize_img = cv2.resize(img, (resize_w, resize_h)) + if self.resize_bboxes and not self.infer_mode: + data["bboxes"] = data["bboxes"] * ratio + data["image"] = resize_img + data["src_img"] = img + data["shape"] = np.array([height, width, ratio, ratio]) + data["max_len"] = self.max_len + return data + + +class PaddingTableImage: + def __init__(self, size, **kwargs): + super(PaddingTableImage, self).__init__() + self.size = size + + def __call__(self, data): + img = data["image"] + pad_h, pad_w = self.size + padding_img = np.zeros((pad_h, pad_w, 3), dtype=np.float32) + height, width = img.shape[0:2] + padding_img[0:height, 0:width, :] = img.copy() + data["image"] = padding_img + shape = data["shape"].tolist() + shape.extend([pad_h, pad_w]) + data["shape"] = np.array(shape) + return data + + +class NormalizeImage: + """normalize image such as substract mean, divide std""" + + def __init__(self, scale=None, mean=None, std=None, order="chw", **kwargs): + if isinstance(scale, str): + scale = eval(scale) + self.scale = np.float32(scale if scale is not None else 1.0 / 255.0) + mean = mean if mean is not None else [0.485, 0.456, 0.406] + std = std if std is not None else [0.229, 0.224, 0.225] + + shape = (3, 1, 1) if order == "chw" else (1, 1, 3) + self.mean = np.array(mean).reshape(shape).astype("float32") + self.std = np.array(std).reshape(shape).astype("float32") + + def __call__(self, data): + img = np.array(data["image"]) + assert isinstance(img, np.ndarray), "invalid input 'img' in NormalizeImage" + data["image"] = (img.astype("float32") * self.scale - self.mean) / self.std + return data + + +class ToCHWImage: + """convert hwc image to chw image""" + + def __init__(self, **kwargs): + pass + + def __call__(self, data): + img = np.array(data["image"]) + data["image"] = img.transpose((2, 0, 1)) + return data + + +class KeepKeys: + def __init__(self, keep_keys, **kwargs): + self.keep_keys = keep_keys + + def __call__(self, data): + data_list = [] + for key in self.keep_keys: + data_list.append(data[key]) + return data_list + + +def trans_char_ocr_res(ocr_res): + word_result = [] + for res in ocr_res: + score = res[2] + for word_box, word in zip(res[3], res[4]): + word_res = [] + word_res.append(word_box) + word_res.append(word) + word_res.append(score) + word_result.append(word_res) + return word_result diff --git a/mineru/model/table/rec/unet_table/__init__.py b/mineru/model/table/rec/unet_table/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/table/rec/unet_table/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/table/rec/unet_table/main.py b/mineru/model/table/rec/unet_table/main.py new file mode 100644 index 000000000..3ab453021 --- /dev/null +++ b/mineru/model/table/rec/unet_table/main.py @@ -0,0 +1,374 @@ +# Copyright (c) Opendatalab. All rights reserved. +import html +import logging +import os +import time +import traceback +from dataclasses import dataclass, asdict + +from typing import List, Optional, Union, Dict, Any +import numpy as np +import cv2 +from PIL import Image +from loguru import logger +from bs4 import BeautifulSoup + +from mineru.utils.span_pre_proc import calculate_contrast +from .table_structure_unet import TSRUnet + +from mineru.utils.enum_class import ModelPath +from mineru.utils.models_download_utils import auto_download_and_get_model_root_path +from .table_recover import TableRecover +from .utils import InputType, LoadImage, VisTable +from .utils_table_recover import ( + match_ocr_cell, + plot_html_table, + box_4_2_poly_to_box_4_1, + sorted_ocr_boxes, + gather_ocr_list_by_row, +) + + +@dataclass +class WiredTableInput: + model_path: str + device: str = "cpu" + + +@dataclass +class WiredTableOutput: + pred_html: Optional[str] = None + cell_bboxes: Optional[np.ndarray] = None + logic_points: Optional[np.ndarray] = None + elapse: Optional[float] = None + + +class WiredTableRecognition: + def __init__(self, config: WiredTableInput, ocr_engine=None): + self.table_structure = TSRUnet(asdict(config)) + self.load_img = LoadImage() + self.table_recover = TableRecover() + self.ocr_engine = ocr_engine + + def __call__( + self, + img: InputType, + ocr_result: Optional[List[Union[List[List[float]], str, str]]] = None, + **kwargs, + ) -> WiredTableOutput: + s = time.perf_counter() + need_ocr = True + col_threshold = 15 + row_threshold = 10 + if kwargs: + need_ocr = kwargs.get("need_ocr", True) + col_threshold = kwargs.get("col_threshold", 15) + row_threshold = kwargs.get("row_threshold", 10) + img = self.load_img(img) + polygons, rotated_polygons = self.table_structure(img, **kwargs) + if polygons is None: + # logging.warning("polygons is None.") + return WiredTableOutput("", None, None, 0.0) + + try: + table_res, logi_points = self.table_recover( + rotated_polygons, row_threshold, col_threshold + ) + # 将坐标由逆时针转为顺时针方向,后续处理与无线表格对齐 + polygons[:, 1, :], polygons[:, 3, :] = ( + polygons[:, 3, :].copy(), + polygons[:, 1, :].copy(), + ) + if not need_ocr: + sorted_polygons, idx_list = sorted_ocr_boxes( + [box_4_2_poly_to_box_4_1(box) for box in polygons] + ) + return WiredTableOutput( + "", + sorted_polygons, + logi_points[idx_list], + time.perf_counter() - s, + ) + cell_box_det_map, not_match_orc_boxes = match_ocr_cell(ocr_result, polygons) + # 如果有识别框没有ocr结果,直接进行rec补充 + cell_box_det_map = self.fill_blank_rec(img, polygons, cell_box_det_map) + # 转换为中间格式,修正识别框坐标,将物理识别框,逻辑识别框,ocr识别框整合为dict,方便后续处理 + t_rec_ocr_list = self.transform_res(cell_box_det_map, polygons, logi_points) + # 将每个单元格中的ocr识别结果排序和同行合并,输出的html能完整保留文字的换行格式 + t_rec_ocr_list = self.sort_and_gather_ocr_res(t_rec_ocr_list) + + logi_points = [t_box_ocr["t_logic_box"] for t_box_ocr in t_rec_ocr_list] + cell_box_det_map = { + i: [ocr_box_and_text[1] for ocr_box_and_text in t_box_ocr["t_ocr_res"]] + for i, t_box_ocr in enumerate(t_rec_ocr_list) + } + pred_html = plot_html_table(logi_points, cell_box_det_map) + polygons = np.array(polygons).reshape(-1, 8) + logi_points = np.array(logi_points) + elapse = time.perf_counter() - s + + except Exception: + logging.warning(traceback.format_exc()) + return WiredTableOutput("", None, None, 0.0) + return WiredTableOutput(pred_html, polygons, logi_points, elapse) + + def transform_res( + self, + cell_box_det_map: Dict[int, List[any]], + polygons: np.ndarray, + logi_points: List[np.ndarray], + ) -> List[Dict[str, any]]: + res = [] + for i in range(len(polygons)): + ocr_res_list = cell_box_det_map.get(i) + if not ocr_res_list: + continue + xmin = min([ocr_box[0][0][0] for ocr_box in ocr_res_list]) + ymin = min([ocr_box[0][0][1] for ocr_box in ocr_res_list]) + xmax = max([ocr_box[0][2][0] for ocr_box in ocr_res_list]) + ymax = max([ocr_box[0][2][1] for ocr_box in ocr_res_list]) + dict_res = { + # xmin,xmax,ymin,ymax + "t_box": [xmin, ymin, xmax, ymax], + # row_start,row_end,col_start,col_end + "t_logic_box": logi_points[i].tolist(), + # [[xmin,xmax,ymin,ymax], text] + "t_ocr_res": [ + [box_4_2_poly_to_box_4_1(ocr_det[0]), ocr_det[1]] + for ocr_det in ocr_res_list + ], + } + res.append(dict_res) + return res + + def sort_and_gather_ocr_res(self, res): + for i, dict_res in enumerate(res): + _, sorted_idx = sorted_ocr_boxes( + [ocr_det[0] for ocr_det in dict_res["t_ocr_res"]], threhold=0.3 + ) + dict_res["t_ocr_res"] = [dict_res["t_ocr_res"][i] for i in sorted_idx] + dict_res["t_ocr_res"] = gather_ocr_list_by_row( + dict_res["t_ocr_res"], threhold=0.3 + ) + return res + + # def fill_blank_rec( + # self, + # img: np.ndarray, + # sorted_polygons: np.ndarray, + # cell_box_map: Dict[int, List[str]], + # ) -> Dict[int, List[Any]]: + # """找到poly对应为空的框,尝试将直接将poly框直接送到识别中""" + # for i in range(sorted_polygons.shape[0]): + # if cell_box_map.get(i): + # continue + # box = sorted_polygons[i] + # cell_box_map[i] = [[box, "", 1]] + # continue + # return cell_box_map + def fill_blank_rec( + self, + img: np.ndarray, + sorted_polygons: np.ndarray, + cell_box_map: Dict[int, List[str]], + ) -> Dict[int, List[Any]]: + """找到poly对应为空的框,尝试将直接将poly框直接送到识别中""" + bgr_img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) + img_crop_info_list = [] + img_crop_list = [] + for i in range(sorted_polygons.shape[0]): + if cell_box_map.get(i): + continue + box = sorted_polygons[i] + if self.ocr_engine is None: + logger.warning(f"No OCR engine provided for box {i}: {box}") + continue + # 从img中截取对应的区域 + x1, y1, x2, y2 = int(box[0][0])+1, int(box[0][1])+1, int(box[2][0])-1, int(box[2][1])-1 + if x1 >= x2 or y1 >= y2 or x1 < 0 or y1 < 0: + # logger.warning(f"Invalid box coordinates: {x1, y1, x2, y2}") + continue + # 判断长宽比 + if (x2 - x1) / (y2 - y1) > 20 or (y2 - y1) / (x2 - x1) > 20: + # logger.warning(f"Box {i} has invalid aspect ratio: {x1, y1, x2, y2}") + continue + img_crop = bgr_img[int(y1):int(y2), int(x1):int(x2)] + + # 计算span的对比度,低于0.20的span不进行ocr + if calculate_contrast(img_crop, img_mode='bgr') <= 0.17: + cell_box_map[i] = [[box, "", 0.1]] + # logger.debug(f"Box {i} skipped due to low contrast.") + continue + + img_crop_list.append(img_crop) + img_crop_info_list.append([i, box]) + + if len(img_crop_list) > 0: + # 进行ocr识别 + ocr_result = self.ocr_engine.ocr(img_crop_list, det=False) + # ocr_result = [[]] + # for crop_img in img_crop_list: + # tmp_ocr_result = self.ocr_engine.ocr(crop_img) + # if tmp_ocr_result[0] and len(tmp_ocr_result[0]) > 0 and isinstance(tmp_ocr_result[0], list) and len(tmp_ocr_result[0][0]) == 2: + # ocr_result[0].append(tmp_ocr_result[0][0][1]) + # else: + # ocr_result[0].append(("", 0.0)) + + if not ocr_result or not isinstance(ocr_result, list) or len(ocr_result) == 0: + logger.warning("OCR engine returned no results or invalid result for image crops.") + return cell_box_map + ocr_res_list = ocr_result[0] + if not isinstance(ocr_res_list, list) or len(ocr_res_list) != len(img_crop_list): + logger.warning("OCR result list length does not match image crop list length.") + return cell_box_map + for j, ocr_res in enumerate(ocr_res_list): + img_crop_info_list[j].append(ocr_res) + + for i, box, ocr_res in img_crop_info_list: + # 处理ocr结果 + ocr_text, ocr_score = ocr_res + # logger.debug(f"OCR result for box {i}: {ocr_text} with score {ocr_score}") + if ocr_score < 0.6 or ocr_text in ['1','口','■','(204号', '(20', '(2', '(2号', '(20号', '号', '(204']: + # logger.warning(f"Low confidence OCR result for box {i}: {ocr_text} with score {ocr_score}") + box = sorted_polygons[i] + cell_box_map[i] = [[box, "", 0.1]] + continue + cell_box_map[i] = [[box, ocr_text, ocr_score]] + + return cell_box_map + + +def escape_html(input_string): + """Escape HTML Entities.""" + return html.escape(input_string) + + +def count_table_cells_physical(html_code): + """计算表格的物理单元格数量(合并单元格算一个)""" + if not html_code: + return 0 + + # 简单计数td和th标签的数量 + html_lower = html_code.lower() + td_count = html_lower.count(' wired_non_blank_count: + # 假设非空表格是接近正方表,使用非空单元格数量开平方作为表格规模的估计 + wired_table_scale = round(wired_non_blank_count ** 0.5) + # logger.debug(f"wireless non-blank cell count: {wireless_non_blank_count}, wired non-blank cell count: {wired_non_blank_count}, wired table scale: {wired_table_scale}") + # 如果无线表非空格的数量比有线表多一列或以上,需要切换到无线表 + wired_scale_plus_2_cols = wired_non_blank_count + (wired_table_scale * 2) + wired_scale_squared_plus_2_rows = wired_table_scale * (wired_table_scale + 2) + if (wireless_non_blank_count + 3) >= max(wired_scale_plus_2_cols, wired_scale_squared_plus_2_rows): + switch_flag = True + + # 判断是否使用无线表格模型的结果 + selected_model = "wired" + if ( + switch_flag + or (0 <= gap_of_len <= 5 and wired_len <= round(wireless_len * 0.75)) # 两者相差不大但有线模型结果较少 + or (gap_of_len == 0 and wired_len <= 4) # 单元格数量完全相等且总量小于等于4 + or (wired_text_count <= wireless_text_count * 0.6 and wireless_text_count >=10) # 有线模型填入的文字明显少于无线模型 + ): + # logger.debug("fall back to wireless table model") + html_code = wireless_html_code + selected_model = "wireless" + else: + html_code = wired_html_code + + if return_metadata: + return { + "html": html_code, + "selected_model": selected_model, + "wired_cell_bboxes": None if wired_structure_results is None else wired_structure_results.cell_bboxes, + "wired_logic_points": None if wired_structure_results is None else wired_structure_results.logic_points, + "wired_html": wired_html_code, + } + + return html_code + except Exception as e: + logger.warning(e) + if return_metadata: + return { + "html": wireless_html_code, + "selected_model": "wireless", + "wired_cell_bboxes": None, + "wired_logic_points": None, + "wired_html": "", + } + return wireless_html_code diff --git a/mineru/model/table/rec/unet_table/table_recover.py b/mineru/model/table/rec/unet_table/table_recover.py new file mode 100644 index 000000000..5bbda00a4 --- /dev/null +++ b/mineru/model/table/rec/unet_table/table_recover.py @@ -0,0 +1,215 @@ +# Copyright (c) Opendatalab. All rights reserved. +from typing import Dict, List, Tuple + +import numpy as np + + +class TableRecover: + def __init__( + self, + ): + pass + + def __call__( + self, polygons: np.ndarray, rows_thresh=10, col_thresh=15 + ) -> Dict[int, Dict]: + rows = self.get_rows(polygons, rows_thresh) + longest_col, each_col_widths, col_nums = self.get_benchmark_cols( + rows, polygons, col_thresh + ) + each_row_heights, row_nums = self.get_benchmark_rows(rows, polygons) + table_res, logic_points_dict = self.get_merge_cells( + polygons, + rows, + row_nums, + col_nums, + longest_col, + each_col_widths, + each_row_heights, + ) + logic_points = np.array( + [logic_points_dict[i] for i in range(len(polygons))] + ).astype(np.int32) + return table_res, logic_points + + @staticmethod + def get_rows(polygons: np.array, rows_thresh=10) -> Dict[int, List[int]]: + """对每个框进行行分类,框定哪个是一行的""" + y_axis = polygons[:, 0, 1] + if y_axis.size == 1: + return {0: [0]} + + concat_y = np.array(list(zip(y_axis, y_axis[1:]))) + minus_res = concat_y[:, 1] - concat_y[:, 0] + + result = {} + split_idxs = np.argwhere(abs(minus_res) > rows_thresh).squeeze() + # 如果都在一行,则将所有下标设置为同一行 + if split_idxs.size == 0: + return {0: [i for i in range(len(y_axis))]} + if split_idxs.ndim == 0: + split_idxs = split_idxs[None, ...] + + if max(split_idxs) != len(minus_res): + split_idxs = np.append(split_idxs, len(minus_res)) + + start_idx = 0 + for row_num, idx in enumerate(split_idxs): + if row_num != 0: + start_idx = split_idxs[row_num - 1] + 1 + result.setdefault(row_num, []).extend(range(start_idx, idx + 1)) + + # 计算每一行相邻cell的iou,如果大于0.2,则合并为同一个cell + return result + + def get_benchmark_cols( + self, rows: Dict[int, List], polygons: np.ndarray, col_thresh=15 + ) -> Tuple[np.ndarray, List[float], int]: + longest_col = max(rows.values(), key=lambda x: len(x)) + longest_col_points = polygons[longest_col] + longest_x_start = list(longest_col_points[:, 0, 0]) + longest_x_end = list(longest_col_points[:, 2, 0]) + min_x = longest_x_start[0] + max_x = longest_x_end[-1] + + # 根据当前col的起始x坐标,更新col的边界 + # 2025.2.22 --- 解决最长列可能漏掉最后一列的问题 + def update_longest_col(col_x_list, cur_v, min_x_, max_x_, insert_last): + for i, v in enumerate(col_x_list): + if cur_v - col_thresh <= v <= cur_v + col_thresh: + break + if cur_v < min_x_: + col_x_list.insert(0, cur_v) + min_x_ = cur_v + break + if cur_v > max_x_: + if insert_last: + col_x_list.append(cur_v) + max_x_ = cur_v + break + if cur_v < v: + col_x_list.insert(i, cur_v) + break + return min_x_, max_x_ + + for row_value in rows.values(): + cur_row_start = list(polygons[row_value][:, 0, 0]) + cur_row_end = list(polygons[row_value][:, 2, 0]) + for idx, (cur_v_start, cur_v_end) in enumerate( + zip(cur_row_start, cur_row_end) + ): + min_x, max_x = update_longest_col( + longest_x_start, cur_v_start, min_x, max_x, True + ) + min_x, max_x = update_longest_col( + longest_x_start, cur_v_end, min_x, max_x, False + ) + + longest_x_start = np.array(longest_x_start) + each_col_widths = (longest_x_start[1:] - longest_x_start[:-1]).tolist() + each_col_widths.append(max_x - longest_x_start[-1]) + col_nums = longest_x_start.shape[0] + return longest_x_start, each_col_widths, col_nums + + def get_benchmark_rows( + self, rows: Dict[int, List], polygons: np.ndarray + ) -> Tuple[np.ndarray, List[float], int]: + leftmost_cell_idxs = [v[0] for v in rows.values()] + benchmark_x = polygons[leftmost_cell_idxs][:, 0, 1] + + each_row_widths = (benchmark_x[1:] - benchmark_x[:-1]).tolist() + + # 求出最后一行cell中,最大的高度作为最后一行的高度 + bottommost_idxs = list(rows.values())[-1] + bottommost_boxes = polygons[bottommost_idxs] + # fix self.compute_L2(v[3, :], v[0, :]), v为逆时针,即v[3]为右上,v[0]为左上,v[1]为左下 + max_height = max([self.compute_L2(v[1, :], v[0, :]) for v in bottommost_boxes]) + each_row_widths.append(max_height) + + row_nums = benchmark_x.shape[0] + return each_row_widths, row_nums + + @staticmethod + def compute_L2(a1: np.ndarray, a2: np.ndarray) -> float: + return np.linalg.norm(a2 - a1) + + def get_merge_cells( + self, + polygons: np.ndarray, + rows: Dict, + row_nums: int, + col_nums: int, + longest_col: np.ndarray, + each_col_widths: List[float], + each_row_heights: List[float], + ) -> Dict[int, Dict[int, int]]: + col_res_merge, row_res_merge = {}, {} + logic_points = {} + merge_thresh = 10 + for cur_row, col_list in rows.items(): + one_col_result, one_row_result = {}, {} + for one_col in col_list: + box = polygons[one_col] + box_width = self.compute_L2(box[3, :], box[0, :]) + + # 不一定是从0开始的,应该综合已有值和x坐标位置来确定起始位置 + loc_col_idx = np.argmin(np.abs(longest_col - box[0, 0])) + col_start = max(sum(one_col_result.values()), loc_col_idx) + + # 计算合并多少个列方向单元格 + for i in range(col_start, col_nums): + col_cum_sum = sum(each_col_widths[col_start : i + 1]) + if i == col_start and col_cum_sum > box_width: + one_col_result[one_col] = 1 + break + elif abs(col_cum_sum - box_width) <= merge_thresh: + one_col_result[one_col] = i + 1 - col_start + break + # 这里必须进行修正,不然会出现超越阈值范围后列交错 + elif col_cum_sum > box_width: + idx = ( + i + if abs(col_cum_sum - box_width) + < abs(col_cum_sum - each_col_widths[i] - box_width) + else i - 1 + ) + one_col_result[one_col] = idx + 1 - col_start + break + else: + one_col_result[one_col] = col_nums - col_start + col_end = one_col_result[one_col] + col_start - 1 + box_height = self.compute_L2(box[1, :], box[0, :]) + row_start = cur_row + for j in range(row_start, row_nums): + row_cum_sum = sum(each_row_heights[row_start : j + 1]) + # box_height 不确定是几行的高度,所以要逐个试验,找一个最近的几行的高 + # 如果第一次row_cum_sum就比box_height大,那么意味着?丢失了一行 + if j == row_start and row_cum_sum > box_height: + one_row_result[one_col] = 1 + break + elif abs(box_height - row_cum_sum) <= merge_thresh: + one_row_result[one_col] = j + 1 - row_start + break + # 这里必须进行修正,不然会出现超越阈值范围后行交错 + elif row_cum_sum > box_height: + idx = ( + j + if abs(row_cum_sum - box_height) + < abs(row_cum_sum - each_row_heights[j] - box_height) + else j - 1 + ) + one_row_result[one_col] = idx + 1 - row_start + break + else: + one_row_result[one_col] = row_nums - row_start + row_end = one_row_result[one_col] + row_start - 1 + logic_points[one_col] = np.array( + [row_start, row_end, col_start, col_end] + ) + col_res_merge[cur_row] = one_col_result + row_res_merge[cur_row] = one_row_result + + res = {} + for i, (c, r) in enumerate(zip(col_res_merge.values(), row_res_merge.values())): + res[i] = {k: [cc, r[k]] for k, cc in c.items()} + return res, logic_points diff --git a/mineru/model/table/rec/unet_table/table_structure_unet.py b/mineru/model/table/rec/unet_table/table_structure_unet.py new file mode 100644 index 000000000..cd5a177ef --- /dev/null +++ b/mineru/model/table/rec/unet_table/table_structure_unet.py @@ -0,0 +1,212 @@ +# Copyright (c) Opendatalab. All rights reserved. +import copy +import math +from typing import Optional, Dict, Any, Tuple + +import cv2 +import numpy as np +from skimage import measure + +from mineru.utils.os_env_config import get_op_num_threads +from .utils import OrtInferSession, resize_img +from .utils_table_line_rec import ( + get_table_line, + final_adjust_lines, + min_area_rect_box, + draw_lines, + adjust_lines, +) +from.utils_table_recover import ( + sorted_ocr_boxes, + box_4_2_poly_to_box_4_1, +) + + +class TSRUnet: + def __init__(self, config: Dict): + self.K = 1000 + self.MK = 4000 + self.mean = np.array([123.675, 116.28, 103.53], dtype=np.float32) + self.std = np.array([58.395, 57.12, 57.375], dtype=np.float32) + self.inp_height = 1024 + self.inp_width = 1024 + + config["intra_op_num_threads"] = get_op_num_threads("MINERU_INTRA_OP_NUM_THREADS") + config["inter_op_num_threads"] = get_op_num_threads("MINERU_INTER_OP_NUM_THREADS") + + self.session = OrtInferSession(config) + + def __call__( + self, img: np.ndarray, **kwargs + ) -> Tuple[Optional[np.ndarray], Optional[np.ndarray]]: + img_info = self.preprocess(img) + pred = self.infer(img_info) + polygons, rotated_polygons = self.postprocess(img, pred, **kwargs) + if polygons.size == 0: + return None, None + polygons = polygons.reshape(polygons.shape[0], 4, 2) + polygons[:, 3, :], polygons[:, 1, :] = ( + polygons[:, 1, :].copy(), + polygons[:, 3, :].copy(), + ) + rotated_polygons = rotated_polygons.reshape(rotated_polygons.shape[0], 4, 2) + rotated_polygons[:, 3, :], rotated_polygons[:, 1, :] = ( + rotated_polygons[:, 1, :].copy(), + rotated_polygons[:, 3, :].copy(), + ) + _, idx = sorted_ocr_boxes( + [box_4_2_poly_to_box_4_1(poly_box) for poly_box in rotated_polygons], + threhold=0.4, + ) + polygons = polygons[idx] + rotated_polygons = rotated_polygons[idx] + return polygons, rotated_polygons + + def preprocess(self, img) -> Dict[str, Any]: + scale = (self.inp_height, self.inp_width) + img, _, _ = resize_img(img, scale, True) + img = img.copy().astype(np.float32) + assert img.dtype != np.uint8 + mean = np.float64(self.mean.reshape(1, -1)) + stdinv = 1 / np.float64(self.std.reshape(1, -1)) + cv2.cvtColor(img, cv2.COLOR_BGR2RGB, img) # inplace + cv2.subtract(img, mean, img) # inplace + cv2.multiply(img, stdinv, img) # inplace + img = img.transpose(2, 0, 1) + images = img[None, :] + return {"img": images} + + def infer(self, input): + result = self.session(input["img"][None, ...])[0][0] + result = result[0].astype(np.uint8) + return result + + def postprocess(self, img, pred, **kwargs): + row = kwargs.get("row", 50) if kwargs else 50 + col = kwargs.get("col", 30) if kwargs else 30 + h_lines_threshold = kwargs.get("h_lines_threshold", 100) if kwargs else 100 + v_lines_threshold = kwargs.get("v_lines_threshold", 15) if kwargs else 15 + angle = kwargs.get("angle", 50) if kwargs else 50 + enhance_box_line = kwargs.get("enhance_box_line", True) if kwargs else True + morph_close = ( + kwargs.get("morph_close", enhance_box_line) if kwargs else enhance_box_line + ) # 是否进行闭合运算以找到更多小的框 + more_h_lines = ( + kwargs.get("more_h_lines", enhance_box_line) if kwargs else enhance_box_line + ) # 是否调整以找到更多的横线 + more_v_lines = ( + kwargs.get("more_v_lines", enhance_box_line) if kwargs else enhance_box_line + ) # 是否调整以找到更多的横线 + extend_line = ( + kwargs.get("extend_line", enhance_box_line) if kwargs else enhance_box_line + ) # 是否进行线段延长使得端点连接 + # 是否进行旋转修正 + rotated_fix = kwargs.get("rotated_fix") if kwargs else True + ori_shape = img.shape + pred = np.uint8(pred) + hpred = copy.deepcopy(pred) # 横线 + vpred = copy.deepcopy(pred) # 竖线 + whereh = np.where(hpred == 1) + wherev = np.where(vpred == 2) + hpred[wherev] = 0 + vpred[whereh] = 0 + + hpred = cv2.resize(hpred, (ori_shape[1], ori_shape[0])) + vpred = cv2.resize(vpred, (ori_shape[1], ori_shape[0])) + + h, w = pred.shape + hors_k = int(math.sqrt(w) * 1.2) + vert_k = int(math.sqrt(h) * 1.2) + hkernel = cv2.getStructuringElement(cv2.MORPH_RECT, (hors_k, 1)) + vkernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1, vert_k)) + vpred = cv2.morphologyEx( + vpred, cv2.MORPH_CLOSE, vkernel, iterations=1 + ) # 先膨胀后腐蚀的过程 + if morph_close: + hpred = cv2.morphologyEx(hpred, cv2.MORPH_CLOSE, hkernel, iterations=1) + colboxes = get_table_line(vpred, axis=1, lineW=col) # 竖线 + rowboxes = get_table_line(hpred, axis=0, lineW=row) # 横线 + rboxes_row_, rboxes_col_ = [], [] + if more_h_lines: + rboxes_row_ = adjust_lines(rowboxes, alph=h_lines_threshold, angle=angle) + if more_v_lines: + rboxes_col_ = adjust_lines(colboxes, alph=v_lines_threshold, angle=angle) + rowboxes += rboxes_row_ + colboxes += rboxes_col_ + if extend_line: + rowboxes, colboxes = final_adjust_lines(rowboxes, colboxes) + line_img = np.zeros(img.shape[:2], dtype="uint8") + line_img = draw_lines(line_img, rowboxes + colboxes, color=255, lineW=2) + rotated_angle = self.cal_rotate_angle(line_img) + if rotated_fix and abs(rotated_angle) > 0.3: + rotated_line_img = self.rotate_image(line_img, rotated_angle) + rotated_polygons = self.cal_region_boxes(rotated_line_img) + polygons = self.unrotate_polygons( + rotated_polygons, rotated_angle, line_img.shape + ) + else: + polygons = self.cal_region_boxes(line_img) + rotated_polygons = polygons.copy() + return polygons, rotated_polygons + + def cal_region_boxes(self, tmp): + labels = measure.label(tmp < 255, connectivity=2) # 8连通区域标记 + regions = measure.regionprops(labels) + ceilboxes = min_area_rect_box( + regions, + False, + tmp.shape[1], + tmp.shape[0], + filtersmall=True, + adjust_box=False, + ) # 最后一个参数改为False + return np.array(ceilboxes) + + def cal_rotate_angle(self, tmp): + # 计算最外侧的旋转框 + contours, _ = cv2.findContours(tmp, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) + if not contours: + return 0 + largest_contour = max(contours, key=cv2.contourArea) + rect = cv2.minAreaRect(largest_contour) + # 计算旋转角度 + angle = rect[2] + if angle < -45: + angle += 90 + elif angle > 45: + angle -= 90 + return angle + + def rotate_image(self, image, angle): + # 获取图像的中心点 + (h, w) = image.shape[:2] + center = (w // 2, h // 2) + + # 计算旋转矩阵 + M = cv2.getRotationMatrix2D(center, angle, 1.0) + + # 进行旋转 + rotated_image = cv2.warpAffine( + image, M, (w, h), flags=cv2.INTER_NEAREST, borderMode=cv2.BORDER_REPLICATE + ) + + return rotated_image + + def unrotate_polygons( + self, polygons: np.ndarray, angle: float, img_shape: tuple + ) -> np.ndarray: + # 将多边形旋转回原始位置 + (h, w) = img_shape + center = (w // 2, h // 2) + M_inv = cv2.getRotationMatrix2D(center, -angle, 1.0) + + # 将 (N, 8) 转换为 (N, 4, 2) + polygons_reshaped = polygons.reshape(-1, 4, 2) + + # 批量逆旋转 + unrotated_polygons = cv2.transform(polygons_reshaped, M_inv) + + # 将 (N, 4, 2) 转换回 (N, 8) + unrotated_polygons = unrotated_polygons.reshape(-1, 8) + + return unrotated_polygons diff --git a/mineru/model/table/rec/unet_table/utils.py b/mineru/model/table/rec/unet_table/utils.py new file mode 100644 index 000000000..ab03eb552 --- /dev/null +++ b/mineru/model/table/rec/unet_table/utils.py @@ -0,0 +1,493 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import traceback +from enum import Enum +from io import BytesIO +from pathlib import Path +from typing import List, Union, Dict, Any, Tuple, Optional + +import cv2 +import loguru +import numpy as np +from onnxruntime import ( + GraphOptimizationLevel, + InferenceSession, + SessionOptions, + get_available_providers, +) +from PIL import Image, UnidentifiedImageError + + +root_dir = Path(__file__).resolve().parent +InputType = Union[str, np.ndarray, bytes, Path] + + +class EP(Enum): + CPU_EP = "CPUExecutionProvider" + + +class OrtInferSession: + def __init__(self, config: Dict[str, Any]): + self.logger = loguru.logger + + model_path = config.get("model_path", None) + + self.had_providers: List[str] = get_available_providers() + EP_list = self._get_ep_list() + + sess_opt = self._init_sess_opts(config) + self.session = InferenceSession( + model_path, + sess_options=sess_opt, + providers=EP_list, + ) + + @staticmethod + def _init_sess_opts(config: Dict[str, Any]) -> SessionOptions: + sess_opt = SessionOptions() + sess_opt.log_severity_level = 4 + sess_opt.enable_cpu_mem_arena = False + sess_opt.graph_optimization_level = GraphOptimizationLevel.ORT_ENABLE_ALL + + cpu_nums = os.cpu_count() + intra_op_num_threads = config.get("intra_op_num_threads", -1) + if intra_op_num_threads != -1 and 1 <= intra_op_num_threads <= cpu_nums: + sess_opt.intra_op_num_threads = intra_op_num_threads + + inter_op_num_threads = config.get("inter_op_num_threads", -1) + if inter_op_num_threads != -1 and 1 <= inter_op_num_threads <= cpu_nums: + sess_opt.inter_op_num_threads = inter_op_num_threads + + return sess_opt + + def _get_ep_list(self) -> List[Tuple[str, Dict[str, Any]]]: + cpu_provider_opts = { + "arena_extend_strategy": "kSameAsRequested", + } + EP_list = [(EP.CPU_EP.value, cpu_provider_opts)] + + return EP_list + + + def __call__(self, input_content: List[np.ndarray]) -> np.ndarray: + input_dict = dict(zip(self.get_input_names(), input_content)) + try: + return self.session.run(None, input_dict) + except Exception as e: + error_info = traceback.format_exc() + raise ONNXRuntimeError(error_info) from e + + def get_input_names(self) -> List[str]: + return [v.name for v in self.session.get_inputs()] + + +class ONNXRuntimeError(Exception): + pass + + +class LoadImage: + def __init__( + self, + ): + pass + + def __call__(self, img: InputType) -> np.ndarray: + if not isinstance(img, InputType.__args__): + raise LoadImageError( + f"The img type {type(img)} does not in {InputType.__args__}" + ) + + img = self.load_img(img) + img = self.convert_img(img) + return img + + def load_img(self, img: InputType) -> np.ndarray: + if isinstance(img, (str, Path)): + self.verify_exist(img) + try: + img = np.array(Image.open(img)) + except UnidentifiedImageError as e: + raise LoadImageError(f"cannot identify image file {img}") from e + return img + + if isinstance(img, bytes): + img = np.array(Image.open(BytesIO(img))) + return img + + if isinstance(img, np.ndarray): + return img + + raise LoadImageError(f"{type(img)} is not supported!") + + def convert_img(self, img: np.ndarray): + if img.ndim == 2: + return cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) + + if img.ndim == 3: + channel = img.shape[2] + if channel == 1: + return cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) + + if channel == 2: + return self.cvt_two_to_three(img) + + if channel == 4: + return self.cvt_four_to_three(img) + + if channel == 3: + return cv2.cvtColor(img, cv2.COLOR_RGB2BGR) + + raise LoadImageError( + f"The channel({channel}) of the img is not in [1, 2, 3, 4]" + ) + + raise LoadImageError(f"The ndim({img.ndim}) of the img is not in [2, 3]") + + @staticmethod + def cvt_four_to_three(img: np.ndarray) -> np.ndarray: + """RGBA → BGR""" + r, g, b, a = cv2.split(img) + new_img = cv2.merge((b, g, r)) + + not_a = cv2.bitwise_not(a) + not_a = cv2.cvtColor(not_a, cv2.COLOR_GRAY2BGR) + + new_img = cv2.bitwise_and(new_img, new_img, mask=a) + new_img = cv2.add(new_img, not_a) + return new_img + + @staticmethod + def cvt_two_to_three(img: np.ndarray) -> np.ndarray: + """gray + alpha → BGR""" + img_gray = img[..., 0] + img_bgr = cv2.cvtColor(img_gray, cv2.COLOR_GRAY2BGR) + + img_alpha = img[..., 1] + not_a = cv2.bitwise_not(img_alpha) + not_a = cv2.cvtColor(not_a, cv2.COLOR_GRAY2BGR) + + new_img = cv2.bitwise_and(img_bgr, img_bgr, mask=img_alpha) + new_img = cv2.add(new_img, not_a) + return new_img + + @staticmethod + def verify_exist(file_path: Union[str, Path]): + if not Path(file_path).exists(): + raise LoadImageError(f"{file_path} does not exist.") + + +class LoadImageError(Exception): + pass + + +# Pillow >=v9.1.0 use a slightly different naming scheme for filters. +# Set pillow_interp_codes according to the naming scheme used. +if Image is not None: + if hasattr(Image, "Resampling"): + pillow_interp_codes = { + "nearest": Image.Resampling.NEAREST, + "bilinear": Image.Resampling.BILINEAR, + "bicubic": Image.Resampling.BICUBIC, + "box": Image.Resampling.BOX, + "lanczos": Image.Resampling.LANCZOS, + "hamming": Image.Resampling.HAMMING, + } + else: + pillow_interp_codes = { + "nearest": Image.NEAREST, + "bilinear": Image.BILINEAR, + "bicubic": Image.BICUBIC, + "box": Image.BOX, + "lanczos": Image.LANCZOS, + "hamming": Image.HAMMING, + } + +cv2_interp_codes = { + "nearest": cv2.INTER_NEAREST, + "bilinear": cv2.INTER_LINEAR, + "bicubic": cv2.INTER_CUBIC, + "area": cv2.INTER_AREA, + "lanczos": cv2.INTER_LANCZOS4, +} + + +def resize_img(img, scale, keep_ratio=True): + if keep_ratio: + # 缩小使用area更保真 + if min(img.shape[:2]) > min(scale): + interpolation = "area" + else: + interpolation = "bicubic" # bilinear + img_new, scale_factor = imrescale( + img, scale, return_scale=True, interpolation=interpolation + ) + # the w_scale and h_scale has minor difference + # a real fix should be done in the mmcv.imrescale in the future + new_h, new_w = img_new.shape[:2] + h, w = img.shape[:2] + w_scale = new_w / w + h_scale = new_h / h + else: + img_new, w_scale, h_scale = imresize(img, scale, return_scale=True) + return img_new, w_scale, h_scale + + +def imrescale(img, scale, return_scale=False, interpolation="bilinear", backend=None): + """Resize image while keeping the aspect ratio. + + Args: + img (ndarray): The input image. + scale (float | tuple[int]): The scaling factor or maximum size. + If it is a float number, then the image will be rescaled by this + factor, else if it is a tuple of 2 integers, then the image will + be rescaled as large as possible within the scale. + return_scale (bool): Whether to return the scaling factor besides the + rescaled image. + interpolation (str): Same as :func:`resize`. + backend (str | None): Same as :func:`resize`. + + Returns: + ndarray: The rescaled image. + """ + h, w = img.shape[:2] + new_size, scale_factor = rescale_size((w, h), scale, return_scale=True) + rescaled_img = imresize(img, new_size, interpolation=interpolation, backend=backend) + if return_scale: + return rescaled_img, scale_factor + else: + return rescaled_img + + +def imresize( + img, size, return_scale=False, interpolation="bilinear", out=None, backend=None +): + """Resize image to a given size. + + Args: + img (ndarray): The input image. + size (tuple[int]): Target size (w, h). + return_scale (bool): Whether to return `w_scale` and `h_scale`. + interpolation (str): Interpolation method, accepted values are + "nearest", "bilinear", "bicubic", "area", "lanczos" for 'cv2' + backend, "nearest", "bilinear" for 'pillow' backend. + out (ndarray): The output destination. + backend (str | None): The image resize backend type. Options are `cv2`, + `pillow`, `None`. If backend is None, the global imread_backend + specified by ``mmcv.use_backend()`` will be used. Default: None. + + Returns: + tuple | ndarray: (`resized_img`, `w_scale`, `h_scale`) or + `resized_img`. + """ + h, w = img.shape[:2] + if backend is None: + backend = "cv2" + if backend not in ["cv2", "pillow"]: + raise ValueError( + f"backend: {backend} is not supported for resize." + f"Supported backends are 'cv2', 'pillow'" + ) + + if backend == "pillow": + assert img.dtype == np.uint8, "Pillow backend only support uint8 type" + pil_image = Image.fromarray(img) + pil_image = pil_image.resize(size, pillow_interp_codes[interpolation]) + resized_img = np.array(pil_image) + else: + resized_img = cv2.resize( + img, size, dst=out, interpolation=cv2_interp_codes[interpolation] + ) + if not return_scale: + return resized_img + else: + w_scale = size[0] / w + h_scale = size[1] / h + return resized_img, w_scale, h_scale + + +def rescale_size(old_size, scale, return_scale=False): + """Calculate the new size to be rescaled to. + + Args: + old_size (tuple[int]): The old size (w, h) of image. + scale (float | tuple[int]): The scaling factor or maximum size. + If it is a float number, then the image will be rescaled by this + factor, else if it is a tuple of 2 integers, then the image will + be rescaled as large as possible within the scale. + return_scale (bool): Whether to return the scaling factor besides the + rescaled image size. + + Returns: + tuple[int]: The new rescaled image size. + """ + w, h = old_size + if isinstance(scale, (float, int)): + if scale <= 0: + raise ValueError(f"Invalid scale {scale}, must be positive.") + scale_factor = scale + elif isinstance(scale, tuple): + max_long_edge = max(scale) + max_short_edge = min(scale) + scale_factor = min(max_long_edge / max(h, w), max_short_edge / min(h, w)) + else: + raise TypeError( + f"Scale must be a number or tuple of int, but got {type(scale)}" + ) + + new_size = _scale_size((w, h), scale_factor) + + if return_scale: + return new_size, scale_factor + else: + return new_size + + +def _scale_size(size, scale): + """Rescale a size by a ratio. + + Args: + size (tuple[int]): (w, h). + scale (float | tuple(float)): Scaling factor. + + Returns: + tuple[int]: scaled size. + """ + if isinstance(scale, (float, int)): + scale = (scale, scale) + w, h = size + return int(w * float(scale[0]) + 0.5), int(h * float(scale[1]) + 0.5) + + +class VisTable: + def __init__(self): + self.load_img = LoadImage() + + def __call__( + self, + img_path: Union[str, Path], + table_results, + save_html_path: Optional[Union[str, Path]] = None, + save_drawed_path: Optional[Union[str, Path]] = None, + save_logic_path: Optional[Union[str, Path]] = None, + ): + if save_html_path: + html_with_border = self.insert_border_style(table_results.pred_html) + self.save_html(save_html_path, html_with_border) + + table_cell_bboxes = table_results.cell_bboxes + table_logic_points = table_results.logic_points + if table_cell_bboxes is None: + return None + + img = self.load_img(img_path) + + dims_bboxes = table_cell_bboxes.shape[1] + if dims_bboxes == 4: + drawed_img = self.draw_rectangle(img, table_cell_bboxes) + elif dims_bboxes == 8: + drawed_img = self.draw_polylines(img, table_cell_bboxes) + else: + raise ValueError("Shape of table bounding boxes is not between in 4 or 8.") + + if save_drawed_path: + self.save_img(save_drawed_path, drawed_img) + + if save_logic_path: + polygons = [[box[0], box[1], box[4], box[5]] for box in table_cell_bboxes] + self.plot_rec_box_with_logic_info( + img, save_logic_path, table_logic_points, polygons + ) + return drawed_img + + def insert_border_style(self, table_html_str: str): + style_res = """""" + + prefix_table, suffix_table = table_html_str.split("") + html_with_border = f"{prefix_table}{style_res}{suffix_table}" + return html_with_border + + def plot_rec_box_with_logic_info( + self, img, output_path, logic_points, sorted_polygons + ): + """ + :param img_path + :param output_path + :param logic_points: [row_start,row_end,col_start,col_end] + :param sorted_polygons: [xmin,ymin,xmax,ymax] + :return: + """ + # 读取原图 + img = cv2.copyMakeBorder( + img, 0, 0, 0, 100, cv2.BORDER_CONSTANT, value=[255, 255, 255] + ) + # 绘制 polygons 矩形 + for idx, polygon in enumerate(sorted_polygons): + x0, y0, x1, y1 = polygon[0], polygon[1], polygon[2], polygon[3] + x0 = round(x0) + y0 = round(y0) + x1 = round(x1) + y1 = round(y1) + cv2.rectangle(img, (x0, y0), (x1, y1), (0, 0, 255), 1) + # 增大字体大小和线宽 + font_scale = 0.9 # 原先是0.5 + thickness = 1 # 原先是1 + logic_point = logic_points[idx] + cv2.putText( + img, + f"row: {logic_point[0]}-{logic_point[1]}", + (x0 + 3, y0 + 8), + cv2.FONT_HERSHEY_PLAIN, + font_scale, + (0, 0, 255), + thickness, + ) + cv2.putText( + img, + f"col: {logic_point[2]}-{logic_point[3]}", + (x0 + 3, y0 + 18), + cv2.FONT_HERSHEY_PLAIN, + font_scale, + (0, 0, 255), + thickness, + ) + os.makedirs(os.path.dirname(output_path), exist_ok=True) + # 保存绘制后的图像 + self.save_img(output_path, img) + + @staticmethod + def draw_rectangle(img: np.ndarray, boxes: np.ndarray) -> np.ndarray: + img_copy = img.copy() + for box in boxes.astype(int): + x1, y1, x2, y2 = box + cv2.rectangle(img_copy, (x1, y1), (x2, y2), (255, 0, 0), 2) + return img_copy + + @staticmethod + def draw_polylines(img: np.ndarray, points) -> np.ndarray: + img_copy = img.copy() + for point in points.astype(int): + point = point.reshape(4, 2) + cv2.polylines(img_copy, [point.astype(int)], True, (255, 0, 0), 2) + return img_copy + + @staticmethod + def save_img(save_path: Union[str, Path], img: np.ndarray): + cv2.imwrite(str(save_path), img) + + @staticmethod + def save_html(save_path: Union[str, Path], html: str): + with open(save_path, "w", encoding="utf-8") as f: + f.write(html) diff --git a/mineru/model/table/rec/unet_table/utils_table_line_rec.py b/mineru/model/table/rec/unet_table/utils_table_line_rec.py new file mode 100644 index 000000000..5b4e74477 --- /dev/null +++ b/mineru/model/table/rec/unet_table/utils_table_line_rec.py @@ -0,0 +1,354 @@ +# Copyright (c) Opendatalab. All rights reserved. +import math + +import cv2 +import numpy as np +from scipy.spatial import distance as dist +from skimage import measure +from skimage import __version__ as skimage_version +from packaging import version + + +def transform_preds(coords, center, scale, output_size, rot=0): + target_coords = np.zeros(coords.shape) + trans = get_affine_transform(center, scale, rot, output_size, inv=1) + for p in range(coords.shape[0]): + target_coords[p, 0:2] = affine_transform(coords[p, 0:2], trans) + return target_coords + + +def get_affine_transform( + center, scale, rot, output_size, shift=np.array([0, 0], dtype=np.float32), inv=0 +): + if not isinstance(scale, np.ndarray) and not isinstance(scale, list): + scale = np.array([scale, scale], dtype=np.float32) + + scale_tmp = scale + src_w = scale_tmp[0] + dst_w = output_size[0] + dst_h = output_size[1] + + rot_rad = np.pi * rot / 180 + src_dir = get_dir([0, src_w * -0.5], rot_rad) + dst_dir = np.array([0, dst_w * -0.5], np.float32) + + src = np.zeros((3, 2), dtype=np.float32) + dst = np.zeros((3, 2), dtype=np.float32) + src[0, :] = center + scale_tmp * shift + src[1, :] = center + src_dir + scale_tmp * shift + dst[0, :] = [dst_w * 0.5, dst_h * 0.5] + dst[1, :] = np.array([dst_w * 0.5, dst_h * 0.5], np.float32) + dst_dir + + src[2:, :] = get_3rd_point(src[0, :], src[1, :]) + dst[2:, :] = get_3rd_point(dst[0, :], dst[1, :]) + + if inv: + trans = cv2.getAffineTransform(np.float32(dst), np.float32(src)) + else: + trans = cv2.getAffineTransform(np.float32(src), np.float32(dst)) + + return trans + + +def affine_transform(pt, t): + new_pt = np.array([pt[0], pt[1], 1.0], dtype=np.float32).T + new_pt = np.dot(t, new_pt) + return new_pt[:2] + + +def get_dir(src_point, rot_rad): + sn, cs = np.sin(rot_rad), np.cos(rot_rad) + + src_result = [0, 0] + src_result[0] = src_point[0] * cs - src_point[1] * sn + src_result[1] = src_point[0] * sn + src_point[1] * cs + + return src_result + + +def get_3rd_point(a, b): + direct = a - b + return b + np.array([-direct[1], direct[0]], dtype=np.float32) + + +def get_table_line(binimg, axis=0, lineW=10): + ##获取表格线 + ##axis=0 横线 + ##axis=1 竖线 + labels = measure.label(binimg > 0, connectivity=2) # 8连通区域标记 + regions = measure.regionprops(labels) + if axis == 1: + lineboxes = [ + min_area_rect(line.coords) + for line in regions + if line.bbox[2] - line.bbox[0] > lineW + ] + else: + lineboxes = [ + min_area_rect(line.coords) + for line in regions + if line.bbox[3] - line.bbox[1] > lineW + ] + return lineboxes + + +def min_area_rect(coords): + """ + 多边形外接矩形 + """ + rect = cv2.minAreaRect(coords[:, ::-1]) + box = cv2.boxPoints(rect) + box = box.reshape((8,)).tolist() + + box = image_location_sort_box(box) + + x1, y1, x2, y2, x3, y3, x4, y4 = box + degree, w, h, cx, cy = calculate_center_rotate_angle(box) + if w < h: + xmin = (x1 + x2) / 2 + xmax = (x3 + x4) / 2 + ymin = (y1 + y2) / 2 + ymax = (y3 + y4) / 2 + + else: + xmin = (x1 + x4) / 2 + xmax = (x2 + x3) / 2 + ymin = (y1 + y4) / 2 + ymax = (y2 + y3) / 2 + # degree,w,h,cx,cy = solve(box) + # x1,y1,x2,y2,x3,y3,x4,y4 = box + # return {'degree':degree,'w':w,'h':h,'cx':cx,'cy':cy} + return [xmin, ymin, xmax, ymax] + + +def image_location_sort_box(box): + x1, y1, x2, y2, x3, y3, x4, y4 = box[:8] + pts = (x1, y1), (x2, y2), (x3, y3), (x4, y4) + pts = np.array(pts, dtype="float32") + (x1, y1), (x2, y2), (x3, y3), (x4, y4) = _order_points(pts) + return [x1, y1, x2, y2, x3, y3, x4, y4] + + +def calculate_center_rotate_angle(box): + """ + 绕 cx,cy点 w,h 旋转 angle 的坐标,能一定程度缓解图片的内部倾斜,但是还是依赖模型稳妥 + x = cx-w/2 + y = cy-h/2 + x1-cx = -w/2*cos(angle) +h/2*sin(angle) + y1 -cy= -w/2*sin(angle) -h/2*cos(angle) + + h(x1-cx) = -wh/2*cos(angle) +hh/2*sin(angle) + w(y1 -cy)= -ww/2*sin(angle) -hw/2*cos(angle) + (hh+ww)/2sin(angle) = h(x1-cx)-w(y1 -cy) + + """ + x1, y1, x2, y2, x3, y3, x4, y4 = box[:8] + cx = (x1 + x3 + x2 + x4) / 4.0 + cy = (y1 + y3 + y4 + y2) / 4.0 + w = ( + np.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) + + np.sqrt((x3 - x4) ** 2 + (y3 - y4) ** 2) + ) / 2 + h = ( + np.sqrt((x2 - x3) ** 2 + (y2 - y3) ** 2) + + np.sqrt((x1 - x4) ** 2 + (y1 - y4) ** 2) + ) / 2 + # x = cx-w/2 + # y = cy-h/2 + sinA = (h * (x1 - cx) - w * (y1 - cy)) * 1.0 / (h * h + w * w + 1e-10) * 2 + angle = np.arcsin(sinA) + return angle, w, h, cx, cy + + +def _order_points(pts): + # 根据x坐标对点进行排序 + """ + --------------------- + 本项目中是为了排序后得到[(xmin,ymin),(xmax,ymin),(xmax,ymax),(xmin,ymax)] + 作者:Tong_T + 来源:CSDN + 原文:https://blog.csdn.net/Tong_T/article/details/81907132 + 版权声明:本文为博主原创文章,转载请附上博文链接! + """ + x_sorted = pts[np.argsort(pts[:, 0]), :] + + left_most = x_sorted[:2, :] + right_most = x_sorted[2:, :] + left_most = left_most[np.argsort(left_most[:, 1]), :] + (tl, bl) = left_most + + distance = dist.cdist(tl[np.newaxis], right_most, "euclidean")[0] + (br, tr) = right_most[np.argsort(distance)[::-1], :] + + return np.array([tl, tr, br, bl], dtype="float32") + + +def sqrt(p1, p2): + return np.sqrt((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2) + + +def adjust_lines(lines, alph=50, angle=50): + lines_n = len(lines) + new_lines = [] + for i in range(lines_n): + x1, y1, x2, y2 = lines[i] + cx1, cy1 = (x1 + x2) / 2, (y1 + y2) / 2 + for j in range(lines_n): + if i != j: + x3, y3, x4, y4 = lines[j] + cx2, cy2 = (x3 + x4) / 2, (y3 + y4) / 2 + if (x3 < cx1 < x4 or y3 < cy1 < y4) or ( + x1 < cx2 < x2 or y1 < cy2 < y2 + ): # 判断两个横线在y方向的投影重不重合 + continue + else: + r = sqrt((x1, y1), (x3, y3)) + k = abs((y3 - y1) / (x3 - x1 + 1e-10)) + a = math.atan(k) * 180 / math.pi + if r < alph and a < angle: + new_lines.append((x1, y1, x3, y3)) + + r = sqrt((x1, y1), (x4, y4)) + k = abs((y4 - y1) / (x4 - x1 + 1e-10)) + a = math.atan(k) * 180 / math.pi + if r < alph and a < angle: + new_lines.append((x1, y1, x4, y4)) + + r = sqrt((x2, y2), (x3, y3)) + k = abs((y3 - y2) / (x3 - x2 + 1e-10)) + a = math.atan(k) * 180 / math.pi + if r < alph and a < angle: + new_lines.append((x2, y2, x3, y3)) + r = sqrt((x2, y2), (x4, y4)) + k = abs((y4 - y2) / (x4 - x2 + 1e-10)) + a = math.atan(k) * 180 / math.pi + if r < alph and a < angle: + new_lines.append((x2, y2, x4, y4)) + return new_lines + + +def final_adjust_lines(rowboxes, colboxes): + nrow = len(rowboxes) + ncol = len(colboxes) + for i in range(nrow): + for j in range(ncol): + rowboxes[i] = line_to_line(rowboxes[i], colboxes[j], alpha=20, angle=30) + colboxes[j] = line_to_line(colboxes[j], rowboxes[i], alpha=20, angle=30) + return rowboxes, colboxes + + +def draw_lines(im, bboxes, color=(0, 0, 0), lineW=3): + """ + boxes: bounding boxes + """ + tmp = np.copy(im) + c = color + h, w = im.shape[:2] + + for box in bboxes: + x1, y1, x2, y2 = box[:4] + cv2.line( + tmp, (int(x1), int(y1)), (int(x2), int(y2)), c, lineW, lineType=cv2.LINE_AA + ) + + return tmp + + +def line_to_line(points1, points2, alpha=10, angle=30): + """ + 线段之间的距离 + """ + x1, y1, x2, y2 = points1 + ox1, oy1, ox2, oy2 = points2 + xy = np.array([(x1, y1), (x2, y2)], dtype="float32") + A1, B1, C1 = fit_line(xy) + oxy = np.array([(ox1, oy1), (ox2, oy2)], dtype="float32") + A2, B2, C2 = fit_line(oxy) + flag1 = point_line_cor(np.array([x1, y1], dtype="float32"), A2, B2, C2) + flag2 = point_line_cor(np.array([x2, y2], dtype="float32"), A2, B2, C2) + + if (flag1 > 0 and flag2 > 0) or (flag1 < 0 and flag2 < 0): # 横线或者竖线在竖线或者横线的同一侧 + if (A1 * B2 - A2 * B1) != 0: + x = (B1 * C2 - B2 * C1) / (A1 * B2 - A2 * B1) + y = (A2 * C1 - A1 * C2) / (A1 * B2 - A2 * B1) + # x, y = round(x, 2), round(y, 2) + p = (x, y) # 横线与竖线的交点 + r0 = sqrt(p, (x1, y1)) + r1 = sqrt(p, (x2, y2)) + + if min(r0, r1) < alpha: # 若交点与线起点或者终点的距离小于alpha,则延长线到交点 + if r0 < r1: + k = abs((y2 - p[1]) / (x2 - p[0] + 1e-10)) + a = math.atan(k) * 180 / math.pi + if a < angle or abs(90 - a) < angle: + points1 = np.array([p[0], p[1], x2, y2], dtype="float32") + else: + k = abs((y1 - p[1]) / (x1 - p[0] + 1e-10)) + a = math.atan(k) * 180 / math.pi + if a < angle or abs(90 - a) < angle: + points1 = np.array([x1, y1, p[0], p[1]], dtype="float32") + return points1 + + +def min_area_rect_box( + regions, flag=True, W=0, H=0, filtersmall=False, adjust_box=False +): + """ + 多边形外接矩形 + """ + boxes = [] + for region in regions: + if version.parse(skimage_version) >= version.parse("0.26.0"): + region_bbox_area = region.area_bbox + else: + region_bbox_area = region.bbox_area + if region_bbox_area > H * W * 3 / 4: # 过滤大的单元格 + continue + rect = cv2.minAreaRect(region.coords[:, ::-1]) + + box = cv2.boxPoints(rect) + box = box.reshape((8,)).tolist() + box = image_location_sort_box(box) + x1, y1, x2, y2, x3, y3, x4, y4 = box + angle, w, h, cx, cy = calculate_center_rotate_angle(box) + # if adjustBox: + # x1, y1, x2, y2, x3, y3, x4, y4 = xy_rotate_box(cx, cy, w + 5, h + 5, angle=0, degree=None) + # x1, x4 = max(x1, 0), max(x4, 0) + # y1, y2 = max(y1, 0), max(y2, 0) + + # if w > 32 and h > 32 and flag: + # if abs(angle / np.pi * 180) < 20: + # if filtersmall and (w < 10 or h < 10): + # continue + # boxes.append([x1, y1, x2, y2, x3, y3, x4, y4]) + # else: + if w * h < 0.5 * W * H: + if filtersmall and ( + w < 15 or h < 15 + ): # or w / h > 30 or h / w > 30): # 过滤小的单元格 + continue + boxes.append([x1, y1, x2, y2, x3, y3, x4, y4]) + return boxes + + +def point_line_cor(p, A, B, C): + ##判断点与线之间的位置关系 + # 一般式直线方程(Ax+By+c)=0 + x, y = p + r = A * x + B * y + C + return r + + +def fit_line(p): + """A = Y2 - Y1 + B = X1 - X2 + C = X2*Y1 - X1*Y2 + AX+BY+C=0 + 直线一般方程 + """ + x1, y1 = p[0] + x2, y2 = p[1] + A = y2 - y1 + B = x1 - x2 + C = x2 * y1 - x1 * y2 + return A, B, C diff --git a/mineru/model/table/rec/unet_table/utils_table_recover.py b/mineru/model/table/rec/unet_table/utils_table_recover.py new file mode 100644 index 000000000..f1f6b2bbd --- /dev/null +++ b/mineru/model/table/rec/unet_table/utils_table_recover.py @@ -0,0 +1,312 @@ +# Copyright (c) Opendatalab. All rights reserved. +from typing import Any, Dict, List, Union, Tuple + +import numpy as np + + +def calculate_iou( + box1: Union[np.ndarray, List], box2: Union[np.ndarray, List] +) -> float: + """ + :param box1: Iterable [xmin,ymin,xmax,ymax] + :param box2: Iterable [xmin,ymin,xmax,ymax] + :return: iou: float 0-1 + """ + b1_x1, b1_y1, b1_x2, b1_y2 = box1[0], box1[1], box1[2], box1[3] + b2_x1, b2_y1, b2_x2, b2_y2 = box2[0], box2[1], box2[2], box2[3] + # 不相交直接退出检测 + if b1_x2 < b2_x1 or b1_x1 > b2_x2 or b1_y2 < b2_y1 or b1_y1 > b2_y2: + return 0.0 + # 计算交集 + inter_x1 = max(b1_x1, b2_x1) + inter_y1 = max(b1_y1, b2_y1) + inter_x2 = min(b1_x2, b2_x2) + inter_y2 = min(b1_y2, b2_y2) + i_area = max(0, inter_x2 - inter_x1) * max(0, inter_y2 - inter_y1) + + # 计算并集 + b1_area = (b1_x2 - b1_x1) * (b1_y2 - b1_y1) + b2_area = (b2_x2 - b2_x1) * (b2_y2 - b2_y1) + u_area = b1_area + b2_area - i_area + + # 避免除零错误,如果区域小到乘积为0,认为是错误识别,直接去掉 + if u_area == 0: + return 1 + # 检查完全包含 + iou = i_area / u_area + return iou + + + +def is_box_contained( + box1: Union[np.ndarray, List], box2: Union[np.ndarray, List], threshold=0.2 +) -> Union[int, None]: + """ + :param box1: Iterable [xmin,ymin,xmax,ymax] + :param box2: Iterable [xmin,ymin,xmax,ymax] + :return: 1: box1 is contained 2: box2 is contained None: no contain these + """ + b1_x1, b1_y1, b1_x2, b1_y2 = box1[0], box1[1], box1[2], box1[3] + b2_x1, b2_y1, b2_x2, b2_y2 = box2[0], box2[1], box2[2], box2[3] + # 不相交直接退出检测 + if b1_x2 < b2_x1 or b1_x1 > b2_x2 or b1_y2 < b2_y1 or b1_y1 > b2_y2: + return None + # 计算box2的总面积 + b2_area = (b2_x2 - b2_x1) * (b2_y2 - b2_y1) + b1_area = (b1_x2 - b1_x1) * (b1_y2 - b1_y1) + + # 计算box1和box2的交集 + intersect_x1 = max(b1_x1, b2_x1) + intersect_y1 = max(b1_y1, b2_y1) + intersect_x2 = min(b1_x2, b2_x2) + intersect_y2 = min(b1_y2, b2_y2) + + # 计算交集的面积 + intersect_area = max(0, intersect_x2 - intersect_x1) * max( + 0, intersect_y2 - intersect_y1 + ) + + # 计算外面的面积 + b1_outside_area = b1_area - intersect_area + b2_outside_area = b2_area - intersect_area + + # 计算外面的面积占box2总面积的比例 + ratio_b1 = b1_outside_area / b1_area if b1_area > 0 else 0 + ratio_b2 = b2_outside_area / b2_area if b2_area > 0 else 0 + + if ratio_b1 < threshold: + return 1 + if ratio_b2 < threshold: + return 2 + # 判断比例是否大于阈值 + return None + + +def is_single_axis_contained( + box1: Union[np.ndarray, List], + box2: Union[np.ndarray, List], + axis="x", + threhold: float = 0.2, +) -> Union[int, None]: + """ + :param box1: Iterable [xmin,ymin,xmax,ymax] + :param box2: Iterable [xmin,ymin,xmax,ymax] + :return: 1: box1 is contained 2: box2 is contained None: no contain these + """ + b1_x1, b1_y1, b1_x2, b1_y2 = box1[0], box1[1], box1[2], box1[3] + b2_x1, b2_y1, b2_x2, b2_y2 = box2[0], box2[1], box2[2], box2[3] + + # 计算轴重叠大小 + if axis == "x": + b1_area = b1_x2 - b1_x1 + b2_area = b2_x2 - b2_x1 + i_area = min(b1_x2, b2_x2) - max(b1_x1, b2_x1) + else: + b1_area = b1_y2 - b1_y1 + b2_area = b2_y2 - b2_y1 + i_area = min(b1_y2, b2_y2) - max(b1_y1, b2_y1) + # 计算外面的面积 + b1_outside_area = b1_area - i_area + b2_outside_area = b2_area - i_area + + ratio_b1 = b1_outside_area / b1_area if b1_area > 0 else 0 + ratio_b2 = b2_outside_area / b2_area if b2_area > 0 else 0 + if ratio_b1 < threhold: + return 1 + if ratio_b2 < threhold: + return 2 + return None + + +def sorted_ocr_boxes( + dt_boxes: Union[np.ndarray, list], threhold: float = 0.2 +) -> Tuple[Union[np.ndarray, list], List[int]]: + """ + Sort text boxes in order from top to bottom, left to right + args: + dt_boxes(array):detected text boxes with (xmin, ymin, xmax, ymax) + return: + sorted boxes(array) with (xmin, ymin, xmax, ymax) + """ + num_boxes = len(dt_boxes) + if num_boxes <= 0: + return dt_boxes, [] + indexed_boxes = [(box, idx) for idx, box in enumerate(dt_boxes)] + sorted_boxes_with_idx = sorted(indexed_boxes, key=lambda x: (x[0][1], x[0][0])) + _boxes, indices = zip(*sorted_boxes_with_idx) + indices = list(indices) + _boxes = [dt_boxes[i] for i in indices] + threahold = 20 + # 避免输出和输入格式不对应,与函数功能不符合 + if isinstance(dt_boxes, np.ndarray): + _boxes = np.array(_boxes) + for i in range(num_boxes - 1): + for j in range(i, -1, -1): + c_idx = is_single_axis_contained( + _boxes[j], _boxes[j + 1], axis="y", threhold=threhold + ) + if ( + c_idx is not None + and _boxes[j + 1][0] < _boxes[j][0] + and abs(_boxes[j][1] - _boxes[j + 1][1]) < threahold + ): + _boxes[j], _boxes[j + 1] = _boxes[j + 1].copy(), _boxes[j].copy() + indices[j], indices[j + 1] = indices[j + 1], indices[j] + else: + break + return _boxes, indices + + +def box_4_1_poly_to_box_4_2(poly_box: Union[list, np.ndarray]) -> List[List[float]]: + xmin, ymin, xmax, ymax = tuple(poly_box) + return [[xmin, ymin], [xmax, ymin], [xmax, ymax], [xmin, ymax]] + + +def box_4_2_poly_to_box_4_1(poly_box: Union[list, np.ndarray]) -> List[Any]: + """ + 将poly_box转换为box_4_1 + :param poly_box: + :return: + """ + return [poly_box[0][0], poly_box[0][1], poly_box[2][0], poly_box[2][1]] + + +def match_ocr_cell(dt_rec_boxes: List[List[Union[Any, str]]], pred_bboxes: np.ndarray): + """ + :param dt_rec_boxes: [[(4.2), text, score]] + :param pred_bboxes: shap (4,2) + :return: + """ + matched = {} + not_match_orc_boxes = [] + for i, gt_box in enumerate(dt_rec_boxes): + for j, pred_box in enumerate(pred_bboxes): + pred_box = [pred_box[0][0], pred_box[0][1], pred_box[2][0], pred_box[2][1]] + ocr_boxes = gt_box[0] + # xmin,ymin,xmax,ymax + ocr_box = ( + ocr_boxes[0][0], + ocr_boxes[0][1], + ocr_boxes[2][0], + ocr_boxes[2][1], + ) + contained = is_box_contained(ocr_box, pred_box, 0.6) + if contained == 1 or calculate_iou(ocr_box, pred_box) > 0.8: + if j not in matched: + matched[j] = [gt_box] + else: + matched[j].append(gt_box) + else: + not_match_orc_boxes.append(gt_box) + + return matched, not_match_orc_boxes + + +def gather_ocr_list_by_row(ocr_list: List[Any], threhold: float = 0.2) -> List[Any]: + """ + :param ocr_list: [[[xmin,ymin,xmax,ymax], text]] + :return: + """ + threshold = 10 + for i in range(len(ocr_list)): + if not ocr_list[i]: + continue + + for j in range(i + 1, len(ocr_list)): + if not ocr_list[j]: + continue + cur = ocr_list[i] + next = ocr_list[j] + cur_box = cur[0] + next_box = next[0] + c_idx = is_single_axis_contained( + cur[0], next[0], axis="y", threhold=threhold + ) + if c_idx: + dis = max(next_box[0] - cur_box[2], 0) + blank_str = int(dis / threshold) * " " + cur[1] = cur[1] + blank_str + next[1] + xmin = min(cur_box[0], next_box[0]) + xmax = max(cur_box[2], next_box[2]) + ymin = min(cur_box[1], next_box[1]) + ymax = max(cur_box[3], next_box[3]) + cur_box[0] = xmin + cur_box[1] = ymin + cur_box[2] = xmax + cur_box[3] = ymax + ocr_list[j] = None + ocr_list = [x for x in ocr_list if x] + return ocr_list + + +def plot_html_table( + logi_points: Union[Union[np.ndarray, List]], cell_box_map: Dict[int, List[str]] +) -> str: + # 初始化最大行数和列数 + max_row = 0 + max_col = 0 + # 计算最大行数和列数 + for point in logi_points: + max_row = max(max_row, point[1] + 1) # 加1是因为结束下标是包含在内的 + max_col = max(max_col, point[3] + 1) # 加1是因为结束下标是包含在内的 + + # 创建一个二维数组来存储 sorted_logi_points 中的元素 + grid = [[None] * max_col for _ in range(max_row)] + + valid_start_row = (1 << 16) - 1 + valid_start_col = (1 << 16) - 1 + valid_end_col = 0 + # 将 sorted_logi_points 中的元素填充到 grid 中 + for i, logic_point in enumerate(logi_points): + row_start, row_end, col_start, col_end = ( + logic_point[0], + logic_point[1], + logic_point[2], + logic_point[3], + ) + ocr_rec_text_list = cell_box_map.get(i) + if ocr_rec_text_list and "".join(ocr_rec_text_list): + valid_start_row = min(row_start, valid_start_row) + valid_start_col = min(col_start, valid_start_col) + valid_end_col = max(col_end, valid_end_col) + for row in range(row_start, row_end + 1): + for col in range(col_start, col_end + 1): + grid[row][col] = (i, row_start, row_end, col_start, col_end) + + # 创建表格 + table_html = "" + + # 遍历每行 + for row in range(max_row): + if row < valid_start_row: + continue + temp = "" + # 遍历每一列 + for col in range(max_col): + if col < valid_start_col or col > valid_end_col: + continue + if not grid[row][col]: + temp += "" + else: + i, row_start, row_end, col_start, col_end = grid[row][col] + if not cell_box_map.get(i): + continue + if row == row_start and col == col_start: + ocr_rec_text = cell_box_map.get(i) + # text = "
".join(ocr_rec_text) + text = "".join(ocr_rec_text) + # 如果是起始单元格 + row_span = row_end - row_start + 1 + col_span = col_end - col_start + 1 + cell_content = ( + f"" + ) + temp += cell_content + + table_html = table_html + temp + "" + + table_html += "
{text}
" + return table_html + + + diff --git a/mineru/model/utils/__init__.py b/mineru/model/utils/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/utils/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/utils/pytorchocr/__init__.py b/mineru/model/utils/pytorchocr/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/utils/pytorchocr/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/utils/pytorchocr/base_ocr_v20.py b/mineru/model/utils/pytorchocr/base_ocr_v20.py new file mode 100644 index 000000000..07d334644 --- /dev/null +++ b/mineru/model/utils/pytorchocr/base_ocr_v20.py @@ -0,0 +1,40 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import torch +from .modeling.architectures.base_model import BaseModel + +class BaseOCRV20: + def __init__(self, config, **kwargs): + self.config = config + self.build_net(**kwargs) + self.net.eval() + + + def build_net(self, **kwargs): + self.net = BaseModel(self.config, **kwargs) + + def read_pytorch_weights(self, weights_path): + if not os.path.exists(weights_path): + raise FileNotFoundError('{} is not existed.'.format(weights_path)) + weights = torch.load(weights_path) + return weights + + def get_out_channels(self, weights): + if list(weights.keys())[-1].endswith('.weight') and len(list(weights.values())[-1].shape) == 2: + out_channels = list(weights.values())[-1].numpy().shape[1] + else: + out_channels = list(weights.values())[-1].numpy().shape[0] + return out_channels + + def load_state_dict(self, weights): + self.net.load_state_dict(weights) + # print('weights is loaded.') + + def load_pytorch_weights(self, weights_path): + self.net.load_state_dict(torch.load(weights_path, weights_only=True)) + # print('model is loaded: {}'.format(weights_path)) + + def inference(self, inputs): + with torch.no_grad(): + infer = self.net(inputs) + return infer diff --git a/mineru/model/utils/pytorchocr/data/__init__.py b/mineru/model/utils/pytorchocr/data/__init__.py new file mode 100644 index 000000000..c547df169 --- /dev/null +++ b/mineru/model/utils/pytorchocr/data/__init__.py @@ -0,0 +1,9 @@ +# Copyright (c) Opendatalab. All rights reserved. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +from .imaug import transform, create_operators + + diff --git a/mineru/model/utils/pytorchocr/data/imaug/__init__.py b/mineru/model/utils/pytorchocr/data/imaug/__init__.py new file mode 100644 index 000000000..6ba2f911e --- /dev/null +++ b/mineru/model/utils/pytorchocr/data/imaug/__init__.py @@ -0,0 +1,49 @@ +# Copyright (c) Opendatalab. All rights reserved. +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +# from .iaa_augment import IaaAugment +# from .make_border_map import MakeBorderMap +# from .make_shrink_map import MakeShrinkMap +# from .random_crop_data import EastRandomCropData, PSERandomCrop + +# from .rec_img_aug import RecAug, RecResizeImg, ClsResizeImg +# from .randaugment import RandAugment +from .operators import * +# from .label_ops import * + +# from .east_process import * +# from .sast_process import * +# from .gen_table_mask import * + +def transform(data, ops=None): + """ transform """ + if ops is None: + ops = [] + for op in ops: + data = op(data) + if data is None: + return None + return data + + +def create_operators(op_param_list, global_config=None): + """ + create operators based on the config + Args: + params(list): a dict list, used to create some operators + """ + assert isinstance(op_param_list, list), ('operator config should be a list') + ops = [] + for operator in op_param_list: + assert isinstance(operator, + dict) and len(operator) == 1, "yaml format error" + op_name = list(operator)[0] + param = {} if operator[op_name] is None else operator[op_name] + if global_config is not None: + param.update(global_config) + op = eval(op_name)(**param) + ops.append(op) + return ops \ No newline at end of file diff --git a/mineru/model/utils/pytorchocr/data/imaug/operators.py b/mineru/model/utils/pytorchocr/data/imaug/operators.py new file mode 100644 index 000000000..3c046f949 --- /dev/null +++ b/mineru/model/utils/pytorchocr/data/imaug/operators.py @@ -0,0 +1,424 @@ +""" +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +""" + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +import sys +import six +import cv2 +import numpy as np +from PIL import Image + + +class DecodeImage(object): + """ decode image """ + + def __init__(self, img_mode='RGB', channel_first=False, **kwargs): + self.img_mode = img_mode + self.channel_first = channel_first + + def __call__(self, data): + img = data['image'] + if six.PY2: + assert type(img) is str and len( + img) > 0, "invalid input 'img' in DecodeImage" + else: + assert type(img) is bytes and len( + img) > 0, "invalid input 'img' in DecodeImage" + img = np.frombuffer(img, dtype='uint8') + img = cv2.imdecode(img, 1) + if img is None: + return None + if self.img_mode == 'GRAY': + img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) + elif self.img_mode == 'RGB': + assert img.shape[2] == 3, 'invalid shape of image[%s]' % (img.shape) + img = img[:, :, ::-1] + + if self.channel_first: + img = img.transpose((2, 0, 1)) + + data['image'] = img + return data + + +class NRTRDecodeImage(object): + """ decode image """ + + def __init__(self, img_mode='RGB', channel_first=False, **kwargs): + self.img_mode = img_mode + self.channel_first = channel_first + + def __call__(self, data): + img = data['image'] + if six.PY2: + assert type(img) is str and len( + img) > 0, "invalid input 'img' in DecodeImage" + else: + assert type(img) is bytes and len( + img) > 0, "invalid input 'img' in DecodeImage" + img = np.frombuffer(img, dtype='uint8') + + img = cv2.imdecode(img, 1) + + if img is None: + return None + if self.img_mode == 'GRAY': + img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) + elif self.img_mode == 'RGB': + assert img.shape[2] == 3, 'invalid shape of image[%s]' % (img.shape) + img = img[:, :, ::-1] + img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + if self.channel_first: + img = img.transpose((2, 0, 1)) + data['image'] = img + return data + + +class NormalizeImage(object): + """ normalize image such as substract mean, divide std + """ + + def __init__(self, scale=None, mean=None, std=None, order='chw', **kwargs): + if isinstance(scale, str): + scale = eval(scale) + self.scale = np.float32(scale if scale is not None else 1.0 / 255.0) + mean = mean if mean is not None else [0.485, 0.456, 0.406] + std = std if std is not None else [0.229, 0.224, 0.225] + + shape = (3, 1, 1) if order == 'chw' else (1, 1, 3) + self.mean = np.array(mean).reshape(shape).astype('float32') + self.std = np.array(std).reshape(shape).astype('float32') + self.scale = self.scale / self.std + self.mean = self.mean / self.std + + + def __call__(self, data): + img = data['image'] + if isinstance(img, Image.Image): + img = np.array(img) + data['image'] = img.astype('float32') * self.scale - self.mean + return data + + +class ToCHWImage(object): + """ convert hwc image to chw image + """ + + def __init__(self, **kwargs): + pass + + def __call__(self, data): + img = data['image'] + from PIL import Image + if isinstance(img, Image.Image): + img = np.array(img) + data['image'] = img.transpose((2, 0, 1)) + return data + + +class Fasttext(object): + def __init__(self, path="None", **kwargs): + import fasttext + self.fast_model = fasttext.load_model(path) + + def __call__(self, data): + label = data['label'] + fast_label = self.fast_model[label] + data['fast_label'] = fast_label + return data + + +class KeepKeys(object): + def __init__(self, keep_keys, **kwargs): + self.keep_keys = keep_keys + + def __call__(self, data): + data_list = [] + for key in self.keep_keys: + data_list.append(data[key]) + return data_list + + +class Resize(object): + def __init__(self, size=(640, 640), **kwargs): + self.size = size + + def resize_image(self, img): + resize_h, resize_w = self.size + ori_h, ori_w = img.shape[:2] # (h, w, c) + ratio_h = float(resize_h) / ori_h + ratio_w = float(resize_w) / ori_w + img = cv2.resize(img, (int(resize_w), int(resize_h))) + return img, [ratio_h, ratio_w] + + def __call__(self, data): + img = data['image'] + text_polys = data['polys'] + + img_resize, [ratio_h, ratio_w] = self.resize_image(img) + new_boxes = [] + for box in text_polys: + new_box = [] + for cord in box: + new_box.append([cord[0] * ratio_w, cord[1] * ratio_h]) + new_boxes.append(new_box) + data['image'] = img_resize + data['polys'] = np.array(new_boxes, dtype=np.float32) + return data + + +class DetResizeForTest(object): + def __init__(self, **kwargs): + super(DetResizeForTest, self).__init__() + self.resize_type = 0 + self.max_side_limit = kwargs.get('max_side_limit', 4000) + if 'image_shape' in kwargs: + self.image_shape = kwargs['image_shape'] + self.resize_type = 1 + elif 'limit_side_len' in kwargs: + self.limit_side_len = kwargs['limit_side_len'] + self.limit_type = kwargs.get('limit_type', 'min') + elif 'resize_long' in kwargs: + self.resize_type = 2 + self.resize_long = kwargs.get('resize_long', 960) + else: + self.limit_side_len = 736 + self.limit_type = 'min' + + def __call__(self, data): + img = data['image'] + src_h, src_w, _ = img.shape + + if self.resize_type == 0: + # img, shape = self.resize_image_type0(img) + img, [ratio_h, ratio_w] = self.resize_image_type0(img) + elif self.resize_type == 2: + img, [ratio_h, ratio_w] = self.resize_image_type2(img) + else: + # img, shape = self.resize_image_type1(img) + img, [ratio_h, ratio_w] = self.resize_image_type1(img) + data['image'] = img + data['shape'] = np.array([src_h, src_w, ratio_h, ratio_w]) + return data + + def resize_image_type1(self, img): + resize_h, resize_w = self.image_shape + ori_h, ori_w = img.shape[:2] # (h, w, c) + ratio_h = float(resize_h) / ori_h + ratio_w = float(resize_w) / ori_w + img = cv2.resize(img, (int(resize_w), int(resize_h))) + # return img, np.array([ori_h, ori_w]) + return img, [ratio_h, ratio_w] + + def resize_image_type0(self, img): + """ + resize image to a size multiple of 32 which is required by the network + args: + img(array): array with shape [h, w, c] + return(tuple): + img, (ratio_h, ratio_w) + """ + limit_side_len = self.limit_side_len + h, w, c = img.shape + + # limit the max side + if self.limit_type == 'max': + if max(h, w) > limit_side_len: + if h > w: + ratio = float(limit_side_len) / h + else: + ratio = float(limit_side_len) / w + else: + ratio = 1. + elif self.limit_type == 'min': + if min(h, w) < limit_side_len: + if h < w: + ratio = float(limit_side_len) / h + else: + ratio = float(limit_side_len) / w + else: + ratio = 1. + elif self.limit_type == 'resize_long': + ratio = float(limit_side_len) / max(h, w) + else: + raise Exception('not support limit type, image ') + resize_h = int(h * ratio) + resize_w = int(w * ratio) + + if max(resize_h, resize_w) > self.max_side_limit: + ratio = float(self.max_side_limit) / max(resize_h, resize_w) + resize_h = int(resize_h * ratio) + resize_w = int(resize_w * ratio) + + resize_h = max(int(round(resize_h / 32) * 32), 32) + resize_w = max(int(round(resize_w / 32) * 32), 32) + + try: + if int(resize_w) <= 0 or int(resize_h) <= 0: + return None, (None, None) + img = cv2.resize(img, (int(resize_w), int(resize_h))) + except: + print(img.shape, resize_w, resize_h) + sys.exit(0) + ratio_h = resize_h / float(h) + ratio_w = resize_w / float(w) + return img, [ratio_h, ratio_w] + + def resize_image_type2(self, img): + h, w, _ = img.shape + + resize_w = w + resize_h = h + + if resize_h > resize_w: + ratio = float(self.resize_long) / resize_h + else: + ratio = float(self.resize_long) / resize_w + + resize_h = int(resize_h * ratio) + resize_w = int(resize_w * ratio) + + max_stride = 128 + resize_h = (resize_h + max_stride - 1) // max_stride * max_stride + resize_w = (resize_w + max_stride - 1) // max_stride * max_stride + img = cv2.resize(img, (int(resize_w), int(resize_h))) + ratio_h = resize_h / float(h) + ratio_w = resize_w / float(w) + + return img, [ratio_h, ratio_w] + + +class E2EResizeForTest(object): + def __init__(self, **kwargs): + super(E2EResizeForTest, self).__init__() + self.max_side_len = kwargs['max_side_len'] + self.valid_set = kwargs['valid_set'] + + def __call__(self, data): + img = data['image'] + src_h, src_w, _ = img.shape + if self.valid_set == 'totaltext': + im_resized, [ratio_h, ratio_w] = self.resize_image_for_totaltext( + img, max_side_len=self.max_side_len) + else: + im_resized, (ratio_h, ratio_w) = self.resize_image( + img, max_side_len=self.max_side_len) + data['image'] = im_resized + data['shape'] = np.array([src_h, src_w, ratio_h, ratio_w]) + return data + + def resize_image_for_totaltext(self, im, max_side_len=512): + + h, w, _ = im.shape + resize_w = w + resize_h = h + ratio = 1.25 + if h * ratio > max_side_len: + ratio = float(max_side_len) / resize_h + resize_h = int(resize_h * ratio) + resize_w = int(resize_w * ratio) + + max_stride = 128 + resize_h = (resize_h + max_stride - 1) // max_stride * max_stride + resize_w = (resize_w + max_stride - 1) // max_stride * max_stride + im = cv2.resize(im, (int(resize_w), int(resize_h))) + ratio_h = resize_h / float(h) + ratio_w = resize_w / float(w) + return im, (ratio_h, ratio_w) + + def resize_image(self, im, max_side_len=512): + """ + resize image to a size multiple of max_stride which is required by the network + :param im: the resized image + :param max_side_len: limit of max image size to avoid out of memory in gpu + :return: the resized image and the resize ratio + """ + h, w, _ = im.shape + + resize_w = w + resize_h = h + + # Fix the longer side + if resize_h > resize_w: + ratio = float(max_side_len) / resize_h + else: + ratio = float(max_side_len) / resize_w + + resize_h = int(resize_h * ratio) + resize_w = int(resize_w * ratio) + + max_stride = 128 + resize_h = (resize_h + max_stride - 1) // max_stride * max_stride + resize_w = (resize_w + max_stride - 1) // max_stride * max_stride + im = cv2.resize(im, (int(resize_w), int(resize_h))) + ratio_h = resize_h / float(h) + ratio_w = resize_w / float(w) + + return im, (ratio_h, ratio_w) + + +class KieResize(object): + def __init__(self, **kwargs): + super(KieResize, self).__init__() + self.max_side, self.min_side = kwargs['img_scale'][0], kwargs[ + 'img_scale'][1] + + def __call__(self, data): + img = data['image'] + points = data['points'] + src_h, src_w, _ = img.shape + im_resized, scale_factor, [ratio_h, ratio_w + ], [new_h, new_w] = self.resize_image(img) + resize_points = self.resize_boxes(img, points, scale_factor) + data['ori_image'] = img + data['ori_boxes'] = points + data['points'] = resize_points + data['image'] = im_resized + data['shape'] = np.array([new_h, new_w]) + return data + + def resize_image(self, img): + norm_img = np.zeros([1024, 1024, 3], dtype='float32') + scale = [512, 1024] + h, w = img.shape[:2] + max_long_edge = max(scale) + max_short_edge = min(scale) + scale_factor = min(max_long_edge / max(h, w), + max_short_edge / min(h, w)) + resize_w, resize_h = int(w * float(scale_factor) + 0.5), int(h * float( + scale_factor) + 0.5) + max_stride = 32 + resize_h = (resize_h + max_stride - 1) // max_stride * max_stride + resize_w = (resize_w + max_stride - 1) // max_stride * max_stride + im = cv2.resize(img, (resize_w, resize_h)) + new_h, new_w = im.shape[:2] + w_scale = new_w / w + h_scale = new_h / h + scale_factor = np.array( + [w_scale, h_scale, w_scale, h_scale], dtype=np.float32) + norm_img[:new_h, :new_w, :] = im + return norm_img, scale_factor, [h_scale, w_scale], [new_h, new_w] + + def resize_boxes(self, im, points, scale_factor): + points = points * scale_factor + img_shape = im.shape[:2] + points[:, 0::2] = np.clip(points[:, 0::2], 0, img_shape[1]) + points[:, 1::2] = np.clip(points[:, 1::2], 0, img_shape[0]) + return points diff --git a/mineru/model/utils/pytorchocr/modeling/__init__.py b/mineru/model/utils/pytorchocr/modeling/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/utils/pytorchocr/modeling/architectures/__init__.py b/mineru/model/utils/pytorchocr/modeling/architectures/__init__.py new file mode 100644 index 000000000..7ad5eb47c --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/architectures/__init__.py @@ -0,0 +1,25 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import copy + +__all__ = ["build_model"] + + +def build_model(config, **kwargs): + from .base_model import BaseModel + + config = copy.deepcopy(config) + module_class = BaseModel(config, **kwargs) + return module_class diff --git a/mineru/model/utils/pytorchocr/modeling/architectures/base_model.py b/mineru/model/utils/pytorchocr/modeling/architectures/base_model.py new file mode 100644 index 000000000..eaefa9b09 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/architectures/base_model.py @@ -0,0 +1,106 @@ +# Copyright (c) Opendatalab. All rights reserved. +from torch import nn + +from ..backbones import build_backbone +from ..heads import build_head +from ..necks import build_neck + + +class BaseModel(nn.Module): + def __init__(self, config, **kwargs): + """ + the module for OCR. + args: + config (dict): the super parameters for module. + """ + super(BaseModel, self).__init__() + + in_channels = config.get("in_channels", 3) + model_type = config["model_type"] + # build backbone, backbone is need for del, rec and cls + if "Backbone" not in config or config["Backbone"] is None: + self.use_backbone = False + else: + self.use_backbone = True + config["Backbone"]["in_channels"] = in_channels + self.backbone = build_backbone(config["Backbone"], model_type) + in_channels = self.backbone.out_channels + + # build neck + # for rec, neck can be cnn,rnn or reshape(None) + # for det, neck can be FPN, BIFPN and so on. + # for cls, neck should be none + if "Neck" not in config or config["Neck"] is None: + self.use_neck = False + else: + self.use_neck = True + config["Neck"]["in_channels"] = in_channels + self.neck = build_neck(config["Neck"]) + in_channels = self.neck.out_channels + + # # build head, head is need for det, rec and cls + if "Head" not in config or config["Head"] is None: + self.use_head = False + else: + self.use_head = True + config["Head"]["in_channels"] = in_channels + self.head = build_head(config["Head"], **kwargs) + + self.return_all_feats = config.get("return_all_feats", False) + + self._initialize_weights() + + def _initialize_weights(self): + # weight initialization + for m in self.modules(): + if isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_(m.weight, mode="fan_out") + if m.bias is not None: + nn.init.zeros_(m.bias) + elif isinstance(m, nn.BatchNorm2d): + nn.init.ones_(m.weight) + nn.init.zeros_(m.bias) + elif isinstance(m, nn.Linear): + nn.init.normal_(m.weight, 0, 0.01) + if m.bias is not None: + nn.init.zeros_(m.bias) + elif isinstance(m, nn.ConvTranspose2d): + nn.init.kaiming_normal_(m.weight, mode="fan_out") + if m.bias is not None: + nn.init.zeros_(m.bias) + + def forward(self, x): + y = dict() + if self.use_backbone: + x = self.backbone(x) + if isinstance(x, dict): + y.update(x) + else: + y["backbone_out"] = x + final_name = "backbone_out" + if self.use_neck: + x = self.neck(x) + if isinstance(x, dict): + y.update(x) + else: + y["neck_out"] = x + final_name = "neck_out" + if self.use_head: + x = self.head(x) + # for multi head, save ctc neck out for udml + if isinstance(x, dict) and "ctc_nect" in x.keys(): + y["neck_out"] = x["ctc_neck"] + y["head_out"] = x + elif isinstance(x, dict): + y.update(x) + else: + y["head_out"] = x + if self.return_all_feats: + if self.training: + return y + elif isinstance(x, dict): + return x + else: + return {final_name: x} + else: + return x diff --git a/mineru/model/utils/pytorchocr/modeling/backbones/__init__.py b/mineru/model/utils/pytorchocr/modeling/backbones/__init__.py new file mode 100644 index 000000000..1d48a6246 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/backbones/__init__.py @@ -0,0 +1,66 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +__all__ = ["build_backbone"] + + +def build_backbone(config, model_type): + if model_type == "det": + from .det_mobilenet_v3 import MobileNetV3 + from .rec_hgnet import PPHGNet_small + from .rec_lcnetv3 import PPLCNetV3 + from .rec_pphgnetv2 import PPHGNetV2_B4 + + support_dict = [ + "MobileNetV3", + "ResNet", + "ResNet_vd", + "ResNet_SAST", + "PPLCNetV3", + "PPHGNet_small", + 'PPHGNetV2_B4', + ] + elif model_type == "rec" or model_type == "cls": + from .rec_hgnet import PPHGNet_small + from .rec_lcnetv3 import PPLCNetV3 + from .rec_mobilenet_v3 import MobileNetV3 + from .rec_svtrnet import SVTRNet + from .rec_mv1_enhance import MobileNetV1Enhance + from .rec_pphgnetv2 import PPHGNetV2_B4, PPHGNetV2_B6_Formula + support_dict = [ + "MobileNetV1Enhance", + "MobileNetV3", + "ResNet", + "ResNetFPN", + "MTB", + "ResNet31", + "SVTRNet", + "ViTSTR", + "DenseNet", + "PPLCNetV3", + "PPHGNet_small", + "PPHGNetV2_B4", + "PPHGNetV2_B6_Formula" + ] + else: + raise NotImplementedError + + module_name = config.pop("name") + assert module_name in support_dict, Exception( + "when model typs is {}, backbone only support {}".format( + model_type, support_dict + ) + ) + module_class = eval(module_name)(**config) + return module_class diff --git a/mineru/model/utils/pytorchocr/modeling/backbones/det_mobilenet_v3.py b/mineru/model/utils/pytorchocr/modeling/backbones/det_mobilenet_v3.py new file mode 100644 index 000000000..63576ce32 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/backbones/det_mobilenet_v3.py @@ -0,0 +1,270 @@ +# Copyright (c) Opendatalab. All rights reserved. +from torch import nn + +from ..common import Activation + + +def make_divisible(v, divisor=8, min_value=None): + if min_value is None: + min_value = divisor + new_v = max(min_value, int(v + divisor / 2) // divisor * divisor) + if new_v < 0.9 * v: + new_v += divisor + return new_v + + +class ConvBNLayer(nn.Module): + def __init__( + self, + in_channels, + out_channels, + kernel_size, + stride, + padding, + groups=1, + if_act=True, + act=None, + name=None, + ): + super(ConvBNLayer, self).__init__() + self.if_act = if_act + self.conv = nn.Conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + groups=groups, + bias=False, + ) + + self.bn = nn.BatchNorm2d( + out_channels, + ) + if self.if_act: + self.act = Activation(act_type=act, inplace=True) + + def forward(self, x): + x = self.conv(x) + x = self.bn(x) + if self.if_act: + x = self.act(x) + return x + + +class SEModule(nn.Module): + def __init__(self, in_channels, reduction=4, name=""): + super(SEModule, self).__init__() + self.avg_pool = nn.AdaptiveAvgPool2d(1) + self.conv1 = nn.Conv2d( + in_channels=in_channels, + out_channels=in_channels // reduction, + kernel_size=1, + stride=1, + padding=0, + bias=True, + ) + self.relu1 = Activation(act_type="relu", inplace=True) + self.conv2 = nn.Conv2d( + in_channels=in_channels // reduction, + out_channels=in_channels, + kernel_size=1, + stride=1, + padding=0, + bias=True, + ) + self.hard_sigmoid = Activation(act_type="hard_sigmoid", inplace=True) + + def forward(self, inputs): + outputs = self.avg_pool(inputs) + outputs = self.conv1(outputs) + outputs = self.relu1(outputs) + outputs = self.conv2(outputs) + outputs = self.hard_sigmoid(outputs) + outputs = inputs * outputs + return outputs + + +class ResidualUnit(nn.Module): + def __init__( + self, + in_channels, + mid_channels, + out_channels, + kernel_size, + stride, + use_se, + act=None, + name="", + ): + super(ResidualUnit, self).__init__() + self.if_shortcut = stride == 1 and in_channels == out_channels + self.if_se = use_se + + self.expand_conv = ConvBNLayer( + in_channels=in_channels, + out_channels=mid_channels, + kernel_size=1, + stride=1, + padding=0, + if_act=True, + act=act, + name=name + "_expand", + ) + self.bottleneck_conv = ConvBNLayer( + in_channels=mid_channels, + out_channels=mid_channels, + kernel_size=kernel_size, + stride=stride, + padding=int((kernel_size - 1) // 2), + groups=mid_channels, + if_act=True, + act=act, + name=name + "_depthwise", + ) + if self.if_se: + self.mid_se = SEModule(mid_channels, name=name + "_se") + self.linear_conv = ConvBNLayer( + in_channels=mid_channels, + out_channels=out_channels, + kernel_size=1, + stride=1, + padding=0, + if_act=False, + act=None, + name=name + "_linear", + ) + + def forward(self, inputs): + x = self.expand_conv(inputs) + x = self.bottleneck_conv(x) + if self.if_se: + x = self.mid_se(x) + x = self.linear_conv(x) + if self.if_shortcut: + x = inputs + x + return x + + +class MobileNetV3(nn.Module): + def __init__( + self, in_channels=3, model_name="large", scale=0.5, disable_se=False, **kwargs + ): + """ + the MobilenetV3 backbone network for detection module. + Args: + params(dict): the super parameters for build network + """ + super(MobileNetV3, self).__init__() + + self.disable_se = disable_se + + if model_name == "large": + cfg = [ + # k, exp, c, se, nl, s, + [3, 16, 16, False, "relu", 1], + [3, 64, 24, False, "relu", 2], + [3, 72, 24, False, "relu", 1], + [5, 72, 40, True, "relu", 2], + [5, 120, 40, True, "relu", 1], + [5, 120, 40, True, "relu", 1], + [3, 240, 80, False, "hard_swish", 2], + [3, 200, 80, False, "hard_swish", 1], + [3, 184, 80, False, "hard_swish", 1], + [3, 184, 80, False, "hard_swish", 1], + [3, 480, 112, True, "hard_swish", 1], + [3, 672, 112, True, "hard_swish", 1], + [5, 672, 160, True, "hard_swish", 2], + [5, 960, 160, True, "hard_swish", 1], + [5, 960, 160, True, "hard_swish", 1], + ] + cls_ch_squeeze = 960 + elif model_name == "small": + cfg = [ + # k, exp, c, se, nl, s, + [3, 16, 16, True, "relu", 2], + [3, 72, 24, False, "relu", 2], + [3, 88, 24, False, "relu", 1], + [5, 96, 40, True, "hard_swish", 2], + [5, 240, 40, True, "hard_swish", 1], + [5, 240, 40, True, "hard_swish", 1], + [5, 120, 48, True, "hard_swish", 1], + [5, 144, 48, True, "hard_swish", 1], + [5, 288, 96, True, "hard_swish", 2], + [5, 576, 96, True, "hard_swish", 1], + [5, 576, 96, True, "hard_swish", 1], + ] + cls_ch_squeeze = 576 + else: + raise NotImplementedError( + "mode[" + model_name + "_model] is not implemented!" + ) + + supported_scale = [0.35, 0.5, 0.75, 1.0, 1.25] + assert ( + scale in supported_scale + ), "supported scale are {} but input scale is {}".format(supported_scale, scale) + inplanes = 16 + # conv1 + self.conv = ConvBNLayer( + in_channels=in_channels, + out_channels=make_divisible(inplanes * scale), + kernel_size=3, + stride=2, + padding=1, + groups=1, + if_act=True, + act="hard_swish", + name="conv1", + ) + + self.stages = nn.ModuleList() + self.out_channels = [] + block_list = [] + i = 0 + inplanes = make_divisible(inplanes * scale) + for k, exp, c, se, nl, s in cfg: + se = se and not self.disable_se + if s == 2 and i > 2: + self.out_channels.append(inplanes) + self.stages.append(nn.Sequential(*block_list)) + block_list = [] + block_list.append( + ResidualUnit( + in_channels=inplanes, + mid_channels=make_divisible(scale * exp), + out_channels=make_divisible(scale * c), + kernel_size=k, + stride=s, + use_se=se, + act=nl, + name="conv" + str(i + 2), + ) + ) + inplanes = make_divisible(scale * c) + i += 1 + block_list.append( + ConvBNLayer( + in_channels=inplanes, + out_channels=make_divisible(scale * cls_ch_squeeze), + kernel_size=1, + stride=1, + padding=0, + groups=1, + if_act=True, + act="hard_swish", + name="conv_last", + ) + ) + self.stages.append(nn.Sequential(*block_list)) + self.out_channels.append(make_divisible(scale * cls_ch_squeeze)) + # for i, stage in enumerate(self.stages): + # self.add_sublayer(sublayer=stage, name="stage{}".format(i)) + + def forward(self, x): + x = self.conv(x) + out_list = [] + for stage in self.stages: + x = stage(x) + out_list.append(x) + return out_list diff --git a/mineru/model/utils/pytorchocr/modeling/backbones/rec_donut_swin.py b/mineru/model/utils/pytorchocr/modeling/backbones/rec_donut_swin.py new file mode 100644 index 000000000..c11e4fa7c --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/backbones/rec_donut_swin.py @@ -0,0 +1,1278 @@ +# Copyright (c) Opendatalab. All rights reserved. +import collections.abc +from collections import OrderedDict +import math +from dataclasses import dataclass +from typing import Optional, Tuple, Union + +import torch +import torch.nn as nn +import torch.nn.functional as F + + +class DonutSwinConfig(object): + model_type = "donut-swin" + + attribute_map = { + "num_attention_heads": "num_heads", + "num_hidden_layers": "num_layers", + } + + def __init__( + self, + image_size=224, + patch_size=4, + num_channels=3, + embed_dim=96, + depths=[2, 2, 6, 2], + num_heads=[3, 6, 12, 24], + window_size=7, + mlp_ratio=4.0, + qkv_bias=True, + hidden_dropout_prob=0.0, + attention_probs_dropout_prob=0.0, + drop_path_rate=0.1, + hidden_act="gelu", + use_absolute_embeddings=False, + initializer_range=0.02, + layer_norm_eps=1e-5, + **kwargs, + ): + super().__init__() + + self.image_size = image_size + self.patch_size = patch_size + self.num_channels = num_channels + self.embed_dim = embed_dim + self.depths = depths + self.num_layers = len(depths) + self.num_heads = num_heads + self.window_size = window_size + self.mlp_ratio = mlp_ratio + self.qkv_bias = qkv_bias + self.hidden_dropout_prob = hidden_dropout_prob + self.attention_probs_dropout_prob = attention_probs_dropout_prob + self.drop_path_rate = drop_path_rate + self.hidden_act = hidden_act + self.use_absolute_embeddings = use_absolute_embeddings + self.layer_norm_eps = layer_norm_eps + self.initializer_range = initializer_range + self.hidden_size = int(embed_dim * 2 ** (len(depths) - 1)) + + for key, value in kwargs.items(): + try: + setattr(self, key, value) + except AttributeError as err: + print(f"Can't set {key} with value {value} for {self}") + raise err + + +@dataclass +# Copied from transformers.models.swin.modeling_swin.SwinEncoderOutput with Swin->DonutSwin +class DonutSwinEncoderOutput(OrderedDict): + last_hidden_state = None + hidden_states = None + attentions = None + reshaped_hidden_states = None + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def __getitem__(self, k): + if isinstance(k, str): + inner_dict = dict(self.items()) + return inner_dict[k] + else: + return self.to_tuple()[k] + + def __setattr__(self, name, value): + if name in self.keys() and value is not None: + super().__setitem__(name, value) + super().__setattr__(name, value) + + def __setitem__(self, key, value): + super().__setitem__(key, value) + super().__setattr__(key, value) + + def to_tuple(self): + """ + Convert self to a tuple containing all the attributes/keys that are not `None`. + """ + return tuple(self[k] for k in self.keys()) + + +@dataclass +# Copied from transformers.models.swin.modeling_swin.SwinModelOutput with Swin->DonutSwin +class DonutSwinModelOutput(OrderedDict): + last_hidden_state = None + pooler_output = None + hidden_states = None + attentions = None + reshaped_hidden_states = None + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def __getitem__(self, k): + if isinstance(k, str): + inner_dict = dict(self.items()) + return inner_dict[k] + else: + return self.to_tuple()[k] + + def __setattr__(self, name, value): + if name in self.keys() and value is not None: + super().__setitem__(name, value) + super().__setattr__(name, value) + + def __setitem__(self, key, value): + super().__setitem__(key, value) + super().__setattr__(key, value) + + def to_tuple(self): + """ + Convert self to a tuple containing all the attributes/keys that are not `None`. + """ + return tuple(self[k] for k in self.keys()) + + +# Copied from transformers.models.swin.modeling_swin.window_partition +def window_partition(input_feature, window_size): + """ + Partitions the given input into windows. + """ + batch_size, height, width, num_channels = input_feature.shape + input_feature = input_feature.reshape( + [ + batch_size, + height // window_size, + window_size, + width // window_size, + window_size, + num_channels, + ] + ) + windows = input_feature.transpose([0, 1, 3, 2, 4, 5]).reshape( + [-1, window_size, window_size, num_channels] + ) + return windows + + +# Copied from transformers.models.swin.modeling_swin.window_reverse +def window_reverse(windows, window_size, height, width): + """ + Merges windows to produce higher resolution features. + """ + num_channels = windows.shape[-1] + windows = windows.reshape( + [ + -1, + height // window_size, + width // window_size, + window_size, + window_size, + num_channels, + ] + ) + windows = windows.transpose([0, 1, 3, 2, 4, 5]).reshape( + [-1, height, width, num_channels] + ) + return windows + + +# Copied from transformers.models.swin.modeling_swin.SwinEmbeddings with Swin->DonutSwin +class DonutSwinEmbeddings(nn.Module): + """ + Construct the patch and position embeddings. Optionally, also the mask token. + """ + + def __init__(self, config, use_mask_token=False): + super().__init__() + + self.patch_embeddings = DonutSwinPatchEmbeddings(config) + num_patches = self.patch_embeddings.num_patches + self.patch_grid = self.patch_embeddings.grid_size + if use_mask_token: + # self.mask_token = paddle.create_parameter( + # [1, 1, config.embed_dim], dtype="float32" + # ) + self.mask_token = nn.Parameter( + nn.init.xavier_uniform_(torch.zeros(1, 1, config.embed_dim).to(torch.float32)) + ) + nn.init.zeros_(self.mask_token) + else: + self.mask_token = None + if config.use_absolute_embeddings: + # self.position_embeddings = paddle.create_parameter( + # [1, num_patches + 1, config.embed_dim], dtype="float32" + # ) + self.position_embeddings = nn.Parameter( + nn.init.xavier_uniform_(torch.zeros(1, num_patches + 1, config.embed_dim).to(torch.float32)) + ) + nn.init.zeros_(self.position_embedding) + else: + self.position_embeddings = None + + self.norm = nn.LayerNorm(config.embed_dim) + self.dropout = nn.Dropout(config.hidden_dropout_prob) + + def forward(self, pixel_values, bool_masked_pos=None): + + embeddings, output_dimensions = self.patch_embeddings(pixel_values) + embeddings = self.norm(embeddings) + + batch_size, seq_len, _ = embeddings.shape + + if bool_masked_pos is not None: + mask_tokens = self.mask_token.expand(batch_size, seq_len, -1) + mask = bool_masked_pos.unsqueeze(-1).type_as(mask_tokens) + embeddings = embeddings * (1.0 - mask) + mask_tokens * mask + + if self.position_embeddings is not None: + embeddings = embeddings + self.position_embeddings + embeddings = self.dropout(embeddings) + return embeddings, output_dimensions + + +class MyConv2d(nn.Conv2d): + def __init__( + self, + in_channel, + out_channels, + kernel_size, + stride=1, + padding="SAME", + dilation=1, + groups=1, + bias_attr=False, + eps=1e-6, + ): + super().__init__( + in_channel, + out_channels, + kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + groups=groups, + bias_attr=bias_attr, + ) + # self.weight = paddle.create_parameter( + # [out_channels, in_channel, kernel_size[0], kernel_size[1]], dtype="float32" + # ) + self.weight = torch.Parameter( + nn.init.xavier_uniform_( + torch.zeros(out_channels, in_channel, kernel_size[0], kernel_size[1]).to(torch.float32) + ) + ) + # self.bias = paddle.create_parameter([out_channels], dtype="float32") + self.bias = torch.Parameter( + nn.init.xavier_uniform_( + torch.zeros(out_channels).to(torch.float32) + ) + ) + nn.init.ones_(self.weight) + nn.init.zeros_(self.bias) + + def forward(self, x): + x = F.conv2d( + x, + self.weight, + self.bias, + self._stride, + self._padding, + self._dilation, + self._groups, + ) + return x + + +# Copied from transformers.models.swin.modeling_swin.SwinPatchEmbeddings +class DonutSwinPatchEmbeddings(nn.Module): + """ + This class turns `pixel_values` of shape `(batch_size, num_channels, height, width)` into the initial + `hidden_states` (patch embeddings) of shape `(batch_size, seq_length, hidden_size)` to be consumed by a + Transformer. + """ + + def __init__(self, config): + super().__init__() + image_size, patch_size = config.image_size, config.patch_size + num_channels, hidden_size = config.num_channels, config.embed_dim + image_size = ( + image_size + if isinstance(image_size, collections.abc.Iterable) + else (image_size, image_size) + ) + patch_size = ( + patch_size + if isinstance(patch_size, collections.abc.Iterable) + else (patch_size, patch_size) + ) + num_patches = (image_size[1] // patch_size[1]) * ( + image_size[0] // patch_size[0] + ) + self.image_size = image_size + self.patch_size = patch_size + self.num_channels = num_channels + self.num_patches = num_patches + self.is_export = config.is_export + self.grid_size = ( + image_size[0] // patch_size[0], + image_size[1] // patch_size[1], + ) + self.projection = nn.Conv2D( + num_channels, hidden_size, kernel_size=patch_size, stride=patch_size + ) + + def maybe_pad(self, pixel_values, height, width): + if width % self.patch_size[1] != 0: + pad_values = (0, self.patch_size[1] - width % self.patch_size[1]) + if self.is_export: + pad_values = torch.tensor(pad_values, dtype=torch.int32) + pixel_values = nn.functional.pad(pixel_values, pad_values) + if height % self.patch_size[0] != 0: + pad_values = (0, 0, 0, self.patch_size[0] - height % self.patch_size[0]) + if self.is_export: + pad_values = torch.tensor(pad_values, dtype=torch.int32) + pixel_values = nn.functional.pad(pixel_values, pad_values) + return pixel_values + + def forward(self, pixel_values) -> Tuple[torch.Tensor, Tuple[int]]: + _, num_channels, height, width = pixel_values.shape + if num_channels != self.num_channels: + raise ValueError( + "Make sure that the channel dimension of the pixel values match with the one set in the configuration." + ) + pixel_values = self.maybe_pad(pixel_values, height, width) + embeddings = self.projection(pixel_values) + + _, _, height, width = embeddings.shape + output_dimensions = (height, width) + embeddings = embeddings.flatten(2).transpose([0, 2, 1]) + + return embeddings, output_dimensions + + +# Copied from transformers.models.swin.modeling_swin.SwinPatchMerging +class DonutSwinPatchMerging(nn.Module): + """ + Patch Merging Layer. + + Args: + input_resolution (`Tuple[int]`): + Resolution of input feature. + dim (`int`): + Number of input channels. + norm_layer (`nn.Module`, *optional*, defaults to `nn.LayerNorm`): + Normalization layer class. + """ + + def __init__( + self, + input_resolution: Tuple[int], + dim: int, + norm_layer: nn.Module = nn.LayerNorm, + is_export=False, + ): + super().__init__() + self.input_resolution = input_resolution + self.dim = dim + self.reduction = nn.Linear(4 * dim, 2 * dim, bias_attr=False) + self.norm = norm_layer(4 * dim) + self.is_export = is_export + + def maybe_pad(self, input_feature, height, width): + should_pad = (height % 2 == 1) or (width % 2 == 1) + if should_pad: + pad_values = (0, 0, 0, width % 2, 0, height % 2) + if self.is_export: + pad_values = torch.tensor(pad_values, dtype=torch.int32) + input_feature = nn.functional.pad(input_feature, pad_values) + + return input_feature + + def forward( + self, input_feature: torch.Tensor, input_dimensions: Tuple[int, int] + ) -> torch.Tensor: + height, width = input_dimensions + batch_size, dim, num_channels = input_feature.shape + + input_feature = input_feature.reshape([batch_size, height, width, num_channels]) + + input_feature = self.maybe_pad(input_feature, height, width) + input_feature_0 = input_feature[:, 0::2, 0::2, :] + input_feature_1 = input_feature[:, 1::2, 0::2, :] + input_feature_2 = input_feature[:, 0::2, 1::2, :] + input_feature_3 = input_feature[:, 1::2, 1::2, :] + input_feature = torch.cat( + [input_feature_0, input_feature_1, input_feature_2, input_feature_3], -1 + ) + input_feature = input_feature.reshape( + [batch_size, -1, 4 * num_channels] + ) # batch_size height/2*width/2 4*C + + input_feature = self.norm(input_feature) + input_feature = self.reduction(input_feature) + + return input_feature + + +# Copied from transformers.models.beit.modeling_beit.drop_path +def drop_path( + input: torch.Tensor, drop_prob: float = 0.0, training: bool = False +) -> torch.Tensor: + if drop_prob == 0.0 or not training: + return input + keep_prob = 1 - drop_prob + shape = (input.shape[0],) + (1,) * ( + input.ndim - 1 + ) # work with diff dim tensors, not just 2D ConvNets + random_tensor = keep_prob + torch.rand( + shape, + dtype=input.dtype, + ) + random_tensor.floor_() # binarize + output = input / keep_prob * random_tensor + return output + + +# Copied from transformers.models.swin.modeling_swin.SwinDropPath +class DonutSwinDropPath(nn.Module): + """Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks).""" + + def __init__(self, drop_prob: Optional[float] = None) -> None: + super().__init__() + self.drop_prob = drop_prob + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + return drop_path(hidden_states, self.drop_prob, self.training) + + def extra_repr(self) -> str: + return "p={}".format(self.drop_prob) + + +class DonutSwinSelfAttention(nn.Module): + def __init__(self, config, dim, num_heads, window_size): + super().__init__() + if dim % num_heads != 0: + raise ValueError( + f"The hidden size ({dim}) is not a multiple of the number of attention heads ({num_heads})" + ) + + self.num_attention_heads = num_heads + self.attention_head_size = int(dim / num_heads) + self.all_head_size = self.num_attention_heads * self.attention_head_size + self.window_size = ( + window_size + if isinstance(window_size, collections.abc.Iterable) + else (window_size, window_size) + ) + # self.relative_position_bias_table = paddle.create_parameter( + # [(2 * self.window_size[0] - 1) * (2 * self.window_size[1] - 1), num_heads], + # dtype="float32", + # ) + self.relative_position_bias_table = torch.Parameter( + nn.init.xavier_normal_( + torch.zeros((2 * self.window_size[0] - 1) * (2 * self.window_size[1] - 1), num_heads).to(torch.float32) + ) + ) + + nn.init.zeros_(self.relative_position_bias_table) + + # get pair-wise relative position index for each token inside the window + coords_h = torch.arange(self.window_size[0]) + coords_w = torch.arange(self.window_size[1]) + coords = torch.stack(torch.meshgrid(coords_h, coords_w, indexing="ij")) + coords_flatten = torch.flatten(coords, 1) + relative_coords = coords_flatten[:, :, None] - coords_flatten[:, None, :] + relative_coords = relative_coords.transpose([1, 2, 0]) + relative_coords[:, :, 0] += self.window_size[0] - 1 + relative_coords[:, :, 1] += self.window_size[1] - 1 + relative_coords[:, :, 0] *= 2 * self.window_size[1] - 1 + relative_position_index = relative_coords.sum(-1) + self.register_buffer("relative_position_index", relative_position_index) + + self.query = nn.Linear( + self.all_head_size, self.all_head_size, bias_attr=config.qkv_bias + ) + self.key = nn.Linear( + self.all_head_size, self.all_head_size, bias_attr=config.qkv_bias + ) + self.value = nn.Linear( + self.all_head_size, self.all_head_size, bias_attr=config.qkv_bias + ) + + self.dropout = nn.Dropout(config.attention_probs_dropout_prob) + + def transpose_for_scores(self, x): + new_x_shape = x.shape[:-1] + [ + self.num_attention_heads, + self.attention_head_size, + ] + x = x.reshape(new_x_shape) + return x.transpose([0, 2, 1, 3]) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask=None, + head_mask=None, + output_attentions=False, + ) -> Tuple[torch.Tensor]: + batch_size, dim, num_channels = hidden_states.shape + mixed_query_layer = self.query(hidden_states) + key_layer = self.transpose_for_scores(self.key(hidden_states)) + value_layer = self.transpose_for_scores(self.value(hidden_states)) + query_layer = self.transpose_for_scores(mixed_query_layer) + + # Take the dot product between "query" and "key" to get the raw attention scores. + attention_scores = torch.matmul(query_layer, key_layer.transpose([0, 1, 3, 2])) + + attention_scores = attention_scores / math.sqrt(self.attention_head_size) + + relative_position_bias = self.relative_position_bias_table[ + self.relative_position_index.reshape([-1]) + ] + relative_position_bias = relative_position_bias.reshape( + [ + self.window_size[0] * self.window_size[1], + self.window_size[0] * self.window_size[1], + -1, + ] + ) + + relative_position_bias = relative_position_bias.transpose([2, 0, 1]) + attention_scores = attention_scores + relative_position_bias.unsqueeze(0) + + if attention_mask is not None: + # Apply the attention mask is (precomputed for all layers in DonutSwinModel forward() function) + mask_shape = attention_mask.shape[0] + attention_scores = attention_scores.reshape( + [ + batch_size // mask_shape, + mask_shape, + self.num_attention_heads, + dim, + dim, + ] + ) + attention_scores = attention_scores + attention_mask.unsqueeze(1).unsqueeze( + 0 + ) + attention_scores = attention_scores.reshape( + [-1, self.num_attention_heads, dim, dim] + ) + + # Normalize the attention scores to probabilities. + attention_probs = nn.functional.softmax(attention_scores, axis=-1) + + # This is actually dropping out entire tokens to attend to, which might + # seem a bit unusual, but is taken from the original Transformer paper. + attention_probs = self.dropout(attention_probs) + + # Mask heads if we want to + if head_mask is not None: + attention_probs = attention_probs * head_mask + + context_layer = torch.matmul(attention_probs, value_layer) + context_layer = context_layer.transpose([0, 2, 1, 3]) + new_context_layer_shape = tuple(context_layer.shape[:-2]) + ( + self.all_head_size, + ) + context_layer = context_layer.reshape(new_context_layer_shape) + outputs = ( + (context_layer, attention_probs) if output_attentions else (context_layer,) + ) + return outputs + + +# Copied from transformers.models.swin.modeling_swin.SwinSelfOutput +class DonutSwinSelfOutput(nn.Module): + def __init__(self, config, dim): + super().__init__() + self.dense = nn.Linear(dim, dim) + self.dropout = nn.Dropout(config.attention_probs_dropout_prob) + + def forward( + self, hidden_states: torch.Tensor, input_tensor: torch.Tensor + ) -> torch.Tensor: + hidden_states = self.dense(hidden_states) + hidden_states = self.dropout(hidden_states) + + return hidden_states + + +# Copied from transformers.models.swin.modeling_swin.SwinAttention with Swin->DonutSwin +class DonutSwinAttention(nn.Module): + def __init__(self, config, dim, num_heads, window_size): + super().__init__() + self.self = DonutSwinSelfAttention(config, dim, num_heads, window_size) + self.output = DonutSwinSelfOutput(config, dim) + self.pruned_heads = set() + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask=None, + head_mask=None, + output_attentions=False, + ) -> Tuple[torch.Tensor]: + self_outputs = self.self( + hidden_states, attention_mask, head_mask, output_attentions + ) + attention_output = self.output(self_outputs[0], hidden_states) + outputs = (attention_output,) + self_outputs[ + 1: + ] # add attentions if we output them + return outputs + + +# Copied from transformers.models.swin.modeling_swin.SwinIntermediate +class DonutSwinIntermediate(nn.Module): + def __init__(self, config, dim): + super().__init__() + self.dense = nn.Linear(dim, int(config.mlp_ratio * dim)) + self.intermediate_act_fn = F.gelu + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + hidden_states = self.dense(hidden_states) + hidden_states = self.intermediate_act_fn(hidden_states) + return hidden_states + + +# Copied from transformers.models.swin.modeling_swin.SwinOutput +class DonutSwinOutput(nn.Module): + def __init__(self, config, dim): + super().__init__() + self.dense = nn.Linear(int(config.mlp_ratio * dim), dim) + self.dropout = nn.Dropout(config.hidden_dropout_prob) + + def forward(self, hidden_states: torch.Tensor) -> torch.Tensor: + hidden_states = self.dense(hidden_states) + hidden_states = self.dropout(hidden_states) + return hidden_states + + +# Copied from transformers.models.swin.modeling_swin.SwinLayer with Swin->DonutSwin +class DonutSwinLayer(nn.Module): + def __init__(self, config, dim, input_resolution, num_heads, shift_size=0): + super().__init__() + self.chunk_size_feed_forward = config.chunk_size_feed_forward + self.shift_size = shift_size + self.window_size = config.window_size + self.input_resolution = input_resolution + self.layernorm_before = nn.LayerNorm(dim, eps=config.layer_norm_eps) + self.attention = DonutSwinAttention( + config, dim, num_heads, window_size=self.window_size + ) + self.drop_path = ( + DonutSwinDropPath(config.drop_path_rate) + if config.drop_path_rate > 0.0 + else nn.Identity() + ) + self.layernorm_after = nn.LayerNorm(dim, eps=config.layer_norm_eps) + self.intermediate = DonutSwinIntermediate(config, dim) + self.output = DonutSwinOutput(config, dim) + self.is_export = config.is_export + + def set_shift_and_window_size(self, input_resolution): + if min(input_resolution) <= self.window_size: + # if window size is larger than input resolution, we don't partition windows + self.shift_size = 0 + self.window_size = min(input_resolution) + + def get_attn_mask_export(self, height, width, dtype): + + attn_mask = None + height_slices = ( + slice(0, -self.window_size), + slice(-self.window_size, -self.shift_size), + slice(-self.shift_size, None), + ) + width_slices = ( + slice(0, -self.window_size), + slice(-self.window_size, -self.shift_size), + slice(-self.shift_size, None), + ) + img_mask = torch.zeros((1, height, width, 1), dtype=dtype) + count = 0 + for height_slice in height_slices: + for width_slice in width_slices: + if self.shift_size > 0: + img_mask[:, height_slice, width_slice, :] = count + count += 1 + if torch.Tensor(self.shift_size > 0).to(torch.bool): + # calculate attention mask for SW-MSA + mask_windows = window_partition(img_mask, self.window_size) + mask_windows = mask_windows.reshape( + [-1, self.window_size * self.window_size] + ) + attn_mask = mask_windows.unsqueeze(1) - mask_windows.unsqueeze(2) + attn_mask = attn_mask.masked_fill( + attn_mask != 0, float(-100.0) + ).masked_fill(attn_mask == 0, float(0.0)) + + return attn_mask + + def get_attn_mask(self, height, width, dtype): + if self.shift_size > 0: + # calculate attention mask for SW-MSA + img_mask = torch.zeros((1, height, width, 1), dtype=dtype) + height_slices = ( + slice(0, -self.window_size), + slice(-self.window_size, -self.shift_size), + slice(-self.shift_size, None), + ) + width_slices = ( + slice(0, -self.window_size), + slice(-self.window_size, -self.shift_size), + slice(-self.shift_size, None), + ) + + count = 0 + for height_slice in height_slices: + for width_slice in width_slices: + img_mask[:, height_slice, width_slice, :] = count + count += 1 + + mask_windows = window_partition(img_mask, self.window_size) + mask_windows = mask_windows.reshape( + [-1, self.window_size * self.window_size] + ) + attn_mask = mask_windows.unsqueeze(1) - mask_windows.unsqueeze(2) + attn_mask = attn_mask.masked_fill( + attn_mask != 0, float(-100.0) + ).masked_fill(attn_mask == 0, float(0.0)) + else: + attn_mask = None + return attn_mask + + def maybe_pad(self, hidden_states, height, width): + pad_right = (self.window_size - width % self.window_size) % self.window_size + pad_bottom = (self.window_size - height % self.window_size) % self.window_size + pad_values = (0, 0, 0, pad_bottom, 0, pad_right, 0, 0) + hidden_states = nn.functional.pad(hidden_states, pad_values) + return hidden_states, pad_values + + def forward( + self, + hidden_states: torch.Tensor, + input_dimensions: Tuple[int, int], + head_mask=None, + output_attentions=False, + always_partition=False, + ) -> Tuple[torch.Tensor, torch.Tensor]: + if not always_partition: + self.set_shift_and_window_size(input_dimensions) + else: + pass + height, width = input_dimensions + batch_size, _, channels = hidden_states.shape + shortcut = hidden_states + + hidden_states = self.layernorm_before(hidden_states) + + hidden_states = hidden_states.reshape([batch_size, height, width, channels]) + + # pad hidden_states to multiples of window size + hidden_states, pad_values = self.maybe_pad(hidden_states, height, width) + + _, height_pad, width_pad, _ = hidden_states.shape + + # cyclic shift + if self.shift_size > 0: + shift_value = (-self.shift_size, -self.shift_size) + if self.is_export: + shift_value = torch.tensor(shift_value, dtype=torch.int32) + shifted_hidden_states = torch.roll( + hidden_states, shifts=shift_value, dims=(1, 2) + ) + else: + shifted_hidden_states = hidden_states + + # partition windows + hidden_states_windows = window_partition( + shifted_hidden_states, self.window_size + ) + hidden_states_windows = hidden_states_windows.reshape( + [-1, self.window_size * self.window_size, channels] + ) + attn_mask = self.get_attn_mask(height_pad, width_pad, dtype=hidden_states.dtype) + + attention_outputs = self.attention( + hidden_states_windows, + attn_mask, + head_mask, + output_attentions=output_attentions, + ) + attention_output = attention_outputs[0] + + attention_windows = attention_output.reshape( + [-1, self.window_size, self.window_size, channels] + ) + shifted_windows = window_reverse( + attention_windows, self.window_size, height_pad, width_pad + ) + # reverse cyclic shift + if self.shift_size > 0: + shift_value = (self.shift_size, self.shift_size) + if self.is_export: + shift_value = torch.tensor(shift_value, dtype=torch.int32) + attention_windows = torch.roll( + shifted_windows, shifts=shift_value, dims=(1, 2) + ) + else: + attention_windows = shifted_windows + + was_padded = pad_values[3] > 0 or pad_values[5] > 0 + if was_padded: + attention_windows = attention_windows[:, :height, :width, :].contiguous() + + attention_windows = attention_windows.reshape( + [batch_size, height * width, channels] + ) + hidden_states = shortcut + self.drop_path(attention_windows) + layer_output = self.layernorm_after(hidden_states) + layer_output = self.intermediate(layer_output) + layer_output = hidden_states + self.output(layer_output) + layer_outputs = ( + (layer_output, attention_outputs[1]) + if output_attentions + else (layer_output,) + ) + return layer_outputs + + +# Copied from transformers.models.swin.modeling_swin.SwinStage with Swin->DonutSwin +class DonutSwinStage(nn.Module): + def __init__( + self, config, dim, input_resolution, depth, num_heads, drop_path, downsample + ): + super().__init__() + self.config = config + self.dim = dim + self.blocks = nn.ModuleList( + [ + DonutSwinLayer( + config=config, + dim=dim, + input_resolution=input_resolution, + num_heads=num_heads, + shift_size=0 if (i % 2 == 0) else config.window_size // 2, + ) + for i in range(depth) + ] + ) + self.is_export = config.is_export + + # patch merging layer + if downsample is not None: + self.downsample = downsample( + input_resolution, + dim=dim, + norm_layer=nn.LayerNorm, + is_export=self.is_export, + ) + else: + self.downsample = None + + self.pointing = False + + def forward( + self, + hidden_states: torch.Tensor, + input_dimensions: Tuple[int, int], + head_mask=None, + output_attentions=False, + always_partition=False, + ) -> Tuple[torch.Tensor]: + height, width = input_dimensions + + for i, layer_module in enumerate(self.blocks): + layer_head_mask = head_mask[i] if head_mask is not None else None + + layer_outputs = layer_module( + hidden_states, + input_dimensions, + layer_head_mask, + output_attentions, + always_partition, + ) + + hidden_states = layer_outputs[0] + + hidden_states_before_downsampling = hidden_states + if self.downsample is not None: + height_downsampled, width_downsampled = (height + 1) // 2, (width + 1) // 2 + output_dimensions = (height, width, height_downsampled, width_downsampled) + hidden_states = self.downsample( + hidden_states_before_downsampling, input_dimensions + ) + else: + output_dimensions = (height, width, height, width) + + stage_outputs = ( + hidden_states, + hidden_states_before_downsampling, + output_dimensions, + ) + + if output_attentions: + stage_outputs += layer_outputs[1:] + return stage_outputs + + +# Copied from transformers.models.swin.modeling_swin.SwinEncoder with Swin->DonutSwin +class DonutSwinEncoder(nn.Module): + def __init__(self, config, grid_size): + super().__init__() + self.num_layers = len(config.depths) + self.config = config + dpr = [ + x.item() + for x in torch.linspace(0, config.drop_path_rate, sum(config.depths)) + ] + self.layers = nn.ModuleList( + [ + DonutSwinStage( + config=config, + dim=int(config.embed_dim * 2**i_layer), + input_resolution=( + grid_size[0] // (2**i_layer), + grid_size[1] // (2**i_layer), + ), + depth=config.depths[i_layer], + num_heads=config.num_heads[i_layer], + drop_path=dpr[ + sum(config.depths[:i_layer]) : sum(config.depths[: i_layer + 1]) + ], + downsample=( + DonutSwinPatchMerging + if (i_layer < self.num_layers - 1) + else None + ), + ) + for i_layer in range(self.num_layers) + ] + ) + + self.gradient_checkpointing = False + + def forward( + self, + hidden_states: torch.Tensor, + input_dimensions: Tuple[int, int], + head_mask=None, + output_attentions=False, + output_hidden_states=False, + output_hidden_states_before_downsampling=False, + always_partition=False, + return_dict=True, + ): + all_hidden_states = () if output_hidden_states else None + all_reshaped_hidden_states = () if output_hidden_states else None + all_self_attentions = () if output_attentions else None + + if output_hidden_states: + batch_size, _, hidden_size = hidden_states.shape + reshaped_hidden_state = hidden_states.view( + batch_size, *input_dimensions, hidden_size + ) + reshaped_hidden_state = reshaped_hidden_state.permute(0, 3, 1, 2) + all_hidden_states += (hidden_states,) + all_reshaped_hidden_states += (reshaped_hidden_state,) + + for i, layer_module in enumerate(self.layers): + layer_head_mask = head_mask[i] if head_mask is not None else None + + if self.gradient_checkpointing and self.training: + layer_outputs = self._gradient_checkpointing_func( + layer_module.__call__, + hidden_states, + input_dimensions, + layer_head_mask, + output_attentions, + always_partition, + ) + else: + layer_outputs = layer_module( + hidden_states, + input_dimensions, + layer_head_mask, + output_attentions, + always_partition, + ) + + hidden_states = layer_outputs[0] + + hidden_states_before_downsampling = layer_outputs[1] + output_dimensions = layer_outputs[2] + + input_dimensions = (output_dimensions[-2], output_dimensions[-1]) + + if output_hidden_states and output_hidden_states_before_downsampling: + batch_size, _, hidden_size = hidden_states_before_downsampling.shape + reshaped_hidden_state = hidden_states_before_downsampling.reshape( + [ + batch_size, + *(output_dimensions[0], output_dimensions[1]), + hidden_size, + ] + ) + reshaped_hidden_state = reshaped_hidden_state.transpose([0, 3, 1, 2]) + all_hidden_states += (hidden_states_before_downsampling,) + all_reshaped_hidden_states += (reshaped_hidden_state,) + elif output_hidden_states and not output_hidden_states_before_downsampling: + batch_size, _, hidden_size = hidden_states.shape + reshaped_hidden_state = hidden_states.reshape( + [batch_size, *input_dimensions, hidden_size] + ) + reshaped_hidden_state = reshaped_hidden_state.transpose([0, 3, 1, 2]) + all_hidden_states += (hidden_states,) + all_reshaped_hidden_states += (reshaped_hidden_state,) + + if output_attentions: + all_self_attentions += layer_outputs[3:] + + if not return_dict: + return tuple( + v + for v in [hidden_states, all_hidden_states, all_self_attentions] + if v is not None + ) + + return DonutSwinEncoderOutput( + last_hidden_state=hidden_states, + hidden_states=all_hidden_states, + attentions=all_self_attentions, + reshaped_hidden_states=all_reshaped_hidden_states, + ) + + +class DonutSwinPreTrainedModel(nn.Module): + """ + An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained + models. + """ + + config_class = DonutSwinConfig + base_model_prefix = "swin" + main_input_name = "pixel_values" + supports_gradient_checkpointing = True + + def _init_weights(self, module): + """Initialize the weights""" + if isinstance(module, (nn.Linear, nn.Conv2D)): + # normal_ = Normal(mean=0.0, std=self.config.initializer_range) + nn.init.normal_(module.weight, mean=0.0, std=self.config.initializer_range) + if module.bias is not None: + nn.init.zeros_(module.bias) + elif isinstance(module, nn.LayerNorm): + nn.init.zeros_(module.bias) + nn.init.ones_(module.weight) + + def _initialize_weights(self, module): + """ + Initialize the weights if they are not already initialized. + """ + if getattr(module, "_is_hf_initialized", False): + return + self._init_weights(module) + + def post_init(self): + self.apply(self._initialize_weights) + + def get_head_mask(self, head_mask, num_hidden_layers, is_attention_chunked=False): + if head_mask is not None: + head_mask = self._convert_head_mask_to_5d(head_mask, num_hidden_layers) + if is_attention_chunked is True: + head_mask = head_mask.unsqueeze(-1) + else: + head_mask = [None] * num_hidden_layers + + return head_mask + + +class DonutSwinModel(DonutSwinPreTrainedModel): + def __init__( + self, + in_channels=3, + hidden_size=1024, + num_layers=4, + num_heads=[4, 8, 16, 32], + add_pooling_layer=True, + use_mask_token=False, + is_export=False, + ): + super().__init__() + donut_swin_config = { + "return_dict": True, + "output_hidden_states": False, + "output_attentions": False, + "use_bfloat16": False, + "tf_legacy_loss": False, + "pruned_heads": {}, + "tie_word_embeddings": True, + "chunk_size_feed_forward": 0, + "is_encoder_decoder": False, + "is_decoder": False, + "cross_attention_hidden_size": None, + "add_cross_attention": False, + "tie_encoder_decoder": False, + "max_length": 20, + "min_length": 0, + "do_sample": False, + "early_stopping": False, + "num_beams": 1, + "num_beam_groups": 1, + "diversity_penalty": 0.0, + "temperature": 1.0, + "top_k": 50, + "top_p": 1.0, + "typical_p": 1.0, + "repetition_penalty": 1.0, + "length_penalty": 1.0, + "no_repeat_ngram_size": 0, + "encoder_no_repeat_ngram_size": 0, + "bad_words_ids": None, + "num_return_sequences": 1, + "output_scores": False, + "return_dict_in_generate": False, + "forced_bos_token_id": None, + "forced_eos_token_id": None, + "remove_invalid_values": False, + "exponential_decay_length_penalty": None, + "suppress_tokens": None, + "begin_suppress_tokens": None, + "architectures": None, + "finetuning_task": None, + "id2label": {0: "LABEL_0", 1: "LABEL_1"}, + "label2id": {"LABEL_0": 0, "LABEL_1": 1}, + "tokenizer_class": None, + "prefix": None, + "bos_token_id": None, + "pad_token_id": None, + "eos_token_id": None, + "sep_token_id": None, + "decoder_start_token_id": None, + "task_specific_params": None, + "problem_type": None, + "_name_or_path": "", + "_commit_hash": None, + "_attn_implementation_internal": None, + "transformers_version": None, + "hidden_size": hidden_size, + "num_layers": num_layers, + "path_norm": True, + "use_2d_embeddings": False, + "image_size": [420, 420], + "patch_size": 4, + "num_channels": in_channels, + "embed_dim": 128, + "depths": [2, 2, 14, 2], + "num_heads": num_heads, + "window_size": 5, + "mlp_ratio": 4.0, + "qkv_bias": True, + "hidden_dropout_prob": 0.0, + "attention_probs_dropout_prob": 0.0, + "drop_path_rate": 0.1, + "hidden_act": "gelu", + "use_absolute_embeddings": False, + "layer_norm_eps": 1e-05, + "initializer_range": 0.02, + "is_export": is_export, + } + + config = DonutSwinConfig(**donut_swin_config) + self.config = config + self.num_layers = len(config.depths) + self.num_features = int(config.embed_dim * 2 ** (self.num_layers - 1)) + + self.embeddings = DonutSwinEmbeddings(config, use_mask_token=use_mask_token) + self.encoder = DonutSwinEncoder(config, self.embeddings.patch_grid) + + self.pooler = nn.AdaptiveAvgPool1D(1) if add_pooling_layer else None + self.out_channels = hidden_size + self.post_init() + + def get_input_embeddings(self): + return self.embeddings.patch_embeddings + + def forward( + self, + input_data=None, + bool_masked_pos=None, + head_mask=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + ) -> Union[Tuple, DonutSwinModelOutput]: + r""" + bool_masked_pos (`paddle.BoolTensor` of shape `(batch_size, num_patches)`): + Boolean masked positions. Indicates which patches are masked (1) and which aren't (0). + """ + if self.training: + pixel_values, label, attention_mask = input_data + else: + if isinstance(input_data, list): + pixel_values = input_data[0] + else: + pixel_values = input_data + output_attentions = ( + output_attentions + if output_attentions is not None + else self.config.output_attentions + ) + output_hidden_states = ( + output_hidden_states + if output_hidden_states is not None + else self.config.output_hidden_states + ) + return_dict = ( + return_dict if return_dict is not None else self.config.return_dict + ) + + if pixel_values is None: + raise ValueError("You have to specify pixel_values") + num_channels = pixel_values.shape[1] + if num_channels == 1: + pixel_values = torch.repeat_interleave(pixel_values, repeats=3, dim=1) + + head_mask = self.get_head_mask(head_mask, len(self.config.depths)) + + embedding_output, input_dimensions = self.embeddings( + pixel_values, bool_masked_pos=bool_masked_pos + ) + + encoder_outputs = self.encoder( + embedding_output, + input_dimensions, + head_mask=head_mask, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + sequence_output = encoder_outputs[0] + + pooled_output = None + if self.pooler is not None: + pooled_output = self.pooler(sequence_output.transpose([0, 2, 1])) + pooled_output = torch.flatten(pooled_output, 1) + + if not return_dict: + output = (sequence_output, pooled_output) + encoder_outputs[1:] + return output + + donut_swin_output = DonutSwinModelOutput( + last_hidden_state=sequence_output, + pooler_output=pooled_output, + hidden_states=encoder_outputs.hidden_states, + attentions=encoder_outputs.attentions, + reshaped_hidden_states=encoder_outputs.reshaped_hidden_states, + ) + if self.training: + return donut_swin_output, label, attention_mask + else: + return donut_swin_output \ No newline at end of file diff --git a/mineru/model/utils/pytorchocr/modeling/backbones/rec_hgnet.py b/mineru/model/utils/pytorchocr/modeling/backbones/rec_hgnet.py new file mode 100644 index 000000000..9cbc3dcc6 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/backbones/rec_hgnet.py @@ -0,0 +1,291 @@ +# Copyright (c) Opendatalab. All rights reserved. +import torch +import torch.nn.functional as F +from torch import nn + + +class ConvBNAct(nn.Module): + def __init__( + self, in_channels, out_channels, kernel_size, stride, groups=1, use_act=True + ): + super().__init__() + self.use_act = use_act + self.conv = nn.Conv2d( + in_channels, + out_channels, + kernel_size, + stride, + padding=(kernel_size - 1) // 2, + groups=groups, + bias=False, + ) + self.bn = nn.BatchNorm2d(out_channels) + if self.use_act: + self.act = nn.ReLU() + + def forward(self, x): + x = self.conv(x) + x = self.bn(x) + if self.use_act: + x = self.act(x) + return x + + +class ESEModule(nn.Module): + def __init__(self, channels): + super().__init__() + self.avg_pool = nn.AdaptiveAvgPool2d(1) + self.conv = nn.Conv2d( + in_channels=channels, + out_channels=channels, + kernel_size=1, + stride=1, + padding=0, + ) + self.sigmoid = nn.Sigmoid() + + def forward(self, x): + identity = x + x = self.avg_pool(x) + x = self.conv(x) + x = self.sigmoid(x) + return x * identity + + +class HG_Block(nn.Module): + def __init__( + self, + in_channels, + mid_channels, + out_channels, + layer_num, + identity=False, + ): + super().__init__() + self.identity = identity + + self.layers = nn.ModuleList() + self.layers.append( + ConvBNAct( + in_channels=in_channels, + out_channels=mid_channels, + kernel_size=3, + stride=1, + ) + ) + for _ in range(layer_num - 1): + self.layers.append( + ConvBNAct( + in_channels=mid_channels, + out_channels=mid_channels, + kernel_size=3, + stride=1, + ) + ) + + # feature aggregation + total_channels = in_channels + layer_num * mid_channels + self.aggregation_conv = ConvBNAct( + in_channels=total_channels, + out_channels=out_channels, + kernel_size=1, + stride=1, + ) + self.att = ESEModule(out_channels) + + def forward(self, x): + identity = x + output = [] + output.append(x) + for layer in self.layers: + x = layer(x) + output.append(x) + x = torch.cat(output, dim=1) + x = self.aggregation_conv(x) + x = self.att(x) + if self.identity: + x += identity + return x + + +class HG_Stage(nn.Module): + def __init__( + self, + in_channels, + mid_channels, + out_channels, + block_num, + layer_num, + downsample=True, + stride=[2, 1], + ): + super().__init__() + self.downsample = downsample + if downsample: + self.downsample = ConvBNAct( + in_channels=in_channels, + out_channels=in_channels, + kernel_size=3, + stride=stride, + groups=in_channels, + use_act=False, + ) + + blocks_list = [] + blocks_list.append( + HG_Block(in_channels, mid_channels, out_channels, layer_num, identity=False) + ) + for _ in range(block_num - 1): + blocks_list.append( + HG_Block( + out_channels, mid_channels, out_channels, layer_num, identity=True + ) + ) + self.blocks = nn.Sequential(*blocks_list) + + def forward(self, x): + if self.downsample: + x = self.downsample(x) + x = self.blocks(x) + return x + + +class PPHGNet(nn.Module): + """ + PPHGNet + Args: + stem_channels: list. Stem channel list of PPHGNet. + stage_config: dict. The configuration of each stage of PPHGNet. such as the number of channels, stride, etc. + layer_num: int. Number of layers of HG_Block. + use_last_conv: boolean. Whether to use a 1x1 convolutional layer before the classification layer. + class_expand: int=2048. Number of channels for the last 1x1 convolutional layer. + dropout_prob: float. Parameters of dropout, 0.0 means dropout is not used. + class_num: int=1000. The number of classes. + Returns: + model: nn.Layer. Specific PPHGNet model depends on args. + """ + + def __init__( + self, + stem_channels, + stage_config, + layer_num, + in_channels=3, + det=False, + out_indices=None, + ): + super().__init__() + self.det = det + self.out_indices = out_indices if out_indices is not None else [0, 1, 2, 3] + + # stem + stem_channels.insert(0, in_channels) + self.stem = nn.Sequential( + *[ + ConvBNAct( + in_channels=stem_channels[i], + out_channels=stem_channels[i + 1], + kernel_size=3, + stride=2 if i == 0 else 1, + ) + for i in range(len(stem_channels) - 1) + ] + ) + + if self.det: + self.pool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) + # stages + self.stages = nn.ModuleList() + self.out_channels = [] + for block_id, k in enumerate(stage_config): + ( + in_channels, + mid_channels, + out_channels, + block_num, + downsample, + stride, + ) = stage_config[k] + self.stages.append( + HG_Stage( + in_channels, + mid_channels, + out_channels, + block_num, + layer_num, + downsample, + stride, + ) + ) + if block_id in self.out_indices: + self.out_channels.append(out_channels) + + if not self.det: + self.out_channels = stage_config["stage4"][2] + + self._init_weights() + + def _init_weights(self): + for m in self.modules(): + if isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_(m.weight) + elif isinstance(m, nn.BatchNorm2d): + nn.init.ones_(m.weight) + nn.init.zeros_(m.bias) + elif isinstance(m, nn.Linear): + nn.init.zeros_(m.bias) + + def forward(self, x): + x = self.stem(x) + if self.det: + x = self.pool(x) + + out = [] + for i, stage in enumerate(self.stages): + x = stage(x) + if self.det and i in self.out_indices: + out.append(x) + if self.det: + return out + + if self.training: + x = F.adaptive_avg_pool2d(x, [1, 40]) + else: + x = F.avg_pool2d(x, [3, 2]) + return x + + +def PPHGNet_small(pretrained=False, use_ssld=False, det=False, **kwargs): + """ + PPHGNet_small + Args: + pretrained: bool=False or str. If `True` load pretrained parameters, `False` otherwise. + If str, means the path of the pretrained model. + use_ssld: bool=False. Whether using distillation pretrained model when pretrained=True. + Returns: + model: nn.Layer. Specific `PPHGNet_small` model depends on args. + """ + stage_config_det = { + # in_channels, mid_channels, out_channels, blocks, downsample + "stage1": [128, 128, 256, 1, False, 2], + "stage2": [256, 160, 512, 1, True, 2], + "stage3": [512, 192, 768, 2, True, 2], + "stage4": [768, 224, 1024, 1, True, 2], + } + + stage_config_rec = { + # in_channels, mid_channels, out_channels, blocks, downsample + "stage1": [128, 128, 256, 1, True, [2, 1]], + "stage2": [256, 160, 512, 1, True, [1, 2]], + "stage3": [512, 192, 768, 2, True, [2, 1]], + "stage4": [768, 224, 1024, 1, True, [2, 1]], + } + + model = PPHGNet( + stem_channels=[64, 64, 128], + stage_config=stage_config_det if det else stage_config_rec, + layer_num=6, + det=det, + **kwargs + ) + return model diff --git a/mineru/model/utils/pytorchocr/modeling/backbones/rec_lcnetv3.py b/mineru/model/utils/pytorchocr/modeling/backbones/rec_lcnetv3.py new file mode 100644 index 000000000..670b5e976 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/backbones/rec_lcnetv3.py @@ -0,0 +1,517 @@ +# Copyright (c) Opendatalab. All rights reserved. +# copyright (c) 2021 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import absolute_import, division, print_function + +import torch +import torch.nn.functional as F +from torch import nn + +from ..common import Activation + +NET_CONFIG_det = { + "blocks2": + # k, in_c, out_c, s, use_se + [[3, 16, 32, 1, False]], + "blocks3": [[3, 32, 64, 2, False], [3, 64, 64, 1, False]], + "blocks4": [[3, 64, 128, 2, False], [3, 128, 128, 1, False]], + "blocks5": [ + [3, 128, 256, 2, False], + [5, 256, 256, 1, False], + [5, 256, 256, 1, False], + [5, 256, 256, 1, False], + [5, 256, 256, 1, False], + ], + "blocks6": [ + [5, 256, 512, 2, True], + [5, 512, 512, 1, True], + [5, 512, 512, 1, False], + [5, 512, 512, 1, False], + ], +} + +NET_CONFIG_rec = { + "blocks2": + # k, in_c, out_c, s, use_se + [[3, 16, 32, 1, False]], + "blocks3": [[3, 32, 64, 1, False], [3, 64, 64, 1, False]], + "blocks4": [[3, 64, 128, (2, 1), False], [3, 128, 128, 1, False]], + "blocks5": [ + [3, 128, 256, (1, 2), False], + [5, 256, 256, 1, False], + [5, 256, 256, 1, False], + [5, 256, 256, 1, False], + [5, 256, 256, 1, False], + ], + "blocks6": [ + [5, 256, 512, (2, 1), True], + [5, 512, 512, 1, True], + [5, 512, 512, (2, 1), False], + [5, 512, 512, 1, False], + ], +} + + +def make_divisible(v, divisor=16, min_value=None): + if min_value is None: + min_value = divisor + new_v = max(min_value, int(v + divisor / 2) // divisor * divisor) + if new_v < 0.9 * v: + new_v += divisor + return new_v + + +class LearnableAffineBlock(nn.Module): + def __init__(self, scale_value=1.0, bias_value=0.0, lr_mult=1.0, lab_lr=0.1): + super().__init__() + self.scale = nn.Parameter(torch.Tensor([scale_value])) + self.bias = nn.Parameter(torch.Tensor([bias_value])) + + def forward(self, x): + return self.scale * x + self.bias + + +class ConvBNLayer(nn.Module): + def __init__( + self, in_channels, out_channels, kernel_size, stride, groups=1, lr_mult=1.0 + ): + super().__init__() + self.conv = nn.Conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=(kernel_size - 1) // 2, + groups=groups, + bias=False, + ) + + self.bn = nn.BatchNorm2d( + out_channels, + ) + + def forward(self, x): + x = self.conv(x) + x = self.bn(x) + return x + + +class Act(nn.Module): + def __init__(self, act="hswish", lr_mult=1.0, lab_lr=0.1): + super().__init__() + if act == "hswish": + self.act = nn.Hardswish(inplace=True) + else: + assert act == "relu" + self.act = Activation(act) + self.lab = LearnableAffineBlock(lr_mult=lr_mult, lab_lr=lab_lr) + + def forward(self, x): + return self.lab(self.act(x)) + + +class LearnableRepLayer(nn.Module): + def __init__( + self, + in_channels, + out_channels, + kernel_size, + stride=1, + groups=1, + num_conv_branches=1, + lr_mult=1.0, + lab_lr=0.1, + ): + super().__init__() + self.is_repped = False + self.groups = groups + self.stride = stride + self.kernel_size = kernel_size + self.in_channels = in_channels + self.out_channels = out_channels + self.num_conv_branches = num_conv_branches + self.padding = (kernel_size - 1) // 2 + + self.identity = ( + nn.BatchNorm2d( + num_features=in_channels, + ) + if out_channels == in_channels and stride == 1 + else None + ) + + self.conv_kxk = nn.ModuleList( + [ + ConvBNLayer( + in_channels, + out_channels, + kernel_size, + stride, + groups=groups, + lr_mult=lr_mult, + ) + for _ in range(self.num_conv_branches) + ] + ) + + self.conv_1x1 = ( + ConvBNLayer( + in_channels, out_channels, 1, stride, groups=groups, lr_mult=lr_mult + ) + if kernel_size > 1 + else None + ) + + self.lab = LearnableAffineBlock(lr_mult=lr_mult, lab_lr=lab_lr) + self.act = Act(lr_mult=lr_mult, lab_lr=lab_lr) + + def forward(self, x): + # for export + if self.is_repped: + out = self.lab(self.reparam_conv(x)) + if self.stride != 2: + out = self.act(out) + return out + + out = 0 + if self.identity is not None: + out += self.identity(x) + + if self.conv_1x1 is not None: + out += self.conv_1x1(x) + + for conv in self.conv_kxk: + out += conv(x) + + out = self.lab(out) + if self.stride != 2: + out = self.act(out) + return out + + def rep(self): + if self.is_repped: + return + kernel, bias = self._get_kernel_bias() + self.reparam_conv = nn.Conv2d( + in_channels=self.in_channels, + out_channels=self.out_channels, + kernel_size=self.kernel_size, + stride=self.stride, + padding=self.padding, + groups=self.groups, + ) + self.reparam_conv.weight.data = kernel + self.reparam_conv.bias.data = bias + self.is_repped = True + + def _pad_kernel_1x1_to_kxk(self, kernel1x1, pad): + if not isinstance(kernel1x1, torch.Tensor): + return 0 + else: + return nn.functional.pad(kernel1x1, [pad, pad, pad, pad]) + + def _get_kernel_bias(self): + kernel_conv_1x1, bias_conv_1x1 = self._fuse_bn_tensor(self.conv_1x1) + kernel_conv_1x1 = self._pad_kernel_1x1_to_kxk( + kernel_conv_1x1, self.kernel_size // 2 + ) + + kernel_identity, bias_identity = self._fuse_bn_tensor(self.identity) + + kernel_conv_kxk = 0 + bias_conv_kxk = 0 + for conv in self.conv_kxk: + kernel, bias = self._fuse_bn_tensor(conv) + kernel_conv_kxk += kernel + bias_conv_kxk += bias + + kernel_reparam = kernel_conv_kxk + kernel_conv_1x1 + kernel_identity + bias_reparam = bias_conv_kxk + bias_conv_1x1 + bias_identity + return kernel_reparam, bias_reparam + + def _fuse_bn_tensor(self, branch): + if not branch: + return 0, 0 + elif isinstance(branch, ConvBNLayer): + kernel = branch.conv.weight + running_mean = branch.bn.running_mean + running_var = branch.bn.running_var + gamma = branch.bn.weight + beta = branch.bn.bias + eps = branch.bn.eps + else: + assert isinstance(branch, nn.BatchNorm2d) + if not hasattr(self, "id_tensor"): + input_dim = self.in_channels // self.groups + kernel_value = torch.zeros( + (self.in_channels, input_dim, self.kernel_size, self.kernel_size), + dtype=branch.weight.dtype, device=branch.weight.device, + ) + for i in range(self.in_channels): + kernel_value[ + i, i % input_dim, self.kernel_size // 2, self.kernel_size // 2 + ] = 1 + self.id_tensor = kernel_value + kernel = self.id_tensor + running_mean = branch.running_mean + running_var = branch.running_var + gamma = branch.weight + beta = branch.bias + eps = branch.eps + std = (running_var + eps).sqrt() + t = (gamma / std).reshape((-1, 1, 1, 1)) + return kernel * t, beta - running_mean * gamma / std + + +class SELayer(nn.Module): + def __init__(self, channel, reduction=4, lr_mult=1.0): + super().__init__() + self.avg_pool = nn.AdaptiveAvgPool2d(1) + self.conv1 = nn.Conv2d( + in_channels=channel, + out_channels=channel // reduction, + kernel_size=1, + stride=1, + padding=0, + ) + self.relu = nn.ReLU() + self.conv2 = nn.Conv2d( + in_channels=channel // reduction, + out_channels=channel, + kernel_size=1, + stride=1, + padding=0, + ) + self.hardsigmoid = nn.Hardsigmoid(inplace=True) + + def forward(self, x): + identity = x + x = self.avg_pool(x) + x = self.conv1(x) + x = self.relu(x) + x = self.conv2(x) + x = self.hardsigmoid(x) + x = identity * x + return x + + +class LCNetV3Block(nn.Module): + def __init__( + self, + in_channels, + out_channels, + stride, + dw_size, + use_se=False, + conv_kxk_num=4, + lr_mult=1.0, + lab_lr=0.1, + ): + super().__init__() + self.use_se = use_se + self.dw_conv = LearnableRepLayer( + in_channels=in_channels, + out_channels=in_channels, + kernel_size=dw_size, + stride=stride, + groups=in_channels, + num_conv_branches=conv_kxk_num, + lr_mult=lr_mult, + lab_lr=lab_lr, + ) + if use_se: + self.se = SELayer(in_channels, lr_mult=lr_mult) + self.pw_conv = LearnableRepLayer( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=1, + stride=1, + num_conv_branches=conv_kxk_num, + lr_mult=lr_mult, + lab_lr=lab_lr, + ) + + def forward(self, x): + x = self.dw_conv(x) + if self.use_se: + x = self.se(x) + x = self.pw_conv(x) + return x + + +class PPLCNetV3(nn.Module): + def __init__( + self, + scale=1.0, + conv_kxk_num=4, + lr_mult_list=[1.0, 1.0, 1.0, 1.0, 1.0, 1.0], + lab_lr=0.1, + det=False, + **kwargs + ): + super().__init__() + self.scale = scale + self.lr_mult_list = lr_mult_list + self.det = det + + self.net_config = NET_CONFIG_det if self.det else NET_CONFIG_rec + + assert isinstance( + self.lr_mult_list, (list, tuple) + ), "lr_mult_list should be in (list, tuple) but got {}".format( + type(self.lr_mult_list) + ) + assert ( + len(self.lr_mult_list) == 6 + ), "lr_mult_list length should be 6 but got {}".format(len(self.lr_mult_list)) + + self.conv1 = ConvBNLayer( + in_channels=3, + out_channels=make_divisible(16 * scale), + kernel_size=3, + stride=2, + lr_mult=self.lr_mult_list[0], + ) + + self.blocks2 = nn.Sequential( + *[ + LCNetV3Block( + in_channels=make_divisible(in_c * scale), + out_channels=make_divisible(out_c * scale), + dw_size=k, + stride=s, + use_se=se, + conv_kxk_num=conv_kxk_num, + lr_mult=self.lr_mult_list[1], + lab_lr=lab_lr, + ) + for i, (k, in_c, out_c, s, se) in enumerate(self.net_config["blocks2"]) + ] + ) + + self.blocks3 = nn.Sequential( + *[ + LCNetV3Block( + in_channels=make_divisible(in_c * scale), + out_channels=make_divisible(out_c * scale), + dw_size=k, + stride=s, + use_se=se, + conv_kxk_num=conv_kxk_num, + lr_mult=self.lr_mult_list[2], + lab_lr=lab_lr, + ) + for i, (k, in_c, out_c, s, se) in enumerate(self.net_config["blocks3"]) + ] + ) + + self.blocks4 = nn.Sequential( + *[ + LCNetV3Block( + in_channels=make_divisible(in_c * scale), + out_channels=make_divisible(out_c * scale), + dw_size=k, + stride=s, + use_se=se, + conv_kxk_num=conv_kxk_num, + lr_mult=self.lr_mult_list[3], + lab_lr=lab_lr, + ) + for i, (k, in_c, out_c, s, se) in enumerate(self.net_config["blocks4"]) + ] + ) + + self.blocks5 = nn.Sequential( + *[ + LCNetV3Block( + in_channels=make_divisible(in_c * scale), + out_channels=make_divisible(out_c * scale), + dw_size=k, + stride=s, + use_se=se, + conv_kxk_num=conv_kxk_num, + lr_mult=self.lr_mult_list[4], + lab_lr=lab_lr, + ) + for i, (k, in_c, out_c, s, se) in enumerate(self.net_config["blocks5"]) + ] + ) + + self.blocks6 = nn.Sequential( + *[ + LCNetV3Block( + in_channels=make_divisible(in_c * scale), + out_channels=make_divisible(out_c * scale), + dw_size=k, + stride=s, + use_se=se, + conv_kxk_num=conv_kxk_num, + lr_mult=self.lr_mult_list[5], + lab_lr=lab_lr, + ) + for i, (k, in_c, out_c, s, se) in enumerate(self.net_config["blocks6"]) + ] + ) + self.out_channels = make_divisible(512 * scale) + + if self.det: + mv_c = [16, 24, 56, 480] + self.out_channels = [ + make_divisible(self.net_config["blocks3"][-1][2] * scale), + make_divisible(self.net_config["blocks4"][-1][2] * scale), + make_divisible(self.net_config["blocks5"][-1][2] * scale), + make_divisible(self.net_config["blocks6"][-1][2] * scale), + ] + + self.layer_list = nn.ModuleList( + [ + nn.Conv2d(self.out_channels[0], int(mv_c[0] * scale), 1, 1, 0), + nn.Conv2d(self.out_channels[1], int(mv_c[1] * scale), 1, 1, 0), + nn.Conv2d(self.out_channels[2], int(mv_c[2] * scale), 1, 1, 0), + nn.Conv2d(self.out_channels[3], int(mv_c[3] * scale), 1, 1, 0), + ] + ) + self.out_channels = [ + int(mv_c[0] * scale), + int(mv_c[1] * scale), + int(mv_c[2] * scale), + int(mv_c[3] * scale), + ] + + def forward(self, x): + out_list = [] + x = self.conv1(x) + x = self.blocks2(x) + x = self.blocks3(x) + out_list.append(x) + x = self.blocks4(x) + out_list.append(x) + x = self.blocks5(x) + out_list.append(x) + x = self.blocks6(x) + out_list.append(x) + + if self.det: + out_list[0] = self.layer_list[0](out_list[0]) + out_list[1] = self.layer_list[1](out_list[1]) + out_list[2] = self.layer_list[2](out_list[2]) + out_list[3] = self.layer_list[3](out_list[3]) + return out_list + + if self.training: + x = F.adaptive_avg_pool2d(x, [1, 40]) + else: + x = F.avg_pool2d(x, [3, 2]) + return x diff --git a/mineru/model/utils/pytorchocr/modeling/backbones/rec_mobilenet_v3.py b/mineru/model/utils/pytorchocr/modeling/backbones/rec_mobilenet_v3.py new file mode 100644 index 000000000..1dbd10eac --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/backbones/rec_mobilenet_v3.py @@ -0,0 +1,137 @@ +# Copyright (c) Opendatalab. All rights reserved. +from torch import nn + +from .det_mobilenet_v3 import ConvBNLayer, ResidualUnit, make_divisible + + +class MobileNetV3(nn.Module): + def __init__( + self, + in_channels=3, + model_name="small", + scale=0.5, + large_stride=None, + small_stride=None, + **kwargs + ): + super(MobileNetV3, self).__init__() + if small_stride is None: + small_stride = [2, 2, 2, 2] + if large_stride is None: + large_stride = [1, 2, 2, 2] + + assert isinstance( + large_stride, list + ), "large_stride type must " "be list but got {}".format(type(large_stride)) + assert isinstance( + small_stride, list + ), "small_stride type must " "be list but got {}".format(type(small_stride)) + assert ( + len(large_stride) == 4 + ), "large_stride length must be " "4 but got {}".format(len(large_stride)) + assert ( + len(small_stride) == 4 + ), "small_stride length must be " "4 but got {}".format(len(small_stride)) + + if model_name == "large": + cfg = [ + # k, exp, c, se, nl, s, + [3, 16, 16, False, "relu", large_stride[0]], + [3, 64, 24, False, "relu", (large_stride[1], 1)], + [3, 72, 24, False, "relu", 1], + [5, 72, 40, True, "relu", (large_stride[2], 1)], + [5, 120, 40, True, "relu", 1], + [5, 120, 40, True, "relu", 1], + [3, 240, 80, False, "hard_swish", 1], + [3, 200, 80, False, "hard_swish", 1], + [3, 184, 80, False, "hard_swish", 1], + [3, 184, 80, False, "hard_swish", 1], + [3, 480, 112, True, "hard_swish", 1], + [3, 672, 112, True, "hard_swish", 1], + [5, 672, 160, True, "hard_swish", (large_stride[3], 1)], + [5, 960, 160, True, "hard_swish", 1], + [5, 960, 160, True, "hard_swish", 1], + ] + cls_ch_squeeze = 960 + elif model_name == "small": + cfg = [ + # k, exp, c, se, nl, s, + [3, 16, 16, True, "relu", (small_stride[0], 1)], + [3, 72, 24, False, "relu", (small_stride[1], 1)], + [3, 88, 24, False, "relu", 1], + [5, 96, 40, True, "hard_swish", (small_stride[2], 1)], + [5, 240, 40, True, "hard_swish", 1], + [5, 240, 40, True, "hard_swish", 1], + [5, 120, 48, True, "hard_swish", 1], + [5, 144, 48, True, "hard_swish", 1], + [5, 288, 96, True, "hard_swish", (small_stride[3], 1)], + [5, 576, 96, True, "hard_swish", 1], + [5, 576, 96, True, "hard_swish", 1], + ] + cls_ch_squeeze = 576 + else: + raise NotImplementedError( + "mode[" + model_name + "_model] is not implemented!" + ) + + supported_scale = [0.35, 0.5, 0.75, 1.0, 1.25] + assert ( + scale in supported_scale + ), "supported scales are {} but input scale is {}".format( + supported_scale, scale + ) + + inplanes = 16 + # conv1 + self.conv1 = ConvBNLayer( + in_channels=in_channels, + out_channels=make_divisible(inplanes * scale), + kernel_size=3, + stride=2, + padding=1, + groups=1, + if_act=True, + act="hard_swish", + name="conv1", + ) + i = 0 + block_list = [] + inplanes = make_divisible(inplanes * scale) + for k, exp, c, se, nl, s in cfg: + block_list.append( + ResidualUnit( + in_channels=inplanes, + mid_channels=make_divisible(scale * exp), + out_channels=make_divisible(scale * c), + kernel_size=k, + stride=s, + use_se=se, + act=nl, + name="conv" + str(i + 2), + ) + ) + inplanes = make_divisible(scale * c) + i += 1 + self.blocks = nn.Sequential(*block_list) + + self.conv2 = ConvBNLayer( + in_channels=inplanes, + out_channels=make_divisible(scale * cls_ch_squeeze), + kernel_size=1, + stride=1, + padding=0, + groups=1, + if_act=True, + act="hard_swish", + name="conv_last", + ) + + self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0) + self.out_channels = make_divisible(scale * cls_ch_squeeze) + + def forward(self, x): + x = self.conv1(x) + x = self.blocks(x) + x = self.conv2(x) + x = self.pool(x) + return x diff --git a/mineru/model/utils/pytorchocr/modeling/backbones/rec_mv1_enhance.py b/mineru/model/utils/pytorchocr/modeling/backbones/rec_mv1_enhance.py new file mode 100644 index 000000000..2155e0b3e --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/backbones/rec_mv1_enhance.py @@ -0,0 +1,235 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os, sys +import torch +import torch.nn as nn +import torch.nn.functional as F + +from ..common import Activation + + +class ConvBNLayer(nn.Module): + def __init__(self, + num_channels, + filter_size, + num_filters, + stride, + padding, + channels=None, + num_groups=1, + act='hard_swish'): + super(ConvBNLayer, self).__init__() + self.act = act + self._conv = nn.Conv2d( + in_channels=num_channels, + out_channels=num_filters, + kernel_size=filter_size, + stride=stride, + padding=padding, + groups=num_groups, + bias=False) + + self._batch_norm = nn.BatchNorm2d( + num_filters, + ) + if self.act is not None: + self._act = Activation(act_type=act, inplace=True) + + def forward(self, inputs): + y = self._conv(inputs) + y = self._batch_norm(y) + if self.act is not None: + y = self._act(y) + return y + + +class DepthwiseSeparable(nn.Module): + def __init__(self, + num_channels, + num_filters1, + num_filters2, + num_groups, + stride, + scale, + dw_size=3, + padding=1, + use_se=False): + super(DepthwiseSeparable, self).__init__() + self.use_se = use_se + self._depthwise_conv = ConvBNLayer( + num_channels=num_channels, + num_filters=int(num_filters1 * scale), + filter_size=dw_size, + stride=stride, + padding=padding, + num_groups=int(num_groups * scale)) + if use_se: + self._se = SEModule(int(num_filters1 * scale)) + self._pointwise_conv = ConvBNLayer( + num_channels=int(num_filters1 * scale), + filter_size=1, + num_filters=int(num_filters2 * scale), + stride=1, + padding=0) + + def forward(self, inputs): + y = self._depthwise_conv(inputs) + if self.use_se: + y = self._se(y) + y = self._pointwise_conv(y) + return y + + +class MobileNetV1Enhance(nn.Module): + def __init__(self, + in_channels=3, + scale=0.5, + last_conv_stride=1, + last_pool_type='max', + **kwargs): + super().__init__() + self.scale = scale + self.block_list = [] + + self.conv1 = ConvBNLayer( + num_channels=in_channels, + filter_size=3, + channels=3, + num_filters=int(32 * scale), + stride=2, + padding=1) + + conv2_1 = DepthwiseSeparable( + num_channels=int(32 * scale), + num_filters1=32, + num_filters2=64, + num_groups=32, + stride=1, + scale=scale) + self.block_list.append(conv2_1) + + conv2_2 = DepthwiseSeparable( + num_channels=int(64 * scale), + num_filters1=64, + num_filters2=128, + num_groups=64, + stride=1, + scale=scale) + self.block_list.append(conv2_2) + + conv3_1 = DepthwiseSeparable( + num_channels=int(128 * scale), + num_filters1=128, + num_filters2=128, + num_groups=128, + stride=1, + scale=scale) + self.block_list.append(conv3_1) + + conv3_2 = DepthwiseSeparable( + num_channels=int(128 * scale), + num_filters1=128, + num_filters2=256, + num_groups=128, + stride=(2, 1), + scale=scale) + self.block_list.append(conv3_2) + + conv4_1 = DepthwiseSeparable( + num_channels=int(256 * scale), + num_filters1=256, + num_filters2=256, + num_groups=256, + stride=1, + scale=scale) + self.block_list.append(conv4_1) + + conv4_2 = DepthwiseSeparable( + num_channels=int(256 * scale), + num_filters1=256, + num_filters2=512, + num_groups=256, + stride=(2, 1), + scale=scale) + self.block_list.append(conv4_2) + + for _ in range(5): + conv5 = DepthwiseSeparable( + num_channels=int(512 * scale), + num_filters1=512, + num_filters2=512, + num_groups=512, + stride=1, + dw_size=5, + padding=2, + scale=scale, + use_se=False) + self.block_list.append(conv5) + + conv5_6 = DepthwiseSeparable( + num_channels=int(512 * scale), + num_filters1=512, + num_filters2=1024, + num_groups=512, + stride=(2, 1), + dw_size=5, + padding=2, + scale=scale, + use_se=True) + self.block_list.append(conv5_6) + + conv6 = DepthwiseSeparable( + num_channels=int(1024 * scale), + num_filters1=1024, + num_filters2=1024, + num_groups=1024, + stride=last_conv_stride, + dw_size=5, + padding=2, + use_se=True, + scale=scale) + self.block_list.append(conv6) + + self.block_list = nn.Sequential(*self.block_list) + if last_pool_type == 'avg': + self.pool = nn.AvgPool2d(kernel_size=2, stride=2, padding=0) + else: + self.pool = nn.MaxPool2d(kernel_size=2, stride=2, padding=0) + self.out_channels = int(1024 * scale) + + def forward(self, inputs): + y = self.conv1(inputs) + y = self.block_list(y) + y = self.pool(y) + return y + +def hardsigmoid(x): + return F.relu6(x + 3., inplace=True) / 6. + +class SEModule(nn.Module): + def __init__(self, channel, reduction=4): + super(SEModule, self).__init__() + self.avg_pool = nn.AdaptiveAvgPool2d(1) + self.conv1 = nn.Conv2d( + in_channels=channel, + out_channels=channel // reduction, + kernel_size=1, + stride=1, + padding=0, + bias=True) + self.conv2 = nn.Conv2d( + in_channels=channel // reduction, + out_channels=channel, + kernel_size=1, + stride=1, + padding=0, + bias=True) + + def forward(self, inputs): + outputs = self.avg_pool(inputs) + outputs = self.conv1(outputs) + outputs = F.relu(outputs) + outputs = self.conv2(outputs) + outputs = hardsigmoid(outputs) + x = torch.mul(inputs, outputs) + + return x diff --git a/mineru/model/utils/pytorchocr/modeling/backbones/rec_pphgnetv2.py b/mineru/model/utils/pytorchocr/modeling/backbones/rec_pphgnetv2.py new file mode 100644 index 000000000..3114fdf18 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/backbones/rec_pphgnetv2.py @@ -0,0 +1,1624 @@ +# Copyright (c) Opendatalab. All rights reserved. +import math +import torch +import torch.nn as nn +import torch.nn.functional as F +import numpy as np +from .rec_donut_swin import DonutSwinModelOutput +from typing import List, Dict, Union, Callable + + +class IdentityBasedConv1x1(nn.Conv2d): + def __init__(self, channels, groups=1): + super(IdentityBasedConv1x1, self).__init__( + in_channels=channels, + out_channels=channels, + kernel_size=1, + stride=1, + padding=0, + groups=groups, + bias_attr=False, + ) + + assert channels % groups == 0 + input_dim = channels // groups + id_value = np.zeros((channels, input_dim, 1, 1)) + for i in range(channels): + id_value[i, i % input_dim, 0, 0] = 1 + self.id_tensor = torch.Tensor(id_value) + self.weight.set_value(torch.zeros_like(self.weight)) + + def forward(self, input): + kernel = self.weight + self.id_tensor + result = F.conv2d( + input, + kernel, + None, + stride=1, + padding=0, + dilation=self._dilation, + groups=self._groups, + ) + return result + + def get_actual_kernel(self): + return self.weight + self.id_tensor + + +class BNAndPad(nn.Module): + def __init__( + self, + pad_pixels, + num_features, + epsilon=1e-5, + momentum=0.1, + last_conv_bias=None, + bn=nn.BatchNorm2d, + ): + super().__init__() + self.bn = bn(num_features, momentum=momentum, epsilon=epsilon) + self.pad_pixels = pad_pixels + self.last_conv_bias = last_conv_bias + + def forward(self, input): + output = self.bn(input) + if self.pad_pixels > 0: + bias = -self.bn._mean + if self.last_conv_bias is not None: + bias += self.last_conv_bias + pad_values = self.bn.bias + self.bn.weight * ( + bias / torch.sqrt(self.bn._variance + self.bn._epsilon) + ) + """ pad """ + # TODO: n,h,w,c format is not supported yet + n, c, h, w = output.shape + values = pad_values.reshape([1, -1, 1, 1]) + w_values = values.expand([n, -1, self.pad_pixels, w]) + x = torch.cat([w_values, output, w_values], dim=2) + h = h + self.pad_pixels * 2 + h_values = values.expand([n, -1, h, self.pad_pixels]) + x = torch.cat([h_values, x, h_values], dim=3) + output = x + return output + + @property + def weight(self): + return self.bn.weight + + @property + def bias(self): + return self.bn.bias + + @property + def _mean(self): + return self.bn._mean + + @property + def _variance(self): + return self.bn._variance + + @property + def _epsilon(self): + return self.bn._epsilon + + +def conv_bn( + in_channels, + out_channels, + kernel_size, + stride=1, + padding=0, + dilation=1, + groups=1, + padding_mode="zeros", +): + conv_layer = nn.Conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + groups=groups, + bias_attr=False, + padding_mode=padding_mode, + ) + bn_layer = nn.BatchNorm2D(num_features=out_channels) + se = nn.Sequential() + se.add_sublayer("conv", conv_layer) + se.add_sublayer("bn", bn_layer) + return se + + +def transI_fusebn(kernel, bn): + gamma = bn.weight + std = (bn._variance + bn._epsilon).sqrt() + return ( + kernel * ((gamma / std).reshape([-1, 1, 1, 1])), + bn.bias - bn._mean * gamma / std, + ) + + +def transII_addbranch(kernels, biases): + return sum(kernels), sum(biases) + + +def transIII_1x1_kxk(k1, b1, k2, b2, groups): + if groups == 1: + k = F.conv2d(k2, k1.transpose([1, 0, 2, 3])) + b_hat = (k2 * b1.reshape([1, -1, 1, 1])).sum((1, 2, 3)) + else: + k_slices = [] + b_slices = [] + k1_T = k1.transpose([1, 0, 2, 3]) + k1_group_width = k1.shape[0] // groups + k2_group_width = k2.shape[0] // groups + for g in range(groups): + k1_T_slice = k1_T[:, g * k1_group_width : (g + 1) * k1_group_width, :, :] + k2_slice = k2[g * k2_group_width : (g + 1) * k2_group_width, :, :, :] + k_slices.append(F.conv2d(k2_slice, k1_T_slice)) + b_slices.append( + ( + k2_slice + * b1[g * k1_group_width : (g + 1) * k1_group_width].reshape( + [1, -1, 1, 1] + ) + ).sum((1, 2, 3)) + ) + k, b_hat = transIV_depthconcat(k_slices, b_slices) + return k, b_hat + b2 + + +def transIV_depthconcat(kernels, biases): + return torch.cat(kernels, dim=0), torch.cat(biases) + + +def transV_avg(channels, kernel_size, groups): + input_dim = channels // groups + k = torch.zeros((channels, input_dim, kernel_size, kernel_size)) + k[np.arange(channels), np.tile(np.arange(input_dim), groups), :, :] = ( + 1.0 / kernel_size**2 + ) + return k + + +def transVI_multiscale(kernel, target_kernel_size): + H_pixels_to_pad = (target_kernel_size - kernel.shape[2]) // 2 + W_pixels_to_pad = (target_kernel_size - kernel.shape[3]) // 2 + return F.pad( + kernel, [H_pixels_to_pad, H_pixels_to_pad, W_pixels_to_pad, W_pixels_to_pad] + ) + + +class DiverseBranchBlock(nn.Module): + def __init__( + self, + num_channels, + num_filters, + filter_size, + stride=1, + groups=1, + act=None, + is_repped=False, + single_init=False, + **kwargs, + ): + super().__init__() + + padding = (filter_size - 1) // 2 + dilation = 1 + + in_channels = num_channels + out_channels = num_filters + kernel_size = filter_size + internal_channels_1x1_3x3 = None + nonlinear = act + + self.is_repped = is_repped + + if nonlinear is None: + self.nonlinear = nn.Identity() + else: + self.nonlinear = nn.ReLU() + + self.kernel_size = kernel_size + self.out_channels = out_channels + self.groups = groups + assert padding == kernel_size // 2 + + if is_repped: + self.dbb_reparam = nn.Conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + groups=groups, + bias=True, + ) + else: + self.dbb_origin = conv_bn( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + groups=groups, + ) + + self.dbb_avg = nn.Sequential() + if groups < out_channels: + self.dbb_avg.add_sublayer( + "conv", + nn.Conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=1, + stride=1, + padding=0, + groups=groups, + bias=False, + ), + ) + self.dbb_avg.add_sublayer( + "bn", BNAndPad(pad_pixels=padding, num_features=out_channels) + ) + self.dbb_avg.add_sublayer( + "avg", + nn.AvgPool2D(kernel_size=kernel_size, stride=stride, padding=0), + ) + self.dbb_1x1 = conv_bn( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=1, + stride=stride, + padding=0, + groups=groups, + ) + else: + self.dbb_avg.add_sublayer( + "avg", + nn.AvgPool2D( + kernel_size=kernel_size, stride=stride, padding=padding + ), + ) + + self.dbb_avg.add_sublayer("avgbn", nn.BatchNorm2D(out_channels)) + + if internal_channels_1x1_3x3 is None: + internal_channels_1x1_3x3 = ( + in_channels if groups < out_channels else 2 * in_channels + ) # For mobilenet, it is better to have 2X internal channels + + self.dbb_1x1_kxk = nn.Sequential() + if internal_channels_1x1_3x3 == in_channels: + self.dbb_1x1_kxk.add_sublayer( + "idconv1", IdentityBasedConv1x1(channels=in_channels, groups=groups) + ) + else: + self.dbb_1x1_kxk.add_sublayer( + "conv1", + nn.Conv2d( + in_channels=in_channels, + out_channels=internal_channels_1x1_3x3, + kernel_size=1, + stride=1, + padding=0, + groups=groups, + bias=False, + ), + ) + self.dbb_1x1_kxk.add_sublayer( + "bn1", + BNAndPad(pad_pixels=padding, num_features=internal_channels_1x1_3x3), + ) + self.dbb_1x1_kxk.add_sublayer( + "conv2", + nn.Conv2d( + in_channels=internal_channels_1x1_3x3, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=0, + groups=groups, + bias=False, + ), + ) + self.dbb_1x1_kxk.add_sublayer("bn2", nn.BatchNorm2D(out_channels)) + + # The experiments reported in the paper used the default initialization of bn.weight (all as 1). But changing the initialization may be useful in some cases. + if single_init: + # Initialize the bn.weight of dbb_origin as 1 and others as 0. This is not the default setting. + self.single_init() + + def forward(self, inputs): + if self.is_repped: + return self.nonlinear(self.dbb_reparam(inputs)) + + out = self.dbb_origin(inputs) + if hasattr(self, "dbb_1x1"): + out += self.dbb_1x1(inputs) + out += self.dbb_avg(inputs) + out += self.dbb_1x1_kxk(inputs) + return self.nonlinear(out) + + def init_gamma(self, gamma_value): + if hasattr(self, "dbb_origin"): + torch.nn.init.constant_(self.dbb_origin.bn.weight, gamma_value) + if hasattr(self, "dbb_1x1"): + torch.nn.init.constant_(self.dbb_1x1.bn.weight, gamma_value) + if hasattr(self, "dbb_avg"): + torch.nn.init.constant_(self.dbb_avg.avgbn.weight, gamma_value) + if hasattr(self, "dbb_1x1_kxk"): + torch.nn.init.constant_(self.dbb_1x1_kxk.bn2.weight, gamma_value) + + def single_init(self): + self.init_gamma(0.0) + if hasattr(self, "dbb_origin"): + torch.nn.init.constant_(self.dbb_origin.bn.weight, 1.0) + + def get_equivalent_kernel_bias(self): + k_origin, b_origin = transI_fusebn( + self.dbb_origin.conv.weight, self.dbb_origin.bn + ) + + if hasattr(self, "dbb_1x1"): + k_1x1, b_1x1 = transI_fusebn(self.dbb_1x1.conv.weight, self.dbb_1x1.bn) + k_1x1 = transVI_multiscale(k_1x1, self.kernel_size) + else: + k_1x1, b_1x1 = 0, 0 + + if hasattr(self.dbb_1x1_kxk, "idconv1"): + k_1x1_kxk_first = self.dbb_1x1_kxk.idconv1.get_actual_kernel() + else: + k_1x1_kxk_first = self.dbb_1x1_kxk.conv1.weight + k_1x1_kxk_first, b_1x1_kxk_first = transI_fusebn( + k_1x1_kxk_first, self.dbb_1x1_kxk.bn1 + ) + k_1x1_kxk_second, b_1x1_kxk_second = transI_fusebn( + self.dbb_1x1_kxk.conv2.weight, self.dbb_1x1_kxk.bn2 + ) + k_1x1_kxk_merged, b_1x1_kxk_merged = transIII_1x1_kxk( + k_1x1_kxk_first, + b_1x1_kxk_first, + k_1x1_kxk_second, + b_1x1_kxk_second, + groups=self.groups, + ) + + k_avg = transV_avg(self.out_channels, self.kernel_size, self.groups) + k_1x1_avg_second, b_1x1_avg_second = transI_fusebn(k_avg, self.dbb_avg.avgbn) + if hasattr(self.dbb_avg, "conv"): + k_1x1_avg_first, b_1x1_avg_first = transI_fusebn( + self.dbb_avg.conv.weight, self.dbb_avg.bn + ) + k_1x1_avg_merged, b_1x1_avg_merged = transIII_1x1_kxk( + k_1x1_avg_first, + b_1x1_avg_first, + k_1x1_avg_second, + b_1x1_avg_second, + groups=self.groups, + ) + else: + k_1x1_avg_merged, b_1x1_avg_merged = k_1x1_avg_second, b_1x1_avg_second + + return transII_addbranch( + (k_origin, k_1x1, k_1x1_kxk_merged, k_1x1_avg_merged), + (b_origin, b_1x1, b_1x1_kxk_merged, b_1x1_avg_merged), + ) + + def re_parameterize(self): + if self.is_repped: + return + + kernel, bias = self.get_equivalent_kernel_bias() + self.dbb_reparam = nn.Conv2d( + in_channels=self.dbb_origin.conv._in_channels, + out_channels=self.dbb_origin.conv._out_channels, + kernel_size=self.dbb_origin.conv._kernel_size, + stride=self.dbb_origin.conv._stride, + padding=self.dbb_origin.conv._padding, + dilation=self.dbb_origin.conv._dilation, + groups=self.dbb_origin.conv._groups, + bias=True, + ) + + self.dbb_reparam.weight.set_value(kernel) + self.dbb_reparam.bias.set_value(bias) + + self.__delattr__("dbb_origin") + self.__delattr__("dbb_avg") + if hasattr(self, "dbb_1x1"): + self.__delattr__("dbb_1x1") + self.__delattr__("dbb_1x1_kxk") + self.is_repped = True + + +class Identity(nn.Module): + def __init__(self): + super(Identity, self).__init__() + + def forward(self, inputs): + return inputs + + +class TheseusLayer(nn.Module): + def __init__(self, *args, **kwargs): + super().__init__() + self.res_dict = {} + # self.res_name = self.full_name() + self.res_name = self.__class__.__name__.lower() + self.pruner = None + self.quanter = None + + self.init_net(*args, **kwargs) + + def _return_dict_hook(self, layer, input, output): + res_dict = {"logits": output} + # 'list' is needed to avoid error raised by popping self.res_dict + for res_key in list(self.res_dict): + # clear the res_dict because the forward process may change according to input + res_dict[res_key] = self.res_dict.pop(res_key) + return res_dict + + def init_net( + self, + stages_pattern=None, + return_patterns=None, + return_stages=None, + freeze_befor=None, + stop_after=None, + *args, + **kwargs, + ): + # init the output of net + if return_patterns or return_stages: + if return_patterns and return_stages: + msg = f"The 'return_patterns' would be ignored when 'return_stages' is set." + + return_stages = None + + if return_stages is True: + return_patterns = stages_pattern + + # return_stages is int or bool + if type(return_stages) is int: + return_stages = [return_stages] + if isinstance(return_stages, list): + if max(return_stages) > len(stages_pattern) or min(return_stages) < 0: + msg = f"The 'return_stages' set error. Illegal value(s) have been ignored. The stages' pattern list is {stages_pattern}." + + return_stages = [ + val + for val in return_stages + if val >= 0 and val < len(stages_pattern) + ] + return_patterns = [stages_pattern[i] for i in return_stages] + + if return_patterns: + # call update_res function after the __init__ of the object has completed execution, that is, the constructing of layer or model has been completed. + def update_res_hook(layer, input): + self.update_res(return_patterns) + + self.register_forward_pre_hook(update_res_hook) + + # freeze subnet + if freeze_befor is not None: + self.freeze_befor(freeze_befor) + + # set subnet to Identity + if stop_after is not None: + self.stop_after(stop_after) + + def init_res(self, stages_pattern, return_patterns=None, return_stages=None): + + if return_patterns and return_stages: + return_stages = None + + if return_stages is True: + return_patterns = stages_pattern + # return_stages is int or bool + if type(return_stages) is int: + return_stages = [return_stages] + if isinstance(return_stages, list): + if max(return_stages) > len(stages_pattern) or min(return_stages) < 0: + return_stages = [ + val + for val in return_stages + if val >= 0 and val < len(stages_pattern) + ] + return_patterns = [stages_pattern[i] for i in return_stages] + + if return_patterns: + self.update_res(return_patterns) + + def replace_sub(self, *args, **kwargs) -> None: + msg = "The function 'replace_sub()' is deprecated, please use 'upgrade_sublayer()' instead." + raise DeprecationWarning(msg) + + def upgrade_sublayer( + self, + layer_name_pattern: Union[str, List[str]], + handle_func: Callable[[nn.Module, str], nn.Module], + ) -> Dict[str, nn.Module]: + """use 'handle_func' to modify the sub-layer(s) specified by 'layer_name_pattern'. + + Args: + layer_name_pattern (Union[str, List[str]]): The name of layer to be modified by 'handle_func'. + handle_func (Callable[[nn.Module, str], nn.Module]): The function to modify target layer specified by 'layer_name_pattern'. The formal params are the layer(nn.Module) and pattern(str) that is (a member of) layer_name_pattern (when layer_name_pattern is List type). And the return is the layer processed. + + Returns: + Dict[str, nn.Module]: The key is the pattern and corresponding value is the result returned by 'handle_func()'. + + Examples: + + from paddle import nn + import paddleclas + + def rep_func(layer: nn.Module, pattern: str): + new_layer = nn.Conv2d( + in_channels=layer._in_channels, + out_channels=layer._out_channels, + kernel_size=5, + padding=2 + ) + return new_layer + + net = paddleclas.MobileNetV1() + res = net.upgrade_sublayer(layer_name_pattern=["blocks[11].depthwise_conv.conv", "blocks[12].depthwise_conv.conv"], handle_func=rep_func) + print(res) + # {'blocks[11].depthwise_conv.conv': the corresponding new_layer, 'blocks[12].depthwise_conv.conv': the corresponding new_layer} + """ + + if not isinstance(layer_name_pattern, list): + layer_name_pattern = [layer_name_pattern] + + hit_layer_pattern_list = [] + for pattern in layer_name_pattern: + # parse pattern to find target layer and its parent + layer_list = parse_pattern_str(pattern=pattern, parent_layer=self) + if not layer_list: + continue + + sub_layer_parent = layer_list[-2]["layer"] if len(layer_list) > 1 else self + sub_layer = layer_list[-1]["layer"] + sub_layer_name = layer_list[-1]["name"] + sub_layer_index_list = layer_list[-1]["index_list"] + + new_sub_layer = handle_func(sub_layer, pattern) + + if sub_layer_index_list: + if len(sub_layer_index_list) > 1: + sub_layer_parent = getattr(sub_layer_parent, sub_layer_name)[ + sub_layer_index_list[0] + ] + for sub_layer_index in sub_layer_index_list[1:-1]: + sub_layer_parent = sub_layer_parent[sub_layer_index] + sub_layer_parent[sub_layer_index_list[-1]] = new_sub_layer + else: + getattr(sub_layer_parent, sub_layer_name)[ + sub_layer_index_list[0] + ] = new_sub_layer + else: + setattr(sub_layer_parent, sub_layer_name, new_sub_layer) + + hit_layer_pattern_list.append(pattern) + return hit_layer_pattern_list + + def stop_after(self, stop_layer_name: str) -> bool: + """stop forward and backward after 'stop_layer_name'. + + Args: + stop_layer_name (str): The name of layer that stop forward and backward after this layer. + + Returns: + bool: 'True' if successful, 'False' otherwise. + """ + + layer_list = parse_pattern_str(stop_layer_name, self) + if not layer_list: + return False + + parent_layer = self + for layer_dict in layer_list: + name, index_list = layer_dict["name"], layer_dict["index_list"] + if not set_identity(parent_layer, name, index_list): + msg = f"Failed to set the layers that after stop_layer_name('{stop_layer_name}') to IdentityLayer. The error layer's name is '{name}'." + return False + parent_layer = layer_dict["layer"] + + return True + + def freeze_befor(self, layer_name: str) -> bool: + """freeze the layer named layer_name and its previous layer. + + Args: + layer_name (str): The name of layer that would be freezed. + + Returns: + bool: 'True' if successful, 'False' otherwise. + """ + + def stop_grad(layer, pattern): + class StopGradLayer(nn.Module): + def __init__(self): + super().__init__() + self.layer = layer + + def forward(self, x): + x = self.layer(x) + x.stop_gradient = True + return x + + new_layer = StopGradLayer() + return new_layer + + res = self.upgrade_sublayer(layer_name, stop_grad) + if len(res) == 0: + msg = "Failed to stop the gradient before the layer named '{layer_name}'" + return False + return True + + def update_res(self, return_patterns: Union[str, List[str]]) -> Dict[str, nn.Module]: + """update the result(s) to be returned. + + Args: + return_patterns (Union[str, List[str]]): The name of layer to return output. + + Returns: + Dict[str, nn.Module]: The pattern(str) and corresponding layer(nn.Module) that have been set successfully. + """ + + # clear res_dict that could have been set + self.res_dict = {} + + class Handler(object): + def __init__(self, res_dict): + # res_dict is a reference + self.res_dict = res_dict + + def __call__(self, layer, pattern): + layer.res_dict = self.res_dict + layer.res_name = pattern + if hasattr(layer, "hook_remove_helper"): + layer.hook_remove_helper.remove() + layer.hook_remove_helper = layer.register_forward_post_hook( + save_sub_res_hook + ) + return layer + + handle_func = Handler(self.res_dict) + + hit_layer_pattern_list = self.upgrade_sublayer( + return_patterns, handle_func=handle_func + ) + + if hasattr(self, "hook_remove_helper"): + self.hook_remove_helper.remove() + self.hook_remove_helper = self.register_forward_post_hook( + self._return_dict_hook + ) + + return hit_layer_pattern_list + + +def save_sub_res_hook(layer, input, output): + layer.res_dict[layer.res_name] = output + + +def set_identity( + parent_layer: nn.Module, layer_name: str, layer_index_list: str = None +) -> bool: + """set the layer specified by layer_name and layer_index_list to Identity. + + Args: + parent_layer (nn.Module): The parent layer of target layer specified by layer_name and layer_index_list. + layer_name (str): The name of target layer to be set to Identity. + layer_index_list (str, optional): The index of target layer to be set to Identity in parent_layer. Defaults to None. + + Returns: + bool: True if successfully, False otherwise. + """ + + stop_after = False + for sub_layer_name in parent_layer._sub_layers: + if stop_after: + parent_layer._sub_layers[sub_layer_name] = Identity() + continue + if sub_layer_name == layer_name: + stop_after = True + + if layer_index_list and stop_after: + layer_container = parent_layer._sub_layers[layer_name] + for num, layer_index in enumerate(layer_index_list): + stop_after = False + for i in range(num): + layer_container = layer_container[layer_index_list[i]] + for sub_layer_index in layer_container._sub_layers: + if stop_after: + parent_layer._sub_layers[layer_name][sub_layer_index] = Identity() + continue + if layer_index == sub_layer_index: + stop_after = True + + return stop_after + + +def parse_pattern_str( + pattern: str, parent_layer: nn.Module +) -> Union[None, List[Dict[str, Union[nn.Module, str, None]]]]: + """parse the string type pattern. + + Args: + pattern (str): The pattern to describe layer. + parent_layer (nn.Module): The root layer relative to the pattern. + + Returns: + Union[None, List[Dict[str, Union[nn.Module, str, None]]]]: None if failed. If successfully, the members are layers parsed in order: + [ + {"layer": first layer, "name": first layer's name parsed, "index": first layer's index parsed if exist}, + {"layer": second layer, "name": second layer's name parsed, "index": second layer's index parsed if exist}, + ... + ] + """ + + pattern_list = pattern.split(".") + if not pattern_list: + msg = f"The pattern('{pattern}') is illegal. Please check and retry." + return None + + layer_list = [] + while len(pattern_list) > 0: + if "[" in pattern_list[0]: + target_layer_name = pattern_list[0].split("[")[0] + target_layer_index_list = list( + index.split("]")[0] for index in pattern_list[0].split("[")[1:] + ) + else: + target_layer_name = pattern_list[0] + target_layer_index_list = None + + target_layer = getattr(parent_layer, target_layer_name, None) + + if target_layer is None: + msg = f"Not found layer named('{target_layer_name}') specified in pattern('{pattern}')." + return None + + if target_layer_index_list: + for target_layer_index in target_layer_index_list: + if int(target_layer_index) < 0 or int(target_layer_index) >= len( + target_layer + ): + msg = f"Not found layer by index('{target_layer_index}') specified in pattern('{pattern}'). The index should < {len(target_layer)} and > 0." + return None + target_layer = target_layer[target_layer_index] + + layer_list.append( + { + "layer": target_layer, + "name": target_layer_name, + "index_list": target_layer_index_list, + } + ) + + pattern_list = pattern_list[1:] + parent_layer = target_layer + + return layer_list + + +class LearnableAffineBlock(TheseusLayer): + """ + Create a learnable affine block module. This module can significantly improve accuracy on smaller models. + + Args: + scale_value (float): The initial value of the scale parameter, default is 1.0. + bias_value (float): The initial value of the bias parameter, default is 0.0. + lr_mult (float): The learning rate multiplier, default is 1.0. + lab_lr (float): The learning rate, default is 0.01. + """ + + def __init__(self, scale_value=1.0, bias_value=0.0, lr_mult=1.0, lab_lr=0.01): + super().__init__() + # self.scale = self.create_parameter( + # shape=[ + # 1, + # ], + # default_initializer=nn.init.Constant(value=scale_value), + # # attr=ParamAttr(learning_rate=lr_mult * lab_lr), + # ) + # self.add_parameter("scale", self.scale) + self.scale = torch.Parameter( + nn.init.constant_( + torch.ones(1).to(torch.float32), val=scale_value + ) + ) + self.register_parameter("scale", self.scale) + + # self.bias = self.create_parameter( + # shape=[ + # 1, + # ], + # default_initializer=nn.init.Constant(value=bias_value), + # # attr=ParamAttr(learning_rate=lr_mult * lab_lr), + # ) + # self.add_parameter("bias", self.bias) + self.bias = torch.Parameter( + nn.init.constant_( + torch.ones(1).to(torch.float32), val=bias_value + ) + ) + self.register_parameter("bias", self.bias) + + def forward(self, x): + return self.scale * x + self.bias + + +class ConvBNAct(TheseusLayer): + """ + ConvBNAct is a combination of convolution and batchnorm layers. + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + kernel_size (int): Size of the convolution kernel. Defaults to 3. + stride (int): Stride of the convolution. Defaults to 1. + padding (int/str): Padding or padding type for the convolution. Defaults to 1. + groups (int): Number of groups for the convolution. Defaults to 1. + use_act: (bool): Whether to use activation function. Defaults to True. + use_lab (bool): Whether to use the LAB operation. Defaults to False. + lr_mult (float): Learning rate multiplier for the layer. Defaults to 1.0. + """ + + def __init__( + self, + in_channels, + out_channels, + kernel_size=3, + stride=1, + padding=1, + groups=1, + use_act=True, + use_lab=False, + lr_mult=1.0, + ): + super().__init__() + self.use_act = use_act + self.use_lab = use_lab + self.conv = nn.Conv2d( + in_channels, + out_channels, + kernel_size, + stride, + padding=padding if isinstance(padding, str) else (kernel_size - 1) // 2, + groups=groups, + bias=False, + ) + self.bn = nn.BatchNorm2d( + out_channels, + ) + if self.use_act: + self.act = nn.ReLU() + if self.use_lab: + self.lab = LearnableAffineBlock(lr_mult=lr_mult) + + def forward(self, x): + x = self.conv(x) + x = self.bn(x) + if self.use_act: + x = self.act(x) + if self.use_lab: + x = self.lab(x) + return x + + +class LightConvBNAct(TheseusLayer): + """ + LightConvBNAct is a combination of pw and dw layers. + + Args: + in_channels (int): Number of input channels. + out_channels (int): Number of output channels. + kernel_size (int): Size of the depth-wise convolution kernel. + use_lab (bool): Whether to use the LAB operation. Defaults to False. + lr_mult (float): Learning rate multiplier for the layer. Defaults to 1.0. + """ + + def __init__( + self, + in_channels, + out_channels, + kernel_size, + use_lab=False, + lr_mult=1.0, + **kwargs, + ): + super().__init__() + self.conv1 = ConvBNAct( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=1, + use_act=False, + use_lab=use_lab, + lr_mult=lr_mult, + ) + self.conv2 = ConvBNAct( + in_channels=out_channels, + out_channels=out_channels, + kernel_size=kernel_size, + groups=out_channels, + use_act=True, + use_lab=use_lab, + lr_mult=lr_mult, + ) + + def forward(self, x): + x = self.conv1(x) + x = self.conv2(x) + return x + + +class StemBlock(TheseusLayer): + """ + StemBlock for PP-HGNetV2. + + Args: + in_channels (int): Number of input channels. + mid_channels (int): Number of middle channels. + out_channels (int): Number of output channels. + use_lab (bool): Whether to use the LAB operation. Defaults to False. + lr_mult (float): Learning rate multiplier for the layer. Defaults to 1.0. + """ + + def __init__( + self, + in_channels, + mid_channels, + out_channels, + use_lab=False, + lr_mult=1.0, + text_rec=False, + ): + super().__init__() + self.stem1 = ConvBNAct( + in_channels=in_channels, + out_channels=mid_channels, + kernel_size=3, + stride=2, + use_lab=use_lab, + lr_mult=lr_mult, + ) + self.stem2a = ConvBNAct( + in_channels=mid_channels, + out_channels=mid_channels // 2, + kernel_size=2, + stride=1, + use_lab=use_lab, + lr_mult=lr_mult, + ) + self.stem2b = ConvBNAct( + in_channels=mid_channels // 2, + out_channels=mid_channels, + kernel_size=2, + stride=1, + use_lab=use_lab, + lr_mult=lr_mult, + ) + self.stem3 = ConvBNAct( + in_channels=mid_channels * 2, + out_channels=mid_channels, + kernel_size=3, + stride=1 if text_rec else 2, + use_lab=use_lab, + lr_mult=lr_mult, + ) + self.stem4 = ConvBNAct( + in_channels=mid_channels, + out_channels=out_channels, + kernel_size=1, + stride=1, + use_lab=use_lab, + lr_mult=lr_mult, + ) + self.pool = torch.nn.MaxPool2d(kernel_size=2, stride=1, ceil_mode=True) + + def forward(self, x): + embedding = self.stem1(x) + embedding = F.pad(embedding, (0, 1, 0, 1)) + emb_stem_2a = self.stem2a(embedding) + emb_stem_2a = F.pad(emb_stem_2a, (0, 1, 0, 1)) + emb_stem_2a = self.stem2b(emb_stem_2a) + pooled_emb = self.pool(embedding) + embedding = torch.cat([pooled_emb, emb_stem_2a], 1) + embedding = self.stem3(embedding) + embedding = self.stem4(embedding) + + return embedding + + +class HGV2_Block(TheseusLayer): + """ + HGV2_Block, the basic unit that constitutes the HGV2_Stage. + + Args: + in_channels (int): Number of input channels. + mid_channels (int): Number of middle channels. + out_channels (int): Number of output channels. + kernel_size (int): Size of the convolution kernel. Defaults to 3. + layer_num (int): Number of layers in the HGV2 block. Defaults to 6. + stride (int): Stride of the convolution. Defaults to 1. + padding (int/str): Padding or padding type for the convolution. Defaults to 1. + groups (int): Number of groups for the convolution. Defaults to 1. + use_act (bool): Whether to use activation function. Defaults to True. + use_lab (bool): Whether to use the LAB operation. Defaults to False. + lr_mult (float): Learning rate multiplier for the layer. Defaults to 1.0. + """ + + def __init__( + self, + in_channels, + mid_channels, + out_channels, + kernel_size=3, + layer_num=6, + identity=False, + light_block=True, + use_lab=False, + lr_mult=1.0, + ): + super().__init__() + self.identity = identity + + self.layers = nn.ModuleList() + block_type = "LightConvBNAct" if light_block else "ConvBNAct" + for i in range(layer_num): + self.layers.append( + eval(block_type)( + in_channels=in_channels if i == 0 else mid_channels, + out_channels=mid_channels, + stride=1, + kernel_size=kernel_size, + use_lab=use_lab, + lr_mult=lr_mult, + ) + ) + # feature aggregation + total_channels = in_channels + layer_num * mid_channels + self.aggregation_squeeze_conv = ConvBNAct( + in_channels=total_channels, + out_channels=out_channels // 2, + kernel_size=1, + stride=1, + use_lab=use_lab, + lr_mult=lr_mult, + ) + self.aggregation_excitation_conv = ConvBNAct( + in_channels=out_channels // 2, + out_channels=out_channels, + kernel_size=1, + stride=1, + use_lab=use_lab, + lr_mult=lr_mult, + ) + + def forward(self, x): + identity = x + output = [] + output.append(x) + for layer in self.layers: + x = layer(x) + output.append(x) + x = torch.cat(output, dim=1) + x = self.aggregation_squeeze_conv(x) + x = self.aggregation_excitation_conv(x) + if self.identity: + x += identity + return x + + +class HGV2_Stage(TheseusLayer): + """ + HGV2_Stage, the basic unit that constitutes the PPHGNetV2. + + Args: + in_channels (int): Number of input channels. + mid_channels (int): Number of middle channels. + out_channels (int): Number of output channels. + block_num (int): Number of blocks in the HGV2 stage. + layer_num (int): Number of layers in the HGV2 block. Defaults to 6. + is_downsample (bool): Whether to use downsampling operation. Defaults to False. + light_block (bool): Whether to use light block. Defaults to True. + kernel_size (int): Size of the convolution kernel. Defaults to 3. + use_lab (bool, optional): Whether to use the LAB operation. Defaults to False. + lr_mult (float, optional): Learning rate multiplier for the layer. Defaults to 1.0. + """ + + def __init__( + self, + in_channels, + mid_channels, + out_channels, + block_num, + layer_num=6, + is_downsample=True, + light_block=True, + kernel_size=3, + use_lab=False, + stride=2, + lr_mult=1.0, + ): + + super().__init__() + self.is_downsample = is_downsample + if self.is_downsample: + self.downsample = ConvBNAct( + in_channels=in_channels, + out_channels=in_channels, + kernel_size=3, + stride=stride, + groups=in_channels, + use_act=False, + use_lab=use_lab, + lr_mult=lr_mult, + ) + + blocks_list = [] + for i in range(block_num): + blocks_list.append( + HGV2_Block( + in_channels=in_channels if i == 0 else out_channels, + mid_channels=mid_channels, + out_channels=out_channels, + kernel_size=kernel_size, + layer_num=layer_num, + identity=False if i == 0 else True, + light_block=light_block, + use_lab=use_lab, + lr_mult=lr_mult, + ) + ) + self.blocks = nn.Sequential(*blocks_list) + + def forward(self, x): + if self.is_downsample: + x = self.downsample(x) + x = self.blocks(x) + return x + + +class PPHGNetV2(TheseusLayer): + """ + PPHGNetV2 + + Args: + stage_config (dict): Config for PPHGNetV2 stages. such as the number of channels, stride, etc. + stem_channels: (list): Number of channels of the stem of the PPHGNetV2. + use_lab (bool): Whether to use the LAB operation. Defaults to False. + use_last_conv (bool): Whether to use the last conv layer as the output channel. Defaults to True. + class_expand (int): Number of channels for the last 1x1 convolutional layer. + drop_prob (float): Dropout probability for the last 1x1 convolutional layer. Defaults to 0.0. + class_num (int): The number of classes for the classification layer. Defaults to 1000. + lr_mult_list (list): Learning rate multiplier for the stages. Defaults to [1.0, 1.0, 1.0, 1.0, 1.0]. + Returns: + model: nn.Module. Specific PPHGNetV2 model depends on args. + """ + + def __init__( + self, + stage_config, + stem_channels=[3, 32, 64], + use_lab=False, + use_last_conv=True, + class_expand=2048, + dropout_prob=0.0, + class_num=1000, + lr_mult_list=[1.0, 1.0, 1.0, 1.0, 1.0], + det=False, + text_rec=False, + out_indices=None, + **kwargs, + ): + super().__init__() + self.det = det + self.text_rec = text_rec + self.use_lab = use_lab + self.use_last_conv = use_last_conv + self.class_expand = class_expand + self.class_num = class_num + self.out_indices = out_indices if out_indices is not None else [0, 1, 2, 3] + self.out_channels = [] + + # stem + self.stem = StemBlock( + in_channels=stem_channels[0], + mid_channels=stem_channels[1], + out_channels=stem_channels[2], + use_lab=use_lab, + lr_mult=lr_mult_list[0], + text_rec=text_rec, + ) + + # stages + self.stages = nn.ModuleList() + for i, k in enumerate(stage_config): + ( + in_channels, + mid_channels, + out_channels, + block_num, + is_downsample, + light_block, + kernel_size, + layer_num, + stride, + ) = stage_config[k] + self.stages.append( + HGV2_Stage( + in_channels, + mid_channels, + out_channels, + block_num, + layer_num, + is_downsample, + light_block, + kernel_size, + use_lab, + stride, + lr_mult=lr_mult_list[i + 1], + ) + ) + if i in self.out_indices: + self.out_channels.append(out_channels) + if not self.det: + self.out_channels = stage_config["stage4"][2] + + self.avg_pool = nn.AdaptiveAvgPool2d(1) + + if self.use_last_conv: + self.last_conv = nn.Conv2d( + in_channels=out_channels, + out_channels=self.class_expand, + kernel_size=1, + stride=1, + padding=0, + bias=False, + ) + self.act = nn.ReLU() + if self.use_lab: + self.lab = LearnableAffineBlock() + # self.dropout = nn.Dropout(p=dropout_prob, mode="downscale_in_infer") + self.dropout = nn.Dropout(p=dropout_prob) + + self.flatten = nn.Flatten(start_dim=1, end_dim=-1) + if not self.det: + self.fc = nn.Linear( + self.class_expand if self.use_last_conv else out_channels, + self.class_num, + ) + + self._init_weights() + + def _init_weights(self): + for m in self.modules(): + if isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_(m.weight) + elif isinstance(m, (nn.BatchNorm2d)): + nn.init.ones_(m.weight) + nn.init.zeros_(m.bias) + elif isinstance(m, nn.Linear): + nn.init.zeros_(m.bias) + + def forward(self, x): + x = self.stem(x) + out = [] + for i, stage in enumerate(self.stages): + x = stage(x) + if self.det and i in self.out_indices: + out.append(x) + if self.det: + return out + + if self.text_rec: + if self.training: + x = F.adaptive_avg_pool2d(x, [1, 40]) + else: + x = F.avg_pool2d(x, [3, 2]) + return x + + +def PPHGNetV2_B0(pretrained=False, use_ssld=False, **kwargs): + """ + PPHGNetV2_B0 + Args: + pretrained (bool/str): If `True` load pretrained parameters, `False` otherwise. + If str, means the path of the pretrained model. + use_ssld (bool) Whether using ssld pretrained model when pretrained is True. + Returns: + model: nn.Module. Specific `PPHGNetV2_B0` model depends on args. + """ + stage_config = { + # in_channels, mid_channels, out_channels, num_blocks, is_downsample, light_block, kernel_size, layer_num + "stage1": [16, 16, 64, 1, False, False, 3, 3], + "stage2": [64, 32, 256, 1, True, False, 3, 3], + "stage3": [256, 64, 512, 2, True, True, 5, 3], + "stage4": [512, 128, 1024, 1, True, True, 5, 3], + } + + model = PPHGNetV2( + stem_channels=[3, 16, 16], stage_config=stage_config, use_lab=True, **kwargs + ) + return model + + +def PPHGNetV2_B1(pretrained=False, use_ssld=False, **kwargs): + """ + PPHGNetV2_B1 + Args: + pretrained (bool/str): If `True` load pretrained parameters, `False` otherwise. + If str, means the path of the pretrained model. + use_ssld (bool) Whether using ssld pretrained model when pretrained is True. + Returns: + model: nn.Module. Specific `PPHGNetV2_B1` model depends on args. + """ + stage_config = { + # in_channels, mid_channels, out_channels, num_blocks, is_downsample, light_block, kernel_size, layer_num + "stage1": [32, 32, 64, 1, False, False, 3, 3], + "stage2": [64, 48, 256, 1, True, False, 3, 3], + "stage3": [256, 96, 512, 2, True, True, 5, 3], + "stage4": [512, 192, 1024, 1, True, True, 5, 3], + } + + model = PPHGNetV2( + stem_channels=[3, 24, 32], stage_config=stage_config, use_lab=True, **kwargs + ) + return model + + +def PPHGNetV2_B2(pretrained=False, use_ssld=False, **kwargs): + """ + PPHGNetV2_B2 + Args: + pretrained (bool/str): If `True` load pretrained parameters, `False` otherwise. + If str, means the path of the pretrained model. + use_ssld (bool) Whether using ssld pretrained model when pretrained is True. + Returns: + model: nn.Module. Specific `PPHGNetV2_B2` model depends on args. + """ + stage_config = { + # in_channels, mid_channels, out_channels, num_blocks, is_downsample, light_block, kernel_size, layer_num + "stage1": [32, 32, 96, 1, False, False, 3, 4], + "stage2": [96, 64, 384, 1, True, False, 3, 4], + "stage3": [384, 128, 768, 3, True, True, 5, 4], + "stage4": [768, 256, 1536, 1, True, True, 5, 4], + } + + model = PPHGNetV2( + stem_channels=[3, 24, 32], stage_config=stage_config, use_lab=True, **kwargs + ) + return model + + +def PPHGNetV2_B3(pretrained=False, use_ssld=False, **kwargs): + """ + PPHGNetV2_B3 + Args: + pretrained (bool/str): If `True` load pretrained parameters, `False` otherwise. + If str, means the path of the pretrained model. + use_ssld (bool) Whether using ssld pretrained model when pretrained is True. + Returns: + model: nn.Module. Specific `PPHGNetV2_B3` model depends on args. + """ + stage_config = { + # in_channels, mid_channels, out_channels, num_blocks, is_downsample, light_block, kernel_size, layer_num + "stage1": [32, 32, 128, 1, False, False, 3, 5], + "stage2": [128, 64, 512, 1, True, False, 3, 5], + "stage3": [512, 128, 1024, 3, True, True, 5, 5], + "stage4": [1024, 256, 2048, 1, True, True, 5, 5], + } + + model = PPHGNetV2( + stem_channels=[3, 24, 32], stage_config=stage_config, use_lab=True, **kwargs + ) + return model + + +def PPHGNetV2_B4(pretrained=False, use_ssld=False, det=False, text_rec=False, **kwargs): + """ + PPHGNetV2_B4 + Args: + pretrained (bool/str): If `True` load pretrained parameters, `False` otherwise. + If str, means the path of the pretrained model. + use_ssld (bool) Whether using ssld pretrained model when pretrained is True. + Returns: + model: nn.Module. Specific `PPHGNetV2_B4` model depends on args. + """ + stage_config_rec = { + # in_channels, mid_channels, out_channels, num_blocks, is_downsample, light_block, kernel_size, layer_num, stride + "stage1": [48, 48, 128, 1, True, False, 3, 6, [2, 1]], + "stage2": [128, 96, 512, 1, True, False, 3, 6, [1, 2]], + "stage3": [512, 192, 1024, 3, True, True, 5, 6, [2, 1]], + "stage4": [1024, 384, 2048, 1, True, True, 5, 6, [2, 1]], + } + + stage_config_det = { + # in_channels, mid_channels, out_channels, num_blocks, is_downsample, light_block, kernel_size, layer_num + "stage1": [48, 48, 128, 1, False, False, 3, 6, 2], + "stage2": [128, 96, 512, 1, True, False, 3, 6, 2], + "stage3": [512, 192, 1024, 3, True, True, 5, 6, 2], + "stage4": [1024, 384, 2048, 1, True, True, 5, 6, 2], + } + model = PPHGNetV2( + stem_channels=[3, 32, 48], + stage_config=stage_config_det if det else stage_config_rec, + use_lab=False, + det=det, + text_rec=text_rec, + **kwargs, + ) + return model + + +def PPHGNetV2_B5(pretrained=False, use_ssld=False, **kwargs): + """ + PPHGNetV2_B5 + Args: + pretrained (bool/str): If `True` load pretrained parameters, `False` otherwise. + If str, means the path of the pretrained model. + use_ssld (bool) Whether using ssld pretrained model when pretrained is True. + Returns: + model: nn.Module. Specific `PPHGNetV2_B5` model depends on args. + """ + stage_config = { + # in_channels, mid_channels, out_channels, num_blocks, is_downsample, light_block, kernel_size, layer_num + "stage1": [64, 64, 128, 1, False, False, 3, 6], + "stage2": [128, 128, 512, 2, True, False, 3, 6], + "stage3": [512, 256, 1024, 5, True, True, 5, 6], + "stage4": [1024, 512, 2048, 2, True, True, 5, 6], + } + + model = PPHGNetV2( + stem_channels=[3, 32, 64], stage_config=stage_config, use_lab=False, **kwargs + ) + return model + + +def PPHGNetV2_B6(pretrained=False, use_ssld=False, **kwargs): + """ + PPHGNetV2_B6 + Args: + pretrained (bool/str): If `True` load pretrained parameters, `False` otherwise. + If str, means the path of the pretrained model. + use_ssld (bool) Whether using ssld pretrained model when pretrained is True. + Returns: + model: nn.Module. Specific `PPHGNetV2_B6` model depends on args. + """ + stage_config = { + # in_channels, mid_channels, out_channels, num_blocks, is_downsample, light_block, kernel_size, layer_num + "stage1": [96, 96, 192, 2, False, False, 3, 6], + "stage2": [192, 192, 512, 3, True, False, 3, 6], + "stage3": [512, 384, 1024, 6, True, True, 5, 6], + "stage4": [1024, 768, 2048, 3, True, True, 5, 6], + } + + model = PPHGNetV2( + stem_channels=[3, 48, 96], stage_config=stage_config, use_lab=False, **kwargs + ) + return model + + +class PPHGNetV2_B4_Formula(nn.Module): + """ + PPHGNetV2_B4_Formula + Args: + in_channels (int): Number of input channels. Default is 3 (for RGB images). + class_num (int): Number of classes for classification. Default is 1000. + Returns: + model: nn.Module. Specific `PPHGNetV2_B4` model with defined architecture. + """ + + def __init__(self, in_channels=3, class_num=1000): + super().__init__() + self.in_channels = in_channels + self.out_channels = 2048 + stage_config = { + # in_channels, mid_channels, out_channels, num_blocks, is_downsample, light_block, kernel_size, layer_num + "stage1": [48, 48, 128, 1, False, False, 3, 6, 2], + "stage2": [128, 96, 512, 1, True, False, 3, 6, 2], + "stage3": [512, 192, 1024, 3, True, True, 5, 6, 2], + "stage4": [1024, 384, 2048, 1, True, True, 5, 6, 2], + } + + self.pphgnet_b4 = PPHGNetV2( + stem_channels=[3, 32, 48], + stage_config=stage_config, + class_num=class_num, + use_lab=False, + ) + + def forward(self, input_data): + if self.training: + pixel_values, label, attention_mask = input_data + else: + if isinstance(input_data, list): + pixel_values = input_data[0] + else: + pixel_values = input_data + num_channels = pixel_values.shape[1] + if num_channels == 1: + pixel_values = torch.repeat_interleave(pixel_values, repeats=3, dim=1) + pphgnet_b4_output = self.pphgnet_b4(pixel_values) + b, c, h, w = pphgnet_b4_output.shape + pphgnet_b4_output = pphgnet_b4_output.reshape([b, c, h * w]).transpose( + [0, 2, 1] + ) + pphgnet_b4_output = DonutSwinModelOutput( + last_hidden_state=pphgnet_b4_output, + pooler_output=None, + hidden_states=None, + attentions=False, + reshaped_hidden_states=None, + ) + if self.training: + return pphgnet_b4_output, label, attention_mask + else: + return pphgnet_b4_output + + +class PPHGNetV2_B6_Formula(nn.Module): + """ + PPHGNetV2_B6_Formula + Args: + in_channels (int): Number of input channels. Default is 3 (for RGB images). + class_num (int): Number of classes for classification. Default is 1000. + Returns: + model: nn.Module. Specific `PPHGNetV2_B6` model with defined architecture. + """ + + def __init__(self, in_channels=3, class_num=1000): + super().__init__() + self.in_channels = in_channels + self.out_channels = 2048 + stage_config = { + # in_channels, mid_channels, out_channels, num_blocks, is_downsample, light_block, kernel_size, layer_num + "stage1": [96, 96, 192, 2, False, False, 3, 6, 2], + "stage2": [192, 192, 512, 3, True, False, 3, 6, 2], + "stage3": [512, 384, 1024, 6, True, True, 5, 6, 2], + "stage4": [1024, 768, 2048, 3, True, True, 5, 6, 2], + } + + self.pphgnet_b6 = PPHGNetV2( + stem_channels=[3, 48, 96], + class_num=class_num, + stage_config=stage_config, + use_lab=False, + ) + + def forward(self, input_data): + if self.training: + pixel_values, label, attention_mask = input_data + else: + if isinstance(input_data, list): + pixel_values = input_data[0] + else: + pixel_values = input_data + num_channels = pixel_values.shape[1] + if num_channels == 1: + pixel_values = torch.repeat_interleave(pixel_values, repeats=3, dim=1) + pphgnet_b6_output = self.pphgnet_b6(pixel_values) + b, c, h, w = pphgnet_b6_output.shape + pphgnet_b6_output = pphgnet_b6_output.reshape([b, c, h * w]).permute( + 0, 2, 1 + ) + pphgnet_b6_output = DonutSwinModelOutput( + last_hidden_state=pphgnet_b6_output, + pooler_output=None, + hidden_states=None, + attentions=False, + reshaped_hidden_states=None, + ) + if self.training: + return pphgnet_b6_output, label, attention_mask + else: + return pphgnet_b6_output diff --git a/mineru/model/utils/pytorchocr/modeling/backbones/rec_svtrnet.py b/mineru/model/utils/pytorchocr/modeling/backbones/rec_svtrnet.py new file mode 100644 index 000000000..976829a87 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/backbones/rec_svtrnet.py @@ -0,0 +1,639 @@ +# Copyright (c) Opendatalab. All rights reserved. +import numpy as np +import torch +from torch import nn + +from ..common import Activation + + +def drop_path(x, drop_prob=0.0, training=False): + """Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks). + the original name is misleading as 'Drop Connect' is a different form of dropout in a separate paper... + See discussion: https://github.com/tensorflow/tpu/issues/494#issuecomment-532968956 ... + """ + if drop_prob == 0.0 or not training: + return x + keep_prob = torch.as_tensor(1 - drop_prob) + shape = (x.shape[0],) + (1,) * (x.ndim - 1) + random_tensor = keep_prob + torch.rand(shape, dtype=x.dtype) + random_tensor = torch.floor(random_tensor) # binarize + output = x.divide(keep_prob) * random_tensor + return output + + +class ConvBNLayer(nn.Module): + def __init__( + self, + in_channels, + out_channels, + kernel_size=3, + stride=1, + padding=0, + bias_attr=False, + groups=1, + act="gelu", + ): + super().__init__() + self.conv = nn.Conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + groups=groups, + bias=bias_attr, + ) + self.norm = nn.BatchNorm2d(out_channels) + self.act = Activation(act_type=act, inplace=True) + + def forward(self, inputs): + out = self.conv(inputs) + out = self.norm(out) + out = self.act(out) + return out + + +class DropPath(nn.Module): + """Drop paths (Stochastic Depth) per sample (when applied in main path of residual blocks).""" + + def __init__(self, drop_prob=None): + super(DropPath, self).__init__() + self.drop_prob = drop_prob + + def forward(self, x): + return drop_path(x, self.drop_prob, self.training) + + +class Identity(nn.Module): + def __init__(self): + super(Identity, self).__init__() + + def forward(self, input): + return input + + +class Mlp(nn.Module): + def __init__( + self, + in_features, + hidden_features=None, + out_features=None, + act_layer="gelu", + drop=0.0, + ): + super().__init__() + out_features = out_features or in_features + hidden_features = hidden_features or in_features + self.fc1 = nn.Linear(in_features, hidden_features) + self.act = Activation(act_type=act_layer, inplace=True) + self.fc2 = nn.Linear(hidden_features, out_features) + self.drop = nn.Dropout(drop) + + def forward(self, x): + x = self.fc1(x) + x = self.act(x) + x = self.drop(x) + x = self.fc2(x) + x = self.drop(x) + return x + + +class ConvMixer(nn.Module): + def __init__( + self, + dim, + num_heads=8, + HW=[8, 25], + local_k=[3, 3], + ): + super().__init__() + self.HW = HW + self.dim = dim + self.local_mixer = nn.Conv2d( + dim, + dim, + local_k, + 1, + [local_k[0] // 2, local_k[1] // 2], + groups=num_heads, + ) + + def forward(self, x): + h = self.HW[0] + w = self.HW[1] + x = x.transpose([0, 2, 1]).reshape([0, self.dim, h, w]) + x = self.local_mixer(x) + x = x.flatten(2).permute(0, 2, 1) + return x + + +class Attention(nn.Module): + def __init__( + self, + dim, + num_heads=8, + mixer="Global", + HW=[8, 25], + local_k=[7, 11], + qkv_bias=False, + qk_scale=None, + attn_drop=0.0, + proj_drop=0.0, + ): + super().__init__() + self.num_heads = num_heads + head_dim = dim // num_heads + self.scale = qk_scale or head_dim**-0.5 + self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias) + self.attn_drop = nn.Dropout(attn_drop) + self.proj = nn.Linear(dim, dim) + self.proj_drop = nn.Dropout(proj_drop) + self.HW = HW + if HW is not None: + H = HW[0] + W = HW[1] + self.N = H * W + self.C = dim + if mixer == "Local" and HW is not None: + hk = local_k[0] + wk = local_k[1] + mask = torch.ones(H * W, H + hk - 1, W + wk - 1, dtype=torch.float32) + for h in range(0, H): + for w in range(0, W): + mask[h * W + w, h : h + hk, w : w + wk] = 0.0 + mask_paddle = mask[:, hk // 2 : H + hk // 2, wk // 2 : W + wk // 2].flatten( + 1 + ) + mask_inf = torch.full( + [H * W, H * W], fill_value=float("-Inf"), dtype=torch.float32 + ) + mask = torch.where(mask_paddle < 1, mask_paddle, mask_inf) + self.mask = mask.unsqueeze(0).unsqueeze(1) + # self.mask = mask[None, None, :] + self.mixer = mixer + + def forward(self, x): + if self.HW is not None: + N = self.N + C = self.C + else: + _, N, C = x.shape + qkv = self.qkv(x) + qkv = qkv.reshape((-1, N, 3, self.num_heads, C // self.num_heads)).permute( + 2, 0, 3, 1, 4 + ) + q, k, v = qkv[0] * self.scale, qkv[1], qkv[2] + + attn = q.matmul(k.permute(0, 1, 3, 2)) + if self.mixer == "Local": + attn += self.mask + attn = nn.functional.softmax(attn, dim=-1) + attn = self.attn_drop(attn) + + x = (attn.matmul(v)).permute(0, 2, 1, 3).reshape((-1, N, C)) + x = self.proj(x) + x = self.proj_drop(x) + return x + + +class Block(nn.Module): + def __init__( + self, + dim, + num_heads, + mixer="Global", + local_mixer=[7, 11], + HW=None, + mlp_ratio=4.0, + qkv_bias=False, + qk_scale=None, + drop=0.0, + attn_drop=0.0, + drop_path=0.0, + act_layer="gelu", + norm_layer="nn.LayerNorm", + epsilon=1e-6, + prenorm=True, + ): + super().__init__() + if isinstance(norm_layer, str): + self.norm1 = eval(norm_layer)(dim, eps=epsilon) + else: + self.norm1 = norm_layer(dim) + if mixer == "Global" or mixer == "Local": + self.mixer = Attention( + dim, + num_heads=num_heads, + mixer=mixer, + HW=HW, + local_k=local_mixer, + qkv_bias=qkv_bias, + qk_scale=qk_scale, + attn_drop=attn_drop, + proj_drop=drop, + ) + elif mixer == "Conv": + self.mixer = ConvMixer(dim, num_heads=num_heads, HW=HW, local_k=local_mixer) + else: + raise TypeError("The mixer must be one of [Global, Local, Conv]") + + self.drop_path = DropPath(drop_path) if drop_path > 0.0 else Identity() + if isinstance(norm_layer, str): + self.norm2 = eval(norm_layer)(dim, eps=epsilon) + else: + self.norm2 = norm_layer(dim) + mlp_hidden_dim = int(dim * mlp_ratio) + self.mlp_ratio = mlp_ratio + self.mlp = Mlp( + in_features=dim, + hidden_features=mlp_hidden_dim, + act_layer=act_layer, + drop=drop, + ) + self.prenorm = prenorm + + def forward(self, x): + if self.prenorm: + x = self.norm1(x + self.drop_path(self.mixer(x))) + x = self.norm2(x + self.drop_path(self.mlp(x))) + else: + x = x + self.drop_path(self.mixer(self.norm1(x))) + x = x + self.drop_path(self.mlp(self.norm2(x))) + return x + + +class PatchEmbed(nn.Module): + """Image to Patch Embedding""" + + def __init__( + self, + img_size=[32, 100], + in_channels=3, + embed_dim=768, + sub_num=2, + patch_size=[4, 4], + mode="pope", + ): + super().__init__() + num_patches = (img_size[1] // (2**sub_num)) * (img_size[0] // (2**sub_num)) + self.img_size = img_size + self.num_patches = num_patches + self.embed_dim = embed_dim + self.norm = None + if mode == "pope": + if sub_num == 2: + self.proj = nn.Sequential( + ConvBNLayer( + in_channels=in_channels, + out_channels=embed_dim // 2, + kernel_size=3, + stride=2, + padding=1, + act="gelu", + bias_attr=True, + ), + ConvBNLayer( + in_channels=embed_dim // 2, + out_channels=embed_dim, + kernel_size=3, + stride=2, + padding=1, + act="gelu", + bias_attr=True, + ), + ) + if sub_num == 3: + self.proj = nn.Sequential( + ConvBNLayer( + in_channels=in_channels, + out_channels=embed_dim // 4, + kernel_size=3, + stride=2, + padding=1, + act="gelu", + bias_attr=True, + ), + ConvBNLayer( + in_channels=embed_dim // 4, + out_channels=embed_dim // 2, + kernel_size=3, + stride=2, + padding=1, + act="gelu", + bias_attr=True, + ), + ConvBNLayer( + in_channels=embed_dim // 2, + out_channels=embed_dim, + kernel_size=3, + stride=2, + padding=1, + act="gelu", + bias_attr=True, + ), + ) + elif mode == "linear": + self.proj = nn.Conv2d( + 1, embed_dim, kernel_size=patch_size, stride=patch_size + ) + self.num_patches = ( + img_size[0] // patch_size[0] * img_size[1] // patch_size[1] + ) + + def forward(self, x): + B, C, H, W = x.shape + assert ( + H == self.img_size[0] and W == self.img_size[1] + ), "Input image size ({}*{}) doesn't match model ({}*{}).".format( + H, W, self.img_size[0], self.img_size[1] + ) + x = self.proj(x).flatten(2).permute(0, 2, 1) + return x + + +class SubSample(nn.Module): + def __init__( + self, + in_channels, + out_channels, + types="Pool", + stride=[2, 1], + sub_norm="nn.LayerNorm", + act=None, + ): + super().__init__() + self.types = types + if types == "Pool": + self.avgpool = nn.AvgPool2d( + kernel_size=[3, 5], stride=stride, padding=[1, 2] + ) + self.maxpool = nn.MaxPool2d( + kernel_size=[3, 5], stride=stride, padding=[1, 2] + ) + self.proj = nn.Linear(in_channels, out_channels) + else: + self.conv = nn.Conv2d( + in_channels, + out_channels, + kernel_size=3, + stride=stride, + padding=1, + ) + self.norm = eval(sub_norm)(out_channels) + if act is not None: + self.act = act() + else: + self.act = None + + def forward(self, x): + if self.types == "Pool": + x1 = self.avgpool(x) + x2 = self.maxpool(x) + x = (x1 + x2) * 0.5 + out = self.proj(x.flatten(2).permute(0, 2, 1)) + else: + x = self.conv(x) + out = x.flatten(2).permute(0, 2, 1) + out = self.norm(out) + if self.act is not None: + out = self.act(out) + + return out + + +class SVTRNet(nn.Module): + def __init__( + self, + img_size=[32, 100], + in_channels=3, + embed_dim=[64, 128, 256], + depth=[3, 6, 3], + num_heads=[2, 4, 8], + mixer=["Local"] * 6 + ["Global"] * 6, # Local atten, Global atten, Conv + local_mixer=[[7, 11], [7, 11], [7, 11]], + patch_merging="Conv", # Conv, Pool, None + mlp_ratio=4, + qkv_bias=True, + qk_scale=None, + drop_rate=0.0, + last_drop=0.0, + attn_drop_rate=0.0, + drop_path_rate=0.1, + norm_layer="nn.LayerNorm", + sub_norm="nn.LayerNorm", + epsilon=1e-6, + out_channels=192, + out_char_num=25, + block_unit="Block", + act="gelu", + last_stage=True, + sub_num=2, + prenorm=True, + use_lenhead=False, + **kwargs + ): + super().__init__() + self.img_size = img_size + self.embed_dim = embed_dim + self.out_channels = out_channels + self.prenorm = prenorm + patch_merging = ( + None + if patch_merging != "Conv" and patch_merging != "Pool" + else patch_merging + ) + self.patch_embed = PatchEmbed( + img_size=img_size, + in_channels=in_channels, + embed_dim=embed_dim[0], + sub_num=sub_num, + ) + num_patches = self.patch_embed.num_patches + self.HW = [img_size[0] // (2**sub_num), img_size[1] // (2**sub_num)] + self.pos_embed = nn.Parameter(torch.zeros(1, num_patches, embed_dim[0])) + self.pos_drop = nn.Dropout(p=drop_rate) + Block_unit = eval(block_unit) + + dpr = np.linspace(0, drop_path_rate, sum(depth)) + self.blocks1 = nn.ModuleList( + [ + Block_unit( + dim=embed_dim[0], + num_heads=num_heads[0], + mixer=mixer[0 : depth[0]][i], + HW=self.HW, + local_mixer=local_mixer[0], + mlp_ratio=mlp_ratio, + qkv_bias=qkv_bias, + qk_scale=qk_scale, + drop=drop_rate, + act_layer=act, + attn_drop=attn_drop_rate, + drop_path=dpr[0 : depth[0]][i], + norm_layer=norm_layer, + epsilon=epsilon, + prenorm=prenorm, + ) + for i in range(depth[0]) + ] + ) + if patch_merging is not None: + self.sub_sample1 = SubSample( + embed_dim[0], + embed_dim[1], + sub_norm=sub_norm, + stride=[2, 1], + types=patch_merging, + ) + HW = [self.HW[0] // 2, self.HW[1]] + else: + HW = self.HW + self.patch_merging = patch_merging + self.blocks2 = nn.ModuleList( + [ + Block_unit( + dim=embed_dim[1], + num_heads=num_heads[1], + mixer=mixer[depth[0] : depth[0] + depth[1]][i], + HW=HW, + local_mixer=local_mixer[1], + mlp_ratio=mlp_ratio, + qkv_bias=qkv_bias, + qk_scale=qk_scale, + drop=drop_rate, + act_layer=act, + attn_drop=attn_drop_rate, + drop_path=dpr[depth[0] : depth[0] + depth[1]][i], + norm_layer=norm_layer, + epsilon=epsilon, + prenorm=prenorm, + ) + for i in range(depth[1]) + ] + ) + if patch_merging is not None: + self.sub_sample2 = SubSample( + embed_dim[1], + embed_dim[2], + sub_norm=sub_norm, + stride=[2, 1], + types=patch_merging, + ) + HW = [self.HW[0] // 4, self.HW[1]] + else: + HW = self.HW + self.blocks3 = nn.ModuleList( + [ + Block_unit( + dim=embed_dim[2], + num_heads=num_heads[2], + mixer=mixer[depth[0] + depth[1] :][i], + HW=HW, + local_mixer=local_mixer[2], + mlp_ratio=mlp_ratio, + qkv_bias=qkv_bias, + qk_scale=qk_scale, + drop=drop_rate, + act_layer=act, + attn_drop=attn_drop_rate, + drop_path=dpr[depth[0] + depth[1] :][i], + norm_layer=norm_layer, + epsilon=epsilon, + prenorm=prenorm, + ) + for i in range(depth[2]) + ] + ) + self.last_stage = last_stage + if last_stage: + self.avg_pool = nn.AdaptiveAvgPool2d([1, out_char_num]) + self.last_conv = nn.Conv2d( + in_channels=embed_dim[2], + out_channels=self.out_channels, + kernel_size=1, + stride=1, + padding=0, + bias=False, + ) + self.hardswish = Activation("hard_swish", inplace=True) # nn.Hardswish() + # self.dropout = nn.Dropout(p=last_drop, mode="downscale_in_infer") + self.dropout = nn.Dropout(p=last_drop) + if not prenorm: + self.norm = eval(norm_layer)(embed_dim[-1], eps=epsilon) + self.use_lenhead = use_lenhead + if use_lenhead: + self.len_conv = nn.Linear(embed_dim[2], self.out_channels) + self.hardswish_len = Activation( + "hard_swish", inplace=True + ) # nn.Hardswish() + self.dropout_len = nn.Dropout(p=last_drop) + + torch.nn.init.xavier_normal_(self.pos_embed) + self.apply(self._init_weights) + + def _init_weights(self, m): + # weight initialization + if isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_(m.weight, mode="fan_out") + if m.bias is not None: + nn.init.zeros_(m.bias) + elif isinstance(m, nn.BatchNorm2d): + nn.init.ones_(m.weight) + nn.init.zeros_(m.bias) + elif isinstance(m, nn.Linear): + nn.init.normal_(m.weight, 0, 0.01) + if m.bias is not None: + nn.init.zeros_(m.bias) + elif isinstance(m, nn.ConvTranspose2d): + nn.init.kaiming_normal_(m.weight, mode="fan_out") + if m.bias is not None: + nn.init.zeros_(m.bias) + elif isinstance(m, nn.LayerNorm): + nn.init.ones_(m.weight) + nn.init.zeros_(m.bias) + + def forward_features(self, x): + x = self.patch_embed(x) + x = x + self.pos_embed + x = self.pos_drop(x) + for blk in self.blocks1: + x = blk(x) + if self.patch_merging is not None: + x = self.sub_sample1( + x.permute(0, 2, 1).reshape( + [-1, self.embed_dim[0], self.HW[0], self.HW[1]] + ) + ) + for blk in self.blocks2: + x = blk(x) + if self.patch_merging is not None: + x = self.sub_sample2( + x.permute(0, 2, 1).reshape( + [-1, self.embed_dim[1], self.HW[0] // 2, self.HW[1]] + ) + ) + for blk in self.blocks3: + x = blk(x) + if not self.prenorm: + x = self.norm(x) + return x + + def forward(self, x): + x = self.forward_features(x) + if self.use_lenhead: + len_x = self.len_conv(x.mean(1)) + len_x = self.dropout_len(self.hardswish_len(len_x)) + if self.last_stage: + if self.patch_merging is not None: + h = self.HW[0] // 4 + else: + h = self.HW[0] + x = self.avg_pool( + x.permute(0, 2, 1).reshape([-1, self.embed_dim[2], h, self.HW[1]]) + ) + x = self.last_conv(x) + x = self.hardswish(x) + x = self.dropout(x) + if self.use_lenhead: + return x, len_x + return x diff --git a/mineru/model/utils/pytorchocr/modeling/common.py b/mineru/model/utils/pytorchocr/modeling/common.py new file mode 100644 index 000000000..8b079d996 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/common.py @@ -0,0 +1,77 @@ +# Copyright (c) Opendatalab. All rights reserved. +import torch +import torch.nn.functional as F +from torch import nn + + +class Hswish(nn.Module): + def __init__(self, inplace=True): + super(Hswish, self).__init__() + self.inplace = inplace + + def forward(self, x): + return x * F.relu6(x + 3.0, inplace=self.inplace) / 6.0 + + +# out = max(0, min(1, slop*x+offset)) +# paddle.fluid.layers.hard_sigmoid(x, slope=0.2, offset=0.5, name=None) +class Hsigmoid(nn.Module): + def __init__(self, inplace=True): + super(Hsigmoid, self).__init__() + self.inplace = inplace + + def forward(self, x): + # torch: F.relu6(x + 3., inplace=self.inplace) / 6. + # paddle: F.relu6(1.2 * x + 3., inplace=self.inplace) / 6. + return F.relu6(1.2 * x + 3.0, inplace=self.inplace) / 6.0 + + +class GELU(nn.Module): + def __init__(self, inplace=True): + super(GELU, self).__init__() + self.inplace = inplace + + def forward(self, x): + return torch.nn.functional.gelu(x) + + +class Swish(nn.Module): + def __init__(self, inplace=True): + super(Swish, self).__init__() + self.inplace = inplace + + def forward(self, x): + if self.inplace: + x.mul_(torch.sigmoid(x)) + return x + else: + return x * torch.sigmoid(x) + + +class Activation(nn.Module): + def __init__(self, act_type, inplace=True): + super(Activation, self).__init__() + act_type = act_type.lower() + if act_type == "relu": + self.act = nn.ReLU(inplace=inplace) + elif act_type == "relu6": + self.act = nn.ReLU6(inplace=inplace) + elif act_type == "sigmoid": + raise NotImplementedError + elif act_type == "hard_sigmoid": + self.act = Hsigmoid( + inplace + ) # nn.Hardsigmoid(inplace=inplace)#Hsigmoid(inplace)# + elif act_type == "hard_swish" or act_type == "hswish": + self.act = Hswish(inplace=inplace) + elif act_type == "leakyrelu": + self.act = nn.LeakyReLU(inplace=inplace) + elif act_type == "gelu": + self.act = GELU(inplace=inplace) + elif act_type == "swish": + self.act = Swish(inplace=inplace) + else: + raise NotImplementedError + + def forward(self, inputs): + return self.act(inputs) diff --git a/mineru/model/utils/pytorchocr/modeling/heads/__init__.py b/mineru/model/utils/pytorchocr/modeling/heads/__init__.py new file mode 100644 index 000000000..f173cf557 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/heads/__init__.py @@ -0,0 +1,45 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +__all__ = ["build_head"] + + +def build_head(config, **kwargs): + # det head + from .det_db_head import DBHead, PFHeadLocal + + # rec head + from .rec_ctc_head import CTCHead + from .rec_multi_head import MultiHead + from .rec_ppformulanet_head import PPFormulaNet_Head + + # cls head + from .cls_head import ClsHead + + support_dict = [ + "DBHead", + "CTCHead", + "ClsHead", + "MultiHead", + "PFHeadLocal", + "PPFormulaNet_Head", + ] + + module_name = config.pop("name") + char_num = config.pop("char_num", 6625) + assert module_name in support_dict, Exception( + "head only support {}".format(support_dict) + ) + module_class = eval(module_name)(**config, **kwargs) + return module_class diff --git a/mineru/model/utils/pytorchocr/modeling/heads/cls_head.py b/mineru/model/utils/pytorchocr/modeling/heads/cls_head.py new file mode 100644 index 000000000..8b9cc1c05 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/heads/cls_head.py @@ -0,0 +1,24 @@ +# Copyright (c) Opendatalab. All rights reserved. +import torch +import torch.nn.functional as F +from torch import nn + + +class ClsHead(nn.Module): + """ + Class orientation + Args: + params(dict): super parameters for build Class network + """ + + def __init__(self, in_channels, class_dim, **kwargs): + super(ClsHead, self).__init__() + self.pool = nn.AdaptiveAvgPool2d(1) + self.fc = nn.Linear(in_channels, class_dim, bias=True) + + def forward(self, x): + x = self.pool(x) + x = torch.reshape(x, shape=[x.shape[0], x.shape[1]]) + x = self.fc(x) + x = F.softmax(x, dim=1) + return x diff --git a/mineru/model/utils/pytorchocr/modeling/heads/det_db_head.py b/mineru/model/utils/pytorchocr/modeling/heads/det_db_head.py new file mode 100644 index 000000000..bc7d66f02 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/heads/det_db_head.py @@ -0,0 +1,110 @@ +# Copyright (c) Opendatalab. All rights reserved. +import torch +import torch.nn as nn +import torch.nn.functional as F +from ..common import Activation +from ..backbones.det_mobilenet_v3 import ConvBNLayer + +class Head(nn.Module): + def __init__(self, in_channels, **kwargs): + super(Head, self).__init__() + self.conv1 = nn.Conv2d( + in_channels=in_channels, + out_channels=in_channels // 4, + kernel_size=3, + padding=1, + bias=False) + self.conv_bn1 = nn.BatchNorm2d( + in_channels // 4) + self.relu1 = Activation(act_type='relu') + + self.conv2 = nn.ConvTranspose2d( + in_channels=in_channels // 4, + out_channels=in_channels // 4, + kernel_size=2, + stride=2) + self.conv_bn2 = nn.BatchNorm2d( + in_channels // 4) + self.relu2 = Activation(act_type='relu') + + self.conv3 = nn.ConvTranspose2d( + in_channels=in_channels // 4, + out_channels=1, + kernel_size=2, + stride=2) + + def forward(self, x, return_f=False): + x = self.conv1(x) + x = self.conv_bn1(x) + x = self.relu1(x) + x = self.conv2(x) + x = self.conv_bn2(x) + x = self.relu2(x) + if return_f is True: + f = x + x = self.conv3(x) + x = torch.sigmoid(x) + if return_f is True: + return x, f + return x + + +class DBHead(nn.Module): + """ + Differentiable Binarization (DB) for text detection: + see https://arxiv.org/abs/1911.08947 + args: + params(dict): super parameters for build DB network + """ + + def __init__(self, in_channels, k=50, **kwargs): + super(DBHead, self).__init__() + self.k = k + binarize_name_list = [ + 'conv2d_56', 'batch_norm_47', 'conv2d_transpose_0', 'batch_norm_48', + 'conv2d_transpose_1', 'binarize' + ] + thresh_name_list = [ + 'conv2d_57', 'batch_norm_49', 'conv2d_transpose_2', 'batch_norm_50', + 'conv2d_transpose_3', 'thresh' + ] + self.binarize = Head(in_channels, **kwargs)# binarize_name_list) + self.thresh = Head(in_channels, **kwargs)#thresh_name_list) + + def step_function(self, x, y): + return torch.reciprocal(1 + torch.exp(-self.k * (x - y))) + + def forward(self, x): + shrink_maps = self.binarize(x) + return {'maps': shrink_maps} + + +class LocalModule(nn.Module): + def __init__(self, in_c, mid_c, use_distance=True): + super(self.__class__, self).__init__() + self.last_3 = ConvBNLayer(in_c + 1, mid_c, 3, 1, 1, act='relu') + self.last_1 = nn.Conv2d(mid_c, 1, 1, 1, 0) + + def forward(self, x, init_map, distance_map): + outf = torch.cat([init_map, x], dim=1) + # last Conv + out = self.last_1(self.last_3(outf)) + return out + +class PFHeadLocal(DBHead): + def __init__(self, in_channels, k=50, mode='small', **kwargs): + super(PFHeadLocal, self).__init__(in_channels, k, **kwargs) + self.mode = mode + + self.up_conv = nn.Upsample(scale_factor=2, mode="nearest") + if self.mode == 'large': + self.cbn_layer = LocalModule(in_channels // 4, in_channels // 4) + elif self.mode == 'small': + self.cbn_layer = LocalModule(in_channels // 4, in_channels // 8) + + def forward(self, x, targets=None): + shrink_maps, f = self.binarize(x, return_f=True) + base_maps = shrink_maps + cbn_maps = self.cbn_layer(self.up_conv(f), shrink_maps, None) + cbn_maps = F.sigmoid(cbn_maps) + return {'maps': 0.5 * (base_maps + cbn_maps), 'cbn_maps': cbn_maps} \ No newline at end of file diff --git a/mineru/model/utils/pytorchocr/modeling/heads/rec_ctc_head.py b/mineru/model/utils/pytorchocr/modeling/heads/rec_ctc_head.py new file mode 100644 index 000000000..cd6022ef3 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/heads/rec_ctc_head.py @@ -0,0 +1,55 @@ +# Copyright (c) Opendatalab. All rights reserved. +import torch.nn.functional as F +from torch import nn + + +class CTCHead(nn.Module): + def __init__( + self, + in_channels, + out_channels=6625, + fc_decay=0.0004, + mid_channels=None, + return_feats=False, + **kwargs + ): + super(CTCHead, self).__init__() + if mid_channels is None: + self.fc = nn.Linear( + in_channels, + out_channels, + bias=True, + ) + else: + self.fc1 = nn.Linear( + in_channels, + mid_channels, + bias=True, + ) + self.fc2 = nn.Linear( + mid_channels, + out_channels, + bias=True, + ) + + self.out_channels = out_channels + self.mid_channels = mid_channels + self.return_feats = return_feats + + def forward(self, x, labels=None): + if self.mid_channels is None: + predicts = self.fc(x) + else: + x = self.fc1(x) + predicts = self.fc2(x) + + if self.return_feats: + result = (x, predicts) + else: + result = predicts + + if not self.training: + predicts = F.softmax(predicts, dim=2) + result = predicts + + return result diff --git a/mineru/model/utils/pytorchocr/modeling/heads/rec_multi_head.py b/mineru/model/utils/pytorchocr/modeling/heads/rec_multi_head.py new file mode 100644 index 000000000..198abb932 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/heads/rec_multi_head.py @@ -0,0 +1,59 @@ +# Copyright (c) Opendatalab. All rights reserved. +from torch import nn + +from ..necks.rnn import Im2Seq, SequenceEncoder +from .rec_ctc_head import CTCHead + + +class FCTranspose(nn.Module): + def __init__(self, in_channels, out_channels, only_transpose=False): + super().__init__() + self.only_transpose = only_transpose + if not self.only_transpose: + self.fc = nn.Linear(in_channels, out_channels, bias=False) + + def forward(self, x): + if self.only_transpose: + return x.permute([0, 2, 1]) + else: + return self.fc(x.permute([0, 2, 1])) + + +class MultiHead(nn.Module): + def __init__(self, in_channels, out_channels_list, **kwargs): + super().__init__() + self.head_list = kwargs.pop("head_list") + + self.gtc_head = "sar" + assert len(self.head_list) >= 2 + for idx, head_name in enumerate(self.head_list): + name = list(head_name)[0] + if name == "SARHead": + pass + + elif name == "NRTRHead": + pass + elif name == "CTCHead": + # ctc neck + self.encoder_reshape = Im2Seq(in_channels) + neck_args = self.head_list[idx][name]["Neck"] + encoder_type = neck_args.pop("name") + self.ctc_encoder = SequenceEncoder( + in_channels=in_channels, encoder_type=encoder_type, **neck_args + ) + # ctc head + head_args = self.head_list[idx][name].get("Head", {}) + if head_args is None: + head_args = {} + + self.ctc_head = CTCHead( + in_channels=self.ctc_encoder.out_channels, + out_channels=out_channels_list["CTCLabelDecode"], + **head_args, + ) + else: + raise NotImplementedError(f"{name} is not supported in MultiHead yet") + + def forward(self, x, data=None): + ctc_encoder = self.ctc_encoder(x) + return self.ctc_head(ctc_encoder) diff --git a/mineru/model/utils/pytorchocr/modeling/heads/rec_ppformulanet_head.py b/mineru/model/utils/pytorchocr/modeling/heads/rec_ppformulanet_head.py new file mode 100644 index 000000000..07ea47b5f --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/heads/rec_ppformulanet_head.py @@ -0,0 +1,1384 @@ +# Copyright (c) Opendatalab. All rights reserved. +# copyright (c) 2024 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import math +import re +import numpy as np +import inspect +import torch +import torch.nn as nn +from typing import Optional, Tuple, Union, List, Dict, Any +from dataclasses import dataclass, fields, is_dataclass + +from sympy import totient + +from mineru.utils.config_reader import get_device +from .rec_unimernet_head import ( + MBartForCausalLM, + MBartDecoder, + MBartConfig, + ModelOutput, + BaseModelOutputWithPastAndCrossAttentions, + Seq2SeqLMOutput, + CausalLMOutputWithCrossAttentions, + LogitsProcessorList, + ForcedEOSTokenLogitsProcessor, + UniMERNetHead, +) + + +@dataclass +class AttentionMaskConverter: + """ + A class to convert attention masks based on specific configurations. + + This class is designed to handle the conversion of attention masks with options for causal masking + and sliding window attention, which are commonly used in transformer models. + + Attributes: + is_causal (bool): Flag indicating whether the attention mask should enforce causal masking, + which ensures each position can only attend to previous positions. + sliding_window (int, optional): Size of the sliding window for local attention. If set, + attention is restricted to a local window of this size. + + """ + + is_causal: bool + sliding_window: int + + def __init__(self, is_causal: bool, sliding_window=None): + self.is_causal = is_causal + self.sliding_window = sliding_window + + if self.sliding_window is not None and self.sliding_window <= 0: + raise ValueError( + f"Make sure that when passing `sliding_window` that its value is a strictly positive integer, not `{self.sliding_window}`" + ) + + @staticmethod + def _make_causal_mask( + input_ids_shape, + dtype, + past_key_values_length=0, + sliding_window=None, + is_export=False, + ): + """ + Make causal mask used for bi-directional self-attention. + """ + bsz, tgt_len = input_ids_shape + if is_export: + mask = torch.full( + (tgt_len, tgt_len), torch.finfo(dtype).min, dtype=torch.float64 + ) + mask_cond = torch.arange(mask.shape[-1]) + mask.masked_fill_( + mask_cond < (mask_cond + 1).reshape([mask.shape[-1], 1]), 0 + ) + else: + mask = torch.full((tgt_len, tgt_len), torch.finfo(dtype).min) + mask_cond = torch.arange(mask.shape[-1]) + mask.masked_fill_( + mask_cond < (mask_cond + 1).reshape([mask.shape[-1], 1]), 0 + ) + mask = mask.to(dtype) + + if past_key_values_length > 0: + mask = torch.concat( + [torch.zeros(tgt_len, past_key_values_length, dtype=dtype), mask], + dim=-1, + ) + + # add lower triangular sliding window mask if necessary + if sliding_window is not None: + diagonal = past_key_values_length - sliding_window - 1 + + context_mask = torch.tril( + torch.ones_like(mask, dtype=torch.bool), diagonal=diagonal + ) + mask.masked_fill_(context_mask, torch.finfo(dtype).min) + + return mask[None, None, :, :].expand( + [bsz, 1, tgt_len, tgt_len + past_key_values_length] + ) + + @staticmethod + def _make_causal_mask_parallel( + input_ids_shape, + dtype, + past_key_values_length=0, + sliding_window=None, + parallel_step=1, + is_export=False, + ): + """ + Make causal mask used for bi-directional self-attention. + """ + bsz, tgt_len = input_ids_shape + mask = torch.full((tgt_len, tgt_len), torch.finfo(dtype).min) + mask_cond = torch.arange(mask.shape[-1]) + mask_cond_parallel = torch.arange(mask.shape[-1]) + + mask_parallel = torch.arange(0, tgt_len, step=parallel_step).reshape([1, -1]) + mask_parallel = torch.repeat_interleave(mask_parallel, parallel_step, 1)[ + :, :tgt_len + ] + mask.masked_fill_( + mask_cond < (mask_parallel + parallel_step).reshape([mask.shape[-1], 1]), 0 + ) + mask = mask.to(dtype) + + if past_key_values_length > 0: + mask = torch.concat( + [torch.zeros([tgt_len, past_key_values_length], dtype=dtype), mask], + dim=-1, + ) + + # add lower triangular sliding window mask if necessary + if sliding_window is not None: + diagonal = past_key_values_length - sliding_window - 1 + + context_mask = torch.tril( + torch.ones_like(mask, dtype=torch.bool), diagonal=diagonal + ) + mask.masked_fill_(context_mask, torch.finfo(dtype).min) + + return mask[None, None, :, :].expand( + [bsz, 1, tgt_len, tgt_len + past_key_values_length] + ) + + def to_4d( + self, + attention_mask_2d, + query_length, + dtype, + key_value_length, + use_parallel=False, + parallel_step=3, + is_export=False, + ): + """ + Converts 2D attention mask to 4D attention mask by expanding mask to (bsz, head_dim=1, query_length, + key_value_length) shape and by adding a large negative bias to not-attended positions. If attention_mask is + causal, a causal mask will be added. + """ + input_shape = (attention_mask_2d.shape[0], query_length) + + causal_4d_mask = None + if use_parallel: + step = parallel_step + else: + step = 1 + if ( + input_shape[-1] > step or self.sliding_window is not None + ) and self.is_causal: + + if key_value_length is None: + raise ValueError( + "This attention mask converter is causal. Make sure to pass `key_value_length` to correctly create a causal mask." + ) + + past_key_values_length = key_value_length - query_length + + if use_parallel: + causal_4d_mask = self._make_causal_mask_parallel( + input_shape, + dtype, + past_key_values_length=past_key_values_length, + sliding_window=self.sliding_window, + parallel_step=parallel_step, + is_export=is_export, + ) + else: + causal_4d_mask = self._make_causal_mask( + input_shape, + dtype, + past_key_values_length=past_key_values_length, + sliding_window=self.sliding_window, + is_export=is_export, + ) + + elif self.sliding_window is not None: + raise NotImplementedError( + "Sliding window is currently only implemented for causal masking" + ) + + expanded_attn_mask = self._expand_mask( + attention_mask_2d, dtype, tgt_len=input_shape[-1] + ) + + if causal_4d_mask is not None: + expanded_attn_mask = causal_4d_mask.masked_fill_( + expanded_attn_mask.to(torch.bool), torch.finfo(dtype).min + ) + + expanded_4d_mask = expanded_attn_mask + return expanded_4d_mask + + def to_4d_export( + self, + attention_mask_2d, + query_length, + dtype, + key_value_length, + use_parallel=False, + parallel_step=3, + is_export=False, + ): + input_shape = (attention_mask_2d.shape[0], query_length) + + expanded_attn_mask = self._expand_mask_export( + attention_mask_2d, dtype, tgt_len=input_shape[-1] + ) + expanded_4d_mask = expanded_attn_mask + + return expanded_4d_mask + + def _expand_mask(self, mask, dtype, tgt_len=None): + """ + Expands attention_mask from `[bsz, seq_len]` to `[bsz, 1, tgt_seq_len, src_seq_len]`. + """ + bsz, src_len = mask.shape + tgt_len = tgt_len if tgt_len is not None else src_len + expanded_mask = ( + mask[:, None, None, :].expand([bsz, 1, tgt_len, src_len]).to(dtype) + ) + + inverted_mask = 1.0 - expanded_mask + + return inverted_mask.masked_fill_( + inverted_mask.to(torch.bool), torch.finfo(dtype).min + ) + + def _expand_mask_export(self, mask, dtype, tgt_len=None): + """ + Expands attention_mask from `[bsz, seq_len]` to `[bsz, 1, tgt_seq_len, src_seq_len]`. + """ + bsz, src_len = mask.shape + expanded_mask = ( + mask[:, None, None, :].expand([bsz, 1, tgt_len, src_len]).to(dtype) + ) + inverted_mask = 1.0 - expanded_mask + return inverted_mask.masked_fill_( + inverted_mask.to(torch.bool), torch.finfo(dtype).min + ) + + +def _prepare_4d_attention_mask(mask, dtype, tgt_len=None): + return AttentionMaskConverter._expand_mask(mask=mask, dtype=dtype, tgt_len=tgt_len) + + +def _prepare_4d_causal_attention_mask( + attention_mask, + input_shape, + inputs_embeds, + past_key_values_length, + sliding_window=None, + use_parallel=False, + parallel_step=3, + is_export=False, +): + """ + Creates a causal 4D mask of shape `(batch_size, 1, query_length, key_value_length)` from a 2D mask of shape + `(batch_size, key_value_length)` + + Args: + attention_mask (`paddle.Tensor` or `None`): + A 2D attention mask of shape `(batch_size, key_value_length)` + input_shape (`tuple(int)` or `list(int)` or `paddle.Size`): + The input shape should be a tuple that defines `(batch_size, query_length)`. + inputs_embeds (`paddle.Tensor`): + The embedded inputs as a paddle Tensor. + past_key_values_length (`int`): + The length of the key value cache. + sliding_window (`int`, *optional*): + If the model uses windowed attention, a sliding window should be passed. + """ + attn_mask_converter = AttentionMaskConverter( + is_causal=True, sliding_window=sliding_window + ) + + key_value_length = input_shape[-1] + past_key_values_length + + # 4d mask is passed through the layers + if attention_mask is not None and len(attention_mask.shape) == 2: + attention_mask = attn_mask_converter.to_4d( + attention_mask, + input_shape[-1], + key_value_length=key_value_length, + dtype=inputs_embeds.dtype, + use_parallel=use_parallel, + parallel_step=parallel_step, + is_export=is_export, + ) + elif attention_mask is not None and len(attention_mask.shape) == 4: + expected_shape = (input_shape[0], 1, input_shape[1], key_value_length) + if tuple(attention_mask.shape) != expected_shape: + raise ValueError( + f"Incorrect 4D attention_mask shape: {tuple(attention_mask.shape)}; expected: {expected_shape}." + ) + else: + # if the 4D mask has correct shape - invert it and fill with negative infinity + inverted_mask = 1.0 - attention_mask + attention_mask = inverted_mask.masked_fill_( + inverted_mask.to(torch.bool), torch.finfo(inputs_embeds.dtype).min + ) + else: + attention_mask = attn_mask_converter.to_causal_4d( + input_shape[0], + input_shape[-1], + key_value_length, + dtype=inputs_embeds.dtype, + ) + + return attention_mask + + +def _prepare_4d_causal_attention_mask_export( + attention_mask, + input_shape, + inputs_embeds, + past_key_values_length, + sliding_window=None, + use_parallel=False, + parallel_step=3, + is_export=False, +): + """ + Prepare a 4D causal attention mask for export. + + This function prepares a 4-dimensional causal attention mask, which is used to ensure that each position in the + sequence can only attend to previous positions. It is specifically designed to handle scenarios where the model + is being exported, potentially with additional options like sliding window or parallel processing. + + Args: + attention_mask: The initial attention mask, typically used to avoid attending to padding tokens. + input_shape: Shape of the input tensor, usually in the form (batch_size, sequence_length). + inputs_embeds: Embeddings of the input sequence, used to derive certain dimensions if needed. + past_key_values_length: Length of past key values, used in contexts like transformer decoders with caching. + sliding_window: Optional parameter. If provided, specifies the size of a sliding window for local attention. + use_parallel: Flag indicating whether to use parallel processing for attention computation. + parallel_step: Number of steps to use in parallel processing, relevant if `use_parallel` is True. + is_export: Flag indicating whether the attention mask is being prepared for model export. + + Returns: + A 4D causal attention mask suitable for use in transformer models, ensuring correct causal masking. + """ + attn_mask_converter = AttentionMaskConverter( + is_causal=True, sliding_window=sliding_window + ) + key_value_length = input_shape[-1] + past_key_values_length + + shape = attention_mask.shape + len_shape = len(shape) + + attention_mask = attn_mask_converter.to_4d_export( + attention_mask, + input_shape[-1], + key_value_length=key_value_length, + dtype=inputs_embeds.dtype, + use_parallel=use_parallel, + parallel_step=parallel_step, + is_export=is_export, + ) + return attention_mask + + +class CustomMBartDecoder(MBartDecoder): + def __init__(self, config): + super().__init__(config) + hidden_size = config.d_model + self.is_export = config.is_export + self.config_decoder = config + + def forward( + self, + input_ids=None, + attention_mask=None, + encoder_hidden_states=None, + encoder_attention_mask=None, + head_mask=None, + cross_attn_head_mask=None, + past_key_values=None, + inputs_embeds=None, + use_cache=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + ): + self.is_export = False if self.training else True + + output_attentions = ( + output_attentions + if output_attentions is not None + else self.config.output_attentions + ) + output_hidden_states = ( + output_hidden_states + if output_hidden_states is not None + else self.config.output_hidden_states + ) + use_cache = use_cache if use_cache is not None else self.config.use_cache + return_dict = ( + return_dict if return_dict is not None else self.config.use_return_dict + ) + + # retrieve input_ids and inputs_embeds + if input_ids is not None and inputs_embeds is not None: + raise ValueError( + "You cannot specify both decoder_input_ids and decoder_inputs_embeds at the same time" + ) + elif input_ids is not None: + input = input_ids + input_shape = input.shape + input_ids = input_ids.reshape([-1, input_shape[-1]]) + elif inputs_embeds is not None: + input_shape = inputs_embeds.shape[:-1] + input = inputs_embeds[:, :, -1] + else: + raise ValueError( + "You have to specify either decoder_input_ids or decoder_inputs_embeds" + ) + + # past_key_values_length + past_key_values_length = ( + past_key_values[0][0].shape[2] if past_key_values is not None else 0 + ) + + if inputs_embeds is None: + inputs_embeds = self.embed_tokens(input_ids) * self.embed_scale + + if self._use_flash_attention_2: + # 2d mask is passed through the layers + attention_mask = ( + attention_mask + if (attention_mask is not None and 0 in attention_mask) + else None + ) + else: + # 4d mask is passed through the layers + if self.is_export: + attention_mask = _prepare_4d_causal_attention_mask_export( + attention_mask, + input_shape, + inputs_embeds, + past_key_values_length, + use_parallel=self.config_decoder.use_parallel, + parallel_step=self.config_decoder.parallel_step, + is_export=self.is_export, + ) + else: + attention_mask = _prepare_4d_causal_attention_mask( + attention_mask, + input_shape, + inputs_embeds, + past_key_values_length, + use_parallel=self.config_decoder.use_parallel, + parallel_step=self.config_decoder.parallel_step, + is_export=self.is_export, + ) + + # expand encoder attention mask + if encoder_hidden_states is not None and encoder_attention_mask is not None: + if self._use_flash_attention_2: + encoder_attention_mask = ( + encoder_attention_mask if 0 in encoder_attention_mask else None + ) + else: + # [bsz, seq_len] -> [bsz, 1, tgt_seq_len, src_seq_len] + encoder_attention_mask = _prepare_4d_attention_mask( + encoder_attention_mask, inputs_embeds.dtype, tgt_len=input_shape[-1] + ) + + # embed positions + positions = self.embed_positions(input, past_key_values_length) + + hidden_states = inputs_embeds + positions + + hidden_states = self.layernorm_embedding(hidden_states) + hidden_states = nn.functional.dropout( + hidden_states, p=self.dropout, training=self.training + ) + if self.gradient_checkpointing and self.training: + if use_cache: + print( + "`use_cache=True` is incompatible with gradient checkpointing`. Setting `use_cache=False`..." + ) + use_cache = False + + # decoder layers + all_hidden_states = () if output_hidden_states else None + all_self_attns = () if output_attentions else None + all_cross_attentions = ( + () if (output_attentions and encoder_hidden_states is not None) else None + ) + next_decoder_cache = () if use_cache else None + + # check if head_mask/cross_attn_head_mask has a correct number of layers specified if desired + for attn_mask, mask_name in zip( + [head_mask, cross_attn_head_mask], ["head_mask", "cross_attn_head_mask"] + ): + if attn_mask is not None: + if attn_mask.size()[0] != len(self.layers): + raise ValueError( + f"The `{mask_name}` should be specified for {len(self.layers)} layers, but it is for" + f" {attn_mask.size()[0]}." + ) + for idx, decoder_layer in enumerate(self.layers): + # add LayerDrop (see https://arxiv.org/abs/1909.11556 for description) + if output_hidden_states: + all_hidden_states += (hidden_states,) + if self.training: + dropout_probability = torch.rand([]) + if dropout_probability < self.layerdrop: + continue + + past_key_value = ( + past_key_values[idx] if past_key_values is not None else None + ) + if self.gradient_checkpointing and self.training: + layer_outputs = self._gradient_checkpointing_func( + decoder_layer.__call__, + hidden_states, + attention_mask, + encoder_hidden_states, + encoder_attention_mask, + head_mask[idx] if head_mask is not None else None, + ( + cross_attn_head_mask[idx] + if cross_attn_head_mask is not None + else None + ), + None, + output_attentions, + use_cache, + ) + else: + layer_outputs = decoder_layer( + hidden_states, + attention_mask=attention_mask, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=encoder_attention_mask, + layer_head_mask=(head_mask[idx] if head_mask is not None else None), + cross_attn_layer_head_mask=( + cross_attn_head_mask[idx] + if cross_attn_head_mask is not None + else None + ), + past_key_value=past_key_value, + output_attentions=output_attentions, + use_cache=use_cache, + ) + hidden_states = layer_outputs[0] + + if self.is_export: + next_decoder_cache += (layer_outputs[3 if output_attentions else 1],) + else: + if use_cache: + next_decoder_cache += ( + layer_outputs[3 if output_attentions else 1], + ) + + if output_attentions: + all_self_attns += (layer_outputs[1],) + + if encoder_hidden_states is not None: + all_cross_attentions += (layer_outputs[2],) + + hidden_states = self.layer_norm(hidden_states) + + # add hidden states from the last decoder layer + if output_hidden_states: + all_hidden_states += (hidden_states,) + + if self.is_export: + next_cache = next_decoder_cache + else: + next_cache = next_decoder_cache if use_cache else None + if not return_dict: + return tuple( + v + for v in [ + hidden_states, + next_cache, + all_hidden_states, + all_self_attns, + all_cross_attentions, + ] + if v is not None + ) + + return BaseModelOutputWithPastAndCrossAttentions( + last_hidden_state=hidden_states, + past_key_values=next_cache, + hidden_states=all_hidden_states, + attentions=all_self_attns, + cross_attentions=all_cross_attentions, + ) + + +class CustomMBartForCausalLM(MBartForCausalLM): + def __init__(self, config): + super().__init__(config) + # Modify the decoder within MBartDecoderWrapper + self.model.decoder = CustomMBartDecoder(config) + + def forward( + self, + input_ids=None, + attention_mask=None, + encoder_hidden_states=None, + encoder_attention_mask=None, + head_mask=None, + cross_attn_head_mask=None, + past_key_values=None, + inputs_embeds=None, + labels=None, + use_cache=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + ): + output_attentions = ( + output_attentions + if output_attentions is not None + else self.config.output_attentions + ) + output_hidden_states = ( + output_hidden_states + if output_hidden_states is not None + else self.config.output_hidden_states + ) + return_dict = ( + return_dict if return_dict is not None else self.config.use_return_dict + ) + + # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn) + outputs = self.model.decoder( + input_ids=input_ids, + attention_mask=attention_mask, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=encoder_attention_mask, + head_mask=head_mask, + cross_attn_head_mask=cross_attn_head_mask, + past_key_values=past_key_values, + inputs_embeds=inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + logits = self.lm_head(outputs[0]) + + return CausalLMOutputWithCrossAttentions( + logits=logits, + past_key_values=outputs.past_key_values, + hidden_states=outputs.hidden_states, + attentions=outputs.attentions, + cross_attentions=outputs.cross_attentions, + ) + + +class PPFormulaNet_Head(UniMERNetHead): + """ + PPFormulaNet_Head + Args: + max_new_tokens (int): Maximum number of new tokens to generate. Default is 1536. + decoder_start_token_id (int): Start token ID for the decoder. Default is 0. + temperature (float): Temperature parameter for controlling randomness in sampling. Default is 0.2. + do_sample (bool): Flag to determine whether to use sampling for generation. Default is False. + top_p (float): Top-p (nucleus) sampling parameter for controlling diversity. Default is 0.95. + in_channels (int): Number of input channels for the model. Default is 1024. + decoder_layers (int): Number of layers in the decoder. Default is 8. + encoder_hidden_size (int): Size of the hidden layer in the encoder. Default is 1024. + decoder_ffn_dim (int): Dimension of the feed-forward network in the decoder. Default is 4096. + decoder_hidden_size (int): Size of the hidden layer in the decoder. Default is 1024. + is_export (bool): Flag indicating whether the model is to be exported. Default is False. + length_aware (bool): Flag to determine if the model should be aware of input sequence length. Default is True. + use_parallel (bool): Flag to enable or disable parallel processing. Default is False. + parallel_step (int): Number of steps to use in parallel processing. Default is 3. + """ + + def __init__( + self, + max_new_tokens=1536, + decoder_start_token_id=0, + temperature=0.2, + do_sample=False, + top_p=0.95, + in_channels=1024, + decoder_layers=8, + encoder_hidden_size=1024, + decoder_ffn_dim=4096, + decoder_hidden_size=1024, + is_export=False, + length_aware=True, + use_parallel=False, + parallel_step=3, + ): + + super().__init__() + + mbart_config_dict = { + "activation_dropout": 0.0, + "activation_function": "gelu", + "add_cross_attention": True, + "add_final_layer_norm": True, + "attention_dropout": 0.0, + "bos_token_id": 0, + "classifier_dropout": 0.0, + "d_model": decoder_hidden_size, + "decoder_attention_heads": 16, + "decoder_ffn_dim": decoder_ffn_dim, + "decoder_layerdrop": 0.0, + "decoder_layers": decoder_layers, + "dropout": 0.1, + "encoder_attention_heads": 16, + "encoder_ffn_dim": 4096, + "encoder_layerdrop": 0.0, + "encoder_layers": 12, + "eos_token_id": 2, + "forced_eos_token_id": 2, + "init_std": 0.02, + "is_decoder": True, + "is_encoder_decoder": False, + "output_hidden_states": False, + "max_position_embeddings": ( + max_new_tokens + parallel_step if use_parallel else max_new_tokens + ), + "model_type": "mbart", + "num_hidden_layers": 12, + "pad_token_id": 1, + "scale_embedding": True, + "tie_word_embeddings": False, + "transformers_version": "4.40.0", + "use_cache": True, + "use_return_dict": True, + "vocab_size": 50000, + "_attn_implementation": "eager", + "hidden_size": decoder_hidden_size, + "use_parallel": use_parallel, + "parallel_step": int(parallel_step), + "is_export": is_export, + } + self.decoder_start_token_id = decoder_start_token_id + self.temperature = temperature + self.do_sample = do_sample + self.top_p = top_p + self.is_export = is_export + self.max_seq_len = max_new_tokens + self.config_decoder = MBartConfig(**mbart_config_dict) + self.encoder_hidden_size = encoder_hidden_size + self.decoder = CustomMBartForCausalLM(self.config_decoder) + if self.config_decoder.hidden_size != self.encoder_hidden_size: + self.enc_to_dec_proj = nn.Linear( + self.encoder_hidden_size, self.config_decoder.hidden_size + ) + generation_config = { + "max_length": 1537, + "forced_eos_token_id": 2, + } + self.eos_token_id = generation_config["forced_eos_token_id"] + self.pad_token_id = self.config_decoder.pad_token_id + self.logits_processor = LogitsProcessorList() + self.logits_processor.append( + ForcedEOSTokenLogitsProcessor( + generation_config["max_length"], + generation_config["forced_eos_token_id"], + ) + ) + self.device = torch.device(get_device()) + + def prepare_inputs_for_generation( + self, + input_ids, + past_key_values=None, + attention_mask=None, + use_cache=None, + encoder_outputs=None, + **kwargs, + ): + decoder_inputs = self.prepare_inputs_for_generation_mbart( + input_ids, past_key_values=past_key_values + ) + decoder_attention_mask = ( + decoder_inputs["attention_mask"] + if "attention_mask" in decoder_inputs + else None + ) + input_dict = { + "attention_mask": attention_mask, + "decoder_attention_mask": decoder_attention_mask, + "decoder_input_ids": decoder_inputs["input_ids"], + "past_key_values": decoder_inputs["past_key_values"], + "use_cache": use_cache, + } + return input_dict + + def _extract_past_from_model_output( + self, outputs: ModelOutput, standardize_cache_format: bool = False + ): + past_key_values = None + if "past_key_values" in outputs: + past_key_values = outputs.past_key_values + elif "mems" in outputs: + past_key_values = outputs.mems + elif "past_buckets_states" in outputs: + past_key_values = outputs.past_buckets_states + return past_key_values + + def _update_model_kwargs_for_generation( + self, + outputs: ModelOutput, + model_kwargs: Dict[str, Any], + is_encoder_decoder: bool = False, + standardize_cache_format: bool = False, + ) -> Dict[str, Any]: + # update past_key_values + model_kwargs["past_key_values"] = self._extract_past_from_model_output( + outputs, standardize_cache_format=standardize_cache_format + ) + if getattr(outputs, "state", None) is not None: + model_kwargs["state"] = outputs.state + + # update token_type_ids with last value + if "token_type_ids" in model_kwargs: + token_type_ids = model_kwargs["token_type_ids"] + model_kwargs["token_type_ids"] = torch.concat( + [token_type_ids, token_type_ids[:, -1].unsqueeze(-1)], dim=-1 + ) + + if not is_encoder_decoder: + # update attention mask + if "attention_mask" in model_kwargs: + attention_mask = model_kwargs["attention_mask"] + model_kwargs["attention_mask"] = torch.concat( + [ + attention_mask, + attention_mask.new_ones((attention_mask.shape[0], 1)), + ], + dim=-1, + ) + else: + # update decoder attention mask + if "decoder_attention_mask" in model_kwargs: + decoder_attention_mask = model_kwargs["decoder_attention_mask"] + model_kwargs["decoder_attention_mask"] = torch.concat( + [ + decoder_attention_mask, + decoder_attention_mask.new_ones( + (decoder_attention_mask.shape[0], 1) + ), + ], + dim=-1, + ) + + if ( + "cache_position" in model_kwargs + and model_kwargs["cache_position"] is not None + ): + model_kwargs["cache_position"] = model_kwargs["cache_position"][-1:] + 1 + return model_kwargs + + def stopping_criteria(self, input_ids): + if self.is_export: + return input_ids[:, -1].cpu() == torch.Tensor([self.eos_token_id]) + is_done = torch.isin(input_ids[:, -1].cpu(), torch.Tensor([self.eos_token_id])) + return is_done + + def stopping_criteria_parallel(self, input_ids): + parallel_step = self.config_decoder.parallel_step + + if self.is_export: + is_done_list = [] + for i in range(parallel_step, 0, -1): + cur_is_done = input_ids[:, -i] == torch.Tensor([self.eos_token_id]) + is_done_list.append(cur_is_done) + is_done_list = torch.Tensor(is_done_list).permute([1, 0]) + return is_done_list + else: + is_done = torch.isin( + input_ids[:, -parallel_step:], + torch.Tensor([self.eos_token_id]).reshape([1, 1]), + ) + return torch.Tensor(is_done) + + def generate_single_iter( + self, + decoder_input_ids=None, + decoder_attention_mask=None, + encoder_outputs=None, + past_key_values=None, + decoder_inputs_embeds=None, + labels=None, + use_cache=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + **kwargs, + ): + + encoder_hidden_states = encoder_outputs[0] + if self.config_decoder.hidden_size != self.encoder_hidden_size: + encoder_hidden_states = self.enc_to_dec_proj(encoder_hidden_states) + kwargs_decoder = {} + decoder_outputs = self.decoder( + input_ids=decoder_input_ids, + attention_mask=decoder_attention_mask, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=None, + inputs_embeds=None, + output_attentions=False, + output_hidden_states=output_hidden_states, + use_cache=use_cache, + past_key_values=past_key_values, + return_dict=return_dict, + **kwargs_decoder, + ) + + return Seq2SeqLMOutput( + loss=None, + logits=decoder_outputs.logits, + past_key_values=decoder_outputs.past_key_values, + decoder_hidden_states=decoder_outputs.hidden_states, + decoder_attentions=decoder_outputs.attentions, + cross_attentions=decoder_outputs.cross_attentions, + encoder_last_hidden_state=encoder_outputs.last_hidden_state, + encoder_hidden_states=encoder_outputs.hidden_states, + encoder_attentions=encoder_outputs.attentions, + ) + + def _prepare_decoder_input_ids_for_generation( + self, + batch_size, + model_kwargs, + decoder_start_token_id=None, + bos_token_id=None, + ): + + # 1. Check whether the user has defined `decoder_input_ids` manually. To facilitate in terms of input naming, + # we also allow the user to pass it under `input_ids`, if the encoder does not use it as the main input. + if model_kwargs is not None and "decoder_input_ids" in model_kwargs: + decoder_input_ids = model_kwargs.pop("decoder_input_ids") + elif "input_ids" in model_kwargs: + decoder_input_ids = model_kwargs.pop("input_ids") + else: + decoder_input_ids = None + + # 2. Encoder-decoder models expect the `decoder_input_ids` to start with a special token. Let's ensure that. + decoder_start_token_id = self._get_decoder_start_token_id( + decoder_start_token_id, bos_token_id + ) + + if isinstance(decoder_start_token_id, list): + if len(decoder_start_token_id) != batch_size: + raise ValueError( + f"`decoder_start_token_id` expected to have length {batch_size} but got {len(decoder_start_token_id)}" + ) + decoder_input_ids_start = torch.Tensor( + decoder_start_token_id + ).to(torch.int64) + decoder_input_ids_start = decoder_input_ids_start.view(-1, 1) + else: + use_parallel = self.config_decoder.use_parallel + parallel_step = self.config_decoder.parallel_step + + if use_parallel: + decoder_input_ids_start = ( + torch.ones( + (batch_size, parallel_step), + dtype=torch.int64, + device=self.device, + ) + * decoder_start_token_id + ) + else: + decoder_input_ids_start = ( + torch.ones( + (batch_size, 1), + dtype=torch.int64, + device=self.device, + ) + * decoder_start_token_id + ) + # no user input -> use decoder_start_token_id as decoder_input_ids + if decoder_input_ids is None: + decoder_input_ids = decoder_input_ids_start + # exception: Donut checkpoints have task-specific decoder starts and don't expect a BOS token + elif ( + self.config.model_type == "vision-encoder-decoder" + and "donut" in self.name_or_path.lower() + ): + pass + elif self.config.model_type in ["whisper"]: + pass + # user input but doesn't start with decoder_start_token_id -> prepend decoder_start_token_id (and adjust + # decoder_attention_mask if provided) + elif ( + isinstance(decoder_start_token_id, int) + and (decoder_input_ids[:, 0] != decoder_start_token_id).all().item() + ) or ( + isinstance(decoder_start_token_id, torch.Tensor) + and (decoder_input_ids[:, 0] != decoder_start_token_id[:, 0]).all().item() + ): + decoder_input_ids = torch.concat( + [decoder_input_ids_start, decoder_input_ids], dim=-1 + ) + if "decoder_attention_mask" in model_kwargs: + decoder_attention_mask = model_kwargs["decoder_attention_mask"] + decoder_attention_mask = torch.cat( + ( + torch.ones_like(decoder_attention_mask)[:, :1], + decoder_attention_mask, + ), + dim=-1, + ) + model_kwargs["decoder_attention_mask"] = decoder_attention_mask + + return decoder_input_ids, model_kwargs + + @torch.no_grad() + def generate_export( + self, + encoder_outputs, + model_kwargs, + ): + use_parallel = self.config_decoder.use_parallel + parallel_step = self.config_decoder.parallel_step + batch_size = encoder_outputs["last_hidden_state"].shape[0] + generation_config = { + "decoder_start_token_id": 0, + "bos_token_id": 0, + } + input_ids, model_kwargs = self._prepare_decoder_input_ids_for_generation( + batch_size=batch_size, + model_kwargs=model_kwargs, + decoder_start_token_id=generation_config["decoder_start_token_id"], + bos_token_id=generation_config["bos_token_id"], + ) + if not use_parallel: + input_ids = input_ids.reshape([-1, 1]) + decoder_input_ids = input_ids + model_kwargs["key use_cache"] = True + batch_size, cur_len = input_ids.shape + + if "inputs_embeds" in model_kwargs: + cur_len = model_kwargs["inputs_embeds"].shape[1] + + cache_position = torch.arange(cur_len) + pad_token_id = self.pad_token_id + eos_token_id = [self.eos_token_id] + eos_token = self.eos_token_id + if use_parallel: + unfinished_sequences = torch.ones( + [batch_size, parallel_step], dtype=torch.int64, device=self.device + ) + parallel_length = math.ceil(self.max_seq_len // parallel_step) + else: + unfinished_sequences = torch.ones(batch_size, dtype=torch.int64, device=self.device) + parallel_length = self.max_seq_len + + i_idx = 0 + past_key_values = [] + decoder_attention_heads = self.config_decoder.decoder_attention_heads + decoder_attention_heads_dim = int( + self.config_decoder.d_model / decoder_attention_heads + ) + for i in range(self.config_decoder.decoder_layers): + init_arr = torch.zeros( + [batch_size, decoder_attention_heads, 0, decoder_attention_heads_dim] + ) + cache = (init_arr, init_arr, init_arr, init_arr) + past_key_values.append(cache) + + while i_idx < parallel_length: + + model_inputs = self.prepare_inputs_for_generation_export( + past_key_values=past_key_values, **model_kwargs + ) + decoder_attention_mask = torch.ones(input_ids.shape, device=self.device) + + outputs = self.generate_single_iter( + decoder_input_ids=decoder_input_ids, + decoder_attention_mask=decoder_attention_mask, + encoder_outputs=encoder_outputs, + past_key_values=past_key_values, + return_dict=True, + output_attentions=False, + output_hidden_states=False, + ) + + if use_parallel: + next_token_logits = outputs.logits[:, -parallel_step:, :] + else: + next_token_logits = outputs.logits[:, -1, :] + next_tokens_scores = self.logits_processor(input_ids, next_token_logits) + next_tokens = torch.argmax(next_tokens_scores, dim=-1) + + if eos_token_id is not None: + # False + if pad_token_id is None: + raise ValueError( + "If `eos_token_id` is defined, make sure that `pad_token_id` is defined." + ) + next_tokens = next_tokens * unfinished_sequences + pad_token_id * ( + 1 - unfinished_sequences + ) + if use_parallel: + input_ids = torch.concat([input_ids, next_tokens], dim=-1) + decoder_input_ids = next_tokens + else: + input_ids = torch.concat( + [input_ids, next_tokens.unsqueeze(1)], dim=-1 + ) + decoder_input_ids = next_tokens.unsqueeze(1) + + past_length = past_key_values[0][0].shape[2] + + past_key_values = outputs.past_key_values + cache_position = cache_position[-1:] + 1 + if use_parallel: + unfinished_sequences = ( + unfinished_sequences + & ~self.stopping_criteria_parallel(input_ids).to(torch.int64).to(self.device) + ) + else: + unfinished_sequences = unfinished_sequences & ~self.stopping_criteria( + input_ids + ).to(torch.int64).to(self.device) + + if ( + eos_token is not None + and ( + torch.cumsum((input_ids == eos_token).to(torch.int64), 1)[:, -1] + >= 1 + ).all() + ): + break + i_idx += 1 + # break + + return input_ids + + @torch.no_grad() + def generate( + self, + encoder_outputs, + model_kwargs, + ): + """ + Generate sequences from the model without computing gradients. + + This method is used to generate sequences from the model based on the given encoder outputs. + It does not compute gradients, making it suitable for inference. + + Args: + encoder_outputs: The outputs from the encoder, typically including hidden states necessary for generation. + model_kwargs: Additional keyword arguments that may include parameters such as maximum length, + temperature, top-k/top-p sampling parameters, and other generation-specific settings. + + Returns: + Generated sequences based on the encoder outputs and specified generation parameters. + """ + use_parallel = self.config_decoder.use_parallel + parallel_step = self.config_decoder.parallel_step + batch_size = encoder_outputs["last_hidden_state"].shape[0] + generation_config = { + "decoder_start_token_id": 0, + "bos_token_id": 0, + } + + input_ids, model_kwargs = self._prepare_decoder_input_ids_for_generation( + batch_size=batch_size, + model_kwargs=model_kwargs, + decoder_start_token_id=generation_config["decoder_start_token_id"], + bos_token_id=generation_config["bos_token_id"], + ) + + decoder_input_ids = input_ids + model_kwargs["key use_cache"] = True + batch_size, cur_len = input_ids.shape + + if "inputs_embeds" in model_kwargs: + cur_len = model_kwargs["inputs_embeds"].shape[1] + model_kwargs["cache_position"] = torch.arange(cur_len) + pad_token_id = self.pad_token_id + eos_token_id = [self.eos_token_id] + eos_token = self.eos_token_id + if use_parallel: + unfinished_sequences = torch.ones( + [batch_size, parallel_step], dtype=torch.int64 + ) + parallel_length = math.ceil(self.max_seq_len // parallel_step) + else: + unfinished_sequences = torch.ones(batch_size, dtype=torch.int64) + parallel_length = self.max_seq_len + past_key_values = [] + + for idx in range(parallel_length): + + model_inputs = self.prepare_inputs_for_generation(input_ids, **model_kwargs) + outputs = self.generate_single_iter( + **model_inputs, + encoder_outputs=encoder_outputs, + return_dict=True, + output_attentions=False, + output_hidden_states=False, + ) + + if use_parallel: + next_token_logits = outputs.logits[:, :, :] + else: + next_token_logits = outputs.logits[:, -1, :] + + next_tokens_scores = self.logits_processor(input_ids, next_token_logits) + next_tokens = torch.argmax(next_tokens_scores, dim=-1) + if eos_token_id is not None: + # False + if pad_token_id is None: + raise ValueError( + "If `eos_token_id` is defined, make sure that `pad_token_id` is defined." + ) + next_tokens = next_tokens * unfinished_sequences + pad_token_id * ( + 1 - unfinished_sequences + ) + if use_parallel: + input_ids = torch.concat([input_ids, next_tokens], dim=-1) + else: + input_ids = torch.concat([input_ids, next_tokens[:, None]], dim=-1) + + model_kwargs = self._update_model_kwargs_for_generation( + outputs, + model_kwargs, + is_encoder_decoder=self.config_decoder.is_encoder_decoder, + ) + if use_parallel: + unfinished_sequences = ( + unfinished_sequences + & ~self.stopping_criteria_parallel(input_ids).to(torch.int64) + ) + else: + unfinished_sequences = unfinished_sequences & ~self.stopping_criteria( + input_ids + ).to(torch.int64) + + if ( + eos_token is not None + and ( + torch.cumsum((input_ids == eos_token).to(torch.int64), 1)[:, -1] + >= 1 + ).all() + ): + break + return input_ids + + def forwad_train( + self, + encoder_outputs, + decoder_input_ids, + decoder_attention_mask, + past_key_values=None, + decoder_inputs_embeds=None, + labels=None, + use_cache=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + **kwargs, + ): + """ + Forward pass for training the model. + + Args: + encoder_outputs: The outputs from the encoder, typically including hidden states. + decoder_input_ids: Input IDs for the decoder. + decoder_attention_mask: Attention mask for the decoder inputs to avoid attending to padding tokens. + past_key_values: Previously computed key and value states for the decoder, used for fast generation. + decoder_inputs_embeds: Optional embeddings for decoder inputs, used instead of decoder_input_ids if provided. + labels: Labels for computing the training loss. + use_cache: Whether to use a cache of past key values for faster generation. + output_attentions: Whether to output attention weights. + output_hidden_states: Whether to output hidden states of all layers. + return_dict: Whether to return the output as a dictionary. + **kwargs: Additional keyword arguments. + + Returns: + Depending on the `return_dict` flag, returns either a dictionary of model outputs or a tuple. + """ + if self.config_decoder.use_parallel: + batch = decoder_input_ids.shape[0] + add_sos_token = self.config_decoder.parallel_step - 1 + start_token = torch.zeros([batch, add_sos_token]).to(torch.int64) + start_mask = torch.ones([batch, add_sos_token]).to(torch.int64) + decoder_input_ids = torch.concat([start_token, decoder_input_ids], dim=1) + decoder_attention_mask = torch.concat( + [start_mask, decoder_attention_mask], dim=1 + ) + + labels = decoder_input_ids * 1 + labels = labels.masked_fill_(labels == self.pad_token_id, -100) + if self.config_decoder.use_parallel: + input_decoder_input_ids = decoder_input_ids[ + :, : -self.config_decoder.parallel_step + ] + input_decoder_attention_mask = decoder_attention_mask[ + :, : -self.config_decoder.parallel_step + ] + else: + input_decoder_input_ids = decoder_input_ids[:, :-1] + input_decoder_attention_mask = decoder_attention_mask[:, :-1] + + encoder_hidden_states = encoder_outputs[0] + kwargs_decoder = {} + if self.config_decoder.hidden_size != self.encoder_hidden_size: + encoder_hidden_states = self.enc_to_dec_proj(encoder_hidden_states) + + decoder_outputs = self.decoder( + input_ids=input_decoder_input_ids, + attention_mask=input_decoder_attention_mask, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=None, + inputs_embeds=None, + output_attentions=False, + output_hidden_states=output_hidden_states, + use_cache=use_cache, + past_key_values=past_key_values, + return_dict=return_dict, + **kwargs_decoder, + ) + + logits = decoder_outputs.logits + return logits, labels + + # forward for export + def forward(self, inputs, targets=None): + self.is_export = False if self.training else True + if not self.training: + encoder_outputs = inputs + model_kwargs = { + "output_attentions": False, + "output_hidden_states": False, + "use_cache": True, + } + if self.is_export: + word_pred = self.generate_export(encoder_outputs, model_kwargs) + else: + word_pred = self.generate(encoder_outputs, model_kwargs) + + return word_pred + encoder_outputs, tgt_seq, mask = inputs + logits, masked_labels = self.forwad_train(encoder_outputs, tgt_seq, mask) + + return logits, masked_labels diff --git a/mineru/model/utils/pytorchocr/modeling/heads/rec_unimernet_head.py b/mineru/model/utils/pytorchocr/modeling/heads/rec_unimernet_head.py new file mode 100644 index 000000000..9ab6a998e --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/heads/rec_unimernet_head.py @@ -0,0 +1,2632 @@ +# Copyright (c) Opendatalab. All rights reserved. +import copy +import math +import re +import numpy as np +import inspect +import warnings +from collections import OrderedDict +from typing import Optional, Tuple, Union, List, Dict, Any +from dataclasses import dataclass, fields, is_dataclass + +import torch +import torch.nn as nn +from torch import Tensor +import torch.nn.functional as F +from torch.nn import CrossEntropyLoss + +from mineru.utils.config_reader import get_device + + +class ModelOutput(OrderedDict): + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def __post_init__(self): + class_fields = fields(self) + + if not len(class_fields): + raise ValueError(f"{self.__class__.__name__} has no fields.") + if not all(field.default is None for field in class_fields[1:]): + raise ValueError( + f"{self.__class__.__name__} should not have more than one required field." + ) + + first_field = getattr(self, class_fields[0].name) + other_fields_are_none = all( + getattr(self, field.name) is None for field in class_fields[1:] + ) + if other_fields_are_none: + if isinstance(first_field, dict): + iterator = first_field.items() + first_field_iterator = True + else: + try: + iterator = iter(first_field) + first_field_iterator = True + except TypeError: + first_field_iterator = False + + if first_field_iterator: + for idx, element in enumerate(iterator): + if ( + not isinstance(element, (list, tuple)) + or not len(element) == 2 + or not isinstance(element[0], str) + ): + if idx == 0: + self[class_fields[0].name] = first_field + else: + raise ValueError( + f"Cannot set key/value for {element}. It needs to be a tuple (key, value)." + ) + break + setattr(self, element[0], element[1]) + if element[1] is not None: + self[element[0]] = element[1] + elif first_field is not None: + self[class_fields[0].name] = first_field + else: + for field in class_fields: + v = getattr(self, field.name) + if v is not None: + self[field.name] = v + + def __delitem__(self, *args, **kwargs): + raise Exception( + f"You cannot use ``__delitem__`` on a {self.__class__.__name__} instance." + ) + + def setdefault(self, *args, **kwargs): + raise Exception( + f"You cannot use ``setdefault`` on a {self.__class__.__name__} instance." + ) + + def pop(self, *args, **kwargs): + raise Exception( + f"You cannot use ``pop`` on a {self.__class__.__name__} instance." + ) + + def update(self, *args, **kwargs): + raise Exception( + f"You cannot use ``update`` on a {self.__class__.__name__} instance." + ) + + def __getitem__(self, k): + if isinstance(k, str): + inner_dict = dict(self.items()) + return inner_dict[k] + else: + return self.to_tuple()[k] + + def __setattr__(self, name, value): + if name in self.keys() and value is not None: + super().__setitem__(name, value) + super().__setattr__(name, value) + + def __setitem__(self, key, value): + super().__setitem__(key, value) + super().__setattr__(key, value) + + def __reduce__(self): + if not is_dataclass(self): + return super().__reduce__() + callable, _args, *remaining = super().__reduce__() + args = tuple(getattr(self, field.name) for field in fields(self)) + return callable, args, *remaining + + def to_tuple(self): + return tuple(self[k] for k in self.keys()) + + +@dataclass +class BaseModelOutputWithPastAndCrossAttentions(ModelOutput): + last_hidden_state = None + past_key_values = None + hidden_states = None + attentions = None + cross_attentions = None + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + +@dataclass +class Seq2SeqLMOutput(ModelOutput): + loss = None + logits = None + past_key_values = None + decoder_hidden_states = None + decoder_attentions = None + cross_attentions = None + encoder_last_hidden_state = None + encoder_hidden_states = None + encoder_attentions = None + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + +class MBartConfig(object): + model_type = "mbart" + keys_to_ignore_at_inference = ["past_key_values"] + attribute_map = { + "num_attention_heads": "encoder_attention_heads", + "hidden_size": "d_model", + } + + def __init__( + self, + vocab_size=50265, + max_position_embeddings=1024, + encoder_layers=12, + encoder_ffn_dim=4096, + encoder_attention_heads=16, + decoder_layers=12, + decoder_ffn_dim=4096, + decoder_attention_heads=16, + encoder_layerdrop=0.0, + decoder_layerdrop=0.0, + use_cache=True, + is_encoder_decoder=True, + activation_function="gelu", + d_model=1024, + dropout=0.1, + output_hidden_states=False, + use_return_dict=True, + attention_dropout=0.0, + activation_dropout=0.0, + init_std=0.02, + classifier_dropout=0.0, + scale_embedding=False, + pad_token_id=1, + bos_token_id=0, + eos_token_id=2, + forced_eos_token_id=2, + _attn_implementation="eager", + hidden_size=1024, + use_parallel=False, + parallel_step=2, + is_export=False, + **kwargs, + ): + self.vocab_size = vocab_size + self.hidden_size = hidden_size + self.max_position_embeddings = max_position_embeddings + self.d_model = d_model + self.encoder_ffn_dim = encoder_ffn_dim + self.encoder_layers = encoder_layers + self.encoder_attention_heads = encoder_attention_heads + self.decoder_ffn_dim = decoder_ffn_dim + self.decoder_layers = decoder_layers + self.decoder_attention_heads = decoder_attention_heads + self.dropout = dropout + self.output_hidden_states = output_hidden_states + self.use_return_dict = use_return_dict + self.attention_dropout = attention_dropout + self.activation_dropout = activation_dropout + self.activation_function = activation_function + self.init_std = init_std + self.encoder_layerdrop = encoder_layerdrop + self.decoder_layerdrop = decoder_layerdrop + self.classifier_dropout = classifier_dropout + self.use_cache = use_cache + self.num_hidden_layers = encoder_layers + self.scale_embedding = ( + scale_embedding # scale factor will be sqrt(d_model) if True + ) + self.pad_token_id = pad_token_id + self.bos_token_id = bos_token_id + self.eos_token_id = eos_token_id + self.is_encoder_decoder = is_encoder_decoder + self.forced_eos_token_id = forced_eos_token_id + self._attn_implementation = _attn_implementation + self.use_parallel = use_parallel + self.parallel_step = parallel_step + self.is_export = is_export + super().__init__() + + +@dataclass +class AttentionMaskConverter: + """ + A utility class for converting attention masks used in transformer models. + + This class handles the conversion of attention masks based on whether the + attention mechanism is causal (i.e., preventing information flow from future + tokens to past tokens) and whether a sliding window approach is used. + + Attributes: + is_causal (bool): Indicates if the attention mechanism is causal. + sliding_window (Optional[int]): Specifies the size of the sliding window + for local attention, if applicable. + + Args: + is_causal (bool): Determines if the attention mask should enforce causality. + sliding_window (Optional[int], optional): The size of the sliding window + for local attention. Default is None. + """ + + is_causal: bool + sliding_window: int + + def __init__(self, is_causal: bool, sliding_window=None): + self.is_causal = is_causal + self.sliding_window = sliding_window + + if self.sliding_window is not None and self.sliding_window <= 0: + raise ValueError( + f"Make sure that when passing `sliding_window` that its value is a strictly positive integer, not `{self.sliding_window}`" + ) + + @staticmethod + def _make_causal_mask( + input_ids_shape, + dtype, + past_key_values_length=0, + sliding_window=None, + is_export=False, + ): + bsz, tgt_len = input_ids_shape + if is_export: + mask = torch.full( + [tgt_len, tgt_len], fill_value=torch.finfo(dtype).min, dtype=torch.float64 + ) + else: + mask = torch.full((tgt_len, tgt_len), torch.finfo(dtype).min) + mask_cond = torch.arange(mask.shape[-1]) + mask = mask.masked_fill_( + mask_cond < (mask_cond + 1).reshape([mask.shape[-1], 1]), 0 + ) + return mask[None, None, :, :].expand( + [bsz, 1, tgt_len, tgt_len + past_key_values_length] + ) + + def to_4d_export( + self, + attention_mask_2d, + query_length, + dtype, + key_value_length, + is_export=False, + ): + input_shape = (attention_mask_2d.shape[0], query_length) + expanded_attn_mask = self._expand_mask( + attention_mask_2d, dtype, tgt_len=input_shape[-1] + ) + expanded_4d_mask = expanded_attn_mask + + return expanded_4d_mask + + def to_4d( + self, + attention_mask_2d, + query_length, + dtype, + key_value_length, + is_export=False, + ): + + input_shape = (attention_mask_2d.shape[0], query_length) + causal_4d_mask = None + if (input_shape[-1] > 1 or self.sliding_window is not None) and self.is_causal: + if key_value_length is None: + raise ValueError( + "This attention mask converter is causal. Make sure to pass `key_value_length` to correctly create a causal mask." + ) + + past_key_values_length = key_value_length - query_length + + causal_4d_mask = self._make_causal_mask( + input_shape, + dtype, + past_key_values_length=past_key_values_length, + sliding_window=self.sliding_window, + is_export=is_export, + ) + elif self.sliding_window is not None: + raise NotImplementedError( + "Sliding window is currently only implemented for causal masking" + ) + + expanded_attn_mask = self._expand_mask( + attention_mask_2d, dtype, tgt_len=input_shape[-1] + ) + + if causal_4d_mask is not None: + if is_export: + expanded_attn_mask = causal_4d_mask + return expanded_attn_mask + else: + expanded_attn_mask = causal_4d_mask.masked_fill_( + expanded_attn_mask.to(torch.bool), torch.finfo(dtype).min + ) + + expanded_4d_mask = expanded_attn_mask + + return expanded_4d_mask + + def _expand_mask(self, mask, dtype, tgt_len=None): + bsz, src_len = mask.shape + tgt_len = tgt_len if tgt_len is not None else src_len + expanded_mask = ( + mask[:, None, None, :].expand([bsz, 1, tgt_len, src_len]).to(dtype) + ) + inverted_mask = 1.0 - expanded_mask + return inverted_mask.masked_fill_( + inverted_mask.to(torch.bool), torch.finfo(dtype).min + ) + + +def _prepare_4d_attention_mask(mask, dtype, tgt_len=None): + return AttentionMaskConverter._expand_mask(mask=mask, dtype=dtype, tgt_len=tgt_len) + + +def _prepare_4d_causal_attention_mask_export( + attention_mask, + input_shape, + inputs_embeds, + past_key_values_length, + sliding_window=None, + is_export=False, +): + attn_mask_converter = AttentionMaskConverter( + is_causal=True, sliding_window=sliding_window + ) + key_value_length = input_shape[-1] + past_key_values_length + + shape = attention_mask.shape + len_shape = len(shape) + + attention_mask = attn_mask_converter.to_4d_export( + attention_mask, + input_shape[-1], + key_value_length=key_value_length, + dtype=inputs_embeds.dtype, + is_export=is_export, + ) + return attention_mask + + +def _prepare_4d_causal_attention_mask( + attention_mask, + input_shape, + inputs_embeds, + past_key_values_length, + sliding_window=None, + is_export=False, +): + attn_mask_converter = AttentionMaskConverter( + is_causal=True, sliding_window=sliding_window + ) + key_value_length = input_shape[-1] + past_key_values_length + + shape = attention_mask.shape + len_shape = len(shape) + if (attention_mask is not None) and (len_shape == 2): + attention_mask = attn_mask_converter.to_4d( + attention_mask, + input_shape[-1], + key_value_length=key_value_length, + dtype=inputs_embeds.dtype, + is_export=is_export, + ) + + return attention_mask + elif attention_mask is not None and len(attention_mask.shape) == 4: + expected_shape = (input_shape[0], 1, input_shape[1], key_value_length) + if tuple(attention_mask.shape) != expected_shape: + raise ValueError( + f"Incorrect 4D attention_mask shape: {tuple(attention_mask.shape)}; expected: {expected_shape}." + ) + else: + inverted_mask = 1.0 - attention_mask + attention_mask = inverted_mask.masked_fill_( + inverted_mask.to(torch.bool), torch.finfo(inputs_embeds.dtype).min + ) + else: + attention_mask = attn_mask_converter.to_causal_4d( + input_shape[0], + input_shape[-1], + key_value_length, + dtype=inputs_embeds.dtype, + ) + + return attention_mask + + +class MBartLearnedPositionalEmbedding(nn.Embedding): + """ + This module learns positional embeddings up to a fixed maximum size. + """ + + def __init__(self, num_embeddings, embedding_dim): + self.offset = 2 + super().__init__(num_embeddings + self.offset, embedding_dim) + self.device = torch.device(get_device()) + + def forward(self, input_ids, past_key_values_length=0): + """`input_ids' shape is expected to be [bsz x seqlen].""" + bsz, seq_len = input_ids.shape[:2] + positions = torch.arange( + past_key_values_length, past_key_values_length + seq_len, dtype=torch.int64 + ).expand([bsz, -1]).to(self.device) + return nn.Embedding.forward(self, positions + self.offset) + + +class MBartPreTrainedModel(nn.Module): + base_model_prefix = "model" + supports_gradient_checkpointing = True + _no_split_modules = ["MBartDecoderLayer", "MBartAttention"] + _supports_flash_attn_2 = True + + def __init__(self, config): + super().__init__() + self.config = config + + def _initialize_weights(self, module): + """ + Initialize the weights if they are not already initialized. + """ + if getattr(module, "_is_hf_initialized", False): + return + self._init_weights(module) + + def post_init(self): + self.apply(self._initialize_weights) + + def _init_weights(self, module): + std = self.config.init_std + if isinstance(module, nn.Linear): + torch.nn.init.normal_(module.weight, mean=0.0, std=std) + if module.bias is not None: + torch.nn.init.constant_(module.bias, val=0.0) + elif isinstance(module, nn.Embedding): + torch.nn.init.normal_(module.weight, mean=0.0, std=std) + if module.padding_idx is not None: + torch.nn.init.constant_(module.weight[module.padding_idx], val=0.0) + + @property + def dummy_inputs(self): + pad_token = self.config.pad_token_id + input_ids = torch.tensor([[0, 6, 10, 4, 2], [0, 8, 12, 2, pad_token]]) + dummy_inputs = { + "attention_mask": input_ids.ne(pad_token), + "input_ids": input_ids, + } + return dummy_inputs + + +class MBartAttention(nn.Module): + """Multi-headed attention from 'Attention Is All You Need' paper""" + + def __init__( + self, + embed_dim, + num_heads, + dropout: float = 0.0, + is_decoder: bool = False, + bias: bool = True, + is_causal: bool = False, + config=None, + ): + super().__init__() + self.embed_dim = embed_dim + self.num_heads = num_heads + self.dropout = dropout + self.head_dim = embed_dim // num_heads + self.config = config + + if (self.head_dim * num_heads) != self.embed_dim: + raise ValueError( + f"embed_dim must be divisible by num_heads (got `embed_dim`: {self.embed_dim}" + f" and `num_heads`: {num_heads})." + ) + self.scaling = self.head_dim ** -0.5 + self.is_decoder = is_decoder + self.is_causal = is_causal + + self.k_proj = nn.Linear(embed_dim, embed_dim, bias=bias) + self.v_proj = nn.Linear(embed_dim, embed_dim, bias=bias) + self.q_proj = nn.Linear(embed_dim, embed_dim, bias=bias) + self.out_proj = nn.Linear(embed_dim, embed_dim, bias=bias) + + def _shape(self, tensor, seq_len, bsz): + return tensor.reshape([bsz, seq_len, self.num_heads, self.head_dim]).permute( + 0, 2, 1, 3 + ) + + def forward( + self, + hidden_states, + key_value_states=None, + past_key_value=None, + attention_mask=None, + layer_head_mask=None, + output_attentions=False, + ): + + is_cross_attention = key_value_states is not None + + bsz, tgt_len, _ = hidden_states.shape + query_states = self.q_proj(hidden_states) * self.scaling + if ( + is_cross_attention + and past_key_value is not None + and past_key_value[0].shape[2] == key_value_states.shape[1] + ): + key_states = past_key_value[0] + value_states = past_key_value[1] + elif is_cross_attention: + key_states = self._shape(self.k_proj(key_value_states), -1, bsz) + value_states = self._shape(self.v_proj(key_value_states), -1, bsz) + elif past_key_value is not None: + key_states = self._shape(self.k_proj(hidden_states), -1, bsz) + value_states = self._shape(self.v_proj(hidden_states), -1, bsz) + key_states = torch.concat([past_key_value[0], key_states], dim=2) + value_states = torch.concat([past_key_value[1], value_states], dim=2) + else: + key_states = self._shape(self.k_proj(hidden_states), -1, bsz) + value_states = self._shape(self.v_proj(hidden_states), -1, bsz) + + if self.is_decoder: + past_key_value = (key_states, value_states) + + proj_shape = (bsz * self.num_heads, -1, self.head_dim) + query_states = self._shape(query_states, tgt_len, bsz).reshape(proj_shape) + key_states = key_states.reshape(proj_shape) + value_states = value_states.reshape(proj_shape) + + src_len = key_states.shape[1] + attn_weights = torch.bmm(query_states, key_states.permute([0, 2, 1])) + + if attention_mask is not None: + attn_weights = ( + attn_weights.reshape([bsz, self.num_heads, tgt_len, src_len]) + + attention_mask + ) + attn_weights = attn_weights.reshape( + [bsz * self.num_heads, tgt_len, src_len] + ) + + attn_weights = nn.functional.softmax(attn_weights, dim=-1) + if layer_head_mask is not None: + if tuple(layer_head_mask.shape) != (self.num_heads,): + raise ValueError( + f"Head mask for a single layer should be of shape {(self.num_heads,)}, but is" + f" {layer_head_mask.shape}" + ) + attn_weights = layer_head_mask.reshape( + [1, -1, 1, 1] + ) * attn_weights.reshape([bsz, self.num_heads, tgt_len, src_len]) + attn_weights = attn_weights.reshape( + [bsz * self.num_heads, tgt_len, src_len] + ) + + if output_attentions: + attn_weights_reshaped = attn_weights.reshape( + [bsz, self.num_heads, tgt_len, src_len] + ) + attn_weights = attn_weights_reshaped.reshape( + [bsz * self.num_heads, tgt_len, src_len] + ) + else: + attn_weights_reshaped = None + attn_probs = nn.functional.dropout( + attn_weights, p=self.dropout, training=self.training + ) + attn_output = torch.bmm(attn_probs, value_states) + + attn_output = attn_output.reshape([bsz, self.num_heads, tgt_len, self.head_dim]) + attn_output = attn_output.permute([0, 2, 1, 3]) + + attn_output = attn_output.reshape([bsz, tgt_len, self.embed_dim]) + attn_output = self.out_proj(attn_output) + return attn_output, attn_weights_reshaped, past_key_value + + +MBART_ATTENTION_CLASSES = { + "eager": MBartAttention, +} + + +class MBartDecoderLayer(nn.Module): + def __init__(self, config): + super().__init__() + self.embed_dim = config.d_model + self.self_attn = MBART_ATTENTION_CLASSES[config._attn_implementation]( + embed_dim=self.embed_dim, + num_heads=config.decoder_attention_heads, + dropout=config.attention_dropout, + is_decoder=True, + is_causal=True, + config=config, + ) + self.is_export = config.is_export + self.dropout = config.dropout + self.activation_fn = F.gelu + self.activation_dropout = config.activation_dropout + + self.self_attn_layer_norm = nn.LayerNorm(self.embed_dim) + self.encoder_attn = MBART_ATTENTION_CLASSES[config._attn_implementation]( + self.embed_dim, + config.decoder_attention_heads, + dropout=config.attention_dropout, + is_decoder=True, + config=config, + ) + self.encoder_attn_layer_norm = nn.LayerNorm(self.embed_dim) + self.fc1 = nn.Linear(self.embed_dim, config.decoder_ffn_dim) + self.fc2 = nn.Linear(config.decoder_ffn_dim, self.embed_dim) + self.final_layer_norm = nn.LayerNorm(self.embed_dim) + self.device = torch.device(get_device()) + + def forward( + self, + hidden_states, + attention_mask=None, + encoder_hidden_states=None, + encoder_attention_mask=None, + layer_head_mask=None, + cross_attn_layer_head_mask=None, + past_key_value: Optional[Tuple[torch.Tensor]] = None, + output_attentions: Optional[bool] = False, + use_cache: Optional[bool] = True, + ) -> torch.Tensor: + + residual = hidden_states + hidden_states = self.self_attn_layer_norm(hidden_states) + + self_attn_past_key_value = None + if past_key_value is not None: + self_attn_past_key_value = tuple( + t.to(self.device) if isinstance(t, torch.Tensor) else t for t in past_key_value[:2] + ) + + hidden_states, self_attn_weights, present_key_value = self.self_attn( + hidden_states=hidden_states, + past_key_value=self_attn_past_key_value, + attention_mask=attention_mask, + layer_head_mask=layer_head_mask, + output_attentions=output_attentions, + ) + hidden_states = nn.functional.dropout( + hidden_states, p=self.dropout, training=self.training + ) + hidden_states = residual + hidden_states + + cross_attn_present_key_value = None + cross_attn_weights = None + if encoder_hidden_states is not None: + residual = hidden_states + hidden_states = self.encoder_attn_layer_norm(hidden_states) + cross_attn_past_key_value = ( + past_key_value[-2:] if past_key_value is not None else None + ) + hidden_states, cross_attn_weights, cross_attn_present_key_value = ( + self.encoder_attn( + hidden_states=hidden_states, + key_value_states=encoder_hidden_states, + attention_mask=encoder_attention_mask, + layer_head_mask=cross_attn_layer_head_mask, + past_key_value=cross_attn_past_key_value, + output_attentions=output_attentions, + ) + ) + hidden_states = nn.functional.dropout( + hidden_states, p=self.dropout, training=self.training + ) + hidden_states = residual + hidden_states + + present_key_value = present_key_value + cross_attn_present_key_value + + residual = hidden_states + hidden_states = self.final_layer_norm(hidden_states) + hidden_states = self.activation_fn(self.fc1(hidden_states)) + hidden_states = nn.functional.dropout( + hidden_states, p=self.activation_dropout, training=self.training + ) + hidden_states = self.fc2(hidden_states) + hidden_states = nn.functional.dropout( + hidden_states, p=self.dropout, training=self.training + ) + hidden_states = residual + hidden_states + outputs = (hidden_states,) + + if output_attentions: + outputs += (self_attn_weights, cross_attn_weights) + + if self.is_export: + outputs += (present_key_value,) + else: + if use_cache: + outputs += (present_key_value,) + return outputs + + +class MBartForCausalLM(MBartPreTrainedModel): + _tied_weights_keys = ["lm_head.weight"] + + def __init__(self, config): + config = copy.deepcopy(config) + config.is_decoder = True + config.is_encoder_decoder = False + super().__init__(config) + self.model = MBartDecoderWrapper(config) + self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False) + + self.post_init() + + def get_input_embeddings(self): + return self.model.decoder.embed_tokens + + def set_input_embeddings(self, value): + self.model.decoder.embed_tokens = value + + def get_output_embeddings(self): + return self.lm_head + + def set_output_embeddings(self, new_embeddings): + self.lm_head = new_embeddings + + def set_decoder(self, decoder): + self.model.decoder = decoder + + def get_decoder(self): + return self.model.decoder + + def forward( + self, + input_ids=None, + attention_mask=None, + encoder_hidden_states=None, + encoder_attention_mask=None, + head_mask=None, + cross_attn_head_mask=None, + past_key_values=None, + inputs_embeds=None, + labels=None, + use_cache=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + ): + + output_attentions = ( + output_attentions + if output_attentions is not None + else self.config.output_attentions + ) + output_hidden_states = ( + output_hidden_states + if output_hidden_states is not None + else self.config.output_hidden_states + ) + return_dict = ( + return_dict if return_dict is not None else self.config.use_return_dict + ) + + outputs = self.model.decoder( + input_ids=input_ids, + attention_mask=attention_mask, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=encoder_attention_mask, + head_mask=head_mask, + cross_attn_head_mask=cross_attn_head_mask, + past_key_values=past_key_values, + inputs_embeds=inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + + logits = self.lm_head(outputs[0]) + + loss = None + if labels is not None: + labels = labels + loss_fct = CrossEntropyLoss() + loss = loss_fct( + logits.reshape([-1, self.config.vocab_size]), labels.reshape([-1]) + ) + + if not return_dict: + output = (logits,) + outputs[1:] + return (loss,) + output if loss is not None else output + + return CausalLMOutputWithCrossAttentions( + loss=loss, + logits=logits, + past_key_values=outputs.past_key_values, + hidden_states=outputs.hidden_states, + attentions=outputs.attentions, + cross_attentions=outputs.cross_attentions, + ) + + def prepare_inputs_for_generation( + self, + input_ids, + past_key_values=None, + attention_mask=None, + use_cache=None, + **kwargs, + ): + if attention_mask is None: + attention_mask = input_ids.new_ones(input_ids.shape) + + if past_key_values: + past_length = past_key_values[0][0].shape[2] + + if input_ids.shape[1] > past_length: + remove_prefix_length = past_length + else: + remove_prefix_length = input_ids.shape[1] - 1 + + input_ids = input_ids[:, remove_prefix_length:] + return { + "input_ids": input_ids, + "attention_mask": attention_mask, + "past_key_values": past_key_values, + "use_cache": use_cache, + } + + @staticmethod + def _reorder_cache(past_key_values, beam_idx): + reordered_past = () + for layer_past in past_key_values: + reordered_past += ( + tuple( + past_state.index_select(0, beam_idx) for past_state in layer_past + ), + ) + return reordered_past + + +class myLayerNorm(nn.LayerNorm): + """ + Custom implementation of Layer Normalization, with additional options. + + This class extends the standard LayerNorm to include optional features, + such as drop block regularization, which might be used for improving + model generalization. + + Args: + num_channels (int): The number of features or channels in the input. + eps (float, optional): A small value added to the denominator for numerical stability. Default is 1e-5. + affine (bool, optional): If True, this module has learnable affine parameters (gamma and beta). Default is True. + drop_block (optional): Additional regularization technique that might be applied. Default is None. + + """ + + def __init__( + self, + num_channels, + eps=1e-5, + affine=True, + drop_block=None, + ): + super(nn.LayerNorm, self).__init__() + self._epsilon = eps + self.num_channels = num_channels + if affine: + self.weight = torch.nn.Parameter(torch.randn([num_channels]) * 0.01) + self.bias = torch.nn.Parameter(torch.randn([num_channels]) * 0.01) + torch.nn.init.ones_(self.weight) + torch.nn.init.zeros_(self.bias) + + def forward(self, x): + x = F.layer_norm( + x, + [self.num_channels], + weight=self.weight, + bias=self.bias, + eps=self._epsilon, + ) + return x + + +class MBartDecoder(MBartPreTrainedModel): + """ + Transformer decoder consisting of *config.decoder_layers* layers. Each layer is a [`MBartDecoderLayer`] + + Args: + config + embed_tokens (nn.Embedding): output embedding + """ + + def __init__(self, config, embed_tokens=None): + super().__init__(config) + self.dropout = config.dropout + self.layerdrop = config.decoder_layerdrop + self.padding_idx = config.pad_token_id + self.max_target_positions = config.max_position_embeddings + self.embed_scale = math.sqrt(config.d_model) if config.scale_embedding else 1.0 + + self.embed_tokens = nn.Embedding( + config.vocab_size, config.d_model, self.padding_idx + ) + + if embed_tokens is not None: + self.embed_tokens.weight = embed_tokens.weight + + self.embed_positions = MBartLearnedPositionalEmbedding( + config.max_position_embeddings, + config.d_model, + ) + self.layers = nn.ModuleList( + [MBartDecoderLayer(config) for _ in range(config.decoder_layers)] + ) + self._use_flash_attention_2 = config._attn_implementation == "flash_attention_2" + self.layernorm_embedding = myLayerNorm(config.d_model, affine=True) + self.layer_norm = nn.LayerNorm(config.d_model) + + self.gradient_checkpointing = False + # Initialize weights and apply final processing + self.post_init() + self.is_export = config.is_export + + def get_input_embeddings(self): + return self.embed_tokens + + def set_input_embeddings(self, value): + self.embed_tokens = value + + def forward( + self, + input_ids=None, + attention_mask=None, + encoder_hidden_states=None, + encoder_attention_mask=None, + head_mask=None, + cross_attn_head_mask=None, + past_key_values=None, + inputs_embeds=None, + use_cache=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + ): + + output_attentions = ( + output_attentions + if output_attentions is not None + else self.config.output_attentions + ) + output_hidden_states = ( + output_hidden_states + if output_hidden_states is not None + else self.config.output_hidden_states + ) + use_cache = use_cache if use_cache is not None else self.config.use_cache + return_dict = ( + return_dict if return_dict is not None else self.config.use_return_dict + ) + + if input_ids is not None and inputs_embeds is not None: + raise ValueError( + "You cannot specify both decoder_input_ids and decoder_inputs_embeds at the same time" + ) + elif input_ids is not None: + input = input_ids + input_shape = input.shape + input_ids = input_ids.reshape([-1, input_shape[-1]]) + elif inputs_embeds is not None: + input_shape = inputs_embeds.shape[:-1] + input = inputs_embeds[:, :, -1] + else: + raise ValueError( + "You have to specify either decoder_input_ids or decoder_inputs_embeds" + ) + + past_key_values_length = ( + past_key_values[0][0].shape[2] if past_key_values is not None else 0 + ) + + if inputs_embeds is None: + inputs_embeds = self.embed_tokens(input_ids) * self.embed_scale + + if self._use_flash_attention_2: + attention_mask = ( + attention_mask + if (attention_mask is not None and 0 in attention_mask) + else None + ) + else: + attention_mask = _prepare_4d_causal_attention_mask( + attention_mask, + input_shape, + inputs_embeds, + past_key_values_length, + is_export=self.is_export, + ) + + if encoder_hidden_states is not None and encoder_attention_mask is not None: + if self._use_flash_attention_2: + encoder_attention_mask = ( + encoder_attention_mask if 0 in encoder_attention_mask else None + ) + else: + encoder_attention_mask = _prepare_4d_attention_mask( + encoder_attention_mask, inputs_embeds.dtype, tgt_len=input_shape[-1] + ) + + # embed positions + positions = self.embed_positions(input, past_key_values_length) + + hidden_states = inputs_embeds + positions + hidden_states = self.layernorm_embedding(hidden_states) + + hidden_states = nn.functional.dropout( + hidden_states, p=self.dropout, training=self.training + ) + + if self.gradient_checkpointing and self.training: + if use_cache: + print( + "`use_cache=True` is incompatible with gradient checkpointing`. Setting `use_cache=False`..." + ) + use_cache = False + + all_hidden_states = () if output_hidden_states else None + all_self_attns = () if output_attentions else None + all_cross_attentions = ( + () if (output_attentions and encoder_hidden_states is not None) else None + ) + next_decoder_cache = () if use_cache else None + + for attn_mask, mask_name in zip( + [head_mask, cross_attn_head_mask], ["head_mask", "cross_attn_head_mask"] + ): + if attn_mask is not None: + if attn_mask.shape[0] != len(self.layers): + raise ValueError( + f"The `{mask_name}` should be specified for {len(self.layers)} layers, but it is for" + f" {attn_mask.shape[0]}." + ) + + for idx, decoder_layer in enumerate(self.layers): + if output_hidden_states: + all_hidden_states += (hidden_states,) + if self.training: + dropout_probability = torch.rand([]) + if dropout_probability < self.layerdrop: + continue + + past_key_value = ( + past_key_values[idx] if past_key_values is not None else None + ) + + if self.gradient_checkpointing and self.training: + layer_outputs = self._gradient_checkpointing_func( + decoder_layer.__call__, + hidden_states, + attention_mask, + encoder_hidden_states, + encoder_attention_mask, + head_mask[idx] if head_mask is not None else None, + ( + cross_attn_head_mask[idx] + if cross_attn_head_mask is not None + else None + ), + None, + output_attentions, + use_cache, + ) + else: + layer_outputs = decoder_layer( + hidden_states, + attention_mask=attention_mask, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=encoder_attention_mask, + layer_head_mask=(head_mask[idx] if head_mask is not None else None), + cross_attn_layer_head_mask=( + cross_attn_head_mask[idx] + if cross_attn_head_mask is not None + else None + ), + past_key_value=past_key_value, + output_attentions=output_attentions, + use_cache=use_cache, + ) + hidden_states = layer_outputs[0] + + if use_cache: + next_decoder_cache += (layer_outputs[3 if output_attentions else 1],) + + if output_attentions: + all_self_attns += (layer_outputs[1],) + + if encoder_hidden_states is not None: + all_cross_attentions += (layer_outputs[2],) + + hidden_states = self.layer_norm(hidden_states) + + if output_hidden_states: + all_hidden_states += (hidden_states,) + + next_cache = next_decoder_cache if use_cache else None + if not return_dict: + return tuple( + v + for v in [ + hidden_states, + next_cache, + all_hidden_states, + all_self_attns, + all_cross_attentions, + ] + if v is not None + ) + return BaseModelOutputWithPastAndCrossAttentions( + last_hidden_state=hidden_states, + past_key_values=next_cache, + hidden_states=all_hidden_states, + attentions=all_self_attns, + cross_attentions=all_cross_attentions, + ) + + +class MBartDecoderWrapper(MBartPreTrainedModel): + """ + This wrapper class is a helper class to correctly load pretrained checkpoints when the causal language model is + used in combination with the [`EncoderDecoderModel`] framework. + """ + + def __init__(self, config): + super().__init__(config) + self.decoder = MBartDecoder(config) + + def forward(self, *args, **kwargs): + return self.decoder(*args, **kwargs) + + +def _in_projection( + q: torch.Tensor, + k: torch.Tensor, + v: torch.Tensor, + w_q: torch.Tensor, + w_k: torch.Tensor, + w_v: torch.Tensor, + b_q: Optional[torch.Tensor] = None, + b_k: Optional[torch.Tensor] = None, + b_v: Optional[torch.Tensor] = None, +) -> Tuple[torch.Tensor, torch.Tensor, torch.Tensor]: + Eq, Ek, Ev = q.shape[-1], k.shape[-1], v.shape[-1] + assert w_q.shape == ( + Eq, + Eq, + ), f"expecting query weights shape of {(Eq, Eq)}, but got {w_q.shape}" + assert w_k.shape == ( + Eq, + Ek, + ), f"expecting key weights shape of {(Eq, Ek)}, but got {w_k.shape}" + assert w_v.shape == ( + Eq, + Ev, + ), f"expecting value weights shape of {(Eq, Ev)}, but got {w_v.shape}" + assert b_q is None or b_q.shape == ( + Eq, + ), f"expecting query bias shape of {(Eq,)}, but got {b_q.shape}" + assert b_k is None or b_k.shape == ( + Eq, + ), f"expecting key bias shape of {(Eq,)}, but got {b_k.shape}" + assert b_v is None or b_v.shape == ( + Eq, + ), f"expecting value bias shape of {(Eq,)}, but got {b_v.shape}" + return linear(q, w_q.T, b_q), linear(k, w_k.T, b_k), linear(v, w_v.T, b_v) + + +def _scaled_dot_product_attention( + q: torch.Tensor, + k: torch.Tensor, + v: torch.Tensor, + attn_mask: Optional[torch.Tensor] = None, + dropout_p: float = 0.0, +) -> Tuple[torch.Tensor, torch.Tensor]: + B, Nt, E = q.shape + q = q / math.sqrt(E) + attn = torch.bmm(q, k.permute([0, 2, 1])) + if attn_mask is not None: + attn += attn_mask + attn = F.softmax(attn, dim=-1) + if dropout_p > 0.0: + attn = F.dropout(attn, p=dropout_p) + output = torch.bmm(attn, v) + return output, attn + + +def linear(x, w, b, is_transpose): + if is_transpose: + w = w.T + if b is not None: + return torch.matmul(x, w) + b + else: + return torch.matmul(x, w) + + +def _in_projection_packed( + q: Tensor, + k: Tensor, + v: Tensor, + w: Tensor, + b: Optional[Tensor] = None, + is_export=False, +) -> List[Tensor]: + E = q.shape[-1] + if k is v: + if q is k: + proj = linear(q, w, b, is_transpose=True) + if is_export: + B, D, L = proj.shape + proj = proj.reshape([B, D, 3, E]) + proj = ( + proj.unsqueeze(0) + .permute([3, 1, 2, 0, 4]) + .squeeze(-2) + .contiguous() + ) + else: + proj = ( + proj.unflatten(-1, (3, E)) + .unsqueeze(0) + .permute([3, 1, 2, 0, 4]) + .squeeze(-2) + .contiguous() + ) + return proj[0], proj[1], proj[2] + else: + w_q, w_k, w_v = w.chunk(3) + if b is None: + b_q = b_k = b_v = None + else: + b_q, b_k, b_v = b.chunk(3) + return linear(q, w_q, b_q), linear(k, w_k, b_k), linear(v, w_v, b_v) + + +def multi_head_attention_forward( + query: torch.Tensor, + key: torch.Tensor, + value: torch.Tensor, + embed_dim_to_check: int, + num_heads: int, + in_proj_weight: torch.Tensor, + in_proj_bias: Optional[torch.Tensor], + bias_k: Optional[torch.Tensor], + bias_v: Optional[torch.Tensor], + add_zero_attn: bool, + dropout_p: float, + out_proj_weight: torch.Tensor, + out_proj_bias: Optional[torch.Tensor], + training: bool = True, + key_padding_mask: Optional[torch.Tensor] = None, + need_weights: bool = True, + attn_mask: Optional[torch.Tensor] = None, + use_separate_proj_weight: bool = False, + q_proj_weight: Optional[torch.Tensor] = None, + k_proj_weight: Optional[torch.Tensor] = None, + v_proj_weight: Optional[torch.Tensor] = None, + static_k: Optional[torch.Tensor] = None, + static_v: Optional[torch.Tensor] = None, + is_export=False, +): + tgt_len, bsz, embed_dim = query.shape + src_len, _, _ = key.shape + + if isinstance(embed_dim, torch.Tensor): + head_dim = embed_dim.div(num_heads, rounding_mode="trunc") + else: + head_dim = embed_dim // num_heads + q, k, v = _in_projection_packed( + query, key, value, in_proj_weight, in_proj_bias, is_export + ) + + if key_padding_mask is not None and key_padding_mask.dtype == torch.uint8: + warnings.warn( + "Byte tensor for key_padding_mask in nn.MultiheadAttention is deprecated. Use bool tensor instead." + ) + key_padding_mask = key_padding_mask.to(torch.bool) + + if bias_k is not None and bias_v is not None: # False + assert static_k is None, "bias cannot be added to static key." + assert static_v is None, "bias cannot be added to static value." + k = torch.concat([k, bias_k.repeat(1, bsz, 1)]) + v = torch.concat([v, bias_v.repeat(1, bsz, 1)]) + else: + assert bias_k is None + assert bias_v is None + + q = q.reshape([tgt_len, bsz * num_heads, head_dim]).permute([1, 0, 2]) + if static_k is None: # True + k = k.reshape([k.shape[0], bsz * num_heads, head_dim]).permute([1, 0, 2]) + else: + assert ( + static_k.shape[0] == bsz * num_heads + ), f"expecting static_k.size(0) of {bsz * num_heads}, but got {static_k.shape[0]}" + assert ( + static_k.shape[2] == head_dim + ), f"expecting static_k.size(2) of {head_dim}, but got {static_k.shape[2]}" + k = static_k + if static_v is None: # True + v = v.reshape([v.shape[0], bsz * num_heads, head_dim]).transpose([1, 0, 2]) + else: + assert ( + static_v.shape[0] == bsz * num_heads + ), f"expecting static_v.size(0) of {bsz * num_heads}, but got {static_v.shape[0]}" + assert ( + static_v.shape[2] == head_dim + ), f"expecting static_v.size(2) of {head_dim}, but got {static_v.shape[2]}" + v = static_v + + src_len = k.shape[1] + + if not training: + dropout_p = 0.0 + + attn_output, attn_output_weights = _scaled_dot_product_attention( + q, k, v, attn_mask, dropout_p + ) + + attn_output = attn_output.permute([1, 0, 2]).reshape([tgt_len, bsz, embed_dim]) + attn_output = linear( + attn_output, out_proj_weight, out_proj_bias, is_transpose=False + ) + + if need_weights: + attn_output_weights = attn_output_weights.reshape( + [bsz, num_heads, tgt_len, src_len] + ) + return attn_output, attn_output_weights.sum(dim=1) / num_heads + else: + return attn_output, None + + +class MyMultiheadAttention(nn.Module): + """ + Custom implementation of a multi-head attention layer. + + Attributes: + __constants__ (list): List of constant attributes. + bias_k (Optional[paddle.Tensor]): Optional tensor for key bias. + bias_v (Optional[paddle.Tensor]): Optional tensor for value bias. + + Args: + embed_dim (int): Total dimension of the model. This is the size of the input feature vectors. + num_heads (int): Number of parallel attention heads. The input dimension must be divisible by the number of heads. + dropout (float, optional): Dropout probability on the attention weights. Default is 0.0. + bias (bool, optional): If True, adds a learnable bias to the output. Default is True. + add_bias_kv (bool, optional): If True, adds bias to the key and value sequences. Default is False. + add_zero_attn (bool, optional): If True, adds a zero attention head. Default is False. + kdim (int, optional): Total number of features for keys. If None, defaults to embed_dim. + vdim (int, optional): Total number of features for values. If None, defaults to embed_dim. + batch_first (bool, optional): If True, the input and output tensors are provided as (batch, seq, feature). Default is False. + device (optional): The device on which the layer's parameters should be initialized. Default is None. + dtype (optional): The data type for the parameters. Default is None. + is_export (bool, optional): If True, the layer is set up for export, potentially changing behavior for compatibility. Default is False. + """ + + __constants__ = ["batch_first"] + bias_k: Optional[torch.Tensor] + bias_v: Optional[torch.Tensor] + + def __init__( + self, + embed_dim, + num_heads, + dropout=0.0, + bias=True, + add_bias_kv=False, + add_zero_attn=False, + kdim=None, + vdim=None, + batch_first=False, + device=None, + dtype=None, + is_export=False, + ) -> None: + super(MyMultiheadAttention, self).__init__() + self.embed_dim = embed_dim + self.kdim = kdim if kdim is not None else embed_dim + self.vdim = vdim if vdim is not None else embed_dim + self._qkv_same_embed_dim = self.kdim == embed_dim and self.vdim == embed_dim + + self.num_heads = num_heads + self.dropout = dropout + self.batch_first = batch_first + self.head_dim = embed_dim // num_heads + self.is_export = is_export + assert ( + self.head_dim * num_heads == self.embed_dim + ), "embed_dim must be divisible by num_heads" + + if self._qkv_same_embed_dim is False: + pass + else: + if dtype is None: + dtype = torch.float32 + self.in_proj_weight = torch.nn.Parameter(torch.randn(3 * embed_dim, embed_dim) * 0.01) + self.q_proj_weight = None + self.k_proj_weight = None + self.v_proj_weight = None + + if bias: + self.in_proj_bias = torch.nn.Parameter(torch.randn(3 * embed_dim, ) * 0.01) + torch.nn.init.zeros_(self.in_proj_bias) + else: + self.in_proj_bias = None + self.out_proj = nn.Linear(embed_dim, embed_dim, bias=bias) + + if add_bias_kv: + pass + else: + self.bias_k = self.bias_v = None + + self.add_zero_attn = add_zero_attn + + self._reset_parameters() + + def _reset_parameters(self): + + if self._qkv_same_embed_dim: + torch.nn.init.xavier_normal_(self.in_proj_weight) + else: + torch.nn.init.xavier_normal_(self.q_proj_weight) + torch.nn.init.xavier_normal_(self.k_proj_weight) + torch.nn.init.xavier_normal_(self.v_proj_weight) + + if self.in_proj_bias is not None: + torch.nn.init.zeros_(self.in_proj_bias) + torch.nn.init.zeros_(self.out_proj.bias) + if self.bias_k is not None: + torch.nn.init.xavier_normal_(self.bias_k) + if self.bias_v is not None: + torch.nn.init.xavier_normal_(self.bias_v) + + def forward( + self, + query: torch.Tensor, + key: torch.Tensor, + value: torch.Tensor, + key_padding_mask: Optional[torch.Tensor] = None, + need_weights: bool = True, + attn_mask: Optional[torch.Tensor] = None, + ) -> Tuple[torch.Tensor, Optional[torch.Tensor]]: + + attn_output, attn_output_weights = multi_head_attention_forward( + query, + key, + value, + self.embed_dim, + self.num_heads, + self.in_proj_weight, + self.in_proj_bias, + self.bias_k, + self.bias_v, + self.add_zero_attn, + self.dropout, + self.out_proj.weight, + self.out_proj.bias, + training=self.training, + key_padding_mask=key_padding_mask, + need_weights=need_weights, + attn_mask=attn_mask, + is_export=self.is_export, + ) + + return attn_output, attn_output_weights + + +class LogitsProcessorList(list): + """ + A list of logits processors that can be applied sequentially. + + Methods: + __call__(input_ids, scores, **kwargs): Apply all processors to the given inputs. + """ + + def __call__(self, input_ids, scores, **kwargs): + for processor in self: + function_args = inspect.signature(processor.__call__).parameters + if len(function_args) > 2: + if not all(arg in kwargs for arg in list(function_args.keys())[2:]): + raise ValueError( + f"Make sure that all the required parameters: {list(function_args.keys())} for " + f"{processor.__class__} are passed to the logits processor." + ) + scores = processor(input_ids, scores, **kwargs) + else: + scores = processor(input_ids, scores) + return scores + + +class ForcedEOSTokenLogitsProcessor(object): + """ + A processor that forces the generation of an end-of-sequence (EOS) token + at a specified position in the sequence. + + This is typically used in language generation tasks to ensure that the + generated sequence ends properly when it reaches a certain length. + + Args: + max_length (int): The maximum length of the sequence. Forces EOS when this length is reached. + eos_token_id (Union[int, List[int]]): The ID(s) of the EOS token(s) to be forced in the sequence. + """ + + def __init__(self, max_length: int, eos_token_id: Union[int, List[int]]): + self.max_length = max_length + if isinstance(eos_token_id, int): + eos_token_id = [eos_token_id] + self.eos_token_id = eos_token_id + + def __call__(self, input_ids, scores): + cur_len = input_ids.shape[-1] + scores_processed = scores + if cur_len == self.max_length - 1: + scores_processed = torch.full_like(scores, -math.inf) + scores_processed[:, self.eos_token_id] = 0 + return scores_processed + + +@dataclass +class CausalLMOutputWithCrossAttentions(ModelOutput): + loss = None + logits = None + past_key_values = None + hidden_states = None + attentions = None + cross_attentions = None + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + +@dataclass +class CausalLMOutputWithCrossAttentionsAndCounting(ModelOutput): + """ + Base class for causal language model (or autoregressive) outputs. + """ + + logits = None + counting = None + past_key_values = None + hidden_states = None + attentions = None + cross_attentions = None + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + +class CustomMBartDecoder(MBartDecoder): + """ + A custom MBartDecoder that includes additional processing layers. + + This class extends the MBartDecoder by adding a customizable neural network + component called `counting_context_weight`, which applies a series of linear + transformations followed by ReLU activations. This can be used to modify or + enhance the decoder's behavior for specific tasks. + + Args: + config: The configuration object containing model parameters. + """ + + def __init__(self, config): + super().__init__(config) + hidden_size = config.d_model + self.is_export = config.is_export + self.counting_context_weight = nn.Sequential( + nn.Linear(config.vocab_size, hidden_size), + nn.ReLU(), + nn.Linear(hidden_size, hidden_size), + nn.ReLU(), + nn.Linear(hidden_size, config.d_model), + ) + + def forward( + self, + input_ids=None, + attention_mask=None, + count_pred=None, + encoder_hidden_states=None, + encoder_attention_mask=None, + head_mask=None, + cross_attn_head_mask=None, + past_key_values=None, + inputs_embeds=None, + use_cache=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + ): + self.is_export = False if self.training else True + output_attentions = ( + output_attentions + if output_attentions is not None + else self.config.output_attentions + ) + output_hidden_states = ( + output_hidden_states + if output_hidden_states is not None + else self.config.output_hidden_states + ) + use_cache = use_cache if use_cache is not None else self.config.use_cache + return_dict = ( + return_dict if return_dict is not None else self.config.use_return_dict + ) + + if input_ids is not None and inputs_embeds is not None: + raise ValueError( + "You cannot specify both decoder_input_ids and decoder_inputs_embeds at the same time" + ) + elif input_ids is not None: + input = input_ids + input_shape = input.shape + input_ids = input_ids.reshape([-1, input_shape[-1]]) + elif inputs_embeds is not None: + input_shape = inputs_embeds.shape[:-1] + input = inputs_embeds[:, :, -1] + else: + raise ValueError( + "You have to specify either decoder_input_ids or decoder_inputs_embeds" + ) + + past_key_values_length = ( + past_key_values[0][0].shape[2] if past_key_values is not None else 0 + ) + + if inputs_embeds is None: + inputs_embeds = self.embed_tokens(input_ids) * self.embed_scale + + if self._use_flash_attention_2: + attention_mask = ( + attention_mask + if (attention_mask is not None and 0 in attention_mask) + else None + ) + else: + if self.is_export: + attention_mask = _prepare_4d_causal_attention_mask_export( + attention_mask, + input_shape, + inputs_embeds, + past_key_values_length, + is_export=self.is_export, + ).to(torch.float32) + else: + attention_mask = _prepare_4d_causal_attention_mask( + attention_mask, + input_shape, + inputs_embeds, + past_key_values_length, + is_export=self.is_export, + ) + + if encoder_hidden_states is not None and encoder_attention_mask is not None: + if self._use_flash_attention_2: + encoder_attention_mask = ( + encoder_attention_mask if 0 in encoder_attention_mask else None + ) + else: + encoder_attention_mask = _prepare_4d_attention_mask( + encoder_attention_mask, inputs_embeds.dtype, tgt_len=input_shape[-1] + ) + + # embed positions + positions = self.embed_positions(input, past_key_values_length) + + hidden_states = inputs_embeds + positions + + # TODO: add counting context weight to hidden_states + if count_pred is not None: + count_context_weight = self.counting_context_weight(count_pred) + hidden_states = hidden_states + 0.5 * count_context_weight.unsqueeze(1) + + hidden_states = self.layernorm_embedding(hidden_states) + hidden_states = nn.functional.dropout( + hidden_states, p=self.dropout, training=self.training + ) + + if self.gradient_checkpointing and self.training: + if use_cache: + print( + "`use_cache=True` is incompatible with gradient checkpointing`. Setting `use_cache=False`..." + ) + use_cache = False + + # decoder layers + all_hidden_states = () if output_hidden_states else None + all_self_attns = () if output_attentions else None + all_cross_attentions = ( + () if (output_attentions and encoder_hidden_states is not None) else None + ) + next_decoder_cache = () if use_cache else None + + # check if head_mask/cross_attn_head_mask has a correct number of layers specified if desired + for attn_mask, mask_name in zip( + [head_mask, cross_attn_head_mask], ["head_mask", "cross_attn_head_mask"] + ): + if attn_mask is not None: + if attn_mask.size()[0] != len(self.layers): + raise ValueError( + f"The `{mask_name}` should be specified for {len(self.layers)} layers, but it is for" + f" {attn_mask.size()[0]}." + ) + + for idx, decoder_layer in enumerate(self.layers): + if output_hidden_states: + all_hidden_states += (hidden_states,) + if self.training: + dropout_probability = torch.rand() + if dropout_probability < self.layerdrop: + continue + + past_key_value = ( + past_key_values[idx] if past_key_values is not None else None + ) + + if self.gradient_checkpointing and self.training: + layer_outputs = self._gradient_checkpointing_func( + decoder_layer.__call__, + hidden_states, + attention_mask, + encoder_hidden_states, + encoder_attention_mask, + head_mask[idx] if head_mask is not None else None, + ( + cross_attn_head_mask[idx] + if cross_attn_head_mask is not None + else None + ), + None, + output_attentions, + use_cache, + ) + else: + layer_outputs = decoder_layer( + hidden_states, + attention_mask=attention_mask, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=encoder_attention_mask, + layer_head_mask=(head_mask[idx] if head_mask is not None else None), + cross_attn_layer_head_mask=( + cross_attn_head_mask[idx] + if cross_attn_head_mask is not None + else None + ), + past_key_value=past_key_value, + output_attentions=output_attentions, + use_cache=use_cache, + ) + hidden_states = layer_outputs[0] + if self.is_export: + next_decoder_cache += (layer_outputs[3 if output_attentions else 1],) + else: + if use_cache: + next_decoder_cache += ( + layer_outputs[3 if output_attentions else 1], + ) + + if output_attentions: + all_self_attns += (layer_outputs[1],) + + if encoder_hidden_states is not None: + all_cross_attentions += (layer_outputs[2],) + + hidden_states = self.layer_norm(hidden_states) + + if output_hidden_states: + all_hidden_states += (hidden_states,) + if self.is_export: + next_cache = next_decoder_cache + else: + next_cache = next_decoder_cache if use_cache else None + if not self.is_export: + if not return_dict: + return tuple( + v + for v in [ + hidden_states, + next_cache, + all_hidden_states, + all_self_attns, + all_cross_attentions, + ] + if v is not None + ) + return BaseModelOutputWithPastAndCrossAttentions( + last_hidden_state=hidden_states, + past_key_values=next_cache, + hidden_states=all_hidden_states, + attentions=all_self_attns, + cross_attentions=all_cross_attentions, + ) + + +class SelfAttentionBlock(nn.Module): + """ + A self-attention block that implements multi-head self-attention + followed by a feed-forward network, typically used in transformer architectures. + + Args: + embed_size (int): The size of the embedding vector. + num_heads (int): The number of attention heads. + is_export (bool): Flag indicating whether to configure the layer for export. + """ + + def __init__(self, embed_size, num_heads, is_export): + super(SelfAttentionBlock, self).__init__() + self.self_attention = MyMultiheadAttention( + embed_dim=embed_size, num_heads=num_heads, is_export=is_export + ) + self.norm = nn.LayerNorm(embed_size) + + def forward(self, x): + attn_output, _ = self.self_attention(x, x, x) + x = self.norm(attn_output + x) + return x + + +class SeqCountingDecoder(nn.Module): + """ + A custom sequence counting decoder that incorporates multi-head attention layers + and feed-forward networks to process sequences, potentially for latex code counting . + + Args: + in_features (int): The number of input features. + out_features (int): The number of output features. + num_heads (int): The number of attention heads. Defaults to 8. + num_layers (int): The number of attention layers. Defaults to 4. + is_export (bool): Flag indicating whether to configure the layer for export. + """ + + def __init__( + self, in_features, out_features, num_heads=8, num_layers=4, is_export=False + ): + super(SeqCountingDecoder, self).__init__() + + self.attention_blocks = nn.ModuleList( + [ + SelfAttentionBlock( + embed_size=in_features, num_heads=num_heads, is_export=is_export + ) + for i in range(num_layers) + ] + ) + self.fc1 = nn.Linear(in_features, in_features // 2) + self.relu = nn.ReLU() + self.global_avg_pool = nn.AdaptiveAvgPool1d(1) + self.fc2 = nn.Linear(in_features // 2, out_features) + + def forward(self, x): + for block in self.attention_blocks: + x = block(x) + x = self.fc1(x) + x = self.relu(x) + x = x.transpose([0, 2, 1]) + x = self.global_avg_pool(x) + x = x.squeeze(-1) + x = self.fc2(x) + return x + + +class CustomMBartForCausalLM(MBartForCausalLM): + """ + Custom MBart model for causal language modeling with a custom decoder. + + This class extends the MBartForCausalLM by replacing its decoder with a + custom decoder, allowing for additional flexibility and features in the + decoding process. + + Args: + config: The configuration object containing model parameters. + length_aware (bool): A flag to enable or configure length-aware mechanisms. + """ + + def __init__(self, config, length_aware=True): + super().__init__(config) + self.model.decoder = CustomMBartDecoder(config) + self.counting_decoder = SeqCountingDecoder( + config.d_model, config.vocab_size, is_export=config.is_export + ) + self.length_aware = length_aware + + def forward( + self, + input_ids=None, + attention_mask=None, + encoder_hidden_states=None, + encoder_attention_mask=None, + head_mask=None, + cross_attn_head_mask=None, + past_key_values=None, + inputs_embeds=None, + labels=None, + use_cache=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + count_gt=None, + ): + output_attentions = ( + output_attentions + if output_attentions is not None + else self.config.output_attentions + ) + output_hidden_states = ( + output_hidden_states + if output_hidden_states is not None + else self.config.output_hidden_states + ) + return_dict = ( + return_dict if return_dict is not None else self.config.use_return_dict + ) + + if self.length_aware: + count_pred = self.counting_decoder(encoder_hidden_states) + else: + count_pred = None + + outputs = self.model.decoder( + input_ids=input_ids, + attention_mask=attention_mask, + count_pred=count_pred, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=encoder_attention_mask, + head_mask=head_mask, + cross_attn_head_mask=cross_attn_head_mask, + past_key_values=past_key_values, + inputs_embeds=inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + logits = self.lm_head(outputs[0]) + + return CausalLMOutputWithCrossAttentionsAndCounting( + logits=logits, + counting=count_pred, + past_key_values=outputs.past_key_values, + hidden_states=outputs.hidden_states, + attentions=outputs.attentions, + cross_attentions=outputs.cross_attentions, + ) + + +class UniMERNetHead(nn.Module): + """Implementation of UniMERNetHead decoder. + + Args: + max_new_tokens (int): Maximum number of new tokens to generate. + decoder_start_token_id (int): ID of the token that starts the decoding. + temperature (float): Sampling temperature for generation. + do_sample (bool): Whether to use sampling; if False, uses greedy decoding. + top_p (float): Top-p (nucleus) sampling parameter. + in_channels (int): Number of input channels/features. + encoder_hidden_size (int): Hidden size of the encoder. + decoder_hidden_size (int): Hidden size of the decoder. + decoder_ffn_dim (int): Dimension of the decoder's feed-forward network. + decoder_layers (int): Number of layers in the decoder. + is_export (bool): Flag indicating if the model is being prepared for export. + length_aware (bool): Flag to enable length-aware mechanisms. + """ + + def __init__( + self, + max_new_tokens=1536, + decoder_start_token_id=0, + temperature=0.2, + do_sample=False, + top_p=0.95, + in_channels=1024, + encoder_hidden_size=1024, + decoder_hidden_size=1024, + decoder_ffn_dim=4096, + decoder_layers=8, + is_export=False, + length_aware=True, + ): + super().__init__() + mbart_config_dict = { + "activation_dropout": 0.0, + "activation_function": "gelu", + "add_cross_attention": True, + "add_final_layer_norm": True, + "attention_dropout": 0.0, + "bos_token_id": 0, + "classifier_dropout": 0.0, + "d_model": decoder_hidden_size, + "decoder_attention_heads": 16, + "decoder_ffn_dim": decoder_ffn_dim, + "decoder_layerdrop": 0.0, + "decoder_layers": decoder_layers, + "dropout": 0.1, + "encoder_attention_heads": 16, + "encoder_ffn_dim": 4096, + "encoder_layerdrop": 0.0, + "encoder_layers": 12, + "eos_token_id": 2, + "forced_eos_token_id": 2, + "init_std": 0.02, + "is_decoder": True, + "is_encoder_decoder": False, + "output_hidden_states": False, + "max_position_embeddings": max_new_tokens, + "model_type": "mbart", + "num_hidden_layers": 12, + "pad_token_id": 1, + "scale_embedding": True, + "tie_word_embeddings": False, + "transformers_version": "4.40.0", + "use_cache": True, + "use_return_dict": True, + "vocab_size": 50000, + "_attn_implementation": "eager", + "hidden_size": decoder_hidden_size, + "is_export": is_export, + } + + self.max_new_tokens = max_new_tokens + self.decoder_start_token_id = decoder_start_token_id + self.temperature = temperature + self.do_sample = do_sample + self.top_p = top_p + self.max_seq_len = max_new_tokens + self.config_decoder = MBartConfig(**mbart_config_dict) + self.encoder_hidden_size = encoder_hidden_size + self.is_export = self.config_decoder.is_export + self.decoder = CustomMBartForCausalLM( + self.config_decoder, length_aware=length_aware + ) + if self.config_decoder.hidden_size != self.encoder_hidden_size: + self.enc_to_dec_proj = nn.Linear( + self.encoder_hidden_size, self.config_decoder.hidden_size + ) + generation_config = { + "max_length": 1537, + "forced_eos_token_id": 2, + } + self.eos_token_id = generation_config["forced_eos_token_id"] + self.pad_token_id = self.config_decoder.pad_token_id + self.logits_processor = LogitsProcessorList() + self.logits_processor.append( + ForcedEOSTokenLogitsProcessor( + generation_config["max_length"], + generation_config["forced_eos_token_id"], + ) + ) + + def _get_decoder_start_token_id( + self, decoder_start_token_id=None, bos_token_id=None + ) -> int: + decoder_start_token_id = ( + decoder_start_token_id + if decoder_start_token_id is not None + else self.generation_config.decoder_start_token_id + ) + bos_token_id = ( + bos_token_id + if bos_token_id is not None + else self.generation_config.bos_token_id + ) + if decoder_start_token_id is not None: + return decoder_start_token_id + elif bos_token_id is not None: + return bos_token_id + raise ValueError( + "`decoder_start_token_id` or `bos_token_id` has to be defined for encoder-decoder generation." + ) + + def _prepare_decoder_input_ids_for_generation( + self, + batch_size, + model_kwargs, + decoder_start_token_id=None, + bos_token_id=None, + ): + if model_kwargs is not None and "decoder_input_ids" in model_kwargs: + decoder_input_ids = model_kwargs.pop("decoder_input_ids") + elif "input_ids" in model_kwargs: + decoder_input_ids = model_kwargs.pop("input_ids") + else: + decoder_input_ids = None + + decoder_start_token_id = self._get_decoder_start_token_id( + decoder_start_token_id, bos_token_id + ) + + if isinstance(decoder_start_token_id, list): + if len(decoder_start_token_id) != batch_size: + raise ValueError( + f"`decoder_start_token_id` expected to have length {batch_size} but got {len(decoder_start_token_id)}" + ) + decoder_input_ids_start = torch.LongTensor(decoder_start_token_id) + decoder_input_ids_start = decoder_input_ids_start.view(-1, 1) + else: + decoder_input_ids_start = ( + torch.ones( + (batch_size, 1), + dtype=torch.int64, + ) + * decoder_start_token_id + ) + + if decoder_input_ids is None: + decoder_input_ids = decoder_input_ids_start + elif ( + self.config.model_type == "vision-encoder-decoder" + and "donut" in self.name_or_path.lower() + ): + pass + elif self.config.model_type in ["whisper"]: + pass + elif ( + isinstance(decoder_start_token_id, int) + and (decoder_input_ids[:, 0] != decoder_start_token_id).all().item() + ) or ( + isinstance(decoder_start_token_id, torch.Tensor) + and (decoder_input_ids[:, 0] != decoder_start_token_id[:, 0]).all().item() + ): + decoder_input_ids = torch.concat( + [decoder_input_ids_start, decoder_input_ids], dim=-1 + ) + if "decoder_attention_mask" in model_kwargs: + decoder_attention_mask = model_kwargs["decoder_attention_mask"] + decoder_attention_mask = torch.cat( + ( + torch.ones_like(decoder_attention_mask)[:, :1], + decoder_attention_mask, + ), + dim=-1, + ) + model_kwargs["decoder_attention_mask"] = decoder_attention_mask + + return decoder_input_ids, model_kwargs + + def prepare_inputs_for_generation_mbart( + self, + input_ids, + past_key_values=None, + attention_mask=None, + use_cache=None, + **kwargs, + ): + + if attention_mask is None: + attention_mask = torch.ones(input_ids.shape) + + if past_key_values: + past_length = past_key_values[0][0].shape[2] + + if input_ids.shape[1] > past_length: + remove_prefix_length = past_length + else: + remove_prefix_length = input_ids.shape[1] - 1 + + input_ids = input_ids[:, remove_prefix_length:] + return { + "input_ids": input_ids, + "attention_mask": attention_mask, + "past_key_values": past_key_values, + "use_cache": use_cache, + } + + def prepare_inputs_for_generation( + self, + input_ids, + past_key_values=None, + attention_mask=None, + use_cache=None, + encoder_outputs=None, + **kwargs, + ): + decoder_inputs = self.prepare_inputs_for_generation_mbart( + input_ids, past_key_values=past_key_values + ) + decoder_attention_mask = ( + decoder_inputs["attention_mask"] + if "attention_mask" in decoder_inputs + else None + ) + input_dict = { + "attention_mask": attention_mask, + "decoder_attention_mask": decoder_attention_mask, + "decoder_input_ids": decoder_inputs["input_ids"], + "encoder_outputs": encoder_outputs, + "past_key_values": decoder_inputs["past_key_values"], + "use_cache": use_cache, + } + return input_dict + + def prepare_inputs_for_generation_export( + self, + past_key_values=None, + attention_mask=None, + use_cache=None, + encoder_outputs=None, + **kwargs, + ): + + input_dict = { + "decoder_attention_mask": None, + "use_cache": use_cache, + } + return input_dict + + def _extract_past_from_model_output( + self, outputs: ModelOutput, standardize_cache_format: bool = False + ): + past_key_values = None + if "past_key_values" in outputs: + past_key_values = outputs.past_key_values + elif "mems" in outputs: + past_key_values = outputs.mems + elif "past_buckets_states" in outputs: + past_key_values = outputs.past_buckets_states + + return past_key_values + + def _update_model_kwargs_for_generation( + self, + outputs: ModelOutput, + model_kwargs: Dict[str, Any], + is_encoder_decoder: bool = False, + standardize_cache_format: bool = False, + ) -> Dict[str, Any]: + model_kwargs["past_key_values"] = self._extract_past_from_model_output( + outputs, standardize_cache_format=standardize_cache_format + ) + if getattr(outputs, "state", None) is not None: + model_kwargs["state"] = outputs.state + + if "token_type_ids" in model_kwargs: + token_type_ids = model_kwargs["token_type_ids"] + model_kwargs["token_type_ids"] = torch.concat( + [token_type_ids, token_type_ids[:, -1].unsqueeze(-1)], dim=-1 + ) + + if not is_encoder_decoder: + if "attention_mask" in model_kwargs: + attention_mask = model_kwargs["attention_mask"] + model_kwargs["attention_mask"] = torch.concat( + [ + attention_mask, + attention_mask.new_ones((attention_mask.shape[0], 1)), + ], + dim=-1, + ) + else: + if "decoder_attention_mask" in model_kwargs: + decoder_attention_mask = model_kwargs["decoder_attention_mask"] + model_kwargs["decoder_attention_mask"] = torch.concat( + [ + decoder_attention_mask, + decoder_attention_mask.new_ones( + (decoder_attention_mask.shape[0], 1) + ), + ], + dim=-1, + ) + + if ( + "cache_position" in model_kwargs + and model_kwargs["cache_position"] is not None + ): + model_kwargs["cache_position"] = model_kwargs["cache_position"][-1:] + 1 + + return model_kwargs + + def stopping_criteria(self, input_ids): + if self.is_export: + return input_ids[:, -1] == torch.Tensor([self.eos_token_id]) + is_done = torch.isin(input_ids[:, -1], torch.Tensor([self.eos_token_id])) + return is_done + + def generate_single_iter( + self, + decoder_input_ids=None, + decoder_attention_mask=None, + encoder_outputs=None, + past_key_values=None, + decoder_inputs_embeds=None, + labels=None, + use_cache=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + **kwargs, + ): + encoder_hidden_states = encoder_outputs[0] + if self.config_decoder.hidden_size != self.encoder_hidden_size: + encoder_hidden_states = self.enc_to_dec_proj(encoder_hidden_states) + kwargs_decoder = {} + + decoder_outputs = self.decoder( + input_ids=decoder_input_ids, + attention_mask=decoder_attention_mask, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=None, + inputs_embeds=None, + output_attentions=False, + output_hidden_states=output_hidden_states, + use_cache=use_cache, + past_key_values=past_key_values, + return_dict=return_dict, + **kwargs_decoder, + ) + + return Seq2SeqLMOutput( + loss=None, + logits=decoder_outputs.logits, + past_key_values=decoder_outputs.past_key_values, + decoder_hidden_states=decoder_outputs.hidden_states, + decoder_attentions=decoder_outputs.attentions, + cross_attentions=decoder_outputs.cross_attentions, + encoder_last_hidden_state=encoder_outputs.last_hidden_state, + encoder_hidden_states=encoder_outputs.hidden_states, + encoder_attentions=encoder_outputs.attentions, + ) + + @torch.no_grad() + def generate( + self, + model_kwargs, + ): + """ + Generate sequences using the UniMERNetHead for inference tasks. + + Args: + model_kwargs (dict): A dictionary of model configurations and inputs, which typically include: + - encoder_outputs: Outputs from the encoder. + - use_cache: Boolean flag to indicate if caching should be used. + - output_attentions: Boolean flag for outputting attention scores. + - output_hidden_states: Boolean flag for outputting hidden states. + + Returns: + A tensor containing the generated sequences. + """ + batch_size = model_kwargs["encoder_outputs"]["last_hidden_state"].shape[0] + generation_config = { + "decoder_start_token_id": 0, + "bos_token_id": 0, + } + input_ids, model_kwargs = self._prepare_decoder_input_ids_for_generation( + batch_size=batch_size, + model_kwargs=model_kwargs, + decoder_start_token_id=generation_config["decoder_start_token_id"], + bos_token_id=generation_config["bos_token_id"], + ) + model_kwargs["key use_cache"] = True + batch_size, cur_len = input_ids.shape + + if "inputs_embeds" in model_kwargs: + cur_len = model_kwargs["inputs_embeds"].shape[1] + model_kwargs["cache_position"] = torch.arange(cur_len) + pad_token_id = self.pad_token_id + eos_token_id = [self.eos_token_id] + eos_token = self.eos_token_id + unfinished_sequences = torch.ones(batch_size, dtype=torch.int64) + for idx in range(self.max_seq_len): + model_inputs = self.prepare_inputs_for_generation(input_ids, **model_kwargs) + outputs = self.generate_single_iter( + **model_inputs, + return_dict=True, + output_attentions=False, + output_hidden_states=False, + ) + next_token_logits = outputs.logits[:, -1, :] + + next_tokens_scores = self.logits_processor(input_ids, next_token_logits) + next_tokens = torch.argmax(next_tokens_scores, dim=-1) + if eos_token_id is not None: + if pad_token_id is None: + raise ValueError( + "If `eos_token_id` is defined, make sure that `pad_token_id` is defined." + ) + next_tokens = next_tokens * unfinished_sequences + pad_token_id * ( + 1 - unfinished_sequences + ) + input_ids = torch.concat([input_ids, next_tokens[:, None]], dim=-1) + model_kwargs = self._update_model_kwargs_for_generation( + outputs, + model_kwargs, + is_encoder_decoder=self.config_decoder.is_encoder_decoder, + ) + unfinished_sequences = unfinished_sequences & ~self.stopping_criteria( + input_ids + ).to(torch.int64) + + if ( + eos_token is not None + and ( + torch.cumsum((input_ids == eos_token).to(torch.int64), 1)[:, -1] + >= 1 + ).all() + ): + break + + return input_ids + + @torch.no_grad() + def generate_export( + self, + encoder_outputs, + model_kwargs, + ): + batch_size = encoder_outputs["last_hidden_state"].shape[0] + generation_config = { + "decoder_start_token_id": 0, + "bos_token_id": 0, + } + input_ids, model_kwargs = self._prepare_decoder_input_ids_for_generation( + batch_size=batch_size, + model_kwargs=model_kwargs, + decoder_start_token_id=generation_config["decoder_start_token_id"], + bos_token_id=generation_config["bos_token_id"], + ) + input_ids = input_ids.reshape([-1, 1]) + decoder_input_ids = input_ids + model_kwargs["key use_cache"] = True + batch_size, cur_len = input_ids.shape + + if "inputs_embeds" in model_kwargs: + cur_len = model_kwargs["inputs_embeds"].shape[1] + cache_position = torch.arange(cur_len) + pad_token_id = self.pad_token_id + eos_token_id = [self.eos_token_id] + eos_token = self.eos_token_id + unfinished_sequences = torch.ones([batch_size], dtype=torch.int64) + i_idx = torch.full([], 0) + past_key_values = [] + for i in range(8): + init_arr = torch.zeros([batch_size, 16, 0, 64]) + cache = (init_arr, init_arr, init_arr, init_arr) + past_key_values.append(cache) + idx = 0 + while i_idx < torch.Tensor(self.max_seq_len): + + model_inputs = self.prepare_inputs_for_generation_export( + past_key_values=past_key_values, **model_kwargs + ) + decoder_attention_mask = model_inputs["decoder_attention_mask"] + decoder_attention_mask = torch.ones(input_ids.shape) + + outputs = self.generate_single_iter( + decoder_input_ids=decoder_input_ids, + decoder_attention_mask=decoder_attention_mask, + encoder_outputs=encoder_outputs, + past_key_values=past_key_values, + return_dict=True, + output_attentions=False, + output_hidden_states=False, + ) + + next_token_logits = outputs.logits[:, -1, :] + + next_tokens_scores = self.logits_processor(input_ids, next_token_logits) + next_tokens = torch.argmax(next_tokens_scores, dim=-1) + if eos_token_id is not None: + next_tokens = next_tokens * unfinished_sequences + pad_token_id * ( + 1 - unfinished_sequences + ) + input_ids = torch.concat([input_ids, next_tokens.unsqueeze(1)], dim=-1) + past_length = past_key_values[0][0].shape[2] + decoder_input_ids = next_tokens.unsqueeze(1) + past_key_values = outputs.past_key_values + cache_position = cache_position[-1:] + 1 + unfinished_sequences = unfinished_sequences & ~self.stopping_criteria( + input_ids + ).to(torch.int64) + if ( + eos_token is not None + and ( + torch.cumsum((input_ids == eos_token).to(torch.int64), 1)[:, -1] + >= 1 + ).all() + ): + break + + i_idx += 1 + return input_ids + + def forwad_train( + self, + encoder_outputs, + decoder_input_ids, + decoder_attention_mask, + past_key_values=None, + decoder_inputs_embeds=None, + labels=None, + use_cache=None, + output_attentions=None, + output_hidden_states=None, + return_dict=None, + **kwargs, + ): + """ + Training for the UniMERNetHead. + + Args: + encoder_outputs: Outputs from the encoder, used as input to the decoder. + decoder_input_ids: Input IDs for the decoder. + decoder_attention_mask: Attention mask for the decoder inputs. + past_key_values: Cached key/values for faster decoding. + decoder_inputs_embeds: Optional embeddings for the decoder inputs. + labels: Target labels for calculating loss. + use_cache: Whether to use cache during decoding. + output_attentions: Whether to return attention scores. + output_hidden_states: Whether to return hidden states. + return_dict: Whether to return a dictionary of outputs. + **kwargs: Additional keyword arguments. + + Returns: + logits: The raw, unnormalized predictions from the model. + count_pred: Optional prediction related to sequence length or other counts. + masked_labels: The labels used during training, possibly masked. + """ + labels = decoder_input_ids * 1 + labels = labels.masked_fill_(labels == self.pad_token_id, -100) + input_decoder_input_ids = decoder_input_ids[:, :-1] + input_decoder_attention_mask = decoder_attention_mask[:, :-1] + encoder_hidden_states = encoder_outputs[0] + if self.config_decoder.hidden_size != self.encoder_hidden_size: + encoder_hidden_states = self.enc_to_dec_proj(encoder_hidden_states) + kwargs_decoder = {} + decoder_outputs = self.decoder( + input_ids=input_decoder_input_ids, + attention_mask=input_decoder_attention_mask, + encoder_hidden_states=encoder_hidden_states, + encoder_attention_mask=None, + inputs_embeds=None, + output_attentions=False, + output_hidden_states=output_hidden_states, + use_cache=use_cache, + past_key_values=past_key_values, + return_dict=return_dict, + **kwargs_decoder, + ) + + logits = decoder_outputs.logits + count_pred = decoder_outputs.counting + return logits, count_pred, labels + + def forward(self, inputs, targets=None): + """ + Forward pass for the UniMERNetHead, handling both training and inference. + + Args: + inputs: The input data, which can vary based on training or inference. + targets: The target labels, used only during training. + + Returns: + During inference: Returns predicted latex code. + During training: Returns logits, predicted counts, and masked labels. + """ + self.is_export = False if self.training else True + if not self.training: + encoder_outputs = inputs + if self.is_export: + model_kwargs = { + "output_attentions": False, + "output_hidden_states": False, + "use_cache": True, + } + word_pred = self.generate_export(encoder_outputs, model_kwargs) + else: + model_kwargs = { + "output_attentions": False, + "output_hidden_states": False, + "use_cache": True, + "encoder_outputs": encoder_outputs, + } + word_pred = self.generate(model_kwargs) + + return word_pred + + encoder_outputs, tgt_seq, mask = inputs + logits, count_pred, masked_labels = self.forwad_train( + encoder_outputs, tgt_seq, mask + ) + return logits, count_pred, masked_labels diff --git a/mineru/model/utils/pytorchocr/modeling/necks/__init__.py b/mineru/model/utils/pytorchocr/modeling/necks/__init__.py new file mode 100644 index 000000000..bbe85bc6a --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/necks/__init__.py @@ -0,0 +1,29 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +__all__ = ["build_neck"] + + +def build_neck(config): + from .db_fpn import DBFPN, LKPAN, RSEFPN + from .rnn import SequenceEncoder + + support_dict = ["DBFPN", "SequenceEncoder", "RSEFPN", "LKPAN"] + + module_name = config.pop("name") + assert module_name in support_dict, Exception( + "neck only support {}".format(support_dict) + ) + module_class = eval(module_name)(**config) + return module_class diff --git a/mineru/model/utils/pytorchocr/modeling/necks/db_fpn.py b/mineru/model/utils/pytorchocr/modeling/necks/db_fpn.py new file mode 100644 index 000000000..0d65cd476 --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/necks/db_fpn.py @@ -0,0 +1,457 @@ +# Copyright (c) Opendatalab. All rights reserved. +import torch +import torch.nn.functional as F +from torch import nn + +from ..backbones.det_mobilenet_v3 import SEModule +from ..necks.intracl import IntraCLBlock + + +def hard_swish(x, inplace=True): + return x * F.relu6(x + 3.0, inplace=inplace) / 6.0 + + +class DSConv(nn.Module): + def __init__( + self, + in_channels, + out_channels, + kernel_size, + padding, + stride=1, + groups=None, + if_act=True, + act="relu", + **kwargs + ): + super(DSConv, self).__init__() + if groups == None: + groups = in_channels + self.if_act = if_act + self.act = act + self.conv1 = nn.Conv2d( + in_channels=in_channels, + out_channels=in_channels, + kernel_size=kernel_size, + stride=stride, + padding=padding, + groups=groups, + bias=False, + ) + + self.bn1 = nn.BatchNorm2d(in_channels) + + self.conv2 = nn.Conv2d( + in_channels=in_channels, + out_channels=int(in_channels * 4), + kernel_size=1, + stride=1, + bias=False, + ) + + self.bn2 = nn.BatchNorm2d(int(in_channels * 4)) + + self.conv3 = nn.Conv2d( + in_channels=int(in_channels * 4), + out_channels=out_channels, + kernel_size=1, + stride=1, + bias=False, + ) + self._c = [in_channels, out_channels] + if in_channels != out_channels: + self.conv_end = nn.Conv2d( + in_channels=in_channels, + out_channels=out_channels, + kernel_size=1, + stride=1, + bias=False, + ) + + def forward(self, inputs): + x = self.conv1(inputs) + x = self.bn1(x) + + x = self.conv2(x) + x = self.bn2(x) + if self.if_act: + if self.act == "relu": + x = F.relu(x) + elif self.act == "hardswish": + x = hard_swish(x) + else: + print( + "The activation function({}) is selected incorrectly.".format( + self.act + ) + ) + exit() + + x = self.conv3(x) + if self._c[0] != self._c[1]: + x = x + self.conv_end(inputs) + return x + + +class DBFPN(nn.Module): + def __init__(self, in_channels, out_channels, use_asf=False, **kwargs): + super(DBFPN, self).__init__() + self.out_channels = out_channels + self.use_asf = use_asf + + self.in2_conv = nn.Conv2d( + in_channels=in_channels[0], + out_channels=self.out_channels, + kernel_size=1, + bias=False, + ) + self.in3_conv = nn.Conv2d( + in_channels=in_channels[1], + out_channels=self.out_channels, + kernel_size=1, + bias=False, + ) + self.in4_conv = nn.Conv2d( + in_channels=in_channels[2], + out_channels=self.out_channels, + kernel_size=1, + bias=False, + ) + self.in5_conv = nn.Conv2d( + in_channels=in_channels[3], + out_channels=self.out_channels, + kernel_size=1, + bias=False, + ) + self.p5_conv = nn.Conv2d( + in_channels=self.out_channels, + out_channels=self.out_channels // 4, + kernel_size=3, + padding=1, + bias=False, + ) + self.p4_conv = nn.Conv2d( + in_channels=self.out_channels, + out_channels=self.out_channels // 4, + kernel_size=3, + padding=1, + bias=False, + ) + self.p3_conv = nn.Conv2d( + in_channels=self.out_channels, + out_channels=self.out_channels // 4, + kernel_size=3, + padding=1, + bias=False, + ) + self.p2_conv = nn.Conv2d( + in_channels=self.out_channels, + out_channels=self.out_channels // 4, + kernel_size=3, + padding=1, + bias=False, + ) + + if self.use_asf is True: + self.asf = ASFBlock(self.out_channels, self.out_channels // 4) + + def forward(self, x): + c2, c3, c4, c5 = x + + in5 = self.in5_conv(c5) + in4 = self.in4_conv(c4) + in3 = self.in3_conv(c3) + in2 = self.in2_conv(c2) + + out4 = in4 + F.interpolate( + in5, + scale_factor=2, + mode="nearest", + ) # align_mode=1) # 1/16 + out3 = in3 + F.interpolate( + out4, + scale_factor=2, + mode="nearest", + ) # align_mode=1) # 1/8 + out2 = in2 + F.interpolate( + out3, + scale_factor=2, + mode="nearest", + ) # align_mode=1) # 1/4 + + p5 = self.p5_conv(in5) + p4 = self.p4_conv(out4) + p3 = self.p3_conv(out3) + p2 = self.p2_conv(out2) + p5 = F.interpolate( + p5, + scale_factor=8, + mode="nearest", + ) # align_mode=1) + p4 = F.interpolate( + p4, + scale_factor=4, + mode="nearest", + ) # align_mode=1) + p3 = F.interpolate( + p3, + scale_factor=2, + mode="nearest", + ) # align_mode=1) + + fuse = torch.cat([p5, p4, p3, p2], dim=1) + + if self.use_asf is True: + fuse = self.asf(fuse, [p5, p4, p3, p2]) + + return fuse + + +class RSELayer(nn.Module): + def __init__(self, in_channels, out_channels, kernel_size, shortcut=True): + super(RSELayer, self).__init__() + self.out_channels = out_channels + self.in_conv = nn.Conv2d( + in_channels=in_channels, + out_channels=self.out_channels, + kernel_size=kernel_size, + padding=int(kernel_size // 2), + bias=False, + ) + self.se_block = SEModule(self.out_channels) + self.shortcut = shortcut + + def forward(self, ins): + x = self.in_conv(ins) + if self.shortcut: + out = x + self.se_block(x) + else: + out = self.se_block(x) + return out + + +class RSEFPN(nn.Module): + def __init__(self, in_channels, out_channels, shortcut=True, **kwargs): + super(RSEFPN, self).__init__() + self.out_channels = out_channels + self.ins_conv = nn.ModuleList() + self.inp_conv = nn.ModuleList() + self.intracl = False + if "intracl" in kwargs.keys() and kwargs["intracl"] is True: + self.intracl = kwargs["intracl"] + self.incl1 = IntraCLBlock(self.out_channels // 4, reduce_factor=2) + self.incl2 = IntraCLBlock(self.out_channels // 4, reduce_factor=2) + self.incl3 = IntraCLBlock(self.out_channels // 4, reduce_factor=2) + self.incl4 = IntraCLBlock(self.out_channels // 4, reduce_factor=2) + + for i in range(len(in_channels)): + self.ins_conv.append( + RSELayer(in_channels[i], out_channels, kernel_size=1, shortcut=shortcut) + ) + self.inp_conv.append( + RSELayer( + out_channels, out_channels // 4, kernel_size=3, shortcut=shortcut + ) + ) + + def forward(self, x): + c2, c3, c4, c5 = x + + in5 = self.ins_conv[3](c5) + in4 = self.ins_conv[2](c4) + in3 = self.ins_conv[1](c3) + in2 = self.ins_conv[0](c2) + + out4 = in4 + F.interpolate(in5, scale_factor=2, mode="nearest") # 1/16 + out3 = in3 + F.interpolate(out4, scale_factor=2, mode="nearest") # 1/8 + out2 = in2 + F.interpolate(out3, scale_factor=2, mode="nearest") # 1/4 + + p5 = self.inp_conv[3](in5) + p4 = self.inp_conv[2](out4) + p3 = self.inp_conv[1](out3) + p2 = self.inp_conv[0](out2) + + if self.intracl is True: + p5 = self.incl4(p5) + p4 = self.incl3(p4) + p3 = self.incl2(p3) + p2 = self.incl1(p2) + + p5 = F.interpolate(p5, scale_factor=8, mode="nearest") + p4 = F.interpolate(p4, scale_factor=4, mode="nearest") + p3 = F.interpolate(p3, scale_factor=2, mode="nearest") + + fuse = torch.cat([p5, p4, p3, p2], dim=1) + return fuse + + +class LKPAN(nn.Module): + def __init__(self, in_channels, out_channels, mode="large", **kwargs): + super(LKPAN, self).__init__() + self.out_channels = out_channels + + self.ins_conv = nn.ModuleList() + self.inp_conv = nn.ModuleList() + # pan head + self.pan_head_conv = nn.ModuleList() + self.pan_lat_conv = nn.ModuleList() + + if mode.lower() == "lite": + p_layer = DSConv + elif mode.lower() == "large": + p_layer = nn.Conv2d + else: + raise ValueError( + "mode can only be one of ['lite', 'large'], but received {}".format( + mode + ) + ) + + for i in range(len(in_channels)): + self.ins_conv.append( + nn.Conv2d( + in_channels=in_channels[i], + out_channels=self.out_channels, + kernel_size=1, + bias=False, + ) + ) + + self.inp_conv.append( + p_layer( + in_channels=self.out_channels, + out_channels=self.out_channels // 4, + kernel_size=9, + padding=4, + bias=False, + ) + ) + + if i > 0: + self.pan_head_conv.append( + nn.Conv2d( + in_channels=self.out_channels // 4, + out_channels=self.out_channels // 4, + kernel_size=3, + padding=1, + stride=2, + bias=False, + ) + ) + self.pan_lat_conv.append( + p_layer( + in_channels=self.out_channels // 4, + out_channels=self.out_channels // 4, + kernel_size=9, + padding=4, + bias=False, + ) + ) + self.intracl = False + if "intracl" in kwargs.keys() and kwargs["intracl"] is True: + self.intracl = kwargs["intracl"] + self.incl1 = IntraCLBlock(self.out_channels // 4, reduce_factor=2) + self.incl2 = IntraCLBlock(self.out_channels // 4, reduce_factor=2) + self.incl3 = IntraCLBlock(self.out_channels // 4, reduce_factor=2) + self.incl4 = IntraCLBlock(self.out_channels // 4, reduce_factor=2) + + def forward(self, x): + c2, c3, c4, c5 = x + + in5 = self.ins_conv[3](c5) + in4 = self.ins_conv[2](c4) + in3 = self.ins_conv[1](c3) + in2 = self.ins_conv[0](c2) + + out4 = in4 + F.interpolate(in5, scale_factor=2, mode="nearest") # 1/16 + out3 = in3 + F.interpolate(out4, scale_factor=2, mode="nearest") # 1/8 + out2 = in2 + F.interpolate(out3, scale_factor=2, mode="nearest") # 1/4 + + f5 = self.inp_conv[3](in5) + f4 = self.inp_conv[2](out4) + f3 = self.inp_conv[1](out3) + f2 = self.inp_conv[0](out2) + + pan3 = f3 + self.pan_head_conv[0](f2) + pan4 = f4 + self.pan_head_conv[1](pan3) + pan5 = f5 + self.pan_head_conv[2](pan4) + + p2 = self.pan_lat_conv[0](f2) + p3 = self.pan_lat_conv[1](pan3) + p4 = self.pan_lat_conv[2](pan4) + p5 = self.pan_lat_conv[3](pan5) + + if self.intracl is True: + p5 = self.incl4(p5) + p4 = self.incl3(p4) + p3 = self.incl2(p3) + p2 = self.incl1(p2) + + p5 = F.interpolate(p5, scale_factor=8, mode="nearest") + p4 = F.interpolate(p4, scale_factor=4, mode="nearest") + p3 = F.interpolate(p3, scale_factor=2, mode="nearest") + + fuse = torch.cat([p5, p4, p3, p2], dim=1) + return fuse + + +class ASFBlock(nn.Module): + """ + This code is refered from: + https://github.com/MhLiao/DB/blob/master/decoders/feature_attention.py + """ + + def __init__(self, in_channels, inter_channels, out_features_num=4): + """ + Adaptive Scale Fusion (ASF) block of DBNet++ + Args: + in_channels: the number of channels in the input data + inter_channels: the number of middle channels + out_features_num: the number of fused stages + """ + super(ASFBlock, self).__init__() + self.in_channels = in_channels + self.inter_channels = inter_channels + self.out_features_num = out_features_num + self.conv = nn.Conv2d(in_channels, inter_channels, 3, padding=1) + + self.spatial_scale = nn.Sequential( + # Nx1xHxW + nn.Conv2d( + in_channels=1, + out_channels=1, + kernel_size=3, + bias=False, + padding=1, + ), + nn.ReLU(), + nn.Conv2d( + in_channels=1, + out_channels=1, + kernel_size=1, + bias=False, + ), + nn.Sigmoid(), + ) + + self.channel_scale = nn.Sequential( + nn.Conv2d( + in_channels=inter_channels, + out_channels=out_features_num, + kernel_size=1, + bias=False, + ), + nn.Sigmoid(), + ) + + def forward(self, fuse_features, features_list): + fuse_features = self.conv(fuse_features) + spatial_x = torch.mean(fuse_features, dim=1, keepdim=True) + attention_scores = self.spatial_scale(spatial_x) + fuse_features + attention_scores = self.channel_scale(attention_scores) + assert len(features_list) == self.out_features_num + + out_list = [] + for i in range(self.out_features_num): + out_list.append(attention_scores[:, i : i + 1] * features_list[i]) + return torch.cat(out_list, dim=1) diff --git a/mineru/model/utils/pytorchocr/modeling/necks/intracl.py b/mineru/model/utils/pytorchocr/modeling/necks/intracl.py new file mode 100644 index 000000000..4ad639b2c --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/necks/intracl.py @@ -0,0 +1,118 @@ +# Copyright (c) Opendatalab. All rights reserved. +from torch import nn + + +class IntraCLBlock(nn.Module): + def __init__(self, in_channels=96, reduce_factor=4): + super(IntraCLBlock, self).__init__() + self.channels = in_channels + self.rf = reduce_factor + self.conv1x1_reduce_channel = nn.Conv2d( + self.channels, self.channels // self.rf, kernel_size=1, stride=1, padding=0 + ) + self.conv1x1_return_channel = nn.Conv2d( + self.channels // self.rf, self.channels, kernel_size=1, stride=1, padding=0 + ) + + self.v_layer_7x1 = nn.Conv2d( + self.channels // self.rf, + self.channels // self.rf, + kernel_size=(7, 1), + stride=(1, 1), + padding=(3, 0), + ) + self.v_layer_5x1 = nn.Conv2d( + self.channels // self.rf, + self.channels // self.rf, + kernel_size=(5, 1), + stride=(1, 1), + padding=(2, 0), + ) + self.v_layer_3x1 = nn.Conv2d( + self.channels // self.rf, + self.channels // self.rf, + kernel_size=(3, 1), + stride=(1, 1), + padding=(1, 0), + ) + + self.q_layer_1x7 = nn.Conv2d( + self.channels // self.rf, + self.channels // self.rf, + kernel_size=(1, 7), + stride=(1, 1), + padding=(0, 3), + ) + self.q_layer_1x5 = nn.Conv2d( + self.channels // self.rf, + self.channels // self.rf, + kernel_size=(1, 5), + stride=(1, 1), + padding=(0, 2), + ) + self.q_layer_1x3 = nn.Conv2d( + self.channels // self.rf, + self.channels // self.rf, + kernel_size=(1, 3), + stride=(1, 1), + padding=(0, 1), + ) + + # base + self.c_layer_7x7 = nn.Conv2d( + self.channels // self.rf, + self.channels // self.rf, + kernel_size=(7, 7), + stride=(1, 1), + padding=(3, 3), + ) + self.c_layer_5x5 = nn.Conv2d( + self.channels // self.rf, + self.channels // self.rf, + kernel_size=(5, 5), + stride=(1, 1), + padding=(2, 2), + ) + self.c_layer_3x3 = nn.Conv2d( + self.channels // self.rf, + self.channels // self.rf, + kernel_size=(3, 3), + stride=(1, 1), + padding=(1, 1), + ) + + self.bn = nn.BatchNorm2d(self.channels) + self.relu = nn.ReLU() + + def forward(self, x): + x_new = self.conv1x1_reduce_channel(x) + + x_7_c = self.c_layer_7x7(x_new) + x_7_v = self.v_layer_7x1(x_new) + x_7_q = self.q_layer_1x7(x_new) + x_7 = x_7_c + x_7_v + x_7_q + + x_5_c = self.c_layer_5x5(x_7) + x_5_v = self.v_layer_5x1(x_7) + x_5_q = self.q_layer_1x5(x_7) + x_5 = x_5_c + x_5_v + x_5_q + + x_3_c = self.c_layer_3x3(x_5) + x_3_v = self.v_layer_3x1(x_5) + x_3_q = self.q_layer_1x3(x_5) + x_3 = x_3_c + x_3_v + x_3_q + + x_relation = self.conv1x1_return_channel(x_3) + + x_relation = self.bn(x_relation) + x_relation = self.relu(x_relation) + + return x + x_relation + + +def build_intraclblock_list(num_block): + IntraCLBlock_list = nn.ModuleList() + for i in range(num_block): + IntraCLBlock_list.append(IntraCLBlock()) + + return IntraCLBlock_list diff --git a/mineru/model/utils/pytorchocr/modeling/necks/rnn.py b/mineru/model/utils/pytorchocr/modeling/necks/rnn.py new file mode 100644 index 000000000..624a5600a --- /dev/null +++ b/mineru/model/utils/pytorchocr/modeling/necks/rnn.py @@ -0,0 +1,242 @@ +# Copyright (c) Opendatalab. All rights reserved. +import torch +from torch import nn + +from ..backbones.rec_svtrnet import Block, ConvBNLayer + + +class Im2Seq(nn.Module): + def __init__(self, in_channels, **kwargs): + super().__init__() + self.out_channels = in_channels + + def forward(self, x): + B, C, H, W = x.shape + # assert H == 1 + x = x.squeeze(dim=2) + # x = x.transpose([0, 2, 1]) # paddle (NTC)(batch, width, channels) + x = x.permute(0, 2, 1) + return x + + # def forward(self, x): + # B, C, H, W = x.shape + # # 处理四维张量,将空间维度展平为序列 + # if H == 1: + # # 原来的处理逻辑,适用于H=1的情况 + # x = x.squeeze(dim=2) + # x = x.permute(0, 2, 1) # (B, W, C) + # else: + # # 处理H不为1的情况 + # x = x.permute(0, 2, 3, 1) # (B, H, W, C) + # x = x.reshape(B, H * W, C) # (B, H*W, C) + # + # return x + +class EncoderWithRNN_(nn.Module): + def __init__(self, in_channels, hidden_size): + super(EncoderWithRNN_, self).__init__() + self.out_channels = hidden_size * 2 + self.rnn1 = nn.LSTM( + in_channels, + hidden_size, + bidirectional=False, + batch_first=True, + num_layers=2, + ) + self.rnn2 = nn.LSTM( + in_channels, + hidden_size, + bidirectional=False, + batch_first=True, + num_layers=2, + ) + + def forward(self, x): + self.rnn1.flatten_parameters() + self.rnn2.flatten_parameters() + out1, h1 = self.rnn1(x) + out2, h2 = self.rnn2(torch.flip(x, [1])) + return torch.cat([out1, torch.flip(out2, [1])], 2) + + +class EncoderWithRNN(nn.Module): + def __init__(self, in_channels, hidden_size): + super(EncoderWithRNN, self).__init__() + self.out_channels = hidden_size * 2 + self.lstm = nn.LSTM( + in_channels, hidden_size, num_layers=2, batch_first=True, bidirectional=True + ) # batch_first:=True + + def forward(self, x): + x, _ = self.lstm(x) + return x + + +class EncoderWithFC(nn.Module): + def __init__(self, in_channels, hidden_size): + super(EncoderWithFC, self).__init__() + self.out_channels = hidden_size + self.fc = nn.Linear( + in_channels, + hidden_size, + bias=True, + ) + + def forward(self, x): + x = self.fc(x) + return x + + +class EncoderWithSVTR(nn.Module): + def __init__( + self, + in_channels, + dims=64, # XS + depth=2, + hidden_dims=120, + use_guide=False, + num_heads=8, + qkv_bias=True, + mlp_ratio=2.0, + drop_rate=0.1, + kernel_size=[3, 3], + attn_drop_rate=0.1, + drop_path=0.0, + qk_scale=None, + ): + super(EncoderWithSVTR, self).__init__() + self.depth = depth + self.use_guide = use_guide + self.conv1 = ConvBNLayer( + in_channels, + in_channels // 8, + kernel_size=kernel_size, + padding=[kernel_size[0] // 2, kernel_size[1] // 2], + act="swish", + ) + self.conv2 = ConvBNLayer( + in_channels // 8, hidden_dims, kernel_size=1, act="swish" + ) + + self.svtr_block = nn.ModuleList( + [ + Block( + dim=hidden_dims, + num_heads=num_heads, + mixer="Global", + HW=None, + mlp_ratio=mlp_ratio, + qkv_bias=qkv_bias, + qk_scale=qk_scale, + drop=drop_rate, + act_layer="swish", + attn_drop=attn_drop_rate, + drop_path=drop_path, + norm_layer="nn.LayerNorm", + epsilon=1e-05, + prenorm=False, + ) + for i in range(depth) + ] + ) + self.norm = nn.LayerNorm(hidden_dims, eps=1e-6) + self.conv3 = ConvBNLayer(hidden_dims, in_channels, kernel_size=1, act="swish") + # last conv-nxn, the input is concat of input tensor and conv3 output tensor + self.conv4 = ConvBNLayer( + 2 * in_channels, in_channels // 8, padding=1, act="swish" + ) + + self.conv1x1 = ConvBNLayer(in_channels // 8, dims, kernel_size=1, act="swish") + self.out_channels = dims + self.apply(self._init_weights) + + def _init_weights(self, m): + # weight initialization + if isinstance(m, nn.Conv2d): + nn.init.kaiming_normal_(m.weight, mode="fan_out") + if m.bias is not None: + nn.init.zeros_(m.bias) + elif isinstance(m, nn.BatchNorm2d): + nn.init.ones_(m.weight) + nn.init.zeros_(m.bias) + elif isinstance(m, nn.Linear): + nn.init.normal_(m.weight, 0, 0.01) + if m.bias is not None: + nn.init.zeros_(m.bias) + elif isinstance(m, nn.ConvTranspose2d): + nn.init.kaiming_normal_(m.weight, mode="fan_out") + if m.bias is not None: + nn.init.zeros_(m.bias) + elif isinstance(m, nn.LayerNorm): + nn.init.ones_(m.weight) + nn.init.zeros_(m.bias) + + def forward(self, x): + # for use guide + if self.use_guide: + z = x.clone() + z.stop_gradient = True + else: + z = x + # for short cut + h = z + # reduce dim + z = self.conv1(z) + z = self.conv2(z) + # SVTR global block + B, C, H, W = z.shape + z = z.flatten(2).permute(0, 2, 1) + + for blk in self.svtr_block: + z = blk(z) + + z = self.norm(z) + # last stage + z = z.reshape([-1, H, W, C]).permute(0, 3, 1, 2) + z = self.conv3(z) + z = torch.cat((h, z), dim=1) + z = self.conv1x1(self.conv4(z)) + + return z + + +class SequenceEncoder(nn.Module): + def __init__(self, in_channels, encoder_type, hidden_size=48, **kwargs): + super(SequenceEncoder, self).__init__() + self.encoder_reshape = Im2Seq(in_channels) + self.out_channels = self.encoder_reshape.out_channels + self.encoder_type = encoder_type + if encoder_type == "reshape": + self.only_reshape = True + else: + support_encoder_dict = { + "reshape": Im2Seq, + "fc": EncoderWithFC, + "rnn": EncoderWithRNN, + "svtr": EncoderWithSVTR, + } + assert encoder_type in support_encoder_dict, "{} must in {}".format( + encoder_type, support_encoder_dict.keys() + ) + + if encoder_type == "svtr": + self.encoder = support_encoder_dict[encoder_type]( + self.encoder_reshape.out_channels, **kwargs + ) + else: + self.encoder = support_encoder_dict[encoder_type]( + self.encoder_reshape.out_channels, hidden_size + ) + self.out_channels = self.encoder.out_channels + self.only_reshape = False + + def forward(self, x): + if self.encoder_type != "svtr": + x = self.encoder_reshape(x) + if not self.only_reshape: + x = self.encoder(x) + return x + else: + x = self.encoder(x) + x = self.encoder_reshape(x) + return x diff --git a/mineru/model/utils/pytorchocr/postprocess/__init__.py b/mineru/model/utils/pytorchocr/postprocess/__init__.py new file mode 100644 index 000000000..ef709c526 --- /dev/null +++ b/mineru/model/utils/pytorchocr/postprocess/__init__.py @@ -0,0 +1,34 @@ +# Copyright (c) Opendatalab. All rights reserved. + +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function +from __future__ import unicode_literals + +import copy + +__all__ = ['build_post_process'] + + +def build_post_process(config, global_config=None): + from .db_postprocess import DBPostProcess + from .rec_postprocess import CTCLabelDecode, AttnLabelDecode, SRNLabelDecode, TableLabelDecode, \ + NRTRLabelDecode, SARLabelDecode, ViTSTRLabelDecode, RFLLabelDecode + from .cls_postprocess import ClsPostProcess + from .rec_postprocess import CANLabelDecode + + support_dict = [ + 'DBPostProcess', 'CTCLabelDecode', + 'AttnLabelDecode', 'ClsPostProcess', 'SRNLabelDecode', + 'TableLabelDecode', 'NRTRLabelDecode', 'SARLabelDecode', + 'ViTSTRLabelDecode','CANLabelDecode', 'RFLLabelDecode' + ] + + config = copy.deepcopy(config) + module_name = config.pop('name') + if global_config is not None: + config.update(global_config) + assert module_name in support_dict, Exception( + 'post process only support {}, but got {}'.format(support_dict, module_name)) + module_class = eval(module_name)(**config) + return module_class \ No newline at end of file diff --git a/mineru/model/utils/pytorchocr/postprocess/cls_postprocess.py b/mineru/model/utils/pytorchocr/postprocess/cls_postprocess.py new file mode 100644 index 000000000..50a788c6b --- /dev/null +++ b/mineru/model/utils/pytorchocr/postprocess/cls_postprocess.py @@ -0,0 +1,21 @@ +# Copyright (c) Opendatalab. All rights reserved. +import torch + + +class ClsPostProcess(object): + """ Convert between text-label and text-index """ + + def __init__(self, label_list, **kwargs): + super(ClsPostProcess, self).__init__() + self.label_list = label_list + + def __call__(self, preds, label=None, *args, **kwargs): + if isinstance(preds, torch.Tensor): + preds = preds.cpu().numpy() + pred_idxs = preds.argmax(axis=1) + decode_out = [(self.label_list[idx], preds[i, idx]) + for i, idx in enumerate(pred_idxs)] + if label is None: + return decode_out + label = [(self.label_list[idx], 1.0) for idx in label] + return decode_out, label \ No newline at end of file diff --git a/mineru/model/utils/pytorchocr/postprocess/db_postprocess.py b/mineru/model/utils/pytorchocr/postprocess/db_postprocess.py new file mode 100644 index 000000000..a35d5a3a0 --- /dev/null +++ b/mineru/model/utils/pytorchocr/postprocess/db_postprocess.py @@ -0,0 +1,240 @@ +# Copyright (c) Opendatalab. All rights reserved. +""" +This code is refered from: +https://github.com/WenmuZhou/DBNet.pytorch/blob/master/post_processing/seg_detector_representer.py +""" +from __future__ import absolute_import +from __future__ import division +from __future__ import print_function + +import numpy as np +import cv2 +import torch +from shapely.geometry import Polygon +import pyclipper + + +class DBPostProcess(object): + """ + The post process for Differentiable Binarization (DB). + """ + + def __init__(self, + thresh=0.3, + box_thresh=0.7, + max_candidates=1000, + unclip_ratio=2.0, + use_dilation=False, + score_mode="fast", + box_type="quad", + **kwargs): + self.thresh = thresh + self.box_thresh = box_thresh + self.max_candidates = max_candidates + self.unclip_ratio = unclip_ratio + self.min_size = 3 + self.score_mode = score_mode + self.box_type = box_type + assert score_mode in [ + "slow", "fast" + ], "Score mode must be in [slow, fast] but got: {}".format(score_mode) + + self.dilation_kernel = None if not use_dilation else np.array( + [[1, 1], [1, 1]]) + + def polygons_from_bitmap(self, pred, _bitmap, dest_width, dest_height): + """ + _bitmap: single map with shape (1, H, W), + whose values are binarized as {0, 1} + """ + + bitmap = _bitmap + height, width = bitmap.shape + + boxes = [] + scores = [] + + contours, _ = cv2.findContours( + (bitmap * 255).astype(np.uint8), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) + + for contour in contours[:self.max_candidates]: + epsilon = 0.002 * cv2.arcLength(contour, True) + approx = cv2.approxPolyDP(contour, epsilon, True) + points = approx.reshape((-1, 2)) + if points.shape[0] < 4: + continue + + score = self.box_score_fast(pred, points.reshape(-1, 2)) + if self.box_thresh > score: + continue + + if points.shape[0] > 2: + box = self.unclip(points, self.unclip_ratio) + if len(box) > 1: + continue + else: + continue + + box = np.array(box).reshape(-1, 2) + if len(box) == 0: + continue + + _, sside = self.get_mini_boxes(box.reshape((-1, 1, 2))) + if sside < self.min_size + 2: + continue + + box = np.array(box) + box[:, 0] = np.clip( + np.round(box[:, 0] / width * dest_width), 0, dest_width) + box[:, 1] = np.clip( + np.round(box[:, 1] / height * dest_height), 0, dest_height) + boxes.append(box.tolist()) + scores.append(score) + return boxes, scores + + def boxes_from_bitmap(self, pred, _bitmap, dest_width, dest_height): + ''' + _bitmap: single map with shape (1, H, W), + whose values are binarized as {0, 1} + ''' + + bitmap = _bitmap + height, width = bitmap.shape + + outs = cv2.findContours((bitmap * 255).astype(np.uint8), cv2.RETR_LIST, + cv2.CHAIN_APPROX_SIMPLE) + if len(outs) == 3: + img, contours, _ = outs[0], outs[1], outs[2] + elif len(outs) == 2: + contours, _ = outs[0], outs[1] + + num_contours = min(len(contours), self.max_candidates) + + boxes = [] + scores = [] + for index in range(num_contours): + contour = contours[index] + points, sside = self.get_mini_boxes(contour) + if sside < self.min_size: + continue + points = np.array(points) + if self.score_mode == "fast": + score = self.box_score_fast(pred, points.reshape(-1, 2)) + else: + score = self.box_score_slow(pred, contour) + if self.box_thresh > score: + continue + + box = self.unclip(points, self.unclip_ratio) + if len(box) > 1: + continue + box = np.array(box).reshape(-1, 1, 2) + box, sside = self.get_mini_boxes(box) + if sside < self.min_size + 2: + continue + box = np.array(box) + + box[:, 0] = np.clip( + np.round(box[:, 0] / width * dest_width), 0, dest_width) + box[:, 1] = np.clip( + np.round(box[:, 1] / height * dest_height), 0, dest_height) + boxes.append(box.astype(np.int16)) + scores.append(score) + return np.array(boxes, dtype=np.int16), scores + + def unclip(self, box, unclip_ratio): + poly = Polygon(box) + distance = poly.area * unclip_ratio / poly.length + offset = pyclipper.PyclipperOffset() + offset.AddPath(box, pyclipper.JT_ROUND, pyclipper.ET_CLOSEDPOLYGON) + expanded = offset.Execute(distance) + return expanded + + def get_mini_boxes(self, contour): + bounding_box = cv2.minAreaRect(contour) + points = sorted(list(cv2.boxPoints(bounding_box)), key=lambda x: x[0]) + + index_1, index_2, index_3, index_4 = 0, 1, 2, 3 + if points[1][1] > points[0][1]: + index_1 = 0 + index_4 = 1 + else: + index_1 = 1 + index_4 = 0 + if points[3][1] > points[2][1]: + index_2 = 2 + index_3 = 3 + else: + index_2 = 3 + index_3 = 2 + + box = [ + points[index_1], points[index_2], points[index_3], points[index_4] + ] + return box, min(bounding_box[1]) + + def box_score_fast(self, bitmap, _box): + ''' + box_score_fast: use bbox mean score as the mean score + ''' + h, w = bitmap.shape[:2] + box = _box.copy() + xmin = np.clip(np.floor(box[:, 0].min()).astype(np.int if 'int' in np.__dict__ else np.int32), 0, w - 1) + xmax = np.clip(np.ceil(box[:, 0].max()).astype(np.int if 'int' in np.__dict__ else np.int32), 0, w - 1) + ymin = np.clip(np.floor(box[:, 1].min()).astype(np.int if 'int' in np.__dict__ else np.int32), 0, h - 1) + ymax = np.clip(np.ceil(box[:, 1].max()).astype(np.int if 'int' in np.__dict__ else np.int32), 0, h - 1) + + mask = np.zeros((ymax - ymin + 1, xmax - xmin + 1), dtype=np.uint8) + box[:, 0] = box[:, 0] - xmin + box[:, 1] = box[:, 1] - ymin + cv2.fillPoly(mask, box.reshape(1, -1, 2).astype(np.int32), 1) + return cv2.mean(bitmap[ymin:ymax + 1, xmin:xmax + 1], mask)[0] + + def box_score_slow(self, bitmap, contour): + ''' + box_score_slow: use polyon mean score as the mean score + ''' + h, w = bitmap.shape[:2] + contour = contour.copy() + contour = np.reshape(contour, (-1, 2)) + + xmin = np.clip(np.min(contour[:, 0]), 0, w - 1) + xmax = np.clip(np.max(contour[:, 0]), 0, w - 1) + ymin = np.clip(np.min(contour[:, 1]), 0, h - 1) + ymax = np.clip(np.max(contour[:, 1]), 0, h - 1) + + mask = np.zeros((ymax - ymin + 1, xmax - xmin + 1), dtype=np.uint8) + + contour[:, 0] = contour[:, 0] - xmin + contour[:, 1] = contour[:, 1] - ymin + + cv2.fillPoly(mask, contour.reshape(1, -1, 2).astype(np.int32), 1) + return cv2.mean(bitmap[ymin:ymax + 1, xmin:xmax + 1], mask)[0] + + def __call__(self, outs_dict, shape_list): + pred = outs_dict['maps'] + if isinstance(pred, torch.Tensor): + pred = pred.cpu().numpy() + pred = pred[:, 0, :, :] + segmentation = pred > self.thresh + + boxes_batch = [] + for batch_index in range(pred.shape[0]): + src_h, src_w, ratio_h, ratio_w = shape_list[batch_index] + if self.dilation_kernel is not None: + mask = cv2.dilate( + np.array(segmentation[batch_index]).astype(np.uint8), + self.dilation_kernel) + else: + mask = segmentation[batch_index] + if self.box_type == "poly": + boxes, scores = self.polygons_from_bitmap( + pred[batch_index], mask, src_w, src_h) + elif self.box_type == "quad": + boxes, scores = self.boxes_from_bitmap( + pred[batch_index], mask, src_w, src_h) + else: + raise ValueError("box_type can only be one of ['quad', 'poly']") + + boxes_batch.append({'points': boxes}) + return boxes_batch diff --git a/mineru/model/utils/pytorchocr/postprocess/rec_postprocess.py b/mineru/model/utils/pytorchocr/postprocess/rec_postprocess.py new file mode 100644 index 000000000..e4cd4b069 --- /dev/null +++ b/mineru/model/utils/pytorchocr/postprocess/rec_postprocess.py @@ -0,0 +1,790 @@ +# Copyright (c) Opendatalab. All rights reserved. +# copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import re +import numpy as np +import torch + + +class BaseRecLabelDecode(object): + """ Convert between text-label and text-index """ + + def __init__(self, + character_dict_path=None, + use_space_char=False): + + self.beg_str = "sos" + self.end_str = "eos" + self.reverse = False + self.character_str = [] + + if character_dict_path is None: + self.character_str = "0123456789abcdefghijklmnopqrstuvwxyz" + dict_character = list(self.character_str) + else: + with open(character_dict_path, "rb") as fin: + lines = fin.readlines() + for line in lines: + line = line.decode('utf-8').strip("\n").strip("\r\n") + self.character_str.append(line) + if use_space_char: + self.character_str.append(" ") + dict_character = list(self.character_str) + if "arabic" in character_dict_path: + self.reverse = True + + dict_character = self.add_special_char(dict_character) + self.dict = {} + for i, char in enumerate(dict_character): + self.dict[char] = i + self.character = np.array(dict_character) + + def pred_reverse(self, pred): + pred_re = [] + c_current = "" + for c in pred: + if not bool(re.search("[a-zA-Z0-9 :*./%+-]", c)): + if c_current != "": + pred_re.append(c_current) + pred_re.append(c) + c_current = "" + else: + c_current += c + if c_current != "": + pred_re.append(c_current) + + return "".join(pred_re[::-1]) + + def add_special_char(self, dict_character): + return dict_character + + def get_word_info(self, text, selection): + """ + Group the decoded characters and record the corresponding decoded positions. + + Args: + text: the decoded text + selection: the bool array that identifies which columns of features are decoded as non-separated characters + Returns: + word_list: list of the grouped words + word_col_list: list of decoding positions corresponding to each character in the grouped word + state_list: list of marker to identify the type of grouping words, including two types of grouping words: + - 'cn': continuous chinese characters (e.g., 你好啊) + - 'en&num': continuous english characters (e.g., hello), number (e.g., 123, 1.123), or mixed of them connected by '-' (e.g., VGG-16) + The remaining characters in text are treated as separators between groups (e.g., space, '(', ')', etc.). + """ + state = None + word_content = [] + word_col_content = [] + word_list = [] + word_col_list = [] + state_list = [] + valid_col = np.where(selection == True)[0] + + for c_i, char in enumerate(text): + if "\u4e00" <= char <= "\u9fff": + c_state = "cn" + elif bool(re.search("[a-zA-Z0-9]", char)): + c_state = "en&num" + else: + c_state = "splitter" + + if ( + char == "." + and state == "en&num" + and c_i + 1 < len(text) + and bool(re.search("[0-9]", text[c_i + 1])) + ): # grouping floating number + c_state = "en&num" + if ( + char == "-" and state == "en&num" + ): # grouping word with '-', such as 'state-of-the-art' + c_state = "en&num" + + if state == None: + state = c_state + + if state != c_state: + if len(word_content) != 0: + word_list.append(word_content) + word_col_list.append(word_col_content) + state_list.append(state) + word_content = [] + word_col_content = [] + state = c_state + + if state != "splitter": + word_content.append(char) + word_col_content.append(valid_col[c_i]) + + if len(word_content) != 0: + word_list.append(word_content) + word_col_list.append(word_col_content) + state_list.append(state) + + return word_list, word_col_list, state_list + + def decode( + self, + text_index, + text_prob=None, + is_remove_duplicate=False, + return_word_box=False, + ): + """ convert text-index into text-label. """ + result_list = [] + batch_size = text_index.shape[0] + blank_word = self.get_ignored_tokens()[0] + for batch_idx in range(batch_size): + probs = None if text_prob is None else np.array(text_prob[batch_idx]) + sequence = text_index[batch_idx] + + final_mask = sequence != blank_word + if is_remove_duplicate: + duplicate_mask = np.insert(sequence[1:] != sequence[:-1], 0, True) + final_mask &= duplicate_mask + + sequence = sequence[final_mask] + probs = None if probs is None else probs[final_mask] + text = "".join(self.character[sequence]) + + if text_prob is not None and probs is not None and len(probs) > 0: + mean_conf = np.mean(probs) + else: + # 如果没有提供概率或最终结果为空,则默认置信度为1.0 + mean_conf = 1.0 + result_list.append((text, mean_conf)) + return result_list + + def get_ignored_tokens(self): + return [0] # for ctc blank + + +class CTCLabelDecode(BaseRecLabelDecode): + """ Convert between text-label and text-index """ + + def __init__(self, + character_dict_path=None, + use_space_char=False, + **kwargs): + super(CTCLabelDecode, self).__init__(character_dict_path, + use_space_char) + + def __call__(self, preds, label=None, return_word_box=False, *args, **kwargs): + preds_prob, preds_idx = preds.max(axis=2) + text = self.decode( + preds_idx.cpu().numpy(), + preds_prob.float().cpu().numpy(), + is_remove_duplicate=True, + return_word_box=return_word_box, + ) + if return_word_box: + for rec_idx, rec in enumerate(text): + wh_ratio = kwargs["wh_ratio_list"][rec_idx] + max_wh_ratio = kwargs["max_wh_ratio"] + rec[2][0] = rec[2][0] * (wh_ratio / max_wh_ratio) + + if label is None: + return text + label = self.decode(label.cpu().numpy()) + return text, label + + def add_special_char(self, dict_character): + dict_character = ['blank'] + dict_character + return dict_character + + +class NRTRLabelDecode(BaseRecLabelDecode): + """ Convert between text-label and text-index """ + + def __init__(self, character_dict_path=None, use_space_char=True, **kwargs): + super(NRTRLabelDecode, self).__init__(character_dict_path, + use_space_char) + + def __call__(self, preds, label=None, *args, **kwargs): + + if len(preds) == 2: + preds_id = preds[0] + preds_prob = preds[1] + if isinstance(preds_id, torch.Tensor): + preds_id = preds_id.numpy() + if isinstance(preds_prob, torch.Tensor): + preds_prob = preds_prob.numpy() + if preds_id[0][0] == 2: + preds_idx = preds_id[:, 1:] + preds_prob = preds_prob[:, 1:] + else: + preds_idx = preds_id + text = self.decode(preds_idx, preds_prob, is_remove_duplicate=False) + if label is None: + return text + label = self.decode(label[:, 1:]) + else: + if isinstance(preds, torch.Tensor): + preds = preds.numpy() + preds_idx = preds.argmax(axis=2) + preds_prob = preds.max(axis=2) + text = self.decode(preds_idx, preds_prob, is_remove_duplicate=False) + if label is None: + return text + label = self.decode(label[:, 1:]) + return text, label + + def add_special_char(self, dict_character): + dict_character = ['blank', '', '', ''] + dict_character + return dict_character + + def decode(self, text_index, text_prob=None, is_remove_duplicate=False): + """ convert text-index into text-label. """ + result_list = [] + batch_size = len(text_index) + for batch_idx in range(batch_size): + char_list = [] + conf_list = [] + for idx in range(len(text_index[batch_idx])): + try: + char_idx = self.character[int(text_index[batch_idx][idx])] + except: + continue + if char_idx == '
': # end + break + char_list.append(char_idx) + if text_prob is not None: + conf_list.append(text_prob[batch_idx][idx]) + else: + conf_list.append(1) + text = ''.join(char_list) + result_list.append((text.lower(), np.mean(conf_list).tolist())) + return result_list + +class ViTSTRLabelDecode(NRTRLabelDecode): + """ Convert between text-label and text-index """ + + def __init__(self, character_dict_path=None, use_space_char=False, + **kwargs): + super(ViTSTRLabelDecode, self).__init__(character_dict_path, + use_space_char) + + def __call__(self, preds, label=None, *args, **kwargs): + if isinstance(preds, torch.Tensor): + preds = preds[:, 1:].numpy() + else: + preds = preds[:, 1:] + preds_idx = preds.argmax(axis=2) + preds_prob = preds.max(axis=2) + text = self.decode(preds_idx, preds_prob, is_remove_duplicate=False) + if label is None: + return text + label = self.decode(label[:, 1:]) + return text, label + + def add_special_char(self, dict_character): + dict_character = ['', ''] + dict_character + return dict_character + + +class AttnLabelDecode(BaseRecLabelDecode): + """ Convert between text-label and text-index """ + + def __init__(self, + character_dict_path=None, + use_space_char=False, + **kwargs): + super(AttnLabelDecode, self).__init__(character_dict_path, + use_space_char) + + def add_special_char(self, dict_character): + self.beg_str = "sos" + self.end_str = "eos" + dict_character = dict_character + dict_character = [self.beg_str] + dict_character + [self.end_str] + return dict_character + + def decode(self, text_index, text_prob=None, is_remove_duplicate=False): + """ convert text-index into text-label. """ + result_list = [] + ignored_tokens = self.get_ignored_tokens() + [beg_idx, end_idx] = self.get_ignored_tokens() + batch_size = len(text_index) + for batch_idx in range(batch_size): + char_list = [] + conf_list = [] + for idx in range(len(text_index[batch_idx])): + if text_index[batch_idx][idx] in ignored_tokens: + continue + if int(text_index[batch_idx][idx]) == int(end_idx): + break + if is_remove_duplicate: + # only for predict + if idx > 0 and text_index[batch_idx][idx - 1] == text_index[ + batch_idx][idx]: + continue + char_list.append(self.character[int(text_index[batch_idx][ + idx])]) + if text_prob is not None: + conf_list.append(text_prob[batch_idx][idx]) + else: + conf_list.append(1) + text = ''.join(char_list) + result_list.append((text, np.mean(conf_list))) + return result_list + + def __call__(self, preds, label=None, *args, **kwargs): + """ + text = self.decode(text) + if label is None: + return text + else: + label = self.decode(label, is_remove_duplicate=False) + return text, label + """ + if isinstance(preds, torch.Tensor): + preds = preds.cpu().numpy() + + preds_idx = preds.argmax(axis=2) + preds_prob = preds.max(axis=2) + text = self.decode(preds_idx, preds_prob, is_remove_duplicate=False) + if label is None: + return text + label = self.decode(label, is_remove_duplicate=False) + return text, label + + def get_ignored_tokens(self): + beg_idx = self.get_beg_end_flag_idx("beg") + end_idx = self.get_beg_end_flag_idx("end") + return [beg_idx, end_idx] + + def get_beg_end_flag_idx(self, beg_or_end): + if beg_or_end == "beg": + idx = np.array(self.dict[self.beg_str]) + elif beg_or_end == "end": + idx = np.array(self.dict[self.end_str]) + else: + assert False, "unsupport type %s in get_beg_end_flag_idx" \ + % beg_or_end + return idx + + +class RFLLabelDecode(BaseRecLabelDecode): + """ Convert between text-label and text-index """ + + def __init__(self, character_dict_path=None, use_space_char=False, + **kwargs): + super(RFLLabelDecode, self).__init__(character_dict_path, + use_space_char) + + def add_special_char(self, dict_character): + self.beg_str = "sos" + self.end_str = "eos" + dict_character = dict_character + dict_character = [self.beg_str] + dict_character + [self.end_str] + return dict_character + + def decode(self, text_index, text_prob=None, is_remove_duplicate=False): + """ convert text-index into text-label. """ + result_list = [] + ignored_tokens = self.get_ignored_tokens() + [beg_idx, end_idx] = self.get_ignored_tokens() + batch_size = len(text_index) + for batch_idx in range(batch_size): + char_list = [] + conf_list = [] + for idx in range(len(text_index[batch_idx])): + if text_index[batch_idx][idx] in ignored_tokens: + continue + if int(text_index[batch_idx][idx]) == int(end_idx): + break + if is_remove_duplicate: + # only for predict + if idx > 0 and text_index[batch_idx][idx - 1] == text_index[ + batch_idx][idx]: + continue + char_list.append(self.character[int(text_index[batch_idx][ + idx])]) + if text_prob is not None: + conf_list.append(text_prob[batch_idx][idx]) + else: + conf_list.append(1) + text = ''.join(char_list) + result_list.append((text, np.mean(conf_list).tolist())) + return result_list + + def __call__(self, preds, label=None, *args, **kwargs): + # if seq_outputs is not None: + if isinstance(preds, tuple) or isinstance(preds, list): + cnt_outputs, seq_outputs = preds + if isinstance(seq_outputs, torch.Tensor): + seq_outputs = seq_outputs.numpy() + preds_idx = seq_outputs.argmax(axis=2) + preds_prob = seq_outputs.max(axis=2) + text = self.decode(preds_idx, preds_prob, is_remove_duplicate=False) + + if label is None: + return text + label = self.decode(label, is_remove_duplicate=False) + return text, label + + else: + cnt_outputs = preds + if isinstance(cnt_outputs, torch.Tensor): + cnt_outputs = cnt_outputs.numpy() + cnt_length = [] + for lens in cnt_outputs: + length = round(np.sum(lens)) + cnt_length.append(length) + if label is None: + return cnt_length + label = self.decode(label, is_remove_duplicate=False) + length = [len(res[0]) for res in label] + return cnt_length, length + + def get_ignored_tokens(self): + beg_idx = self.get_beg_end_flag_idx("beg") + end_idx = self.get_beg_end_flag_idx("end") + return [beg_idx, end_idx] + + def get_beg_end_flag_idx(self, beg_or_end): + if beg_or_end == "beg": + idx = np.array(self.dict[self.beg_str]) + elif beg_or_end == "end": + idx = np.array(self.dict[self.end_str]) + else: + assert False, "unsupport type %s in get_beg_end_flag_idx" \ + % beg_or_end + return idx + + +class SRNLabelDecode(BaseRecLabelDecode): + """ Convert between text-label and text-index """ + + def __init__(self, + character_dict_path=None, + use_space_char=False, + **kwargs): + self.max_text_length = kwargs.get('max_text_length', 25) + super(SRNLabelDecode, self).__init__(character_dict_path, + use_space_char) + + def __call__(self, preds, label=None, *args, **kwargs): + pred = preds['predict'] + char_num = len(self.character_str) + 2 + if isinstance(pred, torch.Tensor): + pred = pred.numpy() + pred = np.reshape(pred, [-1, char_num]) + + preds_idx = np.argmax(pred, axis=1) + preds_prob = np.max(pred, axis=1) + + preds_idx = np.reshape(preds_idx, [-1, self.max_text_length]) + + preds_prob = np.reshape(preds_prob, [-1, self.max_text_length]) + + text = self.decode(preds_idx, preds_prob) + + if label is None: + text = self.decode(preds_idx, preds_prob, is_remove_duplicate=False) + return text + label = self.decode(label) + return text, label + + def decode(self, text_index, text_prob=None, is_remove_duplicate=False): + """ convert text-index into text-label. """ + result_list = [] + ignored_tokens = self.get_ignored_tokens() + batch_size = len(text_index) + + for batch_idx in range(batch_size): + char_list = [] + conf_list = [] + for idx in range(len(text_index[batch_idx])): + if text_index[batch_idx][idx] in ignored_tokens: + continue + if is_remove_duplicate: + # only for predict + if idx > 0 and text_index[batch_idx][idx - 1] == text_index[ + batch_idx][idx]: + continue + char_list.append(self.character[int(text_index[batch_idx][ + idx])]) + if text_prob is not None: + conf_list.append(text_prob[batch_idx][idx]) + else: + conf_list.append(1) + + text = ''.join(char_list) + result_list.append((text, np.mean(conf_list))) + return result_list + + def add_special_char(self, dict_character): + dict_character = dict_character + [self.beg_str, self.end_str] + return dict_character + + def get_ignored_tokens(self): + beg_idx = self.get_beg_end_flag_idx("beg") + end_idx = self.get_beg_end_flag_idx("end") + return [beg_idx, end_idx] + + def get_beg_end_flag_idx(self, beg_or_end): + if beg_or_end == "beg": + idx = np.array(self.dict[self.beg_str]) + elif beg_or_end == "end": + idx = np.array(self.dict[self.end_str]) + else: + assert False, "unsupport type %s in get_beg_end_flag_idx" \ + % beg_or_end + return idx + + +class TableLabelDecode(object): + """ """ + + def __init__(self, + character_dict_path, + **kwargs): + list_character, list_elem = self.load_char_elem_dict(character_dict_path) + list_character = self.add_special_char(list_character) + list_elem = self.add_special_char(list_elem) + self.dict_character = {} + self.dict_idx_character = {} + for i, char in enumerate(list_character): + self.dict_idx_character[i] = char + self.dict_character[char] = i + self.dict_elem = {} + self.dict_idx_elem = {} + for i, elem in enumerate(list_elem): + self.dict_idx_elem[i] = elem + self.dict_elem[elem] = i + + def load_char_elem_dict(self, character_dict_path): + list_character = [] + list_elem = [] + with open(character_dict_path, "rb") as fin: + lines = fin.readlines() + substr = lines[0].decode('utf-8').strip("\n").strip("\r\n").split("\t") + character_num = int(substr[0]) + elem_num = int(substr[1]) + for cno in range(1, 1 + character_num): + character = lines[cno].decode('utf-8').strip("\n").strip("\r\n") + list_character.append(character) + for eno in range(1 + character_num, 1 + character_num + elem_num): + elem = lines[eno].decode('utf-8').strip("\n").strip("\r\n") + list_elem.append(elem) + return list_character, list_elem + + def add_special_char(self, list_character): + self.beg_str = "sos" + self.end_str = "eos" + list_character = [self.beg_str] + list_character + [self.end_str] + return list_character + + def __call__(self, preds): + structure_probs = preds['structure_probs'] + loc_preds = preds['loc_preds'] + if isinstance(structure_probs,torch.Tensor): + structure_probs = structure_probs.numpy() + if isinstance(loc_preds,torch.Tensor): + loc_preds = loc_preds.numpy() + structure_idx = structure_probs.argmax(axis=2) + structure_probs = structure_probs.max(axis=2) + structure_str, structure_pos, result_score_list, result_elem_idx_list = self.decode(structure_idx, + structure_probs, 'elem') + res_html_code_list = [] + res_loc_list = [] + batch_num = len(structure_str) + for bno in range(batch_num): + res_loc = [] + for sno in range(len(structure_str[bno])): + text = structure_str[bno][sno] + if text in ['', ' 0 and tmp_elem_idx == end_idx: + break + if tmp_elem_idx in ignored_tokens: + continue + + char_list.append(current_dict[tmp_elem_idx]) + elem_pos_list.append(idx) + score_list.append(structure_probs[batch_idx, idx]) + elem_idx_list.append(tmp_elem_idx) + result_list.append(char_list) + result_pos_list.append(elem_pos_list) + result_score_list.append(score_list) + result_elem_idx_list.append(elem_idx_list) + return result_list, result_pos_list, result_score_list, result_elem_idx_list + + def get_ignored_tokens(self, char_or_elem): + beg_idx = self.get_beg_end_flag_idx("beg", char_or_elem) + end_idx = self.get_beg_end_flag_idx("end", char_or_elem) + return [beg_idx, end_idx] + + def get_beg_end_flag_idx(self, beg_or_end, char_or_elem): + if char_or_elem == "char": + if beg_or_end == "beg": + idx = self.dict_character[self.beg_str] + elif beg_or_end == "end": + idx = self.dict_character[self.end_str] + else: + assert False, "Unsupport type %s in get_beg_end_flag_idx of char" \ + % beg_or_end + elif char_or_elem == "elem": + if beg_or_end == "beg": + idx = self.dict_elem[self.beg_str] + elif beg_or_end == "end": + idx = self.dict_elem[self.end_str] + else: + assert False, "Unsupport type %s in get_beg_end_flag_idx of elem" \ + % beg_or_end + else: + assert False, "Unsupport type %s in char_or_elem" \ + % char_or_elem + return idx + + +class SARLabelDecode(BaseRecLabelDecode): + """ Convert between text-label and text-index """ + + def __init__(self, character_dict_path=None, use_space_char=False, + **kwargs): + super(SARLabelDecode, self).__init__(character_dict_path, + use_space_char) + + self.rm_symbol = kwargs.get('rm_symbol', False) + + def add_special_char(self, dict_character): + beg_end_str = "" + unknown_str = "" + padding_str = "" + dict_character = dict_character + [unknown_str] + self.unknown_idx = len(dict_character) - 1 + dict_character = dict_character + [beg_end_str] + self.start_idx = len(dict_character) - 1 + self.end_idx = len(dict_character) - 1 + dict_character = dict_character + [padding_str] + self.padding_idx = len(dict_character) - 1 + return dict_character + + def decode(self, text_index, text_prob=None, is_remove_duplicate=False): + """ convert text-index into text-label. """ + result_list = [] + ignored_tokens = self.get_ignored_tokens() + + batch_size = len(text_index) + for batch_idx in range(batch_size): + char_list = [] + conf_list = [] + for idx in range(len(text_index[batch_idx])): + if text_index[batch_idx][idx] in ignored_tokens: + continue + if int(text_index[batch_idx][idx]) == int(self.end_idx): + if text_prob is None and idx == 0: + continue + else: + break + if is_remove_duplicate: + # only for predict + if idx > 0 and text_index[batch_idx][idx - 1] == text_index[ + batch_idx][idx]: + continue + char_list.append(self.character[int(text_index[batch_idx][ + idx])]) + if text_prob is not None: + conf_list.append(text_prob[batch_idx][idx]) + else: + conf_list.append(1) + text = ''.join(char_list) + if self.rm_symbol: + comp = re.compile('[^A-Z^a-z^0-9^\u4e00-\u9fa5]') + text = text.lower() + text = comp.sub('', text) + result_list.append((text, np.mean(conf_list).tolist())) + return result_list + + def __call__(self, preds, label=None, *args, **kwargs): + if isinstance(preds, torch.Tensor): + preds = preds.cpu().numpy() + preds_idx = preds.argmax(axis=2) + preds_prob = preds.max(axis=2) + + text = self.decode(preds_idx, preds_prob, is_remove_duplicate=False) + + if label is None: + return text + label = self.decode(label, is_remove_duplicate=False) + return text, label + + def get_ignored_tokens(self): + return [self.padding_idx] + + +class CANLabelDecode(BaseRecLabelDecode): + """ Convert between latex-symbol and symbol-index """ + + def __init__(self, character_dict_path=None, use_space_char=False, + **kwargs): + super(CANLabelDecode, self).__init__(character_dict_path, + use_space_char) + + def decode(self, text_index, preds_prob=None): + result_list = [] + batch_size = len(text_index) + for batch_idx in range(batch_size): + seq_end = text_index[batch_idx].argmin(0) + idx_list = text_index[batch_idx][:seq_end].tolist() + symbol_list = [self.character[idx] for idx in idx_list] + probs = [] + if preds_prob is not None: + probs = preds_prob[batch_idx][:len(symbol_list)].tolist() + + result_list.append([' '.join(symbol_list), probs]) + return result_list + + def __call__(self, preds, label=None, *args, **kwargs): + pred_prob, _, _, _ = preds + preds_idx = pred_prob.argmax(axis=2) + + text = self.decode(preds_idx) + if label is None: + return text + label = self.decode(label) + return text, label \ No newline at end of file diff --git a/mineru/model/utils/pytorchocr/utils/__init__.py b/mineru/model/utils/pytorchocr/utils/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/utils/pytorchocr/utils/resources/arch_config.yaml b/mineru/model/utils/pytorchocr/utils/resources/arch_config.yaml new file mode 100644 index 000000000..4cb03464a --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/arch_config.yaml @@ -0,0 +1,544 @@ +ch_ptocr_mobile_v2.0_cls_infer: + model_type: cls + algorithm: CLS + Transform: + Backbone: + name: MobileNetV3 + scale: 0.35 + model_name: small + Neck: + Head: + name: ClsHead + class_dim: 2 + +Multilingual_PP-OCRv3_det_infer: + model_type: det + algorithm: DB + Transform: + Backbone: + name: MobileNetV3 + scale: 0.5 + model_name: large + disable_se: True + Neck: + name: RSEFPN + out_channels: 96 + shortcut: True + Head: + name: DBHead + k: 50 + +seal_PP-OCRv4_det_infer: + model_type: det + algorithm: DB + Transform: null + Backbone: + name: PPLCNetV3 + scale: 0.75 + det: True + Neck: + name: RSEFPN + out_channels: 96 + shortcut: True + Head: + name: DBHead + k: 50 + +seal_PP-OCRv4_det_server_infer: + model_type: det + algorithm: DB + Transform: null + Backbone: + name: PPHGNet_small + det: True + Neck: + name: LKPAN + out_channels: 256 + intracl: true + Head: + name: PFHeadLocal + k: 50 + mode: "large" + +ch_PP-OCRv5_det_infer: + model_type: det + algorithm: DB + Transform: null + Backbone: + name: PPLCNetV3 + scale: 0.75 + det: True + Neck: + name: RSEFPN + out_channels: 96 + shortcut: True + Head: + name: DBHead + k: 50 + +ch_PP-OCRv5_det_server_infer: + model_type: det + algorithm: DB + Transform: null + Backbone: + name: PPHGNetV2_B4 + det: True + Neck: + name: LKPAN + out_channels: 256 + intracl: True + Head: + name: PFHeadLocal + k: 50 + mode: "large" + +ch_PP-OCRv4_det_server_infer: + model_type: det + algorithm: DB + Transform: null + Backbone: + name: PPHGNet_small + det: True + Neck: + name: LKPAN + out_channels: 256 + intracl: true + Head: + name: PFHeadLocal + k: 50 + mode: "large" + +ch_PP-OCRv4_rec_infer: + model_type: rec + algorithm: SVTR_LCNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 6625 #'blank' + ...(6623) + ' ' + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +ch_PP-OCRv4_rec_server_infer: + model_type: rec + algorithm: SVTR_HGNet + Transform: + Backbone: + name: PPHGNet_small + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 6625 #'blank' + ...(6623) + ' ' + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +ch_PP-OCRv4_rec_server_doc_infer: + model_type: rec + algorithm: SVTR_HGNet + Transform: + Backbone: + name: PPHGNet_small + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 15631 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +ch_PP-OCRv5_rec_server_infer: + model_type: rec + algorithm: SVTR_HGNet + Transform: + Backbone: + name: PPHGNetV2_B4 + text_rec: True + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 18385 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +ch_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_HGNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 18385 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +ka_PP-OCRv3_rec_infer: + model_type: rec + algorithm: SVTR + Transform: + Backbone: + name: MobileNetV1Enhance + scale: 0.5 + last_conv_stride: [ 1, 2 ] + last_pool_type: avg + Neck: + name: SequenceEncoder + encoder_type: svtr + dims: 64 + depth: 2 + hidden_dims: 120 + use_guide: True + Head: + name: CTCHead +# out_channels: 155 + fc_decay: 0.00001 + +korean_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_HGNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 11947 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +latin_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_HGNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 838 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +eslav_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_HGNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 519 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +el_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_LCNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 356 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +th_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_LCNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 526 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +en_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_LCNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 438 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +arabic_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_LCNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 749 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +cyrillic_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_LCNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 852 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +devanagari_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_LCNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 570 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +ta_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_LCNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 515 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 + +te_PP-OCRv5_rec_infer: + model_type: rec + algorithm: SVTR_LCNet + Transform: + Backbone: + name: PPLCNetV3 + scale: 0.95 + Head: + name: MultiHead + out_channels_list: + CTCLabelDecode: 542 + head_list: + - CTCHead: + Neck: + name: svtr + dims: 120 + depth: 2 + hidden_dims: 120 + kernel_size: [ 1, 3 ] + use_guide: True + Head: + fc_decay: 0.00001 + - NRTRHead: + nrtr_dim: 384 + max_text_length: 25 \ No newline at end of file diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ka_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ka_dict.txt new file mode 100644 index 000000000..d506b691b --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ka_dict.txt @@ -0,0 +1,153 @@ +k +a +_ +i +m +g +/ +1 +2 +I +L +S +V +R +C +0 +v +l +6 +4 +8 +. +j +p +ಗ +ು +ಣ +ಪ +ಡ +ಿ +ಸ +ಲ +ಾ +ದ +್ +7 +5 +3 +ವ +ಷ +ಬ +ಹ +ೆ +9 +ಅ +ಳ +ನ +ರ +ಉ +ಕ +ಎ +ೇ +ಂ +ೈ +ೊ +ೀ +ಯ +ೋ +ತ +ಶ +ಭ +ಧ +ಚ +ಜ +ೂ +ಮ +ಒ +ೃ +ಥ +ಇ +ಟ +ಖ +ಆ +ಞ +ಫ +- +ಢ +ಊ +ಓ +ಐ +ಃ +ಘ +ಝ +ೌ +ಠ +ಛ +ಔ +ಏ +ಈ +ಋ +೨ +೦ +೧ +೮ +೯ +೪ +, +೫ +೭ +೩ +೬ +ಙ +s +c +e +n +w +o +u +t +d +E +A +T +B +Z +N +G +O +q +z +r +x +P +K +M +J +U +D +f +F +h +b +W +Y +y +H +X +Q +' +# +& +! +@ +$ +: +% +é +É +( +? ++ + diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocr_keys_v1.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocr_keys_v1.txt new file mode 100644 index 000000000..b75af2130 --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocr_keys_v1.txt @@ -0,0 +1,6623 @@ +' +疗 +绚 +诚 +娇 +溜 +题 +贿 +者 +廖 +更 +纳 +加 +奉 +公 +一 +就 +汴 +计 +与 +路 +房 +原 +妇 +2 +0 +8 +- +7 +其 +> +: +] +, +, +骑 +刈 +全 +消 +昏 +傈 +安 +久 +钟 +嗅 +不 +影 +处 +驽 +蜿 +资 +关 +椤 +地 +瘸 +专 +问 +忖 +票 +嫉 +炎 +韵 +要 +月 +田 +节 +陂 +鄙 +捌 +备 +拳 +伺 +眼 +网 +盎 +大 +傍 +心 +东 +愉 +汇 +蹿 +科 +每 +业 +里 +航 +晏 +字 +平 +录 +先 +1 +3 +彤 +鲶 +产 +稍 +督 +腴 +有 +象 +岳 +注 +绍 +在 +泺 +文 +定 +核 +名 +水 +过 +理 +让 +偷 +率 +等 +这 +发 +” +为 +含 +肥 +酉 +相 +鄱 +七 +编 +猥 +锛 +日 +镀 +蒂 +掰 +倒 +辆 +栾 +栗 +综 +涩 +州 +雌 +滑 +馀 +了 +机 +块 +司 +宰 +甙 +兴 +矽 +抚 +保 +用 +沧 +秩 +如 +收 +息 +滥 +页 +疑 +埠 +! +! +姥 +异 +橹 +钇 +向 +下 +跄 +的 +椴 +沫 +国 +绥 +獠 +报 +开 +民 +蜇 +何 +分 +凇 +长 +讥 +藏 +掏 +施 +羽 +中 +讲 +派 +嘟 +人 +提 +浼 +间 +世 +而 +古 +多 +倪 +唇 +饯 +控 +庚 +首 +赛 +蜓 +味 +断 +制 +觉 +技 +替 +艰 +溢 +潮 +夕 +钺 +外 +摘 +枋 +动 +双 +单 +啮 +户 +枇 +确 +锦 +曜 +杜 +或 +能 +效 +霜 +盒 +然 +侗 +电 +晁 +放 +步 +鹃 +新 +杖 +蜂 +吒 +濂 +瞬 +评 +总 +隍 +对 +独 +合 +也 +是 +府 +青 +天 +诲 +墙 +组 +滴 +级 +邀 +帘 +示 +已 +时 +骸 +仄 +泅 +和 +遨 +店 +雇 +疫 +持 +巍 +踮 +境 +只 +亨 +目 +鉴 +崤 +闲 +体 +泄 +杂 +作 +般 +轰 +化 +解 +迂 +诿 +蛭 +璀 +腾 +告 +版 +服 +省 +师 +小 +规 +程 +线 +海 +办 +引 +二 +桧 +牌 +砺 +洄 +裴 +修 +图 +痫 +胡 +许 +犊 +事 +郛 +基 +柴 +呼 +食 +研 +奶 +律 +蛋 +因 +葆 +察 +戏 +褒 +戒 +再 +李 +骁 +工 +貂 +油 +鹅 +章 +啄 +休 +场 +给 +睡 +纷 +豆 +器 +捎 +说 +敏 +学 +会 +浒 +设 +诊 +格 +廓 +查 +来 +霓 +室 +溆 +¢ +诡 +寥 +焕 +舜 +柒 +狐 +回 +戟 +砾 +厄 +实 +翩 +尿 +五 +入 +径 +惭 +喹 +股 +宇 +篝 +| +; +美 +期 +云 +九 +祺 +扮 +靠 +锝 +槌 +系 +企 +酰 +阊 +暂 +蚕 +忻 +豁 +本 +羹 +执 +条 +钦 +H +獒 +限 +进 +季 +楦 +于 +芘 +玖 +铋 +茯 +未 +答 +粘 +括 +样 +精 +欠 +矢 +甥 +帷 +嵩 +扣 +令 +仔 +风 +皈 +行 +支 +部 +蓉 +刮 +站 +蜡 +救 +钊 +汗 +松 +嫌 +成 +可 +. +鹤 +院 +从 +交 +政 +怕 +活 +调 +球 +局 +验 +髌 +第 +韫 +谗 +串 +到 +圆 +年 +米 +/ +* +友 +忿 +检 +区 +看 +自 +敢 +刃 +个 +兹 +弄 +流 +留 +同 +没 +齿 +星 +聆 +轼 +湖 +什 +三 +建 +蛔 +儿 +椋 +汕 +震 +颧 +鲤 +跟 +力 +情 +璺 +铨 +陪 +务 +指 +族 +训 +滦 +鄣 +濮 +扒 +商 +箱 +十 +召 +慷 +辗 +所 +莞 +管 +护 +臭 +横 +硒 +嗓 +接 +侦 +六 +露 +党 +馋 +驾 +剖 +高 +侬 +妪 +幂 +猗 +绺 +骐 +央 +酐 +孝 +筝 +课 +徇 +缰 +门 +男 +西 +项 +句 +谙 +瞒 +秃 +篇 +教 +碲 +罚 +声 +呐 +景 +前 +富 +嘴 +鳌 +稀 +免 +朋 +啬 +睐 +去 +赈 +鱼 +住 +肩 +愕 +速 +旁 +波 +厅 +健 +茼 +厥 +鲟 +谅 +投 +攸 +炔 +数 +方 +击 +呋 +谈 +绩 +别 +愫 +僚 +躬 +鹧 +胪 +炳 +招 +喇 +膨 +泵 +蹦 +毛 +结 +5 +4 +谱 +识 +陕 +粽 +婚 +拟 +构 +且 +搜 +任 +潘 +比 +郢 +妨 +醪 +陀 +桔 +碘 +扎 +选 +哈 +骷 +楷 +亿 +明 +缆 +脯 +监 +睫 +逻 +婵 +共 +赴 +淝 +凡 +惦 +及 +达 +揖 +谩 +澹 +减 +焰 +蛹 +番 +祁 +柏 +员 +禄 +怡 +峤 +龙 +白 +叽 +生 +闯 +起 +细 +装 +谕 +竟 +聚 +钙 +上 +导 +渊 +按 +艾 +辘 +挡 +耒 +盹 +饪 +臀 +记 +邮 +蕙 +受 +各 +医 +搂 +普 +滇 +朗 +茸 +带 +翻 +酚 +( +光 +堤 +墟 +蔷 +万 +幻 +〓 +瑙 +辈 +昧 +盏 +亘 +蛀 +吉 +铰 +请 +子 +假 +闻 +税 +井 +诩 +哨 +嫂 +好 +面 +琐 +校 +馊 +鬣 +缂 +营 +访 +炖 +占 +农 +缀 +否 +经 +钚 +棵 +趟 +张 +亟 +吏 +茶 +谨 +捻 +论 +迸 +堂 +玉 +信 +吧 +瞠 +乡 +姬 +寺 +咬 +溏 +苄 +皿 +意 +赉 +宝 +尔 +钰 +艺 +特 +唳 +踉 +都 +荣 +倚 +登 +荐 +丧 +奇 +涵 +批 +炭 +近 +符 +傩 +感 +道 +着 +菊 +虹 +仲 +众 +懈 +濯 +颞 +眺 +南 +释 +北 +缝 +标 +既 +茗 +整 +撼 +迤 +贲 +挎 +耱 +拒 +某 +妍 +卫 +哇 +英 +矶 +藩 +治 +他 +元 +领 +膜 +遮 +穗 +蛾 +飞 +荒 +棺 +劫 +么 +市 +火 +温 +拈 +棚 +洼 +转 +果 +奕 +卸 +迪 +伸 +泳 +斗 +邡 +侄 +涨 +屯 +萋 +胭 +氡 +崮 +枞 +惧 +冒 +彩 +斜 +手 +豚 +随 +旭 +淑 +妞 +形 +菌 +吲 +沱 +争 +驯 +歹 +挟 +兆 +柱 +传 +至 +包 +内 +响 +临 +红 +功 +弩 +衡 +寂 +禁 +老 +棍 +耆 +渍 +织 +害 +氵 +渑 +布 +载 +靥 +嗬 +虽 +苹 +咨 +娄 +库 +雉 +榜 +帜 +嘲 +套 +瑚 +亲 +簸 +欧 +边 +6 +腿 +旮 +抛 +吹 +瞳 +得 +镓 +梗 +厨 +继 +漾 +愣 +憨 +士 +策 +窑 +抑 +躯 +襟 +脏 +参 +贸 +言 +干 +绸 +鳄 +穷 +藜 +音 +折 +详 +) +举 +悍 +甸 +癌 +黎 +谴 +死 +罩 +迁 +寒 +驷 +袖 +媒 +蒋 +掘 +模 +纠 +恣 +观 +祖 +蛆 +碍 +位 +稿 +主 +澧 +跌 +筏 +京 +锏 +帝 +贴 +证 +糠 +才 +黄 +鲸 +略 +炯 +饱 +四 +出 +园 +犀 +牧 +容 +汉 +杆 +浈 +汰 +瑷 +造 +虫 +瘩 +怪 +驴 +济 +应 +花 +沣 +谔 +夙 +旅 +价 +矿 +以 +考 +s +u +呦 +晒 +巡 +茅 +准 +肟 +瓴 +詹 +仟 +褂 +译 +桌 +混 +宁 +怦 +郑 +抿 +些 +余 +鄂 +饴 +攒 +珑 +群 +阖 +岔 +琨 +藓 +预 +环 +洮 +岌 +宀 +杲 +瀵 +最 +常 +囡 +周 +踊 +女 +鼓 +袭 +喉 +简 +范 +薯 +遐 +疏 +粱 +黜 +禧 +法 +箔 +斤 +遥 +汝 +奥 +直 +贞 +撑 +置 +绱 +集 +她 +馅 +逗 +钧 +橱 +魉 +[ +恙 +躁 +唤 +9 +旺 +膘 +待 +脾 +惫 +购 +吗 +依 +盲 +度 +瘿 +蠖 +俾 +之 +镗 +拇 +鲵 +厝 +簧 +续 +款 +展 +啃 +表 +剔 +品 +钻 +腭 +损 +清 +锶 +统 +涌 +寸 +滨 +贪 +链 +吠 +冈 +伎 +迥 +咏 +吁 +览 +防 +迅 +失 +汾 +阔 +逵 +绀 +蔑 +列 +川 +凭 +努 +熨 +揪 +利 +俱 +绉 +抢 +鸨 +我 +即 +责 +膦 +易 +毓 +鹊 +刹 +玷 +岿 +空 +嘞 +绊 +排 +术 +估 +锷 +违 +们 +苟 +铜 +播 +肘 +件 +烫 +审 +鲂 +广 +像 +铌 +惰 +铟 +巳 +胍 +鲍 +康 +憧 +色 +恢 +想 +拷 +尤 +疳 +知 +S +Y +F +D +A +峄 +裕 +帮 +握 +搔 +氐 +氘 +难 +墒 +沮 +雨 +叁 +缥 +悴 +藐 +湫 +娟 +苑 +稠 +颛 +簇 +后 +阕 +闭 +蕤 +缚 +怎 +佞 +码 +嘤 +蔡 +痊 +舱 +螯 +帕 +赫 +昵 +升 +烬 +岫 +、 +疵 +蜻 +髁 +蕨 +隶 +烛 +械 +丑 +盂 +梁 +强 +鲛 +由 +拘 +揉 +劭 +龟 +撤 +钩 +呕 +孛 +费 +妻 +漂 +求 +阑 +崖 +秤 +甘 +通 +深 +补 +赃 +坎 +床 +啪 +承 +吼 +量 +暇 +钼 +烨 +阂 +擎 +脱 +逮 +称 +P +神 +属 +矗 +华 +届 +狍 +葑 +汹 +育 +患 +窒 +蛰 +佼 +静 +槎 +运 +鳗 +庆 +逝 +曼 +疱 +克 +代 +官 +此 +麸 +耧 +蚌 +晟 +例 +础 +榛 +副 +测 +唰 +缢 +迹 +灬 +霁 +身 +岁 +赭 +扛 +又 +菡 +乜 +雾 +板 +读 +陷 +徉 +贯 +郁 +虑 +变 +钓 +菜 +圾 +现 +琢 +式 +乐 +维 +渔 +浜 +左 +吾 +脑 +钡 +警 +T +啵 +拴 +偌 +漱 +湿 +硕 +止 +骼 +魄 +积 +燥 +联 +踢 +玛 +则 +窿 +见 +振 +畿 +送 +班 +钽 +您 +赵 +刨 +印 +讨 +踝 +籍 +谡 +舌 +崧 +汽 +蔽 +沪 +酥 +绒 +怖 +财 +帖 +肱 +私 +莎 +勋 +羔 +霸 +励 +哼 +帐 +将 +帅 +渠 +纪 +婴 +娩 +岭 +厘 +滕 +吻 +伤 +坝 +冠 +戊 +隆 +瘁 +介 +涧 +物 +黍 +并 +姗 +奢 +蹑 +掣 +垸 +锴 +命 +箍 +捉 +病 +辖 +琰 +眭 +迩 +艘 +绌 +繁 +寅 +若 +毋 +思 +诉 +类 +诈 +燮 +轲 +酮 +狂 +重 +反 +职 +筱 +县 +委 +磕 +绣 +奖 +晋 +濉 +志 +徽 +肠 +呈 +獐 +坻 +口 +片 +碰 +几 +村 +柿 +劳 +料 +获 +亩 +惕 +晕 +厌 +号 +罢 +池 +正 +鏖 +煨 +家 +棕 +复 +尝 +懋 +蜥 +锅 +岛 +扰 +队 +坠 +瘾 +钬 +@ +卧 +疣 +镇 +譬 +冰 +彷 +频 +黯 +据 +垄 +采 +八 +缪 +瘫 +型 +熹 +砰 +楠 +襁 +箐 +但 +嘶 +绳 +啤 +拍 +盥 +穆 +傲 +洗 +盯 +塘 +怔 +筛 +丿 +台 +恒 +喂 +葛 +永 +¥ +烟 +酒 +桦 +书 +砂 +蚝 +缉 +态 +瀚 +袄 +圳 +轻 +蛛 +超 +榧 +遛 +姒 +奘 +铮 +右 +荽 +望 +偻 +卡 +丶 +氰 +附 +做 +革 +索 +戚 +坨 +桷 +唁 +垅 +榻 +岐 +偎 +坛 +莨 +山 +殊 +微 +骇 +陈 +爨 +推 +嗝 +驹 +澡 +藁 +呤 +卤 +嘻 +糅 +逛 +侵 +郓 +酌 +德 +摇 +※ +鬃 +被 +慨 +殡 +羸 +昌 +泡 +戛 +鞋 +河 +宪 +沿 +玲 +鲨 +翅 +哽 +源 +铅 +语 +照 +邯 +址 +荃 +佬 +顺 +鸳 +町 +霭 +睾 +瓢 +夸 +椁 +晓 +酿 +痈 +咔 +侏 +券 +噎 +湍 +签 +嚷 +离 +午 +尚 +社 +锤 +背 +孟 +使 +浪 +缦 +潍 +鞅 +军 +姹 +驶 +笑 +鳟 +鲁 +》 +孽 +钜 +绿 +洱 +礴 +焯 +椰 +颖 +囔 +乌 +孔 +巴 +互 +性 +椽 +哞 +聘 +昨 +早 +暮 +胶 +炀 +隧 +低 +彗 +昝 +铁 +呓 +氽 +藉 +喔 +癖 +瑗 +姨 +权 +胱 +韦 +堑 +蜜 +酋 +楝 +砝 +毁 +靓 +歙 +锲 +究 +屋 +喳 +骨 +辨 +碑 +武 +鸠 +宫 +辜 +烊 +适 +坡 +殃 +培 +佩 +供 +走 +蜈 +迟 +翼 +况 +姣 +凛 +浔 +吃 +飘 +债 +犟 +金 +促 +苛 +崇 +坂 +莳 +畔 +绂 +兵 +蠕 +斋 +根 +砍 +亢 +欢 +恬 +崔 +剁 +餐 +榫 +快 +扶 +‖ +濒 +缠 +鳜 +当 +彭 +驭 +浦 +篮 +昀 +锆 +秸 +钳 +弋 +娣 +瞑 +夷 +龛 +苫 +拱 +致 +% +嵊 +障 +隐 +弑 +初 +娓 +抉 +汩 +累 +蓖 +" +唬 +助 +苓 +昙 +押 +毙 +破 +城 +郧 +逢 +嚏 +獭 +瞻 +溱 +婿 +赊 +跨 +恼 +璧 +萃 +姻 +貉 +灵 +炉 +密 +氛 +陶 +砸 +谬 +衔 +点 +琛 +沛 +枳 +层 +岱 +诺 +脍 +榈 +埂 +征 +冷 +裁 +打 +蹴 +素 +瘘 +逞 +蛐 +聊 +激 +腱 +萘 +踵 +飒 +蓟 +吆 +取 +咙 +簋 +涓 +矩 +曝 +挺 +揣 +座 +你 +史 +舵 +焱 +尘 +苏 +笈 +脚 +溉 +榨 +诵 +樊 +邓 +焊 +义 +庶 +儋 +蟋 +蒲 +赦 +呷 +杞 +诠 +豪 +还 +试 +颓 +茉 +太 +除 +紫 +逃 +痴 +草 +充 +鳕 +珉 +祗 +墨 +渭 +烩 +蘸 +慕 +璇 +镶 +穴 +嵘 +恶 +骂 +险 +绋 +幕 +碉 +肺 +戳 +刘 +潞 +秣 +纾 +潜 +銮 +洛 +须 +罘 +销 +瘪 +汞 +兮 +屉 +r +林 +厕 +质 +探 +划 +狸 +殚 +善 +煊 +烹 +〒 +锈 +逯 +宸 +辍 +泱 +柚 +袍 +远 +蹋 +嶙 +绝 +峥 +娥 +缍 +雀 +徵 +认 +镱 +谷 += +贩 +勉 +撩 +鄯 +斐 +洋 +非 +祚 +泾 +诒 +饿 +撬 +威 +晷 +搭 +芍 +锥 +笺 +蓦 +候 +琊 +档 +礁 +沼 +卵 +荠 +忑 +朝 +凹 +瑞 +头 +仪 +弧 +孵 +畏 +铆 +突 +衲 +车 +浩 +气 +茂 +悖 +厢 +枕 +酝 +戴 +湾 +邹 +飚 +攘 +锂 +写 +宵 +翁 +岷 +无 +喜 +丈 +挑 +嗟 +绛 +殉 +议 +槽 +具 +醇 +淞 +笃 +郴 +阅 +饼 +底 +壕 +砚 +弈 +询 +缕 +庹 +翟 +零 +筷 +暨 +舟 +闺 +甯 +撞 +麂 +茌 +蔼 +很 +珲 +捕 +棠 +角 +阉 +媛 +娲 +诽 +剿 +尉 +爵 +睬 +韩 +诰 +匣 +危 +糍 +镯 +立 +浏 +阳 +少 +盆 +舔 +擘 +匪 +申 +尬 +铣 +旯 +抖 +赘 +瓯 +居 +ˇ +哮 +游 +锭 +茏 +歌 +坏 +甚 +秒 +舞 +沙 +仗 +劲 +潺 +阿 +燧 +郭 +嗖 +霏 +忠 +材 +奂 +耐 +跺 +砀 +输 +岖 +媳 +氟 +极 +摆 +灿 +今 +扔 +腻 +枝 +奎 +药 +熄 +吨 +话 +q +额 +慑 +嘌 +协 +喀 +壳 +埭 +视 +著 +於 +愧 +陲 +翌 +峁 +颅 +佛 +腹 +聋 +侯 +咎 +叟 +秀 +颇 +存 +较 +罪 +哄 +岗 +扫 +栏 +钾 +羌 +己 +璨 +枭 +霉 +煌 +涸 +衿 +键 +镝 +益 +岢 +奏 +连 +夯 +睿 +冥 +均 +糖 +狞 +蹊 +稻 +爸 +刿 +胥 +煜 +丽 +肿 +璃 +掸 +跚 +灾 +垂 +樾 +濑 +乎 +莲 +窄 +犹 +撮 +战 +馄 +软 +络 +显 +鸢 +胸 +宾 +妲 +恕 +埔 +蝌 +份 +遇 +巧 +瞟 +粒 +恰 +剥 +桡 +博 +讯 +凯 +堇 +阶 +滤 +卖 +斌 +骚 +彬 +兑 +磺 +樱 +舷 +两 +娱 +福 +仃 +差 +找 +桁 +÷ +净 +把 +阴 +污 +戬 +雷 +碓 +蕲 +楚 +罡 +焖 +抽 +妫 +咒 +仑 +闱 +尽 +邑 +菁 +爱 +贷 +沥 +鞑 +牡 +嗉 +崴 +骤 +塌 +嗦 +订 +拮 +滓 +捡 +锻 +次 +坪 +杩 +臃 +箬 +融 +珂 +鹗 +宗 +枚 +降 +鸬 +妯 +阄 +堰 +盐 +毅 +必 +杨 +崃 +俺 +甬 +状 +莘 +货 +耸 +菱 +腼 +铸 +唏 +痤 +孚 +澳 +懒 +溅 +翘 +疙 +杷 +淼 +缙 +骰 +喊 +悉 +砻 +坷 +艇 +赁 +界 +谤 +纣 +宴 +晃 +茹 +归 +饭 +梢 +铡 +街 +抄 +肼 +鬟 +苯 +颂 +撷 +戈 +炒 +咆 +茭 +瘙 +负 +仰 +客 +琉 +铢 +封 +卑 +珥 +椿 +镧 +窨 +鬲 +寿 +御 +袤 +铃 +萎 +砖 +餮 +脒 +裳 +肪 +孕 +嫣 +馗 +嵇 +恳 +氯 +江 +石 +褶 +冢 +祸 +阻 +狈 +羞 +银 +靳 +透 +咳 +叼 +敷 +芷 +啥 +它 +瓤 +兰 +痘 +懊 +逑 +肌 +往 +捺 +坊 +甩 +呻 +〃 +沦 +忘 +膻 +祟 +菅 +剧 +崆 +智 +坯 +臧 +霍 +墅 +攻 +眯 +倘 +拢 +骠 +铐 +庭 +岙 +瓠 +′ +缺 +泥 +迢 +捶 +? +? +郏 +喙 +掷 +沌 +纯 +秘 +种 +听 +绘 +固 +螨 +团 +香 +盗 +妒 +埚 +蓝 +拖 +旱 +荞 +铀 +血 +遏 +汲 +辰 +叩 +拽 +幅 +硬 +惶 +桀 +漠 +措 +泼 +唑 +齐 +肾 +念 +酱 +虚 +屁 +耶 +旗 +砦 +闵 +婉 +馆 +拭 +绅 +韧 +忏 +窝 +醋 +葺 +顾 +辞 +倜 +堆 +辋 +逆 +玟 +贱 +疾 +董 +惘 +倌 +锕 +淘 +嘀 +莽 +俭 +笏 +绑 +鲷 +杈 +择 +蟀 +粥 +嗯 +驰 +逾 +案 +谪 +褓 +胫 +哩 +昕 +颚 +鲢 +绠 +躺 +鹄 +崂 +儒 +俨 +丝 +尕 +泌 +啊 +萸 +彰 +幺 +吟 +骄 +苣 +弦 +脊 +瑰 +〈 +诛 +镁 +析 +闪 +剪 +侧 +哟 +框 +螃 +守 +嬗 +燕 +狭 +铈 +缮 +概 +迳 +痧 +鲲 +俯 +售 +笼 +痣 +扉 +挖 +满 +咋 +援 +邱 +扇 +歪 +便 +玑 +绦 +峡 +蛇 +叨 +〖 +泽 +胃 +斓 +喋 +怂 +坟 +猪 +该 +蚬 +炕 +弥 +赞 +棣 +晔 +娠 +挲 +狡 +创 +疖 +铕 +镭 +稷 +挫 +弭 +啾 +翔 +粉 +履 +苘 +哦 +楼 +秕 +铂 +土 +锣 +瘟 +挣 +栉 +习 +享 +桢 +袅 +磨 +桂 +谦 +延 +坚 +蔚 +噗 +署 +谟 +猬 +钎 +恐 +嬉 +雒 +倦 +衅 +亏 +璩 +睹 +刻 +殿 +王 +算 +雕 +麻 +丘 +柯 +骆 +丸 +塍 +谚 +添 +鲈 +垓 +桎 +蚯 +芥 +予 +飕 +镦 +谌 +窗 +醚 +菀 +亮 +搪 +莺 +蒿 +羁 +足 +J +真 +轶 +悬 +衷 +靛 +翊 +掩 +哒 +炅 +掐 +冼 +妮 +l +谐 +稚 +荆 +擒 +犯 +陵 +虏 +浓 +崽 +刍 +陌 +傻 +孜 +千 +靖 +演 +矜 +钕 +煽 +杰 +酗 +渗 +伞 +栋 +俗 +泫 +戍 +罕 +沾 +疽 +灏 +煦 +芬 +磴 +叱 +阱 +榉 +湃 +蜀 +叉 +醒 +彪 +租 +郡 +篷 +屎 +良 +垢 +隗 +弱 +陨 +峪 +砷 +掴 +颁 +胎 +雯 +绵 +贬 +沐 +撵 +隘 +篙 +暖 +曹 +陡 +栓 +填 +臼 +彦 +瓶 +琪 +潼 +哪 +鸡 +摩 +啦 +俟 +锋 +域 +耻 +蔫 +疯 +纹 +撇 +毒 +绶 +痛 +酯 +忍 +爪 +赳 +歆 +嘹 +辕 +烈 +册 +朴 +钱 +吮 +毯 +癜 +娃 +谀 +邵 +厮 +炽 +璞 +邃 +丐 +追 +词 +瓒 +忆 +轧 +芫 +谯 +喷 +弟 +半 +冕 +裙 +掖 +墉 +绮 +寝 +苔 +势 +顷 +褥 +切 +衮 +君 +佳 +嫒 +蚩 +霞 +佚 +洙 +逊 +镖 +暹 +唛 +& +殒 +顶 +碗 +獗 +轭 +铺 +蛊 +废 +恹 +汨 +崩 +珍 +那 +杵 +曲 +纺 +夏 +薰 +傀 +闳 +淬 +姘 +舀 +拧 +卷 +楂 +恍 +讪 +厩 +寮 +篪 +赓 +乘 +灭 +盅 +鞣 +沟 +慎 +挂 +饺 +鼾 +杳 +树 +缨 +丛 +絮 +娌 +臻 +嗳 +篡 +侩 +述 +衰 +矛 +圈 +蚜 +匕 +筹 +匿 +濞 +晨 +叶 +骋 +郝 +挚 +蚴 +滞 +增 +侍 +描 +瓣 +吖 +嫦 +蟒 +匾 +圣 +赌 +毡 +癞 +恺 +百 +曳 +需 +篓 +肮 +庖 +帏 +卿 +驿 +遗 +蹬 +鬓 +骡 +歉 +芎 +胳 +屐 +禽 +烦 +晌 +寄 +媾 +狄 +翡 +苒 +船 +廉 +终 +痞 +殇 +々 +畦 +饶 +改 +拆 +悻 +萄 +£ +瓿 +乃 +訾 +桅 +匮 +溧 +拥 +纱 +铍 +骗 +蕃 +龋 +缬 +父 +佐 +疚 +栎 +醍 +掳 +蓄 +x +惆 +颜 +鲆 +榆 +〔 +猎 +敌 +暴 +谥 +鲫 +贾 +罗 +玻 +缄 +扦 +芪 +癣 +落 +徒 +臾 +恿 +猩 +托 +邴 +肄 +牵 +春 +陛 +耀 +刊 +拓 +蓓 +邳 +堕 +寇 +枉 +淌 +啡 +湄 +兽 +酷 +萼 +碚 +濠 +萤 +夹 +旬 +戮 +梭 +琥 +椭 +昔 +勺 +蜊 +绐 +晚 +孺 +僵 +宣 +摄 +冽 +旨 +萌 +忙 +蚤 +眉 +噼 +蟑 +付 +契 +瓜 +悼 +颡 +壁 +曾 +窕 +颢 +澎 +仿 +俑 +浑 +嵌 +浣 +乍 +碌 +褪 +乱 +蔟 +隙 +玩 +剐 +葫 +箫 +纲 +围 +伐 +决 +伙 +漩 +瑟 +刑 +肓 +镳 +缓 +蹭 +氨 +皓 +典 +畲 +坍 +铑 +檐 +塑 +洞 +倬 +储 +胴 +淳 +戾 +吐 +灼 +惺 +妙 +毕 +珐 +缈 +虱 +盖 +羰 +鸿 +磅 +谓 +髅 +娴 +苴 +唷 +蚣 +霹 +抨 +贤 +唠 +犬 +誓 +逍 +庠 +逼 +麓 +籼 +釉 +呜 +碧 +秧 +氩 +摔 +霄 +穸 +纨 +辟 +妈 +映 +完 +牛 +缴 +嗷 +炊 +恩 +荔 +茆 +掉 +紊 +慌 +莓 +羟 +阙 +萁 +磐 +另 +蕹 +辱 +鳐 +湮 +吡 +吩 +唐 +睦 +垠 +舒 +圜 +冗 +瞿 +溺 +芾 +囱 +匠 +僳 +汐 +菩 +饬 +漓 +黑 +霰 +浸 +濡 +窥 +毂 +蒡 +兢 +驻 +鹉 +芮 +诙 +迫 +雳 +厂 +忐 +臆 +猴 +鸣 +蚪 +栈 +箕 +羡 +渐 +莆 +捍 +眈 +哓 +趴 +蹼 +埕 +嚣 +骛 +宏 +淄 +斑 +噜 +严 +瑛 +垃 +椎 +诱 +压 +庾 +绞 +焘 +廿 +抡 +迄 +棘 +夫 +纬 +锹 +眨 +瞌 +侠 +脐 +竞 +瀑 +孳 +骧 +遁 +姜 +颦 +荪 +滚 +萦 +伪 +逸 +粳 +爬 +锁 +矣 +役 +趣 +洒 +颔 +诏 +逐 +奸 +甭 +惠 +攀 +蹄 +泛 +尼 +拼 +阮 +鹰 +亚 +颈 +惑 +勒 +〉 +际 +肛 +爷 +刚 +钨 +丰 +养 +冶 +鲽 +辉 +蔻 +画 +覆 +皴 +妊 +麦 +返 +醉 +皂 +擀 +〗 +酶 +凑 +粹 +悟 +诀 +硖 +港 +卜 +z +杀 +涕 +± +舍 +铠 +抵 +弛 +段 +敝 +镐 +奠 +拂 +轴 +跛 +袱 +e +t +沉 +菇 +俎 +薪 +峦 +秭 +蟹 +历 +盟 +菠 +寡 +液 +肢 +喻 +染 +裱 +悱 +抱 +氙 +赤 +捅 +猛 +跑 +氮 +谣 +仁 +尺 +辊 +窍 +烙 +衍 +架 +擦 +倏 +璐 +瑁 +币 +楞 +胖 +夔 +趸 +邛 +惴 +饕 +虔 +蝎 +§ +哉 +贝 +宽 +辫 +炮 +扩 +饲 +籽 +魏 +菟 +锰 +伍 +猝 +末 +琳 +哚 +蛎 +邂 +呀 +姿 +鄞 +却 +歧 +仙 +恸 +椐 +森 +牒 +寤 +袒 +婆 +虢 +雅 +钉 +朵 +贼 +欲 +苞 +寰 +故 +龚 +坭 +嘘 +咫 +礼 +硷 +兀 +睢 +汶 +’ +铲 +烧 +绕 +诃 +浃 +钿 +哺 +柜 +讼 +颊 +璁 +腔 +洽 +咐 +脲 +簌 +筠 +镣 +玮 +鞠 +谁 +兼 +姆 +挥 +梯 +蝴 +谘 +漕 +刷 +躏 +宦 +弼 +b +垌 +劈 +麟 +莉 +揭 +笙 +渎 +仕 +嗤 +仓 +配 +怏 +抬 +错 +泯 +镊 +孰 +猿 +邪 +仍 +秋 +鼬 +壹 +歇 +吵 +炼 +< +尧 +射 +柬 +廷 +胧 +霾 +凳 +隋 +肚 +浮 +梦 +祥 +株 +堵 +退 +L +鹫 +跎 +凶 +毽 +荟 +炫 +栩 +玳 +甜 +沂 +鹿 +顽 +伯 +爹 +赔 +蛴 +徐 +匡 +欣 +狰 +缸 +雹 +蟆 +疤 +默 +沤 +啜 +痂 +衣 +禅 +w +i +h +辽 +葳 +黝 +钗 +停 +沽 +棒 +馨 +颌 +肉 +吴 +硫 +悯 +劾 +娈 +马 +啧 +吊 +悌 +镑 +峭 +帆 +瀣 +涉 +咸 +疸 +滋 +泣 +翦 +拙 +癸 +钥 +蜒 ++ +尾 +庄 +凝 +泉 +婢 +渴 +谊 +乞 +陆 +锉 +糊 +鸦 +淮 +I +B +N +晦 +弗 +乔 +庥 +葡 +尻 +席 +橡 +傣 +渣 +拿 +惩 +麋 +斛 +缃 +矮 +蛏 +岘 +鸽 +姐 +膏 +催 +奔 +镒 +喱 +蠡 +摧 +钯 +胤 +柠 +拐 +璋 +鸥 +卢 +荡 +倾 +^ +_ +珀 +逄 +萧 +塾 +掇 +贮 +笆 +聂 +圃 +冲 +嵬 +M +滔 +笕 +值 +炙 +偶 +蜱 +搐 +梆 +汪 +蔬 +腑 +鸯 +蹇 +敞 +绯 +仨 +祯 +谆 +梧 +糗 +鑫 +啸 +豺 +囹 +猾 +巢 +柄 +瀛 +筑 +踌 +沭 +暗 +苁 +鱿 +蹉 +脂 +蘖 +牢 +热 +木 +吸 +溃 +宠 +序 +泞 +偿 +拜 +檩 +厚 +朐 +毗 +螳 +吞 +媚 +朽 +担 +蝗 +橘 +畴 +祈 +糟 +盱 +隼 +郜 +惜 +珠 +裨 +铵 +焙 +琚 +唯 +咚 +噪 +骊 +丫 +滢 +勤 +棉 +呸 +咣 +淀 +隔 +蕾 +窈 +饨 +挨 +煅 +短 +匙 +粕 +镜 +赣 +撕 +墩 +酬 +馁 +豌 +颐 +抗 +酣 +氓 +佑 +搁 +哭 +递 +耷 +涡 +桃 +贻 +碣 +截 +瘦 +昭 +镌 +蔓 +氚 +甲 +猕 +蕴 +蓬 +散 +拾 +纛 +狼 +猷 +铎 +埋 +旖 +矾 +讳 +囊 +糜 +迈 +粟 +蚂 +紧 +鲳 +瘢 +栽 +稼 +羊 +锄 +斟 +睁 +桥 +瓮 +蹙 +祉 +醺 +鼻 +昱 +剃 +跳 +篱 +跷 +蒜 +翎 +宅 +晖 +嗑 +壑 +峻 +癫 +屏 +狠 +陋 +袜 +途 +憎 +祀 +莹 +滟 +佶 +溥 +臣 +约 +盛 +峰 +磁 +慵 +婪 +拦 +莅 +朕 +鹦 +粲 +裤 +哎 +疡 +嫖 +琵 +窟 +堪 +谛 +嘉 +儡 +鳝 +斩 +郾 +驸 +酊 +妄 +胜 +贺 +徙 +傅 +噌 +钢 +栅 +庇 +恋 +匝 +巯 +邈 +尸 +锚 +粗 +佟 +蛟 +薹 +纵 +蚊 +郅 +绢 +锐 +苗 +俞 +篆 +淆 +膀 +鲜 +煎 +诶 +秽 +寻 +涮 +刺 +怀 +噶 +巨 +褰 +魅 +灶 +灌 +桉 +藕 +谜 +舸 +薄 +搀 +恽 +借 +牯 +痉 +渥 +愿 +亓 +耘 +杠 +柩 +锔 +蚶 +钣 +珈 +喘 +蹒 +幽 +赐 +稗 +晤 +莱 +泔 +扯 +肯 +菪 +裆 +腩 +豉 +疆 +骜 +腐 +倭 +珏 +唔 +粮 +亡 +润 +慰 +伽 +橄 +玄 +誉 +醐 +胆 +龊 +粼 +塬 +陇 +彼 +削 +嗣 +绾 +芽 +妗 +垭 +瘴 +爽 +薏 +寨 +龈 +泠 +弹 +赢 +漪 +猫 +嘧 +涂 +恤 +圭 +茧 +烽 +屑 +痕 +巾 +赖 +荸 +凰 +腮 +畈 +亵 +蹲 +偃 +苇 +澜 +艮 +换 +骺 +烘 +苕 +梓 +颉 +肇 +哗 +悄 +氤 +涠 +葬 +屠 +鹭 +植 +竺 +佯 +诣 +鲇 +瘀 +鲅 +邦 +移 +滁 +冯 +耕 +癔 +戌 +茬 +沁 +巩 +悠 +湘 +洪 +痹 +锟 +循 +谋 +腕 +鳃 +钠 +捞 +焉 +迎 +碱 +伫 +急 +榷 +奈 +邝 +卯 +辄 +皲 +卟 +醛 +畹 +忧 +稳 +雄 +昼 +缩 +阈 +睑 +扌 +耗 +曦 +涅 +捏 +瞧 +邕 +淖 +漉 +铝 +耦 +禹 +湛 +喽 +莼 +琅 +诸 +苎 +纂 +硅 +始 +嗨 +傥 +燃 +臂 +赅 +嘈 +呆 +贵 +屹 +壮 +肋 +亍 +蚀 +卅 +豹 +腆 +邬 +迭 +浊 +} +童 +螂 +捐 +圩 +勐 +触 +寞 +汊 +壤 +荫 +膺 +渌 +芳 +懿 +遴 +螈 +泰 +蓼 +蛤 +茜 +舅 +枫 +朔 +膝 +眙 +避 +梅 +判 +鹜 +璜 +牍 +缅 +垫 +藻 +黔 +侥 +惚 +懂 +踩 +腰 +腈 +札 +丞 +唾 +慈 +顿 +摹 +荻 +琬 +~ +斧 +沈 +滂 +胁 +胀 +幄 +莜 +Z +匀 +鄄 +掌 +绰 +茎 +焚 +赋 +萱 +谑 +汁 +铒 +瞎 +夺 +蜗 +野 +娆 +冀 +弯 +篁 +懵 +灞 +隽 +芡 +脘 +俐 +辩 +芯 +掺 +喏 +膈 +蝈 +觐 +悚 +踹 +蔗 +熠 +鼠 +呵 +抓 +橼 +峨 +畜 +缔 +禾 +崭 +弃 +熊 +摒 +凸 +拗 +穹 +蒙 +抒 +祛 +劝 +闫 +扳 +阵 +醌 +踪 +喵 +侣 +搬 +仅 +荧 +赎 +蝾 +琦 +买 +婧 +瞄 +寓 +皎 +冻 +赝 +箩 +莫 +瞰 +郊 +笫 +姝 +筒 +枪 +遣 +煸 +袋 +舆 +痱 +涛 +母 +〇 +启 +践 +耙 +绲 +盘 +遂 +昊 +搞 +槿 +诬 +纰 +泓 +惨 +檬 +亻 +越 +C +o +憩 +熵 +祷 +钒 +暧 +塔 +阗 +胰 +咄 +娶 +魔 +琶 +钞 +邻 +扬 +杉 +殴 +咽 +弓 +〆 +髻 +】 +吭 +揽 +霆 +拄 +殖 +脆 +彻 +岩 +芝 +勃 +辣 +剌 +钝 +嘎 +甄 +佘 +皖 +伦 +授 +徕 +憔 +挪 +皇 +庞 +稔 +芜 +踏 +溴 +兖 +卒 +擢 +饥 +鳞 +煲 +‰ +账 +颗 +叻 +斯 +捧 +鳍 +琮 +讹 +蛙 +纽 +谭 +酸 +兔 +莒 +睇 +伟 +觑 +羲 +嗜 +宜 +褐 +旎 +辛 +卦 +诘 +筋 +鎏 +溪 +挛 +熔 +阜 +晰 +鳅 +丢 +奚 +灸 +呱 +献 +陉 +黛 +鸪 +甾 +萨 +疮 +拯 +洲 +疹 +辑 +叙 +恻 +谒 +允 +柔 +烂 +氏 +逅 +漆 +拎 +惋 +扈 +湟 +纭 +啕 +掬 +擞 +哥 +忽 +涤 +鸵 +靡 +郗 +瓷 +扁 +廊 +怨 +雏 +钮 +敦 +E +懦 +憋 +汀 +拚 +啉 +腌 +岸 +f +痼 +瞅 +尊 +咀 +眩 +飙 +忌 +仝 +迦 +熬 +毫 +胯 +篑 +茄 +腺 +凄 +舛 +碴 +锵 +诧 +羯 +後 +漏 +汤 +宓 +仞 +蚁 +壶 +谰 +皑 +铄 +棰 +罔 +辅 +晶 +苦 +牟 +闽 +\ +烃 +饮 +聿 +丙 +蛳 +朱 +煤 +涔 +鳖 +犁 +罐 +荼 +砒 +淦 +妤 +黏 +戎 +孑 +婕 +瑾 +戢 +钵 +枣 +捋 +砥 +衩 +狙 +桠 +稣 +阎 +肃 +梏 +诫 +孪 +昶 +婊 +衫 +嗔 +侃 +塞 +蜃 +樵 +峒 +貌 +屿 +欺 +缫 +阐 +栖 +诟 +珞 +荭 +吝 +萍 +嗽 +恂 +啻 +蜴 +磬 +峋 +俸 +豫 +谎 +徊 +镍 +韬 +魇 +晴 +U +囟 +猜 +蛮 +坐 +囿 +伴 +亭 +肝 +佗 +蝠 +妃 +胞 +滩 +榴 +氖 +垩 +苋 +砣 +扪 +馏 +姓 +轩 +厉 +夥 +侈 +禀 +垒 +岑 +赏 +钛 +辐 +痔 +披 +纸 +碳 +“ +坞 +蠓 +挤 +荥 +沅 +悔 +铧 +帼 +蒌 +蝇 +a +p +y +n +g +哀 +浆 +瑶 +凿 +桶 +馈 +皮 +奴 +苜 +佤 +伶 +晗 +铱 +炬 +优 +弊 +氢 +恃 +甫 +攥 +端 +锌 +灰 +稹 +炝 +曙 +邋 +亥 +眶 +碾 +拉 +萝 +绔 +捷 +浍 +腋 +姑 +菖 +凌 +涞 +麽 +锢 +桨 +潢 +绎 +镰 +殆 +锑 +渝 +铬 +困 +绽 +觎 +匈 +糙 +暑 +裹 +鸟 +盔 +肽 +迷 +綦 +『 +亳 +佝 +俘 +钴 +觇 +骥 +仆 +疝 +跪 +婶 +郯 +瀹 +唉 +脖 +踞 +针 +晾 +忒 +扼 +瞩 +叛 +椒 +疟 +嗡 +邗 +肆 +跆 +玫 +忡 +捣 +咧 +唆 +艄 +蘑 +潦 +笛 +阚 +沸 +泻 +掊 +菽 +贫 +斥 +髂 +孢 +镂 +赂 +麝 +鸾 +屡 +衬 +苷 +恪 +叠 +希 +粤 +爻 +喝 +茫 +惬 +郸 +绻 +庸 +撅 +碟 +宄 +妹 +膛 +叮 +饵 +崛 +嗲 +椅 +冤 +搅 +咕 +敛 +尹 +垦 +闷 +蝉 +霎 +勰 +败 +蓑 +泸 +肤 +鹌 +幌 +焦 +浠 +鞍 +刁 +舰 +乙 +竿 +裔 +。 +茵 +函 +伊 +兄 +丨 +娜 +匍 +謇 +莪 +宥 +似 +蝽 +翳 +酪 +翠 +粑 +薇 +祢 +骏 +赠 +叫 +Q +噤 +噻 +竖 +芗 +莠 +潭 +俊 +羿 +耜 +O +郫 +趁 +嗪 +囚 +蹶 +芒 +洁 +笋 +鹑 +敲 +硝 +啶 +堡 +渲 +揩 +』 +携 +宿 +遒 +颍 +扭 +棱 +割 +萜 +蔸 +葵 +琴 +捂 +饰 +衙 +耿 +掠 +募 +岂 +窖 +涟 +蔺 +瘤 +柞 +瞪 +怜 +匹 +距 +楔 +炜 +哆 +秦 +缎 +幼 +茁 +绪 +痨 +恨 +楸 +娅 +瓦 +桩 +雪 +嬴 +伏 +榔 +妥 +铿 +拌 +眠 +雍 +缇 +‘ +卓 +搓 +哌 +觞 +噩 +屈 +哧 +髓 +咦 +巅 +娑 +侑 +淫 +膳 +祝 +勾 +姊 +莴 +胄 +疃 +薛 +蜷 +胛 +巷 +芙 +芋 +熙 +闰 +勿 +窃 +狱 +剩 +钏 +幢 +陟 +铛 +慧 +靴 +耍 +k +浙 +浇 +飨 +惟 +绗 +祜 +澈 +啼 +咪 +磷 +摞 +诅 +郦 +抹 +跃 +壬 +吕 +肖 +琏 +颤 +尴 +剡 +抠 +凋 +赚 +泊 +津 +宕 +殷 +倔 +氲 +漫 +邺 +涎 +怠 +$ +垮 +荬 +遵 +俏 +叹 +噢 +饽 +蜘 +孙 +筵 +疼 +鞭 +羧 +牦 +箭 +潴 +c +眸 +祭 +髯 +啖 +坳 +愁 +芩 +驮 +倡 +巽 +穰 +沃 +胚 +怒 +凤 +槛 +剂 +趵 +嫁 +v +邢 +灯 +鄢 +桐 +睽 +檗 +锯 +槟 +婷 +嵋 +圻 +诗 +蕈 +颠 +遭 +痢 +芸 +怯 +馥 +竭 +锗 +徜 +恭 +遍 +籁 +剑 +嘱 +苡 +龄 +僧 +桑 +潸 +弘 +澶 +楹 +悲 +讫 +愤 +腥 +悸 +谍 +椹 +呢 +桓 +葭 +攫 +阀 +翰 +躲 +敖 +柑 +郎 +笨 +橇 +呃 +魁 +燎 +脓 +葩 +磋 +垛 +玺 +狮 +沓 +砜 +蕊 +锺 +罹 +蕉 +翱 +虐 +闾 +巫 +旦 +茱 +嬷 +枯 +鹏 +贡 +芹 +汛 +矫 +绁 +拣 +禺 +佃 +讣 +舫 +惯 +乳 +趋 +疲 +挽 +岚 +虾 +衾 +蠹 +蹂 +飓 +氦 +铖 +孩 +稞 +瑜 +壅 +掀 +勘 +妓 +畅 +髋 +W +庐 +牲 +蓿 +榕 +练 +垣 +唱 +邸 +菲 +昆 +婺 +穿 +绡 +麒 +蚱 +掂 +愚 +泷 +涪 +漳 +妩 +娉 +榄 +讷 +觅 +旧 +藤 +煮 +呛 +柳 +腓 +叭 +庵 +烷 +阡 +罂 +蜕 +擂 +猖 +咿 +媲 +脉 +【 +沏 +貅 +黠 +熏 +哲 +烁 +坦 +酵 +兜 +× +潇 +撒 +剽 +珩 +圹 +乾 +摸 +樟 +帽 +嗒 +襄 +魂 +轿 +憬 +锡 +〕 +喃 +皆 +咖 +隅 +脸 +残 +泮 +袂 +鹂 +珊 +囤 +捆 +咤 +误 +徨 +闹 +淙 +芊 +淋 +怆 +囗 +拨 +梳 +渤 +R +G +绨 +蚓 +婀 +幡 +狩 +麾 +谢 +唢 +裸 +旌 +伉 +纶 +裂 +驳 +砼 +咛 +澄 +樨 +蹈 +宙 +澍 +倍 +貔 +操 +勇 +蟠 +摈 +砧 +虬 +够 +缁 +悦 +藿 +撸 +艹 +摁 +淹 +豇 +虎 +榭 +ˉ +吱 +d +° +喧 +荀 +踱 +侮 +奋 +偕 +饷 +犍 +惮 +坑 +璎 +徘 +宛 +妆 +袈 +倩 +窦 +昂 +荏 +乖 +K +怅 +撰 +鳙 +牙 +袁 +酞 +X +痿 +琼 +闸 +雁 +趾 +荚 +虻 +涝 +《 +杏 +韭 +偈 +烤 +绫 +鞘 +卉 +症 +遢 +蓥 +诋 +杭 +荨 +匆 +竣 +簪 +辙 +敕 +虞 +丹 +缭 +咩 +黟 +m +淤 +瑕 +咂 +铉 +硼 +茨 +嶂 +痒 +畸 +敬 +涿 +粪 +窘 +熟 +叔 +嫔 +盾 +忱 +裘 +憾 +梵 +赡 +珙 +咯 +娘 +庙 +溯 +胺 +葱 +痪 +摊 +荷 +卞 +乒 +髦 +寐 +铭 +坩 +胗 +枷 +爆 +溟 +嚼 +羚 +砬 +轨 +惊 +挠 +罄 +竽 +菏 +氧 +浅 +楣 +盼 +枢 +炸 +阆 +杯 +谏 +噬 +淇 +渺 +俪 +秆 +墓 +泪 +跻 +砌 +痰 +垡 +渡 +耽 +釜 +讶 +鳎 +煞 +呗 +韶 +舶 +绷 +鹳 +缜 +旷 +铊 +皱 +龌 +檀 +霖 +奄 +槐 +艳 +蝶 +旋 +哝 +赶 +骞 +蚧 +腊 +盈 +丁 +` +蜚 +矸 +蝙 +睨 +嚓 +僻 +鬼 +醴 +夜 +彝 +磊 +笔 +拔 +栀 +糕 +厦 +邰 +纫 +逭 +纤 +眦 +膊 +馍 +躇 +烯 +蘼 +冬 +诤 +暄 +骶 +哑 +瘠 +」 +臊 +丕 +愈 +咱 +螺 +擅 +跋 +搏 +硪 +谄 +笠 +淡 +嘿 +骅 +谧 +鼎 +皋 +姚 +歼 +蠢 +驼 +耳 +胬 +挝 +涯 +狗 +蒽 +孓 +犷 +凉 +芦 +箴 +铤 +孤 +嘛 +坤 +V +茴 +朦 +挞 +尖 +橙 +诞 +搴 +碇 +洵 +浚 +帚 +蜍 +漯 +柘 +嚎 +讽 +芭 +荤 +咻 +祠 +秉 +跖 +埃 +吓 +糯 +眷 +馒 +惹 +娼 +鲑 +嫩 +讴 +轮 +瞥 +靶 +褚 +乏 +缤 +宋 +帧 +删 +驱 +碎 +扑 +俩 +俄 +偏 +涣 +竹 +噱 +皙 +佰 +渚 +唧 +斡 +# +镉 +刀 +崎 +筐 +佣 +夭 +贰 +肴 +峙 +哔 +艿 +匐 +牺 +镛 +缘 +仡 +嫡 +劣 +枸 +堀 +梨 +簿 +鸭 +蒸 +亦 +稽 +浴 +{ +衢 +束 +槲 +j +阁 +揍 +疥 +棋 +潋 +聪 +窜 +乓 +睛 +插 +冉 +阪 +苍 +搽 +「 +蟾 +螟 +幸 +仇 +樽 +撂 +慢 +跤 +幔 +俚 +淅 +覃 +觊 +溶 +妖 +帛 +侨 +曰 +妾 +泗 +· +: +瀘 +風 +Ë +( +) +∶ +紅 +紗 +瑭 +雲 +頭 +鶏 +財 +許 +• +¥ +樂 +焗 +麗 +— +; +滙 +東 +榮 +繪 +興 +… +門 +業 +π +楊 +國 +顧 +é +盤 +寳 +Λ +龍 +鳳 +島 +誌 +緣 +結 +銭 +萬 +勝 +祎 +璟 +優 +歡 +臨 +時 +購 += +★ +藍 +昇 +鐵 +觀 +勅 +農 +聲 +畫 +兿 +術 +發 +劉 +記 +專 +耑 +園 +書 +壴 +種 +Ο +● +褀 +號 +銀 +匯 +敟 +锘 +葉 +橪 +廣 +進 +蒄 +鑽 +阝 +祙 +貢 +鍋 +豊 +夬 +喆 +團 +閣 +開 +燁 +賓 +館 +酡 +沔 +順 ++ +硚 +劵 +饸 +陽 +車 +湓 +復 +萊 +氣 +軒 +華 +堃 +迮 +纟 +戶 +馬 +學 +裡 +電 +嶽 +獨 +マ +シ +サ +ジ +燘 +袪 +環 +❤ +臺 +灣 +専 +賣 +孖 +聖 +攝 +線 +▪ +α +傢 +俬 +夢 +達 +莊 +喬 +貝 +薩 +劍 +羅 +壓 +棛 +饦 +尃 +璈 +囍 +醫 +G +I +A +# +N +鷄 +髙 +嬰 +啓 +約 +隹 +潔 +賴 +藝 +~ +寶 +籣 +麺 +  +嶺 +√ +義 +網 +峩 +長 +∧ +魚 +機 +構 +② +鳯 +偉 +L +B +㙟 +畵 +鴿 +' +詩 +溝 +嚞 +屌 +藔 +佧 +玥 +蘭 +織 +1 +3 +9 +0 +7 +點 +砭 +鴨 +鋪 +銘 +廳 +弍 +‧ +創 +湯 +坶 +℃ +卩 +骝 +& +烜 +荘 +當 +潤 +扞 +係 +懷 +碶 +钅 +蚨 +讠 +☆ +叢 +爲 +埗 +涫 +塗 +→ +楽 +現 +鯨 +愛 +瑪 +鈺 +忄 +悶 +藥 +飾 +樓 +視 +孬 +ㆍ +燚 +苪 +師 +① +丼 +锽 +│ +韓 +標 +è +兒 +閏 +匋 +張 +漢 +Ü +髪 +會 +閑 +檔 +習 +裝 +の +峯 +菘 +輝 +И +雞 +釣 +億 +浐 +K +O +R +8 +H +E +P +T +W +D +S +C +M +F +姌 +饹 +» +晞 +廰 +ä +嵯 +鷹 +負 +飲 +絲 +冚 +楗 +澤 +綫 +區 +❋ +← +質 +靑 +揚 +③ +滬 +統 +産 +協 +﹑ +乸 +畐 +經 +運 +際 +洺 +岽 +為 +粵 +諾 +崋 +豐 +碁 +ɔ +V +2 +6 +齋 +誠 +訂 +´ +勑 +雙 +陳 +無 +í +泩 +媄 +夌 +刂 +i +c +t +o +r +a +嘢 +耄 +燴 +暃 +壽 +媽 +靈 +抻 +體 +唻 +É +冮 +甹 +鎮 +錦 +ʌ +蜛 +蠄 +尓 +駕 +戀 +飬 +逹 +倫 +貴 +極 +Я +Й +寬 +磚 +嶪 +郎 +職 +| +間 +n +d +剎 +伈 +課 +飛 +橋 +瘊 +№ +譜 +骓 +圗 +滘 +縣 +粿 +咅 +養 +濤 +彳 +® +% +Ⅱ +啰 +㴪 +見 +矞 +薬 +糁 +邨 +鲮 +顔 +罱 +З +選 +話 +贏 +氪 +俵 +競 +瑩 +繡 +枱 +β +綉 +á +獅 +爾 +™ +麵 +戋 +淩 +徳 +個 +劇 +場 +務 +簡 +寵 +h +實 +膠 +轱 +圖 +築 +嘣 +樹 +㸃 +營 +耵 +孫 +饃 +鄺 +飯 +麯 +遠 +輸 +坫 +孃 +乚 +閃 +鏢 +㎡ +題 +廠 +關 +↑ +爺 +將 +軍 +連 +篦 +覌 +參 +箸 +- +窠 +棽 +寕 +夀 +爰 +歐 +呙 +閥 +頡 +熱 +雎 +垟 +裟 +凬 +勁 +帑 +馕 +夆 +疌 +枼 +馮 +貨 +蒤 +樸 +彧 +旸 +靜 +龢 +暢 +㐱 +鳥 +珺 +鏡 +灡 +爭 +堷 +廚 +Ó +騰 +診 +┅ +蘇 +褔 +凱 +頂 +豕 +亞 +帥 +嘬 +⊥ +仺 +桖 +複 +饣 +絡 +穂 +顏 +棟 +納 +▏ +濟 +親 +設 +計 +攵 +埌 +烺 +ò +頤 +燦 +蓮 +撻 +節 +講 +濱 +濃 +娽 +洳 +朿 +燈 +鈴 +護 +膚 +铔 +過 +補 +Z +U +5 +4 +坋 +闿 +䖝 +餘 +缐 +铞 +貿 +铪 +桼 +趙 +鍊 +[ +㐂 +垚 +菓 +揸 +捲 +鐘 +滏 +𣇉 +爍 +輪 +燜 +鴻 +鮮 +動 +鹞 +鷗 +丄 +慶 +鉌 +翥 +飮 +腸 +⇋ +漁 +覺 +來 +熘 +昴 +翏 +鲱 +圧 +鄉 +萭 +頔 +爐 +嫚 +г +貭 +類 +聯 +幛 +輕 +訓 +鑒 +夋 +锨 +芃 +珣 +䝉 +扙 +嵐 +銷 +處 +ㄱ +語 +誘 +苝 +歸 +儀 +燒 +楿 +內 +粢 +葒 +奧 +麥 +礻 +滿 +蠔 +穵 +瞭 +態 +鱬 +榞 +硂 +鄭 +黃 +煙 +祐 +奓 +逺 +* +瑄 +獲 +聞 +薦 +讀 +這 +樣 +決 +問 +啟 +們 +執 +説 +轉 +單 +隨 +唘 +帶 +倉 +庫 +還 +贈 +尙 +皺 +■ +餅 +產 +○ +∈ +報 +狀 +楓 +賠 +琯 +嗮 +禮 +` +傳 +> +≤ +嗞 +Φ +≥ +換 +咭 +∣ +↓ +曬 +ε +応 +寫 +″ +終 +様 +純 +費 +療 +聨 +凍 +壐 +郵 +ü +黒 +∫ +製 +塊 +調 +軽 +確 +撃 +級 +馴 +Ⅲ +涇 +繹 +數 +碼 +證 +狒 +処 +劑 +< +晧 +賀 +衆 +] +櫥 +兩 +陰 +絶 +對 +鯉 +憶 +◎ +p +e +Y +蕒 +煖 +頓 +測 +試 +鼽 +僑 +碩 +妝 +帯 +≈ +鐡 +舖 +權 +喫 +倆 +ˋ +該 +悅 +ā +俫 +. +f +s +b +m +k +g +u +j +貼 +淨 +濕 +針 +適 +備 +l +/ +給 +謢 +強 +觸 +衛 +與 +⊙ +$ +緯 +變 +⑴ +⑵ +⑶ +㎏ +殺 +∩ +幚 +─ +價 +▲ +離 +ú +ó +飄 +烏 +関 +閟 +﹝ +﹞ +邏 +輯 +鍵 +驗 +訣 +導 +歷 +屆 +層 +▼ +儱 +錄 +熳 +ē +艦 +吋 +錶 +辧 +飼 +顯 +④ +禦 +販 +気 +対 +枰 +閩 +紀 +幹 +瞓 +貊 +淚 +△ +眞 +墊 +Ω +獻 +褲 +縫 +緑 +亜 +鉅 +餠 +{ +} +◆ +蘆 +薈 +█ +◇ +溫 +彈 +晳 +粧 +犸 +穩 +訊 +崬 +凖 +熥 +П +舊 +條 +紋 +圍 +Ⅳ +筆 +尷 +難 +雜 +錯 +綁 +識 +頰 +鎖 +艶 +□ +殁 +殼 +⑧ +├ +▕ +鵬 +ǐ +ō +ǒ +糝 +綱 +▎ +μ +盜 +饅 +醬 +籤 +蓋 +釀 +鹽 +據 +à +ɡ +辦 +◥ +彐 +┌ +婦 +獸 +鲩 +伱 +ī +蒟 +蒻 +齊 +袆 +腦 +寧 +凈 +妳 +煥 +詢 +偽 +謹 +啫 +鯽 +騷 +鱸 +損 +傷 +鎻 +髮 +買 +冏 +儥 +両 +﹢ +∞ +載 +喰 +z +羙 +悵 +燙 +曉 +員 +組 +徹 +艷 +痠 +鋼 +鼙 +縮 +細 +嚒 +爯 +≠ +維 +" +鱻 +壇 +厍 +帰 +浥 +犇 +薡 +軎 +² +應 +醜 +刪 +緻 +鶴 +賜 +噁 +軌 +尨 +镔 +鷺 +槗 +彌 +葚 +濛 +請 +溇 +緹 +賢 +訪 +獴 +瑅 +資 +縤 +陣 +蕟 +栢 +韻 +祼 +恁 +伢 +謝 +劃 +涑 +總 +衖 +踺 +砋 +凉 +籃 +駿 +苼 +瘋 +昽 +紡 +驊 +腎 +﹗ +響 +杋 +剛 +嚴 +禪 +歓 +槍 +傘 +檸 +檫 +炣 +勢 +鏜 +鎢 +銑 +尐 +減 +奪 +惡 +θ +僮 +婭 +臘 +ū +ì +殻 +鉄 +∑ +蛲 +焼 +緖 +續 +紹 +懮 diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv4_doc_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv4_doc_dict.txt new file mode 100644 index 000000000..09e275bae --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv4_doc_dict.txt @@ -0,0 +1,15629 @@ +' +疗 +绚 +诚 +娇 +溜 +题 +贿 +者 +廖 +更 +纳 +加 +奉 +公 +一 +就 +汴 +计 +与 +路 +房 +原 +妇 +2 +0 +8 +- +7 +其 +> +: +] +, +, +骑 +刈 +全 +消 +昏 +傈 +安 +久 +钟 +嗅 +不 +影 +处 +驽 +蜿 +资 +关 +椤 +地 +瘸 +专 +问 +忖 +票 +嫉 +炎 +韵 +要 +月 +田 +节 +陂 +鄙 +捌 +备 +拳 +伺 +眼 +网 +盎 +大 +傍 +心 +东 +愉 +汇 +蹿 +科 +每 +业 +里 +航 +晏 +字 +平 +录 +先 +1 +3 +彤 +鲶 +产 +稍 +督 +腴 +有 +象 +岳 +注 +绍 +在 +泺 +文 +定 +核 +名 +水 +过 +理 +让 +偷 +率 +等 +这 +发 +” +为 +含 +肥 +酉 +相 +鄱 +七 +编 +猥 +锛 +日 +镀 +蒂 +掰 +倒 +辆 +栾 +栗 +综 +涩 +州 +雌 +滑 +馀 +了 +机 +块 +司 +宰 +甙 +兴 +矽 +抚 +保 +用 +沧 +秩 +如 +收 +息 +滥 +页 +疑 +埠 +! +! +姥 +异 +橹 +钇 +向 +下 +跄 +的 +椴 +沫 +国 +绥 +獠 +报 +开 +民 +蜇 +何 +分 +凇 +长 +讥 +藏 +掏 +施 +羽 +中 +讲 +派 +嘟 +人 +提 +浼 +间 +世 +而 +古 +多 +倪 +唇 +饯 +控 +庚 +首 +赛 +蜓 +味 +断 +制 +觉 +技 +替 +艰 +溢 +潮 +夕 +钺 +外 +摘 +枋 +动 +双 +单 +啮 +户 +枇 +确 +锦 +曜 +杜 +或 +能 +效 +霜 +盒 +然 +侗 +电 +晁 +放 +步 +鹃 +新 +杖 +蜂 +吒 +濂 +瞬 +评 +总 +隍 +对 +独 +合 +也 +是 +府 +青 +天 +诲 +墙 +组 +滴 +级 +邀 +帘 +示 +已 +时 +骸 +仄 +泅 +和 +遨 +店 +雇 +疫 +持 +巍 +踮 +境 +只 +亨 +目 +鉴 +崤 +闲 +体 +泄 +杂 +作 +般 +轰 +化 +解 +迂 +诿 +蛭 +璀 +腾 +告 +版 +服 +省 +师 +小 +规 +程 +线 +海 +办 +引 +二 +桧 +牌 +砺 +洄 +裴 +修 +图 +痫 +胡 +许 +犊 +事 +郛 +基 +柴 +呼 +食 +研 +奶 +律 +蛋 +因 +葆 +察 +戏 +褒 +戒 +再 +李 +骁 +工 +貂 +油 +鹅 +章 +啄 +休 +场 +给 +睡 +纷 +豆 +器 +捎 +说 +敏 +学 +会 +浒 +设 +诊 +格 +廓 +查 +来 +霓 +室 +溆 +¢ +诡 +寥 +焕 +舜 +柒 +狐 +回 +戟 +砾 +厄 +实 +翩 +尿 +五 +入 +径 +惭 +喹 +股 +宇 +篝 +| +; +美 +期 +云 +九 +祺 +扮 +靠 +锝 +槌 +系 +企 +酰 +阊 +暂 +蚕 +忻 +豁 +本 +羹 +执 +条 +钦 +H +獒 +限 +进 +季 +楦 +于 +芘 +玖 +铋 +茯 +未 +答 +粘 +括 +样 +精 +欠 +矢 +甥 +帷 +嵩 +扣 +令 +仔 +风 +皈 +行 +支 +部 +蓉 +刮 +站 +蜡 +救 +钊 +汗 +松 +嫌 +成 +可 +. +鹤 +院 +从 +交 +政 +怕 +活 +调 +球 +局 +验 +髌 +第 +韫 +谗 +串 +到 +圆 +年 +米 +/ +* +友 +忿 +检 +区 +看 +自 +敢 +刃 +个 +兹 +弄 +流 +留 +同 +没 +齿 +星 +聆 +轼 +湖 +什 +三 +建 +蛔 +儿 +椋 +汕 +震 +颧 +鲤 +跟 +力 +情 +璺 +铨 +陪 +务 +指 +族 +训 +滦 +鄣 +濮 +扒 +商 +箱 +十 +召 +慷 +辗 +所 +莞 +管 +护 +臭 +横 +硒 +嗓 +接 +侦 +六 +露 +党 +馋 +驾 +剖 +高 +侬 +妪 +幂 +猗 +绺 +骐 +央 +酐 +孝 +筝 +课 +徇 +缰 +门 +男 +西 +项 +句 +谙 +瞒 +秃 +篇 +教 +碲 +罚 +声 +呐 +景 +前 +富 +嘴 +鳌 +稀 +免 +朋 +啬 +睐 +去 +赈 +鱼 +住 +肩 +愕 +速 +旁 +波 +厅 +健 +茼 +厥 +鲟 +谅 +投 +攸 +炔 +数 +方 +击 +呋 +谈 +绩 +别 +愫 +僚 +躬 +鹧 +胪 +炳 +招 +喇 +膨 +泵 +蹦 +毛 +结 +5 +4 +谱 +识 +陕 +粽 +婚 +拟 +构 +且 +搜 +任 +潘 +比 +郢 +妨 +醪 +陀 +桔 +碘 +扎 +选 +哈 +骷 +楷 +亿 +明 +缆 +脯 +监 +睫 +逻 +婵 +共 +赴 +淝 +凡 +惦 +及 +达 +揖 +谩 +澹 +减 +焰 +蛹 +番 +祁 +柏 +员 +禄 +怡 +峤 +龙 +白 +叽 +生 +闯 +起 +细 +装 +谕 +竟 +聚 +钙 +上 +导 +渊 +按 +艾 +辘 +挡 +耒 +盹 +饪 +臀 +记 +邮 +蕙 +受 +各 +医 +搂 +普 +滇 +朗 +茸 +带 +翻 +酚 +( +光 +堤 +墟 +蔷 +万 +幻 +〓 +瑙 +辈 +昧 +盏 +亘 +蛀 +吉 +铰 +请 +子 +假 +闻 +税 +井 +诩 +哨 +嫂 +好 +面 +琐 +校 +馊 +鬣 +缂 +营 +访 +炖 +占 +农 +缀 +否 +经 +钚 +棵 +趟 +张 +亟 +吏 +茶 +谨 +捻 +论 +迸 +堂 +玉 +信 +吧 +瞠 +乡 +姬 +寺 +咬 +溏 +苄 +皿 +意 +赉 +宝 +尔 +钰 +艺 +特 +唳 +踉 +都 +荣 +倚 +登 +荐 +丧 +奇 +涵 +批 +炭 +近 +符 +傩 +感 +道 +着 +菊 +虹 +仲 +众 +懈 +濯 +颞 +眺 +南 +释 +北 +缝 +标 +既 +茗 +整 +撼 +迤 +贲 +挎 +耱 +拒 +某 +妍 +卫 +哇 +英 +矶 +藩 +治 +他 +元 +领 +膜 +遮 +穗 +蛾 +飞 +荒 +棺 +劫 +么 +市 +火 +温 +拈 +棚 +洼 +转 +果 +奕 +卸 +迪 +伸 +泳 +斗 +邡 +侄 +涨 +屯 +萋 +胭 +氡 +崮 +枞 +惧 +冒 +彩 +斜 +手 +豚 +随 +旭 +淑 +妞 +形 +菌 +吲 +沱 +争 +驯 +歹 +挟 +兆 +柱 +传 +至 +包 +内 +响 +临 +红 +功 +弩 +衡 +寂 +禁 +老 +棍 +耆 +渍 +织 +害 +氵 +渑 +布 +载 +靥 +嗬 +虽 +苹 +咨 +娄 +库 +雉 +榜 +帜 +嘲 +套 +瑚 +亲 +簸 +欧 +边 +6 +腿 +旮 +抛 +吹 +瞳 +得 +镓 +梗 +厨 +继 +漾 +愣 +憨 +士 +策 +窑 +抑 +躯 +襟 +脏 +参 +贸 +言 +干 +绸 +鳄 +穷 +藜 +音 +折 +详 +) +举 +悍 +甸 +癌 +黎 +谴 +死 +罩 +迁 +寒 +驷 +袖 +媒 +蒋 +掘 +模 +纠 +恣 +观 +祖 +蛆 +碍 +位 +稿 +主 +澧 +跌 +筏 +京 +锏 +帝 +贴 +证 +糠 +才 +黄 +鲸 +略 +炯 +饱 +四 +出 +园 +犀 +牧 +容 +汉 +杆 +浈 +汰 +瑷 +造 +虫 +瘩 +怪 +驴 +济 +应 +花 +沣 +谔 +夙 +旅 +价 +矿 +以 +考 +s +u +呦 +晒 +巡 +茅 +准 +肟 +瓴 +詹 +仟 +褂 +译 +桌 +混 +宁 +怦 +郑 +抿 +些 +余 +鄂 +饴 +攒 +珑 +群 +阖 +岔 +琨 +藓 +预 +环 +洮 +岌 +宀 +杲 +瀵 +最 +常 +囡 +周 +踊 +女 +鼓 +袭 +喉 +简 +范 +薯 +遐 +疏 +粱 +黜 +禧 +法 +箔 +斤 +遥 +汝 +奥 +直 +贞 +撑 +置 +绱 +集 +她 +馅 +逗 +钧 +橱 +魉 +[ +恙 +躁 +唤 +9 +旺 +膘 +待 +脾 +惫 +购 +吗 +依 +盲 +度 +瘿 +蠖 +俾 +之 +镗 +拇 +鲵 +厝 +簧 +续 +款 +展 +啃 +表 +剔 +品 +钻 +腭 +损 +清 +锶 +统 +涌 +寸 +滨 +贪 +链 +吠 +冈 +伎 +迥 +咏 +吁 +览 +防 +迅 +失 +汾 +阔 +逵 +绀 +蔑 +列 +川 +凭 +努 +熨 +揪 +利 +俱 +绉 +抢 +鸨 +我 +即 +责 +膦 +易 +毓 +鹊 +刹 +玷 +岿 +空 +嘞 +绊 +排 +术 +估 +锷 +违 +们 +苟 +铜 +播 +肘 +件 +烫 +审 +鲂 +广 +像 +铌 +惰 +铟 +巳 +胍 +鲍 +康 +憧 +色 +恢 +想 +拷 +尤 +疳 +知 +S +Y +F +D +A +峄 +裕 +帮 +握 +搔 +氐 +氘 +难 +墒 +沮 +雨 +叁 +缥 +悴 +藐 +湫 +娟 +苑 +稠 +颛 +簇 +后 +阕 +闭 +蕤 +缚 +怎 +佞 +码 +嘤 +蔡 +痊 +舱 +螯 +帕 +赫 +昵 +升 +烬 +岫 +、 +疵 +蜻 +髁 +蕨 +隶 +烛 +械 +丑 +盂 +梁 +强 +鲛 +由 +拘 +揉 +劭 +龟 +撤 +钩 +呕 +孛 +费 +妻 +漂 +求 +阑 +崖 +秤 +甘 +通 +深 +补 +赃 +坎 +床 +啪 +承 +吼 +量 +暇 +钼 +烨 +阂 +擎 +脱 +逮 +称 +P +神 +属 +矗 +华 +届 +狍 +葑 +汹 +育 +患 +窒 +蛰 +佼 +静 +槎 +运 +鳗 +庆 +逝 +曼 +疱 +克 +代 +官 +此 +麸 +耧 +蚌 +晟 +例 +础 +榛 +副 +测 +唰 +缢 +迹 +灬 +霁 +身 +岁 +赭 +扛 +又 +菡 +乜 +雾 +板 +读 +陷 +徉 +贯 +郁 +虑 +变 +钓 +菜 +圾 +现 +琢 +式 +乐 +维 +渔 +浜 +左 +吾 +脑 +钡 +警 +T +啵 +拴 +偌 +漱 +湿 +硕 +止 +骼 +魄 +积 +燥 +联 +踢 +玛 +则 +窿 +见 +振 +畿 +送 +班 +钽 +您 +赵 +刨 +印 +讨 +踝 +籍 +谡 +舌 +崧 +汽 +蔽 +沪 +酥 +绒 +怖 +财 +帖 +肱 +私 +莎 +勋 +羔 +霸 +励 +哼 +帐 +将 +帅 +渠 +纪 +婴 +娩 +岭 +厘 +滕 +吻 +伤 +坝 +冠 +戊 +隆 +瘁 +介 +涧 +物 +黍 +并 +姗 +奢 +蹑 +掣 +垸 +锴 +命 +箍 +捉 +病 +辖 +琰 +眭 +迩 +艘 +绌 +繁 +寅 +若 +毋 +思 +诉 +类 +诈 +燮 +轲 +酮 +狂 +重 +反 +职 +筱 +县 +委 +磕 +绣 +奖 +晋 +濉 +志 +徽 +肠 +呈 +獐 +坻 +口 +片 +碰 +几 +村 +柿 +劳 +料 +获 +亩 +惕 +晕 +厌 +号 +罢 +池 +正 +鏖 +煨 +家 +棕 +复 +尝 +懋 +蜥 +锅 +岛 +扰 +队 +坠 +瘾 +钬 +@ +卧 +疣 +镇 +譬 +冰 +彷 +频 +黯 +据 +垄 +采 +八 +缪 +瘫 +型 +熹 +砰 +楠 +襁 +箐 +但 +嘶 +绳 +啤 +拍 +盥 +穆 +傲 +洗 +盯 +塘 +怔 +筛 +丿 +台 +恒 +喂 +葛 +永 +¥ +烟 +酒 +桦 +书 +砂 +蚝 +缉 +态 +瀚 +袄 +圳 +轻 +蛛 +超 +榧 +遛 +姒 +奘 +铮 +右 +荽 +望 +偻 +卡 +丶 +氰 +附 +做 +革 +索 +戚 +坨 +桷 +唁 +垅 +榻 +岐 +偎 +坛 +莨 +山 +殊 +微 +骇 +陈 +爨 +推 +嗝 +驹 +澡 +藁 +呤 +卤 +嘻 +糅 +逛 +侵 +郓 +酌 +德 +摇 +※ +鬃 +被 +慨 +殡 +羸 +昌 +泡 +戛 +鞋 +河 +宪 +沿 +玲 +鲨 +翅 +哽 +源 +铅 +语 +照 +邯 +址 +荃 +佬 +顺 +鸳 +町 +霭 +睾 +瓢 +夸 +椁 +晓 +酿 +痈 +咔 +侏 +券 +噎 +湍 +签 +嚷 +离 +午 +尚 +社 +锤 +背 +孟 +使 +浪 +缦 +潍 +鞅 +军 +姹 +驶 +笑 +鳟 +鲁 +》 +孽 +钜 +绿 +洱 +礴 +焯 +椰 +颖 +囔 +乌 +孔 +巴 +互 +性 +椽 +哞 +聘 +昨 +早 +暮 +胶 +炀 +隧 +低 +彗 +昝 +铁 +呓 +氽 +藉 +喔 +癖 +瑗 +姨 +权 +胱 +韦 +堑 +蜜 +酋 +楝 +砝 +毁 +靓 +歙 +锲 +究 +屋 +喳 +骨 +辨 +碑 +武 +鸠 +宫 +辜 +烊 +适 +坡 +殃 +培 +佩 +供 +走 +蜈 +迟 +翼 +况 +姣 +凛 +浔 +吃 +飘 +债 +犟 +金 +促 +苛 +崇 +坂 +莳 +畔 +绂 +兵 +蠕 +斋 +根 +砍 +亢 +欢 +恬 +崔 +剁 +餐 +榫 +快 +扶 +‖ +濒 +缠 +鳜 +当 +彭 +驭 +浦 +篮 +昀 +锆 +秸 +钳 +弋 +娣 +瞑 +夷 +龛 +苫 +拱 +致 +% +嵊 +障 +隐 +弑 +初 +娓 +抉 +汩 +累 +蓖 +" +唬 +助 +苓 +昙 +押 +毙 +破 +城 +郧 +逢 +嚏 +獭 +瞻 +溱 +婿 +赊 +跨 +恼 +璧 +萃 +姻 +貉 +灵 +炉 +密 +氛 +陶 +砸 +谬 +衔 +点 +琛 +沛 +枳 +层 +岱 +诺 +脍 +榈 +埂 +征 +冷 +裁 +打 +蹴 +素 +瘘 +逞 +蛐 +聊 +激 +腱 +萘 +踵 +飒 +蓟 +吆 +取 +咙 +簋 +涓 +矩 +曝 +挺 +揣 +座 +你 +史 +舵 +焱 +尘 +苏 +笈 +脚 +溉 +榨 +诵 +樊 +邓 +焊 +义 +庶 +儋 +蟋 +蒲 +赦 +呷 +杞 +诠 +豪 +还 +试 +颓 +茉 +太 +除 +紫 +逃 +痴 +草 +充 +鳕 +珉 +祗 +墨 +渭 +烩 +蘸 +慕 +璇 +镶 +穴 +嵘 +恶 +骂 +险 +绋 +幕 +碉 +肺 +戳 +刘 +潞 +秣 +纾 +潜 +銮 +洛 +须 +罘 +销 +瘪 +汞 +兮 +屉 +r +林 +厕 +质 +探 +划 +狸 +殚 +善 +煊 +烹 +〒 +锈 +逯 +宸 +辍 +泱 +柚 +袍 +远 +蹋 +嶙 +绝 +峥 +娥 +缍 +雀 +徵 +认 +镱 +谷 += +贩 +勉 +撩 +鄯 +斐 +洋 +非 +祚 +泾 +诒 +饿 +撬 +威 +晷 +搭 +芍 +锥 +笺 +蓦 +候 +琊 +档 +礁 +沼 +卵 +荠 +忑 +朝 +凹 +瑞 +头 +仪 +弧 +孵 +畏 +铆 +突 +衲 +车 +浩 +气 +茂 +悖 +厢 +枕 +酝 +戴 +湾 +邹 +飚 +攘 +锂 +写 +宵 +翁 +岷 +无 +喜 +丈 +挑 +嗟 +绛 +殉 +议 +槽 +具 +醇 +淞 +笃 +郴 +阅 +饼 +底 +壕 +砚 +弈 +询 +缕 +庹 +翟 +零 +筷 +暨 +舟 +闺 +甯 +撞 +麂 +茌 +蔼 +很 +珲 +捕 +棠 +角 +阉 +媛 +娲 +诽 +剿 +尉 +爵 +睬 +韩 +诰 +匣 +危 +糍 +镯 +立 +浏 +阳 +少 +盆 +舔 +擘 +匪 +申 +尬 +铣 +旯 +抖 +赘 +瓯 +居 +ˇ +哮 +游 +锭 +茏 +歌 +坏 +甚 +秒 +舞 +沙 +仗 +劲 +潺 +阿 +燧 +郭 +嗖 +霏 +忠 +材 +奂 +耐 +跺 +砀 +输 +岖 +媳 +氟 +极 +摆 +灿 +今 +扔 +腻 +枝 +奎 +药 +熄 +吨 +话 +q +额 +慑 +嘌 +协 +喀 +壳 +埭 +视 +著 +於 +愧 +陲 +翌 +峁 +颅 +佛 +腹 +聋 +侯 +咎 +叟 +秀 +颇 +存 +较 +罪 +哄 +岗 +扫 +栏 +钾 +羌 +己 +璨 +枭 +霉 +煌 +涸 +衿 +键 +镝 +益 +岢 +奏 +连 +夯 +睿 +冥 +均 +糖 +狞 +蹊 +稻 +爸 +刿 +胥 +煜 +丽 +肿 +璃 +掸 +跚 +灾 +垂 +樾 +濑 +乎 +莲 +窄 +犹 +撮 +战 +馄 +软 +络 +显 +鸢 +胸 +宾 +妲 +恕 +埔 +蝌 +份 +遇 +巧 +瞟 +粒 +恰 +剥 +桡 +博 +讯 +凯 +堇 +阶 +滤 +卖 +斌 +骚 +彬 +兑 +磺 +樱 +舷 +两 +娱 +福 +仃 +差 +找 +桁 +÷ +净 +把 +阴 +污 +戬 +雷 +碓 +蕲 +楚 +罡 +焖 +抽 +妫 +咒 +仑 +闱 +尽 +邑 +菁 +爱 +贷 +沥 +鞑 +牡 +嗉 +崴 +骤 +塌 +嗦 +订 +拮 +滓 +捡 +锻 +次 +坪 +杩 +臃 +箬 +融 +珂 +鹗 +宗 +枚 +降 +鸬 +妯 +阄 +堰 +盐 +毅 +必 +杨 +崃 +俺 +甬 +状 +莘 +货 +耸 +菱 +腼 +铸 +唏 +痤 +孚 +澳 +懒 +溅 +翘 +疙 +杷 +淼 +缙 +骰 +喊 +悉 +砻 +坷 +艇 +赁 +界 +谤 +纣 +宴 +晃 +茹 +归 +饭 +梢 +铡 +街 +抄 +肼 +鬟 +苯 +颂 +撷 +戈 +炒 +咆 +茭 +瘙 +负 +仰 +客 +琉 +铢 +封 +卑 +珥 +椿 +镧 +窨 +鬲 +寿 +御 +袤 +铃 +萎 +砖 +餮 +脒 +裳 +肪 +孕 +嫣 +馗 +嵇 +恳 +氯 +江 +石 +褶 +冢 +祸 +阻 +狈 +羞 +银 +靳 +透 +咳 +叼 +敷 +芷 +啥 +它 +瓤 +兰 +痘 +懊 +逑 +肌 +往 +捺 +坊 +甩 +呻 +〃 +沦 +忘 +膻 +祟 +菅 +剧 +崆 +智 +坯 +臧 +霍 +墅 +攻 +眯 +倘 +拢 +骠 +铐 +庭 +岙 +瓠 +′ +缺 +泥 +迢 +捶 +? +? +郏 +喙 +掷 +沌 +纯 +秘 +种 +听 +绘 +固 +螨 +团 +香 +盗 +妒 +埚 +蓝 +拖 +旱 +荞 +铀 +血 +遏 +汲 +辰 +叩 +拽 +幅 +硬 +惶 +桀 +漠 +措 +泼 +唑 +齐 +肾 +念 +酱 +虚 +屁 +耶 +旗 +砦 +闵 +婉 +馆 +拭 +绅 +韧 +忏 +窝 +醋 +葺 +顾 +辞 +倜 +堆 +辋 +逆 +玟 +贱 +疾 +董 +惘 +倌 +锕 +淘 +嘀 +莽 +俭 +笏 +绑 +鲷 +杈 +择 +蟀 +粥 +嗯 +驰 +逾 +案 +谪 +褓 +胫 +哩 +昕 +颚 +鲢 +绠 +躺 +鹄 +崂 +儒 +俨 +丝 +尕 +泌 +啊 +萸 +彰 +幺 +吟 +骄 +苣 +弦 +脊 +瑰 +〈 +诛 +镁 +析 +闪 +剪 +侧 +哟 +框 +螃 +守 +嬗 +燕 +狭 +铈 +缮 +概 +迳 +痧 +鲲 +俯 +售 +笼 +痣 +扉 +挖 +满 +咋 +援 +邱 +扇 +歪 +便 +玑 +绦 +峡 +蛇 +叨 +〖 +泽 +胃 +斓 +喋 +怂 +坟 +猪 +该 +蚬 +炕 +弥 +赞 +棣 +晔 +娠 +挲 +狡 +创 +疖 +铕 +镭 +稷 +挫 +弭 +啾 +翔 +粉 +履 +苘 +哦 +楼 +秕 +铂 +土 +锣 +瘟 +挣 +栉 +习 +享 +桢 +袅 +磨 +桂 +谦 +延 +坚 +蔚 +噗 +署 +谟 +猬 +钎 +恐 +嬉 +雒 +倦 +衅 +亏 +璩 +睹 +刻 +殿 +王 +算 +雕 +麻 +丘 +柯 +骆 +丸 +塍 +谚 +添 +鲈 +垓 +桎 +蚯 +芥 +予 +飕 +镦 +谌 +窗 +醚 +菀 +亮 +搪 +莺 +蒿 +羁 +足 +J +真 +轶 +悬 +衷 +靛 +翊 +掩 +哒 +炅 +掐 +冼 +妮 +l +谐 +稚 +荆 +擒 +犯 +陵 +虏 +浓 +崽 +刍 +陌 +傻 +孜 +千 +靖 +演 +矜 +钕 +煽 +杰 +酗 +渗 +伞 +栋 +俗 +泫 +戍 +罕 +沾 +疽 +灏 +煦 +芬 +磴 +叱 +阱 +榉 +湃 +蜀 +叉 +醒 +彪 +租 +郡 +篷 +屎 +良 +垢 +隗 +弱 +陨 +峪 +砷 +掴 +颁 +胎 +雯 +绵 +贬 +沐 +撵 +隘 +篙 +暖 +曹 +陡 +栓 +填 +臼 +彦 +瓶 +琪 +潼 +哪 +鸡 +摩 +啦 +俟 +锋 +域 +耻 +蔫 +疯 +纹 +撇 +毒 +绶 +痛 +酯 +忍 +爪 +赳 +歆 +嘹 +辕 +烈 +册 +朴 +钱 +吮 +毯 +癜 +娃 +谀 +邵 +厮 +炽 +璞 +邃 +丐 +追 +词 +瓒 +忆 +轧 +芫 +谯 +喷 +弟 +半 +冕 +裙 +掖 +墉 +绮 +寝 +苔 +势 +顷 +褥 +切 +衮 +君 +佳 +嫒 +蚩 +霞 +佚 +洙 +逊 +镖 +暹 +唛 +& +殒 +顶 +碗 +獗 +轭 +铺 +蛊 +废 +恹 +汨 +崩 +珍 +那 +杵 +曲 +纺 +夏 +薰 +傀 +闳 +淬 +姘 +舀 +拧 +卷 +楂 +恍 +讪 +厩 +寮 +篪 +赓 +乘 +灭 +盅 +鞣 +沟 +慎 +挂 +饺 +鼾 +杳 +树 +缨 +丛 +絮 +娌 +臻 +嗳 +篡 +侩 +述 +衰 +矛 +圈 +蚜 +匕 +筹 +匿 +濞 +晨 +叶 +骋 +郝 +挚 +蚴 +滞 +增 +侍 +描 +瓣 +吖 +嫦 +蟒 +匾 +圣 +赌 +毡 +癞 +恺 +百 +曳 +需 +篓 +肮 +庖 +帏 +卿 +驿 +遗 +蹬 +鬓 +骡 +歉 +芎 +胳 +屐 +禽 +烦 +晌 +寄 +媾 +狄 +翡 +苒 +船 +廉 +终 +痞 +殇 +々 +畦 +饶 +改 +拆 +悻 +萄 +£ +瓿 +乃 +訾 +桅 +匮 +溧 +拥 +纱 +铍 +骗 +蕃 +龋 +缬 +父 +佐 +疚 +栎 +醍 +掳 +蓄 +x +惆 +颜 +鲆 +榆 +〔 +猎 +敌 +暴 +谥 +鲫 +贾 +罗 +玻 +缄 +扦 +芪 +癣 +落 +徒 +臾 +恿 +猩 +托 +邴 +肄 +牵 +春 +陛 +耀 +刊 +拓 +蓓 +邳 +堕 +寇 +枉 +淌 +啡 +湄 +兽 +酷 +萼 +碚 +濠 +萤 +夹 +旬 +戮 +梭 +琥 +椭 +昔 +勺 +蜊 +绐 +晚 +孺 +僵 +宣 +摄 +冽 +旨 +萌 +忙 +蚤 +眉 +噼 +蟑 +付 +契 +瓜 +悼 +颡 +壁 +曾 +窕 +颢 +澎 +仿 +俑 +浑 +嵌 +浣 +乍 +碌 +褪 +乱 +蔟 +隙 +玩 +剐 +葫 +箫 +纲 +围 +伐 +决 +伙 +漩 +瑟 +刑 +肓 +镳 +缓 +蹭 +氨 +皓 +典 +畲 +坍 +铑 +檐 +塑 +洞 +倬 +储 +胴 +淳 +戾 +吐 +灼 +惺 +妙 +毕 +珐 +缈 +虱 +盖 +羰 +鸿 +磅 +谓 +髅 +娴 +苴 +唷 +蚣 +霹 +抨 +贤 +唠 +犬 +誓 +逍 +庠 +逼 +麓 +籼 +釉 +呜 +碧 +秧 +氩 +摔 +霄 +穸 +纨 +辟 +妈 +映 +完 +牛 +缴 +嗷 +炊 +恩 +荔 +茆 +掉 +紊 +慌 +莓 +羟 +阙 +萁 +磐 +另 +蕹 +辱 +鳐 +湮 +吡 +吩 +唐 +睦 +垠 +舒 +圜 +冗 +瞿 +溺 +芾 +囱 +匠 +僳 +汐 +菩 +饬 +漓 +黑 +霰 +浸 +濡 +窥 +毂 +蒡 +兢 +驻 +鹉 +芮 +诙 +迫 +雳 +厂 +忐 +臆 +猴 +鸣 +蚪 +栈 +箕 +羡 +渐 +莆 +捍 +眈 +哓 +趴 +蹼 +埕 +嚣 +骛 +宏 +淄 +斑 +噜 +严 +瑛 +垃 +椎 +诱 +压 +庾 +绞 +焘 +廿 +抡 +迄 +棘 +夫 +纬 +锹 +眨 +瞌 +侠 +脐 +竞 +瀑 +孳 +骧 +遁 +姜 +颦 +荪 +滚 +萦 +伪 +逸 +粳 +爬 +锁 +矣 +役 +趣 +洒 +颔 +诏 +逐 +奸 +甭 +惠 +攀 +蹄 +泛 +尼 +拼 +阮 +鹰 +亚 +颈 +惑 +勒 +〉 +际 +肛 +爷 +刚 +钨 +丰 +养 +冶 +鲽 +辉 +蔻 +画 +覆 +皴 +妊 +麦 +返 +醉 +皂 +擀 +〗 +酶 +凑 +粹 +悟 +诀 +硖 +港 +卜 +z +杀 +涕 +± +舍 +铠 +抵 +弛 +段 +敝 +镐 +奠 +拂 +轴 +跛 +袱 +e +t +沉 +菇 +俎 +薪 +峦 +秭 +蟹 +历 +盟 +菠 +寡 +液 +肢 +喻 +染 +裱 +悱 +抱 +氙 +赤 +捅 +猛 +跑 +氮 +谣 +仁 +尺 +辊 +窍 +烙 +衍 +架 +擦 +倏 +璐 +瑁 +币 +楞 +胖 +夔 +趸 +邛 +惴 +饕 +虔 +蝎 +§ +哉 +贝 +宽 +辫 +炮 +扩 +饲 +籽 +魏 +菟 +锰 +伍 +猝 +末 +琳 +哚 +蛎 +邂 +呀 +姿 +鄞 +却 +歧 +仙 +恸 +椐 +森 +牒 +寤 +袒 +婆 +虢 +雅 +钉 +朵 +贼 +欲 +苞 +寰 +故 +龚 +坭 +嘘 +咫 +礼 +硷 +兀 +睢 +汶 +’ +铲 +烧 +绕 +诃 +浃 +钿 +哺 +柜 +讼 +颊 +璁 +腔 +洽 +咐 +脲 +簌 +筠 +镣 +玮 +鞠 +谁 +兼 +姆 +挥 +梯 +蝴 +谘 +漕 +刷 +躏 +宦 +弼 +b +垌 +劈 +麟 +莉 +揭 +笙 +渎 +仕 +嗤 +仓 +配 +怏 +抬 +错 +泯 +镊 +孰 +猿 +邪 +仍 +秋 +鼬 +壹 +歇 +吵 +炼 +< +尧 +射 +柬 +廷 +胧 +霾 +凳 +隋 +肚 +浮 +梦 +祥 +株 +堵 +退 +L +鹫 +跎 +凶 +毽 +荟 +炫 +栩 +玳 +甜 +沂 +鹿 +顽 +伯 +爹 +赔 +蛴 +徐 +匡 +欣 +狰 +缸 +雹 +蟆 +疤 +默 +沤 +啜 +痂 +衣 +禅 +w +i +h +辽 +葳 +黝 +钗 +停 +沽 +棒 +馨 +颌 +肉 +吴 +硫 +悯 +劾 +娈 +马 +啧 +吊 +悌 +镑 +峭 +帆 +瀣 +涉 +咸 +疸 +滋 +泣 +翦 +拙 +癸 +钥 +蜒 ++ +尾 +庄 +凝 +泉 +婢 +渴 +谊 +乞 +陆 +锉 +糊 +鸦 +淮 +I +B +N +晦 +弗 +乔 +庥 +葡 +尻 +席 +橡 +傣 +渣 +拿 +惩 +麋 +斛 +缃 +矮 +蛏 +岘 +鸽 +姐 +膏 +催 +奔 +镒 +喱 +蠡 +摧 +钯 +胤 +柠 +拐 +璋 +鸥 +卢 +荡 +倾 +^ +_ +珀 +逄 +萧 +塾 +掇 +贮 +笆 +聂 +圃 +冲 +嵬 +M +滔 +笕 +值 +炙 +偶 +蜱 +搐 +梆 +汪 +蔬 +腑 +鸯 +蹇 +敞 +绯 +仨 +祯 +谆 +梧 +糗 +鑫 +啸 +豺 +囹 +猾 +巢 +柄 +瀛 +筑 +踌 +沭 +暗 +苁 +鱿 +蹉 +脂 +蘖 +牢 +热 +木 +吸 +溃 +宠 +序 +泞 +偿 +拜 +檩 +厚 +朐 +毗 +螳 +吞 +媚 +朽 +担 +蝗 +橘 +畴 +祈 +糟 +盱 +隼 +郜 +惜 +珠 +裨 +铵 +焙 +琚 +唯 +咚 +噪 +骊 +丫 +滢 +勤 +棉 +呸 +咣 +淀 +隔 +蕾 +窈 +饨 +挨 +煅 +短 +匙 +粕 +镜 +赣 +撕 +墩 +酬 +馁 +豌 +颐 +抗 +酣 +氓 +佑 +搁 +哭 +递 +耷 +涡 +桃 +贻 +碣 +截 +瘦 +昭 +镌 +蔓 +氚 +甲 +猕 +蕴 +蓬 +散 +拾 +纛 +狼 +猷 +铎 +埋 +旖 +矾 +讳 +囊 +糜 +迈 +粟 +蚂 +紧 +鲳 +瘢 +栽 +稼 +羊 +锄 +斟 +睁 +桥 +瓮 +蹙 +祉 +醺 +鼻 +昱 +剃 +跳 +篱 +跷 +蒜 +翎 +宅 +晖 +嗑 +壑 +峻 +癫 +屏 +狠 +陋 +袜 +途 +憎 +祀 +莹 +滟 +佶 +溥 +臣 +约 +盛 +峰 +磁 +慵 +婪 +拦 +莅 +朕 +鹦 +粲 +裤 +哎 +疡 +嫖 +琵 +窟 +堪 +谛 +嘉 +儡 +鳝 +斩 +郾 +驸 +酊 +妄 +胜 +贺 +徙 +傅 +噌 +钢 +栅 +庇 +恋 +匝 +巯 +邈 +尸 +锚 +粗 +佟 +蛟 +薹 +纵 +蚊 +郅 +绢 +锐 +苗 +俞 +篆 +淆 +膀 +鲜 +煎 +诶 +秽 +寻 +涮 +刺 +怀 +噶 +巨 +褰 +魅 +灶 +灌 +桉 +藕 +谜 +舸 +薄 +搀 +恽 +借 +牯 +痉 +渥 +愿 +亓 +耘 +杠 +柩 +锔 +蚶 +钣 +珈 +喘 +蹒 +幽 +赐 +稗 +晤 +莱 +泔 +扯 +肯 +菪 +裆 +腩 +豉 +疆 +骜 +腐 +倭 +珏 +唔 +粮 +亡 +润 +慰 +伽 +橄 +玄 +誉 +醐 +胆 +龊 +粼 +塬 +陇 +彼 +削 +嗣 +绾 +芽 +妗 +垭 +瘴 +爽 +薏 +寨 +龈 +泠 +弹 +赢 +漪 +猫 +嘧 +涂 +恤 +圭 +茧 +烽 +屑 +痕 +巾 +赖 +荸 +凰 +腮 +畈 +亵 +蹲 +偃 +苇 +澜 +艮 +换 +骺 +烘 +苕 +梓 +颉 +肇 +哗 +悄 +氤 +涠 +葬 +屠 +鹭 +植 +竺 +佯 +诣 +鲇 +瘀 +鲅 +邦 +移 +滁 +冯 +耕 +癔 +戌 +茬 +沁 +巩 +悠 +湘 +洪 +痹 +锟 +循 +谋 +腕 +鳃 +钠 +捞 +焉 +迎 +碱 +伫 +急 +榷 +奈 +邝 +卯 +辄 +皲 +卟 +醛 +畹 +忧 +稳 +雄 +昼 +缩 +阈 +睑 +扌 +耗 +曦 +涅 +捏 +瞧 +邕 +淖 +漉 +铝 +耦 +禹 +湛 +喽 +莼 +琅 +诸 +苎 +纂 +硅 +始 +嗨 +傥 +燃 +臂 +赅 +嘈 +呆 +贵 +屹 +壮 +肋 +亍 +蚀 +卅 +豹 +腆 +邬 +迭 +浊 +} +童 +螂 +捐 +圩 +勐 +触 +寞 +汊 +壤 +荫 +膺 +渌 +芳 +懿 +遴 +螈 +泰 +蓼 +蛤 +茜 +舅 +枫 +朔 +膝 +眙 +避 +梅 +判 +鹜 +璜 +牍 +缅 +垫 +藻 +黔 +侥 +惚 +懂 +踩 +腰 +腈 +札 +丞 +唾 +慈 +顿 +摹 +荻 +琬 +~ +斧 +沈 +滂 +胁 +胀 +幄 +莜 +Z +匀 +鄄 +掌 +绰 +茎 +焚 +赋 +萱 +谑 +汁 +铒 +瞎 +夺 +蜗 +野 +娆 +冀 +弯 +篁 +懵 +灞 +隽 +芡 +脘 +俐 +辩 +芯 +掺 +喏 +膈 +蝈 +觐 +悚 +踹 +蔗 +熠 +鼠 +呵 +抓 +橼 +峨 +畜 +缔 +禾 +崭 +弃 +熊 +摒 +凸 +拗 +穹 +蒙 +抒 +祛 +劝 +闫 +扳 +阵 +醌 +踪 +喵 +侣 +搬 +仅 +荧 +赎 +蝾 +琦 +买 +婧 +瞄 +寓 +皎 +冻 +赝 +箩 +莫 +瞰 +郊 +笫 +姝 +筒 +枪 +遣 +煸 +袋 +舆 +痱 +涛 +母 +〇 +启 +践 +耙 +绲 +盘 +遂 +昊 +搞 +槿 +诬 +纰 +泓 +惨 +檬 +亻 +越 +C +o +憩 +熵 +祷 +钒 +暧 +塔 +阗 +胰 +咄 +娶 +魔 +琶 +钞 +邻 +扬 +杉 +殴 +咽 +弓 +〆 +髻 +】 +吭 +揽 +霆 +拄 +殖 +脆 +彻 +岩 +芝 +勃 +辣 +剌 +钝 +嘎 +甄 +佘 +皖 +伦 +授 +徕 +憔 +挪 +皇 +庞 +稔 +芜 +踏 +溴 +兖 +卒 +擢 +饥 +鳞 +煲 +‰ +账 +颗 +叻 +斯 +捧 +鳍 +琮 +讹 +蛙 +纽 +谭 +酸 +兔 +莒 +睇 +伟 +觑 +羲 +嗜 +宜 +褐 +旎 +辛 +卦 +诘 +筋 +鎏 +溪 +挛 +熔 +阜 +晰 +鳅 +丢 +奚 +灸 +呱 +献 +陉 +黛 +鸪 +甾 +萨 +疮 +拯 +洲 +疹 +辑 +叙 +恻 +谒 +允 +柔 +烂 +氏 +逅 +漆 +拎 +惋 +扈 +湟 +纭 +啕 +掬 +擞 +哥 +忽 +涤 +鸵 +靡 +郗 +瓷 +扁 +廊 +怨 +雏 +钮 +敦 +E +懦 +憋 +汀 +拚 +啉 +腌 +岸 +f +痼 +瞅 +尊 +咀 +眩 +飙 +忌 +仝 +迦 +熬 +毫 +胯 +篑 +茄 +腺 +凄 +舛 +碴 +锵 +诧 +羯 +後 +漏 +汤 +宓 +仞 +蚁 +壶 +谰 +皑 +铄 +棰 +罔 +辅 +晶 +苦 +牟 +闽 +\ +烃 +饮 +聿 +丙 +蛳 +朱 +煤 +涔 +鳖 +犁 +罐 +荼 +砒 +淦 +妤 +黏 +戎 +孑 +婕 +瑾 +戢 +钵 +枣 +捋 +砥 +衩 +狙 +桠 +稣 +阎 +肃 +梏 +诫 +孪 +昶 +婊 +衫 +嗔 +侃 +塞 +蜃 +樵 +峒 +貌 +屿 +欺 +缫 +阐 +栖 +诟 +珞 +荭 +吝 +萍 +嗽 +恂 +啻 +蜴 +磬 +峋 +俸 +豫 +谎 +徊 +镍 +韬 +魇 +晴 +U +囟 +猜 +蛮 +坐 +囿 +伴 +亭 +肝 +佗 +蝠 +妃 +胞 +滩 +榴 +氖 +垩 +苋 +砣 +扪 +馏 +姓 +轩 +厉 +夥 +侈 +禀 +垒 +岑 +赏 +钛 +辐 +痔 +披 +纸 +碳 +“ +坞 +蠓 +挤 +荥 +沅 +悔 +铧 +帼 +蒌 +蝇 +a +p +y +n +g +哀 +浆 +瑶 +凿 +桶 +馈 +皮 +奴 +苜 +佤 +伶 +晗 +铱 +炬 +优 +弊 +氢 +恃 +甫 +攥 +端 +锌 +灰 +稹 +炝 +曙 +邋 +亥 +眶 +碾 +拉 +萝 +绔 +捷 +浍 +腋 +姑 +菖 +凌 +涞 +麽 +锢 +桨 +潢 +绎 +镰 +殆 +锑 +渝 +铬 +困 +绽 +觎 +匈 +糙 +暑 +裹 +鸟 +盔 +肽 +迷 +綦 +『 +亳 +佝 +俘 +钴 +觇 +骥 +仆 +疝 +跪 +婶 +郯 +瀹 +唉 +脖 +踞 +针 +晾 +忒 +扼 +瞩 +叛 +椒 +疟 +嗡 +邗 +肆 +跆 +玫 +忡 +捣 +咧 +唆 +艄 +蘑 +潦 +笛 +阚 +沸 +泻 +掊 +菽 +贫 +斥 +髂 +孢 +镂 +赂 +麝 +鸾 +屡 +衬 +苷 +恪 +叠 +希 +粤 +爻 +喝 +茫 +惬 +郸 +绻 +庸 +撅 +碟 +宄 +妹 +膛 +叮 +饵 +崛 +嗲 +椅 +冤 +搅 +咕 +敛 +尹 +垦 +闷 +蝉 +霎 +勰 +败 +蓑 +泸 +肤 +鹌 +幌 +焦 +浠 +鞍 +刁 +舰 +乙 +竿 +裔 +。 +茵 +函 +伊 +兄 +丨 +娜 +匍 +謇 +莪 +宥 +似 +蝽 +翳 +酪 +翠 +粑 +薇 +祢 +骏 +赠 +叫 +Q +噤 +噻 +竖 +芗 +莠 +潭 +俊 +羿 +耜 +O +郫 +趁 +嗪 +囚 +蹶 +芒 +洁 +笋 +鹑 +敲 +硝 +啶 +堡 +渲 +揩 +』 +携 +宿 +遒 +颍 +扭 +棱 +割 +萜 +蔸 +葵 +琴 +捂 +饰 +衙 +耿 +掠 +募 +岂 +窖 +涟 +蔺 +瘤 +柞 +瞪 +怜 +匹 +距 +楔 +炜 +哆 +秦 +缎 +幼 +茁 +绪 +痨 +恨 +楸 +娅 +瓦 +桩 +雪 +嬴 +伏 +榔 +妥 +铿 +拌 +眠 +雍 +缇 +‘ +卓 +搓 +哌 +觞 +噩 +屈 +哧 +髓 +咦 +巅 +娑 +侑 +淫 +膳 +祝 +勾 +姊 +莴 +胄 +疃 +薛 +蜷 +胛 +巷 +芙 +芋 +熙 +闰 +勿 +窃 +狱 +剩 +钏 +幢 +陟 +铛 +慧 +靴 +耍 +k +浙 +浇 +飨 +惟 +绗 +祜 +澈 +啼 +咪 +磷 +摞 +诅 +郦 +抹 +跃 +壬 +吕 +肖 +琏 +颤 +尴 +剡 +抠 +凋 +赚 +泊 +津 +宕 +殷 +倔 +氲 +漫 +邺 +涎 +怠 +$ +垮 +荬 +遵 +俏 +叹 +噢 +饽 +蜘 +孙 +筵 +疼 +鞭 +羧 +牦 +箭 +潴 +c +眸 +祭 +髯 +啖 +坳 +愁 +芩 +驮 +倡 +巽 +穰 +沃 +胚 +怒 +凤 +槛 +剂 +趵 +嫁 +v +邢 +灯 +鄢 +桐 +睽 +檗 +锯 +槟 +婷 +嵋 +圻 +诗 +蕈 +颠 +遭 +痢 +芸 +怯 +馥 +竭 +锗 +徜 +恭 +遍 +籁 +剑 +嘱 +苡 +龄 +僧 +桑 +潸 +弘 +澶 +楹 +悲 +讫 +愤 +腥 +悸 +谍 +椹 +呢 +桓 +葭 +攫 +阀 +翰 +躲 +敖 +柑 +郎 +笨 +橇 +呃 +魁 +燎 +脓 +葩 +磋 +垛 +玺 +狮 +沓 +砜 +蕊 +锺 +罹 +蕉 +翱 +虐 +闾 +巫 +旦 +茱 +嬷 +枯 +鹏 +贡 +芹 +汛 +矫 +绁 +拣 +禺 +佃 +讣 +舫 +惯 +乳 +趋 +疲 +挽 +岚 +虾 +衾 +蠹 +蹂 +飓 +氦 +铖 +孩 +稞 +瑜 +壅 +掀 +勘 +妓 +畅 +髋 +W +庐 +牲 +蓿 +榕 +练 +垣 +唱 +邸 +菲 +昆 +婺 +穿 +绡 +麒 +蚱 +掂 +愚 +泷 +涪 +漳 +妩 +娉 +榄 +讷 +觅 +旧 +藤 +煮 +呛 +柳 +腓 +叭 +庵 +烷 +阡 +罂 +蜕 +擂 +猖 +咿 +媲 +脉 +【 +沏 +貅 +黠 +熏 +哲 +烁 +坦 +酵 +兜 +× +潇 +撒 +剽 +珩 +圹 +乾 +摸 +樟 +帽 +嗒 +襄 +魂 +轿 +憬 +锡 +〕 +喃 +皆 +咖 +隅 +脸 +残 +泮 +袂 +鹂 +珊 +囤 +捆 +咤 +误 +徨 +闹 +淙 +芊 +淋 +怆 +囗 +拨 +梳 +渤 +R +G +绨 +蚓 +婀 +幡 +狩 +麾 +谢 +唢 +裸 +旌 +伉 +纶 +裂 +驳 +砼 +咛 +澄 +樨 +蹈 +宙 +澍 +倍 +貔 +操 +勇 +蟠 +摈 +砧 +虬 +够 +缁 +悦 +藿 +撸 +艹 +摁 +淹 +豇 +虎 +榭 +ˉ +吱 +d +° +喧 +荀 +踱 +侮 +奋 +偕 +饷 +犍 +惮 +坑 +璎 +徘 +宛 +妆 +袈 +倩 +窦 +昂 +荏 +乖 +K +怅 +撰 +鳙 +牙 +袁 +酞 +X +痿 +琼 +闸 +雁 +趾 +荚 +虻 +涝 +《 +杏 +韭 +偈 +烤 +绫 +鞘 +卉 +症 +遢 +蓥 +诋 +杭 +荨 +匆 +竣 +簪 +辙 +敕 +虞 +丹 +缭 +咩 +黟 +m +淤 +瑕 +咂 +铉 +硼 +茨 +嶂 +痒 +畸 +敬 +涿 +粪 +窘 +熟 +叔 +嫔 +盾 +忱 +裘 +憾 +梵 +赡 +珙 +咯 +娘 +庙 +溯 +胺 +葱 +痪 +摊 +荷 +卞 +乒 +髦 +寐 +铭 +坩 +胗 +枷 +爆 +溟 +嚼 +羚 +砬 +轨 +惊 +挠 +罄 +竽 +菏 +氧 +浅 +楣 +盼 +枢 +炸 +阆 +杯 +谏 +噬 +淇 +渺 +俪 +秆 +墓 +泪 +跻 +砌 +痰 +垡 +渡 +耽 +釜 +讶 +鳎 +煞 +呗 +韶 +舶 +绷 +鹳 +缜 +旷 +铊 +皱 +龌 +檀 +霖 +奄 +槐 +艳 +蝶 +旋 +哝 +赶 +骞 +蚧 +腊 +盈 +丁 +` +蜚 +矸 +蝙 +睨 +嚓 +僻 +鬼 +醴 +夜 +彝 +磊 +笔 +拔 +栀 +糕 +厦 +邰 +纫 +逭 +纤 +眦 +膊 +馍 +躇 +烯 +蘼 +冬 +诤 +暄 +骶 +哑 +瘠 +」 +臊 +丕 +愈 +咱 +螺 +擅 +跋 +搏 +硪 +谄 +笠 +淡 +嘿 +骅 +谧 +鼎 +皋 +姚 +歼 +蠢 +驼 +耳 +胬 +挝 +涯 +狗 +蒽 +孓 +犷 +凉 +芦 +箴 +铤 +孤 +嘛 +坤 +V +茴 +朦 +挞 +尖 +橙 +诞 +搴 +碇 +洵 +浚 +帚 +蜍 +漯 +柘 +嚎 +讽 +芭 +荤 +咻 +祠 +秉 +跖 +埃 +吓 +糯 +眷 +馒 +惹 +娼 +鲑 +嫩 +讴 +轮 +瞥 +靶 +褚 +乏 +缤 +宋 +帧 +删 +驱 +碎 +扑 +俩 +俄 +偏 +涣 +竹 +噱 +皙 +佰 +渚 +唧 +斡 +# +镉 +刀 +崎 +筐 +佣 +夭 +贰 +肴 +峙 +哔 +艿 +匐 +牺 +镛 +缘 +仡 +嫡 +劣 +枸 +堀 +梨 +簿 +鸭 +蒸 +亦 +稽 +浴 +{ +衢 +束 +槲 +j +阁 +揍 +疥 +棋 +潋 +聪 +窜 +乓 +睛 +插 +冉 +阪 +苍 +搽 +「 +蟾 +螟 +幸 +仇 +樽 +撂 +慢 +跤 +幔 +俚 +淅 +覃 +觊 +溶 +妖 +帛 +侨 +曰 +妾 +泗 +· +: +瀘 +風 +Ë +( +) +∶ +紅 +紗 +瑭 +雲 +頭 +鶏 +財 +許 +• +¥ +樂 +焗 +麗 +— +; +滙 +東 +榮 +繪 +興 +… +門 +業 +π +楊 +國 +顧 +é +盤 +寳 +Λ +龍 +鳳 +島 +誌 +緣 +結 +銭 +萬 +勝 +祎 +璟 +優 +歡 +臨 +時 +購 += +★ +藍 +昇 +鐵 +觀 +勅 +農 +聲 +畫 +兿 +術 +發 +劉 +記 +專 +耑 +園 +書 +壴 +種 +Ο +● +褀 +號 +銀 +匯 +敟 +锘 +葉 +橪 +廣 +進 +蒄 +鑽 +阝 +祙 +貢 +鍋 +豊 +夬 +喆 +團 +閣 +開 +燁 +賓 +館 +酡 +沔 +順 ++ +硚 +劵 +饸 +陽 +車 +湓 +復 +萊 +氣 +軒 +華 +堃 +迮 +纟 +戶 +馬 +學 +裡 +電 +嶽 +獨 +マ +シ +サ +ジ +燘 +袪 +環 +❤ +臺 +灣 +専 +賣 +孖 +聖 +攝 +線 +▪ +α +傢 +俬 +夢 +達 +莊 +喬 +貝 +薩 +劍 +羅 +壓 +棛 +饦 +尃 +璈 +囍 +醫 +G +I +A +# +N +鷄 +髙 +嬰 +啓 +約 +隹 +潔 +賴 +藝 +~ +寶 +籣 +麺 +  +嶺 +√ +義 +網 +峩 +長 +∧ +魚 +機 +構 +② +鳯 +偉 +L +B +㙟 +畵 +鴿 +' +詩 +溝 +嚞 +屌 +藔 +佧 +玥 +蘭 +織 +1 +3 +9 +0 +7 +點 +砭 +鴨 +鋪 +銘 +廳 +弍 +‧ +創 +湯 +坶 +℃ +卩 +骝 +& +烜 +荘 +當 +潤 +扞 +係 +懷 +碶 +钅 +蚨 +讠 +☆ +叢 +爲 +埗 +涫 +塗 +→ +楽 +現 +鯨 +愛 +瑪 +鈺 +忄 +悶 +藥 +飾 +樓 +視 +孬 +ㆍ +燚 +苪 +師 +① +丼 +锽 +│ +韓 +標 +è +兒 +閏 +匋 +張 +漢 +Ü +髪 +會 +閑 +檔 +習 +裝 +の +峯 +菘 +輝 +И +雞 +釣 +億 +浐 +K +O +R +8 +H +E +P +T +W +D +S +C +M +F +姌 +饹 +» +晞 +廰 +ä +嵯 +鷹 +負 +飲 +絲 +冚 +楗 +澤 +綫 +區 +❋ +← +質 +靑 +揚 +③ +滬 +統 +産 +協 +﹑ +乸 +畐 +經 +運 +際 +洺 +岽 +為 +粵 +諾 +崋 +豐 +碁 +ɔ +V +2 +6 +齋 +誠 +訂 +´ +勑 +雙 +陳 +無 +í +泩 +媄 +夌 +刂 +i +c +t +o +r +a +嘢 +耄 +燴 +暃 +壽 +媽 +靈 +抻 +體 +唻 +É +冮 +甹 +鎮 +錦 +ʌ +蜛 +蠄 +尓 +駕 +戀 +飬 +逹 +倫 +貴 +極 +Я +Й +寬 +磚 +嶪 +郎 +職 +| +間 +n +d +剎 +伈 +課 +飛 +橋 +瘊 +№ +譜 +骓 +圗 +滘 +縣 +粿 +咅 +養 +濤 +彳 +® +% +Ⅱ +啰 +㴪 +見 +矞 +薬 +糁 +邨 +鲮 +顔 +罱 +З +選 +話 +贏 +氪 +俵 +競 +瑩 +繡 +枱 +β +綉 +á +獅 +爾 +™ +麵 +戋 +淩 +徳 +個 +劇 +場 +務 +簡 +寵 +h +實 +膠 +轱 +圖 +築 +嘣 +樹 +㸃 +營 +耵 +孫 +饃 +鄺 +飯 +麯 +遠 +輸 +坫 +孃 +乚 +閃 +鏢 +㎡ +題 +廠 +關 +↑ +爺 +將 +軍 +連 +篦 +覌 +參 +箸 +- +窠 +棽 +寕 +夀 +爰 +歐 +呙 +閥 +頡 +熱 +雎 +垟 +裟 +凬 +勁 +帑 +馕 +夆 +疌 +枼 +馮 +貨 +蒤 +樸 +彧 +旸 +靜 +龢 +暢 +㐱 +鳥 +珺 +鏡 +灡 +爭 +堷 +廚 +Ó +騰 +診 +┅ +蘇 +褔 +凱 +頂 +豕 +亞 +帥 +嘬 +⊥ +仺 +桖 +複 +饣 +絡 +穂 +顏 +棟 +納 +▏ +濟 +親 +設 +計 +攵 +埌 +烺 +ò +頤 +燦 +蓮 +撻 +節 +講 +濱 +濃 +娽 +洳 +朿 +燈 +鈴 +護 +膚 +铔 +過 +補 +Z +U +5 +4 +坋 +闿 +䖝 +餘 +缐 +铞 +貿 +铪 +桼 +趙 +鍊 +[ +㐂 +垚 +菓 +揸 +捲 +鐘 +滏 +𣇉 +爍 +輪 +燜 +鴻 +鮮 +動 +鹞 +鷗 +丄 +慶 +鉌 +翥 +飮 +腸 +⇋ +漁 +覺 +來 +熘 +昴 +翏 +鲱 +圧 +鄉 +萭 +頔 +爐 +嫚 +г +貭 +類 +聯 +幛 +輕 +訓 +鑒 +夋 +锨 +芃 +珣 +䝉 +扙 +嵐 +銷 +處 +ㄱ +語 +誘 +苝 +歸 +儀 +燒 +楿 +內 +粢 +葒 +奧 +麥 +礻 +滿 +蠔 +穵 +瞭 +態 +鱬 +榞 +硂 +鄭 +黃 +煙 +祐 +奓 +逺 +* +瑄 +獲 +聞 +薦 +讀 +這 +樣 +決 +問 +啟 +們 +執 +説 +轉 +單 +隨 +唘 +帶 +倉 +庫 +還 +贈 +尙 +皺 +■ +餅 +產 +○ +∈ +報 +狀 +楓 +賠 +琯 +嗮 +禮 +` +傳 +> +≤ +嗞 +Φ +≥ +換 +咭 +∣ +↓ +曬 +ε +応 +寫 +″ +終 +様 +純 +費 +療 +聨 +凍 +壐 +郵 +ü +黒 +∫ +製 +塊 +調 +軽 +確 +撃 +級 +馴 +Ⅲ +涇 +繹 +數 +碼 +證 +狒 +処 +劑 +< +晧 +賀 +衆 +] +櫥 +兩 +陰 +絶 +對 +鯉 +憶 +◎ +p +e +Y +蕒 +煖 +頓 +測 +試 +鼽 +僑 +碩 +妝 +帯 +≈ +鐡 +舖 +權 +喫 +倆 +ˋ +該 +悅 +ā +俫 +. +f +s +b +m +k +g +u +j +貼 +淨 +濕 +針 +適 +備 +l +/ +給 +謢 +強 +觸 +衛 +與 +⊙ +$ +緯 +變 +⑴ +⑵ +⑶ +㎏ +殺 +∩ +幚 +─ +價 +▲ +離 +ú +ó +飄 +烏 +関 +閟 +﹝ +﹞ +邏 +輯 +鍵 +驗 +訣 +導 +歷 +屆 +層 +▼ +儱 +錄 +熳 +ē +艦 +吋 +錶 +辧 +飼 +顯 +④ +禦 +販 +気 +対 +枰 +閩 +紀 +幹 +瞓 +貊 +淚 +△ +眞 +墊 +Ω +獻 +褲 +縫 +緑 +亜 +鉅 +餠 +{ +} +◆ +蘆 +薈 +█ +◇ +溫 +彈 +晳 +粧 +犸 +穩 +訊 +崬 +凖 +熥 +П +舊 +條 +紋 +圍 +Ⅳ +筆 +尷 +難 +雜 +錯 +綁 +識 +頰 +鎖 +艶 +□ +殁 +殼 +⑧ +├ +▕ +鵬 +ǐ +ō +ǒ +糝 +綱 +▎ +μ +盜 +饅 +醬 +籤 +蓋 +釀 +鹽 +據 +à +ɡ +辦 +◥ +彐 +┌ +婦 +獸 +鲩 +伱 +ī +蒟 +蒻 +齊 +袆 +腦 +寧 +凈 +妳 +煥 +詢 +偽 +謹 +啫 +鯽 +騷 +鱸 +損 +傷 +鎻 +髮 +買 +冏 +儥 +両 +﹢ +∞ +載 +喰 +z +羙 +悵 +燙 +曉 +員 +組 +徹 +艷 +痠 +鋼 +鼙 +縮 +細 +嚒 +爯 +≠ +維 +" +鱻 +壇 +厍 +帰 +浥 +犇 +薡 +軎 +² +應 +醜 +刪 +緻 +鶴 +賜 +噁 +軌 +尨 +镔 +鷺 +槗 +彌 +葚 +濛 +請 +溇 +緹 +賢 +訪 +獴 +瑅 +資 +縤 +陣 +蕟 +栢 +韻 +祼 +恁 +伢 +謝 +劃 +涑 +總 +衖 +踺 +砋 +凉 +籃 +駿 +苼 +瘋 +昽 +紡 +驊 +腎 +﹗ +響 +杋 +剛 +嚴 +禪 +歓 +槍 +傘 +檸 +檫 +炣 +勢 +鏜 +鎢 +銑 +尐 +減 +奪 +惡 +θ +僮 +婭 +臘 +ū +ì +殻 +鉄 +∑ +蛲 +焼 +緖 +續 +紹 +懮! +䰾 +䲁 +丌 +丏 +丟 +並 +乂 +乗 +乩 +乭 +乹 +亀 +亂 +亅 +亊 +亠 +亰 +亶 +亹 +仂 +仉 +仏 +仛 +仫 +仮 +仳 +仵 +仼 +伃 +伋 +伕 +伝 +伷 +伾 +佀 +佁 +佇 +佈 +佉 +佋 +佔 +併 +佹 +佺 +佾 +侁 +侅 +侊 +侖 +侘 +侚 +侞 +価 +侶 +侷 +侹 +俁 +俅 +俋 +俌 +俍 +俛 +俠 +俳 +俴 +俶 +俽 +倈 +倓 +倖 +倗 +倞 +倢 +倣 +値 +倧 +倮 +倻 +偁 +偊 +偍 +偓 +偪 +偲 +側 +偵 +偸 +傃 +傉 +傑 +傒 +傕 +傖 +傜 +傭 +債 +傾 +僅 +僉 +僊 +働 +僔 +僕 +僖 +僙 +僜 +僡 +僩 +僭 +僰 +僱 +僴 +儁 +儂 +儆 +儇 +儈 +儉 +儐 +儔 +儕 +儘 +儚 +儞 +償 +儦 +儫 +儲 +儷 +儺 +儻 +儼 +兌 +児 +兕 +兗 +兪 +冂 +円 +冇 +冊 +冑 +冖 +冧 +冨 +冪 +冫 +冴 +凃 +凜 +凞 +凪 +凵 +刄 +刎 +別 +刦 +刧 +刼 +則 +剋 +剏 +剝 +剣 +剮 +劄 +劊 +劌 +劔 +劬 +効 +劼 +勔 +勖 +勗 +勛 +勞 +勣 +勦 +勱 +勲 +勳 +勵 +勷 +勸 +勻 +匂 +匄 +匏 +匚 +匱 +匸 +卋 +卍 +卐 +卣 +卬 +卮 +卲 +卹 +卺 +卻 +卽 +厓 +厔 +厙 +厭 +厰 +厲 +厴 +厶 +叄 +収 +叕 +叡 +叵 +吔 +吥 +吳 +吶 +呂 +呉 +呎 +呾 +咁 +咑 +咗 +咘 +咟 +咥 +咲 +咼 +咾 +哂 +哏 +哐 +哖 +哱 +唃 +唄 +唫 +唭 +唵 +唸 +啁 +啍 +啚 +啞 +啣 +啯 +啱 +啲 +啷 +喈 +喚 +喢 +喦 +喪 +喲 +喼 +嗄 +嗆 +嗇 +嗊 +嗎 +嗚 +嗢 +嗩 +嗶 +嗹 +嘅 +嘆 +嘍 +嘏 +嘔 +嘗 +嘚 +嘜 +嘥 +嘩 +嘮 +嘯 +嘰 +嘸 +噍 +噏 +噓 +噝 +噠 +噥 +噦 +噯 +噰 +噲 +噴 +噸 +噹 +嚇 +嚈 +嚐 +嚕 +嚗 +嚙 +嚟 +嚤 +嚦 +嚧 +嚨 +嚩 +嚮 +嚳 +嚶 +嚿 +囀 +囂 +囃 +囉 +囑 +囒 +囓 +囝 +団 +囧 +囪 +囮 +囯 +囲 +図 +囶 +囷 +圂 +圄 +圉 +圏 +圓 +圪 +圯 +坌 +坖 +坣 +坬 +坮 +坵 +垈 +垍 +垕 +垞 +垯 +垰 +垵 +垻 +垿 +埅 +埇 +埈 +埏 +埒 +埜 +埡 +埤 +埧 +埨 +埪 +埮 +埴 +埵 +埻 +埼 +堅 +堈 +堉 +堊 +堍 +堖 +堝 +堦 +堮 +堯 +堺 +塀 +塅 +塆 +塋 +塏 +塙 +塜 +塡 +塢 +塤 +塨 +塩 +塭 +塰 +塱 +塲 +塵 +塹 +塽 +墀 +墎 +増 +墘 +墜 +墡 +墣 +墫 +墬 +墮 +墱 +墳 +墺 +墼 +墾 +壄 +壆 +壋 +壌 +壎 +壔 +壘 +壙 +壞 +壟 +壠 +壢 +壩 +壯 +壱 +壺 +変 +夊 +夠 +夤 +夾 +奀 +奐 +奣 +奩 +奫 +奭 +奮 +妀 +妁 +妏 +妑 +妠 +妧 +妭 +妸 +妺 +姀 +姁 +姃 +姈 +姉 +姍 +姦 +姪 +姫 +姮 +姵 +姶 +姸 +娋 +娍 +娎 +娖 +娛 +娫 +娳 +娸 +婁 +婑 +婯 +婻 +婼 +媃 +媊 +媐 +媓 +媖 +媗 +媜 +媞 +媧 +媭 +媯 +媺 +媼 +媿 +嫄 +嫈 +嫘 +嫪 +嫲 +嫳 +嫵 +嫺 +嫻 +嬅 +嬈 +嬋 +嬌 +嬛 +嬝 +嬡 +嬤 +嬨 +嬪 +嬬 +嬭 +嬸 +嬾 +嬿 +孀 +孆 +孋 +孌 +孮 +孻 +孿 +宍 +実 +宧 +宮 +寀 +寁 +寈 +寊 +寔 +寖 +寗 +寘 +寛 +寜 +寢 +審 +寯 +尋 +尗 +尢 +尪 +屄 +屇 +屍 +屓 +屚 +屜 +屢 +屬 +屭 +屺 +屻 +岀 +岈 +岡 +岣 +岧 +岪 +岬 +岰 +岵 +岻 +峅 +峇 +峍 +峘 +峚 +峠 +峴 +峼 +峽 +崁 +崈 +崍 +崐 +崑 +崒 +崗 +崘 +崙 +崚 +崞 +崟 +崠 +崢 +崱 +崵 +崶 +嵎 +嵒 +嵕 +嵖 +嵗 +嵙 +嵛 +嵜 +嵨 +嵮 +嵰 +嵴 +嵻 +嵿 +嶁 +嶃 +嶄 +嶇 +嶋 +嶌 +嶍 +嶒 +嶔 +嶗 +嶝 +嶠 +嶢 +嶦 +嶧 +嶬 +嶰 +嶲 +嶴 +嶷 +嶸 +嶼 +巂 +巄 +巆 +巋 +巌 +巎 +巑 +巒 +巔 +巖 +巘 +巛 +巰 +巶 +巻 +巿 +帔 +帙 +帡 +帢 +帳 +幀 +幃 +幗 +幟 +幣 +幪 +幫 +幵 +幷 +幾 +庀 +庁 +広 +庢 +庲 +庼 +廁 +廂 +廄 +廆 +廈 +廋 +廌 +廍 +廑 +廔 +廕 +廙 +廝 +廞 +廟 +廡 +廢 +廧 +廨 +廩 +廬 +廱 +廸 +廻 +廼 +弁 +弅 +弇 +弉 +弐 +弒 +弔 +弖 +弢 +弨 +弸 +弾 +彀 +彄 +彅 +彆 +彊 +彎 +彔 +彖 +彘 +彙 +彜 +彞 +彠 +彡 +彣 +彥 +彫 +彿 +徂 +徑 +從 +徠 +徧 +徫 +徬 +徭 +徴 +徸 +忉 +忝 +忞 +忬 +忯 +忳 +怍 +怙 +怛 +怵 +恆 +恊 +恥 +恵 +悆 +悛 +悝 +悞 +悧 +悪 +悰 +悳 +惇 +惔 +惣 +惱 +惲 +愃 +愆 +愍 +愐 +愒 +愔 +愜 +愨 +愭 +愴 +愷 +愼 +愾 +慄 +慘 +慚 +慜 +慟 +慣 +慥 +慮 +慳 +慾 +憂 +憊 +憍 +憐 +憑 +憓 +憕 +憙 +憚 +憤 +憫 +憲 +憺 +憻 +懃 +懇 +懌 +懍 +懐 +懣 +懮 +懲 +懶 +懸 +懺 +懼 +懽 +懾 +戇 +戔 +戕 +戙 +戡 +戥 +戦 +戩 +戰 +戱 +戲 +戸 +戻 +戽 +扆 +扥 +抃 +抇 +抦 +拋 +拏 +拝 +拡 +拺 +挙 +挵 +挹 +挻 +挾 +捒 +捜 +捦 +捨 +捩 +捫 +捭 +捱 +掃 +掄 +掙 +掛 +掞 +掟 +採 +掾 +揀 +揄 +揆 +揔 +揮 +揺 +搖 +搗 +搠 +搢 +搳 +搵 +搶 +搾 +摂 +摜 +摟 +摠 +摭 +摯 +摳 +摴 +摵 +摶 +摺 +摻 +摽 +撈 +撐 +撓 +撖 +撙 +撚 +撣 +撥 +撫 +撲 +撳 +撾 +撿 +擁 +擇 +擊 +擋 +擔 +擠 +擥 +擬 +擯 +擰 +擱 +擲 +擴 +擷 +擺 +擼 +擾 +攏 +攔 +攖 +攜 +攞 +攢 +攣 +攤 +攪 +攬 +攴 +攷 +攽 +敍 +敎 +敔 +敗 +敘 +敫 +敭 +敵 +敻 +敾 +斂 +斃 +斎 +斕 +斖 +斝 +斬 +斷 +斿 +旂 +旃 +旄 +旉 +旙 +旛 +旡 +旲 +旳 +旻 +旼 +旽 +旾 +旿 +昃 +昉 +昍 +昐 +昚 +昛 +昜 +昞 +昡 +昣 +昤 +昪 +昫 +昰 +昺 +晈 +晉 +晊 +晙 +晛 +晝 +晩 +晪 +晫 +晭 +晸 +暅 +暈 +暉 +暊 +暌 +暎 +暏 +暐 +暕 +暘 +暝 +暟 +暠 +暦 +暫 +暱 +暲 +暸 +暻 +暾 +曄 +曅 +曆 +曇 +曌 +曔 +曖 +曠 +曧 +曨 +曩 +曮 +曶 +曷 +曺 +曽 +朊 +朏 +朓 +朖 +朧 +朶 +杁 +杌 +杓 +杙 +杣 +杤 +杧 +杬 +杴 +杻 +杼 +枏 +枖 +枛 +枠 +枡 +枲 +枹 +柁 +柃 +柉 +柊 +柎 +柝 +柟 +柰 +柵 +柶 +柷 +査 +柾 +栃 +栄 +栐 +栒 +栜 +栝 +栞 +栨 +栲 +栴 +栻 +桄 +桕 +桙 +桜 +桝 +桫 +桱 +桲 +桴 +桿 +梀 +梂 +梃 +梉 +梔 +梘 +梟 +梠 +梣 +梫 +梱 +梶 +梽 +棄 +棆 +棐 +棓 +棖 +棗 +棡 +棧 +棨 +棩 +棪 +棫 +棲 +棶 +棹 +棻 +棼 +椆 +椇 +椏 +椙 +椥 +椪 +椲 +椵 +楙 +楡 +楢 +楤 +楧 +楨 +楫 +楮 +楯 +楳 +榊 +榍 +榎 +榑 +榖 +榗 +榘 +榢 +榣 +榤 +榦 +榲 +榿 +槀 +槁 +槃 +槊 +槓 +槔 +槙 +槤 +槩 +槭 +槰 +槱 +槳 +槺 +槻 +槼 +樀 +樁 +樅 +樆 +樋 +樑 +樗 +樘 +樞 +権 +樫 +樺 +樻 +橈 +橐 +橒 +橓 +橚 +橢 +橫 +橿 +檄 +檇 +檉 +檊 +檎 +檜 +檞 +檠 +檡 +檢 +檣 +檦 +檨 +檯 +檳 +檵 +檻 +檽 +櫂 +櫃 +櫆 +櫈 +櫓 +櫚 +櫛 +櫞 +櫟 +櫨 +櫪 +櫱 +櫸 +櫻 +櫾 +櫿 +欄 +欉 +欏 +欒 +欖 +欞 +欥 +欸 +欹 +欽 +歊 +歎 +歛 +歩 +歲 +歳 +歴 +歿 +殂 +殄 +殑 +殘 +殛 +殞 +殟 +殤 +殭 +殮 +殯 +殲 +殳 +毀 +毆 +毉 +毌 +毎 +毐 +毖 +毘 +毬 +毴 +毸 +毿 +氂 +氈 +氍 +氫 +氬 +氷 +氹 +氻 +氾 +汎 +汜 +汧 +汭 +沄 +沆 +沇 +沍 +沒 +沖 +沘 +沚 +沜 +沢 +沨 +沯 +沺 +況 +泂 +泆 +泇 +泐 +泖 +泚 +洌 +洎 +洢 +洣 +洤 +洨 +洩 +洸 +洹 +浄 +浛 +浞 +浟 +浡 +浤 +浯 +浵 +浹 +涙 +涼 +淍 +淎 +淏 +淓 +淛 +淠 +淥 +淪 +淯 +淰 +淵 +淶 +淸 +淺 +淽 +渃 +済 +渉 +渋 +渕 +渙 +渟 +渦 +渫 +渼 +渽 +渾 +湉 +湊 +湔 +湜 +湞 +湣 +湥 +湧 +湳 +湴 +湼 +満 +溁 +溈 +溋 +溎 +準 +溙 +溦 +溲 +溵 +溼 +滀 +滄 +滅 +滈 +滉 +滌 +滎 +滝 +滯 +滲 +滷 +滸 +滹 +滻 +滽 +滾 +漇 +漈 +漎 +漚 +漣 +漬 +漲 +漴 +漵 +漷 +漸 +漼 +漿 +潁 +潑 +潛 +潟 +潯 +潰 +潲 +潽 +潾 +潿 +澀 +澁 +澂 +澆 +澇 +澉 +澋 +澌 +澔 +澗 +澠 +澣 +澥 +澪 +澮 +澯 +澱 +澻 +濁 +濊 +濋 +濘 +濙 +濫 +濬 +濰 +濲 +濶 +濺 +濼 +濾 +瀁 +瀅 +瀆 +瀉 +瀍 +瀏 +瀔 +瀕 +瀝 +瀞 +瀟 +瀠 +瀦 +瀧 +瀨 +瀬 +瀰 +瀲 +瀴 +瀶 +瀾 +灃 +灊 +灑 +灘 +灝 +灤 +灧 +灴 +災 +炁 +炆 +炘 +炟 +炤 +炱 +炲 +炷 +炻 +烉 +烋 +烒 +烔 +烝 +烱 +烴 +焃 +焄 +焌 +焓 +焜 +焞 +焴 +焻 +焿 +煇 +煉 +煐 +煒 +煔 +煕 +煚 +煠 +煩 +煬 +煳 +煵 +煶 +熅 +熇 +熈 +熒 +熖 +熗 +熜 +熤 +熯 +熲 +熺 +熼 +熾 +熿 +燄 +燉 +燊 +燏 +燐 +燔 +燝 +燫 +燬 +燭 +燹 +燻 +燼 +燾 +燿 +爀 +爌 +爔 +爚 +爛 +爝 +爿 +牁 +牂 +牆 +牕 +牖 +牘 +牝 +牠 +牻 +牼 +牽 +犂 +犎 +犖 +犛 +犢 +犧 +犨 +犰 +犴 +犽 +狎 +狓 +狛 +狟 +狦 +狨 +狳 +狶 +狷 +狹 +狻 +猁 +猄 +猇 +猊 +猙 +猞 +猢 +猨 +猳 +猶 +猺 +猻 +獁 +獃 +獄 +獇 +獎 +獏 +獢 +獣 +獬 +獮 +獯 +獰 +獵 +獷 +獺 +獼 +獾 +玀 +玆 +玎 +玏 +玓 +玕 +玗 +玘 +玙 +玠 +玡 +玢 +玧 +玨 +玭 +玶 +玹 +玾 +珅 +珌 +珎 +珖 +珝 +珡 +珤 +珦 +珧 +珪 +珮 +珵 +珹 +珽 +琁 +琄 +琇 +琍 +琎 +琡 +琤 +琱 +琹 +琺 +琿 +瑀 +瑂 +瑆 +瑈 +瑊 +瑋 +瑑 +瑒 +瑝 +瑠 +瑢 +瑣 +瑤 +瑥 +瑧 +瑨 +瑯 +瑱 +瑳 +瑴 +瑺 +璄 +璆 +璉 +璌 +璕 +璘 +璙 +璚 +璠 +璡 +璣 +璥 +璦 +璪 +璫 +璬 +璮 +璱 +璵 +璸 +璹 +璽 +璿 +瓈 +瓊 +瓌 +瓏 +瓑 +瓔 +瓖 +瓘 +瓚 +瓛 +瓞 +甂 +甌 +甍 +甑 +甕 +甡 +甦 +甪 +畀 +畇 +畊 +畋 +畎 +畑 +畝 +畠 +畢 +畧 +畬 +畯 +異 +畳 +畷 +疇 +疊 +疋 +疍 +疒 +疕 +痍 +痙 +痟 +痩 +痲 +痺 +瘍 +瘓 +瘜 +瘞 +瘡 +瘧 +瘰 +瘺 +癀 +癆 +癇 +癒 +癘 +癟 +癡 +癢 +癤 +癥 +癩 +癬 +癭 +癮 +癯 +癰 +癱 +癲 +発 +皐 +皚 +皛 +皝 +皞 +皰 +皷 +皸 +盃 +盋 +盌 +盞 +盡 +監 +盦 +盧 +盨 +盩 +盪 +盫 +盷 +盺 +眀 +県 +眛 +眜 +眥 +眵 +眾 +睜 +睞 +睥 +睪 +睭 +睺 +瞋 +瞞 +瞢 +瞫 +瞼 +瞽 +矇 +矍 +矚 +矧 +矯 +砢 +砩 +砫 +砮 +砯 +砲 +砳 +砵 +硃 +硇 +硏 +硐 +硓 +硜 +硤 +硨 +硭 +硯 +碕 +碡 +碪 +碭 +碸 +碻 +碽 +磔 +磘 +磙 +磜 +磡 +磪 +磯 +磱 +磲 +磵 +磻 +磾 +礄 +礎 +礐 +礑 +礒 +礙 +礠 +礦 +礪 +礫 +礬 +礮 +礱 +礽 +祂 +祆 +祇 +祋 +祏 +祓 +祕 +祧 +祹 +祿 +禃 +禇 +禍 +禎 +禑 +禓 +禔 +禕 +禘 +禛 +禟 +禠 +禤 +禨 +禩 +禰 +禱 +禵 +禼 +禿 +秈 +秠 +秳 +稅 +稈 +稉 +稑 +稘 +稙 +稜 +稟 +稱 +稲 +稺 +稾 +穀 +穈 +穉 +穌 +積 +穎 +穟 +穠 +穡 +穢 +穣 +穫 +窅 +窋 +窣 +窩 +窪 +窮 +窯 +窰 +窶 +窺 +竄 +竅 +竇 +竈 +竊 +竑 +竜 +竦 +竩 +竻 +笄 +笘 +笞 +笥 +笩 +笪 +笭 +笮 +笯 +笱 +笳 +笹 +筅 +筊 +筌 +筍 +筘 +筥 +筦 +筧 +筬 +筭 +筲 +筳 +筶 +筻 +箆 +箇 +箋 +箏 +箑 +箒 +箜 +範 +篊 +篋 +篌 +篔 +篠 +篤 +篥 +篩 +篭 +篯 +篳 +簀 +簃 +簉 +簍 +簑 +簕 +簗 +簞 +簠 +簫 +簷 +簹 +簺 +簽 +簾 +籀 +籌 +籐 +籙 +籛 +籜 +籝 +籟 +籠 +籥 +籪 +籬 +籮 +籲 +籾 +粄 +粍 +粦 +粩 +糀 +糌 +糎 +糞 +糢 +糧 +糬 +糰 +糴 +糶 +糸 +糹 +糺 +糾 +紂 +紆 +紇 +紈 +紉 +紐 +紑 +紓 +紕 +紘 +紙 +紛 +紜 +紝 +紞 +紮 +紱 +紲 +紳 +紵 +紺 +紿 +絃 +絆 +経 +絎 +絕 +絛 +絜 +絞 +絢 +絨 +絪 +絳 +絵 +絹 +絺 +綃 +綈 +綎 +綏 +綖 +継 +続 +綜 +綝 +綞 +綠 +綢 +綣 +綧 +綬 +綮 +綰 +綳 +綴 +綸 +綺 +綻 +綽 +綾 +綿 +緁 +緃 +緄 +緈 +緊 +緋 +総 +緒 +緘 +緜 +緝 +緞 +締 +緡 +緤 +編 +緩 +緬 +緱 +緲 +練 +縂 +縄 +縈 +縉 +縊 +縕 +縛 +縝 +縞 +縠 +縡 +縯 +縱 +縴 +縵 +縷 +縹 +縻 +績 +繃 +繆 +繇 +繒 +繕 +繖 +繙 +繚 +繞 +繩 +繫 +繭 +繰 +繳 +繻 +繼 +繽 +繾 +纁 +纈 +纍 +纏 +纓 +纔 +纕 +纖 +纘 +纜 +缶 +缽 +罃 +罅 +罈 +罉 +罌 +罍 +罟 +罨 +罰 +罳 +罵 +罶 +罷 +罽 +羂 +羆 +羈 +羋 +羕 +羗 +羣 +羥 +羨 +羱 +翀 +翂 +翃 +翕 +翙 +翜 +翬 +翮 +翹 +耎 +耔 +耨 +耬 +聃 +聒 +聟 +聰 +聱 +聳 +聴 +聶 +聽 +聾 +肅 +肏 +肜 +肫 +肸 +肹 +胂 +胅 +胇 +胊 +胙 +胝 +胼 +脅 +脇 +脈 +脛 +脣 +脩 +脫 +脬 +脭 +脳 +脷 +脹 +腧 +腫 +腳 +膂 +膣 +膥 +膩 +膮 +膽 +膾 +膿 +臉 +臍 +臏 +臚 +臞 +臟 +臠 +臯 +舂 +舉 +舎 +舘 +舢 +舥 +舨 +舩 +舲 +舺 +艅 +艉 +艋 +艎 +艏 +艔 +艙 +艚 +艱 +艸 +艽 +芑 +芛 +芨 +芴 +芻 +苅 +苤 +苧 +苳 +苺 +苻 +苾 +茀 +茇 +茈 +茘 +茚 +茛 +茝 +茮 +茲 +茷 +茺 +荅 +荇 +荊 +荎 +荖 +荳 +莕 +莖 +莙 +莛 +莢 +莧 +莩 +莿 +菈 +菉 +菍 +菑 +菔 +菝 +菥 +菫 +菰 +菴 +菶 +菸 +菹 +菺 +菼 +菾 +萇 +萐 +萠 +萡 +萣 +萩 +萵 +萹 +葃 +葊 +葎 +葙 +葜 +葝 +葦 +葯 +葰 +葶 +葷 +蒍 +蒎 +蒐 +蒓 +蒔 +蒗 +蒞 +蒢 +蒧 +蒨 +蒭 +蒯 +蒴 +蒹 +蒺 +蒼 +蒾 +蓀 +蓁 +蓂 +蓆 +蓍 +蓘 +蓚 +蓧 +蓨 +蓪 +蓭 +蓯 +蓳 +蓽 +蔆 +蔎 +蔔 +蔕 +蔘 +蔝 +蔞 +蔣 +蔥 +蔦 +蔭 +蔴 +蔵 +蕁 +蕅 +蕎 +蕑 +蕖 +蕘 +蕚 +蕡 +蕢 +蕩 +蕪 +蕭 +蕷 +蕺 +蕻 +薀 +薆 +薊 +薌 +薐 +薑 +薔 +薗 +薘 +薙 +薜 +薞 +薟 +薨 +薫 +薲 +薷 +薸 +薺 +薾 +薿 +藎 +藟 +藦 +藨 +藪 +藶 +藸 +藹 +藺 +蘂 +蘄 +蘅 +蘊 +蘋 +蘐 +蘓 +蘗 +蘘 +蘚 +蘞 +蘢 +蘧 +蘩 +蘵 +蘶 +蘿 +虉 +虓 +虖 +虛 +虜 +虧 +虨 +虯 +虵 +虺 +蚆 +蚋 +蚍 +蚖 +蚡 +蚢 +蚵 +蚺 +蚼 +蛄 +蛉 +蛍 +蛑 +蛞 +蛯 +蛸 +蛺 +蛻 +蜆 +蜉 +蜑 +蜞 +蜢 +蜣 +蜨 +蜮 +蜯 +蜾 +蝀 +蝍 +蝓 +蝕 +蝘 +蝚 +蝟 +蝣 +蝤 +蝦 +蝨 +蝮 +蝯 +蝰 +蝲 +蝸 +螄 +螅 +螋 +螐 +螔 +螞 +螠 +螢 +螣 +螥 +螫 +螭 +螶 +螻 +螽 +螾 +蟄 +蟅 +蟊 +蟌 +蟎 +蟜 +蟥 +蟪 +蟫 +蟬 +蟯 +蟲 +蟳 +蟴 +蟶 +蟻 +蠂 +蠃 +蠅 +蠆 +蠊 +蠋 +蠍 +蠐 +蠑 +蠘 +蠙 +蠟 +蠣 +蠱 +蠲 +蠵 +蠶 +蠷 +蠻 +衂 +衎 +衕 +衚 +衜 +衝 +衞 +衽 +袓 +袛 +袞 +袴 +袾 +裊 +裎 +裒 +裖 +裬 +裵 +裾 +裿 +褌 +褍 +褎 +褘 +褙 +褞 +褧 +褫 +褭 +褸 +褻 +襌 +襖 +襞 +襠 +襤 +襦 +襪 +襯 +襲 +襴 +襶 +襻 +襾 +覇 +覈 +規 +覓 +覚 +覡 +覦 +覧 +覬 +覲 +観 +覽 +覿 +觔 +觙 +觚 +觜 +觭 +觱 +觴 +觶 +觿 +訁 +訃 +訇 +訌 +討 +訏 +訐 +訒 +訔 +訕 +訖 +託 +訛 +訝 +訟 +訥 +訴 +訶 +註 +証 +詁 +詆 +詈 +詐 +詒 +詔 +評 +詛 +詞 +詠 +詡 +詣 +詥 +詧 +詫 +詭 +詮 +詰 +詳 +詵 +詼 +誄 +誅 +誇 +認 +誒 +誕 +誡 +誣 +誤 +誥 +誦 +誨 +說 +読 +誰 +誴 +誹 +誼 +誾 +談 +諍 +諏 +諒 +論 +諗 +諜 +諟 +諠 +諡 +諤 +諦 +諧 +諪 +諫 +諭 +諮 +諱 +諲 +諳 +諴 +諶 +諷 +諸 +諺 +諼 +謀 +謁 +謂 +謄 +謊 +謌 +謎 +謏 +謐 +謔 +謖 +謗 +謙 +謚 +謜 +謠 +謤 +謨 +謩 +謫 +謬 +謳 +謾 +譏 +譓 +譔 +譙 +譚 +譞 +譫 +譭 +譯 +議 +譲 +譳 +譴 +譽 +譿 +讃 +讌 +讎 +讓 +讖 +讙 +讚 +讜 +讞 +谿 +豈 +豎 +豔 +豢 +豨 +豬 +豳 +豸 +豿 +貐 +貒 +貓 +貘 +貞 +貤 +貧 +貪 +貫 +責 +貮 +貯 +貲 +貳 +貶 +貸 +貺 +貽 +賁 +賂 +賃 +賄 +賈 +賊 +賑 +賒 +賔 +賕 +賚 +賞 +賡 +賤 +賦 +賨 +賬 +賭 +賹 +賺 +賻 +賽 +賾 +贄 +贅 +贇 +贊 +贌 +贍 +贓 +贔 +贖 +贛 +赧 +赬 +趐 +趕 +趖 +趨 +趺 +趼 +跅 +跏 +跗 +跡 +跣 +跩 +踎 +踐 +踰 +踴 +蹕 +蹟 +蹠 +蹤 +蹯 +蹺 +蹻 +躂 +躄 +躉 +躋 +躍 +躑 +躒 +躔 +躝 +躪 +躰 +軀 +軋 +軔 +軛 +軟 +転 +軫 +軲 +軸 +軹 +軺 +軻 +軼 +軾 +較 +輄 +輅 +輋 +輒 +輓 +輔 +輛 +輞 +輟 +輥 +輦 +輩 +輬 +輭 +輶 +輻 +輾 +輿 +轀 +轂 +轄 +轅 +轆 +轍 +轎 +轘 +轝 +轟 +轤 +辭 +辮 +辯 +辵 +辺 +辻 +込 +迴 +迵 +迺 +逈 +逋 +逌 +逎 +逕 +逖 +逤 +逨 +逴 +遄 +遊 +違 +遘 +遙 +遜 +遞 +遯 +遲 +遶 +遷 +遹 +遺 +遼 +邁 +邇 +邉 +邊 +邙 +邠 +邲 +邽 +邾 +郃 +郄 +郇 +郋 +郞 +郟 +郤 +郪 +郳 +郷 +郿 +鄃 +鄆 +鄋 +鄑 +鄒 +鄔 +鄖 +鄗 +鄘 +鄚 +鄜 +鄠 +鄤 +鄧 +鄩 +鄫 +鄰 +鄲 +鄳 +鄴 +酃 +酆 +酈 +酎 +酏 +酔 +酢 +酩 +酴 +酺 +酼 +醁 +醂 +醃 +醅 +醞 +醢 +醣 +醮 +醯 +醾 +醿 +釁 +釆 +釋 +釐 +釒 +釓 +釔 +釕 +釗 +釘 +釙 +釚 +釤 +釦 +釧 +釩 +釪 +釭 +釴 +釵 +釷 +釹 +釺 +鈀 +鈁 +鈄 +鈇 +鈈 +鈉 +鈊 +鈍 +鈏 +鈐 +鈑 +鈔 +鈕 +鈖 +鈞 +鈢 +鈣 +鈥 +鈦 +鈫 +鈮 +鈰 +鈳 +鈷 +鈸 +鈹 +鈾 +鈿 +鉀 +鉆 +鉈 +鉉 +鉋 +鉍 +鉏 +鉑 +鉓 +鉗 +鉚 +鉛 +鉞 +鉟 +鉤 +鉦 +鉬 +鉭 +鉲 +鉶 +鉷 +鉸 +鉻 +鉾 +鉿 +銂 +銃 +銅 +銋 +銍 +銓 +銕 +銖 +銚 +銜 +銠 +銣 +銥 +銦 +銨 +銩 +銪 +銫 +銬 +銱 +銲 +銳 +銶 +銹 +銻 +銼 +銾 +鋁 +鋅 +鋆 +鋇 +鋌 +鋏 +鋐 +鋒 +鋕 +鋗 +鋙 +鋡 +鋤 +鋥 +鋦 +鋨 +鋮 +鋯 +鋰 +鋱 +鋳 +鋶 +鋸 +鋹 +錀 +錏 +錐 +錒 +錕 +錘 +錚 +錞 +錟 +錠 +錡 +錢 +錨 +錫 +錬 +錮 +錳 +錸 +錻 +鍀 +鍇 +鍈 +鍉 +鍍 +鍏 +鍔 +鍘 +鍛 +鍝 +鍟 +鍠 +鍥 +鍩 +鍬 +鍱 +鍳 +鍶 +鍷 +鍺 +鍼 +鍾 +鎂 +鎅 +鎊 +鎌 +鎓 +鎔 +鎗 +鎘 +鎚 +鎛 +鎣 +鎦 +鎧 +鎪 +鎬 +鎭 +鎰 +鎳 +鎵 +鏃 +鏇 +鏈 +鏊 +鏌 +鏐 +鏑 +鏓 +鏗 +鏘 +鏝 +鏞 +鏟 +鏤 +鏦 +鏳 +鏴 +鏵 +鏷 +鏻 +鏽 +鐃 +鐇 +鐈 +鐓 +鐔 +鐙 +鐠 +鐤 +鐦 +鐧 +鐫 +鐬 +鐭 +鐮 +鐲 +鐳 +鐸 +鐺 +鐽 +鐿 +鑀 +鑁 +鑂 +鑄 +鑅 +鑊 +鑌 +鑑 +鑛 +鑠 +鑣 +鑨 +鑪 +鑭 +鑰 +鑲 +鑴 +鑷 +鑼 +鑾 +鑿 +閂 +閆 +閉 +閎 +閒 +閔 +閘 +閜 +閞 +閦 +閨 +閬 +閭 +閰 +閱 +閶 +閹 +閻 +閼 +閾 +閿 +闆 +闇 +闈 +闊 +闋 +闌 +闍 +闐 +闓 +闔 +闕 +闖 +闘 +闞 +闡 +闢 +闥 +阭 +阯 +陁 +陔 +陘 +陜 +陝 +陞 +陬 +陸 +険 +隄 +隈 +隊 +階 +隕 +隣 +險 +隰 +隱 +隲 +隳 +隴 +隷 +隸 +隻 +雋 +雑 +雖 +雛 +雝 +雩 +雫 +雱 +霅 +霈 +霊 +霑 +霙 +霤 +霧 +霨 +霶 +霽 +靁 +靂 +靄 +靉 +靚 +靫 +靬 +靭 +靺 +靼 +鞆 +鞏 +鞞 +鞥 +鞦 +鞨 +鞮 +鞴 +韁 +韃 +韆 +韋 +韌 +韑 +韙 +韜 +韞 +韠 +韡 +韮 +韺 +韾 +頁 +頃 +項 +須 +頊 +頌 +頍 +頎 +頏 +預 +頑 +頒 +頗 +領 +頜 +頠 +頦 +頫 +頴 +頵 +頷 +頸 +頹 +頻 +頼 +顆 +額 +顎 +顒 +顓 +顕 +顗 +願 +顙 +顛 +顥 +顫 +顰 +顱 +顳 +顴 +颮 +颯 +颱 +颶 +颺 +颼 +飆 +飈 +飠 +飡 +飢 +飥 +飩 +飪 +飫 +飭 +飴 +飽 +餃 +餄 +餉 +餌 +餎 +餒 +餓 +餗 +餚 +餛 +餞 +餡 +餵 +餺 +餾 +餿 +饋 +饌 +饑 +饒 +饗 +饞 +饟 +饢 +馘 +馛 +馦 +馭 +馯 +馱 +馳 +馼 +駁 +駄 +駅 +駆 +駐 +駑 +駒 +駔 +駘 +駙 +駛 +駝 +駟 +駢 +駭 +駰 +駱 +騁 +騂 +騄 +騅 +騋 +騎 +騏 +験 +騖 +騙 +騤 +騨 +騫 +騭 +騮 +騶 +騾 +驁 +驃 +驄 +驅 +驌 +驍 +驎 +驒 +驕 +驚 +驛 +驟 +驢 +驤 +驥 +驩 +驪 +骯 +髀 +髎 +髏 +髑 +髒 +髡 +髭 +髲 +髷 +髹 +鬄 +鬅 +鬆 +鬍 +鬚 +鬢 +鬥 +鬧 +鬨 +鬩 +鬪 +鬬 +鬮 +鬯 +鬱 +鬹 +鬻 +魃 +魈 +魋 +魍 +魎 +魕 +魘 +魛 +魞 +魟 +魣 +魨 +魩 +魮 +魯 +魴 +魷 +鮀 +鮁 +鮃 +鮄 +鮊 +鮋 +鮍 +鮐 +鮑 +鮒 +鮓 +鮗 +鮜 +鮟 +鮠 +鮡 +鮣 +鮨 +鮪 +鮫 +鮭 +鮰 +鮸 +鮹 +鮻 +鯀 +鯁 +鯃 +鯇 +鯊 +鯏 +鯒 +鯓 +鯔 +鯕 +鯖 +鯗 +鯙 +鯛 +鯡 +鯢 +鯤 +鯧 +鯪 +鯭 +鯮 +鯰 +鯶 +鯷 +鯻 +鯿 +鰂 +鰃 +鰆 +鰈 +鰉 +鰍 +鰏 +鰒 +鰓 +鰕 +鰗 +鰛 +鰜 +鰟 +鰣 +鰤 +鰧 +鰨 +鰩 +鰭 +鰮 +鰱 +鰲 +鰳 +鰶 +鰷 +鰹 +鰺 +鰻 +鰼 +鰾 +鱀 +鱂 +鱅 +鱇 +鱈 +鱉 +鱊 +鱒 +鱓 +鱔 +鱖 +鱗 +鱘 +鱚 +鱝 +鱟 +鱠 +鱣 +鱥 +鱧 +鱨 +鱮 +鱰 +鱲 +鱵 +鱷 +鱺 +鳧 +鳩 +鳰 +鳴 +鳶 +鳽 +鴆 +鴇 +鴉 +鴒 +鴓 +鴕 +鴗 +鴛 +鴝 +鴞 +鴟 +鴡 +鴣 +鴦 +鴫 +鴯 +鴰 +鴴 +鵂 +鵄 +鵎 +鵐 +鵑 +鵒 +鵓 +鵙 +鵜 +鵝 +鵞 +鵟 +鵠 +鵡 +鵪 +鵯 +鵰 +鵲 +鵵 +鵼 +鵾 +鶆 +鶇 +鶉 +鶒 +鶓 +鶘 +鶚 +鶡 +鶥 +鶩 +鶬 +鶯 +鶲 +鶹 +鶺 +鶻 +鶼 +鶿 +鷂 +鷉 +鷎 +鷓 +鷙 +鷚 +鷟 +鷥 +鷦 +鷫 +鷯 +鷲 +鷳 +鷸 +鸊 +鸌 +鸐 +鸑 +鸕 +鸘 +鸚 +鸛 +鸜 +鸝 +鸞 +鹮 +鹵 +鹹 +鹼 +麅 +麇 +麈 +麊 +麐 +麞 +麩 +麪 +麴 +麹 +麼 +麿 +黁 +黇 +黌 +黐 +黙 +黥 +黧 +黨 +黴 +黶 +黻 +黼 +黽 +黿 +鼂 +鼇 +鼈 +鼉 +鼐 +鼒 +鼕 +鼢 +鼩 +鼯 +鼱 +鼴 +鼷 +齒 +齕 +齡 +齣 +齦 +齧 +齲 +齶 +龎 +龐 +龑 +龔 +龕 +龜 +龝 +龠 +ず +梌 +叀 +晢 +媸 +錾 +鐖 +䰡 +櫬 +锱 +υ +鼗 +媪 +澴 +苈 +眴 +𝜏 +缱 +𝜶 +조 +晡 +≡ +ࠀ +н +廇 +嗛 +篚 +ώ +莰 +윤 +纚 +𢢞 +闼 +熌 +饎 +蓊 +倅 +년 +聭 +耩 +≅ + +≺ +诌 + + + +耰 +菗 +僦 +⇣ +甊 +冓 +缷 +枊 +沕 +𝐴 +❹ +형 +秾 + +щ +厹 + +˗ +疔 +䩦 +髴 +⨂ +莏 +≧ +垆 +銌 +桤 +隤 +ギ +벽 +⑸ +✘ +̣ +辶 +铼 +게 +へ +獶 +藳 +祍 +黉 +跱 +⽬ +埙 +だ +蓣 +亯 +구 + +鹎 + +⾃ +楩 +⌘ +汏 +虒 +谖 + +﹜ +劖 +じ +瑇 +㮑 +揕 +⇔ +𤔲 +薉 +𝑾 +硗 +〈 +は +盍 +狽 +ж +я +挆 +槨 +γ +阏 +襕 +𝜉 +❖ +└ +총 +시 + +ν +刲 +ด +嬲 +绤 +𝐰 +飦 +扱 +帻 +辀 +廴 +к +蔖 +– +같 +熭 +巣 + +裛 +𝑶 +蓺 +蔊 +그 +匳 +玚 +Ц +璲 +련 +𨒅 +변 +㤵 +饫 +𨚵 +X +筇 +镡 +ⅳ +𝛿 +轸 +𝑭 +鋈 +鵩 +縁 +˙ +ɿ +𝒴 +㝮 +𝜂 +栠 +橦 +緇 +肰 + +跼 +䭜 +蜅 +訸 +㻶 +𝑉 +เ + +嚢 +鼔 +𝒆 +閫 +阃 +𥞹 +杪 +誊 + +鲋 +骍 +τ +莾 +凊 +﹡ +箚 +蛱 +樯 +喾 +幞 +欕 +搡 +戉 +瘖 +᙭ +砟 +ས +∤ +ี +メ +𝝁 +穑 +渶 +𦬁 +서 +⊗ +穇 +⌊ +を +鐻 +蘤 +≫ +◐ +汙 +蒒 +⑷ +蹨 +x +裥 +嶤 +ァ +従 +침 +稂 +𪧶 +で +𝑹 +⑫ +闩 +槫 +舮 +𝑿 +戁 +간 +戯 + +ོ +æ +わ +チ +砉 +Ψ +劂 +・ +В +鬭 +钔 +盭 +黓 +⎯ +𝐏 +함 +钪 +𝑸 +澰 +래 +藒 +龃 +瞀 +伧 +♂ +¹ +ƞ +澼 +餍 +倶 +ð + +嚱 +跬 +貙 +磿 +娬 +氿 +鹘 +𝐁 +摅 +ヱ +傰 +พ +湝 +ˆ +Л +翾 +≃ +에 +滫 +С +嫕 +あ +㈣ +ⅇ +垧 +⺮ +∠ +躐 +硌 +眢 +乧 +𝑐 +泃 +轫 +↔ +㎝ +≜ +⽇ +撟 +⟹ +脿 + +㸁 +靯 +う +⁠ +懬 +搷 +瀓 +ˁ +ⅲ +훈 + +お +𝛄 +瓅 +葻 +猋 +ら +⾳ +喣 +⽿ +č +鈎 +⑤ +å +阸 +름 +て +圮 +⚫ +⻄ +胨 +琠 +戄 +箄 +𝒳 +鼍 +й +⼲ +廪 +睃 +囫 +͞ +죄 + +호 +み +饩 + +⊆ +х +欚 +瘚 +≯ +瞗 +ž +嗵 +근 +ま + +⾔ +罥 +ʹ +鼃 +д +✳ +ゃ +悊 +𝐅 +영 +@ +ɣ +𝛷 +𝜁 +ǜ +犄 +⽂ +ཆ +胒 +﹦ +谫 +є +・ +𝐻 +狺 +백 +舳 +𝑁 +ษ + +𝜓 +𝒦 +盕 +유 +𪯐 +茑 +礤 +거 +コ +肂 +鸻 +ã +⑬ +铚 +걸 +磳 +綷 +𝒚 +舭 +腚 +㈩ +榱 +𝐌 +畾 +馐 +罾 +∕ +𝔛 +𝑬 +ç +楬 +櫽 +顼 +阋 + +꺼 +諛 +̌ +้ +㮀 +乵 +沬 +⼀ +ư +鲠 +䜩 +樉 +鹈 +搧 +轾 +䟒 +등 +𝝉 +잠 +짤 +า +蘨 +愪 +ྟ +慪 +鮝 +𝛑 +び +𥞪 +𝐾 +レ +교 +ྲ +달 +𝐩 + +殹 +踇 +狥 +ベ +미 +매 +⑭ +钁 +Θ +못 +𝜇 +侂 +ę +ฟ +邶 +諣 +颃 +𡢕 +昑 +𝒖 +讱 +﹤ +緵 +骢 +朢 +骘 +ℜ + +ゞ +愬 +鹬 + +ッ +ར +급 +‚ +鸶 +蒫 +餽 +蓃 +ข +辠 +ğ +氺 +暆 +笿 +迚 +甝 +ή +徼 +旣 +ϖ +ヲ +倕 +匽 +蓱 +리 +剷 +ู +逪 + +나 +堋 +焠 +Δ +炑 +爫 +蒖 +𝒓 +悫 +𝛱 + +𝐮 +騧 +ⅴ +饾 +贠 +𝚲 +崀 +磀 +柤 +肈 +⻮ +鶄 +狲 +跫 +지 +鳇 +痖 +跂 +秫 +ʒ +합 +ไ +迨 +𝜐 + +屦 +𝐶 +; +辎 +∵ +鴁 +撏 +ς +⟶ +薮 +㟪 +犮 +ب +ビ +藡 +甏 + +眡 +訿 +鉥 +媵 + +柫 +𝒞 +ь +萏 +ค +트 +訮 +汚 +眚 +〞 +き +ほ +刖 +髄 +蘀 +や +ة +诹 +т +ན +𝒃 +掼 +䓁 +僥 +팰 +枵 +✔ +³ +ེ +鼖 +屖 +鍮 +砇 +カ +舐 +牴 +𝜎 +㡿 +攉 +⽤ +晅 +労 +蛕 +𝐽 +Ʃ +く +穽 +孥 +𝒏 + + +ɬ +玦 +檮 +ョ +∥ +중 +萯 +呲 +䰈 +새 + +釶 + +ɢ +⊂ +臮 + +梼 +デ +骖 +ス +蹩 +羼 +▽ +Π +≪ +匛 +𝐼 +稊 +่ +茠 +䢉 +秝 +茐 +齎 +そ + +芕 +噚 +癉 +蹱 +蓜 +𝐬 +ϑ +е +瀋 +ϕ +χ +镟 +霂 +隒 +▱ +ヶ +撄 +둔 +¢ +こ +跲 +莻 +𝑠 +輮 +็ +堠 +푟 +赕 +◦ +ا +런 +帒 +汘 +̱ +尥 +蘠 +𦟜 +옥 +腠 +夨 +⩾ +𝑝 +歯 +刱 +여 +け +溘 +釰 +肍 +擗 +矱 +鍌 +芧 +술 +발 +鼫 +舾 +⼯ +𝝓 +ƒ +怸 +པ +𣐼 +疎 +铷 +Η +⑺ +蒏 +림 +⃛ +゜ +褴 +𨒪 +れ +揢 +さ +櫫 +櫑 +䋎 +灋 +櫜 +诓 +❶ +𝐃 +Q +袳 +ℒ +菂 + +荙 +ℛ +⁄ +堙 +贋 +̅ +鳏 +̂ +、 +茍 +泜 +𝑈 +즉 +噔 + + +迓 +Ⅸ +❷ +이 +_ +⾊ +Ö +铥 +耹 +䶮 + +무 + +セ +饳 +อ +篾 +통 +‒ +ย +덕 +말 +艨 +Ω +𝐨 +螓 +澐 +巠 +⋅ +钶 +도 +鸱 +齍 +恑 +褛 +剟 +준 +勶 +𠟠 +ß +箅 +𝑆 +悃 +蘥 + +Ξ +𝑘 +妣 +𝑖 +𝐑 +纡 +釿 +⺌ +ヴ +𝕀 +涻 +箙 +塚 + +⼠ +墈 +∷ +疴 +ク +ㄕ +𝒂 +蒪 +蓡 + +鷇 +瘏 +𣹳 +橰 +嵚 +帀 +주 +ド +盓 +爇 +φ +觋 +𝜑 +钍 +화 +표 +Ɛ +篰 +명 +週 +с +蓛 +裢 +穜 +㱃 +玊 +鲕 +蒕 +箪 +⑯ +苽 +矦 +偰 +盝 +佊 +僨 +駉 +𝑳 +머 +ª +絅 + +锒 + +苆 +ั +𝛻 +碹 +咺 +竝 +и +づ +강 +辁 +́ +铽 +纩 +齑 +𝝎 +어 +ユ +躡 +𝒄 +ซ +畛 +鸰 +ླ + +骉 +❸ +揲 +廃 +湋 +𝑲 + + +旤 + +蹷 +钌 +국 +豙 +鬳 + +ɛ +轳 +俜 +眄 +萮 +𝐡 +颵 +箓 +魑 +𝑅 +漍 +ℤ + +逡 +학 +浖 +ょ +¬ +怴 +𝛤 +怿 +祌 +纥 +𝒑 +⃑ +棅 +笵 +낭 +栦 +⑰ +บ +𝔽 +𝑇 +埝 +⽓ +孱 +埶 +匜 +鸼 + + +벌 +ル +锸 +斫 +妟 +뽀 +昬 +댁 +ʂ +暯 +夳 +ノ +堞 +懘 +榼 +鞫 +오 +𝑡 +偑 +戗 +∴ +伥 +끝 +𬌗 +稯 +岜 +Ε +犲 +𩓞 +연 +鹚 + +ག +诜 +嗍 +倥 +鳣 +庑 +屾 +雚 + +椄 +颏 +酤 +𝒋 +欛 + +း +려 +缋 +¾ +ゴ +籑 +笤 +鞛 +鏺 +蓒 +설 +緍 +⑩ +迀 +鼋 +ɮ +위 +锪 +∨ +滆 +€ +躅 +鋓 +柀 +䐶 +啎 +𝛵 +骃 +ć +갈 +卨 +い +𝑺 +鸲 +壻 +偯 +𝑞 +譖 +곤 +溍 + +噫 +순 + +𝑽 +ы +赑 +蓸 +鸮 +稃 +っ +詗 +으 +⨀ +屮 +俦 +伛 +畱 +늬 +𝑂 +朼 +沰 +겨 +з +骀 +鸩 +𝜈 +º +苊 +诎 +皤 + +하 +̀ +砑 +凷 +翄 +𝑛 +赪 +≮ +浗 +𝐍 +û +オ +ƹ +𝜅 +묘 +曛 +鳊 +𝛩 +癹 +磒 +ば +⑨ +礆 + +乼 + +∽ +褱 +藴 +縶 +觥 +に +식 +凫 + +佥 +槷 +阍 +䰍 +졸 +전 +葢 +㝸 +も +⻔ +遽 + +蹰 +𝛺 +裏 +། +를 + +ろ +짭 + +ぐ +싶 +渰 +⊤ +浳 +൯ +∃ +옛 +蟞 +과 +芠 +飖 +⼆ +敶 +粝 +𥃩 +坿 +䩉 +𝑯 +「 +矰 + +사 +𝛶 +𝑎 +挐 +푎 +동 +ℝ +Γ +︃ +珒 +鹍 +κ +鑓 +傁 +惓 +臿 +丣 +悒 +侔 +ñ +訳 +櫭 +賛 +觏 +辂 +覅 +濓 +堿 +擪 +฀ +𝑵 +扨 +嫫 +珰 + +寃 +𝒔 +曱 +髣 +인 +≌ +莵 +踳 +ⅱ +Ø +⌋ +¯ +挢 +̇ +﹪ +哕 +𦫳 + +襛 +昳 +铙 +铫 +軱 +汔 +ネ + +躩 +옷 +ถ +엄 +皊 +臑 +𧄝 +𝑃 + +䢅 +𝐝 +𝒍 +ℱ +𝐓 +蓾 +𝑻 +䋁 +裼 +개 +ത +𝒊 +僪 +瞂 +𦞠 +요 + ̄ +荍 +𝜔 +ф +峣 +庋 +檏 +袢 +绬 +Σ +향 +钫 +え +枅 +≝ +荦 +들 +勍 +ö +𝒕 +툰 +遬 +𝐵 +擧 +咢 +钘 + +𝒢 +Ⅷ +➢ +讧 +ω +簟 +廐 +刳 +阘 +б +⊘ +髟 +臓 +루 +⎧ +诳 +у +诮 +蠪 +梹 +耤 +パ +ن +∆ + +𝑫 +น +べ +坼 + +𝑤 +褽 +憼 +심 +∇ +迖 +휆 +叚 +없 +⼿ +钖 +斠 +䪵 +胠 +𝜋 +殽 +剜 +⾝ +− +慸 +𝛽 +椔 +⟩ +皦 +筚 +奰 +Å +물 +𝒐 +嫱 +钆 +ï +∪ +⇢ +ş + +㖞 +璗 +葸 +殢 +𝜺 +夲 +骒 +ち +회 +선 +睒 +轡 +ξ + +鲧 +镞 +碜 +놈 +Å +紴 + +⇤ +ྷ +⑪ +喟 +𦼰 + +蔩 +埦 +𝜆 +耋 +˜ +한 +舣 +馓 +⑻ + +ɐ +椘 +し +莐 +辔 +憰 +碛 +⁃ +飏 +颀 +跽 +⇥ +赀 +撺 +襜 +ɒ +袧 +л +정 +꾸 +콩 + +박 +缑 +柈 + +樲 +𝑮 +詘 +µ +𝑷 +鹪 +𝛼 +차 +讬 +掯 +硎 +𝑨 +舄 +‹ +누 +バ +ก +萀 +兇 +숙 +貍 + +踈 +친 +𝜽 +摰 +甿 +坜 +遑 +삼 +배 +Μ +을 +譊 +沩 +빈 +飑 +钹 +镨 +鐉 +宭 +桗 +ə +歺 +А +⇒ +锞 +𝒪 +棊 +愓 +莶 +琲 +འ +プ +་ +𝐿 +艟 +欬 +ิ +в +ų +纻 +㎎ +婄 +Ρ +歟 +椢 +粜 +종 +خ +ね +剞 +베 +斄 +幠 +ト +疛 +よ +╳ +醳 +군 +諂 +芰 +穋 +禆 +길 +秊 +噙 +y +锓 +⁵ + +拠 +Ĥ +𝑒 +窬 +抈 +︰ +퐶 +铳 +각 +ش +錉 +ù +臝 +闶 +𝒟 +芐 +韎 +권 +萚 + +ど +羮 +镕 +欔 +瘐 +받 +𝑚 +𢦟 +髤 +腙 +⽽ +상 +铘 +장 +𤇈 +ニ +凂 +ȷ +육 +а +살 +雠 +荑 +태 +穤 +ɯ + +圬 +楑 +단 +ง +⾯ +λ +⁰ +성 +萿 +缌 + +毣 +矅 + +푚 +˘ +貣 +∂ +은 +ė +䌛 +경 +せ + +拫 +⅞ +餕 +鐨 +翭 +ื +ɵ +⺍ +Փ +▬ +ว +희 +짐 +屙 +洫 +ေ +∏ +臜 + +剸 +芓 +운 +∓ +계 +祔 +鶵 +𝝅 +柂 +訢 +禊 +扽 +恫 +𝜙 +狢 +勠 +ི +𝜒 +จ +铯 +ྱ +𝑙 +蟇 +울 +莤 +牱 +𝒗 +詇 +靃 +殓 +栍 +踟 +ي + +鲄 +㓷 +贳 +ナ +鲓 +𝒙 +薁 +Χ +侪 +恌 +㰤 +목 +̄ +丱 +― +𝛔 +𝑔 + +鸷 +﹣ +籢 +脢 +δ +窭 +‐ +阒 +석 +아 +ォ +두 +𝐦 +浬 +搰 +褃 + +ལ +乇 +腘 +眊 +偬 +Ⅻ +ℳ +畤 +芟 +曈 +飧 +堌 +═ +谶 +櫝 +嬑 +冋 +嗌 +抜 + +腜 +공 +𝜕 +ん +鲭 +郐 +酓 +𝑍 +⾏ +⼹ +㐬 +고 +𝟑 +缯 +碤 +濩 +ʰ +佻 +Υ +∗ +賅 +집 +跹 + +ɾ +蔧 +다 +栫 +庰 +欤 +洿 +捾 +𝜍 +𝑄 + +攆 +夂 +檿 +荜 +ц +柖 +唅 +ท +ɦ +讦 +습 +锿 + +纆 +檑 +殰 +歠 +鼑 +Ä +و +☑ +緦 +悁 +偞 +ส +絭 +저 +踯 +騀 +쉰 +蒷 +揗 +儵 +ρ +薅 +ャ +‗ +犒 +旟 + +승 +ང +소 +𝛴 +瀜 +锜 +𣱼 +谳 + +軑 +ポ +楁 +𝑜 +袚 +ྐ +Á +𝑑 +鲀 +牾 +鬌 +푥 +¤ +呴 +‑ +✓ +민 +⼦ +ⅰ +⽉ +擿 +ч +➝ +가 +≳ +漥 +踖 +枧 +莝 +⻘ +傧 +𝑢 +ю +赍 +q +絫 +о +ア +ℐ +髫 +齢 +湎 +甓 +揿 + +ℋ +怹 +자 +⑦ +져 +椟 +鶟 +浕 +ー +𝛂 +偾 +⃗ +喑 +鹡 +≦ +磽 +ⅆ + +葂 +鶱 +ン +貇 +褡 +▴ +것 +喿 +つ +闚 + +盳 +𝟒 +雔 +洭 +殫 +楎 +£ +^ +葲 +𝟖 +眗 +棸 +潏 +熕 +𝟐 +품 +သ +樳 +⁴ +イ +㈢ +렴 +脰 +돈 +⑮ +钲 +𝒘 +訽 +爟 +幨 +枻 +亷 +猃 +σ +黩 +嘑 +榹 +⁡ +鍧 +𝑋 +枘 +𝑥 +원 +睚 +饔 +酲 + +顸 +람 +𝐫 +脁 +½ +긴 +ʔ +Ⅰ +旆 +죽 + +궐 + +奡 +㭃 +杝 +忾 +ม +掮 +饍 +摛 +쓰 +慊 +踣 +푅 +悽 +礅 +毄 +俓 +데 +冣 +만 +驖 +𤉣 +̃ +廾 +匵 +阇 +𤸫 +戣 +刌 +剕 +杅 +ο +蒥 +ː +癃 +蒬 +â +À +嗥 +우 +ケ +」 +聩 +ë +吽 +檌 +苰 +⑹ +Ÿ + +⑥ +노 + +˄ +鸫 +廛 +㱿 +鹛 +赟 +℅ +菿 +辳 +阼 +𝒇 +哋 +♀ +氕 +砤 +† +舡 +偝 +飜 +넓 +鈜 +ầ +닝 +禚 +匲 +〉 +Ф +锊 +ϵ +∙ +惛 +箧 +𝑦 +宬 +𝑀 +臙 +𩡶 + +¡ +潀 +수 +敃 +か +أ + +苌 +饘 +咝 +𝑼 +∘ +涷 +樍 +厣 +蝼 +墻 +Ñ +秅 +︒ +∅ +↵ +葹 +ỽ +𝑗 +た +일 +蒊 +치 +竢 +¨ +佢 +潵 +櫼 +軵 +𧕿 +倨 +歱 +瘅 +𝐭 +黾 +脼 +ê +땋 +鶷 +ё +鹯 +掲 +\ +𨳡 + +Г +ι +탁 +溞 +殪 +菭 +𝛥 +擛 +録 +㥥 +∀ +锇 +锃 +편 +餬 +瘻 +ཟ +豤 +로 +ɸ +ℎ +랑 +ʃ +鼹 +臬 +ŋ +巵 +譁 +w +窳 +蓔 +䉜 +浧 +酂 +⒀ +མ +椠 +槖 + +衄 +𨐨 +̿ +ご +⺗ +顇 +𝒫 +搕 +ミ +𪪋 +« +䣛 +鹩 +鴈 +п +는 +䋰 +𝛹 +犕 +呌 +𝒮 +𝑪 +鋎 +嚻 +杚 +䕊 +蠜 +ザ +𝐂 +☐ +𥘔 + +赜 +Ν +廦 +瓾 +↦ +龉 +⽅ +棂 +𝜌 +큰 +踔 +ラ +。 +剤 +황 +⅜ +僈 +骈 +ɕ +О +м +椑 +𝑟 +纇 +𝑓 +𝐖 +Ш +⎦ +旹 +삶 +ึ +囵 + +す +ⅈ +ت +踽 +陴 +餱 +ป +막 +紟 +방 +剀 +簖 +闬 +キ +鋉 +납 +タ +谵 +詑 +족 +垔 +荋 +旰 +𥘸 +窾 + +신 +𝐎 +𝛃 + + +﹒ +縰 +猲 +郘 +파 +⊕ +镘 +𠊃 + +呔 +𝜗 +ʊ +𝛬 +辏 +陭 +𝑕 +庴 +ʐ +瀌 +倄 +蕞 +ل +絷 +러 +든 +བ +柅 +› +傚 +睠 +Ⅺ +饐 +蔮 +ɟ +莈 +𤨨 +⋯ +犭 +𝜃 +𥹳 +초 +⎞ +遌 +眇 +蓗 +綅 +토 +裰 + +⼼ +虘 +𝑌 +觯 +漶 +钤 +讒 +げ +螬 +鲹 +咷 +蓞 +僂 +𝒉 +が +桮 +포 +쟈 +柽 +ウ +綟 +缟 +䁾 +钭 +烕 +厠 + +孭 +礉 +­ +谲 + +⼤ +𝒒 +旒 +㫄 + + +鳓 +挈 +재 +ད +𧊒 +蝝 +𝐺 +懱 +芢 + +ⅼ +Ú +𝑱 +翯 +芶 +厽 +遉 +鲒 +η +𝛾 +趮 +虆 +汸 +嬖 +糈 +窸 + +추 +棬 +懔 +硁 +ぶ +抟 +胕 +𝑧 +⌦ +碫 +Ⅵ +속 +𝐚 + +Ç +행 +Ɵ +⑱ +贽 +箤 +р +敒 +衤 +풍 +⊛ +慉 +ψ +© +광 +ℕ +屣 +臌 +旵 +臁 +‡ +癎 +閡 +𡵂 +襐 +畟 + +萪 +娒 +瘼 +庳 +천 +觌 +Α +と +奁 +煃 +؟ +◯ +의 +攎 + +𝐞 +J +𢦒 +❑ +벤 +𝐒 +リ +蒉 +𝐱 +朹 +㈤ +„ +䗬 +Ι +ཀ +𡜵 +俣 +疬 + +墥 +吣 +У +榀 +絟 + +旓 +𝐛 +𝜷 +瑮 +≔ +笾 +ζ +김 +暵 +𝜹 +逶 +萙 +欇 +俧 +籴 +絰 +揶 +ǔ +宂 +伩 +Ө +菞 +梕 +エ +蹚 +제 +Š +沝 + +𦳢 +𝒱 +揠 +ℏ +𝐹 +箝 +규 +氒 +⼊ +鰌 +筮 +⼩ +대 +𝔾 +䄃 +𝐸 +﹕ +부 + +刓 +ȵ +缛 +기 +缊 +𝟎 +𨟻 +め +捃 +⽚ +鍪 +灆 +迻 +⾦ +荗 +v +𡒊 +汍 +斲 +姕 + +儴 +偒 +辤 +芀 +蝥 +ń +臥 +椀 +㪚 +š +담 +ø +䈰 +睏 +テ +﹐ + +참 +楘 +𝒌 +劓 +ɪ +醑 +绹 +諓 +𝛉 +ズ +怼 +埘 +臽 +잡 +镢 +𝜖 +진 +踬 +谠 +﹥ +髺 +腞 +현 +嘭 +ʑ +蓌 +〜 +锠 +蓶 +る + +∼ +枎 +緗 +薠 +芈 +耪 +𝒎 +謼 + +瘳 +诨 +忤 +œ +⇡ + +鲣 +ⅵ +Τ +㯮 + +㶲 +ⅹ +䙴 +坴 +馑 +缹 +椦 +ô +⼈ +フ +誏 +э +哙 +愎 + +埽 +祲 +마 +殍 +菋 +懑 + +辇 +鍤 +𝜀 +ɜ +り +𝐷 +㕞 +瑵 + +蔨 +Ⅶ +镴 +ภ +𝝀 +𢶡 +⃝ +ơ +柢 +𧴗 +ʁ +攙 + +な +𝑏 +挴 +餧 +絇 +怄 +曏 +洟 +軷 +∉ +咍 +⎪ +樛 +𝑣 +웃 +椊 +黢 +𝑩 +誩 +伓 +戠 +橥 +⟨ +豰 +懥 +涖 +綘 +詬 +ွ +˚ +刽 +ɑ +격 +稖 +𝟏 +禝 +墦 +𝑊 + +択 +檙 +∝ +颟 +诂 +𝐧 +踲 +𝜛 +𝑰 + +鲬 +⁸ +ǎ +문 + +紬 +楲 +䊭 +枨 +膑 +õ +던 +Ⅴ +秏 +馔 +拊 +缗 +隠 +牀 +淲 +鬰 +綵 +鶑 +詎 +慙 +劒 +閲 +鎡 +淒 +屨 +鉢 +扃 +鳬 +閤 +馿 +翛 +駸 +蛩 +驂 +嵲 +覩 +牋 +湲 +蓴 +賸 +遡 +翫 +嫋 +惻 +妬 +罇 +龏 +鵷 +閙 +鎸 +朅 +巉 +僞 +洶 +磧 +筯 +慇 +鷁 +斾 +斸 +酹 +幘 +羶 +閽 +薤 +泝 +覯 +怱 +缾 +氳 +躊 +檝 +擣 +虀 +誚 +甃 +艤 +櫳 +醖 +壚 +涴 +崦 +秪 +潄 +濆 +駡 +坰 +闉 +縑 +躕 +颻 +燠 +輙 +鏁 +嶮 +薖 +輈 +綆 +覷 +蹔 +攄 +鐩 +鑱 +羃 +轓 +麤 +驀 +欵 +亙 +朮 +邐 +箠 +怳 +鋩 +鷃 +篘 +蔌 +諄 +旐 +慍 +欷 +頽 +蜺 +覊 +禋 +秔 +蜩 +嚬 +櫺 +軿 +痾 +笻 +猱 +毳 +泬 +竚 +齪 +搘 +欻 +釂 +嚥 +誑 +籩 +韉 +幙 +舠 +飣 +颭 +颸 +歔 +屧 +巇 +艫 +壖 +牓 +薝 +銛 +皪 +枿 +剗 +歘 +鸂 +邅 +衒 +荄 +鴂 +嫗 +顦 +瀼 +繄 +搆 +狖 +貰 +醆 +秖 +蹀 +頳 +纒 +憇 +溽 +澦 +讐 +灩 +箎 +螿 +鰥 +飀 +澒 +矻 +枌 +擡 +鷖 +齬 +纊 +挼 +齟 +錙 +屩 +蠧 +氅 +漭 +躚 +翺 +瘵 +螘 +鵶 +㶁 +斵 +饜 +岏 +䍦 +哢 +彴 +豗 +靨 +鋋 +禳 +覘 +鞚 +擻 +涘 +溷 +沴 +嶓 +褊 +罏 +齏 +醲 +繅 +舴 +釃 +厖 +闤 +閴 +藂 +譍 +糲 +籞 +躞 +餳 +遰 +倐 +嘖 +鷀 +暍 +韝 +蘺 +齁 +醽 +醨 +憀 +䕷 +跕 +拶 +垤 +鸎 +漙 +躭 +傴 +蕕 +嘒 +晻 +糵 +閈 +嫠 +斁 +鶗 +詶 +囘 +羇 +橛 +鞬 +磈 +粃 +阨 +塿 +敧 +氊 +芼 +襆 +迍 +鬛 +憒 +釅 +蓐 +奬 +頲 +髠 +抔 +葅 +槧 +跧 +揜 +渇 +餔 +罝 +裯 +蹁 +椶 +幰 +逰 +饁 +棃 +噀 +轔 +囁 +惸 +騑 +呪 +鬐 +綌 +醤 +䆉 +艣 +鐶 +夐 +摐 +鸇 +睎 +羝 +紼 +鞿 +噉 +磑 +闗 +筩 +駮 +蹌 +縢 +闠 +鬙 +谹 +榾 +觳 +皁 +晼 +啗 +簣 +騕 +蹣 +麰 +觧 +怊 +朞 +鱍 +蟣 +畚 +蠁 +舁 +瞇 +劚 +鰐 +籯 +鬖 +柮 +飱 +帟 +酇 +崿 +霪 +緌 +踆 +欃 +縟 +搦 +琖 +搥 +倀 +觫 +遝 +嚅 +聵 +藋 +筴 +喁 +窻 +穏 +牥 +鎩 +礲 +膴 +鞵 +醵 +斚 +縲 +裀 +齷 +騃 +袠 +谺 +靦 +帬 +鯈 +曀 +灔 +崷 +趂 +徯 +闃 +洧 +獪 +稏 +煢 +歈 +呶 +壈 +襃 +旴 +檟 +簦 +谽 +箵 +謡 +慝 +餖 +稌 +朣 +禖 +嚀 +嵂 +黷 +甖 +洑 +釡 +蕝 +甆 +翣 +篸 +隮 +滃 +裌 +蔀 +籖 +秬 +鷴 +啅 +慼 +捄 +咮 +睟 +譎 +嘷 +駃 +檥 +蹐 +窊 +駞 +雘 +趯 +篲 +讋 +睍 +毰 +憗 +鳷 +嚲 +圞 +歃 +緼 +賫 +籋 +繐 +麏 +灕 +礧 +歜 +飇 +鵁 +疢 +賖 +窆 +螮 +毹 +硉 +耡 +甔 +篛 +娭 +髩 +燋 +輜 +籧 +撝 +嬙 +徃 +驦 +𡏖 +麕 +馹 +覔 +鶠 +褷 +綍 +螗 +嗈 +彯 +篨 +炰 +鄮 +噞 +尅 +鷰 +鋭 +饉 +霢 +䔩 +坱 +裓 +帨 +忺 +豅 +栱 +謦 +傯 +誵 +骭 +潩 +鬒 +嵫 +悮 +扊 +扅 +轢 +惝 +臈 +舃 +鞾 +譟 +袵 +眎 +簏 +埸 +堧 +憸 +雰 +腷 +嵓 +隩 +趄 +墐 +褦 +艑 +狴 +玿 +竪 +恧 +姱 +抆 +恓 +霣 +躓 +鞲 +晬 +簴 +唼 +曵 +褕 +罣 +縐 +衘 +巃 +攲 +輀 +貎 +哳 +醭 +鋣 +僛 +迕 +蠭 +膓 +欝 +洊 +敺 +纎 +栟 +鞓 +蛬 +灺 +痏 +恡 +踸 +霔 +濵 +昻 +鉘 +楖 +竛 +竮 +窱 +幬 +慤 +儗 +黮 +嘐 +睆 +頇 +麑 +壼 +㦸 +顋 +瘥 +苖 +韈 +盻 +袷 +矼 +塼 +鐍 +傞 +苶 +吷 +噇 +鶖 +僣 +髧 +䅉 +鯫 +襏 +縳 +蠨 +痡 +髽 +剉 +蝱 +鄽 +匼 +嚚 +襫 +缿 +鵊 +燖 +忸 +摝 +攅 +牷 +氎 +騣 +颿 +虡 +腯 +漘 +矓 +祫 +顢 +綀 +弮 +柙 +蔾 +胾 +筤 +馽 +砆 +冩 +賙 +唶 +麛 +簜 +蹏 +屼 +鞶 +煑 +踠 +愀 +蠒 +頬 +韲 +戞 +畆 +笊 +搨 +捽 +絙 +覉 +澨 +趫 +矹 +穮 +愠 +劘 +轣 +卭 +鼪 +杕 +轗 +擐 +蚿 +恚 +檛 +𩕳 +靆 +轕 +餼 +頮 +槹 +蔉 +皜 +扄 +鮆 +轑 +蹡 +嵽 +甎 +蟈 +橅 +笴 +膰 +蕣 +澘 +髿 +樕 +褵 +蜋 +窼 +櫧 +雊 +胷 +嘵 +麄 +裋 +繢 +啐 +臛 +簁 +巓 +羜 +攧 +簮 +壊 +齩 +晹 +臲 +鬵 +齠 +媮 +幮 +壍 +蠛 +槜 +羖 +窓 +隃 +嚘 +輳 +籹 +凴 +崕 +獍 +嗸 +趦 +囅 +戺 +涬 +諉 +箯 +輊 +桹 +嵷 +㲲 +愊 +蒱 +洚 +赩 +輴 +幈 +齔 +嗁 +阽 +圠 +荈 +碔 +揎 +巀 +洏 +卼 +𨁝 +痁 +黳 +嗾 +䆗 +戃 +蕆 +頋 +悤 +掎 +㯝 +吚 +猘 +鮎 +鬴 +墁 +飋 +呿 +窀 +沲 +枒 +窌 +爼 +頞 +譡 +鶋 +湩 +㦬 +僾 +斒 +醼 +鶂 +磥 +揫 +犗 +齗 +鄶 +囏 +崪 +爞 +籓 +斮 +觝 +嵸 +驔 +䨴 +頺 +萑 +珓 +牸 +闒 +凘 +悢 +蟭 +濈 +嬄 +翽 +旍 +鶢 +罋 +輠 +怩 +頖 +趍 +壝 +嫮 +蕋 +踦 +轇 +眘 +巗 +嶭 +糓 +甽 +籺 +矟 +佖 +絏 +憮 +懡 +駈 +擕 +淟 +皡 +膋 +潨 +鳲 +趠 +麨 +頩 +漻 +輗 +墄 +賮 +㴩 +莟 +縦 +岝 +醻 +曚 +䙰 +噭 +醥 +筰 +躧 +踘 +鑕 +咈 +僶 +鶊 +鬂 +聼 +騐 +壒 +磎 +歗 +淈 +隟 +狃 +縋 +媻 +趲 +惙 +呫 +聮 +羾 +尫 +佽 +髼 +繋 +鬘 +旜 +疐 +阬 +䰐 +塈 +徤 +祊 +灂 +祅 +樷 +颾 +凟 +頀 +蠏 +塒 +衹 +婬 +裩 +粞 +憯 +匭 +筈 +盬 +霮 +黕 +靮 +伻 +緺 +瘝 +羑 +醸 +樝 +僎 +絓 +噆 +愞 +痗 +愽 +岊 +黤 +湑 +搉 +綯 +焮 +疉 +楛 +玼 +喤 +粔 +飂 +贐 +緉 +覰 +胔 +鞳 +摑 +墢 +斅 +誶 +僝 +鹺 +諌 +齅 +嵼 +讟 +冦 +脝 +婣 +緐 +茰 +飶 +欎 +慁 +抝 +瘉 +𡎺 +鈯 +瘃 +麫 +匊 +窞 +羓 +氄 +嚌 +姤 +橑 +駬 +冺 +騠 +㕙 +楶 +靸 +圎 +尀 +䙀 +鄏 +軃 +竁 +㹠 +刜 +剨 +罛 +鏹 +鬉 +簨 +藭 +藷 +僇 +瀫 +袨 +忮 +冡 +齯 +楪 +囋 +蟉 +醱 +尠 +牣 +攟 +袿 +齾 +甞 +啑 +潚 +樐 +絖 +酖 +觖 +骹 +嶅 +玃 +嫜 +廹 +儤 +矂 +艓 +挱 +骳 +嵳 +洴 +礓 +厪 +﨑 +禜 +籊 +瓻 +彛 +狁 +腪 +骾 +娯 +罻 +璅 +簳 +姢 +猰 +眹 +䴥 +堘 +搯 +怤 +緫 +聫 +涊 +熛 +輤 +䡾 +譌 +髇 +攛 +稭 +媕 +鬷 +跰 +縚 +鉧 +踧 +嚭 +襮 +藞 +滮 +颷 +荂 +蓰 +怫 +閧 +臕 +稛 +怗 +闑 +抶 +薶 +嶕 +瀺 +𥫗 +墝 +埆 +皥 +惷 +鞔 +鞺 +蟛 +瀡 +鎁 +酧 +恝 +齓 +嚄 +簔 +蟺 +㔶 +胹 +憖 +惄 +鸒 +貛 +軏 +縗 +蓻 +娵 +抺 +鼛 +虩 +歕 +矑 +繂 +襚 +倂 +廥 +諝 +虗 +弜 +兟 +繿 +偘 +翶 +肻 +棙 +斆 +碨 +醎 +蟢 +銙 +躠 +櫩 +椮 +絀 +鷾 +溳 +詖 +葓 +谼 +𦩘 +韔 +翿 +呑 +馡 +騊 +堁 +蓏 +䟃 +頟 +渢 +趑 +堄 +滛 +擫 +豭 +騩 +騘 +䍧 +彍 +忭 +餙 +馺 +忩 +芣 +矴 +噂 +滍 +慫 +𨍏 +怲 +扵 +搊 +昩 +嶻 +禬 +憃 +忼 +榰 +箾 +撁 +鈆 +袗 +脤 +騞 +哤 +螀 +靧 +梲 +囦 +魖 +褠 +䭔 +煆 +挃 +宷 +熉 +朘 +憭 +䒠 +謭 +鷤 +拕 +骫 +穾 +襭 +喓 +冞 +勩 +媢 +麚 +椓 +俙 +幐 +磝 +蜎 +灙 +漦 +㛹 +䭀 +㜷 +粻 +懟 +箳 +滣 +糉 +冐 +韤 +湱 +糭 +栳 +勌 +慱 +㸌 +罫 +筞 +霿 +躶 +玞 +磉 +罦 +祴 +媟 +猒 +擭 +恠 +嵁 +屴 +慆 +庬 +蟁 +㹀 +薧 +鷕 +渻 +朂 +愯 +齚 +蝻 +胏 +饙 +鳦 +鸃 +叅 +肧 +篂 +脗 +雺 +飰 +筀 +頥 +毶 +弌 +逓 +瞍 +絁 +鏚 +嚵 +攂 +醄 +奼 +獫 +絣 +靷 +畮 +褉 +棁 +揑 +楥 +橤 +襥 +蹮 +窔 +忪 +潠 +杇 +黲 +擄 +蚻 +蘙 +虙 +袐 +陿 +帊 +醟 +髖 +㞦 +鱭 +譸 +鮞 +栧 +扺 +脽 +擉 +岨 +黈 +餻 +佪 +遻 +鋟 +瞶 +廽 +懨 +墖 +玁 +籉 +宼 +鰋 +瑽 +垖 +酕 +漰 +戹 +蝛 +瑲 +阤 +褆 +儛 +䍽 +觕 +箘 +碯 +灨 +燀 +膇 +韀 +䳏 +詿 +禂 +韣 +踡 +碏 +尵 +莭 +庻 +篿 +狤 +㘞 +艭 +殱 +鵔 +槮 +猧 +劙 +獝 +㭊 +㾕 +蠚 +帤 +蹢 +蛚 +輼 +麀 +檃 +䰒 +䪫 +悾 +濳 +杗 +揾 +駏 +撦 +耈 +蟟 +狌 +鸖 +䨥 +餫 +鍰 +耉 +毚 +袽 +䱥 +慓 +䔿 +艖 +舋 +弰 +蠺 +嫓 +蚳 +髾 +喨 +鴐 +䍥 +韍 +柹 +掁 +薋 +攕 +飺 +凢 +麌 +嫰 +鑚 +黦 +葠 +吿 +栰 +踶 +芿 +穭 +啝 +筓 +褁 +稇 +顚 +䎘 +恇 +珷 +緪 +墠 +蛣 +蛜 +讕 +疻 +惎 +袝 +霡 +罸 +鬽 +苢 +喭 +飊 +唎 +澾 +襋 +皭 +廏 +蔿 +穊 +䝟 +駊 +獹 +夣 +褾 +慴 +軥 +讁 +軰 +瞷 +𡋯 +晜 +潗 +衋 +揵 +覼 +鱐 +醡 +䏰 +侐 +亁 +桞 +驘 +鬋 +鷽 +懞 +㵳 +儳 +豝 +傺 +搒 +縧 +硾 +䏶 +覻 +薍 +憝 +榠 +湆 +皵 +鎞 +菆 +糇 +矉 +搤 +紃 +峿 +磹 +甒 +琭 +𩥇 +菢 +禡 +渹 +刅 +迒 +敂 +蹜 +磓 +傪 +縿 +㕮 +涏 +䰀 +㡛 +韛 +犠 +餦 +圝 +焫 +㝢 +潬 +馵 +澟 +鱏 +譾 +㪍 +煼 +鍜 +窽 +紾 +堨 +䕸 +穅 +戅 +穄 +駴 +偫 +煗 +媠 +酘 +矬 +貆 +茞 +骩 +扠 +岞 +潓 +炧 +陊 +栭 +釱 +㡚 +篴 +耞 +鞉 +䋏 +𤫩 +椸 +儜 +痀 +謷 +潙 +寠 +牐 +嫭 +慅 +獧 +鈒 +欿 +薳 +蟂 +郲 +軨 +斨 +訦 +𠴲 +剺 +駪 +贙 +禫 +噣 +茢 +茙 +鄼 +揷 +魌 +䫻 +嗋 +噐 +侲 +諵 +𠺕 +挍 +䑳 +㨷 +槸 +靘 +㩧 +虣 +瑿 +衱 +襹 +餭 +㗶 +枑 +悋 +纑 +嶫 +儓 +髵 +甗 +榝 +㗭 +贗 +熸 +嬃 +礌 +偭 +樠 +栮 +鷼 +鵀 +澬 +眂 +牿 +骴 +呞 +爕 +牎 +巹 +帉 +砠 +梴 +䛏 +攃 +餁 +哿 +蹝 +崺 +閌 +醝 +臡 +麖 +駼 +賵 +夘 +骻 +愡 +俔 +諐 +觩 +莂 +饈 +殣 +溠 +冱 +埓 +厫 +虥 +芄 +慽 +竃 +埿 +仭 +褼 +倛 +韸 +牗 +幖 +禈 +穧 +蜧 +諞 +脞 +蝃 +飃 +煁 +涒 +谾 +覢 +赮 +鼘 +艗 +䶉 +鴥 +轒 +睅 +傔 +惵 +唈 +懆 +磣 +膢 +堶 +囈 +瘕 +誷 +瑘 +絝 +鬈 +嘽 +鷅 +梜 +喎 +鼟 +㟧 +劻 +眑 +剴 +痎 +餟 +庌 +菷 +梐 +吺 +躘 +慞 +罼 +穨 +摏 +釄 +莋 +呺 +砅 +鴽 +㘭 +㟅 +艴 +犉 +籕 +跐 +惏 +陗 +刋 +襘 +醹 +紽 +痌 +㗀 +撋 +陼 +駷 +艼 +踼 +癏 +慠 +趒 +邍 +姞 +䂬 +堲 +苙 +椌 +嗃 +挶 +岯 +禗 +嵔 +觡 +豜 +睩 +㒿 +塠 +燂 +扤 +恟 +鬝 +鬇 +鬡 +揳 +霠 +㗫 +苐 +蒀 +圌 +戭 +䖃 +𥈭 +勮 +耝 +轞 +胮 +墯 +枮 +罿 +浺 +綪 +爓 +蘃 +襍 +轜 +閠 +畽 +鄊 +嶆 +籭 +蠯 +陑 +瘽 +迆 +賷 +䍡 +韂 +躃 +禴 +簄 +瓟 +碐 +躨 +侜 +岍 +䃸 +趚 +髐 +榅 +粣 +屝 +鴃 +圁 +蝜 +黫 +僽 +丗 +靣 +湏 +抏 +㟽 +跙 +餤 +朙 +㹞 +瞖 +繣 +㨫 +罙 +糒 +惉 +葽 +鼮 +蕳 +豏 +𥱼 +鵮 +獦 +悕 +𠴨 +闟 +惽 +慿 +隉 +椷 +𩅰 +艛 +眽 +凓 +儃 +奨 +埀 +瑫 +駚 +濇 +緶 +峉 +礨 +髢 +瞯 +壥 +姡 +㟯 +髬 +啀 +㶿 +歅 +殀 +縩 +疈 +鳸 +霳 +稬 +圊 +彚 +裠 +埳 +褋 +㔩 +矲 +剶 +硋 +聦 +峞 +浰 +窵 +嘂 +睘 +簵 +腒 +韘 +躣 +甈 +忲 +舽 +襂 +硠 +脃 +鐏 +奯 +脧 +矕 +䠞 +駹 +豶 +訑 +柸 +鰅 +瘨 +趿 +糦 +蟏 +饛 +尰 +諑 +汃 +毺 +鋃 +絚 +馧 +艬 +枍 +爊 +峗 +泙 +碖 +鵕 +尩 +閗 +𤧚 +幩 +塉 +箊 +覂 +玒 +橧 +謟 +庨 +籔 +欑 +厎 +尭 +氉 +蠈 +䓞 +矙 +梡 +瀩 +溔 +煴 +蔲 +僬 +嵢 +梩 +弝 +𣙙 +鞟 +敉 +鮚 +湠 +鐐 +爣 +裻 +䶎 +𦨴 +謿 +垾 +蝂 +睂 +癙 +韽 +㟳 +桒 +鳿 +樏 +峛 +瑉 +僄 +顣 +衺 +殗 +肦 +圑 +朒 +喌 +犦 +㰅 +疁 +氃 +吰 +陻 +盰 +娀 +魶 +㖃 +曒 +娿 +獱 +孏 +酅 +蝡 +齰 +莬 +鄀 +逥 +挿 +觵 +縆 +㟝 +繍 +碙 +㑂 +䎳 +兾 +壸 +賝 +桯 +跁 +跒 +蔍 +舼 +忀 +懭 +媌 +罭 +菵 +狔 +靿 +拪 +㲉 +䔲 +嬀 +鵽 +涳 +朾 +𡸣 +𢫫 +虈 +㜮 +顑 +櫋 +蔪 +旝 +湡 +蹛 +稆 +唽 +㟏 +熂 +龡 +煟 +韅 +韐 +慂 +剳 +掫 +兠 +摋 +羫 +璊 +鵻 +駓 +佌 +蜹 +晲 +矒 +玅 +剰 +斶 +紖 +懴 +駜 +羢 +麳 +㳷 +馞 +爥 +鍚 +鑢 +螵 +嗺 +鏨 +𠙶 +疪 +鷔 +鮧 +轊 +栘 +鼜 +睗 +蟘 +枓 +䖟 +剠 +瞤 +圛 +椳 +籸 +䪌 +鯹 +湌 +丳 +賧 +縭 +檾 +𦨻 +撆 +䩫 +磢 +惥 +譀 +罤 +鞸 +鉎 +㶏 +膁 +甋 +瓀 +懹 +槢 +硊 +弆 +琫 +嵠 +駻 +湢 +杮 +䌨 +訹 +藇 +穯 +蠉 +曭 +蹎 +詄 +毷 +𩃎 +熁 +灜 +蜫 +蜳 +昈 +帩 +鈋 +䐹 +顖 +鄹 +匶 +毾 +礜 +堭 +婞 +鷿 +㙞 +詀 +瘮 +䫜 +㾪 +捘 +屫 +誧 +䲔 +閍 +蒳 +㬋 +遟 +嶀 +葐 +蜼 +㻱 +曡 +䃜 +濴 +䦱 +霫 +譆 +霋 +蕰 +襓 +氋 +鴷 +魦 +㩻 +㡠 +灉 +贑 +燑 +峝 +輷 +烻 +耼 +螉 +跜 +豩 +㑃 +藙 +鋂 +胐 +𣔻 +紒 +瓓 +塯 +辴 +趷 +堛 +㒟 +㗲 +㬊 +䄡 +卄 +姧 +猓 +躗 +覤 +醊 +兎 +罯 +痯 +覸 +詉 +癿 +岋 +歝 +茟 +㘆 +㮰 +淜 +𥉌 +㫰 +鈌 +毵 +狉 +贜 +峬 +汻 +誖 +烓 +睋 +潎 +䲺 +㠓 +歖 +𠜱 +槵 +熚 +萷 +磤 +絸 +鷞 +聻 +屷 +㝵 +諕 +瘂 +㺷 +蚰 +柦 +䍐 +泿 +礰 +摎 +㜕 +㻞 +洓 +喍 +囌 +囐 +䙱 +腨 +妉 +鄛 +鄥 +㵝 +輧 +鱄 +騟 +鈚 +廜 +𨗨 +㶼 +膞 +崯 +硞 +萆 +眒 +譩 +揬 +藑 +匌 +㠾 +㥏 +㢮 +䕢 +帣 +酭 +枦 +孅 +鞙 +丷 +鍭 +䤴 +餂 +愗 +冘 +埛 +㒇 +郕 +蔯 +簰 +刔 +蠩 +耏 +鞹 +𧑅 +觹 +䐑 +磶 +蹵 +鵃 +耛 +蓤 +臄 +轙 +庤 +㒩 +翐 +榥 +晀 +輣 +蟚 +拲 +皠 +穱 +䃔 +䃧 +窡 +絍 +礿 +鑞 +栯 +㾓 +掿 +厞 +淂 +撶 +伹 +鹻 +軓 +岹 +蚷 +榸 +刾 +艂 +㤝 +塕 +蚔 +藾 +攓 +鏬 +珫 +黪 +蟧 +猭 +漑 +粺 +驆 +撘 +亾 +㼌 +蝑 +澓 +揞 +欱 +愶 +泲 +醷 +螴 +芚 +絻 +轃 +漮 +唪 +岉 +鬀 +䱹 +齖 +䂓 +趢 +荓 +覶 +鯾 +諿 +槥 +嚆 +爢 +瓬 +笐 +篢 +舝 +襵 +鎒 +𤝞 +肭 +瘇 +笓 +餑 +豋 +湗 +緎 +肐 +胲 +掤 +潫 +䖴 +𠎝 +𨺗 +諢 +毈 +寱 +唲 +䃭 +峮 +狘 +韊 +䬝 +呰 +㹱 +碞 +畞 +㠌 +黭 +蚘 +豵 +穥 +尯 +㳇 +隵 +灇 +壜 +楰 +彲 +甤 +綹 +旞 +𡏟 +曁 +喩 +𥲤 +郈 +塺 +訧 +絿 +掔 +蠮 +𡱰 +䃺 +宻 +灎 +羵 +𨠵 +糚 +摉 +壷 +勴 +瑃 +鎝 +𥜥 +婥 +鬺 +扢 +肣 +溰 +磩 +耇 +宎 +㔇 +霱 +敚 +汳 +鏄 +儹 +隥 +㿉 +膆 +崏 +𦭵 +郔 +扂 +垗 +㳂 +礛 +缻 +垜 +晱 +訩 +蘪 +珇 +怮 +垝 +㔢 +憛 +痝 +蟨 +鞁 +鶤 +肎 +傝 +䢆 +䰄 +𥊚 +㖀 +㠭 +壵 +墋 +㠔 +橜 +怓 +蚹 +塛 +憪 +鋝 +腶 +嶾 +翍 +溓 +齼 +蔂 +䃂 +鉺 +攑 +瓐 +泎 +眤 +邘 +崝 +稡 +愸 +髥 +輹 +詨 +髆 +麃 +虤 +洐 +婐 +挏 +峑 +嶣 +篬 +葄 +瑎 +瓉 +㳅 +葼 +姙 +䪜 +𩇕 +焭 +剚 +濪 +霵 +僒 + +羭 diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_arabic_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_arabic_dict.txt new file mode 100644 index 000000000..9c5955bf7 --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_arabic_dict.txt @@ -0,0 +1,747 @@ +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +] +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +© +‥ +{ +} +\ +| +@ +^ +~ +÷ +∕ +∙ +⋅ +· +± +∓ +∩ +∪ +□ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +⊥ +∟ +∠ +∡ +∢ +′ +″ +∥ +⊾ +⊿ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +® +℉ +Ω +℧ +Å +⌀ +ℏ +⅀ +⍺ +⍵ +¢ +€ +£ +¥ +₿ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +● +▶ +𝑢 +︽ +– +﹥ +𝜓 +• +∋ +ƒ +० +⬆ +Ạ +◀ + +▫ +︾ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +Ø +Ù +Ú +Û +Ü +Ý +Þ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +ø +ù +ú +û +ü +ý +þ +ÿ +¡ +¤ +¦ +§ +¨ +ª +« +¬ +¯ +° +² +³ +´ +µ +¶ +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +‐ +‑ +‒ +— +― +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +‟ +† +‡ +‣ +․ +… +‧ +‰ +‴ +‵ +‶ +‷ +‸ +‹ +› +※ +‼ +‽ +‾ +₤ +₡ +₹ +− +∖ +∗ +≈ +≠ +≡ +≤ +≥ +⊂ +⊃ +↑ +→ +↓ +↕ +™ +Ω +℮ +∆ +✓ +✗ +✘ +▪ +◼ +✔ +✕ +☑ +☒ +№ +₽ +₴ +Α +α +Β +β +Γ +γ +Δ +δ +Ε +ε +Ζ +ζ +Η +η +Θ +θ +Ι +ι +Κ +κ +Λ +λ +Μ +μ +Ν +ν +Ξ +ξ +Ο +ο +Π +π +Ρ +ρ +Σ +σ +ς +Τ +τ +Υ +υ +Φ +φ +Χ +χ +Ψ +ψ +ω +ـ +، +؍ +؎ +؏ +ؐ +ؑ +ؒ +ؓ +ؔ +ؕ +ؖ +ؗ +ؘ +ؙ +ؚ +؛ +؞ +؟ +ء +آ +أ +ؤ +إ +ئ +ا +ب +ة +ت +ث +ج +ح +خ +د +ذ +ر +ز +س +ش +ص +ض +ط +ظ +ع +غ +ف +ق +ك +ل +م +ن +ه +و +ى +ي +ً +ٌ +ٍ +َ +ُ +ِ +ّ +ْ +ٓ +ٔ +ٕ +ٖ +ٗ +ٚ +ٛ +ٜ +ٝ +ٞ +ٟ +ٰ +ٱ +ٲ +ٳ +ٴ +ٵ +ٶ +ٷ +ٸ +ٹ +ٺ +ٻ +ټ +ٽ +پ +ٿ +ڀ +ځ +ڂ +ڃ +ڄ +څ +چ +ڇ +ڈ +ډ +ڊ +ڋ +ڌ +ڍ +ڎ +ڏ +ڐ +ڑ +ڒ +ړ +ڔ +ڕ +ږ +ڗ +ژ +ڙ +ښ +ڛ +ڜ +ڝ +ڞ +ڟ +ڠ +ڡ +ڢ +ڣ +ڤ +ڥ +ڦ +ڧ +ڨ +ک +ڪ +ګ +ڬ +ڭ +ڮ +گ +ڰ +ڱ +ڲ +ڳ +ڴ +ڵ +ڶ +ڷ +ڸ +ڹ +ں +ڻ +ڼ +ڽ +ھ +ڿ +ۀ +ہ +ۂ +ۃ +ۄ +ۅ +ۆ +ۇ +ۈ +ۉ +ۊ +ۋ +ی +ۍ +ێ +ۏ +ې +ۑ +ے +ۓ +۔ +ە +ۖ +ۗ +ۘ +ۙ +ۚ +ۛ +ۜ +۞ +ۡ +ۢ +ۣ +ۤ +ۥ +ۦ +ۧ +ۨ +۩ +ۭ +ۮ +ۯ +ݐ +ݑ +ݒ +ݓ +ݔ +ݕ +ݖ +ݗ +ݘ +ݙ +ݚ +ݛ +ݜ +ݝ +ݞ +ݟ +ݠ +ݡ +ݢ +ݣ +ݤ +ݥ +ݦ +ݧ +ݨ +ݩ +ݪ +ݫ +ݬ +ݭ +ݮ +ݯ +ݰ +ݱ +ݲ +ݳ +ݴ +ݵ +ݶ +ݷ +ݸ +ݹ +ݺ +ݻ +ݼ +ݽ +ݾ +ݿ +٠ +١ +٢ +٣ +٤ +٥ +٦ +٧ +٨ +٩ +٪ +٫ +٬ +۰ +۱ +۲ +۳ +۴ +۵ +۶ +۷ +۸ +۹ +ﭙ +ﭚ +ﭪ +ﭭ +ﭺ +ﭽ +ﷲ +﷼ +٠ +١ +٢ +٣ +٤ +٥ +٦ +٧ +٨ +٩ +٪ +٫ +٬ +۰ +۱ +۲ +۳ +۴ +۵ +۶ +۷ +۸ +۹ +ﭙ +ﭚ +ﭪ +ﭭ +ﭺ +ﭽ +ﷲ +﷼ diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_cyrillic_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_cyrillic_dict.txt new file mode 100644 index 000000000..7625a74eb --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_cyrillic_dict.txt @@ -0,0 +1,850 @@ +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +] +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +© +‥ +{ +} +\ +| +@ +^ +~ +÷ +∕ +∙ +⋅ +· +± +∓ +∩ +∪ +□ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +⊥ +∟ +∠ +∡ +∢ +′ +″ +∥ +⊾ +⊿ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +® +℉ +Ω +℧ +Å +⌀ +ℏ +⅀ +⍺ +⍵ +¢ +€ +£ +¥ +₿ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +● +▶ +𝑢 +︽ +– +﹥ +𝜓 +• +∋ +ƒ +० +⬆ +Ạ +◀ + +▫ +︾ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +Ø +Ù +Ú +Û +Ü +Ý +Þ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +ø +ù +ú +û +ü +ý +þ +ÿ +¡ +¤ +¦ +§ +¨ +ª +« +¬ +¯ +° +² +³ +´ +µ +¶ +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +‐ +‑ +‒ +— +― +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +‟ +† +‡ +‣ +․ +… +‧ +‰ +‴ +‵ +‶ +‷ +‸ +‹ +› +※ +‼ +‽ +‾ +₤ +₡ +₹ +− +∖ +∗ +≈ +≠ +≡ +≤ +≥ +⊂ +⊃ +↑ +→ +↓ +↕ +™ +Ω +℮ +∆ +✓ +✗ +✘ +▪ +◼ +✔ +✕ +☑ +☒ +№ +₽ +₴ +Α +α +Β +β +Γ +γ +Δ +δ +Ε +ε +Ζ +ζ +Η +η +Θ +θ +Ι +ι +Κ +κ +Λ +λ +Μ +μ +Ν +ν +Ξ +ξ +Ο +ο +Π +π +Ρ +ρ +Σ +σ +ς +Τ +τ +Υ +υ +Φ +φ +Χ +χ +Ψ +ψ +ω +Ѐ +Ё +Ђ +Ѓ +Є +Ѕ +І +Ї +Ј +Љ +Њ +Ћ +Ќ +Ѝ +Ў +Џ +А +Б +В +Г +Д +Е +Ж +З +И +Й +К +Л +М +Н +О +П +Р +С +Т +У +Ф +Х +Ц +Ч +Ш +Щ +Ъ +Ы +Ь +Э +Ю +Я +а +б +в +г +д +е +ж +з +и +й +к +л +м +н +о +п +р +с +т +у +ф +х +ц +ч +ш +щ +ъ +ы +ь +э +ю +я +ѐ +ё +ђ +ѓ +є +ѕ +і +ї +ј +љ +њ +ћ +ќ +ѝ +ў +џ +Ѡ +ѡ +Ѣ +ѣ +Ѥ +ѥ +Ѧ +ѧ +Ѩ +ѩ +Ѫ +ѫ +Ѭ +ѭ +Ѯ +ѯ +Ѱ +ѱ +Ѳ +ѳ +Ѵ +ѵ +Ѷ +ѷ +Ѹ +ѹ +Ѻ +ѻ +Ѽ +ѽ +Ѿ +ѿ +Ҁ +ҁ +Ҋ +ҋ +Ҍ +ҍ +Ҏ +ҏ +Ґ +ґ +Ғ +ғ +Ҕ +ҕ +Җ +җ +Ҙ +ҙ +Қ +қ +Ҝ +ҝ +Ҟ +ҟ +Ҡ +ҡ +Ң +ң +Ҧ +ҧ +Ҩ +ҩ +Ҫ +ҫ +Ҭ +ҭ +Ү +ү +Ұ +ұ +Ҳ +ҳ +Ҷ +ҷ +Ҹ +ҹ +Һ +һ +Ҽ +ҽ +Ҿ +ҿ +Ӏ +Ӂ +ӂ +Ӄ +ӄ +Ӆ +ӆ +Ӈ +ӈ +Ӊ +ӊ +Ӌ +ӌ +Ӎ +ӎ +ӏ +Ӑ +ӑ +Ӓ +ӓ +Ӗ +ӗ +Ә +ә +Ӛ +ӛ +Ӝ +ӝ +Ӟ +ӟ +Ӡ +ӡ +Ӣ +ӣ +Ӥ +ӥ +Ӧ +ӧ +Ө +ө +Ӫ +ӫ +Ӭ +ӭ +Ӯ +ӯ +Ӱ +ӱ +Ӳ +ӳ +Ӵ +ӵ +Ӷ +ӷ +Ӹ +ӹ +Ӻ +ӻ +Ӽ +ӽ +Ӿ +ӿ +Ԁ +ԁ +Ԃ +ԃ +Ԅ +ԅ +Ԇ +ԇ +Ԉ +ԉ +Ԋ +ԋ +Ԍ +ԍ +Ԏ +ԏ +Ԑ +ԑ +Ԓ +ԓ +Ԕ +ԕ +Ԗ +ԗ +Ԙ +ԙ +Ԛ +ԛ +Ԝ +ԝ +Ԟ +ԟ +Ԡ +ԡ +Ԣ +ԣ +Ԥ +ԥ +Ԧ +ԧ +Ԩ +ԩ +Ԫ +ԫ +Ԭ +ԭ +Ԯ +ԯ +ⷠ +ⷡ +ⷢ +ⷣ +ⷤ +ⷥ +ⷦ +ⷧ +ⷨ +ⷩ +ⷪ +ⷫ +ⷬ +ⷭ +ⷮ +ⷯ +ⷰ +ⷱ +ⷲ +ⷳ +ⷴ +ⷵ +ⷶ +ⷷ +ⷸ +ⷹ +ⷺ +ⷻ +ⷼ +ⷽ +ⷾ +ⷿ +Ꙁ +ꙁ +Ꙃ +ꙃ +Ꙅ +ꙅ +Ꙇ +ꙇ +Ꙉ +ꙉ +Ꙋ +ꙋ +Ꙍ +ꙍ +Ꙏ +ꙏ +Ꙑ +ꙑ +Ꙓ +ꙓ +Ꙕ +ꙕ +Ꙗ +ꙗ +Ꙙ +ꙙ +Ꙛ +ꙛ +Ꙝ +ꙝ +Ꙟ +ꙟ +Ꙡ +ꙡ +Ꙣ +ꙣ +Ꙥ +ꙥ +Ꙧ +ꙧ +Ꙩ +ꙩ +Ꙫ +ꙫ +Ꙭ +ꙭ +ꙮ +ꙴ +ꙵ +ꙶ +ꙷ +ꙸ +ꙹ +ꙺ +ꙻ +Ꚁ +ꚁ +Ꚃ +ꚃ +Ꚅ +ꚅ +Ꚇ +ꚇ +Ꚉ +ꚉ +Ꚋ +ꚋ +Ꚍ +ꚍ +Ꚏ +ꚏ +Ꚑ +ꚑ +Ꚓ +ꚓ +Ꚕ +ꚕ +Ꚗ +ꚗ +Ꚙ +ꚙ +Ꚛ +ꚛ +ꚜ +ꚝ +ꚞ +ꚟ diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_devanagari_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_devanagari_dict.txt new file mode 100644 index 000000000..498ec2a10 --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_devanagari_dict.txt @@ -0,0 +1,568 @@ +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +] +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +© +‥ +{ +} +\ +| +@ +^ +~ +÷ +∕ +∙ +⋅ +· +± +∓ +∩ +∪ +□ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +⊥ +∟ +∠ +∡ +∢ +′ +″ +∥ +⊾ +⊿ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +® +℉ +Ω +℧ +Å +⌀ +ℏ +⅀ +⍺ +⍵ +¢ +€ +£ +¥ +₿ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +● +▶ +𝑢 +︽ +– +﹥ +𝜓 +• +∋ +ƒ +⬆ +Ạ +◀ + +▫ +︾ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +Ø +Ù +Ú +Û +Ü +Ý +Þ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +ø +ù +ú +û +ü +ý +þ +ÿ +¡ +¤ +¦ +§ +¨ +ª +« +¬ +¯ +° +² +³ +´ +µ +¶ +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +‐ +‑ +‒ +— +― +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +‟ +† +‡ +‣ +․ +… +‧ +‰ +‴ +‵ +‶ +‷ +‸ +‹ +› +※ +‼ +‽ +‾ +₤ +₡ +₹ +− +∖ +∗ +≈ +≠ +≡ +≤ +≥ +⊂ +⊃ +↑ +→ +↓ +↕ +™ +Ω +℮ +∆ +✓ +✗ +✘ +▪ +◼ +✔ +✕ +☑ +☒ +№ +₽ +₴ +Α +α +Β +β +Γ +γ +Δ +δ +Ε +ε +Ζ +ζ +Η +η +Θ +θ +Ι +ι +Κ +κ +Λ +λ +Μ +μ +Ν +ν +Ξ +ξ +Ο +ο +Π +π +Ρ +ρ +Σ +σ +ς +Τ +τ +Υ +υ +Φ +φ +Χ +χ +Ψ +ψ +ω +ऀ +ँ +ं +ः +ऄ +अ +आ +इ +ई +उ +ऊ +ऋ +ऌ +ऍ +ऎ +ए +ऐ +ऑ +ऒ +ओ +औ +क +ख +ग +घ +ङ +च +छ +ज +झ +ञ +ट +ठ +ड +ढ +ण +त +थ +द +ध +न +ऩ +प +फ +ब +भ +म +य +र +ऱ +ल +ळ +ऴ +व +श +ष +स +ह +ऺ +ऻ +़ +ऽ +ा +ि +ी +ु +ू +ृ +ॄ +ॅ +ॆ +े +ै +ॉ +ॊ +ो +ौ +् +ॎ +ॏ +ॐ +॑ +॒ +॓ +॔ +ॕ +ॖ +ॗ +क़ +ख़ +ग़ +ज़ +ड़ +ढ़ +फ़ +य़ +ॠ +ॡ +ॢ +ॣ +। +॥ +० +१ +२ +३ +४ +५ +६ +७ +८ +९ +॰ +ॱ +ॲ +ॳ +ॴ +ॵ +ॶ +ॷ +ॸ +ॹ +ॺ +ॻ +ॼ +ॽ +ॾ +ॿ diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_dict.txt new file mode 100644 index 000000000..567898b49 --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_dict.txt @@ -0,0 +1,18383 @@ +  +一 +乙 +二 +十 +丁 +厂 +七 +卜 +八 +人 +入 +儿 +匕 +几 +九 +刁 +了 +刀 +力 +乃 +又 +三 +干 +于 +亏 +工 +土 +士 +才 +下 +寸 +大 +丈 +与 +万 +上 +小 +口 +山 +巾 +千 +乞 +川 +亿 +个 +夕 +久 +么 +勺 +凡 +丸 +及 +广 +亡 +门 +丫 +义 +之 +尸 +己 +已 +巳 +弓 +子 +卫 +也 +女 +刃 +飞 +习 +叉 +马 +乡 +丰 +王 +开 +井 +天 +夫 +元 +无 +云 +专 +丐 +扎 +艺 +木 +五 +支 +厅 +不 +犬 +太 +区 +历 +歹 +友 +尤 +匹 +车 +巨 +牙 +屯 +戈 +比 +互 +切 +瓦 +止 +少 +曰 +日 +中 +贝 +冈 +内 +水 +见 +午 +牛 +手 +气 +毛 +壬 +升 +夭 +长 +仁 +什 +片 +仆 +化 +仇 +币 +仍 +仅 +斤 +爪 +反 +介 +父 +从 +仑 +今 +凶 +分 +乏 +公 +仓 +月 +氏 +勿 +欠 +风 +丹 +匀 +乌 +勾 +凤 +六 +文 +亢 +方 +火 +为 +斗 +忆 +计 +订 +户 +认 +冗 +讥 +心 +尺 +引 +丑 +巴 +孔 +队 +办 +以 +允 +予 +邓 +劝 +双 +书 +幻 +玉 +刊 +未 +末 +示 +击 +打 +巧 +正 +扑 +卉 +扒 +功 +扔 +去 +甘 +世 +艾 +古 +节 +本 +术 +可 +丙 +左 +厉 +石 +右 +布 +夯 +戊 +龙 +平 +灭 +轧 +东 +卡 +北 +占 +凸 +卢 +业 +旧 +帅 +归 +旦 +目 +且 +叶 +甲 +申 +叮 +电 +号 +田 +由 +只 +叭 +史 +央 +兄 +叽 +叼 +叫 +叩 +叨 +另 +叹 +冉 +皿 +凹 +囚 +四 +生 +矢 +失 +乍 +禾 +丘 +付 +仗 +代 +仙 +们 +仪 +白 +仔 +他 +斥 +瓜 +乎 +丛 +令 +用 +甩 +印 +尔 +乐 +句 +匆 +册 +卯 +犯 +外 +处 +冬 +鸟 +务 +包 +饥 +主 +市 +立 +冯 +玄 +闪 +兰 +半 +汁 +汇 +头 +汉 +宁 +穴 +它 +讨 +写 +让 +礼 +训 +议 +必 +讯 +记 +永 +司 +尼 +民 +弗 +弘 +出 +辽 +奶 +奴 +召 +加 +皮 +边 +孕 +发 +圣 +对 +台 +矛 +纠 +母 +幼 +丝 +邦 +式 +迂 +刑 +戎 +动 +扛 +寺 +吉 +扣 +考 +托 +老 +巩 +圾 +执 +扩 +扫 +地 +场 +扬 +耳 +芋 +共 +芒 +亚 +芝 +朽 +朴 +机 +权 +过 +臣 +吏 +再 +协 +西 +压 +厌 +戌 +在 +百 +有 +存 +而 +页 +匠 +夸 +夺 +灰 +达 +列 +死 +成 +夹 +夷 +轨 +邪 +尧 +划 +迈 +毕 +至 +此 +贞 +师 +尘 +尖 +劣 +光 +当 +早 +吁 +吐 +吓 +虫 +曲 +团 +吕 +同 +吊 +吃 +因 +吸 +吗 +吆 +屿 +屹 +岁 +帆 +回 +岂 +则 +刚 +网 +肉 +年 +朱 +先 +丢 +廷 +舌 +竹 +迁 +乔 +迄 +伟 +传 +乒 +乓 +休 +伍 +伏 +优 +臼 +伐 +延 +仲 +件 +任 +伤 +价 +伦 +份 +华 +仰 +仿 +伙 +伪 +自 +伊 +血 +向 +似 +后 +行 +舟 +全 +会 +杀 +合 +兆 +企 +众 +爷 +伞 +创 +肌 +肋 +朵 +杂 +危 +旬 +旨 +旭 +负 +匈 +名 +各 +多 +争 +色 +壮 +冲 +妆 +冰 +庄 +庆 +亦 +刘 +齐 +交 +衣 +次 +产 +决 +亥 +充 +妄 +闭 +问 +闯 +羊 +并 +关 +米 +灯 +州 +汗 +污 +江 +汛 +池 +汝 +汤 +忙 +兴 +宇 +守 +宅 +字 +安 +讲 +讳 +军 +讶 +许 +讹 +论 +讼 +农 +讽 +设 +访 +诀 +寻 +那 +迅 +尽 +导 +异 +弛 +孙 +阵 +阳 +收 +阶 +阴 +防 +奸 +如 +妇 +妃 +好 +她 +妈 +戏 +羽 +观 +欢 +买 +红 +驮 +纤 +驯 +约 +级 +纪 +驰 +纫 +巡 +寿 +弄 +麦 +玖 +玛 +形 +进 +戒 +吞 +远 +违 +韧 +运 +扶 +抚 +坛 +技 +坏 +抠 +扰 +扼 +拒 +找 +批 +址 +扯 +走 +抄 +贡 +汞 +坝 +攻 +赤 +折 +抓 +扳 +抡 +扮 +抢 +孝 +坎 +均 +抑 +抛 +投 +坟 +坑 +抗 +坊 +抖 +护 +壳 +志 +块 +扭 +声 +把 +报 +拟 +却 +抒 +劫 +芙 +芜 +苇 +芽 +花 +芹 +芥 +芬 +苍 +芳 +严 +芦 +芯 +劳 +克 +芭 +苏 +杆 +杠 +杜 +材 +村 +杖 +杏 +杉 +巫 +极 +李 +杨 +求 +甫 +匣 +更 +束 +吾 +豆 +两 +酉 +丽 +医 +辰 +励 +否 +还 +尬 +歼 +来 +连 +轩 +步 +卤 +坚 +肖 +旱 +盯 +呈 +时 +吴 +助 +县 +里 +呆 +吱 +吠 +呕 +园 +旷 +围 +呀 +吨 +足 +邮 +男 +困 +吵 +串 +员 +呐 +听 +吟 +吩 +呛 +吻 +吹 +呜 +吭 +吧 +邑 +吼 +囤 +别 +吮 +岖 +岗 +帐 +财 +针 +钉 +牡 +告 +我 +乱 +利 +秃 +秀 +私 +每 +兵 +估 +体 +何 +佐 +佑 +但 +伸 +佃 +作 +伯 +伶 +佣 +低 +你 +住 +位 +伴 +身 +皂 +伺 +佛 +囱 +近 +彻 +役 +返 +余 +希 +坐 +谷 +妥 +含 +邻 +岔 +肝 +肛 +肚 +肘 +肠 +龟 +甸 +免 +狂 +犹 +狈 +角 +删 +条 +彤 +卵 +灸 +岛 +刨 +迎 +饭 +饮 +系 +言 +冻 +状 +亩 +况 +床 +库 +庇 +疗 +吝 +应 +这 +冷 +庐 +序 +辛 +弃 +冶 +忘 +闰 +闲 +间 +闷 +判 +兑 +灶 +灿 +灼 +弟 +汪 +沐 +沛 +汰 +沥 +沙 +汽 +沃 +沦 +汹 +泛 +沧 +没 +沟 +沪 +沈 +沉 +沁 +怀 +忧 +忱 +快 +完 +宋 +宏 +牢 +究 +穷 +灾 +良 +证 +启 +评 +补 +初 +社 +祀 +识 +诈 +诉 +罕 +诊 +词 +译 +君 +灵 +即 +层 +屁 +尿 +尾 +迟 +局 +改 +张 +忌 +际 +陆 +阿 +陈 +阻 +附 +坠 +妓 +妙 +妖 +姊 +妨 +妒 +努 +忍 +劲 +矣 +鸡 +纬 +驱 +纯 +纱 +纲 +纳 +驳 +纵 +纷 +纸 +纹 +纺 +驴 +纽 +奉 +玩 +环 +武 +青 +责 +现 +玫 +表 +规 +抹 +卦 +坷 +坯 +拓 +拢 +拔 +坪 +拣 +坦 +担 +坤 +押 +抽 +拐 +拖 +者 +拍 +顶 +拆 +拎 +拥 +抵 +拘 +势 +抱 +拄 +垃 +拉 +拦 +幸 +拌 +拧 +拂 +拙 +招 +坡 +披 +拨 +择 +抬 +拇 +拗 +其 +取 +茉 +苦 +昔 +苛 +若 +茂 +苹 +苗 +英 +苟 +苑 +苞 +范 +直 +茁 +茄 +茎 +苔 +茅 +枉 +林 +枝 +杯 +枢 +柜 +枚 +析 +板 +松 +枪 +枫 +构 +杭 +杰 +述 +枕 +丧 +或 +画 +卧 +事 +刺 +枣 +雨 +卖 +郁 +矾 +矿 +码 +厕 +奈 +奔 +奇 +奋 +态 +欧 +殴 +垄 +妻 +轰 +顷 +转 +斩 +轮 +软 +到 +非 +叔 +歧 +肯 +齿 +些 +卓 +虎 +虏 +肾 +贤 +尚 +旺 +具 +味 +果 +昆 +国 +哎 +咕 +昌 +呵 +畅 +明 +易 +咙 +昂 +迪 +典 +固 +忠 +呻 +咒 +咋 +咐 +呼 +鸣 +咏 +呢 +咄 +咖 +岸 +岩 +帖 +罗 +帜 +帕 +岭 +凯 +败 +账 +贩 +贬 +购 +贮 +图 +钓 +制 +知 +迭 +氛 +垂 +牧 +物 +乖 +刮 +秆 +和 +季 +委 +秉 +佳 +侍 +岳 +供 +使 +例 +侠 +侥 +版 +侄 +侦 +侣 +侧 +凭 +侨 +佩 +货 +侈 +依 +卑 +的 +迫 +质 +欣 +征 +往 +爬 +彼 +径 +所 +舍 +金 +刹 +命 +肴 +斧 +爸 +采 +觅 +受 +乳 +贪 +念 +贫 +忿 +肤 +肺 +肢 +肿 +胀 +朋 +股 +肮 +肪 +肥 +服 +胁 +周 +昏 +鱼 +兔 +狐 +忽 +狗 +狞 +备 +饰 +饱 +饲 +变 +京 +享 +庞 +店 +夜 +庙 +府 +底 +疟 +疙 +疚 +剂 +卒 +郊 +庚 +废 +净 +盲 +放 +刻 +育 +氓 +闸 +闹 +郑 +券 +卷 +单 +炬 +炒 +炊 +炕 +炎 +炉 +沫 +浅 +法 +泄 +沽 +河 +沾 +泪 +沮 +油 +泊 +沿 +泡 +注 +泣 +泞 +泻 +泌 +泳 +泥 +沸 +沼 +波 +泼 +泽 +治 +怔 +怯 +怖 +性 +怕 +怜 +怪 +怡 +学 +宝 +宗 +定 +宠 +宜 +审 +宙 +官 +空 +帘 +宛 +实 +试 +郎 +诗 +肩 +房 +诚 +衬 +衫 +视 +祈 +话 +诞 +诡 +询 +该 +详 +建 +肃 +录 +隶 +帚 +屉 +居 +届 +刷 +屈 +弧 +弥 +弦 +承 +孟 +陋 +陌 +孤 +陕 +降 +函 +限 +妹 +姑 +姐 +姓 +妮 +始 +姆 +迢 +驾 +叁 +参 +艰 +线 +练 +组 +绅 +细 +驶 +织 +驹 +终 +驻 +绊 +驼 +绍 +绎 +经 +贯 +契 +贰 +奏 +春 +帮 +玷 +珍 +玲 +玻 +毒 +型 +拭 +挂 +封 +持 +拷 +拱 +项 +垮 +挎 +城 +挟 +挠 +政 +赴 +赵 +挡 +拽 +哉 +挺 +括 +垢 +拴 +拾 +挑 +垛 +指 +垫 +挣 +挤 +拼 +挖 +按 +挥 +挪 +拯 +某 +甚 +荆 +茸 +革 +茬 +荐 +巷 +带 +草 +茧 +茵 +茶 +荒 +茫 +荡 +荣 +荤 +荧 +故 +胡 +荫 +荔 +南 +药 +标 +栈 +柑 +枯 +柄 +栋 +相 +查 +柏 +栅 +柳 +柱 +柿 +栏 +柠 +树 +勃 +要 +柬 +咸 +威 +歪 +研 +砖 +厘 +厚 +砌 +砂 +泵 +砚 +砍 +面 +耐 +耍 +牵 +鸥 +残 +殃 +轴 +轻 +鸦 +皆 +韭 +背 +战 +点 +虐 +临 +览 +竖 +省 +削 +尝 +昧 +盹 +是 +盼 +眨 +哇 +哄 +哑 +显 +冒 +映 +星 +昨 +咧 +昭 +畏 +趴 +胃 +贵 +界 +虹 +虾 +蚁 +思 +蚂 +虽 +品 +咽 +骂 +勋 +哗 +咱 +响 +哈 +哆 +咬 +咳 +咪 +哪 +哟 +炭 +峡 +罚 +贱 +贴 +贻 +骨 +幽 +钙 +钝 +钞 +钟 +钢 +钠 +钥 +钦 +钧 +钩 +钮 +卸 +缸 +拜 +看 +矩 +毡 +氢 +怎 +牲 +选 +适 +秒 +香 +种 +秋 +科 +重 +复 +竿 +段 +便 +俩 +贷 +顺 +修 +俏 +保 +促 +俄 +俐 +侮 +俭 +俗 +俘 +信 +皇 +泉 +鬼 +侵 +禹 +侯 +追 +俊 +盾 +待 +徊 +衍 +律 +很 +须 +叙 +剑 +逃 +食 +盆 +胚 +胧 +胆 +胜 +胞 +胖 +脉 +胎 +勉 +狭 +狮 +独 +狰 +狡 +狱 +狠 +贸 +怨 +急 +饵 +饶 +蚀 +饺 +饼 +峦 +弯 +将 +奖 +哀 +亭 +亮 +度 +迹 +庭 +疮 +疯 +疫 +疤 +咨 +姿 +亲 +音 +帝 +施 +闺 +闻 +闽 +阀 +阁 +差 +养 +美 +姜 +叛 +送 +类 +迷 +籽 +娄 +前 +首 +逆 +兹 +总 +炼 +炸 +烁 +炮 +炫 +烂 +剃 +洼 +洁 +洪 +洒 +柒 +浇 +浊 +洞 +测 +洗 +活 +派 +洽 +染 +洛 +浏 +济 +洋 +洲 +浑 +浓 +津 +恃 +恒 +恢 +恍 +恬 +恤 +恰 +恼 +恨 +举 +觉 +宣 +宦 +室 +宫 +宪 +突 +穿 +窃 +客 +诫 +冠 +诬 +语 +扁 +袄 +祖 +神 +祝 +祠 +误 +诱 +诲 +说 +诵 +垦 +退 +既 +屋 +昼 +屏 +屎 +费 +陡 +逊 +眉 +孩 +陨 +除 +险 +院 +娃 +姥 +姨 +姻 +娇 +姚 +娜 +怒 +架 +贺 +盈 +勇 +怠 +癸 +蚤 +柔 +垒 +绑 +绒 +结 +绕 +骄 +绘 +给 +绚 +骆 +络 +绝 +绞 +骇 +统 +耕 +耘 +耗 +耙 +艳 +泰 +秦 +珠 +班 +素 +匿 +蚕 +顽 +盏 +匪 +捞 +栽 +捕 +埂 +捂 +振 +载 +赶 +起 +盐 +捎 +捍 +捏 +埋 +捉 +捆 +捐 +损 +袁 +捌 +都 +哲 +逝 +捡 +挫 +换 +挽 +挚 +热 +恐 +捣 +壶 +捅 +埃 +挨 +耻 +耿 +耽 +聂 +恭 +莽 +莱 +莲 +莫 +莉 +荷 +获 +晋 +恶 +莹 +莺 +真 +框 +梆 +桂 +桔 +栖 +档 +桐 +株 +桥 +桦 +栓 +桃 +格 +桩 +校 +核 +样 +根 +索 +哥 +速 +逗 +栗 +贾 +酌 +配 +翅 +辱 +唇 +夏 +砸 +砰 +砾 +础 +破 +原 +套 +逐 +烈 +殊 +殉 +顾 +轿 +较 +顿 +毙 +致 +柴 +桌 +虑 +监 +紧 +党 +逞 +晒 +眠 +晓 +哮 +唠 +鸭 +晃 +哺 +晌 +剔 +晕 +蚌 +畔 +蚣 +蚊 +蚪 +蚓 +哨 +哩 +圃 +哭 +哦 +恩 +鸯 +唤 +唁 +哼 +唧 +啊 +唉 +唆 +罢 +峭 +峨 +峰 +圆 +峻 +贼 +贿 +赂 +赃 +钱 +钳 +钻 +钾 +铁 +铃 +铅 +缺 +氧 +氨 +特 +牺 +造 +乘 +敌 +秤 +租 +积 +秧 +秩 +称 +秘 +透 +笔 +笑 +笋 +债 +借 +值 +倚 +俺 +倾 +倒 +倘 +俱 +倡 +候 +赁 +俯 +倍 +倦 +健 +臭 +射 +躬 +息 +倔 +徒 +徐 +殷 +舰 +舱 +般 +航 +途 +拿 +耸 +爹 +舀 +爱 +豺 +豹 +颁 +颂 +翁 +胰 +脆 +脂 +胸 +胳 +脏 +脐 +胶 +脑 +脓 +逛 +狸 +狼 +卿 +逢 +鸵 +留 +鸳 +皱 +饿 +馁 +凌 +凄 +恋 +桨 +浆 +衰 +衷 +高 +郭 +席 +准 +座 +症 +病 +疾 +斋 +疹 +疼 +疲 +脊 +效 +离 +紊 +唐 +瓷 +资 +凉 +站 +剖 +竞 +部 +旁 +旅 +畜 +阅 +羞 +羔 +瓶 +拳 +粉 +料 +益 +兼 +烤 +烘 +烦 +烧 +烛 +烟 +烙 +递 +涛 +浙 +涝 +浦 +酒 +涉 +消 +涡 +浩 +海 +涂 +浴 +浮 +涣 +涤 +流 +润 +涧 +涕 +浪 +浸 +涨 +烫 +涩 +涌 +悖 +悟 +悄 +悍 +悔 +悯 +悦 +害 +宽 +家 +宵 +宴 +宾 +窍 +窄 +容 +宰 +案 +请 +朗 +诸 +诺 +读 +扇 +诽 +袜 +袖 +袍 +被 +祥 +课 +冥 +谁 +调 +冤 +谅 +谆 +谈 +谊 +剥 +恳 +展 +剧 +屑 +弱 +陵 +祟 +陶 +陷 +陪 +娱 +娟 +恕 +娥 +娘 +通 +能 +难 +预 +桑 +绢 +绣 +验 +继 +骏 +球 +琐 +理 +琉 +琅 +捧 +堵 +措 +描 +域 +捺 +掩 +捷 +排 +焉 +掉 +捶 +赦 +堆 +推 +埠 +掀 +授 +捻 +教 +掏 +掐 +掠 +掂 +培 +接 +掷 +控 +探 +据 +掘 +掺 +职 +基 +聆 +勘 +聊 +娶 +著 +菱 +勒 +黄 +菲 +萌 +萝 +菌 +萎 +菜 +萄 +菊 +菩 +萍 +菠 +萤 +营 +乾 +萧 +萨 +菇 +械 +彬 +梦 +婪 +梗 +梧 +梢 +梅 +检 +梳 +梯 +桶 +梭 +救 +曹 +副 +票 +酝 +酗 +厢 +戚 +硅 +硕 +奢 +盔 +爽 +聋 +袭 +盛 +匾 +雪 +辅 +辆 +颅 +虚 +彪 +雀 +堂 +常 +眶 +匙 +晨 +睁 +眯 +眼 +悬 +野 +啪 +啦 +曼 +晦 +晚 +啄 +啡 +距 +趾 +啃 +跃 +略 +蚯 +蛀 +蛇 +唬 +累 +鄂 +唱 +患 +啰 +唾 +唯 +啤 +啥 +啸 +崖 +崎 +崭 +逻 +崔 +帷 +崩 +崇 +崛 +婴 +圈 +铐 +铛 +铝 +铜 +铭 +铲 +银 +矫 +甜 +秸 +梨 +犁 +秽 +移 +笨 +笼 +笛 +笙 +符 +第 +敏 +做 +袋 +悠 +偿 +偶 +偎 +偷 +您 +售 +停 +偏 +躯 +兜 +假 +衅 +徘 +徙 +得 +衔 +盘 +舶 +船 +舵 +斜 +盒 +鸽 +敛 +悉 +欲 +彩 +领 +脚 +脖 +脯 +豚 +脸 +脱 +象 +够 +逸 +猜 +猪 +猎 +猫 +凰 +猖 +猛 +祭 +馅 +馆 +凑 +减 +毫 +烹 +庶 +麻 +庵 +痊 +痒 +痕 +廊 +康 +庸 +鹿 +盗 +章 +竟 +商 +族 +旋 +望 +率 +阎 +阐 +着 +羚 +盖 +眷 +粘 +粗 +粒 +断 +剪 +兽 +焊 +焕 +清 +添 +鸿 +淋 +涯 +淹 +渠 +渐 +淑 +淌 +混 +淮 +淆 +渊 +淫 +渔 +淘 +淳 +液 +淤 +淡 +淀 +深 +涮 +涵 +婆 +梁 +渗 +情 +惜 +惭 +悼 +惧 +惕 +惟 +惊 +惦 +悴 +惋 +惨 +惯 +寇 +寅 +寄 +寂 +宿 +窒 +窑 +密 +谋 +谍 +谎 +谐 +袱 +祷 +祸 +谓 +谚 +谜 +逮 +敢 +尉 +屠 +弹 +隋 +堕 +随 +蛋 +隅 +隆 +隐 +婚 +婶 +婉 +颇 +颈 +绩 +绪 +续 +骑 +绰 +绳 +维 +绵 +绷 +绸 +综 +绽 +绿 +缀 +巢 +琴 +琳 +琢 +琼 +斑 +替 +揍 +款 +堪 +塔 +搭 +堰 +揩 +越 +趁 +趋 +超 +揽 +堤 +提 +博 +揭 +喜 +彭 +揣 +插 +揪 +搜 +煮 +援 +搀 +裁 +搁 +搓 +搂 +搅 +壹 +握 +搔 +揉 +斯 +期 +欺 +联 +葫 +散 +惹 +葬 +募 +葛 +董 +葡 +敬 +葱 +蒋 +蒂 +落 +韩 +朝 +辜 +葵 +棒 +棱 +棋 +椰 +植 +森 +焚 +椅 +椒 +棵 +棍 +椎 +棉 +棚 +棕 +棺 +榔 +椭 +惠 +惑 +逼 +粟 +棘 +酣 +酥 +厨 +厦 +硬 +硝 +确 +硫 +雁 +殖 +裂 +雄 +颊 +雳 +暂 +雅 +翘 +辈 +悲 +紫 +凿 +辉 +敞 +棠 +赏 +掌 +晴 +睐 +暑 +最 +晰 +量 +鼎 +喷 +喳 +晶 +喇 +遇 +喊 +遏 +晾 +景 +畴 +践 +跋 +跌 +跑 +跛 +遗 +蛙 +蛛 +蜓 +蜒 +蛤 +喝 +鹃 +喂 +喘 +喉 +喻 +啼 +喧 +嵌 +幅 +帽 +赋 +赌 +赎 +赐 +赔 +黑 +铸 +铺 +链 +销 +锁 +锄 +锅 +锈 +锋 +锌 +锐 +甥 +掰 +短 +智 +氮 +毯 +氯 +鹅 +剩 +稍 +程 +稀 +税 +筐 +等 +筑 +策 +筛 +筒 +筏 +答 +筋 +筝 +傲 +傅 +牌 +堡 +集 +焦 +傍 +储 +皓 +皖 +粤 +奥 +街 +惩 +御 +循 +艇 +舒 +逾 +番 +释 +禽 +腊 +脾 +腋 +腔 +腕 +鲁 +猩 +猬 +猾 +猴 +惫 +然 +馈 +馋 +装 +蛮 +就 +敦 +斌 +痘 +痢 +痪 +痛 +童 +竣 +阔 +善 +翔 +羡 +普 +粪 +尊 +奠 +道 +遂 +曾 +焰 +港 +滞 +湖 +湘 +渣 +渤 +渺 +湿 +温 +渴 +溃 +溅 +滑 +湃 +渝 +湾 +渡 +游 +滋 +渲 +溉 +愤 +慌 +惰 +愕 +愣 +惶 +愧 +愉 +慨 +割 +寒 +富 +寓 +窜 +窝 +窖 +窗 +窘 +遍 +雇 +裕 +裤 +裙 +禅 +禄 +谢 +谣 +谤 +谦 +犀 +属 +屡 +强 +粥 +疏 +隔 +隙 +隘 +媒 +絮 +嫂 +媚 +婿 +登 +缅 +缆 +缉 +缎 +缓 +缔 +缕 +骗 +编 +骚 +缘 +瑟 +鹉 +瑞 +瑰 +瑙 +魂 +肆 +摄 +摸 +填 +搏 +塌 +鼓 +摆 +携 +搬 +摇 +搞 +塘 +摊 +聘 +斟 +蒜 +勤 +靴 +靶 +鹊 +蓝 +墓 +幕 +蓬 +蓄 +蒲 +蓉 +蒙 +蒸 +献 +椿 +禁 +楚 +楷 +榄 +想 +槐 +榆 +楼 +概 +赖 +酪 +酬 +感 +碍 +碘 +碑 +碎 +碰 +碗 +碌 +尴 +雷 +零 +雾 +雹 +辐 +辑 +输 +督 +频 +龄 +鉴 +睛 +睹 +睦 +瞄 +睫 +睡 +睬 +嗜 +鄙 +嗦 +愚 +暖 +盟 +歇 +暗 +暇 +照 +畸 +跨 +跷 +跳 +跺 +跪 +路 +跤 +跟 +遣 +蜈 +蜗 +蛾 +蜂 +蜕 +嗅 +嗡 +嗓 +署 +置 +罪 +罩 +蜀 +幌 +错 +锚 +锡 +锣 +锤 +锥 +锦 +键 +锯 +锰 +矮 +辞 +稚 +稠 +颓 +愁 +筹 +签 +简 +筷 +毁 +舅 +鼠 +催 +傻 +像 +躲 +魁 +衙 +微 +愈 +遥 +腻 +腰 +腥 +腮 +腹 +腺 +鹏 +腾 +腿 +鲍 +猿 +颖 +触 +解 +煞 +雏 +馍 +馏 +酱 +禀 +痹 +廓 +痴 +痰 +廉 +靖 +新 +韵 +意 +誊 +粮 +数 +煎 +塑 +慈 +煤 +煌 +满 +漠 +滇 +源 +滤 +滥 +滔 +溪 +溜 +漓 +滚 +溢 +溯 +滨 +溶 +溺 +粱 +滩 +慎 +誉 +塞 +寞 +窥 +窟 +寝 +谨 +褂 +裸 +福 +谬 +群 +殿 +辟 +障 +媳 +嫉 +嫌 +嫁 +叠 +缚 +缝 +缠 +缤 +剿 +静 +碧 +璃 +赘 +熬 +墙 +墟 +嘉 +摧 +赫 +截 +誓 +境 +摘 +摔 +撇 +聚 +慕 +暮 +摹 +蔓 +蔑 +蔡 +蔗 +蔽 +蔼 +熙 +蔚 +兢 +模 +槛 +榴 +榜 +榨 +榕 +歌 +遭 +酵 +酷 +酿 +酸 +碟 +碱 +碳 +磁 +愿 +需 +辖 +辗 +雌 +裳 +颗 +瞅 +墅 +嗽 +踊 +蜻 +蜡 +蝇 +蜘 +蝉 +嘛 +嘀 +赚 +锹 +锻 +镀 +舞 +舔 +稳 +熏 +箕 +算 +箩 +管 +箫 +舆 +僚 +僧 +鼻 +魄 +魅 +貌 +膜 +膊 +膀 +鲜 +疑 +孵 +馒 +裹 +敲 +豪 +膏 +遮 +腐 +瘩 +瘟 +瘦 +辣 +彰 +竭 +端 +旗 +精 +粹 +歉 +弊 +熄 +熔 +煽 +潇 +漆 +漱 +漂 +漫 +滴 +漾 +演 +漏 +慢 +慷 +寨 +赛 +寡 +察 +蜜 +寥 +谭 +肇 +褐 +褪 +谱 +隧 +嫩 +翠 +熊 +凳 +骡 +缩 +慧 +撵 +撕 +撒 +撩 +趣 +趟 +撑 +撮 +撬 +播 +擒 +墩 +撞 +撤 +增 +撰 +聪 +鞋 +鞍 +蕉 +蕊 +蔬 +蕴 +横 +槽 +樱 +橡 +樟 +橄 +敷 +豌 +飘 +醋 +醇 +醉 +磕 +磊 +磅 +碾 +震 +霄 +霉 +瞒 +题 +暴 +瞎 +嘻 +嘶 +嘲 +嘹 +影 +踢 +踏 +踩 +踪 +蝶 +蝴 +蝠 +蝎 +蝌 +蝗 +蝙 +嘿 +嘱 +幢 +墨 +镇 +镐 +镑 +靠 +稽 +稻 +黎 +稿 +稼 +箱 +篓 +箭 +篇 +僵 +躺 +僻 +德 +艘 +膝 +膛 +鲤 +鲫 +熟 +摩 +褒 +瘪 +瘤 +瘫 +凛 +颜 +毅 +糊 +遵 +憋 +潜 +澎 +潮 +潭 +鲨 +澳 +潘 +澈 +澜 +澄 +懂 +憔 +懊 +憎 +额 +翩 +褥 +谴 +鹤 +憨 +慰 +劈 +履 +豫 +缭 +撼 +擂 +操 +擅 +燕 +蕾 +薯 +薛 +薇 +擎 +薪 +薄 +颠 +翰 +噩 +橱 +橙 +橘 +整 +融 +瓢 +醒 +霍 +霎 +辙 +冀 +餐 +嘴 +踱 +蹄 +蹂 +蟆 +螃 +器 +噪 +鹦 +赠 +默 +黔 +镜 +赞 +穆 +篮 +篡 +篷 +篱 +儒 +邀 +衡 +膨 +雕 +鲸 +磨 +瘾 +瘸 +凝 +辨 +辩 +糙 +糖 +糕 +燃 +濒 +澡 +激 +懒 +憾 +懈 +窿 +壁 +避 +缰 +缴 +戴 +擦 +藉 +鞠 +藏 +藐 +檬 +檐 +檀 +礁 +磷 +霜 +霞 +瞭 +瞧 +瞬 +瞳 +瞩 +瞪 +曙 +蹋 +蹈 +螺 +蟋 +蟀 +嚎 +赡 +穗 +魏 +簧 +簇 +繁 +徽 +爵 +朦 +臊 +鳄 +癌 +辫 +赢 +糟 +糠 +燥 +懦 +豁 +臀 +臂 +翼 +骤 +藕 +鞭 +藤 +覆 +瞻 +蹦 +嚣 +镰 +翻 +鳍 +鹰 +瀑 +襟 +璧 +戳 +孽 +警 +蘑 +藻 +攀 +曝 +蹲 +蹭 +蹬 +巅 +簸 +簿 +蟹 +颤 +靡 +癣 +瓣 +羹 +鳖 +爆 +疆 +鬓 +壤 +馨 +耀 +躁 +蠕 +嚼 +嚷 +巍 +籍 +鳞 +魔 +糯 +灌 +譬 +蠢 +霸 +露 +霹 +躏 +黯 +髓 +赣 +囊 +镶 +瓤 +罐 +矗 +乂 +乜 +兀 +弋 +孑 +孓 +幺 +亓 +韦 +廿 +丏 +卅 +仄 +厄 +仃 +仉 +仂 +兮 +刈 +爻 +卞 +闩 +讣 +尹 +夬 +爿 +毋 +邗 +邛 +艽 +艿 +札 +叵 +匝 +丕 +匜 +劢 +卟 +叱 +叻 +仨 +仕 +仟 +仡 +仫 +仞 +卮 +氐 +犰 +刍 +邝 +邙 +汀 +讦 +讧 +讪 +讫 +尻 +阡 +尕 +弁 +驭 +匡 +耒 +玎 +玑 +邢 +圩 +圬 +圭 +扦 +圪 +圳 +圹 +扪 +圮 +圯 +芊 +芍 +芄 +芨 +芑 +芎 +芗 +亘 +厍 +夼 +戍 +尥 +乩 +旯 +曳 +岌 +屺 +凼 +囡 +钇 +缶 +氘 +氖 +牝 +伎 +伛 +伢 +佤 +仵 +伥 +伧 +伉 +伫 +囟 +汆 +刖 +夙 +旮 +刎 +犷 +犸 +舛 +凫 +邬 +饧 +汕 +汔 +汐 +汲 +汜 +汊 +忖 +忏 +讴 +讵 +祁 +讷 +聿 +艮 +厾 +阱 +阮 +阪 +丞 +妁 +牟 +纡 +纣 +纥 +纨 +玕 +玙 +抟 +抔 +圻 +坂 +坍 +坞 +抃 +抉 +㧐 +芫 +邯 +芸 +芾 +苈 +苣 +芷 +芮 +苋 +芼 +苌 +苁 +芩 +芪 +芡 +芟 +苄 +苎 +苡 +杌 +杓 +杞 +杈 +忑 +孛 +邴 +邳 +矶 +奁 +豕 +忒 +欤 +轫 +迓 +邶 +忐 +卣 +邺 +旰 +呋 +呒 +呓 +呔 +呖 +呃 +旸 +吡 +町 +虬 +呗 +吽 +吣 +吲 +帏 +岐 +岈 +岘 +岑 +岚 +兕 +囵 +囫 +钊 +钋 +钌 +迕 +氙 +氚 +牤 +佞 +邱 +攸 +佚 +佝 +佟 +佗 +伽 +彷 +佘 +佥 +孚 +豸 +坌 +肟 +邸 +奂 +劬 +狄 +狁 +鸠 +邹 +饨 +饩 +饪 +饫 +饬 +亨 +庑 +庋 +疔 +疖 +肓 +闱 +闳 +闵 +羌 +炀 +沣 +沅 +沔 +沤 +沌 +沏 +沚 +汩 +汨 +沂 +汾 +沨 +汴 +汶 +沆 +沩 +泐 +怃 +怄 +忡 +忤 +忾 +怅 +忻 +忪 +怆 +忭 +忸 +诂 +诃 +诅 +诋 +诌 +诏 +诒 +孜 +陇 +陀 +陂 +陉 +妍 +妩 +妪 +妣 +妊 +妗 +妫 +妞 +姒 +妤 +邵 +劭 +刭 +甬 +邰 +纭 +纰 +纴 +纶 +纾 +玮 +玡 +玭 +玠 +玢 +玥 +玦 +盂 +忝 +匦 +坩 +抨 +拤 +坫 +拈 +垆 +抻 +劼 +拃 +拊 +坼 +坻 +㧟 +坨 +坭 +抿 +坳 +耶 +苷 +苯 +苤 +茏 +苫 +苜 +苴 +苒 +苘 +茌 +苻 +苓 +茚 +茆 +茑 +茓 +茔 +茕 +茀 +苕 +枥 +枇 +杪 +杳 +枧 +杵 +枨 +枞 +枋 +杻 +杷 +杼 +矸 +砀 +刳 +奄 +瓯 +殁 +郏 +轭 +郅 +鸢 +盱 +昊 +昙 +杲 +昃 +咂 +呸 +昕 +昀 +旻 +昉 +炅 +咔 +畀 +虮 +咀 +呷 +黾 +呱 +呤 +咚 +咆 +咛 +呶 +呣 +呦 +咝 +岢 +岿 +岬 +岫 +帙 +岣 +峁 +刿 +迥 +岷 +剀 +帔 +峄 +沓 +囹 +罔 +钍 +钎 +钏 +钒 +钕 +钗 +邾 +迮 +牦 +竺 +迤 +佶 +佬 +佰 +侑 +侉 +臾 +岱 +侗 +侃 +侏 +侩 +佻 +佾 +侪 +佼 +佯 +侬 +帛 +阜 +侔 +徂 +刽 +郄 +怂 +籴 +瓮 +戗 +肼 +䏝 +肽 +肱 +肫 +剁 +迩 +郇 +狙 +狎 +狍 +狒 +咎 +炙 +枭 +饯 +饴 +冽 +冼 +庖 +疠 +疝 +疡 +兖 +妾 +劾 +炜 +𬉼 +炖 +炘 +炝 +炔 +泔 +沭 +泷 +泸 +泱 +泅 +泗 +泠 +泺 +泖 +泫 +泮 +沱 +泯 +泓 +泾 +怙 +怵 +怦 +怛 +怏 +怍 +㤘 +怩 +怫 +怿 +宕 +穹 +宓 +诓 +诔 +诖 +诘 +戾 +诙 +戽 +郓 +衩 +祆 +祎 +祉 +祇 +诛 +诜 +诟 +诠 +诣 +诤 +诧 +诨 +诩 +戕 +孢 +亟 +陔 +妲 +妯 +姗 +帑 +弩 +孥 +驽 +虱 +迦 +迨 +绀 +绁 +绂 +驷 +驸 +绉 +绌 +驿 +骀 +甾 +珏 +珐 +珂 +珑 +玳 +珀 +顸 +珉 +珈 +拮 +垭 +挝 +垣 +挞 +垤 +赳 +贲 +垱 +垌 +郝 +垧 +垓 +挦 +垠 +茜 +荚 +荑 +贳 +荜 +莒 +茼 +茴 +茱 +莛 +荞 +茯 +荏 +荇 +荃 +荟 +荀 +茗 +荠 +茭 +茨 +垩 +荥 +荦 +荨 +荩 +剋 +荪 +茹 +荬 +荮 +柰 +栉 +柯 +柘 +栊 +柩 +枰 +栌 +柙 +枵 +柚 +枳 +柞 +柝 +栀 +柢 +栎 +枸 +柈 +柁 +枷 +柽 +剌 +酊 +郦 +甭 +砗 +砘 +砒 +斫 +砭 +砜 +奎 +耷 +虺 +殂 +殇 +殄 +殆 +轱 +轲 +轳 +轶 +轸 +虿 +毖 +觇 +尜 +哐 +眄 +眍 +𠳐 +郢 +眇 +眊 +眈 +禺 +哂 +咴 +曷 +昴 +昱 +昵 +咦 +哓 +哔 +畎 +毗 +呲 +胄 +畋 +畈 +虼 +虻 +盅 +咣 +哕 +剐 +郧 +咻 +囿 +咿 +哌 +哙 +哚 +咯 +咩 +咤 +哝 +哏 +哞 +峙 +峣 +罘 +帧 +峒 +峤 +峋 +峥 +贶 +钚 +钛 +钡 +钣 +钤 +钨 +钫 +钯 +氡 +氟 +牯 +郜 +秕 +秭 +竽 +笈 +笃 +俦 +俨 +俅 +俪 +叟 +垡 +牮 +俣 +俚 +皈 +俑 +俟 +逅 +徇 +徉 +舢 +俞 +郗 +俎 +郤 +爰 +郛 +瓴 +胨 +胪 +胛 +胂 +胙 +胍 +胗 +胝 +朐 +胫 +鸨 +匍 +狨 +狯 +飑 +狩 +狲 +訇 +逄 +昝 +饷 +饸 +饹 +胤 +孪 +娈 +弈 +奕 +庥 +疬 +疣 +疥 +疭 +庠 +竑 +彦 +飒 +闼 +闾 +闿 +阂 +羑 +迸 +籼 +酋 +炳 +炻 +炽 +炯 +烀 +炷 +烃 +洱 +洹 +洧 +洌 +浃 +洇 +洄 +洙 +涎 +洎 +洫 +浍 +洮 +洵 +浒 +浔 +浕 +洳 +恸 +恓 +恹 +恫 +恺 +恻 +恂 +恪 +恽 +宥 +扃 +衲 +衽 +衿 +袂 +祛 +祜 +祓 +祚 +诮 +祗 +祢 +诰 +诳 +鸩 +昶 +郡 +咫 +弭 +牁 +胥 +陛 +陟 +娅 +姮 +娆 +姝 +姣 +姘 +姹 +怼 +羿 +炱 +矜 +绔 +骁 +骅 +绗 +绛 +骈 +耖 +挈 +珥 +珙 +顼 +珰 +珩 +珧 +珣 +珞 +琤 +珲 +敖 +恚 +埔 +埕 +埘 +埙 +埚 +挹 +耆 +耄 +埒 +捋 +贽 +垸 +捃 +盍 +荸 +莆 +莳 +莴 +莪 +莠 +莓 +莜 +莅 +荼 +莩 +荽 +莸 +荻 +莘 +莎 +莞 +莨 +渇 +鸪 +莼 +栲 +栳 +郴 +桓 +桡 +桎 +桢 +桤 +梃 +栝 +桕 +桁 +桧 +桅 +栟 +桉 +栩 +逑 +逋 +彧 +鬲 +豇 +酐 +逦 +厝 +孬 +砝 +砹 +砺 +砧 +砷 +砟 +砼 +砥 +砣 +剞 +砻 +轼 +轾 +辂 +鸫 +趸 +龀 +鸬 +虔 +逍 +眬 +唛 +晟 +眩 +眙 +哧 +哽 +唔 +晁 +晏 +鸮 +趵 +趿 +畛 +蚨 +蚜 +蚍 +蚋 +蚬 +蚝 +蚧 +唢 +圄 +唣 +唏 +盎 +唑 +崂 +崃 +罡 +罟 +峪 +觊 +赅 +钰 +钲 +钴 +钵 +钹 +钺 +钽 +钼 +钿 +铀 +铂 +铄 +铆 +铈 +铉 +铊 +铋 +铌 +铍 +䥽 +铎 +氩 +氤 +氦 +毪 +舐 +秣 +秫 +盉 +笄 +笕 +笊 +笏 +笆 +俸 +倩 +俵 +偌 +俳 +俶 +倬 +倏 +恁 +倭 +倪 +俾 +倜 +隼 +隽 +倌 +倥 +臬 +皋 +郫 +倨 +衄 +颀 +徕 +舫 +釜 +奚 +衾 +胯 +胱 +胴 +胭 +脍 +胼 +朕 +脒 +胺 +鸱 +玺 +鸲 +狷 +猁 +狳 +猃 +狺 +逖 +桀 +袅 +饽 +凇 +栾 +挛 +亳 +疳 +疴 +疸 +疽 +痈 +疱 +痂 +痉 +衮 +凋 +颃 +恣 +旆 +旄 +旃 +阃 +阄 +訚 +阆 +恙 +粑 +朔 +郸 +烜 +烨 +烩 +烊 +剡 +郯 +烬 +涑 +浯 +涞 +涟 +娑 +涅 +涠 +浞 +涓 +浥 +涔 +浜 +浠 +浣 +浚 +悚 +悭 +悝 +悒 +悌 +悛 +宸 +窈 +剜 +诹 +冢 +诼 +袒 +袢 +祯 +诿 +谀 +谂 +谄 +谇 +屐 +屙 +陬 +勐 +奘 +牂 +蚩 +陲 +姬 +娠 +娌 +娉 +娲 +娩 +娴 +娣 +娓 +婀 +畚 +逡 +绠 +骊 +绡 +骋 +绥 +绦 +绨 +骎 +邕 +鸶 +彗 +耜 +焘 +舂 +琏 +琇 +麸 +揶 +埴 +埯 +捯 +掳 +掴 +埸 +埵 +赧 +埤 +捭 +逵 +埝 +堋 +堍 +掬 +鸷 +掖 +捽 +掊 +堉 +掸 +捩 +掮 +悫 +埭 +埽 +掇 +掼 +聃 +菁 +萁 +菘 +堇 +萘 +萋 +菽 +菖 +萜 +萸 +萑 +棻 +菔 +菟 +萏 +萃 +菏 +菹 +菪 +菅 +菀 +萦 +菰 +菡 +梵 +梿 +梏 +觋 +桴 +桷 +梓 +棁 +桫 +棂 +啬 +郾 +匮 +敕 +豉 +鄄 +酞 +酚 +戛 +硎 +硭 +硒 +硖 +硗 +硐 +硇 +硌 +鸸 +瓠 +匏 +厩 +龚 +殒 +殓 +殍 +赉 +雩 +辄 +堑 +眭 +眦 +啧 +晡 +晤 +眺 +眵 +眸 +圊 +喏 +喵 +啉 +勖 +晞 +唵 +晗 +冕 +啭 +畦 +趺 +啮 +跄 +蚶 +蛄 +蛎 +蛆 +蚰 +蛊 +圉 +蚱 +蛉 +蛏 +蚴 +啁 +啕 +唿 +啐 +唼 +唷 +啖 +啵 +啶 +啷 +唳 +唰 +啜 +帻 +崚 +崦 +帼 +崮 +崤 +崆 +赇 +赈 +赊 +铑 +铒 +铗 +铙 +铟 +铠 +铡 +铢 +铣 +铤 +铧 +铨 +铩 +铪 +铫 +铬 +铮 +铯 +铰 +铱 +铳 +铵 +铷 +氪 +牾 +鸹 +秾 +逶 +笺 +筇 +笸 +笪 +笮 +笠 +笥 +笤 +笳 +笾 +笞 +偾 +偃 +偕 +偈 +傀 +偬 +偻 +皑 +皎 +鸻 +徜 +舸 +舻 +舴 +舷 +龛 +翎 +脬 +脘 +脲 +匐 +猗 +猡 +猞 +猝 +斛 +猕 +馗 +馃 +馄 +鸾 +孰 +庹 +庾 +痔 +痍 +疵 +翊 +旌 +旎 +袤 +阇 +阈 +阉 +阊 +阋 +阍 +阏 +羟 +粝 +粕 +敝 +焐 +烯 +焓 +烽 +焖 +烷 +焗 +渍 +渚 +淇 +淅 +淞 +渎 +涿 +淖 +挲 +淠 +涸 +渑 +淦 +淝 +淬 +涪 +淙 +涫 +渌 +淄 +惬 +悻 +悱 +惝 +惘 +悸 +惆 +惚 +惇 +惮 +窕 +谌 +谏 +扈 +皲 +谑 +裆 +袷 +裉 +谒 +谔 +谕 +谖 +谗 +谙 +谛 +谝 +逯 +郿 +隈 +粜 +隍 +隗 +婧 +婊 +婕 +娼 +婢 +婵 +胬 +袈 +翌 +恿 +欸 +绫 +骐 +绮 +绯 +绱 +骒 +绲 +骓 +绶 +绺 +绻 +绾 +骖 +缁 +耠 +琫 +琵 +琶 +琪 +瑛 +琦 +琥 +琨 +靓 +琰 +琮 +琯 +琬 +琛 +琚 +辇 +鼋 +揳 +堞 +搽 +揸 +揠 +堙 +趄 +揖 +颉 +塄 +揿 +耋 +揄 +蛩 +蛰 +塆 +摒 +揆 +掾 +聒 +葑 +葚 +靰 +靸 +葳 +葺 +葸 +萼 +葆 +葩 +葶 +蒌 +萱 +戟 +葭 +楮 +棼 +椟 +棹 +椤 +棰 +赍 +椋 +椁 +椪 +棣 +椐 +鹁 +覃 +酤 +酢 +酡 +鹂 +厥 +殚 +殛 +雯 +雱 +辊 +辋 +椠 +辍 +辎 +斐 +睄 +睑 +睇 +睃 +戢 +喋 +嗒 +喃 +喱 +喹 +晷 +喈 +跖 +跗 +跞 +跚 +跎 +跏 +跆 +蛱 +蛲 +蛭 +蛳 +蛐 +蛔 +蛞 +蛴 +蛟 +蛘 +喁 +喟 +啾 +嗖 +喑 +嗟 +喽 +嗞 +喀 +喔 +喙 +嵘 +嵖 +崴 +遄 +詈 +嵎 +崽 +嵬 +嵛 +嵯 +嵝 +嵫 +幄 +嵋 +赕 +铻 +铼 +铿 +锃 +锂 +锆 +锇 +锉 +锏 +锑 +锒 +锔 +锕 +掣 +矬 +氰 +毳 +毽 +犊 +犄 +犋 +鹄 +犍 +嵇 +黍 +稃 +稂 +筚 +筵 +筌 +傣 +傈 +舄 +牍 +傥 +傧 +遑 +傩 +遁 +徨 +媭 +畲 +弑 +颌 +翕 +釉 +鹆 +舜 +貂 +腈 +腌 +腓 +腆 +腴 +腑 +腚 +腱 +鱿 +鲀 +鲂 +颍 +猢 +猹 +猥 +飓 +觞 +觚 +猱 +颎 +飧 +馇 +馊 +亵 +脔 +裒 +痣 +痨 +痦 +痞 +痤 +痫 +痧 +赓 +竦 +瓿 +啻 +颏 +鹇 +阑 +阒 +阕 +粞 +遒 +孳 +焯 +焜 +焙 +焱 +鹈 +湛 +渫 +湮 +湎 +湜 +渭 +湍 +湫 +溲 +湟 +溆 +湲 +湔 +湉 +渥 +湄 +滁 +愠 +惺 +愦 +惴 +愀 +愎 +愔 +喾 +寐 +谟 +扉 +裢 +裎 +裥 +祾 +祺 +谠 +幂 +谡 +谥 +谧 +遐 +孱 +弼 +巽 +骘 +媪 +媛 +婷 +巯 +翚 +皴 +婺 +骛 +缂 +缃 +缄 +彘 +缇 +缈 +缌 +缑 +缒 +缗 +飨 +耢 +瑚 +瑁 +瑜 +瑗 +瑄 +瑕 +遨 +骜 +韫 +髡 +塬 +鄢 +趔 +趑 +摅 +摁 +蜇 +搋 +搪 +搐 +搛 +搠 +摈 +彀 +毂 +搦 +搡 +蓁 +戡 +蓍 +鄞 +靳 +蓐 +蓦 +鹋 +蒽 +蓓 +蓖 +蓊 +蒯 +蓟 +蓑 +蒿 +蒺 +蓠 +蒟 +蒡 +蒹 +蒴 +蒗 +蓥 +颐 +楔 +楠 +楂 +楝 +楫 +楸 +椴 +槌 +楯 +皙 +榈 +槎 +榉 +楦 +楣 +楹 +椽 +裘 +剽 +甄 +酮 +酰 +酯 +酩 +蜃 +碛 +碓 +硼 +碉 +碚 +碇 +碜 +鹌 +辏 +龃 +龅 +訾 +粲 +虞 +睚 +嗪 +韪 +嗷 +嗉 +睨 +睢 +雎 +睥 +嘟 +嗑 +嗫 +嗬 +嗔 +嗝 +戥 +嗄 +煦 +暄 +遢 +暌 +跬 +跶 +跸 +跐 +跣 +跹 +跻 +蛸 +蜊 +蜍 +蜉 +蜣 +畹 +蛹 +嗣 +嗯 +嗥 +嗲 +嗳 +嗌 +嗍 +嗨 +嗐 +嗤 +嗵 +罨 +嵊 +嵩 +嵴 +骰 +锗 +锛 +锜 +锝 +锞 +锟 +锢 +锨 +锩 +锭 +锱 +雉 +氲 +犏 +歃 +稞 +稗 +稔 +筠 +筢 +筮 +筲 +筱 +牒 +煲 +敫 +徭 +愆 +艄 +觎 +毹 +貊 +貅 +貉 +颔 +腠 +腩 +腼 +腭 +腧 +塍 +媵 +詹 +鲅 +鲆 +鲇 +鲈 +稣 +鲋 +鲐 +肄 +鹐 +飕 +觥 +遛 +馐 +鹑 +亶 +瘃 +痱 +痼 +痿 +瘐 +瘁 +瘆 +麂 +裔 +歆 +旒 +雍 +阖 +阗 +阙 +羧 +豢 +粳 +猷 +煳 +煜 +煨 +煅 +煊 +煸 +煺 +滟 +溱 +溘 +漭 +滢 +溥 +溧 +溽 +裟 +溻 +溷 +滗 +滫 +溴 +滏 +滃 +滦 +溏 +滂 +滓 +溟 +滪 +愫 +慑 +慊 +鲎 +骞 +窦 +窠 +窣 +裱 +褚 +裨 +裾 +裰 +禊 +谩 +谪 +媾 +嫫 +媲 +嫒 +嫔 +媸 +缙 +缜 +缛 +辔 +骝 +缟 +缡 +缢 +缣 +骟 +耥 +璈 +瑶 +瑭 +獒 +觏 +慝 +嫠 +韬 +叆 +髦 +摽 +墁 +撂 +摞 +撄 +翥 +踅 +摭 +墉 +墒 +榖 +綦 +蔫 +蔷 +靺 +靼 +鞅 +靿 +甍 +蔸 +蔟 +蔺 +戬 +蕖 +蔻 +蓿 +斡 +鹕 +蓼 +榛 +榧 +榻 +榫 +榭 +槔 +榱 +槁 +槟 +槠 +榷 +僰 +酽 +酶 +酹 +厮 +碡 +碴 +碣 +碲 +磋 +臧 +豨 +殡 +霆 +霁 +辕 +蜚 +裴 +翡 +龇 +龈 +睿 +䁖 +睽 +嘞 +嘈 +嘌 +嘁 +嘎 +暧 +暝 +踌 +踉 +蜞 +蜥 +蜮 +蝈 +蜴 +蜱 +蜩 +蜷 +蜿 +螂 +蜢 +嘘 +嘡 +鹗 +嘣 +嘤 +嘚 +嗾 +嘧 +罴 +罱 +幔 +嶂 +幛 +赙 +罂 +骷 +骶 +鹘 +锲 +锴 +锶 +锷 +锸 +锵 +镁 +镂 +犒 +箐 +箦 +箧 +箍 +箸 +箬 +箅 +箪 +箔 +箜 +箢 +箓 +毓 +僖 +儆 +僳 +僭 +劁 +僮 +魃 +魆 +睾 +艋 +鄱 +膈 +膑 +鲑 +鲔 +鲚 +鲛 +鲟 +獐 +觫 +雒 +夤 +馑 +銮 +塾 +麽 +瘌 +瘊 +瘘 +瘙 +廖 +韶 +旖 +膂 +阚 +鄯 +鲞 +粿 +粼 +粽 +糁 +槊 +鹚 +熘 +熥 +潢 +漕 +滹 +漯 +漶 +潋 +潴 +漪 +漉 +漳 +漩 +澉 +潍 +慵 +搴 +窨 +寤 +綮 +谮 +褡 +褙 +褓 +褛 +褊 +谯 +谰 +谲 +暨 +屣 +鹛 +嫣 +嫱 +嫖 +嫦 +嫚 +嫘 +嫡 +鼐 +翟 +瞀 +鹜 +骠 +缥 +缦 +缧 +缨 +骢 +缪 +缫 +耦 +耧 +瑾 +璜 +璀 +璎 +璁 +璋 +璇 +奭 +髯 +髫 +撷 +撅 +赭 +撸 +鋆 +撙 +撺 +墀 +聩 +觐 +鞑 +蕙 +鞒 +蕈 +蕨 +蕤 +蕞 +蕺 +瞢 +蕃 +蕲 +赜 +槿 +樯 +槭 +樗 +樘 +樊 +槲 +醌 +醅 +靥 +魇 +餍 +磔 +磙 +霈 +辘 +龉 +龊 +觑 +瞌 +瞋 +瞑 +嘭 +噎 +噶 +颙 +暹 +噘 +踔 +踝 +踟 +踒 +踬 +踮 +踯 +踺 +踞 +蝽 +蝾 +蝻 +蝰 +蝮 +螋 +蝓 +蝣 +蝼 +噗 +嘬 +颚 +噍 +噢 +噙 +噜 +噌 +噔 +颛 +幞 +幡 +嶙 +嶝 +骺 +骼 +骸 +镊 +镉 +镌 +镍 +镏 +镒 +镓 +镔 +稷 +箴 +篑 +篁 +篌 +篆 +牖 +儋 +徵 +磐 +虢 +鹞 +膘 +滕 +鲠 +鲡 +鲢 +鲣 +鲥 +鲧 +鲩 +獗 +獠 +觯 +馓 +馔 +麾 +廛 +瘛 +瘼 +瘢 +瘠 +齑 +羯 +羰 +𥻗 +遴 +糌 +糍 +糅 +熜 +熵 +熠 +澍 +澌 +潸 +潦 +潲 +鋈 +潟 +潼 +潺 +憬 +憧 +寮 +窳 +谳 +褴 +褟 +褫 +谵 +熨 +屦 +嬉 +勰 +戮 +蝥 +缬 +缮 +缯 +骣 +畿 +耩 +耨 +耪 +璞 +璟 +靛 +璠 +璘 +聱 +螯 +髻 +髭 +髹 +擀 +熹 +甏 +擞 +縠 +磬 +颞 +蕻 +鞘 +颟 +薤 +薨 +檠 +薏 +薮 +薜 +薅 +樾 +橛 +橇 +樵 +檎 +橹 +樽 +樨 +橼 +墼 +橐 +翮 +醛 +醐 +醍 +醚 +磲 +赝 +飙 +殪 +霖 +霏 +霓 +錾 +辚 +臻 +遽 +氅 +瞟 +瞠 +瞰 +嚄 +嚆 +噤 +暾 +蹀 +踹 +踵 +踽 +蹉 +蹁 +螨 +蟒 +螈 +螅 +螭 +螠 +螟 +噱 +噬 +噫 +噻 +噼 +罹 +圜 +䦃 +镖 +镗 +镘 +镚 +镛 +镝 +镞 +镠 +氇 +氆 +憩 +穑 +篝 +篥 +篦 +篪 +篙 +盥 +劓 +翱 +魉 +魈 +徼 +歙 +膳 +膦 +膙 +鲮 +鲱 +鲲 +鲳 +鲴 +鲵 +鲷 +鲻 +獴 +獭 +獬 +邂 +鹧 +廨 +赟 +瘰 +廪 +瘿 +瘵 +瘴 +癃 +瘳 +斓 +麇 +麈 +嬴 +壅 +羲 +糗 +瞥 +甑 +燎 +燠 +燔 +燧 +濑 +濉 +潞 +澧 +澹 +澥 +澶 +濂 +褰 +寰 +窸 +褶 +禧 +嬖 +犟 +隰 +嬗 +颡 +缱 +缲 +缳 +璨 +璩 +璐 +璪 +螫 +擤 +壕 +觳 +罄 +擢 +薹 +鞡 +鞬 +薷 +薰 +藓 +藁 +檄 +檩 +懋 +醢 +翳 +礅 +磴 +鹩 +龋 +龌 +豳 +壑 +黻 +嚏 +嚅 +蹑 +蹒 +蹊 +蟥 +螬 +螵 +疃 +螳 +蟑 +嚓 +羁 +罽 +罾 +嶷 +黜 +黝 +髁 +髀 +镡 +镢 +镣 +镦 +镧 +镩 +镪 +镫 +罅 +黏 +簌 +篾 +篼 +簖 +簋 +鼢 +黛 +儡 +鹪 +鼾 +皤 +魍 +龠 +繇 +貘 +邈 +貔 +臌 +膻 +臆 +臃 +鲼 +鲽 +鳀 +鳃 +鳅 +鳇 +鳊 +螽 +燮 +鹫 +襄 +糜 +縻 +膺 +癍 +麋 +懑 +濡 +濮 +濞 +濠 +濯 +蹇 +謇 +邃 +襁 +檗 +擘 +孺 +隳 +嬷 +蟊 +鹬 +鍪 +鏊 +鳌 +鬈 +鬃 +瞽 +鞯 +鞨 +鞫 +鞧 +鞣 +藜 +藠 +藩 +醪 +蹙 +礓 +燹 +餮 +瞿 +曛 +颢 +曜 +躇 +蹚 +鹭 +蟛 +蟪 +蟠 +蟮 +鹮 +黠 +黟 +髅 +髂 +镬 +镭 +镯 +馥 +簟 +簪 +鼬 +雠 +艟 +鳎 +鳏 +鳐 +癞 +癔 +癜 +癖 +糨 +蹩 +鎏 +懵 +彝 +邋 +鬏 +攉 +攒 +鞲 +鞴 +藿 +蘧 +蘅 +麓 +醮 +醯 +酃 +霪 +霭 +霨 +黼 +嚯 +蹰 +蹶 +蹽 +蹼 +蹴 +蹾 +蹿 +蠖 +蠓 +蟾 +蠊 +黢 +髋 +髌 +镲 +籀 +籁 +齁 +魑 +艨 +鳓 +鳔 +鳕 +鳗 +鳙 +麒 +鏖 +羸 +㸆 +瀚 +瀣 +瀛 +襦 +谶 +襞 +骥 +缵 +瓒 +攘 +蘩 +蘖 +醴 +霰 +酆 +矍 +曦 +躅 +鼍 +巉 +黩 +黥 +黪 +镳 +镴 +黧 +纂 +璺 +鼯 +臜 +鳜 +鳝 +鳟 +獾 +孀 +骧 +瓘 +鼙 +醺 +礴 +颦 +曩 +鳢 +癫 +麝 +夔 +爝 +灏 +禳 +鐾 +羼 +蠡 +耱 +懿 +蘸 +鹳 +霾 +氍 +饕 +躐 +髑 +镵 +穰 +饔 +鬻 +鬟 +趱 +攫 +攥 +颧 +躜 +鼹 +癯 +麟 +蠲 +蠹 +躞 +衢 +鑫 +灞 +襻 +纛 +鬣 +攮 +囔 +馕 +戆 +爨 +齉 +亍 +尢 +彳 +卬 +殳 +𠙶 +毌 +邘 +戋 +圢 +氕 +伋 +仝 +冮 +氿 +汈 +氾 +忉 +宄 +讱 +扞 +圲 +圫 +芏 +芃 +朳 +朸 +𨙸 +邨 +吒 +吖 +屼 +屾 +辿 +钆 +仳 +伣 +伈 +癿 +甪 +邠 +犴 +冱 +邡 +闫 +汋 +䜣 +讻 +孖 +纩 +玒 +玓 +玘 +玚 +刬 +坜 +坉 +扽 +坋 +扺 +㧑 +毐 +芰 +芣 +苊 +苉 +芘 +芴 +芠 +芤 +杕 +杙 +杄 +杧 +杩 +尪 +尨 +轪 +坒 +芈 +旴 +旵 +呙 +㕮 +岍 +岠 +岜 +呇 +冏 +觃 +岙 +伾 +㑇 +伭 +佖 +伲 +佁 +飏 +狃 +闶 +汧 +汫 +𣲘 +𣲗 +沄 +沘 +汭 +㳇 +沇 +忮 +忳 +忺 +祃 +诇 +邲 +诎 +诐 +屃 +岊 +阽 +䢺 +阼 +妧 +妘 +𨚕 +纮 +驲 +纻 +纼 +玤 +玞 +玱 +玟 +邽 +邿 +坥 +坰 +坬 +坽 +弆 +耵 +䢼 +𦭜 +茋 +苧 +苾 +苠 +枅 +㭎 +枘 +枍 +矼 +矻 +匼 +旿 +昇 +昄 +昒 +昈 +咉 +咇 +咍 +岵 +岽 +岨 +岞 +峂 +㟃 +囷 +钐 +钔 +钖 +牥 +佴 +垈 +侁 +侹 +佸 +佺 +隹 +㑊 +侂 +佽 +侘 +郈 +舠 +郐 +郃 +攽 +肭 +肸 +肷 +狉 +狝 +饳 +忞 +於 +炌 +炆 +泙 +沺 +泂 +泜 +泃 +泇 +怊 +峃 +穸 +祋 +祊 +鸤 +弢 +弨 +陑 +陎 +卺 +乸 +妭 +姈 +迳 +叕 +驵 +䌹 +驺 +绋 +绐 +砉 +耔 +㛃 +玶 +珇 +珅 +珋 +玹 +珌 +玿 +韨 +垚 +垯 +垙 +垲 +埏 +垍 +耇 +垎 +垴 +垟 +垞 +挓 +垵 +垏 +拶 +荖 +荁 +荙 +荛 +茈 +茽 +荄 +茺 +荓 +茳 +𦰡 +茛 +荭 +㭕 +柷 +柃 +柊 +枹 +栐 +柖 +郚 +剅 +䴓 +迺 +厖 +砆 +砑 +砄 +耏 +奓 +䶮 +轵 +轷 +轹 +轺 +昺 +昽 +盷 +咡 +咺 +昳 +昣 +哒 +昤 +昫 +昡 +咥 +昪 +虷 +虸 +哃 +峘 +耑 +峛 +峗 +峧 +帡 +钘 +钜 +钪 +钬 +钭 +矧 +秬 +俫 +舁 +俜 +俙 +俍 +垕 +衎 +舣 +弇 +侴 +鸧 +䏡 +胠 +𦙶 +胈 +胩 +胣 +朏 +飐 +訄 +饻 +庤 +疢 +炣 +炟 +㶲 +洭 +洘 +洓 +洿 +㳚 +泚 +浈 +浉 +洸 +洑 +洢 +洈 +洚 +洺 +洨 +浐 +㳘 +洴 +洣 +恔 +宬 +窀 +扂 +袆 +祏 +祐 +祕 +叚 +陧 +陞 +娀 +姞 +姱 +姤 +姶 +姽 +枲 +绖 +骃 +彖 +骉 +恝 +珪 +珛 +珹 +琊 +玼 +珖 +珽 +珦 +珫 +珒 +珢 +珕 +珝 +埗 +垾 +垺 +埆 +垿 +埌 +埇 +莰 +茝 +鄀 +莶 +莝 +䓖 +莙 +栻 +桠 +桄 +梠 +栴 +梴 +栒 +酎 +酏 +砵 +砠 +砫 +砬 +硁 +恧 +翃 +郪 +𨐈 +辀 +辁 +剕 +赀 +哢 +晅 +晊 +唝 +哳 +哱 +冔 +晔 +晐 +晖 +畖 +蚄 +蚆 +帱 +崁 +峿 +崄 +帨 +崀 +赆 +钷 +眚 +甡 +笫 +倻 +倴 +脩 +倮 +倕 +倞 +倓 +倧 +衃 +虒 +舭 +舯 +舥 +瓞 +鬯 +鸰 +脎 +朓 +胲 +虓 +鱽 +狴 +峱 +狻 +眢 +勍 +痄 +疰 +痃 +竘 +羖 +羓 +桊 +敉 +烠 +烔 +烶 +烻 +涍 +浡 +浭 +浬 +涄 +涢 +涐 +浰 +浟 +浛 +浼 +浲 +涘 +悈 +悃 +悢 +宧 +窅 +窊 +窎 +扅 +扆 +袪 +袗 +袯 +祧 +隺 +堲 +疍 +𨺙 +陴 +烝 +砮 +㛚 +哿 +翀 +翂 +剟 +绤 +骍 +䂮 +琎 +珸 +珵 +琄 +琈 +琀 +珺 +掭 +堎 +堐 +埼 +掎 +埫 +堌 +晢 +掞 +埪 +壸 +㙍 +聍 +菝 +萚 +菥 +莿 +䓫 +勚 +䓬 +萆 +菂 +菍 +菼 +萣 +䓨 +菉 +䓛 +梼 +梽 +桲 +梾 +桯 +梣 +梌 +桹 +敔 +厣 +硔 +硙 +硚 +硊 +硍 +勔 +䴕 +龁 +逴 +唪 +啫 +翈 +㫰 +晙 +畤 +趼 +跂 +蛃 +蚲 +蚺 +啴 +䎃 +崧 +崟 +崞 +崒 +崌 +崡 +铏 +铕 +铖 +铘 +铚 +铞 +铥 +铴 +牻 +牿 +稆 +笱 +笯 +偰 +偡 +鸺 +偭 +偲 +偁 +㿠 +鄅 +偓 +徛 +衒 +舳 +舲 +鸼 +悆 +鄃 +瓻 +䝙 +脶 +脞 +脟 +䏲 +鱾 +猇 +猊 +猄 +觖 +𠅤 +庱 +庼 +庳 +痓 +䴔 +竫 +堃 +阌 +羝 +羕 +焆 +烺 +焌 +淏 +淟 +淜 +淴 +淯 +湴 +涴 +㥄 +惛 +惔 +悰 +惙 +寁 +逭 +袼 +裈 +祲 +谞 +艴 +弸 +弶 +隃 +婞 +娵 +婼 +媖 +婳 +婍 +婌 +婫 +婤 +婘 +婠 +绹 +骕 +絜 +珷 +琲 +琡 +琟 +琔 +琭 +堾 +堼 +揕 +㙘 +堧 +喆 +堨 +塅 +堠 +絷 +𡎚 +葜 +惎 +萳 +葙 +靬 +葴 +蒇 +蒈 +鄚 +蒉 +蓇 +萩 +蒐 +葰 +葎 +鄑 +蒎 +葖 +蒄 +萹 +棤 +棽 +棫 +椓 +椑 +鹀 +椆 +棓 +棬 +棪 +椀 +楗 +甦 +酦 +觌 +奡 +皕 +硪 +欹 +詟 +辌 +棐 +龂 +黹 +牚 +睎 +晫 +晪 +晱 +𧿹 +蛑 +畯 +斝 +喤 +崶 +嵁 +崾 +嵅 +崿 +嵚 +翙 +圌 +圐 +赑 +淼 +赒 +铹 +铽 +𨱇 +锊 +锍 +锎 +锓 +犇 +颋 +稌 +筀 +筘 +筜 +筥 +筅 +傃 +傉 +翛 +傒 +傕 +舾 +畬 +脿 +腘 +䐃 +腙 +腒 +鲃 +猰 +猯 +㺄 +馉 +鄗 +廋 +廆 +鄌 +粢 +遆 +旐 +焞 +欻 +𣸣 +溚 +溁 +湝 +渰 +湓 +㴔 +渟 +溠 +渼 +溇 +湣 +湑 +溞 +愐 +愃 +敩 +甯 +棨 +扊 +裣 +祼 +婻 +媆 +媞 +㛹 +媓 +媂 +媄 +毵 +矞 +缊 +缐 +骙 +瑃 +瑓 +瑅 +瑆 +䴖 +瑖 +瑝 +瑔 +瑀 +𤧛 +瑳 +瑂 +嶅 +瑑 +遘 +髢 +塥 +堽 +赪 +摛 +塝 +搒 +搌 +蒱 +蒨 +蓏 +蔀 +蓢 +蓂 +蒻 +蓣 +椹 +楪 +榃 +榅 +楒 +楞 +楩 +榇 +椸 +楙 +歅 +碃 +碏 +碈 +䃅 +硿 +鄠 +辒 +龆 +觜 +䣘 +暕 +鹍 +㬊 +暅 +跱 +蜐 +蜎 +嵲 +赗 +骱 +锖 +锘 +锳 +锧 +锪 +锫 +锬 +稑 +稙 +䅟 +筻 +筼 +筶 +筦 +筤 +傺 +鹎 +僇 +艅 +艉 +谼 +貆 +腽 +腨 +腯 +鲉 +鲊 +鲌 +䲟 +鲏 +雊 +猺 +飔 +觟 +𦝼 +馌 +裛 +廒 +瘀 +瘅 +鄘 +鹒 +鄜 +麀 +鄣 +阘 +煁 +煃 +煴 +煋 +煟 +煓 +滠 +溍 +溹 +滆 +滉 +溦 +溵 +漷 +滧 +滘 +滍 +愭 +慥 +慆 +塱 +裼 +禋 +禔 +禘 +禒 +谫 +鹔 +愍 +嫄 +媱 +戤 +戣 +缞 +耤 +瑧 +瑨 +瑱 +瑷 +瑢 +斠 +摏 +墕 +墈 +墐 +墘 +摴 +銎 +𡐓 +墚 +撖 +靽 +鞁 +蔌 +蔈 +蓰 +蔹 +蔊 +嘏 +榰 +榑 +槚 +𣗋 +槜 +榍 +疐 +酺 +酾 +酲 +酴 +碶 +䃎 +碨 +𥔲 +碹 +碥 +劂 +䴗 +夥 +瞍 +鹖 +㬎 +跽 +蜾 +幖 +嶍 +圙 +𨱏 +锺 +锼 +锽 +锾 +锿 +镃 +镄 +镅 +馝 +鹙 +箨 +箖 +劄 +僬 +僦 +僔 +僎 +槃 +㙦 +鲒 +鲕 +鲖 +鲗 +鲘 +鲙 +𩽾 +夐 +獍 +飗 +凘 +廑 +廙 +瘗 +瘥 +瘕 +鲝 +鄫 +熇 +漹 +漖 +潆 +漤 +潩 +漼 +漴 +㽏 +漈 +漋 +漻 +慬 +窬 +窭 +㮾 +褕 +禛 +禚 +隩 +嫕 +嫭 +嫜 +嫪 +㻬 +麹 +璆 +漦 +叇 +墣 +墦 +墡 +劐 +薁 +蕰 +蔃 +鼒 +槱 +鹝 +磏 +磉 +殣 +慭 +霅 +暵 +暲 +暶 +踦 +踣 +䗖 +蝘 +蝲 +蝤 +噇 +噂 +噀 +罶 +嶲 +嶓 +㠇 +嶟 +嶒 +镆 +镈 +镋 +镎 +镕 +稹 +儇 +皞 +皛 +䴘 +艎 +艏 +鹟 +𩾃 +鲦 +鲪 +鲬 +橥 +觭 +鹠 +鹡 +糇 +糈 +翦 +鹢 +鹣 +熛 +潖 +潵 +㵐 +澂 +澛 +瑬 +潽 +潾 +潏 +憭 +憕 +戭 +褯 +禤 +嫽 +遹 +璥 +璲 +璒 +憙 +擐 +鄹 +薳 +鞔 +黇 +蕗 +薢 +蕹 +橞 +橑 +橦 +醑 +觱 +磡 +𥕢 +磜 +豮 +鹾 +虤 +暿 +曌 +曈 +㬚 +蹅 +踶 +䗛 +螗 +疁 +㠓 +幪 +嶦 +𨱑 +馞 +穄 +篚 +篯 +簉 +鼽 +衠 +盦 +螣 +縢 +鲭 +鲯 +鲰 +鲺 +鲹 +亸 +癀 +瘭 +羱 +糒 +燋 +熻 +燊 +燚 +燏 +濩 +濋 +澪 +澽 +澴 +澭 +澼 +憷 +憺 +懔 +黉 +嬛 +鹨 +翯 +璱 +𤩽 +璬 +璮 +髽 +擿 +薿 +薸 +檑 +櫆 +檞 +醨 +繄 +磹 +磻 +瞫 +瞵 +蹐 +蟏 +㘎 +镤 +镥 +镨 +𨱔 +矰 +穙 +穜 +穟 +簕 +簃 +簏 +儦 +魋 +斶 +艚 +谿 +䲠 +鲾 +鲿 +鳁 +鳂 +鳈 +鳉 +獯 +䗪 +馘 +襕 +襚 +螱 +甓 +嬬 +嬥 +𦈡 +瓀 +釐 +鬶 +爇 +鞳 +鞮 +藟 +藦 +藨 +鹲 +檫 +黡 +礞 +礌 +𥖨 +蹢 +蹜 +蟫 +䗴 +嚚 +髃 +镮 +镱 +酂 +馧 +簠 +簝 +簰 +鼫 +鼩 +皦 +臑 +䲢 +鳑 +鳒 +鹱 +鹯 +癗 +𦒍 +旞 +翷 +冁 +䎖 +瀔 +瀍 +瀌 +襜 +䴙 +嚭 +㰀 +鬷 +醭 +蹯 +蠋 +翾 +鳘 +儳 +儴 +鼗 +𩾌 +鳚 +鳛 +麑 +麖 +蠃 +彟 +嬿 +鬒 +蘘 +欂 +醵 +颥 +甗 +𨟠 +巇 +酅 +髎 +犨 +𨭉 +㸌 +爔 +瀱 +瀹 +瀼 +瀵 +襫 +孅 +骦 +耰 +𤫉 +瓖 +鬘 +趯 +罍 +鼱 +鳠 +鳡 +鳣 +爟 +爚 +灈 +韂 +糵 +蘼 +礵 +鹴 +躔 +皭 +龢 +鳤 +亹 +籥 +鼷 +玃 +醾 +齇 +觿 +蠼 +𬣙 +𬇕 +𬣞 +𬘓 +𫭟 +𫭢 +𫇭 +𫐄 +𫵷 +𬇙 +𬣡 +𫸩 +𫘜 +𬘘 +𫘝 +𬨂 +𬀩 +𬀪 +𬬩 +𫍣 +𬣳 +𬩽 +𬮿 +𬯀 +𫰛 +𬳵 +𬳶 +𫠊 +𬍛 +鿍 +𬜬 +𪾢 +𪨰 +𫓧 +𬬮 +𬬱 +𬬭 +𬘡 +𬳽 +𬘩 +𫄧 +𪟝 +𬍤 +𫭼 +𬜯 +𬂩 +𫠆 +𬌗 +𫑡 +𪨶 +𬬸 +𬬻 +𬬹 +𬬿 +𬭁 +𫢸 +𫗧 +𬊈 +𬒈 +𬳿 +𫄨 +𬘫 +𫮃 +鿎 +𬱖 +𬟽 +𫓯 +𫟹 +𫟼 +𬇹 +𬍡 +𬤇 +𫍯 +𬤊 +𫍲 +𬯎 +𬘬 +𬘭 +𬴂 +𫘦 +𫟅 +𬘯 +𫘧 +𪣻 +𬃊 +𬷕 +𫐐 +𬹼 +𫶇 +𫖮 +鿏 +𬭊 +𫓶 +𬭎 +𫖯 +𬱟 +𫛭 +𫷷 +𬮱 +𬊤 +𬴃 +𫘨 +𬪩 +𬒔 +𬨎 +𫐓 +𫫇 +𫓹 +𬭚 +𬭛 +𬕂 +𬶋 +𬶍 +𫔶 +𫌀 +𫖳 +𫘪 +𫘬 +𫞩 +𪤗 +𬸘 +𬒗 +𫚖 +𬭤 +𫚕 +𬶐 +𬶏 +𬸚 +𬤝 +𬙂 +𬭩 +𬸣 +𫍽 +𬴊 +𬞟 +𫟦 +𬺈 +𫠜 +𪩘 +𬭬 +𬭯 +𫗴 +𬸦 +𫄷 +𬭳 +𬭶 +𫔍 +𬭸 +𬭼 +𫔎 +𬸪 +𬶟 +𬶠 +𬶨 +𫄸 +𬟁 +𬙊 +𬶭 +𬶮 +𬙋 +𬺓 +𫚭 +廠 +蔔 +兒 +幾 +幹 +虧 +纔 +與 +萬 +韆 +億 +個 +廣 +門 +義 +衛 +飛 +習 +馬 +鄉 +豐 +開 +無 +雲 +專 +藝 +廳 +區 +歷 +曆 +車 +貝 +岡 +見 +氣 +長 +僕 +幣 +僅 +從 +侖 +倉 +風 +烏 +鳳 +爲 +鬥 +憶 +計 +訂 +認 +譏 +醜 +隊 +辦 +鄧 +勸 +雙 +書 +擊 +撲 +節 +術 +厲 +龍 +滅 +軋 +東 +盧 +業 +舊 +帥 +歸 +葉 +電 +號 +衹 +隻 +嘰 +嘆 +們 +儀 +叢 +爾 +樂 +處 +鼕 +鳥 +務 +飢 +饑 +馮 +閃 +蘭 +匯 +彙 +頭 +漢 +寧 +討 +寫 +讓 +禮 +訓 +議 +訊 +記 +齣 +遼 +邊 +發 +髮 +聖 +對 +臺 +颱 +檯 +糾 +絲 +動 +鞏 +執 +擴 +掃 +場 +揚 +亞 +樸 +機 +權 +過 +協 +壓 +厭 +頁 +誇 +奪 +達 +夾 +軌 +堯 +劃 +邁 +畢 +貞 +師 +塵 +當 +噹 +籲 +嚇 +蟲 +麯 +團 +糰 +嗎 +嶼 +歲 +迴 +豈 +則 +剛 +網 +硃 +遷 +喬 +偉 +傳 +優 +傷 +價 +倫 +華 +僞 +嚮 +後 +會 +殺 +閤 +衆 +爺 +傘 +創 +雜 +負 +壯 +衝 +妝 +莊 +慶 +劉 +齊 +産 +閉 +問 +闖 +關 +燈 +湯 +興 +講 +諱 +軍 +訝 +許 +訛 +論 +訟 +農 +諷 +設 +訪 +訣 +尋 +盡 +儘 +導 +孫 +陣 +陽 +階 +陰 +婦 +媽 +戲 +觀 +歡 +買 +紅 +馱 +纖 +縴 +馴 +約 +級 +紀 +馳 +紉 +壽 +麥 +瑪 +進 +遠 +違 +韌 +運 +撫 +壇 +罎 +壞 +摳 +擾 +貢 +垻 +壩 +摺 +掄 +搶 +墳 +護 +殻 +塊 +聲 +報 +擬 +蕪 +葦 +蒼 +嚴 +蘆 +勞 +蘇 +囌 +極 +楊 +兩 +麗 +醫 +勵 +還 +殲 +來 +連 +軒 +鹵 +滷 +堅 +時 +縣 +裏 +嘔 +園 +曠 +圍 +噸 +郵 +睏 +員 +聽 +嗆 +嗚 +彆 +嶇 +崗 +帳 +財 +針 +釘 +亂 +體 +傭 +徹 +餘 +穀 +鄰 +腸 +龜 +猶 +狽 +條 +島 +飯 +飲 +係 +繫 +凍 +狀 +畝 +庫 +療 +應 +這 +廬 +閏 +閑 +間 +悶 +竈 +燦 +瀝 +淪 +滄 +溝 +滬 +瀋 +懷 +憂 +窮 +證 +啓 +評 +補 +識 +詐 +訴 +診 +詞 +譯 +靈 +層 +遲 +張 +際 +陸 +陳 +墜 +勁 +鷄 +緯 +驅 +純 +紗 +綱 +納 +駁 +縱 +紛 +紙 +紋 +紡 +驢 +紐 +環 +責 +現 +錶 +規 +攏 +揀 +擔 +頂 +擁 +勢 +攔 +擰 +撥 +擇 +蘋 +範 +莖 +樞 +櫃 +闆 +鬆 +槍 +楓 +構 +喪 +畫 +棗 +賣 +鬱 +礬 +礦 +碼 +厠 +奮 +態 +歐 +毆 +壟 +轟 +頃 +轉 +斬 +輪 +軟 +齒 +虜 +腎 +賢 +國 +暢 +嚨 +鳴 +羅 +幟 +嶺 +凱 +敗 +賬 +販 +貶 +購 +貯 +圖 +釣 +製 +颳 +俠 +僥 +偵 +側 +憑 +僑 +貨 +質 +徑 +捨 +覓 +貪 +貧 +膚 +腫 +脹 +骯 +脅 +魚 +獰 +備 +飾 +飽 +飼 +變 +龐 +廟 +瘧 +劑 +廢 +閘 +鬧 +鄭 +捲 +單 +爐 +淺 +濘 +瀉 +潑 +澤 +憐 +學 +寶 +寵 +審 +簾 +實 +試 +詩 +誠 +襯 +視 +話 +誕 +詭 +詢 +該 +詳 +肅 +録 +隸 +彌 +瀰 +陝 +駕 +參 +艱 +綫 +練 +組 +紳 +細 +駛 +織 +駒 +終 +駐 +絆 +駝 +紹 +繹 +經 +貫 +貳 +幫 +項 +挾 +撓 +趙 +擋 +墊 +擠 +揮 +薦 +帶 +繭 +蕩 +榮 +葷 +熒 +鬍 +蔭 +藥 +標 +棧 +棟 +欄 +檸 +樹 +鹹 +磚 +硯 +麵 +牽 +鷗 +殘 +軸 +輕 +鴉 +戰 +點 +臨 +覽 +竪 +嘗 +啞 +顯 +貴 +蝦 +蟻 +螞 +雖 +駡 +勛 +嘩 +響 +喲 +峽 +罰 +賤 +貼 +貽 +鈣 +鈍 +鈔 +鍾 +鐘 +鋼 +鈉 +鑰 +欽 +鈞 +鈎 +鈕 +氈 +氫 +選 +適 +種 +鞦 +復 +複 +倆 +貸 +順 +儉 +須 +鬚 +劍 +朧 +膽 +勝 +狹 +獅 +獨 +獄 +貿 +餌 +饒 +蝕 +餃 +餅 +巒 +彎 +將 +奬 +瘡 +瘋 +親 +閨 +聞 +閩 +閥 +閣 +養 +薑 +類 +婁 +總 +煉 +爍 +爛 +窪 +潔 +灑 +澆 +濁 +測 +瀏 +濟 +渾 +濃 +惱 +舉 +覺 +憲 +竊 +誡 +誣 +語 +襖 +誤 +誘 +誨 +説 +誦 +墾 +晝 +費 +遜 +隕 +險 +嬌 +賀 +壘 +綁 +絨 +結 +繞 +驕 +繪 +給 +絢 +駱 +絡 +絶 +絞 +駭 +統 +艷 +蠶 +頑 +盞 +撈 +載 +趕 +鹽 +損 +撿 +摯 +剝 +熱 +搗 +壺 +聶 +萊 +蓮 +獲 +穫 +惡 +噁 +瑩 +鶯 +檔 +橋 +樺 +樁 +樣 +賈 +礫 +礎 +顧 +轎 +較 +頓 +斃 +緻 +慮 +監 +緊 +黨 +曬 +曉 +嘮 +鴨 +暈 +鴦 +罷 +圓 +賊 +賄 +賂 +贜 +錢 +鉗 +鑽 +鉀 +鐵 +鈴 +鉛 +犧 +敵 +積 +稱 +筆 +債 +傾 +賃 +艦 +艙 +聳 +愛 +頒 +頌 +臟 +髒 +臍 +膠 +腦 +膿 +鴕 +鴛 +皺 +餓 +餒 +戀 +槳 +漿 +準 +癥 +齋 +離 +資 +競 +閲 +煩 +燒 +燭 +遞 +濤 +澇 +渦 +塗 +滌 +潤 +澗 +漲 +燙 +澀 +憫 +寬 +傢 +賓 +竅 +請 +諸 +諾 +讀 +誹 +襪 +課 +誰 +調 +諒 +諄 +談 +誼 +懇 +劇 +難 +預 +絹 +綉 +驗 +繼 +駿 +瑣 +擲 +據 +摻 +職 +蘿 +螢 +營 +蕭 +薩 +夢 +檢 +醖 +碩 +聾 +襲 +輔 +輛 +顱 +懸 +躍 +纍 +囉 +嘯 +嶄 +邏 +嬰 +銬 +鐺 +鋁 +銅 +銘 +鏟 +銀 +矯 +穢 +籠 +償 +軀 +釁 +銜 +盤 +鴿 +斂 +領 +臉 +獵 +餡 +館 +癢 +鏇 +閻 +闡 +蓋 +斷 +獸 +鴻 +漸 +淵 +漁 +澱 +滲 +慚 +懼 +驚 +慘 +慣 +謀 +諜 +謊 +諧 +禱 +禍 +謂 +諺 +謎 +彈 +墮 +隨 +隱 +嬸 +頗 +頸 +績 +緒 +續 +騎 +綽 +繩 +維 +綿 +綳 +綢 +綜 +綻 +緑 +綴 +瓊 +趨 +攬 +攙 +擱 +摟 +攪 +聯 +蔣 +韓 +橢 +確 +頰 +靂 +暫 +翹 +輩 +鑿 +輝 +賞 +睞 +噴 +疇 +踐 +遺 +鵑 +賦 +賭 +贖 +賜 +賠 +鑄 +鋪 +鏈 +銷 +鎖 +鋤 +鍋 +銹 +鋒 +鋅 +鋭 +鵝 +築 +篩 +儲 +懲 +禦 +釋 +臘 +魯 +憊 +饋 +饞 +裝 +蠻 +闊 +糞 +滯 +濕 +潰 +濺 +灣 +憤 +竄 +窩 +褲 +禪 +謝 +謡 +謗 +謙 +屬 +屢 +緬 +纜 +緝 +緞 +緩 +締 +縷 +騙 +編 +騷 +緣 +鵡 +攝 +擺 +襬 +攤 +鵲 +藍 +濛 +懞 +矇 +獻 +欖 +樓 +賴 +礙 +尷 +霧 +輻 +輯 +輸 +頻 +齡 +鑒 +蹺 +蝸 +錯 +錨 +錫 +鑼 +錘 +錐 +錦 +鍵 +鋸 +錳 +辭 +頽 +籌 +簽 +籤 +簡 +膩 +鵬 +騰 +鮑 +穎 +觸 +雛 +饃 +餾 +醬 +謄 +糧 +數 +滿 +濾 +濫 +灕 +濱 +灘 +譽 +窺 +寢 +謹 +謬 +闢 +縛 +縫 +纏 +繽 +贅 +墻 +衊 +藹 +檻 +釀 +願 +轄 +輾 +顆 +踴 +蠟 +蠅 +蟬 +賺 +鍬 +鍛 +鍍 +穩 +籮 +簫 +輿 +鮮 +饅 +瀟 +賽 +譚 +譜 +騾 +縮 +攆 +聰 +藴 +櫻 +飄 +黴 +瞞 +題 +囑 +鎮 +鎬 +鎊 +簍 +鯉 +鯽 +癟 +癱 +顔 +鯊 +瀾 +額 +譴 +鶴 +繚 +顛 +轍 +鸚 +贈 +鏡 +贊 +籃 +籬 +鯨 +癮 +辯 +瀕 +懶 +繮 +繳 +矚 +贍 +鰐 +辮 +贏 +驟 +囂 +鐮 +鰭 +鷹 +巔 +顫 +癬 +鱉 +鬢 +鱗 +躪 +贛 +鑲 +韋 +閂 +訃 +勱 +芻 +鄺 +訐 +訌 +訕 +訖 +馭 +璣 +壙 +捫 +薌 +厙 +釔 +傴 +倀 +傖 +獷 +獁 +鳬 +鄔 +餳 +懺 +謳 +詎 +訥 +紆 +紂 +紇 +紈 +璵 +摶 +塢 +㩳 +蕓 +藶 +莧 +萇 +蓯 +磯 +奩 +歟 +軔 +鄴 +嘸 +囈 +嚦 +暘 +唄 +幃 +峴 +嵐 +圇 +釗 +釙 +釕 +僉 +鳩 +鄒 +飩 +餼 +飪 +飫 +飭 +廡 +癤 +闈 +閎 +閔 +煬 +灃 +漚 +渢 +潙 +憮 +慪 +愾 +悵 +愴 +詁 +訶 +詛 +詆 +謅 +詔 +詒 +隴 +陘 +嫵 +嫗 +嬀 +剄 +紜 +紕 +紝 +綸 +紓 +瑋 +匭 +壚 +擓 +蘢 +蔦 +塋 +煢 +櫪 +梘 +棖 +樅 +碭 +甌 +郟 +軛 +鳶 +曇 +蟣 +黽 +嚀 +噝 +巋 +劌 +剴 +嶧 +釷 +釺 +釧 +釩 +釹 +釵 +儈 +儕 +儂 +劊 +慫 +糴 +戧 +膞 +邇 +梟 +餞 +飴 +癘 +瘍 +煒 +熰 +熗 +瀧 +瀘 +濼 +涇 +㥮 +懌 +誆 +誄 +詿 +詰 +詼 +鄆 +禕 +誅 +詵 +詬 +詮 +詣 +諍 +詫 +諢 +詡 +駑 +紺 +紲 +紱 +駟 +駙 +縐 +絀 +驛 +駘 +瓏 +頇 +埡 +撾 +撻 +賁 +壋 +撏 +莢 +貰 +蓽 +蕎 +薈 +薺 +堊 +滎 +犖 +蕁 +藎 +蓀 +蕒 +葤 +櫛 +櫳 +櫨 +櫟 +檉 +酈 +硨 +碸 +殤 +軲 +軻 +轤 +軼 +軫 +蠆 +覘 +瞘 +嘵 +嗶 +噦 +剮 +鄖 +噲 +噥 +嶢 +幀 +嶠 +貺 +鈈 +鈦 +鋇 +鈑 +鈐 +鎢 +鈁 +鈀 +篤 +儔 +儼 +儷 +腖 +臚 +脛 +鴇 +獪 +颮 +猻 +餉 +餄 +餎 +孿 +孌 +癧 +瘲 +颯 +闥 +閭 +闓 +閡 +熾 +烴 +浹 +澮 +滸 +潯 +濜 +慟 +懨 +愷 +惻 +惲 +誚 +禰 +誥 +誑 +鴆 +婭 +嬈 +懟 +絝 +驍 +驊 +絎 +絳 +駢 +頊 +璫 +琿 +塒 +塤 +堝 +贄 +蒔 +萵 +蕕 +鴣 +蒓 +橈 +楨 +榿 +檜 +邐 +礪 +礱 +軾 +輊 +輅 +鶇 +躉 +齔 +鸕 +矓 +嘜 +鴞 +蜆 +嗩 +嶗 +崍 +覬 +賅 +鈺 +鉦 +鈷 +鉢 +鈸 +鉞 +鉭 +鉬 +鈿 +鈾 +鉑 +鑠 +鉚 +鈰 +鉉 +鉈 +鉍 +鈮 +鈹 +鏺 +鐸 +氬 +筧 +頎 +徠 +膾 +鴟 +璽 +鴝 +獫 +裊 +餑 +欒 +攣 +癰 +痙 +頏 +閫 +鬮 +誾 +閬 +鄲 +燁 +燴 +燼 +淶 +漣 +潿 +慳 +諏 +諑 +禎 +諉 +諛 +諗 +諂 +誶 +媧 +嫻 +綆 +驪 +綃 +騁 +綏 +縧 +綈 +駸 +鷥 +燾 +璉 +麩 +擄 +摑 +鷙 +撣 +慤 +摜 +縈 +槤 +覡 +欞 +嗇 +匱 +硤 +磽 +鴯 +龔 +殞 +殮 +賚 +輒 +塹 +嘖 +囀 +嚙 +蹌 +蠣 +蠱 +蟶 +幘 +幗 +賕 +賑 +賒 +銠 +鉺 +鋏 +鐃 +銦 +鎧 +鍘 +銖 +銑 +鋌 +鏵 +銓 +鎩 +鉿 +銚 +鉻 +錚 +銫 +鉸 +銥 +銃 +銨 +銣 +鴰 +穠 +箋 +籩 +僨 +僂 +皚 +鴴 +艫 +龕 +玀 +獼 +餜 +餛 +鸞 +闍 +閾 +閹 +閶 +鬩 +閽 +閼 +羥 +糲 +燜 +漬 +瀆 +澠 +愜 +憚 +諶 +諫 +皸 +謔 +襠 +謁 +諤 +諭 +諼 +讒 +諳 +諦 +諞 +糶 +嬋 +綾 +騏 +綺 +緋 +緔 +騍 +緄 +騅 +綬 +綹 +綣 +綰 +驂 +緇 +靚 +輦 +黿 +頡 +撳 +蟄 +壪 +蔞 +櫝 +欏 +賫 +鵓 +鸝 +殫 +輥 +輞 +槧 +輟 +輜 +瞼 +躒 +蛺 +蟯 +螄 +蠐 +嘍 +嶸 +嶁 +賧 +鋙 +錸 +鏗 +鋥 +鋰 +鋯 +鋨 +銼 +鐧 +銻 +鋃 +鋦 +錒 +犢 +鵠 +篳 +牘 +儻 +儐 +儺 +嬃 +頜 +鵒 +魷 +魨 +魴 +潁 +颶 +觴 +熲 +餷 +餿 +褻 +臠 +癆 +癇 +賡 +頦 +鷳 +闌 +闃 +闋 +鵜 +憒 +嚳 +謨 +褳 +襇 +讜 +謖 +謚 +謐 +騭 +巰 +翬 +騖 +緙 +緗 +緘 +緹 +緲 +緦 +緱 +縋 +緡 +饗 +耮 +驁 +韞 +攄 +擯 +轂 +驀 +鶓 +薊 +蘺 +鎣 +頤 +櫚 +櫸 +磧 +磣 +鵪 +輳 +齟 +齙 +韙 +囁 +躂 +蹕 +躚 +躋 +噯 +鍺 +錛 +錡 +鍀 +錁 +錕 +錮 +鍁 +錈 +錠 +錙 +覦 +頷 +鮁 +鮃 +鮎 +鱸 +穌 +鮒 +鮐 +鵮 +颼 +饈 +鶉 +瘮 +闔 +闐 +闕 +灧 +瀅 +潷 +灤 +澦 +懾 +鱟 +騫 +竇 +謾 +謫 +嬡 +嬪 +縉 +縝 +縟 +轡 +騮 +縞 +縭 +縊 +縑 +騸 +覯 +韜 +靉 +攖 +薔 +藺 +鶘 +檳 +櫧 +釅 +殯 +霽 +轅 +齜 +齦 +瞜 +曖 +躊 +蟈 +鶚 +嚶 +羆 +賻 +罌 +鶻 +鍥 +鍇 +鍶 +鍔 +鍤 +鏘 +鎂 +鏤 +簀 +篋 +簞 +籙 +臏 +鮭 +鮪 +鱭 +鮫 +鱘 +饉 +鑾 +瘻 +闞 +鮝 +糝 +鷀 +瀲 +濰 +譖 +褸 +譙 +讕 +譎 +鶥 +嬙 +鶩 +驃 +縹 +縵 +縲 +纓 +驄 +繆 +繅 +耬 +瓔 +擷 +擼 +攛 +聵 +覲 +韃 +鞽 +蘄 +賾 +檣 +靨 +魘 +饜 +轆 +齬 +齪 +覷 +顒 +躓 +躑 +蠑 +螻 +顎 +嚕 +顓 +鑷 +鎘 +鎸 +鎳 +鎦 +鎰 +鎵 +鑌 +簣 +鷂 +鯁 +鱺 +鰱 +鰹 +鰣 +鯀 +鯇 +觶 +饊 +饌 +齏 +讞 +襤 +譫 +屨 +纈 +繕 +繒 +驏 +擻 +顳 +顢 +藪 +櫓 +櫞 +贋 +飆 +鏨 +轔 +蟎 +鐯 +鏢 +鏜 +鏝 +鏰 +鏞 +鏑 +鏃 +鏐 +氌 +穡 +魎 +鯪 +鯡 +鯤 +鯧 +鯝 +鯢 +鯛 +鯔 +獺 +鷓 +贇 +癭 +斕 +瀨 +顙 +繾 +繰 +繯 +蘚 +鷯 +齲 +齷 +躡 +蹣 +羈 +鐔 +鐝 +鐐 +鐓 +鑭 +鑹 +鏹 +鐙 +籪 +鷦 +鱝 +鰈 +鯷 +鰓 +鰍 +鰉 +鯿 +鷲 +懣 +鷸 +鰲 +韉 +顥 +鷺 +䴉 +髏 +鑊 +鐳 +鐲 +讎 +鰨 +鰥 +鰩 +癩 +攢 +靄 +躥 +髖 +髕 +鑔 +籟 +鰳 +鰾 +鱈 +鰻 +鱅 +讖 +驥 +纘 +瓚 +鼉 +黷 +黲 +鑣 +鑞 +臢 +鱖 +鱔 +鱒 +驤 +顰 +鱧 +癲 +灝 +鸛 +鑱 +趲 +顴 +躦 +饢 +戇 +戔 +訏 +訒 +釓 +俔 +閆 +澫 +訢 +訩 +詝 +紃 +纊 +瑒 +剗 +塸 +壢 +埨 +撝 +蔿 +榪 +軑 +軏 +咼 +㠣 +覎 +㑳 +颺 +閌 +潕 +湋 +澐 +浿 +諓 +禡 +詗 +詘 +詖 +屓 +彄 +紘 +馹 +馼 +紵 +紞 +駃 +紖 +瑲 +薴 +棡 +軝 +暐 +晛 +崬 +釴 +釤 +鍆 +鍚 +鄶 +獮 +飿 +嶨 +詷 +詪 +鄩 +鳲 +隑 +隮 +娙 +逕 +駓 +駔 +駉 +絅 +騶 +䮄 +紼 +紿 +瓅 +韍 +墶 +塏 +薘 +蕘 +蔄 +葒 +鳾 +龑 +軹 +軤 +轢 +軺 +睍 +曨 +噠 +鈃 +鈇 +鉅 +鋹 +釿 +錀 +鈧 +鈥 +鈄 +倈 +艤 +鶬 +颭 +餏 +湞 +溮 +滻 +褘 +絰 +駰 +絪 +駪 +綎 +綖 +驫 +勣 +璕 +𡑍 +䓣 +薟 +藭 +椏 +梜 +頍 +硜 +輄 +輈 +輇 +貲 +嗊 +曄 +暉 +鄳 +幬 +輋 +嶮 +贐 +鉥 +鉕 +鑪 +鉮 +鉊 +鉧 +僤 +鴒 +魛 +餗 +燖 +溳 +礐 +窵 +襏 +駼 +絺 +綌 +騂 +綄 +璡 +墠 +壼 +聹 +蘀 +勩 +罃 +檮 +棶 +厴 +䃮 +磑 +礄 +鴷 +齕 +頔 +廼 +凢 +亾 +枒 +屍 +匃 +匄 +紥 +紮 +疋 +殀 +讐 +觔 +兇 +宂 +㕥 +㠯 +栞 +佈 +佔 +呌 +敂 +冄 +坵 +僊 +怱 +悤 +冊 +夘 +戼 +牠 +妳 +嬭 +摃 +釦 +攷 +託 +衺 +衕 +弔 +喫 +囙 +㠶 +颿 +秊 +倣 +髣 +佀 +朶 +氷 +決 +併 +並 +竝 +汙 +汚 +異 +姦 +廵 +挵 +衖 +搤 +阯 +撦 +埳 +阬 +誌 +㕁 +卻 +刦 +刧 +刼 +芲 +蘤 +桿 +槓 +荳 +獃 +唫 +脗 +皁 +彿 +髴 +疘 +刪 +鉋 +鑤 +況 +牀 +恡 +棄 +洶 +汎 +災 +烖 +菑 +禩 +侷 +跼 +坿 +玅 +姉 +妬 +翫 +搨 +柺 +拕 +牴 +觝 +倖 +抝 +盃 +桮 +傑 +逩 +肎 +菓 +崐 +崑 +呪 +虖 +嘑 +謼 +詠 +㟁 +嵒 +巗 +巖 +雰 +稈 +咊 +嶽 +妷 +姪 +廹 +徃 +餚 +採 +寀 +唸 +週 +昬 +兎 +兔 +亯 +亱 +䘚 +淨 +劵 +匟 +㳒 +灋 +洩 +霑 +淚 +註 +恠 +箒 +屆 +絃 +圅 +旾 +珎 +掛 +垜 +艸 +茘 +査 +栢 +柵 +栁 +桺 +柹 +韮 +揹 +昰 +閧 +鬨 +冐 +暎 +嚥 +倃 +𠴰 +偺 +喒 +齩 +欬 +榘 +㑺 +儁 +敍 +敘 +肧 +脈 +䘑 +衇 +跡 +蹟 +砲 +礮 +薙 +鬀 +恆 +怳 +卹 +䘏 +賉 +婣 +畊 +揑 +綑 +輓 +恥 +躭 +晉 +棲 +覈 +慄 +翄 +脣 +槕 +㨪 +螡 +蟁 +㤙 +陗 +峩 +峯 +乗 +椉 +咲 +筍 +俛 +頫 +勌 +䠶 +躳 +慇 +拏 +㧱 +挐 +脃 +胷 +肐 +貍 +㽞 +畱 +淒 +悽 +蓆 +効 +傚 +涼 +缾 +菸 +煙 +淛 +湧 +誖 +猂 +醼 +讌 +㝠 +寃 +孃 +桒 +毬 +瑠 +璢 +瑯 +㨗 +搥 +搯 +蔆 +惏 +楳 +槑 +捄 +廂 +慽 +慼 +瞇 +埜 +畧 +虵 +稭 +棃 +犂 +迻 +媮 +兠 +舩 +慾 +綵 +腳 +𩓐 +夠 +豬 +貓 +湊 +減 +庻 +蔴 +菴 +朢 +睠 +觕 +麤 +釬 +銲 +痳 +殽 +婬 +滛 +湻 +㴱 +樑 +顇 +㝛 +窰 +窯 +琹 +欵 +墖 +趂 +隄 +愽 +揷 +揫 +煑 +朞 +㪚 +塟 +蔥 +蔕 +稜 +棊 +碁 +椶 +偪 +㕑 +廚 +廈 +鴈 +冣 +㝡 +晳 +鼃 +餧 +餵 +嗁 +諠 +㡌 +賸 +筴 +筞 +筩 +栰 +暠 +皜 +踰 +蝟 +㪟 +燄 +遊 +媿 +嘅 +庽 +窓 +牎 +牕 +窻 +徧 +僱 +帬 +裠 +強 +彊 +疎 +壻 +瓌 +䰟 +皷 +擕 +㩗 +㩦 +攜 +懃 +鞾 +幙 +㮣 +酧 +詶 +醻 +掽 +踫 +㼝 +盌 +磟 +覩 +倸 +㬉 +煗 +煖 +晻 +闇 +炤 +跥 +䗬 +蠭 +寘 +辠 +稺 +穉 +燬 +譭 +瘉 +癒 +顋 +骽 +猨 +蝯 +稟 +痺 +癡 +亷 +㢘 +韻 +泝 +遡 +昚 +躶 +臝 +羣 +㬪 +曡 +疊 +勦 +琍 +瓈 +𤋮 +熈 +牓 +搾 +謌 +堿 +鹻 +鹼 +矁 +燻 +髈 +𤺥 +辢 +旂 +𡚁 +潄 +砦 +詧 +嫰 +櫈 +撐 +墪 +譔 +鞵 +鞌 +蕋 +橤 +蘂 +醕 +譆 +跴 +蹤 +蜨 +蠍 +稾 +殭 +惪 +厀 +襃 +癅 +䊀 +餬 +潛 +癄 +顦 +鷰 +藷 +櫥 +螎 +蹏 +蟇 +譟 +簒 +彫 +琱 +鵰 +餹 +餻 +簷 +粦 +燐 +緐 +幑 +蹧 +粇 +穅 +臋 +籐 +繙 +飜 +孼 +蠏 +燿 +蝡 +稬 +穤 +惷 +覇 +鑵 +戹 +阨 +剳 +帀 +巵 +亙 +佇 +竚 +穽 +岅 +虯 +𦍑 +羗 +啎 +姙 +㘭 +袟 +袠 +逈 +㒺 +犛 +氂 +偘 +甕 +罋 +冺 +姍 +蝨 +琺 +瑇 +尅 +梔 +斮 +斲 +斵 +暱 +毘 +蝱 +吚 +哶 +峝 +粃 +竢 +狥 +秈 +烱 +㳄 +袵 +盇 +涖 +蒞 +碪 +蠔 +唕 +倐 +儵 +雋 +皐 +臯 +衂 +䶊 +臙 +獧 +痾 +皰 +湼 +澣 +濬 +塚 +襢 +娿 +勅 +勑 +戞 +廐 +廄 +眥 +覜 +勗 +啗 +噉 +傯 +挱 +㥫 +惥 +慂 +陻 +蕚 +萲 +蕿 +蘐 +藼 +櫂 +箠 +槨 +啑 +蹠 +蚘 +痐 +蛕 +蜖 +瘖 +遯 +醃 +飱 +冪 +簑 +枏 +柟 +檝 +楥 +矴 +椗 +嘷 +獋 +粺 +䈰 +諐 +齶 +堘 +疿 +雝 +秔 +稉 +槀 +搉 +廝 +叡 +嘠 +蜋 +筯 +篛 +麞 +糉 +緥 +璿 +髥 +臕 +餈 +剹 +橜 +罇 +蜺 +矙 +憇 +翺 +饍 +瞖 +羴 +羶 +爕 +繦 +騌 +鬉 +騣 +蔾 +䠀 +簮 +躕 +蹵 +䝔 +貛 +鼴 +麐 +塡 +あ +い +う +え +お +か +き +く +け +こ +さ +し +す +せ +そ +た +ち +つ +て +と +な +に +ぬ +ね +の +は +ひ +ふ +へ +ほ +ま +み +む +め +も +や +ゆ +よ +ら +り +る +れ +ろ +わ +を +ん +が +ぎ +ぐ +げ +ご +ざ +じ +ず +ぜ +ぞ +だ +ぢ +づ +で +ど +ば +び +ぶ +べ +ぼ +ぱ +ぴ +ぷ +ぺ +ぽ +ぁ +ぃ +ぅ +ぇ +ぉ +っ +ゃ +ゅ +ょ +ゎ +ゕ +ゖ +ア +イ +ウ +エ +オ +カ +キ +ク +ケ +コ +サ +シ +ス +セ +ソ +タ +チ +ツ +テ +ト +ナ +ニ +ヌ +ネ +ノ +ハ +ヒ +フ +ヘ +ホ +マ +ミ +ム +メ +モ +ヤ +ユ +ヨ +ラ +リ +ル +レ +ロ +ワ +ヲ +ン +ガ +ギ +グ +ゲ +ゴ +ザ +ジ +ズ +ゼ +ゾ +ダ +ヂ +ヅ +デ +ド +バ +ビ +ブ +ベ +ボ +パ +ピ +プ +ペ +ポ +ァ +ィ +ゥ +ェ +ォ +ッ +ャ +ュ +ョ +ヮ +ヵ +ヶ +ヷ +ヸ +ヹ +ヺ +・ +ー +ヽ +ヾ +ヿ +ア +イ +ウ +エ +オ +カ +キ +ク +ケ +コ +サ +シ +ス +セ +ソ +タ +チ +ツ +テ +ト +ナ +ニ +ヌ +ネ +ノ +ハ +ヒ +フ +ヘ +ホ +マ +ミ +ム +メ +モ +ヤ +ユ +ヨ +ラ +リ +ル +レ +ロ +ワ +ヲ +ン +゙ +゚ +ァ +ィ +ゥ +ェ +ォ +ッ +ャ +ュ +ョ +円 +気 +糸 +絵 +楽 +帰 +戸 +広 +黒 +図 +線 +読 +売 +歩 +毎 +亜 +悪 +圧 +扱 +囲 +為 +壱 +隠 +栄 +営 +駅 +塩 +縁 +艶 +応 +桜 +穏 +仮 +価 +箇 +ゑ +ゝ +ゞ +ヰ +ヴ +㈱ +両 +丼 +丿 +亀 +仏 +伝 +侶 +俤 +値 +倶 +倹 +偐 +偽 +働 +儛 +兌 +児 +冑 +冨 +凞 +処 +凪 +別 +剣 +剤 +剰 +劔 +労 +勧 +勲 +匁 +匂 +匲 +卍 +単 +厳 +収 +呂 +呉 +呑 +呰 +唖 +喚 +喩 +喰 +噛 +噺 +嚢 +囃 +団 +圀 +圏 +堀 +堺 +塀 +塁 +塙 +増 +墺 +壊 +壌 +壷 +変 +奨 +姫 +娯 +嫐 +嬢 +嬾 +孁 +宍 +実 +宮 +寔 +寛 +対 +専 +尭 +峠 +崋 +嶋 +巀 +巌 +巣 +巻 +帯 +幇 +庁 +廃 +廻 +弉 +弌 +弐 +弖 +弾 +従 +徳 +徴 +忯 +恵 +悩 +惣 +懐 +懽 +戦 +戯 +戻 +払 +抜 +択 +拝 +拠 +拡 +拵 +挙 +挿 +捗 +捜 +掟 +掲 +掻 +揃 +換 +揺 +摂 +撃 +撹 +斉 +斎 +旛 +旡 +晧 +晩 +暁 +暦 +曽 +杁 +杢 +杣 +杮 +枓 +枠 +枡 +柾 +栂 +栃 +桝 +桟 +桾 +梛 +梱 +梲 +梶 +椙 +検 +椥 +楕 +楡 +楢 +榊 +榎 +槇 +様 +槙 +槻 +樋 +権 +樫 +橿 +檥 +欅 +歎 +歓 +歯 +歳 +歴 +毀 +沖 +沢 +浄 +涙 +済 +渉 +渋 +渓 +渕 +満 +滝 +漑 +潅 +澁 +瀞 +瀬 +焔 +焼 +煇 +煕 +煥 +燗 +爼 +犠 +狛 +猟 +獏 +獣 +珊 +瑤 +甞 +畑 +畠 +畳 +畷 +畺 +痩 +癪 +発 +県 +眞 +砕 +碕 +礒 +禖 +禿 +稲 +穂 +穣 +竃 +竜 +竴 +笹 +筈 +筬 +筰 +箆 +箏 +箙 +篠 +篭 +簺 +籾 +粂 +粋 +粛 +粧 +糺 +紬 +絁 +経 +絖 +絣 +絽 +継 +続 +綟 +総 +縄 +縅 +縒 +縦 +繊 +繋 +繍 +繝 +繧 +纐 +纒 +罠 +罧 +罵 +羂 +羇 +羨 +聟 +聡 +聨 +聴 +脇 +脳 +膣 +膵 +臈 +臓 +臥 +舎 +舖 +舗 +舘 +芿 +苅 +茲 +荊 +荘 +莬 +莵 +菫 +萠 +蔵 +薗 +薫 +薬 +薭 +蘊 +蛍 +蝋 +蝿 +蟷 +衞 +衵 +袙 +袞 +袰 +袴 +袿 +裃 +裡 +裲 +褄 +褌 +襴 +襷 +覗 +覚 +覧 +観 +訳 +証 +諌 +諚 +諟 +諡 +諮 +譛 +譲 +讃 +豅 +豊 +豎 +賎 +賛 +贔 +躙 +躰 +転 +軽 +輌 +辥 +辺 +辻 +込 +逓 +遅 +遙 +邉 +郷 +酔 +醗 +醤 +醸 +釈 +鉄 +鉇 +鉤 +鉱 +鉾 +銈 +銕 +銭 +鋲 +鋳 +鋺 +錆 +錍 +錣 +錬 +錵 +鍑 +鍮 +鍼 +鎌 +鎗 +鎚 +鎹 +鐇 +鐚 +鐡 +鑁 +鑑 +鑚 +鑢 +閇 +関 +閦 +闘 +陥 +険 +隣 +隷 +雑 +雫 +霊 +靜 +靫 +靭 +靱 +鞄 +鞆 +頚 +頬 +頴 +頼 +顕 +顗 +餝 +饂 +駄 +駆 +駈 +騒 +験 +騨 +髄 +髙 +髪 +髷 +鯖 +鯰 +鯱 +鰒 +鰯 +鰰 +鳰 +鴎 +鴫 +鵄 +鵞 +鵺 +鶏 +鹸 +麁 +麺 +麿 +黌 +黙 +鼈 +齢 +龗 +縯 +蟅 +坖 +祂 +鼂 +鱚 +蛻 +屌 +呾 +煔 +吶 +扥 +蚖 +銂 +尃 +夋 +鵼 +徬 +寳 +彡 +舨 +湳 +麼 +鍈 +崈 +鱣 +盺 +拺 +瑥 +茷 +焻 +奀 +驎 +鱰 +砢 +痟 +廱 +僜 +瘺 +鱊 +擥 +嶰 +淓 +跅 +浵 +媗 +璦 +煠 +檊 +媃 +峅 +躄 +鉟 +塽 +蟴 +鯮 +弍 +烒 +鵵 +妑 +孋 +蚡 +恊 +輭 +廞 +產 +曅 +盜 +騤 +囪 +鱀 +茇 +葊 +逹 +狓 +崢 +趖 +凃 +羙 +鮸 +昞 +楿 +渽 +圗 +麪 +屇 +鍉 +葝 +沯 +爭 +幵 +筭 +寊 +銋 +貮 +鎭 +熺 +昜 +鍱 +墬 +愒 +磺 +嚈 +稘 +珮 +釆 +殑 +鍩 +䲁 +蕷 +鐿 +僡 +佹 +輶 +冴 +襶 +賔 +猙 +辧 +絛 +磾 +韁 +螔 +譳 +礑 +鋱 +魩 +嚗 +棆 +牆 +敟 +柶 +瓛 +魣 +巎 +轘 +襌 +枼 +鸌 +逺 +錏 +縡 +帢 +騄 +媼 +埅 +鄤 +萐 +祙 +旼 +詥 +鶲 +燉 +卲 +銱 +庲 +伱 +氽 +嵿 +挻 +煵 +窋 +鐤 +鮊 +鱬 +鰧 +嬤 +譞 +諲 +脭 +悳 +崘 +阭 +內 +袾 +冚 +壐 +咗 +礠 +孮 +痲 +埈 +肹 +鰮 +鮓 +濊 +塜 +凜 +蒢 +噰 +桼 +峍 +焴 +鶒 +鋮 +綠 +鶹 +熿 +毴 +咟 +嘥 +睺 +繡 +郎 +瘞 +鉶 +蔎 +秠 +緤 +蝀 +躝 +蟜 +繃 +囮 +墫 +乭 +胊 +濙 +瘓 +榣 +鑛 +鐫 +嶴 +甹 +坮 +銾 +蒭 +睜 +俋 +餠 +榢 +蓳 +盋 +堷 +鍏 +苝 +巛 +蚵 +暏 +熤 +嬨 +墎 +鏽 +戶 +菺 +膮 +熖 +睪 +栜 +捱 +榗 +鍷 +曧 +犽 +韑 +袓 +䖝 +焄 +喦 +髲 +疌 +㴪 +侊 +貐 +蕅 +禠 +蕑 +囯 +暊 +儞 +佋 +柎 +㐱 +鰤 +苳 +鱥 +謤 +遶 +眀 +鑀 +羋 +顏 +陜 +銩 +黶 +苼 +蒤 +棛 +儫 +咁 +抦 +衚 +棩 +焿 +脫 +麅 +玏 +埧 +淸 +黁 +淽 +彠 +鮨 +沜 +糀 +厓 +楧 +嶌 +簹 +檵 +鱇 +嶬 +廸 +卽 +樀 +贌 +酼 +籛 +沒 +晸 +諪 +蕡 +妏 +鄋 +蒍 +奧 +抇 +蓨 +薆 +鱷 +巘 +䝉 +亰 +寈 +槩 +誒 +麴 +蕟 +溎 +蘗 +榦 +斿 +暟 +炲 +拚 +娖 +繖 +橚 +寜 +爀 +饟 +悅 +鯏 +彜 +眾 +葯 +嬝 +埮 +獇 +馛 +溙 +瀦 +熼 +硓 +鈢 +樆 +輬 +鰜 +蔘 +渙 +澔 +嗮 +旉 +籜 +媊 +燘 +儚 +頹 +缽 +俽 +逨 +鱓 +郞 +歊 +杴 +珡 +杋 +醁 +鰏 +鵾 +鐽 +鮋 +巶 +荅 +薾 +囓 +蹻 +獎 +禑 +鎓 +榲 +僴 +綞 +尓 +敭 +曔 +褔 +鬅 +亊 +鏦 +蓘 +裬 +鱲 +薡 +鰗 +箑 +鬪 +縂 +璸 +甙 +茮 +辵 +岻 +覿 +滈 +鯶 +鑂 +囶 +舺 +溋 +拋 +菾 +敾 +虨 +綝 +蝍 +醂 +禨 +賹 +廧 +絕 +槗 +徫 +鎔 +曮 +蠂 +捒 +堈 +莕 +蓪 +敎 +禃 +櫱 +綧 +瀶 +逌 +浤 +碻 +刄 +逤 +剏 +氹 +菈 +娫 +蜛 +嵗 +糎 +螶 +譓 +鏳 +嵙 +瑊 +隲 +檨 +緈 +畵 +砯 +簗 +彅 +鰺 +騋 +窶 +嚒 +嵻 +尙 +頵 +槰 +虉 +醞 +巂 +彔 +偊 +畇 +鱨 +妸 +塲 +畐 +鈫 +錟 +磪 +摠 +彥 +璙 +囝 +寗 +耎 +鮡 +蘓 +弅 +焃 +飥 +戙 +塰 +儱 +槺 +噏 +魟 +禵 +佧 +咘 +盪 +瑈 +鉲 +睭 +鏌 +鼇 +郋 +魮 +朖 +滽 +渃 +滙 +熯 +醿 +鎅 +褀 +鬬 +巄 +螥 +眜 +釚 +柉 +壎 +峇 +姸 +唭 +鮜 +鈖 +嫈 +壄 +洤 +黃 +伕 +堦 +嶔 +鮰 +鞞 +漎 +鉓 +鮗 +壴 +阝 +妀 +矽 +獢 +倗 +銪 +鴓 +橒 +凈 +哖 +屚 +偍 +瑺 +媯 +淍 +驌 +椇 +赬 +薐 +糹 +碽 +濲 +釭 +晭 +纕 +寖 +閞 +歿 +呎 +鶆 +屄 +櫿 +犎 +旲 +㙟 +龎 +翜 +螾 +說 +衜 +泆 +軎 +鵂 +荎 +嚧 +硂 +桖 +褭 +筊 +鰷 +秳 +戩 +轀 +鬹 +飬 +卋 +暸 +狦 +搢 +娋 +鏴 +溫 +毉 +淰 +謩 +餺 +鵙 +鳽 +鮀 +狶 +氻 +轝 +妺 +袛 +蓭 +梂 +娛 +牼 +稅 +兿 +玾 +煚 +僩 +鶿 +鬄 +崠 +鉆 +鯓 +蚢 +庀 +鵟 +坣 +殼 +悞 +熅 +敻 +鍠 +曶 +愼 +搳 +姃 +砳 +槼 +臞 +韾 +靑 +鸊 +薲 +虛 +蠄 +啟 +鶺 +苺 +滾 +褞 +仺 +胇 +憻 +郳 +烉 +驩 +冇 +枖 +夌 +搵 +匸 +盨 +櫾 +霤 +麊 +貒 +噓 +嗢 +笩 +晈 +冂 +銳 +毿 +慜 +囧 +閜 +娸 +庢 +壆 +馯 +桱 +兗 +葃 +侅 +煐 +鐦 +藸 +鷎 +嵰 +逎 +弒 +匋 +鐭 +廔 +砩 +孆 +灴 +伷 +兪 +鴗 +澯 +幚 +旙 +勻 +礽 +婑 +鱮 +娍 +銶 +吳 +鍟 +仼 +鳧 +彞 +娽 +昛 +鰼 +剎 +佉 +鉏 +偸 +鰆 +讙 +橪 +啱 +岀 +孻 +釪 +乹 +鈳 +漇 +檦 +埻 +祿 +爌 +禇 +鱵 +㸃 +梉 +燝 +霙 +炁 +飮 +蠙 +勷 +鵎 +儥 +鐠 +唻 +廰 +嚿 +嵕 +墱 +紑 +搖 +瘜 +皝 +鸑 +瀁 +粵 +撚 +巑 +梀 +啯 +眛 +諴 +夊 +僙 +鍝 +裖 +鮣 +凬 +飡 +灊 +橓 +嫳 +筳 +咑 +粍 +瓑 +璌 +伃 +閰 +傜 +黐 +謢 +驒 +橫 +蛯 +寕 +蠵 +瞓 +旳 +翏 +硏 +寯 +韡 +楤 +鰃 +朿 +侞 +鵯 +愨 +祹 +厔 +丌 +盩 +謏 +魕 +啣 +閱 +曺 +枛 +罉 +卐 +樻 +鷉 +鯒 +鋡 +磱 +枱 +攴 +蠷 +穈 +嚟 +檽 +趐 +奐 +鋐 +檇 +薀 +峼 +咭 +訔 +韠 +鑴 +鸐 +唃 +捦 +鸜 +誴 +罳 +璄 +暃 +夀 +賨 +鞥 +鈊 +灡 +鮍 +懮 +籣 +昐 +陁 +襾 +鮠 +鈏 +囍 +婯 +艔 +貭 +䰾 +姁 +禼 +堖 +鋶 +仛 +鏷 +謜 +鑅 +忬 +蘶 +謠 +觙 +奫 +狟 +泩 +桙 +飈 +垰 +啍 +嚞 +鯕 +蒧 +榞 +徸 +璹 +揔 +欉 +魞 +菶 +玧 +鳯 +廍 +侚 +岰 +岧 +鋕 +凵 +彣 +崱 +媜 +倢 +鵐 +砋 +鷚 +鱠 +鮻 +繻 +摵 +贓 +磵 +錻 +痠 +粩 +胅 +奣 +塨 +瀠 +鸘 +啚 +娳 +霶 +壔 +峚 +甂 +廁 +覌 +鰂 +猳 +鱻 +盫 +裿 +杬 +歛 +澋 +蘞 +嵜 +尐 +旽 +鉌 +鎛 +豿 +凖 +榤 +禓 +龝 +悧 +鷟 +鮟 +吋 +喢 +岪 +吥 +漵 +頠 +豔 +巿 +鑨 +醣 +熳 +懍 +湥 +檡 +韺 +戱 +緖 +鐈 +凉 +緃 +鮹 +媐 +爯 +巆 +褍 +鐬 +昍 +扙 +鍳 +芛 +蟳 +嬅 +糬 +吔 +塭 +譿 +冧 +鏓 +嶪 +嗹 +椵 +姀 +閿 +褧 +錞 +玆 +笘 +篔 +萡 +鶡 +螐 +鮄 +鰟 +脷 +啲 +杤 +蓚 +尗 +娎 +殟 +淥 +蝚 +蓧 +彐 +嚤 +銍 +囒 +坶 +淩 +鶼 +鱂 +喼 +燫 +肏 +姵 +廌 +禟 +籝 +迵 +嵨 +堮 +蟌 +憍 +廕 +蜑 +緁 +唘 +竩 +崙 +璚 +粄 +栨 +罈 +梫 +貤 +藔 +蜯 +訁 +斖 +煶 +馦 +妠 +閟 +疕 +夆 +鎪 +膥 +澻 +嘢 +嚐 +靁 +鎻 +鰛 +穵 +烋 +縕 +褎 +疒 +壠 +溼 +圂 +咅 +鯭 +鯙 +磘 +玨 +珤 +朊 +蚼 +濶 +薞 +嚩 +丟 +嫺 +鯻 +椲 +鰕 +刂 +蠘 +踎 +瀴 +琁 +鰶 +瑴 +肜 +㐂 +欥 +媺 +竻 +讚 +𣇉 +裵 +緜 +廩 +齧 +叄 +俌 +厰 +滀 +錄 +鷫 +鯗 +攞 +姌 +蔝 +幷 +縤 +屻 +鯃 +雞 +纁 +嫲 +嵮 +屭 +嶃 +跩 +鋗 +蕢 +篊 +俬 +淎 +暻 +鏻 +憓 +玗 +溈 +笭 +糢 +勳 +閒 +沍 +咾 +鉷 +蘵 +俁 +崵 +毸 +苪 +掙 +鴡 +萭 +俴 +屜 +蒾 +艹 +剷 +慍 +朮 +枴 +氳 +猓 +甽 +箝 +譁 +贗 +迆 +鈽 +鍊 +鍰 +鏍 +靦 +餽 +丮 +丱 +仜 +仩 +伬 +伔 +仱 +伀 +伻 +佢 +佒 +侀 +侇 +佷 +佌 +佪 +侐 +侜 +俓 +侲 +俉 +侻 +侳 +俇 +倅 +倇 +倰 +倛 +倳 +倷 +俷 +倠 +偯 +偞 +偠 +偋 +偝 +偛 +偢 +偅 +偟 +偩 +偫 +傛 +傔 +傞 +傋 +傌 +傎 +傝 +偨 +傂 +傽 +傿 +僆 +傮 +僄 +僈 +傰 +僁 +傱 +僋 +僗 +僛 +僪 +僝 +僓 +僿 +儃 +儰 +僸 +僶 +僾 +儌 +僽 +儜 +儓 +儗 +儑 +儢 +儤 +儠 +儸 +儹 +儽 +冓 +冘 +冞 +凊 +凅 +凔 +刌 +刉 +刓 +刜 +刞 +刵 +刲 +剆 +刱 +剉 +剚 +剒 +剫 +剭 +剬 +剺 +剸 +剻 +剼 +劀 +劋 +劖 +劘 +劗 +劙 +劦 +勴 +匊 +匢 +匰 +匴 +匷 +匽 +卌 +卼 +厎 +厒 +厗 +厞 +厜 +厤 +厬 +厹 +吰 +吷 +吪 +呿 +咈 +呫 +呺 +呥 +呬 +呴 +茍 +咷 +咮 +咶 +哅 +咠 +咢 +唦 +唗 +唒 +哤 +唚 +唈 +哫 +唅 +唴 +啢 +唶 +啒 +啅 +唌 +唲 +喨 +喥 +喭 +噅 +喓 +喣 +啽 +喌 +嗃 +嗛 +嗋 +嗀 +喿 +喍 +嗏 +嗕 +嗈 +嘕 +嘒 +嗼 +嘐 +嘓 +嘂 +嗺 +嘝 +嘄 +嗿 +噈 +噊 +噆 +噚 +嘳 +嘽 +嘾 +噮 +噳 +噣 +噭 +噞 +嚌 +嚍 +嚃 +嚘 +嚜 +嚫 +嚪 +嚬 +嚲 +嚵 +嚽 +嚾 +囆 +囅 +囋 +囗 +圁 +圞 +圠 +坁 +坅 +坲 +坱 +垀 +坴 +垗 +垝 +垔 +垘 +垽 +垼 +埢 +埶 +堩 +堣 +塈 +堥 +塓 +塉 +塯 +塕 +塼 +墆 +塿 +塴 +墋 +塺 +墝 +墯 +壈 +墽 +壖 +壝 +壛 +壾 +壿 +夃 +夎 +夒 +夗 +奅 +奊 +奰 +奲 +奼 +妦 +妎 +妢 +妐 +妵 +姏 +姎 +㚷 +姡 +姺 +姼 +娭 +婐 +婟 +婥 +婓 +婗 +媔 +媟 +媢 +婸 +媦 +媥 +媬 +媕 +娷 +嫇 +嫋 +媰 +媻 +嫮 +嫥 +嫢 +嫛 +嫿 +嫴 +嫷 +嫶 +嬎 +嬓 +嬐 +嬲 +嬽 +孈 +屘 +孲 +孷 +宎 +宨 +寪 +寍 +寋 +寑 +寙 +寠 +寱 +尌 +尒 +尟 +尰 +尳 +屖 +屔 +屝 +屧 +屩 +屮 +屴 +岏 +岋 +岉 +岒 +岮 +岤 +岯 +岟 +岝 +峐 +峌 +峞 +峉 +峊 +峬 +峮 +峷 +崝 +崨 +崥 +崏 +崰 +崣 +崷 +嵃 +嵑 +崳 +崺 +嵂 +嵱 +嵣 +嵥 +嵞 +嶀 +嵽 +嶆 +嵺 +嵷 +嶊 +嶉 +嶈 +嵾 +嶕 +嶜 +嶡 +嶚 +嶞 +嶱 +嶩 +嶵 +嶭 +巃 +巏 +巕 +巟 +巹 +帊 +帗 +帟 +帣 +帠 +帤 +帩 +帾 +帴 +幏 +幎 +幓 +幩 +幝 +幠 +幧 +幨 +幦 +幭 +幰 +庂 +庉 +庌 +庈 +庰 +庛 +庣 +庨 +庮 +庪 +庬 +庴 +廅 +廇 +廘 +廗 +廎 +廜 +緳 +廦 +廥 +廮 +廯 +蠯 +廾 +弚 +弝 +弣 +弤 +弮 +弳 +彃 +彉 +彋 +彏 +彯 +彴 +彸 +彾 +徦 +徥 +徯 +徲 +徾 +徿 +忀 +忁 +忔 +忕 +忨 +忣 +忷 +忥 +怭 +怲 +怋 +怴 +怗 +怚 +怞 +怬 +怢 +怐 +怮 +怓 +怷 +怹 +恲 +恞 +恅 +恇 +恉 +恛 +恌 +恀 +恟 +悀 +悁 +悕 +悗 +悇 +悊 +悐 +悾 +悺 +惓 +惤 +惈 +悷 +惉 +悹 +惌 +惢 +惄 +愊 +愖 +愅 +惵 +愓 +惸 +惼 +惾 +慉 +慅 +愶 +愲 +愮 +愯 +愬 +慁 +慞 +慱 +慒 +慓 +慲 +憀 +慴 +慔 +慺 +慛 +憃 +慹 +憱 +憰 +憢 +憉 +憛 +憯 +憟 +憪 +憡 +憝 +憖 +懅 +憴 +懆 +懁 +憿 +憸 +憵 +憼 +懧 +懠 +懥 +懤 +懘 +懭 +懱 +懪 +懰 +懫 +懻 +戁 +戃 +戄 +戉 +戠 +酨 +戺 +扐 +扜 +扤 +扡 +扢 +抆 +抌 +抎 +抏 +扻 +抭 +抴 +拑 +抾 +抪 +抶 +抮 +挍 +挋 +挃 +拫 +拹 +挏 +挌 +拸 +挀 +拲 +捖 +挬 +挶 +揤 +捊 +挼 +挩 +捁 +挴 +捘 +捔 +捥 +掝 +掗 +掫 +掯 +捵 +掜 +捼 +掤 +掔 +掱 +揎 +揥 +揨 +揯 +揊 +揲 +揵 +摡 +揟 +揝 +揜 +揘 +揅 +揱 +搆 +搟 +搕 +搘 +搹 +搷 +搣 +搰 +搊 +搚 +摀 +搧 +搫 +摍 +摝 +摲 +摦 +摎 +摋 +摓 +摐 +摿 +摮 +摰 +撢 +撠 +撗 +撜 +撋 +撊 +撌 +撟 +擗 +擖 +擏 +擉 +撽 +擩 +擣 +擫 +擭 +擨 +擽 +擸 +攇 +攐 +攍 +攌 +攗 +攕 +攓 +攡 +攠 +攦 +攩 +攭 +攲 +攳 +敁 +敊 +敆 +敓 +敧 +敪 +敤 +敜 +敯 +敳 +敶 +敺 +敹 +敿 +斁 +斀 +斄 +斒 +斔 +斞 +斨 +斪 +斻 +旍 +旓 +旚 +旝 +旟 +昲 +昦 +昢 +晇 +晥 +晜 +晼 +晬 +暀 +暆 +暍 +暋 +暡 +暰 +暩 +曀 +曊 +曋 +曏 +曒 +曚 +曣 +曭 +朁 +朅 +朄 +朒 +朘 +朣 +朾 +朹 +朻 +朼 +杅 +杇 +杝 +杗 +枎 +杶 +枆 +枌 +柲 +枺 +枻 +柸 +柀 +柅 +柫 +柤 +柍 +柮 +柣 +柂 +柧 +栚 +桋 +桏 +栱 +栵 +栫 +栭 +栯 +栘 +栔 +梡 +梇 +梐 +桭 +梮 +楖 +梬 +梩 +桵 +梒 +椌 +椄 +棜 +棷 +棳 +棌 +椈 +楰 +棯 +椔 +棸 +楟 +楎 +楱 +楅 +楺 +楈 +楛 +楉 +楬 +椳 +楀 +楄 +楶 +楘 +榶 +槉 +榠 +榬 +榼 +榙 +榩 +榾 +榯 +槄 +榽 +榹 +槥 +槸 +樕 +樠 +槬 +槢 +樛 +樝 +槾 +樧 +槮 +樔 +槷 +橀 +樴 +橉 +橧 +樲 +橨 +橝 +橭 +橶 +樿 +橁 +檍 +檖 +檁 +檟 +橾 +檛 +檓 +檕 +檃 +櫅 +檹 +櫡 +櫠 +櫌 +櫑 +櫙 +櫋 +櫜 +櫐 +櫫 +櫬 +櫰 +櫹 +櫺 +櫼 +欃 +欋 +欈 +欐 +欑 +欘 +欨 +欴 +欯 +欭 +欱 +欶 +欳 +欷 +欿 +歂 +歈 +歍 +歋 +歕 +歔 +歜 +歠 +歭 +歾 +肂 +殈 +殏 +殔 +殗 +殙 +殠 +殥 +殢 +殦 +殧 +殰 +殶 +毃 +毄 +毈 +毇 +毊 +毚 +毞 +毦 +毤 +毨 +毣 +毰 +毲 +毻 +毼 +毾 +氁 +氀 +氄 +氠 +氶 +汃 +汒 +汏 +汍 +汸 +沋 +汱 +汯 +沕 +汦 +汳 +泬 +沶 +沬 +泧 +沷 +泭 +泲 +泒 +沴 +洟 +洊 +洀 +浺 +浶 +洍 +涒 +浘 +浢 +涊 +涆 +浧 +涗 +涳 +涬 +淢 +涷 +淔 +渀 +淈 +涾 +淊 +涽 +淭 +湆 +湇 +湅 +湢 +渿 +湁 +渜 +渳 +湀 +渻 +渮 +湨 +湡 +渱 +渨 +湠 +湱 +湩 +渹 +溛 +滖 +溓 +溔 +滒 +溰 +溾 +滜 +滵 +滱 +漃 +漥 +漮 +潎 +漙 +漧 +漘 +漒 +滭 +漊 +潳 +滮 +潀 +漰 +潃 +漅 +濆 +澒 +澅 +潚 +潠 +澖 +潶 +潬 +潒 +潐 +潗 +澓 +潝 +濇 +濎 +濈 +濄 +澞 +澨 +瀄 +濌 +澩 +濴 +濔 +濣 +濭 +濧 +濦 +瀇 +瀎 +濿 +瀀 +濻 +瀙 +瀖 +瀫 +瀡 +瀢 +瀩 +瀯 +瀷 +灂 +瀸 +瀿 +瀺 +灄 +灉 +灖 +灗 +灛 +灟 +灨 +灩 +灪 +炾 +炰 +烓 +烑 +缹 +焍 +烰 +焠 +焮 +焣 +煆 +煣 +煝 +熐 +熉 +熀 +熂 +熚 +燅 +燂 +熸 +燀 +燡 +爁 +爊 +爂 +爓 +爞 +爢 +爣 +牄 +牉 +牋 +牏 +牣 +牬 +牰 +牸 +牷 +犈 +犉 +犆 +犅 +犌 +犑 +犐 +犗 +犕 +犓 +犘 +犚 +犝 +犞 +犥 +犦 +犤 +犣 +犩 +犪 +犮 +犵 +犿 +狆 +狖 +狋 +狘 +狜 +狔 +狚 +狌 +狑 +狊 +狤 +狫 +狪 +狣 +猀 +狾 +猑 +猘 +猈 +狿 +猏 +猋 +猒 +猧 +猲 +猭 +猦 +猣 +猵 +猼 +獂 +獀 +獊 +獑 +獌 +獘 +獞 +獟 +獝 +獛 +獡 +獩 +獦 +獥 +獳 +獶 +獽 +獿 +玂 +玁 +玈 +玊 +玔 +珓 +珶 +琖 +瑵 +璊 +瑽 +璅 +瑿 +璗 +瓁 +瓋 +瓝 +瓟 +瓡 +瓥 +瓨 +瓬 +瓵 +瓾 +瓽 +甀 +甃 +甈 +甋 +甐 +甒 +甔 +甖 +甝 +甮 +甿 +畟 +畣 +畽 +疀 +疧 +痁 +疻 +痀 +痎 +痏 +痋 +痌 +痑 +痚 +痡 +痝 +痗 +痯 +瘏 +痷 +痸 +痻 +瘈 +瘑 +瘝 +瘣 +瘯 +瘱 +瘽 +癈 +癉 +癙 +癐 +癓 +癠 +癵 +癹 +皊 +皏 +皫 +皯 +皵 +皻 +皽 +皾 +盄 +盓 +盝 +盬 +盭 +盳 +眃 +眅 +盻 +眝 +眐 +眓 +眒 +眣 +眑 +眕 +眹 +眱 +眲 +眴 +眳 +眽 +睆 +睅 +睊 +睋 +睌 +睕 +睟 +睒 +睖 +睩 +睧 +睔 +瞁 +睼 +瞂 +睮 +睯 +瞏 +瞉 +瞚 +瞝 +瞡 +瞛 +瞲 +瞷 +瞶 +瞴 +矂 +矉 +矊 +矌 +矎 +矏 +矐 +矔 +矕 +矘 +矠 +矱 +矲 +矹 +矺 +砅 +砐 +砏 +砎 +砨 +硈 +硉 +硠 +硥 +硱 +硰 +硩 +碔 +碄 +碅 +碆 +硾 +碫 +碞 +磍 +磌 +磎 +磈 +磃 +磝 +磩 +磥 +磞 +磛 +磳 +磼 +磿 +礔 +礉 +礝 +礛 +礜 +礥 +礣 +礧 +礨 +礭 +礿 +祌 +祅 +祔 +祒 +祑 +祤 +祩 +祪 +祣 +祫 +祡 +祴 +祳 +禂 +禗 +禜 +禫 +禭 +禬 +禴 +禷 +禸 +歶 +秅 +秏 +秖 +秎 +秮 +秪 +秺 +秶 +稊 +稒 +稫 +穊 +稰 +稯 +穋 +穛 +穖 +穧 +穨 +穮 +穬 +穭 +穱 +穾 +窆 +窉 +窌 +窏 +窔 +窐 +窙 +窢 +窞 +窫 +窲 +窴 +窱 +窾 +竀 +竁 +竷 +笐 +笓 +笅 +笵 +笻 +笴 +笰 +笢 +笝 +笲 +筄 +筡 +箈 +箊 +箌 +箛 +箎 +箘 +箄 +箷 +箾 +篎 +箯 +箹 +篞 +篣 +篧 +篕 +篨 +篹 +簅 +篲 +篿 +篻 +簎 +篴 +簂 +簁 +篸 +篽 +簜 +簩 +簙 +簭 +簦 +簨 +簢 +簥 +簳 +簼 +簬 +簻 +籉 +籈 +籊 +籔 +籗 +籧 +籦 +籯 +籺 +籸 +籹 +粊 +粔 +粻 +糔 +糪 +糱 +糷 +紎 +紟 +紒 +紽 +紸 +紶 +紩 +絇 +紾 +絘 +絯 +絓 +絧 +絏 +絭 +絫 +綀 +綍 +絿 +綅 +絻 +絼 +綔 +綷 +緂 +綪 +緀 +緅 +緎 +緆 +緌 +綯 +綼 +緷 +緛 +緪 +緧 +縃 +緺 +緶 +緰 +縗 +縌 +縓 +縎 +縜 +縚 +縏 +縼 +繂 +縳 +顈 +繈 +縸 +縪 +繉 +繀 +縩 +緵 +縰 +縿 +縶 +繜 +繐 +繣 +繘 +繢 +繟 +繑 +繠 +繶 +繵 +繸 +繷 +繺 +繲 +繴 +纀 +纇 +纋 +纆 +纑 +纗 +纚 +缿 +罊 +罏 +罜 +罞 +罝 +罛 +罣 +罥 +罦 +罭 +罫 +罬 +罻 +罼 +罺 +罿 +羃 +羉 +羍 +羒 +羜 +羛 +羢 +羠 +羦 +羬 +羭 +羵 +羳 +羷 +羺 +羾 +翋 +翍 +翐 +翑 +翇 +翢 +翣 +翭 +翪 +翨 +翴 +翲 +翽 +翿 +耟 +耞 +耡 +耴 +耾 +耹 +聇 +聈 +聑 +聏 +聝 +肕 +肙 +肒 +肣 +肵 +胘 +胑 +胐 +胕 +胉 +胏 +胹 +胵 +脁 +胻 +脀 +胾 +胔 +脰 +脥 +脤 +脙 +脡 +脕 +脧 +腃 +腏 +腄 +腇 +脽 +腍 +腤 +腷 +腜 +腛 +腢 +腲 +朡 +腞 +腶 +膉 +膆 +膃 +膇 +膍 +膌 +膋 +膟 +膕 +膢 +膱 +膹 +膫 +膰 +膬 +膴 +膲 +臇 +膷 +臄 +臅 +臒 +臐 +臗 +臛 +臡 +臦 +臩 +臮 +臲 +臷 +臸 +臿 +舋 +舑 +舕 +舝 +舡 +舼 +舽 +艀 +艂 +艓 +艒 +艐 +艑 +艕 +艛 +艵 +艼 +芀 +芐 +芅 +芓 +芔 +苀 +芚 +芵 +芧 +芞 +芺 +苙 +苨 +苖 +苬 +苲 +苵 +苶 +茙 +茥 +茿 +茦 +茢 +荂 +茪 +荍 +茖 +茤 +茠 +茩 +茻 +莐 +莣 +莍 +荺 +莤 +荴 +莏 +莁 +荵 +莔 +莃 +莌 +莋 +荾 +莥 +菨 +萒 +菧 +菤 +菆 +菣 +菿 +菋 +菎 +菵 +萉 +菞 +菳 +菕 +蓱 +萿 +葹 +葥 +葀 +葧 +萰 +葍 +葽 +蔇 +葞 +萷 +萺 +萴 +葅 +菙 +葋 +萯 +葂 +葟 +葌 +蓎 +蒬 +蒮 +蒫 +蒪 +蒚 +蒝 +蓌 +蒛 +蒩 +蒘 +蒶 +蒠 +蔤 +蔏 +蔩 +蔉 +蔍 +蔧 +蔜 +蓻 +蓺 +蓴 +蔪 +蓲 +蓷 +蓫 +蔒 +蓩 +蔖 +蓾 +蔨 +蔮 +蔂 +蓶 +蔱 +蓹 +蔠 +蔰 +蕫 +蕍 +蕀 +蕆 +蕄 +蕇 +蕣 +蕛 +蕱 +蕵 +蕮 +蕧 +蕠 +蕦 +蕝 +薃 +薧 +薕 +薠 +薋 +薣 +薚 +蕼 +薉 +蕸 +薎 +薖 +薍 +薝 +薂 +藆 +藀 +藃 +藂 +薵 +薽 +藇 +藄 +藋 +藈 +藅 +薱 +薶 +藒 +藫 +藱 +藙 +藡 +藚 +藗 +藲 +藬 +藘 +藣 +藑 +藰 +蘁 +藾 +蘛 +蘉 +蘌 +蘪 +蘦 +蘟 +蘣 +蘜 +蘙 +蘮 +蘡 +蘠 +蘥 +蘴 +蘳 +蘬 +虀 +蘹 +蘱 +蘻 +蘾 +虃 +虆 +虇 +虈 +虌 +虋 +虙 +虡 +虣 +虩 +虪 +虰 +虭 +虴 +蚑 +蚞 +蚇 +蚗 +蚚 +蚅 +蚥 +蚙 +蚿 +蚷 +蛂 +蛁 +蛅 +蛈 +蚹 +蚳 +蚸 +蛌 +蚻 +蛢 +蛦 +蛓 +蛣 +蛚 +蛪 +蛝 +蛫 +蛜 +蛬 +蛗 +蜄 +蛷 +蜌 +蛖 +蛵 +蜁 +蛶 +蜳 +蝫 +蜙 +蝃 +蜬 +蝁 +蝆 +蜠 +蜲 +蜪 +蜭 +蜼 +蜵 +蝂 +蜦 +蜧 +蜸 +蜤 +蜰 +蝖 +蝷 +蟡 +蝳 +蝔 +蝛 +蝒 +蝑 +蝞 +蝭 +蝪 +蝐 +蝝 +蝬 +蝺 +蝜 +螛 +螏 +螓 +螒 +螁 +螖 +螘 +蝹 +螇 +螑 +螝 +螜 +螚 +螪 +螰 +螹 +螼 +螮 +蟉 +蟃 +蟂 +螷 +螴 +螿 +螸 +蟞 +蟧 +蟦 +蟢 +蟟 +蟤 +蟔 +蟓 +蟭 +蟘 +螤 +蟗 +蟙 +蠁 +蟨 +蠀 +蟺 +蠉 +蠌 +蟼 +蠈 +蟿 +蠗 +蠩 +蠝 +蠛 +蠠 +蠤 +蠜 +蠫 +蠬 +蠨 +蠦 +蠪 +蠥 +蠰 +蠮 +蠳 +蠸 +蠾 +蠽 +蠿 +衁 +衈 +衋 +衧 +衪 +衭 +衶 +袀 +衱 +衯 +袃 +袉 +袕 +袨 +袚 +袑 +袡 +袘 +袧 +袬 +袌 +袺 +裗 +袹 +袸 +裀 +袶 +袽 +袲 +裋 +裍 +裞 +裚 +裷 +裧 +裺 +裮 +裶 +裯 +裻 +褁 +褅 +褋 +褗 +褆 +褖 +褑 +褦 +褮 +褱 +褢 +褩 +褵 +褼 +褾 +襒 +褷 +襂 +褽 +襓 +襋 +襆 +襐 +襛 +襗 +襡 +襘 +襝 +襣 +襭 +襩 +襮 +襳 +襹 +襺 +覂 +覅 +覕 +覛 +覝 +覢 +覤 +覣 +覭 +覮 +覶 +觓 +觤 +觡 +觠 +觢 +觩 +觰 +觬 +觲 +觷 +觺 +觻 +觼 +觾 +訑 +訰 +訧 +訬 +訞 +詍 +訹 +詙 +詀 +詄 +詅 +訿 +誂 +詻 +誃 +誫 +誙 +誋 +諆 +誸 +諔 +諕 +誻 +諀 +諅 +諵 +諝 +諰 +諈 +謞 +謘 +謑 +謋 +謒 +謕 +謍 +謈 +謪 +謧 +謣 +謰 +謵 +譇 +謯 +謱 +謥 +謷 +謦 +譐 +譈 +譊 +譀 +譋 +譕 +譑 +譠 +譪 +譝 +譨 +譣 +譥 +譹 +譸 +譅 +譺 +譻 +譾 +讄 +讂 +讆 +讋 +讔 +讘 +讟 +谹 +谻 +谽 +谾 +豃 +豋 +豍 +豏 +豗 +豜 +豝 +豟 +豥 +豤 +豦 +豭 +豰 +豲 +豱 +豯 +豵 +豷 +豶 +豻 +豽 +貁 +貀 +貄 +貏 +貑 +貕 +貙 +貗 +貜 +貣 +貾 +賌 +賥 +賟 +賙 +賵 +賮 +贆 +贕 +贙 +赨 +赩 +赮 +赸 +趀 +趌 +趎 +趏 +趍 +趓 +趠 +趜 +趡 +趥 +趧 +趬 +趪 +趭 +趫 +趮 +趷 +趹 +跘 +跓 +跍 +跇 +跜 +跕 +跙 +跈 +跰 +跠 +跮 +跦 +跢 +跧 +跲 +跫 +踂 +跿 +踍 +踃 +踇 +踆 +跾 +踠 +踥 +踤 +踡 +踕 +踛 +踖 +踑 +踙 +踧 +踘 +踓 +踳 +踾 +踸 +踼 +蹎 +蹍 +蹓 +蹗 +蹖 +蹞 +蹥 +蹛 +蹡 +蹝 +蹔 +蹸 +蹳 +蹪 +躆 +躈 +躖 +躗 +躟 +躠 +躤 +躣 +躩 +躨 +躽 +軓 +軘 +軞 +軯 +軷 +軦 +軮 +軥 +軵 +軧 +軨 +軶 +軱 +軬 +輆 +軿 +輁 +輀 +輂 +輐 +輑 +輤 +輘 +輚 +輠 +輣 +輖 +輗 +輮 +輵 +輲 +輹 +輷 +輴 +轃 +轇 +轈 +轒 +轑 +轏 +轐 +轓 +轙 +轖 +轗 +轕 +轚 +轞 +轛 +轠 +辴 +迉 +迒 +迋 +迍 +迖 +迣 +迡 +迾 +迿 +逜 +逿 +遝 +遳 +遰 +遻 +邆 +邅 +遾 +邍 +邔 +邟 +邥 +邞 +邧 +郱 +郕 +郖 +郠 +郙 +郣 +郥 +郘 +郰 +郲 +郔 +鄬 +郼 +鄈 +郹 +郻 +鄁 +鄇 +郺 +鄐 +鄍 +鄏 +鄎 +鄟 +鄝 +鄡 +鄛 +鄨 +鄪 +鄦 +鄮 +鄵 +鄸 +鄻 +鄾 +酀 +酁 +酄 +酇 +酖 +酘 +酓 +酟 +酳 +醆 +醊 +醓 +醙 +醟 +醥 +醧 +醰 +醱 +醷 +醲 +醳 +醹 +醽 +釂 +釃 +釢 +釱 +釳 +釸 +鈚 +鈌 +鈒 +釽 +鈆 +鉒 +鉠 +鉯 +鈶 +鉼 +銤 +銛 +銔 +鉹 +銗 +鋄 +鋀 +鋟 +鋘 +鋩 +鋝 +鋂 +鋊 +錧 +錼 +錭 +錎 +鋋 +鎡 +鎃 +鎯 +鍖 +鍜 +鍐 +鍭 +鍌 +鎒 +鎷 +鎝 +鎉 +鎎 +鎞 +鏏 +鏂 +鏚 +鏬 +鏙 +鐋 +鐏 +鏾 +鐕 +鐨 +鐍 +鐀 +鐎 +鐖 +鐻 +鐶 +鑐 +鑋 +鑕 +鑮 +鑯 +钂 +钀 +钁 +钃 +镺 +镻 +镼 +镽 +閈 +閍 +閺 +閵 +闀 +闉 +闅 +閷 +闒 +闑 +闚 +闛 +闠 +闟 +闤 +阞 +阢 +阤 +阠 +阰 +阹 +阸 +阺 +陏 +陓 +陊 +陼 +陭 +陫 +隇 +陾 +隉 +隒 +隓 +隞 +隤 +隿 +雂 +雈 +雓 +雔 +雗 +雚 +雟 +雘 +雺 +雽 +雿 +霂 +霋 +霒 +霐 +霠 +霣 +霢 +霩 +霫 +霬 +霮 +霵 +霿 +靆 +靃 +靪 +靮 +靷 +靲 +靾 +鞃 +鞀 +鞂 +靻 +鞊 +鞎 +鞈 +鞙 +鞗 +鞚 +鞜 +鞤 +鞪 +鞷 +鞶 +鞹 +鞻 +鞿 +韄 +韅 +韇 +韎 +韐 +韏 +韕 +韔 +韗 +韝 +韟 +韣 +韥 +韰 +韱 +韹 +韽 +頄 +頖 +頞 +頝 +頩 +頨 +頯 +頲 +顁 +顄 +顊 +顉 +顅 +顐 +顑 +顜 +顝 +顠 +顣 +顟 +顤 +顪 +顩 +顲 +颬 +颲 +颸 +颽 +颻 +颾 +飁 +飂 +飉 +飋 +飌 +飣 +飶 +餂 +餀 +飺 +餔 +餖 +餕 +餤 +餟 +餥 +餫 +餪 +餲 +餯 +餭 +餱 +餰 +饁 +饇 +饐 +饎 +饙 +饘 +饛 +饡 +馣 +馲 +馰 +馵 +馻 +馺 +駂 +馽 +駜 +駍 +駏 +駎 +駖 +駮 +駬 +駥 +駤 +駣 +駩 +駺 +駴 +駷 +駹 +駶 +駻 +駽 +駾 +騃 +騉 +騑 +騊 +騇 +騚 +騕 +騥 +騝 +騛 +騢 +騠 +騧 +騞 +騜 +騵 +騲 +騴 +騱 +騬 +騪 +騩 +騹 +騽 +驆 +騺 +驓 +驔 +驈 +驉 +驖 +驞 +驠 +驦 +驨 +骭 +骫 +骹 +骿 +骴 +骾 +髇 +髊 +髆 +髍 +髐 +髟 +髧 +髬 +髳 +髶 +髺 +髾 +鬁 +髼 +鬋 +鬊 +鬎 +鬌 +鬐 +鬕 +鬗 +鬖 +鬙 +鬞 +鬠 +鬤 +鬫 +鬳 +鬵 +鬺 +鬾 +鬿 +魊 +魌 +魖 +魠 +魡 +魧 +魱 +魦 +魶 +魵 +鮅 +鮇 +魼 +魾 +魻 +鮂 +鮚 +鮞 +鮛 +鮦 +鮥 +鮤 +鮆 +鯆 +鮿 +鮵 +鯈 +鯫 +鯠 +鯞 +鯦 +鯬 +鰌 +鰋 +鰅 +鯸 +鰫 +鰝 +鰬 +鱆 +鰿 +鱄 +鱁 +鰴 +鱐 +鱍 +鱋 +鱕 +鱦 +鱢 +鱞 +鱴 +鱳 +鱹 +鳦 +鳪 +鳭 +鳱 +鳵 +鳼 +鳺 +鳿 +鳷 +鴀 +鳹 +鳻 +鴅 +鴃 +鴥 +鴠 +鴔 +鴩 +鴘 +鴢 +鴐 +鴳 +鵁 +鵧 +鴶 +鴮 +鴱 +鴸 +鵅 +鵃 +鴾 +鵀 +鴽 +鵏 +鵊 +鵛 +鵋 +鵖 +鵌 +鵗 +鵔 +鵷 +鶁 +鶊 +鶄 +鶈 +鵱 +鶀 +鵸 +鶋 +鶌 +鵽 +鵫 +鵴 +鵩 +鶅 +鵳 +鵻 +鶂 +鵹 +鶟 +鶙 +鶤 +鶝 +鶐 +鶛 +鶠 +鶔 +鶜 +鶪 +鶗 +鶢 +鶨 +鶞 +鶣 +鶖 +鶷 +鶶 +鷁 +鷇 +鷊 +鷏 +鶾 +鷅 +鷃 +鶵 +鷈 +鶱 +鶭 +鷛 +鷒 +鷞 +鷋 +鷐 +鷜 +鷑 +鷩 +鷘 +鷖 +鷵 +鷕 +鷻 +鷷 +鷣 +鷤 +鷶 +鷡 +鷮 +鷢 +鸂 +鷾 +鸇 +鸃 +鸆 +鸅 +鸀 +鸁 +鸉 +鷿 +鷽 +鸄 +鸋 +鸍 +鸏 +鸒 +鸔 +鸓 +鸗 +鸙 +鹺 +麃 +麆 +麉 +麎 +麌 +麔 +麙 +麛 +麚 +麜 +麠 +麡 +麧 +麮 +麰 +麶 +麷 +黀 +黂 +黈 +黓 +黕 +黖 +黚 +黤 +黫 +黮 +黭 +黰 +黳 +黵 +黺 +鼁 +鼀 +鼆 +鼊 +鼏 +鼖 +鼛 +鼘 +鼜 +鼤 +鼣 +鼥 +鼪 +鼨 +鼭 +鼰 +鼮 +鼵 +鼳 +鼲 +鼸 +鼶 +齀 +齂 +齃 +齌 +齍 +齎 +齖 +齗 +齘 +齛 +齠 +齞 +齝 +齥 +齤 +齫 +齱 +齰 +齮 +齯 +齴 +齵 +齸 +齻 +齺 +齹 +齾 +龒 +龤 +堔 +礂 +蒏 +蒆 +兙 +兛 +兞 +兝 +兡 +兣 +嗧 +瓩 +忼 +擡 +氊 +穇 +擧 +譌 +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +] +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +© +° +² +´ +½ +Á +Ä +Å +Ç +È +É +Í +Ó +Ö +× +Ü +ß +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +í +ð +ñ +ò +ó +ô +õ +ö +ø +ú +û +ü +ý +ā +ă +ą +ć +Č +č +đ +ē +ė +ę +ğ +ī +ı +Ł +ł +ń +ň +ō +ř +Ş +ş +Š +š +ţ +ū +ż +Ž +ž +Ș +ș +ț +Δ +α +λ +μ +φ +Г +О +а +в +л +о +р +с +т +я +ồ +— +― +’ +“ +” +… +℃ +→ +∇ +− +■ +☆ +、 +。 +々 +〆 +〈 +〉 +「 +」 +『 +』 +〔 +〕 +〜 +! +# +% +& +( +) ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; += +? +@ +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +R +S +T +U +V +W +X +Z +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +~ +・ +ǎ +ǒ +ě +ǐ +ì +ǔ +ù +ǖ +ǘ +ǚ +ǜ +【 +】 +《 +》 +‥ +{ +} +\ +| +@ +^ +~ +÷ +∕ +∙ +⋅ +· +⊕ +⊖ +⊗ +⊘ +⊙ +± +∓ +∩ +∪ +□ +⊎ +⊓ +⊔ +≠ +≈ +≡ +≤ +≥ +≪ +≫ +≲ +≳ +≶ +≷ +≺ +≻ +≼ +≽ +∈ +∉ +⊂ +⊃ +⊆ +⊇ +⊄ +⊅ +∅ +∖ +∁ +∆ +∧ +∨ +¬ +⊻ +⊼ +⊽ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +⊥ +∟ +∠ +∡ +∢ +′ +″ +∥ +⊾ +⊿ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +® +≄ +≅ +≃ +≦ +≧ +⊈ +⊉ +⊢ +⊤ +⊨ +⊧ +℉ +Ω +℧ +Å +⌀ +ℏ +⅀ +⍺ +⍵ +¢ +€ +£ +¥ +¥ +₿ +↑ +↓ +↕ +↖ +↗ +↘ +↙ +↺ +↻ +↼ +↽ +↾ +↿ +⇀ +⇁ +⇂ +⇃ +⇋ +⇌ +ª +º +⁰ +¹ +³ +⁴ +⁵ +⁶ +⁷ +⁸ +⁹ +⁺ +⁻ +⁼ +⁽ +⁾ +ⁿ +₀ +₁ +₂ +₃ +₄ +₅ +₆ +₇ +₈ +₉ +₊ +₋ +₌ +₍ +₎ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +☰ +☱ +☲ +☳ +☴ +☵ +☶ +☷ +♀ +♂ +♳ +♴ +♵ +♶ +♷ +♸ +♹ +♺ +♩ +♪ +♫ +♬ +⚪ +⚫ +⚬ +✶ +✷ +✸ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +⏀ +⏁ +⏂ +⏃ +⏄ +⏅ +⏆ +⏇ +⏈ +⏉ +⏊ +⏋ +⏌ +⏚ +⏴ +⏵ +⏶ +⏷ +⏸ +⏹ +⏺ +⏻ +⏼ +Α +Β +Γ +Ε +Ζ +Η +Θ +Ι +Κ +Λ +Μ +Ν +Ξ +Ο +Π +Ρ +Σ +Τ +Υ +Φ +Χ +Ψ +β +γ +δ +ε +ζ +η +θ +ι +κ +ν +ξ +ο +π +ρ +σ +τ +υ +χ +ψ +ω +ϐ +ϑ +ϒ +ϕ +█ +ϖ +ϰ +ϱ +ϴ +ϵ +ϝ +Ϟ +ϟ +Ϡ +ϡ +Ϣ +ϣ +Ϥ +ϥ +Ϧ +ϧ +Ϩ +ϩ +Ϫ +ϫ +Ϭ +ϭ +Ϯ +ϯ +∸ +∹ +∺ +∻ +∽ +∾ +∿ +≀ +≁ +≂ +≆ +≇ +≉ +≊ +≋ +≌ +≍ +≎ +≏ +≐ +≑ +≒ +≓ +≔ +≕ +≖ +≗ +≘ +≙ +≚ +≛ +≜ +≝ +≞ +≟ +≢ +≣ +≨ +≩ +≬ +≭ +≮ +≯ +≰ +≱ +≴ +≵ +≸ +≹ +≾ +≿ +⊀ +⊁ +⊊ +⊋ +⊌ +⊍ +⊏ +⊐ +⊑ +⊒ +⊚ +⊛ +⊜ +⊝ +⊞ +⊟ +⊠ +⊡ +⊣ +⊦ +⊩ +⊪ +⊫ +⊬ +⊭ +⊮ +⊯ +⊰ +⊱ +⊲ +⊳ +⊴ +⊵ +⊶ +⊷ +⊸ +⊹ +⊺ +ℎ +℘ +ℜ +ℑ +ℵ +ℶ +ℷ +ℸ +⌬ +⌭ +⌮ +⌯ +⎔ +¤ +₠ +₡ +₢ +₣ +₤ +₥ +₦ +₧ +₨ +₩ +₪ +₫ +₭ +₮ +₯ +₰ +₱ +₲ +₳ +₴ +₵ +₶ +₷ +₸ +₹ +₺ +₻ +₼ +₽ +₾ +↚ +↛ +↜ +↝ +↞ +↟ +↠ +↡ +↢ +↣ +↤ +↥ +↦ +↧ +↨ +↩ +↪ +↫ +↬ +↭ +↮ +↯ +↰ +↱ +↲ +↳ +↴ +↵ +↶ +↷ +↸ +↹ +⇄ +⇅ +⇆ +⇇ +⇈ +⇉ +⇊ +⇍ +⇎ +⇏ +⇑ +⇓ +⇕ +⇖ +⇗ +⇘ +⇙ +⇚ +⇛ +⇜ +⇝ +⇞ +⇟ +⇠ +⇡ +⇢ +⇣ +⇤ +⇥ +⇦ +⇧ +⇨ +⇩ +⇪ +⇫ +⇬ +⇭ +⇮ +⇯ +⇰ +⇱ +⇲ +⇳ +⇴ +⇵ +⇶ +⇷ +⇸ +⇹ +⇺ +⇻ +⇼ +⇽ +⇾ +⇿ +ↀ +ↁ +ↂ +☀ +☁ +☂ +☃ +☄ +★ +☇ +☈ +☉ +☊ +☋ +☌ +☍ +☎ +☏ +☐ +☑ +☒ +☓ +☔ +☕ +☖ +☗ +☘ +☙ +☚ +☛ +☜ +☝ +☞ +☟ +☠ +☡ +☢ +☣ +☤ +☥ +☦ +☧ +☨ +☩ +☪ +☫ +☬ +☭ +☮ +☯ +☸ +☹ +☺ +☻ +☼ +☽ +☾ +☿ +♁ +♃ +♄ +♅ +♆ +♇ +♔ +♕ +♖ +♗ +♘ +♙ +♚ +♛ +♜ +♝ +♞ +♟ +♠ +♡ +♢ +♣ +♤ +♥ +♦ +♧ +♨ +♭ +♮ +♯ +♰ +♱ +♲ +♻ +♼ +♽ +♾ +⚀ +⚁ +⚂ +⚃ +⚄ +⚅ +⚆ +⚇ +⚈ +⚉ +⚊ +⚋ +⚌ +⚍ +⚎ +⚏ +⚐ +⚑ +⚒ +⚓ +⚔ +⚕ +⚖ +⚗ +⚘ +⚙ +⚚ +⚛ +⚜ +⚝ +⚞ +⚟ +⚠ +⚡ +⚢ +⚣ +⚤ +⚥ +⚦ +⚧ +⚨ +⚩ +⚭ +⚮ +⚯ +⚰ +⚱ +⚲ +⚳ +⚴ +⚵ +⚶ +⚷ +⚸ +⚹ +⚺ +⚻ +⚼ +⚿ +⛀ +⛁ +⛂ +⛃ +⛆ +⛇ +⛈ +⛉ +⛊ +⛋ +⛌ +⛍ +⛏ +⛐ +⛑ +⛒ +⛓ +⛕ +⛖ +⛗ +⛘ +⛙ +⛚ +⛛ +⛜ +⛝ +⛞ +⛠ +⛡ +⛢ +⛣ +⛤ +⛥ +⛦ +⛧ +⛨ +⛩ +⛪ +⛫ +⛬ +⛭ +⛮ +⛯ +⛶ +⛾ +⛿ +✆ +✇ +✈ +✉ +✌ +✍ +✎ +✏ +✐ +✑ +✒ +✓ +✔ +✕ +✙ +✚ +✛ +✜ +✝ +✞ +✟ +✠ +✡ +✢ +✣ +✤ +✥ +✦ +✧ +✩ +✪ +✫ +✬ +✭ +✮ +✯ +✰ +✱ +✲ +✳ +✴ +✵ +✹ +✺ +✻ +✼ +✽ +✾ +✿ +❀ +❁ +❂ +❃ +❄ +❅ +❆ +❇ +❈ +❉ +❊ +❋ +❍ +❏ +❐ +❑ +❒ +❖ +❘ +❙ +❚ +❛ +❜ +❝ +❞ +❡ +❢ +❣ +❤ +❥ +❦ +❧ +❨ +❩ +❪ +❫ +❬ +❭ +❮ +❯ +❰ +❱ +❲ +❳ +❴ +❵ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +➔ +➕ +➖ +➗ +➘ +➙ +➚ +➛ +➜ +➝ +➞ +➟ +➠ +➡ +➢ +➣ +➤ +➥ +➦ +➧ +➨ +➩ +➪ +➫ +➬ +➭ +➮ +➯ +➰ +➱ +➲ +➳ +➴ +➵ +➶ +➷ +➸ +➹ +➺ +➻ +➼ +➽ +➾ +➿ +⌘ +⌥ +⌃ +⎋ +⌫ +⌦ +⏏ +⌤ +⌧ +⌨ +⎆ +⎇ +⎈ +⎉ +⎊ +⎌ +⎍ +⎎ +⎏ +⎐ +⎑ +⎒ +⎓ +⎕ +⎖ +⎗ +⎘ +⎙ +⎚ +⎛ +⎜ +⎝ +⎞ +⎟ +⎠ +⎡ +⎢ +⎣ +⎤ +⎥ +⎦ +⎧ +⎨ +⎩ +⎪ +⎫ +⎬ +⎭ +⎮ +⎯ +⎰ +⎱ +⎲ +⎳ +⎴ +⎵ +⎶ +⎷ +⎸ +⎹ +⎺ +⎻ +⎼ +⎽ +⎾ +⎿ +⏍ +⏎ +⏐ +⏑ +⏒ +⏓ +⏔ +⏕ +⏖ +⏗ +⏘ +⏙ +⏛ +⏜ +⏝ +⏞ +⏟ +⏠ +⏡ +⏢ +⏣ +⏤ +⏥ +⏦ +⏧ +⏨ +⏭ +⏮ +⏯ +⏱ +⏲ +▲ +▽ +◐ +⏽ +⏾ +⏿ +ɐ +ɑ +ɒ +ɓ +ɔ +ɕ +ɖ +ɗ +ɘ +ə +ɚ +ɛ +ɜ +ɝ +ɞ +ɟ +ɠ +ɡ +ɢ +ɣ +ɤ +ɥ +ɦ +ɧ +ɨ +ɩ +ɪ +ɫ +ɬ +ɭ +ɮ +ɯ +ɰ +ɱ +ɲ +ɳ +ɴ +ɵ +ɶ +ɷ +ɸ +ɹ +ɺ +ɻ +ɼ +ɽ +ɾ +ɿ +ʀ +ʁ +ʂ +ʃ +ʄ +ʅ +ʆ +ʇ +ʈ +ʉ +ʊ +ʋ +ʌ +ʍ +ʎ +ʏ +ʐ +ʑ +ʒ +ʓ +ʔ +ʕ +ʖ +ʗ +ʘ +ʙ +ʚ +ʛ +ʜ +ʝ +ʞ +ʟ +ʠ +ʡ +ʢ +ʣ +ʤ +ʥ +ʦ +ʧ +ʨ +ʩ +ʪ +ʫ +ʬ +ʭ +ʮ +ʯ +━ +Ǝ +à +● +▶ +| +𝑢 +〖 +〗 +︽ +– +﹥ +𝜓 +• +∋ +ƒ +० +✘ +Е +◉ +〒 +𝒱 +𝜆 +⟹ +﹪ +◊ +╆ +오 +˂ +〉 +𝝎 +▪ +△ +▁ +◼ +〇 +▷ +▬ +𝒮 +† +ₒ +⼁ +〵 +⭐ +╳ +⟶ +으 +⬆ +Ạ +◀ + +▫ +丄 +︾ +◥ +‖ +𝜌 +ⅼ +▼ +⁎ +﹏ +😁 +😂 +😃 +😄 +😅 +😆 +😉 +😊 +😋 +😌 +😍 +😏 +😒 +😓 +😔 +😖 +😘 +😚 +😜 +😝 +😞 +😠 +😡 +😢 +😣 +😤 +😥 +😨 +😩 +😪 +😫 +😭 +😰 +😱 +😲 +😳 +😵 +😷 +😸 +😹 +😺 +😻 +😼 +😽 +😾 +😿 +🙀 +🙅 +🙆 +🙇 +🙈 +🙉 +🙊 +🙋 +🙌 +🙍 +🙎 +🙏 +✂ +✅ +✊ +✋ +✖ +✨ +❌ +❎ +❓ +❔ +❕ +❗ +🚀 +🚃 +🚄 +🚅 +🚇 +🚉 +🚌 +🚏 +🚑 +🚒 +🚓 +🚕 +🚗 +🚙 +🚚 +🚢 +🚤 +🚥 +🚧 +🚨 +🚩 +🚪 +🚫 +🚬 +🚭 +🚲 +🚶 +🚹 +🚺 +🚻 +🚼 +🚽 +🚾 +🛀 +Ⓜ +🅰 +🅱 +🅾 +🅿 +🆎 +🆑 +🆒 +🆓 +🆔 +🆕 +🆖 +🆗 +🆘 +🆙 +🆚 +🇩🇪 +🇬🇧 +🇨🇳 +🇯🇵 +🇫🇷 +🇰🇷 +🇪🇸 +🇮🇹 +🇷🇺 +🇺🇸 +🈁 +ℹ +⌚ +⌛ +⏩ +⏪ +⏫ +⏬ +⏰ +⏳ +◻ +◽ +◾ +♈ +♉ +♊ +♋ +♌ +♍ +♎ +♏ +♐ +♑ +♒ +♓ +♿ +⚽ +⚾ +⛄ +⛅ +⛎ +⛔ +⛲ +⛳ +⛵ +⛺ +⛽ +⤴ +⤵ +⬅ +⬇ +⬛ +⬜ +⭕ +〰 +〽 +㊗ +㊙ +🀄 +🃏 +🌀 +🌁 +🌂 +🌃 +🌄 +🌅 +🌆 +🌇 +🌈 +🌉 +🌊 +🌋 +🌌 +🌏 +🌑 +🌓 +🌔 +🌕 +🌙 +🌛 +🌟 +🌠 +🌰 +🌱 +🌴 +🌵 +🌷 +🌸 +🌹 +🌺 +🌻 +🌼 +🌽 +🌾 +🌿 +🍀 +🍁 +🍂 +🍃 +🍄 +🍅 +🍆 +🍇 +🍈 +🍉 +🍊 +🍌 +🍍 +🍎 +🍏 +🍑 +🍒 +🍓 +🍔 +🍕 +🍖 +🍗 +🍘 +🍙 +🍚 +🍛 +🍜 +🍝 +🍞 +🍟 +🍠 +🍡 +🍢 +🍣 +🍤 +🍥 +🍦 +🍧 +🍨 +🍩 +🍪 +🍫 +🍬 +🍭 +🍮 +🍯 +🍰 +🍱 +🍲 +🍳 +🍴 +🍵 +🍶 +🍷 +🍸 +🍹 +🍺 +🍻 +🎀 +🎁 +🎂 +🎃 +🎄 +🎅 +🎆 +🎇 +🎈 +🎉 +🎊 +🎋 +🎌 +🎍 +🎎 +🎏 +🎐 +🎑 +🎒 +🎓 +🎠 +🎡 +🎢 +🎣 +🎤 +🎥 +🎦 +🎧 +🎨 +🎩 +🎪 +🎫 +🎬 +🎭 +🎮 +🎯 +🎰 +🎱 +🎲 +🎳 +🎴 +🎵 +🎶 +🎷 +🎸 +🎹 +🎺 +🎻 +🎼 +🎽 +🎾 +🎿 +🏀 +🏁 +🏂 +🏃 +🏄 +🏆 +🏈 +🏊 +🏠 +🏡 +🏢 +🏣 +🏥 +🏦 +🏧 +🏨 +🏩 +🏪 +🏫 +🏬 +🏭 +🏮 +🏯 +🏰 +🐌 +🐍 +🐎 +🐑 +🐒 +🐔 +🐗 +🐘 +🐙 +🐚 +🐛 +🐜 +🐝 +🐞 +🐟 +🐠 +🐡 +🐢 +🐣 +🐤 +🐥 +🐦 +🐧 +🐨 +🐩 +🐫 +🐬 +🐭 +🐮 +🐯 +🐰 +🐱 +🐲 +🐳 +🐴 +🐵 +🐶 +🐷 +🐸 +🐹 +🐺 +🐻 +🐼 +🐽 +🐾 +👀 +👂 +👃 +👄 +👅 +👆 +👇 +👈 +👉 +👊 +👋 +👌 +👍 +👎 +👏 +👐 +👑 +👒 +👓 +👔 +👕 +👖 +👗 +👘 +👙 +👚 +👛 +👜 +👝 +👞 +👟 +👠 +👡 +👢 +👣 +👤 +👦 +👧 +👨 +👩 +👪 +👫 +👮 +👯 +👰 +👱 +👲 +👳 +👴 +👵 +👶 +👷 +👸 +👹 +👺 +👻 +👼 +👽 +👾 +👿 +💀 +💁 +💂 +💃 +💄 +💅 +💆 +💇 +💈 +💉 +💊 +💋 +💌 +💍 +💎 +💏 +💐 +💑 +💒 +💓 +💔 +💕 +💖 +💗 +💘 +💙 +💚 +💛 +💜 +💝 +💞 +💟 +💠 +💡 +💢 +💣 +💤 +💥 +💦 +💧 +💨 +💩 +💪 +💫 +💬 +💮 +💯 +💰 +💲 +💳 +💴 +💵 +💸 +💹 +💺 +💻 +💼 +💽 +💾 +💿 +📀 +📁 +📂 +📃 +📄 +📅 +📆 +📇 +📈 +📉 +📊 +📋 +📌 +📍 +📎 +📏 +📐 +📑 +📒 +📓 +📔 +📕 +📖 +📗 +📘 +📙 +📚 +📛 +📜 +📝 +📞 +📟 +📠 +📡 +📢 +📣 +📤 +📥 +📦 +📧 +📨 +📩 +📪 +📫 +📮 +📰 +📱 +📲 +📳 +📴 +📶 +📷 +📹 +📺 +📻 +📼 +🔃 +🔊 +🔋 +🔌 +🔍 +🔎 +🔏 +🔐 +🔑 +🔒 +🔓 +🔔 +🔖 +🔗 +🔘 +🔙 +🔚 +🔛 +🔜 +🔝 +🔞 +🔟 +🔠 +🔡 +🔢 +🔣 +🔤 +🔥 +🔦 +🔧 +🔨 +🔩 +🔪 +🔫 +🔮 +🔯 +🔰 +🔱 +🔲 +🔳 +🔴 +🔵 +🔶 +🔷 +🔸 +🔹 +🔺 +🔻 +🔼 +🔽 +🕐 +🕑 +🕒 +🕓 +🕔 +🕕 +🕖 +🕗 +🕘 +🕙 +🕚 +🕛 +🗻 +🗼 +🗽 +🗾 +🗿 +😀 +😇 +😈 +😎 +😐 +😑 +😕 +😗 +😙 +😛 +😟 +😦 +😧 +😬 +😮 +😯 +😴 +😶 +🚁 +🚂 +🚆 +🚈 +🚊 +🚍 +🚎 +🚐 +🚔 +🚖 +🚘 +🚛 +🚜 +🚝 +🚞 +🚟 +🚠 +🚡 +🚣 +🚦 +🚮 +🚯 +🚰 +🚱 +🚳 +🚴 +🚵 +🚷 +🚸 +🚿 +🛁 +🛂 +🛃 +🛄 +🛅 +🌍 +🌎 +🌐 +🌒 +🌖 +🌗 +🌘 +🌚 +🌜 +🌝 +🌞 +🌲 +🌳 +🍋 +🍐 +🍼 +🏇 +🏉 +🏤 +🐀 +🐁 +🐂 +🐃 +🐄 +🐅 +🐆 +🐇 +🐈 +🐉 +🐊 +🐋 +🐏 +🐐 +🐓 +🐕 +🐖 +🐪 +👥 +👬 +👭 +💭 +💶 +💷 +📬 +📭 +📯 +📵 +🔀 +🔁 +🔂 +🔄 +🔅 +🔆 +🔇 +🔉 +🔕 +🔬 +🔭 +🕜 +🕝 +🕞 +🕟 +🕠 +🕡 +🕢 +🕣 +🕤 +🕥 +🕦 +🕧 diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_el_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_el_dict.txt new file mode 100644 index 000000000..a2de2e676 --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_el_dict.txt @@ -0,0 +1,354 @@ +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +@ +[ +] +_ +` +^ +~ +© +® +™ +° +² +³ +´ +µ +¶ +· +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +÷ +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +† +‡ +… +‰ +′ +″ +‴ +‵ +‶ +‷ +‹ +› +‼ +‽ +‾ +€ +£ +¥ +¢ +₤ +₡ +₽ +₴ +₹ +₿ +± +∓ +≈ +≠ +≡ +≤ +≥ +∑ +∏ +∫ +∬ +∭ +∮ +∯ +∰ +√ +∛ +∜ +∝ +∞ +∂ +∇ +∴ +∵ +∷ +∠ +∡ +∢ +∟ +∦ +∩ +∪ +∗ +∖ +∥ +∧ +∨ +⊂ +⊃ +⊥ +∈ +∋ +∉ +∅ +↑ +→ +↓ +↔ +↕ +← +⇒ +⇐ +⇔ +∀ +∃ +∄ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +Α +Β +Γ +Δ +Ε +Ζ +Η +Θ +Ι +Κ +Λ +Μ +Ν +Ξ +Ο +Π +Ρ +Σ +Τ +Υ +Φ +Χ +Ψ +Ω +ά +έ +ή +ί +ό +ύ +ώ +Ϊ +Ϋ +Ά +Έ +Ή +Ί +Ό +Ύ +Ώ +ϊ +ΐ +ϋ +ΰ +α +β +γ +δ +ε +ζ +η +θ +ι +κ +λ +μ +ν +ξ +ο +π +ρ +ς +σ +τ +υ +φ +χ +ψ +ω +ϐ +ϑ +ϒ +ϓ +ϔ +ϕ +ϖ +Ϛ +ϛ +Ϝ +ϝ +Ϟ +ϟ +Ϡ +ϡ +Ϣ +ϣ +Ϥ +ϥ +Ϧ +ϧ +Ϩ +ϩ +Ϫ +ϫ +Ϭ +ϭ +Ϯ +ϯ +ϰ +ϱ +ϲ +ϳ +ϴ +ϵ +϶ +Ϸ +ϸ +Ϲ +Ϻ +ϻ diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_en_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_en_dict.txt new file mode 100644 index 000000000..7bf3f5fad --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_en_dict.txt @@ -0,0 +1,436 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +: +; +< += +> +? +@ +[ +\ +] +_ +` +{ +| +} +^ +~ +© +® +℉ +№ +Ω +℮ +™ +∆ +✓ +✔ +✗ +✘ +✕ +☑ +☒ +● +▪ +▫ +◼ +▶ +◀ +⬆ +¤ +¦ +§ +¨ +ª +« +¬ +¯ +° +² +³ +´ +µ +¶ +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +‐ +‑ +‒ +— +― +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +‟ +† +‡ +‣ +․ +… +‧ +‰ +‴ +‵ +‶ +‷ +‸ +‹ +› +※ +‼ +‽ +‾ +− +₤ +₡ +₹ +₽ +₴ +₿ +¢ +€ +£ +¥ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +↑ +→ +↓ +↕ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +∩ +∪ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +∖ +∗ +≈ +≠ +≡ +≤ +≥ +⊂ +⊃ +⊥ +⊾ +⊿ +□ +∥ +∋ +ƒ +′ +″ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +Ø +Ù +Ú +Û +Ü +Ý +Þ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +ø +ù +ú +û +ü +ý +þ +ÿ +Α +Β +Γ +Δ +Ε +Ζ +Η +Θ +Ι +Κ +Λ +Μ +Ν +Ξ +Ο +Π +Ρ +Σ +Τ +Υ +Φ +Χ +Ψ +Ω +α +β +γ +δ +ε +ζ +η +θ +ι +κ +λ +μ +ν +ξ +ο +π +ρ +σ +ς +τ +υ +φ +χ +ψ +ω +Å +ℏ +⌀ +⍺ +⍵ +𝑢 +𝜓 +० +‥ +︽ +﹥ +• +÷ +∕ +∙ +⋅ +· +± +∓ +∟ +∠ +∡ +∢ +℧ +☺ diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_eslav_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_eslav_dict.txt new file mode 100644 index 000000000..d50d6e5a2 --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_eslav_dict.txt @@ -0,0 +1,517 @@ +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +] +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +© +‥ +{ +} +\ +| +@ +^ +~ +÷ +∕ +∙ +⋅ +· +± +∓ +∩ +∪ +□ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +⊥ +∟ +∠ +∡ +∢ +′ +″ +∥ +⊾ +⊿ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +® +℉ +Ω +℧ +Å +⌀ +ℏ +⅀ +⍺ +⍵ +¢ +€ +£ +¥ +₿ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +● +▶ +𝑢 +︽ +– +﹥ +𝜓 +• +∋ +ƒ +० +⬆ +Ạ +◀ + +▫ +︾ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +Ø +Ù +Ú +Û +Ü +Ý +Þ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +ø +ù +ú +û +ü +ý +þ +ÿ +¡ +¤ +¦ +§ +¨ +ª +« +¬ +¯ +° +² +³ +´ +µ +¶ +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +‐ +‑ +‒ +— +― +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +‟ +† +‡ +‣ +․ +… +‧ +‰ +‴ +‵ +‶ +‷ +‸ +‹ +› +※ +‼ +‽ +‾ +₤ +₡ +₹ +− +∖ +∗ +≈ +≠ +≡ +≤ +≥ +⊂ +⊃ +↑ +→ +↓ +↕ +™ +Ω +℮ +∆ +✓ +✗ +✘ +▪ +◼ +✔ +✕ +☑ +☒ +№ +₽ +₴ +Α +α +Β +β +Γ +γ +Δ +δ +Ε +ε +Ζ +ζ +Η +η +Θ +θ +Ι +ι +Κ +κ +Λ +λ +Μ +μ +Ν +ν +Ξ +ξ +Ο +ο +Π +π +Ρ +ρ +Σ +σ +ς +Τ +τ +Υ +υ +Φ +φ +Χ +χ +Ψ +ψ +ω +А +Б +В +Г +Ґ +Д +Е +Ё +Є +Ж +З +И +І +Ї +Й +К +Л +М +Н +О +П +Р +С +Т +У +Ў +Ф +Х +Ц +Ч +Ш +Щ +Ъ +Ы +Ь +Э +Ю +Я +а +б +в +г +ґ +д +е +ё +є +ж +з +и +і +ї +й +к +л +м +н +о +п +р +с +т +у +ў +ф +х +ц +ч +ш +щ +ъ +ы +ь +э +ю +я diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_korean_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_korean_dict.txt new file mode 100644 index 000000000..e22026310 --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_korean_dict.txt @@ -0,0 +1,11945 @@ +ᄀ +ᄁ +ᄂ +ᄃ +ᄄ +ᄅ +ᄆ +ᄇ +ᄈ +ᄉ +ᄊ +ᄋ +ᄌ +ᄍ +ᄎ +ᄏ +ᄐ +ᄑ +ᄒ +ᄓ +ᄔ +ᄕ +ᄖ +ᄗ +ᄘ +ᄙ +ᄚ +ᄛ +ᄜ +ᄝ +ᄞ +ᄟ +ᄠ +ᄡ +ᄢ +ᄣ +ᄤ +ᄥ +ᄦ +ᄧ +ᄨ +ᄩ +ᄪ +ᄫ +ᄬ +ᄭ +ᄮ +ᄯ +ᄰ +ᄱ +ᄲ +ᄳ +ᄴ +ᄵ +ᄶ +ᄷ +ᄸ +ᄹ +ᄺ +ᄻ +ᄼ +ᄽ +ᄾ +ᄿ +ᅀ +ᅁ +ᅂ +ᅃ +ᅄ +ᅅ +ᅆ +ᅇ +ᅈ +ᅉ +ᅊ +ᅋ +ᅌ +ᅍ +ᅎ +ᅏ +ᅐ +ᅑ +ᅒ +ᅓ +ᅔ +ᅕ +ᅖ +ᅗ +ᅘ +ᅙ +ᅡ +ᅢ +ᅣ +ᅤ +ᅥ +ᅦ +ᅧ +ᅨ +ᅩ +ᅪ +ᅫ +ᅬ +ᅭ +ᅮ +ᅯ +ᅰ +ᅱ +ᅲ +ᅳ +ᅴ +ᅵ +ᅶ +ᅷ +ᅸ +ᅹ +ᅺ +ᅻ +ᅼ +ᅽ +ᅾ +ᅿ +ᆀ +ᆁ +ᆂ +ᆃ +ᆄ +ᆅ +ᆆ +ᆇ +ᆈ +ᆉ +ᆊ +ᆋ +ᆌ +ᆍ +ᆎ +ᆏ +ᆐ +ᆑ +ᆒ +ᆓ +ᆔ +ᆕ +ᆖ +ᆗ +ᆘ +ᆙ +ᆚ +ᆛ +ᆜ +ᆝ +ᆞ +ᆟ +ᆠ +ᆡ +ᆢ +ᆨ +ᆩ +ᆪ +ᆫ +ᆬ +ᆭ +ᆮ +ᆯ +ᆰ +ᆱ +ᆲ +ᆳ +ᆴ +ᆵ +ᆶ +ᆷ +ᆸ +ᆹ +ᆺ +ᆻ +ᆼ +ᆽ +ᆾ +ᆿ +ᇀ +ᇁ +ᇂ +ᇃ +ᇄ +ᇅ +ᇆ +ᇇ +ᇈ +ᇉ +ᇊ +ᇋ +ᇌ +ᇍ +ᇎ +ᇏ +ᇐ +ᇑ +ᇒ +ᇓ +ᇔ +ᇕ +ᇖ +ᇗ +ᇘ +ᇙ +ᇚ +ᇛ +ᇜ +ᇝ +ᇞ +ᇟ +ᇠ +ᇡ +ᇢ +ᇣ +ᇤ +ᇥ +ᇦ +ᇧ +ᇨ +ᇩ +ᇪ +ᇫ +ᇬ +ᇭ +ᇮ +ᇯ +ᇰ +ᇱ +ᇲ +ᇳ +ᇴ +ᇵ +ᇶ +ᇷ +ᇸ +ᇹ +ㄱ +ㄲ +ㄳ +ㄴ +ㄵ +ㄶ +ㄷ +ㄸ +ㄹ +ㄺ +ㄻ +ㄼ +ㄽ +ㄾ +ㄿ +ㅀ +ㅁ +ㅂ +ㅃ +ㅄ +ㅅ +ㅆ +ㅇ +ㅈ +ㅉ +ㅊ +ㅋ +ㅌ +ㅍ +ㅎ +ㅏ +ㅐ +ㅑ +ㅒ +ㅓ +ㅔ +ㅕ +ㅖ +ㅗ +ㅘ +ㅙ +ㅚ +ㅛ +ㅜ +ㅝ +ㅞ +ㅟ +ㅠ +ㅡ +ㅢ +ㅣ +ㅤ +ㅥ +ㅦ +ㅧ +ㅨ +ㅩ +ㅪ +ㅫ +ㅬ +ㅭ +ㅮ +ㅯ +ㅰ +ㅱ +ㅲ +ㅳ +ㅴ +ㅵ +ㅶ +ㅷ +ㅸ +ㅹ +ㅺ +ㅻ +ㅼ +ㅽ +ㅾ +ㅿ +ㆀ +ㆁ +ㆂ +ㆃ +ㆄ +ㆅ +ㆆ +ㆇ +ㆈ +ㆉ +ㆊ +ㆋ +ㆌ +ㆍ +ㆎ +가 +각 +갂 +갃 +간 +갅 +갆 +갇 +갈 +갉 +갊 +갋 +갌 +갍 +갎 +갏 +감 +갑 +값 +갓 +갔 +강 +갖 +갗 +갘 +같 +갚 +갛 +개 +객 +갞 +갟 +갠 +갡 +갢 +갣 +갤 +갥 +갦 +갧 +갨 +갩 +갪 +갫 +갬 +갭 +갮 +갯 +갰 +갱 +갲 +갳 +갴 +갵 +갶 +갷 +갸 +갹 +갺 +갻 +갼 +갽 +갾 +갿 +걀 +걁 +걂 +걃 +걄 +걅 +걆 +걇 +걈 +걉 +걊 +걋 +걌 +걍 +걎 +걏 +걐 +걑 +걒 +걓 +걔 +걕 +걖 +걗 +걘 +걙 +걚 +걛 +걜 +걝 +걞 +걟 +걠 +걡 +걢 +걣 +걤 +걥 +걦 +걧 +걨 +걩 +걪 +걫 +걬 +걭 +걮 +걯 +거 +걱 +걲 +걳 +건 +걵 +걶 +걷 +걸 +걹 +걺 +걻 +걼 +걽 +걾 +걿 +검 +겁 +겂 +것 +겄 +겅 +겆 +겇 +겈 +겉 +겊 +겋 +게 +겍 +겎 +겏 +겐 +겑 +겒 +겓 +겔 +겕 +겖 +겗 +겘 +겙 +겚 +겛 +겜 +겝 +겞 +겟 +겠 +겡 +겢 +겣 +겤 +겥 +겦 +겧 +겨 +격 +겪 +겫 +견 +겭 +겮 +겯 +결 +겱 +겲 +겳 +겴 +겵 +겶 +겷 +겸 +겹 +겺 +겻 +겼 +경 +겾 +겿 +곀 +곁 +곂 +곃 +계 +곅 +곆 +곇 +곈 +곉 +곊 +곋 +곌 +곍 +곎 +곏 +곐 +곑 +곒 +곓 +곔 +곕 +곖 +곗 +곘 +곙 +곚 +곛 +곜 +곝 +곞 +곟 +고 +곡 +곢 +곣 +곤 +곥 +곦 +곧 +골 +곩 +곪 +곫 +곬 +곭 +곮 +곯 +곰 +곱 +곲 +곳 +곴 +공 +곶 +곷 +곸 +곹 +곺 +곻 +과 +곽 +곾 +곿 +관 +괁 +괂 +괃 +괄 +괅 +괆 +괇 +괈 +괉 +괊 +괋 +괌 +괍 +괎 +괏 +괐 +광 +괒 +괓 +괔 +괕 +괖 +괗 +괘 +괙 +괚 +괛 +괜 +괝 +괞 +괟 +괠 +괡 +괢 +괣 +괤 +괥 +괦 +괧 +괨 +괩 +괪 +괫 +괬 +괭 +괮 +괯 +괰 +괱 +괲 +괳 +괴 +괵 +괶 +괷 +괸 +괹 +괺 +괻 +괼 +괽 +괾 +괿 +굀 +굁 +굂 +굃 +굄 +굅 +굆 +굇 +굈 +굉 +굊 +굋 +굌 +굍 +굎 +굏 +교 +굑 +굒 +굓 +굔 +굕 +굖 +굗 +굘 +굙 +굚 +굛 +굜 +굝 +굞 +굟 +굠 +굡 +굢 +굣 +굤 +굥 +굦 +굧 +굨 +굩 +굪 +굫 +구 +국 +굮 +굯 +군 +굱 +굲 +굳 +굴 +굵 +굶 +굷 +굸 +굹 +굺 +굻 +굼 +굽 +굾 +굿 +궀 +궁 +궂 +궃 +궄 +궅 +궆 +궇 +궈 +궉 +궊 +궋 +권 +궍 +궎 +궏 +궐 +궑 +궒 +궓 +궔 +궕 +궖 +궗 +궘 +궙 +궚 +궛 +궜 +궝 +궞 +궟 +궠 +궡 +궢 +궣 +궤 +궥 +궦 +궧 +궨 +궩 +궪 +궫 +궬 +궭 +궮 +궯 +궰 +궱 +궲 +궳 +궴 +궵 +궶 +궷 +궸 +궹 +궺 +궻 +궼 +궽 +궾 +궿 +귀 +귁 +귂 +귃 +귄 +귅 +귆 +귇 +귈 +귉 +귊 +귋 +귌 +귍 +귎 +귏 +귐 +귑 +귒 +귓 +귔 +귕 +귖 +귗 +귘 +귙 +귚 +귛 +규 +귝 +귞 +귟 +균 +귡 +귢 +귣 +귤 +귥 +귦 +귧 +귨 +귩 +귪 +귫 +귬 +귭 +귮 +귯 +귰 +귱 +귲 +귳 +귴 +귵 +귶 +귷 +그 +극 +귺 +귻 +근 +귽 +귾 +귿 +글 +긁 +긂 +긃 +긄 +긅 +긆 +긇 +금 +급 +긊 +긋 +긌 +긍 +긎 +긏 +긐 +긑 +긒 +긓 +긔 +긕 +긖 +긗 +긘 +긙 +긚 +긛 +긜 +긝 +긞 +긟 +긠 +긡 +긢 +긣 +긤 +긥 +긦 +긧 +긨 +긩 +긪 +긫 +긬 +긭 +긮 +긯 +기 +긱 +긲 +긳 +긴 +긵 +긶 +긷 +길 +긹 +긺 +긻 +긼 +긽 +긾 +긿 +김 +깁 +깂 +깃 +깄 +깅 +깆 +깇 +깈 +깉 +깊 +깋 +까 +깍 +깎 +깏 +깐 +깑 +깒 +깓 +깔 +깕 +깖 +깗 +깘 +깙 +깚 +깛 +깜 +깝 +깞 +깟 +깠 +깡 +깢 +깣 +깤 +깥 +깦 +깧 +깨 +깩 +깪 +깫 +깬 +깭 +깮 +깯 +깰 +깱 +깲 +깳 +깴 +깵 +깶 +깷 +깸 +깹 +깺 +깻 +깼 +깽 +깾 +깿 +꺀 +꺁 +꺂 +꺃 +꺄 +꺅 +꺆 +꺇 +꺈 +꺉 +꺊 +꺋 +꺌 +꺍 +꺎 +꺏 +꺐 +꺑 +꺒 +꺓 +꺔 +꺕 +꺖 +꺗 +꺘 +꺙 +꺚 +꺛 +꺜 +꺝 +꺞 +꺟 +꺠 +꺡 +꺢 +꺣 +꺤 +꺥 +꺦 +꺧 +꺨 +꺩 +꺪 +꺫 +꺬 +꺭 +꺮 +꺯 +꺰 +꺱 +꺲 +꺳 +꺴 +꺵 +꺶 +꺷 +꺸 +꺹 +꺺 +꺻 +꺼 +꺽 +꺾 +꺿 +껀 +껁 +껂 +껃 +껄 +껅 +껆 +껇 +껈 +껉 +껊 +껋 +껌 +껍 +껎 +껏 +껐 +껑 +껒 +껓 +껔 +껕 +껖 +껗 +께 +껙 +껚 +껛 +껜 +껝 +껞 +껟 +껠 +껡 +껢 +껣 +껤 +껥 +껦 +껧 +껨 +껩 +껪 +껫 +껬 +껭 +껮 +껯 +껰 +껱 +껲 +껳 +껴 +껵 +껶 +껷 +껸 +껹 +껺 +껻 +껼 +껽 +껾 +껿 +꼀 +꼁 +꼂 +꼃 +꼄 +꼅 +꼆 +꼇 +꼈 +꼉 +꼊 +꼋 +꼌 +꼍 +꼎 +꼏 +꼐 +꼑 +꼒 +꼓 +꼔 +꼕 +꼖 +꼗 +꼘 +꼙 +꼚 +꼛 +꼜 +꼝 +꼞 +꼟 +꼠 +꼡 +꼢 +꼣 +꼤 +꼥 +꼦 +꼧 +꼨 +꼩 +꼪 +꼫 +꼬 +꼭 +꼮 +꼯 +꼰 +꼱 +꼲 +꼳 +꼴 +꼵 +꼶 +꼷 +꼸 +꼹 +꼺 +꼻 +꼼 +꼽 +꼾 +꼿 +꽀 +꽁 +꽂 +꽃 +꽄 +꽅 +꽆 +꽇 +꽈 +꽉 +꽊 +꽋 +꽌 +꽍 +꽎 +꽏 +꽐 +꽑 +꽒 +꽓 +꽔 +꽕 +꽖 +꽗 +꽘 +꽙 +꽚 +꽛 +꽜 +꽝 +꽞 +꽟 +꽠 +꽡 +꽢 +꽣 +꽤 +꽥 +꽦 +꽧 +꽨 +꽩 +꽪 +꽫 +꽬 +꽭 +꽮 +꽯 +꽰 +꽱 +꽲 +꽳 +꽴 +꽵 +꽶 +꽷 +꽸 +꽹 +꽺 +꽻 +꽼 +꽽 +꽾 +꽿 +꾀 +꾁 +꾂 +꾃 +꾄 +꾅 +꾆 +꾇 +꾈 +꾉 +꾊 +꾋 +꾌 +꾍 +꾎 +꾏 +꾐 +꾑 +꾒 +꾓 +꾔 +꾕 +꾖 +꾗 +꾘 +꾙 +꾚 +꾛 +꾜 +꾝 +꾞 +꾟 +꾠 +꾡 +꾢 +꾣 +꾤 +꾥 +꾦 +꾧 +꾨 +꾩 +꾪 +꾫 +꾬 +꾭 +꾮 +꾯 +꾰 +꾱 +꾲 +꾳 +꾴 +꾵 +꾶 +꾷 +꾸 +꾹 +꾺 +꾻 +꾼 +꾽 +꾾 +꾿 +꿀 +꿁 +꿂 +꿃 +꿄 +꿅 +꿆 +꿇 +꿈 +꿉 +꿊 +꿋 +꿌 +꿍 +꿎 +꿏 +꿐 +꿑 +꿒 +꿓 +꿔 +꿕 +꿖 +꿗 +꿘 +꿙 +꿚 +꿛 +꿜 +꿝 +꿞 +꿟 +꿠 +꿡 +꿢 +꿣 +꿤 +꿥 +꿦 +꿧 +꿨 +꿩 +꿪 +꿫 +꿬 +꿭 +꿮 +꿯 +꿰 +꿱 +꿲 +꿳 +꿴 +꿵 +꿶 +꿷 +꿸 +꿹 +꿺 +꿻 +꿼 +꿽 +꿾 +꿿 +뀀 +뀁 +뀂 +뀃 +뀄 +뀅 +뀆 +뀇 +뀈 +뀉 +뀊 +뀋 +뀌 +뀍 +뀎 +뀏 +뀐 +뀑 +뀒 +뀓 +뀔 +뀕 +뀖 +뀗 +뀘 +뀙 +뀚 +뀛 +뀜 +뀝 +뀞 +뀟 +뀠 +뀡 +뀢 +뀣 +뀤 +뀥 +뀦 +뀧 +뀨 +뀩 +뀪 +뀫 +뀬 +뀭 +뀮 +뀯 +뀰 +뀱 +뀲 +뀳 +뀴 +뀵 +뀶 +뀷 +뀸 +뀹 +뀺 +뀻 +뀼 +뀽 +뀾 +뀿 +끀 +끁 +끂 +끃 +끄 +끅 +끆 +끇 +끈 +끉 +끊 +끋 +끌 +끍 +끎 +끏 +끐 +끑 +끒 +끓 +끔 +끕 +끖 +끗 +끘 +끙 +끚 +끛 +끜 +끝 +끞 +끟 +끠 +끡 +끢 +끣 +끤 +끥 +끦 +끧 +끨 +끩 +끪 +끫 +끬 +끭 +끮 +끯 +끰 +끱 +끲 +끳 +끴 +끵 +끶 +끷 +끸 +끹 +끺 +끻 +끼 +끽 +끾 +끿 +낀 +낁 +낂 +낃 +낄 +낅 +낆 +낇 +낈 +낉 +낊 +낋 +낌 +낍 +낎 +낏 +낐 +낑 +낒 +낓 +낔 +낕 +낖 +낗 +나 +낙 +낚 +낛 +난 +낝 +낞 +낟 +날 +낡 +낢 +낣 +낤 +낥 +낦 +낧 +남 +납 +낪 +낫 +났 +낭 +낮 +낯 +낰 +낱 +낲 +낳 +내 +낵 +낶 +낷 +낸 +낹 +낺 +낻 +낼 +낽 +낾 +낿 +냀 +냁 +냂 +냃 +냄 +냅 +냆 +냇 +냈 +냉 +냊 +냋 +냌 +냍 +냎 +냏 +냐 +냑 +냒 +냓 +냔 +냕 +냖 +냗 +냘 +냙 +냚 +냛 +냜 +냝 +냞 +냟 +냠 +냡 +냢 +냣 +냤 +냥 +냦 +냧 +냨 +냩 +냪 +냫 +냬 +냭 +냮 +냯 +냰 +냱 +냲 +냳 +냴 +냵 +냶 +냷 +냸 +냹 +냺 +냻 +냼 +냽 +냾 +냿 +넀 +넁 +넂 +넃 +넄 +넅 +넆 +넇 +너 +넉 +넊 +넋 +넌 +넍 +넎 +넏 +널 +넑 +넒 +넓 +넔 +넕 +넖 +넗 +넘 +넙 +넚 +넛 +넜 +넝 +넞 +넟 +넠 +넡 +넢 +넣 +네 +넥 +넦 +넧 +넨 +넩 +넪 +넫 +넬 +넭 +넮 +넯 +넰 +넱 +넲 +넳 +넴 +넵 +넶 +넷 +넸 +넹 +넺 +넻 +넼 +넽 +넾 +넿 +녀 +녁 +녂 +녃 +년 +녅 +녆 +녇 +녈 +녉 +녊 +녋 +녌 +녍 +녎 +녏 +념 +녑 +녒 +녓 +녔 +녕 +녖 +녗 +녘 +녙 +녚 +녛 +녜 +녝 +녞 +녟 +녠 +녡 +녢 +녣 +녤 +녥 +녦 +녧 +녨 +녩 +녪 +녫 +녬 +녭 +녮 +녯 +녰 +녱 +녲 +녳 +녴 +녵 +녶 +녷 +노 +녹 +녺 +녻 +논 +녽 +녾 +녿 +놀 +놁 +놂 +놃 +놄 +놅 +놆 +놇 +놈 +놉 +놊 +놋 +놌 +농 +놎 +놏 +놐 +놑 +높 +놓 +놔 +놕 +놖 +놗 +놘 +놙 +놚 +놛 +놜 +놝 +놞 +놟 +놠 +놡 +놢 +놣 +놤 +놥 +놦 +놧 +놨 +놩 +놪 +놫 +놬 +놭 +놮 +놯 +놰 +놱 +놲 +놳 +놴 +놵 +놶 +놷 +놸 +놹 +놺 +놻 +놼 +놽 +놾 +놿 +뇀 +뇁 +뇂 +뇃 +뇄 +뇅 +뇆 +뇇 +뇈 +뇉 +뇊 +뇋 +뇌 +뇍 +뇎 +뇏 +뇐 +뇑 +뇒 +뇓 +뇔 +뇕 +뇖 +뇗 +뇘 +뇙 +뇚 +뇛 +뇜 +뇝 +뇞 +뇟 +뇠 +뇡 +뇢 +뇣 +뇤 +뇥 +뇦 +뇧 +뇨 +뇩 +뇪 +뇫 +뇬 +뇭 +뇮 +뇯 +뇰 +뇱 +뇲 +뇳 +뇴 +뇵 +뇶 +뇷 +뇸 +뇹 +뇺 +뇻 +뇼 +뇽 +뇾 +뇿 +눀 +눁 +눂 +눃 +누 +눅 +눆 +눇 +눈 +눉 +눊 +눋 +눌 +눍 +눎 +눏 +눐 +눑 +눒 +눓 +눔 +눕 +눖 +눗 +눘 +눙 +눚 +눛 +눜 +눝 +눞 +눟 +눠 +눡 +눢 +눣 +눤 +눥 +눦 +눧 +눨 +눩 +눪 +눫 +눬 +눭 +눮 +눯 +눰 +눱 +눲 +눳 +눴 +눵 +눶 +눷 +눸 +눹 +눺 +눻 +눼 +눽 +눾 +눿 +뉀 +뉁 +뉂 +뉃 +뉄 +뉅 +뉆 +뉇 +뉈 +뉉 +뉊 +뉋 +뉌 +뉍 +뉎 +뉏 +뉐 +뉑 +뉒 +뉓 +뉔 +뉕 +뉖 +뉗 +뉘 +뉙 +뉚 +뉛 +뉜 +뉝 +뉞 +뉟 +뉠 +뉡 +뉢 +뉣 +뉤 +뉥 +뉦 +뉧 +뉨 +뉩 +뉪 +뉫 +뉬 +뉭 +뉮 +뉯 +뉰 +뉱 +뉲 +뉳 +뉴 +뉵 +뉶 +뉷 +뉸 +뉹 +뉺 +뉻 +뉼 +뉽 +뉾 +뉿 +늀 +늁 +늂 +늃 +늄 +늅 +늆 +늇 +늈 +늉 +늊 +늋 +늌 +늍 +늎 +늏 +느 +늑 +늒 +늓 +는 +늕 +늖 +늗 +늘 +늙 +늚 +늛 +늜 +늝 +늞 +늟 +늠 +늡 +늢 +늣 +늤 +능 +늦 +늧 +늨 +늩 +늪 +늫 +늬 +늭 +늮 +늯 +늰 +늱 +늲 +늳 +늴 +늵 +늶 +늷 +늸 +늹 +늺 +늻 +늼 +늽 +늾 +늿 +닀 +닁 +닂 +닃 +닄 +닅 +닆 +닇 +니 +닉 +닊 +닋 +닌 +닍 +닎 +닏 +닐 +닑 +닒 +닓 +닔 +닕 +닖 +닗 +님 +닙 +닚 +닛 +닜 +닝 +닞 +닟 +닠 +닡 +닢 +닣 +다 +닥 +닦 +닧 +단 +닩 +닪 +닫 +달 +닭 +닮 +닯 +닰 +닱 +닲 +닳 +담 +답 +닶 +닷 +닸 +당 +닺 +닻 +닼 +닽 +닾 +닿 +대 +댁 +댂 +댃 +댄 +댅 +댆 +댇 +댈 +댉 +댊 +댋 +댌 +댍 +댎 +댏 +댐 +댑 +댒 +댓 +댔 +댕 +댖 +댗 +댘 +댙 +댚 +댛 +댜 +댝 +댞 +댟 +댠 +댡 +댢 +댣 +댤 +댥 +댦 +댧 +댨 +댩 +댪 +댫 +댬 +댭 +댮 +댯 +댰 +댱 +댲 +댳 +댴 +댵 +댶 +댷 +댸 +댹 +댺 +댻 +댼 +댽 +댾 +댿 +덀 +덁 +덂 +덃 +덄 +덅 +덆 +덇 +덈 +덉 +덊 +덋 +덌 +덍 +덎 +덏 +덐 +덑 +덒 +덓 +더 +덕 +덖 +덗 +던 +덙 +덚 +덛 +덜 +덝 +덞 +덟 +덠 +덡 +덢 +덣 +덤 +덥 +덦 +덧 +덨 +덩 +덪 +덫 +덬 +덭 +덮 +덯 +데 +덱 +덲 +덳 +덴 +덵 +덶 +덷 +델 +덹 +덺 +덻 +덼 +덽 +덾 +덿 +뎀 +뎁 +뎂 +뎃 +뎄 +뎅 +뎆 +뎇 +뎈 +뎉 +뎊 +뎋 +뎌 +뎍 +뎎 +뎏 +뎐 +뎑 +뎒 +뎓 +뎔 +뎕 +뎖 +뎗 +뎘 +뎙 +뎚 +뎛 +뎜 +뎝 +뎞 +뎟 +뎠 +뎡 +뎢 +뎣 +뎤 +뎥 +뎦 +뎧 +뎨 +뎩 +뎪 +뎫 +뎬 +뎭 +뎮 +뎯 +뎰 +뎱 +뎲 +뎳 +뎴 +뎵 +뎶 +뎷 +뎸 +뎹 +뎺 +뎻 +뎼 +뎽 +뎾 +뎿 +돀 +돁 +돂 +돃 +도 +독 +돆 +돇 +돈 +돉 +돊 +돋 +돌 +돍 +돎 +돏 +돐 +돑 +돒 +돓 +돔 +돕 +돖 +돗 +돘 +동 +돚 +돛 +돜 +돝 +돞 +돟 +돠 +돡 +돢 +돣 +돤 +돥 +돦 +돧 +돨 +돩 +돪 +돫 +돬 +돭 +돮 +돯 +돰 +돱 +돲 +돳 +돴 +돵 +돶 +돷 +돸 +돹 +돺 +돻 +돼 +돽 +돾 +돿 +됀 +됁 +됂 +됃 +됄 +됅 +됆 +됇 +됈 +됉 +됊 +됋 +됌 +됍 +됎 +됏 +됐 +됑 +됒 +됓 +됔 +됕 +됖 +됗 +되 +됙 +됚 +됛 +된 +됝 +됞 +됟 +될 +됡 +됢 +됣 +됤 +됥 +됦 +됧 +됨 +됩 +됪 +됫 +됬 +됭 +됮 +됯 +됰 +됱 +됲 +됳 +됴 +됵 +됶 +됷 +됸 +됹 +됺 +됻 +됼 +됽 +됾 +됿 +둀 +둁 +둂 +둃 +둄 +둅 +둆 +둇 +둈 +둉 +둊 +둋 +둌 +둍 +둎 +둏 +두 +둑 +둒 +둓 +둔 +둕 +둖 +둗 +둘 +둙 +둚 +둛 +둜 +둝 +둞 +둟 +둠 +둡 +둢 +둣 +둤 +둥 +둦 +둧 +둨 +둩 +둪 +둫 +둬 +둭 +둮 +둯 +둰 +둱 +둲 +둳 +둴 +둵 +둶 +둷 +둸 +둹 +둺 +둻 +둼 +둽 +둾 +둿 +뒀 +뒁 +뒂 +뒃 +뒄 +뒅 +뒆 +뒇 +뒈 +뒉 +뒊 +뒋 +뒌 +뒍 +뒎 +뒏 +뒐 +뒑 +뒒 +뒓 +뒔 +뒕 +뒖 +뒗 +뒘 +뒙 +뒚 +뒛 +뒜 +뒝 +뒞 +뒟 +뒠 +뒡 +뒢 +뒣 +뒤 +뒥 +뒦 +뒧 +뒨 +뒩 +뒪 +뒫 +뒬 +뒭 +뒮 +뒯 +뒰 +뒱 +뒲 +뒳 +뒴 +뒵 +뒶 +뒷 +뒸 +뒹 +뒺 +뒻 +뒼 +뒽 +뒾 +뒿 +듀 +듁 +듂 +듃 +듄 +듅 +듆 +듇 +듈 +듉 +듊 +듋 +듌 +듍 +듎 +듏 +듐 +듑 +듒 +듓 +듔 +듕 +듖 +듗 +듘 +듙 +듚 +듛 +드 +득 +듞 +듟 +든 +듡 +듢 +듣 +들 +듥 +듦 +듧 +듨 +듩 +듪 +듫 +듬 +듭 +듮 +듯 +듰 +등 +듲 +듳 +듴 +듵 +듶 +듷 +듸 +듹 +듺 +듻 +듼 +듽 +듾 +듿 +딀 +딁 +딂 +딃 +딄 +딅 +딆 +딇 +딈 +딉 +딊 +딋 +딌 +딍 +딎 +딏 +딐 +딑 +딒 +딓 +디 +딕 +딖 +딗 +딘 +딙 +딚 +딛 +딜 +딝 +딞 +딟 +딠 +딡 +딢 +딣 +딤 +딥 +딦 +딧 +딨 +딩 +딪 +딫 +딬 +딭 +딮 +딯 +따 +딱 +딲 +딳 +딴 +딵 +딶 +딷 +딸 +딹 +딺 +딻 +딼 +딽 +딾 +딿 +땀 +땁 +땂 +땃 +땄 +땅 +땆 +땇 +땈 +땉 +땊 +땋 +때 +땍 +땎 +땏 +땐 +땑 +땒 +땓 +땔 +땕 +땖 +땗 +땘 +땙 +땚 +땛 +땜 +땝 +땞 +땟 +땠 +땡 +땢 +땣 +땤 +땥 +땦 +땧 +땨 +땩 +땪 +땫 +땬 +땭 +땮 +땯 +땰 +땱 +땲 +땳 +땴 +땵 +땶 +땷 +땸 +땹 +땺 +땻 +땼 +땽 +땾 +땿 +떀 +떁 +떂 +떃 +떄 +떅 +떆 +떇 +떈 +떉 +떊 +떋 +떌 +떍 +떎 +떏 +떐 +떑 +떒 +떓 +떔 +떕 +떖 +떗 +떘 +떙 +떚 +떛 +떜 +떝 +떞 +떟 +떠 +떡 +떢 +떣 +떤 +떥 +떦 +떧 +떨 +떩 +떪 +떫 +떬 +떭 +떮 +떯 +떰 +떱 +떲 +떳 +떴 +떵 +떶 +떷 +떸 +떹 +떺 +떻 +떼 +떽 +떾 +떿 +뗀 +뗁 +뗂 +뗃 +뗄 +뗅 +뗆 +뗇 +뗈 +뗉 +뗊 +뗋 +뗌 +뗍 +뗎 +뗏 +뗐 +뗑 +뗒 +뗓 +뗔 +뗕 +뗖 +뗗 +뗘 +뗙 +뗚 +뗛 +뗜 +뗝 +뗞 +뗟 +뗠 +뗡 +뗢 +뗣 +뗤 +뗥 +뗦 +뗧 +뗨 +뗩 +뗪 +뗫 +뗬 +뗭 +뗮 +뗯 +뗰 +뗱 +뗲 +뗳 +뗴 +뗵 +뗶 +뗷 +뗸 +뗹 +뗺 +뗻 +뗼 +뗽 +뗾 +뗿 +똀 +똁 +똂 +똃 +똄 +똅 +똆 +똇 +똈 +똉 +똊 +똋 +똌 +똍 +똎 +똏 +또 +똑 +똒 +똓 +똔 +똕 +똖 +똗 +똘 +똙 +똚 +똛 +똜 +똝 +똞 +똟 +똠 +똡 +똢 +똣 +똤 +똥 +똦 +똧 +똨 +똩 +똪 +똫 +똬 +똭 +똮 +똯 +똰 +똱 +똲 +똳 +똴 +똵 +똶 +똷 +똸 +똹 +똺 +똻 +똼 +똽 +똾 +똿 +뙀 +뙁 +뙂 +뙃 +뙄 +뙅 +뙆 +뙇 +뙈 +뙉 +뙊 +뙋 +뙌 +뙍 +뙎 +뙏 +뙐 +뙑 +뙒 +뙓 +뙔 +뙕 +뙖 +뙗 +뙘 +뙙 +뙚 +뙛 +뙜 +뙝 +뙞 +뙟 +뙠 +뙡 +뙢 +뙣 +뙤 +뙥 +뙦 +뙧 +뙨 +뙩 +뙪 +뙫 +뙬 +뙭 +뙮 +뙯 +뙰 +뙱 +뙲 +뙳 +뙴 +뙵 +뙶 +뙷 +뙸 +뙹 +뙺 +뙻 +뙼 +뙽 +뙾 +뙿 +뚀 +뚁 +뚂 +뚃 +뚄 +뚅 +뚆 +뚇 +뚈 +뚉 +뚊 +뚋 +뚌 +뚍 +뚎 +뚏 +뚐 +뚑 +뚒 +뚓 +뚔 +뚕 +뚖 +뚗 +뚘 +뚙 +뚚 +뚛 +뚜 +뚝 +뚞 +뚟 +뚠 +뚡 +뚢 +뚣 +뚤 +뚥 +뚦 +뚧 +뚨 +뚩 +뚪 +뚫 +뚬 +뚭 +뚮 +뚯 +뚰 +뚱 +뚲 +뚳 +뚴 +뚵 +뚶 +뚷 +뚸 +뚹 +뚺 +뚻 +뚼 +뚽 +뚾 +뚿 +뛀 +뛁 +뛂 +뛃 +뛄 +뛅 +뛆 +뛇 +뛈 +뛉 +뛊 +뛋 +뛌 +뛍 +뛎 +뛏 +뛐 +뛑 +뛒 +뛓 +뛔 +뛕 +뛖 +뛗 +뛘 +뛙 +뛚 +뛛 +뛜 +뛝 +뛞 +뛟 +뛠 +뛡 +뛢 +뛣 +뛤 +뛥 +뛦 +뛧 +뛨 +뛩 +뛪 +뛫 +뛬 +뛭 +뛮 +뛯 +뛰 +뛱 +뛲 +뛳 +뛴 +뛵 +뛶 +뛷 +뛸 +뛹 +뛺 +뛻 +뛼 +뛽 +뛾 +뛿 +뜀 +뜁 +뜂 +뜃 +뜄 +뜅 +뜆 +뜇 +뜈 +뜉 +뜊 +뜋 +뜌 +뜍 +뜎 +뜏 +뜐 +뜑 +뜒 +뜓 +뜔 +뜕 +뜖 +뜗 +뜘 +뜙 +뜚 +뜛 +뜜 +뜝 +뜞 +뜟 +뜠 +뜡 +뜢 +뜣 +뜤 +뜥 +뜦 +뜧 +뜨 +뜩 +뜪 +뜫 +뜬 +뜭 +뜮 +뜯 +뜰 +뜱 +뜲 +뜳 +뜴 +뜵 +뜶 +뜷 +뜸 +뜹 +뜺 +뜻 +뜼 +뜽 +뜾 +뜿 +띀 +띁 +띂 +띃 +띄 +띅 +띆 +띇 +띈 +띉 +띊 +띋 +띌 +띍 +띎 +띏 +띐 +띑 +띒 +띓 +띔 +띕 +띖 +띗 +띘 +띙 +띚 +띛 +띜 +띝 +띞 +띟 +띠 +띡 +띢 +띣 +띤 +띥 +띦 +띧 +띨 +띩 +띪 +띫 +띬 +띭 +띮 +띯 +띰 +띱 +띲 +띳 +띴 +띵 +띶 +띷 +띸 +띹 +띺 +띻 +라 +락 +띾 +띿 +란 +랁 +랂 +랃 +랄 +랅 +랆 +랇 +랈 +랉 +랊 +랋 +람 +랍 +랎 +랏 +랐 +랑 +랒 +랓 +랔 +랕 +랖 +랗 +래 +랙 +랚 +랛 +랜 +랝 +랞 +랟 +랠 +랡 +랢 +랣 +랤 +랥 +랦 +랧 +램 +랩 +랪 +랫 +랬 +랭 +랮 +랯 +랰 +랱 +랲 +랳 +랴 +략 +랶 +랷 +랸 +랹 +랺 +랻 +랼 +랽 +랾 +랿 +럀 +럁 +럂 +럃 +럄 +럅 +럆 +럇 +럈 +량 +럊 +럋 +럌 +럍 +럎 +럏 +럐 +럑 +럒 +럓 +럔 +럕 +럖 +럗 +럘 +럙 +럚 +럛 +럜 +럝 +럞 +럟 +럠 +럡 +럢 +럣 +럤 +럥 +럦 +럧 +럨 +럩 +럪 +럫 +러 +럭 +럮 +럯 +런 +럱 +럲 +럳 +럴 +럵 +럶 +럷 +럸 +럹 +럺 +럻 +럼 +럽 +럾 +럿 +렀 +렁 +렂 +렃 +렄 +렅 +렆 +렇 +레 +렉 +렊 +렋 +렌 +렍 +렎 +렏 +렐 +렑 +렒 +렓 +렔 +렕 +렖 +렗 +렘 +렙 +렚 +렛 +렜 +렝 +렞 +렟 +렠 +렡 +렢 +렣 +려 +력 +렦 +렧 +련 +렩 +렪 +렫 +렬 +렭 +렮 +렯 +렰 +렱 +렲 +렳 +렴 +렵 +렶 +렷 +렸 +령 +렺 +렻 +렼 +렽 +렾 +렿 +례 +롁 +롂 +롃 +롄 +롅 +롆 +롇 +롈 +롉 +롊 +롋 +롌 +롍 +롎 +롏 +롐 +롑 +롒 +롓 +롔 +롕 +롖 +롗 +롘 +롙 +롚 +롛 +로 +록 +롞 +롟 +론 +롡 +롢 +롣 +롤 +롥 +롦 +롧 +롨 +롩 +롪 +롫 +롬 +롭 +롮 +롯 +롰 +롱 +롲 +롳 +롴 +롵 +롶 +롷 +롸 +롹 +롺 +롻 +롼 +롽 +롾 +롿 +뢀 +뢁 +뢂 +뢃 +뢄 +뢅 +뢆 +뢇 +뢈 +뢉 +뢊 +뢋 +뢌 +뢍 +뢎 +뢏 +뢐 +뢑 +뢒 +뢓 +뢔 +뢕 +뢖 +뢗 +뢘 +뢙 +뢚 +뢛 +뢜 +뢝 +뢞 +뢟 +뢠 +뢡 +뢢 +뢣 +뢤 +뢥 +뢦 +뢧 +뢨 +뢩 +뢪 +뢫 +뢬 +뢭 +뢮 +뢯 +뢰 +뢱 +뢲 +뢳 +뢴 +뢵 +뢶 +뢷 +뢸 +뢹 +뢺 +뢻 +뢼 +뢽 +뢾 +뢿 +룀 +룁 +룂 +룃 +룄 +룅 +룆 +룇 +룈 +룉 +룊 +룋 +료 +룍 +룎 +룏 +룐 +룑 +룒 +룓 +룔 +룕 +룖 +룗 +룘 +룙 +룚 +룛 +룜 +룝 +룞 +룟 +룠 +룡 +룢 +룣 +룤 +룥 +룦 +룧 +루 +룩 +룪 +룫 +룬 +룭 +룮 +룯 +룰 +룱 +룲 +룳 +룴 +룵 +룶 +룷 +룸 +룹 +룺 +룻 +룼 +룽 +룾 +룿 +뤀 +뤁 +뤂 +뤃 +뤄 +뤅 +뤆 +뤇 +뤈 +뤉 +뤊 +뤋 +뤌 +뤍 +뤎 +뤏 +뤐 +뤑 +뤒 +뤓 +뤔 +뤕 +뤖 +뤗 +뤘 +뤙 +뤚 +뤛 +뤜 +뤝 +뤞 +뤟 +뤠 +뤡 +뤢 +뤣 +뤤 +뤥 +뤦 +뤧 +뤨 +뤩 +뤪 +뤫 +뤬 +뤭 +뤮 +뤯 +뤰 +뤱 +뤲 +뤳 +뤴 +뤵 +뤶 +뤷 +뤸 +뤹 +뤺 +뤻 +뤼 +뤽 +뤾 +뤿 +륀 +륁 +륂 +륃 +륄 +륅 +륆 +륇 +륈 +륉 +륊 +륋 +륌 +륍 +륎 +륏 +륐 +륑 +륒 +륓 +륔 +륕 +륖 +륗 +류 +륙 +륚 +륛 +륜 +륝 +륞 +륟 +률 +륡 +륢 +륣 +륤 +륥 +륦 +륧 +륨 +륩 +륪 +륫 +륬 +륭 +륮 +륯 +륰 +륱 +륲 +륳 +르 +륵 +륶 +륷 +른 +륹 +륺 +륻 +를 +륽 +륾 +륿 +릀 +릁 +릂 +릃 +름 +릅 +릆 +릇 +릈 +릉 +릊 +릋 +릌 +릍 +릎 +릏 +릐 +릑 +릒 +릓 +릔 +릕 +릖 +릗 +릘 +릙 +릚 +릛 +릜 +릝 +릞 +릟 +릠 +릡 +릢 +릣 +릤 +릥 +릦 +릧 +릨 +릩 +릪 +릫 +리 +릭 +릮 +릯 +린 +릱 +릲 +릳 +릴 +릵 +릶 +릷 +릸 +릹 +릺 +릻 +림 +립 +릾 +릿 +맀 +링 +맂 +맃 +맄 +맅 +맆 +맇 +마 +막 +맊 +맋 +만 +맍 +많 +맏 +말 +맑 +맒 +맓 +맔 +맕 +맖 +맗 +맘 +맙 +맚 +맛 +맜 +망 +맞 +맟 +맠 +맡 +맢 +맣 +매 +맥 +맦 +맧 +맨 +맩 +맪 +맫 +맬 +맭 +맮 +맯 +맰 +맱 +맲 +맳 +맴 +맵 +맶 +맷 +맸 +맹 +맺 +맻 +맼 +맽 +맾 +맿 +먀 +먁 +먂 +먃 +먄 +먅 +먆 +먇 +먈 +먉 +먊 +먋 +먌 +먍 +먎 +먏 +먐 +먑 +먒 +먓 +먔 +먕 +먖 +먗 +먘 +먙 +먚 +먛 +먜 +먝 +먞 +먟 +먠 +먡 +먢 +먣 +먤 +먥 +먦 +먧 +먨 +먩 +먪 +먫 +먬 +먭 +먮 +먯 +먰 +먱 +먲 +먳 +먴 +먵 +먶 +먷 +머 +먹 +먺 +먻 +먼 +먽 +먾 +먿 +멀 +멁 +멂 +멃 +멄 +멅 +멆 +멇 +멈 +멉 +멊 +멋 +멌 +멍 +멎 +멏 +멐 +멑 +멒 +멓 +메 +멕 +멖 +멗 +멘 +멙 +멚 +멛 +멜 +멝 +멞 +멟 +멠 +멡 +멢 +멣 +멤 +멥 +멦 +멧 +멨 +멩 +멪 +멫 +멬 +멭 +멮 +멯 +며 +멱 +멲 +멳 +면 +멵 +멶 +멷 +멸 +멹 +멺 +멻 +멼 +멽 +멾 +멿 +몀 +몁 +몂 +몃 +몄 +명 +몆 +몇 +몈 +몉 +몊 +몋 +몌 +몍 +몎 +몏 +몐 +몑 +몒 +몓 +몔 +몕 +몖 +몗 +몘 +몙 +몚 +몛 +몜 +몝 +몞 +몟 +몠 +몡 +몢 +몣 +몤 +몥 +몦 +몧 +모 +목 +몪 +몫 +몬 +몭 +몮 +몯 +몰 +몱 +몲 +몳 +몴 +몵 +몶 +몷 +몸 +몹 +몺 +못 +몼 +몽 +몾 +몿 +뫀 +뫁 +뫂 +뫃 +뫄 +뫅 +뫆 +뫇 +뫈 +뫉 +뫊 +뫋 +뫌 +뫍 +뫎 +뫏 +뫐 +뫑 +뫒 +뫓 +뫔 +뫕 +뫖 +뫗 +뫘 +뫙 +뫚 +뫛 +뫜 +뫝 +뫞 +뫟 +뫠 +뫡 +뫢 +뫣 +뫤 +뫥 +뫦 +뫧 +뫨 +뫩 +뫪 +뫫 +뫬 +뫭 +뫮 +뫯 +뫰 +뫱 +뫲 +뫳 +뫴 +뫵 +뫶 +뫷 +뫸 +뫹 +뫺 +뫻 +뫼 +뫽 +뫾 +뫿 +묀 +묁 +묂 +묃 +묄 +묅 +묆 +묇 +묈 +묉 +묊 +묋 +묌 +묍 +묎 +묏 +묐 +묑 +묒 +묓 +묔 +묕 +묖 +묗 +묘 +묙 +묚 +묛 +묜 +묝 +묞 +묟 +묠 +묡 +묢 +묣 +묤 +묥 +묦 +묧 +묨 +묩 +묪 +묫 +묬 +묭 +묮 +묯 +묰 +묱 +묲 +묳 +무 +묵 +묶 +묷 +문 +묹 +묺 +묻 +물 +묽 +묾 +묿 +뭀 +뭁 +뭂 +뭃 +뭄 +뭅 +뭆 +뭇 +뭈 +뭉 +뭊 +뭋 +뭌 +뭍 +뭎 +뭏 +뭐 +뭑 +뭒 +뭓 +뭔 +뭕 +뭖 +뭗 +뭘 +뭙 +뭚 +뭛 +뭜 +뭝 +뭞 +뭟 +뭠 +뭡 +뭢 +뭣 +뭤 +뭥 +뭦 +뭧 +뭨 +뭩 +뭪 +뭫 +뭬 +뭭 +뭮 +뭯 +뭰 +뭱 +뭲 +뭳 +뭴 +뭵 +뭶 +뭷 +뭸 +뭹 +뭺 +뭻 +뭼 +뭽 +뭾 +뭿 +뮀 +뮁 +뮂 +뮃 +뮄 +뮅 +뮆 +뮇 +뮈 +뮉 +뮊 +뮋 +뮌 +뮍 +뮎 +뮏 +뮐 +뮑 +뮒 +뮓 +뮔 +뮕 +뮖 +뮗 +뮘 +뮙 +뮚 +뮛 +뮜 +뮝 +뮞 +뮟 +뮠 +뮡 +뮢 +뮣 +뮤 +뮥 +뮦 +뮧 +뮨 +뮩 +뮪 +뮫 +뮬 +뮭 +뮮 +뮯 +뮰 +뮱 +뮲 +뮳 +뮴 +뮵 +뮶 +뮷 +뮸 +뮹 +뮺 +뮻 +뮼 +뮽 +뮾 +뮿 +므 +믁 +믂 +믃 +믄 +믅 +믆 +믇 +믈 +믉 +믊 +믋 +믌 +믍 +믎 +믏 +믐 +믑 +믒 +믓 +믔 +믕 +믖 +믗 +믘 +믙 +믚 +믛 +믜 +믝 +믞 +믟 +믠 +믡 +믢 +믣 +믤 +믥 +믦 +믧 +믨 +믩 +믪 +믫 +믬 +믭 +믮 +믯 +믰 +믱 +믲 +믳 +믴 +믵 +믶 +믷 +미 +믹 +믺 +믻 +민 +믽 +믾 +믿 +밀 +밁 +밂 +밃 +밄 +밅 +밆 +밇 +밈 +밉 +밊 +밋 +밌 +밍 +밎 +및 +밐 +밑 +밒 +밓 +바 +박 +밖 +밗 +반 +밙 +밚 +받 +발 +밝 +밞 +밟 +밠 +밡 +밢 +밣 +밤 +밥 +밦 +밧 +밨 +방 +밪 +밫 +밬 +밭 +밮 +밯 +배 +백 +밲 +밳 +밴 +밵 +밶 +밷 +밸 +밹 +밺 +밻 +밼 +밽 +밾 +밿 +뱀 +뱁 +뱂 +뱃 +뱄 +뱅 +뱆 +뱇 +뱈 +뱉 +뱊 +뱋 +뱌 +뱍 +뱎 +뱏 +뱐 +뱑 +뱒 +뱓 +뱔 +뱕 +뱖 +뱗 +뱘 +뱙 +뱚 +뱛 +뱜 +뱝 +뱞 +뱟 +뱠 +뱡 +뱢 +뱣 +뱤 +뱥 +뱦 +뱧 +뱨 +뱩 +뱪 +뱫 +뱬 +뱭 +뱮 +뱯 +뱰 +뱱 +뱲 +뱳 +뱴 +뱵 +뱶 +뱷 +뱸 +뱹 +뱺 +뱻 +뱼 +뱽 +뱾 +뱿 +벀 +벁 +벂 +벃 +버 +벅 +벆 +벇 +번 +벉 +벊 +벋 +벌 +벍 +벎 +벏 +벐 +벑 +벒 +벓 +범 +법 +벖 +벗 +벘 +벙 +벚 +벛 +벜 +벝 +벞 +벟 +베 +벡 +벢 +벣 +벤 +벥 +벦 +벧 +벨 +벩 +벪 +벫 +벬 +벭 +벮 +벯 +벰 +벱 +벲 +벳 +벴 +벵 +벶 +벷 +벸 +벹 +벺 +벻 +벼 +벽 +벾 +벿 +변 +볁 +볂 +볃 +별 +볅 +볆 +볇 +볈 +볉 +볊 +볋 +볌 +볍 +볎 +볏 +볐 +병 +볒 +볓 +볔 +볕 +볖 +볗 +볘 +볙 +볚 +볛 +볜 +볝 +볞 +볟 +볠 +볡 +볢 +볣 +볤 +볥 +볦 +볧 +볨 +볩 +볪 +볫 +볬 +볭 +볮 +볯 +볰 +볱 +볲 +볳 +보 +복 +볶 +볷 +본 +볹 +볺 +볻 +볼 +볽 +볾 +볿 +봀 +봁 +봂 +봃 +봄 +봅 +봆 +봇 +봈 +봉 +봊 +봋 +봌 +봍 +봎 +봏 +봐 +봑 +봒 +봓 +봔 +봕 +봖 +봗 +봘 +봙 +봚 +봛 +봜 +봝 +봞 +봟 +봠 +봡 +봢 +봣 +봤 +봥 +봦 +봧 +봨 +봩 +봪 +봫 +봬 +봭 +봮 +봯 +봰 +봱 +봲 +봳 +봴 +봵 +봶 +봷 +봸 +봹 +봺 +봻 +봼 +봽 +봾 +봿 +뵀 +뵁 +뵂 +뵃 +뵄 +뵅 +뵆 +뵇 +뵈 +뵉 +뵊 +뵋 +뵌 +뵍 +뵎 +뵏 +뵐 +뵑 +뵒 +뵓 +뵔 +뵕 +뵖 +뵗 +뵘 +뵙 +뵚 +뵛 +뵜 +뵝 +뵞 +뵟 +뵠 +뵡 +뵢 +뵣 +뵤 +뵥 +뵦 +뵧 +뵨 +뵩 +뵪 +뵫 +뵬 +뵭 +뵮 +뵯 +뵰 +뵱 +뵲 +뵳 +뵴 +뵵 +뵶 +뵷 +뵸 +뵹 +뵺 +뵻 +뵼 +뵽 +뵾 +뵿 +부 +북 +붂 +붃 +분 +붅 +붆 +붇 +불 +붉 +붊 +붋 +붌 +붍 +붎 +붏 +붐 +붑 +붒 +붓 +붔 +붕 +붖 +붗 +붘 +붙 +붚 +붛 +붜 +붝 +붞 +붟 +붠 +붡 +붢 +붣 +붤 +붥 +붦 +붧 +붨 +붩 +붪 +붫 +붬 +붭 +붮 +붯 +붰 +붱 +붲 +붳 +붴 +붵 +붶 +붷 +붸 +붹 +붺 +붻 +붼 +붽 +붾 +붿 +뷀 +뷁 +뷂 +뷃 +뷄 +뷅 +뷆 +뷇 +뷈 +뷉 +뷊 +뷋 +뷌 +뷍 +뷎 +뷏 +뷐 +뷑 +뷒 +뷓 +뷔 +뷕 +뷖 +뷗 +뷘 +뷙 +뷚 +뷛 +뷜 +뷝 +뷞 +뷟 +뷠 +뷡 +뷢 +뷣 +뷤 +뷥 +뷦 +뷧 +뷨 +뷩 +뷪 +뷫 +뷬 +뷭 +뷮 +뷯 +뷰 +뷱 +뷲 +뷳 +뷴 +뷵 +뷶 +뷷 +뷸 +뷹 +뷺 +뷻 +뷼 +뷽 +뷾 +뷿 +븀 +븁 +븂 +븃 +븄 +븅 +븆 +븇 +븈 +븉 +븊 +븋 +브 +븍 +븎 +븏 +븐 +븑 +븒 +븓 +블 +븕 +븖 +븗 +븘 +븙 +븚 +븛 +븜 +븝 +븞 +븟 +븠 +븡 +븢 +븣 +븤 +븥 +븦 +븧 +븨 +븩 +븪 +븫 +븬 +븭 +븮 +븯 +븰 +븱 +븲 +븳 +븴 +븵 +븶 +븷 +븸 +븹 +븺 +븻 +븼 +븽 +븾 +븿 +빀 +빁 +빂 +빃 +비 +빅 +빆 +빇 +빈 +빉 +빊 +빋 +빌 +빍 +빎 +빏 +빐 +빑 +빒 +빓 +빔 +빕 +빖 +빗 +빘 +빙 +빚 +빛 +빜 +빝 +빞 +빟 +빠 +빡 +빢 +빣 +빤 +빥 +빦 +빧 +빨 +빩 +빪 +빫 +빬 +빭 +빮 +빯 +빰 +빱 +빲 +빳 +빴 +빵 +빶 +빷 +빸 +빹 +빺 +빻 +빼 +빽 +빾 +빿 +뺀 +뺁 +뺂 +뺃 +뺄 +뺅 +뺆 +뺇 +뺈 +뺉 +뺊 +뺋 +뺌 +뺍 +뺎 +뺏 +뺐 +뺑 +뺒 +뺓 +뺔 +뺕 +뺖 +뺗 +뺘 +뺙 +뺚 +뺛 +뺜 +뺝 +뺞 +뺟 +뺠 +뺡 +뺢 +뺣 +뺤 +뺥 +뺦 +뺧 +뺨 +뺩 +뺪 +뺫 +뺬 +뺭 +뺮 +뺯 +뺰 +뺱 +뺲 +뺳 +뺴 +뺵 +뺶 +뺷 +뺸 +뺹 +뺺 +뺻 +뺼 +뺽 +뺾 +뺿 +뻀 +뻁 +뻂 +뻃 +뻄 +뻅 +뻆 +뻇 +뻈 +뻉 +뻊 +뻋 +뻌 +뻍 +뻎 +뻏 +뻐 +뻑 +뻒 +뻓 +뻔 +뻕 +뻖 +뻗 +뻘 +뻙 +뻚 +뻛 +뻜 +뻝 +뻞 +뻟 +뻠 +뻡 +뻢 +뻣 +뻤 +뻥 +뻦 +뻧 +뻨 +뻩 +뻪 +뻫 +뻬 +뻭 +뻮 +뻯 +뻰 +뻱 +뻲 +뻳 +뻴 +뻵 +뻶 +뻷 +뻸 +뻹 +뻺 +뻻 +뻼 +뻽 +뻾 +뻿 +뼀 +뼁 +뼂 +뼃 +뼄 +뼅 +뼆 +뼇 +뼈 +뼉 +뼊 +뼋 +뼌 +뼍 +뼎 +뼏 +뼐 +뼑 +뼒 +뼓 +뼔 +뼕 +뼖 +뼗 +뼘 +뼙 +뼚 +뼛 +뼜 +뼝 +뼞 +뼟 +뼠 +뼡 +뼢 +뼣 +뼤 +뼥 +뼦 +뼧 +뼨 +뼩 +뼪 +뼫 +뼬 +뼭 +뼮 +뼯 +뼰 +뼱 +뼲 +뼳 +뼴 +뼵 +뼶 +뼷 +뼸 +뼹 +뼺 +뼻 +뼼 +뼽 +뼾 +뼿 +뽀 +뽁 +뽂 +뽃 +뽄 +뽅 +뽆 +뽇 +뽈 +뽉 +뽊 +뽋 +뽌 +뽍 +뽎 +뽏 +뽐 +뽑 +뽒 +뽓 +뽔 +뽕 +뽖 +뽗 +뽘 +뽙 +뽚 +뽛 +뽜 +뽝 +뽞 +뽟 +뽠 +뽡 +뽢 +뽣 +뽤 +뽥 +뽦 +뽧 +뽨 +뽩 +뽪 +뽫 +뽬 +뽭 +뽮 +뽯 +뽰 +뽱 +뽲 +뽳 +뽴 +뽵 +뽶 +뽷 +뽸 +뽹 +뽺 +뽻 +뽼 +뽽 +뽾 +뽿 +뾀 +뾁 +뾂 +뾃 +뾄 +뾅 +뾆 +뾇 +뾈 +뾉 +뾊 +뾋 +뾌 +뾍 +뾎 +뾏 +뾐 +뾑 +뾒 +뾓 +뾔 +뾕 +뾖 +뾗 +뾘 +뾙 +뾚 +뾛 +뾜 +뾝 +뾞 +뾟 +뾠 +뾡 +뾢 +뾣 +뾤 +뾥 +뾦 +뾧 +뾨 +뾩 +뾪 +뾫 +뾬 +뾭 +뾮 +뾯 +뾰 +뾱 +뾲 +뾳 +뾴 +뾵 +뾶 +뾷 +뾸 +뾹 +뾺 +뾻 +뾼 +뾽 +뾾 +뾿 +뿀 +뿁 +뿂 +뿃 +뿄 +뿅 +뿆 +뿇 +뿈 +뿉 +뿊 +뿋 +뿌 +뿍 +뿎 +뿏 +뿐 +뿑 +뿒 +뿓 +뿔 +뿕 +뿖 +뿗 +뿘 +뿙 +뿚 +뿛 +뿜 +뿝 +뿞 +뿟 +뿠 +뿡 +뿢 +뿣 +뿤 +뿥 +뿦 +뿧 +뿨 +뿩 +뿪 +뿫 +뿬 +뿭 +뿮 +뿯 +뿰 +뿱 +뿲 +뿳 +뿴 +뿵 +뿶 +뿷 +뿸 +뿹 +뿺 +뿻 +뿼 +뿽 +뿾 +뿿 +쀀 +쀁 +쀂 +쀃 +쀄 +쀅 +쀆 +쀇 +쀈 +쀉 +쀊 +쀋 +쀌 +쀍 +쀎 +쀏 +쀐 +쀑 +쀒 +쀓 +쀔 +쀕 +쀖 +쀗 +쀘 +쀙 +쀚 +쀛 +쀜 +쀝 +쀞 +쀟 +쀠 +쀡 +쀢 +쀣 +쀤 +쀥 +쀦 +쀧 +쀨 +쀩 +쀪 +쀫 +쀬 +쀭 +쀮 +쀯 +쀰 +쀱 +쀲 +쀳 +쀴 +쀵 +쀶 +쀷 +쀸 +쀹 +쀺 +쀻 +쀼 +쀽 +쀾 +쀿 +쁀 +쁁 +쁂 +쁃 +쁄 +쁅 +쁆 +쁇 +쁈 +쁉 +쁊 +쁋 +쁌 +쁍 +쁎 +쁏 +쁐 +쁑 +쁒 +쁓 +쁔 +쁕 +쁖 +쁗 +쁘 +쁙 +쁚 +쁛 +쁜 +쁝 +쁞 +쁟 +쁠 +쁡 +쁢 +쁣 +쁤 +쁥 +쁦 +쁧 +쁨 +쁩 +쁪 +쁫 +쁬 +쁭 +쁮 +쁯 +쁰 +쁱 +쁲 +쁳 +쁴 +쁵 +쁶 +쁷 +쁸 +쁹 +쁺 +쁻 +쁼 +쁽 +쁾 +쁿 +삀 +삁 +삂 +삃 +삄 +삅 +삆 +삇 +삈 +삉 +삊 +삋 +삌 +삍 +삎 +삏 +삐 +삑 +삒 +삓 +삔 +삕 +삖 +삗 +삘 +삙 +삚 +삛 +삜 +삝 +삞 +삟 +삠 +삡 +삢 +삣 +삤 +삥 +삦 +삧 +삨 +삩 +삪 +삫 +사 +삭 +삮 +삯 +산 +삱 +삲 +삳 +살 +삵 +삶 +삷 +삸 +삹 +삺 +삻 +삼 +삽 +삾 +삿 +샀 +상 +샂 +샃 +샄 +샅 +샆 +샇 +새 +색 +샊 +샋 +샌 +샍 +샎 +샏 +샐 +샑 +샒 +샓 +샔 +샕 +샖 +샗 +샘 +샙 +샚 +샛 +샜 +생 +샞 +샟 +샠 +샡 +샢 +샣 +샤 +샥 +샦 +샧 +샨 +샩 +샪 +샫 +샬 +샭 +샮 +샯 +샰 +샱 +샲 +샳 +샴 +샵 +샶 +샷 +샸 +샹 +샺 +샻 +샼 +샽 +샾 +샿 +섀 +섁 +섂 +섃 +섄 +섅 +섆 +섇 +섈 +섉 +섊 +섋 +섌 +섍 +섎 +섏 +섐 +섑 +섒 +섓 +섔 +섕 +섖 +섗 +섘 +섙 +섚 +섛 +서 +석 +섞 +섟 +선 +섡 +섢 +섣 +설 +섥 +섦 +섧 +섨 +섩 +섪 +섫 +섬 +섭 +섮 +섯 +섰 +성 +섲 +섳 +섴 +섵 +섶 +섷 +세 +섹 +섺 +섻 +센 +섽 +섾 +섿 +셀 +셁 +셂 +셃 +셄 +셅 +셆 +셇 +셈 +셉 +셊 +셋 +셌 +셍 +셎 +셏 +셐 +셑 +셒 +셓 +셔 +셕 +셖 +셗 +션 +셙 +셚 +셛 +셜 +셝 +셞 +셟 +셠 +셡 +셢 +셣 +셤 +셥 +셦 +셧 +셨 +셩 +셪 +셫 +셬 +셭 +셮 +셯 +셰 +셱 +셲 +셳 +셴 +셵 +셶 +셷 +셸 +셹 +셺 +셻 +셼 +셽 +셾 +셿 +솀 +솁 +솂 +솃 +솄 +솅 +솆 +솇 +솈 +솉 +솊 +솋 +소 +속 +솎 +솏 +손 +솑 +솒 +솓 +솔 +솕 +솖 +솗 +솘 +솙 +솚 +솛 +솜 +솝 +솞 +솟 +솠 +송 +솢 +솣 +솤 +솥 +솦 +솧 +솨 +솩 +솪 +솫 +솬 +솭 +솮 +솯 +솰 +솱 +솲 +솳 +솴 +솵 +솶 +솷 +솸 +솹 +솺 +솻 +솼 +솽 +솾 +솿 +쇀 +쇁 +쇂 +쇃 +쇄 +쇅 +쇆 +쇇 +쇈 +쇉 +쇊 +쇋 +쇌 +쇍 +쇎 +쇏 +쇐 +쇑 +쇒 +쇓 +쇔 +쇕 +쇖 +쇗 +쇘 +쇙 +쇚 +쇛 +쇜 +쇝 +쇞 +쇟 +쇠 +쇡 +쇢 +쇣 +쇤 +쇥 +쇦 +쇧 +쇨 +쇩 +쇪 +쇫 +쇬 +쇭 +쇮 +쇯 +쇰 +쇱 +쇲 +쇳 +쇴 +쇵 +쇶 +쇷 +쇸 +쇹 +쇺 +쇻 +쇼 +쇽 +쇾 +쇿 +숀 +숁 +숂 +숃 +숄 +숅 +숆 +숇 +숈 +숉 +숊 +숋 +숌 +숍 +숎 +숏 +숐 +숑 +숒 +숓 +숔 +숕 +숖 +숗 +수 +숙 +숚 +숛 +순 +숝 +숞 +숟 +술 +숡 +숢 +숣 +숤 +숥 +숦 +숧 +숨 +숩 +숪 +숫 +숬 +숭 +숮 +숯 +숰 +숱 +숲 +숳 +숴 +숵 +숶 +숷 +숸 +숹 +숺 +숻 +숼 +숽 +숾 +숿 +쉀 +쉁 +쉂 +쉃 +쉄 +쉅 +쉆 +쉇 +쉈 +쉉 +쉊 +쉋 +쉌 +쉍 +쉎 +쉏 +쉐 +쉑 +쉒 +쉓 +쉔 +쉕 +쉖 +쉗 +쉘 +쉙 +쉚 +쉛 +쉜 +쉝 +쉞 +쉟 +쉠 +쉡 +쉢 +쉣 +쉤 +쉥 +쉦 +쉧 +쉨 +쉩 +쉪 +쉫 +쉬 +쉭 +쉮 +쉯 +쉰 +쉱 +쉲 +쉳 +쉴 +쉵 +쉶 +쉷 +쉸 +쉹 +쉺 +쉻 +쉼 +쉽 +쉾 +쉿 +슀 +슁 +슂 +슃 +슄 +슅 +슆 +슇 +슈 +슉 +슊 +슋 +슌 +슍 +슎 +슏 +슐 +슑 +슒 +슓 +슔 +슕 +슖 +슗 +슘 +슙 +슚 +슛 +슜 +슝 +슞 +슟 +슠 +슡 +슢 +슣 +스 +슥 +슦 +슧 +슨 +슩 +슪 +슫 +슬 +슭 +슮 +슯 +슰 +슱 +슲 +슳 +슴 +습 +슶 +슷 +슸 +승 +슺 +슻 +슼 +슽 +슾 +슿 +싀 +싁 +싂 +싃 +싄 +싅 +싆 +싇 +싈 +싉 +싊 +싋 +싌 +싍 +싎 +싏 +싐 +싑 +싒 +싓 +싔 +싕 +싖 +싗 +싘 +싙 +싚 +싛 +시 +식 +싞 +싟 +신 +싡 +싢 +싣 +실 +싥 +싦 +싧 +싨 +싩 +싪 +싫 +심 +십 +싮 +싯 +싰 +싱 +싲 +싳 +싴 +싵 +싶 +싷 +싸 +싹 +싺 +싻 +싼 +싽 +싾 +싿 +쌀 +쌁 +쌂 +쌃 +쌄 +쌅 +쌆 +쌇 +쌈 +쌉 +쌊 +쌋 +쌌 +쌍 +쌎 +쌏 +쌐 +쌑 +쌒 +쌓 +쌔 +쌕 +쌖 +쌗 +쌘 +쌙 +쌚 +쌛 +쌜 +쌝 +쌞 +쌟 +쌠 +쌡 +쌢 +쌣 +쌤 +쌥 +쌦 +쌧 +쌨 +쌩 +쌪 +쌫 +쌬 +쌭 +쌮 +쌯 +쌰 +쌱 +쌲 +쌳 +쌴 +쌵 +쌶 +쌷 +쌸 +쌹 +쌺 +쌻 +쌼 +쌽 +쌾 +쌿 +썀 +썁 +썂 +썃 +썄 +썅 +썆 +썇 +썈 +썉 +썊 +썋 +썌 +썍 +썎 +썏 +썐 +썑 +썒 +썓 +썔 +썕 +썖 +썗 +썘 +썙 +썚 +썛 +썜 +썝 +썞 +썟 +썠 +썡 +썢 +썣 +썤 +썥 +썦 +썧 +써 +썩 +썪 +썫 +썬 +썭 +썮 +썯 +썰 +썱 +썲 +썳 +썴 +썵 +썶 +썷 +썸 +썹 +썺 +썻 +썼 +썽 +썾 +썿 +쎀 +쎁 +쎂 +쎃 +쎄 +쎅 +쎆 +쎇 +쎈 +쎉 +쎊 +쎋 +쎌 +쎍 +쎎 +쎏 +쎐 +쎑 +쎒 +쎓 +쎔 +쎕 +쎖 +쎗 +쎘 +쎙 +쎚 +쎛 +쎜 +쎝 +쎞 +쎟 +쎠 +쎡 +쎢 +쎣 +쎤 +쎥 +쎦 +쎧 +쎨 +쎩 +쎪 +쎫 +쎬 +쎭 +쎮 +쎯 +쎰 +쎱 +쎲 +쎳 +쎴 +쎵 +쎶 +쎷 +쎸 +쎹 +쎺 +쎻 +쎼 +쎽 +쎾 +쎿 +쏀 +쏁 +쏂 +쏃 +쏄 +쏅 +쏆 +쏇 +쏈 +쏉 +쏊 +쏋 +쏌 +쏍 +쏎 +쏏 +쏐 +쏑 +쏒 +쏓 +쏔 +쏕 +쏖 +쏗 +쏘 +쏙 +쏚 +쏛 +쏜 +쏝 +쏞 +쏟 +쏠 +쏡 +쏢 +쏣 +쏤 +쏥 +쏦 +쏧 +쏨 +쏩 +쏪 +쏫 +쏬 +쏭 +쏮 +쏯 +쏰 +쏱 +쏲 +쏳 +쏴 +쏵 +쏶 +쏷 +쏸 +쏹 +쏺 +쏻 +쏼 +쏽 +쏾 +쏿 +쐀 +쐁 +쐂 +쐃 +쐄 +쐅 +쐆 +쐇 +쐈 +쐉 +쐊 +쐋 +쐌 +쐍 +쐎 +쐏 +쐐 +쐑 +쐒 +쐓 +쐔 +쐕 +쐖 +쐗 +쐘 +쐙 +쐚 +쐛 +쐜 +쐝 +쐞 +쐟 +쐠 +쐡 +쐢 +쐣 +쐤 +쐥 +쐦 +쐧 +쐨 +쐩 +쐪 +쐫 +쐬 +쐭 +쐮 +쐯 +쐰 +쐱 +쐲 +쐳 +쐴 +쐵 +쐶 +쐷 +쐸 +쐹 +쐺 +쐻 +쐼 +쐽 +쐾 +쐿 +쑀 +쑁 +쑂 +쑃 +쑄 +쑅 +쑆 +쑇 +쑈 +쑉 +쑊 +쑋 +쑌 +쑍 +쑎 +쑏 +쑐 +쑑 +쑒 +쑓 +쑔 +쑕 +쑖 +쑗 +쑘 +쑙 +쑚 +쑛 +쑜 +쑝 +쑞 +쑟 +쑠 +쑡 +쑢 +쑣 +쑤 +쑥 +쑦 +쑧 +쑨 +쑩 +쑪 +쑫 +쑬 +쑭 +쑮 +쑯 +쑰 +쑱 +쑲 +쑳 +쑴 +쑵 +쑶 +쑷 +쑸 +쑹 +쑺 +쑻 +쑼 +쑽 +쑾 +쑿 +쒀 +쒁 +쒂 +쒃 +쒄 +쒅 +쒆 +쒇 +쒈 +쒉 +쒊 +쒋 +쒌 +쒍 +쒎 +쒏 +쒐 +쒑 +쒒 +쒓 +쒔 +쒕 +쒖 +쒗 +쒘 +쒙 +쒚 +쒛 +쒜 +쒝 +쒞 +쒟 +쒠 +쒡 +쒢 +쒣 +쒤 +쒥 +쒦 +쒧 +쒨 +쒩 +쒪 +쒫 +쒬 +쒭 +쒮 +쒯 +쒰 +쒱 +쒲 +쒳 +쒴 +쒵 +쒶 +쒷 +쒸 +쒹 +쒺 +쒻 +쒼 +쒽 +쒾 +쒿 +쓀 +쓁 +쓂 +쓃 +쓄 +쓅 +쓆 +쓇 +쓈 +쓉 +쓊 +쓋 +쓌 +쓍 +쓎 +쓏 +쓐 +쓑 +쓒 +쓓 +쓔 +쓕 +쓖 +쓗 +쓘 +쓙 +쓚 +쓛 +쓜 +쓝 +쓞 +쓟 +쓠 +쓡 +쓢 +쓣 +쓤 +쓥 +쓦 +쓧 +쓨 +쓩 +쓪 +쓫 +쓬 +쓭 +쓮 +쓯 +쓰 +쓱 +쓲 +쓳 +쓴 +쓵 +쓶 +쓷 +쓸 +쓹 +쓺 +쓻 +쓼 +쓽 +쓾 +쓿 +씀 +씁 +씂 +씃 +씄 +씅 +씆 +씇 +씈 +씉 +씊 +씋 +씌 +씍 +씎 +씏 +씐 +씑 +씒 +씓 +씔 +씕 +씖 +씗 +씘 +씙 +씚 +씛 +씜 +씝 +씞 +씟 +씠 +씡 +씢 +씣 +씤 +씥 +씦 +씧 +씨 +씩 +씪 +씫 +씬 +씭 +씮 +씯 +씰 +씱 +씲 +씳 +씴 +씵 +씶 +씷 +씸 +씹 +씺 +씻 +씼 +씽 +씾 +씿 +앀 +앁 +앂 +앃 +아 +악 +앆 +앇 +안 +앉 +않 +앋 +알 +앍 +앎 +앏 +앐 +앑 +앒 +앓 +암 +압 +앖 +앗 +았 +앙 +앚 +앛 +앜 +앝 +앞 +앟 +애 +액 +앢 +앣 +앤 +앥 +앦 +앧 +앨 +앩 +앪 +앫 +앬 +앭 +앮 +앯 +앰 +앱 +앲 +앳 +앴 +앵 +앶 +앷 +앸 +앹 +앺 +앻 +야 +약 +앾 +앿 +얀 +얁 +얂 +얃 +얄 +얅 +얆 +얇 +얈 +얉 +얊 +얋 +얌 +얍 +얎 +얏 +얐 +양 +얒 +얓 +얔 +얕 +얖 +얗 +얘 +얙 +얚 +얛 +얜 +얝 +얞 +얟 +얠 +얡 +얢 +얣 +얤 +얥 +얦 +얧 +얨 +얩 +얪 +얫 +얬 +얭 +얮 +얯 +얰 +얱 +얲 +얳 +어 +억 +얶 +얷 +언 +얹 +얺 +얻 +얼 +얽 +얾 +얿 +엀 +엁 +엂 +엃 +엄 +업 +없 +엇 +었 +엉 +엊 +엋 +엌 +엍 +엎 +엏 +에 +엑 +엒 +엓 +엔 +엕 +엖 +엗 +엘 +엙 +엚 +엛 +엜 +엝 +엞 +엟 +엠 +엡 +엢 +엣 +엤 +엥 +엦 +엧 +엨 +엩 +엪 +엫 +여 +역 +엮 +엯 +연 +엱 +엲 +엳 +열 +엵 +엶 +엷 +엸 +엹 +엺 +엻 +염 +엽 +엾 +엿 +였 +영 +옂 +옃 +옄 +옅 +옆 +옇 +예 +옉 +옊 +옋 +옌 +옍 +옎 +옏 +옐 +옑 +옒 +옓 +옔 +옕 +옖 +옗 +옘 +옙 +옚 +옛 +옜 +옝 +옞 +옟 +옠 +옡 +옢 +옣 +오 +옥 +옦 +옧 +온 +옩 +옪 +옫 +올 +옭 +옮 +옯 +옰 +옱 +옲 +옳 +옴 +옵 +옶 +옷 +옸 +옹 +옺 +옻 +옼 +옽 +옾 +옿 +와 +왁 +왂 +왃 +완 +왅 +왆 +왇 +왈 +왉 +왊 +왋 +왌 +왍 +왎 +왏 +왐 +왑 +왒 +왓 +왔 +왕 +왖 +왗 +왘 +왙 +왚 +왛 +왜 +왝 +왞 +왟 +왠 +왡 +왢 +왣 +왤 +왥 +왦 +왧 +왨 +왩 +왪 +왫 +왬 +왭 +왮 +왯 +왰 +왱 +왲 +왳 +왴 +왵 +왶 +왷 +외 +왹 +왺 +왻 +왼 +왽 +왾 +왿 +욀 +욁 +욂 +욃 +욄 +욅 +욆 +욇 +욈 +욉 +욊 +욋 +욌 +욍 +욎 +욏 +욐 +욑 +욒 +욓 +요 +욕 +욖 +욗 +욘 +욙 +욚 +욛 +욜 +욝 +욞 +욟 +욠 +욡 +욢 +욣 +욤 +욥 +욦 +욧 +욨 +용 +욪 +욫 +욬 +욭 +욮 +욯 +우 +욱 +욲 +욳 +운 +욵 +욶 +욷 +울 +욹 +욺 +욻 +욼 +욽 +욾 +욿 +움 +웁 +웂 +웃 +웄 +웅 +웆 +웇 +웈 +웉 +웊 +웋 +워 +웍 +웎 +웏 +원 +웑 +웒 +웓 +월 +웕 +웖 +웗 +웘 +웙 +웚 +웛 +웜 +웝 +웞 +웟 +웠 +웡 +웢 +웣 +웤 +웥 +웦 +웧 +웨 +웩 +웪 +웫 +웬 +웭 +웮 +웯 +웰 +웱 +웲 +웳 +웴 +웵 +웶 +웷 +웸 +웹 +웺 +웻 +웼 +웽 +웾 +웿 +윀 +윁 +윂 +윃 +위 +윅 +윆 +윇 +윈 +윉 +윊 +윋 +윌 +윍 +윎 +윏 +윐 +윑 +윒 +윓 +윔 +윕 +윖 +윗 +윘 +윙 +윚 +윛 +윜 +윝 +윞 +윟 +유 +육 +윢 +윣 +윤 +윥 +윦 +윧 +율 +윩 +윪 +윫 +윬 +윭 +윮 +윯 +윰 +윱 +윲 +윳 +윴 +융 +윶 +윷 +윸 +윹 +윺 +윻 +으 +윽 +윾 +윿 +은 +읁 +읂 +읃 +을 +읅 +읆 +읇 +읈 +읉 +읊 +읋 +음 +읍 +읎 +읏 +읐 +응 +읒 +읓 +읔 +읕 +읖 +읗 +의 +읙 +읚 +읛 +읜 +읝 +읞 +읟 +읠 +읡 +읢 +읣 +읤 +읥 +읦 +읧 +읨 +읩 +읪 +읫 +읬 +읭 +읮 +읯 +읰 +읱 +읲 +읳 +이 +익 +읶 +읷 +인 +읹 +읺 +읻 +일 +읽 +읾 +읿 +잀 +잁 +잂 +잃 +임 +입 +잆 +잇 +있 +잉 +잊 +잋 +잌 +잍 +잎 +잏 +자 +작 +잒 +잓 +잔 +잕 +잖 +잗 +잘 +잙 +잚 +잛 +잜 +잝 +잞 +잟 +잠 +잡 +잢 +잣 +잤 +장 +잦 +잧 +잨 +잩 +잪 +잫 +재 +잭 +잮 +잯 +잰 +잱 +잲 +잳 +잴 +잵 +잶 +잷 +잸 +잹 +잺 +잻 +잼 +잽 +잾 +잿 +쟀 +쟁 +쟂 +쟃 +쟄 +쟅 +쟆 +쟇 +쟈 +쟉 +쟊 +쟋 +쟌 +쟍 +쟎 +쟏 +쟐 +쟑 +쟒 +쟓 +쟔 +쟕 +쟖 +쟗 +쟘 +쟙 +쟚 +쟛 +쟜 +쟝 +쟞 +쟟 +쟠 +쟡 +쟢 +쟣 +쟤 +쟥 +쟦 +쟧 +쟨 +쟩 +쟪 +쟫 +쟬 +쟭 +쟮 +쟯 +쟰 +쟱 +쟲 +쟳 +쟴 +쟵 +쟶 +쟷 +쟸 +쟹 +쟺 +쟻 +쟼 +쟽 +쟾 +쟿 +저 +적 +젂 +젃 +전 +젅 +젆 +젇 +절 +젉 +젊 +젋 +젌 +젍 +젎 +젏 +점 +접 +젒 +젓 +젔 +정 +젖 +젗 +젘 +젙 +젚 +젛 +제 +젝 +젞 +젟 +젠 +젡 +젢 +젣 +젤 +젥 +젦 +젧 +젨 +젩 +젪 +젫 +젬 +젭 +젮 +젯 +젰 +젱 +젲 +젳 +젴 +젵 +젶 +젷 +져 +젹 +젺 +젻 +젼 +젽 +젾 +젿 +졀 +졁 +졂 +졃 +졄 +졅 +졆 +졇 +졈 +졉 +졊 +졋 +졌 +졍 +졎 +졏 +졐 +졑 +졒 +졓 +졔 +졕 +졖 +졗 +졘 +졙 +졚 +졛 +졜 +졝 +졞 +졟 +졠 +졡 +졢 +졣 +졤 +졥 +졦 +졧 +졨 +졩 +졪 +졫 +졬 +졭 +졮 +졯 +조 +족 +졲 +졳 +존 +졵 +졶 +졷 +졸 +졹 +졺 +졻 +졼 +졽 +졾 +졿 +좀 +좁 +좂 +좃 +좄 +종 +좆 +좇 +좈 +좉 +좊 +좋 +좌 +좍 +좎 +좏 +좐 +좑 +좒 +좓 +좔 +좕 +좖 +좗 +좘 +좙 +좚 +좛 +좜 +좝 +좞 +좟 +좠 +좡 +좢 +좣 +좤 +좥 +좦 +좧 +좨 +좩 +좪 +좫 +좬 +좭 +좮 +좯 +좰 +좱 +좲 +좳 +좴 +좵 +좶 +좷 +좸 +좹 +좺 +좻 +좼 +좽 +좾 +좿 +죀 +죁 +죂 +죃 +죄 +죅 +죆 +죇 +죈 +죉 +죊 +죋 +죌 +죍 +죎 +죏 +죐 +죑 +죒 +죓 +죔 +죕 +죖 +죗 +죘 +죙 +죚 +죛 +죜 +죝 +죞 +죟 +죠 +죡 +죢 +죣 +죤 +죥 +죦 +죧 +죨 +죩 +죪 +죫 +죬 +죭 +죮 +죯 +죰 +죱 +죲 +죳 +죴 +죵 +죶 +죷 +죸 +죹 +죺 +죻 +주 +죽 +죾 +죿 +준 +줁 +줂 +줃 +줄 +줅 +줆 +줇 +줈 +줉 +줊 +줋 +줌 +줍 +줎 +줏 +줐 +중 +줒 +줓 +줔 +줕 +줖 +줗 +줘 +줙 +줚 +줛 +줜 +줝 +줞 +줟 +줠 +줡 +줢 +줣 +줤 +줥 +줦 +줧 +줨 +줩 +줪 +줫 +줬 +줭 +줮 +줯 +줰 +줱 +줲 +줳 +줴 +줵 +줶 +줷 +줸 +줹 +줺 +줻 +줼 +줽 +줾 +줿 +쥀 +쥁 +쥂 +쥃 +쥄 +쥅 +쥆 +쥇 +쥈 +쥉 +쥊 +쥋 +쥌 +쥍 +쥎 +쥏 +쥐 +쥑 +쥒 +쥓 +쥔 +쥕 +쥖 +쥗 +쥘 +쥙 +쥚 +쥛 +쥜 +쥝 +쥞 +쥟 +쥠 +쥡 +쥢 +쥣 +쥤 +쥥 +쥦 +쥧 +쥨 +쥩 +쥪 +쥫 +쥬 +쥭 +쥮 +쥯 +쥰 +쥱 +쥲 +쥳 +쥴 +쥵 +쥶 +쥷 +쥸 +쥹 +쥺 +쥻 +쥼 +쥽 +쥾 +쥿 +즀 +즁 +즂 +즃 +즄 +즅 +즆 +즇 +즈 +즉 +즊 +즋 +즌 +즍 +즎 +즏 +즐 +즑 +즒 +즓 +즔 +즕 +즖 +즗 +즘 +즙 +즚 +즛 +즜 +증 +즞 +즟 +즠 +즡 +즢 +즣 +즤 +즥 +즦 +즧 +즨 +즩 +즪 +즫 +즬 +즭 +즮 +즯 +즰 +즱 +즲 +즳 +즴 +즵 +즶 +즷 +즸 +즹 +즺 +즻 +즼 +즽 +즾 +즿 +지 +직 +짂 +짃 +진 +짅 +짆 +짇 +질 +짉 +짊 +짋 +짌 +짍 +짎 +짏 +짐 +집 +짒 +짓 +짔 +징 +짖 +짗 +짘 +짙 +짚 +짛 +짜 +짝 +짞 +짟 +짠 +짡 +짢 +짣 +짤 +짥 +짦 +짧 +짨 +짩 +짪 +짫 +짬 +짭 +짮 +짯 +짰 +짱 +짲 +짳 +짴 +짵 +짶 +짷 +째 +짹 +짺 +짻 +짼 +짽 +짾 +짿 +쨀 +쨁 +쨂 +쨃 +쨄 +쨅 +쨆 +쨇 +쨈 +쨉 +쨊 +쨋 +쨌 +쨍 +쨎 +쨏 +쨐 +쨑 +쨒 +쨓 +쨔 +쨕 +쨖 +쨗 +쨘 +쨙 +쨚 +쨛 +쨜 +쨝 +쨞 +쨟 +쨠 +쨡 +쨢 +쨣 +쨤 +쨥 +쨦 +쨧 +쨨 +쨩 +쨪 +쨫 +쨬 +쨭 +쨮 +쨯 +쨰 +쨱 +쨲 +쨳 +쨴 +쨵 +쨶 +쨷 +쨸 +쨹 +쨺 +쨻 +쨼 +쨽 +쨾 +쨿 +쩀 +쩁 +쩂 +쩃 +쩄 +쩅 +쩆 +쩇 +쩈 +쩉 +쩊 +쩋 +쩌 +쩍 +쩎 +쩏 +쩐 +쩑 +쩒 +쩓 +쩔 +쩕 +쩖 +쩗 +쩘 +쩙 +쩚 +쩛 +쩜 +쩝 +쩞 +쩟 +쩠 +쩡 +쩢 +쩣 +쩤 +쩥 +쩦 +쩧 +쩨 +쩩 +쩪 +쩫 +쩬 +쩭 +쩮 +쩯 +쩰 +쩱 +쩲 +쩳 +쩴 +쩵 +쩶 +쩷 +쩸 +쩹 +쩺 +쩻 +쩼 +쩽 +쩾 +쩿 +쪀 +쪁 +쪂 +쪃 +쪄 +쪅 +쪆 +쪇 +쪈 +쪉 +쪊 +쪋 +쪌 +쪍 +쪎 +쪏 +쪐 +쪑 +쪒 +쪓 +쪔 +쪕 +쪖 +쪗 +쪘 +쪙 +쪚 +쪛 +쪜 +쪝 +쪞 +쪟 +쪠 +쪡 +쪢 +쪣 +쪤 +쪥 +쪦 +쪧 +쪨 +쪩 +쪪 +쪫 +쪬 +쪭 +쪮 +쪯 +쪰 +쪱 +쪲 +쪳 +쪴 +쪵 +쪶 +쪷 +쪸 +쪹 +쪺 +쪻 +쪼 +쪽 +쪾 +쪿 +쫀 +쫁 +쫂 +쫃 +쫄 +쫅 +쫆 +쫇 +쫈 +쫉 +쫊 +쫋 +쫌 +쫍 +쫎 +쫏 +쫐 +쫑 +쫒 +쫓 +쫔 +쫕 +쫖 +쫗 +쫘 +쫙 +쫚 +쫛 +쫜 +쫝 +쫞 +쫟 +쫠 +쫡 +쫢 +쫣 +쫤 +쫥 +쫦 +쫧 +쫨 +쫩 +쫪 +쫫 +쫬 +쫭 +쫮 +쫯 +쫰 +쫱 +쫲 +쫳 +쫴 +쫵 +쫶 +쫷 +쫸 +쫹 +쫺 +쫻 +쫼 +쫽 +쫾 +쫿 +쬀 +쬁 +쬂 +쬃 +쬄 +쬅 +쬆 +쬇 +쬈 +쬉 +쬊 +쬋 +쬌 +쬍 +쬎 +쬏 +쬐 +쬑 +쬒 +쬓 +쬔 +쬕 +쬖 +쬗 +쬘 +쬙 +쬚 +쬛 +쬜 +쬝 +쬞 +쬟 +쬠 +쬡 +쬢 +쬣 +쬤 +쬥 +쬦 +쬧 +쬨 +쬩 +쬪 +쬫 +쬬 +쬭 +쬮 +쬯 +쬰 +쬱 +쬲 +쬳 +쬴 +쬵 +쬶 +쬷 +쬸 +쬹 +쬺 +쬻 +쬼 +쬽 +쬾 +쬿 +쭀 +쭁 +쭂 +쭃 +쭄 +쭅 +쭆 +쭇 +쭈 +쭉 +쭊 +쭋 +쭌 +쭍 +쭎 +쭏 +쭐 +쭑 +쭒 +쭓 +쭔 +쭕 +쭖 +쭗 +쭘 +쭙 +쭚 +쭛 +쭜 +쭝 +쭞 +쭟 +쭠 +쭡 +쭢 +쭣 +쭤 +쭥 +쭦 +쭧 +쭨 +쭩 +쭪 +쭫 +쭬 +쭭 +쭮 +쭯 +쭰 +쭱 +쭲 +쭳 +쭴 +쭵 +쭶 +쭷 +쭸 +쭹 +쭺 +쭻 +쭼 +쭽 +쭾 +쭿 +쮀 +쮁 +쮂 +쮃 +쮄 +쮅 +쮆 +쮇 +쮈 +쮉 +쮊 +쮋 +쮌 +쮍 +쮎 +쮏 +쮐 +쮑 +쮒 +쮓 +쮔 +쮕 +쮖 +쮗 +쮘 +쮙 +쮚 +쮛 +쮜 +쮝 +쮞 +쮟 +쮠 +쮡 +쮢 +쮣 +쮤 +쮥 +쮦 +쮧 +쮨 +쮩 +쮪 +쮫 +쮬 +쮭 +쮮 +쮯 +쮰 +쮱 +쮲 +쮳 +쮴 +쮵 +쮶 +쮷 +쮸 +쮹 +쮺 +쮻 +쮼 +쮽 +쮾 +쮿 +쯀 +쯁 +쯂 +쯃 +쯄 +쯅 +쯆 +쯇 +쯈 +쯉 +쯊 +쯋 +쯌 +쯍 +쯎 +쯏 +쯐 +쯑 +쯒 +쯓 +쯔 +쯕 +쯖 +쯗 +쯘 +쯙 +쯚 +쯛 +쯜 +쯝 +쯞 +쯟 +쯠 +쯡 +쯢 +쯣 +쯤 +쯥 +쯦 +쯧 +쯨 +쯩 +쯪 +쯫 +쯬 +쯭 +쯮 +쯯 +쯰 +쯱 +쯲 +쯳 +쯴 +쯵 +쯶 +쯷 +쯸 +쯹 +쯺 +쯻 +쯼 +쯽 +쯾 +쯿 +찀 +찁 +찂 +찃 +찄 +찅 +찆 +찇 +찈 +찉 +찊 +찋 +찌 +찍 +찎 +찏 +찐 +찑 +찒 +찓 +찔 +찕 +찖 +찗 +찘 +찙 +찚 +찛 +찜 +찝 +찞 +찟 +찠 +찡 +찢 +찣 +찤 +찥 +찦 +찧 +차 +착 +찪 +찫 +찬 +찭 +찮 +찯 +찰 +찱 +찲 +찳 +찴 +찵 +찶 +찷 +참 +찹 +찺 +찻 +찼 +창 +찾 +찿 +챀 +챁 +챂 +챃 +채 +책 +챆 +챇 +챈 +챉 +챊 +챋 +챌 +챍 +챎 +챏 +챐 +챑 +챒 +챓 +챔 +챕 +챖 +챗 +챘 +챙 +챚 +챛 +챜 +챝 +챞 +챟 +챠 +챡 +챢 +챣 +챤 +챥 +챦 +챧 +챨 +챩 +챪 +챫 +챬 +챭 +챮 +챯 +챰 +챱 +챲 +챳 +챴 +챵 +챶 +챷 +챸 +챹 +챺 +챻 +챼 +챽 +챾 +챿 +첀 +첁 +첂 +첃 +첄 +첅 +첆 +첇 +첈 +첉 +첊 +첋 +첌 +첍 +첎 +첏 +첐 +첑 +첒 +첓 +첔 +첕 +첖 +첗 +처 +척 +첚 +첛 +천 +첝 +첞 +첟 +철 +첡 +첢 +첣 +첤 +첥 +첦 +첧 +첨 +첩 +첪 +첫 +첬 +청 +첮 +첯 +첰 +첱 +첲 +첳 +체 +첵 +첶 +첷 +첸 +첹 +첺 +첻 +첼 +첽 +첾 +첿 +쳀 +쳁 +쳂 +쳃 +쳄 +쳅 +쳆 +쳇 +쳈 +쳉 +쳊 +쳋 +쳌 +쳍 +쳎 +쳏 +쳐 +쳑 +쳒 +쳓 +쳔 +쳕 +쳖 +쳗 +쳘 +쳙 +쳚 +쳛 +쳜 +쳝 +쳞 +쳟 +쳠 +쳡 +쳢 +쳣 +쳤 +쳥 +쳦 +쳧 +쳨 +쳩 +쳪 +쳫 +쳬 +쳭 +쳮 +쳯 +쳰 +쳱 +쳲 +쳳 +쳴 +쳵 +쳶 +쳷 +쳸 +쳹 +쳺 +쳻 +쳼 +쳽 +쳾 +쳿 +촀 +촁 +촂 +촃 +촄 +촅 +촆 +촇 +초 +촉 +촊 +촋 +촌 +촍 +촎 +촏 +촐 +촑 +촒 +촓 +촔 +촕 +촖 +촗 +촘 +촙 +촚 +촛 +촜 +총 +촞 +촟 +촠 +촡 +촢 +촣 +촤 +촥 +촦 +촧 +촨 +촩 +촪 +촫 +촬 +촭 +촮 +촯 +촰 +촱 +촲 +촳 +촴 +촵 +촶 +촷 +촸 +촹 +촺 +촻 +촼 +촽 +촾 +촿 +쵀 +쵁 +쵂 +쵃 +쵄 +쵅 +쵆 +쵇 +쵈 +쵉 +쵊 +쵋 +쵌 +쵍 +쵎 +쵏 +쵐 +쵑 +쵒 +쵓 +쵔 +쵕 +쵖 +쵗 +쵘 +쵙 +쵚 +쵛 +최 +쵝 +쵞 +쵟 +쵠 +쵡 +쵢 +쵣 +쵤 +쵥 +쵦 +쵧 +쵨 +쵩 +쵪 +쵫 +쵬 +쵭 +쵮 +쵯 +쵰 +쵱 +쵲 +쵳 +쵴 +쵵 +쵶 +쵷 +쵸 +쵹 +쵺 +쵻 +쵼 +쵽 +쵾 +쵿 +춀 +춁 +춂 +춃 +춄 +춅 +춆 +춇 +춈 +춉 +춊 +춋 +춌 +춍 +춎 +춏 +춐 +춑 +춒 +춓 +추 +축 +춖 +춗 +춘 +춙 +춚 +춛 +출 +춝 +춞 +춟 +춠 +춡 +춢 +춣 +춤 +춥 +춦 +춧 +춨 +충 +춪 +춫 +춬 +춭 +춮 +춯 +춰 +춱 +춲 +춳 +춴 +춵 +춶 +춷 +춸 +춹 +춺 +춻 +춼 +춽 +춾 +춿 +췀 +췁 +췂 +췃 +췄 +췅 +췆 +췇 +췈 +췉 +췊 +췋 +췌 +췍 +췎 +췏 +췐 +췑 +췒 +췓 +췔 +췕 +췖 +췗 +췘 +췙 +췚 +췛 +췜 +췝 +췞 +췟 +췠 +췡 +췢 +췣 +췤 +췥 +췦 +췧 +취 +췩 +췪 +췫 +췬 +췭 +췮 +췯 +췰 +췱 +췲 +췳 +췴 +췵 +췶 +췷 +췸 +췹 +췺 +췻 +췼 +췽 +췾 +췿 +츀 +츁 +츂 +츃 +츄 +츅 +츆 +츇 +츈 +츉 +츊 +츋 +츌 +츍 +츎 +츏 +츐 +츑 +츒 +츓 +츔 +츕 +츖 +츗 +츘 +츙 +츚 +츛 +츜 +츝 +츞 +츟 +츠 +측 +츢 +츣 +츤 +츥 +츦 +츧 +츨 +츩 +츪 +츫 +츬 +츭 +츮 +츯 +츰 +츱 +츲 +츳 +츴 +층 +츶 +츷 +츸 +츹 +츺 +츻 +츼 +츽 +츾 +츿 +칀 +칁 +칂 +칃 +칄 +칅 +칆 +칇 +칈 +칉 +칊 +칋 +칌 +칍 +칎 +칏 +칐 +칑 +칒 +칓 +칔 +칕 +칖 +칗 +치 +칙 +칚 +칛 +친 +칝 +칞 +칟 +칠 +칡 +칢 +칣 +칤 +칥 +칦 +칧 +침 +칩 +칪 +칫 +칬 +칭 +칮 +칯 +칰 +칱 +칲 +칳 +카 +칵 +칶 +칷 +칸 +칹 +칺 +칻 +칼 +칽 +칾 +칿 +캀 +캁 +캂 +캃 +캄 +캅 +캆 +캇 +캈 +캉 +캊 +캋 +캌 +캍 +캎 +캏 +캐 +캑 +캒 +캓 +캔 +캕 +캖 +캗 +캘 +캙 +캚 +캛 +캜 +캝 +캞 +캟 +캠 +캡 +캢 +캣 +캤 +캥 +캦 +캧 +캨 +캩 +캪 +캫 +캬 +캭 +캮 +캯 +캰 +캱 +캲 +캳 +캴 +캵 +캶 +캷 +캸 +캹 +캺 +캻 +캼 +캽 +캾 +캿 +컀 +컁 +컂 +컃 +컄 +컅 +컆 +컇 +컈 +컉 +컊 +컋 +컌 +컍 +컎 +컏 +컐 +컑 +컒 +컓 +컔 +컕 +컖 +컗 +컘 +컙 +컚 +컛 +컜 +컝 +컞 +컟 +컠 +컡 +컢 +컣 +커 +컥 +컦 +컧 +컨 +컩 +컪 +컫 +컬 +컭 +컮 +컯 +컰 +컱 +컲 +컳 +컴 +컵 +컶 +컷 +컸 +컹 +컺 +컻 +컼 +컽 +컾 +컿 +케 +켁 +켂 +켃 +켄 +켅 +켆 +켇 +켈 +켉 +켊 +켋 +켌 +켍 +켎 +켏 +켐 +켑 +켒 +켓 +켔 +켕 +켖 +켗 +켘 +켙 +켚 +켛 +켜 +켝 +켞 +켟 +켠 +켡 +켢 +켣 +켤 +켥 +켦 +켧 +켨 +켩 +켪 +켫 +켬 +켭 +켮 +켯 +켰 +켱 +켲 +켳 +켴 +켵 +켶 +켷 +켸 +켹 +켺 +켻 +켼 +켽 +켾 +켿 +콀 +콁 +콂 +콃 +콄 +콅 +콆 +콇 +콈 +콉 +콊 +콋 +콌 +콍 +콎 +콏 +콐 +콑 +콒 +콓 +코 +콕 +콖 +콗 +콘 +콙 +콚 +콛 +콜 +콝 +콞 +콟 +콠 +콡 +콢 +콣 +콤 +콥 +콦 +콧 +콨 +콩 +콪 +콫 +콬 +콭 +콮 +콯 +콰 +콱 +콲 +콳 +콴 +콵 +콶 +콷 +콸 +콹 +콺 +콻 +콼 +콽 +콾 +콿 +쾀 +쾁 +쾂 +쾃 +쾄 +쾅 +쾆 +쾇 +쾈 +쾉 +쾊 +쾋 +쾌 +쾍 +쾎 +쾏 +쾐 +쾑 +쾒 +쾓 +쾔 +쾕 +쾖 +쾗 +쾘 +쾙 +쾚 +쾛 +쾜 +쾝 +쾞 +쾟 +쾠 +쾡 +쾢 +쾣 +쾤 +쾥 +쾦 +쾧 +쾨 +쾩 +쾪 +쾫 +쾬 +쾭 +쾮 +쾯 +쾰 +쾱 +쾲 +쾳 +쾴 +쾵 +쾶 +쾷 +쾸 +쾹 +쾺 +쾻 +쾼 +쾽 +쾾 +쾿 +쿀 +쿁 +쿂 +쿃 +쿄 +쿅 +쿆 +쿇 +쿈 +쿉 +쿊 +쿋 +쿌 +쿍 +쿎 +쿏 +쿐 +쿑 +쿒 +쿓 +쿔 +쿕 +쿖 +쿗 +쿘 +쿙 +쿚 +쿛 +쿜 +쿝 +쿞 +쿟 +쿠 +쿡 +쿢 +쿣 +쿤 +쿥 +쿦 +쿧 +쿨 +쿩 +쿪 +쿫 +쿬 +쿭 +쿮 +쿯 +쿰 +쿱 +쿲 +쿳 +쿴 +쿵 +쿶 +쿷 +쿸 +쿹 +쿺 +쿻 +쿼 +쿽 +쿾 +쿿 +퀀 +퀁 +퀂 +퀃 +퀄 +퀅 +퀆 +퀇 +퀈 +퀉 +퀊 +퀋 +퀌 +퀍 +퀎 +퀏 +퀐 +퀑 +퀒 +퀓 +퀔 +퀕 +퀖 +퀗 +퀘 +퀙 +퀚 +퀛 +퀜 +퀝 +퀞 +퀟 +퀠 +퀡 +퀢 +퀣 +퀤 +퀥 +퀦 +퀧 +퀨 +퀩 +퀪 +퀫 +퀬 +퀭 +퀮 +퀯 +퀰 +퀱 +퀲 +퀳 +퀴 +퀵 +퀶 +퀷 +퀸 +퀹 +퀺 +퀻 +퀼 +퀽 +퀾 +퀿 +큀 +큁 +큂 +큃 +큄 +큅 +큆 +큇 +큈 +큉 +큊 +큋 +큌 +큍 +큎 +큏 +큐 +큑 +큒 +큓 +큔 +큕 +큖 +큗 +큘 +큙 +큚 +큛 +큜 +큝 +큞 +큟 +큠 +큡 +큢 +큣 +큤 +큥 +큦 +큧 +큨 +큩 +큪 +큫 +크 +큭 +큮 +큯 +큰 +큱 +큲 +큳 +클 +큵 +큶 +큷 +큸 +큹 +큺 +큻 +큼 +큽 +큾 +큿 +킀 +킁 +킂 +킃 +킄 +킅 +킆 +킇 +킈 +킉 +킊 +킋 +킌 +킍 +킎 +킏 +킐 +킑 +킒 +킓 +킔 +킕 +킖 +킗 +킘 +킙 +킚 +킛 +킜 +킝 +킞 +킟 +킠 +킡 +킢 +킣 +키 +킥 +킦 +킧 +킨 +킩 +킪 +킫 +킬 +킭 +킮 +킯 +킰 +킱 +킲 +킳 +킴 +킵 +킶 +킷 +킸 +킹 +킺 +킻 +킼 +킽 +킾 +킿 +타 +탁 +탂 +탃 +탄 +탅 +탆 +탇 +탈 +탉 +탊 +탋 +탌 +탍 +탎 +탏 +탐 +탑 +탒 +탓 +탔 +탕 +탖 +탗 +탘 +탙 +탚 +탛 +태 +택 +탞 +탟 +탠 +탡 +탢 +탣 +탤 +탥 +탦 +탧 +탨 +탩 +탪 +탫 +탬 +탭 +탮 +탯 +탰 +탱 +탲 +탳 +탴 +탵 +탶 +탷 +탸 +탹 +탺 +탻 +탼 +탽 +탾 +탿 +턀 +턁 +턂 +턃 +턄 +턅 +턆 +턇 +턈 +턉 +턊 +턋 +턌 +턍 +턎 +턏 +턐 +턑 +턒 +턓 +턔 +턕 +턖 +턗 +턘 +턙 +턚 +턛 +턜 +턝 +턞 +턟 +턠 +턡 +턢 +턣 +턤 +턥 +턦 +턧 +턨 +턩 +턪 +턫 +턬 +턭 +턮 +턯 +터 +턱 +턲 +턳 +턴 +턵 +턶 +턷 +털 +턹 +턺 +턻 +턼 +턽 +턾 +턿 +텀 +텁 +텂 +텃 +텄 +텅 +텆 +텇 +텈 +텉 +텊 +텋 +테 +텍 +텎 +텏 +텐 +텑 +텒 +텓 +텔 +텕 +텖 +텗 +텘 +텙 +텚 +텛 +템 +텝 +텞 +텟 +텠 +텡 +텢 +텣 +텤 +텥 +텦 +텧 +텨 +텩 +텪 +텫 +텬 +텭 +텮 +텯 +텰 +텱 +텲 +텳 +텴 +텵 +텶 +텷 +텸 +텹 +텺 +텻 +텼 +텽 +텾 +텿 +톀 +톁 +톂 +톃 +톄 +톅 +톆 +톇 +톈 +톉 +톊 +톋 +톌 +톍 +톎 +톏 +톐 +톑 +톒 +톓 +톔 +톕 +톖 +톗 +톘 +톙 +톚 +톛 +톜 +톝 +톞 +톟 +토 +톡 +톢 +톣 +톤 +톥 +톦 +톧 +톨 +톩 +톪 +톫 +톬 +톭 +톮 +톯 +톰 +톱 +톲 +톳 +톴 +통 +톶 +톷 +톸 +톹 +톺 +톻 +톼 +톽 +톾 +톿 +퇀 +퇁 +퇂 +퇃 +퇄 +퇅 +퇆 +퇇 +퇈 +퇉 +퇊 +퇋 +퇌 +퇍 +퇎 +퇏 +퇐 +퇑 +퇒 +퇓 +퇔 +퇕 +퇖 +퇗 +퇘 +퇙 +퇚 +퇛 +퇜 +퇝 +퇞 +퇟 +퇠 +퇡 +퇢 +퇣 +퇤 +퇥 +퇦 +퇧 +퇨 +퇩 +퇪 +퇫 +퇬 +퇭 +퇮 +퇯 +퇰 +퇱 +퇲 +퇳 +퇴 +퇵 +퇶 +퇷 +퇸 +퇹 +퇺 +퇻 +퇼 +퇽 +퇾 +퇿 +툀 +툁 +툂 +툃 +툄 +툅 +툆 +툇 +툈 +툉 +툊 +툋 +툌 +툍 +툎 +툏 +툐 +툑 +툒 +툓 +툔 +툕 +툖 +툗 +툘 +툙 +툚 +툛 +툜 +툝 +툞 +툟 +툠 +툡 +툢 +툣 +툤 +툥 +툦 +툧 +툨 +툩 +툪 +툫 +투 +툭 +툮 +툯 +툰 +툱 +툲 +툳 +툴 +툵 +툶 +툷 +툸 +툹 +툺 +툻 +툼 +툽 +툾 +툿 +퉀 +퉁 +퉂 +퉃 +퉄 +퉅 +퉆 +퉇 +퉈 +퉉 +퉊 +퉋 +퉌 +퉍 +퉎 +퉏 +퉐 +퉑 +퉒 +퉓 +퉔 +퉕 +퉖 +퉗 +퉘 +퉙 +퉚 +퉛 +퉜 +퉝 +퉞 +퉟 +퉠 +퉡 +퉢 +퉣 +퉤 +퉥 +퉦 +퉧 +퉨 +퉩 +퉪 +퉫 +퉬 +퉭 +퉮 +퉯 +퉰 +퉱 +퉲 +퉳 +퉴 +퉵 +퉶 +퉷 +퉸 +퉹 +퉺 +퉻 +퉼 +퉽 +퉾 +퉿 +튀 +튁 +튂 +튃 +튄 +튅 +튆 +튇 +튈 +튉 +튊 +튋 +튌 +튍 +튎 +튏 +튐 +튑 +튒 +튓 +튔 +튕 +튖 +튗 +튘 +튙 +튚 +튛 +튜 +튝 +튞 +튟 +튠 +튡 +튢 +튣 +튤 +튥 +튦 +튧 +튨 +튩 +튪 +튫 +튬 +튭 +튮 +튯 +튰 +튱 +튲 +튳 +튴 +튵 +튶 +튷 +트 +특 +튺 +튻 +튼 +튽 +튾 +튿 +틀 +틁 +틂 +틃 +틄 +틅 +틆 +틇 +틈 +틉 +틊 +틋 +틌 +틍 +틎 +틏 +틐 +틑 +틒 +틓 +틔 +틕 +틖 +틗 +틘 +틙 +틚 +틛 +틜 +틝 +틞 +틟 +틠 +틡 +틢 +틣 +틤 +틥 +틦 +틧 +틨 +틩 +틪 +틫 +틬 +틭 +틮 +틯 +티 +틱 +틲 +틳 +틴 +틵 +틶 +틷 +틸 +틹 +틺 +틻 +틼 +틽 +틾 +틿 +팀 +팁 +팂 +팃 +팄 +팅 +팆 +팇 +팈 +팉 +팊 +팋 +파 +팍 +팎 +팏 +판 +팑 +팒 +팓 +팔 +팕 +팖 +팗 +팘 +팙 +팚 +팛 +팜 +팝 +팞 +팟 +팠 +팡 +팢 +팣 +팤 +팥 +팦 +팧 +패 +팩 +팪 +팫 +팬 +팭 +팮 +팯 +팰 +팱 +팲 +팳 +팴 +팵 +팶 +팷 +팸 +팹 +팺 +팻 +팼 +팽 +팾 +팿 +퍀 +퍁 +퍂 +퍃 +퍄 +퍅 +퍆 +퍇 +퍈 +퍉 +퍊 +퍋 +퍌 +퍍 +퍎 +퍏 +퍐 +퍑 +퍒 +퍓 +퍔 +퍕 +퍖 +퍗 +퍘 +퍙 +퍚 +퍛 +퍜 +퍝 +퍞 +퍟 +퍠 +퍡 +퍢 +퍣 +퍤 +퍥 +퍦 +퍧 +퍨 +퍩 +퍪 +퍫 +퍬 +퍭 +퍮 +퍯 +퍰 +퍱 +퍲 +퍳 +퍴 +퍵 +퍶 +퍷 +퍸 +퍹 +퍺 +퍻 +퍼 +퍽 +퍾 +퍿 +펀 +펁 +펂 +펃 +펄 +펅 +펆 +펇 +펈 +펉 +펊 +펋 +펌 +펍 +펎 +펏 +펐 +펑 +펒 +펓 +펔 +펕 +펖 +펗 +페 +펙 +펚 +펛 +펜 +펝 +펞 +펟 +펠 +펡 +펢 +펣 +펤 +펥 +펦 +펧 +펨 +펩 +펪 +펫 +펬 +펭 +펮 +펯 +펰 +펱 +펲 +펳 +펴 +펵 +펶 +펷 +편 +펹 +펺 +펻 +펼 +펽 +펾 +펿 +폀 +폁 +폂 +폃 +폄 +폅 +폆 +폇 +폈 +평 +폊 +폋 +폌 +폍 +폎 +폏 +폐 +폑 +폒 +폓 +폔 +폕 +폖 +폗 +폘 +폙 +폚 +폛 +폜 +폝 +폞 +폟 +폠 +폡 +폢 +폣 +폤 +폥 +폦 +폧 +폨 +폩 +폪 +폫 +포 +폭 +폮 +폯 +폰 +폱 +폲 +폳 +폴 +폵 +폶 +폷 +폸 +폹 +폺 +폻 +폼 +폽 +폾 +폿 +퐀 +퐁 +퐂 +퐃 +퐄 +퐅 +퐆 +퐇 +퐈 +퐉 +퐊 +퐋 +퐌 +퐍 +퐎 +퐏 +퐐 +퐑 +퐒 +퐓 +퐔 +퐕 +퐖 +퐗 +퐘 +퐙 +퐚 +퐛 +퐜 +퐝 +퐞 +퐟 +퐠 +퐡 +퐢 +퐣 +퐤 +퐥 +퐦 +퐧 +퐨 +퐩 +퐪 +퐫 +퐬 +퐭 +퐮 +퐯 +퐰 +퐱 +퐲 +퐳 +퐴 +퐵 +퐶 +퐷 +퐸 +퐹 +퐺 +퐻 +퐼 +퐽 +퐾 +퐿 +푀 +푁 +푂 +푃 +푄 +푅 +푆 +푇 +푈 +푉 +푊 +푋 +푌 +푍 +푎 +푏 +푐 +푑 +푒 +푓 +푔 +푕 +푖 +푗 +푘 +푙 +푚 +푛 +표 +푝 +푞 +푟 +푠 +푡 +푢 +푣 +푤 +푥 +푦 +푧 +푨 +푩 +푪 +푫 +푬 +푭 +푮 +푯 +푰 +푱 +푲 +푳 +푴 +푵 +푶 +푷 +푸 +푹 +푺 +푻 +푼 +푽 +푾 +푿 +풀 +풁 +풂 +풃 +풄 +풅 +풆 +풇 +품 +풉 +풊 +풋 +풌 +풍 +풎 +풏 +풐 +풑 +풒 +풓 +풔 +풕 +풖 +풗 +풘 +풙 +풚 +풛 +풜 +풝 +풞 +풟 +풠 +풡 +풢 +풣 +풤 +풥 +풦 +풧 +풨 +풩 +풪 +풫 +풬 +풭 +풮 +풯 +풰 +풱 +풲 +풳 +풴 +풵 +풶 +풷 +풸 +풹 +풺 +풻 +풼 +풽 +풾 +풿 +퓀 +퓁 +퓂 +퓃 +퓄 +퓅 +퓆 +퓇 +퓈 +퓉 +퓊 +퓋 +퓌 +퓍 +퓎 +퓏 +퓐 +퓑 +퓒 +퓓 +퓔 +퓕 +퓖 +퓗 +퓘 +퓙 +퓚 +퓛 +퓜 +퓝 +퓞 +퓟 +퓠 +퓡 +퓢 +퓣 +퓤 +퓥 +퓦 +퓧 +퓨 +퓩 +퓪 +퓫 +퓬 +퓭 +퓮 +퓯 +퓰 +퓱 +퓲 +퓳 +퓴 +퓵 +퓶 +퓷 +퓸 +퓹 +퓺 +퓻 +퓼 +퓽 +퓾 +퓿 +픀 +픁 +픂 +픃 +프 +픅 +픆 +픇 +픈 +픉 +픊 +픋 +플 +픍 +픎 +픏 +픐 +픑 +픒 +픓 +픔 +픕 +픖 +픗 +픘 +픙 +픚 +픛 +픜 +픝 +픞 +픟 +픠 +픡 +픢 +픣 +픤 +픥 +픦 +픧 +픨 +픩 +픪 +픫 +픬 +픭 +픮 +픯 +픰 +픱 +픲 +픳 +픴 +픵 +픶 +픷 +픸 +픹 +픺 +픻 +피 +픽 +픾 +픿 +핀 +핁 +핂 +핃 +필 +핅 +핆 +핇 +핈 +핉 +핊 +핋 +핌 +핍 +핎 +핏 +핐 +핑 +핒 +핓 +핔 +핕 +핖 +핗 +하 +학 +핚 +핛 +한 +핝 +핞 +핟 +할 +핡 +핢 +핣 +핤 +핥 +핦 +핧 +함 +합 +핪 +핫 +핬 +항 +핮 +핯 +핰 +핱 +핲 +핳 +해 +핵 +핶 +핷 +핸 +핹 +핺 +핻 +핼 +핽 +핾 +핿 +햀 +햁 +햂 +햃 +햄 +햅 +햆 +햇 +했 +행 +햊 +햋 +햌 +햍 +햎 +햏 +햐 +햑 +햒 +햓 +햔 +햕 +햖 +햗 +햘 +햙 +햚 +햛 +햜 +햝 +햞 +햟 +햠 +햡 +햢 +햣 +햤 +향 +햦 +햧 +햨 +햩 +햪 +햫 +햬 +햭 +햮 +햯 +햰 +햱 +햲 +햳 +햴 +햵 +햶 +햷 +햸 +햹 +햺 +햻 +햼 +햽 +햾 +햿 +헀 +헁 +헂 +헃 +헄 +헅 +헆 +헇 +허 +헉 +헊 +헋 +헌 +헍 +헎 +헏 +헐 +헑 +헒 +헓 +헔 +헕 +헖 +헗 +험 +헙 +헚 +헛 +헜 +헝 +헞 +헟 +헠 +헡 +헢 +헣 +헤 +헥 +헦 +헧 +헨 +헩 +헪 +헫 +헬 +헭 +헮 +헯 +헰 +헱 +헲 +헳 +헴 +헵 +헶 +헷 +헸 +헹 +헺 +헻 +헼 +헽 +헾 +헿 +혀 +혁 +혂 +혃 +현 +혅 +혆 +혇 +혈 +혉 +혊 +혋 +혌 +혍 +혎 +혏 +혐 +협 +혒 +혓 +혔 +형 +혖 +혗 +혘 +혙 +혚 +혛 +혜 +혝 +혞 +혟 +혠 +혡 +혢 +혣 +혤 +혥 +혦 +혧 +혨 +혩 +혪 +혫 +혬 +혭 +혮 +혯 +혰 +혱 +혲 +혳 +혴 +혵 +혶 +혷 +호 +혹 +혺 +혻 +혼 +혽 +혾 +혿 +홀 +홁 +홂 +홃 +홄 +홅 +홆 +홇 +홈 +홉 +홊 +홋 +홌 +홍 +홎 +홏 +홐 +홑 +홒 +홓 +화 +확 +홖 +홗 +환 +홙 +홚 +홛 +활 +홝 +홞 +홟 +홠 +홡 +홢 +홣 +홤 +홥 +홦 +홧 +홨 +황 +홪 +홫 +홬 +홭 +홮 +홯 +홰 +홱 +홲 +홳 +홴 +홵 +홶 +홷 +홸 +홹 +홺 +홻 +홼 +홽 +홾 +홿 +횀 +횁 +횂 +횃 +횄 +횅 +횆 +횇 +횈 +횉 +횊 +횋 +회 +획 +횎 +횏 +횐 +횑 +횒 +횓 +횔 +횕 +횖 +횗 +횘 +횙 +횚 +횛 +횜 +횝 +횞 +횟 +횠 +횡 +횢 +횣 +횤 +횥 +횦 +횧 +효 +횩 +횪 +횫 +횬 +횭 +횮 +횯 +횰 +횱 +횲 +횳 +횴 +횵 +횶 +횷 +횸 +횹 +횺 +횻 +횼 +횽 +횾 +횿 +훀 +훁 +훂 +훃 +후 +훅 +훆 +훇 +훈 +훉 +훊 +훋 +훌 +훍 +훎 +훏 +훐 +훑 +훒 +훓 +훔 +훕 +훖 +훗 +훘 +훙 +훚 +훛 +훜 +훝 +훞 +훟 +훠 +훡 +훢 +훣 +훤 +훥 +훦 +훧 +훨 +훩 +훪 +훫 +훬 +훭 +훮 +훯 +훰 +훱 +훲 +훳 +훴 +훵 +훶 +훷 +훸 +훹 +훺 +훻 +훼 +훽 +훾 +훿 +휀 +휁 +휂 +휃 +휄 +휅 +휆 +휇 +휈 +휉 +휊 +휋 +휌 +휍 +휎 +휏 +휐 +휑 +휒 +휓 +휔 +휕 +휖 +휗 +휘 +휙 +휚 +휛 +휜 +휝 +휞 +휟 +휠 +휡 +휢 +휣 +휤 +휥 +휦 +휧 +휨 +휩 +휪 +휫 +휬 +휭 +휮 +휯 +휰 +휱 +휲 +휳 +휴 +휵 +휶 +휷 +휸 +휹 +휺 +휻 +휼 +휽 +휾 +휿 +흀 +흁 +흂 +흃 +흄 +흅 +흆 +흇 +흈 +흉 +흊 +흋 +흌 +흍 +흎 +흏 +흐 +흑 +흒 +흓 +흔 +흕 +흖 +흗 +흘 +흙 +흚 +흛 +흜 +흝 +흞 +흟 +흠 +흡 +흢 +흣 +흤 +흥 +흦 +흧 +흨 +흩 +흪 +흫 +희 +흭 +흮 +흯 +흰 +흱 +흲 +흳 +흴 +흵 +흶 +흷 +흸 +흹 +흺 +흻 +흼 +흽 +흾 +흿 +힀 +힁 +힂 +힃 +힄 +힅 +힆 +힇 +히 +힉 +힊 +힋 +힌 +힍 +힎 +힏 +힐 +힑 +힒 +힓 +힔 +힕 +힖 +힗 +힘 +힙 +힚 +힛 +힜 +힝 +힞 +힟 +힠 +힡 +힢 +힣 +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +] +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +© +‥ +{ +} +\ +| +@ +^ +~ +÷ +∕ +∙ +⋅ +· +± +∓ +∩ +∪ +□ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +⊥ +∟ +∠ +∡ +∢ +′ +″ +∥ +⊾ +⊿ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +® +℉ +Ω +℧ +Å +⌀ +ℏ +⅀ +⍺ +⍵ +¢ +€ +£ +¥ +₿ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +● +▶ +𝑢 +︽ +– +﹥ +𝜓 +• +∋ +ƒ +० +⬆ +Ạ +◀ + +▫ +︾ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +Ø +Ù +Ú +Û +Ü +Ý +Þ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +ø +ù +ú +û +ü +ý +þ +ÿ +¡ +¤ +¦ +§ +¨ +ª +« +¬ +¯ +° +² +³ +´ +µ +¶ +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +‐ +‑ +‒ +— +― +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +‟ +† +‡ +‣ +․ +… +‧ +‰ +‴ +‵ +‶ +‷ +‸ +‹ +› +※ +‼ +‽ +‾ +₤ +₡ +₹ +− +∖ +∗ +≈ +≠ +≡ +≤ +≥ +⊂ +⊃ +↑ +→ +↓ +↕ +™ +Ω +℮ +∆ +✓ +✗ +✘ +▪ +◼ +✔ +✕ +☑ +☒ +№ +₽ +₴ +Α +α +Β +β +Γ +γ +Δ +δ +Ε +ε +Ζ +ζ +Η +η +Θ +θ +Ι +ι +Κ +κ +Λ +λ +Μ +μ +Ν +ν +Ξ +ξ +Ο +ο +Π +π +Ρ +ρ +Σ +σ +ς +Τ +τ +Υ +υ +Φ +φ +Χ +χ +Ψ +ψ +ω diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_latin_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_latin_dict.txt new file mode 100644 index 000000000..c6182570f --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_latin_dict.txt @@ -0,0 +1,836 @@ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +× +Ø +Ù +Ú +Û +Ü +Ý +Þ +ß +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +÷ +ø +ù +ú +û +ü +ý +þ +ÿ +Ā +ā +Ă +ă +Ą +ą +Ć +ć +Ĉ +ĉ +Ċ +ċ +Č +č +Ď +ď +Đ +đ +Ē +ē +Ĕ +ĕ +Ė +ė +Ę +ę +Ě +ě +Ĝ +ĝ +Ğ +ğ +Ġ +ġ +Ģ +ģ +Ĥ +ĥ +Ħ +ħ +Ĩ +ĩ +Ī +ī +Ĭ +ĭ +Į +į +İ +ı +IJ +ij +Ĵ +ĵ +Ķ +ķ +ĸ +Ĺ +ĺ +Ļ +ļ +Ľ +ľ +Ŀ +ŀ +Ł +ł +Ń +ń +Ņ +ņ +Ň +ň +ʼn +Ŋ +ŋ +Ō +ō +Ŏ +ŏ +Ő +ő +Œ +œ +Ŕ +ŕ +Ŗ +ŗ +Ř +ř +Ś +ś +Ŝ +ŝ +Ş +ş +Š +š +Ţ +ţ +Ť +ť +Ŧ +ŧ +Ũ +ũ +Ū +ū +Ŭ +ŭ +Ů +ů +Ű +ű +Ų +ų +Ŵ +ŵ +Ŷ +ŷ +Ÿ +Ź +ź +Ż +ż +Ž +ž +ſ +ƀ +Ɓ +Ƃ +ƃ +Ƅ +ƅ +Ɔ +Ƈ +ƈ +Ɖ +Ɗ +Ƌ +ƌ +ƍ +Ǝ +Ə +Ɛ +Ƒ +ƒ +Ɠ +Ɣ +ƕ +Ɩ +Ɨ +Ƙ +ƙ +ƚ +ƛ +Ɯ +Ɲ +ƞ +Ɵ +Ơ +ơ +Ƣ +ƣ +Ƥ +ƥ +Ʀ +Ƨ +ƨ +Ʃ +ƪ +ƫ +Ƭ +ƭ +Ʈ +Ư +ư +Ʊ +Ʋ +Ƴ +ƴ +Ƶ +ƶ +Ʒ +Ƹ +ƹ +ƺ +ƻ +Ƽ +ƽ +ƾ +ƿ +ǀ +ǁ +ǂ +ǃ +DŽ +Dž +dž +LJ +Lj +lj +NJ +Nj +nj +Ǎ +ǎ +Ǐ +ǐ +Ǒ +ǒ +Ǔ +ǔ +Ǖ +ǖ +Ǘ +ǘ +Ǚ +ǚ +Ǜ +ǜ +ǝ +Ǟ +ǟ +Ǡ +ǡ +Ǣ +ǣ +Ǥ +ǥ +Ǧ +ǧ +Ǩ +ǩ +Ǫ +ǫ +Ǭ +ǭ +Ǯ +ǯ +ǰ +DZ +Dz +dz +Ǵ +ǵ +Ƕ +Ƿ +Ǹ +ǹ +Ǻ +ǻ +Ǽ +ǽ +Ǿ +ǿ +Ȁ +ȁ +Ȃ +ȃ +Ȅ +ȅ +Ȇ +ȇ +Ȉ +ȉ +Ȋ +ȋ +Ȍ +ȍ +Ȏ +ȏ +Ȑ +ȑ +Ȓ +ȓ +Ȕ +ȕ +Ȗ +ȗ +Ș +ș +Ț +ț +Ȝ +ȝ +Ȟ +ȟ +Ƞ +ȡ +Ȣ +ȣ +Ȥ +ȥ +Ȧ +ȧ +Ȩ +ȩ +Ȫ +ȫ +Ȭ +ȭ +Ȯ +ȯ +Ȱ +ȱ +Ȳ +ȳ +ȴ +ȵ +ȶ +ȷ +ȸ +ȹ +Ⱥ +Ȼ +ȼ +Ƚ +Ⱦ +ȿ +ɀ +Ɂ +ɂ +Ƀ +Ʉ +Ʌ +Ɇ +ɇ +Ɉ +ɉ +Ɋ +ɋ +Ɍ +ɍ +Ɏ +ɏ +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +: +; +< += +> +? +@ +[ +\ +] +_ +` +{ +| +} +^ +~ +© +® +℉ +№ +Ω +℮ +™ +∆ +✓ +✔ +✗ +✘ +✕ +☑ +☒ +● +▪ +▫ +◼ +▶ +◀ +⬆ +¤ +¦ +§ +¨ +ª +« +¬ +¯ +° +² +³ +´ +µ +¶ +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +‐ +‑ +‒ +— +― +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +‟ +† +‡ +‣ +․ +… +‧ +‰ +‴ +‵ +‶ +‷ +‸ +‹ +› +※ +‼ +‽ +‾ +− +₤ +₡ +₹ +₽ +₴ +₿ +¢ +€ +£ +¥ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +↑ +→ +↓ +↕ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +∩ +∪ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +∖ +∗ +≈ +≠ +≡ +≤ +≥ +⊂ +⊃ +⊥ +⊾ +⊿ +□ +∥ +∋ +ƒ +′ +″ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +Ø +Ù +Ú +Û +Ü +Ý +Þ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +ø +ù +ú +û +ü +ý +þ +ÿ +Α +Β +Γ +Δ +Ε +Ζ +Η +Θ +Ι +Κ +Λ +Μ +Ν +Ξ +Ο +Π +Ρ +Σ +Τ +Υ +Φ +Χ +Ψ +Ω +α +β +γ +δ +ε +ζ +η +θ +ι +κ +λ +μ +ν +ξ +ο +π +ρ +σ +ς +τ +υ +φ +χ +ψ +ω +Å +ℏ +⌀ +⍺ +⍵ +𝑢 +𝜓 +० +‥ +︽ +﹥ +• +÷ +∕ +∙ +⋅ +· +± +∓ +∟ +∠ +∡ +∢ +℧ +☺ diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_ta_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_ta_dict.txt new file mode 100644 index 000000000..1290f6595 --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_ta_dict.txt @@ -0,0 +1,513 @@ +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +] +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +© +‥ +{ +} +\ +| +@ +^ +~ +÷ +∕ +∙ +⋅ +· +± +∓ +∩ +∪ +□ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +⊥ +∟ +∠ +∡ +∢ +′ +″ +∥ +⊾ +⊿ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +® +℉ +Ω +℧ +Å +⌀ +ℏ +⅀ +⍺ +⍵ +¢ +€ +£ +¥ +₿ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +● +▶ +𝑢 +︽ +– +﹥ +𝜓 +• +∋ +ƒ +० +⬆ +Ạ +◀ + +▫ +︾ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +Ø +Ù +Ú +Û +Ü +Ý +Þ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +ø +ù +ú +û +ü +ý +þ +ÿ +¡ +¤ +¦ +§ +¨ +ª +« +¬ +¯ +° +² +³ +´ +µ +¶ +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +‐ +‑ +‒ +— +― +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +‟ +† +‡ +‣ +․ +… +‧ +‰ +‴ +‵ +‶ +‷ +‸ +‹ +› +※ +‼ +‽ +‾ +₤ +₡ +₹ +− +∖ +∗ +≈ +≠ +≡ +≤ +≥ +⊂ +⊃ +↑ +→ +↓ +↕ +™ +Ω +℮ +∆ +✓ +✗ +✘ +▪ +◼ +✔ +✕ +☑ +☒ +№ +₽ +₴ +Α +α +Β +β +Γ +γ +Δ +δ +Ε +ε +Ζ +ζ +Η +η +Θ +θ +Ι +ι +Κ +κ +Λ +λ +Μ +μ +Ν +ν +Ξ +ξ +Ο +ο +Π +π +Ρ +ρ +Σ +σ +ς +Τ +τ +Υ +υ +Φ +φ +Χ +χ +Ψ +ψ +ω +ஂ +ஃ +அ +ஆ +இ +ஈ +உ +ஊ +எ +ஏ +ஐ +ஒ +ஓ +ஔ +க +ங +ச +ஜ +ஞ +ட +ண +த +ந +ன +ப +ம +ய +ர +ற +ல +ள +ழ +வ +ஶ +ஷ +ஸ +ஹ +ா +ி +ீ +ு +ூ +ெ +ே +ை +ொ +ோ +ௌ +் +ௐ +ௗ +௦ +௧ +௨ +௩ +௪ +௫ +௬ +௭ +௮ +௯ +௰ +௱ +௲ +௳ +௴ +௵ +௶ +௷ +௸ +௹ +௺ diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_te_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_te_dict.txt new file mode 100644 index 000000000..878f6393f --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_te_dict.txt @@ -0,0 +1,540 @@ +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +] +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +© +‥ +{ +} +\ +| +@ +^ +~ +÷ +∕ +∙ +⋅ +· +± +∓ +∩ +∪ +□ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +⊥ +∟ +∠ +∡ +∢ +′ +″ +∥ +⊾ +⊿ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +® +℉ +Ω +℧ +Å +⌀ +ℏ +⅀ +⍺ +⍵ +¢ +€ +£ +¥ +₿ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +● +▶ +𝑢 +︽ +– +﹥ +𝜓 +• +∋ +ƒ +⬆ +Ạ +◀ + +▫ +︾ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +Ø +Ù +Ú +Û +Ü +Ý +Þ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +ø +ù +ú +û +ü +ý +þ +ÿ +¡ +¤ +¦ +§ +¨ +ª +« +¬ +¯ +° +² +³ +´ +µ +¶ +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +‐ +‑ +‒ +— +― +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +‟ +† +‡ +‣ +․ +… +‧ +‰ +‴ +‵ +‶ +‷ +‸ +‹ +› +※ +‼ +‽ +‾ +₤ +₡ +₹ +− +∖ +∗ +≈ +≠ +≡ +≤ +≥ +⊂ +⊃ +↑ +→ +↓ +↕ +™ +Ω +℮ +∆ +✓ +✗ +✘ +▪ +◼ +✔ +✕ +☑ +☒ +№ +₽ +₴ +Α +α +Β +β +Γ +γ +Δ +δ +Ε +ε +Ζ +ζ +Η +η +Θ +θ +Ι +ι +Κ +κ +Λ +λ +Μ +μ +Ν +ν +Ξ +ξ +Ο +ο +Π +π +Ρ +ρ +Σ +σ +ς +Τ +τ +Υ +υ +Φ +φ +Χ +χ +Ψ +ψ +ω +ఀ +ఁ +ం +ః +ఄ +అ +ఆ +ఇ +ఈ +ఉ +ఊ +ఋ +ఌ +ఎ +ఏ +ఐ +ఒ +ఓ +ఔ +క +ఖ +గ +ఘ +ఙ +చ +ఛ +జ +ఝ +ఞ +ట +ఠ +డ +ఢ +ణ +త +థ +ద +ధ +న +ప +ఫ +బ +భ +మ +య +ర +ఱ +ల +ళ +ఴ +వ +శ +ష +స +హ +఼ +ఽ +ా +ి +ీ +ు +ూ +ృ +ౄ +ె +ే +ై +ొ +ో +ౌ +్ +ౕ +ౖ +ౘ +ౙ +ౚ +ౝ +ౠ +ౡ +ౢ +ౣ +౦ +౧ +౨ +౩ +౪ +౫ +౬ +౭ +౮ +౯ +౷ +౸ +౹ +౺ +౻ +౼ +౽ +౾ +౿ diff --git a/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_th_dict.txt b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_th_dict.txt new file mode 100644 index 000000000..afab9d5a3 --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/dict/ppocrv5_th_dict.txt @@ -0,0 +1,524 @@ +! +" +# +$ +% +& +' +( +) +* ++ +, +- +. +/ +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +: +; +< += +> +? +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +P +Q +R +S +T +U +V +W +X +Y +Z +[ +] +_ +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +p +q +r +s +t +u +v +w +x +y +z +© +‥ +{ +} +\ +| +@ +^ +~ +÷ +∕ +∙ +⋅ +· +± +∓ +∩ +∪ +□ +← +↔ +⇒ +⇐ +⇔ +∀ +∃ +∄ +∴ +∵ +∝ +∞ +⊥ +∟ +∠ +∡ +∢ +′ +″ +∥ +⊾ +⊿ +∂ +∫ +∬ +∭ +∮ +∯ +∰ +∑ +∏ +√ +∛ +∜ +∱ +∲ +∳ +∶ +∷ +∼ +® +℉ +Ω +℧ +Å +⌀ +ℏ +⅀ +⍺ +⍵ +¢ +€ +£ +¥ +₿ +Ⅰ +Ⅱ +Ⅲ +Ⅳ +Ⅴ +Ⅵ +Ⅶ +Ⅷ +Ⅸ +Ⅹ +Ⅺ +Ⅻ +ⅰ +ⅱ +ⅲ +ⅳ +ⅴ +ⅵ +ⅶ +ⅷ +ⅸ +ⅹ +ⅺ +ⅻ +➀ +➁ +➂ +➃ +➄ +➅ +➆ +➇ +➈ +➉ +➊ +➋ +➌ +➍ +➎ +➏ +➐ +➑ +➒ +➓ +❶ +❷ +❸ +❹ +❺ +❻ +❼ +❽ +❾ +❿ +① +② +③ +④ +⑤ +⑥ +⑦ +⑧ +⑨ +⑩ +● +▶ +𝑢 +︽ +– +﹥ +𝜓 +• +∋ +ƒ +० +⬆ +Ạ +◀ + +▫ +︾ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Ð +Ñ +Ò +Ó +Ô +Õ +Ö +Ø +Ù +Ú +Û +Ü +Ý +Þ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +ø +ù +ú +û +ü +ý +þ +ÿ +¡ +¤ +¦ +§ +¨ +ª +« +¬ +¯ +° +² +³ +´ +µ +¶ +¸ +¹ +º +» +¼ +½ +¾ +¿ +× +‐ +‑ +‒ +— +― +‖ +‗ +‘ +’ +‚ +‛ +“ +” +„ +‟ +† +‡ +‣ +․ +… +‧ +‰ +‴ +‵ +‶ +‷ +‸ +‹ +› +※ +‼ +‽ +‾ +₤ +₡ +₹ +− +∖ +∗ +≈ +≠ +≡ +≤ +≥ +⊂ +⊃ +↑ +→ +↓ +↕ +™ +Ω +℮ +∆ +✓ +✗ +✘ +▪ +◼ +✔ +✕ +☑ +☒ +№ +₽ +₴ +Α +α +Β +β +Γ +γ +Δ +δ +Ε +ε +Ζ +ζ +Η +η +Θ +θ +Ι +ι +Κ +κ +Λ +λ +Μ +μ +Ν +ν +Ξ +ξ +Ο +ο +Π +π +Ρ +ρ +Σ +σ +ς +Τ +τ +Υ +υ +Φ +φ +Χ +χ +Ψ +ψ +ω +ก +ข +ค +ฅ +ฆ +ง +จ +ฉ +ช +ซ +ฌ +ญ +ฎ +ฏ +ฐ +ฑ +ฒ +ณ +ด +ต +ถ +ท +ธ +น +บ +ป +ผ +ฝ +พ +ฟ +ภ +ม +ย +ร +ฤ +ล +ฦ +ว +ศ +ษ +ส +ห +ฬ +อ +ฮ +ฯ +ะ +ั +า +ำ +ิ +ี +ึ +ื +ุ +ู +ฺ +฿ +เ +แ +โ +ใ +ไ +ๅ +ๆ +็ +่ +้ +๊ +๋ +์ +ํ +๐ +๑ +๒ +๓ +๔ +๕ +๖ +๗ +๘ +๙ +๚ diff --git a/mineru/model/utils/pytorchocr/utils/resources/models_config.yml b/mineru/model/utils/pytorchocr/utils/resources/models_config.yml new file mode 100644 index 000000000..db46ec9bc --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/models_config.yml @@ -0,0 +1,77 @@ +lang: + ch_lite: + det: ch_PP-OCRv5_det_infer.pth + rec: ch_PP-OCRv5_rec_infer.pth + dict: ppocrv5_dict.txt + ch_server: + det: ch_PP-OCRv5_det_infer.pth + rec: ch_PP-OCRv5_rec_server_infer.pth + dict: ppocrv5_dict.txt + ch: + det: ch_PP-OCRv5_det_infer.pth + rec: ch_PP-OCRv4_rec_server_doc_infer.pth + dict: ppocrv4_doc_dict.txt + korean: + det: ch_PP-OCRv5_det_infer.pth + rec: korean_PP-OCRv5_rec_infer.pth + dict: ppocrv5_korean_dict.txt + japan: + det: ch_PP-OCRv5_det_infer.pth + rec: ch_PP-OCRv5_rec_server_infer.pth + dict: ppocrv5_dict.txt + chinese_cht: + det: ch_PP-OCRv5_det_infer.pth + rec: ch_PP-OCRv5_rec_server_infer.pth + dict: ppocrv5_dict.txt + ta: + det: ch_PP-OCRv5_det_infer.pth + rec: ta_PP-OCRv5_rec_infer.pth + dict: ppocrv5_ta_dict.txt + te: + det: ch_PP-OCRv5_det_infer.pth + rec: te_PP-OCRv5_rec_infer.pth + dict: ppocrv5_te_dict.txt + ka: + det: Multilingual_PP-OCRv3_det_infer.pth + rec: ka_PP-OCRv3_rec_infer.pth + dict: ka_dict.txt + latin: + det: ch_PP-OCRv5_det_infer.pth + rec: latin_PP-OCRv5_rec_infer.pth + dict: ppocrv5_latin_dict.txt + arabic: + det: ch_PP-OCRv5_det_infer.pth + rec: arabic_PP-OCRv5_rec_infer.pth + dict: ppocrv5_arabic_dict.txt + cyrillic: + det: ch_PP-OCRv5_det_infer.pth + rec: cyrillic_PP-OCRv5_rec_infer.pth + dict: ppocrv5_cyrillic_dict.txt + devanagari: + det: ch_PP-OCRv5_det_infer.pth + rec: devanagari_PP-OCRv5_rec_infer.pth + dict: ppocrv5_devanagari_dict.txt + east_slavic: + det: ch_PP-OCRv5_det_infer.pth + rec: eslav_PP-OCRv5_rec_infer.pth + dict: ppocrv5_eslav_dict.txt + el: + det: ch_PP-OCRv5_det_infer.pth + rec: el_PP-OCRv5_rec_infer.pth + dict: ppocrv5_el_dict.txt + th: + det: ch_PP-OCRv5_det_infer.pth + rec: th_PP-OCRv5_rec_infer.pth + dict: ppocrv5_th_dict.txt + en: + det: ch_PP-OCRv5_det_infer.pth + rec: en_PP-OCRv5_rec_infer.pth + dict: ppocrv5_en_dict.txt + seal: + det: seal_PP-OCRv4_det_server_infer.pth + rec: ch_PP-OCRv4_rec_server_infer.pth + dict: ppocr_keys_v1.txt + seal_lite: + det: seal_PP-OCRv4_det_infer.pth + rec: ch_PP-OCRv4_rec_infer.pth + dict: ppocr_keys_v1.txt \ No newline at end of file diff --git a/mineru/model/utils/pytorchocr/utils/resources/pp_formulanet_arch_config.yaml b/mineru/model/utils/pytorchocr/utils/resources/pp_formulanet_arch_config.yaml new file mode 100644 index 000000000..c95f88536 --- /dev/null +++ b/mineru/model/utils/pytorchocr/utils/resources/pp_formulanet_arch_config.yaml @@ -0,0 +1,24 @@ +Architecture: + model_type: rec + algorithm: PP-FormulaNet_plus-M + in_channels: 3 + Transform: + Backbone: + name: PPHGNetV2_B6_Formula + class_num: 1024 + + Head: + name: PPFormulaNet_Head + max_new_tokens: 2560 + decoder_start_token_id: 0 + decoder_ffn_dim: 2048 + decoder_hidden_size: 512 + decoder_layers: 6 + temperature: 0.2 + do_sample: False + top_p: 0.95 + encoder_hidden_size: 2048 + is_export: False + length_aware: False + use_parallel: False + parallel_step: 0 \ No newline at end of file diff --git a/mineru/model/utils/tools/__init__.py b/mineru/model/utils/tools/__init__.py new file mode 100644 index 000000000..f64ba567a --- /dev/null +++ b/mineru/model/utils/tools/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. \ No newline at end of file diff --git a/mineru/model/utils/tools/infer/__init__.py b/mineru/model/utils/tools/infer/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/utils/tools/infer/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/utils/tools/infer/predict_cls.py b/mineru/model/utils/tools/infer/predict_cls.py new file mode 100644 index 000000000..5350c73ef --- /dev/null +++ b/mineru/model/utils/tools/infer/predict_cls.py @@ -0,0 +1,107 @@ +# Copyright (c) Opendatalab. All rights reserved. +import cv2 +import copy +import numpy as np +import math +import time +import torch +from ...pytorchocr.base_ocr_v20 import BaseOCRV20 +from . import pytorchocr_utility as utility +from ...pytorchocr.postprocess import build_post_process + + +class TextClassifier(BaseOCRV20): + def __init__(self, args, **kwargs): + self.device = args.device + self.cls_image_shape = [int(v) for v in args.cls_image_shape.split(",")] + self.cls_batch_num = args.cls_batch_num + self.cls_thresh = args.cls_thresh + postprocess_params = { + 'name': 'ClsPostProcess', + "label_list": args.label_list, + } + self.postprocess_op = build_post_process(postprocess_params) + + self.weights_path = args.cls_model_path + self.yaml_path = args.cls_yaml_path + network_config = utility.get_arch_config(self.weights_path) + super(TextClassifier, self).__init__(network_config, **kwargs) + + self.cls_image_shape = [int(v) for v in args.cls_image_shape.split(",")] + + self.limited_max_width = args.limited_max_width + self.limited_min_width = args.limited_min_width + + self.load_pytorch_weights(self.weights_path) + self.net.eval() + self.net.to(self.device) + + def resize_norm_img(self, img): + imgC, imgH, imgW = self.cls_image_shape + h = img.shape[0] + w = img.shape[1] + ratio = w / float(h) + imgW = max(min(imgW, self.limited_max_width), self.limited_min_width) + ratio_imgH = math.ceil(imgH * ratio) + ratio_imgH = max(ratio_imgH, self.limited_min_width) + if ratio_imgH > imgW: + resized_w = imgW + else: + resized_w = int(math.ceil(imgH * ratio)) + resized_image = cv2.resize(img, (resized_w, imgH)) + resized_image = resized_image.astype('float32') + if self.cls_image_shape[0] == 1: + resized_image = resized_image / 255 + resized_image = resized_image[np.newaxis, :] + else: + resized_image = resized_image.transpose((2, 0, 1)) / 255 + resized_image -= 0.5 + resized_image /= 0.5 + padding_im = np.zeros((imgC, imgH, imgW), dtype=np.float32) + padding_im[:, :, 0:resized_w] = resized_image + return padding_im + + def __call__(self, img_list): + img_list = copy.deepcopy(img_list) + img_num = len(img_list) + # Calculate the aspect ratio of all text bars + width_list = [] + for img in img_list: + width_list.append(img.shape[1] / float(img.shape[0])) + # Sorting can speed up the cls process + indices = np.argsort(np.array(width_list)) + + cls_res = [['', 0.0]] * img_num + batch_num = self.cls_batch_num + elapse = 0 + for beg_img_no in range(0, img_num, batch_num): + end_img_no = min(img_num, beg_img_no + batch_num) + norm_img_batch = [] + max_wh_ratio = 0 + for ino in range(beg_img_no, end_img_no): + h, w = img_list[indices[ino]].shape[0:2] + wh_ratio = w * 1.0 / h + max_wh_ratio = max(max_wh_ratio, wh_ratio) + for ino in range(beg_img_no, end_img_no): + norm_img = self.resize_norm_img(img_list[indices[ino]]) + norm_img = norm_img[np.newaxis, :] + norm_img_batch.append(norm_img) + norm_img_batch = np.concatenate(norm_img_batch) + norm_img_batch = norm_img_batch.copy() + starttime = time.time() + + with torch.no_grad(): + inp = torch.from_numpy(norm_img_batch) + inp = inp.to(self.device) + prob_out = self.net(inp) + prob_out = prob_out.cpu().numpy() + + cls_result = self.postprocess_op(prob_out) + elapse += time.time() - starttime + for rno in range(len(cls_result)): + label, score = cls_result[rno] + cls_res[indices[beg_img_no + rno]] = [label, score] + if '180' in label and score > self.cls_thresh: + img_list[indices[beg_img_no + rno]] = cv2.rotate( + img_list[indices[beg_img_no + rno]], 1) + return img_list, cls_res, elapse diff --git a/mineru/model/utils/tools/infer/predict_det.py b/mineru/model/utils/tools/infer/predict_det.py new file mode 100644 index 000000000..29981ef5b --- /dev/null +++ b/mineru/model/utils/tools/infer/predict_det.py @@ -0,0 +1,350 @@ +# Copyright (c) Opendatalab. All rights reserved. +import sys + +import numpy as np +import time +import torch +from ...pytorchocr.base_ocr_v20 import BaseOCRV20 +from . import pytorchocr_utility as utility +from ...pytorchocr.data import create_operators, transform +from ...pytorchocr.postprocess import build_post_process + + +class TextDetector(BaseOCRV20): + def __init__(self, args, **kwargs): + self.args = args + self.det_algorithm = args.det_algorithm + self.device = args.device + pre_process_list = [{ + 'DetResizeForTest': { + 'limit_side_len': args.det_limit_side_len, + 'limit_type': args.det_limit_type, + 'max_side_limit': args.det_max_side_limit, + } + }, { + 'NormalizeImage': { + 'std': [0.229, 0.224, 0.225], + 'mean': [0.485, 0.456, 0.406], + 'scale': '1./255.', + 'order': 'hwc' + } + }, { + 'ToCHWImage': None + }, { + 'KeepKeys': { + 'keep_keys': ['image', 'shape'] + } + }] + postprocess_params = {} + if self.det_algorithm == "DB": + postprocess_params['name'] = 'DBPostProcess' + postprocess_params["thresh"] = args.det_db_thresh + postprocess_params["box_thresh"] = args.det_db_box_thresh + postprocess_params["max_candidates"] = 1000 + postprocess_params["unclip_ratio"] = args.det_db_unclip_ratio + postprocess_params["use_dilation"] = args.use_dilation + postprocess_params["score_mode"] = args.det_db_score_mode + postprocess_params["box_type"] = args.det_box_type + elif self.det_algorithm == "DB++": + postprocess_params['name'] = 'DBPostProcess' + postprocess_params["thresh"] = args.det_db_thresh + postprocess_params["box_thresh"] = args.det_db_box_thresh + postprocess_params["max_candidates"] = 1000 + postprocess_params["unclip_ratio"] = args.det_db_unclip_ratio + postprocess_params["use_dilation"] = args.use_dilation + postprocess_params["score_mode"] = args.det_db_score_mode + postprocess_params["box_type"] = args.det_box_type + pre_process_list[1] = { + 'NormalizeImage': { + 'std': [1.0, 1.0, 1.0], + 'mean': + [0.48109378172549, 0.45752457890196, 0.40787054090196], + 'scale': '1./255.', + 'order': 'hwc' + } + } + elif self.det_algorithm == "EAST": + postprocess_params['name'] = 'EASTPostProcess' + postprocess_params["score_thresh"] = args.det_east_score_thresh + postprocess_params["cover_thresh"] = args.det_east_cover_thresh + postprocess_params["nms_thresh"] = args.det_east_nms_thresh + elif self.det_algorithm == "SAST": + pre_process_list[0] = { + 'DetResizeForTest': { + 'resize_long': args.det_limit_side_len + } + } + postprocess_params['name'] = 'SASTPostProcess' + postprocess_params["score_thresh"] = args.det_sast_score_thresh + postprocess_params["nms_thresh"] = args.det_sast_nms_thresh + self.det_sast_polygon = args.det_sast_polygon + if self.det_sast_polygon: + postprocess_params["sample_pts_num"] = 6 + postprocess_params["expand_scale"] = 1.2 + postprocess_params["shrink_ratio_of_width"] = 0.2 + else: + postprocess_params["sample_pts_num"] = 2 + postprocess_params["expand_scale"] = 1.0 + postprocess_params["shrink_ratio_of_width"] = 0.3 + elif self.det_algorithm == "PSE": + postprocess_params['name'] = 'PSEPostProcess' + postprocess_params["thresh"] = args.det_pse_thresh + postprocess_params["box_thresh"] = args.det_pse_box_thresh + postprocess_params["min_area"] = args.det_pse_min_area + postprocess_params["box_type"] = args.det_pse_box_type + postprocess_params["scale"] = args.det_pse_scale + self.det_pse_box_type = args.det_pse_box_type + elif self.det_algorithm == "FCE": + pre_process_list[0] = { + 'DetResizeForTest': { + 'rescale_img': [1080, 736] + } + } + postprocess_params['name'] = 'FCEPostProcess' + postprocess_params["scales"] = args.scales + postprocess_params["alpha"] = args.alpha + postprocess_params["beta"] = args.beta + postprocess_params["fourier_degree"] = args.fourier_degree + postprocess_params["box_type"] = args.det_fce_box_type + else: + print("unknown det_algorithm:{}".format(self.det_algorithm)) + sys.exit(0) + + self.preprocess_op = create_operators(pre_process_list) + self.postprocess_op = build_post_process(postprocess_params) + + self.weights_path = args.det_model_path + self.yaml_path = args.det_yaml_path + network_config = utility.get_arch_config(self.weights_path) + super(TextDetector, self).__init__(network_config, **kwargs) + self.load_pytorch_weights(self.weights_path) + self.net.eval() + self.net.to(self.device) + for module in self.net.modules(): + if hasattr(module, 'rep'): + module.rep() + + def _should_only_clip_det_res(self): + if self.det_algorithm == "SAST" and getattr(self, "det_sast_polygon", False): + return True + if self.det_algorithm in ["DB", "DB++", "PSE", "FCE"]: + return getattr(self.postprocess_op, "box_type", "quad") == "poly" + return False + + def _filter_det_res(self, dt_boxes, image_shape): + if self._should_only_clip_det_res(): + return self.filter_tag_det_res_only_clip(dt_boxes, image_shape) + return self.filter_tag_det_res(dt_boxes, image_shape) + + def _batch_process_same_size(self, img_list): + """ + 对相同尺寸的图像进行批处理 + + Args: + img_list: 相同尺寸的图像列表 + + Returns: + batch_results: 批处理结果列表 + total_elapse: 总耗时 + """ + starttime = time.time() + + # 预处理所有图像 + batch_data = [] + batch_shapes = [] + ori_imgs = [] + + for img in img_list: + ori_im = img.copy() + ori_imgs.append(ori_im) + + data = {'image': img} + data = transform(data, self.preprocess_op) + if data is None: + # 如果预处理失败,返回空结果 + return [(None, 0) for _ in img_list], 0 + + img_processed, shape_list = data + batch_data.append(img_processed) + batch_shapes.append(shape_list) + + # 堆叠成批处理张量 + try: + batch_tensor = np.stack(batch_data, axis=0) + batch_shapes = np.stack(batch_shapes, axis=0) + except Exception as e: + # 如果堆叠失败,回退到逐个处理 + batch_results = [] + for img in img_list: + dt_boxes, elapse = self.__call__(img) + batch_results.append((dt_boxes, elapse)) + return batch_results, time.time() - starttime + + # 批处理推理 + with torch.no_grad(): + inp = torch.from_numpy(batch_tensor) + inp = inp.to(self.device) + outputs = self.net(inp) + + # 处理输出 + preds = {} + if self.det_algorithm == "EAST": + preds['f_geo'] = outputs['f_geo'].cpu().numpy() + preds['f_score'] = outputs['f_score'].cpu().numpy() + elif self.det_algorithm == 'SAST': + preds['f_border'] = outputs['f_border'].cpu().numpy() + preds['f_score'] = outputs['f_score'].cpu().numpy() + preds['f_tco'] = outputs['f_tco'].cpu().numpy() + preds['f_tvo'] = outputs['f_tvo'].cpu().numpy() + elif self.det_algorithm in ['DB', 'PSE', 'DB++']: + preds['maps'] = outputs['maps'].cpu().numpy() + elif self.det_algorithm == 'FCE': + for i, (k, output) in enumerate(outputs.items()): + preds['level_{}'.format(i)] = output.cpu().numpy() + else: + raise NotImplementedError + + # 后处理每个图像的结果 + batch_results = [] + total_elapse = time.time() - starttime + + for i in range(len(img_list)): + # 提取单个图像的预测结果 + single_preds = {} + for key, value in preds.items(): + if isinstance(value, np.ndarray): + single_preds[key] = value[i:i + 1] # 保持批次维度 + else: + single_preds[key] = value + + # 后处理 + post_result = self.postprocess_op(single_preds, batch_shapes[i:i + 1]) + dt_boxes = post_result[0]['points'] + + # 过滤和裁剪检测框 + dt_boxes = self._filter_det_res(dt_boxes, ori_imgs[i].shape) + + batch_results.append((dt_boxes, total_elapse / len(img_list))) + + return batch_results, total_elapse + + def batch_predict(self, img_list, max_batch_size=8): + """ + 批处理预测方法,支持多张图像同时检测 + + Args: + img_list: 图像列表 + max_batch_size: 最大批处理大小 + + Returns: + batch_results: 批处理结果列表,每个元素为(dt_boxes, elapse) + """ + if not img_list: + return [] + + batch_results = [] + + # 分批处理 + for i in range(0, len(img_list), max_batch_size): + batch_imgs = img_list[i:i + max_batch_size] + # assert尺寸一致 + batch_dt_boxes, batch_elapse = self._batch_process_same_size(batch_imgs) + batch_results.extend(batch_dt_boxes) + + return batch_results + + def order_points_clockwise(self, pts): + """ + reference from: https://github.com/jrosebr1/imutils/blob/master/imutils/perspective.py + # sort the points based on their x-coordinates + """ + xSorted = pts[np.argsort(pts[:, 0]), :] + + # grab the left-most and right-most points from the sorted + # x-roodinate points + leftMost = xSorted[:2, :] + rightMost = xSorted[2:, :] + + # now, sort the left-most coordinates according to their + # y-coordinates so we can grab the top-left and bottom-left + # points, respectively + leftMost = leftMost[np.argsort(leftMost[:, 1]), :] + (tl, bl) = leftMost + + rightMost = rightMost[np.argsort(rightMost[:, 1]), :] + (tr, br) = rightMost + + rect = np.array([tl, tr, br, bl], dtype="float32") + return rect + + def clip_det_res(self, points, img_height, img_width): + for pno in range(points.shape[0]): + points[pno, 0] = int(min(max(points[pno, 0], 0), img_width - 1)) + points[pno, 1] = int(min(max(points[pno, 1], 0), img_height - 1)) + return points + + def filter_tag_det_res(self, dt_boxes, image_shape): + img_height, img_width = image_shape[0:2] + dt_boxes_new = [] + for box in dt_boxes: + box = self.order_points_clockwise(box) + box = self.clip_det_res(box, img_height, img_width) + rect_width = int(np.linalg.norm(box[0] - box[1])) + rect_height = int(np.linalg.norm(box[0] - box[3])) + if rect_width <= 3 or rect_height <= 3: + continue + dt_boxes_new.append(box) + dt_boxes = np.array(dt_boxes_new) + return dt_boxes + + def filter_tag_det_res_only_clip(self, dt_boxes, image_shape): + img_height, img_width = image_shape[0:2] + dt_boxes_new = [] + for box in dt_boxes: + box = np.array(box) + box = self.clip_det_res(box, img_height, img_width) + dt_boxes_new.append(box) + # Polygon detectors may emit a variable number of points per box, + # so this path must preserve a ragged outer container. + return dt_boxes_new + + def __call__(self, img): + ori_shape = img.shape + data = {'image': img} + data = transform(data, self.preprocess_op) + img, shape_list = data + if img is None: + return None, 0 + img = np.expand_dims(img, axis=0) + shape_list = np.expand_dims(shape_list, axis=0) + img = img.copy() + starttime = time.time() + + with torch.no_grad(): + inp = torch.from_numpy(img) + inp = inp.to(self.device) + outputs = self.net(inp) + + preds = {} + if self.det_algorithm == "EAST": + preds['f_geo'] = outputs['f_geo'].cpu().numpy() + preds['f_score'] = outputs['f_score'].cpu().numpy() + elif self.det_algorithm == 'SAST': + preds['f_border'] = outputs['f_border'].cpu().numpy() + preds['f_score'] = outputs['f_score'].cpu().numpy() + preds['f_tco'] = outputs['f_tco'].cpu().numpy() + preds['f_tvo'] = outputs['f_tvo'].cpu().numpy() + elif self.det_algorithm in ['DB', 'PSE', 'DB++']: + preds['maps'] = outputs['maps'].cpu().numpy() + elif self.det_algorithm == 'FCE': + for i, (k, output) in enumerate(outputs.items()): + preds['level_{}'.format(i)] = output + else: + raise NotImplementedError + + post_result = self.postprocess_op(preds, shape_list) + dt_boxes = post_result[0]['points'] + dt_boxes = self._filter_det_res(dt_boxes, ori_shape) + + elapse = time.time() - starttime + return dt_boxes, elapse diff --git a/mineru/model/utils/tools/infer/predict_rec.py b/mineru/model/utils/tools/infer/predict_rec.py new file mode 100644 index 000000000..8bcd85557 --- /dev/null +++ b/mineru/model/utils/tools/infer/predict_rec.py @@ -0,0 +1,438 @@ +# Copyright (c) Opendatalab. All rights reserved. +from PIL import Image +import cv2 +import numpy as np +import math +import time +import torch +from tqdm import tqdm + +from ...pytorchocr.base_ocr_v20 import BaseOCRV20 +from . import pytorchocr_utility as utility +from ...pytorchocr.postprocess import build_post_process +from ...pytorchocr.modeling.backbones.rec_hgnet import ConvBNAct + + +class TextRecognizer(BaseOCRV20): + def __init__(self, args, **kwargs): + self.device = args.device + self.rec_image_shape = [int(v) for v in args.rec_image_shape.split(",")] + self.character_type = args.rec_char_type + self.rec_batch_num = args.rec_batch_num + self.rec_algorithm = args.rec_algorithm + self.max_text_length = args.max_text_length + postprocess_params = { + 'name': 'CTCLabelDecode', + "character_type": args.rec_char_type, + "character_dict_path": args.rec_char_dict_path, + "use_space_char": args.use_space_char + } + if self.rec_algorithm == "SRN": + postprocess_params = { + 'name': 'SRNLabelDecode', + "character_type": args.rec_char_type, + "character_dict_path": args.rec_char_dict_path, + "use_space_char": args.use_space_char + } + elif self.rec_algorithm == "RARE": + postprocess_params = { + 'name': 'AttnLabelDecode', + "character_type": args.rec_char_type, + "character_dict_path": args.rec_char_dict_path, + "use_space_char": args.use_space_char + } + elif self.rec_algorithm == 'NRTR': + postprocess_params = { + 'name': 'NRTRLabelDecode', + "character_dict_path": args.rec_char_dict_path, + "use_space_char": args.use_space_char + } + elif self.rec_algorithm == "SAR": + postprocess_params = { + 'name': 'SARLabelDecode', + "character_dict_path": args.rec_char_dict_path, + "use_space_char": args.use_space_char + } + elif self.rec_algorithm == 'ViTSTR': + postprocess_params = { + 'name': 'ViTSTRLabelDecode', + "character_dict_path": args.rec_char_dict_path, + "use_space_char": args.use_space_char + } + elif self.rec_algorithm == "CAN": + self.inverse = args.rec_image_inverse + postprocess_params = { + 'name': 'CANLabelDecode', + "character_dict_path": args.rec_char_dict_path, + "use_space_char": args.use_space_char + } + elif self.rec_algorithm == 'RFL': + postprocess_params = { + 'name': 'RFLLabelDecode', + "character_dict_path": None, + "use_space_char": args.use_space_char + } + self.postprocess_op = build_post_process(postprocess_params) + + self.limited_max_width = args.limited_max_width + self.limited_min_width = args.limited_min_width + + self.weights_path = args.rec_model_path + self.yaml_path = args.rec_yaml_path + + network_config = utility.get_arch_config(self.weights_path) + weights = self.read_pytorch_weights(self.weights_path) + + self.out_channels = self.get_out_channels(weights) + if self.rec_algorithm == 'NRTR': + self.out_channels = list(weights.values())[-1].numpy().shape[0] + elif self.rec_algorithm == 'SAR': + self.out_channels = list(weights.values())[-3].numpy().shape[0] + + kwargs['out_channels'] = self.out_channels + super(TextRecognizer, self).__init__(network_config, **kwargs) + + self.load_state_dict(weights) + self.net.eval() + self.net.to(self.device) + for module in self.net.modules(): + if isinstance(module, ConvBNAct): + if module.use_act: + torch.quantization.fuse_modules(module, ['conv', 'bn', 'act'], inplace=True) + else: + torch.quantization.fuse_modules(module, ['conv', 'bn'], inplace=True) + + def resize_norm_img(self, img, max_wh_ratio): + imgC, imgH, imgW = self.rec_image_shape + if self.rec_algorithm == 'NRTR' or self.rec_algorithm == 'ViTSTR': + img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + # return padding_im + image_pil = Image.fromarray(np.uint8(img)) + if self.rec_algorithm == 'ViTSTR': + img = image_pil.resize([imgW, imgH], Image.BICUBIC) + else: + img = image_pil.resize([imgW, imgH], Image.ANTIALIAS) + img = np.array(img) + norm_img = np.expand_dims(img, -1) + norm_img = norm_img.transpose((2, 0, 1)) + if self.rec_algorithm == 'ViTSTR': + norm_img = norm_img.astype(np.float32) / 255. + else: + norm_img = norm_img.astype(np.float32) / 128. - 1. + return norm_img + elif self.rec_algorithm == 'RFL': + img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + resized_image = cv2.resize( + img, (imgW, imgH), interpolation=cv2.INTER_CUBIC) + resized_image = resized_image.astype('float32') + resized_image = resized_image / 255 + resized_image = resized_image[np.newaxis, :] + resized_image -= 0.5 + resized_image /= 0.5 + return resized_image + + assert imgC == img.shape[2] + max_wh_ratio = max(max_wh_ratio, imgW / imgH) + imgW = int(imgH * max_wh_ratio) + imgW = max(min(imgW, self.limited_max_width), self.limited_min_width) + h, w = img.shape[:2] + ratio = w / float(h) + ratio_imgH = max(math.ceil(imgH * ratio), self.limited_min_width) + resized_w = min(imgW, int(ratio_imgH)) + resized_image = cv2.resize(img, (resized_w, imgH)) /127.5 - 1 + padding_im = np.zeros((imgC, imgH, imgW), dtype=np.float32) + padding_im[:, :, 0:resized_w] = resized_image.transpose((2, 0, 1)) + return padding_im + + def resize_norm_img_svtr(self, img, image_shape): + + imgC, imgH, imgW = image_shape + resized_image = cv2.resize( + img, (imgW, imgH), interpolation=cv2.INTER_LINEAR) + resized_image = resized_image.astype('float32') + resized_image = resized_image.transpose((2, 0, 1)) / 255 + resized_image -= 0.5 + resized_image /= 0.5 + return resized_image + + + def resize_norm_img_srn(self, img, image_shape): + imgC, imgH, imgW = image_shape + + img_black = np.zeros((imgH, imgW)) + im_hei = img.shape[0] + im_wid = img.shape[1] + + if im_wid <= im_hei * 1: + img_new = cv2.resize(img, (imgH * 1, imgH)) + elif im_wid <= im_hei * 2: + img_new = cv2.resize(img, (imgH * 2, imgH)) + elif im_wid <= im_hei * 3: + img_new = cv2.resize(img, (imgH * 3, imgH)) + else: + img_new = cv2.resize(img, (imgW, imgH)) + + img_np = np.asarray(img_new) + img_np = cv2.cvtColor(img_np, cv2.COLOR_BGR2GRAY) + img_black[:, 0:img_np.shape[1]] = img_np + img_black = img_black[:, :, np.newaxis] + + row, col, c = img_black.shape + c = 1 + + return np.reshape(img_black, (c, row, col)).astype(np.float32) + + def srn_other_inputs(self, image_shape, num_heads, max_text_length): + + imgC, imgH, imgW = image_shape + feature_dim = int((imgH / 8) * (imgW / 8)) + + encoder_word_pos = np.array(range(0, feature_dim)).reshape( + (feature_dim, 1)).astype('int64') + gsrm_word_pos = np.array(range(0, max_text_length)).reshape( + (max_text_length, 1)).astype('int64') + + gsrm_attn_bias_data = np.ones((1, max_text_length, max_text_length)) + gsrm_slf_attn_bias1 = np.triu(gsrm_attn_bias_data, 1).reshape( + [-1, 1, max_text_length, max_text_length]) + gsrm_slf_attn_bias1 = np.tile( + gsrm_slf_attn_bias1, + [1, num_heads, 1, 1]).astype('float32') * [-1e9] + + gsrm_slf_attn_bias2 = np.tril(gsrm_attn_bias_data, -1).reshape( + [-1, 1, max_text_length, max_text_length]) + gsrm_slf_attn_bias2 = np.tile( + gsrm_slf_attn_bias2, + [1, num_heads, 1, 1]).astype('float32') * [-1e9] + + encoder_word_pos = encoder_word_pos[np.newaxis, :] + gsrm_word_pos = gsrm_word_pos[np.newaxis, :] + + return [ + encoder_word_pos, gsrm_word_pos, gsrm_slf_attn_bias1, + gsrm_slf_attn_bias2 + ] + + def process_image_srn(self, img, image_shape, num_heads, max_text_length): + norm_img = self.resize_norm_img_srn(img, image_shape) + norm_img = norm_img[np.newaxis, :] + + [encoder_word_pos, gsrm_word_pos, gsrm_slf_attn_bias1, gsrm_slf_attn_bias2] = \ + self.srn_other_inputs(image_shape, num_heads, max_text_length) + + gsrm_slf_attn_bias1 = gsrm_slf_attn_bias1.astype(np.float32) + gsrm_slf_attn_bias2 = gsrm_slf_attn_bias2.astype(np.float32) + encoder_word_pos = encoder_word_pos.astype(np.int64) + gsrm_word_pos = gsrm_word_pos.astype(np.int64) + + return (norm_img, encoder_word_pos, gsrm_word_pos, gsrm_slf_attn_bias1, + gsrm_slf_attn_bias2) + + def resize_norm_img_sar(self, img, image_shape, + width_downsample_ratio=0.25): + imgC, imgH, imgW_min, imgW_max = image_shape + h = img.shape[0] + w = img.shape[1] + valid_ratio = 1.0 + # make sure new_width is an integral multiple of width_divisor. + width_divisor = int(1 / width_downsample_ratio) + # resize + ratio = w / float(h) + resize_w = math.ceil(imgH * ratio) + if resize_w % width_divisor != 0: + resize_w = round(resize_w / width_divisor) * width_divisor + if imgW_min is not None: + resize_w = max(imgW_min, resize_w) + if imgW_max is not None: + valid_ratio = min(1.0, 1.0 * resize_w / imgW_max) + resize_w = min(imgW_max, resize_w) + resized_image = cv2.resize(img, (resize_w, imgH)) + resized_image = resized_image.astype('float32') + # norm + if image_shape[0] == 1: + resized_image = resized_image / 255 + resized_image = resized_image[np.newaxis, :] + else: + resized_image = resized_image.transpose((2, 0, 1)) / 255 + resized_image -= 0.5 + resized_image /= 0.5 + resize_shape = resized_image.shape + padding_im = -1.0 * np.ones((imgC, imgH, imgW_max), dtype=np.float32) + padding_im[:, :, 0:resize_w] = resized_image + pad_shape = padding_im.shape + + return padding_im, resize_shape, pad_shape, valid_ratio + + + def norm_img_can(self, img, image_shape): + + img = cv2.cvtColor( + img, cv2.COLOR_BGR2GRAY) # CAN only predict gray scale image + + if self.inverse: + img = 255 - img + + if self.rec_image_shape[0] == 1: + h, w = img.shape + _, imgH, imgW = self.rec_image_shape + if h < imgH or w < imgW: + padding_h = max(imgH - h, 0) + padding_w = max(imgW - w, 0) + img_padded = np.pad(img, ((0, padding_h), (0, padding_w)), + 'constant', + constant_values=(255)) + img = img_padded + + img = np.expand_dims(img, 0) / 255.0 # h,w,c -> c,h,w + img = img.astype('float32') + + return img + + def __call__(self, img_list, tqdm_enable=False, tqdm_desc="OCR-rec Predict"): + img_num = len(img_list) + # Calculate the aspect ratio of all text bars + width_list = [] + for img in img_list: + width_list.append(img.shape[1] / float(img.shape[0])) + # Sorting can speed up the recognition process + indices = np.argsort(np.array(width_list)) + + # rec_res = [] + rec_res = [['', 0.0]] * img_num + batch_num = self.rec_batch_num + elapse = 0 + # for beg_img_no in range(0, img_num, batch_num): + with tqdm(total=img_num, desc=tqdm_desc, disable=not tqdm_enable) as pbar: + index = 0 + for beg_img_no in range(0, img_num, batch_num): + end_img_no = min(img_num, beg_img_no + batch_num) + norm_img_batch = [] + max_wh_ratio = width_list[indices[end_img_no - 1]] + for ino in range(beg_img_no, end_img_no): + if self.rec_algorithm == "SAR": + norm_img, _, _, valid_ratio = self.resize_norm_img_sar( + img_list[indices[ino]], self.rec_image_shape) + norm_img = norm_img[np.newaxis, :] + valid_ratio = np.expand_dims(valid_ratio, axis=0) + valid_ratios = [] + valid_ratios.append(valid_ratio) + norm_img_batch.append(norm_img) + + elif self.rec_algorithm == "SVTR": + norm_img = self.resize_norm_img_svtr(img_list[indices[ino]], + self.rec_image_shape) + norm_img = norm_img[np.newaxis, :] + norm_img_batch.append(norm_img) + elif self.rec_algorithm == "SRN": + norm_img = self.process_image_srn(img_list[indices[ino]], + self.rec_image_shape, 8, + self.max_text_length) + encoder_word_pos_list = [] + gsrm_word_pos_list = [] + gsrm_slf_attn_bias1_list = [] + gsrm_slf_attn_bias2_list = [] + encoder_word_pos_list.append(norm_img[1]) + gsrm_word_pos_list.append(norm_img[2]) + gsrm_slf_attn_bias1_list.append(norm_img[3]) + gsrm_slf_attn_bias2_list.append(norm_img[4]) + norm_img_batch.append(norm_img[0]) + elif self.rec_algorithm == "CAN": + norm_img = self.norm_img_can(img_list[indices[ino]], + max_wh_ratio) + norm_img = norm_img[np.newaxis, :] + norm_img_batch.append(norm_img) + norm_image_mask = np.ones(norm_img.shape, dtype='float32') + word_label = np.ones([1, 36], dtype='int64') + norm_img_mask_batch = [] + word_label_list = [] + norm_img_mask_batch.append(norm_image_mask) + word_label_list.append(word_label) + else: + norm_img = self.resize_norm_img(img_list[indices[ino]], + max_wh_ratio) + norm_img = norm_img[np.newaxis, :] + norm_img_batch.append(norm_img) + norm_img_batch = np.concatenate(norm_img_batch) + norm_img_batch = norm_img_batch.copy() + + if self.rec_algorithm == "SRN": + starttime = time.time() + encoder_word_pos_list = np.concatenate(encoder_word_pos_list) + gsrm_word_pos_list = np.concatenate(gsrm_word_pos_list) + gsrm_slf_attn_bias1_list = np.concatenate( + gsrm_slf_attn_bias1_list) + gsrm_slf_attn_bias2_list = np.concatenate( + gsrm_slf_attn_bias2_list) + + with torch.no_grad(): + inp = torch.from_numpy(norm_img_batch) + encoder_word_pos_inp = torch.from_numpy(encoder_word_pos_list) + gsrm_word_pos_inp = torch.from_numpy(gsrm_word_pos_list) + gsrm_slf_attn_bias1_inp = torch.from_numpy(gsrm_slf_attn_bias1_list) + gsrm_slf_attn_bias2_inp = torch.from_numpy(gsrm_slf_attn_bias2_list) + + inp = inp.to(self.device) + encoder_word_pos_inp = encoder_word_pos_inp.to(self.device) + gsrm_word_pos_inp = gsrm_word_pos_inp.to(self.device) + gsrm_slf_attn_bias1_inp = gsrm_slf_attn_bias1_inp.to(self.device) + gsrm_slf_attn_bias2_inp = gsrm_slf_attn_bias2_inp.to(self.device) + + backbone_out = self.net.backbone(inp) # backbone_feat + prob_out = self.net.head(backbone_out, [encoder_word_pos_inp, gsrm_word_pos_inp, gsrm_slf_attn_bias1_inp, gsrm_slf_attn_bias2_inp]) + # preds = {"predict": prob_out[2]} + preds = {"predict": prob_out["predict"]} + + elif self.rec_algorithm == "SAR": + starttime = time.time() + # valid_ratios = np.concatenate(valid_ratios) + # inputs = [ + # norm_img_batch, + # valid_ratios, + # ] + + with torch.no_grad(): + inp = torch.from_numpy(norm_img_batch) + inp = inp.to(self.device) + preds = self.net(inp) + + elif self.rec_algorithm == "CAN": + starttime = time.time() + norm_img_mask_batch = np.concatenate(norm_img_mask_batch) + word_label_list = np.concatenate(word_label_list) + inputs = [norm_img_batch, norm_img_mask_batch, word_label_list] + + inp = [torch.from_numpy(e_i) for e_i in inputs] + inp = [e_i.to(self.device) for e_i in inp] + with torch.no_grad(): + outputs = self.net(inp) + outputs = [v.cpu().numpy() for k, v in enumerate(outputs)] + + preds = outputs + + else: + starttime = time.time() + + with torch.no_grad(): + inp = torch.from_numpy(norm_img_batch) + inp = inp.to(self.device) + preds = self.net(inp) + + with torch.no_grad(): + rec_result = self.postprocess_op(preds) + + for rno in range(len(rec_result)): + rec_res[indices[beg_img_no + rno]] = rec_result[rno] + elapse += time.time() - starttime + + # 更新进度条,每次增加batch_size,但要注意最后一个batch可能不足batch_size + current_batch_size = min(batch_num, img_num - index * batch_num) + index += 1 + pbar.update(current_batch_size) + + # Fix NaN values in recognition results + for i in range(len(rec_res)): + text, score = rec_res[i] + if isinstance(score, float) and math.isnan(score): + rec_res[i] = (text, 0.0) + + return rec_res, elapse diff --git a/mineru/model/utils/tools/infer/predict_system.py b/mineru/model/utils/tools/infer/predict_system.py new file mode 100644 index 000000000..6285aeceb --- /dev/null +++ b/mineru/model/utils/tools/infer/predict_system.py @@ -0,0 +1,105 @@ +# Copyright (c) Opendatalab. All rights reserved. +import cv2 +import copy +import numpy as np + +from . import predict_rec +from . import predict_det +from . import predict_cls + + +class TextSystem(object): + def __init__(self, args, **kwargs): + self.text_detector = predict_det.TextDetector(args, **kwargs) + self.text_recognizer = predict_rec.TextRecognizer(args, **kwargs) + self.use_angle_cls = args.use_angle_cls + self.drop_score = args.drop_score + if self.use_angle_cls: + self.text_classifier = predict_cls.TextClassifier(args, **kwargs) + + def get_rotate_crop_image(self, img, points): + ''' + img_height, img_width = img.shape[0:2] + left = int(np.min(points[:, 0])) + right = int(np.max(points[:, 0])) + top = int(np.min(points[:, 1])) + bottom = int(np.max(points[:, 1])) + img_crop = img[top:bottom, left:right, :].copy() + points[:, 0] = points[:, 0] - left + points[:, 1] = points[:, 1] - top + ''' + img_crop_width = int( + max( + np.linalg.norm(points[0] - points[1]), + np.linalg.norm(points[2] - points[3]))) + img_crop_height = int( + max( + np.linalg.norm(points[0] - points[3]), + np.linalg.norm(points[1] - points[2]))) + pts_std = np.float32([[0, 0], [img_crop_width, 0], + [img_crop_width, img_crop_height], + [0, img_crop_height]]) + M = cv2.getPerspectiveTransform(points, pts_std) + dst_img = cv2.warpPerspective( + img, + M, (img_crop_width, img_crop_height), + borderMode=cv2.BORDER_REPLICATE, + flags=cv2.INTER_CUBIC) + dst_img_height, dst_img_width = dst_img.shape[0:2] + if dst_img_height * 1.0 / dst_img_width >= 1.5: + dst_img = np.rot90(dst_img) + return dst_img + + def __call__(self, img): + ori_im = img.copy() + dt_boxes, elapse = self.text_detector(img) + print("dt_boxes num : {}, elapse : {}".format( + len(dt_boxes), elapse)) + if dt_boxes is None: + return None, None + img_crop_list = [] + + dt_boxes = sorted_boxes(dt_boxes) + + for bno in range(len(dt_boxes)): + tmp_box = copy.deepcopy(dt_boxes[bno]) + img_crop = self.get_rotate_crop_image(ori_im, tmp_box) + img_crop_list.append(img_crop) + if self.use_angle_cls: + img_crop_list, angle_list, elapse = self.text_classifier( + img_crop_list) + print("cls num : {}, elapse : {}".format( + len(img_crop_list), elapse)) + + rec_res, elapse = self.text_recognizer(img_crop_list) + print("rec_res num : {}, elapse : {}".format( + len(rec_res), elapse)) + # self.print_draw_crop_rec_res(img_crop_list, rec_res) + filter_boxes, filter_rec_res = [], [] + for box, rec_reuslt in zip(dt_boxes, rec_res): + text, score = rec_reuslt + if score >= self.drop_score: + filter_boxes.append(box) + filter_rec_res.append(rec_reuslt) + return filter_boxes, filter_rec_res + + +def sorted_boxes(dt_boxes): + """ + Sort text boxes in order from top to bottom, left to right + args: + dt_boxes(array):detected text boxes with shape [4, 2] + return: + sorted boxes(array) with shape [4, 2] + """ + num_boxes = len(dt_boxes) + sorted_boxes = sorted(dt_boxes, key=lambda x: (x[0][1], x[0][0])) + _boxes = list(sorted_boxes) + + for i in range(num_boxes - 1): + if abs(_boxes[i + 1][0][1] - _boxes[i][0][1]) < 10 and \ + (_boxes[i + 1][0][0] < _boxes[i][0][0]): + tmp = _boxes[i] + _boxes[i] = _boxes[i + 1] + _boxes[i + 1] = tmp + return _boxes diff --git a/mineru/model/utils/tools/infer/pytorchocr_utility.py b/mineru/model/utils/tools/infer/pytorchocr_utility.py new file mode 100644 index 000000000..893540486 --- /dev/null +++ b/mineru/model/utils/tools/infer/pytorchocr_utility.py @@ -0,0 +1,230 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import math +from pathlib import Path +import numpy as np +import cv2 +import argparse + + +root_dir = Path(__file__).resolve().parent.parent.parent +DEFAULT_CFG_PATH = root_dir / "pytorchocr" / "utils" / "resources" / "arch_config.yaml" + + +def init_args(): + def str2bool(v): + return v.lower() in ("true", "t", "1") + + parser = argparse.ArgumentParser() + # params for prediction engine + parser.add_argument("--use_gpu", type=str2bool, default=False) + parser.add_argument("--det", type=str2bool, default=True) + parser.add_argument("--rec", type=str2bool, default=True) + parser.add_argument("--device", type=str, default='cpu') + # parser.add_argument("--ir_optim", type=str2bool, default=True) + # parser.add_argument("--use_tensorrt", type=str2bool, default=False) + # parser.add_argument("--use_fp16", type=str2bool, default=False) + parser.add_argument("--gpu_mem", type=int, default=500) + parser.add_argument("--warmup", type=str2bool, default=False) + + # params for text detector + parser.add_argument("--image_dir", type=str) + parser.add_argument("--det_algorithm", type=str, default='DB') + parser.add_argument("--det_model_path", type=str) + parser.add_argument("--det_limit_side_len", type=float, default=960) + parser.add_argument("--det_limit_type", type=str, default='max') + parser.add_argument("--det_max_side_limit", type=int, default=4000) + parser.add_argument("--det_box_type", type=str, default='quad') + + # DB parmas + parser.add_argument("--det_db_thresh", type=float, default=0.3) + parser.add_argument("--det_db_box_thresh", type=float, default=0.6) + parser.add_argument("--det_db_unclip_ratio", type=float, default=1.5) + parser.add_argument("--max_batch_size", type=int, default=10) + parser.add_argument("--use_dilation", type=str2bool, default=False) + parser.add_argument("--det_db_score_mode", type=str, default="fast") + + # EAST parmas + parser.add_argument("--det_east_score_thresh", type=float, default=0.8) + parser.add_argument("--det_east_cover_thresh", type=float, default=0.1) + parser.add_argument("--det_east_nms_thresh", type=float, default=0.2) + + # SAST parmas + parser.add_argument("--det_sast_score_thresh", type=float, default=0.5) + parser.add_argument("--det_sast_nms_thresh", type=float, default=0.2) + parser.add_argument("--det_sast_polygon", type=str2bool, default=False) + + # PSE parmas + parser.add_argument("--det_pse_thresh", type=float, default=0) + parser.add_argument("--det_pse_box_thresh", type=float, default=0.85) + parser.add_argument("--det_pse_min_area", type=float, default=16) + parser.add_argument("--det_pse_box_type", type=str, default='box') + parser.add_argument("--det_pse_scale", type=int, default=1) + + # FCE parmas + parser.add_argument("--scales", type=list, default=[8, 16, 32]) + parser.add_argument("--alpha", type=float, default=1.0) + parser.add_argument("--beta", type=float, default=1.0) + parser.add_argument("--fourier_degree", type=int, default=5) + parser.add_argument("--det_fce_box_type", type=str, default='poly') + + # params for text recognizer + parser.add_argument("--rec_algorithm", type=str, default='CRNN') + parser.add_argument("--rec_model_path", type=str) + parser.add_argument("--rec_image_inverse", type=str2bool, default=True) + parser.add_argument("--rec_image_shape", type=str, default="3, 48, 320") + parser.add_argument("--rec_char_type", type=str, default='ch') + parser.add_argument("--rec_batch_num", type=int, default=6) + parser.add_argument("--max_text_length", type=int, default=25) + + parser.add_argument("--use_space_char", type=str2bool, default=True) + parser.add_argument("--drop_score", type=float, default=0.5) + parser.add_argument("--limited_max_width", type=int, default=1280) + parser.add_argument("--limited_min_width", type=int, default=16) + + parser.add_argument( + "--vis_font_path", type=str, + default=os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), 'doc/fonts/simfang.ttf')) + parser.add_argument( + "--rec_char_dict_path", + type=str, + default=os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), + 'pytorchocr/utils/ppocr_keys_v1.txt')) + + # params for text classifier + parser.add_argument("--use_angle_cls", type=str2bool, default=False) + parser.add_argument("--cls_model_path", type=str) + parser.add_argument("--cls_image_shape", type=str, default="3, 48, 192") + parser.add_argument("--label_list", type=list, default=['0', '180']) + parser.add_argument("--cls_batch_num", type=int, default=6) + parser.add_argument("--cls_thresh", type=float, default=0.9) + + parser.add_argument("--enable_mkldnn", type=str2bool, default=False) + parser.add_argument("--use_pdserving", type=str2bool, default=False) + + # params for e2e + parser.add_argument("--e2e_algorithm", type=str, default='PGNet') + parser.add_argument("--e2e_model_path", type=str) + parser.add_argument("--e2e_limit_side_len", type=float, default=768) + parser.add_argument("--e2e_limit_type", type=str, default='max') + + # PGNet parmas + parser.add_argument("--e2e_pgnet_score_thresh", type=float, default=0.5) + parser.add_argument( + "--e2e_char_dict_path", type=str, + default=os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), + 'pytorchocr/utils/ic15_dict.txt')) + parser.add_argument("--e2e_pgnet_valid_set", type=str, default='totaltext') + parser.add_argument("--e2e_pgnet_polygon", type=bool, default=True) + parser.add_argument("--e2e_pgnet_mode", type=str, default='fast') + + # SR parmas + parser.add_argument("--sr_model_path", type=str) + parser.add_argument("--sr_image_shape", type=str, default="3, 32, 128") + parser.add_argument("--sr_batch_num", type=int, default=1) + + # params .yaml + parser.add_argument("--det_yaml_path", type=str, default=None) + parser.add_argument("--rec_yaml_path", type=str, default=None) + parser.add_argument("--cls_yaml_path", type=str, default=None) + parser.add_argument("--e2e_yaml_path", type=str, default=None) + parser.add_argument("--sr_yaml_path", type=str, default=None) + + # multi-process + parser.add_argument("--use_mp", type=str2bool, default=False) + parser.add_argument("--total_process_num", type=int, default=1) + parser.add_argument("--process_id", type=int, default=0) + + parser.add_argument("--benchmark", type=str2bool, default=False) + parser.add_argument("--save_log_path", type=str, default="./log_output/") + + parser.add_argument("--show_log", type=str2bool, default=True) + + return parser + +def parse_args(): + parser = init_args() + return parser.parse_args() + +def get_default_config(args): + return vars(args) + + +def read_network_config_from_yaml(yaml_path, char_num=None): + if not os.path.exists(yaml_path): + raise FileNotFoundError('{} is not existed.'.format(yaml_path)) + import yaml + with open(yaml_path, encoding='utf-8') as f: + res = yaml.safe_load(f) + if res.get('Architecture') is None: + raise ValueError('{} has no Architecture'.format(yaml_path)) + if res['Architecture']['Head']['name'] == 'MultiHead' and char_num is not None: + res['Architecture']['Head']['out_channels_list'] = { + 'CTCLabelDecode': char_num, + 'SARLabelDecode': char_num + 2, + 'NRTRLabelDecode': char_num + 3 + } + return res['Architecture'] + +def AnalysisConfig(weights_path, yaml_path=None, char_num=None): + if not os.path.exists(os.path.abspath(weights_path)): + raise FileNotFoundError('{} is not found.'.format(weights_path)) + + if yaml_path is not None: + return read_network_config_from_yaml(yaml_path, char_num=char_num) + + +def resize_img(img, input_size=600): + """ + resize img and limit the longest side of the image to input_size + """ + img = np.array(img) + im_shape = img.shape + im_size_max = np.max(im_shape[0:2]) + im_scale = float(input_size) / float(im_size_max) + img = cv2.resize(img, None, None, fx=im_scale, fy=im_scale) + return img + + +def str_count(s): + """ + Count the number of Chinese characters, + a single English character and a single number + equal to half the length of Chinese characters. + args: + s(string): the input of string + return(int): + the number of Chinese characters + """ + import string + count_zh = count_pu = 0 + s_len = len(s) + en_dg_count = 0 + for c in s: + if c in string.ascii_letters or c.isdigit() or c.isspace(): + en_dg_count += 1 + elif c.isalpha(): + count_zh += 1 + else: + count_pu += 1 + return s_len - math.ceil(en_dg_count / 2) + + +def base64_to_cv2(b64str): + import base64 + data = base64.b64decode(b64str.encode('utf8')) + data = np.fromstring(data, np.uint8) + data = cv2.imdecode(data, cv2.IMREAD_COLOR) + return data + + +def get_arch_config(model_path): + from omegaconf import OmegaConf + all_arch_config = OmegaConf.load(DEFAULT_CFG_PATH) + path = Path(model_path) + file_name = path.stem + if file_name not in all_arch_config: + raise ValueError(f"architecture {file_name} is not in arch_config.yaml") + + arch_config = all_arch_config[file_name] + return arch_config diff --git a/mineru/model/vlm/__init__.py b/mineru/model/vlm/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/vlm/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/vlm/lmdeploy_server.py b/mineru/model/vlm/lmdeploy_server.py new file mode 100644 index 000000000..1ed8016f7 --- /dev/null +++ b/mineru/model/vlm/lmdeploy_server.py @@ -0,0 +1,94 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import sys + +from loguru import logger + +from mineru.backend.vlm.utils import set_lmdeploy_backend +from mineru.utils.models_download_utils import auto_download_and_get_model_root_path + + +def main(): + args = sys.argv[1:] + + has_port_arg = False + has_gpu_memory_utilization_arg = False + has_log_level_arg = False + device_type = "" + lm_backend = "" + + # 检查现有参数 + indices_to_remove = [] + + for i, arg in enumerate(args): + if arg == "--server-port" or arg.startswith("--server-port="): + has_port_arg = True + if arg == "--cache-max-entry-count" or arg.startswith("--cache-max-entry-count="): + has_gpu_memory_utilization_arg = True + if arg == "--log-level" or arg.startswith("--log-level="): + has_log_level_arg = True + if arg == "--backend" or arg == "--lmdeploy-backend": + if i + 1 < len(args): + lm_backend = args[i + 1] + indices_to_remove.extend([i, i + 1]) + elif arg.startswith("--backend=") or arg.startswith("--lmdeploy-backend="): + lm_backend = arg.split("=", 1)[1] + indices_to_remove.append(i) + if arg == "--device" or arg == "--lmdeploy-device": + if i + 1 < len(args): + device_type = args[i + 1] + indices_to_remove.extend([i, i + 1]) + elif arg.startswith("--device=") or arg.startswith("--lmdeploy-device="): + device_type = arg.split("=", 1)[1] + indices_to_remove.append(i) + + # 从后往前删除,避免索引错位 + for i in sorted(set(indices_to_remove), reverse=True): + args.pop(i) + + # 添加默认参数 + if not has_port_arg: + args.extend(["--server-port", "30000"]) + if not has_gpu_memory_utilization_arg: + args.extend(["--cache-max-entry-count", "0.5"]) + if not has_log_level_arg: + args.extend(["--log-level", "ERROR"]) + + device_type = os.getenv("MINERU_LMDEPLOY_DEVICE", device_type) + if device_type == "": + device_type = "cuda" + elif device_type not in ["cuda", "ascend", "maca", "camb"]: + raise ValueError(f"Unsupported lmdeploy device type: {device_type}") + lm_backend = os.getenv("MINERU_LMDEPLOY_BACKEND", lm_backend) + if lm_backend == "": + lm_backend = set_lmdeploy_backend(device_type) + elif lm_backend not in ["pytorch", "turbomind"]: + raise ValueError(f"Unsupported lmdeploy backend: {lm_backend}") + logger.info(f"lmdeploy device is: {device_type}, lmdeploy backend is: {lm_backend}") + + if lm_backend == "pytorch": + os.environ["TOKENIZERS_PARALLELISM"] = "false" + + + args.extend(["--device", device_type]) + args.extend(["--backend", lm_backend]) + + model_path = auto_download_and_get_model_root_path("/", "vlm") + + # logger.debug(args) + + # 重构参数,将模型路径作为位置参数 + sys.argv = [sys.argv[0]] + ["serve", "api_server", model_path] + args + + if os.getenv('OMP_NUM_THREADS') is None: + os.environ["OMP_NUM_THREADS"] = "1" + + # 启动 lmdeploy 服务器 + print(f"start lmdeploy server: {sys.argv}") + + # 使用os.system调用启动lmdeploy服务器 + os.system("lmdeploy " + " ".join(sys.argv[1:])) + + +if __name__ == "__main__": + main() diff --git a/mineru/model/vlm/vllm_server.py b/mineru/model/vlm/vllm_server.py new file mode 100644 index 000000000..ca7a2d500 --- /dev/null +++ b/mineru/model/vlm/vllm_server.py @@ -0,0 +1,69 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import sys + +from mineru.backend.vlm.utils import set_default_gpu_memory_utilization, enable_custom_logits_processors, \ + mod_kwargs_by_device_type +from mineru.utils.models_download_utils import auto_download_and_get_model_root_path + +from vllm.entrypoints.cli.main import main as vllm_main + + +def main(): + args = sys.argv[1:] + + has_port_arg = False + has_gpu_memory_utilization_arg = False + has_logits_processors_arg = False + model_path = None + model_arg_indices = [] + + # 检查现有参数 + for i, arg in enumerate(args): + if arg == "--port" or arg.startswith("--port="): + has_port_arg = True + if arg == "--gpu-memory-utilization" or arg.startswith("--gpu-memory-utilization="): + has_gpu_memory_utilization_arg = True + if arg == "--logits-processors" or arg.startswith("--logits-processors="): + has_logits_processors_arg = True + if arg == "--model": + if i + 1 < len(args): + model_path = args[i + 1] + model_arg_indices.extend([i, i + 1]) + elif arg.startswith("--model="): + model_path = arg.split("=", 1)[1] + model_arg_indices.append(i) + + # 从参数列表中移除 --model 参数 + if model_arg_indices: + for index in sorted(model_arg_indices, reverse=True): + args.pop(index) + + custom_logits_processors = enable_custom_logits_processors() + + # 添加默认参数 + if not has_port_arg: + args.extend(["--port", "30000"]) + if not has_gpu_memory_utilization_arg: + gpu_memory_utilization = str(set_default_gpu_memory_utilization()) + args.extend(["--gpu-memory-utilization", gpu_memory_utilization]) + if not model_path: + model_path = auto_download_and_get_model_root_path("/", "vlm") + if (not has_logits_processors_arg) and custom_logits_processors: + args.extend(["--logits-processors", "mineru_vl_utils:MinerULogitsProcessor"]) + + args = mod_kwargs_by_device_type(args, vllm_mode="server") + + # 重构参数,将模型路径作为位置参数 + sys.argv = [sys.argv[0]] + ["serve", model_path] + args + + if os.getenv('OMP_NUM_THREADS') is None: + os.environ["OMP_NUM_THREADS"] = "1" + + # 启动vllm服务器 + print(f"start vllm server: {sys.argv}") + vllm_main() + + +if __name__ == "__main__": + main() diff --git a/mineru/model/xlsx/__init__.py b/mineru/model/xlsx/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/model/xlsx/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/model/xlsx/main.py b/mineru/model/xlsx/main.py new file mode 100644 index 000000000..b0190f51e --- /dev/null +++ b/mineru/model/xlsx/main.py @@ -0,0 +1,18 @@ +# Copyright (c) Opendatalab. All rights reserved. +from typing import BinaryIO + +from mineru.model.xlsx.xlsx_converter import XlsxConverter + + +def convert_path(file_path: str): + with open(file_path, "rb") as fh: + return convert_binary(fh) + + +def convert_binary(file_binary: BinaryIO): + converter = XlsxConverter() + converter.convert(file_binary) + return converter.pages + +if __name__ == "__main__": + print(convert_path("test_xlsx/xlsx_01.xlsx")) diff --git a/mineru/model/xlsx/xlsx_converter.py b/mineru/model/xlsx/xlsx_converter.py new file mode 100644 index 000000000..3b5a4c94d --- /dev/null +++ b/mineru/model/xlsx/xlsx_converter.py @@ -0,0 +1,1479 @@ +# Copyright (c) Opendatalab. All rights reserved. +import collections +import html +import posixpath +import zipfile +import re +import xml.etree.ElementTree as ET +from urllib.parse import urlparse +from typing import BinaryIO, Annotated, cast + + +from openpyxl import load_workbook +from openpyxl.cell.rich_text import CellRichText +from openpyxl.utils.cell import range_to_tuple +from openpyxl.worksheet.worksheet import Worksheet +from openpyxl.drawing.image import Image as XlsImage +from PIL import Image +from loguru import logger +from pydantic import PositiveInt, Field, BaseModel, NonNegativeInt +from pydantic.dataclasses import dataclass + +from mineru.utils.enum_class import BlockType +from mineru.backend.utils.office_image import ( + is_vector_image, + serialize_vector_image_with_placeholder, +) +from mineru.utils.pdf_reader import image_to_b64str +from mineru.model.docx.tools.math.omml import oMath2Latex + +AUTO_GAP_TOLERANCE_CANDIDATES = (0, 1, 2) +AUTO_GAP_TOLERANCE_PREFERENCE = {1: 0, 0: 1, 2: 2} +AUTO_GAP_TOLERANCE_PREFERENCE_MARGIN = 0.15 + + +@dataclass +class DataRegion: + """表示工作表中非空单元格的边界矩形区域。""" + + min_row: Annotated[ + PositiveInt, Field(description="Smallest row index (1-based index).") + ] + max_row: Annotated[ + PositiveInt, Field(description="Largest row index (1-based index).") + ] + min_col: Annotated[ + PositiveInt, Field(description="Smallest column index (1-based index).") + ] + max_col: Annotated[ + PositiveInt, Field(description="Largest column index (1-based index).") + ] + + def width(self) -> PositiveInt: + """返回数据区域的列数。""" + return self.max_col - self.min_col + 1 + + def height(self) -> PositiveInt: + """返回数据区域的行数。""" + return self.max_row - self.min_row + 1 + + +class ExcelCell(BaseModel): + """表示一个 Excel 单元格。 + + 属性: + row: 单元格的行号。 + col: 单元格的列号。 + text: 单元格的文本内容。 + row_span: 单元格跨越的行数。 + col_span: 单元格跨越的列数。 + """ + + row: int + col: int + text: str + row_span: int + col_span: int + styles: dict = Field(default_factory=dict) + media: list[str] = Field(default_factory=list) + text_is_html: bool = False + source_row: int | None = None + source_col: int | None = None + + +class ExcelTable(BaseModel): + """表示工作表上的一个 Excel 表格。 + + 属性: + anchor: 表格左上角单元格的列和行索引(从0开始)。 + num_rows: 表格的行数。 + num_cols: 表格的列数。 + data: 表格数据,以 ExcelCell 对象列表的形式表示。 + """ + + anchor: tuple[NonNegativeInt, NonNegativeInt] + num_rows: int + num_cols: int + data: list[ExcelCell] + + +class XlsxConverter: + def __init__( + self, + treat_singleton_as_text: bool = True, + gap_tolerance: int | None = None, + include_hidden_sheets: bool = False, + ): + self.workbook = None + self.zf = None + self.treat_singleton_as_text = treat_singleton_as_text + self.gap_tolerance = gap_tolerance + self.include_hidden_sheets = include_hidden_sheets + self.pages = [] + self.cur_page = [] + self.image_map = {} + self.cell_image_map = {} + self.sheet_images = [] + self.table_image_map = {} + self.math_map = {} + self.equation_bookends: str = "{EQ}" # 公式标记格式 + + def convert( + self, + file_stream: BinaryIO, + ): + self.pages = [] + self.cur_page = [] + self.sheet_images = [] + self.table_image_map = {} + self.cell_image_map = {} + + if hasattr(file_stream, "seek"): + file_stream.seek(0) + + try: + self.zf = zipfile.ZipFile(file_stream) + except Exception as e: + logger.warning(f"Failed to open zip file: {e}") + self.zf = None + + if hasattr(file_stream, "seek"): + file_stream.seek(0) + + self.workbook = load_workbook( + filename=file_stream, + data_only=True, + rich_text=True, + ) + if self.workbook is not None: + # 遍历需要参与转换的工作表,避免为隐藏表或尾部空页生成无效页面。 + for idx, sheet in enumerate(self._iter_sheets_to_convert(), start=1): + logger.debug(f"正在处理第 {idx} 个工作表:{sheet.title}") + self.cur_page = [] + self._convert_sheet(sheet) + self.pages.append(self.cur_page) + else: + logger.error("工作簿未初始化。") + + if self.zf: + self.zf.close() + self.zf = None + + def _iter_sheets_to_convert(self): + if self.workbook is None: + return + + for sheet in self.workbook.worksheets: + if ( + not self.include_hidden_sheets + and sheet.sheet_state != Worksheet.SHEETSTATE_VISIBLE + ): + logger.debug(f"跳过隐藏工作表:{sheet.title}") + continue + yield sheet + + def _convert_sheet(self, sheet): + if isinstance(sheet, Worksheet): + # Pre-calc maps + self.math_map = self._map_math_formulas_to_cells(sheet) + self.sheet_images = self._collect_sheet_images(sheet) + self.table_image_map = collections.defaultdict(list) + for image_info in self.sheet_images: + anchor = image_info["anchor"] + if anchor[0] is None or anchor[1] is None: + continue + self.table_image_map[anchor].append( + f'' + ) + + used_cells, visual_artifacts = self._find_tables_in_sheet(sheet) + visual_artifacts.extend(self._find_charts_in_sheet(sheet)) + for _, _, block in sorted( + visual_artifacts, + key=lambda item: (item[0][0], item[0][1], item[1]), + ): + self.cur_page.append(block) + self._find_images_in_sheet(used_cells) # 提取图片 + + @staticmethod + def _serialize_sheet_image(image: XlsImage) -> str: + pil_image = Image.open(image.ref) # type: ignore[arg-type] + if is_vector_image(pil_image): + return serialize_vector_image_with_placeholder(pil_image) + + if pil_image.mode != "RGB": + return image_to_b64str(pil_image, image_format="PNG") + + return image_to_b64str(pil_image, image_format="JPEG") + + def _collect_sheet_images(self, sheet: Worksheet) -> list[dict]: + images = [] + if self.workbook is None: + return images + + for item in getattr(sheet, "_images", []): # type: ignore[attr-defined] + try: + image: XlsImage = cast(XlsImage, item) + images.append( + { + "anchor": self._get_anchor_pos(item.anchor), + "base64": self._serialize_sheet_image(image), + } + ) + except Exception as e: + logger.error(f"无法从 Excel 工作表中提取图片,错误信息:{e}") + + return images + + def _map_math_formulas_to_cells(self, sheet: Worksheet) -> dict: + """Parse drawings to find math formulas and map them to cells.""" + math_map = collections.defaultdict(list) + if not self.zf: + return math_map + + # Find drawing relation + drawing_rel = None + if hasattr(sheet, "_rels"): + for rel in sheet._rels: + if rel.Type.endswith("/relationships/drawing"): + drawing_rel = rel + break + + if not drawing_rel: + return math_map + + # Resolve path + # Assuming relative path from worksheets/sheetX.xml to drawings/drawingY.xml + # Usually target is like "../drawings/drawing1.xml" + target = drawing_rel.Target + if target.startswith("../"): + path = target.replace("../", "xl/") # simplistic resolution + elif target.startswith("/"): + path = target[1:] + else: + path = f"xl/worksheets/{target}" # unlikely but default relative + + # Check if file exists in zip + if path not in self.zf.namelist(): + # Try generic match if simplistic resolution failed + # drawing1.xml -> xl/drawings/drawing1.xml + basename = target.split("/")[-1] + path = f"xl/drawings/{basename}" + if path not in self.zf.namelist(): + return math_map + + try: + with self.zf.open(path) as f: + tree = ET.parse(f) + root = tree.getroot() + + # Namespaces + ns = { + "xdr": "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing", + "a": "http://schemas.openxmlformats.org/drawingml/2006/main", + "m": "http://schemas.openxmlformats.org/officeDocument/2006/math", + } + + # Iterate TwoCellAnchor and OneCellAnchor + for anchor_tag in ["twoCellAnchor", "oneCellAnchor"]: + for anchor in root.findall(f".//xdr:{anchor_tag}", ns): + # Get position + from_node = anchor.find("xdr:from", ns) + if from_node is None: + continue + col_node = from_node.find("xdr:col", ns) + row_node = from_node.find("xdr:row", ns) + if col_node is None or row_node is None: + continue + + r = int(row_node.text) + c = int(col_node.text) + + # Look for math content + # Usually in graphicalFrame -> graphic -> graphicData -> oMathPara + # But simpler to search descendant m:oMath + maths = anchor.findall(".//m:oMath", ns) + for math in maths: + # # Simple text extraction + # text = "".join(math.itertext()) + # if text.strip(): + # # Wrap in latex block indicator if needed, or just plain text + # # User asked for formula, assuming latex-like visual or text is acceptable + # # Adding simple latex-like wrapper + # math_map[(r, c)].append(f"${text}$") + latex = str(oMath2Latex(math)).strip() + if latex: + math_map[(r, c)].append(latex) + + except Exception as e: + logger.warning(f"Error parsing math formulas: {e}") + + return math_map + + def _get_anchor_pos(self, anchor): + """Helper to get (row, col) from anchor.""" + if hasattr(anchor, "_from"): + return anchor._from.row, anchor._from.col + return None, None + + def _get_block_sort_anchor( + self, row: int | None, col: int | None + ) -> tuple[int, int]: + if row is None or col is None: + return (10**9, 10**9) + return row, col + + def _build_block_from_excel_table(self, excel_table: ExcelTable) -> dict: + if ( + self.treat_singleton_as_text + and len(excel_table.data) == 1 + and self._can_render_singleton_as_text(excel_table) + ): + return { + "type": BlockType.TEXT, + "content": excel_table.data[0].text, + } + + return { + "type": BlockType.TABLE, + "content": self.excel_table_to_html(excel_table), + } + + def _find_tables_in_sheet( + self, sheet: Worksheet + ) -> tuple[set[tuple[int, int]], list[tuple[tuple[int, int], int, dict]]]: + used_cells = set() + visual_artifacts = [] + if self.workbook is not None: + content_layer = self._get_sheet_content_layer(sheet) # 检测工作表的可见性 + tables = self._find_data_tables(sheet) # 检测工作表中的所有数据表格 + + for order, excel_table in enumerate(tables): + # Record used cells + anchor_c, anchor_r = excel_table.anchor + for cell in excel_table.data: + source_row, source_col = self._resolve_excel_cell_source_position( + excel_table.anchor, + cell, + ) + used_cells.add((source_row, source_col)) + + visual_artifacts.append( + ( + self._get_block_sort_anchor(anchor_r, anchor_c), + order, + self._build_block_from_excel_table(excel_table), + ) + ) + + return used_cells, visual_artifacts + + def _extract_chart_range_formula(self, value_source) -> str | None: + if value_source is None: + return None + + for attr_name in ("numRef", "strRef", "multiLvlStrRef"): + ref = getattr(value_source, attr_name, None) + formula = getattr(ref, "f", None) + if formula: + return formula + + return None + + def _iter_chart_reference_formulas(self, chart): + for series in getattr(chart, "ser", []): + for attr_name in ("cat", "val", "xVal", "yVal", "bubbleSize"): + formula = self._extract_chart_range_formula( + getattr(series, attr_name, None) + ) + if formula: + yield formula + + tx = getattr(series, "tx", None) + tx_formula = getattr(getattr(tx, "strRef", None), "f", None) + if tx_formula: + yield tx_formula + + def _parse_chart_reference_formula( + self, formula: str, sheet_title: str + ) -> tuple[list[int], list[int]] | None: + try: + formula_sheet_name, ( + min_col, + min_row, + max_col, + max_row, + ) = range_to_tuple(formula) + except ValueError: + logger.debug("Skip unsupported chart reference formula: {}", formula) + return None + + if formula_sheet_name != sheet_title: + logger.debug( + "Skip chart reference formula from different sheet: {} != {}", + formula_sheet_name, + sheet_title, + ) + return None + + if not all( + isinstance(bound, int) + for bound in (min_col, min_row, max_col, max_row) + ): + logger.debug( + "Skip chart reference formula with open-ended bounds: {}", + formula, + ) + return None + + rows = list(range(min_row - 1, max_row)) + cols = list(range(min_col - 1, max_col)) + return rows, cols + + def _collect_chart_source_axes( + self, sheet: Worksheet, chart + ) -> tuple[list[int], list[int]] | None: + referenced_rows = set() + referenced_cols = set() + formulas_found = False + + for formula in self._iter_chart_reference_formulas(chart): + formulas_found = True + parsed_axes = self._parse_chart_reference_formula(formula, sheet.title) + if parsed_axes is None: + return None + + rows, cols = parsed_axes + referenced_rows.update(rows) + referenced_cols.update(cols) + + if not formulas_found or not referenced_rows or not referenced_cols: + return None + + return sorted(referenced_rows), sorted(referenced_cols) + + def _build_excel_cell( + self, + sheet: Worksheet, + display_row: int, + display_col: int, + source_row: int, + source_col: int, + row_span: int = 1, + col_span: int = 1, + ) -> ExcelCell: + cell = sheet.cell(row=source_row + 1, column=source_col + 1) + raw_cell_text = str(cell.value) if cell.value is not None else "" + cell_text = "" + text_is_html = False + media_content = [] + if "DISPIMG" in raw_cell_text: + cell_image = self._get_cell_image(raw_cell_text) + if cell_image: + media_content.append(cell_image) + else: + cell_text, text_is_html = self._cell_value_to_html(cell) + media_content.extend(self.table_image_map.get((source_row, source_col), [])) + + return ExcelCell( + row=display_row, + col=display_col, + text=cell_text, + row_span=row_span, + col_span=col_span, + styles=self._extract_cell_style(cell), + media=media_content, + text_is_html=text_is_html, + source_row=source_row, + source_col=source_col, + ) + + def _build_synthetic_table_from_sheet_selection( + self, sheet: Worksheet, rows: list[int], cols: list[int] + ) -> ExcelTable: + selected_coords = {(row, col) for row in rows for col in cols} + hidden_merge_cells = set() + merge_spans = {} + + for mr in sheet.merged_cells.ranges: + top_left = (mr.min_row - 1, mr.min_col - 1) + if top_left not in selected_coords: + continue + + selected_rows = [ + row for row in rows if mr.min_row - 1 <= row <= mr.max_row - 1 + ] + selected_cols = [ + col for col in cols if mr.min_col - 1 <= col <= mr.max_col - 1 + ] + if not selected_rows or not selected_cols: + continue + + merge_spans[top_left] = (len(selected_rows), len(selected_cols)) + for row in selected_rows: + for col in selected_cols: + if (row, col) != top_left: + hidden_merge_cells.add((row, col)) + + data = [] + for display_row, source_row in enumerate(rows): + for display_col, source_col in enumerate(cols): + if (source_row, source_col) in hidden_merge_cells: + continue + + row_span, col_span = merge_spans.get((source_row, source_col), (1, 1)) + data.append( + self._build_excel_cell( + sheet, + display_row, + display_col, + source_row, + source_col, + row_span=row_span, + col_span=col_span, + ) + ) + + return ExcelTable( + anchor=(cols[0], rows[0]), + num_rows=len(rows), + num_cols=len(cols), + data=data, + ) + + def _find_charts_in_sheet( + self, sheet: Worksheet + ) -> list[tuple[tuple[int, int], int, dict]]: + chart_artifacts = [] + for order, chart in enumerate(getattr(sheet, "_charts", [])): + axes = self._collect_chart_source_axes(sheet, chart) + if axes is None: + logger.debug( + "Skip chart on sheet '{}' because chart source ranges are unsupported", + sheet.title, + ) + continue + + rows, cols = axes + chart_table = self._build_synthetic_table_from_sheet_selection( + sheet, + rows, + cols, + ) + anchor_row, anchor_col = self._get_anchor_pos(getattr(chart, "anchor", None)) + chart_artifacts.append( + ( + self._get_block_sort_anchor(anchor_row, anchor_col), + 10_000 + order, + { + "type": BlockType.CHART, + "content": self.excel_table_to_html(chart_table), + }, + ) + ) + + return chart_artifacts + + def _get_cell_math_formulas( + self, + table_anchor: tuple[int, int], + row: int | None = None, + col: int | None = None, + excel_cell: ExcelCell | None = None, + ) -> list[str]: + abs_row, abs_col = self._resolve_excel_cell_source_position( + table_anchor, + excel_cell, + row=row, + col=col, + ) + return list(self.math_map.get((abs_row, abs_col), [])) + + def _resolve_excel_cell_source_position( + self, + table_anchor: tuple[int, int], + excel_cell: ExcelCell | None, + row: int | None = None, + col: int | None = None, + ) -> tuple[int, int]: + if excel_cell is not None: + if excel_cell.source_row is not None and excel_cell.source_col is not None: + return excel_cell.source_row, excel_cell.source_col + row = excel_cell.row + col = excel_cell.col + + if row is None or col is None: + raise ValueError("row and col must be provided when excel_cell is None") + + return table_anchor[1] + row, table_anchor[0] + col + + def _can_render_singleton_as_text(self, excel_table: ExcelTable) -> bool: + cell = excel_table.data[0] + return ( + cell.row_span == 1 + and cell.col_span == 1 + and not cell.media + and not cell.text_is_html + and not self._get_cell_math_formulas( + excel_table.anchor, + excel_cell=cell, + ) + ) + + def _cell_has_semantic_content( + self, excel_table: ExcelTable, cell: ExcelCell + ) -> bool: + return bool( + cell.text.strip() + or any(media.strip() for media in cell.media) + or self._get_cell_math_formulas(excel_table.anchor, excel_cell=cell) + ) + + def _get_table_semantic_positions( + self, excel_table: ExcelTable + ) -> set[tuple[int, int]]: + semantic_positions = set() + for cell in excel_table.data: + if not self._cell_has_semantic_content(excel_table, cell): + continue + semantic_positions.add( + self._resolve_excel_cell_source_position( + excel_table.anchor, + excel_cell=cell, + ) + ) + return semantic_positions + + def _filter_semantic_subset_tables( + self, tables: list[ExcelTable] + ) -> list[ExcelTable]: + semantic_positions = [ + self._get_table_semantic_positions(table) for table in tables + ] + filtered_tables = [] + + for table_idx, table in enumerate(tables): + if any( + semantic_positions[table_idx] < semantic_positions[other_idx] + for other_idx in range(len(tables)) + if other_idx != table_idx + ): + continue + filtered_tables.append(table) + + return filtered_tables + + def _build_table_content_mask(self, excel_table: ExcelTable) -> list[list[bool]]: + mask = [ + [False for _ in range(excel_table.num_cols)] + for _ in range(excel_table.num_rows) + ] + for cell in excel_table.data: + if not self._cell_has_semantic_content(excel_table, cell): + continue + for row_idx in range(cell.row, min(cell.row + cell.row_span, excel_table.num_rows)): + for col_idx in range( + cell.col, min(cell.col + cell.col_span, excel_table.num_cols) + ): + mask[row_idx][col_idx] = True + return mask + + @staticmethod + def _count_max_consecutive_true(flags: list[bool]) -> int: + max_count = 0 + current = 0 + for flag in flags: + if flag: + current += 1 + max_count = max(max_count, current) + else: + current = 0 + return max_count + + @staticmethod + def _is_real_singleton_table(excel_table: ExcelTable) -> bool: + if ( + excel_table.num_rows != 1 + or excel_table.num_cols != 1 + or len(excel_table.data) != 1 + ): + return False + cell = excel_table.data[0] + return cell.row_span == 1 and cell.col_span == 1 + + def _summarize_table_for_gap_selection( + self, excel_table: ExcelTable + ) -> dict[str, float | int | bool]: + table_area = excel_table.num_rows * excel_table.num_cols + content_mask = self._build_table_content_mask(excel_table) + content_area = sum(sum(1 for flag in row if flag) for row in content_mask) + blank_ratio = 1.0 - (content_area / max(table_area, 1)) + + interior_blank_rows = [ + not any(content_mask[row_idx]) + for row_idx in range(1, max(excel_table.num_rows - 1, 1)) + ] + interior_blank_cols = [ + not any(content_mask[row_idx][col_idx] for row_idx in range(excel_table.num_rows)) + for col_idx in range(1, max(excel_table.num_cols - 1, 1)) + ] + if excel_table.num_rows <= 2: + interior_blank_rows = [] + if excel_table.num_cols <= 2: + interior_blank_cols = [] + + interior_blank_row_count = sum(interior_blank_rows) + interior_blank_col_count = sum(interior_blank_cols) + max_consecutive_interior_blank_lines = max( + self._count_max_consecutive_true(interior_blank_rows), + self._count_max_consecutive_true(interior_blank_cols), + ) + + return { + "table_area": table_area, + "content_area": content_area, + "blank_ratio": blank_ratio, + "interior_blank_row_count": interior_blank_row_count, + "interior_blank_col_count": interior_blank_col_count, + "max_consecutive_interior_blank_lines": max_consecutive_interior_blank_lines, + "real_singleton": self._is_real_singleton_table(excel_table), + } + + def _summarize_candidate_tables( + self, tables: list[ExcelTable] + ) -> dict[str, float | int]: + table_count = len(tables) + real_singleton_count = 0 + severe_separator_count = 0 + sparse_large_table_count = 0 + total_area = 0 + weighted_blank_numerator = 0.0 + total_interior_blank_lines = 0 + total_possible_interior_lines = 0 + row_cover_count = collections.Counter() + + for table in tables: + table_summary = self._summarize_table_for_gap_selection(table) + table_area = int(table_summary["table_area"]) + blank_ratio = float(table_summary["blank_ratio"]) + interior_blank_row_count = int(table_summary["interior_blank_row_count"]) + interior_blank_col_count = int(table_summary["interior_blank_col_count"]) + max_consecutive_interior_blank_lines = int( + table_summary["max_consecutive_interior_blank_lines"] + ) + + total_area += table_area + weighted_blank_numerator += table_area * blank_ratio + total_interior_blank_lines += ( + interior_blank_row_count + interior_blank_col_count + ) + total_possible_interior_lines += max(table.num_rows - 2, 0) + max( + table.num_cols - 2, 0 + ) + for row_idx in range(table.anchor[1], table.anchor[1] + table.num_rows): + row_cover_count[row_idx] += 1 + + if bool(table_summary["real_singleton"]): + real_singleton_count += 1 + if table_area >= 6 and blank_ratio > 0.35: + sparse_large_table_count += 1 + if max_consecutive_interior_blank_lines >= 2: + severe_separator_count += 1 + + occupied_row_count = max(len(row_cover_count), 1) + row_overlap_excess_ratio = sum( + max(0, count - 1) for count in row_cover_count.values() + ) / occupied_row_count + + return { + "real_singleton_ratio": real_singleton_count / max(table_count, 1), + "weighted_blank_ratio": weighted_blank_numerator / max(total_area, 1), + "interior_blank_line_ratio": total_interior_blank_lines + / max(total_possible_interior_lines, 1), + "sparse_large_table_ratio": sparse_large_table_count / max(table_count, 1), + "severe_separator_count": severe_separator_count, + "row_overlap_excess_ratio": row_overlap_excess_ratio, + } + + def _select_best_gap_candidate( + self, sheet: Worksheet + ) -> tuple[int, float, list[ExcelTable]]: + candidates = [] + for gap_tolerance in AUTO_GAP_TOLERANCE_CANDIDATES: + raw_tables = self._find_data_tables_with_gap_raw(sheet, gap_tolerance) + summary = self._summarize_candidate_tables(raw_tables) + penalty = ( + 6.0 * int(summary["severe_separator_count"]) + + 2.5 * float(summary["interior_blank_line_ratio"]) + + 1.5 * float(summary["sparse_large_table_ratio"]) + + 1.0 * float(summary["real_singleton_ratio"]) + + 0.5 * float(summary["weighted_blank_ratio"]) + + 1.0 * float(summary["row_overlap_excess_ratio"]) + ) + candidates.append( + { + "gap_tolerance": gap_tolerance, + "penalty": penalty, + "tables": self._filter_semantic_subset_tables(raw_tables), + **summary, + } + ) + + min_penalty = min(float(candidate["penalty"]) for candidate in candidates) + near_best_candidates = [ + candidate + for candidate in candidates + if float(candidate["penalty"]) + <= (min_penalty + AUTO_GAP_TOLERANCE_PREFERENCE_MARGIN) + ] + + best_candidate = min( + near_best_candidates, + key=lambda candidate: ( + int(candidate["severe_separator_count"]), + AUTO_GAP_TOLERANCE_PREFERENCE[int(candidate["gap_tolerance"])], + float(candidate["interior_blank_line_ratio"]), + float(candidate["penalty"]), + ), + ) + return ( + int(best_candidate["gap_tolerance"]), + float(best_candidate["penalty"]), + best_candidate["tables"], + ) + + def _select_best_tables(self, sheet: Worksheet) -> list[ExcelTable]: + gap_tolerance, penalty, tables = self._select_best_gap_candidate(sheet) + logger.debug( + "Selected gap_tolerance={} for sheet '{}' with penalty={:.4f}", + gap_tolerance, + sheet.title, + penalty, + ) + return tables + + def excel_table_to_html(self, excel_table) -> str: + """ + 将 ExcelTable 转换为 HTML 表格字符串,保留合并单元格结构。 + """ + # 1. 创建坐标到单元格的映射,方便快速查找 + cell_map = {(c.row, c.col): c for c in excel_table.data} + table_anchor = excel_table.anchor + + # 2. 用于记录已被合并单元格占据的位置,避免重复生成 td + covered_cells = set() + + # 开始构建 HTML + lines = [""] # 可以根据需要添加样式类或属性 + + for r in range(excel_table.num_rows): + lines.append(" ") + for c in range(excel_table.num_cols): + # 如果当前位置已被之前的合并单元格占据,则跳过 + if (r, c) in covered_cells: + continue + + # 获取当前位置的单元格 + cell = cell_map.get((r, c)) + + if cell: + # 确定标签类型:第一行通常作为表头 + tag = "th" if cell.row == 0 else "td" + + # 构建属性列表 (rowspan, colspan) + attrs = [] + if cell.row_span > 1: + attrs.append(f'rowspan="{cell.row_span}"') + if cell.col_span > 1: + attrs.append(f'colspan="{cell.col_span}"') + + # 标记该单元格覆盖的所有位置为已占用 + for ir in range(cell.row_span): + for ic in range(cell.col_span): + covered_cells.add((r + ir, c + ic)) + + # 拼接属性字符串 + attr_str = " " + " ".join(attrs) if attrs else "" + + # 生成 HTML 单元格,富文本片段避免二次转义 + text_content = "" + if cell.text: + text_content = cell.text if cell.text_is_html else html.escape(cell.text) + + # 添加媒体内容 (Images) + if cell.media: + media_content = "
".join(cell.media) + if text_content: + text_content += "
" + media_content + else: + text_content = media_content + # 添加公式 + for formula in self._get_cell_math_formulas( + table_anchor, + excel_cell=cell, + ): + text_content += self.equation_bookends.format(EQ=formula) + + inner_html = self._render_cell_inner_html( + text_content, + cell.text_is_html, + ) + lines.append(f" <{tag}{attr_str}>{inner_html}") + else: + # 如果既没被覆盖,又没有数据对象(理论上 _find_table_bounds 逻辑应避免此情况),生成空单元格 + lines.append(" ") + + lines.append(" ") + + lines.append("
") + return "\n".join(lines) + + def _find_images_in_sheet(self, used_cells: set[tuple[int, int]] = None): + if self.workbook is not None: + for image_info in self.sheet_images: + r, c = image_info["anchor"] + if ( + used_cells + and r is not None + and c is not None + and (r, c) in used_cells + ): + continue + + self.cur_page.append( + { + "type": BlockType.IMAGE, + "content": image_info["base64"], + } + ) + + return + + def _find_data_tables(self, sheet: Worksheet) -> list[ExcelTable]: + """在 Excel 工作表中查找所有紧凑的矩形数据表格。 + + 参数: + sheet: 待解析的 Excel 工作表。 + + 返回: + 表示所有数据表格的 ExcelTable 对象列表。 + """ + if self.gap_tolerance is None: + return self._select_best_tables(sheet) + return self._find_data_tables_with_gap(sheet, self.gap_tolerance) + + def _find_data_tables_with_gap( + self, sheet: Worksheet, gap_tolerance: int + ) -> list[ExcelTable]: + return self._filter_semantic_subset_tables( + self._find_data_tables_with_gap_raw(sheet, gap_tolerance) + ) + + def _find_data_tables_with_gap_raw( + self, sheet: Worksheet, gap_tolerance: int + ) -> list[ExcelTable]: + """在固定 gap_tolerance 下查找工作表中的所有数据表格。""" + bounds: DataRegion = self._find_true_data_bounds(sheet) # 获取真实数据边界 + tables: list[ExcelTable] = [] # 存储已发现的表格 + visited: set[tuple[int, int]] = set() # 记录已访问的单元格 + + # 仅在真实数据边界范围内进行扫描 + for ri, row in enumerate( + sheet.iter_rows( + min_row=bounds.min_row, + max_row=bounds.max_row, + min_col=bounds.min_col, + max_col=bounds.max_col, + values_only=False, + ), + start=bounds.min_row - 1, # 转换为0-based索引 + ): + for rj, cell in enumerate(row, start=bounds.min_col - 1): + # 跳过空单元格或已访问的单元格 + if cell.value is None or (ri, rj) in visited: + continue + + # 从当前单元格出发,通过洪水填充算法确定所属表格的边界 + table_bounds, visited_cells = self._find_table_bounds( + sheet, + ri, + rj, + bounds.max_row, + bounds.max_col, + gap_tolerance, + ) + visited.update(visited_cells) # 将已访问单元格加入全局记录 + tables.append(table_bounds) + + return tables + + def _find_true_data_bounds(self, sheet: Worksheet) -> DataRegion: + """查找工作表中真实的数据边界(最小/最大行列)。 + + 该函数扫描所有单元格,找到包含所有非空单元格或合并单元格区域的 + 最小矩形范围,返回边界的行列索引。 + + 参数: + sheet: 待分析的工作表。 + + 返回: + 覆盖所有数据和合并单元格的最小矩形区域 DataRegion。 + 若工作表为空,则默认返回 (1, 1, 1, 1)。 + """ + min_row, min_col = None, None + max_row, max_col = 0, 0 + + # 遍历所有有值的单元格,动态更新边界 + for cell in sheet._cells.values(): + if cell.value is not None: + r, c = cell.row, cell.column + min_row = r if min_row is None else min(min_row, r) + min_col = c if min_col is None else min(min_col, c) + max_row = max(max_row, r) + max_col = max(max_col, c) + + # 将合并单元格的范围也纳入边界计算 + for merged in sheet.merged_cells.ranges: + min_row = ( + merged.min_row if min_row is None else min(min_row, merged.min_row) + ) + min_col = ( + merged.min_col if min_col is None else min(min_col, merged.min_col) + ) + max_row = max(max_row, merged.max_row) + max_col = max(max_col, merged.max_col) + + # 若工作表中没有任何数据,默认返回 (1, 1, 1, 1) + if min_row is None or min_col is None: + min_row = min_col = max_row = max_col = 1 + + return DataRegion(min_row, max_row, min_col, max_col) + + def _find_table_bounds( + self, + sheet: Worksheet, + start_row: int, + start_col: int, + max_row: int, + max_col: int, + gap_tolerance: int, + ) -> tuple[ExcelTable, set[tuple[int, int]]]: + """使用洪水填充(BFS)策略确定表格边界。 + + 该方法通过广度优先搜索(BFS)算法识别 Excel 工作表中连续的非空单元格区域, + 能够准确检测非矩形表格(如 L 形、错位列等),并支持通过间隔容忍度 + 连接相邻但不直接相连的单元格。 + + 算法分两个阶段执行: + 1. 洪水填充阶段:使用 BFS 从给定位置出发,找出所有相连的单元格。 + 2. 数据提取阶段:构建矩形边界框并提取单元格数据,正确处理合并单元格。 + + 参数: + sheet: 待分析的 Excel 工作表。 + start_row: 洪水填充起始行索引(从0开始)。 + start_col: 洪水填充起始列索引(从0开始)。 + max_row: 工作表中可考虑的最大行索引(从0开始)。 + max_col: 工作表中可考虑的最大列索引(从0开始)。 + gap_tolerance: 允许跨越空白单元格查找邻居的最大间隔。 + + 返回: + 一个元组,包含: + - ExcelTable:表示检测到的表格对象,含锚点位置、尺寸和单元格数据。 + - set[tuple[int, int]]:洪水填充期间访问的所有 (行, 列) 元组集合, + 用于防止重复扫描。 + + 说明: + 该方法遵循 GAP_TOLERANCE 选项,允许在容忍距离内将被空单元格隔开的 + 单元格视为同一表格的一部分。 + """ + + # BFS 队列,存储待处理的 (行, 列) 坐标 + queue = collections.deque([(start_row, start_col)]) + + # 记录当前表格内已访问的单元格(避免重复加入队列) + # 调用方维护全局 visited 集合,防止重复启动新表格 + table_cells: set[tuple[int, int]] = set() + table_cells.add((start_row, start_col)) + + # 动态记录当前表格的行列边界 + min_r, max_r = start_row, start_row + min_c, max_c = start_col, start_col + + def has_content(r, c): + """检查指定单元格(0-based索引)是否有内容(有值或属于合并区域)。""" + if r < 0 or c < 0 or r > max_row or c > max_col: + return False + + # 1. 检查单元格直接值 + cell = sheet.cell(row=r + 1, column=c + 1) + if cell.value is not None: + return True + + # 2. 检查是否属于某个合并单元格区域 + for mr in sheet.merged_cells.ranges: + if cell.coordinate in mr: + return True + return False + + # --- 第一阶段:洪水填充(连通性检测)--- + while queue: + curr_r, curr_c = queue.popleft() + + # 动态更新表格边界 + min_r = min(min_r, curr_r) + max_r = max(max_r, curr_r) + min_c = min(min_c, curr_c) + max_c = max(max_c, curr_c) + + # 四个方向(上、下、左、右)的邻居检测 + directions = [ + (0, 1), # 右 + (0, -1), # 左 + (1, 0), # 下 + (-1, 0), # 上 + ] + + for dr, dc in directions: + # 在容忍距离范围内逐步检查邻居(优先检查最近的) + for step in range(1, gap_tolerance + 2): + nr, nc = curr_r + (dr * step), curr_c + (dc * step) + + if (nr, nc) in table_cells: + break # 已属于当前表格,不跨越继续查找 + + if has_content(nr, nc): + table_cells.add((nr, nc)) + queue.append((nr, nc)) + # 在该方向找到连接点,停止扩展间隔 + break + + # --- 第二阶段:数据提取(语义网格构建)--- + data = [] + + # 识别被合并单元格"遮蔽"的单元格(即非合并区域左上角的单元格) + hidden_merge_cells = set() + for mr in sheet.merged_cells.ranges: + mr_min_r, mr_min_c = mr.min_row - 1, mr.min_col - 1 + mr_max_r, mr_max_c = mr.max_row - 1, mr.max_col - 1 + for r in range(mr_min_r, mr_max_r + 1): + for c in range(mr_min_c, mr_max_c + 1): + if r == mr_min_r and c == mr_min_c: + continue # 左上角单元格保留,其余标记为隐藏 + hidden_merge_cells.add((r, c)) + + # 遍历发现区域的边界框(bbox内部的空格作为空单元格保留,维持矩形布局) + for ri in range(min_r, max_r + 1): + for rj in range(min_c, max_c + 1): + # 跳过被合并单元格遮蔽的单元格(非左上角) + if (ri, rj) in hidden_merge_cells: + continue + + # 计算合并跨度(默认为 1x1) + row_span = 1 + col_span = 1 + for mr in sheet.merged_cells.ranges: + if (ri + 1) == mr.min_row and (rj + 1) == mr.min_col: + row_span = (mr.max_row - mr.min_row) + 1 + col_span = (mr.max_col - mr.min_col) + 1 + break + + data.append( + self._build_excel_cell( + sheet, + ri - min_r, # 相对于表格起始行的偏移 + rj - min_c, # 相对于表格起始列的偏移 + ri, + rj, + row_span=row_span, + col_span=col_span, + ) + ) + + # 返回给调用方的 visited_cells 严格为包含数据/合并的单元格, + # 使主循环不会重复扫描已处理的单元格。 + return ( + ExcelTable( + anchor=(min_c, min_r), + num_rows=max_r + 1 - min_r, + num_cols=max_c + 1 - min_c, + data=data, + ), + table_cells, + ) + + def _get_cell_image(self, text) -> str: + match = re.search(r'"([^"]+)"', text) + if match: + image_id = match.group(1) + + else: + logger.error(f"无法从单元格文本中提取图片 ID,文本内容:{text}") + return "" + + cell_image_map = self._load_cell_image_mappings() + + zip_target_path = posixpath.normpath(posixpath.join("xl", cell_image_map.get(image_id, ""))) + if self.zf is None or zip_target_path not in self.zf.namelist(): + logger.warning( + f"图片目标文件不存在,image_id={image_id}, target={zip_target_path}" + ) + return "" + + try: + with self.zf.open(zip_target_path) as image_file: + pil_image = Image.open(image_file) + if is_vector_image(pil_image): + img_base64 = serialize_vector_image_with_placeholder(pil_image) + return rf'' + + pil_image.load() + + if pil_image.mode != "RGB": + img_base64 = image_to_b64str(pil_image, image_format="PNG") + else: + img_base64 = image_to_b64str(pil_image, image_format="JPEG") + return rf'' + except Exception as e: + logger.warning( + f"读取单元格图片失败,image_id={image_id}, target={zip_target_path}, error={e}" + ) + return "" + + def _load_cell_image_mappings(self): + if self.cell_image_map: + return self.cell_image_map + + if self.zf is None: + return {} + cell_image_embed_to_name = {} + cellimages_path = "xl/cellimages.xml" + rels_path = "xl/_rels/cellimages.xml.rels" + if ( + cellimages_path not in self.zf.namelist() + or rels_path not in self.zf.namelist() + ): + return {} + + try: + with self.zf.open(cellimages_path) as f: + root = ET.parse(f).getroot() + + ns = { + "xdr": "http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing", + "a": "http://schemas.openxmlformats.org/drawingml/2006/main", + "r": "http://schemas.openxmlformats.org/officeDocument/2006/relationships", + "etc": "http://www.wps.cn/officeDocument/2017/etCustomData", + } + + for cell_image in root.findall(".//etc:cellImage", ns): + c_nv_pr = cell_image.find(".//xdr:cNvPr", ns) + blip = cell_image.find(".//a:blip", ns) + if c_nv_pr is None or blip is None: + continue + + image_name = c_nv_pr.attrib.get("name") + embed_id = blip.attrib.get(f'{{{ns["r"]}}}embed') + if image_name and embed_id: + cell_image_embed_to_name[embed_id] = image_name + + with self.zf.open(rels_path) as f: + rel_root = ET.parse(f).getroot() + + rel_ns = { + "pr": "http://schemas.openxmlformats.org/package/2006/relationships" + } + for rel in rel_root.findall("pr:Relationship", rel_ns): + rel_id = rel.attrib.get("Id") + target = rel.attrib.get("Target") + if rel_id and target: + image_name = cell_image_embed_to_name.get(rel_id) + if not image_name: + logger.warning( + f"跳过缺少 cellImage 名称映射的关系: {rel_id}" + ) + continue + self.cell_image_map[image_name] = target + + except Exception as e: + logger.warning(f"解析 cellimages 映射失败: {e}") + return {} + + return self.cell_image_map + + @staticmethod + def _escape_text_with_line_breaks(text: str) -> str: + return ( + html.escape(text) + .replace("\r\n", "\n") + .replace("\r", "\n") + .replace("\n", "
") + ) + + @staticmethod + def _get_cell_hyperlink_target(cell) -> str: + hyperlink = getattr(cell, "hyperlink", None) + if not hyperlink: + return "" + + target = getattr(hyperlink, "target", None) + if target: + return str(target) + + location = getattr(hyperlink, "location", None) + if location: + return f"#{location}" + + return "" + + @staticmethod + def _sanitize_hyperlink_target(target: str) -> str: + href = target.strip() + if not href: + return "" + + if href.lower().startswith(("javascript:", "data:", "vbscript:")): + return "" + + parsed = urlparse(href) + allowed_schemes = {"http", "https", "mailto", "ftp"} + scheme = parsed.scheme.lower() if parsed.scheme else "" + if scheme and scheme not in allowed_schemes: + return "" + + return html.escape(href, quote=True) + + @staticmethod + def _apply_inline_font_tags(text_html: str, inline_font) -> str: + if not text_html or inline_font is None: + return text_html + + wrapped = text_html + vert_align = getattr(inline_font, "vertAlign", None) + if vert_align == "superscript": + wrapped = f"{wrapped}" + elif vert_align == "subscript": + wrapped = f"{wrapped}" + + if getattr(inline_font, "strike", False): + wrapped = f"{wrapped}" + if getattr(inline_font, "u", None): + wrapped = f"{wrapped}" + if getattr(inline_font, "i", False): + wrapped = f"{wrapped}" + if getattr(inline_font, "b", False): + wrapped = f"{wrapped}" + + return wrapped + + @staticmethod + def _contains_block_level_html(content: str) -> bool: + return bool( + re.search( + r"<\s*(p|ul|ol|li|div|table|blockquote|pre|h[1-6])\b", + content, + re.IGNORECASE, + ) + ) + + def _render_cell_inner_html(self, content: str, is_html: bool) -> str: + if not content: + return "

" + + if is_html and self._contains_block_level_html(content): + return content + + return f"

{content}

" + + def _cell_value_to_html(self, cell) -> tuple[str, bool]: + if cell.value is None: + return "", False + + link_target = self._sanitize_hyperlink_target( + self._get_cell_hyperlink_target(cell) + ) + + if isinstance(cell.value, CellRichText): + html_parts = [] + for part in cell.value: + if hasattr(part, "text"): + part_text = self._escape_text_with_line_breaks( + str(getattr(part, "text", "")) + ) + html_parts.append( + self._apply_inline_font_tags( + part_text, + getattr(part, "font", None), + ) + ) + else: + html_parts.append(self._escape_text_with_line_breaks(str(part))) + + rich_text_html = "".join(html_parts) + if link_target and rich_text_html: + rich_text_html = f'{rich_text_html}' + return rich_text_html, True + + plain_text = str(cell.value) + if link_target and plain_text: + escaped_text = self._escape_text_with_line_breaks(plain_text) + return f'{escaped_text}', True + + return plain_text, False + + def _extract_cell_style(self, cell): + """Extract styles from an openpyxl cell.""" + style = {} + if cell.font: + if cell.font.b: + style["font-weight"] = "bold" + if cell.font.i: + style["font-style"] = "italic" + if cell.font.u: + style["text-decoration"] = "underline" + if cell.font.strike: + style["text-decoration"] = "line-through" + if ( + cell.font.color + and hasattr(cell.font.color, "rgb") + and cell.font.color.rgb + ): + # Color might be ARGB "FF000000" + color = cell.font.color.rgb + if isinstance(color, str) and len(color) == 8: + style["color"] = "#" + color[2:] + elif isinstance(color, str): + style["color"] = "#" + color + + if cell.alignment: + if cell.alignment.horizontal: + style["text-align"] = cell.alignment.horizontal + if cell.alignment.vertical: + style["vertical-align"] = cell.alignment.vertical + + if cell.fill and cell.fill.patternType == "solid" and cell.fill.fgColor: + # handle bg color + color = cell.fill.fgColor.rgb + if ( + hasattr(cell.fill.fgColor, "type") + and cell.fill.fgColor.type == "rgb" + and color + ): + if isinstance(color, str) and len(color) == 8: + style["background-color"] = "#" + color[2:] + return style + + @staticmethod + def _get_sheet_content_layer(sheet: Worksheet): + """根据工作表的可见性返回对应的内容层。 + + 若工作表可见,返回 None(默认层);否则返回 INVISIBLE 层。 + + 参数: + sheet: 待检查的工作表。 + + 返回: + ContentLayer.INVISIBLE 或 None。 + """ + return ( + None if sheet.sheet_state == Worksheet.SHEETSTATE_VISIBLE else "INVISIBLE" + ) diff --git a/magic_pdf/resources/fasttext-langdetect/lid.176.ftz b/mineru/resources/fasttext-langdetect/lid.176.ftz similarity index 100% rename from magic_pdf/resources/fasttext-langdetect/lid.176.ftz rename to mineru/resources/fasttext-langdetect/lid.176.ftz diff --git a/mineru/resources/header.html b/mineru/resources/header.html new file mode 100644 index 000000000..d7f9be856 --- /dev/null +++ b/mineru/resources/header.html @@ -0,0 +1,141 @@ + + + + + +
+
+
+

+ MinerU 3: Document Extraction Demo +

+
+
+ +

+ Open-source document extraction for PDF, DOCX, PPTX, XLSX, and images to Markdown and JSON.
+ If you found our project helpful, please give us a ⭐️ to support us! + + stars + +

+ + + + + +
+ + + diff --git a/mineru/utils/__init__.py b/mineru/utils/__init__.py new file mode 100644 index 000000000..1e17167ce --- /dev/null +++ b/mineru/utils/__init__.py @@ -0,0 +1 @@ +# Copyright (c) Opendatalab. All rights reserved. diff --git a/mineru/utils/bbox_utils.py b/mineru/utils/bbox_utils.py new file mode 100644 index 000000000..717c65946 --- /dev/null +++ b/mineru/utils/bbox_utils.py @@ -0,0 +1,51 @@ +# Copyright (c) Opendatalab. All rights reserved. +import math + +import numpy as np + + +def normalize_to_int_bbox(box, image_size: tuple[int, int] | None = None) -> list[int] | None: + if box is None: + return None + + arr = np.asarray(box, dtype=np.float64) + if arr.size == 0: + return None + + if arr.ndim == 2 and arr.shape[-1] == 2: + xs = arr[:, 0] + ys = arr[:, 1] + xmin = float(np.min(xs)) + ymin = float(np.min(ys)) + xmax = float(np.max(xs)) + ymax = float(np.max(ys)) + else: + flat = arr.reshape(-1) + if flat.size == 4: + xmin, ymin, xmax, ymax = [float(v) for v in flat] + elif flat.size >= 8: + xs = flat[0::2] + ys = flat[1::2] + xmin = float(np.min(xs)) + ymin = float(np.min(ys)) + xmax = float(np.max(xs)) + ymax = float(np.max(ys)) + else: + return None + + xmin = math.floor(xmin) + ymin = math.floor(ymin) + xmax = math.ceil(xmax) + ymax = math.ceil(ymax) + + if image_size is not None: + height, width = image_size + xmin = max(0, min(int(width), xmin)) + ymin = max(0, min(int(height), ymin)) + xmax = max(0, min(int(width), xmax)) + ymax = max(0, min(int(height), ymax)) + + if xmax <= xmin or ymax <= ymin: + return None + + return [int(xmin), int(ymin), int(xmax), int(ymax)] diff --git a/mineru/utils/boxbase.py b/mineru/utils/boxbase.py new file mode 100644 index 000000000..ea96c5260 --- /dev/null +++ b/mineru/utils/boxbase.py @@ -0,0 +1,227 @@ +# Copyright (c) Opendatalab. All rights reserved. +import math + + +def is_in(box1, box2) -> bool: + """box1是否完全在box2里面.""" + x0_1, y0_1, x1_1, y1_1 = box1 + x0_2, y0_2, x1_2, y1_2 = box2 + + return ( + x0_1 >= x0_2 # box1的左边界不在box2的左边外 + and y0_1 >= y0_2 # box1的上边界不在box2的上边外 + and x1_1 <= x1_2 # box1的右边界不在box2的右边外 + and y1_1 <= y1_2 + ) # box1的下边界不在box2的下边外 + + +def bbox_relative_pos(bbox1, bbox2): + """判断两个矩形框的相对位置关系. + + Args: + bbox1: 一个四元组,表示第一个矩形框的左上角和右下角的坐标,格式为(x1, y1, x1b, y1b) + bbox2: 一个四元组,表示第二个矩形框的左上角和右下角的坐标,格式为(x2, y2, x2b, y2b) + + Returns: + 一个四元组,表示矩形框1相对于矩形框2的位置关系,格式为(left, right, bottom, top) + 其中,left表示矩形框1是否在矩形框2的左侧,right表示矩形框1是否在矩形框2的右侧, + bottom表示矩形框1是否在矩形框2的下方,top表示矩形框1是否在矩形框2的上方 + """ + x1, y1, x1b, y1b = bbox1 + x2, y2, x2b, y2b = bbox2 + + left = x2b < x1 + right = x1b < x2 + bottom = y2b < y1 + top = y1b < y2 + return left, right, bottom, top + + +def bbox_distance(bbox1, bbox2): + """计算两个矩形框的距离。 + + Args: + bbox1 (tuple): 第一个矩形框的坐标,格式为 (x1, y1, x2, y2),其中 (x1, y1) 为左上角坐标,(x2, y2) 为右下角坐标。 + bbox2 (tuple): 第二个矩形框的坐标,格式为 (x1, y1, x2, y2),其中 (x1, y1) 为左上角坐标,(x2, y2) 为右下角坐标。 + + Returns: + float: 矩形框之间的距离。 + """ + + def dist(point1, point2): + return math.sqrt((point1[0] - point2[0]) ** 2 + (point1[1] - point2[1]) ** 2) + + x1, y1, x1b, y1b = bbox1 + x2, y2, x2b, y2b = bbox2 + + left, right, bottom, top = bbox_relative_pos(bbox1, bbox2) + + if top and left: + return dist((x1, y1b), (x2b, y2)) + elif left and bottom: + return dist((x1, y1), (x2b, y2b)) + elif bottom and right: + return dist((x1b, y1), (x2, y2b)) + elif right and top: + return dist((x1b, y1b), (x2, y2)) + elif left: + return x1 - x2b + elif right: + return x2 - x1b + elif bottom: + return y1 - y2b + elif top: + return y2 - y1b + return 0.0 + + +def bbox_center_distance(bbox1, bbox2): + """计算两个矩形框中心点之间的欧氏距离。 + + Args: + bbox1 (tuple): 第一个矩形框的坐标,格式为 (x1, y1, x2, y2) + bbox2 (tuple): 第二个矩形框的坐标,格式为 (x1, y1, x2, y2) + + Returns: + float: 两个矩形框中心点之间的距离 + """ + x1, y1, x1b, y1b = bbox1 + x2, y2, x2b, y2b = bbox2 + + # 计算中心点 + center1_x = (x1 + x1b) / 2 + center1_y = (y1 + y1b) / 2 + center2_x = (x2 + x2b) / 2 + center2_y = (y2 + y2b) / 2 + + # 计算欧氏距离 + return math.sqrt((center1_x - center2_x) ** 2 + (center1_y - center2_y) ** 2) + + +def get_minbox_if_overlap_by_ratio(bbox1, bbox2, ratio): + """通过calculate_overlap_area_2_minbox_area_ratio计算两个bbox重叠的面积占最小面积的box的比例 + 如果比例大于ratio,则返回小的那个bbox, 否则返回None.""" + x1_min, y1_min, x1_max, y1_max = bbox1 + x2_min, y2_min, x2_max, y2_max = bbox2 + area1 = (x1_max - x1_min) * (y1_max - y1_min) + area2 = (x2_max - x2_min) * (y2_max - y2_min) + overlap_ratio = calculate_overlap_area_2_minbox_area_ratio(bbox1, bbox2) + if overlap_ratio > ratio: + if area1 <= area2: + return bbox1 + else: + return bbox2 + else: + return None + + +def calculate_overlap_area_2_minbox_area_ratio(bbox1, bbox2): + """计算box1和box2的重叠面积占最小面积的box的比例.""" + # Determine the coordinates of the intersection rectangle + x_left = max(bbox1[0], bbox2[0]) + y_top = max(bbox1[1], bbox2[1]) + x_right = min(bbox1[2], bbox2[2]) + y_bottom = min(bbox1[3], bbox2[3]) + + if x_right < x_left or y_bottom < y_top: + return 0.0 + + # The area of overlap area + intersection_area = (x_right - x_left) * (y_bottom - y_top) + min_box_area = min([(bbox1[2] - bbox1[0]) * (bbox1[3] - bbox1[1]), + (bbox2[3] - bbox2[1]) * (bbox2[2] - bbox2[0])]) + if min_box_area == 0: + return 0 + else: + return intersection_area / min_box_area + + +def calculate_iou(bbox1, bbox2): + """计算两个边界框的交并比(IOU)。 + + Args: + bbox1 (list[float]): 第一个边界框的坐标,格式为 [x1, y1, x2, y2],其中 (x1, y1) 为左上角坐标,(x2, y2) 为右下角坐标。 + bbox2 (list[float]): 第二个边界框的坐标,格式与 `bbox1` 相同。 + + Returns: + float: 两个边界框的交并比(IOU),取值范围为 [0, 1]。 + """ + # Determine the coordinates of the intersection rectangle + x_left = max(bbox1[0], bbox2[0]) + y_top = max(bbox1[1], bbox2[1]) + x_right = min(bbox1[2], bbox2[2]) + y_bottom = min(bbox1[3], bbox2[3]) + + if x_right < x_left or y_bottom < y_top: + return 0.0 + + # The area of overlap area + intersection_area = (x_right - x_left) * (y_bottom - y_top) + + # The area of both rectangles + bbox1_area = (bbox1[2] - bbox1[0]) * (bbox1[3] - bbox1[1]) + bbox2_area = (bbox2[2] - bbox2[0]) * (bbox2[3] - bbox2[1]) + + if any([bbox1_area == 0, bbox2_area == 0]): + return 0 + + # Compute the intersection over union by taking the intersection area + # and dividing it by the sum of both areas minus the intersection area + iou = intersection_area / float(bbox1_area + bbox2_area - intersection_area) + + return iou + + +def calculate_overlap_area_in_bbox1_area_ratio(bbox1, bbox2): + """计算box1和box2的重叠面积占bbox1的比例.""" + # Determine the coordinates of the intersection rectangle + x_left = max(bbox1[0], bbox2[0]) + y_top = max(bbox1[1], bbox2[1]) + x_right = min(bbox1[2], bbox2[2]) + y_bottom = min(bbox1[3], bbox2[3]) + + if x_right < x_left or y_bottom < y_top: + return 0.0 + + # The area of overlap area + intersection_area = (x_right - x_left) * (y_bottom - y_top) + bbox1_area = (bbox1[2] - bbox1[0]) * (bbox1[3] - bbox1[1]) + if bbox1_area == 0: + return 0 + else: + return intersection_area / bbox1_area + + +def calculate_vertical_projection_overlap_ratio(block1, block2): + """ + Calculate the proportion of the x-axis covered by the vertical projection of two blocks. + + Args: + block1 (tuple): Coordinates of the first block (x0, y0, x1, y1). + block2 (tuple): Coordinates of the second block (x0, y0, x1, y1). + + Returns: + float: The proportion of the x-axis covered by the vertical projection of the two blocks. + """ + x0_1, _, x1_1, _ = block1 + x0_2, _, x1_2, _ = block2 + + # Calculate the intersection of the x-coordinates + x_left = max(x0_1, x0_2) + x_right = min(x1_1, x1_2) + + if x_right < x_left: + return 0.0 + + # Length of the intersection + intersection_length = x_right - x_left + + # Length of the x-axis projection of the first block + block1_length = x1_1 - x0_1 + + if block1_length == 0: + return 0.0 + + # Proportion of the x-axis covered by the intersection + # logger.info(f"intersection_length: {intersection_length}, block1_length: {block1_length}") + return intersection_length / block1_length \ No newline at end of file diff --git a/mineru/utils/char_utils.py b/mineru/utils/char_utils.py new file mode 100644 index 000000000..c6a752450 --- /dev/null +++ b/mineru/utils/char_utils.py @@ -0,0 +1,55 @@ +# Copyright (c) Opendatalab. All rights reserved. +import re + + +def is_hyphen_at_line_end(line): + """Check if a line ends with one or more letters followed by a hyphen. + + Args: + line (str): The line of text to check. + + Returns: + bool: True if the line ends with one or more letters followed by a hyphen, False otherwise. + """ + # Use regex to check if the line ends with one or more letters followed by a hyphen + return bool(re.search(r'[A-Za-z]+-\s*$', line)) + + +def full_to_half_exclude_marks(text: str) -> str: + """Convert full-width characters to half-width characters using code point manipulation. + + Args: + text: String containing full-width characters + + Returns: + String with full-width characters converted to half-width + """ + result = [] + for char in text: + code = ord(char) + # Full-width letters and numbers (FF21-FF3A for A-Z, FF41-FF5A for a-z, FF10-FF19 for 0-9) + if (0xFF21 <= code <= 0xFF3A) or (0xFF41 <= code <= 0xFF5A) or (0xFF10 <= code <= 0xFF19): + result.append(chr(code - 0xFEE0)) # Shift to ASCII range + else: + result.append(char) + return ''.join(result) + + +def full_to_half(text: str) -> str: + """Convert full-width characters to half-width characters using code point manipulation. + + Args: + text: String containing full-width characters + + Returns: + String with full-width characters converted to half-width + """ + result = [] + for char in text: + code = ord(char) + # Full-width letters, numbers and punctuation (FF01-FF5E) + if 0xFF01 <= code <= 0xFF5E: + result.append(chr(code - 0xFEE0)) # Shift to ASCII range + else: + result.append(char) + return ''.join(result) diff --git a/mineru/utils/check_sys_env.py b/mineru/utils/check_sys_env.py new file mode 100644 index 000000000..02b56bc8d --- /dev/null +++ b/mineru/utils/check_sys_env.py @@ -0,0 +1,38 @@ +# Copyright (c) Opendatalab. All rights reserved. +import platform + +from packaging import version + + +def is_windows_environment() -> bool: + return platform.system() == "Windows" + + +# Detect if the current environment is a Mac computer +def is_mac_environment() -> bool: + return platform.system() == "Darwin" + + +def is_linux_environment() -> bool: + return platform.system() == "Linux" + + +# Detect if CPU is Apple Silicon architecture +def is_apple_silicon_cpu() -> bool: + return platform.machine() in ["arm64", "aarch64"] + + +# If Mac computer with Apple Silicon architecture, check if macOS version is 13.5 or above +def is_mac_os_version_supported(min_version: str = "13.5") -> bool: + if not is_mac_environment() or not is_apple_silicon_cpu(): + return False + mac_version = platform.mac_ver()[0] + if not mac_version: + return False + # print("Mac OS Version:", mac_version) + return version.parse(mac_version) >= version.parse(min_version) + +if __name__ == "__main__": + print("Is Mac Environment:", is_mac_environment()) + print("Is Apple Silicon CPU:", is_apple_silicon_cpu()) + print("Is Mac OS Version Supported (>=13.5):", is_mac_os_version_supported()) \ No newline at end of file diff --git a/mineru/utils/cli_parser.py b/mineru/utils/cli_parser.py new file mode 100644 index 000000000..2278a0014 --- /dev/null +++ b/mineru/utils/cli_parser.py @@ -0,0 +1,56 @@ +# Copyright (c) Opendatalab. All rights reserved. +from collections.abc import Sequence + +import click + + +def _coerce_cli_value(raw_value: str) -> bool | float | int | str: + lowered = raw_value.lower() + if lowered == "true": + return True + if lowered == "false": + return False + + try: + return int(raw_value) + except ValueError: + pass + + try: + return float(raw_value) + except ValueError: + return raw_value + + +def parse_unknown_args(args: Sequence[str]) -> dict: + """Parse unknown click args into keyword arguments.""" + extra_kwargs = {} + i = 0 + while i < len(args): + arg = args[i] + if not arg.startswith("--"): + i += 1 + continue + + raw_option = arg[2:] + if "=" in raw_option: + param_name, raw_value = raw_option.split("=", 1) + extra_kwargs[param_name.replace("-", "_")] = _coerce_cli_value(raw_value) + i += 1 + continue + + param_name = raw_option.replace("-", "_") + next_index = i + 1 + if next_index < len(args) and not args[next_index].startswith("--"): + extra_kwargs[param_name] = _coerce_cli_value(args[next_index]) + i += 2 + continue + + extra_kwargs[param_name] = True + i += 1 + + return extra_kwargs + + +def arg_parse(ctx: "click.Context") -> dict: + return parse_unknown_args(ctx.args) diff --git a/mineru/utils/config_reader.py b/mineru/utils/config_reader.py new file mode 100644 index 000000000..a04d882e7 --- /dev/null +++ b/mineru/utils/config_reader.py @@ -0,0 +1,196 @@ +# Copyright (c) Opendatalab. All rights reserved. +import json +import os +from loguru import logger + +try: + import torch + import torch_npu +except ImportError: + pass + + +# 定义配置文件名常量 +CONFIG_FILE_NAME = os.getenv('MINERU_TOOLS_CONFIG_JSON', 'mineru.json') + + +def read_config(): + if os.path.isabs(CONFIG_FILE_NAME): + config_file = CONFIG_FILE_NAME + else: + home_dir = os.path.expanduser('~') + config_file = os.path.join(home_dir, CONFIG_FILE_NAME) + + if not os.path.exists(config_file): + # logger.warning(f'{config_file} not found, using default configuration') + return None + else: + with open(config_file, 'r', encoding='utf-8') as f: + config = json.load(f) + return config + + +def get_s3_config(bucket_name: str): + """~/magic-pdf.json 读出来.""" + config = read_config() + + bucket_info = config.get('bucket_info') + if bucket_name not in bucket_info: + access_key, secret_key, storage_endpoint = bucket_info['[default]'] + else: + access_key, secret_key, storage_endpoint = bucket_info[bucket_name] + + if access_key is None or secret_key is None or storage_endpoint is None: + raise Exception(f'ak, sk or endpoint not found in {CONFIG_FILE_NAME}') + + # logger.info(f"get_s3_config: ak={access_key}, sk={secret_key}, endpoint={storage_endpoint}") + + return access_key, secret_key, storage_endpoint + + +def get_s3_config_dict(path: str): + access_key, secret_key, storage_endpoint = get_s3_config(get_bucket_name(path)) + return {'ak': access_key, 'sk': secret_key, 'endpoint': storage_endpoint} + + +def get_bucket_name(path): + bucket, key = parse_bucket_key(path) + return bucket + + +def parse_bucket_key(s3_full_path: str): + """ + 输入 s3://bucket/path/to/my/file.txt + 输出 bucket, path/to/my/file.txt + """ + s3_full_path = s3_full_path.strip() + if s3_full_path.startswith("s3://"): + s3_full_path = s3_full_path[5:] + if s3_full_path.startswith("/"): + s3_full_path = s3_full_path[1:] + bucket, key = s3_full_path.split("/", 1) + return bucket, key + + +def get_device(): + device_mode = os.getenv('MINERU_DEVICE_MODE', None) + if device_mode is not None: + return device_mode + else: + if torch.cuda.is_available(): + return "cuda" + elif torch.backends.mps.is_available(): + return "mps" + else: + try: + if torch_npu.npu.is_available(): + return "npu" + except Exception as e: + try: + if torch.gcu.is_available(): + return "gcu" + except Exception as e: + try: + if torch.musa.is_available(): + return "musa" + except Exception as e: + try: + if torch.mlu.is_available(): + return "mlu" + except Exception as e: + try: + if torch.sdaa.is_available(): + return "sdaa" + except Exception as e: + pass + + return "cpu" + + +def get_formula_enable(formula_enable): + formula_enable_env = os.getenv('MINERU_FORMULA_ENABLE') + formula_enable = formula_enable if formula_enable_env is None else formula_enable_env.lower() == 'true' + return formula_enable + + +def get_table_enable(table_enable): + table_enable_env = os.getenv('MINERU_TABLE_ENABLE') + table_enable = table_enable if table_enable_env is None else table_enable_env.lower() == 'true' + return table_enable + + +def get_ocr_det_mask_inline_formula_enable(enable): + enable_env = os.getenv('MINERU_OCR_DET_MASK_INLINE_FORMULA_ENABLE') + enable = enable if enable_env is None else enable_env.lower() == 'true' + return enable + + +def get_processing_window_size(default: int = 64) -> int: + value = os.getenv('MINERU_PROCESSING_WINDOW_SIZE') + if value is None: + return default + try: + window_size = int(value) + except ValueError: + logger.warning( + f"Invalid MINERU_PROCESSING_WINDOW_SIZE value: {value}, use default {default}" + ) + return default + return max(1, window_size) + + +def get_max_concurrent_requests(default: int = 3) -> int: + if default <= 0: + raise ValueError( + f"default max_concurrent_requests must be a positive integer, got {default}" + ) + value = os.getenv('MINERU_API_MAX_CONCURRENT_REQUESTS') + if value is None: + return default + try: + max_concurrent_requests = int(value) + except ValueError as exc: + raise ValueError( + "Invalid MINERU_API_MAX_CONCURRENT_REQUESTS value: " + f"{value}. Expected a positive integer." + ) from exc + if max_concurrent_requests <= 0: + raise ValueError( + "Invalid MINERU_API_MAX_CONCURRENT_REQUESTS value: " + f"{value}. Expected a positive integer." + ) + return max_concurrent_requests + + +def get_latex_delimiter_config(): + config = read_config() + if config is None: + return None + latex_delimiter_config = config.get('latex-delimiter-config', None) + if latex_delimiter_config is None: + # logger.warning(f"'latex-delimiter-config' not found in {CONFIG_FILE_NAME}, use 'None' as default") + return None + else: + return latex_delimiter_config + + +def get_llm_aided_config(): + config = read_config() + if config is None: + return None + llm_aided_config = config.get('llm-aided-config', None) + if llm_aided_config is None: + # logger.warning(f"'llm-aided-config' not found in {CONFIG_FILE_NAME}, use 'None' as default") + return None + else: + return llm_aided_config + + +def get_local_models_dir(): + config = read_config() + if config is None: + return None + models_dir = config.get('models-dir') + if models_dir is None: + logger.warning(f"'models-dir' not found in {CONFIG_FILE_NAME}, use None as default") + return models_dir diff --git a/mineru/utils/cut_image.py b/mineru/utils/cut_image.py new file mode 100644 index 000000000..57bfa4acf --- /dev/null +++ b/mineru/utils/cut_image.py @@ -0,0 +1,28 @@ +# Copyright (c) Opendatalab. All rights reserved. +from loguru import logger + +from .pdf_image_tools import cut_image + + +def cut_image_and_table(span, page_pil_img, page_img_md5, page_id, image_writer, scale=2): + + def return_path(path_type): + return f"{path_type}/{page_img_md5}" + + span_type = span["type"] + + if not check_img_bbox(span["bbox"]) or not image_writer: + span["image_path"] = "" + else: + span["image_path"] = cut_image( + span["bbox"], page_id, page_pil_img, return_path=return_path(span_type), image_writer=image_writer, scale=scale + ) + + return span + + +def check_img_bbox(bbox) -> bool: + if any([bbox[0] >= bbox[2], bbox[1] >= bbox[3]]): + logger.warning(f"image_bboxes: 错误的box, {bbox}") + return False + return True diff --git a/mineru/utils/docx_formatting.py b/mineru/utils/docx_formatting.py new file mode 100644 index 000000000..7e44840be --- /dev/null +++ b/mineru/utils/docx_formatting.py @@ -0,0 +1,22 @@ +# Copyright (c) Opendatalab. All rights reserved. +from enum import Enum + +from pydantic import BaseModel + + +class Script(str, Enum): + """Text script position.""" + + BASELINE = "baseline" + SUB = "sub" + SUPER = "super" + + +class Formatting(BaseModel): + """Formatting.""" + + bold: bool = False + italic: bool = False + underline: bool = False + strikethrough: bool = False + script: Script = Script.BASELINE diff --git a/mineru/utils/draw_bbox.py b/mineru/utils/draw_bbox.py new file mode 100644 index 000000000..55cc337df --- /dev/null +++ b/mineru/utils/draw_bbox.py @@ -0,0 +1,421 @@ +# Copyright (c) Opendatalab. All rights reserved. +import json +from io import BytesIO + +from loguru import logger +from pypdf import PdfReader, PdfWriter, PageObject +from reportlab.pdfgen import canvas + +from .enum_class import BlockType, ContentType, SplitFlag + + +def cal_canvas_rect(page, bbox): + """ + Calculate the rectangle coordinates on the canvas based on the original PDF page and bounding box. + + Args: + page: A PyPDF2 Page object representing a single page in the PDF. + bbox: [x0, y0, x1, y1] representing the bounding box coordinates. + + Returns: + rect: [x0, y0, width, height] representing the rectangle coordinates on the canvas. + """ + page_width, page_height = float(page.cropbox[2]), float(page.cropbox[3]) + + actual_width = page_width # The width of the final PDF display + actual_height = page_height # The height of the final PDF display + + rotation_obj = page.get("/Rotate", 0) + try: + rotation = int(rotation_obj) % 360 # cast rotation to int to handle IndirectObject + except (ValueError, TypeError) as e: + logger.warning(f"Invalid /Rotate value {rotation_obj!r} on page; defaulting to 0. Error: {e}") + rotation = 0 + + if rotation in [90, 270]: + # PDF is rotated 90 degrees or 270 degrees, and the width and height need to be swapped + actual_width, actual_height = actual_height, actual_width + + x0, y0, x1, y1 = bbox + rect_w = abs(x1 - x0) + rect_h = abs(y1 - y0) + + if rotation == 270: + rect_w, rect_h = rect_h, rect_w + x0 = actual_height - y1 + y0 = actual_width - x1 + elif rotation == 180: + x0 = page_width - x1 + # y0 stays the same + elif rotation == 90: + rect_w, rect_h = rect_h, rect_w + x0, y0 = y0, x0 + else: + # rotation == 0 + y0 = page_height - y1 + + rect = [x0, y0, rect_w, rect_h] + return rect + + +def draw_bbox_without_number(i, bbox_list, page, c, rgb_config, fill_config): + new_rgb = [float(color) / 255 for color in rgb_config] + page_data = bbox_list[i] + + for bbox in page_data: + rect = cal_canvas_rect(page, bbox) # Define the rectangle + + if fill_config: # filled rectangle + c.setFillColorRGB(new_rgb[0], new_rgb[1], new_rgb[2], 0.3) + c.rect(rect[0], rect[1], rect[2], rect[3], stroke=0, fill=1) + else: # bounding box + c.setStrokeColorRGB(new_rgb[0], new_rgb[1], new_rgb[2]) + c.rect(rect[0], rect[1], rect[2], rect[3], stroke=1, fill=0) + return c + + +def draw_bbox_with_number(i, bbox_list, page, c, rgb_config, fill_config, draw_bbox=True): + new_rgb = [float(color) / 255 for color in rgb_config] + page_data = bbox_list[i] + # 强制转换为 float + page_width, page_height = float(page.cropbox[2]), float(page.cropbox[3]) + + for j, bbox in enumerate(page_data): + # 确保bbox的每个元素都是float + rect = cal_canvas_rect(page, bbox) # Define the rectangle + + if draw_bbox: + if fill_config: + c.setFillColorRGB(*new_rgb, 0.3) + c.rect(rect[0], rect[1], rect[2], rect[3], stroke=0, fill=1) + else: + c.setStrokeColorRGB(*new_rgb) + c.rect(rect[0], rect[1], rect[2], rect[3], stroke=1, fill=0) + c.setFillColorRGB(*new_rgb, 1.0) + c.setFontSize(size=10) + + c.saveState() + rotation_obj = page.get("/Rotate", 0) + try: + rotation = int(rotation_obj) % 360 # cast rotation to int to handle IndirectObject + except (ValueError, TypeError): + logger.warning(f"Invalid /Rotate value: {rotation_obj!r}, defaulting to 0") + rotation = 0 + + if rotation == 0: + c.translate(rect[0] + rect[2] + 2, rect[1] + rect[3] - 10) + elif rotation == 90: + c.translate(rect[0] + 10, rect[1] + rect[3] + 2) + elif rotation == 180: + c.translate(rect[0] - 2, rect[1] + 10) + elif rotation == 270: + c.translate(rect[0] + rect[2] - 10, rect[1] - 2) + + c.rotate(rotation) + c.drawString(0, 0, str(j + 1)) + c.restoreState() + + return c + + +def draw_layout_bbox(pdf_info, pdf_bytes, out_path, filename): + dropped_bbox_list = [] + tables_body_list, tables_caption_list, tables_footnote_list = [], [], [] + imgs_body_list, imgs_caption_list, imgs_footnote_list = [], [], [] + codes_body_list, codes_caption_list, codes_footnote_list = [], [], [] + titles_list = [] + texts_list = [] + interline_equations_list = [] + lists_list = [] + list_items_list = [] + indexs_list = [] + + for page in pdf_info: + page_dropped_list = [] + tables_body, tables_caption, tables_footnote = [], [], [] + imgs_body, imgs_caption, imgs_footnote = [], [], [] + codes_body, codes_caption, codes_footnote = [], [], [] + titles = [] + texts = [] + interline_equations = [] + lists = [] + list_items = [] + indices = [] + + for dropped_bbox in page['discarded_blocks']: + page_dropped_list.append(dropped_bbox['bbox']) + dropped_bbox_list.append(page_dropped_list) + for block in page["para_blocks"]: + bbox = block["bbox"] + if block["type"] == BlockType.TABLE: + for nested_block in block["blocks"]: + bbox = nested_block["bbox"] + if nested_block["type"] == BlockType.TABLE_BODY: + tables_body.append(bbox) + elif nested_block["type"] == BlockType.TABLE_CAPTION: + tables_caption.append(bbox) + elif nested_block["type"] == BlockType.TABLE_FOOTNOTE: + if nested_block.get(SplitFlag.CROSS_PAGE, False): + continue + tables_footnote.append(bbox) + elif block["type"] == BlockType.IMAGE: + for nested_block in block["blocks"]: + bbox = nested_block["bbox"] + if nested_block["type"] == BlockType.IMAGE_BODY: + imgs_body.append(bbox) + elif nested_block["type"] == BlockType.IMAGE_CAPTION: + imgs_caption.append(bbox) + elif nested_block["type"] == BlockType.IMAGE_FOOTNOTE: + imgs_footnote.append(bbox) + elif block["type"] == BlockType.CODE: + for nested_block in block["blocks"]: + if nested_block["type"] == BlockType.CODE_BODY: + bbox = nested_block["bbox"] + codes_body.append(bbox) + elif nested_block["type"] == BlockType.CODE_CAPTION: + bbox = nested_block["bbox"] + codes_caption.append(bbox) + elif nested_block["type"] == BlockType.CODE_FOOTNOTE: + bbox = nested_block["bbox"] + codes_footnote.append(bbox) + elif block["type"] == BlockType.CHART: + for nested_block in block["blocks"]: + if nested_block["type"] == BlockType.CHART_BODY: + bbox = nested_block["bbox"] + imgs_body.append(bbox) + elif nested_block["type"] == BlockType.CHART_CAPTION: + bbox = nested_block["bbox"] + imgs_caption.append(bbox) + elif nested_block["type"] == BlockType.CHART_FOOTNOTE: + bbox = nested_block["bbox"] + imgs_footnote.append(bbox) + elif block["type"] == BlockType.SEAL: + imgs_body.append(bbox) + elif block["type"] == BlockType.TITLE: + titles.append(bbox) + elif block["type"] in [BlockType.TEXT, BlockType.REF_TEXT, BlockType.ABSTRACT]: + texts.append(bbox) + elif block["type"] == BlockType.INTERLINE_EQUATION: + interline_equations.append(bbox) + elif block["type"] == BlockType.LIST: + lists.append(bbox) + if "blocks" in block: + for sub_block in block["blocks"]: + list_items.append(sub_block["bbox"]) + elif block["type"] == BlockType.INDEX: + indices.append(bbox) + + tables_body_list.append(tables_body) + tables_caption_list.append(tables_caption) + tables_footnote_list.append(tables_footnote) + imgs_body_list.append(imgs_body) + imgs_caption_list.append(imgs_caption) + imgs_footnote_list.append(imgs_footnote) + titles_list.append(titles) + texts_list.append(texts) + interline_equations_list.append(interline_equations) + lists_list.append(lists) + list_items_list.append(list_items) + indexs_list.append(indices) + codes_body_list.append(codes_body) + codes_caption_list.append(codes_caption) + codes_footnote_list.append(codes_footnote) + + layout_bbox_list = [] + + for page in pdf_info: + page_block_list = [] + for block in page["para_blocks"]: + if block["type"] in [ + BlockType.TEXT, + BlockType.REF_TEXT, + BlockType.ABSTRACT, + BlockType.TITLE, + BlockType.INTERLINE_EQUATION, + BlockType.LIST, + BlockType.INDEX, + BlockType.SEAL, + ]: + bbox = block["bbox"] + page_block_list.append(bbox) + elif block["type"] in [BlockType.IMAGE, BlockType.CHART, BlockType.CODE, BlockType.TABLE]: + for sub_block in block["blocks"]: + if sub_block.get(SplitFlag.CROSS_PAGE, False): + continue + bbox = sub_block["bbox"] + page_block_list.append(bbox) + + layout_bbox_list.append(page_block_list) + + pdf_bytes_io = BytesIO(pdf_bytes) + pdf_docs = PdfReader(pdf_bytes_io) + output_pdf = PdfWriter() + + for i, page in enumerate(pdf_docs.pages): + # 获取原始页面尺寸 + page_width, page_height = float(page.cropbox[2]), float(page.cropbox[3]) + custom_page_size = (page_width, page_height) + + packet = BytesIO() + # 使用原始PDF的尺寸创建canvas + c = canvas.Canvas(packet, pagesize=custom_page_size) + + c = draw_bbox_without_number(i, codes_body_list, page, c, [102, 0, 204], True) + c = draw_bbox_without_number(i, codes_caption_list, page, c, [204, 153, 255], True) + c = draw_bbox_without_number(i, codes_footnote_list, page, c, [229, 204, 255], True) + c = draw_bbox_without_number(i, dropped_bbox_list, page, c, [158, 158, 158], True) + c = draw_bbox_without_number(i, tables_body_list, page, c, [204, 204, 0], True) + c = draw_bbox_without_number(i, tables_caption_list, page, c, [255, 255, 102], True) + c = draw_bbox_without_number(i, tables_footnote_list, page, c, [229, 255, 204], True) + c = draw_bbox_without_number(i, imgs_body_list, page, c, [153, 255, 51], True) + c = draw_bbox_without_number(i, imgs_caption_list, page, c, [102, 178, 255], True) + c = draw_bbox_without_number(i, imgs_footnote_list, page, c, [255, 178, 102], True) + c = draw_bbox_without_number(i, titles_list, page, c, [102, 102, 255], True) + c = draw_bbox_without_number(i, texts_list, page, c, [153, 0, 76], True) + c = draw_bbox_without_number(i, interline_equations_list, page, c, [0, 255, 0], True) + c = draw_bbox_without_number(i, lists_list, page, c, [40, 169, 92], True) + c = draw_bbox_without_number(i, list_items_list, page, c, [40, 169, 92], False) + c = draw_bbox_without_number(i, indexs_list, page, c, [40, 169, 92], True) + c = draw_bbox_with_number(i, layout_bbox_list, page, c, [255, 0, 0], False, draw_bbox=False) + + c.save() + packet.seek(0) + overlay_pdf = PdfReader(packet) + + # 添加检查确保overlay_pdf.pages不为空 + if len(overlay_pdf.pages) > 0: + new_page = PageObject(pdf=None) + new_page.update(page) + page = new_page + page.merge_page(overlay_pdf.pages[0]) + else: + # 记录日志并继续处理下一个页面 + # logger.warning(f"layout.pdf: 第{i + 1}页未能生成有效的overlay PDF") + pass + + output_pdf.add_page(page) + + # 保存结果 + with open(f"{out_path}/{filename}", "wb") as f: + output_pdf.write(f) + + +def draw_span_bbox(pdf_info, pdf_bytes, out_path, filename): + text_list = [] + inline_equation_list = [] + interline_equation_list = [] + image_list = [] + table_list = [] + dropped_list = [] + + def get_span_info(span): + if span['type'] == ContentType.TEXT: + page_text_list.append(span['bbox']) + elif span['type'] == ContentType.INLINE_EQUATION: + page_inline_equation_list.append(span['bbox']) + elif span['type'] == ContentType.INTERLINE_EQUATION: + page_interline_equation_list.append(span['bbox']) + elif span['type'] in [ContentType.IMAGE, ContentType.CHART, ContentType.SEAL]: + page_image_list.append(span['bbox']) + elif span['type'] == ContentType.TABLE: + page_table_list.append(span['bbox']) + + for page in pdf_info: + page_text_list = [] + page_inline_equation_list = [] + page_interline_equation_list = [] + page_image_list = [] + page_table_list = [] + page_dropped_list = [] + + + # 构造dropped_list + for block in page['discarded_blocks']: + for line in block['lines']: + for span in line['spans']: + page_dropped_list.append(span['bbox']) + dropped_list.append(page_dropped_list) + # 构造其余useful_list + # for block in page['para_blocks']: # span直接用分段合并前的结果就可以 + for block in page['preproc_blocks']: + if block['type'] in [ + BlockType.TEXT, + BlockType.TITLE, + BlockType.INTERLINE_EQUATION, + BlockType.LIST, + BlockType.INDEX, + BlockType.REF_TEXT, + BlockType.ABSTRACT, + BlockType.SEAL, + ]: + for line in block['lines']: + for span in line['spans']: + get_span_info(span) + elif block['type'] in [BlockType.IMAGE, BlockType.TABLE, BlockType.CHART, BlockType.CODE]: + for sub_block in block['blocks']: + for line in sub_block['lines']: + for span in line['spans']: + get_span_info(span) + text_list.append(page_text_list) + inline_equation_list.append(page_inline_equation_list) + interline_equation_list.append(page_interline_equation_list) + image_list.append(page_image_list) + table_list.append(page_table_list) + + pdf_bytes_io = BytesIO(pdf_bytes) + pdf_docs = PdfReader(pdf_bytes_io) + output_pdf = PdfWriter() + + for i, page in enumerate(pdf_docs.pages): + # 获取原始页面尺寸 + page_width, page_height = float(page.cropbox[2]), float(page.cropbox[3]) + custom_page_size = (page_width, page_height) + + packet = BytesIO() + # 使用原始PDF的尺寸创建canvas + c = canvas.Canvas(packet, pagesize=custom_page_size) + + # 获取当前页面的数据 + draw_bbox_without_number(i, text_list, page, c,[255, 0, 0], False) + draw_bbox_without_number(i, inline_equation_list, page, c, [0, 255, 0], False) + draw_bbox_without_number(i, interline_equation_list, page, c, [0, 0, 255], False) + draw_bbox_without_number(i, image_list, page, c, [255, 204, 0], False) + draw_bbox_without_number(i, table_list, page, c, [204, 0, 255], False) + draw_bbox_without_number(i, dropped_list, page, c, [158, 158, 158], False) + + c.save() + packet.seek(0) + overlay_pdf = PdfReader(packet) + + # 添加检查确保overlay_pdf.pages不为空 + if len(overlay_pdf.pages) > 0: + new_page = PageObject(pdf=None) + new_page.update(page) + page = new_page + page.merge_page(overlay_pdf.pages[0]) + else: + # 记录日志并继续处理下一个页面 + # logger.warning(f"span.pdf: 第{i + 1}页未能生成有效的overlay PDF") + pass + + output_pdf.add_page(page) + + # Save the PDF + with open(f"{out_path}/{filename}", "wb") as f: + output_pdf.write(f) + + +if __name__ == "__main__": + # 读取PDF文件 + pdf_path = "examples/demo1.pdf" + with open(pdf_path, "rb") as f: + pdf_bytes = f.read() + + # 从json文件读取pdf_info + + json_path = "examples/demo1_1746005777.0863056_middle.json" + with open(json_path, "r", encoding="utf-8") as f: + pdf_ann = json.load(f) + pdf_info = pdf_ann["pdf_info"] + # 调用可视化函数,输出到examples目录 + draw_layout_bbox(pdf_info, pdf_bytes, "examples", "output_with_layout.pdf") diff --git a/mineru/utils/engine_utils.py b/mineru/utils/engine_utils.py new file mode 100644 index 000000000..4eaa88f41 --- /dev/null +++ b/mineru/utils/engine_utils.py @@ -0,0 +1,76 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os + +from loguru import logger + +from mineru.utils.check_sys_env import is_mac_os_version_supported, is_windows_environment, is_mac_environment, \ + is_linux_environment + + +def get_vlm_engine(inference_engine: str, is_async: bool = False) -> str: + """ + 自动选择或验证 VLM 推理引擎 + + Args: + inference_engine: 指定的引擎名称或 'auto' 进行自动选择 + is_async: 是否使用异步引擎(仅对 vllm 有效) + + Returns: + 最终选择的引擎名称 + """ + if inference_engine == 'auto': + # 根据操作系统自动选择引擎 + if is_windows_environment(): + inference_engine = _select_windows_engine() + elif is_linux_environment(): + inference_engine = _select_linux_engine(is_async) + elif is_mac_environment(): + inference_engine = _select_mac_engine() + else: + logger.warning("Unknown operating system, falling back to transformers") + inference_engine = 'transformers' + + formatted_engine = _format_engine_name(inference_engine) + logger.info(f"Using {formatted_engine} as the inference engine for VLM.") + return formatted_engine + + +def _select_windows_engine() -> str: + """Windows 平台引擎选择""" + try: + import lmdeploy + return 'lmdeploy' + except ImportError: + return 'transformers' + + +def _select_linux_engine(is_async: bool) -> str: + """Linux 平台引擎选择""" + try: + import vllm + return 'vllm-async' if is_async else 'vllm' + except ImportError: + try: + import lmdeploy + return 'lmdeploy' + except ImportError: + return 'transformers' + + +def _select_mac_engine() -> str: + """macOS 平台引擎选择""" + try: + from mlx_vlm import load as mlx_load + if is_mac_os_version_supported(): + return 'mlx' + else: + return 'transformers' + except ImportError: + return 'transformers' + + +def _format_engine_name(engine: str) -> str: + """统一格式化引擎名称""" + if engine != 'transformers': + return f"{engine}-engine" + return engine diff --git a/mineru/utils/enum_class.py b/mineru/utils/enum_class.py new file mode 100644 index 000000000..34f5055a3 --- /dev/null +++ b/mineru/utils/enum_class.py @@ -0,0 +1,136 @@ +# Copyright (c) Opendatalab. All rights reserved. +from enum import Enum + +class BlockType: + IMAGE = 'image' + TABLE = 'table' + CHART = 'chart' + IMAGE_BODY = 'image_body' + TABLE_BODY = 'table_body' + CHART_BODY = 'chart_body' + CAPTION = 'caption' # generic caption type (e.g., for Word documents) + IMAGE_CAPTION = 'image_caption' + TABLE_CAPTION = 'table_caption' + CHART_CAPTION = 'chart_caption' + ALGORITHM_CAPTION = 'algorithm_caption' + FOOTNOTE = 'footnote' # pp_layout中的vision_footnote + IMAGE_FOOTNOTE = 'image_footnote' + TABLE_FOOTNOTE = 'table_footnote' + CHART_FOOTNOTE = 'chart_footnote' + TEXT = 'text' + TITLE = 'title' + INTERLINE_EQUATION = 'interline_equation' + EQUATION = "equation" # 公式(独立公式) + LIST = 'list' + INDEX = 'index' + DISCARDED = 'discarded' + + # Added in vlm 2.5 + CODE = "code" + CODE_BODY = "code_body" + CODE_CAPTION = "code_caption" + CODE_FOOTNOTE = "code_footnote" + ALGORITHM = "algorithm" + REF_TEXT = "ref_text" + PHONETIC = "phonetic" + HEADER = "header" + FOOTER = "footer" + PAGE_NUMBER = "page_number" + ASIDE_TEXT = "aside_text" + PAGE_FOOTNOTE = "page_footnote" + + # Added in pp_doclayout_v2 + ABSTRACT = "abstract" + DOC_TITLE = "doc_title" + PARAGRAPH_TITLE = "paragraph_title" + VERTICAL_TEXT = "vertical_text" + SEAL = "seal" + HEADER_IMAGE = "header_image" + FOOTER_IMAGE = "footer_image" + FORMULA_NUMBER = "formula_number" + +class ContentType: + IMAGE = 'image' + TABLE = 'table' + CHART = 'chart' + TEXT = 'text' + INTERLINE_EQUATION = 'interline_equation' + INLINE_EQUATION = 'inline_equation' + EQUATION = 'equation' + HYPERLINK = 'hyperlink' + SEAL = 'seal' + + +class ContentTypeV2: + CODE = 'code' + ALGORITHM = "algorithm" + EQUATION_INTERLINE = 'equation_interline' + IMAGE = 'image' + SEAL = 'seal' + TABLE = 'table' + CHART = 'chart' + TABLE_SIMPLE = 'simple_table' + TABLE_COMPLEX = 'complex_table' + LIST = 'list' + LIST_TEXT = 'text_list' + LIST_REF = 'reference_list' + INDEX = 'index' + TITLE = 'title' + PARAGRAPH = 'paragraph' + SPAN_TEXT = 'text' + SPAN_EQUATION_INLINE = 'equation_inline' + SPAN_PHONETIC = 'phonetic' + SPAN_MD = 'md' + SPAN_CODE_INLINE = 'code_inline' + PAGE_HEADER = "page_header" + PAGE_FOOTER = "page_footer" + PAGE_NUMBER = "page_number" + PAGE_ASIDE_TEXT = "page_aside_text" + PAGE_FOOTNOTE = "page_footnote" + + +class MakeMode: + MM_MD = 'mm_markdown' + NLP_MD = 'nlp_markdown' + CONTENT_LIST = 'content_list' + CONTENT_LIST_V2 = 'content_list_v2' + + +class ModelPath: + vlm_root_hf = "opendatalab/MinerU2.5-Pro-2604-1.2B" + vlm_root_modelscope = "OpenDataLab/MinerU2.5-Pro-2604-1.2B" + pipeline_root_modelscope = "OpenDataLab/PDF-Extract-Kit-1.0" + pipeline_root_hf = "opendatalab/PDF-Extract-Kit-1.0" + pp_doclayout_v2 = "models/Layout/PP-DocLayoutV2" + unimernet_small = "models/MFR/unimernet_hf_small_2503" + pp_formulanet_plus_m = "models/MFR/pp_formulanet_plus_m" + pytorch_paddle = "models/OCR/paddleocr_torch" + slanet_plus = "models/TabRec/SlanetPlus/slanet-plus.onnx" + unet_structure = "models/TabRec/UnetStructure/unet.onnx" + paddle_table_cls = "models/TabCls/paddle_table_cls/PP-LCNet_x1_0_table_cls.onnx" + paddle_orientation_classification = "models/OriCls/paddle_orientation_classification/PP-LCNet_x1_0_doc_ori.onnx" + + +class SplitFlag: + CROSS_PAGE = 'cross_page' + LINES_DELETED = 'lines_deleted' + + +class ImageType: + PIL = 'pil_img' + BASE64 = 'base64_img' + + +class NotExtractType(Enum): + TEXT = BlockType.TEXT + TITLE = BlockType.TITLE + HEADER = BlockType.HEADER + FOOTER = BlockType.FOOTER + PAGE_NUMBER = BlockType.PAGE_NUMBER + PAGE_FOOTNOTE = BlockType.PAGE_FOOTNOTE + REF_TEXT = BlockType.REF_TEXT + TABLE_CAPTION = BlockType.TABLE_CAPTION + IMAGE_CAPTION = BlockType.IMAGE_CAPTION + TABLE_FOOTNOTE = BlockType.TABLE_FOOTNOTE + IMAGE_FOOTNOTE = BlockType.IMAGE_FOOTNOTE + CODE_CAPTION = BlockType.CODE_CAPTION diff --git a/mineru/utils/guess_suffix_or_lang.py b/mineru/utils/guess_suffix_or_lang.py new file mode 100644 index 000000000..3a26cbfa5 --- /dev/null +++ b/mineru/utils/guess_suffix_or_lang.py @@ -0,0 +1,76 @@ +# Copyright (c) Opendatalab. All rights reserved. +from pathlib import Path + +from loguru import logger +from magika import Magika + + +DEFAULT_LANG = "txt" +PDF_SIG_BYTES = b'%PDF' +magika = Magika() + +def _normalize_text_for_language_guess(code: str) -> str: + if not code: + return "" + + normalized = [] + index = 0 + while index < len(code): + current_char = code[index] + current_ord = ord(current_char) + + if 0xD800 <= current_ord <= 0xDBFF: + if index + 1 < len(code): + next_char = code[index + 1] + next_ord = ord(next_char) + if 0xDC00 <= next_ord <= 0xDFFF: + pair = current_char + next_char + normalized.append(pair.encode("utf-16", "surrogatepass").decode("utf-16")) + index += 2 + continue + index += 1 + continue + + if 0xDC00 <= current_ord <= 0xDFFF: + index += 1 + continue + + normalized.append(current_char) + index += 1 + + return "".join(normalized) + + +def guess_language_by_text(code): + normalized_code = _normalize_text_for_language_guess(code) + if not normalized_code: + return DEFAULT_LANG + + try: + codebytes = normalized_code.encode("utf-8", errors="replace") + lang = magika.identify_bytes(codebytes).prediction.output.label + except Exception: + return DEFAULT_LANG + + return lang if lang != "unknown" else DEFAULT_LANG + + +def guess_suffix_by_bytes(file_bytes, file_path=None) -> str: + suffix = magika.identify_bytes(file_bytes).prediction.output.label + if file_path and suffix in ["ai", "html"] and Path(file_path).suffix.lower() in [".pdf"] and file_bytes[:4] == PDF_SIG_BYTES: + suffix = "pdf" + return suffix + + +def guess_suffix_by_path(file_path) -> str: + if not isinstance(file_path, Path): + file_path = Path(file_path) + suffix = magika.identify_path(file_path).prediction.output.label + if suffix in ["ai", "html"] and file_path.suffix.lower() in [".pdf"]: + try: + with open(file_path, 'rb') as f: + if f.read(4) == PDF_SIG_BYTES: + suffix = "pdf" + except Exception as e: + logger.warning(f"Failed to read file {file_path} for PDF signature check: {e}") + return suffix diff --git a/mineru/utils/hash_utils.py b/mineru/utils/hash_utils.py new file mode 100644 index 000000000..2b82c78dd --- /dev/null +++ b/mineru/utils/hash_utils.py @@ -0,0 +1,30 @@ +# Copyright (c) Opendatalab. All rights reserved. +import hashlib +import json + + +def bytes_md5(file_bytes): + hasher = hashlib.md5() + hasher.update(file_bytes) + return hasher.hexdigest().upper() + + +def str_md5(input_string): + hasher = hashlib.md5() + # 在Python3中,需要将字符串转化为字节对象才能被哈希函数处理 + input_bytes = input_string.encode('utf-8') + hasher.update(input_bytes) + return hasher.hexdigest() + + +def str_sha256(input_string): + hasher = hashlib.sha256() + # 在Python3中,需要将字符串转化为字节对象才能被哈希函数处理 + input_bytes = input_string.encode('utf-8') + hasher.update(input_bytes) + return hasher.hexdigest() + + +def dict_md5(d): + json_str = json.dumps(d, sort_keys=True, ensure_ascii=False) + return hashlib.md5(json_str.encode('utf-8')).hexdigest() \ No newline at end of file diff --git a/mineru/utils/language.py b/mineru/utils/language.py new file mode 100644 index 000000000..d90c00d6f --- /dev/null +++ b/mineru/utils/language.py @@ -0,0 +1,49 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import unicodedata + +if not os.getenv("FTLANG_CACHE"): + current_file_path = os.path.abspath(__file__) + current_dir = os.path.dirname(current_file_path) + root_dir = os.path.dirname(current_dir) + ftlang_cache_dir = os.path.join(root_dir, 'resources', 'fasttext-langdetect') + os.environ["FTLANG_CACHE"] = str(ftlang_cache_dir) + # print(os.getenv("FTLANG_CACHE")) + +from fast_langdetect import detect_language + + +def remove_invalid_surrogates(text): + # 移除无效的 UTF-16 代理对 + return ''.join(c for c in text if not (0xD800 <= ord(c) <= 0xDFFF)) + + +def detect_lang(text: str) -> str: + + if len(text) == 0: + return "" + + text = text.replace("\n", "") + text = remove_invalid_surrogates(text) + + # print(text) + try: + lang_upper = detect_language(text) + except: + html_no_ctrl_chars = ''.join([l for l in text if unicodedata.category(l)[0] not in ['C', ]]) + lang_upper = detect_language(html_no_ctrl_chars) + + try: + lang = lang_upper.lower() + except: + lang = "" + return lang + + +if __name__ == '__main__': + print(os.getenv("FTLANG_CACHE")) + print(detect_lang("This is a test.")) + print(detect_lang("This is a test")) + print(detect_lang("这个是中文测试。")) + print(detect_lang("这个是中文测试。")) + print(detect_lang("〖\ud835\udc46\ud835〗这是个包含utf-16的中文测试")) \ No newline at end of file diff --git a/mineru/utils/llm_aided.py b/mineru/utils/llm_aided.py new file mode 100644 index 000000000..aaff369b6 --- /dev/null +++ b/mineru/utils/llm_aided.py @@ -0,0 +1,373 @@ +# Copyright (c) Opendatalab. All rights reserved. +from concurrent.futures import ThreadPoolExecutor + +import json_repair +from loguru import logger +from openai import OpenAI + +from mineru.backend.pipeline.pipeline_middle_json_mkcontent import merge_para_with_text +from mineru.utils.enum_class import BlockType + + +TITLE_BLOCK_TYPES = { + BlockType.TITLE, + BlockType.DOC_TITLE, + BlockType.PARAGRAPH_TITLE, +} +MAX_TITLE_GROUP_WORKERS = 4 + + +def _get_title_line_avg_height(block): + if "line_avg_height" in block: + return block["line_avg_height"] + + title_block_line_height_list = [] + for line in block.get("lines", []): + bbox = line["bbox"] + title_block_line_height_list.append(int(bbox[3] - bbox[1])) + + if len(title_block_line_height_list) > 0: + return sum(title_block_line_height_list) / len(title_block_line_height_list) + + return int(block["bbox"][3] - block["bbox"][1]) + + +def _collect_title_block_refs(page_info_list): + title_block_refs = [] + title_types = set() + + for page_info in page_info_list: + for block in page_info.get("para_blocks", []): + block_type = block.get("type") + if block_type in TITLE_BLOCK_TYPES: + title_block_refs.append((page_info, block)) + title_types.add(block_type) + + return title_block_refs, title_types + + +def _build_title_dict(title_block_refs): + title_dict = {} + + for i, (page_info, block) in enumerate(title_block_refs): + title_dict[str(i)] = [ + merge_para_with_text(block), + _get_title_line_avg_height(block), + int(page_info["page_idx"]) + 1, + ] + + return title_dict + + +def _build_title_optimize_prompt(title_dict): + return f"""输入的内容是一篇文档中所有标题组成的字典,请根据以下指南优化标题的结果,使结果符合正常文档的层次结构: + +1. 字典中每个value均为一个list,包含以下元素: + - 标题文本 + - 文本行高是标题所在块的平均行高 + - 标题所在的页码 + +2. 保留原始内容: + - 输入的字典中所有元素都是有效的,不能删除字典中的任何元素 + - 请务必保证输出的字典中元素的数量和输入的数量一致 + +3. 保持字典内key-value的对应关系不变 + +4. 优化层次结构: + - 根据标题内容的语义为每个标题元素添加适当的层次结构 + - 行高较大的标题一般是更高级别的标题 + - 标题从前至后的层级必须是连续的,不能跳过层级 + - 标题层级最多为4级,不要添加过多的层级 + - 优化后的标题只保留代表该标题的层级的整数,不要保留其他信息 + +5. 合理性检查与微调: + - 在完成初步分级后,仔细检查分级结果的合理性 + - 根据上下文关系和逻辑顺序,对不合理的分级进行微调 + - 确保最终的分级结果符合文档的实际结构和逻辑 + +IMPORTANT: +请直接返回优化过的由标题层级组成的字典,格式为{{标题id:标题层级}},如下: +{{ + 0:1, + 1:2, + 2:2, + 3:3 +}} +不需要对字典格式化,不需要返回任何其他信息。 + +Input title list: +{title_dict} + +Corrected title list: +""" + + +def _build_relative_title_optimize_prompt(title_dict): + return f"""输入内容是某一篇文档中除文章标题外的全部章节/段落标题组成的字典。 + +请注意: +- 文章标题不在本次输入中,已经由系统单独识别并设置为1级标题 + +1. 字典中每个value均为一个list,包含以下元素: + - 标题文本 + - 文本行高是标题所在块的平均行高 + - 标题所在的页码 + +2. 保留原始内容: + - 输入的字典中所有元素都是有效的,不能删除字典中的任何元素 + - 请务必保证输出的字典中元素的数量和输入的数量一致 + +3. 保持字典内key-value的对应关系不变 + +4. 优化层次结构: + - 根据标题内容的语义为每个标题元素添加适当的层次结构 + - 行高较大的标题一般是更高级别的标题 + - 标题从前至后的层级必须是连续的,不能跳过层级 + - 标题层级最多为4级,不要添加过多的层级 + - 优化后的标题只保留代表该标题的层级的整数,不要保留其他信息 + +5. 合理性检查与微调: + - 在完成初步分级后,仔细检查分级结果的合理性 + - 根据上下文关系和逻辑顺序,对不合理的分级进行微调 + - 确保最终的分级结果符合文档的实际结构和逻辑 + +IMPORTANT: +请直接返回优化后的标题层级字典,格式为{{标题id:标题层级}},如下: +{{ + 0:1, + 1:2, + 2:2, + 3:3 +}} +不要返回 Markdown,不要返回代码块,不要返回任何解释文字。 + +Input title list: +{title_dict} + +Corrected title list: +""" + + +def _request_title_levels(title_aided_config, title_dict, prompt_builder=None): + if len(title_dict) == 0: + return {} + + client = OpenAI( + api_key=title_aided_config["api_key"], + base_url=title_aided_config["base_url"], + ) + + retry_count = 0 + max_retries = 3 + expected_keys = set(range(len(title_dict))) + if prompt_builder is None: + prompt_builder = _build_title_optimize_prompt + title_optimize_prompt = prompt_builder(title_dict) + + logger.debug(f"Requesting LLM for title optimization with prompt: {title_optimize_prompt}") + + api_params = { + "model": title_aided_config["model"], + "messages": [{"role": "user", "content": title_optimize_prompt}], + "temperature": 0.7, + "stream": True, + } + if "enable_thinking" in title_aided_config: + api_params["extra_body"] = { + "enable_thinking": title_aided_config["enable_thinking"] + } + + while retry_count < max_retries: + try: + completion = client.chat.completions.create(**api_params) + content_pieces = [] + for chunk in completion: + if chunk.choices and chunk.choices[0].delta.content is not None: + content_pieces.append(chunk.choices[0].delta.content) + + content = "".join(content_pieces).strip() + if "" in content: + idx = content.index("") + len("") + content = content[idx:].strip() + + logger.debug(f"Raw LLM output for title levels: {content}") + dict_completion = json_repair.loads(content) + dict_completion = {int(k): int(v) for k, v in dict_completion.items()} + + if set(dict_completion.keys()) == expected_keys: + return dict_completion + + logger.warning( + "The keys in the optimized title result do not match the input titles." + ) + except Exception as e: + logger.exception(e) + + retry_count += 1 + + logger.error("Failed to decode dict after maximum retries.") + return None + + +def _apply_levels_to_blocks(title_block_refs, levels_by_index): + if levels_by_index is None: + return + + for i, (_, block) in enumerate(title_block_refs): + block["level"] = int(levels_by_index[i]) + + +def _normalize_title_types(title_block_refs): + for _, block in title_block_refs: + if block.get("type") in [BlockType.DOC_TITLE, BlockType.PARAGRAPH_TITLE]: + block["type"] = BlockType.TITLE + + +def _get_title_block_identity(block): + block_index = block.get("index") + if block_index is not None: + return ("index", block_index) + + return ( + "bbox_text", + tuple(block.get("bbox", [])), + merge_para_with_text(block), + ) + + +def _sync_para_titles_to_preproc(page_info_list): + for page_info in page_info_list: + para_title_map = {} + for block in page_info.get("para_blocks", []): + if block.get("type") in TITLE_BLOCK_TYPES: + para_title_map[_get_title_block_identity(block)] = block + + if len(para_title_map) == 0: + continue + + for block in page_info.get("preproc_blocks", []): + if block.get("type") not in TITLE_BLOCK_TYPES: + continue + + para_block = para_title_map.get(_get_title_block_identity(block)) + if para_block is None: + continue + + block["type"] = para_block.get("type", block.get("type")) + if "level" in para_block: + block["level"] = para_block["level"] + + +def _run_single_pass_title_leveling(title_block_refs, title_aided_config): + title_dict = _build_title_dict(title_block_refs) + levels_by_index = _request_title_levels(title_aided_config, title_dict) + _apply_levels_to_blocks(title_block_refs, levels_by_index) + + +def _split_paragraph_title_groups(title_block_refs): + groups = [] + current_group = [] + + for title_ref in title_block_refs: + _, block = title_ref + if block.get("type") == BlockType.DOC_TITLE: + if current_group: + groups.append(current_group) + current_group = [] + elif block.get("type") == BlockType.PARAGRAPH_TITLE: + current_group.append(title_ref) + + if current_group: + groups.append(current_group) + + return groups + + +def _offset_paragraph_title_levels(levels_by_index): + if not levels_by_index: + return levels_by_index + + return { + index: 2 if level == 1 else level + for index, level in levels_by_index.items() + } + + +def _request_paragraph_group_levels(title_block_refs, title_aided_config): + title_dict = _build_title_dict(title_block_refs) + levels_by_index = _request_title_levels( + title_aided_config, + title_dict, + prompt_builder=_build_relative_title_optimize_prompt, + ) + return _offset_paragraph_title_levels(levels_by_index) + + +def _run_grouped_title_leveling(title_block_refs, title_aided_config): + doc_title_refs = [] + for title_ref in title_block_refs: + _, block = title_ref + if block.get("type") == BlockType.DOC_TITLE: + block["level"] = 1 + doc_title_refs.append(title_ref) + + paragraph_title_groups = _split_paragraph_title_groups(title_block_refs) + group_levels = [] + + if len(paragraph_title_groups) > 1: + max_workers = min(len(paragraph_title_groups), MAX_TITLE_GROUP_WORKERS) + with ThreadPoolExecutor(max_workers=max_workers) as executor: + futures = [ + executor.submit( + _request_paragraph_group_levels, + title_group, + title_aided_config, + ) + for title_group in paragraph_title_groups + ] + group_levels = [future.result() for future in futures] + else: + group_levels = [ + _request_paragraph_group_levels(title_group, title_aided_config) + for title_group in paragraph_title_groups + ] + + for title_group, levels_by_index in zip(paragraph_title_groups, group_levels): + _apply_levels_to_blocks(title_group, levels_by_index) + + _normalize_title_types(doc_title_refs) + for title_group in paragraph_title_groups: + _normalize_title_types(title_group) + + +def llm_aided_title(page_info_list, title_aided_config): + title_block_refs, title_types = _collect_title_block_refs(page_info_list) + if len(title_block_refs) == 0: + logger.info("No titles detected, skipping LLM-aided title optimization.") + return + + has_doc_title = BlockType.DOC_TITLE in title_types + has_paragraph_title = BlockType.PARAGRAPH_TITLE in title_types + has_generic_title = BlockType.TITLE in title_types + + if has_doc_title and has_paragraph_title and not has_generic_title: + _run_grouped_title_leveling(title_block_refs, title_aided_config) + _sync_para_titles_to_preproc(page_info_list) + return + + doc_title_refs = [] + title_refs_for_llm = [] + for title_ref in title_block_refs: + _, block = title_ref + if block.get("type") == BlockType.DOC_TITLE: + block["level"] = 1 + doc_title_refs.append(title_ref) + else: + title_refs_for_llm.append(title_ref) + + if len(title_refs_for_llm) > 0: + _run_single_pass_title_leveling(title_refs_for_llm, title_aided_config) + + _normalize_title_types(doc_title_refs) + _normalize_title_types(title_refs_for_llm) + _sync_para_titles_to_preproc(page_info_list) diff --git a/mineru/utils/magic_model_utils.py b/mineru/utils/magic_model_utils.py new file mode 100644 index 000000000..105dcba88 --- /dev/null +++ b/mineru/utils/magic_model_utils.py @@ -0,0 +1,163 @@ +# Copyright (c) Opendatalab. All rights reserved. +""" +包含两个MagicModel类中重复使用的方法和逻辑 +""" +from typing import List, Dict, Any, Callable + +from loguru import logger +from mineru.utils.boxbase import bbox_distance, bbox_center_distance, is_in + + +def reduct_overlap(bboxes: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + """ + 去除重叠的bbox,保留不被其他bbox包含的bbox + + Args: + bboxes: 包含bbox信息的字典列表 + + Returns: + 去重后的bbox列表 + """ + N = len(bboxes) + keep = [True] * N + for i in range(N): + for j in range(N): + if i == j: + continue + if is_in(bboxes[i]['bbox'], bboxes[j]['bbox']): + keep[i] = False + return [bboxes[i] for i in range(N) if keep[i]] + + +def tie_up_category_by_index( + get_subjects_func: Callable, + get_objects_func: Callable, + extract_subject_func: Callable = None, + extract_object_func: Callable = None, + object_block_type: str = "object", + include_bbox: bool = True, +): + """ + 基于index的类别关联方法,用于将主体对象与客体对象进行关联 + 客体优先匹配给index最接近的主体,匹配优先级为: + 1. index差值(最高优先级) + 2. bbox边缘距离(相邻边距离) + 3. bbox中心点距离(最低优先级,作为最终tiebreaker) + + 参数: + get_subjects_func: 函数,提取主体对象 + get_objects_func: 函数,提取客体对象 + extract_subject_func: 函数,自定义提取主体属性(默认使用bbox和其他属性) + extract_object_func: 函数,自定义提取客体属性(默认使用bbox和其他属性) + + 返回: + 关联后的对象列表,按主体index升序排列 + """ + subjects = get_subjects_func() + objects = get_objects_func() + + # 如果没有提供自定义提取函数,使用默认函数 + if extract_subject_func is None: + extract_subject_func = lambda x: x + if extract_object_func is None: + extract_object_func = lambda x: x + + # 初始化结果字典,key为主体索引,value为关联信息 + result_dict = {} + + # 初始化所有主体 + for i, subject in enumerate(subjects): + result_dict[i] = { + "sub_bbox": extract_subject_func(subject), + "obj_bboxes": [], + "sub_idx": i, + } + + # 提取所有客体的index集合,用于计算有效index差值 + object_indices = set(obj["index"] for obj in objects) + + def calc_effective_index_diff(obj_index: int, sub_index: int) -> int: + """ + 计算有效的index差值 + 有效差值 = 绝对差值 - 区间内其他客体的数量 + 即:如果obj_index和sub_index之间的差值是由其他客体造成的,则应该扣除这部分差值 + """ + if obj_index == sub_index: + return 0 + + start, end = min(obj_index, sub_index), max(obj_index, sub_index) + abs_diff = end - start + + # 计算区间(start, end)内有多少个其他客体的index + other_objects_count = 0 + for idx in range(start + 1, end): + if idx in object_indices: + other_objects_count += 1 + + return abs_diff - other_objects_count + + # 为每个客体找到最匹配的主体 + for obj in objects: + if len(subjects) == 0: + # 如果没有主体,跳过客体 + continue + + obj_index = obj["index"] + min_index_diff = float("inf") + best_subject_indices = [] + + # 找出有效index差值最小的所有主体 + for i, subject in enumerate(subjects): + sub_index = subject["index"] + index_diff = calc_effective_index_diff(obj_index, sub_index) + + if index_diff < min_index_diff: + min_index_diff = index_diff + best_subject_indices = [i] + elif index_diff == min_index_diff: + best_subject_indices.append(i) + + if len(best_subject_indices) == 1: + best_subject_idx = best_subject_indices[0] + # 如果有多个主体的index差值相同(最多两个),根据边缘距离进行筛选 + elif len(best_subject_indices) == 2: + # 只有在包含bbox信息时才进行边缘距离的计算和比较,否则直接匹配第一个主体 + if include_bbox: + # 计算所有候选主体的边缘距离 + edge_distances = [(idx, bbox_distance(obj["bbox"], subjects[idx]["bbox"])) for idx in best_subject_indices] + edge_dist_diff = abs(edge_distances[0][1] - edge_distances[1][1]) + + for idx, edge_dist in edge_distances: + logger.debug(f"Obj index: {obj_index}, Sub index: {subjects[idx]['index']}, Edge distance: {edge_dist}") + + if edge_dist_diff > 2: + # 边缘距离差值大于2,匹配边缘距离更小的主体 + best_subject_idx = min(edge_distances, key=lambda x: x[1])[0] + logger.debug(f"Obj index: {obj_index}, edge_dist_diff > 2, matching to subject with min edge distance, index: {subjects[best_subject_idx]['index']}") + elif object_block_type == "table_caption": + # 边缘距离差值<=2且为table_caption,匹配index更大的主体 + best_subject_idx = max(best_subject_indices, key=lambda idx: subjects[idx]["index"]) + logger.debug(f"Obj index: {obj_index}, edge_dist_diff <= 2 and table_caption, matching to later subject with index: {subjects[best_subject_idx]['index']}") + elif object_block_type.endswith("footnote"): + # 边缘距离差值<=2且为footnote,匹配index更小的主体 + best_subject_idx = min(best_subject_indices, key=lambda idx: subjects[idx]["index"]) + logger.debug(f"Obj index: {obj_index}, edge_dist_diff <= 2 and footnote, matching to earlier subject with index: {subjects[best_subject_idx]['index']}") + else: + # 边缘距离差值<=2 且不适用特殊匹配规则,使用中心点距离匹配 + center_distances = [(idx, bbox_center_distance(obj["bbox"], subjects[idx]["bbox"])) for idx in best_subject_indices] + for idx, center_dist in center_distances: + logger.debug(f"Obj index: {obj_index}, Sub index: {subjects[idx]['index']}, Center distance: {center_dist}") + best_subject_idx = min(center_distances, key=lambda x: x[1])[0] + else: + best_subject_idx = best_subject_indices[0] + else: + raise ValueError("More than two subjects have the same minimal index difference, which is unexpected.") + + # 将客体添加到最佳主体的obj_bboxes中 + result_dict[best_subject_idx]["obj_bboxes"].append(extract_object_func(obj)) + + # 转换为列表并按主体index排序 + ret = list(result_dict.values()) + ret.sort(key=lambda x: x["sub_idx"]) + + return ret diff --git a/mineru/utils/model_utils.py b/mineru/utils/model_utils.py new file mode 100644 index 000000000..471f70f64 --- /dev/null +++ b/mineru/utils/model_utils.py @@ -0,0 +1,253 @@ +# Copyright (c) Opendatalab. All rights reserved. +import math +import os +import time +import gc +from PIL import Image +from loguru import logger +import numpy as np + +try: + import torch + import torch_npu +except ImportError: + pass + +TEXT_REGION_LABELS = { + "abstract", + "algorithm", + "aside_text", + "content", + "doc_title", + "figure_title", + "footer", + "footer_image", + "footnote", + "formula_number", + "header", + "header_image", + "number", + "paragraph_title", + "reference_content", + "text", + "vertical_text", + "vision_footnote", +} + + +def _get_bbox(item): + bbox = item.get("bbox") + if bbox is not None: + xmin, ymin, xmax, ymax = bbox + return float(xmin), float(ymin), float(xmax), float(ymax) + + +def _get_int_bbox(item): + xmin, ymin, xmax, ymax = _get_bbox(item) + return math.floor(xmin), math.floor(ymin), math.ceil(xmax), math.ceil(ymax) + + +def crop_img(input_res, input_img, crop_paste_x=0, crop_paste_y=0): + crop_xmin, crop_ymin, crop_xmax, crop_ymax = _get_int_bbox(input_res) + + # Calculate new dimensions + crop_new_width = crop_xmax - crop_xmin + crop_paste_x * 2 + crop_new_height = crop_ymax - crop_ymin + crop_paste_y * 2 + + if isinstance(input_img, np.ndarray): + + # Create a white background array + return_image = np.ones((crop_new_height, crop_new_width, 3), dtype=np.uint8) * 255 + + # Crop the original image using numpy slicing + cropped_img = input_img[crop_ymin:crop_ymax, crop_xmin:crop_xmax] + + # Paste the cropped image onto the white background + return_image[crop_paste_y:crop_paste_y + (crop_ymax - crop_ymin), + crop_paste_x:crop_paste_x + (crop_xmax - crop_xmin)] = cropped_img + else: + # Create a white background array + return_image = Image.new('RGB', (crop_new_width, crop_new_height), 'white') + # Crop image + crop_box = (crop_xmin, crop_ymin, crop_xmax, crop_ymax) + cropped_img = input_img.crop(crop_box) + return_image.paste(cropped_img, (crop_paste_x, crop_paste_y)) + + return_list = [crop_paste_x, crop_paste_y, crop_xmin, crop_ymin, crop_xmax, crop_ymax, crop_new_width, + crop_new_height] + return return_image, return_list + + +def get_coords_and_area(block_with_poly): + """Extract coordinates and area from a table.""" + xmin, ymin, xmax, ymax = _get_bbox(block_with_poly) + area = (xmax - xmin) * (ymax - ymin) + return xmin, ymin, xmax, ymax, area + + +def calculate_intersection(box1, box2): + """Calculate intersection coordinates between two boxes.""" + intersection_xmin = max(box1[0], box2[0]) + intersection_ymin = max(box1[1], box2[1]) + intersection_xmax = min(box1[2], box2[2]) + intersection_ymax = min(box1[3], box2[3]) + + # Check if intersection is valid + if intersection_xmax <= intersection_xmin or intersection_ymax <= intersection_ymin: + return None + + return intersection_xmin, intersection_ymin, intersection_xmax, intersection_ymax + + +def is_inside(small_box, big_box, overlap_threshold=0.8): + """Check if small_box is inside big_box by at least overlap_threshold.""" + intersection = calculate_intersection(small_box[:4], big_box[:4]) + + if not intersection: + return False + + intersection_xmin, intersection_ymin, intersection_xmax, intersection_ymax = intersection + intersection_area = (intersection_xmax - intersection_xmin) * (intersection_ymax - intersection_ymin) + + # Check if overlap exceeds threshold + return intersection_area >= overlap_threshold * small_box[4] + + +def remove_nested_ocr_text_blocks( + ocr_res_list, + layout_res, + overlap_threshold=0.8, + min_area_ratio=1.01, +): + """Remove OCR candidate text blocks that are contained by any larger layout block.""" + if not ocr_res_list or len(layout_res) < 2: + return ocr_res_list, [] + + layout_info = [(block, get_coords_and_area(block)) for block in layout_res] + blocks_to_remove = [] + + for text_block in ocr_res_list: + text_box = get_coords_and_area(text_block) + text_area = text_box[4] + for parent_block, parent_box in layout_info: + if parent_block is text_block: + continue + if parent_box[4] <= text_area * min_area_ratio: + continue + if is_inside(text_box, parent_box, overlap_threshold): + blocks_to_remove.append(text_block) + break + + remove_ids = {id(block) for block in blocks_to_remove} + filtered_ocr_res_list = [ + block for block in ocr_res_list if id(block) not in remove_ids + ] + return filtered_ocr_res_list, blocks_to_remove + + +def get_res_list_from_layout_res(layout_res, overlap_threshold=0.8): + """Extract OCR, table and other regions from layout results.""" + ocr_res_list = [] + text_res_list = [] + table_res_list = [] + single_page_mfdetrec_res = [] + + # Categorize regions + for i, res in enumerate(layout_res): + label = res.get("label") + + if label in ["display_formula", "inline_formula"]: + xmin, ymin, xmax, ymax = _get_bbox(res) + single_page_mfdetrec_res.append({ + "bbox": [xmin, ymin, xmax, ymax], + }) + elif label == "table": + table_res_list.append(res) + elif label in TEXT_REGION_LABELS: + text_res_list.append(res) + + ocr_res_list.extend(text_res_list) + + ocr_res_list, nested_text_need_remove = remove_nested_ocr_text_blocks( + ocr_res_list, + layout_res, + overlap_threshold=overlap_threshold, + ) + nested_remove_ids = {id(res) for res in nested_text_need_remove} + if nested_remove_ids: + layout_res[:] = [res for res in layout_res if id(res) not in nested_remove_ids] + + return ocr_res_list, table_res_list, single_page_mfdetrec_res + + +def clean_memory(device='cuda'): + if str(device).startswith("cuda"): + if torch.cuda.is_available(): + torch.cuda.empty_cache() + torch.cuda.ipc_collect() + elif str(device).startswith("npu"): + if torch_npu.npu.is_available(): + torch_npu.npu.empty_cache() + elif str(device).startswith("mps"): + torch.mps.empty_cache() + elif str(device).startswith("gcu"): + if torch.gcu.is_available(): + torch.gcu.empty_cache() + elif str(device).startswith("musa"): + if torch.musa.is_available(): + torch.musa.empty_cache() + elif str(device).startswith("mlu"): + if torch.mlu.is_available(): + torch.mlu.empty_cache() + elif str(device).startswith("sdaa"): + if torch.sdaa.is_available(): + torch.sdaa.empty_cache() + gc.collect() + + +def clean_vram(device, vram_threshold=8): + total_memory = get_vram(device) + if total_memory and total_memory <= vram_threshold: + gc_start = time.time() + clean_memory(device) + gc_time = round(time.time() - gc_start, 2) + logger.debug(f"gc time: {gc_time}") + + +def get_vram(device) -> int: + env_vram = os.getenv("MINERU_VIRTUAL_VRAM_SIZE") + + # 如果环境变量已配置,尝试解析并返回 + if env_vram is not None: + try: + total_memory = int(env_vram) + if total_memory > 0: + return total_memory + else: + logger.warning( + f"MINERU_VIRTUAL_VRAM_SIZE value '{env_vram}' is not positive, falling back to auto-detection") + except ValueError: + logger.warning( + f"MINERU_VIRTUAL_VRAM_SIZE value '{env_vram}' is not a valid integer, falling back to auto-detection") + + # 环境变量未配置或配置错误,根据device自动获取 + total_memory = 1 + if torch.cuda.is_available() and str(device).startswith("cuda"): + total_memory = round(torch.cuda.get_device_properties(device).total_memory / (1024 ** 3)) # 将字节转换为 GB + elif str(device).startswith("npu"): + if torch_npu.npu.is_available(): + total_memory = round(torch_npu.npu.get_device_properties(device).total_memory / (1024 ** 3)) # 转为 GB + elif str(device).startswith("gcu"): + if torch.gcu.is_available(): + total_memory = round(torch.gcu.get_device_properties(device).total_memory / (1024 ** 3)) # 转为 GB + elif str(device).startswith("musa"): + if torch.musa.is_available(): + total_memory = round(torch.musa.get_device_properties(device).total_memory / (1024 ** 3)) # 转为 GB + elif str(device).startswith("mlu"): + if torch.mlu.is_available(): + total_memory = round(torch.mlu.get_device_properties(device).total_memory / (1024 ** 3)) # 转为 GB + elif str(device).startswith("sdaa"): + if torch.sdaa.is_available(): + total_memory = round(torch.sdaa.get_device_properties(device).total_memory / (1024 ** 3)) # 转为 GB + + return total_memory diff --git a/mineru/utils/models_download_utils.py b/mineru/utils/models_download_utils.py new file mode 100644 index 000000000..7c9e20d1e --- /dev/null +++ b/mineru/utils/models_download_utils.py @@ -0,0 +1,76 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +from huggingface_hub import snapshot_download as hf_snapshot_download +from modelscope import snapshot_download as ms_snapshot_download + +from mineru.utils.config_reader import get_local_models_dir +from mineru.utils.enum_class import ModelPath + +def auto_download_and_get_model_root_path(relative_path: str, repo_mode='pipeline') -> str: + """ + 支持文件或目录的可靠下载。 + - 如果输入文件: 返回本地文件绝对路径 + - 如果输入目录: 返回本地缓存下与 relative_path 同结构的相对路径字符串 + :param repo_mode: 指定仓库模式,'pipeline' 或 'vlm' + :param relative_path: 文件或目录相对路径 + :return: 本地文件绝对路径或相对路径 + """ + model_source = os.getenv('MINERU_MODEL_SOURCE', "huggingface") + + if model_source == 'local': + local_models_config = get_local_models_dir() + root_path = local_models_config.get(repo_mode, None) + if not root_path: + raise ValueError(f"Local path for repo_mode '{repo_mode}' is not configured.") + return root_path + + # 建立仓库模式到路径的映射 + repo_mapping = { + 'pipeline': { + 'huggingface': ModelPath.pipeline_root_hf, + 'modelscope': ModelPath.pipeline_root_modelscope, + 'default': ModelPath.pipeline_root_hf + }, + 'vlm': { + 'huggingface': ModelPath.vlm_root_hf, + 'modelscope': ModelPath.vlm_root_modelscope, + 'default': ModelPath.vlm_root_hf + } + } + + if repo_mode not in repo_mapping: + raise ValueError(f"Unsupported repo_mode: {repo_mode}, must be 'pipeline' or 'vlm'") + + # 如果没有指定model_source或值不是'modelscope',则使用默认值 + repo = repo_mapping[repo_mode].get(model_source, repo_mapping[repo_mode]['default']) + + + if model_source == "huggingface": + snapshot_download = hf_snapshot_download + elif model_source == "modelscope": + snapshot_download = ms_snapshot_download + else: + raise ValueError(f"未知的仓库类型: {model_source}") + + cache_dir = None + + if repo_mode == 'pipeline': + relative_path = relative_path.strip('/') + cache_dir = snapshot_download(repo, allow_patterns=[relative_path, relative_path+"/*"]) + elif repo_mode == 'vlm': + # VLM 模式下,根据 relative_path 的不同处理方式 + if relative_path == "/": + cache_dir = snapshot_download(repo) + else: + relative_path = relative_path.strip('/') + cache_dir = snapshot_download(repo, allow_patterns=[relative_path, relative_path+"/*"]) + + if not cache_dir: + raise FileNotFoundError(f"Failed to download model: {relative_path} from {repo}") + return cache_dir + + +if __name__ == '__main__': + path1 = "models/README.md" + root = auto_download_and_get_model_root_path(path1) + print("本地文件绝对路径:", os.path.join(root, path1)) \ No newline at end of file diff --git a/mineru/utils/ocr_utils.py b/mineru/utils/ocr_utils.py new file mode 100644 index 000000000..b80081dac --- /dev/null +++ b/mineru/utils/ocr_utils.py @@ -0,0 +1,487 @@ +# Copyright (c) Opendatalab. All rights reserved. +import copy +import cv2 +import numpy as np + +from .bbox_utils import normalize_to_int_bbox + + +class OcrConfidence: + min_confidence = 0.5 + min_width = 3 + +LINE_WIDTH_TO_HEIGHT_RATIO_THRESHOLD = 4 # 一般情况下,行宽度超过高度4倍时才是一个正常的横向文本块 +TEXT_REC_ROTATE_RATIO = 1.5 + + +def merge_spans_to_line(spans, threshold=0.6): + if len(spans) == 0: + return [] + else: + # 按照y0坐标排序 + spans.sort(key=lambda span: span['bbox'][1]) + + lines = [] + current_line = [spans[0]] + for span in spans[1:]: + # 如果当前的span与当前行的最后一个span在y轴上重叠,则添加到当前行 + if _is_overlaps_y_exceeds_threshold(span['bbox'], current_line[-1]['bbox'], threshold): + current_line.append(span) + else: + # 否则,开始新行 + lines.append(current_line) + current_line = [span] + + # 添加最后一行 + if current_line: + lines.append(current_line) + + return lines + +def _is_overlaps_y_exceeds_threshold(bbox1, + bbox2, + overlap_ratio_threshold=0.8): + """检查两个bbox在y轴上是否有重叠,并且该重叠区域的高度占两个bbox高度更低的那个超过80%""" + _, y0_1, _, y1_1 = bbox1 + _, y0_2, _, y1_2 = bbox2 + + overlap = max(0, min(y1_1, y1_2) - max(y0_1, y0_2)) + height1, height2 = y1_1 - y0_1, y1_2 - y0_2 + # max_height = max(height1, height2) + min_height = min(height1, height2) + + return (overlap / min_height) > overlap_ratio_threshold if min_height > 0 else False + + +def _is_overlaps_x_exceeds_threshold(bbox1, + bbox2, + overlap_ratio_threshold=0.8): + """检查两个bbox在x轴上是否有重叠,并且该重叠区域的宽度占两个bbox宽度更低的那个超过指定阈值""" + x0_1, _, x1_1, _ = bbox1 + x0_2, _, x1_2, _ = bbox2 + + overlap = max(0, min(x1_1, x1_2) - max(x0_1, x0_2)) + width1, width2 = x1_1 - x0_1, x1_2 - x0_2 + min_width = min(width1, width2) + + return (overlap / min_width) > overlap_ratio_threshold if min_width > 0 else False + + +def img_decode(content: bytes): + np_arr = np.frombuffer(content, dtype=np.uint8) + return cv2.imdecode(np_arr, cv2.IMREAD_UNCHANGED) + +def check_img(img): + if isinstance(img, bytes): + img = img_decode(img) + if isinstance(img, np.ndarray) and len(img.shape) == 2: + img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) + return img + + +def alpha_to_color(img, alpha_color=(255, 255, 255)): + if len(img.shape) == 3 and img.shape[2] == 4: + B, G, R, A = cv2.split(img) + alpha = A / 255 + + R = (alpha_color[0] * (1 - alpha) + R * alpha).astype(np.uint8) + G = (alpha_color[1] * (1 - alpha) + G * alpha).astype(np.uint8) + B = (alpha_color[2] * (1 - alpha) + B * alpha).astype(np.uint8) + + img = cv2.merge((B, G, R)) + return img + + +def preprocess_image(_image): + alpha_color = (255, 255, 255) + _image = alpha_to_color(_image, alpha_color) + return _image + + +def sorted_boxes(dt_boxes): + """ + Sort text boxes in order from top to bottom, left to right + args: + dt_boxes(array):detected text boxes with shape [4, 2] + return: + sorted boxes(array) with shape [4, 2] + """ + num_boxes = len(dt_boxes) + sorted_boxes = sorted(dt_boxes, key=lambda x: (x[0][1], x[0][0])) + _boxes = list(sorted_boxes) + + for i in range(num_boxes - 1): + for j in range(i, -1, -1): + if abs(_boxes[j + 1][0][1] - _boxes[j][0][1]) < 10 and \ + (_boxes[j + 1][0][0] < _boxes[j][0][0]): + tmp = _boxes[j] + _boxes[j] = _boxes[j + 1] + _boxes[j + 1] = tmp + else: + break + return _boxes + + +def bbox_to_points(bbox): + """ 将bbox格式转换为四个顶点的数组 """ + x0, y0, x1, y1 = bbox + return np.array([[x0, y0], [x1, y0], [x1, y1], [x0, y1]]).astype('float32') + + +def points_to_bbox(points): + """ 将四个顶点的数组转换为bbox格式 """ + x0, y0 = points[0] + x1, _ = points[1] + _, y1 = points[2] + return [x0, y0, x1, y1] + + +def merge_intervals(intervals): + # Sort the intervals based on the start value + intervals.sort(key=lambda x: x[0]) + + merged = [] + for interval in intervals: + # If the list of merged intervals is empty or if the current + # interval does not overlap with the previous, simply append it. + if not merged or merged[-1][1] < interval[0]: + merged.append(interval) + else: + # Otherwise, there is overlap, so we merge the current and previous intervals. + merged[-1][1] = max(merged[-1][1], interval[1]) + + return merged + + +def remove_intervals(original, masks): + # Merge all mask intervals + merged_masks = merge_intervals(masks) + + result = [] + original_start, original_end = original + + for mask in merged_masks: + mask_start, mask_end = mask + + # If the mask starts after the original range, ignore it + if mask_start > original_end: + continue + + # If the mask ends before the original range starts, ignore it + if mask_end < original_start: + continue + + # Remove the masked part from the original range + if original_start < mask_start: + result.append([original_start, mask_start - 1]) + + original_start = max(mask_end + 1, original_start) + + # Add the remaining part of the original range, if any + if original_start <= original_end: + result.append([original_start, original_end]) + + return result + + +def update_det_boxes(dt_boxes, mfd_res): + new_dt_boxes = [] + angle_boxes_list = [] + for text_box in dt_boxes: + + if calculate_is_angle(text_box): + angle_boxes_list.append(text_box) + continue + + text_bbox = points_to_bbox(text_box) + masks_list = [] + for mf_box in mfd_res: + mf_bbox = mf_box['bbox'] + if _is_overlaps_y_exceeds_threshold(text_bbox, mf_bbox): + masks_list.append([mf_bbox[0], mf_bbox[2]]) + text_x_range = [text_bbox[0], text_bbox[2]] + text_remove_mask_range = remove_intervals(text_x_range, masks_list) + temp_dt_box = [] + for text_remove_mask in text_remove_mask_range: + temp_dt_box.append(bbox_to_points([text_remove_mask[0], text_bbox[1], text_remove_mask[1], text_bbox[3]])) + if len(temp_dt_box) > 0: + new_dt_boxes.extend(temp_dt_box) + + new_dt_boxes.extend(angle_boxes_list) + + return new_dt_boxes + + +def merge_overlapping_spans(spans): + """ + Merges overlapping spans on the same line. + + :param spans: A list of span coordinates [(x1, y1, x2, y2), ...] + :return: A list of merged spans + """ + # Return an empty list if the input spans list is empty + if not spans: + return [] + + # Sort spans by their starting x-coordinate + spans.sort(key=lambda x: x[0]) + + # Initialize the list of merged spans + merged = [] + for span in spans: + # Unpack span coordinates + x1, y1, x2, y2 = span + # If the merged list is empty or there's no horizontal overlap, add the span directly + if not merged or merged[-1][2] < x1: + merged.append(span) + else: + # If there is horizontal overlap, merge the current span with the previous one + last_span = merged.pop() + # Update the merged span's top-left corner to the smaller (x1, y1) and bottom-right to the larger (x2, y2) + x1 = min(last_span[0], x1) + y1 = min(last_span[1], y1) + x2 = max(last_span[2], x2) + y2 = max(last_span[3], y2) + # Add the merged span back to the list + merged.append((x1, y1, x2, y2)) + + # Return the list of merged spans + return merged + + +def merge_det_boxes(dt_boxes): + """ + Merge detection boxes. + + This function takes a list of detected bounding boxes, each represented by four corner points. + The goal is to merge these bounding boxes into larger text regions. + + Parameters: + dt_boxes (list): A list containing multiple text detection boxes, where each box is defined by four corner points. + + Returns: + list: A list containing the merged text regions, where each region is represented by four corner points. + """ + # Convert the detection boxes into a dictionary format with bounding boxes and type + dt_boxes_dict_list = [] + angle_boxes_list = [] + for text_box in dt_boxes: + text_bbox = points_to_bbox(text_box) + + if calculate_is_angle(text_box): + angle_boxes_list.append(text_box) + continue + + text_box_dict = {'bbox': text_bbox} + dt_boxes_dict_list.append(text_box_dict) + + # Merge adjacent text regions into lines + lines = merge_spans_to_line(dt_boxes_dict_list) + + # Initialize a new list for storing the merged text regions + new_dt_boxes = [] + for line in lines: + line_bbox_list = [] + for span in line: + line_bbox_list.append(span['bbox']) + + # 计算整行的宽度和高度 + min_x = min(bbox[0] for bbox in line_bbox_list) + max_x = max(bbox[2] for bbox in line_bbox_list) + min_y = min(bbox[1] for bbox in line_bbox_list) + max_y = max(bbox[3] for bbox in line_bbox_list) + line_width = max_x - min_x + line_height = max_y - min_y + + # 只有当行宽度超过高度4倍时才进行合并 + if line_width > line_height * LINE_WIDTH_TO_HEIGHT_RATIO_THRESHOLD: + + # Merge overlapping text regions within the same line + merged_spans = merge_overlapping_spans(line_bbox_list) + + # Convert the merged text regions back to point format and add them to the new detection box list + for span in merged_spans: + new_dt_boxes.append(bbox_to_points(span)) + else: + # 不进行合并,直接添加原始区域 + for bbox in line_bbox_list: + new_dt_boxes.append(bbox_to_points(bbox)) + + new_dt_boxes.extend(angle_boxes_list) + + return new_dt_boxes + + +def get_adjusted_mfdetrec_res(single_page_mfdetrec_res, useful_list): + paste_x, paste_y, xmin, ymin, xmax, ymax, new_width, new_height = useful_list + # Adjust the coordinates of the formula area + adjusted_mfdetrec_res = [] + for mf_res in single_page_mfdetrec_res: + mf_xmin, mf_ymin, mf_xmax, mf_ymax = mf_res["bbox"] + # Adjust the coordinates of the formula area to the coordinates relative to the cropping area + x0 = mf_xmin - xmin + paste_x + y0 = mf_ymin - ymin + paste_y + x1 = mf_xmax - xmin + paste_x + y1 = mf_ymax - ymin + paste_y + # Filter formula blocks outside the graph + if any([x1 < 0, y1 < 0]) or any([x0 > new_width, y0 > new_height]): + continue + else: + adjusted_mfdetrec_res.append({ + "bbox": [x0, y0, x1, y1], + }) + return adjusted_mfdetrec_res + + +def get_ocr_result_list( + ocr_res, + useful_list, + ocr_enable, + bgr_image, + lang, +): + paste_x, paste_y, xmin, ymin, xmax, ymax, new_width, new_height = useful_list + ocr_result_list = [] + ori_im = bgr_image.copy() + for box_ocr_res in ocr_res: + img_crop = None + need_ocr_rec = False + + if len(box_ocr_res) == 2: + p1, p2, p3, p4 = box_ocr_res[0] + text, score = box_ocr_res[1] + # logger.info(f"text: {text}, score: {score}") + if score < OcrConfidence.min_confidence: # 过滤低置信度的结果 + continue + else: + p1, p2, p3, p4 = box_ocr_res + text, score = "", 1 + + if ocr_enable: + tmp_box = copy.deepcopy(np.array([p1, p2, p3, p4]).astype('float32')) + img_crop = get_rotate_crop_image_for_text_rec(ori_im, tmp_box) + need_ocr_rec = True + + # average_angle_degrees = calculate_angle_degrees(box_ocr_res[0]) + # if average_angle_degrees > 0.5: + poly = [p1, p2, p3, p4] + + if (p3[0] - p1[0]) < OcrConfidence.min_width: + # logger.info(f"width too small: {p3[0] - p1[0]}, text: {text}") + continue + + if calculate_is_angle(poly): + # logger.info(f"average_angle_degrees: {average_angle_degrees}, text: {text}") + # 与x轴的夹角超过0.5度,对边界做一下矫正 + # 计算几何中心 + x_center = sum(point[0] for point in poly) / 4 + y_center = sum(point[1] for point in poly) / 4 + new_height = ((p4[1] - p1[1]) + (p3[1] - p2[1])) / 2 + new_width = p3[0] - p1[0] + p1 = [x_center - new_width / 2, y_center - new_height / 2] + p2 = [x_center + new_width / 2, y_center - new_height / 2] + p3 = [x_center + new_width / 2, y_center + new_height / 2] + p4 = [x_center - new_width / 2, y_center + new_height / 2] + + # Convert the coordinates back to the original coordinate system + p1 = [p1[0] - paste_x + xmin, p1[1] - paste_y + ymin] + p2 = [p2[0] - paste_x + xmin, p2[1] - paste_y + ymin] + p3 = [p3[0] - paste_x + xmin, p3[1] - paste_y + ymin] + p4 = [p4[0] - paste_x + xmin, p4[1] - paste_y + ymin] + + bbox = normalize_to_int_bbox([p1, p2, p3, p4]) + if bbox is None: + continue + + ocr_item = { + "label": "ocr_text", + "bbox": bbox, + "score": 1.0 if ocr_enable else float(round(score, 2)), + "text": text, + } + if need_ocr_rec: + ocr_item["np_img"] = img_crop + ocr_item["lang"] = lang + ocr_item["_need_ocr_rec"] = True + ocr_result_list.append(ocr_item) + + return ocr_result_list + + +def calculate_is_angle(poly): + p1, p2, p3, p4 = poly + height = ((p4[1] - p1[1]) + (p3[1] - p2[1])) / 2 + if 0.8 * height <= (p3[1] - p1[1]) <= 1.2 * height: + return False + else: + # logger.info((p3[1] - p1[1])/height) + return True + +def is_bbox_aligned_rect(points): + x_coords = points[:, 0] + y_coords = points[:, 1] + unique_x = np.unique(x_coords) + unique_y = np.unique(y_coords) + return len(unique_x) == 2 and len(unique_y) == 2 + +def get_rotate_crop_image(img, points): + ''' + img_height, img_width = img.shape[0:2] + left = int(np.min(points[:, 0])) + right = int(np.max(points[:, 0])) + top = int(np.min(points[:, 1])) + bottom = int(np.max(points[:, 1])) + img_crop = img[top:bottom, left:right, :].copy() + points[:, 0] = points[:, 0] - left + points[:, 1] = points[:, 1] - top + ''' + assert len(points) == 4, "shape of points must be 4*2" + + if is_bbox_aligned_rect(points): + xmin = int(np.min(points[:, 0])) + xmax = int(np.max(points[:, 0])) + ymin = int(np.min(points[:, 1])) + ymax = int(np.max(points[:, 1])) + new_img = img[ymin:ymax, xmin:xmax].copy() + if new_img.shape[0] > 0 and new_img.shape[1] > 0: + return new_img + + img_crop_width = int( + max( + np.linalg.norm(points[0] - points[1]), + np.linalg.norm(points[2] - points[3]))) + img_crop_height = int( + max( + np.linalg.norm(points[0] - points[3]), + np.linalg.norm(points[1] - points[2]))) + pts_std = np.float32([[0, 0], [img_crop_width, 0], + [img_crop_width, img_crop_height], + [0, img_crop_height]]) + M = cv2.getPerspectiveTransform(points, pts_std) + dst_img = cv2.warpPerspective( + img, + M, (img_crop_width, img_crop_height), + borderMode=cv2.BORDER_REPLICATE, + flags=cv2.INTER_CUBIC) + dst_img_height, dst_img_width = dst_img.shape[0:2] + if dst_img_height * 1.0 / dst_img_width >= TEXT_REC_ROTATE_RATIO: + dst_img = np.rot90(dst_img) + return dst_img + + +def rotate_vertical_crop_if_needed(crop_img, rotate_ratio=TEXT_REC_ROTATE_RATIO): + if crop_img is None or crop_img.size == 0: + return crop_img + + crop_height, crop_width = crop_img.shape[:2] + if crop_width == 0: + return crop_img + + if crop_height * 1.0 / crop_width >= rotate_ratio: + return np.rot90(crop_img) + return crop_img + + +def get_rotate_crop_image_for_text_rec(img, points): + crop_img = get_rotate_crop_image(img, points) + return rotate_vertical_crop_if_needed(crop_img) diff --git a/mineru/utils/os_env_config.py b/mineru/utils/os_env_config.py new file mode 100644 index 000000000..5ee35d9b2 --- /dev/null +++ b/mineru/utils/os_env_config.py @@ -0,0 +1,36 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os + + +def get_op_num_threads(env_name: str) -> int: + env_value = os.getenv(env_name, None) + return get_value_from_string(env_value, -1) + + +def get_load_images_timeout() -> int: + env_value = os.getenv('MINERU_PDF_RENDER_TIMEOUT', None) + return get_value_from_string(env_value, 300) + + +def get_load_images_threads() -> int: + env_value = os.getenv('MINERU_PDF_RENDER_THREADS', None) + return get_value_from_string(env_value, 4) + + +def get_value_from_string(env_value: str, default_value: int) -> int: + if env_value is not None: + try: + num_threads = int(env_value) + if num_threads > 0: + return num_threads + except ValueError: + return default_value + return default_value + + +if __name__ == '__main__': + print(get_value_from_string('1', -1)) + print(get_value_from_string('0', -1)) + print(get_value_from_string('-1', -1)) + print(get_value_from_string('abc', -1)) + print(get_load_images_timeout()) \ No newline at end of file diff --git a/mineru/utils/pdf_classify.py b/mineru/utils/pdf_classify.py new file mode 100644 index 000000000..93bbf9198 --- /dev/null +++ b/mineru/utils/pdf_classify.py @@ -0,0 +1,563 @@ +# Copyright (c) Opendatalab. All rights reserved. +import os +import re +from io import BytesIO + +import numpy as np +import pypdfium2 as pdfium +import pypdfium2.raw as pdfium_c +from loguru import logger +from pypdf import PdfReader +from pdfminer.converter import PDFPageAggregator +from pdfminer.high_level import extract_text +from pdfminer.layout import LAParams, LTFigure, LTImage +from pdfminer.pdfdocument import PDFDocument +from pdfminer.pdfinterp import PDFPageInterpreter, PDFResourceManager +from pdfminer.pdfpage import PDFPage +from pdfminer.pdfparser import PDFParser +from mineru.utils.pdfium_guard import ( + close_pdfium_document, + open_pdfium_document, + pdfium_guard, +) + +PDF_CLASSIFY_STRATEGY_ENV = "MINERU_PDF_CLASSIFY_STRATEGY" +PDF_CLASSIFY_STRATEGY_HYBRID = "hybrid" +PDF_CLASSIFY_STRATEGY_LEGACY = "legacy" + +MAX_SAMPLE_PAGES = 10 +CHARS_THRESHOLD = 50 +HIGH_IMAGE_COVERAGE_THRESHOLD = 0.8 +CID_RATIO_THRESHOLD = 0.05 +TEXT_QUALITY_MIN_CHARS = 300 +TEXT_QUALITY_BAD_THRESHOLD = 0.03 +TEXT_QUALITY_GOOD_THRESHOLD = 0.005 +MAX_PAGE_ASPECT_RATIO = 10.0 + +_ALLOWED_CONTROL_CODES = {9, 10, 13} +_PRIVATE_USE_AREA_START = 0xE000 +_PRIVATE_USE_AREA_END = 0xF8FF + + +def _is_disallowed_control_unicode(unicode_code: int) -> bool: + return ( + ( + 0 <= unicode_code < 32 + or 127 <= unicode_code <= 159 + ) + and unicode_code not in _ALLOWED_CONTROL_CODES + ) + + +def classify(pdf_bytes): + """ + Classify a PDF as text-based or OCR-based. + + Returns: + "txt" if the PDF can be parsed as text, otherwise "ocr". + """ + + strategy = get_pdf_classify_strategy() + if strategy == PDF_CLASSIFY_STRATEGY_LEGACY: + return classify_legacy(pdf_bytes) + return classify_hybrid(pdf_bytes) + + +def get_pdf_classify_strategy() -> str: + strategy = os.getenv( + PDF_CLASSIFY_STRATEGY_ENV, PDF_CLASSIFY_STRATEGY_HYBRID + ).strip().lower() + if strategy not in { + PDF_CLASSIFY_STRATEGY_HYBRID, + PDF_CLASSIFY_STRATEGY_LEGACY, + }: + logger.warning( + f"Invalid {PDF_CLASSIFY_STRATEGY_ENV} value: {strategy}, " + f"fall back to {PDF_CLASSIFY_STRATEGY_HYBRID}" + ) + return PDF_CLASSIFY_STRATEGY_HYBRID + return strategy + + +def classify_hybrid(pdf_bytes): + """ + Fast PDF classification path. + + The hybrid path uses pdfium + pypdf as the main path and falls back to + pdfminer only for gray-zone samples. + """ + + pdf = None + page_indices = [] + should_run_pdfminer_fallback = False + + try: + with pdfium_guard(): + pdf = open_pdfium_document(pdfium.PdfDocument, pdf_bytes) + page_count = len(pdf) + if page_count == 0: + return "ocr" + + page_indices = get_sample_page_indices(page_count, MAX_SAMPLE_PAGES) + if not page_indices: + return "ocr" + + extreme_page_index, extreme_ratio = get_extreme_aspect_ratio_page_pdfium( + pdf, + page_indices, + ) + if extreme_page_index is not None: + logger.info( + "Classify PDF as OCR due to extreme sampled-page aspect ratio: " + f"page={extreme_page_index + 1}, ratio={extreme_ratio:.2f}" + ) + return "ocr" + + if ( + get_avg_cleaned_chars_per_page_pdfium(pdf, page_indices) + < CHARS_THRESHOLD + ): + return "ocr" + + if detect_cid_font_signal_pypdf(pdf_bytes, page_indices): + return "ocr" + + text_quality_signal = get_text_quality_signal_pdfium(pdf, page_indices) + total_chars = text_quality_signal["total_chars"] + abnormal_ratio = text_quality_signal["abnormal_ratio"] + + if total_chars >= TEXT_QUALITY_MIN_CHARS: + if abnormal_ratio >= TEXT_QUALITY_BAD_THRESHOLD: + return "ocr" + should_run_pdfminer_fallback = abnormal_ratio > TEXT_QUALITY_GOOD_THRESHOLD + else: + should_run_pdfminer_fallback = True + + if ( + get_high_image_coverage_ratio_pdfium(pdf, page_indices) + >= HIGH_IMAGE_COVERAGE_THRESHOLD + ): + return "ocr" + + except Exception as e: + logger.error(f"Failed to classify PDF with hybrid strategy: {e}") + return "ocr" + + finally: + close_pdfium_document(pdf) + + if should_run_pdfminer_fallback: + sample_pdf_bytes = extract_selected_pages(pdf_bytes, page_indices) + if not sample_pdf_bytes: + return "ocr" + if detect_invalid_chars_pdfminer_fallback(sample_pdf_bytes): + return "ocr" + + return "txt" + + +def classify_legacy(pdf_bytes): + """ + Legacy classification path kept for rollback and A/B comparison. + """ + + sample_pdf_bytes = extract_pages(pdf_bytes) + if not sample_pdf_bytes: + return "ocr" + pdf = None + try: + with pdfium_guard(): + pdf = open_pdfium_document(pdfium.PdfDocument, sample_pdf_bytes) + page_count = len(pdf) + if page_count == 0: + return "ocr" + + pages_to_check = min(page_count, MAX_SAMPLE_PAGES) + + if ( + get_avg_cleaned_chars_per_page(pdf, pages_to_check) < CHARS_THRESHOLD + ) or detect_invalid_chars(sample_pdf_bytes): + return "ocr" + + if ( + get_high_image_coverage_ratio(sample_pdf_bytes, pages_to_check) + >= HIGH_IMAGE_COVERAGE_THRESHOLD + ): + return "ocr" + + return "txt" + + except Exception as e: + logger.warning(f"Failed to classify PDF with legacy strategy: {e}") + return "ocr" + + finally: + close_pdfium_document(pdf) + + +def get_sample_page_indices(page_count: int, max_pages: int = MAX_SAMPLE_PAGES): + if page_count <= 0 or max_pages <= 0: + return [] + + sample_count = min(page_count, max_pages) + if sample_count == page_count: + return list(range(page_count)) + if sample_count == 1: + return [0] + + indices = [] + seen = set() + for i in range(sample_count): + page_index = round(i * (page_count - 1) / (sample_count - 1)) + page_index = max(0, min(page_count - 1, page_index)) + if page_index not in seen: + indices.append(page_index) + seen.add(page_index) + + if len(indices) < sample_count: + for page_index in range(page_count): + if page_index in seen: + continue + indices.append(page_index) + seen.add(page_index) + if len(indices) == sample_count: + break + + return sorted(indices) + + +def get_extreme_aspect_ratio_page_pdfium( + pdf_doc, + page_indices, + max_page_aspect_ratio: float = MAX_PAGE_ASPECT_RATIO, +): + for page_index in page_indices: + page = pdf_doc[page_index] + page_width, page_height = page.get_size() + if page_width <= 0 or page_height <= 0: + continue + + aspect_ratio = max(page_width / page_height, page_height / page_width) + if aspect_ratio > max_page_aspect_ratio: + return page_index, aspect_ratio + + return None, None + + +def get_avg_cleaned_chars_per_page(pdf_doc, pages_to_check): + total_chars = 0 + cleaned_total_chars = 0 + + for i in range(pages_to_check): + page = pdf_doc[i] + text_page = page.get_textpage() + text = text_page.get_text_bounded() + total_chars += len(text) + cleaned_text = re.sub(r"\s+", "", text) + cleaned_total_chars += len(cleaned_text) + + avg_cleaned_chars_per_page = cleaned_total_chars / pages_to_check + return avg_cleaned_chars_per_page + + +def get_avg_cleaned_chars_per_page_pdfium(pdf_doc, page_indices): + cleaned_total_chars = 0 + + for page_index in page_indices: + page = pdf_doc[page_index] + text_page = page.get_textpage() + text = text_page.get_text_bounded() + cleaned_total_chars += len(re.sub(r"\s+", "", text)) + + if not page_indices: + return 0.0 + return cleaned_total_chars / len(page_indices) + + +def get_text_quality_signal_pdfium(pdf_doc, page_indices): + total_chars = 0 + null_char_count = 0 + replacement_char_count = 0 + control_char_count = 0 + private_use_char_count = 0 + + for page_index in page_indices: + page = pdf_doc[page_index] + text_page = page.get_textpage() + char_count = text_page.count_chars() + total_chars += char_count + + for char_index in range(char_count): + unicode_code = pdfium_c.FPDFText_GetUnicode(text_page, char_index) + if unicode_code == 0: + null_char_count += 1 + elif unicode_code == 0xFFFD: + replacement_char_count += 1 + elif _is_disallowed_control_unicode(unicode_code): + control_char_count += 1 + elif _PRIVATE_USE_AREA_START <= unicode_code <= _PRIVATE_USE_AREA_END: + private_use_char_count += 1 + + abnormal_chars = ( + null_char_count + + replacement_char_count + + control_char_count + + private_use_char_count + ) + + abnormal_ratio = 0.0 + if total_chars > 0: + abnormal_ratio = abnormal_chars / total_chars + + return { + "total_chars": total_chars, + "abnormal_ratio": abnormal_ratio, + "null_char_count": null_char_count, + "replacement_char_count": replacement_char_count, + "control_char_count": control_char_count, + "private_use_char_count": private_use_char_count, + } + + +def detect_cid_font_signal_pypdf(pdf_bytes, page_indices): + reader = PdfReader(BytesIO(pdf_bytes)) + + for page_index in page_indices: + page = reader.pages[page_index] + resources = _resolve_pdf_object(page.get("/Resources")) + if not resources: + continue + + fonts = _resolve_pdf_object(resources.get("/Font")) + if not fonts: + continue + + for _, font_ref in fonts.items(): + font = _resolve_pdf_object(font_ref) + if not font: + continue + + subtype = str(font.get("/Subtype")) + encoding = str(font.get("/Encoding")) + has_descendant_fonts = "/DescendantFonts" in font + has_to_unicode = "/ToUnicode" in font + + if ( + subtype == "/Type0" + and encoding in ("/Identity-H", "/Identity-V") + and has_descendant_fonts + and not has_to_unicode + ): + return True + + return False + + +def _resolve_pdf_object(obj): + if hasattr(obj, "get_object"): + return obj.get_object() + return obj + + +def get_high_image_coverage_ratio(sample_pdf_bytes, pages_to_check): + pdf_stream = BytesIO(sample_pdf_bytes) + parser = PDFParser(pdf_stream) + document = PDFDocument(parser) + + if not document.is_extractable: + return 1.0 + + rsrcmgr = PDFResourceManager() + laparams = LAParams( + line_overlap=0.5, + char_margin=2.0, + line_margin=0.5, + word_margin=0.1, + boxes_flow=None, + detect_vertical=False, + all_texts=False, + ) + device = PDFPageAggregator(rsrcmgr, laparams=laparams) + interpreter = PDFPageInterpreter(rsrcmgr, device) + + high_image_coverage_pages = 0 + page_count = 0 + + for page in PDFPage.create_pages(document): + if page_count >= pages_to_check: + break + + interpreter.process_page(page) + layout = device.get_result() + + page_width = layout.width + page_height = layout.height + page_area = page_width * page_height + + image_area = 0 + for element in layout: + if isinstance(element, (LTImage, LTFigure)): + img_width = element.width + img_height = element.height + image_area += img_width * img_height + + coverage_ratio = min(image_area / page_area, 1.0) if page_area > 0 else 0 + if coverage_ratio >= HIGH_IMAGE_COVERAGE_THRESHOLD: + high_image_coverage_pages += 1 + + page_count += 1 + + pdf_stream.close() + + if page_count == 0: + return 0.0 + + return high_image_coverage_pages / page_count + + +def get_high_image_coverage_ratio_pdfium(pdf_doc, page_indices): + high_image_coverage_pages = 0 + + for page_index in page_indices: + page = pdf_doc[page_index] + page_bbox = page.get_bbox() + page_area = abs( + (page_bbox[2] - page_bbox[0]) * (page_bbox[3] - page_bbox[1]) + ) + image_area = 0.0 + + for page_object in page.get_objects( + filter=[pdfium_c.FPDF_PAGEOBJ_IMAGE], max_depth=3 + ): + left, bottom, right, top = page_object.get_pos() + image_area += max(0.0, right - left) * max(0.0, top - bottom) + + coverage_ratio = min(image_area / page_area, 1.0) if page_area > 0 else 0.0 + if coverage_ratio >= HIGH_IMAGE_COVERAGE_THRESHOLD: + high_image_coverage_pages += 1 + + if not page_indices: + return 0.0 + return high_image_coverage_pages / len(page_indices) + + +def extract_pages(src_pdf_bytes: bytes) -> bytes: + """ + Extract up to 10 random pages and return them as a new PDF. + """ + + pdf = None + sample_docs = None + try: + with pdfium_guard(): + pdf = open_pdfium_document(pdfium.PdfDocument, src_pdf_bytes) + total_page = len(pdf) + if total_page == 0: + logger.warning("PDF is empty, return empty document") + return b"" + + if total_page <= MAX_SAMPLE_PAGES: + return src_pdf_bytes + + select_page_cnt = min(MAX_SAMPLE_PAGES, total_page) + page_indices = np.random.choice( + total_page, select_page_cnt, replace=False + ).tolist() + + sample_docs = open_pdfium_document(pdfium.PdfDocument.new) + sample_docs.import_pages(pdf, page_indices) + + output_buffer = BytesIO() + sample_docs.save(output_buffer) + return output_buffer.getvalue() + except Exception as e: + logger.exception(e) + return src_pdf_bytes + finally: + close_pdfium_document(pdf) + close_pdfium_document(sample_docs) + + +def extract_selected_pages(src_pdf_bytes: bytes, page_indices) -> bytes: + """ + Extract specific pages and return them as a new PDF. + """ + + selected_page_indices = sorted(set(page_indices)) + if not selected_page_indices: + return b"" + + pdf = None + sample_docs = None + try: + with pdfium_guard(): + pdf = open_pdfium_document(pdfium.PdfDocument, src_pdf_bytes) + total_page = len(pdf) + if total_page == 0: + logger.warning("PDF is empty, return empty document") + return b"" + + selected_page_indices = [ + page_index + for page_index in selected_page_indices + if 0 <= page_index < total_page + ] + if not selected_page_indices: + return b"" + + if selected_page_indices == list(range(total_page)): + return src_pdf_bytes + + sample_docs = open_pdfium_document(pdfium.PdfDocument.new) + sample_docs.import_pages(pdf, selected_page_indices) + + output_buffer = BytesIO() + sample_docs.save(output_buffer) + return output_buffer.getvalue() + except Exception as e: + logger.exception(e) + return src_pdf_bytes + finally: + close_pdfium_document(pdf) + close_pdfium_document(sample_docs) + + +def detect_invalid_chars(sample_pdf_bytes: bytes) -> bool: + """ + Detect whether a PDF contains invalid CID-style extracted text. + """ + + sample_pdf_file_like_object = BytesIO(sample_pdf_bytes) + laparams = LAParams( + line_overlap=0.5, + char_margin=2.0, + line_margin=0.5, + word_margin=0.1, + boxes_flow=None, + detect_vertical=False, + all_texts=False, + ) + text = extract_text(pdf_file=sample_pdf_file_like_object, laparams=laparams) + text = text.replace("\n", "") + + cid_pattern = re.compile(r"\(cid:\d+\)") + matches = cid_pattern.findall(text) + cid_count = len(matches) + cid_len = sum(len(match) for match in matches) + text_len = len(text) + if text_len == 0: + cid_chars_ratio = 0 + else: + cid_chars_ratio = cid_count / (cid_count + text_len - cid_len) + + return cid_chars_ratio > CID_RATIO_THRESHOLD + + +def detect_invalid_chars_pdfminer_fallback(sample_pdf_bytes: bytes) -> bool: + return detect_invalid_chars(sample_pdf_bytes) + + +if __name__ == "__main__": + with open("/Users/myhloli/pdf/luanma2x10.pdf", "rb") as f: + p_bytes = f.read() + logger.info(f"PDF classify result: {classify(p_bytes)}") diff --git a/mineru/utils/pdf_image_tools.py b/mineru/utils/pdf_image_tools.py new file mode 100644 index 000000000..fb11649f8 --- /dev/null +++ b/mineru/utils/pdf_image_tools.py @@ -0,0 +1,437 @@ +# Copyright (c) Opendatalab. All rights reserved. +import atexit +import multiprocessing +import os +import signal +import threading +import time +from io import BytesIO + +import numpy as np +import pypdfium2 as pdfium +from loguru import logger +from PIL import Image, ImageOps + +from mineru.data.data_reader_writer import FileBasedDataWriter +from mineru.utils.check_sys_env import is_windows_environment +from mineru.utils.bbox_utils import normalize_to_int_bbox +from mineru.utils.os_env_config import get_load_images_timeout, get_load_images_threads +from mineru.utils.pdf_reader import image_to_b64str, image_to_bytes, page_to_image +from mineru.utils.enum_class import ImageType +from mineru.utils.hash_utils import str_sha256 +from mineru.utils.pdf_page_id import get_end_page_id +from mineru.utils.pdfium_guard import ( + close_pdfium_document, + get_pdfium_document_page_count, + open_pdfium_document, + pdfium_guard, +) + +from concurrent.futures import ProcessPoolExecutor, wait, ALL_COMPLETED +from concurrent.futures.process import BrokenProcessPool + + +DEFAULT_PDF_IMAGE_DPI = 200 +# DEFAULT_PDF_IMAGE_DPI = 144 +MAX_PDF_RENDER_PROCESSES = 4 +MIN_PAGES_PER_RENDER_PROCESS = 30 + +_pdf_render_executor: ProcessPoolExecutor | None = None +_pdf_render_executor_lock = threading.Lock() + + +def pdf_page_to_image( + page: pdfium.PdfPage, + dpi=DEFAULT_PDF_IMAGE_DPI, + image_type=ImageType.PIL, +) -> dict: + """Convert pdfium.PdfDocument to image, Then convert the image to base64. + + Args: + page (_type_): pdfium.PdfPage + dpi (int, optional): reset the dpi of dpi. Defaults to DEFAULT_PDF_IMAGE_DPI. + image_type (ImageType, optional): The type of image to return. Defaults to ImageType.PIL. + + Returns: + dict: {'img_base64': str, 'img_pil': pil_img, 'scale': float } + """ + pil_img, scale = page_to_image(page, dpi=dpi) + image_dict = { + "scale": scale, + } + if image_type == ImageType.BASE64: + image_dict["img_base64"] = image_to_b64str(pil_img) + else: + image_dict["img_pil"] = pil_img + + return image_dict + + +def _load_images_from_pdf_worker( + pdf_bytes, dpi, start_page_id, end_page_id, image_type +): + """用于进程池的包装函数""" + return load_images_from_pdf_core( + pdf_bytes, dpi, start_page_id, end_page_id, image_type + ) + + +def _calculate_render_process_count(total_pages: int, threads: int, cpu_count=None) -> int: + requested_threads = max(1, threads) + available_cpus = max(1, cpu_count if cpu_count is not None else (os.cpu_count() or 1)) + page_limited_threads = max(1, total_pages // MIN_PAGES_PER_RENDER_PROCESS) + return min( + available_cpus, + requested_threads, + MAX_PDF_RENDER_PROCESSES, + page_limited_threads, + ) + + +def _build_render_page_ranges( + start_page_id: int, + end_page_id: int, + process_count: int, +) -> list[tuple[int, int]]: + total_pages = end_page_id - start_page_id + 1 + base_pages, remainder = divmod(total_pages, process_count) + page_ranges = [] + current_page = start_page_id + + for process_idx in range(process_count): + pages_in_range = base_pages + (1 if process_idx < remainder else 0) + range_end = current_page + pages_in_range - 1 + page_ranges.append((current_page, range_end)) + current_page = range_end + 1 + + return page_ranges + + +def _get_render_process_plan( + start_page_id: int, + end_page_id: int, + threads: int, + cpu_count=None, +) -> tuple[int, list[tuple[int, int]]]: + total_pages = end_page_id - start_page_id + 1 + actual_threads = _calculate_render_process_count(total_pages, threads, cpu_count) + return actual_threads, _build_render_page_ranges( + start_page_id, end_page_id, actual_threads + ) + + +def _get_pdf_render_pool_capacity(cpu_count=None) -> int: + available_cpus = max(1, cpu_count if cpu_count is not None else (os.cpu_count() or 1)) + configured_threads = max(1, get_load_images_threads()) + return min( + available_cpus, + configured_threads, + MAX_PDF_RENDER_PROCESSES, + ) + + +def _create_pdf_render_executor(max_workers: int) -> ProcessPoolExecutor: + if is_windows_environment(): + return ProcessPoolExecutor(max_workers=max_workers) + + start_method = multiprocessing.get_start_method() + if start_method == "fork": + logger.debug( + "PDF image rendering switches multiprocessing start method from fork to spawn" + ) + return ProcessPoolExecutor( + max_workers=max_workers, + mp_context=multiprocessing.get_context("spawn"), + ) + + return ProcessPoolExecutor(max_workers=max_workers) + + +def _get_pdf_render_executor() -> ProcessPoolExecutor: + global _pdf_render_executor + + with _pdf_render_executor_lock: + if _pdf_render_executor is None: + max_workers = _get_pdf_render_pool_capacity() + _pdf_render_executor = _create_pdf_render_executor(max_workers=max_workers) + logger.debug( + f"Created persistent PDF render executor with max_workers={max_workers}" + ) + return _pdf_render_executor + + +def _recycle_pdf_render_executor( + executor: ProcessPoolExecutor | None, + *, + terminate_processes: bool, +) -> None: + global _pdf_render_executor + + if executor is None: + return + + with _pdf_render_executor_lock: + if _pdf_render_executor is executor: + _pdf_render_executor = None + + if terminate_processes: + _terminate_executor_processes(executor) + executor.shutdown(wait=False, cancel_futures=True) + + +def shutdown_pdf_render_executor() -> None: + global _pdf_render_executor + + with _pdf_render_executor_lock: + executor = _pdf_render_executor + _pdf_render_executor = None + + if executor is not None: + _terminate_executor_processes(executor) + executor.shutdown(wait=False, cancel_futures=True) + + +atexit.register(shutdown_pdf_render_executor) + + +def _load_images_from_pdf_bytes_range( + pdf_bytes: bytes, + dpi=DEFAULT_PDF_IMAGE_DPI, + start_page_id=0, + end_page_id=0, + image_type=ImageType.PIL, + timeout=None, + threads=None, +): + if end_page_id < start_page_id: + return [] + + if timeout is None: + timeout = get_load_images_timeout() + if threads is None: + threads = get_load_images_threads() + + actual_threads, page_ranges = _get_render_process_plan( + start_page_id, + end_page_id, + threads, + ) + + logger.debug( + f"PDF image rendering uses {actual_threads} processes for pages " + f"{start_page_id + 1}-{end_page_id + 1}: {page_ranges}" + ) + + executor = _get_pdf_render_executor() + recycle_executor = False + try: + futures = [] + future_to_range = {} + for range_start, range_end in page_ranges: + future = executor.submit( + _load_images_from_pdf_worker, + pdf_bytes, + dpi, + range_start, + range_end, + image_type, + ) + futures.append(future) + future_to_range[future] = range_start + + _, not_done = wait(futures, timeout=timeout, return_when=ALL_COMPLETED) + if not_done: + recycle_executor = True + raise TimeoutError( + f"PDF image rendering timeout after {timeout}s " + f"for pages {start_page_id + 1}-{end_page_id + 1}" + ) + + all_results = [] + for future in futures: + range_start = future_to_range[future] + images_list = future.result() + all_results.append((range_start, images_list)) + + all_results.sort(key=lambda x: x[0]) + images_list = [] + for _, imgs in all_results: + images_list.extend(imgs) + + return images_list + except BrokenProcessPool: + recycle_executor = True + raise + finally: + if recycle_executor: + logger.warning("Recycling persistent PDF render executor after render failure") + _recycle_pdf_render_executor( + executor, + terminate_processes=True, + ) + + +def _terminate_executor_processes(executor): + """强制终止 ProcessPoolExecutor 中的所有子进程""" + if hasattr(executor, '_processes'): + for pid, process in executor._processes.items(): + if process.is_alive(): + try: + # 先发送 SIGTERM 允许优雅退出 + os.kill(pid, signal.SIGTERM) + except (ProcessLookupError, OSError): + pass + + # 给子进程一点时间响应 SIGTERM + time.sleep(0.1) + + # 对仍然存活的进程发送 SIGKILL 强制终止 + for pid, process in executor._processes.items(): + if process.is_alive(): + try: + os.kill(pid, signal.SIGKILL) + except (ProcessLookupError, OSError): + pass + + +def load_images_from_pdf_core( + pdf_bytes: bytes, + dpi=DEFAULT_PDF_IMAGE_DPI, + start_page_id=0, + end_page_id=None, + image_type=ImageType.PIL, # PIL or BASE64 +): + images_list = [] + pdf_doc = None + try: + with pdfium_guard(): + pdf_doc = open_pdfium_document(pdfium.PdfDocument, pdf_bytes) + pdf_page_num = len(pdf_doc) + end_page_id = get_end_page_id(end_page_id, pdf_page_num) + + for index in range(start_page_id, end_page_id + 1): + # logger.debug(f"Converting page {index}/{pdf_page_num} to image") + page = pdf_doc[index] + image_dict = pdf_page_to_image(page, dpi=dpi, image_type=image_type) + images_list.append(image_dict) + finally: + close_pdfium_document(pdf_doc) + + return images_list + + +def load_images_from_pdf_doc( + pdf_doc: pdfium.PdfDocument, + dpi=DEFAULT_PDF_IMAGE_DPI, + start_page_id=0, + end_page_id=None, + image_type=ImageType.PIL, + pdf_bytes: bytes | None = None, + timeout=None, + threads=None, +): + pdf_page_num = get_pdfium_document_page_count(pdf_doc) + normalized_end_page_id = get_end_page_id(end_page_id, pdf_page_num) + + if pdf_bytes is not None and not is_windows_environment(): + return _load_images_from_pdf_bytes_range( + pdf_bytes, + dpi=dpi, + start_page_id=start_page_id, + end_page_id=normalized_end_page_id, + image_type=image_type, + timeout=timeout, + threads=threads, + ) + + images_list = [] + with pdfium_guard(): + for index in range(start_page_id, normalized_end_page_id + 1): + page = pdf_doc[index] + image_dict = pdf_page_to_image(page, dpi=dpi, image_type=image_type) + images_list.append(image_dict) + + return images_list + + +def cut_image( + bbox: tuple, + page_num: int, + page_pil_img, + return_path, + image_writer: FileBasedDataWriter, + scale=2, +): + """从第page_num页的page中,根据bbox进行裁剪出一张jpg图片,返回图片路径 save_path:需要同时支持s3和本地, + 图片存放在save_path下,文件名是: + {page_num}_{bbox[0]}_{bbox[1]}_{bbox[2]}_{bbox[3]}.jpg , bbox内数字取整。""" + + # 拼接文件名 + filename = f"{page_num}_{int(bbox[0])}_{int(bbox[1])}_{int(bbox[2])}_{int(bbox[3])}" + + # 老版本返回不带bucket的路径 + img_path = f"{return_path}_{filename}" if return_path is not None else None + + # 新版本生成平铺路径 + img_hash256_path = f"{str_sha256(img_path)}.jpg" + # img_hash256_path = f'{img_path}.jpg' + + crop_img = get_crop_img(bbox, page_pil_img, scale=scale) + + img_bytes = image_to_bytes(crop_img, image_format="JPEG") + + image_writer.write(img_hash256_path, img_bytes) + return img_hash256_path + + +def get_crop_img(bbox: tuple, pil_img, scale=2): + scale_bbox = normalize_to_int_bbox([float(v) * scale for v in bbox]) + if scale_bbox is None: + return pil_img.crop((0, 0, 0, 0)) + return pil_img.crop(tuple(scale_bbox)) + + +def get_crop_np_img(bbox: tuple, input_img, scale=2): + if isinstance(input_img, Image.Image): + np_img = np.asarray(input_img) + elif isinstance(input_img, np.ndarray): + np_img = input_img + else: + raise ValueError("Input must be a pillow object or a numpy array.") + + height, width = np_img.shape[:2] + scale_bbox = normalize_to_int_bbox( + [float(v) * scale for v in bbox], + image_size=(height, width), + ) + if scale_bbox is None: + return np_img[0:0, 0:0] + + return np_img[scale_bbox[1] : scale_bbox[3], scale_bbox[0] : scale_bbox[2]] + + +def images_bytes_to_pdf_bytes(image_bytes): + # 内存缓冲区 + pdf_buffer = BytesIO() + + # 载入并转换所有图像为 RGB 模式 + image = Image.open(BytesIO(image_bytes)) + # 根据 EXIF 信息自动转正(处理手机拍摄的带 Orientation 标记的图片) + image = ImageOps.exif_transpose(image) or image + # 只在必要时转换 + if image.mode != "RGB": + image = image.convert("RGB") + + # 第一张图保存为 PDF,其余追加 + image.save( + pdf_buffer, + format="PDF", + resolution=DEFAULT_PDF_IMAGE_DPI, + quality=95, + subsampling=0, + ) + + # 获取 PDF bytes 并重置指针(可选) + pdf_bytes = pdf_buffer.getvalue() + pdf_buffer.close() + return pdf_bytes diff --git a/mineru/utils/pdf_page_id.py b/mineru/utils/pdf_page_id.py new file mode 100644 index 000000000..5471297ff --- /dev/null +++ b/mineru/utils/pdf_page_id.py @@ -0,0 +1,10 @@ +# Copyright (c) Opendatalab. All rights reserved. +from loguru import logger + + +def get_end_page_id(end_page_id, pdf_page_num): + end_page_id = end_page_id if end_page_id is not None and end_page_id >= 0 else pdf_page_num - 1 + if end_page_id > pdf_page_num - 1: + logger.debug("end_page_id is out of range, use images length") + end_page_id = pdf_page_num - 1 + return end_page_id diff --git a/mineru/utils/pdf_reader.py b/mineru/utils/pdf_reader.py new file mode 100644 index 000000000..f34b382e8 --- /dev/null +++ b/mineru/utils/pdf_reader.py @@ -0,0 +1,49 @@ +# Copyright (c) Opendatalab. All rights reserved. +import base64 +from io import BytesIO + +from loguru import logger +from PIL import Image +from pypdfium2 import PdfBitmap, PdfPage +from mineru.utils.pdfium_guard import pdfium_guard + + +def page_to_image( + page: PdfPage, + dpi: int = 200, + max_width_or_height: int = 3500, # changed from 4500 to 3500 +) -> (Image.Image, float): + with pdfium_guard(): + scale = dpi / 72 + + long_side_length = max(*page.get_size()) + if (long_side_length*scale) > max_width_or_height: + scale = max_width_or_height / long_side_length + + bitmap: PdfBitmap = page.render(scale=scale) # type: ignore + + image = bitmap.to_pil() + try: + bitmap.close() + except Exception as e: + logger.error(f"Failed to close bitmap: {e}") + return image, scale + + +def image_to_bytes( + image: Image.Image, + # image_format: str = "PNG", # 也可以用 "JPEG" + image_format: str = "JPEG", +) -> bytes: + with BytesIO() as image_buffer: + image.save(image_buffer, format=image_format) + return image_buffer.getvalue() + + +def image_to_b64str( + image: Image.Image, + # image_format: str = "PNG", # 也可以用 "JPEG" + image_format: str = "JPEG", +) -> str: + image_bytes = image_to_bytes(image, image_format) + return f"data:image/{image_format.lower()};base64,{base64.b64encode(image_bytes).decode('utf-8')}" diff --git a/mineru/utils/pdf_text_tool.py b/mineru/utils/pdf_text_tool.py new file mode 100644 index 000000000..999827e9a --- /dev/null +++ b/mineru/utils/pdf_text_tool.py @@ -0,0 +1,52 @@ +# Copyright (c) Opendatalab. All rights reserved. +import math +from typing import List + +import pypdfium2 as pdfium +from pdftext.pdf.chars import deduplicate_chars, get_chars +from pdftext.pdf.pages import assign_scripts, get_blocks, get_lines, get_spans + +from mineru.utils.pdfium_guard import pdfium_guard + + +def get_page( + page: pdfium.PdfPage, + quote_loosebox: bool = True, + superscript_height_threshold: float = 0.7, + line_distance_threshold: float = 0.1, +) -> dict: + with pdfium_guard(): + textpage = page.get_textpage() + page_bbox: List[float] = page.get_bbox() + page_width = math.ceil(abs(page_bbox[2] - page_bbox[0])) + page_height = math.ceil(abs(page_bbox[1] - page_bbox[3])) + + page_rotation = 0 + try: + page_rotation = page.get_rotation() + except Exception: + pass + + chars = deduplicate_chars( + get_chars(textpage, page_bbox, page_rotation, quote_loosebox) + ) + spans = get_spans( + chars, + superscript_height_threshold=superscript_height_threshold, + line_distance_threshold=line_distance_threshold, + ) + lines = get_lines(spans) + assign_scripts( + lines, + height_threshold=superscript_height_threshold, + line_distance_threshold=line_distance_threshold, + ) + blocks = get_blocks(lines) + + return { + "bbox": page_bbox, + "width": page_width, + "height": page_height, + "rotation": page_rotation, + "blocks": blocks, + } diff --git a/mineru/utils/pdfium_guard.py b/mineru/utils/pdfium_guard.py new file mode 100644 index 000000000..08e90fc62 --- /dev/null +++ b/mineru/utils/pdfium_guard.py @@ -0,0 +1,85 @@ +# Copyright (c) Opendatalab. All rights reserved. +import threading +from io import BytesIO +from contextlib import contextmanager +from typing import Any, Callable, Sequence, TypeVar + +from mineru.utils.pdf_page_id import get_end_page_id + + +_pdfium_lock = threading.RLock() + +T = TypeVar("T") + + +@contextmanager +def pdfium_guard(): + with _pdfium_lock: + yield + + +def open_pdfium_document( + opener: Callable[..., T], + *args: Any, + **kwargs: Any, +) -> T: + with pdfium_guard(): + return opener(*args, **kwargs) + + +def get_pdfium_document_page_count(pdf_doc) -> int: + with pdfium_guard(): + return len(pdf_doc) + + +def close_pdfium_document(pdf_doc) -> None: + if pdf_doc is None: + return + with pdfium_guard(): + pdf_doc.close() + + +def rewrite_pdf_bytes_with_pdfium( + src_pdf_bytes: bytes, + start_page_id: int = 0, + end_page_id: int | None = None, + page_indices: Sequence[int] | None = None, +) -> bytes: + import pypdfium2 as pdfium + + pdf_doc = None + output_doc = None + try: + with pdfium_guard(): + pdf_doc = pdfium.PdfDocument(src_pdf_bytes) + total_page_count = len(pdf_doc) + if total_page_count == 0: + return b"" + + if page_indices is not None: + normalized_page_indices = sorted( + { + page_index + for page_index in page_indices + if 0 <= page_index < total_page_count + } + ) + if not normalized_page_indices: + return b"" + else: + normalized_end_page_id = get_end_page_id(end_page_id, total_page_count) + normalized_page_indices = list( + range(start_page_id, normalized_end_page_id + 1) + ) + + output_doc = pdfium.PdfDocument.new() + output_doc.import_pages(pdf_doc, normalized_page_indices) + + output_buffer = BytesIO() + output_doc.save(output_buffer) + return output_buffer.getvalue() + finally: + if output_doc is not None: + close_pdfium_document(output_doc) + if pdf_doc is not None: + close_pdfium_document(pdf_doc) diff --git a/mineru/utils/span_block_fix.py b/mineru/utils/span_block_fix.py new file mode 100644 index 000000000..430330ff9 --- /dev/null +++ b/mineru/utils/span_block_fix.py @@ -0,0 +1,153 @@ +# Copyright (c) Opendatalab. All rights reserved. +from mineru.utils.enum_class import ContentType +from mineru.utils.ocr_utils import _is_overlaps_y_exceeds_threshold, _is_overlaps_x_exceeds_threshold + +VERTICAL_SPAN_HEIGHT_TO_WIDTH_RATIO_THRESHOLD = 2 +VERTICAL_SPAN_IN_BLOCK_THRESHOLD = 0.8 + +def fix_text_block(block): + # 文本block中的公式span都应该转换成行内type + for span in block['spans']: + if span['type'] == ContentType.INTERLINE_EQUATION: + span['type'] = ContentType.INLINE_EQUATION + + # 假设block中的span超过80%的数量高度是宽度的两倍以上,则认为是纵向文本块 + vertical_span_count = sum( + 1 for span in block['spans'] + if (span['bbox'][3] - span['bbox'][1]) / (span['bbox'][2] - span['bbox'][0]) > VERTICAL_SPAN_HEIGHT_TO_WIDTH_RATIO_THRESHOLD + ) + total_span_count = len(block['spans']) + if total_span_count == 0: + vertical_ratio = 0 + else: + vertical_ratio = vertical_span_count / total_span_count + + if vertical_ratio > VERTICAL_SPAN_IN_BLOCK_THRESHOLD: + # 如果是纵向文本块,则按纵向lines处理 + block_lines = merge_spans_to_vertical_line(block['spans']) + sort_block_lines = vertical_line_sort_spans_from_top_to_bottom(block_lines) + else: + block_lines = merge_spans_to_line(block['spans']) + sort_block_lines = line_sort_spans_by_left_to_right(block_lines) + + block['lines'] = sort_block_lines + del block['spans'] + return block + + +def merge_spans_to_line(spans, threshold=0.6): + if len(spans) == 0: + return [] + else: + # 按照y0坐标排序 + spans.sort(key=lambda span: span['bbox'][1]) + + lines = [] + current_line = [spans[0]] + for span in spans[1:]: + # 如果当前的span类型为"interline_equation" 或者 当前行中已经有"interline_equation" + # image和table类型,同上 + if span['type'] in [ + ContentType.INTERLINE_EQUATION, ContentType.IMAGE, + ContentType.TABLE + ] or any(s['type'] in [ + ContentType.INTERLINE_EQUATION, ContentType.IMAGE, + ContentType.TABLE + ] for s in current_line): + # 则开始新行 + lines.append(current_line) + current_line = [span] + continue + + # 如果当前的span与当前行的最后一个span在y轴上重叠,则添加到当前行 + if _is_overlaps_y_exceeds_threshold(span['bbox'], current_line[-1]['bbox'], threshold): + current_line.append(span) + else: + # 否则,开始新行 + lines.append(current_line) + current_line = [span] + + # 添加最后一行 + if current_line: + lines.append(current_line) + + return lines + + +def merge_spans_to_vertical_line(spans, threshold=0.6): + """将纵向文本的spans合并成纵向lines(从右向左阅读)""" + if len(spans) == 0: + return [] + else: + # 按照x2坐标从大到小排序(从右向左) + spans.sort(key=lambda span: span['bbox'][2], reverse=True) + + vertical_lines = [] + current_line = [spans[0]] + + for span in spans[1:]: + # 特殊类型元素单独成列 + if span['type'] in [ + ContentType.INTERLINE_EQUATION, ContentType.IMAGE, + ContentType.TABLE + ] or any(s['type'] in [ + ContentType.INTERLINE_EQUATION, ContentType.IMAGE, + ContentType.TABLE + ] for s in current_line): + vertical_lines.append(current_line) + current_line = [span] + continue + + # 如果当前的span与当前行的最后一个span在y轴上重叠,则添加到当前行 + if _is_overlaps_x_exceeds_threshold(span['bbox'], current_line[-1]['bbox'], threshold): + current_line.append(span) + else: + vertical_lines.append(current_line) + current_line = [span] + + # 添加最后一列 + if current_line: + vertical_lines.append(current_line) + + return vertical_lines + + +# 将每一个line中的span从左到右排序 +def line_sort_spans_by_left_to_right(lines): + line_objects = [] + for line in lines: + # 按照x0坐标排序 + line.sort(key=lambda span: span['bbox'][0]) + line_bbox = [ + min(span['bbox'][0] for span in line), # x0 + min(span['bbox'][1] for span in line), # y0 + max(span['bbox'][2] for span in line), # x1 + max(span['bbox'][3] for span in line), # y1 + ] + line_objects.append({ + 'bbox': line_bbox, + 'spans': line, + }) + return line_objects + + +def vertical_line_sort_spans_from_top_to_bottom(vertical_lines): + line_objects = [] + for line in vertical_lines: + # 按照y0坐标排序(从上到下) + line.sort(key=lambda span: span['bbox'][1]) + + # 计算整个列的边界框 + line_bbox = [ + min(span['bbox'][0] for span in line), # x0 + min(span['bbox'][1] for span in line), # y0 + max(span['bbox'][2] for span in line), # x1 + max(span['bbox'][3] for span in line), # y1 + ] + + # 组装结果 + line_objects.append({ + 'bbox': line_bbox, + 'spans': line, + }) + return line_objects diff --git a/mineru/utils/span_pre_proc.py b/mineru/utils/span_pre_proc.py new file mode 100644 index 000000000..cd441c5a3 --- /dev/null +++ b/mineru/utils/span_pre_proc.py @@ -0,0 +1,275 @@ +# Copyright (c) Opendatalab. All rights reserved. +import collections +import math +import re +import statistics + +import cv2 +import numpy as np +from loguru import logger + +from mineru.utils.boxbase import calculate_overlap_area_in_bbox1_area_ratio +from mineru.utils.enum_class import BlockType, ContentType +from mineru.utils.pdf_image_tools import get_crop_img +from mineru.utils.pdf_text_tool import get_page + +MAX_NATIVE_TEXT_CHARS_PER_PAGE = 65535 + + +def __replace_ligatures(text: str): + ligatures = { + 'fi': 'fi', 'fl': 'fl', 'ff': 'ff', 'ffi': 'ffi', 'ffl': 'ffl', 'ſt': 'ft', 'st': 'st' + } + return re.sub('|'.join(map(re.escape, ligatures.keys())), lambda m: ligatures[m.group()], text) + +def __replace_unicode(text: str): + ligatures = { + '\r\n': '', '\u0002': '-', + } + return re.sub('|'.join(map(re.escape, ligatures.keys())), lambda m: ligatures[m.group()], text) + + +"""pdf_text dict方案 char级别""" +def txt_spans_extract(pdf_page, spans, pil_img, scale, all_bboxes, all_discarded_blocks): + page_char_count = None + try: + page_char_count = pdf_page.get_textpage().count_chars() + except Exception as exc: + logger.debug(f"Failed to get page char count before txt extraction: {exc}") + + if page_char_count is not None and page_char_count > MAX_NATIVE_TEXT_CHARS_PER_PAGE: + logger.info( + "Fallback to post-OCR in txt_spans_extract due to high char count: " + f"count_chars={page_char_count}" + ) + need_ocr_spans = [ + span for span in spans if span.get('type') == ContentType.TEXT + ] + return _prepare_post_ocr_spans(need_ocr_spans, spans, pil_img, scale) + + page_dict = get_page(pdf_page) + + page_all_chars = [] + page_all_lines = [] + for block in page_dict['blocks']: + for line in block['lines']: + rotation_degrees = math.degrees(line['rotation']) + # 旋转角度不为0, 90, 180, 270的行,直接跳过(rotation_degrees的值可能不为整数) + if not any(abs(rotation_degrees - angle) < 0.1 for angle in [0, 90, 180, 270]): + continue + page_all_lines.append(line) + for span in line['spans']: + for char in span['chars']: + page_all_chars.append(char) + + # 计算所有sapn的高度的中位数 + span_height_list = [] + for span in spans: + if span['type'] in [ContentType.TEXT]: + span_height = span['bbox'][3] - span['bbox'][1] + span['height'] = span_height + span['width'] = span['bbox'][2] - span['bbox'][0] + span_height_list.append(span_height) + if len(span_height_list) == 0: + return spans + else: + median_span_height = statistics.median(span_height_list) + + useful_spans = [] + unuseful_spans = [] + # 纵向span的两个特征:1. 高度超过多个line 2. 高宽比超过某个值 + vertical_spans = [] + for span in spans: + if span['type'] in [ContentType.TEXT]: + for block in all_bboxes + all_discarded_blocks: + if block[7] in [BlockType.IMAGE_BODY, BlockType.TABLE_BODY, BlockType.INTERLINE_EQUATION]: + continue + if calculate_overlap_area_in_bbox1_area_ratio(span['bbox'], block[0:4]) > 0.5: + if span['height'] > median_span_height * 2.3 and span['height'] > span['width'] * 2.3: + vertical_spans.append(span) + elif block in all_bboxes: + useful_spans.append(span) + else: + unuseful_spans.append(span) + break + + """垂直的span框直接用line进行填充""" + if len(vertical_spans) > 0: + for pdfium_line in page_all_lines: + for span in vertical_spans: + if calculate_overlap_area_in_bbox1_area_ratio(pdfium_line['bbox'].bbox, span['bbox']) > 0.5: + for pdfium_span in pdfium_line['spans']: + span['content'] += pdfium_span['text'] + break + + for span in vertical_spans: + if len(span['content']) == 0: + spans.remove(span) + + """水平的span框先用char填充,再用ocr填充空的span框""" + new_spans = [] + + for span in useful_spans + unuseful_spans: + if span['type'] in [ContentType.TEXT]: + span['chars'] = [] + new_spans.append(span) + + need_ocr_spans = fill_char_in_spans(new_spans, page_all_chars, median_span_height) + + return _prepare_post_ocr_spans(need_ocr_spans, spans, pil_img, scale) + + +def _prepare_post_ocr_spans(need_ocr_spans, spans, pil_img, scale): + if len(need_ocr_spans) == 0: + return spans + + for span in need_ocr_spans: + # 对span的bbox截图再ocr + span_pil_img = get_crop_img(span['bbox'], pil_img, scale) + span_img = cv2.cvtColor(np.array(span_pil_img), cv2.COLOR_RGB2BGR) + # 计算span的对比度,低于0.17的span不进行ocr + if calculate_contrast(span_img, img_mode='bgr') <= 0.17: + if span in spans: + spans.remove(span) + continue + + span['content'] = '' + span['score'] = 1.0 + span['np_img'] = span_img + + return spans + + +def fill_char_in_spans(spans, all_chars, median_span_height): + # 简单从上到下排一下序 + spans = sorted(spans, key=lambda x: x['bbox'][1]) + + grid_size = median_span_height + grid = collections.defaultdict(list) + for i, span in enumerate(spans): + start_cell = int(span['bbox'][1] / grid_size) + end_cell = int(span['bbox'][3] / grid_size) + for cell_idx in range(start_cell, end_cell + 1): + grid[cell_idx].append(i) + + for char in all_chars: + char_center_y = (char['bbox'][1] + char['bbox'][3]) / 2 + cell_idx = int(char_center_y / grid_size) + + candidate_span_indices = grid.get(cell_idx, []) + + for span_idx in candidate_span_indices: + span = spans[span_idx] + if calculate_char_in_span(char['bbox'], span['bbox'], char['char']): + span['chars'].append(char) + break + + need_ocr_spans = [] + for span in spans: + chars_to_content(span) + # 有的span中虽然没有字但有一两个空的占位符,用宽高和content长度过滤 + if len(span['content']) * span['height'] < span['width'] * 0.5: + # logger.info(f"maybe empty span: {len(span['content'])}, {span['height']}, {span['width']}") + need_ocr_spans.append(span) + del span['height'], span['width'] + return need_ocr_spans + + +LINE_STOP_FLAG = ('.', '!', '?', '。', '!', '?', ')', ')', '"', '”', ':', ':', ';', ';', ']', '】', '}', '}', '>', '》', '、', ',', ',', '-', '—', '–',) +LINE_START_FLAG = ('(', '(', '"', '“', '【', '{', '《', '<', '「', '『', '【', '[',) + +Span_Height_Ratio = 0.33 # 字符的中轴和span的中轴高度差不能超过1/3span高度 +def calculate_char_in_span(char_bbox, span_bbox, char, span_height_ratio=Span_Height_Ratio): + char_center_x = (char_bbox[0] + char_bbox[2]) / 2 + char_center_y = (char_bbox[1] + char_bbox[3]) / 2 + span_center_y = (span_bbox[1] + span_bbox[3]) / 2 + span_height = span_bbox[3] - span_bbox[1] + + if ( + span_bbox[0] < char_center_x < span_bbox[2] + and span_bbox[1] < char_center_y < span_bbox[3] + and abs(char_center_y - span_center_y) < span_height * span_height_ratio # 字符的中轴和span的中轴高度差不能超过Span_Height_Ratio + ): + return True + else: + # 如果char是LINE_STOP_FLAG,就不用中心点判定,换一种方案(左边界在span区域内,高度判定和之前逻辑一致) + # 主要是给结尾符号一个进入span的机会,这个char还应该离span右边界较近 + if char in LINE_STOP_FLAG: + if ( + (span_bbox[2] - span_height) < char_bbox[0] < span_bbox[2] + and char_center_x > span_bbox[0] + and span_bbox[1] < char_center_y < span_bbox[3] + and abs(char_center_y - span_center_y) < span_height * span_height_ratio + ): + return True + elif char in LINE_START_FLAG: + if ( + span_bbox[0] < char_bbox[2] < (span_bbox[0] + span_height) + and char_center_x < span_bbox[2] + and span_bbox[1] < char_center_y < span_bbox[3] + and abs(char_center_y - span_center_y) < span_height * span_height_ratio + ): + return True + else: + return False + + +def chars_to_content(span): + # 检查span中的char是否为空 + if len(span['chars']) != 0: + # 给chars按char_idx排序 + chars = sorted(span['chars'], key=lambda x: x['char_idx']) + + # Calculate the width of each character + char_widths = [char['bbox'][2] - char['bbox'][0] for char in chars] + # Calculate the median width + median_width = statistics.median(char_widths) + + parts = [] + for idx, char1 in enumerate(chars): + char2 = chars[idx + 1] if idx + 1 < len(chars) else None + + # 如果下一个char的x0和上一个char的x1距离超过0.25个字符宽度,则需要在中间插入一个空格 + if ( + char2 + and char2['bbox'][0] - char1['bbox'][2] > median_width * 0.25 + and char1['char'] != ' ' + and char2['char'] != ' ' + ): + parts.append(char1['char']) + parts.append(' ') + else: + parts.append(char1['char']) + + content = ''.join(parts) + content = __replace_unicode(content) + content = __replace_ligatures(content) + content = __replace_ligatures(content) + span['content'] = content.strip() + + del span['chars'] + + +def calculate_contrast(img, img_mode) -> float: + """ + 计算给定图像的对比度。 + :param img: 图像,类型为numpy.ndarray + :Param img_mode = 图像的色彩通道,'rgb' 或 'bgr' + :return: 图像的对比度值 + """ + if img_mode == 'rgb': + # 将RGB图像转换为灰度图 + gray_img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) + elif img_mode == 'bgr': + # 将BGR图像转换为灰度图 + gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) + else: + raise ValueError("Invalid image mode. Please provide 'rgb' or 'bgr'.") + + # 计算均值和标准差 + mean_value = np.mean(gray_img) + std_dev = np.std(gray_img) + # 对比度定义为标准差除以平均值(加上小常数避免除零错误) + contrast = std_dev / (mean_value + 1e-6) + # logger.debug(f"contrast: {contrast}") + return round(contrast, 2) diff --git a/mineru/utils/table_merge.py b/mineru/utils/table_merge.py new file mode 100644 index 000000000..07bc9d67c --- /dev/null +++ b/mineru/utils/table_merge.py @@ -0,0 +1,904 @@ +# Copyright (c) Opendatalab. All rights reserved. +from copy import deepcopy +from dataclasses import dataclass +from typing import Any + +from bs4 import BeautifulSoup + +from mineru.backend.vlm.vlm_middle_json_mkcontent import merge_para_with_text +from mineru.utils.char_utils import full_to_half +from mineru.utils.enum_class import BlockType, SplitFlag + + +CONTINUATION_END_MARKERS = [ + "(续)", + "(续表)", + "(续上表)", + "(continued)", + "(cont.)", + "(cont’d)", + "(…continued)", + "续表", +] + +CONTINUATION_INLINE_MARKERS = [ + "(continued)", +] + +MAX_HEADER_ROWS = 5 + + +@dataclass +class RowMetrics: + row_idx: int + effective_cols: int + actual_cols: int + visual_cols: int + + +@dataclass +class RowSignature: + effective_cols: int + colspans: tuple[int, ...] + rowspans: tuple[int, ...] + normalized_texts: tuple[str, ...] + display_texts: tuple[str, ...] + + @property + def cell_count(self) -> int: + return len(self.colspans) + + +@dataclass +class RowScanResult: + row_effective_cols: list[int] + row_metrics: list[RowMetrics] + total_cols: int + last_nonempty_row_metrics: RowMetrics | None + tail_occupied: dict[int, set[int]] + + +@dataclass +class TableMergeState: + owner_block: dict[str, Any] + body_span: dict[str, Any] + soup: Any + tbody: Any + rows: list[Any] + total_cols: int + front_header_info: list[RowSignature] + front_first_data_row_metrics: dict[int, RowMetrics] + last_data_row_metrics: RowMetrics | None + row_effective_cols: list[int] + tail_occupied: dict[int, set[int]] + dirty: bool = False + + +def _normalize_cell_text(cell) -> str: + return "".join(full_to_half(cell.get_text()).split()) + + +def _display_cell_text(cell) -> str: + return full_to_half(cell.get_text().strip()) + + +def _scan_rows(rows, initial_occupied: dict[int, set[int]] | None = None, start_row_idx: int = 0) -> RowScanResult: + """Scan rows once and cache effective-column metrics. + + initial_occupied stores future-row occupancy relative to the first scanned row + and preserves rowspans that cross a merge boundary. + """ + occupied: dict[int, dict[int, bool]] = {} + max_cols = 0 + + for row_offset, cols in (initial_occupied or {}).items(): + if not cols: + continue + occupied[row_offset] = {col: True for col in cols} + max_cols = max(max_cols, max(cols) + 1) + + row_effective_cols: list[int] = [] + row_metrics: list[RowMetrics] = [] + last_nonempty_row_metrics: RowMetrics | None = None + + for local_idx, row in enumerate(rows): + occupied_row = occupied.setdefault(local_idx, {}) + col_idx = 0 + cells = row.find_all(["td", "th"]) + actual_cols = 0 + + for cell in cells: + while col_idx in occupied_row: + col_idx += 1 + + colspan = int(cell.get("colspan", 1)) + rowspan = int(cell.get("rowspan", 1)) + actual_cols += colspan + + for row_offset in range(rowspan): + target_idx = local_idx + row_offset + occupied_target = occupied.setdefault(target_idx, {}) + for col in range(col_idx, col_idx + colspan): + occupied_target[col] = True + + col_idx += colspan + max_cols = max(max_cols, col_idx) + + effective_cols = max(occupied_row.keys()) + 1 if occupied_row else 0 + row_effective_cols.append(effective_cols) + max_cols = max(max_cols, effective_cols) + + metrics = RowMetrics( + row_idx=start_row_idx + local_idx, + effective_cols=effective_cols, + actual_cols=actual_cols, + visual_cols=len(cells), + ) + row_metrics.append(metrics) + if cells: + last_nonempty_row_metrics = metrics + + tail_occupied = { + row_idx - len(rows): set(cols.keys()) + for row_idx, cols in occupied.items() + if row_idx >= len(rows) and cols + } + + return RowScanResult( + row_effective_cols=row_effective_cols, + row_metrics=row_metrics, + total_cols=max_cols, + last_nonempty_row_metrics=last_nonempty_row_metrics, + tail_occupied=tail_occupied, + ) + + +def _build_row_signature(row, effective_cols: int) -> RowSignature: + cells = row.find_all(["td", "th"]) + return RowSignature( + effective_cols=effective_cols, + colspans=tuple(int(cell.get("colspan", 1)) for cell in cells), + rowspans=tuple(int(cell.get("rowspan", 1)) for cell in cells), + normalized_texts=tuple(_normalize_cell_text(cell) for cell in cells), + display_texts=tuple(_display_cell_text(cell) for cell in cells), + ) + + +def _build_front_cache(rows, max_header_rows: int = MAX_HEADER_ROWS) -> tuple[list[RowSignature], dict[int, RowMetrics]]: + front_limit = min(len(rows), max_header_rows + 1) + front_rows = rows[:front_limit] + front_scan = _scan_rows(front_rows) + + front_header_info = [ + _build_row_signature(front_rows[idx], front_scan.row_effective_cols[idx]) + for idx in range(min(len(front_rows), max_header_rows)) + ] + front_first_data_row_metrics = { + idx: metrics for idx, metrics in enumerate(front_scan.row_metrics) + } + return front_header_info, front_first_data_row_metrics + + +def _find_table_body_span(table_block): + for block in table_block["blocks"]: + if block["type"] == BlockType.TABLE_BODY and block["lines"] and block["lines"][0]["spans"]: + return block["lines"][0]["spans"][0] + return None + + +def _refresh_table_state_metrics(state: TableMergeState) -> None: + scan = _scan_rows(state.rows) + state.row_effective_cols = scan.row_effective_cols + state.total_cols = scan.total_cols + state.last_data_row_metrics = scan.last_nonempty_row_metrics + state.tail_occupied = scan.tail_occupied + state.front_header_info, state.front_first_data_row_metrics = _build_front_cache(state.rows) + + +def build_table_state_from_html( + html: str, + max_header_rows: int = MAX_HEADER_ROWS, +) -> TableMergeState | None: + """从原始 HTML 构建 TableMergeState,不依赖 MinerU block 结构。 + + 供外部工具(如 mineru-vl-utils)调用,用于跨页表格结构检测。 + 返回的 state 仅可用于 can_merge_by_structure(),不可传入 can_merge_tables()。 + """ + if not html: + return None + + soup = BeautifulSoup(html, "html.parser") + tbody = soup.find("tbody") or soup.find("table") + rows = soup.find_all("tr") + if not rows: + return None + + scan = _scan_rows(rows) + front_header_info, front_first_data_row_metrics = _build_front_cache(rows, max_header_rows=max_header_rows) + + return TableMergeState( + owner_block={}, + body_span={}, + soup=soup, + tbody=tbody, + rows=rows, + total_cols=scan.total_cols, + front_header_info=front_header_info, + front_first_data_row_metrics=front_first_data_row_metrics, + last_data_row_metrics=scan.last_nonempty_row_metrics, + row_effective_cols=scan.row_effective_cols, + tail_occupied=scan.tail_occupied, + ) + + +def _build_table_state(table_block, max_header_rows: int = MAX_HEADER_ROWS) -> TableMergeState | None: + body_span = _find_table_body_span(table_block) + if body_span is None: + return None + + html = body_span.get("html", "") + if not html: + return None + + soup = BeautifulSoup(html, "html.parser") + tbody = soup.find("tbody") or soup.find("table") + rows = soup.find_all("tr") + scan = _scan_rows(rows) + front_header_info, front_first_data_row_metrics = _build_front_cache(rows, max_header_rows=max_header_rows) + + return TableMergeState( + owner_block=table_block, + body_span=body_span, + soup=soup, + tbody=tbody, + rows=rows, + total_cols=scan.total_cols, + front_header_info=front_header_info, + front_first_data_row_metrics=front_first_data_row_metrics, + last_data_row_metrics=scan.last_nonempty_row_metrics, + row_effective_cols=scan.row_effective_cols, + tail_occupied=scan.tail_occupied, + ) + + +def _get_or_create_table_state( + table_block, + state_cache: dict[int, TableMergeState], + max_header_rows: int = MAX_HEADER_ROWS, +) -> TableMergeState | None: + cache_key = id(table_block) + state = state_cache.get(cache_key) + if state is not None: + return state + + state = _build_table_state(table_block, max_header_rows=max_header_rows) + if state is not None: + state_cache[cache_key] = state + return state + + +def _serialize_table_state_html(state: TableMergeState) -> None: + state.body_span["html"] = str(state.soup) + state.dirty = False + + +def calculate_table_total_columns(soup): + """计算表格的总列数,通过分析整个表格结构来处理rowspan和colspan.""" + rows = soup.find_all("tr") + return _scan_rows(rows).total_cols if rows else 0 + + +def build_table_occupied_matrix(soup): + """构建表格的占用矩阵,返回每行的有效列数.""" + rows = soup.find_all("tr") + if not rows: + return {} + + scan = _scan_rows(rows) + return { + row_idx: effective_cols + for row_idx, effective_cols in enumerate(scan.row_effective_cols) + } + + +def calculate_row_effective_columns(soup, row_idx): + """计算指定行的有效列数(考虑rowspan占用).""" + row_effective_cols = build_table_occupied_matrix(soup) + return row_effective_cols.get(row_idx, 0) + + +def calculate_row_columns(row): + """计算表格行的实际列数,考虑colspan属性.""" + cells = row.find_all(["td", "th"]) + column_count = 0 + + for cell in cells: + colspan = int(cell.get("colspan", 1)) + column_count += colspan + + return column_count + + +def calculate_visual_columns(row): + """计算表格行的视觉列数(实际td/th单元格数量,不考虑colspan).""" + cells = row.find_all(["td", "th"]) + return len(cells) + + +def _scan_row_visual_sources(rows, target_row_index: int) -> tuple[dict[int, tuple[int, int]], int]: + """扫描到目标行,记录每个视觉列当前由哪个源单元格占据。""" + if target_row_index < 0: + target_row_index += len(rows) + if target_row_index < 0 or target_row_index >= len(rows): + return {}, 0 + + # occupied[row_idx][col_idx] = (source_row_idx, source_cell_idx) + occupied: dict[int, dict[int, tuple[int, int]]] = {} + total_cols = 0 + + for r_idx in range(target_row_index + 1): + occupied_row = occupied.setdefault(r_idx, {}) + col_idx = 0 + cells = rows[r_idx].find_all(["td", "th"]) + for cell_idx, cell in enumerate(cells): + while col_idx in occupied_row: + col_idx += 1 + colspan = int(cell.get("colspan", 1)) + rowspan = int(cell.get("rowspan", 1)) + source_marker = (r_idx, cell_idx) + for ro in range(rowspan): + target_idx = r_idx + ro + occ = occupied.setdefault(target_idx, {}) + for c in range(col_idx, col_idx + colspan): + occ[c] = source_marker + col_idx += colspan + total_cols = max(total_cols, col_idx) + + return occupied.get(target_row_index, {}), total_cols + + +def build_visual_col_mapping(rows, target_row_index: int) -> list[int]: + """构建目标行中每个显式 / 元素到视觉列位置的映射。 + + 该映射会正确考虑从前序行继承而来的 rowspan 占位。 + """ + if target_row_index < 0: + target_row_index += len(rows) + if target_row_index < 0 or target_row_index >= len(rows): + return [] + + target_occupied, _ = _scan_row_visual_sources(rows, target_row_index) + + col_idx = 0 + mapping = [] + target_cells = rows[target_row_index].find_all(["td", "th"]) + for cell in target_cells: + while col_idx in target_occupied and target_occupied[col_idx][0] < target_row_index: + col_idx += 1 + mapping.append(col_idx) + colspan = int(cell.get("colspan", 1)) + col_idx += colspan + return mapping + + +def calculate_row_rendered_segments(rows, target_row_index: int) -> int: + """计算目标行渲染后的视觉段数。 + + 段数按“渲染出来的单元格块”统计: + - 当前行显式单元格各算一段,不展开 colspan + - 从前序行继承而来的 rowspan 占位也算段 + - 只有连续列且来自同一个源单元格时才算同一段 + """ + target_occupied, total_cols = _scan_row_visual_sources(rows, target_row_index) + if total_cols == 0: + return 0 + + segment_count = 0 + previous_marker: tuple[int, int] | None = None + + for col_idx in range(total_cols): + marker = target_occupied.get(col_idx) + if marker is None: + previous_marker = None + continue + if marker != previous_marker: + segment_count += 1 + previous_marker = marker + + return segment_count + + +def detect_table_headers(state1: TableMergeState, state2: TableMergeState, max_header_rows: int = MAX_HEADER_ROWS): + """检测并比较两个表格的表头,仅扫描前几行.""" + front_rows1 = state1.front_header_info[:max_header_rows] + front_rows2 = state2.front_header_info[:max_header_rows] + + min_rows = min(len(front_rows1), len(front_rows2), max_header_rows) + header_rows = 0 + headers_match = True + header_texts = [] + + for row_idx in range(min_rows): + row1 = front_rows1[row_idx] + row2 = front_rows2[row_idx] + structure_match = ( + row1.cell_count == row2.cell_count + and row1.effective_cols == row2.effective_cols + and row1.colspans == row2.colspans + and row1.rowspans == row2.rowspans + and row1.normalized_texts == row2.normalized_texts + ) + + if structure_match: + header_rows += 1 + header_texts.append(list(row1.display_texts)) + else: + headers_match = header_rows > 0 + break + + if header_rows == 0: + header_rows, headers_match, header_texts = _detect_table_headers_visual( + state1, state2, max_header_rows=max_header_rows + ) + + return header_rows, headers_match, header_texts + + +def _detect_table_headers_visual( + state1: TableMergeState, + state2: TableMergeState, + max_header_rows: int = MAX_HEADER_ROWS, +): + """基于视觉一致性检测表头(只比较文本内容,忽略colspan/rowspan差异).""" + front_rows1 = state1.front_header_info[:max_header_rows] + front_rows2 = state2.front_header_info[:max_header_rows] + + min_rows = min(len(front_rows1), len(front_rows2), max_header_rows) + header_rows = 0 + headers_match = True + header_texts = [] + + for row_idx in range(min_rows): + row1 = front_rows1[row_idx] + row2 = front_rows2[row_idx] + if row1.normalized_texts == row2.normalized_texts and row1.effective_cols == row2.effective_cols: + header_rows += 1 + header_texts.append(list(row1.display_texts)) + else: + headers_match = header_rows > 0 + break + + if header_rows == 0: + headers_match = False + + return header_rows, headers_match, header_texts + + +def can_merge_by_structure( + current_state: TableMergeState, + previous_state: TableMergeState, + current_bbox: tuple[float, float, float, float] | None = None, + previous_bbox: tuple[float, float, float, float] | None = None, +) -> bool: + """仅基于表格结构判断是否可合并(不检查 caption/footnote)。 + + 供外部工具调用,忽略 caption 和 footnote 检查。 + """ + if current_bbox is not None and previous_bbox is not None: + x0_t1, _, x1_t1, _ = current_bbox + x0_t2, _, x1_t2, _ = previous_bbox + table1_width = x1_t1 - x0_t1 + table2_width = x1_t2 - x0_t2 + if table1_width > 0 and table2_width > 0: + if abs(table1_width - table2_width) / min(table1_width, table2_width) >= 0.1: + return False + + if previous_state.total_cols == current_state.total_cols: + return True + + return check_rows_match(previous_state, current_state) + + +def can_merge_tables(current_state: TableMergeState, previous_state: TableMergeState): + """判断两个表格是否可以合并.""" + current_table_block = current_state.owner_block + previous_table_block = previous_state.owner_block + + if "blocks" not in previous_table_block or "blocks" not in current_table_block: + raise ValueError( + "can_merge_tables() requires owner_block with 'blocks' key. " + "For HTML-only states from build_table_state_from_html(), use can_merge_by_structure() instead." + ) + + footnote_count = sum( + 1 for block in previous_table_block["blocks"] if block["type"] == BlockType.TABLE_FOOTNOTE + ) + caption_blocks = [ + block for block in current_table_block["blocks"] if block["type"] == BlockType.TABLE_CAPTION + ] + if caption_blocks: + has_continuation_marker = False + for block in caption_blocks: + caption_text = full_to_half(merge_para_with_text(block).strip()).lower() + if ( + any(caption_text.endswith(marker.lower()) for marker in CONTINUATION_END_MARKERS) + or any(marker.lower() in caption_text for marker in CONTINUATION_INLINE_MARKERS) + ): + has_continuation_marker = True + break + + if not has_continuation_marker: + return False + + if footnote_count > 1: + return False + elif footnote_count > 0: + return False + + x0_t1, _, x1_t1, _ = current_table_block["bbox"] + x0_t2, _, x1_t2, _ = previous_table_block["bbox"] + table1_width = x1_t1 - x0_t1 + table2_width = x1_t2 - x0_t2 + + if abs(table1_width - table2_width) / min(table1_width, table2_width) >= 0.1: + return False + + if previous_state.total_cols == current_state.total_cols: + return True + + return check_rows_match(previous_state, current_state) + + +def check_rows_match(previous_state: TableMergeState, current_state: TableMergeState): + """检查表格边界行是否匹配.""" + last_row_metrics = previous_state.last_data_row_metrics + if last_row_metrics is None: + return False + + header_count, _, _ = detect_table_headers(previous_state, current_state) + first_data_row_metrics = current_state.front_first_data_row_metrics.get(header_count) + if first_data_row_metrics is None: + return False + + previous_rendered_segments = calculate_row_rendered_segments(previous_state.rows, last_row_metrics.row_idx) + current_rendered_segments = calculate_row_rendered_segments(current_state.rows, first_data_row_metrics.row_idx) + + return ( + last_row_metrics.effective_cols == first_data_row_metrics.effective_cols + or last_row_metrics.actual_cols == first_data_row_metrics.actual_cols + or previous_rendered_segments == current_rendered_segments + ) + + +def check_row_columns_match(row1, row2): + cells1 = row1.find_all(["td", "th"]) + cells2 = row2.find_all(["td", "th"]) + if len(cells1) != len(cells2): + return False + for cell1, cell2 in zip(cells1, cells2): + colspan1 = int(cell1.get("colspan", 1)) + colspan2 = int(cell2.get("colspan", 1)) + if colspan1 != colspan2: + return False + return True + + +def adjust_table_rows_colspan( + rows, + start_idx, + end_idx, + row_effective_cols, + reference_structure, + reference_visual_cols, + target_cols, + match_reference_row, +): + """调整表格行的colspan属性以匹配目标列数.""" + reference_row_copy = deepcopy(match_reference_row) + + for row_idx in range(start_idx, end_idx): + row = rows[row_idx] + cells = row.find_all(["td", "th"]) + if not cells: + continue + + current_row_effective_cols = row_effective_cols[row_idx] + current_row_cols = calculate_row_columns(row) + + if current_row_effective_cols >= target_cols or current_row_cols >= target_cols: + continue + + if ( + calculate_visual_columns(row) == reference_visual_cols + and check_row_columns_match(row, reference_row_copy) + ): + if len(cells) <= len(reference_structure): + for cell_idx, cell in enumerate(cells): + if cell_idx < len(reference_structure) and reference_structure[cell_idx] > 1: + cell["colspan"] = str(reference_structure[cell_idx]) + else: + cols_diff = target_cols - current_row_effective_cols + if cols_diff > 0: + last_cell = cells[-1] + current_last_span = int(last_cell.get("colspan", 1)) + last_cell["colspan"] = str(current_last_span + cols_diff) + + +def _cell_has_semantic_content(cell) -> bool: + """判断单元格是否仍包含用户可见的语义内容。""" + if cell.get_text(strip=True): + return True + + return ( + cell.find(["img", "svg", "math", "eq", "table", "figure", "object", "embed", "canvas"]) + is not None + ) + + +def _row_has_semantic_content(row) -> bool: + """判断整行是否仍保留未并回的语义内容。""" + return any(_cell_has_semantic_content(cell) for cell in row.find_all(["td", "th"])) + + +def _insert_cell_before_visual_column(rows, target_row_index: int, start_vcol: int, cell) -> None: + """将单元格插入到目标行中对应视觉列之前。""" + target_row = rows[target_row_index] + target_cells = target_row.find_all(["td", "th"]) + target_vcol_map = build_visual_col_mapping(rows, target_row_index) + + for idx, target_start_vcol in enumerate(target_vcol_map): + if target_start_vcol > start_vcol: + target_cells[idx].insert_before(cell) + return + + target_row.append(cell) + + +def _carry_rowspan_structure_to_next_row(rows, row_idx: int) -> None: + """下沉空白结构占位单元格,避免删除当前行后破坏后续列对齐。""" + next_row_idx = row_idx + 1 + if next_row_idx >= len(rows): + return + + current_row = rows[row_idx] + current_cells = current_row.find_all(["td", "th"]) + current_vcol_map = build_visual_col_mapping(rows, row_idx) + carried_cells = [] + + for cell, start_vcol in zip(current_cells, current_vcol_map): + rowspan = int(cell.get("rowspan", 1)) + if rowspan <= 1 or _cell_has_semantic_content(cell): + continue + + carried_cell = deepcopy(cell) + new_rowspan = rowspan - 1 + if new_rowspan > 1: + carried_cell["rowspan"] = str(new_rowspan) + else: + carried_cell.attrs.pop("rowspan", None) + carried_cells.append((start_vcol, carried_cell)) + + for start_vcol, carried_cell in sorted(carried_cells, key=lambda item: item[0], reverse=True): + _insert_cell_before_visual_column(rows, next_row_idx, start_vcol, carried_cell) + + +def _apply_cell_merge( + previous_state: TableMergeState, + current_state: TableMergeState, + header_count: int, +) -> None: + """应用 cell_merge 语义合并。 + + 当 cell_merge 中的值为 1 时,将下表第一数据行对应单元格的内容 + 追加到上表最后一行对应单元格中。全部为 1 时删除该数据行, + 混合时清空已合并单元格的内容但保留行。 + + cell_merge 按视觉列索引对齐,通过构建视觉列映射来正确匹配 + 两个表格中可能因 rowspan 而具有不同 元素数量的行。 + """ + cell_merge = current_state.owner_block.get("cell_merge") + if not cell_merge: + return + + rows2 = current_state.rows + if header_count >= len(rows2): + return + if not previous_state.rows: + return + + first_data_row = rows2[header_count] + last_row = previous_state.rows[-1] + + cells1 = last_row.find_all(["td", "th"]) + cells2 = first_data_row.find_all(["td", "th"]) + + # 构建视觉列到单元格索引的映射 + last_row_idx = len(previous_state.rows) - 1 + vcol_map1 = build_visual_col_mapping(previous_state.rows, last_row_idx) + vcol_map2 = build_visual_col_mapping(rows2, header_count) + + # 构建视觉列 -> 单元格索引的反向映射(展开 colspan) + vcol_to_cell1: dict[int, int] = {} + for ci, start_vcol in enumerate(vcol_map1): + colspan = int(cells1[ci].get("colspan", 1)) + for c in range(start_vcol, start_vcol + colspan): + vcol_to_cell1[c] = ci + vcol_to_cell2: dict[int, int] = {} + for ci, start_vcol in enumerate(vcol_map2): + colspan = int(cells2[ci].get("colspan", 1)) + for c in range(start_vcol, start_vcol + colspan): + vcol_to_cell2[c] = ci + + # 按唯一 (src_cell_idx, dst_cell_idx) 对执行一次转移,避免 colspan 重复处理 + transferred_pairs: set[tuple[int, int]] = set() + for vi, merge_flag in enumerate(cell_merge): + if merge_flag == 1: + ci1 = vcol_to_cell1.get(vi) + ci2 = vcol_to_cell2.get(vi) + if ci1 is not None and ci2 is not None: + pair = (ci1, ci2) + if pair not in transferred_pairs: + for child in list(cells2[ci2].children): + cells1[ci1].append(child.extract()) + transferred_pairs.add(pair) + + # 只清空确实成功转移过的源单元格 + cleared_ci2: set[int] = set() + for vi, merge_flag in enumerate(cell_merge): + if merge_flag == 1: + ci1 = vcol_to_cell1.get(vi) + ci2 = vcol_to_cell2.get(vi) + if ci1 is not None and ci2 is not None and ci2 not in cleared_ci2: + cells2[ci2].clear() + cleared_ci2.add(ci2) + + if not _row_has_semantic_content(first_data_row): + _carry_rowspan_structure_to_next_row(rows2, header_count) + first_data_row.extract() + if first_data_row in rows2: + rows2.remove(first_data_row) + + +def perform_table_merge( + previous_state: TableMergeState, + current_state: TableMergeState, + previous_table_block, + wait_merge_table_footnotes, +): + """执行表格合并操作.""" + header_count, _, _ = detect_table_headers(previous_state, current_state) + + rows1 = previous_state.rows + rows2 = current_state.rows + + previous_adjusted = False + + if rows1 and rows2 and header_count < len(rows2): + last_row1 = rows1[-1] + first_data_row2 = rows2[header_count] + table_cols1 = previous_state.total_cols + table_cols2 = current_state.total_cols + + if table_cols1 > table_cols2: + reference_structure = [ + int(cell.get("colspan", 1)) for cell in last_row1.find_all(["td", "th"]) + ] + reference_visual_cols = calculate_visual_columns(last_row1) + adjust_table_rows_colspan( + rows2, + header_count, + len(rows2), + current_state.row_effective_cols, + reference_structure, + reference_visual_cols, + table_cols1, + first_data_row2, + ) + elif table_cols2 > table_cols1: + reference_structure = [ + int(cell.get("colspan", 1)) for cell in first_data_row2.find_all(["td", "th"]) + ] + reference_visual_cols = calculate_visual_columns(first_data_row2) + adjust_table_rows_colspan( + rows1, + 0, + len(rows1), + previous_state.row_effective_cols, + reference_structure, + reference_visual_cols, + table_cols2, + last_row1, + ) + previous_adjusted = True + + if previous_adjusted: + _refresh_table_state_metrics(previous_state) + + _apply_cell_merge(previous_state, current_state, header_count) + + appended_rows = rows2[header_count:] + append_start_idx = len(previous_state.rows) + merged_rows = [] + + if previous_state.tbody and current_state.tbody: + for row in appended_rows: + row.extract() + previous_state.tbody.append(row) + merged_rows.append(row) + + previous_state.rows.extend(merged_rows) + + if merged_rows: + appended_scan = _scan_rows( + merged_rows, + initial_occupied=previous_state.tail_occupied, + start_row_idx=append_start_idx, + ) + previous_state.row_effective_cols.extend(appended_scan.row_effective_cols) + previous_state.total_cols = max(previous_state.total_cols, appended_scan.total_cols) + if appended_scan.last_nonempty_row_metrics is not None: + previous_state.last_data_row_metrics = appended_scan.last_nonempty_row_metrics + previous_state.tail_occupied = appended_scan.tail_occupied + + previous_table_block["blocks"] = [ + block for block in previous_table_block["blocks"] if block["type"] != BlockType.TABLE_FOOTNOTE + ] + for table_footnote in wait_merge_table_footnotes: + temp_table_footnote = table_footnote.copy() + temp_table_footnote[SplitFlag.CROSS_PAGE] = True + previous_table_block["blocks"].append(temp_table_footnote) + + previous_state.dirty = True + + +def merge_table(page_info_list): + """合并跨页表格.""" + state_cache: dict[int, TableMergeState] = {} + merged_away_blocks: set[int] = set() + + for page_idx in range(len(page_info_list) - 1, -1, -1): + if page_idx == 0: + continue + + page_info = page_info_list[page_idx] + previous_page_info = page_info_list[page_idx - 1] + + if not (page_info["para_blocks"] and page_info["para_blocks"][0]["type"] == BlockType.TABLE): + continue + + if not ( + previous_page_info["para_blocks"] + and previous_page_info["para_blocks"][-1]["type"] == BlockType.TABLE + ): + continue + + current_table_block = page_info["para_blocks"][0] + previous_table_block = previous_page_info["para_blocks"][-1] + + current_state = _get_or_create_table_state(current_table_block, state_cache) + previous_state = _get_or_create_table_state(previous_table_block, state_cache) + if current_state is None or previous_state is None: + continue + + wait_merge_table_footnotes = [ + block for block in current_table_block["blocks"] if block["type"] == BlockType.TABLE_FOOTNOTE + ] + + if not can_merge_tables(current_state, previous_state): + continue + + perform_table_merge( + previous_state, + current_state, + previous_table_block, + wait_merge_table_footnotes, + ) + + merged_away_blocks.add(id(current_table_block)) + for block in current_table_block["blocks"]: + block["lines"] = [] + block[SplitFlag.LINES_DELETED] = True + + for state in state_cache.values(): + if state.dirty and id(state.owner_block) not in merged_away_blocks: + _serialize_table_state_html(state) diff --git a/mineru/utils/visual_magic_model_utils.py b/mineru/utils/visual_magic_model_utils.py new file mode 100644 index 000000000..20c6fcd3d --- /dev/null +++ b/mineru/utils/visual_magic_model_utils.py @@ -0,0 +1,317 @@ +# Copyright (c) Opendatalab. All rights reserved. +import re + +from mineru.utils.boxbase import ( + bbox_center_distance, + bbox_distance, + calculate_overlap_area_in_bbox1_area_ratio, +) +from mineru.utils.enum_class import BlockType + + +IMAGE_BLOCK_BODY = "image_block_body" +GENERIC_CHILD_TYPES = (BlockType.CAPTION, BlockType.FOOTNOTE) +VISUAL_MAIN_TYPES = { + BlockType.IMAGE_BODY: BlockType.IMAGE, + IMAGE_BLOCK_BODY: BlockType.IMAGE, + BlockType.TABLE_BODY: BlockType.TABLE, + BlockType.CHART_BODY: BlockType.CHART, + BlockType.CODE_BODY: BlockType.CODE, +} +VISUAL_TYPE_MAPPING = { + BlockType.IMAGE: { + "body": BlockType.IMAGE_BODY, + "caption": BlockType.IMAGE_CAPTION, + "footnote": BlockType.IMAGE_FOOTNOTE, + }, + BlockType.TABLE: { + "body": BlockType.TABLE_BODY, + "caption": BlockType.TABLE_CAPTION, + "footnote": BlockType.TABLE_FOOTNOTE, + }, + BlockType.CHART: { + "body": BlockType.CHART_BODY, + "caption": BlockType.CHART_CAPTION, + "footnote": BlockType.CHART_FOOTNOTE, + }, + BlockType.CODE: { + "body": BlockType.CODE_BODY, + "caption": BlockType.CODE_CAPTION, + "footnote": BlockType.CODE_FOOTNOTE, + }, +} + + +def isolated_formula_clean(txt): + latex = txt[:] + if latex.startswith("\\["): + latex = latex[2:] + if latex.endswith("\\]"): + latex = latex[:-2] + latex = latex.strip() + return latex + + +def code_content_clean(content): + """清理代码内容,移除Markdown代码块的开始和结束标记""" + if not content: + return "" + + lines = content.splitlines() + start_idx = 0 + end_idx = len(lines) + + if lines and lines[0].startswith("```"): + start_idx = 1 + + if lines and end_idx > start_idx and lines[end_idx - 1].strip() == "```": + end_idx -= 1 + + if start_idx < end_idx: + return "\n".join(lines[start_idx:end_idx]).strip() + return "" + + +def clean_content(content): + if content and content.count("\\[") == content.count("\\]") and content.count("\\[") > 0: + def replace_pattern(match): + inner_content = match.group(1) + return f"[{inner_content}]" + + pattern = r"\\\[(.*?)\\\]" + content = re.sub(pattern, replace_pattern, content) + + return content + + +def regroup_visual_blocks(blocks): + ordered_blocks = sorted(blocks, key=lambda x: x["index"]) + absorbed_member_indices, sub_images_by_index = absorb_image_block_members(ordered_blocks) + effective_blocks = [ + block for block in ordered_blocks if block["index"] not in absorbed_member_indices + ] + position_by_index = { + block["index"]: pos for pos, block in enumerate(effective_blocks) + } + main_blocks = [ + block for block in effective_blocks if block["type"] in VISUAL_MAIN_TYPES + ] + child_blocks = [ + block for block in effective_blocks if block["type"] in GENERIC_CHILD_TYPES + ] + + grouped_children = { + block["index"]: {"captions": [], "footnotes": []} for block in main_blocks + } + unmatched_child_blocks = [] + + for main_block in main_blocks: + if main_block["index"] in sub_images_by_index: + main_block["sub_images"] = sub_images_by_index[main_block["index"]] + + for child_block in child_blocks: + parent_block = find_best_visual_parent( + child_block, + main_blocks, + effective_blocks, + position_by_index, + ) + if parent_block is None: + unmatched_child_blocks.append(child_block) + continue + + child_kind = child_kind_from_type(child_block["type"]) + grouped_children[parent_block["index"]][f"{child_kind}s"].append(child_block) + + grouped_blocks = { + BlockType.IMAGE: [], + BlockType.TABLE: [], + BlockType.CHART: [], + BlockType.CODE: [], + } + + for main_block in main_blocks: + visual_type = VISUAL_MAIN_TYPES[main_block["type"]] + mapping = VISUAL_TYPE_MAPPING[visual_type] + body_block = dict(main_block) + body_block["type"] = mapping["body"] + body_block.pop("sub_images", None) + body_block.pop("sub_type", None) + + captions = [] + for caption in sorted( + grouped_children[main_block["index"]]["captions"], + key=lambda x: x["index"], + ): + child_block = dict(caption) + child_block["type"] = mapping["caption"] + captions.append(child_block) + + footnotes = [] + for footnote in sorted( + grouped_children[main_block["index"]]["footnotes"], + key=lambda x: x["index"], + ): + child_block = dict(footnote) + child_block["type"] = mapping["footnote"] + footnotes.append(child_block) + + two_layer_block = { + "type": visual_type, + "bbox": body_block["bbox"], + "blocks": [body_block, *captions, *footnotes], + "index": body_block["index"], + } + if visual_type in [BlockType.IMAGE, BlockType.CHART] and main_block.get("sub_type"): + two_layer_block["sub_type"] = main_block["sub_type"] + if visual_type == BlockType.IMAGE and main_block.get("sub_images"): + two_layer_block["sub_images"] = main_block["sub_images"] + if visual_type == BlockType.TABLE and main_block.get("cell_merge"): + two_layer_block["cell_merge"] = main_block["cell_merge"] + two_layer_block["blocks"].sort(key=lambda x: x["index"]) + + grouped_blocks[visual_type].append(two_layer_block) + + for blocks_of_type in grouped_blocks.values(): + blocks_of_type.sort(key=lambda x: x["index"]) + + return grouped_blocks, unmatched_child_blocks + + +def absorb_image_block_members(blocks): + image_block_bodies = [ + block for block in blocks if block["type"] == IMAGE_BLOCK_BODY + ] + member_candidates = [ + block + for block in blocks + if block["type"] in [BlockType.IMAGE_BODY, BlockType.CHART_BODY] + ] + + assignments = {} + for member in member_candidates: + best_key = None + best_parent_index = None + for image_block in image_block_bodies: + overlap_ratio = calculate_overlap_area_in_bbox1_area_ratio( + member["bbox"], + image_block["bbox"], + ) + if overlap_ratio < 0.9: + continue + + candidate_key = ( + -overlap_ratio, + bbox_area(image_block["bbox"]), + image_block["index"], + ) + if best_key is None or candidate_key < best_key: + best_key = candidate_key + best_parent_index = image_block["index"] + + if best_parent_index is not None: + assignments[member["index"]] = best_parent_index + + absorbed_member_indices = set() + sub_images_by_index = {} + for image_block in image_block_bodies: + members = [ + member + for member in member_candidates + if assignments.get(member["index"]) == image_block["index"] + ] + if not members: + continue + + members.sort(key=lambda x: x["index"]) + absorbed_member_indices.update(member["index"] for member in members) + sub_images_by_index[image_block["index"]] = [ + { + "type": child_visual_type(member["type"]), + "bbox": relative_bbox(member["bbox"], image_block["bbox"]), + } + for member in members + ] + + return absorbed_member_indices, sub_images_by_index + + +def find_best_visual_parent(child_block, main_blocks, ordered_blocks, position_by_index): + best_parent = None + best_key = None + + for main_block in main_blocks: + if not is_visual_neighbor( + child_block, + main_block, + ordered_blocks, + position_by_index, + ): + continue + + candidate_key = ( + bbox_distance(child_block["bbox"], main_block["bbox"]), + abs(child_block["index"] - main_block["index"]), + bbox_center_distance(child_block["bbox"], main_block["bbox"]), + main_block["index"], + ) + if best_key is None or candidate_key < best_key: + best_key = candidate_key + best_parent = main_block + + return best_parent + + +def is_visual_neighbor(child_block, main_block, ordered_blocks, position_by_index): + child_type = child_block["type"] + if child_type == BlockType.FOOTNOTE and child_block["index"] < main_block["index"]: + return False + + if child_type == BlockType.CAPTION: + allowed_between_types = {BlockType.CAPTION} + else: + allowed_between_types = set(GENERIC_CHILD_TYPES) + + child_pos = position_by_index[child_block["index"]] + main_pos = position_by_index[main_block["index"]] + start_pos = min(child_pos, main_pos) + 1 + end_pos = max(child_pos, main_pos) + + for pos in range(start_pos, end_pos): + between_block = ordered_blocks[pos] + if between_block["type"] not in allowed_between_types: + return False + + return True + + +def child_kind_from_type(block_type): + if block_type == BlockType.CAPTION: + return "caption" + return "footnote" + + +def child_visual_type(block_type): + if block_type == BlockType.CHART_BODY: + return BlockType.CHART + return BlockType.IMAGE + + +def bbox_area(bbox): + return max(0, bbox[2] - bbox[0]) * max(0, bbox[3] - bbox[1]) + + +def relative_bbox(child_bbox, parent_bbox): + parent_x0, parent_y0, parent_x1, parent_y1 = parent_bbox + parent_w = max(parent_x1 - parent_x0, 1) + parent_h = max(parent_y1 - parent_y0, 1) + return [ + clamp_and_round((child_bbox[0] - parent_x0) / parent_w), + clamp_and_round((child_bbox[1] - parent_y0) / parent_h), + clamp_and_round((child_bbox[2] - parent_x0) / parent_w), + clamp_and_round((child_bbox[3] - parent_y0) / parent_h), + ] + + +def clamp_and_round(value): + return round(min(max(value, 0.0), 1.0), 3) diff --git a/mineru/version.py b/mineru/version.py new file mode 100644 index 000000000..f5f41e567 --- /dev/null +++ b/mineru/version.py @@ -0,0 +1 @@ +__version__ = "3.1.0" diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 000000000..e192048e2 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,158 @@ +site_name: MinerU +site_url: https://opendatalab.github.io/MinerU +repo_name: opendatalab/MinerU +repo_url: https://github.com/opendatalab/MinerU + +theme: + icon: + repo: fontawesome/brands/github + name: material + palette: + # Palette toggle for automatic mode + - media: "(prefers-color-scheme)" + scheme: default + primary: black + toggle: + icon: material/brightness-auto + name: Switch to light mode + + # Palette toggle for light mode + - media: "(prefers-color-scheme: light)" + scheme: default + primary: black + toggle: + icon: material/brightness-7 + name: Switch to dark mode + + # Palette toggle for dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: black + toggle: + icon: material/brightness-4 + name: Switch to system preference + logo: images/logo.png + favicon: images/logo.png + features: + - content.tabs.link + - content.code.annotate + - content.code.copy + - navigation.expand + - navigation.footer + - navigation.tabs + - navigation.sections + - navigation.path + - navigation.indexes + - navigation.top + - navigation.tracking + - search.suggest + - toc.follow + - toc.integrate + +extra: + analytics: + provider: google + property: G-44K480CC48 + social: + - icon: fontawesome/brands/github + link: https://github.com/opendatalab/MinerU + name: GitHub + - icon: fontawesome/brands/x-twitter + link: https://x.com/OpenDataLab_AI + name: X-Twitter + - icon: fontawesome/brands/discord + link: https://discord.gg/Tdedn9GTXq + name: Discord + - icon: fontawesome/brands/weixin + link: https://mineru.net/community-portal/?aliasId=3c430f94 + name: WeChat + - icon: material/email + link: mailto:OpenDataLab@pjlab.org.cn + name: E-mail + +copyright: © 2024 - 2025 MinerU. All Rights Reserved. + +nav: + - Home: + - "MinerU": index.md + - Quick Start: + - Quick Start: quick_start/index.md + - Extension Modules: quick_start/extension_modules.md + - Docker Deployment: quick_start/docker_deployment.md + - Usage: + - Usage: usage/index.md + - Quick Usage: usage/quick_usage.md + - Model Source: usage/model_source.md + - CLI Tools: usage/cli_tools.md + - Advanced CLI Parameters: usage/advanced_cli_parameters.md + - Reference: + - Reference: reference/index.md + - Output File Format: reference/output_files.md + - Changelog: reference/changelog.md + - FAQ: + - FAQ: faq/index.md + - Demo: + - Demo: demo/index.md + - Quick Start: + - Quick Start: quick_start/index.md + - Extension Modules: quick_start/extension_modules.md + - Docker Deployment: quick_start/docker_deployment.md + - Usage: + - Usage: usage/index.md + - Quick Usage: usage/quick_usage.md + - Model Source: usage/model_source.md + - CLI Tools: usage/cli_tools.md + - Advanced CLI Parameters: usage/advanced_cli_parameters.md + - Reference: + - Reference: reference/index.md + - Output File Format: reference/output_files.md + - Changelog: reference/changelog.md + - FAQ: + - FAQ: faq/index.md + - Demo: + - Demo: demo/index.md + + +plugins: + - search + - i18n: + reconfigure_material: true + docs_structure: folder + fallback_to_default: true + reconfigure_search: true + languages: + - locale: en + default: true + name: English + build: true + - locale: zh + name: 中文 + build: true + nav_translations: + Home: 主页 + Quick Start: 快速入门 + Extension Modules: 扩展模块安装 + Docker Deployment: Docker部署 + Usage: 使用指南 + Quick Usage: 基础使用 + CLI Tools: 命令行工具 + Model Source: 模型源配置 + Advanced CLI Parameters: 命令行进阶参数 + FAQ: 常见问题解答 + Reference: 参考资料 + Output File Format: 输出文件格式 + Changelog: 更新日志 + Demo: 在线演示 + - mkdocs-video + +markdown_extensions: + - admonition + - pymdownx.details + - attr_list + - def_list + - gfm_admonition + - pymdownx.highlight: + use_pygments: true + - pymdownx.superfences + - pymdownx.tasklist: + custom_checkbox: true \ No newline at end of file diff --git a/next_docs/en/.readthedocs.yaml b/next_docs/en/.readthedocs.yaml deleted file mode 100644 index 7e3312e47..000000000 --- a/next_docs/en/.readthedocs.yaml +++ /dev/null @@ -1,16 +0,0 @@ -version: 2 - -build: - os: ubuntu-22.04 - tools: - python: "3.10" - -formats: - - epub - -python: - install: - - requirements: docs/requirements.txt - -sphinx: - configuration: docs/en/conf.py diff --git a/next_docs/en/Makefile b/next_docs/en/Makefile deleted file mode 100644 index d4bb2cbb9..000000000 --- a/next_docs/en/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/next_docs/en/_static/image/logo.png b/next_docs/en/_static/image/logo.png deleted file mode 100644 index 2e6fdf3a9..000000000 Binary files a/next_docs/en/_static/image/logo.png and /dev/null differ diff --git a/next_docs/en/api.rst b/next_docs/en/api.rst deleted file mode 100644 index 9c6a9e654..000000000 --- a/next_docs/en/api.rst +++ /dev/null @@ -1,9 +0,0 @@ -Data Api ------------------- - -.. toctree:: - :maxdepth: 2 - - api/dataset.rst - api/data_reader_writer.rst - api/read_api.rst diff --git a/next_docs/en/api/data_reader_writer.rst b/next_docs/en/api/data_reader_writer.rst deleted file mode 100644 index 882c974c1..000000000 --- a/next_docs/en/api/data_reader_writer.rst +++ /dev/null @@ -1,44 +0,0 @@ - -Data Reader Writer --------------------- - -.. autoclass:: magic_pdf.data.data_reader_writer.DataReader - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.data_reader_writer.DataWriter - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.data_reader_writer.S3DataReader - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.data_reader_writer.S3DataWriter - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.data_reader_writer.FileBasedDataReader - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.data_reader_writer.FileBasedDataWriter - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.data_reader_writer.S3DataReader - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.data_reader_writer.S3DataWriter - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.data_reader_writer.MultiBucketS3DataReader - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.data_reader_writer.MultiBucketS3DataWriter - :members: - :inherited-members: - diff --git a/next_docs/en/api/dataset.rst b/next_docs/en/api/dataset.rst deleted file mode 100644 index 94a97dfe1..000000000 --- a/next_docs/en/api/dataset.rst +++ /dev/null @@ -1,22 +0,0 @@ -Dataset Api ------------------- - -.. autoclass:: magic_pdf.data.dataset.PageableData - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.dataset.Dataset - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.dataset.ImageDataset - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.dataset.PymuDocDataset - :members: - :inherited-members: - -.. autoclass:: magic_pdf.data.dataset.Doc - :members: - :inherited-members: diff --git a/next_docs/en/api/io.rst b/next_docs/en/api/io.rst deleted file mode 100644 index e69de29bb..000000000 diff --git a/next_docs/en/api/read_api.rst b/next_docs/en/api/read_api.rst deleted file mode 100644 index 439d4c156..000000000 --- a/next_docs/en/api/read_api.rst +++ /dev/null @@ -1,6 +0,0 @@ -read_api Api ------------------- - -.. automodule:: magic_pdf.data.read_api - :members: - :inherited-members: diff --git a/next_docs/en/api/schemas.rst b/next_docs/en/api/schemas.rst deleted file mode 100644 index e69de29bb..000000000 diff --git a/next_docs/en/api/utils.rst b/next_docs/en/api/utils.rst deleted file mode 100644 index 8b1378917..000000000 --- a/next_docs/en/api/utils.rst +++ /dev/null @@ -1 +0,0 @@ - diff --git a/next_docs/en/conf.py b/next_docs/en/conf.py deleted file mode 100644 index c3fc7f2f0..000000000 --- a/next_docs/en/conf.py +++ /dev/null @@ -1,122 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. - -import os -import subprocess -import sys - -from sphinx.ext import autodoc - - -def install(package): - subprocess.check_call([sys.executable, '-m', 'pip', 'install', package]) - - -requirements_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'requirements.txt')) -if os.path.exists(requirements_path): - with open(requirements_path) as f: - packages = f.readlines() - for package in packages: - install(package.strip()) - -sys.path.insert(0, os.path.abspath('../..')) - -# -- Project information ----------------------------------------------------- - -project = 'MinerU' -copyright = '2024, MinerU Contributors' -author = 'OpenDataLab' - -# The full version, including alpha/beta/rc tags -version_file = '../../magic_pdf/libs/version.py' -with open(version_file) as f: - exec(compile(f.read(), version_file, 'exec')) -__version__ = locals()['__version__'] -# The short X.Y version -version = __version__ -# The full version, including alpha/beta/rc tags -release = __version__ - -# -- General configuration --------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'sphinx.ext.intersphinx', - 'sphinx_copybutton', - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'myst_parser', - 'sphinxarg.ext', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -# Exclude the prompt "$" when copying code -copybutton_prompt_text = r'\$ ' -copybutton_prompt_is_regexp = True - -language = 'en' - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'sphinx_book_theme' -html_logo = '_static/image/logo.png' -html_theme_options = { - 'path_to_docs': 'docs/en', - 'repository_url': 'https://github.com/opendatalab/MinerU', - 'use_repository_button': True, -} -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -# html_static_path = ['_static'] - -# Mock out external dependencies here. -autodoc_mock_imports = [ - 'cpuinfo', - 'torch', - 'transformers', - 'psutil', - 'prometheus_client', - 'sentencepiece', - 'vllm.cuda_utils', - 'vllm._C', - 'numpy', - 'tqdm', -] - - -class MockedClassDocumenter(autodoc.ClassDocumenter): - """Remove note about base class when a class is derived from object.""" - - def add_line(self, line: str, source: str, *lineno: int) -> None: - if line == ' Bases: :py:class:`object`': - return - super().add_line(line, source, *lineno) - - -autodoc.ClassDocumenter = MockedClassDocumenter - -navigation_with_keys = False diff --git a/next_docs/en/index.rst b/next_docs/en/index.rst deleted file mode 100644 index 61a4bc397..000000000 --- a/next_docs/en/index.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. xtuner documentation master file, created by - sphinx-quickstart on Tue Jan 9 16:33:06 2024. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to the MinerU Documentation -============================================== - -.. figure:: ./_static/image/logo.png - :align: center - :alt: mineru - :class: no-scaled-link - -.. raw:: html - -

- A one-stop, open-source, high-quality data extraction tool - -

- -

- - Star - Watch - Fork -

- - -API Reference -------------- - -If you are looking for information on a specific function, class or -method, this part of the documentation is for you. - -.. toctree:: - :maxdepth: 2 - - api diff --git a/next_docs/en/make.bat b/next_docs/en/make.bat deleted file mode 100644 index 954237b9b..000000000 --- a/next_docs/en/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=. -set BUILDDIR=_build - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.https://www.sphinx-doc.org/ - exit /b 1 -) - -if "%1" == "" goto help - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/next_docs/requirements.txt b/next_docs/requirements.txt deleted file mode 100644 index ddb5027a6..000000000 --- a/next_docs/requirements.txt +++ /dev/null @@ -1,11 +0,0 @@ -boto3>=1.28.43 -loguru>=0.6.0 -myst-parser -Pillow==8.4.0 -pydantic>=2.7.2,<2.8.0 -PyMuPDF>=1.24.9 -sphinx -sphinx-argparse -sphinx-book-theme -sphinx-copybutton -sphinx_rtd_theme diff --git a/next_docs/zh_cn/.readthedocs.yaml b/next_docs/zh_cn/.readthedocs.yaml deleted file mode 100644 index 1f93a4d7b..000000000 --- a/next_docs/zh_cn/.readthedocs.yaml +++ /dev/null @@ -1,16 +0,0 @@ -version: 2 - -build: - os: ubuntu-22.04 - tools: - python: "3.10" - -formats: - - epub - -python: - install: - - requirements: docs/requirements.txt - -sphinx: - configuration: docs/zh_cn/conf.py diff --git a/next_docs/zh_cn/Makefile b/next_docs/zh_cn/Makefile deleted file mode 100644 index d4bb2cbb9..000000000 --- a/next_docs/zh_cn/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line, and also -# from the environment for the first two. -SPHINXOPTS ?= -SPHINXBUILD ?= sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/next_docs/zh_cn/_static/image/logo.png b/next_docs/zh_cn/_static/image/logo.png deleted file mode 100644 index 2e6fdf3a9..000000000 Binary files a/next_docs/zh_cn/_static/image/logo.png and /dev/null differ diff --git a/next_docs/zh_cn/conf.py b/next_docs/zh_cn/conf.py deleted file mode 100644 index 4eccd497e..000000000 --- a/next_docs/zh_cn/conf.py +++ /dev/null @@ -1,122 +0,0 @@ -# Configuration file for the Sphinx documentation builder. -# -# This file only contains a selection of the most common options. For a full -# list see the documentation: -# https://www.sphinx-doc.org/en/master/usage/configuration.html - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. - -import os -import subprocess -import sys - -from sphinx.ext import autodoc - - -def install(package): - subprocess.check_call([sys.executable, '-m', 'pip', 'install', package]) - - -requirements_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'requirements.txt')) -if os.path.exists(requirements_path): - with open(requirements_path) as f: - packages = f.readlines() - for package in packages: - install(package.strip()) - -sys.path.insert(0, os.path.abspath('../..')) - -# -- Project information ----------------------------------------------------- - -project = 'MinerU' -copyright = '2024, OpenDataLab' -author = 'MinerU Contributors' - -# The full version, including alpha/beta/rc tags -version_file = '../../magic_pdf/libs/version.py' -with open(version_file) as f: - exec(compile(f.read(), version_file, 'exec')) -__version__ = locals()['__version__'] -# The short X.Y version -version = __version__ -# The full version, including alpha/beta/rc tags -release = __version__ - -# -- General configuration --------------------------------------------------- - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'sphinx.ext.intersphinx', - 'sphinx_copybutton', - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'myst_parser', - 'sphinxarg.ext', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -# Exclude the prompt "$" when copying code -copybutton_prompt_text = r'\$ ' -copybutton_prompt_is_regexp = True - -language = 'zh_CN' - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'sphinx_book_theme' -html_logo = '_static/image/logo.png' -html_theme_options = { - 'path_to_docs': 'docs/zh_cn', - 'repository_url': 'https://github.com/opendatalab/MinerU', - 'use_repository_button': True, -} -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -# html_static_path = ['_static'] - -# Mock out external dependencies here. -autodoc_mock_imports = [ - 'cpuinfo', - 'torch', - 'transformers', - 'psutil', - 'prometheus_client', - 'sentencepiece', - 'vllm.cuda_utils', - 'vllm._C', - 'numpy', - 'tqdm', -] - - -class MockedClassDocumenter(autodoc.ClassDocumenter): - """Remove note about base class when a class is derived from object.""" - - def add_line(self, line: str, source: str, *lineno: int) -> None: - if line == ' Bases: :py:class:`object`': - return - super().add_line(line, source, *lineno) - - -autodoc.ClassDocumenter = MockedClassDocumenter - -navigation_with_keys = False diff --git a/next_docs/zh_cn/index.rst b/next_docs/zh_cn/index.rst deleted file mode 100644 index 7b86aeb0c..000000000 --- a/next_docs/zh_cn/index.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. xtuner documentation master file, created by - sphinx-quickstart on Tue Jan 9 16:33:06 2024. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -欢迎来到 MinerU 的中文文档 -============================================== - -.. figure:: ./_static/image/logo.png - :align: center - :alt: mineru - :class: no-scaled-link - -.. raw:: html - -

- 一站式开源高质量数据提取工具 - -

- -

- - Star - Watch - Fork -

diff --git a/next_docs/zh_cn/make.bat b/next_docs/zh_cn/make.bat deleted file mode 100644 index 954237b9b..000000000 --- a/next_docs/zh_cn/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=. -set BUILDDIR=_build - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.https://www.sphinx-doc.org/ - exit /b 1 -) - -if "%1" == "" goto help - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% - -:end -popd diff --git a/projects/README.md b/projects/README.md index 3eca3cec5..3a46e7bb2 100644 --- a/projects/README.md +++ b/projects/README.md @@ -1,9 +1,7 @@ -# Welcome to the MinerU Project List +# Welcome to the MinerU Project (Archived) -## Project List +>[!NOTE] +> To consolidate resources, this repository has stopped accepting new project submissions and maintenance requests for existing projects. +> If you have an excellent project based on MinerU that you'd like to share, please submit the project link to the well-maintained community resource repository [awesome-mineru](https://github.com/opendatalab/awesome-mineru). +> Thank you for your support and contribution to the MinerU ecosystem! -- [llama_index_rag](./llama_index_rag/README.md): Build a lightweight RAG system based on llama_index -- [gradio_app](./gradio_app/README.md): Build a web app based on gradio -- [web_demo](./web_demo/README.md): MinerU online [demo](https://opendatalab.com/OpenSourceTools/Extractor/PDF/) localized deployment version -- [web_api](./web_api/README.md): Web API Based on FastAPI -- [multi_gpu](./multi_gpu/README.md): Multi-GPU parallel processing based on LitServe diff --git a/projects/README_zh-CN.md b/projects/README_zh-CN.md index 96374cd38..08bd1dee4 100644 --- a/projects/README_zh-CN.md +++ b/projects/README_zh-CN.md @@ -1,9 +1,7 @@ -# 欢迎来到 MinerU 项目列表 +# 欢迎来到 MinerU 项目(Archived) -## 项目列表 +>[!NOTE] +> 为整合资源,本仓库目前已停止接收新项目提交和已有项目的维护请求。 +> 如果您有基于 MinerU 的优秀项目希望分享,欢迎将项目链接提交至精心维护的社区资源库 [awesome-mineru](https://github.com/opendatalab/awesome-mineru)。 +> 感谢您对 MinerU 生态的支持与贡献! -- [llama_index_rag](./llama_index_rag/README_zh-CN.md): 基于 llama_index 构建轻量级 RAG 系统 -- [gradio_app](./gradio_app/README_zh-CN.md): 基于 Gradio 的 Web 应用 -- [web_demo](./web_demo/README_zh-CN.md): MinerU在线[demo](https://opendatalab.com/OpenSourceTools/Extractor/PDF/)本地化部署版本 -- [web_api](./web_api/README.md): 基于 FastAPI 的 Web API -- [multi_gpu](./multi_gpu/README.md): 基于 LitServe 的多 GPU 并行处理 diff --git a/projects/gradio_app/README.md b/projects/gradio_app/README.md deleted file mode 100644 index c04b068e1..000000000 --- a/projects/gradio_app/README.md +++ /dev/null @@ -1,24 +0,0 @@ -## Installation - -MinerU(>=0.8.0) - > If you already have a functioning MinerU environment, you can skip this step. - > -[Deploy in CPU environment](https://github.com/opendatalab/MinerU?tab=readme-ov-file#quick-cpu-demo) - -[Deploy in GPU environment](https://github.com/opendatalab/MinerU?tab=readme-ov-file#using-gpu) - -Third-party Software - -```bash -pip install gradio gradio-pdf -``` - -## Start Gradio App - -```bash -python app.py -``` - -## Use Gradio App - -Access http://127.0.0.1:7860 in your web browser \ No newline at end of file diff --git a/projects/gradio_app/README_zh-CN.md b/projects/gradio_app/README_zh-CN.md deleted file mode 100644 index ce9b92c5e..000000000 --- a/projects/gradio_app/README_zh-CN.md +++ /dev/null @@ -1,24 +0,0 @@ -## 安装 - -MinerU(>=0.8.0) - >如已有正常运行的MinerU环境则可以跳过此步骤 -> -[在CPU环境部署](https://github.com/opendatalab/MinerU/blob/master/README_zh-CN.md#%E4%BD%BF%E7%94%A8cpu%E5%BF%AB%E9%80%9F%E4%BD%93%E9%AA%8C) - -[在GPU环境部署](https://github.com/opendatalab/MinerU/blob/master/README_zh-CN.md#%E4%BD%BF%E7%94%A8gpu) - -第三方软件 - -```bash -pip install gradio gradio-pdf -``` - -## 启动gradio应用 - -```bash -python app.py -``` - -## 使用gradio应用 - -在浏览器中访问 http://127.0.0.1:7860 \ No newline at end of file diff --git a/projects/gradio_app/app.py b/projects/gradio_app/app.py deleted file mode 100644 index a1d0484b1..000000000 --- a/projects/gradio_app/app.py +++ /dev/null @@ -1,228 +0,0 @@ -# Copyright (c) Opendatalab. All rights reserved. - -import base64 -import os -import time -import uuid -import zipfile -from pathlib import Path -import re - -import pymupdf -from loguru import logger - -from magic_pdf.libs.hash_utils import compute_sha256 -from magic_pdf.rw.AbsReaderWriter import AbsReaderWriter -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter -from magic_pdf.tools.common import do_parse, prepare_env - -import gradio as gr -from gradio_pdf import PDF - - -def read_fn(path): - disk_rw = DiskReaderWriter(os.path.dirname(path)) - return disk_rw.read(os.path.basename(path), AbsReaderWriter.MODE_BIN) - - -def parse_pdf(doc_path, output_dir, end_page_id, is_ocr, layout_mode, formula_enable, table_enable, language): - os.makedirs(output_dir, exist_ok=True) - - try: - file_name = f"{str(Path(doc_path).stem)}_{time.time()}" - pdf_data = read_fn(doc_path) - if is_ocr: - parse_method = "ocr" - else: - parse_method = "auto" - local_image_dir, local_md_dir = prepare_env(output_dir, file_name, parse_method) - do_parse( - output_dir, - file_name, - pdf_data, - [], - parse_method, - False, - end_page_id=end_page_id, - layout_model=layout_mode, - formula_enable=formula_enable, - table_enable=table_enable, - lang=language, - ) - return local_md_dir, file_name - except Exception as e: - logger.exception(e) - - -def compress_directory_to_zip(directory_path, output_zip_path): - """ - 压缩指定目录到一个 ZIP 文件。 - - :param directory_path: 要压缩的目录路径 - :param output_zip_path: 输出的 ZIP 文件路径 - """ - try: - with zipfile.ZipFile(output_zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf: - - # 遍历目录中的所有文件和子目录 - for root, dirs, files in os.walk(directory_path): - for file in files: - # 构建完整的文件路径 - file_path = os.path.join(root, file) - # 计算相对路径 - arcname = os.path.relpath(file_path, directory_path) - # 添加文件到 ZIP 文件 - zipf.write(file_path, arcname) - return 0 - except Exception as e: - logger.exception(e) - return -1 - - -def image_to_base64(image_path): - with open(image_path, "rb") as image_file: - return base64.b64encode(image_file.read()).decode('utf-8') - - -def replace_image_with_base64(markdown_text, image_dir_path): - # 匹配Markdown中的图片标签 - pattern = r'\!\[(?:[^\]]*)\]\(([^)]+)\)' - - # 替换图片链接 - def replace(match): - relative_path = match.group(1) - full_path = os.path.join(image_dir_path, relative_path) - base64_image = image_to_base64(full_path) - return f"![{relative_path}](data:image/jpeg;base64,{base64_image})" - - # 应用替换 - return re.sub(pattern, replace, markdown_text) - - -def to_markdown(file_path, end_pages, is_ocr, layout_mode, formula_enable, table_enable, language): - # 获取识别的md文件以及压缩包文件路径 - local_md_dir, file_name = parse_pdf(file_path, './output', end_pages - 1, is_ocr, - layout_mode, formula_enable, table_enable, language) - archive_zip_path = os.path.join("./output", compute_sha256(local_md_dir) + ".zip") - zip_archive_success = compress_directory_to_zip(local_md_dir, archive_zip_path) - if zip_archive_success == 0: - logger.info("压缩成功") - else: - logger.error("压缩失败") - md_path = os.path.join(local_md_dir, file_name + ".md") - with open(md_path, 'r', encoding='utf-8') as f: - txt_content = f.read() - md_content = replace_image_with_base64(txt_content, local_md_dir) - # 返回转换后的PDF路径 - new_pdf_path = os.path.join(local_md_dir, file_name + "_layout.pdf") - - return md_content, txt_content, archive_zip_path, new_pdf_path - - -latex_delimiters = [{"left": "$$", "right": "$$", "display": True}, - {"left": '$', "right": '$', "display": False}] - - -def init_model(): - from magic_pdf.model.doc_analyze_by_custom_model import ModelSingleton - try: - model_manager = ModelSingleton() - txt_model = model_manager.get_model(False, False) - logger.info(f"txt_model init final") - ocr_model = model_manager.get_model(True, False) - logger.info(f"ocr_model init final") - return 0 - except Exception as e: - logger.exception(e) - return -1 - - -model_init = init_model() -logger.info(f"model_init: {model_init}") - - -with open("header.html", "r") as file: - header = file.read() - - -latin_lang = [ - 'af', 'az', 'bs', 'cs', 'cy', 'da', 'de', 'es', 'et', 'fr', 'ga', 'hr', - 'hu', 'id', 'is', 'it', 'ku', 'la', 'lt', 'lv', 'mi', 'ms', 'mt', 'nl', - 'no', 'oc', 'pi', 'pl', 'pt', 'ro', 'rs_latin', 'sk', 'sl', 'sq', 'sv', - 'sw', 'tl', 'tr', 'uz', 'vi', 'french', 'german' -] -arabic_lang = ['ar', 'fa', 'ug', 'ur'] -cyrillic_lang = [ - 'ru', 'rs_cyrillic', 'be', 'bg', 'uk', 'mn', 'abq', 'ady', 'kbd', 'ava', - 'dar', 'inh', 'che', 'lbe', 'lez', 'tab' -] -devanagari_lang = [ - 'hi', 'mr', 'ne', 'bh', 'mai', 'ang', 'bho', 'mah', 'sck', 'new', 'gom', - 'sa', 'bgc' -] -other_lang = ['ch', 'en', 'korean', 'japan', 'chinese_cht', 'ta', 'te', 'ka'] - -all_lang = [""] -all_lang.extend([*other_lang, *latin_lang, *arabic_lang, *cyrillic_lang, *devanagari_lang]) - - -def to_pdf(file_path): - with pymupdf.open(file_path) as f: - if f.is_pdf: - return file_path - else: - pdf_bytes = f.convert_to_pdf() - # 将pdfbytes 写入到uuid.pdf中 - # 生成唯一的文件名 - unique_filename = f"{uuid.uuid4()}.pdf" - - # 构建完整的文件路径 - tmp_file_path = os.path.join(os.path.dirname(file_path), unique_filename) - - # 将字节数据写入文件 - with open(tmp_file_path, 'wb') as tmp_pdf_file: - tmp_pdf_file.write(pdf_bytes) - - return tmp_file_path - - -if __name__ == "__main__": - with gr.Blocks() as demo: - gr.HTML(header) - with gr.Row(): - with gr.Column(variant='panel', scale=5): - file = gr.File(label="Please upload a PDF or image", file_types=[".pdf", ".png", ".jpeg", "jpg"]) - max_pages = gr.Slider(1, 10, 5, step=1, label="Max convert pages") - with gr.Row(): - layout_mode = gr.Dropdown(["layoutlmv3", "doclayout_yolo"], label="Layout model", value="layoutlmv3") - language = gr.Dropdown(all_lang, label="Language", value="") - with gr.Row(): - formula_enable = gr.Checkbox(label="Enable formula recognition", value=True) - is_ocr = gr.Checkbox(label="Force enable OCR", value=False) - table_enable = gr.Checkbox(label="Enable table recognition(test)", value=False) - with gr.Row(): - change_bu = gr.Button("Convert") - clear_bu = gr.ClearButton(value="Clear") - pdf_show = PDF(label="PDF preview", interactive=True, height=800) - with gr.Accordion("Examples:"): - example_root = os.path.join(os.path.dirname(__file__), "examples") - gr.Examples( - examples=[os.path.join(example_root, _) for _ in os.listdir(example_root) if - _.endswith("pdf")], - inputs=pdf_show - ) - - with gr.Column(variant='panel', scale=5): - output_file = gr.File(label="convert result", interactive=False) - with gr.Tabs(): - with gr.Tab("Markdown rendering"): - md = gr.Markdown(label="Markdown rendering", height=900, show_copy_button=True, - latex_delimiters=latex_delimiters, line_breaks=True) - with gr.Tab("Markdown text"): - md_text = gr.TextArea(lines=45, show_copy_button=True) - file.upload(fn=to_pdf, inputs=file, outputs=pdf_show) - change_bu.click(fn=to_markdown, inputs=[pdf_show, max_pages, is_ocr, layout_mode, formula_enable, table_enable, language], - outputs=[md, md_text, output_file, pdf_show]) - clear_bu.add([file, md, pdf_show, md_text, output_file, is_ocr, table_enable, language]) - - demo.launch(server_name="0.0.0.0") \ No newline at end of file diff --git a/projects/gradio_app/examples/2list_1table.pdf b/projects/gradio_app/examples/2list_1table.pdf deleted file mode 100644 index dd9650bfd..000000000 Binary files a/projects/gradio_app/examples/2list_1table.pdf and /dev/null differ diff --git a/projects/gradio_app/examples/3list_1table.pdf b/projects/gradio_app/examples/3list_1table.pdf deleted file mode 100644 index 5782751ad..000000000 Binary files a/projects/gradio_app/examples/3list_1table.pdf and /dev/null differ diff --git a/projects/gradio_app/examples/academic_paper_formula.pdf b/projects/gradio_app/examples/academic_paper_formula.pdf deleted file mode 100644 index f1381cd27..000000000 Binary files a/projects/gradio_app/examples/academic_paper_formula.pdf and /dev/null differ diff --git a/projects/gradio_app/examples/academic_paper_img_formula.pdf b/projects/gradio_app/examples/academic_paper_img_formula.pdf deleted file mode 100644 index ab8ce7ea0..000000000 Binary files a/projects/gradio_app/examples/academic_paper_img_formula.pdf and /dev/null differ diff --git a/projects/gradio_app/examples/academic_paper_list.pdf b/projects/gradio_app/examples/academic_paper_list.pdf deleted file mode 100644 index ab1d86b50..000000000 Binary files a/projects/gradio_app/examples/academic_paper_list.pdf and /dev/null differ diff --git a/projects/gradio_app/examples/complex_layout.pdf b/projects/gradio_app/examples/complex_layout.pdf deleted file mode 100755 index a4fc9c0f7..000000000 Binary files a/projects/gradio_app/examples/complex_layout.pdf and /dev/null differ diff --git a/projects/gradio_app/examples/complex_layout_para_split_list.pdf b/projects/gradio_app/examples/complex_layout_para_split_list.pdf deleted file mode 100644 index ce34c6404..000000000 Binary files a/projects/gradio_app/examples/complex_layout_para_split_list.pdf and /dev/null differ diff --git a/projects/gradio_app/examples/garbled_formula.pdf b/projects/gradio_app/examples/garbled_formula.pdf deleted file mode 100644 index a2c11939d..000000000 Binary files a/projects/gradio_app/examples/garbled_formula.pdf and /dev/null differ diff --git a/projects/gradio_app/examples/magazine_complex_layout_images_list.pdf b/projects/gradio_app/examples/magazine_complex_layout_images_list.pdf deleted file mode 100644 index 8718fc0fe..000000000 Binary files a/projects/gradio_app/examples/magazine_complex_layout_images_list.pdf and /dev/null differ diff --git a/projects/gradio_app/examples/scanned.pdf b/projects/gradio_app/examples/scanned.pdf deleted file mode 100755 index f35e53dd9..000000000 Binary files a/projects/gradio_app/examples/scanned.pdf and /dev/null differ diff --git a/projects/gradio_app/header.html b/projects/gradio_app/header.html deleted file mode 100644 index 99ec40ea4..000000000 --- a/projects/gradio_app/header.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - -
-
-
-

- MinerU: PDF Extraction Demo -

-
-
- -

- A one-stop, open-source, high-quality data extraction tool, supports - PDF/webpage/e-book extraction.
-

- - - - - -
- - - \ No newline at end of file diff --git a/projects/gradio_app/requirements.txt b/projects/gradio_app/requirements.txt deleted file mode 100644 index f23b6756d..000000000 --- a/projects/gradio_app/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -magic-pdf[full]>=0.8.0 -gradio -gradio-pdf \ No newline at end of file diff --git a/projects/llama_index_rag/README.md b/projects/llama_index_rag/README.md deleted file mode 100644 index 57cd9aeb4..000000000 --- a/projects/llama_index_rag/README.md +++ /dev/null @@ -1,160 +0,0 @@ -## Installation - -MinerU - -```bash -git clone https://github.com/opendatalab/MinerU.git -cd MinerU - -conda create -n MinerU python=3.10 -conda activate MinerU -pip install .[full] --extra-index-url https://wheels.myhloli.com -``` - -Third-party software - -```bash -# install -pip install llama-index-vector-stores-elasticsearch==0.2.0 -pip install llama-index-embeddings-dashscope==0.2.0 -pip install llama-index-core==0.10.68 -pip install einops==0.7.0 -pip install transformers-stream-generator==0.0.5 -pip install accelerate==0.33.0 - -# uninstall -pip uninstall transformer-engine -``` - -## Environment Configuration - -``` -export DASHSCOPE_API_KEY={some_key} -export ES_USER={some_es_user} -export ES_PASSWORD={some_es_password} -export ES_URL=http://{es_url}:9200 -``` -For instructions on obtaining a DASHSCOPE_API_KEY, refer to [documentation](https://help.aliyun.com/zh/dashscope/opening-service) - -## Usage - -### Data Ingestion - -```bash -python data_ingestion.py -p some.pdf # load data from pdf - - or - -python data_ingestion.py -p /opt/data/some_pdf_directory/ # load data from multiples pdf which under the directory of {some_pdf_directory} -``` - -### Query - -```bash -python query.py --question '{the_question_you_want_to_ask}' -``` - -## Example - -````bash -# Start the es service -docker compose up -d - -or - -docker-compose up -d - - -# Set environment variables -export ES_USER=elastic -export ES_PASSWORD=llama_index -export ES_URL=http://127.0.0.1:9200 -export DASHSCOPE_API_KEY={some_key} - - -# Ingest data -python data_ingestion.py example/data/declaration_of_the_rights_of_man_1789.pdf - - -# Ask a question -python query.py -q 'how about the rights of men' - -## outputs -Please answer the question based on the content within ```: - ``` - I. Men are born, and always continue, free and equal in respect of their rights. Civil distinctions, therefore, can be founded only on public utility. - ``` - My question is:how about the rights of men。 - -question: how about the rights of men -answer: The statement implies that men are born free and equal in terms of their rights. Civil distinctions should only be based on public utility. However, it does not specify what those rights are. It is up to society and individual countries to determine and protect the specific rights of their citizens. - -```` - -## Development - -`MinerU` provides a `RAG` integration interface, allowing users to specify a single input `pdf` file or a directory. `MinerU` will automatically parse the input files and return an iterable interface for retrieving the data. - - -### API Interface - -```python -from magic_pdf.integrations.rag.type import Node - -class RagPageReader: - def get_rel_map(self) -> list[ElementRelation]: - # Retrieve the relationships between nodes - pass - ... - -class RagDocumentReader: - ... - -class DataReader: - def __init__(self, path_or_directory: str, method: str, output_dir: str): - pass - - def get_documents_count(self) -> int: - """Get the number of pdf documents""" - pass - - def get_document_result(self, idx: int) -> RagDocumentReader | None: - """Retrieve the parsed content of a specific pdf""" - pass - - - def get_document_filename(self, idx: int) -> Path: - """Retrieve the path of a specific pdf""" - pass - - -``` - -Type Definitions - -```python - - -class Node(BaseModel): - category_type: CategoryType = Field(description='Category') # Category - text: str | None = Field(description='Text content', default=None) - image_path: str | None = Field(description='Path to image or table (table may be stored as an image)', default=None) - anno_id: int = Field(description='Unique ID', default=-1) - latex: str | None = Field(description='LaTeX output for equations or tables', default=None) - html: str | None = Field(description='HTML output for tables', default=None) - - - -``` - -Tables can be stored in one of three formats: image, LaTeX, or HTML. -`anno_id` is a globally unique ID for each Node. It can be used later to match this Node with other Nodes. The relationships between nodes can be retrieved using the `get_rel_map` method. Users can use `anno_id` to link nodes and construct a RAG index that includes node relationships. - - -### Node Relationship Matrix - -| | image_body | table_body | -| -------------- | ---------- | ---------- | -| image_caption | sibling | | -| table_caption | | sibling | -| table_footnote | | sibling | diff --git a/projects/llama_index_rag/README_zh-CN.md b/projects/llama_index_rag/README_zh-CN.md deleted file mode 100644 index 4d3bf005b..000000000 --- a/projects/llama_index_rag/README_zh-CN.md +++ /dev/null @@ -1,199 +0,0 @@ -
-

目录

-
  • 介绍
  • -
  • 安装
  • -
  • 示例
  • -
  • 开发
  • - -
    - -## 介绍 - -`MinerU` 提供数据 `API接口` 以支持用户导入数据到 `RAG` 系统。本项目将基于`通义千问`展示如何构建一个轻量级的 `RAG` 系统。 - -

    - -

    - -## 安装 - -环境要求 - -```text -NVIDIA A100 80GB, -Centos 7 3.10.0-957.el7.x86_64 - -Client: Docker Engine - Community - Version: 24.0.5 - API version: 1.43 - Go version: go1.20.6 - Git commit: ced0996 - Built: Fri Jul 21 20:39:02 2023 - OS/Arch: linux/amd64 - Context: default - -Server: Docker Engine - Community - Engine: - Version: 24.0.5 - API version: 1.43 (minimum version 1.12) - Go version: go1.20.6 - Git commit: a61e2b4 - Built: Fri Jul 21 20:38:05 2023 - OS/Arch: linux/amd64 - Experimental: false - containerd: - Version: 1.6.25 - GitCommit: d8f198a4ed8892c764191ef7b3b06d8a2eeb5c7f - runc: - Version: 1.1.10 - GitCommit: v1.1.10-0-g18a0cb0 - docker-init: - Version: 0.19.0 - GitCommit: de40ad0 -``` - -请参考[文档](../../README_zh-CN.md) 安装 MinerU - -第三方软件 - -```bash -# install -pip install modelscope==1.14.0 -pip install llama-index-vector-stores-elasticsearch==0.2.0 -pip install llama-index-embeddings-dashscope==0.2.0 -pip install llama-index-core==0.10.68 -pip install einops==0.7.0 -pip install transformers-stream-generator==0.0.5 -pip install accelerate==0.33.0 - -# uninstall -pip uninstall transformer-engine -``` - - -## 示例 - -````bash -cd projects/llama_index_rag - -docker compose up -d - -or - -docker-compose up -d - - -# 配置环境变量 - -export ES_USER=elastic -export ES_PASSWORD=llama_index -export ES_URL=http://127.0.0.1:9200 -export DASHSCOPE_API_KEY={some_key} - - -DASHSCOPE_API_KEY 开通参考[文档](https://help.aliyun.com/zh/dashscope/opening-service) - -# 未导入数据,查询问题。返回通义千问默认答案 -python query.py -q 'how about the rights of men' - -## outputs -question: how about the rights of men -answer: The topic of men's rights often refers to discussions around legal, social, and political issues that affect men specifically or differently from women. Movements related to men's rights advocate for addressing areas where men face discrimination or unique challenges, such as: - - Child Custody: Ensuring that men have equal opportunities for custody of their children following divorce or separation. - Domestic Violence: Recognizing that men can also be victims of domestic abuse and ensuring they have access to support services. - Mental Health and Suicide Rates: Addressing the higher rates of suicide among men and providing mental health resources. - Military Conscription: In some countries, only men are required to register for military service, which is seen as a gender-based obligation. - Workplace Safety: Historically, more men than women have been employed in high-risk occupations, leading to higher workplace injury and death rates. - Parental Leave: Advocating for paternity leave policies that allow men to take time off work for family care. - Men's rights activism often intersects with broader discussions on gender equality and aims to promote fairness and equity across genders. It's important to note that while advocating for these issues, it should be done in a way that does not detract from or oppose the goals of gender equality and the rights of other groups. The focus should be on creating a fair society where everyone has equal opportunities and protections under the law. - - -# 导入数据 -python data_ingestion.py -p example/data/ - -or - -python data_ingestion.py -p example/data/declaration_of_the_rights_of_man_1789.pdf - - -# 导入数据后,查询问题。通义千问模型会根据 RAG 系统的检索结果,结合上下文,给出答案。 - -python query.py -q 'how about the rights of men' - -## outputs -请基于```内的内容回答问题。" - ``` - I. Men are born, and always continue, free and equal in respect of their rights. Civil distinctions, therefore, can be founded only on public utility. - ``` - 我的问题是:how about the rights of men。 - -question: how about the rights of men -answer: The statement implies that men are born free and equal in terms of their rights. Civil distinctions should only be based on public utility. However, it does not specify what those rights are. It is up to society and individual countries to determine and protect the specific rights of their citizens. - -```` - -## 开发 - -`MinerU` 提供了 `RAG` 集成接口,用户可以通过指定输入单个 `pdf` 文件或者某个目录。`MinerU` 会自动解析输入文件并返回可以迭代的接口用于获取数据 - -### API 接口 - -```python -from magic_pdf.integrations.rag.type import Node - -class RagPageReader: - def get_rel_map(self) -> list[ElementRelation]: - # 获取节点间的关系 - pass - ... - -class RagDocumentReader: - ... - -class DataReader: - def __init__(self, path_or_directory: str, method: str, output_dir: str): - pass - - def get_documents_count(self) -> int: - """获取 pdf 文档数量""" - pass - - def get_document_result(self, idx: int) -> RagDocumentReader | None: - """获取某个 pdf 的解析内容""" - pass - - - def get_document_filename(self, idx: int) -> Path: - """获取某个 pdf 的具体路径""" - pass - - -``` - -类型定义 - -```python - -class Node(BaseModel): - category_type: CategoryType = Field(description='类别') # 类别 - text: str | None = Field(description='文本内容', - default=None) - image_path: str | None = Field(description='图或者表格(表可能用图片形式存储)的存储路径', - default=None) - anno_id: int = Field(description='unique id', default=-1) - latex: str | None = Field(description='公式或表格 latex 解析结果', default=None) - html: str | None = Field(description='表格的 html 解析结果', default=None) - -``` - -表格存储形式可能会是 图片、latex、html 三种形式之一。 -anno_id 是该 Node 的在全局唯一ID。后续可以用于匹配该 Node 和其他 Node 的关系。节点的关系可以通过方法 `get_rel_map` 获取。用户可以用 `anno_id` 匹配节点之间的关系,并用于构建具备节点的关系的 rag index。 - -### 节点类型关系矩阵 - -| | image_body | table_body | -| -------------- | ---------- | ---------- | -| image_caption | sibling | | -| table_caption | | sibling | -| table_footnote | | sibling | diff --git a/projects/llama_index_rag/data_ingestion.py b/projects/llama_index_rag/data_ingestion.py deleted file mode 100644 index 821a10811..000000000 --- a/projects/llama_index_rag/data_ingestion.py +++ /dev/null @@ -1,68 +0,0 @@ -import os - -import click -from llama_index.core.schema import TextNode -from llama_index.embeddings.dashscope import (DashScopeEmbedding, - DashScopeTextEmbeddingModels, - DashScopeTextEmbeddingType) -from llama_index.vector_stores.elasticsearch import ElasticsearchStore - -from magic_pdf.integrations.rag.api import DataReader - -es_vec_store = ElasticsearchStore( - index_name='rag_index', - es_url=os.getenv('ES_URL', 'http://127.0.0.1:9200'), - es_user=os.getenv('ES_USER', 'elastic'), - es_password=os.getenv('ES_PASSWORD', 'llama_index'), -) - - -# Create embeddings -# text_type=`document` to build index -def embed_node(node): - embedder = DashScopeEmbedding( - model_name=DashScopeTextEmbeddingModels.TEXT_EMBEDDING_V2, - text_type=DashScopeTextEmbeddingType.TEXT_TYPE_DOCUMENT, - ) - - result_embeddings = embedder.get_text_embedding(node.text) - node.embedding = result_embeddings - return node - - -@click.command() -@click.option( - '-p', - '--path', - 'path', - type=click.Path(exists=True), - required=True, - help='local pdf filepath or directory', -) -def cli(path): - output_dir = '/tmp/magic_pdf/integrations/rag/' - os.makedirs(output_dir, exist_ok=True) - documents = DataReader(path, 'ocr', output_dir) - - # build nodes - nodes = [] - - for idx in range(documents.get_documents_count()): - doc = documents.get_document_result(idx) - if doc is None: # something wrong happens when parse pdf ! - continue - - for page in iter( - doc): # iterate documents from initial page to last page ! - for element in iter(page): # iterate the element from all page ! - if element.text is None: - continue - nodes.append( - embed_node( - TextNode(text=element.text, - metadata={'purpose': 'demo'}))) - es_vec_store.add(nodes) - - -if __name__ == '__main__': - cli() diff --git a/projects/llama_index_rag/docker-compose.yml b/projects/llama_index_rag/docker-compose.yml deleted file mode 100644 index b6dc24d6f..000000000 --- a/projects/llama_index_rag/docker-compose.yml +++ /dev/null @@ -1,24 +0,0 @@ -services: - es: - container_name: es - image: docker.elastic.co/elasticsearch/elasticsearch:8.11.3 - volumes: - - esdata01:/usr/share/elasticsearch/data - ports: - - 9200:9200 - environment: - - node.name=es - - ELASTIC_PASSWORD=llama_index - - bootstrap.memory_lock=false - - discovery.type=single-node - - xpack.security.enabled=true - - xpack.security.http.ssl.enabled=false - - xpack.security.transport.ssl.enabled=false - ulimits: - memlock: - soft: -1 - hard: -1 - restart: always -volumes: - esdata01: - driver: local diff --git a/projects/llama_index_rag/example/data/declaration_of_the_rights_of_man_1789.pdf b/projects/llama_index_rag/example/data/declaration_of_the_rights_of_man_1789.pdf deleted file mode 100644 index eff02687c..000000000 Binary files a/projects/llama_index_rag/example/data/declaration_of_the_rights_of_man_1789.pdf and /dev/null differ diff --git a/projects/llama_index_rag/query.py b/projects/llama_index_rag/query.py deleted file mode 100644 index 64151dae1..000000000 --- a/projects/llama_index_rag/query.py +++ /dev/null @@ -1,84 +0,0 @@ -import os - -import click -from llama_index.core.vector_stores.types import VectorStoreQuery -from llama_index.embeddings.dashscope import (DashScopeEmbedding, - DashScopeTextEmbeddingModels, - DashScopeTextEmbeddingType) -from llama_index.vector_stores.elasticsearch import (AsyncDenseVectorStrategy, - ElasticsearchStore) -# initialize qwen 7B model -from modelscope import AutoModelForCausalLM, AutoTokenizer, GenerationConfig - -es_vector_store = ElasticsearchStore( - index_name='rag_index', - es_url=os.getenv('ES_URL', 'http://127.0.0.1:9200'), - es_user=os.getenv('ES_USER', 'elastic'), - es_password=os.getenv('ES_PASSWORD', 'llama_index'), - retrieval_strategy=AsyncDenseVectorStrategy(), -) - - -def embed_text(text): - embedder = DashScopeEmbedding( - model_name=DashScopeTextEmbeddingModels.TEXT_EMBEDDING_V2, - text_type=DashScopeTextEmbeddingType.TEXT_TYPE_DOCUMENT, - ) - return embedder.get_text_embedding(text) - - -def search(vector_store: ElasticsearchStore, query: str): - query_vec = VectorStoreQuery(query_embedding=embed_text(query)) - result = vector_store.query(query_vec) - return '\n'.join([node.text for node in result.nodes]) - - -@click.command() -@click.option( - '-q', - '--question', - 'question', - required=True, - help='ask what you want to know!', -) -def cli(question): - tokenizer = AutoTokenizer.from_pretrained('qwen/Qwen-7B-Chat', - revision='v1.0.5', - trust_remote_code=True) - model = AutoModelForCausalLM.from_pretrained('qwen/Qwen-7B-Chat', - revision='v1.0.5', - device_map='auto', - trust_remote_code=True, - fp32=True).eval() - model.generation_config = GenerationConfig.from_pretrained( - 'Qwen/Qwen-7B-Chat', revision='v1.0.5', trust_remote_code=True) - - # define a prompt template for the vectorDB-enhanced LLM generation - def answer_question(question, context, model): - if context == '': - prompt = question - else: - prompt = f'''请基于```内的内容回答问题。" - ``` - {context} - ``` - 我的问题是:{question}。 - ''' - history = None - print(prompt) - response, history = model.chat(tokenizer, prompt, history=None) - return response - - answer = answer_question(question, search(es_vector_store, question), - model) - print(f'question: {question}\n' - f'answer: {answer}') - - -""" - -python query.py -q 'how about the rights of men' -""" - -if __name__ == '__main__': - cli() diff --git a/projects/llama_index_rag/rag_data_api.png b/projects/llama_index_rag/rag_data_api.png deleted file mode 100644 index 0aa4b2e56..000000000 Binary files a/projects/llama_index_rag/rag_data_api.png and /dev/null differ diff --git a/projects/multi_gpu/README.md b/projects/multi_gpu/README.md deleted file mode 100644 index 812f8b49f..000000000 --- a/projects/multi_gpu/README.md +++ /dev/null @@ -1,46 +0,0 @@ -## 项目简介 -本项目提供基于 LitServe 的多 GPU 并行处理方案。LitServe 是一个简便且灵活的 AI 模型服务引擎,基于 FastAPI 构建。它为 FastAPI 增强了批处理、流式传输和 GPU 自动扩展等功能,无需为每个模型单独重建 FastAPI 服务器。 - -## 环境配置 -请使用以下命令配置所需的环境: -```bash -pip install -U litserve python-multipart filetype -pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com -pip install paddlepaddle-gpu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118 -``` - -## 快速使用 -### 1. 启动服务端 -以下示例展示了如何启动服务端,支持自定义设置: -```python -server = ls.LitServer( - MinerUAPI(output_dir='/tmp'), # 可自定义输出文件夹 - accelerator='cuda', # 启用 GPU 加速 - devices='auto', # "auto" 使用所有 GPU - workers_per_device=1, # 每个 GPU 启动一个服务实例 - timeout=False # 设置为 False 以禁用超时 -) -server.run(port=8000) # 设定服务端口为 8000 -``` - -启动服务端命令: -```bash -python server.py -``` - -### 2. 启动客户端 -以下代码展示了客户端的使用方式,可根据需求修改配置: -```python -files = ['demo/small_ocr.pdf'] # 替换为文件路径,支持 jpg/jpeg、png、pdf 文件 -n_jobs = np.clip(len(files), 1, 8) # 设置并发线程数,此处最大为 8,可根据自身修改 -results = Parallel(n_jobs, prefer='threads', verbose=10)( - delayed(do_parse)(p) for p in files -) -print(results) -``` - -启动客户端命令: -```bash -python client.py -``` -好了,你的文件会自动在多个 GPU 上并行处理!🍻🍻🍻 diff --git a/projects/multi_gpu/client.py b/projects/multi_gpu/client.py deleted file mode 100644 index 3e1c70b1b..000000000 --- a/projects/multi_gpu/client.py +++ /dev/null @@ -1,39 +0,0 @@ -import base64 -import requests -import numpy as np -from loguru import logger -from joblib import Parallel, delayed - - -def to_b64(file_path): - try: - with open(file_path, 'rb') as f: - return base64.b64encode(f.read()).decode('utf-8') - except Exception as e: - raise Exception(f'File: {file_path} - Info: {e}') - - -def do_parse(file_path, url='http://127.0.0.1:8000/predict', **kwargs): - try: - response = requests.post(url, json={ - 'file': to_b64(file_path), - 'kwargs': kwargs - }) - - if response.status_code == 200: - output = response.json() - output['file_path'] = file_path - return output - else: - raise Exception(response.text) - except Exception as e: - logger.error(f'File: {file_path} - Info: {e}') - - -if __name__ == '__main__': - files = ['small_ocr.pdf'] - n_jobs = np.clip(len(files), 1, 8) - results = Parallel(n_jobs, prefer='threads', verbose=10)( - delayed(do_parse)(p) for p in files - ) - print(results) diff --git a/projects/multi_gpu/server.py b/projects/multi_gpu/server.py deleted file mode 100644 index ea339a95c..000000000 --- a/projects/multi_gpu/server.py +++ /dev/null @@ -1,74 +0,0 @@ -import os -import fitz -import torch -import base64 -import litserve as ls -from uuid import uuid4 -from fastapi import HTTPException -from filetype import guess_extension -from magic_pdf.tools.common import do_parse -from magic_pdf.model.doc_analyze_by_custom_model import ModelSingleton - - -class MinerUAPI(ls.LitAPI): - def __init__(self, output_dir='/tmp'): - self.output_dir = output_dir - - def setup(self, device): - if device.startswith('cuda'): - os.environ['CUDA_VISIBLE_DEVICES'] = device.split(':')[-1] - if torch.cuda.device_count() > 1: - raise RuntimeError("Remove any CUDA actions before setting 'CUDA_VISIBLE_DEVICES'.") - - model_manager = ModelSingleton() - model_manager.get_model(True, False) - model_manager.get_model(False, False) - print(f'Model initialization complete on {device}!') - - def decode_request(self, request): - file = request['file'] - file = self.to_pdf(file) - opts = request.get('kwargs', {}) - opts.setdefault('debug_able', False) - opts.setdefault('parse_method', 'auto') - return file, opts - - def predict(self, inputs): - try: - do_parse(self.output_dir, pdf_name := str(uuid4()), inputs[0], [], **inputs[1]) - return pdf_name - except Exception as e: - raise HTTPException(status_code=500, detail=str(e)) - finally: - self.clean_memory() - - def encode_response(self, response): - return {'output_dir': response} - - def clean_memory(self): - import gc - if torch.cuda.is_available(): - torch.cuda.empty_cache() - torch.cuda.ipc_collect() - gc.collect() - - def to_pdf(self, file_base64): - try: - file_bytes = base64.b64decode(file_base64) - file_ext = guess_extension(file_bytes) - with fitz.open(stream=file_bytes, filetype=file_ext) as f: - if f.is_pdf: return f.tobytes() - return f.convert_to_pdf() - except Exception as e: - raise HTTPException(status_code=500, detail=str(e)) - - -if __name__ == '__main__': - server = ls.LitServer( - MinerUAPI(output_dir='/tmp'), - accelerator='cuda', - devices='auto', - workers_per_device=1, - timeout=False - ) - server.run(port=8000) diff --git a/projects/multi_gpu/small_ocr.pdf b/projects/multi_gpu/small_ocr.pdf deleted file mode 100644 index 2ab92332e..000000000 Binary files a/projects/multi_gpu/small_ocr.pdf and /dev/null differ diff --git a/projects/web/.gitignore b/projects/web/.gitignore deleted file mode 100644 index a547bf36d..000000000 --- a/projects/web/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/projects/web/README.md b/projects/web/README.md deleted file mode 100644 index 68a4ec70b..000000000 --- a/projects/web/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# MinerU web - -## Table of Contents -- [Local Frontend Development](#local-frontend-development) -- [Technology Stack](#technology-stack) - -## Local Frontend Development - -### Prerequisites -- Node.js 18.x -- pnpm - -### Installation Steps - -1. Install Node.js 18 - - Visit the [Node.js official website](https://nodejs.org/) to download and install Node.js version 18.x - -2. Install pnpm - ```bash - npm install -g pnpm -3. Clone the repository - ```git clone https://github.com/opendatalab/MinerU - cd ./projects/web - ``` -4. Install dependencies - ``` - pnpm install - ``` -5. Run the development server - ``` - pnpm run dev - ``` -6. ⚠️ Note: This command is for local development only, do not use for deployment! -Open your browser and visit http://localhost:5173 (or another address output in the console) - -7. Ensure that the backend service in ./projects/web_demo is running - -8. If you encounter an error when executing `pnpm install`, you can switch to an alternative package manager. - ``` - npm install -g yarn - yarn - yarn start - ``` - - -## Building the Project -``` -pnpm run build -``` -## Technology Stack -- React -- Tailwind CSS -- typeScript -- zustand -- ahooks diff --git a/projects/web/README_zh-CN.md b/projects/web/README_zh-CN.md deleted file mode 100644 index 64724bb27..000000000 --- a/projects/web/README_zh-CN.md +++ /dev/null @@ -1,61 +0,0 @@ -# MinerU web - - -## 目录 -- [前端本地开发](#前端本地开发) -- [技术栈](#技术栈) -## 前端本地开发 - -### 前置条件 -- Node.js 18.x -- pnpm - -### 安装步骤 - -1. 安装 Node.js 18 - - 访问 [Node.js 官网](https://nodejs.org/) 下载并安装 Node.js 18.x 版本 - -2. 安装 pnpm - ```bash - npm install -g pnpm - ``` -3. 克隆仓库 - ``` - 1. git clone https://github.com/opendatalab/MinerU - 2. cd ./projects/web - ``` - -4. 安装依赖 - ``` - pnpm install - ``` - -5. 运行开发服务器 - ``` - pnpm run dev - ``` - -6. ⚠️ 注意:此命令仅用于本地开发,不要用于部署! -打开浏览器访问 http://localhost:5173(或控制台输出的其他地址) -构建项目 -要构建生产版本,请执行以下命令: - - ``` - pnpm run build - ``` -7. 请确保./projects/web_demo后端服务启动 - -8. 如果pnpm install执行error,可更换包管理器 - ``` - npm install -g yarn - yarn - yarn start - ``` - -## 技术栈 - -- React -- Tailwind CSS -- typeScript -- zustand -- ahooks diff --git a/projects/web/eslint.config.js b/projects/web/eslint.config.js deleted file mode 100644 index 092408a9f..000000000 --- a/projects/web/eslint.config.js +++ /dev/null @@ -1,28 +0,0 @@ -import js from '@eslint/js' -import globals from 'globals' -import reactHooks from 'eslint-plugin-react-hooks' -import reactRefresh from 'eslint-plugin-react-refresh' -import tseslint from 'typescript-eslint' - -export default tseslint.config( - { ignores: ['dist'] }, - { - extends: [js.configs.recommended, ...tseslint.configs.recommended], - files: ['**/*.{ts,tsx}'], - languageOptions: { - ecmaVersion: 2020, - globals: globals.browser, - }, - plugins: { - 'react-hooks': reactHooks, - 'react-refresh': reactRefresh, - }, - rules: { - ...reactHooks.configs.recommended.rules, - 'react-refresh/only-export-components': [ - 'warn', - { allowConstantExport: true }, - ], - }, - }, -) diff --git a/projects/web/index.html b/projects/web/index.html deleted file mode 100644 index dfb16ecdf..000000000 --- a/projects/web/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - MinerU - - -
    - - - diff --git a/projects/web/package-lock.json b/projects/web/package-lock.json deleted file mode 100644 index 88dec5cbb..000000000 --- a/projects/web/package-lock.json +++ /dev/null @@ -1,15512 +0,0 @@ -{ - "name": "my-react-app", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "my-react-app", - "version": "0.0.0", - "dependencies": { - "@codemirror/view": "^6.33.0", - "@types/lodash": "^4.17.7", - "@types/qs": "^6.9.15", - "@types/react-copy-to-clipboard": "^5.0.7", - "@types/react-syntax-highlighter": "^15.5.13", - "@uiw/codemirror-extensions-langs": "^4.23.0", - "@uiw/react-codemirror": "^4.23.0", - "ahooks": "^3.8.1", - "antd": "^5.20.3", - "axios": "^1.7.5", - "classnames": "^2.5.1", - "js-cookie": "^3.0.5", - "lodash": "^4.17.21", - "qs": "^6.13.0", - "react": "^18.3.1", - "react-copy-to-clipboard": "^5.1.0", - "react-dom": "^18.3.1", - "react-intl": "^6.6.8", - "react-markdown": "^9.0.1", - "react-router-dom": "^6.26.1", - "react-syntax-highlighter": "^15.5.0", - "rehype-katex": "^7.0.1", - "rehype-raw": "^7.0.0", - "remark-gfm": "^4.0.0", - "remark-math": "^6.0.0", - "zustand": "^4.5.5" - }, - "devDependencies": { - "@eslint/js": "^9.9.0", - "@types/js-cookie": "^3.0.6", - "@types/node": "^22.5.1", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.1", - "autoprefixer": "^10.4.20", - "eslint": "^9.9.0", - "eslint-plugin-react-hooks": "^5.1.0-rc.0", - "eslint-plugin-react-refresh": "^0.4.9", - "globals": "^15.9.0", - "postcss": "^8.4.41", - "sass-embedded": "^1.77.8", - "tailwindcss": "^3.4.10", - "ts-prune": "^0.10.3", - "typescript": "^5.5.3", - "typescript-eslint": "^8.0.1", - "vite": "^5.4.1" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@ant-design/colors": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.1.0.tgz", - "integrity": "sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg==", - "dependencies": { - "@ctrl/tinycolor": "^3.6.1" - } - }, - "node_modules/@ant-design/cssinjs": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.21.1.tgz", - "integrity": "sha512-tyWnlK+XH7Bumd0byfbCiZNK43HEubMoCcu9VxwsAwiHdHTgWa+tMN0/yvxa+e8EzuFP1WdUNNPclRpVtD33lg==", - "dependencies": { - "@babel/runtime": "^7.11.1", - "@emotion/hash": "^0.8.0", - "@emotion/unitless": "^0.7.5", - "classnames": "^2.3.1", - "csstype": "^3.1.3", - "rc-util": "^5.35.0", - "stylis": "^4.3.3" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/@ant-design/cssinjs-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.0.3.tgz", - "integrity": "sha512-BrztZZKuoYcJK8uEH40ylBemf/Mu/QPiDos56g2bv6eUoniQkgQHOCOvA3+pncoFO1TaS8xcUCIqGzDA0I+ZVQ==", - "dependencies": { - "@ant-design/cssinjs": "^1.21.0", - "@babel/runtime": "^7.23.2", - "rc-util": "^5.38.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@ant-design/fast-color": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", - "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", - "dependencies": { - "@babel/runtime": "^7.24.7" - }, - "engines": { - "node": ">=8.x" - } - }, - "node_modules/@ant-design/icons": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.4.0.tgz", - "integrity": "sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA==", - "dependencies": { - "@ant-design/colors": "^7.0.0", - "@ant-design/icons-svg": "^4.4.0", - "@babel/runtime": "^7.24.8", - "classnames": "^2.2.6", - "rc-util": "^5.31.1" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/@ant-design/icons-svg": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", - "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" - }, - "node_modules/@ant-design/react-slick": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", - "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", - "dependencies": { - "@babel/runtime": "^7.10.4", - "classnames": "^2.2.5", - "json2mq": "^0.2.0", - "resize-observer-polyfill": "^1.5.1", - "throttle-debounce": "^5.0.0" - }, - "peerDependencies": { - "react": ">=16.9.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.25.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.5.tgz", - "integrity": "sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.4", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", - "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.4.tgz", - "integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.25.4" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", - "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", - "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.4.tgz", - "integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.4", - "@babel/parser": "^7.25.4", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.4", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.4.tgz", - "integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bufbuild/protobuf": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz", - "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==", - "dev": true - }, - "node_modules/@codemirror/autocomplete": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.0.tgz", - "integrity": "sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0" - }, - "peerDependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@codemirror/commands": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.6.0.tgz", - "integrity": "sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.27.0", - "@lezer/common": "^1.1.0" - } - }, - "node_modules/@codemirror/lang-angular": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/lang-angular/-/lang-angular-0.1.3.tgz", - "integrity": "sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==", - "dependencies": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.2", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.3" - } - }, - "node_modules/@codemirror/lang-cpp": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz", - "integrity": "sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/cpp": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-css": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.2.1.tgz", - "integrity": "sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/css": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-go": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-go/-/lang-go-6.0.1.tgz", - "integrity": "sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/go": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-html": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz", - "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/css": "^1.1.0", - "@lezer/html": "^1.3.0" - } - }, - "node_modules/@codemirror/lang-java": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-java/-/lang-java-6.0.1.tgz", - "integrity": "sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/java": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-javascript": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz", - "integrity": "sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/javascript": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-json": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.1.tgz", - "integrity": "sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/json": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-less": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-less/-/lang-less-6.0.2.tgz", - "integrity": "sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==", - "dependencies": { - "@codemirror/lang-css": "^6.2.0", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-lezer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-lezer/-/lang-lezer-6.0.1.tgz", - "integrity": "sha512-WHwjI7OqKFBEfkunohweqA5B/jIlxaZso6Nl3weVckz8EafYbPZldQEKSDb4QQ9H9BUkle4PVELP4sftKoA0uQ==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/lezer": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-liquid": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-liquid/-/lang-liquid-6.2.1.tgz", - "integrity": "sha512-J1Mratcm6JLNEiX+U2OlCDTysGuwbHD76XwuL5o5bo9soJtSbz2g6RU3vGHFyS5DC8rgVmFSzi7i6oBftm7tnA==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "node_modules/@codemirror/lang-markdown": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.2.5.tgz", - "integrity": "sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==", - "dependencies": { - "@codemirror/autocomplete": "^6.7.1", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.3.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/markdown": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-php": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-php/-/lang-php-6.0.1.tgz", - "integrity": "sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==", - "dependencies": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/php": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-python": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.1.6.tgz", - "integrity": "sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==", - "dependencies": { - "@codemirror/autocomplete": "^6.3.2", - "@codemirror/language": "^6.8.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/python": "^1.1.4" - } - }, - "node_modules/@codemirror/lang-rust": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz", - "integrity": "sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/rust": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-sass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-sass/-/lang-sass-6.0.2.tgz", - "integrity": "sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==", - "dependencies": { - "@codemirror/lang-css": "^6.2.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/sass": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-sql": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.7.1.tgz", - "integrity": "sha512-flQa7zemrLKk0TIrOJnpeyH/b29BcVybtsTeZMgAo40O6kGbrnUSCgwI3TF5iJY3O9VXJKKCA+i0CBVvDfr88w==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-vue": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/lang-vue/-/lang-vue-0.1.3.tgz", - "integrity": "sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==", - "dependencies": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.2", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "node_modules/@codemirror/lang-wast": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-wast/-/lang-wast-6.0.2.tgz", - "integrity": "sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-xml": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz", - "integrity": "sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/xml": "^1.0.0" - } - }, - "node_modules/@codemirror/lang-yaml": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-yaml/-/lang-yaml-6.1.1.tgz", - "integrity": "sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.2.0", - "@lezer/yaml": "^1.0.0" - } - }, - "node_modules/@codemirror/language": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.2.tgz", - "integrity": "sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.1.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "node_modules/@codemirror/language-data": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@codemirror/language-data/-/language-data-6.5.1.tgz", - "integrity": "sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==", - "dependencies": { - "@codemirror/lang-angular": "^0.1.0", - "@codemirror/lang-cpp": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-go": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-java": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/lang-json": "^6.0.0", - "@codemirror/lang-less": "^6.0.0", - "@codemirror/lang-liquid": "^6.0.0", - "@codemirror/lang-markdown": "^6.0.0", - "@codemirror/lang-php": "^6.0.0", - "@codemirror/lang-python": "^6.0.0", - "@codemirror/lang-rust": "^6.0.0", - "@codemirror/lang-sass": "^6.0.0", - "@codemirror/lang-sql": "^6.0.0", - "@codemirror/lang-vue": "^0.1.1", - "@codemirror/lang-wast": "^6.0.0", - "@codemirror/lang-xml": "^6.0.0", - "@codemirror/lang-yaml": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/legacy-modes": "^6.4.0" - } - }, - "node_modules/@codemirror/legacy-modes": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.4.1.tgz", - "integrity": "sha512-vdg3XY7OAs5uLDx2Iw+cGfnwtd7kM+Et/eMsqAGTfT/JKiVBQZXosTzjEbWAi/FrY6DcQIz8mQjBozFHZEUWQA==", - "dependencies": { - "@codemirror/language": "^6.0.0" - } - }, - "node_modules/@codemirror/lint": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.1.tgz", - "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/search": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.6.tgz", - "integrity": "sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==", - "dependencies": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "node_modules/@codemirror/state": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.1.tgz", - "integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==" - }, - "node_modules/@codemirror/theme-one-dark": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz", - "integrity": "sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@codemirror/view": { - "version": "6.33.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.33.0.tgz", - "integrity": "sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==", - "dependencies": { - "@codemirror/state": "^6.4.0", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, - "node_modules/@ctrl/tinycolor": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", - "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" - }, - "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", - "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", - "dev": true, - "dependencies": { - "@eslint/object-schema": "^2.1.4", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.9.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.1.tgz", - "integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@formatjs/ecma402-abstract": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", - "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", - "dependencies": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.7.8", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", - "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/icu-skeleton-parser": "1.8.2", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", - "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/intl": { - "version": "2.10.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.10.4.tgz", - "integrity": "sha512-56483O+HVcL0c7VucAS2tyH020mt9XTozZO67cwtGg0a7KWDukS/FzW3OnvaHmTHDuYsoPIzO+ZHVfU6fT/bJw==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.8", - "@formatjs/intl-displaynames": "6.6.8", - "@formatjs/intl-listformat": "7.5.7", - "intl-messageformat": "10.5.14", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "typescript": "^4.7 || 5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@formatjs/intl-displaynames": { - "version": "6.6.8", - "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.6.8.tgz", - "integrity": "sha512-Lgx6n5KxN16B3Pb05z3NLEBQkGoXnGjkTBNCZI+Cn17YjHJ3fhCeEJJUqRlIZmJdmaXQhjcQVDp6WIiNeRYT5g==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/intl-listformat": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.5.7.tgz", - "integrity": "sha512-MG2TSChQJQT9f7Rlv+eXwUFiG24mKSzmF144PLb8m8OixyXqn4+YWU+5wZracZGCgVTVmx8viCf7IH3QXoiB2g==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "node_modules/@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", - "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", - "dev": true, - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@lezer/common": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", - "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==" - }, - "node_modules/@lezer/cpp": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lezer/cpp/-/cpp-1.1.2.tgz", - "integrity": "sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/css": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.8.tgz", - "integrity": "sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/go": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@lezer/go/-/go-1.0.0.tgz", - "integrity": "sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/highlight": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.1.tgz", - "integrity": "sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/html": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.10.tgz", - "integrity": "sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/java": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lezer/java/-/java-1.1.2.tgz", - "integrity": "sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/javascript": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.17.tgz", - "integrity": "sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.1.3", - "@lezer/lr": "^1.3.0" - } - }, - "node_modules/@lezer/json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.2.tgz", - "integrity": "sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/lezer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lezer/lezer/-/lezer-1.1.2.tgz", - "integrity": "sha512-O8yw3CxPhzYHB1hvwbdozjnAslhhR8A5BH7vfEMof0xk3p+/DFDfZkA9Tde6J+88WgtwaHy4Sy6ThZSkaI0Evw==", - "dependencies": { - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/lr": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", - "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", - "dependencies": { - "@lezer/common": "^1.0.0" - } - }, - "node_modules/@lezer/markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.3.0.tgz", - "integrity": "sha512-ErbEQ15eowmJUyT095e9NJc3BI9yZ894fjSDtHftD0InkfUBGgnKSU6dvan9jqsZuNHg2+ag/1oyDRxNsENupQ==", - "dependencies": { - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "node_modules/@lezer/php": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/php/-/php-1.0.2.tgz", - "integrity": "sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.1.0" - } - }, - "node_modules/@lezer/python": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@lezer/python/-/python-1.1.14.tgz", - "integrity": "sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/rust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/rust/-/rust-1.0.2.tgz", - "integrity": "sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/sass": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@lezer/sass/-/sass-1.0.6.tgz", - "integrity": "sha512-w/RCO2dIzZH1To8p+xjs8cE+yfgGus8NZ/dXeWl/QzHyr+TeBs71qiE70KPImEwvTsmEjoWh0A5SxMzKd5BWBQ==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/xml": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.5.tgz", - "integrity": "sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@lezer/yaml": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@lezer/yaml/-/yaml-1.0.3.tgz", - "integrity": "sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==", - "dependencies": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.4.0" - } - }, - "node_modules/@nextjournal/lang-clojure": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@nextjournal/lang-clojure/-/lang-clojure-1.0.0.tgz", - "integrity": "sha512-gOCV71XrYD0DhwGoPMWZmZ0r92/lIHsqQu9QWdpZYYBwiChNwMO4sbVMP7eTuAqffFB2BTtCSC+1skSH9d3bNg==", - "dependencies": { - "@codemirror/language": "^6.0.0", - "@nextjournal/lezer-clojure": "1.0.0" - } - }, - "node_modules/@nextjournal/lezer-clojure": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@nextjournal/lezer-clojure/-/lezer-clojure-1.0.0.tgz", - "integrity": "sha512-VZyuGu4zw5mkTOwQBTaGVNWmsOZAPw5ZRxu1/Knk/Xfs7EDBIogwIs5UXTYkuECX5ZQB8eOB+wKA2pc7VyqaZQ==", - "dependencies": { - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@rc-component/async-validator": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", - "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", - "dependencies": { - "@babel/runtime": "^7.24.4" - }, - "engines": { - "node": ">=14.x" - } - }, - "node_modules/@rc-component/color-picker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", - "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", - "dependencies": { - "@ant-design/fast-color": "^2.0.6", - "@babel/runtime": "^7.23.6", - "classnames": "^2.2.6", - "rc-util": "^5.38.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/context": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", - "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/mini-decimal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", - "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", - "dependencies": { - "@babel/runtime": "^7.18.0" - }, - "engines": { - "node": ">=8.x" - } - }, - "node_modules/@rc-component/mutate-observer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", - "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", - "dependencies": { - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/portal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", - "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", - "dependencies": { - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/qrcode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.0.tgz", - "integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==", - "dependencies": { - "@babel/runtime": "^7.24.7", - "classnames": "^2.3.2", - "rc-util": "^5.38.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/tour": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.0.tgz", - "integrity": "sha512-h6hyILDwL+In9GAgRobwRWihLqqsD7Uft3fZGrJ7L4EiyCoxbnNYwzPXDfz7vNDhWeVyvAWQJj9fJCzpI4+b4g==", - "dependencies": { - "@babel/runtime": "^7.18.0", - "@rc-component/portal": "^1.0.0-9", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@rc-component/trigger": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.1.tgz", - "integrity": "sha512-fuU11J8pOt6+U/tU6/CAv8wjCwGaNeRk9f5k8HQth7JBbJ6MMH62WhGycVW75VnXfBZgL/7kO+wbiO2Xc9U9sQ==", - "dependencies": { - "@babel/runtime": "^7.23.2", - "@rc-component/portal": "^1.1.0", - "classnames": "^2.3.2", - "rc-motion": "^2.0.0", - "rc-resize-observer": "^1.3.1", - "rc-util": "^5.38.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/@remix-run/router": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.1.tgz", - "integrity": "sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@replit/codemirror-lang-csharp": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@replit/codemirror-lang-csharp/-/codemirror-lang-csharp-6.2.0.tgz", - "integrity": "sha512-6utbaWkoymhoAXj051mkRp+VIJlpwUgCX9Toevz3YatiZsz512fw3OVCedXQx+WcR0wb6zVHjChnuxqfCLtFVQ==", - "peerDependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@replit/codemirror-lang-nix": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@replit/codemirror-lang-nix/-/codemirror-lang-nix-6.0.1.tgz", - "integrity": "sha512-lvzjoYn9nfJzBD5qdm3Ut6G3+Or2wEacYIDJ49h9+19WSChVnxv4ojf+rNmQ78ncuxIt/bfbMvDLMeMP0xze6g==", - "peerDependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@replit/codemirror-lang-solidity": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@replit/codemirror-lang-solidity/-/codemirror-lang-solidity-6.0.2.tgz", - "integrity": "sha512-/dpTVH338KFV6SaDYYSadkB4bI/0B0QRF/bkt1XS3t3QtyR49mn6+2k0OUQhvt2ZSO7kt10J+OPilRAtgbmX0w==", - "dependencies": { - "@lezer/highlight": "^1.2.0" - }, - "peerDependencies": { - "@codemirror/language": "^6.0.0" - } - }, - "node_modules/@replit/codemirror-lang-svelte": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@replit/codemirror-lang-svelte/-/codemirror-lang-svelte-6.0.0.tgz", - "integrity": "sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==", - "peerDependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.1", - "@codemirror/lang-html": "^6.2.0", - "@codemirror/lang-javascript": "^6.1.1", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/javascript": "^1.2.0", - "@lezer/lr": "^1.0.0" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.1.tgz", - "integrity": "sha512-2thheikVEuU7ZxFXubPDOtspKn1x0yqaYQwvALVtEcvFhMifPADBrgRPyHV0TF3b+9BgvgjgagVyvA/UqPZHmg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.1.tgz", - "integrity": "sha512-t1lLYn4V9WgnIFHXy1d2Di/7gyzBWS8G5pQSXdZqfrdCGTwi1VasRMSS81DTYb+avDs/Zz4A6dzERki5oRYz1g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.1.tgz", - "integrity": "sha512-AH/wNWSEEHvs6t4iJ3RANxW5ZCK3fUnmf0gyMxWCesY1AlUj8jY7GC+rQE4wd3gwmZ9XDOpL0kcFnCjtN7FXlA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.1.tgz", - "integrity": "sha512-dO0BIz/+5ZdkLZrVgQrDdW7m2RkrLwYTh2YMFG9IpBtlC1x1NPNSXkfczhZieOlOLEqgXOFH3wYHB7PmBtf+Bg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.1.tgz", - "integrity": "sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.1.tgz", - "integrity": "sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.1.tgz", - "integrity": "sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.1.tgz", - "integrity": "sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.1.tgz", - "integrity": "sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.1.tgz", - "integrity": "sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.1.tgz", - "integrity": "sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.1.tgz", - "integrity": "sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.1.tgz", - "integrity": "sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.1.tgz", - "integrity": "sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.1.tgz", - "integrity": "sha512-tNg+jJcKR3Uwe4L0/wY3Ro0H+u3nrb04+tcq1GSYzBEmKLeOQF2emk1whxlzNqb6MMrQ2JOcQEpuuiPLyRcSIw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.1.tgz", - "integrity": "sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@ts-morph/common": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.12.3.tgz", - "integrity": "sha512-4tUmeLyXJnJWvTFOKtcNJ1yh0a3SsTLi2MUoyj8iUNznFRN1ZquaNe7Oukqrnki2FzZkm0J9adCNLDZxUzvj+w==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.7", - "minimatch": "^3.0.4", - "mkdirp": "^1.0.4", - "path-browserify": "^1.0.1" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" - }, - "node_modules/@types/estree-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", - "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", - "dependencies": { - "@types/estree": "*" - } - }, - "node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/@types/hast/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/js-cookie": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.6.tgz", - "integrity": "sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==", - "dev": true - }, - "node_modules/@types/katex": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", - "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==" - }, - "node_modules/@types/lodash": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", - "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==" - }, - "node_modules/@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" - }, - "node_modules/@types/node": { - "version": "22.5.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.1.tgz", - "integrity": "sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw==", - "dev": true, - "dependencies": { - "undici-types": "~6.19.2" - } - }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" - }, - "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" - }, - "node_modules/@types/react": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.4.tgz", - "integrity": "sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw==", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-copy-to-clipboard": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.7.tgz", - "integrity": "sha512-Gft19D+as4M+9Whq1oglhmK49vqPhcLzk8WfvfLvaYMIPYanyfLy0+CwFucMJfdKoSFyySPmkkWn8/E6voQXjQ==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", - "dev": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-syntax-highlighter": { - "version": "15.5.13", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.13.tgz", - "integrity": "sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz", - "integrity": "sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.3.0", - "@typescript-eslint/type-utils": "8.3.0", - "@typescript-eslint/utils": "8.3.0", - "@typescript-eslint/visitor-keys": "8.3.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.3.0.tgz", - "integrity": "sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "8.3.0", - "@typescript-eslint/types": "8.3.0", - "@typescript-eslint/typescript-estree": "8.3.0", - "@typescript-eslint/visitor-keys": "8.3.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz", - "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.3.0", - "@typescript-eslint/visitor-keys": "8.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz", - "integrity": "sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "8.3.0", - "@typescript-eslint/utils": "8.3.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz", - "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz", - "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.3.0", - "@typescript-eslint/visitor-keys": "8.3.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz", - "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.3.0", - "@typescript-eslint/types": "8.3.0", - "@typescript-eslint/typescript-estree": "8.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz", - "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "8.3.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@uiw/codemirror-extensions-basic-setup": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.23.0.tgz", - "integrity": "sha512-+k5nkRpUWGaHr1JWT8jcKsVewlXw5qBgSopm9LW8fZ6KnSNZBycz8kHxh0+WSvckmXEESGptkIsb7dlkmJT/hQ==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@codemirror/autocomplete": ">=6.0.0", - "@codemirror/commands": ">=6.0.0", - "@codemirror/language": ">=6.0.0", - "@codemirror/lint": ">=6.0.0", - "@codemirror/search": ">=6.0.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/view": ">=6.0.0" - } - }, - "node_modules/@uiw/codemirror-extensions-langs": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-langs/-/codemirror-extensions-langs-4.23.0.tgz", - "integrity": "sha512-WUJnTgS3CIV5TZPjwYO+mvRqxfvSSSKC2a+Wm5Uk3uFoZZ7O/GKi4bKKLsIHQkCwNnd9CHJzwN2dpIVrK1AmLA==", - "dependencies": { - "@codemirror/lang-angular": "^0.1.0", - "@codemirror/lang-cpp": "^6.0.0", - "@codemirror/lang-css": "^6.2.0", - "@codemirror/lang-html": "^6.4.0", - "@codemirror/lang-java": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.0", - "@codemirror/lang-json": "^6.0.0", - "@codemirror/lang-less": "^6.0.1", - "@codemirror/lang-lezer": "^6.0.0", - "@codemirror/lang-liquid": "^6.0.1", - "@codemirror/lang-markdown": "^6.1.0", - "@codemirror/lang-php": "^6.0.0", - "@codemirror/lang-python": "^6.1.0", - "@codemirror/lang-rust": "^6.0.0", - "@codemirror/lang-sass": "^6.0.1", - "@codemirror/lang-sql": "^6.4.0", - "@codemirror/lang-vue": "^0.1.1", - "@codemirror/lang-wast": "^6.0.0", - "@codemirror/lang-xml": "^6.0.0", - "@codemirror/language-data": ">=6.0.0", - "@codemirror/legacy-modes": ">=6.0.0", - "@nextjournal/lang-clojure": "^1.0.0", - "@replit/codemirror-lang-csharp": "^6.1.0", - "@replit/codemirror-lang-nix": "^6.0.1", - "@replit/codemirror-lang-solidity": "^6.0.1", - "@replit/codemirror-lang-svelte": "^6.0.0", - "codemirror-lang-mermaid": "^0.5.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@codemirror/language-data": ">=6.0.0", - "@codemirror/legacy-modes": ">=6.0.0" - } - }, - "node_modules/@uiw/react-codemirror": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.23.0.tgz", - "integrity": "sha512-MnqTXfgeLA3fsUUQjqjJgemEuNyoGALgsExVm0NQAllAAi1wfj+IoKFeK+h3XXMlTFRCFYOUh4AHDv0YXJLsOg==", - "dependencies": { - "@babel/runtime": "^7.18.6", - "@codemirror/commands": "^6.1.0", - "@codemirror/state": "^6.1.1", - "@codemirror/theme-one-dark": "^6.0.0", - "@uiw/codemirror-extensions-basic-setup": "4.23.0", - "codemirror": "^6.0.0" - }, - "funding": { - "url": "https://jaywcjlove.github.io/#/sponsor" - }, - "peerDependencies": { - "@babel/runtime": ">=7.11.0", - "@codemirror/state": ">=6.0.0", - "@codemirror/theme-one-dark": ">=6.0.0", - "@codemirror/view": ">=6.0.0", - "codemirror": ">=6.0.0", - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" - } - }, - "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ahooks": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/ahooks/-/ahooks-3.8.1.tgz", - "integrity": "sha512-JoP9+/RWO7MnI/uSKdvQ8WB10Y3oo1PjLv+4Sv4Vpm19Z86VUMdXh+RhWvMGxZZs06sq2p0xVtFk8Oh5ZObsoA==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "dayjs": "^1.9.1", - "intersection-observer": "^0.12.0", - "js-cookie": "^3.0.5", - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.2", - "resize-observer-polyfill": "^1.5.1", - "screenfull": "^5.0.0", - "tslib": "^2.4.1" - }, - "engines": { - "node": ">=8.0.0" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/antd": { - "version": "5.20.3", - "resolved": "https://registry.npmjs.org/antd/-/antd-5.20.3.tgz", - "integrity": "sha512-v2s5LJlhuccIKLT17ESXQDkiQJdPK4jXg4x2pmSSRlrKXAxfftn8Zhd/7pdF3qR3OkwheQpSRjynrNZKp9Tgkg==", - "dependencies": { - "@ant-design/colors": "^7.1.0", - "@ant-design/cssinjs": "^1.21.0", - "@ant-design/cssinjs-utils": "^1.0.3", - "@ant-design/icons": "^5.4.0", - "@ant-design/react-slick": "~1.1.2", - "@babel/runtime": "^7.24.8", - "@ctrl/tinycolor": "^3.6.1", - "@rc-component/color-picker": "~2.0.1", - "@rc-component/mutate-observer": "^1.1.0", - "@rc-component/qrcode": "~1.0.0", - "@rc-component/tour": "~1.15.0", - "@rc-component/trigger": "^2.2.1", - "classnames": "^2.5.1", - "copy-to-clipboard": "^3.3.3", - "dayjs": "^1.11.11", - "rc-cascader": "~3.27.0", - "rc-checkbox": "~3.3.0", - "rc-collapse": "~3.7.3", - "rc-dialog": "~9.5.2", - "rc-drawer": "~7.2.0", - "rc-dropdown": "~4.2.0", - "rc-field-form": "~2.4.0", - "rc-image": "~7.9.0", - "rc-input": "~1.6.3", - "rc-input-number": "~9.2.0", - "rc-mentions": "~2.15.0", - "rc-menu": "~9.14.1", - "rc-motion": "^2.9.2", - "rc-notification": "~5.6.0", - "rc-pagination": "~4.2.0", - "rc-picker": "~4.6.13", - "rc-progress": "~4.0.0", - "rc-rate": "~2.13.0", - "rc-resize-observer": "^1.4.0", - "rc-segmented": "~2.3.0", - "rc-select": "~14.15.1", - "rc-slider": "~11.1.5", - "rc-steps": "~6.0.1", - "rc-switch": "~4.1.0", - "rc-table": "~7.45.7", - "rc-tabs": "~15.1.1", - "rc-textarea": "~1.8.1", - "rc-tooltip": "~6.2.0", - "rc-tree": "~5.8.8", - "rc-tree-select": "~5.22.1", - "rc-upload": "~4.7.0", - "rc-util": "^5.43.0", - "scroll-into-view-if-needed": "^3.1.0", - "throttle-debounce": "^5.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ant-design" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/axios": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz", - "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", - "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer-builder": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", - "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", - "dev": true - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001653", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz", - "integrity": "sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" - }, - "node_modules/code-block-writer": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.3.tgz", - "integrity": "sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==", - "dev": true - }, - "node_modules/codemirror": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz", - "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", - "dependencies": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, - "node_modules/codemirror-lang-mermaid": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/codemirror-lang-mermaid/-/codemirror-lang-mermaid-0.5.0.tgz", - "integrity": "sha512-Taw/2gPCyNArQJCxIP/HSUif+3zrvD+6Ugt7KJZ2dUKou/8r3ZhcfG8krNTZfV2iu8AuGnymKuo7bLPFyqsh/A==", - "dependencies": { - "@codemirror/language": "^6.9.0", - "@lezer/highlight": "^1.1.6", - "@lezer/lr": "^1.3.10" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/compute-scroll-into-view": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", - "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/copy-to-clipboard": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", - "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", - "dependencies": { - "toggle-selection": "^1.0.6" - } - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cosmiconfig/node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" - }, - "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "dependencies": { - "dequal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", - "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "9.9.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.1.tgz", - "integrity": "sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.18.0", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.9.1", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.0", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.2", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.1.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "5.1.0-rc-fb9a90fa48-20240614", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", - "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.11.tgz", - "integrity": "sha512-wrAKxMbVr8qhXTtIKfXqAn5SAtRZt0aXxe5P23Fh4pUAdC6XEsybGLB8P0PI4j1yYqOgUEUlzKAGDfo7rJOjcw==", - "dev": true, - "peerDependencies": { - "eslint": ">=7" - } - }, - "node_modules/eslint-scope": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", - "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", - "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", - "dev": true, - "dependencies": { - "acorn": "^8.12.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fault": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", - "dependencies": { - "format": "^0.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true, - "engines": { - "node": "*" - }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", - "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-from-dom": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.0.tgz", - "integrity": "sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg==", - "dependencies": { - "@types/hast": "^3.0.0", - "hastscript": "^8.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-dom/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-from-dom/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-from-dom/node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-dom/node_modules/hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-dom/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-from-dom/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-from-html": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.2.tgz", - "integrity": "sha512-HwOHwxdt2zC5KQ/CNoybBntRook2zJvfZE/u5/Ap7aLPe22bDqen7KwGkOqOyzL5zIqKwiYX/OTtE0FWgr6XXA==", - "dependencies": { - "@types/hast": "^3.0.0", - "devlop": "^1.1.0", - "hast-util-from-parse5": "^8.0.0", - "parse5": "^7.0.0", - "vfile": "^6.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html-isomorphic": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz", - "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-from-dom": "^5.0.0", - "hast-util-from-html": "^2.0.0", - "unist-util-remove-position": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-html-isomorphic/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-from-html/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-from-parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^8.0.0", - "property-information": "^6.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-from-parse5/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-from-parse5/node_modules/hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-from-parse5/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-from-parse5/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-is-element": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", - "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-is-element/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.4.tgz", - "integrity": "sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-from-parse5": "^8.0.0", - "hast-util-to-parse5": "^8.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "parse5": "^7.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-raw/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", - "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", - "dependencies": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "dependencies": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-parse5/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-to-parse5/node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-parse5/node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-parse5/node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/hast-util-to-text": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", - "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "hast-util-is-element": "^3.0.0", - "unist-util-find-after": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-to-text/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "dependencies": { - "@types/hast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/hast-util-whitespace/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "dependencies": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/html-url-attributes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz", - "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", - "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", - "dev": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inline-style-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", - "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" - }, - "node_modules/intersection-observer": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.2.tgz", - "integrity": "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==" - }, - "node_modules/intl-messageformat": { - "version": "10.5.14", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", - "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.8", - "tslib": "^2.4.0" - } - }, - "node_modules/is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dependencies": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dev": true, - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true, - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", - "engines": { - "node": ">=14" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json2mq": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", - "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", - "dependencies": { - "string-convert": "^0.2.0" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/katex": { - "version": "0.16.11", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz", - "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==", - "funding": [ - "https://opencollective.com/katex", - "https://github.com/sponsors/katex" - ], - "dependencies": { - "commander": "^8.3.0" - }, - "bin": { - "katex": "cli.js" - } - }, - "node_modules/katex/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lowlight": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", - "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", - "dependencies": { - "fault": "^1.0.0", - "highlight.js": "~10.7.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-find-and-replace": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", - "dependencies": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", - "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", - "dependencies": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "dependencies": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "dependencies": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-math": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", - "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "longest-streak": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.1.0", - "unist-util-remove-position": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-math/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/mdast-util-mdx-expression": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", - "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-expression/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/mdast-util-mdx-jsx": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", - "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", - "dependencies": { - "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/mdast-util-mdx-jsx/node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" - }, - "node_modules/mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", - "dependencies": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-mdxjs-esm/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "dependencies": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/mdast-util-to-markdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", - "dependencies": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "dependencies": { - "@types/mdast": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", - "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "dependencies": { - "micromark-extension-gfm-autolink-literal": "^2.0.0", - "micromark-extension-gfm-footnote": "^2.0.0", - "micromark-extension-gfm-strikethrough": "^2.0.0", - "micromark-extension-gfm-table": "^2.0.0", - "micromark-extension-gfm-tagfilter": "^2.0.0", - "micromark-extension-gfm-task-list-item": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", - "dependencies": { - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-table": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", - "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-tagfilter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "dependencies": { - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "dependencies": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-extension-math": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", - "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", - "dependencies": { - "@types/katex": "^0.16.0", - "devlop": "^1.0.0", - "katex": "^0.16.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", - "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "dependencies": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-entities/node_modules/character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "postcss-selector-parser": "^6.1.1" - }, - "engines": { - "node": ">=12.0" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "dependencies": { - "xtend": "^4.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/rc-cascader": { - "version": "3.27.0", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.27.0.tgz", - "integrity": "sha512-z5uq8VvQadFUBiuZJ7YF5UAUGNkZtdEtcEYiIA94N/Kc2MIKr6lEbN5HyVddvYSgwWlKqnL6pH5bFXFuIK3MNg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "array-tree-filter": "^2.1.0", - "classnames": "^2.3.1", - "rc-select": "~14.15.0", - "rc-tree": "~5.8.1", - "rc-util": "^5.37.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-checkbox": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.3.0.tgz", - "integrity": "sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.3.2", - "rc-util": "^5.25.2" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-collapse": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.3.tgz", - "integrity": "sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.3.4", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-dialog": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.5.2.tgz", - "integrity": "sha512-qVUjc8JukG+j/pNaHVSRa2GO2/KbV2thm7yO4hepQ902eGdYK913sGkwg/fh9yhKYV1ql3BKIN2xnud3rEXAPw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/portal": "^1.0.0-8", - "classnames": "^2.2.6", - "rc-motion": "^2.3.0", - "rc-util": "^5.21.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-drawer": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.2.0.tgz", - "integrity": "sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@rc-component/portal": "^1.1.1", - "classnames": "^2.2.6", - "rc-motion": "^2.6.1", - "rc-util": "^5.38.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-dropdown": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.0.tgz", - "integrity": "sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.2.6", - "rc-util": "^5.17.0" - }, - "peerDependencies": { - "react": ">=16.11.0", - "react-dom": ">=16.11.0" - } - }, - "node_modules/rc-field-form": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.4.0.tgz", - "integrity": "sha512-XZ/lF9iqf9HXApIHQHqzJK5v2w4mkUMsVqAzOyWVzoiwwXEavY6Tpuw7HavgzIoD+huVff4JghSGcgEfX6eycg==", - "dependencies": { - "@babel/runtime": "^7.18.0", - "@rc-component/async-validator": "^5.0.3", - "rc-util": "^5.32.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-image": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.9.0.tgz", - "integrity": "sha512-l4zqO5E0quuLMCtdKfBgj4Suv8tIS011F5k1zBBlK25iMjjiNHxA0VeTzGFtUZERSA45gvpXDg8/P6qNLjR25g==", - "dependencies": { - "@babel/runtime": "^7.11.2", - "@rc-component/portal": "^1.0.2", - "classnames": "^2.2.6", - "rc-dialog": "~9.5.2", - "rc-motion": "^2.6.2", - "rc-util": "^5.34.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-input": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.6.3.tgz", - "integrity": "sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA==", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.18.1" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/rc-input-number": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.2.0.tgz", - "integrity": "sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/mini-decimal": "^1.0.1", - "classnames": "^2.2.5", - "rc-input": "~1.6.0", - "rc-util": "^5.40.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-mentions": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.15.0.tgz", - "integrity": "sha512-f5v5i7VdqvBDXbphoqcQWmXDif2Msd2arritVoWybrVDuHE6nQ7XCYsybHbV//WylooK52BFDouFvyaRDtXZEw==", - "dependencies": { - "@babel/runtime": "^7.22.5", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.2.6", - "rc-input": "~1.6.0", - "rc-menu": "~9.14.0", - "rc-textarea": "~1.8.0", - "rc-util": "^5.34.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-menu": { - "version": "9.14.1", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.14.1.tgz", - "integrity": "sha512-5wlRb3M8S4yGlWhSoEYJ7ZVRElyScdcpUHxgiLxkeig1tEdyKrnED3B2fhpN0Rrpdp9jyhnmZR/Lwq2fH5VvDQ==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/trigger": "^2.0.0", - "classnames": "2.x", - "rc-motion": "^2.4.3", - "rc-overflow": "^1.3.1", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-motion": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.2.tgz", - "integrity": "sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw==", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.43.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-notification": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.0.tgz", - "integrity": "sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.9.0", - "rc-util": "^5.20.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-overflow": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.2.tgz", - "integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.37.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-pagination": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-4.2.0.tgz", - "integrity": "sha512-V6qeANJsT6tmOcZ4XiUmj8JXjRLbkusuufpuoBw2GiAn94fIixYjFLmbruD1Sbhn8fPLDnWawPp4CN37zQorvw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.3.2", - "rc-util": "^5.38.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-picker": { - "version": "4.6.14", - "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.6.14.tgz", - "integrity": "sha512-7DuTfUFdkxmsNpWQ0TWv6FPGna5e6KKC4nxtx3x9xhumLz7jb3fhlDdWQvqEL6tpt9DOb1+N5j+wB+lDOSS9kg==", - "dependencies": { - "@babel/runtime": "^7.24.7", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.2.1", - "rc-overflow": "^1.3.2", - "rc-resize-observer": "^1.4.0", - "rc-util": "^5.43.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "date-fns": ">= 2.x", - "dayjs": ">= 1.x", - "luxon": ">= 3.x", - "moment": ">= 2.x", - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - }, - "peerDependenciesMeta": { - "date-fns": { - "optional": true - }, - "dayjs": { - "optional": true - }, - "luxon": { - "optional": true - }, - "moment": { - "optional": true - } - } - }, - "node_modules/rc-progress": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", - "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-util": "^5.16.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-rate": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.0.tgz", - "integrity": "sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.0.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-resize-observer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz", - "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==", - "dependencies": { - "@babel/runtime": "^7.20.7", - "classnames": "^2.2.1", - "rc-util": "^5.38.0", - "resize-observer-polyfill": "^1.5.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-segmented": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.3.0.tgz", - "integrity": "sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==", - "dependencies": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-motion": "^2.4.4", - "rc-util": "^5.17.0" - }, - "peerDependencies": { - "react": ">=16.0.0", - "react-dom": ">=16.0.0" - } - }, - "node_modules/rc-select": { - "version": "14.15.1", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.15.1.tgz", - "integrity": "sha512-mGvuwW1RMm1NCSI8ZUoRoLRK51R2Nb+QJnmiAvbDRcjh2//ulCkxeV6ZRFTECPpE1t2DPfyqZMPw90SVJzQ7wQ==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/trigger": "^2.1.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-overflow": "^1.3.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.5.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-slider": { - "version": "11.1.5", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.5.tgz", - "integrity": "sha512-b77H5PbjMKsvkYXAYIkn50QuFX6ICQmCTibDinI9q+BHx65/TV4TeU25+oadhSRzykxs0/vBWeKBwRyySOeWlg==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.36.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-steps": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", - "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", - "dependencies": { - "@babel/runtime": "^7.16.7", - "classnames": "^2.2.3", - "rc-util": "^5.16.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-switch": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", - "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", - "dependencies": { - "@babel/runtime": "^7.21.0", - "classnames": "^2.2.1", - "rc-util": "^5.30.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-table": { - "version": "7.45.7", - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.45.7.tgz", - "integrity": "sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "@rc-component/context": "^1.4.0", - "classnames": "^2.2.5", - "rc-resize-observer": "^1.1.0", - "rc-util": "^5.37.0", - "rc-virtual-list": "^3.14.2" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tabs": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.1.1.tgz", - "integrity": "sha512-Tc7bJvpEdkWIVCUL7yQrMNBJY3j44NcyWS48jF/UKMXuUlzaXK+Z/pEL5LjGcTadtPvVmNqA40yv7hmr+tCOAw==", - "dependencies": { - "@babel/runtime": "^7.11.2", - "classnames": "2.x", - "rc-dropdown": "~4.2.0", - "rc-menu": "~9.14.0", - "rc-motion": "^2.6.2", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.34.1" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-textarea": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.8.1.tgz", - "integrity": "sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-input": "~1.6.0", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.27.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tooltip": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.2.0.tgz", - "integrity": "sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==", - "dependencies": { - "@babel/runtime": "^7.11.2", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.3.1" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-tree": { - "version": "5.8.8", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.8.tgz", - "integrity": "sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.5.1" - }, - "engines": { - "node": ">=10.x" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-tree-select": { - "version": "5.22.2", - "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.22.2.tgz", - "integrity": "sha512-WHmWCck4+8mf4/KFTjw70AlnoNPkX4C1TOIzzwxfZ7w8hcNO4bzggoeO2Q3fAedjZteN5I3t2dT0BCZAnHedlQ==", - "dependencies": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-select": "~14.15.0", - "rc-tree": "~5.8.1", - "rc-util": "^5.16.1" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - } - }, - "node_modules/rc-upload": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.7.0.tgz", - "integrity": "sha512-eUwxYNHlsYe5vYhKFAUGrQG95JrnPzY+BmPi1Daq39fWNl/eOc7v4UODuWrVp2LFkQBuV3cMCG/I68iub6oBrg==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.5", - "rc-util": "^5.2.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-util": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.43.0.tgz", - "integrity": "sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==", - "dependencies": { - "@babel/runtime": "^7.18.3", - "react-is": "^18.2.0" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/rc-virtual-list": { - "version": "3.14.5", - "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.14.5.tgz", - "integrity": "sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==", - "dependencies": { - "@babel/runtime": "^7.20.0", - "classnames": "^2.2.6", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.36.0" - }, - "engines": { - "node": ">=8.x" - }, - "peerDependencies": { - "react": ">=16.9.0", - "react-dom": ">=16.9.0" - } - }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-copy-to-clipboard": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", - "integrity": "sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==", - "dependencies": { - "copy-to-clipboard": "^3.3.1", - "prop-types": "^15.8.1" - }, - "peerDependencies": { - "react": "^15.3.0 || 16 || 17 || 18" - } - }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" - }, - "node_modules/react-intl": { - "version": "6.6.8", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.6.8.tgz", - "integrity": "sha512-M0pkhzcgV31h++2901BiRXWl69hp2zPyLxRrSwRjd1ErXbNoubz/f4M6DrRTd4OiSUrT4ajRQzrmtS5plG4FtA==", - "dependencies": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/icu-messageformat-parser": "2.7.8", - "@formatjs/intl": "2.10.4", - "@formatjs/intl-displaynames": "6.6.8", - "@formatjs/intl-listformat": "7.5.7", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/react": "16 || 17 || 18", - "hoist-non-react-statics": "^3.3.2", - "intl-messageformat": "10.5.14", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "react": "^16.6.0 || 17 || 18", - "typescript": "^4.7 || 5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - }, - "node_modules/react-markdown": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", - "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", - "dependencies": { - "@types/hast": "^3.0.0", - "devlop": "^1.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "html-url-attributes": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=18", - "react": ">=18" - } - }, - "node_modules/react-markdown/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.1.tgz", - "integrity": "sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==", - "dependencies": { - "@remix-run/router": "1.19.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8" - } - }, - "node_modules/react-router-dom": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.1.tgz", - "integrity": "sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==", - "dependencies": { - "@remix-run/router": "1.19.1", - "react-router": "6.26.1" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": ">=16.8", - "react-dom": ">=16.8" - } - }, - "node_modules/react-syntax-highlighter": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz", - "integrity": "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==", - "dependencies": { - "@babel/runtime": "^7.3.1", - "highlight.js": "^10.4.1", - "lowlight": "^1.17.0", - "prismjs": "^1.27.0", - "refractor": "^3.6.0" - }, - "peerDependencies": { - "react": ">= 0.14.0" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/refractor": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", - "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", - "dependencies": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.27.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/refractor/node_modules/prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/rehype-katex": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz", - "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/katex": "^0.16.0", - "hast-util-from-html-isomorphic": "^2.0.0", - "hast-util-to-text": "^4.0.0", - "katex": "^0.16.0", - "unist-util-visit-parents": "^6.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-katex/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "dependencies": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/rehype-raw/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-gfm": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-math": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", - "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-math": "^3.0.0", - "micromark-extension-math": "^3.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", - "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", - "dependencies": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype/node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "dependencies": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.1.tgz", - "integrity": "sha512-ZnYyKvscThhgd3M5+Qt3pmhO4jIRR5RGzaSovB6Q7rGNrK5cUncrtLmcTTJVSdcKXyZjW8X8MB0JMSuH9bcAJg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.21.1", - "@rollup/rollup-android-arm64": "4.21.1", - "@rollup/rollup-darwin-arm64": "4.21.1", - "@rollup/rollup-darwin-x64": "4.21.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.1", - "@rollup/rollup-linux-arm-musleabihf": "4.21.1", - "@rollup/rollup-linux-arm64-gnu": "4.21.1", - "@rollup/rollup-linux-arm64-musl": "4.21.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.1", - "@rollup/rollup-linux-riscv64-gnu": "4.21.1", - "@rollup/rollup-linux-s390x-gnu": "4.21.1", - "@rollup/rollup-linux-x64-gnu": "4.21.1", - "@rollup/rollup-linux-x64-musl": "4.21.1", - "@rollup/rollup-win32-arm64-msvc": "4.21.1", - "@rollup/rollup-win32-ia32-msvc": "4.21.1", - "@rollup/rollup-win32-x64-msvc": "4.21.1", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/sass-embedded": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.77.8.tgz", - "integrity": "sha512-WGXA6jcaoBo5Uhw0HX/s6z/sl3zyYQ7ZOnLOJzqwpctFcFmU4L07zn51e2VSkXXFpQZFAdMZNqOGz/7h/fvcRA==", - "dev": true, - "dependencies": { - "@bufbuild/protobuf": "^1.0.0", - "buffer-builder": "^0.2.0", - "immutable": "^4.0.0", - "rxjs": "^7.4.0", - "supports-color": "^8.1.1", - "varint": "^6.0.0" - }, - "engines": { - "node": ">=16.0.0" - }, - "optionalDependencies": { - "sass-embedded-android-arm": "1.77.8", - "sass-embedded-android-arm64": "1.77.8", - "sass-embedded-android-ia32": "1.77.8", - "sass-embedded-android-x64": "1.77.8", - "sass-embedded-darwin-arm64": "1.77.8", - "sass-embedded-darwin-x64": "1.77.8", - "sass-embedded-linux-arm": "1.77.8", - "sass-embedded-linux-arm64": "1.77.8", - "sass-embedded-linux-ia32": "1.77.8", - "sass-embedded-linux-musl-arm": "1.77.8", - "sass-embedded-linux-musl-arm64": "1.77.8", - "sass-embedded-linux-musl-ia32": "1.77.8", - "sass-embedded-linux-musl-x64": "1.77.8", - "sass-embedded-linux-x64": "1.77.8", - "sass-embedded-win32-arm64": "1.77.8", - "sass-embedded-win32-ia32": "1.77.8", - "sass-embedded-win32-x64": "1.77.8" - } - }, - "node_modules/sass-embedded-android-arm": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.77.8.tgz", - "integrity": "sha512-GpGL7xZ7V1XpFbnflib/NWbM0euRzineK0iwoo31/ntWKAXGj03iHhGzkSiOwWSFcXgsJJi3eRA5BTmBvK5Q+w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "bin": { - "sass": "dart-sass/sass" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-android-arm64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.77.8.tgz", - "integrity": "sha512-EmWHLbEx0Zo/f/lTFzMeH2Du+/I4RmSRlEnERSUKQWVp3aBSO04QDvdxfFezgQ+2Yt/ub9WMqBpma9P/8MPsLg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "bin": { - "sass": "dart-sass/sass" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-android-ia32": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.77.8.tgz", - "integrity": "sha512-+GjfJ3lDezPi4dUUyjQBxlNKXNa+XVWsExtGvVNkv1uKyaOxULJhubVo2G6QTJJU0esJdfeXf5Ca5/J0ph7+7w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "bin": { - "sass": "dart-sass/sass" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-android-x64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.77.8.tgz", - "integrity": "sha512-YZbFDzGe5NhaMCygShqkeCWtzjhkWxGVunc7ULR97wmxYPQLPeVyx7XFQZc84Aj0lKAJBJS4qRZeqphMqZEJsQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "bin": { - "sass": "dart-sass/sass" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-darwin-arm64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.77.8.tgz", - "integrity": "sha512-aifgeVRNE+i43toIkDFFJc/aPLMo0PJ5s5hKb52U+oNdiJE36n65n2L8F/8z3zZRvCa6eYtFY2b7f1QXR3B0LA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "bin": { - "sass": "dart-sass/sass" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-darwin-x64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.77.8.tgz", - "integrity": "sha512-/VWZQtcWIOek60Zj6Sxk6HebXA1Qyyt3sD8o5qwbTgZnKitB1iEBuNunyGoAgMNeUz2PRd6rVki6hvbas9hQ6w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "bin": { - "sass": "dart-sass/sass" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-arm": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.77.8.tgz", - "integrity": "sha512-2edZMB6jf0whx3T0zlgH+p131kOEmWp+I4wnKj7ZMUeokiY4Up05d10hSvb0Q63lOrSjFAWu6P5/pcYUUx8arQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "sass": "dart-sass/sass" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-arm64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.77.8.tgz", - "integrity": "sha512-6iIOIZtBFa2YfMsHqOb3qake3C9d/zlKxjooKKnTSo+6g6z+CLTzMXe1bOfayb7yxeenElmFoK1k54kWD/40+g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "sass": "dart-sass/sass" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-ia32": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.77.8.tgz", - "integrity": "sha512-63GsFFHWN5yRLTWiSef32TM/XmjhCBx1DFhoqxmj+Yc6L9Z1h0lDHjjwdG6Sp5XTz5EmsaFKjpDgnQTP9hJX3Q==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "sass": "dart-sass/sass" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-arm": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.77.8.tgz", - "integrity": "sha512-nFkhSl3uu9btubm+JBW7uRglNVJ8W8dGfzVqh3fyQJKS1oyBC3vT3VOtfbT9YivXk28wXscSHpqXZwY7bUuopA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-arm64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.77.8.tgz", - "integrity": "sha512-j8cgQxNWecYK+aH8ESFsyam/Q6G+9gg8eJegiRVpA9x8yk3ykfHC7UdQWwUcF22ZcuY4zegrjJx8k+thsgsOVA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-ia32": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.77.8.tgz", - "integrity": "sha512-oWveMe+8TFlP8WBWPna/+Ec5TV0CE+PxEutyi0ltSruBds2zxRq9dPVOqrpPcDN9QUx50vNZC0Afgch0aQEd0g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-musl-x64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.77.8.tgz", - "integrity": "sha512-2NtRpMXHeFo9kaYxuZ+Ewwo39CE7BTS2JDfXkTjZTZqd8H+8KC53eBh516YQnn2oiqxSiKxm7a6pxbxGZGwXOQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-linux-x64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.77.8.tgz", - "integrity": "sha512-ND5qZLWUCpOn7LJfOf0gLSZUWhNIysY+7NZK1Ctq+pM6tpJky3JM5I1jSMplNxv5H3o8p80n0gSm+fcjsEFfjQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "bin": { - "sass": "dart-sass/sass" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-win32-arm64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.77.8.tgz", - "integrity": "sha512-7L8zT6xzEvTYj86MvUWnbkWYCNQP+74HvruLILmiPPE+TCgOjgdi750709BtppVJGGZSs40ZuN6mi/YQyGtwXg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "bin": { - "sass": "dart-sass/sass.bat" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-win32-ia32": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.77.8.tgz", - "integrity": "sha512-7Buh+4bP0WyYn6XPbthkIa3M2vtcR8QIsFVg3JElVlr+8Ng19jqe0t0SwggDgbMX6AdQZC+Wj4F1BprZSok42A==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "bin": { - "sass": "dart-sass/sass.bat" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded-win32-x64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.77.8.tgz", - "integrity": "sha512-rZmLIx4/LLQm+4GW39sRJW0MIlDqmyV0fkRzTmhFP5i/wVC7cuj8TUubPHw18rv2rkHFfBZKZJTCkPjCS5Z+SA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "bin": { - "sass": "dart-sass/sass.bat" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/sass-embedded/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sass-embedded/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/screenfull": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz", - "integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==", - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/scroll-into-view-if-needed": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", - "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", - "dependencies": { - "compute-scroll-into-view": "^3.0.2" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/string-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", - "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "dependencies": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/stringify-entities/node_modules/character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-mod": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", - "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==" - }, - "node_modules/style-to-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.7.tgz", - "integrity": "sha512-uSjr59G5u6fbxUfKbb8GcqMGT3Xs9v5IbPkjb0S16GyOeBLAzSRK0CixBv5YrYvzO6TDLzIS6QCn78tkqWngPw==", - "dependencies": { - "inline-style-parser": "0.2.3" - } - }, - "node_modules/stylis": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz", - "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==" - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz", - "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", - "dev": true, - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/throttle-debounce": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", - "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==", - "engines": { - "node": ">=12.22" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/true-myth": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/true-myth/-/true-myth-4.1.1.tgz", - "integrity": "sha512-rqy30BSpxPznbbTcAcci90oZ1YR4DqvKcNXNerG5gQBU2v4jk0cygheiul5J6ExIMrgDVuanv/MkGfqZbKrNNg==", - "dev": true, - "engines": { - "node": "10.* || >= 12.*" - } - }, - "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "node_modules/ts-morph": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-13.0.3.tgz", - "integrity": "sha512-pSOfUMx8Ld/WUreoSzvMFQG5i9uEiWIsBYjpU9+TTASOeUa89j5HykomeqVULm1oqWtBdleI3KEFRLrlA3zGIw==", - "dev": true, - "dependencies": { - "@ts-morph/common": "~0.12.3", - "code-block-writer": "^11.0.0" - } - }, - "node_modules/ts-prune": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-prune/-/ts-prune-0.10.3.tgz", - "integrity": "sha512-iS47YTbdIcvN8Nh/1BFyziyUqmjXz7GVzWu02RaZXqb+e/3Qe1B7IQ4860krOeCGUeJmterAlaM2FRH0Ue0hjw==", - "dev": true, - "dependencies": { - "commander": "^6.2.1", - "cosmiconfig": "^7.0.1", - "json5": "^2.1.3", - "lodash": "^4.17.21", - "true-myth": "^4.1.0", - "ts-morph": "^13.0.1" - }, - "bin": { - "ts-prune": "lib/index.js" - } - }, - "node_modules/ts-prune/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", - "devOptional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.3.0.tgz", - "integrity": "sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==", - "dev": true, - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.3.0", - "@typescript-eslint/parser": "8.3.0", - "@typescript-eslint/utils": "8.3.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true - }, - "node_modules/unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", - "dependencies": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-find-after": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", - "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-remove-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", - "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "dependencies": { - "@types/unist": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true - }, - "node_modules/vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-location": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", - "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", - "dependencies": { - "@types/unist": "^3.0.0", - "vfile": "^6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vite": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.2.tgz", - "integrity": "sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==", - "dev": true, - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.41", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" - }, - "node_modules/web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zustand": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz", - "integrity": "sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==", - "dependencies": { - "use-sync-external-store": "1.2.2" - }, - "engines": { - "node": ">=12.7.0" - }, - "peerDependencies": { - "@types/react": ">=16.8", - "immer": ">=9.0.6", - "react": ">=16.8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - } - } - }, - "node_modules/zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - } - }, - "dependencies": { - "@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true - }, - "@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@ant-design/colors": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-7.1.0.tgz", - "integrity": "sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg==", - "requires": { - "@ctrl/tinycolor": "^3.6.1" - } - }, - "@ant-design/cssinjs": { - "version": "1.21.1", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs/-/cssinjs-1.21.1.tgz", - "integrity": "sha512-tyWnlK+XH7Bumd0byfbCiZNK43HEubMoCcu9VxwsAwiHdHTgWa+tMN0/yvxa+e8EzuFP1WdUNNPclRpVtD33lg==", - "requires": { - "@babel/runtime": "^7.11.1", - "@emotion/hash": "^0.8.0", - "@emotion/unitless": "^0.7.5", - "classnames": "^2.3.1", - "csstype": "^3.1.3", - "rc-util": "^5.35.0", - "stylis": "^4.3.3" - } - }, - "@ant-design/cssinjs-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@ant-design/cssinjs-utils/-/cssinjs-utils-1.0.3.tgz", - "integrity": "sha512-BrztZZKuoYcJK8uEH40ylBemf/Mu/QPiDos56g2bv6eUoniQkgQHOCOvA3+pncoFO1TaS8xcUCIqGzDA0I+ZVQ==", - "requires": { - "@ant-design/cssinjs": "^1.21.0", - "@babel/runtime": "^7.23.2", - "rc-util": "^5.38.0" - } - }, - "@ant-design/fast-color": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@ant-design/fast-color/-/fast-color-2.0.6.tgz", - "integrity": "sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==", - "requires": { - "@babel/runtime": "^7.24.7" - } - }, - "@ant-design/icons": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.4.0.tgz", - "integrity": "sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA==", - "requires": { - "@ant-design/colors": "^7.0.0", - "@ant-design/icons-svg": "^4.4.0", - "@babel/runtime": "^7.24.8", - "classnames": "^2.2.6", - "rc-util": "^5.31.1" - } - }, - "@ant-design/icons-svg": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.4.2.tgz", - "integrity": "sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==" - }, - "@ant-design/react-slick": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ant-design/react-slick/-/react-slick-1.1.2.tgz", - "integrity": "sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==", - "requires": { - "@babel/runtime": "^7.10.4", - "classnames": "^2.2.5", - "json2mq": "^0.2.0", - "resize-observer-polyfill": "^1.5.1", - "throttle-debounce": "^5.0.0" - } - }, - "@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - } - }, - "@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", - "dev": true - }, - "@babel/core": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - } - }, - "@babel/generator": { - "version": "7.25.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.5.tgz", - "integrity": "sha512-abd43wyLfbWoxC6ahM8xTkqLpGB2iWBVyuKC9/srhFunCd1SDNrV1s72bBpK4hLj8KLzHBBcOblvLQZBNw9r3w==", - "dev": true, - "requires": { - "@babel/types": "^7.25.4", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", - "dev": true, - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", - "dev": true - }, - "@babel/helpers": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", - "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", - "dev": true, - "requires": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.0" - } - }, - "@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - } - }, - "@babel/parser": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.4.tgz", - "integrity": "sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==", - "dev": true, - "requires": { - "@babel/types": "^7.25.4" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", - "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.7" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", - "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.7" - } - }, - "@babel/runtime": { - "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", - "requires": { - "regenerator-runtime": "^0.14.0" - } - }, - "@babel/template": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" - } - }, - "@babel/traverse": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.4.tgz", - "integrity": "sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.4", - "@babel/parser": "^7.25.4", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.4", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.25.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.4.tgz", - "integrity": "sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bufbuild/protobuf": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-1.10.0.tgz", - "integrity": "sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==", - "dev": true - }, - "@codemirror/autocomplete": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.0.tgz", - "integrity": "sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==", - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0" - } - }, - "@codemirror/commands": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.6.0.tgz", - "integrity": "sha512-qnY+b7j1UNcTS31Eenuc/5YJB6gQOzkUoNmJQc0rznwqSRpeaWWpjkWy2C/MPTcePpsKJEM26hXrOXl1+nceXg==", - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.4.0", - "@codemirror/view": "^6.27.0", - "@lezer/common": "^1.1.0" - } - }, - "@codemirror/lang-angular": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/lang-angular/-/lang-angular-0.1.3.tgz", - "integrity": "sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==", - "requires": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.2", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.3" - } - }, - "@codemirror/lang-cpp": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz", - "integrity": "sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==", - "requires": { - "@codemirror/language": "^6.0.0", - "@lezer/cpp": "^1.0.0" - } - }, - "@codemirror/lang-css": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.2.1.tgz", - "integrity": "sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/css": "^1.0.0" - } - }, - "@codemirror/lang-go": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-go/-/lang-go-6.0.1.tgz", - "integrity": "sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/go": "^1.0.0" - } - }, - "@codemirror/lang-html": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.9.tgz", - "integrity": "sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/css": "^1.1.0", - "@lezer/html": "^1.3.0" - } - }, - "@codemirror/lang-java": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-java/-/lang-java-6.0.1.tgz", - "integrity": "sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==", - "requires": { - "@codemirror/language": "^6.0.0", - "@lezer/java": "^1.0.0" - } - }, - "@codemirror/lang-javascript": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz", - "integrity": "sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.6.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.17.0", - "@lezer/common": "^1.0.0", - "@lezer/javascript": "^1.0.0" - } - }, - "@codemirror/lang-json": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.1.tgz", - "integrity": "sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==", - "requires": { - "@codemirror/language": "^6.0.0", - "@lezer/json": "^1.0.0" - } - }, - "@codemirror/lang-less": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-less/-/lang-less-6.0.2.tgz", - "integrity": "sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==", - "requires": { - "@codemirror/lang-css": "^6.2.0", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@codemirror/lang-lezer": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-lezer/-/lang-lezer-6.0.1.tgz", - "integrity": "sha512-WHwjI7OqKFBEfkunohweqA5B/jIlxaZso6Nl3weVckz8EafYbPZldQEKSDb4QQ9H9BUkle4PVELP4sftKoA0uQ==", - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/lezer": "^1.0.0" - } - }, - "@codemirror/lang-liquid": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-liquid/-/lang-liquid-6.2.1.tgz", - "integrity": "sha512-J1Mratcm6JLNEiX+U2OlCDTysGuwbHD76XwuL5o5bo9soJtSbz2g6RU3vGHFyS5DC8rgVmFSzi7i6oBftm7tnA==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "@codemirror/lang-markdown": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/@codemirror/lang-markdown/-/lang-markdown-6.2.5.tgz", - "integrity": "sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==", - "requires": { - "@codemirror/autocomplete": "^6.7.1", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.3.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/markdown": "^1.0.0" - } - }, - "@codemirror/lang-php": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-php/-/lang-php-6.0.1.tgz", - "integrity": "sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==", - "requires": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/php": "^1.0.0" - } - }, - "@codemirror/lang-python": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@codemirror/lang-python/-/lang-python-6.1.6.tgz", - "integrity": "sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==", - "requires": { - "@codemirror/autocomplete": "^6.3.2", - "@codemirror/language": "^6.8.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.1", - "@lezer/python": "^1.1.4" - } - }, - "@codemirror/lang-rust": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz", - "integrity": "sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==", - "requires": { - "@codemirror/language": "^6.0.0", - "@lezer/rust": "^1.0.0" - } - }, - "@codemirror/lang-sass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-sass/-/lang-sass-6.0.2.tgz", - "integrity": "sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==", - "requires": { - "@codemirror/lang-css": "^6.2.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.0.2", - "@lezer/sass": "^1.0.0" - } - }, - "@codemirror/lang-sql": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-sql/-/lang-sql-6.7.1.tgz", - "integrity": "sha512-flQa7zemrLKk0TIrOJnpeyH/b29BcVybtsTeZMgAo40O6kGbrnUSCgwI3TF5iJY3O9VXJKKCA+i0CBVvDfr88w==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@codemirror/lang-vue": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@codemirror/lang-vue/-/lang-vue-0.1.3.tgz", - "integrity": "sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==", - "requires": { - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.2", - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.3.1" - } - }, - "@codemirror/lang-wast": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@codemirror/lang-wast/-/lang-wast-6.0.2.tgz", - "integrity": "sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==", - "requires": { - "@codemirror/language": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@codemirror/lang-xml": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz", - "integrity": "sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.4.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/common": "^1.0.0", - "@lezer/xml": "^1.0.0" - } - }, - "@codemirror/lang-yaml": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@codemirror/lang-yaml/-/lang-yaml-6.1.1.tgz", - "integrity": "sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.2.0", - "@lezer/yaml": "^1.0.0" - } - }, - "@codemirror/language": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.2.tgz", - "integrity": "sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==", - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.23.0", - "@lezer/common": "^1.1.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0", - "style-mod": "^4.0.0" - } - }, - "@codemirror/language-data": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@codemirror/language-data/-/language-data-6.5.1.tgz", - "integrity": "sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==", - "requires": { - "@codemirror/lang-angular": "^0.1.0", - "@codemirror/lang-cpp": "^6.0.0", - "@codemirror/lang-css": "^6.0.0", - "@codemirror/lang-go": "^6.0.0", - "@codemirror/lang-html": "^6.0.0", - "@codemirror/lang-java": "^6.0.0", - "@codemirror/lang-javascript": "^6.0.0", - "@codemirror/lang-json": "^6.0.0", - "@codemirror/lang-less": "^6.0.0", - "@codemirror/lang-liquid": "^6.0.0", - "@codemirror/lang-markdown": "^6.0.0", - "@codemirror/lang-php": "^6.0.0", - "@codemirror/lang-python": "^6.0.0", - "@codemirror/lang-rust": "^6.0.0", - "@codemirror/lang-sass": "^6.0.0", - "@codemirror/lang-sql": "^6.0.0", - "@codemirror/lang-vue": "^0.1.1", - "@codemirror/lang-wast": "^6.0.0", - "@codemirror/lang-xml": "^6.0.0", - "@codemirror/lang-yaml": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/legacy-modes": "^6.4.0" - } - }, - "@codemirror/legacy-modes": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.4.1.tgz", - "integrity": "sha512-vdg3XY7OAs5uLDx2Iw+cGfnwtd7kM+Et/eMsqAGTfT/JKiVBQZXosTzjEbWAi/FrY6DcQIz8mQjBozFHZEUWQA==", - "requires": { - "@codemirror/language": "^6.0.0" - } - }, - "@codemirror/lint": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.1.tgz", - "integrity": "sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==", - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "@codemirror/search": { - "version": "6.5.6", - "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.6.tgz", - "integrity": "sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==", - "requires": { - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "crelt": "^1.0.5" - } - }, - "@codemirror/state": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.1.tgz", - "integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==" - }, - "@codemirror/theme-one-dark": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz", - "integrity": "sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==", - "requires": { - "@codemirror/language": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "@codemirror/view": { - "version": "6.33.0", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.33.0.tgz", - "integrity": "sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==", - "requires": { - "@codemirror/state": "^6.4.0", - "style-mod": "^4.1.0", - "w3c-keyname": "^2.2.4" - } - }, - "@ctrl/tinycolor": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz", - "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==" - }, - "@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" - }, - "@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" - }, - "@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "dev": true, - "optional": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - } - } - }, - "@eslint-community/regexpp": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", - "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", - "dev": true - }, - "@eslint/config-array": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", - "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", - "dev": true, - "requires": { - "@eslint/object-schema": "^2.1.4", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - } - }, - "@eslint/eslintrc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true - } - } - }, - "@eslint/js": { - "version": "9.9.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.9.1.tgz", - "integrity": "sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==", - "dev": true - }, - "@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", - "dev": true - }, - "@formatjs/ecma402-abstract": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.0.0.tgz", - "integrity": "sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==", - "requires": { - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "@formatjs/fast-memoize": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz", - "integrity": "sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==", - "requires": { - "tslib": "^2.4.0" - } - }, - "@formatjs/icu-messageformat-parser": { - "version": "2.7.8", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.8.tgz", - "integrity": "sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==", - "requires": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/icu-skeleton-parser": "1.8.2", - "tslib": "^2.4.0" - } - }, - "@formatjs/icu-skeleton-parser": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.2.tgz", - "integrity": "sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==", - "requires": { - "@formatjs/ecma402-abstract": "2.0.0", - "tslib": "^2.4.0" - } - }, - "@formatjs/intl": { - "version": "2.10.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl/-/intl-2.10.4.tgz", - "integrity": "sha512-56483O+HVcL0c7VucAS2tyH020mt9XTozZO67cwtGg0a7KWDukS/FzW3OnvaHmTHDuYsoPIzO+ZHVfU6fT/bJw==", - "requires": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.8", - "@formatjs/intl-displaynames": "6.6.8", - "@formatjs/intl-listformat": "7.5.7", - "intl-messageformat": "10.5.14", - "tslib": "^2.4.0" - } - }, - "@formatjs/intl-displaynames": { - "version": "6.6.8", - "resolved": "https://registry.npmjs.org/@formatjs/intl-displaynames/-/intl-displaynames-6.6.8.tgz", - "integrity": "sha512-Lgx6n5KxN16B3Pb05z3NLEBQkGoXnGjkTBNCZI+Cn17YjHJ3fhCeEJJUqRlIZmJdmaXQhjcQVDp6WIiNeRYT5g==", - "requires": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "@formatjs/intl-listformat": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.5.7.tgz", - "integrity": "sha512-MG2TSChQJQT9f7Rlv+eXwUFiG24mKSzmF144PLb8m8OixyXqn4+YWU+5wZracZGCgVTVmx8viCf7IH3QXoiB2g==", - "requires": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/intl-localematcher": "0.5.4", - "tslib": "^2.4.0" - } - }, - "@formatjs/intl-localematcher": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.5.4.tgz", - "integrity": "sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==", - "requires": { - "tslib": "^2.4.0" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.0.tgz", - "integrity": "sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==", - "dev": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@lezer/common": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", - "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==" - }, - "@lezer/cpp": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lezer/cpp/-/cpp-1.1.2.tgz", - "integrity": "sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/css": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.8.tgz", - "integrity": "sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/go": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@lezer/go/-/go-1.0.0.tgz", - "integrity": "sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/highlight": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.1.tgz", - "integrity": "sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==", - "requires": { - "@lezer/common": "^1.0.0" - } - }, - "@lezer/html": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.10.tgz", - "integrity": "sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/java": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lezer/java/-/java-1.1.2.tgz", - "integrity": "sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/javascript": { - "version": "1.4.17", - "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.17.tgz", - "integrity": "sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.1.3", - "@lezer/lr": "^1.3.0" - } - }, - "@lezer/json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.2.tgz", - "integrity": "sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/lezer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@lezer/lezer/-/lezer-1.1.2.tgz", - "integrity": "sha512-O8yw3CxPhzYHB1hvwbdozjnAslhhR8A5BH7vfEMof0xk3p+/DFDfZkA9Tde6J+88WgtwaHy4Sy6ThZSkaI0Evw==", - "requires": { - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/lr": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", - "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", - "requires": { - "@lezer/common": "^1.0.0" - } - }, - "@lezer/markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@lezer/markdown/-/markdown-1.3.0.tgz", - "integrity": "sha512-ErbEQ15eowmJUyT095e9NJc3BI9yZ894fjSDtHftD0InkfUBGgnKSU6dvan9jqsZuNHg2+ag/1oyDRxNsENupQ==", - "requires": { - "@lezer/common": "^1.0.0", - "@lezer/highlight": "^1.0.0" - } - }, - "@lezer/php": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/php/-/php-1.0.2.tgz", - "integrity": "sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.1.0" - } - }, - "@lezer/python": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/@lezer/python/-/python-1.1.14.tgz", - "integrity": "sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/rust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@lezer/rust/-/rust-1.0.2.tgz", - "integrity": "sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/sass": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@lezer/sass/-/sass-1.0.6.tgz", - "integrity": "sha512-w/RCO2dIzZH1To8p+xjs8cE+yfgGus8NZ/dXeWl/QzHyr+TeBs71qiE70KPImEwvTsmEjoWh0A5SxMzKd5BWBQ==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/xml": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.5.tgz", - "integrity": "sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.0.0" - } - }, - "@lezer/yaml": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@lezer/yaml/-/yaml-1.0.3.tgz", - "integrity": "sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==", - "requires": { - "@lezer/common": "^1.2.0", - "@lezer/highlight": "^1.0.0", - "@lezer/lr": "^1.4.0" - } - }, - "@nextjournal/lang-clojure": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@nextjournal/lang-clojure/-/lang-clojure-1.0.0.tgz", - "integrity": "sha512-gOCV71XrYD0DhwGoPMWZmZ0r92/lIHsqQu9QWdpZYYBwiChNwMO4sbVMP7eTuAqffFB2BTtCSC+1skSH9d3bNg==", - "requires": { - "@codemirror/language": "^6.0.0", - "@nextjournal/lezer-clojure": "1.0.0" - } - }, - "@nextjournal/lezer-clojure": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@nextjournal/lezer-clojure/-/lezer-clojure-1.0.0.tgz", - "integrity": "sha512-VZyuGu4zw5mkTOwQBTaGVNWmsOZAPw5ZRxu1/Knk/Xfs7EDBIogwIs5UXTYkuECX5ZQB8eOB+wKA2pc7VyqaZQ==", - "requires": { - "@lezer/lr": "^1.0.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true - }, - "@rc-component/async-validator": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@rc-component/async-validator/-/async-validator-5.0.4.tgz", - "integrity": "sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==", - "requires": { - "@babel/runtime": "^7.24.4" - } - }, - "@rc-component/color-picker": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@rc-component/color-picker/-/color-picker-2.0.1.tgz", - "integrity": "sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==", - "requires": { - "@ant-design/fast-color": "^2.0.6", - "@babel/runtime": "^7.23.6", - "classnames": "^2.2.6", - "rc-util": "^5.38.1" - } - }, - "@rc-component/context": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@rc-component/context/-/context-1.4.0.tgz", - "integrity": "sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==", - "requires": { - "@babel/runtime": "^7.10.1", - "rc-util": "^5.27.0" - } - }, - "@rc-component/mini-decimal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz", - "integrity": "sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==", - "requires": { - "@babel/runtime": "^7.18.0" - } - }, - "@rc-component/mutate-observer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz", - "integrity": "sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==", - "requires": { - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - } - }, - "@rc-component/portal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@rc-component/portal/-/portal-1.1.2.tgz", - "integrity": "sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==", - "requires": { - "@babel/runtime": "^7.18.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - } - }, - "@rc-component/qrcode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@rc-component/qrcode/-/qrcode-1.0.0.tgz", - "integrity": "sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==", - "requires": { - "@babel/runtime": "^7.24.7", - "classnames": "^2.3.2", - "rc-util": "^5.38.0" - } - }, - "@rc-component/tour": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@rc-component/tour/-/tour-1.15.0.tgz", - "integrity": "sha512-h6hyILDwL+In9GAgRobwRWihLqqsD7Uft3fZGrJ7L4EiyCoxbnNYwzPXDfz7vNDhWeVyvAWQJj9fJCzpI4+b4g==", - "requires": { - "@babel/runtime": "^7.18.0", - "@rc-component/portal": "^1.0.0-9", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.3.2", - "rc-util": "^5.24.4" - } - }, - "@rc-component/trigger": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@rc-component/trigger/-/trigger-2.2.1.tgz", - "integrity": "sha512-fuU11J8pOt6+U/tU6/CAv8wjCwGaNeRk9f5k8HQth7JBbJ6MMH62WhGycVW75VnXfBZgL/7kO+wbiO2Xc9U9sQ==", - "requires": { - "@babel/runtime": "^7.23.2", - "@rc-component/portal": "^1.1.0", - "classnames": "^2.3.2", - "rc-motion": "^2.0.0", - "rc-resize-observer": "^1.3.1", - "rc-util": "^5.38.0" - } - }, - "@remix-run/router": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.1.tgz", - "integrity": "sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==" - }, - "@replit/codemirror-lang-csharp": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@replit/codemirror-lang-csharp/-/codemirror-lang-csharp-6.2.0.tgz", - "integrity": "sha512-6utbaWkoymhoAXj051mkRp+VIJlpwUgCX9Toevz3YatiZsz512fw3OVCedXQx+WcR0wb6zVHjChnuxqfCLtFVQ==", - "requires": {} - }, - "@replit/codemirror-lang-nix": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@replit/codemirror-lang-nix/-/codemirror-lang-nix-6.0.1.tgz", - "integrity": "sha512-lvzjoYn9nfJzBD5qdm3Ut6G3+Or2wEacYIDJ49h9+19WSChVnxv4ojf+rNmQ78ncuxIt/bfbMvDLMeMP0xze6g==", - "requires": {} - }, - "@replit/codemirror-lang-solidity": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@replit/codemirror-lang-solidity/-/codemirror-lang-solidity-6.0.2.tgz", - "integrity": "sha512-/dpTVH338KFV6SaDYYSadkB4bI/0B0QRF/bkt1XS3t3QtyR49mn6+2k0OUQhvt2ZSO7kt10J+OPilRAtgbmX0w==", - "requires": { - "@lezer/highlight": "^1.2.0" - } - }, - "@replit/codemirror-lang-svelte": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@replit/codemirror-lang-svelte/-/codemirror-lang-svelte-6.0.0.tgz", - "integrity": "sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==", - "requires": {} - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.1.tgz", - "integrity": "sha512-2thheikVEuU7ZxFXubPDOtspKn1x0yqaYQwvALVtEcvFhMifPADBrgRPyHV0TF3b+9BgvgjgagVyvA/UqPZHmg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.1.tgz", - "integrity": "sha512-t1lLYn4V9WgnIFHXy1d2Di/7gyzBWS8G5pQSXdZqfrdCGTwi1VasRMSS81DTYb+avDs/Zz4A6dzERki5oRYz1g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.1.tgz", - "integrity": "sha512-AH/wNWSEEHvs6t4iJ3RANxW5ZCK3fUnmf0gyMxWCesY1AlUj8jY7GC+rQE4wd3gwmZ9XDOpL0kcFnCjtN7FXlA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.1.tgz", - "integrity": "sha512-dO0BIz/+5ZdkLZrVgQrDdW7m2RkrLwYTh2YMFG9IpBtlC1x1NPNSXkfczhZieOlOLEqgXOFH3wYHB7PmBtf+Bg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.1.tgz", - "integrity": "sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.1.tgz", - "integrity": "sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.1.tgz", - "integrity": "sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.1.tgz", - "integrity": "sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.1.tgz", - "integrity": "sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.1.tgz", - "integrity": "sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-s390x-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.1.tgz", - "integrity": "sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.1.tgz", - "integrity": "sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.1.tgz", - "integrity": "sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.1.tgz", - "integrity": "sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.1.tgz", - "integrity": "sha512-tNg+jJcKR3Uwe4L0/wY3Ro0H+u3nrb04+tcq1GSYzBEmKLeOQF2emk1whxlzNqb6MMrQ2JOcQEpuuiPLyRcSIw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.1.tgz", - "integrity": "sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg==", - "dev": true, - "optional": true - }, - "@ts-morph/common": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.12.3.tgz", - "integrity": "sha512-4tUmeLyXJnJWvTFOKtcNJ1yh0a3SsTLi2MUoyj8iUNznFRN1ZquaNe7Oukqrnki2FzZkm0J9adCNLDZxUzvj+w==", - "dev": true, - "requires": { - "fast-glob": "^3.2.7", - "minimatch": "^3.0.4", - "mkdirp": "^1.0.4", - "path-browserify": "^1.0.1" - } - }, - "@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "requires": { - "@types/ms": "*" - } - }, - "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" - }, - "@types/estree-jsx": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", - "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", - "requires": { - "@types/estree": "*" - } - }, - "@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", - "requires": { - "@types/unist": "^2" - }, - "dependencies": { - "@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" - } - } - }, - "@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "@types/js-cookie": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-3.0.6.tgz", - "integrity": "sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==", - "dev": true - }, - "@types/katex": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", - "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==" - }, - "@types/lodash": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", - "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==" - }, - "@types/mdast": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", - "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", - "requires": { - "@types/unist": "*" - } - }, - "@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" - }, - "@types/node": { - "version": "22.5.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.1.tgz", - "integrity": "sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw==", - "dev": true, - "requires": { - "undici-types": "~6.19.2" - } - }, - "@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" - }, - "@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" - }, - "@types/react": { - "version": "18.3.4", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.4.tgz", - "integrity": "sha512-J7W30FTdfCxDDjmfRM+/JqLHBIyl7xUIp9kwK637FGmY7+mkSFSe6L4jpZzhj5QMfLssSDP4/i75AKkrdC7/Jw==", - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-copy-to-clipboard": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@types/react-copy-to-clipboard/-/react-copy-to-clipboard-5.0.7.tgz", - "integrity": "sha512-Gft19D+as4M+9Whq1oglhmK49vqPhcLzk8WfvfLvaYMIPYanyfLy0+CwFucMJfdKoSFyySPmkkWn8/E6voQXjQ==", - "requires": { - "@types/react": "*" - } - }, - "@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", - "dev": true, - "requires": { - "@types/react": "*" - } - }, - "@types/react-syntax-highlighter": { - "version": "15.5.13", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.13.tgz", - "integrity": "sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==", - "requires": { - "@types/react": "*" - } - }, - "@types/unist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz", - "integrity": "sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.3.0", - "@typescript-eslint/type-utils": "8.3.0", - "@typescript-eslint/utils": "8.3.0", - "@typescript-eslint/visitor-keys": "8.3.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" - } - }, - "@typescript-eslint/parser": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.3.0.tgz", - "integrity": "sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "8.3.0", - "@typescript-eslint/types": "8.3.0", - "@typescript-eslint/typescript-estree": "8.3.0", - "@typescript-eslint/visitor-keys": "8.3.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz", - "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "8.3.0", - "@typescript-eslint/visitor-keys": "8.3.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz", - "integrity": "sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "8.3.0", - "@typescript-eslint/utils": "8.3.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - } - }, - "@typescript-eslint/types": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz", - "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz", - "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "8.3.0", - "@typescript-eslint/visitor-keys": "8.3.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true - } - } - }, - "@typescript-eslint/utils": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz", - "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.3.0", - "@typescript-eslint/types": "8.3.0", - "@typescript-eslint/typescript-estree": "8.3.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz", - "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "8.3.0", - "eslint-visitor-keys": "^3.4.3" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - } - } - }, - "@uiw/codemirror-extensions-basic-setup": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.23.0.tgz", - "integrity": "sha512-+k5nkRpUWGaHr1JWT8jcKsVewlXw5qBgSopm9LW8fZ6KnSNZBycz8kHxh0+WSvckmXEESGptkIsb7dlkmJT/hQ==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, - "@uiw/codemirror-extensions-langs": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@uiw/codemirror-extensions-langs/-/codemirror-extensions-langs-4.23.0.tgz", - "integrity": "sha512-WUJnTgS3CIV5TZPjwYO+mvRqxfvSSSKC2a+Wm5Uk3uFoZZ7O/GKi4bKKLsIHQkCwNnd9CHJzwN2dpIVrK1AmLA==", - "requires": { - "@codemirror/lang-angular": "^0.1.0", - "@codemirror/lang-cpp": "^6.0.0", - "@codemirror/lang-css": "^6.2.0", - "@codemirror/lang-html": "^6.4.0", - "@codemirror/lang-java": "^6.0.0", - "@codemirror/lang-javascript": "^6.1.0", - "@codemirror/lang-json": "^6.0.0", - "@codemirror/lang-less": "^6.0.1", - "@codemirror/lang-lezer": "^6.0.0", - "@codemirror/lang-liquid": "^6.0.1", - "@codemirror/lang-markdown": "^6.1.0", - "@codemirror/lang-php": "^6.0.0", - "@codemirror/lang-python": "^6.1.0", - "@codemirror/lang-rust": "^6.0.0", - "@codemirror/lang-sass": "^6.0.1", - "@codemirror/lang-sql": "^6.4.0", - "@codemirror/lang-vue": "^0.1.1", - "@codemirror/lang-wast": "^6.0.0", - "@codemirror/lang-xml": "^6.0.0", - "@codemirror/language-data": ">=6.0.0", - "@codemirror/legacy-modes": ">=6.0.0", - "@nextjournal/lang-clojure": "^1.0.0", - "@replit/codemirror-lang-csharp": "^6.1.0", - "@replit/codemirror-lang-nix": "^6.0.1", - "@replit/codemirror-lang-solidity": "^6.0.1", - "@replit/codemirror-lang-svelte": "^6.0.0", - "codemirror-lang-mermaid": "^0.5.0" - } - }, - "@uiw/react-codemirror": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/@uiw/react-codemirror/-/react-codemirror-4.23.0.tgz", - "integrity": "sha512-MnqTXfgeLA3fsUUQjqjJgemEuNyoGALgsExVm0NQAllAAi1wfj+IoKFeK+h3XXMlTFRCFYOUh4AHDv0YXJLsOg==", - "requires": { - "@babel/runtime": "^7.18.6", - "@codemirror/commands": "^6.1.0", - "@codemirror/state": "^6.1.1", - "@codemirror/theme-one-dark": "^6.0.0", - "@uiw/codemirror-extensions-basic-setup": "4.23.0", - "codemirror": "^6.0.0" - } - }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" - }, - "@vitejs/plugin-react": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", - "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", - "dev": true, - "requires": { - "@babel/core": "^7.24.5", - "@babel/plugin-transform-react-jsx-self": "^7.24.5", - "@babel/plugin-transform-react-jsx-source": "^7.24.1", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" - } - }, - "acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "ahooks": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/ahooks/-/ahooks-3.8.1.tgz", - "integrity": "sha512-JoP9+/RWO7MnI/uSKdvQ8WB10Y3oo1PjLv+4Sv4Vpm19Z86VUMdXh+RhWvMGxZZs06sq2p0xVtFk8Oh5ZObsoA==", - "requires": { - "@babel/runtime": "^7.21.0", - "dayjs": "^1.9.1", - "intersection-observer": "^0.12.0", - "js-cookie": "^3.0.5", - "lodash": "^4.17.21", - "react-fast-compare": "^3.2.2", - "resize-observer-polyfill": "^1.5.1", - "screenfull": "^5.0.0", - "tslib": "^2.4.1" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "antd": { - "version": "5.20.3", - "resolved": "https://registry.npmjs.org/antd/-/antd-5.20.3.tgz", - "integrity": "sha512-v2s5LJlhuccIKLT17ESXQDkiQJdPK4jXg4x2pmSSRlrKXAxfftn8Zhd/7pdF3qR3OkwheQpSRjynrNZKp9Tgkg==", - "requires": { - "@ant-design/colors": "^7.1.0", - "@ant-design/cssinjs": "^1.21.0", - "@ant-design/cssinjs-utils": "^1.0.3", - "@ant-design/icons": "^5.4.0", - "@ant-design/react-slick": "~1.1.2", - "@babel/runtime": "^7.24.8", - "@ctrl/tinycolor": "^3.6.1", - "@rc-component/color-picker": "~2.0.1", - "@rc-component/mutate-observer": "^1.1.0", - "@rc-component/qrcode": "~1.0.0", - "@rc-component/tour": "~1.15.0", - "@rc-component/trigger": "^2.2.1", - "classnames": "^2.5.1", - "copy-to-clipboard": "^3.3.3", - "dayjs": "^1.11.11", - "rc-cascader": "~3.27.0", - "rc-checkbox": "~3.3.0", - "rc-collapse": "~3.7.3", - "rc-dialog": "~9.5.2", - "rc-drawer": "~7.2.0", - "rc-dropdown": "~4.2.0", - "rc-field-form": "~2.4.0", - "rc-image": "~7.9.0", - "rc-input": "~1.6.3", - "rc-input-number": "~9.2.0", - "rc-mentions": "~2.15.0", - "rc-menu": "~9.14.1", - "rc-motion": "^2.9.2", - "rc-notification": "~5.6.0", - "rc-pagination": "~4.2.0", - "rc-picker": "~4.6.13", - "rc-progress": "~4.0.0", - "rc-rate": "~2.13.0", - "rc-resize-observer": "^1.4.0", - "rc-segmented": "~2.3.0", - "rc-select": "~14.15.1", - "rc-slider": "~11.1.5", - "rc-steps": "~6.0.1", - "rc-switch": "~4.1.0", - "rc-table": "~7.45.7", - "rc-tabs": "~15.1.1", - "rc-textarea": "~1.8.1", - "rc-tooltip": "~6.2.0", - "rc-tree": "~5.8.8", - "rc-tree-select": "~5.22.1", - "rc-upload": "~4.7.0", - "rc-util": "^5.43.0", - "scroll-into-view-if-needed": "^3.1.0", - "throttle-debounce": "^5.0.2" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-tree-filter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", - "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "autoprefixer": { - "version": "10.4.20", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", - "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", - "dev": true, - "requires": { - "browserslist": "^4.23.3", - "caniuse-lite": "^1.0.30001646", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.1", - "postcss-value-parser": "^4.2.0" - } - }, - "axios": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz", - "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", - "requires": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "requires": { - "fill-range": "^7.1.1" - } - }, - "browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" - } - }, - "buffer-builder": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", - "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", - "dev": true - }, - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001653", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001653.tgz", - "integrity": "sha512-XGWQVB8wFQ2+9NZwZ10GxTYC5hk0Fa+q8cSkr0tgvMhYhMHP/QC+WTgrePMDBWiWc/pV+1ik82Al20XOK25Gcw==", - "dev": true - }, - "ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==" - }, - "character-entities-html4": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", - "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==" - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" - }, - "chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" - }, - "code-block-writer": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.3.tgz", - "integrity": "sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==", - "dev": true - }, - "codemirror": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.1.tgz", - "integrity": "sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==", - "requires": { - "@codemirror/autocomplete": "^6.0.0", - "@codemirror/commands": "^6.0.0", - "@codemirror/language": "^6.0.0", - "@codemirror/lint": "^6.0.0", - "@codemirror/search": "^6.0.0", - "@codemirror/state": "^6.0.0", - "@codemirror/view": "^6.0.0" - } - }, - "codemirror-lang-mermaid": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/codemirror-lang-mermaid/-/codemirror-lang-mermaid-0.5.0.tgz", - "integrity": "sha512-Taw/2gPCyNArQJCxIP/HSUif+3zrvD+6Ugt7KJZ2dUKou/8r3ZhcfG8krNTZfV2iu8AuGnymKuo7bLPFyqsh/A==", - "requires": { - "@codemirror/language": "^6.9.0", - "@lezer/highlight": "^1.1.6", - "@lezer/lr": "^1.3.10" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "compute-scroll-into-view": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz", - "integrity": "sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "copy-to-clipboard": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz", - "integrity": "sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==", - "requires": { - "toggle-selection": "^1.0.6" - } - }, - "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "dependencies": { - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - } - } - }, - "crelt": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", - "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" - }, - "debug": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", - "requires": { - "ms": "2.1.2" - } - }, - "decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "requires": { - "character-entities": "^2.0.0" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==" - }, - "devlop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", - "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", - "requires": { - "dequal": "^2.0.0" - } - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.5.13", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", - "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" - }, - "esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "eslint": { - "version": "9.9.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.9.1.tgz", - "integrity": "sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.11.0", - "@eslint/config-array": "^0.18.0", - "@eslint/eslintrc": "^3.1.0", - "@eslint/js": "9.9.1", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.3.0", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.0.2", - "eslint-visitor-keys": "^4.0.0", - "espree": "^10.1.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "5.1.0-rc-fb9a90fa48-20240614", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", - "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", - "dev": true, - "requires": {} - }, - "eslint-plugin-react-refresh": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.11.tgz", - "integrity": "sha512-wrAKxMbVr8qhXTtIKfXqAn5SAtRZt0aXxe5P23Fh4pUAdC6XEsybGLB8P0PI4j1yYqOgUEUlzKAGDfo7rJOjcw==", - "dev": true, - "requires": {} - }, - "eslint-scope": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.0.2.tgz", - "integrity": "sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz", - "integrity": "sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==", - "dev": true - }, - "espree": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.1.0.tgz", - "integrity": "sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==", - "dev": true, - "requires": { - "acorn": "^8.12.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.0.0" - } - }, - "esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "estree-util-is-identifier-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", - "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fault": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fault/-/fault-1.0.4.tgz", - "integrity": "sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==", - "requires": { - "format": "^0.2.0" - } - }, - "file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "requires": { - "flat-cache": "^4.0.0" - } - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "requires": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - } - }, - "flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" - }, - "foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "format": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", - "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==" - }, - "fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "15.9.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.9.0.tgz", - "integrity": "sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==", - "dev": true - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { - "function-bind": "^1.1.2" - } - }, - "hast-util-from-dom": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-dom/-/hast-util-from-dom-5.0.0.tgz", - "integrity": "sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg==", - "requires": { - "@types/hast": "^3.0.0", - "hastscript": "^8.0.0", - "web-namespaces": "^2.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - }, - "comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" - }, - "hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "requires": { - "@types/hast": "^3.0.0" - } - }, - "hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", - "requires": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - } - }, - "property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==" - }, - "space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" - } - } - }, - "hast-util-from-html": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.2.tgz", - "integrity": "sha512-HwOHwxdt2zC5KQ/CNoybBntRook2zJvfZE/u5/Ap7aLPe22bDqen7KwGkOqOyzL5zIqKwiYX/OTtE0FWgr6XXA==", - "requires": { - "@types/hast": "^3.0.0", - "devlop": "^1.1.0", - "hast-util-from-parse5": "^8.0.0", - "parse5": "^7.0.0", - "vfile": "^6.0.0", - "vfile-message": "^4.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "hast-util-from-html-isomorphic": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-2.0.0.tgz", - "integrity": "sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==", - "requires": { - "@types/hast": "^3.0.0", - "hast-util-from-dom": "^5.0.0", - "hast-util-from-html": "^2.0.0", - "unist-util-remove-position": "^5.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "hast-util-from-parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", - "requires": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "devlop": "^1.0.0", - "hastscript": "^8.0.0", - "property-information": "^6.0.0", - "vfile": "^6.0.0", - "vfile-location": "^5.0.0", - "web-namespaces": "^2.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - }, - "comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" - }, - "hast-util-parse-selector": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", - "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", - "requires": { - "@types/hast": "^3.0.0" - } - }, - "hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", - "requires": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0" - } - }, - "property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==" - }, - "space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" - } - } - }, - "hast-util-is-element": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", - "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", - "requires": { - "@types/hast": "^3.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "hast-util-parse-selector": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", - "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" - }, - "hast-util-raw": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.4.tgz", - "integrity": "sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==", - "requires": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "@ungap/structured-clone": "^1.0.0", - "hast-util-from-parse5": "^8.0.0", - "hast-util-to-parse5": "^8.0.0", - "html-void-elements": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "parse5": "^7.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "hast-util-to-jsx-runtime": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", - "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", - "requires": { - "@types/estree": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "estree-util-is-identifier-name": "^3.0.0", - "hast-util-whitespace": "^3.0.0", - "mdast-util-mdx-expression": "^2.0.0", - "mdast-util-mdx-jsx": "^3.0.0", - "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", - "unist-util-position": "^5.0.0", - "vfile-message": "^4.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - }, - "comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" - }, - "property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==" - }, - "space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" - } - } - }, - "hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", - "requires": { - "@types/hast": "^3.0.0", - "comma-separated-tokens": "^2.0.0", - "devlop": "^1.0.0", - "property-information": "^6.0.0", - "space-separated-tokens": "^2.0.0", - "web-namespaces": "^2.0.0", - "zwitch": "^2.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - }, - "comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==" - }, - "property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==" - }, - "space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==" - } - } - }, - "hast-util-to-text": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", - "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", - "requires": { - "@types/hast": "^3.0.0", - "@types/unist": "^3.0.0", - "hast-util-is-element": "^3.0.0", - "unist-util-find-after": "^5.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "hast-util-whitespace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", - "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", - "requires": { - "@types/hast": "^3.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "hastscript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", - "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", - "requires": { - "@types/hast": "^2.0.0", - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "html-url-attributes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz", - "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==" - }, - "html-void-elements": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", - "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==" - }, - "ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true - }, - "immutable": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", - "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inline-style-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", - "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" - }, - "intersection-observer": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.12.2.tgz", - "integrity": "sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==" - }, - "intl-messageformat": { - "version": "10.5.14", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.5.14.tgz", - "integrity": "sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==", - "requires": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/fast-memoize": "2.2.0", - "@formatjs/icu-messageformat-parser": "2.7.8", - "tslib": "^2.4.0" - } - }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", - "dev": true, - "requires": { - "hasown": "^2.0.2" - } - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jiti": { - "version": "1.21.6", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", - "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", - "dev": true - }, - "js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json2mq": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", - "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", - "requires": { - "string-convert": "^0.2.0" - } - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "katex": { - "version": "0.16.11", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz", - "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==", - "requires": { - "commander": "^8.3.0" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - } - } - }, - "keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "longest-streak": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", - "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lowlight": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", - "integrity": "sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==", - "requires": { - "fault": "^1.0.0", - "highlight.js": "~10.7.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==" - }, - "mdast-util-find-and-replace": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", - "requires": { - "@types/mdast": "^4.0.0", - "escape-string-regexp": "^5.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" - } - } - }, - "mdast-util-from-markdown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", - "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", - "requires": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark": "^4.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-decode-string": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unist-util-stringify-position": "^4.0.0" - } - }, - "mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", - "requires": { - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-gfm-autolink-literal": "^2.0.0", - "mdast-util-gfm-footnote": "^2.0.0", - "mdast-util-gfm-strikethrough": "^2.0.0", - "mdast-util-gfm-table": "^2.0.0", - "mdast-util-gfm-task-list-item": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - } - }, - "mdast-util-gfm-autolink-literal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", - "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", - "requires": { - "@types/mdast": "^4.0.0", - "ccount": "^2.0.0", - "devlop": "^1.0.0", - "mdast-util-find-and-replace": "^3.0.0", - "micromark-util-character": "^2.0.0" - } - }, - "mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", - "requires": { - "@types/mdast": "^4.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0" - } - }, - "mdast-util-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", - "requires": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - } - }, - "mdast-util-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", - "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", - "requires": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - } - }, - "mdast-util-gfm-task-list-item": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", - "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", - "requires": { - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - } - }, - "mdast-util-math": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-math/-/mdast-util-math-3.0.0.tgz", - "integrity": "sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==", - "requires": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "longest-streak": "^3.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.1.0", - "unist-util-remove-position": "^5.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "mdast-util-mdx-expression": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", - "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", - "requires": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "mdast-util-mdx-jsx": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz", - "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==", - "requires": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "ccount": "^2.0.0", - "devlop": "^1.1.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0", - "parse-entities": "^4.0.0", - "stringify-entities": "^4.0.0", - "unist-util-stringify-position": "^4.0.0", - "vfile-message": "^4.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - }, - "character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" - }, - "character-reference-invalid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", - "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==" - }, - "is-alphabetical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", - "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==" - }, - "is-alphanumerical": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", - "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", - "requires": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - } - }, - "is-decimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", - "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==" - }, - "is-hexadecimal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", - "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==" - }, - "parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", - "requires": { - "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", - "character-entities-legacy": "^3.0.0", - "character-reference-invalid": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "dependencies": { - "@types/unist": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", - "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==" - } - } - } - } - }, - "mdast-util-mdxjs-esm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", - "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", - "requires": { - "@types/estree-jsx": "^1.0.0", - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "devlop": "^1.0.0", - "mdast-util-from-markdown": "^2.0.0", - "mdast-util-to-markdown": "^2.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "mdast-util-phrasing": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", - "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", - "requires": { - "@types/mdast": "^4.0.0", - "unist-util-is": "^6.0.0" - } - }, - "mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", - "requires": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "@ungap/structured-clone": "^1.0.0", - "devlop": "^1.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "trim-lines": "^3.0.0", - "unist-util-position": "^5.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "mdast-util-to-markdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", - "requires": { - "@types/mdast": "^4.0.0", - "@types/unist": "^3.0.0", - "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^4.0.0", - "mdast-util-to-string": "^4.0.0", - "micromark-util-decode-string": "^2.0.0", - "unist-util-visit": "^5.0.0", - "zwitch": "^2.0.0" - } - }, - "mdast-util-to-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", - "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", - "requires": { - "@types/mdast": "^4.0.0" - } - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", - "requires": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-core-commonmark": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", - "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", - "requires": { - "decode-named-character-reference": "^1.0.0", - "devlop": "^1.0.0", - "micromark-factory-destination": "^2.0.0", - "micromark-factory-label": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-factory-title": "^2.0.0", - "micromark-factory-whitespace": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-html-tag-name": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-subtokenize": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-extension-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", - "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", - "requires": { - "micromark-extension-gfm-autolink-literal": "^2.0.0", - "micromark-extension-gfm-footnote": "^2.0.0", - "micromark-extension-gfm-strikethrough": "^2.0.0", - "micromark-extension-gfm-table": "^2.0.0", - "micromark-extension-gfm-tagfilter": "^2.0.0", - "micromark-extension-gfm-task-list-item": "^2.0.0", - "micromark-util-combine-extensions": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-extension-gfm-autolink-literal": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", - "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", - "requires": { - "micromark-util-character": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-extension-gfm-footnote": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", - "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", - "requires": { - "devlop": "^1.0.0", - "micromark-core-commonmark": "^2.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-normalize-identifier": "^2.0.0", - "micromark-util-sanitize-uri": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-extension-gfm-strikethrough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", - "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", - "requires": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-classify-character": "^2.0.0", - "micromark-util-resolve-all": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-extension-gfm-table": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", - "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", - "requires": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-extension-gfm-tagfilter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", - "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", - "requires": { - "micromark-util-types": "^2.0.0" - } - }, - "micromark-extension-gfm-task-list-item": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", - "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", - "requires": { - "devlop": "^1.0.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-extension-math": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-math/-/micromark-extension-math-3.1.0.tgz", - "integrity": "sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==", - "requires": { - "@types/katex": "^0.16.0", - "devlop": "^1.0.0", - "katex": "^0.16.0", - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", - "requires": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", - "requires": { - "devlop": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", - "requires": { - "micromark-util-character": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", - "requires": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", - "requires": { - "micromark-factory-space": "^2.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", - "requires": { - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-util-chunked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", - "requires": { - "micromark-util-symbol": "^2.0.0" - } - }, - "micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", - "requires": { - "micromark-util-character": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", - "requires": { - "micromark-util-chunked": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", - "requires": { - "micromark-util-symbol": "^2.0.0" - } - }, - "micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", - "requires": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^2.0.0", - "micromark-util-decode-numeric-character-reference": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==" - }, - "micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==" - }, - "micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", - "requires": { - "micromark-util-symbol": "^2.0.0" - } - }, - "micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", - "requires": { - "micromark-util-types": "^2.0.0" - } - }, - "micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", - "requires": { - "micromark-util-character": "^2.0.0", - "micromark-util-encode": "^2.0.0", - "micromark-util-symbol": "^2.0.0" - } - }, - "micromark-util-subtokenize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", - "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", - "requires": { - "devlop": "^1.0.0", - "micromark-util-chunked": "^2.0.0", - "micromark-util-symbol": "^2.0.0", - "micromark-util-types": "^2.0.0" - } - }, - "micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==" - }, - "micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==" - }, - "micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "requires": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "dev": true - }, - "object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" - }, - "optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", - "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - }, - "dependencies": { - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" - } - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "requires": { - "entities": "^4.4.0" - } - }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true - } - } - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - }, - "pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true - }, - "postcss": { - "version": "8.4.41", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", - "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", - "dev": true, - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" - } - }, - "postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - } - }, - "postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dev": true, - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "dev": true, - "requires": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "dependencies": { - "lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", - "dev": true - } - } - }, - "postcss-nested": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", - "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.1.1" - } - }, - "postcss-selector-parser": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", - "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - } - } - }, - "property-information": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", - "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", - "requires": { - "xtend": "^4.0.0" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true - }, - "qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "requires": { - "side-channel": "^1.0.6" - } - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "rc-cascader": { - "version": "3.27.0", - "resolved": "https://registry.npmjs.org/rc-cascader/-/rc-cascader-3.27.0.tgz", - "integrity": "sha512-z5uq8VvQadFUBiuZJ7YF5UAUGNkZtdEtcEYiIA94N/Kc2MIKr6lEbN5HyVddvYSgwWlKqnL6pH5bFXFuIK3MNg==", - "requires": { - "@babel/runtime": "^7.12.5", - "array-tree-filter": "^2.1.0", - "classnames": "^2.3.1", - "rc-select": "~14.15.0", - "rc-tree": "~5.8.1", - "rc-util": "^5.37.0" - } - }, - "rc-checkbox": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.3.0.tgz", - "integrity": "sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.3.2", - "rc-util": "^5.25.2" - } - }, - "rc-collapse": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.7.3.tgz", - "integrity": "sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.3.4", - "rc-util": "^5.27.0" - } - }, - "rc-dialog": { - "version": "9.5.2", - "resolved": "https://registry.npmjs.org/rc-dialog/-/rc-dialog-9.5.2.tgz", - "integrity": "sha512-qVUjc8JukG+j/pNaHVSRa2GO2/KbV2thm7yO4hepQ902eGdYK913sGkwg/fh9yhKYV1ql3BKIN2xnud3rEXAPw==", - "requires": { - "@babel/runtime": "^7.10.1", - "@rc-component/portal": "^1.0.0-8", - "classnames": "^2.2.6", - "rc-motion": "^2.3.0", - "rc-util": "^5.21.0" - } - }, - "rc-drawer": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/rc-drawer/-/rc-drawer-7.2.0.tgz", - "integrity": "sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==", - "requires": { - "@babel/runtime": "^7.23.9", - "@rc-component/portal": "^1.1.1", - "classnames": "^2.2.6", - "rc-motion": "^2.6.1", - "rc-util": "^5.38.1" - } - }, - "rc-dropdown": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/rc-dropdown/-/rc-dropdown-4.2.0.tgz", - "integrity": "sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==", - "requires": { - "@babel/runtime": "^7.18.3", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.2.6", - "rc-util": "^5.17.0" - } - }, - "rc-field-form": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/rc-field-form/-/rc-field-form-2.4.0.tgz", - "integrity": "sha512-XZ/lF9iqf9HXApIHQHqzJK5v2w4mkUMsVqAzOyWVzoiwwXEavY6Tpuw7HavgzIoD+huVff4JghSGcgEfX6eycg==", - "requires": { - "@babel/runtime": "^7.18.0", - "@rc-component/async-validator": "^5.0.3", - "rc-util": "^5.32.2" - } - }, - "rc-image": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/rc-image/-/rc-image-7.9.0.tgz", - "integrity": "sha512-l4zqO5E0quuLMCtdKfBgj4Suv8tIS011F5k1zBBlK25iMjjiNHxA0VeTzGFtUZERSA45gvpXDg8/P6qNLjR25g==", - "requires": { - "@babel/runtime": "^7.11.2", - "@rc-component/portal": "^1.0.2", - "classnames": "^2.2.6", - "rc-dialog": "~9.5.2", - "rc-motion": "^2.6.2", - "rc-util": "^5.34.1" - } - }, - "rc-input": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/rc-input/-/rc-input-1.6.3.tgz", - "integrity": "sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA==", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.18.1" - } - }, - "rc-input-number": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/rc-input-number/-/rc-input-number-9.2.0.tgz", - "integrity": "sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg==", - "requires": { - "@babel/runtime": "^7.10.1", - "@rc-component/mini-decimal": "^1.0.1", - "classnames": "^2.2.5", - "rc-input": "~1.6.0", - "rc-util": "^5.40.1" - } - }, - "rc-mentions": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/rc-mentions/-/rc-mentions-2.15.0.tgz", - "integrity": "sha512-f5v5i7VdqvBDXbphoqcQWmXDif2Msd2arritVoWybrVDuHE6nQ7XCYsybHbV//WylooK52BFDouFvyaRDtXZEw==", - "requires": { - "@babel/runtime": "^7.22.5", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.2.6", - "rc-input": "~1.6.0", - "rc-menu": "~9.14.0", - "rc-textarea": "~1.8.0", - "rc-util": "^5.34.1" - } - }, - "rc-menu": { - "version": "9.14.1", - "resolved": "https://registry.npmjs.org/rc-menu/-/rc-menu-9.14.1.tgz", - "integrity": "sha512-5wlRb3M8S4yGlWhSoEYJ7ZVRElyScdcpUHxgiLxkeig1tEdyKrnED3B2fhpN0Rrpdp9jyhnmZR/Lwq2fH5VvDQ==", - "requires": { - "@babel/runtime": "^7.10.1", - "@rc-component/trigger": "^2.0.0", - "classnames": "2.x", - "rc-motion": "^2.4.3", - "rc-overflow": "^1.3.1", - "rc-util": "^5.27.0" - } - }, - "rc-motion": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/rc-motion/-/rc-motion-2.9.2.tgz", - "integrity": "sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw==", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-util": "^5.43.0" - } - }, - "rc-notification": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/rc-notification/-/rc-notification-5.6.0.tgz", - "integrity": "sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.9.0", - "rc-util": "^5.20.1" - } - }, - "rc-overflow": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/rc-overflow/-/rc-overflow-1.3.2.tgz", - "integrity": "sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.37.0" - } - }, - "rc-pagination": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/rc-pagination/-/rc-pagination-4.2.0.tgz", - "integrity": "sha512-V6qeANJsT6tmOcZ4XiUmj8JXjRLbkusuufpuoBw2GiAn94fIixYjFLmbruD1Sbhn8fPLDnWawPp4CN37zQorvw==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.3.2", - "rc-util": "^5.38.0" - } - }, - "rc-picker": { - "version": "4.6.14", - "resolved": "https://registry.npmjs.org/rc-picker/-/rc-picker-4.6.14.tgz", - "integrity": "sha512-7DuTfUFdkxmsNpWQ0TWv6FPGna5e6KKC4nxtx3x9xhumLz7jb3fhlDdWQvqEL6tpt9DOb1+N5j+wB+lDOSS9kg==", - "requires": { - "@babel/runtime": "^7.24.7", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.2.1", - "rc-overflow": "^1.3.2", - "rc-resize-observer": "^1.4.0", - "rc-util": "^5.43.0" - } - }, - "rc-progress": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/rc-progress/-/rc-progress-4.0.0.tgz", - "integrity": "sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.6", - "rc-util": "^5.16.1" - } - }, - "rc-rate": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/rc-rate/-/rc-rate-2.13.0.tgz", - "integrity": "sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.0.1" - } - }, - "rc-resize-observer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz", - "integrity": "sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==", - "requires": { - "@babel/runtime": "^7.20.7", - "classnames": "^2.2.1", - "rc-util": "^5.38.0", - "resize-observer-polyfill": "^1.5.1" - } - }, - "rc-segmented": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/rc-segmented/-/rc-segmented-2.3.0.tgz", - "integrity": "sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==", - "requires": { - "@babel/runtime": "^7.11.1", - "classnames": "^2.2.1", - "rc-motion": "^2.4.4", - "rc-util": "^5.17.0" - } - }, - "rc-select": { - "version": "14.15.1", - "resolved": "https://registry.npmjs.org/rc-select/-/rc-select-14.15.1.tgz", - "integrity": "sha512-mGvuwW1RMm1NCSI8ZUoRoLRK51R2Nb+QJnmiAvbDRcjh2//ulCkxeV6ZRFTECPpE1t2DPfyqZMPw90SVJzQ7wQ==", - "requires": { - "@babel/runtime": "^7.10.1", - "@rc-component/trigger": "^2.1.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-overflow": "^1.3.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.5.2" - } - }, - "rc-slider": { - "version": "11.1.5", - "resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-11.1.5.tgz", - "integrity": "sha512-b77H5PbjMKsvkYXAYIkn50QuFX6ICQmCTibDinI9q+BHx65/TV4TeU25+oadhSRzykxs0/vBWeKBwRyySOeWlg==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.5", - "rc-util": "^5.36.0" - } - }, - "rc-steps": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/rc-steps/-/rc-steps-6.0.1.tgz", - "integrity": "sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==", - "requires": { - "@babel/runtime": "^7.16.7", - "classnames": "^2.2.3", - "rc-util": "^5.16.1" - } - }, - "rc-switch": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rc-switch/-/rc-switch-4.1.0.tgz", - "integrity": "sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==", - "requires": { - "@babel/runtime": "^7.21.0", - "classnames": "^2.2.1", - "rc-util": "^5.30.0" - } - }, - "rc-table": { - "version": "7.45.7", - "resolved": "https://registry.npmjs.org/rc-table/-/rc-table-7.45.7.tgz", - "integrity": "sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg==", - "requires": { - "@babel/runtime": "^7.10.1", - "@rc-component/context": "^1.4.0", - "classnames": "^2.2.5", - "rc-resize-observer": "^1.1.0", - "rc-util": "^5.37.0", - "rc-virtual-list": "^3.14.2" - } - }, - "rc-tabs": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/rc-tabs/-/rc-tabs-15.1.1.tgz", - "integrity": "sha512-Tc7bJvpEdkWIVCUL7yQrMNBJY3j44NcyWS48jF/UKMXuUlzaXK+Z/pEL5LjGcTadtPvVmNqA40yv7hmr+tCOAw==", - "requires": { - "@babel/runtime": "^7.11.2", - "classnames": "2.x", - "rc-dropdown": "~4.2.0", - "rc-menu": "~9.14.0", - "rc-motion": "^2.6.2", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.34.1" - } - }, - "rc-textarea": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/rc-textarea/-/rc-textarea-1.8.1.tgz", - "integrity": "sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "^2.2.1", - "rc-input": "~1.6.0", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.27.0" - } - }, - "rc-tooltip": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-6.2.0.tgz", - "integrity": "sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==", - "requires": { - "@babel/runtime": "^7.11.2", - "@rc-component/trigger": "^2.0.0", - "classnames": "^2.3.1" - } - }, - "rc-tree": { - "version": "5.8.8", - "resolved": "https://registry.npmjs.org/rc-tree/-/rc-tree-5.8.8.tgz", - "integrity": "sha512-S+mCMWo91m5AJqjz3PdzKilGgbFm7fFJRFiTDOcoRbD7UfMOPnerXwMworiga0O2XIo383UoWuEfeHs1WOltag==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-motion": "^2.0.1", - "rc-util": "^5.16.1", - "rc-virtual-list": "^3.5.1" - } - }, - "rc-tree-select": { - "version": "5.22.2", - "resolved": "https://registry.npmjs.org/rc-tree-select/-/rc-tree-select-5.22.2.tgz", - "integrity": "sha512-WHmWCck4+8mf4/KFTjw70AlnoNPkX4C1TOIzzwxfZ7w8hcNO4bzggoeO2Q3fAedjZteN5I3t2dT0BCZAnHedlQ==", - "requires": { - "@babel/runtime": "^7.10.1", - "classnames": "2.x", - "rc-select": "~14.15.0", - "rc-tree": "~5.8.1", - "rc-util": "^5.16.1" - } - }, - "rc-upload": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-4.7.0.tgz", - "integrity": "sha512-eUwxYNHlsYe5vYhKFAUGrQG95JrnPzY+BmPi1Daq39fWNl/eOc7v4UODuWrVp2LFkQBuV3cMCG/I68iub6oBrg==", - "requires": { - "@babel/runtime": "^7.18.3", - "classnames": "^2.2.5", - "rc-util": "^5.2.0" - } - }, - "rc-util": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/rc-util/-/rc-util-5.43.0.tgz", - "integrity": "sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==", - "requires": { - "@babel/runtime": "^7.18.3", - "react-is": "^18.2.0" - } - }, - "rc-virtual-list": { - "version": "3.14.5", - "resolved": "https://registry.npmjs.org/rc-virtual-list/-/rc-virtual-list-3.14.5.tgz", - "integrity": "sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==", - "requires": { - "@babel/runtime": "^7.20.0", - "classnames": "^2.2.6", - "rc-resize-observer": "^1.0.0", - "rc-util": "^5.36.0" - } - }, - "react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "react-copy-to-clipboard": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz", - "integrity": "sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==", - "requires": { - "copy-to-clipboard": "^3.3.1", - "prop-types": "^15.8.1" - } - }, - "react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "requires": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - } - }, - "react-fast-compare": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" - }, - "react-intl": { - "version": "6.6.8", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-6.6.8.tgz", - "integrity": "sha512-M0pkhzcgV31h++2901BiRXWl69hp2zPyLxRrSwRjd1ErXbNoubz/f4M6DrRTd4OiSUrT4ajRQzrmtS5plG4FtA==", - "requires": { - "@formatjs/ecma402-abstract": "2.0.0", - "@formatjs/icu-messageformat-parser": "2.7.8", - "@formatjs/intl": "2.10.4", - "@formatjs/intl-displaynames": "6.6.8", - "@formatjs/intl-listformat": "7.5.7", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/react": "16 || 17 || 18", - "hoist-non-react-statics": "^3.3.2", - "intl-messageformat": "10.5.14", - "tslib": "^2.4.0" - } - }, - "react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - }, - "react-markdown": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", - "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", - "requires": { - "@types/hast": "^3.0.0", - "devlop": "^1.0.0", - "hast-util-to-jsx-runtime": "^2.0.0", - "html-url-attributes": "^3.0.0", - "mdast-util-to-hast": "^13.0.0", - "remark-parse": "^11.0.0", - "remark-rehype": "^11.0.0", - "unified": "^11.0.0", - "unist-util-visit": "^5.0.0", - "vfile": "^6.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", - "dev": true - }, - "react-router": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.1.tgz", - "integrity": "sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==", - "requires": { - "@remix-run/router": "1.19.1" - } - }, - "react-router-dom": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.1.tgz", - "integrity": "sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==", - "requires": { - "@remix-run/router": "1.19.1", - "react-router": "6.26.1" - } - }, - "react-syntax-highlighter": { - "version": "15.5.0", - "resolved": "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz", - "integrity": "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==", - "requires": { - "@babel/runtime": "^7.3.1", - "highlight.js": "^10.4.1", - "lowlight": "^1.17.0", - "prismjs": "^1.27.0", - "refractor": "^3.6.0" - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "refractor": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/refractor/-/refractor-3.6.0.tgz", - "integrity": "sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==", - "requires": { - "hastscript": "^6.0.0", - "parse-entities": "^2.0.0", - "prismjs": "~1.27.0" - }, - "dependencies": { - "prismjs": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz", - "integrity": "sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==" - } - } - }, - "regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "rehype-katex": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-7.0.1.tgz", - "integrity": "sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==", - "requires": { - "@types/hast": "^3.0.0", - "@types/katex": "^0.16.0", - "hast-util-from-html-isomorphic": "^2.0.0", - "hast-util-to-text": "^4.0.0", - "katex": "^0.16.0", - "unist-util-visit-parents": "^6.0.0", - "vfile": "^6.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "rehype-raw": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", - "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", - "requires": { - "@types/hast": "^3.0.0", - "hast-util-raw": "^9.0.0", - "vfile": "^6.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", - "requires": { - "@types/mdast": "^4.0.0", - "mdast-util-gfm": "^3.0.0", - "micromark-extension-gfm": "^3.0.0", - "remark-parse": "^11.0.0", - "remark-stringify": "^11.0.0", - "unified": "^11.0.0" - } - }, - "remark-math": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-6.0.0.tgz", - "integrity": "sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==", - "requires": { - "@types/mdast": "^4.0.0", - "mdast-util-math": "^3.0.0", - "micromark-extension-math": "^3.0.0", - "unified": "^11.0.0" - } - }, - "remark-parse": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", - "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", - "requires": { - "@types/mdast": "^4.0.0", - "mdast-util-from-markdown": "^2.0.0", - "micromark-util-types": "^2.0.0", - "unified": "^11.0.0" - } - }, - "remark-rehype": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", - "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", - "requires": { - "@types/hast": "^3.0.0", - "@types/mdast": "^4.0.0", - "mdast-util-to-hast": "^13.0.0", - "unified": "^11.0.0", - "vfile": "^6.0.0" - }, - "dependencies": { - "@types/hast": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", - "requires": { - "@types/unist": "*" - } - } - } - }, - "remark-stringify": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", - "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", - "requires": { - "@types/mdast": "^4.0.0", - "mdast-util-to-markdown": "^2.0.0", - "unified": "^11.0.0" - } - }, - "resize-observer-polyfill": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", - "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rollup": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.1.tgz", - "integrity": "sha512-ZnYyKvscThhgd3M5+Qt3pmhO4jIRR5RGzaSovB6Q7rGNrK5cUncrtLmcTTJVSdcKXyZjW8X8MB0JMSuH9bcAJg==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.21.1", - "@rollup/rollup-android-arm64": "4.21.1", - "@rollup/rollup-darwin-arm64": "4.21.1", - "@rollup/rollup-darwin-x64": "4.21.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.1", - "@rollup/rollup-linux-arm-musleabihf": "4.21.1", - "@rollup/rollup-linux-arm64-gnu": "4.21.1", - "@rollup/rollup-linux-arm64-musl": "4.21.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.1", - "@rollup/rollup-linux-riscv64-gnu": "4.21.1", - "@rollup/rollup-linux-s390x-gnu": "4.21.1", - "@rollup/rollup-linux-x64-gnu": "4.21.1", - "@rollup/rollup-linux-x64-musl": "4.21.1", - "@rollup/rollup-win32-arm64-msvc": "4.21.1", - "@rollup/rollup-win32-ia32-msvc": "4.21.1", - "@rollup/rollup-win32-x64-msvc": "4.21.1", - "@types/estree": "1.0.5", - "fsevents": "~2.3.2" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "sass-embedded": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.77.8.tgz", - "integrity": "sha512-WGXA6jcaoBo5Uhw0HX/s6z/sl3zyYQ7ZOnLOJzqwpctFcFmU4L07zn51e2VSkXXFpQZFAdMZNqOGz/7h/fvcRA==", - "dev": true, - "requires": { - "@bufbuild/protobuf": "^1.0.0", - "buffer-builder": "^0.2.0", - "immutable": "^4.0.0", - "rxjs": "^7.4.0", - "sass-embedded-android-arm": "1.77.8", - "sass-embedded-android-arm64": "1.77.8", - "sass-embedded-android-ia32": "1.77.8", - "sass-embedded-android-x64": "1.77.8", - "sass-embedded-darwin-arm64": "1.77.8", - "sass-embedded-darwin-x64": "1.77.8", - "sass-embedded-linux-arm": "1.77.8", - "sass-embedded-linux-arm64": "1.77.8", - "sass-embedded-linux-ia32": "1.77.8", - "sass-embedded-linux-musl-arm": "1.77.8", - "sass-embedded-linux-musl-arm64": "1.77.8", - "sass-embedded-linux-musl-ia32": "1.77.8", - "sass-embedded-linux-musl-x64": "1.77.8", - "sass-embedded-linux-x64": "1.77.8", - "sass-embedded-win32-arm64": "1.77.8", - "sass-embedded-win32-ia32": "1.77.8", - "sass-embedded-win32-x64": "1.77.8", - "supports-color": "^8.1.1", - "varint": "^6.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "sass-embedded-android-arm": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.77.8.tgz", - "integrity": "sha512-GpGL7xZ7V1XpFbnflib/NWbM0euRzineK0iwoo31/ntWKAXGj03iHhGzkSiOwWSFcXgsJJi3eRA5BTmBvK5Q+w==", - "dev": true, - "optional": true - }, - "sass-embedded-android-arm64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.77.8.tgz", - "integrity": "sha512-EmWHLbEx0Zo/f/lTFzMeH2Du+/I4RmSRlEnERSUKQWVp3aBSO04QDvdxfFezgQ+2Yt/ub9WMqBpma9P/8MPsLg==", - "dev": true, - "optional": true - }, - "sass-embedded-android-ia32": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.77.8.tgz", - "integrity": "sha512-+GjfJ3lDezPi4dUUyjQBxlNKXNa+XVWsExtGvVNkv1uKyaOxULJhubVo2G6QTJJU0esJdfeXf5Ca5/J0ph7+7w==", - "dev": true, - "optional": true - }, - "sass-embedded-android-x64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.77.8.tgz", - "integrity": "sha512-YZbFDzGe5NhaMCygShqkeCWtzjhkWxGVunc7ULR97wmxYPQLPeVyx7XFQZc84Aj0lKAJBJS4qRZeqphMqZEJsQ==", - "dev": true, - "optional": true - }, - "sass-embedded-darwin-arm64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.77.8.tgz", - "integrity": "sha512-aifgeVRNE+i43toIkDFFJc/aPLMo0PJ5s5hKb52U+oNdiJE36n65n2L8F/8z3zZRvCa6eYtFY2b7f1QXR3B0LA==", - "dev": true, - "optional": true - }, - "sass-embedded-darwin-x64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.77.8.tgz", - "integrity": "sha512-/VWZQtcWIOek60Zj6Sxk6HebXA1Qyyt3sD8o5qwbTgZnKitB1iEBuNunyGoAgMNeUz2PRd6rVki6hvbas9hQ6w==", - "dev": true, - "optional": true - }, - "sass-embedded-linux-arm": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.77.8.tgz", - "integrity": "sha512-2edZMB6jf0whx3T0zlgH+p131kOEmWp+I4wnKj7ZMUeokiY4Up05d10hSvb0Q63lOrSjFAWu6P5/pcYUUx8arQ==", - "dev": true, - "optional": true - }, - "sass-embedded-linux-arm64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.77.8.tgz", - "integrity": "sha512-6iIOIZtBFa2YfMsHqOb3qake3C9d/zlKxjooKKnTSo+6g6z+CLTzMXe1bOfayb7yxeenElmFoK1k54kWD/40+g==", - "dev": true, - "optional": true - }, - "sass-embedded-linux-ia32": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.77.8.tgz", - "integrity": "sha512-63GsFFHWN5yRLTWiSef32TM/XmjhCBx1DFhoqxmj+Yc6L9Z1h0lDHjjwdG6Sp5XTz5EmsaFKjpDgnQTP9hJX3Q==", - "dev": true, - "optional": true - }, - "sass-embedded-linux-musl-arm": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.77.8.tgz", - "integrity": "sha512-nFkhSl3uu9btubm+JBW7uRglNVJ8W8dGfzVqh3fyQJKS1oyBC3vT3VOtfbT9YivXk28wXscSHpqXZwY7bUuopA==", - "dev": true, - "optional": true - }, - "sass-embedded-linux-musl-arm64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.77.8.tgz", - "integrity": "sha512-j8cgQxNWecYK+aH8ESFsyam/Q6G+9gg8eJegiRVpA9x8yk3ykfHC7UdQWwUcF22ZcuY4zegrjJx8k+thsgsOVA==", - "dev": true, - "optional": true - }, - "sass-embedded-linux-musl-ia32": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.77.8.tgz", - "integrity": "sha512-oWveMe+8TFlP8WBWPna/+Ec5TV0CE+PxEutyi0ltSruBds2zxRq9dPVOqrpPcDN9QUx50vNZC0Afgch0aQEd0g==", - "dev": true, - "optional": true - }, - "sass-embedded-linux-musl-x64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.77.8.tgz", - "integrity": "sha512-2NtRpMXHeFo9kaYxuZ+Ewwo39CE7BTS2JDfXkTjZTZqd8H+8KC53eBh516YQnn2oiqxSiKxm7a6pxbxGZGwXOQ==", - "dev": true, - "optional": true - }, - "sass-embedded-linux-x64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.77.8.tgz", - "integrity": "sha512-ND5qZLWUCpOn7LJfOf0gLSZUWhNIysY+7NZK1Ctq+pM6tpJky3JM5I1jSMplNxv5H3o8p80n0gSm+fcjsEFfjQ==", - "dev": true, - "optional": true - }, - "sass-embedded-win32-arm64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.77.8.tgz", - "integrity": "sha512-7L8zT6xzEvTYj86MvUWnbkWYCNQP+74HvruLILmiPPE+TCgOjgdi750709BtppVJGGZSs40ZuN6mi/YQyGtwXg==", - "dev": true, - "optional": true - }, - "sass-embedded-win32-ia32": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.77.8.tgz", - "integrity": "sha512-7Buh+4bP0WyYn6XPbthkIa3M2vtcR8QIsFVg3JElVlr+8Ng19jqe0t0SwggDgbMX6AdQZC+Wj4F1BprZSok42A==", - "dev": true, - "optional": true - }, - "sass-embedded-win32-x64": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.77.8.tgz", - "integrity": "sha512-rZmLIx4/LLQm+4GW39sRJW0MIlDqmyV0fkRzTmhFP5i/wVC7cuj8TUubPHw18rv2rkHFfBZKZJTCkPjCS5Z+SA==", - "dev": true, - "optional": true - }, - "scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "screenfull": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.2.0.tgz", - "integrity": "sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==" - }, - "scroll-into-view-if-needed": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", - "integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==", - "requires": { - "compute-scroll-into-view": "^3.0.2" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - } - }, - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true - }, - "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true - }, - "space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" - }, - "string-convert": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", - "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - } - } - }, - "stringify-entities": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", - "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", - "requires": { - "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^3.0.0" - }, - "dependencies": { - "character-entities-legacy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", - "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==" - } - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "style-mod": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", - "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==" - }, - "style-to-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.7.tgz", - "integrity": "sha512-uSjr59G5u6fbxUfKbb8GcqMGT3Xs9v5IbPkjb0S16GyOeBLAzSRK0CixBv5YrYvzO6TDLzIS6QCn78tkqWngPw==", - "requires": { - "inline-style-parser": "0.2.3" - } - }, - "stylis": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz", - "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==" - }, - "sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "tailwindcss": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz", - "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", - "dev": true, - "requires": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.21.0", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "throttle-debounce": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-5.0.2.tgz", - "integrity": "sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toggle-selection": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz", - "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==" - }, - "trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==" - }, - "trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==" - }, - "true-myth": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/true-myth/-/true-myth-4.1.1.tgz", - "integrity": "sha512-rqy30BSpxPznbbTcAcci90oZ1YR4DqvKcNXNerG5gQBU2v4jk0cygheiul5J6ExIMrgDVuanv/MkGfqZbKrNNg==", - "dev": true - }, - "ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true, - "requires": {} - }, - "ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true - }, - "ts-morph": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-13.0.3.tgz", - "integrity": "sha512-pSOfUMx8Ld/WUreoSzvMFQG5i9uEiWIsBYjpU9+TTASOeUa89j5HykomeqVULm1oqWtBdleI3KEFRLrlA3zGIw==", - "dev": true, - "requires": { - "@ts-morph/common": "~0.12.3", - "code-block-writer": "^11.0.0" - } - }, - "ts-prune": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-prune/-/ts-prune-0.10.3.tgz", - "integrity": "sha512-iS47YTbdIcvN8Nh/1BFyziyUqmjXz7GVzWu02RaZXqb+e/3Qe1B7IQ4860krOeCGUeJmterAlaM2FRH0Ue0hjw==", - "dev": true, - "requires": { - "commander": "^6.2.1", - "cosmiconfig": "^7.0.1", - "json5": "^2.1.3", - "lodash": "^4.17.21", - "true-myth": "^4.1.0", - "ts-morph": "^13.0.1" - }, - "dependencies": { - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - } - } - }, - "tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "typescript": { - "version": "5.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", - "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", - "devOptional": true - }, - "typescript-eslint": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.3.0.tgz", - "integrity": "sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==", - "dev": true, - "requires": { - "@typescript-eslint/eslint-plugin": "8.3.0", - "@typescript-eslint/parser": "8.3.0", - "@typescript-eslint/utils": "8.3.0" - } - }, - "undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true - }, - "unified": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", - "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", - "requires": { - "@types/unist": "^3.0.0", - "bail": "^2.0.0", - "devlop": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^6.0.0" - } - }, - "unist-util-find-after": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", - "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", - "requires": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - } - }, - "unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", - "requires": { - "@types/unist": "^3.0.0" - } - }, - "unist-util-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", - "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", - "requires": { - "@types/unist": "^3.0.0" - } - }, - "unist-util-remove-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", - "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", - "requires": { - "@types/unist": "^3.0.0", - "unist-util-visit": "^5.0.0" - } - }, - "unist-util-stringify-position": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", - "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", - "requires": { - "@types/unist": "^3.0.0" - } - }, - "unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", - "requires": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0", - "unist-util-visit-parents": "^6.0.0" - } - }, - "unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", - "requires": { - "@types/unist": "^3.0.0", - "unist-util-is": "^6.0.0" - } - }, - "update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", - "dev": true, - "requires": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "use-sync-external-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", - "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", - "requires": {} - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", - "dev": true - }, - "vfile": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", - "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", - "requires": { - "@types/unist": "^3.0.0", - "vfile-message": "^4.0.0" - } - }, - "vfile-location": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", - "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", - "requires": { - "@types/unist": "^3.0.0", - "vfile": "^6.0.0" - } - }, - "vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", - "requires": { - "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0" - } - }, - "vite": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.2.tgz", - "integrity": "sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==", - "dev": true, - "requires": { - "esbuild": "^0.21.3", - "fsevents": "~2.3.3", - "postcss": "^8.4.41", - "rollup": "^4.20.0" - } - }, - "w3c-keyname": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", - "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" - }, - "web-namespaces": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", - "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yaml": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", - "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - }, - "zustand": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.5.tgz", - "integrity": "sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==", - "requires": { - "use-sync-external-store": "1.2.2" - } - }, - "zwitch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", - "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==" - } - } -} diff --git a/projects/web/package.json b/projects/web/package.json deleted file mode 100644 index c2044ac92..000000000 --- a/projects/web/package.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "name": "my-react-app", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite --host ", - "build": "tsc --noEmit && vite build", - "lint": "eslint .", - "preview": "vite preview" - }, - "dependencies": { - "@ant-design/icons": "^5.4.0", - "@codemirror/view": "^6.33.0", - "@tanstack/react-query": "^5.56.2", - "@types/lodash": "^4.17.7", - "@types/qs": "^6.9.15", - "@types/react-copy-to-clipboard": "^5.0.7", - "@types/react-syntax-highlighter": "^15.5.13", - "@uiw/codemirror-extensions-langs": "^4.23.0", - "@uiw/react-codemirror": "^4.23.0", - "ahooks": "^3.8.1", - "antd": "^5.20.3", - "axios": "^1.7.5", - "canvas": "^2.11.2", - "classnames": "^2.5.1", - "js-cookie": "^3.0.5", - "lodash": "^4.17.21", - "path2d": "^0.2.1", - "qs": "^6.13.0", - "react": "^18.3.1", - "react-copy-to-clipboard": "^5.1.0", - "react-dom": "^18.3.1", - "react-intl": "^6.6.8", - "react-markdown": "^9.0.1", - "react-query": "^3.39.3", - "react-router-dom": "^6.26.1", - "react-syntax-highlighter": "^15.5.0", - "rehype-katex": "^7.0.1", - "rehype-raw": "^7.0.0", - "remark-gfm": "^4.0.0", - "remark-math": "^6.0.0", - "zustand": "^4.5.5" - }, - "devDependencies": { - "@eslint/js": "^9.9.0", - "@types/js-cookie": "^3.0.6", - "@types/node": "^22.5.1", - "@types/react": "^18.3.3", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.3.1", - "autoprefixer": "^10.4.20", - "eslint": "^9.9.0", - "eslint-plugin-react-hooks": "^5.1.0-rc.0", - "eslint-plugin-react-refresh": "^0.4.9", - "globals": "^15.9.0", - "less": "^4.2.0", - "postcss": "^8.4.41", - "sass-embedded": "^1.77.8", - "tailwindcss": "^3.4.10", - "ts-prune": "^0.10.3", - "typescript": "^5.5.3", - "typescript-eslint": "^8.0.1", - "vite": "^5.4.1" - } -} \ No newline at end of file diff --git a/projects/web/pnpm-lock.yaml b/projects/web/pnpm-lock.yaml deleted file mode 100644 index d84729b64..000000000 --- a/projects/web/pnpm-lock.yaml +++ /dev/null @@ -1,5951 +0,0 @@ -lockfileVersion: '6.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -dependencies: - '@ant-design/icons': - specifier: ^5.4.0 - version: 5.4.0(react-dom@18.3.1)(react@18.3.1) - '@codemirror/view': - specifier: ^6.33.0 - version: 6.33.0 - '@tanstack/react-query': - specifier: ^5.56.2 - version: 5.56.2(react@18.3.1) - '@types/lodash': - specifier: ^4.17.7 - version: 4.17.7 - '@types/qs': - specifier: ^6.9.15 - version: 6.9.15 - '@types/react-copy-to-clipboard': - specifier: ^5.0.7 - version: 5.0.7 - '@types/react-syntax-highlighter': - specifier: ^15.5.13 - version: 15.5.13 - '@uiw/codemirror-extensions-langs': - specifier: ^4.23.0 - version: 4.23.0(@codemirror/autocomplete@6.18.0)(@codemirror/language-data@6.5.1)(@codemirror/language@6.10.2)(@codemirror/legacy-modes@6.4.1)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.17)(@lezer/lr@1.4.2) - '@uiw/react-codemirror': - specifier: ^4.23.0 - version: 4.23.0(@babel/runtime@7.25.6)(@codemirror/autocomplete@6.18.0)(@codemirror/language@6.10.2)(@codemirror/lint@6.8.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.33.0)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1) - ahooks: - specifier: ^3.8.1 - version: 3.8.1(react@18.3.1) - antd: - specifier: ^5.20.3 - version: 5.20.5(react-dom@18.3.1)(react@18.3.1) - axios: - specifier: ^1.7.5 - version: 1.7.7 - classnames: - specifier: ^2.5.1 - version: 2.5.1 - js-cookie: - specifier: ^3.0.5 - version: 3.0.5 - lodash: - specifier: ^4.17.21 - version: 4.17.21 - qs: - specifier: ^6.13.0 - version: 6.13.0 - react: - specifier: ^18.3.1 - version: 18.3.1 - react-copy-to-clipboard: - specifier: ^5.1.0 - version: 5.1.0(react@18.3.1) - react-dom: - specifier: ^18.3.1 - version: 18.3.1(react@18.3.1) - react-intl: - specifier: ^6.6.8 - version: 6.6.8(react@18.3.1)(typescript@5.5.4) - react-markdown: - specifier: ^9.0.1 - version: 9.0.1(@types/react@18.3.5)(react@18.3.1) - react-query: - specifier: ^3.39.3 - version: 3.39.3(react-dom@18.3.1)(react@18.3.1) - react-router-dom: - specifier: ^6.26.1 - version: 6.26.1(react-dom@18.3.1)(react@18.3.1) - react-syntax-highlighter: - specifier: ^15.5.0 - version: 15.5.0(react@18.3.1) - rehype-katex: - specifier: ^7.0.1 - version: 7.0.1 - rehype-raw: - specifier: ^7.0.0 - version: 7.0.0 - remark-gfm: - specifier: ^4.0.0 - version: 4.0.0 - remark-math: - specifier: ^6.0.0 - version: 6.0.0 - zustand: - specifier: ^4.5.5 - version: 4.5.5(@types/react@18.3.5)(react@18.3.1) - -devDependencies: - '@eslint/js': - specifier: ^9.9.0 - version: 9.9.1 - '@types/js-cookie': - specifier: ^3.0.6 - version: 3.0.6 - '@types/node': - specifier: ^22.5.1 - version: 22.5.4 - '@types/react': - specifier: ^18.3.3 - version: 18.3.5 - '@types/react-dom': - specifier: ^18.3.0 - version: 18.3.0 - '@vitejs/plugin-react': - specifier: ^4.3.1 - version: 4.3.1(vite@5.4.3) - autoprefixer: - specifier: ^10.4.20 - version: 10.4.20(postcss@8.4.45) - eslint: - specifier: ^9.9.0 - version: 9.9.1 - eslint-plugin-react-hooks: - specifier: ^5.1.0-rc.0 - version: 5.1.0-rc-fb9a90fa48-20240614(eslint@9.9.1) - eslint-plugin-react-refresh: - specifier: ^0.4.9 - version: 0.4.11(eslint@9.9.1) - globals: - specifier: ^15.9.0 - version: 15.9.0 - postcss: - specifier: ^8.4.41 - version: 8.4.45 - sass-embedded: - specifier: ^1.77.8 - version: 1.78.0 - tailwindcss: - specifier: ^3.4.10 - version: 3.4.10 - ts-prune: - specifier: ^0.10.3 - version: 0.10.3 - typescript: - specifier: ^5.5.3 - version: 5.5.4 - typescript-eslint: - specifier: ^8.0.1 - version: 8.4.0(eslint@9.9.1)(typescript@5.5.4) - vite: - specifier: ^5.4.1 - version: 5.4.3(@types/node@22.5.4)(sass-embedded@1.78.0) - -packages: - - /@alloc/quick-lru@5.2.0: - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - dev: true - - /@ampproject/remapping@2.3.0: - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - dev: true - - /@ant-design/colors@7.1.0: - resolution: {integrity: sha512-MMoDGWn1y9LdQJQSHiCC20x3uZ3CwQnv9QMz6pCmJOrqdgM9YxsoVVY0wtrdXbmfSgnV0KNk6zi09NAhMR2jvg==} - dependencies: - '@ctrl/tinycolor': 3.6.1 - dev: false - - /@ant-design/cssinjs-utils@1.0.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-BrztZZKuoYcJK8uEH40ylBemf/Mu/QPiDos56g2bv6eUoniQkgQHOCOvA3+pncoFO1TaS8xcUCIqGzDA0I+ZVQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@ant-design/cssinjs': 1.21.1(react-dom@18.3.1)(react@18.3.1) - '@babel/runtime': 7.25.6 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@ant-design/cssinjs@1.21.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-tyWnlK+XH7Bumd0byfbCiZNK43HEubMoCcu9VxwsAwiHdHTgWa+tMN0/yvxa+e8EzuFP1WdUNNPclRpVtD33lg==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': 7.25.6 - '@emotion/hash': 0.8.0 - '@emotion/unitless': 0.7.5 - classnames: 2.5.1 - csstype: 3.1.3 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - stylis: 4.3.4 - dev: false - - /@ant-design/fast-color@2.0.6: - resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==} - engines: {node: '>=8.x'} - dependencies: - '@babel/runtime': 7.25.6 - dev: false - - /@ant-design/icons-svg@4.4.2: - resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} - dev: false - - /@ant-design/icons@5.4.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-QZbWC5xQYexCI5q4/fehSEkchJr5UGtvAJweT743qKUQQGs9IH2DehNLP49DJ3Ii9m9CijD2HN6fNy3WKhIFdA==} - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@ant-design/colors': 7.1.0 - '@ant-design/icons-svg': 4.4.2 - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@ant-design/react-slick@1.1.2(react@18.3.1): - resolution: {integrity: sha512-EzlvzE6xQUBrZuuhSAFTdsr4P2bBBHGZwKFemEfq8gIGyIQCxalYfZW/T2ORbtQx5rU69o+WycP3exY/7T1hGA==} - peerDependencies: - react: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - json2mq: 0.2.0 - react: 18.3.1 - resize-observer-polyfill: 1.5.1 - throttle-debounce: 5.0.2 - dev: false - - /@babel/code-frame@7.24.7: - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.1.0 - dev: true - - /@babel/compat-data@7.25.4: - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/core@7.25.2: - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - convert-source-map: 2.0.0 - debug: 4.3.6 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/generator@7.25.6: - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.25.6 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - dev: true - - /@babel/helper-compilation-targets@7.25.2: - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 - browserslist: 4.23.3 - lru-cache: 5.1.1 - semver: 6.3.1 - dev: true - - /@babel/helper-module-imports@7.24.7: - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2): - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-plugin-utils@7.24.8: - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-simple-access@7.24.7: - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/helper-string-parser@7.24.8: - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-identifier@7.24.7: - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-option@7.24.8: - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helpers@7.25.6: - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - dev: true - - /@babel/highlight@7.24.7: - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.0 - dev: true - - /@babel/parser@7.25.6: - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.25.6 - dev: true - - /@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.2): - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - dev: true - - /@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.2): - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - dev: true - - /@babel/runtime@7.25.6: - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.1 - dev: false - - /@babel/template@7.25.0: - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 - dev: true - - /@babel/traverse@7.25.6: - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 - debug: 4.3.6 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - - /@babel/types@7.25.6: - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 - dev: true - - /@bufbuild/protobuf@1.10.0: - resolution: {integrity: sha512-QDdVFLoN93Zjg36NoQPZfsVH9tZew7wKDKyV5qRdj8ntT4wQCOradQjRaTdwMhWUYsgKsvCINKKm87FdEk96Ag==} - dev: true - - /@codemirror/autocomplete@6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1): - resolution: {integrity: sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==} - peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 - dependencies: - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - dev: false - - /@codemirror/commands@6.6.1: - resolution: {integrity: sha512-iBfKbyIoXS1FGdsKcZmnrxmbc8VcbMrSgD7AVrsnX+WyAYjmUDWvE93dt5D874qS4CCVu4O1JpbagHdXbbLiOw==} - dependencies: - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - dev: false - - /@codemirror/lang-angular@0.1.3: - resolution: {integrity: sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==} - dependencies: - '@codemirror/lang-html': 6.4.9 - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.2 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@codemirror/lang-cpp@6.0.2: - resolution: {integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==} - dependencies: - '@codemirror/language': 6.10.2 - '@lezer/cpp': 1.1.2 - dev: false - - /@codemirror/lang-css@6.2.1(@codemirror/view@6.33.0): - resolution: {integrity: sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 - '@lezer/css': 1.1.8 - transitivePeerDependencies: - - '@codemirror/view' - dev: false - - /@codemirror/lang-go@6.0.1(@codemirror/view@6.33.0): - resolution: {integrity: sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 - '@lezer/go': 1.0.0 - transitivePeerDependencies: - - '@codemirror/view' - dev: false - - /@codemirror/lang-html@6.4.9: - resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/lang-css': 6.2.1(@codemirror/view@6.33.0) - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/css': 1.1.8 - '@lezer/html': 1.3.10 - dev: false - - /@codemirror/lang-java@6.0.1: - resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==} - dependencies: - '@codemirror/language': 6.10.2 - '@lezer/java': 1.1.2 - dev: false - - /@codemirror/lang-javascript@6.2.2: - resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 - '@codemirror/lint': 6.8.1 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/javascript': 1.4.17 - dev: false - - /@codemirror/lang-json@6.0.1: - resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} - dependencies: - '@codemirror/language': 6.10.2 - '@lezer/json': 1.0.2 - dev: false - - /@codemirror/lang-less@6.0.2(@codemirror/view@6.33.0): - resolution: {integrity: sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==} - dependencies: - '@codemirror/lang-css': 6.2.1(@codemirror/view@6.33.0) - '@codemirror/language': 6.10.2 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - transitivePeerDependencies: - - '@codemirror/view' - dev: false - - /@codemirror/lang-lezer@6.0.1: - resolution: {integrity: sha512-WHwjI7OqKFBEfkunohweqA5B/jIlxaZso6Nl3weVckz8EafYbPZldQEKSDb4QQ9H9BUkle4PVELP4sftKoA0uQ==} - dependencies: - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 - '@lezer/lezer': 1.1.2 - dev: false - - /@codemirror/lang-liquid@6.2.1: - resolution: {integrity: sha512-J1Mratcm6JLNEiX+U2OlCDTysGuwbHD76XwuL5o5bo9soJtSbz2g6RU3vGHFyS5DC8rgVmFSzi7i6oBftm7tnA==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@codemirror/lang-markdown@6.2.5: - resolution: {integrity: sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/markdown': 1.3.1 - dev: false - - /@codemirror/lang-php@6.0.1: - resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==} - dependencies: - '@codemirror/lang-html': 6.4.9 - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 - '@lezer/php': 1.0.2 - dev: false - - /@codemirror/lang-python@6.1.6(@codemirror/view@6.33.0): - resolution: {integrity: sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 - '@lezer/python': 1.1.14 - transitivePeerDependencies: - - '@codemirror/view' - dev: false - - /@codemirror/lang-rust@6.0.1: - resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==} - dependencies: - '@codemirror/language': 6.10.2 - '@lezer/rust': 1.0.2 - dev: false - - /@codemirror/lang-sass@6.0.2(@codemirror/view@6.33.0): - resolution: {integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==} - dependencies: - '@codemirror/lang-css': 6.2.1(@codemirror/view@6.33.0) - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 - '@lezer/sass': 1.0.6 - transitivePeerDependencies: - - '@codemirror/view' - dev: false - - /@codemirror/lang-sql@6.7.1(@codemirror/view@6.33.0): - resolution: {integrity: sha512-flQa7zemrLKk0TIrOJnpeyH/b29BcVybtsTeZMgAo40O6kGbrnUSCgwI3TF5iJY3O9VXJKKCA+i0CBVvDfr88w==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - transitivePeerDependencies: - - '@codemirror/view' - dev: false - - /@codemirror/lang-vue@0.1.3: - resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==} - dependencies: - '@codemirror/lang-html': 6.4.9 - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.2 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@codemirror/lang-wast@6.0.2: - resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==} - dependencies: - '@codemirror/language': 6.10.2 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@codemirror/lang-xml@6.1.0: - resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/xml': 1.0.5 - dev: false - - /@codemirror/lang-yaml@6.1.1(@codemirror/view@6.33.0): - resolution: {integrity: sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/yaml': 1.0.3 - transitivePeerDependencies: - - '@codemirror/view' - dev: false - - /@codemirror/language-data@6.5.1(@codemirror/view@6.33.0): - resolution: {integrity: sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==} - dependencies: - '@codemirror/lang-angular': 0.1.3 - '@codemirror/lang-cpp': 6.0.2 - '@codemirror/lang-css': 6.2.1(@codemirror/view@6.33.0) - '@codemirror/lang-go': 6.0.1(@codemirror/view@6.33.0) - '@codemirror/lang-html': 6.4.9 - '@codemirror/lang-java': 6.0.1 - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/lang-json': 6.0.1 - '@codemirror/lang-less': 6.0.2(@codemirror/view@6.33.0) - '@codemirror/lang-liquid': 6.2.1 - '@codemirror/lang-markdown': 6.2.5 - '@codemirror/lang-php': 6.0.1 - '@codemirror/lang-python': 6.1.6(@codemirror/view@6.33.0) - '@codemirror/lang-rust': 6.0.1 - '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.33.0) - '@codemirror/lang-sql': 6.7.1(@codemirror/view@6.33.0) - '@codemirror/lang-vue': 0.1.3 - '@codemirror/lang-wast': 6.0.2 - '@codemirror/lang-xml': 6.1.0 - '@codemirror/lang-yaml': 6.1.1(@codemirror/view@6.33.0) - '@codemirror/language': 6.10.2 - '@codemirror/legacy-modes': 6.4.1 - transitivePeerDependencies: - - '@codemirror/view' - dev: false - - /@codemirror/language@6.10.2: - resolution: {integrity: sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==} - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - style-mod: 4.1.2 - dev: false - - /@codemirror/legacy-modes@6.4.1: - resolution: {integrity: sha512-vdg3XY7OAs5uLDx2Iw+cGfnwtd7kM+Et/eMsqAGTfT/JKiVBQZXosTzjEbWAi/FrY6DcQIz8mQjBozFHZEUWQA==} - dependencies: - '@codemirror/language': 6.10.2 - dev: false - - /@codemirror/lint@6.8.1: - resolution: {integrity: sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==} - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - crelt: 1.0.6 - dev: false - - /@codemirror/search@6.5.6: - resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} - dependencies: - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - crelt: 1.0.6 - dev: false - - /@codemirror/state@6.4.1: - resolution: {integrity: sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==} - dev: false - - /@codemirror/theme-one-dark@6.1.2: - resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==} - dependencies: - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/highlight': 1.2.1 - dev: false - - /@codemirror/view@6.33.0: - resolution: {integrity: sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==} - dependencies: - '@codemirror/state': 6.4.1 - style-mod: 4.1.2 - w3c-keyname: 2.2.8 - dev: false - - /@ctrl/tinycolor@3.6.1: - resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} - engines: {node: '>=10'} - dev: false - - /@emotion/hash@0.8.0: - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - dev: false - - /@emotion/unitless@0.7.5: - resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - dev: false - - /@esbuild/aix-ppc64@0.21.5: - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.21.5: - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.21.5: - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.21.5: - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.21.5: - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.21.5: - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.21.5: - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.21.5: - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.21.5: - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.21.5: - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.21.5: - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.21.5: - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.21.5: - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.21.5: - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.21.5: - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.21.5: - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.21.5: - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.21.5: - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.21.5: - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.21.5: - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.21.5: - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.21.5: - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.21.5: - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@9.9.1): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 9.9.1 - eslint-visitor-keys: 3.4.3 - dev: true - - /@eslint-community/regexpp@4.11.0: - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - - /@eslint/config-array@0.18.0: - resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@eslint/object-schema': 2.1.4 - debug: 4.3.6 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@eslint/eslintrc@3.1.0: - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.6 - espree: 10.1.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@eslint/js@9.9.1: - resolution: {integrity: sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - - /@eslint/object-schema@2.1.4: - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - - /@formatjs/ecma402-abstract@2.0.0: - resolution: {integrity: sha512-rRqXOqdFmk7RYvj4khklyqzcfQl9vEL/usogncBHRZfZBDOwMGuSRNFl02fu5KGHXdbinju+YXyuR+Nk8xlr/g==} - dependencies: - '@formatjs/intl-localematcher': 0.5.4 - tslib: 2.7.0 - dev: false - - /@formatjs/fast-memoize@2.2.0: - resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==} - dependencies: - tslib: 2.7.0 - dev: false - - /@formatjs/icu-messageformat-parser@2.7.8: - resolution: {integrity: sha512-nBZJYmhpcSX0WeJ5SDYUkZ42AgR3xiyhNCsQweFx3cz/ULJjym8bHAzWKvG5e2+1XO98dBYC0fWeeAECAVSwLA==} - dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - '@formatjs/icu-skeleton-parser': 1.8.2 - tslib: 2.7.0 - dev: false - - /@formatjs/icu-skeleton-parser@1.8.2: - resolution: {integrity: sha512-k4ERKgw7aKGWJZgTarIcNEmvyTVD9FYh0mTrrBMHZ1b8hUu6iOJ4SzsZlo3UNAvHYa+PnvntIwRPt1/vy4nA9Q==} - dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - tslib: 2.7.0 - dev: false - - /@formatjs/intl-displaynames@6.6.8: - resolution: {integrity: sha512-Lgx6n5KxN16B3Pb05z3NLEBQkGoXnGjkTBNCZI+Cn17YjHJ3fhCeEJJUqRlIZmJdmaXQhjcQVDp6WIiNeRYT5g==} - dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - '@formatjs/intl-localematcher': 0.5.4 - tslib: 2.7.0 - dev: false - - /@formatjs/intl-listformat@7.5.7: - resolution: {integrity: sha512-MG2TSChQJQT9f7Rlv+eXwUFiG24mKSzmF144PLb8m8OixyXqn4+YWU+5wZracZGCgVTVmx8viCf7IH3QXoiB2g==} - dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - '@formatjs/intl-localematcher': 0.5.4 - tslib: 2.7.0 - dev: false - - /@formatjs/intl-localematcher@0.5.4: - resolution: {integrity: sha512-zTwEpWOzZ2CiKcB93BLngUX59hQkuZjT2+SAQEscSm52peDW/getsawMcWF1rGRpMCX6D7nSJA3CzJ8gn13N/g==} - dependencies: - tslib: 2.7.0 - dev: false - - /@formatjs/intl@2.10.4(typescript@5.5.4): - resolution: {integrity: sha512-56483O+HVcL0c7VucAS2tyH020mt9XTozZO67cwtGg0a7KWDukS/FzW3OnvaHmTHDuYsoPIzO+ZHVfU6fT/bJw==} - peerDependencies: - typescript: ^4.7 || 5 - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - '@formatjs/fast-memoize': 2.2.0 - '@formatjs/icu-messageformat-parser': 2.7.8 - '@formatjs/intl-displaynames': 6.6.8 - '@formatjs/intl-listformat': 7.5.7 - intl-messageformat: 10.5.14 - tslib: 2.7.0 - typescript: 5.5.4 - dev: false - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - dev: true - - /@humanwhocodes/retry@0.3.0: - resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} - engines: {node: '>=18.18'} - dev: true - - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true - - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 - dev: true - - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/sourcemap-codec@1.5.0: - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - dev: true - - /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 - dev: true - - /@lezer/common@1.2.1: - resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} - dev: false - - /@lezer/cpp@1.1.2: - resolution: {integrity: sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/css@1.1.8: - resolution: {integrity: sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/go@1.0.0: - resolution: {integrity: sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/highlight@1.2.1: - resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} - dependencies: - '@lezer/common': 1.2.1 - dev: false - - /@lezer/html@1.3.10: - resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/java@1.1.2: - resolution: {integrity: sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/javascript@1.4.17: - resolution: {integrity: sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/json@1.0.2: - resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/lezer@1.1.2: - resolution: {integrity: sha512-O8yw3CxPhzYHB1hvwbdozjnAslhhR8A5BH7vfEMof0xk3p+/DFDfZkA9Tde6J+88WgtwaHy4Sy6ThZSkaI0Evw==} - dependencies: - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/lr@1.4.2: - resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} - dependencies: - '@lezer/common': 1.2.1 - dev: false - - /@lezer/markdown@1.3.1: - resolution: {integrity: sha512-DGlzU/i8DC8k0uz1F+jeePrkATl0jWakauTzftMQOcbaMkHbNSRki/4E2tOzJWsVpoKYhe7iTJ03aepdwVUXUA==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - dev: false - - /@lezer/php@1.0.2: - resolution: {integrity: sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/python@1.1.14: - resolution: {integrity: sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/rust@1.0.2: - resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/sass@1.0.6: - resolution: {integrity: sha512-w/RCO2dIzZH1To8p+xjs8cE+yfgGus8NZ/dXeWl/QzHyr+TeBs71qiE70KPImEwvTsmEjoWh0A5SxMzKd5BWBQ==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/xml@1.0.5: - resolution: {integrity: sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@lezer/yaml@1.0.3: - resolution: {integrity: sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==} - dependencies: - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@nextjournal/lang-clojure@1.0.0: - resolution: {integrity: sha512-gOCV71XrYD0DhwGoPMWZmZ0r92/lIHsqQu9QWdpZYYBwiChNwMO4sbVMP7eTuAqffFB2BTtCSC+1skSH9d3bNg==} - dependencies: - '@codemirror/language': 6.10.2 - '@nextjournal/lezer-clojure': 1.0.0 - dev: false - - /@nextjournal/lezer-clojure@1.0.0: - resolution: {integrity: sha512-VZyuGu4zw5mkTOwQBTaGVNWmsOZAPw5ZRxu1/Knk/Xfs7EDBIogwIs5UXTYkuECX5ZQB8eOB+wKA2pc7VyqaZQ==} - dependencies: - '@lezer/lr': 1.4.2 - dev: false - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - dev: true - - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true - dev: true - optional: true - - /@rc-component/async-validator@5.0.4: - resolution: {integrity: sha512-qgGdcVIF604M9EqjNF0hbUTz42bz/RDtxWdWuU5EQe3hi7M8ob54B6B35rOsvX5eSvIHIzT9iH1R3n+hk3CGfg==} - engines: {node: '>=14.x'} - dependencies: - '@babel/runtime': 7.25.6 - dev: false - - /@rc-component/color-picker@2.0.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-WcZYwAThV/b2GISQ8F+7650r5ZZJ043E57aVBFkQ+kSY4C6wdofXgB0hBx+GPGpIU0Z81eETNoDUJMr7oy/P8Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@ant-design/fast-color': 2.0.6 - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@rc-component/context@1.4.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@rc-component/mini-decimal@1.1.0: - resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} - engines: {node: '>=8.x'} - dependencies: - '@babel/runtime': 7.25.6 - dev: false - - /@rc-component/mutate-observer@1.1.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@rc-component/portal@1.1.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@rc-component/qrcode@1.0.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-L+rZ4HXP2sJ1gHMGHjsg9jlYBX/SLN2D6OxP9Zn3qgtpMWtO2vUfxVFwiogHpAIqs54FnALxraUy/BCO1yRIgg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@rc-component/tour@1.15.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-Tr2t7J1DKZUpfJuDZWHxyxWpfmj8EZrqSgyMZ+BCdvKZ6r1UDsfU46M/iWAAFBy961Ssfom2kv5f3UcjIL2CmQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/portal': 1.1.2(react-dom@18.3.1)(react@18.3.1) - '@rc-component/trigger': 2.2.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@rc-component/trigger@2.2.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-xDyi0fJ3IV6XJEReMOewS9PEnnuLHKz4rjbgIniDsJFHjL5nROuUlu64mfo90jglLDkQUxRwK7aTtumA65/zYQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/portal': 1.1.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-resize-observer: 1.4.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /@remix-run/router@1.19.1: - resolution: {integrity: sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==} - engines: {node: '>=14.0.0'} - dev: false - - /@replit/codemirror-lang-csharp@6.2.0(@codemirror/autocomplete@6.18.0)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2): - resolution: {integrity: sha512-6utbaWkoymhoAXj051mkRp+VIJlpwUgCX9Toevz3YatiZsz512fw3OVCedXQx+WcR0wb6zVHjChnuxqfCLtFVQ==} - peerDependencies: - '@codemirror/autocomplete': ^6.0.0 - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 - '@lezer/highlight': ^1.0.0 - '@lezer/lr': ^1.0.0 - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@replit/codemirror-lang-nix@6.0.1(@codemirror/autocomplete@6.18.0)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2): - resolution: {integrity: sha512-lvzjoYn9nfJzBD5qdm3Ut6G3+Or2wEacYIDJ49h9+19WSChVnxv4ojf+rNmQ78ncuxIt/bfbMvDLMeMP0xze6g==} - peerDependencies: - '@codemirror/autocomplete': ^6.0.0 - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 - '@lezer/highlight': ^1.0.0 - '@lezer/lr': ^1.0.0 - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /@replit/codemirror-lang-solidity@6.0.2(@codemirror/language@6.10.2): - resolution: {integrity: sha512-/dpTVH338KFV6SaDYYSadkB4bI/0B0QRF/bkt1XS3t3QtyR49mn6+2k0OUQhvt2ZSO7kt10J+OPilRAtgbmX0w==} - peerDependencies: - '@codemirror/language': ^6.0.0 - dependencies: - '@codemirror/language': 6.10.2 - '@lezer/highlight': 1.2.1 - dev: false - - /@replit/codemirror-lang-svelte@6.0.0(@codemirror/autocomplete@6.18.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.17)(@lezer/lr@1.4.2): - resolution: {integrity: sha512-U2OqqgMM6jKelL0GNWbAmqlu1S078zZNoBqlJBW+retTc5M4Mha6/Y2cf4SVg6ddgloJvmcSpt4hHrVoM4ePRA==} - peerDependencies: - '@codemirror/autocomplete': ^6.0.0 - '@codemirror/lang-css': ^6.0.1 - '@codemirror/lang-html': ^6.2.0 - '@codemirror/lang-javascript': ^6.1.1 - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 - '@lezer/highlight': ^1.0.0 - '@lezer/javascript': ^1.2.0 - '@lezer/lr': ^1.0.0 - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/lang-css': 6.2.1(@codemirror/view@6.33.0) - '@codemirror/lang-html': 6.4.9 - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/language': 6.10.2 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - '@lezer/common': 1.2.1 - '@lezer/highlight': 1.2.1 - '@lezer/javascript': 1.4.17 - '@lezer/lr': 1.4.2 - dev: false - - /@rollup/rollup-android-arm-eabi@4.21.2: - resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-android-arm64@4.21.2: - resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-arm64@4.21.2: - resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-x64@4.21.2: - resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm-gnueabihf@4.21.2: - resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm-musleabihf@4.21.2: - resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-gnu@4.21.2: - resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-musl@4.21.2: - resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-powerpc64le-gnu@4.21.2: - resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-riscv64-gnu@4.21.2: - resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-s390x-gnu@4.21.2: - resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-gnu@4.21.2: - resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-musl@4.21.2: - resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.21.2: - resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-ia32-msvc@4.21.2: - resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-x64-msvc@4.21.2: - resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@tanstack/query-core@5.56.2: - resolution: {integrity: sha512-gor0RI3/R5rVV3gXfddh1MM+hgl0Z4G7tj6Xxpq6p2I03NGPaJ8dITY9Gz05zYYb/EJq9vPas/T4wn9EaDPd4Q==} - dev: false - - /@tanstack/react-query@5.56.2(react@18.3.1): - resolution: {integrity: sha512-SR0GzHVo6yzhN72pnRhkEFRAHMsUo5ZPzAxfTMvUxFIDVS6W9LYUp6nXW3fcHVdg0ZJl8opSH85jqahvm6DSVg==} - peerDependencies: - react: ^18 || ^19 - dependencies: - '@tanstack/query-core': 5.56.2 - react: 18.3.1 - dev: false - - /@ts-morph/common@0.12.3: - resolution: {integrity: sha512-4tUmeLyXJnJWvTFOKtcNJ1yh0a3SsTLi2MUoyj8iUNznFRN1ZquaNe7Oukqrnki2FzZkm0J9adCNLDZxUzvj+w==} - dependencies: - fast-glob: 3.3.2 - minimatch: 3.1.2 - mkdirp: 1.0.4 - path-browserify: 1.0.1 - dev: true - - /@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 - dev: true - - /@types/babel__generator@7.6.8: - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - dependencies: - '@babel/types': 7.25.6 - dev: true - - /@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 - dev: true - - /@types/babel__traverse@7.20.6: - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - dependencies: - '@babel/types': 7.25.6 - dev: true - - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - dependencies: - '@types/ms': 0.7.34 - dev: false - - /@types/estree-jsx@1.0.5: - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} - dependencies: - '@types/estree': 1.0.5 - dev: false - - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - - /@types/hast@2.3.10: - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} - dependencies: - '@types/unist': 2.0.11 - dev: false - - /@types/hast@3.0.4: - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - dependencies: - '@types/unist': 3.0.3 - dev: false - - /@types/hoist-non-react-statics@3.3.5: - resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==} - dependencies: - '@types/react': 18.3.5 - hoist-non-react-statics: 3.3.2 - dev: false - - /@types/js-cookie@3.0.6: - resolution: {integrity: sha512-wkw9yd1kEXOPnvEeEV1Go1MmxtBJL0RR79aOTAApecWFVu7w0NNXNqhcWgvw2YgZDYadliXkl14pa3WXw5jlCQ==} - dev: true - - /@types/katex@0.16.7: - resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} - dev: false - - /@types/lodash@4.17.7: - resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} - dev: false - - /@types/mdast@4.0.4: - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - dependencies: - '@types/unist': 3.0.3 - dev: false - - /@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - dev: false - - /@types/node@22.5.4: - resolution: {integrity: sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==} - dependencies: - undici-types: 6.19.8 - dev: true - - /@types/parse-json@4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - dev: true - - /@types/prop-types@15.7.12: - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - - /@types/qs@6.9.15: - resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==} - dev: false - - /@types/react-copy-to-clipboard@5.0.7: - resolution: {integrity: sha512-Gft19D+as4M+9Whq1oglhmK49vqPhcLzk8WfvfLvaYMIPYanyfLy0+CwFucMJfdKoSFyySPmkkWn8/E6voQXjQ==} - dependencies: - '@types/react': 18.3.5 - dev: false - - /@types/react-dom@18.3.0: - resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - dependencies: - '@types/react': 18.3.5 - dev: true - - /@types/react-syntax-highlighter@15.5.13: - resolution: {integrity: sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==} - dependencies: - '@types/react': 18.3.5 - dev: false - - /@types/react@18.3.5: - resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==} - dependencies: - '@types/prop-types': 15.7.12 - csstype: 3.1.3 - - /@types/unist@2.0.11: - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - dev: false - - /@types/unist@3.0.3: - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - dev: false - - /@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0)(eslint@9.9.1)(typescript@5.5.4): - resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.4.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/type-utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.4.0 - eslint: 9.9.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.4) - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@8.4.0(eslint@9.9.1)(typescript@5.5.4): - resolution: {integrity: sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.4.0 - debug: 4.3.6 - eslint: 9.9.1 - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager@8.4.0: - resolution: {integrity: sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/visitor-keys': 8.4.0 - dev: true - - /@typescript-eslint/type-utils@8.4.0(eslint@9.9.1)(typescript@5.5.4): - resolution: {integrity: sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) - debug: 4.3.6 - ts-api-utils: 1.3.0(typescript@5.5.4) - typescript: 5.5.4 - transitivePeerDependencies: - - eslint - - supports-color - dev: true - - /@typescript-eslint/types@8.4.0: - resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - - /@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.4): - resolution: {integrity: sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/visitor-keys': 8.4.0 - debug: 4.3.6 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.5.4) - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils@8.4.0(eslint@9.9.1)(typescript@5.5.4): - resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) - '@typescript-eslint/scope-manager': 8.4.0 - '@typescript-eslint/types': 8.4.0 - '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) - eslint: 9.9.1 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys@8.4.0: - resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@typescript-eslint/types': 8.4.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@uiw/codemirror-extensions-basic-setup@4.23.0(@codemirror/autocomplete@6.18.0)(@codemirror/commands@6.6.1)(@codemirror/language@6.10.2)(@codemirror/lint@6.8.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0): - resolution: {integrity: sha512-+k5nkRpUWGaHr1JWT8jcKsVewlXw5qBgSopm9LW8fZ6KnSNZBycz8kHxh0+WSvckmXEESGptkIsb7dlkmJT/hQ==} - peerDependencies: - '@codemirror/autocomplete': '>=6.0.0' - '@codemirror/commands': '>=6.0.0' - '@codemirror/language': '>=6.0.0' - '@codemirror/lint': '>=6.0.0' - '@codemirror/search': '>=6.0.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/view': '>=6.0.0' - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/commands': 6.6.1 - '@codemirror/language': 6.10.2 - '@codemirror/lint': 6.8.1 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - dev: false - - /@uiw/codemirror-extensions-langs@4.23.0(@codemirror/autocomplete@6.18.0)(@codemirror/language-data@6.5.1)(@codemirror/language@6.10.2)(@codemirror/legacy-modes@6.4.1)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.17)(@lezer/lr@1.4.2): - resolution: {integrity: sha512-WUJnTgS3CIV5TZPjwYO+mvRqxfvSSSKC2a+Wm5Uk3uFoZZ7O/GKi4bKKLsIHQkCwNnd9CHJzwN2dpIVrK1AmLA==} - peerDependencies: - '@codemirror/language-data': '>=6.0.0' - '@codemirror/legacy-modes': '>=6.0.0' - dependencies: - '@codemirror/lang-angular': 0.1.3 - '@codemirror/lang-cpp': 6.0.2 - '@codemirror/lang-css': 6.2.1(@codemirror/view@6.33.0) - '@codemirror/lang-html': 6.4.9 - '@codemirror/lang-java': 6.0.1 - '@codemirror/lang-javascript': 6.2.2 - '@codemirror/lang-json': 6.0.1 - '@codemirror/lang-less': 6.0.2(@codemirror/view@6.33.0) - '@codemirror/lang-lezer': 6.0.1 - '@codemirror/lang-liquid': 6.2.1 - '@codemirror/lang-markdown': 6.2.5 - '@codemirror/lang-php': 6.0.1 - '@codemirror/lang-python': 6.1.6(@codemirror/view@6.33.0) - '@codemirror/lang-rust': 6.0.1 - '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.33.0) - '@codemirror/lang-sql': 6.7.1(@codemirror/view@6.33.0) - '@codemirror/lang-vue': 0.1.3 - '@codemirror/lang-wast': 6.0.2 - '@codemirror/lang-xml': 6.1.0 - '@codemirror/language-data': 6.5.1(@codemirror/view@6.33.0) - '@codemirror/legacy-modes': 6.4.1 - '@nextjournal/lang-clojure': 1.0.0 - '@replit/codemirror-lang-csharp': 6.2.0(@codemirror/autocomplete@6.18.0)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) - '@replit/codemirror-lang-nix': 6.0.1(@codemirror/autocomplete@6.18.0)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/lr@1.4.2) - '@replit/codemirror-lang-solidity': 6.0.2(@codemirror/language@6.10.2) - '@replit/codemirror-lang-svelte': 6.0.0(@codemirror/autocomplete@6.18.0)(@codemirror/lang-css@6.2.1)(@codemirror/lang-html@6.4.9)(@codemirror/lang-javascript@6.2.2)(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1)(@lezer/highlight@1.2.1)(@lezer/javascript@1.4.17)(@lezer/lr@1.4.2) - codemirror-lang-mermaid: 0.5.0 - transitivePeerDependencies: - - '@codemirror/autocomplete' - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - - '@lezer/common' - - '@lezer/highlight' - - '@lezer/javascript' - - '@lezer/lr' - dev: false - - /@uiw/react-codemirror@4.23.0(@babel/runtime@7.25.6)(@codemirror/autocomplete@6.18.0)(@codemirror/language@6.10.2)(@codemirror/lint@6.8.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.33.0)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-MnqTXfgeLA3fsUUQjqjJgemEuNyoGALgsExVm0NQAllAAi1wfj+IoKFeK+h3XXMlTFRCFYOUh4AHDv0YXJLsOg==} - peerDependencies: - '@babel/runtime': '>=7.11.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/theme-one-dark': '>=6.0.0' - '@codemirror/view': '>=6.0.0' - codemirror: '>=6.0.0' - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@babel/runtime': 7.25.6 - '@codemirror/commands': 6.6.1 - '@codemirror/state': 6.4.1 - '@codemirror/theme-one-dark': 6.1.2 - '@codemirror/view': 6.33.0 - '@uiw/codemirror-extensions-basic-setup': 4.23.0(@codemirror/autocomplete@6.18.0)(@codemirror/commands@6.6.1)(@codemirror/language@6.10.2)(@codemirror/lint@6.8.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0) - codemirror: 6.0.1(@lezer/common@1.2.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@codemirror/autocomplete' - - '@codemirror/language' - - '@codemirror/lint' - - '@codemirror/search' - dev: false - - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: false - - /@vitejs/plugin-react@4.3.1(vite@5.4.3): - resolution: {integrity: sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 - dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.4.3(@types/node@22.5.4)(sass-embedded@1.78.0) - transitivePeerDependencies: - - supports-color - dev: true - - /acorn-jsx@5.3.2(acorn@8.12.1): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.12.1 - dev: true - - /acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /ahooks@3.8.1(react@18.3.1): - resolution: {integrity: sha512-JoP9+/RWO7MnI/uSKdvQ8WB10Y3oo1PjLv+4Sv4Vpm19Z86VUMdXh+RhWvMGxZZs06sq2p0xVtFk8Oh5ZObsoA==} - engines: {node: '>=8.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': 7.25.6 - dayjs: 1.11.13 - intersection-observer: 0.12.2 - js-cookie: 3.0.5 - lodash: 4.17.21 - react: 18.3.1 - react-fast-compare: 3.2.2 - resize-observer-polyfill: 1.5.1 - screenfull: 5.2.0 - tslib: 2.7.0 - dev: false - - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true - - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true - - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true - - /antd@5.20.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-w/oVwoZAt5qP0PKhOkCmYXe06kXuoTh7UdQlltba/IzpbCCEh465z3Qw3i9HZY745HtOIS6ze707mVsORzN18g==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@ant-design/colors': 7.1.0 - '@ant-design/cssinjs': 1.21.1(react-dom@18.3.1)(react@18.3.1) - '@ant-design/cssinjs-utils': 1.0.3(react-dom@18.3.1)(react@18.3.1) - '@ant-design/icons': 5.4.0(react-dom@18.3.1)(react@18.3.1) - '@ant-design/react-slick': 1.1.2(react@18.3.1) - '@babel/runtime': 7.25.6 - '@ctrl/tinycolor': 3.6.1 - '@rc-component/color-picker': 2.0.1(react-dom@18.3.1)(react@18.3.1) - '@rc-component/mutate-observer': 1.1.0(react-dom@18.3.1)(react@18.3.1) - '@rc-component/qrcode': 1.0.0(react-dom@18.3.1)(react@18.3.1) - '@rc-component/tour': 1.15.1(react-dom@18.3.1)(react@18.3.1) - '@rc-component/trigger': 2.2.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - copy-to-clipboard: 3.3.3 - dayjs: 1.11.13 - rc-cascader: 3.28.1(react-dom@18.3.1)(react@18.3.1) - rc-checkbox: 3.3.0(react-dom@18.3.1)(react@18.3.1) - rc-collapse: 3.7.3(react-dom@18.3.1)(react@18.3.1) - rc-dialog: 9.5.2(react-dom@18.3.1)(react@18.3.1) - rc-drawer: 7.2.0(react-dom@18.3.1)(react@18.3.1) - rc-dropdown: 4.2.0(react-dom@18.3.1)(react@18.3.1) - rc-field-form: 2.4.0(react-dom@18.3.1)(react@18.3.1) - rc-image: 7.9.0(react-dom@18.3.1)(react@18.3.1) - rc-input: 1.6.3(react-dom@18.3.1)(react@18.3.1) - rc-input-number: 9.2.0(react-dom@18.3.1)(react@18.3.1) - rc-mentions: 2.15.0(react-dom@18.3.1)(react@18.3.1) - rc-menu: 9.14.1(react-dom@18.3.1)(react@18.3.1) - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-notification: 5.6.0(react-dom@18.3.1)(react@18.3.1) - rc-pagination: 4.2.0(react-dom@18.3.1)(react@18.3.1) - rc-picker: 4.6.14(dayjs@1.11.13)(react-dom@18.3.1)(react@18.3.1) - rc-progress: 4.0.0(react-dom@18.3.1)(react@18.3.1) - rc-rate: 2.13.0(react-dom@18.3.1)(react@18.3.1) - rc-resize-observer: 1.4.0(react-dom@18.3.1)(react@18.3.1) - rc-segmented: 2.3.0(react-dom@18.3.1)(react@18.3.1) - rc-select: 14.15.2(react-dom@18.3.1)(react@18.3.1) - rc-slider: 11.1.5(react-dom@18.3.1)(react@18.3.1) - rc-steps: 6.0.1(react-dom@18.3.1)(react@18.3.1) - rc-switch: 4.1.0(react-dom@18.3.1)(react@18.3.1) - rc-table: 7.45.7(react-dom@18.3.1)(react@18.3.1) - rc-tabs: 15.1.1(react-dom@18.3.1)(react@18.3.1) - rc-textarea: 1.8.1(react-dom@18.3.1)(react@18.3.1) - rc-tooltip: 6.2.0(react-dom@18.3.1)(react@18.3.1) - rc-tree: 5.9.0(react-dom@18.3.1)(react@18.3.1) - rc-tree-select: 5.23.0(react-dom@18.3.1)(react@18.3.1) - rc-upload: 4.7.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - scroll-into-view-if-needed: 3.1.0 - throttle-debounce: 5.0.2 - transitivePeerDependencies: - - date-fns - - luxon - - moment - dev: false - - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: true - - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true - - /array-tree-filter@2.1.0: - resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} - dev: false - - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false - - /autoprefixer@10.4.20(postcss@8.4.45): - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.23.3 - caniuse-lite: 1.0.30001655 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.1.0 - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - dev: true - - /axios@1.7.7: - resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} - dependencies: - follow-redirects: 1.15.8 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - dev: false - - /bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - dev: false - - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - /big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} - dev: false - - /binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - dev: true - - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - - /braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.1.1 - dev: true - - /broadcast-channel@3.7.0: - resolution: {integrity: sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==} - dependencies: - '@babel/runtime': 7.25.6 - detect-node: 2.1.0 - js-sha3: 0.8.0 - microseconds: 0.2.0 - nano-time: 1.0.0 - oblivious-set: 1.0.0 - rimraf: 3.0.2 - unload: 2.2.0 - dev: false - - /browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001655 - electron-to-chromium: 1.5.14 - node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.3) - dev: true - - /buffer-builder@0.2.0: - resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} - dev: true - - /call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - dev: false - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: true - - /caniuse-lite@1.0.30001655: - resolution: {integrity: sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==} - dev: true - - /ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - dev: false - - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - dev: false - - /character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - dev: false - - /character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - dev: false - - /character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - dev: false - - /character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - dev: false - - /character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - dev: false - - /character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - dev: false - - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} - dev: false - - /code-block-writer@11.0.3: - resolution: {integrity: sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==} - dev: true - - /codemirror-lang-mermaid@0.5.0: - resolution: {integrity: sha512-Taw/2gPCyNArQJCxIP/HSUif+3zrvD+6Ugt7KJZ2dUKou/8r3ZhcfG8krNTZfV2iu8AuGnymKuo7bLPFyqsh/A==} - dependencies: - '@codemirror/language': 6.10.2 - '@lezer/highlight': 1.2.1 - '@lezer/lr': 1.4.2 - dev: false - - /codemirror@6.0.1(@lezer/common@1.2.1): - resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} - dependencies: - '@codemirror/autocomplete': 6.18.0(@codemirror/language@6.10.2)(@codemirror/state@6.4.1)(@codemirror/view@6.33.0)(@lezer/common@1.2.1) - '@codemirror/commands': 6.6.1 - '@codemirror/language': 6.10.2 - '@codemirror/lint': 6.8.1 - '@codemirror/search': 6.5.6 - '@codemirror/state': 6.4.1 - '@codemirror/view': 6.33.0 - transitivePeerDependencies: - - '@lezer/common' - dev: false - - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: false - - /comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - dev: false - - /comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - dev: false - - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true - - /commander@6.2.1: - resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} - engines: {node: '>= 6'} - dev: true - - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - dev: false - - /compute-scroll-into-view@3.1.0: - resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} - dev: false - - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - dev: true - - /copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - dependencies: - toggle-selection: 1.0.6 - dev: false - - /cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.0 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - dev: true - - /crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} - dev: false - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - /dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} - dev: false - - /debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - dependencies: - character-entities: 2.0.2 - dev: false - - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - dev: false - - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: false - - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: false - - /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - dev: false - - /devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - dependencies: - dequal: 2.0.3 - dev: false - - /didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true - - /dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: true - - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true - - /electron-to-chromium@1.5.14: - resolution: {integrity: sha512-bEfPECb3fJ15eaDnu9LEJ2vPGD6W1vt7vZleSVyFhYuMIKm3vz/g9lt7IvEzgdwj58RjbPKUF2rXTCN/UW47tQ==} - dev: true - - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: false - - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 - dev: false - - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - dev: false - - /esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - dev: true - - /escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} - dev: true - - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: true - - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: false - - /eslint-plugin-react-hooks@5.1.0-rc-fb9a90fa48-20240614(eslint@9.9.1): - resolution: {integrity: sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - dependencies: - eslint: 9.9.1 - dev: true - - /eslint-plugin-react-refresh@0.4.11(eslint@9.9.1): - resolution: {integrity: sha512-wrAKxMbVr8qhXTtIKfXqAn5SAtRZt0aXxe5P23Fh4pUAdC6XEsybGLB8P0PI4j1yYqOgUEUlzKAGDfo7rJOjcw==} - peerDependencies: - eslint: '>=7' - dependencies: - eslint: 9.9.1 - dev: true - - /eslint-scope@8.0.2: - resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - - /eslint@9.9.1: - resolution: {integrity: sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1) - '@eslint-community/regexpp': 4.11.0 - '@eslint/config-array': 0.18.0 - '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.9.1 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.3.0 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.6 - escape-string-regexp: 4.0.0 - eslint-scope: 8.0.2 - eslint-visitor-keys: 4.0.0 - espree: 10.1.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) - eslint-visitor-keys: 4.0.0 - dev: true - - /esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: true - - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - dev: false - - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true - - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false - - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true - - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - dev: true - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true - - /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - dependencies: - reusify: 1.0.4 - dev: true - - /fault@1.0.4: - resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==} - dependencies: - format: 0.2.2 - dev: false - - /file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - dependencies: - flat-cache: 4.0.1 - dev: true - - /fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: true - - /flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - dev: true - - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - dev: true - - /follow-redirects@1.15.8: - resolution: {integrity: sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false - - /foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - dev: true - - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - dev: false - - /fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - dev: true - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: false - - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: true - - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - dev: false - - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - dependencies: - foreground-child: 3.3.0 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.0 - path-scurry: 1.11.1 - dev: true - - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - deprecated: Glob versions prior to v9 are no longer supported - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: false - - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: true - - /globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - dev: true - - /globals@15.9.0: - resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} - engines: {node: '>=18'} - dev: true - - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.4 - dev: false - - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: true - - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - dev: true - - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - dependencies: - es-define-property: 1.0.0 - dev: false - - /has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - dev: false - - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: false - - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - - /hast-util-from-dom@5.0.0: - resolution: {integrity: sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg==} - dependencies: - '@types/hast': 3.0.4 - hastscript: 8.0.0 - web-namespaces: 2.0.1 - dev: false - - /hast-util-from-html-isomorphic@2.0.0: - resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} - dependencies: - '@types/hast': 3.0.4 - hast-util-from-dom: 5.0.0 - hast-util-from-html: 2.0.2 - unist-util-remove-position: 5.0.0 - dev: false - - /hast-util-from-html@2.0.2: - resolution: {integrity: sha512-HwOHwxdt2zC5KQ/CNoybBntRook2zJvfZE/u5/Ap7aLPe22bDqen7KwGkOqOyzL5zIqKwiYX/OTtE0FWgr6XXA==} - dependencies: - '@types/hast': 3.0.4 - devlop: 1.1.0 - hast-util-from-parse5: 8.0.1 - parse5: 7.1.2 - vfile: 6.0.3 - vfile-message: 4.0.2 - dev: false - - /hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - devlop: 1.1.0 - hastscript: 8.0.0 - property-information: 6.5.0 - vfile: 6.0.3 - vfile-location: 5.0.3 - web-namespaces: 2.0.1 - dev: false - - /hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - dependencies: - '@types/hast': 3.0.4 - dev: false - - /hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - dev: false - - /hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - dependencies: - '@types/hast': 3.0.4 - dev: false - - /hast-util-raw@9.0.4: - resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - '@ungap/structured-clone': 1.2.0 - hast-util-from-parse5: 8.0.1 - hast-util-to-parse5: 8.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 - parse5: 7.1.2 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - dev: false - - /hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} - dependencies: - '@types/estree': 1.0.5 - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.1.3 - mdast-util-mdxjs-esm: 2.0.1 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - style-to-object: 1.0.7 - unist-util-position: 5.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - dev: false - - /hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} - dependencies: - '@types/hast': 3.0.4 - '@types/unist': 3.0.3 - hast-util-is-element: 3.0.0 - unist-util-find-after: 5.0.0 - dev: false - - /hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - dependencies: - '@types/hast': 3.0.4 - dev: false - - /hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} - dependencies: - '@types/hast': 2.3.10 - comma-separated-tokens: 1.0.8 - hast-util-parse-selector: 2.2.5 - property-information: 5.6.0 - space-separated-tokens: 1.1.5 - dev: false - - /hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} - dependencies: - '@types/hast': 3.0.4 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 4.0.0 - property-information: 6.5.0 - space-separated-tokens: 2.0.2 - dev: false - - /highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} - dev: false - - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - dependencies: - react-is: 16.13.1 - dev: false - - /html-url-attributes@3.0.0: - resolution: {integrity: sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==} - dev: false - - /html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - dev: false - - /ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - dev: true - - /immutable@4.3.7: - resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} - dev: true - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: true - - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: false - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: false - - /inline-style-parser@0.2.3: - resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} - dev: false - - /intersection-observer@0.12.2: - resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} - dev: false - - /intl-messageformat@10.5.14: - resolution: {integrity: sha512-IjC6sI0X7YRjjyVH9aUgdftcmZK7WXdHeil4KwbjDnRWjnVitKpAx3rr6t6di1joFp5188VqKcobOPA6mCLG/w==} - dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - '@formatjs/fast-memoize': 2.2.0 - '@formatjs/icu-messageformat-parser': 2.7.8 - tslib: 2.7.0 - dev: false - - /is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - dev: false - - /is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - dev: false - - /is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} - dependencies: - is-alphabetical: 1.0.4 - is-decimal: 1.0.4 - dev: false - - /is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - dev: false - - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true - - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.3.0 - dev: true - - /is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} - engines: {node: '>= 0.4'} - dependencies: - hasown: 2.0.2 - dev: true - - /is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - dev: false - - /is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - dev: false - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - dev: false - - /is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - dev: false - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true - - /is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - dev: false - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - - /jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - - /jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} - hasBin: true - dev: true - - /js-cookie@3.0.5: - resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} - engines: {node: '>=14'} - dev: false - - /js-sha3@0.8.0: - resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} - dev: false - - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true - - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true - - /json2mq@0.2.0: - resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} - dependencies: - string-convert: 0.2.1 - dev: false - - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: true - - /katex@0.16.11: - resolution: {integrity: sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==} - hasBin: true - dependencies: - commander: 8.3.0 - dev: false - - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - dev: true - - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - dev: true - - /lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} - engines: {node: '>=14'} - dev: true - - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: true - - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - /longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - dev: false - - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: false - - /lowlight@1.20.0: - resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==} - dependencies: - fault: 1.0.4 - highlight.js: 10.7.3 - dev: false - - /lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - dev: true - - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - dev: true - - /markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - dev: false - - /match-sorter@6.3.4: - resolution: {integrity: sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==} - dependencies: - '@babel/runtime': 7.25.6 - remove-accents: 0.5.0 - dev: false - - /mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} - dependencies: - '@types/mdast': 4.0.4 - escape-string-regexp: 5.0.0 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - dev: false - - /mdast-util-from-markdown@2.0.1: - resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-decode-string: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - dependencies: - '@types/mdast': 4.0.4 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.1 - micromark-util-character: 2.1.0 - dev: false - - /mdast-util-gfm-footnote@2.0.0: - resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - micromark-util-normalize-identifier: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - markdown-table: 3.0.3 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - dependencies: - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-gfm@3.0.0: - resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - dependencies: - mdast-util-from-markdown: 2.0.1 - mdast-util-gfm-autolink-literal: 2.0.1 - mdast-util-gfm-footnote: 2.0.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-math@3.0.0: - resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - longest-streak: 3.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - unist-util-remove-position: 5.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-mdx-jsx@3.1.3: - resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - parse-entities: 4.0.1 - stringify-entities: 4.0.4 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - dependencies: - '@types/estree-jsx': 1.0.5 - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - dependencies: - '@types/mdast': 4.0.4 - unist-util-is: 6.0.0 - dev: false - - /mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.0 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - dev: false - - /mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.1.0 - mdast-util-to-string: 4.0.0 - micromark-util-decode-string: 2.0.0 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 - dev: false - - /mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - dependencies: - '@types/mdast': 4.0.4 - dev: false - - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /micromark-core-commonmark@2.0.1: - resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} - dependencies: - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - micromark-factory-destination: 2.0.0 - micromark-factory-label: 2.0.0 - micromark-factory-space: 2.0.0 - micromark-factory-title: 2.0.0 - micromark-factory-whitespace: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-html-tag-name: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-subtokenize: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - dependencies: - micromark-util-character: 2.1.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - dependencies: - devlop: 1.1.0 - micromark-core-commonmark: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-extension-gfm-table@2.1.0: - resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - dependencies: - micromark-util-types: 2.0.0 - dev: false - - /micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - dependencies: - micromark-extension-gfm-autolink-literal: 2.1.0 - micromark-extension-gfm-footnote: 2.1.0 - micromark-extension-gfm-strikethrough: 2.1.0 - micromark-extension-gfm-table: 2.1.0 - micromark-extension-gfm-tagfilter: 2.0.0 - micromark-extension-gfm-task-list-item: 2.1.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-extension-math@3.1.0: - resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} - dependencies: - '@types/katex': 0.16.7 - devlop: 1.1.0 - katex: 0.16.11 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - dependencies: - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - dependencies: - micromark-util-character: 2.1.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} - dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - dependencies: - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - dependencies: - micromark-util-symbol: 2.0.0 - dev: false - - /micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - dependencies: - micromark-util-character: 2.1.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - dependencies: - micromark-util-chunked: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - dependencies: - micromark-util-symbol: 2.0.0 - dev: false - - /micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 2.1.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-symbol: 2.0.0 - dev: false - - /micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - dev: false - - /micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} - dev: false - - /micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - dependencies: - micromark-util-symbol: 2.0.0 - dev: false - - /micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - dependencies: - micromark-util-types: 2.0.0 - dev: false - - /micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - dependencies: - micromark-util-character: 2.1.0 - micromark-util-encode: 2.0.0 - micromark-util-symbol: 2.0.0 - dev: false - - /micromark-util-subtokenize@2.0.1: - resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - - /micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - dev: false - - /micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - dev: false - - /micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - dependencies: - '@types/debug': 4.1.12 - debug: 4.3.6 - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-encode: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-subtokenize: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - /micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - dev: true - - /microseconds@0.2.0: - resolution: {integrity: sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==} - dev: false - - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: false - - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: false - - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - - /minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true - - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: true - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true - - /nano-time@1.0.0: - resolution: {integrity: sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==} - dependencies: - big-integer: 1.6.52 - dev: false - - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true - - /node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - dev: true - - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - dev: true - - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - /object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - dev: true - - /object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} - engines: {node: '>= 0.4'} - dev: false - - /oblivious-set@1.0.0: - resolution: {integrity: sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==} - dev: false - - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - dev: false - - /optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - dev: true - - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: true - - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: true - - /package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} - dev: true - - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: true - - /parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} - dependencies: - character-entities: 1.2.4 - character-entities-legacy: 1.1.4 - character-reference-invalid: 1.1.4 - is-alphanumerical: 1.0.4 - is-decimal: 1.0.4 - is-hexadecimal: 1.0.4 - dev: false - - /parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} - dependencies: - '@types/unist': 2.0.11 - character-entities: 2.0.2 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.0.2 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - dev: false - - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.24.7 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true - - /parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - dependencies: - entities: 4.5.0 - dev: false - - /path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - dev: true - - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: false - - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - dev: true - - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} - dev: true - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - dev: true - - /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - dev: true - - /postcss-import@15.1.0(postcss@8.4.45): - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - dependencies: - postcss: 8.4.45 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.8 - dev: true - - /postcss-js@4.0.1(postcss@8.4.45): - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.45 - dev: true - - /postcss-load-config@4.0.2(postcss@8.4.45): - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 3.1.2 - postcss: 8.4.45 - yaml: 2.5.1 - dev: true - - /postcss-nested@6.2.0(postcss@8.4.45): - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - dependencies: - postcss: 8.4.45 - postcss-selector-parser: 6.1.2 - dev: true - - /postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: true - - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true - - /postcss@8.4.45: - resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.1.0 - source-map-js: 1.2.0 - dev: true - - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true - - /prismjs@1.27.0: - resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} - engines: {node: '>=6'} - dev: false - - /prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - dev: false - - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - dev: false - - /property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} - dependencies: - xtend: 4.0.2 - dev: false - - /property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - dev: false - - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: false - - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - dev: true - - /qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - dependencies: - side-channel: 1.0.6 - dev: false - - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /rc-cascader@3.28.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-9+8oHIMWVLHxuaapDiqFNmD9KSyKN/P4bo9x/MBuDbyTqP8f2/POmmZxdXWBO3yq/uE3pKyQCXYNUxrNfHRv2A==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - array-tree-filter: 2.1.0 - classnames: 2.5.1 - rc-select: 14.15.2(react-dom@18.3.1)(react@18.3.1) - rc-tree: 5.9.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-checkbox@3.3.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-Ih3ZaAcoAiFKJjifzwsGiT/f/quIkxJoklW4yKGho14Olulwn8gN7hOBve0/WGDg5o/l/5mL0w7ff7/YGvefVw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-collapse@3.7.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-60FJcdTRn0X5sELF18TANwtVi7FtModq649H11mYF1jh83DniMoM4MqY627sEKRCTm4+WXfGDcB7hY5oW6xhyw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-dialog@9.5.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-qVUjc8JukG+j/pNaHVSRa2GO2/KbV2thm7yO4hepQ902eGdYK913sGkwg/fh9yhKYV1ql3BKIN2xnud3rEXAPw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/portal': 1.1.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-drawer@7.2.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-9lOQ7kBekEJRdEpScHvtmEtXnAsy+NGDXiRWc2ZVC7QXAazNVbeT4EraQKYwCME8BJLa8Bxqxvs5swwyOepRwg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/portal': 1.1.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-dropdown@4.2.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-odM8Ove+gSh0zU27DUj5cG1gNKg7mLWBYzB5E4nNLrLwBmYEgYP43vHKDGOVZcJSVElQBI0+jTQgjnq0NfLjng==} - peerDependencies: - react: '>=16.11.0' - react-dom: '>=16.11.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/trigger': 2.2.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-field-form@2.4.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-XZ/lF9iqf9HXApIHQHqzJK5v2w4mkUMsVqAzOyWVzoiwwXEavY6Tpuw7HavgzIoD+huVff4JghSGcgEfX6eycg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/async-validator': 5.0.4 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-image@7.9.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-l4zqO5E0quuLMCtdKfBgj4Suv8tIS011F5k1zBBlK25iMjjiNHxA0VeTzGFtUZERSA45gvpXDg8/P6qNLjR25g==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/portal': 1.1.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - rc-dialog: 9.5.2(react-dom@18.3.1)(react@18.3.1) - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-input-number@9.2.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-5XZFhBCV5f9UQ62AZ2hFbEY8iZT/dm23Q1kAg0H8EvOgD3UDbYYJAayoVIkM3lQaCqYAW5gV0yV3vjw1XtzWHg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/mini-decimal': 1.1.0 - classnames: 2.5.1 - rc-input: 1.6.3(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-input@1.6.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-wI4NzuqBS8vvKr8cljsvnTUqItMfG1QbJoxovCgL+DX4eVUcHIjVwharwevIxyy7H/jbLryh+K7ysnJr23aWIA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-mentions@2.15.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-f5v5i7VdqvBDXbphoqcQWmXDif2Msd2arritVoWybrVDuHE6nQ7XCYsybHbV//WylooK52BFDouFvyaRDtXZEw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/trigger': 2.2.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - rc-input: 1.6.3(react-dom@18.3.1)(react@18.3.1) - rc-menu: 9.14.1(react-dom@18.3.1)(react@18.3.1) - rc-textarea: 1.8.1(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-menu@9.14.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-5wlRb3M8S4yGlWhSoEYJ7ZVRElyScdcpUHxgiLxkeig1tEdyKrnED3B2fhpN0Rrpdp9jyhnmZR/Lwq2fH5VvDQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/trigger': 2.2.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-overflow: 1.3.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-motion@2.9.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-fUAhHKLDdkAXIDLH0GYwof3raS58dtNUmzLF2MeiR8o6n4thNpSDQhOqQzWE4WfFZDCi9VEN8n7tiB7czREcyw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-notification@5.6.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-TGQW5T7waOxLwgJG7fXcw8l7AQiFOjaZ7ISF5PrU526nunHRNcTMuzKihQHaF4E/h/KfOCDk3Mv8eqzbu2e28w==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-overflow@1.3.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-resize-observer: 1.4.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-pagination@4.2.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-V6qeANJsT6tmOcZ4XiUmj8JXjRLbkusuufpuoBw2GiAn94fIixYjFLmbruD1Sbhn8fPLDnWawPp4CN37zQorvw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-picker@4.6.14(dayjs@1.11.13)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-7DuTfUFdkxmsNpWQ0TWv6FPGna5e6KKC4nxtx3x9xhumLz7jb3fhlDdWQvqEL6tpt9DOb1+N5j+wB+lDOSS9kg==} - engines: {node: '>=8.x'} - peerDependencies: - date-fns: '>= 2.x' - dayjs: '>= 1.x' - luxon: '>= 3.x' - moment: '>= 2.x' - react: '>=16.9.0' - react-dom: '>=16.9.0' - peerDependenciesMeta: - date-fns: - optional: true - dayjs: - optional: true - luxon: - optional: true - moment: - optional: true - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/trigger': 2.2.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - dayjs: 1.11.13 - rc-overflow: 1.3.2(react-dom@18.3.1)(react@18.3.1) - rc-resize-observer: 1.4.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-progress@4.0.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-oofVMMafOCokIUIBnZLNcOZFsABaUw8PPrf1/y0ZBvKZNpOiu5h4AO9vv11Sw0p4Hb3D0yGWuEattcQGtNJ/aw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-rate@2.13.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-oxvx1Q5k5wD30sjN5tqAyWTvJfLNNJn7Oq3IeS4HxWfAiC4BOXMITNAsw7u/fzdtO4MS8Ki8uRLOzcnEuoQiAw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-resize-observer@1.4.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - resize-observer-polyfill: 1.5.1 - dev: false - - /rc-segmented@2.3.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-I3FtM5Smua/ESXutFfb8gJ8ZPcvFR+qUgeeGFQHBOvRiRKyAk4aBE5nfqrxXx+h8/vn60DQjOt6i4RNtrbOobg==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-select@14.15.2(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-oNoXlaFmpqXYcQDzcPVLrEqS2J9c+/+oJuGrlXeVVX/gVgrbHa5YcyiRUXRydFjyuA7GP3elRuLF7Y3Tfwltlw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/trigger': 2.2.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-overflow: 1.3.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - rc-virtual-list: 3.14.5(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-slider@11.1.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-b77H5PbjMKsvkYXAYIkn50QuFX6ICQmCTibDinI9q+BHx65/TV4TeU25+oadhSRzykxs0/vBWeKBwRyySOeWlg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-steps@6.0.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-switch@4.1.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-table@7.45.7(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-wi9LetBL1t1csxyGkMB2p3mCiMt+NDexMlPbXHvQFmBBAsMxrgNSAPwUci2zDLUq9m8QdWc1Nh8suvrpy9mXrg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/context': 1.4.0(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - rc-resize-observer: 1.4.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - rc-virtual-list: 3.14.5(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-tabs@15.1.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-Tc7bJvpEdkWIVCUL7yQrMNBJY3j44NcyWS48jF/UKMXuUlzaXK+Z/pEL5LjGcTadtPvVmNqA40yv7hmr+tCOAw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-dropdown: 4.2.0(react-dom@18.3.1)(react@18.3.1) - rc-menu: 9.14.1(react-dom@18.3.1)(react@18.3.1) - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-resize-observer: 1.4.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-textarea@1.8.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-bm36N2ZqwZAP60ZQg2OY9mPdqWC+m6UTjHc+CqEZOxb3Ia29BGHazY/s5bI8M4113CkqTzhtFUDNA078ZiOx3Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-input: 1.6.3(react-dom@18.3.1)(react@18.3.1) - rc-resize-observer: 1.4.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-tooltip@6.2.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-iS/3iOAvtDh9GIx1ulY7EFUXUtktFccNLsARo3NPgLf0QW9oT0w3dA9cYWlhqAKmD+uriEwdWz1kH0Qs4zk2Aw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - '@rc-component/trigger': 2.2.2(react-dom@18.3.1)(react@18.3.1) - classnames: 2.5.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-tree-select@5.23.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-aQGi2tFSRw1WbXv0UVXPzHm09E0cSvUVZMLxQtMv3rnZZpNmdRXWrnd9QkLNlVH31F+X5rgghmdSFF3yZW0N9A==} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-select: 14.15.2(react-dom@18.3.1)(react@18.3.1) - rc-tree: 5.9.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-tree@5.9.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-CPrgOvm9d/9E+izTONKSngNzQdIEjMox2PBufWjS1wf7vxtvmCWzK1SlpHbRY6IaBfJIeZ+88RkcIevf729cRg==} - engines: {node: '>=10.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-motion: 2.9.2(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - rc-virtual-list: 3.14.5(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-upload@4.7.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-eUwxYNHlsYe5vYhKFAUGrQG95JrnPzY+BmPi1Daq39fWNl/eOc7v4UODuWrVp2LFkQBuV3cMCG/I68iub6oBrg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /rc-util@5.43.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-AzC7KKOXFqAdIBqdGWepL9Xn7cm3vnAmjlHqUnoQaTMZYhM4VlXGLkkHHxj/BZ7Td0+SOPKB4RGPboBVKT9htw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 18.3.1 - dev: false - - /rc-virtual-list@3.14.5(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-ZMOnkCLv2wUN8Jz7yI4XiSLa9THlYvf00LuMhb1JlsQCewuU7ydPuHw1rGVPhe9VZYl/5UqODtNd7QKJ2DMGfg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.25.6 - classnames: 2.5.1 - rc-resize-observer: 1.4.0(react-dom@18.3.1)(react@18.3.1) - rc-util: 5.43.0(react-dom@18.3.1)(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /react-copy-to-clipboard@5.1.0(react@18.3.1): - resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==} - peerDependencies: - react: ^15.3.0 || 16 || 17 || 18 - dependencies: - copy-to-clipboard: 3.3.3 - prop-types: 15.8.1 - react: 18.3.1 - dev: false - - /react-dom@18.3.1(react@18.3.1): - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - dev: false - - /react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - dev: false - - /react-intl@6.6.8(react@18.3.1)(typescript@5.5.4): - resolution: {integrity: sha512-M0pkhzcgV31h++2901BiRXWl69hp2zPyLxRrSwRjd1ErXbNoubz/f4M6DrRTd4OiSUrT4ajRQzrmtS5plG4FtA==} - peerDependencies: - react: ^16.6.0 || 17 || 18 - typescript: ^4.7 || 5 - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@formatjs/ecma402-abstract': 2.0.0 - '@formatjs/icu-messageformat-parser': 2.7.8 - '@formatjs/intl': 2.10.4(typescript@5.5.4) - '@formatjs/intl-displaynames': 6.6.8 - '@formatjs/intl-listformat': 7.5.7 - '@types/hoist-non-react-statics': 3.3.5 - '@types/react': 18.3.5 - hoist-non-react-statics: 3.3.2 - intl-messageformat: 10.5.14 - react: 18.3.1 - tslib: 2.7.0 - typescript: 5.5.4 - dev: false - - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: false - - /react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - dev: false - - /react-markdown@9.0.1(@types/react@18.3.5)(react@18.3.1): - resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} - peerDependencies: - '@types/react': '>=18' - react: '>=18' - dependencies: - '@types/hast': 3.0.4 - '@types/react': 18.3.5 - devlop: 1.1.0 - hast-util-to-jsx-runtime: 2.3.0 - html-url-attributes: 3.0.0 - mdast-util-to-hast: 13.2.0 - react: 18.3.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.0 - unified: 11.0.5 - unist-util-visit: 5.0.0 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - dev: false - - /react-query@3.39.3(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: '*' - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - dependencies: - '@babel/runtime': 7.25.6 - broadcast-channel: 3.7.0 - match-sorter: 6.3.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - dev: false - - /react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} - engines: {node: '>=0.10.0'} - dev: true - - /react-router-dom@6.26.1(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@remix-run/router': 1.19.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 6.26.1(react@18.3.1) - dev: false - - /react-router@6.26.1(react@18.3.1): - resolution: {integrity: sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - dependencies: - '@remix-run/router': 1.19.1 - react: 18.3.1 - dev: false - - /react-syntax-highlighter@15.5.0(react@18.3.1): - resolution: {integrity: sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==} - peerDependencies: - react: '>= 0.14.0' - dependencies: - '@babel/runtime': 7.25.6 - highlight.js: 10.7.3 - lowlight: 1.20.0 - prismjs: 1.29.0 - react: 18.3.1 - refractor: 3.6.0 - dev: false - - /react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - dev: false - - /read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - dependencies: - pify: 2.3.0 - dev: true - - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /refractor@3.6.0: - resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==} - dependencies: - hastscript: 6.0.0 - parse-entities: 2.0.0 - prismjs: 1.27.0 - dev: false - - /regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - dev: false - - /rehype-katex@7.0.1: - resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} - dependencies: - '@types/hast': 3.0.4 - '@types/katex': 0.16.7 - hast-util-from-html-isomorphic: 2.0.0 - hast-util-to-text: 4.0.2 - katex: 0.16.11 - unist-util-visit-parents: 6.0.1 - vfile: 6.0.3 - dev: false - - /rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - dependencies: - '@types/hast': 3.0.4 - hast-util-raw: 9.0.4 - vfile: 6.0.3 - dev: false - - /remark-gfm@4.0.0: - resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} - dependencies: - '@types/mdast': 4.0.4 - mdast-util-gfm: 3.0.0 - micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - dev: false - - /remark-math@6.0.0: - resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} - dependencies: - '@types/mdast': 4.0.4 - mdast-util-math: 3.0.0 - micromark-extension-math: 3.1.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - dev: false - - /remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - dependencies: - '@types/mdast': 4.0.4 - mdast-util-from-markdown: 2.0.1 - micromark-util-types: 2.0.0 - unified: 11.0.5 - transitivePeerDependencies: - - supports-color - dev: false - - /remark-rehype@11.1.0: - resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - mdast-util-to-hast: 13.2.0 - unified: 11.0.5 - vfile: 6.0.3 - dev: false - - /remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - dependencies: - '@types/mdast': 4.0.4 - mdast-util-to-markdown: 2.1.0 - unified: 11.0.5 - dev: false - - /remove-accents@0.5.0: - resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} - dev: false - - /resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - dev: false - - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true - - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - dependencies: - is-core-module: 2.15.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - dependencies: - glob: 7.2.3 - dev: false - - /rollup@4.21.2: - resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.21.2 - '@rollup/rollup-android-arm64': 4.21.2 - '@rollup/rollup-darwin-arm64': 4.21.2 - '@rollup/rollup-darwin-x64': 4.21.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.21.2 - '@rollup/rollup-linux-arm-musleabihf': 4.21.2 - '@rollup/rollup-linux-arm64-gnu': 4.21.2 - '@rollup/rollup-linux-arm64-musl': 4.21.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2 - '@rollup/rollup-linux-riscv64-gnu': 4.21.2 - '@rollup/rollup-linux-s390x-gnu': 4.21.2 - '@rollup/rollup-linux-x64-gnu': 4.21.2 - '@rollup/rollup-linux-x64-musl': 4.21.2 - '@rollup/rollup-win32-arm64-msvc': 4.21.2 - '@rollup/rollup-win32-ia32-msvc': 4.21.2 - '@rollup/rollup-win32-x64-msvc': 4.21.2 - fsevents: 2.3.3 - dev: true - - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.7.0 - dev: true - - /sass-embedded-android-arm64@1.78.0: - resolution: {integrity: sha512-2sAr11EgwPudAuyk4Ite+fWGYJspiFSiZDU2D8/vjjI7BaB9FG6ksYqww3svoMMnjPUWBCjKPDELpZTxViLJbw==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-android-arm@1.78.0: - resolution: {integrity: sha512-YM6nrmKsj+ImaSTd96F+jzbWSbhPkRN4kedbLgIJ5FsILNa9NAqhmrCQz9pdcjuAhyfxWImdUACsT23CPGENZQ==} - engines: {node: '>=14.0.0'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-android-ia32@1.78.0: - resolution: {integrity: sha512-TyJOo4TgnHpOfC/PfqCBqd+jGRanWoRd4Br/0KAfIvaIFjTGIPdk26vUyDVugV1J8QUEY4INGE8EXAuDeRldUQ==} - engines: {node: '>=14.0.0'} - cpu: [ia32] - os: [android] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-android-riscv64@1.78.0: - resolution: {integrity: sha512-wwajpsVRuhb7ixrkA3Yu60V2LtROYn45PIYeda30/MrMJi9k3xEqHLhodTexFm6wZoKclGSDZ6L9U5q0XyRKiQ==} - engines: {node: '>=14.0.0'} - cpu: [riscv64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-android-x64@1.78.0: - resolution: {integrity: sha512-k5l66PO0LgSHMDbDzAQ/vqrXMlJ3r42ZHJA8MJvUbA6sQxTzDS381V7L+EhOATwyI225j2FhEeTHW6rr4WBQzA==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-darwin-arm64@1.78.0: - resolution: {integrity: sha512-3JaxceFSR6N+a22hPYYkj1p45eBaWTt/M8MPTbfzU3TGZrU9bmRX7WlUVtXTo1yYI2iMf22nCv0PQ5ExFF3FMQ==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-darwin-x64@1.78.0: - resolution: {integrity: sha512-UMTijqE3fJ8vEaaD7GPG7G3GsHuPKOdpS8vuA2v2uwO3BPFp/rEKah66atvGqvGO+0JYApkSv0YTnnexSrkHIQ==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-linux-arm64@1.78.0: - resolution: {integrity: sha512-juMIMpp3DIAiQ842y+boqh0u2SjN4m3mDKrDfMuBznj8DSQoy9J/3e4hLh3g+p0/j83WuROu5nNoYxm2Xz8rww==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-linux-arm@1.78.0: - resolution: {integrity: sha512-JafT+Co0RK8oO3g9TfVRuG7tkYeh35yDGTgqCFxLrktnkiw5pmIagCfpjxk5GBcSfJMOzhCgclTCDJWAuHGuMQ==} - engines: {node: '>=14.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-linux-ia32@1.78.0: - resolution: {integrity: sha512-Gy8GW5g6WX9t8CT2Dto5AL6ikB+pG7aAXWXvfu3RFHktixSwSbyy6CeGqSk1t0xyJCFkQQA/V8HU9bNdeHiBxg==} - engines: {node: '>=14.0.0'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-linux-musl-arm64@1.78.0: - resolution: {integrity: sha512-Lu/TlRHbe9aJY7B7PwWCJz7pTT5Rc50VkApWEmPiU/nu0mGbSpg0Xwar6pNeG8+98ubgKKdRb01N3bvclf5a4A==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-linux-musl-arm@1.78.0: - resolution: {integrity: sha512-DUVXtcsfsiOJ2Zwp4Y3T6KZWX8h0gWpzmFUrx+gSIbg67vV8Ww2DWMjWRwqLe7HOLTYBegMBYpMgMgZiPtXhIA==} - engines: {node: '>=14.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-linux-musl-ia32@1.78.0: - resolution: {integrity: sha512-1E5ywUnq6MRPAecr2r/vDOBr93wXyculEmfyF5JRG8mUufMaxGIhfx64OQE6Drjs+EDURcYZ+Qcg6/ubJWqhcw==} - engines: {node: '>=14.0.0'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-linux-musl-riscv64@1.78.0: - resolution: {integrity: sha512-YvQEvX7ctn5BwC79+HBagDYIciEkwcl2NLgoydmEsBO/0+ncMKSGnjsn/iRzErbq1KJNyjGEni8eSHlrtQI1vQ==} - engines: {node: '>=14.0.0'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-linux-musl-x64@1.78.0: - resolution: {integrity: sha512-azdUcZZvZmtUBslIKr2/l4aQrTX7BvO96TD0GLdWz9vuXZrokYm09AJZEnb5j6Pk5I4Xr0yM6BG1Vgcbzqi5Zg==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-linux-riscv64@1.78.0: - resolution: {integrity: sha512-g8M6vqHMjZUoH9C1WJsgwu+qmwdJAAMDaJTM1emeAScUZMTaQGzm+Q6C5oSGnAGR3XLT/drgbHhbmruXDgkdeQ==} - engines: {node: '>=14.0.0'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-linux-x64@1.78.0: - resolution: {integrity: sha512-m997ThzpMwql4u6LzZCoHPIQkgK6bbLPLc7ydemo2Wusqzh6j8XAGxVT5oANp6s2Dmj+yh49pKDozal+tzEX9w==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-win32-arm64@1.78.0: - resolution: {integrity: sha512-qTLIIC5URYRmeuYYllfoL0K1cHSUd+f3sFHAA6fjtdgf288usd6ToCbWpuFb0BtVceEfGQX8lEp+teOG7n7Quw==} - engines: {node: '>=14.0.0'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-win32-ia32@1.78.0: - resolution: {integrity: sha512-BrOWh18T6Y9xgCokGXElEnd8j03fO4W83bwJ9wHRRkrQWaeHtHs3XWW0fX1j2brngWUTjU+jcYUijWF1Z60krw==} - engines: {node: '>=14.0.0'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /sass-embedded-win32-x64@1.78.0: - resolution: {integrity: sha512-C14iFDJd7oGhmQehRiEL7GtzMmLwubcDqsBarQ+u9LbHoDlUQfIPd7y8mVtNgtxJCdrAO/jc5qR4C+85yE3xPQ==} - engines: {node: '>=14.0.0'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /sass-embedded@1.78.0: - resolution: {integrity: sha512-NR2kvhWVFABmBm0AqgFw9OweQycs0Qs+/teJ9Su+BUY7up+f8S5F/Zi+7QtAqJlewsQyUNfzm1vRuM+20lBwRQ==} - engines: {node: '>=16.0.0'} - hasBin: true - dependencies: - '@bufbuild/protobuf': 1.10.0 - buffer-builder: 0.2.0 - immutable: 4.3.7 - rxjs: 7.8.1 - supports-color: 8.1.1 - varint: 6.0.0 - optionalDependencies: - sass-embedded-android-arm: 1.78.0 - sass-embedded-android-arm64: 1.78.0 - sass-embedded-android-ia32: 1.78.0 - sass-embedded-android-riscv64: 1.78.0 - sass-embedded-android-x64: 1.78.0 - sass-embedded-darwin-arm64: 1.78.0 - sass-embedded-darwin-x64: 1.78.0 - sass-embedded-linux-arm: 1.78.0 - sass-embedded-linux-arm64: 1.78.0 - sass-embedded-linux-ia32: 1.78.0 - sass-embedded-linux-musl-arm: 1.78.0 - sass-embedded-linux-musl-arm64: 1.78.0 - sass-embedded-linux-musl-ia32: 1.78.0 - sass-embedded-linux-musl-riscv64: 1.78.0 - sass-embedded-linux-musl-x64: 1.78.0 - sass-embedded-linux-riscv64: 1.78.0 - sass-embedded-linux-x64: 1.78.0 - sass-embedded-win32-arm64: 1.78.0 - sass-embedded-win32-ia32: 1.78.0 - sass-embedded-win32-x64: 1.78.0 - dev: true - - /scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - dependencies: - loose-envify: 1.4.0 - dev: false - - /screenfull@5.2.0: - resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} - engines: {node: '>=0.10.0'} - dev: false - - /scroll-into-view-if-needed@3.1.0: - resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} - dependencies: - compute-scroll-into-view: 3.1.0 - dev: false - - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - dev: true - - /semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} - engines: {node: '>=10'} - hasBin: true - dev: true - - /set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - dev: false - - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.2 - dev: false - - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true - - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - dev: true - - /space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - dev: false - - /space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - dev: false - - /string-convert@0.2.1: - resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} - dev: false - - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - dev: true - - /stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - dev: false - - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - dependencies: - ansi-regex: 6.0.1 - dev: true - - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true - - /style-mod@4.1.2: - resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} - dev: false - - /style-to-object@1.0.7: - resolution: {integrity: sha512-uSjr59G5u6fbxUfKbb8GcqMGT3Xs9v5IbPkjb0S16GyOeBLAzSRK0CixBv5YrYvzO6TDLzIS6QCn78tkqWngPw==} - dependencies: - inline-style-parser: 0.2.3 - dev: false - - /stylis@4.3.4: - resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==} - dev: false - - /sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - commander: 4.1.1 - glob: 10.4.5 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - dev: true - - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - dev: true - - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /tailwindcss@3.4.10: - resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.2 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.6 - lilconfig: 2.1.0 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.0 - postcss: 8.4.45 - postcss-import: 15.1.0(postcss@8.4.45) - postcss-js: 4.0.1(postcss@8.4.45) - postcss-load-config: 4.0.2(postcss@8.4.45) - postcss-nested: 6.2.0(postcss@8.4.45) - postcss-selector-parser: 6.1.2 - resolve: 1.22.8 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node - dev: true - - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true - - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: true - - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: true - - /throttle-debounce@5.0.2: - resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} - engines: {node: '>=12.22'} - dev: false - - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: true - - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - dev: false - - /trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - dev: false - - /trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - dev: false - - /true-myth@4.1.1: - resolution: {integrity: sha512-rqy30BSpxPznbbTcAcci90oZ1YR4DqvKcNXNerG5gQBU2v4jk0cygheiul5J6ExIMrgDVuanv/MkGfqZbKrNNg==} - engines: {node: 10.* || >= 12.*} - dev: true - - /ts-api-utils@1.3.0(typescript@5.5.4): - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} - engines: {node: '>=16'} - peerDependencies: - typescript: '>=4.2.0' - dependencies: - typescript: 5.5.4 - dev: true - - /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true - - /ts-morph@13.0.3: - resolution: {integrity: sha512-pSOfUMx8Ld/WUreoSzvMFQG5i9uEiWIsBYjpU9+TTASOeUa89j5HykomeqVULm1oqWtBdleI3KEFRLrlA3zGIw==} - dependencies: - '@ts-morph/common': 0.12.3 - code-block-writer: 11.0.3 - dev: true - - /ts-prune@0.10.3: - resolution: {integrity: sha512-iS47YTbdIcvN8Nh/1BFyziyUqmjXz7GVzWu02RaZXqb+e/3Qe1B7IQ4860krOeCGUeJmterAlaM2FRH0Ue0hjw==} - hasBin: true - dependencies: - commander: 6.2.1 - cosmiconfig: 7.1.0 - json5: 2.2.3 - lodash: 4.17.21 - true-myth: 4.1.1 - ts-morph: 13.0.3 - dev: true - - /tslib@2.7.0: - resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: true - - /typescript-eslint@8.4.0(eslint@9.9.1)(typescript@5.5.4): - resolution: {integrity: sha512-67qoc3zQZe3CAkO0ua17+7aCLI0dU+sSQd1eKPGq06QE4rfQjstVXR6woHO5qQvGUa550NfGckT4tzh3b3c8Pw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.4.0)(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/parser': 8.4.0(eslint@9.9.1)(typescript@5.5.4) - '@typescript-eslint/utils': 8.4.0(eslint@9.9.1)(typescript@5.5.4) - typescript: 5.5.4 - transitivePeerDependencies: - - eslint - - supports-color - dev: true - - /typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} - engines: {node: '>=14.17'} - hasBin: true - - /undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - dev: true - - /unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - dependencies: - '@types/unist': 3.0.3 - bail: 2.0.2 - devlop: 1.1.0 - extend: 3.0.2 - is-plain-obj: 4.1.0 - trough: 2.2.0 - vfile: 6.0.3 - dev: false - - /unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - dev: false - - /unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - dependencies: - '@types/unist': 3.0.3 - dev: false - - /unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - dependencies: - '@types/unist': 3.0.3 - dev: false - - /unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - dependencies: - '@types/unist': 3.0.3 - unist-util-visit: 5.0.0 - dev: false - - /unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - dependencies: - '@types/unist': 3.0.3 - dev: false - - /unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - dev: false - - /unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - dev: false - - /unload@2.2.0: - resolution: {integrity: sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==} - dependencies: - '@babel/runtime': 7.25.6 - detect-node: 2.1.0 - dev: false - - /update-browserslist-db@1.1.0(browserslist@4.23.3): - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.23.3 - escalade: 3.2.0 - picocolors: 1.1.0 - dev: true - - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.1 - dev: true - - /use-sync-external-store@1.2.2(react@18.3.1): - resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.3.1 - dev: false - - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true - - /varint@6.0.0: - resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} - dev: true - - /vfile-location@5.0.3: - resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - dependencies: - '@types/unist': 3.0.3 - vfile: 6.0.3 - dev: false - - /vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - dependencies: - '@types/unist': 3.0.3 - unist-util-stringify-position: 4.0.0 - dev: false - - /vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - dependencies: - '@types/unist': 3.0.3 - vfile-message: 4.0.2 - dev: false - - /vite@5.4.3(@types/node@22.5.4)(sass-embedded@1.78.0): - resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 22.5.4 - esbuild: 0.21.5 - postcss: 8.4.45 - rollup: 4.21.2 - sass-embedded: 1.78.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} - dev: false - - /web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - dev: false - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - dev: true - - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - dev: true - - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: false - - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false - - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: true - - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - /yaml@2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} - engines: {node: '>= 14'} - hasBin: true - dev: true - - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true - - /zustand@4.5.5(@types/react@18.3.5)(react@18.3.1): - resolution: {integrity: sha512-+0PALYNJNgK6hldkgDq2vLrw5f6g/jCInz52n9RTpropGgeAf/ioFUCdtsjCqu4gNhW9D01rUQBROoRjdzyn2Q==} - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0.6' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - dependencies: - '@types/react': 18.3.5 - react: 18.3.1 - use-sync-external-store: 1.2.2(react@18.3.1) - dev: false - - /zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - dev: false diff --git a/projects/web/postcss.config.js b/projects/web/postcss.config.js deleted file mode 100644 index 2e7af2b7f..000000000 --- a/projects/web/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {}, - }, -} diff --git a/projects/web/public/iconfont.js b/projects/web/public/iconfont.js deleted file mode 100644 index bb790a138..000000000 --- a/projects/web/public/iconfont.js +++ /dev/null @@ -1 +0,0 @@ -window._iconfont_svg_string_4519198='',(h=>{var a=(l=(l=document.getElementsByTagName("script"))[l.length-1]).getAttribute("data-injectcss"),l=l.getAttribute("data-disable-injectsvg");if(!l){var o,i,t,v,c,d=function(a,l){l.parentNode.insertBefore(a,l)};if(a&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}o=function(){var a,l=document.createElement("div");l.innerHTML=h._iconfont_svg_string_4519198,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(a=document.body).firstChild?d(l,a.firstChild):a.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),o()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(t=o,v=h.document,c=!1,m(),v.onreadystatechange=function(){"complete"==v.readyState&&(v.onreadystatechange=null,z())})}function z(){c||(c=!0,t())}function m(){try{v.documentElement.doScroll("left")}catch(a){return void setTimeout(m,50)}z()}})(window); \ No newline at end of file diff --git a/projects/web/public/logo.svg b/projects/web/public/logo.svg deleted file mode 100644 index 17f246300..000000000 --- a/projects/web/public/logo.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/web/public/pdfjs-dist/build/pdf.mjs b/projects/web/public/pdfjs-dist/build/pdf.mjs deleted file mode 100644 index f995c0db6..000000000 --- a/projects/web/public/pdfjs-dist/build/pdf.mjs +++ /dev/null @@ -1,19814 +0,0 @@ -/** - * @licstart The following is the entire license notice for the - * JavaScript code in this page - * - * Copyright 2023 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @licend The above is the entire license notice for the - * JavaScript code in this page - */ - -/******/ var __webpack_modules__ = ({ - -/***/ 976: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - AnnotationLayer: () => (/* binding */ AnnotationLayer), - FreeTextAnnotationElement: () => (/* binding */ FreeTextAnnotationElement), - InkAnnotationElement: () => (/* binding */ InkAnnotationElement), - StampAnnotationElement: () => (/* binding */ StampAnnotationElement) -}); - -// EXTERNAL MODULE: ./src/shared/util.js -var util = __webpack_require__(292); -// EXTERNAL MODULE: ./src/display/display_utils.js -var display_utils = __webpack_require__(419); -// EXTERNAL MODULE: ./src/display/annotation_storage.js -var annotation_storage = __webpack_require__(792); -;// CONCATENATED MODULE: ./src/shared/scripting_utils.js -function makeColorComp(n) { - return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, "0"); -} -function scaleAndClamp(x) { - return Math.max(0, Math.min(255, 255 * x)); -} -class ColorConverters { - static CMYK_G([c, y, m, k]) { - return ["G", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)]; - } - static G_CMYK([g]) { - return ["CMYK", 0, 0, 0, 1 - g]; - } - static G_RGB([g]) { - return ["RGB", g, g, g]; - } - static G_rgb([g]) { - g = scaleAndClamp(g); - return [g, g, g]; - } - static G_HTML([g]) { - const G = makeColorComp(g); - return `#${G}${G}${G}`; - } - static RGB_G([r, g, b]) { - return ["G", 0.3 * r + 0.59 * g + 0.11 * b]; - } - static RGB_rgb(color) { - return color.map(scaleAndClamp); - } - static RGB_HTML(color) { - return `#${color.map(makeColorComp).join("")}`; - } - static T_HTML() { - return "#00000000"; - } - static T_rgb() { - return [null]; - } - static CMYK_RGB([c, y, m, k]) { - return ["RGB", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)]; - } - static CMYK_rgb([c, y, m, k]) { - return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))]; - } - static CMYK_HTML(components) { - const rgb = this.CMYK_RGB(components).slice(1); - return this.RGB_HTML(rgb); - } - static RGB_CMYK([r, g, b]) { - const c = 1 - r; - const m = 1 - g; - const y = 1 - b; - const k = Math.min(c, m, y); - return ["CMYK", c, m, y, k]; - } -} - -// EXTERNAL MODULE: ./src/display/xfa_layer.js -var xfa_layer = __webpack_require__(284); -;// CONCATENATED MODULE: ./src/display/annotation_layer.js - - - - - -const DEFAULT_TAB_INDEX = 1000; -const DEFAULT_FONT_SIZE = 9; -const GetElementsByNameSet = new WeakSet(); -function getRectDims(rect) { - return { - width: rect[2] - rect[0], - height: rect[3] - rect[1] - }; -} -class AnnotationElementFactory { - static create(parameters) { - const subtype = parameters.data.annotationType; - switch (subtype) { - case util.AnnotationType.LINK: - return new LinkAnnotationElement(parameters); - case util.AnnotationType.TEXT: - return new TextAnnotationElement(parameters); - case util.AnnotationType.WIDGET: - const fieldType = parameters.data.fieldType; - switch (fieldType) { - case "Tx": - return new TextWidgetAnnotationElement(parameters); - case "Btn": - if (parameters.data.radioButton) { - return new RadioButtonWidgetAnnotationElement(parameters); - } else if (parameters.data.checkBox) { - return new CheckboxWidgetAnnotationElement(parameters); - } - return new PushButtonWidgetAnnotationElement(parameters); - case "Ch": - return new ChoiceWidgetAnnotationElement(parameters); - case "Sig": - return new SignatureWidgetAnnotationElement(parameters); - } - return new WidgetAnnotationElement(parameters); - case util.AnnotationType.POPUP: - return new PopupAnnotationElement(parameters); - case util.AnnotationType.FREETEXT: - return new FreeTextAnnotationElement(parameters); - case util.AnnotationType.LINE: - return new LineAnnotationElement(parameters); - case util.AnnotationType.SQUARE: - return new SquareAnnotationElement(parameters); - case util.AnnotationType.CIRCLE: - return new CircleAnnotationElement(parameters); - case util.AnnotationType.POLYLINE: - return new PolylineAnnotationElement(parameters); - case util.AnnotationType.CARET: - return new CaretAnnotationElement(parameters); - case util.AnnotationType.INK: - return new InkAnnotationElement(parameters); - case util.AnnotationType.POLYGON: - return new PolygonAnnotationElement(parameters); - case util.AnnotationType.HIGHLIGHT: - return new HighlightAnnotationElement(parameters); - case util.AnnotationType.UNDERLINE: - return new UnderlineAnnotationElement(parameters); - case util.AnnotationType.SQUIGGLY: - return new SquigglyAnnotationElement(parameters); - case util.AnnotationType.STRIKEOUT: - return new StrikeOutAnnotationElement(parameters); - case util.AnnotationType.STAMP: - return new StampAnnotationElement(parameters); - case util.AnnotationType.FILEATTACHMENT: - return new FileAttachmentAnnotationElement(parameters); - default: - return new AnnotationElement(parameters); - } - } -} -class AnnotationElement { - #updates = null; - #hasBorder = false; - constructor(parameters, { - isRenderable = false, - ignoreBorder = false, - createQuadrilaterals = false - } = {}) { - this.isRenderable = isRenderable; - this.data = parameters.data; - this.layer = parameters.layer; - this.linkService = parameters.linkService; - this.downloadManager = parameters.downloadManager; - this.imageResourcesPath = parameters.imageResourcesPath; - this.renderForms = parameters.renderForms; - this.svgFactory = parameters.svgFactory; - this.annotationStorage = parameters.annotationStorage; - this.enableScripting = parameters.enableScripting; - this.hasJSActions = parameters.hasJSActions; - this._fieldObjects = parameters.fieldObjects; - this.parent = parameters.parent; - if (isRenderable) { - this.container = this._createContainer(ignoreBorder); - } - if (createQuadrilaterals) { - this._createQuadrilaterals(); - } - } - static _hasPopupData({ - titleObj, - contentsObj, - richText - }) { - return !!(titleObj?.str || contentsObj?.str || richText?.str); - } - get hasPopupData() { - return AnnotationElement._hasPopupData(this.data); - } - updateEdited(params) { - if (!this.container) { - return; - } - this.#updates ||= { - rect: this.data.rect.slice(0) - }; - const { - rect - } = params; - if (rect) { - this.#setRectEdited(rect); - } - } - resetEdited() { - if (!this.#updates) { - return; - } - this.#setRectEdited(this.#updates.rect); - this.#updates = null; - } - #setRectEdited(rect) { - const { - container: { - style - }, - data: { - rect: currentRect, - rotation - }, - parent: { - viewport: { - rawDims: { - pageWidth, - pageHeight, - pageX, - pageY - } - } - } - } = this; - currentRect?.splice(0, 4, ...rect); - const { - width, - height - } = getRectDims(rect); - style.left = `${100 * (rect[0] - pageX) / pageWidth}%`; - style.top = `${100 * (pageHeight - rect[3] + pageY) / pageHeight}%`; - if (rotation === 0) { - style.width = `${100 * width / pageWidth}%`; - style.height = `${100 * height / pageHeight}%`; - } else { - this.setRotation(rotation); - } - } - _createContainer(ignoreBorder) { - const { - data, - parent: { - page, - viewport - } - } = this; - const container = document.createElement("section"); - container.setAttribute("data-annotation-id", data.id); - if (!(this instanceof WidgetAnnotationElement)) { - container.tabIndex = DEFAULT_TAB_INDEX; - } - const { - style - } = container; - style.zIndex = this.parent.zIndex++; - if (data.popupRef) { - container.setAttribute("aria-haspopup", "dialog"); - } - if (data.alternativeText) { - container.title = data.alternativeText; - } - if (data.noRotate) { - container.classList.add("norotate"); - } - if (!data.rect || this instanceof PopupAnnotationElement) { - const { - rotation - } = data; - if (!data.hasOwnCanvas && rotation !== 0) { - this.setRotation(rotation, container); - } - return container; - } - const { - width, - height - } = getRectDims(data.rect); - if (!ignoreBorder && data.borderStyle.width > 0) { - style.borderWidth = `${data.borderStyle.width}px`; - const horizontalRadius = data.borderStyle.horizontalCornerRadius; - const verticalRadius = data.borderStyle.verticalCornerRadius; - if (horizontalRadius > 0 || verticalRadius > 0) { - const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`; - style.borderRadius = radius; - } else if (this instanceof RadioButtonWidgetAnnotationElement) { - const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`; - style.borderRadius = radius; - } - switch (data.borderStyle.style) { - case util.AnnotationBorderStyleType.SOLID: - style.borderStyle = "solid"; - break; - case util.AnnotationBorderStyleType.DASHED: - style.borderStyle = "dashed"; - break; - case util.AnnotationBorderStyleType.BEVELED: - (0,util.warn)("Unimplemented border style: beveled"); - break; - case util.AnnotationBorderStyleType.INSET: - (0,util.warn)("Unimplemented border style: inset"); - break; - case util.AnnotationBorderStyleType.UNDERLINE: - style.borderBottomStyle = "solid"; - break; - default: - break; - } - const borderColor = data.borderColor || null; - if (borderColor) { - this.#hasBorder = true; - style.borderColor = util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0); - } else { - style.borderWidth = 0; - } - } - const rect = util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]); - const { - pageWidth, - pageHeight, - pageX, - pageY - } = viewport.rawDims; - style.left = `${100 * (rect[0] - pageX) / pageWidth}%`; - style.top = `${100 * (rect[1] - pageY) / pageHeight}%`; - const { - rotation - } = data; - if (data.hasOwnCanvas || rotation === 0) { - style.width = `${100 * width / pageWidth}%`; - style.height = `${100 * height / pageHeight}%`; - } else { - this.setRotation(rotation, container); - } - return container; - } - setRotation(angle, container = this.container) { - if (!this.data.rect) { - return; - } - const { - pageWidth, - pageHeight - } = this.parent.viewport.rawDims; - const { - width, - height - } = getRectDims(this.data.rect); - let elementWidth, elementHeight; - if (angle % 180 === 0) { - elementWidth = 100 * width / pageWidth; - elementHeight = 100 * height / pageHeight; - } else { - elementWidth = 100 * height / pageWidth; - elementHeight = 100 * width / pageHeight; - } - container.style.width = `${elementWidth}%`; - container.style.height = `${elementHeight}%`; - container.setAttribute("data-main-rotation", (360 - angle) % 360); - } - get _commonActions() { - const setColor = (jsName, styleName, event) => { - const color = event.detail[jsName]; - const colorType = color[0]; - const colorArray = color.slice(1); - event.target.style[styleName] = ColorConverters[`${colorType}_HTML`](colorArray); - this.annotationStorage.setValue(this.data.id, { - [styleName]: ColorConverters[`${colorType}_rgb`](colorArray) - }); - }; - return (0,util.shadow)(this, "_commonActions", { - display: event => { - const { - display - } = event.detail; - const hidden = display % 2 === 1; - this.container.style.visibility = hidden ? "hidden" : "visible"; - this.annotationStorage.setValue(this.data.id, { - noView: hidden, - noPrint: display === 1 || display === 2 - }); - }, - print: event => { - this.annotationStorage.setValue(this.data.id, { - noPrint: !event.detail.print - }); - }, - hidden: event => { - const { - hidden - } = event.detail; - this.container.style.visibility = hidden ? "hidden" : "visible"; - this.annotationStorage.setValue(this.data.id, { - noPrint: hidden, - noView: hidden - }); - }, - focus: event => { - setTimeout(() => event.target.focus({ - preventScroll: false - }), 0); - }, - userName: event => { - event.target.title = event.detail.userName; - }, - readonly: event => { - event.target.disabled = event.detail.readonly; - }, - required: event => { - this._setRequired(event.target, event.detail.required); - }, - bgColor: event => { - setColor("bgColor", "backgroundColor", event); - }, - fillColor: event => { - setColor("fillColor", "backgroundColor", event); - }, - fgColor: event => { - setColor("fgColor", "color", event); - }, - textColor: event => { - setColor("textColor", "color", event); - }, - borderColor: event => { - setColor("borderColor", "borderColor", event); - }, - strokeColor: event => { - setColor("strokeColor", "borderColor", event); - }, - rotation: event => { - const angle = event.detail.rotation; - this.setRotation(angle); - this.annotationStorage.setValue(this.data.id, { - rotation: angle - }); - } - }); - } - _dispatchEventFromSandbox(actions, jsEvent) { - const commonActions = this._commonActions; - for (const name of Object.keys(jsEvent.detail)) { - const action = actions[name] || commonActions[name]; - action?.(jsEvent); - } - } - _setDefaultPropertiesFromJS(element) { - if (!this.enableScripting) { - return; - } - const storedData = this.annotationStorage.getRawValue(this.data.id); - if (!storedData) { - return; - } - const commonActions = this._commonActions; - for (const [actionName, detail] of Object.entries(storedData)) { - const action = commonActions[actionName]; - if (action) { - const eventProxy = { - detail: { - [actionName]: detail - }, - target: element - }; - action(eventProxy); - delete storedData[actionName]; - } - } - } - _createQuadrilaterals() { - if (!this.container) { - return; - } - const { - quadPoints - } = this.data; - if (!quadPoints) { - return; - } - const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect; - if (quadPoints.length === 1) { - const [, { - x: trX, - y: trY - }, { - x: blX, - y: blY - }] = quadPoints[0]; - if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) { - return; - } - } - const { - style - } = this.container; - let svgBuffer; - if (this.#hasBorder) { - const { - borderColor, - borderWidth - } = style; - style.borderWidth = 0; - svgBuffer = ["url('data:image/svg+xml;utf8,", ``, ``]; - this.container.classList.add("hasBorder"); - } - const width = rectTrX - rectBlX; - const height = rectTrY - rectBlY; - const { - svgFactory - } = this; - const svg = svgFactory.createElement("svg"); - svg.classList.add("quadrilateralsContainer"); - svg.setAttribute("width", 0); - svg.setAttribute("height", 0); - const defs = svgFactory.createElement("defs"); - svg.append(defs); - const clipPath = svgFactory.createElement("clipPath"); - const id = `clippath_${this.data.id}`; - clipPath.setAttribute("id", id); - clipPath.setAttribute("clipPathUnits", "objectBoundingBox"); - defs.append(clipPath); - for (const [, { - x: trX, - y: trY - }, { - x: blX, - y: blY - }] of quadPoints) { - const rect = svgFactory.createElement("rect"); - const x = (blX - rectBlX) / width; - const y = (rectTrY - trY) / height; - const rectWidth = (trX - blX) / width; - const rectHeight = (trY - blY) / height; - rect.setAttribute("x", x); - rect.setAttribute("y", y); - rect.setAttribute("width", rectWidth); - rect.setAttribute("height", rectHeight); - clipPath.append(rect); - svgBuffer?.push(``); - } - if (this.#hasBorder) { - svgBuffer.push(`')`); - style.backgroundImage = svgBuffer.join(""); - } - this.container.append(svg); - this.container.style.clipPath = `url(#${id})`; - } - _createPopup() { - const { - container, - data - } = this; - container.setAttribute("aria-haspopup", "dialog"); - const popup = new PopupAnnotationElement({ - data: { - color: data.color, - titleObj: data.titleObj, - modificationDate: data.modificationDate, - contentsObj: data.contentsObj, - richText: data.richText, - parentRect: data.rect, - borderStyle: 0, - id: `popup_${data.id}`, - rotation: data.rotation - }, - parent: this.parent, - elements: [this] - }); - this.parent.div.append(popup.render()); - } - render() { - (0,util.unreachable)("Abstract method `AnnotationElement.render` called"); - } - _getElementsByName(name, skipId = null) { - const fields = []; - if (this._fieldObjects) { - const fieldObj = this._fieldObjects[name]; - if (fieldObj) { - for (const { - page, - id, - exportValues - } of fieldObj) { - if (page === -1) { - continue; - } - if (id === skipId) { - continue; - } - const exportValue = typeof exportValues === "string" ? exportValues : null; - const domElement = document.querySelector(`[data-element-id="${id}"]`); - if (domElement && !GetElementsByNameSet.has(domElement)) { - (0,util.warn)(`_getElementsByName - element not allowed: ${id}`); - continue; - } - fields.push({ - id, - exportValue, - domElement - }); - } - } - return fields; - } - for (const domElement of document.getElementsByName(name)) { - const { - exportValue - } = domElement; - const id = domElement.getAttribute("data-element-id"); - if (id === skipId) { - continue; - } - if (!GetElementsByNameSet.has(domElement)) { - continue; - } - fields.push({ - id, - exportValue, - domElement - }); - } - return fields; - } - show() { - if (this.container) { - this.container.hidden = false; - } - this.popup?.maybeShow(); - } - hide() { - if (this.container) { - this.container.hidden = true; - } - this.popup?.forceHide(); - } - getElementsToTriggerPopup() { - return this.container; - } - addHighlightArea() { - const triggers = this.getElementsToTriggerPopup(); - if (Array.isArray(triggers)) { - for (const element of triggers) { - element.classList.add("highlightArea"); - } - } else { - triggers.classList.add("highlightArea"); - } - } - get _isEditable() { - return false; - } - _editOnDoubleClick() { - if (!this._isEditable) { - return; - } - const { - annotationEditorType: mode, - data: { - id: editId - } - } = this; - this.container.addEventListener("dblclick", () => { - this.linkService.eventBus?.dispatch("switchannotationeditormode", { - source: this, - mode, - editId - }); - }); - } -} -class LinkAnnotationElement extends AnnotationElement { - constructor(parameters, options = null) { - super(parameters, { - isRenderable: true, - ignoreBorder: !!options?.ignoreBorder, - createQuadrilaterals: true - }); - this.isTooltipOnly = parameters.data.isTooltipOnly; - } - render() { - const { - data, - linkService - } = this; - const link = document.createElement("a"); - link.setAttribute("data-element-id", data.id); - let isBound = false; - if (data.url) { - linkService.addLinkAttributes(link, data.url, data.newWindow); - isBound = true; - } else if (data.action) { - this._bindNamedAction(link, data.action); - isBound = true; - } else if (data.attachment) { - this.#bindAttachment(link, data.attachment, data.attachmentDest); - isBound = true; - } else if (data.setOCGState) { - this.#bindSetOCGState(link, data.setOCGState); - isBound = true; - } else if (data.dest) { - this._bindLink(link, data.dest); - isBound = true; - } else { - if (data.actions && (data.actions.Action || data.actions["Mouse Up"] || data.actions["Mouse Down"]) && this.enableScripting && this.hasJSActions) { - this._bindJSAction(link, data); - isBound = true; - } - if (data.resetForm) { - this._bindResetFormAction(link, data.resetForm); - isBound = true; - } else if (this.isTooltipOnly && !isBound) { - this._bindLink(link, ""); - isBound = true; - } - } - this.container.classList.add("linkAnnotation"); - if (isBound) { - this.container.append(link); - } - return this.container; - } - #setInternalLink() { - this.container.setAttribute("data-internal-link", ""); - } - _bindLink(link, destination) { - link.href = this.linkService.getDestinationHash(destination); - link.onclick = () => { - if (destination) { - this.linkService.goToDestination(destination); - } - return false; - }; - if (destination || destination === "") { - this.#setInternalLink(); - } - } - _bindNamedAction(link, action) { - link.href = this.linkService.getAnchorUrl(""); - link.onclick = () => { - this.linkService.executeNamedAction(action); - return false; - }; - this.#setInternalLink(); - } - #bindAttachment(link, attachment, dest = null) { - link.href = this.linkService.getAnchorUrl(""); - link.onclick = () => { - this.downloadManager?.openOrDownloadData(attachment.content, attachment.filename, dest); - return false; - }; - this.#setInternalLink(); - } - #bindSetOCGState(link, action) { - link.href = this.linkService.getAnchorUrl(""); - link.onclick = () => { - this.linkService.executeSetOCGState(action); - return false; - }; - this.#setInternalLink(); - } - _bindJSAction(link, data) { - link.href = this.linkService.getAnchorUrl(""); - const map = new Map([["Action", "onclick"], ["Mouse Up", "onmouseup"], ["Mouse Down", "onmousedown"]]); - for (const name of Object.keys(data.actions)) { - const jsName = map.get(name); - if (!jsName) { - continue; - } - link[jsName] = () => { - this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { - source: this, - detail: { - id: data.id, - name - } - }); - return false; - }; - } - if (!link.onclick) { - link.onclick = () => false; - } - this.#setInternalLink(); - } - _bindResetFormAction(link, resetForm) { - const otherClickAction = link.onclick; - if (!otherClickAction) { - link.href = this.linkService.getAnchorUrl(""); - } - this.#setInternalLink(); - if (!this._fieldObjects) { - (0,util.warn)(`_bindResetFormAction - "resetForm" action not supported, ` + "ensure that the `fieldObjects` parameter is provided."); - if (!otherClickAction) { - link.onclick = () => false; - } - return; - } - link.onclick = () => { - otherClickAction?.(); - const { - fields: resetFormFields, - refs: resetFormRefs, - include - } = resetForm; - const allFields = []; - if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) { - const fieldIds = new Set(resetFormRefs); - for (const fieldName of resetFormFields) { - const fields = this._fieldObjects[fieldName] || []; - for (const { - id - } of fields) { - fieldIds.add(id); - } - } - for (const fields of Object.values(this._fieldObjects)) { - for (const field of fields) { - if (fieldIds.has(field.id) === include) { - allFields.push(field); - } - } - } - } else { - for (const fields of Object.values(this._fieldObjects)) { - allFields.push(...fields); - } - } - const storage = this.annotationStorage; - const allIds = []; - for (const field of allFields) { - const { - id - } = field; - allIds.push(id); - switch (field.type) { - case "text": - { - const value = field.defaultValue || ""; - storage.setValue(id, { - value - }); - break; - } - case "checkbox": - case "radiobutton": - { - const value = field.defaultValue === field.exportValues; - storage.setValue(id, { - value - }); - break; - } - case "combobox": - case "listbox": - { - const value = field.defaultValue || ""; - storage.setValue(id, { - value - }); - break; - } - default: - continue; - } - const domElement = document.querySelector(`[data-element-id="${id}"]`); - if (!domElement) { - continue; - } else if (!GetElementsByNameSet.has(domElement)) { - (0,util.warn)(`_bindResetFormAction - element not allowed: ${id}`); - continue; - } - domElement.dispatchEvent(new Event("resetform")); - } - if (this.enableScripting) { - this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { - source: this, - detail: { - id: "app", - ids: allIds, - name: "ResetForm" - } - }); - } - return false; - }; - } -} -class TextAnnotationElement extends AnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: true - }); - } - render() { - this.container.classList.add("textAnnotation"); - const image = document.createElement("img"); - image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg"; - image.setAttribute("data-l10n-id", "pdfjs-text-annotation-type"); - image.setAttribute("data-l10n-args", JSON.stringify({ - type: this.data.name - })); - if (!this.data.popupRef && this.hasPopupData) { - this._createPopup(); - } - this.container.append(image); - return this.container; - } -} -class WidgetAnnotationElement extends AnnotationElement { - render() { - return this.container; - } - showElementAndHideCanvas(element) { - if (this.data.hasOwnCanvas) { - if (element.previousSibling?.nodeName === "CANVAS") { - element.previousSibling.hidden = true; - } - element.hidden = false; - } - } - _getKeyModifier(event) { - return util.FeatureTest.platform.isMac ? event.metaKey : event.ctrlKey; - } - _setEventListener(element, elementData, baseName, eventName, valueGetter) { - if (baseName.includes("mouse")) { - element.addEventListener(baseName, event => { - this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { - source: this, - detail: { - id: this.data.id, - name: eventName, - value: valueGetter(event), - shift: event.shiftKey, - modifier: this._getKeyModifier(event) - } - }); - }); - } else { - element.addEventListener(baseName, event => { - if (baseName === "blur") { - if (!elementData.focused || !event.relatedTarget) { - return; - } - elementData.focused = false; - } else if (baseName === "focus") { - if (elementData.focused) { - return; - } - elementData.focused = true; - } - if (!valueGetter) { - return; - } - this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { - source: this, - detail: { - id: this.data.id, - name: eventName, - value: valueGetter(event) - } - }); - }); - } - } - _setEventListeners(element, elementData, names, getter) { - for (const [baseName, eventName] of names) { - if (eventName === "Action" || this.data.actions?.[eventName]) { - if (eventName === "Focus" || eventName === "Blur") { - elementData ||= { - focused: false - }; - } - this._setEventListener(element, elementData, baseName, eventName, getter); - if (eventName === "Focus" && !this.data.actions?.Blur) { - this._setEventListener(element, elementData, "blur", "Blur", null); - } else if (eventName === "Blur" && !this.data.actions?.Focus) { - this._setEventListener(element, elementData, "focus", "Focus", null); - } - } - } - } - _setBackgroundColor(element) { - const color = this.data.backgroundColor || null; - element.style.backgroundColor = color === null ? "transparent" : util.Util.makeHexColor(color[0], color[1], color[2]); - } - _setTextStyle(element) { - const TEXT_ALIGNMENT = ["left", "center", "right"]; - const { - fontColor - } = this.data.defaultAppearanceData; - const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE; - const style = element.style; - let computedFontSize; - const BORDER_SIZE = 2; - const roundToOneDecimal = x => Math.round(10 * x) / 10; - if (this.data.multiLine) { - const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE); - const numberOfLines = Math.round(height / (util.LINE_FACTOR * fontSize)) || 1; - const lineHeight = height / numberOfLines; - computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / util.LINE_FACTOR)); - } else { - const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE); - computedFontSize = Math.min(fontSize, roundToOneDecimal(height / util.LINE_FACTOR)); - } - style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`; - style.color = util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]); - if (this.data.textAlignment !== null) { - style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; - } - } - _setRequired(element, isRequired) { - if (isRequired) { - element.setAttribute("required", true); - } else { - element.removeAttribute("required"); - } - element.setAttribute("aria-required", isRequired); - } -} -class TextWidgetAnnotationElement extends WidgetAnnotationElement { - constructor(parameters) { - const isRenderable = parameters.renderForms || parameters.data.hasOwnCanvas || !parameters.data.hasAppearance && !!parameters.data.fieldValue; - super(parameters, { - isRenderable - }); - } - setPropertyOnSiblings(base, key, value, keyInStorage) { - const storage = this.annotationStorage; - for (const element of this._getElementsByName(base.name, base.id)) { - if (element.domElement) { - element.domElement[key] = value; - } - storage.setValue(element.id, { - [keyInStorage]: value - }); - } - } - render() { - const storage = this.annotationStorage; - const id = this.data.id; - this.container.classList.add("textWidgetAnnotation"); - let element = null; - if (this.renderForms) { - const storedData = storage.getValue(id, { - value: this.data.fieldValue - }); - let textContent = storedData.value || ""; - const maxLen = storage.getValue(id, { - charLimit: this.data.maxLen - }).charLimit; - if (maxLen && textContent.length > maxLen) { - textContent = textContent.slice(0, maxLen); - } - let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join("\n") || null; - if (fieldFormattedValues && this.data.comb) { - fieldFormattedValues = fieldFormattedValues.replaceAll(/\s+/g, ""); - } - const elementData = { - userValue: textContent, - formattedValue: fieldFormattedValues, - lastCommittedValue: null, - commitKey: 1, - focused: false - }; - if (this.data.multiLine) { - element = document.createElement("textarea"); - element.textContent = fieldFormattedValues ?? textContent; - if (this.data.doNotScroll) { - element.style.overflowY = "hidden"; - } - } else { - element = document.createElement("input"); - element.type = "text"; - element.setAttribute("value", fieldFormattedValues ?? textContent); - if (this.data.doNotScroll) { - element.style.overflowX = "hidden"; - } - } - if (this.data.hasOwnCanvas) { - element.hidden = true; - } - GetElementsByNameSet.add(element); - element.setAttribute("data-element-id", id); - element.disabled = this.data.readOnly; - element.name = this.data.fieldName; - element.tabIndex = DEFAULT_TAB_INDEX; - this._setRequired(element, this.data.required); - if (maxLen) { - element.maxLength = maxLen; - } - element.addEventListener("input", event => { - storage.setValue(id, { - value: event.target.value - }); - this.setPropertyOnSiblings(element, "value", event.target.value, "value"); - elementData.formattedValue = null; - }); - element.addEventListener("resetform", event => { - const defaultValue = this.data.defaultFieldValue ?? ""; - element.value = elementData.userValue = defaultValue; - elementData.formattedValue = null; - }); - let blurListener = event => { - const { - formattedValue - } = elementData; - if (formattedValue !== null && formattedValue !== undefined) { - event.target.value = formattedValue; - } - event.target.scrollLeft = 0; - }; - if (this.enableScripting && this.hasJSActions) { - element.addEventListener("focus", event => { - if (elementData.focused) { - return; - } - const { - target - } = event; - if (elementData.userValue) { - target.value = elementData.userValue; - } - elementData.lastCommittedValue = target.value; - elementData.commitKey = 1; - if (!this.data.actions?.Focus) { - elementData.focused = true; - } - }); - element.addEventListener("updatefromsandbox", jsEvent => { - this.showElementAndHideCanvas(jsEvent.target); - const actions = { - value(event) { - elementData.userValue = event.detail.value ?? ""; - storage.setValue(id, { - value: elementData.userValue.toString() - }); - event.target.value = elementData.userValue; - }, - formattedValue(event) { - const { - formattedValue - } = event.detail; - elementData.formattedValue = formattedValue; - if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) { - event.target.value = formattedValue; - } - storage.setValue(id, { - formattedValue - }); - }, - selRange(event) { - event.target.setSelectionRange(...event.detail.selRange); - }, - charLimit: event => { - const { - charLimit - } = event.detail; - const { - target - } = event; - if (charLimit === 0) { - target.removeAttribute("maxLength"); - return; - } - target.setAttribute("maxLength", charLimit); - let value = elementData.userValue; - if (!value || value.length <= charLimit) { - return; - } - value = value.slice(0, charLimit); - target.value = elementData.userValue = value; - storage.setValue(id, { - value - }); - this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { - source: this, - detail: { - id, - name: "Keystroke", - value, - willCommit: true, - commitKey: 1, - selStart: target.selectionStart, - selEnd: target.selectionEnd - } - }); - } - }; - this._dispatchEventFromSandbox(actions, jsEvent); - }); - element.addEventListener("keydown", event => { - elementData.commitKey = 1; - let commitKey = -1; - if (event.key === "Escape") { - commitKey = 0; - } else if (event.key === "Enter" && !this.data.multiLine) { - commitKey = 2; - } else if (event.key === "Tab") { - elementData.commitKey = 3; - } - if (commitKey === -1) { - return; - } - const { - value - } = event.target; - if (elementData.lastCommittedValue === value) { - return; - } - elementData.lastCommittedValue = value; - elementData.userValue = value; - this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { - source: this, - detail: { - id, - name: "Keystroke", - value, - willCommit: true, - commitKey, - selStart: event.target.selectionStart, - selEnd: event.target.selectionEnd - } - }); - }); - const _blurListener = blurListener; - blurListener = null; - element.addEventListener("blur", event => { - if (!elementData.focused || !event.relatedTarget) { - return; - } - if (!this.data.actions?.Blur) { - elementData.focused = false; - } - const { - value - } = event.target; - elementData.userValue = value; - if (elementData.lastCommittedValue !== value) { - this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { - source: this, - detail: { - id, - name: "Keystroke", - value, - willCommit: true, - commitKey: elementData.commitKey, - selStart: event.target.selectionStart, - selEnd: event.target.selectionEnd - } - }); - } - _blurListener(event); - }); - if (this.data.actions?.Keystroke) { - element.addEventListener("beforeinput", event => { - elementData.lastCommittedValue = null; - const { - data, - target - } = event; - const { - value, - selectionStart, - selectionEnd - } = target; - let selStart = selectionStart, - selEnd = selectionEnd; - switch (event.inputType) { - case "deleteWordBackward": - { - const match = value.substring(0, selectionStart).match(/\w*[^\w]*$/); - if (match) { - selStart -= match[0].length; - } - break; - } - case "deleteWordForward": - { - const match = value.substring(selectionStart).match(/^[^\w]*\w*/); - if (match) { - selEnd += match[0].length; - } - break; - } - case "deleteContentBackward": - if (selectionStart === selectionEnd) { - selStart -= 1; - } - break; - case "deleteContentForward": - if (selectionStart === selectionEnd) { - selEnd += 1; - } - break; - } - event.preventDefault(); - this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { - source: this, - detail: { - id, - name: "Keystroke", - value, - change: data || "", - willCommit: false, - selStart, - selEnd - } - }); - }); - } - this._setEventListeners(element, elementData, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.value); - } - if (blurListener) { - element.addEventListener("blur", blurListener); - } - if (this.data.comb) { - const fieldWidth = this.data.rect[2] - this.data.rect[0]; - const combWidth = fieldWidth / maxLen; - element.classList.add("comb"); - element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`; - } - } else { - element = document.createElement("div"); - element.textContent = this.data.fieldValue; - element.style.verticalAlign = "middle"; - element.style.display = "table-cell"; - if (this.data.hasOwnCanvas) { - element.hidden = true; - } - } - this._setTextStyle(element); - this._setBackgroundColor(element); - this._setDefaultPropertiesFromJS(element); - this.container.append(element); - return this.container; - } -} -class SignatureWidgetAnnotationElement extends WidgetAnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: !!parameters.data.hasOwnCanvas - }); - } -} -class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: parameters.renderForms - }); - } - render() { - const storage = this.annotationStorage; - const data = this.data; - const id = data.id; - let value = storage.getValue(id, { - value: data.exportValue === data.fieldValue - }).value; - if (typeof value === "string") { - value = value !== "Off"; - storage.setValue(id, { - value - }); - } - this.container.classList.add("buttonWidgetAnnotation", "checkBox"); - const element = document.createElement("input"); - GetElementsByNameSet.add(element); - element.setAttribute("data-element-id", id); - element.disabled = data.readOnly; - this._setRequired(element, this.data.required); - element.type = "checkbox"; - element.name = data.fieldName; - if (value) { - element.setAttribute("checked", true); - } - element.setAttribute("exportValue", data.exportValue); - element.tabIndex = DEFAULT_TAB_INDEX; - element.addEventListener("change", event => { - const { - name, - checked - } = event.target; - for (const checkbox of this._getElementsByName(name, id)) { - const curChecked = checked && checkbox.exportValue === data.exportValue; - if (checkbox.domElement) { - checkbox.domElement.checked = curChecked; - } - storage.setValue(checkbox.id, { - value: curChecked - }); - } - storage.setValue(id, { - value: checked - }); - }); - element.addEventListener("resetform", event => { - const defaultValue = data.defaultFieldValue || "Off"; - event.target.checked = defaultValue === data.exportValue; - }); - if (this.enableScripting && this.hasJSActions) { - element.addEventListener("updatefromsandbox", jsEvent => { - const actions = { - value(event) { - event.target.checked = event.detail.value !== "Off"; - storage.setValue(id, { - value: event.target.checked - }); - } - }; - this._dispatchEventFromSandbox(actions, jsEvent); - }); - this._setEventListeners(element, null, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.checked); - } - this._setBackgroundColor(element); - this._setDefaultPropertiesFromJS(element); - this.container.append(element); - return this.container; - } -} -class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: parameters.renderForms - }); - } - render() { - this.container.classList.add("buttonWidgetAnnotation", "radioButton"); - const storage = this.annotationStorage; - const data = this.data; - const id = data.id; - let value = storage.getValue(id, { - value: data.fieldValue === data.buttonValue - }).value; - if (typeof value === "string") { - value = value !== data.buttonValue; - storage.setValue(id, { - value - }); - } - if (value) { - for (const radio of this._getElementsByName(data.fieldName, id)) { - storage.setValue(radio.id, { - value: false - }); - } - } - const element = document.createElement("input"); - GetElementsByNameSet.add(element); - element.setAttribute("data-element-id", id); - element.disabled = data.readOnly; - this._setRequired(element, this.data.required); - element.type = "radio"; - element.name = data.fieldName; - if (value) { - element.setAttribute("checked", true); - } - element.tabIndex = DEFAULT_TAB_INDEX; - element.addEventListener("change", event => { - const { - name, - checked - } = event.target; - for (const radio of this._getElementsByName(name, id)) { - storage.setValue(radio.id, { - value: false - }); - } - storage.setValue(id, { - value: checked - }); - }); - element.addEventListener("resetform", event => { - const defaultValue = data.defaultFieldValue; - event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue; - }); - if (this.enableScripting && this.hasJSActions) { - const pdfButtonValue = data.buttonValue; - element.addEventListener("updatefromsandbox", jsEvent => { - const actions = { - value: event => { - const checked = pdfButtonValue === event.detail.value; - for (const radio of this._getElementsByName(event.target.name)) { - const curChecked = checked && radio.id === id; - if (radio.domElement) { - radio.domElement.checked = curChecked; - } - storage.setValue(radio.id, { - value: curChecked - }); - } - } - }; - this._dispatchEventFromSandbox(actions, jsEvent); - }); - this._setEventListeners(element, null, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.checked); - } - this._setBackgroundColor(element); - this._setDefaultPropertiesFromJS(element); - this.container.append(element); - return this.container; - } -} -class PushButtonWidgetAnnotationElement extends LinkAnnotationElement { - constructor(parameters) { - super(parameters, { - ignoreBorder: parameters.data.hasAppearance - }); - } - render() { - const container = super.render(); - container.classList.add("buttonWidgetAnnotation", "pushButton"); - const linkElement = container.lastChild; - if (this.enableScripting && this.hasJSActions && linkElement) { - this._setDefaultPropertiesFromJS(linkElement); - linkElement.addEventListener("updatefromsandbox", jsEvent => { - this._dispatchEventFromSandbox({}, jsEvent); - }); - } - return container; - } -} -class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: parameters.renderForms - }); - } - render() { - this.container.classList.add("choiceWidgetAnnotation"); - const storage = this.annotationStorage; - const id = this.data.id; - const storedData = storage.getValue(id, { - value: this.data.fieldValue - }); - const selectElement = document.createElement("select"); - GetElementsByNameSet.add(selectElement); - selectElement.setAttribute("data-element-id", id); - selectElement.disabled = this.data.readOnly; - this._setRequired(selectElement, this.data.required); - selectElement.name = this.data.fieldName; - selectElement.tabIndex = DEFAULT_TAB_INDEX; - let addAnEmptyEntry = this.data.combo && this.data.options.length > 0; - if (!this.data.combo) { - selectElement.size = this.data.options.length; - if (this.data.multiSelect) { - selectElement.multiple = true; - } - } - selectElement.addEventListener("resetform", event => { - const defaultValue = this.data.defaultFieldValue; - for (const option of selectElement.options) { - option.selected = option.value === defaultValue; - } - }); - for (const option of this.data.options) { - const optionElement = document.createElement("option"); - optionElement.textContent = option.displayValue; - optionElement.value = option.exportValue; - if (storedData.value.includes(option.exportValue)) { - optionElement.setAttribute("selected", true); - addAnEmptyEntry = false; - } - selectElement.append(optionElement); - } - let removeEmptyEntry = null; - if (addAnEmptyEntry) { - const noneOptionElement = document.createElement("option"); - noneOptionElement.value = " "; - noneOptionElement.setAttribute("hidden", true); - noneOptionElement.setAttribute("selected", true); - selectElement.prepend(noneOptionElement); - removeEmptyEntry = () => { - noneOptionElement.remove(); - selectElement.removeEventListener("input", removeEmptyEntry); - removeEmptyEntry = null; - }; - selectElement.addEventListener("input", removeEmptyEntry); - } - const getValue = isExport => { - const name = isExport ? "value" : "textContent"; - const { - options, - multiple - } = selectElement; - if (!multiple) { - return options.selectedIndex === -1 ? null : options[options.selectedIndex][name]; - } - return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]); - }; - let selectedValues = getValue(false); - const getItems = event => { - const options = event.target.options; - return Array.prototype.map.call(options, option => ({ - displayValue: option.textContent, - exportValue: option.value - })); - }; - if (this.enableScripting && this.hasJSActions) { - selectElement.addEventListener("updatefromsandbox", jsEvent => { - const actions = { - value(event) { - removeEmptyEntry?.(); - const value = event.detail.value; - const values = new Set(Array.isArray(value) ? value : [value]); - for (const option of selectElement.options) { - option.selected = values.has(option.value); - } - storage.setValue(id, { - value: getValue(true) - }); - selectedValues = getValue(false); - }, - multipleSelection(event) { - selectElement.multiple = true; - }, - remove(event) { - const options = selectElement.options; - const index = event.detail.remove; - options[index].selected = false; - selectElement.remove(index); - if (options.length > 0) { - const i = Array.prototype.findIndex.call(options, option => option.selected); - if (i === -1) { - options[0].selected = true; - } - } - storage.setValue(id, { - value: getValue(true), - items: getItems(event) - }); - selectedValues = getValue(false); - }, - clear(event) { - while (selectElement.length !== 0) { - selectElement.remove(0); - } - storage.setValue(id, { - value: null, - items: [] - }); - selectedValues = getValue(false); - }, - insert(event) { - const { - index, - displayValue, - exportValue - } = event.detail.insert; - const selectChild = selectElement.children[index]; - const optionElement = document.createElement("option"); - optionElement.textContent = displayValue; - optionElement.value = exportValue; - if (selectChild) { - selectChild.before(optionElement); - } else { - selectElement.append(optionElement); - } - storage.setValue(id, { - value: getValue(true), - items: getItems(event) - }); - selectedValues = getValue(false); - }, - items(event) { - const { - items - } = event.detail; - while (selectElement.length !== 0) { - selectElement.remove(0); - } - for (const item of items) { - const { - displayValue, - exportValue - } = item; - const optionElement = document.createElement("option"); - optionElement.textContent = displayValue; - optionElement.value = exportValue; - selectElement.append(optionElement); - } - if (selectElement.options.length > 0) { - selectElement.options[0].selected = true; - } - storage.setValue(id, { - value: getValue(true), - items: getItems(event) - }); - selectedValues = getValue(false); - }, - indices(event) { - const indices = new Set(event.detail.indices); - for (const option of event.target.options) { - option.selected = indices.has(option.index); - } - storage.setValue(id, { - value: getValue(true) - }); - selectedValues = getValue(false); - }, - editable(event) { - event.target.disabled = !event.detail.editable; - } - }; - this._dispatchEventFromSandbox(actions, jsEvent); - }); - selectElement.addEventListener("input", event => { - const exportValue = getValue(true); - const change = getValue(false); - storage.setValue(id, { - value: exportValue - }); - event.preventDefault(); - this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { - source: this, - detail: { - id, - name: "Keystroke", - value: selectedValues, - change, - changeEx: exportValue, - willCommit: false, - commitKey: 1, - keyDown: false - } - }); - }); - this._setEventListeners(selectElement, null, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"], ["input", "Action"], ["input", "Validate"]], event => event.target.value); - } else { - selectElement.addEventListener("input", function (event) { - storage.setValue(id, { - value: getValue(true) - }); - }); - } - if (this.data.combo) { - this._setTextStyle(selectElement); - } else {} - this._setBackgroundColor(selectElement); - this._setDefaultPropertiesFromJS(selectElement); - this.container.append(selectElement); - return this.container; - } -} -class PopupAnnotationElement extends AnnotationElement { - constructor(parameters) { - const { - data, - elements - } = parameters; - super(parameters, { - isRenderable: AnnotationElement._hasPopupData(data) - }); - this.elements = elements; - } - render() { - this.container.classList.add("popupAnnotation"); - const popup = new PopupElement({ - container: this.container, - color: this.data.color, - titleObj: this.data.titleObj, - modificationDate: this.data.modificationDate, - contentsObj: this.data.contentsObj, - richText: this.data.richText, - rect: this.data.rect, - parentRect: this.data.parentRect || null, - parent: this.parent, - elements: this.elements, - open: this.data.open - }); - const elementIds = []; - for (const element of this.elements) { - element.popup = popup; - elementIds.push(element.data.id); - element.addHighlightArea(); - } - this.container.setAttribute("aria-controls", elementIds.map(id => `${util.AnnotationPrefix}${id}`).join(",")); - return this.container; - } -} -class PopupElement { - #boundKeyDown = this.#keyDown.bind(this); - #boundHide = this.#hide.bind(this); - #boundShow = this.#show.bind(this); - #boundToggle = this.#toggle.bind(this); - #color = null; - #container = null; - #contentsObj = null; - #dateObj = null; - #elements = null; - #parent = null; - #parentRect = null; - #pinned = false; - #popup = null; - #rect = null; - #richText = null; - #titleObj = null; - #wasVisible = false; - constructor({ - container, - color, - elements, - titleObj, - modificationDate, - contentsObj, - richText, - parent, - rect, - parentRect, - open - }) { - this.#container = container; - this.#titleObj = titleObj; - this.#contentsObj = contentsObj; - this.#richText = richText; - this.#parent = parent; - this.#color = color; - this.#rect = rect; - this.#parentRect = parentRect; - this.#elements = elements; - this.#dateObj = display_utils.PDFDateString.toDateObject(modificationDate); - this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup()); - for (const element of this.trigger) { - element.addEventListener("click", this.#boundToggle); - element.addEventListener("mouseenter", this.#boundShow); - element.addEventListener("mouseleave", this.#boundHide); - element.classList.add("popupTriggerArea"); - } - for (const element of elements) { - element.container?.addEventListener("keydown", this.#boundKeyDown); - } - this.#container.hidden = true; - if (open) { - this.#toggle(); - } - } - render() { - if (this.#popup) { - return; - } - const { - page: { - view - }, - viewport: { - rawDims: { - pageWidth, - pageHeight, - pageX, - pageY - } - } - } = this.#parent; - const popup = this.#popup = document.createElement("div"); - popup.className = "popup"; - if (this.#color) { - const baseColor = popup.style.outlineColor = util.Util.makeHexColor(...this.#color); - if (CSS.supports("background-color", "color-mix(in srgb, red 30%, white)")) { - popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`; - } else { - const BACKGROUND_ENLIGHT = 0.7; - popup.style.backgroundColor = util.Util.makeHexColor(...this.#color.map(c => Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c))); - } - } - const header = document.createElement("span"); - header.className = "header"; - const title = document.createElement("h1"); - header.append(title); - ({ - dir: title.dir, - str: title.textContent - } = this.#titleObj); - popup.append(header); - if (this.#dateObj) { - const modificationDate = document.createElement("span"); - modificationDate.classList.add("popupDate"); - modificationDate.setAttribute("data-l10n-id", "pdfjs-annotation-date-string"); - modificationDate.setAttribute("data-l10n-args", JSON.stringify({ - date: this.#dateObj.toLocaleDateString(), - time: this.#dateObj.toLocaleTimeString() - })); - header.append(modificationDate); - } - const contentsObj = this.#contentsObj; - const richText = this.#richText; - if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) { - xfa_layer.XfaLayer.render({ - xfaHtml: richText.html, - intent: "richText", - div: popup - }); - popup.lastChild.classList.add("richText", "popupContent"); - } else { - const contents = this._formatContents(contentsObj); - popup.append(contents); - } - let useParentRect = !!this.#parentRect; - let rect = useParentRect ? this.#parentRect : this.#rect; - for (const element of this.#elements) { - if (!rect || util.Util.intersect(element.data.rect, rect) !== null) { - rect = element.data.rect; - useParentRect = true; - break; - } - } - const normalizedRect = util.Util.normalizeRect([rect[0], view[3] - rect[1] + view[1], rect[2], view[3] - rect[3] + view[1]]); - const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5; - const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0; - const popupLeft = normalizedRect[0] + parentWidth; - const popupTop = normalizedRect[1]; - const { - style - } = this.#container; - style.left = `${100 * (popupLeft - pageX) / pageWidth}%`; - style.top = `${100 * (popupTop - pageY) / pageHeight}%`; - this.#container.append(popup); - } - _formatContents({ - str, - dir - }) { - const p = document.createElement("p"); - p.classList.add("popupContent"); - p.dir = dir; - const lines = str.split(/(?:\r\n?|\n)/); - for (let i = 0, ii = lines.length; i < ii; ++i) { - const line = lines[i]; - p.append(document.createTextNode(line)); - if (i < ii - 1) { - p.append(document.createElement("br")); - } - } - return p; - } - #keyDown(event) { - if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) { - return; - } - if (event.key === "Enter" || event.key === "Escape" && this.#pinned) { - this.#toggle(); - } - } - #toggle() { - this.#pinned = !this.#pinned; - if (this.#pinned) { - this.#show(); - this.#container.addEventListener("click", this.#boundToggle); - this.#container.addEventListener("keydown", this.#boundKeyDown); - } else { - this.#hide(); - this.#container.removeEventListener("click", this.#boundToggle); - this.#container.removeEventListener("keydown", this.#boundKeyDown); - } - } - #show() { - if (!this.#popup) { - this.render(); - } - if (!this.isVisible) { - this.#container.hidden = false; - this.#container.style.zIndex = parseInt(this.#container.style.zIndex) + 1000; - } else if (this.#pinned) { - this.#container.classList.add("focused"); - } - } - #hide() { - this.#container.classList.remove("focused"); - if (this.#pinned || !this.isVisible) { - return; - } - this.#container.hidden = true; - this.#container.style.zIndex = parseInt(this.#container.style.zIndex) - 1000; - } - forceHide() { - this.#wasVisible = this.isVisible; - if (!this.#wasVisible) { - return; - } - this.#container.hidden = true; - } - maybeShow() { - if (!this.#wasVisible) { - return; - } - this.#wasVisible = false; - this.#container.hidden = false; - } - get isVisible() { - return this.#container.hidden === false; - } -} -class FreeTextAnnotationElement extends AnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true - }); - this.textContent = parameters.data.textContent; - this.textPosition = parameters.data.textPosition; - this.annotationEditorType = util.AnnotationEditorType.FREETEXT; - } - render() { - this.container.classList.add("freeTextAnnotation"); - if (this.textContent) { - const content = document.createElement("div"); - content.classList.add("annotationTextContent"); - content.setAttribute("role", "comment"); - for (const line of this.textContent) { - const lineSpan = document.createElement("span"); - lineSpan.textContent = line; - content.append(lineSpan); - } - this.container.append(content); - } - if (!this.data.popupRef && this.hasPopupData) { - this._createPopup(); - } - this._editOnDoubleClick(); - return this.container; - } - get _isEditable() { - return this.data.hasOwnCanvas; - } -} -class LineAnnotationElement extends AnnotationElement { - #line = null; - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true - }); - } - render() { - this.container.classList.add("lineAnnotation"); - const data = this.data; - const { - width, - height - } = getRectDims(data.rect); - const svg = this.svgFactory.create(width, height, true); - const line = this.#line = this.svgFactory.createElement("svg:line"); - line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]); - line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]); - line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]); - line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]); - line.setAttribute("stroke-width", data.borderStyle.width || 1); - line.setAttribute("stroke", "transparent"); - line.setAttribute("fill", "transparent"); - svg.append(line); - this.container.append(svg); - if (!data.popupRef && this.hasPopupData) { - this._createPopup(); - } - return this.container; - } - getElementsToTriggerPopup() { - return this.#line; - } - addHighlightArea() { - this.container.classList.add("highlightArea"); - } -} -class SquareAnnotationElement extends AnnotationElement { - #square = null; - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true - }); - } - render() { - this.container.classList.add("squareAnnotation"); - const data = this.data; - const { - width, - height - } = getRectDims(data.rect); - const svg = this.svgFactory.create(width, height, true); - const borderWidth = data.borderStyle.width; - const square = this.#square = this.svgFactory.createElement("svg:rect"); - square.setAttribute("x", borderWidth / 2); - square.setAttribute("y", borderWidth / 2); - square.setAttribute("width", width - borderWidth); - square.setAttribute("height", height - borderWidth); - square.setAttribute("stroke-width", borderWidth || 1); - square.setAttribute("stroke", "transparent"); - square.setAttribute("fill", "transparent"); - svg.append(square); - this.container.append(svg); - if (!data.popupRef && this.hasPopupData) { - this._createPopup(); - } - return this.container; - } - getElementsToTriggerPopup() { - return this.#square; - } - addHighlightArea() { - this.container.classList.add("highlightArea"); - } -} -class CircleAnnotationElement extends AnnotationElement { - #circle = null; - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true - }); - } - render() { - this.container.classList.add("circleAnnotation"); - const data = this.data; - const { - width, - height - } = getRectDims(data.rect); - const svg = this.svgFactory.create(width, height, true); - const borderWidth = data.borderStyle.width; - const circle = this.#circle = this.svgFactory.createElement("svg:ellipse"); - circle.setAttribute("cx", width / 2); - circle.setAttribute("cy", height / 2); - circle.setAttribute("rx", width / 2 - borderWidth / 2); - circle.setAttribute("ry", height / 2 - borderWidth / 2); - circle.setAttribute("stroke-width", borderWidth || 1); - circle.setAttribute("stroke", "transparent"); - circle.setAttribute("fill", "transparent"); - svg.append(circle); - this.container.append(svg); - if (!data.popupRef && this.hasPopupData) { - this._createPopup(); - } - return this.container; - } - getElementsToTriggerPopup() { - return this.#circle; - } - addHighlightArea() { - this.container.classList.add("highlightArea"); - } -} -class PolylineAnnotationElement extends AnnotationElement { - #polyline = null; - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true - }); - this.containerClassName = "polylineAnnotation"; - this.svgElementName = "svg:polyline"; - } - render() { - this.container.classList.add(this.containerClassName); - const data = this.data; - const { - width, - height - } = getRectDims(data.rect); - const svg = this.svgFactory.create(width, height, true); - let points = []; - for (const coordinate of data.vertices) { - const x = coordinate.x - data.rect[0]; - const y = data.rect[3] - coordinate.y; - points.push(x + "," + y); - } - points = points.join(" "); - const polyline = this.#polyline = this.svgFactory.createElement(this.svgElementName); - polyline.setAttribute("points", points); - polyline.setAttribute("stroke-width", data.borderStyle.width || 1); - polyline.setAttribute("stroke", "transparent"); - polyline.setAttribute("fill", "transparent"); - svg.append(polyline); - this.container.append(svg); - if (!data.popupRef && this.hasPopupData) { - this._createPopup(); - } - return this.container; - } - getElementsToTriggerPopup() { - return this.#polyline; - } - addHighlightArea() { - this.container.classList.add("highlightArea"); - } -} -class PolygonAnnotationElement extends PolylineAnnotationElement { - constructor(parameters) { - super(parameters); - this.containerClassName = "polygonAnnotation"; - this.svgElementName = "svg:polygon"; - } -} -class CaretAnnotationElement extends AnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true - }); - } - render() { - this.container.classList.add("caretAnnotation"); - if (!this.data.popupRef && this.hasPopupData) { - this._createPopup(); - } - return this.container; - } -} -class InkAnnotationElement extends AnnotationElement { - #polylines = []; - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true - }); - this.containerClassName = "inkAnnotation"; - this.svgElementName = "svg:polyline"; - this.annotationEditorType = util.AnnotationEditorType.INK; - } - render() { - this.container.classList.add(this.containerClassName); - const data = this.data; - const { - width, - height - } = getRectDims(data.rect); - const svg = this.svgFactory.create(width, height, true); - for (const inkList of data.inkLists) { - let points = []; - for (const coordinate of inkList) { - const x = coordinate.x - data.rect[0]; - const y = data.rect[3] - coordinate.y; - points.push(`${x},${y}`); - } - points = points.join(" "); - const polyline = this.svgFactory.createElement(this.svgElementName); - this.#polylines.push(polyline); - polyline.setAttribute("points", points); - polyline.setAttribute("stroke-width", data.borderStyle.width || 1); - polyline.setAttribute("stroke", "transparent"); - polyline.setAttribute("fill", "transparent"); - if (!data.popupRef && this.hasPopupData) { - this._createPopup(); - } - svg.append(polyline); - } - this.container.append(svg); - return this.container; - } - getElementsToTriggerPopup() { - return this.#polylines; - } - addHighlightArea() { - this.container.classList.add("highlightArea"); - } -} -class HighlightAnnotationElement extends AnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true, - createQuadrilaterals: true - }); - } - render() { - if (!this.data.popupRef && this.hasPopupData) { - this._createPopup(); - } - this.container.classList.add("highlightAnnotation"); - return this.container; - } -} -class UnderlineAnnotationElement extends AnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true, - createQuadrilaterals: true - }); - } - render() { - if (!this.data.popupRef && this.hasPopupData) { - this._createPopup(); - } - this.container.classList.add("underlineAnnotation"); - return this.container; - } -} -class SquigglyAnnotationElement extends AnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true, - createQuadrilaterals: true - }); - } - render() { - if (!this.data.popupRef && this.hasPopupData) { - this._createPopup(); - } - this.container.classList.add("squigglyAnnotation"); - return this.container; - } -} -class StrikeOutAnnotationElement extends AnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true, - createQuadrilaterals: true - }); - } - render() { - if (!this.data.popupRef && this.hasPopupData) { - this._createPopup(); - } - this.container.classList.add("strikeoutAnnotation"); - return this.container; - } -} -class StampAnnotationElement extends AnnotationElement { - constructor(parameters) { - super(parameters, { - isRenderable: true, - ignoreBorder: true - }); - } - render() { - this.container.classList.add("stampAnnotation"); - if (!this.data.popupRef && this.hasPopupData) { - this._createPopup(); - } - return this.container; - } -} -class FileAttachmentAnnotationElement extends AnnotationElement { - #trigger = null; - constructor(parameters) { - super(parameters, { - isRenderable: true - }); - const { - filename, - content - } = this.data.file; - this.filename = (0,display_utils.getFilenameFromUrl)(filename, true); - this.content = content; - this.linkService.eventBus?.dispatch("fileattachmentannotation", { - source: this, - filename, - content - }); - } - render() { - this.container.classList.add("fileAttachmentAnnotation"); - const { - container, - data - } = this; - let trigger; - if (data.hasAppearance || data.fillAlpha === 0) { - trigger = document.createElement("div"); - } else { - trigger = document.createElement("img"); - trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? "paperclip" : "pushpin"}.svg`; - if (data.fillAlpha && data.fillAlpha < 1) { - trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`; - } - } - trigger.addEventListener("dblclick", this.#download.bind(this)); - this.#trigger = trigger; - const { - isMac - } = util.FeatureTest.platform; - container.addEventListener("keydown", evt => { - if (evt.key === "Enter" && (isMac ? evt.metaKey : evt.ctrlKey)) { - this.#download(); - } - }); - if (!data.popupRef && this.hasPopupData) { - this._createPopup(); - } else { - trigger.classList.add("popupTriggerArea"); - } - container.append(trigger); - return container; - } - getElementsToTriggerPopup() { - return this.#trigger; - } - addHighlightArea() { - this.container.classList.add("highlightArea"); - } - #download() { - this.downloadManager?.openOrDownloadData(this.content, this.filename); - } -} -class AnnotationLayer { - #accessibilityManager = null; - #annotationCanvasMap = null; - #editableAnnotations = new Map(); - constructor({ - div, - accessibilityManager, - annotationCanvasMap, - annotationEditorUIManager, - page, - viewport - }) { - this.div = div; - this.#accessibilityManager = accessibilityManager; - this.#annotationCanvasMap = annotationCanvasMap; - this.page = page; - this.viewport = viewport; - this.zIndex = 0; - this._annotationEditorUIManager = annotationEditorUIManager; - } - #appendElement(element, id) { - const contentElement = element.firstChild || element; - contentElement.id = `${util.AnnotationPrefix}${id}`; - this.div.append(element); - this.#accessibilityManager?.moveElementInDOM(this.div, element, contentElement, false); - } - async render(params) { - const { - annotations - } = params; - const layer = this.div; - (0,display_utils.setLayerDimensions)(layer, this.viewport); - const popupToElements = new Map(); - const elementParams = { - data: null, - layer, - linkService: params.linkService, - downloadManager: params.downloadManager, - imageResourcesPath: params.imageResourcesPath || "", - renderForms: params.renderForms !== false, - svgFactory: new display_utils.DOMSVGFactory(), - annotationStorage: params.annotationStorage || new annotation_storage.AnnotationStorage(), - enableScripting: params.enableScripting === true, - hasJSActions: params.hasJSActions, - fieldObjects: params.fieldObjects, - parent: this, - elements: null - }; - for (const data of annotations) { - if (data.noHTML) { - continue; - } - const isPopupAnnotation = data.annotationType === util.AnnotationType.POPUP; - if (!isPopupAnnotation) { - const { - width, - height - } = getRectDims(data.rect); - if (width <= 0 || height <= 0) { - continue; - } - } else { - const elements = popupToElements.get(data.id); - if (!elements) { - continue; - } - elementParams.elements = elements; - } - elementParams.data = data; - const element = AnnotationElementFactory.create(elementParams); - if (!element.isRenderable) { - continue; - } - if (!isPopupAnnotation && data.popupRef) { - const elements = popupToElements.get(data.popupRef); - if (!elements) { - popupToElements.set(data.popupRef, [element]); - } else { - elements.push(element); - } - } - const rendered = element.render(); - if (data.hidden) { - rendered.style.visibility = "hidden"; - } - this.#appendElement(rendered, data.id); - if (element.annotationEditorType > 0) { - this.#editableAnnotations.set(element.data.id, element); - this._annotationEditorUIManager?.renderAnnotationElement(element); - } - } - this.#setAnnotationCanvasMap(); - } - update({ - viewport - }) { - const layer = this.div; - this.viewport = viewport; - (0,display_utils.setLayerDimensions)(layer, { - rotation: viewport.rotation - }); - this.#setAnnotationCanvasMap(); - layer.hidden = false; - } - #setAnnotationCanvasMap() { - if (!this.#annotationCanvasMap) { - return; - } - const layer = this.div; - for (const [id, canvas] of this.#annotationCanvasMap) { - const element = layer.querySelector(`[data-annotation-id="${id}"]`); - if (!element) { - continue; - } - canvas.className = "annotationContent"; - const { - firstChild - } = element; - if (!firstChild) { - element.append(canvas); - } else if (firstChild.nodeName === "CANVAS") { - firstChild.replaceWith(canvas); - } else if (!firstChild.classList.contains("annotationContent")) { - firstChild.before(canvas); - } else { - firstChild.after(canvas); - } - } - this.#annotationCanvasMap.clear(); - } - getEditableAnnotations() { - return Array.from(this.#editableAnnotations.values()); - } - getEditableAnnotation(id) { - return this.#editableAnnotations.get(id); - } -} - - -/***/ }), - -/***/ 792: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AnnotationStorage: () => (/* binding */ AnnotationStorage), -/* harmony export */ PrintAnnotationStorage: () => (/* binding */ PrintAnnotationStorage), -/* harmony export */ SerializableEmpty: () => (/* binding */ SerializableEmpty) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _editor_editor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(310); -/* harmony import */ var _shared_murmurhash3_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(651); - - - -const SerializableEmpty = Object.freeze({ - map: null, - hash: "", - transfer: undefined -}); -class AnnotationStorage { - #modified = false; - #storage = new Map(); - constructor() { - this.onSetModified = null; - this.onResetModified = null; - this.onAnnotationEditor = null; - } - getValue(key, defaultValue) { - const value = this.#storage.get(key); - if (value === undefined) { - return defaultValue; - } - return Object.assign(defaultValue, value); - } - getRawValue(key) { - return this.#storage.get(key); - } - remove(key) { - this.#storage.delete(key); - if (this.#storage.size === 0) { - this.resetModified(); - } - if (typeof this.onAnnotationEditor === "function") { - for (const value of this.#storage.values()) { - if (value instanceof _editor_editor_js__WEBPACK_IMPORTED_MODULE_1__.AnnotationEditor) { - return; - } - } - this.onAnnotationEditor(null); - } - } - setValue(key, value) { - const obj = this.#storage.get(key); - let modified = false; - if (obj !== undefined) { - for (const [entry, val] of Object.entries(value)) { - if (obj[entry] !== val) { - modified = true; - obj[entry] = val; - } - } - } else { - modified = true; - this.#storage.set(key, value); - } - if (modified) { - this.#setModified(); - } - if (value instanceof _editor_editor_js__WEBPACK_IMPORTED_MODULE_1__.AnnotationEditor && typeof this.onAnnotationEditor === "function") { - this.onAnnotationEditor(value.constructor._type); - } - } - has(key) { - return this.#storage.has(key); - } - getAll() { - return this.#storage.size > 0 ? (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.objectFromMap)(this.#storage) : null; - } - setAll(obj) { - for (const [key, val] of Object.entries(obj)) { - this.setValue(key, val); - } - } - get size() { - return this.#storage.size; - } - #setModified() { - if (!this.#modified) { - this.#modified = true; - if (typeof this.onSetModified === "function") { - this.onSetModified(); - } - } - } - resetModified() { - if (this.#modified) { - this.#modified = false; - if (typeof this.onResetModified === "function") { - this.onResetModified(); - } - } - } - get print() { - return new PrintAnnotationStorage(this); - } - get serializable() { - if (this.#storage.size === 0) { - return SerializableEmpty; - } - const map = new Map(), - hash = new _shared_murmurhash3_js__WEBPACK_IMPORTED_MODULE_2__.MurmurHash3_64(), - transfer = []; - const context = Object.create(null); - let hasBitmap = false; - for (const [key, val] of this.#storage) { - const serialized = val instanceof _editor_editor_js__WEBPACK_IMPORTED_MODULE_1__.AnnotationEditor ? val.serialize(false, context) : val; - if (serialized) { - map.set(key, serialized); - hash.update(`${key}:${JSON.stringify(serialized)}`); - hasBitmap ||= !!serialized.bitmap; - } - } - if (hasBitmap) { - for (const value of map.values()) { - if (value.bitmap) { - transfer.push(value.bitmap); - } - } - } - return map.size > 0 ? { - map, - hash: hash.hexdigest(), - transfer - } : SerializableEmpty; - } - get editorStats() { - let stats = null; - const typeToEditor = new Map(); - for (const value of this.#storage.values()) { - if (!(value instanceof _editor_editor_js__WEBPACK_IMPORTED_MODULE_1__.AnnotationEditor)) { - continue; - } - const editorStats = value.telemetryFinalData; - if (!editorStats) { - continue; - } - const { - type - } = editorStats; - if (!typeToEditor.has(type)) { - typeToEditor.set(type, Object.getPrototypeOf(value).constructor); - } - stats ||= Object.create(null); - const map = stats[type] ||= new Map(); - for (const [key, val] of Object.entries(editorStats)) { - if (key === "type") { - continue; - } - let counters = map.get(key); - if (!counters) { - counters = new Map(); - map.set(key, counters); - } - const count = counters.get(val) ?? 0; - counters.set(val, count + 1); - } - } - for (const [type, editor] of typeToEditor) { - stats[type] = editor.computeTelemetryFinalData(stats[type]); - } - return stats; - } -} -class PrintAnnotationStorage extends AnnotationStorage { - #serializable; - constructor(parent) { - super(); - const { - map, - hash, - transfer - } = parent.serializable; - const clone = structuredClone(map, transfer ? { - transfer - } : null); - this.#serializable = { - map: clone, - hash, - transfer - }; - } - get print() { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Should not call PrintAnnotationStorage.print"); - } - get serializable() { - return this.#serializable; - } -} - - -/***/ }), - -/***/ 831: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFDataRangeTransport: () => (/* binding */ PDFDataRangeTransport), -/* harmony export */ PDFWorker: () => (/* binding */ PDFWorker), -/* harmony export */ build: () => (/* binding */ build), -/* harmony export */ getDocument: () => (/* binding */ getDocument), -/* harmony export */ version: () => (/* binding */ version) -/* harmony export */ }); -/* unused harmony exports DefaultCanvasFactory, DefaultCMapReaderFactory, DefaultFilterFactory, DefaultStandardFontDataFactory, LoopbackPort, PDFDocumentLoadingTask, PDFDocumentProxy, PDFPageProxy, PDFWorkerUtil, RenderTask */ -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _annotation_storage_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(792); -/* harmony import */ var _display_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(419); -/* harmony import */ var _font_loader_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); -/* harmony import */ var display_node_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(573); -/* harmony import */ var _canvas_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(923); -/* harmony import */ var _text_layer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(814); -/* harmony import */ var _worker_options_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(164); -/* harmony import */ var _shared_message_handler_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(178); -/* harmony import */ var _metadata_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(62); -/* harmony import */ var _optional_content_config_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(626); -/* harmony import */ var _transport_stream_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(585); -/* harmony import */ var display_fetch_stream__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(94); -/* harmony import */ var display_network__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(457); -/* harmony import */ var display_node_stream__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(786); -/* harmony import */ var _xfa_text_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(50); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([display_node_utils__WEBPACK_IMPORTED_MODULE_4__, display_node_stream__WEBPACK_IMPORTED_MODULE_13__]); -([display_node_utils__WEBPACK_IMPORTED_MODULE_4__, display_node_stream__WEBPACK_IMPORTED_MODULE_13__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); - - - - - - - - - - - - - - - - -const DEFAULT_RANGE_CHUNK_SIZE = 65536; -const RENDERING_CANCELLED_TIMEOUT = 100; -const DELAYED_CLEANUP_TIMEOUT = 5000; -const DefaultCanvasFactory = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS ? display_node_utils__WEBPACK_IMPORTED_MODULE_4__.NodeCanvasFactory : _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.DOMCanvasFactory; -const DefaultCMapReaderFactory = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS ? display_node_utils__WEBPACK_IMPORTED_MODULE_4__.NodeCMapReaderFactory : _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.DOMCMapReaderFactory; -const DefaultFilterFactory = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS ? display_node_utils__WEBPACK_IMPORTED_MODULE_4__.NodeFilterFactory : _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.DOMFilterFactory; -const DefaultStandardFontDataFactory = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS ? display_node_utils__WEBPACK_IMPORTED_MODULE_4__.NodeStandardFontDataFactory : _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.DOMStandardFontDataFactory; -function getDocument(src) { - if (typeof src === "string" || src instanceof URL) { - src = { - url: src - }; - } else if (src instanceof ArrayBuffer || ArrayBuffer.isView(src)) { - src = { - data: src - }; - } - if (typeof src !== "object") { - throw new Error("Invalid parameter in getDocument, need parameter object."); - } - if (!src.url && !src.data && !src.range) { - throw new Error("Invalid parameter object: need either .data, .range or .url"); - } - const task = new PDFDocumentLoadingTask(); - const { - docId - } = task; - const url = src.url ? getUrlProp(src.url) : null; - const data = src.data ? getDataProp(src.data) : null; - const httpHeaders = src.httpHeaders || null; - const withCredentials = src.withCredentials === true; - const password = src.password ?? null; - const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null; - const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE; - let worker = src.worker instanceof PDFWorker ? src.worker : null; - const verbosity = src.verbosity; - const docBaseUrl = typeof src.docBaseUrl === "string" && !(0,_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.isDataScheme)(src.docBaseUrl) ? src.docBaseUrl : null; - const cMapUrl = typeof src.cMapUrl === "string" ? src.cMapUrl : null; - const cMapPacked = src.cMapPacked !== false; - const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory; - const standardFontDataUrl = typeof src.standardFontDataUrl === "string" ? src.standardFontDataUrl : null; - const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory; - const ignoreErrors = src.stopAtErrors !== true; - const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1; - const isEvalSupported = src.isEvalSupported !== false; - const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === "boolean" ? src.isOffscreenCanvasSupported : !_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS; - const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1; - const disableFontFace = typeof src.disableFontFace === "boolean" ? src.disableFontFace : _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS; - const fontExtraProperties = src.fontExtraProperties === true; - const enableXfa = src.enableXfa === true; - const ownerDocument = src.ownerDocument || globalThis.document; - const disableRange = src.disableRange === true; - const disableStream = src.disableStream === true; - const disableAutoFetch = src.disableAutoFetch === true; - const pdfBug = src.pdfBug === true; - const length = rangeTransport ? rangeTransport.length : src.length ?? NaN; - const useSystemFonts = typeof src.useSystemFonts === "boolean" ? src.useSystemFonts : !_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS && !disableFontFace; - const useWorkerFetch = typeof src.useWorkerFetch === "boolean" ? src.useWorkerFetch : CMapReaderFactory === _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.DOMCMapReaderFactory && StandardFontDataFactory === _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.DOMStandardFontDataFactory && cMapUrl && standardFontDataUrl && (0,_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.isValidFetchUrl)(cMapUrl, document.baseURI) && (0,_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.isValidFetchUrl)(standardFontDataUrl, document.baseURI); - const canvasFactory = src.canvasFactory || new DefaultCanvasFactory({ - ownerDocument - }); - const filterFactory = src.filterFactory || new DefaultFilterFactory({ - docId, - ownerDocument - }); - const styleElement = null; - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.setVerbosityLevel)(verbosity); - const transportFactory = { - canvasFactory, - filterFactory - }; - if (!useWorkerFetch) { - transportFactory.cMapReaderFactory = new CMapReaderFactory({ - baseUrl: cMapUrl, - isCompressed: cMapPacked - }); - transportFactory.standardFontDataFactory = new StandardFontDataFactory({ - baseUrl: standardFontDataUrl - }); - } - if (!worker) { - const workerParams = { - verbosity, - port: _worker_options_js__WEBPACK_IMPORTED_MODULE_14__.GlobalWorkerOptions.workerPort - }; - worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams); - task._worker = worker; - } - const fetchDocParams = { - docId, - apiVersion: "4.2.67", - data, - password, - disableAutoFetch, - rangeChunkSize, - length, - docBaseUrl, - enableXfa, - evaluatorOptions: { - maxImageSize, - disableFontFace, - ignoreErrors, - isEvalSupported, - isOffscreenCanvasSupported, - canvasMaxAreaInBytes, - fontExtraProperties, - useSystemFonts, - cMapUrl: useWorkerFetch ? cMapUrl : null, - standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null - } - }; - const transportParams = { - ignoreErrors, - disableFontFace, - fontExtraProperties, - enableXfa, - ownerDocument, - disableAutoFetch, - pdfBug, - styleElement - }; - worker.promise.then(function () { - if (task.destroyed) { - throw new Error("Loading aborted"); - } - const workerIdPromise = _fetchDocument(worker, fetchDocParams); - const networkStreamPromise = new Promise(function (resolve) { - let networkStream; - if (rangeTransport) { - networkStream = new _transport_stream_js__WEBPACK_IMPORTED_MODULE_10__.PDFDataTransportStream(rangeTransport, { - disableRange, - disableStream - }); - } else if (!data) { - const createPDFNetworkStream = params => { - if (_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS) { - const isFetchSupported = function () { - return typeof fetch !== "undefined" && typeof Response !== "undefined" && "body" in Response.prototype; - }; - return isFetchSupported() && (0,_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.isValidFetchUrl)(params.url) ? new display_fetch_stream__WEBPACK_IMPORTED_MODULE_11__.PDFFetchStream(params) : new display_node_stream__WEBPACK_IMPORTED_MODULE_13__.PDFNodeStream(params); - } - return (0,_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.isValidFetchUrl)(params.url) ? new display_fetch_stream__WEBPACK_IMPORTED_MODULE_11__.PDFFetchStream(params) : new display_network__WEBPACK_IMPORTED_MODULE_12__.PDFNetworkStream(params); - }; - networkStream = createPDFNetworkStream({ - url, - length, - httpHeaders, - withCredentials, - rangeChunkSize, - disableRange, - disableStream - }); - } - resolve(networkStream); - }); - return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) { - if (task.destroyed) { - throw new Error("Loading aborted"); - } - const messageHandler = new _shared_message_handler_js__WEBPACK_IMPORTED_MODULE_7__.MessageHandler(docId, workerId, worker.port); - const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory); - task._transport = transport; - messageHandler.send("Ready", null); - }); - }).catch(task._capability.reject); - return task; -} -async function _fetchDocument(worker, source) { - if (worker.destroyed) { - throw new Error("Worker was destroyed"); - } - const workerId = await worker.messageHandler.sendWithPromise("GetDocRequest", source, source.data ? [source.data.buffer] : null); - if (worker.destroyed) { - throw new Error("Worker was destroyed"); - } - return workerId; -} -function getUrlProp(val) { - if (val instanceof URL) { - return val.href; - } - try { - return new URL(val, window.location).href; - } catch { - if (_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS && typeof val === "string") { - return val; - } - } - throw new Error("Invalid PDF url data: " + "either string or URL-object is expected in the url property."); -} -function getDataProp(val) { - if (_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS && typeof Buffer !== "undefined" && val instanceof Buffer) { - throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`."); - } - if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) { - return val; - } - if (typeof val === "string") { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.stringToBytes)(val); - } - if (val instanceof ArrayBuffer || ArrayBuffer.isView(val) || typeof val === "object" && !isNaN(val?.length)) { - return new Uint8Array(val); - } - throw new Error("Invalid PDF binary data: either TypedArray, " + "string, or array-like object is expected in the data property."); -} -function isRefProxy(ref) { - return typeof ref === "object" && Number.isInteger(ref?.num) && ref.num >= 0 && Number.isInteger(ref?.gen) && ref.gen >= 0; -} -class PDFDocumentLoadingTask { - static #docId = 0; - constructor() { - this._capability = Promise.withResolvers(); - this._transport = null; - this._worker = null; - this.docId = `d${PDFDocumentLoadingTask.#docId++}`; - this.destroyed = false; - this.onPassword = null; - this.onProgress = null; - } - get promise() { - return this._capability.promise; - } - async destroy() { - this.destroyed = true; - try { - if (this._worker?.port) { - this._worker._pendingDestroy = true; - } - await this._transport?.destroy(); - } catch (ex) { - if (this._worker?.port) { - delete this._worker._pendingDestroy; - } - throw ex; - } - this._transport = null; - if (this._worker) { - this._worker.destroy(); - this._worker = null; - } - } -} -class PDFDataRangeTransport { - constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) { - this.length = length; - this.initialData = initialData; - this.progressiveDone = progressiveDone; - this.contentDispositionFilename = contentDispositionFilename; - this._rangeListeners = []; - this._progressListeners = []; - this._progressiveReadListeners = []; - this._progressiveDoneListeners = []; - this._readyCapability = Promise.withResolvers(); - } - addRangeListener(listener) { - this._rangeListeners.push(listener); - } - addProgressListener(listener) { - this._progressListeners.push(listener); - } - addProgressiveReadListener(listener) { - this._progressiveReadListeners.push(listener); - } - addProgressiveDoneListener(listener) { - this._progressiveDoneListeners.push(listener); - } - onDataRange(begin, chunk) { - for (const listener of this._rangeListeners) { - listener(begin, chunk); - } - } - onDataProgress(loaded, total) { - this._readyCapability.promise.then(() => { - for (const listener of this._progressListeners) { - listener(loaded, total); - } - }); - } - onDataProgressiveRead(chunk) { - this._readyCapability.promise.then(() => { - for (const listener of this._progressiveReadListeners) { - listener(chunk); - } - }); - } - onDataProgressiveDone() { - this._readyCapability.promise.then(() => { - for (const listener of this._progressiveDoneListeners) { - listener(); - } - }); - } - transportReady() { - this._readyCapability.resolve(); - } - requestDataRange(begin, end) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange"); - } - abort() {} -} -class PDFDocumentProxy { - constructor(pdfInfo, transport) { - this._pdfInfo = pdfInfo; - this._transport = transport; - } - get annotationStorage() { - return this._transport.annotationStorage; - } - get filterFactory() { - return this._transport.filterFactory; - } - get numPages() { - return this._pdfInfo.numPages; - } - get fingerprints() { - return this._pdfInfo.fingerprints; - } - get isPureXfa() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "isPureXfa", !!this._transport._htmlForXfa); - } - get allXfaHtml() { - return this._transport._htmlForXfa; - } - getPage(pageNumber) { - return this._transport.getPage(pageNumber); - } - getPageIndex(ref) { - return this._transport.getPageIndex(ref); - } - getDestinations() { - return this._transport.getDestinations(); - } - getDestination(id) { - return this._transport.getDestination(id); - } - getPageLabels() { - return this._transport.getPageLabels(); - } - getPageLayout() { - return this._transport.getPageLayout(); - } - getPageMode() { - return this._transport.getPageMode(); - } - getViewerPreferences() { - return this._transport.getViewerPreferences(); - } - getOpenAction() { - return this._transport.getOpenAction(); - } - getAttachments() { - return this._transport.getAttachments(); - } - getJSActions() { - return this._transport.getDocJSActions(); - } - getOutline() { - return this._transport.getOutline(); - } - getOptionalContentConfig({ - intent = "display" - } = {}) { - const { - renderingIntent - } = this._transport.getRenderingIntent(intent); - return this._transport.getOptionalContentConfig(renderingIntent); - } - getPermissions() { - return this._transport.getPermissions(); - } - getMetadata() { - return this._transport.getMetadata(); - } - getMarkInfo() { - return this._transport.getMarkInfo(); - } - getData() { - return this._transport.getData(); - } - saveDocument() { - return this._transport.saveDocument(); - } - getDownloadInfo() { - return this._transport.downloadInfoCapability.promise; - } - cleanup(keepLoadedFonts = false) { - return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa); - } - destroy() { - return this.loadingTask.destroy(); - } - cachedPageNumber(ref) { - return this._transport.cachedPageNumber(ref); - } - get loadingParams() { - return this._transport.loadingParams; - } - get loadingTask() { - return this._transport.loadingTask; - } - getFieldObjects() { - return this._transport.getFieldObjects(); - } - hasJSActions() { - return this._transport.hasJSActions(); - } - getCalculationOrderIds() { - return this._transport.getCalculationOrderIds(); - } -} -class PDFPageProxy { - #delayedCleanupTimeout = null; - #pendingCleanup = false; - constructor(pageIndex, pageInfo, transport, pdfBug = false) { - this._pageIndex = pageIndex; - this._pageInfo = pageInfo; - this._transport = transport; - this._stats = pdfBug ? new _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.StatTimer() : null; - this._pdfBug = pdfBug; - this.commonObjs = transport.commonObjs; - this.objs = new PDFObjects(); - this._maybeCleanupAfterRender = false; - this._intentStates = new Map(); - this.destroyed = false; - } - get pageNumber() { - return this._pageIndex + 1; - } - get rotate() { - return this._pageInfo.rotate; - } - get ref() { - return this._pageInfo.ref; - } - get userUnit() { - return this._pageInfo.userUnit; - } - get view() { - return this._pageInfo.view; - } - getViewport({ - scale, - rotation = this.rotate, - offsetX = 0, - offsetY = 0, - dontFlip = false - } = {}) { - return new _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.PageViewport({ - viewBox: this.view, - scale, - rotation, - offsetX, - offsetY, - dontFlip - }); - } - getAnnotations({ - intent = "display" - } = {}) { - const { - renderingIntent - } = this._transport.getRenderingIntent(intent); - return this._transport.getAnnotations(this._pageIndex, renderingIntent); - } - getJSActions() { - return this._transport.getPageJSActions(this._pageIndex); - } - get filterFactory() { - return this._transport.filterFactory; - } - get isPureXfa() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "isPureXfa", !!this._transport._htmlForXfa); - } - async getXfa() { - return this._transport._htmlForXfa?.children[this._pageIndex] || null; - } - render({ - canvasContext, - viewport, - intent = "display", - annotationMode = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE, - transform = null, - background = null, - optionalContentConfigPromise = null, - annotationCanvasMap = null, - pageColors = null, - printAnnotationStorage = null - }) { - this._stats?.time("Overall"); - const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage); - const { - renderingIntent, - cacheKey - } = intentArgs; - this.#pendingCleanup = false; - this.#abortDelayedCleanup(); - optionalContentConfigPromise ||= this._transport.getOptionalContentConfig(renderingIntent); - let intentState = this._intentStates.get(cacheKey); - if (!intentState) { - intentState = Object.create(null); - this._intentStates.set(cacheKey, intentState); - } - if (intentState.streamReaderCancelTimeout) { - clearTimeout(intentState.streamReaderCancelTimeout); - intentState.streamReaderCancelTimeout = null; - } - const intentPrint = !!(renderingIntent & _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.PRINT); - if (!intentState.displayReadyCapability) { - intentState.displayReadyCapability = Promise.withResolvers(); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false, - separateAnnots: null - }; - this._stats?.time("Page Request"); - this._pumpOperatorList(intentArgs); - } - const complete = error => { - intentState.renderTasks.delete(internalRenderTask); - if (this._maybeCleanupAfterRender || intentPrint) { - this.#pendingCleanup = true; - } - this.#tryCleanup(!intentPrint); - if (error) { - internalRenderTask.capability.reject(error); - this._abortOperatorList({ - intentState, - reason: error instanceof Error ? error : new Error(error) - }); - } else { - internalRenderTask.capability.resolve(); - } - this._stats?.timeEnd("Rendering"); - this._stats?.timeEnd("Overall"); - }; - const internalRenderTask = new InternalRenderTask({ - callback: complete, - params: { - canvasContext, - viewport, - transform, - background - }, - objs: this.objs, - commonObjs: this.commonObjs, - annotationCanvasMap, - operatorList: intentState.operatorList, - pageIndex: this._pageIndex, - canvasFactory: this._transport.canvasFactory, - filterFactory: this._transport.filterFactory, - useRequestAnimationFrame: !intentPrint, - pdfBug: this._pdfBug, - pageColors - }); - (intentState.renderTasks ||= new Set()).add(internalRenderTask); - const renderTask = internalRenderTask.task; - Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => { - if (this.destroyed) { - complete(); - return; - } - this._stats?.time("Rendering"); - if (!(optionalContentConfig.renderingIntent & renderingIntent)) { - throw new Error("Must use the same `intent`-argument when calling the `PDFPageProxy.render` " + "and `PDFDocumentProxy.getOptionalContentConfig` methods."); - } - internalRenderTask.initializeGraphics({ - transparency, - optionalContentConfig - }); - internalRenderTask.operatorListChanged(); - }).catch(complete); - return renderTask; - } - getOperatorList({ - intent = "display", - annotationMode = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE, - printAnnotationStorage = null - } = {}) { - function operatorListChanged() { - if (intentState.operatorList.lastChunk) { - intentState.opListReadCapability.resolve(intentState.operatorList); - intentState.renderTasks.delete(opListTask); - } - } - const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true); - let intentState = this._intentStates.get(intentArgs.cacheKey); - if (!intentState) { - intentState = Object.create(null); - this._intentStates.set(intentArgs.cacheKey, intentState); - } - let opListTask; - if (!intentState.opListReadCapability) { - opListTask = Object.create(null); - opListTask.operatorListChanged = operatorListChanged; - intentState.opListReadCapability = Promise.withResolvers(); - (intentState.renderTasks ||= new Set()).add(opListTask); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false, - separateAnnots: null - }; - this._stats?.time("Page Request"); - this._pumpOperatorList(intentArgs); - } - return intentState.opListReadCapability.promise; - } - streamTextContent({ - includeMarkedContent = false, - disableNormalization = false - } = {}) { - const TEXT_CONTENT_CHUNK_SIZE = 100; - return this._transport.messageHandler.sendWithStream("GetTextContent", { - pageIndex: this._pageIndex, - includeMarkedContent: includeMarkedContent === true, - disableNormalization: disableNormalization === true - }, { - highWaterMark: TEXT_CONTENT_CHUNK_SIZE, - size(textContent) { - return textContent.items.length; - } - }); - } - getTextContent(params = {}) { - if (this._transport._htmlForXfa) { - return this.getXfa().then(xfa => _xfa_text_js__WEBPACK_IMPORTED_MODULE_15__.XfaText.textContent(xfa)); - } - const readableStream = this.streamTextContent(params); - return new Promise(function (resolve, reject) { - function pump() { - reader.read().then(function ({ - value, - done - }) { - if (done) { - resolve(textContent); - return; - } - Object.assign(textContent.styles, value.styles); - textContent.items.push(...value.items); - pump(); - }, reject); - } - const reader = readableStream.getReader(); - const textContent = { - items: [], - styles: Object.create(null) - }; - pump(); - }); - } - getStructTree() { - return this._transport.getStructTree(this._pageIndex); - } - _destroy() { - this.destroyed = true; - const waitOn = []; - for (const intentState of this._intentStates.values()) { - this._abortOperatorList({ - intentState, - reason: new Error("Page was destroyed."), - force: true - }); - if (intentState.opListReadCapability) { - continue; - } - for (const internalRenderTask of intentState.renderTasks) { - waitOn.push(internalRenderTask.completed); - internalRenderTask.cancel(); - } - } - this.objs.clear(); - this.#pendingCleanup = false; - this.#abortDelayedCleanup(); - return Promise.all(waitOn); - } - cleanup(resetStats = false) { - this.#pendingCleanup = true; - const success = this.#tryCleanup(false); - if (resetStats && success) { - this._stats &&= new _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.StatTimer(); - } - return success; - } - #tryCleanup(delayed = false) { - this.#abortDelayedCleanup(); - if (!this.#pendingCleanup || this.destroyed) { - return false; - } - if (delayed) { - this.#delayedCleanupTimeout = setTimeout(() => { - this.#delayedCleanupTimeout = null; - this.#tryCleanup(false); - }, DELAYED_CLEANUP_TIMEOUT); - return false; - } - for (const { - renderTasks, - operatorList - } of this._intentStates.values()) { - if (renderTasks.size > 0 || !operatorList.lastChunk) { - return false; - } - } - this._intentStates.clear(); - this.objs.clear(); - this.#pendingCleanup = false; - return true; - } - #abortDelayedCleanup() { - if (this.#delayedCleanupTimeout) { - clearTimeout(this.#delayedCleanupTimeout); - this.#delayedCleanupTimeout = null; - } - } - _startRenderPage(transparency, cacheKey) { - const intentState = this._intentStates.get(cacheKey); - if (!intentState) { - return; - } - this._stats?.timeEnd("Page Request"); - intentState.displayReadyCapability?.resolve(transparency); - } - _renderPageChunk(operatorListChunk, intentState) { - for (let i = 0, ii = operatorListChunk.length; i < ii; i++) { - intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); - intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); - } - intentState.operatorList.lastChunk = operatorListChunk.lastChunk; - intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots; - for (const internalRenderTask of intentState.renderTasks) { - internalRenderTask.operatorListChanged(); - } - if (operatorListChunk.lastChunk) { - this.#tryCleanup(true); - } - } - _pumpOperatorList({ - renderingIntent, - cacheKey, - annotationStorageSerializable - }) { - const { - map, - transfer - } = annotationStorageSerializable; - const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", { - pageIndex: this._pageIndex, - intent: renderingIntent, - cacheKey, - annotationStorage: map - }, transfer); - const reader = readableStream.getReader(); - const intentState = this._intentStates.get(cacheKey); - intentState.streamReader = reader; - const pump = () => { - reader.read().then(({ - value, - done - }) => { - if (done) { - intentState.streamReader = null; - return; - } - if (this._transport.destroyed) { - return; - } - this._renderPageChunk(value, intentState); - pump(); - }, reason => { - intentState.streamReader = null; - if (this._transport.destroyed) { - return; - } - if (intentState.operatorList) { - intentState.operatorList.lastChunk = true; - for (const internalRenderTask of intentState.renderTasks) { - internalRenderTask.operatorListChanged(); - } - this.#tryCleanup(true); - } - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.reject(reason); - } else if (intentState.opListReadCapability) { - intentState.opListReadCapability.reject(reason); - } else { - throw reason; - } - }); - }; - pump(); - } - _abortOperatorList({ - intentState, - reason, - force = false - }) { - if (!intentState.streamReader) { - return; - } - if (intentState.streamReaderCancelTimeout) { - clearTimeout(intentState.streamReaderCancelTimeout); - intentState.streamReaderCancelTimeout = null; - } - if (!force) { - if (intentState.renderTasks.size > 0) { - return; - } - if (reason instanceof _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.RenderingCancelledException) { - let delay = RENDERING_CANCELLED_TIMEOUT; - if (reason.extraDelay > 0 && reason.extraDelay < 1000) { - delay += reason.extraDelay; - } - intentState.streamReaderCancelTimeout = setTimeout(() => { - intentState.streamReaderCancelTimeout = null; - this._abortOperatorList({ - intentState, - reason, - force: true - }); - }, delay); - return; - } - } - intentState.streamReader.cancel(new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AbortException(reason.message)).catch(() => {}); - intentState.streamReader = null; - if (this._transport.destroyed) { - return; - } - for (const [curCacheKey, curIntentState] of this._intentStates) { - if (curIntentState === intentState) { - this._intentStates.delete(curCacheKey); - break; - } - } - this.cleanup(); - } - get stats() { - return this._stats; - } -} -class LoopbackPort { - #listeners = new Set(); - #deferred = Promise.resolve(); - postMessage(obj, transfer) { - const event = { - data: structuredClone(obj, transfer ? { - transfer - } : null) - }; - this.#deferred.then(() => { - for (const listener of this.#listeners) { - listener.call(this, event); - } - }); - } - addEventListener(name, listener) { - this.#listeners.add(listener); - } - removeEventListener(name, listener) { - this.#listeners.delete(listener); - } - terminate() { - this.#listeners.clear(); - } -} -const PDFWorkerUtil = { - isWorkerDisabled: false, - fakeWorkerId: 0 -}; -{ - if (_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS) { - PDFWorkerUtil.isWorkerDisabled = true; - _worker_options_js__WEBPACK_IMPORTED_MODULE_14__.GlobalWorkerOptions.workerSrc ||= "./pdf.worker.mjs"; - } - PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) { - let base; - try { - base = new URL(baseUrl); - if (!base.origin || base.origin === "null") { - return false; - } - } catch { - return false; - } - const other = new URL(otherUrl, base); - return base.origin === other.origin; - }; - PDFWorkerUtil.createCDNWrapper = function (url) { - const wrapper = `await import("${url}");`; - return URL.createObjectURL(new Blob([wrapper], { - type: "text/javascript" - })); - }; -} -class PDFWorker { - static #workerPorts; - constructor({ - name = null, - port = null, - verbosity = (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.getVerbosityLevel)() - } = {}) { - this.name = name; - this.destroyed = false; - this.verbosity = verbosity; - this._readyCapability = Promise.withResolvers(); - this._port = null; - this._webWorker = null; - this._messageHandler = null; - if (port) { - if (PDFWorker.#workerPorts?.has(port)) { - throw new Error("Cannot use more than one PDFWorker per port."); - } - (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this); - this._initializeFromPort(port); - return; - } - this._initialize(); - } - get promise() { - return this._readyCapability.promise; - } - get port() { - return this._port; - } - get messageHandler() { - return this._messageHandler; - } - _initializeFromPort(port) { - this._port = port; - this._messageHandler = new _shared_message_handler_js__WEBPACK_IMPORTED_MODULE_7__.MessageHandler("main", "worker", port); - this._messageHandler.on("ready", function () {}); - this._readyCapability.resolve(); - this._messageHandler.send("configure", { - verbosity: this.verbosity - }); - } - _initialize() { - if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker.#mainThreadWorkerMessageHandler) { - let { - workerSrc - } = PDFWorker; - try { - if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) { - workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href); - } - const worker = new Worker(workerSrc, { - type: "module" - }); - const messageHandler = new _shared_message_handler_js__WEBPACK_IMPORTED_MODULE_7__.MessageHandler("main", "worker", worker); - const terminateEarly = () => { - worker.removeEventListener("error", onWorkerError); - messageHandler.destroy(); - worker.terminate(); - if (this.destroyed) { - this._readyCapability.reject(new Error("Worker was destroyed")); - } else { - this._setupFakeWorker(); - } - }; - const onWorkerError = () => { - if (!this._webWorker) { - terminateEarly(); - } - }; - worker.addEventListener("error", onWorkerError); - messageHandler.on("test", data => { - worker.removeEventListener("error", onWorkerError); - if (this.destroyed) { - terminateEarly(); - return; - } - if (data) { - this._messageHandler = messageHandler; - this._port = worker; - this._webWorker = worker; - this._readyCapability.resolve(); - messageHandler.send("configure", { - verbosity: this.verbosity - }); - } else { - this._setupFakeWorker(); - messageHandler.destroy(); - worker.terminate(); - } - }); - messageHandler.on("ready", data => { - worker.removeEventListener("error", onWorkerError); - if (this.destroyed) { - terminateEarly(); - return; - } - try { - sendTest(); - } catch { - this._setupFakeWorker(); - } - }); - const sendTest = () => { - const testObj = new Uint8Array(); - messageHandler.send("test", testObj, [testObj.buffer]); - }; - sendTest(); - return; - } catch { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.info)("The worker has been disabled."); - } - } - this._setupFakeWorker(); - } - _setupFakeWorker() { - if (!PDFWorkerUtil.isWorkerDisabled) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)("Setting up fake worker."); - PDFWorkerUtil.isWorkerDisabled = true; - } - PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => { - if (this.destroyed) { - this._readyCapability.reject(new Error("Worker was destroyed")); - return; - } - const port = new LoopbackPort(); - this._port = port; - const id = `fake${PDFWorkerUtil.fakeWorkerId++}`; - const workerHandler = new _shared_message_handler_js__WEBPACK_IMPORTED_MODULE_7__.MessageHandler(id + "_worker", id, port); - WorkerMessageHandler.setup(workerHandler, port); - const messageHandler = new _shared_message_handler_js__WEBPACK_IMPORTED_MODULE_7__.MessageHandler(id, id + "_worker", port); - this._messageHandler = messageHandler; - this._readyCapability.resolve(); - messageHandler.send("configure", { - verbosity: this.verbosity - }); - }).catch(reason => { - this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`)); - }); - } - destroy() { - this.destroyed = true; - if (this._webWorker) { - this._webWorker.terminate(); - this._webWorker = null; - } - PDFWorker.#workerPorts?.delete(this._port); - this._port = null; - if (this._messageHandler) { - this._messageHandler.destroy(); - this._messageHandler = null; - } - } - static fromPort(params) { - if (!params?.port) { - throw new Error("PDFWorker.fromPort - invalid method signature."); - } - const cachedPort = this.#workerPorts?.get(params.port); - if (cachedPort) { - if (cachedPort._pendingDestroy) { - throw new Error("PDFWorker.fromPort - the worker is being destroyed.\n" + "Please remember to await `PDFDocumentLoadingTask.destroy()`-calls."); - } - return cachedPort; - } - return new PDFWorker(params); - } - static get workerSrc() { - if (_worker_options_js__WEBPACK_IMPORTED_MODULE_14__.GlobalWorkerOptions.workerSrc) { - return _worker_options_js__WEBPACK_IMPORTED_MODULE_14__.GlobalWorkerOptions.workerSrc; - } - throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); - } - static get #mainThreadWorkerMessageHandler() { - try { - return globalThis.pdfjsWorker?.WorkerMessageHandler || null; - } catch { - return null; - } - } - static get _setupFakeWorkerGlobal() { - const loader = async () => { - if (this.#mainThreadWorkerMessageHandler) { - return this.#mainThreadWorkerMessageHandler; - } - const worker = await import( /*webpackIgnore: true*/this.workerSrc); - return worker.WorkerMessageHandler; - }; - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_setupFakeWorkerGlobal", loader()); - } -} -class WorkerTransport { - #methodPromises = new Map(); - #pageCache = new Map(); - #pagePromises = new Map(); - #pageRefCache = new Map(); - #passwordCapability = null; - constructor(messageHandler, loadingTask, networkStream, params, factory) { - this.messageHandler = messageHandler; - this.loadingTask = loadingTask; - this.commonObjs = new PDFObjects(); - this.fontLoader = new _font_loader_js__WEBPACK_IMPORTED_MODULE_3__.FontLoader({ - ownerDocument: params.ownerDocument, - styleElement: params.styleElement - }); - this._params = params; - this.canvasFactory = factory.canvasFactory; - this.filterFactory = factory.filterFactory; - this.cMapReaderFactory = factory.cMapReaderFactory; - this.standardFontDataFactory = factory.standardFontDataFactory; - this.destroyed = false; - this.destroyCapability = null; - this._networkStream = networkStream; - this._fullReader = null; - this._lastProgress = null; - this.downloadInfoCapability = Promise.withResolvers(); - this.setupMessageHandler(); - } - #cacheSimpleMethod(name, data = null) { - const cachedPromise = this.#methodPromises.get(name); - if (cachedPromise) { - return cachedPromise; - } - const promise = this.messageHandler.sendWithPromise(name, data); - this.#methodPromises.set(name, promise); - return promise; - } - get annotationStorage() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "annotationStorage", new _annotation_storage_js__WEBPACK_IMPORTED_MODULE_1__.AnnotationStorage()); - } - getRenderingIntent(intent, annotationMode = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) { - let renderingIntent = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.DISPLAY; - let annotationStorageSerializable = _annotation_storage_js__WEBPACK_IMPORTED_MODULE_1__.SerializableEmpty; - switch (intent) { - case "any": - renderingIntent = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.ANY; - break; - case "display": - break; - case "print": - renderingIntent = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.PRINT; - break; - default: - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`getRenderingIntent - invalid intent: ${intent}`); - } - switch (annotationMode) { - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.DISABLE: - renderingIntent += _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.ANNOTATIONS_DISABLE; - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE: - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS: - renderingIntent += _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.ANNOTATIONS_FORMS; - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_STORAGE: - renderingIntent += _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.ANNOTATIONS_STORAGE; - const annotationStorage = renderingIntent & _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage_js__WEBPACK_IMPORTED_MODULE_1__.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage; - annotationStorageSerializable = annotationStorage.serializable; - break; - default: - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`); - } - if (isOpList) { - renderingIntent += _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.OPLIST; - } - return { - renderingIntent, - cacheKey: `${renderingIntent}_${annotationStorageSerializable.hash}`, - annotationStorageSerializable - }; - } - destroy() { - if (this.destroyCapability) { - return this.destroyCapability.promise; - } - this.destroyed = true; - this.destroyCapability = Promise.withResolvers(); - this.#passwordCapability?.reject(new Error("Worker was destroyed during onPassword callback")); - const waitOn = []; - for (const page of this.#pageCache.values()) { - waitOn.push(page._destroy()); - } - this.#pageCache.clear(); - this.#pagePromises.clear(); - this.#pageRefCache.clear(); - if (this.hasOwnProperty("annotationStorage")) { - this.annotationStorage.resetModified(); - } - const terminated = this.messageHandler.sendWithPromise("Terminate", null); - waitOn.push(terminated); - Promise.all(waitOn).then(() => { - this.commonObjs.clear(); - this.fontLoader.clear(); - this.#methodPromises.clear(); - this.filterFactory.destroy(); - (0,_text_layer_js__WEBPACK_IMPORTED_MODULE_6__.cleanupTextLayer)(); - this._networkStream?.cancelAllRequests(new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AbortException("Worker was terminated.")); - if (this.messageHandler) { - this.messageHandler.destroy(); - this.messageHandler = null; - } - this.destroyCapability.resolve(); - }, this.destroyCapability.reject); - return this.destroyCapability.promise; - } - setupMessageHandler() { - const { - messageHandler, - loadingTask - } = this; - messageHandler.on("GetReader", (data, sink) => { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(this._networkStream, "GetReader - no `IPDFStream` instance available."); - this._fullReader = this._networkStream.getFullReader(); - this._fullReader.onProgress = evt => { - this._lastProgress = { - loaded: evt.loaded, - total: evt.total - }; - }; - sink.onPull = () => { - this._fullReader.read().then(function ({ - value, - done - }) { - if (done) { - sink.close(); - return; - } - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(value instanceof ArrayBuffer, "GetReader - expected an ArrayBuffer."); - sink.enqueue(new Uint8Array(value), 1, [value]); - }).catch(reason => { - sink.error(reason); - }); - }; - sink.onCancel = reason => { - this._fullReader.cancel(reason); - sink.ready.catch(readyReason => { - if (this.destroyed) { - return; - } - throw readyReason; - }); - }; - }); - messageHandler.on("ReaderHeadersReady", data => { - const headersCapability = Promise.withResolvers(); - const fullReader = this._fullReader; - fullReader.headersReady.then(() => { - if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { - if (this._lastProgress) { - loadingTask.onProgress?.(this._lastProgress); - } - fullReader.onProgress = evt => { - loadingTask.onProgress?.({ - loaded: evt.loaded, - total: evt.total - }); - }; - } - headersCapability.resolve({ - isStreamingSupported: fullReader.isStreamingSupported, - isRangeSupported: fullReader.isRangeSupported, - contentLength: fullReader.contentLength - }); - }, headersCapability.reject); - return headersCapability.promise; - }); - messageHandler.on("GetRangeReader", (data, sink) => { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(this._networkStream, "GetRangeReader - no `IPDFStream` instance available."); - const rangeReader = this._networkStream.getRangeReader(data.begin, data.end); - if (!rangeReader) { - sink.close(); - return; - } - sink.onPull = () => { - rangeReader.read().then(function ({ - value, - done - }) { - if (done) { - sink.close(); - return; - } - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(value instanceof ArrayBuffer, "GetRangeReader - expected an ArrayBuffer."); - sink.enqueue(new Uint8Array(value), 1, [value]); - }).catch(reason => { - sink.error(reason); - }); - }; - sink.onCancel = reason => { - rangeReader.cancel(reason); - sink.ready.catch(readyReason => { - if (this.destroyed) { - return; - } - throw readyReason; - }); - }; - }); - messageHandler.on("GetDoc", ({ - pdfInfo - }) => { - this._numPages = pdfInfo.numPages; - this._htmlForXfa = pdfInfo.htmlForXfa; - delete pdfInfo.htmlForXfa; - loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this)); - }); - messageHandler.on("DocException", function (ex) { - let reason; - switch (ex.name) { - case "PasswordException": - reason = new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.PasswordException(ex.message, ex.code); - break; - case "InvalidPDFException": - reason = new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.InvalidPDFException(ex.message); - break; - case "MissingPDFException": - reason = new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.MissingPDFException(ex.message); - break; - case "UnexpectedResponseException": - reason = new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseException(ex.message, ex.status); - break; - case "UnknownErrorException": - reason = new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.UnknownErrorException(ex.message, ex.details); - break; - default: - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("DocException - expected a valid Error."); - } - loadingTask._capability.reject(reason); - }); - messageHandler.on("PasswordRequest", exception => { - this.#passwordCapability = Promise.withResolvers(); - if (loadingTask.onPassword) { - const updatePassword = password => { - if (password instanceof Error) { - this.#passwordCapability.reject(password); - } else { - this.#passwordCapability.resolve({ - password - }); - } - }; - try { - loadingTask.onPassword(updatePassword, exception.code); - } catch (ex) { - this.#passwordCapability.reject(ex); - } - } else { - this.#passwordCapability.reject(new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.PasswordException(exception.message, exception.code)); - } - return this.#passwordCapability.promise; - }); - messageHandler.on("DataLoaded", data => { - loadingTask.onProgress?.({ - loaded: data.length, - total: data.length - }); - this.downloadInfoCapability.resolve(data); - }); - messageHandler.on("StartRenderPage", data => { - if (this.destroyed) { - return; - } - const page = this.#pageCache.get(data.pageIndex); - page._startRenderPage(data.transparency, data.cacheKey); - }); - messageHandler.on("commonobj", ([id, type, exportedData]) => { - if (this.destroyed) { - return null; - } - if (this.commonObjs.has(id)) { - return null; - } - switch (type) { - case "Font": - const params = this._params; - if ("error" in exportedData) { - const exportedError = exportedData.error; - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Error during font loading: ${exportedError}`); - this.commonObjs.resolve(id, exportedError); - break; - } - const inspectFont = params.pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null; - const font = new _font_loader_js__WEBPACK_IMPORTED_MODULE_3__.FontFaceObject(exportedData, { - disableFontFace: params.disableFontFace, - ignoreErrors: params.ignoreErrors, - inspectFont - }); - this.fontLoader.bind(font).catch(() => messageHandler.sendWithPromise("FontFallback", { - id - })).finally(() => { - if (!params.fontExtraProperties && font.data) { - font.data = null; - } - this.commonObjs.resolve(id, font); - }); - break; - case "CopyLocalImage": - const { - imageRef - } = exportedData; - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(imageRef, "The imageRef must be defined."); - for (const pageProxy of this.#pageCache.values()) { - for (const [, data] of pageProxy.objs) { - if (data.ref !== imageRef) { - continue; - } - if (!data.dataLen) { - return null; - } - this.commonObjs.resolve(id, structuredClone(data)); - return data.dataLen; - } - } - break; - case "FontPath": - case "Image": - case "Pattern": - this.commonObjs.resolve(id, exportedData); - break; - default: - throw new Error(`Got unknown common object type ${type}`); - } - return null; - }); - messageHandler.on("obj", ([id, pageIndex, type, imageData]) => { - if (this.destroyed) { - return; - } - const pageProxy = this.#pageCache.get(pageIndex); - if (pageProxy.objs.has(id)) { - return; - } - if (pageProxy._intentStates.size === 0) { - imageData?.bitmap?.close(); - return; - } - switch (type) { - case "Image": - pageProxy.objs.resolve(id, imageData); - if (imageData?.dataLen > _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.MAX_IMAGE_SIZE_TO_CACHE) { - pageProxy._maybeCleanupAfterRender = true; - } - break; - case "Pattern": - pageProxy.objs.resolve(id, imageData); - break; - default: - throw new Error(`Got unknown object type ${type}`); - } - }); - messageHandler.on("DocProgress", data => { - if (this.destroyed) { - return; - } - loadingTask.onProgress?.({ - loaded: data.loaded, - total: data.total - }); - }); - messageHandler.on("FetchBuiltInCMap", data => { - if (this.destroyed) { - return Promise.reject(new Error("Worker was destroyed.")); - } - if (!this.cMapReaderFactory) { - return Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.")); - } - return this.cMapReaderFactory.fetch(data); - }); - messageHandler.on("FetchStandardFontData", data => { - if (this.destroyed) { - return Promise.reject(new Error("Worker was destroyed.")); - } - if (!this.standardFontDataFactory) { - return Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.")); - } - return this.standardFontDataFactory.fetch(data); - }); - } - getData() { - return this.messageHandler.sendWithPromise("GetData", null); - } - saveDocument() { - if (this.annotationStorage.size <= 0) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)("saveDocument called while `annotationStorage` is empty, " + "please use the getData-method instead."); - } - const { - map, - transfer - } = this.annotationStorage.serializable; - return this.messageHandler.sendWithPromise("SaveDocument", { - isPureXfa: !!this._htmlForXfa, - numPages: this._numPages, - annotationStorage: map, - filename: this._fullReader?.filename ?? null - }, transfer).finally(() => { - this.annotationStorage.resetModified(); - }); - } - getPage(pageNumber) { - if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { - return Promise.reject(new Error("Invalid page request.")); - } - const pageIndex = pageNumber - 1, - cachedPromise = this.#pagePromises.get(pageIndex); - if (cachedPromise) { - return cachedPromise; - } - const promise = this.messageHandler.sendWithPromise("GetPage", { - pageIndex - }).then(pageInfo => { - if (this.destroyed) { - throw new Error("Transport destroyed"); - } - if (pageInfo.refStr) { - this.#pageRefCache.set(pageInfo.refStr, pageNumber); - } - const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug); - this.#pageCache.set(pageIndex, page); - return page; - }); - this.#pagePromises.set(pageIndex, promise); - return promise; - } - getPageIndex(ref) { - if (!isRefProxy(ref)) { - return Promise.reject(new Error("Invalid pageIndex request.")); - } - return this.messageHandler.sendWithPromise("GetPageIndex", { - num: ref.num, - gen: ref.gen - }); - } - getAnnotations(pageIndex, intent) { - return this.messageHandler.sendWithPromise("GetAnnotations", { - pageIndex, - intent - }); - } - getFieldObjects() { - return this.#cacheSimpleMethod("GetFieldObjects"); - } - hasJSActions() { - return this.#cacheSimpleMethod("HasJSActions"); - } - getCalculationOrderIds() { - return this.messageHandler.sendWithPromise("GetCalculationOrderIds", null); - } - getDestinations() { - return this.messageHandler.sendWithPromise("GetDestinations", null); - } - getDestination(id) { - if (typeof id !== "string") { - return Promise.reject(new Error("Invalid destination request.")); - } - return this.messageHandler.sendWithPromise("GetDestination", { - id - }); - } - getPageLabels() { - return this.messageHandler.sendWithPromise("GetPageLabels", null); - } - getPageLayout() { - return this.messageHandler.sendWithPromise("GetPageLayout", null); - } - getPageMode() { - return this.messageHandler.sendWithPromise("GetPageMode", null); - } - getViewerPreferences() { - return this.messageHandler.sendWithPromise("GetViewerPreferences", null); - } - getOpenAction() { - return this.messageHandler.sendWithPromise("GetOpenAction", null); - } - getAttachments() { - return this.messageHandler.sendWithPromise("GetAttachments", null); - } - getDocJSActions() { - return this.#cacheSimpleMethod("GetDocJSActions"); - } - getPageJSActions(pageIndex) { - return this.messageHandler.sendWithPromise("GetPageJSActions", { - pageIndex - }); - } - getStructTree(pageIndex) { - return this.messageHandler.sendWithPromise("GetStructTree", { - pageIndex - }); - } - getOutline() { - return this.messageHandler.sendWithPromise("GetOutline", null); - } - getOptionalContentConfig(renderingIntent) { - return this.#cacheSimpleMethod("GetOptionalContentConfig").then(data => new _optional_content_config_js__WEBPACK_IMPORTED_MODULE_9__.OptionalContentConfig(data, renderingIntent)); - } - getPermissions() { - return this.messageHandler.sendWithPromise("GetPermissions", null); - } - getMetadata() { - const name = "GetMetadata", - cachedPromise = this.#methodPromises.get(name); - if (cachedPromise) { - return cachedPromise; - } - const promise = this.messageHandler.sendWithPromise(name, null).then(results => ({ - info: results[0], - metadata: results[1] ? new _metadata_js__WEBPACK_IMPORTED_MODULE_8__.Metadata(results[1]) : null, - contentDispositionFilename: this._fullReader?.filename ?? null, - contentLength: this._fullReader?.contentLength ?? null - })); - this.#methodPromises.set(name, promise); - return promise; - } - getMarkInfo() { - return this.messageHandler.sendWithPromise("GetMarkInfo", null); - } - async startCleanup(keepLoadedFonts = false) { - if (this.destroyed) { - return; - } - await this.messageHandler.sendWithPromise("Cleanup", null); - for (const page of this.#pageCache.values()) { - const cleanupSuccessful = page.cleanup(); - if (!cleanupSuccessful) { - throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`); - } - } - this.commonObjs.clear(); - if (!keepLoadedFonts) { - this.fontLoader.clear(); - } - this.#methodPromises.clear(); - this.filterFactory.destroy(true); - (0,_text_layer_js__WEBPACK_IMPORTED_MODULE_6__.cleanupTextLayer)(); - } - cachedPageNumber(ref) { - if (!isRefProxy(ref)) { - return null; - } - const refStr = ref.gen === 0 ? `${ref.num}R` : `${ref.num}R${ref.gen}`; - return this.#pageRefCache.get(refStr) ?? null; - } - get loadingParams() { - const { - disableAutoFetch, - enableXfa - } = this._params; - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "loadingParams", { - disableAutoFetch, - enableXfa - }); - } -} -const INITIAL_DATA = Symbol("INITIAL_DATA"); -class PDFObjects { - #objs = Object.create(null); - #ensureObj(objId) { - return this.#objs[objId] ||= { - ...Promise.withResolvers(), - data: INITIAL_DATA - }; - } - get(objId, callback = null) { - if (callback) { - const obj = this.#ensureObj(objId); - obj.promise.then(() => callback(obj.data)); - return null; - } - const obj = this.#objs[objId]; - if (!obj || obj.data === INITIAL_DATA) { - throw new Error(`Requesting object that isn't resolved yet ${objId}.`); - } - return obj.data; - } - has(objId) { - const obj = this.#objs[objId]; - return !!obj && obj.data !== INITIAL_DATA; - } - resolve(objId, data = null) { - const obj = this.#ensureObj(objId); - obj.data = data; - obj.resolve(); - } - clear() { - for (const objId in this.#objs) { - const { - data - } = this.#objs[objId]; - data?.bitmap?.close(); - } - this.#objs = Object.create(null); - } - *[Symbol.iterator]() { - for (const objId in this.#objs) { - const { - data - } = this.#objs[objId]; - if (data === INITIAL_DATA) { - continue; - } - yield [objId, data]; - } - } -} -class RenderTask { - #internalRenderTask = null; - constructor(internalRenderTask) { - this.#internalRenderTask = internalRenderTask; - this.onContinue = null; - } - get promise() { - return this.#internalRenderTask.capability.promise; - } - cancel(extraDelay = 0) { - this.#internalRenderTask.cancel(null, extraDelay); - } - get separateAnnots() { - const { - separateAnnots - } = this.#internalRenderTask.operatorList; - if (!separateAnnots) { - return false; - } - const { - annotationCanvasMap - } = this.#internalRenderTask; - return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0; - } -} -class InternalRenderTask { - static #canvasInUse = new WeakSet(); - constructor({ - callback, - params, - objs, - commonObjs, - annotationCanvasMap, - operatorList, - pageIndex, - canvasFactory, - filterFactory, - useRequestAnimationFrame = false, - pdfBug = false, - pageColors = null - }) { - this.callback = callback; - this.params = params; - this.objs = objs; - this.commonObjs = commonObjs; - this.annotationCanvasMap = annotationCanvasMap; - this.operatorListIdx = null; - this.operatorList = operatorList; - this._pageIndex = pageIndex; - this.canvasFactory = canvasFactory; - this.filterFactory = filterFactory; - this._pdfBug = pdfBug; - this.pageColors = pageColors; - this.running = false; - this.graphicsReadyCallback = null; - this.graphicsReady = false; - this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined"; - this.cancelled = false; - this.capability = Promise.withResolvers(); - this.task = new RenderTask(this); - this._cancelBound = this.cancel.bind(this); - this._continueBound = this._continue.bind(this); - this._scheduleNextBound = this._scheduleNext.bind(this); - this._nextBound = this._next.bind(this); - this._canvas = params.canvasContext.canvas; - } - get completed() { - return this.capability.promise.catch(function () {}); - } - initializeGraphics({ - transparency = false, - optionalContentConfig - }) { - if (this.cancelled) { - return; - } - if (this._canvas) { - if (InternalRenderTask.#canvasInUse.has(this._canvas)) { - throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed."); - } - InternalRenderTask.#canvasInUse.add(this._canvas); - } - if (this._pdfBug && globalThis.StepperManager?.enabled) { - this.stepper = globalThis.StepperManager.create(this._pageIndex); - this.stepper.init(this.operatorList); - this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); - } - const { - canvasContext, - viewport, - transform, - background - } = this.params; - this.gfx = new _canvas_js__WEBPACK_IMPORTED_MODULE_5__.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, { - optionalContentConfig - }, this.annotationCanvasMap, this.pageColors); - this.gfx.beginDrawing({ - transform, - viewport, - transparency, - background - }); - this.operatorListIdx = 0; - this.graphicsReady = true; - this.graphicsReadyCallback?.(); - } - cancel(error = null, extraDelay = 0) { - this.running = false; - this.cancelled = true; - this.gfx?.endDrawing(); - InternalRenderTask.#canvasInUse.delete(this._canvas); - this.callback(error || new _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay)); - } - operatorListChanged() { - if (!this.graphicsReady) { - this.graphicsReadyCallback ||= this._continueBound; - return; - } - this.stepper?.updateOperatorList(this.operatorList); - if (this.running) { - return; - } - this._continue(); - } - _continue() { - this.running = true; - if (this.cancelled) { - return; - } - if (this.task.onContinue) { - this.task.onContinue(this._scheduleNextBound); - } else { - this._scheduleNext(); - } - } - _scheduleNext() { - if (this._useRequestAnimationFrame) { - window.requestAnimationFrame(() => { - this._nextBound().catch(this._cancelBound); - }); - } else { - Promise.resolve().then(this._nextBound).catch(this._cancelBound); - } - } - async _next() { - if (this.cancelled) { - return; - } - this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); - if (this.operatorListIdx === this.operatorList.argsArray.length) { - this.running = false; - if (this.operatorList.lastChunk) { - this.gfx.endDrawing(); - InternalRenderTask.#canvasInUse.delete(this._canvas); - this.callback(); - } - } - } -} -const version = "4.2.67"; -const build = "49b388101"; - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 583: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ BaseCMapReaderFactory: () => (/* binding */ BaseCMapReaderFactory), -/* harmony export */ BaseCanvasFactory: () => (/* binding */ BaseCanvasFactory), -/* harmony export */ BaseFilterFactory: () => (/* binding */ BaseFilterFactory), -/* harmony export */ BaseSVGFactory: () => (/* binding */ BaseSVGFactory), -/* harmony export */ BaseStandardFontDataFactory: () => (/* binding */ BaseStandardFontDataFactory) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); - -class BaseFilterFactory { - constructor() { - if (this.constructor === BaseFilterFactory) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Cannot initialize BaseFilterFactory."); - } - } - addFilter(maps) { - return "none"; - } - addHCMFilter(fgColor, bgColor) { - return "none"; - } - addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) { - return "none"; - } - destroy(keepHCM = false) {} -} -class BaseCanvasFactory { - constructor() { - if (this.constructor === BaseCanvasFactory) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Cannot initialize BaseCanvasFactory."); - } - } - create(width, height) { - if (width <= 0 || height <= 0) { - throw new Error("Invalid canvas size"); - } - const canvas = this._createCanvas(width, height); - return { - canvas, - context: canvas.getContext("2d") - }; - } - reset(canvasAndContext, width, height) { - if (!canvasAndContext.canvas) { - throw new Error("Canvas is not specified"); - } - if (width <= 0 || height <= 0) { - throw new Error("Invalid canvas size"); - } - canvasAndContext.canvas.width = width; - canvasAndContext.canvas.height = height; - } - destroy(canvasAndContext) { - if (!canvasAndContext.canvas) { - throw new Error("Canvas is not specified"); - } - canvasAndContext.canvas.width = 0; - canvasAndContext.canvas.height = 0; - canvasAndContext.canvas = null; - canvasAndContext.context = null; - } - _createCanvas(width, height) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Abstract method `_createCanvas` called."); - } -} -class BaseCMapReaderFactory { - constructor({ - baseUrl = null, - isCompressed = true - }) { - if (this.constructor === BaseCMapReaderFactory) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Cannot initialize BaseCMapReaderFactory."); - } - this.baseUrl = baseUrl; - this.isCompressed = isCompressed; - } - async fetch({ - name - }) { - if (!this.baseUrl) { - throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); - } - if (!name) { - throw new Error("CMap name must be specified."); - } - const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : ""); - const compressionType = this.isCompressed ? _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.CMapCompressionType.BINARY : _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.CMapCompressionType.NONE; - return this._fetchData(url, compressionType).catch(reason => { - throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${url}`); - }); - } - _fetchData(url, compressionType) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Abstract method `_fetchData` called."); - } -} -class BaseStandardFontDataFactory { - constructor({ - baseUrl = null - }) { - if (this.constructor === BaseStandardFontDataFactory) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Cannot initialize BaseStandardFontDataFactory."); - } - this.baseUrl = baseUrl; - } - async fetch({ - filename - }) { - if (!this.baseUrl) { - throw new Error('The standard font "baseUrl" parameter must be specified, ensure that ' + 'the "standardFontDataUrl" API parameter is provided.'); - } - if (!filename) { - throw new Error("Font filename must be specified."); - } - const url = `${this.baseUrl}${filename}`; - return this._fetchData(url).catch(reason => { - throw new Error(`Unable to load font data at: ${url}`); - }); - } - _fetchData(url) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Abstract method `_fetchData` called."); - } -} -class BaseSVGFactory { - constructor() { - if (this.constructor === BaseSVGFactory) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Cannot initialize BaseSVGFactory."); - } - } - create(width, height, skipDimensions = false) { - if (width <= 0 || height <= 0) { - throw new Error("Invalid SVG dimensions"); - } - const svg = this._createSVG("svg:svg"); - svg.setAttribute("version", "1.1"); - if (!skipDimensions) { - svg.setAttribute("width", `${width}px`); - svg.setAttribute("height", `${height}px`); - } - svg.setAttribute("preserveAspectRatio", "none"); - svg.setAttribute("viewBox", `0 0 ${width} ${height}`); - return svg; - } - createElement(type) { - if (typeof type !== "string") { - throw new Error("Invalid SVG element type"); - } - return this._createSVG(type); - } - _createSVG(type) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Abstract method `_createSVG` called."); - } -} - - -/***/ }), - -/***/ 923: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - CanvasGraphics: () => (/* binding */ CanvasGraphics) -}); - -// EXTERNAL MODULE: ./src/shared/util.js -var util = __webpack_require__(292); -// EXTERNAL MODULE: ./src/display/display_utils.js -var display_utils = __webpack_require__(419); -;// CONCATENATED MODULE: ./src/display/pattern_helper.js - - -const PathType = { - FILL: "Fill", - STROKE: "Stroke", - SHADING: "Shading" -}; -function applyBoundingBox(ctx, bbox) { - if (!bbox) { - return; - } - const width = bbox[2] - bbox[0]; - const height = bbox[3] - bbox[1]; - const region = new Path2D(); - region.rect(bbox[0], bbox[1], width, height); - ctx.clip(region); -} -class BaseShadingPattern { - constructor() { - if (this.constructor === BaseShadingPattern) { - (0,util.unreachable)("Cannot initialize BaseShadingPattern."); - } - } - getPattern() { - (0,util.unreachable)("Abstract method `getPattern` called."); - } -} -class RadialAxialShadingPattern extends BaseShadingPattern { - constructor(IR) { - super(); - this._type = IR[1]; - this._bbox = IR[2]; - this._colorStops = IR[3]; - this._p0 = IR[4]; - this._p1 = IR[5]; - this._r0 = IR[6]; - this._r1 = IR[7]; - this.matrix = null; - } - _createGradient(ctx) { - let grad; - if (this._type === "axial") { - grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]); - } else if (this._type === "radial") { - grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1); - } - for (const colorStop of this._colorStops) { - grad.addColorStop(colorStop[0], colorStop[1]); - } - return grad; - } - getPattern(ctx, owner, inverse, pathType) { - let pattern; - if (pathType === PathType.STROKE || pathType === PathType.FILL) { - const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0,display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0]; - const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1; - const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1; - const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", width, height, true); - const tmpCtx = tmpCanvas.context; - tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); - tmpCtx.beginPath(); - tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); - tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]); - inverse = util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]); - tmpCtx.transform(...owner.baseTransform); - if (this.matrix) { - tmpCtx.transform(...this.matrix); - } - applyBoundingBox(tmpCtx, this._bbox); - tmpCtx.fillStyle = this._createGradient(tmpCtx); - tmpCtx.fill(); - pattern = ctx.createPattern(tmpCanvas.canvas, "no-repeat"); - const domMatrix = new DOMMatrix(inverse); - pattern.setTransform(domMatrix); - } else { - applyBoundingBox(ctx, this._bbox); - pattern = this._createGradient(ctx); - } - return pattern; - } -} -function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { - const coords = context.coords, - colors = context.colors; - const bytes = data.data, - rowSize = data.width * 4; - let tmp; - if (coords[p1 + 1] > coords[p2 + 1]) { - tmp = p1; - p1 = p2; - p2 = tmp; - tmp = c1; - c1 = c2; - c2 = tmp; - } - if (coords[p2 + 1] > coords[p3 + 1]) { - tmp = p2; - p2 = p3; - p3 = tmp; - tmp = c2; - c2 = c3; - c3 = tmp; - } - if (coords[p1 + 1] > coords[p2 + 1]) { - tmp = p1; - p1 = p2; - p2 = tmp; - tmp = c1; - c1 = c2; - c2 = tmp; - } - const x1 = (coords[p1] + context.offsetX) * context.scaleX; - const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; - const x2 = (coords[p2] + context.offsetX) * context.scaleX; - const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; - const x3 = (coords[p3] + context.offsetX) * context.scaleX; - const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; - if (y1 >= y3) { - return; - } - const c1r = colors[c1], - c1g = colors[c1 + 1], - c1b = colors[c1 + 2]; - const c2r = colors[c2], - c2g = colors[c2 + 1], - c2b = colors[c2 + 2]; - const c3r = colors[c3], - c3g = colors[c3 + 1], - c3b = colors[c3 + 2]; - const minY = Math.round(y1), - maxY = Math.round(y3); - let xa, car, cag, cab; - let xb, cbr, cbg, cbb; - for (let y = minY; y <= maxY; y++) { - if (y < y2) { - const k = y < y1 ? 0 : (y1 - y) / (y1 - y2); - xa = x1 - (x1 - x2) * k; - car = c1r - (c1r - c2r) * k; - cag = c1g - (c1g - c2g) * k; - cab = c1b - (c1b - c2b) * k; - } else { - let k; - if (y > y3) { - k = 1; - } else if (y2 === y3) { - k = 0; - } else { - k = (y2 - y) / (y2 - y3); - } - xa = x2 - (x2 - x3) * k; - car = c2r - (c2r - c3r) * k; - cag = c2g - (c2g - c3g) * k; - cab = c2b - (c2b - c3b) * k; - } - let k; - if (y < y1) { - k = 0; - } else if (y > y3) { - k = 1; - } else { - k = (y1 - y) / (y1 - y3); - } - xb = x1 - (x1 - x3) * k; - cbr = c1r - (c1r - c3r) * k; - cbg = c1g - (c1g - c3g) * k; - cbb = c1b - (c1b - c3b) * k; - const x1_ = Math.round(Math.min(xa, xb)); - const x2_ = Math.round(Math.max(xa, xb)); - let j = rowSize * y + x1_ * 4; - for (let x = x1_; x <= x2_; x++) { - k = (xa - x) / (xa - xb); - if (k < 0) { - k = 0; - } else if (k > 1) { - k = 1; - } - bytes[j++] = car - (car - cbr) * k | 0; - bytes[j++] = cag - (cag - cbg) * k | 0; - bytes[j++] = cab - (cab - cbb) * k | 0; - bytes[j++] = 255; - } - } -} -function drawFigure(data, figure, context) { - const ps = figure.coords; - const cs = figure.colors; - let i, ii; - switch (figure.type) { - case "lattice": - const verticesPerRow = figure.verticesPerRow; - const rows = Math.floor(ps.length / verticesPerRow) - 1; - const cols = verticesPerRow - 1; - for (i = 0; i < rows; i++) { - let q = i * verticesPerRow; - for (let j = 0; j < cols; j++, q++) { - drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); - drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); - } - } - break; - case "triangles": - for (i = 0, ii = ps.length; i < ii; i += 3) { - drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); - } - break; - default: - throw new Error("illegal figure"); - } -} -class MeshShadingPattern extends BaseShadingPattern { - constructor(IR) { - super(); - this._coords = IR[2]; - this._colors = IR[3]; - this._figures = IR[4]; - this._bounds = IR[5]; - this._bbox = IR[7]; - this._background = IR[8]; - this.matrix = null; - } - _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) { - const EXPECTED_SCALE = 1.1; - const MAX_PATTERN_SIZE = 3000; - const BORDER_SIZE = 2; - const offsetX = Math.floor(this._bounds[0]); - const offsetY = Math.floor(this._bounds[1]); - const boundsWidth = Math.ceil(this._bounds[2]) - offsetX; - const boundsHeight = Math.ceil(this._bounds[3]) - offsetY; - const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); - const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); - const scaleX = boundsWidth / width; - const scaleY = boundsHeight / height; - const context = { - coords: this._coords, - colors: this._colors, - offsetX: -offsetX, - offsetY: -offsetY, - scaleX: 1 / scaleX, - scaleY: 1 / scaleY - }; - const paddedWidth = width + BORDER_SIZE * 2; - const paddedHeight = height + BORDER_SIZE * 2; - const tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false); - const tmpCtx = tmpCanvas.context; - const data = tmpCtx.createImageData(width, height); - if (backgroundColor) { - const bytes = data.data; - for (let i = 0, ii = bytes.length; i < ii; i += 4) { - bytes[i] = backgroundColor[0]; - bytes[i + 1] = backgroundColor[1]; - bytes[i + 2] = backgroundColor[2]; - bytes[i + 3] = 255; - } - } - for (const figure of this._figures) { - drawFigure(data, figure, context); - } - tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); - const canvas = tmpCanvas.canvas; - return { - canvas, - offsetX: offsetX - BORDER_SIZE * scaleX, - offsetY: offsetY - BORDER_SIZE * scaleY, - scaleX, - scaleY - }; - } - getPattern(ctx, owner, inverse, pathType) { - applyBoundingBox(ctx, this._bbox); - let scale; - if (pathType === PathType.SHADING) { - scale = util.Util.singularValueDecompose2dScale((0,display_utils.getCurrentTransform)(ctx)); - } else { - scale = util.Util.singularValueDecompose2dScale(owner.baseTransform); - if (this.matrix) { - const matrixScale = util.Util.singularValueDecompose2dScale(this.matrix); - scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; - } - } - const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases); - if (pathType !== PathType.SHADING) { - ctx.setTransform(...owner.baseTransform); - if (this.matrix) { - ctx.transform(...this.matrix); - } - } - ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); - ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); - return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat"); - } -} -class DummyShadingPattern extends BaseShadingPattern { - getPattern() { - return "hotpink"; - } -} -function getShadingPattern(IR) { - switch (IR[0]) { - case "RadialAxial": - return new RadialAxialShadingPattern(IR); - case "Mesh": - return new MeshShadingPattern(IR); - case "Dummy": - return new DummyShadingPattern(); - } - throw new Error(`Unknown IR type: ${IR[0]}`); -} -const PaintType = { - COLORED: 1, - UNCOLORED: 2 -}; -class TilingPattern { - static MAX_PATTERN_SIZE = 3000; - constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) { - this.operatorList = IR[2]; - this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; - this.bbox = IR[4]; - this.xstep = IR[5]; - this.ystep = IR[6]; - this.paintType = IR[7]; - this.tilingType = IR[8]; - this.color = color; - this.ctx = ctx; - this.canvasGraphicsFactory = canvasGraphicsFactory; - this.baseTransform = baseTransform; - } - createPatternCanvas(owner) { - const operatorList = this.operatorList; - const bbox = this.bbox; - const xstep = this.xstep; - const ystep = this.ystep; - const paintType = this.paintType; - const tilingType = this.tilingType; - const color = this.color; - const canvasGraphicsFactory = this.canvasGraphicsFactory; - (0,util.info)("TilingType: " + tilingType); - const x0 = bbox[0], - y0 = bbox[1], - x1 = bbox[2], - y1 = bbox[3]; - const matrixScale = util.Util.singularValueDecompose2dScale(this.matrix); - const curMatrixScale = util.Util.singularValueDecompose2dScale(this.baseTransform); - const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; - const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); - const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); - const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size, true); - const tmpCtx = tmpCanvas.context; - const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); - graphics.groupLevel = owner.groupLevel; - this.setFillAndStrokeStyleToContext(graphics, paintType, color); - let adjustedX0 = x0; - let adjustedY0 = y0; - let adjustedX1 = x1; - let adjustedY1 = y1; - if (x0 < 0) { - adjustedX0 = 0; - adjustedX1 += Math.abs(x0); - } - if (y0 < 0) { - adjustedY0 = 0; - adjustedY1 += Math.abs(y0); - } - tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0)); - graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); - tmpCtx.save(); - this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1); - graphics.baseTransform = (0,display_utils.getCurrentTransform)(graphics.ctx); - graphics.executeOperatorList(operatorList); - graphics.endDrawing(); - return { - canvas: tmpCanvas.canvas, - scaleX: dimx.scale, - scaleY: dimy.scale, - offsetX: adjustedX0, - offsetY: adjustedY0 - }; - } - getSizeAndScale(step, realOutputSize, scale) { - step = Math.abs(step); - const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize); - let size = Math.ceil(step * scale); - if (size >= maxSize) { - size = maxSize; - } else { - scale = size / step; - } - return { - scale, - size - }; - } - clipBbox(graphics, x0, y0, x1, y1) { - const bboxWidth = x1 - x0; - const bboxHeight = y1 - y0; - graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); - graphics.current.updateRectMinMax((0,display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]); - graphics.clip(); - graphics.endPath(); - } - setFillAndStrokeStyleToContext(graphics, paintType, color) { - const context = graphics.ctx, - current = graphics.current; - switch (paintType) { - case PaintType.COLORED: - const ctx = this.ctx; - context.fillStyle = ctx.fillStyle; - context.strokeStyle = ctx.strokeStyle; - current.fillColor = ctx.fillStyle; - current.strokeColor = ctx.strokeStyle; - break; - case PaintType.UNCOLORED: - const cssColor = util.Util.makeHexColor(color[0], color[1], color[2]); - context.fillStyle = cssColor; - context.strokeStyle = cssColor; - current.fillColor = cssColor; - current.strokeColor = cssColor; - break; - default: - throw new util.FormatError(`Unsupported paint type: ${paintType}`); - } - } - getPattern(ctx, owner, inverse, pathType) { - let matrix = inverse; - if (pathType !== PathType.SHADING) { - matrix = util.Util.transform(matrix, owner.baseTransform); - if (this.matrix) { - matrix = util.Util.transform(matrix, this.matrix); - } - } - const temporaryPatternCanvas = this.createPatternCanvas(owner); - let domMatrix = new DOMMatrix(matrix); - domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); - domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY); - const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, "repeat"); - pattern.setTransform(domMatrix); - return pattern; - } -} - -;// CONCATENATED MODULE: ./src/shared/image_utils.js - -function convertToRGBA(params) { - switch (params.kind) { - case ImageKind.GRAYSCALE_1BPP: - return convertBlackAndWhiteToRGBA(params); - case ImageKind.RGB_24BPP: - return convertRGBToRGBA(params); - } - return null; -} -function convertBlackAndWhiteToRGBA({ - src, - srcPos = 0, - dest, - width, - height, - nonBlackColor = 0xffffffff, - inverseDecode = false -}) { - const black = util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; - const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor]; - const widthInSource = width >> 3; - const widthRemainder = width & 7; - const srcLength = src.length; - dest = new Uint32Array(dest.buffer); - let destPos = 0; - for (let i = 0; i < height; i++) { - for (const max = srcPos + widthInSource; srcPos < max; srcPos++) { - const elem = srcPos < srcLength ? src[srcPos] : 255; - dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping; - dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping; - dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping; - dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping; - dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping; - dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping; - dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping; - dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping; - } - if (widthRemainder === 0) { - continue; - } - const elem = srcPos < srcLength ? src[srcPos++] : 255; - for (let j = 0; j < widthRemainder; j++) { - dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping; - } - } - return { - srcPos, - destPos - }; -} -function convertRGBToRGBA({ - src, - srcPos = 0, - dest, - destPos = 0, - width, - height -}) { - let i = 0; - const len32 = src.length >> 2; - const src32 = new Uint32Array(src.buffer, srcPos, len32); - if (FeatureTest.isLittleEndian) { - for (; i < len32 - 2; i += 3, destPos += 4) { - const s1 = src32[i]; - const s2 = src32[i + 1]; - const s3 = src32[i + 2]; - dest[destPos] = s1 | 0xff000000; - dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000; - dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000; - dest[destPos + 3] = s3 >>> 8 | 0xff000000; - } - for (let j = i * 4, jj = src.length; j < jj; j += 3) { - dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000; - } - } else { - for (; i < len32 - 2; i += 3, destPos += 4) { - const s1 = src32[i]; - const s2 = src32[i + 1]; - const s3 = src32[i + 2]; - dest[destPos] = s1 | 0xff; - dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff; - dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff; - dest[destPos + 3] = s3 << 8 | 0xff; - } - for (let j = i * 4, jj = src.length; j < jj; j += 3) { - dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff; - } - } - return { - srcPos, - destPos - }; -} -function grayToRGBA(src, dest) { - if (FeatureTest.isLittleEndian) { - for (let i = 0, ii = src.length; i < ii; i++) { - dest[i] = src[i] * 0x10101 | 0xff000000; - } - } else { - for (let i = 0, ii = src.length; i < ii; i++) { - dest[i] = src[i] * 0x1010100 | 0x000000ff; - } - } -} - -;// CONCATENATED MODULE: ./src/display/canvas.js - - - - -const MIN_FONT_SIZE = 16; -const MAX_FONT_SIZE = 100; -const MAX_GROUP_SIZE = 4096; -const EXECUTION_TIME = 15; -const EXECUTION_STEPS = 10; -const MAX_SIZE_TO_COMPILE = 1000; -const FULL_CHUNK_HEIGHT = 16; -function mirrorContextOperations(ctx, destCtx) { - if (ctx._removeMirroring) { - throw new Error("Context is already forwarding operations."); - } - ctx.__originalSave = ctx.save; - ctx.__originalRestore = ctx.restore; - ctx.__originalRotate = ctx.rotate; - ctx.__originalScale = ctx.scale; - ctx.__originalTranslate = ctx.translate; - ctx.__originalTransform = ctx.transform; - ctx.__originalSetTransform = ctx.setTransform; - ctx.__originalResetTransform = ctx.resetTransform; - ctx.__originalClip = ctx.clip; - ctx.__originalMoveTo = ctx.moveTo; - ctx.__originalLineTo = ctx.lineTo; - ctx.__originalBezierCurveTo = ctx.bezierCurveTo; - ctx.__originalRect = ctx.rect; - ctx.__originalClosePath = ctx.closePath; - ctx.__originalBeginPath = ctx.beginPath; - ctx._removeMirroring = () => { - ctx.save = ctx.__originalSave; - ctx.restore = ctx.__originalRestore; - ctx.rotate = ctx.__originalRotate; - ctx.scale = ctx.__originalScale; - ctx.translate = ctx.__originalTranslate; - ctx.transform = ctx.__originalTransform; - ctx.setTransform = ctx.__originalSetTransform; - ctx.resetTransform = ctx.__originalResetTransform; - ctx.clip = ctx.__originalClip; - ctx.moveTo = ctx.__originalMoveTo; - ctx.lineTo = ctx.__originalLineTo; - ctx.bezierCurveTo = ctx.__originalBezierCurveTo; - ctx.rect = ctx.__originalRect; - ctx.closePath = ctx.__originalClosePath; - ctx.beginPath = ctx.__originalBeginPath; - delete ctx._removeMirroring; - }; - ctx.save = function ctxSave() { - destCtx.save(); - this.__originalSave(); - }; - ctx.restore = function ctxRestore() { - destCtx.restore(); - this.__originalRestore(); - }; - ctx.translate = function ctxTranslate(x, y) { - destCtx.translate(x, y); - this.__originalTranslate(x, y); - }; - ctx.scale = function ctxScale(x, y) { - destCtx.scale(x, y); - this.__originalScale(x, y); - }; - ctx.transform = function ctxTransform(a, b, c, d, e, f) { - destCtx.transform(a, b, c, d, e, f); - this.__originalTransform(a, b, c, d, e, f); - }; - ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { - destCtx.setTransform(a, b, c, d, e, f); - this.__originalSetTransform(a, b, c, d, e, f); - }; - ctx.resetTransform = function ctxResetTransform() { - destCtx.resetTransform(); - this.__originalResetTransform(); - }; - ctx.rotate = function ctxRotate(angle) { - destCtx.rotate(angle); - this.__originalRotate(angle); - }; - ctx.clip = function ctxRotate(rule) { - destCtx.clip(rule); - this.__originalClip(rule); - }; - ctx.moveTo = function (x, y) { - destCtx.moveTo(x, y); - this.__originalMoveTo(x, y); - }; - ctx.lineTo = function (x, y) { - destCtx.lineTo(x, y); - this.__originalLineTo(x, y); - }; - ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) { - destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); - this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); - }; - ctx.rect = function (x, y, width, height) { - destCtx.rect(x, y, width, height); - this.__originalRect(x, y, width, height); - }; - ctx.closePath = function () { - destCtx.closePath(); - this.__originalClosePath(); - }; - ctx.beginPath = function () { - destCtx.beginPath(); - this.__originalBeginPath(); - }; -} -class CachedCanvases { - constructor(canvasFactory) { - this.canvasFactory = canvasFactory; - this.cache = Object.create(null); - } - getCanvas(id, width, height) { - let canvasEntry; - if (this.cache[id] !== undefined) { - canvasEntry = this.cache[id]; - this.canvasFactory.reset(canvasEntry, width, height); - } else { - canvasEntry = this.canvasFactory.create(width, height); - this.cache[id] = canvasEntry; - } - return canvasEntry; - } - delete(id) { - delete this.cache[id]; - } - clear() { - for (const id in this.cache) { - const canvasEntry = this.cache[id]; - this.canvasFactory.destroy(canvasEntry); - delete this.cache[id]; - } - } -} -function drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) { - const [a, b, c, d, tx, ty] = (0,display_utils.getCurrentTransform)(ctx); - if (b === 0 && c === 0) { - const tlX = destX * a + tx; - const rTlX = Math.round(tlX); - const tlY = destY * d + ty; - const rTlY = Math.round(tlY); - const brX = (destX + destW) * a + tx; - const rWidth = Math.abs(Math.round(brX) - rTlX) || 1; - const brY = (destY + destH) * d + ty; - const rHeight = Math.abs(Math.round(brY) - rTlY) || 1; - ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY); - ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight); - ctx.setTransform(a, b, c, d, tx, ty); - return [rWidth, rHeight]; - } - if (a === 0 && d === 0) { - const tlX = destY * c + tx; - const rTlX = Math.round(tlX); - const tlY = destX * b + ty; - const rTlY = Math.round(tlY); - const brX = (destY + destH) * c + tx; - const rWidth = Math.abs(Math.round(brX) - rTlX) || 1; - const brY = (destX + destW) * b + ty; - const rHeight = Math.abs(Math.round(brY) - rTlY) || 1; - ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY); - ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth); - ctx.setTransform(a, b, c, d, tx, ty); - return [rHeight, rWidth]; - } - ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH); - const scaleX = Math.hypot(a, b); - const scaleY = Math.hypot(c, d); - return [scaleX * destW, scaleY * destH]; -} -function compileType3Glyph(imgData) { - const { - width, - height - } = imgData; - if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) { - return null; - } - const POINT_TO_PROCESS_LIMIT = 1000; - const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); - const width1 = width + 1; - let points = new Uint8Array(width1 * (height + 1)); - let i, j, j0; - const lineSize = width + 7 & ~7; - let data = new Uint8Array(lineSize * height), - pos = 0; - for (const elem of imgData.data) { - let mask = 128; - while (mask > 0) { - data[pos++] = elem & mask ? 0 : 255; - mask >>= 1; - } - } - let count = 0; - pos = 0; - if (data[pos] !== 0) { - points[0] = 1; - ++count; - } - for (j = 1; j < width; j++) { - if (data[pos] !== data[pos + 1]) { - points[j] = data[pos] ? 2 : 1; - ++count; - } - pos++; - } - if (data[pos] !== 0) { - points[j] = 2; - ++count; - } - for (i = 1; i < height; i++) { - pos = i * lineSize; - j0 = i * width1; - if (data[pos - lineSize] !== data[pos]) { - points[j0] = data[pos] ? 1 : 8; - ++count; - } - let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); - for (j = 1; j < width; j++) { - sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); - if (POINT_TYPES[sum]) { - points[j0 + j] = POINT_TYPES[sum]; - ++count; - } - pos++; - } - if (data[pos - lineSize] !== data[pos]) { - points[j0 + j] = data[pos] ? 2 : 4; - ++count; - } - if (count > POINT_TO_PROCESS_LIMIT) { - return null; - } - } - pos = lineSize * (height - 1); - j0 = i * width1; - if (data[pos] !== 0) { - points[j0] = 8; - ++count; - } - for (j = 1; j < width; j++) { - if (data[pos] !== data[pos + 1]) { - points[j0 + j] = data[pos] ? 4 : 8; - ++count; - } - pos++; - } - if (data[pos] !== 0) { - points[j0 + j] = 4; - ++count; - } - if (count > POINT_TO_PROCESS_LIMIT) { - return null; - } - const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); - const path = new Path2D(); - for (i = 0; count && i <= height; i++) { - let p = i * width1; - const end = p + width; - while (p < end && !points[p]) { - p++; - } - if (p === end) { - continue; - } - path.moveTo(p % width1, i); - const p0 = p; - let type = points[p]; - do { - const step = steps[type]; - do { - p += step; - } while (!points[p]); - const pp = points[p]; - if (pp !== 5 && pp !== 10) { - type = pp; - points[p] = 0; - } else { - type = pp & 0x33 * type >> 4; - points[p] &= type >> 2 | type << 2; - } - path.lineTo(p % width1, p / width1 | 0); - if (!points[p]) { - --count; - } - } while (p0 !== p); - --i; - } - data = null; - points = null; - const drawOutline = function (c) { - c.save(); - c.scale(1 / width, -1 / height); - c.translate(0, -height); - c.fill(path); - c.beginPath(); - c.restore(); - }; - return drawOutline; -} -class CanvasExtraState { - constructor(width, height) { - this.alphaIsShape = false; - this.fontSize = 0; - this.fontSizeScale = 1; - this.textMatrix = util.IDENTITY_MATRIX; - this.textMatrixScale = 1; - this.fontMatrix = util.FONT_IDENTITY_MATRIX; - this.leading = 0; - this.x = 0; - this.y = 0; - this.lineX = 0; - this.lineY = 0; - this.charSpacing = 0; - this.wordSpacing = 0; - this.textHScale = 1; - this.textRenderingMode = util.TextRenderingMode.FILL; - this.textRise = 0; - this.fillColor = "#000000"; - this.strokeColor = "#000000"; - this.patternFill = false; - this.fillAlpha = 1; - this.strokeAlpha = 1; - this.lineWidth = 1; - this.activeSMask = null; - this.transferMaps = "none"; - this.startNewPathAndClipBox([0, 0, width, height]); - } - clone() { - const clone = Object.create(this); - clone.clipBox = this.clipBox.slice(); - return clone; - } - setCurrentPoint(x, y) { - this.x = x; - this.y = y; - } - updatePathMinMax(transform, x, y) { - [x, y] = util.Util.applyTransform([x, y], transform); - this.minX = Math.min(this.minX, x); - this.minY = Math.min(this.minY, y); - this.maxX = Math.max(this.maxX, x); - this.maxY = Math.max(this.maxY, y); - } - updateRectMinMax(transform, rect) { - const p1 = util.Util.applyTransform(rect, transform); - const p2 = util.Util.applyTransform(rect.slice(2), transform); - const p3 = util.Util.applyTransform([rect[0], rect[3]], transform); - const p4 = util.Util.applyTransform([rect[2], rect[1]], transform); - this.minX = Math.min(this.minX, p1[0], p2[0], p3[0], p4[0]); - this.minY = Math.min(this.minY, p1[1], p2[1], p3[1], p4[1]); - this.maxX = Math.max(this.maxX, p1[0], p2[0], p3[0], p4[0]); - this.maxY = Math.max(this.maxY, p1[1], p2[1], p3[1], p4[1]); - } - updateScalingPathMinMax(transform, minMax) { - util.Util.scaleMinMax(transform, minMax); - this.minX = Math.min(this.minX, minMax[0]); - this.minY = Math.min(this.minY, minMax[1]); - this.maxX = Math.max(this.maxX, minMax[2]); - this.maxY = Math.max(this.maxY, minMax[3]); - } - updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) { - const box = util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax); - if (minMax) { - return; - } - this.updateRectMinMax(transform, box); - } - getPathBoundingBox(pathType = PathType.FILL, transform = null) { - const box = [this.minX, this.minY, this.maxX, this.maxY]; - if (pathType === PathType.STROKE) { - if (!transform) { - (0,util.unreachable)("Stroke bounding box must include transform."); - } - const scale = util.Util.singularValueDecompose2dScale(transform); - const xStrokePad = scale[0] * this.lineWidth / 2; - const yStrokePad = scale[1] * this.lineWidth / 2; - box[0] -= xStrokePad; - box[1] -= yStrokePad; - box[2] += xStrokePad; - box[3] += yStrokePad; - } - return box; - } - updateClipFromPath() { - const intersect = util.Util.intersect(this.clipBox, this.getPathBoundingBox()); - this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]); - } - isEmptyClip() { - return this.minX === Infinity; - } - startNewPathAndClipBox(box) { - this.clipBox = box; - this.minX = Infinity; - this.minY = Infinity; - this.maxX = 0; - this.maxY = 0; - } - getClippedPathBoundingBox(pathType = PathType.FILL, transform = null) { - return util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform)); - } -} -function putBinaryImageData(ctx, imgData) { - if (typeof ImageData !== "undefined" && imgData instanceof ImageData) { - ctx.putImageData(imgData, 0, 0); - return; - } - const height = imgData.height, - width = imgData.width; - const partialChunkHeight = height % FULL_CHUNK_HEIGHT; - const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - let srcPos = 0, - destPos; - const src = imgData.data; - const dest = chunkImgData.data; - let i, j, thisChunkHeight, elemsInThisChunk; - if (imgData.kind === util.ImageKind.GRAYSCALE_1BPP) { - const srcLength = src.byteLength; - const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); - const dest32DataLength = dest32.length; - const fullSrcDiff = width + 7 >> 3; - const white = 0xffffffff; - const black = util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; - for (i = 0; i < totalChunks; i++) { - thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; - destPos = 0; - for (j = 0; j < thisChunkHeight; j++) { - const srcDiff = srcLength - srcPos; - let k = 0; - const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; - const kEndUnrolled = kEnd & ~7; - let mask = 0; - let srcByte = 0; - for (; k < kEndUnrolled; k += 8) { - srcByte = src[srcPos++]; - dest32[destPos++] = srcByte & 128 ? white : black; - dest32[destPos++] = srcByte & 64 ? white : black; - dest32[destPos++] = srcByte & 32 ? white : black; - dest32[destPos++] = srcByte & 16 ? white : black; - dest32[destPos++] = srcByte & 8 ? white : black; - dest32[destPos++] = srcByte & 4 ? white : black; - dest32[destPos++] = srcByte & 2 ? white : black; - dest32[destPos++] = srcByte & 1 ? white : black; - } - for (; k < kEnd; k++) { - if (mask === 0) { - srcByte = src[srcPos++]; - mask = 128; - } - dest32[destPos++] = srcByte & mask ? white : black; - mask >>= 1; - } - } - while (destPos < dest32DataLength) { - dest32[destPos++] = 0; - } - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); - } - } else if (imgData.kind === util.ImageKind.RGBA_32BPP) { - j = 0; - elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; - for (i = 0; i < fullChunks; i++) { - dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); - srcPos += elemsInThisChunk; - ctx.putImageData(chunkImgData, 0, j); - j += FULL_CHUNK_HEIGHT; - } - if (i < totalChunks) { - elemsInThisChunk = width * partialChunkHeight * 4; - dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); - ctx.putImageData(chunkImgData, 0, j); - } - } else if (imgData.kind === util.ImageKind.RGB_24BPP) { - thisChunkHeight = FULL_CHUNK_HEIGHT; - elemsInThisChunk = width * thisChunkHeight; - for (i = 0; i < totalChunks; i++) { - if (i >= fullChunks) { - thisChunkHeight = partialChunkHeight; - elemsInThisChunk = width * thisChunkHeight; - } - destPos = 0; - for (j = elemsInThisChunk; j--;) { - dest[destPos++] = src[srcPos++]; - dest[destPos++] = src[srcPos++]; - dest[destPos++] = src[srcPos++]; - dest[destPos++] = 255; - } - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); - } - } else { - throw new Error(`bad image kind: ${imgData.kind}`); - } -} -function putBinaryImageMask(ctx, imgData) { - if (imgData.bitmap) { - ctx.drawImage(imgData.bitmap, 0, 0); - return; - } - const height = imgData.height, - width = imgData.width; - const partialChunkHeight = height % FULL_CHUNK_HEIGHT; - const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - let srcPos = 0; - const src = imgData.data; - const dest = chunkImgData.data; - for (let i = 0; i < totalChunks; i++) { - const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; - ({ - srcPos - } = convertBlackAndWhiteToRGBA({ - src, - srcPos, - dest, - width, - height: thisChunkHeight, - nonBlackColor: 0 - })); - ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); - } -} -function copyCtxState(sourceCtx, destCtx) { - const properties = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font", "filter"]; - for (const property of properties) { - if (sourceCtx[property] !== undefined) { - destCtx[property] = sourceCtx[property]; - } - } - if (sourceCtx.setLineDash !== undefined) { - destCtx.setLineDash(sourceCtx.getLineDash()); - destCtx.lineDashOffset = sourceCtx.lineDashOffset; - } -} -function resetCtxToDefault(ctx) { - ctx.strokeStyle = ctx.fillStyle = "#000000"; - ctx.fillRule = "nonzero"; - ctx.globalAlpha = 1; - ctx.lineWidth = 1; - ctx.lineCap = "butt"; - ctx.lineJoin = "miter"; - ctx.miterLimit = 10; - ctx.globalCompositeOperation = "source-over"; - ctx.font = "10px sans-serif"; - if (ctx.setLineDash !== undefined) { - ctx.setLineDash([]); - ctx.lineDashOffset = 0; - } - if (!util.isNodeJS) { - const { - filter - } = ctx; - if (filter !== "none" && filter !== "") { - ctx.filter = "none"; - } - } -} -function composeSMaskBackdrop(bytes, r0, g0, b0) { - const length = bytes.length; - for (let i = 3; i < length; i += 4) { - const alpha = bytes[i]; - if (alpha === 0) { - bytes[i - 3] = r0; - bytes[i - 2] = g0; - bytes[i - 1] = b0; - } else if (alpha < 255) { - const alpha_ = 255 - alpha; - bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; - bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; - bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; - } - } -} -function composeSMaskAlpha(maskData, layerData, transferMap) { - const length = maskData.length; - const scale = 1 / 255; - for (let i = 3; i < length; i += 4) { - const alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; - layerData[i] = layerData[i] * alpha * scale | 0; - } -} -function composeSMaskLuminosity(maskData, layerData, transferMap) { - const length = maskData.length; - for (let i = 3; i < length; i += 4) { - const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; - layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; - } -} -function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) { - const hasBackdrop = !!backdrop; - const r0 = hasBackdrop ? backdrop[0] : 0; - const g0 = hasBackdrop ? backdrop[1] : 0; - const b0 = hasBackdrop ? backdrop[2] : 0; - const composeFn = subtype === "Luminosity" ? composeSMaskLuminosity : composeSMaskAlpha; - const PIXELS_TO_PROCESS = 1048576; - const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); - for (let row = 0; row < height; row += chunkSize) { - const chunkHeight = Math.min(chunkSize, height - row); - const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight); - const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight); - if (hasBackdrop) { - composeSMaskBackdrop(maskData.data, r0, g0, b0); - } - composeFn(maskData.data, layerData.data, transferMap); - layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY); - } -} -function composeSMask(ctx, smask, layerCtx, layerBox) { - const layerOffsetX = layerBox[0]; - const layerOffsetY = layerBox[1]; - const layerWidth = layerBox[2] - layerOffsetX; - const layerHeight = layerBox[3] - layerOffsetY; - if (layerWidth === 0 || layerHeight === 0) { - return; - } - genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY); - ctx.save(); - ctx.globalAlpha = 1; - ctx.globalCompositeOperation = "source-over"; - ctx.setTransform(1, 0, 0, 1, 0, 0); - ctx.drawImage(layerCtx.canvas, 0, 0); - ctx.restore(); -} -function getImageSmoothingEnabled(transform, interpolate) { - if (interpolate) { - return true; - } - const scale = util.Util.singularValueDecompose2dScale(transform); - scale[0] = Math.fround(scale[0]); - scale[1] = Math.fround(scale[1]); - const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * display_utils.PixelsPerInch.PDF_TO_CSS_UNITS); - return scale[0] <= actualScale && scale[1] <= actualScale; -} -const LINE_CAP_STYLES = ["butt", "round", "square"]; -const LINE_JOIN_STYLES = ["miter", "round", "bevel"]; -const NORMAL_CLIP = {}; -const EO_CLIP = {}; -class CanvasGraphics { - constructor(canvasCtx, commonObjs, objs, canvasFactory, filterFactory, { - optionalContentConfig, - markedContentStack = null - }, annotationCanvasMap, pageColors) { - this.ctx = canvasCtx; - this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height); - this.stateStack = []; - this.pendingClip = null; - this.pendingEOFill = false; - this.res = null; - this.xobjs = null; - this.commonObjs = commonObjs; - this.objs = objs; - this.canvasFactory = canvasFactory; - this.filterFactory = filterFactory; - this.groupStack = []; - this.processingType3 = null; - this.baseTransform = null; - this.baseTransformStack = []; - this.groupLevel = 0; - this.smaskStack = []; - this.smaskCounter = 0; - this.tempSMask = null; - this.suspendedCtx = null; - this.contentVisible = true; - this.markedContentStack = markedContentStack || []; - this.optionalContentConfig = optionalContentConfig; - this.cachedCanvases = new CachedCanvases(this.canvasFactory); - this.cachedPatterns = new Map(); - this.annotationCanvasMap = annotationCanvasMap; - this.viewportScale = 1; - this.outputScaleX = 1; - this.outputScaleY = 1; - this.pageColors = pageColors; - this._cachedScaleForStroking = [-1, 0]; - this._cachedGetSinglePixelWidth = null; - this._cachedBitmapsMap = new Map(); - } - getObject(data, fallback = null) { - if (typeof data === "string") { - return data.startsWith("g_") ? this.commonObjs.get(data) : this.objs.get(data); - } - return fallback; - } - beginDrawing({ - transform, - viewport, - transparency = false, - background = null - }) { - const width = this.ctx.canvas.width; - const height = this.ctx.canvas.height; - const savedFillStyle = this.ctx.fillStyle; - this.ctx.fillStyle = background || "#ffffff"; - this.ctx.fillRect(0, 0, width, height); - this.ctx.fillStyle = savedFillStyle; - if (transparency) { - const transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height); - this.compositeCtx = this.ctx; - this.transparentCanvas = transparentCanvas.canvas; - this.ctx = transparentCanvas.context; - this.ctx.save(); - this.ctx.transform(...(0,display_utils.getCurrentTransform)(this.compositeCtx)); - } - this.ctx.save(); - resetCtxToDefault(this.ctx); - if (transform) { - this.ctx.transform(...transform); - this.outputScaleX = transform[0]; - this.outputScaleY = transform[0]; - } - this.ctx.transform(...viewport.transform); - this.viewportScale = viewport.scale; - this.baseTransform = (0,display_utils.getCurrentTransform)(this.ctx); - } - executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { - const argsArray = operatorList.argsArray; - const fnArray = operatorList.fnArray; - let i = executionStartIdx || 0; - const argsArrayLen = argsArray.length; - if (argsArrayLen === i) { - return i; - } - const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === "function"; - const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; - let steps = 0; - const commonObjs = this.commonObjs; - const objs = this.objs; - let fnId; - while (true) { - if (stepper !== undefined && i === stepper.nextBreakPoint) { - stepper.breakIt(i, continueCallback); - return i; - } - fnId = fnArray[i]; - if (fnId !== util.OPS.dependency) { - this[fnId].apply(this, argsArray[i]); - } else { - for (const depObjId of argsArray[i]) { - const objsPool = depObjId.startsWith("g_") ? commonObjs : objs; - if (!objsPool.has(depObjId)) { - objsPool.get(depObjId, continueCallback); - return i; - } - } - } - i++; - if (i === argsArrayLen) { - return i; - } - if (chunkOperations && ++steps > EXECUTION_STEPS) { - if (Date.now() > endTime) { - continueCallback(); - return i; - } - steps = 0; - } - } - } - #restoreInitialState() { - while (this.stateStack.length || this.inSMaskMode) { - this.restore(); - } - this.ctx.restore(); - if (this.transparentCanvas) { - this.ctx = this.compositeCtx; - this.ctx.save(); - this.ctx.setTransform(1, 0, 0, 1, 0, 0); - this.ctx.drawImage(this.transparentCanvas, 0, 0); - this.ctx.restore(); - this.transparentCanvas = null; - } - } - endDrawing() { - this.#restoreInitialState(); - this.cachedCanvases.clear(); - this.cachedPatterns.clear(); - for (const cache of this._cachedBitmapsMap.values()) { - for (const canvas of cache.values()) { - if (typeof HTMLCanvasElement !== "undefined" && canvas instanceof HTMLCanvasElement) { - canvas.width = canvas.height = 0; - } - } - cache.clear(); - } - this._cachedBitmapsMap.clear(); - this.#drawFilter(); - } - #drawFilter() { - if (this.pageColors) { - const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background); - if (hcmFilterId !== "none") { - const savedFilter = this.ctx.filter; - this.ctx.filter = hcmFilterId; - this.ctx.drawImage(this.ctx.canvas, 0, 0); - this.ctx.filter = savedFilter; - } - } - } - _scaleImage(img, inverseTransform) { - const width = img.width; - const height = img.height; - let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1); - let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1); - let paintWidth = width, - paintHeight = height; - let tmpCanvasId = "prescale1"; - let tmpCanvas, tmpCtx; - while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { - let newWidth = paintWidth, - newHeight = paintHeight; - if (widthScale > 2 && paintWidth > 1) { - newWidth = paintWidth >= 16384 ? Math.floor(paintWidth / 2) - 1 || 1 : Math.ceil(paintWidth / 2); - widthScale /= paintWidth / newWidth; - } - if (heightScale > 2 && paintHeight > 1) { - newHeight = paintHeight >= 16384 ? Math.floor(paintHeight / 2) - 1 || 1 : Math.ceil(paintHeight) / 2; - heightScale /= paintHeight / newHeight; - } - tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); - tmpCtx = tmpCanvas.context; - tmpCtx.clearRect(0, 0, newWidth, newHeight); - tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); - img = tmpCanvas.canvas; - paintWidth = newWidth; - paintHeight = newHeight; - tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1"; - } - return { - img, - paintWidth, - paintHeight - }; - } - _createMaskCanvas(img) { - const ctx = this.ctx; - const { - width, - height - } = img; - const fillColor = this.current.fillColor; - const isPatternFill = this.current.patternFill; - const currentTransform = (0,display_utils.getCurrentTransform)(ctx); - let cache, cacheKey, scaled, maskCanvas; - if ((img.bitmap || img.data) && img.count > 1) { - const mainKey = img.bitmap || img.data.buffer; - cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]); - cache = this._cachedBitmapsMap.get(mainKey); - if (!cache) { - cache = new Map(); - this._cachedBitmapsMap.set(mainKey, cache); - } - const cachedImage = cache.get(cacheKey); - if (cachedImage && !isPatternFill) { - const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]); - const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]); - return { - canvas: cachedImage, - offsetX, - offsetY - }; - } - scaled = cachedImage; - } - if (!scaled) { - maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); - putBinaryImageMask(maskCanvas.context, img); - } - let maskToCanvas = util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]); - maskToCanvas = util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]); - const [minX, minY, maxX, maxY] = util.Util.getAxialAlignedBoundingBox([0, 0, width, height], maskToCanvas); - const drawnWidth = Math.round(maxX - minX) || 1; - const drawnHeight = Math.round(maxY - minY) || 1; - const fillCanvas = this.cachedCanvases.getCanvas("fillCanvas", drawnWidth, drawnHeight); - const fillCtx = fillCanvas.context; - const offsetX = minX; - const offsetY = minY; - fillCtx.translate(-offsetX, -offsetY); - fillCtx.transform(...maskToCanvas); - if (!scaled) { - scaled = this._scaleImage(maskCanvas.canvas, (0,display_utils.getCurrentTransformInverse)(fillCtx)); - scaled = scaled.img; - if (cache && isPatternFill) { - cache.set(cacheKey, scaled); - } - } - fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0,display_utils.getCurrentTransform)(fillCtx), img.interpolate); - drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height); - fillCtx.globalCompositeOperation = "source-in"; - const inverse = util.Util.transform((0,display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]); - fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, PathType.FILL) : fillColor; - fillCtx.fillRect(0, 0, width, height); - if (cache && !isPatternFill) { - this.cachedCanvases.delete("fillCanvas"); - cache.set(cacheKey, fillCanvas.canvas); - } - return { - canvas: fillCanvas.canvas, - offsetX: Math.round(offsetX), - offsetY: Math.round(offsetY) - }; - } - setLineWidth(width) { - if (width !== this.current.lineWidth) { - this._cachedScaleForStroking[0] = -1; - } - this.current.lineWidth = width; - this.ctx.lineWidth = width; - } - setLineCap(style) { - this.ctx.lineCap = LINE_CAP_STYLES[style]; - } - setLineJoin(style) { - this.ctx.lineJoin = LINE_JOIN_STYLES[style]; - } - setMiterLimit(limit) { - this.ctx.miterLimit = limit; - } - setDash(dashArray, dashPhase) { - const ctx = this.ctx; - if (ctx.setLineDash !== undefined) { - ctx.setLineDash(dashArray); - ctx.lineDashOffset = dashPhase; - } - } - setRenderingIntent(intent) {} - setFlatness(flatness) {} - setGState(states) { - for (const [key, value] of states) { - switch (key) { - case "LW": - this.setLineWidth(value); - break; - case "LC": - this.setLineCap(value); - break; - case "LJ": - this.setLineJoin(value); - break; - case "ML": - this.setMiterLimit(value); - break; - case "D": - this.setDash(value[0], value[1]); - break; - case "RI": - this.setRenderingIntent(value); - break; - case "FL": - this.setFlatness(value); - break; - case "Font": - this.setFont(value[0], value[1]); - break; - case "CA": - this.current.strokeAlpha = value; - break; - case "ca": - this.current.fillAlpha = value; - this.ctx.globalAlpha = value; - break; - case "BM": - this.ctx.globalCompositeOperation = value; - break; - case "SMask": - this.current.activeSMask = value ? this.tempSMask : null; - this.tempSMask = null; - this.checkSMaskState(); - break; - case "TR": - this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value); - break; - } - } - } - get inSMaskMode() { - return !!this.suspendedCtx; - } - checkSMaskState() { - const inSMaskMode = this.inSMaskMode; - if (this.current.activeSMask && !inSMaskMode) { - this.beginSMaskMode(); - } else if (!this.current.activeSMask && inSMaskMode) { - this.endSMaskMode(); - } - } - beginSMaskMode() { - if (this.inSMaskMode) { - throw new Error("beginSMaskMode called while already in smask mode"); - } - const drawnWidth = this.ctx.canvas.width; - const drawnHeight = this.ctx.canvas.height; - const cacheId = "smaskGroupAt" + this.groupLevel; - const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight); - this.suspendedCtx = this.ctx; - this.ctx = scratchCanvas.context; - const ctx = this.ctx; - ctx.setTransform(...(0,display_utils.getCurrentTransform)(this.suspendedCtx)); - copyCtxState(this.suspendedCtx, ctx); - mirrorContextOperations(ctx, this.suspendedCtx); - this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); - } - endSMaskMode() { - if (!this.inSMaskMode) { - throw new Error("endSMaskMode called while not in smask mode"); - } - this.ctx._removeMirroring(); - copyCtxState(this.ctx, this.suspendedCtx); - this.ctx = this.suspendedCtx; - this.suspendedCtx = null; - } - compose(dirtyBox) { - if (!this.current.activeSMask) { - return; - } - if (!dirtyBox) { - dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height]; - } else { - dirtyBox[0] = Math.floor(dirtyBox[0]); - dirtyBox[1] = Math.floor(dirtyBox[1]); - dirtyBox[2] = Math.ceil(dirtyBox[2]); - dirtyBox[3] = Math.ceil(dirtyBox[3]); - } - const smask = this.current.activeSMask; - const suspendedCtx = this.suspendedCtx; - composeSMask(suspendedCtx, smask, this.ctx, dirtyBox); - this.ctx.save(); - this.ctx.setTransform(1, 0, 0, 1, 0, 0); - this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height); - this.ctx.restore(); - } - save() { - if (this.inSMaskMode) { - copyCtxState(this.ctx, this.suspendedCtx); - this.suspendedCtx.save(); - } else { - this.ctx.save(); - } - const old = this.current; - this.stateStack.push(old); - this.current = old.clone(); - } - restore() { - if (this.stateStack.length === 0 && this.inSMaskMode) { - this.endSMaskMode(); - } - if (this.stateStack.length !== 0) { - this.current = this.stateStack.pop(); - if (this.inSMaskMode) { - this.suspendedCtx.restore(); - copyCtxState(this.suspendedCtx, this.ctx); - } else { - this.ctx.restore(); - } - this.checkSMaskState(); - this.pendingClip = null; - this._cachedScaleForStroking[0] = -1; - this._cachedGetSinglePixelWidth = null; - } - } - transform(a, b, c, d, e, f) { - this.ctx.transform(a, b, c, d, e, f); - this._cachedScaleForStroking[0] = -1; - this._cachedGetSinglePixelWidth = null; - } - constructPath(ops, args, minMax) { - const ctx = this.ctx; - const current = this.current; - let x = current.x, - y = current.y; - let startX, startY; - const currentTransform = (0,display_utils.getCurrentTransform)(ctx); - const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0; - const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null; - for (let i = 0, j = 0, ii = ops.length; i < ii; i++) { - switch (ops[i] | 0) { - case util.OPS.rectangle: - x = args[j++]; - y = args[j++]; - const width = args[j++]; - const height = args[j++]; - const xw = x + width; - const yh = y + height; - ctx.moveTo(x, y); - if (width === 0 || height === 0) { - ctx.lineTo(xw, yh); - } else { - ctx.lineTo(xw, y); - ctx.lineTo(xw, yh); - ctx.lineTo(x, yh); - } - if (!isScalingMatrix) { - current.updateRectMinMax(currentTransform, [x, y, xw, yh]); - } - ctx.closePath(); - break; - case util.OPS.moveTo: - x = args[j++]; - y = args[j++]; - ctx.moveTo(x, y); - if (!isScalingMatrix) { - current.updatePathMinMax(currentTransform, x, y); - } - break; - case util.OPS.lineTo: - x = args[j++]; - y = args[j++]; - ctx.lineTo(x, y); - if (!isScalingMatrix) { - current.updatePathMinMax(currentTransform, x, y); - } - break; - case util.OPS.curveTo: - startX = x; - startY = y; - x = args[j + 4]; - y = args[j + 5]; - ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); - current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier); - j += 6; - break; - case util.OPS.curveTo2: - startX = x; - startY = y; - ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); - current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier); - x = args[j + 2]; - y = args[j + 3]; - j += 4; - break; - case util.OPS.curveTo3: - startX = x; - startY = y; - x = args[j + 2]; - y = args[j + 3]; - ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); - current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier); - j += 4; - break; - case util.OPS.closePath: - ctx.closePath(); - break; - } - } - if (isScalingMatrix) { - current.updateScalingPathMinMax(currentTransform, minMaxForBezier); - } - current.setCurrentPoint(x, y); - } - closePath() { - this.ctx.closePath(); - } - stroke(consumePath = true) { - const ctx = this.ctx; - const strokeColor = this.current.strokeColor; - ctx.globalAlpha = this.current.strokeAlpha; - if (this.contentVisible) { - if (typeof strokeColor === "object" && strokeColor?.getPattern) { - ctx.save(); - ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0,display_utils.getCurrentTransformInverse)(ctx), PathType.STROKE); - this.rescaleAndStroke(false); - ctx.restore(); - } else { - this.rescaleAndStroke(true); - } - } - if (consumePath) { - this.consumePath(this.current.getClippedPathBoundingBox()); - } - ctx.globalAlpha = this.current.fillAlpha; - } - closeStroke() { - this.closePath(); - this.stroke(); - } - fill(consumePath = true) { - const ctx = this.ctx; - const fillColor = this.current.fillColor; - const isPatternFill = this.current.patternFill; - let needRestore = false; - if (isPatternFill) { - ctx.save(); - ctx.fillStyle = fillColor.getPattern(ctx, this, (0,display_utils.getCurrentTransformInverse)(ctx), PathType.FILL); - needRestore = true; - } - const intersect = this.current.getClippedPathBoundingBox(); - if (this.contentVisible && intersect !== null) { - if (this.pendingEOFill) { - ctx.fill("evenodd"); - this.pendingEOFill = false; - } else { - ctx.fill(); - } - } - if (needRestore) { - ctx.restore(); - } - if (consumePath) { - this.consumePath(intersect); - } - } - eoFill() { - this.pendingEOFill = true; - this.fill(); - } - fillStroke() { - this.fill(false); - this.stroke(false); - this.consumePath(); - } - eoFillStroke() { - this.pendingEOFill = true; - this.fillStroke(); - } - closeFillStroke() { - this.closePath(); - this.fillStroke(); - } - closeEOFillStroke() { - this.pendingEOFill = true; - this.closePath(); - this.fillStroke(); - } - endPath() { - this.consumePath(); - } - clip() { - this.pendingClip = NORMAL_CLIP; - } - eoClip() { - this.pendingClip = EO_CLIP; - } - beginText() { - this.current.textMatrix = util.IDENTITY_MATRIX; - this.current.textMatrixScale = 1; - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - } - endText() { - const paths = this.pendingTextPaths; - const ctx = this.ctx; - if (paths === undefined) { - ctx.beginPath(); - return; - } - ctx.save(); - ctx.beginPath(); - for (const path of paths) { - ctx.setTransform(...path.transform); - ctx.translate(path.x, path.y); - path.addToPath(ctx, path.fontSize); - } - ctx.restore(); - ctx.clip(); - ctx.beginPath(); - delete this.pendingTextPaths; - } - setCharSpacing(spacing) { - this.current.charSpacing = spacing; - } - setWordSpacing(spacing) { - this.current.wordSpacing = spacing; - } - setHScale(scale) { - this.current.textHScale = scale / 100; - } - setLeading(leading) { - this.current.leading = -leading; - } - setFont(fontRefName, size) { - const fontObj = this.commonObjs.get(fontRefName); - const current = this.current; - if (!fontObj) { - throw new Error(`Can't find font for ${fontRefName}`); - } - current.fontMatrix = fontObj.fontMatrix || util.FONT_IDENTITY_MATRIX; - if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { - (0,util.warn)("Invalid font matrix for font " + fontRefName); - } - if (size < 0) { - size = -size; - current.fontDirection = -1; - } else { - current.fontDirection = 1; - } - this.current.font = fontObj; - this.current.fontSize = size; - if (fontObj.isType3Font) { - return; - } - const name = fontObj.loadedName || "sans-serif"; - const typeface = fontObj.systemFontInfo?.css || `"${name}", ${fontObj.fallbackName}`; - let bold = "normal"; - if (fontObj.black) { - bold = "900"; - } else if (fontObj.bold) { - bold = "bold"; - } - const italic = fontObj.italic ? "italic" : "normal"; - let browserFontSize = size; - if (size < MIN_FONT_SIZE) { - browserFontSize = MIN_FONT_SIZE; - } else if (size > MAX_FONT_SIZE) { - browserFontSize = MAX_FONT_SIZE; - } - this.current.fontSizeScale = size / browserFontSize; - this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`; - } - setTextRenderingMode(mode) { - this.current.textRenderingMode = mode; - } - setTextRise(rise) { - this.current.textRise = rise; - } - moveText(x, y) { - this.current.x = this.current.lineX += x; - this.current.y = this.current.lineY += y; - } - setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); - } - setTextMatrix(a, b, c, d, e, f) { - this.current.textMatrix = [a, b, c, d, e, f]; - this.current.textMatrixScale = Math.hypot(a, b); - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0; - } - nextLine() { - this.moveText(0, this.current.leading); - } - paintChar(character, x, y, patternTransform) { - const ctx = this.ctx; - const current = this.current; - const font = current.font; - const textRenderingMode = current.textRenderingMode; - const fontSize = current.fontSize / current.fontSizeScale; - const fillStrokeMode = textRenderingMode & util.TextRenderingMode.FILL_STROKE_MASK; - const isAddToPathSet = !!(textRenderingMode & util.TextRenderingMode.ADD_TO_PATH_FLAG); - const patternFill = current.patternFill && !font.missingFile; - let addToPath; - if (font.disableFontFace || isAddToPathSet || patternFill) { - addToPath = font.getPathGenerator(this.commonObjs, character); - } - if (font.disableFontFace || patternFill) { - ctx.save(); - ctx.translate(x, y); - ctx.beginPath(); - addToPath(ctx, fontSize); - if (patternTransform) { - ctx.setTransform(...patternTransform); - } - if (fillStrokeMode === util.TextRenderingMode.FILL || fillStrokeMode === util.TextRenderingMode.FILL_STROKE) { - ctx.fill(); - } - if (fillStrokeMode === util.TextRenderingMode.STROKE || fillStrokeMode === util.TextRenderingMode.FILL_STROKE) { - ctx.stroke(); - } - ctx.restore(); - } else { - if (fillStrokeMode === util.TextRenderingMode.FILL || fillStrokeMode === util.TextRenderingMode.FILL_STROKE) { - ctx.fillText(character, x, y); - } - if (fillStrokeMode === util.TextRenderingMode.STROKE || fillStrokeMode === util.TextRenderingMode.FILL_STROKE) { - ctx.strokeText(character, x, y); - } - } - if (isAddToPathSet) { - const paths = this.pendingTextPaths ||= []; - paths.push({ - transform: (0,display_utils.getCurrentTransform)(ctx), - x, - y, - fontSize, - addToPath - }); - } - } - get isFontSubpixelAAEnabled() { - const { - context: ctx - } = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10); - ctx.scale(1.5, 1); - ctx.fillText("I", 0, 10); - const data = ctx.getImageData(0, 0, 10, 10).data; - let enabled = false; - for (let i = 3; i < data.length; i += 4) { - if (data[i] > 0 && data[i] < 255) { - enabled = true; - break; - } - } - return (0,util.shadow)(this, "isFontSubpixelAAEnabled", enabled); - } - showText(glyphs) { - const current = this.current; - const font = current.font; - if (font.isType3Font) { - return this.showType3Text(glyphs); - } - const fontSize = current.fontSize; - if (fontSize === 0) { - return undefined; - } - const ctx = this.ctx; - const fontSizeScale = current.fontSizeScale; - const charSpacing = current.charSpacing; - const wordSpacing = current.wordSpacing; - const fontDirection = current.fontDirection; - const textHScale = current.textHScale * fontDirection; - const glyphsLength = glyphs.length; - const vertical = font.vertical; - const spacingDir = vertical ? 1 : -1; - const defaultVMetrics = font.defaultVMetrics; - const widthAdvanceScale = fontSize * current.fontMatrix[0]; - const simpleFillText = current.textRenderingMode === util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; - ctx.save(); - ctx.transform(...current.textMatrix); - ctx.translate(current.x, current.y + current.textRise); - if (fontDirection > 0) { - ctx.scale(textHScale, -1); - } else { - ctx.scale(textHScale, 1); - } - let patternTransform; - if (current.patternFill) { - ctx.save(); - const pattern = current.fillColor.getPattern(ctx, this, (0,display_utils.getCurrentTransformInverse)(ctx), PathType.FILL); - patternTransform = (0,display_utils.getCurrentTransform)(ctx); - ctx.restore(); - ctx.fillStyle = pattern; - } - let lineWidth = current.lineWidth; - const scale = current.textMatrixScale; - if (scale === 0 || lineWidth === 0) { - const fillStrokeMode = current.textRenderingMode & util.TextRenderingMode.FILL_STROKE_MASK; - if (fillStrokeMode === util.TextRenderingMode.STROKE || fillStrokeMode === util.TextRenderingMode.FILL_STROKE) { - lineWidth = this.getSinglePixelWidth(); - } - } else { - lineWidth /= scale; - } - if (fontSizeScale !== 1.0) { - ctx.scale(fontSizeScale, fontSizeScale); - lineWidth /= fontSizeScale; - } - ctx.lineWidth = lineWidth; - if (font.isInvalidPDFjsFont) { - const chars = []; - let width = 0; - for (const glyph of glyphs) { - chars.push(glyph.unicode); - width += glyph.width; - } - ctx.fillText(chars.join(""), 0, 0); - current.x += width * widthAdvanceScale * textHScale; - ctx.restore(); - this.compose(); - return undefined; - } - let x = 0, - i; - for (i = 0; i < glyphsLength; ++i) { - const glyph = glyphs[i]; - if (typeof glyph === "number") { - x += spacingDir * glyph * fontSize / 1000; - continue; - } - let restoreNeeded = false; - const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - const character = glyph.fontChar; - const accent = glyph.accent; - let scaledX, scaledY; - let width = glyph.width; - if (vertical) { - const vmetric = glyph.vmetric || defaultVMetrics; - const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale; - const vy = vmetric[2] * widthAdvanceScale; - width = vmetric ? -vmetric[0] : width; - scaledX = vx / fontSizeScale; - scaledY = (x + vy) / fontSizeScale; - } else { - scaledX = x / fontSizeScale; - scaledY = 0; - } - if (font.remeasure && width > 0) { - const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; - if (width < measuredWidth && this.isFontSubpixelAAEnabled) { - const characterScaleX = width / measuredWidth; - restoreNeeded = true; - ctx.save(); - ctx.scale(characterScaleX, 1); - scaledX /= characterScaleX; - } else if (width !== measuredWidth) { - scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; - } - } - if (this.contentVisible && (glyph.isInFont || font.missingFile)) { - if (simpleFillText && !accent) { - ctx.fillText(character, scaledX, scaledY); - } else { - this.paintChar(character, scaledX, scaledY, patternTransform); - if (accent) { - const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale; - const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale; - this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); - } - } - } - const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection; - x += charWidth; - if (restoreNeeded) { - ctx.restore(); - } - } - if (vertical) { - current.y -= x; - } else { - current.x += x * textHScale; - } - ctx.restore(); - this.compose(); - return undefined; - } - showType3Text(glyphs) { - const ctx = this.ctx; - const current = this.current; - const font = current.font; - const fontSize = current.fontSize; - const fontDirection = current.fontDirection; - const spacingDir = font.vertical ? 1 : -1; - const charSpacing = current.charSpacing; - const wordSpacing = current.wordSpacing; - const textHScale = current.textHScale * fontDirection; - const fontMatrix = current.fontMatrix || util.FONT_IDENTITY_MATRIX; - const glyphsLength = glyphs.length; - const isTextInvisible = current.textRenderingMode === util.TextRenderingMode.INVISIBLE; - let i, glyph, width, spacingLength; - if (isTextInvisible || fontSize === 0) { - return; - } - this._cachedScaleForStroking[0] = -1; - this._cachedGetSinglePixelWidth = null; - ctx.save(); - ctx.transform(...current.textMatrix); - ctx.translate(current.x, current.y); - ctx.scale(textHScale, fontDirection); - for (i = 0; i < glyphsLength; ++i) { - glyph = glyphs[i]; - if (typeof glyph === "number") { - spacingLength = spacingDir * glyph * fontSize / 1000; - this.ctx.translate(spacingLength, 0); - current.x += spacingLength * textHScale; - continue; - } - const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - const operatorList = font.charProcOperatorList[glyph.operatorListId]; - if (!operatorList) { - (0,util.warn)(`Type3 character "${glyph.operatorListId}" is not available.`); - continue; - } - if (this.contentVisible) { - this.processingType3 = glyph; - this.save(); - ctx.scale(fontSize, fontSize); - ctx.transform(...fontMatrix); - this.executeOperatorList(operatorList); - this.restore(); - } - const transformed = util.Util.applyTransform([glyph.width, 0], fontMatrix); - width = transformed[0] * fontSize + spacing; - ctx.translate(width, 0); - current.x += width * textHScale; - } - ctx.restore(); - this.processingType3 = null; - } - setCharWidth(xWidth, yWidth) {} - setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { - this.ctx.rect(llx, lly, urx - llx, ury - lly); - this.ctx.clip(); - this.endPath(); - } - getColorN_Pattern(IR) { - let pattern; - if (IR[0] === "TilingPattern") { - const color = IR[1]; - const baseTransform = this.baseTransform || (0,display_utils.getCurrentTransform)(this.ctx); - const canvasGraphicsFactory = { - createCanvasGraphics: ctx => new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, { - optionalContentConfig: this.optionalContentConfig, - markedContentStack: this.markedContentStack - }) - }; - pattern = new TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); - } else { - pattern = this._getPattern(IR[1], IR[2]); - } - return pattern; - } - setStrokeColorN() { - this.current.strokeColor = this.getColorN_Pattern(arguments); - } - setFillColorN() { - this.current.fillColor = this.getColorN_Pattern(arguments); - this.current.patternFill = true; - } - setStrokeRGBColor(r, g, b) { - const color = util.Util.makeHexColor(r, g, b); - this.ctx.strokeStyle = color; - this.current.strokeColor = color; - } - setFillRGBColor(r, g, b) { - const color = util.Util.makeHexColor(r, g, b); - this.ctx.fillStyle = color; - this.current.fillColor = color; - this.current.patternFill = false; - } - _getPattern(objId, matrix = null) { - let pattern; - if (this.cachedPatterns.has(objId)) { - pattern = this.cachedPatterns.get(objId); - } else { - pattern = getShadingPattern(this.getObject(objId)); - this.cachedPatterns.set(objId, pattern); - } - if (matrix) { - pattern.matrix = matrix; - } - return pattern; - } - shadingFill(objId) { - if (!this.contentVisible) { - return; - } - const ctx = this.ctx; - this.save(); - const pattern = this._getPattern(objId); - ctx.fillStyle = pattern.getPattern(ctx, this, (0,display_utils.getCurrentTransformInverse)(ctx), PathType.SHADING); - const inv = (0,display_utils.getCurrentTransformInverse)(ctx); - if (inv) { - const { - width, - height - } = ctx.canvas; - const [x0, y0, x1, y1] = util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv); - this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); - } else { - this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); - } - this.compose(this.current.getClippedPathBoundingBox()); - this.restore(); - } - beginInlineImage() { - (0,util.unreachable)("Should not call beginInlineImage"); - } - beginImageData() { - (0,util.unreachable)("Should not call beginImageData"); - } - paintFormXObjectBegin(matrix, bbox) { - if (!this.contentVisible) { - return; - } - this.save(); - this.baseTransformStack.push(this.baseTransform); - if (Array.isArray(matrix) && matrix.length === 6) { - this.transform(...matrix); - } - this.baseTransform = (0,display_utils.getCurrentTransform)(this.ctx); - if (bbox) { - const width = bbox[2] - bbox[0]; - const height = bbox[3] - bbox[1]; - this.ctx.rect(bbox[0], bbox[1], width, height); - this.current.updateRectMinMax((0,display_utils.getCurrentTransform)(this.ctx), bbox); - this.clip(); - this.endPath(); - } - } - paintFormXObjectEnd() { - if (!this.contentVisible) { - return; - } - this.restore(); - this.baseTransform = this.baseTransformStack.pop(); - } - beginGroup(group) { - if (!this.contentVisible) { - return; - } - this.save(); - if (this.inSMaskMode) { - this.endSMaskMode(); - this.current.activeSMask = null; - } - const currentCtx = this.ctx; - if (!group.isolated) { - (0,util.info)("TODO: Support non-isolated groups."); - } - if (group.knockout) { - (0,util.warn)("Knockout groups not supported."); - } - const currentTransform = (0,display_utils.getCurrentTransform)(currentCtx); - if (group.matrix) { - currentCtx.transform(...group.matrix); - } - if (!group.bbox) { - throw new Error("Bounding box is required."); - } - let bounds = util.Util.getAxialAlignedBoundingBox(group.bbox, (0,display_utils.getCurrentTransform)(currentCtx)); - const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; - bounds = util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; - const offsetX = Math.floor(bounds[0]); - const offsetY = Math.floor(bounds[1]); - let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); - let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); - let scaleX = 1, - scaleY = 1; - if (drawnWidth > MAX_GROUP_SIZE) { - scaleX = drawnWidth / MAX_GROUP_SIZE; - drawnWidth = MAX_GROUP_SIZE; - } - if (drawnHeight > MAX_GROUP_SIZE) { - scaleY = drawnHeight / MAX_GROUP_SIZE; - drawnHeight = MAX_GROUP_SIZE; - } - this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]); - let cacheId = "groupAt" + this.groupLevel; - if (group.smask) { - cacheId += "_smask_" + this.smaskCounter++ % 2; - } - const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight); - const groupCtx = scratchCanvas.context; - groupCtx.scale(1 / scaleX, 1 / scaleY); - groupCtx.translate(-offsetX, -offsetY); - groupCtx.transform(...currentTransform); - if (group.smask) { - this.smaskStack.push({ - canvas: scratchCanvas.canvas, - context: groupCtx, - offsetX, - offsetY, - scaleX, - scaleY, - subtype: group.smask.subtype, - backdrop: group.smask.backdrop, - transferMap: group.smask.transferMap || null, - startTransformInverse: null - }); - } else { - currentCtx.setTransform(1, 0, 0, 1, 0, 0); - currentCtx.translate(offsetX, offsetY); - currentCtx.scale(scaleX, scaleY); - currentCtx.save(); - } - copyCtxState(currentCtx, groupCtx); - this.ctx = groupCtx; - this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); - this.groupStack.push(currentCtx); - this.groupLevel++; - } - endGroup(group) { - if (!this.contentVisible) { - return; - } - this.groupLevel--; - const groupCtx = this.ctx; - const ctx = this.groupStack.pop(); - this.ctx = ctx; - this.ctx.imageSmoothingEnabled = false; - if (group.smask) { - this.tempSMask = this.smaskStack.pop(); - this.restore(); - } else { - this.ctx.restore(); - const currentMtx = (0,display_utils.getCurrentTransform)(this.ctx); - this.restore(); - this.ctx.save(); - this.ctx.setTransform(...currentMtx); - const dirtyBox = util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx); - this.ctx.drawImage(groupCtx.canvas, 0, 0); - this.ctx.restore(); - this.compose(dirtyBox); - } - } - beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) { - this.#restoreInitialState(); - resetCtxToDefault(this.ctx); - this.ctx.save(); - this.save(); - if (this.baseTransform) { - this.ctx.setTransform(...this.baseTransform); - } - if (Array.isArray(rect) && rect.length === 4) { - const width = rect[2] - rect[0]; - const height = rect[3] - rect[1]; - if (hasOwnCanvas && this.annotationCanvasMap) { - transform = transform.slice(); - transform[4] -= rect[0]; - transform[5] -= rect[1]; - rect = rect.slice(); - rect[0] = rect[1] = 0; - rect[2] = width; - rect[3] = height; - const [scaleX, scaleY] = util.Util.singularValueDecompose2dScale((0,display_utils.getCurrentTransform)(this.ctx)); - const { - viewportScale - } = this; - const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale); - const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale); - this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight); - const { - canvas, - context - } = this.annotationCanvas; - this.annotationCanvasMap.set(id, canvas); - this.annotationCanvas.savedCtx = this.ctx; - this.ctx = context; - this.ctx.save(); - this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY); - resetCtxToDefault(this.ctx); - } else { - resetCtxToDefault(this.ctx); - this.ctx.rect(rect[0], rect[1], width, height); - this.ctx.clip(); - this.endPath(); - } - } - this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height); - this.transform(...transform); - this.transform(...matrix); - } - endAnnotation() { - if (this.annotationCanvas) { - this.ctx.restore(); - this.#drawFilter(); - this.ctx = this.annotationCanvas.savedCtx; - delete this.annotationCanvas.savedCtx; - delete this.annotationCanvas; - } - } - paintImageMaskXObject(img) { - if (!this.contentVisible) { - return; - } - const count = img.count; - img = this.getObject(img.data, img); - img.count = count; - const ctx = this.ctx; - const glyph = this.processingType3; - if (glyph) { - if (glyph.compiled === undefined) { - glyph.compiled = compileType3Glyph(img); - } - if (glyph.compiled) { - glyph.compiled(ctx); - return; - } - } - const mask = this._createMaskCanvas(img); - const maskCanvas = mask.canvas; - ctx.save(); - ctx.setTransform(1, 0, 0, 1, 0, 0); - ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY); - ctx.restore(); - this.compose(); - } - paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) { - if (!this.contentVisible) { - return; - } - img = this.getObject(img.data, img); - const ctx = this.ctx; - ctx.save(); - const currentTransform = (0,display_utils.getCurrentTransform)(ctx); - ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0); - const mask = this._createMaskCanvas(img); - ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]); - for (let i = 0, ii = positions.length; i < ii; i += 2) { - const trans = util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]); - const [x, y] = util.Util.applyTransform([0, 0], trans); - ctx.drawImage(mask.canvas, x, y); - } - ctx.restore(); - this.compose(); - } - paintImageMaskXObjectGroup(images) { - if (!this.contentVisible) { - return; - } - const ctx = this.ctx; - const fillColor = this.current.fillColor; - const isPatternFill = this.current.patternFill; - for (const image of images) { - const { - data, - width, - height, - transform - } = image; - const maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); - const maskCtx = maskCanvas.context; - maskCtx.save(); - const img = this.getObject(data, image); - putBinaryImageMask(maskCtx, img); - maskCtx.globalCompositeOperation = "source-in"; - maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0,display_utils.getCurrentTransformInverse)(ctx), PathType.FILL) : fillColor; - maskCtx.fillRect(0, 0, width, height); - maskCtx.restore(); - ctx.save(); - ctx.transform(...transform); - ctx.scale(1, -1); - drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); - ctx.restore(); - } - this.compose(); - } - paintImageXObject(objId) { - if (!this.contentVisible) { - return; - } - const imgData = this.getObject(objId); - if (!imgData) { - (0,util.warn)("Dependent image isn't ready yet"); - return; - } - this.paintInlineImageXObject(imgData); - } - paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { - if (!this.contentVisible) { - return; - } - const imgData = this.getObject(objId); - if (!imgData) { - (0,util.warn)("Dependent image isn't ready yet"); - return; - } - const width = imgData.width; - const height = imgData.height; - const map = []; - for (let i = 0, ii = positions.length; i < ii; i += 2) { - map.push({ - transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], - x: 0, - y: 0, - w: width, - h: height - }); - } - this.paintInlineImageXObjectGroup(imgData, map); - } - applyTransferMapsToCanvas(ctx) { - if (this.current.transferMaps !== "none") { - ctx.filter = this.current.transferMaps; - ctx.drawImage(ctx.canvas, 0, 0); - ctx.filter = "none"; - } - return ctx.canvas; - } - applyTransferMapsToBitmap(imgData) { - if (this.current.transferMaps === "none") { - return imgData.bitmap; - } - const { - bitmap, - width, - height - } = imgData; - const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height); - const tmpCtx = tmpCanvas.context; - tmpCtx.filter = this.current.transferMaps; - tmpCtx.drawImage(bitmap, 0, 0); - tmpCtx.filter = "none"; - return tmpCanvas.canvas; - } - paintInlineImageXObject(imgData) { - if (!this.contentVisible) { - return; - } - const width = imgData.width; - const height = imgData.height; - const ctx = this.ctx; - this.save(); - if (!util.isNodeJS) { - const { - filter - } = ctx; - if (filter !== "none" && filter !== "") { - ctx.filter = "none"; - } - } - ctx.scale(1 / width, -1 / height); - let imgToPaint; - if (imgData.bitmap) { - imgToPaint = this.applyTransferMapsToBitmap(imgData); - } else if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) { - imgToPaint = imgData; - } else { - const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height); - const tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); - imgToPaint = this.applyTransferMapsToCanvas(tmpCtx); - } - const scaled = this._scaleImage(imgToPaint, (0,display_utils.getCurrentTransformInverse)(ctx)); - ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0,display_utils.getCurrentTransform)(ctx), imgData.interpolate); - drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height); - this.compose(); - this.restore(); - } - paintInlineImageXObjectGroup(imgData, map) { - if (!this.contentVisible) { - return; - } - const ctx = this.ctx; - let imgToPaint; - if (imgData.bitmap) { - imgToPaint = imgData.bitmap; - } else { - const w = imgData.width; - const h = imgData.height; - const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h); - const tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); - imgToPaint = this.applyTransferMapsToCanvas(tmpCtx); - } - for (const entry of map) { - ctx.save(); - ctx.transform(...entry.transform); - ctx.scale(1, -1); - drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); - ctx.restore(); - } - this.compose(); - } - paintSolidColorImageMask() { - if (!this.contentVisible) { - return; - } - this.ctx.fillRect(0, 0, 1, 1); - this.compose(); - } - markPoint(tag) {} - markPointProps(tag, properties) {} - beginMarkedContent(tag) { - this.markedContentStack.push({ - visible: true - }); - } - beginMarkedContentProps(tag, properties) { - if (tag === "OC") { - this.markedContentStack.push({ - visible: this.optionalContentConfig.isVisible(properties) - }); - } else { - this.markedContentStack.push({ - visible: true - }); - } - this.contentVisible = this.isContentVisible(); - } - endMarkedContent() { - this.markedContentStack.pop(); - this.contentVisible = this.isContentVisible(); - } - beginCompat() {} - endCompat() {} - consumePath(clipBox) { - const isEmpty = this.current.isEmptyClip(); - if (this.pendingClip) { - this.current.updateClipFromPath(); - } - if (!this.pendingClip) { - this.compose(clipBox); - } - const ctx = this.ctx; - if (this.pendingClip) { - if (!isEmpty) { - if (this.pendingClip === EO_CLIP) { - ctx.clip("evenodd"); - } else { - ctx.clip(); - } - } - this.pendingClip = null; - } - this.current.startNewPathAndClipBox(this.current.clipBox); - ctx.beginPath(); - } - getSinglePixelWidth() { - if (!this._cachedGetSinglePixelWidth) { - const m = (0,display_utils.getCurrentTransform)(this.ctx); - if (m[1] === 0 && m[2] === 0) { - this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3])); - } else { - const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]); - const normX = Math.hypot(m[0], m[2]); - const normY = Math.hypot(m[1], m[3]); - this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet; - } - } - return this._cachedGetSinglePixelWidth; - } - getScaleForStroking() { - if (this._cachedScaleForStroking[0] === -1) { - const { - lineWidth - } = this.current; - const { - a, - b, - c, - d - } = this.ctx.getTransform(); - let scaleX, scaleY; - if (b === 0 && c === 0) { - const normX = Math.abs(a); - const normY = Math.abs(d); - if (normX === normY) { - if (lineWidth === 0) { - scaleX = scaleY = 1 / normX; - } else { - const scaledLineWidth = normX * lineWidth; - scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1; - } - } else if (lineWidth === 0) { - scaleX = 1 / normX; - scaleY = 1 / normY; - } else { - const scaledXLineWidth = normX * lineWidth; - const scaledYLineWidth = normY * lineWidth; - scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1; - scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1; - } - } else { - const absDet = Math.abs(a * d - b * c); - const normX = Math.hypot(a, b); - const normY = Math.hypot(c, d); - if (lineWidth === 0) { - scaleX = normY / absDet; - scaleY = normX / absDet; - } else { - const baseArea = lineWidth * absDet; - scaleX = normY > baseArea ? normY / baseArea : 1; - scaleY = normX > baseArea ? normX / baseArea : 1; - } - } - this._cachedScaleForStroking[0] = scaleX; - this._cachedScaleForStroking[1] = scaleY; - } - return this._cachedScaleForStroking; - } - rescaleAndStroke(saveRestore) { - const { - ctx - } = this; - const { - lineWidth - } = this.current; - const [scaleX, scaleY] = this.getScaleForStroking(); - ctx.lineWidth = lineWidth || 1; - if (scaleX === 1 && scaleY === 1) { - ctx.stroke(); - return; - } - const dashes = ctx.getLineDash(); - if (saveRestore) { - ctx.save(); - } - ctx.scale(scaleX, scaleY); - if (dashes.length > 0) { - const scale = Math.max(scaleX, scaleY); - ctx.setLineDash(dashes.map(x => x / scale)); - ctx.lineDashOffset /= scale; - } - ctx.stroke(); - if (saveRestore) { - ctx.restore(); - } - } - isContentVisible() { - for (let i = this.markedContentStack.length - 1; i >= 0; i--) { - if (!this.markedContentStack[i].visible) { - return false; - } - } - return true; - } -} -for (const op in util.OPS) { - if (CanvasGraphics.prototype[op] !== undefined) { - CanvasGraphics.prototype[util.OPS[op]] = CanvasGraphics.prototype[op]; - } -} - - -/***/ }), - -/***/ 419: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ DOMCMapReaderFactory: () => (/* binding */ DOMCMapReaderFactory), -/* harmony export */ DOMCanvasFactory: () => (/* binding */ DOMCanvasFactory), -/* harmony export */ DOMFilterFactory: () => (/* binding */ DOMFilterFactory), -/* harmony export */ DOMSVGFactory: () => (/* binding */ DOMSVGFactory), -/* harmony export */ DOMStandardFontDataFactory: () => (/* binding */ DOMStandardFontDataFactory), -/* harmony export */ PDFDateString: () => (/* binding */ PDFDateString), -/* harmony export */ PageViewport: () => (/* binding */ PageViewport), -/* harmony export */ PixelsPerInch: () => (/* binding */ PixelsPerInch), -/* harmony export */ RenderingCancelledException: () => (/* binding */ RenderingCancelledException), -/* harmony export */ StatTimer: () => (/* binding */ StatTimer), -/* harmony export */ fetchData: () => (/* binding */ fetchData), -/* harmony export */ getColorValues: () => (/* binding */ getColorValues), -/* harmony export */ getCurrentTransform: () => (/* binding */ getCurrentTransform), -/* harmony export */ getCurrentTransformInverse: () => (/* binding */ getCurrentTransformInverse), -/* harmony export */ getFilenameFromUrl: () => (/* binding */ getFilenameFromUrl), -/* harmony export */ getPdfFilenameFromUrl: () => (/* binding */ getPdfFilenameFromUrl), -/* harmony export */ getRGB: () => (/* binding */ getRGB), -/* harmony export */ getXfaPageViewport: () => (/* binding */ getXfaPageViewport), -/* harmony export */ isDataScheme: () => (/* binding */ isDataScheme), -/* harmony export */ isPdfFile: () => (/* binding */ isPdfFile), -/* harmony export */ isValidFetchUrl: () => (/* binding */ isValidFetchUrl), -/* harmony export */ noContextMenu: () => (/* binding */ noContextMenu), -/* harmony export */ setLayerDimensions: () => (/* binding */ setLayerDimensions) -/* harmony export */ }); -/* unused harmony export deprecated */ -/* harmony import */ var _base_factory_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(583); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(292); - - -const SVG_NS = "http://www.w3.org/2000/svg"; -class PixelsPerInch { - static CSS = 96.0; - static PDF = 72.0; - static PDF_TO_CSS_UNITS = this.CSS / this.PDF; -} -class DOMFilterFactory extends _base_factory_js__WEBPACK_IMPORTED_MODULE_0__.BaseFilterFactory { - #_cache; - #_defs; - #docId; - #document; - #_hcmCache; - #id = 0; - constructor({ - docId, - ownerDocument = globalThis.document - } = {}) { - super(); - this.#docId = docId; - this.#document = ownerDocument; - } - get #cache() { - return this.#_cache ||= new Map(); - } - get #hcmCache() { - return this.#_hcmCache ||= new Map(); - } - get #defs() { - if (!this.#_defs) { - const div = this.#document.createElement("div"); - const { - style - } = div; - style.visibility = "hidden"; - style.contain = "strict"; - style.width = style.height = 0; - style.position = "absolute"; - style.top = style.left = 0; - style.zIndex = -1; - const svg = this.#document.createElementNS(SVG_NS, "svg"); - svg.setAttribute("width", 0); - svg.setAttribute("height", 0); - this.#_defs = this.#document.createElementNS(SVG_NS, "defs"); - div.append(svg); - svg.append(this.#_defs); - this.#document.body.append(div); - } - return this.#_defs; - } - addFilter(maps) { - if (!maps) { - return "none"; - } - let value = this.#cache.get(maps); - if (value) { - return value; - } - let tableR, tableG, tableB, key; - if (maps.length === 1) { - const mapR = maps[0]; - const buffer = new Array(256); - for (let i = 0; i < 256; i++) { - buffer[i] = mapR[i] / 255; - } - key = tableR = tableG = tableB = buffer.join(","); - } else { - const [mapR, mapG, mapB] = maps; - const bufferR = new Array(256); - const bufferG = new Array(256); - const bufferB = new Array(256); - for (let i = 0; i < 256; i++) { - bufferR[i] = mapR[i] / 255; - bufferG[i] = mapG[i] / 255; - bufferB[i] = mapB[i] / 255; - } - tableR = bufferR.join(","); - tableG = bufferG.join(","); - tableB = bufferB.join(","); - key = `${tableR}${tableG}${tableB}`; - } - value = this.#cache.get(key); - if (value) { - this.#cache.set(maps, value); - return value; - } - const id = `g_${this.#docId}_transfer_map_${this.#id++}`; - const url = `url(#${id})`; - this.#cache.set(maps, url); - this.#cache.set(key, url); - const filter = this.#createFilter(id); - this.#addTransferMapConversion(tableR, tableG, tableB, filter); - return url; - } - addHCMFilter(fgColor, bgColor) { - const key = `${fgColor}-${bgColor}`; - const filterName = "base"; - let info = this.#hcmCache.get(filterName); - if (info?.key === key) { - return info.url; - } - if (info) { - info.filter?.remove(); - info.key = key; - info.url = "none"; - info.filter = null; - } else { - info = { - key, - url: "none", - filter: null - }; - this.#hcmCache.set(filterName, info); - } - if (!fgColor || !bgColor) { - return info.url; - } - const fgRGB = this.#getRGB(fgColor); - fgColor = _shared_util_js__WEBPACK_IMPORTED_MODULE_1__.Util.makeHexColor(...fgRGB); - const bgRGB = this.#getRGB(bgColor); - bgColor = _shared_util_js__WEBPACK_IMPORTED_MODULE_1__.Util.makeHexColor(...bgRGB); - this.#defs.style.color = ""; - if (fgColor === "#000000" && bgColor === "#ffffff" || fgColor === bgColor) { - return info.url; - } - const map = new Array(256); - for (let i = 0; i <= 255; i++) { - const x = i / 255; - map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4; - } - const table = map.join(","); - const id = `g_${this.#docId}_hcm_filter`; - const filter = info.filter = this.#createFilter(id); - this.#addTransferMapConversion(table, table, table, filter); - this.#addGrayConversion(filter); - const getSteps = (c, n) => { - const start = fgRGB[c] / 255; - const end = bgRGB[c] / 255; - const arr = new Array(n + 1); - for (let i = 0; i <= n; i++) { - arr[i] = start + i / n * (end - start); - } - return arr.join(","); - }; - this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter); - info.url = `url(#${id})`; - return info.url; - } - addHighlightHCMFilter(filterName, fgColor, bgColor, newFgColor, newBgColor) { - const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`; - let info = this.#hcmCache.get(filterName); - if (info?.key === key) { - return info.url; - } - if (info) { - info.filter?.remove(); - info.key = key; - info.url = "none"; - info.filter = null; - } else { - info = { - key, - url: "none", - filter: null - }; - this.#hcmCache.set(filterName, info); - } - if (!fgColor || !bgColor) { - return info.url; - } - const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this)); - let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]); - let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]); - let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this)); - if (bgGray < fgGray) { - [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB]; - } - this.#defs.style.color = ""; - const getSteps = (fg, bg, n) => { - const arr = new Array(256); - const step = (bgGray - fgGray) / n; - const newStart = fg / 255; - const newStep = (bg - fg) / (255 * n); - let prev = 0; - for (let i = 0; i <= n; i++) { - const k = Math.round(fgGray + i * step); - const value = newStart + i * newStep; - for (let j = prev; j <= k; j++) { - arr[j] = value; - } - prev = k + 1; - } - for (let i = prev; i < 256; i++) { - arr[i] = arr[prev - 1]; - } - return arr.join(","); - }; - const id = `g_${this.#docId}_hcm_${filterName}_filter`; - const filter = info.filter = this.#createFilter(id); - this.#addGrayConversion(filter); - this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter); - info.url = `url(#${id})`; - return info.url; - } - destroy(keepHCM = false) { - if (keepHCM && this.#hcmCache.size !== 0) { - return; - } - if (this.#_defs) { - this.#_defs.parentNode.parentNode.remove(); - this.#_defs = null; - } - if (this.#_cache) { - this.#_cache.clear(); - this.#_cache = null; - } - this.#id = 0; - } - #addGrayConversion(filter) { - const feColorMatrix = this.#document.createElementNS(SVG_NS, "feColorMatrix"); - feColorMatrix.setAttribute("type", "matrix"); - feColorMatrix.setAttribute("values", "0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"); - filter.append(feColorMatrix); - } - #createFilter(id) { - const filter = this.#document.createElementNS(SVG_NS, "filter"); - filter.setAttribute("color-interpolation-filters", "sRGB"); - filter.setAttribute("id", id); - this.#defs.append(filter); - return filter; - } - #appendFeFunc(feComponentTransfer, func, table) { - const feFunc = this.#document.createElementNS(SVG_NS, func); - feFunc.setAttribute("type", "discrete"); - feFunc.setAttribute("tableValues", table); - feComponentTransfer.append(feFunc); - } - #addTransferMapConversion(rTable, gTable, bTable, filter) { - const feComponentTransfer = this.#document.createElementNS(SVG_NS, "feComponentTransfer"); - filter.append(feComponentTransfer); - this.#appendFeFunc(feComponentTransfer, "feFuncR", rTable); - this.#appendFeFunc(feComponentTransfer, "feFuncG", gTable); - this.#appendFeFunc(feComponentTransfer, "feFuncB", bTable); - } - #getRGB(color) { - this.#defs.style.color = color; - return getRGB(getComputedStyle(this.#defs).getPropertyValue("color")); - } -} -class DOMCanvasFactory extends _base_factory_js__WEBPACK_IMPORTED_MODULE_0__.BaseCanvasFactory { - constructor({ - ownerDocument = globalThis.document - } = {}) { - super(); - this._document = ownerDocument; - } - _createCanvas(width, height) { - const canvas = this._document.createElement("canvas"); - canvas.width = width; - canvas.height = height; - return canvas; - } -} -async function fetchData(url, type = "text") { - if (isValidFetchUrl(url, document.baseURI)) { - const response = await fetch(url); - if (!response.ok) { - throw new Error(response.statusText); - } - switch (type) { - case "arraybuffer": - return response.arrayBuffer(); - case "blob": - return response.blob(); - case "json": - return response.json(); - } - return response.text(); - } - return new Promise((resolve, reject) => { - const request = new XMLHttpRequest(); - request.open("GET", url, true); - request.responseType = type; - request.onreadystatechange = () => { - if (request.readyState !== XMLHttpRequest.DONE) { - return; - } - if (request.status === 200 || request.status === 0) { - switch (type) { - case "arraybuffer": - case "blob": - case "json": - resolve(request.response); - return; - } - resolve(request.responseText); - return; - } - reject(new Error(request.statusText)); - }; - request.send(null); - }); -} -class DOMCMapReaderFactory extends _base_factory_js__WEBPACK_IMPORTED_MODULE_0__.BaseCMapReaderFactory { - _fetchData(url, compressionType) { - return fetchData(url, this.isCompressed ? "arraybuffer" : "text").then(data => ({ - cMapData: data instanceof ArrayBuffer ? new Uint8Array(data) : (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_1__.stringToBytes)(data), - compressionType - })); - } -} -class DOMStandardFontDataFactory extends _base_factory_js__WEBPACK_IMPORTED_MODULE_0__.BaseStandardFontDataFactory { - _fetchData(url) { - return fetchData(url, "arraybuffer").then(data => new Uint8Array(data)); - } -} -class DOMSVGFactory extends _base_factory_js__WEBPACK_IMPORTED_MODULE_0__.BaseSVGFactory { - _createSVG(type) { - return document.createElementNS(SVG_NS, type); - } -} -class PageViewport { - constructor({ - viewBox, - scale, - rotation, - offsetX = 0, - offsetY = 0, - dontFlip = false - }) { - this.viewBox = viewBox; - this.scale = scale; - this.rotation = rotation; - this.offsetX = offsetX; - this.offsetY = offsetY; - const centerX = (viewBox[2] + viewBox[0]) / 2; - const centerY = (viewBox[3] + viewBox[1]) / 2; - let rotateA, rotateB, rotateC, rotateD; - rotation %= 360; - if (rotation < 0) { - rotation += 360; - } - switch (rotation) { - case 180: - rotateA = -1; - rotateB = 0; - rotateC = 0; - rotateD = 1; - break; - case 90: - rotateA = 0; - rotateB = 1; - rotateC = 1; - rotateD = 0; - break; - case 270: - rotateA = 0; - rotateB = -1; - rotateC = -1; - rotateD = 0; - break; - case 0: - rotateA = 1; - rotateB = 0; - rotateC = 0; - rotateD = -1; - break; - default: - throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees."); - } - if (dontFlip) { - rotateC = -rotateC; - rotateD = -rotateD; - } - let offsetCanvasX, offsetCanvasY; - let width, height; - if (rotateA === 0) { - offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; - offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; - width = (viewBox[3] - viewBox[1]) * scale; - height = (viewBox[2] - viewBox[0]) * scale; - } else { - offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; - offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; - width = (viewBox[2] - viewBox[0]) * scale; - height = (viewBox[3] - viewBox[1]) * scale; - } - this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; - this.width = width; - this.height = height; - } - get rawDims() { - const { - viewBox - } = this; - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "rawDims", { - pageWidth: viewBox[2] - viewBox[0], - pageHeight: viewBox[3] - viewBox[1], - pageX: viewBox[0], - pageY: viewBox[1] - }); - } - clone({ - scale = this.scale, - rotation = this.rotation, - offsetX = this.offsetX, - offsetY = this.offsetY, - dontFlip = false - } = {}) { - return new PageViewport({ - viewBox: this.viewBox.slice(), - scale, - rotation, - offsetX, - offsetY, - dontFlip - }); - } - convertToViewportPoint(x, y) { - return _shared_util_js__WEBPACK_IMPORTED_MODULE_1__.Util.applyTransform([x, y], this.transform); - } - convertToViewportRectangle(rect) { - const topLeft = _shared_util_js__WEBPACK_IMPORTED_MODULE_1__.Util.applyTransform([rect[0], rect[1]], this.transform); - const bottomRight = _shared_util_js__WEBPACK_IMPORTED_MODULE_1__.Util.applyTransform([rect[2], rect[3]], this.transform); - return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; - } - convertToPdfPoint(x, y) { - return _shared_util_js__WEBPACK_IMPORTED_MODULE_1__.Util.applyInverseTransform([x, y], this.transform); - } -} -class RenderingCancelledException extends _shared_util_js__WEBPACK_IMPORTED_MODULE_1__.BaseException { - constructor(msg, extraDelay = 0) { - super(msg, "RenderingCancelledException"); - this.extraDelay = extraDelay; - } -} -function isDataScheme(url) { - const ii = url.length; - let i = 0; - while (i < ii && url[i].trim() === "") { - i++; - } - return url.substring(i, i + 5).toLowerCase() === "data:"; -} -function isPdfFile(filename) { - return typeof filename === "string" && /\.pdf$/i.test(filename); -} -function getFilenameFromUrl(url, onlyStripPath = false) { - if (!onlyStripPath) { - [url] = url.split(/[#?]/, 1); - } - return url.substring(url.lastIndexOf("/") + 1); -} -function getPdfFilenameFromUrl(url, defaultFilename = "document.pdf") { - if (typeof url !== "string") { - return defaultFilename; - } - if (isDataScheme(url)) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_1__.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'); - return defaultFilename; - } - const reURI = /^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; - const reFilename = /[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i; - const splitURI = reURI.exec(url); - let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); - if (suggestedFilename) { - suggestedFilename = suggestedFilename[0]; - if (suggestedFilename.includes("%")) { - try { - suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0]; - } catch {} - } - } - return suggestedFilename || defaultFilename; -} -class StatTimer { - started = Object.create(null); - times = []; - time(name) { - if (name in this.started) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_1__.warn)(`Timer is already running for ${name}`); - } - this.started[name] = Date.now(); - } - timeEnd(name) { - if (!(name in this.started)) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_1__.warn)(`Timer has not been started for ${name}`); - } - this.times.push({ - name, - start: this.started[name], - end: Date.now() - }); - delete this.started[name]; - } - toString() { - const outBuf = []; - let longest = 0; - for (const { - name - } of this.times) { - longest = Math.max(name.length, longest); - } - for (const { - name, - start, - end - } of this.times) { - outBuf.push(`${name.padEnd(longest)} ${end - start}ms\n`); - } - return outBuf.join(""); - } -} -function isValidFetchUrl(url, baseUrl) { - try { - const { - protocol - } = baseUrl ? new URL(url, baseUrl) : new URL(url); - return protocol === "http:" || protocol === "https:"; - } catch { - return false; - } -} -function noContextMenu(e) { - e.preventDefault(); -} -function deprecated(details) { - console.log("Deprecated API usage: " + details); -} -let pdfDateStringRegex; -class PDFDateString { - static toDateObject(input) { - if (!input || typeof input !== "string") { - return null; - } - pdfDateStringRegex ||= new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?"); - const matches = pdfDateStringRegex.exec(input); - if (!matches) { - return null; - } - const year = parseInt(matches[1], 10); - let month = parseInt(matches[2], 10); - month = month >= 1 && month <= 12 ? month - 1 : 0; - let day = parseInt(matches[3], 10); - day = day >= 1 && day <= 31 ? day : 1; - let hour = parseInt(matches[4], 10); - hour = hour >= 0 && hour <= 23 ? hour : 0; - let minute = parseInt(matches[5], 10); - minute = minute >= 0 && minute <= 59 ? minute : 0; - let second = parseInt(matches[6], 10); - second = second >= 0 && second <= 59 ? second : 0; - const universalTimeRelation = matches[7] || "Z"; - let offsetHour = parseInt(matches[8], 10); - offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; - let offsetMinute = parseInt(matches[9], 10) || 0; - offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; - if (universalTimeRelation === "-") { - hour += offsetHour; - minute += offsetMinute; - } else if (universalTimeRelation === "+") { - hour -= offsetHour; - minute -= offsetMinute; - } - return new Date(Date.UTC(year, month, day, hour, minute, second)); - } -} -function getXfaPageViewport(xfaPage, { - scale = 1, - rotation = 0 -}) { - const { - width, - height - } = xfaPage.attributes.style; - const viewBox = [0, 0, parseInt(width), parseInt(height)]; - return new PageViewport({ - viewBox, - scale, - rotation - }); -} -function getRGB(color) { - if (color.startsWith("#")) { - const colorRGB = parseInt(color.slice(1), 16); - return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff]; - } - if (color.startsWith("rgb(")) { - return color.slice(4, -1).split(",").map(x => parseInt(x)); - } - if (color.startsWith("rgba(")) { - return color.slice(5, -1).split(",").map(x => parseInt(x)).slice(0, 3); - } - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_1__.warn)(`Not a valid color format: "${color}"`); - return [0, 0, 0]; -} -function getColorValues(colors) { - const span = document.createElement("span"); - span.style.visibility = "hidden"; - document.body.append(span); - for (const name of colors.keys()) { - span.style.color = name; - const computedColor = window.getComputedStyle(span).color; - colors.set(name, getRGB(computedColor)); - } - span.remove(); -} -function getCurrentTransform(ctx) { - const { - a, - b, - c, - d, - e, - f - } = ctx.getTransform(); - return [a, b, c, d, e, f]; -} -function getCurrentTransformInverse(ctx) { - const { - a, - b, - c, - d, - e, - f - } = ctx.getTransform().invertSelf(); - return [a, b, c, d, e, f]; -} -function setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) { - if (viewport instanceof PageViewport) { - const { - pageWidth, - pageHeight - } = viewport.rawDims; - const { - style - } = div; - const useRound = _shared_util_js__WEBPACK_IMPORTED_MODULE_1__.FeatureTest.isCSSRoundSupported; - const w = `var(--scale-factor) * ${pageWidth}px`, - h = `var(--scale-factor) * ${pageHeight}px`; - const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`, - heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`; - if (!mustFlip || viewport.rotation % 180 === 0) { - style.width = widthStr; - style.height = heightStr; - } else { - style.width = heightStr; - style.height = widthStr; - } - } - if (mustRotate) { - div.setAttribute("data-main-rotation", viewport.rotation); - } -} - - -/***/ }), - -/***/ 47: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ DrawLayer: () => (/* binding */ DrawLayer) -/* harmony export */ }); -/* harmony import */ var _display_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(419); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(292); - - -class DrawLayer { - #parent = null; - #id = 0; - #mapping = new Map(); - #toUpdate = new Map(); - constructor({ - pageIndex - }) { - this.pageIndex = pageIndex; - } - setParent(parent) { - if (!this.#parent) { - this.#parent = parent; - return; - } - if (this.#parent !== parent) { - if (this.#mapping.size > 0) { - for (const root of this.#mapping.values()) { - root.remove(); - parent.append(root); - } - } - this.#parent = parent; - } - } - static get _svgFactory() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "_svgFactory", new _display_utils_js__WEBPACK_IMPORTED_MODULE_0__.DOMSVGFactory()); - } - static #setBox(element, { - x = 0, - y = 0, - width = 1, - height = 1 - } = {}) { - const { - style - } = element; - style.top = `${100 * y}%`; - style.left = `${100 * x}%`; - style.width = `${100 * width}%`; - style.height = `${100 * height}%`; - } - #createSVG(box) { - const svg = DrawLayer._svgFactory.create(1, 1, true); - this.#parent.append(svg); - svg.setAttribute("aria-hidden", true); - DrawLayer.#setBox(svg, box); - return svg; - } - #createClipPath(defs, pathId) { - const clipPath = DrawLayer._svgFactory.createElement("clipPath"); - defs.append(clipPath); - const clipPathId = `clip_${pathId}`; - clipPath.setAttribute("id", clipPathId); - clipPath.setAttribute("clipPathUnits", "objectBoundingBox"); - const clipPathUse = DrawLayer._svgFactory.createElement("use"); - clipPath.append(clipPathUse); - clipPathUse.setAttribute("href", `#${pathId}`); - clipPathUse.classList.add("clip"); - return clipPathId; - } - highlight(outlines, color, opacity, isPathUpdatable = false) { - const id = this.#id++; - const root = this.#createSVG(outlines.box); - root.classList.add("highlight"); - if (outlines.free) { - root.classList.add("free"); - } - const defs = DrawLayer._svgFactory.createElement("defs"); - root.append(defs); - const path = DrawLayer._svgFactory.createElement("path"); - defs.append(path); - const pathId = `path_p${this.pageIndex}_${id}`; - path.setAttribute("id", pathId); - path.setAttribute("d", outlines.toSVGPath()); - if (isPathUpdatable) { - this.#toUpdate.set(id, path); - } - const clipPathId = this.#createClipPath(defs, pathId); - const use = DrawLayer._svgFactory.createElement("use"); - root.append(use); - root.setAttribute("fill", color); - root.setAttribute("fill-opacity", opacity); - use.setAttribute("href", `#${pathId}`); - this.#mapping.set(id, root); - return { - id, - clipPathId: `url(#${clipPathId})` - }; - } - highlightOutline(outlines) { - const id = this.#id++; - const root = this.#createSVG(outlines.box); - root.classList.add("highlightOutline"); - const defs = DrawLayer._svgFactory.createElement("defs"); - root.append(defs); - const path = DrawLayer._svgFactory.createElement("path"); - defs.append(path); - const pathId = `path_p${this.pageIndex}_${id}`; - path.setAttribute("id", pathId); - path.setAttribute("d", outlines.toSVGPath()); - path.setAttribute("vector-effect", "non-scaling-stroke"); - let maskId; - if (outlines.free) { - root.classList.add("free"); - const mask = DrawLayer._svgFactory.createElement("mask"); - defs.append(mask); - maskId = `mask_p${this.pageIndex}_${id}`; - mask.setAttribute("id", maskId); - mask.setAttribute("maskUnits", "objectBoundingBox"); - const rect = DrawLayer._svgFactory.createElement("rect"); - mask.append(rect); - rect.setAttribute("width", "1"); - rect.setAttribute("height", "1"); - rect.setAttribute("fill", "white"); - const use = DrawLayer._svgFactory.createElement("use"); - mask.append(use); - use.setAttribute("href", `#${pathId}`); - use.setAttribute("stroke", "none"); - use.setAttribute("fill", "black"); - use.setAttribute("fill-rule", "nonzero"); - use.classList.add("mask"); - } - const use1 = DrawLayer._svgFactory.createElement("use"); - root.append(use1); - use1.setAttribute("href", `#${pathId}`); - if (maskId) { - use1.setAttribute("mask", `url(#${maskId})`); - } - const use2 = use1.cloneNode(); - root.append(use2); - use1.classList.add("mainOutline"); - use2.classList.add("secondaryOutline"); - this.#mapping.set(id, root); - return id; - } - finalizeLine(id, line) { - const path = this.#toUpdate.get(id); - this.#toUpdate.delete(id); - this.updateBox(id, line.box); - path.setAttribute("d", line.toSVGPath()); - } - updateLine(id, line) { - const root = this.#mapping.get(id); - const defs = root.firstChild; - const path = defs.firstChild; - path.setAttribute("d", line.toSVGPath()); - } - removeFreeHighlight(id) { - this.remove(id); - this.#toUpdate.delete(id); - } - updatePath(id, line) { - this.#toUpdate.get(id).setAttribute("d", line.toSVGPath()); - } - updateBox(id, box) { - DrawLayer.#setBox(this.#mapping.get(id), box); - } - show(id, visible) { - this.#mapping.get(id).classList.toggle("hidden", !visible); - } - rotate(id, angle) { - this.#mapping.get(id).setAttribute("data-main-rotation", angle); - } - changeColor(id, color) { - this.#mapping.get(id).setAttribute("fill", color); - } - changeOpacity(id, opacity) { - this.#mapping.get(id).setAttribute("fill-opacity", opacity); - } - addClass(id, className) { - this.#mapping.get(id).classList.add(className); - } - removeClass(id, className) { - this.#mapping.get(id).classList.remove(className); - } - remove(id) { - if (this.#parent === null) { - return; - } - this.#mapping.get(id).remove(); - this.#mapping.delete(id); - } - destroy() { - this.#parent = null; - for (const root of this.#mapping.values()) { - root.remove(); - } - this.#mapping.clear(); - } -} - - -/***/ }), - -/***/ 731: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - AnnotationEditorLayer: () => (/* binding */ AnnotationEditorLayer) -}); - -// EXTERNAL MODULE: ./src/shared/util.js -var util = __webpack_require__(292); -// EXTERNAL MODULE: ./src/display/editor/editor.js + 1 modules -var editor_editor = __webpack_require__(310); -// EXTERNAL MODULE: ./src/display/editor/tools.js -var tools = __webpack_require__(830); -// EXTERNAL MODULE: ./src/display/annotation_layer.js + 1 modules -var annotation_layer = __webpack_require__(976); -;// CONCATENATED MODULE: ./src/display/editor/freetext.js - - - - -const EOL_PATTERN = /\r\n?|\n/g; -class FreeTextEditor extends editor_editor.AnnotationEditor { - #boundEditorDivBlur = this.editorDivBlur.bind(this); - #boundEditorDivFocus = this.editorDivFocus.bind(this); - #boundEditorDivInput = this.editorDivInput.bind(this); - #boundEditorDivKeydown = this.editorDivKeydown.bind(this); - #boundEditorDivPaste = this.editorDivPaste.bind(this); - #color; - #content = ""; - #editorDivId = `${this.id}-editor`; - #fontSize; - #initialData = null; - static _freeTextDefaultContent = ""; - static _internalPadding = 0; - static _defaultColor = null; - static _defaultFontSize = 10; - static get _keyboardManager() { - const proto = FreeTextEditor.prototype; - const arrowChecker = self => self.isEmpty(); - const small = tools.AnnotationEditorUIManager.TRANSLATE_SMALL; - const big = tools.AnnotationEditorUIManager.TRANSLATE_BIG; - return (0,util.shadow)(this, "_keyboardManager", new tools.KeyboardManager([[["ctrl+s", "mac+meta+s", "ctrl+p", "mac+meta+p"], proto.commitOrRemove, { - bubbles: true - }], [["ctrl+Enter", "mac+meta+Enter", "Escape", "mac+Escape"], proto.commitOrRemove], [["ArrowLeft", "mac+ArrowLeft"], proto._translateEmpty, { - args: [-small, 0], - checker: arrowChecker - }], [["ctrl+ArrowLeft", "mac+shift+ArrowLeft"], proto._translateEmpty, { - args: [-big, 0], - checker: arrowChecker - }], [["ArrowRight", "mac+ArrowRight"], proto._translateEmpty, { - args: [small, 0], - checker: arrowChecker - }], [["ctrl+ArrowRight", "mac+shift+ArrowRight"], proto._translateEmpty, { - args: [big, 0], - checker: arrowChecker - }], [["ArrowUp", "mac+ArrowUp"], proto._translateEmpty, { - args: [0, -small], - checker: arrowChecker - }], [["ctrl+ArrowUp", "mac+shift+ArrowUp"], proto._translateEmpty, { - args: [0, -big], - checker: arrowChecker - }], [["ArrowDown", "mac+ArrowDown"], proto._translateEmpty, { - args: [0, small], - checker: arrowChecker - }], [["ctrl+ArrowDown", "mac+shift+ArrowDown"], proto._translateEmpty, { - args: [0, big], - checker: arrowChecker - }]])); - } - static _type = "freetext"; - static _editorType = util.AnnotationEditorType.FREETEXT; - constructor(params) { - super({ - ...params, - name: "freeTextEditor" - }); - this.#color = params.color || FreeTextEditor._defaultColor || editor_editor.AnnotationEditor._defaultLineColor; - this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize; - } - static initialize(l10n, uiManager) { - editor_editor.AnnotationEditor.initialize(l10n, uiManager, { - strings: ["pdfjs-free-text-default-content"] - }); - const style = getComputedStyle(document.documentElement); - this._internalPadding = parseFloat(style.getPropertyValue("--freetext-padding")); - } - static updateDefaultParams(type, value) { - switch (type) { - case util.AnnotationEditorParamsType.FREETEXT_SIZE: - FreeTextEditor._defaultFontSize = value; - break; - case util.AnnotationEditorParamsType.FREETEXT_COLOR: - FreeTextEditor._defaultColor = value; - break; - } - } - updateParams(type, value) { - switch (type) { - case util.AnnotationEditorParamsType.FREETEXT_SIZE: - this.#updateFontSize(value); - break; - case util.AnnotationEditorParamsType.FREETEXT_COLOR: - this.#updateColor(value); - break; - } - } - static get defaultPropertiesToUpdate() { - return [[util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || editor_editor.AnnotationEditor._defaultLineColor]]; - } - get propertiesToUpdate() { - return [[util.AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [util.AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]]; - } - #updateFontSize(fontSize) { - const setFontsize = size => { - this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`; - this.translate(0, -(size - this.#fontSize) * this.parentScale); - this.#fontSize = size; - this.#setEditorDimensions(); - }; - const savedFontsize = this.#fontSize; - this.addCommands({ - cmd: setFontsize.bind(this, fontSize), - undo: setFontsize.bind(this, savedFontsize), - post: this._uiManager.updateUI.bind(this._uiManager, this), - mustExec: true, - type: util.AnnotationEditorParamsType.FREETEXT_SIZE, - overwriteIfSameType: true, - keepUndo: true - }); - } - #updateColor(color) { - const setColor = col => { - this.#color = this.editorDiv.style.color = col; - }; - const savedColor = this.#color; - this.addCommands({ - cmd: setColor.bind(this, color), - undo: setColor.bind(this, savedColor), - post: this._uiManager.updateUI.bind(this._uiManager, this), - mustExec: true, - type: util.AnnotationEditorParamsType.FREETEXT_COLOR, - overwriteIfSameType: true, - keepUndo: true - }); - } - _translateEmpty(x, y) { - this._uiManager.translateSelectedEditors(x, y, true); - } - getInitialTranslation() { - const scale = this.parentScale; - return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale]; - } - rebuild() { - if (!this.parent) { - return; - } - super.rebuild(); - if (this.div === null) { - return; - } - if (!this.isAttachedToDOM) { - this.parent.add(this); - } - } - enableEditMode() { - if (this.isInEditMode()) { - return; - } - this.parent.setEditingState(false); - this.parent.updateToolbar(util.AnnotationEditorType.FREETEXT); - super.enableEditMode(); - this.overlayDiv.classList.remove("enabled"); - this.editorDiv.contentEditable = true; - this._isDraggable = false; - this.div.removeAttribute("aria-activedescendant"); - this.editorDiv.addEventListener("keydown", this.#boundEditorDivKeydown); - this.editorDiv.addEventListener("focus", this.#boundEditorDivFocus); - this.editorDiv.addEventListener("blur", this.#boundEditorDivBlur); - this.editorDiv.addEventListener("input", this.#boundEditorDivInput); - this.editorDiv.addEventListener("paste", this.#boundEditorDivPaste); - } - disableEditMode() { - if (!this.isInEditMode()) { - return; - } - this.parent.setEditingState(true); - super.disableEditMode(); - this.overlayDiv.classList.add("enabled"); - this.editorDiv.contentEditable = false; - this.div.setAttribute("aria-activedescendant", this.#editorDivId); - this._isDraggable = true; - this.editorDiv.removeEventListener("keydown", this.#boundEditorDivKeydown); - this.editorDiv.removeEventListener("focus", this.#boundEditorDivFocus); - this.editorDiv.removeEventListener("blur", this.#boundEditorDivBlur); - this.editorDiv.removeEventListener("input", this.#boundEditorDivInput); - this.editorDiv.removeEventListener("paste", this.#boundEditorDivPaste); - this.div.focus({ - preventScroll: true - }); - this.isEditing = false; - this.parent.div.classList.add("freetextEditing"); - } - focusin(event) { - if (!this._focusEventsAllowed) { - return; - } - super.focusin(event); - if (event.target !== this.editorDiv) { - this.editorDiv.focus(); - } - } - onceAdded() { - if (this.width) { - return; - } - this.enableEditMode(); - this.editorDiv.focus(); - if (this._initialOptions?.isCentered) { - this.center(); - } - this._initialOptions = null; - } - isEmpty() { - return !this.editorDiv || this.editorDiv.innerText.trim() === ""; - } - remove() { - this.isEditing = false; - if (this.parent) { - this.parent.setEditingState(true); - this.parent.div.classList.add("freetextEditing"); - } - super.remove(); - } - #extractText() { - const buffer = []; - this.editorDiv.normalize(); - for (const child of this.editorDiv.childNodes) { - buffer.push(FreeTextEditor.#getNodeContent(child)); - } - return buffer.join("\n"); - } - #setEditorDimensions() { - const [parentWidth, parentHeight] = this.parentDimensions; - let rect; - if (this.isAttachedToDOM) { - rect = this.div.getBoundingClientRect(); - } else { - const { - currentLayer, - div - } = this; - const savedDisplay = div.style.display; - const savedVisibility = div.classList.contains("hidden"); - div.classList.remove("hidden"); - div.style.display = "hidden"; - currentLayer.div.append(this.div); - rect = div.getBoundingClientRect(); - div.remove(); - div.style.display = savedDisplay; - div.classList.toggle("hidden", savedVisibility); - } - if (this.rotation % 180 === this.parentRotation % 180) { - this.width = rect.width / parentWidth; - this.height = rect.height / parentHeight; - } else { - this.width = rect.height / parentWidth; - this.height = rect.width / parentHeight; - } - this.fixAndSetPosition(); - } - commit() { - if (!this.isInEditMode()) { - return; - } - super.commit(); - this.disableEditMode(); - const savedText = this.#content; - const newText = this.#content = this.#extractText().trimEnd(); - if (savedText === newText) { - return; - } - const setText = text => { - this.#content = text; - if (!text) { - this.remove(); - return; - } - this.#setContent(); - this._uiManager.rebuild(this); - this.#setEditorDimensions(); - }; - this.addCommands({ - cmd: () => { - setText(newText); - }, - undo: () => { - setText(savedText); - }, - mustExec: false - }); - this.#setEditorDimensions(); - } - shouldGetKeyboardEvents() { - return this.isInEditMode(); - } - enterInEditMode() { - this.enableEditMode(); - this.editorDiv.focus(); - } - dblclick(event) { - this.enterInEditMode(); - } - keydown(event) { - if (event.target === this.div && event.key === "Enter") { - this.enterInEditMode(); - event.preventDefault(); - } - } - editorDivKeydown(event) { - FreeTextEditor._keyboardManager.exec(this, event); - } - editorDivFocus(event) { - this.isEditing = true; - } - editorDivBlur(event) { - this.isEditing = false; - } - editorDivInput(event) { - this.parent.div.classList.toggle("freetextEditing", this.isEmpty()); - } - disableEditing() { - this.editorDiv.setAttribute("role", "comment"); - this.editorDiv.removeAttribute("aria-multiline"); - } - enableEditing() { - this.editorDiv.setAttribute("role", "textbox"); - this.editorDiv.setAttribute("aria-multiline", true); - } - render() { - if (this.div) { - return this.div; - } - let baseX, baseY; - if (this.width) { - baseX = this.x; - baseY = this.y; - } - super.render(); - this.editorDiv = document.createElement("div"); - this.editorDiv.className = "internal"; - this.editorDiv.setAttribute("id", this.#editorDivId); - this.editorDiv.setAttribute("data-l10n-id", "pdfjs-free-text"); - this.enableEditing(); - editor_editor.AnnotationEditor._l10nPromise.get("pdfjs-free-text-default-content").then(msg => this.editorDiv?.setAttribute("default-content", msg)); - this.editorDiv.contentEditable = true; - const { - style - } = this.editorDiv; - style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`; - style.color = this.#color; - this.div.append(this.editorDiv); - this.overlayDiv = document.createElement("div"); - this.overlayDiv.classList.add("overlay", "enabled"); - this.div.append(this.overlayDiv); - (0,tools.bindEvents)(this, this.div, ["dblclick", "keydown"]); - if (this.width) { - const [parentWidth, parentHeight] = this.parentDimensions; - if (this.annotationElementId) { - const { - position - } = this.#initialData; - let [tx, ty] = this.getInitialTranslation(); - [tx, ty] = this.pageTranslationToScreen(tx, ty); - const [pageWidth, pageHeight] = this.pageDimensions; - const [pageX, pageY] = this.pageTranslation; - let posX, posY; - switch (this.rotation) { - case 0: - posX = baseX + (position[0] - pageX) / pageWidth; - posY = baseY + this.height - (position[1] - pageY) / pageHeight; - break; - case 90: - posX = baseX + (position[0] - pageX) / pageWidth; - posY = baseY - (position[1] - pageY) / pageHeight; - [tx, ty] = [ty, -tx]; - break; - case 180: - posX = baseX - this.width + (position[0] - pageX) / pageWidth; - posY = baseY - (position[1] - pageY) / pageHeight; - [tx, ty] = [-tx, -ty]; - break; - case 270: - posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth; - posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight; - [tx, ty] = [-ty, tx]; - break; - } - this.setAt(posX * parentWidth, posY * parentHeight, tx, ty); - } else { - this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight); - } - this.#setContent(); - this._isDraggable = true; - this.editorDiv.contentEditable = false; - } else { - this._isDraggable = false; - this.editorDiv.contentEditable = true; - } - return this.div; - } - static #getNodeContent(node) { - return (node.nodeType === Node.TEXT_NODE ? node.nodeValue : node.innerText).replaceAll(EOL_PATTERN, ""); - } - editorDivPaste(event) { - const clipboardData = event.clipboardData || window.clipboardData; - const { - types - } = clipboardData; - if (types.length === 1 && types[0] === "text/plain") { - return; - } - event.preventDefault(); - const paste = FreeTextEditor.#deserializeContent(clipboardData.getData("text") || "").replaceAll(EOL_PATTERN, "\n"); - if (!paste) { - return; - } - const selection = window.getSelection(); - if (!selection.rangeCount) { - return; - } - this.editorDiv.normalize(); - selection.deleteFromDocument(); - const range = selection.getRangeAt(0); - if (!paste.includes("\n")) { - range.insertNode(document.createTextNode(paste)); - this.editorDiv.normalize(); - selection.collapseToStart(); - return; - } - const { - startContainer, - startOffset - } = range; - const bufferBefore = []; - const bufferAfter = []; - if (startContainer.nodeType === Node.TEXT_NODE) { - const parent = startContainer.parentElement; - bufferAfter.push(startContainer.nodeValue.slice(startOffset).replaceAll(EOL_PATTERN, "")); - if (parent !== this.editorDiv) { - let buffer = bufferBefore; - for (const child of this.editorDiv.childNodes) { - if (child === parent) { - buffer = bufferAfter; - continue; - } - buffer.push(FreeTextEditor.#getNodeContent(child)); - } - } - bufferBefore.push(startContainer.nodeValue.slice(0, startOffset).replaceAll(EOL_PATTERN, "")); - } else if (startContainer === this.editorDiv) { - let buffer = bufferBefore; - let i = 0; - for (const child of this.editorDiv.childNodes) { - if (i++ === startOffset) { - buffer = bufferAfter; - } - buffer.push(FreeTextEditor.#getNodeContent(child)); - } - } - this.#content = `${bufferBefore.join("\n")}${paste}${bufferAfter.join("\n")}`; - this.#setContent(); - const newRange = new Range(); - let beforeLength = bufferBefore.reduce((acc, line) => acc + line.length, 0); - for (const { - firstChild - } of this.editorDiv.childNodes) { - if (firstChild.nodeType === Node.TEXT_NODE) { - const length = firstChild.nodeValue.length; - if (beforeLength <= length) { - newRange.setStart(firstChild, beforeLength); - newRange.setEnd(firstChild, beforeLength); - break; - } - beforeLength -= length; - } - } - selection.removeAllRanges(); - selection.addRange(newRange); - } - #setContent() { - this.editorDiv.replaceChildren(); - if (!this.#content) { - return; - } - for (const line of this.#content.split("\n")) { - const div = document.createElement("div"); - div.append(line ? document.createTextNode(line) : document.createElement("br")); - this.editorDiv.append(div); - } - } - #serializeContent() { - return this.#content.replaceAll("\xa0", " "); - } - static #deserializeContent(content) { - return content.replaceAll(" ", "\xa0"); - } - get contentDiv() { - return this.editorDiv; - } - static deserialize(data, parent, uiManager) { - let initialData = null; - if (data instanceof annotation_layer.FreeTextAnnotationElement) { - const { - data: { - defaultAppearanceData: { - fontSize, - fontColor - }, - rect, - rotation, - id - }, - textContent, - textPosition, - parent: { - page: { - pageNumber - } - } - } = data; - if (!textContent || textContent.length === 0) { - return null; - } - initialData = data = { - annotationType: util.AnnotationEditorType.FREETEXT, - color: Array.from(fontColor), - fontSize, - value: textContent.join("\n"), - position: textPosition, - pageIndex: pageNumber - 1, - rect: rect.slice(0), - rotation, - id, - deleted: false - }; - } - const editor = super.deserialize(data, parent, uiManager); - editor.#fontSize = data.fontSize; - editor.#color = util.Util.makeHexColor(...data.color); - editor.#content = FreeTextEditor.#deserializeContent(data.value); - editor.annotationElementId = data.id || null; - editor.#initialData = initialData; - return editor; - } - serialize(isForCopying = false) { - if (this.isEmpty()) { - return null; - } - if (this.deleted) { - return { - pageIndex: this.pageIndex, - id: this.annotationElementId, - deleted: true - }; - } - const padding = FreeTextEditor._internalPadding * this.parentScale; - const rect = this.getRect(padding, padding); - const color = editor_editor.AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.#color); - const serialized = { - annotationType: util.AnnotationEditorType.FREETEXT, - color, - fontSize: this.#fontSize, - value: this.#serializeContent(), - pageIndex: this.pageIndex, - rect, - rotation: this.rotation, - structTreeParentId: this._structTreeParentId - }; - if (isForCopying) { - return serialized; - } - if (this.annotationElementId && !this.#hasElementChanged(serialized)) { - return null; - } - serialized.id = this.annotationElementId; - return serialized; - } - #hasElementChanged(serialized) { - const { - value, - fontSize, - color, - pageIndex - } = this.#initialData; - return this._hasBeenMoved || serialized.value !== value || serialized.fontSize !== fontSize || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex; - } - renderAnnotationElement(annotation) { - const content = super.renderAnnotationElement(annotation); - if (this.deleted) { - return content; - } - const { - style - } = content; - style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`; - style.color = this.#color; - content.replaceChildren(); - for (const line of this.#content.split("\n")) { - const div = document.createElement("div"); - div.append(line ? document.createTextNode(line) : document.createElement("br")); - content.append(div); - } - const padding = FreeTextEditor._internalPadding * this.parentScale; - annotation.updateEdited({ - rect: this.getRect(padding, padding) - }); - return content; - } - resetAnnotationElement(annotation) { - super.resetAnnotationElement(annotation); - annotation.resetEdited(); - } -} - -// EXTERNAL MODULE: ./src/display/editor/outliner.js -var editor_outliner = __webpack_require__(61); -// EXTERNAL MODULE: ./src/display/editor/color_picker.js -var color_picker = __webpack_require__(259); -// EXTERNAL MODULE: ./src/display/display_utils.js -var display_utils = __webpack_require__(419); -;// CONCATENATED MODULE: ./src/display/editor/highlight.js - - - - - - -class HighlightEditor extends editor_editor.AnnotationEditor { - #anchorNode = null; - #anchorOffset = 0; - #boxes; - #clipPathId = null; - #colorPicker = null; - #focusOutlines = null; - #focusNode = null; - #focusOffset = 0; - #highlightDiv = null; - #highlightOutlines = null; - #id = null; - #isFreeHighlight = false; - #boundKeydown = this.#keydown.bind(this); - #lastPoint = null; - #opacity; - #outlineId = null; - #text = ""; - #thickness; - #methodOfCreation = ""; - static _defaultColor = null; - static _defaultOpacity = 1; - static _defaultThickness = 12; - static _l10nPromise; - static _type = "highlight"; - static _editorType = util.AnnotationEditorType.HIGHLIGHT; - static _freeHighlightId = -1; - static _freeHighlight = null; - static _freeHighlightClipId = ""; - static get _keyboardManager() { - const proto = HighlightEditor.prototype; - return (0,util.shadow)(this, "_keyboardManager", new tools.KeyboardManager([[["ArrowLeft", "mac+ArrowLeft"], proto._moveCaret, { - args: [0] - }], [["ArrowRight", "mac+ArrowRight"], proto._moveCaret, { - args: [1] - }], [["ArrowUp", "mac+ArrowUp"], proto._moveCaret, { - args: [2] - }], [["ArrowDown", "mac+ArrowDown"], proto._moveCaret, { - args: [3] - }]])); - } - constructor(params) { - super({ - ...params, - name: "highlightEditor" - }); - this.color = params.color || HighlightEditor._defaultColor; - this.#thickness = params.thickness || HighlightEditor._defaultThickness; - this.#opacity = params.opacity || HighlightEditor._defaultOpacity; - this.#boxes = params.boxes || null; - this.#methodOfCreation = params.methodOfCreation || ""; - this.#text = params.text || ""; - this._isDraggable = false; - if (params.highlightId > -1) { - this.#isFreeHighlight = true; - this.#createFreeOutlines(params); - this.#addToDrawLayer(); - } else { - this.#anchorNode = params.anchorNode; - this.#anchorOffset = params.anchorOffset; - this.#focusNode = params.focusNode; - this.#focusOffset = params.focusOffset; - this.#createOutlines(); - this.#addToDrawLayer(); - this.rotate(this.rotation); - } - } - get telemetryInitialData() { - return { - action: "added", - type: this.#isFreeHighlight ? "free_highlight" : "highlight", - color: this._uiManager.highlightColorNames.get(this.color), - thickness: this.#thickness, - methodOfCreation: this.#methodOfCreation - }; - } - get telemetryFinalData() { - return { - type: "highlight", - color: this._uiManager.highlightColorNames.get(this.color) - }; - } - static computeTelemetryFinalData(data) { - return { - numberOfColors: data.get("color").size - }; - } - #createOutlines() { - const outliner = new editor_outliner.Outliner(this.#boxes, 0.001); - this.#highlightOutlines = outliner.getOutlines(); - ({ - x: this.x, - y: this.y, - width: this.width, - height: this.height - } = this.#highlightOutlines.box); - const outlinerForOutline = new editor_outliner.Outliner(this.#boxes, 0.0025, 0.001, this._uiManager.direction === "ltr"); - this.#focusOutlines = outlinerForOutline.getOutlines(); - const { - lastPoint - } = this.#focusOutlines.box; - this.#lastPoint = [(lastPoint[0] - this.x) / this.width, (lastPoint[1] - this.y) / this.height]; - } - #createFreeOutlines({ - highlightOutlines, - highlightId, - clipPathId - }) { - this.#highlightOutlines = highlightOutlines; - const extraThickness = 1.5; - this.#focusOutlines = highlightOutlines.getNewOutline(this.#thickness / 2 + extraThickness, 0.0025); - if (highlightId >= 0) { - this.#id = highlightId; - this.#clipPathId = clipPathId; - this.parent.drawLayer.finalizeLine(highlightId, highlightOutlines); - this.#outlineId = this.parent.drawLayer.highlightOutline(this.#focusOutlines); - } else if (this.parent) { - const angle = this.parent.viewport.rotation; - this.parent.drawLayer.updateLine(this.#id, highlightOutlines); - this.parent.drawLayer.updateBox(this.#id, HighlightEditor.#rotateBbox(this.#highlightOutlines.box, (angle - this.rotation + 360) % 360)); - this.parent.drawLayer.updateLine(this.#outlineId, this.#focusOutlines); - this.parent.drawLayer.updateBox(this.#outlineId, HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle)); - } - const { - x, - y, - width, - height - } = highlightOutlines.box; - switch (this.rotation) { - case 0: - this.x = x; - this.y = y; - this.width = width; - this.height = height; - break; - case 90: - { - const [pageWidth, pageHeight] = this.parentDimensions; - this.x = y; - this.y = 1 - x; - this.width = width * pageHeight / pageWidth; - this.height = height * pageWidth / pageHeight; - break; - } - case 180: - this.x = 1 - x; - this.y = 1 - y; - this.width = width; - this.height = height; - break; - case 270: - { - const [pageWidth, pageHeight] = this.parentDimensions; - this.x = 1 - y; - this.y = x; - this.width = width * pageHeight / pageWidth; - this.height = height * pageWidth / pageHeight; - break; - } - } - const { - lastPoint - } = this.#focusOutlines.box; - this.#lastPoint = [(lastPoint[0] - x) / width, (lastPoint[1] - y) / height]; - } - static initialize(l10n, uiManager) { - editor_editor.AnnotationEditor.initialize(l10n, uiManager); - HighlightEditor._defaultColor ||= uiManager.highlightColors?.values().next().value || "#fff066"; - } - static updateDefaultParams(type, value) { - switch (type) { - case util.AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR: - HighlightEditor._defaultColor = value; - break; - case util.AnnotationEditorParamsType.HIGHLIGHT_THICKNESS: - HighlightEditor._defaultThickness = value; - break; - } - } - translateInPage(x, y) {} - get toolbarPosition() { - return this.#lastPoint; - } - updateParams(type, value) { - switch (type) { - case util.AnnotationEditorParamsType.HIGHLIGHT_COLOR: - this.#updateColor(value); - break; - case util.AnnotationEditorParamsType.HIGHLIGHT_THICKNESS: - this.#updateThickness(value); - break; - } - } - static get defaultPropertiesToUpdate() { - return [[util.AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR, HighlightEditor._defaultColor], [util.AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, HighlightEditor._defaultThickness]]; - } - get propertiesToUpdate() { - return [[util.AnnotationEditorParamsType.HIGHLIGHT_COLOR, this.color || HighlightEditor._defaultColor], [util.AnnotationEditorParamsType.HIGHLIGHT_THICKNESS, this.#thickness || HighlightEditor._defaultThickness], [util.AnnotationEditorParamsType.HIGHLIGHT_FREE, this.#isFreeHighlight]]; - } - #updateColor(color) { - const setColor = col => { - this.color = col; - this.parent?.drawLayer.changeColor(this.#id, col); - this.#colorPicker?.updateColor(col); - }; - const savedColor = this.color; - this.addCommands({ - cmd: setColor.bind(this, color), - undo: setColor.bind(this, savedColor), - post: this._uiManager.updateUI.bind(this._uiManager, this), - mustExec: true, - type: util.AnnotationEditorParamsType.HIGHLIGHT_COLOR, - overwriteIfSameType: true, - keepUndo: true - }); - this._reportTelemetry({ - action: "color_changed", - color: this._uiManager.highlightColorNames.get(color) - }, true); - } - #updateThickness(thickness) { - const savedThickness = this.#thickness; - const setThickness = th => { - this.#thickness = th; - this.#changeThickness(th); - }; - this.addCommands({ - cmd: setThickness.bind(this, thickness), - undo: setThickness.bind(this, savedThickness), - post: this._uiManager.updateUI.bind(this._uiManager, this), - mustExec: true, - type: util.AnnotationEditorParamsType.INK_THICKNESS, - overwriteIfSameType: true, - keepUndo: true - }); - this._reportTelemetry({ - action: "thickness_changed", - thickness - }, true); - } - async addEditToolbar() { - const toolbar = await super.addEditToolbar(); - if (!toolbar) { - return null; - } - if (this._uiManager.highlightColors) { - this.#colorPicker = new color_picker.ColorPicker({ - editor: this - }); - toolbar.addColorPicker(this.#colorPicker); - } - return toolbar; - } - disableEditing() { - super.disableEditing(); - this.div.classList.toggle("disabled", true); - } - enableEditing() { - super.enableEditing(); - this.div.classList.toggle("disabled", false); - } - fixAndSetPosition() { - return super.fixAndSetPosition(this.#getRotation()); - } - getBaseTranslation() { - return [0, 0]; - } - getRect(tx, ty) { - return super.getRect(tx, ty, this.#getRotation()); - } - onceAdded() { - this.parent.addUndoableEditor(this); - this.div.focus(); - } - remove() { - this.#cleanDrawLayer(); - this._reportTelemetry({ - action: "deleted" - }); - super.remove(); - } - rebuild() { - if (!this.parent) { - return; - } - super.rebuild(); - if (this.div === null) { - return; - } - this.#addToDrawLayer(); - if (!this.isAttachedToDOM) { - this.parent.add(this); - } - } - setParent(parent) { - let mustBeSelected = false; - if (this.parent && !parent) { - this.#cleanDrawLayer(); - } else if (parent) { - this.#addToDrawLayer(parent); - mustBeSelected = !this.parent && this.div?.classList.contains("selectedEditor"); - } - super.setParent(parent); - this.show(this._isVisible); - if (mustBeSelected) { - this.select(); - } - } - #changeThickness(thickness) { - if (!this.#isFreeHighlight) { - return; - } - this.#createFreeOutlines({ - highlightOutlines: this.#highlightOutlines.getNewOutline(thickness / 2) - }); - this.fixAndSetPosition(); - const [parentWidth, parentHeight] = this.parentDimensions; - this.setDims(this.width * parentWidth, this.height * parentHeight); - } - #cleanDrawLayer() { - if (this.#id === null || !this.parent) { - return; - } - this.parent.drawLayer.remove(this.#id); - this.#id = null; - this.parent.drawLayer.remove(this.#outlineId); - this.#outlineId = null; - } - #addToDrawLayer(parent = this.parent) { - if (this.#id !== null) { - return; - } - ({ - id: this.#id, - clipPathId: this.#clipPathId - } = parent.drawLayer.highlight(this.#highlightOutlines, this.color, this.#opacity)); - this.#outlineId = parent.drawLayer.highlightOutline(this.#focusOutlines); - if (this.#highlightDiv) { - this.#highlightDiv.style.clipPath = this.#clipPathId; - } - } - static #rotateBbox({ - x, - y, - width, - height - }, angle) { - switch (angle) { - case 90: - return { - x: 1 - y - height, - y: x, - width: height, - height: width - }; - case 180: - return { - x: 1 - x - width, - y: 1 - y - height, - width, - height - }; - case 270: - return { - x: y, - y: 1 - x - width, - width: height, - height: width - }; - } - return { - x, - y, - width, - height - }; - } - rotate(angle) { - const { - drawLayer - } = this.parent; - let box; - if (this.#isFreeHighlight) { - angle = (angle - this.rotation + 360) % 360; - box = HighlightEditor.#rotateBbox(this.#highlightOutlines.box, angle); - } else { - box = HighlightEditor.#rotateBbox(this, angle); - } - drawLayer.rotate(this.#id, angle); - drawLayer.rotate(this.#outlineId, angle); - drawLayer.updateBox(this.#id, box); - drawLayer.updateBox(this.#outlineId, HighlightEditor.#rotateBbox(this.#focusOutlines.box, angle)); - } - render() { - if (this.div) { - return this.div; - } - const div = super.render(); - if (this.#text) { - div.setAttribute("aria-label", this.#text); - div.setAttribute("role", "mark"); - } - if (this.#isFreeHighlight) { - div.classList.add("free"); - } else { - this.div.addEventListener("keydown", this.#boundKeydown); - } - const highlightDiv = this.#highlightDiv = document.createElement("div"); - div.append(highlightDiv); - highlightDiv.setAttribute("aria-hidden", "true"); - highlightDiv.className = "internal"; - highlightDiv.style.clipPath = this.#clipPathId; - const [parentWidth, parentHeight] = this.parentDimensions; - this.setDims(this.width * parentWidth, this.height * parentHeight); - (0,tools.bindEvents)(this, this.#highlightDiv, ["pointerover", "pointerleave"]); - this.enableEditing(); - return div; - } - pointerover() { - this.parent.drawLayer.addClass(this.#outlineId, "hovered"); - } - pointerleave() { - this.parent.drawLayer.removeClass(this.#outlineId, "hovered"); - } - #keydown(event) { - HighlightEditor._keyboardManager.exec(this, event); - } - _moveCaret(direction) { - this.parent.unselect(this); - switch (direction) { - case 0: - case 2: - this.#setCaret(true); - break; - case 1: - case 3: - this.#setCaret(false); - break; - } - } - #setCaret(start) { - if (!this.#anchorNode) { - return; - } - const selection = window.getSelection(); - if (start) { - selection.setPosition(this.#anchorNode, this.#anchorOffset); - } else { - selection.setPosition(this.#focusNode, this.#focusOffset); - } - } - select() { - super.select(); - if (!this.#outlineId) { - return; - } - this.parent?.drawLayer.removeClass(this.#outlineId, "hovered"); - this.parent?.drawLayer.addClass(this.#outlineId, "selected"); - } - unselect() { - super.unselect(); - if (!this.#outlineId) { - return; - } - this.parent?.drawLayer.removeClass(this.#outlineId, "selected"); - if (!this.#isFreeHighlight) { - this.#setCaret(false); - } - } - get _mustFixPosition() { - return !this.#isFreeHighlight; - } - show(visible = this._isVisible) { - super.show(visible); - if (this.parent) { - this.parent.drawLayer.show(this.#id, visible); - this.parent.drawLayer.show(this.#outlineId, visible); - } - } - #getRotation() { - return this.#isFreeHighlight ? this.rotation : 0; - } - #serializeBoxes() { - if (this.#isFreeHighlight) { - return null; - } - const [pageWidth, pageHeight] = this.pageDimensions; - const boxes = this.#boxes; - const quadPoints = new Array(boxes.length * 8); - let i = 0; - for (const { - x, - y, - width, - height - } of boxes) { - const sx = x * pageWidth; - const sy = (1 - y - height) * pageHeight; - quadPoints[i] = quadPoints[i + 4] = sx; - quadPoints[i + 1] = quadPoints[i + 3] = sy; - quadPoints[i + 2] = quadPoints[i + 6] = sx + width * pageWidth; - quadPoints[i + 5] = quadPoints[i + 7] = sy + height * pageHeight; - i += 8; - } - return quadPoints; - } - #serializeOutlines(rect) { - return this.#highlightOutlines.serialize(rect, this.#getRotation()); - } - static startHighlighting(parent, isLTR, { - target: textLayer, - x, - y - }) { - const { - x: layerX, - y: layerY, - width: parentWidth, - height: parentHeight - } = textLayer.getBoundingClientRect(); - const pointerMove = e => { - this.#highlightMove(parent, e); - }; - const pointerDownOptions = { - capture: true, - passive: false - }; - const pointerDown = e => { - e.preventDefault(); - e.stopPropagation(); - }; - const pointerUpCallback = e => { - textLayer.removeEventListener("pointermove", pointerMove); - window.removeEventListener("blur", pointerUpCallback); - window.removeEventListener("pointerup", pointerUpCallback); - window.removeEventListener("pointerdown", pointerDown, pointerDownOptions); - window.removeEventListener("contextmenu", display_utils.noContextMenu); - this.#endHighlight(parent, e); - }; - window.addEventListener("blur", pointerUpCallback); - window.addEventListener("pointerup", pointerUpCallback); - window.addEventListener("pointerdown", pointerDown, pointerDownOptions); - window.addEventListener("contextmenu", display_utils.noContextMenu); - textLayer.addEventListener("pointermove", pointerMove); - this._freeHighlight = new editor_outliner.FreeOutliner({ - x, - y - }, [layerX, layerY, parentWidth, parentHeight], parent.scale, this._defaultThickness / 2, isLTR, 0.001); - ({ - id: this._freeHighlightId, - clipPathId: this._freeHighlightClipId - } = parent.drawLayer.highlight(this._freeHighlight, this._defaultColor, this._defaultOpacity, true)); - } - static #highlightMove(parent, event) { - if (this._freeHighlight.add(event)) { - parent.drawLayer.updatePath(this._freeHighlightId, this._freeHighlight); - } - } - static #endHighlight(parent, event) { - if (!this._freeHighlight.isEmpty()) { - parent.createAndAddNewEditor(event, false, { - highlightId: this._freeHighlightId, - highlightOutlines: this._freeHighlight.getOutlines(), - clipPathId: this._freeHighlightClipId, - methodOfCreation: "main_toolbar" - }); - } else { - parent.drawLayer.removeFreeHighlight(this._freeHighlightId); - } - this._freeHighlightId = -1; - this._freeHighlight = null; - this._freeHighlightClipId = ""; - } - static deserialize(data, parent, uiManager) { - const editor = super.deserialize(data, parent, uiManager); - const { - rect: [blX, blY, trX, trY], - color, - quadPoints - } = data; - editor.color = util.Util.makeHexColor(...color); - editor.#opacity = data.opacity; - const [pageWidth, pageHeight] = editor.pageDimensions; - editor.width = (trX - blX) / pageWidth; - editor.height = (trY - blY) / pageHeight; - const boxes = editor.#boxes = []; - for (let i = 0; i < quadPoints.length; i += 8) { - boxes.push({ - x: (quadPoints[4] - trX) / pageWidth, - y: (trY - (1 - quadPoints[i + 5])) / pageHeight, - width: (quadPoints[i + 2] - quadPoints[i]) / pageWidth, - height: (quadPoints[i + 5] - quadPoints[i + 1]) / pageHeight - }); - } - editor.#createOutlines(); - return editor; - } - serialize(isForCopying = false) { - if (this.isEmpty() || isForCopying) { - return null; - } - const rect = this.getRect(0, 0); - const color = editor_editor.AnnotationEditor._colorManager.convert(this.color); - return { - annotationType: util.AnnotationEditorType.HIGHLIGHT, - color, - opacity: this.#opacity, - thickness: this.#thickness, - quadPoints: this.#serializeBoxes(), - outlines: this.#serializeOutlines(rect), - pageIndex: this.pageIndex, - rect, - rotation: this.#getRotation(), - structTreeParentId: this._structTreeParentId - }; - } - static canCreateNewEmptyEditor() { - return false; - } -} - -;// CONCATENATED MODULE: ./src/display/editor/ink.js - - - - - -class InkEditor extends editor_editor.AnnotationEditor { - #baseHeight = 0; - #baseWidth = 0; - #boundCanvasPointermove = this.canvasPointermove.bind(this); - #boundCanvasPointerleave = this.canvasPointerleave.bind(this); - #boundCanvasPointerup = this.canvasPointerup.bind(this); - #boundCanvasPointerdown = this.canvasPointerdown.bind(this); - #canvasContextMenuTimeoutId = null; - #currentPath2D = new Path2D(); - #disableEditing = false; - #hasSomethingToDraw = false; - #isCanvasInitialized = false; - #observer = null; - #realWidth = 0; - #realHeight = 0; - #requestFrameCallback = null; - static _defaultColor = null; - static _defaultOpacity = 1; - static _defaultThickness = 1; - static _type = "ink"; - static _editorType = util.AnnotationEditorType.INK; - constructor(params) { - super({ - ...params, - name: "inkEditor" - }); - this.color = params.color || null; - this.thickness = params.thickness || null; - this.opacity = params.opacity || null; - this.paths = []; - this.bezierPath2D = []; - this.allRawPaths = []; - this.currentPath = []; - this.scaleFactor = 1; - this.translationX = this.translationY = 0; - this.x = 0; - this.y = 0; - this._willKeepAspectRatio = true; - } - static initialize(l10n, uiManager) { - editor_editor.AnnotationEditor.initialize(l10n, uiManager); - } - static updateDefaultParams(type, value) { - switch (type) { - case util.AnnotationEditorParamsType.INK_THICKNESS: - InkEditor._defaultThickness = value; - break; - case util.AnnotationEditorParamsType.INK_COLOR: - InkEditor._defaultColor = value; - break; - case util.AnnotationEditorParamsType.INK_OPACITY: - InkEditor._defaultOpacity = value / 100; - break; - } - } - updateParams(type, value) { - switch (type) { - case util.AnnotationEditorParamsType.INK_THICKNESS: - this.#updateThickness(value); - break; - case util.AnnotationEditorParamsType.INK_COLOR: - this.#updateColor(value); - break; - case util.AnnotationEditorParamsType.INK_OPACITY: - this.#updateOpacity(value); - break; - } - } - static get defaultPropertiesToUpdate() { - return [[util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || editor_editor.AnnotationEditor._defaultLineColor], [util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]]; - } - get propertiesToUpdate() { - return [[util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || editor_editor.AnnotationEditor._defaultLineColor], [util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]]; - } - #updateThickness(thickness) { - const setThickness = th => { - this.thickness = th; - this.#fitToContent(); - }; - const savedThickness = this.thickness; - this.addCommands({ - cmd: setThickness.bind(this, thickness), - undo: setThickness.bind(this, savedThickness), - post: this._uiManager.updateUI.bind(this._uiManager, this), - mustExec: true, - type: util.AnnotationEditorParamsType.INK_THICKNESS, - overwriteIfSameType: true, - keepUndo: true - }); - } - #updateColor(color) { - const setColor = col => { - this.color = col; - this.#redraw(); - }; - const savedColor = this.color; - this.addCommands({ - cmd: setColor.bind(this, color), - undo: setColor.bind(this, savedColor), - post: this._uiManager.updateUI.bind(this._uiManager, this), - mustExec: true, - type: util.AnnotationEditorParamsType.INK_COLOR, - overwriteIfSameType: true, - keepUndo: true - }); - } - #updateOpacity(opacity) { - const setOpacity = op => { - this.opacity = op; - this.#redraw(); - }; - opacity /= 100; - const savedOpacity = this.opacity; - this.addCommands({ - cmd: setOpacity.bind(this, opacity), - undo: setOpacity.bind(this, savedOpacity), - post: this._uiManager.updateUI.bind(this._uiManager, this), - mustExec: true, - type: util.AnnotationEditorParamsType.INK_OPACITY, - overwriteIfSameType: true, - keepUndo: true - }); - } - rebuild() { - if (!this.parent) { - return; - } - super.rebuild(); - if (this.div === null) { - return; - } - if (!this.canvas) { - this.#createCanvas(); - this.#createObserver(); - } - if (!this.isAttachedToDOM) { - this.parent.add(this); - this.#setCanvasDims(); - } - this.#fitToContent(); - } - remove() { - if (this.canvas === null) { - return; - } - if (!this.isEmpty()) { - this.commit(); - } - this.canvas.width = this.canvas.height = 0; - this.canvas.remove(); - this.canvas = null; - if (this.#canvasContextMenuTimeoutId) { - clearTimeout(this.#canvasContextMenuTimeoutId); - this.#canvasContextMenuTimeoutId = null; - } - this.#observer.disconnect(); - this.#observer = null; - super.remove(); - } - setParent(parent) { - if (!this.parent && parent) { - this._uiManager.removeShouldRescale(this); - } else if (this.parent && parent === null) { - this._uiManager.addShouldRescale(this); - } - super.setParent(parent); - } - onScaleChanging() { - const [parentWidth, parentHeight] = this.parentDimensions; - const width = this.width * parentWidth; - const height = this.height * parentHeight; - this.setDimensions(width, height); - } - enableEditMode() { - if (this.#disableEditing || this.canvas === null) { - return; - } - super.enableEditMode(); - this._isDraggable = false; - this.canvas.addEventListener("pointerdown", this.#boundCanvasPointerdown); - } - disableEditMode() { - if (!this.isInEditMode() || this.canvas === null) { - return; - } - super.disableEditMode(); - this._isDraggable = !this.isEmpty(); - this.div.classList.remove("editing"); - this.canvas.removeEventListener("pointerdown", this.#boundCanvasPointerdown); - } - onceAdded() { - this._isDraggable = !this.isEmpty(); - } - isEmpty() { - return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0; - } - #getInitialBBox() { - const { - parentRotation, - parentDimensions: [width, height] - } = this; - switch (parentRotation) { - case 90: - return [0, height, height, width]; - case 180: - return [width, height, width, height]; - case 270: - return [width, 0, height, width]; - default: - return [0, 0, width, height]; - } - } - #setStroke() { - const { - ctx, - color, - opacity, - thickness, - parentScale, - scaleFactor - } = this; - ctx.lineWidth = thickness * parentScale / scaleFactor; - ctx.lineCap = "round"; - ctx.lineJoin = "round"; - ctx.miterLimit = 10; - ctx.strokeStyle = `${color}${(0,tools.opacityToHex)(opacity)}`; - } - #startDrawing(x, y) { - this.canvas.addEventListener("contextmenu", display_utils.noContextMenu); - this.canvas.addEventListener("pointerleave", this.#boundCanvasPointerleave); - this.canvas.addEventListener("pointermove", this.#boundCanvasPointermove); - this.canvas.addEventListener("pointerup", this.#boundCanvasPointerup); - this.canvas.removeEventListener("pointerdown", this.#boundCanvasPointerdown); - this.isEditing = true; - if (!this.#isCanvasInitialized) { - this.#isCanvasInitialized = true; - this.#setCanvasDims(); - this.thickness ||= InkEditor._defaultThickness; - this.color ||= InkEditor._defaultColor || editor_editor.AnnotationEditor._defaultLineColor; - this.opacity ??= InkEditor._defaultOpacity; - } - this.currentPath.push([x, y]); - this.#hasSomethingToDraw = false; - this.#setStroke(); - this.#requestFrameCallback = () => { - this.#drawPoints(); - if (this.#requestFrameCallback) { - window.requestAnimationFrame(this.#requestFrameCallback); - } - }; - window.requestAnimationFrame(this.#requestFrameCallback); - } - #draw(x, y) { - const [lastX, lastY] = this.currentPath.at(-1); - if (this.currentPath.length > 1 && x === lastX && y === lastY) { - return; - } - const currentPath = this.currentPath; - let path2D = this.#currentPath2D; - currentPath.push([x, y]); - this.#hasSomethingToDraw = true; - if (currentPath.length <= 2) { - path2D.moveTo(...currentPath[0]); - path2D.lineTo(x, y); - return; - } - if (currentPath.length === 3) { - this.#currentPath2D = path2D = new Path2D(); - path2D.moveTo(...currentPath[0]); - } - this.#makeBezierCurve(path2D, ...currentPath.at(-3), ...currentPath.at(-2), x, y); - } - #endPath() { - if (this.currentPath.length === 0) { - return; - } - const lastPoint = this.currentPath.at(-1); - this.#currentPath2D.lineTo(...lastPoint); - } - #stopDrawing(x, y) { - this.#requestFrameCallback = null; - x = Math.min(Math.max(x, 0), this.canvas.width); - y = Math.min(Math.max(y, 0), this.canvas.height); - this.#draw(x, y); - this.#endPath(); - let bezier; - if (this.currentPath.length !== 1) { - bezier = this.#generateBezierPoints(); - } else { - const xy = [x, y]; - bezier = [[xy, xy.slice(), xy.slice(), xy]]; - } - const path2D = this.#currentPath2D; - const currentPath = this.currentPath; - this.currentPath = []; - this.#currentPath2D = new Path2D(); - const cmd = () => { - this.allRawPaths.push(currentPath); - this.paths.push(bezier); - this.bezierPath2D.push(path2D); - this._uiManager.rebuild(this); - }; - const undo = () => { - this.allRawPaths.pop(); - this.paths.pop(); - this.bezierPath2D.pop(); - if (this.paths.length === 0) { - this.remove(); - } else { - if (!this.canvas) { - this.#createCanvas(); - this.#createObserver(); - } - this.#fitToContent(); - } - }; - this.addCommands({ - cmd, - undo, - mustExec: true - }); - } - #drawPoints() { - if (!this.#hasSomethingToDraw) { - return; - } - this.#hasSomethingToDraw = false; - const thickness = Math.ceil(this.thickness * this.parentScale); - const lastPoints = this.currentPath.slice(-3); - const x = lastPoints.map(xy => xy[0]); - const y = lastPoints.map(xy => xy[1]); - const xMin = Math.min(...x) - thickness; - const xMax = Math.max(...x) + thickness; - const yMin = Math.min(...y) - thickness; - const yMax = Math.max(...y) + thickness; - const { - ctx - } = this; - ctx.save(); - ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); - for (const path of this.bezierPath2D) { - ctx.stroke(path); - } - ctx.stroke(this.#currentPath2D); - ctx.restore(); - } - #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) { - const prevX = (x0 + x1) / 2; - const prevY = (y0 + y1) / 2; - const x3 = (x1 + x2) / 2; - const y3 = (y1 + y2) / 2; - path2D.bezierCurveTo(prevX + 2 * (x1 - prevX) / 3, prevY + 2 * (y1 - prevY) / 3, x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3, x3, y3); - } - #generateBezierPoints() { - const path = this.currentPath; - if (path.length <= 2) { - return [[path[0], path[0], path.at(-1), path.at(-1)]]; - } - const bezierPoints = []; - let i; - let [x0, y0] = path[0]; - for (i = 1; i < path.length - 2; i++) { - const [x1, y1] = path[i]; - const [x2, y2] = path[i + 1]; - const x3 = (x1 + x2) / 2; - const y3 = (y1 + y2) / 2; - const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3]; - const control2 = [x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3]; - bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]); - [x0, y0] = [x3, y3]; - } - const [x1, y1] = path[i]; - const [x2, y2] = path[i + 1]; - const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3]; - const control2 = [x2 + 2 * (x1 - x2) / 3, y2 + 2 * (y1 - y2) / 3]; - bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]); - return bezierPoints; - } - #redraw() { - if (this.isEmpty()) { - this.#updateTransform(); - return; - } - this.#setStroke(); - const { - canvas, - ctx - } = this; - ctx.setTransform(1, 0, 0, 1, 0, 0); - ctx.clearRect(0, 0, canvas.width, canvas.height); - this.#updateTransform(); - for (const path of this.bezierPath2D) { - ctx.stroke(path); - } - } - commit() { - if (this.#disableEditing) { - return; - } - super.commit(); - this.isEditing = false; - this.disableEditMode(); - this.setInForeground(); - this.#disableEditing = true; - this.div.classList.add("disabled"); - this.#fitToContent(true); - this.select(); - this.parent.addInkEditorIfNeeded(true); - this.moveInDOM(); - this.div.focus({ - preventScroll: true - }); - } - focusin(event) { - if (!this._focusEventsAllowed) { - return; - } - super.focusin(event); - this.enableEditMode(); - } - canvasPointerdown(event) { - if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) { - return; - } - this.setInForeground(); - event.preventDefault(); - if (!this.div.contains(document.activeElement)) { - this.div.focus({ - preventScroll: true - }); - } - this.#startDrawing(event.offsetX, event.offsetY); - } - canvasPointermove(event) { - event.preventDefault(); - this.#draw(event.offsetX, event.offsetY); - } - canvasPointerup(event) { - event.preventDefault(); - this.#endDrawing(event); - } - canvasPointerleave(event) { - this.#endDrawing(event); - } - #endDrawing(event) { - this.canvas.removeEventListener("pointerleave", this.#boundCanvasPointerleave); - this.canvas.removeEventListener("pointermove", this.#boundCanvasPointermove); - this.canvas.removeEventListener("pointerup", this.#boundCanvasPointerup); - this.canvas.addEventListener("pointerdown", this.#boundCanvasPointerdown); - if (this.#canvasContextMenuTimeoutId) { - clearTimeout(this.#canvasContextMenuTimeoutId); - } - this.#canvasContextMenuTimeoutId = setTimeout(() => { - this.#canvasContextMenuTimeoutId = null; - this.canvas.removeEventListener("contextmenu", display_utils.noContextMenu); - }, 10); - this.#stopDrawing(event.offsetX, event.offsetY); - this.addToAnnotationStorage(); - this.setInBackground(); - } - #createCanvas() { - this.canvas = document.createElement("canvas"); - this.canvas.width = this.canvas.height = 0; - this.canvas.className = "inkEditorCanvas"; - this.canvas.setAttribute("data-l10n-id", "pdfjs-ink-canvas"); - this.div.append(this.canvas); - this.ctx = this.canvas.getContext("2d"); - } - #createObserver() { - this.#observer = new ResizeObserver(entries => { - const rect = entries[0].contentRect; - if (rect.width && rect.height) { - this.setDimensions(rect.width, rect.height); - } - }); - this.#observer.observe(this.div); - } - get isResizable() { - return !this.isEmpty() && this.#disableEditing; - } - render() { - if (this.div) { - return this.div; - } - let baseX, baseY; - if (this.width) { - baseX = this.x; - baseY = this.y; - } - super.render(); - this.div.setAttribute("data-l10n-id", "pdfjs-ink"); - const [x, y, w, h] = this.#getInitialBBox(); - this.setAt(x, y, 0, 0); - this.setDims(w, h); - this.#createCanvas(); - if (this.width) { - const [parentWidth, parentHeight] = this.parentDimensions; - this.setAspectRatio(this.width * parentWidth, this.height * parentHeight); - this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight); - this.#isCanvasInitialized = true; - this.#setCanvasDims(); - this.setDims(this.width * parentWidth, this.height * parentHeight); - this.#redraw(); - this.div.classList.add("disabled"); - } else { - this.div.classList.add("editing"); - this.enableEditMode(); - } - this.#createObserver(); - return this.div; - } - #setCanvasDims() { - if (!this.#isCanvasInitialized) { - return; - } - const [parentWidth, parentHeight] = this.parentDimensions; - this.canvas.width = Math.ceil(this.width * parentWidth); - this.canvas.height = Math.ceil(this.height * parentHeight); - this.#updateTransform(); - } - setDimensions(width, height) { - const roundedWidth = Math.round(width); - const roundedHeight = Math.round(height); - if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) { - return; - } - this.#realWidth = roundedWidth; - this.#realHeight = roundedHeight; - this.canvas.style.visibility = "hidden"; - const [parentWidth, parentHeight] = this.parentDimensions; - this.width = width / parentWidth; - this.height = height / parentHeight; - this.fixAndSetPosition(); - if (this.#disableEditing) { - this.#setScaleFactor(width, height); - } - this.#setCanvasDims(); - this.#redraw(); - this.canvas.style.visibility = "visible"; - this.fixDims(); - } - #setScaleFactor(width, height) { - const padding = this.#getPadding(); - const scaleFactorW = (width - padding) / this.#baseWidth; - const scaleFactorH = (height - padding) / this.#baseHeight; - this.scaleFactor = Math.min(scaleFactorW, scaleFactorH); - } - #updateTransform() { - const padding = this.#getPadding() / 2; - this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding); - } - static #buildPath2D(bezier) { - const path2D = new Path2D(); - for (let i = 0, ii = bezier.length; i < ii; i++) { - const [first, control1, control2, second] = bezier[i]; - if (i === 0) { - path2D.moveTo(...first); - } - path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]); - } - return path2D; - } - static #toPDFCoordinates(points, rect, rotation) { - const [blX, blY, trX, trY] = rect; - switch (rotation) { - case 0: - for (let i = 0, ii = points.length; i < ii; i += 2) { - points[i] += blX; - points[i + 1] = trY - points[i + 1]; - } - break; - case 90: - for (let i = 0, ii = points.length; i < ii; i += 2) { - const x = points[i]; - points[i] = points[i + 1] + blX; - points[i + 1] = x + blY; - } - break; - case 180: - for (let i = 0, ii = points.length; i < ii; i += 2) { - points[i] = trX - points[i]; - points[i + 1] += blY; - } - break; - case 270: - for (let i = 0, ii = points.length; i < ii; i += 2) { - const x = points[i]; - points[i] = trX - points[i + 1]; - points[i + 1] = trY - x; - } - break; - default: - throw new Error("Invalid rotation"); - } - return points; - } - static #fromPDFCoordinates(points, rect, rotation) { - const [blX, blY, trX, trY] = rect; - switch (rotation) { - case 0: - for (let i = 0, ii = points.length; i < ii; i += 2) { - points[i] -= blX; - points[i + 1] = trY - points[i + 1]; - } - break; - case 90: - for (let i = 0, ii = points.length; i < ii; i += 2) { - const x = points[i]; - points[i] = points[i + 1] - blY; - points[i + 1] = x - blX; - } - break; - case 180: - for (let i = 0, ii = points.length; i < ii; i += 2) { - points[i] = trX - points[i]; - points[i + 1] -= blY; - } - break; - case 270: - for (let i = 0, ii = points.length; i < ii; i += 2) { - const x = points[i]; - points[i] = trY - points[i + 1]; - points[i + 1] = trX - x; - } - break; - default: - throw new Error("Invalid rotation"); - } - return points; - } - #serializePaths(s, tx, ty, rect) { - const paths = []; - const padding = this.thickness / 2; - const shiftX = s * tx + padding; - const shiftY = s * ty + padding; - for (const bezier of this.paths) { - const buffer = []; - const points = []; - for (let j = 0, jj = bezier.length; j < jj; j++) { - const [first, control1, control2, second] = bezier[j]; - if (first[0] === second[0] && first[1] === second[1] && jj === 1) { - const p0 = s * first[0] + shiftX; - const p1 = s * first[1] + shiftY; - buffer.push(p0, p1); - points.push(p0, p1); - break; - } - const p10 = s * first[0] + shiftX; - const p11 = s * first[1] + shiftY; - const p20 = s * control1[0] + shiftX; - const p21 = s * control1[1] + shiftY; - const p30 = s * control2[0] + shiftX; - const p31 = s * control2[1] + shiftY; - const p40 = s * second[0] + shiftX; - const p41 = s * second[1] + shiftY; - if (j === 0) { - buffer.push(p10, p11); - points.push(p10, p11); - } - buffer.push(p20, p21, p30, p31, p40, p41); - points.push(p20, p21); - if (j === jj - 1) { - points.push(p40, p41); - } - } - paths.push({ - bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation), - points: InkEditor.#toPDFCoordinates(points, rect, this.rotation) - }); - } - return paths; - } - #getBbox() { - let xMin = Infinity; - let xMax = -Infinity; - let yMin = Infinity; - let yMax = -Infinity; - for (const path of this.paths) { - for (const [first, control1, control2, second] of path) { - const bbox = util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second); - xMin = Math.min(xMin, bbox[0]); - yMin = Math.min(yMin, bbox[1]); - xMax = Math.max(xMax, bbox[2]); - yMax = Math.max(yMax, bbox[3]); - } - } - return [xMin, yMin, xMax, yMax]; - } - #getPadding() { - return this.#disableEditing ? Math.ceil(this.thickness * this.parentScale) : 0; - } - #fitToContent(firstTime = false) { - if (this.isEmpty()) { - return; - } - if (!this.#disableEditing) { - this.#redraw(); - return; - } - const bbox = this.#getBbox(); - const padding = this.#getPadding(); - this.#baseWidth = Math.max(editor_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]); - this.#baseHeight = Math.max(editor_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]); - const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor); - const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor); - const [parentWidth, parentHeight] = this.parentDimensions; - this.width = width / parentWidth; - this.height = height / parentHeight; - this.setAspectRatio(width, height); - const prevTranslationX = this.translationX; - const prevTranslationY = this.translationY; - this.translationX = -bbox[0]; - this.translationY = -bbox[1]; - this.#setCanvasDims(); - this.#redraw(); - this.#realWidth = width; - this.#realHeight = height; - this.setDims(width, height); - const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0; - this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding); - } - static deserialize(data, parent, uiManager) { - if (data instanceof annotation_layer.InkAnnotationElement) { - return null; - } - const editor = super.deserialize(data, parent, uiManager); - editor.thickness = data.thickness; - editor.color = util.Util.makeHexColor(...data.color); - editor.opacity = data.opacity; - const [pageWidth, pageHeight] = editor.pageDimensions; - const width = editor.width * pageWidth; - const height = editor.height * pageHeight; - const scaleFactor = editor.parentScale; - const padding = data.thickness / 2; - editor.#disableEditing = true; - editor.#realWidth = Math.round(width); - editor.#realHeight = Math.round(height); - const { - paths, - rect, - rotation - } = data; - for (let { - bezier - } of paths) { - bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation); - const path = []; - editor.paths.push(path); - let p0 = scaleFactor * (bezier[0] - padding); - let p1 = scaleFactor * (bezier[1] - padding); - for (let i = 2, ii = bezier.length; i < ii; i += 6) { - const p10 = scaleFactor * (bezier[i] - padding); - const p11 = scaleFactor * (bezier[i + 1] - padding); - const p20 = scaleFactor * (bezier[i + 2] - padding); - const p21 = scaleFactor * (bezier[i + 3] - padding); - const p30 = scaleFactor * (bezier[i + 4] - padding); - const p31 = scaleFactor * (bezier[i + 5] - padding); - path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]); - p0 = p30; - p1 = p31; - } - const path2D = this.#buildPath2D(path); - editor.bezierPath2D.push(path2D); - } - const bbox = editor.#getBbox(); - editor.#baseWidth = Math.max(editor_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]); - editor.#baseHeight = Math.max(editor_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]); - editor.#setScaleFactor(width, height); - return editor; - } - serialize() { - if (this.isEmpty()) { - return null; - } - const rect = this.getRect(0, 0); - const color = editor_editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle); - return { - annotationType: util.AnnotationEditorType.INK, - color, - thickness: this.thickness, - opacity: this.opacity, - paths: this.#serializePaths(this.scaleFactor / this.parentScale, this.translationX, this.translationY, rect), - pageIndex: this.pageIndex, - rect, - rotation: this.rotation, - structTreeParentId: this._structTreeParentId - }; - } -} - -;// CONCATENATED MODULE: ./src/display/editor/stamp.js - - - - -class StampEditor extends editor_editor.AnnotationEditor { - #bitmap = null; - #bitmapId = null; - #bitmapPromise = null; - #bitmapUrl = null; - #bitmapFile = null; - #bitmapFileName = ""; - #canvas = null; - #observer = null; - #resizeTimeoutId = null; - #isSvg = false; - #hasBeenAddedInUndoStack = false; - static _type = "stamp"; - static _editorType = util.AnnotationEditorType.STAMP; - constructor(params) { - super({ - ...params, - name: "stampEditor" - }); - this.#bitmapUrl = params.bitmapUrl; - this.#bitmapFile = params.bitmapFile; - } - static initialize(l10n, uiManager) { - editor_editor.AnnotationEditor.initialize(l10n, uiManager); - } - static get supportedTypes() { - const types = ["apng", "avif", "bmp", "gif", "jpeg", "png", "svg+xml", "webp", "x-icon"]; - return (0,util.shadow)(this, "supportedTypes", types.map(type => `image/${type}`)); - } - static get supportedTypesStr() { - return (0,util.shadow)(this, "supportedTypesStr", this.supportedTypes.join(",")); - } - static isHandlingMimeForPasting(mime) { - return this.supportedTypes.includes(mime); - } - static paste(item, parent) { - parent.pasteEditor(util.AnnotationEditorType.STAMP, { - bitmapFile: item.getAsFile() - }); - } - #getBitmapFetched(data, fromId = false) { - if (!data) { - this.remove(); - return; - } - this.#bitmap = data.bitmap; - if (!fromId) { - this.#bitmapId = data.id; - this.#isSvg = data.isSvg; - } - if (data.file) { - this.#bitmapFileName = data.file.name; - } - this.#createCanvas(); - } - #getBitmapDone() { - this.#bitmapPromise = null; - this._uiManager.enableWaiting(false); - if (this.#canvas) { - this.div.focus(); - } - } - #getBitmap() { - if (this.#bitmapId) { - this._uiManager.enableWaiting(true); - this._uiManager.imageManager.getFromId(this.#bitmapId).then(data => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone()); - return; - } - if (this.#bitmapUrl) { - const url = this.#bitmapUrl; - this.#bitmapUrl = null; - this._uiManager.enableWaiting(true); - this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone()); - return; - } - if (this.#bitmapFile) { - const file = this.#bitmapFile; - this.#bitmapFile = null; - this._uiManager.enableWaiting(true); - this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone()); - return; - } - const input = document.createElement("input"); - input.type = "file"; - input.accept = StampEditor.supportedTypesStr; - this.#bitmapPromise = new Promise(resolve => { - input.addEventListener("change", async () => { - if (!input.files || input.files.length === 0) { - this.remove(); - } else { - this._uiManager.enableWaiting(true); - const data = await this._uiManager.imageManager.getFromFile(input.files[0]); - this.#getBitmapFetched(data); - } - resolve(); - }); - input.addEventListener("cancel", () => { - this.remove(); - resolve(); - }); - }).finally(() => this.#getBitmapDone()); - input.click(); - } - remove() { - if (this.#bitmapId) { - this.#bitmap = null; - this._uiManager.imageManager.deleteId(this.#bitmapId); - this.#canvas?.remove(); - this.#canvas = null; - this.#observer?.disconnect(); - this.#observer = null; - if (this.#resizeTimeoutId) { - clearTimeout(this.#resizeTimeoutId); - this.#resizeTimeoutId = null; - } - } - super.remove(); - } - rebuild() { - if (!this.parent) { - if (this.#bitmapId) { - this.#getBitmap(); - } - return; - } - super.rebuild(); - if (this.div === null) { - return; - } - if (this.#bitmapId && this.#canvas === null) { - this.#getBitmap(); - } - if (!this.isAttachedToDOM) { - this.parent.add(this); - } - } - onceAdded() { - this._isDraggable = true; - this.div.focus(); - } - isEmpty() { - return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile || this.#bitmapId); - } - get isResizable() { - return true; - } - render() { - if (this.div) { - return this.div; - } - let baseX, baseY; - if (this.width) { - baseX = this.x; - baseY = this.y; - } - super.render(); - this.div.hidden = true; - this.addAltTextButton(); - if (this.#bitmap) { - this.#createCanvas(); - } else { - this.#getBitmap(); - } - if (this.width) { - const [parentWidth, parentHeight] = this.parentDimensions; - this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight); - } - return this.div; - } - #createCanvas() { - const { - div - } = this; - let { - width, - height - } = this.#bitmap; - const [pageWidth, pageHeight] = this.pageDimensions; - const MAX_RATIO = 0.75; - if (this.width) { - width = this.width * pageWidth; - height = this.height * pageHeight; - } else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) { - const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height); - width *= factor; - height *= factor; - } - const [parentWidth, parentHeight] = this.parentDimensions; - this.setDims(width * parentWidth / pageWidth, height * parentHeight / pageHeight); - this._uiManager.enableWaiting(false); - const canvas = this.#canvas = document.createElement("canvas"); - div.append(canvas); - div.hidden = false; - this.#drawBitmap(width, height); - this.#createObserver(); - if (!this.#hasBeenAddedInUndoStack) { - this.parent.addUndoableEditor(this); - this.#hasBeenAddedInUndoStack = true; - } - this._reportTelemetry({ - action: "inserted_image" - }); - if (this.#bitmapFileName) { - canvas.setAttribute("aria-label", this.#bitmapFileName); - } - } - #setDimensions(width, height) { - const [parentWidth, parentHeight] = this.parentDimensions; - this.width = width / parentWidth; - this.height = height / parentHeight; - this.setDims(width, height); - if (this._initialOptions?.isCentered) { - this.center(); - } else { - this.fixAndSetPosition(); - } - this._initialOptions = null; - if (this.#resizeTimeoutId !== null) { - clearTimeout(this.#resizeTimeoutId); - } - const TIME_TO_WAIT = 200; - this.#resizeTimeoutId = setTimeout(() => { - this.#resizeTimeoutId = null; - this.#drawBitmap(width, height); - }, TIME_TO_WAIT); - } - #scaleBitmap(width, height) { - const { - width: bitmapWidth, - height: bitmapHeight - } = this.#bitmap; - let newWidth = bitmapWidth; - let newHeight = bitmapHeight; - let bitmap = this.#bitmap; - while (newWidth > 2 * width || newHeight > 2 * height) { - const prevWidth = newWidth; - const prevHeight = newHeight; - if (newWidth > 2 * width) { - newWidth = newWidth >= 16384 ? Math.floor(newWidth / 2) - 1 : Math.ceil(newWidth / 2); - } - if (newHeight > 2 * height) { - newHeight = newHeight >= 16384 ? Math.floor(newHeight / 2) - 1 : Math.ceil(newHeight / 2); - } - const offscreen = new OffscreenCanvas(newWidth, newHeight); - const ctx = offscreen.getContext("2d"); - ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight); - bitmap = offscreen.transferToImageBitmap(); - } - return bitmap; - } - #drawBitmap(width, height) { - width = Math.ceil(width); - height = Math.ceil(height); - const canvas = this.#canvas; - if (!canvas || canvas.width === width && canvas.height === height) { - return; - } - canvas.width = width; - canvas.height = height; - const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(width, height); - if (this._uiManager.hasMLManager && !this.hasAltText()) { - const offscreen = new OffscreenCanvas(width, height); - const ctx = offscreen.getContext("2d"); - ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height); - offscreen.convertToBlob().then(blob => { - const fileReader = new FileReader(); - fileReader.onload = () => { - const url = fileReader.result; - this._uiManager.mlGuess({ - service: "image-to-text", - request: { - imageData: url - } - }).then(response => { - const altText = response?.output || ""; - if (this.parent && altText && !this.hasAltText()) { - this.altTextData = { - altText, - decorative: false - }; - } - }); - }; - fileReader.readAsDataURL(blob); - }); - } - const ctx = canvas.getContext("2d"); - ctx.filter = this._uiManager.hcmFilter; - ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height); - } - getImageForAltText() { - return this.#canvas; - } - #serializeBitmap(toUrl) { - if (toUrl) { - if (this.#isSvg) { - const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId); - if (url) { - return url; - } - } - const canvas = document.createElement("canvas"); - ({ - width: canvas.width, - height: canvas.height - } = this.#bitmap); - const ctx = canvas.getContext("2d"); - ctx.drawImage(this.#bitmap, 0, 0); - return canvas.toDataURL(); - } - if (this.#isSvg) { - const [pageWidth, pageHeight] = this.pageDimensions; - const width = Math.round(this.width * pageWidth * display_utils.PixelsPerInch.PDF_TO_CSS_UNITS); - const height = Math.round(this.height * pageHeight * display_utils.PixelsPerInch.PDF_TO_CSS_UNITS); - const offscreen = new OffscreenCanvas(width, height); - const ctx = offscreen.getContext("2d"); - ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height); - return offscreen.transferToImageBitmap(); - } - return structuredClone(this.#bitmap); - } - #createObserver() { - this.#observer = new ResizeObserver(entries => { - const rect = entries[0].contentRect; - if (rect.width && rect.height) { - this.#setDimensions(rect.width, rect.height); - } - }); - this.#observer.observe(this.div); - } - static deserialize(data, parent, uiManager) { - if (data instanceof annotation_layer.StampAnnotationElement) { - return null; - } - const editor = super.deserialize(data, parent, uiManager); - const { - rect, - bitmapUrl, - bitmapId, - isSvg, - accessibilityData - } = data; - if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) { - editor.#bitmapId = bitmapId; - } else { - editor.#bitmapUrl = bitmapUrl; - } - editor.#isSvg = isSvg; - const [parentWidth, parentHeight] = editor.pageDimensions; - editor.width = (rect[2] - rect[0]) / parentWidth; - editor.height = (rect[3] - rect[1]) / parentHeight; - if (accessibilityData) { - editor.altTextData = accessibilityData; - } - return editor; - } - serialize(isForCopying = false, context = null) { - if (this.isEmpty()) { - return null; - } - const serialized = { - annotationType: util.AnnotationEditorType.STAMP, - bitmapId: this.#bitmapId, - pageIndex: this.pageIndex, - rect: this.getRect(0, 0), - rotation: this.rotation, - isSvg: this.#isSvg, - structTreeParentId: this._structTreeParentId - }; - if (isForCopying) { - serialized.bitmapUrl = this.#serializeBitmap(true); - serialized.accessibilityData = this.altTextData; - return serialized; - } - const { - decorative, - altText - } = this.altTextData; - if (!decorative && altText) { - serialized.accessibilityData = { - type: "Figure", - alt: altText - }; - } - if (context === null) { - return serialized; - } - context.stamps ||= new Map(); - const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null; - if (!context.stamps.has(this.#bitmapId)) { - context.stamps.set(this.#bitmapId, { - area, - serialized - }); - serialized.bitmap = this.#serializeBitmap(false); - } else if (this.#isSvg) { - const prevData = context.stamps.get(this.#bitmapId); - if (area > prevData.area) { - prevData.area = area; - prevData.serialized.bitmap.close(); - prevData.serialized.bitmap = this.#serializeBitmap(false); - } - } - return serialized; - } -} - -;// CONCATENATED MODULE: ./src/display/editor/annotation_editor_layer.js - - - - - - - -class AnnotationEditorLayer { - #accessibilityManager; - #allowClick = false; - #annotationLayer = null; - #boundPointerup = null; - #boundPointerdown = null; - #boundTextLayerPointerDown = null; - #editorFocusTimeoutId = null; - #editors = new Map(); - #hadPointerDown = false; - #isCleaningUp = false; - #isDisabling = false; - #textLayer = null; - #uiManager; - static _initialized = false; - static #editorTypes = new Map([FreeTextEditor, InkEditor, StampEditor, HighlightEditor].map(type => [type._editorType, type])); - constructor({ - uiManager, - pageIndex, - div, - accessibilityManager, - annotationLayer, - drawLayer, - textLayer, - viewport, - l10n - }) { - const editorTypes = [...AnnotationEditorLayer.#editorTypes.values()]; - if (!AnnotationEditorLayer._initialized) { - AnnotationEditorLayer._initialized = true; - for (const editorType of editorTypes) { - editorType.initialize(l10n, uiManager); - } - } - uiManager.registerEditorTypes(editorTypes); - this.#uiManager = uiManager; - this.pageIndex = pageIndex; - this.div = div; - this.#accessibilityManager = accessibilityManager; - this.#annotationLayer = annotationLayer; - this.viewport = viewport; - this.#textLayer = textLayer; - this.drawLayer = drawLayer; - this.#uiManager.addLayer(this); - } - get isEmpty() { - return this.#editors.size === 0; - } - get isInvisible() { - return this.isEmpty && this.#uiManager.getMode() === util.AnnotationEditorType.NONE; - } - updateToolbar(mode) { - this.#uiManager.updateToolbar(mode); - } - updateMode(mode = this.#uiManager.getMode()) { - this.#cleanup(); - switch (mode) { - case util.AnnotationEditorType.NONE: - this.disableTextSelection(); - this.togglePointerEvents(false); - this.toggleAnnotationLayerPointerEvents(true); - this.disableClick(); - return; - case util.AnnotationEditorType.INK: - this.addInkEditorIfNeeded(false); - this.disableTextSelection(); - this.togglePointerEvents(true); - this.disableClick(); - break; - case util.AnnotationEditorType.HIGHLIGHT: - this.enableTextSelection(); - this.togglePointerEvents(false); - this.disableClick(); - break; - default: - this.disableTextSelection(); - this.togglePointerEvents(true); - this.enableClick(); - } - this.toggleAnnotationLayerPointerEvents(false); - const { - classList - } = this.div; - for (const editorType of AnnotationEditorLayer.#editorTypes.values()) { - classList.toggle(`${editorType._type}Editing`, mode === editorType._editorType); - } - this.div.hidden = false; - } - hasTextLayer(textLayer) { - return textLayer === this.#textLayer?.div; - } - addInkEditorIfNeeded(isCommitting) { - if (this.#uiManager.getMode() !== util.AnnotationEditorType.INK) { - return; - } - if (!isCommitting) { - for (const editor of this.#editors.values()) { - if (editor.isEmpty()) { - editor.setInBackground(); - return; - } - } - } - const editor = this.createAndAddNewEditor({ - offsetX: 0, - offsetY: 0 - }, false); - editor.setInBackground(); - } - setEditingState(isEditing) { - this.#uiManager.setEditingState(isEditing); - } - addCommands(params) { - this.#uiManager.addCommands(params); - } - togglePointerEvents(enabled = false) { - this.div.classList.toggle("disabled", !enabled); - } - toggleAnnotationLayerPointerEvents(enabled = false) { - this.#annotationLayer?.div.classList.toggle("disabled", !enabled); - } - enable() { - this.div.tabIndex = 0; - this.togglePointerEvents(true); - const annotationElementIds = new Set(); - for (const editor of this.#editors.values()) { - editor.enableEditing(); - editor.show(true); - if (editor.annotationElementId) { - this.#uiManager.removeChangedExistingAnnotation(editor); - annotationElementIds.add(editor.annotationElementId); - } - } - if (!this.#annotationLayer) { - return; - } - const editables = this.#annotationLayer.getEditableAnnotations(); - for (const editable of editables) { - editable.hide(); - if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) { - continue; - } - if (annotationElementIds.has(editable.data.id)) { - continue; - } - const editor = this.deserialize(editable); - if (!editor) { - continue; - } - this.addOrRebuild(editor); - editor.enableEditing(); - } - } - disable() { - this.#isDisabling = true; - this.div.tabIndex = -1; - this.togglePointerEvents(false); - const changedAnnotations = new Map(); - const resetAnnotations = new Map(); - for (const editor of this.#editors.values()) { - editor.disableEditing(); - if (!editor.annotationElementId) { - continue; - } - if (editor.serialize() !== null) { - changedAnnotations.set(editor.annotationElementId, editor); - continue; - } else { - resetAnnotations.set(editor.annotationElementId, editor); - } - this.getEditableAnnotation(editor.annotationElementId)?.show(); - editor.remove(); - } - if (this.#annotationLayer) { - const editables = this.#annotationLayer.getEditableAnnotations(); - for (const editable of editables) { - const { - id - } = editable.data; - if (this.#uiManager.isDeletedAnnotationElement(id)) { - continue; - } - let editor = resetAnnotations.get(id); - if (editor) { - editor.resetAnnotationElement(editable); - editor.show(false); - editable.show(); - continue; - } - editor = changedAnnotations.get(id); - if (editor) { - this.#uiManager.addChangedExistingAnnotation(editor); - editor.renderAnnotationElement(editable); - editor.show(false); - } - editable.show(); - } - } - this.#cleanup(); - if (this.isEmpty) { - this.div.hidden = true; - } - const { - classList - } = this.div; - for (const editorType of AnnotationEditorLayer.#editorTypes.values()) { - classList.remove(`${editorType._type}Editing`); - } - this.disableTextSelection(); - this.toggleAnnotationLayerPointerEvents(true); - this.#isDisabling = false; - } - getEditableAnnotation(id) { - return this.#annotationLayer?.getEditableAnnotation(id) || null; - } - setActiveEditor(editor) { - const currentActive = this.#uiManager.getActive(); - if (currentActive === editor) { - return; - } - this.#uiManager.setActiveEditor(editor); - } - enableTextSelection() { - this.div.tabIndex = -1; - if (this.#textLayer?.div && !this.#boundTextLayerPointerDown) { - this.#boundTextLayerPointerDown = this.#textLayerPointerDown.bind(this); - this.#textLayer.div.addEventListener("pointerdown", this.#boundTextLayerPointerDown); - this.#textLayer.div.classList.add("highlighting"); - } - } - disableTextSelection() { - this.div.tabIndex = 0; - if (this.#textLayer?.div && this.#boundTextLayerPointerDown) { - this.#textLayer.div.removeEventListener("pointerdown", this.#boundTextLayerPointerDown); - this.#boundTextLayerPointerDown = null; - this.#textLayer.div.classList.remove("highlighting"); - } - } - #textLayerPointerDown(event) { - this.#uiManager.unselectAll(); - if (event.target === this.#textLayer.div) { - const { - isMac - } = util.FeatureTest.platform; - if (event.button !== 0 || event.ctrlKey && isMac) { - return; - } - this.#uiManager.showAllEditors("highlight", true, true); - this.#textLayer.div.classList.add("free"); - HighlightEditor.startHighlighting(this, this.#uiManager.direction === "ltr", event); - this.#textLayer.div.addEventListener("pointerup", () => { - this.#textLayer.div.classList.remove("free"); - }, { - once: true - }); - event.preventDefault(); - } - } - enableClick() { - if (this.#boundPointerdown) { - return; - } - this.#boundPointerdown = this.pointerdown.bind(this); - this.#boundPointerup = this.pointerup.bind(this); - this.div.addEventListener("pointerdown", this.#boundPointerdown); - this.div.addEventListener("pointerup", this.#boundPointerup); - } - disableClick() { - if (!this.#boundPointerdown) { - return; - } - this.div.removeEventListener("pointerdown", this.#boundPointerdown); - this.div.removeEventListener("pointerup", this.#boundPointerup); - this.#boundPointerdown = null; - this.#boundPointerup = null; - } - attach(editor) { - this.#editors.set(editor.id, editor); - const { - annotationElementId - } = editor; - if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) { - this.#uiManager.removeDeletedAnnotationElement(editor); - } - } - detach(editor) { - this.#editors.delete(editor.id); - this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv); - if (!this.#isDisabling && editor.annotationElementId) { - this.#uiManager.addDeletedAnnotationElement(editor); - } - } - remove(editor) { - this.detach(editor); - this.#uiManager.removeEditor(editor); - editor.div.remove(); - editor.isAttachedToDOM = false; - if (!this.#isCleaningUp) { - this.addInkEditorIfNeeded(false); - } - } - changeParent(editor) { - if (editor.parent === this) { - return; - } - if (editor.parent && editor.annotationElementId) { - this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId); - editor_editor.AnnotationEditor.deleteAnnotationElement(editor); - editor.annotationElementId = null; - } - this.attach(editor); - editor.parent?.detach(editor); - editor.setParent(this); - if (editor.div && editor.isAttachedToDOM) { - editor.div.remove(); - this.div.append(editor.div); - } - } - add(editor) { - if (editor.parent === this && editor.isAttachedToDOM) { - return; - } - this.changeParent(editor); - this.#uiManager.addEditor(editor); - this.attach(editor); - if (!editor.isAttachedToDOM) { - const div = editor.render(); - this.div.append(div); - editor.isAttachedToDOM = true; - } - editor.fixAndSetPosition(); - editor.onceAdded(); - this.#uiManager.addToAnnotationStorage(editor); - editor._reportTelemetry(editor.telemetryInitialData); - } - moveEditorInDOM(editor) { - if (!editor.isAttachedToDOM) { - return; - } - const { - activeElement - } = document; - if (editor.div.contains(activeElement) && !this.#editorFocusTimeoutId) { - editor._focusEventsAllowed = false; - this.#editorFocusTimeoutId = setTimeout(() => { - this.#editorFocusTimeoutId = null; - if (!editor.div.contains(document.activeElement)) { - editor.div.addEventListener("focusin", () => { - editor._focusEventsAllowed = true; - }, { - once: true - }); - activeElement.focus(); - } else { - editor._focusEventsAllowed = true; - } - }, 0); - } - editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true); - } - addOrRebuild(editor) { - if (editor.needsToBeRebuilt()) { - editor.parent ||= this; - editor.rebuild(); - editor.show(); - } else { - this.add(editor); - } - } - addUndoableEditor(editor) { - const cmd = () => editor._uiManager.rebuild(editor); - const undo = () => { - editor.remove(); - }; - this.addCommands({ - cmd, - undo, - mustExec: false - }); - } - getNextId() { - return this.#uiManager.getId(); - } - get #currentEditorType() { - return AnnotationEditorLayer.#editorTypes.get(this.#uiManager.getMode()); - } - #createNewEditor(params) { - const editorType = this.#currentEditorType; - return editorType ? new editorType.prototype.constructor(params) : null; - } - canCreateNewEmptyEditor() { - return this.#currentEditorType?.canCreateNewEmptyEditor(); - } - pasteEditor(mode, params) { - this.#uiManager.updateToolbar(mode); - this.#uiManager.updateMode(mode); - const { - offsetX, - offsetY - } = this.#getCenterPoint(); - const id = this.getNextId(); - const editor = this.#createNewEditor({ - parent: this, - id, - x: offsetX, - y: offsetY, - uiManager: this.#uiManager, - isCentered: true, - ...params - }); - if (editor) { - this.add(editor); - } - } - deserialize(data) { - return AnnotationEditorLayer.#editorTypes.get(data.annotationType ?? data.annotationEditorType)?.deserialize(data, this, this.#uiManager) || null; - } - createAndAddNewEditor(event, isCentered, data = {}) { - const id = this.getNextId(); - const editor = this.#createNewEditor({ - parent: this, - id, - x: event.offsetX, - y: event.offsetY, - uiManager: this.#uiManager, - isCentered, - ...data - }); - if (editor) { - this.add(editor); - } - return editor; - } - #getCenterPoint() { - const { - x, - y, - width, - height - } = this.div.getBoundingClientRect(); - const tlX = Math.max(0, x); - const tlY = Math.max(0, y); - const brX = Math.min(window.innerWidth, x + width); - const brY = Math.min(window.innerHeight, y + height); - const centerX = (tlX + brX) / 2 - x; - const centerY = (tlY + brY) / 2 - y; - const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX]; - return { - offsetX, - offsetY - }; - } - addNewEditor() { - this.createAndAddNewEditor(this.#getCenterPoint(), true); - } - setSelected(editor) { - this.#uiManager.setSelected(editor); - } - toggleSelected(editor) { - this.#uiManager.toggleSelected(editor); - } - isSelected(editor) { - return this.#uiManager.isSelected(editor); - } - unselect(editor) { - this.#uiManager.unselect(editor); - } - pointerup(event) { - const { - isMac - } = util.FeatureTest.platform; - if (event.button !== 0 || event.ctrlKey && isMac) { - return; - } - if (event.target !== this.div) { - return; - } - if (!this.#hadPointerDown) { - return; - } - this.#hadPointerDown = false; - if (!this.#allowClick) { - this.#allowClick = true; - return; - } - if (this.#uiManager.getMode() === util.AnnotationEditorType.STAMP) { - this.#uiManager.unselectAll(); - return; - } - this.createAndAddNewEditor(event, false); - } - pointerdown(event) { - if (this.#uiManager.getMode() === util.AnnotationEditorType.HIGHLIGHT) { - this.enableTextSelection(); - } - if (this.#hadPointerDown) { - this.#hadPointerDown = false; - return; - } - const { - isMac - } = util.FeatureTest.platform; - if (event.button !== 0 || event.ctrlKey && isMac) { - return; - } - if (event.target !== this.div) { - return; - } - this.#hadPointerDown = true; - const editor = this.#uiManager.getActive(); - this.#allowClick = !editor || editor.isEmpty(); - } - findNewParent(editor, x, y) { - const layer = this.#uiManager.findParent(x, y); - if (layer === null || layer === this) { - return false; - } - layer.changeParent(editor); - return true; - } - destroy() { - if (this.#uiManager.getActive()?.parent === this) { - this.#uiManager.commitOrRemove(); - this.#uiManager.setActiveEditor(null); - } - if (this.#editorFocusTimeoutId) { - clearTimeout(this.#editorFocusTimeoutId); - this.#editorFocusTimeoutId = null; - } - for (const editor of this.#editors.values()) { - this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv); - editor.setParent(null); - editor.isAttachedToDOM = false; - editor.div.remove(); - } - this.div = null; - this.#editors.clear(); - this.#uiManager.removeLayer(this); - } - #cleanup() { - this.#isCleaningUp = true; - for (const editor of this.#editors.values()) { - if (editor.isEmpty()) { - editor.remove(); - } - } - this.#isCleaningUp = false; - } - render({ - viewport - }) { - this.viewport = viewport; - (0,display_utils.setLayerDimensions)(this.div, viewport); - for (const editor of this.#uiManager.getEditors(this.pageIndex)) { - this.add(editor); - editor.rebuild(); - } - this.updateMode(); - } - update({ - viewport - }) { - this.#uiManager.commitOrRemove(); - this.#cleanup(); - const oldRotation = this.viewport.rotation; - const rotation = viewport.rotation; - this.viewport = viewport; - (0,display_utils.setLayerDimensions)(this.div, { - rotation - }); - if (oldRotation !== rotation) { - for (const editor of this.#editors.values()) { - editor.rotate(rotation); - } - } - this.addInkEditorIfNeeded(false); - } - get pageDimensions() { - const { - pageWidth, - pageHeight - } = this.viewport.rawDims; - return [pageWidth, pageHeight]; - } - get scale() { - return this.#uiManager.viewParameters.realScale; - } -} - - -/***/ }), - -/***/ 259: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ColorPicker: () => (/* binding */ ColorPicker) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _tools_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(830); -/* harmony import */ var _display_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(419); - - - -class ColorPicker { - #boundKeyDown = this.#keyDown.bind(this); - #boundPointerDown = this.#pointerDown.bind(this); - #button = null; - #buttonSwatch = null; - #defaultColor; - #dropdown = null; - #dropdownWasFromKeyboard = false; - #isMainColorPicker = false; - #editor = null; - #eventBus; - #uiManager = null; - #type; - static get _keyboardManager() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_keyboardManager", new _tools_js__WEBPACK_IMPORTED_MODULE_1__.KeyboardManager([[["Escape", "mac+Escape"], ColorPicker.prototype._hideDropdownFromKeyboard], [[" ", "mac+ "], ColorPicker.prototype._colorSelectFromKeyboard], [["ArrowDown", "ArrowRight", "mac+ArrowDown", "mac+ArrowRight"], ColorPicker.prototype._moveToNext], [["ArrowUp", "ArrowLeft", "mac+ArrowUp", "mac+ArrowLeft"], ColorPicker.prototype._moveToPrevious], [["Home", "mac+Home"], ColorPicker.prototype._moveToBeginning], [["End", "mac+End"], ColorPicker.prototype._moveToEnd]])); - } - constructor({ - editor = null, - uiManager = null - }) { - if (editor) { - this.#isMainColorPicker = false; - this.#type = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.HIGHLIGHT_COLOR; - this.#editor = editor; - } else { - this.#isMainColorPicker = true; - this.#type = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR; - } - this.#uiManager = editor?._uiManager || uiManager; - this.#eventBus = this.#uiManager._eventBus; - this.#defaultColor = editor?.color || this.#uiManager?.highlightColors.values().next().value || "#FFFF98"; - } - renderButton() { - const button = this.#button = document.createElement("button"); - button.className = "colorPicker"; - button.tabIndex = "0"; - button.setAttribute("data-l10n-id", "pdfjs-editor-colorpicker-button"); - button.setAttribute("aria-haspopup", true); - button.addEventListener("click", this.#openDropdown.bind(this)); - button.addEventListener("keydown", this.#boundKeyDown); - const swatch = this.#buttonSwatch = document.createElement("span"); - swatch.className = "swatch"; - swatch.setAttribute("aria-hidden", true); - swatch.style.backgroundColor = this.#defaultColor; - button.append(swatch); - return button; - } - renderMainDropdown() { - const dropdown = this.#dropdown = this.#getDropdownRoot(); - dropdown.setAttribute("aria-orientation", "horizontal"); - dropdown.setAttribute("aria-labelledby", "highlightColorPickerLabel"); - return dropdown; - } - #getDropdownRoot() { - const div = document.createElement("div"); - div.addEventListener("contextmenu", _display_utils_js__WEBPACK_IMPORTED_MODULE_2__.noContextMenu); - div.className = "dropdown"; - div.role = "listbox"; - div.setAttribute("aria-multiselectable", false); - div.setAttribute("aria-orientation", "vertical"); - div.setAttribute("data-l10n-id", "pdfjs-editor-colorpicker-dropdown"); - for (const [name, color] of this.#uiManager.highlightColors) { - const button = document.createElement("button"); - button.tabIndex = "0"; - button.role = "option"; - button.setAttribute("data-color", color); - button.title = name; - button.setAttribute("data-l10n-id", `pdfjs-editor-colorpicker-${name}`); - const swatch = document.createElement("span"); - button.append(swatch); - swatch.className = "swatch"; - swatch.style.backgroundColor = color; - button.setAttribute("aria-selected", color === this.#defaultColor); - button.addEventListener("click", this.#colorSelect.bind(this, color)); - div.append(button); - } - div.addEventListener("keydown", this.#boundKeyDown); - return div; - } - #colorSelect(color, event) { - event.stopPropagation(); - this.#eventBus.dispatch("switchannotationeditorparams", { - source: this, - type: this.#type, - value: color - }); - } - _colorSelectFromKeyboard(event) { - if (event.target === this.#button) { - this.#openDropdown(event); - return; - } - const color = event.target.getAttribute("data-color"); - if (!color) { - return; - } - this.#colorSelect(color, event); - } - _moveToNext(event) { - if (!this.#isDropdownVisible) { - this.#openDropdown(event); - return; - } - if (event.target === this.#button) { - this.#dropdown.firstChild?.focus(); - return; - } - event.target.nextSibling?.focus(); - } - _moveToPrevious(event) { - if (event.target === this.#dropdown?.firstChild || event.target === this.#button) { - if (this.#isDropdownVisible) { - this._hideDropdownFromKeyboard(); - } - return; - } - if (!this.#isDropdownVisible) { - this.#openDropdown(event); - } - event.target.previousSibling?.focus(); - } - _moveToBeginning(event) { - if (!this.#isDropdownVisible) { - this.#openDropdown(event); - return; - } - this.#dropdown.firstChild?.focus(); - } - _moveToEnd(event) { - if (!this.#isDropdownVisible) { - this.#openDropdown(event); - return; - } - this.#dropdown.lastChild?.focus(); - } - #keyDown(event) { - ColorPicker._keyboardManager.exec(this, event); - } - #openDropdown(event) { - if (this.#isDropdownVisible) { - this.hideDropdown(); - return; - } - this.#dropdownWasFromKeyboard = event.detail === 0; - window.addEventListener("pointerdown", this.#boundPointerDown); - if (this.#dropdown) { - this.#dropdown.classList.remove("hidden"); - return; - } - const root = this.#dropdown = this.#getDropdownRoot(); - this.#button.append(root); - } - #pointerDown(event) { - if (this.#dropdown?.contains(event.target)) { - return; - } - this.hideDropdown(); - } - hideDropdown() { - this.#dropdown?.classList.add("hidden"); - window.removeEventListener("pointerdown", this.#boundPointerDown); - } - get #isDropdownVisible() { - return this.#dropdown && !this.#dropdown.classList.contains("hidden"); - } - _hideDropdownFromKeyboard() { - if (this.#isMainColorPicker) { - return; - } - if (!this.#isDropdownVisible) { - this.#editor?.unselect(); - return; - } - this.hideDropdown(); - this.#button.focus({ - preventScroll: true, - focusVisible: this.#dropdownWasFromKeyboard - }); - } - updateColor(color) { - if (this.#buttonSwatch) { - this.#buttonSwatch.style.backgroundColor = color; - } - if (!this.#dropdown) { - return; - } - const i = this.#uiManager.highlightColors.values(); - for (const child of this.#dropdown.children) { - child.setAttribute("aria-selected", i.next().value === color); - } - } - destroy() { - this.#button?.remove(); - this.#button = null; - this.#buttonSwatch = null; - this.#dropdown?.remove(); - this.#dropdown = null; - } -} - - -/***/ }), - -/***/ 310: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - AnnotationEditor: () => (/* binding */ AnnotationEditor) -}); - -// EXTERNAL MODULE: ./src/display/editor/tools.js -var tools = __webpack_require__(830); -// EXTERNAL MODULE: ./src/shared/util.js -var util = __webpack_require__(292); -// EXTERNAL MODULE: ./src/display/display_utils.js -var display_utils = __webpack_require__(419); -;// CONCATENATED MODULE: ./src/display/editor/alt_text.js - -class AltText { - #altText = ""; - #altTextDecorative = false; - #altTextButton = null; - #altTextTooltip = null; - #altTextTooltipTimeout = null; - #altTextWasFromKeyBoard = false; - #editor = null; - static _l10nPromise = null; - constructor(editor) { - this.#editor = editor; - } - static initialize(l10nPromise) { - AltText._l10nPromise ||= l10nPromise; - } - async render() { - const altText = this.#altTextButton = document.createElement("button"); - altText.className = "altText"; - const msg = await AltText._l10nPromise.get("pdfjs-editor-alt-text-button-label"); - altText.textContent = msg; - altText.setAttribute("aria-label", msg); - altText.tabIndex = "0"; - altText.addEventListener("contextmenu", display_utils.noContextMenu); - altText.addEventListener("pointerdown", event => event.stopPropagation()); - const onClick = event => { - event.preventDefault(); - this.#editor._uiManager.editAltText(this.#editor); - }; - altText.addEventListener("click", onClick, { - capture: true - }); - altText.addEventListener("keydown", event => { - if (event.target === altText && event.key === "Enter") { - this.#altTextWasFromKeyBoard = true; - onClick(event); - } - }); - await this.#setState(); - return altText; - } - finish() { - if (!this.#altTextButton) { - return; - } - this.#altTextButton.focus({ - focusVisible: this.#altTextWasFromKeyBoard - }); - this.#altTextWasFromKeyBoard = false; - } - isEmpty() { - return !this.#altText && !this.#altTextDecorative; - } - get data() { - return { - altText: this.#altText, - decorative: this.#altTextDecorative - }; - } - set data({ - altText, - decorative - }) { - if (this.#altText === altText && this.#altTextDecorative === decorative) { - return; - } - this.#altText = altText; - this.#altTextDecorative = decorative; - this.#setState(); - } - toggle(enabled = false) { - if (!this.#altTextButton) { - return; - } - if (!enabled && this.#altTextTooltipTimeout) { - clearTimeout(this.#altTextTooltipTimeout); - this.#altTextTooltipTimeout = null; - } - this.#altTextButton.disabled = !enabled; - } - destroy() { - this.#altTextButton?.remove(); - this.#altTextButton = null; - this.#altTextTooltip = null; - } - async #setState() { - const button = this.#altTextButton; - if (!button) { - return; - } - if (!this.#altText && !this.#altTextDecorative) { - button.classList.remove("done"); - this.#altTextTooltip?.remove(); - return; - } - button.classList.add("done"); - AltText._l10nPromise.get("pdfjs-editor-alt-text-edit-button-label").then(msg => { - button.setAttribute("aria-label", msg); - }); - let tooltip = this.#altTextTooltip; - if (!tooltip) { - this.#altTextTooltip = tooltip = document.createElement("span"); - tooltip.className = "tooltip"; - tooltip.setAttribute("role", "tooltip"); - const id = tooltip.id = `alt-text-tooltip-${this.#editor.id}`; - button.setAttribute("aria-describedby", id); - const DELAY_TO_SHOW_TOOLTIP = 100; - button.addEventListener("mouseenter", () => { - this.#altTextTooltipTimeout = setTimeout(() => { - this.#altTextTooltipTimeout = null; - this.#altTextTooltip.classList.add("show"); - this.#editor._reportTelemetry({ - action: "alt_text_tooltip" - }); - }, DELAY_TO_SHOW_TOOLTIP); - }); - button.addEventListener("mouseleave", () => { - if (this.#altTextTooltipTimeout) { - clearTimeout(this.#altTextTooltipTimeout); - this.#altTextTooltipTimeout = null; - } - this.#altTextTooltip?.classList.remove("show"); - }); - } - tooltip.innerText = this.#altTextDecorative ? await AltText._l10nPromise.get("pdfjs-editor-alt-text-decorative-tooltip") : this.#altText; - if (!tooltip.parentNode) { - button.append(tooltip); - } - const element = this.#editor.getImageForAltText(); - element?.setAttribute("aria-describedby", tooltip.id); - } -} - -// EXTERNAL MODULE: ./src/display/editor/toolbar.js -var toolbar = __webpack_require__(362); -;// CONCATENATED MODULE: ./src/display/editor/editor.js - - - - - -class AnnotationEditor { - #allResizerDivs = null; - #altText = null; - #disabled = false; - #keepAspectRatio = false; - #resizersDiv = null; - #savedDimensions = null; - #boundFocusin = this.focusin.bind(this); - #boundFocusout = this.focusout.bind(this); - #editToolbar = null; - #focusedResizerName = ""; - #hasBeenClicked = false; - #initialPosition = null; - #isEditing = false; - #isInEditMode = false; - #isResizerEnabledForKeyboard = false; - #moveInDOMTimeout = null; - #prevDragX = 0; - #prevDragY = 0; - #telemetryTimeouts = null; - _initialOptions = Object.create(null); - _isVisible = true; - _uiManager = null; - _focusEventsAllowed = true; - _l10nPromise = null; - #isDraggable = false; - #zIndex = AnnotationEditor._zIndex++; - static _borderLineWidth = -1; - static _colorManager = new tools.ColorManager(); - static _zIndex = 1; - static _telemetryTimeout = 1000; - static get _resizerKeyboardManager() { - const resize = AnnotationEditor.prototype._resizeWithKeyboard; - const small = tools.AnnotationEditorUIManager.TRANSLATE_SMALL; - const big = tools.AnnotationEditorUIManager.TRANSLATE_BIG; - return (0,util.shadow)(this, "_resizerKeyboardManager", new tools.KeyboardManager([[["ArrowLeft", "mac+ArrowLeft"], resize, { - args: [-small, 0] - }], [["ctrl+ArrowLeft", "mac+shift+ArrowLeft"], resize, { - args: [-big, 0] - }], [["ArrowRight", "mac+ArrowRight"], resize, { - args: [small, 0] - }], [["ctrl+ArrowRight", "mac+shift+ArrowRight"], resize, { - args: [big, 0] - }], [["ArrowUp", "mac+ArrowUp"], resize, { - args: [0, -small] - }], [["ctrl+ArrowUp", "mac+shift+ArrowUp"], resize, { - args: [0, -big] - }], [["ArrowDown", "mac+ArrowDown"], resize, { - args: [0, small] - }], [["ctrl+ArrowDown", "mac+shift+ArrowDown"], resize, { - args: [0, big] - }], [["Escape", "mac+Escape"], AnnotationEditor.prototype._stopResizingWithKeyboard]])); - } - constructor(parameters) { - if (this.constructor === AnnotationEditor) { - (0,util.unreachable)("Cannot initialize AnnotationEditor."); - } - this.parent = parameters.parent; - this.id = parameters.id; - this.width = this.height = null; - this.pageIndex = parameters.parent.pageIndex; - this.name = parameters.name; - this.div = null; - this._uiManager = parameters.uiManager; - this.annotationElementId = null; - this._willKeepAspectRatio = false; - this._initialOptions.isCentered = parameters.isCentered; - this._structTreeParentId = null; - const { - rotation, - rawDims: { - pageWidth, - pageHeight, - pageX, - pageY - } - } = this.parent.viewport; - this.rotation = rotation; - this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360; - this.pageDimensions = [pageWidth, pageHeight]; - this.pageTranslation = [pageX, pageY]; - const [width, height] = this.parentDimensions; - this.x = parameters.x / width; - this.y = parameters.y / height; - this.isAttachedToDOM = false; - this.deleted = false; - } - get editorType() { - return Object.getPrototypeOf(this).constructor._type; - } - static get _defaultLineColor() { - return (0,util.shadow)(this, "_defaultLineColor", this._colorManager.getHexCode("CanvasText")); - } - static deleteAnnotationElement(editor) { - const fakeEditor = new FakeEditor({ - id: editor.parent.getNextId(), - parent: editor.parent, - uiManager: editor._uiManager - }); - fakeEditor.annotationElementId = editor.annotationElementId; - fakeEditor.deleted = true; - fakeEditor._uiManager.addToAnnotationStorage(fakeEditor); - } - static initialize(l10n, _uiManager, options) { - AnnotationEditor._l10nPromise ||= new Map(["pdfjs-editor-alt-text-button-label", "pdfjs-editor-alt-text-edit-button-label", "pdfjs-editor-alt-text-decorative-tooltip", "pdfjs-editor-resizer-label-topLeft", "pdfjs-editor-resizer-label-topMiddle", "pdfjs-editor-resizer-label-topRight", "pdfjs-editor-resizer-label-middleRight", "pdfjs-editor-resizer-label-bottomRight", "pdfjs-editor-resizer-label-bottomMiddle", "pdfjs-editor-resizer-label-bottomLeft", "pdfjs-editor-resizer-label-middleLeft"].map(str => [str, l10n.get(str.replaceAll(/([A-Z])/g, c => `-${c.toLowerCase()}`))])); - if (options?.strings) { - for (const str of options.strings) { - AnnotationEditor._l10nPromise.set(str, l10n.get(str)); - } - } - if (AnnotationEditor._borderLineWidth !== -1) { - return; - } - const style = getComputedStyle(document.documentElement); - AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue("--outline-width")) || 0; - } - static updateDefaultParams(_type, _value) {} - static get defaultPropertiesToUpdate() { - return []; - } - static isHandlingMimeForPasting(mime) { - return false; - } - static paste(item, parent) { - (0,util.unreachable)("Not implemented"); - } - get propertiesToUpdate() { - return []; - } - get _isDraggable() { - return this.#isDraggable; - } - set _isDraggable(value) { - this.#isDraggable = value; - this.div?.classList.toggle("draggable", value); - } - get isEnterHandled() { - return true; - } - center() { - const [pageWidth, pageHeight] = this.pageDimensions; - switch (this.parentRotation) { - case 90: - this.x -= this.height * pageHeight / (pageWidth * 2); - this.y += this.width * pageWidth / (pageHeight * 2); - break; - case 180: - this.x += this.width / 2; - this.y += this.height / 2; - break; - case 270: - this.x += this.height * pageHeight / (pageWidth * 2); - this.y -= this.width * pageWidth / (pageHeight * 2); - break; - default: - this.x -= this.width / 2; - this.y -= this.height / 2; - break; - } - this.fixAndSetPosition(); - } - addCommands(params) { - this._uiManager.addCommands(params); - } - get currentLayer() { - return this._uiManager.currentLayer; - } - setInBackground() { - this.div.style.zIndex = 0; - } - setInForeground() { - this.div.style.zIndex = this.#zIndex; - } - setParent(parent) { - if (parent !== null) { - this.pageIndex = parent.pageIndex; - this.pageDimensions = parent.pageDimensions; - } else { - this.#stopResizing(); - } - this.parent = parent; - } - focusin(event) { - if (!this._focusEventsAllowed) { - return; - } - if (!this.#hasBeenClicked) { - this.parent.setSelected(this); - } else { - this.#hasBeenClicked = false; - } - } - focusout(event) { - if (!this._focusEventsAllowed) { - return; - } - if (!this.isAttachedToDOM) { - return; - } - const target = event.relatedTarget; - if (target?.closest(`#${this.id}`)) { - return; - } - event.preventDefault(); - if (!this.parent?.isMultipleSelection) { - this.commitOrRemove(); - } - } - commitOrRemove() { - if (this.isEmpty()) { - this.remove(); - } else { - this.commit(); - } - } - commit() { - this.addToAnnotationStorage(); - } - addToAnnotationStorage() { - this._uiManager.addToAnnotationStorage(this); - } - setAt(x, y, tx, ty) { - const [width, height] = this.parentDimensions; - [tx, ty] = this.screenToPageTranslation(tx, ty); - this.x = (x + tx) / width; - this.y = (y + ty) / height; - this.fixAndSetPosition(); - } - #translate([width, height], x, y) { - [x, y] = this.screenToPageTranslation(x, y); - this.x += x / width; - this.y += y / height; - this.fixAndSetPosition(); - } - translate(x, y) { - this.#translate(this.parentDimensions, x, y); - } - translateInPage(x, y) { - this.#initialPosition ||= [this.x, this.y]; - this.#translate(this.pageDimensions, x, y); - this.div.scrollIntoView({ - block: "nearest" - }); - } - drag(tx, ty) { - this.#initialPosition ||= [this.x, this.y]; - const [parentWidth, parentHeight] = this.parentDimensions; - this.x += tx / parentWidth; - this.y += ty / parentHeight; - if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) { - const { - x, - y - } = this.div.getBoundingClientRect(); - if (this.parent.findNewParent(this, x, y)) { - this.x -= Math.floor(this.x); - this.y -= Math.floor(this.y); - } - } - let { - x, - y - } = this; - const [bx, by] = this.getBaseTranslation(); - x += bx; - y += by; - this.div.style.left = `${(100 * x).toFixed(2)}%`; - this.div.style.top = `${(100 * y).toFixed(2)}%`; - this.div.scrollIntoView({ - block: "nearest" - }); - } - get _hasBeenMoved() { - return !!this.#initialPosition && (this.#initialPosition[0] !== this.x || this.#initialPosition[1] !== this.y); - } - getBaseTranslation() { - const [parentWidth, parentHeight] = this.parentDimensions; - const { - _borderLineWidth - } = AnnotationEditor; - const x = _borderLineWidth / parentWidth; - const y = _borderLineWidth / parentHeight; - switch (this.rotation) { - case 90: - return [-x, y]; - case 180: - return [x, y]; - case 270: - return [x, -y]; - default: - return [-x, -y]; - } - } - get _mustFixPosition() { - return true; - } - fixAndSetPosition(rotation = this.rotation) { - const [pageWidth, pageHeight] = this.pageDimensions; - let { - x, - y, - width, - height - } = this; - width *= pageWidth; - height *= pageHeight; - x *= pageWidth; - y *= pageHeight; - if (this._mustFixPosition) { - switch (rotation) { - case 0: - x = Math.max(0, Math.min(pageWidth - width, x)); - y = Math.max(0, Math.min(pageHeight - height, y)); - break; - case 90: - x = Math.max(0, Math.min(pageWidth - height, x)); - y = Math.min(pageHeight, Math.max(width, y)); - break; - case 180: - x = Math.min(pageWidth, Math.max(width, x)); - y = Math.min(pageHeight, Math.max(height, y)); - break; - case 270: - x = Math.min(pageWidth, Math.max(height, x)); - y = Math.max(0, Math.min(pageHeight - width, y)); - break; - } - } - this.x = x /= pageWidth; - this.y = y /= pageHeight; - const [bx, by] = this.getBaseTranslation(); - x += bx; - y += by; - const { - style - } = this.div; - style.left = `${(100 * x).toFixed(2)}%`; - style.top = `${(100 * y).toFixed(2)}%`; - this.moveInDOM(); - } - static #rotatePoint(x, y, angle) { - switch (angle) { - case 90: - return [y, -x]; - case 180: - return [-x, -y]; - case 270: - return [-y, x]; - default: - return [x, y]; - } - } - screenToPageTranslation(x, y) { - return AnnotationEditor.#rotatePoint(x, y, this.parentRotation); - } - pageTranslationToScreen(x, y) { - return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation); - } - #getRotationMatrix(rotation) { - switch (rotation) { - case 90: - { - const [pageWidth, pageHeight] = this.pageDimensions; - return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0]; - } - case 180: - return [-1, 0, 0, -1]; - case 270: - { - const [pageWidth, pageHeight] = this.pageDimensions; - return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0]; - } - default: - return [1, 0, 0, 1]; - } - } - get parentScale() { - return this._uiManager.viewParameters.realScale; - } - get parentRotation() { - return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360; - } - get parentDimensions() { - const { - parentScale, - pageDimensions: [pageWidth, pageHeight] - } = this; - const scaledWidth = pageWidth * parentScale; - const scaledHeight = pageHeight * parentScale; - return util.FeatureTest.isCSSRoundSupported ? [Math.round(scaledWidth), Math.round(scaledHeight)] : [scaledWidth, scaledHeight]; - } - setDims(width, height) { - const [parentWidth, parentHeight] = this.parentDimensions; - this.div.style.width = `${(100 * width / parentWidth).toFixed(2)}%`; - if (!this.#keepAspectRatio) { - this.div.style.height = `${(100 * height / parentHeight).toFixed(2)}%`; - } - } - fixDims() { - const { - style - } = this.div; - const { - height, - width - } = style; - const widthPercent = width.endsWith("%"); - const heightPercent = !this.#keepAspectRatio && height.endsWith("%"); - if (widthPercent && heightPercent) { - return; - } - const [parentWidth, parentHeight] = this.parentDimensions; - if (!widthPercent) { - style.width = `${(100 * parseFloat(width) / parentWidth).toFixed(2)}%`; - } - if (!this.#keepAspectRatio && !heightPercent) { - style.height = `${(100 * parseFloat(height) / parentHeight).toFixed(2)}%`; - } - } - getInitialTranslation() { - return [0, 0]; - } - #createResizers() { - if (this.#resizersDiv) { - return; - } - this.#resizersDiv = document.createElement("div"); - this.#resizersDiv.classList.add("resizers"); - const classes = this._willKeepAspectRatio ? ["topLeft", "topRight", "bottomRight", "bottomLeft"] : ["topLeft", "topMiddle", "topRight", "middleRight", "bottomRight", "bottomMiddle", "bottomLeft", "middleLeft"]; - for (const name of classes) { - const div = document.createElement("div"); - this.#resizersDiv.append(div); - div.classList.add("resizer", name); - div.setAttribute("data-resizer-name", name); - div.addEventListener("pointerdown", this.#resizerPointerdown.bind(this, name)); - div.addEventListener("contextmenu", display_utils.noContextMenu); - div.tabIndex = -1; - } - this.div.prepend(this.#resizersDiv); - } - #resizerPointerdown(name, event) { - event.preventDefault(); - const { - isMac - } = util.FeatureTest.platform; - if (event.button !== 0 || event.ctrlKey && isMac) { - return; - } - this.#altText?.toggle(false); - const boundResizerPointermove = this.#resizerPointermove.bind(this, name); - const savedDraggable = this._isDraggable; - this._isDraggable = false; - const pointerMoveOptions = { - passive: true, - capture: true - }; - this.parent.togglePointerEvents(false); - window.addEventListener("pointermove", boundResizerPointermove, pointerMoveOptions); - window.addEventListener("contextmenu", display_utils.noContextMenu); - const savedX = this.x; - const savedY = this.y; - const savedWidth = this.width; - const savedHeight = this.height; - const savedParentCursor = this.parent.div.style.cursor; - const savedCursor = this.div.style.cursor; - this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor; - const pointerUpCallback = () => { - this.parent.togglePointerEvents(true); - this.#altText?.toggle(true); - this._isDraggable = savedDraggable; - window.removeEventListener("pointerup", pointerUpCallback); - window.removeEventListener("blur", pointerUpCallback); - window.removeEventListener("pointermove", boundResizerPointermove, pointerMoveOptions); - window.removeEventListener("contextmenu", display_utils.noContextMenu); - this.parent.div.style.cursor = savedParentCursor; - this.div.style.cursor = savedCursor; - this.#addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight); - }; - window.addEventListener("pointerup", pointerUpCallback); - window.addEventListener("blur", pointerUpCallback); - } - #addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight) { - const newX = this.x; - const newY = this.y; - const newWidth = this.width; - const newHeight = this.height; - if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) { - return; - } - this.addCommands({ - cmd: () => { - this.width = newWidth; - this.height = newHeight; - this.x = newX; - this.y = newY; - const [parentWidth, parentHeight] = this.parentDimensions; - this.setDims(parentWidth * newWidth, parentHeight * newHeight); - this.fixAndSetPosition(); - }, - undo: () => { - this.width = savedWidth; - this.height = savedHeight; - this.x = savedX; - this.y = savedY; - const [parentWidth, parentHeight] = this.parentDimensions; - this.setDims(parentWidth * savedWidth, parentHeight * savedHeight); - this.fixAndSetPosition(); - }, - mustExec: true - }); - } - #resizerPointermove(name, event) { - const [parentWidth, parentHeight] = this.parentDimensions; - const savedX = this.x; - const savedY = this.y; - const savedWidth = this.width; - const savedHeight = this.height; - const minWidth = AnnotationEditor.MIN_SIZE / parentWidth; - const minHeight = AnnotationEditor.MIN_SIZE / parentHeight; - const round = x => Math.round(x * 10000) / 10000; - const rotationMatrix = this.#getRotationMatrix(this.rotation); - const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y]; - const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation); - const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y]; - let getPoint; - let getOpposite; - let isDiagonal = false; - let isHorizontal = false; - switch (name) { - case "topLeft": - isDiagonal = true; - getPoint = (w, h) => [0, 0]; - getOpposite = (w, h) => [w, h]; - break; - case "topMiddle": - getPoint = (w, h) => [w / 2, 0]; - getOpposite = (w, h) => [w / 2, h]; - break; - case "topRight": - isDiagonal = true; - getPoint = (w, h) => [w, 0]; - getOpposite = (w, h) => [0, h]; - break; - case "middleRight": - isHorizontal = true; - getPoint = (w, h) => [w, h / 2]; - getOpposite = (w, h) => [0, h / 2]; - break; - case "bottomRight": - isDiagonal = true; - getPoint = (w, h) => [w, h]; - getOpposite = (w, h) => [0, 0]; - break; - case "bottomMiddle": - getPoint = (w, h) => [w / 2, h]; - getOpposite = (w, h) => [w / 2, 0]; - break; - case "bottomLeft": - isDiagonal = true; - getPoint = (w, h) => [0, h]; - getOpposite = (w, h) => [w, 0]; - break; - case "middleLeft": - isHorizontal = true; - getPoint = (w, h) => [0, h / 2]; - getOpposite = (w, h) => [w, h / 2]; - break; - } - const point = getPoint(savedWidth, savedHeight); - const oppositePoint = getOpposite(savedWidth, savedHeight); - let transfOppositePoint = transf(...oppositePoint); - const oppositeX = round(savedX + transfOppositePoint[0]); - const oppositeY = round(savedY + transfOppositePoint[1]); - let ratioX = 1; - let ratioY = 1; - let [deltaX, deltaY] = this.screenToPageTranslation(event.movementX, event.movementY); - [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight); - if (isDiagonal) { - const oldDiag = Math.hypot(savedWidth, savedHeight); - ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight); - } else if (isHorizontal) { - ratioX = Math.max(minWidth, Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))) / savedWidth; - } else { - ratioY = Math.max(minHeight, Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))) / savedHeight; - } - const newWidth = round(savedWidth * ratioX); - const newHeight = round(savedHeight * ratioY); - transfOppositePoint = transf(...getOpposite(newWidth, newHeight)); - const newX = oppositeX - transfOppositePoint[0]; - const newY = oppositeY - transfOppositePoint[1]; - this.width = newWidth; - this.height = newHeight; - this.x = newX; - this.y = newY; - this.setDims(parentWidth * newWidth, parentHeight * newHeight); - this.fixAndSetPosition(); - } - altTextFinish() { - this.#altText?.finish(); - } - async addEditToolbar() { - if (this.#editToolbar || this.#isInEditMode) { - return this.#editToolbar; - } - this.#editToolbar = new toolbar.EditorToolbar(this); - this.div.append(this.#editToolbar.render()); - if (this.#altText) { - this.#editToolbar.addAltTextButton(await this.#altText.render()); - } - return this.#editToolbar; - } - removeEditToolbar() { - if (!this.#editToolbar) { - return; - } - this.#editToolbar.remove(); - this.#editToolbar = null; - this.#altText?.destroy(); - } - getClientDimensions() { - return this.div.getBoundingClientRect(); - } - async addAltTextButton() { - if (this.#altText) { - return; - } - AltText.initialize(AnnotationEditor._l10nPromise); - this.#altText = new AltText(this); - await this.addEditToolbar(); - } - get altTextData() { - return this.#altText?.data; - } - set altTextData(data) { - if (!this.#altText) { - return; - } - this.#altText.data = data; - } - hasAltText() { - return !this.#altText?.isEmpty(); - } - render() { - this.div = document.createElement("div"); - this.div.setAttribute("data-editor-rotation", (360 - this.rotation) % 360); - this.div.className = this.name; - this.div.setAttribute("id", this.id); - this.div.tabIndex = this.#disabled ? -1 : 0; - if (!this._isVisible) { - this.div.classList.add("hidden"); - } - this.setInForeground(); - this.div.addEventListener("focusin", this.#boundFocusin); - this.div.addEventListener("focusout", this.#boundFocusout); - const [parentWidth, parentHeight] = this.parentDimensions; - if (this.parentRotation % 180 !== 0) { - this.div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`; - this.div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`; - } - const [tx, ty] = this.getInitialTranslation(); - this.translate(tx, ty); - (0,tools.bindEvents)(this, this.div, ["pointerdown"]); - return this.div; - } - pointerdown(event) { - const { - isMac - } = util.FeatureTest.platform; - if (event.button !== 0 || event.ctrlKey && isMac) { - event.preventDefault(); - return; - } - this.#hasBeenClicked = true; - if (this._isDraggable) { - this.#setUpDragSession(event); - return; - } - this.#selectOnPointerEvent(event); - } - #selectOnPointerEvent(event) { - const { - isMac - } = util.FeatureTest.platform; - if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) { - this.parent.toggleSelected(this); - } else { - this.parent.setSelected(this); - } - } - #setUpDragSession(event) { - const isSelected = this._uiManager.isSelected(this); - this._uiManager.setUpDragSession(); - let pointerMoveOptions, pointerMoveCallback; - if (isSelected) { - this.div.classList.add("moving"); - pointerMoveOptions = { - passive: true, - capture: true - }; - this.#prevDragX = event.clientX; - this.#prevDragY = event.clientY; - pointerMoveCallback = e => { - const { - clientX: x, - clientY: y - } = e; - const [tx, ty] = this.screenToPageTranslation(x - this.#prevDragX, y - this.#prevDragY); - this.#prevDragX = x; - this.#prevDragY = y; - this._uiManager.dragSelectedEditors(tx, ty); - }; - window.addEventListener("pointermove", pointerMoveCallback, pointerMoveOptions); - } - const pointerUpCallback = () => { - window.removeEventListener("pointerup", pointerUpCallback); - window.removeEventListener("blur", pointerUpCallback); - if (isSelected) { - this.div.classList.remove("moving"); - window.removeEventListener("pointermove", pointerMoveCallback, pointerMoveOptions); - } - this.#hasBeenClicked = false; - if (!this._uiManager.endDragSession()) { - this.#selectOnPointerEvent(event); - } - }; - window.addEventListener("pointerup", pointerUpCallback); - window.addEventListener("blur", pointerUpCallback); - } - moveInDOM() { - if (this.#moveInDOMTimeout) { - clearTimeout(this.#moveInDOMTimeout); - } - this.#moveInDOMTimeout = setTimeout(() => { - this.#moveInDOMTimeout = null; - this.parent?.moveEditorInDOM(this); - }, 0); - } - _setParentAndPosition(parent, x, y) { - parent.changeParent(this); - this.x = x; - this.y = y; - this.fixAndSetPosition(); - } - getRect(tx, ty, rotation = this.rotation) { - const scale = this.parentScale; - const [pageWidth, pageHeight] = this.pageDimensions; - const [pageX, pageY] = this.pageTranslation; - const shiftX = tx / scale; - const shiftY = ty / scale; - const x = this.x * pageWidth; - const y = this.y * pageHeight; - const width = this.width * pageWidth; - const height = this.height * pageHeight; - switch (rotation) { - case 0: - return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY]; - case 90: - return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY]; - case 180: - return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY]; - case 270: - return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY]; - default: - throw new Error("Invalid rotation"); - } - } - getRectInCurrentCoords(rect, pageHeight) { - const [x1, y1, x2, y2] = rect; - const width = x2 - x1; - const height = y2 - y1; - switch (this.rotation) { - case 0: - return [x1, pageHeight - y2, width, height]; - case 90: - return [x1, pageHeight - y1, height, width]; - case 180: - return [x2, pageHeight - y1, width, height]; - case 270: - return [x2, pageHeight - y2, height, width]; - default: - throw new Error("Invalid rotation"); - } - } - onceAdded() {} - isEmpty() { - return false; - } - enableEditMode() { - this.#isInEditMode = true; - } - disableEditMode() { - this.#isInEditMode = false; - } - isInEditMode() { - return this.#isInEditMode; - } - shouldGetKeyboardEvents() { - return this.#isResizerEnabledForKeyboard; - } - needsToBeRebuilt() { - return this.div && !this.isAttachedToDOM; - } - rebuild() { - this.div?.addEventListener("focusin", this.#boundFocusin); - this.div?.addEventListener("focusout", this.#boundFocusout); - } - rotate(_angle) {} - serialize(isForCopying = false, context = null) { - (0,util.unreachable)("An editor must be serializable"); - } - static deserialize(data, parent, uiManager) { - const editor = new this.prototype.constructor({ - parent, - id: parent.getNextId(), - uiManager - }); - editor.rotation = data.rotation; - const [pageWidth, pageHeight] = editor.pageDimensions; - const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight); - editor.x = x / pageWidth; - editor.y = y / pageHeight; - editor.width = width / pageWidth; - editor.height = height / pageHeight; - return editor; - } - get hasBeenModified() { - return !!this.annotationElementId && (this.deleted || this.serialize() !== null); - } - remove() { - this.div.removeEventListener("focusin", this.#boundFocusin); - this.div.removeEventListener("focusout", this.#boundFocusout); - if (!this.isEmpty()) { - this.commit(); - } - if (this.parent) { - this.parent.remove(this); - } else { - this._uiManager.removeEditor(this); - } - if (this.#moveInDOMTimeout) { - clearTimeout(this.#moveInDOMTimeout); - this.#moveInDOMTimeout = null; - } - this.#stopResizing(); - this.removeEditToolbar(); - if (this.#telemetryTimeouts) { - for (const timeout of this.#telemetryTimeouts.values()) { - clearTimeout(timeout); - } - this.#telemetryTimeouts = null; - } - this.parent = null; - } - get isResizable() { - return false; - } - makeResizable() { - if (this.isResizable) { - this.#createResizers(); - this.#resizersDiv.classList.remove("hidden"); - (0,tools.bindEvents)(this, this.div, ["keydown"]); - } - } - get toolbarPosition() { - return null; - } - keydown(event) { - if (!this.isResizable || event.target !== this.div || event.key !== "Enter") { - return; - } - this._uiManager.setSelected(this); - this.#savedDimensions = { - savedX: this.x, - savedY: this.y, - savedWidth: this.width, - savedHeight: this.height - }; - const children = this.#resizersDiv.children; - if (!this.#allResizerDivs) { - this.#allResizerDivs = Array.from(children); - const boundResizerKeydown = this.#resizerKeydown.bind(this); - const boundResizerBlur = this.#resizerBlur.bind(this); - for (const div of this.#allResizerDivs) { - const name = div.getAttribute("data-resizer-name"); - div.setAttribute("role", "spinbutton"); - div.addEventListener("keydown", boundResizerKeydown); - div.addEventListener("blur", boundResizerBlur); - div.addEventListener("focus", this.#resizerFocus.bind(this, name)); - AnnotationEditor._l10nPromise.get(`pdfjs-editor-resizer-label-${name}`).then(msg => div.setAttribute("aria-label", msg)); - } - } - const first = this.#allResizerDivs[0]; - let firstPosition = 0; - for (const div of children) { - if (div === first) { - break; - } - firstPosition++; - } - const nextFirstPosition = (360 - this.rotation + this.parentRotation) % 360 / 90 * (this.#allResizerDivs.length / 4); - if (nextFirstPosition !== firstPosition) { - if (nextFirstPosition < firstPosition) { - for (let i = 0; i < firstPosition - nextFirstPosition; i++) { - this.#resizersDiv.append(this.#resizersDiv.firstChild); - } - } else if (nextFirstPosition > firstPosition) { - for (let i = 0; i < nextFirstPosition - firstPosition; i++) { - this.#resizersDiv.firstChild.before(this.#resizersDiv.lastChild); - } - } - let i = 0; - for (const child of children) { - const div = this.#allResizerDivs[i++]; - const name = div.getAttribute("data-resizer-name"); - AnnotationEditor._l10nPromise.get(`pdfjs-editor-resizer-label-${name}`).then(msg => child.setAttribute("aria-label", msg)); - } - } - this.#setResizerTabIndex(0); - this.#isResizerEnabledForKeyboard = true; - this.#resizersDiv.firstChild.focus({ - focusVisible: true - }); - event.preventDefault(); - event.stopImmediatePropagation(); - } - #resizerKeydown(event) { - AnnotationEditor._resizerKeyboardManager.exec(this, event); - } - #resizerBlur(event) { - if (this.#isResizerEnabledForKeyboard && event.relatedTarget?.parentNode !== this.#resizersDiv) { - this.#stopResizing(); - } - } - #resizerFocus(name) { - this.#focusedResizerName = this.#isResizerEnabledForKeyboard ? name : ""; - } - #setResizerTabIndex(value) { - if (!this.#allResizerDivs) { - return; - } - for (const div of this.#allResizerDivs) { - div.tabIndex = value; - } - } - _resizeWithKeyboard(x, y) { - if (!this.#isResizerEnabledForKeyboard) { - return; - } - this.#resizerPointermove(this.#focusedResizerName, { - movementX: x, - movementY: y - }); - } - #stopResizing() { - this.#isResizerEnabledForKeyboard = false; - this.#setResizerTabIndex(-1); - if (this.#savedDimensions) { - const { - savedX, - savedY, - savedWidth, - savedHeight - } = this.#savedDimensions; - this.#addResizeToUndoStack(savedX, savedY, savedWidth, savedHeight); - this.#savedDimensions = null; - } - } - _stopResizingWithKeyboard() { - this.#stopResizing(); - this.div.focus(); - } - select() { - this.makeResizable(); - this.div?.classList.add("selectedEditor"); - if (!this.#editToolbar) { - this.addEditToolbar().then(() => { - if (this.div?.classList.contains("selectedEditor")) { - this.#editToolbar?.show(); - } - }); - return; - } - this.#editToolbar?.show(); - } - unselect() { - this.#resizersDiv?.classList.add("hidden"); - this.div?.classList.remove("selectedEditor"); - if (this.div?.contains(document.activeElement)) { - this._uiManager.currentLayer.div.focus({ - preventScroll: true - }); - } - this.#editToolbar?.hide(); - } - updateParams(type, value) {} - disableEditing() {} - enableEditing() {} - enterInEditMode() {} - getImageForAltText() { - return null; - } - get contentDiv() { - return this.div; - } - get isEditing() { - return this.#isEditing; - } - set isEditing(value) { - this.#isEditing = value; - if (!this.parent) { - return; - } - if (value) { - this.parent.setSelected(this); - this.parent.setActiveEditor(this); - } else { - this.parent.setActiveEditor(null); - } - } - setAspectRatio(width, height) { - this.#keepAspectRatio = true; - const aspectRatio = width / height; - const { - style - } = this.div; - style.aspectRatio = aspectRatio; - style.height = "auto"; - } - static get MIN_SIZE() { - return 16; - } - static canCreateNewEmptyEditor() { - return true; - } - get telemetryInitialData() { - return { - action: "added" - }; - } - get telemetryFinalData() { - return null; - } - _reportTelemetry(data, mustWait = false) { - if (mustWait) { - this.#telemetryTimeouts ||= new Map(); - const { - action - } = data; - let timeout = this.#telemetryTimeouts.get(action); - if (timeout) { - clearTimeout(timeout); - } - timeout = setTimeout(() => { - this._reportTelemetry(data); - this.#telemetryTimeouts.delete(action); - if (this.#telemetryTimeouts.size === 0) { - this.#telemetryTimeouts = null; - } - }, AnnotationEditor._telemetryTimeout); - this.#telemetryTimeouts.set(action, timeout); - return; - } - data.type ||= this.editorType; - this._uiManager._eventBus.dispatch("reporttelemetry", { - source: this, - details: { - type: "editing", - data - } - }); - } - show(visible = this._isVisible) { - this.div.classList.toggle("hidden", !visible); - this._isVisible = visible; - } - enable() { - if (this.div) { - this.div.tabIndex = 0; - } - this.#disabled = false; - } - disable() { - if (this.div) { - this.div.tabIndex = -1; - } - this.#disabled = true; - } - renderAnnotationElement(annotation) { - let content = annotation.container.querySelector(".annotationContent"); - if (!content) { - content = document.createElement("div"); - content.classList.add("annotationContent", this.editorType); - annotation.container.prepend(content); - } else if (content.nodeName === "CANVAS") { - const canvas = content; - content = document.createElement("div"); - content.classList.add("annotationContent", this.editorType); - canvas.before(content); - } - return content; - } - resetAnnotationElement(annotation) { - const { - firstChild - } = annotation.container; - if (firstChild.nodeName === "DIV" && firstChild.classList.contains("annotationContent")) { - firstChild.remove(); - } - } -} -class FakeEditor extends AnnotationEditor { - constructor(params) { - super(params); - this.annotationElementId = params.annotationElementId; - this.deleted = true; - } - serialize() { - return { - id: this.annotationElementId, - deleted: true, - pageIndex: this.pageIndex - }; - } -} - - -/***/ }), - -/***/ 61: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ FreeOutliner: () => (/* binding */ FreeOutliner), -/* harmony export */ Outliner: () => (/* binding */ Outliner) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); - -class Outliner { - #box; - #verticalEdges = []; - #intervals = []; - constructor(boxes, borderWidth = 0, innerMargin = 0, isLTR = true) { - let minX = Infinity; - let maxX = -Infinity; - let minY = Infinity; - let maxY = -Infinity; - const NUMBER_OF_DIGITS = 4; - const EPSILON = 10 ** -NUMBER_OF_DIGITS; - for (const { - x, - y, - width, - height - } of boxes) { - const x1 = Math.floor((x - borderWidth) / EPSILON) * EPSILON; - const x2 = Math.ceil((x + width + borderWidth) / EPSILON) * EPSILON; - const y1 = Math.floor((y - borderWidth) / EPSILON) * EPSILON; - const y2 = Math.ceil((y + height + borderWidth) / EPSILON) * EPSILON; - const left = [x1, y1, y2, true]; - const right = [x2, y1, y2, false]; - this.#verticalEdges.push(left, right); - minX = Math.min(minX, x1); - maxX = Math.max(maxX, x2); - minY = Math.min(minY, y1); - maxY = Math.max(maxY, y2); - } - const bboxWidth = maxX - minX + 2 * innerMargin; - const bboxHeight = maxY - minY + 2 * innerMargin; - const shiftedMinX = minX - innerMargin; - const shiftedMinY = minY - innerMargin; - const lastEdge = this.#verticalEdges.at(isLTR ? -1 : -2); - const lastPoint = [lastEdge[0], lastEdge[2]]; - for (const edge of this.#verticalEdges) { - const [x, y1, y2] = edge; - edge[0] = (x - shiftedMinX) / bboxWidth; - edge[1] = (y1 - shiftedMinY) / bboxHeight; - edge[2] = (y2 - shiftedMinY) / bboxHeight; - } - this.#box = { - x: shiftedMinX, - y: shiftedMinY, - width: bboxWidth, - height: bboxHeight, - lastPoint - }; - } - getOutlines() { - this.#verticalEdges.sort((a, b) => a[0] - b[0] || a[1] - b[1] || a[2] - b[2]); - const outlineVerticalEdges = []; - for (const edge of this.#verticalEdges) { - if (edge[3]) { - outlineVerticalEdges.push(...this.#breakEdge(edge)); - this.#insert(edge); - } else { - this.#remove(edge); - outlineVerticalEdges.push(...this.#breakEdge(edge)); - } - } - return this.#getOutlines(outlineVerticalEdges); - } - #getOutlines(outlineVerticalEdges) { - const edges = []; - const allEdges = new Set(); - for (const edge of outlineVerticalEdges) { - const [x, y1, y2] = edge; - edges.push([x, y1, edge], [x, y2, edge]); - } - edges.sort((a, b) => a[1] - b[1] || a[0] - b[0]); - for (let i = 0, ii = edges.length; i < ii; i += 2) { - const edge1 = edges[i][2]; - const edge2 = edges[i + 1][2]; - edge1.push(edge2); - edge2.push(edge1); - allEdges.add(edge1); - allEdges.add(edge2); - } - const outlines = []; - let outline; - while (allEdges.size > 0) { - const edge = allEdges.values().next().value; - let [x, y1, y2, edge1, edge2] = edge; - allEdges.delete(edge); - let lastPointX = x; - let lastPointY = y1; - outline = [x, y2]; - outlines.push(outline); - while (true) { - let e; - if (allEdges.has(edge1)) { - e = edge1; - } else if (allEdges.has(edge2)) { - e = edge2; - } else { - break; - } - allEdges.delete(e); - [x, y1, y2, edge1, edge2] = e; - if (lastPointX !== x) { - outline.push(lastPointX, lastPointY, x, lastPointY === y1 ? y1 : y2); - lastPointX = x; - } - lastPointY = lastPointY === y1 ? y2 : y1; - } - outline.push(lastPointX, lastPointY); - } - return new HighlightOutline(outlines, this.#box); - } - #binarySearch(y) { - const array = this.#intervals; - let start = 0; - let end = array.length - 1; - while (start <= end) { - const middle = start + end >> 1; - const y1 = array[middle][0]; - if (y1 === y) { - return middle; - } - if (y1 < y) { - start = middle + 1; - } else { - end = middle - 1; - } - } - return end + 1; - } - #insert([, y1, y2]) { - const index = this.#binarySearch(y1); - this.#intervals.splice(index, 0, [y1, y2]); - } - #remove([, y1, y2]) { - const index = this.#binarySearch(y1); - for (let i = index; i < this.#intervals.length; i++) { - const [start, end] = this.#intervals[i]; - if (start !== y1) { - break; - } - if (start === y1 && end === y2) { - this.#intervals.splice(i, 1); - return; - } - } - for (let i = index - 1; i >= 0; i--) { - const [start, end] = this.#intervals[i]; - if (start !== y1) { - break; - } - if (start === y1 && end === y2) { - this.#intervals.splice(i, 1); - return; - } - } - } - #breakEdge(edge) { - const [x, y1, y2] = edge; - const results = [[x, y1, y2]]; - const index = this.#binarySearch(y2); - for (let i = 0; i < index; i++) { - const [start, end] = this.#intervals[i]; - for (let j = 0, jj = results.length; j < jj; j++) { - const [, y3, y4] = results[j]; - if (end <= y3 || y4 <= start) { - continue; - } - if (y3 >= start) { - if (y4 > end) { - results[j][1] = end; - } else { - if (jj === 1) { - return []; - } - results.splice(j, 1); - j--; - jj--; - } - continue; - } - results[j][2] = start; - if (y4 > end) { - results.push([x, end, y4]); - } - } - } - return results; - } -} -class Outline { - toSVGPath() { - throw new Error("Abstract method `toSVGPath` must be implemented."); - } - get box() { - throw new Error("Abstract getter `box` must be implemented."); - } - serialize(_bbox, _rotation) { - throw new Error("Abstract method `serialize` must be implemented."); - } - get free() { - return this instanceof FreeHighlightOutline; - } -} -class HighlightOutline extends Outline { - #box; - #outlines; - constructor(outlines, box) { - super(); - this.#outlines = outlines; - this.#box = box; - } - toSVGPath() { - const buffer = []; - for (const polygon of this.#outlines) { - let [prevX, prevY] = polygon; - buffer.push(`M${prevX} ${prevY}`); - for (let i = 2; i < polygon.length; i += 2) { - const x = polygon[i]; - const y = polygon[i + 1]; - if (x === prevX) { - buffer.push(`V${y}`); - prevY = y; - } else if (y === prevY) { - buffer.push(`H${x}`); - prevX = x; - } - } - buffer.push("Z"); - } - return buffer.join(" "); - } - serialize([blX, blY, trX, trY], _rotation) { - const outlines = []; - const width = trX - blX; - const height = trY - blY; - for (const outline of this.#outlines) { - const points = new Array(outline.length); - for (let i = 0; i < outline.length; i += 2) { - points[i] = blX + outline[i] * width; - points[i + 1] = trY - outline[i + 1] * height; - } - outlines.push(points); - } - return outlines; - } - get box() { - return this.#box; - } -} -class FreeOutliner { - #box; - #bottom = []; - #innerMargin; - #isLTR; - #top = []; - #last = new Float64Array(18); - #lastX; - #lastY; - #min; - #min_dist; - #scaleFactor; - #thickness; - #points = []; - static #MIN_DIST = 8; - static #MIN_DIFF = 2; - static #MIN = FreeOutliner.#MIN_DIST + FreeOutliner.#MIN_DIFF; - constructor({ - x, - y - }, box, scaleFactor, thickness, isLTR, innerMargin = 0) { - this.#box = box; - this.#thickness = thickness * scaleFactor; - this.#isLTR = isLTR; - this.#last.set([NaN, NaN, NaN, NaN, x, y], 6); - this.#innerMargin = innerMargin; - this.#min_dist = FreeOutliner.#MIN_DIST * scaleFactor; - this.#min = FreeOutliner.#MIN * scaleFactor; - this.#scaleFactor = scaleFactor; - this.#points.push(x, y); - } - get free() { - return true; - } - isEmpty() { - return isNaN(this.#last[8]); - } - #getLastCoords() { - const lastTop = this.#last.subarray(4, 6); - const lastBottom = this.#last.subarray(16, 18); - const [x, y, width, height] = this.#box; - return [(this.#lastX + (lastTop[0] - lastBottom[0]) / 2 - x) / width, (this.#lastY + (lastTop[1] - lastBottom[1]) / 2 - y) / height, (this.#lastX + (lastBottom[0] - lastTop[0]) / 2 - x) / width, (this.#lastY + (lastBottom[1] - lastTop[1]) / 2 - y) / height]; - } - add({ - x, - y - }) { - this.#lastX = x; - this.#lastY = y; - const [layerX, layerY, layerWidth, layerHeight] = this.#box; - let [x1, y1, x2, y2] = this.#last.subarray(8, 12); - const diffX = x - x2; - const diffY = y - y2; - const d = Math.hypot(diffX, diffY); - if (d < this.#min) { - return false; - } - const diffD = d - this.#min_dist; - const K = diffD / d; - const shiftX = K * diffX; - const shiftY = K * diffY; - let x0 = x1; - let y0 = y1; - x1 = x2; - y1 = y2; - x2 += shiftX; - y2 += shiftY; - this.#points?.push(x, y); - const nX = -shiftY / diffD; - const nY = shiftX / diffD; - const thX = nX * this.#thickness; - const thY = nY * this.#thickness; - this.#last.set(this.#last.subarray(2, 8), 0); - this.#last.set([x2 + thX, y2 + thY], 4); - this.#last.set(this.#last.subarray(14, 18), 12); - this.#last.set([x2 - thX, y2 - thY], 16); - if (isNaN(this.#last[6])) { - if (this.#top.length === 0) { - this.#last.set([x1 + thX, y1 + thY], 2); - this.#top.push(NaN, NaN, NaN, NaN, (x1 + thX - layerX) / layerWidth, (y1 + thY - layerY) / layerHeight); - this.#last.set([x1 - thX, y1 - thY], 14); - this.#bottom.push(NaN, NaN, NaN, NaN, (x1 - thX - layerX) / layerWidth, (y1 - thY - layerY) / layerHeight); - } - this.#last.set([x0, y0, x1, y1, x2, y2], 6); - return !this.isEmpty(); - } - this.#last.set([x0, y0, x1, y1, x2, y2], 6); - const angle = Math.abs(Math.atan2(y0 - y1, x0 - x1) - Math.atan2(shiftY, shiftX)); - if (angle < Math.PI / 2) { - [x1, y1, x2, y2] = this.#last.subarray(2, 6); - this.#top.push(NaN, NaN, NaN, NaN, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight); - [x1, y1, x0, y0] = this.#last.subarray(14, 18); - this.#bottom.push(NaN, NaN, NaN, NaN, ((x0 + x1) / 2 - layerX) / layerWidth, ((y0 + y1) / 2 - layerY) / layerHeight); - return true; - } - [x0, y0, x1, y1, x2, y2] = this.#last.subarray(0, 6); - this.#top.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight); - [x2, y2, x1, y1, x0, y0] = this.#last.subarray(12, 18); - this.#bottom.push(((x0 + 5 * x1) / 6 - layerX) / layerWidth, ((y0 + 5 * y1) / 6 - layerY) / layerHeight, ((5 * x1 + x2) / 6 - layerX) / layerWidth, ((5 * y1 + y2) / 6 - layerY) / layerHeight, ((x1 + x2) / 2 - layerX) / layerWidth, ((y1 + y2) / 2 - layerY) / layerHeight); - return true; - } - toSVGPath() { - if (this.isEmpty()) { - return ""; - } - const top = this.#top; - const bottom = this.#bottom; - const lastTop = this.#last.subarray(4, 6); - const lastBottom = this.#last.subarray(16, 18); - const [x, y, width, height] = this.#box; - const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords(); - if (isNaN(this.#last[6]) && !this.isEmpty()) { - return `M${(this.#last[2] - x) / width} ${(this.#last[3] - y) / height} L${(this.#last[4] - x) / width} ${(this.#last[5] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(this.#last[16] - x) / width} ${(this.#last[17] - y) / height} L${(this.#last[14] - x) / width} ${(this.#last[15] - y) / height} Z`; - } - const buffer = []; - buffer.push(`M${top[4]} ${top[5]}`); - for (let i = 6; i < top.length; i += 6) { - if (isNaN(top[i])) { - buffer.push(`L${top[i + 4]} ${top[i + 5]}`); - } else { - buffer.push(`C${top[i]} ${top[i + 1]} ${top[i + 2]} ${top[i + 3]} ${top[i + 4]} ${top[i + 5]}`); - } - } - buffer.push(`L${(lastTop[0] - x) / width} ${(lastTop[1] - y) / height} L${lastTopX} ${lastTopY} L${lastBottomX} ${lastBottomY} L${(lastBottom[0] - x) / width} ${(lastBottom[1] - y) / height}`); - for (let i = bottom.length - 6; i >= 6; i -= 6) { - if (isNaN(bottom[i])) { - buffer.push(`L${bottom[i + 4]} ${bottom[i + 5]}`); - } else { - buffer.push(`C${bottom[i]} ${bottom[i + 1]} ${bottom[i + 2]} ${bottom[i + 3]} ${bottom[i + 4]} ${bottom[i + 5]}`); - } - } - buffer.push(`L${bottom[4]} ${bottom[5]} Z`); - return buffer.join(" "); - } - getOutlines() { - const top = this.#top; - const bottom = this.#bottom; - const last = this.#last; - const lastTop = last.subarray(4, 6); - const lastBottom = last.subarray(16, 18); - const [layerX, layerY, layerWidth, layerHeight] = this.#box; - const points = new Float64Array((this.#points?.length ?? 0) + 2); - for (let i = 0, ii = points.length - 2; i < ii; i += 2) { - points[i] = (this.#points[i] - layerX) / layerWidth; - points[i + 1] = (this.#points[i + 1] - layerY) / layerHeight; - } - points[points.length - 2] = (this.#lastX - layerX) / layerWidth; - points[points.length - 1] = (this.#lastY - layerY) / layerHeight; - const [lastTopX, lastTopY, lastBottomX, lastBottomY] = this.#getLastCoords(); - if (isNaN(last[6]) && !this.isEmpty()) { - const outline = new Float64Array(36); - outline.set([NaN, NaN, NaN, NaN, (last[2] - layerX) / layerWidth, (last[3] - layerY) / layerHeight, NaN, NaN, NaN, NaN, (last[4] - layerX) / layerWidth, (last[5] - layerY) / layerHeight, NaN, NaN, NaN, NaN, lastTopX, lastTopY, NaN, NaN, NaN, NaN, lastBottomX, lastBottomY, NaN, NaN, NaN, NaN, (last[16] - layerX) / layerWidth, (last[17] - layerY) / layerHeight, NaN, NaN, NaN, NaN, (last[14] - layerX) / layerWidth, (last[15] - layerY) / layerHeight], 0); - return new FreeHighlightOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR); - } - const outline = new Float64Array(this.#top.length + 24 + this.#bottom.length); - let N = top.length; - for (let i = 0; i < N; i += 2) { - if (isNaN(top[i])) { - outline[i] = outline[i + 1] = NaN; - continue; - } - outline[i] = top[i]; - outline[i + 1] = top[i + 1]; - } - outline.set([NaN, NaN, NaN, NaN, (lastTop[0] - layerX) / layerWidth, (lastTop[1] - layerY) / layerHeight, NaN, NaN, NaN, NaN, lastTopX, lastTopY, NaN, NaN, NaN, NaN, lastBottomX, lastBottomY, NaN, NaN, NaN, NaN, (lastBottom[0] - layerX) / layerWidth, (lastBottom[1] - layerY) / layerHeight], N); - N += 24; - for (let i = bottom.length - 6; i >= 6; i -= 6) { - for (let j = 0; j < 6; j += 2) { - if (isNaN(bottom[i + j])) { - outline[N] = outline[N + 1] = NaN; - N += 2; - continue; - } - outline[N] = bottom[i + j]; - outline[N + 1] = bottom[i + j + 1]; - N += 2; - } - } - outline.set([NaN, NaN, NaN, NaN, bottom[4], bottom[5]], N); - return new FreeHighlightOutline(outline, points, this.#box, this.#scaleFactor, this.#innerMargin, this.#isLTR); - } -} -class FreeHighlightOutline extends Outline { - #box; - #bbox = null; - #innerMargin; - #isLTR; - #points; - #scaleFactor; - #outline; - constructor(outline, points, box, scaleFactor, innerMargin, isLTR) { - super(); - this.#outline = outline; - this.#points = points; - this.#box = box; - this.#scaleFactor = scaleFactor; - this.#innerMargin = innerMargin; - this.#isLTR = isLTR; - this.#computeMinMax(isLTR); - const { - x, - y, - width, - height - } = this.#bbox; - for (let i = 0, ii = outline.length; i < ii; i += 2) { - outline[i] = (outline[i] - x) / width; - outline[i + 1] = (outline[i + 1] - y) / height; - } - for (let i = 0, ii = points.length; i < ii; i += 2) { - points[i] = (points[i] - x) / width; - points[i + 1] = (points[i + 1] - y) / height; - } - } - toSVGPath() { - const buffer = [`M${this.#outline[4]} ${this.#outline[5]}`]; - for (let i = 6, ii = this.#outline.length; i < ii; i += 6) { - if (isNaN(this.#outline[i])) { - buffer.push(`L${this.#outline[i + 4]} ${this.#outline[i + 5]}`); - continue; - } - buffer.push(`C${this.#outline[i]} ${this.#outline[i + 1]} ${this.#outline[i + 2]} ${this.#outline[i + 3]} ${this.#outline[i + 4]} ${this.#outline[i + 5]}`); - } - buffer.push("Z"); - return buffer.join(" "); - } - serialize([blX, blY, trX, trY], rotation) { - const width = trX - blX; - const height = trY - blY; - let outline; - let points; - switch (rotation) { - case 0: - outline = this.#rescale(this.#outline, blX, trY, width, -height); - points = this.#rescale(this.#points, blX, trY, width, -height); - break; - case 90: - outline = this.#rescaleAndSwap(this.#outline, blX, blY, width, height); - points = this.#rescaleAndSwap(this.#points, blX, blY, width, height); - break; - case 180: - outline = this.#rescale(this.#outline, trX, blY, -width, height); - points = this.#rescale(this.#points, trX, blY, -width, height); - break; - case 270: - outline = this.#rescaleAndSwap(this.#outline, trX, trY, -width, -height); - points = this.#rescaleAndSwap(this.#points, trX, trY, -width, -height); - break; - } - return { - outline: Array.from(outline), - points: [Array.from(points)] - }; - } - #rescale(src, tx, ty, sx, sy) { - const dest = new Float64Array(src.length); - for (let i = 0, ii = src.length; i < ii; i += 2) { - dest[i] = tx + src[i] * sx; - dest[i + 1] = ty + src[i + 1] * sy; - } - return dest; - } - #rescaleAndSwap(src, tx, ty, sx, sy) { - const dest = new Float64Array(src.length); - for (let i = 0, ii = src.length; i < ii; i += 2) { - dest[i] = tx + src[i + 1] * sx; - dest[i + 1] = ty + src[i] * sy; - } - return dest; - } - #computeMinMax(isLTR) { - const outline = this.#outline; - let lastX = outline[4]; - let lastY = outline[5]; - let minX = lastX; - let minY = lastY; - let maxX = lastX; - let maxY = lastY; - let lastPointX = lastX; - let lastPointY = lastY; - const ltrCallback = isLTR ? Math.max : Math.min; - for (let i = 6, ii = outline.length; i < ii; i += 6) { - if (isNaN(outline[i])) { - minX = Math.min(minX, outline[i + 4]); - minY = Math.min(minY, outline[i + 5]); - maxX = Math.max(maxX, outline[i + 4]); - maxY = Math.max(maxY, outline[i + 5]); - if (lastPointY < outline[i + 5]) { - lastPointX = outline[i + 4]; - lastPointY = outline[i + 5]; - } else if (lastPointY === outline[i + 5]) { - lastPointX = ltrCallback(lastPointX, outline[i + 4]); - } - } else { - const bbox = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.Util.bezierBoundingBox(lastX, lastY, ...outline.slice(i, i + 6)); - minX = Math.min(minX, bbox[0]); - minY = Math.min(minY, bbox[1]); - maxX = Math.max(maxX, bbox[2]); - maxY = Math.max(maxY, bbox[3]); - if (lastPointY < bbox[3]) { - lastPointX = bbox[2]; - lastPointY = bbox[3]; - } else if (lastPointY === bbox[3]) { - lastPointX = ltrCallback(lastPointX, bbox[2]); - } - } - lastX = outline[i + 4]; - lastY = outline[i + 5]; - } - const x = minX - this.#innerMargin, - y = minY - this.#innerMargin, - width = maxX - minX + 2 * this.#innerMargin, - height = maxY - minY + 2 * this.#innerMargin; - this.#bbox = { - x, - y, - width, - height, - lastPoint: [lastPointX, lastPointY] - }; - } - get box() { - return this.#bbox; - } - getNewOutline(thickness, innerMargin) { - const { - x, - y, - width, - height - } = this.#bbox; - const [layerX, layerY, layerWidth, layerHeight] = this.#box; - const sx = width * layerWidth; - const sy = height * layerHeight; - const tx = x * layerWidth + layerX; - const ty = y * layerHeight + layerY; - const outliner = new FreeOutliner({ - x: this.#points[0] * sx + tx, - y: this.#points[1] * sy + ty - }, this.#box, this.#scaleFactor, thickness, this.#isLTR, innerMargin ?? this.#innerMargin); - for (let i = 2; i < this.#points.length; i += 2) { - outliner.add({ - x: this.#points[i] * sx + tx, - y: this.#points[i + 1] * sy + ty - }); - } - return outliner.getOutlines(); - } -} - - -/***/ }), - -/***/ 362: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ EditorToolbar: () => (/* binding */ EditorToolbar), -/* harmony export */ HighlightToolbar: () => (/* binding */ HighlightToolbar) -/* harmony export */ }); -/* harmony import */ var _display_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(419); - -class EditorToolbar { - #toolbar = null; - #colorPicker = null; - #editor; - #buttons = null; - constructor(editor) { - this.#editor = editor; - } - render() { - const editToolbar = this.#toolbar = document.createElement("div"); - editToolbar.className = "editToolbar"; - editToolbar.setAttribute("role", "toolbar"); - editToolbar.addEventListener("contextmenu", _display_utils_js__WEBPACK_IMPORTED_MODULE_0__.noContextMenu); - editToolbar.addEventListener("pointerdown", EditorToolbar.#pointerDown); - const buttons = this.#buttons = document.createElement("div"); - buttons.className = "buttons"; - editToolbar.append(buttons); - const position = this.#editor.toolbarPosition; - if (position) { - const { - style - } = editToolbar; - const x = this.#editor._uiManager.direction === "ltr" ? 1 - position[0] : position[0]; - style.insetInlineEnd = `${100 * x}%`; - style.top = `calc(${100 * position[1]}% + var(--editor-toolbar-vert-offset))`; - } - this.#addDeleteButton(); - return editToolbar; - } - static #pointerDown(e) { - e.stopPropagation(); - } - #focusIn(e) { - this.#editor._focusEventsAllowed = false; - e.preventDefault(); - e.stopPropagation(); - } - #focusOut(e) { - this.#editor._focusEventsAllowed = true; - e.preventDefault(); - e.stopPropagation(); - } - #addListenersToElement(element) { - element.addEventListener("focusin", this.#focusIn.bind(this), { - capture: true - }); - element.addEventListener("focusout", this.#focusOut.bind(this), { - capture: true - }); - element.addEventListener("contextmenu", _display_utils_js__WEBPACK_IMPORTED_MODULE_0__.noContextMenu); - } - hide() { - this.#toolbar.classList.add("hidden"); - this.#colorPicker?.hideDropdown(); - } - show() { - this.#toolbar.classList.remove("hidden"); - } - #addDeleteButton() { - const button = document.createElement("button"); - button.className = "delete"; - button.tabIndex = 0; - button.setAttribute("data-l10n-id", `pdfjs-editor-remove-${this.#editor.editorType}-button`); - this.#addListenersToElement(button); - button.addEventListener("click", e => { - this.#editor._uiManager.delete(); - }); - this.#buttons.append(button); - } - get #divider() { - const divider = document.createElement("div"); - divider.className = "divider"; - return divider; - } - addAltTextButton(button) { - this.#addListenersToElement(button); - this.#buttons.prepend(button, this.#divider); - } - addColorPicker(colorPicker) { - this.#colorPicker = colorPicker; - const button = colorPicker.renderButton(); - this.#addListenersToElement(button); - this.#buttons.prepend(button, this.#divider); - } - remove() { - this.#toolbar.remove(); - this.#colorPicker?.destroy(); - this.#colorPicker = null; - } -} -class HighlightToolbar { - #buttons = null; - #toolbar = null; - #uiManager; - constructor(uiManager) { - this.#uiManager = uiManager; - } - #render() { - const editToolbar = this.#toolbar = document.createElement("div"); - editToolbar.className = "editToolbar"; - editToolbar.setAttribute("role", "toolbar"); - editToolbar.addEventListener("contextmenu", _display_utils_js__WEBPACK_IMPORTED_MODULE_0__.noContextMenu); - const buttons = this.#buttons = document.createElement("div"); - buttons.className = "buttons"; - editToolbar.append(buttons); - this.#addHighlightButton(); - return editToolbar; - } - #getLastPoint(boxes, isLTR) { - let lastY = 0; - let lastX = 0; - for (const box of boxes) { - const y = box.y + box.height; - if (y < lastY) { - continue; - } - const x = box.x + (isLTR ? box.width : 0); - if (y > lastY) { - lastX = x; - lastY = y; - continue; - } - if (isLTR) { - if (x > lastX) { - lastX = x; - } - } else if (x < lastX) { - lastX = x; - } - } - return [isLTR ? 1 - lastX : lastX, lastY]; - } - show(parent, boxes, isLTR) { - const [x, y] = this.#getLastPoint(boxes, isLTR); - const { - style - } = this.#toolbar ||= this.#render(); - parent.append(this.#toolbar); - style.insetInlineEnd = `${100 * x}%`; - style.top = `calc(${100 * y}% + var(--editor-toolbar-vert-offset))`; - } - hide() { - this.#toolbar.remove(); - } - #addHighlightButton() { - const button = document.createElement("button"); - button.className = "highlightButton"; - button.tabIndex = 0; - button.setAttribute("data-l10n-id", `pdfjs-highlight-floating-button1`); - const span = document.createElement("span"); - button.append(span); - span.className = "visuallyHidden"; - span.setAttribute("data-l10n-id", "pdfjs-highlight-floating-button-label"); - button.addEventListener("contextmenu", _display_utils_js__WEBPACK_IMPORTED_MODULE_0__.noContextMenu); - button.addEventListener("click", () => { - this.#uiManager.highlightSelection("floating_button"); - }); - this.#buttons.append(button); - } -} - - -/***/ }), - -/***/ 830: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AnnotationEditorUIManager: () => (/* binding */ AnnotationEditorUIManager), -/* harmony export */ ColorManager: () => (/* binding */ ColorManager), -/* harmony export */ KeyboardManager: () => (/* binding */ KeyboardManager), -/* harmony export */ bindEvents: () => (/* binding */ bindEvents), -/* harmony export */ opacityToHex: () => (/* binding */ opacityToHex) -/* harmony export */ }); -/* unused harmony export CommandManager */ -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _display_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(419); -/* harmony import */ var _toolbar_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(362); - - - -function bindEvents(obj, element, names) { - for (const name of names) { - element.addEventListener(name, obj[name].bind(obj)); - } -} -function opacityToHex(opacity) { - return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, "0"); -} -class IdManager { - #id = 0; - constructor() {} - get id() { - return `${_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorPrefix}${this.#id++}`; - } -} -class ImageManager { - #baseId = (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.getUuid)(); - #id = 0; - #cache = null; - static get _isSVGFittingCanvas() { - const svg = `data:image/svg+xml;charset=UTF-8,`; - const canvas = new OffscreenCanvas(1, 3); - const ctx = canvas.getContext("2d"); - const image = new Image(); - image.src = svg; - const promise = image.decode().then(() => { - ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3); - return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0; - }); - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_isSVGFittingCanvas", promise); - } - async #get(key, rawData) { - this.#cache ||= new Map(); - let data = this.#cache.get(key); - if (data === null) { - return null; - } - if (data?.bitmap) { - data.refCounter += 1; - return data; - } - try { - data ||= { - bitmap: null, - id: `image_${this.#baseId}_${this.#id++}`, - refCounter: 0, - isSvg: false - }; - let image; - if (typeof rawData === "string") { - data.url = rawData; - image = await (0,_display_utils_js__WEBPACK_IMPORTED_MODULE_1__.fetchData)(rawData, "blob"); - } else { - image = data.file = rawData; - } - if (image.type === "image/svg+xml") { - const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas; - const fileReader = new FileReader(); - const imageElement = new Image(); - const imagePromise = new Promise((resolve, reject) => { - imageElement.onload = () => { - data.bitmap = imageElement; - data.isSvg = true; - resolve(); - }; - fileReader.onload = async () => { - const url = data.svgUrl = fileReader.result; - imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url; - }; - imageElement.onerror = fileReader.onerror = reject; - }); - fileReader.readAsDataURL(image); - await imagePromise; - } else { - data.bitmap = await createImageBitmap(image); - } - data.refCounter = 1; - } catch (e) { - console.error(e); - data = null; - } - this.#cache.set(key, data); - if (data) { - this.#cache.set(data.id, data); - } - return data; - } - async getFromFile(file) { - const { - lastModified, - name, - size, - type - } = file; - return this.#get(`${lastModified}_${name}_${size}_${type}`, file); - } - async getFromUrl(url) { - return this.#get(url, url); - } - async getFromId(id) { - this.#cache ||= new Map(); - const data = this.#cache.get(id); - if (!data) { - return null; - } - if (data.bitmap) { - data.refCounter += 1; - return data; - } - if (data.file) { - return this.getFromFile(data.file); - } - return this.getFromUrl(data.url); - } - getSvgUrl(id) { - const data = this.#cache.get(id); - if (!data?.isSvg) { - return null; - } - return data.svgUrl; - } - deleteId(id) { - this.#cache ||= new Map(); - const data = this.#cache.get(id); - if (!data) { - return; - } - data.refCounter -= 1; - if (data.refCounter !== 0) { - return; - } - data.bitmap = null; - } - isValidId(id) { - return id.startsWith(`image_${this.#baseId}_`); - } -} -class CommandManager { - #commands = []; - #locked = false; - #maxSize; - #position = -1; - constructor(maxSize = 128) { - this.#maxSize = maxSize; - } - add({ - cmd, - undo, - post, - mustExec, - type = NaN, - overwriteIfSameType = false, - keepUndo = false - }) { - if (mustExec) { - cmd(); - } - if (this.#locked) { - return; - } - const save = { - cmd, - undo, - post, - type - }; - if (this.#position === -1) { - if (this.#commands.length > 0) { - this.#commands.length = 0; - } - this.#position = 0; - this.#commands.push(save); - return; - } - if (overwriteIfSameType && this.#commands[this.#position].type === type) { - if (keepUndo) { - save.undo = this.#commands[this.#position].undo; - } - this.#commands[this.#position] = save; - return; - } - const next = this.#position + 1; - if (next === this.#maxSize) { - this.#commands.splice(0, 1); - } else { - this.#position = next; - if (next < this.#commands.length) { - this.#commands.splice(next); - } - } - this.#commands.push(save); - } - undo() { - if (this.#position === -1) { - return; - } - this.#locked = true; - const { - undo, - post - } = this.#commands[this.#position]; - undo(); - post?.(); - this.#locked = false; - this.#position -= 1; - } - redo() { - if (this.#position < this.#commands.length - 1) { - this.#position += 1; - this.#locked = true; - const { - cmd, - post - } = this.#commands[this.#position]; - cmd(); - post?.(); - this.#locked = false; - } - } - hasSomethingToUndo() { - return this.#position !== -1; - } - hasSomethingToRedo() { - return this.#position < this.#commands.length - 1; - } - destroy() { - this.#commands = null; - } -} -class KeyboardManager { - constructor(callbacks) { - this.buffer = []; - this.callbacks = new Map(); - this.allKeys = new Set(); - const { - isMac - } = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FeatureTest.platform; - for (const [keys, callback, options = {}] of callbacks) { - for (const key of keys) { - const isMacKey = key.startsWith("mac+"); - if (isMac && isMacKey) { - this.callbacks.set(key.slice(4), { - callback, - options - }); - this.allKeys.add(key.split("+").at(-1)); - } else if (!isMac && !isMacKey) { - this.callbacks.set(key, { - callback, - options - }); - this.allKeys.add(key.split("+").at(-1)); - } - } - } - } - #serialize(event) { - if (event.altKey) { - this.buffer.push("alt"); - } - if (event.ctrlKey) { - this.buffer.push("ctrl"); - } - if (event.metaKey) { - this.buffer.push("meta"); - } - if (event.shiftKey) { - this.buffer.push("shift"); - } - this.buffer.push(event.key); - const str = this.buffer.join("+"); - this.buffer.length = 0; - return str; - } - exec(self, event) { - if (!this.allKeys.has(event.key)) { - return; - } - const info = this.callbacks.get(this.#serialize(event)); - if (!info) { - return; - } - const { - callback, - options: { - bubbles = false, - args = [], - checker = null - } - } = info; - if (checker && !checker(self, event)) { - return; - } - callback.bind(self, ...args, event)(); - if (!bubbles) { - event.stopPropagation(); - event.preventDefault(); - } - } -} -class ColorManager { - static _colorsMapping = new Map([["CanvasText", [0, 0, 0]], ["Canvas", [255, 255, 255]]]); - get _colors() { - const colors = new Map([["CanvasText", null], ["Canvas", null]]); - (0,_display_utils_js__WEBPACK_IMPORTED_MODULE_1__.getColorValues)(colors); - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_colors", colors); - } - convert(color) { - const rgb = (0,_display_utils_js__WEBPACK_IMPORTED_MODULE_1__.getRGB)(color); - if (!window.matchMedia("(forced-colors: active)").matches) { - return rgb; - } - for (const [name, RGB] of this._colors) { - if (RGB.every((x, i) => x === rgb[i])) { - return ColorManager._colorsMapping.get(name); - } - } - return rgb; - } - getHexCode(name) { - const rgb = this._colors.get(name); - if (!rgb) { - return name; - } - return _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.Util.makeHexColor(...rgb); - } -} -class AnnotationEditorUIManager { - #activeEditor = null; - #allEditors = new Map(); - #allLayers = new Map(); - #altTextManager = null; - #annotationStorage = null; - #changedExistingAnnotations = null; - #commandManager = new CommandManager(); - #currentPageIndex = 0; - #deletedAnnotationsElementIds = new Set(); - #draggingEditors = null; - #editorTypes = null; - #editorsToRescale = new Set(); - #enableHighlightFloatingButton = false; - #filterFactory = null; - #focusMainContainerTimeoutId = null; - #highlightColors = null; - #highlightWhenShiftUp = false; - #highlightToolbar = null; - #idManager = new IdManager(); - #isEnabled = false; - #isWaiting = false; - #lastActiveElement = null; - #mainHighlightColorPicker = null; - #mlManager = null; - #mode = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE; - #selectedEditors = new Set(); - #selectedTextNode = null; - #pageColors = null; - #showAllStates = null; - #boundBlur = this.blur.bind(this); - #boundFocus = this.focus.bind(this); - #boundCopy = this.copy.bind(this); - #boundCut = this.cut.bind(this); - #boundPaste = this.paste.bind(this); - #boundKeydown = this.keydown.bind(this); - #boundKeyup = this.keyup.bind(this); - #boundOnEditingAction = this.onEditingAction.bind(this); - #boundOnPageChanging = this.onPageChanging.bind(this); - #boundOnScaleChanging = this.onScaleChanging.bind(this); - #boundSelectionChange = this.#selectionChange.bind(this); - #boundOnRotationChanging = this.onRotationChanging.bind(this); - #previousStates = { - isEditing: false, - isEmpty: true, - hasSomethingToUndo: false, - hasSomethingToRedo: false, - hasSelectedEditor: false, - hasSelectedText: false - }; - #translation = [0, 0]; - #translationTimeoutId = null; - #container = null; - #viewer = null; - static TRANSLATE_SMALL = 1; - static TRANSLATE_BIG = 10; - static get _keyboardManager() { - const proto = AnnotationEditorUIManager.prototype; - const arrowChecker = self => self.#container.contains(document.activeElement) && document.activeElement.tagName !== "BUTTON" && self.hasSomethingToControl(); - const textInputChecker = (_self, { - target: el - }) => { - if (el instanceof HTMLInputElement) { - const { - type - } = el; - return type !== "text" && type !== "number"; - } - return true; - }; - const small = this.TRANSLATE_SMALL; - const big = this.TRANSLATE_BIG; - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_keyboardManager", new KeyboardManager([[["ctrl+a", "mac+meta+a"], proto.selectAll, { - checker: textInputChecker - }], [["ctrl+z", "mac+meta+z"], proto.undo, { - checker: textInputChecker - }], [["ctrl+y", "ctrl+shift+z", "mac+meta+shift+z", "ctrl+shift+Z", "mac+meta+shift+Z"], proto.redo, { - checker: textInputChecker - }], [["Backspace", "alt+Backspace", "ctrl+Backspace", "shift+Backspace", "mac+Backspace", "mac+alt+Backspace", "mac+ctrl+Backspace", "Delete", "ctrl+Delete", "shift+Delete", "mac+Delete"], proto.delete, { - checker: textInputChecker - }], [["Enter", "mac+Enter"], proto.addNewEditorFromKeyboard, { - checker: (self, { - target: el - }) => !(el instanceof HTMLButtonElement) && self.#container.contains(el) && !self.isEnterHandled - }], [[" ", "mac+ "], proto.addNewEditorFromKeyboard, { - checker: (self, { - target: el - }) => !(el instanceof HTMLButtonElement) && self.#container.contains(document.activeElement) - }], [["Escape", "mac+Escape"], proto.unselectAll], [["ArrowLeft", "mac+ArrowLeft"], proto.translateSelectedEditors, { - args: [-small, 0], - checker: arrowChecker - }], [["ctrl+ArrowLeft", "mac+shift+ArrowLeft"], proto.translateSelectedEditors, { - args: [-big, 0], - checker: arrowChecker - }], [["ArrowRight", "mac+ArrowRight"], proto.translateSelectedEditors, { - args: [small, 0], - checker: arrowChecker - }], [["ctrl+ArrowRight", "mac+shift+ArrowRight"], proto.translateSelectedEditors, { - args: [big, 0], - checker: arrowChecker - }], [["ArrowUp", "mac+ArrowUp"], proto.translateSelectedEditors, { - args: [0, -small], - checker: arrowChecker - }], [["ctrl+ArrowUp", "mac+shift+ArrowUp"], proto.translateSelectedEditors, { - args: [0, -big], - checker: arrowChecker - }], [["ArrowDown", "mac+ArrowDown"], proto.translateSelectedEditors, { - args: [0, small], - checker: arrowChecker - }], [["ctrl+ArrowDown", "mac+shift+ArrowDown"], proto.translateSelectedEditors, { - args: [0, big], - checker: arrowChecker - }]])); - } - constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors, highlightColors, enableHighlightFloatingButton, mlManager) { - this.#container = container; - this.#viewer = viewer; - this.#altTextManager = altTextManager; - this._eventBus = eventBus; - this._eventBus._on("editingaction", this.#boundOnEditingAction); - this._eventBus._on("pagechanging", this.#boundOnPageChanging); - this._eventBus._on("scalechanging", this.#boundOnScaleChanging); - this._eventBus._on("rotationchanging", this.#boundOnRotationChanging); - this.#addSelectionListener(); - this.#addKeyboardManager(); - this.#annotationStorage = pdfDocument.annotationStorage; - this.#filterFactory = pdfDocument.filterFactory; - this.#pageColors = pageColors; - this.#highlightColors = highlightColors || null; - this.#enableHighlightFloatingButton = enableHighlightFloatingButton; - this.#mlManager = mlManager || null; - this.viewParameters = { - realScale: _display_utils_js__WEBPACK_IMPORTED_MODULE_1__.PixelsPerInch.PDF_TO_CSS_UNITS, - rotation: 0 - }; - this.isShiftKeyDown = false; - } - destroy() { - this.#removeKeyboardManager(); - this.#removeFocusManager(); - this._eventBus._off("editingaction", this.#boundOnEditingAction); - this._eventBus._off("pagechanging", this.#boundOnPageChanging); - this._eventBus._off("scalechanging", this.#boundOnScaleChanging); - this._eventBus._off("rotationchanging", this.#boundOnRotationChanging); - for (const layer of this.#allLayers.values()) { - layer.destroy(); - } - this.#allLayers.clear(); - this.#allEditors.clear(); - this.#editorsToRescale.clear(); - this.#activeEditor = null; - this.#selectedEditors.clear(); - this.#commandManager.destroy(); - this.#altTextManager?.destroy(); - this.#highlightToolbar?.hide(); - this.#highlightToolbar = null; - if (this.#focusMainContainerTimeoutId) { - clearTimeout(this.#focusMainContainerTimeoutId); - this.#focusMainContainerTimeoutId = null; - } - if (this.#translationTimeoutId) { - clearTimeout(this.#translationTimeoutId); - this.#translationTimeoutId = null; - } - this.#removeSelectionListener(); - } - async mlGuess(data) { - return this.#mlManager?.guess(data) || null; - } - get hasMLManager() { - return !!this.#mlManager; - } - get hcmFilter() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "hcmFilter", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : "none"); - } - get direction() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "direction", getComputedStyle(this.#container).direction); - } - get highlightColors() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "highlightColors", this.#highlightColors ? new Map(this.#highlightColors.split(",").map(pair => pair.split("=").map(x => x.trim()))) : null); - } - get highlightColorNames() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "highlightColorNames", this.highlightColors ? new Map(Array.from(this.highlightColors, e => e.reverse())) : null); - } - setMainHighlightColorPicker(colorPicker) { - this.#mainHighlightColorPicker = colorPicker; - } - editAltText(editor) { - this.#altTextManager?.editAltText(this, editor); - } - onPageChanging({ - pageNumber - }) { - this.#currentPageIndex = pageNumber - 1; - } - focusMainContainer() { - this.#container.focus(); - } - findParent(x, y) { - for (const layer of this.#allLayers.values()) { - const { - x: layerX, - y: layerY, - width, - height - } = layer.div.getBoundingClientRect(); - if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) { - return layer; - } - } - return null; - } - disableUserSelect(value = false) { - this.#viewer.classList.toggle("noUserSelect", value); - } - addShouldRescale(editor) { - this.#editorsToRescale.add(editor); - } - removeShouldRescale(editor) { - this.#editorsToRescale.delete(editor); - } - onScaleChanging({ - scale - }) { - this.commitOrRemove(); - this.viewParameters.realScale = scale * _display_utils_js__WEBPACK_IMPORTED_MODULE_1__.PixelsPerInch.PDF_TO_CSS_UNITS; - for (const editor of this.#editorsToRescale) { - editor.onScaleChanging(); - } - } - onRotationChanging({ - pagesRotation - }) { - this.commitOrRemove(); - this.viewParameters.rotation = pagesRotation; - } - #getAnchorElementForSelection({ - anchorNode - }) { - return anchorNode.nodeType === Node.TEXT_NODE ? anchorNode.parentElement : anchorNode; - } - highlightSelection(methodOfCreation = "") { - const selection = document.getSelection(); - if (!selection || selection.isCollapsed) { - return; - } - const { - anchorNode, - anchorOffset, - focusNode, - focusOffset - } = selection; - const text = selection.toString(); - const anchorElement = this.#getAnchorElementForSelection(selection); - const textLayer = anchorElement.closest(".textLayer"); - const boxes = this.getSelectionBoxes(textLayer); - if (!boxes) { - return; - } - selection.empty(); - if (this.#mode === _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE) { - this._eventBus.dispatch("showannotationeditorui", { - source: this, - mode: _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.HIGHLIGHT - }); - this.showAllEditors("highlight", true, true); - } - for (const layer of this.#allLayers.values()) { - if (layer.hasTextLayer(textLayer)) { - layer.createAndAddNewEditor({ - x: 0, - y: 0 - }, false, { - methodOfCreation, - boxes, - anchorNode, - anchorOffset, - focusNode, - focusOffset, - text - }); - break; - } - } - } - #displayHighlightToolbar() { - const selection = document.getSelection(); - if (!selection || selection.isCollapsed) { - return; - } - const anchorElement = this.#getAnchorElementForSelection(selection); - const textLayer = anchorElement.closest(".textLayer"); - const boxes = this.getSelectionBoxes(textLayer); - if (!boxes) { - return; - } - this.#highlightToolbar ||= new _toolbar_js__WEBPACK_IMPORTED_MODULE_2__.HighlightToolbar(this); - this.#highlightToolbar.show(textLayer, boxes, this.direction === "ltr"); - } - addToAnnotationStorage(editor) { - if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) { - this.#annotationStorage.setValue(editor.id, editor); - } - } - #selectionChange() { - const selection = document.getSelection(); - if (!selection || selection.isCollapsed) { - if (this.#selectedTextNode) { - this.#highlightToolbar?.hide(); - this.#selectedTextNode = null; - this.#dispatchUpdateStates({ - hasSelectedText: false - }); - } - return; - } - const { - anchorNode - } = selection; - if (anchorNode === this.#selectedTextNode) { - return; - } - const anchorElement = this.#getAnchorElementForSelection(selection); - const textLayer = anchorElement.closest(".textLayer"); - if (!textLayer) { - if (this.#selectedTextNode) { - this.#highlightToolbar?.hide(); - this.#selectedTextNode = null; - this.#dispatchUpdateStates({ - hasSelectedText: false - }); - } - return; - } - this.#highlightToolbar?.hide(); - this.#selectedTextNode = anchorNode; - this.#dispatchUpdateStates({ - hasSelectedText: true - }); - if (this.#mode !== _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.HIGHLIGHT && this.#mode !== _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE) { - return; - } - if (this.#mode === _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.HIGHLIGHT) { - this.showAllEditors("highlight", true, true); - } - this.#highlightWhenShiftUp = this.isShiftKeyDown; - if (!this.isShiftKeyDown) { - const pointerup = e => { - if (e.type === "pointerup" && e.button !== 0) { - return; - } - window.removeEventListener("pointerup", pointerup); - window.removeEventListener("blur", pointerup); - if (e.type === "pointerup") { - this.#onSelectEnd("main_toolbar"); - } - }; - window.addEventListener("pointerup", pointerup); - window.addEventListener("blur", pointerup); - } - } - #onSelectEnd(methodOfCreation = "") { - if (this.#mode === _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.HIGHLIGHT) { - this.highlightSelection(methodOfCreation); - } else if (this.#enableHighlightFloatingButton) { - this.#displayHighlightToolbar(); - } - } - #addSelectionListener() { - document.addEventListener("selectionchange", this.#boundSelectionChange); - } - #removeSelectionListener() { - document.removeEventListener("selectionchange", this.#boundSelectionChange); - } - #addFocusManager() { - window.addEventListener("focus", this.#boundFocus); - window.addEventListener("blur", this.#boundBlur); - } - #removeFocusManager() { - window.removeEventListener("focus", this.#boundFocus); - window.removeEventListener("blur", this.#boundBlur); - } - blur() { - this.isShiftKeyDown = false; - if (this.#highlightWhenShiftUp) { - this.#highlightWhenShiftUp = false; - this.#onSelectEnd("main_toolbar"); - } - if (!this.hasSelection) { - return; - } - const { - activeElement - } = document; - for (const editor of this.#selectedEditors) { - if (editor.div.contains(activeElement)) { - this.#lastActiveElement = [editor, activeElement]; - editor._focusEventsAllowed = false; - break; - } - } - } - focus() { - if (!this.#lastActiveElement) { - return; - } - const [lastEditor, lastActiveElement] = this.#lastActiveElement; - this.#lastActiveElement = null; - lastActiveElement.addEventListener("focusin", () => { - lastEditor._focusEventsAllowed = true; - }, { - once: true - }); - lastActiveElement.focus(); - } - #addKeyboardManager() { - window.addEventListener("keydown", this.#boundKeydown); - window.addEventListener("keyup", this.#boundKeyup); - } - #removeKeyboardManager() { - window.removeEventListener("keydown", this.#boundKeydown); - window.removeEventListener("keyup", this.#boundKeyup); - } - #addCopyPasteListeners() { - document.addEventListener("copy", this.#boundCopy); - document.addEventListener("cut", this.#boundCut); - document.addEventListener("paste", this.#boundPaste); - } - #removeCopyPasteListeners() { - document.removeEventListener("copy", this.#boundCopy); - document.removeEventListener("cut", this.#boundCut); - document.removeEventListener("paste", this.#boundPaste); - } - addEditListeners() { - this.#addKeyboardManager(); - this.#addCopyPasteListeners(); - } - removeEditListeners() { - this.#removeKeyboardManager(); - this.#removeCopyPasteListeners(); - } - copy(event) { - event.preventDefault(); - this.#activeEditor?.commitOrRemove(); - if (!this.hasSelection) { - return; - } - const editors = []; - for (const editor of this.#selectedEditors) { - const serialized = editor.serialize(true); - if (serialized) { - editors.push(serialized); - } - } - if (editors.length === 0) { - return; - } - event.clipboardData.setData("application/pdfjs", JSON.stringify(editors)); - } - cut(event) { - this.copy(event); - this.delete(); - } - paste(event) { - event.preventDefault(); - const { - clipboardData - } = event; - for (const item of clipboardData.items) { - for (const editorType of this.#editorTypes) { - if (editorType.isHandlingMimeForPasting(item.type)) { - editorType.paste(item, this.currentLayer); - return; - } - } - } - let data = clipboardData.getData("application/pdfjs"); - if (!data) { - return; - } - try { - data = JSON.parse(data); - } catch (ex) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`paste: "${ex.message}".`); - return; - } - if (!Array.isArray(data)) { - return; - } - this.unselectAll(); - const layer = this.currentLayer; - try { - const newEditors = []; - for (const editor of data) { - const deserializedEditor = layer.deserialize(editor); - if (!deserializedEditor) { - return; - } - newEditors.push(deserializedEditor); - } - const cmd = () => { - for (const editor of newEditors) { - this.#addEditorToLayer(editor); - } - this.#selectEditors(newEditors); - }; - const undo = () => { - for (const editor of newEditors) { - editor.remove(); - } - }; - this.addCommands({ - cmd, - undo, - mustExec: true - }); - } catch (ex) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`paste: "${ex.message}".`); - } - } - keydown(event) { - if (!this.isShiftKeyDown && event.key === "Shift") { - this.isShiftKeyDown = true; - } - if (this.#mode !== _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE && !this.isEditorHandlingKeyboard) { - AnnotationEditorUIManager._keyboardManager.exec(this, event); - } - } - keyup(event) { - if (this.isShiftKeyDown && event.key === "Shift") { - this.isShiftKeyDown = false; - if (this.#highlightWhenShiftUp) { - this.#highlightWhenShiftUp = false; - this.#onSelectEnd("main_toolbar"); - } - } - } - onEditingAction({ - name - }) { - switch (name) { - case "undo": - case "redo": - case "delete": - case "selectAll": - this[name](); - break; - case "highlightSelection": - this.highlightSelection("context_menu"); - break; - } - } - #dispatchUpdateStates(details) { - const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value); - if (hasChanged) { - this._eventBus.dispatch("annotationeditorstateschanged", { - source: this, - details: Object.assign(this.#previousStates, details) - }); - if (this.#mode === _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.HIGHLIGHT && details.hasSelectedEditor === false) { - this.#dispatchUpdateUI([[_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.HIGHLIGHT_FREE, true]]); - } - } - } - #dispatchUpdateUI(details) { - this._eventBus.dispatch("annotationeditorparamschanged", { - source: this, - details - }); - } - setEditingState(isEditing) { - if (isEditing) { - this.#addFocusManager(); - this.#addCopyPasteListeners(); - this.#dispatchUpdateStates({ - isEditing: this.#mode !== _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE, - isEmpty: this.#isEmpty(), - hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(), - hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(), - hasSelectedEditor: false - }); - } else { - this.#removeFocusManager(); - this.#removeCopyPasteListeners(); - this.#dispatchUpdateStates({ - isEditing: false - }); - this.disableUserSelect(false); - } - } - registerEditorTypes(types) { - if (this.#editorTypes) { - return; - } - this.#editorTypes = types; - for (const editorType of this.#editorTypes) { - this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate); - } - } - getId() { - return this.#idManager.id; - } - get currentLayer() { - return this.#allLayers.get(this.#currentPageIndex); - } - getLayer(pageIndex) { - return this.#allLayers.get(pageIndex); - } - get currentPageIndex() { - return this.#currentPageIndex; - } - addLayer(layer) { - this.#allLayers.set(layer.pageIndex, layer); - if (this.#isEnabled) { - layer.enable(); - } else { - layer.disable(); - } - } - removeLayer(layer) { - this.#allLayers.delete(layer.pageIndex); - } - updateMode(mode, editId = null, isFromKeyboard = false) { - if (this.#mode === mode) { - return; - } - this.#mode = mode; - if (mode === _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE) { - this.setEditingState(false); - this.#disableAll(); - return; - } - this.setEditingState(true); - this.#enableAll(); - this.unselectAll(); - for (const layer of this.#allLayers.values()) { - layer.updateMode(mode); - } - if (!editId && isFromKeyboard) { - this.addNewEditorFromKeyboard(); - return; - } - if (!editId) { - return; - } - for (const editor of this.#allEditors.values()) { - if (editor.annotationElementId === editId) { - this.setSelected(editor); - editor.enterInEditMode(); - break; - } - } - } - addNewEditorFromKeyboard() { - if (this.currentLayer.canCreateNewEmptyEditor()) { - this.currentLayer.addNewEditor(); - } - } - updateToolbar(mode) { - if (mode === this.#mode) { - return; - } - this._eventBus.dispatch("switchannotationeditormode", { - source: this, - mode - }); - } - updateParams(type, value) { - if (!this.#editorTypes) { - return; - } - switch (type) { - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.CREATE: - this.currentLayer.addNewEditor(); - return; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR: - this.#mainHighlightColorPicker?.updateColor(value); - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL: - this._eventBus.dispatch("reporttelemetry", { - source: this, - details: { - type: "editing", - data: { - type: "highlight", - action: "toggle_visibility" - } - } - }); - (this.#showAllStates ||= new Map()).set(type, value); - this.showAllEditors("highlight", value); - break; - } - for (const editor of this.#selectedEditors) { - editor.updateParams(type, value); - } - for (const editorType of this.#editorTypes) { - editorType.updateDefaultParams(type, value); - } - } - showAllEditors(type, visible, updateButton = false) { - for (const editor of this.#allEditors.values()) { - if (editor.editorType === type) { - editor.show(visible); - } - } - const state = this.#showAllStates?.get(_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL) ?? true; - if (state !== visible) { - this.#dispatchUpdateUI([[_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL, visible]]); - } - } - enableWaiting(mustWait = false) { - if (this.#isWaiting === mustWait) { - return; - } - this.#isWaiting = mustWait; - for (const layer of this.#allLayers.values()) { - if (mustWait) { - layer.disableClick(); - } else { - layer.enableClick(); - } - layer.div.classList.toggle("waiting", mustWait); - } - } - #enableAll() { - if (!this.#isEnabled) { - this.#isEnabled = true; - for (const layer of this.#allLayers.values()) { - layer.enable(); - } - for (const editor of this.#allEditors.values()) { - editor.enable(); - } - } - } - #disableAll() { - this.unselectAll(); - if (this.#isEnabled) { - this.#isEnabled = false; - for (const layer of this.#allLayers.values()) { - layer.disable(); - } - for (const editor of this.#allEditors.values()) { - editor.disable(); - } - } - } - getEditors(pageIndex) { - const editors = []; - for (const editor of this.#allEditors.values()) { - if (editor.pageIndex === pageIndex) { - editors.push(editor); - } - } - return editors; - } - getEditor(id) { - return this.#allEditors.get(id); - } - addEditor(editor) { - this.#allEditors.set(editor.id, editor); - } - removeEditor(editor) { - if (editor.div.contains(document.activeElement)) { - if (this.#focusMainContainerTimeoutId) { - clearTimeout(this.#focusMainContainerTimeoutId); - } - this.#focusMainContainerTimeoutId = setTimeout(() => { - this.focusMainContainer(); - this.#focusMainContainerTimeoutId = null; - }, 0); - } - this.#allEditors.delete(editor.id); - this.unselect(editor); - if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) { - this.#annotationStorage?.remove(editor.id); - } - } - addDeletedAnnotationElement(editor) { - this.#deletedAnnotationsElementIds.add(editor.annotationElementId); - this.addChangedExistingAnnotation(editor); - editor.deleted = true; - } - isDeletedAnnotationElement(annotationElementId) { - return this.#deletedAnnotationsElementIds.has(annotationElementId); - } - removeDeletedAnnotationElement(editor) { - this.#deletedAnnotationsElementIds.delete(editor.annotationElementId); - this.removeChangedExistingAnnotation(editor); - editor.deleted = false; - } - #addEditorToLayer(editor) { - const layer = this.#allLayers.get(editor.pageIndex); - if (layer) { - layer.addOrRebuild(editor); - } else { - this.addEditor(editor); - this.addToAnnotationStorage(editor); - } - } - setActiveEditor(editor) { - if (this.#activeEditor === editor) { - return; - } - this.#activeEditor = editor; - if (editor) { - this.#dispatchUpdateUI(editor.propertiesToUpdate); - } - } - get #lastSelectedEditor() { - let ed = null; - for (ed of this.#selectedEditors) {} - return ed; - } - updateUI(editor) { - if (this.#lastSelectedEditor === editor) { - this.#dispatchUpdateUI(editor.propertiesToUpdate); - } - } - toggleSelected(editor) { - if (this.#selectedEditors.has(editor)) { - this.#selectedEditors.delete(editor); - editor.unselect(); - this.#dispatchUpdateStates({ - hasSelectedEditor: this.hasSelection - }); - return; - } - this.#selectedEditors.add(editor); - editor.select(); - this.#dispatchUpdateUI(editor.propertiesToUpdate); - this.#dispatchUpdateStates({ - hasSelectedEditor: true - }); - } - setSelected(editor) { - for (const ed of this.#selectedEditors) { - if (ed !== editor) { - ed.unselect(); - } - } - this.#selectedEditors.clear(); - this.#selectedEditors.add(editor); - editor.select(); - this.#dispatchUpdateUI(editor.propertiesToUpdate); - this.#dispatchUpdateStates({ - hasSelectedEditor: true - }); - } - isSelected(editor) { - return this.#selectedEditors.has(editor); - } - get firstSelectedEditor() { - return this.#selectedEditors.values().next().value; - } - unselect(editor) { - editor.unselect(); - this.#selectedEditors.delete(editor); - this.#dispatchUpdateStates({ - hasSelectedEditor: this.hasSelection - }); - } - get hasSelection() { - return this.#selectedEditors.size !== 0; - } - get isEnterHandled() { - return this.#selectedEditors.size === 1 && this.firstSelectedEditor.isEnterHandled; - } - undo() { - this.#commandManager.undo(); - this.#dispatchUpdateStates({ - hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(), - hasSomethingToRedo: true, - isEmpty: this.#isEmpty() - }); - } - redo() { - this.#commandManager.redo(); - this.#dispatchUpdateStates({ - hasSomethingToUndo: true, - hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(), - isEmpty: this.#isEmpty() - }); - } - addCommands(params) { - this.#commandManager.add(params); - this.#dispatchUpdateStates({ - hasSomethingToUndo: true, - hasSomethingToRedo: false, - isEmpty: this.#isEmpty() - }); - } - #isEmpty() { - if (this.#allEditors.size === 0) { - return true; - } - if (this.#allEditors.size === 1) { - for (const editor of this.#allEditors.values()) { - return editor.isEmpty(); - } - } - return false; - } - delete() { - this.commitOrRemove(); - if (!this.hasSelection) { - return; - } - const editors = [...this.#selectedEditors]; - const cmd = () => { - for (const editor of editors) { - editor.remove(); - } - }; - const undo = () => { - for (const editor of editors) { - this.#addEditorToLayer(editor); - } - }; - this.addCommands({ - cmd, - undo, - mustExec: true - }); - } - commitOrRemove() { - this.#activeEditor?.commitOrRemove(); - } - hasSomethingToControl() { - return this.#activeEditor || this.hasSelection; - } - #selectEditors(editors) { - for (const editor of this.#selectedEditors) { - editor.unselect(); - } - this.#selectedEditors.clear(); - for (const editor of editors) { - if (editor.isEmpty()) { - continue; - } - this.#selectedEditors.add(editor); - editor.select(); - } - this.#dispatchUpdateStates({ - hasSelectedEditor: this.hasSelection - }); - } - selectAll() { - for (const editor of this.#selectedEditors) { - editor.commit(); - } - this.#selectEditors(this.#allEditors.values()); - } - unselectAll() { - if (this.#activeEditor) { - this.#activeEditor.commitOrRemove(); - if (this.#mode !== _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE) { - return; - } - } - if (!this.hasSelection) { - return; - } - for (const editor of this.#selectedEditors) { - editor.unselect(); - } - this.#selectedEditors.clear(); - this.#dispatchUpdateStates({ - hasSelectedEditor: false - }); - } - translateSelectedEditors(x, y, noCommit = false) { - if (!noCommit) { - this.commitOrRemove(); - } - if (!this.hasSelection) { - return; - } - this.#translation[0] += x; - this.#translation[1] += y; - const [totalX, totalY] = this.#translation; - const editors = [...this.#selectedEditors]; - const TIME_TO_WAIT = 1000; - if (this.#translationTimeoutId) { - clearTimeout(this.#translationTimeoutId); - } - this.#translationTimeoutId = setTimeout(() => { - this.#translationTimeoutId = null; - this.#translation[0] = this.#translation[1] = 0; - this.addCommands({ - cmd: () => { - for (const editor of editors) { - if (this.#allEditors.has(editor.id)) { - editor.translateInPage(totalX, totalY); - } - } - }, - undo: () => { - for (const editor of editors) { - if (this.#allEditors.has(editor.id)) { - editor.translateInPage(-totalX, -totalY); - } - } - }, - mustExec: false - }); - }, TIME_TO_WAIT); - for (const editor of editors) { - editor.translateInPage(x, y); - } - } - setUpDragSession() { - if (!this.hasSelection) { - return; - } - this.disableUserSelect(true); - this.#draggingEditors = new Map(); - for (const editor of this.#selectedEditors) { - this.#draggingEditors.set(editor, { - savedX: editor.x, - savedY: editor.y, - savedPageIndex: editor.pageIndex, - newX: 0, - newY: 0, - newPageIndex: -1 - }); - } - } - endDragSession() { - if (!this.#draggingEditors) { - return false; - } - this.disableUserSelect(false); - const map = this.#draggingEditors; - this.#draggingEditors = null; - let mustBeAddedInUndoStack = false; - for (const [{ - x, - y, - pageIndex - }, value] of map) { - value.newX = x; - value.newY = y; - value.newPageIndex = pageIndex; - mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex; - } - if (!mustBeAddedInUndoStack) { - return false; - } - const move = (editor, x, y, pageIndex) => { - if (this.#allEditors.has(editor.id)) { - const parent = this.#allLayers.get(pageIndex); - if (parent) { - editor._setParentAndPosition(parent, x, y); - } else { - editor.pageIndex = pageIndex; - editor.x = x; - editor.y = y; - } - } - }; - this.addCommands({ - cmd: () => { - for (const [editor, { - newX, - newY, - newPageIndex - }] of map) { - move(editor, newX, newY, newPageIndex); - } - }, - undo: () => { - for (const [editor, { - savedX, - savedY, - savedPageIndex - }] of map) { - move(editor, savedX, savedY, savedPageIndex); - } - }, - mustExec: true - }); - return true; - } - dragSelectedEditors(tx, ty) { - if (!this.#draggingEditors) { - return; - } - for (const editor of this.#draggingEditors.keys()) { - editor.drag(tx, ty); - } - } - rebuild(editor) { - if (editor.parent === null) { - const parent = this.getLayer(editor.pageIndex); - if (parent) { - parent.changeParent(editor); - parent.addOrRebuild(editor); - } else { - this.addEditor(editor); - this.addToAnnotationStorage(editor); - editor.rebuild(); - } - } else { - editor.parent.addOrRebuild(editor); - } - } - get isEditorHandlingKeyboard() { - return this.getActive()?.shouldGetKeyboardEvents() || this.#selectedEditors.size === 1 && this.firstSelectedEditor.shouldGetKeyboardEvents(); - } - isActive(editor) { - return this.#activeEditor === editor; - } - getActive() { - return this.#activeEditor; - } - getMode() { - return this.#mode; - } - get imageManager() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "imageManager", new ImageManager()); - } - getSelectionBoxes(textLayer) { - if (!textLayer) { - return null; - } - const selection = document.getSelection(); - for (let i = 0, ii = selection.rangeCount; i < ii; i++) { - if (!textLayer.contains(selection.getRangeAt(i).commonAncestorContainer)) { - return null; - } - } - const { - x: layerX, - y: layerY, - width: parentWidth, - height: parentHeight - } = textLayer.getBoundingClientRect(); - let rotator; - switch (textLayer.getAttribute("data-main-rotation")) { - case "90": - rotator = (x, y, w, h) => ({ - x: (y - layerY) / parentHeight, - y: 1 - (x + w - layerX) / parentWidth, - width: h / parentHeight, - height: w / parentWidth - }); - break; - case "180": - rotator = (x, y, w, h) => ({ - x: 1 - (x + w - layerX) / parentWidth, - y: 1 - (y + h - layerY) / parentHeight, - width: w / parentWidth, - height: h / parentHeight - }); - break; - case "270": - rotator = (x, y, w, h) => ({ - x: 1 - (y + h - layerY) / parentHeight, - y: (x - layerX) / parentWidth, - width: h / parentHeight, - height: w / parentWidth - }); - break; - default: - rotator = (x, y, w, h) => ({ - x: (x - layerX) / parentWidth, - y: (y - layerY) / parentHeight, - width: w / parentWidth, - height: h / parentHeight - }); - break; - } - const boxes = []; - for (let i = 0, ii = selection.rangeCount; i < ii; i++) { - const range = selection.getRangeAt(i); - if (range.collapsed) { - continue; - } - for (const { - x, - y, - width, - height - } of range.getClientRects()) { - if (width === 0 || height === 0) { - continue; - } - boxes.push(rotator(x, y, width, height)); - } - } - return boxes.length === 0 ? null : boxes; - } - addChangedExistingAnnotation({ - annotationElementId, - id - }) { - (this.#changedExistingAnnotations ||= new Map()).set(annotationElementId, id); - } - removeChangedExistingAnnotation({ - annotationElementId - }) { - this.#changedExistingAnnotations?.delete(annotationElementId); - } - renderAnnotationElement(annotation) { - const editorId = this.#changedExistingAnnotations?.get(annotation.data.id); - if (!editorId) { - return; - } - const editor = this.#annotationStorage.getRawValue(editorId); - if (!editor) { - return; - } - if (this.#mode === _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE && !editor.hasBeenModified) { - return; - } - editor.renderAnnotationElement(annotation); - } -} - - -/***/ }), - -/***/ 94: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFFetchStream: () => (/* binding */ PDFFetchStream) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _network_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(490); - - -function createFetchOptions(headers, withCredentials, abortController) { - return { - method: "GET", - headers, - signal: abortController.signal, - mode: "cors", - credentials: withCredentials ? "include" : "same-origin", - redirect: "follow" - }; -} -function createHeaders(httpHeaders) { - const headers = new Headers(); - for (const property in httpHeaders) { - const value = httpHeaders[property]; - if (value === undefined) { - continue; - } - headers.append(property, value); - } - return headers; -} -function getArrayBuffer(val) { - if (val instanceof Uint8Array) { - return val.buffer; - } - if (val instanceof ArrayBuffer) { - return val; - } - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`getArrayBuffer - unexpected data format: ${val}`); - return new Uint8Array(val).buffer; -} -class PDFFetchStream { - constructor(source) { - this.source = source; - this.isHttp = /^https?:/i.test(source.url); - this.httpHeaders = this.isHttp && source.httpHeaders || {}; - this._fullRequestReader = null; - this._rangeRequestReaders = []; - } - get _progressiveDataLength() { - return this._fullRequestReader?._loaded ?? 0; - } - getFullReader() { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(!this._fullRequestReader, "PDFFetchStream.getFullReader can only be called once."); - this._fullRequestReader = new PDFFetchStreamReader(this); - return this._fullRequestReader; - } - getRangeReader(begin, end) { - if (end <= this._progressiveDataLength) { - return null; - } - const reader = new PDFFetchStreamRangeReader(this, begin, end); - this._rangeRequestReaders.push(reader); - return reader; - } - cancelAllRequests(reason) { - this._fullRequestReader?.cancel(reason); - for (const reader of this._rangeRequestReaders.slice(0)) { - reader.cancel(reason); - } - } -} -class PDFFetchStreamReader { - constructor(stream) { - this._stream = stream; - this._reader = null; - this._loaded = 0; - this._filename = null; - const source = stream.source; - this._withCredentials = source.withCredentials || false; - this._contentLength = source.length; - this._headersCapability = Promise.withResolvers(); - this._disableRange = source.disableRange || false; - this._rangeChunkSize = source.rangeChunkSize; - if (!this._rangeChunkSize && !this._disableRange) { - this._disableRange = true; - } - this._abortController = new AbortController(); - this._isStreamingSupported = !source.disableStream; - this._isRangeSupported = !source.disableRange; - this._headers = createHeaders(this._stream.httpHeaders); - const url = source.url; - fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { - if (!(0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.validateResponseStatus)(response.status)) { - throw (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.createResponseStatusError)(response.status, url); - } - this._reader = response.body.getReader(); - this._headersCapability.resolve(); - const getResponseHeader = name => response.headers.get(name); - const { - allowRangeRequests, - suggestedLength - } = (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.validateRangeRequestCapabilities)({ - getResponseHeader, - isHttp: this._stream.isHttp, - rangeChunkSize: this._rangeChunkSize, - disableRange: this._disableRange - }); - this._isRangeSupported = allowRangeRequests; - this._contentLength = suggestedLength || this._contentLength; - this._filename = (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.extractFilenameFromHeader)(getResponseHeader); - if (!this._isStreamingSupported && this._isRangeSupported) { - this.cancel(new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AbortException("Streaming is disabled.")); - } - }).catch(this._headersCapability.reject); - this.onProgress = null; - } - get headersReady() { - return this._headersCapability.promise; - } - get filename() { - return this._filename; - } - get contentLength() { - return this._contentLength; - } - get isRangeSupported() { - return this._isRangeSupported; - } - get isStreamingSupported() { - return this._isStreamingSupported; - } - async read() { - await this._headersCapability.promise; - const { - value, - done - } = await this._reader.read(); - if (done) { - return { - value, - done - }; - } - this._loaded += value.byteLength; - this.onProgress?.({ - loaded: this._loaded, - total: this._contentLength - }); - return { - value: getArrayBuffer(value), - done: false - }; - } - cancel(reason) { - this._reader?.cancel(reason); - this._abortController.abort(); - } -} -class PDFFetchStreamRangeReader { - constructor(stream, begin, end) { - this._stream = stream; - this._reader = null; - this._loaded = 0; - const source = stream.source; - this._withCredentials = source.withCredentials || false; - this._readCapability = Promise.withResolvers(); - this._isStreamingSupported = !source.disableStream; - this._abortController = new AbortController(); - this._headers = createHeaders(this._stream.httpHeaders); - this._headers.append("Range", `bytes=${begin}-${end - 1}`); - const url = source.url; - fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { - if (!(0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.validateResponseStatus)(response.status)) { - throw (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.createResponseStatusError)(response.status, url); - } - this._readCapability.resolve(); - this._reader = response.body.getReader(); - }).catch(this._readCapability.reject); - this.onProgress = null; - } - get isStreamingSupported() { - return this._isStreamingSupported; - } - async read() { - await this._readCapability.promise; - const { - value, - done - } = await this._reader.read(); - if (done) { - return { - value, - done - }; - } - this._loaded += value.byteLength; - this.onProgress?.({ - loaded: this._loaded - }); - return { - value: getArrayBuffer(value), - done: false - }; - } - cancel(reason) { - this._reader?.cancel(reason); - this._abortController.abort(); - } -} - - -/***/ }), - -/***/ 10: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ FontFaceObject: () => (/* binding */ FontFaceObject), -/* harmony export */ FontLoader: () => (/* binding */ FontLoader) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); - -class FontLoader { - #systemFonts = new Set(); - constructor({ - ownerDocument = globalThis.document, - styleElement = null - }) { - this._document = ownerDocument; - this.nativeFontFaces = new Set(); - this.styleElement = null; - this.loadingRequests = []; - this.loadTestFontId = 0; - } - addNativeFontFace(nativeFontFace) { - this.nativeFontFaces.add(nativeFontFace); - this._document.fonts.add(nativeFontFace); - } - removeNativeFontFace(nativeFontFace) { - this.nativeFontFaces.delete(nativeFontFace); - this._document.fonts.delete(nativeFontFace); - } - insertRule(rule) { - if (!this.styleElement) { - this.styleElement = this._document.createElement("style"); - this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement); - } - const styleSheet = this.styleElement.sheet; - styleSheet.insertRule(rule, styleSheet.cssRules.length); - } - clear() { - for (const nativeFontFace of this.nativeFontFaces) { - this._document.fonts.delete(nativeFontFace); - } - this.nativeFontFaces.clear(); - this.#systemFonts.clear(); - if (this.styleElement) { - this.styleElement.remove(); - this.styleElement = null; - } - } - async loadSystemFont({ - systemFontInfo: info, - _inspectFont - }) { - if (!info || this.#systemFonts.has(info.loadedName)) { - return; - } - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(!this.disableFontFace, "loadSystemFont shouldn't be called when `disableFontFace` is set."); - if (this.isFontLoadingAPISupported) { - const { - loadedName, - src, - style - } = info; - const fontFace = new FontFace(loadedName, src, style); - this.addNativeFontFace(fontFace); - try { - await fontFace.load(); - this.#systemFonts.add(loadedName); - _inspectFont?.(info); - } catch { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`); - this.removeNativeFontFace(fontFace); - } - return; - } - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Not implemented: loadSystemFont without the Font Loading API."); - } - async bind(font) { - if (font.attached || font.missingFile && !font.systemFontInfo) { - return; - } - font.attached = true; - if (font.systemFontInfo) { - await this.loadSystemFont(font); - return; - } - if (this.isFontLoadingAPISupported) { - const nativeFontFace = font.createNativeFontFace(); - if (nativeFontFace) { - this.addNativeFontFace(nativeFontFace); - try { - await nativeFontFace.loaded; - } catch (ex) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`); - font.disableFontFace = true; - throw ex; - } - } - return; - } - const rule = font.createFontFaceRule(); - if (rule) { - this.insertRule(rule); - if (this.isSyncFontLoadingSupported) { - return; - } - await new Promise(resolve => { - const request = this._queueLoadingCallback(resolve); - this._prepareFontLoadEvent(font, request); - }); - } - } - get isFontLoadingAPISupported() { - const hasFonts = !!this._document?.fonts; - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "isFontLoadingAPISupported", hasFonts); - } - get isSyncFontLoadingSupported() { - let supported = false; - if (_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS) { - supported = true; - } else if (typeof navigator !== "undefined" && typeof navigator?.userAgent === "string" && /Mozilla\/5.0.*?rv:\d+.*? Gecko/.test(navigator.userAgent)) { - supported = true; - } - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "isSyncFontLoadingSupported", supported); - } - _queueLoadingCallback(callback) { - function completeRequest() { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(!request.done, "completeRequest() cannot be called twice."); - request.done = true; - while (loadingRequests.length > 0 && loadingRequests[0].done) { - const otherRequest = loadingRequests.shift(); - setTimeout(otherRequest.callback, 0); - } - } - const { - loadingRequests - } = this; - const request = { - done: false, - complete: completeRequest, - callback - }; - loadingRequests.push(request); - return request; - } - get _loadTestFont() { - const testFont = atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA=="); - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_loadTestFont", testFont); - } - _prepareFontLoadEvent(font, request) { - function int32(data, offset) { - return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; - } - function spliceString(s, offset, remove, insert) { - const chunk1 = s.substring(0, offset); - const chunk2 = s.substring(offset + remove); - return chunk1 + insert + chunk2; - } - let i, ii; - const canvas = this._document.createElement("canvas"); - canvas.width = 1; - canvas.height = 1; - const ctx = canvas.getContext("2d"); - let called = 0; - function isFontReady(name, callback) { - if (++called > 30) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)("Load test font never loaded."); - callback(); - return; - } - ctx.font = "30px " + name; - ctx.fillText(".", 0, 20); - const imageData = ctx.getImageData(0, 0, 1, 1); - if (imageData.data[3] > 0) { - callback(); - return; - } - setTimeout(isFontReady.bind(null, name, callback)); - } - const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`; - let data = this._loadTestFont; - const COMMENT_OFFSET = 976; - data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); - const CFF_CHECKSUM_OFFSET = 16; - const XXXX_VALUE = 0x58585858; - let checksum = int32(data, CFF_CHECKSUM_OFFSET); - for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { - checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; - } - if (i < loadTestFontId.length) { - checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0; - } - data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.string32)(checksum)); - const url = `url(data:font/opentype;base64,${btoa(data)});`; - const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`; - this.insertRule(rule); - const div = this._document.createElement("div"); - div.style.visibility = "hidden"; - div.style.width = div.style.height = "10px"; - div.style.position = "absolute"; - div.style.top = div.style.left = "0px"; - for (const name of [font.loadedName, loadTestFontId]) { - const span = this._document.createElement("span"); - span.textContent = "Hi"; - span.style.fontFamily = name; - div.append(span); - } - this._document.body.append(div); - isFontReady(loadTestFontId, () => { - div.remove(); - request.complete(); - }); - } -} -class FontFaceObject { - constructor(translatedData, { - disableFontFace = false, - ignoreErrors = false, - inspectFont = null - }) { - this.compiledGlyphs = Object.create(null); - for (const i in translatedData) { - this[i] = translatedData[i]; - } - this.disableFontFace = disableFontFace === true; - this.ignoreErrors = ignoreErrors === true; - this._inspectFont = inspectFont; - } - createNativeFontFace() { - if (!this.data || this.disableFontFace) { - return null; - } - let nativeFontFace; - if (!this.cssFontInfo) { - nativeFontFace = new FontFace(this.loadedName, this.data, {}); - } else { - const css = { - weight: this.cssFontInfo.fontWeight - }; - if (this.cssFontInfo.italicAngle) { - css.style = `oblique ${this.cssFontInfo.italicAngle}deg`; - } - nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css); - } - this._inspectFont?.(this); - return nativeFontFace; - } - createFontFaceRule() { - if (!this.data || this.disableFontFace) { - return null; - } - const data = (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.bytesToString)(this.data); - const url = `url(data:${this.mimetype};base64,${btoa(data)});`; - let rule; - if (!this.cssFontInfo) { - rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`; - } else { - let css = `font-weight: ${this.cssFontInfo.fontWeight};`; - if (this.cssFontInfo.italicAngle) { - css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`; - } - rule = `@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css}src:${url}}`; - } - this._inspectFont?.(this, url); - return rule; - } - getPathGenerator(objs, character) { - if (this.compiledGlyphs[character] !== undefined) { - return this.compiledGlyphs[character]; - } - let cmds; - try { - cmds = objs.get(this.loadedName + "_path_" + character); - } catch (ex) { - if (!this.ignoreErrors) { - throw ex; - } - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`getPathGenerator - ignoring character: "${ex}".`); - } - if (!Array.isArray(cmds) || cmds.length === 0) { - return this.compiledGlyphs[character] = function (c, size) {}; - } - const commands = []; - for (let i = 0, ii = cmds.length; i < ii;) { - switch (cmds[i++]) { - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FontRenderOps.BEZIER_CURVE_TO: - { - const [a, b, c, d, e, f] = cmds.slice(i, i + 6); - commands.push(ctx => ctx.bezierCurveTo(a, b, c, d, e, f)); - i += 6; - } - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FontRenderOps.MOVE_TO: - { - const [a, b] = cmds.slice(i, i + 2); - commands.push(ctx => ctx.moveTo(a, b)); - i += 2; - } - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FontRenderOps.LINE_TO: - { - const [a, b] = cmds.slice(i, i + 2); - commands.push(ctx => ctx.lineTo(a, b)); - i += 2; - } - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FontRenderOps.QUADRATIC_CURVE_TO: - { - const [a, b, c, d] = cmds.slice(i, i + 4); - commands.push(ctx => ctx.quadraticCurveTo(a, b, c, d)); - i += 4; - } - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FontRenderOps.RESTORE: - commands.push(ctx => ctx.restore()); - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FontRenderOps.SAVE: - commands.push(ctx => ctx.save()); - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FontRenderOps.SCALE: - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(commands.length === 2, "Scale command is only valid at the third position."); - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FontRenderOps.TRANSFORM: - { - const [a, b, c, d, e, f] = cmds.slice(i, i + 6); - commands.push(ctx => ctx.transform(a, b, c, d, e, f)); - i += 6; - } - break; - case _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FontRenderOps.TRANSLATE: - { - const [a, b] = cmds.slice(i, i + 2); - commands.push(ctx => ctx.translate(a, b)); - i += 2; - } - break; - } - } - return this.compiledGlyphs[character] = function glyphDrawer(ctx, size) { - commands[0](ctx); - commands[1](ctx); - ctx.scale(size, -size); - for (let i = 2, ii = commands.length; i < ii; i++) { - commands[i](ctx); - } - }; - } -} - - -/***/ }), - -/***/ 62: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Metadata: () => (/* binding */ Metadata) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); - -class Metadata { - #metadataMap; - #data; - constructor({ - parsedData, - rawData - }) { - this.#metadataMap = parsedData; - this.#data = rawData; - } - getRaw() { - return this.#data; - } - get(name) { - return this.#metadataMap.get(name) ?? null; - } - getAll() { - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.objectFromMap)(this.#metadataMap); - } - has(name) { - return this.#metadataMap.has(name); - } -} - - -/***/ }), - -/***/ 457: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFNetworkStream: () => (/* binding */ PDFNetworkStream) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _network_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(490); - - -const OK_RESPONSE = 200; -const PARTIAL_CONTENT_RESPONSE = 206; -function getArrayBuffer(xhr) { - const data = xhr.response; - if (typeof data !== "string") { - return data; - } - return (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.stringToBytes)(data).buffer; -} -class NetworkManager { - constructor(url, args = {}) { - this.url = url; - this.isHttp = /^https?:/i.test(url); - this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null); - this.withCredentials = args.withCredentials || false; - this.currXhrId = 0; - this.pendingRequests = Object.create(null); - } - requestRange(begin, end, listeners) { - const args = { - begin, - end - }; - for (const prop in listeners) { - args[prop] = listeners[prop]; - } - return this.request(args); - } - requestFull(listeners) { - return this.request(listeners); - } - request(args) { - const xhr = new XMLHttpRequest(); - const xhrId = this.currXhrId++; - const pendingRequest = this.pendingRequests[xhrId] = { - xhr - }; - xhr.open("GET", this.url); - xhr.withCredentials = this.withCredentials; - for (const property in this.httpHeaders) { - const value = this.httpHeaders[property]; - if (value === undefined) { - continue; - } - xhr.setRequestHeader(property, value); - } - if (this.isHttp && "begin" in args && "end" in args) { - xhr.setRequestHeader("Range", `bytes=${args.begin}-${args.end - 1}`); - pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; - } else { - pendingRequest.expectedStatus = OK_RESPONSE; - } - xhr.responseType = "arraybuffer"; - if (args.onError) { - xhr.onerror = function (evt) { - args.onError(xhr.status); - }; - } - xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); - xhr.onprogress = this.onProgress.bind(this, xhrId); - pendingRequest.onHeadersReceived = args.onHeadersReceived; - pendingRequest.onDone = args.onDone; - pendingRequest.onError = args.onError; - pendingRequest.onProgress = args.onProgress; - xhr.send(null); - return xhrId; - } - onProgress(xhrId, evt) { - const pendingRequest = this.pendingRequests[xhrId]; - if (!pendingRequest) { - return; - } - pendingRequest.onProgress?.(evt); - } - onStateChange(xhrId, evt) { - const pendingRequest = this.pendingRequests[xhrId]; - if (!pendingRequest) { - return; - } - const xhr = pendingRequest.xhr; - if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { - pendingRequest.onHeadersReceived(); - delete pendingRequest.onHeadersReceived; - } - if (xhr.readyState !== 4) { - return; - } - if (!(xhrId in this.pendingRequests)) { - return; - } - delete this.pendingRequests[xhrId]; - if (xhr.status === 0 && this.isHttp) { - pendingRequest.onError?.(xhr.status); - return; - } - const xhrStatus = xhr.status || OK_RESPONSE; - const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; - if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { - pendingRequest.onError?.(xhr.status); - return; - } - const chunk = getArrayBuffer(xhr); - if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { - const rangeHeader = xhr.getResponseHeader("Content-Range"); - const matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); - pendingRequest.onDone({ - begin: parseInt(matches[1], 10), - chunk - }); - } else if (chunk) { - pendingRequest.onDone({ - begin: 0, - chunk - }); - } else { - pendingRequest.onError?.(xhr.status); - } - } - getRequestXhr(xhrId) { - return this.pendingRequests[xhrId].xhr; - } - isPendingRequest(xhrId) { - return xhrId in this.pendingRequests; - } - abortRequest(xhrId) { - const xhr = this.pendingRequests[xhrId].xhr; - delete this.pendingRequests[xhrId]; - xhr.abort(); - } -} -class PDFNetworkStream { - constructor(source) { - this._source = source; - this._manager = new NetworkManager(source.url, { - httpHeaders: source.httpHeaders, - withCredentials: source.withCredentials - }); - this._rangeChunkSize = source.rangeChunkSize; - this._fullRequestReader = null; - this._rangeRequestReaders = []; - } - _onRangeRequestReaderClosed(reader) { - const i = this._rangeRequestReaders.indexOf(reader); - if (i >= 0) { - this._rangeRequestReaders.splice(i, 1); - } - } - getFullReader() { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(!this._fullRequestReader, "PDFNetworkStream.getFullReader can only be called once."); - this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); - return this._fullRequestReader; - } - getRangeReader(begin, end) { - const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); - reader.onClosed = this._onRangeRequestReaderClosed.bind(this); - this._rangeRequestReaders.push(reader); - return reader; - } - cancelAllRequests(reason) { - this._fullRequestReader?.cancel(reason); - for (const reader of this._rangeRequestReaders.slice(0)) { - reader.cancel(reason); - } - } -} -class PDFNetworkStreamFullRequestReader { - constructor(manager, source) { - this._manager = manager; - const args = { - onHeadersReceived: this._onHeadersReceived.bind(this), - onDone: this._onDone.bind(this), - onError: this._onError.bind(this), - onProgress: this._onProgress.bind(this) - }; - this._url = source.url; - this._fullRequestId = manager.requestFull(args); - this._headersReceivedCapability = Promise.withResolvers(); - this._disableRange = source.disableRange || false; - this._contentLength = source.length; - this._rangeChunkSize = source.rangeChunkSize; - if (!this._rangeChunkSize && !this._disableRange) { - this._disableRange = true; - } - this._isStreamingSupported = false; - this._isRangeSupported = false; - this._cachedChunks = []; - this._requests = []; - this._done = false; - this._storedError = undefined; - this._filename = null; - this.onProgress = null; - } - _onHeadersReceived() { - const fullRequestXhrId = this._fullRequestId; - const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); - const getResponseHeader = name => fullRequestXhr.getResponseHeader(name); - const { - allowRangeRequests, - suggestedLength - } = (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.validateRangeRequestCapabilities)({ - getResponseHeader, - isHttp: this._manager.isHttp, - rangeChunkSize: this._rangeChunkSize, - disableRange: this._disableRange - }); - if (allowRangeRequests) { - this._isRangeSupported = true; - } - this._contentLength = suggestedLength || this._contentLength; - this._filename = (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.extractFilenameFromHeader)(getResponseHeader); - if (this._isRangeSupported) { - this._manager.abortRequest(fullRequestXhrId); - } - this._headersReceivedCapability.resolve(); - } - _onDone(data) { - if (data) { - if (this._requests.length > 0) { - const requestCapability = this._requests.shift(); - requestCapability.resolve({ - value: data.chunk, - done: false - }); - } else { - this._cachedChunks.push(data.chunk); - } - } - this._done = true; - if (this._cachedChunks.length > 0) { - return; - } - for (const requestCapability of this._requests) { - requestCapability.resolve({ - value: undefined, - done: true - }); - } - this._requests.length = 0; - } - _onError(status) { - this._storedError = (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.createResponseStatusError)(status, this._url); - this._headersReceivedCapability.reject(this._storedError); - for (const requestCapability of this._requests) { - requestCapability.reject(this._storedError); - } - this._requests.length = 0; - this._cachedChunks.length = 0; - } - _onProgress(evt) { - this.onProgress?.({ - loaded: evt.loaded, - total: evt.lengthComputable ? evt.total : this._contentLength - }); - } - get filename() { - return this._filename; - } - get isRangeSupported() { - return this._isRangeSupported; - } - get isStreamingSupported() { - return this._isStreamingSupported; - } - get contentLength() { - return this._contentLength; - } - get headersReady() { - return this._headersReceivedCapability.promise; - } - async read() { - if (this._storedError) { - throw this._storedError; - } - if (this._cachedChunks.length > 0) { - const chunk = this._cachedChunks.shift(); - return { - value: chunk, - done: false - }; - } - if (this._done) { - return { - value: undefined, - done: true - }; - } - const requestCapability = Promise.withResolvers(); - this._requests.push(requestCapability); - return requestCapability.promise; - } - cancel(reason) { - this._done = true; - this._headersReceivedCapability.reject(reason); - for (const requestCapability of this._requests) { - requestCapability.resolve({ - value: undefined, - done: true - }); - } - this._requests.length = 0; - if (this._manager.isPendingRequest(this._fullRequestId)) { - this._manager.abortRequest(this._fullRequestId); - } - this._fullRequestReader = null; - } -} -class PDFNetworkStreamRangeRequestReader { - constructor(manager, begin, end) { - this._manager = manager; - const args = { - onDone: this._onDone.bind(this), - onError: this._onError.bind(this), - onProgress: this._onProgress.bind(this) - }; - this._url = manager.url; - this._requestId = manager.requestRange(begin, end, args); - this._requests = []; - this._queuedChunk = null; - this._done = false; - this._storedError = undefined; - this.onProgress = null; - this.onClosed = null; - } - _close() { - this.onClosed?.(this); - } - _onDone(data) { - const chunk = data.chunk; - if (this._requests.length > 0) { - const requestCapability = this._requests.shift(); - requestCapability.resolve({ - value: chunk, - done: false - }); - } else { - this._queuedChunk = chunk; - } - this._done = true; - for (const requestCapability of this._requests) { - requestCapability.resolve({ - value: undefined, - done: true - }); - } - this._requests.length = 0; - this._close(); - } - _onError(status) { - this._storedError = (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.createResponseStatusError)(status, this._url); - for (const requestCapability of this._requests) { - requestCapability.reject(this._storedError); - } - this._requests.length = 0; - this._queuedChunk = null; - } - _onProgress(evt) { - if (!this.isStreamingSupported) { - this.onProgress?.({ - loaded: evt.loaded - }); - } - } - get isStreamingSupported() { - return false; - } - async read() { - if (this._storedError) { - throw this._storedError; - } - if (this._queuedChunk !== null) { - const chunk = this._queuedChunk; - this._queuedChunk = null; - return { - value: chunk, - done: false - }; - } - if (this._done) { - return { - value: undefined, - done: true - }; - } - const requestCapability = Promise.withResolvers(); - this._requests.push(requestCapability); - return requestCapability.promise; - } - cancel(reason) { - this._done = true; - for (const requestCapability of this._requests) { - requestCapability.resolve({ - value: undefined, - done: true - }); - } - this._requests.length = 0; - if (this._manager.isPendingRequest(this._requestId)) { - this._manager.abortRequest(this._requestId); - } - this._close(); - } -} - - -/***/ }), - -/***/ 490: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - createResponseStatusError: () => (/* binding */ createResponseStatusError), - extractFilenameFromHeader: () => (/* binding */ extractFilenameFromHeader), - validateRangeRequestCapabilities: () => (/* binding */ validateRangeRequestCapabilities), - validateResponseStatus: () => (/* binding */ validateResponseStatus) -}); - -// EXTERNAL MODULE: ./src/shared/util.js -var util = __webpack_require__(292); -;// CONCATENATED MODULE: ./src/display/content_disposition.js - -function getFilenameFromContentDispositionHeader(contentDisposition) { - let needsEncodingFixup = true; - let tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition); - if (tmp) { - tmp = tmp[1]; - let filename = rfc2616unquote(tmp); - filename = unescape(filename); - filename = rfc5987decode(filename); - filename = rfc2047decode(filename); - return fixupEncoding(filename); - } - tmp = rfc2231getparam(contentDisposition); - if (tmp) { - const filename = rfc2047decode(tmp); - return fixupEncoding(filename); - } - tmp = toParamRegExp("filename", "i").exec(contentDisposition); - if (tmp) { - tmp = tmp[1]; - let filename = rfc2616unquote(tmp); - filename = rfc2047decode(filename); - return fixupEncoding(filename); - } - function toParamRegExp(attributePattern, flags) { - return new RegExp("(?:^|;)\\s*" + attributePattern + "\\s*=\\s*" + "(" + '[^";\\s][^;\\s]*' + "|" + '"(?:[^"\\\\]|\\\\"?)+"?' + ")", flags); - } - function textdecode(encoding, value) { - if (encoding) { - if (!/^[\x00-\xFF]+$/.test(value)) { - return value; - } - try { - const decoder = new TextDecoder(encoding, { - fatal: true - }); - const buffer = (0,util.stringToBytes)(value); - value = decoder.decode(buffer); - needsEncodingFixup = false; - } catch {} - } - return value; - } - function fixupEncoding(value) { - if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { - value = textdecode("utf-8", value); - if (needsEncodingFixup) { - value = textdecode("iso-8859-1", value); - } - } - return value; - } - function rfc2231getparam(contentDispositionStr) { - const matches = []; - let match; - const iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig"); - while ((match = iter.exec(contentDispositionStr)) !== null) { - let [, n, quot, part] = match; - n = parseInt(n, 10); - if (n in matches) { - if (n === 0) { - break; - } - continue; - } - matches[n] = [quot, part]; - } - const parts = []; - for (let n = 0; n < matches.length; ++n) { - if (!(n in matches)) { - break; - } - let [quot, part] = matches[n]; - part = rfc2616unquote(part); - if (quot) { - part = unescape(part); - if (n === 0) { - part = rfc5987decode(part); - } - } - parts.push(part); - } - return parts.join(""); - } - function rfc2616unquote(value) { - if (value.startsWith('"')) { - const parts = value.slice(1).split('\\"'); - for (let i = 0; i < parts.length; ++i) { - const quotindex = parts[i].indexOf('"'); - if (quotindex !== -1) { - parts[i] = parts[i].slice(0, quotindex); - parts.length = i + 1; - } - parts[i] = parts[i].replaceAll(/\\(.)/g, "$1"); - } - value = parts.join('"'); - } - return value; - } - function rfc5987decode(extvalue) { - const encodingend = extvalue.indexOf("'"); - if (encodingend === -1) { - return extvalue; - } - const encoding = extvalue.slice(0, encodingend); - const langvalue = extvalue.slice(encodingend + 1); - const value = langvalue.replace(/^[^']*'/, ""); - return textdecode(encoding, value); - } - function rfc2047decode(value) { - if (!value.startsWith("=?") || /[\x00-\x19\x80-\xff]/.test(value)) { - return value; - } - return value.replaceAll(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (matches, charset, encoding, text) { - if (encoding === "q" || encoding === "Q") { - text = text.replaceAll("_", " "); - text = text.replaceAll(/=([0-9a-fA-F]{2})/g, function (match, hex) { - return String.fromCharCode(parseInt(hex, 16)); - }); - return textdecode(charset, text); - } - try { - text = atob(text); - } catch {} - return textdecode(charset, text); - }); - } - return ""; -} - -// EXTERNAL MODULE: ./src/display/display_utils.js -var display_utils = __webpack_require__(419); -;// CONCATENATED MODULE: ./src/display/network_utils.js - - - -function validateRangeRequestCapabilities({ - getResponseHeader, - isHttp, - rangeChunkSize, - disableRange -}) { - const returnValues = { - allowRangeRequests: false, - suggestedLength: undefined - }; - const length = parseInt(getResponseHeader("Content-Length"), 10); - if (!Number.isInteger(length)) { - return returnValues; - } - returnValues.suggestedLength = length; - if (length <= 2 * rangeChunkSize) { - return returnValues; - } - if (disableRange || !isHttp) { - return returnValues; - } - if (getResponseHeader("Accept-Ranges") !== "bytes") { - return returnValues; - } - const contentEncoding = getResponseHeader("Content-Encoding") || "identity"; - if (contentEncoding !== "identity") { - return returnValues; - } - returnValues.allowRangeRequests = true; - return returnValues; -} -function extractFilenameFromHeader(getResponseHeader) { - const contentDisposition = getResponseHeader("Content-Disposition"); - if (contentDisposition) { - let filename = getFilenameFromContentDispositionHeader(contentDisposition); - if (filename.includes("%")) { - try { - filename = decodeURIComponent(filename); - } catch {} - } - if ((0,display_utils.isPdfFile)(filename)) { - return filename; - } - } - return null; -} -function createResponseStatusError(status, url) { - if (status === 404 || status === 0 && url.startsWith("file:")) { - return new util.MissingPDFException('Missing PDF "' + url + '".'); - } - return new util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF "${url}".`, status); -} -function validateResponseStatus(status) { - return status === 200 || status === 206; -} - - -/***/ }), - -/***/ 786: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFNodeStream: () => (/* binding */ PDFNodeStream) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _network_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(490); - - -let fs, http, https, url; -if (_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.isNodeJS) { - fs = await import( /*webpackIgnore: true*/"fs"); - http = await import( /*webpackIgnore: true*/"http"); - https = await import( /*webpackIgnore: true*/"https"); - url = await import( /*webpackIgnore: true*/"url"); -} -const fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; -function parseUrl(sourceUrl) { - const parsedUrl = url.parse(sourceUrl); - if (parsedUrl.protocol === "file:" || parsedUrl.host) { - return parsedUrl; - } - if (/^[a-z]:[/\\]/i.test(sourceUrl)) { - return url.parse(`file:///${sourceUrl}`); - } - if (!parsedUrl.host) { - parsedUrl.protocol = "file:"; - } - return parsedUrl; -} -class PDFNodeStream { - constructor(source) { - this.source = source; - this.url = parseUrl(source.url); - this.isHttp = this.url.protocol === "http:" || this.url.protocol === "https:"; - this.isFsUrl = this.url.protocol === "file:"; - this.httpHeaders = this.isHttp && source.httpHeaders || {}; - this._fullRequestReader = null; - this._rangeRequestReaders = []; - } - get _progressiveDataLength() { - return this._fullRequestReader?._loaded ?? 0; - } - getFullReader() { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once."); - this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); - return this._fullRequestReader; - } - getRangeReader(start, end) { - if (end <= this._progressiveDataLength) { - return null; - } - const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); - this._rangeRequestReaders.push(rangeReader); - return rangeReader; - } - cancelAllRequests(reason) { - this._fullRequestReader?.cancel(reason); - for (const reader of this._rangeRequestReaders.slice(0)) { - reader.cancel(reason); - } - } -} -class BaseFullReader { - constructor(stream) { - this._url = stream.url; - this._done = false; - this._storedError = null; - this.onProgress = null; - const source = stream.source; - this._contentLength = source.length; - this._loaded = 0; - this._filename = null; - this._disableRange = source.disableRange || false; - this._rangeChunkSize = source.rangeChunkSize; - if (!this._rangeChunkSize && !this._disableRange) { - this._disableRange = true; - } - this._isStreamingSupported = !source.disableStream; - this._isRangeSupported = !source.disableRange; - this._readableStream = null; - this._readCapability = Promise.withResolvers(); - this._headersCapability = Promise.withResolvers(); - } - get headersReady() { - return this._headersCapability.promise; - } - get filename() { - return this._filename; - } - get contentLength() { - return this._contentLength; - } - get isRangeSupported() { - return this._isRangeSupported; - } - get isStreamingSupported() { - return this._isStreamingSupported; - } - async read() { - await this._readCapability.promise; - if (this._done) { - return { - value: undefined, - done: true - }; - } - if (this._storedError) { - throw this._storedError; - } - const chunk = this._readableStream.read(); - if (chunk === null) { - this._readCapability = Promise.withResolvers(); - return this.read(); - } - this._loaded += chunk.length; - this.onProgress?.({ - loaded: this._loaded, - total: this._contentLength - }); - const buffer = new Uint8Array(chunk).buffer; - return { - value: buffer, - done: false - }; - } - cancel(reason) { - if (!this._readableStream) { - this._error(reason); - return; - } - this._readableStream.destroy(reason); - } - _error(reason) { - this._storedError = reason; - this._readCapability.resolve(); - } - _setReadableStream(readableStream) { - this._readableStream = readableStream; - readableStream.on("readable", () => { - this._readCapability.resolve(); - }); - readableStream.on("end", () => { - readableStream.destroy(); - this._done = true; - this._readCapability.resolve(); - }); - readableStream.on("error", reason => { - this._error(reason); - }); - if (!this._isStreamingSupported && this._isRangeSupported) { - this._error(new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AbortException("streaming is disabled")); - } - if (this._storedError) { - this._readableStream.destroy(this._storedError); - } - } -} -class BaseRangeReader { - constructor(stream) { - this._url = stream.url; - this._done = false; - this._storedError = null; - this.onProgress = null; - this._loaded = 0; - this._readableStream = null; - this._readCapability = Promise.withResolvers(); - const source = stream.source; - this._isStreamingSupported = !source.disableStream; - } - get isStreamingSupported() { - return this._isStreamingSupported; - } - async read() { - await this._readCapability.promise; - if (this._done) { - return { - value: undefined, - done: true - }; - } - if (this._storedError) { - throw this._storedError; - } - const chunk = this._readableStream.read(); - if (chunk === null) { - this._readCapability = Promise.withResolvers(); - return this.read(); - } - this._loaded += chunk.length; - this.onProgress?.({ - loaded: this._loaded - }); - const buffer = new Uint8Array(chunk).buffer; - return { - value: buffer, - done: false - }; - } - cancel(reason) { - if (!this._readableStream) { - this._error(reason); - return; - } - this._readableStream.destroy(reason); - } - _error(reason) { - this._storedError = reason; - this._readCapability.resolve(); - } - _setReadableStream(readableStream) { - this._readableStream = readableStream; - readableStream.on("readable", () => { - this._readCapability.resolve(); - }); - readableStream.on("end", () => { - readableStream.destroy(); - this._done = true; - this._readCapability.resolve(); - }); - readableStream.on("error", reason => { - this._error(reason); - }); - if (this._storedError) { - this._readableStream.destroy(this._storedError); - } - } -} -function createRequestOptions(parsedUrl, headers) { - return { - protocol: parsedUrl.protocol, - auth: parsedUrl.auth, - host: parsedUrl.hostname, - port: parsedUrl.port, - path: parsedUrl.path, - method: "GET", - headers - }; -} -class PDFNodeStreamFullReader extends BaseFullReader { - constructor(stream) { - super(stream); - const handleResponse = response => { - if (response.statusCode === 404) { - const error = new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.MissingPDFException(`Missing PDF "${this._url}".`); - this._storedError = error; - this._headersCapability.reject(error); - return; - } - this._headersCapability.resolve(); - this._setReadableStream(response); - const getResponseHeader = name => this._readableStream.headers[name.toLowerCase()]; - const { - allowRangeRequests, - suggestedLength - } = (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.validateRangeRequestCapabilities)({ - getResponseHeader, - isHttp: stream.isHttp, - rangeChunkSize: this._rangeChunkSize, - disableRange: this._disableRange - }); - this._isRangeSupported = allowRangeRequests; - this._contentLength = suggestedLength || this._contentLength; - this._filename = (0,_network_utils_js__WEBPACK_IMPORTED_MODULE_1__.extractFilenameFromHeader)(getResponseHeader); - }; - this._request = null; - if (this._url.protocol === "http:") { - this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); - } else { - this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); - } - this._request.on("error", reason => { - this._storedError = reason; - this._headersCapability.reject(reason); - }); - this._request.end(); - } -} -class PDFNodeStreamRangeReader extends BaseRangeReader { - constructor(stream, start, end) { - super(stream); - this._httpHeaders = {}; - for (const property in stream.httpHeaders) { - const value = stream.httpHeaders[property]; - if (value === undefined) { - continue; - } - this._httpHeaders[property] = value; - } - this._httpHeaders.Range = `bytes=${start}-${end - 1}`; - const handleResponse = response => { - if (response.statusCode === 404) { - const error = new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.MissingPDFException(`Missing PDF "${this._url}".`); - this._storedError = error; - return; - } - this._setReadableStream(response); - }; - this._request = null; - if (this._url.protocol === "http:") { - this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); - } else { - this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); - } - this._request.on("error", reason => { - this._storedError = reason; - }); - this._request.end(); - } -} -class PDFNodeStreamFsFullReader extends BaseFullReader { - constructor(stream) { - super(stream); - let path = decodeURIComponent(this._url.path); - if (fileUriRegex.test(this._url.href)) { - path = path.replace(/^\//, ""); - } - fs.promises.lstat(path).then(stat => { - this._contentLength = stat.size; - this._setReadableStream(fs.createReadStream(path)); - this._headersCapability.resolve(); - }, error => { - if (error.code === "ENOENT") { - error = new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.MissingPDFException(`Missing PDF "${path}".`); - } - this._storedError = error; - this._headersCapability.reject(error); - }); - } -} -class PDFNodeStreamFsRangeReader extends BaseRangeReader { - constructor(stream, start, end) { - super(stream); - let path = decodeURIComponent(this._url.path); - if (fileUriRegex.test(this._url.href)) { - path = path.replace(/^\//, ""); - } - this._setReadableStream(fs.createReadStream(path, { - start, - end: end - 1 - })); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }, 1); - -/***/ }), - -/***/ 573: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ NodeCMapReaderFactory: () => (/* binding */ NodeCMapReaderFactory), -/* harmony export */ NodeCanvasFactory: () => (/* binding */ NodeCanvasFactory), -/* harmony export */ NodeFilterFactory: () => (/* binding */ NodeFilterFactory), -/* harmony export */ NodeStandardFontDataFactory: () => (/* binding */ NodeStandardFontDataFactory) -/* harmony export */ }); -/* harmony import */ var _base_factory_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(583); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(292); - - -let fs, canvas, path2d; -if (_shared_util_js__WEBPACK_IMPORTED_MODULE_1__.isNodeJS) { - fs = await import( /*webpackIgnore: true*/"fs"); - try { - canvas = await import( /*webpackIgnore: true*/"canvas"); - } catch {} - try { - path2d = await import( /*webpackIgnore: true*/"path2d"); - } catch {} -} -const fetchData = function (url) { - return fs.promises.readFile(url).then(data => new Uint8Array(data)); -}; -class NodeFilterFactory extends _base_factory_js__WEBPACK_IMPORTED_MODULE_0__.BaseFilterFactory {} -class NodeCanvasFactory extends _base_factory_js__WEBPACK_IMPORTED_MODULE_0__.BaseCanvasFactory { - _createCanvas(width, height) { - return canvas.createCanvas(width, height); - } -} -class NodeCMapReaderFactory extends _base_factory_js__WEBPACK_IMPORTED_MODULE_0__.BaseCMapReaderFactory { - _fetchData(url, compressionType) { - return fetchData(url).then(data => ({ - cMapData: data, - compressionType - })); - } -} -class NodeStandardFontDataFactory extends _base_factory_js__WEBPACK_IMPORTED_MODULE_0__.BaseStandardFontDataFactory { - _fetchData(url) { - return fetchData(url); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }, 1); - -/***/ }), - -/***/ 626: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ OptionalContentConfig: () => (/* binding */ OptionalContentConfig) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _shared_murmurhash3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(651); - - -const INTERNAL = Symbol("INTERNAL"); -class OptionalContentGroup { - #isDisplay = false; - #isPrint = false; - #userSet = false; - #visible = true; - constructor(renderingIntent, { - name, - intent, - usage - }) { - this.#isDisplay = !!(renderingIntent & _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.DISPLAY); - this.#isPrint = !!(renderingIntent & _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.PRINT); - this.name = name; - this.intent = intent; - this.usage = usage; - } - get visible() { - if (this.#userSet) { - return this.#visible; - } - if (!this.#visible) { - return false; - } - const { - print, - view - } = this.usage; - if (this.#isDisplay) { - return view?.viewState !== "OFF"; - } else if (this.#isPrint) { - return print?.printState !== "OFF"; - } - return true; - } - _setVisible(internal, visible, userSet = false) { - if (internal !== INTERNAL) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)("Internal method `_setVisible` called."); - } - this.#userSet = userSet; - this.#visible = visible; - } -} -class OptionalContentConfig { - #cachedGetHash = null; - #groups = new Map(); - #initialHash = null; - #order = null; - constructor(data, renderingIntent = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.RenderingIntentFlag.DISPLAY) { - this.renderingIntent = renderingIntent; - this.name = null; - this.creator = null; - if (data === null) { - return; - } - this.name = data.name; - this.creator = data.creator; - this.#order = data.order; - for (const group of data.groups) { - this.#groups.set(group.id, new OptionalContentGroup(renderingIntent, group)); - } - if (data.baseState === "OFF") { - for (const group of this.#groups.values()) { - group._setVisible(INTERNAL, false); - } - } - for (const on of data.on) { - this.#groups.get(on)._setVisible(INTERNAL, true); - } - for (const off of data.off) { - this.#groups.get(off)._setVisible(INTERNAL, false); - } - this.#initialHash = this.getHash(); - } - #evaluateVisibilityExpression(array) { - const length = array.length; - if (length < 2) { - return true; - } - const operator = array[0]; - for (let i = 1; i < length; i++) { - const element = array[i]; - let state; - if (Array.isArray(element)) { - state = this.#evaluateVisibilityExpression(element); - } else if (this.#groups.has(element)) { - state = this.#groups.get(element).visible; - } else { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Optional content group not found: ${element}`); - return true; - } - switch (operator) { - case "And": - if (!state) { - return false; - } - break; - case "Or": - if (state) { - return true; - } - break; - case "Not": - return !state; - default: - return true; - } - } - return operator === "And"; - } - isVisible(group) { - if (this.#groups.size === 0) { - return true; - } - if (!group) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.info)("Optional content group not defined."); - return true; - } - if (group.type === "OCG") { - if (!this.#groups.has(group.id)) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Optional content group not found: ${group.id}`); - return true; - } - return this.#groups.get(group.id).visible; - } else if (group.type === "OCMD") { - if (group.expression) { - return this.#evaluateVisibilityExpression(group.expression); - } - if (!group.policy || group.policy === "AnyOn") { - for (const id of group.ids) { - if (!this.#groups.has(id)) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Optional content group not found: ${id}`); - return true; - } - if (this.#groups.get(id).visible) { - return true; - } - } - return false; - } else if (group.policy === "AllOn") { - for (const id of group.ids) { - if (!this.#groups.has(id)) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Optional content group not found: ${id}`); - return true; - } - if (!this.#groups.get(id).visible) { - return false; - } - } - return true; - } else if (group.policy === "AnyOff") { - for (const id of group.ids) { - if (!this.#groups.has(id)) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Optional content group not found: ${id}`); - return true; - } - if (!this.#groups.get(id).visible) { - return true; - } - } - return false; - } else if (group.policy === "AllOff") { - for (const id of group.ids) { - if (!this.#groups.has(id)) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Optional content group not found: ${id}`); - return true; - } - if (this.#groups.get(id).visible) { - return false; - } - } - return true; - } - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Unknown optional content policy ${group.policy}.`); - return true; - } - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Unknown group type ${group.type}.`); - return true; - } - setVisibility(id, visible = true) { - const group = this.#groups.get(id); - if (!group) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.warn)(`Optional content group not found: ${id}`); - return; - } - group._setVisible(INTERNAL, !!visible, true); - this.#cachedGetHash = null; - } - setOCGState({ - state, - preserveRB - }) { - let operator; - for (const elem of state) { - switch (elem) { - case "ON": - case "OFF": - case "Toggle": - operator = elem; - continue; - } - const group = this.#groups.get(elem); - if (!group) { - continue; - } - switch (operator) { - case "ON": - group._setVisible(INTERNAL, true); - break; - case "OFF": - group._setVisible(INTERNAL, false); - break; - case "Toggle": - group._setVisible(INTERNAL, !group.visible); - break; - } - } - this.#cachedGetHash = null; - } - get hasInitialVisibility() { - return this.#initialHash === null || this.getHash() === this.#initialHash; - } - getOrder() { - if (!this.#groups.size) { - return null; - } - if (this.#order) { - return this.#order.slice(); - } - return [...this.#groups.keys()]; - } - getGroups() { - return this.#groups.size > 0 ? (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.objectFromMap)(this.#groups) : null; - } - getGroup(id) { - return this.#groups.get(id) || null; - } - getHash() { - if (this.#cachedGetHash !== null) { - return this.#cachedGetHash; - } - const hash = new _shared_murmurhash3_js__WEBPACK_IMPORTED_MODULE_1__.MurmurHash3_64(); - for (const [id, group] of this.#groups) { - hash.update(`${id}:${group.visible}`); - } - return this.#cachedGetHash = hash.hexdigest(); - } -} - - -/***/ }), - -/***/ 814: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ cleanupTextLayer: () => (/* binding */ cleanupTextLayer), -/* harmony export */ renderTextLayer: () => (/* binding */ renderTextLayer), -/* harmony export */ updateTextLayer: () => (/* binding */ updateTextLayer) -/* harmony export */ }); -/* unused harmony export TextLayerRenderTask */ -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _display_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(419); - - -const MAX_TEXT_DIVS_TO_RENDER = 100000; -const DEFAULT_FONT_SIZE = 30; -const DEFAULT_FONT_ASCENT = 0.8; -const ascentCache = new Map(); -let _canvasContext = null; -function getCtx() { - if (!_canvasContext) { - const canvas = document.createElement("canvas"); - canvas.className = "hiddenCanvasElement"; - document.body.append(canvas); - _canvasContext = canvas.getContext("2d", { - alpha: false - }); - } - return _canvasContext; -} -function cleanupTextLayer() { - _canvasContext?.canvas.remove(); - _canvasContext = null; -} -function getAscent(fontFamily) { - const cachedAscent = ascentCache.get(fontFamily); - if (cachedAscent) { - return cachedAscent; - } - const ctx = getCtx(); - const savedFont = ctx.font; - ctx.canvas.width = ctx.canvas.height = DEFAULT_FONT_SIZE; - ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`; - const metrics = ctx.measureText(""); - let ascent = metrics.fontBoundingBoxAscent; - let descent = Math.abs(metrics.fontBoundingBoxDescent); - if (ascent) { - const ratio = ascent / (ascent + descent); - ascentCache.set(fontFamily, ratio); - ctx.canvas.width = ctx.canvas.height = 0; - ctx.font = savedFont; - return ratio; - } - ctx.strokeStyle = "red"; - ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE); - ctx.strokeText("g", 0, 0); - let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; - descent = 0; - for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) { - if (pixels[i] > 0) { - descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE); - break; - } - } - ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE); - ctx.strokeText("A", 0, DEFAULT_FONT_SIZE); - pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; - ascent = 0; - for (let i = 0, ii = pixels.length; i < ii; i += 4) { - if (pixels[i] > 0) { - ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE); - break; - } - } - ctx.canvas.width = ctx.canvas.height = 0; - ctx.font = savedFont; - if (ascent) { - const ratio = ascent / (ascent + descent); - ascentCache.set(fontFamily, ratio); - return ratio; - } - ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT); - return DEFAULT_FONT_ASCENT; -} -function appendText(task, geom, styles) { - const textDiv = document.createElement("span"); - const textDivProperties = { - angle: 0, - canvasWidth: 0, - hasText: geom.str !== "", - hasEOL: geom.hasEOL, - fontSize: 0 - }; - task._textDivs.push(textDiv); - const tx = _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.Util.transform(task._transform, geom.transform); - let angle = Math.atan2(tx[1], tx[0]); - const style = styles[geom.fontName]; - if (style.vertical) { - angle += Math.PI / 2; - } - const fontFamily = task._fontInspectorEnabled && style.fontSubstitution || style.fontFamily; - const fontHeight = Math.hypot(tx[2], tx[3]); - const fontAscent = fontHeight * getAscent(fontFamily); - let left, top; - if (angle === 0) { - left = tx[4]; - top = tx[5] - fontAscent; - } else { - left = tx[4] + fontAscent * Math.sin(angle); - top = tx[5] - fontAscent * Math.cos(angle); - } - const scaleFactorStr = "calc(var(--scale-factor)*"; - const divStyle = textDiv.style; - if (task._container === task._rootContainer) { - divStyle.left = `${(100 * left / task._pageWidth).toFixed(2)}%`; - divStyle.top = `${(100 * top / task._pageHeight).toFixed(2)}%`; - } else { - divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`; - divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`; - } - divStyle.fontSize = `${scaleFactorStr}${fontHeight.toFixed(2)}px)`; - divStyle.fontFamily = fontFamily; - textDivProperties.fontSize = fontHeight; - textDiv.setAttribute("role", "presentation"); - textDiv.textContent = geom.str; - textDiv.dir = geom.dir; - if (task._fontInspectorEnabled) { - textDiv.dataset.fontName = style.fontSubstitutionLoadedName || geom.fontName; - } - if (angle !== 0) { - textDivProperties.angle = angle * (180 / Math.PI); - } - let shouldScaleText = false; - if (geom.str.length > 1) { - shouldScaleText = true; - } else if (geom.str !== " " && geom.transform[0] !== geom.transform[3]) { - const absScaleX = Math.abs(geom.transform[0]), - absScaleY = Math.abs(geom.transform[3]); - if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) { - shouldScaleText = true; - } - } - if (shouldScaleText) { - textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width; - } - task._textDivProperties.set(textDiv, textDivProperties); - if (task._isReadableStream) { - task._layoutText(textDiv); - } -} -function layout(params) { - const { - div, - scale, - properties, - ctx, - prevFontSize, - prevFontFamily - } = params; - const { - style - } = div; - let transform = ""; - if (properties.canvasWidth !== 0 && properties.hasText) { - const { - fontFamily - } = style; - const { - canvasWidth, - fontSize - } = properties; - if (prevFontSize !== fontSize || prevFontFamily !== fontFamily) { - ctx.font = `${fontSize * scale}px ${fontFamily}`; - params.prevFontSize = fontSize; - params.prevFontFamily = fontFamily; - } - const { - width - } = ctx.measureText(div.textContent); - if (width > 0) { - transform = `scaleX(${canvasWidth * scale / width})`; - } - } - if (properties.angle !== 0) { - transform = `rotate(${properties.angle}deg) ${transform}`; - } - if (transform.length > 0) { - style.transform = transform; - } -} -function render(task) { - if (task._canceled) { - return; - } - const textDivs = task._textDivs; - const capability = task._capability; - const textDivsLength = textDivs.length; - if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { - capability.resolve(); - return; - } - if (!task._isReadableStream) { - for (const textDiv of textDivs) { - task._layoutText(textDiv); - } - } - capability.resolve(); -} -class TextLayerRenderTask { - constructor({ - textContentSource, - container, - viewport, - textDivs, - textDivProperties, - textContentItemsStr - }) { - this._textContentSource = textContentSource; - this._isReadableStream = textContentSource instanceof ReadableStream; - this._container = this._rootContainer = container; - this._textDivs = textDivs || []; - this._textContentItemsStr = textContentItemsStr || []; - this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled; - this._reader = null; - this._textDivProperties = textDivProperties || new WeakMap(); - this._canceled = false; - this._capability = Promise.withResolvers(); - this._layoutTextParams = { - prevFontSize: null, - prevFontFamily: null, - div: null, - scale: viewport.scale * (globalThis.devicePixelRatio || 1), - properties: null, - ctx: getCtx() - }; - const { - pageWidth, - pageHeight, - pageX, - pageY - } = viewport.rawDims; - this._transform = [1, 0, 0, -1, -pageX, pageY + pageHeight]; - this._pageWidth = pageWidth; - this._pageHeight = pageHeight; - (0,_display_utils_js__WEBPACK_IMPORTED_MODULE_1__.setLayerDimensions)(container, viewport); - this._capability.promise.finally(() => { - this._layoutTextParams = null; - }).catch(() => {}); - } - get promise() { - return this._capability.promise; - } - cancel() { - this._canceled = true; - if (this._reader) { - this._reader.cancel(new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AbortException("TextLayer task cancelled.")).catch(() => {}); - this._reader = null; - } - this._capability.reject(new _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AbortException("TextLayer task cancelled.")); - } - _processItems(items, styleCache) { - for (const item of items) { - if (item.str === undefined) { - if (item.type === "beginMarkedContentProps" || item.type === "beginMarkedContent") { - const parent = this._container; - this._container = document.createElement("span"); - this._container.classList.add("markedContent"); - if (item.id !== null) { - this._container.setAttribute("id", `${item.id}`); - } - parent.append(this._container); - } else if (item.type === "endMarkedContent") { - this._container = this._container.parentNode; - } - continue; - } - this._textContentItemsStr.push(item.str); - appendText(this, item, styleCache); - } - } - _layoutText(textDiv) { - const textDivProperties = this._layoutTextParams.properties = this._textDivProperties.get(textDiv); - this._layoutTextParams.div = textDiv; - layout(this._layoutTextParams); - if (textDivProperties.hasText) { - this._container.append(textDiv); - } - if (textDivProperties.hasEOL) { - const br = document.createElement("br"); - br.setAttribute("role", "presentation"); - this._container.append(br); - } - } - _render() { - const { - promise, - resolve, - reject - } = Promise.withResolvers(); - let styleCache = Object.create(null); - if (this._isReadableStream) { - const pump = () => { - this._reader.read().then(({ - value, - done - }) => { - if (done) { - resolve(); - return; - } - Object.assign(styleCache, value.styles); - this._processItems(value.items, styleCache); - pump(); - }, reject); - }; - this._reader = this._textContentSource.getReader(); - pump(); - } else if (this._textContentSource) { - const { - items, - styles - } = this._textContentSource; - this._processItems(items, styles); - resolve(); - } else { - throw new Error('No "textContentSource" parameter specified.'); - } - promise.then(() => { - styleCache = null; - render(this); - }, this._capability.reject); - } -} -function renderTextLayer(params) { - const task = new TextLayerRenderTask(params); - task._render(); - return task; -} -function updateTextLayer({ - container, - viewport, - textDivs, - textDivProperties, - mustRotate = true, - mustRescale = true -}) { - if (mustRotate) { - (0,_display_utils_js__WEBPACK_IMPORTED_MODULE_1__.setLayerDimensions)(container, { - rotation: viewport.rotation - }); - } - if (mustRescale) { - const ctx = getCtx(); - const scale = viewport.scale * (globalThis.devicePixelRatio || 1); - const params = { - prevFontSize: null, - prevFontFamily: null, - div: null, - scale, - properties: null, - ctx - }; - for (const div of textDivs) { - params.properties = textDivProperties.get(div); - params.div = div; - layout(params); - } - } -} - - -/***/ }), - -/***/ 585: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFDataTransportStream: () => (/* binding */ PDFDataTransportStream) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _display_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(419); - - -class PDFDataTransportStream { - constructor(pdfDataRangeTransport, { - disableRange = false, - disableStream = false - }) { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.'); - const { - length, - initialData, - progressiveDone, - contentDispositionFilename - } = pdfDataRangeTransport; - this._queuedChunks = []; - this._progressiveDone = progressiveDone; - this._contentDispositionFilename = contentDispositionFilename; - if (initialData?.length > 0) { - const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer; - this._queuedChunks.push(buffer); - } - this._pdfDataRangeTransport = pdfDataRangeTransport; - this._isStreamingSupported = !disableStream; - this._isRangeSupported = !disableRange; - this._contentLength = length; - this._fullRequestReader = null; - this._rangeReaders = []; - pdfDataRangeTransport.addRangeListener((begin, chunk) => { - this._onReceiveData({ - begin, - chunk - }); - }); - pdfDataRangeTransport.addProgressListener((loaded, total) => { - this._onProgress({ - loaded, - total - }); - }); - pdfDataRangeTransport.addProgressiveReadListener(chunk => { - this._onReceiveData({ - chunk - }); - }); - pdfDataRangeTransport.addProgressiveDoneListener(() => { - this._onProgressiveDone(); - }); - pdfDataRangeTransport.transportReady(); - } - _onReceiveData({ - begin, - chunk - }) { - const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer; - if (begin === undefined) { - if (this._fullRequestReader) { - this._fullRequestReader._enqueue(buffer); - } else { - this._queuedChunks.push(buffer); - } - } else { - const found = this._rangeReaders.some(function (rangeReader) { - if (rangeReader._begin !== begin) { - return false; - } - rangeReader._enqueue(buffer); - return true; - }); - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(found, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."); - } - } - get _progressiveDataLength() { - return this._fullRequestReader?._loaded ?? 0; - } - _onProgress(evt) { - if (evt.total === undefined) { - this._rangeReaders[0]?.onProgress?.({ - loaded: evt.loaded - }); - } else { - this._fullRequestReader?.onProgress?.({ - loaded: evt.loaded, - total: evt.total - }); - } - } - _onProgressiveDone() { - this._fullRequestReader?.progressiveDone(); - this._progressiveDone = true; - } - _removeRangeReader(reader) { - const i = this._rangeReaders.indexOf(reader); - if (i >= 0) { - this._rangeReaders.splice(i, 1); - } - } - getFullReader() { - (0,_shared_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(!this._fullRequestReader, "PDFDataTransportStream.getFullReader can only be called once."); - const queuedChunks = this._queuedChunks; - this._queuedChunks = null; - return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename); - } - getRangeReader(begin, end) { - if (end <= this._progressiveDataLength) { - return null; - } - const reader = new PDFDataTransportStreamRangeReader(this, begin, end); - this._pdfDataRangeTransport.requestDataRange(begin, end); - this._rangeReaders.push(reader); - return reader; - } - cancelAllRequests(reason) { - this._fullRequestReader?.cancel(reason); - for (const reader of this._rangeReaders.slice(0)) { - reader.cancel(reason); - } - this._pdfDataRangeTransport.abort(); - } -} -class PDFDataTransportStreamReader { - constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) { - this._stream = stream; - this._done = progressiveDone || false; - this._filename = (0,_display_utils_js__WEBPACK_IMPORTED_MODULE_1__.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null; - this._queuedChunks = queuedChunks || []; - this._loaded = 0; - for (const chunk of this._queuedChunks) { - this._loaded += chunk.byteLength; - } - this._requests = []; - this._headersReady = Promise.resolve(); - stream._fullRequestReader = this; - this.onProgress = null; - } - _enqueue(chunk) { - if (this._done) { - return; - } - if (this._requests.length > 0) { - const requestCapability = this._requests.shift(); - requestCapability.resolve({ - value: chunk, - done: false - }); - } else { - this._queuedChunks.push(chunk); - } - this._loaded += chunk.byteLength; - } - get headersReady() { - return this._headersReady; - } - get filename() { - return this._filename; - } - get isRangeSupported() { - return this._stream._isRangeSupported; - } - get isStreamingSupported() { - return this._stream._isStreamingSupported; - } - get contentLength() { - return this._stream._contentLength; - } - async read() { - if (this._queuedChunks.length > 0) { - const chunk = this._queuedChunks.shift(); - return { - value: chunk, - done: false - }; - } - if (this._done) { - return { - value: undefined, - done: true - }; - } - const requestCapability = Promise.withResolvers(); - this._requests.push(requestCapability); - return requestCapability.promise; - } - cancel(reason) { - this._done = true; - for (const requestCapability of this._requests) { - requestCapability.resolve({ - value: undefined, - done: true - }); - } - this._requests.length = 0; - } - progressiveDone() { - if (this._done) { - return; - } - this._done = true; - } -} -class PDFDataTransportStreamRangeReader { - constructor(stream, begin, end) { - this._stream = stream; - this._begin = begin; - this._end = end; - this._queuedChunk = null; - this._requests = []; - this._done = false; - this.onProgress = null; - } - _enqueue(chunk) { - if (this._done) { - return; - } - if (this._requests.length === 0) { - this._queuedChunk = chunk; - } else { - const requestsCapability = this._requests.shift(); - requestsCapability.resolve({ - value: chunk, - done: false - }); - for (const requestCapability of this._requests) { - requestCapability.resolve({ - value: undefined, - done: true - }); - } - this._requests.length = 0; - } - this._done = true; - this._stream._removeRangeReader(this); - } - get isStreamingSupported() { - return false; - } - async read() { - if (this._queuedChunk) { - const chunk = this._queuedChunk; - this._queuedChunk = null; - return { - value: chunk, - done: false - }; - } - if (this._done) { - return { - value: undefined, - done: true - }; - } - const requestCapability = Promise.withResolvers(); - this._requests.push(requestCapability); - return requestCapability.promise; - } - cancel(reason) { - this._done = true; - for (const requestCapability of this._requests) { - requestCapability.resolve({ - value: undefined, - done: true - }); - } - this._requests.length = 0; - this._stream._removeRangeReader(this); - } -} - - -/***/ }), - -/***/ 164: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ GlobalWorkerOptions: () => (/* binding */ GlobalWorkerOptions) -/* harmony export */ }); -class GlobalWorkerOptions { - static #port = null; - static #src = ""; - static get workerPort() { - return this.#port; - } - static set workerPort(val) { - if (!(typeof Worker !== "undefined" && val instanceof Worker) && val !== null) { - throw new Error("Invalid `workerPort` type."); - } - this.#port = val; - } - static get workerSrc() { - return this.#src; - } - static set workerSrc(val) { - if (typeof val !== "string") { - throw new Error("Invalid `workerSrc` type."); - } - this.#src = val; - } -} - - -/***/ }), - -/***/ 284: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ XfaLayer: () => (/* binding */ XfaLayer) -/* harmony export */ }); -/* harmony import */ var _xfa_text_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50); - -class XfaLayer { - static setupStorage(html, id, element, storage, intent) { - const storedData = storage.getValue(id, { - value: null - }); - switch (element.name) { - case "textarea": - if (storedData.value !== null) { - html.textContent = storedData.value; - } - if (intent === "print") { - break; - } - html.addEventListener("input", event => { - storage.setValue(id, { - value: event.target.value - }); - }); - break; - case "input": - if (element.attributes.type === "radio" || element.attributes.type === "checkbox") { - if (storedData.value === element.attributes.xfaOn) { - html.setAttribute("checked", true); - } else if (storedData.value === element.attributes.xfaOff) { - html.removeAttribute("checked"); - } - if (intent === "print") { - break; - } - html.addEventListener("change", event => { - storage.setValue(id, { - value: event.target.checked ? event.target.getAttribute("xfaOn") : event.target.getAttribute("xfaOff") - }); - }); - } else { - if (storedData.value !== null) { - html.setAttribute("value", storedData.value); - } - if (intent === "print") { - break; - } - html.addEventListener("input", event => { - storage.setValue(id, { - value: event.target.value - }); - }); - } - break; - case "select": - if (storedData.value !== null) { - html.setAttribute("value", storedData.value); - for (const option of element.children) { - if (option.attributes.value === storedData.value) { - option.attributes.selected = true; - } else if (option.attributes.hasOwnProperty("selected")) { - delete option.attributes.selected; - } - } - } - html.addEventListener("input", event => { - const options = event.target.options; - const value = options.selectedIndex === -1 ? "" : options[options.selectedIndex].value; - storage.setValue(id, { - value - }); - }); - break; - } - } - static setAttributes({ - html, - element, - storage = null, - intent, - linkService - }) { - const { - attributes - } = element; - const isHTMLAnchorElement = html instanceof HTMLAnchorElement; - if (attributes.type === "radio") { - attributes.name = `${attributes.name}-${intent}`; - } - for (const [key, value] of Object.entries(attributes)) { - if (value === null || value === undefined) { - continue; - } - switch (key) { - case "class": - if (value.length) { - html.setAttribute(key, value.join(" ")); - } - break; - case "dataId": - break; - case "id": - html.setAttribute("data-element-id", value); - break; - case "style": - Object.assign(html.style, value); - break; - case "textContent": - html.textContent = value; - break; - default: - if (!isHTMLAnchorElement || key !== "href" && key !== "newWindow") { - html.setAttribute(key, value); - } - } - } - if (isHTMLAnchorElement) { - linkService.addLinkAttributes(html, attributes.href, attributes.newWindow); - } - if (storage && attributes.dataId) { - this.setupStorage(html, attributes.dataId, element, storage); - } - } - static render(parameters) { - const storage = parameters.annotationStorage; - const linkService = parameters.linkService; - const root = parameters.xfaHtml; - const intent = parameters.intent || "display"; - const rootHtml = document.createElement(root.name); - if (root.attributes) { - this.setAttributes({ - html: rootHtml, - element: root, - intent, - linkService - }); - } - const isNotForRichText = intent !== "richText"; - const rootDiv = parameters.div; - rootDiv.append(rootHtml); - if (parameters.viewport) { - const transform = `matrix(${parameters.viewport.transform.join(",")})`; - rootDiv.style.transform = transform; - } - if (isNotForRichText) { - rootDiv.setAttribute("class", "xfaLayer xfaFont"); - } - const textDivs = []; - if (root.children.length === 0) { - if (root.value) { - const node = document.createTextNode(root.value); - rootHtml.append(node); - if (isNotForRichText && _xfa_text_js__WEBPACK_IMPORTED_MODULE_0__.XfaText.shouldBuildText(root.name)) { - textDivs.push(node); - } - } - return { - textDivs - }; - } - const stack = [[root, -1, rootHtml]]; - while (stack.length > 0) { - const [parent, i, html] = stack.at(-1); - if (i + 1 === parent.children.length) { - stack.pop(); - continue; - } - const child = parent.children[++stack.at(-1)[1]]; - if (child === null) { - continue; - } - const { - name - } = child; - if (name === "#text") { - const node = document.createTextNode(child.value); - textDivs.push(node); - html.append(node); - continue; - } - const childHtml = child?.attributes?.xmlns ? document.createElementNS(child.attributes.xmlns, name) : document.createElement(name); - html.append(childHtml); - if (child.attributes) { - this.setAttributes({ - html: childHtml, - element: child, - storage, - intent, - linkService - }); - } - if (child.children?.length > 0) { - stack.push([child, -1, childHtml]); - } else if (child.value) { - const node = document.createTextNode(child.value); - if (isNotForRichText && _xfa_text_js__WEBPACK_IMPORTED_MODULE_0__.XfaText.shouldBuildText(name)) { - textDivs.push(node); - } - childHtml.append(node); - } - } - for (const el of rootDiv.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea")) { - el.setAttribute("readOnly", true); - } - return { - textDivs - }; - } - static update(parameters) { - const transform = `matrix(${parameters.viewport.transform.join(",")})`; - parameters.div.style.transform = transform; - parameters.div.hidden = false; - } -} - - -/***/ }), - -/***/ 50: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ XfaText: () => (/* binding */ XfaText) -/* harmony export */ }); -class XfaText { - static textContent(xfa) { - const items = []; - const output = { - items, - styles: Object.create(null) - }; - function walk(node) { - if (!node) { - return; - } - let str = null; - const name = node.name; - if (name === "#text") { - str = node.value; - } else if (!XfaText.shouldBuildText(name)) { - return; - } else if (node?.attributes?.textContent) { - str = node.attributes.textContent; - } else if (node.value) { - str = node.value; - } - if (str !== null) { - items.push({ - str - }); - } - if (!node.children) { - return; - } - for (const child of node.children) { - walk(child); - } - } - walk(xfa); - return output; - } - static shouldBuildText(name) { - return !(name === "textarea" || name === "input" || name === "option" || name === "select"); - } -} - - -/***/ }), - -/***/ 228: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AbortException: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AbortException), -/* harmony export */ AnnotationEditorLayer: () => (/* reexport safe */ _display_editor_annotation_editor_layer_js__WEBPACK_IMPORTED_MODULE_4__.AnnotationEditorLayer), -/* harmony export */ AnnotationEditorParamsType: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType), -/* harmony export */ AnnotationEditorType: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType), -/* harmony export */ AnnotationEditorUIManager: () => (/* reexport safe */ _display_editor_tools_js__WEBPACK_IMPORTED_MODULE_5__.AnnotationEditorUIManager), -/* harmony export */ AnnotationLayer: () => (/* reexport safe */ _display_annotation_layer_js__WEBPACK_IMPORTED_MODULE_6__.AnnotationLayer), -/* harmony export */ AnnotationMode: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode), -/* harmony export */ CMapCompressionType: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.CMapCompressionType), -/* harmony export */ ColorPicker: () => (/* reexport safe */ _display_editor_color_picker_js__WEBPACK_IMPORTED_MODULE_7__.ColorPicker), -/* harmony export */ DOMSVGFactory: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.DOMSVGFactory), -/* harmony export */ DrawLayer: () => (/* reexport safe */ _display_draw_layer_js__WEBPACK_IMPORTED_MODULE_8__.DrawLayer), -/* harmony export */ FeatureTest: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.FeatureTest), -/* harmony export */ GlobalWorkerOptions: () => (/* reexport safe */ _display_worker_options_js__WEBPACK_IMPORTED_MODULE_10__.GlobalWorkerOptions), -/* harmony export */ ImageKind: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.ImageKind), -/* harmony export */ InvalidPDFException: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.InvalidPDFException), -/* harmony export */ MissingPDFException: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.MissingPDFException), -/* harmony export */ OPS: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.OPS), -/* harmony export */ Outliner: () => (/* reexport safe */ _display_editor_outliner_js__WEBPACK_IMPORTED_MODULE_9__.Outliner), -/* harmony export */ PDFDataRangeTransport: () => (/* reexport safe */ _display_api_js__WEBPACK_IMPORTED_MODULE_1__.PDFDataRangeTransport), -/* harmony export */ PDFDateString: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.PDFDateString), -/* harmony export */ PDFWorker: () => (/* reexport safe */ _display_api_js__WEBPACK_IMPORTED_MODULE_1__.PDFWorker), -/* harmony export */ PasswordResponses: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.PasswordResponses), -/* harmony export */ PermissionFlag: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.PermissionFlag), -/* harmony export */ PixelsPerInch: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.PixelsPerInch), -/* harmony export */ RenderingCancelledException: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.RenderingCancelledException), -/* harmony export */ UnexpectedResponseException: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseException), -/* harmony export */ Util: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.Util), -/* harmony export */ VerbosityLevel: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.VerbosityLevel), -/* harmony export */ XfaLayer: () => (/* reexport safe */ _display_xfa_layer_js__WEBPACK_IMPORTED_MODULE_11__.XfaLayer), -/* harmony export */ build: () => (/* reexport safe */ _display_api_js__WEBPACK_IMPORTED_MODULE_1__.build), -/* harmony export */ createValidAbsoluteUrl: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.createValidAbsoluteUrl), -/* harmony export */ fetchData: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.fetchData), -/* harmony export */ getDocument: () => (/* reexport safe */ _display_api_js__WEBPACK_IMPORTED_MODULE_1__.getDocument), -/* harmony export */ getFilenameFromUrl: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.getFilenameFromUrl), -/* harmony export */ getPdfFilenameFromUrl: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.getPdfFilenameFromUrl), -/* harmony export */ getXfaPageViewport: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.getXfaPageViewport), -/* harmony export */ isDataScheme: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.isDataScheme), -/* harmony export */ isPdfFile: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.isPdfFile), -/* harmony export */ noContextMenu: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.noContextMenu), -/* harmony export */ normalizeUnicode: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.normalizeUnicode), -/* harmony export */ renderTextLayer: () => (/* reexport safe */ _display_text_layer_js__WEBPACK_IMPORTED_MODULE_3__.renderTextLayer), -/* harmony export */ setLayerDimensions: () => (/* reexport safe */ _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__.setLayerDimensions), -/* harmony export */ shadow: () => (/* reexport safe */ _shared_util_js__WEBPACK_IMPORTED_MODULE_0__.shadow), -/* harmony export */ updateTextLayer: () => (/* reexport safe */ _display_text_layer_js__WEBPACK_IMPORTED_MODULE_3__.updateTextLayer), -/* harmony export */ version: () => (/* reexport safe */ _display_api_js__WEBPACK_IMPORTED_MODULE_1__.version) -/* harmony export */ }); -/* harmony import */ var _shared_util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); -/* harmony import */ var _display_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(831); -/* harmony import */ var _display_display_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(419); -/* harmony import */ var _display_text_layer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(814); -/* harmony import */ var _display_editor_annotation_editor_layer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(731); -/* harmony import */ var _display_editor_tools_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(830); -/* harmony import */ var _display_annotation_layer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(976); -/* harmony import */ var _display_editor_color_picker_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(259); -/* harmony import */ var _display_draw_layer_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(47); -/* harmony import */ var _display_worker_options_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(164); -/* harmony import */ var _display_editor_outliner_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(61); -/* harmony import */ var _display_xfa_layer_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(284); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_display_api_js__WEBPACK_IMPORTED_MODULE_1__]); -_display_api_js__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - - - - - - - - - - - -const pdfjsVersion = "4.2.67"; -const pdfjsBuild = "49b388101"; - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 178: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ MessageHandler: () => (/* binding */ MessageHandler) -/* harmony export */ }); -/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(292); - -const CallbackKind = { - UNKNOWN: 0, - DATA: 1, - ERROR: 2 -}; -const StreamKind = { - UNKNOWN: 0, - CANCEL: 1, - CANCEL_COMPLETE: 2, - CLOSE: 3, - ENQUEUE: 4, - ERROR: 5, - PULL: 6, - PULL_COMPLETE: 7, - START_COMPLETE: 8 -}; -function wrapReason(reason) { - if (!(reason instanceof Error || typeof reason === "object" && reason !== null)) { - (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.'); - } - switch (reason.name) { - case "AbortException": - return new _util_js__WEBPACK_IMPORTED_MODULE_0__.AbortException(reason.message); - case "MissingPDFException": - return new _util_js__WEBPACK_IMPORTED_MODULE_0__.MissingPDFException(reason.message); - case "PasswordException": - return new _util_js__WEBPACK_IMPORTED_MODULE_0__.PasswordException(reason.message, reason.code); - case "UnexpectedResponseException": - return new _util_js__WEBPACK_IMPORTED_MODULE_0__.UnexpectedResponseException(reason.message, reason.status); - case "UnknownErrorException": - return new _util_js__WEBPACK_IMPORTED_MODULE_0__.UnknownErrorException(reason.message, reason.details); - default: - return new _util_js__WEBPACK_IMPORTED_MODULE_0__.UnknownErrorException(reason.message, reason.toString()); - } -} -class MessageHandler { - constructor(sourceName, targetName, comObj) { - this.sourceName = sourceName; - this.targetName = targetName; - this.comObj = comObj; - this.callbackId = 1; - this.streamId = 1; - this.streamSinks = Object.create(null); - this.streamControllers = Object.create(null); - this.callbackCapabilities = Object.create(null); - this.actionHandler = Object.create(null); - this._onComObjOnMessage = event => { - const data = event.data; - if (data.targetName !== this.sourceName) { - return; - } - if (data.stream) { - this.#processStreamMessage(data); - return; - } - if (data.callback) { - const callbackId = data.callbackId; - const capability = this.callbackCapabilities[callbackId]; - if (!capability) { - throw new Error(`Cannot resolve callback ${callbackId}`); - } - delete this.callbackCapabilities[callbackId]; - if (data.callback === CallbackKind.DATA) { - capability.resolve(data.data); - } else if (data.callback === CallbackKind.ERROR) { - capability.reject(wrapReason(data.reason)); - } else { - throw new Error("Unexpected callback case"); - } - return; - } - const action = this.actionHandler[data.action]; - if (!action) { - throw new Error(`Unknown action from worker: ${data.action}`); - } - if (data.callbackId) { - const cbSourceName = this.sourceName; - const cbTargetName = data.sourceName; - new Promise(function (resolve) { - resolve(action(data.data)); - }).then(function (result) { - comObj.postMessage({ - sourceName: cbSourceName, - targetName: cbTargetName, - callback: CallbackKind.DATA, - callbackId: data.callbackId, - data: result - }); - }, function (reason) { - comObj.postMessage({ - sourceName: cbSourceName, - targetName: cbTargetName, - callback: CallbackKind.ERROR, - callbackId: data.callbackId, - reason: wrapReason(reason) - }); - }); - return; - } - if (data.streamId) { - this.#createStreamSink(data); - return; - } - action(data.data); - }; - comObj.addEventListener("message", this._onComObjOnMessage); - } - on(actionName, handler) { - const ah = this.actionHandler; - if (ah[actionName]) { - throw new Error(`There is already an actionName called "${actionName}"`); - } - ah[actionName] = handler; - } - send(actionName, data, transfers) { - this.comObj.postMessage({ - sourceName: this.sourceName, - targetName: this.targetName, - action: actionName, - data - }, transfers); - } - sendWithPromise(actionName, data, transfers) { - const callbackId = this.callbackId++; - const capability = Promise.withResolvers(); - this.callbackCapabilities[callbackId] = capability; - try { - this.comObj.postMessage({ - sourceName: this.sourceName, - targetName: this.targetName, - action: actionName, - callbackId, - data - }, transfers); - } catch (ex) { - capability.reject(ex); - } - return capability.promise; - } - sendWithStream(actionName, data, queueingStrategy, transfers) { - const streamId = this.streamId++, - sourceName = this.sourceName, - targetName = this.targetName, - comObj = this.comObj; - return new ReadableStream({ - start: controller => { - const startCapability = Promise.withResolvers(); - this.streamControllers[streamId] = { - controller, - startCall: startCapability, - pullCall: null, - cancelCall: null, - isClosed: false - }; - comObj.postMessage({ - sourceName, - targetName, - action: actionName, - streamId, - data, - desiredSize: controller.desiredSize - }, transfers); - return startCapability.promise; - }, - pull: controller => { - const pullCapability = Promise.withResolvers(); - this.streamControllers[streamId].pullCall = pullCapability; - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.PULL, - streamId, - desiredSize: controller.desiredSize - }); - return pullCapability.promise; - }, - cancel: reason => { - (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(reason instanceof Error, "cancel must have a valid reason"); - const cancelCapability = Promise.withResolvers(); - this.streamControllers[streamId].cancelCall = cancelCapability; - this.streamControllers[streamId].isClosed = true; - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.CANCEL, - streamId, - reason: wrapReason(reason) - }); - return cancelCapability.promise; - } - }, queueingStrategy); - } - #createStreamSink(data) { - const streamId = data.streamId, - sourceName = this.sourceName, - targetName = data.sourceName, - comObj = this.comObj; - const self = this, - action = this.actionHandler[data.action]; - const streamSink = { - enqueue(chunk, size = 1, transfers) { - if (this.isCancelled) { - return; - } - const lastDesiredSize = this.desiredSize; - this.desiredSize -= size; - if (lastDesiredSize > 0 && this.desiredSize <= 0) { - this.sinkCapability = Promise.withResolvers(); - this.ready = this.sinkCapability.promise; - } - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.ENQUEUE, - streamId, - chunk - }, transfers); - }, - close() { - if (this.isCancelled) { - return; - } - this.isCancelled = true; - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.CLOSE, - streamId - }); - delete self.streamSinks[streamId]; - }, - error(reason) { - (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(reason instanceof Error, "error must have a valid reason"); - if (this.isCancelled) { - return; - } - this.isCancelled = true; - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.ERROR, - streamId, - reason: wrapReason(reason) - }); - }, - sinkCapability: Promise.withResolvers(), - onPull: null, - onCancel: null, - isCancelled: false, - desiredSize: data.desiredSize, - ready: null - }; - streamSink.sinkCapability.resolve(); - streamSink.ready = streamSink.sinkCapability.promise; - this.streamSinks[streamId] = streamSink; - new Promise(function (resolve) { - resolve(action(data.data, streamSink)); - }).then(function () { - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.START_COMPLETE, - streamId, - success: true - }); - }, function (reason) { - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.START_COMPLETE, - streamId, - reason: wrapReason(reason) - }); - }); - } - #processStreamMessage(data) { - const streamId = data.streamId, - sourceName = this.sourceName, - targetName = data.sourceName, - comObj = this.comObj; - const streamController = this.streamControllers[streamId], - streamSink = this.streamSinks[streamId]; - switch (data.stream) { - case StreamKind.START_COMPLETE: - if (data.success) { - streamController.startCall.resolve(); - } else { - streamController.startCall.reject(wrapReason(data.reason)); - } - break; - case StreamKind.PULL_COMPLETE: - if (data.success) { - streamController.pullCall.resolve(); - } else { - streamController.pullCall.reject(wrapReason(data.reason)); - } - break; - case StreamKind.PULL: - if (!streamSink) { - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.PULL_COMPLETE, - streamId, - success: true - }); - break; - } - if (streamSink.desiredSize <= 0 && data.desiredSize > 0) { - streamSink.sinkCapability.resolve(); - } - streamSink.desiredSize = data.desiredSize; - new Promise(function (resolve) { - resolve(streamSink.onPull?.()); - }).then(function () { - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.PULL_COMPLETE, - streamId, - success: true - }); - }, function (reason) { - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.PULL_COMPLETE, - streamId, - reason: wrapReason(reason) - }); - }); - break; - case StreamKind.ENQUEUE: - (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(streamController, "enqueue should have stream controller"); - if (streamController.isClosed) { - break; - } - streamController.controller.enqueue(data.chunk); - break; - case StreamKind.CLOSE: - (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(streamController, "close should have stream controller"); - if (streamController.isClosed) { - break; - } - streamController.isClosed = true; - streamController.controller.close(); - this.#deleteStreamController(streamController, streamId); - break; - case StreamKind.ERROR: - (0,_util_js__WEBPACK_IMPORTED_MODULE_0__.assert)(streamController, "error should have stream controller"); - streamController.controller.error(wrapReason(data.reason)); - this.#deleteStreamController(streamController, streamId); - break; - case StreamKind.CANCEL_COMPLETE: - if (data.success) { - streamController.cancelCall.resolve(); - } else { - streamController.cancelCall.reject(wrapReason(data.reason)); - } - this.#deleteStreamController(streamController, streamId); - break; - case StreamKind.CANCEL: - if (!streamSink) { - break; - } - new Promise(function (resolve) { - resolve(streamSink.onCancel?.(wrapReason(data.reason))); - }).then(function () { - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.CANCEL_COMPLETE, - streamId, - success: true - }); - }, function (reason) { - comObj.postMessage({ - sourceName, - targetName, - stream: StreamKind.CANCEL_COMPLETE, - streamId, - reason: wrapReason(reason) - }); - }); - streamSink.sinkCapability.reject(wrapReason(data.reason)); - streamSink.isCancelled = true; - delete this.streamSinks[streamId]; - break; - default: - throw new Error("Unexpected stream case"); - } - } - async #deleteStreamController(streamController, streamId) { - await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]); - delete this.streamControllers[streamId]; - } - destroy() { - this.comObj.removeEventListener("message", this._onComObjOnMessage); - } -} - - -/***/ }), - -/***/ 651: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ MurmurHash3_64: () => (/* binding */ MurmurHash3_64) -/* harmony export */ }); -const SEED = 0xc3d2e1f0; -const MASK_HIGH = 0xffff0000; -const MASK_LOW = 0xffff; -class MurmurHash3_64 { - constructor(seed) { - this.h1 = seed ? seed & 0xffffffff : SEED; - this.h2 = seed ? seed & 0xffffffff : SEED; - } - update(input) { - let data, length; - if (typeof input === "string") { - data = new Uint8Array(input.length * 2); - length = 0; - for (let i = 0, ii = input.length; i < ii; i++) { - const code = input.charCodeAt(i); - if (code <= 0xff) { - data[length++] = code; - } else { - data[length++] = code >>> 8; - data[length++] = code & 0xff; - } - } - } else if (ArrayBuffer.isView(input)) { - data = input.slice(); - length = data.byteLength; - } else { - throw new Error("Invalid data format, must be a string or TypedArray."); - } - const blockCounts = length >> 2; - const tailLength = length - blockCounts * 4; - const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts); - let k1 = 0, - k2 = 0; - let h1 = this.h1, - h2 = this.h2; - const C1 = 0xcc9e2d51, - C2 = 0x1b873593; - const C1_LOW = C1 & MASK_LOW, - C2_LOW = C2 & MASK_LOW; - for (let i = 0; i < blockCounts; i++) { - if (i & 1) { - k1 = dataUint32[i]; - k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; - k1 = k1 << 15 | k1 >>> 17; - k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; - h1 ^= k1; - h1 = h1 << 13 | h1 >>> 19; - h1 = h1 * 5 + 0xe6546b64; - } else { - k2 = dataUint32[i]; - k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW; - k2 = k2 << 15 | k2 >>> 17; - k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW; - h2 ^= k2; - h2 = h2 << 13 | h2 >>> 19; - h2 = h2 * 5 + 0xe6546b64; - } - } - k1 = 0; - switch (tailLength) { - case 3: - k1 ^= data[blockCounts * 4 + 2] << 16; - case 2: - k1 ^= data[blockCounts * 4 + 1] << 8; - case 1: - k1 ^= data[blockCounts * 4]; - k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; - k1 = k1 << 15 | k1 >>> 17; - k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; - if (blockCounts & 1) { - h1 ^= k1; - } else { - h2 ^= k1; - } - } - this.h1 = h1; - this.h2 = h2; - } - hexdigest() { - let h1 = this.h1, - h2 = this.h2; - h1 ^= h2 >>> 1; - h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW; - h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16; - h1 ^= h2 >>> 1; - h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW; - h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16; - h1 ^= h2 >>> 1; - return (h1 >>> 0).toString(16).padStart(8, "0") + (h2 >>> 0).toString(16).padStart(8, "0"); - } -} - - -/***/ }), - -/***/ 292: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AbortException: () => (/* binding */ AbortException), -/* harmony export */ AnnotationBorderStyleType: () => (/* binding */ AnnotationBorderStyleType), -/* harmony export */ AnnotationEditorParamsType: () => (/* binding */ AnnotationEditorParamsType), -/* harmony export */ AnnotationEditorPrefix: () => (/* binding */ AnnotationEditorPrefix), -/* harmony export */ AnnotationEditorType: () => (/* binding */ AnnotationEditorType), -/* harmony export */ AnnotationMode: () => (/* binding */ AnnotationMode), -/* harmony export */ AnnotationPrefix: () => (/* binding */ AnnotationPrefix), -/* harmony export */ AnnotationType: () => (/* binding */ AnnotationType), -/* harmony export */ BaseException: () => (/* binding */ BaseException), -/* harmony export */ CMapCompressionType: () => (/* binding */ CMapCompressionType), -/* harmony export */ FONT_IDENTITY_MATRIX: () => (/* binding */ FONT_IDENTITY_MATRIX), -/* harmony export */ FeatureTest: () => (/* binding */ FeatureTest), -/* harmony export */ FontRenderOps: () => (/* binding */ FontRenderOps), -/* harmony export */ FormatError: () => (/* binding */ FormatError), -/* harmony export */ IDENTITY_MATRIX: () => (/* binding */ IDENTITY_MATRIX), -/* harmony export */ ImageKind: () => (/* binding */ ImageKind), -/* harmony export */ InvalidPDFException: () => (/* binding */ InvalidPDFException), -/* harmony export */ LINE_FACTOR: () => (/* binding */ LINE_FACTOR), -/* harmony export */ MAX_IMAGE_SIZE_TO_CACHE: () => (/* binding */ MAX_IMAGE_SIZE_TO_CACHE), -/* harmony export */ MissingPDFException: () => (/* binding */ MissingPDFException), -/* harmony export */ OPS: () => (/* binding */ OPS), -/* harmony export */ PasswordException: () => (/* binding */ PasswordException), -/* harmony export */ PasswordResponses: () => (/* binding */ PasswordResponses), -/* harmony export */ PermissionFlag: () => (/* binding */ PermissionFlag), -/* harmony export */ RenderingIntentFlag: () => (/* binding */ RenderingIntentFlag), -/* harmony export */ TextRenderingMode: () => (/* binding */ TextRenderingMode), -/* harmony export */ UnexpectedResponseException: () => (/* binding */ UnexpectedResponseException), -/* harmony export */ UnknownErrorException: () => (/* binding */ UnknownErrorException), -/* harmony export */ Util: () => (/* binding */ Util), -/* harmony export */ VerbosityLevel: () => (/* binding */ VerbosityLevel), -/* harmony export */ assert: () => (/* binding */ assert), -/* harmony export */ bytesToString: () => (/* binding */ bytesToString), -/* harmony export */ createValidAbsoluteUrl: () => (/* binding */ createValidAbsoluteUrl), -/* harmony export */ getUuid: () => (/* binding */ getUuid), -/* harmony export */ getVerbosityLevel: () => (/* binding */ getVerbosityLevel), -/* harmony export */ info: () => (/* binding */ info), -/* harmony export */ isNodeJS: () => (/* binding */ isNodeJS), -/* harmony export */ normalizeUnicode: () => (/* binding */ normalizeUnicode), -/* harmony export */ objectFromMap: () => (/* binding */ objectFromMap), -/* harmony export */ setVerbosityLevel: () => (/* binding */ setVerbosityLevel), -/* harmony export */ shadow: () => (/* binding */ shadow), -/* harmony export */ string32: () => (/* binding */ string32), -/* harmony export */ stringToBytes: () => (/* binding */ stringToBytes), -/* harmony export */ unreachable: () => (/* binding */ unreachable), -/* harmony export */ warn: () => (/* binding */ warn) -/* harmony export */ }); -/* unused harmony exports AnnotationActionEventType, AnnotationFieldFlag, AnnotationFlag, AnnotationReplyType, BASELINE_FACTOR, DocumentActionEventType, getModificationDate, isArrayEqual, LINE_DESCENT_FACTOR, objectSize, PageActionEventType, stringToPDFString, stringToUTF8String, utf8StringToString */ -const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); -const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; -const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; -const MAX_IMAGE_SIZE_TO_CACHE = 10e6; -const LINE_FACTOR = 1.35; -const LINE_DESCENT_FACTOR = 0.35; -const BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR; -const RenderingIntentFlag = { - ANY: 0x01, - DISPLAY: 0x02, - PRINT: 0x04, - SAVE: 0x08, - ANNOTATIONS_FORMS: 0x10, - ANNOTATIONS_STORAGE: 0x20, - ANNOTATIONS_DISABLE: 0x40, - OPLIST: 0x100 -}; -const AnnotationMode = { - DISABLE: 0, - ENABLE: 1, - ENABLE_FORMS: 2, - ENABLE_STORAGE: 3 -}; -const AnnotationEditorPrefix = "pdfjs_internal_editor_"; -const AnnotationEditorType = { - DISABLE: -1, - NONE: 0, - FREETEXT: 3, - HIGHLIGHT: 9, - STAMP: 13, - INK: 15 -}; -const AnnotationEditorParamsType = { - RESIZE: 1, - CREATE: 2, - FREETEXT_SIZE: 11, - FREETEXT_COLOR: 12, - FREETEXT_OPACITY: 13, - INK_COLOR: 21, - INK_THICKNESS: 22, - INK_OPACITY: 23, - HIGHLIGHT_COLOR: 31, - HIGHLIGHT_DEFAULT_COLOR: 32, - HIGHLIGHT_THICKNESS: 33, - HIGHLIGHT_FREE: 34, - HIGHLIGHT_SHOW_ALL: 35 -}; -const PermissionFlag = { - PRINT: 0x04, - MODIFY_CONTENTS: 0x08, - COPY: 0x10, - MODIFY_ANNOTATIONS: 0x20, - FILL_INTERACTIVE_FORMS: 0x100, - COPY_FOR_ACCESSIBILITY: 0x200, - ASSEMBLE: 0x400, - PRINT_HIGH_QUALITY: 0x800 -}; -const TextRenderingMode = { - FILL: 0, - STROKE: 1, - FILL_STROKE: 2, - INVISIBLE: 3, - FILL_ADD_TO_PATH: 4, - STROKE_ADD_TO_PATH: 5, - FILL_STROKE_ADD_TO_PATH: 6, - ADD_TO_PATH: 7, - FILL_STROKE_MASK: 3, - ADD_TO_PATH_FLAG: 4 -}; -const ImageKind = { - GRAYSCALE_1BPP: 1, - RGB_24BPP: 2, - RGBA_32BPP: 3 -}; -const AnnotationType = { - TEXT: 1, - LINK: 2, - FREETEXT: 3, - LINE: 4, - SQUARE: 5, - CIRCLE: 6, - POLYGON: 7, - POLYLINE: 8, - HIGHLIGHT: 9, - UNDERLINE: 10, - SQUIGGLY: 11, - STRIKEOUT: 12, - STAMP: 13, - CARET: 14, - INK: 15, - POPUP: 16, - FILEATTACHMENT: 17, - SOUND: 18, - MOVIE: 19, - WIDGET: 20, - SCREEN: 21, - PRINTERMARK: 22, - TRAPNET: 23, - WATERMARK: 24, - THREED: 25, - REDACT: 26 -}; -const AnnotationReplyType = { - GROUP: "Group", - REPLY: "R" -}; -const AnnotationFlag = { - INVISIBLE: 0x01, - HIDDEN: 0x02, - PRINT: 0x04, - NOZOOM: 0x08, - NOROTATE: 0x10, - NOVIEW: 0x20, - READONLY: 0x40, - LOCKED: 0x80, - TOGGLENOVIEW: 0x100, - LOCKEDCONTENTS: 0x200 -}; -const AnnotationFieldFlag = { - READONLY: 0x0000001, - REQUIRED: 0x0000002, - NOEXPORT: 0x0000004, - MULTILINE: 0x0001000, - PASSWORD: 0x0002000, - NOTOGGLETOOFF: 0x0004000, - RADIO: 0x0008000, - PUSHBUTTON: 0x0010000, - COMBO: 0x0020000, - EDIT: 0x0040000, - SORT: 0x0080000, - FILESELECT: 0x0100000, - MULTISELECT: 0x0200000, - DONOTSPELLCHECK: 0x0400000, - DONOTSCROLL: 0x0800000, - COMB: 0x1000000, - RICHTEXT: 0x2000000, - RADIOSINUNISON: 0x2000000, - COMMITONSELCHANGE: 0x4000000 -}; -const AnnotationBorderStyleType = { - SOLID: 1, - DASHED: 2, - BEVELED: 3, - INSET: 4, - UNDERLINE: 5 -}; -const AnnotationActionEventType = { - E: "Mouse Enter", - X: "Mouse Exit", - D: "Mouse Down", - U: "Mouse Up", - Fo: "Focus", - Bl: "Blur", - PO: "PageOpen", - PC: "PageClose", - PV: "PageVisible", - PI: "PageInvisible", - K: "Keystroke", - F: "Format", - V: "Validate", - C: "Calculate" -}; -const DocumentActionEventType = { - WC: "WillClose", - WS: "WillSave", - DS: "DidSave", - WP: "WillPrint", - DP: "DidPrint" -}; -const PageActionEventType = { - O: "PageOpen", - C: "PageClose" -}; -const VerbosityLevel = { - ERRORS: 0, - WARNINGS: 1, - INFOS: 5 -}; -const CMapCompressionType = { - NONE: 0, - BINARY: 1 -}; -const OPS = { - dependency: 1, - setLineWidth: 2, - setLineCap: 3, - setLineJoin: 4, - setMiterLimit: 5, - setDash: 6, - setRenderingIntent: 7, - setFlatness: 8, - setGState: 9, - save: 10, - restore: 11, - transform: 12, - moveTo: 13, - lineTo: 14, - curveTo: 15, - curveTo2: 16, - curveTo3: 17, - closePath: 18, - rectangle: 19, - stroke: 20, - closeStroke: 21, - fill: 22, - eoFill: 23, - fillStroke: 24, - eoFillStroke: 25, - closeFillStroke: 26, - closeEOFillStroke: 27, - endPath: 28, - clip: 29, - eoClip: 30, - beginText: 31, - endText: 32, - setCharSpacing: 33, - setWordSpacing: 34, - setHScale: 35, - setLeading: 36, - setFont: 37, - setTextRenderingMode: 38, - setTextRise: 39, - moveText: 40, - setLeadingMoveText: 41, - setTextMatrix: 42, - nextLine: 43, - showText: 44, - showSpacedText: 45, - nextLineShowText: 46, - nextLineSetSpacingShowText: 47, - setCharWidth: 48, - setCharWidthAndBounds: 49, - setStrokeColorSpace: 50, - setFillColorSpace: 51, - setStrokeColor: 52, - setStrokeColorN: 53, - setFillColor: 54, - setFillColorN: 55, - setStrokeGray: 56, - setFillGray: 57, - setStrokeRGBColor: 58, - setFillRGBColor: 59, - setStrokeCMYKColor: 60, - setFillCMYKColor: 61, - shadingFill: 62, - beginInlineImage: 63, - beginImageData: 64, - endInlineImage: 65, - paintXObject: 66, - markPoint: 67, - markPointProps: 68, - beginMarkedContent: 69, - beginMarkedContentProps: 70, - endMarkedContent: 71, - beginCompat: 72, - endCompat: 73, - paintFormXObjectBegin: 74, - paintFormXObjectEnd: 75, - beginGroup: 76, - endGroup: 77, - beginAnnotation: 80, - endAnnotation: 81, - paintImageMaskXObject: 83, - paintImageMaskXObjectGroup: 84, - paintImageXObject: 85, - paintInlineImageXObject: 86, - paintInlineImageXObjectGroup: 87, - paintImageXObjectRepeat: 88, - paintImageMaskXObjectRepeat: 89, - paintSolidColorImageMask: 90, - constructPath: 91 -}; -const PasswordResponses = { - NEED_PASSWORD: 1, - INCORRECT_PASSWORD: 2 -}; -let verbosity = VerbosityLevel.WARNINGS; -function setVerbosityLevel(level) { - if (Number.isInteger(level)) { - verbosity = level; - } -} -function getVerbosityLevel() { - return verbosity; -} -function info(msg) { - if (verbosity >= VerbosityLevel.INFOS) { - console.log(`Info: ${msg}`); - } -} -function warn(msg) { - if (verbosity >= VerbosityLevel.WARNINGS) { - console.log(`Warning: ${msg}`); - } -} -function unreachable(msg) { - throw new Error(msg); -} -function assert(cond, msg) { - if (!cond) { - unreachable(msg); - } -} -function _isValidProtocol(url) { - switch (url?.protocol) { - case "http:": - case "https:": - case "ftp:": - case "mailto:": - case "tel:": - return true; - default: - return false; - } -} -function createValidAbsoluteUrl(url, baseUrl = null, options = null) { - if (!url) { - return null; - } - try { - if (options && typeof url === "string") { - if (options.addDefaultProtocol && url.startsWith("www.")) { - const dots = url.match(/\./g); - if (dots?.length >= 2) { - url = `http://${url}`; - } - } - if (options.tryConvertEncoding) { - try { - url = stringToUTF8String(url); - } catch {} - } - } - const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); - if (_isValidProtocol(absoluteUrl)) { - return absoluteUrl; - } - } catch {} - return null; -} -function shadow(obj, prop, value, nonSerializable = false) { - Object.defineProperty(obj, prop, { - value, - enumerable: !nonSerializable, - configurable: true, - writable: false - }); - return value; -} -const BaseException = function BaseExceptionClosure() { - function BaseException(message, name) { - if (this.constructor === BaseException) { - unreachable("Cannot initialize BaseException."); - } - this.message = message; - this.name = name; - } - BaseException.prototype = new Error(); - BaseException.constructor = BaseException; - return BaseException; -}(); -class PasswordException extends BaseException { - constructor(msg, code) { - super(msg, "PasswordException"); - this.code = code; - } -} -class UnknownErrorException extends BaseException { - constructor(msg, details) { - super(msg, "UnknownErrorException"); - this.details = details; - } -} -class InvalidPDFException extends BaseException { - constructor(msg) { - super(msg, "InvalidPDFException"); - } -} -class MissingPDFException extends BaseException { - constructor(msg) { - super(msg, "MissingPDFException"); - } -} -class UnexpectedResponseException extends BaseException { - constructor(msg, status) { - super(msg, "UnexpectedResponseException"); - this.status = status; - } -} -class FormatError extends BaseException { - constructor(msg) { - super(msg, "FormatError"); - } -} -class AbortException extends BaseException { - constructor(msg) { - super(msg, "AbortException"); - } -} -function bytesToString(bytes) { - if (typeof bytes !== "object" || bytes?.length === undefined) { - unreachable("Invalid argument for bytesToString"); - } - const length = bytes.length; - const MAX_ARGUMENT_COUNT = 8192; - if (length < MAX_ARGUMENT_COUNT) { - return String.fromCharCode.apply(null, bytes); - } - const strBuf = []; - for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) { - const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); - const chunk = bytes.subarray(i, chunkEnd); - strBuf.push(String.fromCharCode.apply(null, chunk)); - } - return strBuf.join(""); -} -function stringToBytes(str) { - if (typeof str !== "string") { - unreachable("Invalid argument for stringToBytes"); - } - const length = str.length; - const bytes = new Uint8Array(length); - for (let i = 0; i < length; ++i) { - bytes[i] = str.charCodeAt(i) & 0xff; - } - return bytes; -} -function string32(value) { - return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); -} -function objectSize(obj) { - return Object.keys(obj).length; -} -function objectFromMap(map) { - const obj = Object.create(null); - for (const [key, value] of map) { - obj[key] = value; - } - return obj; -} -function isLittleEndian() { - const buffer8 = new Uint8Array(4); - buffer8[0] = 1; - const view32 = new Uint32Array(buffer8.buffer, 0, 1); - return view32[0] === 1; -} -function isEvalSupported() { - try { - new Function(""); - return true; - } catch { - return false; - } -} -class FeatureTest { - static get isLittleEndian() { - return shadow(this, "isLittleEndian", isLittleEndian()); - } - static get isEvalSupported() { - return shadow(this, "isEvalSupported", isEvalSupported()); - } - static get isOffscreenCanvasSupported() { - return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); - } - static get platform() { - if (typeof navigator !== "undefined" && typeof navigator?.platform === "string") { - return shadow(this, "platform", { - isMac: navigator.platform.includes("Mac") - }); - } - return shadow(this, "platform", { - isMac: false - }); - } - static get isCSSRoundSupported() { - return shadow(this, "isCSSRoundSupported", globalThis.CSS?.supports?.("width: round(1.5px, 1px)")); - } -} -const hexNumbers = Array.from(Array(256).keys(), n => n.toString(16).padStart(2, "0")); -class Util { - static makeHexColor(r, g, b) { - return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`; - } - static scaleMinMax(transform, minMax) { - let temp; - if (transform[0]) { - if (transform[0] < 0) { - temp = minMax[0]; - minMax[0] = minMax[2]; - minMax[2] = temp; - } - minMax[0] *= transform[0]; - minMax[2] *= transform[0]; - if (transform[3] < 0) { - temp = minMax[1]; - minMax[1] = minMax[3]; - minMax[3] = temp; - } - minMax[1] *= transform[3]; - minMax[3] *= transform[3]; - } else { - temp = minMax[0]; - minMax[0] = minMax[1]; - minMax[1] = temp; - temp = minMax[2]; - minMax[2] = minMax[3]; - minMax[3] = temp; - if (transform[1] < 0) { - temp = minMax[1]; - minMax[1] = minMax[3]; - minMax[3] = temp; - } - minMax[1] *= transform[1]; - minMax[3] *= transform[1]; - if (transform[2] < 0) { - temp = minMax[0]; - minMax[0] = minMax[2]; - minMax[2] = temp; - } - minMax[0] *= transform[2]; - minMax[2] *= transform[2]; - } - minMax[0] += transform[4]; - minMax[1] += transform[5]; - minMax[2] += transform[4]; - minMax[3] += transform[5]; - } - static transform(m1, m2) { - return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]]; - } - static applyTransform(p, m) { - const xt = p[0] * m[0] + p[1] * m[2] + m[4]; - const yt = p[0] * m[1] + p[1] * m[3] + m[5]; - return [xt, yt]; - } - static applyInverseTransform(p, m) { - const d = m[0] * m[3] - m[1] * m[2]; - const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; - const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; - return [xt, yt]; - } - static getAxialAlignedBoundingBox(r, m) { - const p1 = this.applyTransform(r, m); - const p2 = this.applyTransform(r.slice(2, 4), m); - const p3 = this.applyTransform([r[0], r[3]], m); - const p4 = this.applyTransform([r[2], r[1]], m); - return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])]; - } - static inverseTransform(m) { - const d = m[0] * m[3] - m[1] * m[2]; - return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d]; - } - static singularValueDecompose2dScale(m) { - const transpose = [m[0], m[2], m[1], m[3]]; - const a = m[0] * transpose[0] + m[1] * transpose[2]; - const b = m[0] * transpose[1] + m[1] * transpose[3]; - const c = m[2] * transpose[0] + m[3] * transpose[2]; - const d = m[2] * transpose[1] + m[3] * transpose[3]; - const first = (a + d) / 2; - const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2; - const sx = first + second || 1; - const sy = first - second || 1; - return [Math.sqrt(sx), Math.sqrt(sy)]; - } - static normalizeRect(rect) { - const r = rect.slice(0); - if (rect[0] > rect[2]) { - r[0] = rect[2]; - r[2] = rect[0]; - } - if (rect[1] > rect[3]) { - r[1] = rect[3]; - r[3] = rect[1]; - } - return r; - } - static intersect(rect1, rect2) { - const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2])); - const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2])); - if (xLow > xHigh) { - return null; - } - const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3])); - const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3])); - if (yLow > yHigh) { - return null; - } - return [xLow, yLow, xHigh, yHigh]; - } - static #getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, t, minMax) { - if (t <= 0 || t >= 1) { - return; - } - const mt = 1 - t; - const tt = t * t; - const ttt = tt * t; - const x = mt * (mt * (mt * x0 + 3 * t * x1) + 3 * tt * x2) + ttt * x3; - const y = mt * (mt * (mt * y0 + 3 * t * y1) + 3 * tt * y2) + ttt * y3; - minMax[0] = Math.min(minMax[0], x); - minMax[1] = Math.min(minMax[1], y); - minMax[2] = Math.max(minMax[2], x); - minMax[3] = Math.max(minMax[3], y); - } - static #getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, a, b, c, minMax) { - if (Math.abs(a) < 1e-12) { - if (Math.abs(b) >= 1e-12) { - this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, -c / b, minMax); - } - return; - } - const delta = b ** 2 - 4 * c * a; - if (delta < 0) { - return; - } - const sqrtDelta = Math.sqrt(delta); - const a2 = 2 * a; - this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b + sqrtDelta) / a2, minMax); - this.#getExtremumOnCurve(x0, x1, x2, x3, y0, y1, y2, y3, (-b - sqrtDelta) / a2, minMax); - } - static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3, minMax) { - if (minMax) { - minMax[0] = Math.min(minMax[0], x0, x3); - minMax[1] = Math.min(minMax[1], y0, y3); - minMax[2] = Math.max(minMax[2], x0, x3); - minMax[3] = Math.max(minMax[3], y0, y3); - } else { - minMax = [Math.min(x0, x3), Math.min(y0, y3), Math.max(x0, x3), Math.max(y0, y3)]; - } - this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-x0 + 3 * (x1 - x2) + x3), 6 * (x0 - 2 * x1 + x2), 3 * (x1 - x0), minMax); - this.#getExtremum(x0, x1, x2, x3, y0, y1, y2, y3, 3 * (-y0 + 3 * (y1 - y2) + y3), 6 * (y0 - 2 * y1 + y2), 3 * (y1 - y0), minMax); - return minMax; - } -} -const PDFStringTranslateTable = (/* unused pure expression or super */ null && ([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac])); -function stringToPDFString(str) { - if (str[0] >= "\xEF") { - let encoding; - if (str[0] === "\xFE" && str[1] === "\xFF") { - encoding = "utf-16be"; - if (str.length % 2 === 1) { - str = str.slice(0, -1); - } - } else if (str[0] === "\xFF" && str[1] === "\xFE") { - encoding = "utf-16le"; - if (str.length % 2 === 1) { - str = str.slice(0, -1); - } - } else if (str[0] === "\xEF" && str[1] === "\xBB" && str[2] === "\xBF") { - encoding = "utf-8"; - } - if (encoding) { - try { - const decoder = new TextDecoder(encoding, { - fatal: true - }); - const buffer = stringToBytes(str); - const decoded = decoder.decode(buffer); - if (!decoded.includes("\x1b")) { - return decoded; - } - return decoded.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g, ""); - } catch (ex) { - warn(`stringToPDFString: "${ex}".`); - } - } - } - const strBuf = []; - for (let i = 0, ii = str.length; i < ii; i++) { - const charCode = str.charCodeAt(i); - if (charCode === 0x1b) { - while (++i < ii && str.charCodeAt(i) !== 0x1b) {} - continue; - } - const code = PDFStringTranslateTable[charCode]; - strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); - } - return strBuf.join(""); -} -function stringToUTF8String(str) { - return decodeURIComponent(escape(str)); -} -function utf8StringToString(str) { - return unescape(encodeURIComponent(str)); -} -function isArrayEqual(arr1, arr2) { - if (arr1.length !== arr2.length) { - return false; - } - for (let i = 0, ii = arr1.length; i < ii; i++) { - if (arr1[i] !== arr2[i]) { - return false; - } - } - return true; -} -function getModificationDate(date = new Date()) { - const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")]; - return buffer.join(""); -} -let NormalizeRegex = null; -let NormalizationMap = null; -function normalizeUnicode(str) { - if (!NormalizeRegex) { - NormalizeRegex = /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu; - NormalizationMap = new Map([["ſt", "ſt"]]); - } - return str.replaceAll(NormalizeRegex, (_, p1, p2) => p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2)); -} -function getUuid() { - if (typeof crypto !== "undefined" && typeof crypto?.randomUUID === "function") { - return crypto.randomUUID(); - } - const buf = new Uint8Array(32); - if (typeof crypto !== "undefined" && typeof crypto?.getRandomValues === "function") { - crypto.getRandomValues(buf); - } else { - for (let i = 0; i < 32; i++) { - buf[i] = Math.floor(Math.random() * 255); - } - } - return bytesToString(buf); -} -const AnnotationPrefix = "pdfjs_internal_id_"; -const FontRenderOps = { - BEZIER_CURVE_TO: 0, - MOVE_TO: 1, - LINE_TO: 2, - QUADRATIC_CURVE_TO: 3, - RESTORE: 4, - SAVE: 5, - SCALE: 6, - TRANSFORM: 7, - TRANSLATE: 8 -}; - - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/async module */ -/******/ (() => { -/******/ var webpackQueues = typeof Symbol === "function" ? Symbol("webpack queues") : "__webpack_queues__"; -/******/ var webpackExports = typeof Symbol === "function" ? Symbol("webpack exports") : "__webpack_exports__"; -/******/ var webpackError = typeof Symbol === "function" ? Symbol("webpack error") : "__webpack_error__"; -/******/ var resolveQueue = (queue) => { -/******/ if(queue && queue.d < 1) { -/******/ queue.d = 1; -/******/ queue.forEach((fn) => (fn.r--)); -/******/ queue.forEach((fn) => (fn.r-- ? fn.r++ : fn())); -/******/ } -/******/ } -/******/ var wrapDeps = (deps) => (deps.map((dep) => { -/******/ if(dep !== null && typeof dep === "object") { -/******/ if(dep[webpackQueues]) return dep; -/******/ if(dep.then) { -/******/ var queue = []; -/******/ queue.d = 0; -/******/ dep.then((r) => { -/******/ obj[webpackExports] = r; -/******/ resolveQueue(queue); -/******/ }, (e) => { -/******/ obj[webpackError] = e; -/******/ resolveQueue(queue); -/******/ }); -/******/ var obj = {}; -/******/ obj[webpackQueues] = (fn) => (fn(queue)); -/******/ return obj; -/******/ } -/******/ } -/******/ var ret = {}; -/******/ ret[webpackQueues] = x => {}; -/******/ ret[webpackExports] = dep; -/******/ return ret; -/******/ })); -/******/ __webpack_require__.a = (module, body, hasAwait) => { -/******/ var queue; -/******/ hasAwait && ((queue = []).d = -1); -/******/ var depQueues = new Set(); -/******/ var exports = module.exports; -/******/ var currentDeps; -/******/ var outerResolve; -/******/ var reject; -/******/ var promise = new Promise((resolve, rej) => { -/******/ reject = rej; -/******/ outerResolve = resolve; -/******/ }); -/******/ promise[webpackExports] = exports; -/******/ promise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise["catch"](x => {})); -/******/ module.exports = promise; -/******/ body((deps) => { -/******/ currentDeps = wrapDeps(deps); -/******/ var fn; -/******/ var getResult = () => (currentDeps.map((d) => { -/******/ if(d[webpackError]) throw d[webpackError]; -/******/ return d[webpackExports]; -/******/ })) -/******/ var promise = new Promise((resolve) => { -/******/ fn = () => (resolve(getResult)); -/******/ fn.r = 0; -/******/ var fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn)))); -/******/ currentDeps.map((dep) => (dep[webpackQueues](fnQueue))); -/******/ }); -/******/ return fn.r ? promise : getResult(); -/******/ }, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue))); -/******/ queue && queue.d < 0 && (queue.d = 0); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module used 'module' so it can't be inlined -/******/ var __webpack_exports__ = __webpack_require__(228); -/******/ __webpack_exports__ = globalThis.pdfjsLib = await (globalThis.pdfjsLibPromise = __webpack_exports__); - -/******/ var __webpack_exports__AbortException = __webpack_exports__.AbortException; -/******/ var __webpack_exports__AnnotationEditorLayer = __webpack_exports__.AnnotationEditorLayer; -/******/ var __webpack_exports__AnnotationEditorParamsType = __webpack_exports__.AnnotationEditorParamsType; -/******/ var __webpack_exports__AnnotationEditorType = __webpack_exports__.AnnotationEditorType; -/******/ var __webpack_exports__AnnotationEditorUIManager = __webpack_exports__.AnnotationEditorUIManager; -/******/ var __webpack_exports__AnnotationLayer = __webpack_exports__.AnnotationLayer; -/******/ var __webpack_exports__AnnotationMode = __webpack_exports__.AnnotationMode; -/******/ var __webpack_exports__CMapCompressionType = __webpack_exports__.CMapCompressionType; -/******/ var __webpack_exports__ColorPicker = __webpack_exports__.ColorPicker; -/******/ var __webpack_exports__DOMSVGFactory = __webpack_exports__.DOMSVGFactory; -/******/ var __webpack_exports__DrawLayer = __webpack_exports__.DrawLayer; -/******/ var __webpack_exports__FeatureTest = __webpack_exports__.FeatureTest; -/******/ var __webpack_exports__GlobalWorkerOptions = __webpack_exports__.GlobalWorkerOptions; -/******/ var __webpack_exports__ImageKind = __webpack_exports__.ImageKind; -/******/ var __webpack_exports__InvalidPDFException = __webpack_exports__.InvalidPDFException; -/******/ var __webpack_exports__MissingPDFException = __webpack_exports__.MissingPDFException; -/******/ var __webpack_exports__OPS = __webpack_exports__.OPS; -/******/ var __webpack_exports__Outliner = __webpack_exports__.Outliner; -/******/ var __webpack_exports__PDFDataRangeTransport = __webpack_exports__.PDFDataRangeTransport; -/******/ var __webpack_exports__PDFDateString = __webpack_exports__.PDFDateString; -/******/ var __webpack_exports__PDFWorker = __webpack_exports__.PDFWorker; -/******/ var __webpack_exports__PasswordResponses = __webpack_exports__.PasswordResponses; -/******/ var __webpack_exports__PermissionFlag = __webpack_exports__.PermissionFlag; -/******/ var __webpack_exports__PixelsPerInch = __webpack_exports__.PixelsPerInch; -/******/ var __webpack_exports__RenderingCancelledException = __webpack_exports__.RenderingCancelledException; -/******/ var __webpack_exports__UnexpectedResponseException = __webpack_exports__.UnexpectedResponseException; -/******/ var __webpack_exports__Util = __webpack_exports__.Util; -/******/ var __webpack_exports__VerbosityLevel = __webpack_exports__.VerbosityLevel; -/******/ var __webpack_exports__XfaLayer = __webpack_exports__.XfaLayer; -/******/ var __webpack_exports__build = __webpack_exports__.build; -/******/ var __webpack_exports__createValidAbsoluteUrl = __webpack_exports__.createValidAbsoluteUrl; -/******/ var __webpack_exports__fetchData = __webpack_exports__.fetchData; -/******/ var __webpack_exports__getDocument = __webpack_exports__.getDocument; -/******/ var __webpack_exports__getFilenameFromUrl = __webpack_exports__.getFilenameFromUrl; -/******/ var __webpack_exports__getPdfFilenameFromUrl = __webpack_exports__.getPdfFilenameFromUrl; -/******/ var __webpack_exports__getXfaPageViewport = __webpack_exports__.getXfaPageViewport; -/******/ var __webpack_exports__isDataScheme = __webpack_exports__.isDataScheme; -/******/ var __webpack_exports__isPdfFile = __webpack_exports__.isPdfFile; -/******/ var __webpack_exports__noContextMenu = __webpack_exports__.noContextMenu; -/******/ var __webpack_exports__normalizeUnicode = __webpack_exports__.normalizeUnicode; -/******/ var __webpack_exports__renderTextLayer = __webpack_exports__.renderTextLayer; -/******/ var __webpack_exports__setLayerDimensions = __webpack_exports__.setLayerDimensions; -/******/ var __webpack_exports__shadow = __webpack_exports__.shadow; -/******/ var __webpack_exports__updateTextLayer = __webpack_exports__.updateTextLayer; -/******/ var __webpack_exports__version = __webpack_exports__.version; -/******/ export { __webpack_exports__AbortException as AbortException, __webpack_exports__AnnotationEditorLayer as AnnotationEditorLayer, __webpack_exports__AnnotationEditorParamsType as AnnotationEditorParamsType, __webpack_exports__AnnotationEditorType as AnnotationEditorType, __webpack_exports__AnnotationEditorUIManager as AnnotationEditorUIManager, __webpack_exports__AnnotationLayer as AnnotationLayer, __webpack_exports__AnnotationMode as AnnotationMode, __webpack_exports__CMapCompressionType as CMapCompressionType, __webpack_exports__ColorPicker as ColorPicker, __webpack_exports__DOMSVGFactory as DOMSVGFactory, __webpack_exports__DrawLayer as DrawLayer, __webpack_exports__FeatureTest as FeatureTest, __webpack_exports__GlobalWorkerOptions as GlobalWorkerOptions, __webpack_exports__ImageKind as ImageKind, __webpack_exports__InvalidPDFException as InvalidPDFException, __webpack_exports__MissingPDFException as MissingPDFException, __webpack_exports__OPS as OPS, __webpack_exports__Outliner as Outliner, __webpack_exports__PDFDataRangeTransport as PDFDataRangeTransport, __webpack_exports__PDFDateString as PDFDateString, __webpack_exports__PDFWorker as PDFWorker, __webpack_exports__PasswordResponses as PasswordResponses, __webpack_exports__PermissionFlag as PermissionFlag, __webpack_exports__PixelsPerInch as PixelsPerInch, __webpack_exports__RenderingCancelledException as RenderingCancelledException, __webpack_exports__UnexpectedResponseException as UnexpectedResponseException, __webpack_exports__Util as Util, __webpack_exports__VerbosityLevel as VerbosityLevel, __webpack_exports__XfaLayer as XfaLayer, __webpack_exports__build as build, __webpack_exports__createValidAbsoluteUrl as createValidAbsoluteUrl, __webpack_exports__fetchData as fetchData, __webpack_exports__getDocument as getDocument, __webpack_exports__getFilenameFromUrl as getFilenameFromUrl, __webpack_exports__getPdfFilenameFromUrl as getPdfFilenameFromUrl, __webpack_exports__getXfaPageViewport as getXfaPageViewport, __webpack_exports__isDataScheme as isDataScheme, __webpack_exports__isPdfFile as isPdfFile, __webpack_exports__noContextMenu as noContextMenu, __webpack_exports__normalizeUnicode as normalizeUnicode, __webpack_exports__renderTextLayer as renderTextLayer, __webpack_exports__setLayerDimensions as setLayerDimensions, __webpack_exports__shadow as shadow, __webpack_exports__updateTextLayer as updateTextLayer, __webpack_exports__version as version }; -/******/ - -//# sourceMappingURL=pdf.mjs.map \ No newline at end of file diff --git a/projects/web/public/pdfjs-dist/build/pdf.worker.mjs b/projects/web/public/pdfjs-dist/build/pdf.worker.mjs deleted file mode 100644 index d89becb5c..000000000 --- a/projects/web/public/pdfjs-dist/build/pdf.worker.mjs +++ /dev/null @@ -1,4 +0,0 @@ -var __webpack_require__={d:(exports,definition)=>{for(var key in definition)__webpack_require__.o(definition,key)&&!__webpack_require__.o(exports,key)&&Object.defineProperty(exports,key,{enumerable:!0,get:definition[key]})},o:(obj,prop)=>Object.prototype.hasOwnProperty.call(obj,prop)},__webpack_exports__=globalThis.pdfjsWorker={};__webpack_require__.d(__webpack_exports__,{WorkerMessageHandler:()=>WorkerMessageHandler});const isNodeJS=!("object"!=typeof process||process+""!="[object process]"||process.versions.nw||process.versions.electron&&process.type&&"browser"!==process.type),IDENTITY_MATRIX=[1,0,0,1,0,0],FONT_IDENTITY_MATRIX=[.001,0,0,.001,0,0],MAX_IMAGE_SIZE_TO_CACHE=1e7,LINE_FACTOR=1.35,LINE_DESCENT_FACTOR=.35,BASELINE_FACTOR=LINE_DESCENT_FACTOR/LINE_FACTOR,RenderingIntentFlag={ANY:1,DISPLAY:2,PRINT:4,SAVE:8,ANNOTATIONS_FORMS:16,ANNOTATIONS_STORAGE:32,ANNOTATIONS_DISABLE:64,OPLIST:256},AnnotationMode={DISABLE:0,ENABLE:1,ENABLE_FORMS:2,ENABLE_STORAGE:3},AnnotationEditorPrefix="pdfjs_internal_editor_",AnnotationEditorType={DISABLE:-1,NONE:0,FREETEXT:3,HIGHLIGHT:9,STAMP:13,INK:15},AnnotationEditorParamsType={RESIZE:1,CREATE:2,FREETEXT_SIZE:11,FREETEXT_COLOR:12,FREETEXT_OPACITY:13,INK_COLOR:21,INK_THICKNESS:22,INK_OPACITY:23,HIGHLIGHT_COLOR:31,HIGHLIGHT_DEFAULT_COLOR:32,HIGHLIGHT_THICKNESS:33,HIGHLIGHT_FREE:34,HIGHLIGHT_SHOW_ALL:35},PermissionFlag={PRINT:4,MODIFY_CONTENTS:8,COPY:16,MODIFY_ANNOTATIONS:32,FILL_INTERACTIVE_FORMS:256,COPY_FOR_ACCESSIBILITY:512,ASSEMBLE:1024,PRINT_HIGH_QUALITY:2048},TextRenderingMode={FILL:0,STROKE:1,FILL_STROKE:2,INVISIBLE:3,FILL_ADD_TO_PATH:4,STROKE_ADD_TO_PATH:5,FILL_STROKE_ADD_TO_PATH:6,ADD_TO_PATH:7,FILL_STROKE_MASK:3,ADD_TO_PATH_FLAG:4},ImageKind={GRAYSCALE_1BPP:1,RGB_24BPP:2,RGBA_32BPP:3},AnnotationType={TEXT:1,LINK:2,FREETEXT:3,LINE:4,SQUARE:5,CIRCLE:6,POLYGON:7,POLYLINE:8,HIGHLIGHT:9,UNDERLINE:10,SQUIGGLY:11,STRIKEOUT:12,STAMP:13,CARET:14,INK:15,POPUP:16,FILEATTACHMENT:17,SOUND:18,MOVIE:19,WIDGET:20,SCREEN:21,PRINTERMARK:22,TRAPNET:23,WATERMARK:24,THREED:25,REDACT:26},AnnotationReplyType={GROUP:"Group",REPLY:"R"},AnnotationFlag={INVISIBLE:1,HIDDEN:2,PRINT:4,NOZOOM:8,NOROTATE:16,NOVIEW:32,READONLY:64,LOCKED:128,TOGGLENOVIEW:256,LOCKEDCONTENTS:512},AnnotationFieldFlag={READONLY:1,REQUIRED:2,NOEXPORT:4,MULTILINE:4096,PASSWORD:8192,NOTOGGLETOOFF:16384,RADIO:32768,PUSHBUTTON:65536,COMBO:131072,EDIT:262144,SORT:524288,FILESELECT:1048576,MULTISELECT:2097152,DONOTSPELLCHECK:4194304,DONOTSCROLL:8388608,COMB:16777216,RICHTEXT:33554432,RADIOSINUNISON:33554432,COMMITONSELCHANGE:67108864},AnnotationBorderStyleType={SOLID:1,DASHED:2,BEVELED:3,INSET:4,UNDERLINE:5},AnnotationActionEventType={E:"Mouse Enter",X:"Mouse Exit",D:"Mouse Down",U:"Mouse Up",Fo:"Focus",Bl:"Blur",PO:"PageOpen",PC:"PageClose",PV:"PageVisible",PI:"PageInvisible",K:"Keystroke",F:"Format",V:"Validate",C:"Calculate"},DocumentActionEventType={WC:"WillClose",WS:"WillSave",DS:"DidSave",WP:"WillPrint",DP:"DidPrint"},PageActionEventType={O:"PageOpen",C:"PageClose"},VerbosityLevel={ERRORS:0,WARNINGS:1,INFOS:5},CMapCompressionType={NONE:0,BINARY:1},OPS={dependency:1,setLineWidth:2,setLineCap:3,setLineJoin:4,setMiterLimit:5,setDash:6,setRenderingIntent:7,setFlatness:8,setGState:9,save:10,restore:11,transform:12,moveTo:13,lineTo:14,curveTo:15,curveTo2:16,curveTo3:17,closePath:18,rectangle:19,stroke:20,closeStroke:21,fill:22,eoFill:23,fillStroke:24,eoFillStroke:25,closeFillStroke:26,closeEOFillStroke:27,endPath:28,clip:29,eoClip:30,beginText:31,endText:32,setCharSpacing:33,setWordSpacing:34,setHScale:35,setLeading:36,setFont:37,setTextRenderingMode:38,setTextRise:39,moveText:40,setLeadingMoveText:41,setTextMatrix:42,nextLine:43,showText:44,showSpacedText:45,nextLineShowText:46,nextLineSetSpacingShowText:47,setCharWidth:48,setCharWidthAndBounds:49,setStrokeColorSpace:50,setFillColorSpace:51,setStrokeColor:52,setStrokeColorN:53,setFillColor:54,setFillColorN:55,setStrokeGray:56,setFillGray:57,setStrokeRGBColor:58,setFillRGBColor:59,setStrokeCMYKColor:60,setFillCMYKColor:61,shadingFill:62,beginInlineImage:63,beginImageData:64,endInlineImage:65,paintXObject:66,markPoint:67,markPointProps:68,beginMarkedContent:69,beginMarkedContentProps:70,endMarkedContent:71,beginCompat:72,endCompat:73,paintFormXObjectBegin:74,paintFormXObjectEnd:75,beginGroup:76,endGroup:77,beginAnnotation:80,endAnnotation:81,paintImageMaskXObject:83,paintImageMaskXObjectGroup:84,paintImageXObject:85,paintInlineImageXObject:86,paintInlineImageXObjectGroup:87,paintImageXObjectRepeat:88,paintImageMaskXObjectRepeat:89,paintSolidColorImageMask:90,constructPath:91},PasswordResponses={NEED_PASSWORD:1,INCORRECT_PASSWORD:2};let verbosity=VerbosityLevel.WARNINGS;function setVerbosityLevel(level){Number.isInteger(level)&&(verbosity=level)}function getVerbosityLevel(){return verbosity}function info(msg){verbosity>=VerbosityLevel.INFOS&&console.log("Info: "+msg)}function warn(msg){verbosity>=VerbosityLevel.WARNINGS&&console.log("Warning: "+msg)}function unreachable(msg){throw new Error(msg)}function assert(cond,msg){cond||unreachable(msg)}function _isValidProtocol(url){switch(url?.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}function createValidAbsoluteUrl(url,baseUrl=null,options=null){if(url)try{if(options&&"string"==typeof url)if(options.addDefaultProtocol&&url.startsWith("www.")&&2<=url.match(/\./g)?.length&&(url="http://"+url),options.tryConvertEncoding)try{url=stringToUTF8String(url)}catch{}var absoluteUrl=baseUrl?new URL(url,baseUrl):new URL(url);if(_isValidProtocol(absoluteUrl))return absoluteUrl}catch{}return null}function shadow(obj,prop,value,nonSerializable=!1){return Object.defineProperty(obj,prop,{value:value,enumerable:!nonSerializable,configurable:!0,writable:!1}),value}const BaseException=function(){function BaseException(message,name){this.constructor===BaseException&&unreachable("Cannot initialize BaseException."),this.message=message,this.name=name}return BaseException.prototype=new Error,BaseException.constructor=BaseException}();class PasswordException extends BaseException{constructor(msg,code){super(msg,"PasswordException"),this.code=code}}class UnknownErrorException extends BaseException{constructor(msg,details){super(msg,"UnknownErrorException"),this.details=details}}class InvalidPDFException extends BaseException{constructor(msg){super(msg,"InvalidPDFException")}}class MissingPDFException extends BaseException{constructor(msg){super(msg,"MissingPDFException")}}class UnexpectedResponseException extends BaseException{constructor(msg,status){super(msg,"UnexpectedResponseException"),this.status=status}}class FormatError extends BaseException{constructor(msg){super(msg,"FormatError")}}class AbortException extends BaseException{constructor(msg){super(msg,"AbortException")}}function bytesToString(bytes){"object"==typeof bytes&&void 0!==bytes?.length||unreachable("Invalid argument for bytesToString");var length=bytes.length;if(length<8192)return String.fromCharCode.apply(null,bytes);var strBuf=[];for(let i=0;i>24&255,value>>16&255,value>>8&255,255&value)}function objectSize(obj){return Object.keys(obj).length}function objectFromMap(map){var key,value,obj=Object.create(null);for([key,value]of map)obj[key]=value;return obj}function isLittleEndian(){var buffer8=new Uint8Array(4),buffer8=(buffer8[0]=1,new Uint32Array(buffer8.buffer,0,1));return 1===buffer8[0]}function isEvalSupported(){try{return new Function(""),!0}catch{return!1}}class FeatureTest{static get isLittleEndian(){return shadow(this,"isLittleEndian",isLittleEndian())}static get isEvalSupported(){return shadow(this,"isEvalSupported",isEvalSupported())}static get isOffscreenCanvasSupported(){return shadow(this,"isOffscreenCanvasSupported","undefined"!=typeof OffscreenCanvas)}static get platform(){return"undefined"!=typeof navigator&&"string"==typeof navigator?.platform?shadow(this,"platform",{isMac:navigator.platform.includes("Mac")}):shadow(this,"platform",{isMac:!1})}static get isCSSRoundSupported(){return shadow(this,"isCSSRoundSupported",globalThis.CSS?.supports?.("width: round(1.5px, 1px)"))}}const hexNumbers=Array.from(Array(256).keys(),n=>n.toString(16).padStart(2,"0"));class Util{static makeHexColor(r,g,b){return"#"+hexNumbers[r]+hexNumbers[g]+hexNumbers[b]}static scaleMinMax(transform,minMax){let temp;transform[0]?(transform[0]<0&&(temp=minMax[0],minMax[0]=minMax[2],minMax[2]=temp),minMax[0]*=transform[0],minMax[2]*=transform[0],transform[3]<0&&(temp=minMax[1],minMax[1]=minMax[3],minMax[3]=temp),minMax[1]*=transform[3],minMax[3]*=transform[3]):(temp=minMax[0],minMax[0]=minMax[1],minMax[1]=temp,temp=minMax[2],minMax[2]=minMax[3],minMax[3]=temp,transform[1]<0&&(temp=minMax[1],minMax[1]=minMax[3],minMax[3]=temp),minMax[1]*=transform[1],minMax[3]*=transform[1],transform[2]<0&&(temp=minMax[0],minMax[0]=minMax[2],minMax[2]=temp),minMax[0]*=transform[2],minMax[2]*=transform[2]),minMax[0]+=transform[4],minMax[1]+=transform[5],minMax[2]+=transform[4],minMax[3]+=transform[5]}static transform(m1,m2){return[m1[0]*m2[0]+m1[2]*m2[1],m1[1]*m2[0]+m1[3]*m2[1],m1[0]*m2[2]+m1[2]*m2[3],m1[1]*m2[2]+m1[3]*m2[3],m1[0]*m2[4]+m1[2]*m2[5]+m1[4],m1[1]*m2[4]+m1[3]*m2[5]+m1[5]]}static applyTransform(p,m){return[p[0]*m[0]+p[1]*m[2]+m[4],p[0]*m[1]+p[1]*m[3]+m[5]]}static applyInverseTransform(p,m){var d=m[0]*m[3]-m[1]*m[2];return[(p[0]*m[3]-p[1]*m[2]+m[2]*m[5]-m[4]*m[3])/d,(-p[0]*m[1]+p[1]*m[0]+m[4]*m[1]-m[5]*m[0])/d]}static getAxialAlignedBoundingBox(r,m){var p1=this.applyTransform(r,m),p2=this.applyTransform(r.slice(2,4),m),p3=this.applyTransform([r[0],r[3]],m),r=this.applyTransform([r[2],r[1]],m);return[Math.min(p1[0],p2[0],p3[0],r[0]),Math.min(p1[1],p2[1],p3[1],r[1]),Math.max(p1[0],p2[0],p3[0],r[0]),Math.max(p1[1],p2[1],p3[1],r[1])]}static inverseTransform(m){var d=m[0]*m[3]-m[1]*m[2];return[m[3]/d,-m[1]/d,-m[2]/d,m[0]/d,(m[2]*m[5]-m[4]*m[3])/d,(m[4]*m[1]-m[5]*m[0])/d]}static singularValueDecompose2dScale(m){var transpose=[m[0],m[2],m[1],m[3]],a=m[0]*transpose[0]+m[1]*transpose[2],b=m[0]*transpose[1]+m[1]*transpose[3],c=m[2]*transpose[0]+m[3]*transpose[2],m=m[2]*transpose[1]+m[3]*transpose[3],transpose=(a+m)/2,a=Math.sqrt((a+m)**2-4*(a*m-c*b))/2,m=transpose-a||1;return[Math.sqrt(transpose+a||1),Math.sqrt(m)]}static normalizeRect(rect){var r=rect.slice(0);return rect[0]>rect[2]&&(r[0]=rect[2],r[2]=rect[0]),rect[1]>rect[3]&&(r[1]=rect[3],r[3]=rect[1]),r}static intersect(rect1,rect2){var yLow,xLow=Math.max(Math.min(rect1[0],rect1[2]),Math.min(rect2[0],rect2[2])),xHigh=Math.min(Math.max(rect1[0],rect1[2]),Math.max(rect2[0],rect2[2]));return xHighp1?p1.normalize("NFKC"):NormalizationMap.get(p2))}function getUuid(){if("undefined"!=typeof crypto&&"function"==typeof crypto?.randomUUID)return crypto.randomUUID();var buf=new Uint8Array(32);if("undefined"!=typeof crypto&&"function"==typeof crypto?.getRandomValues)crypto.getRandomValues(buf);else for(let i=0;i<32;i++)buf[i]=Math.floor(255*Math.random());return bytesToString(buf)}const AnnotationPrefix="pdfjs_internal_id_",FontRenderOps={BEZIER_CURVE_TO:0,MOVE_TO:1,LINE_TO:2,QUADRATIC_CURVE_TO:3,RESTORE:4,SAVE:5,SCALE:6,TRANSFORM:7,TRANSLATE:8},CIRCULAR_REF=Symbol("CIRCULAR_REF"),EOF=Symbol("EOF");let CmdCache=Object.create(null),NameCache=Object.create(null),RefCache=Object.create(null);function clearPrimitiveCaches(){CmdCache=Object.create(null),NameCache=Object.create(null),RefCache=Object.create(null)}class Name{constructor(name){this.name=name}static get(name){return NameCache[name]||=new Name(name)}}class Cmd{constructor(cmd){this.cmd=cmd}static get(cmd){return CmdCache[cmd]||=new Cmd(cmd)}}const nonSerializable=function(){return nonSerializable};class Dict{constructor(xref=null){this._map=Object.create(null),this.xref=xref,this.objId=null,this.suppressEncryption=!1,this.__nonSerializable__=nonSerializable}assignXref(newXref){this.xref=newXref}get size(){return Object.keys(this._map).length}get(key1,key2,key3){let value=this._map[key1];return(value=void 0===value&&void 0!==key2&&void 0===(value=this._map[key2])&&void 0!==key3?this._map[key3]:value)instanceof Ref&&this.xref?this.xref.fetch(value,this.suppressEncryption):value}async getAsync(key1,key2,key3){let value=this._map[key1];return(value=void 0===value&&void 0!==key2&&void 0===(value=this._map[key2])&&void 0!==key3?this._map[key3]:value)instanceof Ref&&this.xref?this.xref.fetchAsync(value,this.suppressEncryption):value}getArray(key1,key2,key3){let value=this._map[key1];if((value=void 0===value&&void 0!==key2&&void 0===(value=this._map[key2])&&void 0!==key3?this._map[key3]:value)instanceof Ref&&this.xref&&(value=this.xref.fetch(value,this.suppressEncryption)),Array.isArray(value))for(let i=0,ii=(value=value.slice()).length;i{unreachable("Should not call `set` on the empty dictionary.")},shadow(this,"empty",emptyDict)}static merge({xref,dictArray,mergeSubDicts=!1}){var name,values,mergedDict=new Dict(xref),properties=new Map;for(const dict of dictArray)if(dict instanceof Dict)for(var[key,value]of Object.entries(dict._map)){let property=properties.get(key);if(void 0===property)property=[],properties.set(key,property);else if(!(mergeSubDicts&&value instanceof Dict))continue;property.push(value)}for([name,values]of properties)if(1!==values.length&&values[0]instanceof Dict){var subDict=new Dict(xref);for(const dict of values)for(const[key,value]of Object.entries(dict._map))void 0===subDict._map[key]&&(subDict._map[key]=value);0>24}function readUint16(data,offset){return data[offset]<<8|data[offset+1]}function readUint32(data,offset){return(data[offset]<<24|data[offset+1]<<16|data[offset+2]<<8|data[offset+3])>>>0}function isWhiteSpace(ch){return 32===ch||9===ch||13===ch||10===ch}function isNumberArray(arr,len){return Array.isArray(arr)&&(null===len||arr.length===len)&&arr.every(x=>"number"==typeof x)}function parseXFAPath(path){const positionPattern=/(.+)\[(\d+)\]$/;return path.split(".").map(component=>{var m=component.match(positionPattern);return m?{name:m[1],pos:parseInt(m[2],10)}:{name:component,pos:0}})}function escapePDFName(str){var buffer=[];let start=0;for(let i=0,ii=str.length;i"\n"===match?"\\n":"\r"===match?"\\r":"\\"+match)}function _collectJS(entry,xref,list,parents){if(entry){let parent=null;if(entry instanceof Ref){if(parents.has(entry))return;parent=entry,parents.put(parent),entry=xref.fetch(entry)}if(Array.isArray(entry))for(const element of entry)_collectJS(element,xref,list,parents);else if(entry instanceof Dict){if(isName(entry.get("S"),"JavaScript")){var js=entry.get("JS");let code;js instanceof BaseStream?code=js.getString():"string"==typeof js&&(code=js),(code&&=stringToPDFString(code).replaceAll("\0",""))&&list.push(code)}_collectJS(entry.getRaw("Next"),xref,list,parents)}parent&&parents.remove(parent)}}function collectActions(xref,dict,eventType){var actions=Object.create(null),additionalActionsDicts=getInheritableProperty({dict:dict,key:"AA",stopWhenFound:!1});if(additionalActionsDicts)for(let i=additionalActionsDicts.length-1;0<=i;i--){var additionalActions=additionalActionsDicts[i];if(additionalActions instanceof Dict)for(const key of additionalActions.getKeys()){var list,action=eventType[key];action&&(list=[],_collectJS(additionalActions.getRaw(key),xref,list,new RefSet),0: ${fontFamily}.`),!1;return!0}function validateCSSFont(cssFontInfo){var CSS_FONT_WEIGHT_VALUES=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily,fontWeight,italicAngle}=cssFontInfo;return!!validateFontName(fontFamily,!0)&&(fontFamily=fontWeight?fontWeight.toString():"",cssFontInfo.fontWeight=CSS_FONT_WEIGHT_VALUES.has(fontFamily)?fontFamily:"400",fontWeight=parseFloat(italicAngle),cssFontInfo.italicAngle=isNaN(fontWeight)||fontWeight<-90||90>8&255).toString(16).padStart(2,"0"),(255&char).toString(16).padStart(2,"0"))}return buf.join("")}function stringToUTF16String(str,bigEndian=!1){var buf=[];bigEndian&&buf.push("þÿ");for(let i=0,ii=str.length;i>8&255),String.fromCharCode(255&char))}return buf.join("")}function getRotationMatrix(rotation,width,height){switch(rotation){case 90:return[0,1,-1,0,width,0];case 180:return[-1,0,0,-1,width,height];case 270:return[0,-1,1,0,0,height];default:throw new Error("Invalid rotation")}}function getSizeInBytes(x){return Math.ceil(Math.ceil(Math.log2(1+x))/8)}class Stream extends BaseStream{constructor(arrayBuffer,start,length,dict){super(),this.bytes=arrayBuffer instanceof Uint8Array?arrayBuffer:new Uint8Array(arrayBuffer),this.start=start||0,this.pos=this.start,this.end=start+length||this.bytes.length,this.dict=dict}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(length){var bytes=this.bytes,pos=this.pos,strEnd=this.end;if(!length)return bytes.subarray(pos,strEnd);let end=pos+length;return end>strEnd&&(end=strEnd),this.pos=end,bytes.subarray(pos,end)}getByteRange(begin,end){return end>this.end&&(end=this.end),this.bytes.subarray(begin=begin<0?0:begin,end)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(start,length,dict=null){return new Stream(this.bytes.buffer,start,length,dict)}}class StringStream extends Stream{constructor(str){super(stringToBytes(str))}}class NullStream extends Stream{constructor(){super(new Uint8Array(0))}}class ChunkedStream extends Stream{constructor(length,chunkSize,manager){super(new Uint8Array(length),0,length,null),this.chunkSize=chunkSize,this._loadedChunks=new Set,this.numChunks=Math.ceil(length/chunkSize),this.manager=manager,this.progressiveDataLength=0,this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){var chunks=[];for(let chunk=0,n=this.numChunks;chunk=this.end?this.numChunks:Math.floor(position/this.chunkSize));for(let curChunk=beginChunk;curChunkthis.numChunks)&&chunk!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(chunk))throw new MissingDataException(pos,pos+1);this.lastSuccessfulEnsureByteChunk=chunk}}}ensureRange(begin,end){if(!(end<=begin||end<=this.progressiveDataLength)){var beginChunk=Math.floor(begin/this.chunkSize);if(!(beginChunk>this.numChunks)){var endChunk=Math.min(Math.floor((end-1)/this.chunkSize)+1,this.numChunks);for(let chunk=beginChunk;chunk=this.end?-1:(pos>=this.progressiveDataLength&&this.ensureByte(pos),this.bytes[this.pos++])}getBytes(length){var bytes=this.bytes,pos=this.pos,strEnd=this.end;if(!length)return strEnd>this.progressiveDataLength&&this.ensureRange(pos,strEnd),bytes.subarray(pos,strEnd);let end=pos+length;return(end=end>strEnd?strEnd:end)>this.progressiveDataLength&&this.ensureRange(pos,end),this.pos=end,bytes.subarray(pos,end)}getByteRange(begin,end){return begin<0&&(begin=0),(end=end>this.end?this.end:end)>this.progressiveDataLength&&this.ensureRange(begin,end),this.bytes.subarray(begin,end)}makeSubStream(start,length,dict=null){function ChunkedStreamSubstream(){}length?start+length>this.progressiveDataLength&&this.ensureRange(start,start+length):start>=this.progressiveDataLength&&this.ensureByte(start),(ChunkedStreamSubstream.prototype=Object.create(this)).getMissingChunks=function(){var chunkSize=this.chunkSize,beginChunk=Math.floor(this.start/chunkSize),endChunk=Math.floor((this.end-1)/chunkSize)+1,missingChunks=[];for(let chunk=beginChunk;chunk{const readChunk=({value,done})=>{try{var chunkData;done?(chunkData=arrayBuffersToBytes(chunks),chunks=null,resolve(chunkData)):(loaded+=value.byteLength,rangeReader.isStreamingSupported&&this.onProgress({loaded:loaded}),chunks.push(value),rangeReader.read().then(readChunk,reject))}catch(e){reject(e)}};rangeReader.read().then(readChunk,reject)}).then(data=>{this.aborted||this.onReceiveData({chunk:data,begin:begin})})}requestAllChunks(noFetch=!1){return noFetch||(noFetch=this.stream.getMissingChunks(),this._requestChunks(noFetch)),this._loadedStreamCapability.promise}_requestChunks(chunks){var requestId=this.currRequestId++,chunksNeeded=new Set;this._chunksNeededByRequest.set(requestId,chunksNeeded);for(const chunk of chunks)this.stream.hasChunk(chunk)||chunksNeeded.add(chunk);if(0===chunksNeeded.size)return Promise.resolve();var capability=Promise.withResolvers(),chunksToRequest=(this._promisesByRequest.set(requestId,capability),[]);for(const chunk of chunksNeeded){let requestIds=this._requestsByChunk.get(chunk);requestIds||(requestIds=[],this._requestsByChunk.set(chunk,requestIds),chunksToRequest.push(chunk)),requestIds.push(requestId)}if(0{if(!this.aborted)throw reason})}getStream(){return this.stream}requestRange(begin,end){end=Math.min(end,this.length);var begin=this.getBeginChunk(begin),endChunk=this.getEndChunk(end),chunks=[];for(let chunk=begin;chunkthis.amax||this.bmin>this.bmax)&&(info("Invalid Range, falling back to defaults"),this.amin=-100,this.amax=100,this.bmin=-100,this.bmax=100)}#fn_g(x){return 6/29<=x?x**3:108/841*(x-4/29)}#decode(value,high1,low2,high2){return low2+value*(high2-low2)/high1}#toRgb(src,srcOffset,maxVal,dest,destOffset){let Ls=src[srcOffset],as=src[srcOffset+1],bs=src[srcOffset+2];!1!==maxVal&&(Ls=this.#decode(Ls,maxVal,0,100),as=this.#decode(as,maxVal,this.amin,this.amax),bs=this.#decode(bs,maxVal,this.bmin,this.bmax)),as>this.amax?as=this.amax:asthis.bmax?bs=this.bmax:bs>>0}function hexToStr(a,size){return 1===size?String.fromCharCode(a[0],a[1]):3===size?String.fromCharCode(a[0],a[1],a[2],a[3]):String.fromCharCode(...a.subarray(0,size+1))}function addHex(a,b,size){let c=0;for(let i=size;0<=i;i--)c+=a[i]+b[i],a[i]=255&c,c>>=8}function incHex(a,size){let c=1;for(let i=size;0<=i&&0>=8}const MAX_NUM_SIZE=16,MAX_ENCODED_NUM_SIZE=19;class BinaryCMapStream{constructor(data){this.buffer=data,this.pos=0,this.end=data.length,this.tmpBuf=new Uint8Array(MAX_ENCODED_NUM_SIZE)}readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}readNumber(){let n=0;var last;do{var b=this.readByte();if(b<0)throw new FormatError("unexpected EOF in bcmap");last=!(128&b),n=n<<7|127&b}while(!last);return n}readSigned(){var n=this.readNumber();return 1&n?~(n>>>1):n>>>1}readHex(num,size){num.set(this.buffer.subarray(this.pos,this.pos+size+1)),this.pos+=size+1}readHexNumber(num,size){var last,stack=this.tmpBuf;let sp=0;do{var b=this.readByte();if(b<0)throw new FormatError("unexpected EOF in bcmap");last=!(128&b),stack[sp++]=127&b}while(!last);let i=size,buffer=0,bufferSize=0;for(;0<=i;){for(;bufferSize<8&&0>=8,bufferSize-=8}}readHexSigned(num,size){this.readHexNumber(num,size);var sign=1&num[size]?255:0;let c=0;for(let i=0;i<=size;i++)c=(1&c)<<8|num[i],num[i]=c>>1^sign}readString(){var len=this.readNumber(),buf=new Array(len);for(let i=0;i>5;if(7==type)switch(31&b){case 0:stream.readString();break;case 1:useCMap=stream.readString()}else{var sequence=!!(16&b),dataSize=15&b;if(1+dataSize>MAX_NUM_SIZE)throw new Error("BinaryCMapReader.process: Invalid dataSize.");var subitemsCount=stream.readNumber();switch(type){case 0:stream.readHex(start,dataSize),stream.readHexNumber(end,dataSize),addHex(end,start,dataSize),cMap.addCodespaceRange(1+dataSize,hexToInt(start,dataSize),hexToInt(end,dataSize));for(let i=1;ilength&&(end=length)}else{for(;!this.eof;)this.readBlock(ignoreColorSpace);end=this.bufferLength}return this.pos=end,this.buffer.subarray(pos,end)}reset(){this.pos=0}makeSubStream(start,length,dict=null){if(void 0===length)for(;!this.eof;)this.readBlock();else for(var end=start+length;this.bufferLength<=end&&!this.eof;)this.readBlock();return new Stream(this.buffer,start,length,dict)}getBaseStreams(){return this.str?this.str.getBaseStreams():null}}class StreamsSequenceStream extends DecodeStream{constructor(streams,onError=null){let maybeLength=0;for(const stream of streams)maybeLength+=stream instanceof DecodeStream?stream._rawMinBufferLength:stream.length;super(maybeLength),this.streams=streams,this._onError=onError}readBlock(){var streams=this.streams;if(0===streams.length)this.eof=!0;else{streams=streams.shift();let chunk;try{chunk=streams.getBytes()}catch(reason){if(this._onError)return void this._onError(reason,streams.dict?.objId);throw reason}var streams=this.bufferLength,newLength=streams+chunk.length;this.ensureBuffer(newLength).set(chunk,streams),this.bufferLength=newLength}}getBaseStreams(){var baseStreamsBuf=[];for(const stream of this.streams){var baseStreams=stream.getBaseStreams();baseStreams&&baseStreamsBuf.push(...baseStreams)}return 0>=8}}}}class AsciiHexStream extends DecodeStream{constructor(str,maybeLength){maybeLength&&(maybeLength*=.5),super(maybeLength),this.str=str,this.dict=str.dict,this.firstDigit=-1}readBlock(){var bytes=this.str.getBytes(8e3);if(bytes.length){var maxDecodeLength=bytes.length+1>>1,buffer=this.ensureBuffer(this.bufferLength+maxDecodeLength);let bufferLength=this.bufferLength,firstDigit=this.firstDigit;for(const ch of bytes){let digit;if(48<=ch&&ch<=57)digit=15&ch;else{if(!(65<=ch&&ch<=70||97<=ch&&ch<=102)){if(62!==ch)continue;this.eof=!0;break}digit=9+(15&ch)}firstDigit=firstDigit<0?digit:(buffer[bufferLength++]=firstDigit<<4|digit,-1)}0<=firstDigit&&this.eof&&(buffer[bufferLength++]=firstDigit<<4,firstDigit=-1),this.firstDigit=firstDigit,this.bufferLength=bufferLength}else this.eof=!0}}const ccittEOL=-2,ccittEOF=-1,twoDimPass=0,twoDimHoriz=1,twoDimVert0=2,twoDimVertR1=3,twoDimVertL1=4,twoDimVertR2=5,twoDimVertL2=6,twoDimVertR3=7,twoDimVertL3=8,twoDimTable=[[-1,-1],[-1,-1],[7,twoDimVertL3],[7,twoDimVertR3],[6,twoDimVertL2],[6,twoDimVertL2],[6,twoDimVertR2],[6,twoDimVertR2],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[4,twoDimPass],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimHoriz],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertL1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[3,twoDimVertR1],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0],[1,twoDimVert0]],whiteTable1=[[-1,-1],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],whiteTable2=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],blackTable1=[[-1,-1],[-1,-1],[12,ccittEOL],[12,ccittEOL],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],blackTable2=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],blackTable3=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];class CCITTFaxDecoder{constructor(source,options={}){if(!source||"function"!=typeof source.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=source,this.eof=!1,this.encoding=options.K||0,this.eoline=options.EndOfLine||!1,this.byteAlign=options.EncodedByteAlign||!1,this.columns=options.Columns||1728,this.rows=options.Rows||0,this.eoblock=options.EndOfBlock??!0,this.black=options.BlackIs1||!1,this.codingLine=new Uint32Array(this.columns+1),this.refLine=new Uint32Array(this.columns+2),this.codingLine[0]=this.columns,this.codingPos=0,this.row=0,this.nextLine2D=this.encoding<0,this.inputBits=0,this.inputBuf=0,this.outputBits=0,this.rowsDone=!1;let code1;for(;0===(code1=this._lookBits(12));)this._eatBits(1);1===code1&&this._eatBits(12),0>1==1)break;this._eatBits(1)}this._eatBits(12),0bits?(c<<=bits,1&this.codingPos||(c|=255>>8-bits),this.outputBits-=bits,bits=0):(c<<=this.outputBits,1&this.codingPos||(c|=255>>8-this.outputBits),bits-=this.outputBits,this.outputBits=0,codingLine[this.codingPos]codingLine[codingPos]&&(a1>this.columns&&(info("row is wrong length"),this.err=!0,a1=this.columns),1&codingPos^blackPixels&&++codingPos,codingLine[codingPos]=a1),this.codingPos=codingPos}_addPixelsNeg(a1,blackPixels){var codingLine=this.codingLine;let codingPos=this.codingPos;if(a1>codingLine[codingPos])a1>this.columns&&(info("row is wrong length"),this.err=!0,a1=this.columns),1&codingPos^blackPixels&&++codingPos,codingLine[codingPos]=a1;else if(a1=limitValue){var p=table[code-limitValue];if(p[0]===i)return this._eatBits(i),[!0,p[1],!0]}}return[!1,0,!1]}_getTwoDimCode(){if(this.eoblock){if(code=this._lookBits(7),0<(code=twoDimTable[code])?.[0])return this._eatBits(code[0]),code[1]}else{var code=this._findTableCode(1,7,twoDimTable);if(code[0]&&code[2])return code[1]}return info("Bad two dim code"),ccittEOF}_getWhiteCode(){if(this.eoblock){if((code=this._lookBits(12))===ccittEOF)return 1;if(0<(code=code>>5==0?whiteTable1[code]:whiteTable2[code>>3])[0])return this._eatBits(code[0]),code[1]}else{var code=this._findTableCode(1,9,whiteTable2);if(code[0])return code[1];if((code=this._findTableCode(11,12,whiteTable1))[0])return code[1]}return info("bad white code"),this._eatBits(1),1}_getBlackCode(){let code,p;if(this.eoblock){if((code=this._lookBits(13))===ccittEOF)return 1;if(0<(p=code>>7==0?blackTable1[code]:code>>9==0&&code>>7!=0?blackTable2[(code>>1)-64]:blackTable3[code>>7])[0])return this._eatBits(p[0]),p[1]}else{var result=this._findTableCode(2,6,blackTable3);if(result[0])return result[1];if((result=this._findTableCode(7,12,blackTable2,64))[0])return result[1];if((result=this._findTableCode(10,13,blackTable1))[0])return result[1]}return info("bad black code"),this._eatBits(1),1}_lookBits(n){for(var c;this.inputBits>16-n;this.inputBuf=this.inputBuf<<8|c,this.inputBits+=8}return this.inputBuf>>this.inputBits-n&65535>>16-n}_eatBits(n){(this.inputBits-=n)<0&&(this.inputBits=0)}}class CCITTFaxStream extends DecodeStream{constructor(str,maybeLength,params){super(maybeLength),this.str=str,this.dict=str.dict,params instanceof Dict||(params=Dict.empty);maybeLength={next(){return str.getByte()}};this.ccittFaxDecoder=new CCITTFaxDecoder(maybeLength,{K:params.get("K"),EndOfLine:params.get("EndOfLine"),EncodedByteAlign:params.get("EncodedByteAlign"),Columns:params.get("Columns"),Rows:params.get("Rows"),EndOfBlock:params.get("EndOfBlock"),BlackIs1:params.get("BlackIs1")})}readBlock(){for(;!this.eof;){var c=this.ccittFaxDecoder.readNextChar();if(-1===c)return void(this.eof=!0);this.ensureBuffer(this.bufferLength+1),this.buffer[this.bufferLength++]=c}}}const codeLenCodeMap=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),lengthDecode=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),distDecode=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),fixedLitCodeTab=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],fixedDistCodeTab=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];class FlateStream extends DecodeStream{constructor(str,maybeLength){super(maybeLength),this.str=str,this.dict=str.dict;maybeLength=str.getByte(),str=str.getByte();if(-1===maybeLength||-1===str)throw new FormatError(`Invalid header in flate stream: ${maybeLength}, `+str);if(8!=(15&maybeLength))throw new FormatError(`Unknown compression method in flate stream: ${maybeLength}, `+str);if(((maybeLength<<8)+str)%31!=0)throw new FormatError(`Bad FCHECK in flate stream: ${maybeLength}, `+str);if(32&str)throw new FormatError(`FDICT bit set in flate stream: ${maybeLength}, `+str);this.codeSize=0,this.codeBuf=0}getBits(bits){var str=this.str;let codeSize=this.codeSize,codeBuf=this.codeBuf,b;for(;codeSize>bits,this.codeSize=codeSize-=bits,b}getCode(table){var b,str=this.str,codes=table[0],maxLen=table[1];let codeSize=this.codeSize,codeBuf=this.codeBuf;for(;codeSize>16,table&=65535;if(codes<1||codeSize>codes,this.codeSize=codeSize-codes,table}generateHuffmanTable(lengths){var n=lengths.length;let maxLen=0,i;for(i=0;imaxLen&&(maxLen=lengths[i]);var size=1<>=1;for(i=code2;i>=1))if(-1===(b=str.getByte()))this.#endsStreamOnError("Bad block header in flate stream");else{var blockLen=b;if(-1===(b=str.getByte()))this.#endsStreamOnError("Bad block header in flate stream");else if(blockLen|=b<<8,-1===(b=str.getByte()))this.#endsStreamOnError("Bad block header in flate stream");else{var check=b;if(-1===(b=str.getByte()))this.#endsStreamOnError("Bad block header in flate stream");else{if((check|=b<<8)!=(65535&~blockLen)&&(0!=blockLen||0!=check))throw new FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0,this.codeSize=0;var b=this.bufferLength,check=b+blockLen;buffer=this.ensureBuffer(check),this.bufferLength=check,0==blockLen?-1===str.peekByte()&&(this.eof=!0):(check=str.getBytes(blockLen),buffer.set(check,b),check.length=limit&&(buffer=this.ensureBuffer(pos+1),limit=buffer.length),buffer[pos++]=code1;else{if(256===code1)return void(this.bufferLength=pos);code1-=257;let code2=(code1=lengthDecode[code1])>>16;0>16)?this.getBits(code2):code2);pos+len>=limit&&(buffer=this.ensureBuffer(pos+len),limit=buffer.length);for(let k=0;k>9&127,this.clow=this.clow<<7&65535,this.ct-=7,this.a=32768}byteIn(){var data=this.data;let bp=this.bp;255===data[bp]?143>16,this.clow&=65535)}readBit(contexts,pos){let cx_index=contexts[pos]>>1,cx_mps=1&contexts[pos];var qeTableIcx=QeTable[cx_index],qeIcx=qeTableIcx.qe;let d,a=this.a-qeIcx;if(this.chigh>15&1,this.clow=this.clow<<1&65535,this.ct--,0==(32768&a););return this.a=a,contexts[pos]=cx_index<<1|cx_mps,d}}class Jbig2Error extends BaseException{constructor(msg){super(msg,"Jbig2Error")}}class ContextCache{getContexts(id){return id in this?this[id]:this[id]=new Int8Array(65536)}}class DecodingContext{constructor(data,start,end){this.data=data,this.start=start,this.end=end}get decoder(){return shadow(this,"decoder",new ArithmeticDecoder(this.data,this.start,this.end))}get contextCache(){return shadow(this,"contextCache",new ContextCache)}}const MAX_INT_32=2**31-1,MIN_INT_32=-(2**31);function decodeInteger(contextCache,procedure,decoder){const contexts=contextCache.getContexts(procedure);let prev=1;function readBits(length){let v=0;for(let i=0;i>>0}contextCache=readBits(1),procedure=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);let signedValue;return 0===contextCache?signedValue=procedure:0=MIN_INT_32&&signedValue<=MAX_INT_32?signedValue:null}function decodeIAID(contextCache,decoder,codeLength){var contexts=contextCache.getContexts("IAID");let prev=1;for(let i=0;i=sbb_left&&j=sbb_top)for(contextLabel=contextLabel<<1&reuseMask,k=0;k=width?contextLabel<<=1:contextLabel=contextLabel<<1|bitmap[i0][j0];for(k=0;k=referenceHeight||j0<0||j0>=referenceWidth?contextLabel<<=1:contextLabel=contextLabel<<1|referenceBitmap[i0][j0];var pixel=decoder.readBit(contexts,contextLabel);row[j]=pixel}}return bitmap}function decodeSymbolDictionary(huffman,refinement,symbols,numberOfNewSymbols,numberOfExportedSymbols,huffmanTables,templateIndex,at,refinementTemplateIndex,refinementAt,decodingContext,huffmanInput){if(huffman&&refinement)throw new Jbig2Error("symbol refinement with Huffman is not supported");var newSymbols=[];let currentHeight=0,symbolCodeLength=log2(symbols.length+numberOfNewSymbols);var decoder=decodingContext.decoder,contextCache=decodingContext.contextCache;let tableB1,symbolWidths;for(huffman&&(tableB1=getStandardTable(1),symbolWidths=[],symbolCodeLength=Math.max(symbolCodeLength,1));newSymbols.length>1)+rdx,(applyRefinement>>1)+rdy,!1,refinementAt,decodingContext)),0);transposed?1&referenceCorner?increment=symbolHeight-1:currentS+=symbolHeight-1:1>8,y=gridOffsetY+mg*gridVectorX-ng*gridVectorY>>8,0<=x&&x+patternWidth<=regionWidth&&0<=y&&y+patternHeight<=regionHeight)for(i=0;i>5&7;var retainBits=[31&referredFlags];let position=start+6;if(7===referredFlags){referredToCount=536870911&readUint32(data,position-1),position+=3;let bytes=referredToCount+7>>3;for(retainBits[0]=data[position++];0<--bytes;)retainBits.push(data[position++])}else if(5===referredFlags||6===referredFlags)throw new Jbig2Error("invalid referred-to flags");segmentHeader.retainBits=retainBits;let referredToSegmentNumberSize=4;segmentHeader.number<=256?referredToSegmentNumberSize=1:segmentHeader.number<=65536&&(referredToSegmentNumberSize=2);var referredTo=[];let i,ii;for(i=0;i>>24&255,searchPattern[3]=start.height>>16&255,searchPattern[4]=start.height>>8&255,searchPattern[5]=255&start.height,i=position,ii=data.length;i>2&3,dictionary.huffmanDWSelector=dictionaryFlags>>4&3,dictionary.bitmapSizeSelector=dictionaryFlags>>6&1,dictionary.aggregationInstancesSelector=dictionaryFlags>>7&1,dictionary.bitmapCodingContextUsed=!!(256&dictionaryFlags),dictionary.bitmapCodingContextRetained=!!(512&dictionaryFlags),dictionary.template=dictionaryFlags>>10&3,dictionary.refinementTemplate=dictionaryFlags>>12&1,position+=2,!dictionary.huffman){for(atLength=0===dictionary.template?4:1,at=[],i=0;i>2&3,dictionaryFlags.stripSize=1<>4&3,dictionaryFlags.transposed=!!(64&dictionary),dictionaryFlags.combinationOperator=dictionary>>7&3,dictionaryFlags.defaultPixelValue=dictionary>>9&1,dictionaryFlags.dsOffset=dictionary<<17>>27,dictionaryFlags.refinementTemplate=dictionary>>15&1,dictionaryFlags.huffman&&(dictionary=readUint16(data,position),position+=2,dictionaryFlags.huffmanFS=3&dictionary,dictionaryFlags.huffmanDS=dictionary>>2&3,dictionaryFlags.huffmanDT=dictionary>>4&3,dictionaryFlags.huffmanRefinementDW=dictionary>>6&3,dictionaryFlags.huffmanRefinementDH=dictionary>>8&3,dictionaryFlags.huffmanRefinementDX=dictionary>>10&3,dictionaryFlags.huffmanRefinementDY=dictionary>>12&3,dictionaryFlags.huffmanRefinementSizeSelector=!!(16384&dictionary)),dictionaryFlags.refinement&&!dictionaryFlags.refinementTemplate){for(at=[],i=0;i<2;i++)at.push({x:readInt8(data,position),y:readInt8(data,position+1)}),position+=2;dictionaryFlags.refinementAt=at}dictionaryFlags.numberOfSymbolInstances=readUint32(data,position),position+=4,args=[dictionaryFlags,header.referredTo,data,position,end];break;case 16:dictionary={},dictionaryFlags=data[position++];dictionary.mmr=!!(1&dictionaryFlags),dictionary.template=dictionaryFlags>>1&3,dictionary.patternWidth=data[position++],dictionary.patternHeight=data[position++],dictionary.maxPatternIndex=readUint32(data,position),position+=4,args=[dictionary,header.number,data,position,end];break;case 22:case 23:dictionaryFlags={},dictionary=(dictionaryFlags.info=readRegionSegmentInformation(data,position),position+=RegionSegmentInformationFieldLength,data[position++]);dictionaryFlags.mmr=!!(1&dictionary),dictionaryFlags.template=dictionary>>1&3,dictionaryFlags.enableSkip=!!(8&dictionary),dictionaryFlags.combinationOperator=dictionary>>4&7,dictionaryFlags.defaultPixelValue=dictionary>>7&1,dictionaryFlags.gridWidth=readUint32(data,position),position+=4,dictionaryFlags.gridHeight=readUint32(data,position),position+=4,dictionaryFlags.gridOffsetX=4294967295&readUint32(data,position),position+=4,dictionaryFlags.gridOffsetY=4294967295&readUint32(data,position),position+=4,dictionaryFlags.gridVectorX=readUint16(data,position),position+=2,dictionaryFlags.gridVectorY=readUint16(data,position),position+=2,args=[dictionaryFlags,header.referredTo,data,position,end];break;case 38:case 39:dictionary={},dictionaryFlags=(dictionary.info=readRegionSegmentInformation(data,position),position+=RegionSegmentInformationFieldLength,data[position++]);if(dictionary.mmr=!!(1&dictionaryFlags),dictionary.template=dictionaryFlags>>1&3,dictionary.prediction=!!(8&dictionaryFlags),!dictionary.mmr){for(atLength=0===dictionary.template?4:1,at=[],i=0;i>2&1,dictionaryFlags.combinationOperator=dictionary>>3&3,dictionaryFlags.requiresBuffer=!!(32&dictionary),dictionaryFlags.combinationOperatorOverride=!!(64&dictionary),args=[dictionaryFlags];break;case 49:case 50:case 51:break;case 53:args=[header.number,data,position,end];break;case 62:break;default:throw new Jbig2Error(`segment type ${header.typeName}(${header.type}) is not implemented`)}segment="on"+header.typeName;segment in visitor&&visitor[segment].apply(visitor,args)}function processSegments(segments,visitor){for(let i=0,ii=segments.length;i>3,rowSize=new Uint8ClampedArray(rowSize*info.height);info.defaultPixelValue&&rowSize.fill(255),this.buffer=rowSize}drawBitmap(regionInfo,bitmap){var pageInfo=this.currentPageInfo,width=regionInfo.width,height=regionInfo.height,rowSize=pageInfo.width+7>>3,combinationOperator=(pageInfo.combinationOperatorOverride?regionInfo:pageInfo).combinationOperator,buffer=this.buffer,mask0=128>>(7®ionInfo.x);let offset0=regionInfo.y*rowSize+(regionInfo.x>>3),i,j,mask,offset;switch(combinationOperator){case 0:for(i=0;i>=1)||(mask=128,offset++);offset0+=rowSize}break;case 2:for(i=0;i>=1)||(mask=128,offset++);offset0+=rowSize}break;default:throw new Jbig2Error(`operator ${combinationOperator} is not supported`)}}onImmediateGenericRegion(region,data,start,end){var regionInfo=region.info,data=new DecodingContext(data,start,end),start=decodeBitmap(region.mmr,regionInfo.width,regionInfo.height,region.template,region.prediction,null,region.at,data);this.drawBitmap(regionInfo,start)}onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion(...arguments)}onSymbolDictionary(dictionary,currentSegment,referredSegments,data,start,end){let huffmanTables,huffmanInput,symbols=(dictionary.huffman&&(huffmanTables=getSymbolDictionaryHuffmanTables(dictionary,referredSegments,this.customTables),huffmanInput=new Reader(data,start,end)),this.symbols);symbols||(this.symbols=symbols={});var inputSymbols=[];for(const referredSegment of referredSegments){var referredSymbols=symbols[referredSegment];referredSymbols&&inputSymbols.push(...referredSymbols)}referredSegments=new DecodingContext(data,start,end);symbols[currentSegment]=decodeSymbolDictionary(dictionary.huffman,dictionary.refinement,inputSymbols,dictionary.numberOfNewSymbols,dictionary.numberOfExportedSymbols,huffmanTables,dictionary.template,dictionary.at,dictionary.refinementTemplate,dictionary.refinementAt,referredSegments,huffmanInput)}onImmediateTextRegion(region,referredSegments,data,start,end){var regionInfo=region.info;let huffmanTables,huffmanInput;var symbols=this.symbols,inputSymbols=[];for(const referredSegment of referredSegments){var referredSymbols=symbols[referredSegment];referredSymbols&&inputSymbols.push(...referredSymbols)}var symbolCodeLength=log2(inputSymbols.length),referredSegments=(region.huffman&&(huffmanInput=new Reader(data,start,end),huffmanTables=getTextRegionHuffmanTables(region,referredSegments,this.customTables,inputSymbols.length,huffmanInput)),new DecodingContext(data,start,end)),data=decodeTextRegion(region.huffman,region.refinement,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.numberOfSymbolInstances,region.stripSize,inputSymbols,symbolCodeLength,region.transposed,region.dsOffset,region.referenceCorner,region.combinationOperator,huffmanTables,region.refinementTemplate,region.refinementAt,referredSegments,region.logStripSize,huffmanInput);this.drawBitmap(regionInfo,data)}onImmediateLosslessTextRegion(){this.onImmediateTextRegion(...arguments)}onPatternDictionary(dictionary,currentSegment,data,start,end){let patterns=this.patterns;patterns||(this.patterns=patterns={});data=new DecodingContext(data,start,end);patterns[currentSegment]=decodePatternDictionary(dictionary.mmr,dictionary.patternWidth,dictionary.patternHeight,dictionary.maxPatternIndex,dictionary.template,data)}onImmediateHalftoneRegion(region,referredSegments,data,start,end){var referredSegments=this.patterns[referredSegments[0]],regionInfo=region.info,data=new DecodingContext(data,start,end),start=decodeHalftoneRegion(region.mmr,referredSegments,region.template,regionInfo.width,regionInfo.height,region.defaultPixelValue,region.enableSkip,region.combinationOperator,region.gridWidth,region.gridHeight,region.gridOffsetX,region.gridOffsetY,region.gridVectorX,region.gridVectorY,data);this.drawBitmap(regionInfo,start)}onImmediateLosslessHalftoneRegion(){this.onImmediateHalftoneRegion(...arguments)}onTables(currentSegment,data,start,end){let customTables=this.customTables;customTables||(this.customTables=customTables={}),customTables[currentSegment]=decodeTablesSegment(data,start,end)}}class HuffmanLine{constructor(lineData){2===lineData.length?(this.isOOB=!0,this.rangeLow=0,this.prefixLength=lineData[0],this.rangeLength=0,this.prefixCode=lineData[1],this.isLowerRange=!1):(this.isOOB=!1,this.rangeLow=lineData[0],this.prefixLength=lineData[1],this.rangeLength=lineData[2],this.prefixCode=lineData[3],this.isLowerRange="lower"===lineData[4])}}class HuffmanTreeNode{constructor(line){this.children=[],line?(this.isLeaf=!0,this.rangeLength=line.rangeLength,this.rangeLow=line.rangeLow,this.isLowerRange=line.isLowerRange,this.isOOB=line.isOOB):this.isLeaf=!1}buildTree(line,shift){var bit=line.prefixCode>>shift&1;if(shift<=0)this.children[bit]=new HuffmanTreeNode(line);else{let node=this.children[bit];node||(this.children[bit]=node=new HuffmanTreeNode(null)),node.buildTree(line,shift-1)}}decodeNode(reader){if(this.isLeaf)return this.isOOB?null:(htOffset=reader.readBits(this.rangeLength),this.rangeLow+(this.isLowerRange?-htOffset:htOffset));var htOffset=this.children[reader.readBit()];if(htOffset)return htOffset.decodeNode(reader);throw new Jbig2Error("invalid Huffman data")}}class HuffmanTable{constructor(lines,prefixCodesDone){prefixCodesDone||this.assignPrefixCodes(lines),this.rootNode=new HuffmanTreeNode(null);for(let i=0,ii=lines.length;i>1&7),rangeSizeBits=1+(flags>>4&7),lines=[];let prefixLength,rangeLength,currentRangeLow=lowestValue;for(;prefixLength=reader.readBits(prefixSizeBits),rangeLength=reader.readBits(rangeSizeBits),lines.push(new HuffmanLine([currentRangeLow,prefixLength,rangeLength,0])),(currentRangeLow+=1<=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++],this.shift=7}var bit=this.currentByte>>this.shift&1;return this.shift--,bit}readBits(numBits){let result=0,i;for(i=numBits-1;0<=i;i--)result|=this.readBit()<=this.end?-1:this.data[this.position++]}}function getCustomHuffmanTable(index,referredTo,customTables){let currentIndex=0;for(let i=0,ii=referredTo.length;i>shift&1,shift--}if(endOfBlock&&!eof)for(let i=0;i<5&&-1!==decoder.readNextChar();i++);return bitmap}class Jbig2Image{parseChunks(chunks){return parseJbig2Chunks(chunks)}parse(data){throw new Error("Not implemented: Jbig2Image.parse")}}class Jbig2Stream extends DecodeStream{constructor(stream,maybeLength,params){super(maybeLength),this.stream=stream,this.dict=stream.dict,this.maybeLength=maybeLength,this.params=params}get bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(requested){}readBlock(){if(!this.eof){var globalsStream,jbig2Image=new Jbig2Image,chunks=[],data=(this.params instanceof Dict&&(globalsStream=this.params.get("JBIG2Globals"))instanceof BaseStream&&(globalsStream=globalsStream.getBytes(),chunks.push({data:globalsStream,start:0,end:globalsStream.length})),chunks.push({data:this.bytes,start:0,end:this.bytes.length}),jbig2Image.parseChunks(chunks)),dataLength=data.length;for(let i=0;i>3,widthRemainder=7&width,srcLength=src.length;dest=new Uint32Array(dest.buffer);let destPos=0;for(let i=0;i>2,src32=new Uint32Array(src.buffer,srcPos,len32);if(FeatureTest.isLittleEndian){for(;i>>24|s2<<8|4278190080,dest[destPos+2]=s2>>>16|s3<<16|4278190080,dest[destPos+3]=s3>>>8|4278190080}for(let j=4*i,jj=src.length;j>>8|255,dest[destPos+2]=s2<<16|s3>>>16|255,dest[destPos+3]=s3<<8|255}for(let j=4*i,jj=src.length;j>bitsCount&1;if(255===(bitsData=data[offset++])){var nextByte=data[offset++];if(nextByte){if(220===nextByte&&parseDNLMarker){var scanLines=readUint16(data,offset+=2);if(offset+=2,0>>7}function decodeHuffman(tree){let node=tree;for(;;){switch(typeof(node=node[readBit()])){case"number":return node;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(length){let n=0;for(;0>4;if(0==s){if(rs<15){eobrun=receive(rs)+(1<>4,0==s)successiveACState=r<15?(eobrun=receive(r)+(1<>4;if(0==s){if(rs<15)break;k+=16}else{k+=rs;rs=dctZigZag[k];component.blockData[blockOffset+rs]=receiveAndExtend(s),k++}}},0),fileMarker;for(var h,v,mcuExpected=1===componentsLength?components[0].blocksPerLine*components[0].blocksPerColumn:mcusPerLine*frame.mcusPerColumn;mcu<=mcuExpected;){var mcuToRead=resetInterval?Math.min(mcuExpected-mcu,resetInterval):mcuExpected;if(0>10,p[row]=t,p[row+1]=t,p[row+2]=t,p[row+3]=t,p[row+4]=t,p[row+5]=t,p[row+6]=t,p[row+7]=t):(p1*=qt[row+1],p2*=qt[row+2],p3*=qt[row+3],p4*=qt[row+4],p5*=qt[row+5],p6*=qt[row+6],p7*=qt[row+7],v0=dctSqrt2*p0+128>>8,v1=dctSqrt2*p4+128>>8,v2=p2,v3=p6,v4=dctSqrt1d2*(p1-p7)+128>>8,v7=dctSqrt1d2*(p1+p7)+128>>8,v5=p3<<4,v6=p5<<4,v0=v0+v1+1>>1,v1=v0-v1,t=v2*dctSin6+v3*dctCos6+128>>8,v2=v2*dctCos6-v3*dctSin6+128>>8,v3=t,v4=v4+v6+1>>1,v6=v4-v6,v7=v7+v5+1>>1,v5=v7-v5,v0=v0+v3+1>>1,v3=v0-v3,v1=v1+v2+1>>1,v2=v1-v2,t=v4*dctSin3+v7*dctCos3+2048>>12,v4=v4*dctCos3-v7*dctSin3+2048>>12,v7=t,t=v5*dctSin1+v6*dctCos1+2048>>12,v5=v5*dctCos1-v6*dctSin1+2048>>12,v6=t,p[row]=v0+v7,p[row+7]=v0-v7,p[row+1]=v1+v6,p[row+6]=v1-v6,p[row+2]=v2+v5,p[row+5]=v2-v5,p[row+3]=v3+v4,p[row+4]=v3-v4);for(let col=0;col<8;++col)p0=p[col],p1=p[col+8],p2=p[col+16],p3=p[col+24],p4=p[col+32],p5=p[col+40],p6=p[col+48],p7=p[col+56],0==(p1|p2|p3|p4|p5|p6|p7)?(t=(t=dctSqrt2*p0+8192>>14)<-2040?0:2024<=t?255:t+2056>>4,blockData[blockBufferOffset+col]=t,blockData[blockBufferOffset+col+8]=t,blockData[blockBufferOffset+col+16]=t,blockData[blockBufferOffset+col+24]=t,blockData[blockBufferOffset+col+32]=t,blockData[blockBufferOffset+col+40]=t,blockData[blockBufferOffset+col+48]=t,blockData[blockBufferOffset+col+56]=t):(v0=dctSqrt2*p0+2048>>12,v1=dctSqrt2*p4+2048>>12,v2=p2,v3=p6,v4=dctSqrt1d2*(p1-p7)+2048>>12,v7=dctSqrt1d2*(p1+p7)+2048>>12,v5=p3,v6=p5,v0=4112+(v0+v1+1>>1),v1=v0-v1,t=v2*dctSin6+v3*dctCos6+2048>>12,v2=v2*dctCos6-v3*dctSin6+2048>>12,v3=t,v4=v4+v6+1>>1,v6=v4-v6,v7=v7+v5+1>>1,v5=v7-v5,v0=v0+v3+1>>1,v3=v0-v3,v1=v1+v2+1>>1,v2=v1-v2,t=v4*dctSin3+v7*dctCos3+2048>>12,v4=v4*dctCos3-v7*dctSin3+2048>>12,v7=t,t=v5*dctSin1+v6*dctCos1+2048>>12,v5=v5*dctCos1-v6*dctSin1+2048>>12,v6=t,p0=v0+v7,p7=v0-v7,p1=v1+v6,p6=v1-v6,p2=v2+v5,p5=v2-v5,p3=v3+v4,p4=v3-v4,p0<16?p0=0:4080<=p0?p0=255:p0>>=4,p1<16?p1=0:4080<=p1?p1=255:p1>>=4,p2<16?p2=0:4080<=p2?p2=255:p2>>=4,p3<16?p3=0:4080<=p3?p3=255:p3>>=4,p4<16?p4=0:4080<=p4?p4=255:p4>>=4,p5<16?p5=0:4080<=p5?p5=255:p5>>=4,p6<16?p6=0:4080<=p6?p6=255:p6>>=4,p7<16?p7=0:4080<=p7?p7=255:p7>>=4,blockData[blockBufferOffset+col]=p0,blockData[blockBufferOffset+col+8]=p1,blockData[blockBufferOffset+col+16]=p2,blockData[blockBufferOffset+col+24]=p3,blockData[blockBufferOffset+col+32]=p4,blockData[blockBufferOffset+col+40]=p5,blockData[blockBufferOffset+col+48]=p6,blockData[blockBufferOffset+col+56]=p7)}function buildComponentData(frame,component){var blocksPerLine=component.blocksPerLine,blocksPerColumn=component.blocksPerColumn,computationBuffer=new Int16Array(64);for(let blockRow=0;blockRow=maxPos)return null;newMarker=readUint16(data,newPos)}return{invalid:startPos.toString(16),marker:newMarker,offset:newPos}}class JpegImage{constructor({decodeTransform=null,colorTransform=-1}={}){this._decodeTransform=decodeTransform,this._colorTransform=colorTransform}parse(data,{dnlScanLines=null}={}){let offset=0,jfif=null,adobe=null,frame,resetInterval,numSOSMarkers=0;var quantizationTables=[],huffmanTablesAC=[],huffmanTablesDC=[];let fileMarker=readUint16(data,offset);if(offset+=2,65496!==fileMarker)throw new JpegError("SOI not found");fileMarker=readUint16(data,offset),offset+=2;markerLoop:for(;65497!==fileMarker;){let i,j,l;switch(fileMarker){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var appData=function(){var length=readUint16(data,offset);let endOffset=(offset+=2)+length-2;return(length=findNextFileMarker(data,endOffset,offset))?.invalid&&(warn("readDataBlock - incorrect length, current marker is: "+length.invalid),endOffset=length.offset),length=data.subarray(offset,endOffset),offset+=length.length,length}();65504===fileMarker&&74===appData[0]&&70===appData[1]&&73===appData[2]&&70===appData[3]&&0===appData[4]&&(jfif={version:{major:appData[5],minor:appData[6]},densityUnits:appData[7],xDensity:appData[8]<<8|appData[9],yDensity:appData[10]<<8|appData[11],thumbWidth:appData[12],thumbHeight:appData[13],thumbData:appData.subarray(14,14+3*appData[12]*appData[13])}),65518===fileMarker&&65===appData[0]&&100===appData[1]&&111===appData[2]&&98===appData[3]&&101===appData[4]&&(adobe={version:appData[5]<<8|appData[6],flags0:appData[7]<<8|appData[8],flags1:appData[9]<<8|appData[10],transformCode:appData[11]});break;case 65499:var quantizationTablesEnd=readUint16(data,offset)+(offset+=2)-2;let z;for(;offset>4==0)for(j=0;j<64;j++)tableData[z=dctZigZag[j]]=data[offset++];else{if(quantizationTableSpec>>4!=1)throw new JpegError("DQT - invalid table spec");for(j=0;j<64;j++)tableData[z=dctZigZag[j]]=readUint16(data,offset),offset+=2}quantizationTables[15&quantizationTableSpec]=tableData}break;case 65472:case 65473:case 65474:if(frame)throw new JpegError("Only single frame JPEGs supported");offset+=2,(frame={}).extended=65473===fileMarker,frame.progressive=65474===fileMarker,frame.precision=data[offset++];var appData=readUint16(data,offset),componentsCount=(offset+=2,frame.scanLines=dnlScanLines||appData,frame.samplesPerLine=readUint16(data,offset),offset+=2,frame.components=[],frame.componentIds={},data[offset++]);let maxH=0,maxV=0;for(i=0;i>4,v=15&data[offset+1],qId=(maxH>4==0?huffmanTablesDC:huffmanTablesAC)[15&huffmanTableSpec]=buildHuffmanTable(codeLengths,huffmanValues)}break;case 65501:offset+=2,resetInterval=readUint16(data,offset),offset+=2;break;case 65498:var parseDNLMarker=1==++numSOSMarkers&&!dnlScanLines,selectorsCount=(offset+=2,data[offset++]),components=[];for(i=0;i>4],componentIndex.huffmanTableAC=huffmanTablesAC[15&index],components.push(componentIndex)}var spectralStart=data[offset++],spectralEnd=data[offset++],successiveApproximation=data[offset++];try{var processed=decodeScan(data,offset,frame,components,resetInterval,spectralStart,spectralEnd,successiveApproximation>>4,15&successiveApproximation,parseDNLMarker);offset+=processed}catch(ex){if(ex instanceof DNLMarkerError)return warn(ex.message+" -- attempting to re-parse the JPEG image."),this.parse(data,{dnlScanLines:ex.scanLines});if(ex instanceof EOIMarkerError){warn(ex.message+" -- ignoring the rest of the image data.");break markerLoop}throw ex}break;case 65500:offset+=4;break;case 65535:255!==data[offset]&&offset--;break;default:spectralStart=findNextFileMarker(data,offset-2,offset-3);if(spectralStart?.invalid){warn("JpegImage.parse - unexpected data, current marker is: "+spectralStart.invalid),offset=spectralStart.offset;break}if(!spectralStart||offset>=data.length-1){warn("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break markerLoop}throw new JpegError("JpegImage.parse - unknown marker: "+fileMarker.toString(16))}fileMarker=readUint16(data,offset),offset+=2}if(!frame)throw new JpegError("JpegImage.parse - no frame data found.");this.width=frame.samplesPerLine,this.height=frame.scanLines,this.jfif=jfif,this.adobe=adobe,this.components=[];for(const component of frame.components){var quantizationTable=quantizationTables[component.quantizationId];quantizationTable&&(component.quantizationTable=quantizationTable),this.components.push({index:component.index,output:buildComponentData(frame,component),scaleX:component.h/frame.maxH,scaleY:component.v/frame.maxV,blocksPerLine:component.blocksPerLine,blocksPerColumn:component.blocksPerColumn})}this.numComponents=this.components.length}_getLinearizedBlockData(width,height,isSourcePDF=!1){var component,componentScaleX,componentScaleY,blocksPerScanline,index,output,scaleX=this.width/width,scaleY=this.height/height;let x,y,i,j,k,offset=0;var numComponents=this.components.length,dataLength=width*height*numComponents,data=new Uint8ClampedArray(dataLength),xScaleBlockOffset=new Uint32Array(width);let lastComponentScaleX;for(i=0;i>8)+transform[k+1];return data}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(data){var Y,Cb,Cr;for(let i=0,length=data.length;i{var _scriptDir="file:///home/timvandermeij/Documenten/Ontwikkeling/pdf.js/Code/external/openjpeg/openjpeg.js";return function(moduleArg={}){var readyPromiseResolve,readyPromiseReject,readBinary,wasmBinary,wasmMemory,Module=moduleArg,moduleOverrides=(new Promise((resolve,reject)=>{readyPromiseResolve=resolve,readyPromiseReject=reject}),Module.decode=function(bytes,ignoreColorSpace){var size=bytes.length,ptr=Module._malloc(size),bytes=(Module.HEAPU8.set(bytes,ptr),Module._jp2_decode(ptr,size,ignoreColorSpace?1:0));return Module._free(ptr),bytes?(size=Module["errorMessages"],size?(delete Module.errorMessages,size):"Unknown error"):(ignoreColorSpace=Module["imageData"],Module.imageData=null,ignoreColorSpace)},Object.assign({},Module)),thisProgram="./this.program",scriptDirectory="",out=("undefined"!=typeof document&&document.currentScript&&(scriptDirectory=document.currentScript.src),scriptDirectory=(scriptDirectory=_scriptDir).startsWith("blob:")?"":scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1),Module.print||console.log.bind(console)),err=Module.printErr||console.error.bind(console);function tryParseAsDataURI(filename){if((filename=>filename.startsWith(dataURIPrefix))(filename)){for(var filename=filename.slice(dataURIPrefix.length),decoded=atob(filename),bytes=new Uint8Array(decoded.length),i=0;i{for(;0thisProgram||"./this.program",getEnvStrings=()=>{if(!getEnvStrings.strings){var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:getExecutableName()};for(x in ENV)void 0===ENV[x]?delete env[x]:env[x]=ENV[x];var x,strings=[];for(x in env)strings.push(x+"="+env[x]);getEnvStrings.strings=strings}return getEnvStrings.strings},printCharBuffers=[null,[],[]],UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{for(var endIdx=idx+maxBytesToRead,endPtr=idx;heapOrArray[endPtr]&&!(endIdx<=endPtr);)++endPtr;if(16>10,56320|1023&u1)))):str+=String.fromCharCode(u0)}return str},UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var calledRun,wasmImports={f:(dest,src,num)=>HEAPU8.copyWithin(dest,src,src+num),b:requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;if(!(2147483648{size=(size-wasmMemory.buffer.byteLength+65535)/65536;try{return wasmMemory.grow(size),updateMemoryViews(),1}catch(e){}})(Math.min(2147483648,(overGrownHeapSize=Math.max(requestedSize,overGrownHeapSize))+((multiple=65536)-overGrownHeapSize%multiple)%multiple)))return!0}return!1},c:(__environ,environ_buf)=>{var bufSize=0;return getEnvStrings().forEach((string,i)=>{var ptr=environ_buf+bufSize;((str,buffer)=>{for(var i=0;i>2]=ptr),bufSize+=string.length+1}),0},d:(penviron_count,penviron_buf_size)=>{var strings=getEnvStrings(),bufSize=(HEAPU32[penviron_count>>2]=strings.length,0);return strings.forEach(string=>bufSize+=string.length+1),HEAPU32[penviron_buf_size>>2]=bufSize,0},e:(fd,iov,iovcnt,pnum)=>{for(var stream,curr,buffer,num=0,i=0;i>2],len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num,0},g:function(message_ptr){message_ptr=UTF8ToString(message_ptr),(Module.warn||console.warn)("OpenJPEG: "+message_ptr)},h:function(array_ptr,array_size){Module.imageData=new Uint8ClampedArray(Module.HEAPU8.subarray(array_ptr,array_ptr+array_size))},a:function(message_ptr){message_ptr=UTF8ToString(message_ptr),Module.errorMessages?Module.errorMessages+="\n"+message_ptr:Module.errorMessages=message_ptr}},wasmExports=function(){var info={a:wasmImports};function receiveInstance(instance,module){return wasmExports=instance.exports,wasmMemory=wasmExports.i,updateMemoryViews(),instance=wasmExports.j,__ATINIT__.unshift(instance),runDependencies--,Module.monitorRunDependencies?.(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)&&(instance=dependenciesFulfilled,dependenciesFulfilled=null,instance()),wasmExports}if(runDependencies++,Module.monitorRunDependencies?.(runDependencies),Module.instantiateWasm)try{return Module.instantiateWasm(info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e),readyPromiseReject(e)}return receiveInstance(instantiateSync(wasmBinaryFile,info)[0])}();wasmExports.j,Module._malloc=wasmExports.k,Module._free=wasmExports.l,Module._jp2_decode=wasmExports.n,wasmExports._emscripten_stack_restore,wasmExports._emscripten_stack_alloc,wasmExports.emscripten_stack_get_current;function run(){function doRun(){calledRun||(calledRun=!0,Module.calledRun=!0,ABORT)||(callRuntimeCallbacks(__ATINIT__),readyPromiseResolve(Module),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),postRun())}0>>0,Ysiz=stream.getInt32()>>>0,XOsiz=stream.getInt32()>>>0,YOsiz=stream.getInt32()>>>0,stream.skip(16),{width:Xsiz-XOsiz,height:Ysiz-YOsiz,bitsPerComponent:8,componentsCount:stream.getUint16()}}throw new JpxError("No size marker found in JPX stream")}}class JpxStream extends DecodeStream{constructor(stream,maybeLength,params){super(maybeLength),this.stream=stream,this.dict=stream.dict,this.maybeLength=maybeLength,this.params=params}get bytes(){return shadow(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(requested){}readBlock(ignoreColorSpace){this.eof||(this.buffer=JpxImage.decode(this.bytes,ignoreColorSpace),this.bufferLength=this.buffer.length,this.eof=!0)}}class LZWStream extends DecodeStream{constructor(str,maybeLength,earlyChange){super(maybeLength),this.str=str,this.dict=str.dict,this.cachedData=0,this.bitsCached=0;var lzwState={earlyChange:earlyChange,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(4096),dictionaryLengths:new Uint16Array(4096),dictionaryPrevCodes:new Uint16Array(4096),currentSequence:new Uint8Array(4096),currentSequenceLength:0};for(let i=0;i<256;++i)lzwState.dictionaryValues[i]=i,lzwState.dictionaryLengths[i]=1;this.lzwState=lzwState}readBits(n){let bitsCached=this.bitsCached,cachedData=this.cachedData;for(;bitsCached>>bitsCached&(1<>3,this.rowBytes=params*maybeLength*str+7>>3,this}readBlockTiff(){var rowBytes=this.rowBytes,bufferLength=this.bufferLength,buffer=this.ensureBuffer(bufferLength+rowBytes),bits=this.bits,colors=this.colors,rawBytes=this.str.getBytes(rowBytes);if(this.eof=!rawBytes.length,!this.eof){let inbuf=0,outbuf=0,inbits=0,outbits=0,pos=bufferLength,i;if(1===bits&&1===colors)for(i=0;i>1)^c>>2)^c>>4;inbuf=(1&c)<<7,buffer[pos++]=c}else if(8===bits){for(i=0;i>8&255,buffer[pos++]=255&sum}}else{var compArray=new Uint8Array(colors+1),bitMask=(1<>inbits-bits)&bitMask,inbits-=bits,outbuf=outbuf<>outbits-8&255,outbits-=8);0>1)+rawBytes[i];for(;i>1)+rawBytes[i]&255,j++;break;case 4:for(i=0;i>")&&this.buf1!==EOF;)if(this.buf1 instanceof Name){var key=this.buf1.name;if(this.shift(),this.buf1===EOF)break;dict.set(key,this.getObj(cipherTransform))}else info("Malformed dictionary: key must be a name object"),this.shift();if(this.buf1!==EOF)return isCmd(this.buf2,"stream")?this.allowStreams?this.makeStream(dict,cipherTransform):dict:(this.shift(),dict);if(this.recoveryMode)return dict;throw new ParserEOFException("End of file inside dictionary.");default:return buf1}return Number.isInteger(buf1)?Number.isInteger(this.buf1)&&isCmd(this.buf2,"R")?(ref=Ref.get(buf1,this.buf1),this.shift(),this.shift(),ref):buf1:"string"==typeof buf1&&cipherTransform?cipherTransform.decryptString(buf1):buf1}findDefaultInlineStreamEnd(stream){var knownCommands=this.lexer["knownCommands"],startPos=stream.pos;let state=0,ch,maybeEIPos;for(;-1!==(ch=stream.getByte());)if(0===state)state=69===ch?1:0;else if(1===state)state=73===ch?2:0;else if(32===ch||10===ch||13===ch){maybeEIPos=stream.pos;var followingBytes=stream.peekBytes(15),ii=followingBytes.length;if(0===ii)break;for(let i=0;i{};let numArgs=0;for(;;){var nextObj=tmpLexer.getObj();if(nextObj===EOF){state=0;break}if(nextObj instanceof Cmd){nextObj=knownCommands[nextObj.cmd];if(!nextObj){state=0;break}if(nextObj.variableArgs?numArgs<=nextObj.numArgs:numArgs===nextObj.numArgs)break;numArgs=0}else numArgs++}if(2===state)break}else warn("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.")}else state=0;-1===ch&&(warn("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker"),maybeEIPos)&&(warn('... trying to recover by using the last "EI" occurrence.'),stream.skip(-(stream.pos-maybeEIPos)));let endOffset=4;return stream.skip(-endOffset),ch=stream.peekByte(),stream.skip(endOffset),isWhiteSpace(ch)||endOffset--,stream.pos-endOffset-startPos}findDCTDecodeInlineStreamEnd(stream){var startPos=stream.pos;let foundEOI=!1,b,markerLength;for(;-1!==(b=stream.getByte());)if(255===b){switch(stream.getByte()){case 0:break;case 255:stream.skip(-1);break;case 217:foundEOI=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:2<(markerLength=stream.getUint16())?stream.skip(markerLength-2):stream.skip(-2)}if(foundEOI)break}startPos=stream.pos-startPos;return-1===b?(warn("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}findASCII85DecodeInlineStreamEnd(stream){var startPos=stream.pos;let ch;for(;-1!==(ch=stream.getByte());)if(126===ch){var tildePos=stream.pos;for(ch=stream.peekByte();isWhiteSpace(ch);)stream.skip(),ch=stream.peekByte();if(62===ch){stream.skip();break}if(stream.pos>tildePos){tildePos=stream.peekBytes(2);if(69===tildePos[0]&&73===tildePos[1])break}}startPos=stream.pos-startPos;return-1===ch?(warn("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}findASCIIHexDecodeInlineStreamEnd(stream){var startPos=stream.pos;let ch;for(;-1!==(ch=stream.getByte())&&62!==ch;);startPos=stream.pos-startPos;return-1===ch?(warn("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."),stream.skip(-startPos),this.findDefaultInlineStreamEnd(stream)):(this.inlineStreamSkipEI(stream),startPos)}inlineStreamSkipEI(stream){let state=0,ch;for(;-1!==(ch=stream.getByte());)if(0===state)state=69===ch?1:0;else if(1===state)state=73===ch?2:0;else if(2===state)break}makeInlineImage(cipherTransform){var lexer=this.lexer,stream=lexer.stream,dictMap=Object.create(null);let dictLength;for(;!isCmd(this.buf1,"ID")&&this.buf1!==EOF;){if(!(this.buf1 instanceof Name))throw new FormatError("Dictionary key must be a name object");var key=this.buf1.name;if(this.shift(),this.buf1===EOF)break;dictMap[key]=this.getObj(cipherTransform)}-1!==lexer.beginInlineImagePos&&(dictLength=stream.pos-lexer.beginInlineImagePos);var filter=this.xref.fetchIfRef(dictMap.F||dictMap.Filter);let filterName;filter instanceof Name?filterName=filter.name:Array.isArray(filter)&&(filter=this.xref.fetchIfRef(filter[0]))instanceof Name&&(filterName=filter.name);filter=stream.pos;let length;switch(filterName){case"DCT":case"DCTDecode":length=this.findDCTDecodeInlineStreamEnd(stream);break;case"A85":case"ASCII85Decode":length=this.findASCII85DecodeInlineStreamEnd(stream);break;case"AHx":case"ASCIIHexDecode":length=this.findASCIIHexDecodeInlineStreamEnd(stream);break;default:length=this.findDefaultInlineStreamEnd(stream)}let cacheKey;if(length=signatureLength)return stream.pos+=pos,stream.pos-startPos;pos++}stream.pos+=scanLength}return-1}makeStream(dict,cipherTransform){var lexer=this.lexer;let stream=lexer.stream;lexer.skipToNextLine();var startPos=stream.pos-1;let length=dict.get("Length");if(Number.isInteger(length)||(info(`Bad length "${length&&length.toString()}" in stream.`),length=0),stream.pos=startPos+length,lexer.nextChar(),!this.tryShift()||!isCmd(this.buf2,"endstream")){var ENDSTREAM_SIGNATURE=new Uint8Array([101,110,100,115,116,114,101,97,109]);let actualLength=this._findStreamLength(startPos,ENDSTREAM_SIGNATURE);if(actualLength<0){for(let i=1;i<=1;i++){var end=ENDSTREAM_SIGNATURE.length-i,TRUNCATED_SIGNATURE=ENDSTREAM_SIGNATURE.slice(0,end),maybeLength=this._findStreamLength(startPos,TRUNCATED_SIGNATURE);if(0<=maybeLength){if(!isWhiteSpace(stream.peekBytes(1+end)[end]))break;info(`Found "${bytesToString(TRUNCATED_SIGNATURE)}" when `+"searching for endstream command."),actualLength=maybeLength;break}}if(actualLength<0)throw new FormatError("Missing endstream command.")}length=actualLength,lexer.nextChar(),this.shift()}return this.shift(),this.shift(),stream=stream.makeSubStream(startPos,length,dict),cipherTransform&&(stream=cipherTransform.createStream(stream,length)),(stream=this.filter(stream,dict,length)).dict=dict,stream}filter(stream,dict,length){let filter=dict.get("F","Filter"),params=dict.get("DP","DecodeParms");if(filter instanceof Name)return Array.isArray(params)&&warn("/DecodeParms should not be an Array, when /Filter is a Name."),this.makeFilter(stream,filter.name,length,params);let maybeLength=length;if(Array.isArray(filter)){var filterArray=filter,paramsArray=params;for(let i=0,ii=filterArray.length;i>")):Cmd.get(">");case 123:return this.nextChar(),Cmd.get("{");case 125:return this.nextChar(),Cmd.get("}");case 41:throw this.nextChar(),new FormatError("Illegal character: "+ch)}let str=String.fromCharCode(ch);if(ch<32||127MAX_MAP_RANGE)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;low<=high;)this._map[low++]=dstLow++}mapBfRange(low,high,dstLow){if(high-low>MAX_MAP_RANGE)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");for(var lastByte=dstLow.length-1;low<=high;){var nextCharCode=(this._map[low++]=dstLow).charCodeAt(lastByte)+1;255MAX_MAP_RANGE)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");var ii=array.length;let i=0;for(;low<=high&&i>>0;var codespaceRange=codespaceRanges[n];for(let k=0,kk=codespaceRange.length;k=low&&c<=high)return out.charcode=c,void(out.length=n+1)}}out.charcode=0,out.length=1}getCharCodeLength(charCode){var codespaceRanges=this.codespaceRanges;for(let n=0,nn=codespaceRanges.length;n>>0}function expectString(obj){if("string"!=typeof obj)throw new FormatError("Malformed CMap: expected string.")}function expectInt(obj){if(!Number.isInteger(obj))throw new FormatError("Malformed CMap: expected int.")}function parseBfChar(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endbfchar"))return;expectString(obj);var src=strToInt(obj);expectString(obj=lexer.getObj()),cMap.mapOne(src,obj)}}function parseBfRange(cMap,lexer){for(;;){let obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endbfrange"))return;expectString(obj);var low=strToInt(obj),high=(expectString(obj=lexer.getObj()),strToInt(obj));if(obj=lexer.getObj(),Number.isInteger(obj)||"string"==typeof obj){var dstLow=Number.isInteger(obj)?String.fromCharCode(obj):obj;cMap.mapBfRange(low,high,dstLow)}else{if(!isCmd(obj,"["))break;obj=lexer.getObj();for(var array=[];!isCmd(obj,"]")&&obj!==EOF;)array.push(obj),obj=lexer.getObj();cMap.mapBfRangeToArray(low,high,array)}}throw new FormatError("Invalid bf range.")}function parseCidChar(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcidchar"))return;expectString(obj);var src=strToInt(obj);expectInt(obj=lexer.getObj()),cMap.mapOne(src,obj)}}function parseCidRange(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcidrange"))return;expectString(obj);var low=strToInt(obj),high=(expectString(obj=lexer.getObj()),strToInt(obj));expectInt(obj=lexer.getObj());cMap.mapCidRange(low,high,obj)}}function parseCodespaceRange(cMap,lexer){for(;;){var obj=lexer.getObj();if(obj===EOF)break;if(isCmd(obj,"endcodespacerange"))return;if("string"!=typeof obj)break;var low=strToInt(obj);if("string"!=typeof(obj=lexer.getObj()))break;var high=strToInt(obj);cMap.addCodespaceRange(obj.length,low,high)}throw new FormatError("Invalid codespace range.")}function parseWMode(cMap,lexer){lexer=lexer.getObj();Number.isInteger(lexer)&&(cMap.vertical=!!lexer)}function parseCMapName(cMap,lexer){lexer=lexer.getObj();lexer instanceof Name&&(cMap.name=lexer.name)}async function parseCMap(cMap,lexer,fetchBuiltInCMap,useCMap){let previous,embeddedUseCMap;objLoop:for(;;)try{var obj=lexer.getObj();if(obj===EOF)break;if(obj instanceof Name)"WMode"===obj.name?parseWMode(cMap,lexer):"CMapName"===obj.name&&parseCMapName(cMap,lexer),previous=obj;else if(obj instanceof Cmd)switch(obj.cmd){case"endcmap":break objLoop;case"usecmap":previous instanceof Name&&(embeddedUseCMap=previous.name);break;case"begincodespacerange":parseCodespaceRange(cMap,lexer);break;case"beginbfchar":parseBfChar(cMap,lexer);break;case"begincidchar":parseCidChar(cMap,lexer);break;case"beginbfrange":parseBfRange(cMap,lexer);break;case"begincidrange":parseCidRange(cMap,lexer)}}catch(ex){if(ex instanceof MissingDataException)throw ex;warn("Invalid cMap data: "+ex);continue}return(useCMap=!useCMap&&embeddedUseCMap?embeddedUseCMap:useCMap)?extendCMap(cMap,fetchBuiltInCMap,useCMap):cMap}async function extendCMap(cMap,fetchBuiltInCMap,useCMap){if(cMap.useCMap=await createBuiltInCMap(useCMap,fetchBuiltInCMap),0===cMap.numCodespaceRanges){var useCodespaceRanges=cMap.useCMap.codespaceRanges;for(let i=0;iextendCMap(cMap,fetchBuiltInCMap,useCMap));if(compressionType===CMapCompressionType.NONE)return name=new Lexer(new Stream(name)),parseCMap(cMap,name,fetchBuiltInCMap,null);throw new Error('Invalid CMap "compressionType" value: '+compressionType)}class CMapFactory{static async create({encoding,fetchBuiltInCMap,useCMap}){if(encoding instanceof Name)return createBuiltInCMap(encoding.name,fetchBuiltInCMap);if(encoding instanceof BaseStream)return(encoding=await parseCMap(new CMap,new Lexer(encoding),fetchBuiltInCMap,useCMap)).isIdentityCMap?createBuiltInCMap(encoding.name,fetchBuiltInCMap):encoding;throw new Error("Encoding required.")}}const ISOAdobeCharset=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron"],ExpertCharset=[".notdef","space","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],ExpertSubsetCharset=[".notdef","space","dollaroldstyle","dollarsuperior","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","fi","fl","ffi","ffl","parenleftinferior","parenrightinferior","hyphensuperior","colonmonetary","onefitted","rupiah","centoldstyle","figuredash","hypheninferior","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior"],ExpertEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","commasuperior","threequartersemdash","periodsuperior","questionsmall","","asuperior","bsuperior","centsuperior","dsuperior","esuperior","","","","isuperior","","","lsuperior","msuperior","nsuperior","osuperior","","","rsuperior","ssuperior","tsuperior","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdownsmall","centoldstyle","Lslashsmall","","","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","","Dotaccentsmall","","","Macronsmall","","","figuredash","hypheninferior","","","Ogoneksmall","Ringsmall","Cedillasmall","","","","onequarter","onehalf","threequarters","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","zerosuperior","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall"],MacExpertEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclamsmall","Hungarumlautsmall","centoldstyle","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","comma","hyphen","period","fraction","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","colon","semicolon","","threequartersemdash","","questionsmall","","","","","Ethsmall","","","onequarter","onehalf","threequarters","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","","","","","","","ff","fi","fl","ffi","ffl","parenleftinferior","","parenrightinferior","Circumflexsmall","hypheninferior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","","","asuperior","centsuperior","","","","","Aacutesmall","Agravesmall","Acircumflexsmall","Adieresissmall","Atildesmall","Aringsmall","Ccedillasmall","Eacutesmall","Egravesmall","Ecircumflexsmall","Edieresissmall","Iacutesmall","Igravesmall","Icircumflexsmall","Idieresissmall","Ntildesmall","Oacutesmall","Ogravesmall","Ocircumflexsmall","Odieresissmall","Otildesmall","Uacutesmall","Ugravesmall","Ucircumflexsmall","Udieresissmall","","eightsuperior","fourinferior","threeinferior","sixinferior","eightinferior","seveninferior","Scaronsmall","","centinferior","twoinferior","","Dieresissmall","","Caronsmall","osuperior","fiveinferior","","commainferior","periodinferior","Yacutesmall","","dollarinferior","","","Thornsmall","","nineinferior","zeroinferior","Zcaronsmall","AEsmall","Oslashsmall","questiondownsmall","oneinferior","Lslashsmall","","","","","","","Cedillasmall","","","","","","OEsmall","figuredash","hyphensuperior","","","","","exclamdownsmall","","Ydieresissmall","","onesuperior","twosuperior","threesuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","ninesuperior","zerosuperior","","esuperior","rsuperior","tsuperior","","","isuperior","ssuperior","dsuperior","","","","","","lsuperior","Ogoneksmall","Brevesmall","Macronsmall","bsuperior","nsuperior","msuperior","commasuperior","periodsuperior","Dotaccentsmall","Ringsmall","","","",""],MacRomanEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","space","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron"],StandardEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","","endash","dagger","daggerdbl","periodcentered","","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","","questiondown","","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","","ring","cedilla","","hungarumlaut","ogonek","caron","emdash","","","","","","","","","","","","","","","","","AE","","ordfeminine","","","","","Lslash","Oslash","OE","ordmasculine","","","","","","ae","","","","dotlessi","","","lslash","oslash","oe","germandbls","","","",""],WinAnsiEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","bullet","Euro","bullet","quotesinglbase","florin","quotedblbase","ellipsis","dagger","daggerdbl","circumflex","perthousand","Scaron","guilsinglleft","OE","bullet","Zcaron","bullet","bullet","quoteleft","quoteright","quotedblleft","quotedblright","bullet","endash","emdash","tilde","trademark","scaron","guilsinglright","oe","bullet","zcaron","Ydieresis","space","exclamdown","cent","sterling","currency","yen","brokenbar","section","dieresis","copyright","ordfeminine","guillemotleft","logicalnot","hyphen","registered","macron","degree","plusminus","twosuperior","threesuperior","acute","mu","paragraph","periodcentered","cedilla","onesuperior","ordmasculine","guillemotright","onequarter","onehalf","threequarters","questiondown","Agrave","Aacute","Acircumflex","Atilde","Adieresis","Aring","AE","Ccedilla","Egrave","Eacute","Ecircumflex","Edieresis","Igrave","Iacute","Icircumflex","Idieresis","Eth","Ntilde","Ograve","Oacute","Ocircumflex","Otilde","Odieresis","multiply","Oslash","Ugrave","Uacute","Ucircumflex","Udieresis","Yacute","Thorn","germandbls","agrave","aacute","acircumflex","atilde","adieresis","aring","ae","ccedilla","egrave","eacute","ecircumflex","edieresis","igrave","iacute","icircumflex","idieresis","eth","ntilde","ograve","oacute","ocircumflex","otilde","odieresis","divide","oslash","ugrave","uacute","ucircumflex","udieresis","yacute","thorn","ydieresis"],SymbolSetEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","exclam","universal","numbersign","existential","percent","ampersand","suchthat","parenleft","parenright","asteriskmath","plus","comma","minus","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","congruent","Alpha","Beta","Chi","Delta","Epsilon","Phi","Gamma","Eta","Iota","theta1","Kappa","Lambda","Mu","Nu","Omicron","Pi","Theta","Rho","Sigma","Tau","Upsilon","sigma1","Omega","Xi","Psi","Zeta","bracketleft","therefore","bracketright","perpendicular","underscore","radicalex","alpha","beta","chi","delta","epsilon","phi","gamma","eta","iota","phi1","kappa","lambda","mu","nu","omicron","pi","theta","rho","sigma","tau","upsilon","omega1","omega","xi","psi","zeta","braceleft","bar","braceright","similar","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Euro","Upsilon1","minute","lessequal","fraction","infinity","florin","club","diamond","heart","spade","arrowboth","arrowleft","arrowup","arrowright","arrowdown","degree","plusminus","second","greaterequal","multiply","proportional","partialdiff","bullet","divide","notequal","equivalence","approxequal","ellipsis","arrowvertex","arrowhorizex","carriagereturn","aleph","Ifraktur","Rfraktur","weierstrass","circlemultiply","circleplus","emptyset","intersection","union","propersuperset","reflexsuperset","notsubset","propersubset","reflexsubset","element","notelement","angle","gradient","registerserif","copyrightserif","trademarkserif","product","radical","dotmath","logicalnot","logicaland","logicalor","arrowdblboth","arrowdblleft","arrowdblup","arrowdblright","arrowdbldown","lozenge","angleleft","registersans","copyrightsans","trademarksans","summation","parenlefttp","parenleftex","parenleftbt","bracketlefttp","bracketleftex","bracketleftbt","bracelefttp","braceleftmid","braceleftbt","braceex","","angleright","integral","integraltp","integralex","integralbt","parenrighttp","parenrightex","parenrightbt","bracketrighttp","bracketrightex","bracketrightbt","bracerighttp","bracerightmid","bracerightbt",""],ZapfDingbatsEncoding=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","space","a1","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","","","","","","","","","","","","","","","","","","","","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191",""];function getEncoding(encodingName){switch(encodingName){case"WinAnsiEncoding":return WinAnsiEncoding;case"StandardEncoding":return StandardEncoding;case"MacRomanEncoding":return MacRomanEncoding;case"SymbolSetEncoding":return SymbolSetEncoding;case"ZapfDingbatsEncoding":return ZapfDingbatsEncoding;case"ExpertEncoding":return ExpertEncoding;case"MacExpertEncoding":return MacExpertEncoding;default:return null}}const MAX_SUBR_NESTING=10,CFFStandardStrings=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"],NUM_STANDARD_CFF_STRINGS=391,CharstringValidationData=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],CharstringValidationData12=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]+stack[index-1]}},{id:"sub",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]-stack[index-1]}},{id:"div",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]/stack[index-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn(stack,index){stack[index-1]=-stack[index-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn(stack,index){stack[index-2]=stack[index-2]*stack[index-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];class CFFParser{constructor(file,properties,seacAnalysisEnabled){this.bytes=file.getBytes(),this.properties=properties,this.seacAnalysisEnabled=!!seacAnalysisEnabled}parse(){var properties=this.properties,cff=new CFF,header=(this.cff=cff,this.parseHeader()),nameIndex=this.parseIndex(header.endPos),topDictIndex=this.parseIndex(nameIndex.endPos),stringIndex=this.parseIndex(topDictIndex.endPos),globalSubrIndex=this.parseIndex(stringIndex.endPos),topDictIndex=this.parseDict(topDictIndex.obj.get(0)),topDictIndex=this.createDict(CFFTopDict,topDictIndex,cff.strings),header=(cff.header=header.obj,cff.names=this.parseNameIndex(nameIndex.obj),cff.strings=this.parseStringIndex(stringIndex.obj),cff.topDict=topDictIndex,cff.globalSubrIndex=globalSubrIndex.obj,this.parsePrivateDict(cff.topDict),cff.isCIDFont=topDictIndex.hasName("ROS"),topDictIndex.getByName("CharStrings")),nameIndex=this.parseIndex(header).obj,stringIndex=topDictIndex.getByName("FontMatrix"),header=(stringIndex&&(properties.fontMatrix=stringIndex),topDictIndex.getByName("FontBBox"));header&&(properties.ascent=Math.max(header[3],header[1]),properties.descent=Math.min(header[1],header[3]),properties.ascentScaled=!0);let charset,encoding;if(cff.isCIDFont){var fdArrayIndex=this.parseIndex(topDictIndex.getByName("FDArray")).obj;for(let i=0,ii=fdArrayIndex.count;i=bytesLength)throw new FormatError("Invalid CFF header");0!==offset&&(info("cff data is shifted"),bytes=bytes.subarray(offset),this.bytes=bytes);var major=bytes[0],minor=bytes[1],hdrSize=bytes[2],offSize=bytes[3];return{obj:new CFFHeader(major,minor,hdrSize,offSize),endPos:hdrSize}}parseDict(dict){let pos=0;function parseOperand(){let value=dict[pos++];if(30!==value)return 28===value?value=((value=dict[pos++])<<24|dict[pos++]<<16)>>16:29===value?value=(value=(value=(value=dict[pos++])<<8|dict[pos++])<<8|dict[pos++])<<8|dict[pos++]:32<=value&&value<=246?value-139:247<=value&&value<=250?256*(value-247)+dict[pos++]+108:251<=value&&value<=254?-256*(value-251)-dict[pos++]-108:(warn('CFFParser_parseDict: "'+value+'" is a reserved command.'),NaN);{let str="";var lookup=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],length=dict.length;for(;pos>4,b=15&b;if(15==b1)break;if(str+=lookup[b1],15==b)break;str+=lookup[b]}return parseFloat(str)}}let operands=[];for(var entries=[],end=(pos=0,dict.length);posMAX_SUBR_NESTING)return!1;let stackSize=state.stackSize;var stack=state.stack;let length=data.length;for(let j=0;j>16,j+=2,stackSize++;else if(14===value){if(4<=stackSize&&(stackSize-=4,this.seacAnalysisEnabled))return state.seac=stack.slice(stackSize,stackSize+4),!1;validationCommand=CharstringValidationData[value]}else if(32<=value&&value<=246)stack[stackSize]=value-139,stackSize++;else if(247<=value&&value<=254)stack[stackSize]=value<251?(value-247<<8)+data[j]+108:-(value-251<<8)-data[j]-108,j++,stackSize++;else if(255===value)stack[stackSize]=(data[j]<<24|data[j+1]<<16|data[j+2]<<8|data[j+3])/65536,j+=4,stackSize++;else if(19===value||20===value){if(state.hints+=stackSize>>1,0===state.hints){data.copyWithin(j-1,j,-1),--j,--length;continue}j+=state.hints+7>>3,stackSize%=2,validationCommand=CharstringValidationData[value]}else{if(10===value||29===value){q=10===value?localSubrIndex:globalSubrIndex;if(!q)return warn("Missing subrsIndex for "+(validationCommand=CharstringValidationData[value]).id),!1;let bias=32768;q.count<1240?bias=107:q.count<33900&&(bias=1131);var subrNumber=stack[--stackSize]+bias;if(subrNumber<0||subrNumber>=q.count||isNaN(subrNumber))return warn("Out of bounds subrIndex for "+(validationCommand=CharstringValidationData[value]).id),!1;if(state.stackSize=stackSize,state.callDepth++,!this.parseCharString(state,q.get(subrNumber),localSubrIndex,globalSubrIndex))return!1;state.callDepth--,stackSize=state.stackSize;continue}if(11===value)return state.stackSize=stackSize,!0;if(0===value&&j===data.length)data[j-1]=14,validationCommand=CharstringValidationData[14];else{if(9===value){data.copyWithin(j-1,j,-1),--j,--length;continue}validationCommand=CharstringValidationData[value]}}if(validationCommand){if(validationCommand.stem&&(state.hints+=stackSize>>1,3===value||23===value?state.hasVStems=!0:!state.hasVStems||1!==value&&18!==value||(warn("CFF stem hints are in wrong order"),data[j-1]=1===value?3:23)),"min"in validationCommand&&!state.undefStack&&stackSize=fdArray.length&&(warn("Invalid fd index for glyph index."),valid=!1),valid&&(privateDictToUse=fdArray[fdIndex].privateDict,localSubrToUse=privateDictToUse.subrsIndex)):localSubrIndex&&(localSubrToUse=localSubrIndex),valid=valid&&this.parseCharString(state,charstring,localSubrToUse,globalSubrIndex),null!==state.width?(fdIndex=privateDictToUse.getByName("nominalWidthX"),widths[i]=fdIndex+state.width):(charstring=privateDictToUse.getByName("defaultWidthX"),widths[i]=charstring),null!==state.seac&&(seacs[i]=state.seac),valid||charStrings.set(i,new Uint8Array([14]))}return{charStrings:charStrings,seacs:seacs,widths:widths}}emptyPrivateDictionary(parentDict){var privateDict=this.createDict(CFFPrivateDict,[],parentDict.strings);parentDict.setByKey(18,[0,0]),parentDict.privateDict=privateDict}parsePrivateDict(parentDict){var size,relativeOffset,privateOffset;parentDict.hasName("Private")?(privateOffset=parentDict.getByName("Private"),Array.isArray(privateOffset)&&2===privateOffset.length?(size=privateOffset[0],privateOffset=privateOffset[1],0===size||privateOffset>=this.bytes.length?this.emptyPrivateDictionary(parentDict):(size=this.bytes.subarray(privateOffset,privateOffset+size),size=this.parseDict(size),size=this.createDict(CFFPrivateDict,size,parentDict.strings),0===(parentDict.privateDict=size).getByName("ExpansionFactor")&&size.setByName("ExpansionFactor",.06),size.getByName("Subrs")&&(relativeOffset=privateOffset+(privateOffset=size.getByName("Subrs")),0===privateOffset||relativeOffset>=this.bytes.length?this.emptyPrivateDictionary(parentDict):(privateOffset=this.parseIndex(relativeOffset),size.subrsIndex=privateOffset.obj)))):parentDict.removeByName("Private")):this.emptyPrivateDictionary(parentDict)}parseCharsets(pos,length,strings,cid){if(0===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.ISO_ADOBE,ISOAdobeCharset);if(1===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.EXPERT,ExpertCharset);if(2===pos)return new CFFCharset(!0,CFFCharsetPredefinedTypes.EXPERT_SUBSET,ExpertSubsetCharset);var bytes=this.bytes,start=pos,format=bytes[pos++],charset=[cid?0:".notdef"];let id,count,i;switch(--length,format){case 0:for(i=0;i=this.charStrings.count)&&0=this.fdSelect.length?-1:this.fdSelect[glyphIndex]}}class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(key){return key in this.offsets}track(key,location){if(key in this.offsets)throw new FormatError("Already tracking location of "+key);this.offsets[key]=location}offset(value){for(const key in this.offsets)this.offsets[key]+=value}setEntryLocation(key,values,output){if(!(key in this.offsets))throw new FormatError("Not tracking location of "+key);var data=output.data,dataOffset=this.offsets[key];for(let i=0,ii=values.length;i>24&255,data[offset2]=value>>16&255,data[offset3]=value>>8&255,data[offset4]=255&value}}}class CFFCompiler{constructor(cff){this.cff=cff}compile(){var cff=this.cff,output={data:[],length:0,add(data){try{this.data.push(...data)}catch{this.data=this.data.concat(data)}this.length=this.data.length}},header=this.compileHeader(cff.header),header=(output.add(header),this.compileNameIndex(cff.names));if(output.add(header),cff.isCIDFont&&cff.topDict.hasName("FontMatrix")){var base=cff.topDict.getByName("FontMatrix");cff.topDict.removeByName("FontMatrix");for(const subDict of cff.fdArray){let matrix=base.slice(0);subDict.hasName("FontMatrix")&&(matrix=Util.transform(matrix,subDict.getByName("FontMatrix"))),subDict.setByName("FontMatrix",matrix)}}16>8),255&value]:-1131<=value&&value<=-108?[251+((value=-value-108)>>8),255&value]:-32768<=value&&value<=32767?[28,value>>8&255,255&value]:[29,value>>24&255,value>>16&255,value>>8&255,255&value]}compileHeader(header){return[header.major,header.minor,4,header.offSize]}compileNameIndex(names){var nameIndex=new CFFIndex;for(const name of names){var length=Math.min(name.length,127);let sanitizedName=new Array(length);for(let j=0;j"===char||"/"===char||"%"===char)&&(char="_"),sanitizedName[j]=char}""===(sanitizedName=sanitizedName.join(""))&&(sanitizedName="Bad_Font_Name"),nameIndex.add(stringToBytes(sanitizedName))}return this.compileIndex(nameIndex)}compileTopDicts(dicts,length,removeCidKeys){var fontDictTrackers=[];let fdArrayIndex=new CFFIndex;for(const fontDict of dicts){removeCidKeys&&(fontDict.removeByName("CIDFontVersion"),fontDict.removeByName("CIDFontRevision"),fontDict.removeByName("CIDFontType"),fontDict.removeByName("CIDCount"),fontDict.removeByName("UIDBase"));var fontDictTracker=new CFFOffsetTracker,fontDictData=this.compileDict(fontDict,fontDictTracker);fontDictTrackers.push(fontDictTracker),fdArrayIndex.add(fontDictData),fontDictTracker.offset(length)}return{trackers:fontDictTrackers,output:fdArrayIndex=this.compileIndex(fdArrayIndex,fontDictTrackers)}}compilePrivateDicts(dicts,trackers,output){for(let i=0,ii=dicts.length;i>8&255,255&numGlyphs]);else{let charsetIndex=(out=new Uint8Array(1+2*numGlyphs))[0]=0;var name,numCharsets=charset.charset.length;let warned=!1;for(let i=1;i>8&255,out[i+1]=255&sid}}return this.compileTypedArray(out)}compileEncoding(encoding){return this.compileTypedArray(encoding.raw)}compileFDSelect(fdSelect){var format=fdSelect.format;let out,i;switch(format){case 0:for((out=new Uint8Array(1+fdSelect.fdSelect.length))[0]=format,i=0;i>8&255,255&i,currentFD),lastFD=currentFD)}var numRanges=(ranges.length-3)/3;ranges[1]=numRanges>>8&255,ranges[2]=255&numRanges,ranges.push(i>>8&255,255&i),out=new Uint8Array(ranges)}return this.compileTypedArray(out)}compileTypedArray(data){return Array.from(data)}compileIndex(index,trackers=[]){var objects=index.objects,count=objects.length;if(0===count)return[0,0];var data=[count>>8&255,255&count];let lastOffset=1,i;for(i=0;i>8&255,255&relativeOffset):3===offsetSize?data.push(relativeOffset>>16&255,relativeOffset>>8&255,255&relativeOffset):data.push(relativeOffset>>>24&255,relativeOffset>>16&255,relativeOffset>>8&255,255&relativeOffset),objects[i]&&(relativeOffset+=objects[i].length);for(i=0;i=range[i]&&value<=range[i+1])return lastPosition}for(let i=0,ii=UnicodeRanges.length;i=range[j]&&value<=range[j+1])return i}return-1}const SpecialCharRegExp=new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$","u"),CategoryCache=new Map;function getCharUnicodeCategory(char){var cachedCategory=CategoryCache.get(char);return cachedCategory||(cachedCategory={isWhitespace:!!(cachedCategory=char.match(SpecialCharRegExp))?.[1],isZeroWidthDiacritic:!!cachedCategory?.[2],isInvisibleFormatMark:!!cachedCategory?.[3]},CategoryCache.set(char,cachedCategory),cachedCategory)}function clearUnicodeCaches(){CategoryCache.clear()}const SEAC_ANALYSIS_ENABLED=!0,FontFlags={FixedPitch:1,Serif:2,Symbolic:4,Script:8,Nonsymbolic:32,Italic:64,AllCap:65536,SmallCap:131072,ForceBold:262144},MacStandardGlyphOrdering=[".notdef",".null","nonmarkingreturn","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quotesingle","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","grave","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","Adieresis","Aring","Ccedilla","Eacute","Ntilde","Odieresis","Udieresis","aacute","agrave","acircumflex","adieresis","atilde","aring","ccedilla","eacute","egrave","ecircumflex","edieresis","iacute","igrave","icircumflex","idieresis","ntilde","oacute","ograve","ocircumflex","odieresis","otilde","uacute","ugrave","ucircumflex","udieresis","dagger","degree","cent","sterling","section","bullet","paragraph","germandbls","registered","copyright","trademark","acute","dieresis","notequal","AE","Oslash","infinity","plusminus","lessequal","greaterequal","yen","mu","partialdiff","summation","product","pi","integral","ordfeminine","ordmasculine","Omega","ae","oslash","questiondown","exclamdown","logicalnot","radical","florin","approxequal","Delta","guillemotleft","guillemotright","ellipsis","nonbreakingspace","Agrave","Atilde","Otilde","OE","oe","endash","emdash","quotedblleft","quotedblright","quoteleft","quoteright","divide","lozenge","ydieresis","Ydieresis","fraction","currency","guilsinglleft","guilsinglright","fi","fl","daggerdbl","periodcentered","quotesinglbase","quotedblbase","perthousand","Acircumflex","Ecircumflex","Aacute","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Oacute","Ocircumflex","apple","Ograve","Uacute","Ucircumflex","Ugrave","dotlessi","circumflex","tilde","macron","breve","dotaccent","ring","cedilla","hungarumlaut","ogonek","caron","Lslash","lslash","Scaron","scaron","Zcaron","zcaron","brokenbar","Eth","eth","Yacute","yacute","Thorn","thorn","minus","multiply","onesuperior","twosuperior","threesuperior","onehalf","onequarter","threequarters","franc","Gbreve","gbreve","Idotaccent","Scedilla","scedilla","Cacute","cacute","Ccaron","ccaron","dcroat"];function recoverGlyphName(name,glyphsUnicodeMap){if(void 0===glyphsUnicodeMap[name]){var unicode=getUnicodeForGlyph(name,glyphsUnicodeMap);if(-1!==unicode)for(const key in glyphsUnicodeMap)if(glyphsUnicodeMap[key]===unicode)return key;info("Unable to recover a standard glyph name for: "+name)}return name}function type1FontGlyphMapping(properties,builtInEncoding,glyphNames){var charCodeToGlyphId=Object.create(null);let glyphId,charCode,baseEncoding;var isSymbolicFont=!!(properties.flags&FontFlags.Symbolic);if(properties.isInternalFont)for(baseEncoding=builtInEncoding,charCode=0;charCode=this.firstChar&&v<=this.lastChar?v:-1}amend(map){unreachable("Should not call amend()")}}class CFFFont{constructor(file,properties){this.properties=properties;var parser=new CFFParser(file,properties,SEAC_ANALYSIS_ENABLED),parser=(this.cff=parser.parse(),this.cff.duplicateFirstGlyph(),new CFFCompiler(this.cff));this.seacs=this.cff.seacs;try{this.data=parser.compile()}catch{warn("Failed to compile font "+properties.loadedName),this.data=file}this._createBuiltInEncoding()}get numGlyphs(){return this.cff.charStrings.count}getCharset(){return this.cff.charset.charset}getGlyphMapping(){var cff=this.cff,properties=this.properties,{cidToGidMap,cMap}=properties,charsets=cff.charset.charset;let charCodeToGlyphId,glyphId;if(properties.composite){let invCidToGidMap;if(0>>0}function getUint16(data,offset){return data[offset]<<8|data[offset+1]}function getInt16(data,offset){return(data[offset]<<24|data[offset+1]<<16)>>16}function getInt8(data,offset){return data[offset]<<24>>24}function getFloat214(data,offset){return getInt16(data,offset)/16384}function getSubroutineBias(subrs){subrs=subrs.length;let bias=32768;return subrs<1240?bias=107:subrs<33900&&(bias=1131),bias}function parseCmap(data,start,end){var offset=1===getUint16(data,start+2)?getUint32(data,start+8):getUint32(data,start+16),format=getUint16(data,start+offset);let ranges,p,i;if(4===format){getUint16(data,start+offset+2);var segCount=getUint16(data,start+offset+6)>>1;for(p=start+offset+14,ranges=[],i=0;i2*getUint16(data,offset)))(loca,0);for(let j=itemSize;j>1;code>1,stackClean=!0;break;case 4:y+=stack.pop(),moveTo(x,y),stackClean=!0;break;case 5:for(;0Math.abs(y-y0)?x+=stack.shift():y+=stack.shift(),bezierCurveTo(xa,ya,xb,yb,x,y);break;default:throw new FormatError("unknown operator: 12 "+v)}break;case 14:var bchar,cmap;return void(4<=stack.length&&(fdIndex=stack.pop(),bchar=stack.pop(),y=stack.pop(),x=stack.pop(),cmds.add(FontRenderOps.SAVE),cmds.add(FontRenderOps.TRANSLATE,[x,y]),cmap=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[StandardEncoding[fdIndex]])),compileCharString(font.glyphs[cmap.glyphId],cmds,font,cmap.glyphId),cmds.add(FontRenderOps.RESTORE),cmap=lookupCmap(font.cmap,String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])),compileCharString(font.glyphs[cmap.glyphId],cmds,font,cmap.glyphId)));case 18:stems+=stack.length>>1,stackClean=!0;break;case 19:case 20:stems+=stack.length>>1,i+=stems+7>>3,stackClean=!0;break;case 21:y+=stack.pop(),moveTo(x+=stack.pop(),y),stackClean=!0;break;case 22:moveTo(x+=stack.pop(),y),stackClean=!0;break;case 23:stems+=stack.length>>1,stackClean=!0;break;case 24:for(;2>16),i+=2;break;case 29:n=stack.pop()+font.gsubrsBias,(subrCode=font.gsubrs[n])&&parse(subrCode);break;case 30:for(;0"number"==typeof arg?arg:0),this.cmds.push(cmd,...args)):this.cmds.push(cmd)}}class CompiledFont{constructor(fontMatrix){this.constructor===CompiledFont&&unreachable("Cannot initialize CompiledFont."),this.fontMatrix=fontMatrix,this.compiledGlyphs=Object.create(null),this.compiledCharCodeToGlyphId=Object.create(null)}getPathJs(unicode){var{charCode:unicode,glyphId}=lookupCmap(this.cmap,unicode);let fn=this.compiledGlyphs[glyphId],compileEx;if(!fn){try{fn=this.compileGlyph(this.glyphs[glyphId],glyphId)}catch(ex){fn=NOOP,compileEx=ex}this.compiledGlyphs[glyphId]=fn}if(this.compiledCharCodeToGlyphId[unicode]??=glyphId,compileEx)throw compileEx;return fn}compileGlyph(code,glyphId){if(!code||0===code.length||14===code[0])return NOOP;let fontMatrix=this.fontMatrix;this.isCFFCIDFont&&(0<=(fdIndex=this.fdSelect.getFDIndex(glyphId))&&fdIndex{return a+(g.getSize()+3&-4)},0)}write(){var totalSize=this.getSize(),glyfTable=new DataView(new ArrayBuffer(totalSize)),isLocationLong=131070>1);return{isLocationLong:isLocationLong,loca:new Uint8Array(locaTable.buffer),glyf:new Uint8Array(glyfTable.buffer)}}scale(factors){for(let i=0,ii=this.glyphs.length;ia+c.getSize(),0),this.header.getSize()+size):0}write(pos,buf){if(!this.header)return 0;var spos=pos;if(pos+=this.header.write(pos,buf),this.simple)pos+=this.simple.write(pos,buf);else for(const composite of this.composites)pos+=composite.write(pos,buf);return pos-spos}scale(factor){if(this.header){var xMiddle=(this.header.xMin+this.header.xMax)/2;if(this.header.scale(xMiddle,factor),this.simple)this.simple.scale(xMiddle,factor);else for(const composite of this.composites)composite.scale(xMiddle,factor)}}}class GlyphHeader{constructor({numberOfContours,xMin,yMin,xMax,yMax}){this.numberOfContours=numberOfContours,this.xMin=xMin,this.yMin=yMin,this.xMax=xMax,this.yMax=yMax}static parse(pos,glyf){return[10,new GlyphHeader({numberOfContours:glyf.getInt16(pos),xMin:glyf.getInt16(pos+2),yMin:glyf.getInt16(pos+4),xMax:glyf.getInt16(pos+6),yMax:glyf.getInt16(pos+8)})]}getSize(){return 10}write(pos,buf){return buf.setInt16(pos,this.numberOfContours),buf.setInt16(pos+2,this.xMin),buf.setInt16(pos+4,this.yMin),buf.setInt16(pos+6,this.xMax),buf.setInt16(pos+8,this.yMax),10}scale(x,factor){this.xMin=Math.round(x+(this.xMin-x)*factor),this.xMax=Math.round(x+(this.xMax-x)*factor)}}class Contour{constructor({flags,xCoordinates,yCoordinates}){this.xCoordinates=xCoordinates,this.yCoordinates=yCoordinates,this.flags=flags}}class SimpleGlyph{constructor({contours,instructions}){this.contours=contours,this.instructions=instructions}static parse(pos,glyf,numberOfContours){var endPtsOfContours=[];for(let i=0;i>8&255,dest[offset+1]=255&num}function writeInt32(dest,offset,num){dest[offset]=num>>24&255,dest[offset+1]=num>>16&255,dest[offset+2]=num>>8&255,dest[offset+3]=255&num}function writeData(dest,offset,data){if(data instanceof Uint8Array)dest.set(data,offset);else if("string"==typeof data)for(let i=0,ii=data.length;imaxPower2;)maxPower2<<=1,log2++;var searchRange=maxPower2*entrySize;return{range:searchRange,entry:log2,rangeShift:entrySize*entriesCount-searchRange}}toArray(){let sfnt=this.sfnt;var tables=this.tables,tablesNames=Object.keys(tables),numTables=(tablesNames.sort(),tablesNames.length);let i,j,jj,table,tableName,offset=OTF_HEADER_SIZE+numTables*OTF_TABLE_ENTRY_SIZE;var tableOffsets=[offset];for(i=0;i>>0;offset+=paddedLength,tableOffsets.push(offset)}var file=new Uint8Array(offset);for(i=0;i>>0}writeInt32(file,offset+4,checksum),writeInt32(file,offset+8,tableOffsets[i]),writeInt32(file,offset+12,tables[tableName].length),offset+=OTF_TABLE_ENTRY_SIZE}return file}addTable(tag,data){if(tag in this.tables)throw new Error("Table "+tag+" already exists");this.tables[tag]=data}}const HINTING_ENABLED=!1,COMMAND_MAP={hstem:[1],vstem:[3],vmoveto:[4],rlineto:[5],hlineto:[6],vlineto:[7],rrcurveto:[8],callsubr:[10],flex:[12,35],drop:[12,18],endchar:[14],rmoveto:[21],hmoveto:[22],vhcurveto:[30],hvcurveto:[31]};class Type1CharString{constructor(){this.width=0,this.lsb=0,this.flexing=!1,this.output=[],this.stack=[]}convert(encoded,subrs,seacAnalysisEnabled){var sby,num1,flexArgs,count=encoded.length;let error=!1,wx,sbx,subrNumber;for(let i=0;i>8&255,255&value):this.output.push(255,(value=65536*value|0)>>24&255,value>>16&255,value>>8&255,255&value)}return this.output.push(...command),keepStack?this.stack.splice(start,howManyArgs):this.stack.length=0,!1}}const EEXEC_ENCRYPT_KEY=55665,CHAR_STRS_ENCRYPT_KEY=4330;function isHexDigit(code){return 48<=code&&code<=57||65<=code&&code<=70||97<=code&&code<=102}function decrypt(data,key,discardNumber){if(discardNumber>=data.length)return new Uint8Array(0);let r=0|key,i,j;for(i=0;i>8,r=52845*(value+r)+22719&65535}return decrypted}function decryptAscii(data,key,discardNumber){let r=0|key;var count=data.length,decrypted=new Uint8Array(count>>>1);let i,j;for(i=0,j=0;i>8,r=52845*(digit1+r)+22719&65535)}}return decrypted.slice(discardNumber,j)}function isSpecial(c){return 47===c||91===c||93===c||123===c||125===c||40===c||41===c}class Type1Parser{constructor(stream,encrypted,seacAnalysisEnabled){var isBinary;encrypted&&(isBinary=!((isHexDigit((encrypted=stream.getBytes())[0])||isWhiteSpace(encrypted[0]))&&isHexDigit(encrypted[1])&&isHexDigit(encrypted[2])&&isHexDigit(encrypted[3])&&isHexDigit(encrypted[4])&&isHexDigit(encrypted[5])&&isHexDigit(encrypted[6])&&isHexDigit(encrypted[7])),stream=new Stream((isBinary?decrypt:decryptAscii)(encrypted,EEXEC_ENCRYPT_KEY,4))),this.seacAnalysisEnabled=!!seacAnalysisEnabled,this.stream=stream,this.nextChar()}readNumberArray(){this.getToken();for(var array=[];;){var token=this.getToken();if(null===token||"]"===token||"}"===token)break;array.push(parseFloat(token||0))}return array}readNumber(){var token=this.getToken();return parseFloat(token||0)}readInt(){var token=this.getToken();return 0|parseInt(token||0,10)}readBoolean(){return"true"===this.getToken()?1:0}nextChar(){return this.currentChar=this.stream.getByte()}prevChar(){return this.stream.skip(-2),this.currentChar=this.stream.getByte()}getToken(){let comment=!1,ch=this.currentChar;for(;;){if(-1===ch)return null;if(comment)10!==ch&&13!==ch||(comment=!1);else if(37===ch)comment=!0;else if(!isWhiteSpace(ch))break;ch=this.nextChar()}if(isSpecial(ch))return this.nextChar(),String.fromCharCode(ch);let token="";for(;token+=String.fromCharCode(ch),0<=(ch=this.nextChar())&&!isWhiteSpace(ch)&&!isSpecial(ch););return token}readCharStrings(bytes,lenIV){return-1===lenIV?bytes:decrypt(bytes,CHAR_STRS_ENCRYPT_KEY,lenIV)}extractFontProgram(properties){var glyph,encoded,stream=this.stream,subrs=[],charstrings=[],privateData=Object.create(null),program=(privateData.lenIV=4,{subrs:[],charstrings:[],properties:{privateData:privateData}});let token,length,data,lenIV;for(;null!==(token=this.getToken());)if("/"===token)switch(token=this.getToken()){case"CharStrings":for(this.getToken(),this.getToken(),this.getToken(),this.getToken();;){if(null===(token=this.getToken())||"end"===token)break;"/"===token&&(glyph=this.getToken(),length=this.readInt(),this.getToken(),data=0=properties.firstChar&&index<=properties.lastChar&&(properties.widths[index]=charString.width)}}return program}extractFontHeader(properties){let token;for(;null!==(token=this.getToken());)if("/"===token)switch(token=this.getToken()){case"FontMatrix":var matrix=this.readNumberArray();properties.fontMatrix=matrix;break;case"Encoding":matrix=this.getToken();let encoding;if(/^\d+$/.test(matrix)){encoding=[];var size=0|parseInt(matrix,10);this.getToken();for(let j=0;j=signatureLength){for(i+=j;i=this.numGlyphs)&&(0===id||0>>8}function signedInt16(b0,b1){b0=(b0<<8)+b1;return 32768&b0?b0-65536:b0}function writeUint32(bytes,index,value){bytes[index+3]=255&value,bytes[index+2]=value>>>8,bytes[index+1]=value>>>16,bytes[index]=value>>>24}function int32(b0,b1,b2,b3){return(b0<<24)+(b1<<16)+(b2<<8)+b3}function string16(value){return String.fromCharCode(value>>8&255,255&value)}function safeString16(value){return 32767>8&255,255&value)}function isTrueTypeFile(file){file=file.peekBytes(4);return 65536===readUint32(file,0)||"true"===bytesToString(file)}function isTrueTypeCollectionFile(file){return"ttcf"===bytesToString(file.peekBytes(4))}function isOpenTypeFile(file){return"OTTO"===bytesToString(file.peekBytes(4))}function isType1File(file){file=file.peekBytes(2);return 37===file[0]&&33===file[1]||128===file[0]&&1===file[1]}function isCFFFile(file){file=file.peekBytes(4);return 1<=file[0]&&1<=file[3]&&file[3]<=4}function getFontFileType(file,{type,subtype,composite}){let fileType,fileSubtype;return isTrueTypeFile(file)||isTrueTypeCollectionFile(file)?fileType=composite?"CIDFontType2":"TrueType":isOpenTypeFile(file)?fileType=composite?"CIDFontType2":"OpenType":isType1File(file)?fileType=composite?"CIDFontType0":"MMType1"===type?"MMType1":"Type1":fileSubtype=isCFFFile(file)?composite?(fileType="CIDFontType0","CIDFontType0C"):(fileType="MMType1"===type?"MMType1":"Type1","Type1C"):(warn("getFontFileType: Unable to detect correct font file Type/Subtype."),fileType=type,subtype),[fileType,fileSubtype]}function applyStandardFontGlyphMap(map,glyphMap){for(const charCode in glyphMap)map[+charCode]=glyphMap[charCode]}function buildToFontChar(encoding,glyphsUnicodeMap,differences){var toFontChar=[];let unicode;for(let i=0,ii=encoding.length;iprivateUseOffetEnd){if(++privateUseAreaIndex>=PRIVATE_USE_AREAS.length){warn("Ran out of space in font private use area.");break}nextAvailableFontCharCode=PRIVATE_USE_AREAS[privateUseAreaIndex][0],privateUseOffetEnd=PRIVATE_USE_AREAS[privateUseAreaIndex][1]}var fontCharCode=nextAvailableFontCharCode++;0===glyphId&&(glyphId=newGlyphZeroId);let unicode=toUnicode.get(originalCharCode);!(unicode="string"==typeof unicode?unicode.codePointAt(0):unicode)||(code=unicode,PRIVATE_USE_AREAS[0][0]<=code&&code<=PRIVATE_USE_AREAS[0][1])||PRIVATE_USE_AREAS[1][0]<=code&&code<=PRIVATE_USE_AREAS[1][1]||usedGlyphIds.has(glyphId)||(toUnicodeExtraMap.set(unicode,glyphId),usedGlyphIds.add(glyphId)),newMap[fontCharCode]=glyphId,toFontChar[originalCharCode]=fontCharCode}}return{toFontChar:toFontChar,charCodeToGlyphId:newMap,toUnicodeExtraMap:toUnicodeExtraMap,nextAvailableFontCharCode:nextAvailableFontCharCode}}function getRanges(glyphs,toUnicodeExtraMap,numGlyphs){var codes=[];for(const charCode in glyphs)glyphs[charCode]>=numGlyphs||codes.push({fontCharCode:0|charCode,glyphId:glyphs[charCode]});if(toUnicodeExtraMap)for(var[unicode,glyphId]of toUnicodeExtraMap)glyphId>=numGlyphs||codes.push({fontCharCode:unicode,glyphId:glyphId});0===codes.length&&codes.push({fontCharCode:0,glyphId:0}),codes.sort(function(a,b){return a.fontCharCode-b.fontCharCode});var ranges=[],length=codes.length;for(let n=0;ncode||!firstCharIndex)&&(firstCharIndex=code),lastCharIndex 123 are reserved for internal usage");ulUnicodeRange4|=1</%]/g,"").slice(0,63)}function createNameTable(name,proto){var strings=[(proto=proto||[[],[]])[0][0]||"Original licence",proto[0][1]||name,proto[0][2]||"Unknown",proto[0][3]||"uniqueID",proto[0][4]||name,proto[0][5]||"Version 0.11",proto[0][6]||createPostscriptName(name),proto[0][7]||"Unknown",proto[0][8]||"Unknown",proto[0][9]||"Unknown"],stringsUnicode=[];let i,ii,j,jj,str;for(i=0,ii=strings.length;i{var unicode;this.composite||-1!==(unicode=getUnicodeForGlyph(this.differences[charCode]||this.defaultEncoding[charCode],glyphsUnicodeMap))&&(unicodeCharCode=unicode),map[+charCode]=unicodeCharCode}),this.composite&&this.toUnicode instanceof IdentityToUnicodeMap&&/Tahoma|Verdana/i.test(name)&&applyStandardFontGlyphMap(map,getGlyphMapForStandardFonts()),this.toFontChar=map}amendFallbackToUnicode(properties),this.loadedName=fontName.split("-",1)[0]}checkAndRepair(name,font,properties){const VALID_TABLES=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(file,numTables){var tables=Object.create(null);tables["OS/2"]=null,tables.cmap=null,tables.head=null,tables.hhea=null,tables.hmtx=null,tables.maxp=null,tables.name=null,tables.post=null;for(let i=0;i>>0,offset=file.getInt32()>>>0,length=file.getInt32()>>>0,previousPosition=file.pos,data=(file.pos=file.start||0,file.skip(offset),file.getBytes(length));file.pos=previousPosition,"head"===tag&&(data[8]=data[9]=data[10]=data[11]=0,data[17]|=32);return{tag:tag,checksum:checksum,length:length,offset:offset,data:data}}(file);VALID_TABLES.includes(table.tag)&&0!==table.length&&(tables[table.tag]=table)}return tables}function readOpenTypeHeader(ttf){return{version:ttf.getString(4),numTables:ttf.getUint16(),searchRange:ttf.getUint16(),entrySelector:ttf.getUint16(),rangeShift:ttf.getUint16()}}function readTrueTypeCollectionData(ttc,fontName){var{numFonts,offsetTable}=function(ttc){var ttcTag=ttc.getString(4),majorVersion=(assert("ttcf"===ttcTag,"Must be a TrueType Collection font."),ttc.getUint16()),minorVersion=ttc.getUint16(),numFonts=ttc.getInt32()>>>0,offsetTable=[];for(let i=0;i>>0);var header={ttcTag:ttcTag,majorVersion:majorVersion,minorVersion:minorVersion,numFonts:numFonts,offsetTable:offsetTable};switch(majorVersion){case 1:return header;case 2:return header.dsigTag=ttc.getInt32()>>>0,header.dsigLength=ttc.getInt32()>>>0,header.dsigOffset=ttc.getInt32()>>>0,header}throw new FormatError(`Invalid TrueType Collection majorVersion: ${majorVersion}.`)}(ttc),fontNameParts=fontName.split("+");let fallbackData;for(let i=0;i>>24&255,data[offset+1]=value>>16&255,data[offset+2]=value>>8&255,data[offset+3]=255&value}):(itemSize=2,itemDecode=function(data,offset){return data[offset]<<9|data[offset+1]<<1},function(data,offset,value){data[offset]=value>>9&255,data[offset+1]=value>>1&255});var numGlyphsOut=dupFirstEntry?numGlyphs+1:numGlyphs,isGlyphLocationsLong=itemSize*(1+numGlyphsOut),locaData=new Uint8Array(isGlyphLocationsLong),oldGlyfData=(locaData.set(loca.data.subarray(0,isGlyphLocationsLong)),loca.data=locaData,glyf.data),oldGlyfDataLength=oldGlyfData.length,newGlyfData=new Uint8Array(oldGlyfDataLength);let i,j;var locaEntries=[];for(i=0,j=0;ioldGlyfDataLength&&(offset=oldGlyfDataLength),locaEntries.push({index:i,offset:offset,endOffset:0})}for(locaEntries.sort((a,b)=>a.offset-b.offset),i=0;ia.index-b.index),i=0;i=source.length||sourceEnd>source.length||sourceEnd-sourceStart<=12)){var glyf=source.subarray(sourceStart,sourceEnd),source=signedInt16(glyf[2],glyf[3]),sourceStart=signedInt16(glyf[4],glyf[5]),sourceEnd=signedInt16(glyf[6],glyf[7]),yMax=signedInt16(glyf[8],glyf[9]),contoursCount=(sourceEndglyf.length||(!hintsValid&&0maxSizeOfInstructions&&(maxSizeOfInstructions=glyphProfile.sizeOfInstructions),writeOffset+=newLength,itemEncode(locaData,j,writeOffset)}if(0===writeOffset){var simpleGlyph=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(i=0,j=itemSize;iisGlyphLocationsLong+writeOffset?glyf.data=newGlyfData.subarray(0,isGlyphLocationsLong+writeOffset):(glyf.data=new Uint8Array(isGlyphLocationsLong+writeOffset),glyf.data.set(newGlyfData.subarray(0,writeOffset))),glyf.data.set(newGlyfData.subarray(0,isGlyphLocationsLong),writeOffset),itemEncode(loca.data,locaData.length-itemSize,writeOffset+isGlyphLocationsLong)):glyf.data=newGlyfData.subarray(0,writeOffset);return{missingGlyphs:missingGlyphs,maxSizeOfInstructions:maxSizeOfInstructions}}function readNameTable(nameTable){var start=(font.start||0)+nameTable.offset,names=(font.pos=start,[[],[]]),records=[],nameTable=nameTable.length,end=start+nameTable,format=font.getUint16();if(!(0!==format||nameTable<6)){var numRecords=font.getUint16(),stringsStart=font.getUint16();let i,ii;for(i=0;iend)){font.pos=pos;pos=record.name;if(record.encoding){let str="";for(let j=0,jj=record.length;jdata.length&&content.push(new Uint8Array(i-data.length)),lastDeff>lastEndf&&(warn("TT: complementing a missing function tail"),content.push(new Uint8Array([34,45]))),function(table,content){if(1>8&255,metrics[1+j]=255&advanceWidth,Math.round(scaleFactors[i]*signedInt16(metrics[2+j],metrics[3+j])));writeSignedInt16(metrics,2+j,advanceWidth)}}let numGlyphsOut=numGlyphs+1,dupFirstEntry=!0,maxFunctionDefs=(65535>8,tables.maxp.data[5]=255&numGlyphsOut;glyphs=function(fpgm,prep,cvt,maxFunctionDefs){var ttContext={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};return fpgm&&sanitizeTTProgram(fpgm,ttContext),prep&&sanitizeTTProgram(prep,ttContext),fpgm&&function(ttContext,maxFunctionDefs){if(!ttContext.tooComplexToFollowFunctions)if(ttContext.functionsDefined.length>maxFunctionDefs)warn("TT: more functions defined than expected"),ttContext.hintsValid=!1;else for(let j=0,jj=ttContext.functionsUsed.length;jmaxFunctionDefs)return warn("TT: invalid function id: "+j),ttContext.hintsValid=!1;if(ttContext.functionsUsed[j]&&!ttContext.functionsDefined[j])return warn("TT: undefined function: "+j),ttContext.hintsValid=!1}}(ttContext,maxFunctionDefs),cvt&&1&cvt.length&&((prep=new Uint8Array(cvt.length+1)).set(cvt.data),cvt.data=prep),ttContext.hintsValid}(tables.fpgm,tables.prep,tables["cvt "],maxFunctionDefs);if(glyphs||(delete tables.fpgm,delete tables.prep,delete tables["cvt "]),!function(file,header,metrics,headTable,numGlyphs,dupFirstEntry){if(header){file.pos=(file.start||0)+header.offset,file.pos+=4,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2,file.pos+=2;var caretOffset=file.getUint16();file.pos+=8,file.pos+=2;let numOfMetrics=file.getUint16();0===caretOffset||2&int16(headTable.data[44],headTable.data[45])||(header.data[22]=0,header.data[23]=0),numOfMetrics>numGlyphs&&(info(`The numOfMetrics (${numOfMetrics}) should not be `+`greater than the numGlyphs (${numGlyphs}).`),numOfMetrics=numGlyphs,header.data[34]=(65280&numOfMetrics)>>8,header.data[35]=255&numOfMetrics);file=numGlyphs-numOfMetrics-(metrics.length-4*numOfMetrics>>1);0>16!=1&&(info("Attempting to fix invalid version in head table: "+version),head[0]=0,head[1]=1,head[2]=0,head[3]=0),(version=int16(head[50],head[51]))<0||1>8,tables.maxp.data[27]=255&loca.maxSizeOfInstructions)}if(!tables.hhea)throw new FormatError('Required "hhea" table is not found');0===tables.hhea.data[10]&&0===tables.hhea.data[11]&&(tables.hhea.data[10]=255,tables.hhea.data[11]=255);isComposite={unitsPerEm:int16(tables.head.data[18],tables.head.data[19]),yMax:signedInt16(tables.head.data[42],tables.head.data[43]),yMin:signedInt16(tables.head.data[38],tables.head.data[39]),ascent:signedInt16(tables.hhea.data[4],tables.hhea.data[5]),descent:signedInt16(tables.hhea.data[6],tables.hhea.data[7]),lineGap:signedInt16(tables.hhea.data[8],tables.hhea.data[9])};this.ascent=isComposite.ascent/isComposite.unitsPerEm,this.descent=isComposite.descent/isComposite.unitsPerEm,this.lineGap=isComposite.lineGap/isComposite.unitsPerEm,this.cssFontInfo?.lineHeight?(this.lineHeight=this.cssFontInfo.metrics.lineHeight,this.lineGap=this.cssFontInfo.metrics.lineGap):this.lineHeight=this.ascent-this.descent+this.lineGap,tables.post&&function(post,propertiesObj,maxpNumGlyphs){var start=(font.start||0)+post.offset,post=(font.pos=start,post.length),end=start+post,version=font.getInt32();font.skip(28);let glyphNames,valid=!0,i;switch(version){case 65536:glyphNames=MacStandardGlyphOrdering;break;case 131072:var numGlyphs=font.getUint16();if(numGlyphs!==maxpNumGlyphs)valid=!1;else{var glyphNameIndexes=[];for(i=0;i>>0;let useTable=!1;if(potentialTable?.platformId!==platformId||potentialTable?.encodingId!==encodingId){if(0!==platformId||0!==encodingId&&1!==encodingId&&3!==encodingId)if(1===platformId&&0===encodingId)useTable=!0;else if(3!==platformId||1!==encodingId||!hasEncoding&&potentialTable){if(isSymbolicFont&&3===platformId&&0===encodingId){let correctlySorted=useTable=!0;(correctlySorted=i>3;subHeaderKeys.push(subHeaderKey),maxSubHeaderKey=Math.max(subHeaderKey,maxSubHeaderKey)}var subHeaders=[];for(let i=0;i<=maxSubHeaderKey;i++)subHeaders.push({firstCode:file.getUint16(),entryCount:file.getUint16(),idDelta:signedInt16(file.getByte(),file.getByte()),idRangePos:file.pos+file.getUint16()});for(let i=0;i<256;i++)if(0===subHeaderKeys[i])file.pos=subHeaders[0].idRangePos+2*i,glyphId=file.getUint16(),mappings.push({charCode:i,glyphId:glyphId});else{var s=subHeaders[subHeaderKeys[i]];for(j=0;j>1,segments=(file.skip(6),[]);let segIndex;for(segIndex=0;segIndex>1)-(segCount-segIndex),segment.offsetIndex=offsetIndex,offsetsCount=Math.max(offsetsCount,offsetIndex+segment.end-segment.start+1)):segment.offsetIndex=-1}var offsets=[];for(j=0;j>>0;for(j=0;j>>0,endCharCode=file.getInt32()>>>0;let glyphCode=file.getInt32()>>>0;for(let charCode=startCharCode;charCode<=endCharCode;charCode++)mappings.push({charCode:charCode,glyphId:glyphCode++})}}mappings.sort(function(a,b){return a.charCode-b.charCode});for(let i=1;ithis.toUnicode.charCodeOf(unicode):unicode=>this.toUnicode.charCodeOf(String.fromCodePoint(unicode));for(let i=0,ii=str.length;i>8*j&255));continue}}buffers.length%2!=1&&(buffers.push(currentBuf.join("")),currentBuf.length=0),currentBuf.push(String.fromCodePoint(unicode))}return buffers.push(currentBuf.join("")),buffers}}class ErrorFont{constructor(error){this.error=error,this.loadedName="g_font_error",this.missingFile=!0}charsToGlyphs(){return[]}encodeString(chars){return[chars]}exportData(extraProperties=0){return{error:this.error}}}const ShadingType={FUNCTION_BASED:1,AXIAL:2,RADIAL:3,FREE_FORM_MESH:4,LATTICE_FORM_MESH:5,COONS_PATCH_MESH:6,TENSOR_PATCH_MESH:7};class Pattern{constructor(){unreachable("Cannot initialize Pattern.")}static parseShading(shading,xref,res,pdfFunctionFactory,localColorSpaceCache){var dict=shading instanceof BaseStream?shading.dict:shading,type=dict.get("ShadingType");try{switch(type){case ShadingType.AXIAL:case ShadingType.RADIAL:return new RadialAxialShading(dict,xref,res,pdfFunctionFactory,localColorSpaceCache);case ShadingType.FREE_FORM_MESH:case ShadingType.LATTICE_FORM_MESH:case ShadingType.COONS_PATCH_MESH:case ShadingType.TENSOR_PATCH_MESH:return new MeshShading(shading,xref,res,pdfFunctionFactory,localColorSpaceCache);default:throw new FormatError("Unsupported ShadingType: "+type)}}catch(ex){if(ex instanceof MissingDataException)throw ex;return warn(ex),new DummyShading}}}class BaseShading{static SMALL_NUMBER=1e-6;constructor(){this.constructor===BaseShading&&unreachable("Cannot initialize BaseShading.")}getIR(){unreachable("Abstract method `getIR` called.")}}class RadialAxialShading extends BaseShading{constructor(dict,xref,resources,pdfFunctionFactory,localColorSpaceCache){super(),this.coordsArr=dict.getArray("Coords"),this.shadingType=dict.get("ShadingType");var y2,r2,cs=ColorSpace.parse({cs:dict.getRaw("CS")||dict.getRaw("ColorSpace"),xref:xref,resources:resources,pdfFunctionFactory:pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache}),xref=dict.getArray("BBox");this.bbox=Array.isArray(xref)&&4===xref.length?Util.normalizeRect(xref):null;let t0=0,t1=1,extendStart=(dict.has("Domain")&&(resources=dict.getArray("Domain"),t0=resources[0],t1=resources[1]),!1),extendEnd=!1;dict.has("Extend")&&(localColorSpaceCache=dict.getArray("Extend"),extendStart=localColorSpaceCache[0],extendEnd=localColorSpaceCache[1]),this.shadingType!==ShadingType.RADIAL||extendStart&&extendEnd||([xref,resources,localColorSpaceCache,x2,y2,r2]=this.coordsArr,localColorSpaceCache<=r2+(xref=Math.hypot(xref-x2,resources-y2))&&r2<=localColorSpaceCache+xref&&warn("Unsupported radial gradient.")),this.extendStart=extendStart,this.extendEnd=extendEnd;var x2=dict.getRaw("Function"),fn=pdfFunctionFactory.createFromArray(x2),step=(t1-t0)/840,colorStops=this.colorStops=[];if(t0>=t1||step<=0)info("Bad shading domain.");else{var color=new Float32Array(cs.numComps),ratio=new Float32Array(1);let rgbColor,iBase=0,rgbBase=(ratio[0]=t0,fn(ratio,0,color,0),cs.getRgb(color,0));resources=Util.makeHexColor(rgbBase[0],rgbBase[1],rgbBase[2]);colorStops.push([0,resources]);let iPrev=1,rgbPrev=(ratio[0]=t0+step,fn(ratio,0,color,0),cs.getRgb(color,0)),maxSlopeR=rgbPrev[0]-rgbBase[0]+1,maxSlopeG=rgbPrev[1]-rgbBase[1]+1,maxSlopeB=rgbPrev[2]-rgbBase[2]+1,minSlopeR=rgbPrev[0]-rgbBase[0]-1,minSlopeG=rgbPrev[1]-rgbBase[1]-1,minSlopeB=rgbPrev[2]-rgbBase[2]-1;for(let i=2;i<840;i++){ratio[0]=t0+i*step,fn(ratio,0,color,0),rgbColor=cs.getRgb(color,0);var run=i-iBase,run=(maxSlopeR=Math.min(maxSlopeR,(rgbColor[0]-rgbBase[0]+1)/run),maxSlopeG=Math.min(maxSlopeG,(rgbColor[1]-rgbBase[1]+1)/run),maxSlopeB=Math.min(maxSlopeB,(rgbColor[2]-rgbBase[2]+1)/run),minSlopeR=Math.max(minSlopeR,(rgbColor[0]-rgbBase[0]-1)/run),minSlopeG=Math.max(minSlopeG,(rgbColor[1]-rgbBase[1]-1)/run),minSlopeB=Math.max(minSlopeB,(rgbColor[2]-rgbBase[2]-1)/run),minSlopeR<=maxSlopeR&&minSlopeG<=maxSlopeG&&minSlopeB<=maxSlopeB);if(!run){const cssColor=Util.makeHexColor(rgbPrev[0],rgbPrev[1],rgbPrev[2]);colorStops.push([iPrev/840,cssColor]),maxSlopeR=rgbColor[0]-rgbPrev[0]+1,maxSlopeG=rgbColor[1]-rgbPrev[1]+1,maxSlopeB=rgbColor[2]-rgbPrev[2]+1,minSlopeR=rgbColor[0]-rgbPrev[0]-1,minSlopeG=rgbColor[1]-rgbPrev[1]-1,minSlopeB=rgbColor[2]-rgbPrev[2]-1,iBase=iPrev,rgbBase=rgbPrev}iPrev=i,rgbPrev=rgbColor}const cssColor=Util.makeHexColor(rgbPrev[0],rgbPrev[1],rgbPrev[2]);colorStops.push([1,cssColor]);let background="transparent";dict.has("Background")&&(rgbColor=cs.getRgb(dict.get("Background"),0),background=Util.makeHexColor(rgbColor[0],rgbColor[1],rgbColor[2])),extendStart||(colorStops.unshift([0,background]),colorStops[1][0]+=BaseShading.SMALL_NUMBER),extendEnd||(colorStops.at(-1)[0]-=BaseShading.SMALL_NUMBER,colorStops.push([1,background])),this.colorStops=colorStops}}getIR(){var coordsArr=this.coordsArr,shadingType=this.shadingType;let type,p0,p1,r0,r1;return shadingType===ShadingType.AXIAL?(p0=[coordsArr[0],coordsArr[1]],p1=[coordsArr[2],coordsArr[3]],r0=null,r1=null,type="axial"):shadingType===ShadingType.RADIAL?(p0=[coordsArr[0],coordsArr[1]],p1=[coordsArr[3],coordsArr[4]],r0=coordsArr[2],r1=coordsArr[5],type="radial"):unreachable("getPattern type unknown: "+shadingType),["RadialAxial",type,this.bbox,this.colorStops,p0,p1,r0,r1]}}class MeshStreamReader{constructor(stream,context){this.stream=stream,this.context=context,this.buffer=0,this.bufferLength=0;stream=context.numComps,this.tmpCompsBuf=new Float32Array(stream),stream=context.colorSpace.numComps;this.tmpCsCompsBuf=context.colorFn?new Float32Array(stream):this.tmpCompsBuf}get hasData(){if(this.stream.end)return this.stream.pos>>0;buffer=buffer<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var nextByte=this.stream.getByte();return this.buffer=nextByte&(1<>bufferLength)>>>0}if(8===n&&0===bufferLength)return this.stream.getByte();for(;bufferLength>bufferLength}align(){this.buffer=0,this.bufferLength=0}readFlag(){return this.readBits(this.context.bitsPerFlag)}readCoordinate(){var bitsPerCoordinate=this.context.bitsPerCoordinate,xi=this.readBits(bitsPerCoordinate),yi=this.readBits(bitsPerCoordinate),decode=this.context.decode,bitsPerCoordinate=bitsPerCoordinate<32?1/((1<x?x:minX,minY=minY>y?y:minY,maxX=maxXw*factors[i]):baseWidths;let currentCode=-2,currentArray;var unicode,glyphIndex,newWidths=[];for([unicode,glyphIndex]of baseMapping.map((charUnicode,index)=>[charUnicode,index]).sort(([unicode1],[unicode2])=>unicode1-unicode2))-1!==unicode&&(unicode===currentCode+1?(currentArray.push(rescaledBaseWidths[glyphIndex]),currentCode+=1):(currentCode=unicode,currentArray=[rescaledBaseWidths[glyphIndex]],newWidths.push(unicode,currentArray)));return newWidths}function getXfaFontDict(name){var widths=getXfaFontWidths(name),dict=new Dict(null),name=(dict.set("BaseFont",Name.get(name)),dict.set("Type",Name.get("Font")),dict.set("Subtype",Name.get("CIDFontType2")),dict.set("Encoding",Name.get("Identity-H")),dict.set("CIDToGIDMap",Name.get("Identity")),dict.set("W",widths),dict.set("FirstChar",widths[0]),dict.set("LastChar",widths.at(-2)+widths.at(-1).length-1),new Dict(null)),widths=(dict.set("FontDescriptor",name),new Dict(null));return widths.set("Ordering","Identity"),widths.set("Registry","Adobe"),widths.set("Supplement",0),dict.set("CIDSystemInfo",widths),dict}class PostScriptParser{constructor(lexer){this.lexer=lexer,this.operators=[],this.token=null,this.prev=null}nextToken(){this.prev=this.token,this.token=this.lexer.getToken()}accept(type){return this.token.type===type&&(this.nextToken(),!0)}expect(type){if(this.accept(type))return!0;throw new FormatError(`Unexpected symbol: found ${this.token.type} expected ${type}.`)}parse(){return this.nextToken(),this.expect(PostScriptTokenTypes.LBRACE),this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.operators}parseBlock(){for(;;)if(this.accept(PostScriptTokenTypes.NUMBER))this.operators.push(this.prev.value);else if(this.accept(PostScriptTokenTypes.OPERATOR))this.operators.push(this.prev.value);else{if(!this.accept(PostScriptTokenTypes.LBRACE))return;this.parseCondition()}}parseCondition(){var conditionLocation=this.operators.length;if(this.operators.push(null,null),this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.accept(PostScriptTokenTypes.IF))this.operators[conditionLocation]=this.operators.length;else{if(!this.accept(PostScriptTokenTypes.LBRACE))throw new FormatError("PS Function: error parsing conditional.");var jumpLocation=this.operators.length,endOfTrue=(this.operators.push(null,null),this.operators.length);this.parseBlock(),this.expect(PostScriptTokenTypes.RBRACE),this.expect(PostScriptTokenTypes.IFELSE),this.operators[jumpLocation]=this.operators.length,this.operators[jumpLocation+1]="j",this.operators[conditionLocation]=endOfTrue}this.operators[conditionLocation+1]="jz"}}const PostScriptTokenTypes={LBRACE:0,RBRACE:1,NUMBER:2,OPERATOR:3,IF:4,IFELSE:5};class PostScriptToken{static get opCache(){return shadow(this,"opCache",Object.create(null))}constructor(type,value){this.type=type,this.value=value}static getOperator(op){return PostScriptToken.opCache[op]||=new PostScriptToken(PostScriptTokenTypes.OPERATOR,op)}static get LBRACE(){return shadow(this,"LBRACE",new PostScriptToken(PostScriptTokenTypes.LBRACE,"{"))}static get RBRACE(){return shadow(this,"RBRACE",new PostScriptToken(PostScriptTokenTypes.RBRACE,"}"))}static get IF(){return shadow(this,"IF",new PostScriptToken(PostScriptTokenTypes.IF,"IF"))}static get IFELSE(){return shadow(this,"IFELSE",new PostScriptToken(PostScriptTokenTypes.IFELSE,"IFELSE"))}}class PostScriptLexer{constructor(stream){this.stream=stream,this.nextChar(),this.strBuf=[]}nextChar(){return this.currentChar=this.stream.getByte()}getToken(){let comment=!1,ch=this.currentChar;for(;;){if(ch<0)return EOF;if(comment)10!==ch&&13!==ch||(comment=!1);else if(37===ch)comment=!0;else if(!isWhiteSpace(ch))break;ch=this.nextChar()}switch(0|ch){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return new PostScriptToken(PostScriptTokenTypes.NUMBER,this.getNumber());case 123:return this.nextChar(),PostScriptToken.LBRACE;case 125:return this.nextChar(),PostScriptToken.RBRACE}var strBuf=this.strBuf;for(strBuf.length=0,strBuf[0]=String.fromCharCode(ch);0<=(ch=this.nextChar())&&(65<=ch&&ch<=90||97<=ch&&ch<=122);)strBuf.push(String.fromCharCode(ch));var str=strBuf.join("");switch(str.toLowerCase()){case"if":return PostScriptToken.IF;case"ifelse":return PostScriptToken.IFELSE;default:return PostScriptToken.getOperator(str)}}getNumber(){var ch=this.currentChar,strBuf=this.strBuf;for(strBuf.length=0,strBuf[0]=String.fromCharCode(ch);0<=(ch=this.nextChar())&&(48<=ch&&ch<=57||45===ch||46===ch);)strBuf.push(String.fromCharCode(ch));var value=parseFloat(strBuf.join(""));if(isNaN(value))throw new FormatError("Invalid floating point number: "+value);return value}}class BaseLocalCache{constructor(options){this.constructor===BaseLocalCache&&unreachable("Cannot initialize BaseLocalCache."),this._onlyRefs=!0===options?.onlyRefs,this._onlyRefs||(this._nameRefMap=new Map,this._imageMap=new Map),this._imageCache=new RefSetCache}getByName(name){this._onlyRefs&&unreachable("Should not call `getByName` method.");var ref=this._nameRefMap.get(name);return ref?this.getByRef(ref):this._imageMap.get(name)||null}getByRef(ref){return this._imageCache.get(ref)||null}set(name,ref,data){unreachable("Abstract method `set` called.")}}class LocalImageCache extends BaseLocalCache{set(name,ref=null,data){if("string"!=typeof name)throw new Error('LocalImageCache.set - expected "name" argument.');if(ref)return this._imageCache.has(ref)?void 0:(this._nameRefMap.set(name,ref),void this._imageCache.put(ref,data));this._imageMap.has(name)||this._imageMap.set(name,data)}}class LocalColorSpaceCache extends BaseLocalCache{set(name=null,ref=null,data){if("string"!=typeof name&&!ref)throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.');if(ref)return this._imageCache.has(ref)?void 0:(null!==name&&this._nameRefMap.set(name,ref),void this._imageCache.put(ref,data));this._imageMap.has(name)||this._imageMap.set(name,data)}}class LocalFunctionCache extends BaseLocalCache{constructor(options){super({onlyRefs:!0})}set(name=0,ref,data){if(!ref)throw new Error('LocalFunctionCache.set - expected "ref" argument.');this._imageCache.has(ref)||this._imageCache.put(ref,data)}}class LocalGStateCache extends BaseLocalCache{set(name,ref=null,data){if("string"!=typeof name)throw new Error('LocalGStateCache.set - expected "name" argument.');if(ref)return this._imageCache.has(ref)?void 0:(this._nameRefMap.set(name,ref),void this._imageCache.put(ref,data));this._imageMap.has(name)||this._imageMap.set(name,data)}}class LocalTilingPatternCache extends BaseLocalCache{constructor(options){super({onlyRefs:!0})}set(name=0,ref,data){if(!ref)throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');this._imageCache.has(ref)||this._imageCache.put(ref,data)}}class RegionalImageCache extends BaseLocalCache{constructor(options){super({onlyRefs:!0})}set(name=0,ref,data){if(!ref)throw new Error('RegionalImageCache.set - expected "ref" argument.');this._imageCache.has(ref)||this._imageCache.put(ref,data)}}class GlobalImageCache{static NUM_PAGES_THRESHOLD=2;static MIN_IMAGES_TO_CACHE=10;static MAX_BYTE_SIZE=5*MAX_IMAGE_SIZE_TO_CACHE;constructor(){this._refCache=new RefSetCache,this._imageCache=new RefSetCache}get _byteSize(){let byteSize=0;for(const imageData of this._imageCache)byteSize+=imageData.byteSize;return byteSize}get _cacheLimitReached(){return!(this._imageCache.size+x):null}class PDFFunction{static getSampleArray(size,outputSize,bps,stream){let i,ii,length=1;for(i=0,ii=size.length;i>codeSize)*sampleMul,codeBuf&=(1<>1,numInputs=domain.length>>1,evaluator=new PostScriptEvaluator(fn),cache=Object.create(null);let cache_available=8192;const tmpBuf=new Float32Array(numInputs);return function(src,srcOffset,dest,destOffset){let i,value,key="";var input=tmpBuf;for(i=0;ibound))&&(value=bound),output[i]=value}0=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");this.stack.push(value)}pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()}copy(n){if(this.stack.length+n>=PostScriptStack.MAX_STACK_SIZE)throw new Error("PostScript function stack overflow.");var stack=this.stack;for(let i=stack.length-n,j=n-1;0<=j;j--,i++)stack.push(stack[i])}index(n){this.push(this.stack[this.stack.length-n-1])}roll(n,p){var stack=this.stack,l=stack.length-n,r=stack.length-1,p=l+(p-Math.floor(p/n)*n);for(let i=l,j=r;i>b);break;case"ceiling":a=stack.pop(),stack.push(Math.ceil(a));break;case"copy":a=stack.pop(),stack.copy(a);break;case"cos":a=stack.pop(),stack.push(Math.cos(a%360/180*Math.PI));break;case"cvi":a=0|stack.pop(),stack.push(a);break;case"cvr":break;case"div":b=stack.pop(),a=stack.pop(),stack.push(a/b);break;case"dup":stack.copy(1);break;case"eq":b=stack.pop(),a=stack.pop(),stack.push(a===b);break;case"exch":stack.roll(2,1);break;case"exp":b=stack.pop(),a=stack.pop(),stack.push(a**b);break;case"false":stack.push(!1);break;case"floor":a=stack.pop(),stack.push(Math.floor(a));break;case"ge":b=stack.pop(),a=stack.pop(),stack.push(a>=b);break;case"gt":b=stack.pop(),a=stack.pop(),stack.push(a>b);break;case"idiv":b=stack.pop(),a=stack.pop(),stack.push(a/b|0);break;case"index":a=stack.pop(),stack.index(a);break;case"le":b=stack.pop(),a=stack.pop(),stack.push(a<=b);break;case"ln":a=stack.pop(),stack.push(Math.log(a));break;case"log":a=stack.pop(),stack.push(Math.log10(a));break;case"lt":b=stack.pop(),a=stack.pop(),stack.push(a=max?new AstLiteral(max):num1.max<=max?num1:new AstMin(num1,max)}class PostScriptCompiler{compile(code,domain,range){var stack=[],instructions=[],inputSize=domain.length>>1,outputSize=range.length>>1;let lastRegister=0,n,j,num1,num2,ast1,ast2,tmpVar,item;for(let i=0;iexpr.min&&(out.unshift("Math.max(",min,", "),out.push(")")),maxlevel&&isOdd(level)&&(lowestOddLevel=level);for(level=highestLevel;level>=lowestOddLevel;--level){let start=-1;for(i=0,ii=levels.length;i"!==ch||(chars[i]="")}return createBidiText(chars.join(""),isLTR)}const NORMAL={style:"normal",weight:"normal"},BOLD={style:"normal",weight:"bold"},ITALIC={style:"italic",weight:"normal"},BOLDITALIC={style:"italic",weight:"bold"},substitutionMap=new Map([["Times-Roman",{local:["Times New Roman","Times-Roman","Times","Liberation Serif","Nimbus Roman","Nimbus Roman L","Tinos","Thorndale","TeX Gyre Termes","FreeSerif","Linux Libertine O","Libertinus Serif","DejaVu Serif","Bitstream Vera Serif","Ubuntu"],style:NORMAL,ultimate:"serif"}],["Times-Bold",{alias:"Times-Roman",style:BOLD,ultimate:"serif"}],["Times-Italic",{alias:"Times-Roman",style:ITALIC,ultimate:"serif"}],["Times-BoldItalic",{alias:"Times-Roman",style:BOLDITALIC,ultimate:"serif"}],["Helvetica",{local:["Helvetica","Helvetica Neue","Arial","Arial Nova","Liberation Sans","Arimo","Nimbus Sans","Nimbus Sans L","A030","TeX Gyre Heros","FreeSans","DejaVu Sans","Albany","Bitstream Vera Sans","Arial Unicode MS","Microsoft Sans Serif","Apple Symbols","Cantarell"],path:"LiberationSans-Regular.ttf",style:NORMAL,ultimate:"sans-serif"}],["Helvetica-Bold",{alias:"Helvetica",path:"LiberationSans-Bold.ttf",style:BOLD,ultimate:"sans-serif"}],["Helvetica-Oblique",{alias:"Helvetica",path:"LiberationSans-Italic.ttf",style:ITALIC,ultimate:"sans-serif"}],["Helvetica-BoldOblique",{alias:"Helvetica",path:"LiberationSans-BoldItalic.ttf",style:BOLDITALIC,ultimate:"sans-serif"}],["Courier",{local:["Courier","Courier New","Liberation Mono","Nimbus Mono","Nimbus Mono L","Cousine","Cumberland","TeX Gyre Cursor","FreeMono","Linux Libertine Mono O","Libertinus Mono"],style:NORMAL,ultimate:"monospace"}],["Courier-Bold",{alias:"Courier",style:BOLD,ultimate:"monospace"}],["Courier-Oblique",{alias:"Courier",style:ITALIC,ultimate:"monospace"}],["Courier-BoldOblique",{alias:"Courier",style:BOLDITALIC,ultimate:"monospace"}],["ArialBlack",{local:["Arial Black"],style:{style:"normal",weight:"900"},fallback:"Helvetica-Bold"}],["ArialBlack-Bold",{alias:"ArialBlack"}],["ArialBlack-Italic",{alias:"ArialBlack",style:{style:"italic",weight:"900"},fallback:"Helvetica-BoldOblique"}],["ArialBlack-BoldItalic",{alias:"ArialBlack-Italic"}],["ArialNarrow",{local:["Arial Narrow","Liberation Sans Narrow","Helvetica Condensed","Nimbus Sans Narrow","TeX Gyre Heros Cn"],style:NORMAL,fallback:"Helvetica"}],["ArialNarrow-Bold",{alias:"ArialNarrow",style:BOLD,fallback:"Helvetica-Bold"}],["ArialNarrow-Italic",{alias:"ArialNarrow",style:ITALIC,fallback:"Helvetica-Oblique"}],["ArialNarrow-BoldItalic",{alias:"ArialNarrow",style:BOLDITALIC,fallback:"Helvetica-BoldOblique"}],["Calibri",{local:["Calibri","Carlito"],style:NORMAL,fallback:"Helvetica"}],["Calibri-Bold",{alias:"Calibri",style:BOLD,fallback:"Helvetica-Bold"}],["Calibri-Italic",{alias:"Calibri",style:ITALIC,fallback:"Helvetica-Oblique"}],["Calibri-BoldItalic",{alias:"Calibri",style:BOLDITALIC,fallback:"Helvetica-BoldOblique"}],["Wingdings",{local:["Wingdings","URW Dingbats"],style:NORMAL}],["Wingdings-Regular",{alias:"Wingdings"}],["Wingdings-Bold",{alias:"Wingdings"}]]),fontAliases=new Map([["Arial-Black","ArialBlack"]]);function getStyleToAppend(style){switch(style){case BOLD:return"Bold";case ITALIC:return"Italic";case BOLDITALIC:return"Bold Italic";default:if("bold"===style?.weight)return"Bold";if("italic"===style?.style)return"Italic"}return""}function getFamilyName(str){const keywords=new Set(["thin","extralight","ultralight","demilight","semilight","light","book","regular","normal","medium","demibold","semibold","bold","extrabold","ultrabold","black","heavy","extrablack","ultrablack","roman","italic","oblique","ultracondensed","extracondensed","condensed","semicondensed","normal","semiexpanded","expanded","extraexpanded","ultraexpanded","bolditalic"]);return str.split(/[- ,+]+/g).filter(tok=>!keywords.has(tok.toLowerCase())).join(" ")}function generateFont({alias,local,path,fallback,style,ultimate},src,localFontPath,useFallback=!0,usePath=!0,append=""){var result={style:null,ultimate:null};if(local){var extra=append?" "+append:"";for(const name of local)src.push(`local(${name}${extra})`)}return alias&&(local=substitutionMap.get(alias),alias=append||getStyleToAppend(style),Object.assign(result,generateFont(local,src,localFontPath,useFallback&&!fallback,usePath&&!path,alias))),style&&(result.style=style),ultimate&&(result.ultimate=ultimate),useFallback&&fallback&&(local=generateFont(substitutionMap.get(fallback),src,localFontPath,useFallback,usePath&&!path,append)["ultimate"],result.ultimate||=local),usePath&&path&&localFontPath&&src.push(`url(${localFontPath}${path})`),result}function getFontSubstitution(systemFontCache,idFactory,localFontPath,baseFontName,standardFontName,type){if(baseFontName.startsWith("InvalidPDFjsFont_"))return null;type=baseFontName=normalizeFontName(baseFontName="TrueType"!==type&&"Type1"!==type||!/^[A-Z]{6}\+/.test(baseFontName)?baseFontName:baseFontName.slice(7));let substitutionInfo=systemFontCache.get(type);if(!substitutionInfo){let substitution=substitutionMap.get(baseFontName);if(!substitution)for(var[alias,subst]of fontAliases)if(baseFontName.startsWith(alias)){baseFontName=""+subst+baseFontName.substring(alias.length),substitution=substitutionMap.get(baseFontName);break}let mustAddBaseFont=!1;substitution||(substitution=substitutionMap.get(standardFontName),mustAddBaseFont=!0);standardFontName=idFactory.getDocId()+"_s"+idFactory.createFontId();if(substitution){idFactory=[];mustAddBaseFont&&validateFontName(baseFontName)&&idFactory.push(`local(${baseFontName})`);const{style,ultimate}=generateFont(substitution,idFactory,localFontPath);var localFontPath=null===ultimate,fallback=localFontPath?"":","+ultimate;substitutionInfo={css:`"${getFamilyName(baseFontName)}",`+standardFontName+fallback,guessFallback:localFontPath,loadedName:standardFontName,baseFontName:baseFontName,src:idFactory.join(","),style:style}}else{if(!validateFontName(baseFontName))return warn("Cannot substitute the font because of its name: "+baseFontName),systemFontCache.set(type,null),null;fallback=/bold/gi.test(baseFontName),localFontPath=/oblique|italic/gi.test(baseFontName);const style=fallback&&localFontPath&&BOLDITALIC||fallback&&BOLD||localFontPath&&ITALIC||NORMAL;substitutionInfo={css:`"${getFamilyName(baseFontName)}",`+standardFontName,guessFallback:!0,loadedName:standardFontName,baseFontName:baseFontName,src:`local(${baseFontName})`,style:style}}systemFontCache.set(type,substitutionInfo)}return substitutionInfo}const MIN_IMAGE_DIM=2048,MAX_IMAGE_DIM=65537,MAX_ERROR=128;class ImageResizer{constructor(imgData,isMask){this._imgData=imgData,this._isMask=isMask}static needsToBeResized(width,height){var MAX_DIM,area;return!(width<=this._goodSquareLength&&height<=this._goodSquareLength)&&(MAX_DIM=this["MAX_DIM"],MAX_DIMthis.MAX_AREA:!(area>2)}static _areGoodDims(width,height){try{var canvas=new OffscreenCanvas(width,height),ctx=canvas.getContext("2d"),opacity=(ctx.fillRect(0,0,1,1),ctx.getImageData(0,0,1,1).data[3]);return canvas.width=canvas.height=1,0!==opacity}catch{return!1}}static _guessMax(start,end,tolerance,defaultHeight){for(;start+tolerance+1>3,rowSize=3+rowLen&-4;if(rowLen!=rowSize){var newData=new Uint8Array(rowSize*height);let k=0;for(let i=0,ii=height*rowLen;i>>8,data[length++]=255&code)}}else{if(!ArrayBuffer.isView(input))throw new Error("Invalid data format, must be a string or TypedArray.");data=input.slice(),length=data.byteLength}var blockCounts=length>>2,tailLength=length-4*blockCounts,dataUint32=new Uint32Array(data.buffer,0,blockCounts);let k1=0,k2,h1=this.h1,h2=this.h2;var C1=3432918353,C2=461845907,C1_LOW=C1&MASK_LOW,C2_LOW=C2&MASK_LOW;for(let i=0;i>>17)*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW,h1=5*(h1=(h1^=k1)<<13|h1>>>19)+3864292196):(k2=(k2=(k2=(k2=dataUint32[i])*C1&MASK_HIGH|k2*C1_LOW&MASK_LOW)<<15|k2>>>17)*C2&MASK_HIGH|k2*C2_LOW&MASK_LOW,h2=5*(h2=(h2^=k2)<<13|h2>>>19)+3864292196);switch(k1=0,tailLength){case 3:k1^=data[4*blockCounts+2]<<16;case 2:k1^=data[4*blockCounts+1]<<8;case 1:k1=(k1=(k1=(k1^=data[4*blockCounts])*C1&MASK_HIGH|k1*C1_LOW&MASK_LOW)<<15|k1>>>17)*C2&MASK_HIGH|k1*C2_LOW&MASK_LOW,1&blockCounts?h1^=k1:h2^=k1}this.h1=h1,this.h2=h2}hexdigest(){var h1=this.h1,h2=this.h2,h1=3981806797*(h1^=h2>>>1)&MASK_HIGH|36045*h1&MASK_LOW;return h1=444984403*(h1^=(h2=4283543511*h2&MASK_HIGH|(2950163797*(h2<<16|h1>>>16)&MASK_HIGH)>>>16)>>>1)&MASK_HIGH|60499*h1&MASK_LOW,((h1^=(h2=3301882366*h2&MASK_HIGH|(3120437893*(h2<<16|h1>>>16)&MASK_HIGH)>>>16)>>>1)>>>0).toString(16).padStart(8,"0")+(h2>>>0).toString(16).padStart(8,"0")}}function addState(parentState,pattern,checkFn,iterateFn,processFn){let state=parentState;for(let i=0,ii=pattern.length-1;i=ii)break}!(state=(state||InitialState)[fnArray[i]])||Array.isArray(state)?i++:(context.iCurr=i,i++,state=(state.checkFn&&!(0,state.checkFn)(context)||(match=state),null))}this.state=state,this.match=match,this.lastProcessed=i}else this.lastProcessed=ii}flush(){for(;this.match;){var length=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,length),this.match=null,this.state=null,this._optimize()}}reset(){this.state=null,this.match=null,this.lastProcessed=0}}class OperatorList{static CHUNK_SIZE=1e3;static CHUNK_SIZE_ABOUT=this.CHUNK_SIZE-5;constructor(intent=0,streamSink){this._streamSink=streamSink,this.fnArray=[],this.argsArray=[],this.optimizer=new(!streamSink||intent&RenderingIntentFlag.OPLIST?NullOptimizer:QueueOptimizer)(this),this.dependencies=new Set,this._totalLength=0,this.weight=0,this._resolved=streamSink?null:Promise.resolve()}set isOffscreenCanvasSupported(value){this.optimizer.isOffscreenCanvasSupported=value}get length(){return this.argsArray.length}get ready(){return this._resolved||this._streamSink.ready}get totalLength(){return this._totalLength+this.length}addOp(fn,args){this.optimizer.push(fn,args),this.weight++,this._streamSink&&(this.weight>=OperatorList.CHUNK_SIZE||this.weight>=OperatorList.CHUNK_SIZE_ABOUT&&(fn===OPS.restore||fn===OPS.endText))&&this.flush()}addImageOps(fn,args,optionalContent){void 0!==optionalContent&&this.addOp(OPS.beginMarkedContentProps,["OC",optionalContent]),this.addOp(fn,args),void 0!==optionalContent&&this.addOp(OPS.endMarkedContent,[])}addDependency(dependency){this.dependencies.has(dependency)||(this.dependencies.add(dependency),this.addOp(OPS.dependency,[dependency]))}addDependencies(dependencies){for(const dependency of dependencies)this.addDependency(dependency)}addOpList(opList){if(opList instanceof OperatorList){for(const dependency of opList.dependencies)this.dependencies.add(dependency);for(let i=0,ii=opList.length;i>3)*height,actualLength=imgArray.byteLength;let data,i;if(!imageIsFromDecodeStream||inverseDecode&&!(computedLength===actualLength)?inverseDecode?((data=new Uint8Array(computedLength)).set(imgArray),data.fill(255,actualLength)):data=new Uint8Array(imgArray):data=imgArray,inverseDecode)for(i=0;i>7&1,output[i+1]=buf>>6&1,output[i+2]=buf>>5&1,output[i+3]=buf>>4&1,output[i+4]=buf>>3&1,output[i+5]=buf>>2&1,output[i+6]=buf>>1&1,output[i+7]=1&buf,i+=8;if(i>=1}}else{let bits=0;for(buf=0,i=0,ii=length;i>remainingBits;value<0?value=0:value>max&&(value=max),output[i]=value,buf&=(1<mask[1+maskOffset]){opacity=255;break}}alphaBuf[i]=opacity}}if(alphaBuf)for(i=0,j=3,ii=width*actualHeight;i>3,mustBeResized=isOffscreenCanvasSupported&&ImageResizer.needsToBeResized(drawWidth,drawHeight);if(!forceRGBA){let kind;if("DeviceGray"===this.colorSpace.name&&1===bpc?kind=ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==bpc||this.needsDecode||(kind=ImageKind.RGB_24BPP),kind&&!this.smask&&!this.mask&&drawWidth===originalWidth&&drawHeight===originalHeight){const data=this.getImageBytes(originalHeight*numComps,{});if(isOffscreenCanvasSupported)return mustBeResized?ImageResizer.createImage({data:data,kind:kind,width:drawWidth,height:drawHeight,interpolate:this.interpolate},this.needsDecode):this.createBitmap(kind,originalWidth,originalHeight,data);if(imgData.kind=kind,imgData.data=data,this.needsDecode){assert(kind===ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");var buffer=imgData.data;for(let i=0,ii=buffer.length;i>3),{internal:!0}),comps=this.getComponents(numComps);let i,length;if(1===bpc)if(length=width*height,this.needsDecode)for(i=0;i>3)*h),decode=dict.getArray("D","Decode");if(this.parsingType3Font)return(imgData=PDFImage.createRawMask({imgArray:imgArray,width:w,height:h,imageIsFromDecodeStream:image instanceof DecodeStream,inverseDecode:0((imgData=await imageObj.createImageData(!1,this.options.isOffscreenCanvasSupported)).dataLen=imgData.bitmap?imgData.width*imgData.height*4:imgData.data.length,imgData.ref=imageRef,cacheGlobally&&this.globalImageCache.addByteSize(imageRef,imgData.dataLen),this._sendImgData(objId,imgData,cacheGlobally))).catch(reason=>(warn(`Unable to decode image "${objId}": "${reason}".`),this._sendImgData(objId,null,cacheGlobally))),cacheKey){const cacheData={fn:OPS.paintImageXObject,args:args,optionalContent:optionalContent};localImageCache.set(cacheKey,imageRef,cacheData),imageRef&&(this._regionalImageCache.set(null,imageRef,cacheData),cacheGlobally)&&this.globalImageCache.setData(imageRef,{objId:objId,fn:OPS.paintImageXObject,args:args,optionalContent:optionalContent,byteSize:0})}}}else warn("Image dimensions are missing, or not numbers.")}handleSMask(smask,resources,operatorList,task,stateManager,localColorSpaceCache){var smaskContent=smask.get("G"),smaskOptions={subtype:smask.get("S").name,backdrop:smask.get("BC")},smask=smask.get("TR");if(isPDFFunction(smask)){var transferFn=this._pdfFunctionFactory.create(smask),transferMap=new Uint8Array(256),tmp=new Float32Array(1);for(let i=0;i<256;i++)tmp[0]=i/255,transferFn(tmp,0,tmp,0),transferMap[i]=255*tmp[0]|0;smaskOptions.transferMap=transferMap}return this.buildFormXObject(resources,smaskContent,smaskOptions,operatorList,task,stateManager.state.clone(),localColorSpaceCache)}handleTransferFunction(tr){let transferArray;if(Array.isArray(tr))transferArray=tr;else{if(!isPDFFunction(tr))return null;transferArray=[tr]}var transferMaps=[];let numFns=0,numEffectfulFns=0;for(const entry of transferArray){var transferObj=this.xref.fetchIfRef(entry);if(numFns++,isName(transferObj,"Identity"))transferMaps.push(null);else{if(!isPDFFunction(transferObj))return null;var transferFn=this._pdfFunctionFactory.create(transferObj),transferMap=new Uint8Array(256),tmp=new Float32Array(1);for(let j=0;j<256;j++)tmp[0]=j/255,transferFn(tmp,0,tmp,0),transferMap[j]=255*tmp[0]|0;transferMaps.push(transferMap),numEffectfulFns++}}return 1!==numFns&&4!==numFns||0===numEffectfulFns?null:transferMaps}handleTilingType(fn,color,resources,pattern,patternDict,operatorList,task,localTilingPatternCache){const tilingOpList=new OperatorList;resources=Dict.merge({xref:this.xref,dictArray:[patternDict.get("Resources"),resources]});return this.getOperatorList({stream:pattern,task:task,resources:resources,operatorList:tilingOpList}).then(function(){var operatorListIR=tilingOpList.getIR(),tilingPatternIR=getTilingPatternIR(operatorListIR,patternDict,color);operatorList.addDependencies(tilingOpList.dependencies),operatorList.addOp(fn,tilingPatternIR),patternDict.objId&&localTilingPatternCache.set(null,patternDict.objId,{operatorListIR:operatorListIR,dict:patternDict})}).catch(reason=>{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn(`handleTilingType - ignoring pattern: "${reason}".`)}})}async handleSetFont(resources,fontArgs,fontRef,operatorList,task,state,fallbackFontDict=null,cssFontInfo=null){fontArgs=fontArgs?.[0]instanceof Name?fontArgs[0].name:null;let translated=await this.loadFont(fontArgs,fontRef,resources,fallbackFontDict,cssFontInfo);if(translated.font.isType3Font)try{await translated.loadType3Data(this,resources,task),operatorList.addDependencies(translated.type3Dependencies)}catch(reason){translated=new TranslatedFont({loadedName:"g_font_error",font:new ErrorFont("Type3 font load error: "+reason),dict:translated.font,evaluatorOptions:this.options})}return state.font=translated.font,translated.send(this.handler),translated.loadedName}handleText(chars,state){var font=state.font,chars=font.charsToGlyphs(chars);return font.data&&(!!(state.textRenderingMode&TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===state.fillColorSpace.name||font.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(font,chars,this.handler,this.options),chars}ensureStateFont(state){if(!state.font){state=new FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw state;warn(`ensureStateFont: "${state}".`)}}async setGState({resources,gState,operatorList,cacheKey,task,stateManager,localGStateCache,localColorSpaceCache}){var gStateRef=gState.objId;let isSimpleGState=!0;const gStateObj=[];let promise=Promise.resolve();for(const key of gState.getKeys()){const value=gState.get(key);switch(key){case"Type":break;case"LW":case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":gStateObj.push([key,value]);break;case"Font":isSimpleGState=!1,promise=promise.then(()=>this.handleSetFont(resources,null,value[0],operatorList,task,stateManager.state).then(function(loadedName){operatorList.addDependency(loadedName),gStateObj.push([key,[loadedName,value[1]]])}));break;case"BM":gStateObj.push([key,normalizeBlendMode(value)]);break;case"SMask":isName(value,"None")?gStateObj.push([key,!1]):value instanceof Dict?(isSimpleGState=!1,promise=promise.then(()=>this.handleSMask(value,resources,operatorList,task,stateManager,localColorSpaceCache)),gStateObj.push([key,!0])):warn("Unsupported SMask type");break;case"TR":var transferMaps=this.handleTransferFunction(value);gStateObj.push([key,transferMaps]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":info("graphic state operator "+key);break;default:info("Unknown graphic state operator "+key)}}await promise,0new TranslatedFont({loadedName:"g_font_error",font:new ErrorFont(`Font "${fontName}" is not available.`),dict:font,evaluatorOptions:this.options});let fontRef;if(font?font instanceof Ref&&(fontRef=font):(resources=resources.get("Font"))&&(fontRef=resources.getRaw(fontName)),fontRef){if(this.parsingType3Font&&this.type3FontRefs.has(fontRef))return errorFont();if(this.fontCache.has(fontRef))return this.fontCache.get(fontRef);font=this.xref.fetchIfRef(fontRef)}if(!(font instanceof Dict)){if(!this.options.ignoreErrors&&!this.parsingType3Font)return warn(`Font "${fontName}" is not available.`),errorFont();warn(`Font "${fontName}" is not available -- attempting to fallback to a default font.`),font=fallbackFontDict||PartialEvaluator.fallbackFontDict}if(font.cacheKey&&this.fontCache.has(font.cacheKey))return this.fontCache.get(font.cacheKey);const{promise,resolve}=Promise.withResolvers();let preEvaluatedFont;try{(preEvaluatedFont=this.preEvaluateFont(font)).cssFontInfo=cssFontInfo}catch(reason){return warn(`loadFont - preEvaluateFont failed: "${reason}".`),errorFont()}var{descriptor:resources,hash:fallbackFontDict}=preEvaluatedFont,cssFontInfo=fontRef instanceof Ref;let fontID;if(fallbackFontDict&&resources instanceof Dict){errorFont=resources.fontAliases||=Object.create(null);if(errorFont[fallbackFontDict]){resources=errorFont[fallbackFontDict].aliasRef;if(cssFontInfo&&resources&&this.fontCache.has(resources))return this.fontCache.putAlias(fontRef,resources),this.fontCache.get(fontRef)}else errorFont[fallbackFontDict]={fontID:this.idFactory.createFontId()};cssFontInfo&&(errorFont[fallbackFontDict].aliasRef=fontRef),fontID=errorFont[fallbackFontDict].fontID}else fontID=this.idFactory.createFontId();return assert(fontID?.startsWith("f"),'The "fontID" must be (correctly) defined.'),cssFontInfo?this.fontCache.put(fontRef,promise):(font.cacheKey="cacheKey_"+fontID,this.fontCache.put(font.cacheKey,promise)),font.loadedName=this.idFactory.getDocId()+"_"+fontID,this.translateFont(preEvaluatedFont).then(translatedFont=>{resolve(new TranslatedFont({loadedName:font.loadedName,font:translatedFont,dict:font,evaluatorOptions:this.options}))}).catch(reason=>{warn(`loadFont - translateFont failed: "${reason}".`),resolve(new TranslatedFont({loadedName:font.loadedName,font:new ErrorFont(reason instanceof Error?reason.message:reason),dict:font,evaluatorOptions:this.options}))}),promise}buildPath(operatorList,fn,args,parsingText=!1){var lastIndex=operatorList.length-1;if(args=args||[],lastIndex<0||operatorList.fnArray[lastIndex]!==OPS.constructPath){parsingText&&(warn(`Encountered path operator "${fn}" inside of a text object.`),operatorList.addOp(OPS.save,null));let minMax;switch(fn){case OPS.rectangle:var x=args[0]+args[2],y=args[1]+args[3];minMax=[Math.min(args[0],x),Math.min(args[1],y),Math.max(args[0],x),Math.max(args[1],y)];break;case OPS.moveTo:case OPS.lineTo:minMax=[args[0],args[1],args[0],args[1]];break;default:minMax=[1/0,1/0,-1/0,-1/0]}operatorList.addOp(OPS.constructPath,[[fn],args,minMax]),parsingText&&operatorList.addOp(OPS.restore,null)}else{var parsingText=operatorList.argsArray[lastIndex],minMax=(parsingText[0].push(fn),parsingText[1].push(...args),parsingText[2]);switch(fn){case OPS.rectangle:const x=args[0]+args[2],y=args[1]+args[3];minMax[0]=Math.min(minMax[0],args[0],x),minMax[1]=Math.min(minMax[1],args[1],y),minMax[2]=Math.max(minMax[2],args[0],x),minMax[3]=Math.max(minMax[3],args[1],y);break;case OPS.moveTo:case OPS.lineTo:minMax[0]=Math.min(minMax[0],args[0]),minMax[1]=Math.min(minMax[1],args[1]),minMax[2]=Math.max(minMax[2],args[0]),minMax[3]=Math.max(minMax[3],args[1])}}}parseColorSpace({cs,resources,localColorSpaceCache}){return ColorSpace.parseAsync({cs:cs,xref:this.xref,resources:resources,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:localColorSpaceCache}).catch(reason=>{if(reason instanceof AbortException)return null;if(this.options.ignoreErrors)return warn(`parseColorSpace - ignoring ColorSpace: "${reason}".`),null;throw reason})}parseShading({shading,resources,localColorSpaceCache,localShadingPatternCache}){let id=localShadingPatternCache.get(shading);if(!id){let patternIR;try{var shadingFill=Pattern.parseShading(shading,this.xref,resources,this._pdfFunctionFactory,localColorSpaceCache);patternIR=shadingFill.getIR()}catch(reason){if(reason instanceof AbortException)return null;if(this.options.ignoreErrors)return warn(`parseShading - ignoring shading: "${reason}".`),localShadingPatternCache.set(shading,null),null;throw reason}id="pattern_"+this.idFactory.createObjId(),this.parsingType3Font&&(id=this.idFactory.getDocId()+"_type3_"+id),localShadingPatternCache.set(shading,id),this.parsingType3Font?this.handler.send("commonobj",[id,"Pattern",patternIR]):this.handler.send("obj",[id,this.pageIndex,"Pattern",patternIR])}return id}handleColorN(operatorList,fn,args,cs,patterns,resources,task,localColorSpaceCache,localTilingPatternCache,localShadingPatternCache){var patternName=args.pop();if(patternName instanceof Name){var patterns=patterns.getRaw(patternName.name),localTilingPattern=patterns instanceof Ref&&localTilingPatternCache.getByRef(patterns);if(localTilingPattern)try{var color=cs.base?cs.base.getRgb(args,0):null,tilingPatternIR=getTilingPatternIR(localTilingPattern.operatorListIR,localTilingPattern.dict,color);return void operatorList.addOp(fn,tilingPatternIR)}catch{}localTilingPattern=this.xref.fetchIfRef(patterns);if(localTilingPattern){tilingPatternIR=localTilingPattern instanceof BaseStream?localTilingPattern.dict:localTilingPattern,color=tilingPatternIR.get("PatternType");if(color===PatternType.TILING){const color=cs.base?cs.base.getRgb(args,0):null;return this.handleTilingType(fn,color,resources,localTilingPattern,tilingPatternIR,operatorList,task,localTilingPatternCache)}if(color===PatternType.SHADING)return patterns=tilingPatternIR.get("Shading"),void((cs=this.parseShading({shading:patterns,resources:resources,localColorSpaceCache:localColorSpaceCache,localShadingPatternCache:localShadingPatternCache}))&&(args=tilingPatternIR.getArray("Matrix"),operatorList.addOp(fn,["Shading",cs,args])));throw new FormatError("Unknown PatternType: "+color)}}throw new FormatError("Unknown PatternName: "+patternName)}_parseVisibilityExpression(array,nestingCounter,currentResult){if(10<++nestingCounter)warn("Visibility expression is too deeply nested");else{var length=array.length,operator=this.xref.fetchIfRef(array[0]);if(length<2||!(operator instanceof Name))warn("Invalid visibility expression");else{switch(operator.name){case"And":case"Or":case"Not":currentResult.push(operator.name);break;default:return void warn(`Invalid operator ${operator.name} in visibility expression`)}for(let i=1;i{operatorList.addOp(OPS.beginMarkedContentProps,["OC",data])}).catch(reason=>{if(!(reason instanceof AbortException)){if(!self.options.ignoreErrors)throw reason;warn(`getOperatorList - ignoring beginMarkedContentProps: "${reason}".`),operatorList.addOp(OPS.beginMarkedContentProps,["OC",null])}}));args=[args[0].name,args[1]instanceof Dict?args[1].get("MCID"):null];break;case OPS.beginMarkedContent:case OPS.endMarkedContent:default:if(null!==args){for(i=0,ii=args.length;i{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn(`getOperatorList - ignoring errors during "${task.name}" `+`task: "${reason}".`),closePendingRestoreOPS()}})}getTextContent({stream,task,resources,stateManager=null,includeMarkedContent=!1,sink,seenStyles=new Set,viewBox,markedContentData=null,disableNormalization=!1,keepWhiteSpace=!1}){resources||=Dict.empty,stateManager||=new StateManager(new TextState),includeMarkedContent&&(markedContentData||={level:0});const textContent={items:[],styles:Object.create(null)},textContentItem={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,prevTransform:null,textAdvanceScale:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,negativeSpaceMax:-1/0,notASpace:-1/0,transform:null,fontName:null,hasEOL:!1},twoLastChars=[" "," "];let twoLastCharsPos=0;function saveLastChar(char){var nextPos=(twoLastCharsPos+1)%2,ret=" "!==twoLastChars[twoLastCharsPos]&&" "===twoLastChars[nextPos];return twoLastChars[twoLastCharsPos]=char,twoLastCharsPos=nextPos,!keepWhiteSpace&&ret}function shouldAddWhitepsace(){return!keepWhiteSpace&&" "!==twoLastChars[twoLastCharsPos]&&" "===twoLastChars[(twoLastCharsPos+1)%2]}function resetLastChars(){twoLastChars[0]=twoLastChars[1]=" ",twoLastCharsPos=0}const TRACKING_SPACE_FACTOR=.102,NOT_A_SPACE_FACTOR=.03,NEGATIVE_SPACE_FACTOR=-.2,SPACE_IN_FLOW_MIN_FACTOR=.102,SPACE_IN_FLOW_MAX_FACTOR=.6,VERTICAL_SHIFT_RATIO=.25,self=this,xref=this.xref,showSpacedTextBuffer=[];let xobjs=null;const emptyXObjectCache=new LocalImageCache,emptyGStateCache=new LocalGStateCache,preprocessor=new EvaluatorPreprocessor(stream,xref,stateManager);let textState;function pushWhitespace({width=0,height=0,transform=textContentItem.prevTransform,fontName=textContentItem.fontName}){textContent.items.push({str:" ",dir:"ltr",width:width,height:height,transform:transform,fontName:fontName,hasEOL:!1})}function getCurrentTextTransform(){var font=textState.font,tsm=[textState.fontSize*textState.textHScale,0,0,textState.fontSize,0,textState.textRise];return font.isType3Font&&(textState.fontSize<=1||font.isCharBBox)&&!isArrayEqual(textState.fontMatrix,FONT_IDENTITY_MATRIX)&&0<(font=font.bbox[3]-font.bbox[1])&&(tsm[3]*=font*textState.fontMatrix[3]),Util.transform(textState.ctm,Util.transform(textState.textMatrix,tsm))}async function handleSetFont(fontName,fontRef){fontName=await self.loadFont(fontName,fontRef,resources);if(fontName.font.isType3Font)try{await fontName.loadType3Data(self,resources,task)}catch{}textState.loadedName=fontName.loadedName,textState.font=fontName.font,textState.fontMatrix=fontName.font.fontMatrix||FONT_IDENTITY_MATRIX}function applyInverseRotation(x,y,matrix){var scale=Math.hypot(matrix[0],matrix[1]);return[(matrix[0]*x+matrix[1]*y)/scale,(matrix[2]*x+matrix[3]*y)/scale]}function compareWithLastPosition(glyphWidth){var currentTransform=getCurrentTextTransform();let posX=currentTransform[4],posY=currentTransform[5];if(textState.font?.vertical){if(posXviewBox[2]||posY+glyphWidthviewBox[3])return}else if(posX+glyphWidthviewBox[2]||posYviewBox[3])return;if(textState.font&&textContentItem.prevTransform){let lastPosX=textContentItem.prevTransform[4],lastPosY=textContentItem.prevTransform[5];if(lastPosX!==posX||lastPosY!==posY){let rotate=-1;switch(currentTransform[0]&&0===currentTransform[1]&&0===currentTransform[2]?rotate=0.5*textContentItem.width?appendEOL:(resetLastChars(),flushTextContentItem))():Math.abs(advanceX)>textContentItem.width?appendEOL():(advanceY<=textOrientation*textContentItem.notASpace&&resetLastChars(),advanceY<=textOrientation*textContentItem.trackingSpaceMin?shouldAddWhitepsace()?(resetLastChars(),flushTextContentItem(),pushWhitespace({height:Math.abs(advanceY)})):textContentItem.height+=advanceY:addFakeSpaces(advanceY,textContentItem.prevTransform,textOrientation)||(0===textContentItem.str.length?(resetLastChars(),pushWhitespace({height:Math.abs(advanceY)})):textContentItem.height+=advanceY),Math.abs(advanceX)>textContentItem.width*VERTICAL_SHIFT_RATIO&&flushTextContentItem())}else{const advanceX=(posX-lastPosX)/textContentItem.textAdvanceScale,advanceY=posY-lastPosY,textOrientation=Math.sign(textContentItem.width);advanceX.5*textContentItem.height?appendEOL:(resetLastChars(),flushTextContentItem))():Math.abs(advanceY)>textContentItem.height?appendEOL():(advanceX<=textOrientation*textContentItem.notASpace&&resetLastChars(),advanceX<=textOrientation*textContentItem.trackingSpaceMin?shouldAddWhitepsace()?(resetLastChars(),flushTextContentItem(),pushWhitespace({width:Math.abs(advanceX)})):textContentItem.width+=advanceX:addFakeSpaces(advanceX,textContentItem.prevTransform,textOrientation)||(0===textContentItem.str.length?(resetLastChars(),pushWhitespace({width:Math.abs(advanceX)})):textContentItem.width+=advanceX),Math.abs(advanceY)>textContentItem.height*VERTICAL_SHIFT_RATIO&&flushTextContentItem())}}}return 1}function buildTextContentItem({chars,extraSpacing}){var font=textState.font;if(chars){var glyphs=font.charsToGlyphs(chars),scale=textState.fontMatrix[0]*textState.fontSize;for(let i=0,ii=glyphs.length;i=sink.desiredSize){stop=!0;break}}stop?next(deferred):(flushTextContentItem(),enqueueChunk(),resolve())}).catch(reason=>{if(!(reason instanceof AbortException)){if(!this.options.ignoreErrors)throw reason;warn(`getTextContent - ignoring errors during "${task.name}" `+`task: "${reason}".`),flushTextContentItem(),enqueueChunk()}})}async extractDataStructures(dict,properties){var xref=this.xref;let cidToGidBytes;var toUnicodePromise=this.readToUnicode(properties.toUnicode);if(properties.composite){var cidSystemInfo=dict.get("CIDSystemInfo");cidSystemInfo instanceof Dict&&(properties.cidSystemInfo={registry:stringToPDFString(cidSystemInfo.get("Registry")),ordering:stringToPDFString(cidSystemInfo.get("Ordering")),supplement:cidSystemInfo.get("Supplement")});try{var cidToGidMap=dict.get("CIDToGIDMap");cidToGidMap instanceof BaseStream&&(cidToGidBytes=cidToGidMap.getBytes())}catch(ex){if(!this.options.ignoreErrors)throw ex;warn(`extractDataStructures - ignoring CIDToGIDMap data: "${ex}".`)}}var differences=[];let baseEncodingName=null,encoding;if(dict.has("Encoding")){if((encoding=dict.get("Encoding"))instanceof Dict){if(baseEncodingName=(baseEncodingName=encoding.get("BaseEncoding"))instanceof Name?baseEncodingName.name:null,encoding.has("Differences")){let index=0;for(const entry of encoding.get("Differences")){var data=xref.fetchIfRef(entry);if("number"==typeof data)index=data;else{if(!(data instanceof Name))throw new FormatError("Invalid entry in 'Differences' array: "+data);differences[index++]=data.name}}}}else if(encoding instanceof Name)baseEncodingName=encoding.name;else{cidSystemInfo="Encoding is not a Name nor a Dict";if(!this.options.ignoreErrors)throw new FormatError(cidSystemInfo);warn(cidSystemInfo)}"MacRomanEncoding"!==baseEncodingName&&"MacExpertEncoding"!==baseEncodingName&&"WinAnsiEncoding"!==baseEncodingName&&(baseEncodingName=null)}var isSymbolicFont,cidToGidMap=!properties.file||properties.isInternalFont,cidSystemInfo=getSymbolsFonts()[properties.name],isNonsymbolicFont=((baseEncodingName=baseEncodingName&&cidToGidMap&&cidSystemInfo?null:baseEncodingName)?properties.defaultEncoding=getEncoding(baseEncodingName):(isSymbolicFont=!!(properties.flags&FontFlags.Symbolic),isNonsymbolicFont=!!(properties.flags&FontFlags.Nonsymbolic),encoding=StandardEncoding,"TrueType"!==properties.type||isNonsymbolicFont||(encoding=WinAnsiEncoding),(isSymbolicFont||cidSystemInfo)&&(encoding=MacRomanEncoding,cidToGidMap)&&(/Symbol/i.test(properties.name)?encoding=SymbolSetEncoding:/Dingbats/i.test(properties.name)?encoding=ZapfDingbatsEncoding:/Wingdings/i.test(properties.name)&&(encoding=WinAnsiEncoding)),properties.defaultEncoding=encoding),properties.differences=differences,properties.baseEncodingName=baseEncodingName,properties.hasEncoding=!!baseEncodingName||0>1;0==glyphID&&!toUnicode.has(code)||(result[code]=glyphID)}return result}extractWidths(dict,descriptor,properties){var xref=this.xref;let glyphsWidths=[],defaultWidth=0;var glyphsVMetrics=[];let defaultVMetrics;if(properties.composite){var dw=dict.get("DW"),widths=(defaultWidth=Number.isInteger(dw)?dw:1e3,dict.get("W"));if(Array.isArray(widths))for(let i=0,ii=widths.length;i{var glyphStream=charProcs.get(key);const operatorList=new OperatorList;return type3Evaluator.getOperatorList({stream:glyphStream,task:task,resources:fontResources,operatorList:operatorList}).then(()=>{operatorList.fnArray[0]===OPS.setCharWidthAndBounds&&this._removeType3ColorOperators(operatorList,fontBBoxSize),charProcOperatorList[key]=operatorList.getIR();for(const dependency of operatorList.dependencies)type3Dependencies.add(dependency)}).catch(function(reason){warn(`Type3 font resource "${key}" is not available.`);var dummyOperatorList=new OperatorList;charProcOperatorList[key]=dummyOperatorList.getIR()})});this.type3Loaded=loadCharProcsPromise.then(()=>{translatedFont.charProcOperatorList=charProcOperatorList,this._bbox&&(translatedFont.isCharBBox=!0,translatedFont.bbox=this._bbox)})}return this.type3Loaded}_removeType3ColorOperators(operatorList,fontBBoxSize=NaN){var charBBox=Util.normalizeRect(operatorList.argsArray[0].slice(2)),width=charBBox[2]-charBBox[0],height=charBBox[3]-charBBox[1],charBBoxSize=Math.hypot(width,height);0==width||0==height?(operatorList.fnArray.splice(0,1),operatorList.argsArray.splice(0,1)):(0===fontBBoxSize||10<=Math.round(charBBoxSize/fontBBoxSize))&&(this._bbox||(this._bbox=[1/0,1/0,-1/0,-1/0]),this._bbox[0]=Math.min(this._bbox[0],charBBox[0]),this._bbox[1]=Math.min(this._bbox[1],charBBox[1]),this._bbox[2]=Math.max(this._bbox[2],charBBox[2]),this._bbox[3]=Math.max(this._bbox[3],charBBox[3]));let i=0,ii=operatorList.length;for(;i=OPS.moveTo&&fn<=OPS.endPath,opSpec.variableArgs)argsLength>numArgs&&info(`Command ${cmd}: expected [0, ${numArgs}] args, `+`but received ${argsLength} args.`);else{if(argsLength!==numArgs){for(var nonProcessedArgs=this.nonProcessedArgs;argsLength>numArgs;)nonProcessedArgs.push(args.shift()),argsLength--;for(;argsLengthEvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new FormatError("Invalid "+opSpec);warn("Skipping "+opSpec),null!==args&&(args.length=0);continue}}return this.preprocessCommand(fn,args),operation.fn=fn,operation.args=args,!0}if(obj===EOF)return!1;if(null!==obj&&((args=null===args?[]:args).push(obj),33numberToString(c/255)).join(" ")+" "+(isFill?"rg":"RG")}function createDefaultAppearance({fontSize,fontName,fontColor}){return`/${escapePDFName(fontName)} ${fontSize} Tf `+getPdfColor(fontColor,!0)}class FakeUnicodeFont{constructor(xref,fontFamily){this.xref=xref,this.widths=null,this.firstChar=1/0,this.lastChar=-1/0,this.fontFamily=fontFamily;xref=new OffscreenCanvas(1,1);this.ctxMeasure=xref.getContext("2d"),FakeUnicodeFont._fontNameId||(FakeUnicodeFont._fontNameId=1),this.fontName=Name.get(`InvalidPDFjsFont_${fontFamily}_`+FakeUnicodeFont._fontNameId++)}get fontDescriptorRef(){var fontDescriptor;return FakeUnicodeFont._fontDescriptorRef||((fontDescriptor=new Dict(this.xref)).set("Type",Name.get("FontDescriptor")),fontDescriptor.set("FontName",this.fontName),fontDescriptor.set("FontFamily","MyriadPro Regular"),fontDescriptor.set("FontBBox",[0,0,0,0]),fontDescriptor.set("FontStretch",Name.get("Normal")),fontDescriptor.set("FontWeight",400),fontDescriptor.set("ItalicAngle",0),FakeUnicodeFont._fontDescriptorRef=this.xref.getNewPersistentRef(fontDescriptor)),FakeUnicodeFont._fontDescriptorRef}get descendantFontRef(){var char,width,descendantFont=new Dict(this.xref),widths=(descendantFont.set("BaseFont",this.fontName),descendantFont.set("Type",Name.get("Font")),descendantFont.set("Subtype",Name.get("CIDFontType0")),descendantFont.set("CIDToGIDMap",Name.get("Identity")),descendantFont.set("FirstChar",this.firstChar),descendantFont.set("LastChar",this.lastChar),descendantFont.set("FontDescriptor",this.fontDescriptorRef),descendantFont.set("DW",1e3),[]);let currentChar=null,currentWidths=null;for([char,width]of[...this.widths.entries()].sort())currentChar?char===currentChar+currentWidths.length?currentWidths.push(width):(widths.push(currentChar,currentWidths),currentChar=char,currentWidths=[width]):(currentChar=char,currentWidths=[width]);currentChar&&widths.push(currentChar,currentWidths),descendantFont.set("W",widths);var cidSystemInfo=new Dict(this.xref);return cidSystemInfo.set("Ordering","Identity"),cidSystemInfo.set("Registry","Adobe"),cidSystemInfo.set("Supplement",0),descendantFont.set("CIDSystemInfo",cidSystemInfo),this.xref.getNewPersistentRef(descendantFont)}get baseFontRef(){var baseFont=new Dict(this.xref);return baseFont.set("BaseFont",this.fontName),baseFont.set("Type",Name.get("Font")),baseFont.set("Subtype",Name.get("Type0")),baseFont.set("Encoding",Name.get("Identity-H")),baseFont.set("DescendantFonts",[this.descendantFontRef]),baseFont.set("ToUnicode",Name.get("Identity-H")),this.xref.getNewPersistentRef(baseFont)}get resources(){var resources=new Dict(this.xref),font=new Dict(this.xref);return font.set(this.fontName.name,this.baseFontRef),resources.set("Font",font),resources}_createContext(){return this.widths=new Map,this.ctxMeasure.font="1000px "+this.fontFamily,this.ctxMeasure}createFontResources(text){var ctx=this._createContext();for(const line of text.split(/\r\n?|\n/))for(const char of line.split("")){var metrics,code=char.charCodeAt(0);this.widths.has(code)||(metrics=ctx.measureText(char),metrics=Math.ceil(metrics.width),this.widths.set(code,metrics),this.firstChar=Math.min(code,this.firstChar),this.lastChar=Math.max(code,this.lastChar))}return this.resources}static getFirstPositionInfo(rect,rotation,fontSize){var[rect,y1,x2,y2]=rect;let w=x2-rect,h=y2-y1;rotation%180!=0&&([w,h]=[h,w]);x2=LINE_FACTOR*fontSize,rect=LINE_DESCENT_FACTOR*fontSize;return{coords:[0,h+rect-x2],bbox:[0,0,w,h],matrix:0!==rotation?getRotationMatrix(rotation,h,x2):void 0}}createAppearance(text,rect,rotation,fontSize,bgColor,strokeAlpha){var ctx=this._createContext(),lines=[];let maxWidth=-1/0;for(const line of text.split(/\r\n?|\n/)){lines.push(line);var lineWidth=ctx.measureText(line).width;maxWidth=Math.max(maxWidth,lineWidth);for(const code of codePointIter(line)){var char=String.fromCodePoint(code),width=this.widths.get(code);void 0===width&&(char=ctx.measureText(char),width=Math.ceil(char.width),this.widths.set(code,width),this.firstChar=Math.min(code,this.firstChar),this.lastChar=Math.max(code,this.lastChar))}}maxWidth*=fontSize/1e3;var[text,rect,x2,y2]=rect;let w=x2-text,h=y2-rect,hscale=(rotation%180!=0&&([w,h]=[h,w]),1),vscale=(maxWidth>w&&(hscale=w/maxWidth),1);var x2=LINE_FACTOR*fontSize,text=LINE_DESCENT_FACTOR*fontSize,y2=x2*lines.length,rect=(y2>h&&(vscale=h/y2),Math.min(hscale,vscale)),y2=fontSize*rect,buffer=["q",`0 0 ${numberToString(w)} ${numberToString(h)} re W n`,"BT",`1 0 0 1 0 ${numberToString(h+text)} Tm 0 Tc `+getPdfColor(bgColor,!0),`/${this.fontName.name} ${numberToString(y2)} Tf`],fontSize=this["resources"],vShift=(1!==(strokeAlpha="number"==typeof strokeAlpha&&0<=strokeAlpha&&strokeAlpha<=1?strokeAlpha:1)&&(buffer.push("/R0 gs"),rect=new Dict(this.xref),(text=new Dict(this.xref)).set("ca",strokeAlpha),text.set("CA",strokeAlpha),text.set("Type",Name.get("ExtGState")),rect.set("R0",text),fontSize.set("ExtGState",rect)),numberToString(x2));for(const line of lines)buffer.push(`0 -${vShift} Td <${stringToUTF16HexString(line)}> Tj`);buffer.push("ET","Q");bgColor=buffer.join("\n"),y2=new Dict(this.xref),y2.set("Subtype",Name.get("Form")),y2.set("Type",Name.get("XObject")),y2.set("BBox",[0,0,w,h]),y2.set("Length",bgColor.length),y2.set("Resources",fontSize),rotation&&(strokeAlpha=getRotationMatrix(rotation,w,h),y2.set("Matrix",strokeAlpha)),text=new StringStream(bgColor);return text.dict=y2,text}}class NameOrNumberTree{constructor(root,xref,type){this.constructor===NameOrNumberTree&&unreachable("Cannot initialize NameOrNumberTree."),this.root=root,this.xref=xref,this._type=type}getAll(){var map=new Map;if(this.root)for(var xref=this.xref,processed=new RefSet,queue=(processed.put(this.root),[this.root]);0>1,kid=xref.fetchIfRef(kids[m]),limits=kid.get("Limits");if(keyxref.fetchIfRef(limits[1]))){kidsOrEntries=kid;break}l=1+m}}if(l>r)return null}var entries=kidsOrEntries.get(this._type);if(Array.isArray(entries)){let l=0,r=entries.length-2;for(;l<=r;){const tmp=l+r>>1,m=tmp+(1&tmp);var currentKey=xref.fetchIfRef(entries[m]);if(key{if("#x"===entity.substring(0,2))return String.fromCodePoint(parseInt(entity.substring(2),16));if("#"===entity.substring(0,1))return String.fromCodePoint(parseInt(entity.substring(1),10));switch(entity){case"lt":return"<";case"gt":return">";case"amp":return"&";case"quot":return'"';case"apos":return"'"}return this.onResolveEntity(entity)})}_parseContent(s,start){var attributes=[];let pos=start;function skipWs(){for(;pos"!==s[pos]&&"/"!==s[pos];)++pos;var name=s.substring(start,pos);for(skipWs();pos"!==s[pos]&&"/"!==s[pos]&&"?"!==s[pos];){skipWs();let attrName="",attrValue;for(;pos"!==s[pos]&&"?"!==s[pos]&&"/"!==s[pos];)++pos;for(var name=s.substring(start,pos);pos"!==s[pos+1]);)++pos;return{name:name,value:s.substring(attrStart,pos),parsed:pos-start}}parseXml(s){let i=0;for(;i",j))<0)return void this.onError(XMLParserErrorCode.UnterminatedElement);this.onEndElement(s.substring(j,q)),j=q+1;break;case"?":++j;var pi=this._parseProcessingInstruction(s,j);if("?>"!==s.substring(j+pi.parsed,j+pi.parsed+2))return void this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);this.onPi(pi.name,pi.value),j+=pi.parsed+2;break;case"!":if("--"===s.substring(j+1,j+3)){if((q=s.indexOf("--\x3e",j+3))<0)return void this.onError(XMLParserErrorCode.UnterminatedComment);this.onComment(s.substring(j+3,q)),j=q+3}else if("[CDATA["===s.substring(j+1,j+8)){if((q=s.indexOf("]]>",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedCdat);this.onCdata(s.substring(j+8,q)),j=q+3}else{if("DOCTYPE"!==s.substring(j+1,j+8))return void this.onError(XMLParserErrorCode.MalformedElement);{pi=s.indexOf("[",j+8);let complexDoctype=!1;if((q=s.indexOf(">",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);if(0pi){if((q=s.indexOf("]>",j+8))<0)return void this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);complexDoctype=!0}var doctypeContent=s.substring(j+8,q+(complexDoctype?1:0));this.onDoctype(doctypeContent),j=q+(complexDoctype?2:1)}}break;default:doctypeContent=this._parseContent(s,j);if(null===doctypeContent)return void this.onError(XMLParserErrorCode.MalformedElement);let isClosed=!1;if("/>"===s.substring(j+doctypeContent.parsed,j+doctypeContent.parsed+2))isClosed=!0;else if(">"!==s.substring(j+doctypeContent.parsed,j+doctypeContent.parsed+1))return void this.onError(XMLParserErrorCode.UnterminatedElement);this.onBeginElement(doctypeContent.name,doctypeContent.attributes,isClosed),j+=doctypeContent.parsed+(isClosed?2:1)}}else{for(;j=paths.length)return this;var component=paths[pos];if(component.name.startsWith("#")&&pos");for(const child of this.childNodes)child.dump(buffer);buffer.push(``)}else this.nodeValue?buffer.push(`>${encodeToXmlString(this.nodeValue)}`):buffer.push("/>")}}}class SimpleXMLParser extends XMLParserBase{constructor({hasAttributes=!1,lowerCaseName=!1}){super(),this._currentFragment=null,this._stack=null,this._errorCode=XMLParserErrorCode.NoError,this._hasAttributes=hasAttributes,this._lowerCaseName=lowerCaseName}parseFromString(data){if(this._currentFragment=[],this._stack=[],this._errorCode=XMLParserErrorCode.NoError,this.parseXml(data),this._errorCode===XMLParserErrorCode.NoError){var[data]=this._currentFragment;if(data)return{documentElement:data}}}onText(text){isWhitespaceString(text)||(text=new SimpleDOMNode("#text",text),this._currentFragment.push(text))}onCdata(text){text=new SimpleDOMNode("#text",text);this._currentFragment.push(text)}onBeginElement(name,attributes,isEmpty){this._lowerCaseName&&(name=name.toLowerCase());name=new SimpleDOMNode(name);name.childNodes=[],this._hasAttributes&&(name.attributes=attributes),this._currentFragment.push(name),isEmpty||(this._stack.push(this._currentFragment),this._currentFragment=name.childNodes)}onEndElement(name){this._currentFragment=this._stack.pop()||[];var lastElement=this._currentFragment.at(-1);if(!lastElement)return null;for(const childNode of lastElement.childNodes)childNode.parentNode=lastElement;return lastElement}onError(code){this._errorCode=code}}class MetadataParser{constructor(data){data=this._repair(data);var xmlDocument=new SimpleXMLParser({lowerCaseName:!0}).parseFromString(data);this._metadataMap=new Map,this._data=data,xmlDocument&&this._parse(xmlDocument)}_repair(data){return data.replace(/^[^<]+/,"").replaceAll(/>\\376\\377([^<]+)/g,function(all,codes){var bytes=codes.replaceAll(/\\([0-3])([0-7])([0-7])/g,function(code,d1,d2,d3){return String.fromCharCode(64*d1+8*d2+ +d3)}).replaceAll(/&(amp|apos|gt|lt|quot);/g,function(str,name){switch(name){case"amp":return"&";case"apos":return"'";case"gt":return">";case"lt":return"<";case"quot":return'"'}throw new Error(`_repair: ${name} isn't defined.`)}),charBuf=[">"];for(let i=0,ii=bytes.length;i"rdf:li"===node.nodeName)}_parseArray(entry){var seqNode;entry.hasChildNodes()&&([seqNode]=entry.childNodes,seqNode=this._getSequence(seqNode)||[],this._metadataMap.set(entry.nodeName,seqNode.map(node=>node.textContent.trim())))}_parse(xmlDocument){let rdf=xmlDocument.documentElement;if("rdf:rdf"!==rdf.nodeName)for(rdf=rdf.firstChild;rdf&&"rdf:rdf"!==rdf.nodeName;)rdf=rdf.nextSibling;if(rdf&&"rdf:rdf"===rdf.nodeName&&rdf.hasChildNodes())for(const desc of rdf.childNodes)if("rdf:description"===desc.nodeName)for(const entry of desc.childNodes){var name=entry.nodeName;switch(name){case"#text":continue;case"dc:creator":case"dc:subject":this._parseArray(entry);continue}this._metadataMap.set(name,entry.textContent.trim())}}get serializable(){return{parsedData:this._metadataMap,rawData:this._data}}}const chunkSize=512;class DecryptStream extends DecodeStream{constructor(str,maybeLength,decrypt){super(maybeLength),this.str=str,this.dict=str.dict,this.decrypt=decrypt,this.nextChunk=null,this.initialized=!1}readBlock(){let chunk;var decrypt,hasMoreData;this.initialized?chunk=this.nextChunk:(chunk=this.str.getBytes(chunkSize),this.initialized=!0),chunk&&0!==chunk.length?(this.nextChunk=this.str.getBytes(chunkSize),hasMoreData=0>5&255,padded[i++]=length>>13&255,padded[i++]=length>>21&255,padded[i++]=length>>>29&255,padded[i++]=0,padded[i++]=0,padded[i++]=0;var w=new Int32Array(16);for(i=0;i>>32-rotate)|0,a=tmp}h0=h0+a|0,h1=h1+b|0,h2=h2+c|0,h3=h3+d|0}return new Uint8Array([255&h0,h0>>8&255,h0>>16&255,h0>>>24&255,255&h1,h1>>8&255,h1>>16&255,h1>>>24&255,255&h2,h2>>8&255,h2>>16&255,h2>>>24&255,255&h3,h3>>8&255,h3>>16&255,h3>>>24&255])}}();class Word64{constructor(highInteger,lowInteger){this.high=0|highInteger,this.low=0|lowInteger}and(word){this.high&=word.high,this.low&=word.low}xor(word){this.high^=word.high,this.low^=word.low}or(word){this.high|=word.high,this.low|=word.low}shiftRight(places){32<=places?(this.low=this.high>>>places-32|0,this.high=0):(this.low=this.low>>>places|this.high<<32-places,this.high=this.high>>>places|0)}shiftLeft(places){32<=places?(this.high=this.low<>>32-places,this.low<<=places)}rotateRight(places){let low,high;32&places?(high=this.low,low=this.high):(low=this.low,high=this.high),places&=31,this.low=low>>>places|high<<32-places,this.high=high>>>places|low<<32-places}not(){this.high=~this.high,this.low=~this.low}add(word){var lowAdd=(this.low>>>0)+(word.low>>>0);let highAdd=(this.high>>>0)+(word.high>>>0);4294967295>>24&255,bytes[offset+1]=this.high>>16&255,bytes[offset+2]=this.high>>8&255,bytes[offset+3]=255&this.high,bytes[offset+4]=this.low>>>24&255,bytes[offset+5]=this.low>>16&255,bytes[offset+6]=this.low>>8&255,bytes[offset+7]=255&this.low}assign(word){this.high=word.high,this.low=word.low}}const calculateSHA256=function(){function rotr(x,n){return x>>>n|x<<32-n}const k=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function(data,offset,length){let h0=1779033703,h1=3144134277,h2=1013904242,h3=2773480762,h4=1359893119,h5=2600822924,h6=528734635,h7=1541459225;var paddedLength=64*Math.ceil((length+9)/64),padded=new Uint8Array(paddedLength);let i,j;for(i=0;i>>29&255,padded[i++]=length>>21&255,padded[i++]=length>>13&255,padded[i++]=length>>5&255,padded[i++]=length<<3&255;var x,w=new Uint32Array(64);for(i=0;i>>10)+w[j-7]+function(x){return rotr(x,7)^rotr(x,18)^x>>>3}(w[j-15])+w[j-16];let a=h0,b=h1,c=h2,d=h3,e=h4,f=h5,g=h6,h=h7,t1,t2;for(j=0;j<64;++j)t1=h+function(x){return rotr(x,6)^rotr(x,11)^rotr(x,25)}(e)+function(x,y,z){return x&y^~x&z}(e,f,g)+k[j]+w[j],t2=function(x){return rotr(x,2)^rotr(x,13)^rotr(x,22)}(a)+function(x,y,z){return x&y^x&z^y&z}(a,b,c),h=g,g=f,f=e,e=d+t1|0,d=c,c=b,b=a,a=t1+t2|0;h0=h0+a|0,h1=h1+b|0,h2=h2+c|0,h3=h3+d|0,h4=h4+e|0,h5=h5+f|0,h6=h6+g|0,h7=h7+h|0}return new Uint8Array([h0>>24&255,h0>>16&255,h0>>8&255,255&h0,h1>>24&255,h1>>16&255,h1>>8&255,255&h1,h2>>24&255,h2>>16&255,h2>>8&255,255&h2,h3>>24&255,h3>>16&255,h3>>8&255,255&h3,h4>>24&255,h4>>16&255,h4>>8&255,255&h4,h5>>24&255,h5>>16&255,h5>>8&255,255&h5,h6>>24&255,h6>>16&255,h6>>8&255,255&h6,h7>>24&255,h7>>16&255,h7>>8&255,255&h7])}}(),calculateSHA512=function(){const k=[new Word64(1116352408,3609767458),new Word64(1899447441,602891725),new Word64(3049323471,3964484399),new Word64(3921009573,2173295548),new Word64(961987163,4081628472),new Word64(1508970993,3053834265),new Word64(2453635748,2937671579),new Word64(2870763221,3664609560),new Word64(3624381080,2734883394),new Word64(310598401,1164996542),new Word64(607225278,1323610764),new Word64(1426881987,3590304994),new Word64(1925078388,4068182383),new Word64(2162078206,991336113),new Word64(2614888103,633803317),new Word64(3248222580,3479774868),new Word64(3835390401,2666613458),new Word64(4022224774,944711139),new Word64(264347078,2341262773),new Word64(604807628,2007800933),new Word64(770255983,1495990901),new Word64(1249150122,1856431235),new Word64(1555081692,3175218132),new Word64(1996064986,2198950837),new Word64(2554220882,3999719339),new Word64(2821834349,766784016),new Word64(2952996808,2566594879),new Word64(3210313671,3203337956),new Word64(3336571891,1034457026),new Word64(3584528711,2466948901),new Word64(113926993,3758326383),new Word64(338241895,168717936),new Word64(666307205,1188179964),new Word64(773529912,1546045734),new Word64(1294757372,1522805485),new Word64(1396182291,2643833823),new Word64(1695183700,2343527390),new Word64(1986661051,1014477480),new Word64(2177026350,1206759142),new Word64(2456956037,344077627),new Word64(2730485921,1290863460),new Word64(2820302411,3158454273),new Word64(3259730800,3505952657),new Word64(3345764771,106217008),new Word64(3516065817,3606008344),new Word64(3600352804,1432725776),new Word64(4094571909,1467031594),new Word64(275423344,851169720),new Word64(430227734,3100823752),new Word64(506948616,1363258195),new Word64(659060556,3750685593),new Word64(883997877,3785050280),new Word64(958139571,3318307427),new Word64(1322822218,3812723403),new Word64(1537002063,2003034995),new Word64(1747873779,3602036899),new Word64(1955562222,1575990012),new Word64(2024104815,1125592928),new Word64(2227730452,2716904306),new Word64(2361852424,442776044),new Word64(2428436474,593698344),new Word64(2756734187,3733110249),new Word64(3204031479,2999351573),new Word64(3329325298,3815920427),new Word64(3391569614,3928383900),new Word64(3515267271,566280711),new Word64(3940187606,3454069534),new Word64(4118630271,4000239992),new Word64(116418474,1914138554),new Word64(174292421,2731055270),new Word64(289380356,3203993006),new Word64(460393269,320620315),new Word64(685471733,587496836),new Word64(852142971,1086792851),new Word64(1017036298,365543100),new Word64(1126000580,2618297676),new Word64(1288033470,3409855158),new Word64(1501505948,4234509866),new Word64(1607167915,987167468),new Word64(1816402316,1246189591)];return function(data,offset,length,mode384=!1){let h0,h1,h2,h3,h4,h5,h6,h7;h7=mode384?(h0=new Word64(3418070365,3238371032),h1=new Word64(1654270250,914150663),h2=new Word64(2438529370,812702999),h3=new Word64(355462360,4144912697),h4=new Word64(1731405415,4290775857),h5=new Word64(2394180231,1750603025),h6=new Word64(3675008525,1694076839),new Word64(1203062813,3204075428)):(h0=new Word64(1779033703,4089235720),h1=new Word64(3144134277,2227873595),h2=new Word64(1013904242,4271175723),h3=new Word64(2773480762,1595750129),h4=new Word64(1359893119,2917565137),h5=new Word64(2600822924,725511199),h6=new Word64(528734635,4215389547),new Word64(1541459225,327033209));var paddedLength=128*Math.ceil((length+17)/128),padded=new Uint8Array(paddedLength);let i,j;for(i=0;i>>29&255,padded[i++]=length>>21&255,padded[i++]=length>>13&255,padded[i++]=length>>5&255,padded[i++]=length<<3&255;var w=new Array(80);for(i=0;i<80;i++)w[i]=new Word64(0,0);let a=new Word64(0,0),b=new Word64(0,0),c=new Word64(0,0),d=new Word64(0,0),e=new Word64(0,0),f=new Word64(0,0),g=new Word64(0,0),h=new Word64(0,0);var t1=new Word64(0,0),t2=new Word64(0,0),tmp1=new Word64(0,0),tmp2=new Word64(0,0);let tmp3;for(i=0;i>>8^s1<<24^s2>>>16^s2<<16^s3>>>24^s3<<8,state[j]=t>>>24&255,state[j+1]=t>>16&255,state[j+2]=t>>8&255,state[j+3]=255&t}}t=state[13],state[13]=state[9],state[9]=state[5],state[5]=state[1],state[1]=t,t=state[14],u=state[10],state[14]=state[6],state[10]=state[2],state[6]=t,state[2]=u,t=state[15],u=state[11],v=state[7],state[15]=state[3],state[11]=t,state[7]=u,state[3]=v;for(let j=0;j<16;++j)state[j]=this._inv_s[state[j]],state[j]^=key[j];return state}_encrypt(input,key){var s=this._s;let t,u,v;var state=new Uint8Array(16);state.set(input);for(let j=0;j<16;++j)state[j]^=key[j];for(let i=1;i=ii;--i)if(lastBlock[i]!==psLen){psLen=0;break}outputLength-=psLen,result[result.length-1]=lastBlock.subarray(0,16-psLen)}}var output=new Uint8Array(outputLength);for(let i=0,j=0,ii=result.length;ii-32;){var combinedLength=password.length+k.length+userBytes.length,combinedArray=new Uint8Array(combinedLength),writeOffset=0,k1=(combinedArray.set(password,0),writeOffset+=password.length,combinedArray.set(k,writeOffset),writeOffset+=k.length,combinedArray.set(userBytes,writeOffset),new Uint8Array(64*combinedLength));for(let j=0,pos=0;j<64;j++,pos+=combinedLength)k1.set(combinedArray,pos);writeOffset=new AES128Cipher(k.subarray(0,16)),writeOffset=(e=writeOffset.encrypt(k1,k.subarray(16,32))).slice(0,16).reduce((a,b)=>a+b,0)%3;0==writeOffset?k=calculateSHA256(e,0,e.length):1==writeOffset?k=calculateSHA384(e,0,e.length):2==writeOffset&&(k=calculateSHA512(e,0,e.length)),i++}return k.subarray(0,32)}checkOwnerPassword(password,ownerValidationSalt,userBytes,ownerPassword){var hashData=new Uint8Array(password.length+56),ownerValidationSalt=(hashData.set(password,0),hashData.set(ownerValidationSalt,password.length),hashData.set(userBytes,password.length+ownerValidationSalt.length),this._hash(password,hashData,userBytes));return isArrayEqual(ownerValidationSalt,ownerPassword)}checkUserPassword(password,userValidationSalt,userPassword){var hashData=new Uint8Array(password.length+8),userValidationSalt=(hashData.set(password,0),hashData.set(userValidationSalt,password.length),this._hash(password,hashData,[]));return isArrayEqual(userValidationSalt,userPassword)}getOwnerKey(password,ownerKeySalt,userBytes,ownerEncryption){var hashData=new Uint8Array(password.length+56),ownerKeySalt=(hashData.set(password,0),hashData.set(ownerKeySalt,password.length),hashData.set(userBytes,password.length+ownerKeySalt.length),this._hash(password,hashData,userBytes));return new AES256Cipher(ownerKeySalt).decryptBlock(ownerEncryption,!1,new Uint8Array(16))}getUserKey(password,userKeySalt,userEncryption){var hashData=new Uint8Array(password.length+8),userKeySalt=(hashData.set(password,0),hashData.set(userKeySalt,password.length),this._hash(password,hashData,[]));return new AES256Cipher(userKeySalt).decryptBlock(userEncryption,!1,new Uint8Array(16))}}class CipherTransform{constructor(stringCipherConstructor,streamCipherConstructor){this.StringCipherConstructor=stringCipherConstructor,this.StreamCipherConstructor=streamCipherConstructor}createStream(stream,length){const cipher=new this.StreamCipherConstructor;return new DecryptStream(stream,length,function(data,finalize){return cipher.decryptBlock(data,finalize)})}decryptString(s){var cipher=new this.StringCipherConstructor,s=stringToBytes(s);return bytesToString(cipher.decryptBlock(s,!0))}encryptString(s){var cipher=new this.StringCipherConstructor;if(cipher instanceof AESBaseCipher){var pad=16-s.length%16,iv=(s+=String.fromCharCode(pad).repeat(pad),new Uint8Array(16));if("undefined"!=typeof crypto)crypto.getRandomValues(iv);else for(let i=0;i<16;i++)iv[i]=Math.floor(256*Math.random());let data=stringToBytes(s);data=cipher.encrypt(data,iv);pad=new Uint8Array(16+data.length);return pad.set(iv),pad.set(data,16),bytesToString(pad)}pad=stringToBytes(s);return bytesToString(cipher.encrypt(pad))}}class CipherTransformFactory{static#defaultPasswordBytes=new Uint8Array([40,191,78,94,78,117,138,65,100,0,78,86,255,250,1,8,46,46,0,182,208,104,62,128,47,12,169,254,100,83,105,122]);#createEncryptionKey20(revision,password,ownerPassword,ownerValidationSalt,ownerKeySalt,uBytes,userPassword,userValidationSalt,userKeySalt,ownerEncryption,userEncryption,perms){password=password?(passwordLength=Math.min(127,password.length),password.subarray(0,passwordLength)):[];var passwordLength=new(6===revision?PDF20:PDF17);return passwordLength.checkUserPassword(password,userValidationSalt,userPassword)?passwordLength.getUserKey(password,userKeySalt,userEncryption):password.length&&passwordLength.checkOwnerPassword(password,ownerValidationSalt,uBytes,ownerPassword)?passwordLength.getOwnerKey(password,ownerKeySalt,uBytes,ownerEncryption):null}#prepareKeyData(fileId,password,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata){var hashDataSize=40+ownerPassword.length+fileId.length,hashData=new Uint8Array(hashDataSize);let i=0,j,n;if(password)for(n=Math.min(32,password.length);i>8&255,hashData[i++]=flags>>16&255,hashData[i++]=flags>>>24&255,j=0,n=fileId.length;j>3;if(3<=revision)for(j=0;j<50;++j)hash=calculateMD5(hash,0,keyLengthInBytes);var encryptionKey=hash.subarray(0,keyLengthInBytes);let cipher,checkData;if(3<=revision){for(i=0;i<32;++i)hashData[i]=CipherTransformFactory.#defaultPasswordBytes[i];for(j=0,n=fileId.length;j>3;if(3<=revision)for(j=0;j<50;++j)hash=calculateMD5(hash,0,hash.length);let cipher,userPassword;if(3<=revision){userPassword=ownerPassword;var derivedKey=new Uint8Array(keyLengthInBytes);for(j=19;0<=j;j--){for(let k=0;k>8&255,key[i++]=num>>16&255,key[i++]=255&gen,key[i++]=gen>>8&255,isAes&&(key[i++]=115,key[i++]=65,key[i++]=108,key[i++]=84),calculateMD5(key,0,i).subarray(0,Math.min(encryptionKey.length+5,16))}#buildCipherConstructor(cf,name,num,gen,key){if(!(name instanceof Name))throw new FormatError("Invalid crypt filter name.");const self=this;cf=cf.get(name.name)?.get("CFM");if(!cf||"None"===cf.name)return function(){return new NullCipher};if("V2"===cf.name)return function(){return new ARCFourCipher(self.#buildObjectKey(num,gen,key,!1))};if("AESV2"===cf.name)return function(){return new AES128Cipher(self.#buildObjectKey(num,gen,key,!0))};if("AESV3"===cf.name)return function(){return new AES256Cipher(key)};throw new FormatError("Unknown crypto method")}constructor(dict,fileId,password){var filter=dict.get("Filter");if(!isName(filter,"Standard"))throw new FormatError("unknown encryption method");this.filterName=filter.name;filter=(this.dict=dict).get("V");if(!Number.isInteger(filter)||1!==filter&&2!==filter&&4!==filter&&5!==filter)throw new FormatError("unsupported encryption algorithm");this.algorithm=filter;let keyLength=dict.get("Length");if(keyLength||(filter<=3?keyLength=40:(cfDict=dict.get("CF"),streamCryptoName=dict.get("StmF"),cfDict instanceof Dict&&streamCryptoName instanceof Name&&(cfDict.suppressEncryption=!0,cfDict=cfDict.get(streamCryptoName.name),(keyLength=cfDict?.get("Length")||128)<40)&&(keyLength<<=3))),!Number.isInteger(keyLength)||keyLength<40||keyLength%8!=0)throw new FormatError("invalid key length");var uBytes,userValidationSalt,ownerEncryption,userEncryption,perms,ownerValidationSalt,streamCryptoName=stringToBytes(dict.get("O")),cfDict=stringToBytes(dict.get("U")),ownerPassword=streamCryptoName.subarray(0,32),userPassword=cfDict.subarray(0,32),flags=dict.get("P"),revision=dict.get("R"),encryptMetadata=(4===filter||5===filter)&&!1!==dict.get("EncryptMetadata"),fileId=(this.encryptMetadata=encryptMetadata,stringToBytes(fileId));let passwordBytes;if(password){if(6===revision)try{password=utf8StringToString(password)}catch{warn("CipherTransformFactory: Unable to convert UTF8 encoded password.")}passwordBytes=stringToBytes(password)}let encryptionKey;if(!(encryptionKey=5!==filter?this.#prepareKeyData(fileId,passwordBytes,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata):(ownerValidationSalt=streamCryptoName.subarray(32,40),streamCryptoName=streamCryptoName.subarray(40,48),uBytes=cfDict.subarray(0,48),userValidationSalt=cfDict.subarray(32,40),cfDict=cfDict.subarray(40,48),ownerEncryption=stringToBytes(dict.get("OE")),userEncryption=stringToBytes(dict.get("UE")),perms=stringToBytes(dict.get("Perms")),this.#createEncryptionKey20(revision,passwordBytes,ownerPassword,ownerValidationSalt,streamCryptoName,uBytes,userPassword,userValidationSalt,cfDict,ownerEncryption,userEncryption,perms)))&&!password)throw new PasswordException("No password given",PasswordResponses.NEED_PASSWORD);if(!encryptionKey&&password&&(ownerValidationSalt=this.#decodeUserPassword(passwordBytes,ownerPassword,revision,keyLength),encryptionKey=this.#prepareKeyData(fileId,ownerValidationSalt,ownerPassword,userPassword,flags,revision,keyLength,encryptMetadata)),!encryptionKey)throw new PasswordException("Incorrect Password",PasswordResponses.INCORRECT_PASSWORD);this.encryptionKey=encryptionKey,4<=filter&&((streamCryptoName=dict.get("CF"))instanceof Dict&&(streamCryptoName.suppressEncryption=!0),this.cf=streamCryptoName,this.stmf=dict.get("StmF")||Name.get("Identity"),this.strf=dict.get("StrF")||Name.get("Identity"),this.eff=dict.get("EFF")||this.stmf)}createCipherTransform(num,gen){if(4===this.algorithm||5===this.algorithm)return new CipherTransform(this.#buildCipherConstructor(this.cf,this.strf,num,gen,this.encryptionKey),this.#buildCipherConstructor(this.cf,this.stmf,num,gen,this.encryptionKey));const key=this.#buildObjectKey(num,gen,this.encryptionKey,!1);function cipherConstructor(){return new ARCFourCipher(key)}return new CipherTransform(cipherConstructor,cipherConstructor)}}async function writeObject(ref,obj,buffer,{encrypt=null}){encrypt=encrypt?.createCipherTransform(ref.num,ref.gen);buffer.push(`${ref.num} ${ref.gen} obj\n`),obj instanceof Dict?await writeDict(obj,buffer,encrypt):obj instanceof BaseStream?await writeStream(obj,buffer,encrypt):(Array.isArray(obj)||ArrayBuffer.isView(obj))&&await writeArray(obj,buffer,encrypt),buffer.push("\nendobj\n")}async function writeDict(dict,buffer,transform){buffer.push("<<");for(const key of dict.getKeys())buffer.push(` /${escapePDFName(key)} `),await writeValue(dict.getRaw(key),buffer,transform);buffer.push(">>")}async function writeStream(stream,buffer,transform){let bytes=stream.getBytes();var stream=stream["dict"],[filter,params]=await Promise.all([stream.getAsync("Filter"),stream.getAsync("DecodeParms")]),isFilterZeroFlateDecode=isName(Array.isArray(filter)?await stream.xref.fetchIfRefAsync(filter[0]):filter,"FlateDecode");if(256<=bytes.length||isFilterZeroFlateDecode)try{var cs=new CompressionStream("deflate"),writer=cs.writable.getWriter(),buf=(writer.write(bytes),writer.close(),await new Response(cs.readable).arrayBuffer());bytes=new Uint8Array(buf);let newFilter,newParams;filter?isFilterZeroFlateDecode||(newFilter=Array.isArray(filter)?[Name.get("FlateDecode"),...filter]:[Name.get("FlateDecode"),filter],params&&(newParams=Array.isArray(params)?[null,...params]:[null,params])):newFilter=Name.get("FlateDecode"),newFilter&&stream.set("Filter",newFilter),newParams&&stream.set("DecodeParms",newParams)}catch(ex){info(`writeStream - cannot compress data: "${ex}".`)}let string=bytesToString(bytes);transform&&(string=transform.encryptString(string)),stream.set("Length",string.length),await writeDict(stream,buffer,transform),buffer.push(" stream\n",string,"\nendstream")}async function writeArray(array,buffer,transform){buffer.push("[");let first=!0;for(const val of array)first?first=!1:buffer.push(" "),await writeValue(val,buffer,transform);buffer.push("]")}async function writeValue(value,buffer,transform){value instanceof Name?buffer.push("/"+escapePDFName(value.name)):value instanceof Ref?buffer.push(`${value.num} ${value.gen} R`):Array.isArray(value)||ArrayBuffer.isView(value)?await writeArray(value,buffer,transform):"string"==typeof value?(transform&&(value=transform.encryptString(value)),buffer.push(`(${escapeString(value)})`)):"number"==typeof value?buffer.push(numberToString(value)):"boolean"==typeof value?buffer.push(value.toString()):value instanceof Dict?await writeDict(value,buffer,transform):value instanceof BaseStream?await writeStream(value,buffer,transform):null===value?buffer.push("null"):warn(`Unhandled value in writer: ${typeof value}, please file a bug.`)}function writeInt(number,size,offset,buffer){for(let i=size+offset-1;i>offset-1;i--)buffer[i]=255&number,number>>=8;return offset+size}function writeString(string,offset,buffer){for(let i=0,len=string.length;ia+str.length,0);for(const value of Object.values(xrefInfo.info))md5Buffer.push(value),md5BufferLen+=value.length;var array=new Uint8Array(md5BufferLen);let offset=0;for(const str of md5Buffer)writeString(str,offset,array),offset+=str.length;return bytesToString(calculateMD5(array))}function writeXFADataForAcroform(str,newRefs){var xfa,xml=new SimpleXMLParser({hasAttributes:!0}).parseFromString(str);for({xfa}of newRefs)if(xfa){var{path,value}=xfa;if(path){var nodePath=parseXFAPath(path);let node=xml.documentElement.searchNode(nodePath,0);(node=!node&&1new SimpleDOMNode("value",val)):[new SimpleDOMNode("#text",value)]:warn("Node not found for path: "+path)}}str=[];return xml.documentElement.dump(str),str.join("")}async function updateAcroform({xref,acroForm,acroFormRef,hasXfa,hasXfaDatasetsEntry,xfaDatasetsRef,needAppearances,newRefs}){var dict;!hasXfa||hasXfaDatasetsEntry||xfaDatasetsRef||warn("XFA - Cannot save it"),(needAppearances||hasXfa&&xfaDatasetsRef&&!hasXfaDatasetsEntry)&&(dict=acroForm.clone(),hasXfa&&!hasXfaDatasetsEntry&&((hasXfa=acroForm.get("XFA").slice()).splice(2,0,"datasets"),hasXfa.splice(3,0,xfaDatasetsRef),dict.set("XFA",hasXfa)),needAppearances&&dict.set("NeedAppearances",!0),await writeObject(acroFormRef,dict,hasXfaDatasetsEntry=[],xref),newRefs.push({ref:acroFormRef,data:hasXfaDatasetsEntry.join("")}))}function updateXFA({xfaData,xfaDatasetsRef,newRefs,xref}){null===xfaData&&(xfaData=writeXFADataForAcroform(xref.fetchIfRef(xfaDatasetsRef).getString(),newRefs));xref=xref.encrypt,xref&&(xfaData=xref.createCipherTransform(xfaDatasetsRef.num,xfaDatasetsRef.gen).encryptString(xfaData)),xref=`${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\n`+`<< /Type /EmbeddedFile /Length ${xfaData.length}>> -stream -`+xfaData+"\nendstream\nendobj\n";newRefs.push({ref:xfaDatasetsRef,data:xref})}async function getXRefTable(xrefInfo,baseOffset,newRefs,newXref,buffer){buffer.push("xref\n");var ref,data,indexes=getIndexes(newRefs);let indexesPosition=0;for({ref,data}of newRefs)ref.num===indexes[indexesPosition]&&(buffer.push(`${indexes[indexesPosition]} ${indexes[indexesPosition+1]}\n`),indexesPosition+=2),null!==data?(buffer.push(`${baseOffset.toString().padStart(10,"0")} ${Math.min(ref.gen,65535).toString().padStart(5,"0")} n\r\n`),baseOffset+=data.length):buffer.push(`0000000000 ${Math.min(ref.gen+1,65535).toString().padStart(5,"0")} f\r -`);computeIDs(baseOffset,xrefInfo,newXref),buffer.push("trailer\n"),await writeDict(newXref,buffer),buffer.push("\nstartxref\n",baseOffset.toString(),"\n%%EOF\n")}function getIndexes(newRefs){var ref,indexes=[];for({ref}of newRefs)ref.num===indexes.at(-2)+indexes.at(-1)?indexes[indexes.length-1]+=1:indexes.push(ref.num,1);return indexes}async function getXRefStreamTable(xrefInfo,baseOffset,newRefs,newXref,buffer){var xrefTableData=[];let maxOffset=0,maxGen=0;for(const{ref,data}of newRefs){let gen;maxOffset=Math.max(maxOffset,baseOffset),null!==data?(gen=Math.min(ref.gen,65535),xrefTableData.push([1,baseOffset,gen]),baseOffset+=data.length):(gen=Math.min(ref.gen+1,65535),xrefTableData.push([0,0,gen])),maxGen=Math.max(maxGen,gen)}newXref.set("Index",getIndexes(newRefs));var sizes=[1,getSizeInBytes(maxOffset),getSizeInBytes(maxGen)],newRefs=(newXref.set("W",sizes),computeIDs(baseOffset,xrefInfo,newXref),sizes.reduce((a,x)=>a+x,0));const data=new Uint8Array(newRefs*xrefTableData.length);var type,objOffset,gen,newRefs=new Stream(data);newRefs.dict=newXref;let offset=0;for([type,objOffset,gen]of xrefTableData)offset=writeInt(type,sizes[0],offset,data),offset=writeInt(objOffset,sizes[1],offset,data),offset=writeInt(gen,sizes[2],offset,data);await writeObject(xrefInfo.newRef,newRefs,buffer,{}),buffer.push("startxref\n",baseOffset.toString(),"\n%%EOF\n")}function computeIDs(baseOffset,xrefInfo,newXref){Array.isArray(xrefInfo.fileIds)&&0a.ref.num-b.ref.num))null!==data&&buffer.push(data);await(useXrefStream?getXRefStreamTable:getXRefTable)(xrefInfo,baseOffset,newRefs,acroFormRef,buffer);var hasXfaDatasetsEntry=buffer.reduce((a,str)=>a+str.length,originalData.length),array=new Uint8Array(hasXfaDatasetsEntry);array.set(originalData);let offset=originalData.length;for(const str of buffer)writeString(str,offset,array),offset+=str.length;return array}const MAX_DEPTH=40,StructElementType={PAGE_CONTENT:1,STREAM_CONTENT:2,OBJECT:3,ANNOTATION:4,ELEMENT:5};class StructTreeRoot{constructor(rootDict,rootRef){this.dict=rootDict,this.ref=rootRef instanceof Ref?rootRef:null,this.roleMap=new Map,this.structParentIds=null}init(){this.readRoleMap()}#addIdToPage(pageRef,id,type){if(pageRef instanceof Ref&&!(id<0)){this.structParentIds||=new RefSetCache;let ids=this.structParentIds.get(pageRef);ids||(ids=[],this.structParentIds.put(pageRef,ids)),ids.push([id,type])}}addAnnotationIdToPage(pageRef,id){this.#addIdToPage(pageRef,id,StructElementType.ANNOTATION)}readRoleMap(){var roleMapDict=this.dict.get("RoleMap");roleMapDict instanceof Dict&&roleMapDict.forEach((key,value)=>{value instanceof Name&&this.roleMap.set(key,value.name)})}static async canCreateStructureTree({catalogRef,pdfManager,newAnnotationsByPage}){if(!(catalogRef instanceof Ref))return warn("Cannot save the struct tree: no catalog reference."),!1;let nextKey=0,hasNothingToUpdate=!0;for(var[pageIndex,elements]of newAnnotationsByPage){var pageRef=(await pdfManager.getPage(pageIndex))["ref"];if(!(pageRef instanceof Ref)){warn(`Cannot save the struct tree: page ${pageIndex} has no ref.`),hasNothingToUpdate=!0;break}for(const element of elements)element.accessibilityData?.type&&(element.parentTreeId=nextKey++,hasNothingToUpdate=!1)}if(hasNothingToUpdate){for(const elements of newAnnotationsByPage.values())for(const element of elements)delete element.parentTreeId;return!1}return!0}static async createStructureTree({newAnnotationsByPage,xref,catalogRef,pdfManager,newRefs}){var ref,obj,root=pdfManager.catalog.cloneDict(),cache=new RefSetCache,catalogRef=(cache.put(catalogRef,root),xref.getNewTemporaryRef()),root=(root.set("StructTreeRoot",catalogRef),new Dict(xref)),parentTreeRef=(root.set("Type",Name.get("StructTreeRoot")),xref.getNewTemporaryRef()),kids=(root.set("ParentTree",parentTreeRef),[]),parentTree=(root.set("K",kids),cache.put(catalogRef,root),new Dict(xref)),nums=[],newAnnotationsByPage=(parentTree.set("Nums",nums),await this.#writeKids({newAnnotationsByPage:newAnnotationsByPage,structTreeRootRef:catalogRef,kids:kids,nums:nums,xref:xref,pdfManager:pdfManager,cache:cache})),buffer=(root.set("ParentTreeNextKey",newAnnotationsByPage),cache.put(parentTreeRef,parentTree),[]);for([ref,obj]of cache.items())buffer.length=0,await writeObject(ref,obj,buffer,xref),newRefs.push({ref:ref,data:buffer.join("")})}async canUpdateStructTree({pdfManager,xref,newAnnotationsByPage}){if(!this.ref)return warn("Cannot update the struct tree: no root reference."),!1;let nextKey=this.dict.get("ParentTreeNextKey");if(!Number.isInteger(nextKey)||nextKey<0)return warn("Cannot update the struct tree: invalid next key."),!1;var parentTree=this.dict.get("ParentTree");if(!(parentTree instanceof Dict))return warn("Cannot update the struct tree: ParentTree isn't a dict."),!1;var nums=parentTree.get("Nums");if(!Array.isArray(nums))return warn("Cannot update the struct tree: nums isn't an array."),!1;var pageIndex,elements,numberTree=new NumberTree(parentTree,xref);for(const pageIndex of newAnnotationsByPage.keys()){var pageDict=(await pdfManager.getPage(pageIndex))["pageDict"];if(pageDict.has("StructParents")){pageDict=pageDict.get("StructParents");if(!Number.isInteger(pageDict)||!Array.isArray(numberTree.get(pageDict)))return warn(`Cannot save the struct tree: page ${pageIndex} has a wrong id.`),!1}}let hasNothingToUpdate=!0;for([pageIndex,elements]of newAnnotationsByPage){const pageDict=(await pdfManager.getPage(pageIndex))["pageDict"];StructTreeRoot.#collectParents({elements:elements,xref:this.dict.xref,pageDict:pageDict,numberTree:numberTree});for(const element of elements)element.accessibilityData?.type&&(element.parentTreeId=nextKey++,hasNothingToUpdate=!1)}if(hasNothingToUpdate){for(const elements of newAnnotationsByPage.values())for(const element of elements)delete element.parentTreeId,delete element.structTreeParent;return!1}return!0}async updateStructureTree({newAnnotationsByPage,pdfManager,newRefs}){var xref=this.dict.xref,structTreeRoot=this.dict.clone(),structTreeRootRef=this.ref,cache=new RefSetCache;cache.put(structTreeRootRef,structTreeRoot);let parentTreeRef=structTreeRoot.getRaw("ParentTree"),parentTree,nums=(parentTreeRef instanceof Ref?parentTree=xref.fetch(parentTreeRef):(parentTree=parentTreeRef,parentTreeRef=xref.getNewTemporaryRef(),structTreeRoot.set("ParentTree",parentTreeRef)),parentTree=parentTree.clone(),cache.put(parentTreeRef,parentTree),parentTree.getRaw("Nums")),numsRef=null;nums instanceof Ref&&(numsRef=nums,nums=xref.fetch(numsRef)),nums=nums.slice(),numsRef||parentTree.set("Nums",nums);var ref,obj,newAnnotationsByPage=await StructTreeRoot.#writeKids({newAnnotationsByPage:newAnnotationsByPage,structTreeRootRef:structTreeRootRef,kids:null,nums:nums,xref:xref,pdfManager:pdfManager,cache:cache}),buffer=(structTreeRoot.set("ParentTreeNextKey",newAnnotationsByPage),numsRef&&cache.put(numsRef,nums),[]);for([ref,obj]of cache.items())buffer.length=0,await writeObject(ref,obj,buffer,xref),newRefs.push({ref:ref,data:buffer.join("")})}static async#writeKids({newAnnotationsByPage,structTreeRootRef,kids,nums,xref,pdfManager,cache}){var pageIndex,elements,objr=Name.get("OBJR");let nextKey=-1/0;for([pageIndex,elements]of newAnnotationsByPage){var accessibilityData,ref,parentTreeId,structTreeParent,title,lang,alt,expanded,actualText,tagRef,tagDict,type,pageRef=(await pdfManager.getPage(pageIndex))["ref"],isPageRef=pageRef instanceof Ref;for({accessibilityData,ref,parentTreeId,structTreeParent}of elements)accessibilityData?.type&&({type,title,lang,alt,expanded,actualText}=accessibilityData,nextKey=Math.max(nextKey,parentTreeId),tagRef=xref.getNewTemporaryRef(),(tagDict=new Dict(xref)).set("S",Name.get(type)),title&&tagDict.set("T",title),lang&&tagDict.set("Lang",lang),alt&&tagDict.set("Alt",alt),expanded&&tagDict.set("E",expanded),actualText&&tagDict.set("ActualText",actualText),await this.#updateParentTag({structTreeParent:structTreeParent,tagDict:tagDict,newTagRef:tagRef,structTreeRootRef:structTreeRootRef,fallbackKids:kids,xref:xref,cache:cache}),type=new Dict(xref),tagDict.set("K",type),type.set("Type",objr),isPageRef&&type.set("Pg",pageRef),type.set("Obj",ref),cache.put(tagRef,tagDict),nums.push(parentTreeId,tagRef))}return nextKey+1}static#collectParents({elements,xref,pageDict,numberTree}){const idToElements=new Map;for(const element of elements)if(element.structTreeParentId){const id=parseInt(element.structTreeParentId.split("_mc")[1],10);let elems=idToElements.get(id);elems||(elems=[],idToElements.set(id,elems)),elems.push(element)}const id=pageDict.get("StructParents");if(Number.isInteger(id)){var updateElement=(kid,pageKid,kidRef)=>{kid=idToElements.get(kid);if(kid){var parentRef=pageKid.getRaw("P"),parentDict=xref.fetchIfRef(parentRef);if(parentRef instanceof Ref&&parentDict instanceof Dict){var params={ref:kidRef,dict:pageKid};for(const element of kid)element.structTreeParent=params}return!0}return!1};for(const kidRef of numberTree.get(id))if(kidRef instanceof Ref){var pageKid=xref.fetch(kidRef),k=pageKid.get("K");if(Number.isInteger(k))updateElement(k,pageKid,kidRef);else if(Array.isArray(k))for(var kid of k){if(kid=xref.fetchIfRef(kid),Number.isInteger(kid)&&updateElement(kid,pageKid,kidRef))break;if(kid instanceof Dict){if(!isName(kid.get("Type"),"MCR"))break;kid=kid.get("MCID");if(Number.isInteger(kid)&&updateElement(kid,pageKid,kidRef))break}}}}}static async#updateParentTag({structTreeParent,tagDict,newTagRef,structTreeRootRef,fallbackKids,xref,cache}){let ref=null,parentRef;parentRef=structTreeParent&&({ref}=structTreeParent,structTreeParent.dict.getRaw("P"))||structTreeRootRef,tagDict.set("P",parentRef);structTreeParent=xref.fetchIfRef(parentRef);if(structTreeParent){let cachedParentDict=cache.get(parentRef);cachedParentDict||(cachedParentDict=structTreeParent.clone(),cache.put(parentRef,cachedParentDict));structTreeRootRef=cachedParentDict.getRaw("K");let cachedParentKids=structTreeRootRef instanceof Ref?cache.get(structTreeRootRef):null;cachedParentKids||(cachedParentKids=xref.fetchIfRef(structTreeRootRef),cachedParentKids=Array.isArray(cachedParentKids)?cachedParentKids.slice():[structTreeRootRef],tagDict=xref.getNewTemporaryRef(),cachedParentDict.set("K",tagDict),cache.put(tagDict,cachedParentKids));structTreeParent=cachedParentKids.indexOf(ref);cachedParentKids.splice(0<=structTreeParent?structTreeParent+1:cachedParentKids.length,0,newTagRef)}else fallbackKids.push(newTagRef)}}class StructElementNode{constructor(tree,dict){this.tree=tree,this.dict=dict,this.kids=[],this.parseKids()}get role(){var nameObj=this.dict.get("S"),nameObj=nameObj instanceof Name?nameObj.name:"",root=this.tree["root"];return root.roleMap.has(nameObj)?root.roleMap.get(nameObj):nameObj}parseKids(){let pageObjId=null;var objRef=this.dict.getRaw("Pg"),objRef=(objRef instanceof Ref&&(pageObjId=objRef.toString()),this.dict.get("K"));if(Array.isArray(objRef))for(const kid of objRef){var element=this.parseKid(pageObjId,kid);element&&this.kids.push(element)}else{const element=this.parseKid(pageObjId,objRef);element&&this.kids.push(element)}}parseKid(pageObjId,kid){if(Number.isInteger(kid))return this.tree.pageDict.objId!==pageObjId?null:new StructElement({type:StructElementType.PAGE_CONTENT,mcid:kid,pageObjId:pageObjId});let kidDict=null;if(kid instanceof Ref?kidDict=this.dict.xref.fetch(kid):kid instanceof Dict&&(kidDict=kid),!kidDict)return null;var kidRef,kid=kidDict.getRaw("Pg"),kid=(kid instanceof Ref&&(pageObjId=kid.toString()),kidDict.get("Type")instanceof Name?kidDict.get("Type").name:null);if("MCR"===kid)return this.tree.pageDict.objId!==pageObjId?null:(kidRef=kidDict.getRaw("Stm"),new StructElement({type:StructElementType.STREAM_CONTENT,refObjId:kidRef instanceof Ref?kidRef.toString():null,pageObjId:pageObjId,mcid:kidDict.get("MCID")}));if("OBJR"!==kid)return new StructElement({type:StructElementType.ELEMENT,dict:kidDict});{if(this.tree.pageDict.objId!==pageObjId)return null;const kidRef=kidDict.getRaw("Obj");return new StructElement({type:StructElementType.OBJECT,refObjId:kidRef instanceof Ref?kidRef.toString():null,pageObjId:pageObjId})}}}class StructElement{constructor({type,dict=null,mcid=null,pageObjId=null,refObjId=null}){this.type=type,this.dict=dict,this.mcid=mcid,this.pageObjId=pageObjId,this.refObjId=refObjId,this.parentNode=null}}class StructTreePage{constructor(structTreeRoot,pageDict){this.root=structTreeRoot,this.rootDict=structTreeRoot?structTreeRoot.dict:null,this.pageDict=pageDict,this.nodes=[]}parse(pageRef){if(this.root&&this.rootDict){var parentTree=this.rootDict.get("ParentTree");if(parentTree){var id=this.pageDict.get("StructParents"),pageRef=pageRef instanceof Ref&&this.root.structParentIds?.get(pageRef);if(Number.isInteger(id)||pageRef){var map=new Map,numberTree=new NumberTree(parentTree,this.rootDict.xref);if(Number.isInteger(id)){parentTree=numberTree.get(id);if(Array.isArray(parentTree))for(const ref of parentTree)ref instanceof Ref&&this.addNode(this.rootDict.xref.fetch(ref),map)}if(pageRef)for(var[elemId,type]of pageRef){var elemId=numberTree.get(elemId);elemId&&1===(elemId=this.addNode(this.rootDict.xref.fetchIfRef(elemId),map))?.kids?.length&&elemId.kids[0].type===StructElementType.OBJECT&&(elemId.kids[0].type=type)}}}}}addNode(dict,map,level=0){if(level>MAX_DEPTH)return warn("StructTree MAX_DEPTH reached."),null;if(map.has(dict))return map.get(dict);var element=new StructElementNode(this,dict),parent=(map.set(dict,element),dict.get("P"));if(!parent||isName(parent.get("Type"),"StructTreeRoot"))this.addTopLevelNode(dict,element)||map.delete(dict);else{parent=this.addNode(parent,map,level+1);if(parent){let save=!1;for(const kid of parent.kids)kid.type===StructElementType.ELEMENT&&kid.dict===dict&&(kid.parentNode=element,save=!0);save||map.delete(dict)}}return element}addTopLevelNode(dict,element){var obj=this.rootDict.get("K");if(!obj)return!1;if(obj instanceof Dict)return obj.objId===dict.objId&&(this.nodes[0]=element,!0);if(!Array.isArray(obj))return!0;let save=!1;for(let i=0;iMAX_DEPTH)warn("StructTree too deep to be fully serialized.");else{var obj=Object.create(null);obj.role=node.role,obj.children=[],parent.children.push(obj),"string"==typeof(parent=node.dict.get("Alt"))&&(obj.alt=stringToPDFString(parent)),"string"==typeof(parent=node.dict.get("Lang"))&&(obj.lang=stringToPDFString(parent));for(const kid of node.kids){var kidElement=kid.type===StructElementType.ELEMENT?kid.parentNode:null;kidElement?nodeToSerializable(kidElement,obj,level+1):kid.type===StructElementType.PAGE_CONTENT||kid.type===StructElementType.STREAM_CONTENT?obj.children.push({type:"content",id:`p${kid.pageObjId}_mc`+kid.mcid}):kid.type===StructElementType.OBJECT?obj.children.push({type:"object",id:kid.refObjId}):kid.type===StructElementType.ANNOTATION&&obj.children.push({type:"annotation",id:""+AnnotationPrefix+kid.refObjId})}}}(child,root);return root}}function isValidExplicitDest(dest){if(!Array.isArray(dest)||dest.length<2)return!1;var[dest,zoom,...args]=dest;if(!(dest instanceof Ref||Number.isInteger(dest)))return!1;if(!(zoom instanceof Name))return!1;let allowNull=!0;switch(zoom.name){case"XYZ":if(3!==args.length)return!1;break;case"Fit":case"FitB":return 0===args.length;case"FitH":case"FitBH":case"FitV":case"FitBV":if(1!==args.length)return!1;break;case"FitR":if(4!==args.length)return!1;allowNull=!1;break;default:return!1}for(const arg of args)if(!("number"==typeof arg||allowNull&&null===arg))return!1;return!0}function fetchDest(dest){return isValidExplicitDest(dest=dest instanceof Dict?dest.get("D"):dest)?dest:null}function fetchRemoteDest(action){let dest=action.get("D");if(dest){if("string"==typeof(dest=dest instanceof Name?dest.name:dest))return stringToPDFString(dest);if(isValidExplicitDest(dest))return JSON.stringify(dest)}return null}class Catalog{constructor(pdfManager,xref){if(this.pdfManager=pdfManager,this.xref=xref,this._catDict=xref.getCatalogObj(),!(this._catDict instanceof Dict))throw new FormatError("Catalog object is not a dictionary.");this.toplevelPagesDict,this._actualNumPages=null,this.fontCache=new RefSetCache,this.builtInCMapCache=new Map,this.standardFontDataCache=new Map,this.globalImageCache=new GlobalImageCache,this.pageKidsCountCache=new RefSetCache,this.pageIndexCache=new RefSetCache,this.nonBlendModesSet=new RefSet,this.systemFontCache=new Map}cloneDict(){return this._catDict.clone()}get version(){var version=this._catDict.get("Version");if(version instanceof Name){if(PDF_VERSION_REGEXP.test(version.name))return shadow(this,"version",version.name);warn("Invalid PDF catalog version: "+version.name)}return shadow(this,"version",null)}get lang(){var lang=this._catDict.get("Lang");return shadow(this,"lang","string"==typeof lang?stringToPDFString(lang):null)}get needsRendering(){var needsRendering=this._catDict.get("NeedsRendering");return shadow(this,"needsRendering","boolean"==typeof needsRendering&&needsRendering)}get collection(){let collection=null;try{var obj=this._catDict.get("Collection");obj instanceof Dict&&0i instanceof Name)&&(groupRef.intent=intent.map(i=>i.name));name=group.get("Usage");if(name instanceof Dict){var usageObj=groupRef.usage,group=name.get("Print");if(group instanceof Dict){var printState=group.get("PrintState");if(printState instanceof Name)switch(printState.name){case"ON":case"OFF":usageObj.print={printState:printState.name}}}group=name.get("View");if(group instanceof Dict){var viewState=group.get("ViewState");if(viewState instanceof Name)switch(viewState.name){case"ON":case"OFF":usageObj.view={viewState:viewState.name}}}}return groupRef}#readOptionalContentConfig(config,contentGroupRefs){function parseOnOff(refs){var onParsed=[];if(Array.isArray(refs))for(const value of refs)value instanceof Ref&&contentGroupRefs.has(value)&&onParsed.push(value.toString());return onParsed}function parseOrder(refs,nestedLevels=0){if(!Array.isArray(refs))return null;var nestedOrder,order=[];for(const value of refs)value instanceof Ref&&contentGroupRefs.has(value)?(parsedOrderRefs.put(value),order.push(value.toString())):(nestedOrder=function(ref,nestedLevels){if(++nestedLevels>MAX_NESTED_LEVELS)return warn("parseNestedOrder - reached MAX_NESTED_LEVELS."),null;ref=xref.fetchIfRef(ref);if(!Array.isArray(ref))return null;var nestedName=xref.fetchIfRef(ref[0]);if("string"!=typeof nestedName)return null;ref=parseOrder(ref.slice(1),nestedLevels);return ref&&ref.length?{name:stringToPDFString(nestedName),order:ref}:null}(value,nestedLevels))&&order.push(nestedOrder);if(!(0Number.isInteger(page)&&0=arr[i-1])&&page<=this.numPages)&&(prefValue=value);break;case"NumCopies":Number.isInteger(value)&&0=kids.length)queue.pop();else{var currentNode=kids[posInKids];let obj;if(currentNode instanceof Ref){if(visitedNodes.has(currentNode)){addPageError(new FormatError("Pages tree contains circular reference."));break}visitedNodes.put(currentNode);try{obj=await xref.fetchAsync(currentNode)}catch(ex){addPageError(ex);break}}else obj=currentNode;if(!(obj instanceof Dict)){addPageError(new FormatError("Page dictionary kid reference points to wrong type of object."));break}let type=obj.getRaw("Type");if(type instanceof Ref)try{type=await xref.fetchAsync(type)}catch(ex){addPageError(ex);break}isName(type,"Page")||!obj.has("Kids")?(posInKids=obj,(currentNode=currentNode instanceof Ref?currentNode:null)&&!pageIndexCache.has(currentNode)&&pageIndexCache.put(currentNode,pageIndex),map.set(pageIndex++,[posInKids,currentNode])):queue.push({currentNode:obj,posInKids:0}),queueItem.posInKids++}}return map}getPageIndex(pageRef){var cachedPageIndex=this.pageIndexCache.get(pageRef);if(void 0!==cachedPageIndex)return Promise.resolve(cachedPageIndex);const xref=this.xref;let total=0;const next=ref=>function(kidRef){let total=0,parentRef;return xref.fetchAsync(kidRef).then(function(node){if(isRefsEqual(kidRef,pageRef)&&!isDict(node,"Page")&&!(node instanceof Dict&&!node.has("Type")&&node.has("Contents")))throw new FormatError("The reference does not point to a /Page dictionary.");if(!node)return null;if(node instanceof Dict)return parentRef=node.getRaw("Parent"),node.getAsync("Parent");throw new FormatError("Node must be a dictionary.")}).then(function(parent){if(!parent)return null;if(parent instanceof Dict)return parent.getAsync("Kids");throw new FormatError("Parent must be a dictionary.")}).then(function(kids){if(!kids)return null;var kidPromises=[];let found=!1;for(const kid of kids){if(!(kid instanceof Ref))throw new FormatError("Kid must be a reference.");if(isRefsEqual(kid,kidRef)){found=!0;break}kidPromises.push(xref.fetchAsync(kid).then(function(obj){if(!(obj instanceof Dict))throw new FormatError("Kid node must be a dictionary.");obj.has("Count")?total+=obj.get("Count"):total++}))}if(found)return Promise.all(kidPromises).then(function(){return[total,parentRef]});throw new FormatError("Kid reference not found in parent's kids.")})}(ref).then(args=>{var parentRef;return args?([args,parentRef]=args,total+=args,next(parentRef)):(this.pageIndexCache.put(pageRef,total),total)});return next(pageRef)}get baseUrl(){var uri=this._catDict.get("URI");if(uri instanceof Dict){uri=uri.get("Base");if("string"==typeof uri){uri=createValidAbsoluteUrl(uri,null,{tryConvertEncoding:!0});if(uri)return shadow(this,"baseUrl",uri.href)}}return shadow(this,"baseUrl",this.pdfManager.docBaseUrl)}static parseDestDictionary({destDict,resultObj,docBaseUrl=null,docAttachments=null}){if(destDict instanceof Dict){let action=destDict.get("A"),url,dest;if(action instanceof Dict||(destDict.has("Dest")?action=destDict.get("Dest"):(action=destDict.get("AA"))instanceof Dict&&(action.has("D")?action=action.get("D"):action.has("U")&&(action=action.get("U")))),action instanceof Dict){var actionType=action.get("S");if(!(actionType instanceof Name))return void warn("parseDestDictionary: Invalid type in Action dictionary.");var actionName=actionType.name;switch(actionName){case"ResetForm":var flags=action.get("Flags"),flags=0==(1&("number"==typeof flags?flags:0)),fields=[],refs=[];for(const obj of action.get("Fields")||[])obj instanceof Ref?refs.push(obj.toString()):"string"==typeof obj&&fields.push(stringToPDFString(obj));resultObj.resetForm={fields:fields,refs:refs,include:flags};break;case"URI":(url=action.get("URI"))instanceof Name&&(url="/"+url.name);break;case"GoTo":dest=action.get("D");break;case"Launch":case"GoToR":var flags=action.get("F"),filename=(flags instanceof Dict?(filename=new FileSpec(flags,null,!0).serializable["filename"],url=filename):"string"==typeof flags&&(url=flags),fetchRemoteDest(action)),flags=(filename&&"string"==typeof url&&(url=url.split("#",1)[0]+"#"+filename),action.get("NewWindow"));"boolean"==typeof flags&&(resultObj.newWindow=flags);break;case"GoToE":var filename=action.get("T");let attachment;(attachment=docAttachments&&filename instanceof Dict&&(flags=filename.get("R"),filename=filename.get("N"),isName(flags,"C"))&&"string"==typeof filename?docAttachments[stringToPDFString(filename)]:attachment)?(resultObj.attachment=attachment,(flags=fetchRemoteDest(action))&&(resultObj.attachmentDest=flags)):warn('parseDestDictionary - unimplemented "GoToE" action.');break;case"Named":filename=action.get("N");filename instanceof Name&&(resultObj.action=filename.name);break;case"SetOCGState":flags=action.get("State"),filename=action.get("PreserveRB");if(Array.isArray(flags)&&0!==flags.length){var stateArr=[];for(const elem of flags)if(elem instanceof Name)switch(elem.name){case"ON":case"OFF":case"Toggle":stateArr.push(elem.name)}else elem instanceof Ref&&stateArr.push(elem.toString());stateArr.length===flags.length&&(resultObj.setOCGState={state:stateArr,preserveRB:"boolean"!=typeof filename||filename})}break;case"JavaScript":flags=action.get("JS");let js;flags instanceof BaseStream?js=flags.getString():"string"==typeof flags&&(js=flags);filename=js&&recoverJsURL(stringToPDFString(js));if(filename){url=filename.url,resultObj.newWindow=filename.newWindow;break}default:"JavaScript"!==actionName&&"SubmitForm"!==actionName&&warn(`parseDestDictionary - unsupported action: "${actionName}".`)}}else destDict.has("Dest")&&(dest=destDict.get("Dest"));"string"==typeof url&&((actionType=createValidAbsoluteUrl(url,docBaseUrl,{addDefaultProtocol:!0,tryConvertEncoding:!0}))&&(resultObj.url=actionType.href),resultObj.unsafeUrl=url),dest&&("string"==typeof(dest=dest instanceof Name?dest.name:dest)?resultObj.dest=stringToPDFString(dest):isValidExplicitDest(dest)&&(resultObj.dest=dest))}else warn("parseDestDictionary: `destDict` must be a dictionary.")}}function mayHaveChildren(value){return value instanceof Ref||value instanceof Dict||value instanceof BaseStream||Array.isArray(value)}function addChildren(node,nodesToVisit){if(node instanceof Dict)node=node.getRawValues();else if(node instanceof BaseStream)node=node.dict.getRawValues();else if(!Array.isArray(node))return;for(const rawValue of node)mayHaveChildren(rawValue)&&nodesToVisit.push(rawValue)}class ObjectLoader{constructor(dict,keys,xref){this.dict=dict,this.keys=keys,this.xref=xref,this.refSet=null}async load(){if(!this.xref.stream.isDataLoaded){var{keys,dict}=this,nodesToVisit=(this.refSet=new RefSet,[]);for(const key of keys){var rawValue=dict.getRaw(key);void 0!==rawValue&&nodesToVisit.push(rawValue)}return this._walk(nodesToVisit)}}async _walk(nodesToVisit){for(var nodesToRevisit=[],pendingRequests=[];nodesToVisit.length;){let currentNode=nodesToVisit.pop();if(currentNode instanceof Ref){if(this.refSet.has(currentNode))continue;try{this.refSet.put(currentNode),currentNode=this.xref.fetch(currentNode)}catch(ex){if(!(ex instanceof MissingDataException))return warn(`ObjectLoader._walk - requesting all data: "${ex}".`),this.refSet=null,manager=this.xref.stream["manager"],manager.requestAllChunks();nodesToRevisit.push(currentNode),pendingRequests.push({begin:ex.begin,end:ex.end})}}if(currentNode instanceof BaseStream){var manager=currentNode.getBaseStreams();if(manager){let foundMissingData=!1;for(const stream of manager)stream.isDataLoaded||(foundMissingData=!0,pendingRequests.push({begin:stream.start,end:stream.end}));foundMissingData&&nodesToRevisit.push(currentNode)}}addChildren(currentNode,nodesToVisit)}if(pendingRequests.length){await this.xref.stream.manager.requestRanges(pendingRequests);for(const node of nodesToRevisit)node instanceof Ref&&this.refSet.remove(node);return this._walk(nodesToRevisit)}this.refSet=null}}const $acceptWhitespace=Symbol(),$addHTML=Symbol(),$appendChild=Symbol(),$childrenToHTML=Symbol(),$clean=Symbol(),$cleanPage=Symbol(),$cleanup=Symbol(),$clone=Symbol(),$consumed=Symbol(),$content=Symbol("content"),$data=Symbol("data"),$dump=Symbol(),$extra=Symbol("extra"),$finalize=Symbol(),$flushHTML=Symbol(),$getAttributeIt=Symbol(),$getAttributes=Symbol(),$getAvailableSpace=Symbol(),$getChildrenByClass=Symbol(),$getChildrenByName=Symbol(),$getChildrenByNameIt=Symbol(),$getDataValue=Symbol(),$getExtra=Symbol(),$getRealChildrenByNameIt=Symbol(),$getChildren=Symbol(),$getContainedChildren=Symbol(),$getNextPage=Symbol(),$getSubformParent=Symbol(),$getParent=Symbol(),$getTemplateRoot=Symbol(),$globalData=Symbol(),$hasSettableValue=Symbol(),$ids=Symbol(),$indexOf=Symbol(),$insertAt=Symbol(),$isCDATAXml=Symbol(),$isBindable=Symbol(),$isDataValue=Symbol(),$isDescendent=Symbol(),$isNsAgnostic=Symbol(),$isSplittable=Symbol(),$isThereMoreWidth=Symbol(),$isTransparent=Symbol(),$isUsable=Symbol(),$lastAttribute=Symbol(),$namespaceId=Symbol("namespaceId"),$nodeName=Symbol("nodeName"),$nsAttributes=Symbol(),$onChild=Symbol(),$onChildCheck=Symbol(),$onText=Symbol(),$pushGlyphs=Symbol(),$popPara=Symbol(),$pushPara=Symbol(),$removeChild=Symbol(),$root=Symbol("root"),$resolvePrototypes=Symbol(),$searchNode=Symbol(),$setId=Symbol(),$setSetAttributes=Symbol(),$setValue=Symbol(),$tabIndex=Symbol(),$text=Symbol(),$toPages=Symbol(),$toHTML=Symbol(),$toString=Symbol(),$toStyle=Symbol(),$uid=Symbol("uid"),$buildXFAObject=Symbol(),NamespaceIds={config:{id:0,check:ns=>ns.startsWith("http://www.xfa.org/schema/xci/")},connectionSet:{id:1,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-connection-set/")},datasets:{id:2,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-data/")},form:{id:3,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-form/")},localeSet:{id:4,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-locale-set/")},pdf:{id:5,check:ns=>"http://ns.adobe.com/xdp/pdf/"===ns},signature:{id:6,check:ns=>"http://www.w3.org/2000/09/xmldsig#"===ns},sourceSet:{id:7,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-source-set/")},stylesheet:{id:8,check:ns=>"http://www.w3.org/1999/XSL/Transform"===ns},template:{id:9,check:ns=>ns.startsWith("http://www.xfa.org/schema/xfa-template/")},xdc:{id:10,check:ns=>ns.startsWith("http://www.xfa.org/schema/xdc/")},xdp:{id:11,check:ns=>"http://ns.adobe.com/xdp/"===ns},xfdf:{id:12,check:ns=>"http://ns.adobe.com/xfdf/"===ns},xhtml:{id:13,check:ns=>"http://www.w3.org/1999/xhtml"===ns},xmpmeta:{id:14,check:ns=>"http://ns.adobe.com/xmpmeta/"===ns}},dimConverters={pt:x=>x,cm:x=>x/2.54*72,mm:x=>x/25.4*72,in:x=>72*x,px:x=>x},measurementPattern=/([+-]?\d+\.?\d*)(.*)/;function stripQuotes(str){return str.startsWith("'")||str.startsWith('"')?str.slice(1,-1):str}function getInteger({data,defaultValue,validate}){if(!data)return defaultValue;data=data.trim();data=parseInt(data,10);return!isNaN(data)&&validate(data)?data:defaultValue}function getFloat({data,defaultValue,validate}){if(!data)return defaultValue;data=data.trim();data=parseFloat(data);return!isNaN(data)&&validate(data)?data:defaultValue}function getKeyword({data,defaultValue,validate}){return data&&validate(data=data.trim())?data:defaultValue}function getStringOption(data,options){return getKeyword({data:data,defaultValue:options[0],validate:k=>options.includes(k)})}function getMeasurement(str,def="0"){var unit;return def||="0",!str||!(str=str.trim().match(measurementPattern))||([,str,unit]=str,str=parseFloat(str),isNaN(str))?getMeasurement(def):0===str?0:(unit=dimConverters[unit])?unit(str):str}function getRatio(data){var den;return!data||(1===(data=data.trim().split(/\s*:\s*/).map(x=>parseFloat(x)).filter(x=>!isNaN(x))).length&&data.push(1),0===data.length)?{num:1,den:1}:([data,den]=data,{num:data,den:den})}function getRelevant(data){return data?data.trim().split(/\s+/).map(e=>({excluded:"-"===e[0],viewname:e.substring(1)})):[]}function getColor(data,def=[0,0,0]){var[def,g,b]=def;return!data||(data=data.trim().split(/\s*,\s*/).map(c=>Math.min(Math.max(0,parseInt(c.trim(),10)),255)).map(c=>isNaN(c)?0:c)).length<3||([def,g,b]=data),{r:def,g:g,b:b}}function getBBox(data){var y,width,height;return!data||(data=data.trim().split(/\s*,\s*/).map(m=>getMeasurement(m,"-1"))).length<4||data[2]<0||data[3]<0?{x:-1,y:-1,width:-1,height:-1}:([data,y,width,height]=data,{x:data,y:y,width:width,height:height})}class HTMLResult{static get FAILURE(){return shadow(this,"FAILURE",new HTMLResult(!1,null,null,null))}static get EMPTY(){return shadow(this,"EMPTY",new HTMLResult(!0,null,null,null))}constructor(success,html,bbox,breakNode){this.success=success,this.html=html,this.bbox=bbox,this.breakNode=breakNode}isBreak(){return!!this.breakNode}static breakNode(node){return new HTMLResult(!1,null,null,node)}static success(html,bbox=null){return new HTMLResult(!0,html,bbox,null)}}class FontFinder{constructor(pdfFonts){this.fonts=new Map,this.cache=new Map,this.warned=new Set,this.defaultFont=null,this.add(pdfFonts)}add(pdfFonts,reallyMissingFonts=null){for(const pdfFont of pdfFonts)this.addPdfFont(pdfFont);for(const pdfFont of this.fonts.values())pdfFont.regular||(pdfFont.regular=pdfFont.italic||pdfFont.bold||pdfFont.bolditalic);if(reallyMissingFonts&&0!==reallyMissingFonts.size){var myriad=this.fonts.get("PdfJS-Fallback-PdfJS-XFA");for(const missing of reallyMissingFonts)this.fonts.set(missing,myriad)}}addPdfFont(pdfFont){var cssFontInfo=pdfFont.cssFontInfo,name=cssFontInfo.fontFamily;let font=this.fonts.get(name),property=(font||(font=Object.create(null),this.fonts.set(name,font),this.defaultFont)||(this.defaultFont=font),"");name=parseFloat(cssFontInfo.fontWeight);0!==parseFloat(cssFontInfo.italicAngle)?property=700<=name?"bolditalic":"italic":700<=name&&(property="bold"),!property&&((pdfFont.name.includes("Bold")||pdfFont.psName?.includes("Bold"))&&(property="bold"),pdfFont.name.includes("Italic")||pdfFont.name.endsWith("It")||pdfFont.psName?.includes("Italic")||pdfFont.psName?.endsWith("It"))&&(property+="italic"),property=property||"regular",font[property]=pdfFont}getDefault(){return this.defaultFont}find(fontName,mustWarn=!0){var font=this.fonts.get(fontName)||this.cache.get(fontName);if(font)return font;var pattern=/,|-|_| |bolditalic|bold|italic|regular|it/gi;let name=fontName.replaceAll(pattern,"");if(font=this.fonts.get(name))return this.cache.set(fontName,font),font;name=name.toLowerCase();var family,pdfFont,maybe=[];for([family,pdfFont]of this.fonts.entries())family.replaceAll(pattern,"").toLowerCase().startsWith(name)&&maybe.push(pdfFont);if(0===maybe.length)for(const[,pdfFont]of this.fonts.entries())pdfFont.regular.name?.replaceAll(pattern,"").toLowerCase().startsWith(name)&&maybe.push(pdfFont);if(0===maybe.length){name=name.replaceAll(/psmt|mt/gi,"");for(const[family,pdfFont]of this.fonts.entries())family.replaceAll(pattern,"").toLowerCase().startsWith(name)&&maybe.push(pdfFont)}if(0===maybe.length)for(const pdfFont of this.fonts.values())pdfFont.regular.name?.replaceAll(pattern,"").toLowerCase().startsWith(name)&&maybe.push(pdfFont);return 1<=maybe.length?(1!==maybe.length&&mustWarn&&warn("XFA - Too many choices to guess the correct font: "+fontName),this.cache.set(fontName,maybe[0]),maybe[0]):(mustWarn&&!this.warned.has(fontName)&&(this.warned.add(fontName),warn("XFA - Cannot find the font: "+fontName)),null)}}function selectFont(xfaFont,typeface){return"italic"===xfaFont.posture?"bold"===xfaFont.weight?typeface.bolditalic:typeface.italic:"bold"===xfaFont.weight?typeface.bold:typeface.regular}function fonts_getMetrics(xfaFont,real=!1){let pdfFont=null;var name;return xfaFont&&(name=stripQuotes(xfaFont.typeface),name=xfaFont[$globalData].fontFinder.find(name),pdfFont=selectFont(xfaFont,name)),pdfFont?(name=xfaFont.size||10,{lineHeight:(xfaFont=pdfFont.lineHeight?Math.max(real?0:1.2,pdfFont.lineHeight):1.2)*name,lineGap:(real=void 0===pdfFont.lineGap?.2:pdfFont.lineGap)*name,lineNoGap:Math.max(1,xfaFont-real)*name}):{lineHeight:12,lineGap:2,lineNoGap:10}}const WIDTH_FACTOR=1.02;class FontInfo{constructor(xfaFont,margin,lineHeight,fontFinder){this.lineHeight=lineHeight,this.paraMargin=margin||{top:0,bottom:0,left:0,right:0},xfaFont&&(this.xfaFont={typeface:xfaFont.typeface,posture:xfaFont.posture,weight:xfaFont.weight,size:xfaFont.size,letterSpacing:xfaFont.letterSpacing},lineHeight=fontFinder.find(xfaFont.typeface))&&(this.pdfFont=selectFont(xfaFont,lineHeight),this.pdfFont)||([this.pdfFont,this.xfaFont]=this.defaultFont(fontFinder))}defaultFont(fontFinder){fontFinder=fontFinder.find("Helvetica",!1)||fontFinder.find("Myriad Pro",!1)||fontFinder.find("Arial",!1)||fontFinder.getDefault();if(fontFinder?.regular){fontFinder=fontFinder.regular;const xfaFont={typeface:fontFinder.cssFontInfo.fontFamily,posture:"normal",weight:"normal",size:10,letterSpacing:0};return[fontFinder,xfaFont]}const xfaFont={typeface:"Courier",posture:"normal",weight:"normal",size:10,letterSpacing:0};return[null,xfaFont]}}class FontSelector{constructor(defaultXfaFont,defaultParaMargin,defaultLineHeight,fontFinder){this.fontFinder=fontFinder,this.stack=[new FontInfo(defaultXfaFont,defaultParaMargin,defaultLineHeight,fontFinder)]}pushData(xfaFont,margin,lineHeight){var lastFont=this.stack.at(-1);for(const name of["typeface","posture","weight","size","letterSpacing"])xfaFont[name]||(xfaFont[name]=lastFont.xfaFont[name]);for(const name of["top","bottom","left","right"])isNaN(margin[name])&&(margin[name]=lastFont.paraMargin[name]);lineHeight=new FontInfo(xfaFont,margin,lineHeight||lastFont.lineHeight,this.fontFinder);lineHeight.pdfFont||(lineHeight.pdfFont=lastFont.pdfFont),this.stack.push(lineHeight)}popFont(){this.stack.pop()}topFont(){return this.stack.at(-1)}}class TextMeasure{constructor(defaultXfaFont,defaultParaMargin,defaultLineHeight,fonts){this.glyphs=[],this.fontSelector=new FontSelector(defaultXfaFont,defaultParaMargin,defaultLineHeight,fonts),this.extraHeight=0}pushData(xfaFont,margin,lineHeight){this.fontSelector.pushData(xfaFont,margin,lineHeight)}popFont(xfaFont){return this.fontSelector.popFont()}addPara(){var lastFont=this.fontSelector.topFont();this.extraHeight+=lastFont.paraMargin.top+lastFont.paraMargin.bottom}addString(str){if(str){var lastFont=this.fontSelector.topFont(),fontSize=lastFont.xfaFont.size;if(lastFont.pdfFont){var letterSpacing=lastFont.xfaFont.letterSpacing,pdfFont=lastFont.pdfFont,fontLineHeight=pdfFont.lineHeight||1.2,lineHeight=lastFont.lineHeight||Math.max(1.2,fontLineHeight)*fontSize,lastFont=void 0===pdfFont.lineGap?.2:pdfFont.lineGap,firstLineHeight=Math.max(1,fontLineHeight-lastFont)*fontSize,scale=fontSize/1e3,fallbackWidth=pdfFont.defaultWidth||pdfFont.charsToGlyphs(" ")[0].width;for(const line of str.split(/[\u2029\n]/)){var encodedLine=pdfFont.encodeString(line).join("");for(const glyph of pdfFont.charsToGlyphs(encodedLine)){var width=glyph.width||fallbackWidth;this.glyphs.push([width*scale+letterSpacing,lineHeight,firstLineHeight,glyph.unicode,!1])}this.glyphs.push([0,0,0,"\n",!0])}}else for(const line of str.split(/[\u2029\n]/)){for(const char of line.split(""))this.glyphs.push([fontSize,1.2*fontSize,fontSize,char,!1]);this.glyphs.push([0,0,0,"\n",!0])}this.glyphs.pop()}}compute(maxWidth){let lastSpacePos=-1,lastSpaceWidth=0,width=0,height=0,currentLineWidth=0,currentLineHeight=0,isBroken=!1,isFirstLine=!0;for(let i=0,ii=this.glyphs.length;imaxWidth?(width=Math.max(width,currentLineWidth),currentLineWidth=0,height+=currentLineHeight,currentLineHeight=firstLineHeight,lastSpacePos=-1,lastSpaceWidth=0,isBroken=!0,isFirstLine=!1):(currentLineHeight=Math.max(firstLineHeight,currentLineHeight),lastSpaceWidth=currentLineWidth,currentLineWidth+=glyphWidth,lastSpacePos=i):currentLineWidth+glyphWidth>maxWidth?(height+=currentLineHeight,currentLineHeight=firstLineHeight,-1!==lastSpacePos?(i=lastSpacePos,width=Math.max(width,lastSpaceWidth),currentLineWidth=0,lastSpacePos=-1,lastSpaceWidth=0):(width=Math.max(width,currentLineWidth),currentLineWidth=glyphWidth),isBroken=!0,isFirstLine=!1):(currentLineWidth+=glyphWidth,currentLineHeight=Math.max(firstLineHeight,currentLineHeight))}return width=Math.max(width,currentLineWidth),height+=currentLineHeight+this.extraHeight,{width:WIDTH_FACTOR*width,height:height,isBroken:isBroken}}}const namePattern=/^[^.[]+/,indexPattern=/^[^\]]+/,operators={dot:0,dotDot:1,dotHash:2,dotBracket:3,dotParen:4},shortcuts=new Map([["$data",(root,current)=>root.datasets?root.datasets.data:root],["$record",(root,current)=>(root.datasets?root.datasets.data:root)[$getChildren]()[0]],["$template",(root,current)=>root.template],["$connectionSet",(root,current)=>root.connectionSet],["$form",(root,current)=>root.form],["$layout",(root,current)=>root.layout],["$host",(root,current)=>root.host],["$dataWindow",(root,current)=>root.dataWindow],["$event",(root,current)=>root.event],["!",(root,current)=>root.datasets],["$xfa",(root,current)=>root],["xfa",(root,current)=>root],["$",(root,current)=>current]]),somCache=new WeakMap;function parseIndex(index){return"*"===(index=index.trim())?1/0:parseInt(index,10)||0}function parseExpression(expr,dotDotAllowed,noExpr=!0){let match=expr.match(namePattern);if(!match)return null;var[name]=match,parsed=[{name:name,cacheName:"."+name,index:0,js:null,formCalc:null,operator:operators.dot}];let pos=name.length;for(;posindexnode[index]):nodes.flat();else{if(!(container=container[$getParent]()))return null;i=-1,root=[container]}}return 0===root.length?null:root}function createDataNode(root,container,expr){var parsed=parseExpression(expr);if(parsed&&!parsed.some(x=>x.operator===operators.dotDot)){expr=shortcuts.get(parsed[0].name);let i=0;expr?(root=expr(root,container),i=1):root=container||root;for(var ii=parsed.length;ic[$text]()).join("")}get[_attributeNames](){var proto=Object.getPrototypeOf(this);if(!proto._attributes){var attributes=proto._attributes=new Set;for(const name of Object.getOwnPropertyNames(this)){if(null===this[name]||this[name]instanceof XFAObject||this[name]instanceof XFAObjectArray)break;attributes.add(name)}}return shadow(this,_attributeNames,proto._attributes)}[$isDescendent](parent){let node=this;for(;node;){if(node===parent)return!0;node=node[$getParent]()}return!1}[$getParent](){return this[_parent]}[$getSubformParent](){return this[$getParent]()}[$getChildren](name=null){return name?this[name]:this[_children]}[$dump](){var dumped=Object.create(null);this[$content]&&(dumped.$content=this[$content]);for(const name of Object.getOwnPropertyNames(this)){var value=this[name];null!==value&&(value instanceof XFAObject?dumped[name]=value[$dump]():value instanceof XFAObjectArray?value.isEmpty()||(dumped[name]=value.dump()):dumped[name]=value)}return dumped}[$toStyle](){return null}[$toHTML](){return HTMLResult.EMPTY}*[$getContainedChildren](){for(const node of this[$getChildren]())yield node}*[_filteredChildrenGenerator](filter,include){for(const node of this[$getContainedChildren]()){var availableSpace;filter&&include!==filter.has(node[$nodeName])||(availableSpace=this[$getAvailableSpace](),(availableSpace=node[$toHTML](availableSpace)).success||(this[$extra].failingNode=node),yield availableSpace)}}[$flushHTML](){return null}[$addHTML](html,bbox){this[$extra].children.push(html)}[$getAvailableSpace](){}[$childrenToHTML]({filter=null,include=!0}){if(this[$extra].generator){var availableSpace=this[$getAvailableSpace](),availableSpace=this[$extra].failingNode[$toHTML](availableSpace);if(!availableSpace.success)return availableSpace;availableSpace.html&&this[$addHTML](availableSpace.html,availableSpace.bbox),delete this[$extra].failingNode}else this[$extra].generator=this[_filteredChildrenGenerator](filter,include);for(;;){var gen=this[$extra].generator.next();if(gen.done)break;const res=gen.value;if(!res.success)return res;res.html&&this[$addHTML](res.html,res.bbox)}return this[$extra].generator=null,HTMLResult.EMPTY}[$setSetAttributes](attributes){this[_setAttributes]=new Set(Object.keys(attributes))}[_getUnsetAttributes](protoAttributes){const allAttr=this[_attributeNames],setAttr=this[_setAttributes];return[...protoAttributes].filter(x=>allAttr.has(x)&&!setAttr.has(x))}[$resolvePrototypes](ids,ancestors=new Set){for(const child of this[_children])child[_resolvePrototypesHelper](ids,ancestors)}[_resolvePrototypesHelper](ids,ancestors){var proto=this[_getPrototype](ids,ancestors);proto?this[_applyPrototype](proto,ids,ancestors):this[$resolvePrototypes](ids,ancestors)}[_getPrototype](ids,ancestors){var{use,usehref}=this;if(!use&&!usehref)return null;let proto=null,somExpression=null,id=null,ref=use;if(usehref?(ref=usehref).startsWith("#som(")&&usehref.endsWith(")")?somExpression=usehref.slice("#som(".length,-1):usehref.startsWith(".#som(")&&usehref.endsWith(")")?somExpression=usehref.slice(".#som(".length,-1):usehref.startsWith("#")?id=usehref.slice(1):usehref.startsWith(".#")&&(id=usehref.slice(2)):use.startsWith("#")?id=use.slice(1):somExpression=use,this.use=this.usehref="",!(proto=id?ids.get(id):(proto=searchNode(ids.get($root),this,somExpression,!0,!1))&&proto[0]))return warn(`XFA - Invalid prototype reference: ${ref}.`),null;if(proto[$nodeName]!==this[$nodeName])return warn(`XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`),null;if(ancestors.has(proto))return warn("XFA - Cycle detected in prototypes use."),null;ancestors.add(proto);usehref=proto[_getPrototype](ids,ancestors);return usehref&&proto[_applyPrototype](usehref,ids,ancestors),proto[$resolvePrototypes](ids,ancestors),ancestors.delete(proto),proto}[_applyPrototype](proto,ids,ancestors){if(ancestors.has(proto))warn("XFA - Cycle detected in prototypes use.");else{!this[$content]&&proto[$content]&&(this[$content]=proto[$content]),new Set(ancestors).add(proto);for(const unsetAttrName of this[_getUnsetAttributes](proto[_setAttributes]))this[unsetAttrName]=proto[unsetAttrName],this[_setAttributes]&&this[_setAttributes].add(unsetAttrName);for(const name of Object.getOwnPropertyNames(this))if(!this[_attributeNames].has(name)){var value=this[name],protoValue=proto[name];if(value instanceof XFAObjectArray){for(const child of value[_children])child[_resolvePrototypesHelper](ids,ancestors);for(let i=value[_children].length,ii=protoValue[_children].length;iXFAObject[_cloneAttribute](x)):"object"==typeof obj&&null!==obj?Object.assign({},obj):obj}[$clone](){var value,clone=Object.create(Object.getPrototypeOf(this));for(const $symbol of Object.getOwnPropertySymbols(this))try{clone[$symbol]=this[$symbol]}catch{shadow(clone,$symbol,this[$symbol])}clone[$uid]=""+clone[$nodeName]+uid++,clone[_children]=[];for(const name of Object.getOwnPropertyNames(this))this[_attributeNames].has(name)?clone[name]=XFAObject[_cloneAttribute](this[name]):(value=this[name],clone[name]=value instanceof XFAObjectArray?new XFAObjectArray(value[_max]):null);for(const child of this[_children]){var name=child[$nodeName],clonedChild=child[$clone]();clone[_children].push(clonedChild),null===(clonedChild[_parent]=clone)[name]?clone[name]=clonedChild:clone[name][_children].push(clonedChild)}return clone}[$getChildren](name=null){return name?this[_children].filter(c=>c[$nodeName]===name):this[_children]}[$getChildrenByClass](name){return this[name]}[$getChildrenByName](name,allTransparent,first=!0){return Array.from(this[$getChildrenByNameIt](name,allTransparent,first))}*[$getChildrenByNameIt](name,allTransparent,first=!0){if("parent"===name)yield this[_parent];else{for(const child of this[_children])child[$nodeName]===name&&(yield child),child.name===name&&(yield child),(allTransparent||child[$isTransparent]())&&(yield*child[$getChildrenByNameIt](name,allTransparent,!1));first&&this[_attributeNames].has(name)&&(yield new XFAAttribute(this,name,this[name]))}}}class XFAObjectArray{constructor(max=1/0){this[_max]=max,this[_children]=[]}get isXFAObject(){return!1}get isXFAObjectArray(){return!0}push(child){return this[_children].length<=this[_max]?(this[_children].push(child),!0):(warn(`XFA - node "${child[$nodeName]}" accepts no more than ${this[_max]} children`),!1)}isEmpty(){return 0===this[_children].length}dump(){return 1===this[_children].length?this[_children][0][$dump]():this[_children].map(x=>x[$dump]())}[$clone](){var clone=new XFAObjectArray(this[_max]);return clone[_children]=this[_children].map(c=>c[$clone]()),clone}get children(){return this[_children]}clear(){this[_children].length=0}}class XFAAttribute{constructor(node,name,value){this[_parent]=node,this[$nodeName]=name,this[$content]=value,this[$consumed]=!1,this[$uid]="attribute"+uid++}[$getParent](){return this[_parent]}[$isDataValue](){return!0}[$getDataValue](){return this[$content].trim()}[$setValue](value){value=value.value||"",this[$content]=value.toString()}[$text](){return this[$content]}[$isDescendent](parent){return this[_parent]===parent||this[_parent][$isDescendent](parent)}}class XmlObject extends XFAObject{constructor(nsId,name,attributes={}){if(super(nsId,name),this[$content]="",this[_dataValue]=null,"#text"!==name){var attrName,value,map=new Map;this[_attributes]=map;for([attrName,value]of Object.entries(attributes))map.set(attrName,new XFAAttribute(this,attrName,value));attributes.hasOwnProperty($nsAttributes)&&void 0!==(nsId=attributes[$nsAttributes].xfa.dataNode)&&("dataGroup"===nsId?this[_dataValue]=!1:"dataValue"===nsId&&(this[_dataValue]=!0))}this[$consumed]=!1}[$toString](buf){var tagName=this[$nodeName];if("#text"===tagName)buf.push(encodeToXmlString(this[$content]));else{var name,value,tagName=utf8StringToString(tagName),prefix=this[$namespaceId]===NS_DATASETS?"xfa:":"";buf.push("<"+prefix+tagName);for([name,value]of this[_attributes].entries()){var utf8Name=utf8StringToString(name);buf.push(` ${utf8Name}="${encodeToXmlString(value[$content])}"`)}if(null!==this[_dataValue]&&(this[_dataValue]?buf.push(' xfa:dataNode="dataValue"'):buf.push(' xfa:dataNode="dataGroup"')),this[$content]||0!==this[_children].length){if(buf.push(">"),this[$content])"string"==typeof this[$content]?buf.push(encodeToXmlString(this[$content])):this[$content][$toString](buf);else for(const child of this[_children])child[$toString](buf);buf.push(``)}else buf.push("/>")}}[$onChild](child){var node;return this[$content]&&(node=new XmlObject(this[$namespaceId],"#text"),this[$appendChild](node),node[$content]=this[$content],this[$content]=""),this[$appendChild](child),!0}[$onText](str){this[$content]+=str}[$finalize](){var node;this[$content]&&0c[$nodeName]===name):this[_children]}[$getAttributes](){return this[_attributes]}[$getChildrenByClass](name){var value=this[_attributes].get(name);return void 0!==value?value:this[$getChildren](name)}*[$getChildrenByNameIt](name,allTransparent){var value=this[_attributes].get(name);value&&(yield value);for(const child of this[_children])child[$nodeName]===name&&(yield child),allTransparent&&(yield*child[$getChildrenByNameIt](name,allTransparent))}*[$getAttributeIt](name,skipConsumed){var value=this[_attributes].get(name);!value||skipConsumed&&value[$consumed]||(yield value);for(const child of this[_children])yield*child[$getAttributeIt](name,skipConsumed)}*[$getRealChildrenByNameIt](name,allTransparent,skipConsumed){for(const child of this[_children])child[$nodeName]!==name||skipConsumed&&child[$consumed]||(yield child),allTransparent&&(yield*child[$getRealChildrenByNameIt](name,allTransparent,skipConsumed))}[$isDataValue](){return null===this[_dataValue]?0===this[_children].length||this[_children][0][$namespaceId]===NamespaceIds.xhtml.id:this[_dataValue]}[$getDataValue](){return null!==this[_dataValue]||0===this[_children].length?this[$content].trim():this[_children][0][$namespaceId]===NamespaceIds.xhtml.id?this[_children][0][$text]().trim():null}[$setValue](value){value=value.value||"",this[$content]=value.toString()}[$dump](hasNS=!1){var name,value,dumped=Object.create(null);hasNS&&(dumped.$ns=this[$namespaceId]),this[$content]&&(dumped.$content=this[$content]),dumped.$name=this[$nodeName],dumped.children=[];for(const child of this[_children])dumped.children.push(child[$dump](hasNS));dumped.attributes=Object.create(null);for([name,value]of this[_attributes])dumped.attributes[name]=value[$content];return dumped}}class ContentObject extends XFAObject{constructor(nsId,name){super(nsId,name),this[$content]=""}[$onText](text){this[$content]+=text}[$finalize](){}}class OptionObject extends ContentObject{constructor(nsId,name,options){super(nsId,name),this[_options]=options}[$finalize](){this[$content]=getKeyword({data:this[$content],defaultValue:this[_options][0],validate:k=>this[_options].includes(k)})}[$clean](builder){super[$clean](builder),delete this[_options]}}class StringObject extends ContentObject{[$finalize](){this[$content]=this[$content].trim()}}class IntegerObject extends ContentObject{constructor(nsId,name,defaultValue,validator){super(nsId,name),this[_defaultValue]=defaultValue,this[_validator]=validator}[$finalize](){this[$content]=getInteger({data:this[$content],defaultValue:this[_defaultValue],validate:this[_validator]})}[$clean](builder){super[$clean](builder),delete this[_defaultValue],delete this[_validator]}}class Option01 extends IntegerObject{constructor(nsId,name){super(nsId,name,0,n=>1===n)}}class Option10 extends IntegerObject{constructor(nsId,name){super(nsId,name,1,n=>0===n)}}function measureToString(m){return"string"==typeof m?"0px":Number.isInteger(m)?m+"px":m.toFixed(2)+"px"}const converters={anchorType(node,style){var parent=node[$getSubformParent]();if(parent&&(!parent.layout||"position"===parent.layout))switch("transform"in style||(style.transform=""),node.anchorType){case"bottomCenter":style.transform+="translate(-50%, -100%)";break;case"bottomLeft":style.transform+="translate(0,-100%)";break;case"bottomRight":style.transform+="translate(-100%,-100%)";break;case"middleCenter":style.transform+="translate(-50%,-50%)";break;case"middleLeft":style.transform+="translate(0,-50%)";break;case"middleRight":style.transform+="translate(-100%,-50%)";break;case"topCenter":style.transform+="translate(-50%,0)";break;case"topRight":style.transform+="translate(-100%,0)"}},dimensions(node,style){var parent=node[$getSubformParent]();let width=node.w;var height=node.h;if(parent.layout?.includes("row")){var parent=parent[$extra],colSpan=node.colSpan;let w;-1===colSpan?(w=parent.columnWidths.slice(parent.currentColumn).reduce((a,x)=>a+x,0),parent.currentColumn=0):(w=parent.columnWidths.slice(parent.currentColumn,parent.currentColumn+colSpan).reduce((a,x)=>a+x,0),parent.currentColumn=(parent.currentColumn+node.colSpan)%parent.columnWidths.length),isNaN(w)||(width=node.w=w)}style.width=""!==width?measureToString(width):"auto",style.height=""!==height?measureToString(height):"auto"},position(node,style){var parent=node[$getSubformParent]();parent?.layout&&"position"!==parent.layout||(style.position="absolute",style.left=measureToString(node.x),style.top=measureToString(node.y))},rotate(node,style){node.rotate&&("transform"in style||(style.transform=""),style.transform+=`rotate(-${node.rotate}deg)`,style.transformOrigin="top left")},presence(node,style){switch(node.presence){case"invisible":style.visibility="hidden";break;case"hidden":case"inactive":style.display="none"}},hAlign(node,style){if("para"===node[$nodeName])switch(node.hAlign){case"justifyAll":style.textAlign="justify-all";break;case"radix":style.textAlign="left";break;default:style.textAlign=node.hAlign}else switch(node.hAlign){case"left":style.alignSelf="start";break;case"center":style.alignSelf="center";break;case"right":style.alignSelf="end"}},margin(node,style){node.margin&&(style.margin=node.margin[$toStyle]().margin)}};function setMinMaxDimensions(node,style){"position"===node[$getSubformParent]().layout&&(0a+w,0):extra.columnWidths.slice(extra.currentColumn,extra.currentColumn+colSpan).reduce((a,w)=>a+w,0),isNaN(width)||(node.w=width)}parent.layout&&"position"!==parent.layout&&(node.x=node.y=0),"table"===node.layout&&""===node.w&&Array.isArray(node.columnWidths)&&(node.w=node.columnWidths.reduce((a,x)=>a+x,0))}function layoutClass(node){switch(node.layout){case"position":return"xfaPosition";case"lr-tb":return"xfaLrTb";case"rl-row":return"xfaRlRow";case"rl-tb":return"xfaRlTb";case"row":return"xfaRow";case"table":return"xfaTable";case"tb":return"xfaTb";default:return"xfaPosition"}}function toStyle(node,...names){var style=Object.create(null);for(const name of names){var value=node[name];null!==value&&(converters.hasOwnProperty(name)?converters[name](node,style):value instanceof XFAObject&&((value=value[$toStyle]())?Object.assign(style,value):warn(`(DEBUG) - XFA - style for ${name} not implemented yet`)))}return style}function createWrapper(node,html){var attributes=html["attributes"],style=attributes["style"],wrapper={name:"div",attributes:{class:["xfaWrapper"],style:Object.create(null)},children:[]};if(attributes.class.push("xfaWrapped"),node.border){var{widths,insets:attributes}=node.border[$extra];let width,height,top=attributes[0],left=attributes[3];var insetsH=attributes[0]+attributes[2],insetsW=attributes[1]+attributes[3];switch(node.border.hand){case"even":top-=widths[0]/2,left-=widths[3]/2,width=`calc(100% + ${(widths[1]+widths[3])/2-insetsW}px)`,height=`calc(100% + ${(widths[0]+widths[2])/2-insetsH}px)`;break;case"left":top-=widths[0],left-=widths[3],width=`calc(100% + ${widths[1]+widths[3]-insetsW}px)`,height=`calc(100% + ${widths[0]+widths[2]-insetsH}px)`;break;case"right":width=insetsW?`calc(100% - ${insetsW}px)`:"100%",height=insetsH?`calc(100% - ${insetsH}px)`:"100%"}var attributes=["xfaBorder"],border=(isPrintOnly(node.border)&&attributes.push("xfaPrintOnly"),{name:"div",attributes:{class:attributes,style:{top:top+"px",left:left+"px",width:width,height:height}},children:[]});for(const key of["border","borderWidth","borderColor","borderRadius","borderStyle"])void 0!==style[key]&&(border.attributes.style[key]=style[key],delete style[key]);wrapper.children.push(border,html)}else wrapper.children.push(html);for(const key of["background","backgroundClip","top","left","width","height","minWidth","minHeight","maxWidth","maxHeight","transform","transformOrigin","visibility"])void 0!==style[key]&&(wrapper.attributes.style[key]=style[key],delete style[key]);return wrapper.attributes.style.position="absolute"===style.position?"absolute":"relative",delete style.position,style.alignSelf&&(wrapper.attributes.style.alignSelf=style.alignSelf,delete style.alignSelf),wrapper}function fixTextIndent(styles){var name,padding,indent=getMeasurement(styles.textIndent,"0px");0<=indent||(padding=getMeasurement(styles[name="padding"+("left"==("right"===styles.textAlign?"right":"left")?"Left":"Right")],"0px"),styles[name]=padding-indent+"px")}function setAccess(node,classNames){switch(node.access){case"nonInteractive":classNames.push("xfaNonInteractive");break;case"readOnly":classNames.push("xfaReadOnly");break;case"protected":classNames.push("xfaDisabled")}}function isPrintOnly(node){return 0a+x),height:availableSpace.height-marginH};case"table":case"tb":return{width:availableSpace.width-marginH,height:availableSpace.height-marginV-node[$extra].height};default:return availableSpace}}function getTransformedBBox(node){let w=""===node.w?NaN:node.w,h=""===node.h?NaN:node.h,[centerX,centerY]=[0,0];switch(node.anchorType||""){case"bottomCenter":[centerX,centerY]=[w/2,h];break;case"bottomLeft":[centerX,centerY]=[0,h];break;case"bottomRight":[centerX,centerY]=[w,h];break;case"middleCenter":[centerX,centerY]=[w/2,h/2];break;case"middleLeft":[centerX,centerY]=[0,h/2];break;case"middleRight":[centerX,centerY]=[w,h/2];break;case"topCenter":[centerX,centerY]=[w/2,0];break;case"topRight":[centerX,centerY]=[w,0]}let x,y;switch(node.rotate||0){case 0:[x,y]=[-centerX,-centerY];break;case 90:[x,y]=[-centerY,centerX],[w,h]=[h,-w];break;case 180:[x,y]=[centerX,centerY],[w,h]=[-w,-h];break;case 270:[x,y]=[centerY,-centerX],[w,h]=[-h,w]}return[node.x+x+Math.min(0,w),node.y+y+Math.min(0,h),Math.abs(w),Math.abs(h)]}function checkDimensions(node,space){if(null===node[$getTemplateRoot]()[$extra].firstUnsplittable)return!0;if(0===node.w||0===node.h)return!0;var parent=node[$getSubformParent](),attempt=parent[$extra]?.attempt||0,[,y,w,h]=getTransformedBBox(node);switch(parent.layout){case"lr-tb":case"rl-tb":return 0===attempt?node[$getTemplateRoot]()[$extra].noLayoutFailure?""!==node.w?Math.round(w-space.width)<=2:2node[$getTemplateRoot]()[$extra].currentContentArea.h;case"rl-row":case"row":return node[$getTemplateRoot]()[$extra].noLayoutFailure?!0:""===node.h||Math.round(h-space.height)<=2;default:return!0}}const TEMPLATE_NS_ID=NamespaceIds.template.id,SVG_NS="http://www.w3.org/2000/svg",MAX_ATTEMPTS_FOR_LRTB_LAYOUT=2,MAX_EMPTY_PAGES=3,DEFAULT_TAB_INDEX=5e3,HEADING_PATTERN=/^H(\d+)$/,MIMES=new Set(["image/gif","image/jpeg","image/jpg","image/pjpeg","image/png","image/apng","image/x-png","image/bmp","image/x-ms-bmp","image/tiff","image/tif","application/octet-stream"]),IMAGES_HEADERS=[[[66,77],"image/bmp"],[[255,216,255],"image/jpeg"],[[73,73,42,0],"image/tiff"],[[77,77,0,42],"image/tiff"],[[71,73,70,56,57,97],"image/gif"],[[137,80,78,71,13,10,26,10],"image/png"]];function getBorderDims(node){return node&&node.border&&(node=node.border[$getExtra]())?{w:node.widths[0]+node.widths[2]+node.insets[0]+node.insets[2],h:node.widths[1]+node.widths[3]+node.insets[1]+node.insets[3]}:{w:0,h:0}}function hasMargin(node){return node.margin&&(node.margin.topInset||node.margin.rightInset||node.margin.bottomInset||node.margin.leftInset)}function _setValue(templateNode,value){var nodeValue;templateNode.value||(nodeValue=new Value({}),templateNode[$appendChild](nodeValue),templateNode.value=nodeValue),templateNode.value[$setValue](value)}function*getContainedChildren(node){for(const child of node[$getChildren]())child instanceof SubformSet?yield*child[$getContainedChildren]():yield child}function isRequired(node){return"error"===node.validate?.nullTest}function setTabIndex(node){for(;node;){if(!node.traversal)return void(node[$tabIndex]=node[$getParent]()[$tabIndex]);if(node[$tabIndex])return;let next=null;for(const child of node.traversal[$getChildren]())if("next"===child.operation){next=child;break}if(!next||!next.ref)return void(node[$tabIndex]=node[$getParent]()[$tabIndex]);var root=node[$getTemplateRoot](),root=(node[$tabIndex]=++root[$tabIndex],root[$searchNode](next.ref,node));if(!root)return;node=root[0]}}function applyAssist(obj,attributes){var assistTitle,assist=obj.assist;assist&&((assistTitle=assist[$toHTML]())&&(attributes.title=assistTitle),assistTitle=assist.role.match(HEADING_PATTERN))&&(assist=assistTitle[1],attributes.role="heading",attributes["aria-level"]=assist),"table"===obj.layout?attributes.role="table":"row"===obj.layout?attributes.role="row":"row"===(assistTitle=obj[$getParent]()).layout&&(attributes.role="TH"===assistTitle.assist?.role?"columnheader":"cell")}function ariaLabel(obj){return obj.assist?(obj=obj.assist).speak&&""!==obj.speak[$content]?obj.speak[$content]:obj.toolTip?obj.toolTip[$content]:null:null}function valueToHtml(value){return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:Object.create(null)},children:[{name:"span",attributes:{style:Object.create(null)},value:value}]})}function setFirstUnsplittable(node){var root=node[$getTemplateRoot]();null===root[$extra].firstUnsplittable&&(root[$extra].firstUnsplittable=node,root[$extra].noLayoutFailure=!0)}function unsetFirstUnsplittable(node){var root=node[$getTemplateRoot]();root[$extra].firstUnsplittable===node&&(root[$extra].noLayoutFailure=!1)}function handleBreak(node){if(node[$extra])return!1;if(node[$extra]=Object.create(null),"auto"===node.targetType)return!1;var root=node[$getTemplateRoot]();let target=null;if(node.target){if(!(target=root[$searchNode](node.target,node[$getParent]())))return!1;target=target[0]}var{currentPageArea:root,currentContentArea}=root[$extra];if("pageArea"===node.targetType)return target instanceof PageArea||(target=null),node.startNew?(node[$extra].target=target||root,!0):!(!target||target===root||(node[$extra].target=target,0));var indexForCurrent,contentAreas,pageArea=(target=target instanceof ContentArea?target:null)&&target[$getParent]();let index,nextPageArea=pageArea;if(node.startNew)index=target?(indexForCurrent=(contentAreas=pageArea.contentArea.children).indexOf(currentContentArea),contentAreas=contentAreas.indexOf(target),-1!==indexForCurrent&&indexForCurrentnode,root[$extra].noLayoutFailure=!0,extraNode[$toHTML](space));node[$addHTML](space.html,space.bbox),root[$extra].noLayoutFailure=saved,extraNode[$getSubformParent]=savedMethod}class AppearanceFilter extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"appearanceFilter"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Arc extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"arc",!0),this.circular=getInteger({data:attributes.circular,defaultValue:0,validate:x=>1===x}),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.startAngle=getFloat({data:attributes.startAngle,defaultValue:0,validate:x=>!0}),this.sweepAngle=getFloat({data:attributes.sweepAngle,defaultValue:360,validate:x=>!0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.edge=null,this.fill=null}[$toHTML](){var edge=this.edge||new Edge({}),edgeStyle=edge[$toStyle](),style=Object.create(null);"visible"===this.fill?.presence?Object.assign(style,this.fill[$toStyle]()):style.fill="transparent",style.strokeWidth=measureToString("visible"===edge.presence?edge.thickness:0),style.stroke=edgeStyle.color;let arc;var largeArc,sweepAngle,x2,y2,edge={xmlns:SVG_NS,style:{width:"100%",height:"100%",overflow:"visible"}},edgeStyle=(360===this.sweepAngle?arc={name:"ellipse",attributes:{xmlns:SVG_NS,cx:"50%",cy:"50%",rx:"50%",ry:"50%",style:style}}:(edgeStyle=this.startAngle*Math.PI/180,sweepAngle=this.sweepAngle*Math.PI/180,largeArc=1801<=n||-1===n}),this.id=attributes.id||"",this.name=attributes.name||"",this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.desc=null,this.extras=null,this.area=new XFAObjectArray,this.draw=new XFAObjectArray,this.exObject=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.subform=new XFAObjectArray,this.subformSet=new XFAObjectArray}*[$getContainedChildren](){yield*getContainedChildren(this)}[$isTransparent](){return!0}[$isBindable](){return!0}[$addHTML](html,bbox){var[bbox,y,w,h]=bbox;this[$extra].width=Math.max(this[$extra].width,bbox+w),this[$extra].height=Math.max(this[$extra].height,y+h),this[$extra].children.push(html)}[$getAvailableSpace](){return this[$extra].availableSpace}[$toHTML](availableSpace){var style=toStyle(this,"position"),attributes={style:style,id:this[$uid],class:["xfaArea"]},children=(isPrintOnly(this)&&attributes.class.push("xfaPrintOnly"),this.name&&(attributes.xfaName=this.name),[]),availableSpace=(this[$extra]={children:children,width:0,height:0,availableSpace:availableSpace},this[$childrenToHTML]({filter:new Set(["area","draw","field","exclGroup","subform","subformSet"]),include:!0}));if(!availableSpace.success)return availableSpace.isBreak()?availableSpace:(delete this[$extra],HTMLResult.FAILURE);style.width=measureToString(this[$extra].width),style.height=measureToString(this[$extra].height);availableSpace={name:"div",attributes:attributes,children:children},style=[this.x,this.y,this[$extra].width,this[$extra].height];return delete this[$extra],HTMLResult.success(availableSpace,style)}}class Assist extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"assist",!0),this.id=attributes.id||"",this.role=attributes.role||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.speak=null,this.toolTip=null}[$toHTML](){return this.toolTip?.[$content]||null}}class Barcode extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"barcode",!0),this.charEncoding=getKeyword({data:attributes.charEncoding?attributes.charEncoding.toLowerCase():"",defaultValue:"",validate:k=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(k)||k.match(/iso-8859-\d{2}/)}),this.checksum=getStringOption(attributes.checksum,["none","1mod10","1mod10_1mod11","2mod10","auto"]),this.dataColumnCount=getInteger({data:attributes.dataColumnCount,defaultValue:-1,validate:x=>0<=x}),this.dataLength=getInteger({data:attributes.dataLength,defaultValue:-1,validate:x=>0<=x}),this.dataPrep=getStringOption(attributes.dataPrep,["none","flateCompress"]),this.dataRowCount=getInteger({data:attributes.dataRowCount,defaultValue:-1,validate:x=>0<=x}),this.endChar=attributes.endChar||"",this.errorCorrectionLevel=getInteger({data:attributes.errorCorrectionLevel,defaultValue:-1,validate:x=>0<=x&&x<=8}),this.id=attributes.id||"",this.moduleHeight=getMeasurement(attributes.moduleHeight,"5mm"),this.moduleWidth=getMeasurement(attributes.moduleWidth,"0.25mm"),this.printCheckDigit=getInteger({data:attributes.printCheckDigit,defaultValue:0,validate:x=>1===x}),this.rowColumnRatio=getRatio(attributes.rowColumnRatio),this.startChar=attributes.startChar||"",this.textLocation=getStringOption(attributes.textLocation,["below","above","aboveEmbedded","belowEmbedded","none"]),this.truncate=getInteger({data:attributes.truncate,defaultValue:0,validate:x=>1===x}),this.type=getStringOption(attributes.type?attributes.type.toLowerCase():"",["aztec","codabar","code2of5industrial","code2of5interleaved","code2of5matrix","code2of5standard","code3of9","code3of9extended","code11","code49","code93","code128","code128a","code128b","code128c","code128sscc","datamatrix","ean8","ean8add2","ean8add5","ean13","ean13add2","ean13add5","ean13pwcd","fim","logmars","maxicode","msi","pdf417","pdf417macro","plessey","postauscust2","postauscust3","postausreplypaid","postausstandard","postukrm4scc","postusdpbc","postusimb","postusstandard","postus5zip","qrcode","rfid","rss14","rss14expanded","rss14limited","rss14stacked","rss14stackedomni","rss14truncated","telepen","ucc128","ucc128random","ucc128sscc","upca","upcaadd2","upcaadd5","upcapwcd","upce","upceadd2","upceadd5","upcean2","upcean5","upsmaxicode"]),this.upsMode=getStringOption(attributes.upsMode,["usCarrier","internationalCarrier","secureSymbol","standardSymbol"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.wideNarrowRatio=getRatio(attributes.wideNarrowRatio),this.encrypt=null,this.extras=null}}class Bind extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bind",!0),this.match=getStringOption(attributes.match,["once","dataRef","global","none"]),this.ref=attributes.ref||"",this.picture=null}}class BindItems extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bindItems"),this.connection=attributes.connection||"",this.labelRef=attributes.labelRef||"",this.ref=attributes.ref||"",this.valueRef=attributes.valueRef||""}}class Bookend extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"bookend"),this.id=attributes.id||"",this.leader=attributes.leader||"",this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class BooleanElement extends Option01{constructor(attributes){super(TEMPLATE_NS_ID,"boolean"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$toHTML](availableSpace){return valueToHtml(1===this[$content]?"1":"0")}}class Border extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"border",!0),this.break=getStringOption(attributes.break,["close","open"]),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.corner=new XFAObjectArray(4),this.edge=new XFAObjectArray(4),this.extras=null,this.fill=null,this.margin=null}[$getExtra](){if(!this[$extra]){var edges=this.edge.children.slice();if(edges.length<4){var defaultEdge=edges.at(-1)||new Edge({});for(let i=edges.length;i<4;i++)edges.push(defaultEdge)}var widths=edges.map(edge=>edge.thickness),insets=[0,0,0,0];this.margin&&(insets[0]=this.margin.topInset,insets[1]=this.margin.rightInset,insets[2]=this.margin.bottomInset,insets[3]=this.margin.leftInset),this[$extra]={widths:widths,insets:insets,edges:edges}}return this[$extra]}[$toStyle](){var edges=this[$getExtra]()["edges"],edgeStyles=edges.map(node=>{node=node[$toStyle]();return node.color||="#000000",node}),style=Object.create(null);if(this.margin&&Object.assign(style,this.margin[$toStyle]()),"visible"===this.fill?.presence&&Object.assign(style,this.fill[$toStyle]()),this.corner.children.some(node=>0!==node.radius)){var cornerStyles=this.corner.children.map(node=>node[$toStyle]());if(2===cornerStyles.length||3===cornerStyles.length){var last=cornerStyles.at(-1);for(let i=cornerStyles.length;i<4;i++)cornerStyles.push(last)}style.borderRadius=cornerStyles.map(s=>s.radius).join(" ")}switch(this.presence){case"invisible":case"hidden":style.borderStyle="";break;case"inactive":style.borderStyle="none";break;default:style.borderStyle=edgeStyles.map(s=>s.style).join(" ")}return style.borderWidth=edgeStyles.map(s=>s.width).join(" "),style.borderColor=edgeStyles.map(s=>s.color).join(" "),style}}class Break extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"break",!0),this.after=getStringOption(attributes.after,["auto","contentArea","pageArea","pageEven","pageOdd"]),this.afterTarget=attributes.afterTarget||"",this.before=getStringOption(attributes.before,["auto","contentArea","pageArea","pageEven","pageOdd"]),this.beforeTarget=attributes.beforeTarget||"",this.bookendLeader=attributes.bookendLeader||"",this.bookendTrailer=attributes.bookendTrailer||"",this.id=attributes.id||"",this.overflowLeader=attributes.overflowLeader||"",this.overflowTarget=attributes.overflowTarget||"",this.overflowTrailer=attributes.overflowTrailer||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class BreakAfter extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"breakAfter",!0),this.id=attributes.id||"",this.leader=attributes.leader||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.target=attributes.target||"",this.targetType=getStringOption(attributes.targetType,["auto","contentArea","pageArea"]),this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.script=null}}class BreakBefore extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"breakBefore",!0),this.id=attributes.id||"",this.leader=attributes.leader||"",this.startNew=getInteger({data:attributes.startNew,defaultValue:0,validate:x=>1===x}),this.target=attributes.target||"",this.targetType=getStringOption(attributes.targetType,["auto","contentArea","pageArea"]),this.trailer=attributes.trailer||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.script=null}[$toHTML](availableSpace){return this[$extra]={},HTMLResult.FAILURE}}class Button extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"button",!0),this.highlight=getStringOption(attributes.highlight,["inverted","none","outline","push"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$toHTML](availableSpace){var jsURL,href,grandpa=this[$getParent]()[$getParent](),htmlButton={name:"button",attributes:{id:this[$uid],class:["xfaButton"],style:{}},children:[]};for(const event of grandpa.event.children)"click"===event.activity&&event.script&&(jsURL=recoverJsURL(event.script[$content]))&&(href=fixURL(jsURL.url))&&htmlButton.children.push({name:"a",attributes:{id:"link"+this[$uid],href:href,newWindow:jsURL.newWindow,class:["xfaLink"],style:{}},children:[]});return HTMLResult.success(htmlButton)}}class Calculate extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"calculate",!0),this.id=attributes.id||"",this.override=getStringOption(attributes.override,["disabled","error","ignore","warning"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.message=null,this.script=null}}class Caption extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"caption",!0),this.id=attributes.id||"",this.placement=getStringOption(attributes.placement,["left","bottom","inline","right","top"]),this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.reserve=Math.ceil(getMeasurement(attributes.reserve)),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.font=null,this.margin=null,this.para=null,this.value=null}[$setValue](value){_setValue(this,value)}[$getExtra](availableSpace){if(!this[$extra]){let{width,height}=availableSpace;switch(this.placement){case"left":case"right":case"inline":width=this.reserve<=0?width:this.reserve;break;case"top":case"bottom":height=this.reserve<=0?height:this.reserve}this[$extra]=layoutNode(this,{width:width,height:height})}return this[$extra]}[$toHTML](availableSpace){if(!this.value)return HTMLResult.EMPTY;this[$pushPara]();var value=this.value[$toHTML](availableSpace).html;if(!value)return this[$popPara](),HTMLResult.EMPTY;var savedReserve=this.reserve;if(this.reserve<=0){var{w,h}=this[$getExtra](availableSpace);switch(this.placement){case"left":case"right":case"inline":this.reserve=w;break;case"top":case"bottom":this.reserve=h}}var availableSpace=[],style=(availableSpace.push("string"==typeof value?{name:"#text",value:value}:value),toStyle(this,"font","margin","visibility"));switch(this.placement){case"left":case"right":01===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","margin"),field=this[$getParent]()[$getParent](),optionStyle={fontSize:`calc(${field.font?.size||10}px * var(--scale-factor))`},children=[];if(00<=x}),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Connect extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"connect",!0),this.connection=attributes.connection||"",this.id=attributes.id||"",this.ref=attributes.ref||"",this.usage=getStringOption(attributes.usage,["exportAndImport","exportOnly","importOnly"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.picture=null}}class ContentArea extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"contentArea",!0),this.h=getMeasurement(attributes.h),this.id=attributes.id||"",this.name=attributes.name||"",this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=getMeasurement(attributes.w),this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.desc=null,this.extras=null}[$toHTML](availableSpace){var style={left:measureToString(this.x),top:measureToString(this.y),width:measureToString(this.w),height:measureToString(this.h)},classNames=["xfaContentarea"];return isPrintOnly(this)&&classNames.push("xfaPrintOnly"),HTMLResult.success({name:"div",children:[],attributes:{style:style,class:classNames,id:this[$uid]}})}}class Corner extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"corner",!0),this.id=attributes.id||"",this.inverted=getInteger({data:attributes.inverted,defaultValue:0,validate:x=>1===x}),this.join=getStringOption(attributes.join,["square","round"]),this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.radius=getMeasurement(attributes.radius),this.stroke=getStringOption(attributes.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]),this.thickness=getMeasurement(attributes.thickness,"0.5pt"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](){var style=toStyle(this,"visibility");return style.radius=measureToString("square"===this.join?0:this.radius),style}}class DateElement extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"date"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class DateTime extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"dateTime"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class DateTimeEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"dateTimeEdit",!0),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.picker=getStringOption(attributes.picker,["host","none"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","font","margin"),field=this[$getParent]()[$getParent](),style={name:"input",attributes:{type:"text",fieldId:field[$uid],dataId:field[$data]?.[$uid]||field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}};return isRequired(field)&&(style.attributes["aria-required"]=!0,style.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[style]})}}class Decimal extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"decimal"),this.fracDigits=getInteger({data:attributes.fracDigits,defaultValue:2,validate:x=>!0}),this.id=attributes.id||"",this.leadDigits=getInteger({data:attributes.leadDigits,defaultValue:-1,validate:x=>!0}),this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseFloat(this[$content].trim());this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class DefaultUi extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"defaultUi",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class Desc extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"desc",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}}class DigestMethod extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"digestMethod",["","SHA1","SHA256","SHA512","RIPEMD160"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class DigestMethods extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"digestMethods",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.digestMethod=new XFAObjectArray}}class Draw extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"draw",!0),this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.rotate=getInteger({data:attributes.rotate,defaultValue:0,validate:x=>x%90==0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.border=null,this.caption=null,this.desc=null,this.extras=null,this.font=null,this.keep=null,this.margin=null,this.para=null,this.traversal=null,this.ui=null,this.value=null,this.setProperty=new XFAObjectArray}[$setValue](value){_setValue(this,value)}[$toHTML](availableSpace){if(setTabIndex(this),"hidden"===this.presence||"inactive"===this.presence)return HTMLResult.EMPTY;fixDimensions(this),this[$pushPara]();var savedW=this.w,savedH=this.h,{w,h,isBroken}=layoutNode(this,availableSpace);if(w&&""===this.w){if(isBroken&&this[$getSubformParent]()[$isThereMoreWidth]())return this[$popPara](),HTMLResult.FAILURE;this.w=w}if(h&&""===this.h&&(this.h=h),setFirstUnsplittable(this),!checkDimensions(this,availableSpace))return this.w=savedW,this.h=savedH,this[$popPara](),HTMLResult.FAILURE;unsetFirstUnsplittable(this);isBroken=toStyle(this,"font","hAlign","dimensions","position","presence","rotate","anchorType","border","margin"),setMinMaxDimensions(this,isBroken),isBroken.margin&&(isBroken.padding=isBroken.margin,delete isBroken.margin),w=["xfaDraw"],this.font&&w.push("xfaFont"),isPrintOnly(this)&&w.push("xfaPrintOnly"),h={style:isBroken,id:this[$uid],class:w},this.name&&(h.xfaName=this.name),w={name:"div",attributes:h,children:[]},applyAssist(this,h),h=computeBbox(this,w,availableSpace),availableSpace=this.value?this.value[$toHTML](availableSpace).html:null;return null===availableSpace?(this.w=savedW,this.h=savedH,this[$popPara]()):(w.children.push(availableSpace),setPara(this,isBroken,availableSpace),this.w=savedW,this.h=savedH,this[$popPara]()),HTMLResult.success(createWrapper(this,w),h)}}class Edge extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"edge",!0),this.cap=getStringOption(attributes.cap,["square","butt","round"]),this.id=attributes.id||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.stroke=getStringOption(attributes.stroke,["solid","dashDot","dashDotDot","dashed","dotted","embossed","etched","lowered","raised"]),this.thickness=getMeasurement(attributes.thickness,"0.5pt"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](){var style=toStyle(this,"visibility");if(Object.assign(style,{linecap:this.cap,width:measureToString(this.thickness),color:this.color?this.color[$toStyle]():"#000000",style:""}),"visible"!==this.presence)style.style="none";else switch(this.stroke){case"solid":style.style="solid";break;case"dashDot":case"dashDotDot":case"dashed":style.style="dashed";break;case"dotted":style.style="dotted";break;case"embossed":style.style="ridge";break;case"etched":style.style="groove";break;case"lowered":style.style="inset";break;case"raised":style.style="outset"}return style}}class Encoding extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"encoding",["adbe.x509.rsa_sha1","adbe.pkcs7.detached","adbe.pkcs7.sha1"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Encodings extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encodings",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.encoding=new XFAObjectArray}}class Encrypt extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encrypt",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=null}}class EncryptData extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptData",!0),this.id=attributes.id||"",this.operation=getStringOption(attributes.operation,["encrypt","decrypt"]),this.target=attributes.target||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.filter=null,this.manifest=null}}class Encryption extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryption",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=new XFAObjectArray}}class EncryptionMethod extends OptionObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptionMethod",["","AES256-CBC","TRIPLEDES-CBC","AES128-CBC","AES192-CBC"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class EncryptionMethods extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"encryptionMethods",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.encryptionMethod=new XFAObjectArray}}class Event extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"event",!0),this.activity=getStringOption(attributes.activity,["click","change","docClose","docReady","enter","exit","full","indexChange","initialize","mouseDown","mouseEnter","mouseExit","mouseUp","postExecute","postOpen","postPrint","postSave","postSign","postSubmit","preExecute","preOpen","prePrint","preSave","preSign","preSubmit","ready","validationState"]),this.id=attributes.id||"",this.listen=getStringOption(attributes.listen,["refOnly","refAndDescendents"]),this.name=attributes.name||"",this.ref=attributes.ref||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.encryptData=null,this.execute=null,this.script=null,this.signData=null,this.submit=null}}class ExData extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"exData"),this.contentType=attributes.contentType||"",this.href=attributes.href||"",this.id=attributes.id||"",this.maxLength=getInteger({data:attributes.maxLength,defaultValue:-1,validate:x=>-1<=x}),this.name=attributes.name||"",this.rid=attributes.rid||"",this.transferEncoding=getStringOption(attributes.transferEncoding,["none","base64","package"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$isCDATAXml](){return"text/html"===this.contentType}[$onChild](child){return("text/html"===this.contentType&&child[$namespaceId]===NamespaceIds.xhtml.id||"text/xml"===this.contentType)&&(this[$content]=child,!0)}[$toHTML](availableSpace){return"text/html"===this.contentType&&this[$content]?this[$content][$toHTML](availableSpace):HTMLResult.EMPTY}}class ExObject extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"exObject",!0),this.archive=attributes.archive||"",this.classId=attributes.classId||"",this.codeBase=attributes.codeBase||"",this.codeType=attributes.codeType||"",this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.exObject=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}}class ExclGroup extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"exclGroup",!0),this.access=getStringOption(attributes.access,["open","nonInteractive","protected","readOnly"]),this.accessKey=attributes.accessKey||"",this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.layout=getStringOption(attributes.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]),this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.border=null,this.calculate=null,this.caption=null,this.desc=null,this.extras=null,this.margin=null,this.para=null,this.traversal=null,this.validate=null,this.connect=new XFAObjectArray,this.event=new XFAObjectArray,this.field=new XFAObjectArray,this.setProperty=new XFAObjectArray}[$isBindable](){return!0}[$hasSettableValue](){return!0}[$setValue](value){for(const field of this.field.children){var nodeValue;field.value||(nodeValue=new Value({}),field[$appendChild](nodeValue),field.value=nodeValue),field.value[$setValue](value)}}[$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[$extra].attempt&&01<=n||-1===n}),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.rotate=getInteger({data:attributes.rotate,defaultValue:0,validate:x=>x%90==0}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.border=null,this.calculate=null,this.caption=null,this.desc=null,this.extras=null,this.font=null,this.format=null,this.items=new XFAObjectArray(2),this.keep=null,this.margin=null,this.para=null,this.traversal=null,this.ui=null,this.validate=null,this.value=null,this.bindItems=new XFAObjectArray,this.connect=new XFAObjectArray,this.event=new XFAObjectArray,this.setProperty=new XFAObjectArray}[$isBindable](){return!0}[$setValue](value){_setValue(this,value)}[$toHTML](availableSpace){if(setTabIndex(this),!this.ui){this.ui=new Ui({}),this.ui[$globalData]=this[$globalData],this[$appendChild](this.ui);let node;switch(this.items.children.length){case 0:node=new TextEdit({}),this.ui.textEdit=node;break;case 1:node=new CheckButton({}),this.ui.checkButton=node;break;case 2:node=new ChoiceList({}),this.ui.choiceList=node}this.ui[$appendChild](node)}if(!this.ui||"hidden"===this.presence||"inactive"===this.presence||0===this.h||0===this.w)return HTMLResult.EMPTY;this.caption&&delete this.caption[$extra],this[$pushPara]();var caption=this.caption?this.caption[$toHTML](availableSpace).html:null,savedW=this.w,savedH=this.h;let marginH=0,marginV=0,borderDims=(this.margin&&(marginH=this.margin.leftInset+this.margin.rightInset,marginV=this.margin.topInset+this.margin.bottomInset),null);if(""===this.w||""===this.h){let width=null,height=null,uiW=0,uiH=0;if(this.ui.checkButton?uiW=uiH=this.ui.checkButton.size:({w,h}=layoutNode(this,availableSpace),uiH=null!==w?(uiW=w,h):fonts_getMetrics(this.font,!0).lineNoGap),borderDims=getBorderDims(this.ui[$getExtra]()),uiW+=borderDims.w,uiH+=borderDims.h,this.caption){const{w,h,isBroken}=this.caption[$getExtra](availableSpace);if(isBroken&&this[$getSubformParent]()[$isThereMoreWidth]())return this[$popPara](),HTMLResult.FAILURE;switch(width=w,height=h,this.caption.placement){case"left":case"right":case"inline":width+=uiW;break;case"top":case"bottom":height+=uiH}}else width=uiW,height=uiH;width&&""===this.w&&(width+=marginH,this.w=Math.min(this.maxW<=0?1/0:this.maxW,this.minW+11<=x&&x<=5}),this.appearanceFilter=null,this.certificates=null,this.digestMethods=null,this.encodings=null,this.encryptionMethods=null,this.handler=null,this.lockDocument=null,this.mdp=null,this.reasons=null,this.timeStamp=null}}class Float extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"float"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseFloat(this[$content].trim());this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class template_Font extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"font",!0),this.baselineShift=getMeasurement(attributes.baselineShift),this.fontHorizontalScale=getFloat({data:attributes.fontHorizontalScale,defaultValue:100,validate:x=>0<=x}),this.fontVerticalScale=getFloat({data:attributes.fontVerticalScale,defaultValue:100,validate:x=>0<=x}),this.id=attributes.id||"",this.kerningMode=getStringOption(attributes.kerningMode,["none","pair"]),this.letterSpacing=getMeasurement(attributes.letterSpacing,"0"),this.lineThrough=getInteger({data:attributes.lineThrough,defaultValue:0,validate:x=>1===x||2===x}),this.lineThroughPeriod=getStringOption(attributes.lineThroughPeriod,["all","word"]),this.overline=getInteger({data:attributes.overline,defaultValue:0,validate:x=>1===x||2===x}),this.overlinePeriod=getStringOption(attributes.overlinePeriod,["all","word"]),this.posture=getStringOption(attributes.posture,["normal","italic"]),this.size=getMeasurement(attributes.size,"10pt"),this.typeface=attributes.typeface||"Courier",this.underline=getInteger({data:attributes.underline,defaultValue:0,validate:x=>1===x||2===x}),this.underlinePeriod=getStringOption(attributes.underlinePeriod,["all","word"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.weight=getStringOption(attributes.weight,["normal","bold"]),this.extras=null,this.fill=null}[$clean](builder){super[$clean](builder),this[$globalData].usedTypefaces.add(this.typeface)}[$toStyle](){var style=toStyle(this,"fill"),color=style.color;return color&&("#000000"===color?delete style.color:color.startsWith("#")||(style.background=color,style.backgroundClip="text",style.color="transparent")),this.baselineShift&&(style.verticalAlign=measureToString(this.baselineShift)),style.fontKerning="none"===this.kerningMode?"none":"normal",style.letterSpacing=measureToString(this.letterSpacing),0!==this.lineThrough&&(style.textDecoration="line-through",2===this.lineThrough)&&(style.textDecorationStyle="double"),0!==this.overline&&(style.textDecoration="overline",2===this.overline)&&(style.textDecorationStyle="double"),style.fontStyle=this.posture,style.fontSize=measureToString(.99*this.size),setFontFamily(this,this,this[$globalData].fontFinder,style),0!==this.underline&&(style.textDecoration="underline",2===this.underline)&&(style.textDecorationStyle="double"),style.fontWeight=this.weight,style}}class Format extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"format",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.picture=null}}class Handler extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"handler"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Hyphenation extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"hyphenation"),this.excludeAllCaps=getInteger({data:attributes.excludeAllCaps,defaultValue:0,validate:x=>1===x}),this.excludeInitialCap=getInteger({data:attributes.excludeInitialCap,defaultValue:0,validate:x=>1===x}),this.hyphenate=getInteger({data:attributes.hyphenate,defaultValue:0,validate:x=>1===x}),this.id=attributes.id||"",this.pushCharacterCount=getInteger({data:attributes.pushCharacterCount,defaultValue:3,validate:x=>0<=x}),this.remainCharacterCount=getInteger({data:attributes.remainCharacterCount,defaultValue:3,validate:x=>0<=x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.wordCharacterCount=getInteger({data:attributes.wordCharacterCount,defaultValue:7,validate:x=>0<=x})}}class Image extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"image"),this.aspect=getStringOption(attributes.aspect,["fit","actual","height","none","width"]),this.contentType=attributes.contentType||"",this.href=attributes.href||"",this.id=attributes.id||"",this.name=attributes.name||"",this.transferEncoding=getStringOption(attributes.transferEncoding,["base64","none","package"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$toHTML](){if(this.contentType&&!MIMES.has(this.contentType.toLowerCase()))return HTMLResult.EMPTY;let buffer=this[$globalData].images&&this[$globalData].images.get(this.href);if(!buffer&&(this.href||!this[$content]))return HTMLResult.EMPTY;if(!(buffer=buffer||"base64"!==this.transferEncoding?buffer:stringToBytes(atob(this[$content]))))return HTMLResult.EMPTY;if(!this.contentType){for(var[header,type]of IMAGES_HEADERS)if(buffer.length>header.length&&header.every((x,i)=>x===buffer[i])){this.contentType=type;break}if(!this.contentType)return HTMLResult.EMPTY}var blob=new Blob([buffer],{type:this.contentType});let style;switch(this.aspect){case"fit":case"actual":break;case"height":style={height:"100%",objectFit:"fill"};break;case"none":style={width:"100%",height:"100%",objectFit:"fill"};break;case"width":style={width:"100%",objectFit:"fill"}}var parent=this[$getParent]();return HTMLResult.success({name:"img",attributes:{class:["xfaImage"],style:style,src:URL.createObjectURL(blob),alt:parent?ariaLabel(parent[$getParent]()):null}})}}class ImageEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"imageEdit",!0),this.data=getStringOption(attributes.data,["link","embed"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){return"embed"===this.data?HTMLResult.success({name:"div",children:[],attributes:{}}):HTMLResult.EMPTY}}class Integer extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"integer"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var number=parseInt(this[$content].trim(),10);this[$content]=isNaN(number)?null:number}[$toHTML](availableSpace){return valueToHtml(null!==this[$content]?this[$content].toString():"")}}class Issuers extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"issuers",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.certificate=new XFAObjectArray}}class Items extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"items",!0),this.id=attributes.id||"",this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.ref=attributes.ref||"",this.save=getInteger({data:attributes.save,defaultValue:0,validate:x=>1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}[$toHTML](){var output=[];for(const child of this[$getChildren]())output.push(child[$text]());return HTMLResult.success(output)}}class Keep extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"keep",!0),this.id=attributes.id||"";var options=["none","contentArea","pageArea"];this.intact=getStringOption(attributes.intact,options),this.next=getStringOption(attributes.next,options),this.previous=getStringOption(attributes.previous,options),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}}class KeyUsage extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"keyUsage");var options=["","yes","no"];this.crlSign=getStringOption(attributes.crlSign,options),this.dataEncipherment=getStringOption(attributes.dataEncipherment,options),this.decipherOnly=getStringOption(attributes.decipherOnly,options),this.digitalSignature=getStringOption(attributes.digitalSignature,options),this.encipherOnly=getStringOption(attributes.encipherOnly,options),this.id=attributes.id||"",this.keyAgreement=getStringOption(attributes.keyAgreement,options),this.keyCertSign=getStringOption(attributes.keyCertSign,options),this.keyEncipherment=getStringOption(attributes.keyEncipherment,options),this.nonRepudiation=getStringOption(attributes.nonRepudiation,options),this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Line extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"line",!0),this.hand=getStringOption(attributes.hand,["even","left","right"]),this.id=attributes.id||"",this.slope=getStringOption(attributes.slope,["\\","/"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.edge=null}[$toHTML](){var parent=this[$getParent]()[$getParent](),edge=this.edge||new Edge({}),edgeStyle=edge[$toStyle](),style=Object.create(null),edge="visible"===edge.presence?edge.thickness:0;style.strokeWidth=measureToString(edge),style.stroke=edgeStyle.color;let x1,y1,x2,y2,width="100%",height="100%";parent.w<=edge?([x1,y1,x2,y2]=["50%",0,"50%","100%"],width=style.strokeWidth):parent.h<=edge?([x1,y1,x2,y2]=[0,"50%","100%","50%"],height=style.strokeWidth):"\\"===this.slope?[x1,y1,x2,y2]=[0,0,"100%","100%"]:[x1,y1,x2,y2]=[0,"100%","100%",0];edgeStyle={name:"svg",children:[{name:"line",attributes:{xmlns:SVG_NS,x1:x1,y1:y1,x2:x2,y2:y2,style:style}}],attributes:{xmlns:SVG_NS,width:width,height:height,style:{overflow:"visible"}}};return hasMargin(parent)?HTMLResult.success({name:"div",attributes:{style:{display:"inline",width:"100%",height:"100%"}},children:[edgeStyle]}):(edgeStyle.attributes.style.position="absolute",HTMLResult.success(edgeStyle))}}class Linear extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"linear",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["toRight","toBottom","toLeft","toTop"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](startColor){return startColor=startColor?startColor[$toStyle]():"#FFFFFF",`linear-gradient(${this.type.replace(/([RBLT])/," $1").toLowerCase()}, ${startColor}, ${this.color?this.color[$toStyle]():"#000000"})`}}class LockDocument extends ContentObject{constructor(attributes){super(TEMPLATE_NS_ID,"lockDocument"),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){this[$content]=getStringOption(this[$content],["auto","0","1"])}}class Manifest extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"manifest",!0),this.action=getStringOption(attributes.action,["include","all","exclude"]),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.ref=new XFAObjectArray}}class Margin extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"margin",!0),this.bottomInset=getMeasurement(attributes.bottomInset,"0"),this.id=attributes.id||"",this.leftInset=getMeasurement(attributes.leftInset,"0"),this.rightInset=getMeasurement(attributes.rightInset,"0"),this.topInset=getMeasurement(attributes.topInset,"0"),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$toStyle](){return{margin:measureToString(this.topInset)+" "+measureToString(this.rightInset)+" "+measureToString(this.bottomInset)+" "+measureToString(this.leftInset)}}}class Mdp extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"mdp"),this.id=attributes.id||"",this.permissions=getInteger({data:attributes.permissions,defaultValue:2,validate:x=>1===x||3===x}),this.signatureType=getStringOption(attributes.signatureType,["filler","author"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Medium extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"medium"),this.id=attributes.id||"",this.imagingBBox=getBBox(attributes.imagingBBox),this.long=getMeasurement(attributes.long),this.orientation=getStringOption(attributes.orientation,["portrait","landscape"]),this.short=getMeasurement(attributes.short),this.stock=attributes.stock||"",this.trayIn=getStringOption(attributes.trayIn,["auto","delegate","pageFront"]),this.trayOut=getStringOption(attributes.trayOut,["auto","delegate"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Message extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"message",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.text=new XFAObjectArray}}class NumericEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"numericEdit",!0),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","font","margin"),field=this[$getParent]()[$getParent](),style={name:"input",attributes:{type:"text",fieldId:field[$uid],dataId:field[$data]?.[$uid]||field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}};return isRequired(field)&&(style.attributes["aria-required"]=!0,style.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[style]})}}class Occur extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"occur",!0),this.id=attributes.id||"",this.initial=""!==attributes.initial?getInteger({data:attributes.initial,defaultValue:"",validate:x=>!0}):"",this.max=""!==attributes.max?getInteger({data:attributes.max,defaultValue:1,validate:x=>!0}):"",this.min=""!==attributes.min?getInteger({data:attributes.min,defaultValue:1,validate:x=>!0}):"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null}[$clean](){var parent=this[$getParent](),originalMin=this.min;""===this.min&&(this.min=parent instanceof PageArea||parent instanceof PageSet?0:1),""===this.max&&(this.max=""===originalMin?parent instanceof PageArea||parent instanceof PageSet?-1:1:this.min),-1!==this.max&&this.max!0}),this.name=attributes.name||"",this.numbered=getInteger({data:attributes.numbered,defaultValue:1,validate:x=>!0}),this.oddOrEven=getStringOption(attributes.oddOrEven,["any","even","odd"]),this.pagePosition=getStringOption(attributes.pagePosition,["any","first","last","only","rest"]),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.desc=null,this.extras=null,this.medium=null,this.occur=null,this.area=new XFAObjectArray,this.contentArea=new XFAObjectArray,this.draw=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.subform=new XFAObjectArray}[$isUsable](){return this[$extra]?!this.occur||-1===this.occur.max||this[$extra].numberOfUsep.oddOrEven===parity&&p.pagePosition===position);return parent||this.pageArea.children.find(p=>"any"===p.oddOrEven&&p.pagePosition===position)||this.pageArea.children.find(p=>"any"===p.oddOrEven&&"any"===p.pagePosition)||this.pageArea.children[0]}}class Para extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"para",!0),this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.lineHeight=attributes.lineHeight?getMeasurement(attributes.lineHeight,"0pt"):"",this.marginLeft=attributes.marginLeft?getMeasurement(attributes.marginLeft,"0pt"):"",this.marginRight=attributes.marginRight?getMeasurement(attributes.marginRight,"0pt"):"",this.orphans=getInteger({data:attributes.orphans,defaultValue:0,validate:x=>0<=x}),this.preserve=attributes.preserve||"",this.radixOffset=attributes.radixOffset?getMeasurement(attributes.radixOffset,"0pt"):"",this.spaceAbove=attributes.spaceAbove?getMeasurement(attributes.spaceAbove,"0pt"):"",this.spaceBelow=attributes.spaceBelow?getMeasurement(attributes.spaceBelow,"0pt"):"",this.tabDefault=attributes.tabDefault?getMeasurement(this.tabDefault):"",this.tabStops=(attributes.tabStops||"").trim().split(/\s+/).map((x,i)=>i%2==1?getMeasurement(x):x),this.textIndent=attributes.textIndent?getMeasurement(attributes.textIndent,"0pt"):"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.vAlign=getStringOption(attributes.vAlign,["top","bottom","middle"]),this.widows=getInteger({data:attributes.widows,defaultValue:0,validate:x=>0<=x}),this.hyphenation=null}[$toStyle](){var style=toStyle(this,"hAlign");return""!==this.marginLeft&&(style.paddingLeft=measureToString(this.marginLeft)),""!==this.marginRight&&(style.paddingight=measureToString(this.marginRight)),""!==this.spaceAbove&&(style.paddingTop=measureToString(this.spaceAbove)),""!==this.spaceBelow&&(style.paddingBottom=measureToString(this.spaceBelow)),""!==this.textIndent&&(style.textIndent=measureToString(this.textIndent),fixTextIndent(style)),01===x}),this.id=attributes.id||"",this.priority=getStringOption(attributes.priority,["custom","caption","name","toolTip"]),this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Stipple extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"stipple",!0),this.id=attributes.id||"",this.rate=getInteger({data:attributes.rate,defaultValue:50,validate:x=>0<=x&&x<=100}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.color=null,this.extras=null}[$toStyle](bgColor){var alpha=this.rate/100;return Util.makeHexColor(Math.round(bgColor.value.r*(1-alpha)+this.value.r*alpha),Math.round(bgColor.value.g*(1-alpha)+this.value.g*alpha),Math.round(bgColor.value.b*(1-alpha)+this.value.b*alpha))}}class Subform extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subform",!0),this.access=getStringOption(attributes.access,["open","nonInteractive","protected","readOnly"]),this.allowMacro=getInteger({data:attributes.allowMacro,defaultValue:0,validate:x=>1===x}),this.anchorType=getStringOption(attributes.anchorType,["topLeft","bottomCenter","bottomLeft","bottomRight","middleCenter","middleLeft","middleRight","topCenter","topRight"]),this.colSpan=getInteger({data:attributes.colSpan,defaultValue:1,validate:n=>1<=n||-1===n}),this.columnWidths=(attributes.columnWidths||"").trim().split(/\s+/).map(x=>"-1"===x?-1:getMeasurement(x)),this.h=attributes.h?getMeasurement(attributes.h):"",this.hAlign=getStringOption(attributes.hAlign,["left","center","justify","justifyAll","radix","right"]),this.id=attributes.id||"",this.layout=getStringOption(attributes.layout,["position","lr-tb","rl-row","rl-tb","row","table","tb"]),this.locale=attributes.locale||"",this.maxH=getMeasurement(attributes.maxH,"0pt"),this.maxW=getMeasurement(attributes.maxW,"0pt"),this.mergeMode=getStringOption(attributes.mergeMode,["consumeData","matchTemplate"]),this.minH=getMeasurement(attributes.minH,"0pt"),this.minW=getMeasurement(attributes.minW,"0pt"),this.name=attributes.name||"",this.presence=getStringOption(attributes.presence,["visible","hidden","inactive","invisible"]),this.relevant=getRelevant(attributes.relevant),this.restoreState=getStringOption(attributes.restoreState,["manual","auto"]),this.scope=getStringOption(attributes.scope,["name","none"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.w=attributes.w?getMeasurement(attributes.w):"",this.x=getMeasurement(attributes.x,"0pt"),this.y=getMeasurement(attributes.y,"0pt"),this.assist=null,this.bind=null,this.bookend=null,this.border=null,this.break=null,this.calculate=null,this.desc=null,this.extras=null,this.keep=null,this.margin=null,this.occur=null,this.overflow=null,this.pageSet=null,this.para=null,this.traversal=null,this.validate=null,this.variables=null,this.area=new XFAObjectArray,this.breakAfter=new XFAObjectArray,this.breakBefore=new XFAObjectArray,this.connect=new XFAObjectArray,this.draw=new XFAObjectArray,this.event=new XFAObjectArray,this.exObject=new XFAObjectArray,this.exclGroup=new XFAObjectArray,this.field=new XFAObjectArray,this.proto=new XFAObjectArray,this.setProperty=new XFAObjectArray,this.subform=new XFAObjectArray,this.subformSet=new XFAObjectArray}[$getSubformParent](){var parent=this[$getParent]();return parent instanceof SubformSet?parent[$getSubformParent]():parent}[$isBindable](){return!0}[$isThereMoreWidth](){return this.layout.endsWith("-tb")&&0===this[$extra].attempt&&0((kv=kv.split("=",2))[0]=kv[0].trim(),kv)))}}class SubjectDNs extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"subjectDNs",!0),this.id=attributes.id||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.subjectDN=new XFAObjectArray}}class Submit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"submit",!0),this.embedPDF=getInteger({data:attributes.embedPDF,defaultValue:0,validate:x=>1===x}),this.format=getStringOption(attributes.format,["xdp","formdata","pdf","urlencoded","xfd","xml"]),this.id=attributes.id||"",this.target=attributes.target||"",this.textEncoding=getKeyword({data:attributes.textEncoding?attributes.textEncoding.toLowerCase():"",defaultValue:"",validate:k=>["utf-8","big-five","fontspecific","gbk","gb-18030","gb-2312","ksc-5601","none","shift-jis","ucs-2","utf-16"].includes(k)||k.match(/iso-8859-\d{2}/)}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.xdpContent=attributes.xdpContent||"",this.encrypt=null,this.encryptData=new XFAObjectArray,this.signData=new XFAObjectArray}}class Template extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"template",!0),this.baseProfile=getStringOption(attributes.baseProfile,["full","interactiveForms"]),this.extras=null,this.subform=new XFAObjectArray}[$finalize](){0===this.subform.children.length&&warn("XFA - No subforms in template node."),2<=this.subform.children.length&&warn("XFA - Several subforms in template node: please file a bug."),this[$tabIndex]=DEFAULT_TAB_INDEX}[$isSplittable](){return!0}[$searchNode](expr,container){return expr.startsWith("#")?[this[$ids].get(expr.slice(1))]:searchNode(this,container,expr,!0,!0)}*[$toPages](){if(!this.subform.children.length)return HTMLResult.success({name:"div",children:[]});this[$extra]={overflowNode:null,firstUnsplittable:null,currentContentArea:null,currentPageArea:null,noLayoutFailure:!1,pageNumber:1,pagePosition:"first",oddOrEven:"odd",blankOrNotBlank:"nonBlank",paraStack:[]};const root=this.subform.children[0];root.pageSet[$cleanPage]();var pageAreas=root.pageSet.pageArea.children,mainHtml={name:"div",children:[]};let pageArea=null,breakBefore=null,breakBeforeTarget=null;1<=root.breakBefore.children.length?(breakBefore=root.breakBefore.children[0],breakBeforeTarget=breakBefore.target):1<=root.subform.children.length&&1<=root.subform.children[0].breakBefore.children.length?(breakBefore=root.subform.children[0].breakBefore.children[0],breakBeforeTarget=breakBefore.target):root.break?.beforeTarget?(breakBefore=root.break,breakBeforeTarget=breakBefore.beforeTarget):1<=root.subform.children.length&&root.subform.children[0].break?.beforeTarget&&(breakBefore=root.subform.children[0].break,breakBeforeTarget=breakBefore.beforeTarget),breakBefore&&(target=this[$searchNode](breakBeforeTarget,breakBefore[$getParent]()))instanceof PageArea&&(pageArea=target,breakBefore[$extra]={}),(pageArea=pageArea||pageAreas[0])[$extra]={numberOfUse:1};var target=pageArea[$getParent]();target[$extra]={numberOfUse:1,pageIndex:target.pageArea.children.indexOf(pageArea),pageSetIndex:0};let targetPageArea,leader=null,trailer=null,hasSomething=!0,hasSomethingCounter=0,startIndex=0;for(;;){if(hasSomething)hasSomethingCounter=0;else if(mainHtml.children.pop(),++hasSomethingCounter===MAX_EMPTY_PAGES)return warn("XFA - Something goes wrong: please file a bug."),mainHtml;targetPageArea=null;var page=(this[$extra].currentPageArea=pageArea)[$toHTML]().html,contentAreas=(mainHtml.children.push(page),leader&&(this[$extra].noLayoutFailure=!0,page.children.push(leader[$toHTML](pageArea[$extra].space).html),leader=null),trailer&&(this[$extra].noLayoutFailure=!0,page.children.push(trailer[$toHTML](pageArea[$extra].space).html),trailer=null),pageArea.contentArea.children);const htmlContentAreas=page.children.filter(node=>node.attributes.class.includes("xfaContentarea"));hasSomething=!1,this[$extra].firstUnsplittable=null,this[$extra].noLayoutFailure=!1;var flush=index=>{var html=root[$flushHTML]();html&&(hasSomething||=00<=x}),this.name=attributes.name||"",this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$acceptWhitespace](){return!0}[$onChild](child){return child[$namespaceId]===NamespaceIds.xhtml.id?(this[$content]=child,!0):(warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`),!1)}[$onText](str){this[$content]instanceof XFAObject||super[$onText](str)}[$finalize](){"string"==typeof this[$content]&&(this[$content]=this[$content].replaceAll("\r\n","\n"))}[$getExtra](){return"string"==typeof this[$content]?this[$content].split(/[\u2029\u2028\n]/).reduce((acc,line)=>(line&&acc.push(line),acc),[]).join("\n"):this[$content][$text]()}[$toHTML](availableSpace){if("string"!=typeof this[$content])return this[$content][$toHTML](availableSpace);{const html=valueToHtml(this[$content]).html;return this[$content].includes("\u2029")?(html.name="div",html.children=[],this[$content].split("\u2029").map(para=>para.split(/[\u2028\n]/).reduce((acc,line)=>(acc.push({name:"span",value:line},{name:"br"}),acc),[])).forEach(lines=>{html.children.push({name:"p",children:lines})})):/[\u2028\n]/.test(this[$content])&&(html.name="div",html.children=[],this[$content].split(/[\u2028\n]/).forEach(line=>{html.children.push({name:"span",value:line},{name:"br"})})),HTMLResult.success(html)}}}class TextEdit extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"textEdit",!0),this.allowRichText=getInteger({data:attributes.allowRichText,defaultValue:0,validate:x=>1===x}),this.hScrollPolicy=getStringOption(attributes.hScrollPolicy,["auto","off","on"]),this.id=attributes.id||"",this.multiLine=getInteger({data:attributes.multiLine,defaultValue:"",validate:x=>0===x||1===x}),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.vScrollPolicy=getStringOption(attributes.vScrollPolicy,["auto","off","on"]),this.border=null,this.comb=null,this.extras=null,this.margin=null}[$toHTML](availableSpace){var style=toStyle(this,"border","font","margin");let html;var field=this[$getParent]()[$getParent]();return""===this.multiLine&&(this.multiLine=field instanceof Draw?1:0),html=1===this.multiLine?{name:"textarea",attributes:{dataId:field[$data]?.[$uid]||field[$uid],fieldId:field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}}:{name:"input",attributes:{type:"text",dataId:field[$data]?.[$uid]||field[$uid],fieldId:field[$uid],class:["xfaTextfield"],style:style,"aria-label":ariaLabel(field),"aria-required":!1}},isRequired(field)&&(html.attributes["aria-required"]=!0,html.attributes.required=!0),HTMLResult.success({name:"label",attributes:{class:["xfaLabel"]},children:[html]})}}class Time extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"time"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}[$finalize](){var date=this[$content].trim();this[$content]=date?new Date(date):null}[$toHTML](availableSpace){return valueToHtml(this[$content]?this[$content].toString():"")}}class TimeStamp extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"timeStamp"),this.id=attributes.id||"",this.server=attributes.server||"",this.type=getStringOption(attributes.type,["optional","required"]),this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class ToolTip extends StringObject{constructor(attributes){super(TEMPLATE_NS_ID,"toolTip"),this.id=attributes.id||"",this.rid=attributes.rid||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Traversal extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"traversal",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.traverse=new XFAObjectArray}}class Traverse extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"traverse",!0),this.id=attributes.id||"",this.operation=getStringOption(attributes.operation,["next","back","down","first","left","right","up"]),this.ref=attributes.ref||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.script=null}get name(){return this.operation}[$isTransparent](){return!1}}class Ui extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"ui",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.picture=null,this.barcode=null,this.button=null,this.checkButton=null,this.choiceList=null,this.dateTimeEdit=null,this.defaultUi=null,this.imageEdit=null,this.numericEdit=null,this.passwordEdit=null,this.signature=null,this.textEdit=null}[$getExtra](){if(void 0===this[$extra]){for(const name of Object.getOwnPropertyNames(this))if("extras"!==name&&"picture"!==name){var obj=this[name];if(obj instanceof XFAObject)return this[$extra]=obj}this[$extra]=null}return this[$extra]}[$toHTML](availableSpace){var obj=this[$getExtra]();return obj?obj[$toHTML](availableSpace):HTMLResult.EMPTY}}class Validate extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"validate",!0),this.formatTest=getStringOption(attributes.formatTest,["warning","disabled","error"]),this.id=attributes.id||"",this.nullTest=getStringOption(attributes.nullTest,["disabled","error","warning"]),this.scriptTest=getStringOption(attributes.scriptTest,["error","disabled","warning"]),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.extras=null,this.message=null,this.picture=null,this.script=null}}class Value extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"value",!0),this.id=attributes.id||"",this.override=getInteger({data:attributes.override,defaultValue:0,validate:x=>1===x}),this.relevant=getRelevant(attributes.relevant),this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.arc=null,this.boolean=null,this.date=null,this.dateTime=null,this.decimal=null,this.exData=null,this.float=null,this.image=null,this.integer=null,this.line=null,this.rectangle=null,this.text=null,this.time=null}[$setValue](value){var parent=this[$getParent]();if(parent instanceof Field&&parent.ui?.imageEdit)this.image||(this.image=new Image({}),this[$appendChild](this.image)),this.image[$content]=value[$content];else{parent=value[$nodeName];if(null!==this[parent])this[parent][$content]=value[$content];else{for(const name of Object.getOwnPropertyNames(this)){var obj=this[name];obj instanceof XFAObject&&(this[name]=null,this[$removeChild](obj))}this[value[$nodeName]]=value,this[$appendChild](value)}}}[$text](){if(this.exData)return("string"==typeof this.exData[$content]?this.exData[$content]:this.exData[$content][$text]()).trim();for(const name of Object.getOwnPropertyNames(this))if("image"!==name){var obj=this[name];if(obj instanceof XFAObject)return(obj[$content]||"").toString().trim()}return null}[$toHTML](availableSpace){for(const name of Object.getOwnPropertyNames(this)){var obj=this[name];if(obj instanceof XFAObject)return obj[$toHTML](availableSpace)}return HTMLResult.EMPTY}}class Variables extends XFAObject{constructor(attributes){super(TEMPLATE_NS_ID,"variables",!0),this.id=attributes.id||"",this.use=attributes.use||"",this.usehref=attributes.usehref||"",this.boolean=new XFAObjectArray,this.date=new XFAObjectArray,this.dateTime=new XFAObjectArray,this.decimal=new XFAObjectArray,this.exData=new XFAObjectArray,this.float=new XFAObjectArray,this.image=new XFAObjectArray,this.integer=new XFAObjectArray,this.manifest=new XFAObjectArray,this.script=new XFAObjectArray,this.text=new XFAObjectArray,this.time=new XFAObjectArray}[$isTransparent](){return!0}}class TemplateNamespace{static[$buildXFAObject](name,attributes){if(TemplateNamespace.hasOwnProperty(name))return(name=TemplateNamespace[name](attributes))[$setSetAttributes](attributes),name}static appearanceFilter(attrs){return new AppearanceFilter(attrs)}static arc(attrs){return new Arc(attrs)}static area(attrs){return new Area(attrs)}static assist(attrs){return new Assist(attrs)}static barcode(attrs){return new Barcode(attrs)}static bind(attrs){return new Bind(attrs)}static bindItems(attrs){return new BindItems(attrs)}static bookend(attrs){return new Bookend(attrs)}static boolean(attrs){return new BooleanElement(attrs)}static border(attrs){return new Border(attrs)}static break(attrs){return new Break(attrs)}static breakAfter(attrs){return new BreakAfter(attrs)}static breakBefore(attrs){return new BreakBefore(attrs)}static button(attrs){return new Button(attrs)}static calculate(attrs){return new Calculate(attrs)}static caption(attrs){return new Caption(attrs)}static certificate(attrs){return new Certificate(attrs)}static certificates(attrs){return new Certificates(attrs)}static checkButton(attrs){return new CheckButton(attrs)}static choiceList(attrs){return new ChoiceList(attrs)}static color(attrs){return new Color(attrs)}static comb(attrs){return new Comb(attrs)}static connect(attrs){return new Connect(attrs)}static contentArea(attrs){return new ContentArea(attrs)}static corner(attrs){return new Corner(attrs)}static date(attrs){return new DateElement(attrs)}static dateTime(attrs){return new DateTime(attrs)}static dateTimeEdit(attrs){return new DateTimeEdit(attrs)}static decimal(attrs){return new Decimal(attrs)}static defaultUi(attrs){return new DefaultUi(attrs)}static desc(attrs){return new Desc(attrs)}static digestMethod(attrs){return new DigestMethod(attrs)}static digestMethods(attrs){return new DigestMethods(attrs)}static draw(attrs){return new Draw(attrs)}static edge(attrs){return new Edge(attrs)}static encoding(attrs){return new Encoding(attrs)}static encodings(attrs){return new Encodings(attrs)}static encrypt(attrs){return new Encrypt(attrs)}static encryptData(attrs){return new EncryptData(attrs)}static encryption(attrs){return new Encryption(attrs)}static encryptionMethod(attrs){return new EncryptionMethod(attrs)}static encryptionMethods(attrs){return new EncryptionMethods(attrs)}static event(attrs){return new Event(attrs)}static exData(attrs){return new ExData(attrs)}static exObject(attrs){return new ExObject(attrs)}static exclGroup(attrs){return new ExclGroup(attrs)}static execute(attrs){return new Execute(attrs)}static extras(attrs){return new Extras(attrs)}static field(attrs){return new Field(attrs)}static fill(attrs){return new Fill(attrs)}static filter(attrs){return new Filter(attrs)}static float(attrs){return new Float(attrs)}static font(attrs){return new template_Font(attrs)}static format(attrs){return new Format(attrs)}static handler(attrs){return new Handler(attrs)}static hyphenation(attrs){return new Hyphenation(attrs)}static image(attrs){return new Image(attrs)}static imageEdit(attrs){return new ImageEdit(attrs)}static integer(attrs){return new Integer(attrs)}static issuers(attrs){return new Issuers(attrs)}static items(attrs){return new Items(attrs)}static keep(attrs){return new Keep(attrs)}static keyUsage(attrs){return new KeyUsage(attrs)}static line(attrs){return new Line(attrs)}static linear(attrs){return new Linear(attrs)}static lockDocument(attrs){return new LockDocument(attrs)}static manifest(attrs){return new Manifest(attrs)}static margin(attrs){return new Margin(attrs)}static mdp(attrs){return new Mdp(attrs)}static medium(attrs){return new Medium(attrs)}static message(attrs){return new Message(attrs)}static numericEdit(attrs){return new NumericEdit(attrs)}static occur(attrs){return new Occur(attrs)}static oid(attrs){return new Oid(attrs)}static oids(attrs){return new Oids(attrs)}static overflow(attrs){return new Overflow(attrs)}static pageArea(attrs){return new PageArea(attrs)}static pageSet(attrs){return new PageSet(attrs)}static para(attrs){return new Para(attrs)}static passwordEdit(attrs){return new PasswordEdit(attrs)}static pattern(attrs){return new template_Pattern(attrs)}static picture(attrs){return new Picture(attrs)}static proto(attrs){return new Proto(attrs)}static radial(attrs){return new Radial(attrs)}static reason(attrs){return new Reason(attrs)}static reasons(attrs){return new Reasons(attrs)}static rectangle(attrs){return new Rectangle(attrs)}static ref(attrs){return new RefElement(attrs)}static script(attrs){return new Script(attrs)}static setProperty(attrs){return new SetProperty(attrs)}static signData(attrs){return new SignData(attrs)}static signature(attrs){return new Signature(attrs)}static signing(attrs){return new Signing(attrs)}static solid(attrs){return new Solid(attrs)}static speak(attrs){return new Speak(attrs)}static stipple(attrs){return new Stipple(attrs)}static subform(attrs){return new Subform(attrs)}static subformSet(attrs){return new SubformSet(attrs)}static subjectDN(attrs){return new SubjectDN(attrs)}static subjectDNs(attrs){return new SubjectDNs(attrs)}static submit(attrs){return new Submit(attrs)}static template(attrs){return new Template(attrs)}static text(attrs){return new Text(attrs)}static textEdit(attrs){return new TextEdit(attrs)}static time(attrs){return new Time(attrs)}static timeStamp(attrs){return new TimeStamp(attrs)}static toolTip(attrs){return new ToolTip(attrs)}static traversal(attrs){return new Traversal(attrs)}static traverse(attrs){return new Traverse(attrs)}static ui(attrs){return new Ui(attrs)}static validate(attrs){return new Validate(attrs)}static value(attrs){return new Value(attrs)}static variables(attrs){return new Variables(attrs)}}const bind_NS_DATASETS=NamespaceIds.datasets.id;function createText(content){var node=new Text({});return node[$content]=content,node}class Binder{constructor(root){this.root=root,this.datasets=root.datasets,this.data=root.datasets?.data||new XmlObject(NamespaceIds.datasets.id,"data"),this.emptyMerge=0===this.data[$getChildren]().length,this.root.form=this.form=root.template[$clone]()}_isConsumeData(){return!this.emptyMerge&&this._mergeMode}_isMatchTemplate(){return!this._isConsumeData()}bind(){return this._bindElement(this.form,this.data),this.form}getData(){return this.data}_bindValue(formNode,data,picture){if(formNode[$data]=data,formNode[$hasSettableValue]())if(data[$isDataValue]()){var value=data[$getDataValue]();formNode[$setValue](createText(value))}else if(formNode instanceof Field&&"multiSelect"===formNode.ui?.choiceList?.open){const value=data[$getChildren]().map(child=>child[$content].trim()).join("\n");formNode[$setValue](createText(value))}else this._isConsumeData()&&warn("XFA - Nodes haven't the same type.");else!data[$isDataValue]()||this._isMatchTemplate()?this._bindElement(formNode,data):warn("XFA - Nodes haven't the same type.")}_findDataByNameToConsume(name,isValue,dataNode,global){if(!name)return null;let generator,match;for(let i=0;i<3;i++){for(generator=dataNode[$getRealChildrenByNameIt](name,!1,!0);;){if(!(match=generator.next().value))break;if(isValue===match[$isDataValue]())return match}if(dataNode[$namespaceId]===NamespaceIds.datasets.id&&"data"===dataNode[$nodeName])break;dataNode=dataNode[$getParent]()}return global?(generator=this.data[$getRealChildrenByNameIt](name,!0,!1),(match=generator.next().value)||(generator=this.data[$getAttributeIt](name,!0),(match=generator.next().value)?.[$isDataValue]()?match:null)):null}_setProperties(formNode,dataNode){if(formNode.hasOwnProperty("setProperty"))for(var{ref,target,connection}of formNode.setProperty.children){var targetNodes,targetParent,content,name,attrs;connection||ref&&((connection=searchNode(this.root,dataNode,ref,!1,!1))?([connection]=connection,connection[$isDescendent](this.data)?(targetNodes=searchNode(this.root,formNode,target,!1,!1))?([targetNodes]=targetNodes,targetNodes[$isDescendent](formNode)?(targetParent=targetNodes[$getParent](),targetNodes instanceof SetProperty||targetParent instanceof SetProperty?warn("XFA - Invalid target: cannot be a setProperty or one of its properties."):targetNodes instanceof BindItems||targetParent instanceof BindItems?warn("XFA - Invalid target: cannot be a bindItems or one of its properties."):(content=connection[$text](),name=targetNodes[$nodeName],targetNodes instanceof XFAAttribute?((attrs=Object.create(null))[name]=content,attrs=Reflect.construct(Object.getPrototypeOf(targetParent).constructor,[attrs]),targetParent[name]=attrs[name]):targetNodes.hasOwnProperty($content)?(targetNodes[$data]=connection,targetNodes[$content]=content,targetNodes[$finalize]()):warn("XFA - Invalid node to use in setProperty"))):warn("XFA - Invalid target: must be a property or subproperty.")):warn(`XFA - Invalid target: ${target}.`):warn("XFA - Invalid node: must be a data node.")):warn(`XFA - Invalid reference: ${ref}.`))}}_bindItems(formNode,dataNode){if(formNode.hasOwnProperty("items")&&formNode.hasOwnProperty("bindItems")&&!formNode.bindItems.isEmpty()){for(const item of formNode.items.children)formNode[$removeChild](item);formNode.items.clear();var ref,labelRef,valueRef,connection,labels=new Items({}),values=new Items({});formNode[$appendChild](labels),formNode.items.push(labels),formNode[$appendChild](values),formNode.items.push(values);for({ref,labelRef,valueRef,connection}of formNode.bindItems.children)if(!connection&&ref){var labelNodes,valueNodes,nodes=searchNode(this.root,dataNode,ref,!1,!1);if(nodes)for(const node of nodes)node[$isDescendent](this.datasets)?(labelNodes=searchNode(this.root,node,labelRef,!0,!1))?([labelNodes]=labelNodes,labelNodes[$isDescendent](this.datasets)?(valueNodes=searchNode(this.root,node,valueRef,!0,!1))?([valueNodes]=valueNodes,valueNodes[$isDescendent](this.datasets)?(labelNodes=createText(labelNodes[$text]()),valueNodes=createText(valueNodes[$text]()),labels[$appendChild](labelNodes),labels.text.push(labelNodes),values[$appendChild](valueNodes),values.text.push(valueNodes)):warn("XFA - Invalid value: must be a datasets child.")):warn(`XFA - Invalid value: ${valueRef}.`):warn("XFA - Invalid label: must be a datasets child.")):warn(`XFA - Invalid label: ${labelRef}.`):warn(`XFA - Invalid ref (${ref}): must be a datasets child.`);else warn(`XFA - Invalid reference: ${ref}.`)}}}_bindOccurrences(formNode,matches,picture){let baseClone;if(1e.name===formNode.name):parent[name].children).length;var pos=parent[$indexOf](formNode)+1,ii=occur.initial-currentNumber;if(ii){var nodeClone=formNode[$clone]();nodeClone[$removeChild](nodeClone.occur),nodeClone.occur=null,parent[name].push(nodeClone),parent[$insertAt](pos,nodeClone);for(let i=1;i!node[$consumed]):match).length>max?match=match.slice(0,max):0===match.length&&(match=null),match&&this._isConsumeData()&&match.forEach(node=>{node[$consumed]=!0})}else{if(!child.name){this._setAndBind(child,dataNode);continue}if(this._isConsumeData()){for(var matches=[];matches.lengthnode[$getParent]()[$removeChild](node))}}class DataHandler{constructor(root,data){this.data=data,this.dataset=root.datasets||null}serialize(storage){for(var stack=[[-1,this.data[$getChildren]()]];0'];if(this.dataset)for(const child of this.dataset[$getChildren]())"data"!==child[$nodeName]&&child[$toString](buf);return this.data[$toString](buf),buf.push(""),buf.join("")}}const CONFIG_NS_ID=NamespaceIds.config.id;class Acrobat extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"acrobat",!0),this.acrobat7=null,this.autoSave=null,this.common=null,this.validate=null,this.validateApprovalSignatures=null,this.submitUrl=new XFAObjectArray}}class Acrobat7 extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"acrobat7",!0),this.dynamicRender=null}}class ADBE_JSConsole extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ADBE_JSConsole",["delegate","Enable","Disable"])}}class ADBE_JSDebugger extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ADBE_JSDebugger",["delegate","Enable","Disable"])}}class AddSilentPrint extends Option01{constructor(attributes){super(CONFIG_NS_ID,"addSilentPrint")}}class AddViewerPreferences extends Option01{constructor(attributes){super(CONFIG_NS_ID,"addViewerPreferences")}}class AdjustData extends Option10{constructor(attributes){super(CONFIG_NS_ID,"adjustData")}}class AdobeExtensionLevel extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"adobeExtensionLevel",0,n=>1<=n&&n<=8)}}class Agent extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"agent",!0),this.name=attributes.name?attributes.name.trim():"",this.common=new XFAObjectArray}}class AlwaysEmbed extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"alwaysEmbed")}}class Amd extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"amd")}}class config_Area extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"area"),this.level=getInteger({data:attributes.level,defaultValue:0,validate:n=>1<=n&&n<=3}),this.name=getStringOption(attributes.name,["","barcode","coreinit","deviceDriver","font","general","layout","merge","script","signature","sourceSet","templateCache"])}}class Attributes extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"attributes",["preserve","delegate","ignore"])}}class AutoSave extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"autoSave",["disabled","enabled"])}}class Base extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"base")}}class BatchOutput extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"batchOutput"),this.format=getStringOption(attributes.format,["none","concat","zip","zipCompress"])}}class BehaviorOverride extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"behaviorOverride")}[$finalize](){this[$content]=new Map(this[$content].trim().split(/\s+/).filter(x=>x.includes(":")).map(x=>x.split(":",2)))}}class Cache extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"cache",!0),this.templateCache=null}}class Change extends Option01{constructor(attributes){super(CONFIG_NS_ID,"change")}}class Common extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"common",!0),this.data=null,this.locale=null,this.localeSet=null,this.messaging=null,this.suppressBanner=null,this.template=null,this.validationMessaging=null,this.versionControl=null,this.log=new XFAObjectArray}}class Compress extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"compress"),this.scope=getStringOption(attributes.scope,["imageOnly","document"])}}class CompressLogicalStructure extends Option01{constructor(attributes){super(CONFIG_NS_ID,"compressLogicalStructure")}}class CompressObjectStream extends Option10{constructor(attributes){super(CONFIG_NS_ID,"compressObjectStream")}}class Compression extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"compression",!0),this.compressLogicalStructure=null,this.compressObjectStream=null,this.level=null,this.type=null}}class Config extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"config",!0),this.acrobat=null,this.present=null,this.trace=null,this.agent=new XFAObjectArray}}class Conformance extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"conformance",["A","B"])}}class ContentCopy extends Option01{constructor(attributes){super(CONFIG_NS_ID,"contentCopy")}}class Copies extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"copies",1,n=>1<=n)}}class Creator extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"creator")}}class CurrentPage extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"currentPage",0,n=>0<=n)}}class Data extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"data",!0),this.adjustData=null,this.attributes=null,this.incrementalLoad=null,this.outputXSL=null,this.range=null,this.record=null,this.startNode=null,this.uri=null,this.window=null,this.xsl=null,this.excludeNS=new XFAObjectArray,this.transform=new XFAObjectArray}}class Debug extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"debug",!0),this.uri=null}}class DefaultTypeface extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"defaultTypeface"),this.writingScript=getStringOption(attributes.writingScript,["*","Arabic","Cyrillic","EastEuropeanRoman","Greek","Hebrew","Japanese","Korean","Roman","SimplifiedChinese","Thai","TraditionalChinese","Vietnamese"])}}class Destination extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"destination",["pdf","pcl","ps","webClient","zpl"])}}class DocumentAssembly extends Option01{constructor(attributes){super(CONFIG_NS_ID,"documentAssembly")}}class Driver extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"driver",!0),this.name=attributes.name?attributes.name.trim():"",this.fontInfo=null,this.xdc=null}}class DuplexOption extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"duplexOption",["simplex","duplexFlipLongEdge","duplexFlipShortEdge"])}}class DynamicRender extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"dynamicRender",["forbidden","required"])}}class Embed extends Option01{constructor(attributes){super(CONFIG_NS_ID,"embed")}}class config_Encrypt extends Option01{constructor(attributes){super(CONFIG_NS_ID,"encrypt")}}class config_Encryption extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"encryption",!0),this.encrypt=null,this.encryptionLevel=null,this.permissions=null}}class EncryptionLevel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"encryptionLevel",["40bit","128bit"])}}class Enforce extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"enforce")}}class Equate extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"equate"),this.force=getInteger({data:attributes.force,defaultValue:1,validate:n=>0===n}),this.from=attributes.from||"",this.to=attributes.to||""}}class EquateRange extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"equateRange"),this.from=attributes.from||"",this.to=attributes.to||"",this._unicodeRange=attributes.unicodeRange||""}get unicodeRange(){var range,ranges=[];const unicodeRegex=/U\+([0-9a-fA-F]+)/;for(range of this._unicodeRange.split(",").map(x=>x.trim()).filter(x=>!!x))1===(range=range.split("-",2).map(x=>{x=x.match(unicodeRegex);return x?parseInt(x[1],16):0})).length&&range.push(range[0]),ranges.push(range);return shadow(this,"unicodeRange",ranges)}}class Exclude extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"exclude")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/).filter(x=>x&&["calculate","close","enter","exit","initialize","ready","validate"].includes(x))}}class ExcludeNS extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"excludeNS")}}class FlipLabel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"flipLabel",["usePrinterSetting","on","off"])}}class config_FontInfo extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"fontInfo",!0),this.embed=null,this.map=null,this.subsetBelow=null,this.alwaysEmbed=new XFAObjectArray,this.defaultTypeface=new XFAObjectArray,this.neverEmbed=new XFAObjectArray}}class FormFieldFilling extends Option01{constructor(attributes){super(CONFIG_NS_ID,"formFieldFilling")}}class GroupParent extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"groupParent")}}class IfEmpty extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"ifEmpty",["dataValue","dataGroup","ignore","remove"])}}class IncludeXDPContent extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"includeXDPContent")}}class IncrementalLoad extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"incrementalLoad",["none","forwardOnly"])}}class IncrementalMerge extends Option01{constructor(attributes){super(CONFIG_NS_ID,"incrementalMerge")}}class Interactive extends Option01{constructor(attributes){super(CONFIG_NS_ID,"interactive")}}class Jog extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"jog",["usePrinterSetting","none","pageSet"])}}class LabelPrinter extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"labelPrinter",!0),this.name=getStringOption(attributes.name,["zpl","dpl","ipl","tcpl"]),this.batchOutput=null,this.flipLabel=null,this.fontInfo=null,this.xdc=null}}class Layout extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"layout",["paginate","panel"])}}class Level extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"level",0,n=>01<=n)}}class NameAttr extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"nameAttr")}}class NeverEmbed extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"neverEmbed")}}class NumberOfCopies extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"numberOfCopies",null,n=>2<=n&&n<=5)}}class OpenAction extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"openAction",!0),this.destination=null}}class Output extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"output",!0),this.to=null,this.type=null,this.uri=null}}class OutputBin extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"outputBin")}}class OutputXSL extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"outputXSL",!0),this.uri=null}}class Overprint extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"overprint",["none","both","draw","field"])}}class Packets extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"packets")}[$finalize](){"*"!==this[$content]&&(this[$content]=this[$content].trim().split(/\s+/).filter(x=>["config","datasets","template","xfdf","xslt"].includes(x)))}}class PageOffset extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pageOffset"),this.x=getInteger({data:attributes.x,defaultValue:"useXDCSetting",validate:n=>!0}),this.y=getInteger({data:attributes.y,defaultValue:"useXDCSetting",validate:n=>!0})}}class PageRange extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"pageRange")}[$finalize](){var numbers=this[$content].trim().split(/\s+/).map(x=>parseInt(x,10)),ranges=[];for(let i=0,ii=numbers.length;i!1)}}class Pcl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pcl",!0),this.name=attributes.name||"",this.batchOutput=null,this.fontInfo=null,this.jog=null,this.mediumInfo=null,this.outputBin=null,this.pageOffset=null,this.staple=null,this.xdc=null}}class Pdf extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pdf",!0),this.name=attributes.name||"",this.adobeExtensionLevel=null,this.batchOutput=null,this.compression=null,this.creator=null,this.encryption=null,this.fontInfo=null,this.interactive=null,this.linearized=null,this.openAction=null,this.pdfa=null,this.producer=null,this.renderPolicy=null,this.scriptModel=null,this.silentPrint=null,this.submitFormat=null,this.tagged=null,this.version=null,this.viewerPreferences=null,this.xdc=null}}class Pdfa extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"pdfa",!0),this.amd=null,this.conformance=null,this.includeXDPContent=null,this.part=null}}class Permissions extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"permissions",!0),this.accessibleContent=null,this.change=null,this.contentCopy=null,this.documentAssembly=null,this.formFieldFilling=null,this.modifyAnnots=null,this.plaintextMetadata=null,this.print=null,this.printHighQuality=null}}class PickTrayByPDFSize extends Option01{constructor(attributes){super(CONFIG_NS_ID,"pickTrayByPDFSize")}}class config_Picture extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"picture")}}class PlaintextMetadata extends Option01{constructor(attributes){super(CONFIG_NS_ID,"plaintextMetadata")}}class Presence extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"presence",["preserve","dissolve","dissolveStructure","ignore","remove"])}}class Present extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"present",!0),this.behaviorOverride=null,this.cache=null,this.common=null,this.copies=null,this.destination=null,this.incrementalMerge=null,this.layout=null,this.output=null,this.overprint=null,this.pagination=null,this.paginationOverride=null,this.script=null,this.validate=null,this.xdp=null,this.driver=new XFAObjectArray,this.labelPrinter=new XFAObjectArray,this.pcl=new XFAObjectArray,this.pdf=new XFAObjectArray,this.ps=new XFAObjectArray,this.submitUrl=new XFAObjectArray,this.webClient=new XFAObjectArray,this.zpl=new XFAObjectArray}}class Print extends Option01{constructor(attributes){super(CONFIG_NS_ID,"print")}}class PrintHighQuality extends Option01{constructor(attributes){super(CONFIG_NS_ID,"printHighQuality")}}class PrintScaling extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"printScaling",["appdefault","noScaling"])}}class PrinterName extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"printerName")}}class Producer extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"producer")}}class Ps extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"ps",!0),this.name=attributes.name||"",this.batchOutput=null,this.fontInfo=null,this.jog=null,this.mediumInfo=null,this.outputBin=null,this.staple=null,this.xdc=null}}class Range extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"range")}[$finalize](){this[$content]=this[$content].trim().split(/\s*,\s*/,2).map(range=>range.split("-").map(x=>parseInt(x.trim(),10))).filter(range=>range.every(x=>!isNaN(x))).map(range=>(1===range.length&&range.push(range[0]),range))}}class Record extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"record")}[$finalize](){this[$content]=this[$content].trim();var n=parseInt(this[$content],10);!isNaN(n)&&0<=n&&(this[$content]=n)}}class Relevant extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"relevant")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/)}}class Rename extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"rename")}[$finalize](){this[$content]=this[$content].trim(),(this[$content].toLowerCase().startsWith("xml")||new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*","u").test(this[$content]))&&warn("XFA - Rename: invalid XFA name")}}class RenderPolicy extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"renderPolicy",["server","client"])}}class RunScripts extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"runScripts",["both","client","none","server"])}}class config_Script extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"script",!0),this.currentPage=null,this.exclude=null,this.runScripts=null}}class ScriptModel extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"scriptModel",["XFA","none"])}}class Severity extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"severity",["ignore","error","information","trace","warning"])}}class SilentPrint extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"silentPrint",!0),this.addSilentPrint=null,this.printerName=null}}class Staple extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"staple"),this.mode=getStringOption(attributes.mode,["usePrinterSetting","on","off"])}}class StartNode extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"startNode")}}class StartPage extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"startPage",0,n=>!0)}}class SubmitFormat extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"submitFormat",["html","delegate","fdf","xml","pdf"])}}class SubmitUrl extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"submitUrl")}}class SubsetBelow extends IntegerObject{constructor(attributes){super(CONFIG_NS_ID,"subsetBelow",100,n=>0<=n&&n<=100)}}class SuppressBanner extends Option01{constructor(attributes){super(CONFIG_NS_ID,"suppressBanner")}}class Tagged extends Option01{constructor(attributes){super(CONFIG_NS_ID,"tagged")}}class config_Template extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"template",!0),this.base=null,this.relevant=null,this.startPage=null,this.uri=null,this.xsl=null}}class Threshold extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"threshold",["trace","error","information","warning"])}}class To extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"to",["null","memory","stderr","stdout","system","uri"])}}class TemplateCache extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"templateCache"),this.maxEntries=getInteger({data:attributes.maxEntries,defaultValue:5,validate:n=>0<=n})}}class Trace extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"trace",!0),this.area=new XFAObjectArray}}class Transform extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"transform",!0),this.groupParent=null,this.ifEmpty=null,this.nameAttr=null,this.picture=null,this.presence=null,this.rename=null,this.whitespace=null}}class Type extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"type",["none","ascii85","asciiHex","ccittfax","flate","lzw","runLength","native","xdp","mergedXDP"])}}class Uri extends StringObject{constructor(attributes){super(CONFIG_NS_ID,"uri")}}class config_Validate extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"validate",["preSubmit","prePrint","preExecute","preSave"])}}class ValidateApprovalSignatures extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"validateApprovalSignatures")}[$finalize](){this[$content]=this[$content].trim().split(/\s+/).filter(x=>["docReady","postSign"].includes(x))}}class ValidationMessaging extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"validationMessaging",["allMessagesIndividually","allMessagesTogether","firstMessageOnly","noMessages"])}}class Version extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"version",["1.7","1.6","1.5","1.4","1.3","1.2"])}}class VersionControl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"VersionControl"),this.outputBelow=getStringOption(attributes.outputBelow,["warn","error","update"]),this.sourceAbove=getStringOption(attributes.sourceAbove,["warn","error"]),this.sourceBelow=getStringOption(attributes.sourceBelow,["update","maintain"])}}class ViewerPreferences extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"viewerPreferences",!0),this.ADBE_JSConsole=null,this.ADBE_JSDebugger=null,this.addViewerPreferences=null,this.duplexOption=null,this.enforce=null,this.numberOfCopies=null,this.pageRange=null,this.pickTrayByPDFSize=null,this.printScaling=null}}class WebClient extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"webClient",!0),this.name=attributes.name?attributes.name.trim():"",this.fontInfo=null,this.xdc=null}}class Whitespace extends OptionObject{constructor(attributes){super(CONFIG_NS_ID,"whitespace",["preserve","ltrim","normalize","rtrim","trim"])}}class Window extends ContentObject{constructor(attributes){super(CONFIG_NS_ID,"window")}[$finalize](){var pair=this[$content].trim().split(/\s*,\s*/,2).map(x=>parseInt(x,10));pair.some(x=>isNaN(x))?this[$content]=[0,0]:(1===pair.length&&pair.push(pair[0]),this[$content]=pair)}}class Xdc extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xdc",!0),this.uri=new XFAObjectArray,this.xsl=new XFAObjectArray}}class Xdp extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xdp",!0),this.packets=null}}class Xsl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"xsl",!0),this.debug=null,this.uri=null}}class Zpl extends XFAObject{constructor(attributes){super(CONFIG_NS_ID,"zpl",!0),this.name=attributes.name?attributes.name.trim():"",this.batchOutput=null,this.flipLabel=null,this.fontInfo=null,this.xdc=null}}class ConfigNamespace{static[$buildXFAObject](name,attributes){if(ConfigNamespace.hasOwnProperty(name))return ConfigNamespace[name](attributes)}static acrobat(attrs){return new Acrobat(attrs)}static acrobat7(attrs){return new Acrobat7(attrs)}static ADBE_JSConsole(attrs){return new ADBE_JSConsole(attrs)}static ADBE_JSDebugger(attrs){return new ADBE_JSDebugger(attrs)}static addSilentPrint(attrs){return new AddSilentPrint(attrs)}static addViewerPreferences(attrs){return new AddViewerPreferences(attrs)}static adjustData(attrs){return new AdjustData(attrs)}static adobeExtensionLevel(attrs){return new AdobeExtensionLevel(attrs)}static agent(attrs){return new Agent(attrs)}static alwaysEmbed(attrs){return new AlwaysEmbed(attrs)}static amd(attrs){return new Amd(attrs)}static area(attrs){return new config_Area(attrs)}static attributes(attrs){return new Attributes(attrs)}static autoSave(attrs){return new AutoSave(attrs)}static base(attrs){return new Base(attrs)}static batchOutput(attrs){return new BatchOutput(attrs)}static behaviorOverride(attrs){return new BehaviorOverride(attrs)}static cache(attrs){return new Cache(attrs)}static change(attrs){return new Change(attrs)}static common(attrs){return new Common(attrs)}static compress(attrs){return new Compress(attrs)}static compressLogicalStructure(attrs){return new CompressLogicalStructure(attrs)}static compressObjectStream(attrs){return new CompressObjectStream(attrs)}static compression(attrs){return new Compression(attrs)}static config(attrs){return new Config(attrs)}static conformance(attrs){return new Conformance(attrs)}static contentCopy(attrs){return new ContentCopy(attrs)}static copies(attrs){return new Copies(attrs)}static creator(attrs){return new Creator(attrs)}static currentPage(attrs){return new CurrentPage(attrs)}static data(attrs){return new Data(attrs)}static debug(attrs){return new Debug(attrs)}static defaultTypeface(attrs){return new DefaultTypeface(attrs)}static destination(attrs){return new Destination(attrs)}static documentAssembly(attrs){return new DocumentAssembly(attrs)}static driver(attrs){return new Driver(attrs)}static duplexOption(attrs){return new DuplexOption(attrs)}static dynamicRender(attrs){return new DynamicRender(attrs)}static embed(attrs){return new Embed(attrs)}static encrypt(attrs){return new config_Encrypt(attrs)}static encryption(attrs){return new config_Encryption(attrs)}static encryptionLevel(attrs){return new EncryptionLevel(attrs)}static enforce(attrs){return new Enforce(attrs)}static equate(attrs){return new Equate(attrs)}static equateRange(attrs){return new EquateRange(attrs)}static exclude(attrs){return new Exclude(attrs)}static excludeNS(attrs){return new ExcludeNS(attrs)}static flipLabel(attrs){return new FlipLabel(attrs)}static fontInfo(attrs){return new config_FontInfo(attrs)}static formFieldFilling(attrs){return new FormFieldFilling(attrs)}static groupParent(attrs){return new GroupParent(attrs)}static ifEmpty(attrs){return new IfEmpty(attrs)}static includeXDPContent(attrs){return new IncludeXDPContent(attrs)}static incrementalLoad(attrs){return new IncrementalLoad(attrs)}static incrementalMerge(attrs){return new IncrementalMerge(attrs)}static interactive(attrs){return new Interactive(attrs)}static jog(attrs){return new Jog(attrs)}static labelPrinter(attrs){return new LabelPrinter(attrs)}static layout(attrs){return new Layout(attrs)}static level(attrs){return new Level(attrs)}static linearized(attrs){return new Linearized(attrs)}static locale(attrs){return new Locale(attrs)}static localeSet(attrs){return new LocaleSet(attrs)}static log(attrs){return new Log(attrs)}static map(attrs){return new MapElement(attrs)}static mediumInfo(attrs){return new MediumInfo(attrs)}static message(attrs){return new config_Message(attrs)}static messaging(attrs){return new Messaging(attrs)}static mode(attrs){return new Mode(attrs)}static modifyAnnots(attrs){return new ModifyAnnots(attrs)}static msgId(attrs){return new MsgId(attrs)}static nameAttr(attrs){return new NameAttr(attrs)}static neverEmbed(attrs){return new NeverEmbed(attrs)}static numberOfCopies(attrs){return new NumberOfCopies(attrs)}static openAction(attrs){return new OpenAction(attrs)}static output(attrs){return new Output(attrs)}static outputBin(attrs){return new OutputBin(attrs)}static outputXSL(attrs){return new OutputXSL(attrs)}static overprint(attrs){return new Overprint(attrs)}static packets(attrs){return new Packets(attrs)}static pageOffset(attrs){return new PageOffset(attrs)}static pageRange(attrs){return new PageRange(attrs)}static pagination(attrs){return new Pagination(attrs)}static paginationOverride(attrs){return new PaginationOverride(attrs)}static part(attrs){return new Part(attrs)}static pcl(attrs){return new Pcl(attrs)}static pdf(attrs){return new Pdf(attrs)}static pdfa(attrs){return new Pdfa(attrs)}static permissions(attrs){return new Permissions(attrs)}static pickTrayByPDFSize(attrs){return new PickTrayByPDFSize(attrs)}static picture(attrs){return new config_Picture(attrs)}static plaintextMetadata(attrs){return new PlaintextMetadata(attrs)}static presence(attrs){return new Presence(attrs)}static present(attrs){return new Present(attrs)}static print(attrs){return new Print(attrs)}static printHighQuality(attrs){return new PrintHighQuality(attrs)}static printScaling(attrs){return new PrintScaling(attrs)}static printerName(attrs){return new PrinterName(attrs)}static producer(attrs){return new Producer(attrs)}static ps(attrs){return new Ps(attrs)}static range(attrs){return new Range(attrs)}static record(attrs){return new Record(attrs)}static relevant(attrs){return new Relevant(attrs)}static rename(attrs){return new Rename(attrs)}static renderPolicy(attrs){return new RenderPolicy(attrs)}static runScripts(attrs){return new RunScripts(attrs)}static script(attrs){return new config_Script(attrs)}static scriptModel(attrs){return new ScriptModel(attrs)}static severity(attrs){return new Severity(attrs)}static silentPrint(attrs){return new SilentPrint(attrs)}static staple(attrs){return new Staple(attrs)}static startNode(attrs){return new StartNode(attrs)}static startPage(attrs){return new StartPage(attrs)}static submitFormat(attrs){return new SubmitFormat(attrs)}static submitUrl(attrs){return new SubmitUrl(attrs)}static subsetBelow(attrs){return new SubsetBelow(attrs)}static suppressBanner(attrs){return new SuppressBanner(attrs)}static tagged(attrs){return new Tagged(attrs)}static template(attrs){return new config_Template(attrs)}static templateCache(attrs){return new TemplateCache(attrs)}static threshold(attrs){return new Threshold(attrs)}static to(attrs){return new To(attrs)}static trace(attrs){return new Trace(attrs)}static transform(attrs){return new Transform(attrs)}static type(attrs){return new Type(attrs)}static uri(attrs){return new Uri(attrs)}static validate(attrs){return new config_Validate(attrs)}static validateApprovalSignatures(attrs){return new ValidateApprovalSignatures(attrs)}static validationMessaging(attrs){return new ValidationMessaging(attrs)}static version(attrs){return new Version(attrs)}static versionControl(attrs){return new VersionControl(attrs)}static viewerPreferences(attrs){return new ViewerPreferences(attrs)}static webClient(attrs){return new WebClient(attrs)}static whitespace(attrs){return new Whitespace(attrs)}static window(attrs){return new Window(attrs)}static xdc(attrs){return new Xdc(attrs)}static xdp(attrs){return new Xdp(attrs)}static xsl(attrs){return new Xsl(attrs)}static zpl(attrs){return new Zpl(attrs)}}const CONNECTION_SET_NS_ID=NamespaceIds.connectionSet.id;class ConnectionSet extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"connectionSet",!0),this.wsdlConnection=new XFAObjectArray,this.xmlConnection=new XFAObjectArray,this.xsdConnection=new XFAObjectArray}}class EffectiveInputPolicy extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"effectiveInputPolicy"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class EffectiveOutputPolicy extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"effectiveOutputPolicy"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class Operation extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"operation"),this.id=attributes.id||"",this.input=attributes.input||"",this.name=attributes.name||"",this.output=attributes.output||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class RootElement extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"rootElement"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class SoapAction extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"soapAction"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class SoapAddress extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"soapAddress"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class connection_set_Uri extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"uri"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class WsdlAddress extends StringObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"wsdlAddress"),this.id=attributes.id||"",this.name=attributes.name||"",this.use=attributes.use||"",this.usehref=attributes.usehref||""}}class WsdlConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"wsdlConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.effectiveInputPolicy=null,this.effectiveOutputPolicy=null,this.operation=null,this.soapAction=null,this.soapAddress=null,this.wsdlAddress=null}}class XmlConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"xmlConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.uri=null}}class XsdConnection extends XFAObject{constructor(attributes){super(CONNECTION_SET_NS_ID,"xsdConnection",!0),this.dataDescription=attributes.dataDescription||"",this.name=attributes.name||"",this.rootElement=null,this.uri=null}}class ConnectionSetNamespace{static[$buildXFAObject](name,attributes){if(ConnectionSetNamespace.hasOwnProperty(name))return ConnectionSetNamespace[name](attributes)}static connectionSet(attrs){return new ConnectionSet(attrs)}static effectiveInputPolicy(attrs){return new EffectiveInputPolicy(attrs)}static effectiveOutputPolicy(attrs){return new EffectiveOutputPolicy(attrs)}static operation(attrs){return new Operation(attrs)}static rootElement(attrs){return new RootElement(attrs)}static soapAction(attrs){return new SoapAction(attrs)}static soapAddress(attrs){return new SoapAddress(attrs)}static uri(attrs){return new connection_set_Uri(attrs)}static wsdlAddress(attrs){return new WsdlAddress(attrs)}static wsdlConnection(attrs){return new WsdlConnection(attrs)}static xmlConnection(attrs){return new XmlConnection(attrs)}static xsdConnection(attrs){return new XsdConnection(attrs)}}const DATASETS_NS_ID=NamespaceIds.datasets.id;class datasets_Data extends XmlObject{constructor(attributes){super(DATASETS_NS_ID,"data",attributes)}[$isNsAgnostic](){return!0}}class Datasets extends XFAObject{constructor(attributes){super(DATASETS_NS_ID,"datasets",!0),this.data=null,this.Signature=null}[$onChild](child){var name=child[$nodeName];("data"===name&&child[$namespaceId]===DATASETS_NS_ID||"Signature"===name&&child[$namespaceId]===NamespaceIds.signature.id)&&(this[name]=child),this[$appendChild](child)}}class DatasetsNamespace{static[$buildXFAObject](name,attributes){if(DatasetsNamespace.hasOwnProperty(name))return DatasetsNamespace[name](attributes)}static datasets(attributes){return new Datasets(attributes)}static data(attributes){return new datasets_Data(attributes)}}const LOCALE_SET_NS_ID=NamespaceIds.localeSet.id;class CalendarSymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"calendarSymbols",!0),this.name="gregorian",this.dayNames=new XFAObjectArray(2),this.eraNames=null,this.meridiemNames=null,this.monthNames=new XFAObjectArray(2)}}class CurrencySymbol extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"currencySymbol"),this.name=getStringOption(attributes.name,["symbol","isoname","decimal"])}}class CurrencySymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"currencySymbols",!0),this.currencySymbol=new XFAObjectArray(3)}}class DatePattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"datePattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class DatePatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"datePatterns",!0),this.datePattern=new XFAObjectArray(4)}}class DateTimeSymbols extends ContentObject{constructor(attributes){super(LOCALE_SET_NS_ID,"dateTimeSymbols")}}class Day extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"day")}}class DayNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"dayNames",!0),this.abbr=getInteger({data:attributes.abbr,defaultValue:0,validate:x=>1===x}),this.day=new XFAObjectArray(7)}}class Era extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"era")}}class EraNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"eraNames",!0),this.era=new XFAObjectArray(2)}}class locale_set_Locale extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"locale",!0),this.desc=attributes.desc||"",this.name="isoname",this.calendarSymbols=null,this.currencySymbols=null,this.datePatterns=null,this.dateTimeSymbols=null,this.numberPatterns=null,this.numberSymbols=null,this.timePatterns=null,this.typeFaces=null}}class locale_set_LocaleSet extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"localeSet",!0),this.locale=new XFAObjectArray}}class Meridiem extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"meridiem")}}class MeridiemNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"meridiemNames",!0),this.meridiem=new XFAObjectArray(2)}}class Month extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"month")}}class MonthNames extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"monthNames",!0),this.abbr=getInteger({data:attributes.abbr,defaultValue:0,validate:x=>1===x}),this.month=new XFAObjectArray(12)}}class NumberPattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberPattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class NumberPatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberPatterns",!0),this.numberPattern=new XFAObjectArray(4)}}class NumberSymbol extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberSymbol"),this.name=getStringOption(attributes.name,["decimal","grouping","percent","minus","zero"])}}class NumberSymbols extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"numberSymbols",!0),this.numberSymbol=new XFAObjectArray(5)}}class TimePattern extends StringObject{constructor(attributes){super(LOCALE_SET_NS_ID,"timePattern"),this.name=getStringOption(attributes.name,["full","long","med","short"])}}class TimePatterns extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"timePatterns",!0),this.timePattern=new XFAObjectArray(4)}}class TypeFace extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"typeFace",!0),this.name=""|attributes.name}}class TypeFaces extends XFAObject{constructor(attributes){super(LOCALE_SET_NS_ID,"typeFaces",!0),this.typeFace=new XFAObjectArray}}class LocaleSetNamespace{static[$buildXFAObject](name,attributes){if(LocaleSetNamespace.hasOwnProperty(name))return LocaleSetNamespace[name](attributes)}static calendarSymbols(attrs){return new CalendarSymbols(attrs)}static currencySymbol(attrs){return new CurrencySymbol(attrs)}static currencySymbols(attrs){return new CurrencySymbols(attrs)}static datePattern(attrs){return new DatePattern(attrs)}static datePatterns(attrs){return new DatePatterns(attrs)}static dateTimeSymbols(attrs){return new DateTimeSymbols(attrs)}static day(attrs){return new Day(attrs)}static dayNames(attrs){return new DayNames(attrs)}static era(attrs){return new Era(attrs)}static eraNames(attrs){return new EraNames(attrs)}static locale(attrs){return new locale_set_Locale(attrs)}static localeSet(attrs){return new locale_set_LocaleSet(attrs)}static meridiem(attrs){return new Meridiem(attrs)}static meridiemNames(attrs){return new MeridiemNames(attrs)}static month(attrs){return new Month(attrs)}static monthNames(attrs){return new MonthNames(attrs)}static numberPattern(attrs){return new NumberPattern(attrs)}static numberPatterns(attrs){return new NumberPatterns(attrs)}static numberSymbol(attrs){return new NumberSymbol(attrs)}static numberSymbols(attrs){return new NumberSymbols(attrs)}static timePattern(attrs){return new TimePattern(attrs)}static timePatterns(attrs){return new TimePatterns(attrs)}static typeFace(attrs){return new TypeFace(attrs)}static typeFaces(attrs){return new TypeFaces(attrs)}}const SIGNATURE_NS_ID=NamespaceIds.signature.id;class signature_Signature extends XFAObject{constructor(attributes){super(SIGNATURE_NS_ID,"signature",!0)}}class SignatureNamespace{static[$buildXFAObject](name,attributes){if(SignatureNamespace.hasOwnProperty(name))return SignatureNamespace[name](attributes)}static signature(attributes){return new signature_Signature(attributes)}}const STYLESHEET_NS_ID=NamespaceIds.stylesheet.id;class Stylesheet extends XFAObject{constructor(attributes){super(STYLESHEET_NS_ID,"stylesheet",!0)}}class StylesheetNamespace{static[$buildXFAObject](name,attributes){if(StylesheetNamespace.hasOwnProperty(name))return StylesheetNamespace[name](attributes)}static stylesheet(attributes){return new Stylesheet(attributes)}}const XDP_NS_ID=NamespaceIds.xdp.id;class xdp_Xdp extends XFAObject{constructor(attributes){super(XDP_NS_ID,"xdp",!0),this.uuid=attributes.uuid||"",this.timeStamp=attributes.timeStamp||"",this.config=null,this.connectionSet=null,this.datasets=null,this.localeSet=null,this.stylesheet=new XFAObjectArray,this.template=null}[$onChildCheck](child){var ns=NamespaceIds[child[$nodeName]];return ns&&child[$namespaceId]===ns.id}}class XdpNamespace{static[$buildXFAObject](name,attributes){if(XdpNamespace.hasOwnProperty(name))return XdpNamespace[name](attributes)}static xdp(attributes){return new xdp_Xdp(attributes)}}const XHTML_NS_ID=NamespaceIds.xhtml.id,$richText=Symbol(),VALID_STYLES=new Set(["color","font","font-family","font-size","font-stretch","font-style","font-weight","margin","margin-bottom","margin-left","margin-right","margin-top","letter-spacing","line-height","orphans","page-break-after","page-break-before","page-break-inside","tab-interval","tab-stop","text-align","text-decoration","text-indent","vertical-align","widows","kerning-mode","xfa-font-horizontal-scale","xfa-font-vertical-scale","xfa-spacerun","xfa-tab-stops"]),StyleMapping=new Map([["page-break-after","breakAfter"],["page-break-before","breakBefore"],["page-break-inside","breakInside"],["kerning-mode",value=>"none"===value?"none":"normal"],["xfa-font-horizontal-scale",value=>`scaleX(${Math.max(0,Math.min(parseInt(value)/100)).toFixed(2)})`],["xfa-font-vertical-scale",value=>`scaleY(${Math.max(0,Math.min(parseInt(value)/100)).toFixed(2)})`],["xfa-spacerun",""],["xfa-tab-stops",""],["font-size",(value,original)=>measureToString(.99*(value=original.fontSize=getMeasurement(value)))],["letter-spacing",value=>measureToString(getMeasurement(value))],["line-height",value=>measureToString(getMeasurement(value))],["margin",value=>measureToString(getMeasurement(value))],["margin-bottom",value=>measureToString(getMeasurement(value))],["margin-left",value=>measureToString(getMeasurement(value))],["margin-right",value=>measureToString(getMeasurement(value))],["margin-top",value=>measureToString(getMeasurement(value))],["text-indent",value=>measureToString(getMeasurement(value))],["font-family",value=>value],["vertical-align",value=>measureToString(getMeasurement(value))]]),spacesRegExp=/\s+/g,crlfRegExp=/[\r\n]+/g,crlfForRichTextRegExp=/\r\n?/g;function mapStyle(styleStr,node,richText){var style=Object.create(null);if(styleStr){var key,value,original=Object.create(null);for([key,value]of styleStr.split(";").map(s=>s.split(":",2))){var mapping=StyleMapping.get(key);if(""!==mapping){let newValue=value;mapping&&(newValue="string"==typeof mapping?mapping:mapping(value,original)),key.endsWith("scale")?style.transform=style.transform?style[key]+" "+newValue:newValue:style[key.replaceAll(/-([a-zA-Z])/g,(_,x)=>x.toUpperCase())]=newValue}}style.fontFamily&&setFontFamily({typeface:style.fontFamily,weight:style.fontWeight||"normal",posture:style.fontStyle||"normal",size:original.fontSize||0},node,node[$globalData].fontFinder,style),richText&&style.verticalAlign&&"0px"!==style.verticalAlign&&style.fontSize&&(styleStr=getMeasurement(style.fontSize),style.fontSize=measureToString(.583*styleStr),style.verticalAlign=measureToString(Math.sign(getMeasurement(style.verticalAlign))*styleStr*.333)),richText&&style.fontSize&&(style.fontSize=`calc(${style.fontSize} * var(--scale-factor))`),fixTextIndent(style)}return style}function checkStyle(node){return node.style?node.style.trim().split(/\s*;\s*/).filter(s=>!!s).map(s=>s.split(/\s*:\s*/,2)).filter(([key,value])=>("font-family"===key&&node[$globalData].usedTypefaces.add(value),VALID_STYLES.has(key))).map(kv=>kv.join(":")).join(";"):""}const NoWhites=new Set(["body","html"]);class XhtmlObject extends XmlObject{constructor(attributes,name){super(XHTML_NS_ID,name),this[$richText]=!1,this.style=attributes.style||""}[$clean](builder){super[$clean](builder),this.style=checkStyle(this)}[$acceptWhitespace](){return!NoWhites.has(this[$nodeName])}[$onText](str,richText=!1){richText?this[$richText]=!0:(str=str.replaceAll(crlfRegExp,""),this.style.includes("xfa-spacerun:yes")||(str=str.replaceAll(spacesRegExp," "))),str&&(this[$content]+=str)}[$pushGlyphs](measure,mustPop=!0){var key,value,xfaFont=Object.create(null),margin={top:NaN,bottom:NaN,left:NaN,right:NaN};let lineHeight=null;for([key,value]of this.style.split(";").map(s=>s.split(":",2)))switch(key){case"font-family":xfaFont.typeface=stripQuotes(value);break;case"font-size":xfaFont.size=getMeasurement(value);break;case"font-weight":xfaFont.weight=value;break;case"font-style":xfaFont.posture=value;break;case"letter-spacing":xfaFont.letterSpacing=getMeasurement(value);break;case"margin":var values=value.split(/ \t/).map(x=>getMeasurement(x));switch(values.length){case 1:margin.top=margin.bottom=margin.left=margin.right=values[0];break;case 2:margin.top=margin.bottom=values[0],margin.left=margin.right=values[1];break;case 3:margin.top=values[0],margin.bottom=values[2],margin.left=margin.right=values[1];break;case 4:margin.top=values[0],margin.left=values[1],margin.bottom=values[2],margin.right=values[3]}break;case"margin-top":margin.top=getMeasurement(value);break;case"margin-bottom":margin.bottom=getMeasurement(value);break;case"margin-left":margin.left=getMeasurement(value);break;case"margin-right":margin.right=getMeasurement(value);break;case"line-height":lineHeight=getMeasurement(value)}if(measure.pushData(xfaFont,margin,lineHeight),this[$content])measure.addString(this[$content]);else for(const child of this[$getChildren]())"#text"===child[$nodeName]?measure.addString(child[$content]):child[$pushGlyphs](measure);mustPop&&measure.popFont()}[$toHTML](availableSpace){var children=[];if(this[$extra]={children:children},this[$childrenToHTML]({}),0===children.length&&!this[$content])return HTMLResult.EMPTY;let value;return value=this[$richText]?this[$content]?this[$content].replaceAll(crlfForRichTextRegExp,"\n"):void 0:this[$content]||void 0,HTMLResult.success({name:this[$nodeName],attributes:{href:this.href,style:mapStyle(this.style,this,this[$richText])},children:children,value:value})}}class A extends XhtmlObject{constructor(attributes){super(attributes,"a"),this.href=fixURL(attributes.href)||""}}class B extends XhtmlObject{constructor(attributes){super(attributes,"b")}[$pushGlyphs](measure){measure.pushFont({weight:"bold"}),super[$pushGlyphs](measure),measure.popFont()}}class Body extends XhtmlObject{constructor(attributes){super(attributes,"body")}[$toHTML](availableSpace){var availableSpace=super[$toHTML](availableSpace),html=availableSpace["html"];return html?(html.name="div",html.attributes.class=["xfaRich"],availableSpace):HTMLResult.EMPTY}}class Br extends XhtmlObject{constructor(attributes){super(attributes,"br")}[$text](){return"\n"}[$pushGlyphs](measure){measure.addString("\n")}[$toHTML](availableSpace){return HTMLResult.success({name:"br"})}}class Html extends XhtmlObject{constructor(attributes){super(attributes,"html")}[$toHTML](availableSpace){var children=[];if(this[$extra]={children:children},this[$childrenToHTML]({}),0===children.length)return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},value:this[$content]||""});if(1===children.length){var child=children[0];if(child.attributes?.class.includes("xfaRich"))return HTMLResult.success(child)}return HTMLResult.success({name:"div",attributes:{class:["xfaRich"],style:{}},children:children})}}class I extends XhtmlObject{constructor(attributes){super(attributes,"i")}[$pushGlyphs](measure){measure.pushFont({posture:"italic"}),super[$pushGlyphs](measure),measure.popFont()}}class Li extends XhtmlObject{constructor(attributes){super(attributes,"li")}}class Ol extends XhtmlObject{constructor(attributes){super(attributes,"ol")}}class P extends XhtmlObject{constructor(attributes){super(attributes,"p")}[$pushGlyphs](measure){super[$pushGlyphs](measure,!1),measure.addString("\n"),measure.addPara(),measure.popFont()}[$text](){return this[$getParent]()[$getChildren]().at(-1)===this?super[$text]():super[$text]()+"\n"}}class Span extends XhtmlObject{constructor(attributes){super(attributes,"span")}}class Sub extends XhtmlObject{constructor(attributes){super(attributes,"sub")}}class Sup extends XhtmlObject{constructor(attributes){super(attributes,"sup")}}class Ul extends XhtmlObject{constructor(attributes){super(attributes,"ul")}}class XhtmlNamespace{static[$buildXFAObject](name,attributes){if(XhtmlNamespace.hasOwnProperty(name))return XhtmlNamespace[name](attributes)}static a(attributes){return new A(attributes)}static b(attributes){return new B(attributes)}static body(attributes){return new Body(attributes)}static br(attributes){return new Br(attributes)}static html(attributes){return new Html(attributes)}static i(attributes){return new I(attributes)}static li(attributes){return new Li(attributes)}static ol(attributes){return new Ol(attributes)}static p(attributes){return new P(attributes)}static span(attributes){return new Span(attributes)}static sub(attributes){return new Sub(attributes)}static sup(attributes){return new Sup(attributes)}static ul(attributes){return new Ul(attributes)}}const NamespaceSetUp={config:ConfigNamespace,connection:ConnectionSetNamespace,datasets:DatasetsNamespace,localeSet:LocaleSetNamespace,signature:SignatureNamespace,stylesheet:StylesheetNamespace,template:TemplateNamespace,xdp:XdpNamespace,xhtml:XhtmlNamespace};class UnknownNamespace{constructor(nsId){this.namespaceId=nsId}[$buildXFAObject](name,attributes){return new XmlObject(this.namespaceId,name,attributes)}}class Root extends XFAObject{constructor(ids){super(-1,"root",Object.create(null)),this.element=null,this[$ids]=ids}[$onChild](child){return this.element=child,!0}[$finalize](){super[$finalize](),this.element.template instanceof Template&&(this[$ids].set($root,this.element),this.element.template[$resolvePrototypes](this[$ids]),this.element.template[$ids]=this[$ids])}}class Empty extends XFAObject{constructor(){super(-1,"",Object.create(null))}[$onChild](_){return!1}}class Builder{constructor(rootNameSpace=null){this._namespaceStack=[],this._nsAgnosticLevel=0,this._namespacePrefixes=new Map,this._namespaces=new Map,this._nextNsId=Math.max(...Object.values(NamespaceIds).map(({id})=>id)),this._currentNamespace=rootNameSpace||new UnknownNamespace(++this._nextNsId)}buildRoot(ids){return new Root(ids)}build({nsPrefix,name,attributes,namespace,prefixes}){var hasNamespaceDef=null!==namespace;if(hasNamespaceDef&&(this._namespaceStack.push(this._currentNamespace),this._currentNamespace=this._searchNamespace(namespace)),prefixes&&this._addNamespacePrefix(prefixes),attributes.hasOwnProperty($nsAttributes)){var ns,attrs,dataTemplate=NamespaceSetUp.datasets,namespace=attributes[$nsAttributes];let xfaAttrs=null;for([ns,attrs]of Object.entries(namespace))if(this._getNamespaceToUse(ns)===dataTemplate){xfaAttrs={xfa:attrs};break}xfaAttrs?attributes[$nsAttributes]=xfaAttrs:delete attributes[$nsAttributes]}namespace=this._getNamespaceToUse(nsPrefix)?.[$buildXFAObject](name,attributes)||new Empty;return namespace[$isNsAgnostic]()&&this._nsAgnosticLevel++,(hasNamespaceDef||prefixes||namespace[$isNsAgnostic]())&&(namespace[$cleanup]={hasNamespace:hasNamespaceDef,prefixes:prefixes,nsAgnostic:namespace[$isNsAgnostic]()}),namespace}isNsAgnostic(){return 0{this._namespacePrefixes.get(prefix).pop()}),nsAgnostic&&this._nsAgnosticLevel--}}class XFAParser extends XMLParserBase{constructor(rootNameSpace=null,richText=!1){super(),this._builder=new Builder(rootNameSpace),this._stack=[],this._globalData={usedTypefaces:new Set},this._ids=new Map,this._current=this._builder.buildRoot(this._ids),this._errorCode=XMLParserErrorCode.NoError,this._whiteRegex=/^\s+$/,this._nbsps=/\xa0+/g,this._richText=richText}parse(data){if(this.parseXml(data),this._errorCode===XMLParserErrorCode.NoError)return this._current[$finalize](),this._current.element}onText(text){text=text.replace(this._nbsps,match=>match.slice(1)+" "),this._richText||this._current[$acceptWhitespace]()?this._current[$onText](text,this._richText):this._whiteRegex.test(text)||this._current[$onText](text.trim())}onCdata(text){this._current[$onText](text)}_mkAttributes(attributes,tagName){let namespace=null,prefixes=null;var name,value,attributeObj=Object.create({});for({name,value}of attributes)if("xmlns"===name)namespace?warn(`XFA - multiple namespace definition in <${tagName}>`):namespace=value;else if(name.startsWith("xmlns:")){var prefix=name.substring("xmlns:".length);(prefixes=prefixes||[]).push({prefix:prefix,value:value})}else{prefix=name.indexOf(":");if(-1===prefix)attributeObj[name]=value;else{let nsAttrs=attributeObj[$nsAttributes];nsAttrs=nsAttrs||(attributeObj[$nsAttributes]=Object.create(null));var[ns,attrName]=[name.slice(0,prefix),name.slice(prefix+1)];(nsAttrs[ns]||=Object.create(null))[attrName]=value}}return[namespace,prefixes,attributeObj]}_getNameAndPrefix(name,nsAgnostic){var i=name.indexOf(":");return-1===i?[name,null]:[name.substring(i+1),nsAgnostic?"":name.substring(0,i)]}onBeginElement(tagName,attributes,isEmpty){var[attributes,prefixes,attributesObj]=this._mkAttributes(attributes,tagName),[tagName,nsPrefix]=this._getNameAndPrefix(tagName,this._builder.isNsAgnostic()),nsPrefix=this._builder.build({nsPrefix:nsPrefix,name:tagName,attributes:attributesObj,namespace:attributes,prefixes:prefixes});nsPrefix[$globalData]=this._globalData,isEmpty?(nsPrefix[$finalize](),this._current[$onChild](nsPrefix)&&nsPrefix[$setId](this._ids),nsPrefix[$clean](this._builder)):(this._stack.push(this._current),this._current=nsPrefix)}onEndElement(name){var parser,node=this._current;node[$isCDATAXml]()&&"string"==typeof node[$content]&&((parser=new XFAParser)._globalData=this._globalData,parser=parser.parse(node[$content]),node[$content]=null,node[$onChild](parser)),node[$finalize](),this._current=this._stack.pop(),this._current[$onChild](node)&&node[$setId](this._ids),node[$clean](this._builder)}onError(code){this._errorCode=code}}class XFAFactory{constructor(data){try{this.root=(new XFAParser).parse(XFAFactory._createDocument(data));var binder=new Binder(this.root);this.form=binder.bind(),this.dataHandler=new DataHandler(this.root,binder.getData()),this.form[$globalData].template=this.form}catch(e){warn("XFA - an error occurred during parsing and binding: "+e)}}isValid(){return this.root&&this.form}_createPagesHelper(){const iterator=this.form[$toPages]();return new Promise((resolve,reject)=>{const nextIteration=()=>{try{var value=iterator.next();value.done?resolve(value.value):setTimeout(nextIteration,0)}catch(e){reject(e)}};setTimeout(nextIteration,0)})}async _createPages(){try{this.pages=await this._createPagesHelper(),this.dims=this.pages.children.map(c=>{var{width:c,height}=c.attributes.style;return[0,0,parseInt(c),parseInt(height)]})}catch(e){warn("XFA - an error occurred during layout: "+e)}}getBoundingBox(pageIndex){return this.dims[pageIndex]}async getNumPages(){return this.pages||await this._createPages(),this.dims.length}setImages(images){this.form[$globalData].images=images}setFonts(fonts){this.form[$globalData].fontFinder=new FontFinder(fonts);var typeface,missingFonts=[];for(typeface of this.form[$globalData].usedTypefaces)typeface=stripQuotes(typeface),this.form[$globalData].fontFinder.find(typeface)||missingFonts.push(typeface);return 0!attr.startsWith("xfa"))),attributes.dir="auto"),{html:html,str:root[$text]()}):null}catch(e){warn("XFA - an error occurred during parsing of rich text: "+e)}return null}}class AnnotationFactory{static createGlobals(pdfManager){return Promise.all([pdfManager.ensureCatalog("acroForm"),pdfManager.ensureDoc("xfaDatasets"),pdfManager.ensureCatalog("structTreeRoot"),pdfManager.ensureCatalog("baseUrl"),pdfManager.ensureCatalog("attachments")]).then(([acroForm,xfaDatasets,structTreeRoot,baseUrl,attachments])=>({pdfManager:pdfManager,acroForm:acroForm instanceof Dict?acroForm:Dict.empty,xfaDatasets:xfaDatasets,structTreeRoot:structTreeRoot,baseUrl:baseUrl,attachments:attachments}),reason=>(warn(`createGlobals: "${reason}".`),null))}static async create(xref,ref,annotationGlobals,idFactory,collectFields,pageRef){var pageIndex=collectFields?await this._getPageIndex(xref,ref,annotationGlobals.pdfManager):null;return annotationGlobals.pdfManager.ensure(this,"_create",[xref,ref,annotationGlobals,idFactory,collectFields,pageIndex,pageRef])}static _create(xref,ref,annotationGlobals,idFactory,collectFields=!1,pageIndex=null,pageRef=null){var dict=xref.fetchIfRef(ref);if(dict instanceof Dict){var{acroForm,pdfManager}=annotationGlobals,idFactory=ref instanceof Ref?ref.toString():"annot_"+idFactory.createObjId(),subtype=dict.get("Subtype"),parameters={xref:xref,ref:ref,dict:dict,subtype:subtype=subtype instanceof Name?subtype.name:null,id:idFactory,annotationGlobals:annotationGlobals,collectFields:collectFields,needAppearances:!collectFields&&!0===acroForm.get("NeedAppearances"),pageIndex:pageIndex,evaluatorOptions:pdfManager.evaluatorOptions,pageRef:pageRef};switch(subtype){case"Link":return new LinkAnnotation(parameters);case"Text":return new TextAnnotation(parameters);case"Widget":var fieldType=getInheritableProperty({dict:dict,key:"FT"});switch(fieldType=fieldType instanceof Name?fieldType.name:null){case"Tx":return new TextWidgetAnnotation(parameters);case"Btn":return new ButtonWidgetAnnotation(parameters);case"Ch":return new ChoiceWidgetAnnotation(parameters);case"Sig":return new SignatureWidgetAnnotation(parameters)}return warn(`Unimplemented widget field type "${fieldType}", `+"falling back to base field type."),new WidgetAnnotation(parameters);case"Popup":return new PopupAnnotation(parameters);case"FreeText":return new FreeTextAnnotation(parameters);case"Line":return new LineAnnotation(parameters);case"Square":return new SquareAnnotation(parameters);case"Circle":return new CircleAnnotation(parameters);case"PolyLine":return new PolylineAnnotation(parameters);case"Polygon":return new PolygonAnnotation(parameters);case"Caret":return new CaretAnnotation(parameters);case"Ink":return new InkAnnotation(parameters);case"Highlight":return new HighlightAnnotation(parameters);case"Underline":return new UnderlineAnnotation(parameters);case"Squiggly":return new SquigglyAnnotation(parameters);case"StrikeOut":return new StrikeOutAnnotation(parameters);case"Stamp":return new StampAnnotation(parameters);case"FileAttachment":return new FileAttachmentAnnotation(parameters);default:return collectFields||warn(subtype?`Unimplemented annotation type "${subtype}", `+"falling back to base annotation.":"Annotation is missing the required /Subtype."),new Annotation(parameters)}}}static async _getPageIndex(xref,ref,pdfManager){try{var annotDict=await xref.fetchIfRefAsync(ref);if(!(annotDict instanceof Dict))return-1;var pageRef=annotDict.getRaw("P");if(pageRef instanceof Ref)try{return await pdfManager.ensureCatalog("getPageIndex",[pageRef])}catch(ex){info(`_getPageIndex -- not a valid page reference: "${ex}".`)}if(annotDict.has("Kids"))return-1;var numPages=await pdfManager.ensureDoc("numPages");for(let pageIndex=0;pageIndexc/255)}function getQuadPoints(dict,rect){var quadPoints=dict.getArray("QuadPoints");if(!Array.isArray(quadPoints)||0===quadPoints.length||0rect[2]||minYrect[3]))return null;quadPointsLists.push([{x:minX,y:maxY},{x:maxX,y:maxY},{x:minX,y:minY},{x:maxX,y:minY}])}return quadPointsLists}function getTransformMatrix(rect,bbox,matrix){var[bbox,matrix,maxX,maxY]=Util.getAxialAlignedBoundingBox(bbox,matrix);return bbox===maxX||matrix===maxY?[1,0,0,1,rect[0],rect[1]]:[maxX=(rect[2]-rect[0])/(maxX-bbox),0,0,maxY=(rect[3]-rect[1])/(maxY-matrix),rect[0]-bbox*maxX,rect[1]-matrix*maxY]}class Annotation{constructor(params){var structParent,{dict,xref,annotationGlobals}=params,MK=(this.setTitle(dict.get("T")),this.setContents(dict.get("Contents")),this.setModificationDate(dict.get("M")),this.setFlags(dict.get("F")),this.setRectangle(dict.getArray("Rect")),this.setColor(dict.getArray("C")),this.setBorderStyle(dict),this.setAppearance(dict),this.setOptionalContent(dict),dict.get("MK")),MK=(this.setBorderAndBackgroundColors(MK),this.setRotation(MK,dict),this.ref=params.ref instanceof Ref?params.ref:null,this._streams=[],this.appearance&&this._streams.push(this.appearance),!!(this.flags&AnnotationFlag.LOCKED)),isContentLocked=!!(this.flags&AnnotationFlag.LOCKEDCONTENTS);if(annotationGlobals.structTreeRoot&&(structParent=dict.get("StructParent"),structParent=Number.isInteger(structParent)&&0<=structParent?structParent:-1,annotationGlobals.structTreeRoot.addAnnotationIdToPage(params.pageRef,structParent)),this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,rotation:this.rotation,contentsObj:this._contents,hasAppearance:!!this.appearance,id:params.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:params.subtype,hasOwnCanvas:!1,noRotate:!!(this.flags&AnnotationFlag.NOROTATE),noHTML:MK&&isContentLocked},params.collectFields){annotationGlobals=dict.get("Kids");if(Array.isArray(annotationGlobals)){var kidIds=[];for(const kid of annotationGlobals)kid instanceof Ref&&kidIds.push(kid.toString());0!==kidIds.length&&(this.data.kidIds=kidIds)}this.data.actions=collectActions(xref,dict,AnnotationActionEventType),this.data.fieldName=this._constructFieldName(dict),this.data.pageIndex=params.pageIndex}this._isOffscreenCanvasSupported=params.evaluatorOptions.isOffscreenCanvasSupported,this._fallbackFontDict=null,this._needAppearances=!1}_hasFlag(flags,flag){return!!(flags&flag)}_isViewable(flags){return!this._hasFlag(flags,AnnotationFlag.INVISIBLE)&&!this._hasFlag(flags,AnnotationFlag.NOVIEW)}_isPrintable(flags){return this._hasFlag(flags,AnnotationFlag.PRINT)&&!this._hasFlag(flags,AnnotationFlag.HIDDEN)&&!this._hasFlag(flags,AnnotationFlag.INVISIBLE)}mustBeViewed(annotationStorage,_renderForms){annotationStorage=annotationStorage?.get(this.data.id)?.noView;return void 0!==annotationStorage?!annotationStorage:this.viewable&&!this._hasFlag(this.flags,AnnotationFlag.HIDDEN)}mustBePrinted(annotationStorage){annotationStorage=annotationStorage?.get(this.data.id)?.noPrint;return void 0!==annotationStorage?!annotationStorage:this.printable}get viewable(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}get printable(){return null!==this.data.quadPoints&&0!==this.flags&&this._isPrintable(this.flags)}_parseStringHelper(data){data="string"==typeof data?stringToPDFString(data):"";return{str:data,dir:data&&"rtl"===bidi(data).dir?"rtl":"ltr"}}setDefaultAppearance(params){var{dict:params,annotationGlobals}=params,params=getInheritableProperty({dict:params,key:"DA"})||annotationGlobals.acroForm.get("DA");this._defaultAppearance="string"==typeof params?params:"",this.data.defaultAppearanceData=parseDefaultAppearance(this._defaultAppearance)}setTitle(title){this._title=this._parseStringHelper(title)}setContents(contents){this._contents=this._parseStringHelper(contents)}setModificationDate(modificationDate){this.modificationDate="string"==typeof modificationDate?modificationDate:null}setFlags(flags){this.flags=Number.isInteger(flags)&&0{if(resources)return new ObjectLoader(resources,keys,resources.xref).load().then(function(){return resources})})}async getOperatorList(evaluator,task,intent,renderForms,annotationStorage){var{hasOwnCanvas,id,rect}=this.data;let appearance=this.appearance;hasOwnCanvas=!!(hasOwnCanvas&&intent&RenderingIntentFlag.DISPLAY);if(hasOwnCanvas&&(rect[0]===rect[2]||rect[1]===rect[3]))return this.data.hasOwnCanvas=!1,{opList:new OperatorList,separateForm:!1,separateCanvas:!1};if(!appearance){if(!hasOwnCanvas)return{opList:new OperatorList,separateForm:!1,separateCanvas:!1};(appearance=new StringStream("")).dict=new Dict}var intent=appearance.dict,resources=await this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"],appearance),bbox=intent.getArray("BBox")||[0,0,1,1],intent=intent.getArray("Matrix")||[1,0,0,1,0,0],bbox=getTransformMatrix(rect,bbox,intent),opList=new OperatorList;let optionalContent;return void 0!==(optionalContent=this.oc?await evaluator.parseMarkedContentProps(this.oc,null):optionalContent)&&opList.addOp(OPS.beginMarkedContentProps,["OC",optionalContent]),opList.addOp(OPS.beginAnnotation,[id,rect,bbox,intent,hasOwnCanvas]),await evaluator.getOperatorList({stream:appearance,task:task,resources:resources,operatorList:opList,fallbackFontDict:this._fallbackFontDict}),opList.addOp(OPS.endAnnotation,[]),void 0!==optionalContent&&opList.addOp(OPS.endMarkedContent,[]),this.reset(),{opList:opList,separateForm:!1,separateCanvas:hasOwnCanvas}}async save(evaluator,task,annotationStorage){return null}get hasTextContent(){return!1}async extractTextContent(evaluator,task,viewBox){if(this.appearance){var resources=await this.loadResources(["ExtGState","Font","Properties","XObject"],this.appearance);const text=[],buffer=[];let firstPosition=null;var sink={desiredSize:Math.Infinity,ready:!0,enqueue(chunk,size){for(const item of chunk.items)void 0!==item.str&&(firstPosition||=item.transform.slice(-2),buffer.push(item.str),item.hasEOL)&&(text.push(buffer.join("").trimEnd()),buffer.length=0)}};await evaluator.getTextContent({stream:this.appearance,task:task,resources:resources,includeMarkedContent:!0,keepWhiteSpace:!0,sink:sink,viewBox:viewBox}),this.reset(),buffer.length&&text.push(buffer.join("").trimEnd()),(1"string"==typeof item).map(item=>stringToPDFString(item)):formValue instanceof Name?stringToPDFString(formValue.name):"string"==typeof formValue?stringToPDFString(formValue):null}hasFieldFlag(flag){return!!(this.data.fieldFlags&flag)}_isViewable(flags){return!0}mustBeViewed(annotationStorage,renderForms){return renderForms?this.viewable:super.mustBeViewed(annotationStorage,renderForms)&&!this._hasFlag(this.flags,AnnotationFlag.NOVIEW)}getRotationMatrix(annotationStorage){let rotation=annotationStorage?.get(this.data.id)?.rotation;var height;return 0===(rotation=void 0===rotation?this.rotation:rotation)?IDENTITY_MATRIX:(annotationStorage=this.data.rect[2]-this.data.rect[0],height=this.data.rect[3]-this.data.rect[1],getRotationMatrix(rotation,annotationStorage,height))}getBorderAndBackgroundAppearances(annotationStorage){let rotation=annotationStorage?.get(this.data.id)?.rotation;if(void 0===rotation&&(rotation=this.rotation),!this.backgroundColor&&!this.borderColor)return"";var annotationStorage=this.data.rect[2]-this.data.rect[0],height=this.data.rect[3]-this.data.rect[1],height=0===rotation||180===rotation?`0 0 ${annotationStorage} ${height} re`:`0 0 ${height} ${annotationStorage} re`;let str="";return this.backgroundColor&&(str=getPdfColor(this.backgroundColor,!0)+` ${height} f `),this.borderColor&&(annotationStorage=this.borderStyle.width||1,str+=`${annotationStorage} w ${getPdfColor(this.borderColor,!1)} ${height} S `),str}async getOperatorList(evaluator,task,intent,renderForms,annotationStorage){if(renderForms&&!(this instanceof SignatureWidgetAnnotation)&&!this.data.noHTML&&!this.data.hasOwnCanvas)return{opList:new OperatorList,separateForm:!0,separateCanvas:!1};if(!this._hasText)return super.getOperatorList(evaluator,task,intent,renderForms,annotationStorage);var content=await this._getAppearance(evaluator,task,intent,annotationStorage);if(this.appearance&&null===content)return super.getOperatorList(evaluator,task,intent,renderForms,annotationStorage);renderForms=new OperatorList;if(!this._defaultAppearance||null===content)return{opList:renderForms,separateForm:!1,separateCanvas:!1};var intent=!!(this.data.hasOwnCanvas&&intent&RenderingIntentFlag.DISPLAY),bbox=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],bbox=getTransformMatrix(this.data.rect,bbox,[1,0,0,1,0,0]);let optionalContent;void 0!==(optionalContent=this.oc?await evaluator.parseMarkedContentProps(this.oc,null):optionalContent)&&renderForms.addOp(OPS.beginMarkedContentProps,["OC",optionalContent]),renderForms.addOp(OPS.beginAnnotation,[this.data.id,this.data.rect,bbox,this.getRotationMatrix(annotationStorage),intent]);bbox=new StringStream(content);return await evaluator.getOperatorList({stream:bbox,task:task,resources:this._fieldResources.mergedResources,operatorList:renderForms}),renderForms.addOp(OPS.endAnnotation,[]),void 0!==optionalContent&&renderForms.addOp(OPS.endMarkedContent,[]),{opList:renderForms,separateForm:!1,separateCanvas:intent}}_getMKDict(rotation){var mk=new Dict(null);return rotation&&mk.set("R",rotation),this.borderColor&&mk.set("BC",getPdfColorArray(this.borderColor)),this.backgroundColor&&mk.set("BG",getPdfColorArray(this.backgroundColor)),0x===this.data.fieldValue[i]))return null;void 0===rotation&&(rotation=this.rotation);let appearance=null;if(!this._needAppearances&&null===(appearance=await this._getAppearance(evaluator,task,RenderingIntentFlag.SAVE,annotationStorage)))return null;let needAppearances=!1;appearance?.needAppearances&&(needAppearances=!0,appearance=null);var storageEntry=evaluator["xref"],originalDict=storageEntry.fetchIfRef(this.ref);if(!(originalDict instanceof Dict))return null;var dict=new Dict(storageEntry);for(const key of originalDict.getKeys())"AP"!==key&&dict.set(key,originalDict.getRaw(key));var newRef,appearanceStream,appearanceDict,AP,task={path:this.data.fieldName,value:value},evaluator=val=>isAscii(val)?val:stringToUTF16String(val,!0),evaluator=(dict.set("V",Array.isArray(value)?value.map(evaluator):evaluator(value)),this.amendSavedDict(annotationStorage,dict),this._getMKDict(rotation)),evaluator=(evaluator&&dict.set("MK",evaluator),[]),task=[{ref:this.ref,data:"",xfa:task,needAppearances:needAppearances}];return null!==appearance&&(newRef=storageEntry.getNewTemporaryRef(),AP=new Dict(storageEntry),dict.set("AP",AP),AP.set("N",newRef),AP=this._getSaveFieldResources(storageEntry),(appearanceDict=(appearanceStream=new StringStream(appearance)).dict=new Dict(storageEntry)).set("Subtype",Name.get("Form")),appearanceDict.set("Resources",AP),appearanceDict.set("BBox",[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]]),(AP=this.getRotationMatrix(annotationStorage))!==IDENTITY_MATRIX&&appearanceDict.set("Matrix",AP),await writeObject(newRef,appearanceStream,evaluator,storageEntry),task.push({ref:newRef,data:evaluator.join(""),xfa:null,needAppearances:!1}),evaluator.length=0),dict.set("M","D:"+getModificationDate()),await writeObject(this.ref,dict,evaluator,storageEntry),task[0].data=evaluator.join(""),task}async _getAppearance(evaluator,task,intent,annotationStorage){if(this.hasFieldFlag(AnnotationFieldFlag.PASSWORD))return null;var storageEntry=annotationStorage?.get(this.data.id);let value,rotation;if(storageEntry&&(value=storageEntry.formattedValue||storageEntry.value,rotation=storageEntry.rotation),void 0===rotation&&void 0===value&&!this._needAppearances&&(!this._hasValueFromXFA||this.appearance))return null;storageEntry=this.getBorderAndBackgroundAppearances(annotationStorage);if(void 0===value&&!(value=this.data.fieldValue))return`/Tx BMC q ${storageEntry}Q EMC`;if(assert("string"==typeof(value=Array.isArray(value)&&1===value.length?value[0]:value),"Expected `value` to be a string."),value=value.trim(),this.data.combo&&(option=this.data.options.find(({exportValue})=>value===exportValue),value=option?.displayValue||value),""===value)return`/Tx BMC q ${storageEntry}Q EMC`;void 0===rotation&&(rotation=this.rotation);let lineCount=-1,lines;this.data.multiLine?(lines=value.split(/\r\n?|\n/).map(line=>line.normalize("NFC")),lineCount=lines.length):lines=[value.replace(/\r\n?|\n/,"").normalize("NFC")];let totalHeight=this.data.rect[3]-this.data.rect[1],totalWidth=this.data.rect[2]-this.data.rect[0],font=(90!==rotation&&270!==rotation||([totalWidth,totalHeight]=[totalHeight,totalWidth]),this._defaultAppearance||(this.data.defaultAppearanceData=parseDefaultAppearance(this._defaultAppearance="/Helvetica 0 Tf 0 g")),await WidgetAnnotation._getFontData(evaluator,task,this.data.defaultAppearanceData,this._fieldResources.mergedResources)),defaultAppearance,fontSize,lineHeight;var encodedLines=[];let encodingError=!1;for(const line of lines){var encodedString=font.encodeString(line);1width+glyph.width,0)/1e3}_computeFontSize(height,width,text,font,lineCount){let fontSize=this.data.defaultAppearanceData["fontSize"],lineHeight=(fontSize||12)*LINE_FACTOR,numberOfLines=Math.round(height/lineHeight);if(!fontSize){var roundWithTwoDigits=x=>Math.floor(100*x)/100;if(-1===lineCount){var textWidth=this._getTextWidth(text,font);fontSize=roundWithTwoDigits(Math.min(height/LINE_FACTOR,width{let totalHeight=0;for(const cache of cachedLines){var chunks=this._splitLine(null,font,fsize,width,cache);if((totalHeight+=chunks.length*fsize)>height)return!0}return!1};for(numberOfLines=Math.max(numberOfLines,lineCount);;){if(lineHeight=height/numberOfLines,!isTooBig(fontSize=roundWithTwoDigits(lineHeight/LINE_FACTOR)))break;numberOfLines++}}var{fontName:text,fontColor:textWidth}=this.data.defaultAppearanceData;this._defaultAppearance=createDefaultAppearance({fontSize:fontSize,fontName:text,fontColor:textWidth})}return[this._defaultAppearance,fontSize,height/numberOfLines]}_renderText(text,font,fontSize,totalWidth,alignment,prevInfo,hPadding,vPadding){let shift;if(1===alignment){var width=this._getTextWidth(text,font)*fontSize;shift=(totalWidth-width)/2}else if(2===alignment){const width=this._getTextWidth(text,font)*fontSize;shift=totalWidth-width-hPadding}else shift=hPadding;width=numberToString(shift-prevInfo.shift);return prevInfo.shift=shift,`${width} ${vPadding=numberToString(vPadding)} Td (${escapeString(text)}) Tj`}_getSaveFieldResources(xref){var{localResources,appearanceResources,acroFormResources}=this._fieldResources,fontName=this.data.defaultAppearanceData?.fontName;if(fontName){for(const resources of[localResources,appearanceResources])if(resources instanceof Dict){var localFont=resources.get("Font");if(localFont instanceof Dict&&localFont.has(fontName))return resources}if(acroFormResources instanceof Dict){var appearanceResources=acroFormResources.get("Font");if(appearanceResources instanceof Dict&&appearanceResources.has(fontName))return(acroFormResources=new Dict(xref)).set(fontName,appearanceResources.getRaw(fontName)),(appearanceResources=new Dict(xref)).set("Font",acroFormResources),Dict.merge({xref:xref,dictArray:[appearanceResources,localResources],mergeSubDicts:!0})}}return localResources||Dict.empty}getFieldObject(){return null}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params),this.data.hasOwnCanvas=this.data.readOnly&&!this.data.noHTML,this._hasText=!0;params=params.dict;"string"!=typeof this.data.fieldValue&&(this.data.fieldValue="");let alignment=getInheritableProperty({dict:params,key:"Q"}),maximumLength=((!Number.isInteger(alignment)||alignment<0||2width?(chunks.push(line.substring(startChunk,start)),startChunk=start,currentWidth=glyphWidth,lastSpacePosInStringStart=-1):(currentWidth+=glyphWidth,lastSpacePosInStringStart=start,lastSpacePosInStringEnd=end,i):currentWidth+glyphWidth>width?currentWidth=-1!==lastSpacePosInStringStart?(chunks.push(line.substring(startChunk,lastSpacePosInStringEnd)),startChunk=lastSpacePosInStringEnd,i=lastSpacePos+1,lastSpacePosInStringStart=-1,0):(chunks.push(line.substring(startChunk,start)),startChunk=start,glyphWidth):currentWidth+=glyphWidth}return startChunk"Off"!==v),exportValues.length=0,exportValues.push("Off",asValue)),exportValues.includes(this.data.fieldValue)||(this.data.fieldValue="Off"),this.data.exportValue=exportValues[1],asValue=customAppearance.get(this.data.exportValue),this.checkedAppearance=asValue instanceof BaseStream?asValue:null,exportValues=customAppearance.get("Off"),this.uncheckedAppearance=exportValues instanceof BaseStream?exportValues:null,this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(params,"check"),this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance),this._fallbackFontDict=this.fallbackFontDict,null===this.data.defaultFieldValue)&&(this.data.defaultFieldValue="Off")}_processRadioButton(params){this.data.buttonValue=null;var fieldParent=params.dict.get("Parent"),fieldParent=(fieldParent instanceof Dict&&(this.parent=params.dict.getRaw("Parent"),(fieldParent=fieldParent.get("V"))instanceof Name)&&(this.data.fieldValue=this._decodeFormValue(fieldParent)),params.dict.get("AP"));if(fieldParent instanceof Dict){fieldParent=fieldParent.get("N");if(fieldParent instanceof Dict){for(const key of fieldParent.getKeys())if("Off"!==key){this.data.buttonValue=this._decodeFormValue(key);break}var checkedAppearance=fieldParent.get(this.data.buttonValue),checkedAppearance=(this.checkedAppearance=checkedAppearance instanceof BaseStream?checkedAppearance:null,fieldParent.get("Off"));this.uncheckedAppearance=checkedAppearance instanceof BaseStream?checkedAppearance:null,this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(params,"disc"),this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance),this._fallbackFontDict=this.fallbackFontDict,null===this.data.defaultFieldValue&&(this.data.defaultFieldValue="Off")}}}_processPushButton(params){var{dict:params,annotationGlobals}=params;params.has("A")||params.has("AA")||this.data.alternativeText?(this.data.isTooltipOnly=!params.has("A")&&!params.has("AA"),Catalog.parseDestDictionary({destDict:params,resultObj:this.data,docBaseUrl:annotationGlobals.baseUrl,docAttachments:annotationGlobals.attachments})):warn("Push buttons without action dictionaries are not supported")}getFieldObject(){let type="button",exportValues;return this.data.checkBox?(type="checkbox",exportValues=this.data.exportValue):this.data.radioButton&&(type="radiobutton",exportValues=this.data.buttonValue),{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:exportValues,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:type}}get fallbackFontDict(){var dict=new Dict;return dict.set("BaseFont",Name.get("ZapfDingbats")),dict.set("Type",Name.get("FallbackType")),dict.set("Subtype",Name.get("FallbackType")),dict.set("Encoding",Name.get("ZapfDingbatsEncoding")),shadow(this,"fallbackFontDict",dict)}}class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(params){super(params);var{dict:params,xref}=params,options=(this.indices=params.getArray("I"),this.hasIndices=Array.isArray(this.indices)&&0lineWidth&&(lineWidth=width,value=displayValue)}[defaultAppearance,fontSize]=this._computeFontSize(lineHeight,totalWidth-4,value,font,-1)}const lineHeight=fontSize*LINE_FACTOR;var vPadding=(lineHeight-fontSize)/2,annotationStorage=Math.floor(totalHeight/lineHeight);let firstIndex=0;0intent)&&(firstIndex=intent);var end=Math.min(firstIndex+annotationStorage+1,lineCount),buf=["/Tx BMC q",`1 1 ${totalWidth} ${totalHeight} re W n`];if(valueIndices.length){buf.push("0.600006 0.756866 0.854904 rg");for(const index of valueIndices)firstIndex<=index&&indexline.trimEnd()),{coords:evaluatorOptions,bbox,matrix}=FakeUnicodeFont.getFirstPositionInfo(this.rectangle,this.rotation,fontSize),this.data.textPosition=this._transformPoint(evaluatorOptions,bbox,matrix)),this._isOffscreenCanvasSupported?(evaluatorOptions=params.dict.get("CA"),bbox=new FakeUnicodeFont(xref,"sans-serif"),this.appearance=bbox.createAppearance(this._contents.str,this.rectangle,this.rotation,fontSize,fontColor,evaluatorOptions),this._streams.push(this.appearance)):warn("FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.")}}get hasTextContent(){return this._hasAppearance}static createNewDict(annotation,xref,{apRef,ap}){var{color:annotation,fontSize,rect,rotation,user,value}=annotation,freetext=new Dict(xref),rect=(freetext.set("Type",Name.get("Annot")),freetext.set("Subtype",Name.get("FreeText")),freetext.set("CreationDate","D:"+getModificationDate()),freetext.set("Rect",rect),`/Helv ${fontSize} Tf `+getPdfColor(annotation,!0));return freetext.set("DA",rect),freetext.set("Contents",isAscii(value)?value:stringToUTF16String(value,!0)),freetext.set("F",4),freetext.set("Border",[0,0,0]),freetext.set("Rotate",rotation),user&&freetext.set("T",isAscii(user)?user:stringToUTF16String(user,!0)),(apRef||ap)&&(fontSize=new Dict(xref),freetext.set("AP",fontSize),apRef?fontSize.set("N",apRef):fontSize.set("N",ap)),freetext}static async createNewAppearanceStream(annotation,xref,params){var{baseFontRef:params,evaluator,task}=params,{color:annotation,fontSize,rect,rotation,value}=annotation,resources=new Dict(xref),font=new Dict(xref),helv=(params?font.set("Helv",params):((params=new Dict(xref)).set("BaseFont",Name.get("Helvetica")),params.set("Type",Name.get("Font")),params.set("Subtype",Name.get("Type1")),params.set("Encoding",Name.get("WinAnsiEncoding")),font.set("Helv",params)),resources.set("Font",font),await WidgetAnnotation._getFontData(evaluator,task,{fontName:"Helv",fontSize:fontSize},resources)),[params,font,evaluator,task]=rect;let w=evaluator-params,h=task-font;rotation%180!=0&&([w,h]=[h,w]);var evaluator=value.split("\n"),scale=fontSize/1e3;let totalWidth=-1/0;var line,encodedLines=[];for(line of evaluator){var encoded=helv.encodeString(line);if(1w&&(hscale=w/totalWidth),1);var params=LINE_FACTOR*fontSize,lineAscent=(LINE_FACTOR-LINE_DESCENT_FACTOR)*fontSize,task=params*evaluator.length,font=(task>h&&(vscale=h/task),Math.min(hscale,vscale)),value=fontSize*font;let firstPoint,clipBox,matrix;switch(rotation){case 0:matrix=[1,0,0,1],clipBox=[rect[0],rect[1],w,h],firstPoint=[rect[0],rect[3]-lineAscent];break;case 90:matrix=[0,1,-1,0],clipBox=[rect[1],-rect[2],w,h],firstPoint=[rect[1],-rect[0]-lineAscent];break;case 180:matrix=[-1,0,0,-1],clipBox=[-rect[2],-rect[3],w,h],firstPoint=[-rect[2],-rect[1]-lineAscent];break;case 270:matrix=[0,-1,1,0],clipBox=[-rect[3],rect[0],w,h],firstPoint=[-rect[3],rect[2]-lineAscent]}var buffer=["q",matrix.join(" ")+" 0 0 cm",clipBox.join(" ")+" re W n","BT",""+getPdfColor(annotation,!0),`0 Tc /Helv ${numberToString(value)} Tf`],vShift=(buffer.push(`${firstPoint.join(" ")} Td (${escapeString(encodedLines[0])}) Tj`),numberToString(params));for(let i=1,ii=encodedLines.length;i(buffer.push(`${lineCoordinates[0]} ${lineCoordinates[1]} m`,`${lineCoordinates[2]} ${lineCoordinates[3]} l`,"S"),[points[0].x-borderWidth,points[1].x+borderWidth,points[3].y-borderWidth,points[1].y+borderWidth])})}}}class SquareAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params;if(this.data.annotationType=AnnotationType.SQUARE,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1,!this.appearance){var strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],strokeAlpha=params.get("CA"),params=getRgbColor(params.getArray("IC"),null);const fillColor=params?getPdfColorArray(params):null;params=fillColor?strokeAlpha:null;0===this.borderStyle.width&&!fillColor||this._setDefaultAppearance({xref:xref,extra:this.borderStyle.width+" w",strokeColor:strokeColor,fillColor:fillColor,strokeAlpha:strokeAlpha,fillAlpha:params,pointsCallback:(buffer,points)=>{var x=points[2].x+this.borderStyle.width/2,y=points[2].y+this.borderStyle.width/2,width=points[3].x-points[2].x-this.borderStyle.width,height=points[1].y-points[3].y-this.borderStyle.width;return buffer.push(x+` ${y} ${width} ${height} re`),fillColor?buffer.push("B"):buffer.push("S"),[points[0].x,points[1].x,points[3].y,points[1].y]}})}}}class CircleAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params;if(this.data.annotationType=AnnotationType.CIRCLE,!this.appearance){var strokeColor=this.color?getPdfColorArray(this.color):[0,0,0],strokeAlpha=params.get("CA"),params=getRgbColor(params.getArray("IC"),null);const fillColor=params?getPdfColorArray(params):null;params=fillColor?strokeAlpha:null;if(0!==this.borderStyle.width||fillColor){const controlPointsDistance=4/3*Math.tan(Math.PI/8);this._setDefaultAppearance({xref:xref,extra:this.borderStyle.width+" w",strokeColor:strokeColor,fillColor:fillColor,strokeAlpha:strokeAlpha,fillAlpha:params,pointsCallback:(buffer,points)=>{var x0=points[0].x+this.borderStyle.width/2,y0=points[0].y-this.borderStyle.width/2,x1=points[3].x-this.borderStyle.width/2,y1=points[3].y+this.borderStyle.width/2,xMid=x0+(x1-x0)/2,yMid=y0+(y1-y0)/2,xOffset=(x1-x0)/2*controlPointsDistance,yOffset=(y1-y0)/2*controlPointsDistance;return buffer.push(xMid+` ${y1} m`,xMid+xOffset+` ${y1} ${x1} ${yMid+yOffset} ${x1} ${yMid} c`,x1+` ${yMid-yOffset} ${xMid+xOffset} ${y0} ${xMid} ${y0} c`,xMid-xOffset+` ${y0} ${x0} ${yMid-yOffset} ${x0} ${yMid} c`,x0+` ${yMid+yOffset} ${xMid-xOffset} ${y1} ${xMid} ${y1} c`,"h"),fillColor?buffer.push("B"):buffer.push("S"),[points[0].x,points[1].x,points[3].y,points[1].y]}})}}}}class PolylineAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params,rawVertices=(this.data.annotationType=AnnotationType.POLYLINE,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1,this.data.vertices=[],this instanceof PolygonAnnotation||(this.setLineEndings(params.getArray("LE")),this.data.lineEndings=this.lineEndings),params.getArray("Vertices"));if(Array.isArray(rawVertices)){for(let i=0,ii=rawVertices.length;i{var vertices=this.data.vertices;for(let i=0,ii=vertices.length;i{for(const inkList of this.data.inkLists){for(let i=0,ii=inkList.length;ip.points)),ink.set("F",4),ink.set("Rotate",rotation),outlines&&ink.set("IT",Name.get("InkHighlight")),new Dict(xref)),paths=(ink.set("BS",rect),rect.set("W",thickness),ink.set("C",Array.from(annotation,c=>c/255)),ink.set("CA",opacity),new Dict(xref));return ink.set("AP",paths),apRef?paths.set("N",apRef):paths.set("N",ap),ink}static async createNewAppearanceStream(annotation,xref,params){if(annotation.outlines)return this.createNewAppearanceStreamForHighlight(annotation,xref,params);var bezier,{color:params,rect:annotation,paths,thickness,opacity}=annotation,appearanceBuffer=[thickness+" w 1 J 1 j",""+getPdfColor(params,!1)],buffer=(1!==opacity&&appearanceBuffer.push("/R0 gs"),[]);for({bezier}of paths){if(buffer.length=0,buffer.push(`${numberToString(bezier[0])} ${numberToString(bezier[1])} m`),2===bezier.length)buffer.push(`${numberToString(bezier[0])} ${numberToString(bezier[1])} l S`);else{for(let i=2,ii=bezier.length;i(buffer.push(`${points[0].x} ${points[0].y} m`,`${points[1].x} ${points[1].y} l`,`${points[3].x} ${points[3].y} l`,`${points[2].x} ${points[2].y} l`,"f"),[points[0].x,points[1].x,points[3].y,points[1].y])}))):this.data.popupRef=null}static createNewDict(annotation,xref,{apRef,ap}){var{color:annotation,opacity,rect,rotation,user,quadPoints}=annotation,highlight=new Dict(xref);return highlight.set("Type",Name.get("Annot")),highlight.set("Subtype",Name.get("Highlight")),highlight.set("CreationDate","D:"+getModificationDate()),highlight.set("Rect",rect),highlight.set("F",4),highlight.set("Border",[0,0,0]),highlight.set("Rotate",rotation),highlight.set("QuadPoints",quadPoints),highlight.set("C",Array.from(annotation,c=>c/255)),highlight.set("CA",opacity),user&&highlight.set("T",isAscii(user)?user:stringToUTF16String(user,!0)),(apRef||ap)&&(rect=new Dict(xref),highlight.set("AP",rect),rect.set("N",apRef||ap)),highlight}static async createNewAppearanceStream(annotation,xref,params){var{color:annotation,rect,outlines,opacity}=annotation,appearanceBuffer=[""+getPdfColor(annotation,!0),"/R0 gs"],buffer=[];for(const outline of outlines){buffer.length=0,buffer.push(`${numberToString(outline[0])} ${numberToString(outline[1])} m`);for(let i=2,ii=outline.length;i(buffer.push(`${points[2].x} ${points[2].y+1.3} m`,`${points[3].x} ${points[3].y+1.3} l`,"S"),[points[0].x,points[1].x,points[3].y,points[1].y])})):this.data.popupRef=null}}class SquigglyAnnotation extends MarkupAnnotation{constructor(params){super(params);var{dict:params,xref}=params,quadPoints=(this.data.annotationType=AnnotationType.SQUIGGLY,this.data.quadPoints=getQuadPoints(params,null));quadPoints?this.appearance||(quadPoints=this.color?getPdfColorArray(this.color):[0,0,0],params=params.get("CA"),this._setDefaultAppearance({xref:xref,extra:"[] 0 d 1 w",strokeColor:quadPoints,strokeAlpha:params,pointsCallback:(buffer,points)=>{var dy=(points[0].y-points[2].y)/6;let shift=dy,x=points[2].x;var y=points[2].y,xEnd=points[3].x;for(buffer.push(`${x} ${y+shift} m`);x+=2,shift=0===shift?dy:0,buffer.push(`${x} ${y+shift} l`),x(buffer.push((points[0].x+points[2].x)/2+" "+(points[0].y+points[2].y)/2+" m",(points[1].x+points[3].x)/2+" "+(points[1].y+points[3].y)/2+" l","S"),[points[0].x,points[1].x,points[3].y,points[1].y])})):this.data.popupRef=null}}class StampAnnotation extends MarkupAnnotation{constructor(params){super(params),this.data.annotationType=AnnotationType.STAMP,this.data.hasOwnCanvas=this.data.noRotate,this.data.noHTML=!1}static async createImage(bitmap,xref){var{width,height}=bitmap,canvas=new OffscreenCanvas(width,height),ctx=canvas.getContext("2d",{alpha:!0}),data=(ctx.drawImage(bitmap,0,0),ctx.getImageData(0,0,width,height).data),buf32=new Uint32Array(data.buffer),data=buf32.some(FeatureTest.isLittleEndian?x=>x>>>24!=255:x=>255!=(255&x)),ctx=(data&&(ctx.fillStyle="white",ctx.fillRect(0,0,width,height),ctx.drawImage(bitmap,0,0)),canvas.convertToBlob({type:"image/jpeg",quality:1}).then(blob=>blob.arrayBuffer())),bitmap=Name.get("XObject"),canvas=Name.get("Image"),image=new Dict(xref);image.set("Type",bitmap),image.set("Subtype",canvas),image.set("BitsPerComponent",8),image.set("ColorSpace",Name.get("DeviceRGB")),image.set("Filter",Name.get("DCTDecode")),image.set("BBox",[0,0,width,height]),image.set("Width",width),image.set("Height",height);let smaskStream=null;if(data){var alphaBuffer=new Uint8Array(buf32.length);if(FeatureTest.isLittleEndian)for(let i=0,ii=buf32.length;i>>24;else for(let i=0,ii=buf32.length;idecodeString(child.textContent)):decodeString(path.textContent):""}}class XRef{#firstXRefStmPos=null;constructor(stream,pdfManager){this.stream=stream,this.pdfManager=pdfManager,this.entries=[],this._xrefStms=new Set,this._cacheMap=new Map,this._pendingRefs=new RefSet,this._newPersistentRefNum=null,this._newTemporaryRefNum=null,this._persistentRefsCache=null}getNewPersistentRef(obj){null===this._newPersistentRefNum&&(this._newPersistentRefNum=this.entries.length||1);var num=this._newPersistentRefNum++;return this._cacheMap.set(num,obj),Ref.get(num,0)}getNewTemporaryRef(){if(null===this._newTemporaryRefNum&&(this._newTemporaryRefNum=this.entries.length||1,this._newPersistentRefNum)){this._persistentRefsCache=new Map;for(let i=this._newTemporaryRefNum;i=length)break;offset++,skipped++}return skipped}var gEndobjRegExp=/\b(endobj|\d+\s+\d+\s+obj|xref|trailer\s*<<)\b/g,gStartxrefRegExp=/\b(startxref|\d+\s+\d+\s+obj)\b/g,objRegExp=/^(\d+)\s+(\d+)\s+obj\b/,trailerBytes=new Uint8Array([116,114,97,105,108,101,114]),startxrefBytes=new Uint8Array([115,116,97,114,116,120,114,101,102]),xrefBytes=new Uint8Array([47,88,82,101,102]),stream=(this.entries.length=0,this._cacheMap.clear(),this.stream),buffer=(stream.pos=0,stream.getBytes()),bufferStr=bytesToString(buffer),length=buffer.length;let position=stream.start;for(var trailers=[],xrefStms=[];position=length)&&(ch=buffer[position])!==LF&&ch!==CR;);else{var token=function(data,offset){let token="",ch=data[offset];for(;ch!==LF&&ch!==CR&&ch!==LT&&!(++offset>=data.length);)token+=String.fromCharCode(ch),ch=data[offset];return token}(buffer,position);if(token.startsWith("xref")&&(4===token.length||/\s/.test(token[4])))position+=skipUntil(buffer,position,trailerBytes),trailers.push(position),position+=skipUntil(buffer,position,startxrefBytes);else if(m=objRegExp.exec(token)){var num=0|m[1],m=0|m[2],startPos=position+token.length;let contentLength,updateEntries=!1;if(this.entries[num]){if(this.entries[num].gen===m)try{new Parser({lexer:new Lexer(stream.makeSubStream(startPos))}).getObj(),updateEntries=!0}catch(ex){ex instanceof ParserEOFException?warn(`indexObjects -- checking object (${token}): "${ex}".`):updateEntries=!0}}else updateEntries=!0;updateEntries&&(this.entries[num]={offset:position-stream.start,gen:m,uncompressed:!0}),gEndobjRegExp.lastIndex=startPos;num=gEndobjRegExp.exec(bufferStr),startPos=(num?(m=gEndobjRegExp.lastIndex+1,contentLength=m-position,"endobj"!==num[1]&&(warn(`indexObjects: Found "${num[1]}" inside of another "obj", `+'caused by missing "endobj" -- trying to recover.'),contentLength-=num[1].length+1)):contentLength=length-position,buffer.subarray(position,position+contentLength)),m=skipUntil(startPos,0,xrefBytes);mcontent instanceof BaseStream?content:Array.isArray(content)?new StreamsSequenceStream(content,this._onSubStreamError.bind(this)):new NullStream)}get xfaData(){return shadow(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null)}#replaceIdByRef(annotations,deletedAnnotations,existingAnnotations){for(const annotation of annotations){var ref;annotation.id&&((ref=Ref.fromString(annotation.id))?annotation.deleted?deletedAnnotations.put(ref,ref):(existingAnnotations?.put(ref),annotation.ref=ref,delete annotation.id):warn("A non-linked annotation cannot be modified: "+annotation.id))}}async saveNewAnnotations(handler,task,annotations,imagePromises){if(this.xfaFactory)throw new Error("XFA: Cannot save new annotations.");handler=new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions});const deletedAnnotations=new RefSetCache;var ref,existingAnnotations=new RefSet,pageDict=(this.#replaceIdByRef(annotations,deletedAnnotations,existingAnnotations),this.pageDict),annotationsArray=this.annotations.filter(a=>!(a instanceof Ref&&deletedAnnotations.has(a))),handler=await AnnotationFactory.saveNewAnnotations(handler,task,annotations,imagePromises);for({ref}of handler.annotations)ref instanceof Ref&&!existingAnnotations.has(ref)&&annotationsArray.push(ref);var task=pageDict.get("Annots"),annotations=(pageDict.set("Annots",annotationsArray),[]),objects=(await writeObject(this.ref,pageDict,annotations,this.xref),task&&pageDict.set("Annots",task),handler.dependencies);objects.push({ref:this.ref,data:annotations.join("")},...handler.annotations);for(const deletedRef of deletedAnnotations)objects.push({ref:deletedRef,data:null});return objects}save(handler,task,annotationStorage){const partialEvaluator=new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions});return this._parsedAnnotations.then(function(annotations){var newRefsPromises=[];for(const annotation of annotations)annotation.mustBePrinted(annotationStorage)&&newRefsPromises.push(annotation.save(partialEvaluator,task,annotationStorage).catch(function(reason){return warn("save - ignoring annotation data during "+`"${task.name}" task: "${reason}".`),null}));return Promise.all(newRefsPromises).then(function(newRefs){return newRefs.filter(newRef=>!!newRef)})})}loadResources(keys){return this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources")),this.resourcesPromise.then(()=>{return new ObjectLoader(this.resources,keys,this.xref).load()})}getOperatorList({handler,sink,task,intent,cacheKey,annotationStorage=null}){var contentStreamPromise=this.getContentStream(),resourcesPromise=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]);const partialEvaluator=new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions});var newAnnotationsByPage=this.xfaFactory?null:getNewAnnotationsMap(annotationStorage);let deletedAnnotations=null,newAnnotationsPromise=Promise.resolve(null);if(newAnnotationsByPage){const newAnnotations=newAnnotationsByPage.get(this.pageIndex);if(newAnnotations){newAnnotationsByPage=this.pdfManager.ensureDoc("annotationGlobals");let imagePromises;var bitmapId,bitmap,missingBitmaps=new Set;for({bitmapId,bitmap}of newAnnotations)!bitmapId||bitmap||missingBitmaps.has(bitmapId)||missingBitmaps.add(bitmapId);var isOffscreenCanvasSupported=this.evaluatorOptions["isOffscreenCanvasSupported"];if(0annotationGlobals?AnnotationFactory.printNewAnnotations(annotationGlobals,partialEvaluator,task,newAnnotations,imagePromises):null)}}isOffscreenCanvasSupported=Promise.all([contentStreamPromise,resourcesPromise]).then(([contentStream])=>{const opList=new OperatorList(intent,sink);return handler.send("StartRenderPage",{transparency:partialEvaluator.hasBlendModes(this.resources,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey:cacheKey}),partialEvaluator.getOperatorList({stream:contentStream,task:task,resources:this.resources,operatorList:opList}).then(function(){return opList})});return Promise.all([isOffscreenCanvasSupported,this._parsedAnnotations,newAnnotationsPromise]).then(function([pageOpList,annotations,newAnnotations]){if(newAnnotations){annotations=annotations.filter(a=>!(a.ref&&deletedAnnotations.has(a.ref)));for(let i=0,ii=newAnnotations.length;ia.ref&&isRefsEqual(a.ref,newAnnotation.refToReplace)))&&(annotations.splice(j,1,newAnnotation),newAnnotations.splice(i--,1),ii--)}annotations=annotations.concat(newAnnotations)}if(0===annotations.length||intent&RenderingIntentFlag.ANNOTATIONS_DISABLE)return pageOpList.flush(!0),{length:pageOpList.totalLength};var renderForms=!!(intent&RenderingIntentFlag.ANNOTATIONS_FORMS),intentAny=!!(intent&RenderingIntentFlag.ANY),intentDisplay=!!(intent&RenderingIntentFlag.DISPLAY),intentPrint=!!(intent&RenderingIntentFlag.PRINT),opListPromises=[];for(const annotation of annotations)(intentAny||intentDisplay&&annotation.mustBeViewed(annotationStorage,renderForms)||intentPrint&&annotation.mustBePrinted(annotationStorage))&&opListPromises.push(annotation.getOperatorList(partialEvaluator,task,intent,renderForms,annotationStorage).catch(function(reason){return warn("getOperatorList - ignoring annotation data during "+`"${task.name}" task: "${reason}".`),{opList:null,separateForm:!1,separateCanvas:!1}}));return Promise.all(opListPromises).then(function(opLists){let form=!1,canvas=!1;for(var{opList,separateForm,separateCanvas}of opLists)pageOpList.addOpList(opList),form||=separateForm,canvas||=separateCanvas;return pageOpList.flush(!0,{form:form,canvas:canvas}),{length:pageOpList.totalLength}})})}extractTextContent({handler,task,includeMarkedContent,disableNormalization,sink}){var contentStreamPromise=this.getContentStream(),resourcesPromise=this.loadResources(["ExtGState","Font","Properties","XObject"]);return Promise.all([contentStreamPromise,resourcesPromise]).then(([contentStream])=>{return new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions}).getTextContent({stream:contentStream,task:task,resources:this.resources,includeMarkedContent:includeMarkedContent,disableNormalization:disableNormalization,sink:sink,viewBox:this.view})})}async getStructTree(){var structTreeRoot=await this.pdfManager.ensureCatalog("structTreeRoot");return structTreeRoot?(await this._parsedAnnotations,(await this.pdfManager.ensure(this,"_parseStructTree",[structTreeRoot])).serializable):null}_parseStructTree(structTreeRoot){structTreeRoot=new StructTreePage(structTreeRoot,this.pageDict);return structTreeRoot.parse(this.ref),structTreeRoot}async getAnnotationsData(handler,task,intent){var annotations=await this._parsedAnnotations;if(0===annotations.length)return annotations;var annotationsData=[],textContentPromises=[];let partialEvaluator;var intentAny=!!(intent&RenderingIntentFlag.ANY),intentDisplay=!!(intent&RenderingIntentFlag.DISPLAY),intentPrint=!!(intent&RenderingIntentFlag.PRINT);for(const annotation of annotations){var isVisible=intentAny||intentDisplay&&annotation.viewable;(isVisible||intentPrint&&annotation.printable)&&annotationsData.push(annotation.data),annotation.hasTextContent&&isVisible&&(partialEvaluator||=new PartialEvaluator({xref:this.xref,handler:handler,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,systemFontCache:this.systemFontCache,options:this.evaluatorOptions}),textContentPromises.push(annotation.extractTextContent(partialEvaluator,task,[-1/0,-1/0,1/0,1/0]).catch(function(reason){warn(`getAnnotationsData - ignoring textContent during "${task.name}" task: "${reason}".`)})))}return await Promise.all(textContentPromises),annotationsData}get annotations(){var annots=this._getInheritableProperty("Annots");return shadow(this,"annotations",Array.isArray(annots)?annots:[])}get _parsedAnnotations(){var promise=this.pdfManager.ensure(this,"annotations").then(async annots=>{if(0===annots.length)return annots;var annotationGlobals=await this.pdfManager.ensureDoc("annotationGlobals");if(!annotationGlobals)return[];var annotationPromises=[];for(const annotationRef of annots)annotationPromises.push(AnnotationFactory.create(this.xref,annotationRef,annotationGlobals,this._localIdFactory,!1,this.ref).catch(function(reason){return warn(`_parsedAnnotations: "${reason}".`),null}));var sortedAnnotations=[];let popupAnnotations,widgetAnnotations;for(const annotation of await Promise.all(annotationPromises))annotation&&(annotation instanceof WidgetAnnotation?widgetAnnotations||=[]:annotation instanceof PopupAnnotation?popupAnnotations||=[]:sortedAnnotations).push(annotation);return widgetAnnotations&&sortedAnnotations.push(...widgetAnnotations),popupAnnotations&&sortedAnnotations.push(...popupAnnotations),sortedAnnotations});return shadow(this,"_parsedAnnotations",promise)}get jsActions(){return shadow(this,"jsActions",collectActions(this.xref,this.pageDict,PageActionEventType))}}const PDF_HEADER_SIGNATURE=new Uint8Array([37,80,68,70,45]),STARTXREF_SIGNATURE=new Uint8Array([115,116,97,114,116,120,114,101,102]),ENDOBJ_SIGNATURE=new Uint8Array([101,110,100,111,98,106]),FINGERPRINT_FIRST_BYTES=1024,EMPTY_FINGERPRINT="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";function find(stream,signature,limit=1024,backwards=!1){var signatureLength=signature.length,scanBytes=stream.peekBytes(limit),scanLength=scanBytes.length-signatureLength;if(!(scanLength<=0))if(backwards){var signatureEnd=signatureLength-1;let pos=scanBytes.length-1;for(;pos>=signatureEnd;){let j=0;for(;j=signatureLength)return stream.pos+=pos-signatureEnd,!0;pos--}}else{let pos=0;for(;pos<=scanLength;){let j=0;for(;j=signatureLength)return stream.pos+=pos,!0;pos++}}return!1}class PDFDocument{constructor(pdfManager,stream){if(stream.length<=0)throw new InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=pdfManager,this.stream=stream,this.xref=new XRef(stream,pdfManager),this._pagePromises=new Map,this._version=null;const idCounters={font:0};this._globalIdFactory=class{static getDocId(){return"g_"+pdfManager.docId}static createFontId(){return"f"+ ++idCounters.font}static createObjId(){unreachable("Abstract method `createObjId` called.")}static getPageObjId(){unreachable("Abstract method `getPageObjId` called.")}}}parse(recoveryMode){this.xref.parse(recoveryMode),this.catalog=new Catalog(this.pdfManager,this.xref)}get linearization(){let linearization=null;try{linearization=Linearization.create(this.stream)}catch(err){if(err instanceof MissingDataException)throw err;info(err)}return shadow(this,"linearization",linearization)}get startXRef(){var stream=this.stream;let startXRef=0;if(this.linearization){if(stream.reset(),find(stream,ENDOBJ_SIGNATURE)){stream.skip(6);let ch=stream.peekByte();for(;isWhiteSpace(ch);)stream.pos++,ch=stream.peekByte();startXRef=stream.pos-stream.start}}else{var startXRefLength=STARTXREF_SIGNATURE.length;let found=!1,pos=stream.end;for(;!found&&0{var isSignature;return(field=this.xref.fetchIfRef(field))instanceof Dict&&(field.has("Kids")?10<++recursionDepth?(warn("_hasOnlyDocumentSignatures: maximum recursion depth reached"),!1):this._hasOnlyDocumentSignatures(field.get("Kids"),recursionDepth):(isSignature=isName(field.get("FT"),"Sig"),field=field.get("Rect"),field=Array.isArray(field)&&field.every(value=>0===value),isSignature&&field))})}get _xfaStreams(){var acroForm=this.catalog.acroForm;if(!acroForm)return null;var data,xfa=acroForm.get("XFA"),entries={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if(xfa instanceof BaseStream&&!xfa.isEmpty)entries["xdp:xdp"]=xfa;else{if(!Array.isArray(xfa)||0===xfa.length)return null;for(let i=0,ii=xfa.length;i{fonts.set(fontName,font)});var fontName,font,promises=[];for([fontName,font]of fonts){var descriptor=font.get("FontDescriptor");if(descriptor instanceof Dict){let fontFamily=descriptor.get("FontFamily");fontFamily=fontFamily.replaceAll(/[ ]+(\d)/g,"$1");var fontWeight=descriptor.get("FontWeight"),descriptor=-descriptor.get("ItalicAngle"),fontWeight={fontFamily:fontFamily,fontWeight:fontWeight,italicAngle:descriptor};validateCSSFont(fontWeight)&&promises.push(partialEvaluator.handleSetFont(resources,[Name.get(fontName),1],null,operatorList,task,initialState,null,fontWeight).catch(function(reason){return warn(`loadXfaFonts: "${reason}".`),null}))}}await Promise.all(promises);handler=this.xfaFactory.setFonts(pdfFonts);if(handler){options.ignoreErrors=!0,promises.length=0,pdfFonts.length=0;var reallyMissingFonts=new Set;for(const missing of handler)getXfaFontName(missing+"-Regular")||reallyMissingFonts.add(missing);reallyMissingFonts.size&&handler.push("PdfJS-Fallback");for(const missing of handler)if(!reallyMissingFonts.has(missing))for(const fontInfo of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){var name=missing+"-"+fontInfo.name,dict=getXfaFontDict(name);promises.push(partialEvaluator.handleSetFont(resources,[Name.get(name),1],null,operatorList,task,initialState,dict,{fontFamily:missing,fontWeight:fontInfo.fontWeight,italicAngle:fontInfo.italicAngle}).catch(function(reason){return warn(`loadXfaFonts: "${reason}".`),null}))}await Promise.all(promises),this.xfaFactory.appendFonts(pdfFonts,reallyMissingFonts)}}}}}async serializeXfaData(annotationStorage){return this.xfaFactory?this.xfaFactory.serializeData(annotationStorage):null}get version(){return this.catalog.version||this._version}get formInfo(){var formInfo={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},acroForm=this.catalog.acroForm;if(acroForm)try{var fields=acroForm.get("Fields"),hasFields=Array.isArray(fields)&&0new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:pageIndex,pageDict:pageDict,ref:ref,globalIdFactory:this._globalIdFactory,fontCache:catalog.fontCache,builtInCMapCache:catalog.builtInCMapCache,standardFontDataCache:catalog.standardFontDataCache,globalImageCache:catalog.globalImageCache,systemFontCache:catalog.systemFontCache,nonBlendModesSet:catalog.nonBlendModesSet,xfaFactory:xfaFactory})),this._pagePromises.set(pageIndex,promise),promise}async checkFirstPage(recoveryMode=!1){if(!recoveryMode)try{await this.getPage(0)}catch(reason){if(reason instanceof XRefEntryException)throw this._pagePromises.delete(0),await this.cleanup(),new XRefParseException}}async checkLastPage(recoveryMode=!1){var{catalog,pdfManager}=this;catalog.setActualNumPages();let numPages;try{if(await Promise.all([pdfManager.ensureDoc("xfaFactory"),pdfManager.ensureDoc("linearization"),pdfManager.ensureCatalog("numPages")]),!this.xfaFactory){if(numPages=(this.linearization||catalog).numPages,!Number.isInteger(numPages))throw new FormatError("Page count is not an integer.");numPages<=1||await this.getPage(numPages-1)}}catch(reason){if(this._pagePromises.delete(numPages-1),await this.cleanup(),reason instanceof XRefEntryException&&!recoveryMode)throw new XRefParseException;warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);let pagesTree;try{pagesTree=await catalog.getAllPageDicts(recoveryMode)}catch(reasonAll){if(reasonAll instanceof XRefEntryException&&!recoveryMode)throw new XRefParseException;return void catalog.setActualNumPages(1)}for(var[pageIndex,[pageDict,ref]]of pagesTree){let promise;pageDict instanceof Error?(promise=Promise.reject(pageDict)).catch(()=>{}):promise=Promise.resolve(new Page({pdfManager:pdfManager,xref:this.xref,pageIndex:pageIndex,pageDict:pageDict,ref:ref,globalIdFactory:this._globalIdFactory,fontCache:catalog.fontCache,builtInCMapCache:catalog.builtInCMapCache,standardFontDataCache:catalog.standardFontDataCache,globalImageCache:catalog.globalImageCache,systemFontCache:catalog.systemFontCache,nonBlendModesSet:catalog.nonBlendModesSet,xfaFactory:null})),this._pagePromises.set(pageIndex,promise)}catalog.setActualNumPages(pagesTree.size)}}fontFallback(id,handler){return this.catalog.fontFallback(id,handler)}async cleanup(manuallyTriggered=!1){return this.catalog?this.catalog.cleanup(manuallyTriggered):clearGlobalCaches()}async#collectFieldObjects(name,fieldRef,promises,annotationGlobals,visitedRefs){var xref=this["xref"];if(fieldRef instanceof Ref&&!visitedRefs.has(fieldRef)){visitedRefs.put(fieldRef);var field=await xref.fetchAsync(fieldRef);if(field instanceof Dict){if(field.has("T")){var partName=stringToPDFString(await field.getAsync("T"));name=""===name?partName:name+"."+partName}else{let obj=field;for(;;){if((obj=obj.getRaw("Parent"))instanceof Ref){if(visitedRefs.has(obj))break;obj=await xref.fetchAsync(obj)}if(!(obj instanceof Dict))break;if(obj.has("T")){const partName=stringToPDFString(await obj.getAsync("T"));name=""===name?partName:name+"."+partName;break}}}if(promises.has(name)||promises.set(name,[]),promises.get(name).push(AnnotationFactory.create(xref,fieldRef,annotationGlobals,null,!0,null).then(annotation=>annotation?.getFieldObject()).catch(function(reason){return warn(`#collectFieldObjects: "${reason}".`),null})),field.has("Kids")){partName=await field.getAsync("Kids");if(Array.isArray(partName))for(const kid of partName)await this.#collectFieldObjects(name,kid,promises,annotationGlobals,visitedRefs)}}}}get fieldObjects(){var promise;return this.formInfo.hasFields?(promise=Promise.all([this.pdfManager.ensureDoc("annotationGlobals"),this.pdfManager.ensureCatalog("acroForm")]).then(async([annotationGlobals,acroForm])=>{if(!annotationGlobals)return null;var visitedRefs=new RefSet;const allFields=Object.create(null);var fieldPromises=new Map;for(const fieldRef of await acroForm.getAsync("Fields"))await this.#collectFieldObjects("",fieldRef,fieldPromises,annotationGlobals,visitedRefs);var allPromises=[];for(const[name,promises]of fieldPromises)allPromises.push(Promise.all(promises).then(fields=>{0<(fields=fields.filter(field=>!!field)).length&&(allFields[name]=fields)}));return await Promise.all(allPromises),allFields}),shadow(this,"fieldObjects",promise)):shadow(this,"fieldObjects",Promise.resolve(null))}get hasJSActions(){var promise=this.pdfManager.ensureDoc("_parseHasJSActions");return shadow(this,"hasJSActions",promise)}async _parseHasJSActions(){var[catalogJsActions,fieldObjects]=await Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);return!!catalogJsActions||!!fieldObjects&&Object.values(fieldObjects).some(fieldObject=>fieldObject.some(object=>null!==object.actions))}get calculationOrderIds(){var acroForm=this.catalog.acroForm;if(!acroForm?.has("CO"))return shadow(this,"calculationOrderIds",null);acroForm=acroForm.get("CO");if(!Array.isArray(acroForm)||0===acroForm.length)return shadow(this,"calculationOrderIds",null);var ids=[];for(const id of acroForm)id instanceof Ref&&ids.push(id.toString());return shadow(this,"calculationOrderIds",0===ids.length?null:ids)}get annotationGlobals(){return shadow(this,"annotationGlobals",AnnotationFactory.createGlobals(this.pdfManager))}}function parseDocBaseUrl(url){if(url){var absoluteUrl=createValidAbsoluteUrl(url);if(absoluteUrl)return absoluteUrl.href;warn(`Invalid absolute docBaseUrl: "${url}".`)}return null}class BasePdfManager{constructor(args){this.constructor===BasePdfManager&&unreachable("Cannot initialize BasePdfManager."),this._docBaseUrl=parseDocBaseUrl(args.docBaseUrl),this._docId=args.docId,this._password=args.password,this.enableXfa=args.enableXfa,args.evaluatorOptions.isOffscreenCanvasSupported&&=FeatureTest.isOffscreenCanvasSupported,this.evaluatorOptions=args.evaluatorOptions}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){return this._docBaseUrl}get catalog(){return this.pdfDocument.catalog}ensureDoc(prop,args){return this.ensure(this.pdfDocument,prop,args)}ensureXRef(prop,args){return this.ensure(this.pdfDocument.xref,prop,args)}ensureCatalog(prop,args){return this.ensure(this.pdfDocument.catalog,prop,args)}getPage(pageIndex){return this.pdfDocument.getPage(pageIndex)}fontFallback(id,handler){return this.pdfDocument.fontFallback(id,handler)}loadXfaFonts(handler,task){return this.pdfDocument.loadXfaFonts(handler,task)}loadXfaImages(){return this.pdfDocument.loadXfaImages()}serializeXfaData(annotationStorage){return this.pdfDocument.serializeXfaData(annotationStorage)}cleanup(manuallyTriggered=!1){return this.pdfDocument.cleanup(manuallyTriggered)}async ensure(obj,prop,args){unreachable("Abstract method `ensure` called")}requestRange(begin,end){unreachable("Abstract method `requestRange` called")}requestLoadedStream(noFetch=0){unreachable("Abstract method `requestLoadedStream` called")}sendProgressiveData(chunk){unreachable("Abstract method `sendProgressiveData` called")}updatePassword(password){this._password=password}terminate(reason){unreachable("Abstract method `terminate` called")}}class LocalPdfManager extends BasePdfManager{constructor(args){super(args);args=new Stream(args.source);this.pdfDocument=new PDFDocument(this,args),this._loadedStreamPromise=Promise.resolve(args)}async ensure(obj,prop,args){prop=obj[prop];return"function"==typeof prop?prop.apply(obj,args):prop}requestRange(begin,end){return Promise.resolve()}requestLoadedStream(noFetch=0){return this._loadedStreamPromise}terminate(reason){}}class NetworkPdfManager extends BasePdfManager{constructor(args){super(args),this.streamManager=new ChunkedStreamManager(args.source,{msgHandler:args.handler,length:args.length,disableAutoFetch:args.disableAutoFetch,rangeChunkSize:args.rangeChunkSize}),this.pdfDocument=new PDFDocument(this,this.streamManager.getStream())}async ensure(obj,prop,args){try{var value=obj[prop];return"function"==typeof value?value.apply(obj,args):value}catch(ex){if(ex instanceof MissingDataException)return await this.requestRange(ex.begin,ex.end),this.ensure(obj,prop,args);throw ex}}requestRange(begin,end){return this.streamManager.requestRange(begin,end)}requestLoadedStream(noFetch=!1){return this.streamManager.requestAllChunks(noFetch)}sendProgressiveData(chunk){this.streamManager.onReceiveData({chunk:chunk})}terminate(reason){this.streamManager.abort(reason)}}const CallbackKind={UNKNOWN:0,DATA:1,ERROR:2},StreamKind={UNKNOWN:0,CANCEL:1,CANCEL_COMPLETE:2,CLOSE:3,ENQUEUE:4,ERROR:5,PULL:6,PULL_COMPLETE:7,START_COMPLETE:8};function wrapReason(reason){switch(reason instanceof Error||"object"==typeof reason&&null!==reason||unreachable('wrapReason: Expected "reason" to be a (possibly cloned) Error.'),reason.name){case"AbortException":return new AbortException(reason.message);case"MissingPDFException":return new MissingPDFException(reason.message);case"PasswordException":return new PasswordException(reason.message,reason.code);case"UnexpectedResponseException":return new UnexpectedResponseException(reason.message,reason.status);case"UnknownErrorException":return new UnknownErrorException(reason.message,reason.details);default:return new UnknownErrorException(reason.message,reason.toString())}}class MessageHandler{constructor(sourceName,targetName,comObj){this.sourceName=sourceName,this.targetName=targetName,this.comObj=comObj,this.callbackId=1,this.streamId=1,this.streamSinks=Object.create(null),this.streamControllers=Object.create(null),this.callbackCapabilities=Object.create(null),this.actionHandler=Object.create(null),this._onComObjOnMessage=event=>{const data=event.data;if(data.targetName===this.sourceName)if(data.stream)this.#processStreamMessage(data);else if(data.callback){var event=data.callbackId,capability=this.callbackCapabilities[event];if(!capability)throw new Error("Cannot resolve callback "+event);if(delete this.callbackCapabilities[event],data.callback===CallbackKind.DATA)capability.resolve(data.data);else{if(data.callback!==CallbackKind.ERROR)throw new Error("Unexpected callback case");capability.reject(wrapReason(data.reason))}}else{const action=this.actionHandler[data.action];if(!action)throw new Error("Unknown action from worker: "+data.action);if(data.callbackId){const cbSourceName=this.sourceName,cbTargetName=data.sourceName;void new Promise(function(resolve){resolve(action(data.data))}).then(function(result){comObj.postMessage({sourceName:cbSourceName,targetName:cbTargetName,callback:CallbackKind.DATA,callbackId:data.callbackId,data:result})},function(reason){comObj.postMessage({sourceName:cbSourceName,targetName:cbTargetName,callback:CallbackKind.ERROR,callbackId:data.callbackId,reason:wrapReason(reason)})})}else data.streamId?this.#createStreamSink(data):action(data.data)}},comObj.addEventListener("message",this._onComObjOnMessage)}on(actionName,handler){var ah=this.actionHandler;if(ah[actionName])throw new Error(`There is already an actionName called "${actionName}"`);ah[actionName]=handler}send(actionName,data,transfers){this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:actionName,data:data},transfers)}sendWithPromise(actionName,data,transfers){var callbackId=this.callbackId++,capability=Promise.withResolvers();this.callbackCapabilities[callbackId]=capability;try{this.comObj.postMessage({sourceName:this.sourceName,targetName:this.targetName,action:actionName,callbackId:callbackId,data:data},transfers)}catch(ex){capability.reject(ex)}return capability.promise}sendWithStream(actionName,data,queueingStrategy,transfers){const streamId=this.streamId++,sourceName=this.sourceName,targetName=this.targetName,comObj=this.comObj;return new ReadableStream({start:controller=>{var startCapability=Promise.withResolvers();return this.streamControllers[streamId]={controller:controller,startCall:startCapability,pullCall:null,cancelCall:null,isClosed:!1},comObj.postMessage({sourceName:sourceName,targetName:targetName,action:actionName,streamId:streamId,data:data,desiredSize:controller.desiredSize},transfers),startCapability.promise},pull:controller=>{var pullCapability=Promise.withResolvers();return this.streamControllers[streamId].pullCall=pullCapability,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.PULL,streamId:streamId,desiredSize:controller.desiredSize}),pullCapability.promise},cancel:reason=>{assert(reason instanceof Error,"cancel must have a valid reason");var cancelCapability=Promise.withResolvers();return this.streamControllers[streamId].cancelCall=cancelCapability,this.streamControllers[streamId].isClosed=!0,comObj.postMessage({sourceName:sourceName,targetName:targetName,stream:StreamKind.CANCEL,streamId:streamId,reason:wrapReason(reason)}),cancelCapability.promise}},queueingStrategy)}#createStreamSink(data){const streamId=data.streamId,sourceName=this.sourceName,targetName=data.sourceName,comObj=this.comObj,self=this,action=this.actionHandler[data.action],streamSink={enqueue(chunk,size=1,transfers){var lastDesiredSize;this.isCancelled||(lastDesiredSize=this.desiredSize,this.desiredSize-=size,0{this._isStreamingSupported=data.isStreamingSupported,this._isRangeSupported=data.isRangeSupported,this._contentLength=data.contentLength})}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){var{value,done}=await this._reader.read();return done?{value:void 0,done:!0}:{value:value.buffer,done:!1}}cancel(reason){this._reader.cancel(reason)}}class PDFWorkerStreamRangeReader{constructor(begin,end,msgHandler){this._msgHandler=msgHandler,this.onProgress=null;msgHandler=this._msgHandler.sendWithStream("GetRangeReader",{begin:begin,end:end});this._reader=msgHandler.getReader()}get isStreamingSupported(){return!1}async read(){var{value,done}=await this._reader.read();return done?{value:void 0,done:!0}:{value:value.buffer,done:!1}}cancel(reason){this._reader.cancel(reason)}}class WorkerTask{constructor(name){this.name=name,this.terminated=!1,this._capability=Promise.withResolvers()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}class WorkerMessageHandler{static setup(handler,port){let testMessageProcessed=!1;handler.on("test",function(data){testMessageProcessed||(testMessageProcessed=!0,handler.send("test",data instanceof Uint8Array))}),handler.on("configure",function(data){setVerbosityLevel(data.verbosity)}),handler.on("GetDocRequest",function(data){return WorkerMessageHandler.createDocumentHandler(data,port)})}static createDocumentHandler(docParams,port){let pdfManager,terminated=!1,cancelXHRs=null;const WorkerTasks=new Set,verbosity=getVerbosityLevel(),{docId,apiVersion}=docParams;if("4.2.67"!==apiVersion)throw new Error(`The API version "${apiVersion}" does not match `+'the Worker version "4.2.67".');var enumerableProperties=[];for(const property in[])enumerableProperties.push(property);if(enumerableProperties.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+enumerableProperties.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");var workerHandlerName=docId+"_worker";let handler=new MessageHandler(workerHandlerName,docId,port);function ensureNotTerminated(){if(terminated)throw new Error("Worker was terminated")}function startWorkerTask(task){WorkerTasks.add(task)}function finishWorkerTask(task){task.finish(),WorkerTasks.delete(task)}async function loadDocument(recoveryMode){await pdfManager.ensureDoc("checkHeader"),await pdfManager.ensureDoc("parseStartXRef"),await pdfManager.ensureDoc("parse",[recoveryMode]),await pdfManager.ensureDoc("checkFirstPage",[recoveryMode]),await pdfManager.ensureDoc("checkLastPage",[recoveryMode]);recoveryMode=await pdfManager.ensureDoc("isPureXfa");if(recoveryMode){const task=new WorkerTask("loadXfaFonts");startWorkerTask(task),await Promise.all([pdfManager.loadXfaFonts(handler,task).catch(reason=>{}).then(()=>finishWorkerTask(task)),pdfManager.loadXfaImages()])}var[numPages,fingerprints]=await Promise.all([pdfManager.ensureDoc("numPages"),pdfManager.ensureDoc("fingerprints")]);return{numPages:numPages,fingerprints:fingerprints,htmlForXfa:recoveryMode?await pdfManager.ensureDoc("htmlForXfa"):null}}function getPdfManager({data,password,disableAutoFetch,rangeChunkSize,length,docBaseUrl,enableXfa,evaluatorOptions}){const pdfManagerArgs={source:null,disableAutoFetch:disableAutoFetch,docBaseUrl:docBaseUrl,docId:docId,enableXfa:enableXfa,evaluatorOptions:evaluatorOptions,handler:handler,length:length,password:password,rangeChunkSize:rangeChunkSize},pdfManagerCapability=Promise.withResolvers();let newPdfManager;if(data)try{pdfManagerArgs.source=data,newPdfManager=new LocalPdfManager(pdfManagerArgs),pdfManagerCapability.resolve(newPdfManager)}catch(ex){pdfManagerCapability.reject(ex)}else{let pdfStream,cachedChunks=[];try{pdfStream=new PDFWorkerStream(handler)}catch(ex){return pdfManagerCapability.reject(ex),pdfManagerCapability.promise}const fullRequest=pdfStream.getFullReader();fullRequest.headersReady.then(function(){if(fullRequest.isRangeSupported){pdfManagerArgs.source=pdfStream,pdfManagerArgs.length=fullRequest.contentLength,pdfManagerArgs.disableAutoFetch||=fullRequest.isStreamingSupported,newPdfManager=new NetworkPdfManager(pdfManagerArgs);for(const chunk of cachedChunks)newPdfManager.sendProgressiveData(chunk);cachedChunks=[],pdfManagerCapability.resolve(newPdfManager),cancelXHRs=null}}).catch(function(reason){pdfManagerCapability.reject(reason),cancelXHRs=null});let loaded=0;new Promise(function(resolve,reject){const readChunk=function({value,done}){try{if(ensureNotTerminated(),done){if(!newPdfManager){var pdfFile=arrayBuffersToBytes(cachedChunks);length&&pdfFile.length!==length&&warn("reported HTTP length is different from actual");try{pdfManagerArgs.source=pdfFile,newPdfManager=new LocalPdfManager(pdfManagerArgs),pdfManagerCapability.resolve(newPdfManager)}catch(ex){pdfManagerCapability.reject(ex)}cachedChunks=[]}cancelXHRs=null}else loaded+=value.byteLength,fullRequest.isStreamingSupported||handler.send("DocProgress",{loaded:loaded,total:Math.max(loaded,fullRequest.contentLength||0)}),newPdfManager?newPdfManager.sendProgressiveData(value):cachedChunks.push(value),fullRequest.read().then(readChunk,reject)}catch(e){reject(e)}};fullRequest.read().then(readChunk,reject)}).catch(function(e){pdfManagerCapability.reject(e),cancelXHRs=null}),cancelXHRs=function(reason){pdfStream.cancelAllRequests(reason)}}return pdfManagerCapability.promise}return handler.on("GetPage",function(data){return pdfManager.getPage(data.pageIndex).then(function(page){return Promise.all([pdfManager.ensure(page,"rotate"),pdfManager.ensure(page,"ref"),pdfManager.ensure(page,"userUnit"),pdfManager.ensure(page,"view")]).then(function([rotate,ref,userUnit,view]){return{rotate:rotate,ref:ref,refStr:ref?.toString()??null,userUnit:userUnit,view:view}})})}),handler.on("GetPageIndex",function(data){data=Ref.get(data.num,data.gen);return pdfManager.ensureCatalog("getPageIndex",[data])}),handler.on("GetDestinations",function(data){return pdfManager.ensureCatalog("destinations")}),handler.on("GetDestination",function(data){return pdfManager.ensureCatalog("getDestination",[data.id])}),handler.on("GetPageLabels",function(data){return pdfManager.ensureCatalog("pageLabels")}),handler.on("GetPageLayout",function(data){return pdfManager.ensureCatalog("pageLayout")}),handler.on("GetPageMode",function(data){return pdfManager.ensureCatalog("pageMode")}),handler.on("GetViewerPreferences",function(data){return pdfManager.ensureCatalog("viewerPreferences")}),handler.on("GetOpenAction",function(data){return pdfManager.ensureCatalog("openAction")}),handler.on("GetAttachments",function(data){return pdfManager.ensureCatalog("attachments")}),handler.on("GetDocJSActions",function(data){return pdfManager.ensureCatalog("jsActions")}),handler.on("GetPageJSActions",function({pageIndex}){return pdfManager.getPage(pageIndex).then(function(page){return pdfManager.ensure(page,"jsActions")})}),handler.on("GetOutline",function(data){return pdfManager.ensureCatalog("documentOutline")}),handler.on("GetOptionalContentConfig",function(data){return pdfManager.ensureCatalog("optionalContentConfig")}),handler.on("GetPermissions",function(data){return pdfManager.ensureCatalog("permissions")}),handler.on("GetMetadata",function(data){return Promise.all([pdfManager.ensureDoc("documentInfo"),pdfManager.ensureCatalog("metadata")])}),handler.on("GetMarkInfo",function(data){return pdfManager.ensureCatalog("markInfo")}),handler.on("GetData",function(data){return pdfManager.requestLoadedStream().then(function(stream){return stream.bytes})}),handler.on("GetAnnotations",function({pageIndex,intent}){return pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask("GetAnnotations: page "+pageIndex);return startWorkerTask(task),page.getAnnotationsData(handler,task,intent).then(data=>(finishWorkerTask(task),data),reason=>{throw finishWorkerTask(task),reason})})}),handler.on("GetFieldObjects",function(data){return pdfManager.ensureDoc("fieldObjects")}),handler.on("HasJSActions",function(data){return pdfManager.ensureDoc("hasJSActions")}),handler.on("GetCalculationOrderIds",function(data){return pdfManager.ensureDoc("calculationOrderIds")}),handler.on("SaveDocument",async function({isPureXfa,numPages,annotationStorage,filename}){var globalPromises=[pdfManager.requestLoadedStream(),pdfManager.ensureCatalog("acroForm"),pdfManager.ensureCatalog("acroFormRef"),pdfManager.ensureDoc("startXRef"),pdfManager.ensureDoc("xref"),pdfManager.ensureDoc("linearization"),pdfManager.ensureCatalog("structTreeRoot")],promises=[];const newAnnotationsByPage=isPureXfa?null:getNewAnnotationsMap(annotationStorage),[stream,acroForm,acroFormRef,startXRef,xref,linearization,_structTreeRoot]=await Promise.all(globalPromises),catalogRef=xref.trailer.getRaw("Root")||null;let structTreeRoot;if(newAnnotationsByPage){_structTreeRoot?await _structTreeRoot.canUpdateStructTree({pdfManager:pdfManager,xref:xref,newAnnotationsByPage:newAnnotationsByPage})&&(structTreeRoot=_structTreeRoot):await StructTreeRoot.canCreateStructureTree({catalogRef:catalogRef,pdfManager:pdfManager,newAnnotationsByPage:newAnnotationsByPage})&&(structTreeRoot=null);const imagePromises=AnnotationFactory.generateImages(annotationStorage.values(),xref,pdfManager.evaluatorOptions.isOffscreenCanvasSupported);var newAnnotationPromises=void 0===structTreeRoot?promises:[];for(const[pageIndex,annotations]of newAnnotationsByPage)newAnnotationPromises.push(pdfManager.getPage(pageIndex).then(page=>{const task=new WorkerTask("Save (editor): page "+pageIndex);return page.saveNewAnnotations(handler,task,annotations,imagePromises).finally(function(){finishWorkerTask(task)})}));null===structTreeRoot?promises.push(Promise.all(newAnnotationPromises).then(async newRefs=>(await StructTreeRoot.createStructureTree({newAnnotationsByPage:newAnnotationsByPage,xref:xref,catalogRef:catalogRef,pdfManager:pdfManager,newRefs:newRefs}),newRefs))):structTreeRoot&&promises.push(Promise.all(newAnnotationPromises).then(async newRefs=>(await structTreeRoot.updateStructureTree({newAnnotationsByPage:newAnnotationsByPage,pdfManager:pdfManager,newRefs:newRefs}),newRefs)))}if(isPureXfa)promises.push(pdfManager.serializeXfaData(annotationStorage));else for(let pageIndex=0;pageIndexref.needAppearances),xfa=acroForm instanceof Dict&&acroForm.get("XFA")||null;let xfaDatasetsRef=null,hasXfaDatasetsEntry=!1;if(Array.isArray(xfa)){for(let i=0,ii=xfa.length;i{"string"==typeof value&&(infoObj[key]=stringToPDFString(value))}),newXrefInfo={rootRef:catalogRef,encryptRef:xref.trailer.getRaw("Encrypt")||null,newRef:xref.getNewTemporaryRef(),infoRef:xref.trailer.getRaw("Info")||null,info:infoObj,fileIds:xref.trailer.get("ID")||null,startXRef:linearization?startXRef:xref.lastXRefStreamPos??startXRef,filename:filename}}return incrementalUpdate({originalData:stream.bytes,xrefInfo:newXrefInfo,newRefs:newRefs,xref:xref,hasXfa:!!xfa,xfaDatasetsRef:xfaDatasetsRef,hasXfaDatasetsEntry:hasXfaDatasetsEntry,needAppearances:isPureXfa,acroFormRef:acroFormRef,acroForm:acroForm,xfaData:xfaData,useXrefStream:isDict(xref.topDict,"XRef")}).finally(()=>{xref.resetNewTemporaryRef()})}),handler.on("GetOperatorList",function(data,sink){const pageIndex=data.pageIndex;pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask("GetOperatorList: page "+pageIndex),start=(startWorkerTask(task),verbosity>=VerbosityLevel.INFOS?Date.now():0);page.getOperatorList({handler:handler,sink:sink,task:task,intent:data.intent,cacheKey:data.cacheKey,annotationStorage:data.annotationStorage}).then(function(operatorListInfo){finishWorkerTask(task),start&&info(`page=${pageIndex+1} - getOperatorList: time=`+(Date.now()-start)+"ms, len="+operatorListInfo.length),sink.close()},function(reason){finishWorkerTask(task),task.terminated||sink.error(reason)})})}),handler.on("GetTextContent",function(data,sink){const{pageIndex,includeMarkedContent,disableNormalization}=data;pdfManager.getPage(pageIndex).then(function(page){const task=new WorkerTask("GetTextContent: page "+pageIndex),start=(startWorkerTask(task),verbosity>=VerbosityLevel.INFOS?Date.now():0);page.extractTextContent({handler:handler,task:task,sink:sink,includeMarkedContent:includeMarkedContent,disableNormalization:disableNormalization}).then(function(){finishWorkerTask(task),start&&info(`page=${pageIndex+1} - getTextContent: time=`+(Date.now()-start)+"ms"),sink.close()},function(reason){finishWorkerTask(task),task.terminated||sink.error(reason)})})}),handler.on("GetStructTree",function(data){return pdfManager.getPage(data.pageIndex).then(function(page){return pdfManager.ensure(page,"getStructTree")})}),handler.on("FontFallback",function(data){return pdfManager.fontFallback(data.id,handler)}),handler.on("Cleanup",function(data){return pdfManager.cleanup(!0)}),handler.on("Terminate",function(data){terminated=!0;var cleanupPromise,waitOn=[];pdfManager?(pdfManager.terminate(new AbortException("Worker was terminated.")),cleanupPromise=pdfManager.cleanup(),waitOn.push(cleanupPromise),pdfManager=null):clearGlobalCaches(),cancelXHRs&&cancelXHRs(new AbortException("Worker was terminated."));for(const task of WorkerTasks)waitOn.push(task.finished),task.terminate();return Promise.all(waitOn).then(function(){handler.destroy(),handler=null})}),handler.on("Ready",function(data){!function(data){function onSuccess(doc){ensureNotTerminated(),handler.send("GetDoc",{pdfInfo:doc})}function onFailure(ex){if(ensureNotTerminated(),ex instanceof PasswordException){const task=new WorkerTask("PasswordException: response "+ex.code);startWorkerTask(task),handler.sendWithPromise("PasswordRequest",ex).then(function({password}){finishWorkerTask(task),pdfManager.updatePassword(password),pdfManagerReady()}).catch(function(){finishWorkerTask(task),handler.send("DocException",ex)})}else ex instanceof InvalidPDFException||ex instanceof MissingPDFException||ex instanceof UnexpectedResponseException||ex instanceof UnknownErrorException?handler.send("DocException",ex):handler.send("DocException",new UnknownErrorException(ex.message,ex.toString()))}function pdfManagerReady(){ensureNotTerminated(),loadDocument(!1).then(onSuccess,function(reason){ensureNotTerminated(),reason instanceof XRefParseException?pdfManager.requestLoadedStream().then(function(){ensureNotTerminated(),loadDocument(!0).then(onSuccess,onFailure)}):onFailure(reason)})}ensureNotTerminated(),getPdfManager(data).then(function(newPdfManager){if(terminated)throw newPdfManager.terminate(new AbortException("Worker was terminated.")),new Error("Worker was terminated");(pdfManager=newPdfManager).requestLoadedStream(!0).then(stream=>{handler.send("DataLoaded",{length:stream.bytes.byteLength})})}).then(pdfManagerReady,onFailure)}(docParams),docParams=null}),workerHandlerName}static initializeFromPort(port){var handler=new MessageHandler("worker","main",port);WorkerMessageHandler.setup(handler,port),handler.send("ready",null)}}function isMessagePort(maybePort){return"function"==typeof maybePort.postMessage&&"onmessage"in maybePort}"undefined"==typeof window&&!isNodeJS&&"undefined"!=typeof self&&isMessagePort(self)&&WorkerMessageHandler.initializeFromPort(self);const pdfjsVersion="4.2.67",pdfjsBuild="49b388101";var __webpack_exports__WorkerMessageHandler=__webpack_exports__.WorkerMessageHandler;export{__webpack_exports__WorkerMessageHandler as WorkerMessageHandler}; \ No newline at end of file diff --git a/projects/web/public/pdfjs-dist/build/test.js b/projects/web/public/pdfjs-dist/build/test.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/projects/web/public/pdfjs-dist/web/cmaps/78-EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/78-EUC-H.bcmap deleted file mode 100644 index 2655fc70a..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/78-EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/78-EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/78-EUC-V.bcmap deleted file mode 100644 index f1ed85382..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/78-EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/78-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/78-H.bcmap deleted file mode 100644 index 39e89d333..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/78-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/78-RKSJ-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/78-RKSJ-H.bcmap deleted file mode 100644 index e4167cb51..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/78-RKSJ-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/78-RKSJ-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/78-RKSJ-V.bcmap deleted file mode 100644 index 50b1646e9..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/78-RKSJ-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/78-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/78-V.bcmap deleted file mode 100644 index d7af99b5e..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/78-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/78ms-RKSJ-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/78ms-RKSJ-H.bcmap deleted file mode 100644 index 37077d01e..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/78ms-RKSJ-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/78ms-RKSJ-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/78ms-RKSJ-V.bcmap deleted file mode 100644 index acf23231a..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/78ms-RKSJ-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/83pv-RKSJ-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/83pv-RKSJ-H.bcmap deleted file mode 100644 index 2359bc529..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/83pv-RKSJ-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/90ms-RKSJ-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/90ms-RKSJ-H.bcmap deleted file mode 100644 index af8293829..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/90ms-RKSJ-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/90ms-RKSJ-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/90ms-RKSJ-V.bcmap deleted file mode 100644 index 780549de1..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/90ms-RKSJ-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/90msp-RKSJ-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/90msp-RKSJ-H.bcmap deleted file mode 100644 index bfd3119c6..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/90msp-RKSJ-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/90msp-RKSJ-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/90msp-RKSJ-V.bcmap deleted file mode 100644 index 25ef14ab4..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/90msp-RKSJ-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/90pv-RKSJ-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/90pv-RKSJ-H.bcmap deleted file mode 100644 index 02f713bb8..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/90pv-RKSJ-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/90pv-RKSJ-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/90pv-RKSJ-V.bcmap deleted file mode 100644 index d08e0cc5d..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/90pv-RKSJ-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Add-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Add-H.bcmap deleted file mode 100644 index 59442acaf..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Add-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Add-RKSJ-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Add-RKSJ-H.bcmap deleted file mode 100644 index a3065e441..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Add-RKSJ-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Add-RKSJ-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Add-RKSJ-V.bcmap deleted file mode 100644 index 040014cfc..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Add-RKSJ-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Add-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Add-V.bcmap deleted file mode 100644 index 2f816d320..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Add-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-0.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-0.bcmap deleted file mode 100644 index 88ec04af4..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-0.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-1.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-1.bcmap deleted file mode 100644 index 03a501477..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-1.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-2.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-2.bcmap deleted file mode 100644 index 2aa95141f..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-2.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-3.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-3.bcmap deleted file mode 100644 index 86d8b8c79..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-3.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-4.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-4.bcmap deleted file mode 100644 index f50fc6c14..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-4.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-5.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-5.bcmap deleted file mode 100644 index 6caf4a831..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-5.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-6.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-6.bcmap deleted file mode 100644 index b77fb0705..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-6.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-UCS2.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-UCS2.bcmap deleted file mode 100644 index 69d79a2c2..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-CNS1-UCS2.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-0.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-0.bcmap deleted file mode 100644 index 36101083f..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-0.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-1.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-1.bcmap deleted file mode 100644 index 707bb1065..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-1.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-2.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-2.bcmap deleted file mode 100644 index f7648cc3f..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-2.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-3.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-3.bcmap deleted file mode 100644 index 852145890..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-3.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-4.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-4.bcmap deleted file mode 100644 index e40c63ab1..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-4.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-5.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-5.bcmap deleted file mode 100644 index d7623b500..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-5.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-UCS2.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-UCS2.bcmap deleted file mode 100644 index 758652593..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-GB1-UCS2.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-0.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-0.bcmap deleted file mode 100644 index f0e94ec19..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-0.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-1.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-1.bcmap deleted file mode 100644 index dad42c5ad..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-1.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-2.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-2.bcmap deleted file mode 100644 index 090819a06..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-2.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-3.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-3.bcmap deleted file mode 100644 index 087dfc155..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-3.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-4.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-4.bcmap deleted file mode 100644 index 46aa9bffe..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-4.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-5.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-5.bcmap deleted file mode 100644 index 5b4b65cc6..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-5.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-6.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-6.bcmap deleted file mode 100644 index e77d699ab..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-6.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-UCS2.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-UCS2.bcmap deleted file mode 100644 index 128a14107..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Japan1-UCS2.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-0.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-0.bcmap deleted file mode 100644 index cef1a9985..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-0.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-1.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-1.bcmap deleted file mode 100644 index 11ffa36df..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-1.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-2.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-2.bcmap deleted file mode 100644 index 3172308c7..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-2.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-UCS2.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-UCS2.bcmap deleted file mode 100644 index f3371c0cb..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Adobe-Korea1-UCS2.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/B5-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/B5-H.bcmap deleted file mode 100644 index beb4d2281..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/B5-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/B5-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/B5-V.bcmap deleted file mode 100644 index 2d4f87d50..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/B5-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/B5pc-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/B5pc-H.bcmap deleted file mode 100644 index ce0013167..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/B5pc-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/B5pc-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/B5pc-V.bcmap deleted file mode 100644 index 73b99ff2f..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/B5pc-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/CNS-EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/CNS-EUC-H.bcmap deleted file mode 100644 index 61d1d0cb0..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/CNS-EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/CNS-EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/CNS-EUC-V.bcmap deleted file mode 100644 index 1a393a51e..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/CNS-EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/CNS1-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/CNS1-H.bcmap deleted file mode 100644 index f738e218a..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/CNS1-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/CNS1-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/CNS1-V.bcmap deleted file mode 100644 index 9c3169f0d..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/CNS1-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/CNS2-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/CNS2-H.bcmap deleted file mode 100644 index c89b3527f..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/CNS2-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/CNS2-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/CNS2-V.bcmap deleted file mode 100644 index 7588cec83..000000000 --- a/projects/web/public/pdfjs-dist/web/cmaps/CNS2-V.bcmap +++ /dev/null @@ -1,3 +0,0 @@ -RCopyright 1990-2009 Adobe Systems Incorporated. -All rights reserved. -See ./LICENSECNS2-H \ No newline at end of file diff --git a/projects/web/public/pdfjs-dist/web/cmaps/ETHK-B5-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/ETHK-B5-H.bcmap deleted file mode 100644 index cb29415de..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/ETHK-B5-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/ETHK-B5-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/ETHK-B5-V.bcmap deleted file mode 100644 index f09aec631..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/ETHK-B5-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/ETen-B5-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/ETen-B5-H.bcmap deleted file mode 100644 index c2d77462d..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/ETen-B5-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/ETen-B5-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/ETen-B5-V.bcmap deleted file mode 100644 index 89bff159e..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/ETen-B5-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/ETenms-B5-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/ETenms-B5-H.bcmap deleted file mode 100644 index a7d69db5e..000000000 --- a/projects/web/public/pdfjs-dist/web/cmaps/ETenms-B5-H.bcmap +++ /dev/null @@ -1,3 +0,0 @@ -RCopyright 1990-2009 Adobe Systems Incorporated. -All rights reserved. -See ./LICENSE ETen-B5-H` ^ \ No newline at end of file diff --git a/projects/web/public/pdfjs-dist/web/cmaps/ETenms-B5-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/ETenms-B5-V.bcmap deleted file mode 100644 index adc5d618d..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/ETenms-B5-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/EUC-H.bcmap deleted file mode 100644 index e92ea5b3b..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/EUC-V.bcmap deleted file mode 100644 index 7a7c18322..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Ext-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Ext-H.bcmap deleted file mode 100644 index 3b5cde44d..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Ext-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Ext-RKSJ-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Ext-RKSJ-H.bcmap deleted file mode 100644 index ea4d2d97b..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Ext-RKSJ-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Ext-RKSJ-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Ext-RKSJ-V.bcmap deleted file mode 100644 index 3457c2770..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Ext-RKSJ-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Ext-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Ext-V.bcmap deleted file mode 100644 index 4999ca404..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Ext-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GB-EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GB-EUC-H.bcmap deleted file mode 100644 index e39908b98..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GB-EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GB-EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GB-EUC-V.bcmap deleted file mode 100644 index d5be5446a..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GB-EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GB-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GB-H.bcmap deleted file mode 100644 index 39189c54e..000000000 --- a/projects/web/public/pdfjs-dist/web/cmaps/GB-H.bcmap +++ /dev/null @@ -1,4 +0,0 @@ -RCopyright 1990-2009 Adobe Systems Incorporated. -All rights reserved. -See ./LICENSE!!]aX!!]`21> p z$]"Rd-U7* 4%+ Z {/%<9Kb1]." `],"] -"]h"]F"]$"]"]`"]>"]"]z"]X"]6"]"]r"]P"]."] "]j"]H"]&"]"]b"]@"]"]|"]Z"]8"]"]t"]R"]0"]"]l"]J"]("]"]d"]B"] "X~']W"]5"]"]q"]O"]-"] "]i"]G"]%"]"]a"]?"]"]{"]Y"]7"]"]s"]Q"]/"] "]k"]I"]'"]"]c"]A"]"]}"]["]9 \ No newline at end of file diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GB-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GB-V.bcmap deleted file mode 100644 index 310834512..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GB-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBK-EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBK-EUC-H.bcmap deleted file mode 100644 index 05fff7e82..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBK-EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBK-EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBK-EUC-V.bcmap deleted file mode 100644 index 0cdf6bed6..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBK-EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBK2K-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBK2K-H.bcmap deleted file mode 100644 index 46f6ba596..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBK2K-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBK2K-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBK2K-V.bcmap deleted file mode 100644 index d9a947984..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBK2K-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBKp-EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBKp-EUC-H.bcmap deleted file mode 100644 index 5cb0af687..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBKp-EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBKp-EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBKp-EUC-V.bcmap deleted file mode 100644 index bca93b8ef..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBKp-EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBT-EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBT-EUC-H.bcmap deleted file mode 100644 index 4b4e2d322..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBT-EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBT-EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBT-EUC-V.bcmap deleted file mode 100644 index 38f706699..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBT-EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBT-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBT-H.bcmap deleted file mode 100644 index 8437ac337..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBT-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBT-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBT-V.bcmap deleted file mode 100644 index 697ab4a8e..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBT-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBTpc-EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBTpc-EUC-H.bcmap deleted file mode 100644 index f6e50e893..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBTpc-EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBTpc-EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBTpc-EUC-V.bcmap deleted file mode 100644 index 6c0d71a2d..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBTpc-EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBpc-EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBpc-EUC-H.bcmap deleted file mode 100644 index c9edf67cf..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBpc-EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/GBpc-EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/GBpc-EUC-V.bcmap deleted file mode 100644 index 31450c97f..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/GBpc-EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/H.bcmap deleted file mode 100644 index 7b24ea462..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKdla-B5-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKdla-B5-H.bcmap deleted file mode 100644 index 7d30c0500..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKdla-B5-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKdla-B5-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKdla-B5-V.bcmap deleted file mode 100644 index 78946940d..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKdla-B5-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKdlb-B5-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKdlb-B5-H.bcmap deleted file mode 100644 index d829a2310..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKdlb-B5-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKdlb-B5-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKdlb-B5-V.bcmap deleted file mode 100644 index 2b572b50a..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKdlb-B5-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKgccs-B5-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKgccs-B5-H.bcmap deleted file mode 100644 index 971a4f23f..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKgccs-B5-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKgccs-B5-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKgccs-B5-V.bcmap deleted file mode 100644 index d353ca256..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKgccs-B5-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKm314-B5-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKm314-B5-H.bcmap deleted file mode 100644 index 576dc0111..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKm314-B5-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKm314-B5-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKm314-B5-V.bcmap deleted file mode 100644 index 0e96d0e22..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKm314-B5-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKm471-B5-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKm471-B5-H.bcmap deleted file mode 100644 index 11d170c75..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKm471-B5-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKm471-B5-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKm471-B5-V.bcmap deleted file mode 100644 index 54959bf9e..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKm471-B5-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKscs-B5-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKscs-B5-H.bcmap deleted file mode 100644 index 6ef7857ad..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKscs-B5-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/HKscs-B5-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/HKscs-B5-V.bcmap deleted file mode 100644 index 1fb2fa2a2..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/HKscs-B5-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Hankaku.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Hankaku.bcmap deleted file mode 100644 index 4b8ec7fce..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Hankaku.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Hiragana.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Hiragana.bcmap deleted file mode 100644 index 17e983e77..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Hiragana.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSC-EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSC-EUC-H.bcmap deleted file mode 100644 index a45c65f00..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSC-EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSC-EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSC-EUC-V.bcmap deleted file mode 100644 index 0e7b21f0a..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSC-EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSC-H.bcmap deleted file mode 100644 index b9b22b678..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSC-Johab-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSC-Johab-H.bcmap deleted file mode 100644 index 2531ffcf4..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSC-Johab-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSC-Johab-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSC-Johab-V.bcmap deleted file mode 100644 index 367ceb226..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSC-Johab-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSC-V.bcmap deleted file mode 100644 index 6ae2f0b6b..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-H.bcmap deleted file mode 100644 index a8d4240e6..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-HW-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-HW-H.bcmap deleted file mode 100644 index 8b4ae18fd..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-HW-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-HW-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-HW-V.bcmap deleted file mode 100644 index b655dbcfb..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-HW-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-V.bcmap deleted file mode 100644 index 21f97f65b..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSCms-UHC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSCpc-EUC-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSCpc-EUC-H.bcmap deleted file mode 100644 index e06f361eb..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSCpc-EUC-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/KSCpc-EUC-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/KSCpc-EUC-V.bcmap deleted file mode 100644 index f3c9113fc..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/KSCpc-EUC-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Katakana.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Katakana.bcmap deleted file mode 100644 index 524303c4f..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Katakana.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/LICENSE b/projects/web/public/pdfjs-dist/web/cmaps/LICENSE deleted file mode 100644 index b1ad168ad..000000000 --- a/projects/web/public/pdfjs-dist/web/cmaps/LICENSE +++ /dev/null @@ -1,36 +0,0 @@ -%%Copyright: ----------------------------------------------------------- -%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated. -%%Copyright: All rights reserved. -%%Copyright: -%%Copyright: Redistribution and use in source and binary forms, with or -%%Copyright: without modification, are permitted provided that the -%%Copyright: following conditions are met: -%%Copyright: -%%Copyright: Redistributions of source code must retain the above -%%Copyright: copyright notice, this list of conditions and the following -%%Copyright: disclaimer. -%%Copyright: -%%Copyright: Redistributions in binary form must reproduce the above -%%Copyright: copyright notice, this list of conditions and the following -%%Copyright: disclaimer in the documentation and/or other materials -%%Copyright: provided with the distribution. -%%Copyright: -%%Copyright: Neither the name of Adobe Systems Incorporated nor the names -%%Copyright: of its contributors may be used to endorse or promote -%%Copyright: products derived from this software without specific prior -%%Copyright: written permission. -%%Copyright: -%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, -%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -%%Copyright: ----------------------------------------------------------- diff --git a/projects/web/public/pdfjs-dist/web/cmaps/NWP-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/NWP-H.bcmap deleted file mode 100644 index afc5e4b05..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/NWP-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/NWP-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/NWP-V.bcmap deleted file mode 100644 index bb5785e32..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/NWP-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/RKSJ-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/RKSJ-H.bcmap deleted file mode 100644 index fb8d298e9..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/RKSJ-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/RKSJ-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/RKSJ-V.bcmap deleted file mode 100644 index a2555a6c0..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/RKSJ-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/Roman.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/Roman.bcmap deleted file mode 100644 index f896dcf1c..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/Roman.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UCS2-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UCS2-H.bcmap deleted file mode 100644 index d5db27c5c..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UCS2-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UCS2-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UCS2-V.bcmap deleted file mode 100644 index 1dc9b7a21..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UCS2-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF16-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF16-H.bcmap deleted file mode 100644 index 961afefb6..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF16-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF16-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF16-V.bcmap deleted file mode 100644 index df0cffe86..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF16-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF32-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF32-H.bcmap deleted file mode 100644 index 1ab18a143..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF32-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF32-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF32-V.bcmap deleted file mode 100644 index ad14662e2..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF32-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF8-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF8-H.bcmap deleted file mode 100644 index 83c6bd7c4..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF8-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF8-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF8-V.bcmap deleted file mode 100644 index 22a27e4dd..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniCNS-UTF8-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UCS2-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UCS2-H.bcmap deleted file mode 100644 index 5bd6228ce..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UCS2-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UCS2-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UCS2-V.bcmap deleted file mode 100644 index 53c534b7f..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UCS2-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF16-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF16-H.bcmap deleted file mode 100644 index b95045b40..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF16-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF16-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF16-V.bcmap deleted file mode 100644 index 51f023e0d..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF16-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF32-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF32-H.bcmap deleted file mode 100644 index f0dbd14f3..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF32-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF32-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF32-V.bcmap deleted file mode 100644 index ce9c30a98..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF32-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF8-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF8-H.bcmap deleted file mode 100644 index 982ca462b..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF8-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF8-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF8-V.bcmap deleted file mode 100644 index f78020dd4..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniGB-UTF8-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-H.bcmap deleted file mode 100644 index 7daf56afa..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-HW-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-HW-H.bcmap deleted file mode 100644 index ac9975c58..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-HW-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-HW-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-HW-V.bcmap deleted file mode 100644 index 3da0a1c62..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-HW-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-V.bcmap deleted file mode 100644 index c50b9ddfd..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UCS2-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF16-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF16-H.bcmap deleted file mode 100644 index 676134463..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF16-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF16-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF16-V.bcmap deleted file mode 100644 index 70bf90c0e..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF16-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF32-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF32-H.bcmap deleted file mode 100644 index 7a83d53ae..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF32-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF32-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF32-V.bcmap deleted file mode 100644 index 7a8713539..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF32-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF8-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF8-H.bcmap deleted file mode 100644 index 9f0334cac..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF8-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF8-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF8-V.bcmap deleted file mode 100644 index 808a94f0f..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS-UTF8-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF16-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF16-H.bcmap deleted file mode 100644 index d768bf811..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF16-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF16-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF16-V.bcmap deleted file mode 100644 index 3d5bf6fb4..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF16-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF32-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF32-H.bcmap deleted file mode 100644 index 09eee10d4..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF32-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF32-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF32-V.bcmap deleted file mode 100644 index 6c5460013..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF32-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF8-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF8-H.bcmap deleted file mode 100644 index 1b1a64f50..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF8-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF8-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF8-V.bcmap deleted file mode 100644 index 994aa9ef9..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJIS2004-UTF8-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJISPro-UCS2-HW-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJISPro-UCS2-HW-V.bcmap deleted file mode 100644 index 643f921b6..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJISPro-UCS2-HW-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJISPro-UCS2-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJISPro-UCS2-V.bcmap deleted file mode 100644 index c148f67f5..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJISPro-UCS2-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJISPro-UTF8-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJISPro-UTF8-V.bcmap deleted file mode 100644 index 1849d809a..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJISPro-UTF8-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJISX0213-UTF32-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJISX0213-UTF32-H.bcmap deleted file mode 100644 index a83a677c5..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJISX0213-UTF32-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJISX0213-UTF32-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJISX0213-UTF32-V.bcmap deleted file mode 100644 index f527248ad..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJISX0213-UTF32-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJISX02132004-UTF32-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJISX02132004-UTF32-H.bcmap deleted file mode 100644 index e1a988dc9..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJISX02132004-UTF32-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniJISX02132004-UTF32-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniJISX02132004-UTF32-V.bcmap deleted file mode 100644 index 47e054a96..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniJISX02132004-UTF32-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UCS2-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UCS2-H.bcmap deleted file mode 100644 index b5b94852a..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UCS2-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UCS2-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UCS2-V.bcmap deleted file mode 100644 index 026adcaad..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UCS2-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF16-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF16-H.bcmap deleted file mode 100644 index fd4e66e81..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF16-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF16-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF16-V.bcmap deleted file mode 100644 index 075efb705..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF16-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF32-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF32-H.bcmap deleted file mode 100644 index 769d2142c..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF32-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF32-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF32-V.bcmap deleted file mode 100644 index bdab208b6..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF32-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF8-H.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF8-H.bcmap deleted file mode 100644 index 6ff8674af..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF8-H.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF8-V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF8-V.bcmap deleted file mode 100644 index 8dfa76a58..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/UniKS-UTF8-V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/V.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/V.bcmap deleted file mode 100644 index fdec99066..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/V.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/cmaps/WP-Symbol.bcmap b/projects/web/public/pdfjs-dist/web/cmaps/WP-Symbol.bcmap deleted file mode 100644 index 46729bbf3..000000000 Binary files a/projects/web/public/pdfjs-dist/web/cmaps/WP-Symbol.bcmap and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/custom.css b/projects/web/public/pdfjs-dist/web/custom.css deleted file mode 100644 index e593b142e..000000000 --- a/projects/web/public/pdfjs-dist/web/custom.css +++ /dev/null @@ -1,20 +0,0 @@ -.tooltip { - position: absolute; - background-color: #333; - color: white; - padding: 5px 10px; - border-radius: 4px; - font-size: 14px; - z-index: 1000; - pointer-events: none; -} -.tooltip::before { - content: ''; - position: absolute; - top: -5px; - left: 50%; - transform: translateX(-50%); - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #333; -} diff --git a/projects/web/public/pdfjs-dist/web/custom.js b/projects/web/public/pdfjs-dist/web/custom.js deleted file mode 100644 index 8b1378917..000000000 --- a/projects/web/public/pdfjs-dist/web/custom.js +++ /dev/null @@ -1 +0,0 @@ - diff --git a/projects/web/public/pdfjs-dist/web/images/altText_add.svg b/projects/web/public/pdfjs-dist/web/images/altText_add.svg deleted file mode 100644 index 3451b536c..000000000 --- a/projects/web/public/pdfjs-dist/web/images/altText_add.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/altText_done.svg b/projects/web/public/pdfjs-dist/web/images/altText_done.svg deleted file mode 100644 index f54924ebf..000000000 --- a/projects/web/public/pdfjs-dist/web/images/altText_done.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-check.svg b/projects/web/public/pdfjs-dist/web/images/annotation-check.svg deleted file mode 100644 index 71cd16df5..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-check.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-comment.svg b/projects/web/public/pdfjs-dist/web/images/annotation-comment.svg deleted file mode 100644 index 86f1f1724..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-comment.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-help.svg b/projects/web/public/pdfjs-dist/web/images/annotation-help.svg deleted file mode 100644 index 00938fefe..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-help.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-insert.svg b/projects/web/public/pdfjs-dist/web/images/annotation-insert.svg deleted file mode 100644 index 519ef6826..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-insert.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-key.svg b/projects/web/public/pdfjs-dist/web/images/annotation-key.svg deleted file mode 100644 index 8d09d5378..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-key.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-newparagraph.svg b/projects/web/public/pdfjs-dist/web/images/annotation-newparagraph.svg deleted file mode 100644 index 38d2497da..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-newparagraph.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-noicon.svg b/projects/web/public/pdfjs-dist/web/images/annotation-noicon.svg deleted file mode 100644 index c07d10808..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-noicon.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-note.svg b/projects/web/public/pdfjs-dist/web/images/annotation-note.svg deleted file mode 100644 index 70173651c..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-note.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-paperclip.svg b/projects/web/public/pdfjs-dist/web/images/annotation-paperclip.svg deleted file mode 100644 index 2bed2250a..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-paperclip.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-paragraph.svg b/projects/web/public/pdfjs-dist/web/images/annotation-paragraph.svg deleted file mode 100644 index 6ae5212b7..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-paragraph.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/annotation-pushpin.svg b/projects/web/public/pdfjs-dist/web/images/annotation-pushpin.svg deleted file mode 100644 index 6e0896cf4..000000000 --- a/projects/web/public/pdfjs-dist/web/images/annotation-pushpin.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/cursor-editorFreeHighlight.svg b/projects/web/public/pdfjs-dist/web/images/cursor-editorFreeHighlight.svg deleted file mode 100644 index 513f6bdfd..000000000 --- a/projects/web/public/pdfjs-dist/web/images/cursor-editorFreeHighlight.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/cursor-editorFreeText.svg b/projects/web/public/pdfjs-dist/web/images/cursor-editorFreeText.svg deleted file mode 100644 index de2838ef1..000000000 --- a/projects/web/public/pdfjs-dist/web/images/cursor-editorFreeText.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/cursor-editorInk.svg b/projects/web/public/pdfjs-dist/web/images/cursor-editorInk.svg deleted file mode 100644 index 1dadb5c01..000000000 --- a/projects/web/public/pdfjs-dist/web/images/cursor-editorInk.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/cursor-editorTextHighlight.svg b/projects/web/public/pdfjs-dist/web/images/cursor-editorTextHighlight.svg deleted file mode 100644 index 800340cb5..000000000 --- a/projects/web/public/pdfjs-dist/web/images/cursor-editorTextHighlight.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/editor-toolbar-delete.svg b/projects/web/public/pdfjs-dist/web/images/editor-toolbar-delete.svg deleted file mode 100644 index f84520d85..000000000 --- a/projects/web/public/pdfjs-dist/web/images/editor-toolbar-delete.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - \ No newline at end of file diff --git a/projects/web/public/pdfjs-dist/web/images/findbarButton-next.svg b/projects/web/public/pdfjs-dist/web/images/findbarButton-next.svg deleted file mode 100644 index 8cb39bec6..000000000 --- a/projects/web/public/pdfjs-dist/web/images/findbarButton-next.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/findbarButton-previous.svg b/projects/web/public/pdfjs-dist/web/images/findbarButton-previous.svg deleted file mode 100644 index b610879da..000000000 --- a/projects/web/public/pdfjs-dist/web/images/findbarButton-previous.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/gv-toolbarButton-download.svg b/projects/web/public/pdfjs-dist/web/images/gv-toolbarButton-download.svg deleted file mode 100644 index d56cf3ce7..000000000 --- a/projects/web/public/pdfjs-dist/web/images/gv-toolbarButton-download.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/layer-button-show.svg b/projects/web/public/pdfjs-dist/web/images/layer-button-show.svg deleted file mode 100644 index fc4582a96..000000000 --- a/projects/web/public/pdfjs-dist/web/images/layer-button-show.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/layer-button.svg b/projects/web/public/pdfjs-dist/web/images/layer-button.svg deleted file mode 100644 index 342230c72..000000000 --- a/projects/web/public/pdfjs-dist/web/images/layer-button.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/loading-icon.gif b/projects/web/public/pdfjs-dist/web/images/loading-icon.gif deleted file mode 100644 index 1c72ebb55..000000000 Binary files a/projects/web/public/pdfjs-dist/web/images/loading-icon.gif and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/images/loading.svg b/projects/web/public/pdfjs-dist/web/images/loading.svg deleted file mode 100644 index 0a15ff688..000000000 --- a/projects/web/public/pdfjs-dist/web/images/loading.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-documentProperties.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-documentProperties.svg deleted file mode 100644 index dd3917b91..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-documentProperties.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-firstPage.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-firstPage.svg deleted file mode 100644 index f5c917f12..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-firstPage.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-handTool.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-handTool.svg deleted file mode 100644 index b7073b598..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-handTool.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-lastPage.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-lastPage.svg deleted file mode 100644 index c04f65079..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-lastPage.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-rotateCcw.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-rotateCcw.svg deleted file mode 100644 index da73a1b16..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-rotateCcw.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-rotateCw.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-rotateCw.svg deleted file mode 100644 index c41ce7365..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-rotateCw.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollHorizontal.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollHorizontal.svg deleted file mode 100644 index fb440b946..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollHorizontal.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollPage.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollPage.svg deleted file mode 100644 index 64a9f5007..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollPage.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollVertical.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollVertical.svg deleted file mode 100644 index dc7e80520..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollVertical.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollWrapped.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollWrapped.svg deleted file mode 100644 index 75fe26bcf..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-scrollWrapped.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-selectTool.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-selectTool.svg deleted file mode 100644 index 94d51410d..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-selectTool.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-spreadEven.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-spreadEven.svg deleted file mode 100644 index ce201e33c..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-spreadEven.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-spreadNone.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-spreadNone.svg deleted file mode 100644 index e8d487fa3..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-spreadNone.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-spreadOdd.svg b/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-spreadOdd.svg deleted file mode 100644 index 9211a427b..000000000 --- a/projects/web/public/pdfjs-dist/web/images/secondaryToolbarButton-spreadOdd.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-bookmark.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-bookmark.svg deleted file mode 100644 index c4c37c905..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-bookmark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-download.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-download.svg deleted file mode 100644 index e2e850adf..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-download.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorFreeText.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorFreeText.svg deleted file mode 100644 index 13a67bd9b..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorFreeText.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorHighlight.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorHighlight.svg deleted file mode 100644 index b3cd7fda9..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorHighlight.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorInk.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorInk.svg deleted file mode 100644 index b579eec7e..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorInk.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorStamp.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorStamp.svg deleted file mode 100644 index a1fef4922..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-editorStamp.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-menuArrow.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-menuArrow.svg deleted file mode 100644 index b04b9277a..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-menuArrow.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-openFile.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-openFile.svg deleted file mode 100644 index e773781d6..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-openFile.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-pageDown.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-pageDown.svg deleted file mode 100644 index b04b9277a..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-pageDown.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-pageUp.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-pageUp.svg deleted file mode 100644 index 44839da01..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-pageUp.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-presentationMode.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-presentationMode.svg deleted file mode 100644 index 901d5672b..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-presentationMode.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-print.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-print.svg deleted file mode 100644 index 97a390474..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-print.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-search.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-search.svg deleted file mode 100644 index 0cc7ae21a..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-search.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-secondaryToolbarToggle.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-secondaryToolbarToggle.svg deleted file mode 100644 index cace86372..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-secondaryToolbarToggle.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-sidebarToggle-open.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-sidebarToggle-open.svg deleted file mode 100644 index b57dab1ad..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-sidebarToggle-open.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-sidebarToggle.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-sidebarToggle.svg deleted file mode 100644 index b2d250b6e..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-sidebarToggle.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewAttachments.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewAttachments.svg deleted file mode 100644 index ab73f6e6e..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewAttachments.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewLayers.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewLayers.svg deleted file mode 100644 index 1d7266826..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewLayers.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewOutline.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewOutline.svg deleted file mode 100644 index 7ed1bd97f..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewOutline.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewThumbnail.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewThumbnail.svg deleted file mode 100644 index 040d12326..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-viewThumbnail.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-zoomIn.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-zoomIn.svg deleted file mode 100644 index 30ec51a2f..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-zoomIn.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/toolbarButton-zoomOut.svg b/projects/web/public/pdfjs-dist/web/images/toolbarButton-zoomOut.svg deleted file mode 100644 index f273b5995..000000000 --- a/projects/web/public/pdfjs-dist/web/images/toolbarButton-zoomOut.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/projects/web/public/pdfjs-dist/web/images/treeitem-collapsed.svg b/projects/web/public/pdfjs-dist/web/images/treeitem-collapsed.svg deleted file mode 100644 index 831cddfc8..000000000 --- a/projects/web/public/pdfjs-dist/web/images/treeitem-collapsed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/projects/web/public/pdfjs-dist/web/images/treeitem-expanded.svg b/projects/web/public/pdfjs-dist/web/images/treeitem-expanded.svg deleted file mode 100644 index 2d45f0c8d..000000000 --- a/projects/web/public/pdfjs-dist/web/images/treeitem-expanded.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/projects/web/public/pdfjs-dist/web/layer.js b/projects/web/public/pdfjs-dist/web/layer.js deleted file mode 100644 index fb3562193..000000000 --- a/projects/web/public/pdfjs-dist/web/layer.js +++ /dev/null @@ -1,333 +0,0 @@ -var LAYER_CHANGE_ACTIVE_CLASS = 'layerChange-active' - -// 获取 button 元素 -var layerChangeButton = document.getElementById('layerChange'); - -var isLayerChangeButtonActive = () => { - return layerChangeButton.classList.contains(LAYER_CHANGE_ACTIVE_CLASS) -} - -var getLocale = () => { - console.log('test-iframe-locale', localStorage.getItem('umi-locale') ,localStorage.getItem('locale') , '') - return localStorage.getItem('umi_locale') || localStorage.getItem('locale') || 'zh-CN'; -} - -// 添加tooltip -function createHoverTooltip(element, tooltipText, id, options = {}) { - const tooltip = document.createElement('div'); - tooltip.className = `tooltip-${id} tooltip`; - tooltip.style.display = 'none'; - tooltip.style.zIndex = '999'; - document.body.appendChild(tooltip); - - const defaultOptions = { - offset: { y: 10 }, - delay: 200, - duration: 200, - }; - - const mergedOptions = { ...defaultOptions, ...options }; - - let tooltipTimer; - - function positionTooltip() { - const rect = element.getBoundingClientRect(); - const tooltipRect = tooltip.getBoundingClientRect(); - const left = rect.left + (rect.width - tooltipRect.width) / 2; - const top = rect.bottom + mergedOptions.offset.y; - - tooltip.style.left = `${left}px`; - tooltip.style.top = `${top}px`; - } - - function showTooltip() { - tooltip.textContent = tooltipText; - tooltip.style.display = 'block'; - tooltip.style.opacity = '0'; - tooltip.style.transition = `opacity ${mergedOptions.duration}ms`; - positionTooltip(); - setTimeout(() => { - tooltip.style.opacity = '1'; - }, 10); - } - - function hideTooltip() { - tooltip.style.opacity = '0'; - setTimeout(() => { - tooltip.style.display = 'none'; - }, mergedOptions.duration); - } - - element.addEventListener('mouseenter', () => { - tooltipTimer = setTimeout(showTooltip, mergedOptions.delay); - }); - - element.addEventListener('mouseleave', () => { - clearTimeout(tooltipTimer); - hideTooltip(); - }); - - window.addEventListener('resize', positionTooltip); - window.addEventListener('scroll', positionTooltip); - - // 返回对象,包含 updateTooltipText 函数 - return { - updateTooltipText: (newText) => { - tooltipText = newText; - positionTooltip() - if (tooltip.style.display !== 'none') { - showTooltip(); - tooltipText = newText; - } - } - }; -} - -const tooltipLayer = createHoverTooltip(layerChangeButton, getLocale() === 'zh-CN' ? '隐藏识别结果': 'Hide recognition results', 'layerChange', { offset: { y: 22 } }); - - - -window.addEventListener('storage', function(event) { - // 检查事件是否与监听的键相关 - if (event.key === 'umi_locale'|| event.key === 'locale') { - const text = isLayerChangeButtonActive() ? event?.newValue === 'zh-CN' ? '隐藏识别结果': 'Hide recognition results': getLocale() === 'zh-CN' ? '显示识别结果': 'Display recognition results' - tooltipLayer?.updateTooltipText(text) - } -}); - - -// 添加点击事件监听器 -layerChangeButton.addEventListener('click', function() { - // 检查当前 button 的选中状态 - if (isLayerChangeButtonActive()) { - // 如果已经处于选中状态,则移除选中状态的 class - const annotationLayerList = document.getElementsByClassName('annotationLayer') - Array?.from(annotationLayerList)?.forEach(element => { - var extractLayer = element.querySelector('#extractLayer'); - if(extractLayer) { - extractLayer.style.opacity = 0 - } - }); - console.log('test-dd', annotationLayerList, typeof annotationLayerList) - tooltipLayer?.updateTooltipText( getLocale() === 'zh-CN' ? '显示识别结果': 'Display recognition results') - this.classList.remove(LAYER_CHANGE_ACTIVE_CLASS); - } else { - // 如果未处于选中状态,则添加选中状态的 class - this.classList.add(LAYER_CHANGE_ACTIVE_CLASS); - tooltipLayer?.updateTooltipText(getLocale() === 'zh-CN' ? '隐藏识别结果': 'Hide recognition results') - const scale = 0.943 / 0.7071 * window?.PDFViewerApplication?.pdfViewer?._currentScale || 1 - window.renderExtractLayer(window.pdfExtractData, Number(0), scale) - - const annotationLayerList = document.getElementsByClassName('annotationLayer') - Array?.from(annotationLayerList)?.forEach(element => { - var extractLayer = element.querySelector('#extractLayer'); - if(extractLayer) { - extractLayer.style.opacity = 1 - } - }) - } -}); - - -// 获取显示消息的元素 -const messageDisplay = document.getElementById('messageDisplay'); -function removeDuplicates(arr) { - return [...new Set(arr)]; -} - -window.addEventListener('error', function(event) { - if (event.target && event.target.tagName === 'SCRIPT') { - console.error("Script error detected: ", event); - } -}, true); - -// 添加消息监听器 -window.addEventListener('message', function(event) { - const receivedMessage = event.data; - const data = receivedMessage?.data - const type = receivedMessage?.type - function setHasRenderAnimatedPage (num) { - if(!window.hasRenderAnimatedPage ) { - window.hasRenderAnimatedPage = [] - } - if( typeof window.hasRenderAnimatedPage === 'object'){ - window.hasRenderAnimatedPage = removeDuplicates([...window.hasRenderAnimatedPage, num]) - } - } - let animatingBox = new Map() - function renderExtractLayer(data, pageNum, scale) { - // 判断按钮是开的还是关的 - if(!isLayerChangeButtonActive()) return; - - const bboxes = data?.[pageNum]?.bboxes || [] - - function drawBoxes(boxes, scale) { - if(animatingBox.get(pageNum)) return - - // const annotationLayer = document.querySelector('.canvasWrapper'); - const pageLayer = document.getElementsByClassName('page')?.[pageNum] - const annotationLayer = pageLayer.querySelectorAll('.annotationLayer')?.[0]; - // annotationLayer.removeAttribute('hidden'); - if(!annotationLayer) { - // console.error('error: annotationLayer has not been rendered') - return - } - const extractLayer = annotationLayer.querySelector('#extractLayer'); - - // 因为pdfjs只会缓存8页的内容,所以采用每次切换移除重建canvas的方式 - if (extractLayer) { - extractLayer?.remove(); - } - annotationLayer.style.width = '100%'; - annotationLayer.style.height = '100%' - annotationLayer.style.position = 'absolute'; - annotationLayer.style.top = 0; - annotationLayer.style.left = 0; - const computedLayer = document.querySelector('.canvasWrapper'); - const canvas = document.createElement('canvas'); - canvas.id = 'extractLayer' - const w = pageLayer?.offsetWidth - 18; - const h = pageLayer?.offsetHeight - 18; - canvas.width = true ? `${w}` : '100%'; - canvas.height = true ? `${h}`: '100%'; - canvas.style.width = true ? `${w}px` : '100%'; - canvas.style.height = true ? `${h}px`: '100%'; - canvas.style.position = 'absolute'; - canvas.style.top = 0; - canvas.style.left = 0; - annotationLayer.append(canvas) - const ctx = canvas.getContext('2d'); - - // 移除之前的画布内容 - // ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.save(); - // console.log('renderExtractLayer: draw boxes') - - function drawPartialRect(ctx, box, progress, scale) { - const [x, y, x2, y2]= box.bbox.map((i) => (i * scale)); - const width = x2 - x; - const height = y2 - y; - const color = box?.color?.line - const fillColor = box?.color?.fill - ctx.beginPath(); - ctx.strokeStyle = color; - - // 左边竖线 - ctx.moveTo(x, y); - ctx.lineTo(x, y2); - - // 上边横线 - ctx.moveTo(x, y); - ctx.lineTo(x + width * (progress < 0 ? 0: progress), y); - - // 右边竖线 (只在进度完成时绘制) - if (progress === 1) { - ctx.moveTo(x2, y); - ctx.lineTo(x2, y2); - ctx.fillStyle = fillColor; - ctx.fillRect(x, y, width, height); - } - - // 下边横线 - ctx.moveTo(x, y2); - ctx.lineTo(x + width * (progress < 0 ? 0: progress), y2); - - ctx.stroke(); - } - - function fillRect(ctx, box, scale) { - const [x, y, x2, y2]= box.bbox.map((i) => (i * scale)); - const width = x2 - x; - const height = y2 - y; - const color = box?.color?.fill - - ctx.fillStyle = color; - ctx.fillRect(x, y, width, height); - } - - function animateBox(ctx, box, duration = 1000) { - const startTime = performance.now(); - - function animate(currentTime) { - const elapsedTime = currentTime - startTime; - const progress = Math.min(elapsedTime / duration, 1); - // ctx.clearRect(...box.bbox); // 清除之前的绘制 - drawPartialRect(ctx, box, progress, scale); - - if (progress < 1) { - requestAnimationFrame(animate); - } - } - - requestAnimationFrame(animate); - } - - async function animateAllBoxes() { - // const [index, value] of array.entries() - for (const [index, box] of boxes?.entries()) { - await animateBox(ctx, box, 600); // 动画时间改为500ms - await new Promise(resolve => setTimeout(resolve, 200)); // 每个框之间的延迟也减少到100ms - } - - // 所有线框动画完成后,一次性填充所有矩形 - // ctx.clearRect(...box.bbox); // 清除之前的绘制 - // boxes.forEach(box => fillRect(ctx, box, scale)); - console.log("test-animate All animations completed and boxes filled"); - animatingBox.set(pageNum, false) - } - - boxes.forEach((box, index) => { - drawPartialRect(ctx, box, 1, scale); - }); - - - canvas.style.width = false ? `${w}px` : '100%'; - canvas.style.height = false ? `${h}px`: '100%'; - ctx.restore(); - } - !!bboxes?.length&&drawBoxes(bboxes, scale); - - } - - // init extractLayer data - if(type === 'initExtractLayerData') { - const scale = 0.943 / 0.7071 * window?.PDFViewerApplication?.pdfViewer?._currentScale || 1 - const currentPageNumber = window?.PDFViewerApplication?.pdfViewer?._currentPageNumber || 1 - window.pdfExtractData = data; - window.renderExtractLayer = renderExtractLayer - // window.renderExtractLayer(window.pdfExtractData, currentPageNumber - 1, scale) - // use the picture view rather than outlined view - window.renderExtractLayer(window.pdfExtractData, Number(0), scale) - window?.PDFViewerApplication?.pdfSidebar?.switchView(1, false) - } - - if(type === 'pageChange') { - if(window.renderExtractLayer - && window.pdfExtractData - ) { - const scale = 0.943 / 0.7071 * window?.PDFViewerApplication?.pdfViewer?._currentScale || 1 - const currentPageNumber = data || 0 - window.renderExtractLayer(window.pdfExtractData, Number(0), scale) - window.renderExtractLayer(window.pdfExtractData, Number(data), scale) - } else if(!window.pdfExtractData) { - // console.error('extract pdf render data has not been initialized') - } - } - - if( type === 'title') { - const odlPdfTitle = document.getElementById("odl-pdf-title"); - odlPdfTitle.innerText = data; - } - - if( type === 'setPage') { - window?.PDFViewerApplication?.eventBus?.dispatch("pagenumberchanged", { - value: data - }) - } - - if( type === '') { - - } -}); - - diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitDingbats.pfb b/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitDingbats.pfb deleted file mode 100644 index 30d52963e..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitDingbats.pfb and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixed.pfb b/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixed.pfb deleted file mode 100644 index f12dcbce5..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixed.pfb and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixedBold.pfb b/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixedBold.pfb deleted file mode 100644 index cf8e24aee..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixedBold.pfb and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixedBoldItalic.pfb b/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixedBoldItalic.pfb deleted file mode 100644 index d2880017c..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixedBoldItalic.pfb and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixedItalic.pfb b/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixedItalic.pfb deleted file mode 100644 index d71697d4b..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitFixedItalic.pfb and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerif.pfb b/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerif.pfb deleted file mode 100644 index 3fa682efb..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerif.pfb and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerifBold.pfb b/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerifBold.pfb deleted file mode 100644 index ff7c6ddec..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerifBold.pfb and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerifBoldItalic.pfb b/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerifBoldItalic.pfb deleted file mode 100644 index 460231fb8..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerifBoldItalic.pfb and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerifItalic.pfb b/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerifItalic.pfb deleted file mode 100644 index d03a7c781..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSerifItalic.pfb and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSymbol.pfb b/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSymbol.pfb deleted file mode 100644 index c8f9bca78..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/FoxitSymbol.pfb and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/LICENSE_FOXIT b/projects/web/public/pdfjs-dist/web/standard_fonts/LICENSE_FOXIT deleted file mode 100644 index 8b4ed6ddd..000000000 --- a/projects/web/public/pdfjs-dist/web/standard_fonts/LICENSE_FOXIT +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/LICENSE_LIBERATION b/projects/web/public/pdfjs-dist/web/standard_fonts/LICENSE_LIBERATION deleted file mode 100644 index aba73e8a4..000000000 --- a/projects/web/public/pdfjs-dist/web/standard_fonts/LICENSE_LIBERATION +++ /dev/null @@ -1,102 +0,0 @@ -Digitized data copyright (c) 2010 Google Corporation - with Reserved Font Arimo, Tinos and Cousine. -Copyright (c) 2012 Red Hat, Inc. - with Reserved Font Name Liberation. - -This Font Software is licensed under the SIL Open Font License, -Version 1.1. - -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 - -PREAMBLE The goals of the Open Font License (OFL) are to stimulate -worldwide development of collaborative font projects, to support the font -creation efforts of academic and linguistic communities, and to provide -a free and open framework in which fonts may be shared and improved in -partnership with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. -The fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply to -any document created using the fonts or their derivatives. - - - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. -This may include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components -as distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting ? in part or in whole ? -any of the components of the Original Version, by changing formats or -by porting the Font Software to a new environment. - -"Author" refers to any designer, engineer, programmer, technical writer -or other person who contributed to the Font Software. - - -PERMISSION & CONDITIONS - -Permission is hereby granted, free of charge, to any person obtaining a -copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components,in - Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, - redistributed and/or sold with any software, provided that each copy - contains the above copyright notice and this license. These can be - included either as stand-alone text files, human-readable headers or - in the appropriate machine-readable metadata fields within text or - binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font - Name(s) unless explicit written permission is granted by the - corresponding Copyright Holder. This restriction only applies to the - primary font name as presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font - Software shall not be used to promote, endorse or advertise any - Modified Version, except to acknowledge the contribution(s) of the - Copyright Holder(s) and the Author(s) or with their explicit written - permission. - -5) The Font Software, modified or unmodified, in part or in whole, must - be distributed entirely under this license, and must not be distributed - under any other license. The requirement for fonts to remain under - this license does not apply to any document created using the Font - Software. - - - -TERMINATION -This license becomes null and void if any of the above conditions are not met. - - - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER -DEALINGS IN THE FONT SOFTWARE. - diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-Bold.ttf b/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-Bold.ttf deleted file mode 100644 index ee2371540..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-Bold.ttf and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-BoldItalic.ttf b/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-BoldItalic.ttf deleted file mode 100644 index 42b5717dd..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-BoldItalic.ttf and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-Italic.ttf b/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-Italic.ttf deleted file mode 100644 index 0cf612634..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-Italic.ttf and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-Regular.ttf b/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-Regular.ttf deleted file mode 100644 index 366d1489c..000000000 Binary files a/projects/web/public/pdfjs-dist/web/standard_fonts/LiberationSans-Regular.ttf and /dev/null differ diff --git a/projects/web/public/pdfjs-dist/web/viewer.css b/projects/web/public/pdfjs-dist/web/viewer.css deleted file mode 100644 index 92ac36354..000000000 --- a/projects/web/public/pdfjs-dist/web/viewer.css +++ /dev/null @@ -1,4575 +0,0 @@ -/* Copyright 2014 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - /* custom */ - .tooltip { - position: absolute; - background-color: #333; - color: white; - padding: 5px 10px; - border-radius: 4px; - font-size: 14px; - z-index: 100; - pointer-events: none; -} -.tooltip::before { - content: ''; - position: absolute; - top: -5px; - left: 50%; - transform: translateX(-50%); - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #333; -} - - -.textLayer{ - position:absolute; - text-align:initial; - inset:0; - overflow:hidden; - opacity:1; - line-height:1; - -webkit-text-size-adjust:none; - -moz-text-size-adjust:none; - text-size-adjust:none; - forced-color-adjust:none; - transform-origin:0 0; - caret-color:CanvasText; -} - -.textLayer.highlighting{ - touch-action:none; - } - -.textLayer :is(span, br){ - color:transparent; - /* color: rgba(18, 19, 22, 80%); */ - position:absolute; - white-space:pre; - cursor:text; - transform-origin:0% 0%; - z-index: 999; - } - -.textLayer span.markedContent{ - top:0; - height:0; - } - -.textLayer .highlight{ - --highlight-bg-color:rgb(180 0 170 / 0.25); - --highlight-selected-bg-color:rgb(0 100 0 / 0.25); - --highlight-backdrop-filter:none; - --highlight-selected-backdrop-filter:none; - - margin:-1px; - padding:1px; - background-color:var(--highlight-bg-color); - -webkit-backdrop-filter:var(--highlight-backdrop-filter); - backdrop-filter:var(--highlight-backdrop-filter); - border-radius:4px; - } - -@media screen and (forced-colors: active){ - -.textLayer .highlight{ - --highlight-bg-color:transparent; - --highlight-selected-bg-color:transparent; - --highlight-backdrop-filter:var(--hcm-highlight-filter); - --highlight-selected-backdrop-filter:var( - --hcm-highlight-selected-filter - ); - } - } - -.textLayer .highlight.appended{ - position:initial; - } - -.textLayer .highlight.begin{ - border-radius:4px 0 0 4px; - } - -.textLayer .highlight.end{ - border-radius:0 4px 4px 0; - } - -.textLayer .highlight.middle{ - border-radius:0; - } - -.textLayer .highlight.selected{ - background-color:var(--highlight-selected-bg-color); - -webkit-backdrop-filter:var(--highlight-selected-backdrop-filter); - backdrop-filter:var(--highlight-selected-backdrop-filter); - } - -.textLayer ::-moz-selection{ - background:rgba(0 0 255 / 0.25); - background:color-mix(in srgb, AccentColor, transparent 75%); - } - -.textLayer ::selection{ - background:rgba(0 0 255 / 0.25); - background:color-mix(in srgb, AccentColor, transparent 75%); - } - -.textLayer br::-moz-selection{ - background:transparent; - } - -.textLayer br::selection{ - background:transparent; - } - -.textLayer .endOfContent{ - display:block; - position:absolute; - inset:100% 0 0; - z-index:-1; - cursor:default; - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; - } - -.textLayer .endOfContent.active{ - top:0; - } - -.annotationLayer{ - --annotation-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,"); - --input-focus-border-color:Highlight; - --input-focus-outline:1px solid Canvas; - --input-unfocused-border-color:transparent; - --input-disabled-border-color:transparent; - --input-hover-border-color:black; - --link-outline:none; - - position:absolute; - top:0; - left:0; - pointer-events:none; - transform-origin:0 0; -} - -@media screen and (forced-colors: active){ - -.annotationLayer{ - --input-focus-border-color:CanvasText; - --input-unfocused-border-color:ActiveText; - --input-disabled-border-color:GrayText; - --input-hover-border-color:Highlight; - --link-outline:1.5px solid LinkText; -} - - .annotationLayer .textWidgetAnnotation :is(input, textarea):required, .annotationLayer .choiceWidgetAnnotation select:required, .annotationLayer .buttonWidgetAnnotation:is(.checkBox, .radioButton) input:required{ - outline:1.5px solid selectedItem; - } - - .annotationLayer .linkAnnotation{ - outline:var(--link-outline); - } - - .annotationLayer .linkAnnotation:hover{ - -webkit-backdrop-filter:var(--hcm-highlight-filter); - backdrop-filter:var(--hcm-highlight-filter); - } - - .annotationLayer .linkAnnotation > a:hover{ - opacity:0 !important; - background:none !important; - box-shadow:none; - } - - .annotationLayer .popupAnnotation .popup{ - outline:calc(1.5px * var(--scale-factor)) solid CanvasText !important; - background-color:ButtonFace !important; - color:ButtonText !important; - } - - .annotationLayer .highlightArea:hover::after{ - position:absolute; - top:0; - left:0; - width:100%; - height:100%; - -webkit-backdrop-filter:var(--hcm-highlight-filter); - backdrop-filter:var(--hcm-highlight-filter); - content:""; - pointer-events:none; - } - - .annotationLayer .popupAnnotation.focused .popup{ - outline:calc(3px * var(--scale-factor)) solid Highlight !important; - } - } - -.annotationLayer[data-main-rotation="90"] .norotate{ - transform:rotate(270deg) translateX(-100%); - } - -.annotationLayer[data-main-rotation="180"] .norotate{ - transform:rotate(180deg) translate(-100%, -100%); - } - -.annotationLayer[data-main-rotation="270"] .norotate{ - transform:rotate(90deg) translateY(-100%); - } - -.annotationLayer.disabled section, - .annotationLayer.disabled .popup{ - pointer-events:none; - } - -.annotationLayer .annotationContent{ - position:absolute; - width:100%; - height:100%; - pointer-events:none; - } - -.annotationLayer .annotationContent.freetext{ - background:transparent; - border:none; - inset:0; - overflow:visible; - white-space:nowrap; - font:10px sans-serif; - line-height:1.35; - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; - } - -.annotationLayer section{ - position:absolute; - text-align:initial; - pointer-events:auto; - box-sizing:border-box; - transform-origin:0 0; - } - -.annotationLayer section:has(div.annotationContent) canvas.annotationContent{ - display:none; - } - -.annotationLayer :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton) > a{ - position:absolute; - font-size:1em; - top:0; - left:0; - width:100%; - height:100%; - } - -.annotationLayer :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton):not(.hasBorder) - > a:hover{ - opacity:0.2; - background-color:rgb(255 255 0); - box-shadow:0 2px 10px rgb(255 255 0); - } - -.annotationLayer .linkAnnotation.hasBorder:hover{ - background-color:rgb(255 255 0 / 0.2); - } - -.annotationLayer .hasBorder{ - background-size:100% 100%; - } - -.annotationLayer .textAnnotation img{ - position:absolute; - cursor:pointer; - width:100%; - height:100%; - top:0; - left:0; - } - -.annotationLayer .textWidgetAnnotation :is(input, textarea), .annotationLayer .choiceWidgetAnnotation select, .annotationLayer .buttonWidgetAnnotation:is(.checkBox, .radioButton) input{ - background-image:var(--annotation-unfocused-field-background); - border:2px solid var(--input-unfocused-border-color); - box-sizing:border-box; - font:calc(9px * var(--scale-factor)) sans-serif; - height:100%; - margin:0; - vertical-align:top; - width:100%; - } - -.annotationLayer .textWidgetAnnotation :is(input, textarea):required, .annotationLayer .choiceWidgetAnnotation select:required, .annotationLayer .buttonWidgetAnnotation:is(.checkBox, .radioButton) input:required{ - outline:1.5px solid red; - } - -.annotationLayer .choiceWidgetAnnotation select option{ - padding:0; - } - -.annotationLayer .buttonWidgetAnnotation.radioButton input{ - border-radius:50%; - } - -.annotationLayer .textWidgetAnnotation textarea{ - resize:none; - } - -.annotationLayer .textWidgetAnnotation [disabled]:is(input, textarea), .annotationLayer .choiceWidgetAnnotation select[disabled], .annotationLayer .buttonWidgetAnnotation:is(.checkBox, .radioButton) input[disabled]{ - background:none; - border:2px solid var(--input-disabled-border-color); - cursor:not-allowed; - } - -.annotationLayer .textWidgetAnnotation :is(input, textarea):hover, .annotationLayer .choiceWidgetAnnotation select:hover, .annotationLayer .buttonWidgetAnnotation:is(.checkBox, .radioButton) input:hover{ - border:2px solid var(--input-hover-border-color); - } - -.annotationLayer .textWidgetAnnotation :is(input, textarea):hover, .annotationLayer .choiceWidgetAnnotation select:hover, .annotationLayer .buttonWidgetAnnotation.checkBox input:hover{ - border-radius:2px; - } - -.annotationLayer .textWidgetAnnotation :is(input, textarea):focus, .annotationLayer .choiceWidgetAnnotation select:focus{ - background:none; - border:2px solid var(--input-focus-border-color); - border-radius:2px; - outline:var(--input-focus-outline); - } - -.annotationLayer .buttonWidgetAnnotation:is(.checkBox, .radioButton) :focus{ - background-image:none; - background-color:transparent; - } - -.annotationLayer .buttonWidgetAnnotation.checkBox :focus{ - border:2px solid var(--input-focus-border-color); - border-radius:2px; - outline:var(--input-focus-outline); - } - -.annotationLayer .buttonWidgetAnnotation.radioButton :focus{ - border:2px solid var(--input-focus-border-color); - outline:var(--input-focus-outline); - } - -.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before, - .annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after, - .annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before{ - background-color:CanvasText; - content:""; - display:block; - position:absolute; - } - -.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before, - .annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after{ - height:80%; - left:45%; - width:1px; - } - -.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::before{ - transform:rotate(45deg); - } - -.annotationLayer .buttonWidgetAnnotation.checkBox input:checked::after{ - transform:rotate(-45deg); - } - -.annotationLayer .buttonWidgetAnnotation.radioButton input:checked::before{ - border-radius:50%; - height:50%; - left:25%; - top:25%; - width:50%; - } - -.annotationLayer .textWidgetAnnotation input.comb{ - font-family:monospace; - padding-left:2px; - padding-right:0; - } - -.annotationLayer .textWidgetAnnotation input.comb:focus{ - width:103%; - } - -.annotationLayer .buttonWidgetAnnotation:is(.checkBox, .radioButton) input{ - -webkit-appearance:none; - -moz-appearance:none; - appearance:none; - } - -.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{ - height:100%; - width:100%; - } - -.annotationLayer .popupAnnotation{ - position:absolute; - font-size:calc(9px * var(--scale-factor)); - pointer-events:none; - width:-moz-max-content; - width:max-content; - max-width:45%; - height:auto; - } - -.annotationLayer .popup{ - background-color:rgb(255 255 153); - box-shadow:0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor)) rgb(136 136 136); - border-radius:calc(2px * var(--scale-factor)); - outline:1.5px solid rgb(255 255 74); - padding:calc(6px * var(--scale-factor)); - cursor:pointer; - font:message-box; - white-space:normal; - word-wrap:break-word; - pointer-events:auto; - } - -.annotationLayer .popupAnnotation.focused .popup{ - outline-width:3px; - } - -.annotationLayer .popup *{ - font-size:calc(9px * var(--scale-factor)); - } - -.annotationLayer .popup > .header{ - display:inline-block; - } - -.annotationLayer .popup > .header h1{ - display:inline; - } - -.annotationLayer .popup > .header .popupDate{ - display:inline-block; - margin-left:calc(5px * var(--scale-factor)); - width:-moz-fit-content; - width:fit-content; - } - -.annotationLayer .popupContent{ - border-top:1px solid rgb(51 51 51); - margin-top:calc(2px * var(--scale-factor)); - padding-top:calc(2px * var(--scale-factor)); - } - -.annotationLayer .richText > *{ - white-space:pre-wrap; - font-size:calc(9px * var(--scale-factor)); - } - -.annotationLayer .popupTriggerArea{ - cursor:pointer; - } - -.annotationLayer section svg{ - position:absolute; - width:100%; - height:100%; - top:0; - left:0; - } - -.annotationLayer .annotationTextContent{ - position:absolute; - width:100%; - height:100%; - opacity:0; - color:transparent; - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; - pointer-events:none; - } - -.annotationLayer .annotationTextContent span{ - width:100%; - display:inline-block; - } - -.annotationLayer svg.quadrilateralsContainer{ - contain:strict; - width:0; - height:0; - position:absolute; - top:0; - left:0; - z-index:-1; - } - -:root{ - --xfa-unfocused-field-background:url("data:image/svg+xml;charset=UTF-8,"); - --xfa-focus-outline:auto; -} - -@media screen and (forced-colors: active){ - :root{ - --xfa-focus-outline:2px solid CanvasText; - } - .xfaLayer *:required{ - outline:1.5px solid selectedItem; - } -} - -.xfaLayer{ - background-color:transparent; -} - -.xfaLayer .highlight{ - margin:-1px; - padding:1px; - background-color:rgb(239 203 237); - border-radius:4px; -} - -.xfaLayer .highlight.appended{ - position:initial; -} - -.xfaLayer .highlight.begin{ - border-radius:4px 0 0 4px; -} - -.xfaLayer .highlight.end{ - border-radius:0 4px 4px 0; -} - -.xfaLayer .highlight.middle{ - border-radius:0; -} - -.xfaLayer .highlight.selected{ - background-color:rgb(203 223 203); -} - -.xfaPage{ - overflow:hidden; - position:relative; -} - -.xfaContentarea{ - position:absolute; -} - -.xfaPrintOnly{ - display:none; -} - -.xfaLayer{ - position:absolute; - text-align:initial; - top:0; - left:0; - transform-origin:0 0; - line-height:1.2; -} - -.xfaLayer *{ - color:inherit; - font:inherit; - font-style:inherit; - font-weight:inherit; - font-kerning:inherit; - letter-spacing:-0.01px; - text-align:inherit; - text-decoration:inherit; - box-sizing:border-box; - background-color:transparent; - padding:0; - margin:0; - pointer-events:auto; - line-height:inherit; -} - -.xfaLayer *:required{ - outline:1.5px solid red; -} - -.xfaLayer div, -.xfaLayer svg, -.xfaLayer svg *{ - pointer-events:none; -} - -.xfaLayer a{ - color:blue; -} - -.xfaRich li{ - margin-left:3em; -} - -.xfaFont{ - color:black; - font-weight:normal; - font-kerning:none; - font-size:10px; - font-style:normal; - letter-spacing:0; - text-decoration:none; - vertical-align:0; -} - -.xfaCaption{ - overflow:hidden; - flex:0 0 auto; -} - -.xfaCaptionForCheckButton{ - overflow:hidden; - flex:1 1 auto; -} - -.xfaLabel{ - height:100%; - width:100%; -} - -.xfaLeft{ - display:flex; - flex-direction:row; - align-items:center; -} - -.xfaRight{ - display:flex; - flex-direction:row-reverse; - align-items:center; -} - -:is(.xfaLeft, .xfaRight) > :is(.xfaCaption, .xfaCaptionForCheckButton){ - max-height:100%; -} - -.xfaTop{ - display:flex; - flex-direction:column; - align-items:flex-start; -} - -.xfaBottom{ - display:flex; - flex-direction:column-reverse; - align-items:flex-start; -} - -:is(.xfaTop, .xfaBottom) > :is(.xfaCaption, .xfaCaptionForCheckButton){ - width:100%; -} - -.xfaBorder{ - background-color:transparent; - position:absolute; - pointer-events:none; -} - -.xfaWrapped{ - width:100%; - height:100%; -} - -:is(.xfaTextfield, .xfaSelect):focus{ - background-image:none; - background-color:transparent; - outline:var(--xfa-focus-outline); - outline-offset:-1px; -} - -:is(.xfaCheckbox, .xfaRadio):focus{ - outline:var(--xfa-focus-outline); -} - -.xfaTextfield, -.xfaSelect{ - height:100%; - width:100%; - flex:1 1 auto; - border:none; - resize:none; - background-image:var(--xfa-unfocused-field-background); -} - -.xfaSelect{ - padding-inline:2px; -} - -:is(.xfaTop, .xfaBottom) > :is(.xfaTextfield, .xfaSelect){ - flex:0 1 auto; -} - -.xfaButton{ - cursor:pointer; - width:100%; - height:100%; - border:none; - text-align:center; -} - -.xfaLink{ - width:100%; - height:100%; - position:absolute; - top:0; - left:0; -} - -.xfaCheckbox, -.xfaRadio{ - width:100%; - height:100%; - flex:0 0 auto; - border:none; -} - -.xfaRich{ - white-space:pre-wrap; - width:100%; - height:100%; -} - -.xfaImage{ - -o-object-position:left top; - object-position:left top; - -o-object-fit:contain; - object-fit:contain; - width:100%; - height:100%; -} - -.xfaLrTb, -.xfaRlTb, -.xfaTb{ - display:flex; - flex-direction:column; - align-items:stretch; -} - -.xfaLr{ - display:flex; - flex-direction:row; - align-items:stretch; -} - -.xfaRl{ - display:flex; - flex-direction:row-reverse; - align-items:stretch; -} - -.xfaTb > div{ - justify-content:left; -} - -.xfaPosition{ - position:relative; -} - -.xfaArea{ - position:relative; -} - -.xfaValignMiddle{ - display:flex; - align-items:center; -} - -.xfaTable{ - display:flex; - flex-direction:column; - align-items:stretch; -} - -.xfaTable .xfaRow{ - display:flex; - flex-direction:row; - align-items:stretch; -} - -.xfaTable .xfaRlRow{ - display:flex; - flex-direction:row-reverse; - align-items:stretch; - flex:1; -} - -.xfaTable .xfaRlRow > div{ - flex:1; -} - -:is(.xfaNonInteractive, .xfaDisabled, .xfaReadOnly) :is(input, textarea){ - background:initial; -} - -@media print{ - .xfaTextfield, - .xfaSelect{ - background:transparent; - } - - .xfaSelect{ - -webkit-appearance:none; - -moz-appearance:none; - appearance:none; - text-indent:1px; - text-overflow:""; - } -} - -/* .canvasWrapper svg{ - transform:none; - } - -.canvasWrapper svg[data-main-rotation="90"] mask, - .canvasWrapper svg[data-main-rotation="90"] use:not(.clip, .mask){ - transform:matrix(0, 1, -1, 0, 1, 0); - } - -.canvasWrapper svg[data-main-rotation="180"] mask, - .canvasWrapper svg[data-main-rotation="180"] use:not(.clip, .mask){ - transform:matrix(-1, 0, 0, -1, 1, 1); - } - -.canvasWrapper svg[data-main-rotation="270"] mask, - .canvasWrapper svg[data-main-rotation="270"] use:not(.clip, .mask){ - transform:matrix(0, -1, 1, 0, 0, 1); - } - -.canvasWrapper svg.highlight{ - --blend-mode:multiply; - - position:absolute; - mix-blend-mode:var(--blend-mode); - } */ - -@media screen and (forced-colors: active){ - -.canvasWrapper svg.highlight{ - --blend-mode:difference; - } - } - -.canvasWrapper svg.highlight:not(.free){ - fill-rule:evenodd; - } - -.canvasWrapper svg.highlightOutline{ - position:absolute; - mix-blend-mode:normal; - fill-rule:evenodd; - fill:none; - } - -.canvasWrapper svg.highlightOutline.hovered:not(.free):not(.selected){ - stroke:var(--hover-outline-color); - stroke-width:var(--outline-width); - } - -.canvasWrapper svg.highlightOutline.selected:not(.free) .mainOutline{ - stroke:var(--outline-around-color); - stroke-width:calc( - var(--outline-width) + 2 * var(--outline-around-width) - ); - } - -.canvasWrapper svg.highlightOutline.selected:not(.free) .secondaryOutline{ - stroke:var(--outline-color); - stroke-width:var(--outline-width); - } - -.canvasWrapper svg.highlightOutline.free.hovered:not(.selected){ - stroke:var(--hover-outline-color); - stroke-width:calc(2 * var(--outline-width)); - } - -.canvasWrapper svg.highlightOutline.free.selected .mainOutline{ - stroke:var(--outline-around-color); - stroke-width:calc( - 2 * (var(--outline-width) + var(--outline-around-width)) - ); - } - -.canvasWrapper svg.highlightOutline.free.selected .secondaryOutline{ - stroke:var(--outline-color); - stroke-width:calc(2 * var(--outline-width)); - } - -.toggle-button{ - --button-background-color:#f0f0f4; - --button-background-color-hover:#e0e0e6; - --button-background-color-active:#cfcfd8; - --color-accent-primary:#0060df; - --color-accent-primary-hover:#0250bb; - --color-accent-primary-active:#054096; - --border-interactive-color:#8f8f9d; - --border-radius-circle:9999px; - --border-width:1px; - --size-item-small:16px; - --size-item-large:32px; - --color-canvas:white; - - --toggle-background-color:var(--button-background-color); - --toggle-background-color-hover:var(--button-background-color-hover); - --toggle-background-color-active:var(--button-background-color-active); - --toggle-background-color-pressed:var(--color-accent-primary); - --toggle-background-color-pressed-hover:var(--color-accent-primary-hover); - --toggle-background-color-pressed-active:var(--color-accent-primary-active); - --toggle-border-color:var(--border-interactive-color); - --toggle-border-color-hover:var(--toggle-border-color); - --toggle-border-color-active:var(--toggle-border-color); - --toggle-border-radius:var(--border-radius-circle); - --toggle-border-width:var(--border-width); - --toggle-height:var(--size-item-small); - --toggle-width:var(--size-item-large); - --toggle-dot-background-color:var(--toggle-border-color); - --toggle-dot-background-color-hover:var(--toggle-dot-background-color); - --toggle-dot-background-color-active:var(--toggle-dot-background-color); - --toggle-dot-background-color-on-pressed:var(--color-canvas); - --toggle-dot-margin:1px; - --toggle-dot-height:calc( - var(--toggle-height) - 2 * var(--toggle-dot-margin) - 2 * - var(--toggle-border-width) - ); - --toggle-dot-width:var(--toggle-dot-height); - --toggle-dot-transform-x:calc( - var(--toggle-width) - 4 * var(--toggle-dot-margin) - var(--toggle-dot-width) - ); - - -webkit-appearance:none; - - -moz-appearance:none; - - appearance:none; - padding:0; - margin:0; - border:var(--toggle-border-width) solid var(--toggle-border-color); - height:var(--toggle-height); - width:var(--toggle-width); - border-radius:var(--toggle-border-radius); - background:var(--toggle-background-color); - box-sizing:border-box; - flex-shrink:0; -} - -@media (prefers-color-scheme: light){ - -:where(html:not(.is-light)) .toggle-button{ - --button-background-color:color-mix(in srgb, currentColor 7%, transparent); - --button-background-color-hover:color-mix( - in srgb, - currentColor 14%, - transparent - ); - --button-background-color-active:color-mix( - in srgb, - currentColor 21%, - transparent - ); - --color-accent-primary:#0df; - --color-accent-primary-hover:#80ebff; - --color-accent-primary-active:#aaf2ff; - --border-interactive-color:#bfbfc9; - --color-canvas:#1c1b22; -} - } - -:where(html.is-dark) .toggle-button{ - --button-background-color:color-mix(in srgb, currentColor 7%, transparent); - --button-background-color-hover:color-mix( - in srgb, - currentColor 14%, - transparent - ); - --button-background-color-active:color-mix( - in srgb, - currentColor 21%, - transparent - ); - --color-accent-primary:#0df; - --color-accent-primary-hover:#80ebff; - --color-accent-primary-active:#aaf2ff; - --border-interactive-color:#bfbfc9; - --color-canvas:#1c1b22; -} - -@media (forced-colors: active){ - -.toggle-button{ - --color-accent-primary:ButtonText; - --color-accent-primary-hover:SelectedItem; - --color-accent-primary-active:SelectedItem; - --border-interactive-color:ButtonText; - --button-background-color:ButtonFace; - --border-interactive-color-hover:SelectedItem; - --border-interactive-color-active:SelectedItem; - --border-interactive-color-disabled:GrayText; - --color-canvas:ButtonText; -} - } - -.toggle-button:focus-visible{ - outline:var(--focus-outline); - outline-offset:var(--focus-outline-offset); - } - -.toggle-button:enabled:hover{ - background:var(--toggle-background-color-hover); - border-color:var(--toggle-border-color); - } - -.toggle-button:enabled:active{ - background:var(--toggle-background-color-active); - border-color:var(--toggle-border-color); - } - -.toggle-button[aria-pressed="true"]{ - background:var(--toggle-background-color-pressed); - border-color:transparent; - } - -.toggle-button[aria-pressed="true"]:enabled:hover{ - background:var(--toggle-background-color-pressed-hover); - border-color:transparent; - } - -.toggle-button[aria-pressed="true"]:enabled:active{ - background:var(--toggle-background-color-pressed-active); - border-color:transparent; - } - -.toggle-button::before{ - display:block; - content:""; - background-color:var(--toggle-dot-background-color); - height:var(--toggle-dot-height); - width:var(--toggle-dot-width); - margin:var(--toggle-dot-margin); - border-radius:var(--toggle-border-radius); - translate:0; - } - -.toggle-button[aria-pressed="true"]::before{ - translate:var(--toggle-dot-transform-x); - background-color:var(--toggle-dot-background-color-on-pressed); - } - -.toggle-button[aria-pressed="true"]:enabled:hover::before, - .toggle-button[aria-pressed="true"]:enabled:active::before{ - background-color:var(--toggle-dot-background-color-on-pressed); - } - -[dir="rtl"] .toggle-button[aria-pressed="true"]::before{ - translate:calc(-1 * var(--toggle-dot-transform-x)); - } - -@media (prefers-reduced-motion: no-preference){ - .toggle-button::before{ - transition:translate 100ms; - } - } - -@media (prefers-contrast){ - .toggle-button:enabled:hover{ - border-color:var(--toggle-border-color-hover); - } - - .toggle-button:enabled:active{ - border-color:var(--toggle-border-color-active); - } - - .toggle-button[aria-pressed="true"]:enabled{ - border-color:var(--toggle-border-color); - position:relative; - } - - .toggle-button[aria-pressed="true"]:enabled:hover, - .toggle-button[aria-pressed="true"]:enabled:hover:active{ - border-color:var(--toggle-border-color-hover); - } - - .toggle-button[aria-pressed="true"]:enabled:active{ - background-color:var(--toggle-dot-background-color-active); - border-color:var(--toggle-dot-background-color-hover); - } - - .toggle-button:hover::before, - .toggle-button:active::before{ - background-color:var(--toggle-dot-background-color-hover); - } - } - -@media (forced-colors){ - -.toggle-button{ - --toggle-dot-background-color:var(--color-accent-primary); - --toggle-dot-background-color-hover:var(--color-accent-primary-hover); - --toggle-dot-background-color-active:var(--color-accent-primary-active); - --toggle-dot-background-color-on-pressed:var(--button-background-color); - --toggle-background-color-disabled:var(--button-background-color-disabled); - --toggle-border-color-hover:var(--border-interactive-color-hover); - --toggle-border-color-active:var(--border-interactive-color-active); - --toggle-border-color-disabled:var(--border-interactive-color-disabled); -} - - .toggle-button[aria-pressed="true"]:enabled::after{ - border:1px solid var(--button-background-color); - content:""; - position:absolute; - height:var(--toggle-height); - width:var(--toggle-width); - display:block; - border-radius:var(--toggle-border-radius); - inset:-2px; - } - - .toggle-button[aria-pressed="true"]:enabled:active::after{ - border-color:var(--toggle-border-color-active); - } - } - -:root{ - --outline-width:2px; - --outline-color:#0060df; - --outline-around-width:1px; - --outline-around-color:#f0f0f4; - --hover-outline-around-color:var(--outline-around-color); - --focus-outline:solid var(--outline-width) var(--outline-color); - --unfocus-outline:solid var(--outline-width) transparent; - --focus-outline-around:solid var(--outline-around-width) var(--outline-around-color); - --hover-outline-color:#8f8f9d; - --hover-outline:solid var(--outline-width) var(--hover-outline-color); - --hover-outline-around:solid var(--outline-around-width) var(--hover-outline-around-color); - --freetext-line-height:1.35; - --freetext-padding:2px; - --resizer-bg-color:var(--outline-color); - --resizer-size:6px; - --resizer-shift:calc( - 0px - (var(--outline-width) + var(--resizer-size)) / 2 - - var(--outline-around-width) - ); - --editorFreeText-editing-cursor:text; - --editorInk-editing-cursor:url(images/cursor-editorInk.svg) 0 16, pointer; - --editorHighlight-editing-cursor:url(images/cursor-editorTextHighlight.svg) 24 24, text; - --editorFreeHighlight-editing-cursor:url(images/cursor-editorFreeHighlight.svg) 1 18, pointer; -} -.visuallyHidden{ - position:absolute; - top:0; - left:0; - border:0; - margin:0; - padding:0; - width:0; - height:0; - overflow:hidden; - white-space:nowrap; - font-size:0; -} - -.textLayer.highlighting{ - cursor:var(--editorFreeHighlight-editing-cursor); -} - -.textLayer.highlighting:not(.free) span{ - cursor:var(--editorHighlight-editing-cursor); - } - -.textLayer.highlighting.free span{ - cursor:var(--editorFreeHighlight-editing-cursor); - } - -@media (min-resolution: 1.1dppx){ - :root{ - --editorFreeText-editing-cursor:url(images/cursor-editorFreeText.svg) 0 16, text; - } -} - -@media screen and (forced-colors: active){ - :root{ - --outline-color:CanvasText; - --outline-around-color:ButtonFace; - --resizer-bg-color:ButtonText; - --hover-outline-color:Highlight; - --hover-outline-around-color:SelectedItemText; - } -} - -[data-editor-rotation="90"]{ - transform:rotate(90deg); -} - -[data-editor-rotation="180"]{ - transform:rotate(180deg); -} - -[data-editor-rotation="270"]{ - transform:rotate(270deg); -} - -.annotationEditorLayer{ - background:transparent; - position:absolute; - inset:0; - font-size:calc(100px * var(--scale-factor)); - transform-origin:0 0; - cursor:auto; -} - -.annotationEditorLayer.waiting{ - content:""; - cursor:wait; - position:absolute; - inset:0; - width:100%; - height:100%; -} - -.annotationEditorLayer.disabled{ - pointer-events:none; -} - -.annotationEditorLayer.freetextEditing{ - cursor:var(--editorFreeText-editing-cursor); -} - -.annotationEditorLayer.inkEditing{ - cursor:var(--editorInk-editing-cursor); -} - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor){ - position:absolute; - background:transparent; - z-index:1; - transform-origin:0 0; - cursor:auto; - max-width:100%; - max-height:100%; - border:var(--unfocus-outline); -} - -.annotationEditorLayer .draggable.selectedEditor:is(.freeTextEditor, .inkEditor, .stampEditor){ - cursor:move; - } - -.annotationEditorLayer .moving:is(.freeTextEditor, .inkEditor, .stampEditor){ - touch-action:none; - } - -.annotationEditorLayer .selectedEditor:is(.freeTextEditor, .inkEditor, .stampEditor){ - border:var(--focus-outline); - outline:var(--focus-outline-around); - } - -.annotationEditorLayer .selectedEditor:is(.freeTextEditor, .inkEditor, .stampEditor)::before{ - content:""; - position:absolute; - inset:0; - border:var(--focus-outline-around); - pointer-events:none; - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor):hover:not(.selectedEditor){ - border:var(--hover-outline); - outline:var(--hover-outline-around); - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor):hover:not(.selectedEditor)::before{ - content:""; - position:absolute; - inset:0; - border:var(--focus-outline-around); - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar{ - --editor-toolbar-delete-image:url(images/editor-toolbar-delete.svg); - --editor-toolbar-bg-color:#f0f0f4; - --editor-toolbar-highlight-image:url(images/toolbarButton-editorHighlight.svg); - --editor-toolbar-fg-color:#2e2e56; - --editor-toolbar-border-color:#8f8f9d; - --editor-toolbar-hover-border-color:var(--editor-toolbar-border-color); - --editor-toolbar-hover-bg-color:#e0e0e6; - --editor-toolbar-hover-fg-color:var(--editor-toolbar-fg-color); - --editor-toolbar-hover-outline:none; - --editor-toolbar-focus-outline-color:#0060df; - --editor-toolbar-shadow:0 2px 6px 0 rgb(58 57 68 / 0.2); - --editor-toolbar-vert-offset:6px; - --editor-toolbar-height:28px; - --editor-toolbar-padding:2px; - - display:flex; - width:-moz-fit-content; - width:fit-content; - height:var(--editor-toolbar-height); - flex-direction:column; - justify-content:center; - align-items:center; - cursor:default; - pointer-events:auto; - box-sizing:content-box; - padding:var(--editor-toolbar-padding); - - position:absolute; - inset-inline-end:0; - inset-block-start:calc(100% + var(--editor-toolbar-vert-offset)); - - border-radius:6px; - background-color:var(--editor-toolbar-bg-color); - border:1px solid var(--editor-toolbar-border-color); - box-shadow:var(--editor-toolbar-shadow); - } - -@media (prefers-color-scheme: light){ - -:where(html:not(.is-light)) :is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar{ - --editor-toolbar-bg-color:#2b2a33; - --editor-toolbar-fg-color:#fbfbfe; - --editor-toolbar-hover-bg-color:#52525e; - --editor-toolbar-focus-outline-color:#0df; - } - } - -:where(html.is-dark) :is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar{ - --editor-toolbar-bg-color:#2b2a33; - --editor-toolbar-fg-color:#fbfbfe; - --editor-toolbar-hover-bg-color:#52525e; - --editor-toolbar-focus-outline-color:#0df; - } - -@media screen and (forced-colors: active){ - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar{ - --editor-toolbar-bg-color:ButtonFace; - --editor-toolbar-fg-color:ButtonText; - --editor-toolbar-border-color:ButtonText; - --editor-toolbar-hover-border-color:AccentColor; - --editor-toolbar-hover-bg-color:ButtonFace; - --editor-toolbar-hover-fg-color:AccentColor; - --editor-toolbar-hover-outline:2px solid var(--editor-toolbar-hover-border-color); - --editor-toolbar-focus-outline-color:ButtonBorder; - --editor-toolbar-shadow:none; - } - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar.hidden{ - display:none; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar:has(:focus-visible){ - border-color:transparent; - } - -[dir="ltr"] :is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar{ - transform-origin:100% 0; - } - -[dir="rtl"] :is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar{ - transform-origin:0 0; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons{ - display:flex; - justify-content:center; - align-items:center; - gap:0; - height:100%; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .divider{ - width:1px; - height:calc( - 2 * var(--editor-toolbar-padding) + var(--editor-toolbar-height) - ); - background-color:var(--editor-toolbar-border-color); - display:inline-block; - margin-inline:2px; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .highlightButton{ - width:var(--editor-toolbar-height); - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .highlightButton::before{ - content:""; - -webkit-mask-image:var(--editor-toolbar-highlight-image); - mask-image:var(--editor-toolbar-highlight-image); - -webkit-mask-repeat:no-repeat; - mask-repeat:no-repeat; - -webkit-mask-position:center; - mask-position:center; - display:inline-block; - background-color:var(--editor-toolbar-fg-color); - width:100%; - height:100%; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .highlightButton:hover::before{ - background-color:var(--editor-toolbar-hover-fg-color); - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .delete{ - width:var(--editor-toolbar-height); - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .delete::before{ - content:""; - -webkit-mask-image:var(--editor-toolbar-delete-image); - mask-image:var(--editor-toolbar-delete-image); - -webkit-mask-repeat:no-repeat; - mask-repeat:no-repeat; - -webkit-mask-position:center; - mask-position:center; - display:inline-block; - background-color:var(--editor-toolbar-fg-color); - width:100%; - height:100%; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .delete:hover::before{ - background-color:var(--editor-toolbar-hover-fg-color); - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons > *{ - height:var(--editor-toolbar-height); - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons > :not(.divider){ - border:none; - background-color:transparent; - cursor:pointer; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons > :not(.divider):hover{ - border-radius:2px; - background-color:var(--editor-toolbar-hover-bg-color); - color:var(--editor-toolbar-hover-fg-color); - outline:var(--editor-toolbar-hover-outline); - outline-offset:1px; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons > :not(.divider):hover:active{ - outline:none; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons > :not(.divider):focus-visible{ - border-radius:2px; - outline:2px solid var(--editor-toolbar-focus-outline-color); - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .altText{ - --alt-text-add-image:url(images/altText_add.svg); - --alt-text-done-image:url(images/altText_done.svg); - - display:flex; - align-items:center; - justify-content:center; - width:-moz-max-content; - width:max-content; - padding-inline:8px; - pointer-events:all; - font:menu; - font-weight:590; - font-size:12px; - color:var(--editor-toolbar-fg-color); - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .altText:disabled{ - pointer-events:none; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .altText::before{ - content:""; - -webkit-mask-image:var(--alt-text-add-image); - mask-image:var(--alt-text-add-image); - -webkit-mask-repeat:no-repeat; - mask-repeat:no-repeat; - -webkit-mask-position:center; - mask-position:center; - display:inline-block; - width:12px; - height:13px; - background-color:var(--editor-toolbar-fg-color); - margin-inline-end:4px; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .altText:hover::before{ - background-color:var(--editor-toolbar-hover-fg-color); - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .altText.done::before{ - -webkit-mask-image:var(--alt-text-done-image); - mask-image:var(--alt-text-done-image); - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .altText .tooltip{ - display:none; - } - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .altText .tooltip.show{ - --alt-text-tooltip-bg:#f0f0f4; - --alt-text-tooltip-fg:#15141a; - --alt-text-tooltip-border:#8f8f9d; - --alt-text-tooltip-shadow:0px 2px 6px 0px rgb(58 57 68 / 0.2); - - display:inline-flex; - flex-direction:column; - align-items:center; - justify-content:center; - position:absolute; - top:calc(100% + 2px); - inset-inline-start:0; - padding-block:2px 3px; - padding-inline:3px; - max-width:300px; - width:-moz-max-content; - width:max-content; - height:auto; - font-size:12px; - - border:0.5px solid var(--alt-text-tooltip-border); - background:var(--alt-text-tooltip-bg); - box-shadow:var(--alt-text-tooltip-shadow); - color:var(--alt-text-tooltip-fg); - - pointer-events:none; - } - -@media (prefers-color-scheme: light){ - -:where(html:not(.is-light)) :is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .altText .tooltip.show{ - --alt-text-tooltip-bg:#1c1b22; - --alt-text-tooltip-fg:#fbfbfe; - --alt-text-tooltip-shadow:0px 2px 6px 0px #15141a; - } - } - -:where(html.is-dark) :is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .altText .tooltip.show{ - --alt-text-tooltip-bg:#1c1b22; - --alt-text-tooltip-fg:#fbfbfe; - --alt-text-tooltip-shadow:0px 2px 6px 0px #15141a; - } - -@media screen and (forced-colors: active){ - -:is(.annotationEditorLayer - :is(.freeTextEditor, .inkEditor, .stampEditor, .highlightEditor),.textLayer) .editToolbar .buttons .altText .tooltip.show{ - --alt-text-tooltip-bg:Canvas; - --alt-text-tooltip-fg:CanvasText; - --alt-text-tooltip-border:CanvasText; - --alt-text-tooltip-shadow:none; - } - } - -.annotationEditorLayer .freeTextEditor{ - padding:calc(var(--freetext-padding) * var(--scale-factor)); - width:auto; - height:auto; - touch-action:none; -} - -.annotationEditorLayer .freeTextEditor .internal{ - background:transparent; - border:none; - inset:0; - overflow:visible; - white-space:nowrap; - font:10px sans-serif; - line-height:var(--freetext-line-height); - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; -} - -.annotationEditorLayer .freeTextEditor .overlay{ - position:absolute; - display:none; - background:transparent; - inset:0; - width:100%; - height:100%; -} - -.annotationEditorLayer freeTextEditor .overlay.enabled{ - display:block; -} - -.annotationEditorLayer .freeTextEditor .internal:empty::before{ - content:attr(default-content); - color:gray; -} - -.annotationEditorLayer .freeTextEditor .internal:focus{ - outline:none; - -webkit-user-select:auto; - -moz-user-select:auto; - user-select:auto; -} - -.annotationEditorLayer .inkEditor{ - width:100%; - height:100%; -} - -.annotationEditorLayer .inkEditor.editing{ - cursor:inherit; -} - -.annotationEditorLayer .inkEditor .inkEditorCanvas{ - position:absolute; - inset:0; - width:100%; - height:100%; - touch-action:none; -} - -.annotationEditorLayer .stampEditor{ - width:auto; - height:auto; -} - -.annotationEditorLayer .stampEditor canvas{ - width:100%; - height:100%; -} - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers{ - position:absolute; - inset:0; - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers.hidden{ - display:none; - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers > .resizer{ - width:var(--resizer-size); - height:var(--resizer-size); - background:content-box var(--resizer-bg-color); - border:var(--focus-outline-around); - border-radius:2px; - position:absolute; - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers > .resizer.topLeft{ - top:var(--resizer-shift); - left:var(--resizer-shift); - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers > .resizer.topMiddle{ - top:var(--resizer-shift); - left:calc(50% + var(--resizer-shift)); - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers > .resizer.topRight{ - top:var(--resizer-shift); - right:var(--resizer-shift); - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers > .resizer.middleRight{ - top:calc(50% + var(--resizer-shift)); - right:var(--resizer-shift); - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers > .resizer.bottomRight{ - bottom:var(--resizer-shift); - right:var(--resizer-shift); - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers > .resizer.bottomMiddle{ - bottom:var(--resizer-shift); - left:calc(50% + var(--resizer-shift)); - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers > .resizer.bottomLeft{ - bottom:var(--resizer-shift); - left:var(--resizer-shift); - } - -.annotationEditorLayer :is(.freeTextEditor, .inkEditor, .stampEditor) > .resizers > .resizer.middleLeft{ - top:calc(50% + var(--resizer-shift)); - left:var(--resizer-shift); - } - -.annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.topLeft, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.topLeft, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.topLeft, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.topLeft, - .annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.bottomRight, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.bottomRight, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.bottomRight, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.bottomRight{ - cursor:nwse-resize; - } - -.annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.topMiddle, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.topMiddle, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.topMiddle, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.topMiddle, - .annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.bottomMiddle, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.bottomMiddle, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.bottomMiddle, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.bottomMiddle{ - cursor:ns-resize; - } - -.annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.topRight, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.topRight, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.topRight, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.topRight, - .annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.bottomLeft, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.bottomLeft, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.bottomLeft, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.bottomLeft{ - cursor:nesw-resize; - } - -.annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.middleRight, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.middleRight, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.middleRight, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.middleRight, - .annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.middleLeft, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.middleLeft, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.middleLeft, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.middleLeft{ - cursor:ew-resize; - } - -.annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.topLeft, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.topLeft, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.topLeft, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.topLeft, - .annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.bottomRight, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.bottomRight, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.bottomRight, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.bottomRight{ - cursor:nesw-resize; - } - -.annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.topMiddle, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.topMiddle, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.topMiddle, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.topMiddle, - .annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.bottomMiddle, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.bottomMiddle, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.bottomMiddle, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.bottomMiddle{ - cursor:ew-resize; - } - -.annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.topRight, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.topRight, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.topRight, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.topRight, - .annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.bottomLeft, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.bottomLeft, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.bottomLeft, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.bottomLeft{ - cursor:nwse-resize; - } - -.annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.middleRight, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.middleRight, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.middleRight, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.middleRight, - .annotationEditorLayer[data-main-rotation="0"] - :is([data-editor-rotation="90"], [data-editor-rotation="270"]) > .resizers > .resizer.middleLeft, - .annotationEditorLayer[data-main-rotation="90"] - :is([data-editor-rotation="0"], [data-editor-rotation="180"]) > .resizers > .resizer.middleLeft, - .annotationEditorLayer[data-main-rotation="180"] - :is([data-editor-rotation="270"], [data-editor-rotation="90"]) > .resizers > .resizer.middleLeft, - .annotationEditorLayer[data-main-rotation="270"] - :is([data-editor-rotation="180"], [data-editor-rotation="0"]) > .resizers > .resizer.middleLeft{ - cursor:ns-resize; - } - -.annotationEditorLayer - :is( - [data-main-rotation="0"] [data-editor-rotation="90"], - [data-main-rotation="90"] [data-editor-rotation="0"], - [data-main-rotation="180"] [data-editor-rotation="270"], - [data-main-rotation="270"] [data-editor-rotation="180"] - ) .editToolbar{ - rotate:270deg; - } - -[dir="ltr"] .annotationEditorLayer - :is( - [data-main-rotation="0"] [data-editor-rotation="90"], - [data-main-rotation="90"] [data-editor-rotation="0"], - [data-main-rotation="180"] [data-editor-rotation="270"], - [data-main-rotation="270"] [data-editor-rotation="180"] - ) .editToolbar{ - inset-inline-end:calc(0px - var(--editor-toolbar-vert-offset)); - inset-block-start:0; - } - -[dir="rtl"] .annotationEditorLayer - :is( - [data-main-rotation="0"] [data-editor-rotation="90"], - [data-main-rotation="90"] [data-editor-rotation="0"], - [data-main-rotation="180"] [data-editor-rotation="270"], - [data-main-rotation="270"] [data-editor-rotation="180"] - ) .editToolbar{ - inset-inline-end:calc(100% + var(--editor-toolbar-vert-offset)); - inset-block-start:0; - } - -.annotationEditorLayer - :is( - [data-main-rotation="0"] [data-editor-rotation="180"], - [data-main-rotation="90"] [data-editor-rotation="90"], - [data-main-rotation="180"] [data-editor-rotation="0"], - [data-main-rotation="270"] [data-editor-rotation="270"] - ) .editToolbar{ - rotate:180deg; - inset-inline-end:100%; - inset-block-start:calc(0pc - var(--editor-toolbar-vert-offset)); - } - -.annotationEditorLayer - :is( - [data-main-rotation="0"] [data-editor-rotation="270"], - [data-main-rotation="90"] [data-editor-rotation="180"], - [data-main-rotation="180"] [data-editor-rotation="90"], - [data-main-rotation="270"] [data-editor-rotation="0"] - ) .editToolbar{ - rotate:90deg; - } - -[dir="ltr"] .annotationEditorLayer - :is( - [data-main-rotation="0"] [data-editor-rotation="270"], - [data-main-rotation="90"] [data-editor-rotation="180"], - [data-main-rotation="180"] [data-editor-rotation="90"], - [data-main-rotation="270"] [data-editor-rotation="0"] - ) .editToolbar{ - inset-inline-end:calc(100% + var(--editor-toolbar-vert-offset)); - inset-block-start:100%; - } - -[dir="rtl"] .annotationEditorLayer - :is( - [data-main-rotation="0"] [data-editor-rotation="270"], - [data-main-rotation="90"] [data-editor-rotation="180"], - [data-main-rotation="180"] [data-editor-rotation="90"], - [data-main-rotation="270"] [data-editor-rotation="0"] - ) .editToolbar{ - inset-inline-start:calc(0px - var(--editor-toolbar-vert-offset)); - inset-block-start:0; - } - -#altTextDialog{ - --dialog-bg-color:white; - --dialog-border-color:white; - --dialog-shadow:0 2px 14px 0 rgb(58 57 68 / 0.2); - --text-primary-color:#15141a; - --text-secondary-color:#5b5b66; - --hover-filter:brightness(0.9); - --focus-ring-color:#0060df; - --focus-ring-outline:2px solid var(--focus-ring-color); - - --textarea-border-color:#8f8f9d; - --textarea-bg-color:white; - --textarea-fg-color:var(--text-secondary-color); - - --radio-bg-color:#f0f0f4; - --radio-checked-bg-color:#fbfbfe; - --radio-border-color:#8f8f9d; - --radio-checked-border-color:#0060df; - - --button-cancel-bg-color:#f0f0f4; - --button-cancel-fg-color:var(--text-primary-color); - --button-cancel-border-color:var(--button-cancel-bg-color); - --button-cancel-hover-bg-color:var(--button-cancel-bg-color); - --button-cancel-hover-fg-color:var(--button-cancel-fg-color); - --button-cancel-hover-border-color:var(--button-cancel-hover-bg-color); - - --button-save-bg-color:#0060df; - --button-save-fg-color:#fbfbfe; - --button-save-hover-bg-color:var(--button-save-bg-color); - --button-save-hover-fg-color:var(--button-save-fg-color); - --button-save-hover-border-color:var(--button-save-hover-bg-color); - - font:message-box; - font-size:13px; - font-weight:400; - line-height:150%; - border-radius:4px; - padding:12px 16px; - border:1px solid var(--dialog-border-color); - background:var(--dialog-bg-color); - color:var(--text-primary-color); - box-shadow:var(--dialog-shadow); -} - -@media (prefers-color-scheme: light){ - -:where(html:not(.is-light)) #altTextDialog{ - --dialog-bg-color:#1c1b22; - --dialog-border-color:#1c1b22; - --dialog-shadow:0 2px 14px 0 #15141a; - --text-primary-color:#fbfbfe; - --text-secondary-color:#cfcfd8; - --focus-ring-color:#0df; - --hover-filter:brightness(1.4); - - --textarea-bg-color:#42414d; - - --radio-bg-color:#2b2a33; - --radio-checked-bg-color:#15141a; - --radio-checked-border-color:#0df; - - --button-cancel-bg-color:#2b2a33; - --button-save-bg-color:#0df; - --button-save-fg-color:#15141a; -} - } - -:where(html.is-dark) #altTextDialog{ - --dialog-bg-color:#1c1b22; - --dialog-border-color:#1c1b22; - --dialog-shadow:0 2px 14px 0 #15141a; - --text-primary-color:#fbfbfe; - --text-secondary-color:#cfcfd8; - --focus-ring-color:#0df; - --hover-filter:brightness(1.4); - - --textarea-bg-color:#42414d; - - --radio-bg-color:#2b2a33; - --radio-checked-bg-color:#15141a; - --radio-checked-border-color:#0df; - - --button-cancel-bg-color:#2b2a33; - --button-save-bg-color:#0df; - --button-save-fg-color:#15141a; -} - -@media screen and (forced-colors: active){ - -#altTextDialog{ - --dialog-bg-color:Canvas; - --dialog-border-color:CanvasText; - --dialog-shadow:none; - --text-primary-color:CanvasText; - --text-secondary-color:CanvasText; - --hover-filter:none; - --focus-ring-color:ButtonBorder; - - --textarea-border-color:ButtonBorder; - --textarea-bg-color:Field; - --textarea-fg-color:ButtonText; - - --radio-bg-color:ButtonFace; - --radio-checked-bg-color:ButtonFace; - --radio-border-color:ButtonText; - --radio-checked-border-color:ButtonText; - - --button-cancel-bg-color:ButtonFace; - --button-cancel-fg-color:ButtonText; - --button-cancel-border-color:ButtonText; - --button-cancel-hover-bg-color:AccentColor; - --button-cancel-hover-fg-color:AccentColorText; - - --button-save-bg-color:ButtonText; - --button-save-fg-color:ButtonFace; - --button-save-hover-bg-color:AccentColor; - --button-save-hover-fg-color:AccentColorText; -} - } - -#altTextDialog::backdrop{ - -webkit-mask:url(#alttext-manager-mask); - mask:url(#alttext-manager-mask); - } - -#altTextDialog.positioned{ - margin:0; - } - -#altTextDialog #altTextContainer{ - width:300px; - height:-moz-fit-content; - height:fit-content; - display:inline-flex; - flex-direction:column; - align-items:flex-start; - gap:16px; - } - -#altTextDialog #altTextContainer *:focus-visible{ - outline:var(--focus-ring-outline); - outline-offset:2px; - } - -#altTextDialog #altTextContainer .radio{ - display:flex; - flex-direction:column; - align-items:flex-start; - gap:4px; - } - -#altTextDialog #altTextContainer .radio .radioButton{ - display:flex; - gap:8px; - align-self:stretch; - align-items:center; - } - -#altTextDialog #altTextContainer .radio .radioButton input{ - -webkit-appearance:none; - -moz-appearance:none; - appearance:none; - box-sizing:border-box; - width:16px; - height:16px; - border-radius:50%; - background-color:var(--radio-bg-color); - border:1px solid var(--radio-border-color); - } - -#altTextDialog #altTextContainer .radio .radioButton input:hover{ - filter:var(--hover-filter); - } - -#altTextDialog #altTextContainer .radio .radioButton input:checked{ - background-color:var(--radio-checked-bg-color); - border:4px solid var(--radio-checked-border-color); - } - -#altTextDialog #altTextContainer .radio .radioLabel{ - display:flex; - padding-inline-start:24px; - align-items:flex-start; - gap:10px; - align-self:stretch; - } - -#altTextDialog #altTextContainer .radio .radioLabel span{ - flex:1 0 0; - font-size:11px; - color:var(--text-secondary-color); - } - -#altTextDialog #altTextContainer #overallDescription{ - display:flex; - flex-direction:column; - align-items:flex-start; - gap:4px; - align-self:stretch; - } - -#altTextDialog #altTextContainer #overallDescription span{ - align-self:stretch; - } - -#altTextDialog #altTextContainer #overallDescription .title{ - font-size:13px; - font-style:normal; - font-weight:590; - } - -#altTextDialog #altTextContainer #addDescription{ - display:flex; - flex-direction:column; - align-items:stretch; - gap:8px; - } - -#altTextDialog #altTextContainer #addDescription .descriptionArea{ - flex:1; - padding-inline:24px 10px; - } - -#altTextDialog #altTextContainer #addDescription .descriptionArea textarea{ - font:inherit; - width:100%; - min-height:75px; - padding:8px; - resize:none; - margin:0; - box-sizing:border-box; - border-radius:4px; - border:1px solid var(--textarea-border-color); - background:var(--textarea-bg-color); - color:var(--textarea-fg-color); - } - -#altTextDialog #altTextContainer #addDescription .descriptionArea textarea:focus{ - outline-offset:0; - border-color:transparent; - } - -#altTextDialog #altTextContainer #addDescription .descriptionArea textarea:disabled{ - pointer-events:none; - opacity:0.4; - } - -#altTextDialog #altTextContainer #buttons{ - display:flex; - justify-content:flex-end; - align-items:flex-start; - gap:8px; - align-self:stretch; - } - -#altTextDialog #altTextContainer #buttons button{ - border-radius:4px; - border:1px solid; - font:menu; - font-weight:600; - padding:4px 16px; - width:auto; - height:32px; - } - -#altTextDialog #altTextContainer #buttons button:hover{ - cursor:pointer; - filter:var(--hover-filter); - } - -#altTextDialog #altTextContainer #buttons button#altTextCancel{ - color:var(--button-cancel-fg-color); - background-color:var(--button-cancel-bg-color); - border-color:var(--button-cancel-border-color); - } - -#altTextDialog #altTextContainer #buttons button#altTextCancel:hover{ - color:var(--button-cancel-hover-fg-color); - background-color:var(--button-cancel-hover-bg-color); - border-color:var(--button-cancel-hover-border-color); - } - -#altTextDialog #altTextContainer #buttons button#altTextSave{ - color:var(--button-save-hover-fg-color); - background-color:var(--button-save-hover-bg-color); - border-color:var(--button-save-hover-border-color); - opacity:1; - } - -#altTextDialog #altTextContainer #buttons button#altTextSave:hover{ - color:var(--button-save-hover-fg-color); - background-color:var(--button-save-hover-bg-color); - border-color:var(--button-save-hover-border-color); - } - -.colorPicker{ - --hover-outline-color:#0250bb; - --selected-outline-color:#0060df; - --swatch-border-color:#cfcfd8; -} - -@media (prefers-color-scheme: light){ - -:where(html:not(.is-light)) .colorPicker{ - --hover-outline-color:#80ebff; - --selected-outline-color:#aaf2ff; - --swatch-border-color:#52525e; -} - } - -:where(html.is-dark) .colorPicker{ - --hover-outline-color:#80ebff; - --selected-outline-color:#aaf2ff; - --swatch-border-color:#52525e; -} - -@media screen and (forced-colors: active){ - -.colorPicker{ - --hover-outline-color:Highlight; - --selected-outline-color:var(--hover-outline-color); - --swatch-border-color:ButtonText; -} - } - -.colorPicker .swatch{ - width:16px; - height:16px; - border:1px solid var(--swatch-border-color); - border-radius:100%; - outline-offset:2px; - box-sizing:border-box; - forced-color-adjust:none; - } - -.colorPicker button:is(:hover, .selected) > .swatch{ - border:none; - } - -.annotationEditorLayer[data-main-rotation="0"] .highlightEditor:not(.free) > .editToolbar{ - rotate:0deg; - } - -.annotationEditorLayer[data-main-rotation="90"] .highlightEditor:not(.free) > .editToolbar{ - rotate:270deg; - } - -.annotationEditorLayer[data-main-rotation="180"] .highlightEditor:not(.free) > .editToolbar{ - rotate:180deg; - } - -.annotationEditorLayer[data-main-rotation="270"] .highlightEditor:not(.free) > .editToolbar{ - rotate:90deg; - } - -.annotationEditorLayer .highlightEditor{ - position:absolute; - background:transparent; - z-index:1; - cursor:auto; - max-width:100%; - max-height:100%; - border:none; - outline:none; - pointer-events:none; - transform-origin:0 0; - } - -.annotationEditorLayer .highlightEditor:not(.free){ - transform:none; - } - -.annotationEditorLayer .highlightEditor .internal{ - position:absolute; - top:0; - left:0; - width:100%; - height:100%; - pointer-events:auto; - } - -.annotationEditorLayer .highlightEditor.disabled .internal{ - pointer-events:none; - } - -.annotationEditorLayer .highlightEditor.selectedEditor .internal{ - cursor:pointer; - } - -.annotationEditorLayer .highlightEditor .editToolbar{ - --editor-toolbar-colorpicker-arrow-image:url(images/toolbarButton-menuArrow.svg); - - transform-origin:center !important; - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker{ - position:relative; - width:auto; - display:flex; - justify-content:center; - align-items:center; - gap:4px; - padding:4px; - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker::after{ - content:""; - -webkit-mask-image:var(--editor-toolbar-colorpicker-arrow-image); - mask-image:var(--editor-toolbar-colorpicker-arrow-image); - -webkit-mask-repeat:no-repeat; - mask-repeat:no-repeat; - -webkit-mask-position:center; - mask-position:center; - display:inline-block; - background-color:var(--editor-toolbar-fg-color); - width:12px; - height:12px; - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker:hover::after{ - background-color:var(--editor-toolbar-hover-fg-color); - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker:has(.dropdown:not(.hidden)){ - background-color:var(--editor-toolbar-hover-bg-color); - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker:has(.dropdown:not(.hidden))::after{ - scale:-1; - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker .dropdown{ - position:absolute; - display:flex; - justify-content:center; - align-items:center; - flex-direction:column; - gap:11px; - padding-block:8px; - border-radius:6px; - background-color:var(--editor-toolbar-bg-color); - border:1px solid var(--editor-toolbar-border-color); - box-shadow:var(--editor-toolbar-shadow); - inset-block-start:calc(100% + 4px); - width:calc(100% + 2 * var(--editor-toolbar-padding)); - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker .dropdown button{ - width:100%; - height:auto; - border:none; - cursor:pointer; - display:flex; - justify-content:center; - align-items:center; - background:none; - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker .dropdown button:is(:active, :focus-visible){ - outline:none; - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker .dropdown button > .swatch{ - outline-offset:2px; - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker .dropdown button[aria-selected="true"] > .swatch{ - outline:2px solid var(--selected-outline-color); - } - -.annotationEditorLayer .highlightEditor .editToolbar .buttons .colorPicker .dropdown button:is(:hover, :active, :focus-visible) > .swatch{ - outline:2px solid var(--hover-outline-color); - } - -.editorParamsToolbar:has(#highlightParamsToolbarContainer){ - padding:unset; -} - -#highlightParamsToolbarContainer{ - height:auto; - padding-inline:10px; - padding-block:10px 16px; - gap:16px; - display:flex; - flex-direction:column; - box-sizing:border-box; -} - -#highlightParamsToolbarContainer .editorParamsLabel{ - width:-moz-fit-content; - width:fit-content; - inset-inline-start:0; - } - -#highlightParamsToolbarContainer .colorPicker{ - display:flex; - flex-direction:column; - gap:8px; - } - -#highlightParamsToolbarContainer .colorPicker .dropdown{ - display:flex; - justify-content:space-between; - align-items:center; - flex-direction:row; - height:auto; - } - -#highlightParamsToolbarContainer .colorPicker .dropdown button{ - width:auto; - height:auto; - border:none; - cursor:pointer; - display:flex; - justify-content:center; - align-items:center; - background:none; - flex:0 0 auto; - } - -#highlightParamsToolbarContainer .colorPicker .dropdown button .swatch{ - width:24px; - height:24px; - } - -#highlightParamsToolbarContainer .colorPicker .dropdown button:is(:active, :focus-visible){ - outline:none; - } - -#highlightParamsToolbarContainer .colorPicker .dropdown button[aria-selected="true"] > .swatch{ - outline:2px solid var(--selected-outline-color); - } - -#highlightParamsToolbarContainer .colorPicker .dropdown button:is(:hover, :active, :focus-visible) > .swatch{ - outline:2px solid var(--hover-outline-color); - } - -#highlightParamsToolbarContainer #editorHighlightThickness{ - display:flex; - flex-direction:column; - align-items:center; - gap:4px; - align-self:stretch; - } - -#highlightParamsToolbarContainer #editorHighlightThickness .editorParamsLabel{ - width:100%; - height:auto; - align-self:stretch; - } - -#highlightParamsToolbarContainer #editorHighlightThickness .thicknessPicker{ - display:flex; - justify-content:space-between; - align-items:center; - align-self:stretch; - - --example-color:#bfbfc9; - } - -@media (prefers-color-scheme: light){ - -:where(html:not(.is-light)) #highlightParamsToolbarContainer #editorHighlightThickness .thicknessPicker{ - --example-color:#80808e; - } - } - -:where(html.is-dark) #highlightParamsToolbarContainer #editorHighlightThickness .thicknessPicker{ - --example-color:#80808e; - } - -@media screen and (forced-colors: active){ - -#highlightParamsToolbarContainer #editorHighlightThickness .thicknessPicker{ - --example-color:CanvasText; - } - } - -:is(#highlightParamsToolbarContainer #editorHighlightThickness .thicknessPicker > .editorParamsSlider[disabled]){ - opacity:0.4; - } - -#highlightParamsToolbarContainer #editorHighlightThickness .thicknessPicker::before, - #highlightParamsToolbarContainer #editorHighlightThickness .thicknessPicker::after{ - content:""; - width:8px; - aspect-ratio:1; - display:block; - border-radius:100%; - background-color:var(--example-color); - } - -#highlightParamsToolbarContainer #editorHighlightThickness .thicknessPicker::after{ - width:24px; - } - -#highlightParamsToolbarContainer #editorHighlightThickness .thicknessPicker .editorParamsSlider{ - width:unset; - height:14px; - } - -#highlightParamsToolbarContainer #editorHighlightVisibility{ - display:flex; - flex-direction:column; - align-items:flex-start; - gap:8px; - align-self:stretch; - } - -#highlightParamsToolbarContainer #editorHighlightVisibility .divider{ - --divider-color:#d7d7db; - - margin-block:4px; - width:100%; - height:1px; - background-color:var(--divider-color); - } - -@media (prefers-color-scheme: light){ - -:where(html:not(.is-light)) #highlightParamsToolbarContainer #editorHighlightVisibility .divider{ - --divider-color:#8f8f9d; - } - } - -:where(html.is-dark) #highlightParamsToolbarContainer #editorHighlightVisibility .divider{ - --divider-color:#8f8f9d; - } - -@media screen and (forced-colors: active){ - -#highlightParamsToolbarContainer #editorHighlightVisibility .divider{ - --divider-color:CanvasText; - } - } - -#highlightParamsToolbarContainer #editorHighlightVisibility .toggler{ - display:flex; - justify-content:space-between; - align-items:center; - align-self:stretch; - } - -:root{ - --viewer-container-height:0; - --pdfViewer-padding-bottom:0; - --page-margin:1px auto -8px; - --page-border:9px solid transparent; - --spreadHorizontalWrapped-margin-LR:-3.5px; - --loading-icon-delay:400ms; - - --num-page-width: 10px; -} - -@media screen and (forced-colors: active){ - :root{ - --pdfViewer-padding-bottom:9px; - --page-margin:8px auto -1px; - --page-border:1px solid CanvasText; - --spreadHorizontalWrapped-margin-LR:3.5px; - } -} - -[data-main-rotation="90"]{ - transform:rotate(90deg) translateY(-100%); -} -[data-main-rotation="180"]{ - transform:rotate(180deg) translate(-100%, -100%); -} -[data-main-rotation="270"]{ - transform:rotate(270deg) translateX(-100%); -} - -#hiddenCopyElement, -.hiddenCanvasElement{ - position:absolute; - top:0; - left:0; - width:0; - height:0; - display:none; -} - -.pdfViewer{ - --scale-factor:1; - - padding-bottom:var(--pdfViewer-padding-bottom); - - --hcm-highlight-filter:none; - --hcm-highlight-selected-filter:none; -} - -@media screen and (forced-colors: active){ - -.pdfViewer{ - --hcm-highlight-filter:invert(100%); -} - } - -.pdfViewer .canvasWrapper{ - overflow:hidden; - width:100%; - height:100%; -} - -.pdfViewer .page{ - direction:ltr; - width:816px; - height:1056px; - margin:var(--page-margin); - position:relative; - overflow:visible; - border:var(--page-border); - background-clip:content-box; - background-color:rgb(255 255 255); -} - -.pdfViewer .dummyPage{ - position:relative; - width:0; - height:var(--viewer-container-height); -} - -.pdfViewer.noUserSelect{ - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; -} - -.pdfViewer.removePageBorders .page{ - margin:0 auto 10px; - border:none; -} - -.pdfViewer:is(.scrollHorizontal, .scrollWrapped), -.spread{ - margin-inline:3.5px; - text-align:center; - display: flex; - flex-direction: column; - align-items: center; -} - -.pdfViewer.scrollHorizontal, -.spread{ - white-space:nowrap; -} - -.pdfViewer.removePageBorders, -.pdfViewer:is(.scrollHorizontal, .scrollWrapped) .spread{ - margin-inline:0; -} - -.spread :is(.page, .dummyPage), -.pdfViewer:is(.scrollHorizontal, .scrollWrapped) :is(.page, .spread){ - display:inline-block; - vertical-align:middle; -} - -.spread .page, -.pdfViewer:is(.scrollHorizontal, .scrollWrapped) .page{ - margin-inline:var(--spreadHorizontalWrapped-margin-LR); -} - -.pdfViewer.removePageBorders .spread .page, -.pdfViewer.removePageBorders:is(.scrollHorizontal, .scrollWrapped) .page{ - margin-inline:5px; -} - -.pdfViewer .page canvas{ - margin:0; - display:block; -} - -.pdfViewer .page canvas .structTree{ - contain:strict; -} - -.pdfViewer .page canvas[hidden]{ - display:none; -} - -.pdfViewer .page canvas[zooming]{ - width:100%; - height:100%; -} - -.pdfViewer .page.loadingIcon::after{ - position:absolute; - top:0; - left:0; - content:""; - width:100%; - height:100%; - background:url("images/loading-icon.gif") center no-repeat; - display:none; - transition-property:display; - transition-delay:var(--loading-icon-delay); - z-index:5; - contain:strict; -} - -.pdfViewer .page.loading::after{ - display:block; -} - -.pdfViewer .page:not(.loading)::after{ - transition-property:none; - display:none; -} - -.pdfPresentationMode .pdfViewer{ - padding-bottom:0; -} - -.pdfPresentationMode .spread{ - margin:0; -} - -.pdfPresentationMode .pdfViewer .page{ - margin:0 auto; - border:2px solid transparent; -} - -:root{ - - --toolbar-height: 48px; - - --dir-factor:1; - --inline-start:left; - --inline-end:right; - - --sidebar-width:128px; - --sidebar-transition-duration:200ms; - --sidebar-transition-timing-function:ease; - - --toolbar-icon-opacity:0.7; - --doorhanger-icon-opacity:0.9; - --editor-toolbar-base-offset:105px; - - --main-color:rgb(12 12 13); - --body-bg-color:rgb(255, 255, 255); - --progressBar-color:rgb(10 132 255); - --progressBar-bg-color:rgb(221 221 222); - --progressBar-blend-color:rgb(116 177 239); - --scrollbar-color:auto; - --scrollbar-bg-color:auto; - --toolbar-icon-bg-color:rgb(0 0 0); - --toolbar-icon-hover-bg-color:rgb(0 0 0); - - --sidebar-narrow-bg-color:rgb(212 212 215 / 0.9); - --sidebar-toolbar-bg-color:rgb(245 246 247); - --toolbar-bg-color:rgb(255, 255, 255); - --toolbar-border-color:#EBECF0; - --toolbar-box-shadow:0 1px 0 var(--toolbar-border-color); - --toolbar-border-bottom:none; - --toolbarSidebar-box-shadow:inset calc(-1px * var(--dir-factor)) 0 0 rgb(0 0 0 / 0.25), 0 1px 0 rgb(0 0 0 / 0.15), 0 0 1px rgb(0 0 0 / 0.1); - --toolbarSidebar-border-bottom:none; - --button-hover-color: #F4F5F9; - --toggled-btn-color:rgb(0 0 0); - --toggled-btn-bg-color:rgb(0 0 0 / 0.3); - --toggled-hover-active-btn-color:rgb(0 0 0 / 0.4); - --toggled-hover-btn-outline:none; - --dropdown-btn-bg-color:rgb(215 215 219); - --dropdown-btn-border:none; - --separator-color:rgb(0 0 0 / 0.3); - --field-color:rgb(6 6 6); - --field-bg-color:rgb(255 255 255); - --field-border-color:rgb(187 187 188); - --treeitem-color:rgb(0 0 0 / 0.8); - --treeitem-bg-color:rgb(0 0 0 / 0.15); - --treeitem-hover-color:rgb(0 0 0 / 0.9); - --treeitem-selected-color:rgb(0 0 0 / 0.9); - --treeitem-selected-bg-color:rgb(0 0 0 / 0.25); - --thumbnail-hover-color: #0D53DE; - --thumbnail-selected-color: #0D53DE; - --doorhanger-bg-color:rgb(255 255 255); - --doorhanger-border-color:rgb(12 12 13 / 0.2); - --doorhanger-hover-color:rgb(12 12 13); - --doorhanger-hover-bg-color:rgb(237 237 237); - --doorhanger-separator-color:rgb(222 222 222); - --dialog-button-border:none; - --dialog-button-bg-color:rgb(12 12 13 / 0.1); - --dialog-button-hover-bg-color:rgb(12 12 13 / 0.3); - - --loading-icon:url(images/loading.svg); - --treeitem-expanded-icon:url(images/treeitem-expanded.svg); - --treeitem-collapsed-icon:url(images/treeitem-collapsed.svg); - --toolbarButton-editorFreeText-icon:url(images/toolbarButton-editorFreeText.svg); - --toolbarButton-editorHighlight-icon:url(images/toolbarButton-editorHighlight.svg); - --toolbarButton-editorInk-icon:url(images/toolbarButton-editorInk.svg); - --toolbarButton-editorStamp-icon:url(images/toolbarButton-editorStamp.svg); - --toolbarButton-menuArrow-icon:url(images/toolbarButton-menuArrow.svg); - --toolbarButton-sidebarToggle-icon:url(images/toolbarButton-sidebarToggle.svg); - --toolbarButton-sidebarToggle-icon-open:url(images/toolbarButton-sidebarToggle-open.svg); - --toolbarButton-secondaryToolbarToggle-icon:url(images/toolbarButton-secondaryToolbarToggle.svg); - --toolbarButton-pageUp-icon:url(images/toolbarButton-pageUp.svg); - --toolbarButton-pageDown-icon:url(images/toolbarButton-pageDown.svg); - --toolbarButton-layerChange-icon:url(images/layer-button.svg); - --toolbarButton-layerChange-icon-show:url(images/layer-button-show.svg); - --toolbarButton-zoomOut-icon:url(images/toolbarButton-zoomOut.svg); - --toolbarButton-zoomIn-icon:url(images/toolbarButton-zoomIn.svg); - --toolbarButton-presentationMode-icon:url(images/toolbarButton-presentationMode.svg); - --toolbarButton-print-icon:url(images/toolbarButton-print.svg); - --toolbarButton-openFile-icon:url(images/toolbarButton-openFile.svg); - --toolbarButton-download-icon:url(images/toolbarButton-download.svg); - --toolbarButton-bookmark-icon:url(images/toolbarButton-bookmark.svg); - --toolbarButton-viewThumbnail-icon:url(images/toolbarButton-viewThumbnail.svg); - --toolbarButton-viewOutline-icon:url(images/toolbarButton-viewOutline.svg); - --toolbarButton-viewAttachments-icon:url(images/toolbarButton-viewAttachments.svg); - --toolbarButton-viewLayers-icon:url(images/toolbarButton-viewLayers.svg); - --toolbarButton-currentOutlineItem-icon:url(images/toolbarButton-currentOutlineItem.svg); - --toolbarButton-search-icon:url(images/toolbarButton-search.svg); - --findbarButton-previous-icon:url(images/findbarButton-previous.svg); - --findbarButton-next-icon:url(images/findbarButton-next.svg); - --secondaryToolbarButton-firstPage-icon:url(images/secondaryToolbarButton-firstPage.svg); - --secondaryToolbarButton-lastPage-icon:url(images/secondaryToolbarButton-lastPage.svg); - --secondaryToolbarButton-rotateCcw-icon:url(images/secondaryToolbarButton-rotateCcw.svg); - --secondaryToolbarButton-rotateCw-icon:url(images/secondaryToolbarButton-rotateCw.svg); - --secondaryToolbarButton-selectTool-icon:url(images/secondaryToolbarButton-selectTool.svg); - --secondaryToolbarButton-handTool-icon:url(images/secondaryToolbarButton-handTool.svg); - --secondaryToolbarButton-scrollPage-icon:url(images/secondaryToolbarButton-scrollPage.svg); - --secondaryToolbarButton-scrollVertical-icon:url(images/secondaryToolbarButton-scrollVertical.svg); - --secondaryToolbarButton-scrollHorizontal-icon:url(images/secondaryToolbarButton-scrollHorizontal.svg); - --secondaryToolbarButton-scrollWrapped-icon:url(images/secondaryToolbarButton-scrollWrapped.svg); - --secondaryToolbarButton-spreadNone-icon:url(images/secondaryToolbarButton-spreadNone.svg); - --secondaryToolbarButton-spreadOdd-icon:url(images/secondaryToolbarButton-spreadOdd.svg); - --secondaryToolbarButton-spreadEven-icon:url(images/secondaryToolbarButton-spreadEven.svg); - --secondaryToolbarButton-documentProperties-icon:url(images/secondaryToolbarButton-documentProperties.svg); - --editorParams-stampAddImage-icon:url(images/toolbarButton-zoomIn.svg); -} - -[dir="rtl"]:root{ - --dir-factor:-1; - --inline-start:right; - --inline-end:left; -} - -@media (prefers-color-scheme: dark){ - :root:where(:not(.is-dark)){ - // custom ban dark theme - /* --main-color:rgb(249 249 250); - --body-bg-color:rgb(42 42 46); - --progressBar-color:rgb(0 96 223); - --progressBar-bg-color:rgb(40 40 43); - --progressBar-blend-color:rgb(20 68 133); - --scrollbar-color:rgb(121 121 123); - --scrollbar-bg-color:rgb(35 35 39); - --toolbar-icon-bg-color:rgb(255 255 255); - --toolbar-icon-hover-bg-color:rgb(255 255 255); - - --sidebar-narrow-bg-color:rgb(42 42 46 / 0.9); - --sidebar-toolbar-bg-color:rgb(50 50 52); - --toolbar-bg-color:rgb(56 56 61); - --toolbar-border-color:rgb(12 12 13); - --button-hover-color: #F4F5F9; - --toggled-btn-color:rgb(255 255 255); - --toggled-btn-bg-color:rgb(0 0 0 / 0.3); - --toggled-hover-active-btn-color:rgb(0 0 0 / 0.4); - --dropdown-btn-bg-color:rgb(74 74 79); - --separator-color:rgb(0 0 0 / 0.3); - --field-color:rgb(250 250 250); - --field-bg-color:rgb(64 64 68); - --field-border-color:rgb(115 115 115); - --treeitem-color:rgb(255 255 255 / 0.8); - --treeitem-bg-color:rgb(255 255 255 / 0.15); - --treeitem-hover-color:rgb(255 255 255 / 0.9); - --treeitem-selected-color:rgb(255 255 255 / 0.9); - --treeitem-selected-bg-color:rgb(255 255 255 / 0.25); - --thumbnail-hover-color:rgb(255 255 255 / 0.1); - --thumbnail-selected-color:rgb(255 255 255 / 0.2); - --doorhanger-bg-color:rgb(74 74 79); - --doorhanger-border-color:rgb(39 39 43); - --doorhanger-hover-color:rgb(249 249 250); - --doorhanger-hover-bg-color:rgb(93 94 98); - --doorhanger-separator-color:rgb(92 92 97); - --dialog-button-bg-color:rgb(92 92 97); - --dialog-button-hover-bg-color:rgb(115 115 115); */ - } -} - -:root:where(.is-dark){ - --main-color:rgb(249 249 250); - --body-bg-color:rgb(42 42 46); - --progressBar-color:rgb(0 96 223); - --progressBar-bg-color:rgb(40 40 43); - --progressBar-blend-color:rgb(20 68 133); - --scrollbar-color:rgb(121 121 123); - --scrollbar-bg-color:rgb(35 35 39); - --toolbar-icon-bg-color:rgb(255 255 255); - --toolbar-icon-hover-bg-color:rgb(255 255 255); - - --sidebar-narrow-bg-color:rgb(42 42 46 / 0.9); - --sidebar-toolbar-bg-color:rgb(50 50 52); - --toolbar-bg-color:rgb(56 56 61); - --toolbar-border-color:rgb(12 12 13); - --button-hover-color: #F4F5F9; - --toggled-btn-color:rgb(255 255 255); - --toggled-btn-bg-color:rgb(0 0 0 / 0.3); - --toggled-hover-active-btn-color:rgb(0 0 0 / 0.4); - --dropdown-btn-bg-color:rgb(74 74 79); - --separator-color:rgb(0 0 0 / 0.3); - --field-color:rgb(250 250 250); - --field-bg-color:rgb(64 64 68); - --field-border-color:rgb(115 115 115); - --treeitem-color:rgb(255 255 255 / 0.8); - --treeitem-bg-color:rgb(255 255 255 / 0.15); - --treeitem-hover-color:rgb(255 255 255 / 0.9); - --treeitem-selected-color:rgb(255 255 255 / 0.9); - --treeitem-selected-bg-color:rgb(255 255 255 / 0.25); - --thumbnail-hover-color:rgb(255 255 255 / 0.1); - --thumbnail-selected-color:rgb(255 255 255 / 0.2); - --doorhanger-bg-color:rgb(74 74 79); - --doorhanger-border-color:rgb(39 39 43); - --doorhanger-hover-color:rgb(249 249 250); - --doorhanger-hover-bg-color:rgb(93 94 98); - --doorhanger-separator-color:rgb(92 92 97); - --dialog-button-bg-color:rgb(92 92 97); - --dialog-button-hover-bg-color:rgb(115 115 115); - } - -@media screen and (forced-colors: active){ - :root{ - --button-hover-color:#F4F5F9; - --doorhanger-hover-bg-color:Highlight; - --toolbar-icon-opacity:1; - --toolbar-icon-bg-color:ButtonText; - --toolbar-icon-hover-bg-color:ButtonFace; - --toggled-hover-active-btn-color:ButtonText; - --toggled-hover-btn-outline:2px solid ButtonBorder; - --toolbar-border-color:CanvasText; - --toolbar-border-bottom:1px solid var(--toolbar-border-color); - --toolbar-box-shadow:none; - --toggled-btn-color:HighlightText; - --toggled-btn-bg-color:LinkText; - --doorhanger-hover-color:ButtonFace; - --doorhanger-border-color-whcm:1px solid ButtonText; - --doorhanger-triangle-opacity-whcm:0; - --dialog-button-border:1px solid Highlight; - --dialog-button-hover-bg-color:Highlight; - --dialog-button-hover-color:ButtonFace; - --dropdown-btn-border:1px solid ButtonText; - --field-border-color:ButtonText; - --main-color:CanvasText; - --separator-color:GrayText; - --doorhanger-separator-color:GrayText; - --toolbarSidebar-box-shadow:none; - --toolbarSidebar-border-bottom:1px solid var(--toolbar-border-color); - } -} - -@media screen and (prefers-reduced-motion: reduce){ - :root{ - --sidebar-transition-duration:0; - } -} - -*{ - padding:0; - margin:0; -} - -html, -body{ - height:100%; - width:100%; -} - -body{ - background-color:var(--body-bg-color); - scrollbar-color:var(--scrollbar-color) var(--scrollbar-bg-color); -} - -.hidden, -[hidden]{ - display:none !important; -} - -#viewerContainer.pdfPresentationMode:fullscreen{ - top:0; - background-color:rgb(0 0 0); - width:100%; - height:100%; - overflow:hidden; - cursor:none; - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; -} - -.pdfPresentationMode:fullscreen section:not([data-internal-link]){ - pointer-events:none; -} - -.pdfPresentationMode:fullscreen .textLayer span{ - cursor:none; -} - -.pdfPresentationMode.pdfPresentationModeControls > *, -.pdfPresentationMode.pdfPresentationModeControls .textLayer span{ - cursor:default; -} - -#outerContainer{ - width:100%; - height:100%; - position:relative; -} - -#sidebarContainer{ - position:absolute; - inset-block:var(--toolbar-height) 0; - inset-inline-start:calc(-1 * var(--sidebar-width)); - width:var(--sidebar-width); - visibility:hidden; - z-index:100; - font:message-box; - border-top:1px solid rgb(51 51 51); - border-inline-end:var(--doorhanger-border-color-whcm); - transition-property:inset-inline-start; - transition-duration:var(--sidebar-transition-duration); - transition-timing-function:var(--sidebar-transition-timing-function); -} - -#outerContainer:is(.sidebarMoving, .sidebarOpen) #sidebarContainer{ - visibility:visible; -} -#outerContainer.sidebarOpen #sidebarContainer{ - inset-inline-start:0; -} - -#mainContainer{ - position:absolute; - inset:0; - min-width:350px; -} - -#sidebarContent{ - inset-block:0; - inset-inline-start:0; - overflow:auto; - position:absolute; - width:100%; - border-right: 1px solid #EBECF0; -} - -#viewerContainer{ - overflow:auto; - position:absolute; - inset:var(--toolbar-height) 0 0; - outline:none; - &::-webkit-scrollbar { - scrollbar-gutter: stable; - background: white !important; - width: 6px !important; - height: 6px !important; - } - - /* 滚动条里面轨道 */ - &::-webkit-scrollbar-track { - scrollbar-gutter: stable; - background: white !important; - } - - /* 滑块 */ - &::-webkit-scrollbar-thumb { - background-color: #EBECF0 !important; - scrollbar-gutter: stable; - border-radius: 10px; - } -} -#viewerContainer:not(.pdfPresentationMode){ - transition-duration:var(--sidebar-transition-duration); - transition-timing-function:var(--sidebar-transition-timing-function); -} - -#outerContainer.sidebarOpen #viewerContainer:not(.pdfPresentationMode){ - inset-inline-start:var(--sidebar-width); - transition-property:inset-inline-start; -} - -.toolbar{ - position:relative; - inset-inline:0; - z-index:9999; - cursor:default; - font:message-box; -} - -:is(.toolbar, .editorParamsToolbar, .findbar, #sidebarContainer) - :is(input, button, select), -.secondaryToolbar :is(input, button, a, select){ - outline:none; - font:message-box; -} - -#toolbarContainer{ - display: flex; - width:100%; -} - -#toolbarSidebar{ - width:100%; - height:32px; - background-color:var(--sidebar-toolbar-bg-color); - box-shadow:var(--toolbarSidebar-box-shadow); - border-bottom:var(--toolbarSidebar-border-bottom); -} - -#sidebarResizer{ - position:absolute; - inset-block:0; - inset-inline-end:-6px; - width:6px; - z-index:200; - cursor:ew-resize; -} - -#toolbarContainer, -.findbar, -.secondaryToolbar, -.editorParamsToolbar{ - position:relative; - height: var(--toolbar-height); - background-color:var(--toolbar-bg-color); - box-shadow:var(--toolbar-box-shadow); - border-bottom:var(--toolbar-border-bottom); -} - -#toolbarViewer{ - height: var(--toolbar-height); - display: flex; - align-items: center; - justify-content: center; - width: 100%; -} - -#loadingBar{ - --progressBar-percent:0%; - --progressBar-end-offset:0; - - position:absolute; - inset-inline:0 var(--progressBar-end-offset); - height:4px; - bottom: 0; - transform: translateY(100%); - background-color:var(--progressBar-bg-color); - border-bottom:0px solid var(--toolbar-border-color); - transition-property:inset-inline-start; - transition-duration:var(--sidebar-transition-duration); - transition-timing-function:var(--sidebar-transition-timing-function); -} - -#outerContainer.sidebarOpen #loadingBar{ - inset-inline-start:var(--sidebar-width); -} - -#loadingBar .progress{ - position:absolute; - top:0; - inset-inline-start:0; - width:100%; - transform:scaleX(var(--progressBar-percent)); - transform-origin:calc(50% - 50% * var(--dir-factor)) 0; - height:100%; - background-color:var(--progressBar-color); - overflow:hidden; - transition:transform 200ms; -} - -@keyframes progressIndeterminate{ - 0%{ - transform:translateX(calc(-142px * var(--dir-factor))); - } - 100%{ - transform:translateX(0); - } -} - -#loadingBar.indeterminate .progress{ - transform:none; - background-color:var(--progressBar-bg-color); - transition:none; -} - -#loadingBar.indeterminate .progress .glimmer{ - position:absolute; - top:0; - inset-inline-start:0; - height:100%; - width:calc(100% + 150px); - background:repeating-linear-gradient( - 135deg, - var(--progressBar-blend-color) 0, - var(--progressBar-bg-color) 5px, - var(--progressBar-bg-color) 45px, - var(--progressBar-color) 55px, - var(--progressBar-color) 95px, - var(--progressBar-blend-color) 100px - ); - animation:progressIndeterminate 1s linear infinite; -} - -#outerContainer.sidebarResizing - :is(#sidebarContainer, #viewerContainer, #loadingBar){ - transition-duration:0s; -} - -.findbar, -.secondaryToolbar, -.editorParamsToolbar{ - top:32px; - position:absolute; - z-index:30000; - height:auto; - padding:0 4px; - margin:4px 2px; - font:message-box; - font-size:12px; - line-height:14px; - text-align:left; - cursor:default; -} - -.findbar{ - inset-inline-start:64px; - min-width:300px; - background-color:var(--toolbar-bg-color); -} -.findbar > div{ - height:32px; -} -.findbar > div#findbarInputContainer{ - margin-inline-end:4px; -} -.findbar.wrapContainers > div, -.findbar.wrapContainers > div#findbarMessageContainer > *{ - clear:both; -} -.findbar.wrapContainers > div#findbarMessageContainer{ - height:auto; -} - -.findbar input[type="checkbox"]{ - pointer-events:none; -} - -.findbar label{ - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; -} - -.findbar label:hover, -.findbar input:focus-visible + label{ - color:var(--toggled-btn-color); - background-color:var(--button-hover-color); -} - -.findbar .toolbarField[type="checkbox"]:checked + .toolbarLabel{ - background-color:var(--toggled-btn-bg-color) !important; - color:var(--toggled-btn-color); -} - -#findInput{ - width:200px; -} - -#findInput::-moz-placeholder{ - font-style:normal; - } - -#findInput::placeholder{ - font-style:normal; - } - -.loadingInput:has(> #findInput[data-status="pending"])::after{ - display:block; - visibility:visible; - } - -#findInput[data-status="notFound"]{ - background-color:rgb(255 102 102); - } - -.secondaryToolbar, -.editorParamsToolbar{ - padding:6px 0 10px; - inset-inline-end:4px; - height:auto; - background-color:var(--doorhanger-bg-color); -} - -.editorParamsToolbarContainer{ - width:220px; - margin-bottom:-4px; -} - -.editorParamsToolbarContainer > .editorParamsSetter{ - min-height:26px; - display:flex; - align-items:center; - justify-content:space-between; - padding-inline:10px; -} - -.editorParamsToolbarContainer .editorParamsLabel{ - padding-inline-end:10px; - flex:none; - font:menu; - font-size:13px; - font-style:normal; - font-weight:400; - line-height:150%; - color:var(--main-color); -} - -.editorParamsToolbarContainer .editorParamsColor{ - width:32px; - height:32px; - flex:none; -} - -.editorParamsToolbarContainer .editorParamsSlider{ - background-color:transparent; - width:90px; - flex:0 1 0; -} - -.editorParamsToolbarContainer .editorParamsSlider::-moz-range-progress{ - background-color:black; -} - -.editorParamsToolbarContainer .editorParamsSlider::-webkit-slider-runnable-track, -.editorParamsToolbarContainer .editorParamsSlider::-moz-range-track{ - background-color:black; -} - -.editorParamsToolbarContainer .editorParamsSlider::-webkit-slider-thumb, -.editorParamsToolbarContainer .editorParamsSlider::-moz-range-thumb{ - background-color:white; -} - -#secondaryToolbarButtonContainer{ - max-width:220px; - min-height:26px; - max-height:calc(var(--viewer-container-height) - 40px); - overflow-y:auto; - margin-bottom:-4px; -} - -#editorStampParamsToolbar{ - inset-inline-end:calc(var(--editor-toolbar-base-offset) + 0px); -} - -#editorInkParamsToolbar{ - inset-inline-end:calc(var(--editor-toolbar-base-offset) + 28px); -} - -#editorFreeTextParamsToolbar{ - inset-inline-end:calc(var(--editor-toolbar-base-offset) + 56px); -} - -#editorHighlightParamsToolbar{ - inset-inline-end:calc(var(--editor-toolbar-base-offset) + 84px); -} - -#editorStampAddImage::before{ - -webkit-mask-image:var(--editorParams-stampAddImage-icon); - mask-image:var(--editorParams-stampAddImage-icon); -} - -.doorHanger, -.doorHangerRight{ - border-radius:2px; - box-shadow:0 1px 5px var(--doorhanger-border-color), 0 0 0 1px var(--doorhanger-border-color); - border:var(--doorhanger-border-color-whcm); -} -:is(.doorHanger, .doorHangerRight)::after, -:is(.doorHanger, .doorHangerRight)::before{ - bottom:100%; - border:8px solid rgb(0 0 0 / 0); - content:" "; - height:0; - width:0; - position:absolute; - pointer-events:none; - opacity:var(--doorhanger-triangle-opacity-whcm); -} -.doorHanger::after{ - inset-inline-start:10px; - margin-inline-start:-8px; - border-bottom-color:var(--toolbar-bg-color); -} -.doorHangerRight::after{ - inset-inline-end:10px; - margin-inline-end:-8px; - border-bottom-color:var(--doorhanger-bg-color); -} -:is(.doorHanger, .doorHangerRight)::before{ - border-bottom-color:var(--doorhanger-border-color); - border-width:9px; -} -.doorHanger::before{ - inset-inline-start:10px; - margin-inline-start:-9px; -} -.doorHangerRight::before{ - inset-inline-end:10px; - margin-inline-end:-9px; -} - -#findResultsCount{ - background-color:rgb(217 217 217); - color:rgb(82 82 82); - text-align:center; - padding:4px 5px; - margin:5px; -} - -#findMsg[data-status="notFound"]{ - font-weight:bold; -} - -:is(#findResultsCount, #findMsg):empty{ - display:none; -} - -#toolbarViewerMiddle{ - margin-left:auto; - left:auto; - margin-right:16px; -} - -#toolbarViewerLeft, -#toolbarSidebarLeft{ - float:var(--inline-start); -} -#toolbarViewerRight, -#toolbarSidebarRight{ - float:var(--inline-end); -} - -#toolbarViewerLeft > *, -#toolbarViewerMiddle > *, -#toolbarViewerRight > *, -#toolbarSidebarLeft *, -#toolbarSidebarRight *, -.findbar *{ - position:relative; - float:var(--inline-start); -} - -#toolbarViewerLeft{ - padding-inline-start:1px; - width: calc(50% - 120px); -} -#toolbarViewerRight{ - padding-inline-end:1px; - z-index: 99; - position: absolute; - right: 0; - -} -#toolbarSidebarRight{ - padding-inline-end:2px; -} - -.splitToolbarButton{ - display: flex; - align-items: center; - white-space: nowrap; -} - -.odlPageControl { - position: absolute; - left: calc(50% - 14px); - transform: translateX(-50%); -} - -.splitToolbarButton > .toolbarButton{ - cursor: pointer; - float:var(--inline-start); -} - -.toolbarButton, -.secondaryToolbarButton, -.dialogButton{ - border:none; - background:none; - width:16px; - height: 16px; - outline:none; -} - -.dialogButton:is(:hover, :focus-visible){ - background-color:var(--dialog-button-hover-bg-color); -} - -.dialogButton:is(:hover, :focus-visible) > span{ - color:var(--dialog-button-hover-color); -} - -.toolbarButton > span{ - display:inline-block; - width:0; - height:0; - overflow:hidden; -} - -:is(.toolbarButton, .secondaryToolbarButton, .dialogButton)[disabled]{ - opacity:0.5; -} - -.splitToolbarButton > .toolbarButton:is(:hover, :focus-visible), -.dropdownToolbarButton:hover{ - background-color:var(--button-hover-color); -} -.splitToolbarButton > .toolbarButton{ - position:relative; - margin:0; -} -#toolbarSidebar .splitToolbarButton > .toolbarButton{ - margin-inline-end:2px; -} - -.splitToolbarButtonSeparator{ - float:var(--inline-start); - margin:4px 0; - width:1px; - height:20px; - background-color:var(--separator-color); -} - -.toolbarButton, -.dropdownToolbarButton, -.secondaryToolbarButton, -.dialogButton{ - min-width:16px; - margin:2px 1px; - border:none; - border-radius:2px; - color:var(--main-color); - font-size:12px; - line-height:14px; - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; - cursor:default; - box-sizing:border-box; -} - -.toolbarButton { - min-width:12px; -} - -.toolbarButton:is(:hover, :focus-visible){ - background-color:var(--button-hover-color); -} -.secondaryToolbarButton:is(:hover, :focus-visible){ - background-color:var(--doorhanger-hover-bg-color); - color:var(--doorhanger-hover-color); -} - -:is(.toolbarButton, .secondaryToolbarButton).toggled, -.splitToolbarButton.toggled > .toolbarButton.toggled{ - background-color:var(--toggled-btn-bg-color); - color:var(--toggled-btn-color); -} - -:is(.toolbarButton, .secondaryToolbarButton).toggled:hover, -.splitToolbarButton.toggled > .toolbarButton.toggled:hover{ - outline:var(--toggled-hover-btn-outline) !important; -} - -:is(.toolbarButton, .secondaryToolbarButton).toggled::before{ - background-color:var(--toggled-btn-color); -} - -:is(.toolbarButton, .secondaryToolbarButton).toggled:hover:active, -.splitToolbarButton.toggled > .toolbarButton.toggled:hover:active{ - background-color:var(--toggled-hover-active-btn-color); -} - -.dropdownToolbarButton{ - display:flex; - width:-moz-fit-content; - width:fit-content; - min-width:140px; - padding:0; - background-color:var(--dropdown-btn-bg-color); - border:var(--dropdown-btn-border); -} -.dropdownToolbarButton::after{ - top:6px; - inset-inline-end:6px; - pointer-events:none; - -webkit-mask-image:var(--toolbarButton-menuArrow-icon); - mask-image:var(--toolbarButton-menuArrow-icon); -} - -.dropdownToolbarButton > select{ - -webkit-appearance:none; - -moz-appearance:none; - appearance:none; - width:inherit; - min-width:inherit; - height:28px; - font-size:12px; - color:var(--main-color); - margin:0; - padding-block:1px 2px; - padding-inline:6px 38px; - border:none; - background-color:var(--dropdown-btn-bg-color); -} -.dropdownToolbarButton > select:is(:hover, :focus-visible){ - background-color:var(--button-hover-color); - color:var(--toggled-btn-color); -} -.dropdownToolbarButton > select > option{ - background:var(--doorhanger-bg-color); - color:var(--main-color); -} - -.toolbarButtonSpacer{ - width:30px; - display:inline-block; - height:1px; -} - -:is(.toolbarButton, .secondaryToolbarButton, .treeItemToggler)::before, -.dropdownToolbarButton::after{ - position:absolute; - display:inline-block; - width:16px; - height:16px; - - content:""; - background-color:var(--toolbar-icon-bg-color); - -webkit-mask-size:cover; - mask-size:cover; -} - -.dropdownToolbarButton:is(:hover, :focus-visible, :active)::after{ - background-color:var(--toolbar-icon-hover-bg-color); -} - -.toolbarButton::before{ - opacity:var(--toolbar-icon-opacity); - top:0px; - left: 0px; -} - -.toolbarButton:is(:hover, :focus-visible)::before, -.secondaryToolbarButton:is(:hover, :focus-visible)::before{ - background-color:var(--toolbar-icon-hover-bg-color); -} - -.secondaryToolbarButton::before{ - opacity:var(--doorhanger-icon-opacity); - top:5px; - inset-inline-start:12px; -} - -#sidebarToggle::before{ - -webkit-mask-image:var(--toolbarButton-sidebarToggle-icon); - mask-image:var(--toolbarButton-sidebarToggle-icon); - transform:scaleX(var(--dir-factor)); - margin-left: 1px; - margin-top: 1px; -} - -#secondaryToolbarToggle::before{ - -webkit-mask-image:var(--toolbarButton-secondaryToolbarToggle-icon); - mask-image:var(--toolbarButton-secondaryToolbarToggle-icon); - transform:scaleX(var(--dir-factor)); -} - -#findPrevious::before{ - -webkit-mask-image:var(--findbarButton-previous-icon); - mask-image:var(--findbarButton-previous-icon); -} - -#findNext::before{ - -webkit-mask-image:var(--findbarButton-next-icon); - mask-image:var(--findbarButton-next-icon); -} - -#previous::before{ - -webkit-mask-image:var(--toolbarButton-pageUp-icon); - mask-image:var(--toolbarButton-pageUp-icon); -} - -#next::before{ - -webkit-mask-image:var(--toolbarButton-pageDown-icon); - mask-image:var(--toolbarButton-pageDown-icon); -} - -#splitLine { - width: 1px; - height: 12px; - background: #D7D8DD; - margin-right: 16px; - margin-top: 2px; -} - -/* custom layerChange icon */ - -#layerChange { - margin-right: 16px; -} - -#layerChange::before{ - cursor: pointer; - -webkit-mask-image:var(--toolbarButton-layerChange-icon-show); - mask-image:var(--toolbarButton-layerChange-icon-show); -} - -.layerChange-active::before { - cursor: pointer; - -webkit-mask-image:var(--toolbarButton-layerChange-icon) !important; - mask-image:var(--toolbarButton-layerChange-icon) !important; - -} - - -#zoomOut::before{ - cursor: pointer; - -webkit-mask-image:var(--toolbarButton-zoomOut-icon); - mask-image:var(--toolbarButton-zoomOut-icon); -} - -#zoomIn::before{ - cursor: pointer; - -webkit-mask-image:var(--toolbarButton-zoomIn-icon); - mask-image:var(--toolbarButton-zoomIn-icon); -} - -#presentationMode::before{ - -webkit-mask-image:var(--toolbarButton-presentationMode-icon); - mask-image:var(--toolbarButton-presentationMode-icon); -} - -#editorFreeText::before{ - -webkit-mask-image:var(--toolbarButton-editorFreeText-icon); - mask-image:var(--toolbarButton-editorFreeText-icon); -} - -#editorHighlight::before{ - -webkit-mask-image:var(--toolbarButton-editorHighlight-icon); - mask-image:var(--toolbarButton-editorHighlight-icon); -} - -#editorInk::before{ - -webkit-mask-image:var(--toolbarButton-editorInk-icon); - mask-image:var(--toolbarButton-editorInk-icon); -} - -#editorStamp::before{ - -webkit-mask-image:var(--toolbarButton-editorStamp-icon); - mask-image:var(--toolbarButton-editorStamp-icon); -} - -:is(#print, #secondaryPrint)::before{ - -webkit-mask-image:var(--toolbarButton-print-icon); - mask-image:var(--toolbarButton-print-icon); -} - -#secondaryOpenFile::before{ - -webkit-mask-image:var(--toolbarButton-openFile-icon); - mask-image:var(--toolbarButton-openFile-icon); -} - -:is(#download, #secondaryDownload)::before{ - -webkit-mask-image:var(--toolbarButton-download-icon); - mask-image:var(--toolbarButton-download-icon); -} - -a.secondaryToolbarButton{ - padding-top:5px; - text-decoration:none; -} -a:is(.toolbarButton, .secondaryToolbarButton)[href="#"]{ - opacity:0.5; - pointer-events:none; -} - -#viewBookmark::before{ - -webkit-mask-image:var(--toolbarButton-bookmark-icon); - mask-image:var(--toolbarButton-bookmark-icon); -} - -#viewThumbnail::before{ - -webkit-mask-image:var(--toolbarButton-viewThumbnail-icon); - mask-image:var(--toolbarButton-viewThumbnail-icon); -} - -#viewOutline::before{ - -webkit-mask-image:var(--toolbarButton-viewOutline-icon); - mask-image:var(--toolbarButton-viewOutline-icon); - transform:scaleX(var(--dir-factor)); -} - -#viewAttachments::before{ - -webkit-mask-image:var(--toolbarButton-viewAttachments-icon); - mask-image:var(--toolbarButton-viewAttachments-icon); -} - -#viewLayers::before{ - -webkit-mask-image:var(--toolbarButton-viewLayers-icon); - mask-image:var(--toolbarButton-viewLayers-icon); -} - -#currentOutlineItem::before{ - -webkit-mask-image:var(--toolbarButton-currentOutlineItem-icon); - mask-image:var(--toolbarButton-currentOutlineItem-icon); - transform:scaleX(var(--dir-factor)); -} - -#viewFind::before{ - -webkit-mask-image:var(--toolbarButton-search-icon); - mask-image:var(--toolbarButton-search-icon); -} - -.pdfSidebarNotification::after{ - position:absolute; - display:inline-block; - top:2px; - inset-inline-end:2px; - content:""; - background-color:rgb(112 219 85); - height:9px; - width:9px; - border-radius:50%; - /* [custom] */ - display: none; -} - -.secondaryToolbarButton{ - position:relative; - margin:0; - padding:0 0 1px; - padding-inline-start:36px; - height:auto; - min-height:26px; - width:auto; - min-width:100%; - text-align:start; - white-space:normal; - border-radius:0; - box-sizing:border-box; - display:inline-block; -} -.secondaryToolbarButton > span{ - padding-inline-end:4px; -} - -#firstPage::before{ - -webkit-mask-image:var(--secondaryToolbarButton-firstPage-icon); - mask-image:var(--secondaryToolbarButton-firstPage-icon); -} - -#lastPage::before{ - -webkit-mask-image:var(--secondaryToolbarButton-lastPage-icon); - mask-image:var(--secondaryToolbarButton-lastPage-icon); -} - -#pageRotateCcw::before{ - -webkit-mask-image:var(--secondaryToolbarButton-rotateCcw-icon); - mask-image:var(--secondaryToolbarButton-rotateCcw-icon); -} - -#pageRotateCw::before{ - -webkit-mask-image:var(--secondaryToolbarButton-rotateCw-icon); - mask-image:var(--secondaryToolbarButton-rotateCw-icon); -} - -#cursorSelectTool::before{ - -webkit-mask-image:var(--secondaryToolbarButton-selectTool-icon); - mask-image:var(--secondaryToolbarButton-selectTool-icon); -} - -#cursorHandTool::before{ - -webkit-mask-image:var(--secondaryToolbarButton-handTool-icon); - mask-image:var(--secondaryToolbarButton-handTool-icon); -} - -#scrollPage::before{ - -webkit-mask-image:var(--secondaryToolbarButton-scrollPage-icon); - mask-image:var(--secondaryToolbarButton-scrollPage-icon); -} - -#scrollVertical::before{ - -webkit-mask-image:var(--secondaryToolbarButton-scrollVertical-icon); - mask-image:var(--secondaryToolbarButton-scrollVertical-icon); -} - -#scrollHorizontal::before{ - -webkit-mask-image:var(--secondaryToolbarButton-scrollHorizontal-icon); - mask-image:var(--secondaryToolbarButton-scrollHorizontal-icon); -} - -#scrollWrapped::before{ - -webkit-mask-image:var(--secondaryToolbarButton-scrollWrapped-icon); - mask-image:var(--secondaryToolbarButton-scrollWrapped-icon); -} - -#spreadNone::before{ - -webkit-mask-image:var(--secondaryToolbarButton-spreadNone-icon); - mask-image:var(--secondaryToolbarButton-spreadNone-icon); -} - -#spreadOdd::before{ - -webkit-mask-image:var(--secondaryToolbarButton-spreadOdd-icon); - mask-image:var(--secondaryToolbarButton-spreadOdd-icon); -} - -#spreadEven::before{ - -webkit-mask-image:var(--secondaryToolbarButton-spreadEven-icon); - mask-image:var(--secondaryToolbarButton-spreadEven-icon); -} - -#documentProperties::before{ - -webkit-mask-image:var(--secondaryToolbarButton-documentProperties-icon); - mask-image:var(--secondaryToolbarButton-documentProperties-icon); -} - -.verticalToolbarSeparator{ - display:block; - margin:5px 2px; - width:1px; - height:22px; - background-color:var(--separator-color); -} -.horizontalToolbarSeparator{ - display:block; - margin:6px 0; - height:1px; - width:100%; - background-color:var(--doorhanger-separator-color); -} - -.toolbarField{ - padding:1px 7px; - margin:3px 2px; - border-radius:2px; - background-color:var(--field-bg-color); - background-clip:padding-box; - border:1px solid var(--field-border-color); - box-shadow:none; - color:var(--field-color); - outline:none; -} - -.toolbarField[type="checkbox"]{ - opacity:0; - position:absolute !important; - left:0; - margin:10px 0 3px; - margin-inline-start:7px; -} - - -#pageNumber{ - -moz-appearance:textfield; - text-align:center; - width: fit-content !important; - background-size:0 0; - font-size: 14px !important; - transition-property:none; - margin-top: 6px; -} - -#pageNumber::-webkit-inner-spin-button{ - -webkit-appearance:none; - } - -.loadingInput:has(> #pageNumber.loading)::after{ - display:block; - visibility:visible; - - transition-property:visibility; - transition-delay:var(--loading-icon-delay); - } - -.loadingInput::after{ - position:absolute; - visibility:hidden; - display:none; - top:calc(50% - 8px); - width:16px; - height:16px; - - content:""; - background-color:var(--toolbar-icon-bg-color); - -webkit-mask-size:cover; - mask-size:cover; - -webkit-mask-image:var(--loading-icon); - mask-image:var(--loading-icon); - } - -.loadingInput.start::after{ - inset-inline-start:4px; - } - -.loadingInput.end::after{ - inset-inline-end:4px; - } - -.toolbarField:focus{ - border-color:#0a84ff; -} - -.toolbarLabel{ - min-width:16px; - padding:7px; - margin:2px; - padding-top: 10px; - border-radius:2px; - color:var(--main-color); - font-size:12px; - line-height:14px; - text-align:left; - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; - cursor:default; -} - - -#numPages.toolbarLabel{ - min-width: var(--num-page-width); - margin-right: -4px; - padding-inline-start:3px; - font-size: 14px; -} - -#thumbnailView, -#outlineView, -#attachmentsView, -#layersView{ - position:absolute; - width:calc(100% - 8px); - inset-block:0; - padding:4px 4px 0; - overflow:auto; - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; -} -#thumbnailView{ - width: 100%; - padding:10px 0px 0; - background-color: white; - display: flex; - flex-direction: column; - align-items: center; - - /* 滚动条整体部分 */ - &::-webkit-scrollbar { - scrollbar-gutter: stable; - background: white !important; - width: 6px !important; - height: 6px !important; - } - - /* 滚动条里面轨道 */ - &::-webkit-scrollbar-track { - scrollbar-gutter: stable; - background: white !important; - } - - /* 滑块 */ - &::-webkit-scrollbar-thumb { - background-color: #EBECF0 !important; - scrollbar-gutter: stable; - border-radius: 10px; - } - - & > a { - text-decoration: none; - } -} - -#thumbnailView > a:is(:active, :focus){ - outline:0; -} - -.thumbnail{ - --thumbnail-width:0; - --thumbnail-height:0; - - float:var(--inline-start); - width:var(--thumbnail-width); - height:var(--thumbnail-height); - margin:0 0px 8px; - padding:1px; - border:1px solid #EBECF0; - border-radius:4px; -} - -#thumbnailView > a:last-of-type > .thumbnail{ - margin-bottom:10px; -} - -/* a:focus > .thumbnail, -.thumbnail:hover{ - border-color:var(--thumbnail-hover-color); -} */ - -a:hover > .thumbnail, -.thumbnail:hover{ - border-color:var(--thumbnail-hover-color); -} - -.thumbnail.selected{ - border-color:var(--thumbnail-selected-color) !important; -} - -.thumbnailImage{ - width:var(--thumbnail-width); - height:var(--thumbnail-height); - opacity:0.9; -} -a:focus > .thumbnail > .thumbnailImage, -.thumbnail:hover > .thumbnailImage{ - opacity:0.95; -} -.thumbnail.selected > .thumbnailImage{ - opacity:1 !important; -} - -.thumbnail:not([data-loaded]) > .thumbnailImage{ - width:calc(var(--thumbnail-width) - 2px); - height:calc(var(--thumbnail-height) - 2px); - border:1px dashed rgb(132 132 132); -} - -.treeWithDeepNesting > .treeItem, -.treeItem > .treeItems{ - margin-inline-start:20px; -} - -.treeItem > a{ - text-decoration:none; - display:inline-block; - min-width:calc(100% - 4px); - height:auto; - margin-bottom:1px; - padding:2px 0 5px; - padding-inline-start:4px; - border-radius:2px; - color:var(--treeitem-color); - font-size:13px; - line-height:15px; - -webkit-user-select:none; - -moz-user-select:none; - user-select:none; - white-space:normal; - cursor:pointer; -} - -#layersView .treeItem > a *{ - cursor:pointer; -} -#layersView .treeItem > a > label{ - padding-inline-start:4px; -} -#layersView .treeItem > a > label > input{ - float:var(--inline-start); - margin-top:1px; -} - -.treeItemToggler{ - position:relative; - float:var(--inline-start); - height:0; - width:0; - color:rgb(255 255 255 / 0.5); -} -.treeItemToggler::before{ - inset-inline-end:4px; - -webkit-mask-image:var(--treeitem-expanded-icon); - mask-image:var(--treeitem-expanded-icon); -} -.treeItemToggler.treeItemsHidden::before{ - -webkit-mask-image:var(--treeitem-collapsed-icon); - mask-image:var(--treeitem-collapsed-icon); - transform:scaleX(var(--dir-factor)); -} -.treeItemToggler.treeItemsHidden ~ .treeItems{ - display:none; -} - -.treeItem.selected > a{ - background-color:var(--treeitem-selected-bg-color); - color:var(--treeitem-selected-color); -} - -.treeItemToggler:hover, -.treeItemToggler:hover + a, -.treeItemToggler:hover ~ .treeItems, -.treeItem > a:hover{ - background-color:var(--treeitem-bg-color); - background-clip:padding-box; - border-radius:2px; - color:var(--treeitem-hover-color); -} - -#outlineOptionsContainer{ - display:none; -} - -#sidebarContainer:has(#outlineView:not(.hidden)) #outlineOptionsContainer{ - display:inherit; - } - -.dialogButton{ - width:auto; - margin:3px 4px 2px !important; - padding:2px 11px; - color:var(--main-color); - background-color:var(--dialog-button-bg-color); - border:var(--dialog-button-border) !important; -} - -dialog{ - margin:auto; - padding:15px; - border-spacing:4px; - color:var(--main-color); - font:message-box; - font-size:12px; - line-height:14px; - background-color:var(--doorhanger-bg-color); - border:1px solid rgb(0 0 0 / 0.5); - border-radius:4px; - box-shadow:0 1px 4px rgb(0 0 0 / 0.3); -} -dialog::backdrop{ - background-color:rgb(0 0 0 / 0.2); -} - -dialog > .row{ - display:table-row; -} - -dialog > .row > *{ - display:table-cell; -} - -dialog .toolbarField{ - margin:5px 0; -} - -dialog .separator{ - display:block; - margin:4px 0; - height:1px; - width:100%; - background-color:var(--separator-color); -} - -dialog .buttonRow{ - text-align:center; - vertical-align:middle; -} - -dialog :link{ - color:rgb(255 255 255); -} - -#passwordDialog{ - text-align:center; -} -#passwordDialog .toolbarField{ - width:200px; -} - -#documentPropertiesDialog{ - text-align:left; -} -#documentPropertiesDialog .row > *{ - min-width:100px; - text-align:start; -} -#documentPropertiesDialog .row > span{ - width:125px; - word-wrap:break-word; -} -#documentPropertiesDialog .row > p{ - max-width:225px; - word-wrap:break-word; -} -#documentPropertiesDialog .buttonRow{ - margin-top:10px; -} - -.grab-to-pan-grab{ - cursor:grab !important; -} -.grab-to-pan-grab - *:not(input):not(textarea):not(button):not(select):not(:link){ - cursor:inherit !important; -} -.grab-to-pan-grab:active, -.grab-to-pan-grabbing{ - cursor:grabbing !important; -} -.grab-to-pan-grabbing{ - position:fixed; - background:rgb(0 0 0 / 0); - display:block; - inset:0; - overflow:hidden; - z-index:50000; -} - -@page{ - margin:0; -} - -#printContainer{ - display:none; -} - -@media print{ - body{ - background:rgb(0 0 0 / 0) none; - } - body[data-pdfjsprinting] #outerContainer{ - display:none; - } - body[data-pdfjsprinting] #printContainer{ - display:block; - } - #printContainer{ - height:100%; - } - #printContainer > .printedPage{ - page-break-after:always; - page-break-inside:avoid; - height:100%; - width:100%; - - display:flex; - flex-direction:column; - justify-content:center; - align-items:center; - } - - #printContainer > .xfaPrintedPage .xfaPage{ - position:absolute; - } - - #printContainer > .xfaPrintedPage{ - page-break-after:always; - page-break-inside:avoid; - width:100%; - height:100%; - position:relative; - } - - #printContainer > .printedPage :is(canvas, img){ - max-width:100%; - max-height:100%; - - direction:ltr; - display:block; - } -} - -.visibleMediumView{ - display:none; -} - -@media all and (max-width: 900px){ - -} - -@media all and (max-width: 840px){ - #sidebarContainer{ - background-color:var(--sidebar-narrow-bg-color); - } - #outerContainer.sidebarOpen #viewerContainer{ - inset-inline-start:0 !important; - } -} - -@media all and (max-width: 750px){ - :root{ - --editor-toolbar-base-offset:40px; - } - #outerContainer .hiddenMediumView{ - display:none; - } - #outerContainer .visibleMediumView{ - display:inherit; - } -} - -@media all and (max-width: 690px){ - .hiddenSmallView, - .hiddenSmallView *{ - /* display:none; */ - } - .toolbarButtonSpacer{ - width:0; - } - .findbar{ - inset-inline-start:34px; - } -} - -@media all and (max-width: 560px){ - #scaleSelectContainer{ - display:none; - } -} - -#odlCustomRatio { - min-width: 10px; -} - -#scaleSelect { - border: none; - background: transparent; -} - -.odlImageNum { - text-align: center; - text-decoration: none; - margin-bottom: 8px; - color: rgba(18, 19, 22, 0.80); -} - -.odl_selected { - & > .odlImageNum { - color: var(--thumbnail-selected-color); - } -} - -#odlScale { - font-size: 14px; - margin: 2px 8px 0; - user-select: none; -} - -#toolbarViewerLeft { - display: flex; - align-items: center; -} - -#sidebarToggle { - width: 20px; - height: 20px; - margin-left: 16px; - cursor: pointer; -} - -#sidebarToggle::before,.toggled::before { - width: 18px !important; - height: 18px !important; -} - -#sidebarToggle { - margin-right: 8px; - &:active { - background-color: #F4F5F9 !important; - } -} - -#sidebarToggle.toggled { - background-color: #F4F5F9; - border-radius: 2px; - width: 20px !important; - height: 20px !important; -} - -#sidebarToggle.toggled::before { - -webkit-mask-image:var(--toolbarButton-sidebarToggle-icon) !important; - mask-image:var(--toolbarButton-sidebarToggle-icon) !important; - width: 18px !important; - height: 18px !important; - margin-left: 1px; - margin-top: 1px; - -} - -#sidebarToggle:is(:hover, :focus-visible) { - border-radius: 2px; -} - -#odl-pdf-title { - margin-left: 8px; - margin-top: 1px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - max-width: calc(100%) -} - - -@media all and (max-width: 690px){ - #odl-pdf-title { - max-width: 160px; - - } -} diff --git a/projects/web/public/pdfjs-dist/web/viewer.html b/projects/web/public/pdfjs-dist/web/viewer.html deleted file mode 100644 index aef3ff2fb..000000000 --- a/projects/web/public/pdfjs-dist/web/viewer.html +++ /dev/null @@ -1,557 +0,0 @@ - - - - - - - - PDF.js viewer - - - - - - - - - - - - - - -
    -
    - -
    -
    -
    - - - -
    -
    -
    - -
    - - - - - - - - - - - - -
    -
    -
    -
    - - -
    - - - -
    -
    - - - - - - -
    -
    - - - - - - - - -
    -
    -
    - - - -
    - - -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - -
    -
    - - -
    -
    - -
    - File name: -

    -

    -
    -
    - File size: -

    -

    -
    -
    -
    - Title: -

    -

    -
    -
    - Author: -

    -

    -
    -
    - Subject: -

    -

    -
    -
    - Keywords: -

    -

    -
    -
    - Creation Date: -

    -

    -
    -
    - Modification Date: -

    -

    -
    -
    - Creator: -

    -

    -
    -
    -
    - PDF Producer: -

    -

    -
    -
    - PDF Version: -

    -

    -
    -
    - Page Count: -

    -

    -
    -
    - Page Size: -

    -

    -
    -
    -
    - Fast Web View: -

    -

    -
    -
    - -
    -
    - -
    -
    - Choose an option - - Alt text (alternative text) helps when people can’t see the image or when it doesn’t load. - -
    -
    -
    -
    - - -
    -
    - - Aim for 1-2 sentences that describe the subject, setting, or actions. - -
    -
    -
    - -
    -
    -
    -
    -
    - - -
    -
    - - This is used for ornamental images, like borders or watermarks. - -
    -
    -
    -
    - - -
    -
    -
    - -
    - Preparing document for printing… -
    -
    - - 0% -
    -
    - -
    -
    -
    - -
    -
    - - diff --git a/projects/web/public/pdfjs-dist/web/viewer.mjs b/projects/web/public/pdfjs-dist/web/viewer.mjs deleted file mode 100644 index 1e8e13342..000000000 --- a/projects/web/public/pdfjs-dist/web/viewer.mjs +++ /dev/null @@ -1,15477 +0,0 @@ -/** - * @licstart The following is the entire license notice for the - * JavaScript code in this page - * - * Copyright 2023 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @licend The above is the entire license notice for the - * JavaScript code in this page - */ - -/******/ var __webpack_modules__ = ({ - -/***/ 588: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - FluentBundle: () => (/* reexport */ FluentBundle), - FluentResource: () => (/* reexport */ FluentResource) -}); - -// UNUSED EXPORTS: FluentDateTime, FluentNone, FluentNumber, FluentType - -;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/types.js -class FluentType { - constructor(value) { - this.value = value; - } - valueOf() { - return this.value; - } -} -class FluentNone extends FluentType { - constructor(value = "???") { - super(value); - } - toString(scope) { - return `{${this.value}}`; - } -} -class FluentNumber extends FluentType { - constructor(value, opts = {}) { - super(value); - this.opts = opts; - } - toString(scope) { - try { - const nf = scope.memoizeIntlObject(Intl.NumberFormat, this.opts); - return nf.format(this.value); - } catch (err) { - scope.reportError(err); - return this.value.toString(10); - } - } -} -class FluentDateTime extends FluentType { - constructor(value, opts = {}) { - super(value); - this.opts = opts; - } - toString(scope) { - try { - const dtf = scope.memoizeIntlObject(Intl.DateTimeFormat, this.opts); - return dtf.format(this.value); - } catch (err) { - scope.reportError(err); - return new Date(this.value).toISOString(); - } - } -} -;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/resolver.js - -const MAX_PLACEABLES = 100; -const FSI = "\u2068"; -const PDI = "\u2069"; -function match(scope, selector, key) { - if (key === selector) { - return true; - } - if (key instanceof FluentNumber && selector instanceof FluentNumber && key.value === selector.value) { - return true; - } - if (selector instanceof FluentNumber && typeof key === "string") { - let category = scope.memoizeIntlObject(Intl.PluralRules, selector.opts).select(selector.value); - if (key === category) { - return true; - } - } - return false; -} -function getDefault(scope, variants, star) { - if (variants[star]) { - return resolvePattern(scope, variants[star].value); - } - scope.reportError(new RangeError("No default")); - return new FluentNone(); -} -function getArguments(scope, args) { - const positional = []; - const named = Object.create(null); - for (const arg of args) { - if (arg.type === "narg") { - named[arg.name] = resolveExpression(scope, arg.value); - } else { - positional.push(resolveExpression(scope, arg)); - } - } - return { - positional, - named - }; -} -function resolveExpression(scope, expr) { - switch (expr.type) { - case "str": - return expr.value; - case "num": - return new FluentNumber(expr.value, { - minimumFractionDigits: expr.precision - }); - case "var": - return resolveVariableReference(scope, expr); - case "mesg": - return resolveMessageReference(scope, expr); - case "term": - return resolveTermReference(scope, expr); - case "func": - return resolveFunctionReference(scope, expr); - case "select": - return resolveSelectExpression(scope, expr); - default: - return new FluentNone(); - } -} -function resolveVariableReference(scope, { - name -}) { - let arg; - if (scope.params) { - if (Object.prototype.hasOwnProperty.call(scope.params, name)) { - arg = scope.params[name]; - } else { - return new FluentNone(`$${name}`); - } - } else if (scope.args && Object.prototype.hasOwnProperty.call(scope.args, name)) { - arg = scope.args[name]; - } else { - scope.reportError(new ReferenceError(`Unknown variable: $${name}`)); - return new FluentNone(`$${name}`); - } - if (arg instanceof FluentType) { - return arg; - } - switch (typeof arg) { - case "string": - return arg; - case "number": - return new FluentNumber(arg); - case "object": - if (arg instanceof Date) { - return new FluentDateTime(arg.getTime()); - } - default: - scope.reportError(new TypeError(`Variable type not supported: $${name}, ${typeof arg}`)); - return new FluentNone(`$${name}`); - } -} -function resolveMessageReference(scope, { - name, - attr -}) { - const message = scope.bundle._messages.get(name); - if (!message) { - scope.reportError(new ReferenceError(`Unknown message: ${name}`)); - return new FluentNone(name); - } - if (attr) { - const attribute = message.attributes[attr]; - if (attribute) { - return resolvePattern(scope, attribute); - } - scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`)); - return new FluentNone(`${name}.${attr}`); - } - if (message.value) { - return resolvePattern(scope, message.value); - } - scope.reportError(new ReferenceError(`No value: ${name}`)); - return new FluentNone(name); -} -function resolveTermReference(scope, { - name, - attr, - args -}) { - const id = `-${name}`; - const term = scope.bundle._terms.get(id); - if (!term) { - scope.reportError(new ReferenceError(`Unknown term: ${id}`)); - return new FluentNone(id); - } - if (attr) { - const attribute = term.attributes[attr]; - if (attribute) { - scope.params = getArguments(scope, args).named; - const resolved = resolvePattern(scope, attribute); - scope.params = null; - return resolved; - } - scope.reportError(new ReferenceError(`Unknown attribute: ${attr}`)); - return new FluentNone(`${id}.${attr}`); - } - scope.params = getArguments(scope, args).named; - const resolved = resolvePattern(scope, term.value); - scope.params = null; - return resolved; -} -function resolveFunctionReference(scope, { - name, - args -}) { - let func = scope.bundle._functions[name]; - if (!func) { - scope.reportError(new ReferenceError(`Unknown function: ${name}()`)); - return new FluentNone(`${name}()`); - } - if (typeof func !== "function") { - scope.reportError(new TypeError(`Function ${name}() is not callable`)); - return new FluentNone(`${name}()`); - } - try { - let resolved = getArguments(scope, args); - return func(resolved.positional, resolved.named); - } catch (err) { - scope.reportError(err); - return new FluentNone(`${name}()`); - } -} -function resolveSelectExpression(scope, { - selector, - variants, - star -}) { - let sel = resolveExpression(scope, selector); - if (sel instanceof FluentNone) { - return getDefault(scope, variants, star); - } - for (const variant of variants) { - const key = resolveExpression(scope, variant.key); - if (match(scope, sel, key)) { - return resolvePattern(scope, variant.value); - } - } - return getDefault(scope, variants, star); -} -function resolveComplexPattern(scope, ptn) { - if (scope.dirty.has(ptn)) { - scope.reportError(new RangeError("Cyclic reference")); - return new FluentNone(); - } - scope.dirty.add(ptn); - const result = []; - const useIsolating = scope.bundle._useIsolating && ptn.length > 1; - for (const elem of ptn) { - if (typeof elem === "string") { - result.push(scope.bundle._transform(elem)); - continue; - } - scope.placeables++; - if (scope.placeables > MAX_PLACEABLES) { - scope.dirty.delete(ptn); - throw new RangeError(`Too many placeables expanded: ${scope.placeables}, ` + `max allowed is ${MAX_PLACEABLES}`); - } - if (useIsolating) { - result.push(FSI); - } - result.push(resolveExpression(scope, elem).toString(scope)); - if (useIsolating) { - result.push(PDI); - } - } - scope.dirty.delete(ptn); - return result.join(""); -} -function resolvePattern(scope, value) { - if (typeof value === "string") { - return scope.bundle._transform(value); - } - return resolveComplexPattern(scope, value); -} -;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/scope.js -class Scope { - constructor(bundle, errors, args) { - this.dirty = new WeakSet(); - this.params = null; - this.placeables = 0; - this.bundle = bundle; - this.errors = errors; - this.args = args; - } - reportError(error) { - if (!this.errors || !(error instanceof Error)) { - throw error; - } - this.errors.push(error); - } - memoizeIntlObject(ctor, opts) { - let cache = this.bundle._intls.get(ctor); - if (!cache) { - cache = {}; - this.bundle._intls.set(ctor, cache); - } - let id = JSON.stringify(opts); - if (!cache[id]) { - cache[id] = new ctor(this.bundle.locales, opts); - } - return cache[id]; - } -} -;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/builtins.js - -function values(opts, allowed) { - const unwrapped = Object.create(null); - for (const [name, opt] of Object.entries(opts)) { - if (allowed.includes(name)) { - unwrapped[name] = opt.valueOf(); - } - } - return unwrapped; -} -const NUMBER_ALLOWED = ["unitDisplay", "currencyDisplay", "useGrouping", "minimumIntegerDigits", "minimumFractionDigits", "maximumFractionDigits", "minimumSignificantDigits", "maximumSignificantDigits"]; -function NUMBER(args, opts) { - let arg = args[0]; - if (arg instanceof FluentNone) { - return new FluentNone(`NUMBER(${arg.valueOf()})`); - } - if (arg instanceof FluentNumber) { - return new FluentNumber(arg.valueOf(), { - ...arg.opts, - ...values(opts, NUMBER_ALLOWED) - }); - } - if (arg instanceof FluentDateTime) { - return new FluentNumber(arg.valueOf(), { - ...values(opts, NUMBER_ALLOWED) - }); - } - throw new TypeError("Invalid argument to NUMBER"); -} -const DATETIME_ALLOWED = ["dateStyle", "timeStyle", "fractionalSecondDigits", "dayPeriod", "hour12", "weekday", "era", "year", "month", "day", "hour", "minute", "second", "timeZoneName"]; -function DATETIME(args, opts) { - let arg = args[0]; - if (arg instanceof FluentNone) { - return new FluentNone(`DATETIME(${arg.valueOf()})`); - } - if (arg instanceof FluentDateTime) { - return new FluentDateTime(arg.valueOf(), { - ...arg.opts, - ...values(opts, DATETIME_ALLOWED) - }); - } - if (arg instanceof FluentNumber) { - return new FluentDateTime(arg.valueOf(), { - ...values(opts, DATETIME_ALLOWED) - }); - } - throw new TypeError("Invalid argument to DATETIME"); -} -;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/memoizer.js -const cache = new Map(); -function getMemoizerForLocale(locales) { - const stringLocale = Array.isArray(locales) ? locales.join(" ") : locales; - let memoizer = cache.get(stringLocale); - if (memoizer === undefined) { - memoizer = new Map(); - cache.set(stringLocale, memoizer); - } - return memoizer; -} -;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/bundle.js - - - - - -class FluentBundle { - constructor(locales, { - functions, - useIsolating = true, - transform = v => v - } = {}) { - this._terms = new Map(); - this._messages = new Map(); - this.locales = Array.isArray(locales) ? locales : [locales]; - this._functions = { - NUMBER: NUMBER, - DATETIME: DATETIME, - ...functions - }; - this._useIsolating = useIsolating; - this._transform = transform; - this._intls = getMemoizerForLocale(locales); - } - hasMessage(id) { - return this._messages.has(id); - } - getMessage(id) { - return this._messages.get(id); - } - addResource(res, { - allowOverrides = false - } = {}) { - const errors = []; - for (let i = 0; i < res.body.length; i++) { - let entry = res.body[i]; - if (entry.id.startsWith("-")) { - if (allowOverrides === false && this._terms.has(entry.id)) { - errors.push(new Error(`Attempt to override an existing term: "${entry.id}"`)); - continue; - } - this._terms.set(entry.id, entry); - } else { - if (allowOverrides === false && this._messages.has(entry.id)) { - errors.push(new Error(`Attempt to override an existing message: "${entry.id}"`)); - continue; - } - this._messages.set(entry.id, entry); - } - } - return errors; - } - formatPattern(pattern, args = null, errors = null) { - if (typeof pattern === "string") { - return this._transform(pattern); - } - let scope = new Scope(this, errors, args); - try { - let value = resolveComplexPattern(scope, pattern); - return value.toString(scope); - } catch (err) { - if (scope.errors && err instanceof Error) { - scope.errors.push(err); - return new FluentNone().toString(scope); - } - throw err; - } - } -} -;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/resource.js -const RE_MESSAGE_START = /^(-?[a-zA-Z][\w-]*) *= */gm; -const RE_ATTRIBUTE_START = /\.([a-zA-Z][\w-]*) *= */y; -const RE_VARIANT_START = /\*?\[/y; -const RE_NUMBER_LITERAL = /(-?[0-9]+(?:\.([0-9]+))?)/y; -const RE_IDENTIFIER = /([a-zA-Z][\w-]*)/y; -const RE_REFERENCE = /([$-])?([a-zA-Z][\w-]*)(?:\.([a-zA-Z][\w-]*))?/y; -const RE_FUNCTION_NAME = /^[A-Z][A-Z0-9_-]*$/; -const RE_TEXT_RUN = /([^{}\n\r]+)/y; -const RE_STRING_RUN = /([^\\"\n\r]*)/y; -const RE_STRING_ESCAPE = /\\([\\"])/y; -const RE_UNICODE_ESCAPE = /\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{6})/y; -const RE_LEADING_NEWLINES = /^\n+/; -const RE_TRAILING_SPACES = / +$/; -const RE_BLANK_LINES = / *\r?\n/g; -const RE_INDENT = /( *)$/; -const TOKEN_BRACE_OPEN = /{\s*/y; -const TOKEN_BRACE_CLOSE = /\s*}/y; -const TOKEN_BRACKET_OPEN = /\[\s*/y; -const TOKEN_BRACKET_CLOSE = /\s*] */y; -const TOKEN_PAREN_OPEN = /\s*\(\s*/y; -const TOKEN_ARROW = /\s*->\s*/y; -const TOKEN_COLON = /\s*:\s*/y; -const TOKEN_COMMA = /\s*,?\s*/y; -const TOKEN_BLANK = /\s+/y; -class FluentResource { - constructor(source) { - this.body = []; - RE_MESSAGE_START.lastIndex = 0; - let cursor = 0; - while (true) { - let next = RE_MESSAGE_START.exec(source); - if (next === null) { - break; - } - cursor = RE_MESSAGE_START.lastIndex; - try { - this.body.push(parseMessage(next[1])); - } catch (err) { - if (err instanceof SyntaxError) { - continue; - } - throw err; - } - } - function test(re) { - re.lastIndex = cursor; - return re.test(source); - } - function consumeChar(char, errorClass) { - if (source[cursor] === char) { - cursor++; - return true; - } - if (errorClass) { - throw new errorClass(`Expected ${char}`); - } - return false; - } - function consumeToken(re, errorClass) { - if (test(re)) { - cursor = re.lastIndex; - return true; - } - if (errorClass) { - throw new errorClass(`Expected ${re.toString()}`); - } - return false; - } - function match(re) { - re.lastIndex = cursor; - let result = re.exec(source); - if (result === null) { - throw new SyntaxError(`Expected ${re.toString()}`); - } - cursor = re.lastIndex; - return result; - } - function match1(re) { - return match(re)[1]; - } - function parseMessage(id) { - let value = parsePattern(); - let attributes = parseAttributes(); - if (value === null && Object.keys(attributes).length === 0) { - throw new SyntaxError("Expected message value or attributes"); - } - return { - id, - value, - attributes - }; - } - function parseAttributes() { - let attrs = Object.create(null); - while (test(RE_ATTRIBUTE_START)) { - let name = match1(RE_ATTRIBUTE_START); - let value = parsePattern(); - if (value === null) { - throw new SyntaxError("Expected attribute value"); - } - attrs[name] = value; - } - return attrs; - } - function parsePattern() { - let first; - if (test(RE_TEXT_RUN)) { - first = match1(RE_TEXT_RUN); - } - if (source[cursor] === "{" || source[cursor] === "}") { - return parsePatternElements(first ? [first] : [], Infinity); - } - let indent = parseIndent(); - if (indent) { - if (first) { - return parsePatternElements([first, indent], indent.length); - } - indent.value = trim(indent.value, RE_LEADING_NEWLINES); - return parsePatternElements([indent], indent.length); - } - if (first) { - return trim(first, RE_TRAILING_SPACES); - } - return null; - } - function parsePatternElements(elements = [], commonIndent) { - while (true) { - if (test(RE_TEXT_RUN)) { - elements.push(match1(RE_TEXT_RUN)); - continue; - } - if (source[cursor] === "{") { - elements.push(parsePlaceable()); - continue; - } - if (source[cursor] === "}") { - throw new SyntaxError("Unbalanced closing brace"); - } - let indent = parseIndent(); - if (indent) { - elements.push(indent); - commonIndent = Math.min(commonIndent, indent.length); - continue; - } - break; - } - let lastIndex = elements.length - 1; - let lastElement = elements[lastIndex]; - if (typeof lastElement === "string") { - elements[lastIndex] = trim(lastElement, RE_TRAILING_SPACES); - } - let baked = []; - for (let element of elements) { - if (element instanceof Indent) { - element = element.value.slice(0, element.value.length - commonIndent); - } - if (element) { - baked.push(element); - } - } - return baked; - } - function parsePlaceable() { - consumeToken(TOKEN_BRACE_OPEN, SyntaxError); - let selector = parseInlineExpression(); - if (consumeToken(TOKEN_BRACE_CLOSE)) { - return selector; - } - if (consumeToken(TOKEN_ARROW)) { - let variants = parseVariants(); - consumeToken(TOKEN_BRACE_CLOSE, SyntaxError); - return { - type: "select", - selector, - ...variants - }; - } - throw new SyntaxError("Unclosed placeable"); - } - function parseInlineExpression() { - if (source[cursor] === "{") { - return parsePlaceable(); - } - if (test(RE_REFERENCE)) { - let [, sigil, name, attr = null] = match(RE_REFERENCE); - if (sigil === "$") { - return { - type: "var", - name - }; - } - if (consumeToken(TOKEN_PAREN_OPEN)) { - let args = parseArguments(); - if (sigil === "-") { - return { - type: "term", - name, - attr, - args - }; - } - if (RE_FUNCTION_NAME.test(name)) { - return { - type: "func", - name, - args - }; - } - throw new SyntaxError("Function names must be all upper-case"); - } - if (sigil === "-") { - return { - type: "term", - name, - attr, - args: [] - }; - } - return { - type: "mesg", - name, - attr - }; - } - return parseLiteral(); - } - function parseArguments() { - let args = []; - while (true) { - switch (source[cursor]) { - case ")": - cursor++; - return args; - case undefined: - throw new SyntaxError("Unclosed argument list"); - } - args.push(parseArgument()); - consumeToken(TOKEN_COMMA); - } - } - function parseArgument() { - let expr = parseInlineExpression(); - if (expr.type !== "mesg") { - return expr; - } - if (consumeToken(TOKEN_COLON)) { - return { - type: "narg", - name: expr.name, - value: parseLiteral() - }; - } - return expr; - } - function parseVariants() { - let variants = []; - let count = 0; - let star; - while (test(RE_VARIANT_START)) { - if (consumeChar("*")) { - star = count; - } - let key = parseVariantKey(); - let value = parsePattern(); - if (value === null) { - throw new SyntaxError("Expected variant value"); - } - variants[count++] = { - key, - value - }; - } - if (count === 0) { - return null; - } - if (star === undefined) { - throw new SyntaxError("Expected default variant"); - } - return { - variants, - star - }; - } - function parseVariantKey() { - consumeToken(TOKEN_BRACKET_OPEN, SyntaxError); - let key; - if (test(RE_NUMBER_LITERAL)) { - key = parseNumberLiteral(); - } else { - key = { - type: "str", - value: match1(RE_IDENTIFIER) - }; - } - consumeToken(TOKEN_BRACKET_CLOSE, SyntaxError); - return key; - } - function parseLiteral() { - if (test(RE_NUMBER_LITERAL)) { - return parseNumberLiteral(); - } - if (source[cursor] === '"') { - return parseStringLiteral(); - } - throw new SyntaxError("Invalid expression"); - } - function parseNumberLiteral() { - let [, value, fraction = ""] = match(RE_NUMBER_LITERAL); - let precision = fraction.length; - return { - type: "num", - value: parseFloat(value), - precision - }; - } - function parseStringLiteral() { - consumeChar('"', SyntaxError); - let value = ""; - while (true) { - value += match1(RE_STRING_RUN); - if (source[cursor] === "\\") { - value += parseEscapeSequence(); - continue; - } - if (consumeChar('"')) { - return { - type: "str", - value - }; - } - throw new SyntaxError("Unclosed string literal"); - } - } - function parseEscapeSequence() { - if (test(RE_STRING_ESCAPE)) { - return match1(RE_STRING_ESCAPE); - } - if (test(RE_UNICODE_ESCAPE)) { - let [, codepoint4, codepoint6] = match(RE_UNICODE_ESCAPE); - let codepoint = parseInt(codepoint4 || codepoint6, 16); - return codepoint <= 0xd7ff || 0xe000 <= codepoint ? String.fromCodePoint(codepoint) : "锟�"; - } - throw new SyntaxError("Unknown escape sequence"); - } - function parseIndent() { - let start = cursor; - consumeToken(TOKEN_BLANK); - switch (source[cursor]) { - case ".": - case "[": - case "*": - case "}": - case undefined: - return false; - case "{": - return makeIndent(source.slice(start, cursor)); - } - if (source[cursor - 1] === " ") { - return makeIndent(source.slice(start, cursor)); - } - return false; - } - function trim(text, re) { - return text.replace(re, ""); - } - function makeIndent(blank) { - let value = blank.replace(RE_BLANK_LINES, "\n"); - let length = RE_INDENT.exec(blank)[1].length; - return new Indent(value, length); - } - } -} -class Indent { - constructor(value, length) { - this.value = value; - this.length = length; - } -} -;// CONCATENATED MODULE: ./node_modules/@fluent/bundle/esm/index.js - - - - -/***/ }), - -/***/ 5273: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - DOMLocalization: () => (/* reexport */ DOMLocalization) -}); - -// UNUSED EXPORTS: Localization - -;// CONCATENATED MODULE: ./node_modules/@fluent/dom/esm/overlay.js -const reOverlay = /<|&#?\w+;/; -const TEXT_LEVEL_ELEMENTS = { - "http://www.w3.org/1999/xhtml": ["em", "strong", "small", "s", "cite", "q", "dfn", "abbr", "data", "time", "code", "var", "samp", "kbd", "sub", "sup", "i", "b", "u", "mark", "bdi", "bdo", "span", "br", "wbr"] -}; -const LOCALIZABLE_ATTRIBUTES = { - "http://www.w3.org/1999/xhtml": { - global: ["title", "aria-label", "aria-valuetext"], - a: ["download"], - area: ["download", "alt"], - input: ["alt", "placeholder"], - menuitem: ["label"], - menu: ["label"], - optgroup: ["label"], - option: ["label"], - track: ["label"], - img: ["alt"], - textarea: ["placeholder"], - th: ["abbr"] - }, - "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul": { - global: ["accesskey", "aria-label", "aria-valuetext", "label", "title", "tooltiptext"], - description: ["value"], - key: ["key", "keycode"], - label: ["value"], - textbox: ["placeholder", "value"] - } -}; -function translateElement(element, translation) { - const { - value - } = translation; - if (typeof value === "string") { - if (element.localName === "title" && element.namespaceURI === "http://www.w3.org/1999/xhtml") { - element.textContent = value; - } else if (!reOverlay.test(value)) { - element.textContent = value; - } else { - const templateElement = element.ownerDocument.createElementNS("http://www.w3.org/1999/xhtml", "template"); - templateElement.innerHTML = value; - overlayChildNodes(templateElement.content, element); - } - } - overlayAttributes(translation, element); -} -function overlayChildNodes(fromFragment, toElement) { - for (const childNode of fromFragment.childNodes) { - if (childNode.nodeType === childNode.TEXT_NODE) { - continue; - } - if (childNode.hasAttribute("data-l10n-name")) { - const sanitized = getNodeForNamedElement(toElement, childNode); - fromFragment.replaceChild(sanitized, childNode); - continue; - } - if (isElementAllowed(childNode)) { - const sanitized = createSanitizedElement(childNode); - fromFragment.replaceChild(sanitized, childNode); - continue; - } - console.warn(`An element of forbidden type "${childNode.localName}" was found in ` + "the translation. Only safe text-level elements and elements with " + "data-l10n-name are allowed."); - fromFragment.replaceChild(createTextNodeFromTextContent(childNode), childNode); - } - toElement.textContent = ""; - toElement.appendChild(fromFragment); -} -function hasAttribute(attributes, name) { - if (!attributes) { - return false; - } - for (let attr of attributes) { - if (attr.name === name) { - return true; - } - } - return false; -} -function overlayAttributes(fromElement, toElement) { - const explicitlyAllowed = toElement.hasAttribute("data-l10n-attrs") ? toElement.getAttribute("data-l10n-attrs").split(",").map(i => i.trim()) : null; - for (const attr of Array.from(toElement.attributes)) { - if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) && !hasAttribute(fromElement.attributes, attr.name)) { - toElement.removeAttribute(attr.name); - } - } - if (!fromElement.attributes) { - return; - } - for (const attr of Array.from(fromElement.attributes)) { - if (isAttrNameLocalizable(attr.name, toElement, explicitlyAllowed) && toElement.getAttribute(attr.name) !== attr.value) { - toElement.setAttribute(attr.name, attr.value); - } - } -} -function getNodeForNamedElement(sourceElement, translatedChild) { - const childName = translatedChild.getAttribute("data-l10n-name"); - const sourceChild = sourceElement.querySelector(`[data-l10n-name="${childName}"]`); - if (!sourceChild) { - console.warn(`An element named "${childName}" wasn't found in the source.`); - return createTextNodeFromTextContent(translatedChild); - } - if (sourceChild.localName !== translatedChild.localName) { - console.warn(`An element named "${childName}" was found in the translation ` + `but its type ${translatedChild.localName} didn't match the ` + `element found in the source (${sourceChild.localName}).`); - return createTextNodeFromTextContent(translatedChild); - } - sourceElement.removeChild(sourceChild); - const clone = sourceChild.cloneNode(false); - return shallowPopulateUsing(translatedChild, clone); -} -function createSanitizedElement(element) { - const clone = element.ownerDocument.createElement(element.localName); - return shallowPopulateUsing(element, clone); -} -function createTextNodeFromTextContent(element) { - return element.ownerDocument.createTextNode(element.textContent); -} -function isElementAllowed(element) { - const allowed = TEXT_LEVEL_ELEMENTS[element.namespaceURI]; - return allowed && allowed.includes(element.localName); -} -function isAttrNameLocalizable(name, element, explicitlyAllowed = null) { - if (explicitlyAllowed && explicitlyAllowed.includes(name)) { - return true; - } - const allowed = LOCALIZABLE_ATTRIBUTES[element.namespaceURI]; - if (!allowed) { - return false; - } - const attrName = name.toLowerCase(); - const elemName = element.localName; - if (allowed.global.includes(attrName)) { - return true; - } - if (!allowed[elemName]) { - return false; - } - if (allowed[elemName].includes(attrName)) { - return true; - } - if (element.namespaceURI === "http://www.w3.org/1999/xhtml" && elemName === "input" && attrName === "value") { - const type = element.type.toLowerCase(); - if (type === "submit" || type === "button" || type === "reset") { - return true; - } - } - return false; -} -function shallowPopulateUsing(fromElement, toElement) { - toElement.textContent = fromElement.textContent; - overlayAttributes(fromElement, toElement); - return toElement; -} -;// CONCATENATED MODULE: ./node_modules/cached-iterable/src/cached_iterable.mjs -class CachedIterable extends Array { - static from(iterable) { - if (iterable instanceof this) { - return iterable; - } - return new this(iterable); - } -} -;// CONCATENATED MODULE: ./node_modules/cached-iterable/src/cached_sync_iterable.mjs - -class CachedSyncIterable extends CachedIterable { - constructor(iterable) { - super(); - if (Symbol.iterator in Object(iterable)) { - this.iterator = iterable[Symbol.iterator](); - } else { - throw new TypeError("Argument must implement the iteration protocol."); - } - } - [Symbol.iterator]() { - const cached = this; - let cur = 0; - return { - next() { - if (cached.length <= cur) { - cached.push(cached.iterator.next()); - } - return cached[cur++]; - } - }; - } - touchNext(count = 1) { - let idx = 0; - while (idx++ < count) { - const last = this[this.length - 1]; - if (last && last.done) { - break; - } - this.push(this.iterator.next()); - } - return this[this.length - 1]; - } -} -;// CONCATENATED MODULE: ./node_modules/cached-iterable/src/cached_async_iterable.mjs - -class CachedAsyncIterable extends CachedIterable { - constructor(iterable) { - super(); - if (Symbol.asyncIterator in Object(iterable)) { - this.iterator = iterable[Symbol.asyncIterator](); - } else if (Symbol.iterator in Object(iterable)) { - this.iterator = iterable[Symbol.iterator](); - } else { - throw new TypeError("Argument must implement the iteration protocol."); - } - } - [Symbol.asyncIterator]() { - const cached = this; - let cur = 0; - return { - async next() { - if (cached.length <= cur) { - cached.push(cached.iterator.next()); - } - return cached[cur++]; - } - }; - } - async touchNext(count = 1) { - let idx = 0; - while (idx++ < count) { - const last = this[this.length - 1]; - if (last && (await last).done) { - break; - } - this.push(this.iterator.next()); - } - return this[this.length - 1]; - } -} -;// CONCATENATED MODULE: ./node_modules/cached-iterable/src/index.mjs - - -;// CONCATENATED MODULE: ./node_modules/@fluent/dom/esm/localization.js - -class Localization { - constructor(resourceIds = [], generateBundles) { - this.resourceIds = resourceIds; - this.generateBundles = generateBundles; - this.onChange(true); - } - addResourceIds(resourceIds, eager = false) { - this.resourceIds.push(...resourceIds); - this.onChange(eager); - return this.resourceIds.length; - } - removeResourceIds(resourceIds) { - this.resourceIds = this.resourceIds.filter(r => !resourceIds.includes(r)); - this.onChange(); - return this.resourceIds.length; - } - async formatWithFallback(keys, method) { - const translations = []; - let hasAtLeastOneBundle = false; - for await (const bundle of this.bundles) { - hasAtLeastOneBundle = true; - const missingIds = keysFromBundle(method, bundle, keys, translations); - if (missingIds.size === 0) { - break; - } - if (typeof console !== "undefined") { - const locale = bundle.locales[0]; - const ids = Array.from(missingIds).join(", "); - console.warn(`[fluent] Missing translations in ${locale}: ${ids}`); - } - } - if (!hasAtLeastOneBundle && typeof console !== "undefined") { - console.warn(`[fluent] Request for keys failed because no resource bundles got generated. - keys: ${JSON.stringify(keys)}. - resourceIds: ${JSON.stringify(this.resourceIds)}.`); - } - return translations; - } - formatMessages(keys) { - return this.formatWithFallback(keys, messageFromBundle); - } - formatValues(keys) { - return this.formatWithFallback(keys, valueFromBundle); - } - async formatValue(id, args) { - const [val] = await this.formatValues([{ - id, - args - }]); - return val; - } - handleEvent() { - this.onChange(); - } - onChange(eager = false) { - this.bundles = CachedAsyncIterable.from(this.generateBundles(this.resourceIds)); - if (eager) { - this.bundles.touchNext(2); - } - } -} -function valueFromBundle(bundle, errors, message, args) { - if (message.value) { - return bundle.formatPattern(message.value, args, errors); - } - return null; -} -function messageFromBundle(bundle, errors, message, args) { - const formatted = { - value: null, - attributes: null - }; - if (message.value) { - formatted.value = bundle.formatPattern(message.value, args, errors); - } - let attrNames = Object.keys(message.attributes); - if (attrNames.length > 0) { - formatted.attributes = new Array(attrNames.length); - for (let [i, name] of attrNames.entries()) { - let value = bundle.formatPattern(message.attributes[name], args, errors); - formatted.attributes[i] = { - name, - value - }; - } - } - return formatted; -} -function keysFromBundle(method, bundle, keys, translations) { - const messageErrors = []; - const missingIds = new Set(); - keys.forEach(({ - id, - args - }, i) => { - if (translations[i] !== undefined) { - return; - } - let message = bundle.getMessage(id); - if (message) { - messageErrors.length = 0; - translations[i] = method(bundle, messageErrors, message, args); - if (messageErrors.length > 0 && typeof console !== "undefined") { - const locale = bundle.locales[0]; - const errors = messageErrors.join(", "); - console.warn(`[fluent][resolver] errors in ${locale}/${id}: ${errors}.`); - } - } else { - missingIds.add(id); - } - }); - return missingIds; -} -;// CONCATENATED MODULE: ./node_modules/@fluent/dom/esm/dom_localization.js - - -const L10NID_ATTR_NAME = "data-l10n-id"; -const L10NARGS_ATTR_NAME = "data-l10n-args"; -const L10N_ELEMENT_QUERY = `[${L10NID_ATTR_NAME}]`; -class DOMLocalization extends Localization { - constructor(resourceIds, generateBundles) { - super(resourceIds, generateBundles); - this.roots = new Set(); - this.pendingrAF = null; - this.pendingElements = new Set(); - this.windowElement = null; - this.mutationObserver = null; - this.observerConfig = { - attributes: true, - characterData: false, - childList: true, - subtree: true, - attributeFilter: [L10NID_ATTR_NAME, L10NARGS_ATTR_NAME] - }; - } - onChange(eager = false) { - super.onChange(eager); - if (this.roots) { - this.translateRoots(); - } - } - setAttributes(element, id, args) { - element.setAttribute(L10NID_ATTR_NAME, id); - if (args) { - element.setAttribute(L10NARGS_ATTR_NAME, JSON.stringify(args)); - } else { - element.removeAttribute(L10NARGS_ATTR_NAME); - } - return element; - } - getAttributes(element) { - return { - id: element.getAttribute(L10NID_ATTR_NAME), - args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null) - }; - } - connectRoot(newRoot) { - for (const root of this.roots) { - if (root === newRoot || root.contains(newRoot) || newRoot.contains(root)) { - throw new Error("Cannot add a root that overlaps with existing root."); - } - } - if (this.windowElement) { - if (this.windowElement !== newRoot.ownerDocument.defaultView) { - throw new Error(`Cannot connect a root: - DOMLocalization already has a root from a different window.`); - } - } else { - this.windowElement = newRoot.ownerDocument.defaultView; - this.mutationObserver = new this.windowElement.MutationObserver(mutations => this.translateMutations(mutations)); - } - this.roots.add(newRoot); - this.mutationObserver.observe(newRoot, this.observerConfig); - } - disconnectRoot(root) { - this.roots.delete(root); - this.pauseObserving(); - if (this.roots.size === 0) { - this.mutationObserver = null; - this.windowElement = null; - this.pendingrAF = null; - this.pendingElements.clear(); - return true; - } - this.resumeObserving(); - return false; - } - translateRoots() { - const roots = Array.from(this.roots); - return Promise.all(roots.map(root => this.translateFragment(root))); - } - pauseObserving() { - if (!this.mutationObserver) { - return; - } - this.translateMutations(this.mutationObserver.takeRecords()); - this.mutationObserver.disconnect(); - } - resumeObserving() { - if (!this.mutationObserver) { - return; - } - for (const root of this.roots) { - this.mutationObserver.observe(root, this.observerConfig); - } - } - translateMutations(mutations) { - for (const mutation of mutations) { - switch (mutation.type) { - case "attributes": - if (mutation.target.hasAttribute("data-l10n-id")) { - this.pendingElements.add(mutation.target); - } - break; - case "childList": - for (const addedNode of mutation.addedNodes) { - if (addedNode.nodeType === addedNode.ELEMENT_NODE) { - if (addedNode.childElementCount) { - for (const element of this.getTranslatables(addedNode)) { - this.pendingElements.add(element); - } - } else if (addedNode.hasAttribute(L10NID_ATTR_NAME)) { - this.pendingElements.add(addedNode); - } - } - } - break; - } - } - if (this.pendingElements.size > 0) { - if (this.pendingrAF === null) { - this.pendingrAF = this.windowElement.requestAnimationFrame(() => { - this.translateElements(Array.from(this.pendingElements)); - this.pendingElements.clear(); - this.pendingrAF = null; - }); - } - } - } - translateFragment(frag) { - return this.translateElements(this.getTranslatables(frag)); - } - async translateElements(elements) { - if (!elements.length) { - return undefined; - } - const keys = elements.map(this.getKeysForElement); - const translations = await this.formatMessages(keys); - return this.applyTranslations(elements, translations); - } - applyTranslations(elements, translations) { - this.pauseObserving(); - for (let i = 0; i < elements.length; i++) { - if (translations[i] !== undefined) { - translateElement(elements[i], translations[i]); - } - } - this.resumeObserving(); - } - getTranslatables(element) { - const nodes = Array.from(element.querySelectorAll(L10N_ELEMENT_QUERY)); - if (typeof element.hasAttribute === "function" && element.hasAttribute(L10NID_ATTR_NAME)) { - nodes.push(element); - } - return nodes; - } - getKeysForElement(element) { - return { - id: element.getAttribute(L10NID_ATTR_NAME), - args: JSON.parse(element.getAttribute(L10NARGS_ATTR_NAME) || null) - }; - } -} -;// CONCATENATED MODULE: ./node_modules/@fluent/dom/esm/index.js - - - -/***/ }), - -/***/ 259: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AltTextManager: () => (/* binding */ AltTextManager) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - -class AltTextManager { - #boundUpdateUIState = this.#updateUIState.bind(this); - #boundSetPosition = this.#setPosition.bind(this); - #boundOnClick = this.#onClick.bind(this); - #currentEditor = null; - #cancelButton; - #dialog; - #eventBus; - #hasUsedPointer = false; - #optionDescription; - #optionDecorative; - #overlayManager; - #saveButton; - #textarea; - #uiManager; - #previousAltText = null; - #svgElement = null; - #rectElement = null; - #container; - #telemetryData = null; - constructor({ - dialog, - optionDescription, - optionDecorative, - textarea, - cancelButton, - saveButton - }, container, overlayManager, eventBus) { - this.#dialog = dialog; - this.#optionDescription = optionDescription; - this.#optionDecorative = optionDecorative; - this.#textarea = textarea; - this.#cancelButton = cancelButton; - this.#saveButton = saveButton; - this.#overlayManager = overlayManager; - this.#eventBus = eventBus; - this.#container = container; - dialog.addEventListener("close", this.#close.bind(this)); - dialog.addEventListener("contextmenu", event => { - if (event.target !== this.#textarea) { - event.preventDefault(); - } - }); - cancelButton.addEventListener("click", this.#finish.bind(this)); - saveButton.addEventListener("click", this.#save.bind(this)); - optionDescription.addEventListener("change", this.#boundUpdateUIState); - optionDecorative.addEventListener("change", this.#boundUpdateUIState); - this.#overlayManager.register(dialog); - } - get _elements() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_elements", [this.#optionDescription, this.#optionDecorative, this.#textarea, this.#saveButton, this.#cancelButton]); - } - #createSVGElement() { - if (this.#svgElement) { - return; - } - const svgFactory = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.DOMSVGFactory(); - const svg = this.#svgElement = svgFactory.createElement("svg"); - svg.setAttribute("width", "0"); - svg.setAttribute("height", "0"); - const defs = svgFactory.createElement("defs"); - svg.append(defs); - const mask = svgFactory.createElement("mask"); - defs.append(mask); - mask.setAttribute("id", "alttext-manager-mask"); - mask.setAttribute("maskContentUnits", "objectBoundingBox"); - let rect = svgFactory.createElement("rect"); - mask.append(rect); - rect.setAttribute("fill", "white"); - rect.setAttribute("width", "1"); - rect.setAttribute("height", "1"); - rect.setAttribute("x", "0"); - rect.setAttribute("y", "0"); - rect = this.#rectElement = svgFactory.createElement("rect"); - mask.append(rect); - rect.setAttribute("fill", "black"); - this.#dialog.append(svg); - } - async editAltText(uiManager, editor) { - if (this.#currentEditor || !editor) { - return; - } - this.#createSVGElement(); - this.#hasUsedPointer = false; - for (const element of this._elements) { - element.addEventListener("click", this.#boundOnClick); - } - const { - altText, - decorative - } = editor.altTextData; - if (decorative === true) { - this.#optionDecorative.checked = true; - this.#optionDescription.checked = false; - } else { - this.#optionDecorative.checked = false; - this.#optionDescription.checked = true; - } - this.#previousAltText = this.#textarea.value = altText?.trim() || ""; - this.#updateUIState(); - this.#currentEditor = editor; - this.#uiManager = uiManager; - this.#uiManager.removeEditListeners(); - this.#eventBus._on("resize", this.#boundSetPosition); - try { - await this.#overlayManager.open(this.#dialog); - this.#setPosition(); - } catch (ex) { - this.#close(); - throw ex; - } - } - #setPosition() { - if (!this.#currentEditor) { - return; - } - const dialog = this.#dialog; - const { - style - } = dialog; - const { - x: containerX, - y: containerY, - width: containerW, - height: containerH - } = this.#container.getBoundingClientRect(); - const { - innerWidth: windowW, - innerHeight: windowH - } = window; - const { - width: dialogW, - height: dialogH - } = dialog.getBoundingClientRect(); - const { - x, - y, - width, - height - } = this.#currentEditor.getClientDimensions(); - const MARGIN = 10; - const isLTR = this.#uiManager.direction === "ltr"; - const xs = Math.max(x, containerX); - const xe = Math.min(x + width, containerX + containerW); - const ys = Math.max(y, containerY); - const ye = Math.min(y + height, containerY + containerH); - this.#rectElement.setAttribute("width", `${(xe - xs) / windowW}`); - this.#rectElement.setAttribute("height", `${(ye - ys) / windowH}`); - this.#rectElement.setAttribute("x", `${xs / windowW}`); - this.#rectElement.setAttribute("y", `${ys / windowH}`); - let left = null; - let top = Math.max(y, 0); - top += Math.min(windowH - (top + dialogH), 0); - if (isLTR) { - if (x + width + MARGIN + dialogW < windowW) { - left = x + width + MARGIN; - } else if (x > dialogW + MARGIN) { - left = x - dialogW - MARGIN; - } - } else if (x > dialogW + MARGIN) { - left = x - dialogW - MARGIN; - } else if (x + width + MARGIN + dialogW < windowW) { - left = x + width + MARGIN; - } - if (left === null) { - top = null; - left = Math.max(x, 0); - left += Math.min(windowW - (left + dialogW), 0); - if (y > dialogH + MARGIN) { - top = y - dialogH - MARGIN; - } else if (y + height + MARGIN + dialogH < windowH) { - top = y + height + MARGIN; - } - } - if (top !== null) { - dialog.classList.add("positioned"); - if (isLTR) { - style.left = `${left}px`; - } else { - style.right = `${windowW - left - dialogW}px`; - } - style.top = `${top}px`; - } else { - dialog.classList.remove("positioned"); - style.left = ""; - style.top = ""; - } - } - #finish() { - if (this.#overlayManager.active === this.#dialog) { - this.#overlayManager.close(this.#dialog); - } - } - #close() { - this.#currentEditor._reportTelemetry(this.#telemetryData || { - action: "alt_text_cancel", - alt_text_keyboard: !this.#hasUsedPointer - }); - this.#telemetryData = null; - this.#removeOnClickListeners(); - this.#uiManager?.addEditListeners(); - this.#eventBus._off("resize", this.#boundSetPosition); - this.#currentEditor.altTextFinish(); - this.#currentEditor = null; - this.#uiManager = null; - } - #updateUIState() { - this.#textarea.disabled = this.#optionDecorative.checked; - } - #save() { - const altText = this.#textarea.value.trim(); - const decorative = this.#optionDecorative.checked; - this.#currentEditor.altTextData = { - altText, - decorative - }; - this.#telemetryData = { - action: "alt_text_save", - alt_text_description: !!altText, - alt_text_edit: !!this.#previousAltText && this.#previousAltText !== altText, - alt_text_decorative: decorative, - alt_text_keyboard: !this.#hasUsedPointer - }; - this.#finish(); - } - #onClick(evt) { - if (evt.detail === 0) { - return; - } - this.#hasUsedPointer = true; - this.#removeOnClickListeners(); - } - #removeOnClickListeners() { - for (const element of this._elements) { - element.removeEventListener("click", this.#boundOnClick); - } - } - destroy() { - this.#uiManager = null; - this.#finish(); - this.#svgElement?.remove(); - this.#svgElement = this.#rectElement = null; - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 283: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AnnotationEditorLayerBuilder: () => (/* binding */ AnnotationEditorLayerBuilder) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -/* harmony import */ var web_null_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(410); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, web_null_l10n__WEBPACK_IMPORTED_MODULE_1__]); -([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, web_null_l10n__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); - - -class AnnotationEditorLayerBuilder { - #annotationLayer = null; - #drawLayer = null; - #onAppend = null; - #textLayer = null; - #uiManager; - constructor(options) { - this.pdfPage = options.pdfPage; - this.accessibilityManager = options.accessibilityManager; - this.l10n = options.l10n; - this.l10n ||= new web_null_l10n__WEBPACK_IMPORTED_MODULE_1__.GenericL10n(); - this.annotationEditorLayer = null; - this.div = null; - this._cancelled = false; - this.#uiManager = options.uiManager; - this.#annotationLayer = options.annotationLayer || null; - this.#textLayer = options.textLayer || null; - this.#drawLayer = options.drawLayer || null; - this.#onAppend = options.onAppend || null; - } - async render(viewport, intent = "display") { - if (intent !== "display") { - return; - } - if (this._cancelled) { - return; - } - const clonedViewport = viewport.clone({ - dontFlip: true - }); - if (this.div) { - this.annotationEditorLayer.update({ - viewport: clonedViewport - }); - this.show(); - return; - } - const div = this.div = document.createElement("div"); - div.className = "annotationEditorLayer"; - div.hidden = true; - div.dir = this.#uiManager.direction; - this.#onAppend?.(div); - this.annotationEditorLayer = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorLayer({ - uiManager: this.#uiManager, - div, - accessibilityManager: this.accessibilityManager, - pageIndex: this.pdfPage.pageNumber - 1, - l10n: this.l10n, - viewport: clonedViewport, - annotationLayer: this.#annotationLayer, - textLayer: this.#textLayer, - drawLayer: this.#drawLayer - }); - const parameters = { - viewport: clonedViewport, - div, - annotations: null, - intent - }; - this.annotationEditorLayer.render(parameters); - this.show(); - } - cancel() { - this._cancelled = true; - if (!this.div) { - return; - } - this.annotationEditorLayer.destroy(); - } - hide() { - if (!this.div) { - return; - } - this.div.hidden = true; - } - show() { - if (!this.div || this.annotationEditorLayer.isInvisible) { - return; - } - this.div.hidden = false; - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 226: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AnnotationEditorParams: () => (/* binding */ AnnotationEditorParams) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - -class AnnotationEditorParams { - constructor(options, eventBus) { - this.eventBus = eventBus; - this.#bindListeners(options); - } - #bindListeners({ - editorFreeTextFontSize, - editorFreeTextColor, - editorInkColor, - editorInkThickness, - editorInkOpacity, - editorStampAddImage, - editorFreeHighlightThickness, - editorHighlightShowAll - }) { - const dispatchEvent = (typeStr, value) => { - this.eventBus.dispatch("switchannotationeditorparams", { - source: this, - type: pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType[typeStr], - value - }); - }; - editorFreeTextFontSize.addEventListener("input", function () { - dispatchEvent("FREETEXT_SIZE", this.valueAsNumber); - }); - editorFreeTextColor.addEventListener("input", function () { - dispatchEvent("FREETEXT_COLOR", this.value); - }); - editorInkColor.addEventListener("input", function () { - dispatchEvent("INK_COLOR", this.value); - }); - editorInkThickness.addEventListener("input", function () { - dispatchEvent("INK_THICKNESS", this.valueAsNumber); - }); - editorInkOpacity.addEventListener("input", function () { - dispatchEvent("INK_OPACITY", this.valueAsNumber); - }); - editorStampAddImage.addEventListener("click", () => { - dispatchEvent("CREATE"); - }); - editorFreeHighlightThickness.addEventListener("input", function () { - dispatchEvent("HIGHLIGHT_THICKNESS", this.valueAsNumber); - }); - editorHighlightShowAll.addEventListener("click", function () { - const checked = this.getAttribute("aria-pressed") === "true"; - this.setAttribute("aria-pressed", !checked); - dispatchEvent("HIGHLIGHT_SHOW_ALL", !checked); - }); - this.eventBus._on("annotationeditorparamschanged", evt => { - for (const [type, value] of evt.details) { - switch (type) { - case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.FREETEXT_SIZE: - editorFreeTextFontSize.value = value; - break; - case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.FREETEXT_COLOR: - editorFreeTextColor.value = value; - break; - case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.INK_COLOR: - editorInkColor.value = value; - break; - case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.INK_THICKNESS: - editorInkThickness.value = value; - break; - case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.INK_OPACITY: - editorInkOpacity.value = value; - break; - case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.HIGHLIGHT_THICKNESS: - editorFreeHighlightThickness.value = value; - break; - case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.HIGHLIGHT_FREE: - editorFreeHighlightThickness.disabled = !value; - break; - case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorParamsType.HIGHLIGHT_SHOW_ALL: - editorHighlightShowAll.setAttribute("aria-pressed", value); - break; - } - } - }); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 2707: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AnnotationLayerBuilder: () => (/* binding */ AnnotationLayerBuilder) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7256); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -class AnnotationLayerBuilder { - #onAppend = null; - #eventAbortController = null; - constructor({ - pdfPage, - linkService, - downloadManager, - annotationStorage = null, - imageResourcesPath = "", - renderForms = true, - enableScripting = false, - hasJSActionsPromise = null, - fieldObjectsPromise = null, - annotationCanvasMap = null, - accessibilityManager = null, - annotationEditorUIManager = null, - onAppend = null - }) { - this.pdfPage = pdfPage; - this.linkService = linkService; - this.downloadManager = downloadManager; - this.imageResourcesPath = imageResourcesPath; - this.renderForms = renderForms; - this.annotationStorage = annotationStorage; - this.enableScripting = enableScripting; - this._hasJSActionsPromise = hasJSActionsPromise || Promise.resolve(false); - this._fieldObjectsPromise = fieldObjectsPromise || Promise.resolve(null); - this._annotationCanvasMap = annotationCanvasMap; - this._accessibilityManager = accessibilityManager; - this._annotationEditorUIManager = annotationEditorUIManager; - this.#onAppend = onAppend; - this.annotationLayer = null; - this.div = null; - this._cancelled = false; - this._eventBus = linkService.eventBus; - } - async render(viewport, intent = "display") { - if (this.div) { - if (this._cancelled || !this.annotationLayer) { - return; - } - this.annotationLayer.update({ - viewport: viewport.clone({ - dontFlip: true - }) - }); - return; - } - const [annotations, hasJSActions, fieldObjects] = await Promise.all([this.pdfPage.getAnnotations({ - intent - }), this._hasJSActionsPromise, this._fieldObjectsPromise]); - if (this._cancelled) { - return; - } - const div = this.div = document.createElement("div"); - div.className = "annotationLayer"; - this.#onAppend?.(div); - window.parent.postMessage({status: 'loaded'}, '*'); - if (annotations.length === 0) { - // [Custom] always turn the annotationLayer on - // this.hide(); - return; - } - this.annotationLayer = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationLayer({ - div, - accessibilityManager: this._accessibilityManager, - annotationCanvasMap: this._annotationCanvasMap, - annotationEditorUIManager: this._annotationEditorUIManager, - page: this.pdfPage, - viewport: viewport.clone({ - dontFlip: true - }) - }); - await this.annotationLayer.render({ - annotations, - imageResourcesPath: this.imageResourcesPath, - renderForms: this.renderForms, - linkService: this.linkService, - downloadManager: this.downloadManager, - annotationStorage: this.annotationStorage, - enableScripting: this.enableScripting, - hasJSActions, - fieldObjects - }); - if (this.linkService.isInPresentationMode) { - this.#updatePresentationModeState(_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.FULLSCREEN); - } - if (!this.#eventAbortController) { - this.#eventAbortController = new AbortController(); - this._eventBus?._on("presentationmodechanged", evt => { - this.#updatePresentationModeState(evt.state); - }, { - signal: this.#eventAbortController.signal - }); - } - // [custom-annotationLayer] - // console.log('test-custom-annotationLayer', window?.PDFViewerApplication?.pdfViewer?._pages?.length) - window?.PDFViewerApplication?.pdfViewer?._pages?.forEach((i,index) => { - window.parent.postMessage({pageNum: index}, '*'); - }) - - } - cancel() { - this._cancelled = true; - this.#eventAbortController?.abort(); - this.#eventAbortController = null; - } - hide() { - if (!this.div) { - return; - } - this.div.hidden = true; - } - #updatePresentationModeState(state) { - if (!this.div) { - return; - } - let disableFormElements = false; - switch (state) { - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.FULLSCREEN: - disableFormElements = true; - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.NORMAL: - break; - default: - return; - } - for (const section of this.div.childNodes) { - if (section.hasAttribute("data-internal-link")) { - continue; - } - section.inert = disableFormElements; - } - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 1621: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFViewerApplication: () => (/* binding */ PDFViewerApplication) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2603); -/* harmony import */ var _app_options_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9840); -/* harmony import */ var _event_utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5656); -/* harmony import */ var web_external_services__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6750); -/* harmony import */ var _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(787); -/* harmony import */ var web_alt_text_manager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(259); -/* harmony import */ var web_annotation_editor_params__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(226); -/* harmony import */ var _caret_browsing_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(3973); -/* harmony import */ var web_download_manager__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(1544); -/* harmony import */ var _overlay_manager_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(6174); -/* harmony import */ var _password_prompt_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2690); -/* harmony import */ var web_pdf_attachment_viewer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(9251); -/* harmony import */ var web_pdf_cursor_tools__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(5993); -/* harmony import */ var web_pdf_document_properties__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(164); -/* harmony import */ var web_pdf_find_bar__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(2226); -/* harmony import */ var _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(9814); -/* harmony import */ var _pdf_history_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(8543); -/* harmony import */ var web_pdf_layer_viewer__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(4275); -/* harmony import */ var web_pdf_outline_viewer__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(5514); -/* harmony import */ var web_pdf_presentation_mode__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(8917); -/* harmony import */ var web_print_service__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(1144); -/* harmony import */ var _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(6615); -/* harmony import */ var _pdf_scripting_manager_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(5942); -/* harmony import */ var web_pdf_sidebar__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(2275); -/* harmony import */ var web_pdf_thumbnail_viewer__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(8280); -/* harmony import */ var _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(6285); -/* harmony import */ var web_secondary_toolbar__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(1900); -/* harmony import */ var web_toolbar__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(6297); -/* harmony import */ var _view_history_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(9226); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__, web_external_services__WEBPACK_IMPORTED_MODULE_4__, web_alt_text_manager__WEBPACK_IMPORTED_MODULE_6__, web_annotation_editor_params__WEBPACK_IMPORTED_MODULE_7__, web_download_manager__WEBPACK_IMPORTED_MODULE_8__, _password_prompt_js__WEBPACK_IMPORTED_MODULE_9__, web_pdf_attachment_viewer__WEBPACK_IMPORTED_MODULE_10__, web_pdf_cursor_tools__WEBPACK_IMPORTED_MODULE_11__, web_pdf_document_properties__WEBPACK_IMPORTED_MODULE_12__, web_pdf_presentation_mode__WEBPACK_IMPORTED_MODULE_18__, web_print_service__WEBPACK_IMPORTED_MODULE_19__, _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_20__, _pdf_scripting_manager_js__WEBPACK_IMPORTED_MODULE_21__, web_pdf_thumbnail_viewer__WEBPACK_IMPORTED_MODULE_23__, _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_24__, web_secondary_toolbar__WEBPACK_IMPORTED_MODULE_25__, web_toolbar__WEBPACK_IMPORTED_MODULE_26__]); -([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__, web_external_services__WEBPACK_IMPORTED_MODULE_4__, web_alt_text_manager__WEBPACK_IMPORTED_MODULE_6__, web_annotation_editor_params__WEBPACK_IMPORTED_MODULE_7__, web_download_manager__WEBPACK_IMPORTED_MODULE_8__, _password_prompt_js__WEBPACK_IMPORTED_MODULE_9__, web_pdf_attachment_viewer__WEBPACK_IMPORTED_MODULE_10__, web_pdf_cursor_tools__WEBPACK_IMPORTED_MODULE_11__, web_pdf_document_properties__WEBPACK_IMPORTED_MODULE_12__, web_pdf_presentation_mode__WEBPACK_IMPORTED_MODULE_18__, web_print_service__WEBPACK_IMPORTED_MODULE_19__, _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_20__, _pdf_scripting_manager_js__WEBPACK_IMPORTED_MODULE_21__, web_pdf_thumbnail_viewer__WEBPACK_IMPORTED_MODULE_23__, _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_24__, web_secondary_toolbar__WEBPACK_IMPORTED_MODULE_25__, web_toolbar__WEBPACK_IMPORTED_MODULE_26__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -const FORCE_PAGES_LOADED_TIMEOUT = 10000; -const WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; -const ViewOnLoad = { - UNKNOWN: -1, - PREVIOUS: 0, - INITIAL: 1 -}; - -const PDFViewerApplication = { - initialBookmark: document.location.hash.substring(1), - _initializedCapability: { - ...Promise.withResolvers(), - settled: false - }, - appConfig: null, - pdfDocument: null, - pdfLoadingTask: null, - printService: null, - pdfViewer: null, - pdfThumbnailViewer: null, - pdfRenderingQueue: null, - pdfPresentationMode: null, - pdfDocumentProperties: null, - pdfLinkService: null, - pdfHistory: null, - pdfSidebar: null, - pdfOutlineViewer: null, - pdfAttachmentViewer: null, - pdfLayerViewer: null, - pdfCursorTools: null, - pdfScriptingManager: null, - store: null, - downloadManager: null, - overlayManager: null, - preferences: null, - toolbar: null, - secondaryToolbar: null, - eventBus: null, - l10n: null, - annotationEditorParams: null, - isInitialViewSet: false, - downloadComplete: false, - isViewerEmbedded: window.parent !== window, - url: "", - baseUrl: "", - _downloadUrl: "", - _eventBusAbortController: null, - _windowAbortController: null, - documentInfo: null, - metadata: null, - _contentDispositionFilename: null, - _contentLength: null, - _saveInProgress: false, - _wheelUnusedTicks: 0, - _wheelUnusedFactor: 1, - _touchUnusedTicks: 0, - _touchUnusedFactor: 1, - _PDFBug: null, - _hasAnnotationEditors: false, - _title: document.title, - _printAnnotationStoragePromise: null, - _touchInfo: null, - _isCtrlKeyDown: false, - _nimbusDataPromise: null, - _caretBrowsing: null, - _isScrolling: false, - async initialize(appConfig) { - let l10nPromise; - this.appConfig = appConfig; - try { - await this.preferences.initializedPromise; - } catch (ex) { - console.error(`initialize: "${ex.message}".`); - } - if (_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("pdfBugEnabled")) { - await this._parseHashParams(); - } - let mode; - switch (_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("viewerCssTheme")) { - case 1: - mode = "is-light"; - break; - case 2: - mode = "is-dark"; - break; - } - if (mode) { - document.documentElement.classList.add(mode); - } - l10nPromise = this.externalServices.createL10n(); - this.l10n = await l10nPromise; - document.getElementsByTagName("html")[0].dir = this.l10n.getDirection(); - this.l10n.translate(appConfig.appContainer || document.documentElement); - if (this.isViewerEmbedded && _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("externalLinkTarget") === _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_5__.LinkTarget.NONE) { - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("externalLinkTarget", _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_5__.LinkTarget.TOP); - } - - await this._initializeViewerComponents(); - this.bindEvents(); - this.bindWindowEvents(); - this._initializedCapability.settled = true; - this._initializedCapability.resolve(); - }, - async _parseHashParams() { - const hash = document.location.hash.substring(1); - if (!hash) { - return; - } - const { - mainContainer, - viewerContainer - } = this.appConfig, - params = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(hash); - if (params.get("disableworker") === "true") { - try { - await loadFakeWorker(); - } catch (ex) { - console.error(`_parseHashParams: "${ex.message}".`); - } - } - if (params.has("disablerange")) { - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableRange", params.get("disablerange") === "true"); - } - if (params.has("disablestream")) { - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableStream", params.get("disablestream") === "true"); - } - if (params.has("disableautofetch")) { - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableAutoFetch", params.get("disableautofetch") === "true"); - } - if (params.has("disablefontface")) { - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableFontFace", params.get("disablefontface") === "true"); - } - if (params.has("disablehistory")) { - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableHistory", params.get("disablehistory") === "true"); - } - if (params.has("verbosity")) { - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("verbosity", params.get("verbosity") | 0); - } - if (params.has("textlayer")) { - switch (params.get("textlayer")) { - case "off": - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("textLayerMode", _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.TextLayerMode.DISABLE); - break; - case "visible": - case "shadow": - case "hover": - viewerContainer.classList.add(`textLayer-${params.get("textlayer")}`); - try { - await loadPDFBug(this); - this._PDFBug.loadCSS(); - } catch (ex) { - console.error(`_parseHashParams: "${ex.message}".`); - } - break; - } - } - if (params.has("pdfbug")) { - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("pdfBug", true); - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("fontExtraProperties", true); - const enabled = params.get("pdfbug").split(","); - try { - await loadPDFBug(this); - this._PDFBug.init(mainContainer, enabled); - } catch (ex) { - console.error(`_parseHashParams: "${ex.message}".`); - } - } - if (params.has("locale")) { - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("locale", params.get("locale")); - } - }, - async _initializeViewerComponents() { - const { - appConfig, - externalServices, - l10n - } = this; - const eventBus = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("isInAutomation") ? new _event_utils_js__WEBPACK_IMPORTED_MODULE_3__.AutomationEventBus() : new _event_utils_js__WEBPACK_IMPORTED_MODULE_3__.EventBus(); - this.eventBus = eventBus; - this.overlayManager = new _overlay_manager_js__WEBPACK_IMPORTED_MODULE_27__.OverlayManager(); - const pdfRenderingQueue = new _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_20__.PDFRenderingQueue(); - pdfRenderingQueue.onIdle = this._cleanup.bind(this); - this.pdfRenderingQueue = pdfRenderingQueue; - const pdfLinkService = new _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_5__.PDFLinkService({ - eventBus, - externalLinkTarget: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("externalLinkTarget"), - externalLinkRel: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("externalLinkRel"), - ignoreDestinationZoom: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("ignoreDestinationZoom") - }); - this.pdfLinkService = pdfLinkService; - const downloadManager = this.downloadManager = new web_download_manager__WEBPACK_IMPORTED_MODULE_8__.DownloadManager(); - const findController = new _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_14__.PDFFindController({ - linkService: pdfLinkService, - eventBus, - updateMatchesCountOnProgress: true - }); - this.findController = findController; - const pdfScriptingManager = new _pdf_scripting_manager_js__WEBPACK_IMPORTED_MODULE_21__.PDFScriptingManager({ - eventBus, - externalServices, - docProperties: this._scriptingDocProperties.bind(this) - }); - this.pdfScriptingManager = pdfScriptingManager; - - const container = appConfig.mainContainer, - viewer = appConfig.viewerContainer; - const annotationEditorMode = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("annotationEditorMode"); - const pageColors = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("forcePageColors") || window.matchMedia("(forced-colors: active)").matches ? { - background: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("pageColorsBackground"), - foreground: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("pageColorsForeground") - } : null; - const altTextManager = appConfig.altTextDialog ? new web_alt_text_manager__WEBPACK_IMPORTED_MODULE_6__.AltTextManager(appConfig.altTextDialog, container, this.overlayManager, eventBus) : null; - // pdf的dom初始化配置的在这里 - - const pdfViewer = new _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_24__.PDFViewer({ - container, - viewer, - eventBus, - renderingQueue: pdfRenderingQueue, - linkService: pdfLinkService, - downloadManager, - altTextManager, - findController, - scriptingManager: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enableScripting") && pdfScriptingManager, - l10n, - textLayerMode: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("textLayerMode"), - annotationMode: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("annotationMode"), - annotationEditorMode, - annotationEditorHighlightColors: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("highlightEditorColors"), - enableHighlightFloatingButton: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enableHighlightFloatingButton"), - imageResourcesPath: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("imageResourcesPath"), - enablePrintAutoRotate: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enablePrintAutoRotate"), - maxCanvasPixels: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("maxCanvasPixels"), - enablePermissions: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enablePermissions"), - pageColors, - mlManager: this.mlManager - }); - this.pdfViewer = pdfViewer; - pdfRenderingQueue.setViewer(pdfViewer); - pdfLinkService.setViewer(pdfViewer); - pdfScriptingManager.setViewer(pdfViewer); - if (appConfig.sidebar?.thumbnailView) { - this.pdfThumbnailViewer = new web_pdf_thumbnail_viewer__WEBPACK_IMPORTED_MODULE_23__.PDFThumbnailViewer({ - container: appConfig.sidebar.thumbnailView, - eventBus, - renderingQueue: pdfRenderingQueue, - linkService: pdfLinkService, - pageColors - }); - pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); - } - if (!this.isViewerEmbedded && !_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("disableHistory")) { - this.pdfHistory = new _pdf_history_js__WEBPACK_IMPORTED_MODULE_15__.PDFHistory({ - linkService: pdfLinkService, - eventBus - }); - pdfLinkService.setHistory(this.pdfHistory); - } - if (!this.supportsIntegratedFind && appConfig.findBar) { - this.findBar = new web_pdf_find_bar__WEBPACK_IMPORTED_MODULE_13__.PDFFindBar(appConfig.findBar, eventBus); - } - - if (appConfig.annotationEditorParams) { - if (annotationEditorMode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.AnnotationEditorType.DISABLE) { - if (_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enableStampEditor")) { - // 需要隐藏添加hidden即可 - appConfig.toolbar?.editorStampButton?.classList.remove("hidden"); - } - const editorHighlightButton = appConfig.toolbar?.editorHighlightButton; - if (editorHighlightButton && _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enableHighlightEditor")) { - editorHighlightButton.hidden = false; - } - this.annotationEditorParams = new web_annotation_editor_params__WEBPACK_IMPORTED_MODULE_7__.AnnotationEditorParams(appConfig.annotationEditorParams, eventBus); - } else { - for (const id of ["editorModeButtons", "editorModeSeparator"]) { - document.getElementById(id)?.classList.add("hidden"); - } - } - } - if (appConfig.documentProperties) { - // [custom] 初始化的时候给odl-dom添加title - this.pdfDocumentProperties = new web_pdf_document_properties__WEBPACK_IMPORTED_MODULE_12__.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, l10n, () => this._docFilename); - } - if (appConfig.secondaryToolbar?.cursorHandToolButton) { - this.pdfCursorTools = new web_pdf_cursor_tools__WEBPACK_IMPORTED_MODULE_11__.PDFCursorTools({ - container, - eventBus, - cursorToolOnLoad: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("cursorToolOnLoad") - }); - } - if (appConfig.toolbar) { - this.toolbar = new web_toolbar__WEBPACK_IMPORTED_MODULE_26__.Toolbar(appConfig.toolbar, eventBus); - } - if (appConfig.secondaryToolbar) { - this.secondaryToolbar = new web_secondary_toolbar__WEBPACK_IMPORTED_MODULE_25__.SecondaryToolbar(appConfig.secondaryToolbar, eventBus); - } - if (this.supportsFullscreen && appConfig.secondaryToolbar?.presentationModeButton) { - this.pdfPresentationMode = new web_pdf_presentation_mode__WEBPACK_IMPORTED_MODULE_18__.PDFPresentationMode({ - container, - pdfViewer, - eventBus - }); - } - if (appConfig.passwordOverlay) { - this.passwordPrompt = new _password_prompt_js__WEBPACK_IMPORTED_MODULE_9__.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.isViewerEmbedded); - } - // console.log('test-appConfig.sidebar', appConfig.sidebar) - if (appConfig.sidebar?.outlineView) { - this.pdfOutlineViewer = new web_pdf_outline_viewer__WEBPACK_IMPORTED_MODULE_17__.PDFOutlineViewer({ - container: appConfig.sidebar.outlineView, - eventBus, - l10n, - linkService: pdfLinkService, - downloadManager - }); - } - if (appConfig.sidebar?.attachmentsView) { - this.pdfAttachmentViewer = new web_pdf_attachment_viewer__WEBPACK_IMPORTED_MODULE_10__.PDFAttachmentViewer({ - container: appConfig.sidebar.attachmentsView, - eventBus, - l10n, - downloadManager - }); - } - if (appConfig.sidebar?.layersView) { - this.pdfLayerViewer = new web_pdf_layer_viewer__WEBPACK_IMPORTED_MODULE_16__.PDFLayerViewer({ - container: appConfig.sidebar.layersView, - eventBus, - l10n - }); - } - if (appConfig.sidebar) { - this.pdfSidebar = new web_pdf_sidebar__WEBPACK_IMPORTED_MODULE_22__.PDFSidebar({ - elements: appConfig.sidebar, - eventBus, - l10n - }); - this.pdfSidebar.onToggled = this.forceRendering.bind(this); - this.pdfSidebar.onUpdateThumbnails = () => { - for (const pageView of pdfViewer.getCachedPageViews()) { - if (pageView.renderingState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED) { - this.pdfThumbnailViewer.getThumbnail(pageView.id - 1)?.setImage(pageView); - } - } - this.pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); - }; - } - }, - async run(config) { - this.preferences = new web_external_services__WEBPACK_IMPORTED_MODULE_4__.Preferences(); - - await this.initialize(config); - const { - appConfig, - eventBus - } = this; - let file; - const queryString = document.location.search.substring(1); - const params = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(queryString); - // TODO这里添加url - file = params.get("file") ?? _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("defaultUrl"); - validateFileURL(file); - const fileInput = this._openFileInput = document.createElement("input"); - fileInput.id = "fileInput"; - fileInput.hidden = true; - fileInput.type = "file"; - fileInput.value = null; - document.body.append(fileInput); - fileInput.addEventListener("change", function (evt) { - const { - files - } = evt.target; - if (!files || files.length === 0) { - return; - } - console.log('test-file-open',files) - eventBus.dispatch("fileinputchange", { - source: this, - fileInput: evt.target - }); - }); - - appConfig.mainContainer.addEventListener("dragover", function (evt) { - evt.preventDefault(); - evt.dataTransfer.dropEffect = evt.dataTransfer.effectAllowed === "copy" ? "copy" : "move"; - }); - appConfig.mainContainer.addEventListener("drop", function (evt) { - evt.preventDefault(); - const { - files - } = evt.dataTransfer; - if (!files || files.length === 0) { - return; - } - eventBus.dispatch("fileinputchange", { - source: this, - fileInput: evt.dataTransfer - }); - }); - if (!_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsDocumentFonts")) { - _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.set("disableFontFace", true); - this.l10n.get("pdfjs-web-fonts-disabled").then(msg => { - console.warn(msg); - }); - } - if (!this.supportsPrinting) { - appConfig.toolbar?.print?.classList.add("hidden"); - appConfig.secondaryToolbar?.printButton.classList.add("hidden"); - } - if (!this.supportsFullscreen) { - appConfig.secondaryToolbar?.presentationModeButton.classList.add("hidden"); - } - if (this.supportsIntegratedFind) { - appConfig.toolbar?.viewFind?.classList.add("hidden"); - } - if (file) { - this.open({ - url: file - }); - } else { - this._hideViewBookmark(); - } - }, - get externalServices() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "externalServices", new web_external_services__WEBPACK_IMPORTED_MODULE_4__.ExternalServices()); - }, - get mlManager() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "mlManager", _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("enableML") === true ? new web_external_services__WEBPACK_IMPORTED_MODULE_4__.MLManager() : null); - }, - get initialized() { - return this._initializedCapability.settled; - }, - get initializedPromise() { - return this._initializedCapability.promise; - }, - zoomIn(steps, scaleFactor) { - if (this.pdfViewer.isInPresentationMode) { - return; - } - this.pdfViewer.increaseScale({ - drawingDelay: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("defaultZoomDelay"), - steps, - scaleFactor - }); - }, - zoomOut(steps, scaleFactor) { - if (this.pdfViewer.isInPresentationMode) { - return; - } - this.pdfViewer.decreaseScale({ - drawingDelay: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("defaultZoomDelay"), - steps, - scaleFactor - }); - }, - zoomReset() { - if (this.pdfViewer.isInPresentationMode) { - return; - } - this.pdfViewer.currentScaleValue = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SCALE_VALUE; - }, - get pagesCount() { - return this.pdfDocument ? this.pdfDocument.numPages : 0; - }, - get page() { - return this.pdfViewer.currentPageNumber; - }, - set page(val) { - this.pdfViewer.currentPageNumber = val; - }, - get supportsPrinting() { - return web_print_service__WEBPACK_IMPORTED_MODULE_19__.PDFPrintServiceFactory.supportsPrinting; - }, - get supportsFullscreen() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "supportsFullscreen", document.fullscreenEnabled); - }, - get supportsPinchToZoom() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "supportsPinchToZoom", _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsPinchToZoom")); - }, - get supportsIntegratedFind() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "supportsIntegratedFind", _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsIntegratedFind")); - }, - get loadingBar() { - const barElement = document.getElementById("loadingBar"); - const bar = barElement ? new _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ProgressBar(barElement) : null; - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "loadingBar", bar); - }, - get supportsMouseWheelZoomCtrlKey() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "supportsMouseWheelZoomCtrlKey", _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsMouseWheelZoomCtrlKey")); - }, - get supportsMouseWheelZoomMetaKey() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "supportsMouseWheelZoomMetaKey", _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsMouseWheelZoomMetaKey")); - }, - get supportsCaretBrowsingMode() { - return _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("supportsCaretBrowsingMode"); - }, - moveCaret(isUp, select) { - this._caretBrowsing ||= new _caret_browsing_js__WEBPACK_IMPORTED_MODULE_28__.CaretBrowsingMode(this.appConfig.mainContainer, this.appConfig.viewerContainer, this.appConfig.toolbar?.container); - this._caretBrowsing.moveCaret(isUp, select); - }, - setTitleUsingUrl(url = "", downloadUrl = null) { - this.url = url; - this.baseUrl = url.split("#", 1)[0]; - if (downloadUrl) { - this._downloadUrl = downloadUrl === url ? this.baseUrl : downloadUrl.split("#", 1)[0]; - } - if ((0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.isDataScheme)(url)) { - this._hideViewBookmark(); - } - let title = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.getPdfFilenameFromUrl)(url, ""); - if (!title) { - try { - title = decodeURIComponent((0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.getFilenameFromUrl)(url)) || url; - } catch { - title = url; - } - } - this.setTitle(title); - }, - setTitle(title = this._title) { - this._title = title; - if (this.isViewerEmbedded) { - return; - } - const editorIndicator = this._hasAnnotationEditors && !this.pdfRenderingQueue.printing; - document.title = `${editorIndicator ? "* " : ""}${title}`; - }, - get _docFilename() { - return this._contentDispositionFilename || (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.getPdfFilenameFromUrl)(this.url); - }, - _hideViewBookmark() { - const { - secondaryToolbar - } = this.appConfig; - secondaryToolbar?.viewBookmarkButton.classList.add("hidden"); - if (secondaryToolbar?.presentationModeButton.classList.contains("hidden")) { - document.getElementById("viewBookmarkSeparator")?.classList.add("hidden"); - } - }, - async close() { - this._unblockDocumentLoadEvent(); - this._hideViewBookmark(); - if (!this.pdfLoadingTask) { - return; - } - if (this.pdfDocument?.annotationStorage.size > 0 && this._annotationStorageModified) { - try { - await this.save(); - } catch {} - } - const promises = []; - promises.push(this.pdfLoadingTask.destroy()); - this.pdfLoadingTask = null; - if (this.pdfDocument) { - this.pdfDocument = null; - this.pdfThumbnailViewer?.setDocument(null); - this.pdfViewer.setDocument(null); - this.pdfLinkService.setDocument(null); - this.pdfDocumentProperties?.setDocument(null); - } - this.pdfLinkService.externalLinkEnabled = true; - this.store = null; - this.isInitialViewSet = false; - this.downloadComplete = false; - this.url = ""; - this.baseUrl = ""; - this._downloadUrl = ""; - this.documentInfo = null; - this.metadata = null; - this._contentDispositionFilename = null; - this._contentLength = null; - this._saveInProgress = false; - this._hasAnnotationEditors = false; - promises.push(this.pdfScriptingManager.destroyPromise, this.passwordPrompt.close()); - this.setTitle(); - this.pdfSidebar?.reset(); - this.pdfOutlineViewer?.reset(); - this.pdfAttachmentViewer?.reset(); - this.pdfLayerViewer?.reset(); - this.pdfHistory?.reset(); - this.findBar?.reset(); - this.toolbar?.reset(); - this.secondaryToolbar?.reset(); - this._PDFBug?.cleanup(); - await Promise.all(promises); - }, - async open(args) { - // TIP: 打开pdf并且进行解析的逻辑 - if (this.pdfLoadingTask) { - await this.close(); - } - // console.log('test-pdf', this) - - const workerParams = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.getAll(_app_options_js__WEBPACK_IMPORTED_MODULE_2__.OptionKind.WORKER); - Object.assign(pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.GlobalWorkerOptions, workerParams); - if (args.url) { - this.setTitleUsingUrl(args.originalUrl || args.url, args.url); - } - const apiParams = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.getAll(_app_options_js__WEBPACK_IMPORTED_MODULE_2__.OptionKind.API); - const loadingTask = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.getDocument)({ - ...apiParams, - ...args - }); - this.pdfLoadingTask = loadingTask; - loadingTask.onPassword = (updateCallback, reason) => { - if (this.isViewerEmbedded) { - this._unblockDocumentLoadEvent(); - } - this.pdfLinkService.externalLinkEnabled = false; - this.passwordPrompt.setUpdateCallback(updateCallback, reason); - this.passwordPrompt.open(); - }; - loadingTask.onProgress = ({ - loaded, - total - }) => { - this.progress(loaded / total); - }; - - return loadingTask.promise.then(pdfDocument => { - // [Custom] desc: aƒdd loaded listen - // console.log('test-loaded') - this.load(pdfDocument); - }, reason => { - if (loadingTask !== this.pdfLoadingTask) { - return undefined; - } - let key = "pdfjs-loading-error"; - if (reason instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.InvalidPDFException) { - key = "pdfjs-invalid-file-error"; - } else if (reason instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.MissingPDFException) { - key = "pdfjs-missing-file-error"; - } else if (reason instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.UnexpectedResponseException) { - key = "pdfjs-unexpected-response-error"; - } - return this._documentError(key, { - message: reason.message - }).then(() => { - throw reason; - }); - }); - }, - _ensureDownloadComplete() { - if (this.pdfDocument && this.downloadComplete) { - return; - } - throw new Error("PDF document not downloaded."); - }, - async download(options = {}) { - const url = this._downloadUrl, - filename = this._docFilename; - try { - this._ensureDownloadComplete(); - const data = await this.pdfDocument.getData(); - const blob = new Blob([data], { - type: "application/pdf" - }); - await this.downloadManager.download(blob, url, filename, options); - } catch { - await this.downloadManager.downloadUrl(url, filename, options); - } - }, - async save(options = {}) { - if (this._saveInProgress) { - return; - } - this._saveInProgress = true; - await this.pdfScriptingManager.dispatchWillSave(); - const url = this._downloadUrl, - filename = this._docFilename; - try { - this._ensureDownloadComplete(); - const data = await this.pdfDocument.saveDocument(); - const blob = new Blob([data], { - type: "application/pdf" - }); - await this.downloadManager.download(blob, url, filename, options); - } catch (reason) { - console.error(`Error when saving the document: ${reason.message}`); - await this.download(options); - } finally { - await this.pdfScriptingManager.dispatchDidSave(); - this._saveInProgress = false; - } - if (this._hasAnnotationEditors) { - this.externalServices.reportTelemetry({ - type: "editing", - data: { - type: "save", - stats: this.pdfDocument?.annotationStorage.editorStats - } - }); - } - }, - downloadOrSave(options = {}) { - if (this.pdfDocument?.annotationStorage.size > 0) { - this.save(options); - } else { - this.download(options); - } - }, - async _documentError(key, moreInfo = null) { - this._unblockDocumentLoadEvent(); - const message = await this._otherError(key || "pdfjs-loading-error", moreInfo); - this.eventBus.dispatch("documenterror", { - source: this, - message, - reason: moreInfo?.message ?? null - }); - }, - async _otherError(key, moreInfo = null) { - const message = await this.l10n.get(key); - const moreInfoText = [`PDF.js v${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.version || "?"} (build: ${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.build || "?"})`]; - if (moreInfo) { - moreInfoText.push(`Message: ${moreInfo.message}`); - if (moreInfo.stack) { - moreInfoText.push(`Stack: ${moreInfo.stack}`); - } else { - if (moreInfo.filename) { - moreInfoText.push(`File: ${moreInfo.filename}`); - } - if (moreInfo.lineNumber) { - moreInfoText.push(`Line: ${moreInfo.lineNumber}`); - } - } - } - console.error(`${message}\n\n${moreInfoText.join("\n")}`); - return message; - }, - progress(level) { - if (!this.loadingBar || this.downloadComplete) { - return; - } - const percent = Math.round(level * 100); - if (percent <= this.loadingBar.percent) { - return; - } - this.loadingBar.percent = percent; - if (this.pdfDocument?.loadingParams.disableAutoFetch ?? _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("disableAutoFetch")) { - this.loadingBar.setDisableAutoFetch(); - } - }, - load(pdfDocument) { - this.pdfDocument = pdfDocument; - pdfDocument.getDownloadInfo().then(({ - length - }) => { - this._contentLength = length; - this.downloadComplete = true; - this.loadingBar?.hide(); - firstPagePromise.then(() => { - this.eventBus.dispatch("documentloaded", { - source: this - }); - }); - }); - const pageLayoutPromise = pdfDocument.getPageLayout().catch(() => {}); - const pageModePromise = pdfDocument.getPageMode().catch(() => {}); - const openActionPromise = pdfDocument.getOpenAction().catch(() => {}); - this.toolbar?.setPagesCount(pdfDocument.numPages, false); - this.secondaryToolbar?.setPagesCount(pdfDocument.numPages); - this.pdfLinkService.setDocument(pdfDocument); - this.pdfDocumentProperties?.setDocument(pdfDocument); - const pdfViewer = this.pdfViewer; - pdfViewer.setDocument(pdfDocument); - const { - firstPagePromise, - onePageRendered, - pagesPromise - } = pdfViewer; - this.pdfThumbnailViewer?.setDocument(pdfDocument); - const storedPromise = (this.store = new _view_history_js__WEBPACK_IMPORTED_MODULE_29__.ViewHistory(pdfDocument.fingerprints[0])).getMultiple({ - page: null, - zoom: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SCALE_VALUE, - scrollLeft: "0", - scrollTop: "0", - rotation: null, - sidebarView: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.UNKNOWN, - scrollMode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.UNKNOWN, - spreadMode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.UNKNOWN - }).catch(() => {}); - firstPagePromise.then(pdfPage => { - this.loadingBar?.setWidth(this.appConfig.viewerContainer); - this._initializeAnnotationStorageCallbacks(pdfDocument); - Promise.all([_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then(async ([timeStamp, stored, pageLayout, pageMode, openAction]) => { - const viewOnLoad = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("viewOnLoad"); - this._initializePdfHistory({ - fingerprint: pdfDocument.fingerprints[0], - viewOnLoad, - initialDest: openAction?.dest - }); - const initialBookmark = this.initialBookmark; - const zoom = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("defaultZoomValue"); - let hash = zoom ? `zoom=${zoom}` : null; - let rotation = null; - let sidebarView = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("sidebarViewOnLoad"); - let scrollMode = 3 || _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("scrollModeOnLoad"); - let spreadMode = _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("spreadModeOnLoad"); - console.log('test-page-mode', sidebarView, scrollMode, spreadMode, stored.page) - if (stored?.page && viewOnLoad !== ViewOnLoad.INITIAL) { - // [custom] - // hash = `page=${stored.page}&zoom=${zoom || stored.zoom},` + `${stored.scrollLeft},${stored.scrollTop}`; - hash = `page=${0}&zoom=${zoom || stored.zoom},` + `${stored.scrollLeft},${stored.scrollTop}`; - rotation = parseInt(stored.rotation, 10); - if (sidebarView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.UNKNOWN) { - sidebarView = stored.sidebarView | 0; - } - if (scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.UNKNOWN) { - scrollMode = stored.scrollMode | 0; - } - if (spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.UNKNOWN) { - spreadMode = stored.spreadMode | 0; - } - } - if (pageMode && sidebarView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.UNKNOWN) { - sidebarView = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.apiPageModeToSidebarView)(pageMode); - } - if (pageLayout && scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.UNKNOWN && spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.UNKNOWN) { - const modes = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.apiPageLayoutToViewerModes)(pageLayout); - spreadMode = modes.spreadMode; - } - // TIP: 屏蔽上述scrollMode逻辑强制设置scrollMode 为3 - // custom scrollMode - // console.log('test-dd', evt.pageNumber) - scrollMode = 2 - spreadMode = 0 - this.setInitialView(hash, { - rotation, - sidebarView, - scrollMode, - spreadMode - }); - this.eventBus.dispatch("documentinit", { - source: this - }); - if (!this.isViewerEmbedded) { - pdfViewer.focus(); - } - await Promise.race([pagesPromise, new Promise(resolve => { - setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); - })]); - if (!initialBookmark && !hash) { - return; - } - if (pdfViewer.hasEqualPageSizes) { - return; - } - this.initialBookmark = initialBookmark; - pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; - this.setInitialView(hash); - }).catch(() => { - this.setInitialView(); - }).then(function () { - pdfViewer.update(); - }); - }); - pagesPromise.then(() => { - this._unblockDocumentLoadEvent(); - this._initializeAutoPrint(pdfDocument, openActionPromise); - }, reason => { - this._documentError("pdfjs-loading-error", { - message: reason.message - }); - }); - onePageRendered.then(data => { - this.externalServices.reportTelemetry({ - type: "pageInfo", - timestamp: data.timestamp - }); - if (this.pdfOutlineViewer) { - pdfDocument.getOutline().then(outline => { - if (pdfDocument !== this.pdfDocument) { - return; - } - this.pdfOutlineViewer.render({ - outline, - pdfDocument - }); - }); - } - if (this.pdfAttachmentViewer) { - pdfDocument.getAttachments().then(attachments => { - if (pdfDocument !== this.pdfDocument) { - return; - } - this.pdfAttachmentViewer.render({ - attachments - }); - }); - } - if (this.pdfLayerViewer) { - pdfViewer.optionalContentConfigPromise.then(optionalContentConfig => { - if (pdfDocument !== this.pdfDocument) { - return; - } - this.pdfLayerViewer.render({ - optionalContentConfig, - pdfDocument - }); - }); - } - }); - this._initializePageLabels(pdfDocument); - this._initializeMetadata(pdfDocument); - }, - async _scriptingDocProperties(pdfDocument) { - if (!this.documentInfo) { - await new Promise(resolve => { - this.eventBus._on("metadataloaded", resolve, { - once: true - }); - }); - if (pdfDocument !== this.pdfDocument) { - return null; - } - } - if (!this._contentLength) { - await new Promise(resolve => { - this.eventBus._on("documentloaded", resolve, { - once: true - }); - }); - if (pdfDocument !== this.pdfDocument) { - return null; - } - } - return { - ...this.documentInfo, - baseURL: this.baseUrl, - filesize: this._contentLength, - filename: this._docFilename, - metadata: this.metadata?.getRaw(), - authors: this.metadata?.get("dc:creator"), - numPages: this.pagesCount, - URL: this.url - }; - }, - async _initializeAutoPrint(pdfDocument, openActionPromise) { - const [openAction, jsActions] = await Promise.all([openActionPromise, this.pdfViewer.enableScripting ? null : pdfDocument.getJSActions()]); - if (pdfDocument !== this.pdfDocument) { - return; - } - let triggerAutoPrint = openAction?.action === "Print"; - if (jsActions) { - console.warn("Warning: JavaScript support is not enabled"); - for (const name in jsActions) { - if (triggerAutoPrint) { - break; - } - switch (name) { - case "WillClose": - case "WillSave": - case "DidSave": - case "WillPrint": - case "DidPrint": - continue; - } - triggerAutoPrint = jsActions[name].some(js => _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.AutoPrintRegExp.test(js)); - } - } - if (triggerAutoPrint) { - this.triggerPrinting(); - } - }, - async _initializeMetadata(pdfDocument) { - const { - info, - metadata, - contentDispositionFilename, - contentLength - } = await pdfDocument.getMetadata(); - if (pdfDocument !== this.pdfDocument) { - return; - } - this.documentInfo = info; - this.metadata = metadata; - this._contentDispositionFilename ??= contentDispositionFilename; - this._contentLength ??= contentLength; - // TIP:赋予title的逻辑 - // console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.version || "?"} [${pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.build || "?"}])`); - let pdfTitle = info.Title; - - const metadataTitle = metadata?.get("dc:title"); - if (metadataTitle) { - if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) { - pdfTitle = metadataTitle; - } - } - - if (pdfTitle) { - this.setTitle(`${pdfTitle} - ${this._contentDispositionFilename || this._title}`); - } else if (this._contentDispositionFilename) { - this.setTitle(this._contentDispositionFilename); - } - // [Custom] desc: use title from postMessage - // const odlPdfTitle = document.getElementById("odl-pdf-title"); - // odlPdfTitle.innerText = this._contentDispositionFilename || this._title; - // odlPdfTitle.setAttribute('title', this._contentDispositionFilename || this._title); - if (info.IsXFAPresent && !info.IsAcroFormPresent && !pdfDocument.isPureXfa) { - if (pdfDocument.loadingParams.enableXfa) { - console.warn("Warning: XFA Foreground documents are not supported"); - } else { - console.warn("Warning: XFA support is not enabled"); - } - } else if ((info.IsAcroFormPresent || info.IsXFAPresent) && !this.pdfViewer.renderForms) { - console.warn("Warning: Interactive form support is not enabled"); - } - if (info.IsSignaturesPresent) { - console.warn("Warning: Digital signatures validation is not supported"); - } - this.eventBus.dispatch("metadataloaded", { - source: this - }); - }, - async _initializePageLabels(pdfDocument) { - const labels = await pdfDocument.getPageLabels(); - if (pdfDocument !== this.pdfDocument) { - return; - } - if (!labels || _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("disablePageLabels")) { - return; - } - const numLabels = labels.length; - let standardLabels = 0, - emptyLabels = 0; - for (let i = 0; i < numLabels; i++) { - const label = labels[i]; - if (label === (i + 1).toString()) { - standardLabels++; - } else if (label === "") { - emptyLabels++; - } else { - break; - } - } - if (standardLabels >= numLabels || emptyLabels >= numLabels) { - return; - } - const { - pdfViewer, - pdfThumbnailViewer, - toolbar - } = this; - pdfViewer.setPageLabels(labels); - pdfThumbnailViewer?.setPageLabels(labels); - toolbar?.setPagesCount(numLabels, true); - toolbar?.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); - }, - _initializePdfHistory({ - fingerprint, - viewOnLoad, - initialDest = null - }) { - if (!this.pdfHistory) { - return; - } - this.pdfHistory.initialize({ - fingerprint, - resetHistory: viewOnLoad === ViewOnLoad.INITIAL, - updateUrl: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("historyUpdateUrl") - }); - if (this.pdfHistory.initialBookmark) { - this.initialBookmark = this.pdfHistory.initialBookmark; - this.initialRotation = this.pdfHistory.initialRotation; - } - if (initialDest && !this.initialBookmark && viewOnLoad === ViewOnLoad.UNKNOWN) { - this.initialBookmark = JSON.stringify(initialDest); - this.pdfHistory.push({ - explicitDest: initialDest, - pageNumber: null - }); - } - }, - _initializeAnnotationStorageCallbacks(pdfDocument) { - if (pdfDocument !== this.pdfDocument) { - return; - } - const { - annotationStorage - } = pdfDocument; - annotationStorage.onSetModified = () => { - window.addEventListener("beforeunload", beforeUnload); - this._annotationStorageModified = true; - }; - annotationStorage.onResetModified = () => { - window.removeEventListener("beforeunload", beforeUnload); - delete this._annotationStorageModified; - }; - annotationStorage.onAnnotationEditor = typeStr => { - this._hasAnnotationEditors = !!typeStr; - this.setTitle(); - }; - }, - setInitialView(storedHash, { - rotation, - sidebarView, - scrollMode, - spreadMode - } = {}) { - const setRotation = angle => { - if ((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isValidRotation)(angle)) { - this.pdfViewer.pagesRotation = angle; - } - }; - const setViewerModes = (scroll, spread) => { - if ((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isValidScrollMode)(scroll)) { - this.pdfViewer.scrollMode = scroll; - } - if ((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isValidSpreadMode)(spread)) { - this.pdfViewer.spreadMode = spread; - } - }; - this.isInitialViewSet = true; - this.pdfSidebar?.setInitialView(sidebarView); - setViewerModes(scrollMode, spreadMode); - if (this.initialBookmark) { - setRotation(this.initialRotation); - delete this.initialRotation; - this.pdfLinkService.setHash(this.initialBookmark); - this.initialBookmark = null; - } else if (storedHash) { - setRotation(rotation); - this.pdfLinkService.setHash(storedHash); - } - this.toolbar?.setPageNumber(this.pdfViewer.currentPageNumber, this.pdfViewer.currentPageLabel); - this.secondaryToolbar?.setPageNumber(this.pdfViewer.currentPageNumber); - if (!this.pdfViewer.currentScaleValue) { - this.pdfViewer.currentScaleValue = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.DEFAULT_SCALE_VALUE; - } - }, - _cleanup() { - if (!this.pdfDocument) { - return; - } - this.pdfViewer.cleanup(); - this.pdfThumbnailViewer?.cleanup(); - this.pdfDocument.cleanup(_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("fontExtraProperties")); - }, - forceRendering() { - this.pdfRenderingQueue.printing = !!this.printService; - this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar?.visibleView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS; - this.pdfRenderingQueue.renderHighestPriority(); - }, - beforePrint() { - this._printAnnotationStoragePromise = this.pdfScriptingManager.dispatchWillPrint().catch(() => {}).then(() => this.pdfDocument?.annotationStorage.print); - if (this.printService) { - return; - } - if (!this.supportsPrinting) { - this._otherError("pdfjs-printing-not-supported"); - return; - } - if (!this.pdfViewer.pageViewsReady) { - this.l10n.get("pdfjs-printing-not-ready").then(msg => { - window.alert(msg); - }); - return; - } - this.printService = web_print_service__WEBPACK_IMPORTED_MODULE_19__.PDFPrintServiceFactory.createPrintService({ - pdfDocument: this.pdfDocument, - pagesOverview: this.pdfViewer.getPagesOverview(), - printContainer: this.appConfig.printContainer, - printResolution: _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("printResolution"), - printAnnotationStoragePromise: this._printAnnotationStoragePromise - }); - this.forceRendering(); - this.setTitle(); - this.printService.layout(); - if (this._hasAnnotationEditors) { - this.externalServices.reportTelemetry({ - type: "editing", - data: { - type: "print", - stats: this.pdfDocument?.annotationStorage.editorStats - } - }); - } - }, - afterPrint() { - if (this._printAnnotationStoragePromise) { - this._printAnnotationStoragePromise.then(() => { - this.pdfScriptingManager.dispatchDidPrint(); - }); - this._printAnnotationStoragePromise = null; - } - if (this.printService) { - this.printService.destroy(); - this.printService = null; - this.pdfDocument?.annotationStorage.resetModified(); - } - this.forceRendering(); - this.setTitle(); - }, - rotatePages(delta) { - this.pdfViewer.pagesRotation += delta; - }, - requestPresentationMode() { - this.pdfPresentationMode?.request(); - }, - triggerPrinting() { - if (!this.supportsPrinting) { - return; - } - window.print(); - }, - bindEvents() { - if (this._eventBusAbortController) { - return; - } - this._eventBusAbortController = new AbortController(); - const { - eventBus, - _eventBusAbortController: { - signal - } - } = this; - eventBus._on("resize", webViewerResize, { - signal - }); - eventBus._on("hashchange", webViewerHashchange, { - signal - }); - eventBus._on("beforeprint", this.beforePrint.bind(this), { - signal - }); - eventBus._on("afterprint", this.afterPrint.bind(this), { - signal - }); - eventBus._on("pagerender", webViewerPageRender, { - signal - }); - eventBus._on("pagerendered", webViewerPageRendered, { - signal - }); - eventBus._on("updateviewarea", webViewerUpdateViewarea, { - signal - }); - eventBus._on("pagechanging", webViewerPageChanging, { - signal - }); - eventBus._on("scalechanging", webViewerScaleChanging, { - signal - }); - eventBus._on("rotationchanging", webViewerRotationChanging, { - signal - }); - eventBus._on("sidebarviewchanged", webViewerSidebarViewChanged, { - signal - }); - eventBus._on("pagemode", webViewerPageMode, { - signal - }); - eventBus._on("namedaction", webViewerNamedAction, { - signal - }); - eventBus._on("presentationmodechanged", webViewerPresentationModeChanged, { - signal - }); - eventBus._on("presentationmode", webViewerPresentationMode, { - signal - }); - eventBus._on("switchannotationeditormode", webViewerSwitchAnnotationEditorMode, { - signal - }); - eventBus._on("switchannotationeditorparams", webViewerSwitchAnnotationEditorParams, { - signal - }); - eventBus._on("print", webViewerPrint, { - signal - }); - eventBus._on("download", webViewerDownload, { - signal - }); - eventBus._on("firstpage", webViewerFirstPage, { - signal - }); - eventBus._on("lastpage", webViewerLastPage, { - signal - }); - eventBus._on("nextpage", webViewerNextPage, { - signal - }); - eventBus._on("previouspage", webViewerPreviousPage, { - signal - }); - eventBus._on("zoomin", webViewerZoomIn, { - signal - }); - eventBus._on("zoomout", webViewerZoomOut, { - signal - }); - eventBus._on("zoomreset", webViewerZoomReset, { - signal - }); - eventBus._on("pagenumberchanged", webViewerPageNumberChanged, { - signal - }); - eventBus._on("scalechanged", webViewerScaleChanged, { - signal - }); - eventBus._on("rotatecw", webViewerRotateCw, { - signal - }); - eventBus._on("rotateccw", webViewerRotateCcw, { - signal - }); - eventBus._on("optionalcontentconfig", webViewerOptionalContentConfig, { - signal - }); - eventBus._on("switchscrollmode", webViewerSwitchScrollMode, { - signal - }); - eventBus._on("scrollmodechanged", webViewerScrollModeChanged, { - signal - }); - eventBus._on("switchspreadmode", webViewerSwitchSpreadMode, { - signal - }); - eventBus._on("spreadmodechanged", webViewerSpreadModeChanged, { - signal - }); - eventBus._on("documentproperties", webViewerDocumentProperties, { - signal - }); - eventBus._on("findfromurlhash", webViewerFindFromUrlHash, { - signal - }); - eventBus._on("updatefindmatchescount", webViewerUpdateFindMatchesCount, { - signal - }); - eventBus._on("updatefindcontrolstate", webViewerUpdateFindControlState, { - signal - }); - if (_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("pdfBug")) { - eventBus._on("pagerendered", reportPageStatsPDFBug, { - signal - }); - eventBus._on("pagechanging", reportPageStatsPDFBug, { - signal - }); - } - eventBus._on("fileinputchange", webViewerFileInputChange, { - signal - }); - eventBus._on("openfile", webViewerOpenFile, { - signal - }); - }, - bindWindowEvents() { - if (this._windowAbortController) { - return; - } - this._windowAbortController = new AbortController(); - const { - eventBus, - appConfig: { - mainContainer - }, - _windowAbortController: { - signal - } - } = this; - function addWindowResolutionChange(evt = null) { - if (evt) { - webViewerResolutionChange(evt); - } - const mediaQueryList = window.matchMedia(`(resolution: ${window.devicePixelRatio || 1}dppx)`); - mediaQueryList.addEventListener("change", addWindowResolutionChange, { - once: true, - signal - }); - } - addWindowResolutionChange(); - window.addEventListener("visibilitychange", webViewerVisibilityChange, { - signal - }); - window.addEventListener("wheel", webViewerWheel, { - passive: false, - signal - }); - window.addEventListener("touchstart", webViewerTouchStart, { - passive: false, - signal - }); - window.addEventListener("touchmove", webViewerTouchMove, { - passive: false, - signal - }); - window.addEventListener("touchend", webViewerTouchEnd, { - passive: false, - signal - }); - window.addEventListener("click", webViewerClick, { - signal - }); - window.addEventListener("keydown", webViewerKeyDown, { - signal - }); - window.addEventListener("keyup", webViewerKeyUp, { - signal - }); - window.addEventListener("resize", () => { - eventBus.dispatch("resize", { - source: window - }); - }, { - signal - }); - window.addEventListener("hashchange", () => { - eventBus.dispatch("hashchange", { - source: window, - hash: document.location.hash.substring(1) - }); - }, { - signal - }); - window.addEventListener("beforeprint", () => { - eventBus.dispatch("beforeprint", { - source: window - }); - }, { - signal - }); - window.addEventListener("afterprint", () => { - eventBus.dispatch("afterprint", { - source: window - }); - }, { - signal - }); - window.addEventListener("updatefromsandbox", event => { - eventBus.dispatch("updatefromsandbox", { - source: window, - detail: event.detail - }); - }, { - signal - }); - if (!("onscrollend" in document.documentElement)) { - return; - } - ({ - scrollTop: this._lastScrollTop, - scrollLeft: this._lastScrollLeft - } = mainContainer); - const scrollend = () => { - ({ - scrollTop: this._lastScrollTop, - scrollLeft: this._lastScrollLeft - } = mainContainer); - this._isScrolling = false; - mainContainer.addEventListener("scroll", scroll, { - passive: true, - signal - }); - mainContainer.removeEventListener("scrollend", scrollend, { - signal - }); - mainContainer.removeEventListener("blur", scrollend, { - signal - }); - }; - const scroll = () => { - if (this._isCtrlKeyDown) { - return; - } - if (this._lastScrollTop === mainContainer.scrollTop && this._lastScrollLeft === mainContainer.scrollLeft) { - return; - } - mainContainer.removeEventListener("scroll", scroll, { - passive: true, - signal - }); - this._isScrolling = true; - mainContainer.addEventListener("scrollend", scrollend, { - signal - }); - mainContainer.addEventListener("blur", scrollend, { - signal - }); - }; - mainContainer.addEventListener("scroll", scroll, { - passive: true, - signal - }); - }, - unbindEvents() { - this._eventBusAbortController?.abort(); - this._eventBusAbortController = null; - }, - unbindWindowEvents() { - this._windowAbortController?.abort(); - this._windowAbortController = null; - }, - _accumulateTicks(ticks, prop) { - if (this[prop] > 0 && ticks < 0 || this[prop] < 0 && ticks > 0) { - this[prop] = 0; - } - this[prop] += ticks; - const wholeTicks = Math.trunc(this[prop]); - this[prop] -= wholeTicks; - return wholeTicks; - }, - _accumulateFactor(previousScale, factor, prop) { - if (factor === 1) { - return 1; - } - if (this[prop] > 1 && factor < 1 || this[prop] < 1 && factor > 1) { - this[prop] = 1; - } - const newFactor = Math.floor(previousScale * factor * this[prop] * 100) / (100 * previousScale); - this[prop] = factor / newFactor; - return newFactor; - }, - _centerAtPos(previousScale, x, y) { - const { - pdfViewer - } = this; - const scaleDiff = pdfViewer.currentScale / previousScale - 1; - if (scaleDiff !== 0) { - const [top, left] = pdfViewer.containerTopLeft; - pdfViewer.container.scrollLeft += (x - left) * scaleDiff; - pdfViewer.container.scrollTop += (y - top) * scaleDiff; - } - }, - _unblockDocumentLoadEvent() { - document.blockUnblockOnload?.(false); - this._unblockDocumentLoadEvent = () => {}; - }, - get scriptingReady() { - return this.pdfScriptingManager.ready; - } -}; -(0,web_external_services__WEBPACK_IMPORTED_MODULE_4__.initCom)(PDFViewerApplication); -{ - web_print_service__WEBPACK_IMPORTED_MODULE_19__.PDFPrintServiceFactory.initGlobals(PDFViewerApplication); -} -{ - const HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; - var validateFileURL = function (file) { - if (!file) { - return; - } - try { - const viewerOrigin = new URL(window.location.href).origin || "null"; - if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) { - return; - } - const fileOrigin = new URL(file, window.location.href).origin; - if (fileOrigin !== viewerOrigin) { - // throw new Error("file origin does not match viewer's"); - } - } catch (ex) { - PDFViewerApplication._documentError("pdfjs-loading-error", { - message: ex.message - }); - throw ex; - } - }; -} -async function loadFakeWorker() { - pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.GlobalWorkerOptions.workerSrc ||= _app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("workerSrc"); - await import( /*webpackIgnore: true*/pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PDFWorker.workerSrc); -} -async function loadPDFBug(self) { - const { - PDFBug - } = await import( /*webpackIgnore: true*/_app_options_js__WEBPACK_IMPORTED_MODULE_2__.AppOptions.get("debuggerSrc")); - self._PDFBug = PDFBug; -} -function reportPageStatsPDFBug({ - pageNumber -}) { - if (!globalThis.Stats?.enabled) { - return; - } - const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); - globalThis.Stats.add(pageNumber, pageView?.pdfPage?.stats); -} -function webViewerPageRender({ - pageNumber -}) { - if (pageNumber === PDFViewerApplication.page) { - PDFViewerApplication.toolbar?.updateLoadingIndicatorState(true); - } - - // console.log('test-loaded-page') -} -function webViewerPageRendered({ - pageNumber, - error -}) { - if (pageNumber === PDFViewerApplication.page) { - PDFViewerApplication.toolbar?.updateLoadingIndicatorState(false); - } - if (PDFViewerApplication.pdfSidebar?.visibleView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS) { - const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); - const thumbnailView = PDFViewerApplication.pdfThumbnailViewer?.getThumbnail(pageNumber - 1); - if (pageView) { - thumbnailView?.setImage(pageView); - } - } - if (error) { - PDFViewerApplication._otherError("pdfjs-rendering-error", error); - } -} -function webViewerPageMode({ - mode -}) { - let view; - switch (mode) { - case "thumbs": - view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS; - break; - case "bookmarks": - case "outline": - view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.OUTLINE; - break; - case "attachments": - view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.ATTACHMENTS; - break; - case "layers": - view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.LAYERS; - break; - case "none": - view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.NONE; - break; - default: - console.error('Invalid "pagemode" hash parameter: ' + mode); - return; - } - PDFViewerApplication.pdfSidebar?.switchView(view, true); -} -function webViewerNamedAction(evt) { - switch (evt.action) { - case "GoToPage": - PDFViewerApplication.appConfig.toolbar?.pageNumber.select(); - break; - case "Find": - if (!PDFViewerApplication.supportsIntegratedFind) { - PDFViewerApplication.findBar?.toggle(); - } - break; - case "Print": - PDFViewerApplication.triggerPrinting(); - break; - case "SaveAs": - PDFViewerApplication.downloadOrSave(); - break; - } -} -function webViewerPresentationModeChanged(evt) { - PDFViewerApplication.pdfViewer.presentationModeState = evt.state; -} -function webViewerSidebarViewChanged({ - view -}) { - PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled = view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS; - if (PDFViewerApplication.isInitialViewSet) { - PDFViewerApplication.store?.set("sidebarView", view).catch(() => {}); - } -} -function webViewerUpdateViewarea({ - location -}) { - if (PDFViewerApplication.isInitialViewSet) { - PDFViewerApplication.store?.setMultiple({ - page: location.pageNumber, - zoom: location.scale, - scrollLeft: location.left, - scrollTop: location.top, - rotation: location.rotation - }).catch(() => {}); - } - if (PDFViewerApplication.appConfig.secondaryToolbar) { - const href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); - PDFViewerApplication.appConfig.secondaryToolbar.viewBookmarkButton.href = href; - } -} -function webViewerScrollModeChanged(evt) { - if (PDFViewerApplication.isInitialViewSet && !PDFViewerApplication.pdfViewer.isInPresentationMode) { - PDFViewerApplication.store?.set("scrollMode", evt.mode).catch(() => {}); - } -} -function webViewerSpreadModeChanged(evt) { - if (PDFViewerApplication.isInitialViewSet && !PDFViewerApplication.pdfViewer.isInPresentationMode) { - PDFViewerApplication.store?.set("spreadMode", evt.mode).catch(() => {}); - } -} -function webViewerResize() { - const { - pdfDocument, - pdfViewer, - pdfRenderingQueue - } = PDFViewerApplication; - if (pdfRenderingQueue.printing && window.matchMedia("print").matches) { - return; - } - if (!pdfDocument) { - return; - } - const currentScaleValue = pdfViewer.currentScaleValue; - if (currentScaleValue === "auto" || currentScaleValue === "page-fit" || currentScaleValue === "page-width") { - pdfViewer.currentScaleValue = currentScaleValue; - } - pdfViewer.update(); -} -function webViewerHashchange(evt) { - const hash = evt.hash; - if (!hash) { - return; - } - if (!PDFViewerApplication.isInitialViewSet) { - PDFViewerApplication.initialBookmark = hash; - } else if (!PDFViewerApplication.pdfHistory?.popStateInProgress) { - PDFViewerApplication.pdfLinkService.setHash(hash); - } -} -{ - var webViewerFileInputChange = function (evt) { - if (PDFViewerApplication.pdfViewer?.isInPresentationMode) { - return; - } - const file = evt.fileInput.files[0]; - PDFViewerApplication.open({ - url: URL.createObjectURL(file), - originalUrl: file.name - }); - }; - var webViewerOpenFile = function (evt) { - PDFViewerApplication._openFileInput?.click(); - }; -} -function webViewerPresentationMode() { - PDFViewerApplication.requestPresentationMode(); -} -function webViewerSwitchAnnotationEditorMode(evt) { - PDFViewerApplication.pdfViewer.annotationEditorMode = evt; -} -function webViewerSwitchAnnotationEditorParams(evt) { - PDFViewerApplication.pdfViewer.annotationEditorParams = evt; -} -function webViewerPrint() { - PDFViewerApplication.triggerPrinting(); -} -function webViewerDownload() { - PDFViewerApplication.downloadOrSave(); -} -function webViewerFirstPage() { - PDFViewerApplication.page = 1; -} -function webViewerLastPage() { - PDFViewerApplication.page = PDFViewerApplication.pagesCount; -} -function webViewerNextPage() { - PDFViewerApplication.pdfViewer.nextPage(); -} -function webViewerPreviousPage() { - PDFViewerApplication.pdfViewer.previousPage(); -} -function webViewerZoomIn() { - PDFViewerApplication.zoomIn(); -} -function webViewerZoomOut() { - PDFViewerApplication.zoomOut(); -} -function webViewerZoomReset() { - PDFViewerApplication.zoomReset(); -} -function webViewerPageNumberChanged(evt) { - const pdfViewer = PDFViewerApplication.pdfViewer; - if (evt.value !== "") { - PDFViewerApplication.pdfLinkService.goToPage(evt.value); - } - if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) { - PDFViewerApplication.toolbar?.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); - } -} -function webViewerScaleChanged(evt) { - PDFViewerApplication.pdfViewer.currentScaleValue = evt.value; -} -function webViewerRotateCw() { - PDFViewerApplication.rotatePages(90); -} -function webViewerRotateCcw() { - PDFViewerApplication.rotatePages(-90); -} -function webViewerOptionalContentConfig(evt) { - PDFViewerApplication.pdfViewer.optionalContentConfigPromise = evt.promise; -} -function webViewerSwitchScrollMode(evt) { - PDFViewerApplication.pdfViewer.scrollMode = evt.mode; -} -function webViewerSwitchSpreadMode(evt) { - PDFViewerApplication.pdfViewer.spreadMode = evt.mode; -} -function webViewerDocumentProperties() { - PDFViewerApplication.pdfDocumentProperties?.open(); -} -function webViewerFindFromUrlHash(evt) { - PDFViewerApplication.eventBus.dispatch("find", { - source: evt.source, - type: "", - query: evt.query, - caseSensitive: false, - entireWord: false, - highlightAll: true, - findPrevious: false, - matchDiacritics: true - }); -} -function webViewerUpdateFindMatchesCount({ - matchesCount -}) { - if (PDFViewerApplication.supportsIntegratedFind) { - PDFViewerApplication.externalServices.updateFindMatchesCount(matchesCount); - } else { - PDFViewerApplication.findBar?.updateResultsCount(matchesCount); - } -} -function webViewerUpdateFindControlState({ - state, - previous, - matchesCount, - rawQuery -}) { - if (PDFViewerApplication.supportsIntegratedFind) { - PDFViewerApplication.externalServices.updateFindControlState({ - result: state, - findPrevious: previous, - matchesCount, - rawQuery - }); - } else { - PDFViewerApplication.findBar?.updateUIState(state, previous, matchesCount); - } -} -function webViewerScaleChanging(evt) { - PDFViewerApplication.toolbar?.setPageScale(evt.presetValue, evt.scale); - PDFViewerApplication.pdfViewer.update(); -} -function webViewerRotationChanging(evt) { - if (PDFViewerApplication.pdfThumbnailViewer) { - PDFViewerApplication.pdfThumbnailViewer.pagesRotation = evt.pagesRotation; - } - PDFViewerApplication.forceRendering(); - PDFViewerApplication.pdfViewer.currentPageNumber = evt.pageNumber; -} -function webViewerPageChanging({ - pageNumber, - pageLabel -}) { - PDFViewerApplication.toolbar?.setPageNumber(pageNumber, pageLabel); - PDFViewerApplication.secondaryToolbar?.setPageNumber(pageNumber); - if (PDFViewerApplication.pdfSidebar?.visibleView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS) { - PDFViewerApplication.pdfThumbnailViewer?.scrollThumbnailIntoView(pageNumber); - } - const currentPage = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); - PDFViewerApplication.toolbar?.updateLoadingIndicatorState(currentPage?.renderingState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.RUNNING); -} -function webViewerResolutionChange(evt) { - PDFViewerApplication.pdfViewer.refresh(); -} -function webViewerVisibilityChange(evt) { - if (document.visibilityState === "visible") { - setZoomDisabledTimeout(); - } -} -let zoomDisabledTimeout = null; -function setZoomDisabledTimeout() { - if (zoomDisabledTimeout) { - clearTimeout(zoomDisabledTimeout); - } - zoomDisabledTimeout = setTimeout(function () { - zoomDisabledTimeout = null; - }, WHEEL_ZOOM_DISABLED_TIMEOUT); -} -function webViewerWheel(evt) { - const { - pdfViewer, - supportsMouseWheelZoomCtrlKey, - supportsMouseWheelZoomMetaKey, - supportsPinchToZoom - } = PDFViewerApplication; - if (pdfViewer.isInPresentationMode) { - return; - } - const deltaMode = evt.deltaMode; - let scaleFactor = Math.exp(-evt.deltaY / 100); - const isBuiltInMac = false; - const isPinchToZoom = evt.ctrlKey && !PDFViewerApplication._isCtrlKeyDown && deltaMode === WheelEvent.DOM_DELTA_PIXEL && evt.deltaX === 0 && (Math.abs(scaleFactor - 1) < 0.05 || isBuiltInMac) && evt.deltaZ === 0; - if (isPinchToZoom || evt.ctrlKey && supportsMouseWheelZoomCtrlKey || evt.metaKey && supportsMouseWheelZoomMetaKey) { - evt.preventDefault(); - if (PDFViewerApplication._isScrolling || zoomDisabledTimeout || document.visibilityState === "hidden" || PDFViewerApplication.overlayManager.active) { - return; - } - const previousScale = pdfViewer.currentScale; - if (isPinchToZoom && supportsPinchToZoom) { - scaleFactor = PDFViewerApplication._accumulateFactor(previousScale, scaleFactor, "_wheelUnusedFactor"); - if (scaleFactor < 1) { - PDFViewerApplication.zoomOut(null, scaleFactor); - } else if (scaleFactor > 1) { - PDFViewerApplication.zoomIn(null, scaleFactor); - } else { - return; - } - } else { - const delta = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.normalizeWheelEventDirection)(evt); - let ticks = 0; - if (deltaMode === WheelEvent.DOM_DELTA_LINE || deltaMode === WheelEvent.DOM_DELTA_PAGE) { - if (Math.abs(delta) >= 1) { - ticks = Math.sign(delta); - } else { - ticks = PDFViewerApplication._accumulateTicks(delta, "_wheelUnusedTicks"); - } - } else { - const PIXELS_PER_LINE_SCALE = 30; - ticks = PDFViewerApplication._accumulateTicks(delta / PIXELS_PER_LINE_SCALE, "_wheelUnusedTicks"); - } - if (ticks < 0) { - PDFViewerApplication.zoomOut(-ticks); - } else if (ticks > 0) { - PDFViewerApplication.zoomIn(ticks); - } else { - return; - } - } - PDFViewerApplication._centerAtPos(previousScale, evt.clientX, evt.clientY); - } -} -function webViewerTouchStart(evt) { - if (PDFViewerApplication.pdfViewer.isInPresentationMode || evt.touches.length < 2) { - return; - } - evt.preventDefault(); - if (evt.touches.length !== 2 || PDFViewerApplication.overlayManager.active) { - PDFViewerApplication._touchInfo = null; - return; - } - let [touch0, touch1] = evt.touches; - if (touch0.identifier > touch1.identifier) { - [touch0, touch1] = [touch1, touch0]; - } - PDFViewerApplication._touchInfo = { - touch0X: touch0.pageX, - touch0Y: touch0.pageY, - touch1X: touch1.pageX, - touch1Y: touch1.pageY - }; -} -function webViewerTouchMove(evt) { - if (!PDFViewerApplication._touchInfo || evt.touches.length !== 2) { - return; - } - const { - pdfViewer, - _touchInfo, - supportsPinchToZoom - } = PDFViewerApplication; - let [touch0, touch1] = evt.touches; - if (touch0.identifier > touch1.identifier) { - [touch0, touch1] = [touch1, touch0]; - } - const { - pageX: page0X, - pageY: page0Y - } = touch0; - const { - pageX: page1X, - pageY: page1Y - } = touch1; - const { - touch0X: pTouch0X, - touch0Y: pTouch0Y, - touch1X: pTouch1X, - touch1Y: pTouch1Y - } = _touchInfo; - if (Math.abs(pTouch0X - page0X) <= 1 && Math.abs(pTouch0Y - page0Y) <= 1 && Math.abs(pTouch1X - page1X) <= 1 && Math.abs(pTouch1Y - page1Y) <= 1) { - return; - } - _touchInfo.touch0X = page0X; - _touchInfo.touch0Y = page0Y; - _touchInfo.touch1X = page1X; - _touchInfo.touch1Y = page1Y; - if (pTouch0X === page0X && pTouch0Y === page0Y) { - const v1X = pTouch1X - page0X; - const v1Y = pTouch1Y - page0Y; - const v2X = page1X - page0X; - const v2Y = page1Y - page0Y; - const det = v1X * v2Y - v1Y * v2X; - if (Math.abs(det) > 0.02 * Math.hypot(v1X, v1Y) * Math.hypot(v2X, v2Y)) { - return; - } - } else if (pTouch1X === page1X && pTouch1Y === page1Y) { - const v1X = pTouch0X - page1X; - const v1Y = pTouch0Y - page1Y; - const v2X = page0X - page1X; - const v2Y = page0Y - page1Y; - const det = v1X * v2Y - v1Y * v2X; - if (Math.abs(det) > 0.02 * Math.hypot(v1X, v1Y) * Math.hypot(v2X, v2Y)) { - return; - } - } else { - const diff0X = page0X - pTouch0X; - const diff1X = page1X - pTouch1X; - const diff0Y = page0Y - pTouch0Y; - const diff1Y = page1Y - pTouch1Y; - const dotProduct = diff0X * diff1X + diff0Y * diff1Y; - if (dotProduct >= 0) { - return; - } - } - evt.preventDefault(); - const distance = Math.hypot(page0X - page1X, page0Y - page1Y) || 1; - const pDistance = Math.hypot(pTouch0X - pTouch1X, pTouch0Y - pTouch1Y) || 1; - const previousScale = pdfViewer.currentScale; - if (supportsPinchToZoom) { - const newScaleFactor = PDFViewerApplication._accumulateFactor(previousScale, distance / pDistance, "_touchUnusedFactor"); - if (newScaleFactor < 1) { - PDFViewerApplication.zoomOut(null, newScaleFactor); - } else if (newScaleFactor > 1) { - PDFViewerApplication.zoomIn(null, newScaleFactor); - } else { - return; - } - } else { - const PIXELS_PER_LINE_SCALE = 30; - const ticks = PDFViewerApplication._accumulateTicks((distance - pDistance) / PIXELS_PER_LINE_SCALE, "_touchUnusedTicks"); - if (ticks < 0) { - PDFViewerApplication.zoomOut(-ticks); - } else if (ticks > 0) { - PDFViewerApplication.zoomIn(ticks); - } else { - return; - } - } - PDFViewerApplication._centerAtPos(previousScale, (page0X + page1X) / 2, (page0Y + page1Y) / 2); -} -function webViewerTouchEnd(evt) { - if (!PDFViewerApplication._touchInfo) { - return; - } - evt.preventDefault(); - PDFViewerApplication._touchInfo = null; - PDFViewerApplication._touchUnusedTicks = 0; - PDFViewerApplication._touchUnusedFactor = 1; -} -function webViewerClick(evt) { - if (!PDFViewerApplication.secondaryToolbar?.isOpen) { - return; - } - const appConfig = PDFViewerApplication.appConfig; - if (PDFViewerApplication.pdfViewer.containsElement(evt.target) || appConfig.toolbar?.container.contains(evt.target) && evt.target !== appConfig.secondaryToolbar?.toggleButton) { - PDFViewerApplication.secondaryToolbar.close(); - } -} -function webViewerKeyUp(evt) { - if (evt.key === "Control") { - PDFViewerApplication._isCtrlKeyDown = false; - } -} -function webViewerKeyDown(evt) { - PDFViewerApplication._isCtrlKeyDown = evt.key === "Control"; - if (PDFViewerApplication.overlayManager.active) { - return; - } - const { - eventBus, - pdfViewer - } = PDFViewerApplication; - const isViewerInPresentationMode = pdfViewer.isInPresentationMode; - let handled = false, - ensureViewerFocused = false; - const cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); - if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) { - switch (evt.keyCode) { - case 70: - if (!PDFViewerApplication.supportsIntegratedFind && !evt.shiftKey) { - PDFViewerApplication.findBar?.open(); - handled = true; - } - break; - case 71: - if (!PDFViewerApplication.supportsIntegratedFind) { - const { - state - } = PDFViewerApplication.findController; - if (state) { - const newState = { - source: window, - type: "again", - findPrevious: cmd === 5 || cmd === 12 - }; - eventBus.dispatch("find", { - ...state, - ...newState - }); - } - handled = true; - } - break; - case 61: - case 107: - case 187: - case 171: - PDFViewerApplication.zoomIn(); - handled = true; - break; - case 173: - case 109: - case 189: - PDFViewerApplication.zoomOut(); - handled = true; - break; - case 48: - case 96: - if (!isViewerInPresentationMode) { - setTimeout(function () { - PDFViewerApplication.zoomReset(); - }); - handled = false; - } - break; - case 38: - if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { - PDFViewerApplication.page = 1; - handled = true; - ensureViewerFocused = true; - } - break; - case 40: - if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { - PDFViewerApplication.page = PDFViewerApplication.pagesCount; - handled = true; - ensureViewerFocused = true; - } - break; - } - } - if (cmd === 1 || cmd === 8) { - switch (evt.keyCode) { - case 83: - eventBus.dispatch("download", { - source: window - }); - handled = true; - break; - case 79: - { - eventBus.dispatch("openfile", { - source: window - }); - handled = true; - } - break; - } - } - if (cmd === 3 || cmd === 10) { - switch (evt.keyCode) { - case 80: - PDFViewerApplication.requestPresentationMode(); - handled = true; - PDFViewerApplication.externalServices.reportTelemetry({ - type: "buttons", - data: { - id: "presentationModeKeyboard" - } - }); - break; - case 71: - if (PDFViewerApplication.appConfig.toolbar) { - PDFViewerApplication.appConfig.toolbar.pageNumber.select(); - handled = true; - } - break; - } - } - if (handled) { - if (ensureViewerFocused && !isViewerInPresentationMode) { - pdfViewer.focus(); - } - evt.preventDefault(); - return; - } - const curElement = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.getActiveOrFocusedElement)(); - const curElementTagName = curElement?.tagName.toUpperCase(); - // [custom-input] - if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElementTagName === "BUTTON" && (evt.keyCode === 13 || evt.keyCode === 32) || curElement?.isContentEditable) { - if (evt.keyCode !== 27) { - return; - } - } - if (cmd === 0) { - let turnPage = 0, - turnOnlyIfPageFit = false; - switch (evt.keyCode) { - case 38: - if (PDFViewerApplication.supportsCaretBrowsingMode) { - PDFViewerApplication.moveCaret(true, false); - handled = true; - break; - } - case 33: - if (pdfViewer.isVerticalScrollbarEnabled) { - turnOnlyIfPageFit = true; - } - turnPage = -1; - break; - case 8: - if (!isViewerInPresentationMode) { - turnOnlyIfPageFit = true; - } - turnPage = -1; - break; - case 37: - if (PDFViewerApplication.supportsCaretBrowsingMode) { - return; - } - if (pdfViewer.isHorizontalScrollbarEnabled) { - turnOnlyIfPageFit = true; - } - case 75: - case 80: - turnPage = -1; - break; - case 27: - if (PDFViewerApplication.secondaryToolbar?.isOpen) { - PDFViewerApplication.secondaryToolbar.close(); - handled = true; - } - if (!PDFViewerApplication.supportsIntegratedFind && PDFViewerApplication.findBar?.opened) { - PDFViewerApplication.findBar.close(); - handled = true; - } - break; - case 40: - if (PDFViewerApplication.supportsCaretBrowsingMode) { - PDFViewerApplication.moveCaret(false, false); - handled = true; - break; - } - case 34: - if (pdfViewer.isVerticalScrollbarEnabled) { - turnOnlyIfPageFit = true; - } - turnPage = 1; - break; - case 13: - case 32: - if (!isViewerInPresentationMode) { - turnOnlyIfPageFit = true; - } - turnPage = 1; - break; - case 39: - if (PDFViewerApplication.supportsCaretBrowsingMode) { - return; - } - if (pdfViewer.isHorizontalScrollbarEnabled) { - turnOnlyIfPageFit = true; - } - case 74: - case 78: - turnPage = 1; - break; - case 36: - if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { - PDFViewerApplication.page = 1; - handled = true; - ensureViewerFocused = true; - } - break; - case 35: - if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { - PDFViewerApplication.page = PDFViewerApplication.pagesCount; - handled = true; - ensureViewerFocused = true; - } - break; - case 83: - PDFViewerApplication.pdfCursorTools?.switchTool(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.SELECT); - break; - case 72: - PDFViewerApplication.pdfCursorTools?.switchTool(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.HAND); - break; - case 82: - PDFViewerApplication.rotatePages(90); - break; - case 115: - PDFViewerApplication.pdfSidebar?.toggle(); - break; - } - if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === "page-fit")) { - if (turnPage > 0) { - pdfViewer.nextPage(); - } else { - pdfViewer.previousPage(); - } - handled = true; - } - } - if (cmd === 4) { - switch (evt.keyCode) { - case 13: - case 32: - if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== "page-fit") { - break; - } - pdfViewer.previousPage(); - handled = true; - break; - case 38: - PDFViewerApplication.moveCaret(true, true); - handled = true; - break; - case 40: - PDFViewerApplication.moveCaret(false, true); - handled = true; - break; - case 82: - PDFViewerApplication.rotatePages(-90); - break; - } - } - if (!handled && !isViewerInPresentationMode) { - if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== "BUTTON") { - ensureViewerFocused = true; - } - } - if (ensureViewerFocused && !pdfViewer.containsElement(curElement)) { - pdfViewer.focus(); - } - if (handled) { - evt.preventDefault(); - } -} -function beforeUnload(evt) { - evt.preventDefault(); - evt.returnValue = ""; - return false; -} -function webViewerAnnotationEditorStatesChanged(data) { - PDFViewerApplication.externalServices.updateEditorStates(data); -} -function webViewerReportTelemetry({ - details -}) { - PDFViewerApplication.externalServices.reportTelemetry(details); -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 9840: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AppOptions: () => (/* binding */ AppOptions), -/* harmony export */ OptionKind: () => (/* binding */ OptionKind) -/* harmony export */ }); -{ - var compatibilityParams = Object.create(null); - const userAgent = navigator.userAgent || ""; - const platform = navigator.platform || ""; - const maxTouchPoints = navigator.maxTouchPoints || 1; - const isAndroid = /Android/.test(userAgent); - const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; - (function checkCanvasSizeLimitation() { - if (isIOS || isAndroid) { - compatibilityParams.maxCanvasPixels = 5242880; - } - })(); -} -const OptionKind = { - BROWSER: 0x01, - VIEWER: 0x02, - API: 0x04, - WORKER: 0x08, - PREFERENCE: 0x80 -}; -const defaultOptions = { - canvasMaxAreaInBytes: { - value: -1, - kind: OptionKind.BROWSER + OptionKind.API - }, - isInAutomation: { - value: false, - kind: OptionKind.BROWSER - }, - supportsCaretBrowsingMode: { - value: false, - kind: OptionKind.BROWSER - }, - supportsDocumentFonts: { - value: true, - kind: OptionKind.BROWSER - }, - supportsIntegratedFind: { - value: false, - kind: OptionKind.BROWSER - }, - supportsMouseWheelZoomCtrlKey: { - value: true, - kind: OptionKind.BROWSER - }, - supportsMouseWheelZoomMetaKey: { - value: true, - kind: OptionKind.BROWSER - }, - supportsPinchToZoom: { - value: true, - kind: OptionKind.BROWSER - }, - annotationEditorMode: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - annotationMode: { - value: 2, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - cursorToolOnLoad: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - debuggerSrc: { - value: "./debugger.mjs", - kind: OptionKind.VIEWER - }, - defaultZoomDelay: { - value: 400, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - defaultZoomValue: { - value: "", - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - disableHistory: { - value: false, - kind: OptionKind.VIEWER - }, - disablePageLabels: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enableHighlightEditor: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enableHighlightFloatingButton: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enableML: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enablePermissions: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enablePrintAutoRotate: { - value: true, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enableScripting: { - value: true, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enableStampEditor: { - value: true, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - externalLinkRel: { - value: "noopener noreferrer nofollow", - kind: OptionKind.VIEWER - }, - externalLinkTarget: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - highlightEditorColors: { - value: "yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F", - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - historyUpdateUrl: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - ignoreDestinationZoom: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - imageResourcesPath: { - value: "./images/", - kind: OptionKind.VIEWER - }, - maxCanvasPixels: { - value: 2 ** 25, - kind: OptionKind.VIEWER - }, - forcePageColors: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - pageColorsBackground: { - value: "Canvas", - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - pageColorsForeground: { - value: "CanvasText", - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - pdfBugEnabled: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - printResolution: { - value: 150, - kind: OptionKind.VIEWER - }, - sidebarViewOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - scrollModeOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - spreadModeOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - textLayerMode: { - value: 1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - viewOnLoad: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - cMapPacked: { - value: true, - kind: OptionKind.API - }, - cMapUrl: { - value: "../web/cmaps/", - kind: OptionKind.API - }, - disableAutoFetch: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableFontFace: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableRange: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableStream: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - docBaseUrl: { - value: "", - kind: OptionKind.API - }, - enableXfa: { - value: true, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - fontExtraProperties: { - value: false, - kind: OptionKind.API - }, - isEvalSupported: { - value: true, - kind: OptionKind.API - }, - isOffscreenCanvasSupported: { - value: true, - kind: OptionKind.API - }, - maxImageSize: { - value: -1, - kind: OptionKind.API - }, - pdfBug: { - value: false, - kind: OptionKind.API - }, - standardFontDataUrl: { - value: "../web/standard_fonts/", - kind: OptionKind.API - }, - verbosity: { - value: 1, - kind: OptionKind.API - }, - workerPort: { - value: null, - kind: OptionKind.WORKER - }, - workerSrc: { - value: "../build/pdf.worker.mjs", - kind: OptionKind.WORKER - } -}; -{ - defaultOptions.defaultUrl = { - value: "", - kind: OptionKind.VIEWER - }; - defaultOptions.sandboxBundleSrc = { - value: "../build/pdf.sandbox.mjs", - kind: OptionKind.VIEWER - }; - defaultOptions.viewerCssTheme = { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }; -} -{ - defaultOptions.disablePreferences = { - value: false, - kind: OptionKind.VIEWER - }; - defaultOptions.locale = { - value: navigator.language || "en-US", - kind: OptionKind.VIEWER - }; -} -const userOptions = Object.create(null); -{ - for (const name in compatibilityParams) { - userOptions[name] = compatibilityParams[name]; - } -} -class AppOptions { - constructor() { - throw new Error("Cannot initialize AppOptions."); - } - static get(name) { - return userOptions[name] ?? defaultOptions[name]?.value ?? undefined; - } - static getAll(kind = null, defaultOnly = false) { - const options = Object.create(null); - for (const name in defaultOptions) { - const defaultOption = defaultOptions[name]; - if (kind && !(kind & defaultOption.kind)) { - continue; - } - options[name] = defaultOnly ? defaultOption.value : userOptions[name] ?? defaultOption.value; - } - return options; - } - static set(name, value) { - userOptions[name] = value; - } - static setAll(options, init = false) { - if (init) { - if (this.get("disablePreferences")) { - return; - } - for (const name in userOptions) { - if (compatibilityParams[name] !== undefined) { - continue; - } - console.warn("setAll: The Preferences may override manually set AppOptions; " + 'please use the "disablePreferences"-option in order to prevent that.'); - break; - } - } - for (const name in options) { - userOptions[name] = options[name]; - } - } - static remove(name) { - delete userOptions[name]; - const val = compatibilityParams[name]; - if (val !== undefined) { - userOptions[name] = val; - } - } -} - - -/***/ }), - -/***/ 2961: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ BaseTreeViewer: () => (/* binding */ BaseTreeViewer) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); - -const TREEITEM_OFFSET_TOP = -100; -const TREEITEM_SELECTED_CLASS = "selected"; -class BaseTreeViewer { - constructor(options) { - if (this.constructor === BaseTreeViewer) { - throw new Error("Cannot initialize BaseTreeViewer."); - } - this.container = options.container; - this.eventBus = options.eventBus; - this._l10n = options.l10n; - this.reset(); - } - reset() { - this._pdfDocument = null; - this._lastToggleIsShow = true; - this._currentTreeItem = null; - this.container.textContent = ""; - this.container.classList.remove("treeWithDeepNesting"); - } - _dispatchEvent(count) { - throw new Error("Not implemented: _dispatchEvent"); - } - _bindLink(element, params) { - throw new Error("Not implemented: _bindLink"); - } - _normalizeTextContent(str) { - return (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.removeNullCharacters)(str, true) || "\u2013"; - } - _addToggleButton(div, hidden = false) { - const toggler = document.createElement("div"); - toggler.className = "treeItemToggler"; - if (hidden) { - toggler.classList.add("treeItemsHidden"); - } - toggler.onclick = evt => { - evt.stopPropagation(); - toggler.classList.toggle("treeItemsHidden"); - if (evt.shiftKey) { - const shouldShowAll = !toggler.classList.contains("treeItemsHidden"); - this._toggleTreeItem(div, shouldShowAll); - } - }; - div.prepend(toggler); - } - _toggleTreeItem(root, show = false) { - this._l10n.pause(); - this._lastToggleIsShow = show; - for (const toggler of root.querySelectorAll(".treeItemToggler")) { - toggler.classList.toggle("treeItemsHidden", !show); - } - this._l10n.resume(); - } - _toggleAllTreeItems() { - this._toggleTreeItem(this.container, !this._lastToggleIsShow); - } - _finishRendering(fragment, count, hasAnyNesting = false) { - if (hasAnyNesting) { - this.container.classList.add("treeWithDeepNesting"); - this._lastToggleIsShow = !fragment.querySelector(".treeItemsHidden"); - } - this._l10n.pause(); - this.container.append(fragment); - this._l10n.resume(); - this._dispatchEvent(count); - } - render(params) { - throw new Error("Not implemented: render"); - } - _updateCurrentTreeItem(treeItem = null) { - if (this._currentTreeItem) { - this._currentTreeItem.classList.remove(TREEITEM_SELECTED_CLASS); - this._currentTreeItem = null; - } - if (treeItem) { - treeItem.classList.add(TREEITEM_SELECTED_CLASS); - this._currentTreeItem = treeItem; - } - } - _scrollToCurrentTreeItem(treeItem) { - if (!treeItem) { - return; - } - this._l10n.pause(); - let currentNode = treeItem.parentNode; - while (currentNode && currentNode !== this.container) { - if (currentNode.classList.contains("treeItem")) { - const toggler = currentNode.firstElementChild; - toggler?.classList.remove("treeItemsHidden"); - } - currentNode = currentNode.parentNode; - } - this._l10n.resume(); - this._updateCurrentTreeItem(treeItem); - this.container.scrollTo(treeItem.offsetLeft, treeItem.offsetTop + TREEITEM_OFFSET_TOP); - } -} - - -/***/ }), - -/***/ 3973: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CaretBrowsingMode: () => (/* binding */ CaretBrowsingMode) -/* harmony export */ }); -const PRECISION = 1e-1; -class CaretBrowsingMode { - #mainContainer; - #toolBarHeight; - #viewerContainer; - constructor(mainContainer, viewerContainer, toolbarContainer) { - this.#mainContainer = mainContainer; - this.#viewerContainer = viewerContainer; - this.#toolBarHeight = toolbarContainer?.getBoundingClientRect().height ?? 0; - } - #isOnSameLine(rect1, rect2) { - const top1 = rect1.y; - const bot1 = rect1.bottom; - const mid1 = rect1.y + rect1.height / 2; - const top2 = rect2.y; - const bot2 = rect2.bottom; - const mid2 = rect2.y + rect2.height / 2; - return top1 <= mid2 && mid2 <= bot1 || top2 <= mid1 && mid1 <= bot2; - } - #isUnderOver(rect, x, y, isUp) { - const midY = rect.y + rect.height / 2; - return (isUp ? y >= midY : y <= midY) && rect.x - PRECISION <= x && x <= rect.right + PRECISION; - } - #isVisible(rect) { - return rect.top >= this.#toolBarHeight && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth); - } - #getCaretPosition(selection, isUp) { - const { - focusNode, - focusOffset - } = selection; - const range = document.createRange(); - range.setStart(focusNode, focusOffset); - range.setEnd(focusNode, focusOffset); - const rect = range.getBoundingClientRect(); - return [rect.x, isUp ? rect.top : rect.bottom]; - } - static #caretPositionFromPoint(x, y) { - if (!document.caretPositionFromPoint) { - const { - startContainer: offsetNode, - startOffset: offset - } = document.caretRangeFromPoint(x, y); - return { - offsetNode, - offset - }; - } - return document.caretPositionFromPoint(x, y); - } - #setCaretPositionHelper(selection, caretX, select, element, rect) { - rect ||= element.getBoundingClientRect(); - if (caretX <= rect.x + PRECISION) { - if (select) { - selection.extend(element.firstChild, 0); - } else { - selection.setPosition(element.firstChild, 0); - } - return; - } - if (rect.right - PRECISION <= caretX) { - const { - lastChild - } = element; - if (select) { - selection.extend(lastChild, lastChild.length); - } else { - selection.setPosition(lastChild, lastChild.length); - } - return; - } - const midY = rect.y + rect.height / 2; - let caretPosition = CaretBrowsingMode.#caretPositionFromPoint(caretX, midY); - let parentElement = caretPosition.offsetNode?.parentElement; - if (parentElement && parentElement !== element) { - const elementsAtPoint = document.elementsFromPoint(caretX, midY); - const savedVisibilities = []; - for (const el of elementsAtPoint) { - if (el === element) { - break; - } - const { - style - } = el; - savedVisibilities.push([el, style.visibility]); - style.visibility = "hidden"; - } - caretPosition = CaretBrowsingMode.#caretPositionFromPoint(caretX, midY); - parentElement = caretPosition.offsetNode?.parentElement; - for (const [el, visibility] of savedVisibilities) { - el.style.visibility = visibility; - } - } - if (parentElement !== element) { - if (select) { - selection.extend(element.firstChild, 0); - } else { - selection.setPosition(element.firstChild, 0); - } - return; - } - if (select) { - selection.extend(caretPosition.offsetNode, caretPosition.offset); - } else { - selection.setPosition(caretPosition.offsetNode, caretPosition.offset); - } - } - #setCaretPosition(select, selection, newLineElement, newLineElementRect, caretX) { - if (this.#isVisible(newLineElementRect)) { - this.#setCaretPositionHelper(selection, caretX, select, newLineElement, newLineElementRect); - return; - } - this.#mainContainer.addEventListener("scrollend", this.#setCaretPositionHelper.bind(this, selection, caretX, select, newLineElement, null), { - once: true - }); - newLineElement.scrollIntoView(); - } - #getNodeOnNextPage(textLayer, isUp) { - while (true) { - const page = textLayer.closest(".page"); - const pageNumber = parseInt(page.getAttribute("data-page-number")); - const nextPage = isUp ? pageNumber - 1 : pageNumber + 1; - textLayer = this.#viewerContainer.querySelector(`.page[data-page-number="${nextPage}"] .textLayer`); - if (!textLayer) { - return null; - } - const walker = document.createTreeWalker(textLayer, NodeFilter.SHOW_TEXT); - const node = isUp ? walker.lastChild() : walker.firstChild(); - if (node) { - return node; - } - } - } - moveCaret(isUp, select) { - const selection = document.getSelection(); - if (selection.rangeCount === 0) { - return; - } - const { - focusNode - } = selection; - const focusElement = focusNode.nodeType !== Node.ELEMENT_NODE ? focusNode.parentElement : focusNode; - const root = focusElement.closest(".textLayer"); - if (!root) { - return; - } - const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT); - walker.currentNode = focusNode; - const focusRect = focusElement.getBoundingClientRect(); - let newLineElement = null; - const nodeIterator = (isUp ? walker.previousSibling : walker.nextSibling).bind(walker); - while (nodeIterator()) { - const element = walker.currentNode.parentElement; - if (!this.#isOnSameLine(focusRect, element.getBoundingClientRect())) { - newLineElement = element; - break; - } - } - if (!newLineElement) { - const node = this.#getNodeOnNextPage(root, isUp); - if (!node) { - return; - } - if (select) { - const lastNode = (isUp ? walker.firstChild() : walker.lastChild()) || focusNode; - selection.extend(lastNode, isUp ? 0 : lastNode.length); - const range = document.createRange(); - range.setStart(node, isUp ? node.length : 0); - range.setEnd(node, isUp ? node.length : 0); - selection.addRange(range); - return; - } - const [caretX] = this.#getCaretPosition(selection, isUp); - const { - parentElement - } = node; - this.#setCaretPosition(select, selection, parentElement, parentElement.getBoundingClientRect(), caretX); - return; - } - const [caretX, caretY] = this.#getCaretPosition(selection, isUp); - const newLineElementRect = newLineElement.getBoundingClientRect(); - if (this.#isUnderOver(newLineElementRect, caretX, caretY, isUp)) { - this.#setCaretPosition(select, selection, newLineElement, newLineElementRect, caretX); - return; - } - while (nodeIterator()) { - const element = walker.currentNode.parentElement; - const elementRect = element.getBoundingClientRect(); - if (!this.#isOnSameLine(newLineElementRect, elementRect)) { - break; - } - if (this.#isUnderOver(elementRect, caretX, caretY, isUp)) { - this.#setCaretPosition(select, selection, element, elementRect, caretX); - return; - } - } - this.#setCaretPosition(select, selection, newLineElement, newLineElementRect, caretX); - } -} - - -/***/ }), - -/***/ 1544: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ DownloadManager: () => (/* binding */ DownloadManager) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - -function download(blobUrl, filename) { - const a = document.createElement("a"); - if (!a.click) { - throw new Error('DownloadManager: "a.click()" is not supported.'); - } - a.href = blobUrl; - a.target = "_parent"; - if ("download" in a) { - a.download = filename; - } - (document.body || document.documentElement).append(a); - a.click(); - a.remove(); -} -class DownloadManager { - #openBlobUrls = new WeakMap(); - downloadUrl(url, filename, _options) { - if (!(0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.createValidAbsoluteUrl)(url, "http://example.com")) { - console.error(`downloadUrl - not a valid URL: ${url}`); - return; - } - download(url + "#pdfjs.action=download", filename); - } - downloadData(data, filename, contentType) { - const blobUrl = URL.createObjectURL(new Blob([data], { - type: contentType - })); - download(blobUrl, filename); - } - openOrDownloadData(data, filename, dest = null) { - const isPdfData = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.isPdfFile)(filename); - const contentType = isPdfData ? "application/pdf" : ""; - if (isPdfData) { - let blobUrl = this.#openBlobUrls.get(data); - if (!blobUrl) { - blobUrl = URL.createObjectURL(new Blob([data], { - type: contentType - })); - this.#openBlobUrls.set(data, blobUrl); - } - let viewerUrl; - viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); - if (dest) { - viewerUrl += `#${escape(dest)}`; - } - try { - window.open(viewerUrl); - return true; - } catch (ex) { - console.error(`openOrDownloadData: ${ex}`); - URL.revokeObjectURL(blobUrl); - this.#openBlobUrls.delete(data); - } - } - this.downloadData(data, filename, contentType); - return false; - } - download(blob, url, filename, _options) { - const blobUrl = URL.createObjectURL(blob); - download(blobUrl, filename); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 3088: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ DrawLayerBuilder: () => (/* binding */ DrawLayerBuilder) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - -class DrawLayerBuilder { - #drawLayer = null; - constructor(options) { - this.pageIndex = options.pageIndex; - } - async render(intent = "display") { - if (intent !== "display" || this.#drawLayer || this._cancelled) { - return; - } - this.#drawLayer = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.DrawLayer({ - pageIndex: this.pageIndex - }); - } - cancel() { - this._cancelled = true; - if (!this.#drawLayer) { - return; - } - this.#drawLayer.destroy(); - this.#drawLayer = null; - } - setParent(parent) { - this.#drawLayer?.setParent(parent); - } - getDrawLayer() { - return this.#drawLayer; - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 5656: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AutomationEventBus: () => (/* binding */ AutomationEventBus), -/* harmony export */ EventBus: () => (/* binding */ EventBus), -/* harmony export */ waitOnEventOrTimeout: () => (/* binding */ waitOnEventOrTimeout) -/* harmony export */ }); -/* unused harmony export WaitOnType */ -const WaitOnType = { - EVENT: "event", - TIMEOUT: "timeout" -}; -async function waitOnEventOrTimeout({ - target, - name, - delay = 0 -}) { - if (typeof target !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) { - throw new Error("waitOnEventOrTimeout - invalid parameters."); - } - const { - promise, - resolve - } = Promise.withResolvers(); - const ac = new AbortController(); - function handler(type) { - ac.abort(); - clearTimeout(timeout); - resolve(type); - } - const evtMethod = target instanceof EventBus ? "_on" : "addEventListener"; - target[evtMethod](name, handler.bind(null, WaitOnType.EVENT), { - signal: ac.signal - }); - const timeout = setTimeout(handler.bind(null, WaitOnType.TIMEOUT), delay); - return promise; -} -class EventBus { - #listeners = Object.create(null); - on(eventName, listener, options = null) { - this._on(eventName, listener, { - external: true, - once: options?.once, - signal: options?.signal - }); - } - off(eventName, listener, options = null) { - this._off(eventName, listener); - } - dispatch(eventName, data) { - const eventListeners = this.#listeners[eventName]; - if (!eventListeners || eventListeners.length === 0) { - return; - } - let externalListeners; - for (const { - listener, - external, - once - } of eventListeners.slice(0)) { - if (once) { - this._off(eventName, listener); - } - if (external) { - (externalListeners ||= []).push(listener); - continue; - } - listener(data); - } - if (externalListeners) { - for (const listener of externalListeners) { - listener(data); - } - externalListeners = null; - } - } - _on(eventName, listener, options = null) { - let rmAbort = null; - if (options?.signal instanceof AbortSignal) { - const { - signal - } = options; - if (signal.aborted) { - console.error("Cannot use an `aborted` signal."); - return; - } - const onAbort = () => this._off(eventName, listener); - rmAbort = () => signal.removeEventListener("abort", onAbort); - signal.addEventListener("abort", onAbort); - } - const eventListeners = this.#listeners[eventName] ||= []; - eventListeners.push({ - listener, - external: options?.external === true, - once: options?.once === true, - rmAbort - }); - } - _off(eventName, listener, options = null) { - const eventListeners = this.#listeners[eventName]; - if (!eventListeners) { - return; - } - for (let i = 0, ii = eventListeners.length; i < ii; i++) { - const evt = eventListeners[i]; - if (evt.listener === listener) { - evt.rmAbort?.(); - eventListeners.splice(i, 1); - return; - } - } - } -} -class AutomationEventBus extends EventBus { - dispatch(eventName, data) { - throw new Error("Not implemented: AutomationEventBus.dispatch"); - } -} - - -/***/ }), - -/***/ 4290: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ BaseExternalServices: () => (/* binding */ BaseExternalServices) -/* harmony export */ }); -class BaseExternalServices { - constructor() { - if (this.constructor === BaseExternalServices) { - throw new Error("Cannot initialize BaseExternalServices."); - } - } - updateFindControlState(data) {} - updateFindMatchesCount(data) {} - initPassiveLoading() {} - reportTelemetry(data) {} - async createL10n() { - throw new Error("Not implemented: createL10n"); - } - createScripting() { - throw new Error("Not implemented: createScripting"); - } - updateEditorStates(data) { - throw new Error("Not implemented: updateEditorStates"); - } - async getNimbusExperimentData() {} -} - - -/***/ }), - -/***/ 289: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ GenericScripting: () => (/* binding */ GenericScripting) -/* harmony export */ }); -/* unused harmony export docProperties */ -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - -async function docProperties(pdfDocument) { - const url = "", - baseUrl = url.split("#", 1)[0]; - let { - info, - metadata, - contentDispositionFilename, - contentLength - } = await pdfDocument.getMetadata(); - if (!contentLength) { - const { - length - } = await pdfDocument.getDownloadInfo(); - contentLength = length; - } - return { - ...info, - baseURL: baseUrl, - filesize: contentLength, - filename: contentDispositionFilename || getPdfFilenameFromUrl(url), - metadata: metadata?.getRaw(), - authors: metadata?.get("dc:creator"), - numPages: pdfDocument.numPages, - URL: url - }; -} -class GenericScripting { - constructor(sandboxBundleSrc) { - this._ready = new Promise((resolve, reject) => { - const sandbox = import( /*webpackIgnore: true*/sandboxBundleSrc); - sandbox.then(pdfjsSandbox => { - resolve(pdfjsSandbox.QuickJSSandbox()); - }).catch(reject); - }); - } - async createSandbox(data) { - const sandbox = await this._ready; - sandbox.create(data); - } - async dispatchEventInSandbox(event) { - const sandbox = await this._ready; - setTimeout(() => sandbox.dispatchEvent(event), 0); - } - async destroySandbox() { - const sandbox = await this._ready; - sandbox.nukeSandbox(); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 6750: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ExternalServices: () => (/* binding */ ExternalServices), -/* harmony export */ MLManager: () => (/* binding */ MLManager), -/* harmony export */ Preferences: () => (/* binding */ Preferences), -/* harmony export */ initCom: () => (/* binding */ initCom) -/* harmony export */ }); -/* harmony import */ var _app_options_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9840); -/* harmony import */ var _external_services_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4290); -/* harmony import */ var _preferences_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8224); -/* harmony import */ var _genericl10n_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(410); -/* harmony import */ var _generic_scripting_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(289); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_genericl10n_js__WEBPACK_IMPORTED_MODULE_2__, _generic_scripting_js__WEBPACK_IMPORTED_MODULE_3__]); -([_genericl10n_js__WEBPACK_IMPORTED_MODULE_2__, _generic_scripting_js__WEBPACK_IMPORTED_MODULE_3__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); - - - - - -function initCom(app) {} -class Preferences extends _preferences_js__WEBPACK_IMPORTED_MODULE_1__.BasePreferences { - async _writeToStorage(prefObj) { - localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); - } - async _readFromStorage(prefObj) { - return { - prefs: JSON.parse(localStorage.getItem("pdfjs.preferences")) - }; - } -} -class ExternalServices extends _external_services_js__WEBPACK_IMPORTED_MODULE_4__.BaseExternalServices { - async createL10n() { - return new _genericl10n_js__WEBPACK_IMPORTED_MODULE_2__.GenericL10n(_app_options_js__WEBPACK_IMPORTED_MODULE_0__.AppOptions.get("locale")); - } - createScripting() { - return new _generic_scripting_js__WEBPACK_IMPORTED_MODULE_3__.GenericScripting(_app_options_js__WEBPACK_IMPORTED_MODULE_0__.AppOptions.get("sandboxBundleSrc")); - } -} -class MLManager { - async guess() { - return null; - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 410: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ GenericL10n: () => (/* binding */ GenericL10n) -/* harmony export */ }); -/* harmony import */ var fluent_bundle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(588); -/* harmony import */ var fluent_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5273); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2603); -/* harmony import */ var _l10n_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4693); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - - - -function createBundle(lang, text) { - const resource = new fluent_bundle__WEBPACK_IMPORTED_MODULE_0__.FluentResource(text); - const bundle = new fluent_bundle__WEBPACK_IMPORTED_MODULE_0__.FluentBundle(lang); - const errors = bundle.addResource(resource); - if (errors.length) { - console.error("L10n errors", errors); - } - return bundle; -} -class GenericL10n extends _l10n_js__WEBPACK_IMPORTED_MODULE_3__.L10n { - constructor(lang) { - super({ - lang - }); - const generateBundles = !lang ? GenericL10n.#generateBundlesFallback.bind(GenericL10n, this.getLanguage()) : GenericL10n.#generateBundles.bind(GenericL10n, "en-us", this.getLanguage()); - this._setL10n(new fluent_dom__WEBPACK_IMPORTED_MODULE_1__.DOMLocalization([], generateBundles)); - } - static async *#generateBundles(defaultLang, baseLang) { - const { - baseURL, - paths - } = await this.#getPaths(); - const langs = [baseLang]; - if (defaultLang !== baseLang) { - const shortLang = baseLang.split("-", 1)[0]; - if (shortLang !== baseLang) { - langs.push(shortLang); - } - langs.push(defaultLang); - } - for (const lang of langs) { - const bundle = await this.#createBundle(lang, baseURL, paths); - if (bundle) { - yield bundle; - } - if (lang === "en-us") { - yield this.#createBundleFallback(lang); - } - } - } - static async #createBundle(lang, baseURL, paths) { - const path = paths[lang]; - if (!path) { - return null; - } - const url = new URL(path, baseURL); - const text = await (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__.fetchData)(url, "text"); - return createBundle(lang, text); - } - static async #getPaths() { - try { - const { - href - } = document.querySelector(`link[type="application/l10n"]`); - const paths = await (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_2__.fetchData)(href, "json"); - return { - baseURL: href.replace(/[^/]*$/, "") || "./", - paths - }; - } catch {} - return { - baseURL: "./", - paths: Object.create(null) - }; - } - static async *#generateBundlesFallback(lang) { - yield this.#createBundleFallback(lang); - } - static async #createBundleFallback(lang) { - const text = "pdfjs-previous-button =\n .title = Previous Page\npdfjs-previous-button-label = Previous\npdfjs-next-button =\n .title = Next Page\npdfjs-next-button-label = Next\npdfjs-page-input =\n .title = Page\npdfjs-of-pages = / { $pagesCount }\npdfjs-page-of-pages = ({ $pageNumber } of { $pagesCount })\npdfjs-zoom-out-button =\n .title = Zoom Out\npdfjs-zoom-out-button-label = Zoom Out\npdfjs-zoom-in-button =\n .title = Zoom In\npdfjs-zoom-in-button-label = Zoom In\npdfjs-zoom-select =\n .title = Zoom\npdfjs-presentation-mode-button =\n .title = Switch to Presentation Mode\npdfjs-presentation-mode-button-label = Presentation Mode\npdfjs-open-file-button =\n .title = Open File\npdfjs-open-file-button-label = Open\npdfjs-print-button =\n .title = Print\npdfjs-print-button-label = Print\npdfjs-save-button =\n .title = Save\npdfjs-save-button-label = Save\npdfjs-download-button =\n .title = Download\npdfjs-download-button-label = Download\npdfjs-bookmark-button =\n .title = Current Page (View URL from Current Page)\npdfjs-bookmark-button-label = Current Page\npdfjs-tools-button =\n .title = Tools\npdfjs-tools-button-label = Tools\npdfjs-first-page-button =\n .title = Go to First Page\npdfjs-first-page-button-label = Go to First Page\npdfjs-last-page-button =\n .title = Go to Last Page\npdfjs-last-page-button-label = Go to Last Page\npdfjs-page-rotate-cw-button =\n .title = Rotate Clockwise\npdfjs-page-rotate-cw-button-label = Rotate Clockwise\npdfjs-page-rotate-ccw-button =\n .title = Rotate Counterclockwise\npdfjs-page-rotate-ccw-button-label = Rotate Counterclockwise\npdfjs-cursor-text-select-tool-button =\n .title = Enable Text Selection Tool\npdfjs-cursor-text-select-tool-button-label = Text Selection Tool\npdfjs-cursor-hand-tool-button =\n .title = Enable Hand Tool\npdfjs-cursor-hand-tool-button-label = Hand Tool\npdfjs-scroll-page-button =\n .title = Use Page Scrolling\npdfjs-scroll-page-button-label = Page Scrolling\npdfjs-scroll-vertical-button =\n .title = Use Vertical Scrolling\npdfjs-scroll-vertical-button-label = Vertical Scrolling\npdfjs-scroll-horizontal-button =\n .title = Use Horizontal Scrolling\npdfjs-scroll-horizontal-button-label = Horizontal Scrolling\npdfjs-scroll-wrapped-button =\n .title = Use Wrapped Scrolling\npdfjs-scroll-wrapped-button-label = Wrapped Scrolling\npdfjs-spread-none-button =\n .title = Do not join page spreads\npdfjs-spread-none-button-label = No Spreads\npdfjs-spread-odd-button =\n .title = Join page spreads starting with odd-numbered pages\npdfjs-spread-odd-button-label = Odd Spreads\npdfjs-spread-even-button =\n .title = Join page spreads starting with even-numbered pages\npdfjs-spread-even-button-label = Even Spreads\npdfjs-document-properties-button =\n .title = Document Properties\u2026\npdfjs-document-properties-button-label = Document Properties\u2026\npdfjs-document-properties-file-name = File name:\npdfjs-document-properties-file-size = File size:\npdfjs-document-properties-kb = { $size_kb } KB ({ $size_b } bytes)\npdfjs-document-properties-mb = { $size_mb } MB ({ $size_b } bytes)\npdfjs-document-properties-title = Title:\npdfjs-document-properties-author = Author:\npdfjs-document-properties-subject = Subject:\npdfjs-document-properties-keywords = Keywords:\npdfjs-document-properties-creation-date = Creation Date:\npdfjs-document-properties-modification-date = Modification Date:\npdfjs-document-properties-date-string = { $date }, { $time }\npdfjs-document-properties-creator = Creator:\npdfjs-document-properties-producer = PDF Producer:\npdfjs-document-properties-version = PDF Version:\npdfjs-document-properties-page-count = Page Count:\npdfjs-document-properties-page-size = Page Size:\npdfjs-document-properties-page-size-unit-inches = in\npdfjs-document-properties-page-size-unit-millimeters = mm\npdfjs-document-properties-page-size-orientation-portrait = portrait\npdfjs-document-properties-page-size-orientation-landscape = landscape\npdfjs-document-properties-page-size-name-a-three = A3\npdfjs-document-properties-page-size-name-a-four = A4\npdfjs-document-properties-page-size-name-letter = Letter\npdfjs-document-properties-page-size-name-legal = Legal\npdfjs-document-properties-page-size-dimension-string = { $width } \xD7 { $height } { $unit } ({ $orientation })\npdfjs-document-properties-page-size-dimension-name-string = { $width } \xD7 { $height } { $unit } ({ $name }, { $orientation })\npdfjs-document-properties-linearized = Fast Web View:\npdfjs-document-properties-linearized-yes = Yes\npdfjs-document-properties-linearized-no = No\npdfjs-document-properties-close-button = Close\npdfjs-print-progress-message = Preparing document for printing\u2026\npdfjs-print-progress-percent = { $progress }%\npdfjs-print-progress-close-button = Cancel\npdfjs-printing-not-supported = Warning: Printing is not fully supported by this browser.\npdfjs-printing-not-ready = Warning: The PDF is not fully loaded for printing.\npdfjs-toggle-sidebar-button =\n .title = Toggle Sidebar\npdfjs-toggle-sidebar-notification-button =\n .title = Toggle Sidebar (document contains outline/attachments/layers)\npdfjs-toggle-sidebar-button-label = Toggle Sidebar\npdfjs-document-outline-button =\n .title = Show Document Outline (double-click to expand/collapse all items)\npdfjs-document-outline-button-label = Document Outline\npdfjs-attachments-button =\n .title = Show Attachments\npdfjs-attachments-button-label = Attachments\npdfjs-layers-button =\n .title = Show Layers (double-click to reset all layers to the default state)\npdfjs-layers-button-label = Layers\npdfjs-thumbs-button =\n .title = Show Thumbnails\npdfjs-thumbs-button-label = Thumbnails\npdfjs-current-outline-item-button =\n .title = Find Current Outline Item\npdfjs-current-outline-item-button-label = Current Outline Item\npdfjs-findbar-button =\n .title = Find in Document\npdfjs-findbar-button-label = Find\npdfjs-additional-layers = Additional Layers\npdfjs-thumb-page-title =\n .title = Page { $page }\npdfjs-thumb-page-canvas =\n .aria-label = Thumbnail of Page { $page }\npdfjs-find-input =\n .title = Find\n .placeholder = Find in document\u2026\npdfjs-find-previous-button =\n .title = Find the previous occurrence of the phrase\npdfjs-find-previous-button-label = Previous\npdfjs-find-next-button =\n .title = Find the next occurrence of the phrase\npdfjs-find-next-button-label = Next\npdfjs-find-highlight-checkbox = Highlight All\npdfjs-find-match-case-checkbox-label = Match Case\npdfjs-find-match-diacritics-checkbox-label = Match Diacritics\npdfjs-find-entire-word-checkbox-label = Whole Words\npdfjs-find-reached-top = Reached top of document, continued from bottom\npdfjs-find-reached-bottom = Reached end of document, continued from top\npdfjs-find-match-count =\n { $total ->\n [one] { $current } of { $total } match\n *[other] { $current } of { $total } matches\n }\npdfjs-find-match-count-limit =\n { $limit ->\n [one] More than { $limit } match\n *[other] More than { $limit } matches\n }\npdfjs-find-not-found = Phrase not found\npdfjs-page-scale-width = Page Width\npdfjs-page-scale-fit = Page Fit\npdfjs-page-scale-auto = Automatic Zoom\npdfjs-page-scale-actual = Actual Size\npdfjs-page-scale-percent = { $scale }%\npdfjs-page-landmark =\n .aria-label = Page { $page }\npdfjs-loading-error = An error occurred while loading the PDF.\npdfjs-invalid-file-error = Invalid or corrupted PDF file.\npdfjs-missing-file-error = Missing PDF file.\npdfjs-unexpected-response-error = Unexpected server response.\npdfjs-rendering-error = An error occurred while rendering the page.\npdfjs-annotation-date-string = { $date }, { $time }\npdfjs-text-annotation-type =\n .alt = [{ $type } Annotation]\npdfjs-password-label = Enter the password to open this PDF file.\npdfjs-password-invalid = Invalid password. Please try again.\npdfjs-password-ok-button = OK\npdfjs-password-cancel-button = Cancel\npdfjs-web-fonts-disabled = Web fonts are disabled: unable to use embedded PDF fonts.\npdfjs-editor-free-text-button =\n .title = Text\npdfjs-editor-free-text-button-label = Text\npdfjs-editor-ink-button =\n .title = Draw\npdfjs-editor-ink-button-label = Draw\npdfjs-editor-stamp-button =\n .title = Add or edit images\npdfjs-editor-stamp-button-label = Add or edit images\npdfjs-editor-highlight-button =\n .title = Highlight\npdfjs-editor-highlight-button-label = Highlight\npdfjs-highlight-floating-button1 =\n .title = Highlight\n .aria-label = Highlight\npdfjs-highlight-floating-button-label = Highlight\npdfjs-editor-remove-ink-button =\n .title = Remove drawing\npdfjs-editor-remove-freetext-button =\n .title = Remove text\npdfjs-editor-remove-stamp-button =\n .title = Remove image\npdfjs-editor-remove-highlight-button =\n .title = Remove highlight\npdfjs-editor-free-text-color-input = Color\npdfjs-editor-free-text-size-input = Size\npdfjs-editor-ink-color-input = Color\npdfjs-editor-ink-thickness-input = Thickness\npdfjs-editor-ink-opacity-input = Opacity\npdfjs-editor-stamp-add-image-button =\n .title = Add image\npdfjs-editor-stamp-add-image-button-label = Add image\npdfjs-editor-free-highlight-thickness-input = Thickness\npdfjs-editor-free-highlight-thickness-title =\n .title = Change thickness when highlighting items other than text\npdfjs-free-text =\n .aria-label = Text Editor\npdfjs-free-text-default-content = Start typing\u2026\npdfjs-ink =\n .aria-label = Draw Editor\npdfjs-ink-canvas =\n .aria-label = User-created image\npdfjs-editor-alt-text-button-label = Alt text\npdfjs-editor-alt-text-edit-button-label = Edit alt text\npdfjs-editor-alt-text-dialog-label = Choose an option\npdfjs-editor-alt-text-dialog-description = Alt text (alternative text) helps when people can\u2019t see the image or when it doesn\u2019t load.\npdfjs-editor-alt-text-add-description-label = Add a description\npdfjs-editor-alt-text-add-description-description = Aim for 1-2 sentences that describe the subject, setting, or actions.\npdfjs-editor-alt-text-mark-decorative-label = Mark as decorative\npdfjs-editor-alt-text-mark-decorative-description = This is used for ornamental images, like borders or watermarks.\npdfjs-editor-alt-text-cancel-button = Cancel\npdfjs-editor-alt-text-save-button = Save\npdfjs-editor-alt-text-decorative-tooltip = Marked as decorative\npdfjs-editor-alt-text-textarea =\n .placeholder = For example, \u201CA young man sits down at a table to eat a meal\u201D\npdfjs-editor-resizer-label-top-left = Top left corner \u2014 resize\npdfjs-editor-resizer-label-top-middle = Top middle \u2014 resize\npdfjs-editor-resizer-label-top-right = Top right corner \u2014 resize\npdfjs-editor-resizer-label-middle-right = Middle right \u2014 resize\npdfjs-editor-resizer-label-bottom-right = Bottom right corner \u2014 resize\npdfjs-editor-resizer-label-bottom-middle = Bottom middle \u2014 resize\npdfjs-editor-resizer-label-bottom-left = Bottom left corner \u2014 resize\npdfjs-editor-resizer-label-middle-left = Middle left \u2014 resize\npdfjs-editor-highlight-colorpicker-label = Highlight color\npdfjs-editor-colorpicker-button =\n .title = Change color\npdfjs-editor-colorpicker-dropdown =\n .aria-label = Color choices\npdfjs-editor-colorpicker-yellow =\n .title = Yellow\npdfjs-editor-colorpicker-green =\n .title = Green\npdfjs-editor-colorpicker-blue =\n .title = Blue\npdfjs-editor-colorpicker-pink =\n .title = Pink\npdfjs-editor-colorpicker-red =\n .title = Red\npdfjs-editor-highlight-show-all-button-label = Show all\npdfjs-editor-highlight-show-all-button =\n .title = Show all"; - return createBundle(lang, text); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 2640: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ GrabToPan: () => (/* binding */ GrabToPan) -/* harmony export */ }); -const CSS_CLASS_GRAB = "grab-to-pan-grab"; -class GrabToPan { - constructor({ - element - }) { - this.element = element; - this.document = element.ownerDocument; - this.activate = this.activate.bind(this); - this.deactivate = this.deactivate.bind(this); - this.toggle = this.toggle.bind(this); - this._onMouseDown = this.#onMouseDown.bind(this); - this._onMouseMove = this.#onMouseMove.bind(this); - this._endPan = this.#endPan.bind(this); - const overlay = this.overlay = document.createElement("div"); - overlay.className = "grab-to-pan-grabbing"; - } - activate() { - if (!this.active) { - this.active = true; - this.element.addEventListener("mousedown", this._onMouseDown, true); - this.element.classList.add(CSS_CLASS_GRAB); - } - } - deactivate() { - if (this.active) { - this.active = false; - this.element.removeEventListener("mousedown", this._onMouseDown, true); - this._endPan(); - this.element.classList.remove(CSS_CLASS_GRAB); - } - } - toggle() { - if (this.active) { - this.deactivate(); - } else { - this.activate(); - } - } - ignoreTarget(node) { - return node.matches("a[href], a[href] *, input, textarea, button, button *, select, option"); - } - #onMouseDown(event) { - if (event.button !== 0 || this.ignoreTarget(event.target)) { - return; - } - if (event.originalTarget) { - try { - event.originalTarget.tagName; - } catch { - return; - } - } - this.scrollLeftStart = this.element.scrollLeft; - this.scrollTopStart = this.element.scrollTop; - this.clientXStart = event.clientX; - this.clientYStart = event.clientY; - this.document.addEventListener("mousemove", this._onMouseMove, true); - this.document.addEventListener("mouseup", this._endPan, true); - this.element.addEventListener("scroll", this._endPan, true); - event.preventDefault(); - event.stopPropagation(); - const focusedElement = document.activeElement; - if (focusedElement && !focusedElement.contains(event.target)) { - focusedElement.blur(); - } - } - #onMouseMove(event) { - this.element.removeEventListener("scroll", this._endPan, true); - if (!(event.buttons & 1)) { - this._endPan(); - return; - } - const xDiff = event.clientX - this.clientXStart; - const yDiff = event.clientY - this.clientYStart; - this.element.scrollTo({ - top: this.scrollTopStart - yDiff, - left: this.scrollLeftStart - xDiff, - behavior: "instant" - }); - if (!this.overlay.parentNode) { - document.body.append(this.overlay); - } - } - #endPan() { - this.element.removeEventListener("scroll", this._endPan, true); - this.document.removeEventListener("mousemove", this._onMouseMove, true); - this.document.removeEventListener("mouseup", this._endPan, true); - this.overlay.remove(); - } -} - - -/***/ }), - -/***/ 4693: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ L10n: () => (/* binding */ L10n) -/* harmony export */ }); -/* unused harmony export GenericL10n */ -class L10n { - #dir; - #lang; - #l10n; - constructor({ - lang, - isRTL - }, l10n = null) { - this.#lang = L10n.#fixupLangCode(lang); - this.#l10n = l10n; - this.#dir = isRTL ?? L10n.#isRTL(this.#lang) ? "rtl" : "ltr"; - } - _setL10n(l10n) { - this.#l10n = l10n; - } - getLanguage() { - return this.#lang; - } - getDirection() { - return this.#dir; - } - async get(ids, args = null, fallback) { - if (Array.isArray(ids)) { - ids = ids.map(id => ({ - id - })); - const messages = await this.#l10n.formatMessages(ids); - return messages.map(message => message.value); - } - const messages = await this.#l10n.formatMessages([{ - id: ids, - args - }]); - return messages?.[0].value || fallback; - } - async translate(element) { - try { - this.#l10n.connectRoot(element); - await this.#l10n.translateRoots(); - } catch {} - } - pause() { - this.#l10n.pauseObserving(); - } - resume() { - this.#l10n.resumeObserving(); - } - static #fixupLangCode(langCode) { - langCode = langCode?.toLowerCase() || "en-us"; - const PARTIAL_LANG_CODES = { - en: "en-us", - es: "es-es", - fy: "fy-nl", - ga: "ga-ie", - gu: "gu-in", - hi: "hi-in", - hy: "hy-am", - nb: "nb-no", - ne: "ne-np", - nn: "nn-no", - pa: "pa-in", - pt: "pt-pt", - sv: "sv-se", - zh: "zh-cn" - }; - return PARTIAL_LANG_CODES[langCode] || langCode; - } - static #isRTL(lang) { - const shortCode = lang.split("-", 1)[0]; - return ["ar", "he", "fa", "ps", "ur"].includes(shortCode); - } -} -const GenericL10n = null; - - -/***/ }), - -/***/ 6174: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ OverlayManager: () => (/* binding */ OverlayManager) -/* harmony export */ }); -class OverlayManager { - #overlays = new WeakMap(); - #active = null; - get active() { - return this.#active; - } - async register(dialog, canForceClose = false) { - if (typeof dialog !== "object") { - throw new Error("Not enough parameters."); - } else if (this.#overlays.has(dialog)) { - throw new Error("The overlay is already registered."); - } - this.#overlays.set(dialog, { - canForceClose - }); - dialog.addEventListener("cancel", evt => { - this.#active = null; - }); - } - async open(dialog) { - if (!this.#overlays.has(dialog)) { - throw new Error("The overlay does not exist."); - } else if (this.#active) { - if (this.#active === dialog) { - throw new Error("The overlay is already active."); - } else if (this.#overlays.get(dialog).canForceClose) { - await this.close(); - } else { - throw new Error("Another overlay is currently active."); - } - } - this.#active = dialog; - dialog.showModal(); - } - async close(dialog = this.#active) { - if (!this.#overlays.has(dialog)) { - throw new Error("The overlay does not exist."); - } else if (!this.#active) { - throw new Error("The overlay is currently not active."); - } else if (this.#active !== dialog) { - throw new Error("Another overlay is currently active."); - } - dialog.close(); - this.#active = null; - } -} - - -/***/ }), - -/***/ 2690: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PasswordPrompt: () => (/* binding */ PasswordPrompt) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - -class PasswordPrompt { - #activeCapability = null; - #updateCallback = null; - #reason = null; - constructor(options, overlayManager, isViewerEmbedded = false) { - this.dialog = options.dialog; - this.label = options.label; - this.input = options.input; - this.submitButton = options.submitButton; - this.cancelButton = options.cancelButton; - this.overlayManager = overlayManager; - this._isViewerEmbedded = isViewerEmbedded; - this.submitButton.addEventListener("click", this.#verify.bind(this)); - this.cancelButton.addEventListener("click", this.close.bind(this)); - this.input.addEventListener("keydown", e => { - if (e.keyCode === 13) { - this.#verify(); - } - }); - this.overlayManager.register(this.dialog, true); - this.dialog.addEventListener("close", this.#cancel.bind(this)); - } - async open() { - await this.#activeCapability?.promise; - this.#activeCapability = Promise.withResolvers(); - try { - await this.overlayManager.open(this.dialog); - } catch (ex) { - this.#activeCapability.resolve(); - throw ex; - } - const passwordIncorrect = this.#reason === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PasswordResponses.INCORRECT_PASSWORD; - if (!this._isViewerEmbedded || passwordIncorrect) { - this.input.focus(); - } - this.label.setAttribute("data-l10n-id", `pdfjs-password-${passwordIncorrect ? "invalid" : "label"}`); - } - async close() { - if (this.overlayManager.active === this.dialog) { - this.overlayManager.close(this.dialog); - } - } - #verify() { - const password = this.input.value; - if (password?.length > 0) { - this.#invokeCallback(password); - } - } - #cancel() { - this.#invokeCallback(new Error("PasswordPrompt cancelled.")); - this.#activeCapability.resolve(); - } - #invokeCallback(password) { - if (!this.#updateCallback) { - return; - } - this.close(); - this.input.value = ""; - this.#updateCallback(password); - this.#updateCallback = null; - } - async setUpdateCallback(updateCallback, reason) { - if (this.#activeCapability) { - await this.#activeCapability.promise; - } - this.#updateCallback = updateCallback; - this.#reason = reason; - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 9251: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFAttachmentViewer: () => (/* binding */ PDFAttachmentViewer) -/* harmony export */ }); -/* harmony import */ var _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2961); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2603); -/* harmony import */ var _event_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5656); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - - -class PDFAttachmentViewer extends _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_0__.BaseTreeViewer { - constructor(options) { - super(options); - this.downloadManager = options.downloadManager; - this.eventBus._on("fileattachmentannotation", this.#appendAttachment.bind(this)); - } - reset(keepRenderedCapability = false) { - super.reset(); - this._attachments = null; - if (!keepRenderedCapability) { - this._renderedCapability = Promise.withResolvers(); - } - this._pendingDispatchEvent = false; - } - async _dispatchEvent(attachmentsCount) { - this._renderedCapability.resolve(); - if (attachmentsCount === 0 && !this._pendingDispatchEvent) { - this._pendingDispatchEvent = true; - await (0,_event_utils_js__WEBPACK_IMPORTED_MODULE_2__.waitOnEventOrTimeout)({ - target: this.eventBus, - name: "annotationlayerrendered", - delay: 1000 - }); - if (!this._pendingDispatchEvent) { - return; - } - } - this._pendingDispatchEvent = false; - this.eventBus.dispatch("attachmentsloaded", { - source: this, - attachmentsCount - }); - } - _bindLink(element, { - content, - filename - }) { - element.onclick = () => { - this.downloadManager.openOrDownloadData(content, filename); - return false; - }; - } - render({ - attachments, - keepRenderedCapability = false - }) { - if (this._attachments) { - this.reset(keepRenderedCapability); - } - this._attachments = attachments || null; - if (!attachments) { - this._dispatchEvent(0); - return; - } - const fragment = document.createDocumentFragment(); - let attachmentsCount = 0; - for (const name in attachments) { - const item = attachments[name]; - const content = item.content, - filename = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.getFilenameFromUrl)(item.filename, true); - const div = document.createElement("div"); - div.className = "treeItem"; - const element = document.createElement("a"); - this._bindLink(element, { - content, - filename - }); - element.textContent = this._normalizeTextContent(filename); - div.append(element); - fragment.append(div); - attachmentsCount++; - } - this._finishRendering(fragment, attachmentsCount); - } - #appendAttachment({ - filename, - content - }) { - const renderedPromise = this._renderedCapability.promise; - renderedPromise.then(() => { - if (renderedPromise !== this._renderedCapability.promise) { - return; - } - const attachments = this._attachments || Object.create(null); - for (const name in attachments) { - if (filename === name) { - return; - } - } - attachments[filename] = { - filename, - content - }; - this.render({ - attachments, - keepRenderedCapability: true - }); - }); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 5993: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFCursorTools: () => (/* binding */ PDFCursorTools) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7256); -/* harmony import */ var _grab_to_pan_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2640); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - - -class PDFCursorTools { - #active = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.SELECT; - #prevActive = null; - constructor({ - container, - eventBus, - cursorToolOnLoad = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.SELECT - }) { - this.container = container; - this.eventBus = eventBus; - this.#addEventListeners(); - Promise.resolve().then(() => { - this.switchTool(cursorToolOnLoad); - }); - } - get activeTool() { - return this.#active; - } - switchTool(tool) { - if (this.#prevActive !== null) { - return; - } - if (tool === this.#active) { - return; - } - const disableActiveTool = () => { - switch (this.#active) { - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.SELECT: - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.HAND: - this._handTool.deactivate(); - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.ZOOM: - } - }; - switch (tool) { - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.SELECT: - disableActiveTool(); - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.HAND: - disableActiveTool(); - this._handTool.activate(); - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.ZOOM: - default: - console.error(`switchTool: "${tool}" is an unsupported value.`); - return; - } - this.#active = tool; - this.eventBus.dispatch("cursortoolchanged", { - source: this, - tool - }); - } - #addEventListeners() { - this.eventBus._on("switchcursortool", evt => { - if (!evt.reset) { - this.switchTool(evt.tool); - } else if (this.#prevActive !== null) { - annotationEditorMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE; - presentationModeState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.NORMAL; - enableActive(); - } - }); - let annotationEditorMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE, - presentationModeState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.NORMAL; - const disableActive = () => { - const prevActive = this.#active; - this.switchTool(_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.CursorTool.SELECT); - this.#prevActive ??= prevActive; - }; - const enableActive = () => { - const prevActive = this.#prevActive; - if (prevActive !== null && annotationEditorMode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE && presentationModeState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.NORMAL) { - this.#prevActive = null; - this.switchTool(prevActive); - } - }; - this.eventBus._on("annotationeditormodechanged", ({ - mode - }) => { - annotationEditorMode = mode; - if (mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE) { - enableActive(); - } else { - disableActive(); - } - }); - this.eventBus._on("presentationmodechanged", ({ - state - }) => { - presentationModeState = state; - if (state === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.NORMAL) { - enableActive(); - } else if (state === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.FULLSCREEN) { - disableActive(); - } - }); - } - get _handTool() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_handTool", new _grab_to_pan_js__WEBPACK_IMPORTED_MODULE_2__.GrabToPan({ - element: this.container - })); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 164: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFDocumentProperties: () => (/* binding */ PDFDocumentProperties) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -const DEFAULT_FIELD_CONTENT = "-"; -const NON_METRIC_LOCALES = ["en-us", "en-lr", "my"]; -const US_PAGE_NAMES = { - "8.5x11": "letter", - "8.5x14": "legal" -}; -const METRIC_PAGE_NAMES = { - "297x420": "a-three", - "210x297": "a-four" -}; -function getPageName(size, isPortrait, pageNames) { - const width = isPortrait ? size.width : size.height; - const height = isPortrait ? size.height : size.width; - return pageNames[`${width}x${height}`]; -} -class PDFDocumentProperties { - #fieldData = null; - constructor({ - dialog, - fields, - closeButton - }, overlayManager, eventBus, l10n, fileNameLookup) { - this.dialog = dialog; - this.fields = fields; - this.overlayManager = overlayManager; - this.l10n = l10n; - this._fileNameLookup = fileNameLookup; - this.#reset(); - closeButton.addEventListener("click", this.close.bind(this)); - this.overlayManager.register(this.dialog); - eventBus._on("pagechanging", evt => { - this._currentPageNumber = evt.pageNumber; - // console.log('test-number-message-send', evt.pageNumber,window.renderExtractLayer); - window.parent.postMessage({pageNum: evt.pageNumber}, '*'); - - }); - eventBus._on("rotationchanging", evt => { - this._pagesRotation = evt.pagesRotation; - }); - this._isNonMetricLocale = NON_METRIC_LOCALES.includes(l10n.getLanguage()); - - } - - - async open() { - await Promise.all([this.overlayManager.open(this.dialog), this._dataAvailableCapability.promise]); - const currentPageNumber = this._currentPageNumber; - const pagesRotation = this._pagesRotation; - if (this.#fieldData && currentPageNumber === this.#fieldData._currentPageNumber && pagesRotation === this.#fieldData._pagesRotation) { - this.#updateUI(); - return; - } - const { - info, - contentLength - } = await this.pdfDocument.getMetadata(); - const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([this._fileNameLookup(), this.#parseFileSize(contentLength), this.#parseDate(info.CreationDate), this.#parseDate(info.ModDate), this.pdfDocument.getPage(currentPageNumber).then(pdfPage => { - return this.#parsePageSize((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.getPageSizeInches)(pdfPage), pagesRotation); - }), this.#parseLinearization(info.IsLinearized)]); - - this.#fieldData = Object.freeze({ - fileName, - fileSize, - title: info.Title, - author: info.Author, - subject: info.Subject, - keywords: info.Keywords, - creationDate, - modificationDate, - creator: info.Creator, - producer: info.Producer, - version: info.PDFFormatVersion, - pageCount: this.pdfDocument.numPages, - pageSize, - linearized: isLinearized, - _currentPageNumber: currentPageNumber, - _pagesRotation: pagesRotation - }); - this.#updateUI(); - const { - length - } = await this.pdfDocument.getDownloadInfo(); - if (contentLength === length) { - return; - } - const data = Object.assign(Object.create(null), this.#fieldData); - data.fileSize = await this.#parseFileSize(length); - this.#fieldData = Object.freeze(data); - this.#updateUI(); - } - async close() { - this.overlayManager.close(this.dialog); - } - setDocument(pdfDocument) { - if (this.pdfDocument) { - this.#reset(); - this.#updateUI(true); - } - if (!pdfDocument) { - return; - } - this.pdfDocument = pdfDocument; - this._dataAvailableCapability.resolve(); - } - #reset() { - this.pdfDocument = null; - this.#fieldData = null; - this._dataAvailableCapability = Promise.withResolvers(); - this._currentPageNumber = 1; - this._pagesRotation = 0; - } - #updateUI(reset = false) { - if (reset || !this.#fieldData) { - for (const id in this.fields) { - this.fields[id].textContent = DEFAULT_FIELD_CONTENT; - } - return; - } - if (this.overlayManager.active !== this.dialog) { - return; - } - for (const id in this.fields) { - const content = this.#fieldData[id]; - this.fields[id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; - } - } - async #parseFileSize(fileSize = 0) { - const kb = fileSize / 1024, - mb = kb / 1024; - if (!kb) { - return undefined; - } - return this.l10n.get(`pdfjs-document-properties-${mb >= 1 ? "mb" : "kb"}`, { - size_mb: mb >= 1 && (+mb.toPrecision(3)).toLocaleString(), - size_kb: mb < 1 && (+kb.toPrecision(3)).toLocaleString(), - size_b: fileSize.toLocaleString() - }); - } - async #parsePageSize(pageSizeInches, pagesRotation) { - if (!pageSizeInches) { - return undefined; - } - if (pagesRotation % 180 !== 0) { - pageSizeInches = { - width: pageSizeInches.height, - height: pageSizeInches.width - }; - } - const isPortrait = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isPortraitOrientation)(pageSizeInches); - let sizeInches = { - width: Math.round(pageSizeInches.width * 100) / 100, - height: Math.round(pageSizeInches.height * 100) / 100 - }; - let sizeMillimeters = { - width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, - height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 - }; - let rawName = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); - if (!rawName && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { - const exactMillimeters = { - width: pageSizeInches.width * 25.4, - height: pageSizeInches.height * 25.4 - }; - const intMillimeters = { - width: Math.round(sizeMillimeters.width), - height: Math.round(sizeMillimeters.height) - }; - if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { - rawName = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); - if (rawName) { - sizeInches = { - width: Math.round(intMillimeters.width / 25.4 * 100) / 100, - height: Math.round(intMillimeters.height / 25.4 * 100) / 100 - }; - sizeMillimeters = intMillimeters; - } - } - } - const [{ - width, - height - }, unit, name, orientation] = await Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get(`pdfjs-document-properties-page-size-unit-${this._isNonMetricLocale ? "inches" : "millimeters"}`), rawName && this.l10n.get(`pdfjs-document-properties-page-size-name-${rawName}`), this.l10n.get(`pdfjs-document-properties-page-size-orientation-${isPortrait ? "portrait" : "landscape"}`)]); - return this.l10n.get(`pdfjs-document-properties-page-size-dimension-${name ? "name-" : ""}string`, { - width: width.toLocaleString(), - height: height.toLocaleString(), - unit, - name, - orientation - }); - } - async #parseDate(inputDate) { - const dateObject = pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.PDFDateString.toDateObject(inputDate); - if (!dateObject) { - return undefined; - } - return this.l10n.get("pdfjs-document-properties-date-string", { - date: dateObject.toLocaleDateString(), - time: dateObject.toLocaleTimeString() - }); - } - #parseLinearization(isLinearized) { - return this.l10n.get(`pdfjs-document-properties-linearized-${isLinearized ? "yes" : "no"}`); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 2226: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFFindBar: () => (/* binding */ PDFFindBar) -/* harmony export */ }); -/* harmony import */ var _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9814); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7256); - - -const MATCHES_COUNT_LIMIT = 1000; -class PDFFindBar { - #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this)); - constructor(options, eventBus) { - this.opened = false; - this.bar = options.bar; - this.toggleButton = options.toggleButton; - this.findField = options.findField; - this.highlightAll = options.highlightAllCheckbox; - this.caseSensitive = options.caseSensitiveCheckbox; - this.matchDiacritics = options.matchDiacriticsCheckbox; - this.entireWord = options.entireWordCheckbox; - this.findMsg = options.findMsg; - this.findResultsCount = options.findResultsCount; - this.findPreviousButton = options.findPreviousButton; - this.findNextButton = options.findNextButton; - this.eventBus = eventBus; - this.toggleButton.addEventListener("click", () => { - this.toggle(); - }); - this.findField.addEventListener("input", () => { - this.dispatchEvent(""); - }); - this.bar.addEventListener("keydown", e => { - switch (e.keyCode) { - case 13: - if (e.target === this.findField) { - this.dispatchEvent("again", e.shiftKey); - } - break; - case 27: - this.close(); - break; - } - }); - this.findPreviousButton.addEventListener("click", () => { - this.dispatchEvent("again", true); - }); - this.findNextButton.addEventListener("click", () => { - this.dispatchEvent("again", false); - }); - this.highlightAll.addEventListener("click", () => { - this.dispatchEvent("highlightallchange"); - }); - this.caseSensitive.addEventListener("click", () => { - this.dispatchEvent("casesensitivitychange"); - }); - this.entireWord.addEventListener("click", () => { - this.dispatchEvent("entirewordchange"); - }); - this.matchDiacritics.addEventListener("click", () => { - this.dispatchEvent("diacriticmatchingchange"); - }); - } - reset() { - this.updateUIState(); - } - dispatchEvent(type, findPrev = false) { - this.eventBus.dispatch("find", { - source: this, - type, - query: this.findField.value, - caseSensitive: this.caseSensitive.checked, - entireWord: this.entireWord.checked, - highlightAll: this.highlightAll.checked, - findPrevious: findPrev, - matchDiacritics: this.matchDiacritics.checked - }); - } - updateUIState(state, previous, matchesCount) { - const { - findField, - findMsg - } = this; - let findMsgId = "", - status = ""; - switch (state) { - case _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__.FindState.FOUND: - break; - case _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__.FindState.PENDING: - status = "pending"; - break; - case _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__.FindState.NOT_FOUND: - findMsgId = "pdfjs-find-not-found"; - status = "notFound"; - break; - case _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__.FindState.WRAPPED: - findMsgId = `pdfjs-find-reached-${previous ? "top" : "bottom"}`; - break; - } - findField.setAttribute("data-status", status); - findField.setAttribute("aria-invalid", state === _pdf_find_controller_js__WEBPACK_IMPORTED_MODULE_0__.FindState.NOT_FOUND); - findMsg.setAttribute("data-status", status); - if (findMsgId) { - findMsg.setAttribute("data-l10n-id", findMsgId); - } else { - findMsg.removeAttribute("data-l10n-id"); - findMsg.textContent = ""; - } - this.updateResultsCount(matchesCount); - } - updateResultsCount({ - current = 0, - total = 0 - } = {}) { - const { - findResultsCount - } = this; - if (total > 0) { - const limit = MATCHES_COUNT_LIMIT; - findResultsCount.setAttribute("data-l10n-id", `pdfjs-find-match-count${total > limit ? "-limit" : ""}`); - findResultsCount.setAttribute("data-l10n-args", JSON.stringify({ - limit, - current, - total - })); - } else { - findResultsCount.removeAttribute("data-l10n-id"); - findResultsCount.textContent = ""; - } - } - open() { - if (!this.opened) { - this.#resizeObserver.observe(this.bar.parentNode); - this.#resizeObserver.observe(this.bar); - this.opened = true; - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleExpandedBtn)(this.toggleButton, true, this.bar); - } - this.findField.select(); - this.findField.focus(); - } - close() { - if (!this.opened) { - return; - } - this.#resizeObserver.disconnect(); - this.opened = false; - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleExpandedBtn)(this.toggleButton, false, this.bar); - this.eventBus.dispatch("findbarclose", { - source: this - }); - } - toggle() { - if (this.opened) { - this.close(); - } else { - this.open(); - } - } - #resizeObserverCallback(entries) { - const { - bar - } = this; - bar.classList.remove("wrapContainers"); - const findbarHeight = bar.clientHeight; - const inputContainerHeight = bar.firstElementChild.clientHeight; - if (findbarHeight > inputContainerHeight) { - bar.classList.add("wrapContainers"); - } - } -} - - -/***/ }), - -/***/ 9814: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - FindState: () => (/* binding */ FindState), - PDFFindController: () => (/* binding */ PDFFindController) -}); - -// EXTERNAL MODULE: ./web/ui_utils.js -var ui_utils = __webpack_require__(7256); -;// CONCATENATED MODULE: ./web/pdf_find_utils.js -const CharacterType = { - SPACE: 0, - ALPHA_LETTER: 1, - PUNCT: 2, - HAN_LETTER: 3, - KATAKANA_LETTER: 4, - HIRAGANA_LETTER: 5, - HALFWIDTH_KATAKANA_LETTER: 6, - THAI_LETTER: 7 -}; -function isAlphabeticalScript(charCode) { - return charCode < 0x2e80; -} -function isAscii(charCode) { - return (charCode & 0xff80) === 0; -} -function isAsciiAlpha(charCode) { - return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a; -} -function isAsciiDigit(charCode) { - return charCode >= 0x30 && charCode <= 0x39; -} -function isAsciiSpace(charCode) { - return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a; -} -function isHan(charCode) { - return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff; -} -function isKatakana(charCode) { - return charCode >= 0x30a0 && charCode <= 0x30ff; -} -function isHiragana(charCode) { - return charCode >= 0x3040 && charCode <= 0x309f; -} -function isHalfwidthKatakana(charCode) { - return charCode >= 0xff60 && charCode <= 0xff9f; -} -function isThai(charCode) { - return (charCode & 0xff80) === 0x0e00; -} -function getCharacterType(charCode) { - if (isAlphabeticalScript(charCode)) { - if (isAscii(charCode)) { - if (isAsciiSpace(charCode)) { - return CharacterType.SPACE; - } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) { - return CharacterType.ALPHA_LETTER; - } - return CharacterType.PUNCT; - } else if (isThai(charCode)) { - return CharacterType.THAI_LETTER; - } else if (charCode === 0xa0) { - return CharacterType.SPACE; - } - return CharacterType.ALPHA_LETTER; - } - if (isHan(charCode)) { - return CharacterType.HAN_LETTER; - } else if (isKatakana(charCode)) { - return CharacterType.KATAKANA_LETTER; - } else if (isHiragana(charCode)) { - return CharacterType.HIRAGANA_LETTER; - } else if (isHalfwidthKatakana(charCode)) { - return CharacterType.HALFWIDTH_KATAKANA_LETTER; - } - return CharacterType.ALPHA_LETTER; -} -let NormalizeWithNFKC; -function getNormalizeWithNFKC() { - NormalizeWithNFKC ||= `聽篓陋炉虏-碌赂-潞录-戮牟-某目-艀艍趴莿-菍潜-浅拾-矢藰-藵藸-摔痛秃途蝿-螀螄蠍-蠔习-喜洗-系瞎謬俚-俑啷�-啷熰-唰澿啜赤ǘ喋�-喋涏喹�-喹澿赋嗪赤粶-嗷澿紝嘟冟綅嘟掄綏嘟溹僵醿坚船-岽窗-岽横醇-岬嶀祻-岬蹈岫�-岫酷簹-岷涐奖峤翅降峤丰焦峤会浇峋会窘-峥佱繅峥嬦繊-峥忈繐峥涐繚-峥熱浚峥凯-峥抗峥会拷-峥锯€€-鈥娾€戔€椻€�-鈥︹€€�-鈥粹€�-鈥封€尖€锯亣-鈦夆仐鈦熲伆-鈦扁伌-鈧庘倫-鈧溾偍鈩€-鈩冣剠-鈩団剦-鈩撯剷-鈩栤剻-鈩濃劆-鈩⑩劋鈩︹劏鈩�-鈩劘-鈩扁劤-鈩光劵-鈪€鈪�-鈪夆厫-鈪库唹鈭�-鈭埊-鈭扳尒-鈱憼-鈸▽猢�-猢垛珳獗�-獗解弹夂熲怀饧€-饪曘€€銆躲€�-銆恒倹-銈溿偀銉裤劚-銌庛啋-銌熴垁-銏炪垹-銐囥墣-銐俱妧-銖筷殰-隁濌澃隉�-隉搓煾-隉龟瓬-戥熽铯€-铷嶏◥铷掞〞-铷烇铷ē-铷︼í-铹┌-铽欙瑎-铿嗭瑩-铿楋瑵铿�-铿讹-铿硷锃€-锃侊瓋-锃勶瓎-锂憋瘬-锎斤祼-锒忥稈-锓囷钒-锓硷笎-锔欙赴-锕勶箛-锕掞箶-锕︼龚-锕拱-锕诧勾锕�-锘硷紒-锞撅總-锟囷繆-锟忥繏-锟楋繗-锟滐繝-锟`; - return NormalizeWithNFKC; -} - -;// CONCATENATED MODULE: ./web/pdf_find_controller.js - - -const FindState = { - FOUND: 0, - NOT_FOUND: 1, - WRAPPED: 2, - PENDING: 3 -}; -const FIND_TIMEOUT = 250; -const MATCH_SCROLL_OFFSET_TOP = -50; -const MATCH_SCROLL_OFFSET_LEFT = -400; -const CHARACTERS_TO_NORMALIZE = { - "\u2010": "-", - "\u2018": "'", - "\u2019": "'", - "\u201A": "'", - "\u201B": "'", - "\u201C": '"', - "\u201D": '"', - "\u201E": '"', - "\u201F": '"', - "\u00BC": "1/4", - "\u00BD": "1/2", - "\u00BE": "3/4" -}; -const DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]); -let DIACRITICS_EXCEPTION_STR; -const DIACRITICS_REG_EXP = /\p{M}+/gu; -const SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\]\\])|(\p{P})|(\s+)|(\p{M})|(\p{L})/gu; -const NOT_DIACRITIC_FROM_END_REG_EXP = /([^\p{M}])\p{M}*$/u; -const NOT_DIACRITIC_FROM_START_REG_EXP = /^\p{M}*([^\p{M}])/u; -const SYLLABLES_REG_EXP = /[\uAC00-\uD7AF\uFA6C\uFACF-\uFAD1\uFAD5-\uFAD7]+/g; -const SYLLABLES_LENGTHS = new Map(); -const FIRST_CHAR_SYLLABLES_REG_EXP = "[\\u1100-\\u1112\\ud7a4-\\ud7af\\ud84a\\ud84c\\ud850\\ud854\\ud857\\ud85f]"; -const NFKC_CHARS_TO_NORMALIZE = new Map(); -let noSyllablesRegExp = null; -let withSyllablesRegExp = null; -function normalize(text) { - const syllablePositions = []; - let m; - while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) { - let { - index - } = m; - for (const char of m[0]) { - let len = SYLLABLES_LENGTHS.get(char); - if (!len) { - len = char.normalize("NFD").length; - SYLLABLES_LENGTHS.set(char, len); - } - syllablePositions.push([len, index++]); - } - } - let normalizationRegex; - if (syllablePositions.length === 0 && noSyllablesRegExp) { - normalizationRegex = noSyllablesRegExp; - } else if (syllablePositions.length > 0 && withSyllablesRegExp) { - normalizationRegex = withSyllablesRegExp; - } else { - const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); - const toNormalizeWithNFKC = getNormalizeWithNFKC(); - const CJK = "(?:\\p{Ideographic}|[\u3040-\u30FF])"; - const HKDiacritics = "(?:\u3099|\u309A)"; - const regexp = `([${replace}])|([${toNormalizeWithNFKC}])|(${HKDiacritics}\\n)|(\\p{M}+(?:-\\n)?)|(\\S-\\n)|(${CJK}\\n)|(\\n)`; - if (syllablePositions.length === 0) { - normalizationRegex = noSyllablesRegExp = new RegExp(regexp + "|(\\u0000)", "gum"); - } else { - normalizationRegex = withSyllablesRegExp = new RegExp(regexp + `|(${FIRST_CHAR_SYLLABLES_REG_EXP})`, "gum"); - } - } - const rawDiacriticsPositions = []; - while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) { - rawDiacriticsPositions.push([m[0].length, m.index]); - } - let normalized = text.normalize("NFD"); - const positions = [[0, 0]]; - let rawDiacriticsIndex = 0; - let syllableIndex = 0; - let shift = 0; - let shiftOrigin = 0; - let eol = 0; - let hasDiacritics = false; - normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, p7, p8, i) => { - i -= shiftOrigin; - if (p1) { - const replacement = CHARACTERS_TO_NORMALIZE[p1]; - const jj = replacement.length; - for (let j = 1; j < jj; j++) { - positions.push([i - shift + j, shift - j]); - } - shift -= jj - 1; - return replacement; - } - if (p2) { - let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2); - if (!replacement) { - replacement = p2.normalize("NFKC"); - NFKC_CHARS_TO_NORMALIZE.set(p2, replacement); - } - const jj = replacement.length; - for (let j = 1; j < jj; j++) { - positions.push([i - shift + j, shift - j]); - } - shift -= jj - 1; - return replacement; - } - if (p3) { - hasDiacritics = true; - if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { - ++rawDiacriticsIndex; - } else { - positions.push([i - 1 - shift + 1, shift - 1]); - shift -= 1; - shiftOrigin += 1; - } - positions.push([i - shift + 1, shift]); - shiftOrigin += 1; - eol += 1; - return p3.charAt(0); - } - if (p4) { - const hasTrailingDashEOL = p4.endsWith("\n"); - const len = hasTrailingDashEOL ? p4.length - 2 : p4.length; - hasDiacritics = true; - let jj = len; - if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { - jj -= rawDiacriticsPositions[rawDiacriticsIndex][0]; - ++rawDiacriticsIndex; - } - for (let j = 1; j <= jj; j++) { - positions.push([i - 1 - shift + j, shift - j]); - } - shift -= jj; - shiftOrigin += jj; - if (hasTrailingDashEOL) { - i += len - 1; - positions.push([i - shift + 1, 1 + shift]); - shift += 1; - shiftOrigin += 1; - eol += 1; - return p4.slice(0, len); - } - return p4; - } - if (p5) { - const len = p5.length - 2; - positions.push([i - shift + len, 1 + shift]); - shift += 1; - shiftOrigin += 1; - eol += 1; - return p5.slice(0, -2); - } - if (p6) { - const len = p6.length - 1; - positions.push([i - shift + len, shift]); - shiftOrigin += 1; - eol += 1; - return p6.slice(0, -1); - } - if (p7) { - positions.push([i - shift + 1, shift - 1]); - shift -= 1; - shiftOrigin += 1; - eol += 1; - return " "; - } - if (i + eol === syllablePositions[syllableIndex]?.[1]) { - const newCharLen = syllablePositions[syllableIndex][0] - 1; - ++syllableIndex; - for (let j = 1; j <= newCharLen; j++) { - positions.push([i - (shift - j), shift - j]); - } - shift -= newCharLen; - shiftOrigin += newCharLen; - } - return p8; - }); - positions.push([normalized.length, shift]); - return [normalized, positions, hasDiacritics]; -} -function getOriginalIndex(diffs, pos, len) { - if (!diffs) { - return [pos, len]; - } - const start = pos; - const end = pos + len - 1; - let i = (0,ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= start); - if (diffs[i][0] > start) { - --i; - } - let j = (0,ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= end, i); - if (diffs[j][0] > end) { - --j; - } - const oldStart = start + diffs[i][1]; - const oldEnd = end + diffs[j][1]; - const oldLen = oldEnd + 1 - oldStart; - return [oldStart, oldLen]; -} -class PDFFindController { - #state = null; - #updateMatchesCountOnProgress = true; - #visitedPagesCount = 0; - constructor({ - linkService, - eventBus, - updateMatchesCountOnProgress = true - }) { - this._linkService = linkService; - this._eventBus = eventBus; - this.#updateMatchesCountOnProgress = updateMatchesCountOnProgress; - this.onIsPageVisible = null; - this.#reset(); - eventBus._on("find", this.#onFind.bind(this)); - eventBus._on("findbarclose", this.#onFindBarClose.bind(this)); - } - get highlightMatches() { - return this._highlightMatches; - } - get pageMatches() { - return this._pageMatches; - } - get pageMatchesLength() { - return this._pageMatchesLength; - } - get selected() { - return this._selected; - } - get state() { - return this.#state; - } - setDocument(pdfDocument) { - if (this._pdfDocument) { - this.#reset(); - } - if (!pdfDocument) { - return; - } - this._pdfDocument = pdfDocument; - this._firstPageCapability.resolve(); - } - #onFind(state) { - if (!state) { - return; - } - const pdfDocument = this._pdfDocument; - const { - type - } = state; - if (this.#state === null || this.#shouldDirtyMatch(state)) { - this._dirtyMatch = true; - } - this.#state = state; - if (type !== "highlightallchange") { - this.#updateUIState(FindState.PENDING); - } - this._firstPageCapability.promise.then(() => { - if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { - return; - } - this.#extractText(); - const findbarClosed = !this._highlightMatches; - const pendingTimeout = !!this._findTimeout; - if (this._findTimeout) { - clearTimeout(this._findTimeout); - this._findTimeout = null; - } - if (!type) { - this._findTimeout = setTimeout(() => { - this.#nextMatch(); - this._findTimeout = null; - }, FIND_TIMEOUT); - } else if (this._dirtyMatch) { - this.#nextMatch(); - } else if (type === "again") { - this.#nextMatch(); - if (findbarClosed && this.#state.highlightAll) { - this.#updateAllPages(); - } - } else if (type === "highlightallchange") { - if (pendingTimeout) { - this.#nextMatch(); - } else { - this._highlightMatches = true; - } - this.#updateAllPages(); - } else { - this.#nextMatch(); - } - }); - } - scrollMatchIntoView({ - element = null, - selectedLeft = 0, - pageIndex = -1, - matchIndex = -1 - }) { - if (!this._scrollMatches || !element) { - return; - } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { - return; - } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { - return; - } - this._scrollMatches = false; - const spot = { - top: MATCH_SCROLL_OFFSET_TOP, - left: selectedLeft + MATCH_SCROLL_OFFSET_LEFT - }; - (0,ui_utils.scrollIntoView)(element, spot, true); - } - #reset() { - this._highlightMatches = false; - this._scrollMatches = false; - this._pdfDocument = null; - this._pageMatches = []; - this._pageMatchesLength = []; - this.#visitedPagesCount = 0; - this.#state = null; - this._selected = { - pageIdx: -1, - matchIdx: -1 - }; - this._offset = { - pageIdx: null, - matchIdx: null, - wrapped: false - }; - this._extractTextPromises = []; - this._pageContents = []; - this._pageDiffs = []; - this._hasDiacritics = []; - this._matchesCountTotal = 0; - this._pagesToSearch = null; - this._pendingFindMatches = new Set(); - this._resumePageIdx = null; - this._dirtyMatch = false; - clearTimeout(this._findTimeout); - this._findTimeout = null; - this._firstPageCapability = Promise.withResolvers(); - } - get #query() { - const { - query - } = this.#state; - if (typeof query === "string") { - if (query !== this._rawQuery) { - this._rawQuery = query; - [this._normalizedQuery] = normalize(query); - } - return this._normalizedQuery; - } - return (query || []).filter(q => !!q).map(q => normalize(q)[0]); - } - #shouldDirtyMatch(state) { - const newQuery = state.query, - prevQuery = this.#state.query; - const newType = typeof newQuery, - prevType = typeof prevQuery; - if (newType !== prevType) { - return true; - } - if (newType === "string") { - if (newQuery !== prevQuery) { - return true; - } - } else if (JSON.stringify(newQuery) !== JSON.stringify(prevQuery)) { - return true; - } - switch (state.type) { - case "again": - const pageNumber = this._selected.pageIdx + 1; - const linkService = this._linkService; - return pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !(this.onIsPageVisible?.(pageNumber) ?? true); - case "highlightallchange": - return false; - } - return true; - } - #isEntireWord(content, startIdx, length) { - let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP); - if (match) { - const first = content.charCodeAt(startIdx); - const limit = match[1].charCodeAt(0); - if (getCharacterType(first) === getCharacterType(limit)) { - return false; - } - } - match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP); - if (match) { - const last = content.charCodeAt(startIdx + length - 1); - const limit = match[1].charCodeAt(0); - if (getCharacterType(last) === getCharacterType(limit)) { - return false; - } - } - return true; - } - #calculateRegExpMatch(query, entireWord, pageIndex, pageContent) { - const matches = this._pageMatches[pageIndex] = []; - const matchesLength = this._pageMatchesLength[pageIndex] = []; - if (!query) { - return; - } - const diffs = this._pageDiffs[pageIndex]; - let match; - while ((match = query.exec(pageContent)) !== null) { - if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) { - continue; - } - const [matchPos, matchLen] = getOriginalIndex(diffs, match.index, match[0].length); - if (matchLen) { - matches.push(matchPos); - matchesLength.push(matchLen); - } - } - } - #convertToRegExpString(query, hasDiacritics) { - const { - matchDiacritics - } = this.#state; - let isUnicode = false; - query = query.replaceAll(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => { - if (p1) { - return `[ ]*\\${p1}[ ]*`; - } - if (p2) { - return `[ ]*${p2}[ ]*`; - } - if (p3) { - return "[ ]+"; - } - if (matchDiacritics) { - return p4 || p5; - } - if (p4) { - return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : ""; - } - if (hasDiacritics) { - isUnicode = true; - return `${p5}\\p{M}*`; - } - return p5; - }); - const trailingSpaces = "[ ]*"; - if (query.endsWith(trailingSpaces)) { - query = query.slice(0, query.length - trailingSpaces.length); - } - if (matchDiacritics) { - if (hasDiacritics) { - DIACRITICS_EXCEPTION_STR ||= String.fromCharCode(...DIACRITICS_EXCEPTION); - isUnicode = true; - query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\p{M}]|$)`; - } - } - return [isUnicode, query]; - } - #calculateMatch(pageIndex) { - let query = this.#query; - if (query.length === 0) { - return; - } - const { - caseSensitive, - entireWord - } = this.#state; - const pageContent = this._pageContents[pageIndex]; - const hasDiacritics = this._hasDiacritics[pageIndex]; - let isUnicode = false; - if (typeof query === "string") { - [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics); - } else { - query = query.sort().reverse().map(q => { - const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics); - isUnicode ||= isUnicodePart; - return `(${queryPart})`; - }).join("|"); - } - const flags = `g${isUnicode ? "u" : ""}${caseSensitive ? "" : "i"}`; - query = query ? new RegExp(query, flags) : null; - this.#calculateRegExpMatch(query, entireWord, pageIndex, pageContent); - if (this.#state.highlightAll) { - this.#updatePage(pageIndex); - } - if (this._resumePageIdx === pageIndex) { - this._resumePageIdx = null; - this.#nextPageMatch(); - } - const pageMatchesCount = this._pageMatches[pageIndex].length; - this._matchesCountTotal += pageMatchesCount; - if (this.#updateMatchesCountOnProgress) { - if (pageMatchesCount > 0) { - this.#updateUIResultsCount(); - } - } else if (++this.#visitedPagesCount === this._linkService.pagesCount) { - this.#updateUIResultsCount(); - } - } - #extractText() { - if (this._extractTextPromises.length > 0) { - return; - } - let deferred = Promise.resolve(); - const textOptions = { - disableNormalization: true - }; - for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) { - const { - promise, - resolve - } = Promise.withResolvers(); - this._extractTextPromises[i] = promise; - deferred = deferred.then(() => { - return this._pdfDocument.getPage(i + 1).then(pdfPage => pdfPage.getTextContent(textOptions)).then(textContent => { - const strBuf = []; - for (const textItem of textContent.items) { - strBuf.push(textItem.str); - if (textItem.hasEOL) { - strBuf.push("\n"); - } - } - [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join("")); - resolve(); - }, reason => { - console.error(`Unable to get text content for page ${i + 1}`, reason); - this._pageContents[i] = ""; - this._pageDiffs[i] = null; - this._hasDiacritics[i] = false; - resolve(); - }); - }); - } - } - #updatePage(index) { - if (this._scrollMatches && this._selected.pageIdx === index) { - this._linkService.page = index + 1; - } - this._eventBus.dispatch("updatetextlayermatches", { - source: this, - pageIndex: index - }); - } - #updateAllPages() { - this._eventBus.dispatch("updatetextlayermatches", { - source: this, - pageIndex: -1 - }); - } - #nextMatch() { - const previous = this.#state.findPrevious; - const currentPageIndex = this._linkService.page - 1; - const numPages = this._linkService.pagesCount; - this._highlightMatches = true; - if (this._dirtyMatch) { - this._dirtyMatch = false; - this._selected.pageIdx = this._selected.matchIdx = -1; - this._offset.pageIdx = currentPageIndex; - this._offset.matchIdx = null; - this._offset.wrapped = false; - this._resumePageIdx = null; - this._pageMatches.length = 0; - this._pageMatchesLength.length = 0; - this.#visitedPagesCount = 0; - this._matchesCountTotal = 0; - this.#updateAllPages(); - for (let i = 0; i < numPages; i++) { - if (this._pendingFindMatches.has(i)) { - continue; - } - this._pendingFindMatches.add(i); - this._extractTextPromises[i].then(() => { - this._pendingFindMatches.delete(i); - this.#calculateMatch(i); - }); - } - } - const query = this.#query; - if (query.length === 0) { - this.#updateUIState(FindState.FOUND); - return; - } - if (this._resumePageIdx) { - return; - } - const offset = this._offset; - this._pagesToSearch = numPages; - if (offset.matchIdx !== null) { - const numPageMatches = this._pageMatches[offset.pageIdx].length; - if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { - offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; - this.#updateMatch(true); - return; - } - this.#advanceOffsetPage(previous); - } - this.#nextPageMatch(); - } - #matchesReady(matches) { - const offset = this._offset; - const numMatches = matches.length; - const previous = this.#state.findPrevious; - if (numMatches) { - offset.matchIdx = previous ? numMatches - 1 : 0; - this.#updateMatch(true); - return true; - } - this.#advanceOffsetPage(previous); - if (offset.wrapped) { - offset.matchIdx = null; - if (this._pagesToSearch < 0) { - this.#updateMatch(false); - return true; - } - } - return false; - } - #nextPageMatch() { - if (this._resumePageIdx !== null) { - console.error("There can only be one pending page."); - } - let matches = null; - do { - const pageIdx = this._offset.pageIdx; - matches = this._pageMatches[pageIdx]; - if (!matches) { - this._resumePageIdx = pageIdx; - break; - } - } while (!this.#matchesReady(matches)); - } - #advanceOffsetPage(previous) { - const offset = this._offset; - const numPages = this._linkService.pagesCount; - offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; - offset.matchIdx = null; - this._pagesToSearch--; - if (offset.pageIdx >= numPages || offset.pageIdx < 0) { - offset.pageIdx = previous ? numPages - 1 : 0; - offset.wrapped = true; - } - } - #updateMatch(found = false) { - let state = FindState.NOT_FOUND; - const wrapped = this._offset.wrapped; - this._offset.wrapped = false; - if (found) { - const previousPage = this._selected.pageIdx; - this._selected.pageIdx = this._offset.pageIdx; - this._selected.matchIdx = this._offset.matchIdx; - state = wrapped ? FindState.WRAPPED : FindState.FOUND; - if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { - this.#updatePage(previousPage); - } - } - this.#updateUIState(state, this.#state.findPrevious); - if (this._selected.pageIdx !== -1) { - this._scrollMatches = true; - this.#updatePage(this._selected.pageIdx); - } - } - #onFindBarClose(evt) { - const pdfDocument = this._pdfDocument; - this._firstPageCapability.promise.then(() => { - if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { - return; - } - if (this._findTimeout) { - clearTimeout(this._findTimeout); - this._findTimeout = null; - } - if (this._resumePageIdx) { - this._resumePageIdx = null; - this._dirtyMatch = true; - } - this.#updateUIState(FindState.FOUND); - this._highlightMatches = false; - this.#updateAllPages(); - }); - } - #requestMatchesCount() { - const { - pageIdx, - matchIdx - } = this._selected; - let current = 0, - total = this._matchesCountTotal; - if (matchIdx !== -1) { - for (let i = 0; i < pageIdx; i++) { - current += this._pageMatches[i]?.length || 0; - } - current += matchIdx + 1; - } - if (current < 1 || current > total) { - current = total = 0; - } - return { - current, - total - }; - } - #updateUIResultsCount() { - this._eventBus.dispatch("updatefindmatchescount", { - source: this, - matchesCount: this.#requestMatchesCount() - }); - } - #updateUIState(state, previous = false) { - if (!this.#updateMatchesCountOnProgress && (this.#visitedPagesCount !== this._linkService.pagesCount || state === FindState.PENDING)) { - return; - } - this._eventBus.dispatch("updatefindcontrolstate", { - source: this, - state, - previous, - matchesCount: this.#requestMatchesCount(), - rawQuery: this.#state?.query ?? null - }); - } -} - - -/***/ }), - -/***/ 8543: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFHistory: () => (/* binding */ PDFHistory) -/* harmony export */ }); -/* unused harmony exports isDestArraysEqual, isDestHashesEqual */ -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); -/* harmony import */ var _event_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5656); - - -const HASH_CHANGE_TIMEOUT = 1000; -const POSITION_UPDATED_THRESHOLD = 50; -const UPDATE_VIEWAREA_TIMEOUT = 1000; -function getCurrentHash() { - return document.location.hash; -} -class PDFHistory { - #eventAbortController = null; - constructor({ - linkService, - eventBus - }) { - this.linkService = linkService; - this.eventBus = eventBus; - this._initialized = false; - this._fingerprint = ""; - this.reset(); - this.eventBus._on("pagesinit", () => { - this._isPagesLoaded = false; - this.eventBus._on("pagesloaded", evt => { - this._isPagesLoaded = !!evt.pagesCount; - }, { - once: true - }); - }); - } - initialize({ - fingerprint, - resetHistory = false, - updateUrl = false - }) { - if (!fingerprint || typeof fingerprint !== "string") { - console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); - return; - } - if (this._initialized) { - this.reset(); - } - const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; - this._fingerprint = fingerprint; - this._updateUrl = updateUrl === true; - this._initialized = true; - this.#bindEvents(); - const state = window.history.state; - this._popStateInProgress = false; - this._blockHashChange = 0; - this._currentHash = getCurrentHash(); - this._numPositionUpdates = 0; - this._uid = this._maxUid = 0; - this._destination = null; - this._position = null; - if (!this.#isValidState(state, true) || resetHistory) { - const { - hash, - page, - rotation - } = this.#parseCurrentHash(true); - if (!hash || reInitialized || resetHistory) { - this.#pushOrReplaceState(null, true); - return; - } - this.#pushOrReplaceState({ - hash, - page, - rotation - }, true); - return; - } - const destination = state.destination; - this.#updateInternalState(destination, state.uid, true); - if (destination.rotation !== undefined) { - this._initialRotation = destination.rotation; - } - if (destination.dest) { - this._initialBookmark = JSON.stringify(destination.dest); - this._destination.page = null; - } else if (destination.hash) { - this._initialBookmark = destination.hash; - } else if (destination.page) { - this._initialBookmark = `page=${destination.page}`; - } - } - reset() { - if (this._initialized) { - this.#pageHide(); - this._initialized = false; - this.#unbindEvents(); - } - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - this._initialBookmark = null; - this._initialRotation = null; - } - push({ - namedDest = null, - explicitDest, - pageNumber - }) { - if (!this._initialized) { - return; - } - if (namedDest && typeof namedDest !== "string") { - console.error("PDFHistory.push: " + `"${namedDest}" is not a valid namedDest parameter.`); - return; - } else if (!Array.isArray(explicitDest)) { - console.error("PDFHistory.push: " + `"${explicitDest}" is not a valid explicitDest parameter.`); - return; - } else if (!this.#isValidPage(pageNumber)) { - if (pageNumber !== null || this._destination) { - console.error("PDFHistory.push: " + `"${pageNumber}" is not a valid pageNumber parameter.`); - return; - } - } - const hash = namedDest || JSON.stringify(explicitDest); - if (!hash) { - return; - } - let forceReplace = false; - if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { - if (this._destination.page) { - return; - } - forceReplace = true; - } - if (this._popStateInProgress && !forceReplace) { - return; - } - this.#pushOrReplaceState({ - dest: explicitDest, - hash, - page: pageNumber, - rotation: this.linkService.rotation - }, forceReplace); - if (!this._popStateInProgress) { - this._popStateInProgress = true; - Promise.resolve().then(() => { - this._popStateInProgress = false; - }); - } - } - pushPage(pageNumber) { - if (!this._initialized) { - return; - } - if (!this.#isValidPage(pageNumber)) { - console.error(`PDFHistory.pushPage: "${pageNumber}" is not a valid page number.`); - return; - } - if (this._destination?.page === pageNumber) { - return; - } - if (this._popStateInProgress) { - return; - } - this.#pushOrReplaceState({ - dest: null, - hash: `page=${pageNumber}`, - page: pageNumber, - rotation: this.linkService.rotation - }); - if (!this._popStateInProgress) { - this._popStateInProgress = true; - Promise.resolve().then(() => { - this._popStateInProgress = false; - }); - } - } - pushCurrentPosition() { - if (!this._initialized || this._popStateInProgress) { - return; - } - this.#tryPushCurrentPosition(); - } - back() { - if (!this._initialized || this._popStateInProgress) { - return; - } - const state = window.history.state; - if (this.#isValidState(state) && state.uid > 0) { - window.history.back(); - } - } - forward() { - if (!this._initialized || this._popStateInProgress) { - return; - } - const state = window.history.state; - if (this.#isValidState(state) && state.uid < this._maxUid) { - window.history.forward(); - } - } - get popStateInProgress() { - return this._initialized && (this._popStateInProgress || this._blockHashChange > 0); - } - get initialBookmark() { - return this._initialized ? this._initialBookmark : null; - } - get initialRotation() { - return this._initialized ? this._initialRotation : null; - } - #pushOrReplaceState(destination, forceReplace = false) { - const shouldReplace = forceReplace || !this._destination; - const newState = { - fingerprint: this._fingerprint, - uid: shouldReplace ? this._uid : this._uid + 1, - destination - }; - this.#updateInternalState(destination, newState.uid); - let newUrl; - if (this._updateUrl && destination?.hash) { - const baseUrl = document.location.href.split("#", 1)[0]; - if (!baseUrl.startsWith("file://")) { - newUrl = `${baseUrl}#${destination.hash}`; - } - } - if (shouldReplace) { - window.history.replaceState(newState, "", newUrl); - } else { - window.history.pushState(newState, "", newUrl); - } - } - #tryPushCurrentPosition(temporary = false) { - if (!this._position) { - return; - } - let position = this._position; - if (temporary) { - position = Object.assign(Object.create(null), this._position); - position.temporary = true; - } - if (!this._destination) { - this.#pushOrReplaceState(position); - return; - } - if (this._destination.temporary) { - this.#pushOrReplaceState(position, true); - return; - } - if (this._destination.hash === position.hash) { - return; - } - if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { - return; - } - let forceReplace = false; - if (this._destination.page >= position.first && this._destination.page <= position.page) { - if (this._destination.dest !== undefined || !this._destination.first) { - return; - } - forceReplace = true; - } - this.#pushOrReplaceState(position, forceReplace); - } - #isValidPage(val) { - return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount; - } - #isValidState(state, checkReload = false) { - if (!state) { - return false; - } - if (state.fingerprint !== this._fingerprint) { - if (checkReload) { - if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) { - return false; - } - const [perfEntry] = performance.getEntriesByType("navigation"); - if (perfEntry?.type !== "reload") { - return false; - } - } else { - return false; - } - } - if (!Number.isInteger(state.uid) || state.uid < 0) { - return false; - } - if (state.destination === null || typeof state.destination !== "object") { - return false; - } - return true; - } - #updateInternalState(destination, uid, removeTemporary = false) { - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - if (removeTemporary && destination?.temporary) { - delete destination.temporary; - } - this._destination = destination; - this._uid = uid; - this._maxUid = Math.max(this._maxUid, uid); - this._numPositionUpdates = 0; - } - #parseCurrentHash(checkNameddest = false) { - const hash = unescape(getCurrentHash()).substring(1); - const params = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(hash); - const nameddest = params.get("nameddest") || ""; - let page = params.get("page") | 0; - if (!this.#isValidPage(page) || checkNameddest && nameddest.length > 0) { - page = null; - } - return { - hash, - page, - rotation: this.linkService.rotation - }; - } - #updateViewarea({ - location - }) { - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - this._position = { - hash: location.pdfOpenParams.substring(1), - page: this.linkService.page, - first: location.pageNumber, - rotation: location.rotation - }; - if (this._popStateInProgress) { - return; - } - if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { - this._numPositionUpdates++; - } - if (UPDATE_VIEWAREA_TIMEOUT > 0) { - this._updateViewareaTimeout = setTimeout(() => { - if (!this._popStateInProgress) { - this.#tryPushCurrentPosition(true); - } - this._updateViewareaTimeout = null; - }, UPDATE_VIEWAREA_TIMEOUT); - } - } - #popState({ - state - }) { - const newHash = getCurrentHash(), - hashChanged = this._currentHash !== newHash; - this._currentHash = newHash; - if (!state) { - this._uid++; - const { - hash, - page, - rotation - } = this.#parseCurrentHash(); - this.#pushOrReplaceState({ - hash, - page, - rotation - }, true); - return; - } - if (!this.#isValidState(state)) { - return; - } - this._popStateInProgress = true; - if (hashChanged) { - this._blockHashChange++; - (0,_event_utils_js__WEBPACK_IMPORTED_MODULE_1__.waitOnEventOrTimeout)({ - target: window, - name: "hashchange", - delay: HASH_CHANGE_TIMEOUT - }).then(() => { - this._blockHashChange--; - }); - } - const destination = state.destination; - this.#updateInternalState(destination, state.uid, true); - if ((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isValidRotation)(destination.rotation)) { - this.linkService.rotation = destination.rotation; - } - if (destination.dest) { - this.linkService.goToDestination(destination.dest); - } else if (destination.hash) { - this.linkService.setHash(destination.hash); - } else if (destination.page) { - this.linkService.page = destination.page; - } - Promise.resolve().then(() => { - this._popStateInProgress = false; - }); - } - #pageHide() { - if (!this._destination || this._destination.temporary) { - this.#tryPushCurrentPosition(); - } - } - #bindEvents() { - if (this.#eventAbortController) { - return; - } - this.#eventAbortController = new AbortController(); - const { - signal - } = this.#eventAbortController; - this.eventBus._on("updateviewarea", this.#updateViewarea.bind(this), { - signal - }); - window.addEventListener("popstate", this.#popState.bind(this), { - signal - }); - window.addEventListener("pagehide", this.#pageHide.bind(this), { - signal - }); - } - #unbindEvents() { - this.#eventAbortController?.abort(); - this.#eventAbortController = null; - } -} -function isDestHashesEqual(destHash, pushHash) { - if (typeof destHash !== "string" || typeof pushHash !== "string") { - return false; - } - if (destHash === pushHash) { - return true; - } - const nameddest = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(destHash).get("nameddest"); - if (nameddest === pushHash) { - return true; - } - return false; -} -function isDestArraysEqual(firstDest, secondDest) { - function isEntryEqual(first, second) { - if (typeof first !== typeof second) { - return false; - } - if (Array.isArray(first) || Array.isArray(second)) { - return false; - } - if (first !== null && typeof first === "object" && second !== null) { - if (Object.keys(first).length !== Object.keys(second).length) { - return false; - } - for (const key in first) { - if (!isEntryEqual(first[key], second[key])) { - return false; - } - } - return true; - } - return first === second || Number.isNaN(first) && Number.isNaN(second); - } - if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) { - return false; - } - if (firstDest.length !== secondDest.length) { - return false; - } - for (let i = 0, ii = firstDest.length; i < ii; i++) { - if (!isEntryEqual(firstDest[i], secondDest[i])) { - return false; - } - } - return true; -} - - -/***/ }), - -/***/ 4275: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFLayerViewer: () => (/* binding */ PDFLayerViewer) -/* harmony export */ }); -/* harmony import */ var _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2961); - -class PDFLayerViewer extends _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_0__.BaseTreeViewer { - constructor(options) { - super(options); - this.eventBus._on("optionalcontentconfigchanged", evt => { - this.#updateLayers(evt.promise); - }); - this.eventBus._on("resetlayers", () => { - this.#updateLayers(); - }); - this.eventBus._on("togglelayerstree", this._toggleAllTreeItems.bind(this)); - } - reset() { - super.reset(); - this._optionalContentConfig = null; - this._optionalContentHash = null; - } - _dispatchEvent(layersCount) { - this.eventBus.dispatch("layersloaded", { - source: this, - layersCount - }); - } - _bindLink(element, { - groupId, - input - }) { - const setVisibility = () => { - this._optionalContentConfig.setVisibility(groupId, input.checked); - this._optionalContentHash = this._optionalContentConfig.getHash(); - this.eventBus.dispatch("optionalcontentconfig", { - source: this, - promise: Promise.resolve(this._optionalContentConfig) - }); - }; - element.onclick = evt => { - if (evt.target === input) { - setVisibility(); - return true; - } else if (evt.target !== element) { - return true; - } - input.checked = !input.checked; - setVisibility(); - return false; - }; - } - async _setNestedName(element, { - name = null - }) { - if (typeof name === "string") { - element.textContent = this._normalizeTextContent(name); - return; - } - element.textContent = await this._l10n.get("pdfjs-additional-layers"); - element.style.fontStyle = "italic"; - } - _addToggleButton(div, { - name = null - }) { - super._addToggleButton(div, name === null); - } - _toggleAllTreeItems() { - if (!this._optionalContentConfig) { - return; - } - super._toggleAllTreeItems(); - } - render({ - optionalContentConfig, - pdfDocument - }) { - if (this._optionalContentConfig) { - this.reset(); - } - this._optionalContentConfig = optionalContentConfig || null; - this._pdfDocument = pdfDocument || null; - const groups = optionalContentConfig?.getOrder(); - if (!groups) { - this._dispatchEvent(0); - return; - } - this._optionalContentHash = optionalContentConfig.getHash(); - const fragment = document.createDocumentFragment(), - queue = [{ - parent: fragment, - groups - }]; - let layersCount = 0, - hasAnyNesting = false; - while (queue.length > 0) { - const levelData = queue.shift(); - for (const groupId of levelData.groups) { - const div = document.createElement("div"); - div.className = "treeItem"; - const element = document.createElement("a"); - div.append(element); - if (typeof groupId === "object") { - hasAnyNesting = true; - this._addToggleButton(div, groupId); - this._setNestedName(element, groupId); - const itemsDiv = document.createElement("div"); - itemsDiv.className = "treeItems"; - div.append(itemsDiv); - queue.push({ - parent: itemsDiv, - groups: groupId.order - }); - } else { - const group = optionalContentConfig.getGroup(groupId); - const input = document.createElement("input"); - this._bindLink(element, { - groupId, - input - }); - input.type = "checkbox"; - input.checked = group.visible; - const label = document.createElement("label"); - label.textContent = this._normalizeTextContent(group.name); - label.append(input); - element.append(label); - layersCount++; - } - levelData.parent.append(div); - } - } - this._finishRendering(fragment, layersCount, hasAnyNesting); - } - async #updateLayers(promise = null) { - if (!this._optionalContentConfig) { - return; - } - const pdfDocument = this._pdfDocument; - const optionalContentConfig = await (promise || pdfDocument.getOptionalContentConfig({ - intent: "display" - })); - if (pdfDocument !== this._pdfDocument) { - return; - } - if (promise) { - if (optionalContentConfig.getHash() === this._optionalContentHash) { - return; - } - } else { - this.eventBus.dispatch("optionalcontentconfig", { - source: this, - promise: Promise.resolve(optionalContentConfig) - }); - } - this.render({ - optionalContentConfig, - pdfDocument: this._pdfDocument - }); - } -} - - -/***/ }), - -/***/ 787: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ LinkTarget: () => (/* binding */ LinkTarget), -/* harmony export */ PDFLinkService: () => (/* binding */ PDFLinkService), -/* harmony export */ SimpleLinkService: () => (/* binding */ SimpleLinkService) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); - -const DEFAULT_LINK_REL = "noopener noreferrer nofollow"; -const LinkTarget = { - NONE: 0, - SELF: 1, - BLANK: 2, - PARENT: 3, - TOP: 4 -}; -class PDFLinkService { - externalLinkEnabled = true; - constructor({ - eventBus, - externalLinkTarget = null, - externalLinkRel = null, - ignoreDestinationZoom = false - } = {}) { - this.eventBus = eventBus; - this.externalLinkTarget = externalLinkTarget; - this.externalLinkRel = externalLinkRel; - this._ignoreDestinationZoom = ignoreDestinationZoom; - this.baseUrl = null; - this.pdfDocument = null; - this.pdfViewer = null; - this.pdfHistory = null; - } - setDocument(pdfDocument, baseUrl = null) { - this.baseUrl = baseUrl; - this.pdfDocument = pdfDocument; - } - setViewer(pdfViewer) { - this.pdfViewer = pdfViewer; - } - setHistory(pdfHistory) { - this.pdfHistory = pdfHistory; - } - get pagesCount() { - return this.pdfDocument ? this.pdfDocument.numPages : 0; - } - get page() { - return this.pdfDocument ? this.pdfViewer.currentPageNumber : 1; - } - set page(value) { - if (this.pdfDocument) { - this.pdfViewer.currentPageNumber = value; - } - } - get rotation() { - return this.pdfDocument ? this.pdfViewer.pagesRotation : 0; - } - set rotation(value) { - if (this.pdfDocument) { - this.pdfViewer.pagesRotation = value; - } - } - get isInPresentationMode() { - return this.pdfDocument ? this.pdfViewer.isInPresentationMode : false; - } - async goToDestination(dest) { - if (!this.pdfDocument) { - return; - } - let namedDest, explicitDest, pageNumber; - if (typeof dest === "string") { - namedDest = dest; - explicitDest = await this.pdfDocument.getDestination(dest); - } else { - namedDest = null; - explicitDest = await dest; - } - if (!Array.isArray(explicitDest)) { - console.error(`goToDestination: "${explicitDest}" is not a valid destination array, for dest="${dest}".`); - return; - } - const [destRef] = explicitDest; - if (destRef && typeof destRef === "object") { - pageNumber = this.pdfDocument.cachedPageNumber(destRef); - if (!pageNumber) { - try { - pageNumber = (await this.pdfDocument.getPageIndex(destRef)) + 1; - } catch { - console.error(`goToDestination: "${destRef}" is not a valid page reference, for dest="${dest}".`); - return; - } - } - } else if (Number.isInteger(destRef)) { - pageNumber = destRef + 1; - } - if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) { - console.error(`goToDestination: "${pageNumber}" is not a valid page number, for dest="${dest}".`); - return; - } - if (this.pdfHistory) { - this.pdfHistory.pushCurrentPosition(); - this.pdfHistory.push({ - namedDest, - explicitDest, - pageNumber - }); - } - this.pdfViewer.scrollPageIntoView({ - pageNumber, - destArray: explicitDest, - ignoreDestinationZoom: this._ignoreDestinationZoom - }); - } - goToPage(val) { - if (!this.pdfDocument) { - return; - } - const pageNumber = typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0; - if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { - console.error(`PDFLinkService.goToPage: "${val}" is not a valid page.`); - return; - } - if (this.pdfHistory) { - this.pdfHistory.pushCurrentPosition(); - this.pdfHistory.pushPage(pageNumber); - } - this.pdfViewer.scrollPageIntoView({ - pageNumber - }); - } - addLinkAttributes(link, url, newWindow = false) { - if (!url || typeof url !== "string") { - throw new Error('A valid "url" parameter must provided.'); - } - const target = newWindow ? LinkTarget.BLANK : this.externalLinkTarget, - rel = this.externalLinkRel; - if (this.externalLinkEnabled) { - link.href = link.title = url; - } else { - link.href = ""; - link.title = `Disabled: ${url}`; - link.onclick = () => false; - } - let targetStr = ""; - switch (target) { - case LinkTarget.NONE: - break; - case LinkTarget.SELF: - targetStr = "_self"; - break; - case LinkTarget.BLANK: - targetStr = "_blank"; - break; - case LinkTarget.PARENT: - targetStr = "_parent"; - break; - case LinkTarget.TOP: - targetStr = "_top"; - break; - } - link.target = targetStr; - link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL; - } - getDestinationHash(dest) { - if (typeof dest === "string") { - if (dest.length > 0) { - return this.getAnchorUrl("#" + escape(dest)); - } - } else if (Array.isArray(dest)) { - const str = JSON.stringify(dest); - if (str.length > 0) { - return this.getAnchorUrl("#" + escape(str)); - } - } - return this.getAnchorUrl(""); - } - getAnchorUrl(anchor) { - return this.baseUrl ? this.baseUrl + anchor : anchor; - } - setHash(hash) { - if (!this.pdfDocument) { - return; - } - let pageNumber, dest; - if (hash.includes("=")) { - const params = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.parseQueryString)(hash); - if (params.has("search")) { - const query = params.get("search").replaceAll('"', ""), - phrase = params.get("phrase") === "true"; - this.eventBus.dispatch("findfromurlhash", { - source: this, - query: phrase ? query : query.match(/\S+/g) - }); - } - if (params.has("page")) { - pageNumber = params.get("page") | 0 || 1; - } - if (params.has("zoom")) { - const zoomArgs = params.get("zoom").split(","); - const zoomArg = zoomArgs[0]; - const zoomArgNumber = parseFloat(zoomArg); - if (!zoomArg.includes("Fit")) { - dest = [null, { - name: "XYZ" - }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; - } else if (zoomArg === "Fit" || zoomArg === "FitB") { - dest = [null, { - name: zoomArg - }]; - } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") { - dest = [null, { - name: zoomArg - }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; - } else if (zoomArg === "FitR") { - if (zoomArgs.length !== 5) { - console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); - } else { - dest = [null, { - name: zoomArg - }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; - } - } else { - console.error(`PDFLinkService.setHash: "${zoomArg}" is not a valid zoom value.`); - } - } - if (dest) { - this.pdfViewer.scrollPageIntoView({ - pageNumber: pageNumber || this.page, - destArray: dest, - allowNegativeOffset: true - }); - } else if (pageNumber) { - this.page = pageNumber; - } - if (params.has("pagemode")) { - this.eventBus.dispatch("pagemode", { - source: this, - mode: params.get("pagemode") - }); - } - if (params.has("nameddest")) { - this.goToDestination(params.get("nameddest")); - } - return; - } - dest = unescape(hash); - try { - dest = JSON.parse(dest); - if (!Array.isArray(dest)) { - dest = dest.toString(); - } - } catch {} - if (typeof dest === "string" || PDFLinkService.#isValidExplicitDest(dest)) { - this.goToDestination(dest); - return; - } - console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not a valid destination.`); - } - executeNamedAction(action) { - if (!this.pdfDocument) { - return; - } - switch (action) { - case "GoBack": - this.pdfHistory?.back(); - break; - case "GoForward": - this.pdfHistory?.forward(); - break; - case "NextPage": - this.pdfViewer.nextPage(); - break; - case "PrevPage": - this.pdfViewer.previousPage(); - break; - case "LastPage": - this.page = this.pagesCount; - break; - case "FirstPage": - this.page = 1; - break; - default: - break; - } - this.eventBus.dispatch("namedaction", { - source: this, - action - }); - } - async executeSetOCGState(action) { - if (!this.pdfDocument) { - return; - } - const pdfDocument = this.pdfDocument, - optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise; - if (pdfDocument !== this.pdfDocument) { - return; - } - optionalContentConfig.setOCGState(action); - this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig); - } - static #isValidExplicitDest(dest) { - if (!Array.isArray(dest) || dest.length < 2) { - return false; - } - const [page, zoom, ...args] = dest; - if (!(typeof page === "object" && Number.isInteger(page?.num) && Number.isInteger(page?.gen)) && !Number.isInteger(page)) { - return false; - } - if (!(typeof zoom === "object" && typeof zoom?.name === "string")) { - return false; - } - let allowNull = true; - switch (zoom.name) { - case "XYZ": - if (args.length !== 3) { - return false; - } - break; - case "Fit": - case "FitB": - return args.length === 0; - case "FitH": - case "FitBH": - case "FitV": - case "FitBV": - if (args.length !== 1) { - return false; - } - break; - case "FitR": - if (args.length !== 4) { - return false; - } - allowNull = false; - break; - default: - return false; - } - for (const arg of args) { - if (!(typeof arg === "number" || allowNull && arg === null)) { - return false; - } - } - return true; - } -} -class SimpleLinkService extends PDFLinkService { - setDocument(pdfDocument, baseUrl = null) {} -} - - -/***/ }), - -/***/ 5514: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFOutlineViewer: () => (/* binding */ PDFOutlineViewer) -/* harmony export */ }); -/* harmony import */ var _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2961); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7256); - - -class PDFOutlineViewer extends _base_tree_viewer_js__WEBPACK_IMPORTED_MODULE_0__.BaseTreeViewer { - constructor(options) { - super(options); - this.linkService = options.linkService; - this.downloadManager = options.downloadManager; - this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this)); - this.eventBus._on("currentoutlineitem", this._currentOutlineItem.bind(this)); - this.eventBus._on("pagechanging", evt => { - this._currentPageNumber = evt.pageNumber; - }); - this.eventBus._on("pagesloaded", evt => { - this._isPagesLoaded = !!evt.pagesCount; - this._currentOutlineItemCapability?.resolve(this._isPagesLoaded); - }); - this.eventBus._on("sidebarviewchanged", evt => { - this._sidebarView = evt.view; - }); - } - reset() { - super.reset(); - this._outline = null; - this._pageNumberToDestHashCapability = null; - this._currentPageNumber = 1; - this._isPagesLoaded = null; - this._currentOutlineItemCapability?.resolve(false); - this._currentOutlineItemCapability = null; - } - _dispatchEvent(outlineCount) { - this._currentOutlineItemCapability = Promise.withResolvers(); - if (outlineCount === 0 || this._pdfDocument?.loadingParams.disableAutoFetch) { - this._currentOutlineItemCapability.resolve(false); - } else if (this._isPagesLoaded !== null) { - this._currentOutlineItemCapability.resolve(this._isPagesLoaded); - } - this.eventBus.dispatch("outlineloaded", { - source: this, - outlineCount, - currentOutlineItemPromise: this._currentOutlineItemCapability.promise - }); - } - _bindLink(element, { - url, - newWindow, - action, - attachment, - dest, - setOCGState - }) { - const { - linkService - } = this; - if (url) { - linkService.addLinkAttributes(element, url, newWindow); - return; - } - if (action) { - element.href = linkService.getAnchorUrl(""); - element.onclick = () => { - linkService.executeNamedAction(action); - return false; - }; - return; - } - if (attachment) { - element.href = linkService.getAnchorUrl(""); - element.onclick = () => { - this.downloadManager.openOrDownloadData(attachment.content, attachment.filename); - return false; - }; - return; - } - if (setOCGState) { - element.href = linkService.getAnchorUrl(""); - element.onclick = () => { - linkService.executeSetOCGState(setOCGState); - return false; - }; - return; - } - element.href = linkService.getDestinationHash(dest); - element.onclick = evt => { - this._updateCurrentTreeItem(evt.target.parentNode); - if (dest) { - linkService.goToDestination(dest); - } - return false; - }; - } - _setStyles(element, { - bold, - italic - }) { - if (bold) { - element.style.fontWeight = "bold"; - } - if (italic) { - element.style.fontStyle = "italic"; - } - } - _addToggleButton(div, { - count, - items - }) { - let hidden = false; - if (count < 0) { - let totalCount = items.length; - if (totalCount > 0) { - const queue = [...items]; - while (queue.length > 0) { - const { - count: nestedCount, - items: nestedItems - } = queue.shift(); - if (nestedCount > 0 && nestedItems.length > 0) { - totalCount += nestedItems.length; - queue.push(...nestedItems); - } - } - } - if (Math.abs(count) === totalCount) { - hidden = true; - } - } - super._addToggleButton(div, hidden); - } - _toggleAllTreeItems() { - if (!this._outline) { - return; - } - super._toggleAllTreeItems(); - } - render({ - outline, - pdfDocument - }) { - if (this._outline) { - this.reset(); - } - this._outline = outline || null; - this._pdfDocument = pdfDocument || null; - if (!outline) { - this._dispatchEvent(0); - return; - } - const fragment = document.createDocumentFragment(); - const queue = [{ - parent: fragment, - items: outline - }]; - let outlineCount = 0, - hasAnyNesting = false; - while (queue.length > 0) { - const levelData = queue.shift(); - for (const item of levelData.items) { - const div = document.createElement("div"); - div.className = "treeItem"; - const element = document.createElement("a"); - this._bindLink(element, item); - this._setStyles(element, item); - element.textContent = this._normalizeTextContent(item.title); - div.append(element); - if (item.items.length > 0) { - hasAnyNesting = true; - this._addToggleButton(div, item); - const itemsDiv = document.createElement("div"); - itemsDiv.className = "treeItems"; - div.append(itemsDiv); - queue.push({ - parent: itemsDiv, - items: item.items - }); - } - levelData.parent.append(div); - outlineCount++; - } - } - this._finishRendering(fragment, outlineCount, hasAnyNesting); - } - async _currentOutlineItem() { - if (!this._isPagesLoaded) { - throw new Error("_currentOutlineItem: All pages have not been loaded."); - } - if (!this._outline || !this._pdfDocument) { - return; - } - const pageNumberToDestHash = await this._getPageNumberToDestHash(this._pdfDocument); - if (!pageNumberToDestHash) { - return; - } - this._updateCurrentTreeItem(null); - if (this._sidebarView !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SidebarView.OUTLINE) { - return; - } - for (let i = this._currentPageNumber; i > 0; i--) { - const destHash = pageNumberToDestHash.get(i); - if (!destHash) { - continue; - } - const linkElement = this.container.querySelector(`a[href="${destHash}"]`); - if (!linkElement) { - continue; - } - this._scrollToCurrentTreeItem(linkElement.parentNode); - break; - } - } - async _getPageNumberToDestHash(pdfDocument) { - if (this._pageNumberToDestHashCapability) { - return this._pageNumberToDestHashCapability.promise; - } - this._pageNumberToDestHashCapability = Promise.withResolvers(); - const pageNumberToDestHash = new Map(), - pageNumberNesting = new Map(); - const queue = [{ - nesting: 0, - items: this._outline - }]; - while (queue.length > 0) { - const levelData = queue.shift(), - currentNesting = levelData.nesting; - for (const { - dest, - items - } of levelData.items) { - let explicitDest, pageNumber; - if (typeof dest === "string") { - explicitDest = await pdfDocument.getDestination(dest); - if (pdfDocument !== this._pdfDocument) { - return null; - } - } else { - explicitDest = dest; - } - if (Array.isArray(explicitDest)) { - const [destRef] = explicitDest; - if (destRef && typeof destRef === "object") { - pageNumber = pdfDocument.cachedPageNumber(destRef); - } else if (Number.isInteger(destRef)) { - pageNumber = destRef + 1; - } - if (Number.isInteger(pageNumber) && (!pageNumberToDestHash.has(pageNumber) || currentNesting > pageNumberNesting.get(pageNumber))) { - const destHash = this.linkService.getDestinationHash(dest); - pageNumberToDestHash.set(pageNumber, destHash); - pageNumberNesting.set(pageNumber, currentNesting); - } - } - if (items.length > 0) { - queue.push({ - nesting: currentNesting + 1, - items - }); - } - } - } - this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null); - return this._pageNumberToDestHashCapability.promise; - } -} - - -/***/ }), - -/***/ 9966: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFPageView: () => (/* binding */ PDFPageView) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7256); -/* harmony import */ var _annotation_editor_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(283); -/* harmony import */ var _annotation_layer_builder_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2707); -/* harmony import */ var _app_options_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9840); -/* harmony import */ var _draw_layer_builder_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3088); -/* harmony import */ var web_null_l10n__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(410); -/* harmony import */ var _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(787); -/* harmony import */ var _struct_tree_layer_builder_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(6698); -/* harmony import */ var _text_accessibility_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(5860); -/* harmony import */ var _text_highlighter_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(2027); -/* harmony import */ var _text_layer_builder_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(7765); -/* harmony import */ var _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2973); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _annotation_editor_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__, _annotation_layer_builder_js__WEBPACK_IMPORTED_MODULE_3__, _draw_layer_builder_js__WEBPACK_IMPORTED_MODULE_5__, web_null_l10n__WEBPACK_IMPORTED_MODULE_6__, _text_layer_builder_js__WEBPACK_IMPORTED_MODULE_10__, _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_11__]); -([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _annotation_editor_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__, _annotation_layer_builder_js__WEBPACK_IMPORTED_MODULE_3__, _draw_layer_builder_js__WEBPACK_IMPORTED_MODULE_5__, web_null_l10n__WEBPACK_IMPORTED_MODULE_6__, _text_layer_builder_js__WEBPACK_IMPORTED_MODULE_10__, _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_11__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); - - - - - - - - - - - - - -const DEFAULT_LAYER_PROPERTIES = null; -const LAYERS_ORDER = new Map([["canvasWrapper", 0], ["textLayer", 1], ["annotationLayer", 2], ["annotationEditorLayer", 3], ["xfaLayer", 3]]); -class PDFPageView { - #annotationMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS; - #hasRestrictedScaling = false; - #layerProperties = null; - #loadingId = null; - #previousRotation = null; - #renderError = null; - #renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.INITIAL; - #textLayerMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE; - #useThumbnailCanvas = { - directDrawing: true, - initialOptionalContent: true, - regularAnnotations: true - }; - #viewportMap = new WeakMap(); - #layers = [null, null, null, null]; - constructor(options) { - const container = options.container; - const defaultViewport = options.defaultViewport; - this.id = options.id; - this.renderingId = "page" + this.id; - this.#layerProperties = options.layerProperties || DEFAULT_LAYER_PROPERTIES; - this.pdfPage = null; - this.pageLabel = null; - this.rotation = 0; - this.scale = options.scale || _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE; - this.viewport = defaultViewport; - this.pdfPageRotate = defaultViewport.rotation; - this._optionalContentConfigPromise = options.optionalContentConfigPromise || null; - this.#textLayerMode = options.textLayerMode ?? _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE; - this.#annotationMode = options.annotationMode ?? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS; - this.imageResourcesPath = options.imageResourcesPath || ""; - this.maxCanvasPixels = options.maxCanvasPixels ?? _app_options_js__WEBPACK_IMPORTED_MODULE_4__.AppOptions.get("maxCanvasPixels"); - this.pageColors = options.pageColors || null; - this.eventBus = options.eventBus; - this.renderingQueue = options.renderingQueue; - this.l10n = options.l10n; - this.l10n ||= new web_null_l10n__WEBPACK_IMPORTED_MODULE_6__.GenericL10n(); - this.renderTask = null; - this.resume = null; - this._isStandalone = !this.renderingQueue?.hasViewer(); - this._container = container; - this._annotationCanvasMap = null; - this.annotationLayer = null; - this.annotationEditorLayer = null; - this.textLayer = null; - this.zoomLayer = null; - this.xfaLayer = null; - this.structTreeLayer = null; - this.drawLayer = null; - const div = document.createElement("div"); - div.className = "page"; - div.setAttribute("data-page-number", this.id); - div.setAttribute("role", "region"); - div.setAttribute("data-l10n-id", "pdfjs-page-landmark"); - div.setAttribute("data-l10n-args", JSON.stringify({ - page: this.id - })); - this.div = div; - this.#setDimensions(); - container?.append(div); - if (this._isStandalone) { - container?.style.setProperty("--scale-factor", this.scale * pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS); - const { - optionalContentConfigPromise - } = options; - if (optionalContentConfigPromise) { - optionalContentConfigPromise.then(optionalContentConfig => { - if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { - return; - } - this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; - }); - } - if (!options.l10n) { - this.l10n.translate(this.div); - } - } - } - #addLayer(div, name) { - const pos = LAYERS_ORDER.get(name); - const oldDiv = this.#layers[pos]; - this.#layers[pos] = div; - if (oldDiv) { - oldDiv.replaceWith(div); - return; - } - for (let i = pos - 1; i >= 0; i--) { - const layer = this.#layers[i]; - if (layer) { - layer.after(div); - return; - } - } - this.div.prepend(div); - } - get renderingState() { - return this.#renderingState; - } - set renderingState(state) { - if (state === this.#renderingState) { - return; - } - this.#renderingState = state; - if (this.#loadingId) { - clearTimeout(this.#loadingId); - this.#loadingId = null; - } - switch (state) { - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.PAUSED: - this.div.classList.remove("loading"); - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.RUNNING: - this.div.classList.add("loadingIcon"); - this.#loadingId = setTimeout(() => { - this.div.classList.add("loading"); - this.#loadingId = null; - }, 0); - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.INITIAL: - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED: - this.div.classList.remove("loadingIcon", "loading"); - break; - } - } - #setDimensions() { - const { - viewport - } = this; - if (this.pdfPage) { - if (this.#previousRotation === viewport.rotation) { - return; - } - this.#previousRotation = viewport.rotation; - } - (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.setLayerDimensions)(this.div, viewport, true, false); - } - setPdfPage(pdfPage) { - if (this._isStandalone && (this.pageColors?.foreground === "CanvasText" || this.pageColors?.background === "Canvas")) { - this._container?.style.setProperty("--hcm-highlight-filter", pdfPage.filterFactory.addHighlightHCMFilter("highlight", "CanvasText", "Canvas", "HighlightText", "Highlight")); - this._container?.style.setProperty("--hcm-highlight-selected-filter", pdfPage.filterFactory.addHighlightHCMFilter("highlight_selected", "CanvasText", "Canvas", "HighlightText", "Highlight")); - } - this.pdfPage = pdfPage; - this.pdfPageRotate = pdfPage.rotate; - const totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = pdfPage.getViewport({ - scale: this.scale * pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS, - rotation: totalRotation - }); - this.#setDimensions(); - this.reset(); - } - destroy() { - this.reset(); - this.pdfPage?.cleanup(); - } - get _textHighlighter() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_textHighlighter", new _text_highlighter_js__WEBPACK_IMPORTED_MODULE_12__.TextHighlighter({ - pageIndex: this.id - 1, - eventBus: this.eventBus, - findController: this.#layerProperties.findController - })); - } - async #renderAnnotationLayer() { - let error = null; - try { - await this.annotationLayer.render(this.viewport, "display"); - } catch (ex) { - console.error(`#renderAnnotationLayer: "${ex}".`); - error = ex; - } finally { - this.eventBus.dispatch("annotationlayerrendered", { - source: this, - pageNumber: this.id, - error - }); - } - } - async #renderAnnotationEditorLayer() { - let error = null; - try { - await this.annotationEditorLayer.render(this.viewport, "display"); - } catch (ex) { - console.error(`#renderAnnotationEditorLayer: "${ex}".`); - error = ex; - } finally { - this.eventBus.dispatch("annotationeditorlayerrendered", { - source: this, - pageNumber: this.id, - error - }); - - // [Custom] annotationLayer有时候会重建,所以多一层postMesseage保证朦层渲染 - window.parent.postMessage({pageNum: this.id - 1}, '*'); - } - } - async #renderDrawLayer() { - try { - await this.drawLayer.render("display"); - } catch (ex) { - console.error(`#renderDrawLayer: "${ex}".`); - } - } - async #renderXfaLayer() { - let error = null; - try { - const result = await this.xfaLayer.render(this.viewport, "display"); - if (result?.textDivs && this._textHighlighter) { - this.#buildXfaTextContentItems(result.textDivs); - } - } catch (ex) { - console.error(`#renderXfaLayer: "${ex}".`); - error = ex; - } finally { - if (this.xfaLayer?.div) { - this.l10n.pause(); - this.#addLayer(this.xfaLayer.div, "xfaLayer"); - this.l10n.resume(); - } - this.eventBus.dispatch("xfalayerrendered", { - source: this, - pageNumber: this.id, - error - }); - } - } - async #renderTextLayer() { - const { - pdfPage, - textLayer, - viewport - } = this; - if (!textLayer) { - return; - } - let error = null; - try { - if (!textLayer.renderingDone) { - const readableStream = pdfPage.streamTextContent({ - includeMarkedContent: true, - disableNormalization: true - }); - textLayer.setTextContentSource(readableStream); - } - await textLayer.render(viewport); - } catch (ex) { - if (ex instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AbortException) { - return; - } - console.error(`#renderTextLayer: "${ex}".`); - error = ex; - } - this.eventBus.dispatch("textlayerrendered", { - source: this, - pageNumber: this.id, - numTextDivs: textLayer.numTextDivs, - error - }); - this.#renderStructTreeLayer(); - } - async #renderStructTreeLayer() { - if (!this.textLayer) { - return; - } - this.structTreeLayer ||= new _struct_tree_layer_builder_js__WEBPACK_IMPORTED_MODULE_8__.StructTreeLayerBuilder(); - const tree = await (!this.structTreeLayer.renderingDone ? this.pdfPage.getStructTree() : null); - const treeDom = this.structTreeLayer?.render(tree); - if (treeDom) { - this.l10n.pause(); - this.canvas?.append(treeDom); - this.l10n.resume(); - } - this.structTreeLayer?.show(); - } - async #buildXfaTextContentItems(textDivs) { - const text = await this.pdfPage.getTextContent(); - const items = []; - for (const item of text.items) { - items.push(item.str); - } - this._textHighlighter.setTextMapping(textDivs, items); - this._textHighlighter.enable(); - } - _resetZoomLayer(removeFromDOM = false) { - if (!this.zoomLayer) { - return; - } - const zoomLayerCanvas = this.zoomLayer.firstChild; - this.#viewportMap.delete(zoomLayerCanvas); - zoomLayerCanvas.width = 0; - zoomLayerCanvas.height = 0; - if (removeFromDOM) { - this.zoomLayer.remove(); - } - this.zoomLayer = null; - } - reset({ - keepZoomLayer = false, - keepAnnotationLayer = false, - keepAnnotationEditorLayer = false, - keepXfaLayer = false, - keepTextLayer = false - } = {}) { - this.cancelRendering({ - keepAnnotationLayer, - keepAnnotationEditorLayer, - keepXfaLayer, - keepTextLayer - }); - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.INITIAL; - const div = this.div; - const childNodes = div.childNodes, - zoomLayerNode = keepZoomLayer && this.zoomLayer || null, - annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null, - annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null, - xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null, - textLayerNode = keepTextLayer && this.textLayer?.div || null; - for (let i = childNodes.length - 1; i >= 0; i--) { - const node = childNodes[i]; - switch (node) { - case zoomLayerNode: - case annotationLayerNode: - case annotationEditorLayerNode: - case xfaLayerNode: - case textLayerNode: - continue; - } - node.remove(); - const layerIndex = this.#layers.indexOf(node); - if (layerIndex >= 0) { - this.#layers[layerIndex] = null; - } - } - div.removeAttribute("data-loaded"); - if (annotationLayerNode) { - // this.annotationLayer.hide(); - } - if (annotationEditorLayerNode) { - this.annotationEditorLayer.hide(); - } - if (xfaLayerNode) { - this.xfaLayer.hide(); - } - if (textLayerNode) { - this.textLayer.hide(); - } - this.structTreeLayer?.hide(); - if (!zoomLayerNode) { - if (this.canvas) { - this.#viewportMap.delete(this.canvas); - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; - } - this._resetZoomLayer(); - } - } - update({ - scale = 0, - rotation = null, - optionalContentConfigPromise = null, - drawingDelay = -1 - }) { - this.scale = scale || this.scale; - if (typeof rotation === "number") { - this.rotation = rotation; - } - if (optionalContentConfigPromise instanceof Promise) { - this._optionalContentConfigPromise = optionalContentConfigPromise; - optionalContentConfigPromise.then(optionalContentConfig => { - if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { - return; - } - this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; - }); - } - this.#useThumbnailCanvas.directDrawing = true; - const totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = this.viewport.clone({ - scale: this.scale * pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS, - rotation: totalRotation - }); - this.#setDimensions(); - if (this._isStandalone) { - this._container?.style.setProperty("--scale-factor", this.viewport.scale); - } - if (this.canvas) { - let onlyCssZoom = false; - if (this.#hasRestrictedScaling) { - if (this.maxCanvasPixels === 0) { - onlyCssZoom = true; - } else if (this.maxCanvasPixels > 0) { - const { - width, - height - } = this.viewport; - const { - sx, - sy - } = this.outputScale; - onlyCssZoom = (Math.floor(width) * sx | 0) * (Math.floor(height) * sy | 0) > this.maxCanvasPixels; - } - } - const postponeDrawing = !onlyCssZoom && drawingDelay >= 0 && drawingDelay < 1000; - if (postponeDrawing || onlyCssZoom) { - if (postponeDrawing && this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED) { - this.cancelRendering({ - keepZoomLayer: true, - keepAnnotationLayer: true, - keepAnnotationEditorLayer: true, - keepXfaLayer: true, - keepTextLayer: true, - cancelExtraDelay: drawingDelay - }); - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED; - this.#useThumbnailCanvas.directDrawing = false; - } - this.cssTransform({ - target: this.canvas, - redrawAnnotationLayer: true, - redrawAnnotationEditorLayer: true, - redrawXfaLayer: true, - redrawTextLayer: !postponeDrawing, - hideTextLayer: postponeDrawing - }); - if (postponeDrawing) { - return; - } - this.eventBus.dispatch("pagerendered", { - source: this, - pageNumber: this.id, - cssTransform: true, - timestamp: performance.now(), - error: this.#renderError - }); - return; - } - if (!this.zoomLayer && !this.canvas.hidden) { - this.zoomLayer = this.canvas.parentNode; - this.zoomLayer.style.position = "absolute"; - } - } - if (this.zoomLayer) { - this.cssTransform({ - target: this.zoomLayer.firstChild - }); - } - this.reset({ - keepZoomLayer: true, - keepAnnotationLayer: true, - keepAnnotationEditorLayer: true, - keepXfaLayer: true, - keepTextLayer: true - }); - } - cancelRendering({ - keepAnnotationLayer = false, - keepAnnotationEditorLayer = false, - keepXfaLayer = false, - keepTextLayer = false, - cancelExtraDelay = 0 - } = {}) { - if (this.renderTask) { - this.renderTask.cancel(cancelExtraDelay); - this.renderTask = null; - } - this.resume = null; - if (this.textLayer && (!keepTextLayer || !this.textLayer.div)) { - this.textLayer.cancel(); - this.textLayer = null; - } - if (this.structTreeLayer && !this.textLayer) { - this.structTreeLayer = null; - } - if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) { - this.annotationLayer.cancel(); - this.annotationLayer = null; - this._annotationCanvasMap = null; - } - if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) { - if (this.drawLayer) { - this.drawLayer.cancel(); - this.drawLayer = null; - } - this.annotationEditorLayer.cancel(); - this.annotationEditorLayer = null; - } - if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) { - this.xfaLayer.cancel(); - this.xfaLayer = null; - this._textHighlighter?.disable(); - } - } - cssTransform({ - target, - redrawAnnotationLayer = false, - redrawAnnotationEditorLayer = false, - redrawXfaLayer = false, - redrawTextLayer = false, - hideTextLayer = false - }) { - if (!target.hasAttribute("zooming")) { - target.setAttribute("zooming", true); - const { - style - } = target; - style.width = style.height = ""; - } - const originalViewport = this.#viewportMap.get(target); - if (this.viewport !== originalViewport) { - const relativeRotation = this.viewport.rotation - originalViewport.rotation; - const absRotation = Math.abs(relativeRotation); - let scaleX = 1, - scaleY = 1; - if (absRotation === 90 || absRotation === 270) { - const { - width, - height - } = this.viewport; - scaleX = height / width; - scaleY = width / height; - } - target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`; - } - if (redrawAnnotationLayer && this.annotationLayer) { - this.#renderAnnotationLayer(); - } - if (redrawAnnotationEditorLayer && this.annotationEditorLayer) { - if (this.drawLayer) { - this.#renderDrawLayer(); - } - this.#renderAnnotationEditorLayer(); - } - if (redrawXfaLayer && this.xfaLayer) { - this.#renderXfaLayer(); - } - if (this.textLayer) { - if (hideTextLayer) { - this.textLayer.hide(); - this.structTreeLayer?.hide(); - } else if (redrawTextLayer) { - this.#renderTextLayer(); - } - } - } - get width() { - return this.viewport.width; - } - get height() { - return this.viewport.height; - } - getPagePoint(x, y) { - return this.viewport.convertToPdfPoint(x, y); - } - async #finishRenderTask(renderTask, error = null) { - if (renderTask === this.renderTask) { - this.renderTask = null; - } - if (error instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.RenderingCancelledException) { - this.#renderError = null; - return; - } - this.#renderError = error; - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED; - this._resetZoomLayer(true); - this.#useThumbnailCanvas.regularAnnotations = !renderTask.separateAnnots; - this.eventBus.dispatch("pagerendered", { - source: this, - pageNumber: this.id, - cssTransform: false, - timestamp: performance.now(), - error: this.#renderError - }); - if (error) { - throw error; - } - } - async draw() { - if (this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.INITIAL) { - console.error("Must be in new state before drawing"); - this.reset(); - } - const { - div, - l10n, - pageColors, - pdfPage, - viewport - } = this; - if (!pdfPage) { - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED; - throw new Error("pdfPage is not loaded"); - } - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.RUNNING; - const canvasWrapper = document.createElement("div"); - canvasWrapper.classList.add("canvasWrapper"); - canvasWrapper.setAttribute("aria-hidden", true); - this.#addLayer(canvasWrapper, "canvasWrapper"); - if (!this.textLayer && this.#textLayerMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.DISABLE && !pdfPage.isPureXfa) { - this._accessibilityManager ||= new _text_accessibility_js__WEBPACK_IMPORTED_MODULE_9__.TextAccessibilityManager(); - this.textLayer = new _text_layer_builder_js__WEBPACK_IMPORTED_MODULE_10__.TextLayerBuilder({ - highlighter: this._textHighlighter, - accessibilityManager: this._accessibilityManager, - enablePermissions: this.#textLayerMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE_PERMISSIONS, - onAppend: textLayerDiv => { - this.l10n.pause(); - this.#addLayer(textLayerDiv, "textLayer"); - this.l10n.resume(); - } - }); - } - if (!this.annotationLayer && this.#annotationMode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.DISABLE) { - const { - annotationStorage, - annotationEditorUIManager, - downloadManager, - enableScripting, - fieldObjectsPromise, - hasJSActionsPromise, - linkService - } = this.#layerProperties; - this._annotationCanvasMap ||= new Map(); - this.annotationLayer = new _annotation_layer_builder_js__WEBPACK_IMPORTED_MODULE_3__.AnnotationLayerBuilder({ - pdfPage, - annotationStorage, - imageResourcesPath: this.imageResourcesPath, - renderForms: this.#annotationMode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS, - linkService, - downloadManager, - enableScripting, - hasJSActionsPromise, - fieldObjectsPromise, - annotationCanvasMap: this._annotationCanvasMap, - accessibilityManager: this._accessibilityManager, - annotationEditorUIManager, - onAppend: annotationLayerDiv => { - this.#addLayer(annotationLayerDiv, "annotationLayer"); - } - }); - } - const renderContinueCallback = cont => { - showCanvas?.(false); - if (this.renderingQueue && !this.renderingQueue.isHighestPriority(this)) { - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.PAUSED; - this.resume = () => { - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.RUNNING; - cont(); - }; - return; - } - cont(); - }; - const { - width, - height - } = viewport; - const canvas = document.createElement("canvas"); - canvas.setAttribute("role", "presentation"); - canvas.hidden = true; - const hasHCM = !!(pageColors?.background && pageColors?.foreground); - let showCanvas = isLastShow => { - if (!hasHCM || isLastShow) { - canvas.hidden = false; - showCanvas = null; - } - }; - canvasWrapper.append(canvas); - this.canvas = canvas; - const ctx = canvas.getContext("2d", { - alpha: false - }); - const outputScale = this.outputScale = new _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.OutputScale(); - if (this.maxCanvasPixels === 0) { - const invScale = 1 / this.scale; - outputScale.sx *= invScale; - outputScale.sy *= invScale; - this.#hasRestrictedScaling = true; - } else if (this.maxCanvasPixels > 0) { - const pixelsInViewport = width * height; - const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); - if (outputScale.sx > maxScale || outputScale.sy > maxScale) { - outputScale.sx = maxScale; - outputScale.sy = maxScale; - this.#hasRestrictedScaling = true; - } else { - this.#hasRestrictedScaling = false; - } - } - const sfx = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.approximateFraction)(outputScale.sx); - const sfy = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.approximateFraction)(outputScale.sy); - canvas.width = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.roundToDivide)(width * outputScale.sx, sfx[0]); - canvas.height = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.roundToDivide)(height * outputScale.sy, sfy[0]); - const { - style - } = canvas; - style.width = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.roundToDivide)(width, sfx[1]) + "px"; - style.height = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.roundToDivide)(height, sfy[1]) + "px"; - this.#viewportMap.set(canvas, viewport); - const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; - const renderContext = { - canvasContext: ctx, - transform, - viewport, - annotationMode: this.#annotationMode, - optionalContentConfigPromise: this._optionalContentConfigPromise, - annotationCanvasMap: this._annotationCanvasMap, - pageColors - }; - const renderTask = this.renderTask = this.pdfPage.render(renderContext); - renderTask.onContinue = renderContinueCallback; - const resultPromise = renderTask.promise.then(async () => { - showCanvas?.(true); - await this.#finishRenderTask(renderTask); - this.#renderTextLayer(); - if (this.annotationLayer) { - await this.#renderAnnotationLayer(); - } - const { - annotationEditorUIManager - } = this.#layerProperties; - if (!annotationEditorUIManager) { - return; - } - this.drawLayer ||= new _draw_layer_builder_js__WEBPACK_IMPORTED_MODULE_5__.DrawLayerBuilder({ - pageIndex: this.id - }); - await this.#renderDrawLayer(); - this.drawLayer.setParent(canvasWrapper); - if (!this.annotationEditorLayer) { - // console.log('test-drawer', this.drawLayer.getDrawLayer()) - this.annotationEditorLayer = new _annotation_editor_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__.AnnotationEditorLayerBuilder({ - uiManager: annotationEditorUIManager, - pdfPage, - l10n, - accessibilityManager: this._accessibilityManager, - annotationLayer: this.annotationLayer?.annotationLayer, - textLayer: this.textLayer, - drawLayer: this.drawLayer.getDrawLayer(), - // drawLayer:null, - onAppend: annotationEditorLayerDiv => { - this.#addLayer(annotationEditorLayerDiv, "annotationEditorLayer"); - } - }); - } - this.#renderAnnotationEditorLayer(); - }, error => { - if (!(error instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.RenderingCancelledException)) { - showCanvas?.(true); - } - return this.#finishRenderTask(renderTask, error); - }); - if (pdfPage.isPureXfa) { - if (!this.xfaLayer) { - const { - annotationStorage, - linkService - } = this.#layerProperties; - this.xfaLayer = new _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_11__.XfaLayerBuilder({ - pdfPage, - annotationStorage, - linkService - }); - } - this.#renderXfaLayer(); - } - div.setAttribute("data-loaded", true); - this.eventBus.dispatch("pagerender", { - source: this, - pageNumber: this.id - }); - return resultPromise; - } - setPageLabel(label) { - this.pageLabel = typeof label === "string" ? label : null; - this.div.setAttribute("data-l10n-args", JSON.stringify({ - page: this.pageLabel ?? this.id - })); - if (this.pageLabel !== null) { - this.div.setAttribute("data-page-label", this.pageLabel); - } else { - this.div.removeAttribute("data-page-label"); - } - } - get thumbnailCanvas() { - const { - directDrawing, - initialOptionalContent, - regularAnnotations - } = this.#useThumbnailCanvas; - return directDrawing && initialOptionalContent && regularAnnotations ? this.canvas : null; - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 8917: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFPresentationMode: () => (/* binding */ PDFPresentationMode) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -const DELAY_BEFORE_HIDING_CONTROLS = 3000; -const ACTIVE_SELECTOR = "pdfPresentationMode"; -const CONTROLS_SELECTOR = "pdfPresentationModeControls"; -const MOUSE_SCROLL_COOLDOWN_TIME = 50; -const PAGE_SWITCH_THRESHOLD = 0.1; -const SWIPE_MIN_DISTANCE_THRESHOLD = 50; -const SWIPE_ANGLE_THRESHOLD = Math.PI / 6; -class PDFPresentationMode { - #state = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.UNKNOWN; - #args = null; - #fullscreenChangeAbortController = null; - #windowAbortController = null; - constructor({ - container, - pdfViewer, - eventBus - }) { - this.container = container; - this.pdfViewer = pdfViewer; - this.eventBus = eventBus; - this.contextMenuOpen = false; - this.mouseScrollTimeStamp = 0; - this.mouseScrollDelta = 0; - this.touchSwipeState = null; - } - async request() { - const { - container, - pdfViewer - } = this; - if (this.active || !pdfViewer.pagesCount || !container.requestFullscreen) { - return false; - } - this.#addFullscreenChangeListeners(); - this.#notifyStateChange(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.CHANGING); - const promise = container.requestFullscreen(); - this.#args = { - pageNumber: pdfViewer.currentPageNumber, - scaleValue: pdfViewer.currentScaleValue, - scrollMode: pdfViewer.scrollMode, - spreadMode: null, - annotationEditorMode: null - }; - if (pdfViewer.spreadMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.NONE && !(pdfViewer.pageViewsReady && pdfViewer.hasEqualPageSizes)) { - console.warn("Ignoring Spread modes when entering PresentationMode, " + "since the document may contain varying page sizes."); - this.#args.spreadMode = pdfViewer.spreadMode; - } - if (pdfViewer.annotationEditorMode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.AnnotationEditorType.DISABLE) { - this.#args.annotationEditorMode = pdfViewer.annotationEditorMode; - } - try { - await promise; - pdfViewer.focus(); - return true; - } catch { - this.#removeFullscreenChangeListeners(); - this.#notifyStateChange(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.NORMAL); - } - return false; - } - get active() { - return this.#state === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.CHANGING || this.#state === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.FULLSCREEN; - } - #mouseWheel(evt) { - if (!this.active) { - return; - } - evt.preventDefault(); - const delta = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.normalizeWheelEventDelta)(evt); - const currentTime = Date.now(); - const storedTime = this.mouseScrollTimeStamp; - if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { - return; - } - if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { - this.#resetMouseScrollState(); - } - this.mouseScrollDelta += delta; - if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { - const totalDelta = this.mouseScrollDelta; - this.#resetMouseScrollState(); - const success = totalDelta > 0 ? this.pdfViewer.previousPage() : this.pdfViewer.nextPage(); - if (success) { - this.mouseScrollTimeStamp = currentTime; - } - } - } - #notifyStateChange(state) { - this.#state = state; - this.eventBus.dispatch("presentationmodechanged", { - source: this, - state - }); - } - #enter() { - this.#notifyStateChange(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.FULLSCREEN); - this.container.classList.add(ACTIVE_SELECTOR); - setTimeout(() => { - this.pdfViewer.scrollMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.PAGE; - if (this.#args.spreadMode !== null) { - this.pdfViewer.spreadMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.NONE; - } - this.pdfViewer.currentPageNumber = this.#args.pageNumber; - this.pdfViewer.currentScaleValue = "page-fit"; - if (this.#args.annotationEditorMode !== null) { - this.pdfViewer.annotationEditorMode = { - mode: pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.AnnotationEditorType.NONE - }; - } - }, 0); - this.#addWindowListeners(); - this.#showControls(); - this.contextMenuOpen = false; - document.getSelection().empty(); - } - #exit() { - const pageNumber = this.pdfViewer.currentPageNumber; - this.container.classList.remove(ACTIVE_SELECTOR); - setTimeout(() => { - this.#removeFullscreenChangeListeners(); - this.#notifyStateChange(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.NORMAL); - this.pdfViewer.scrollMode = this.#args.scrollMode; - if (this.#args.spreadMode !== null) { - this.pdfViewer.spreadMode = this.#args.spreadMode; - } - this.pdfViewer.currentScaleValue = this.#args.scaleValue; - this.pdfViewer.currentPageNumber = pageNumber; - if (this.#args.annotationEditorMode !== null) { - this.pdfViewer.annotationEditorMode = { - mode: this.#args.annotationEditorMode - }; - } - this.#args = null; - }, 0); - this.#removeWindowListeners(); - this.#hideControls(); - this.#resetMouseScrollState(); - this.contextMenuOpen = false; - } - #mouseDown(evt) { - if (this.contextMenuOpen) { - this.contextMenuOpen = false; - evt.preventDefault(); - return; - } - if (evt.button !== 0) { - return; - } - if (evt.target.href && evt.target.parentNode?.hasAttribute("data-internal-link")) { - return; - } - evt.preventDefault(); - if (evt.shiftKey) { - this.pdfViewer.previousPage(); - } else { - this.pdfViewer.nextPage(); - } - } - #contextMenu() { - this.contextMenuOpen = true; - } - #showControls() { - if (this.controlsTimeout) { - clearTimeout(this.controlsTimeout); - } else { - this.container.classList.add(CONTROLS_SELECTOR); - } - this.controlsTimeout = setTimeout(() => { - this.container.classList.remove(CONTROLS_SELECTOR); - delete this.controlsTimeout; - }, DELAY_BEFORE_HIDING_CONTROLS); - } - #hideControls() { - if (!this.controlsTimeout) { - return; - } - clearTimeout(this.controlsTimeout); - this.container.classList.remove(CONTROLS_SELECTOR); - delete this.controlsTimeout; - } - #resetMouseScrollState() { - this.mouseScrollTimeStamp = 0; - this.mouseScrollDelta = 0; - } - #touchSwipe(evt) { - if (!this.active) { - return; - } - if (evt.touches.length > 1) { - this.touchSwipeState = null; - return; - } - switch (evt.type) { - case "touchstart": - this.touchSwipeState = { - startX: evt.touches[0].pageX, - startY: evt.touches[0].pageY, - endX: evt.touches[0].pageX, - endY: evt.touches[0].pageY - }; - break; - case "touchmove": - if (this.touchSwipeState === null) { - return; - } - this.touchSwipeState.endX = evt.touches[0].pageX; - this.touchSwipeState.endY = evt.touches[0].pageY; - evt.preventDefault(); - break; - case "touchend": - if (this.touchSwipeState === null) { - return; - } - let delta = 0; - const dx = this.touchSwipeState.endX - this.touchSwipeState.startX; - const dy = this.touchSwipeState.endY - this.touchSwipeState.startY; - const absAngle = Math.abs(Math.atan2(dy, dx)); - if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) { - delta = dx; - } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) { - delta = dy; - } - if (delta > 0) { - this.pdfViewer.previousPage(); - } else if (delta < 0) { - this.pdfViewer.nextPage(); - } - break; - } - } - #addWindowListeners() { - if (this.#windowAbortController) { - return; - } - this.#windowAbortController = new AbortController(); - const { - signal - } = this.#windowAbortController; - const touchSwipeBind = this.#touchSwipe.bind(this); - window.addEventListener("mousemove", this.#showControls.bind(this), { - signal - }); - window.addEventListener("mousedown", this.#mouseDown.bind(this), { - signal - }); - window.addEventListener("wheel", this.#mouseWheel.bind(this), { - passive: false, - signal - }); - window.addEventListener("keydown", this.#resetMouseScrollState.bind(this), { - signal - }); - window.addEventListener("contextmenu", this.#contextMenu.bind(this), { - signal - }); - window.addEventListener("touchstart", touchSwipeBind, { - signal - }); - window.addEventListener("touchmove", touchSwipeBind, { - signal - }); - window.addEventListener("touchend", touchSwipeBind, { - signal - }); - } - #removeWindowListeners() { - this.#windowAbortController?.abort(); - this.#windowAbortController = null; - } - #addFullscreenChangeListeners() { - if (this.#fullscreenChangeAbortController) { - return; - } - this.#fullscreenChangeAbortController = new AbortController(); - window.addEventListener("fullscreenchange", () => { - if (document.fullscreenElement) { - this.#enter(); - } else { - this.#exit(); - } - }, { - signal: this.#fullscreenChangeAbortController.signal - }); - } - #removeFullscreenChangeListeners() { - this.#fullscreenChangeAbortController?.abort(); - this.#fullscreenChangeAbortController = null; - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 1144: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFPrintServiceFactory: () => (/* binding */ PDFPrintServiceFactory) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -/* harmony import */ var _print_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(659); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _print_utils_js__WEBPACK_IMPORTED_MODULE_1__]); -([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _print_utils_js__WEBPACK_IMPORTED_MODULE_1__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); - - -let activeService = null; -let dialog = null; -let overlayManager = null; -let viewerApp = { - initialized: false -}; -function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise) { - const scratchCanvas = activeService.scratchCanvas; - const PRINT_UNITS = printResolution / pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF; - scratchCanvas.width = Math.floor(size.width * PRINT_UNITS); - scratchCanvas.height = Math.floor(size.height * PRINT_UNITS); - const ctx = scratchCanvas.getContext("2d"); - ctx.save(); - ctx.fillStyle = "rgb(255, 255, 255)"; - ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height); - ctx.restore(); - return Promise.all([pdfDocument.getPage(pageNumber), printAnnotationStoragePromise]).then(function ([pdfPage, printAnnotationStorage]) { - const renderContext = { - canvasContext: ctx, - transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0], - viewport: pdfPage.getViewport({ - scale: 1, - rotation: size.rotation - }), - intent: "print", - annotationMode: pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_STORAGE, - optionalContentConfigPromise, - printAnnotationStorage - }; - const renderTask = pdfPage.render(renderContext); - return renderTask.promise.catch(reason => { - if (!(reason instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.RenderingCancelledException)) { - console.error(reason); - } - throw reason; - }); - }); -} -class PDFPrintService { - constructor({ - pdfDocument, - pagesOverview, - printContainer, - printResolution, - printAnnotationStoragePromise = null - }) { - this.pdfDocument = pdfDocument; - this.pagesOverview = pagesOverview; - this.printContainer = printContainer; - this._printResolution = printResolution || 150; - this._optionalContentConfigPromise = pdfDocument.getOptionalContentConfig({ - intent: "print" - }); - this._printAnnotationStoragePromise = printAnnotationStoragePromise || Promise.resolve(); - this.currentPage = -1; - this.scratchCanvas = document.createElement("canvas"); - } - layout() { - this.throwIfInactive(); - const body = document.querySelector("body"); - body.setAttribute("data-pdfjsprinting", true); - const { - width, - height - } = this.pagesOverview[0]; - const hasEqualPageSizes = this.pagesOverview.every(size => size.width === width && size.height === height); - if (!hasEqualPageSizes) { - console.warn("Not all pages have the same size. The printed result may be incorrect!"); - } - this.pageStyleSheet = document.createElement("style"); - this.pageStyleSheet.textContent = `@page { size: ${width}pt ${height}pt;}`; - body.append(this.pageStyleSheet); - } - destroy() { - if (activeService !== this) { - return; - } - this.printContainer.textContent = ""; - const body = document.querySelector("body"); - body.removeAttribute("data-pdfjsprinting"); - if (this.pageStyleSheet) { - this.pageStyleSheet.remove(); - this.pageStyleSheet = null; - } - this.scratchCanvas.width = this.scratchCanvas.height = 0; - this.scratchCanvas = null; - activeService = null; - ensureOverlay().then(function () { - if (overlayManager.active === dialog) { - overlayManager.close(dialog); - } - }); - } - renderPages() { - if (this.pdfDocument.isPureXfa) { - (0,_print_utils_js__WEBPACK_IMPORTED_MODULE_1__.getXfaHtmlForPrinting)(this.printContainer, this.pdfDocument); - return Promise.resolve(); - } - const pageCount = this.pagesOverview.length; - const renderNextPage = (resolve, reject) => { - this.throwIfInactive(); - if (++this.currentPage >= pageCount) { - renderProgress(pageCount, pageCount); - resolve(); - return; - } - const index = this.currentPage; - renderProgress(index, pageCount); - renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index], this._printResolution, this._optionalContentConfigPromise, this._printAnnotationStoragePromise).then(this.useRenderedPage.bind(this)).then(function () { - renderNextPage(resolve, reject); - }, reject); - }; - return new Promise(renderNextPage); - } - useRenderedPage() { - this.throwIfInactive(); - const img = document.createElement("img"); - const scratchCanvas = this.scratchCanvas; - if ("toBlob" in scratchCanvas) { - scratchCanvas.toBlob(function (blob) { - img.src = URL.createObjectURL(blob); - }); - } else { - img.src = scratchCanvas.toDataURL(); - } - const wrapper = document.createElement("div"); - wrapper.className = "printedPage"; - wrapper.append(img); - this.printContainer.append(wrapper); - return new Promise(function (resolve, reject) { - img.onload = resolve; - img.onerror = reject; - }); - } - performPrint() { - this.throwIfInactive(); - return new Promise(resolve => { - setTimeout(() => { - if (!this.active) { - resolve(); - return; - } - print.call(window); - setTimeout(resolve, 20); - }, 0); - }); - } - get active() { - return this === activeService; - } - throwIfInactive() { - if (!this.active) { - throw new Error("This print request was cancelled or completed."); - } - } -} -const print = window.print; -window.print = function () { - if (activeService) { - console.warn("Ignored window.print() because of a pending print job."); - return; - } - ensureOverlay().then(function () { - if (activeService) { - overlayManager.open(dialog); - } - }); - try { - dispatchEvent("beforeprint"); - } finally { - if (!activeService) { - console.error("Expected print service to be initialized."); - ensureOverlay().then(function () { - if (overlayManager.active === dialog) { - overlayManager.close(dialog); - } - }); - return; - } - const activeServiceOnEntry = activeService; - activeService.renderPages().then(function () { - return activeServiceOnEntry.performPrint(); - }).catch(function () {}).then(function () { - if (activeServiceOnEntry.active) { - abort(); - } - }); - } -}; -function dispatchEvent(eventType) { - const event = new CustomEvent(eventType, { - bubbles: false, - cancelable: false, - detail: "custom" - }); - window.dispatchEvent(event); -} -function abort() { - if (activeService) { - activeService.destroy(); - dispatchEvent("afterprint"); - } -} -function renderProgress(index, total) { - dialog ||= document.getElementById("printServiceDialog"); - const progress = Math.round(100 * index / total); - const progressBar = dialog.querySelector("progress"); - const progressPerc = dialog.querySelector(".relative-progress"); - progressBar.value = progress; - progressPerc.setAttribute("data-l10n-args", JSON.stringify({ - progress - })); -} -window.addEventListener("keydown", function (event) { - if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) { - window.print(); - event.preventDefault(); - event.stopImmediatePropagation(); - } -}, true); -if ("onbeforeprint" in window) { - const stopPropagationIfNeeded = function (event) { - if (event.detail !== "custom") { - event.stopImmediatePropagation(); - } - }; - window.addEventListener("beforeprint", stopPropagationIfNeeded); - window.addEventListener("afterprint", stopPropagationIfNeeded); -} -let overlayPromise; -function ensureOverlay() { - if (!overlayPromise) { - overlayManager = viewerApp.overlayManager; - if (!overlayManager) { - throw new Error("The overlay manager has not yet been initialized."); - } - dialog ||= document.getElementById("printServiceDialog"); - overlayPromise = overlayManager.register(dialog, true); - document.getElementById("printCancel").onclick = abort; - dialog.addEventListener("close", abort); - } - return overlayPromise; -} -class PDFPrintServiceFactory { - static initGlobals(app) { - viewerApp = app; - } - static get supportsPrinting() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "supportsPrinting", true); - } - static createPrintService(params) { - if (activeService) { - throw new Error("The print service is created and active."); - } - return activeService = new PDFPrintService(params); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 6615: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFRenderingQueue: () => (/* binding */ PDFRenderingQueue) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7256); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -const CLEANUP_TIMEOUT = 30000; -class PDFRenderingQueue { - constructor() { - this.pdfViewer = null; - this.pdfThumbnailViewer = null; - this.onIdle = null; - this.highestPriorityPage = null; - this.idleTimeout = null; - this.printing = false; - this.isThumbnailViewEnabled = false; - Object.defineProperty(this, "hasViewer", { - value: () => !!this.pdfViewer - }); - } - setViewer(pdfViewer) { - this.pdfViewer = pdfViewer; - } - setThumbnailViewer(pdfThumbnailViewer) { - this.pdfThumbnailViewer = pdfThumbnailViewer; - } - isHighestPriority(view) { - return this.highestPriorityPage === view.renderingId; - } - renderHighestPriority(currentlyVisiblePages) { - if (this.idleTimeout) { - clearTimeout(this.idleTimeout); - this.idleTimeout = null; - } - if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { - return; - } - if (this.isThumbnailViewEnabled && this.pdfThumbnailViewer?.forceRendering()) { - return; - } - if (this.printing) { - return; - } - if (this.onIdle) { - this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); - } - } - getHighestPriority(visible, views, scrolledDown, preRenderExtra = false) { - const visibleViews = visible.views, - numVisible = visibleViews.length; - if (numVisible === 0) { - return null; - } - for (let i = 0; i < numVisible; i++) { - const view = visibleViews[i].view; - if (!this.isViewFinished(view)) { - return view; - } - } - const firstId = visible.first.id, - lastId = visible.last.id; - if (lastId - firstId + 1 > numVisible) { - const visibleIds = visible.ids; - for (let i = 1, ii = lastId - firstId; i < ii; i++) { - const holeId = scrolledDown ? firstId + i : lastId - i; - if (visibleIds.has(holeId)) { - continue; - } - const holeView = views[holeId - 1]; - if (!this.isViewFinished(holeView)) { - return holeView; - } - } - } - let preRenderIndex = scrolledDown ? lastId : firstId - 2; - let preRenderView = views[preRenderIndex]; - if (preRenderView && !this.isViewFinished(preRenderView)) { - return preRenderView; - } - if (preRenderExtra) { - preRenderIndex += scrolledDown ? 1 : -1; - preRenderView = views[preRenderIndex]; - if (preRenderView && !this.isViewFinished(preRenderView)) { - return preRenderView; - } - } - return null; - } - isViewFinished(view) { - return view.renderingState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED; - } - renderView(view) { - switch (view.renderingState) { - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED: - return false; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.PAUSED: - this.highestPriorityPage = view.renderingId; - view.resume(); - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.RUNNING: - this.highestPriorityPage = view.renderingId; - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.INITIAL: - this.highestPriorityPage = view.renderingId; - view.draw().finally(() => { - this.renderHighestPriority(); - }).catch(reason => { - if (reason instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.RenderingCancelledException) { - return; - } - console.error(`renderView: "${reason}"`); - }); - break; - } - return true; - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 5942: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFScriptingManager: () => (/* binding */ PDFScriptingManager) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -class PDFScriptingManager { - #closeCapability = null; - #destroyCapability = null; - #docProperties = null; - #eventAbortController = null; - #eventBus = null; - #externalServices = null; - #pdfDocument = null; - #pdfViewer = null; - #ready = false; - #scripting = null; - #willPrintCapability = null; - constructor({ - eventBus, - externalServices = null, - docProperties = null - }) { - this.#eventBus = eventBus; - this.#externalServices = externalServices; - this.#docProperties = docProperties; - } - setViewer(pdfViewer) { - this.#pdfViewer = pdfViewer; - } - async setDocument(pdfDocument) { - if (this.#pdfDocument) { - await this.#destroyScripting(); - } - this.#pdfDocument = pdfDocument; - if (!pdfDocument) { - return; - } - const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]); - if (!objects && !docActions) { - await this.#destroyScripting(); - return; - } - if (pdfDocument !== this.#pdfDocument) { - return; - } - try { - this.#scripting = this.#initScripting(); - } catch (error) { - console.error(`setDocument: "${error.message}".`); - await this.#destroyScripting(); - return; - } - const eventBus = this.#eventBus; - this.#eventAbortController = new AbortController(); - const { - signal - } = this.#eventAbortController; - eventBus._on("updatefromsandbox", event => { - if (event?.source === window) { - this.#updateFromSandbox(event.detail); - } - }, { - signal - }); - eventBus._on("dispatcheventinsandbox", event => { - this.#scripting?.dispatchEventInSandbox(event.detail); - }, { - signal - }); - eventBus._on("pagechanging", ({ - pageNumber, - previous - }) => { - if (pageNumber === previous) { - return; - } - this.#dispatchPageClose(previous); - this.#dispatchPageOpen(pageNumber); - }, { - signal - }); - eventBus._on("pagerendered", ({ - pageNumber - }) => { - if (!this._pageOpenPending.has(pageNumber)) { - return; - } - if (pageNumber !== this.#pdfViewer.currentPageNumber) { - return; - } - this.#dispatchPageOpen(pageNumber); - }, { - signal - }); - eventBus._on("pagesdestroy", async () => { - await this.#dispatchPageClose(this.#pdfViewer.currentPageNumber); - await this.#scripting?.dispatchEventInSandbox({ - id: "doc", - name: "WillClose" - }); - this.#closeCapability?.resolve(); - }, { - signal - }); - try { - const docProperties = await this.#docProperties(pdfDocument); - if (pdfDocument !== this.#pdfDocument) { - return; - } - await this.#scripting.createSandbox({ - objects, - calculationOrder, - appInfo: { - platform: navigator.platform, - language: navigator.language - }, - docInfo: { - ...docProperties, - actions: docActions - } - }); - eventBus.dispatch("sandboxcreated", { - source: this - }); - } catch (error) { - console.error(`setDocument: "${error.message}".`); - await this.#destroyScripting(); - return; - } - await this.#scripting?.dispatchEventInSandbox({ - id: "doc", - name: "Open" - }); - await this.#dispatchPageOpen(this.#pdfViewer.currentPageNumber, true); - Promise.resolve().then(() => { - if (pdfDocument === this.#pdfDocument) { - this.#ready = true; - } - }); - } - async dispatchWillSave() { - return this.#scripting?.dispatchEventInSandbox({ - id: "doc", - name: "WillSave" - }); - } - async dispatchDidSave() { - return this.#scripting?.dispatchEventInSandbox({ - id: "doc", - name: "DidSave" - }); - } - async dispatchWillPrint() { - if (!this.#scripting) { - return; - } - await this.#willPrintCapability?.promise; - this.#willPrintCapability = Promise.withResolvers(); - try { - await this.#scripting.dispatchEventInSandbox({ - id: "doc", - name: "WillPrint" - }); - } catch (ex) { - this.#willPrintCapability.resolve(); - this.#willPrintCapability = null; - throw ex; - } - await this.#willPrintCapability.promise; - } - async dispatchDidPrint() { - return this.#scripting?.dispatchEventInSandbox({ - id: "doc", - name: "DidPrint" - }); - } - get destroyPromise() { - return this.#destroyCapability?.promise || null; - } - get ready() { - return this.#ready; - } - get _pageOpenPending() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "_pageOpenPending", new Set()); - } - get _visitedPages() { - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.shadow)(this, "_visitedPages", new Map()); - } - async #updateFromSandbox(detail) { - const pdfViewer = this.#pdfViewer; - const isInPresentationMode = pdfViewer.isInPresentationMode || pdfViewer.isChangingPresentationMode; - const { - id, - siblings, - command, - value - } = detail; - if (!id) { - switch (command) { - case "clear": - console.clear(); - break; - case "error": - console.error(value); - break; - case "layout": - if (!isInPresentationMode) { - const modes = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.apiPageLayoutToViewerModes)(value); - pdfViewer.spreadMode = modes.spreadMode; - } - break; - case "page-num": - pdfViewer.currentPageNumber = value + 1; - break; - case "print": - await pdfViewer.pagesPromise; - this.#eventBus.dispatch("print", { - source: this - }); - break; - case "println": - console.log(value); - break; - case "zoom": - if (!isInPresentationMode) { - pdfViewer.currentScaleValue = value; - } - break; - case "SaveAs": - this.#eventBus.dispatch("download", { - source: this - }); - break; - case "FirstPage": - pdfViewer.currentPageNumber = 1; - break; - case "LastPage": - pdfViewer.currentPageNumber = pdfViewer.pagesCount; - break; - case "NextPage": - pdfViewer.nextPage(); - break; - case "PrevPage": - pdfViewer.previousPage(); - break; - case "ZoomViewIn": - if (!isInPresentationMode) { - pdfViewer.increaseScale(); - } - break; - case "ZoomViewOut": - if (!isInPresentationMode) { - pdfViewer.decreaseScale(); - } - break; - case "WillPrintFinished": - this.#willPrintCapability?.resolve(); - this.#willPrintCapability = null; - break; - } - return; - } - if (isInPresentationMode && detail.focus) { - return; - } - delete detail.id; - delete detail.siblings; - const ids = siblings ? [id, ...siblings] : [id]; - for (const elementId of ids) { - const element = document.querySelector(`[data-element-id="${elementId}"]`); - if (element) { - element.dispatchEvent(new CustomEvent("updatefromsandbox", { - detail - })); - } else { - this.#pdfDocument?.annotationStorage.setValue(elementId, detail); - } - } - } - async #dispatchPageOpen(pageNumber, initialize = false) { - const pdfDocument = this.#pdfDocument, - visitedPages = this._visitedPages; - if (initialize) { - this.#closeCapability = Promise.withResolvers(); - } - if (!this.#closeCapability) { - return; - } - const pageView = this.#pdfViewer.getPageView(pageNumber - 1); - if (pageView?.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED) { - this._pageOpenPending.add(pageNumber); - return; - } - this._pageOpenPending.delete(pageNumber); - const actionsPromise = (async () => { - const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null); - if (pdfDocument !== this.#pdfDocument) { - return; - } - await this.#scripting?.dispatchEventInSandbox({ - id: "page", - name: "PageOpen", - pageNumber, - actions - }); - })(); - visitedPages.set(pageNumber, actionsPromise); - } - async #dispatchPageClose(pageNumber) { - const pdfDocument = this.#pdfDocument, - visitedPages = this._visitedPages; - if (!this.#closeCapability) { - return; - } - if (this._pageOpenPending.has(pageNumber)) { - return; - } - const actionsPromise = visitedPages.get(pageNumber); - if (!actionsPromise) { - return; - } - visitedPages.set(pageNumber, null); - await actionsPromise; - if (pdfDocument !== this.#pdfDocument) { - return; - } - await this.#scripting?.dispatchEventInSandbox({ - id: "page", - name: "PageClose", - pageNumber - }); - } - #initScripting() { - this.#destroyCapability = Promise.withResolvers(); - if (this.#scripting) { - throw new Error("#initScripting: Scripting already exists."); - } - return this.#externalServices.createScripting(); - } - async #destroyScripting() { - if (!this.#scripting) { - this.#pdfDocument = null; - this.#destroyCapability?.resolve(); - return; - } - if (this.#closeCapability) { - await Promise.race([this.#closeCapability.promise, new Promise(resolve => { - setTimeout(resolve, 1000); - })]).catch(() => {}); - this.#closeCapability = null; - } - this.#pdfDocument = null; - try { - await this.#scripting.destroySandbox(); - } catch {} - this.#willPrintCapability?.reject(new Error("Scripting destroyed.")); - this.#willPrintCapability = null; - this.#eventAbortController?.abort(); - this.#eventAbortController = null; - this._pageOpenPending.clear(); - this._visitedPages.clear(); - this.#scripting = null; - this.#ready = false; - this.#destroyCapability?.resolve(); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 2275: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFSidebar: () => (/* binding */ PDFSidebar) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); - -const SIDEBAR_WIDTH_VAR = "--sidebar-width"; -const SIDEBAR_MIN_WIDTH = 200; -const SIDEBAR_RESIZING_CLASS = "sidebarResizing"; -const UI_NOTIFICATION_CLASS = "pdfSidebarNotification"; -class PDFSidebar { - #isRTL = false; - #mouseMoveBound = this.#mouseMove.bind(this); - #mouseUpBound = this.#mouseUp.bind(this); - #outerContainerWidth = null; - #width = null; - constructor({ - elements, - eventBus, - l10n - }) { - this.isOpen = false; - this.active = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS; - this.isInitialViewSet = false; - this.isInitialEventDispatched = false; - this.onToggled = null; - this.onUpdateThumbnails = null; - this.outerContainer = elements.outerContainer; - this.sidebarContainer = elements.sidebarContainer; - this.toggleButton = elements.toggleButton; - this.resizer = elements.resizer; - this.thumbnailButton = elements.thumbnailButton; - this.outlineButton = elements.outlineButton; - this.attachmentsButton = elements.attachmentsButton; - this.layersButton = elements.layersButton; - this.thumbnailView = elements.thumbnailView; - this.outlineView = elements.outlineView; - this.attachmentsView = elements.attachmentsView; - this.layersView = elements.layersView; - this._currentOutlineItemButton = elements.currentOutlineItemButton; - this.eventBus = eventBus; - this.#isRTL = l10n.getDirection() === "rtl"; - this.#addEventListeners(); - } - reset() { - this.isInitialViewSet = false; - this.isInitialEventDispatched = false; - this.#hideUINotification(true); - this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS); - this.outlineButton.disabled = false; - this.attachmentsButton.disabled = false; - this.layersButton.disabled = false; - this._currentOutlineItemButton.disabled = true; - } - get visibleView() { - return this.isOpen ? this.active : _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.NONE; - } - setInitialView(view = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.NONE) { - if (this.isInitialViewSet) { - return; - } - this.isInitialViewSet = true; - if (view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.NONE || view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.UNKNOWN) { - this.#dispatchEvent(); - return; - } - // [Custom] desc: do not open the siderBar when init the view - // this.switchView(view, true); - if (!this.isInitialEventDispatched) { - this.#dispatchEvent(); - } - } - switchView(view, forceOpen = false) { - const isViewChanged = view !== this.active; - let forceRendering = false; - switch (view) { - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.NONE: - if (this.isOpen) { - this.close(); - } - return; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS: - if (this.isOpen && isViewChanged) { - forceRendering = true; - } - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.OUTLINE: - if (this.outlineButton.disabled) { - return; - } - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.ATTACHMENTS: - if (this.attachmentsButton.disabled) { - return; - } - break; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.LAYERS: - if (this.layersButton.disabled) { - return; - } - break; - default: - console.error(`PDFSidebar.switchView: "${view}" is not a valid view.`); - return; - } - this.active = view; - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(this.thumbnailButton, view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS, this.thumbnailView); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(this.outlineButton, view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.OUTLINE, this.outlineView); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(this.attachmentsButton, view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.ATTACHMENTS, this.attachmentsView); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(this.layersButton, view === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.LAYERS, this.layersView); - if (forceOpen && !this.isOpen) { - this.open(); - return; - } - if (forceRendering) { - this.onUpdateThumbnails(); - this.onToggled(); - } - if (isViewChanged) { - this.#dispatchEvent(); - } - } - open() { - if (this.isOpen) { - return; - } - this.isOpen = true; - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleExpandedBtn)(this.toggleButton, true); - this.outerContainer.classList.add("sidebarMoving", "sidebarOpen"); - if (this.active === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS) { - this.onUpdateThumbnails(); - } - this.onToggled(); - this.#dispatchEvent(); - this.#hideUINotification(); - } - close(evt = null) { - if (!this.isOpen) { - return; - } - this.isOpen = false; - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleExpandedBtn)(this.toggleButton, false); - this.outerContainer.classList.add("sidebarMoving"); - this.outerContainer.classList.remove("sidebarOpen"); - this.onToggled(); - this.#dispatchEvent(); - if (evt?.detail > 0) { - this.toggleButton.blur(); - } - } - toggle(evt = null) { - if (this.isOpen) { - this.close(evt); - } else { - this.open(); - } - } - #dispatchEvent() { - if (this.isInitialViewSet) { - this.isInitialEventDispatched ||= true; - } - this.eventBus.dispatch("sidebarviewchanged", { - source: this, - view: this.visibleView - }); - } - #showUINotification() { - this.toggleButton.setAttribute("data-l10n-id", "pdfjs-toggle-sidebar-notification-button"); - if (!this.isOpen) { - this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); - } - } - #hideUINotification(reset = false) { - if (this.isOpen || reset) { - this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); - } - if (reset) { - this.toggleButton.setAttribute("data-l10n-id", "pdfjs-toggle-sidebar-button"); - } - } - #addEventListeners() { - this.sidebarContainer.addEventListener("transitionend", evt => { - if (evt.target === this.sidebarContainer) { - this.outerContainer.classList.remove("sidebarMoving"); - this.eventBus.dispatch("resize", { - source: this - }); - } - }); - this.toggleButton.addEventListener("click", evt => { - this.toggle(evt); - }); - this.thumbnailButton.addEventListener("click", () => { - this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS); - }); - this.outlineButton.addEventListener("click", () => { - this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.OUTLINE); - }); - this.outlineButton.addEventListener("dblclick", () => { - this.eventBus.dispatch("toggleoutlinetree", { - source: this - }); - }); - this.attachmentsButton.addEventListener("click", () => { - this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.ATTACHMENTS); - }); - this.layersButton.addEventListener("click", () => { - this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.LAYERS); - }); - this.layersButton.addEventListener("dblclick", () => { - this.eventBus.dispatch("resetlayers", { - source: this - }); - }); - this._currentOutlineItemButton.addEventListener("click", () => { - this.eventBus.dispatch("currentoutlineitem", { - source: this - }); - }); - const onTreeLoaded = (count, button, view) => { - button.disabled = !count; - if (count) { - this.#showUINotification(); - } else if (this.active === view) { - this.switchView(_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS); - } - }; - this.eventBus._on("outlineloaded", evt => { - onTreeLoaded(evt.outlineCount, this.outlineButton, _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.OUTLINE); - evt.currentOutlineItemPromise.then(enabled => { - if (!this.isInitialViewSet) { - return; - } - this._currentOutlineItemButton.disabled = !enabled; - }); - }); - this.eventBus._on("attachmentsloaded", evt => { - onTreeLoaded(evt.attachmentsCount, this.attachmentsButton, _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.ATTACHMENTS); - }); - this.eventBus._on("layersloaded", evt => { - onTreeLoaded(evt.layersCount, this.layersButton, _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.LAYERS); - }); - this.eventBus._on("presentationmodechanged", evt => { - if (evt.state === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.PresentationModeState.NORMAL && this.visibleView === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SidebarView.THUMBS) { - this.onUpdateThumbnails(); - } - }); - this.resizer.addEventListener("mousedown", evt => { - if (evt.button !== 0) { - return; - } - this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); - window.addEventListener("mousemove", this.#mouseMoveBound); - window.addEventListener("mouseup", this.#mouseUpBound); - }); - this.eventBus._on("resize", evt => { - if (evt.source !== window) { - return; - } - this.#outerContainerWidth = null; - if (!this.#width) { - return; - } - if (!this.isOpen) { - this.#updateWidth(this.#width); - return; - } - this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); - const updated = this.#updateWidth(this.#width); - Promise.resolve().then(() => { - this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); - if (updated) { - this.eventBus.dispatch("resize", { - source: this - }); - } - }); - }); - } - get outerContainerWidth() { - return this.#outerContainerWidth ||= this.outerContainer.clientWidth; - } - #updateWidth(width = 0) { - const maxWidth = Math.floor(this.outerContainerWidth / 2); - if (width > maxWidth) { - width = maxWidth; - } - if (width < SIDEBAR_MIN_WIDTH) { - width = SIDEBAR_MIN_WIDTH; - } - if (width === this.#width) { - return false; - } - this.#width = width; - _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.docStyle.setProperty(SIDEBAR_WIDTH_VAR, `${width}px`); - return true; - } - #mouseMove(evt) { - let width = evt.clientX; - if (this.#isRTL) { - width = this.outerContainerWidth - width; - } - this.#updateWidth(width); - } - #mouseUp(evt) { - this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); - this.eventBus.dispatch("resize", { - source: this - }); - window.removeEventListener("mousemove", this.#mouseMoveBound); - window.removeEventListener("mouseup", this.#mouseUpBound); - } -} - - -/***/ }), - -/***/ 1123: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFThumbnailView: () => (/* binding */ PDFThumbnailView), -/* harmony export */ TempImageFactory: () => (/* binding */ TempImageFactory) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -const DRAW_UPSCALE_FACTOR = 2; -const MAX_NUM_SCALING_STEPS = 3; -const THUMBNAIL_WIDTH = 90; -class TempImageFactory { - static #tempCanvas = null; - static getCanvas(width, height) { - const tempCanvas = this.#tempCanvas ||= document.createElement("canvas"); - tempCanvas.width = width; - tempCanvas.height = height; - const ctx = tempCanvas.getContext("2d", { - alpha: false - }); - ctx.save(); - ctx.fillStyle = "rgb(255, 255, 255)"; - ctx.fillRect(0, 0, width, height); - ctx.restore(); - return [tempCanvas, tempCanvas.getContext("2d")]; - } - static destroyCanvas() { - const tempCanvas = this.#tempCanvas; - if (tempCanvas) { - tempCanvas.width = 0; - tempCanvas.height = 0; - } - this.#tempCanvas = null; - } -} -class PDFThumbnailView { - constructor({ - container, - eventBus, - id, - defaultViewport, - optionalContentConfigPromise, - linkService, - renderingQueue, - pageColors - }) { - this.id = id; - this.renderingId = "thumbnail" + id; - this.pageLabel = null; - this.pdfPage = null; - this.rotation = 0; - this.viewport = defaultViewport; - this.pdfPageRotate = defaultViewport.rotation; - this._optionalContentConfigPromise = optionalContentConfigPromise || null; - this.pageColors = pageColors || null; - this.eventBus = eventBus; - this.linkService = linkService; - this.renderingQueue = renderingQueue; - this.renderTask = null; - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.INITIAL; - this.resume = null; - this.oldNumHeight = 20; - const anchor = document.createElement("a"); - anchor.href = linkService.getAnchorUrl("#page=" + id); - anchor.setAttribute("data-l10n-id", "pdfjs-thumb-page-title"); - anchor.setAttribute("data-l10n-args", this.#pageL10nArgs); - anchor.onclick = function () { - linkService.goToPage(id); - return false; - }; - this.anchor = anchor; - const div = document.createElement("div"); - div.className = "thumbnail"; - div.setAttribute("data-page-number", this.id); - this.div = div; - this.#updateDims(); - const img = document.createElement("div"); - img.className = "thumbnailImage"; - this._placeholderImg = img; - div.append(img); - anchor.append(div); - container.append(anchor); - - const odlImageNum = document.createElement("div"); - odlImageNum.classList.add(window.odlCustomSiderDomList.odl_imageNum); - // console.log('test-this', this) - odlImageNum.innerText = this.id - anchor.append(odlImageNum) - } - #updateDims() { - const { - width, - height - } = this.viewport; - const ratio = width / height; - this.canvasWidth = THUMBNAIL_WIDTH; - this.canvasHeight = this.canvasWidth / ratio | 0; - this.scale = this.canvasWidth / width; - const { - style - } = this.div; - // console.log('test-canvas', this.canvasWidth, this.canvasHeight, THUMBNAIL_WIDTH); - style.setProperty("--thumbnail-width", `${this.canvasWidth}px`); - style.setProperty("--thumbnail-height", `${this.canvasHeight}px`); - } - setPdfPage(pdfPage) { - this.pdfPage = pdfPage; - this.pdfPageRotate = pdfPage.rotate; - const totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = pdfPage.getViewport({ - scale: 1, - rotation: totalRotation - }); - this.reset(); - } - reset() { - this.cancelRendering(); - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.INITIAL; - this.div.removeAttribute("data-loaded"); - this.image?.replaceWith(this._placeholderImg); - this.#updateDims(); - if (this.image) { - this.image.removeAttribute("src"); - delete this.image; - } - } - update({ - rotation = null - }) { - if (typeof rotation === "number") { - this.rotation = rotation; - } - const totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = this.viewport.clone({ - scale: 1, - rotation: totalRotation - }); - this.reset(); - } - cancelRendering() { - if (this.renderTask) { - this.renderTask.cancel(); - this.renderTask = null; - } - this.resume = null; - } - #getPageDrawContext(upscaleFactor = 1) { - const canvas = document.createElement("canvas"); - const ctx = canvas.getContext("2d", { - alpha: false - }); - const outputScale = new _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.OutputScale(); - canvas.width = upscaleFactor * this.canvasWidth * outputScale.sx | 0; - canvas.height = upscaleFactor * this.canvasHeight * outputScale.sy | 0; - const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; - return { - ctx, - canvas, - transform - }; - } - #convertCanvasToImage(canvas) { - if (this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED) { - throw new Error("#convertCanvasToImage: Rendering has not finished."); - } - const reducedCanvas = this.#reduceImage(canvas); - const image = document.createElement("img"); - image.className = "thumbnailImage"; - image.setAttribute("data-l10n-id", "pdfjs-thumb-page-canvas"); - image.setAttribute("data-l10n-args", this.#pageL10nArgs); - image.src = reducedCanvas.toDataURL(); - this.image = image; - this.div.setAttribute("data-loaded", true); - this._placeholderImg.replaceWith(image); - reducedCanvas.width = 0; - reducedCanvas.height = 0; - } - async #finishRenderTask(renderTask, canvas, error = null) { - if (renderTask === this.renderTask) { - this.renderTask = null; - } - if (error instanceof pdfjs_lib__WEBPACK_IMPORTED_MODULE_1__.RenderingCancelledException) { - return; - } - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED; - this.#convertCanvasToImage(canvas); - if (error) { - throw error; - } - } - async draw() { - if (this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.INITIAL) { - console.error("Must be in new state before drawing"); - return undefined; - } - const { - pdfPage - } = this; - if (!pdfPage) { - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED; - throw new Error("pdfPage is not loaded"); - } - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.RUNNING; - const { - ctx, - canvas, - transform - } = this.#getPageDrawContext(DRAW_UPSCALE_FACTOR); - const drawViewport = this.viewport.clone({ - scale: DRAW_UPSCALE_FACTOR * this.scale - }); - const renderContinueCallback = cont => { - if (!this.renderingQueue.isHighestPriority(this)) { - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.PAUSED; - this.resume = () => { - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.RUNNING; - cont(); - }; - return; - } - cont(); - }; - const renderContext = { - canvasContext: ctx, - transform, - viewport: drawViewport, - optionalContentConfigPromise: this._optionalContentConfigPromise, - pageColors: this.pageColors - }; - const renderTask = this.renderTask = pdfPage.render(renderContext); - renderTask.onContinue = renderContinueCallback; - const resultPromise = renderTask.promise.then(() => this.#finishRenderTask(renderTask, canvas), error => this.#finishRenderTask(renderTask, canvas, error)); - resultPromise.finally(() => { - canvas.width = 0; - canvas.height = 0; - this.eventBus.dispatch("thumbnailrendered", { - source: this, - pageNumber: this.id, - pdfPage: this.pdfPage - }); - }); - return resultPromise; - } - setImage(pageView) { - if (this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.INITIAL) { - return; - } - const { - thumbnailCanvas: canvas, - pdfPage, - scale - } = pageView; - if (!canvas) { - return; - } - if (!this.pdfPage) { - this.setPdfPage(pdfPage); - } - if (scale < this.scale) { - return; - } - this.renderingState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED; - this.#convertCanvasToImage(canvas); - } - #reduceImage(img) { - const { - ctx, - canvas - } = this.#getPageDrawContext(); - if (img.width <= 2 * canvas.width) { - ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); - return canvas; - } - let reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; - let reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; - const [reducedImage, reducedImageCtx] = TempImageFactory.getCanvas(reducedWidth, reducedHeight); - while (reducedWidth > img.width || reducedHeight > img.height) { - reducedWidth >>= 1; - reducedHeight >>= 1; - } - reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); - while (reducedWidth > 2 * canvas.width) { - reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); - reducedWidth >>= 1; - reducedHeight >>= 1; - } - ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); - return canvas; - } - get #pageL10nArgs() { - return JSON.stringify({ - page: this.pageLabel ?? this.id - }); - } - setPageLabel(label) { - this.pageLabel = typeof label === "string" ? label : null; - this.anchor.setAttribute("data-l10n-args", this.#pageL10nArgs); - if (this.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED) { - return; - } - this.image?.setAttribute("data-l10n-args", this.#pageL10nArgs); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 8280: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFThumbnailViewer: () => (/* binding */ PDFThumbnailViewer) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); -/* harmony import */ var _pdf_thumbnail_view_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1123); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_pdf_thumbnail_view_js__WEBPACK_IMPORTED_MODULE_1__]); -_pdf_thumbnail_view_js__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -const THUMBNAIL_SCROLL_MARGIN = -19; -const THUMBNAIL_SELECTED_CLASS = "selected"; -const ODL_THUMBNAIL_SELECTED_CLASS = "odl_selected"; -class PDFThumbnailViewer { - constructor({ - container, - eventBus, - linkService, - renderingQueue, - pageColors - }) { - this.container = container; - this.eventBus = eventBus; - this.linkService = linkService; - this.renderingQueue = renderingQueue; - this.pageColors = pageColors || null; - this.scroll = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.watchScroll)(this.container, this.#scrollUpdated.bind(this)); - this.#resetView(); - } - #scrollUpdated() { - this.renderingQueue.renderHighestPriority(); - } - getThumbnail(index) { - return this._thumbnails[index]; - } - #getVisibleThumbs() { - return (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.getVisibleElements)({ - scrollEl: this.container, - views: this._thumbnails - }); - } - scrollThumbnailIntoView(pageNumber) { - if (!this.pdfDocument) { - return; - } - const thumbnailView = this._thumbnails[pageNumber - 1]; - if (!thumbnailView) { - console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); - return; - } - if (pageNumber !== this._currentPageNumber) { - const prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; - prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); - prevThumbnailView.div.parentNode.classList.remove(ODL_THUMBNAIL_SELECTED_CLASS) - thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); - thumbnailView.div.parentNode.classList.add(ODL_THUMBNAIL_SELECTED_CLASS) - } - const { - first, - last, - views - } = this.#getVisibleThumbs(); - if (views.length > 0) { - let shouldScroll = false; - if (pageNumber <= first.id || pageNumber >= last.id) { - shouldScroll = true; - } else { - for (const { - id, - percent - } of views) { - if (id !== pageNumber) { - continue; - } - shouldScroll = percent < 100; - break; - } - } - if (shouldScroll) { - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.scrollIntoView)(thumbnailView.div, { - top: THUMBNAIL_SCROLL_MARGIN - }); - } - } - this._currentPageNumber = pageNumber; - } - get pagesRotation() { - return this._pagesRotation; - } - set pagesRotation(rotation) { - if (!(0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.isValidRotation)(rotation)) { - throw new Error("Invalid thumbnails rotation angle."); - } - if (!this.pdfDocument) { - return; - } - if (this._pagesRotation === rotation) { - return; - } - this._pagesRotation = rotation; - const updateArgs = { - rotation - }; - for (const thumbnail of this._thumbnails) { - thumbnail.update(updateArgs); - } - } - cleanup() { - for (const thumbnail of this._thumbnails) { - if (thumbnail.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates.FINISHED) { - thumbnail.reset(); - } - } - _pdf_thumbnail_view_js__WEBPACK_IMPORTED_MODULE_1__.TempImageFactory.destroyCanvas(); - } - #resetView() { - this._thumbnails = []; - this._currentPageNumber = 1; - this._pageLabels = null; - this._pagesRotation = 0; - this.container.textContent = ""; - } - setDocument(pdfDocument) { - if (this.pdfDocument) { - this.#cancelRendering(); - this.#resetView(); - } - this.pdfDocument = pdfDocument; - if (!pdfDocument) { - return; - } - const firstPagePromise = pdfDocument.getPage(1); - const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig({ - intent: "display" - }); - firstPagePromise.then(firstPdfPage => { - const pagesCount = pdfDocument.numPages; - const viewport = firstPdfPage.getViewport({ - scale: 1 - }); - for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { - const thumbnail = new _pdf_thumbnail_view_js__WEBPACK_IMPORTED_MODULE_1__.PDFThumbnailView({ - container: this.container, - eventBus: this.eventBus, - id: pageNum, - defaultViewport: viewport.clone(), - optionalContentConfigPromise, - linkService: this.linkService, - renderingQueue: this.renderingQueue, - pageColors: this.pageColors - }); - this._thumbnails.push(thumbnail); - } - this._thumbnails[0]?.setPdfPage(firstPdfPage); - const thumbnailView = this._thumbnails[this._currentPageNumber - 1]; - thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); - }).catch(reason => { - console.error("Unable to initialize thumbnail viewer", reason); - }); - } - #cancelRendering() { - for (const thumbnail of this._thumbnails) { - thumbnail.cancelRendering(); - } - } - setPageLabels(labels) { - if (!this.pdfDocument) { - return; - } - if (!labels) { - this._pageLabels = null; - } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { - this._pageLabels = null; - console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels."); - } else { - this._pageLabels = labels; - } - for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { - this._thumbnails[i].setPageLabel(this._pageLabels?.[i] ?? null); - } - } - async #ensurePdfPageLoaded(thumbView) { - if (thumbView.pdfPage) { - return thumbView.pdfPage; - } - try { - const pdfPage = await this.pdfDocument.getPage(thumbView.id); - if (!thumbView.pdfPage) { - thumbView.setPdfPage(pdfPage); - } - return pdfPage; - } catch (reason) { - console.error("Unable to get page for thumb view", reason); - return null; - } - } - #getScrollAhead(visible) { - if (visible.first?.id === 1) { - return true; - } else if (visible.last?.id === this._thumbnails.length) { - return false; - } - return this.scroll.down; - } - forceRendering() { - const visibleThumbs = this.#getVisibleThumbs(); - const scrollAhead = this.#getScrollAhead(visibleThumbs); - const thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, scrollAhead); - // 有缓存 thumbView null 所以返回false, 不强制更新 - if (thumbView) { - this.#ensurePdfPageLoaded(thumbView).then(() => { - this.renderingQueue.renderView(thumbView); - }); - return true; - } - return false; - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 6285: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFViewer: () => (/* binding */ PDFViewer), -/* harmony export */ PagesCountLimit: () => (/* binding */ PagesCountLimit) -/* harmony export */ }); -/* unused harmony export PDFPageViewBuffer */ -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7256); -/* harmony import */ var web_null_l10n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(410); -/* harmony import */ var _pdf_page_view_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9966); -/* harmony import */ var _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6615); -/* harmony import */ var _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(787); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, web_null_l10n__WEBPACK_IMPORTED_MODULE_2__, _pdf_page_view_js__WEBPACK_IMPORTED_MODULE_3__, _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_4__]); -([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, web_null_l10n__WEBPACK_IMPORTED_MODULE_2__, _pdf_page_view_js__WEBPACK_IMPORTED_MODULE_3__, _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_4__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); - - - - - - -const DEFAULT_CACHE_SIZE = 10; -const PagesCountLimit = { - FORCE_SCROLL_MODE_PAGE: 15000, - FORCE_LAZY_PAGE_INIT: 7500, - PAUSE_EAGER_PAGE_INIT: 250 -}; -function isValidAnnotationEditorMode(mode) { - return Object.values(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType).includes(mode) && mode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE; -} -class PDFPageViewBuffer { - #buf = new Set(); - #size = 0; - constructor(size) { - this.#size = size; - } - push(view) { - const buf = this.#buf; - if (buf.has(view)) { - buf.delete(view); - } - buf.add(view); - if (buf.size > this.#size) { - this.#destroyFirstView(); - } - } - resize(newSize, idsToKeep = null) { - this.#size = newSize; - const buf = this.#buf; - if (idsToKeep) { - const ii = buf.size; - let i = 1; - for (const view of buf) { - if (idsToKeep.has(view.id)) { - buf.delete(view); - buf.add(view); - } - if (++i > ii) { - break; - } - } - } - while (buf.size > this.#size) { - this.#destroyFirstView(); - } - } - has(view) { - return this.#buf.has(view); - } - [Symbol.iterator]() { - return this.#buf.keys(); - } - #destroyFirstView() { - const firstView = this.#buf.keys().next().value; - firstView?.destroy(); - this.#buf.delete(firstView); - } -} -class PDFViewer { - #buffer = null; - #altTextManager = null; - #annotationEditorHighlightColors = null; - #annotationEditorMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE; - #annotationEditorUIManager = null; - #annotationMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS; - #containerTopLeft = null; - #copyCallbackBound = null; - #enableHighlightFloatingButton = false; - #enablePermissions = false; - #mlManager = null; - #getAllTextInProgress = false; - #hiddenCopyElement = null; - #interruptCopyCondition = false; - #previousContainerHeight = 0; - #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this)); - #scrollModePageState = null; - #onVisibilityChange = null; - #scaleTimeoutId = null; - #textLayerMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE; - constructor(options) { - const viewerVersion = "4.2.67"; - if (pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.version !== viewerVersion) { - throw new Error(`The API version "${pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.version}" does not match the Viewer version "${viewerVersion}".`); - } - this.container = options.container; - this.viewer = options.viewer || options.container.firstElementChild; - if (this.container?.tagName !== "DIV" || this.viewer?.tagName !== "DIV") { - throw new Error("Invalid `container` and/or `viewer` option."); - } - if (this.container.offsetParent && getComputedStyle(this.container).position !== "absolute") { - throw new Error("The `container` must be absolutely positioned."); - } - this.#resizeObserver.observe(this.container); - this.eventBus = options.eventBus; - this.linkService = options.linkService || new _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_5__.SimpleLinkService(); - this.downloadManager = options.downloadManager || null; - this.findController = options.findController || null; - this.#altTextManager = options.altTextManager || null; - if (this.findController) { - this.findController.onIsPageVisible = pageNumber => this._getVisiblePages().ids.has(pageNumber); - } - this._scriptingManager = options.scriptingManager || null; - this.#textLayerMode = options.textLayerMode ?? _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE; - this.#annotationMode = options.annotationMode ?? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS; - this.#annotationEditorMode = options.annotationEditorMode ?? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE; - this.#annotationEditorHighlightColors = options.annotationEditorHighlightColors || null; - this.#enableHighlightFloatingButton = options.enableHighlightFloatingButton === true; - this.imageResourcesPath = options.imageResourcesPath || ""; - this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; - this.removePageBorders = options.removePageBorders || false; - this.maxCanvasPixels = options.maxCanvasPixels; - this.l10n = options.l10n; - this.l10n ||= new web_null_l10n__WEBPACK_IMPORTED_MODULE_2__.GenericL10n(); - this.#enablePermissions = options.enablePermissions || false; - this.pageColors = options.pageColors || null; - this.#mlManager = options.mlManager || null; - this.defaultRenderingQueue = !options.renderingQueue; - if (this.defaultRenderingQueue) { - this.renderingQueue = new _pdf_rendering_queue_js__WEBPACK_IMPORTED_MODULE_4__.PDFRenderingQueue(); - this.renderingQueue.setViewer(this); - } else { - this.renderingQueue = options.renderingQueue; - } - this.scroll = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.watchScroll)(this.container, this._scrollUpdate.bind(this)); - this.presentationModeState = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.UNKNOWN; - this._onBeforeDraw = this._onAfterDraw = null; - this._resetView(); - if (this.removePageBorders) { - this.viewer.classList.add("removePageBorders"); - } - this.#updateContainerHeightCss(); - this.eventBus._on("thumbnailrendered", ({ - pageNumber, - pdfPage - }) => { - const pageView = this._pages[pageNumber - 1]; - if (!this.#buffer.has(pageView)) { - pdfPage?.cleanup(); - } - }); - if (!options.l10n) { - this.l10n.translate(this.container); - } - } - get pagesCount() { - return this._pages.length; - } - getPageView(index) { - return this._pages[index]; - } - getCachedPageViews() { - return new Set(this.#buffer); - } - get pageViewsReady() { - return this._pages.every(pageView => pageView?.pdfPage); - } - get renderForms() { - return this.#annotationMode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS; - } - get enableScripting() { - return !!this._scriptingManager; - } - get currentPageNumber() { - return this._currentPageNumber; - } - set currentPageNumber(val) { - if (!Number.isInteger(val)) { - throw new Error("Invalid page number."); - } - if (!this.pdfDocument) { - return; - } - // console.log('test-setCurrent-1') - // [custom] desc: 上面按钮切换pageNumber - if (!this._setCurrentPageNumber(val, true)) { - console.error(`currentPageNumber: "${val}" is not a valid page.`); - } - } - _setCurrentPageNumber(val, resetCurrentPageView = false) { - if (this._currentPageNumber === val) { - if (resetCurrentPageView) { - this.#resetCurrentPageView(); - } - return true; - } - if (!(0 < val && val <= this.pagesCount)) { - return false; - } - const previous = this._currentPageNumber; - this._currentPageNumber = val; - this.eventBus.dispatch("pagechanging", { - source: this, - pageNumber: val, - pageLabel: this._pageLabels?.[val - 1] ?? null, - previous - }); - - if (resetCurrentPageView) { - this.#resetCurrentPageView(); - } - return true; - } - get currentPageLabel() { - return this._pageLabels?.[this._currentPageNumber - 1] ?? null; - } - set currentPageLabel(val) { - if (!this.pdfDocument) { - return; - } - let page = val | 0; - if (this._pageLabels) { - const i = this._pageLabels.indexOf(val); - if (i >= 0) { - page = i + 1; - } - } - if (!this._setCurrentPageNumber(page, true)) { - console.error(`currentPageLabel: "${val}" is not a valid page.`); - } - } - get currentScale() { - return this._currentScale !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.UNKNOWN_SCALE ? this._currentScale : _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE; - } - set currentScale(val) { - if (isNaN(val)) { - throw new Error("Invalid numeric scale."); - } - if (!this.pdfDocument) { - return; - } - this.#setScale(val, { - noScroll: false - }); - } - get currentScaleValue() { - return this._currentScaleValue; - } - set currentScaleValue(val) { - if (!this.pdfDocument) { - return; - } - this.#setScale(val, { - noScroll: false - }); - } - get pagesRotation() { - return this._pagesRotation; - } - set pagesRotation(rotation) { - if (!(0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.isValidRotation)(rotation)) { - throw new Error("Invalid pages rotation angle."); - } - if (!this.pdfDocument) { - return; - } - rotation %= 360; - if (rotation < 0) { - rotation += 360; - } - if (this._pagesRotation === rotation) { - return; - } - this._pagesRotation = rotation; - const pageNumber = this._currentPageNumber; - this.refresh(true, { - rotation - }); - if (this._currentScaleValue) { - this.#setScale(this._currentScaleValue, { - noScroll: true - }); - } - this.eventBus.dispatch("rotationchanging", { - source: this, - pagesRotation: rotation, - pageNumber - }); - if (this.defaultRenderingQueue) { - this.update(); - } - } - get firstPagePromise() { - return this.pdfDocument ? this._firstPageCapability.promise : null; - } - get onePageRendered() { - return this.pdfDocument ? this._onePageRenderedCapability.promise : null; - } - get pagesPromise() { - return this.pdfDocument ? this._pagesCapability.promise : null; - } - get _layerProperties() { - const self = this; - return (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.shadow)(this, "_layerProperties", { - get annotationEditorUIManager() { - return self.#annotationEditorUIManager; - }, - get annotationStorage() { - return self.pdfDocument?.annotationStorage; - }, - get downloadManager() { - return self.downloadManager; - }, - get enableScripting() { - return !!self._scriptingManager; - }, - get fieldObjectsPromise() { - return self.pdfDocument?.getFieldObjects(); - }, - get findController() { - return self.findController; - }, - get hasJSActionsPromise() { - return self.pdfDocument?.hasJSActions(); - }, - get linkService() { - return self.linkService; - } - }); - } - #initializePermissions(permissions) { - const params = { - annotationEditorMode: this.#annotationEditorMode, - annotationMode: this.#annotationMode, - textLayerMode: this.#textLayerMode - }; - if (!permissions) { - return params; - } - if (!permissions.includes(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PermissionFlag.COPY) && this.#textLayerMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE) { - params.textLayerMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE_PERMISSIONS; - } - if (!permissions.includes(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PermissionFlag.MODIFY_CONTENTS)) { - params.annotationEditorMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE; - } - if (!permissions.includes(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PermissionFlag.FILL_INTERACTIVE_FORMS) && this.#annotationMode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE_FORMS) { - params.annotationMode = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationMode.ENABLE; - } - return params; - } - async #onePageRenderedOrForceFetch() { - if (document.visibilityState === "hidden" || !this.container.offsetParent || this._getVisiblePages().views.length === 0) { - return; - } - const visibilityChangePromise = new Promise(resolve => { - this.#onVisibilityChange = () => { - if (document.visibilityState !== "hidden") { - return; - } - resolve(); - }; - document.addEventListener("visibilitychange", this.#onVisibilityChange); - }); - await Promise.race([this._onePageRenderedCapability.promise, visibilityChangePromise]); - document.removeEventListener("visibilitychange", this.#onVisibilityChange); - this.#onVisibilityChange = null; - } - async getAllText() { - const texts = []; - const buffer = []; - for (let pageNum = 1, pagesCount = this.pdfDocument.numPages; pageNum <= pagesCount; ++pageNum) { - if (this.#interruptCopyCondition) { - return null; - } - buffer.length = 0; - const page = await this.pdfDocument.getPage(pageNum); - const { - items - } = await page.getTextContent(); - for (const item of items) { - if (item.str) { - buffer.push(item.str); - } - if (item.hasEOL) { - buffer.push("\n"); - } - } - texts.push((0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.removeNullCharacters)(buffer.join(""))); - } - return texts.join("\n"); - } - #copyCallback(textLayerMode, event) { - const selection = document.getSelection(); - const { - focusNode, - anchorNode - } = selection; - if (anchorNode && focusNode && selection.containsNode(this.#hiddenCopyElement)) { - if (this.#getAllTextInProgress || textLayerMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.ENABLE_PERMISSIONS) { - event.preventDefault(); - event.stopPropagation(); - return; - } - this.#getAllTextInProgress = true; - const savedCursor = this.container.style.cursor; - this.container.style.cursor = "wait"; - const interruptCopy = ev => this.#interruptCopyCondition = ev.key === "Escape"; - window.addEventListener("keydown", interruptCopy); - this.getAllText().then(async text => { - if (text !== null) { - await navigator.clipboard.writeText(text); - } - }).catch(reason => { - console.warn(`Something goes wrong when extracting the text: ${reason.message}`); - }).finally(() => { - this.#getAllTextInProgress = false; - this.#interruptCopyCondition = false; - window.removeEventListener("keydown", interruptCopy); - this.container.style.cursor = savedCursor; - }); - event.preventDefault(); - event.stopPropagation(); - } - } - setDocument(pdfDocument) { - if (this.pdfDocument) { - this.eventBus.dispatch("pagesdestroy", { - source: this - }); - this._cancelRendering(); - this._resetView(); - this.findController?.setDocument(null); - this._scriptingManager?.setDocument(null); - if (this.#annotationEditorUIManager) { - this.#annotationEditorUIManager.destroy(); - this.#annotationEditorUIManager = null; - } - } - this.pdfDocument = pdfDocument; - if (!pdfDocument) { - return; - } - const pagesCount = pdfDocument.numPages; - const firstPagePromise = pdfDocument.getPage(1); - const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig({ - intent: "display" - }); - const permissionsPromise = this.#enablePermissions ? pdfDocument.getPermissions() : Promise.resolve(); - if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { - console.warn("Forcing PAGE-scrolling for performance reasons, given the length of the document."); - const mode = this._scrollMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE; - this.eventBus.dispatch("scrollmodechanged", { - source: this, - mode - }); - } - this._pagesCapability.promise.then(() => { - this.eventBus.dispatch("pagesloaded", { - source: this, - pagesCount - }); - }, () => {}); - this._onBeforeDraw = evt => { - const pageView = this._pages[evt.pageNumber - 1]; - if (!pageView) { - return; - } - this.#buffer.push(pageView); - }; - this.eventBus._on("pagerender", this._onBeforeDraw); - this._onAfterDraw = evt => { - if (evt.cssTransform) { - return; - } - this._onePageRenderedCapability.resolve({ - timestamp: evt.timestamp - }); - this.eventBus._off("pagerendered", this._onAfterDraw); - this._onAfterDraw = null; - }; - this.eventBus._on("pagerendered", this._onAfterDraw); - Promise.all([firstPagePromise, permissionsPromise]).then(([firstPdfPage, permissions]) => { - if (pdfDocument !== this.pdfDocument) { - return; - } - this._firstPageCapability.resolve(firstPdfPage); - this._optionalContentConfigPromise = optionalContentConfigPromise; - const { - annotationEditorMode, - annotationMode, - textLayerMode - } = this.#initializePermissions(permissions); - if (textLayerMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.TextLayerMode.DISABLE) { - const element = this.#hiddenCopyElement = document.createElement("div"); - element.id = "hiddenCopyElement"; - this.viewer.before(element); - } - if (annotationEditorMode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE) { - const mode = annotationEditorMode; - if (pdfDocument.isPureXfa) { - console.warn("Warning: XFA-editing is not implemented."); - } else if (isValidAnnotationEditorMode(mode)) { - this.#annotationEditorUIManager = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorUIManager(this.container, this.viewer, this.#altTextManager, this.eventBus, pdfDocument, this.pageColors, this.#annotationEditorHighlightColors, this.#enableHighlightFloatingButton, this.#mlManager); - this.eventBus.dispatch("annotationeditoruimanager", { - source: this, - uiManager: this.#annotationEditorUIManager - }); - if (mode !== pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE) { - this.#annotationEditorUIManager.updateMode(mode); - } - } else { - console.error(`Invalid AnnotationEditor mode: ${mode}`); - } - } - const viewerElement = this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE ? null : this.viewer; - const scale = this.currentScale; - const viewport = firstPdfPage.getViewport({ - scale: scale * pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS - }); - this.viewer.style.setProperty("--scale-factor", viewport.scale); - if (this.pageColors?.foreground === "CanvasText" || this.pageColors?.background === "Canvas") { - this.viewer.style.setProperty("--hcm-highlight-filter", pdfDocument.filterFactory.addHighlightHCMFilter("highlight", "CanvasText", "Canvas", "HighlightText", "Highlight")); - this.viewer.style.setProperty("--hcm-highlight-selected-filter", pdfDocument.filterFactory.addHighlightHCMFilter("highlight_selected", "CanvasText", "Canvas", "HighlightText", "ButtonText")); - } - for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { - const pageView = new _pdf_page_view_js__WEBPACK_IMPORTED_MODULE_3__.PDFPageView({ - container: viewerElement, - eventBus: this.eventBus, - id: pageNum, - scale, - defaultViewport: viewport.clone(), - optionalContentConfigPromise, - renderingQueue: this.renderingQueue, - textLayerMode, - annotationMode, - imageResourcesPath: this.imageResourcesPath, - maxCanvasPixels: this.maxCanvasPixels, - pageColors: this.pageColors, - l10n: this.l10n, - layerProperties: this._layerProperties - }); - this._pages.push(pageView); - } - this._pages[0]?.setPdfPage(firstPdfPage); - if (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { - this.#ensurePageViewVisible(); - } else if (this._spreadMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE) { - this._updateSpreadMode(); - } - this.#onePageRenderedOrForceFetch().then(async () => { - this.findController?.setDocument(pdfDocument); - this._scriptingManager?.setDocument(pdfDocument); - if (this.#hiddenCopyElement) { - this.#copyCallbackBound = this.#copyCallback.bind(this, textLayerMode); - document.addEventListener("copy", this.#copyCallbackBound); - } - if (this.#annotationEditorUIManager) { - this.eventBus.dispatch("annotationeditormodechanged", { - source: this, - mode: this.#annotationEditorMode - }); - } - if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > PagesCountLimit.FORCE_LAZY_PAGE_INIT) { - this._pagesCapability.resolve(); - return; - } - let getPagesLeft = pagesCount - 1; - if (getPagesLeft <= 0) { - this._pagesCapability.resolve(); - return; - } - for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) { - const promise = pdfDocument.getPage(pageNum).then(pdfPage => { - const pageView = this._pages[pageNum - 1]; - if (!pageView.pdfPage) { - pageView.setPdfPage(pdfPage); - } - if (--getPagesLeft === 0) { - this._pagesCapability.resolve(); - } - }, reason => { - console.error(`Unable to get page ${pageNum} to initialize viewer`, reason); - if (--getPagesLeft === 0) { - this._pagesCapability.resolve(); - } - }); - if (pageNum % PagesCountLimit.PAUSE_EAGER_PAGE_INIT === 0) { - await promise; - } - } - }); - this.eventBus.dispatch("pagesinit", { - source: this - }); - pdfDocument.getMetadata().then(({ - info - }) => { - if (pdfDocument !== this.pdfDocument) { - return; - } - if (info.Language) { - this.viewer.lang = info.Language; - } - }); - if (this.defaultRenderingQueue) { - this.update(); - } - }).catch(reason => { - console.error("Unable to initialize viewer", reason); - this._pagesCapability.reject(reason); - }); - } - setPageLabels(labels) { - if (!this.pdfDocument) { - return; - } - if (!labels) { - this._pageLabels = null; - } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { - this._pageLabels = null; - console.error(`setPageLabels: Invalid page labels.`); - } else { - this._pageLabels = labels; - } - for (let i = 0, ii = this._pages.length; i < ii; i++) { - this._pages[i].setPageLabel(this._pageLabels?.[i] ?? null); - } - } - _resetView() { - this._pages = []; - this._currentPageNumber = 1; - this._currentScale = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.UNKNOWN_SCALE; - this._currentScaleValue = null; - this._pageLabels = null; - this.#buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); - this._location = null; - this._pagesRotation = 0; - this._optionalContentConfigPromise = null; - this._firstPageCapability = Promise.withResolvers(); - this._onePageRenderedCapability = Promise.withResolvers(); - this._pagesCapability = Promise.withResolvers(); - this._scrollMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.VERTICAL; - this._previousScrollMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.UNKNOWN; - this._spreadMode = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE; - this.#scrollModePageState = { - previousPageNumber: 1, - scrollDown: true, - pages: [] - }; - if (this._onBeforeDraw) { - this.eventBus._off("pagerender", this._onBeforeDraw); - this._onBeforeDraw = null; - } - if (this._onAfterDraw) { - this.eventBus._off("pagerendered", this._onAfterDraw); - this._onAfterDraw = null; - } - if (this.#onVisibilityChange) { - document.removeEventListener("visibilitychange", this.#onVisibilityChange); - this.#onVisibilityChange = null; - } - this.viewer.textContent = ""; - this._updateScrollMode(); - this.viewer.removeAttribute("lang"); - if (this.#hiddenCopyElement) { - document.removeEventListener("copy", this.#copyCallbackBound); - this.#copyCallbackBound = null; - this.#hiddenCopyElement.remove(); - this.#hiddenCopyElement = null; - } - } - #ensurePageViewVisible() { - if (this._scrollMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { - throw new Error("#ensurePageViewVisible: Invalid scrollMode value."); - } - const pageNumber = this._currentPageNumber, - state = this.#scrollModePageState, - viewer = this.viewer; - viewer.textContent = ""; - state.pages.length = 0; - if (this._spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE && !this.isInPresentationMode) { - const pageView = this._pages[pageNumber - 1]; - viewer.append(pageView.div); - state.pages.push(pageView); - } else { - const pageIndexSet = new Set(), - parity = this._spreadMode - 1; - if (parity === -1) { - pageIndexSet.add(pageNumber - 1); - } else if (pageNumber % 2 !== parity) { - pageIndexSet.add(pageNumber - 1); - pageIndexSet.add(pageNumber); - } else { - pageIndexSet.add(pageNumber - 2); - pageIndexSet.add(pageNumber - 1); - } - const spread = document.createElement("div"); - spread.className = "spread"; - if (this.isInPresentationMode) { - const dummyPage = document.createElement("div"); - dummyPage.className = "dummyPage"; - spread.append(dummyPage); - } - for (const i of pageIndexSet) { - const pageView = this._pages[i]; - if (!pageView) { - continue; - } - spread.append(pageView.div); - state.pages.push(pageView); - } - viewer.append(spread); - } - state.scrollDown = pageNumber >= state.previousPageNumber; - state.previousPageNumber = pageNumber; - } - _scrollUpdate() { - if (this.pagesCount === 0) { - return; - } - this.update(); - } - #scrollIntoView(pageView, pageSpot = null) { - const { - div, - id - } = pageView; - if (this._currentPageNumber !== id) { - this._setCurrentPageNumber(id); - } - if (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { - this.#ensurePageViewVisible(); - this.update(); - } - if (!pageSpot && !this.isInPresentationMode) { - const left = div.offsetLeft + div.clientLeft, - right = left + div.clientWidth; - const { - scrollLeft, - clientWidth - } = this.container; - if (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) { - pageSpot = { - left: 0, - top: 0 - }; - } - } - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.scrollIntoView)(div, pageSpot); - if (!this._currentScaleValue && this._location) { - this._location = null; - } - } - #isSameScale(newScale) { - return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15; - } - #setScaleUpdatePages(newScale, newValue, { - noScroll = false, - preset = false, - drawingDelay = -1 - }) { - this._currentScaleValue = newValue.toString(); - if (this.#isSameScale(newScale)) { - if (preset) { - this.eventBus.dispatch("scalechanging", { - source: this, - scale: newScale, - presetValue: newValue - }); - } - return; - } - this.viewer.style.setProperty("--scale-factor", newScale * pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS); - const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000; - this.refresh(true, { - scale: newScale, - drawingDelay: postponeDrawing ? drawingDelay : -1 - }); - if (postponeDrawing) { - this.#scaleTimeoutId = setTimeout(() => { - this.#scaleTimeoutId = null; - this.refresh(); - }, drawingDelay); - } - this._currentScale = newScale; - if (!noScroll) { - let page = this._currentPageNumber, - dest; - if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { - page = this._location.pageNumber; - dest = [null, { - name: "XYZ" - }, this._location.left, this._location.top, null]; - } - this.scrollPageIntoView({ - pageNumber: page, - destArray: dest, - allowNegativeOffset: true - }); - } - this.eventBus.dispatch("scalechanging", { - source: this, - scale: newScale, - presetValue: preset ? newValue : undefined - }); - if (this.defaultRenderingQueue) { - this.update(); - } - } - get #pageWidthScaleFactor() { - if (this._spreadMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE && this._scrollMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL) { - return 2; - } - return 1; - } - #setScale(value, options) { - let scale = parseFloat(value); - if (scale > 0) { - options.preset = false; - this.#setScaleUpdatePages(scale, value, options); - } else { - const currentPage = this._pages[this._currentPageNumber - 1]; - if (!currentPage) { - return; - } - let hPadding = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SCROLLBAR_PADDING, - vPadding = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.VERTICAL_PADDING; - if (this.isInPresentationMode) { - hPadding = vPadding = 4; - if (this._spreadMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE) { - hPadding *= 2; - } - } else if (this.removePageBorders) { - hPadding = vPadding = 0; - } else if (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL) { - [hPadding, vPadding] = [vPadding, hPadding]; - } - const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this.#pageWidthScaleFactor; - const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; - switch (value) { - case "page-actual": - scale = 1; - break; - case "page-width": - scale = pageWidthScale; - break; - case "page-height": - scale = pageHeightScale; - break; - case "page-fit": - scale = Math.min(pageWidthScale, pageHeightScale); - break; - case "auto": - const horizontalScale = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); - scale = Math.min(_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MAX_AUTO_SCALE, horizontalScale); - break; - default: - console.error(`#setScale: "${value}" is an unknown zoom value.`); - return; - } - options.preset = true; - this.#setScaleUpdatePages(scale, value, options); - } - } - #resetCurrentPageView() { - const pageView = this._pages[this._currentPageNumber - 1]; - if (this.isInPresentationMode) { - this.#setScale(this._currentScaleValue, { - noScroll: true - }); - } - this.#scrollIntoView(pageView); - } - pageLabelToPageNumber(label) { - if (!this._pageLabels) { - return null; - } - const i = this._pageLabels.indexOf(label); - if (i < 0) { - return null; - } - return i + 1; - } - scrollPageIntoView({ - pageNumber, - destArray = null, - allowNegativeOffset = false, - ignoreDestinationZoom = false - }) { - if (!this.pdfDocument) { - return; - } - const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; - if (!pageView) { - console.error(`scrollPageIntoView: "${pageNumber}" is not a valid pageNumber parameter.`); - return; - } - if (this.isInPresentationMode || !destArray) { - // [custom] 图片视图切换 pageNumber - // console.log('test-setCurrent-2', pageNumber, destArray, this.isInPresentationMode) - this._setCurrentPageNumber(pageNumber, true); - return; - } - let x = 0, - y = 0; - let width = 0, - height = 0, - widthScale, - heightScale; - const changeOrientation = pageView.rotation % 180 !== 0; - const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS; - const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS; - let scale = 0; - switch (destArray[1].name) { - case "XYZ": - x = destArray[2]; - y = destArray[3]; - scale = destArray[4]; - x = x !== null ? x : 0; - y = y !== null ? y : pageHeight; - break; - case "Fit": - case "FitB": - scale = "page-fit"; - break; - case "FitH": - case "FitBH": - y = destArray[2]; - scale = "page-width"; - if (y === null && this._location) { - x = this._location.left; - y = this._location.top; - } else if (typeof y !== "number" || y < 0) { - y = pageHeight; - } - break; - case "FitV": - case "FitBV": - x = destArray[2]; - width = pageWidth; - height = pageHeight; - scale = "page-height"; - break; - case "FitR": - x = destArray[2]; - y = destArray[3]; - width = destArray[4] - x; - height = destArray[5] - y; - let hPadding = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SCROLLBAR_PADDING, - vPadding = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.VERTICAL_PADDING; - if (this.removePageBorders) { - hPadding = vPadding = 0; - } - widthScale = (this.container.clientWidth - hPadding) / width / pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS; - heightScale = (this.container.clientHeight - vPadding) / height / pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS; - scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); - break; - default: - console.error(`scrollPageIntoView: "${destArray[1].name}" is not a valid destination type.`); - return; - } - if (!ignoreDestinationZoom) { - if (scale && scale !== this._currentScale) { - this.currentScaleValue = scale; - } else if (this._currentScale === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.UNKNOWN_SCALE) { - this.currentScaleValue = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE_VALUE; - } - } - if (scale === "page-fit" && !destArray[4]) { - this.#scrollIntoView(pageView); - return; - } - const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; - let left = Math.min(boundingRect[0][0], boundingRect[1][0]); - let top = Math.min(boundingRect[0][1], boundingRect[1][1]); - if (!allowNegativeOffset) { - left = Math.max(left, 0); - top = Math.max(top, 0); - } - this.#scrollIntoView(pageView, { - left, - top - }); - } - _updateLocation(firstPage) { - const currentScale = this._currentScale; - const currentScaleValue = this._currentScaleValue; - const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; - const pageNumber = firstPage.id; - const currentPageView = this._pages[pageNumber - 1]; - const container = this.container; - const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); - const intLeft = Math.round(topLeft[0]); - const intTop = Math.round(topLeft[1]); - let pdfOpenParams = `#page=${pageNumber}`; - if (!this.isInPresentationMode) { - pdfOpenParams += `&zoom=${normalizedScaleValue},${intLeft},${intTop}`; - } - this._location = { - pageNumber, - scale: normalizedScaleValue, - top: intTop, - left: intLeft, - rotation: this._pagesRotation, - pdfOpenParams - }; - } - update() { - const visible = this._getVisiblePages(); - const visiblePages = visible.views, - numVisiblePages = visiblePages.length; - if (numVisiblePages === 0) { - return; - } - const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); - this.#buffer.resize(newCacheSize, visible.ids); - this.renderingQueue.renderHighestPriority(visible); - const isSimpleLayout = this._spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE && (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE || this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.VERTICAL); - const currentId = this._currentPageNumber; - let stillFullyVisible = false; - for (const page of visiblePages) { - if (page.percent < 100) { - break; - } - if (page.id === currentId && isSimpleLayout) { - stillFullyVisible = true; - break; - } - } - - this._setCurrentPageNumber(stillFullyVisible ? currentId : visiblePages[0].id); - this._updateLocation(visible.first); - this.eventBus.dispatch("updateviewarea", { - source: this, - location: this._location - }); - } - containsElement(element) { - return this.container.contains(element); - } - focus() { - this.container.focus(); - } - get _isContainerRtl() { - return getComputedStyle(this.container).direction === "rtl"; - } - get isInPresentationMode() { - return this.presentationModeState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.FULLSCREEN; - } - get isChangingPresentationMode() { - return this.presentationModeState === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.PresentationModeState.CHANGING; - } - get isHorizontalScrollbarEnabled() { - return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; - } - get isVerticalScrollbarEnabled() { - return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; - } - _getVisiblePages() { - - const views = this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages, - horizontal = this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL, - rtl = horizontal && this._isContainerRtl; - // console.log('test-views',views,horizontal, rtl ) - return (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.getVisibleElements)({ - scrollEl: this.container, - views, - sortByVisibility: true, - horizontal, - rtl - }); - } - cleanup() { - for (const pageView of this._pages) { - if (pageView.renderingState !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.RenderingStates.FINISHED) { - pageView.reset(); - } - } - } - _cancelRendering() { - for (const pageView of this._pages) { - pageView.cancelRendering(); - } - } - async #ensurePdfPageLoaded(pageView) { - if (pageView.pdfPage) { - return pageView.pdfPage; - } - try { - const pdfPage = await this.pdfDocument.getPage(pageView.id); - if (!pageView.pdfPage) { - pageView.setPdfPage(pdfPage); - } - return pdfPage; - } catch (reason) { - console.error("Unable to get page for page view", reason); - return null; - } - } - #getScrollAhead(visible) { - if (visible.first?.id === 1) { - return true; - } else if (visible.last?.id === this.pagesCount) { - return false; - } - switch (this._scrollMode) { - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE: - return this.#scrollModePageState.scrollDown; - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL: - return this.scroll.right; - } - return this.scroll.down; - } - forceRendering(currentlyVisiblePages) { - const visiblePages = currentlyVisiblePages || this._getVisiblePages(); - const scrollAhead = this.#getScrollAhead(visiblePages); - const preRenderExtra = this._spreadMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE && this._scrollMode !== _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL; - const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra); - if (pageView) { - this.#ensurePdfPageLoaded(pageView).then(() => { - this.renderingQueue.renderView(pageView); - }); - return true; - } - return false; - } - get hasEqualPageSizes() { - const firstPageView = this._pages[0]; - for (let i = 1, ii = this._pages.length; i < ii; ++i) { - const pageView = this._pages[i]; - if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { - return false; - } - } - return true; - } - getPagesOverview() { - let initialOrientation; - return this._pages.map(pageView => { - const viewport = pageView.pdfPage.getViewport({ - scale: 1 - }); - const orientation = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.isPortraitOrientation)(viewport); - if (initialOrientation === undefined) { - initialOrientation = orientation; - } else if (this.enablePrintAutoRotate && orientation !== initialOrientation) { - return { - width: viewport.height, - height: viewport.width, - rotation: (viewport.rotation - 90) % 360 - }; - } - return { - width: viewport.width, - height: viewport.height, - rotation: viewport.rotation - }; - }); - } - get optionalContentConfigPromise() { - if (!this.pdfDocument) { - return Promise.resolve(null); - } - if (!this._optionalContentConfigPromise) { - console.error("optionalContentConfigPromise: Not initialized yet."); - return this.pdfDocument.getOptionalContentConfig({ - intent: "display" - }); - } - return this._optionalContentConfigPromise; - } - set optionalContentConfigPromise(promise) { - if (!(promise instanceof Promise)) { - throw new Error(`Invalid optionalContentConfigPromise: ${promise}`); - } - if (!this.pdfDocument) { - return; - } - if (!this._optionalContentConfigPromise) { - return; - } - this._optionalContentConfigPromise = promise; - this.refresh(false, { - optionalContentConfigPromise: promise - }); - this.eventBus.dispatch("optionalcontentconfigchanged", { - source: this, - promise - }); - } - get scrollMode() { - return this._scrollMode; - } - set scrollMode(mode) { - - if (this._scrollMode === mode) { - return; - } - if (!(0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.isValidScrollMode)(mode)) { - throw new Error(`Invalid scroll mode: ${mode}`); - } - if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { - return; - } - this._previousScrollMode = this._scrollMode; - this._scrollMode = mode; - this.eventBus.dispatch("scrollmodechanged", { - source: this, - mode - }); - this._updateScrollMode(this._currentPageNumber); - } - _updateScrollMode(pageNumber = null) { - const scrollMode = this._scrollMode, - viewer = this.viewer; - viewer.classList.toggle("scrollHorizontal", scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL); - viewer.classList.toggle("scrollWrapped", scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.WRAPPED); - if (!this.pdfDocument || !pageNumber) { - return; - } - if (scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { - this.#ensurePageViewVisible(); - } else if (this._previousScrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { - this._updateSpreadMode(); - } - if (this._currentScaleValue && isNaN(this._currentScaleValue)) { - this.#setScale(this._currentScaleValue, { - noScroll: true - }); - } - this._setCurrentPageNumber(pageNumber, true); - this.update(); - } - get spreadMode() { - return this._spreadMode; - } - set spreadMode(mode) { - if (this._spreadMode === mode) { - return; - } - if (!(0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.isValidSpreadMode)(mode)) { - throw new Error(`Invalid spread mode: ${mode}`); - } - this._spreadMode = mode; - this.eventBus.dispatch("spreadmodechanged", { - source: this, - mode - }); - this._updateSpreadMode(this._currentPageNumber); - } - _updateSpreadMode(pageNumber = null) { - if (!this.pdfDocument) { - return; - } - const viewer = this.viewer, - pages = this._pages; - if (this._scrollMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE) { - this.#ensurePageViewVisible(); - } else { - viewer.textContent = ""; - if (this._spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE) { - for (const pageView of this._pages) { - viewer.append(pageView.div); - } - } else { - const parity = this._spreadMode - 1; - let spread = null; - for (let i = 0, ii = pages.length; i < ii; ++i) { - if (spread === null) { - spread = document.createElement("div"); - spread.className = "spread"; - viewer.append(spread); - } else if (i % 2 === parity) { - spread = spread.cloneNode(false); - viewer.append(spread); - } - spread.append(pages[i].div); - } - } - } - if (!pageNumber) { - return; - } - if (this._currentScaleValue && isNaN(this._currentScaleValue)) { - this.#setScale(this._currentScaleValue, { - noScroll: true - }); - } - this._setCurrentPageNumber(pageNumber, true); - this.update(); - } - _getPageAdvance(currentPageNumber, previous = false) { - switch (this._scrollMode) { - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.WRAPPED: - { - const { - views - } = this._getVisiblePages(), - pageLayout = new Map(); - for (const { - id, - y, - percent, - widthPercent - } of views) { - if (percent === 0 || widthPercent < 100) { - continue; - } - let yArray = pageLayout.get(y); - if (!yArray) { - pageLayout.set(y, yArray ||= []); - } - yArray.push(id); - } - for (const yArray of pageLayout.values()) { - const currentIndex = yArray.indexOf(currentPageNumber); - if (currentIndex === -1) { - continue; - } - const numPages = yArray.length; - if (numPages === 1) { - break; - } - if (previous) { - for (let i = currentIndex - 1, ii = 0; i >= ii; i--) { - const currentId = yArray[i], - expectedId = yArray[i + 1] - 1; - if (currentId < expectedId) { - return currentPageNumber - expectedId; - } - } - } else { - for (let i = currentIndex + 1, ii = numPages; i < ii; i++) { - const currentId = yArray[i], - expectedId = yArray[i - 1] + 1; - if (currentId > expectedId) { - return expectedId - currentPageNumber; - } - } - } - if (previous) { - const firstId = yArray[0]; - if (firstId < currentPageNumber) { - return currentPageNumber - firstId + 1; - } - } else { - const lastId = yArray[numPages - 1]; - if (lastId > currentPageNumber) { - return lastId - currentPageNumber + 1; - } - } - break; - } - break; - } - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.HORIZONTAL: - { - break; - } - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.PAGE: - case _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.ScrollMode.VERTICAL: - { - if (this._spreadMode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.SpreadMode.NONE) { - break; - } - const parity = this._spreadMode - 1; - if (previous && currentPageNumber % 2 !== parity) { - break; - } else if (!previous && currentPageNumber % 2 === parity) { - break; - } - const { - views - } = this._getVisiblePages(), - expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1; - for (const { - id, - percent, - widthPercent - } of views) { - if (id !== expectedId) { - continue; - } - if (percent > 0 && widthPercent === 100) { - return 2; - } - break; - } - break; - } - } - return 1; - } - nextPage() { - const currentPageNumber = this._currentPageNumber, - pagesCount = this.pagesCount; - if (currentPageNumber >= pagesCount) { - return false; - } - const advance = this._getPageAdvance(currentPageNumber, false) || 1; - this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount); - return true; - } - previousPage() { - const currentPageNumber = this._currentPageNumber; - if (currentPageNumber <= 1) { - return false; - } - const advance = this._getPageAdvance(currentPageNumber, true) || 1; - this.currentPageNumber = Math.max(currentPageNumber - advance, 1); - return true; - } - increaseScale({ - drawingDelay, - scaleFactor, - steps - } = {}) { - if (!this.pdfDocument) { - return; - } - let newScale = this._currentScale; - if (scaleFactor > 1) { - newScale = Math.round(newScale * scaleFactor * 100) / 100; - } else { - steps ??= 1; - do { - newScale = Math.ceil((newScale * _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10; - } while (--steps > 0 && newScale < _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MAX_SCALE); - } - this.#setScale(Math.min(_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MAX_SCALE, newScale), { - noScroll: false, - drawingDelay - }); - } - decreaseScale({ - drawingDelay, - scaleFactor, - steps - } = {}) { - if (!this.pdfDocument) { - return; - } - let newScale = this._currentScale; - if (scaleFactor > 0 && scaleFactor < 1) { - newScale = Math.round(newScale * scaleFactor * 100) / 100; - } else { - steps ??= 1; - do { - newScale = Math.floor((newScale / _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10; - } while (--steps > 0 && newScale > _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MIN_SCALE); - } - this.#setScale(Math.max(_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MIN_SCALE, newScale), { - noScroll: false, - drawingDelay - }); - } - #updateContainerHeightCss(height = this.container.clientHeight) { - if (height !== this.#previousContainerHeight) { - this.#previousContainerHeight = height; - _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.docStyle.setProperty("--viewer-container-height", `${height}px`); - } - } - #resizeObserverCallback(entries) { - for (const entry of entries) { - if (entry.target === this.container) { - this.#updateContainerHeightCss(Math.floor(entry.borderBoxSize[0].blockSize)); - this.#containerTopLeft = null; - break; - } - } - } - get containerTopLeft() { - return this.#containerTopLeft ||= [this.container.offsetTop, this.container.offsetLeft]; - } - get annotationEditorMode() { - return this.#annotationEditorUIManager ? this.#annotationEditorMode : pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE; - } - set annotationEditorMode({ - mode, - editId = null, - isFromKeyboard = false - }) { - if (!this.#annotationEditorUIManager) { - throw new Error(`The AnnotationEditor is not enabled.`); - } - if (this.#annotationEditorMode === mode) { - return; - } - if (!isValidAnnotationEditorMode(mode)) { - throw new Error(`Invalid AnnotationEditor mode: ${mode}`); - } - if (!this.pdfDocument) { - return; - } - this.#annotationEditorMode = mode; - this.eventBus.dispatch("annotationeditormodechanged", { - source: this, - mode - }); - this.#annotationEditorUIManager.updateMode(mode, editId, isFromKeyboard); - } - set annotationEditorParams({ - type, - value - }) { - if (!this.#annotationEditorUIManager) { - throw new Error(`The AnnotationEditor is not enabled.`); - } - this.#annotationEditorUIManager.updateParams(type, value); - } - refresh(noUpdate = false, updateArgs = Object.create(null)) { - if (!this.pdfDocument) { - return; - } - for (const pageView of this._pages) { - pageView.update(updateArgs); - } - if (this.#scaleTimeoutId !== null) { - clearTimeout(this.#scaleTimeoutId); - this.#scaleTimeoutId = null; - } - if (!noUpdate) { - this.update(); - } - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 2603: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AbortException: () => (/* binding */ AbortException), -/* harmony export */ AnnotationEditorLayer: () => (/* binding */ AnnotationEditorLayer), -/* harmony export */ AnnotationEditorParamsType: () => (/* binding */ AnnotationEditorParamsType), -/* harmony export */ AnnotationEditorType: () => (/* binding */ AnnotationEditorType), -/* harmony export */ AnnotationEditorUIManager: () => (/* binding */ AnnotationEditorUIManager), -/* harmony export */ AnnotationLayer: () => (/* binding */ AnnotationLayer), -/* harmony export */ AnnotationMode: () => (/* binding */ AnnotationMode), -/* harmony export */ ColorPicker: () => (/* binding */ ColorPicker), -/* harmony export */ DOMSVGFactory: () => (/* binding */ DOMSVGFactory), -/* harmony export */ DrawLayer: () => (/* binding */ DrawLayer), -/* harmony export */ GlobalWorkerOptions: () => (/* binding */ GlobalWorkerOptions), -/* harmony export */ InvalidPDFException: () => (/* binding */ InvalidPDFException), -/* harmony export */ MissingPDFException: () => (/* binding */ MissingPDFException), -/* harmony export */ PDFDateString: () => (/* binding */ PDFDateString), -/* harmony export */ PDFWorker: () => (/* binding */ PDFWorker), -/* harmony export */ PasswordResponses: () => (/* binding */ PasswordResponses), -/* harmony export */ PermissionFlag: () => (/* binding */ PermissionFlag), -/* harmony export */ PixelsPerInch: () => (/* binding */ PixelsPerInch), -/* harmony export */ RenderingCancelledException: () => (/* binding */ RenderingCancelledException), -/* harmony export */ UnexpectedResponseException: () => (/* binding */ UnexpectedResponseException), -/* harmony export */ XfaLayer: () => (/* binding */ XfaLayer), -/* harmony export */ build: () => (/* binding */ build), -/* harmony export */ createValidAbsoluteUrl: () => (/* binding */ createValidAbsoluteUrl), -/* harmony export */ fetchData: () => (/* binding */ fetchData), -/* harmony export */ getDocument: () => (/* binding */ getDocument), -/* harmony export */ getFilenameFromUrl: () => (/* binding */ getFilenameFromUrl), -/* harmony export */ getPdfFilenameFromUrl: () => (/* binding */ getPdfFilenameFromUrl), -/* harmony export */ getXfaPageViewport: () => (/* binding */ getXfaPageViewport), -/* harmony export */ isDataScheme: () => (/* binding */ isDataScheme), -/* harmony export */ isPdfFile: () => (/* binding */ isPdfFile), -/* harmony export */ noContextMenu: () => (/* binding */ noContextMenu), -/* harmony export */ normalizeUnicode: () => (/* binding */ normalizeUnicode), -/* harmony export */ renderTextLayer: () => (/* binding */ renderTextLayer), -/* harmony export */ setLayerDimensions: () => (/* binding */ setLayerDimensions), -/* harmony export */ shadow: () => (/* binding */ shadow), -/* harmony export */ updateTextLayer: () => (/* binding */ updateTextLayer), -/* harmony export */ version: () => (/* binding */ version) -/* harmony export */ }); -/* unused harmony exports CMapCompressionType, FeatureTest, ImageKind, OPS, Outliner, PDFDataRangeTransport, Util, VerbosityLevel */ -if (!globalThis.pdfjsLib) { - await globalThis.pdfjsLibPromise; -} -const { - AbortException, - AnnotationEditorLayer, - AnnotationEditorParamsType, - AnnotationEditorType, - AnnotationEditorUIManager, - AnnotationLayer, - AnnotationMode, - build, - CMapCompressionType, - ColorPicker, - createValidAbsoluteUrl, - DOMSVGFactory, - DrawLayer, - FeatureTest, - fetchData, - getDocument, - getFilenameFromUrl, - getPdfFilenameFromUrl, - getXfaPageViewport, - GlobalWorkerOptions, - ImageKind, - InvalidPDFException, - isDataScheme, - isPdfFile, - MissingPDFException, - noContextMenu, - normalizeUnicode, - OPS, - Outliner, - PasswordResponses, - PDFDataRangeTransport, - PDFDateString, - PDFWorker, - PermissionFlag, - PixelsPerInch, - RenderingCancelledException, - renderTextLayer, - setLayerDimensions, - shadow, - UnexpectedResponseException, - updateTextLayer, - Util, - VerbosityLevel, - version, - XfaLayer -} = globalThis.pdfjsLib; - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }, 1); - -/***/ }), - -/***/ 8224: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ BasePreferences: () => (/* binding */ BasePreferences) -/* harmony export */ }); -/* harmony import */ var _app_options_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9840); - -class BasePreferences { - #browserDefaults = Object.freeze({ - canvasMaxAreaInBytes: -1, - isInAutomation: false, - supportsCaretBrowsingMode: false, - supportsDocumentFonts: true, - supportsIntegratedFind: false, - supportsMouseWheelZoomCtrlKey: true, - supportsMouseWheelZoomMetaKey: true, - supportsPinchToZoom: true - }); - #defaults = Object.freeze({ - annotationEditorMode: 0, - annotationMode: 2, - cursorToolOnLoad: 0, - defaultZoomDelay: 400, - defaultZoomValue: "", - disablePageLabels: false, - enableHighlightEditor: false, - enableHighlightFloatingButton: false, - enableML: false, - enablePermissions: false, - enablePrintAutoRotate: true, - enableScripting: true, - enableStampEditor: true, - externalLinkTarget: 0, - highlightEditorColors: "yellow=#FFFF98,green=#53FFBC,blue=#80EBFF,pink=#FFCBE6,red=#FF4F5F", - historyUpdateUrl: false, - ignoreDestinationZoom: false, - forcePageColors: false, - pageColorsBackground: "Canvas", - pageColorsForeground: "CanvasText", - pdfBugEnabled: false, - sidebarViewOnLoad: -1, - scrollModeOnLoad: -1, - spreadModeOnLoad: -1, - textLayerMode: 1, - viewOnLoad: 0, - disableAutoFetch: false, - disableFontFace: false, - disableRange: false, - disableStream: false, - enableXfa: true, - viewerCssTheme: 0 - }); - #prefs = Object.create(null); - #initializedPromise = null; - constructor() { - if (this.constructor === BasePreferences) { - throw new Error("Cannot initialize BasePreferences."); - } - this.#initializedPromise = this._readFromStorage(this.#defaults).then(({ - browserPrefs, - prefs - }) => { - const options = Object.create(null); - for (const [name, val] of Object.entries(this.#browserDefaults)) { - const prefVal = browserPrefs?.[name]; - options[name] = typeof prefVal === typeof val ? prefVal : val; - } - for (const [name, val] of Object.entries(this.#defaults)) { - const prefVal = prefs?.[name]; - options[name] = this.#prefs[name] = typeof prefVal === typeof val ? prefVal : val; - } - _app_options_js__WEBPACK_IMPORTED_MODULE_0__.AppOptions.setAll(options, true); - }); - } - async _writeToStorage(prefObj) { - throw new Error("Not implemented: _writeToStorage"); - } - async _readFromStorage(prefObj) { - throw new Error("Not implemented: _readFromStorage"); - } - #updatePref({ - name, - value - }) { - throw new Error("Not implemented: #updatePref"); - } - async reset() { - await this.#initializedPromise; - const oldPrefs = structuredClone(this.#prefs); - this.#prefs = Object.create(null); - try { - await this._writeToStorage(this.#defaults); - } catch (reason) { - this.#prefs = oldPrefs; - throw reason; - } - } - async set(name, value) { - await this.#initializedPromise; - const defaultValue = this.#defaults[name], - oldPrefs = structuredClone(this.#prefs); - if (defaultValue === undefined) { - throw new Error(`Set preference: "${name}" is undefined.`); - } else if (value === undefined) { - throw new Error("Set preference: no value is specified."); - } - const valueType = typeof value, - defaultType = typeof defaultValue; - if (valueType !== defaultType) { - if (valueType === "number" && defaultType === "string") { - value = value.toString(); - } else { - throw new Error(`Set preference: "${value}" is a ${valueType}, expected a ${defaultType}.`); - } - } else if (valueType === "number" && !Number.isInteger(value)) { - throw new Error(`Set preference: "${value}" must be an integer.`); - } - this.#prefs[name] = value; - try { - await this._writeToStorage(this.#prefs); - } catch (reason) { - this.#prefs = oldPrefs; - throw reason; - } - } - async get(name) { - await this.#initializedPromise; - const defaultValue = this.#defaults[name]; - if (defaultValue === undefined) { - throw new Error(`Get preference: "${name}" is undefined.`); - } - return this.#prefs[name] ?? defaultValue; - } - get initializedPromise() { - return this.#initializedPromise; - } -} - - -/***/ }), - -/***/ 659: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ getXfaHtmlForPrinting: () => (/* binding */ getXfaHtmlForPrinting) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -/* harmony import */ var _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(787); -/* harmony import */ var _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2973); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__]); -([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__, _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__] = __webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__); - - - -function getXfaHtmlForPrinting(printContainer, pdfDocument) { - const xfaHtml = pdfDocument.allXfaHtml; - const linkService = new _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_1__.SimpleLinkService(); - const scale = Math.round(pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.PixelsPerInch.PDF_TO_CSS_UNITS * 100) / 100; - for (const xfaPage of xfaHtml.children) { - const page = document.createElement("div"); - page.className = "xfaPrintedPage"; - printContainer.append(page); - const builder = new _xfa_layer_builder_js__WEBPACK_IMPORTED_MODULE_2__.XfaLayerBuilder({ - pdfPage: null, - annotationStorage: pdfDocument.annotationStorage, - linkService, - xfaHtml: xfaPage - }); - const viewport = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.getXfaPageViewport)(xfaPage, { - scale - }); - builder.render(viewport, "print"); - page.append(builder.div); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 1900: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ SecondaryToolbar: () => (/* binding */ SecondaryToolbar) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); -/* harmony import */ var _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6285); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_pdf_viewer_js__WEBPACK_IMPORTED_MODULE_1__]); -_pdf_viewer_js__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -class SecondaryToolbar { - #opts; - constructor(options, eventBus) { - this.#opts = options; - const buttons = [{ - element: options.presentationModeButton, - eventName: "presentationmode", - close: true - }, { - element: options.printButton, - eventName: "print", - close: true - }, { - element: options.downloadButton, - eventName: "download", - close: true - }, { - element: options.viewBookmarkButton, - eventName: null, - close: true - }, { - element: options.firstPageButton, - eventName: "firstpage", - close: true - }, { - element: options.lastPageButton, - eventName: "lastpage", - close: true - }, { - element: options.pageRotateCwButton, - eventName: "rotatecw", - close: false - }, { - element: options.pageRotateCcwButton, - eventName: "rotateccw", - close: false - }, { - element: options.cursorSelectToolButton, - eventName: "switchcursortool", - eventDetails: { - tool: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.SELECT - }, - close: true - }, { - element: options.cursorHandToolButton, - eventName: "switchcursortool", - eventDetails: { - tool: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.HAND - }, - close: true - }, { - element: options.scrollPageButton, - eventName: "switchscrollmode", - eventDetails: { - mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.PAGE - }, - close: true - }, { - element: options.scrollVerticalButton, - eventName: "switchscrollmode", - eventDetails: { - mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.VERTICAL - }, - close: true - }, { - element: options.scrollHorizontalButton, - eventName: "switchscrollmode", - eventDetails: { - mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.HORIZONTAL - }, - close: true - }, { - element: options.scrollWrappedButton, - eventName: "switchscrollmode", - eventDetails: { - mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.WRAPPED - }, - close: true - }, { - element: options.spreadNoneButton, - eventName: "switchspreadmode", - eventDetails: { - mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.NONE - }, - close: true - }, { - element: options.spreadOddButton, - eventName: "switchspreadmode", - eventDetails: { - mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.ODD - }, - close: true - }, { - element: options.spreadEvenButton, - eventName: "switchspreadmode", - eventDetails: { - mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.EVEN - }, - close: true - }, { - element: options.documentPropertiesButton, - eventName: "documentproperties", - close: true - }]; - buttons.push({ - element: options.openFileButton, - eventName: "openfile", - close: true - }); - this.eventBus = eventBus; - this.opened = false; - this.#bindListeners(buttons); - this.reset(); - } - get isOpen() { - return this.opened; - } - setPageNumber(pageNumber) { - this.pageNumber = pageNumber; - this.#updateUIState(); - } - setPagesCount(pagesCount) { - this.pagesCount = pagesCount; - this.#updateUIState(); - } - reset() { - this.pageNumber = 0; - this.pagesCount = 0; - this.#updateUIState(); - this.eventBus.dispatch("switchcursortool", { - source: this, - reset: true - }); - this.#scrollModeChanged({ - mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.VERTICAL - }); - this.#spreadModeChanged({ - mode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.NONE - }); - } - #updateUIState() { - const { - firstPageButton, - lastPageButton, - pageRotateCwButton, - pageRotateCcwButton - } = this.#opts; - firstPageButton.disabled = this.pageNumber <= 1; - lastPageButton.disabled = this.pageNumber >= this.pagesCount; - pageRotateCwButton.disabled = this.pagesCount === 0; - pageRotateCcwButton.disabled = this.pagesCount === 0; - } - #bindListeners(buttons) { - const { - eventBus - } = this; - const { - toggleButton - } = this.#opts; - toggleButton.addEventListener("click", this.toggle.bind(this)); - for (const { - element, - eventName, - close, - eventDetails - } of buttons) { - element.addEventListener("click", evt => { - if (eventName !== null) { - eventBus.dispatch(eventName, { - source: this, - ...eventDetails - }); - } - if (close) { - this.close(); - } - eventBus.dispatch("reporttelemetry", { - source: this, - details: { - type: "buttons", - data: { - id: element.id - } - } - }); - }); - } - eventBus._on("cursortoolchanged", this.#cursorToolChanged.bind(this)); - eventBus._on("scrollmodechanged", this.#scrollModeChanged.bind(this)); - eventBus._on("spreadmodechanged", this.#spreadModeChanged.bind(this)); - } - #cursorToolChanged({ - tool - }) { - const { - cursorSelectToolButton, - cursorHandToolButton - } = this.#opts; - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(cursorSelectToolButton, tool === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.SELECT); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(cursorHandToolButton, tool === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.CursorTool.HAND); - } - #scrollModeChanged({ - mode - }) { - const { - scrollPageButton, - scrollVerticalButton, - scrollHorizontalButton, - scrollWrappedButton, - spreadNoneButton, - spreadOddButton, - spreadEvenButton - } = this.#opts; - - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(scrollPageButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.PAGE); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(scrollVerticalButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.VERTICAL); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(scrollHorizontalButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.HORIZONTAL); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(scrollWrappedButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.WRAPPED); - const forceScrollModePage = this.pagesCount > _pdf_viewer_js__WEBPACK_IMPORTED_MODULE_1__.PagesCountLimit.FORCE_SCROLL_MODE_PAGE; - scrollPageButton.disabled = forceScrollModePage; - scrollVerticalButton.disabled = forceScrollModePage; - scrollHorizontalButton.disabled = forceScrollModePage; - scrollWrappedButton.disabled = forceScrollModePage; - const isHorizontal = mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.ScrollMode.HORIZONTAL; - spreadNoneButton.disabled = isHorizontal; - spreadOddButton.disabled = isHorizontal; - spreadEvenButton.disabled = isHorizontal; - } - #spreadModeChanged({ - mode - }) { - const { - spreadNoneButton, - spreadOddButton, - spreadEvenButton - } = this.#opts; - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(spreadNoneButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.NONE); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(spreadOddButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.ODD); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleCheckedBtn)(spreadEvenButton, mode === _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode.EVEN); - } - open() { - if (this.opened) { - return; - } - this.opened = true; - const { - toggleButton, - toolbar - } = this.#opts; - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleExpandedBtn)(toggleButton, true, toolbar); - } - close() { - if (!this.opened) { - return; - } - this.opened = false; - const { - toggleButton, - toolbar - } = this.#opts; - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.toggleExpandedBtn)(toggleButton, false, toolbar); - } - toggle() { - if (this.opened) { - this.close(); - } else { - this.open(); - } - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 6698: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ StructTreeLayerBuilder: () => (/* binding */ StructTreeLayerBuilder) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); - -const PDF_ROLE_TO_HTML_ROLE = { - Document: null, - DocumentFragment: null, - Part: "group", - Sect: "group", - Div: "group", - Aside: "note", - NonStruct: "none", - P: null, - H: "heading", - Title: null, - FENote: "note", - Sub: "group", - Lbl: null, - Span: null, - Em: null, - Strong: null, - Link: "link", - Annot: "note", - Form: "form", - Ruby: null, - RB: null, - RT: null, - RP: null, - Warichu: null, - WT: null, - WP: null, - L: "list", - LI: "listitem", - LBody: null, - Table: "table", - TR: "row", - TH: "columnheader", - TD: "cell", - THead: "columnheader", - TBody: null, - TFoot: null, - Caption: null, - Figure: "figure", - Formula: null, - Artifact: null -}; -const HEADING_PATTERN = /^H(\d+)$/; -class StructTreeLayerBuilder { - #treeDom = undefined; - get renderingDone() { - return this.#treeDom !== undefined; - } - render(structTree) { - if (this.#treeDom !== undefined) { - return this.#treeDom; - } - const treeDom = this.#walk(structTree); - treeDom?.classList.add("structTree"); - return this.#treeDom = treeDom; - } - hide() { - if (this.#treeDom && !this.#treeDom.hidden) { - this.#treeDom.hidden = true; - } - } - show() { - if (this.#treeDom?.hidden) { - this.#treeDom.hidden = false; - } - } - #setAttributes(structElement, htmlElement) { - const { - alt, - id, - lang - } = structElement; - if (alt !== undefined) { - htmlElement.setAttribute("aria-label", (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.removeNullCharacters)(alt)); - } - if (id !== undefined) { - htmlElement.setAttribute("aria-owns", id); - } - if (lang !== undefined) { - htmlElement.setAttribute("lang", (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.removeNullCharacters)(lang, true)); - } - } - #walk(node) { - if (!node) { - return null; - } - const element = document.createElement("span"); - if ("role" in node) { - const { - role - } = node; - const match = role.match(HEADING_PATTERN); - if (match) { - element.setAttribute("role", "heading"); - element.setAttribute("aria-level", match[1]); - } else if (PDF_ROLE_TO_HTML_ROLE[role]) { - element.setAttribute("role", PDF_ROLE_TO_HTML_ROLE[role]); - } - } - this.#setAttributes(node, element); - if (node.children) { - if (node.children.length === 1 && "id" in node.children[0]) { - this.#setAttributes(node.children[0], element); - } else { - for (const kid of node.children) { - element.append(this.#walk(kid)); - } - } - } - return element; - } -} - - -/***/ }), - -/***/ 5860: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ TextAccessibilityManager: () => (/* binding */ TextAccessibilityManager) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); - -class TextAccessibilityManager { - #enabled = false; - #textChildren = null; - #textNodes = new Map(); - #waitingElements = new Map(); - setTextMapping(textDivs) { - this.#textChildren = textDivs; - } - static #compareElementPositions(e1, e2) { - const rect1 = e1.getBoundingClientRect(); - const rect2 = e2.getBoundingClientRect(); - if (rect1.width === 0 && rect1.height === 0) { - return +1; - } - if (rect2.width === 0 && rect2.height === 0) { - return -1; - } - const top1 = rect1.y; - const bot1 = rect1.y + rect1.height; - const mid1 = rect1.y + rect1.height / 2; - const top2 = rect2.y; - const bot2 = rect2.y + rect2.height; - const mid2 = rect2.y + rect2.height / 2; - if (mid1 <= top2 && mid2 >= bot1) { - return -1; - } - if (mid2 <= top1 && mid1 >= bot2) { - return +1; - } - const centerX1 = rect1.x + rect1.width / 2; - const centerX2 = rect2.x + rect2.width / 2; - return centerX1 - centerX2; - } - enable() { - if (this.#enabled) { - throw new Error("TextAccessibilityManager is already enabled."); - } - if (!this.#textChildren) { - throw new Error("Text divs and strings have not been set."); - } - this.#enabled = true; - this.#textChildren = this.#textChildren.slice(); - this.#textChildren.sort(TextAccessibilityManager.#compareElementPositions); - if (this.#textNodes.size > 0) { - const textChildren = this.#textChildren; - for (const [id, nodeIndex] of this.#textNodes) { - const element = document.getElementById(id); - if (!element) { - this.#textNodes.delete(id); - continue; - } - this.#addIdToAriaOwns(id, textChildren[nodeIndex]); - } - } - for (const [element, isRemovable] of this.#waitingElements) { - this.addPointerInTextLayer(element, isRemovable); - } - this.#waitingElements.clear(); - } - disable() { - if (!this.#enabled) { - return; - } - this.#waitingElements.clear(); - this.#textChildren = null; - this.#enabled = false; - } - removePointerInTextLayer(element) { - if (!this.#enabled) { - this.#waitingElements.delete(element); - return; - } - const children = this.#textChildren; - if (!children || children.length === 0) { - return; - } - const { - id - } = element; - const nodeIndex = this.#textNodes.get(id); - if (nodeIndex === undefined) { - return; - } - const node = children[nodeIndex]; - this.#textNodes.delete(id); - let owns = node.getAttribute("aria-owns"); - if (owns?.includes(id)) { - owns = owns.split(" ").filter(x => x !== id).join(" "); - if (owns) { - node.setAttribute("aria-owns", owns); - } else { - node.removeAttribute("aria-owns"); - node.setAttribute("role", "presentation"); - } - } - } - #addIdToAriaOwns(id, node) { - const owns = node.getAttribute("aria-owns"); - if (!owns?.includes(id)) { - node.setAttribute("aria-owns", owns ? `${owns} ${id}` : id); - } - node.removeAttribute("role"); - } - addPointerInTextLayer(element, isRemovable) { - const { - id - } = element; - if (!id) { - return null; - } - if (!this.#enabled) { - this.#waitingElements.set(element, isRemovable); - return null; - } - if (isRemovable) { - this.removePointerInTextLayer(element); - } - const children = this.#textChildren; - if (!children || children.length === 0) { - return null; - } - const index = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0); - const nodeIndex = Math.max(0, index - 1); - const child = children[nodeIndex]; - this.#addIdToAriaOwns(id, child); - this.#textNodes.set(id, nodeIndex); - const parent = child.parentNode; - return parent?.classList.contains("markedContent") ? parent.id : null; - } - moveElementInDOM(container, element, contentElement, isRemovable) { - const id = this.addPointerInTextLayer(contentElement, isRemovable); - if (!container.hasChildNodes()) { - container.append(element); - return id; - } - const children = Array.from(container.childNodes).filter(node => node !== element); - if (children.length === 0) { - return id; - } - const elementToCompare = contentElement || element; - const index = (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(elementToCompare, node) < 0); - if (index === 0) { - children[0].before(element); - } else { - children[index - 1].after(element); - } - return id; - } -} - - -/***/ }), - -/***/ 2027: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ TextHighlighter: () => (/* binding */ TextHighlighter) -/* harmony export */ }); -class TextHighlighter { - #eventAbortController = null; - constructor({ - findController, - eventBus, - pageIndex - }) { - this.findController = findController; - this.matches = []; - this.eventBus = eventBus; - this.pageIdx = pageIndex; - this.textDivs = null; - this.textContentItemsStr = null; - this.enabled = false; - } - setTextMapping(divs, texts) { - this.textDivs = divs; - this.textContentItemsStr = texts; - } - enable() { - if (!this.textDivs || !this.textContentItemsStr) { - throw new Error("Text divs and strings have not been set."); - } - if (this.enabled) { - throw new Error("TextHighlighter is already enabled."); - } - this.enabled = true; - if (!this.#eventAbortController) { - this.#eventAbortController = new AbortController(); - this.eventBus._on("updatetextlayermatches", evt => { - if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) { - this._updateMatches(); - } - }, { - signal: this.#eventAbortController.signal - }); - } - this._updateMatches(); - } - disable() { - if (!this.enabled) { - return; - } - this.enabled = false; - this.#eventAbortController?.abort(); - this.#eventAbortController = null; - this._updateMatches(true); - } - _convertMatches(matches, matchesLength) { - if (!matches) { - return []; - } - const { - textContentItemsStr - } = this; - let i = 0, - iIndex = 0; - const end = textContentItemsStr.length - 1; - const result = []; - for (let m = 0, mm = matches.length; m < mm; m++) { - let matchIdx = matches[m]; - while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { - iIndex += textContentItemsStr[i].length; - i++; - } - if (i === textContentItemsStr.length) { - console.error("Could not find a matching mapping"); - } - const match = { - begin: { - divIdx: i, - offset: matchIdx - iIndex - } - }; - matchIdx += matchesLength[m]; - while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { - iIndex += textContentItemsStr[i].length; - i++; - } - match.end = { - divIdx: i, - offset: matchIdx - iIndex - }; - result.push(match); - } - return result; - } - _renderMatches(matches) { - if (matches.length === 0) { - return; - } - const { - findController, - pageIdx - } = this; - const { - textContentItemsStr, - textDivs - } = this; - const isSelectedPage = pageIdx === findController.selected.pageIdx; - const selectedMatchIdx = findController.selected.matchIdx; - const highlightAll = findController.state.highlightAll; - let prevEnd = null; - const infinity = { - divIdx: -1, - offset: undefined - }; - function beginText(begin, className) { - const divIdx = begin.divIdx; - textDivs[divIdx].textContent = ""; - return appendTextToDiv(divIdx, 0, begin.offset, className); - } - function appendTextToDiv(divIdx, fromOffset, toOffset, className) { - let div = textDivs[divIdx]; - if (div.nodeType === Node.TEXT_NODE) { - const span = document.createElement("span"); - div.before(span); - span.append(div); - textDivs[divIdx] = span; - div = span; - } - const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); - const node = document.createTextNode(content); - if (className) { - const span = document.createElement("span"); - span.className = `${className} appended`; - span.append(node); - div.append(span); - return className.includes("selected") ? span.offsetLeft : 0; - } - div.append(node); - return 0; - } - let i0 = selectedMatchIdx, - i1 = i0 + 1; - if (highlightAll) { - i0 = 0; - i1 = matches.length; - } else if (!isSelectedPage) { - return; - } - let lastDivIdx = -1; - let lastOffset = -1; - for (let i = i0; i < i1; i++) { - const match = matches[i]; - const begin = match.begin; - if (begin.divIdx === lastDivIdx && begin.offset === lastOffset) { - continue; - } - lastDivIdx = begin.divIdx; - lastOffset = begin.offset; - const end = match.end; - const isSelected = isSelectedPage && i === selectedMatchIdx; - const highlightSuffix = isSelected ? " selected" : ""; - let selectedLeft = 0; - if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { - if (prevEnd !== null) { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); - } - beginText(begin); - } else { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); - } - if (begin.divIdx === end.divIdx) { - selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix); - } else { - selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix); - for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { - textDivs[n0].className = "highlight middle" + highlightSuffix; - } - beginText(end, "highlight end" + highlightSuffix); - } - prevEnd = end; - if (isSelected) { - findController.scrollMatchIntoView({ - element: textDivs[begin.divIdx], - selectedLeft, - pageIndex: pageIdx, - matchIndex: selectedMatchIdx - }); - } - } - if (prevEnd) { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); - } - } - _updateMatches(reset = false) { - if (!this.enabled && !reset) { - return; - } - const { - findController, - matches, - pageIdx - } = this; - const { - textContentItemsStr, - textDivs - } = this; - let clearedUntilDivIdx = -1; - for (const match of matches) { - const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); - for (let n = begin, end = match.end.divIdx; n <= end; n++) { - const div = textDivs[n]; - div.textContent = textContentItemsStr[n]; - div.className = ""; - } - clearedUntilDivIdx = match.end.divIdx + 1; - } - if (!findController?.highlightMatches || reset) { - return; - } - const pageMatches = findController.pageMatches[pageIdx] || null; - const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; - this.matches = this._convertMatches(pageMatches, pageMatchesLength); - this._renderMatches(this.matches); - } -} - - -/***/ }), - -/***/ 7765: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ TextLayerBuilder: () => (/* binding */ TextLayerBuilder) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7256); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -class TextLayerBuilder { - #enablePermissions = false; - #onAppend = null; - #rotation = 0; - #scale = 0; - #textContentSource = null; - constructor({ - highlighter = null, - accessibilityManager = null, - enablePermissions = false, - onAppend = null - }) { - this.textContentItemsStr = []; - this.renderingDone = false; - this.textDivs = []; - this.textDivProperties = new WeakMap(); - this.textLayerRenderTask = null; - this.highlighter = highlighter; - this.accessibilityManager = accessibilityManager; - this.#enablePermissions = enablePermissions === true; - this.#onAppend = onAppend; - this.div = document.createElement("div"); - this.div.tabIndex = 0; - this.div.className = "textLayer"; - } - #finishRendering() { - this.renderingDone = true; - const endOfContent = document.createElement("div"); - endOfContent.className = "endOfContent"; - this.div.append(endOfContent); - this.#bindMouse(); - } - get numTextDivs() { - return this.textDivs.length; - } - async render(viewport) { - if (!this.#textContentSource) { - throw new Error('No "textContentSource" parameter specified.'); - } - const scale = viewport.scale * (globalThis.devicePixelRatio || 1); - const { - rotation - } = viewport; - if (this.renderingDone) { - const mustRotate = rotation !== this.#rotation; - const mustRescale = scale !== this.#scale; - if (mustRotate || mustRescale) { - this.hide(); - (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.updateTextLayer)({ - container: this.div, - viewport, - textDivs: this.textDivs, - textDivProperties: this.textDivProperties, - mustRescale, - mustRotate - }); - this.#scale = scale; - this.#rotation = rotation; - } - this.show(); - return; - } - this.cancel(); - this.highlighter?.setTextMapping(this.textDivs, this.textContentItemsStr); - this.accessibilityManager?.setTextMapping(this.textDivs); - this.textLayerRenderTask = (0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.renderTextLayer)({ - textContentSource: this.#textContentSource, - container: this.div, - viewport, - textDivs: this.textDivs, - textDivProperties: this.textDivProperties, - textContentItemsStr: this.textContentItemsStr - }); - await this.textLayerRenderTask.promise; - this.#finishRendering(); - this.#scale = scale; - this.#rotation = rotation; - this.#onAppend?.(this.div); - this.highlighter?.enable(); - this.accessibilityManager?.enable(); - } - hide() { - if (!this.div.hidden && this.renderingDone) { - this.highlighter?.disable(); - this.div.hidden = true; - } - } - show() { - if (this.div.hidden && this.renderingDone) { - this.div.hidden = false; - this.highlighter?.enable(); - } - } - cancel() { - if (this.textLayerRenderTask) { - this.textLayerRenderTask.cancel(); - this.textLayerRenderTask = null; - } - this.highlighter?.disable(); - this.accessibilityManager?.disable(); - this.textContentItemsStr.length = 0; - this.textDivs.length = 0; - this.textDivProperties = new WeakMap(); - } - setTextContentSource(source) { - this.cancel(); - this.#textContentSource = source; - } - #bindMouse() { - const { - div - } = this; - div.addEventListener("mousedown", evt => { - const end = div.querySelector(".endOfContent"); - if (!end) { - return; - } - let adjustTop = evt.target !== div; - adjustTop &&= getComputedStyle(end).getPropertyValue("-moz-user-select") !== "none"; - if (adjustTop) { - const divBounds = div.getBoundingClientRect(); - const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); - end.style.top = (r * 100).toFixed(2) + "%"; - } - end.classList.add("active"); - }); - div.addEventListener("mouseup", () => { - const end = div.querySelector(".endOfContent"); - if (!end) { - return; - } - end.style.top = ""; - end.classList.remove("active"); - }); - div.addEventListener("copy", event => { - if (!this.#enablePermissions) { - const selection = document.getSelection(); - event.clipboardData.setData("text/plain", (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.removeNullCharacters)((0,pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.normalizeUnicode)(selection.toString()))); - } - event.preventDefault(); - event.stopPropagation(); - }); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 6297: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Toolbar: () => (/* binding */ Toolbar) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7256); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -class Toolbar { - #opts; - constructor(options, eventBus) { - // console.log('test-option', options) - this.#opts = options; - this.eventBus = eventBus; - const buttons = [{ - element: options.previous, - eventName: "previouspage" - }, { - element: options.next, - eventName: "nextpage" - }, { - element: options.zoomIn, - eventName: "zoomin" - }, { - element: options.zoomOut, - eventName: "zoomout" - }, { - element: options.print, - eventName: "print" - }, { - element: options.download, - eventName: "download" - }, { - element: options.editorFreeTextButton, - eventName: "switchannotationeditormode", - eventDetails: { - get mode() { - const { - classList - } = options.editorFreeTextButton; - return classList.contains("toggled") ? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE : pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.FREETEXT; - } - } - }, { - element: options.editorHighlightButton, - eventName: "switchannotationeditormode", - eventDetails: { - get mode() { - const { - classList - } = options.editorHighlightButton; - return classList.contains("toggled") ? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE : pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.HIGHLIGHT; - } - } - }, { - element: options.editorInkButton, - eventName: "switchannotationeditormode", - eventDetails: { - get mode() { - const { - classList - } = options.editorInkButton; - return classList.contains("toggled") ? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE : pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.INK; - } - } - }, { - element: options.editorStampButton, - eventName: "switchannotationeditormode", - eventDetails: { - get mode() { - const { - classList - } = options.editorStampButton; - return classList.contains("toggled") ? pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.NONE : pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.STAMP; - } - } - }]; - this.#bindListeners(buttons); - if (options.editorHighlightColorPicker) { - eventBus._on("annotationeditoruimanager", ({ - uiManager - }) => { - this.#setAnnotationEditorUIManager(uiManager, options.editorHighlightColorPicker); - }, { - once: true - }); - } - eventBus._on("showannotationeditorui", ({ - mode - }) => { - switch (mode) { - case pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.HIGHLIGHT: - options.editorHighlightButton.click(); - break; - } - }); - this.reset(); - } - #setAnnotationEditorUIManager(uiManager, parentContainer) { - const colorPicker = new pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.ColorPicker({ - uiManager - }); - uiManager.setMainHighlightColorPicker(colorPicker); - parentContainer.append(colorPicker.renderMainDropdown()); - } - setPageNumber(pageNumber, pageLabel) { - this.pageNumber = pageNumber; - this.pageLabel = pageLabel; - this.#updateUIState(false); - } - setPagesCount(pagesCount, hasPageLabels) { - this.pagesCount = pagesCount; - this.hasPageLabels = hasPageLabels; - this.#updateUIState(true); - } - setPageScale(pageScaleValue, pageScale) { - this.pageScaleValue = (pageScaleValue || pageScale).toString(); - this.pageScale = pageScale; - this.#updateUIState(false); - } - reset() { - this.pageNumber = 0; - this.pageLabel = null; - this.hasPageLabels = false; - this.pagesCount = 0; - this.pageScaleValue = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE_VALUE; - this.pageScale = _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.DEFAULT_SCALE; - this.#updateUIState(true); - this.updateLoadingIndicatorState(); - this.#editorModeChanged({ - mode: pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE - }); - } - #bindListeners(buttons) { - const { - eventBus - } = this; - const { - pageNumber, - scaleSelect - } = this.#opts; - const self = this; - for (const { - element, - eventName, - eventDetails - } of buttons) { - element.addEventListener("click", evt => { - if (eventName !== null) { - eventBus.dispatch(eventName, { - source: this, - ...eventDetails, - isFromKeyboard: evt.detail === 0 - }); - } - }); - } - pageNumber.addEventListener("click", function () { - this.select(); - }); - pageNumber.addEventListener("change", function () { - eventBus.dispatch("pagenumberchanged", { - source: self, - value: this.value - }); - }); - scaleSelect.addEventListener("change", function () { - if (this.value === "custom") { - return; - } - eventBus.dispatch("scalechanged", { - source: self, - value: this.value - }); - }); - scaleSelect.addEventListener("click", function ({ - target - }) { - if (this.value === self.pageScaleValue && target.tagName.toUpperCase() === "OPTION") { - this.blur(); - } - }); - scaleSelect.oncontextmenu = pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.noContextMenu; - eventBus._on("annotationeditormodechanged", this.#editorModeChanged.bind(this)); - } - #editorModeChanged({ - mode - }) { - const { - editorFreeTextButton, - editorFreeTextParamsToolbar, - editorHighlightButton, - editorHighlightParamsToolbar, - editorInkButton, - editorInkParamsToolbar, - editorStampButton, - editorStampParamsToolbar - } = this.#opts; - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleCheckedBtn)(editorFreeTextButton, mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.FREETEXT, editorFreeTextParamsToolbar); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleCheckedBtn)(editorHighlightButton, mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.HIGHLIGHT, editorHighlightParamsToolbar); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleCheckedBtn)(editorInkButton, mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.INK, editorInkParamsToolbar); - (0,_ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.toggleCheckedBtn)(editorStampButton, mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.STAMP, editorStampParamsToolbar); - const isDisable = mode === pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.AnnotationEditorType.DISABLE; - editorFreeTextButton.disabled = isDisable; - editorHighlightButton.disabled = isDisable; - editorInkButton.disabled = isDisable; - editorStampButton.disabled = isDisable; - } - #updateUIState(resetNumPages = false) { - const { - pageNumber, - pagesCount, - pageScaleValue, - pageScale - } = this; - const opts = this.#opts; - if (resetNumPages) { - if (this.hasPageLabels) { - opts.pageNumber.type = "text"; - opts.numPages.setAttribute("data-l10n-id", "pdfjs-page-of-pages"); - } else { - opts.pageNumber.type = "number"; - opts.numPages.setAttribute("data-l10n-id", "pdfjs-of-pages"); - opts.numPages.setAttribute("data-l10n-args", JSON.stringify({ - pagesCount - })); - } - opts.pageNumber.max = pagesCount; - } - if (this.hasPageLabels) { - opts.pageNumber.value = this.pageLabel; - opts.numPages.setAttribute("data-l10n-args", JSON.stringify({ - pageNumber, - pagesCount - })); - } else { - // console.log('test-pageNumber-dd', pageNumber) - // [custome] 比page Changing 更精确 - window.parent.postMessage({pageNumDetail: pageNumber}, '*'); - opts.pageNumber.value = pageNumber; - } - opts.previous.disabled = pageNumber <= 1; - opts.next.disabled = pageNumber >= pagesCount; - opts.zoomOut.disabled = pageScale <= _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MIN_SCALE; - opts.zoomIn.disabled = pageScale >= _ui_utils_js__WEBPACK_IMPORTED_MODULE_1__.MAX_SCALE; - let predefinedValueFound = false; - for (const option of opts.scaleSelect.options) { - if (option.value !== pageScaleValue) { - option.selected = false; - continue; - } - option.selected = true; - predefinedValueFound = true; - } - if (!predefinedValueFound) { - opts.customScaleOption.selected = true; - opts.customScaleOption.setAttribute("data-l10n-args", JSON.stringify({ - scale: Math.round(pageScale * 10000) / 100 - })); - } - - if(opts?.odlScale) { - opts.odlScale.innerText = `${ Math.round(pageScale * 10000) / 100}%` - } - } - updateLoadingIndicatorState(loading = false) { - const { - pageNumber - } = this.#opts; - pageNumber.classList.toggle("loading", loading); - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 7256: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AutoPrintRegExp: () => (/* binding */ AutoPrintRegExp), -/* harmony export */ CursorTool: () => (/* binding */ CursorTool), -/* harmony export */ DEFAULT_SCALE: () => (/* binding */ DEFAULT_SCALE), -/* harmony export */ DEFAULT_SCALE_DELTA: () => (/* binding */ DEFAULT_SCALE_DELTA), -/* harmony export */ DEFAULT_SCALE_VALUE: () => (/* binding */ DEFAULT_SCALE_VALUE), -/* harmony export */ MAX_AUTO_SCALE: () => (/* binding */ MAX_AUTO_SCALE), -/* harmony export */ MAX_SCALE: () => (/* binding */ MAX_SCALE), -/* harmony export */ MIN_SCALE: () => (/* binding */ MIN_SCALE), -/* harmony export */ OutputScale: () => (/* binding */ OutputScale), -/* harmony export */ PresentationModeState: () => (/* binding */ PresentationModeState), -/* harmony export */ ProgressBar: () => (/* binding */ ProgressBar), -/* harmony export */ RenderingStates: () => (/* binding */ RenderingStates), -/* harmony export */ SCROLLBAR_PADDING: () => (/* binding */ SCROLLBAR_PADDING), -/* harmony export */ ScrollMode: () => (/* binding */ ScrollMode), -/* harmony export */ SidebarView: () => (/* binding */ SidebarView), -/* harmony export */ SpreadMode: () => (/* binding */ SpreadMode), -/* harmony export */ TextLayerMode: () => (/* binding */ TextLayerMode), -/* harmony export */ UNKNOWN_SCALE: () => (/* binding */ UNKNOWN_SCALE), -/* harmony export */ VERTICAL_PADDING: () => (/* binding */ VERTICAL_PADDING), -/* harmony export */ animationStarted: () => (/* binding */ animationStarted), -/* harmony export */ apiPageLayoutToViewerModes: () => (/* binding */ apiPageLayoutToViewerModes), -/* harmony export */ apiPageModeToSidebarView: () => (/* binding */ apiPageModeToSidebarView), -/* harmony export */ approximateFraction: () => (/* binding */ approximateFraction), -/* harmony export */ binarySearchFirstItem: () => (/* binding */ binarySearchFirstItem), -/* harmony export */ docStyle: () => (/* binding */ docStyle), -/* harmony export */ getActiveOrFocusedElement: () => (/* binding */ getActiveOrFocusedElement), -/* harmony export */ getPageSizeInches: () => (/* binding */ getPageSizeInches), -/* harmony export */ getVisibleElements: () => (/* binding */ getVisibleElements), -/* harmony export */ isPortraitOrientation: () => (/* binding */ isPortraitOrientation), -/* harmony export */ isValidRotation: () => (/* binding */ isValidRotation), -/* harmony export */ isValidScrollMode: () => (/* binding */ isValidScrollMode), -/* harmony export */ isValidSpreadMode: () => (/* binding */ isValidSpreadMode), -/* harmony export */ normalizeWheelEventDelta: () => (/* binding */ normalizeWheelEventDelta), -/* harmony export */ normalizeWheelEventDirection: () => (/* binding */ normalizeWheelEventDirection), -/* harmony export */ parseQueryString: () => (/* binding */ parseQueryString), -/* harmony export */ removeNullCharacters: () => (/* binding */ removeNullCharacters), -/* harmony export */ roundToDivide: () => (/* binding */ roundToDivide), -/* harmony export */ scrollIntoView: () => (/* binding */ scrollIntoView), -/* harmony export */ toggleCheckedBtn: () => (/* binding */ toggleCheckedBtn), -/* harmony export */ toggleExpandedBtn: () => (/* binding */ toggleExpandedBtn), -/* harmony export */ watchScroll: () => (/* binding */ watchScroll) -/* harmony export */ }); -/* unused harmony export backtrackBeforeAllVisibleElements */ -const DEFAULT_SCALE_VALUE = "auto"; -const DEFAULT_SCALE = 1.0; -const DEFAULT_SCALE_DELTA = 1.1; -const MIN_SCALE = 0.1; -const MAX_SCALE = 10.0; -const UNKNOWN_SCALE = 0; -const MAX_AUTO_SCALE = 1.25; -const SCROLLBAR_PADDING = 40; -const VERTICAL_PADDING = 5; -const RenderingStates = { - INITIAL: 0, - RUNNING: 1, - PAUSED: 2, - FINISHED: 3 -}; -const PresentationModeState = { - UNKNOWN: 0, - NORMAL: 1, - CHANGING: 2, - FULLSCREEN: 3 -}; -const SidebarView = { - UNKNOWN: -1, - NONE: 0, - THUMBS: 1, - OUTLINE: 2, - ATTACHMENTS: 3, - LAYERS: 4 -}; -const TextLayerMode = { - DISABLE: 0, - ENABLE: 1, - ENABLE_PERMISSIONS: 2 -}; -const ScrollMode = { - UNKNOWN: -1, - VERTICAL: 0, - HORIZONTAL: 1, - WRAPPED: 2, - PAGE: 3 -}; -const SpreadMode = { - UNKNOWN: -1, - NONE: 0, - ODD: 1, - EVEN: 2 -}; -const CursorTool = { - SELECT: 0, - HAND: 1, - ZOOM: 2 -}; -const AutoPrintRegExp = /\bprint\s*\(/; -class OutputScale { - constructor() { - const pixelRatio = window.devicePixelRatio || 1; - this.sx = pixelRatio; - this.sy = pixelRatio; - } - get scaled() { - return this.sx !== 1 || this.sy !== 1; - } -} -function scrollIntoView(element, spot, scrollMatches = false) { - let parent = element.offsetParent; - if (!parent) { - console.error("offsetParent is not set -- cannot scroll"); - return; - } - let offsetY = element.offsetTop + element.clientTop; - let offsetX = element.offsetLeft + element.clientLeft; - while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains("markedContent") || getComputedStyle(parent).overflow === "hidden")) { - offsetY += parent.offsetTop; - offsetX += parent.offsetLeft; - parent = parent.offsetParent; - if (!parent) { - return; - } - } - if (spot) { - if (spot.top !== undefined) { - offsetY += spot.top; - } - if (spot.left !== undefined) { - offsetX += spot.left; - parent.scrollLeft = offsetX; - } - } - parent.scrollTop = offsetY; -} -function watchScroll(viewAreaElement, callback) { - const debounceScroll = function (evt) { - if (rAF) { - return; - } - rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { - rAF = null; - const currentX = viewAreaElement.scrollLeft; - const lastX = state.lastX; - if (currentX !== lastX) { - state.right = currentX > lastX; - } - state.lastX = currentX; - const currentY = viewAreaElement.scrollTop; - const lastY = state.lastY; - if (currentY !== lastY) { - state.down = currentY > lastY; - } - state.lastY = currentY; - callback(state); - }); - }; - const state = { - right: true, - down: true, - lastX: viewAreaElement.scrollLeft, - lastY: viewAreaElement.scrollTop, - _eventHandler: debounceScroll - }; - let rAF = null; - viewAreaElement.addEventListener("scroll", debounceScroll, true); - return state; -} -function parseQueryString(query) { - const params = new Map(); - for (const [key, value] of new URLSearchParams(query)) { - params.set(key.toLowerCase(), value); - } - return params; -} -const InvisibleCharsRegExp = /[\x00-\x1F]/g; -function removeNullCharacters(str, replaceInvisible = false) { - if (!InvisibleCharsRegExp.test(str)) { - return str; - } - if (replaceInvisible) { - return str.replaceAll(InvisibleCharsRegExp, m => m === "\x00" ? "" : " "); - } - return str.replaceAll("\x00", ""); -} -function binarySearchFirstItem(items, condition, start = 0) { - let minIndex = start; - let maxIndex = items.length - 1; - if (maxIndex < 0 || !condition(items[maxIndex])) { - return items.length; - } - if (condition(items[minIndex])) { - return minIndex; - } - while (minIndex < maxIndex) { - const currentIndex = minIndex + maxIndex >> 1; - const currentItem = items[currentIndex]; - if (condition(currentItem)) { - maxIndex = currentIndex; - } else { - minIndex = currentIndex + 1; - } - } - return minIndex; -} -function approximateFraction(x) { - if (Math.floor(x) === x) { - return [x, 1]; - } - const xinv = 1 / x; - const limit = 8; - if (xinv > limit) { - return [1, limit]; - } else if (Math.floor(xinv) === xinv) { - return [1, xinv]; - } - const x_ = x > 1 ? xinv : x; - let a = 0, - b = 1, - c = 1, - d = 1; - while (true) { - const p = a + c, - q = b + d; - if (q > limit) { - break; - } - if (x_ <= p / q) { - c = p; - d = q; - } else { - a = p; - b = q; - } - } - let result; - if (x_ - a / b < c / d - x_) { - result = x_ === x ? [a, b] : [b, a]; - } else { - result = x_ === x ? [c, d] : [d, c]; - } - return result; -} -function roundToDivide(x, div) { - const r = x % div; - return r === 0 ? x : Math.round(x - r + div); -} -function getPageSizeInches({ - view, - userUnit, - rotate -}) { - const [x1, y1, x2, y2] = view; - const changeOrientation = rotate % 180 !== 0; - const width = (x2 - x1) / 72 * userUnit; - const height = (y2 - y1) / 72 * userUnit; - return { - width: changeOrientation ? height : width, - height: changeOrientation ? width : height - }; -} -function backtrackBeforeAllVisibleElements(index, views, top) { - if (index < 2) { - return index; - } - let elt = views[index].div; - let pageTop = elt.offsetTop + elt.clientTop; - if (pageTop >= top) { - elt = views[index - 1].div; - pageTop = elt.offsetTop + elt.clientTop; - } - for (let i = index - 2; i >= 0; --i) { - elt = views[i].div; - if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { - break; - } - index = i; - } - return index; -} -function getVisibleElements({ - scrollEl, - views, - sortByVisibility = false, - horizontal = false, - rtl = false -}) { - const top = scrollEl.scrollTop, - bottom = top + scrollEl.clientHeight; - const left = scrollEl.scrollLeft, - right = left + scrollEl.clientWidth; - function isElementBottomAfterViewTop(view) { - const element = view.div; - const elementBottom = element.offsetTop + element.clientTop + element.clientHeight; - return elementBottom > top; - } - function isElementNextAfterViewHorizontally(view) { - const element = view.div; - const elementLeft = element.offsetLeft + element.clientLeft; - const elementRight = elementLeft + element.clientWidth; - return rtl ? elementLeft < right : elementRight > left; - } - const visible = [], - ids = new Set(), - numViews = views.length; - let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop); - if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { - firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); - } - let lastEdge = horizontal ? right : -1; - for (let i = firstVisibleElementInd; i < numViews; i++) { - const view = views[i], - element = view.div; - const currentWidth = element.offsetLeft + element.clientLeft; - const currentHeight = element.offsetTop + element.clientTop; - const viewWidth = element.clientWidth, - viewHeight = element.clientHeight; - const viewRight = currentWidth + viewWidth; - const viewBottom = currentHeight + viewHeight; - if (lastEdge === -1) { - if (viewBottom >= bottom) { - lastEdge = viewBottom; - } - } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) { - break; - } - if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) { - continue; - } - const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); - const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); - const fractionHeight = (viewHeight - hiddenHeight) / viewHeight, - fractionWidth = (viewWidth - hiddenWidth) / viewWidth; - const percent = fractionHeight * fractionWidth * 100 | 0; - visible.push({ - id: view.id, - x: currentWidth, - y: currentHeight, - view, - percent, - widthPercent: fractionWidth * 100 | 0 - }); - ids.add(view.id); - } - const first = visible[0], - last = visible.at(-1); - if (sortByVisibility) { - visible.sort(function (a, b) { - const pc = a.percent - b.percent; - if (Math.abs(pc) > 0.001) { - return -pc; - } - return a.id - b.id; - }); - } - return { - first, - last, - views: visible, - ids - }; -} -function normalizeWheelEventDirection(evt) { - let delta = Math.hypot(evt.deltaX, evt.deltaY); - const angle = Math.atan2(evt.deltaY, evt.deltaX); - if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) { - delta = -delta; - } - return delta; -} -function normalizeWheelEventDelta(evt) { - const deltaMode = evt.deltaMode; - let delta = normalizeWheelEventDirection(evt); - const MOUSE_PIXELS_PER_LINE = 30; - const MOUSE_LINES_PER_PAGE = 30; - if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) { - delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; - } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) { - delta /= MOUSE_LINES_PER_PAGE; - } - return delta; -} -function isValidRotation(angle) { - return Number.isInteger(angle) && angle % 90 === 0; -} -function isValidScrollMode(mode) { - return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN; -} -function isValidSpreadMode(mode) { - return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN; -} -function isPortraitOrientation(size) { - return size.width <= size.height; -} -const animationStarted = new Promise(function (resolve) { - window.requestAnimationFrame(resolve); -}); -const docStyle = document.documentElement.style; -function clamp(v, min, max) { - return Math.min(Math.max(v, min), max); -} -class ProgressBar { - #classList = null; - #disableAutoFetchTimeout = null; - #percent = 0; - #style = null; - #visible = true; - constructor(bar) { - this.#classList = bar.classList; - this.#style = bar.style; - } - get percent() { - return this.#percent; - } - set percent(val) { - this.#percent = clamp(val, 0, 100); - if (isNaN(val)) { - this.#classList.add("indeterminate"); - return; - } - this.#classList.remove("indeterminate"); - this.#style.setProperty("--progressBar-percent", `${this.#percent}%`); - } - setWidth(viewer) { - if (!viewer) { - return; - } - const container = viewer.parentNode; - const scrollbarWidth = container.offsetWidth - viewer.offsetWidth; - if (scrollbarWidth > 0) { - this.#style.setProperty("--progressBar-end-offset", `${scrollbarWidth}px`); - } - } - setDisableAutoFetch(delay = 5000) { - if (isNaN(this.#percent)) { - return; - } - if (this.#disableAutoFetchTimeout) { - clearTimeout(this.#disableAutoFetchTimeout); - } - this.show(); - this.#disableAutoFetchTimeout = setTimeout(() => { - this.#disableAutoFetchTimeout = null; - this.hide(); - }, delay); - } - hide() { - if (!this.#visible) { - return; - } - this.#visible = false; - this.#classList.add("hidden"); - } - show() { - if (this.#visible) { - return; - } - this.#visible = true; - this.#classList.remove("hidden"); - } -} -function getActiveOrFocusedElement() { - let curRoot = document; - let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); - while (curActiveOrFocused?.shadowRoot) { - curRoot = curActiveOrFocused.shadowRoot; - curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); - } - return curActiveOrFocused; -} -function apiPageLayoutToViewerModes(layout) { - let scrollMode = ScrollMode.VERTICAL, - spreadMode = SpreadMode.NONE; - switch (layout) { - case "SinglePage": - scrollMode = ScrollMode.PAGE; - break; - case "OneColumn": - break; - case "TwoPageLeft": - scrollMode = ScrollMode.PAGE; - case "TwoColumnLeft": - spreadMode = SpreadMode.ODD; - break; - case "TwoPageRight": - scrollMode = ScrollMode.PAGE; - case "TwoColumnRight": - spreadMode = SpreadMode.EVEN; - break; - } - return { - scrollMode, - spreadMode - }; -} -function apiPageModeToSidebarView(mode) { - switch (mode) { - case "UseNone": - return SidebarView.NONE; - case "UseThumbs": - return SidebarView.THUMBS; - case "UseOutlines": - return SidebarView.OUTLINE; - case "UseAttachments": - return SidebarView.ATTACHMENTS; - case "UseOC": - return SidebarView.LAYERS; - } - return SidebarView.NONE; -} -function toggleCheckedBtn(button, toggle, view = null) { - button.classList.toggle("toggled", toggle); - button.setAttribute("aria-checked", toggle); - view?.classList.toggle("hidden", !toggle); -} -function toggleExpandedBtn(button, toggle, view = null) { - button.classList.toggle("toggled", toggle); - button.setAttribute("aria-expanded", toggle); - view?.classList.toggle("hidden", !toggle); -} - - -/***/ }), - -/***/ 9226: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ViewHistory: () => (/* binding */ ViewHistory) -/* harmony export */ }); -const DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; -class ViewHistory { - constructor(fingerprint, cacheSize = DEFAULT_VIEW_HISTORY_CACHE_SIZE) { - this.fingerprint = fingerprint; - this.cacheSize = cacheSize; - this._initializedPromise = this._readFromStorage().then(databaseStr => { - const database = JSON.parse(databaseStr || "{}"); - let index = -1; - if (!Array.isArray(database.files)) { - database.files = []; - } else { - while (database.files.length >= this.cacheSize) { - database.files.shift(); - } - for (let i = 0, ii = database.files.length; i < ii; i++) { - const branch = database.files[i]; - if (branch.fingerprint === this.fingerprint) { - index = i; - break; - } - } - } - if (index === -1) { - index = database.files.push({ - fingerprint: this.fingerprint - }) - 1; - } - this.file = database.files[index]; - this.database = database; - }); - } - async _writeToStorage() { - const databaseStr = JSON.stringify(this.database); - localStorage.setItem("pdfjs.history", databaseStr); - } - async _readFromStorage() { - // 屏蔽本地存储的pageNum字段 [custom] - const history = localStorage.getItem("pdfjs.history"); - return !!history ? {...history} : {}; - } - async set(name, val) { - await this._initializedPromise; - this.file[name] = val; - return this._writeToStorage(); - } - async setMultiple(properties) { - await this._initializedPromise; - for (const name in properties) { - this.file[name] = properties[name]; - } - return this._writeToStorage(); - } - async get(name, defaultValue) { - await this._initializedPromise; - const val = this.file[name]; - return val !== undefined ? val : defaultValue; - } - async getMultiple(properties) { - await this._initializedPromise; - const values = Object.create(null); - for (const name in properties) { - const val = this.file[name]; - values[name] = val !== undefined ? val : properties[name]; - } - return values; - } -} - - -/***/ }), - -/***/ 2030: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PDFViewerApplication: () => (/* reexport safe */ _app_js__WEBPACK_IMPORTED_MODULE_3__.PDFViewerApplication), -/* harmony export */ PDFViewerApplicationConstants: () => (/* binding */ AppConstants), -/* harmony export */ PDFViewerApplicationOptions: () => (/* reexport safe */ _app_options_js__WEBPACK_IMPORTED_MODULE_1__.AppOptions) -/* harmony export */ }); -/* harmony import */ var _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7256); -/* harmony import */ var _app_options_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9840); -/* harmony import */ var _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(787); -/* harmony import */ var _app_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1621); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_app_js__WEBPACK_IMPORTED_MODULE_3__]); -_app_js__WEBPACK_IMPORTED_MODULE_3__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - - -const pdfjsVersion = "4.2.67"; -const pdfjsBuild = "49b388101"; -const AppConstants = { - LinkTarget: _pdf_link_service_js__WEBPACK_IMPORTED_MODULE_2__.LinkTarget, - RenderingStates: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.RenderingStates, - // 初始化模式设置为3 - ScrollMode: 3, - SpreadMode: _ui_utils_js__WEBPACK_IMPORTED_MODULE_0__.SpreadMode -}; -// console.log('test-init') -window.PDFViewerApplication = _app_js__WEBPACK_IMPORTED_MODULE_3__.PDFViewerApplication; -window.PDFViewerApplicationConstants = AppConstants; -window.PDFViewerApplicationOptions = _app_options_js__WEBPACK_IMPORTED_MODULE_1__.AppOptions; -function getViewerConfiguration() { - const odlCustomToolBarDomList = window.getOdlViewDom ? window.getOdlViewDom(window.odlIdDomToolbarList) : {}; - const odlCustomSiderDomList = window.getOdlViewDom ? window.getOdlViewDom(window.odlCustomSiderDomList) : {}; - - return { - appContainer: document.body, - mainContainer: document.getElementById("viewerContainer"), - viewerContainer: document.getElementById("viewer"), - toolbar: { - container: document.getElementById("toolbarViewer"), - numPages: document.getElementById("numPages"), - pageNumber: document.getElementById("pageNumber"), - scaleSelect: document.getElementById("scaleSelect"), - customScaleOption: document.getElementById("customScaleOption"), - previous: document.getElementById("previous"), - next: document.getElementById("next"), - zoomIn: document.getElementById("zoomIn"), - zoomOut: document.getElementById("zoomOut"), - viewFind: document.getElementById("viewFind"), - print: document.getElementById("print"), - editorFreeTextButton: document.getElementById("editorFreeText"), - editorFreeTextParamsToolbar: document.getElementById("editorFreeTextParamsToolbar"), - editorHighlightButton: document.getElementById("editorHighlight"), - editorHighlightParamsToolbar: document.getElementById("editorHighlightParamsToolbar"), - editorHighlightColorPicker: document.getElementById("editorHighlightColorPicker"), - editorInkButton: document.getElementById("editorInk"), - editorInkParamsToolbar: document.getElementById("editorInkParamsToolbar"), - editorStampButton: document.getElementById("editorStamp"), - editorStampParamsToolbar: document.getElementById("editorStampParamsToolbar"), - download: document.getElementById("download"), - ...odlCustomToolBarDomList, - }, - secondaryToolbar: { - toolbar: document.getElementById("secondaryToolbar"), - toggleButton: document.getElementById("secondaryToolbarToggle"), - presentationModeButton: document.getElementById("presentationMode"), - openFileButton: document.getElementById("secondaryOpenFile"), - printButton: document.getElementById("secondaryPrint"), - downloadButton: document.getElementById("secondaryDownload"), - viewBookmarkButton: document.getElementById("viewBookmark"), - firstPageButton: document.getElementById("firstPage"), - lastPageButton: document.getElementById("lastPage"), - pageRotateCwButton: document.getElementById("pageRotateCw"), - pageRotateCcwButton: document.getElementById("pageRotateCcw"), - cursorSelectToolButton: document.getElementById("cursorSelectTool"), - cursorHandToolButton: document.getElementById("cursorHandTool"), - scrollPageButton: document.getElementById("scrollPage"), - scrollVerticalButton: document.getElementById("scrollVertical"), - scrollHorizontalButton: document.getElementById("scrollHorizontal"), - scrollWrappedButton: document.getElementById("scrollWrapped"), - spreadNoneButton: document.getElementById("spreadNone"), - spreadOddButton: document.getElementById("spreadOdd"), - spreadEvenButton: document.getElementById("spreadEven"), - documentPropertiesButton: document.getElementById("documentProperties") - }, - sidebar: { - outerContainer: document.getElementById("outerContainer"), - sidebarContainer: document.getElementById("sidebarContainer"), - toggleButton: document.getElementById("sidebarToggle"), - resizer: document.getElementById("sidebarResizer"), - thumbnailButton: document.getElementById("viewThumbnail"), - outlineButton: document.getElementById("viewOutline"), - attachmentsButton: document.getElementById("viewAttachments"), - layersButton: document.getElementById("viewLayers"), - thumbnailView: document.getElementById("thumbnailView"), - outlineView: document.getElementById("outlineView"), - attachmentsView: document.getElementById("attachmentsView"), - layersView: document.getElementById("layersView"), - currentOutlineItemButton: document.getElementById("currentOutlineItem"), - ...odlCustomSiderDomList - }, - findBar: { - bar: document.getElementById("findbar"), - toggleButton: document.getElementById("viewFind"), - findField: document.getElementById("findInput"), - highlightAllCheckbox: document.getElementById("findHighlightAll"), - caseSensitiveCheckbox: document.getElementById("findMatchCase"), - matchDiacriticsCheckbox: document.getElementById("findMatchDiacritics"), - entireWordCheckbox: document.getElementById("findEntireWord"), - findMsg: document.getElementById("findMsg"), - findResultsCount: document.getElementById("findResultsCount"), - findPreviousButton: document.getElementById("findPrevious"), - findNextButton: document.getElementById("findNext") - }, - passwordOverlay: { - dialog: document.getElementById("passwordDialog"), - label: document.getElementById("passwordText"), - input: document.getElementById("password"), - submitButton: document.getElementById("passwordSubmit"), - cancelButton: document.getElementById("passwordCancel") - }, - documentProperties: { - dialog: document.getElementById("documentPropertiesDialog"), - closeButton: document.getElementById("documentPropertiesClose"), - fields: { - fileName: document.getElementById("fileNameField"), - fileSize: document.getElementById("fileSizeField"), - title: document.getElementById("titleField"), - author: document.getElementById("authorField"), - subject: document.getElementById("subjectField"), - keywords: document.getElementById("keywordsField"), - creationDate: document.getElementById("creationDateField"), - modificationDate: document.getElementById("modificationDateField"), - creator: document.getElementById("creatorField"), - producer: document.getElementById("producerField"), - version: document.getElementById("versionField"), - pageCount: document.getElementById("pageCountField"), - pageSize: document.getElementById("pageSizeField"), - linearized: document.getElementById("linearizedField") - } - }, - altTextDialog: { - dialog: document.getElementById("altTextDialog"), - optionDescription: document.getElementById("descriptionButton"), - optionDecorative: document.getElementById("decorativeButton"), - textarea: document.getElementById("descriptionTextarea"), - cancelButton: document.getElementById("altTextCancel"), - saveButton: document.getElementById("altTextSave") - }, - annotationEditorParams: { - editorFreeTextFontSize: document.getElementById("editorFreeTextFontSize"), - editorFreeTextColor: document.getElementById("editorFreeTextColor"), - editorInkColor: document.getElementById("editorInkColor"), - editorInkThickness: document.getElementById("editorInkThickness"), - editorInkOpacity: document.getElementById("editorInkOpacity"), - editorStampAddImage: document.getElementById("editorStampAddImage"), - editorFreeHighlightThickness: document.getElementById("editorFreeHighlightThickness"), - editorHighlightShowAll: document.getElementById("editorHighlightShowAll") - }, - printContainer: document.getElementById("printContainer") - }; -} -function webViewerLoad() { - const config = getViewerConfiguration(); - const event = new CustomEvent("webviewerloaded", { - bubbles: true, - cancelable: true, - detail: { - source: window - } - }); - try { - parent.document.dispatchEvent(event); - } catch (ex) { - console.error(`webviewerloaded: ${ex}`); - document.dispatchEvent(event); - } - _app_js__WEBPACK_IMPORTED_MODULE_3__.PDFViewerApplication.run(config); -} -document.blockUnblockOnload?.(true); -if (document.readyState === "interactive" || document.readyState === "complete") { - webViewerLoad(); -} else { - document.addEventListener("DOMContentLoaded", webViewerLoad, true); -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }), - -/***/ 2973: -/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try { -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ XfaLayerBuilder: () => (/* binding */ XfaLayerBuilder) -/* harmony export */ }); -/* harmony import */ var pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2603); -var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__]); -pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0]; - -class XfaLayerBuilder { - constructor({ - pdfPage, - annotationStorage = null, - linkService, - xfaHtml = null - }) { - this.pdfPage = pdfPage; - this.annotationStorage = annotationStorage; - this.linkService = linkService; - this.xfaHtml = xfaHtml; - this.div = null; - this._cancelled = false; - } - async render(viewport, intent = "display") { - if (intent === "print") { - const parameters = { - viewport: viewport.clone({ - dontFlip: true - }), - div: this.div, - xfaHtml: this.xfaHtml, - annotationStorage: this.annotationStorage, - linkService: this.linkService, - intent - }; - this.div = document.createElement("div"); - parameters.div = this.div; - return pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.XfaLayer.render(parameters); - } - const xfaHtml = await this.pdfPage.getXfa(); - if (this._cancelled || !xfaHtml) { - return { - textDivs: [] - }; - } - const parameters = { - viewport: viewport.clone({ - dontFlip: true - }), - div: this.div, - xfaHtml, - annotationStorage: this.annotationStorage, - linkService: this.linkService, - intent - }; - if (this.div) { - return pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.XfaLayer.update(parameters); - } - this.div = document.createElement("div"); - parameters.div = this.div; - return pdfjs_lib__WEBPACK_IMPORTED_MODULE_0__.XfaLayer.render(parameters); - } - cancel() { - this._cancelled = true; - } - hide() { - if (!this.div) { - return; - } - this.div.hidden = true; - } -} - -__webpack_async_result__(); -} catch(e) { __webpack_async_result__(e); } }); - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/async module */ -/******/ (() => { -/******/ var webpackQueues = typeof Symbol === "function" ? Symbol("webpack queues") : "__webpack_queues__"; -/******/ var webpackExports = typeof Symbol === "function" ? Symbol("webpack exports") : "__webpack_exports__"; -/******/ var webpackError = typeof Symbol === "function" ? Symbol("webpack error") : "__webpack_error__"; -/******/ var resolveQueue = (queue) => { -/******/ if(queue && queue.d < 1) { -/******/ queue.d = 1; -/******/ queue.forEach((fn) => (fn.r--)); -/******/ queue.forEach((fn) => (fn.r-- ? fn.r++ : fn())); -/******/ } -/******/ } -/******/ var wrapDeps = (deps) => (deps.map((dep) => { -/******/ if(dep !== null && typeof dep === "object") { -/******/ if(dep[webpackQueues]) return dep; -/******/ if(dep.then) { -/******/ var queue = []; -/******/ queue.d = 0; -/******/ dep.then((r) => { -/******/ obj[webpackExports] = r; -/******/ resolveQueue(queue); -/******/ }, (e) => { -/******/ obj[webpackError] = e; -/******/ resolveQueue(queue); -/******/ }); -/******/ var obj = {}; -/******/ obj[webpackQueues] = (fn) => (fn(queue)); -/******/ return obj; -/******/ } -/******/ } -/******/ var ret = {}; -/******/ ret[webpackQueues] = x => {}; -/******/ ret[webpackExports] = dep; -/******/ return ret; -/******/ })); -/******/ __webpack_require__.a = (module, body, hasAwait) => { -/******/ var queue; -/******/ hasAwait && ((queue = []).d = -1); -/******/ var depQueues = new Set(); -/******/ var exports = module.exports; -/******/ var currentDeps; -/******/ var outerResolve; -/******/ var reject; -/******/ var promise = new Promise((resolve, rej) => { -/******/ reject = rej; -/******/ outerResolve = resolve; -/******/ }); -/******/ promise[webpackExports] = exports; -/******/ promise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise["catch"](x => {})); -/******/ module.exports = promise; -/******/ body((deps) => { -/******/ currentDeps = wrapDeps(deps); -/******/ var fn; -/******/ var getResult = () => (currentDeps.map((d) => { -/******/ if(d[webpackError]) throw d[webpackError]; -/******/ return d[webpackExports]; -/******/ })) -/******/ var promise = new Promise((resolve) => { -/******/ fn = () => (resolve(getResult)); -/******/ fn.r = 0; -/******/ var fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn)))); -/******/ currentDeps.map((dep) => (dep[webpackQueues](fnQueue))); -/******/ }); -/******/ return fn.r ? promise : getResult(); -/******/ }, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue))); -/******/ queue && queue.d < 0 && (queue.d = 0); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module used 'module' so it can't be inlined -/******/ var __webpack_exports__ = __webpack_require__(2030); -/******/ __webpack_exports__ = await __webpack_exports__; -/******/ var __webpack_exports__PDFViewerApplication = __webpack_exports__.PDFViewerApplication; -/******/ var __webpack_exports__PDFViewerApplicationConstants = __webpack_exports__.PDFViewerApplicationConstants; -/******/ var __webpack_exports__PDFViewerApplicationOptions = __webpack_exports__.PDFViewerApplicationOptions; -/******/ export { __webpack_exports__PDFViewerApplication as PDFViewerApplication, __webpack_exports__PDFViewerApplicationConstants as PDFViewerApplicationConstants, __webpack_exports__PDFViewerApplicationOptions as PDFViewerApplicationOptions }; -/******/ - -//# sourceMappingURL=viewer.mjs.map diff --git a/projects/web/src/App.css b/projects/web/src/App.css deleted file mode 100644 index 3d97481ad..000000000 --- a/projects/web/src/App.css +++ /dev/null @@ -1,41 +0,0 @@ -body,html, #root { - width: 100%; - height: 100vh; - background: white; -} - -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: filter 300ms; -} -.logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); -} -.logo.react:hover { - filter: drop-shadow(0 0 2em #61dafbaa); -} - -@keyframes logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -@media (prefers-reduced-motion: no-preference) { - a:nth-of-type(2) .logo { - animation: logo-spin infinite 20s linear; - } -} - -.card { - padding: 2em; -} - -.read-the-docs { - color: #888; -} diff --git a/projects/web/src/App.tsx b/projects/web/src/App.tsx deleted file mode 100644 index 4cbbb0dfe..000000000 --- a/projects/web/src/App.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Home } from "./pages/home"; -import "./App.css"; -import QueryProvider from "./context/query-provider"; - -function App() { - return ( - - - - ); -} - -export default App; diff --git a/projects/web/src/api/extract.ts b/projects/web/src/api/extract.ts deleted file mode 100644 index 7e1e30912..000000000 --- a/projects/web/src/api/extract.ts +++ /dev/null @@ -1,196 +0,0 @@ -import axios from "./http"; -import { message } from "antd"; -import { ExtractTaskType } from "@/types/extract-task-type"; -import { getLocale } from "@/utils/locale"; - -export interface PdfExtractTaskReq { - fileKey: string; - fileName: string; - taskType: ExtractTaskType; - isOcr?: boolean; -} - -export interface SubmitRes { - filename: string; - url: string; - id: string; -} - -export const handleErrorMsg = (res: any) => { - const isCN = getLocale() === "zh-CN"; - const msg = isCN ? res?.data?.error?.msg : res?.data?.error?.msgZh; - message.error(msg); - return { data: null, error: res.data?.error }; -}; - -export const postExtractTask = ( - params: PdfExtractTaskReq -): Promise => { - return axios - .post(`/api/v2/extract/task/submit`, params) - .then((res) => { - if (!res?.data?.error) { - return res.data.data; - } else { - handleErrorMsg(res); - return null; - } - }); -}; - -export const postReUploadExtractTask = ( - id: string -): Promise => { - return axios - .put(`/api/v2/extract/task/submit`, { - id: Number(id), - }) - .then((res) => { - if (!res?.data?.error) { - return res.data.data; - } else { - handleErrorMsg(res); - return null; - } - }); -}; - -export interface TaskIdProgress { - state: "running" | "done" | "pending" | "failed" | "unknown"; - markdownUrl: string[] | []; - fullMdLink: string; - content: string[] | []; - url: string; - fileName: string; - thumb: string; - type: ExtractTaskType | "unknown"; - isTemplate?: boolean; - fileInfo?: { - pages: number; - width: number; - height: number; - }; -} - -export const getExtractTaskIdProgress = async ( - jobID: string | number -): Promise => { - return axios - .get(`/api/v2/extract/task/progress?id=${jobID}`) - .then((res) => { - if (res?.data?.error) { - handleErrorMsg(res); - } - return res.data.data; - }); -}; - -export interface TaskIdResItem { - queues: number; - rank: number; - id?: number; - url: string; - fileName?: string; - fullMdLink?: string; - type: ExtractTaskType | "unknown"; - state: "running" | "done" | "pending" | "failed" | "unknown"; - markdownUrl: string[]; - file_key?: string; -} - -export type TaskIdRes = TaskIdResItem[]; - -// Get ongoing tasks -export const getPdfExtractQueue = async (): Promise => { - return axios.get(`/api/v2/extract/taskQueue`).then((res) => { - if (!res?.data?.error) { - return res.data.data; - } else { - handleErrorMsg(res); - return null; - } - }); -}; - -interface TaskHistoryResponse { - list: TaskItem[]; - total: number; - pageNo: number; - pageSize: number; -} - -interface TaskItem { - fileName: string; - id: string; - type: string; - thumb: string; - state: string; // 提取状态 -} - -export const getExtractorHistory = ({ - pageNo, - pageSize, -}: { - pageNo?: number; - pageSize?: number; -}): Promise => { - return axios - .get( - `/api/v2/extract/list?pageNo=${pageNo || 1}&pageSize=${pageSize || 10}` - ) - .then((res) => { - if (!res?.data?.error) { - return res.data.data; - } else { - handleErrorMsg(res); - return null; - } - }); -}; - -export const deleteExtractJob = (jobId: string) => { - return axios.delete(`/api/v2/extract/task/${jobId}`); -}; - -interface UploadResponse { - file_key: string; - url: string; -} - -export const localUpload = (file: File) => { - const formData = new FormData(); - formData.append("file", file); - - return axios.post("/api/v2/analysis/upload_pdf", formData, { - headers: { - "Content-Type": "multipart/form-data", - }, - }); -}; - -export interface UpdateMarkdownRequest { - file_key: string; - data: { - [pageNumber: string]: string; - }; -} - -export interface UpdateMarkdownResponse { - success: boolean; - message?: string; -} - -export const updateMarkdownContent = async ( - params: UpdateMarkdownRequest -): Promise => { - return axios - .put("/api/v2/extract/markdown", params) - .then((res) => { - if (!res?.data?.error) { - return res.data.data; - } else { - handleErrorMsg(res); - return null; - } - }); -}; diff --git a/projects/web/src/api/http.ts b/projects/web/src/api/http.ts deleted file mode 100644 index a71f97467..000000000 --- a/projects/web/src/api/http.ts +++ /dev/null @@ -1,92 +0,0 @@ -import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios"; -import Cookies from "js-cookie"; -import { message } from "antd"; - -interface ApiResponse { - code: number; - msg: string; - data: T; -} - -interface ErrorResponse { - code: number; - msg: string; - msgZh: string; -} - -export interface ProcessedResponse { - data: T; - error: null | Pick; -} - -interface CustomAxiosInstance - extends Omit { - get>>( - url: string, - config?: AxiosRequestConfig - ): Promise; - post>>( - url: string, - data?: unknown, - config?: AxiosRequestConfig - ): Promise; - put>>( - url: string, - data?: unknown, - config?: AxiosRequestConfig - ): Promise; - delete>>( - url: string, - config?: AxiosRequestConfig - ): Promise; -} - -const instance: CustomAxiosInstance = axios.create({ - baseURL: "", - timeout: 10000, - headers: { - "Content-Type": "application/json", - }, -}); - -const processResponse = ( - response: AxiosResponse> -): ProcessedResponse => { - if (response.data.code === 200) { - return { - data: response.data.data, - error: null, - }; - } else { - return { - data: response.data.data || ({} as T), - error: { - msg: response.data.msg, - msgZh: (response.data as unknown as ErrorResponse).msgZh, - }, - }; - } -}; - -instance.interceptors.request.use( - (config) => { - return config; - }, - (error) => { - return Promise.reject(error); - } -); - -instance.interceptors.response.use( - ( - response: AxiosResponse> - ): AxiosResponse> => { - return { ...response, data: processResponse(response) }; - }, - (error) => { - message.error(error?.response?.data?.msg || "Error"); - return Promise.reject(error); - } -); - -export default instance; diff --git a/projects/web/src/api/oss.ts b/projects/web/src/api/oss.ts deleted file mode 100644 index b2d15b0b4..000000000 --- a/projects/web/src/api/oss.ts +++ /dev/null @@ -1,95 +0,0 @@ -import http from "./http"; -import { UploadFile } from "antd/es/upload/interface"; -import { stringify } from "qs"; -import { localUpload } from "./extract"; - -interface IUploadRes { - downloadUrl: string; - headers: any; - key: string; - previewUrl: string; - putUrl: string; -} - -/** - * 获取上传链接的接口 - * openRead 是否返回公开链接 - */ -export const uploadUrl = ( - fileName: string, - openRead: boolean, - fileType = "" -): Promise => - http - .post( - `/datasets/api/v2/file?${stringify({ fileName, openRead, fileType })}` - ) - .then((res) => res.data.data); - -export interface IFile extends UploadFile { - url?: string; - thumbUrl?: string; - objectKey?: string; -} - -// 获取 阿里云上传链接 -export const uploadToOss = async ( - file: IFile, - openRead: boolean, - fileType = "" -): Promise => { - const { downloadUrl, previewUrl, key, putUrl, headers } = await uploadUrl( - file.name, - openRead, - fileType - ); - file.url = downloadUrl; - file.thumbUrl = previewUrl; - file.objectKey = key; - // 上传文件 - await http.put(putUrl, file, { headers: { ...headers } }); - return { - downloadUrl, - objectKey: key, - thumbUrl: previewUrl, - url: downloadUrl, - }; -}; - -interface IUploadOptions { - openRead: boolean; - fileType: string; - uploadType?: "local" | "oss"; -} - -// 可覆盖 antd customUpload 的上传逻辑 -export const customUploadToOss = async ( - options: any, - otherUploadOptions: IUploadOptions -) => { - const { openRead, fileType, uploadType = "local" } = otherUploadOptions; - const uploadFile = async () => { - switch (uploadType) { - case "oss": - return await uploadToOss(options.file, openRead, fileType) - .then((res) => { - options?.onSuccess({ ...res, ...options.file }); - return res; - }) - .catch((error) => { - options?.onError(error); - return {}; - }); - case "local": - return await localUpload(options.file); - default: - throw new Error(`Unsupported upload type: ${uploadType}`); - } - }; - try { - const res = await uploadFile(); - options?.onSuccess({ ...res, ...options.file }); - } catch (error) { - options?.onError(error); - } -}; diff --git a/projects/web/src/assets/imgs/online.experience/EmbedOutlined-active.svg b/projects/web/src/assets/imgs/online.experience/EmbedOutlined-active.svg deleted file mode 100644 index 39faacc59..000000000 --- a/projects/web/src/assets/imgs/online.experience/EmbedOutlined-active.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/projects/web/src/assets/imgs/online.experience/EmbedOutlined.svg b/projects/web/src/assets/imgs/online.experience/EmbedOutlined.svg deleted file mode 100644 index 6419c6366..000000000 --- a/projects/web/src/assets/imgs/online.experience/EmbedOutlined.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/projects/web/src/assets/imgs/online.experience/GradientGitHub.svg b/projects/web/src/assets/imgs/online.experience/GradientGitHub.svg deleted file mode 100644 index 0d52a1881..000000000 --- a/projects/web/src/assets/imgs/online.experience/GradientGitHub.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/projects/web/src/assets/imgs/online.experience/PdfOutlined-active.svg b/projects/web/src/assets/imgs/online.experience/PdfOutlined-active.svg deleted file mode 100644 index 5502e4e08..000000000 --- a/projects/web/src/assets/imgs/online.experience/PdfOutlined-active.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/projects/web/src/assets/imgs/online.experience/PdfOutlined.svg b/projects/web/src/assets/imgs/online.experience/PdfOutlined.svg deleted file mode 100644 index 1a91c03dc..000000000 --- a/projects/web/src/assets/imgs/online.experience/PdfOutlined.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/projects/web/src/assets/imgs/online.experience/UploadingOutlined.svg b/projects/web/src/assets/imgs/online.experience/UploadingOutlined.svg deleted file mode 100644 index 16dfdee7f..000000000 --- a/projects/web/src/assets/imgs/online.experience/UploadingOutlined.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/projects/web/src/assets/imgs/online.experience/file-upload-bg.svg b/projects/web/src/assets/imgs/online.experience/file-upload-bg.svg deleted file mode 100644 index f27c19251..000000000 --- a/projects/web/src/assets/imgs/online.experience/file-upload-bg.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/comingSoonLayer.svg b/projects/web/src/assets/pdf/comingSoonLayer.svg deleted file mode 100644 index 52fd4b8d0..000000000 --- a/projects/web/src/assets/pdf/comingSoonLayer.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/exitFullScreen.svg b/projects/web/src/assets/pdf/exitFullScreen.svg deleted file mode 100644 index ddeaa684f..000000000 --- a/projects/web/src/assets/pdf/exitFullScreen.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/projects/web/src/assets/pdf/extractor-formula.svg b/projects/web/src/assets/pdf/extractor-formula.svg deleted file mode 100644 index b3fb750e2..000000000 --- a/projects/web/src/assets/pdf/extractor-formula.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/extractor-hidden-layer.svg b/projects/web/src/assets/pdf/extractor-hidden-layer.svg deleted file mode 100644 index cb6af13c4..000000000 --- a/projects/web/src/assets/pdf/extractor-hidden-layer.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/extractor-pdf.svg b/projects/web/src/assets/pdf/extractor-pdf.svg deleted file mode 100644 index b2f5f35f0..000000000 --- a/projects/web/src/assets/pdf/extractor-pdf.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/extractor-queue.svg b/projects/web/src/assets/pdf/extractor-queue.svg deleted file mode 100644 index 2a4835dd3..000000000 --- a/projects/web/src/assets/pdf/extractor-queue.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/extractor-show-layer.svg b/projects/web/src/assets/pdf/extractor-show-layer.svg deleted file mode 100644 index fc4582a96..000000000 --- a/projects/web/src/assets/pdf/extractor-show-layer.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/extractor-table.svg b/projects/web/src/assets/pdf/extractor-table.svg deleted file mode 100644 index 010de1773..000000000 --- a/projects/web/src/assets/pdf/extractor-table.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/fullScreen.svg b/projects/web/src/assets/pdf/fullScreen.svg deleted file mode 100644 index 24f4a8db9..000000000 --- a/projects/web/src/assets/pdf/fullScreen.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/projects/web/src/assets/pdf/github.svg b/projects/web/src/assets/pdf/github.svg deleted file mode 100644 index 10a6144e7..000000000 --- a/projects/web/src/assets/pdf/github.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/projects/web/src/assets/pdf/guideTools.svg b/projects/web/src/assets/pdf/guideTools.svg deleted file mode 100644 index e6a294383..000000000 --- a/projects/web/src/assets/pdf/guideTools.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/label-llm.svg b/projects/web/src/assets/pdf/label-llm.svg deleted file mode 100644 index 3e6aaf3c7..000000000 --- a/projects/web/src/assets/pdf/label-llm.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/labelU.svg b/projects/web/src/assets/pdf/labelU.svg deleted file mode 100644 index 75c1e9cbc..000000000 --- a/projects/web/src/assets/pdf/labelU.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/lang-change.svg b/projects/web/src/assets/pdf/lang-change.svg deleted file mode 100644 index dc0814238..000000000 --- a/projects/web/src/assets/pdf/lang-change.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/projects/web/src/assets/pdf/odl-logo.svg b/projects/web/src/assets/pdf/odl-logo.svg deleted file mode 100644 index e81c8bfd6..000000000 --- a/projects/web/src/assets/pdf/odl-logo.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/pdf-upload-item-1.svg b/projects/web/src/assets/pdf/pdf-upload-item-1.svg deleted file mode 100644 index f03c27e4c..000000000 --- a/projects/web/src/assets/pdf/pdf-upload-item-1.svg +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/pdf-upload-item-2.svg b/projects/web/src/assets/pdf/pdf-upload-item-2.svg deleted file mode 100644 index 16076f479..000000000 --- a/projects/web/src/assets/pdf/pdf-upload-item-2.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/pdf-upload-item-3.svg b/projects/web/src/assets/pdf/pdf-upload-item-3.svg deleted file mode 100644 index 84874476f..000000000 --- a/projects/web/src/assets/pdf/pdf-upload-item-3.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/web/src/assets/pdf/pdf-upload.png b/projects/web/src/assets/pdf/pdf-upload.png deleted file mode 100644 index 1aced014c..000000000 Binary files a/projects/web/src/assets/pdf/pdf-upload.png and /dev/null differ diff --git a/projects/web/src/assets/react.svg b/projects/web/src/assets/react.svg deleted file mode 100644 index 6c87de9bb..000000000 --- a/projects/web/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/projects/web/src/assets/svg/empty.svg b/projects/web/src/assets/svg/empty.svg deleted file mode 100644 index 2407ee65b..000000000 --- a/projects/web/src/assets/svg/empty.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/projects/web/src/assets/svg/logo.svg b/projects/web/src/assets/svg/logo.svg deleted file mode 100644 index c98fd8622..000000000 --- a/projects/web/src/assets/svg/logo.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/projects/web/src/components/SaveStatus.tsx b/projects/web/src/components/SaveStatus.tsx deleted file mode 100644 index 75c8a3ee0..000000000 --- a/projects/web/src/components/SaveStatus.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import React, { - useState, - useEffect, - useImperativeHandle, - forwardRef, -} from "react"; -import cls from "classnames"; - -interface SaveStatusProps { - className?: string; -} - -export interface SaveStatusRef { - triggerSave: () => void; - reset: () => void; // 新增的重置方法 -} - -const SaveStatus = forwardRef( - ({ className }, ref) => { - const [lastSaveTime, setLastSaveTime] = useState(null); - const [showSaved, setShowSaved] = useState(false); - const [timeSinceLastSave, setTimeSinceLastSave] = useState(0); - - useImperativeHandle(ref, () => ({ - triggerSave: () => { - setLastSaveTime(new Date()); - setShowSaved(true); - }, - reset: () => { - // 新增的重置方法 - setLastSaveTime(null); - setShowSaved(false); - setTimeSinceLastSave(0); - }, - })); - - useEffect(() => { - if (showSaved) { - const timer = setTimeout(() => { - setShowSaved(false); - }, 10000); - return () => clearTimeout(timer); - } - }, [showSaved]); - - useEffect(() => { - const updateTimeSinceLastSave = () => { - if (lastSaveTime) { - const now = new Date(); - const diffInMinutes = Math.floor( - (now.getTime() - lastSaveTime.getTime()) / 60000 - ); - if (diffInMinutes > 0) { - setTimeSinceLastSave(diffInMinutes); - } - } - }; - - const timer = setInterval(updateTimeSinceLastSave, 60000); - updateTimeSinceLastSave(); // 立即更新一次 - return () => clearInterval(timer); - }, [lastSaveTime]); - - return ( -
    - {showSaved && ( - - 已保存 - - )} - {timeSinceLastSave > 0 && !showSaved && lastSaveTime && ( - - 最近修改:{timeSinceLastSave} 分钟前 - - )} - {(showSaved || - (timeSinceLastSave > 0 && !showSaved && lastSaveTime)) && ( - - )} -
    - ); - } -); - -export default SaveStatus; diff --git a/projects/web/src/components/code-mirror/index.module.scss b/projects/web/src/components/code-mirror/index.module.scss deleted file mode 100644 index cf19f6e24..000000000 --- a/projects/web/src/components/code-mirror/index.module.scss +++ /dev/null @@ -1,11 +0,0 @@ -.code-mirror { - :global { - .ͼ1 .cm-scroller { - overflow-x: visible !important; - border: none !important; - } - .cm-editor.cm-focused { - outline: none !important; - } - } -} \ No newline at end of file diff --git a/projects/web/src/components/code-mirror/index.tsx b/projects/web/src/components/code-mirror/index.tsx deleted file mode 100644 index e911a5399..000000000 --- a/projects/web/src/components/code-mirror/index.tsx +++ /dev/null @@ -1,62 +0,0 @@ -import React, { PropsWithChildren } from "react"; -import ReactCodeMirror, { EditorView, Extension } from "@uiw/react-codemirror"; -import { loadLanguage } from "@uiw/codemirror-extensions-langs"; -import cls from "classnames"; -import style from "./index.module.scss"; -// import { scrollPastEnd } from "@codemirror/view"; - -interface IProps { - className?: string; - editable?: boolean; - language?: "json" | "markdown" | "yaml"; - value: string; - onChange?: (value: string) => void; - lineWrapping?: boolean; - onBeforeChange?: (editor: any, data: any, value: any) => void; -} - -const CodeMirror: React.FC> = ({ - language = "markdown", - value, - className, - onChange, - lineWrapping, - onBeforeChange, - editable, -}) => { - // const noScrollPastEnd = scrollPastEnd(); - const extensions = [ - { - ext: EditorView.lineWrapping, - on: lineWrapping, - }, - { - ext: loadLanguage(language), - on: true, - }, - ] - .map((i) => (i.on ? i.ext : null)) - .filter(Boolean) as Extension[]; - - return ( - { - onChange?.(v); - }} - /> - ); -}; -export default React.memo(CodeMirror); diff --git a/projects/web/src/components/error-boundary.tsx b/projects/web/src/components/error-boundary.tsx deleted file mode 100644 index e4b598f7f..000000000 --- a/projects/web/src/components/error-boundary.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { Component, ErrorInfo, ReactNode } from "react"; - -interface Props { - children: ReactNode; - fallback?: ReactNode; -} - -interface State { - hasError: boolean; -} - -class ErrorBoundary extends Component { - constructor(props: Props) { - super(props); - this.state = { hasError: false }; - } - - static getDerivedStateFromError(_: Error): State { - return { hasError: true }; - } - - componentDidCatch(error: Error, errorInfo: ErrorInfo) { - console.error("ErrorBoundary caught an error:", error, errorInfo); - } - - render() { - if (this.state.hasError) { - return ( - this.props.children || ( -

    - Error -

    - ) - ); - } - - return this.props.children; - } -} - -export default ErrorBoundary; diff --git a/projects/web/src/components/icon-font.tsx b/projects/web/src/components/icon-font.tsx deleted file mode 100644 index ab41235bf..000000000 --- a/projects/web/src/components/icon-font.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import { createFromIconfontCN } from "@ant-design/icons"; - -const IconFont = createFromIconfontCN({ - scriptUrl: `/iconfont.js`, -}); - -export default IconFont; diff --git a/projects/web/src/components/loading-animation/index.tsx b/projects/web/src/components/loading-animation/index.tsx deleted file mode 100644 index 8331ee523..000000000 --- a/projects/web/src/components/loading-animation/index.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import styles from './loadingAnimation.module.scss'; - -interface ILoadingAnimationProps { - className?: string; -} - -const LoadingAnimation = (props: ILoadingAnimationProps) => { - const { className } = props; - return
    ; -}; - -export default LoadingAnimation; diff --git a/projects/web/src/components/loading-animation/loadingAnimation.module.scss b/projects/web/src/components/loading-animation/loadingAnimation.module.scss deleted file mode 100644 index 1ad6a664d..000000000 --- a/projects/web/src/components/loading-animation/loadingAnimation.module.scss +++ /dev/null @@ -1,29 +0,0 @@ -.loader { - width: 14px; - height: 14px; - border-radius: 50%; - display: inline-block; - position: relative; - /* stylelint-disable-next-line alpha-value-notation */ - background: linear-gradient(0deg, rgba(13,83,222,1) 0%, rgba(43,105,226,1) 30%, rgba(13, 20, 222, 0) 100%); - box-sizing: border-box; - animation: rotation 1.5s linear infinite; -} - -.loader::after { - content: ''; - box-sizing: border-box; - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - width: 10px; - height: 10px; - border-radius: 50%; - background: #fff; -} - -@keyframes rotation { - 0% { transform: rotate(0deg) } - 100% { transform: rotate(360deg)} -} diff --git a/projects/web/src/components/text-tooltip/index.module.scss b/projects/web/src/components/text-tooltip/index.module.scss deleted file mode 100644 index 75c813476..000000000 --- a/projects/web/src/components/text-tooltip/index.module.scss +++ /dev/null @@ -1,12 +0,0 @@ -.textTooltip { - :global { - .ant-tooltip-arrow { - // display: none !important; - } - .ant-tooltip-inner, .ant-tooltip-content, .ant-tooltip-inner-content { - padding: 0px !important; - border-radius: 4px !important; - overflow: hidden; - } - } -} diff --git a/projects/web/src/components/text-tooltip/index.tsx b/projects/web/src/components/text-tooltip/index.tsx deleted file mode 100644 index 5505732bc..000000000 --- a/projects/web/src/components/text-tooltip/index.tsx +++ /dev/null @@ -1,72 +0,0 @@ -import { Popover, Tooltip } from 'antd'; -import React, { useRef, useState } from 'react'; -import styles from './index.module.scss'; - -import { RefObject } from 'react'; -import { useIsomorphicLayoutEffect, useMemoizedFn } from 'ahooks'; - -export function useResizeEffect(effect: (target: T) => void, targetRef: RefObject) { - const fn = useMemoizedFn(effect); - useIsomorphicLayoutEffect(() => { - const target = targetRef.current; - if (!target) return; - if (window.ResizeObserver) { - let animationFrame: number; - const observer = new ResizeObserver(() => { - animationFrame = window.requestAnimationFrame(() => fn(target)); - }); - observer.observe(target); - return () => { - window.cancelAnimationFrame(animationFrame); - observer.disconnect(); - }; - } else { - fn(target); - } - }, [targetRef]); -} - -interface ITextTooltip { - style?: React.CSSProperties; - str: string; - suffix?: React.ReactNode | string; - trigger?: 'hover' | 'click'; - handleClick?: () => void; -} - -export const TextTooltip = (props: ITextTooltip) => { - const { style = {}, str, trigger = 'click', suffix, handleClick } = props; - const rootRef = useRef(null); - const tooltipRef = useRef(null); - const [clickable, setClickable] = useState(false); - function calcEllipsised() { - // 没有被截断 - if (tooltipRef!?.current!?.scrollWidth > tooltipRef!?.current!?.clientWidth) { - setClickable(true); - } else { - setClickable(false); - } - } - useResizeEffect(calcEllipsised, rootRef); - - return ( - {str}} - trigger={clickable ? trigger : ('' as 'click')} - overlayClassName={styles.textTooltip} - style={{ width: '100%' }} - zIndex={999999} - placement="right" - align={{ - offset: [72, 0] - }} - > -
    -
    - handleClick?.()}>{str} -
    - {suffix} -
    -
    - ); -}; diff --git a/projects/web/src/components/upload/index.tsx b/projects/web/src/components/upload/index.tsx deleted file mode 100644 index c287c6e78..000000000 --- a/projects/web/src/components/upload/index.tsx +++ /dev/null @@ -1,34 +0,0 @@ -// cl 2022/4/21 18:22 -import { customUploadToOss } from "@/api/oss"; -import { Upload as AntdUpload } from "antd"; -import { DraggerProps, UploadProps } from "antd/es/upload"; -import React from "react"; - -interface IProps extends UploadProps, DraggerProps { - isDragger?: boolean; - openRead?: boolean; - taskType?: string; - changeOption?: (option: any) => any; -} - -const Upload: React.FC = (props) => { - const { isDragger, openRead, taskType, changeOption, ...rest } = props; - const Component = isDragger ? AntdUpload.Dragger : AntdUpload; - - return ( - - customUploadToOss(changeOption ? changeOption?.(options) : options, { - openRead: openRead || false, - fileType: taskType || "pdf", - uploadType: "local", - }) - } - > - {props.children} - - ); -}; - -export default Upload; diff --git a/projects/web/src/constant/event.ts b/projects/web/src/constant/event.ts deleted file mode 100644 index d4d3596e7..000000000 --- a/projects/web/src/constant/event.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const PDF_DRIVE_MD = "pdf-drive-md"; -export const MD_DRIVE_PDF = "pdf-drive-md"; - -export const ADD_TASK_LIST = "add-task-list"; - -export const UPDATE_TASK_LIST = "update-task-list"; diff --git a/projects/web/src/constant/index.tsx b/projects/web/src/constant/index.tsx deleted file mode 100644 index 94294addd..000000000 --- a/projects/web/src/constant/index.tsx +++ /dev/null @@ -1,4 +0,0 @@ -export enum Language { - ZH_CN = "zh-CN", - EN_US = "en-US", -} diff --git a/projects/web/src/constant/pdf-color-picker.ts b/projects/web/src/constant/pdf-color-picker.ts deleted file mode 100644 index ddcdd7bf1..000000000 --- a/projects/web/src/constant/pdf-color-picker.ts +++ /dev/null @@ -1,38 +0,0 @@ -export const PDF_COLOR_PICKER = { - title: { - line: 'rgba(121, 124, 255, 1)', - fill: 'rgba(121, 124, 255, 0.4)' - }, - text: { - line: 'rgba(230, 122, 171, 1)', - fill: 'rgba(230, 122, 171, 0.4)' - }, - interline_equation: { - line: 'rgba(240, 240, 124, 1)', - fill: 'rgba(240, 240, 124, 0.4)' - }, - discarded: { - line: 'rgba(164,164,164,1)', - fill: 'rgba(164,164,164,0.4)' - }, - image: { - line: 'rgba(149, 226, 115, 1)', - fill: 'rgba(149, 226, 115, 0.4)' - }, - table: { - line: 'rgba(230, 113, 230, 1)', - fill: 'rgba(230, 113, 230, 0.4)' - }, - inline_equation: { - line: 'rgba(150, 232, 172, 1)', - fill: 'rgba(150, 232, 172, 0.4)' - } - }; - - export const DEFAULT_COLOR_SECTION = { - line: 'rgba(166, 113, 230, 1)', - fill: 'rgba(166, 113, 230, 0.4)' - }; - - export const PDF_TEMPLATE_URL_KEY = 't'; - \ No newline at end of file diff --git a/projects/web/src/constant/route.ts b/projects/web/src/constant/route.ts deleted file mode 100644 index eba3e0539..000000000 --- a/projects/web/src/constant/route.ts +++ /dev/null @@ -1,8 +0,0 @@ -export enum Path { - Home = "/", - Settings = "/settings", -} - -export enum SlotID { - AppBody = "app-body", -} diff --git a/projects/web/src/constant/storage.ts b/projects/web/src/constant/storage.ts deleted file mode 100644 index eb179c95c..000000000 --- a/projects/web/src/constant/storage.ts +++ /dev/null @@ -1 +0,0 @@ -export const LOCALE_STORAGE_KEY = "locale-minerU" \ No newline at end of file diff --git a/projects/web/src/context/language-provider.tsx b/projects/web/src/context/language-provider.tsx deleted file mode 100644 index 45da0e443..000000000 --- a/projects/web/src/context/language-provider.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from "react"; -import { IntlProvider } from "react-intl"; -import { useLanguageStore } from "@/store/languageStore"; -import contentEn from "@/locale/en.json"; -import contentZh from "@/locale/zh.json"; -import sideEn from "@/locale/side/en.ts"; -import sideZh from "@/locale/side/zh.ts"; -import commonEn from "@/locale/common/en.json"; -import commonZh from "@/locale/common/zh.json"; -import { Language } from "@/constant"; - -const messages = { - [Language.EN_US]: { - ...contentEn, - ...sideEn, - ...commonEn, - }, - [Language.ZH_CN]: { - ...contentZh, - ...sideZh, - ...commonZh, - }, -}; - -export const LanguageProvider: React.FC<{ children: React.ReactNode }> = ({ - children, -}) => { - const { language } = useLanguageStore(); - - return ( - } - locale={language} - defaultLocale="en" - > - {children} - - ); -}; diff --git a/projects/web/src/context/query-provider.tsx b/projects/web/src/context/query-provider.tsx deleted file mode 100644 index f49680ea3..000000000 --- a/projects/web/src/context/query-provider.tsx +++ /dev/null @@ -1,29 +0,0 @@ -// QueryProvider.tsx -import React from "react"; -import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; - -const defaultQueryClientConfig = { - defaultOptions: { - queries: { - retry: false, - refetchOnWindowFocus: false, - staleTime: 5 * 60 * 1000, // 5 minutes - }, - }, -}; - -interface QueryProviderProps { - children: React.ReactNode; -} - -const QueryProvider: React.FC = ({ children }) => { - const queryClient = new QueryClient({ - ...defaultQueryClientConfig, - }); - - return ( - {children} - ); -}; - -export default QueryProvider; diff --git a/projects/web/src/index.css b/projects/web/src/index.css deleted file mode 100644 index d02814cc5..000000000 --- a/projects/web/src/index.css +++ /dev/null @@ -1,74 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - - -:root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(0, 0, 0, 0.87); - background-color: white; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} - diff --git a/projects/web/src/locale/common/en.json b/projects/web/src/locale/common/en.json deleted file mode 100644 index e9d5d11de..000000000 --- a/projects/web/src/locale/common/en.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "common.cancel": "Cancel", - "common.confirm": "Confirm", - "common.retry": "retry" -} \ No newline at end of file diff --git a/projects/web/src/locale/common/zh.json b/projects/web/src/locale/common/zh.json deleted file mode 100644 index 65cf5ec8f..000000000 --- a/projects/web/src/locale/common/zh.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "common.cancel": "取消", - "common.confirm": "确定", - "common.retry": "retry" -} \ No newline at end of file diff --git a/projects/web/src/locale/en.json b/projects/web/src/locale/en.json deleted file mode 100644 index 77b71f146..000000000 --- a/projects/web/src/locale/en.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "extractor.common.upload": "Click to upload file", - "extractor.common.try": "Try:", - "extractor.home": "Home", - "extractor.button.download": "Download", - "extractor.button.lineWrap": "Line Wrap", - "extractor.button.fullScreen": "Fullscreen", - "extractor.button.exitFullScreen": "Exit Fullscreen", - "extractor.button.showLayer": "Display recognition results", - "extractor.button.hiddenLayer": "Hide recognition results", - "extractor.error": "Extraction failed", - "extractor.law": "Please ensure that the documents you upload are legal and compliant, and we do not assume legal responsibility for the content of the documents. Data Protection Policy Children's Information Protection Policy Service Agreement | © All Rights Reserved.Shanghai ICP 2021009351-21", - "extractor.button.reUpload": "Re-Upload", - "extractor.failed": "Unable to extract, no data to display yet", - "extractor.common.extracting": "Extracting, please wait", - "extractor.common.extracting.queue": "Queuing for extraction, currently ranked at {id}", - "extractor.common.loading": "Loading", - "extractor.common.pdf.demo1": "Example1.pdf", - "extractor.common.pdf.demo2": "Example2.pdf", - "extractor.common.formula.detect.demo1": "FormulaDetail1.jpg", - "extractor.common.formula.extract.demo1": "FormulaExtract1.jpg", - "extractor.common.login.desc": "Functionality available after login", - "extractor.markdown.preview": "Preview", - "extractor.markdown.code": "Code", - "extractor.home.title": "Welcome to Miner U", - "extractor.home.subTitle": "Upload documents and intelligently extract them into Markdown format", - "extractor.side.extractTask": "Extraction Tasks", - "extractor.side.extractTask.title": "Please upload a PDF document within 5M (within 10 pages) or a JPG/PNG image", - "extractor.pdf.title": "PDF Document Extraction", - "extractor.pdf.subTitle": "Supports text/scanned PDF parsing, identifies various layout elements and converts them into multimodal Markdown format", - "extractor.common.pdf.upload.tip": "Please upload a PDF document", - "extractor.pdf.ocr": "OCR Identify Pattern", - "extractor.pdf.ocr.popover": "By default, PDF types (text-based, scanned) will be automatically recognized, and based on the recognition results, you can choose to use text recognition or OCR recognition. If enabled, all types of PDF will be recognized by OCR.", - "extractor.formula.title2": "Recognize mathematical formulas in images as LaTex format, support multi-line formulas and handwritten formula recognition", - "extractor.formula.title": "Locate the formulas within and between rows in the image and generate bounding boxes", - "extractor.formula.upload.text": "Click to upload an image", - "extractor.formula.popover.extract": "In order to obtain the best formula recognition effect, please crop the image, focus on the formula part, and upload a clear, watermark-free image of the mathematical formula, as shown below", - "extractor.formula.popover.detect": "In order to get the best formula recognition effect, please upload clear, non-watermarked images containing mathematical formulas, as shown below", - "extractor.formula.upload.accept": "Please upload a JPG/PNG image within 5M", - "extractor.formula.upload.try": "Please upload an image containing a mathematical formula Example: ", - "extractor.guide.title": "Welcome to use more open source products 🎉", - "extractor.queue": "Extract records", - "extractor.queue.delete": "Confirm to delete this file?", - "extractor.queue.extracting": "Extracting", - "extractor.feedback.title1": "Are you satisfied with the overall extraction performance?", - "extractor.feedback.title3": "Look forward to your suggestions to help us better optimize", - "extractor.feedback.up.title": "What improvements are you expecting to see?", - "extractor.feedback.down.title": "What is the reason for your dissatisfaction? ", - "extractor.feedback.up": "Satisfied", - "extractor.feedback.down": "Dissatisfied", - "extractor.feedback.input.placeholder": "Please enter your suggestions for improvement", - "extractor.feedback.input.submit": "Submit", - "extractor.feedback.success": "Thank you for the feedback", - "extractor.queue.delete.success": "Delete successfully" -} \ No newline at end of file diff --git a/projects/web/src/locale/side/en.ts b/projects/web/src/locale/side/en.ts deleted file mode 100644 index 1c8e3fc66..000000000 --- a/projects/web/src/locale/side/en.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { EXTRACTOR_TYPE_LIST } from "@/types/extract-task-type"; -import odlLogo from "@/assets/pdf/odl-logo.svg"; -import labelLLMLogo from "@/assets/pdf/label-llm.svg"; -import labelULogo from "@/assets/pdf/labelU.svg"; - -export default { - "extractor.side.tabList": [ - { - label: "PDF Extraction", - type: EXTRACTOR_TYPE_LIST.pdf, - }, - // { - // label: "Formula Extraction", - // type: EXTRACTOR_TYPE_LIST.formula, - // }, - ], - "extractor.side.guide_list": [ - { - type: "odl", - icon: odlLogo, - title: "OpenDataLab", - desc: "Covers a huge amount of high-quality, multimodal datasets", - goToText: "Go Now", - link: "https://opendatalab.com", - }, - { - type: "labelU", - icon: labelULogo, - title: "Label U Labeling Tool", - desc: "Lightweight open source annotation tools", - goToText: "github", - link: "https://github.com/opendatalab/labelU", - }, - { - type: "labelLLM", - icon: labelLLMLogo, - [`zh-CN-title`]: "LabelLLM Labeling Tool", - title: "LabelLLM Labeling Tool", - desc: "Specializing in dialogue annotation for large language models", - goToText: "github", - link: "https://github.com/opendatalab/LabelLLM", - }, - ], -}; diff --git a/projects/web/src/locale/side/zh.ts b/projects/web/src/locale/side/zh.ts deleted file mode 100644 index 7b243fb62..000000000 --- a/projects/web/src/locale/side/zh.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { EXTRACTOR_TYPE_LIST } from "@/types/extract-task-type"; -import odlLogo from "@/assets/pdf/odl-logo.svg"; -import labelLLMLogo from "@/assets/pdf/label-llm.svg"; -import labelULogo from "@/assets/pdf/labelU.svg"; - -export default { - "extractor.side.tabList": [ - { - label: "PDF文档提取", - type: EXTRACTOR_TYPE_LIST.pdf, - }, - // { - // label: "公式检测与识别", - // type: EXTRACTOR_TYPE_LIST.formula, - // }, - ], - "extractor.side.guide_list": [ - { - type: "odl", - icon: odlLogo, - title: "OpenDataLab", - desc: "涵盖海量优质、多模态数据集", - goToText: "立即前往", - link: "https://opendatalab.com", - }, - { - type: "labelU", - icon: labelULogo, - title: "Label U 标注工具", - desc: "轻量级开源标注工具", - goToText: "github", - link: "https://github.com/opendatalab/labelU", - }, - { - type: "labelLLM", - icon: labelLLMLogo, - title: "LabelLLM 标注工具", - desc: "专攻于大模型的对话标注", - goToText: "github", - link: "https://github.com/opendatalab/LabelLLM", - }, - ], -}; diff --git a/projects/web/src/locale/zh.json b/projects/web/src/locale/zh.json deleted file mode 100644 index 1c7c7d2ca..000000000 --- a/projects/web/src/locale/zh.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "extractor.common.upload": "点击上传文件", - "extractor.common.try": "试一试:", - "extractor.home": "首页", - "extractor.button.download": "下载", - "extractor.button.lineWrap": "换行", - "extractor.button.fullScreen": "全屏", - "extractor.button.exitFullScreen": "退出全屏", - "extractor.button.showLayer": "显示识别结果", - "extractor.button.hiddenLayer": "隐藏识别结果", - "extractor.button.reUpload": "重新上传", - "extractor.error": "提取失败", - "extractor.common.loading": "加载中", - "extractor.law": "请确保您上传的文件合法合规,我们不承担因文件内容产生的法律责任。《信息保护政策》 《儿童信息保护政策》《服务协议》|© All Rights Reserved.沪ICP备2021009351号-21", - "extractor.failed": "不可提取,暂无可展示数据", - "extractor.common.extracting": "提取中,请稍等", - "extractor.common.extracting.queue": "正在排队提取,当前排在第 {id} 位", - "extractor.common.pdf.demo1": "示例1.pdf", - "extractor.common.pdf.demo2": "示例2.pdf", - "extractor.common.formula.detect.demo1": "公式检测1.jpg", - "extractor.common.formula.extract.demo1": "公式识别1.jpg", - "extractor.common.login.desc": "登录后可使用完整功能", - "extractor.markdown.preview": "预览", - "extractor.markdown.code": "代码", - "extractor.home.title": "欢迎使用 Miner U", - "extractor.home.subTitle": "上传文档,智能提取为 Markdown 格式", - "extractor.side.extractTask": "提取任务", - "extractor.side.extractTask.title": "请上传 5M 以内的 PDF 文档 ( 10 页以内)或 JPG/PNG 图片", - "extractor.pdf.title": "PDF文档提取", - "extractor.pdf.subTitle": "支持文本/扫描型 PDF 解析,识别各类版面元素并转换为多模态 Markdown 格式", - "extractor.common.pdf.upload.tip": "请上传 PDF 文档", - "extractor.pdf.ocr": "OCR 识别模式", - "extractor.pdf.ocr.popover": " 默认将自动识别PDF类型(文本型、扫描型),并根据识别结果选择采用文本识别或者OCR识别方式。 如开启,将对所有类型PDF采用OCR识别方式。", - "extractor.formula.title": "定位图片中的行内、行间公式,生成边界框", - "extractor.formula.title2": "将图片中的数学公式识别为 laTex 格式,支持多行公式、手写公式识别", - "extractor.formula.upload.text": "点击上传图片", - "extractor.formula.popover.extract": "为获得最佳的公式识别效果,请上传清晰、无水印的包含数学公式的图片,如下图", - "extractor.formula.popover.detect": "为获得最佳的公式识别效果,请裁剪图片,聚焦公式部分,上传清晰、无水印的数学公式图片,如下图", - "extractor.formula.upload.accept": "请上传 5M 以内的JPG/PNG 图片", - "extractor.formula.upload.try": "请上传包含数学公式的图片 示例:", - "extractor.guide.title": "欢迎使用更多开源产品 🎉", - "extractor.queue": "提取记录", - "extractor.queue.delete": "确认删除此文件?", - "extractor.queue.extracting": "提取中", - "extractor.feedback.title1": "您对整体提取效果是否满意 ?", - "extractor.feedback.title3": "期待您的建议,帮助我们更好的优化", - "extractor.feedback.up.title": "您期望看到哪些改进?", - "extractor.feedback.down.title": "您感到不满意的原因是?", - "extractor.feedback.up": "满意", - "extractor.feedback.down": "不满意", - "extractor.feedback.input.placeholder": "请输入您的改进建议", - "extractor.feedback.input.submit": "提交", - "extractor.feedback.success": "感谢你的反馈", - "extractor.queue.delete.success": "删除成功" -} \ No newline at end of file diff --git a/projects/web/src/main.tsx b/projects/web/src/main.tsx deleted file mode 100644 index 6f4ac9bcc..000000000 --- a/projects/web/src/main.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { StrictMode } from 'react' -import { createRoot } from 'react-dom/client' -import App from './App.tsx' -import './index.css' - -createRoot(document.getElementById('root')!).render( - - - , -) diff --git a/projects/web/src/pages/extract-side/index.module.scss b/projects/web/src/pages/extract-side/index.module.scss deleted file mode 100644 index 8252101b1..000000000 --- a/projects/web/src/pages/extract-side/index.module.scss +++ /dev/null @@ -1,38 +0,0 @@ -@import '@/styles/variable.scss'; - -.gradientBtn { - width: 179px; - height: 37px; - border-radius: 4px; - font-size: 14px; - color: rgba(255, 255, 255, 0.95); - // background: linear-gradient(110deg, #38A0FF -33.56%, #0D53DE 32.84%, #5246FF 102.05%); - background: #3477EB; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - &:hover { - background: #3477EB; - } - } - - .linearBlue { - // TIP: 这里为啥用bg呢,因为ui稿给的参数是假的 - background: url('@/assets/pdf/pdf-upload.png'); - background-size: cover; - } - - .tryText { - font-size: 13px; - line-height: 20px; - background: linear-gradient(107deg, #38A0FF -24.14%, #0D53DE 30.09%, #5246FF 86.61%); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - } - - .extractorContainer { - min-width: $page-min-witch; - } - \ No newline at end of file diff --git a/projects/web/src/pages/extract-side/index.tsx b/projects/web/src/pages/extract-side/index.tsx deleted file mode 100644 index 2ef9c9f6f..000000000 --- a/projects/web/src/pages/extract-side/index.tsx +++ /dev/null @@ -1,107 +0,0 @@ -import DarkLogo from "@/assets/svg/logo.svg"; - -import { useLocation, useNavigate, useParams } from "react-router-dom"; -import commonStyles from "./index.module.scss"; - -import { EXTRACTOR_TYPE_LIST } from "@/types/extract-task-type"; - -import extractorPdfIcon from "@/assets/pdf/extractor-pdf.svg"; -import extractorTableIcon from "@/assets/pdf/extractor-table.svg"; -import extractorFormulaIcon from "@/assets/pdf/extractor-formula.svg"; -import { useIntl } from "react-intl"; -import cls from "classnames"; -import ExtractorGuide from "@/pages/extract/components/extractor-guide"; -import ExtractorQueue from "@/pages/extract/components/extractor-queue"; -import ExtractorLang from "@/pages/extract/components/extractor-lang"; - -interface IExtractorSideProps { - className?: string; -} - -interface TabItem { - label: string; - type: string; -} - -export const ExtractorSide = ({ className = "" }: IExtractorSideProps) => { - const navigate = useNavigate(); - - const params = useParams(); - const location = useLocation(); - const { messages } = useIntl(); - - const menuClass = - "px-2 py-2.5 mb-1 text-[0.875rem] text-[#121316]/[0.8] font-semibold rounded h-10 flex items-center cursor-pointer hover:bg-[#0d53de]/[0.05]"; - - const handleMenuClick = (type: string) => { - navigate(`/OpenSourceTools/Extractor/${type}`); - }; - const goToOpenSource = () => { - navigate("/OpenSourceTools/Extractor/"); - }; - - const tabList = - (messages?.["extractor.side.tabList"] as unknown[] as TabItem[]) || []; - - const getIconStyle = (type: string) => { - const activeClassName = "!bg-[#0d53de]/[0.05] !text-[#0D53DE]"; - const path = location.pathname; - const regex = /\/Extractor\/([^/]+)(\/|$)/; - - const match = params?.jobID ? "" : path.match(regex)?.[1] || "/"; - - const getIcon = () => { - switch (type) { - case EXTRACTOR_TYPE_LIST.pdf: - return extractorPdfIcon; - case EXTRACTOR_TYPE_LIST.table: - return extractorTableIcon; - case EXTRACTOR_TYPE_LIST.formula: - return extractorFormulaIcon; - } - }; - return { - icon: getIcon(), - tabClassName: match === type ? activeClassName : "", - }; - }; - - return ( -
    -
    -
    - - -
    - - {/* tab-list */} -
    - {tabList.map((i) => ( -
    handleMenuClick(i.type)} - > - - {i.label} -
    - ))} -
    -
    -
    - - -
    - ); -}; diff --git a/projects/web/src/pages/extract/components/extractor-guide/index.module.scss b/projects/web/src/pages/extract/components/extractor-guide/index.module.scss deleted file mode 100644 index ccd28644b..000000000 --- a/projects/web/src/pages/extract/components/extractor-guide/index.module.scss +++ /dev/null @@ -1,18 +0,0 @@ -.extractorGuide { - :global { - - .ant-popover-content, .ant-popover-inner { - border-radius: 12px !important; - overflow: hidden; - box-shadow: 0px 8px 26px 0px rgba(0, 0, 0, 0.12); - } - - .ant-popover-inner-content { - padding: 24px !important; - } - - .ant-popover-arrow { - display: none !important; - } - } -} diff --git a/projects/web/src/pages/extract/components/extractor-guide/index.tsx b/projects/web/src/pages/extract/components/extractor-guide/index.tsx deleted file mode 100644 index 3be5b3639..000000000 --- a/projects/web/src/pages/extract/components/extractor-guide/index.tsx +++ /dev/null @@ -1,78 +0,0 @@ -import { Popover } from "antd"; -import guideToolsSvg from "@/assets/pdf/guideTools.svg"; -import style from "./index.module.scss"; -import { useIntl } from "react-intl"; -import IconFont from "@/components/icon-font"; -import { windowOpen } from "@/utils/windowOpen"; - -interface GuideItem { - type: string; - icon: string; - "zh-CN-title": string; - title: string; - desc: string; - goToText: string; - link: string; -} - -const ExtractorGuide = () => { - const { formatMessage, messages } = useIntl(); - - const EXTRACTOR_GUIDE_ITEM_LIST = (messages?.["extractor.side.guide_list"] || - []) as unknown as GuideItem[]; - - const content = ( -
    -
    - {formatMessage({ - id: "extractor.guide.title", - })} -
    -
    - {EXTRACTOR_GUIDE_ITEM_LIST?.map((i) => { - return ( -
    windowOpen(i.link)} - > - -
    -
    - {i.title} -
    -
    - {i.desc} -
    -
    - {i.goToText} - -
    -
    -
    - ); - })} -
    -
    - ); - return ( - - guideToolsSvg - - ); -}; - -export default ExtractorGuide; diff --git a/projects/web/src/pages/extract/components/extractor-lang/index.tsx b/projects/web/src/pages/extract/components/extractor-lang/index.tsx deleted file mode 100644 index 8fc3ac04c..000000000 --- a/projects/web/src/pages/extract/components/extractor-lang/index.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import LangChangeIcon from "@/assets/pdf/lang-change.svg"; -import { useLanguageStore } from "@/store/languageStore"; -import cls from "classnames"; - -interface ExtractorLangProps { - className?: string; -} - -const ExtractorLang: React.FC = ({ className }) => { - const { toggleLanguage } = useLanguageStore(); - const changeLang = () => { - toggleLanguage?.(); - }; - return ( - <> - changeLang()} - src={LangChangeIcon} - alt="LangChangeIcon" - className={cls( - "w-[1.5rem] h-[1.5rem] cursor-pointer object-cover hover:bg-[#0D53DE]/[0.1] rounded cursor-pointer", - className - )} - /> - - ); -}; - -export default ExtractorLang; diff --git a/projects/web/src/pages/extract/components/extractor-queue/index.tsx b/projects/web/src/pages/extract/components/extractor-queue/index.tsx deleted file mode 100644 index cd557c90f..000000000 --- a/projects/web/src/pages/extract/components/extractor-queue/index.tsx +++ /dev/null @@ -1,201 +0,0 @@ -import IconFont from "@/components/icon-font"; -import { useIntl } from "react-intl"; -import extractorQueueSvg from "@/assets/pdf/extractor-queue.svg"; -import { useNavigate, useParams } from "react-router-dom"; -import { - EXTRACTOR_TYPE_LIST, - ExtractTaskType, -} from "@/types/extract-task-type"; -import cls from "classnames"; -import { useLatest, useRequest } from "ahooks"; -import { deleteExtractJob, getExtractorHistory } from "@/api/extract"; -import { message, Popconfirm, Tooltip } from "antd"; -import { useEffect } from "react"; -import { ADD_TASK_LIST, UPDATE_TASK_LIST } from "@/constant/event"; -import { findIndex } from "lodash"; -import { TextTooltip } from "@/components/text-tooltip"; - -interface ExtractorQueueProps { - className?: string; -} - -const ExtractorQueue: React.FC = ({ className }) => { - const { formatMessage, locale } = useIntl(); - const navigate = useNavigate(); - - const params = useParams(); - - const { data: taskList, mutate } = useRequest(() => { - return getExtractorHistory({ - pageNo: 1, - pageSize: 100, - }).then((res) => { - return res?.list?.filter((i) => !!i.id && !!i.type) || []; - }); - }); - - let timeout: NodeJS.Timeout | null = null; - - const activeClassName = "!bg-[#0d53de]/[0.05] !text-[#0D53DE]"; - const handleExtractor = (originType: ExtractTaskType, id: string) => { - const type = originType?.split("-")[0]; - const detailType = originType?.split("-")[1]; - - if (type === EXTRACTOR_TYPE_LIST.formula.toLowerCase()) { - navigate(`/OpenSourceTools/Extractor/formula/${id}?type=${detailType}`); - } else if (type === EXTRACTOR_TYPE_LIST.pdf.toLowerCase()) { - navigate(`/OpenSourceTools/Extractor/PDF/${id}`); - } else if (type === EXTRACTOR_TYPE_LIST.table.toLocaleLowerCase()) { - navigate(`/OpenSourceTools/Extractor/table/${id}`); - } - return; - }; - - const cancel = (e?: React.MouseEvent) => { - e?.stopPropagation(); - e?.preventDefault(); - }; - - const confirm = (id: string) => { - const deleteIndex = findIndex(taskList, (i) => i.id === id); - const nextJob = taskList?.[deleteIndex + 1] - ? taskList?.[deleteIndex + 1] - : taskList?.[deleteIndex - 1]; - mutate(taskList?.filter((i) => i.id !== id)); - deleteExtractJob(id).then(() => { - message.success(formatMessage({ id: "extractor.queue.delete.success" })); - }); - if (timeout) { - clearTimeout(timeout); - } - timeout = setTimeout(() => { - if (nextJob?.id) { - handleExtractor(nextJob?.type as any, nextJob?.id); - } else { - navigate("/OpenSourceTools/Extractor"); - } - }, 10); - }; - const taskListRef = useLatest(taskList); - const handleAddList = ({ detail }: CustomEvent) => { - const taskData = detail as any; - mutate( - [ - { - fileName: taskData?.fileName, - id: taskData?.id, - type: taskData?.type, - state: taskData?.state, // 提取状态 - } as any, - ].concat(taskListRef?.current) - ); - }; - - useEffect(() => { - const handleUpdateList = ({ detail }: CustomEvent) => { - const taskData = detail as any; - taskListRef?.current?.forEach((i) => { - if (i.id === taskData?.id) { - i.state = taskData?.state || taskData?.state; - } - }); - - mutate(taskListRef?.current); - }; - document.addEventListener( - UPDATE_TASK_LIST, - handleUpdateList as EventListener - ); - document.addEventListener(ADD_TASK_LIST, handleAddList as EventListener); - return () => { - document.removeEventListener( - UPDATE_TASK_LIST, - handleUpdateList as EventListener - ); - document.removeEventListener( - ADD_TASK_LIST, - handleAddList as EventListener - ); - }; - }, []); - - useEffect(() => { - mutate(taskListRef?.current); - }, [locale]); - - return ( -
    -
    - extractorQueueSvg - {formatMessage({ - id: "extractor.queue", - })} -
    -
    - {taskList?.map((i, index) => { - return ( -
    handleExtractor(i.type as any, i.id)} - > - - - - <> - {i?.state === "failed" && ( - - - - )} - -
    } - onConfirm={(e) => { - e?.stopPropagation(); - e?.preventDefault(); - confirm(i.id); - }} - onCancel={cancel} - okText={formatMessage({ id: "common.confirm" })} - cancelText={formatMessage({ id: "common.cancel" })} - okButtonProps={{ - style: { - backgroundColor: "#F5483B", - }, - }} - > - { - e.stopPropagation(); - e.preventDefault(); - }} - type="icon-shanchu" - className="hidden ml-auto text-[1rem] text-[#121316]/[0.8] hover:text-[#0D53DE] group-hover:block" - /> - - -
    - ); - })} - - - ); -}; - -export default ExtractorQueue; diff --git a/projects/web/src/pages/extract/components/extractor-repo/index.module.scss b/projects/web/src/pages/extract/components/extractor-repo/index.module.scss deleted file mode 100644 index e7b88e636..000000000 --- a/projects/web/src/pages/extract/components/extractor-repo/index.module.scss +++ /dev/null @@ -1,62 +0,0 @@ -.githubBtn { - position: relative; - width: 100%; - cursor: pointer; - height: 2.5rem; - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 1.25rem; - overflow: hidden; - border-radius: 8px; - cursor: pointer; - - - filter: blur(0px); - - z-index: 0; - &::before { - width: 100%; - height: 100%; - display: block; - content: ""; - position: absolute; - top: 0; - left: 0; - background: linear-gradient(to bottom, rgba(185,214,246,1) -100%, rgba(244,247,254,) 100%); - z-index: 0; - } - - - & > span { - border-radius: 7px; - display:inline-flex; - width: calc(100% - 2px); - height: calc(100% - 2px); - background: linear-gradient(180deg, #5C93FF1F -160.94%, rgba(255, 255, 255, 1) 80%); - z-index: 1; - filter: blur(0px); - justify-content: center; - align-items: center; - font-size: 16px; - &:hover { - background: linear-gradient(180deg, #5C93FF1F -60.94%, rgba(255, 255, 255, 1) 80%); - filter: blur(0px); - } - span:nth-child(3){ - color: var(--80-text-4, rgba(18, 19, 22, 0.80)); - -webkit-background-clip: text; - background-clip: text; - } - } -} - -.githubText { - /* 正文/加粗text-1-semibold */ - font-family: "PingFang SC"; - font-size: 14px; - font-style: normal; - font-weight: 600; - line-height: 21px; /* 150% */ - color: #121316; -} diff --git a/projects/web/src/pages/extract/components/extractor-repo/index.tsx b/projects/web/src/pages/extract/components/extractor-repo/index.tsx deleted file mode 100644 index 4c54610a1..000000000 --- a/projects/web/src/pages/extract/components/extractor-repo/index.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import githubSvg from "@/assets/pdf/github.svg"; -import { windowOpen } from "@/utils/windowOpen"; -import styles from "./index.module.scss"; -import cls from "classnames"; - -const ExtractorRepo = () => { - return ( -
    - windowOpen("https://github.com/opendatalab/MinerU", "_blank") - } - > - - - 🎉 - -
    - ); -}; - -export default ExtractorRepo; diff --git a/projects/web/src/pages/extract/components/iframe-loading/index.tsx b/projects/web/src/pages/extract/components/iframe-loading/index.tsx deleted file mode 100644 index 91d90bd45..000000000 --- a/projects/web/src/pages/extract/components/iframe-loading/index.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import LoadingAnimation from "@/components/loading-animation"; -import { ExclamationCircleFilled } from "@ant-design/icons"; -import cls from "classnames"; - -export const IframeLoading = ({ - filename, - type, - text, - errorElement, - classNameTitle = "", - showHeader, -}: { - filename?: string; - type: "loading" | "error"; - text?: string; - errorElement?: React.ReactElement; - classNameTitle?: string; - showHeader?: boolean; -}) => { - return ( -
    - {showHeader && ( -
    - {filename} -
    - )} - -
    - {type === "error" ? ( - errorElement ? ( - errorElement - ) : ( - <> - - 上传失败,请 - - 重新上传 - - - ) - ) : ( - <> - - {text || "PDF 上传中,请稍等..."} - - )} -
    -
    - ); -}; diff --git a/projects/web/src/pages/extract/components/image-layer-viwer/index.tsx b/projects/web/src/pages/extract/components/image-layer-viwer/index.tsx deleted file mode 100644 index 66ba37e98..000000000 --- a/projects/web/src/pages/extract/components/image-layer-viwer/index.tsx +++ /dev/null @@ -1,378 +0,0 @@ -import React, { - useEffect, - useRef, - useState, - useMemo, - forwardRef, - useImperativeHandle, - useCallback, -} from "react"; -import cls from "classnames"; -import { isObjEqual } from "@/utils/render"; -import { useSize } from "ahooks"; - -interface IImageLayersViewerProps { - imageUrl: string; - imageWidth: number; - imageHeight: number; - layout: Array<{ - category_id: number; - poly: number[]; - score: number; - latex?: string; - }>; - layerVisible?: boolean; - disableZoom?: boolean; - className?: string; - onChange?: (data: { scale: number }) => void; -} - -export interface ImageLayerViewerRef { - containerRef: HTMLDivElement | null; - zoomIn: () => void; - zoomOut: () => void; - scale: number; - updateScaleAndPosition: () => void; -} - -const ImageLayerViewer = forwardRef< - ImageLayerViewerRef, - IImageLayersViewerProps ->( - ( - { - imageUrl, - imageHeight, - imageWidth, - onChange, - layout, - disableZoom, - className = "", - layerVisible = true, - }, - ref - ) => { - const containerRef = useRef(null); - const imageCanvasRef = useRef(null); - const overlayCanvasRef = useRef(null); - const rafRef = useRef(null); - const containerSize = useSize(containerRef); - - const [scale, setScale] = useState(1); - const [position, setPosition] = useState({ x: 0, y: 0 }); - const [padding, setPadding] = useState({ left: 0, top: 0 }); - - const minZoom = 0.1; - const maxZoom = 3; - const zoomSensitivity = 0.001; - const zoomStep = 0.1; - - const dpr = useMemo(() => window.devicePixelRatio || 1, []); - - const image = useMemo(() => { - const img = new Image(); - img.src = imageUrl; - return img; - }, [imageUrl]); - - const calculateInitialScaleAndPosition = useCallback(() => { - if (!containerRef.current) - return { initialScale: 1, initialPosition: { x: 0, y: 0 } }; - const containerWidth = containerRef.current.clientWidth; - const containerHeight = containerRef.current.clientHeight; - - const scaleX = containerWidth / imageWidth; - const scaleY = containerHeight / imageHeight; - const initialScale = Math.min(scaleX, scaleY, 1); // Ensure it doesn't scale up initially - - const scaledWidth = imageWidth * initialScale; - const scaledHeight = imageHeight * initialScale; - - const initialPosition = { - x: (containerWidth - scaledWidth) / 2, - y: (containerHeight - scaledHeight) / 2, - }; - - return { initialScale, initialPosition }; - }, [imageWidth, imageHeight]); - - const updateScaleAndPosition = useCallback(() => { - const { initialScale, initialPosition } = - calculateInitialScaleAndPosition(); - setScale(initialScale); - setPosition(initialPosition); - setPadding({ left: 0, top: 0 }); - }, [calculateInitialScaleAndPosition]); - - useEffect(() => { - updateScaleAndPosition(); - }, [imageWidth, imageHeight]); - - const drawImage = useCallback(() => { - const ctx = imageCanvasRef.current?.getContext("2d"); - if (!ctx || !image.complete) return; - - const scaledWidth = imageWidth * scale; - const scaledHeight = imageHeight * scale; - - ctx.canvas.width = scaledWidth * dpr; - ctx.canvas.height = scaledHeight * dpr; - ctx.canvas.style.width = `${scaledWidth}px`; - ctx.canvas.style.height = `${scaledHeight}px`; - - ctx.scale(dpr, dpr); - - ctx.clearRect(0, 0, scaledWidth, scaledHeight); - ctx.drawImage(image, 0, 0, scaledWidth, scaledHeight); - }, [image, imageWidth, imageHeight, scale, dpr]); - - const drawLayout = useCallback(() => { - const ctx = overlayCanvasRef.current?.getContext("2d"); - if (!ctx) return; - - const scaledWidth = imageWidth * scale; - const scaledHeight = imageHeight * scale; - - ctx.canvas.width = scaledWidth * dpr; - ctx.canvas.height = scaledHeight * dpr; - ctx.canvas.style.width = `${scaledWidth}px`; - ctx.canvas.style.height = `${scaledHeight}px`; - - ctx.scale(dpr, dpr); - - ctx.clearRect(0, 0, scaledWidth, scaledHeight); - - layout?.forEach((item) => { - const [x1, y1, x2, y2, x3, y3, x4, y4] = item.poly.map( - (coord) => coord * scale - ); - - switch (item.category_id) { - case 9: - ctx.fillStyle = "rgba(230, 113, 230, 0.4)"; - ctx.strokeStyle = "rgba(230, 113, 230, 1)"; - break; - case 8: - ctx.fillStyle = "rgba(240, 240, 124, 0.4)"; - ctx.strokeStyle = "rgba(240, 240, 124, 1)"; - break; - case 13: - ctx.fillStyle = "rgba(150, 232, 172, 0.4)"; - ctx.strokeStyle = "rgba(150, 232, 172, 1)"; - break; - case 14: - ctx.fillStyle = "rgba(230, 122, 171, 0.4)"; - ctx.strokeStyle = "rgba(230, 122, 171, 1)"; - break; - default: - ctx.fillStyle = "transparent"; - ctx.strokeStyle = "transparent"; - } - - ctx.beginPath(); - ctx.moveTo(x1, y1); - ctx.lineTo(x2, y2); - ctx.lineTo(x3, y3); - ctx.lineTo(x4, y4); - ctx.closePath(); - ctx.fill(); - ctx.stroke(); - }); - }, [layout, scale, dpr]); - - const updateScale = useCallback( - (newScale: number, clientX: number, clientY: number) => { - if (containerRef.current) { - const rect = containerRef.current.getBoundingClientRect(); - const containerWidth = rect.width; - const containerHeight = rect.height; - const x = clientX - rect.left; - const y = clientY - rect.top; - - const prevScaledWidth = imageWidth * scale; - const prevScaledHeight = imageHeight * scale; - const newScaledWidth = imageWidth * newScale; - const newScaledHeight = imageHeight * newScale; - - let newPosition = { - x: - position.x - - ((x - position.x) * (newScaledWidth - prevScaledWidth)) / - prevScaledWidth, - y: - position.y - - ((y - position.y) * (newScaledHeight - prevScaledHeight)) / - prevScaledHeight, - }; - - // Center the image if it's smaller than the container - if (newScaledWidth < containerWidth) { - newPosition.x = (containerWidth - newScaledWidth) / 2; - } - if (newScaledHeight < containerHeight) { - newPosition.y = (containerHeight - newScaledHeight) / 2; - } - - setScale(newScale); - setPosition(newPosition); - - // Calculate new padding - const newPadding = { - left: Math.max(0, -newPosition.x), - top: Math.max(0, -newPosition.y), - }; - setPadding(newPadding); - } - }, - [scale, position, imageWidth, imageHeight] - ); - - const handleZoom = useCallback( - (delta: number, clientX: number, clientY: number) => { - const newScale = scale * Math.exp(-delta * zoomSensitivity); - const boundedNewScale = Math.max(minZoom, Math.min(newScale, maxZoom)); - - if (rafRef.current !== null) { - cancelAnimationFrame(rafRef.current); - } - - rafRef.current = requestAnimationFrame(() => { - updateScale(boundedNewScale, clientX, clientY); - }); - }, - [scale, updateScale] - ); - - const handleCenterZoom = useCallback( - (zoomIn: boolean) => { - const newScale = zoomIn - ? scale * (1 + zoomStep) - : scale / (1 + zoomStep); - const boundedNewScale = Math.max(minZoom, Math.min(newScale, maxZoom)); - - if (containerRef.current) { - const rect = containerRef.current.getBoundingClientRect(); - const centerX = rect.width / 2; - const centerY = rect.height / 2; - - updateScale(boundedNewScale, centerX, centerY); - } - }, - [scale, updateScale] - ); - - const zoomIn = useCallback(() => { - handleCenterZoom(true); - }, [handleCenterZoom]); - - const zoomOut = useCallback(() => { - handleCenterZoom(false); - }, [handleCenterZoom]); - - useImperativeHandle( - ref, - () => ({ - containerRef: containerRef.current, - zoomIn, - zoomOut, - scale, - updateScaleAndPosition, - }), - [zoomIn, zoomOut, scale] - ); - - useEffect(() => { - const container = containerRef.current; - if (!container) return; - - const handleWheel = (e: WheelEvent) => { - if (e.ctrlKey || e.metaKey) { - e.preventDefault(); - handleZoom(e.deltaY * 4.8, e.clientX, e.clientY); - } - }; - - container.addEventListener("wheel", handleWheel, { passive: false }); - - return () => { - container.removeEventListener("wheel", handleWheel); - }; - }, [handleZoom]); - - useEffect(() => { - if (containerRef?.current) { - containerRef.current?.scrollTo({ - left: padding.left, - top: padding.top, - }); - } - }, [padding]); - - useEffect(() => { - const draw = () => { - drawImage(); - drawLayout(); - }; - - if (image.complete) { - draw(); - } else { - image.onload = draw; - } - }, [image, drawImage, drawLayout]); - - useEffect(() => { - if (overlayCanvasRef.current) { - overlayCanvasRef.current.style.opacity = layerVisible ? "1" : "0"; - } - }, [layerVisible]); - - useEffect(() => { - onChange?.({ scale }); - }, [scale]); - - return ( -
    -
    -
    - - -
    -
    -
    - ); - } -); - -export default React.memo(ImageLayerViewer, isObjEqual); diff --git a/projects/web/src/pages/extract/components/latex-renderer/index.module.scss b/projects/web/src/pages/extract/components/latex-renderer/index.module.scss deleted file mode 100644 index 9231f6c67..000000000 --- a/projects/web/src/pages/extract/components/latex-renderer/index.module.scss +++ /dev/null @@ -1,15 +0,0 @@ -// @import '../../../../global.scss'; - -.customStyle { - padding: 2rem; - padding-top: 0rem; - & > div { - max-width: 100%; - max-height: 100%; - // @include scrollBar(red); - } - .katex-display { - margin-top: 0px !important; - // @include scrollBar(red); - } -} diff --git a/projects/web/src/pages/extract/components/latex-renderer/index.tsx b/projects/web/src/pages/extract/components/latex-renderer/index.tsx deleted file mode 100644 index f1157f247..000000000 --- a/projects/web/src/pages/extract/components/latex-renderer/index.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import React from 'react'; -import 'katex/dist/katex.min.css'; -import { BlockMath } from 'react-katex'; -import style from './index.module.scss'; -import classNames from 'classnames'; - -interface LatexRendererProps { - formula: string; - className?: string; - 'aria-label'?: string; - title?: string; -} - -function LatexRenderer({ formula, className = '', 'aria-label': ariaLabel, title }: LatexRendererProps) { - try { - return ( -
    - -
    - ); - } catch (error) { - console.error('Error rendering Latex:', error); - return
    Unable to render Latex formula.
    ; - } -} - -export default LatexRenderer; diff --git a/projects/web/src/pages/extract/components/loading-icon/index.module.scss b/projects/web/src/pages/extract/components/loading-icon/index.module.scss deleted file mode 100644 index 46c15f056..000000000 --- a/projects/web/src/pages/extract/components/loading-icon/index.module.scss +++ /dev/null @@ -1,93 +0,0 @@ - -$circle-width: 16px; - -.container { - position: relative; - width:4 * $circle-width; - height: 20px; - display: flex; - align-items: center; - justify-content: center; -} -.dot-pulse { - position: relative; - left: -9999px; - width: $circle-width; - height: $circle-width; - border-radius: 50%; - background-color: var(--color); - color: var(--color); - box-shadow: 9999px 0 0 -3px; - animation: dot-pulse 1.5s infinite linear; - animation-delay: 0.25s; -} - -.dot-pulse::before, -.dot-pulse::after { - content: ''; - display: inline-block; - position: absolute; - top: 0; - width: $circle-width; - height: $circle-width; - border-radius: 50%; - background-color: var(--color); - color: var(--color); -} - -.dot-pulse::before { - box-shadow: 9974px 0 0 -3px; - animation: dot-pulse-before 1.5s infinite linear; - animation-delay: 0s; -} - -.dot-pulse::after { - box-shadow: 10024px 0 0 -3px; - animation: dot-pulse-after 1.5s infinite linear; - animation-delay: 0.5s; -} - -@keyframes dot-pulse-before { - 0% { - box-shadow: 9974px 0 0 -3px; - } - - 30% { - box-shadow: 9974px 0 0 2px; - } - - 60%, - 100% { - box-shadow: 9974px 0 0 -3px; - } -} - -@keyframes dot-pulse { - 0% { - box-shadow: 9999px 0 0 -3px; - } - - 30% { - box-shadow: 9999px 0 0 3px; - } - - 60%, - 100% { - box-shadow: 9999px 0 0 -3px; - } -} - -@keyframes dot-pulse-after { - 0% { - box-shadow: 10024px 0 0 -3px; - } - - 30% { - box-shadow: 10024px 0 0 2px; - } - - 60%, - 100% { - box-shadow: 10024px 0 0 -3px; - } -} diff --git a/projects/web/src/pages/extract/components/loading-icon/index.tsx b/projects/web/src/pages/extract/components/loading-icon/index.tsx deleted file mode 100644 index 1093eea58..000000000 --- a/projects/web/src/pages/extract/components/loading-icon/index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import classNames from "classnames"; -import style from "./index.module.scss"; - -const LoadingIcon = ({ - color, - className, -}: { - color: string; - className?: string; -}) => { - return ( -
    -
    -
    - ); -}; - -export default LoadingIcon; diff --git a/projects/web/src/pages/extract/components/md-viewer/index.module.scss b/projects/web/src/pages/extract/components/md-viewer/index.module.scss deleted file mode 100644 index 130a1f7c8..000000000 --- a/projects/web/src/pages/extract/components/md-viewer/index.module.scss +++ /dev/null @@ -1,1141 +0,0 @@ -/*light*/ - -// 自定义滚动跳 -.scrollBar { - // 火狐 - scrollbar-color: #EBECF0 transparent; - scrollbar-width: thin; - - // 定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸 - &::-webkit-scrollbar { - width: 4px; - height: 6px; - background-color: transparent; - } - - // 定义滚动条轨道 内阴影+圆角 - &::-webkit-scrollbar-track { - background-color: #fff; - border-radius: 10px; - box-shadow: transparent; - } - - // 定义滑块 内阴影+圆角 - &::-webkit-scrollbar-thumb { - background: #EBECF0; - border-radius: 10px; - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.6); - } -} - -.mdViewerWrap { - font-size: 10px; -} - -.mdViewerWrap { - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - margin: 0; - color: #1f2328; - background-color: #ffffff; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", - Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; - font-size: 16px; - line-height: 1.5; - word-wrap: break-word; - scroll-behavior: auto; -} - -.mdViewerWrap .octicon { - display: inline-block; - fill: currentColor; - vertical-align: text-bottom; -} - -.mdViewerWrap h1:hover .anchor .octicon-link:before, -.mdViewerWrap h2:hover .anchor .octicon-link:before, -.mdViewerWrap h3:hover .anchor .octicon-link:before, -.mdViewerWrap h4:hover .anchor .octicon-link:before, -.mdViewerWrap h5:hover .anchor .octicon-link:before, -.mdViewerWrap h6:hover .anchor .octicon-link:before { - width: 16px; - height: 16px; - content: " "; - display: inline-block; - background-color: currentColor; - -webkit-mask-image: url("data:image/svg+xml,"); - mask-image: url("data:image/svg+xml,"); -} - -.mdViewerWrap details, -.mdViewerWrap figcaption, -.mdViewerWrap figure { - display: block; -} - -.mdViewerWrap summary { - display: list-item; -} - -.mdViewerWrap [hidden] { - display: none !important; -} - -.mdViewerWrap a { - background-color: transparent; - color: #0969da; - text-decoration: none; -} - -.mdViewerWrap abbr[title] { - border-bottom: none; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; -} - -.mdViewerWrap b, -.mdViewerWrap strong { - font-weight: 600; -} - -.mdViewerWrap dfn { - font-style: italic; -} - -.mdViewerWrap h1 { - margin: 0.67em 0; - font-weight: 600; - padding-bottom: 0.3em; - font-size: 2em; - border-bottom: 1px solid #d0d7deb3; -} - -.mdViewerWrap mark { - background-color: #fff8c5; - color: #1f2328; -} - -.mdViewerWrap small { - font-size: 90%; -} - -.mdViewerWrap sub, -.mdViewerWrap sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -.mdViewerWrap sub { - bottom: -0.25em; -} - -.mdViewerWrap sup { - top: -0.5em; -} - -.mdViewerWrap img { - border-style: none; - max-width: 100%; - box-sizing: content-box; - background-color: #ffffff; -} - -.mdViewerWrap code, -.mdViewerWrap kbd, -.mdViewerWrap pre, -.mdViewerWrap samp { - font-family: monospace; - font-size: 1em; -} - -.mdViewerWrap figure { - margin: 1em 40px; -} - -.mdViewerWrap hr { - box-sizing: content-box; - overflow: hidden; - background: transparent; - border-bottom: 1px solid #d0d7deb3; - height: 0.25em; - padding: 0; - margin: 24px 0; - background-color: #d0d7de; - border: 0; -} - -.mdViewerWrap input { - font: inherit; - margin: 0; - overflow: visible; - font-family: inherit; - font-size: inherit; - line-height: inherit; -} - -.mdViewerWrap [type="button"], -.mdViewerWrap [type="reset"], -.mdViewerWrap [type="submit"] { - -webkit-appearance: button; - appearance: button; -} - -.mdViewerWrap [type="checkbox"], -.mdViewerWrap [type="radio"] { - box-sizing: border-box; - padding: 0; -} - -.mdViewerWrap [type="number"]::-webkit-inner-spin-button, -.mdViewerWrap [type="number"]::-webkit-outer-spin-button { - height: auto; -} - -.mdViewerWrap [type="search"]::-webkit-search-cancel-button, -.mdViewerWrap [type="search"]::-webkit-search-decoration { - -webkit-appearance: none; - appearance: none; -} - -.mdViewerWrap ::-webkit-input-placeholder { - color: inherit; - opacity: 0.54; -} - -.mdViewerWrap ::-webkit-file-upload-button { - -webkit-appearance: button; - appearance: button; - font: inherit; -} - -.mdViewerWrap a:hover { - text-decoration: underline; -} - -.mdViewerWrap ::placeholder { - color: #636c76; - opacity: 1; -} - -.mdViewerWrap hr::before { - display: table; - content: ""; -} - -.mdViewerWrap hr::after { - display: table; - clear: both; - content: ""; -} - -.mdViewerWrap table { - border-spacing: 0; - border-collapse: collapse; - display: block; - width: max-content; - max-width: 100%; - overflow: auto; -} - -.mdViewerWrap td, -.mdViewerWrap th { - padding: 0; -} - -.mdViewerWrap details summary { - cursor: pointer; -} - -.mdViewerWrap details:not([open]) > *:not(summary) { - display: none; -} - -.mdViewerWrap a:focus, -.mdViewerWrap [role="button"]:focus, -.mdViewerWrap input[type="radio"]:focus, -.mdViewerWrap input[type="checkbox"]:focus { - outline: 2px solid #0969da; - outline-offset: -2px; - box-shadow: none; -} - -.mdViewerWrap a:focus:not(:focus-visible), -.mdViewerWrap [role="button"]:focus:not(:focus-visible), -.mdViewerWrap input[type="radio"]:focus:not(:focus-visible), -.mdViewerWrap input[type="checkbox"]:focus:not(:focus-visible) { - outline: solid 1px transparent; -} - -.mdViewerWrap a:focus-visible, -.mdViewerWrap [role="button"]:focus-visible, -.mdViewerWrap input[type="radio"]:focus-visible, -.mdViewerWrap input[type="checkbox"]:focus-visible { - outline: 2px solid #0969da; - outline-offset: -2px; - box-shadow: none; -} - -.mdViewerWrap a:not([class]):focus, -.mdViewerWrap a:not([class]):focus-visible, -.mdViewerWrap input[type="radio"]:focus, -.mdViewerWrap input[type="radio"]:focus-visible, -.mdViewerWrap input[type="checkbox"]:focus, -.mdViewerWrap input[type="checkbox"]:focus-visible { - outline-offset: 0; -} - -.mdViewerWrap kbd { - display: inline-block; - padding: 3px 5px; - font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, - Liberation Mono, monospace; - line-height: 10px; - color: #1f2328; - vertical-align: middle; - background-color: #f6f8fa; - border: solid 1px #afb8c133; - border-bottom-color: #afb8c133; - border-radius: 6px; - box-shadow: inset 0 -1px 0 #afb8c133; -} - -.mdViewerWrap h1, -.mdViewerWrap h2, -.mdViewerWrap h3, -.mdViewerWrap h4, -.mdViewerWrap h5, -.mdViewerWrap h6 { - margin-top: 24px; - margin-bottom: 16px; - font-weight: 600; - line-height: 1.25; -} - -.mdViewerWrap h2 { - font-weight: 600; - padding-bottom: 0.3em; - font-size: 1.5em; - border-bottom: 1px solid #d0d7deb3; -} - -.mdViewerWrap h3 { - font-weight: 600; - font-size: 1.25em; -} - -.mdViewerWrap h4 { - font-weight: 600; - font-size: 1em; -} - -.mdViewerWrap h5 { - font-weight: 600; - font-size: 0.875em; -} - -.mdViewerWrap h6 { - font-weight: 600; - font-size: 0.85em; - color: #636c76; -} - -.mdViewerWrap p { - margin-top: 0; - margin-bottom: 10px; - font-size: 1.25em; -} - -.mdViewerWrap blockquote { - margin: 0; - padding: 0 1em; - color: #636c76; - border-left: 0.25em solid #d0d7de; -} - -.mdViewerWrap ul, -.mdViewerWrap ol { - margin-top: 0; - margin-bottom: 0; - padding-left: 2em; -} - -.mdViewerWrap ol ol, -.mdViewerWrap ul ol { - list-style-type: lower-roman; -} - -.mdViewerWrap ul ul ol, -.mdViewerWrap ul ol ol, -.mdViewerWrap ol ul ol, -.mdViewerWrap ol ol ol { - list-style-type: lower-alpha; -} - -.mdViewerWrap dd { - margin-left: 0; -} - -.mdViewerWrap tt, -.mdViewerWrap code, -.mdViewerWrap samp { - font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, - Liberation Mono, monospace; - font-size: 12px; -} - -.mdViewerWrap pre { - margin-top: 0; - margin-bottom: 0; - font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, - Liberation Mono, monospace; - font-size: 12px; - word-wrap: normal; -} - -.mdViewerWrap .octicon { - display: inline-block; - overflow: visible !important; - vertical-align: text-bottom; - fill: currentColor; -} - -.mdViewerWrap input::-webkit-outer-spin-button, -.mdViewerWrap input::-webkit-inner-spin-button { - margin: 0; - -webkit-appearance: none; - appearance: none; -} - -.mdViewerWrap .mr-2 { - margin-right: 0.5rem !important; -} - -.mdViewerWrap::before { - display: table; - content: ""; -} - -.mdViewerWrap::after { - display: table; - clear: both; - content: ""; -} - -.mdViewerWrap > *:first-child { - margin-top: 0 !important; -} - -.mdViewerWrap > *:last-child { - margin-bottom: 0 !important; -} - -.mdViewerWrap a:not([href]) { - color: inherit; - text-decoration: none; -} - -.mdViewerWrap .absent { - color: #d1242f; -} - -.mdViewerWrap .anchor { - float: left; - padding-right: 4px; - margin-left: -20px; - line-height: 1; -} - -.mdViewerWrap .anchor:focus { - outline: none; -} - -.mdViewerWrap p, -.mdViewerWrap blockquote, -.mdViewerWrap ul, -.mdViewerWrap ol, -.mdViewerWrap dl, -.mdViewerWrap table, -.mdViewerWrap pre, -.mdViewerWrap details { - margin-top: 0; - margin-bottom: 16px; -} - -.mdViewerWrap blockquote > :first-child { - margin-top: 0; -} - -.mdViewerWrap blockquote > :last-child { - margin-bottom: 0; -} - -.mdViewerWrap h1 .octicon-link, -.mdViewerWrap h2 .octicon-link, -.mdViewerWrap h3 .octicon-link, -.mdViewerWrap h4 .octicon-link, -.mdViewerWrap h5 .octicon-link, -.mdViewerWrap h6 .octicon-link { - color: #1f2328; - vertical-align: middle; - visibility: hidden; -} - -.mdViewerWrap h1:hover .anchor, -.mdViewerWrap h2:hover .anchor, -.mdViewerWrap h3:hover .anchor, -.mdViewerWrap h4:hover .anchor, -.mdViewerWrap h5:hover .anchor, -.mdViewerWrap h6:hover .anchor { - text-decoration: none; -} - -.mdViewerWrap h1:hover .anchor .octicon-link, -.mdViewerWrap h2:hover .anchor .octicon-link, -.mdViewerWrap h3:hover .anchor .octicon-link, -.mdViewerWrap h4:hover .anchor .octicon-link, -.mdViewerWrap h5:hover .anchor .octicon-link, -.mdViewerWrap h6:hover .anchor .octicon-link { - visibility: visible; -} - -.mdViewerWrap h1 tt, -.mdViewerWrap h1 code, -.mdViewerWrap h2 tt, -.mdViewerWrap h2 code, -.mdViewerWrap h3 tt, -.mdViewerWrap h3 code, -.mdViewerWrap h4 tt, -.mdViewerWrap h4 code, -.mdViewerWrap h5 tt, -.mdViewerWrap h5 code, -.mdViewerWrap h6 tt, -.mdViewerWrap h6 code { - padding: 0 0.2em; - font-size: inherit; -} - -.mdViewerWrap summary h1, -.mdViewerWrap summary h2, -.mdViewerWrap summary h3, -.mdViewerWrap summary h4, -.mdViewerWrap summary h5, -.mdViewerWrap summary h6 { - display: inline-block; -} - -.mdViewerWrap summary h1 .anchor, -.mdViewerWrap summary h2 .anchor, -.mdViewerWrap summary h3 .anchor, -.mdViewerWrap summary h4 .anchor, -.mdViewerWrap summary h5 .anchor, -.mdViewerWrap summary h6 .anchor { - margin-left: -40px; -} - -.mdViewerWrap summary h1, -.mdViewerWrap summary h2 { - padding-bottom: 0; - border-bottom: 0; -} - -.mdViewerWrap ul.no-list, -.mdViewerWrap ol.no-list { - padding: 0; - list-style-type: none; -} - -.mdViewerWrap ol[type="a s"] { - list-style-type: lower-alpha; -} - -.mdViewerWrap ol[type="A s"] { - list-style-type: upper-alpha; -} - -.mdViewerWrap ol[type="i s"] { - list-style-type: lower-roman; -} - -.mdViewerWrap ol[type="I s"] { - list-style-type: upper-roman; -} - -.mdViewerWrap ol[type="1"] { - list-style-type: decimal; -} - -.mdViewerWrap div > ol:not([type]) { - list-style-type: decimal; -} - -.mdViewerWrap ul ul, -.mdViewerWrap ul ol, -.mdViewerWrap ol ol, -.mdViewerWrap ol ul { - margin-top: 0; - margin-bottom: 0; -} - -.mdViewerWrap li > p { - margin-top: 16px; -} - -.mdViewerWrap li + li { - margin-top: 0.25em; -} - -.mdViewerWrap dl { - padding: 0; -} - -.mdViewerWrap dl dt { - padding: 0; - margin-top: 16px; - font-size: 1em; - font-style: italic; - font-weight: 600; -} - -.mdViewerWrap dl dd { - padding: 0 16px; - margin-bottom: 16px; -} - -.mdViewerWrap table th { - font-weight: 600; -} - -.mdViewerWrap table th, -.mdViewerWrap table td { - padding: 6px 13px; - border: 1px solid #d0d7de; -} - -.mdViewerWrap table td > :last-child { - margin-bottom: 0; -} - -.mdViewerWrap table tr { - background-color: #ffffff; - border-top: 1px solid #d0d7deb3; -} - -.mdViewerWrap table tr:nth-child(2n) { - background-color: #f6f8fa; -} - -.mdViewerWrap table img { - background-color: transparent; -} - -.mdViewerWrap img[align="right"] { - padding-left: 20px; -} - -.mdViewerWrap img[align="left"] { - padding-right: 20px; -} - -.mdViewerWrap .emoji { - max-width: none; - vertical-align: text-top; - background-color: transparent; -} - -.mdViewerWrap span.frame { - display: block; - overflow: hidden; -} - -.mdViewerWrap span.frame > span { - display: block; - float: left; - width: auto; - padding: 7px; - margin: 13px 0 0; - overflow: hidden; - border: 1px solid #d0d7de; -} - -.mdViewerWrap span.frame span img { - display: block; - float: left; -} - -.mdViewerWrap span.frame span span { - display: block; - padding: 5px 0 0; - clear: both; - color: #1f2328; -} - -.mdViewerWrap span.align-center { - display: block; - overflow: hidden; - clear: both; -} - -.mdViewerWrap span.align-center > span { - display: block; - margin: 13px auto 0; - overflow: hidden; - text-align: center; -} - -.mdViewerWrap span.align-center span img { - margin: 0 auto; - text-align: center; -} - -.mdViewerWrap span.align-right { - display: block; - overflow: hidden; - clear: both; -} - -.mdViewerWrap span.align-right > span { - display: block; - margin: 13px 0 0; - overflow: hidden; - text-align: right; -} - -.mdViewerWrap span.align-right span img { - margin: 0; - text-align: right; -} - -.mdViewerWrap span.float-left { - display: block; - float: left; - margin-right: 13px; - overflow: hidden; -} - -.mdViewerWrap span.float-left span { - margin: 13px 0 0; -} - -.mdViewerWrap span.float-right { - display: block; - float: right; - margin-left: 13px; - overflow: hidden; -} - -.mdViewerWrap span.float-right > span { - display: block; - margin: 13px auto 0; - overflow: hidden; - text-align: right; -} - -.mdViewerWrap code, -.mdViewerWrap tt { - padding: 0.2em 0.4em; - margin: 0; - font-size: 85%; - white-space: break-spaces; - background-color: #afb8c133; - border-radius: 6px; -} - -.mdViewerWrap code br, -.mdViewerWrap tt br { - display: none; -} - -.mdViewerWrap del code { - text-decoration: inherit; -} - -.mdViewerWrap samp { - font-size: 85%; -} - -.mdViewerWrap pre code { - font-size: 100%; -} - -.mdViewerWrap pre > code { - padding: 0; - margin: 0; - word-break: normal; - white-space: pre; - background: transparent; - border: 0; -} - -.mdViewerWrap .highlight { - margin-bottom: 16px; -} - -.mdViewerWrap .highlight pre { - margin-bottom: 0; - word-break: normal; -} - -.mdViewerWrap .highlight pre, -.mdViewerWrap pre { - padding: 16px; - overflow: auto; - font-size: 85%; - line-height: 1.45; - color: #1f2328; - background-color: #f6f8fa; - border-radius: 6px; -} - -.mdViewerWrap pre code, -.mdViewerWrap pre tt { - display: inline; - max-width: auto; - padding: 0; - margin: 0; - overflow: visible; - line-height: inherit; - word-wrap: normal; - background-color: transparent; - border: 0; -} - -.mdViewerWrap .csv-data td, -.mdViewerWrap .csv-data th { - padding: 5px; - overflow: hidden; - font-size: 12px; - line-height: 1; - text-align: left; - white-space: nowrap; -} - -.mdViewerWrap .csv-data .blob-num { - padding: 10px 8px 9px; - text-align: right; - background: #ffffff; - border: 0; -} - -.mdViewerWrap .csv-data tr { - border-top: 0; -} - -.mdViewerWrap .csv-data th { - font-weight: 600; - background: #f6f8fa; - border-top: 0; -} - -.mdViewerWrap [data-footnote-ref]::before { - content: "["; -} - -.mdViewerWrap [data-footnote-ref]::after { - content: "]"; -} - -.mdViewerWrap .footnotes { - font-size: 12px; - color: #636c76; - border-top: 1px solid #d0d7de; -} - -.mdViewerWrap .footnotes ol { - padding-left: 16px; -} - -.mdViewerWrap .footnotes ol ul { - display: inline-block; - padding-left: 16px; - margin-top: 16px; -} - -.mdViewerWrap .footnotes li { - position: relative; -} - -.mdViewerWrap .footnotes li:target::before { - position: absolute; - top: -8px; - right: -8px; - bottom: -8px; - left: -24px; - pointer-events: none; - content: ""; - border: 2px solid #0969da; - border-radius: 6px; -} - -.mdViewerWrap .footnotes li:target { - color: #1f2328; -} - -.mdViewerWrap .footnotes .data-footnote-backref g-emoji { - font-family: monospace; -} - -.mdViewerWrap .pl-c { - color: #57606a; -} - -.mdViewerWrap .pl-c1, -.mdViewerWrap .pl-s .pl-v { - color: #0550ae; -} - -.mdViewerWrap .pl-e, -.mdViewerWrap .pl-en { - color: #6639ba; -} - -.mdViewerWrap .pl-smi, -.mdViewerWrap .pl-s .pl-s1 { - color: #24292f; -} - -.mdViewerWrap .pl-ent { - color: #0550ae; -} - -.mdViewerWrap .pl-k { - color: #cf222e; -} - -.mdViewerWrap .pl-s, -.mdViewerWrap .pl-pds, -.mdViewerWrap .pl-s .pl-pse .pl-s1, -.mdViewerWrap .pl-sr, -.mdViewerWrap .pl-sr .pl-cce, -.mdViewerWrap .pl-sr .pl-sre, -.mdViewerWrap .pl-sr .pl-sra { - color: #0a3069; -} - -.mdViewerWrap .pl-v, -.mdViewerWrap .pl-smw { - color: #953800; -} - -.mdViewerWrap .pl-bu { - color: #82071e; -} - -.mdViewerWrap .pl-ii { - color: #f6f8fa; - background-color: #82071e; -} - -.mdViewerWrap .pl-c2 { - color: #f6f8fa; - background-color: #cf222e; -} - -.mdViewerWrap .pl-sr .pl-cce { - font-weight: bold; - color: #116329; -} - -.mdViewerWrap .pl-ml { - color: #3b2300; -} - -.mdViewerWrap .pl-mh, -.mdViewerWrap .pl-mh .pl-en, -.mdViewerWrap .pl-ms { - font-weight: bold; - color: #0550ae; -} - -.mdViewerWrap .pl-mi { - font-style: italic; - color: #24292f; -} - -.mdViewerWrap .pl-mb { - font-weight: bold; - color: #24292f; -} - -.mdViewerWrap .pl-md { - color: #82071e; - background-color: #ffebe9; -} - -.mdViewerWrap .pl-mi1 { - color: #116329; - background-color: #dafbe1; -} - -.mdViewerWrap .pl-mc { - color: #953800; - background-color: #ffd8b5; -} - -.mdViewerWrap .pl-mi2 { - color: #eaeef2; - background-color: #0550ae; -} - -.mdViewerWrap .pl-mdr { - font-weight: bold; - color: #8250df; -} - -.mdViewerWrap .pl-ba { - color: #57606a; -} - -.mdViewerWrap .pl-sg { - color: #8c959f; -} - -.mdViewerWrap .pl-corl { - text-decoration: underline; - color: #0a3069; -} - -.mdViewerWrap [role="button"]:focus:not(:focus-visible), -.mdViewerWrap [role="tabpanel"][tabindex="0"]:focus:not(:focus-visible), -.mdViewerWrap button:focus:not(:focus-visible), -.mdViewerWrap summary:focus:not(:focus-visible), -.mdViewerWrap a:focus:not(:focus-visible) { - outline: none; - box-shadow: none; -} - -.mdViewerWrap [tabindex="0"]:focus:not(:focus-visible), -.mdViewerWrap details-dialog:focus:not(:focus-visible) { - outline: none; -} - -.mdViewerWrap g-emoji { - display: inline-block; - min-width: 1ch; - font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 1em; - font-style: normal !important; - font-weight: 400; - line-height: 1; - vertical-align: -0.075em; -} - -.mdViewerWrap g-emoji img { - width: 1em; - height: 1em; -} - -.mdViewerWrap .task-list-item { - list-style-type: none; -} - -.mdViewerWrap .task-list-item label { - font-weight: 400; -} - -.mdViewerWrap .task-list-item.enabled label { - cursor: pointer; -} - -.mdViewerWrap .task-list-item + .task-list-item { - margin-top: 0.25rem; -} - -.mdViewerWrap .task-list-item .handle { - display: none; -} - -.mdViewerWrap .task-list-item-checkbox { - margin: 0 0.2em 0.25em -1.4em; - vertical-align: middle; -} - -.mdViewerWrap .contains-task-list:dir(rtl) .task-list-item-checkbox { - margin: 0 -1.6em 0.25em 0.2em; -} - -.mdViewerWrap .contains-task-list { - position: relative; -} - -.mdViewerWrap .contains-task-list:hover .task-list-item-convert-container, -.mdViewerWrap - .contains-task-list:focus-within - .task-list-item-convert-container { - display: block; - width: auto; - height: 24px; - overflow: visible; - clip: auto; -} - -.mdViewerWrap ::-webkit-calendar-picker-indicator { - filter: invert(50%); -} - -.mdViewerWrap .markdown-alert { - padding: 0.5rem 1rem; - margin-bottom: 1rem; - color: inherit; - border-left: 0.25em solid #d0d7de; -} - -.mdViewerWrap .markdown-alert > :first-child { - margin-top: 0; -} - -.mdViewerWrap .markdown-alert > :last-child { - margin-bottom: 0; -} - -.mdViewerWrap .markdown-alert .markdown-alert-title { - display: flex; - font-weight: 500; - align-items: center; - line-height: 1; -} - -.mdViewerWrap .markdown-alert.markdown-alert-note { - border-left-color: #0969da; -} - -.mdViewerWrap .markdown-alert.markdown-alert-note .markdown-alert-title { - color: #0969da; -} - -.mdViewerWrap .markdown-alert.markdown-alert-important { - border-left-color: #8250df; -} - -.mdViewerWrap .markdown-alert.markdown-alert-important .markdown-alert-title { - color: #8250df; -} - -.mdViewerWrap .markdown-alert.markdown-alert-warning { - border-left-color: #bf8700; -} - -.mdViewerWrap .markdown-alert.markdown-alert-warning .markdown-alert-title { - color: #9a6700; -} - -.mdViewerWrap .markdown-alert.markdown-alert-tip { - border-left-color: #1a7f37; -} - -.mdViewerWrap .markdown-alert.markdown-alert-tip .markdown-alert-title { - color: #1a7f37; -} - -.mdViewerWrap .markdown-alert.markdown-alert-caution { - border-left-color: #cf222e; -} - -.mdViewerWrap .markdown-alert.markdown-alert-caution .markdown-alert-title { - color: #d1242f; -} - -.mdViewerWrap > *:first-child > .heading-element:first-child { - margin-top: 0 !important; -} diff --git a/projects/web/src/pages/extract/components/md-viewer/index.tsx b/projects/web/src/pages/extract/components/md-viewer/index.tsx deleted file mode 100644 index 5c708b5ae..000000000 --- a/projects/web/src/pages/extract/components/md-viewer/index.tsx +++ /dev/null @@ -1,278 +0,0 @@ -import { useEffect, useRef, useState } from "react"; -import { Tooltip } from "antd"; - -import cls from "classnames"; -import styles from "./index.module.scss"; -import { useDeepCompareEffect, useHover } from "ahooks"; -import IconFont from "@/components/icon-font"; -import { downloadFileUseAScript } from "@/utils/download"; -import { MD_DRIVE_PDF } from "@/constant/event"; -import { useIntl } from "react-intl"; -import LazyUrlMarkdown from "../url-markdown"; -import exitFullScreenSvg from "@/assets/pdf/exitFullScreen.svg"; -import fullScreenSvg from "@/assets/pdf/fullScreen.svg"; -import { MD_PREVIEW_TYPE } from "@/types/extract-task-type"; -import _ from "lodash"; -import { TaskIdResItem } from "@/api/extract"; -import useMdStore from "@/store/mdStore"; -import CodeMirror from "@/components/code-mirror"; -import { useParams } from "react-router-dom"; -import SaveStatus, { SaveStatusRef } from "@/components/SaveStatus"; - -interface IMdViewerProps { - md?: string; - className?: string; - filename?: string; - url?: string; - taskInfo: TaskIdResItem; - curPage: number; - fullScreen?: boolean; - setFullScreen?: (value?: boolean) => void; -} - -const MdViewer: React.FC = ({ - fullScreen, - setFullScreen, - taskInfo, - className = "", - curPage, -}) => { - const mdViewerPef = useRef(null); - const url = taskInfo?.fullMdLink || ""; - const containerRef = useRef(null); - const isHovering = useHover(containerRef); - const { formatMessage } = useIntl(); - const [displayType, setDisplayType] = useState(MD_PREVIEW_TYPE.preview); - const params = useParams(); - const { - setAllMdContentWithAnchor, - allMdContentWithAnchor, - setMdUrlArr, - mdContents, - updateMdContent, - } = useMdStore(); - const [lineWrap, setLineWrap] = useState(false); - - const threshold = 562 - 427; - const statusRef = useRef(null); - - const menuList = [ - { - name: formatMessage({ id: "extractor.markdown.preview" }), - code: MD_PREVIEW_TYPE.preview, - }, - { - name: formatMessage({ id: "extractor.markdown.code" }), - code: MD_PREVIEW_TYPE.code, - }, - ]; - - const getVisibleFromType = (str: string, type: string) => { - return str === type - ? "relative w-full h-full" - : "w-0 h-0 overflow-hidden hidden"; - }; - - const pushMdViewerScroll = (scrollType?: "instant" | "smooth") => { - const container = document.getElementById(`md-container`); - // md渲染的时候用一个元素包括anchor - const element = - displayType === MD_PREVIEW_TYPE.preview - ? document.getElementById(`md-anchor-${curPage - 1}`)?.parentElement - : document.getElementById(`code-${curPage - 1}`); - if (element && container) { - container.scrollTo({ - top: element.offsetTop - 124, - behavior: scrollType || "smooth", - }); - } - }; - - useEffect(() => { - if (isHovering) return; - pushMdViewerScroll(); - }, [curPage, isHovering]); - - useEffect(() => { - pushMdViewerScroll("instant"); - }, [displayType]); - - useEffect(() => { - if (!isHovering) return; - const handleScroll = () => { - if (!containerRef.current) return; - - taskInfo?.markdownUrl?.forEach((page, index) => { - const element = - displayType === MD_PREVIEW_TYPE.preview - ? document.getElementById(`md-anchor-${index}`)?.parentElement - : document.getElementById(`code-${index}`); - - if (element) { - const rect = element.getBoundingClientRect(); - - if (rect.top <= threshold) { - document.dispatchEvent( - new CustomEvent(MD_DRIVE_PDF, { - detail: index, - }) - ); - } - } - }); - }; - - const container = containerRef.current; - if (container) { - container.addEventListener("scroll", handleScroll); - } - - return () => { - if (container) { - container?.removeEventListener("scroll", handleScroll); - } - }; - }, [taskInfo, isHovering, displayType]); - - useDeepCompareEffect(() => { - if (taskInfo?.markdownUrl) { - setMdUrlArr(taskInfo?.markdownUrl); - } - statusRef?.current?.reset(); - }, [taskInfo?.markdownUrl, params?.jobID]); - - const handleContentChange = (val: string, index: number) => { - setAllMdContentWithAnchor(val); - statusRef?.current?.triggerSave(); - if (taskInfo?.file_key) { - updateMdContent(taskInfo.file_key!, index, val); - } - }; - - return ( -
    -
    -
      - {menuList.map((item) => ( -
    • setDisplayType(item.code)} - > - {item.name} -
    • - ))} -
    - - - {displayType === "code" && ( - <> - - setLineWrap?.(!lineWrap)} - /> - - - - )} - - setFullScreen?.(!fullScreen)} - > - {!fullScreen ? ( - - ) : ( - - )} - - - - - - downloadFileUseAScript( - url, - `${_(taskInfo?.fileName).split(".").slice(0, -1).join(".")}.md` - ) - } - /> - -
    -
    -
    - -
    -
    - {taskInfo?.markdownUrl?.map((url: string, index: number) => { - const md = mdContents[url]?.content || ""; - if (!md) return null; - return ( -
    - handleContentChange(val, index)} - editable - className="w-full h-full" - /> -
    - ); - })} -
    -
    -
    - ); -}; -export default MdViewer; diff --git a/projects/web/src/pages/extract/components/md-viewer/test.md b/projects/web/src/pages/extract/components/md-viewer/test.md deleted file mode 100644 index aa6093aa7..000000000 --- a/projects/web/src/pages/extract/components/md-viewer/test.md +++ /dev/null @@ -1,85 +0,0 @@ -# 欢迎来到我的博客 - -这是我的个人博客,我会在这里分享我的想法、经验和学习笔记。 - -## 关于我 - -我是一名热爱技术的程序员,专注于 Web 开发领域。我喜欢探索新的技术和框架,并不断学习和提升自己的技能。 - -在这个博客中,你可以找到以下内容: - -- 技术文章和教程 -- 个人项目分享 -- 学习笔记和总结 -- 生活点滴和随笔 - -如果你对我的文章感兴趣,欢迎留言交流和讨论。 - -## 最新文章 - -### 1. 如何使用 React Hooks 优化组件性能 - -在这篇文章中,我将介绍 React Hooks 的基本概念,并通过示例说明如何使用 Hooks 来优化组件的性能。我们会讨论以下内容: - -- useState 和 useEffect 的使用 -- useCallback 和 useMemo 的性能优化技巧 -- 自定义 Hooks 的创建和使用 - -通过学习和应用这些技巧,你可以编写出更加高效和可维护的 React 组件。 - -### 2. 探索 Node.js 的异步编程 - -Node.js 以其非阻塞的异步编程模型而闻名。在这篇文章中,我们将深入探讨 Node.js 中的异步编程概念和技巧。主要内容包括: - -- 回调函数的使用 -- Promise 的链式调用和错误处理 -- async/await 的使用和优势 -- 事件循环和异步 I/O - -通过掌握这些异步编程技巧,你可以更好地利用 Node.js 的优势,编写出高性能和可扩展的应用程序。 - -## 联系我 - -如果你想与我联系,可以通过以下方式找到我: - -- 邮件: example@example.com -- GitHub: [https://github.com/username](https://github.com/username) -- Twitter: [@username](https://twitter.com/username) - -欢迎与我交流和分享你的想法! - ---- - -# 第二页 - -## 我的项目 - -在这个部分,我将介绍一些我最近参与的个人项目。 - -### 1. ToDo 应用 - -这是一个简单的 ToDo 应用,使用 React 和 Firebase 实现。主要功能包括: - -- 添加和删除任务 -- 标记任务为已完成 -- 实时同步和数据持久化 - -通过这个项目,我学习了 React 组件的基本开发和 Firebase 的实时数据库的使用。你可以在这个仓库中找到完整的源代码: [https://github.com/username/todo-app](https://github.com/username/todo-app) - -### 2. 天气预报应用 - -这是一个基于 Node.js 和 Express 的天气预报应用。它使用第三方 API 获取天气数据,并以 Web 页面的形式展示给用户。主要功能包括: - -- 根据用户输入的城市名获取天气信息 -- 显示当前天气状况和未来几天的天气预报 -- 支持多个城市的天气查询 - -通过这个项目,我学习了如何使用 Node.js 和 Express 构建 Web 应用,以及如何与外部 API 进行交互。你可以在这个仓库中找到完整的源代码: [https://github.com/username/weather-app](https://github.com/username/weather-app) - -## 总结 - -这就是我的博客的前两页内容。我会不定期更新文章和分享我的项目。如果你对我的文章或项目感兴趣,欢迎留言交流。 - -如果你有任何建议或意见,也欢迎随时联系我。希望我的博客能给你带来一些有价值的信息和启发。 - -谢谢阅读! diff --git a/projects/web/src/pages/extract/components/pdf-extraction/index.tsx b/projects/web/src/pages/extract/components/pdf-extraction/index.tsx deleted file mode 100644 index 8f907e14d..000000000 --- a/projects/web/src/pages/extract/components/pdf-extraction/index.tsx +++ /dev/null @@ -1,154 +0,0 @@ -import cls from "classnames"; -import { - ExtractorUploadButton, - LinearButton, -} from "../pdf-upload-button/index"; -import { useState } from "react"; -import MdViewer from "../md-viewer"; -import PDFViewerMemo from "../pdf-viewer"; - -import LoadingIcon from "../../components/loading-icon"; -import emptySvg from "@/assets/svg/empty.svg"; - -import { useIntl, FormattedMessage } from "react-intl"; - -import { useJobExtraction } from "@/store/jobProgress"; -import { postReUploadExtractTask } from "@/api/extract"; -import { useParams } from "react-router-dom"; - -interface IPdfExtractionProps { - className?: string; -} - -const PdfExtraction = ({ className = "" }: IPdfExtractionProps) => { - const { - refreshQueue, - taskInfo, - isLoading: queueLoading, - isError: compileError, - } = useJobExtraction(); - - const [pdfState, setPdfState] = useState({ - page: 1, - }); - const curPage = pdfState.page; - - const { jobID } = useParams(); - - const { formatMessage } = useIntl(); - - const [fullScreen, setFullScreen] = useState(false); - - const afterUploadSuccess = () => { - refreshQueue(); - }; - - const isQueueAndExtract = queueLoading; - const hiddenQueuePage = !isQueueAndExtract - ? "!w-0 !h-0 overflow-hidden " - : ""; - const hiddenResultPage = isQueueAndExtract ? "!w-0 !h-0 overflow-hidden" : ""; - - const getLayoutClassName = (_fullScreen?: boolean) => { - return { - left: _fullScreen ? "!w-0 !h-0 overflow-hidden hidden" : "min-w-[50%]", - right: _fullScreen ? "w-full " : "min-w-[50%]", - }; - }; - - const afterAsyncCheck = async () => { - return Promise.resolve(true); - }; - - const getExtractionStatusText = (rank: number) => { - switch (true) { - case rank > 1: - return ( - - ); - case rank === 1: - return formatMessage({ id: "extractor.common.extracting" }); - - default: - return ""; - } - }; - - return ( - <> -
    - - -
    - {getExtractionStatusText(taskInfo?.rank)} -
    -
    - -
    - {!compileError ? ( -
    -
    - setPdfState(p)} - /> -
    -
    - setFullScreen(!!bool)} - /> -
    -
    - ) : ( -
    - emptySvg - - {formatMessage({ - id: "extractor.failed", - })} - - { - await postReUploadExtractTask(String(jobID)); - refreshQueue(); - }} - className="mt-4" - text={formatMessage({ - id: "common.retry", - })} - /> -
    - )} -
    - - ); -}; - -export default PdfExtraction; diff --git a/projects/web/src/pages/extract/components/pdf-upload-button/index.module.scss b/projects/web/src/pages/extract/components/pdf-upload-button/index.module.scss deleted file mode 100644 index 5499a5140..000000000 --- a/projects/web/src/pages/extract/components/pdf-upload-button/index.module.scss +++ /dev/null @@ -1,53 +0,0 @@ -.gradientBtn { - width: 188px; - height: 37px; - border-radius: 8px; - font-size: 14px; - color: rgba(255, 255, 255, 0.95); - background: linear-gradient(110deg, #38A0FF -33.56%, #0D53DE 32.84%, #5246FF 102.05%); - // background: #3477EB; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - &:hover { - background: #3477EB; - } - :global { - .ant-upload-list-item-container { - // display: none !important; - } - .ant-upload { - display: flex; - align-items: center; - justify-content: center; - width: 100% !important; - height: 100% !important; - line-height: 100% !important; - } - .ant-upload-drag { - border: none !important; - } - } -} - -.linearBtn { - width: 188px; - height: 37px; - border-radius: 8px; - font-size: 14px; - color: rgba(255, 255, 255, 0.95); - background: linear-gradient(110deg, #38A0FF -33.56%, #0D53DE 32.84%, #5246FF 102.05%); - // background: #3477EB; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - &:hover { - color: rgba(255, 255, 255, 0.95) !important; - background: linear-gradient(110deg, #38A0FF -33.56%, #38A0FF 32.84%, #38A0FF 102.05%) !important; - } - &:active { - - } -} diff --git a/projects/web/src/pages/extract/components/pdf-upload-button/index.tsx b/projects/web/src/pages/extract/components/pdf-upload-button/index.tsx deleted file mode 100644 index 0e5566789..000000000 --- a/projects/web/src/pages/extract/components/pdf-upload-button/index.tsx +++ /dev/null @@ -1,118 +0,0 @@ -import { Button } from "antd"; -import cls from "classnames"; -import UploadingOutlined from "@/assets/imgs/online.experience/UploadingOutlined.svg"; -import styles from "./index.module.scss"; -import Upload from "@/components/upload"; -import { ReactNode } from "react"; -import { - postExtractTask, - postReUploadExtractTask, - SubmitRes, -} from "@/api/extract"; - -import { useParams } from "react-router-dom"; -import { ExtractTaskType } from "@/types/extract-task-type"; - -interface IPdfUploadButtonProps { - afterUploadSuccess?: (submitTask: SubmitRes) => void; - afterAsyncCheck?: () => Promise; - text?: string | ReactNode; - className?: string; - showIcon?: boolean; - beforeUpload?: () => void; - onUploadError?: () => void; - accept: string; - extractType: ExtractTaskType; - taskType?: string; - submitType?: "submit" | "reUpload"; - isOcr?: boolean; -} - -interface ILinearButtonProps { - className?: string; - text?: string | ReactNode; - onClick?: () => void; -} - -export const LinearButton = ({ - className = "", - onClick, - text, -}: ILinearButtonProps) => { - return ( - - ); -}; - -export const ExtractorUploadButton = ({ - text = "上传PDF", - className = "", - afterAsyncCheck, - afterUploadSuccess, - beforeUpload: beforeLocalUpload, - onUploadError, - showIcon = true, - accept, - extractType, - taskType, - submitType, - isOcr, -}: IPdfUploadButtonProps) => { - const urlParams = useParams(); - const beforeUpload = async () => { - beforeLocalUpload?.(); - const isCheck = await afterAsyncCheck?.(); - return isCheck; - }; - const onChange = async (pdfFile: any) => { - if (pdfFile?.file?.status === "done") { - const res = - submitType === "reUpload" - ? await postReUploadExtractTask(String(urlParams?.jobID)) - : await postExtractTask({ - fileKey: pdfFile?.file?.response?.data?.data?.file_key, - fileName: pdfFile?.file?.name, - taskType: extractType, - isOcr, - }); - - if (res) { - if (!("error" in res)) { - afterUploadSuccess?.({ - ...(res || {}), - type: extractType, - } as any); - } else { - onUploadError?.(); - } - } else { - onUploadError?.(); - } - } - }; - - return ( - <> - -
    - {showIcon && } - {text} -
    -
    - - ); -}; diff --git a/projects/web/src/pages/extract/components/pdf-upload/index.module.scss b/projects/web/src/pages/extract/components/pdf-upload/index.module.scss deleted file mode 100644 index 45534aa2b..000000000 --- a/projects/web/src/pages/extract/components/pdf-upload/index.module.scss +++ /dev/null @@ -1,115 +0,0 @@ -.textBtn { - background-image: none !important; - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background: linear-gradient(111deg, #0D53DE -21.44%, #5246FF 102%) !important; - background-clip: text !important; - -webkit-background-clip: text !important; - -webkit-text-fill-color: transparent !important; - height: 1.5rem !important; - font-weight: 600; - height: 280px !important; - width: 600px !important; - overflow: hidden; -} - -.uploadText { - font-feature-settings: 'liga' off, 'clig' off; - font-family: "PingFang SC"; - font-size: 18px; - font-style: normal; - font-weight: 600; - line-height: 24px; /* 133.333% */ - background: linear-gradient(107deg, #38A0FF -24.14%, #0D53DE 30.09%, #5246FF 86.61%); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; -} - -.uploadDescText { - font-size: 13px; - line-height: 20px; - font-weight: 400; - background: linear-gradient(107deg, rgba(18,19,22,0.6) -24.14%, rgba(18,19,22,0.6) 100.09% ); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - margin-bottom: 1rem; - margin-top: 0.5rem; -} - -.linearText { - font-size: 13px; - line-height: 20px; - font-weight: 400; - background: linear-gradient(107deg, rgba(18,19,22,0.6) -24.14%, rgba(18,19,22,0.6) 100.09% ); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - - - &-item { - font-weight: 400; - font-size: 13px; - line-height: 20px; - margin-right: 1rem; - background: linear-gradient(107deg, #38A0FF -24.14%, #0D53DE 30.09%, #5246FF 86.61%); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - &:hover { - background: #3477EB; - background: linear-gradient(107deg, #3477EB -24.14%, #3477EB 100.09% ); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - } - } -} - -.uploadSection { - border-radius: 12px; - border: 1px dashed var(---Brand1-6, #0D53DE); - background: linear-gradient(180deg, rgba(92, 147, 255, 0.10) -130.23%, rgba(255, 255, 255, 1) 83.57%); - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - filter: blur(0px); - height: 280px !important; - width: 600px !important; - - &:hover { - background: linear-gradient(180deg, rgb(245, 248, 255) -130.23%, rgb(245, 248, 255) 83.57%); - } - - -} - -.item { - border-radius: 12px; - border: 1px solid rgba(198, 217, 255, 0.20); - background: linear-gradient(155deg, rgba(92, 147, 255, 0.10) -13.23%, rgba(255, 255, 255, 0.00) 83.57%); - filter: blur(0px); - padding: 42px 20px; -} - -.customPopover { - :global { - - .ant-popover-content, .ant-popover-inner { - border-radius: 12px !important; - overflow: hidden; - box-shadow: 0px 8px 26px 0px rgba(0, 0, 0, 0.12); - } - - .ant-popover-inner-content { - padding: 12px !important; - } - - .ant-popover-arrow { - display: none !important; - } - } -} diff --git a/projects/web/src/pages/extract/components/pdf-upload/index.tsx b/projects/web/src/pages/extract/components/pdf-upload/index.tsx deleted file mode 100644 index 2721d85e7..000000000 --- a/projects/web/src/pages/extract/components/pdf-upload/index.tsx +++ /dev/null @@ -1,116 +0,0 @@ -import UploadBg from "@/assets/imgs/online.experience/file-upload-bg.svg"; -import style from "./index.module.scss"; -import { ExtractorUploadButton } from "../pdf-upload-button"; -import { useNavigate } from "react-router-dom"; -import cls from "classnames"; - -import { SubmitRes } from "@/api/extract"; -import { Checkbox, Popover } from "antd"; - -import { useIntl } from "react-intl"; -import IconFont from "@/components/icon-font"; - -import { ADD_TASK_LIST } from "@/constant/event"; -import { useState } from "react"; - -const PdfUpload = () => { - const navigate = useNavigate(); - - const { formatMessage } = useIntl(); - - const [checked, setChecked] = useState(false); - - const afterUploadSuccess = (data: SubmitRes) => { - navigate(`/OpenSourceTools/Extractor/PDF/${data?.id}`); - setTimeout(() => { - document.dispatchEvent( - new CustomEvent(ADD_TASK_LIST, { - detail: data, - }) - ); - }, 10); - }; - - const afterAsyncCheck = async () => { - return Promise.resolve(true); - }; - - return ( -
    -
    -
    - {formatMessage({ id: "extractor.pdf.title" })} -
    -
    - {formatMessage({ id: "extractor.pdf.subTitle" })} -
    - - - - - {formatMessage({ id: "extractor.common.upload" })} - - { - e.preventDefault(); - e.stopPropagation(); - }} - > - setChecked(!checked)} - /> - {formatMessage({ id: "extractor.pdf.ocr" })} - - {formatMessage({ - id: "extractor.pdf.ocr.popover", - })} -
    - } - placement="right" - showArrow={false} - overlayClassName={style.customPopover} - > - - - - {/* - {formatMessage({ id: "extractor.common.pdf.upload.tip" })} - */} -
    - } - className={style.textBtn} - showIcon={false} - /> - -
    - {formatMessage({ - id: "extractor.law", - })} -
    - - ); -}; -export default PdfUpload; diff --git a/projects/web/src/pages/extract/components/pdf-viewer/index.tsx b/projects/web/src/pages/extract/components/pdf-viewer/index.tsx deleted file mode 100644 index 9be6d30b0..000000000 --- a/projects/web/src/pages/extract/components/pdf-viewer/index.tsx +++ /dev/null @@ -1,146 +0,0 @@ -import { MD_DRIVE_PDF } from "@/constant/event"; -import { message } from "antd"; -import { TaskIdProgress, TaskIdResItem } from "@/api/extract"; -import React, { useEffect, useRef } from "react"; -import { useLatest } from "ahooks"; -import { - DEFAULT_COLOR_SECTION, - PDF_COLOR_PICKER, -} from "@/constant/pdf-color-picker"; - -interface PDFViewerState { - page: number; -} - -interface Bbox { - type: "title" | "text" | "discarded" | "image"; - bbox: [number, number, number, number]; - color: any; -} - -interface ExtractLayerItem { - preproc_blocks: Bbox[]; - page_idx: number; - page_size: [number, number]; - discarded_blocks: Bbox[]; -} - -// func -const formatJson = (layerList: ExtractLayerItem[]) => { - return layerList?.map((i) => { - let bboxes = [] as { type: string; bbox: number[]; color: any }[]; - - i?.preproc_blocks?.forEach((item) => { - bboxes.push({ - type: item.type, - bbox: item.bbox, - color: PDF_COLOR_PICKER?.[item.type] || DEFAULT_COLOR_SECTION, - }); - }); - - i?.discarded_blocks?.forEach((item) => { - bboxes.push({ - type: item.type, - bbox: item.bbox, - color: PDF_COLOR_PICKER?.[item.type] || DEFAULT_COLOR_SECTION, - }); - }); - - return { - ...i, - bboxes, - }; - }); -}; - -const PDFViewer = ({ - taskInfo, - onChange, -}: { - taskInfo: TaskIdProgress & TaskIdResItem; - onChange: (state: PDFViewerState) => void; -}) => { - const iframeRef = useRef(null); - const _layerData = useLatest(taskInfo?.content); - - const pdfUrl = taskInfo?.url; - - const sendMessageToIframe = (type: string, message: any) => { - if (iframeRef.current) { - iframeRef.current.contentWindow?.postMessage( - { - type, - data: message, - }, - import.meta.env.BASE_URL || "*" - ); - } - }; - - useEffect(() => { - const handleMessage = (event: MessageEvent) => { - if (event?.data?.pageNum) { - const num = event?.data?.pageNum || 1; - sendMessageToIframe("pageChange", num); - } - - if (event?.data?.pageNumDetail) { - const pageNumDetail = event?.data?.pageNumDetail || 1; - onChange?.({ - page: pageNumDetail, - }); - sendMessageToIframe("pageNumDetail", pageNumDetail); - } - - if (event?.data?.status) { - const status = event?.data?.status; - if (status === "loaded") { - sendMessageToIframe( - "initExtractLayerData", - formatJson(_layerData?.current as any) - ); - sendMessageToIframe("title", ""); - } - } - - if (event?.data?.error) { - message?.error(event?.data?.error); - } - }; - - window.addEventListener("message", handleMessage); - - return () => { - window.removeEventListener("message", handleMessage); - }; - }, []); - - useEffect(() => { - const handlePageChange = ({ detail }: CustomEvent) => { - sendMessageToIframe("setPage", detail + 1); - }; - document.addEventListener(MD_DRIVE_PDF, handlePageChange as EventListener); - return () => { - document.removeEventListener( - MD_DRIVE_PDF, - handlePageChange as EventListener - ); - }; - }, []); - - return ( - <> - {pdfUrl ? ( - - ) : null} - - ); -}; - -export default PDFViewer; diff --git a/projects/web/src/pages/extract/components/url-markdown/index.module.scss b/projects/web/src/pages/extract/components/url-markdown/index.module.scss deleted file mode 100644 index 6a1f2f0fc..000000000 --- a/projects/web/src/pages/extract/components/url-markdown/index.module.scss +++ /dev/null @@ -1,1142 +0,0 @@ -/*light*/ - -// 自定义滚动跳 -.scrollBar { - // 火狐 - scrollbar-color: #EBECF0 transparent; - scrollbar-width: thin; - - // 定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸 - &::-webkit-scrollbar { - width: 4px; - height: 6px; - background-color: transparent; - } - - // 定义滚动条轨道 内阴影+圆角 - &::-webkit-scrollbar-track { - background-color: #fff; - border-radius: 10px; - box-shadow: transparent; - } - - // 定义滑块 内阴影+圆角 - &::-webkit-scrollbar-thumb { - background: #EBECF0; - border-radius: 10px; - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.6); - } - } - - .mdViewerWrap { - font-size: 10px; - } - - .mdViewerWrap { - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; - margin: 0; - color: #1f2328; - background-color: #ffffff; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", - Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; - font-size: 16px; - line-height: 1.5; - word-wrap: break-word; - scroll-behavior: auto; - } - - .mdViewerWrap .octicon { - display: inline-block; - fill: currentColor; - vertical-align: text-bottom; - } - - .mdViewerWrap h1:hover .anchor .octicon-link:before, - .mdViewerWrap h2:hover .anchor .octicon-link:before, - .mdViewerWrap h3:hover .anchor .octicon-link:before, - .mdViewerWrap h4:hover .anchor .octicon-link:before, - .mdViewerWrap h5:hover .anchor .octicon-link:before, - .mdViewerWrap h6:hover .anchor .octicon-link:before { - width: 16px; - height: 16px; - content: " "; - display: inline-block; - background-color: currentColor; - -webkit-mask-image: url("data:image/svg+xml,"); - mask-image: url("data:image/svg+xml,"); - } - - .mdViewerWrap details, - .mdViewerWrap figcaption, - .mdViewerWrap figure { - display: block; - } - - .mdViewerWrap summary { - display: list-item; - } - - .mdViewerWrap [hidden] { - display: none !important; - } - - .mdViewerWrap a { - background-color: transparent; - color: #0969da; - text-decoration: none; - } - - .mdViewerWrap abbr[title] { - border-bottom: none; - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; - } - - .mdViewerWrap b, - .mdViewerWrap strong { - font-weight: 600; - } - - .mdViewerWrap dfn { - font-style: italic; - } - - .mdViewerWrap h1 { - margin: 0.67em 0; - font-weight: 600; - padding-bottom: 0.3em; - font-size: 2em; - border-bottom: 1px solid #d0d7deb3; - } - - .mdViewerWrap mark { - background-color: #fff8c5; - color: #1f2328; - } - - .mdViewerWrap small { - font-size: 90%; - } - - .mdViewerWrap sub, - .mdViewerWrap sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; - } - - .mdViewerWrap sub { - bottom: -0.25em; - } - - .mdViewerWrap sup { - top: -0.5em; - } - - .mdViewerWrap img { - border-style: none; - max-width: 100%; - box-sizing: content-box; - background-color: #ffffff; - } - - .mdViewerWrap code, - .mdViewerWrap kbd, - .mdViewerWrap pre, - .mdViewerWrap samp { - font-family: monospace; - font-size: 1em; - } - - .mdViewerWrap figure { - margin: 1em 40px; - } - - .mdViewerWrap hr { - box-sizing: content-box; - overflow: hidden; - background: transparent; - border-bottom: 1px solid #d0d7deb3; - height: 0.25em; - padding: 0; - margin: 24px 0; - background-color: #d0d7de; - border: 0; - } - - .mdViewerWrap input { - font: inherit; - margin: 0; - overflow: visible; - font-family: inherit; - font-size: inherit; - line-height: inherit; - } - - .mdViewerWrap [type="button"], - .mdViewerWrap [type="reset"], - .mdViewerWrap [type="submit"] { - -webkit-appearance: button; - appearance: button; - } - - .mdViewerWrap [type="checkbox"], - .mdViewerWrap [type="radio"] { - box-sizing: border-box; - padding: 0; - } - - .mdViewerWrap [type="number"]::-webkit-inner-spin-button, - .mdViewerWrap [type="number"]::-webkit-outer-spin-button { - height: auto; - } - - .mdViewerWrap [type="search"]::-webkit-search-cancel-button, - .mdViewerWrap [type="search"]::-webkit-search-decoration { - -webkit-appearance: none; - appearance: none; - } - - .mdViewerWrap ::-webkit-input-placeholder { - color: inherit; - opacity: 0.54; - } - - .mdViewerWrap ::-webkit-file-upload-button { - -webkit-appearance: button; - appearance: button; - font: inherit; - } - - .mdViewerWrap a:hover { - text-decoration: underline; - } - - .mdViewerWrap ::placeholder { - color: #636c76; - opacity: 1; - } - - .mdViewerWrap hr::before { - display: table; - content: ""; - } - - .mdViewerWrap hr::after { - display: table; - clear: both; - content: ""; - } - - .mdViewerWrap table { - border-spacing: 0; - border-collapse: collapse; - display: block; - width: max-content; - max-width: 100%; - overflow: auto; - } - - .mdViewerWrap td, - .mdViewerWrap th { - padding: 0; - } - - .mdViewerWrap details summary { - cursor: pointer; - } - - .mdViewerWrap details:not([open]) > *:not(summary) { - display: none; - } - - .mdViewerWrap a:focus, - .mdViewerWrap [role="button"]:focus, - .mdViewerWrap input[type="radio"]:focus, - .mdViewerWrap input[type="checkbox"]:focus { - outline: 2px solid #0969da; - outline-offset: -2px; - box-shadow: none; - } - - .mdViewerWrap a:focus:not(:focus-visible), - .mdViewerWrap [role="button"]:focus:not(:focus-visible), - .mdViewerWrap input[type="radio"]:focus:not(:focus-visible), - .mdViewerWrap input[type="checkbox"]:focus:not(:focus-visible) { - outline: solid 1px transparent; - } - - .mdViewerWrap a:focus-visible, - .mdViewerWrap [role="button"]:focus-visible, - .mdViewerWrap input[type="radio"]:focus-visible, - .mdViewerWrap input[type="checkbox"]:focus-visible { - outline: 2px solid #0969da; - outline-offset: -2px; - box-shadow: none; - } - - .mdViewerWrap a:not([class]):focus, - .mdViewerWrap a:not([class]):focus-visible, - .mdViewerWrap input[type="radio"]:focus, - .mdViewerWrap input[type="radio"]:focus-visible, - .mdViewerWrap input[type="checkbox"]:focus, - .mdViewerWrap input[type="checkbox"]:focus-visible { - outline-offset: 0; - } - - .mdViewerWrap kbd { - display: inline-block; - padding: 3px 5px; - font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, - Liberation Mono, monospace; - line-height: 10px; - color: #1f2328; - vertical-align: middle; - background-color: #f6f8fa; - border: solid 1px #afb8c133; - border-bottom-color: #afb8c133; - border-radius: 6px; - box-shadow: inset 0 -1px 0 #afb8c133; - } - - .mdViewerWrap h1, - .mdViewerWrap h2, - .mdViewerWrap h3, - .mdViewerWrap h4, - .mdViewerWrap h5, - .mdViewerWrap h6 { - margin-top: 24px; - margin-bottom: 16px; - font-weight: 600; - line-height: 1.25; - } - - .mdViewerWrap h2 { - font-weight: 600; - padding-bottom: 0.3em; - font-size: 1.5em; - border-bottom: 1px solid #d0d7deb3; - } - - .mdViewerWrap h3 { - font-weight: 600; - font-size: 1.25em; - } - - .mdViewerWrap h4 { - font-weight: 600; - font-size: 1em; - } - - .mdViewerWrap h5 { - font-weight: 600; - font-size: 0.875em; - } - - .mdViewerWrap h6 { - font-weight: 600; - font-size: 0.85em; - color: #636c76; - } - - .mdViewerWrap p { - margin-top: 0; - margin-bottom: 10px; - font-size: 1.25em; - } - - .mdViewerWrap blockquote { - margin: 0; - padding: 0 1em; - color: #636c76; - border-left: 0.25em solid #d0d7de; - } - - .mdViewerWrap ul, - .mdViewerWrap ol { - margin-top: 0; - margin-bottom: 0; - padding-left: 2em; - } - - .mdViewerWrap ol ol, - .mdViewerWrap ul ol { - list-style-type: lower-roman; - } - - .mdViewerWrap ul ul ol, - .mdViewerWrap ul ol ol, - .mdViewerWrap ol ul ol, - .mdViewerWrap ol ol ol { - list-style-type: lower-alpha; - } - - .mdViewerWrap dd { - margin-left: 0; - } - - .mdViewerWrap tt, - .mdViewerWrap code, - .mdViewerWrap samp { - font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, - Liberation Mono, monospace; - font-size: 12px; - } - - .mdViewerWrap pre { - margin-top: 0; - margin-bottom: 0; - font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, - Liberation Mono, monospace; - font-size: 12px; - word-wrap: normal; - } - - .mdViewerWrap .octicon { - display: inline-block; - overflow: visible !important; - vertical-align: text-bottom; - fill: currentColor; - } - - .mdViewerWrap input::-webkit-outer-spin-button, - .mdViewerWrap input::-webkit-inner-spin-button { - margin: 0; - -webkit-appearance: none; - appearance: none; - } - - .mdViewerWrap .mr-2 { - margin-right: 0.5rem !important; - } - - .mdViewerWrap::before { - display: table; - content: ""; - } - - .mdViewerWrap::after { - display: table; - clear: both; - content: ""; - } - - .mdViewerWrap > *:first-child { - margin-top: 0 !important; - } - - .mdViewerWrap > *:last-child { - margin-bottom: 0 !important; - } - - .mdViewerWrap a:not([href]) { - color: inherit; - text-decoration: none; - } - - .mdViewerWrap .absent { - color: #d1242f; - } - - .mdViewerWrap .anchor { - float: left; - padding-right: 4px; - margin-left: -20px; - line-height: 1; - } - - .mdViewerWrap .anchor:focus { - outline: none; - } - - .mdViewerWrap p, - .mdViewerWrap blockquote, - .mdViewerWrap ul, - .mdViewerWrap ol, - .mdViewerWrap dl, - .mdViewerWrap table, - .mdViewerWrap pre, - .mdViewerWrap details { - margin-top: 0; - margin-bottom: 16px; - } - - .mdViewerWrap blockquote > :first-child { - margin-top: 0; - } - - .mdViewerWrap blockquote > :last-child { - margin-bottom: 0; - } - - .mdViewerWrap h1 .octicon-link, - .mdViewerWrap h2 .octicon-link, - .mdViewerWrap h3 .octicon-link, - .mdViewerWrap h4 .octicon-link, - .mdViewerWrap h5 .octicon-link, - .mdViewerWrap h6 .octicon-link { - color: #1f2328; - vertical-align: middle; - visibility: hidden; - } - - .mdViewerWrap h1:hover .anchor, - .mdViewerWrap h2:hover .anchor, - .mdViewerWrap h3:hover .anchor, - .mdViewerWrap h4:hover .anchor, - .mdViewerWrap h5:hover .anchor, - .mdViewerWrap h6:hover .anchor { - text-decoration: none; - } - - .mdViewerWrap h1:hover .anchor .octicon-link, - .mdViewerWrap h2:hover .anchor .octicon-link, - .mdViewerWrap h3:hover .anchor .octicon-link, - .mdViewerWrap h4:hover .anchor .octicon-link, - .mdViewerWrap h5:hover .anchor .octicon-link, - .mdViewerWrap h6:hover .anchor .octicon-link { - visibility: visible; - } - - .mdViewerWrap h1 tt, - .mdViewerWrap h1 code, - .mdViewerWrap h2 tt, - .mdViewerWrap h2 code, - .mdViewerWrap h3 tt, - .mdViewerWrap h3 code, - .mdViewerWrap h4 tt, - .mdViewerWrap h4 code, - .mdViewerWrap h5 tt, - .mdViewerWrap h5 code, - .mdViewerWrap h6 tt, - .mdViewerWrap h6 code { - padding: 0 0.2em; - font-size: inherit; - } - - .mdViewerWrap summary h1, - .mdViewerWrap summary h2, - .mdViewerWrap summary h3, - .mdViewerWrap summary h4, - .mdViewerWrap summary h5, - .mdViewerWrap summary h6 { - display: inline-block; - } - - .mdViewerWrap summary h1 .anchor, - .mdViewerWrap summary h2 .anchor, - .mdViewerWrap summary h3 .anchor, - .mdViewerWrap summary h4 .anchor, - .mdViewerWrap summary h5 .anchor, - .mdViewerWrap summary h6 .anchor { - margin-left: -40px; - } - - .mdViewerWrap summary h1, - .mdViewerWrap summary h2 { - padding-bottom: 0; - border-bottom: 0; - } - - .mdViewerWrap ul.no-list, - .mdViewerWrap ol.no-list { - padding: 0; - list-style-type: none; - } - - .mdViewerWrap ol[type="a s"] { - list-style-type: lower-alpha; - } - - .mdViewerWrap ol[type="A s"] { - list-style-type: upper-alpha; - } - - .mdViewerWrap ol[type="i s"] { - list-style-type: lower-roman; - } - - .mdViewerWrap ol[type="I s"] { - list-style-type: upper-roman; - } - - .mdViewerWrap ol[type="1"] { - list-style-type: decimal; - } - - .mdViewerWrap div > ol:not([type]) { - list-style-type: decimal; - } - - .mdViewerWrap ul ul, - .mdViewerWrap ul ol, - .mdViewerWrap ol ol, - .mdViewerWrap ol ul { - margin-top: 0; - margin-bottom: 0; - } - - .mdViewerWrap li > p { - margin-top: 16px; - } - - .mdViewerWrap li + li { - margin-top: 0.25em; - } - - .mdViewerWrap dl { - padding: 0; - } - - .mdViewerWrap dl dt { - padding: 0; - margin-top: 16px; - font-size: 1em; - font-style: italic; - font-weight: 600; - } - - .mdViewerWrap dl dd { - padding: 0 16px; - margin-bottom: 16px; - } - - .mdViewerWrap table th { - font-weight: 600; - } - - .mdViewerWrap table th, - .mdViewerWrap table td { - padding: 6px 13px; - border: 1px solid #d0d7de; - } - - .mdViewerWrap table td > :last-child { - margin-bottom: 0; - } - - .mdViewerWrap table tr { - background-color: #ffffff; - border-top: 1px solid #d0d7deb3; - } - - .mdViewerWrap table tr:nth-child(2n) { - background-color: #f6f8fa; - } - - .mdViewerWrap table img { - background-color: transparent; - } - - .mdViewerWrap img[align="right"] { - padding-left: 20px; - } - - .mdViewerWrap img[align="left"] { - padding-right: 20px; - } - - .mdViewerWrap .emoji { - max-width: none; - vertical-align: text-top; - background-color: transparent; - } - - .mdViewerWrap span.frame { - display: block; - overflow: hidden; - } - - .mdViewerWrap span.frame > span { - display: block; - float: left; - width: auto; - padding: 7px; - margin: 13px 0 0; - overflow: hidden; - border: 1px solid #d0d7de; - } - - .mdViewerWrap span.frame span img { - display: block; - float: left; - } - - .mdViewerWrap span.frame span span { - display: block; - padding: 5px 0 0; - clear: both; - color: #1f2328; - } - - .mdViewerWrap span.align-center { - display: block; - overflow: hidden; - clear: both; - } - - .mdViewerWrap span.align-center > span { - display: block; - margin: 13px auto 0; - overflow: hidden; - text-align: center; - } - - .mdViewerWrap span.align-center span img { - margin: 0 auto; - text-align: center; - } - - .mdViewerWrap span.align-right { - display: block; - overflow: hidden; - clear: both; - } - - .mdViewerWrap span.align-right > span { - display: block; - margin: 13px 0 0; - overflow: hidden; - text-align: right; - } - - .mdViewerWrap span.align-right span img { - margin: 0; - text-align: right; - } - - .mdViewerWrap span.float-left { - display: block; - float: left; - margin-right: 13px; - overflow: hidden; - } - - .mdViewerWrap span.float-left span { - margin: 13px 0 0; - } - - .mdViewerWrap span.float-right { - display: block; - float: right; - margin-left: 13px; - overflow: hidden; - } - - .mdViewerWrap span.float-right > span { - display: block; - margin: 13px auto 0; - overflow: hidden; - text-align: right; - } - - .mdViewerWrap code, - .mdViewerWrap tt { - padding: 0.2em 0.4em; - margin: 0; - font-size: 85%; - white-space: break-spaces; - background-color: #afb8c133; - border-radius: 6px; - } - - .mdViewerWrap code br, - .mdViewerWrap tt br { - display: none; - } - - .mdViewerWrap del code { - text-decoration: inherit; - } - - .mdViewerWrap samp { - font-size: 85%; - } - - .mdViewerWrap pre code { - font-size: 100%; - } - - .mdViewerWrap pre > code { - padding: 0; - margin: 0; - word-break: normal; - white-space: pre; - background: transparent; - border: 0; - } - - .mdViewerWrap .highlight { - margin-bottom: 16px; - } - - .mdViewerWrap .highlight pre { - margin-bottom: 0; - word-break: normal; - } - - .mdViewerWrap .highlight pre, - .mdViewerWrap pre { - padding: 16px; - overflow: auto; - font-size: 85%; - line-height: 1.45; - color: #1f2328; - background-color: #f6f8fa; - border-radius: 6px; - } - - .mdViewerWrap pre code, - .mdViewerWrap pre tt { - display: inline; - max-width: auto; - padding: 0; - margin: 0; - overflow: visible; - line-height: inherit; - word-wrap: normal; - background-color: transparent; - border: 0; - } - - .mdViewerWrap .csv-data td, - .mdViewerWrap .csv-data th { - padding: 5px; - overflow: hidden; - font-size: 12px; - line-height: 1; - text-align: left; - white-space: nowrap; - } - - .mdViewerWrap .csv-data .blob-num { - padding: 10px 8px 9px; - text-align: right; - background: #ffffff; - border: 0; - } - - .mdViewerWrap .csv-data tr { - border-top: 0; - } - - .mdViewerWrap .csv-data th { - font-weight: 600; - background: #f6f8fa; - border-top: 0; - } - - .mdViewerWrap [data-footnote-ref]::before { - content: "["; - } - - .mdViewerWrap [data-footnote-ref]::after { - content: "]"; - } - - .mdViewerWrap .footnotes { - font-size: 12px; - color: #636c76; - border-top: 1px solid #d0d7de; - } - - .mdViewerWrap .footnotes ol { - padding-left: 16px; - } - - .mdViewerWrap .footnotes ol ul { - display: inline-block; - padding-left: 16px; - margin-top: 16px; - } - - .mdViewerWrap .footnotes li { - position: relative; - } - - .mdViewerWrap .footnotes li:target::before { - position: absolute; - top: -8px; - right: -8px; - bottom: -8px; - left: -24px; - pointer-events: none; - content: ""; - border: 2px solid #0969da; - border-radius: 6px; - } - - .mdViewerWrap .footnotes li:target { - color: #1f2328; - } - - .mdViewerWrap .footnotes .data-footnote-backref g-emoji { - font-family: monospace; - } - - .mdViewerWrap .pl-c { - color: #57606a; - } - - .mdViewerWrap .pl-c1, - .mdViewerWrap .pl-s .pl-v { - color: #0550ae; - } - - .mdViewerWrap .pl-e, - .mdViewerWrap .pl-en { - color: #6639ba; - } - - .mdViewerWrap .pl-smi, - .mdViewerWrap .pl-s .pl-s1 { - color: #24292f; - } - - .mdViewerWrap .pl-ent { - color: #0550ae; - } - - .mdViewerWrap .pl-k { - color: #cf222e; - } - - .mdViewerWrap .pl-s, - .mdViewerWrap .pl-pds, - .mdViewerWrap .pl-s .pl-pse .pl-s1, - .mdViewerWrap .pl-sr, - .mdViewerWrap .pl-sr .pl-cce, - .mdViewerWrap .pl-sr .pl-sre, - .mdViewerWrap .pl-sr .pl-sra { - color: #0a3069; - } - - .mdViewerWrap .pl-v, - .mdViewerWrap .pl-smw { - color: #953800; - } - - .mdViewerWrap .pl-bu { - color: #82071e; - } - - .mdViewerWrap .pl-ii { - color: #f6f8fa; - background-color: #82071e; - } - - .mdViewerWrap .pl-c2 { - color: #f6f8fa; - background-color: #cf222e; - } - - .mdViewerWrap .pl-sr .pl-cce { - font-weight: bold; - color: #116329; - } - - .mdViewerWrap .pl-ml { - color: #3b2300; - } - - .mdViewerWrap .pl-mh, - .mdViewerWrap .pl-mh .pl-en, - .mdViewerWrap .pl-ms { - font-weight: bold; - color: #0550ae; - } - - .mdViewerWrap .pl-mi { - font-style: italic; - color: #24292f; - } - - .mdViewerWrap .pl-mb { - font-weight: bold; - color: #24292f; - } - - .mdViewerWrap .pl-md { - color: #82071e; - background-color: #ffebe9; - } - - .mdViewerWrap .pl-mi1 { - color: #116329; - background-color: #dafbe1; - } - - .mdViewerWrap .pl-mc { - color: #953800; - background-color: #ffd8b5; - } - - .mdViewerWrap .pl-mi2 { - color: #eaeef2; - background-color: #0550ae; - } - - .mdViewerWrap .pl-mdr { - font-weight: bold; - color: #8250df; - } - - .mdViewerWrap .pl-ba { - color: #57606a; - } - - .mdViewerWrap .pl-sg { - color: #8c959f; - } - - .mdViewerWrap .pl-corl { - text-decoration: underline; - color: #0a3069; - } - - .mdViewerWrap [role="button"]:focus:not(:focus-visible), - .mdViewerWrap [role="tabpanel"][tabindex="0"]:focus:not(:focus-visible), - .mdViewerWrap button:focus:not(:focus-visible), - .mdViewerWrap summary:focus:not(:focus-visible), - .mdViewerWrap a:focus:not(:focus-visible) { - outline: none; - box-shadow: none; - } - - .mdViewerWrap [tabindex="0"]:focus:not(:focus-visible), - .mdViewerWrap details-dialog:focus:not(:focus-visible) { - outline: none; - } - - .mdViewerWrap g-emoji { - display: inline-block; - min-width: 1ch; - font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 1em; - font-style: normal !important; - font-weight: 400; - line-height: 1; - vertical-align: -0.075em; - } - - .mdViewerWrap g-emoji img { - width: 1em; - height: 1em; - } - - .mdViewerWrap .task-list-item { - list-style-type: none; - } - - .mdViewerWrap .task-list-item label { - font-weight: 400; - } - - .mdViewerWrap .task-list-item.enabled label { - cursor: pointer; - } - - .mdViewerWrap .task-list-item + .task-list-item { - margin-top: 0.25rem; - } - - .mdViewerWrap .task-list-item .handle { - display: none; - } - - .mdViewerWrap .task-list-item-checkbox { - margin: 0 0.2em 0.25em -1.4em; - vertical-align: middle; - } - - .mdViewerWrap .contains-task-list:dir(rtl) .task-list-item-checkbox { - margin: 0 -1.6em 0.25em 0.2em; - } - - .mdViewerWrap .contains-task-list { - position: relative; - } - - .mdViewerWrap .contains-task-list:hover .task-list-item-convert-container, - .mdViewerWrap - .contains-task-list:focus-within - .task-list-item-convert-container { - display: block; - width: auto; - height: 24px; - overflow: visible; - clip: auto; - } - - .mdViewerWrap ::-webkit-calendar-picker-indicator { - filter: invert(50%); - } - - .mdViewerWrap .markdown-alert { - padding: 0.5rem 1rem; - margin-bottom: 1rem; - color: inherit; - border-left: 0.25em solid #d0d7de; - } - - .mdViewerWrap .markdown-alert > :first-child { - margin-top: 0; - } - - .mdViewerWrap .markdown-alert > :last-child { - margin-bottom: 0; - } - - .mdViewerWrap .markdown-alert .markdown-alert-title { - display: flex; - font-weight: 500; - align-items: center; - line-height: 1; - } - - .mdViewerWrap .markdown-alert.markdown-alert-note { - border-left-color: #0969da; - } - - .mdViewerWrap .markdown-alert.markdown-alert-note .markdown-alert-title { - color: #0969da; - } - - .mdViewerWrap .markdown-alert.markdown-alert-important { - border-left-color: #8250df; - } - - .mdViewerWrap .markdown-alert.markdown-alert-important .markdown-alert-title { - color: #8250df; - } - - .mdViewerWrap .markdown-alert.markdown-alert-warning { - border-left-color: #bf8700; - } - - .mdViewerWrap .markdown-alert.markdown-alert-warning .markdown-alert-title { - color: #9a6700; - } - - .mdViewerWrap .markdown-alert.markdown-alert-tip { - border-left-color: #1a7f37; - } - - .mdViewerWrap .markdown-alert.markdown-alert-tip .markdown-alert-title { - color: #1a7f37; - } - - .mdViewerWrap .markdown-alert.markdown-alert-caution { - border-left-color: #cf222e; - } - - .mdViewerWrap .markdown-alert.markdown-alert-caution .markdown-alert-title { - color: #d1242f; - } - - .mdViewerWrap > *:first-child > .heading-element:first-child { - margin-top: 0 !important; - } - \ No newline at end of file diff --git a/projects/web/src/pages/extract/components/url-markdown/index.tsx b/projects/web/src/pages/extract/components/url-markdown/index.tsx deleted file mode 100644 index 1865f44c7..000000000 --- a/projects/web/src/pages/extract/components/url-markdown/index.tsx +++ /dev/null @@ -1,63 +0,0 @@ -import ReactMarkdown from "react-markdown"; -import remarkMath from "remark-math"; -import rehypeKatex from "rehype-katex"; -import rehypeRaw from "rehype-raw"; -import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; -import remarkGfm from "remark-gfm"; -import styles from "./index.module.scss"; -import { useRef } from "react"; -import cls from "classnames"; - -interface IMarkdownProps { - content?: string; - markdownClass?: string; - markdownId?: string; -} - -const LazyUrlMarkdown: React.FC = ({ - content, - markdownClass = "", -}) => { - const ref = useRef(null); - - return ( -
    -
    - - ) : ( - - {children} - - ); - }, - }} - > - {content} - -
    -
    - ); -}; - -export default LazyUrlMarkdown; diff --git a/projects/web/src/pages/extract/extractor-home/index.module.scss b/projects/web/src/pages/extract/extractor-home/index.module.scss deleted file mode 100644 index e305b8330..000000000 --- a/projects/web/src/pages/extract/extractor-home/index.module.scss +++ /dev/null @@ -1,84 +0,0 @@ -.item { - border-radius: 12px; - border: 1px solid rgba(198, 217, 255, 0.20); - background: linear-gradient(155deg, rgba(92, 147, 255, 0.10) -130.23%, rgba(255, 255, 255, 0.00) 83.57%); - filter: blur(0px); - padding: 42px 20px; - cursor: pointer; - position: relative; - - &:hover { - border-radius: 12px; - border: 1px solid rgba(198, 217, 255, 0.20); - background: linear-gradient(155deg, rgba(92, 147, 255, 0.20) -83.23%, rgba(255, 255, 255, 0.00) 83.57%); - box-shadow: 0px 8px 26px 0px rgba(0, 0, 0, 0.12); - } -} - -.itemComingSoon_zh-CN { - &:hover { - - backdrop-filter: blur(-100px); - & > .itemContent { - opacity: 0; - z-index: 0; - } - &::before { - display: inline-block; - content: '敬请期待'; - width: 100%; - height: 100%; - line-height: 184px; - position: absolute; - background-image: url('@/assets/pdf/comingSoonLayer.svg'); - background-color: rgba(255, 255, 255, 0.8); - background-size: contain; - top: 0; - left: 0; - border-radius: 12px; - // background:white; - -webkit-backdrop-filter: blur(2030px) brightness(110%); - backdrop-filter: blur(2030px) brightness(110%); - - color: var(--60-text-3, rgba(18, 19, 22, 0.60)); - text-align: center; - font-feature-settings: 'liga' off, 'clig' off; - z-index: 1; - } - - } -} - -.itemComingSoon_en-US { - &:hover { - - backdrop-filter: blur(-100px); - & > .itemContent { - opacity: 0; - z-index: 0; - } - &::before { - display: inline-block; - content: 'Stay Tuned'; - width: 100%; - height: 100%; - line-height: 224px; - position: absolute; - background-image: url('@/assets/pdf/comingSoonLayer.svg'); - background-color: rgba(255, 255, 255, 0.8); - background-size: contain; - top: 0; - left: 0; - border-radius: 12px; - // background:white; - -webkit-backdrop-filter: blur(2030px) brightness(110%); - backdrop-filter: blur(2030px) brightness(110%); - - color: var(--60-text-3, rgba(18, 19, 22, 0.60)); - text-align: center; - font-feature-settings: 'liga' off, 'clig' off; - z-index: 1; - } - - } -} diff --git a/projects/web/src/pages/extract/extractor-home/index.tsx b/projects/web/src/pages/extract/extractor-home/index.tsx deleted file mode 100644 index c0d488b85..000000000 --- a/projects/web/src/pages/extract/extractor-home/index.tsx +++ /dev/null @@ -1,102 +0,0 @@ -import extractorPdfIcon from "@/assets/pdf/extractor-pdf.svg"; -import extractorTableIcon from "@/assets/pdf/extractor-table.svg"; -import extractorFormulaIcon from "@/assets/pdf/extractor-formula.svg"; -import style from "./index.module.scss"; -import cls from "classnames"; -import { EXTRACTOR_TYPE_LIST } from "@/types/extract-task-type"; -import { useNavigate } from "react-router-dom"; -import { useIntl } from "react-intl"; - -const ITEM_LIST = [ - { - id: 1, - icon: extractorPdfIcon, - [`zh-CN-title`]: "PDF文档提取", - [`en-US-title`]: "PDF Document Extraction", - type: EXTRACTOR_TYPE_LIST.pdf, - [`zh-CN-desc`]: - "支持文本/扫描型 pdf 解析,识别各类版面元素并转换为多模态 Markdown 格式", - [`en-US-desc`]: - "Supports text/scanned PDF parsing, identifies various layout elements and converts them into multimodal Markdown format", - }, - { - id: 2, - icon: extractorFormulaIcon, - [`zh-CN-title`]: "公式检测与识别", - [`en-US-title`]: "Formula Detection and Recognition", - type: EXTRACTOR_TYPE_LIST.formula, - [`zh-CN-desc`]: - "对行内、行间公式进行检测,对数学公式进行识别并转换为 Latex 格式", - [`en-US-desc`]: - "Detect formulas within and between lines, identify mathematical formulas and convert them into Latex format", - }, - { - id: 3, - icon: extractorTableIcon, - [`zh-CN-title`]: "表格识别", - [`en-US-title`]: "Table recognition", - type: EXTRACTOR_TYPE_LIST.table, - [`zh-CN-desc`]: "对表格进行检测并转换为 Markdown 格式", - [`en-US-desc`]: "Detect and convert tables to Markdown format", - comingSoon: true, - }, -] as Record; - -const ExtractorHome = () => { - const navigate = useNavigate(); - const { formatMessage, locale } = useIntl(); - const defaultLocale = "zh-CN"; - - return ( -
    -
    - {formatMessage({ id: "extractor.home.title" })} -
    -
    - {formatMessage({ id: "extractor.home.subTitle" })} -
    - -
    - {ITEM_LIST?.map((i: Record) => { - return ( -
    { - if (i?.comingSoon) return; - navigate(`/OpenSourceTools/Extractor/${i?.type}`); - }} - > -
    -
    - {""} - - {i?.[`${locale}-title`]} - -
    -
    - {i?.[`${locale}-desc`]} -
    -
    -
    - ); - })} -
    -
    - {formatMessage({ - id: "extractor.law", - })} -
    -
    - ); -}; -export default ExtractorHome; diff --git a/projects/web/src/pages/extract/formula/formula-detail-left/index.tsx b/projects/web/src/pages/extract/formula/formula-detail-left/index.tsx deleted file mode 100644 index 7105e0648..000000000 --- a/projects/web/src/pages/extract/formula/formula-detail-left/index.tsx +++ /dev/null @@ -1,101 +0,0 @@ -import showLayerIcon from "@/assets/pdf/extractor-show-layer.svg"; -import hiddenLayerIcon from "@/assets/pdf/extractor-hidden-layer.svg"; - -import { useRef, useState } from "react"; -import IconFont from "@/components/icon-font"; -import ImageLayerViewer, { - ImageLayerViewerRef, -} from "../../components/image-layer-viwer"; - -import { useUpdate } from "ahooks"; -import { TaskIdProgress, TaskIdResItem } from "@/api/extract"; -import { Tooltip } from "antd"; -import { useIntl } from "react-intl"; - -interface IFormulaDetailLeftProps { - taskInfo: TaskIdProgress & TaskIdResItem; -} - -const FormulaDetailLeft = ({ taskInfo }: IFormulaDetailLeftProps) => { - const imageRef = useRef(null); - const { formatMessage } = useIntl(); - const [layerVisible, setLayerVisible] = useState(true); - const update = useUpdate(); - - if (!taskInfo?.fileInfo?.height || !taskInfo?.fileInfo?.width) { - console.info( - "formula extractor interface error: the picture size is invalid" - ); - } - return ( -
    -
    - - {layerVisible - ? formatMessage({ - id: "extractor.button.hiddenLayer", - }) - : formatMessage({ - id: "extractor.button.showLayer", - })} - - } - > - setLayerVisible(!layerVisible)} - > - {taskInfo?.type === "formula-detect" ? null : layerVisible ? ( - Hide Layer - ) : ( - Show Layer - )} - - - {taskInfo?.type === "formula-detect" ? null : ( - - )} -
    - { - imageRef?.current?.zoomOut(); - }} - /> - - {((imageRef?.current?.scale || 0) * 100 || 1).toFixed(0)}% - - { - imageRef?.current?.zoomIn(); - }} - /> -
    -
    - { - // imageRef?.current?.scale为了这个更新 - update(); - }} - className={"!h-[calc(100%-48px)]"} - layerVisible={ - taskInfo?.type === "formula-detect" ? false : layerVisible - } - imageUrl={taskInfo?.url} - /> -
    - ); -}; - -export default FormulaDetailLeft; diff --git a/projects/web/src/pages/extract/formula/formula-detail-right/index.tsx b/projects/web/src/pages/extract/formula/formula-detail-right/index.tsx deleted file mode 100644 index b9ef73138..000000000 --- a/projects/web/src/pages/extract/formula/formula-detail-right/index.tsx +++ /dev/null @@ -1,162 +0,0 @@ -import ImageLayerViewer from "../../components/image-layer-viwer"; -import exitFullScreenSvg from "@/assets/pdf/exitFullScreen.svg"; -import fullScreenSvg from "@/assets/pdf/fullScreen.svg"; -import { Tooltip } from "antd"; -import { useIntl } from "react-intl"; -import { TaskIdProgress, TaskIdResItem } from "@/api/extract"; -import IconFont from "@/components/icon-font"; -import { CopyToClipboard } from "react-copy-to-clipboard"; -import { useEffect, useMemo, useRef, useState } from "react"; -import { message } from "antd"; -import { MD_PREVIEW_TYPE } from "@/types/extract-task-type"; -import CodeMirror from "@/components/code-mirror"; -import LatexRenderer from "../../components/latex-renderer"; -import { useParams } from "react-router-dom"; -interface IImageOriginViewerProps { - fullScreen?: boolean; - setFullScreen?: (val: boolean) => void; - taskInfo: TaskIdProgress & TaskIdResItem; -} - -const FormulaDetailRight = ({ - fullScreen, - setFullScreen, - taskInfo, -}: IImageOriginViewerProps) => { - const CONTROL_BAR_HEIGHT = 48; - const { formatMessage } = useIntl(); - const [displayType, setDisplayType] = useState(MD_PREVIEW_TYPE.preview); - const imageViewerRef = useRef(); - const formulaType = taskInfo?.type; - const params = useParams(); - const jobID = params?.jobID; - const formulaLateX = useMemo(() => { - return taskInfo?.content?.map((i: any) => i?.latex + "\\\\\n").join(""); - }, [taskInfo?.content]); - - const handleCopy = () => {}; - - const menuList = [ - { - name: formatMessage({ id: "extractor.markdown.preview" }), - code: MD_PREVIEW_TYPE.preview, - }, - { - name: formatMessage({ id: "extractor.markdown.code" }), - code: MD_PREVIEW_TYPE.code, - }, - ]; - - useEffect(() => { - imageViewerRef?.current?.updateScaleAndPosition(); - }, [fullScreen]); - - useEffect(() => { - setDisplayType(MD_PREVIEW_TYPE.preview); - }, [jobID]); - - return ( -
    -
    - {formulaType === "formula-extract" && ( -
      - {menuList.map((item) => ( -
    • setDisplayType(item.code)} - > - {item.name} -
    • - ))} -
    - )} - - - setFullScreen?.(!fullScreen)} - > - {!fullScreen ? ( - - ) : ( - - )} - - - {formulaType === "formula-extract" && ( -
    - - - { - message.success(formatMessage({ id: "common.copySuccess" })); - }} - > - - handleCopy()} - /> - - - -
    - )} -
    - {displayType === MD_PREVIEW_TYPE.preview ? ( - formulaType === "formula-extract" ? ( -
    - -
    - ) : ( - - ) - ) : ( -
    - -
    - )} -
    - ); -}; - -export default FormulaDetailRight; diff --git a/projects/web/src/pages/extract/formula/formula-detail/index.tsx b/projects/web/src/pages/extract/formula/formula-detail/index.tsx deleted file mode 100644 index 4e07141e6..000000000 --- a/projects/web/src/pages/extract/formula/formula-detail/index.tsx +++ /dev/null @@ -1,143 +0,0 @@ -import cls from "classnames"; - -import { useEffect, useState } from "react"; - -import LoadingIcon from "../../components/loading-icon"; - -import { SubmitRes } from "@/api/extract"; -import emptySvg from "@/assets/svg/empty.svg"; - -import { FormattedMessage } from "react-intl"; - -import FormulaDetailLeft from "../formula-detail-left"; -import FormulaDetailRight from "../formula-detail-right"; - -import { useIntl } from "react-intl"; -import { ExtractorUploadButton } from "../../components/pdf-upload-button"; -import useExtractorJobProgress from "@/store/jobProgress"; -interface IPdfExtractionProps { - setUploadShow: (bool: boolean) => void; - className?: string; -} - -const FormulaDetail = ({ className = "" }: IPdfExtractionProps) => { - const { - taskInfo, - queueLoading, - interfaceError: compileError, - refreshQueue, - jobID, - } = useExtractorJobProgress(); - - const [fullScreen, setFullScreen] = useState(false); - const { formatMessage } = useIntl(); - - const isQueueAndExtract = queueLoading; - const hiddenQueuePage = !isQueueAndExtract ? "opacity-0 " : ""; - const hiddenResultPage = isQueueAndExtract ? "z-[-1] opacity-0" : ""; - - const getLayoutClassName = (_fullScreen?: boolean) => { - return { - left: _fullScreen ? "w-0 overflow-hidden" : "w-[50%] max-w-[50%]", - right: _fullScreen ? "w-full " : "w-[50%] max-w-[50%]", - }; - }; - - const afterUploadSuccess = (data: SubmitRes) => { - refreshQueue(); - }; - const afterAsyncCheck = () => { - return Promise.resolve(true); - }; - - useEffect(() => { - setFullScreen(false); - }, [jobID]); - - return ( - <> -
    - - -
    - {taskInfo?.rank > 1 ? ( - - ) : taskInfo.state === "done" || taskInfo?.state === "unknown" ? ( - formatMessage({ - id: "extractor.common.loading", - }) - ) : ( - formatMessage({ - id: "extractor.common.extracting", - }) - )} -
    -
    - -
    - {!compileError ? ( -
    -
    - -
    -
    - -
    -
    - ) : ( -
    - emptySvg - - {formatMessage({ - id: "extractor.failed", - })} - - - {formatMessage({ - id: "extractor.button.reUpload", - })} - - } - /> -
    - )} -
    - - ); -}; - -export default FormulaDetail; diff --git a/projects/web/src/pages/extract/formula/formula-popover/index.module.scss b/projects/web/src/pages/extract/formula/formula-popover/index.module.scss deleted file mode 100644 index 38229f8ee..000000000 --- a/projects/web/src/pages/extract/formula/formula-popover/index.module.scss +++ /dev/null @@ -1,18 +0,0 @@ -.formulaPopover { - :global { - - .ant-popover-content, .ant-popover-inner { - border-radius: 12px !important; - overflow: hidden; - box-shadow: 0px 8px 26px 0px rgba(0, 0, 0, 0.12); - } - - .ant-popover-inner-content { - padding: 24px !important; - } - - .ant-popover-arrow { - display: none !important; - } - } -} diff --git a/projects/web/src/pages/extract/formula/formula-popover/index.tsx b/projects/web/src/pages/extract/formula/formula-popover/index.tsx deleted file mode 100644 index ac8e2b638..000000000 --- a/projects/web/src/pages/extract/formula/formula-popover/index.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import React, { ReactNode } from "react"; -import { Popover } from "antd"; -import IconFont from "@/components/icon-font"; -import { useIntl } from "react-intl"; -import style from "./index.module.scss"; - -interface IFormulaPopoverProps { - type: string; - text?: string | ReactNode; -} - -const FormulaPopover = ({ type, text }: IFormulaPopoverProps) => { - const { formatMessage } = useIntl(); - const content = ( -
    - {/* 顺序反了 */} - {formatMessage({ - id: - type === "detect" - ? "extractor.formula.popover.extract" - : "extractor.formula.popover.detect", - })} - formula-popover -
    - ); - return ( - - - - {text} - - - - - ); -}; - -export default FormulaPopover; diff --git a/projects/web/src/pages/extract/formula/formula-upload/index.module.scss b/projects/web/src/pages/extract/formula/formula-upload/index.module.scss deleted file mode 100644 index bb63f363b..000000000 --- a/projects/web/src/pages/extract/formula/formula-upload/index.module.scss +++ /dev/null @@ -1,87 +0,0 @@ - - -.uploadText { - font-feature-settings: 'liga' off, 'clig' off; - font-family: "PingFang SC"; - font-size: 18px; - font-style: normal; - font-weight: 600; - line-height: 24px; /* 133.333% */ - background: linear-gradient(107deg, #38A0FF -24.14%, #0D53DE 30.09%, #5246FF 86.61%); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; -} - -.uploadDescText { - font-size: 13px; - line-height: 20px; - font-weight: 400; - background: linear-gradient(107deg, rgba(18,19,22,0.6) -24.14%, rgba(18,19,22,0.6) 100.09% ); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - margin-bottom: 1rem; - margin-top: 0.5rem; -} - -.linearText { - font-size: 13px; - line-height: 20px; - font-weight: 400; - background: linear-gradient(107deg, rgba(18,19,22,0.6) -24.14%, rgba(18,19,22,0.6) 100.09% ); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - - &-item { - font-weight: 400; - font-size: 13px; - line-height: 20px; - margin-right: 1rem; - background: linear-gradient(107deg, #38A0FF -24.14%, #0D53DE 30.09%, #5246FF 86.61%); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - &:hover { - background: #3477EB; - background: linear-gradient(107deg, #3477EB -24.14%, #3477EB 100.09% ); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - } - } -} - -.uploadSection { - border-radius: 12px; - border: 1px dashed var(---Brand1-6, #0D53DE); - background: linear-gradient(180deg, rgba(92, 147, 255, 0.10) -130.23%, rgba(255, 255, 255, 1) 83.57%); - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - filter: blur(0px); - height: 280px !important; - width: 600px !important; - - &:hover { - background: linear-gradient(180deg, rgb(245, 248, 255) -130.23%, rgb(245, 248, 255) 83.57%); - } -} - -.textBtn { - background-image: none !important; - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - background: linear-gradient(111deg, #0D53DE -21.44%, #5246FF 102%) !important; - background-clip: text !important; - -webkit-background-clip: text !important; - -webkit-text-fill-color: transparent !important; - height: 1.5rem !important; - font-weight: 600; - height: 280px !important; - width: 600px !important; - overflow: hidden; -} diff --git a/projects/web/src/pages/extract/formula/formula-upload/index.tsx b/projects/web/src/pages/extract/formula/formula-upload/index.tsx deleted file mode 100644 index bbf98c2e6..000000000 --- a/projects/web/src/pages/extract/formula/formula-upload/index.tsx +++ /dev/null @@ -1,132 +0,0 @@ -import { useIntl } from "react-intl"; -import IconFont from "@/components/icon-font"; -import { useState } from "react"; -import cls from "classnames"; -import { ExtractorUploadButton } from "../../components/pdf-upload-button"; -import UploadBg from "@/assets/imgs/online.experience/file-upload-bg.svg"; -import style from "./index.module.scss"; -import { SubmitRes } from "@/api/extract"; -import { ADD_TASK_LIST } from "@/constant/event"; -import { FORMULA_TYPE } from "@/types/extract-task-type"; -import { useNavigate } from "react-router-dom"; - -const FORMULA_ITEM_LIST = [ - { - type: FORMULA_TYPE.detect, - [`zh-CN-name`]: "公式检测", - [`en-US-name`]: "Formula Detection", - }, - { - type: FORMULA_TYPE.extract, - [`zh-CN-name`]: "公式识别", - [`en-US-name`]: "Formula Recognition", - }, -]; - -const FormulaUpload = () => { - const navigate = useNavigate(); - const { formatMessage, locale } = useIntl(); - const [formulaType, setFormulaType] = useState(FORMULA_TYPE.detect); - - const afterUploadSuccess = (data: SubmitRes) => { - navigate(`/OpenSourceTools/Extractor/formula/${data?.id}`); - setTimeout(() => { - document.dispatchEvent( - new CustomEvent(ADD_TASK_LIST, { - detail: data, - }) - ); - }, 10); - }; - const afterAsyncCheck = () => { - return Promise.resolve(true); - }; - - return ( -
    -
    navigate("/OpenSourceTools/Extractor")} - > - - {formatMessage({ id: "extractor.home" })} -
    -
    -
    - {FORMULA_ITEM_LIST.map((i) => { - return ( - setFormulaType(i?.type)} - className={cls( - "relative text-[1.5rem] text-[#121316] cursor-pointer mx-[1.5rem]", - formulaType === i?.type && "!text-[#0D53DE] font-semibold" - )} - > - {i?.[`${locale || "zh-CN"}-name` as "en-US-name"]} - {formulaType === i?.type && ( - - )} - - ); - })} -
    - -
    - {formatMessage({ - id: - formulaType === "extract" - ? "extractor.formula.title2" - : "extractor.formula.title", - })} -
    - - - - - {formatMessage({ id: "extractor.formula.upload.text" })} - - - {formatMessage({ id: "extractor.formula.upload.accept" })} - -
    - - {formatMessage({ - id: "extractor.formula.upload.try", - })} - -
    -
    - } - > -
    -
    - {formatMessage({ - id: "extractor.law", - })} -
    - - ); -}; - -export default FormulaUpload; diff --git a/projects/web/src/pages/extract/formula/index.module.scss b/projects/web/src/pages/extract/formula/index.module.scss deleted file mode 100644 index e69de29bb..000000000 diff --git a/projects/web/src/pages/extract/formula/index.tsx b/projects/web/src/pages/extract/formula/index.tsx deleted file mode 100644 index 8f4e0e3c3..000000000 --- a/projects/web/src/pages/extract/formula/index.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { Outlet } from "react-router-dom"; - -const Formula = () => { - return ( -
    - -
    - ); -}; - -export default Formula; diff --git a/projects/web/src/pages/extract/index.module.scss b/projects/web/src/pages/extract/index.module.scss deleted file mode 100644 index e69de29bb..000000000 diff --git a/projects/web/src/pages/extract/index.tsx b/projects/web/src/pages/extract/index.tsx deleted file mode 100644 index e69de29bb..000000000 diff --git a/projects/web/src/pages/extract/table/index.tsx b/projects/web/src/pages/extract/table/index.tsx deleted file mode 100644 index b16962f17..000000000 --- a/projects/web/src/pages/extract/table/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -const ExtractorTable = () => { - return <>ExtractorTable; -}; - -export default ExtractorTable; diff --git a/projects/web/src/pages/extract/table/table-detail/index.tsx b/projects/web/src/pages/extract/table/table-detail/index.tsx deleted file mode 100644 index db192bc26..000000000 --- a/projects/web/src/pages/extract/table/table-detail/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -const TableDetail = () => { - return <>TableDetail; -}; - -export default TableDetail; diff --git a/projects/web/src/pages/home.module.scss b/projects/web/src/pages/home.module.scss deleted file mode 100644 index e69de29bb..000000000 diff --git a/projects/web/src/pages/home.tsx b/projects/web/src/pages/home.tsx deleted file mode 100644 index fa0309a9c..000000000 --- a/projects/web/src/pages/home.tsx +++ /dev/null @@ -1,75 +0,0 @@ -"use client"; - -import ErrorBoundary from "@/components/error-boundary"; -import styles from "./home.module.scss"; -import { SlotID, Path } from "@/constant/route"; -import { - BrowserRouter, - Routes, - Route, - Outlet, - Navigate, - useLocation, - HashRouter, -} from "react-router-dom"; -import { ExtractorSide } from "./extract-side"; -import { LanguageProvider } from "@/context/language-provider"; -import PDFUpload from "@/pages/extract/components/pdf-upload"; -import PDFExtractionJob from "@/pages/extract/components/pdf-extraction"; - -export function WindowContent() { - const location = useLocation(); - const isHome = location.pathname === Path.Home; - - return ( - <> - -
    - -
    - - ); -} - -function Screen() { - const renderContent = () => { - return ( -
    - - }> - } - /> - } - /> - } - /> - } - /> - - -
    - ); - }; - - return <>{renderContent()}; -} - -export function Home() { - return ( - - - - - - - - ); -} diff --git a/projects/web/src/routes/index.tsx b/projects/web/src/routes/index.tsx deleted file mode 100644 index 6bdb0b063..000000000 --- a/projects/web/src/routes/index.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { Routes, Route } from "react-router-dom"; -import PDFUpload from "@/pages/extract/components/pdf-upload"; -import PDFExtractionJob from "@/pages/extract/components/pdf-extraction"; - -function AppRoutes() { - return ( - <> - } /> - } - /> - - ); -} - -export default AppRoutes; diff --git a/projects/web/src/store/jobProgress.ts b/projects/web/src/store/jobProgress.ts deleted file mode 100644 index bb08d6947..000000000 --- a/projects/web/src/store/jobProgress.ts +++ /dev/null @@ -1,183 +0,0 @@ -import { - getExtractTaskIdProgress, - getPdfExtractQueue, - TaskIdResItem, -} from "@/api/extract"; -import { create } from "zustand"; -import { useCallback, useEffect, useRef, useState } from "react"; -import { useParams } from "react-router-dom"; -import { UPDATE_TASK_LIST } from "@/constant/event"; -import { useQuery } from "@tanstack/react-query"; - -interface ExtractorState { - taskInfo: TaskIdResItem; - queueLoading: boolean | null; - interfaceError: boolean; - setTaskInfo: (taskInfo: TaskIdResItem) => void; - setQueueLoading: (loading: boolean | null) => void; - setInterfaceError: (error: boolean) => void; -} - -const defaultTaskInfo: TaskIdResItem = { - id: 0, - rank: 0, - state: "pending", - url: "", - type: "unknown", - queues: -1, -}; - -const useExtractorStore = create((set) => ({ - taskInfo: defaultTaskInfo, - queueLoading: null, - interfaceError: false, - setTaskInfo: (taskInfo: any) => set({ taskInfo }), - setQueueLoading: (loading) => set({ queueLoading: loading }), - setInterfaceError: (error) => set({ interfaceError: error }), -})); - -export const useJobExtraction = () => { - const { jobID } = useParams<{ jobID: string }>(); - const { - setTaskInfo, - setQueueLoading, - queueLoading, - taskInfo, - interfaceError, - setInterfaceError, - } = useExtractorStore(); - - const timeoutRef = useRef(null); - const [isPolling, setIsPolling] = useState(true); - - const stopTaskLoading = () => { - setQueueLoading(false); - }; - - // Query for task progress - const taskProgressQuery = useQuery({ - queryKey: ["taskProgress", jobID], - queryFn: () => { - setQueueLoading(true); - setIsPolling(true); - return getExtractTaskIdProgress(jobID!) - .then((res) => { - if (res?.state === "done" || res?.state === "failed") { - stopTaskLoading(); - - document.dispatchEvent( - new CustomEvent("UPDATE_TASK_LIST", { - detail: { state: res.state, id: jobID }, - }) - ); - } - if (res) { - setTaskInfo(res); - } - - return res; - }) - .catch(() => { - stopTaskLoading(); - setTaskInfo({ state: "failed" }); - }); - }, - enabled: false, - }); - - // Query for queue status - const queueStatusQuery = useQuery({ - queryKey: ["queueStatus", jobID], - queryFn: async () => { - setQueueLoading(true); - const response = await getPdfExtractQueue(jobID).then((res) => { - // setTaskInfo({ rand: "failed" }); - - if (res) { - const targetPendingRunningJob = res?.filter( - (i) => String(i.id) === jobID - )?.[0]; - - if (targetPendingRunningJob) { - setTaskInfo(targetPendingRunningJob); - } else { - setIsPolling(false); - setQueueLoading(false); - getExtractTaskIdProgress(jobID!).then((res) => { - setTaskInfo(res as any); - }); - } - } - - return res; - }); - return response; - }, - - enabled: - isPolling && - (taskProgressQuery?.data?.state === "running" || - taskProgressQuery?.data?.state === "pending"), - refetchInterval: 2000, // Poll every 2 seconds - }); - - useEffect(() => { - if (taskProgressQuery.data?.state === "done") { - stopTaskLoading(); - setInterfaceError(false); - setIsPolling(false); - if (timeoutRef.current) { - clearTimeout(timeoutRef.current); - } else { - timeoutRef.current = setTimeout(() => { - document.dispatchEvent( - new CustomEvent(UPDATE_TASK_LIST, { - detail: { state: "done", jobID }, - }) - ); - }, 10); - } - } else if (taskProgressQuery.data?.state === "failed") { - stopTaskLoading(); - setInterfaceError(true); - - setIsPolling(false); - - if (timeoutRef.current) { - clearTimeout(timeoutRef.current); - } else { - timeoutRef.current = setTimeout(() => { - document.dispatchEvent( - new CustomEvent(UPDATE_TASK_LIST, { - detail: { state: "failed", jobID }, - }) - ); - }, 10); - } - } - // TIP这里得用taskInfo - }, [taskProgressQuery.data]); - - const refreshQueue = () => { - // stop last ID polling - setIsPolling(false); - setTaskInfo(defaultTaskInfo); - taskProgressQuery.refetch(); - }; - - useEffect(() => { - if (jobID) { - // stop last ID polling d - setTaskInfo(defaultTaskInfo); - taskProgressQuery.refetch(); - } - }, [jobID]); - - return { - taskInfo: taskInfo, - isLoading: queueLoading, - isError: - interfaceError || taskProgressQuery.isError || queueStatusQuery.isError, - refreshQueue, - }; -}; diff --git a/projects/web/src/store/languageStore.ts b/projects/web/src/store/languageStore.ts deleted file mode 100644 index 42f20dcb0..000000000 --- a/projects/web/src/store/languageStore.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { create } from "zustand"; -import { Language } from "@/constant"; -import { LOCALE_STORAGE_KEY } from "@/constant/storage"; - -type LanguageType = (typeof Language)[keyof typeof Language]; - -type LanguageStore = { - language: LanguageType; - setLanguage: (language: LanguageType) => void; - toggleLanguage: () => void; -}; - -const getInitialLanguage = (): LanguageType => { - // Try to get language setting from localStorage - const savedLanguage = localStorage.getItem( - LOCALE_STORAGE_KEY - ) as LanguageType; - if (savedLanguage && Object.values(Language).includes(savedLanguage)) { - return savedLanguage; - } - - // If no valid language setting in localStorage, try to get browser language - const browserLanguage = navigator.language.toLowerCase(); - if (browserLanguage.startsWith("zh")) { - return Language.ZH_CN; - } else if (browserLanguage.startsWith("en")) { - return Language.EN_US; - } - - // Default to Chinese - return Language.ZH_CN; -}; - -export const useLanguageStore = create((set) => ({ - language: getInitialLanguage(), - setLanguage: (language) => { - localStorage.setItem(LOCALE_STORAGE_KEY, language); - set({ language }); - }, - toggleLanguage: () => - set((state) => { - const newLanguage = - state.language === Language.ZH_CN ? Language.EN_US : Language.ZH_CN; - localStorage.setItem(LOCALE_STORAGE_KEY, newLanguage); - return { language: newLanguage }; - }), -})); diff --git a/projects/web/src/store/mdStore.ts b/projects/web/src/store/mdStore.ts deleted file mode 100644 index 2368b2749..000000000 --- a/projects/web/src/store/mdStore.ts +++ /dev/null @@ -1,250 +0,0 @@ -// mdStore.ts -import { create } from "zustand"; -import axios from "axios"; -import { updateMarkdownContent, UpdateMarkdownRequest } from "@/api/extract"; // 确保路径正确 - -interface MdContent { - content: string; - isLoading: boolean; -} - -type AnchorType = - | "span" - | "div" - | "comment" - | "data-attribute" - | "hr" - | "mark" - | "p"; - -interface AnchorOptions { - type: AnchorType; - prefix?: string; - style?: string; - className?: string; - customAttributes?: Record; -} - -const defaultAnchorOptions: AnchorOptions = { - type: "span", - prefix: "md-anchor-", - style: "display:none;", - className: "", - customAttributes: {}, -}; - -interface MdState { - mdContents: Record; - allMdContent: string; - allMdContentWithAnchor: string; - error: Error | null; - currentRequestId: number; - setMdUrlArr: (urls: string[]) => Promise; - getAllMdContent: (data: string[]) => string; - setAllMdContent: (val?: string) => void; - setAllMdContentWithAnchor: (val?: string) => void; - getContentWithAnchors: ( - data: string[], - options?: Partial - ) => string; - jumpToAnchor: (anchorId: string) => number; - reset: () => void; - updateMdContent: ( - fileKey: string, - pageNumber: string | number, - newContent: string - ) => Promise; -} - -const MAX_CONCURRENT_REQUESTS = 2; - -const initialState = { - mdContents: {}, - allMdContent: "", - allMdContentWithAnchor: "", - error: null, - currentRequestId: 0, -}; - -const useMdStore = create((set, get) => ({ - ...initialState, - - reset: () => { - set(initialState); - }, - - setAllMdContent: (value?: string) => { - set(() => ({ - allMdContent: value, - })); - }, - - setAllMdContentWithAnchor: (value?: string) => { - set(() => ({ - allMdContentWithAnchor: value, - })); - }, - - setMdUrlArr: async (urls: string[]) => { - const requestId = get().currentRequestId + 1; - set((state) => ({ currentRequestId: requestId, error: null })); - - const fetchContent = async (url: string): Promise<[string, string]> => { - try { - const response = await axios.get(url); - return [url, response.data]; - } catch (error) { - if (get().currentRequestId === requestId) { - set((state) => ({ error: error as Error })); - } - return [url, ""]; - } - }; - - const fetchWithConcurrency = async ( - urls: string[] - ): Promise<[string, string][]> => { - const queue = [...urls]; - const results: [string, string][] = []; - const inProgress = new Set>(); - - while (queue.length > 0 || inProgress.size > 0) { - while (inProgress.size < MAX_CONCURRENT_REQUESTS && queue.length > 0) { - const url = queue.shift()!; - const promise = fetchContent(url); - inProgress.add(promise); - promise.then((result) => { - results.push(result); - inProgress.delete(promise); - }); - } - if (inProgress.size > 0) { - await Promise.race(inProgress); - } - } - - return results; - }; - - const results = await fetchWithConcurrency(urls); - - if (get().currentRequestId === requestId) { - const newMdContents: Record = {}; - results.forEach(([url, content]) => { - newMdContents[url] = { content, isLoading: false }; - }); - - set((state) => ({ - mdContents: newMdContents, - allMdContent: state.getAllMdContent(results.map((i) => i[1])), - allMdContentWithAnchor: state.getContentWithAnchors( - results.map((i) => i[1]) - ), - })); - } - }, - - getAllMdContent: (data) => { - return data?.join("\n\n"); - }, - - getContentWithAnchors: (data: string[], options?: Partial) => { - const opts = { ...defaultAnchorOptions, ...options }; - - const generateAnchorTag = (index: number) => { - const id = `${opts.prefix}${index}`; - const attributes = Object.entries(opts.customAttributes || {}) - .map(([key, value]) => `${key}="${value}"`) - .join(" "); - - switch (opts.type) { - case "span": - case "div": - case "mark": - case "p": - return `<${opts.type} id="${id}" style="${opts.style}" class="${opts.className}" ${attributes}>`; - case "comment": - return ``; - case "data-attribute": - return ``; - case "hr": - return `
    `; - default: - return ``; - } - }; - - return data - ?.map((content, index) => { - const anchorTag = generateAnchorTag(index); - return `${anchorTag}\n\n${content}`; - }) - .join("\n\n"); - }, - - jumpToAnchor: (anchorId: string) => { - const { mdContents } = get(); - const contentArray = Object.values(mdContents).map( - (content) => content.content - ); - let totalLength = 0; - for (let i = 0; i < contentArray.length; i++) { - if (anchorId === `md-anchor-${i}`) { - return totalLength; - } - totalLength += contentArray[i].length + 2; // +2 for "\n\n" - } - return -1; // Anchor not found - }, - - updateMdContent: async ( - fileKey: string, - pageNumber: string, - newContent: string - ) => { - try { - const params: UpdateMarkdownRequest = { - file_key: fileKey, - data: { - [pageNumber]: newContent, - }, - }; - - const result = await updateMarkdownContent(params); - - if (result && result.success) { - // 更新本地状态 - set((state) => { - const updatedMdContents = { ...state.mdContents }; - if (updatedMdContents[fileKey]) { - updatedMdContents[fileKey] = { - ...updatedMdContents[fileKey], - content: newContent, - }; - } - - // 重新计算 allMdContent 和 allMdContentWithAnchor - const contentArray = Object.values(updatedMdContents).map( - (content) => content.content - ); - const newAllMdContent = state.getAllMdContent(contentArray); - const newAllMdContentWithAnchor = - state.getContentWithAnchors(contentArray); - - return { - mdContents: updatedMdContents, - allMdContent: newAllMdContent, - allMdContentWithAnchor: newAllMdContentWithAnchor, - }; - }); - } else { - throw new Error("Failed to update Markdown content"); - } - } catch (error) { - set({ error: error as Error }); - throw error; - } - }, -})); - -export default useMdStore; diff --git a/projects/web/src/styles/variable.scss b/projects/web/src/styles/variable.scss deleted file mode 100644 index cfda77a1b..000000000 --- a/projects/web/src/styles/variable.scss +++ /dev/null @@ -1 +0,0 @@ -$page-min-witch: 1260px; \ No newline at end of file diff --git a/projects/web/src/types/extract-task-type.ts b/projects/web/src/types/extract-task-type.ts deleted file mode 100644 index 7a60eead0..000000000 --- a/projects/web/src/types/extract-task-type.ts +++ /dev/null @@ -1,21 +0,0 @@ -export type ExtractTaskType = - | "pdf" - | "formula-detect" - | "formula-extract" - | "table-recogn"; - -export const EXTRACTOR_TYPE_LIST = { - table: "table", - formula: "formula", - pdf: "PDF", -}; - -export enum FORMULA_TYPE { - extract = "extract", - detect = "detect", -} - -export enum MD_PREVIEW_TYPE { - preview = "preview", - code = "code", -} diff --git a/projects/web/src/utils/download.ts b/projects/web/src/utils/download.ts deleted file mode 100644 index da0023916..000000000 --- a/projects/web/src/utils/download.ts +++ /dev/null @@ -1,44 +0,0 @@ -export async function downloadFileUseAScript( - url: string, - filename?: string -): Promise { - try { - // 发起请求获取文件 - const response = await fetch(url); - - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); - } - - // 获取文件内容的 Blob - const blob = await response.blob(); - - // 创建一个 Blob URL - const blobUrl = window.URL.createObjectURL(blob); - - // 创建一个隐藏的元素 - const link = document.createElement("a"); - link.style.display = "none"; - link.href = blobUrl; - - // 设置下载的文件名 - const contentDisposition = response.headers.get("Content-Disposition"); - const fileName = - filename || - (contentDisposition - ? contentDisposition.split("filename=")[1].replace(/['"]/g, "") - : url.split("/").pop() || "download"); - - link.download = fileName; - - // 将链接添加到文档中并触发点击 - document.body.appendChild(link); - link.click(); - - // 清理 - document.body.removeChild(link); - window.URL.revokeObjectURL(blobUrl); - } catch (error) { - console.error("Download failed:", error); - } -} diff --git a/projects/web/src/utils/locale.ts b/projects/web/src/utils/locale.ts deleted file mode 100644 index 0f96be9f9..000000000 --- a/projects/web/src/utils/locale.ts +++ /dev/null @@ -1,16 +0,0 @@ -export enum ELocal { - "zh-CN" = "zh-CN", - "en-US" = "en-US", -} -export const locale: { [key: string]: string } = { - [ELocal["zh-CN"]]: "中文", - [ELocal["en-US"]]: "En", -}; -export const localeName: { [key: string]: string } = { - [ELocal["zh-CN"]]: "nameZh", - [ELocal["en-US"]]: "name", -}; - -export const getLocale = () => { - return localStorage.getItem("umi_locale") || ELocal["zh-CN"]; -}; diff --git a/projects/web/src/utils/windowOpen.ts b/projects/web/src/utils/windowOpen.ts deleted file mode 100644 index 805881d34..000000000 --- a/projects/web/src/utils/windowOpen.ts +++ /dev/null @@ -1,24 +0,0 @@ -export const windowOpen = ( - url: string, - type?: "_blank" | "_parent" | "_self" | "_top" -) => { - const a = document.createElement("a"); - a.setAttribute("href", url); - a.setAttribute("target", type || "_blank"); - a.rel = "noreferrer"; - document.body.appendChild(a); - if (a.click) { - a?.click(); - } else { - try { - let evt = new Event("click", { - bubbles: false, - cancelable: true, - }); - a.dispatchEvent(evt); - } catch (error) { - window.open(url, type || "_blank"); - } - } - document.body.removeChild(a); -}; diff --git a/projects/web/src/vite-env.d.ts b/projects/web/src/vite-env.d.ts deleted file mode 100644 index 11f02fe2a..000000000 --- a/projects/web/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/projects/web/tailwind.config.js b/projects/web/tailwind.config.js deleted file mode 100644 index 930f83d96..000000000 --- a/projects/web/tailwind.config.js +++ /dev/null @@ -1,35 +0,0 @@ -module.exports = { - content: [ - "./src/**/*.{js,jsx,ts,tsx}", - ], - plugins: [ - function ({ addUtilities }) { - const newUtilities = { - '.scrollbar-thin': { - scrollbarWidth: '2px', - // scrollbarColor: 'rgba(13, 83, 222, 1)', - '&::-webkit-scrollbar': { - width: '6px', - height: '6px' - }, - '&::-webkit-scrollbar-track': { - backgroundColor: 'transparent' - }, - '&::-webkit-scrollbar-thumb': { - // backgroundColor: 'rgba(13, 83, 222, 0.01)', - borderRadius: '20px', - border: '3px solid transparent' - }, - '&:hover::-webkit-scrollbar-thumb': { - width: '6px', - border: '3px solid rgb(229 231 235)', - backgroundColor: 'rgb(229 231 235)' - } - } - // 你可以添加更多自定义的滚动条样式 - }; - addUtilities(newUtilities, ['responsive', 'hover']); - }, - ], - // ...other configurations -} \ No newline at end of file diff --git a/projects/web/tsconfig.app.json b/projects/web/tsconfig.app.json deleted file mode 100644 index 22aefb247..000000000 --- a/projects/web/tsconfig.app.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "paths": { - "@/*": ["./src/*"] - } - }, - "include": ["src"] -} diff --git a/projects/web/tsconfig.json b/projects/web/tsconfig.json deleted file mode 100644 index 44faff780..000000000 --- a/projects/web/tsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "files": [], - "compilerOptions": { - // ... other options ... - "types": ["node"] - }, - "references": [ - { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.node.json" } - ] -} diff --git a/projects/web/tsconfig.node.json b/projects/web/tsconfig.node.json deleted file mode 100644 index 0d3d71446..000000000 --- a/projects/web/tsconfig.node.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2022", - "lib": ["ES2023"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "isolatedModules": true, - "moduleDetection": "force", - "noEmit": true, - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["vite.config.ts"] -} diff --git a/projects/web/vite.config.ts b/projects/web/vite.config.ts deleted file mode 100644 index 263d7adbf..000000000 --- a/projects/web/vite.config.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { defineConfig } from "vite"; -import react from "@vitejs/plugin-react"; -import path from "path"; - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [react()], - server: { - proxy: { - "/api": { - target: "http://localhost:5559", - changeOrigin: true, - }, - }, - }, - css: { - modules: { - localsConvention: "camelCaseOnly", // transfer kebab-case to camelCase - scopeBehaviour: "local", - generateScopedName: "[name]__[local]___[hash:base64:5]", - }, - }, - publicDir: "public", - resolve: { - alias: { - "@": path.resolve(__dirname, "./src"), - }, - }, -}); diff --git a/projects/web_api/Dockerfile b/projects/web_api/Dockerfile deleted file mode 100644 index 0cecace7a..000000000 --- a/projects/web_api/Dockerfile +++ /dev/null @@ -1,85 +0,0 @@ -# Use the official Ubuntu base image -FROM ubuntu:latest - -# ENV http_proxy http://127.0.0.1:7890 -# ENV https_proxy http://127.0.0.1:7890 - -# Set environment variables to non-interactive to avoid prompts during installation -ENV DEBIAN_FRONTEND=noninteractive -ENV LANG C.UTF-8 - -# ADD sources.list /etc/apt -# RUN apt-get clean - - - -# Update the package list and install necessary packages -RUN apt-get -q update \ - && apt-get -q install -y --no-install-recommends \ - apt-utils \ - bats \ - build-essential -RUN apt-get update && apt-get install -y vim net-tools procps lsof curl wget iputils-ping telnet lrzsz git - -RUN apt-get update && \ - apt-get install -y \ - software-properties-common && \ - add-apt-repository ppa:deadsnakes/ppa && \ - apt-get update && \ - apt-get install -y \ - python3.10 \ - python3.10-venv \ - python3.10-distutils \ - python3-pip \ - wget \ - git \ - libgl1 \ - libglib2.0-0 \ - && rm -rf /var/lib/apt/lists/* - -# RUN unset http_proxy && unset https_proxy - -# Set Python 3.10 as the default python3 -RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1 - -# Create a virtual environment for MinerU -RUN python3 -m venv /opt/mineru_venv -RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple -# Activate the virtual environment and install necessary Python packages -RUN /bin/bash -c "source /opt/mineru_venv/bin/activate && \ - pip install --upgrade pip && \ - pip install magic-pdf[full] --extra-index-url https://myhloli.github.io/wheels/ --no-cache-dir" - - -RUN /bin/bash -c "source /opt/mineru_venv/bin/activate && \ - pip install fastapi uvicorn python-multipart --no-cache-dir" - -RUN /bin/bash -c "source /opt/mineru_venv/bin/activate && \ - pip uninstall paddlepaddle -y" - -RUN /bin/bash -c "source /opt/mineru_venv/bin/activate && \ - python -m pip install paddlepaddle-gpu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ --no-cache-dir" - -# Copy the configuration file template and set up the model directory -COPY magic-pdf.template.json /root/magic-pdf.json -ADD models /opt/models -ADD .paddleocr /root/.paddleocr -ADD app.py /root/app.py - -WORKDIR /root - -# Set the models directory in the configuration file (adjust the path as needed) -RUN sed -i 's|/tmp/models|/opt/models|g' /root/magic-pdf.json - -# Create the models directory -# RUN mkdir -p /opt/models - -# Set the entry point to activate the virtual environment and run the command line tool -# ENTRYPOINT ["/bin/bash", "-c", "source /opt/mineru_venv/bin/activate && exec \"$@\" && python3 app.py", "--"] - - -# Expose the port that FastAPI will run on -EXPOSE 8000 - -# Command to run FastAPI using Uvicorn, pointing to app.py and binding to 0.0.0.0:8000 -CMD ["/bin/bash", "-c", "source /opt/mineru_venv/bin/activate && uvicorn app:app --host 0.0.0.0 --port 8000"] \ No newline at end of file diff --git a/projects/web_api/README.md b/projects/web_api/README.md deleted file mode 100644 index e9c109ca6..000000000 --- a/projects/web_api/README.md +++ /dev/null @@ -1,44 +0,0 @@ -基于MinerU的PDF解析API - - - MinerU的GPU镜像构建 - - 基于FastAPI的PDF解析接口 - -支持一键启动,已经打包到镜像中,自带模型权重,支持GPU推理加速,GPU速度相比CPU每页解析要快几十倍不等 - - -## 启动命令: - - -```docker run -itd --name=mineru_server --gpus=all -p 8888:8000 quincyqiang/mineru:0.1-models``` - -![](https://i-blog.csdnimg.cn/direct/bcff4f524ea5400db14421ba7cec4989.png) - -具体截图请见博客:https://blog.csdn.net/yanqianglifei/article/details/141979684 - - -## 启动日志: - -![](https://i-blog.csdnimg.cn/direct/4eb5657567e4415eba912179dca5c8aa.png) - -## 输入参数: - -访问地址: - - http://localhost:8888/docs - - http://127.0.01:8888/docs - -![](https://i-blog.csdnimg.cn/direct/8b3a2bc5908042268e8cc69756e331a2.png) - -## 解析效果: - -![](https://i-blog.csdnimg.cn/direct/a54dcae834ae48d498fb595aca4212c3.png) - - - -## 镜像地址: - -> 阿里云地址:docker pull registry.cn-beijing.aliyuncs.com/quincyqiang/mineru:0.1-models - -> dockerhub地址:docker pull quincyqiang/mineru:0.1-models - diff --git a/projects/web_api/app.py b/projects/web_api/app.py deleted file mode 100644 index df0930764..000000000 --- a/projects/web_api/app.py +++ /dev/null @@ -1,141 +0,0 @@ -import copy -import json -import os -from tempfile import NamedTemporaryFile - -import magic_pdf.model as model_config -import uvicorn -from fastapi import FastAPI, File, UploadFile, Form -from fastapi.responses import JSONResponse -from loguru import logger -from magic_pdf.pipe.OCRPipe import OCRPipe -from magic_pdf.pipe.TXTPipe import TXTPipe -from magic_pdf.pipe.UNIPipe import UNIPipe -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter - -model_config.__use_inside_model__ = True - -app = FastAPI() - -def json_md_dump( - pipe, - md_writer, - pdf_name, - content_list, - md_content, -): - # Write model results to model.json - orig_model_list = copy.deepcopy(pipe.model_list) - md_writer.write( - content=json.dumps(orig_model_list, ensure_ascii=False, indent=4), - path=f"{pdf_name}_model.json" - ) - - # Write intermediate results to middle.json - md_writer.write( - content=json.dumps(pipe.pdf_mid_data, ensure_ascii=False, indent=4), - path=f"{pdf_name}_middle.json" - ) - - # Write text content results to content_list.json - md_writer.write( - content=json.dumps(content_list, ensure_ascii=False, indent=4), - path=f"{pdf_name}_content_list.json" - ) - - # Write results to .md file - md_writer.write( - content=md_content, - path=f"{pdf_name}.md" - ) - -@app.post("/pdf_parse", tags=["projects"], summary="Parse PDF file") -async def pdf_parse_main( - pdf_file: UploadFile = File(...), - parse_method: str = 'auto', - model_json_path: str = None, - is_json_md_dump: bool = True, - output_dir: str = "output" -): - """ - Execute the process of converting PDF to JSON and MD, outputting MD and JSON files to the specified directory - :param pdf_file: The PDF file to be parsed - :param parse_method: Parsing method, can be auto, ocr, or txt. Default is auto. If results are not satisfactory, try ocr - :param model_json_path: Path to existing model data file. If empty, use built-in model. PDF and model_json must correspond - :param is_json_md_dump: Whether to write parsed data to .json and .md files. Default is True. Different stages of data will be written to different .json files (3 in total), md content will be saved to .md file - :param output_dir: Output directory for results. A folder named after the PDF file will be created to store all results - """ - try: - # Create a temporary file to store the uploaded PDF - with NamedTemporaryFile(delete=False, suffix=".pdf") as temp_pdf: - temp_pdf.write(await pdf_file.read()) - temp_pdf_path = temp_pdf.name - - pdf_name = os.path.basename(pdf_file.filename).split(".")[0] - - if output_dir: - output_path = os.path.join(output_dir, pdf_name) - else: - output_path = os.path.join(os.path.dirname(temp_pdf_path), pdf_name) - - output_image_path = os.path.join(output_path, 'images') - - # Get parent path of images for relative path in .md and content_list.json - image_path_parent = os.path.basename(output_image_path) - - pdf_bytes = open(temp_pdf_path, "rb").read() # Read binary data of PDF file - - if model_json_path: - # Read original JSON data of PDF file parsed by model, list type - model_json = json.loads(open(model_json_path, "r", encoding="utf-8").read()) - else: - model_json = [] - - # Execute parsing steps - image_writer, md_writer = DiskReaderWriter(output_image_path), DiskReaderWriter(output_path) - - # Choose parsing method - if parse_method == "auto": - jso_useful_key = {"_pdf_type": "", "model_list": model_json} - pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer) - elif parse_method == "txt": - pipe = TXTPipe(pdf_bytes, model_json, image_writer) - elif parse_method == "ocr": - pipe = OCRPipe(pdf_bytes, model_json, image_writer) - else: - logger.error("Unknown parse method, only auto, ocr, txt allowed") - return JSONResponse(content={"error": "Invalid parse method"}, status_code=400) - - # Execute classification - pipe.pipe_classify() - - # If no model data is provided, use built-in model for parsing - if not model_json: - if model_config.__use_inside_model__: - pipe.pipe_analyze() # Parse - else: - logger.error("Need model list input") - return JSONResponse(content={"error": "Model list input required"}, status_code=400) - - # Execute parsing - pipe.pipe_parse() - - # Save results in text and md format - content_list = pipe.pipe_mk_uni_format(image_path_parent, drop_mode="none") - md_content = pipe.pipe_mk_markdown(image_path_parent, drop_mode="none") - - if is_json_md_dump: - json_md_dump(pipe, md_writer, pdf_name, content_list, md_content) - data = {"layout": copy.deepcopy(pipe.model_list), "info": pipe.pdf_mid_data, "content_list": content_list,'md_content':md_content} - return JSONResponse(data, status_code=200) - - except Exception as e: - logger.exception(e) - return JSONResponse(content={"error": str(e)}, status_code=500) - finally: - # Clean up the temporary file - if 'temp_pdf_path' in locals(): - os.unlink(temp_pdf_path) - -# if __name__ == '__main__': -# uvicorn.run(app, host="0.0.0.0", port=8888) \ No newline at end of file diff --git a/projects/web_api/magic-pdf.json b/projects/web_api/magic-pdf.json deleted file mode 100644 index 389792f22..000000000 --- a/projects/web_api/magic-pdf.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "bucket_info":{ - "bucket-name-1":["ak", "sk", "endpoint"], - "bucket-name-2":["ak", "sk", "endpoint"] - }, - "models-dir":"/opt/models", - "device-mode":"cuda", - "table-config": { - "model": "TableMaster", - "is_table_recog_enable": false, - "max_time": 400 - } -} diff --git a/projects/web_api/magic-pdf.template.json b/projects/web_api/magic-pdf.template.json deleted file mode 100644 index 5d132a85b..000000000 --- a/projects/web_api/magic-pdf.template.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "bucket_info":{ - "bucket-name-1":["ak", "sk", "endpoint"], - "bucket-name-2":["ak", "sk", "endpoint"] - }, - "models-dir":"/tmp/models", - "device-mode":"cuda", - "table-config": { - "model": "TableMaster", - "is_table_recog_enable": false, - "max_time": 400 - } -} \ No newline at end of file diff --git a/projects/web_api/requirements.txt b/projects/web_api/requirements.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/projects/web_api/small_ocr.pdf b/projects/web_api/small_ocr.pdf deleted file mode 100644 index 2ab92332e..000000000 Binary files a/projects/web_api/small_ocr.pdf and /dev/null differ diff --git a/projects/web_api/sources.list b/projects/web_api/sources.list deleted file mode 100644 index a87c91abd..000000000 --- a/projects/web_api/sources.list +++ /dev/null @@ -1,10 +0,0 @@ -deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse -deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse -deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse -deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse -deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse -deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse -deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse -deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse -deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse -deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse \ No newline at end of file diff --git a/projects/web_api/start_mineru.sh b/projects/web_api/start_mineru.sh deleted file mode 100644 index 0b7b6edcf..000000000 --- a/projects/web_api/start_mineru.sh +++ /dev/null @@ -1,7 +0,0 @@ -docker run -itd --name=mineru_server --gpus=all -p 8888:8000 quincyqiang/mineru:0.1-models /bin/bash - -docker run -itd --name=mineru_server --gpus=all -p 8888:8000 quincyqiang/mineru:0.3-models - -docker login --username=1185918903@qq.com registry.cn-beijing.aliyuncs.com -docker tag quincyqiang/mineru:0.3-models registry.cn-beijing.aliyuncs.com/quincyqiang/gomate:0.3-models -docker push registry.cn-beijing.aliyuncs.com/quincyqiang/gomate:0.3-models \ No newline at end of file diff --git a/projects/web_demo/README.md b/projects/web_demo/README.md deleted file mode 100644 index 2132a96e9..000000000 --- a/projects/web_demo/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# MinerU Local web_demo -## Feature Overview -

    - -

    - -- Supports uploading PDFs and calling MinerU for processing - -- Supports online editing of the Markdown results parsed by MinerU - -- Supports viewing of historical tasks - -## Installation and Deployment - -0. MinerU Installation and Deployment - - -``` -# The service depends on mineru, please ensure mineru is installed first -``` - -1. Package the front-end interface - -```bash -# First, navigate to the front-end directory -cd projects/web - -# Modify the configuration -# Change the IP in the target field of the file vite.config.ts to your own computer's IP - -# Build the front-end project -npm install -g yarn -yarn install -yarn build -``` - -2. Install service dependencies - -```bash -# First, navigate to the back-end directory -cd projects/web_demo -# Install dependencies -pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple -``` - -3. Start the service - -```bash -# Navigate to the program directory -cd projects/web_demo/web_demo -# Start the service -python3 app.py or python app.py -# Access the interface by visiting the started address in the browser -``` - -ps:API documentation - -``` -Open the mineru-web API mineru-web接口文档.html in the browser -``` diff --git a/projects/web_demo/README_zh-CN.md b/projects/web_demo/README_zh-CN.md deleted file mode 100644 index 9c4dae280..000000000 --- a/projects/web_demo/README_zh-CN.md +++ /dev/null @@ -1,59 +0,0 @@ -# MinerU本地web_demo -## 功能简介 -

    - -

    - -- 支持上传pdf,并调用MinerU进行处理 - -- 支持对MinerU解析的Markdown结果进行在线修改 - -- 支持查看历史任务 - -## 安装部署 - -0. MinerU安装部署 - -``` -# 服务依赖MinerU,请先确保MinerU已安装 -``` - -1. 打包前端界面 - -```bash -# 先进入前端目录 -cd projects/web - -# 修改配置 -# 将文件vite.config.ts中的target中的IP更改为自己电脑IP - -# 打包前端项目 -npm install -g yarn -yarn install -yarn build -``` - -2. 安装服务依赖 - -```bash -# 先进入后端目录 -cd projects/web_demo -# 安装依赖 -pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple -``` - -3. 启动服务 - -```bash -# 进入程序目录 -cd projects/web_demo/web_demo -# 启动服务 -python3 app.py 或者 python app.py -# 在浏览器访问启动的地址即可访问界面 -``` - -ps:接口文档 - -``` -在浏览器打开 mineru-web接口文档.html -``` diff --git a/projects/web_demo/images/web_demo_1.png b/projects/web_demo/images/web_demo_1.png deleted file mode 100644 index 2d903adec..000000000 Binary files a/projects/web_demo/images/web_demo_1.png and /dev/null differ diff --git "a/projects/web_demo/mineru-web\346\216\245\345\217\243\346\226\207\346\241\243.html" "b/projects/web_demo/mineru-web\346\216\245\345\217\243\346\226\207\346\241\243.html" deleted file mode 100644 index 93f31f608..000000000 --- "a/projects/web_demo/mineru-web\346\216\245\345\217\243\346\226\207\346\241\243.html" +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - Apifox 接口文档 - - - - - - -
    - - - - - diff --git a/projects/web_demo/poetry.lock b/projects/web_demo/poetry.lock deleted file mode 100644 index b9706f230..000000000 --- a/projects/web_demo/poetry.lock +++ /dev/null @@ -1,687 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. - -[[package]] -name = "alembic" -version = "1.13.2" -description = "A database migration tool for SQLAlchemy." -optional = false -python-versions = ">=3.8" -files = [ - {file = "alembic-1.13.2-py3-none-any.whl", hash = "sha256:6b8733129a6224a9a711e17c99b08462dbf7cc9670ba8f2e2ae9af860ceb1953"}, - {file = "alembic-1.13.2.tar.gz", hash = "sha256:1ff0ae32975f4fd96028c39ed9bb3c867fe3af956bd7bb37343b54c9fe7445ef"}, -] - -[package.dependencies] -Mako = "*" -SQLAlchemy = ">=1.3.0" -typing-extensions = ">=4" - -[package.extras] -tz = ["backports.zoneinfo"] - -[[package]] -name = "aniso8601" -version = "9.0.1" -description = "A library for parsing ISO 8601 strings." -optional = false -python-versions = "*" -files = [ - {file = "aniso8601-9.0.1-py2.py3-none-any.whl", hash = "sha256:1d2b7ef82963909e93c4f24ce48d4de9e66009a21bf1c1e1c85bdd0812fe412f"}, - {file = "aniso8601-9.0.1.tar.gz", hash = "sha256:72e3117667eedf66951bb2d93f4296a56b94b078a8a95905a052611fb3f1b973"}, -] - -[package.extras] -dev = ["black", "coverage", "isort", "pre-commit", "pyenchant", "pylint"] - -[[package]] -name = "blinker" -version = "1.8.2" -description = "Fast, simple object-to-object and broadcast signaling" -optional = false -python-versions = ">=3.8" -files = [ - {file = "blinker-1.8.2-py3-none-any.whl", hash = "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01"}, - {file = "blinker-1.8.2.tar.gz", hash = "sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83"}, -] - -[[package]] -name = "click" -version = "8.1.7" -description = "Composable command line interface toolkit" -optional = false -python-versions = ">=3.7" -files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "flask" -version = "3.0.3" -description = "A simple framework for building complex web applications." -optional = false -python-versions = ">=3.8" -files = [ - {file = "flask-3.0.3-py3-none-any.whl", hash = "sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3"}, - {file = "flask-3.0.3.tar.gz", hash = "sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842"}, -] - -[package.dependencies] -blinker = ">=1.6.2" -click = ">=8.1.3" -itsdangerous = ">=2.1.2" -Jinja2 = ">=3.1.2" -Werkzeug = ">=3.0.0" - -[package.extras] -async = ["asgiref (>=3.2)"] -dotenv = ["python-dotenv"] - -[[package]] -name = "flask-cors" -version = "5.0.0" -description = "A Flask extension adding a decorator for CORS support" -optional = false -python-versions = "*" -files = [ - {file = "Flask_Cors-5.0.0-py2.py3-none-any.whl", hash = "sha256:b9e307d082a9261c100d8fb0ba909eec6a228ed1b60a8315fd85f783d61910bc"}, - {file = "flask_cors-5.0.0.tar.gz", hash = "sha256:5aadb4b950c4e93745034594d9f3ea6591f734bb3662e16e255ffbf5e89c88ef"}, -] - -[package.dependencies] -Flask = ">=0.9" - -[[package]] -name = "flask-jwt-extended" -version = "4.6.0" -description = "Extended JWT integration with Flask" -optional = false -python-versions = ">=3.7,<4" -files = [ - {file = "Flask-JWT-Extended-4.6.0.tar.gz", hash = "sha256:9215d05a9413d3855764bcd67035e75819d23af2fafb6b55197eb5a3313fdfb2"}, - {file = "Flask_JWT_Extended-4.6.0-py2.py3-none-any.whl", hash = "sha256:63a28fc9731bcc6c4b8815b6f954b5904caa534fc2ae9b93b1d3ef12930dca95"}, -] - -[package.dependencies] -Flask = ">=2.0,<4.0" -PyJWT = ">=2.0,<3.0" -Werkzeug = ">=0.14" - -[package.extras] -asymmetric-crypto = ["cryptography (>=3.3.1)"] - -[[package]] -name = "flask-marshmallow" -version = "1.2.1" -description = "Flask + marshmallow for beautiful APIs" -optional = false -python-versions = ">=3.8" -files = [ - {file = "flask_marshmallow-1.2.1-py3-none-any.whl", hash = "sha256:10b5048ecfaa26f7c8d0aed7d81083164450e6be8e81c04b3d4a586b3f7b6678"}, - {file = "flask_marshmallow-1.2.1.tar.gz", hash = "sha256:00ee96399ed664963afff3b5d6ee518640b0f91dbc2aace2b5abcf32f40ef23a"}, -] - -[package.dependencies] -Flask = ">=2.2" -marshmallow = ">=3.0.0" - -[package.extras] -dev = ["flask-marshmallow[tests]", "pre-commit (>=3.5,<4.0)", "tox"] -docs = ["Sphinx (==7.2.6)", "marshmallow-sqlalchemy (>=0.19.0)", "sphinx-issues (==4.0.0)"] -sqlalchemy = ["flask-sqlalchemy (>=3.0.0)", "marshmallow-sqlalchemy (>=0.29.0)"] -tests = ["flask-marshmallow[sqlalchemy]", "pytest"] - -[[package]] -name = "flask-migrate" -version = "4.0.7" -description = "SQLAlchemy database migrations for Flask applications using Alembic." -optional = false -python-versions = ">=3.6" -files = [ - {file = "Flask-Migrate-4.0.7.tar.gz", hash = "sha256:dff7dd25113c210b069af280ea713b883f3840c1e3455274745d7355778c8622"}, - {file = "Flask_Migrate-4.0.7-py3-none-any.whl", hash = "sha256:5c532be17e7b43a223b7500d620edae33795df27c75811ddf32560f7d48ec617"}, -] - -[package.dependencies] -alembic = ">=1.9.0" -Flask = ">=0.9" -Flask-SQLAlchemy = ">=1.0" - -[[package]] -name = "flask-restful" -version = "0.3.10" -description = "Simple framework for creating REST APIs" -optional = false -python-versions = "*" -files = [ - {file = "Flask-RESTful-0.3.10.tar.gz", hash = "sha256:fe4af2ef0027df8f9b4f797aba20c5566801b6ade995ac63b588abf1a59cec37"}, - {file = "Flask_RESTful-0.3.10-py2.py3-none-any.whl", hash = "sha256:1cf93c535172f112e080b0d4503a8d15f93a48c88bdd36dd87269bdaf405051b"}, -] - -[package.dependencies] -aniso8601 = ">=0.82" -Flask = ">=0.8" -pytz = "*" -six = ">=1.3.0" - -[package.extras] -docs = ["sphinx"] - -[[package]] -name = "flask-sqlalchemy" -version = "3.1.1" -description = "Add SQLAlchemy support to your Flask application." -optional = false -python-versions = ">=3.8" -files = [ - {file = "flask_sqlalchemy-3.1.1-py3-none-any.whl", hash = "sha256:4ba4be7f419dc72f4efd8802d69974803c37259dd42f3913b0dcf75c9447e0a0"}, - {file = "flask_sqlalchemy-3.1.1.tar.gz", hash = "sha256:e4b68bb881802dda1a7d878b2fc84c06d1ee57fb40b874d3dc97dabfa36b8312"}, -] - -[package.dependencies] -flask = ">=2.2.5" -sqlalchemy = ">=2.0.16" - -[[package]] -name = "greenlet" -version = "3.0.3" -description = "Lightweight in-process concurrent programming" -optional = false -python-versions = ">=3.7" -files = [ - {file = "greenlet-3.0.3-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9da2bd29ed9e4f15955dd1595ad7bc9320308a3b766ef7f837e23ad4b4aac31a"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d353cadd6083fdb056bb46ed07e4340b0869c305c8ca54ef9da3421acbdf6881"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dca1e2f3ca00b84a396bc1bce13dd21f680f035314d2379c4160c98153b2059b"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ed7fb269f15dc662787f4119ec300ad0702fa1b19d2135a37c2c4de6fadfd4a"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd4f49ae60e10adbc94b45c0b5e6a179acc1736cf7a90160b404076ee283cf83"}, - {file = "greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:73a411ef564e0e097dbe7e866bb2dda0f027e072b04da387282b02c308807405"}, - {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7f362975f2d179f9e26928c5b517524e89dd48530a0202570d55ad6ca5d8a56f"}, - {file = "greenlet-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:649dde7de1a5eceb258f9cb00bdf50e978c9db1b996964cd80703614c86495eb"}, - {file = "greenlet-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:68834da854554926fbedd38c76e60c4a2e3198c6fbed520b106a8986445caaf9"}, - {file = "greenlet-3.0.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b1b5667cced97081bf57b8fa1d6bfca67814b0afd38208d52538316e9422fc61"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52f59dd9c96ad2fc0d5724107444f76eb20aaccb675bf825df6435acb7703559"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:afaff6cf5200befd5cec055b07d1c0a5a06c040fe5ad148abcd11ba6ab9b114e"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe754d231288e1e64323cfad462fcee8f0288654c10bdf4f603a39ed923bef33"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2797aa5aedac23af156bbb5a6aa2cd3427ada2972c828244eb7d1b9255846379"}, - {file = "greenlet-3.0.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7f009caad047246ed379e1c4dbcb8b020f0a390667ea74d2387be2998f58a22"}, - {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c5e1536de2aad7bf62e27baf79225d0d64360d4168cf2e6becb91baf1ed074f3"}, - {file = "greenlet-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:894393ce10ceac937e56ec00bb71c4c2f8209ad516e96033e4b3b1de270e200d"}, - {file = "greenlet-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:1ea188d4f49089fc6fb283845ab18a2518d279c7cd9da1065d7a84e991748728"}, - {file = "greenlet-3.0.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:70fb482fdf2c707765ab5f0b6655e9cfcf3780d8d87355a063547b41177599be"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4d1ac74f5c0c0524e4a24335350edad7e5f03b9532da7ea4d3c54d527784f2e"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:149e94a2dd82d19838fe4b2259f1b6b9957d5ba1b25640d2380bea9c5df37676"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15d79dd26056573940fcb8c7413d84118086f2ec1a8acdfa854631084393efcc"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b7db1ebff4ba09aaaeae6aa491daeb226c8150fc20e836ad00041bcb11230"}, - {file = "greenlet-3.0.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fcd2469d6a2cf298f198f0487e0a5b1a47a42ca0fa4dfd1b6862c999f018ebbf"}, - {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f672519db1796ca0d8753f9e78ec02355e862d0998193038c7073045899f305"}, - {file = "greenlet-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2516a9957eed41dd8f1ec0c604f1cdc86758b587d964668b5b196a9db5bfcde6"}, - {file = "greenlet-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:bba5387a6975598857d86de9eac14210a49d554a77eb8261cc68b7d082f78ce2"}, - {file = "greenlet-3.0.3-cp37-cp37m-macosx_11_0_universal2.whl", hash = "sha256:5b51e85cb5ceda94e79d019ed36b35386e8c37d22f07d6a751cb659b180d5274"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:daf3cb43b7cf2ba96d614252ce1684c1bccee6b2183a01328c98d36fcd7d5cb0"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99bf650dc5d69546e076f413a87481ee1d2d09aaaaaca058c9251b6d8c14783f"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dd6e660effd852586b6a8478a1d244b8dc90ab5b1321751d2ea15deb49ed414"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3391d1e16e2a5a1507d83e4a8b100f4ee626e8eca43cf2cadb543de69827c4c"}, - {file = "greenlet-3.0.3-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1f145462f1fa6e4a4ae3c0f782e580ce44d57c8f2c7aae1b6fa88c0b2efdb41"}, - {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1a7191e42732df52cb5f39d3527217e7ab73cae2cb3694d241e18f53d84ea9a7"}, - {file = "greenlet-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0448abc479fab28b00cb472d278828b3ccca164531daab4e970a0458786055d6"}, - {file = "greenlet-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:b542be2440edc2d48547b5923c408cbe0fc94afb9f18741faa6ae970dbcb9b6d"}, - {file = "greenlet-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:01bc7ea167cf943b4c802068e178bbf70ae2e8c080467070d01bfa02f337ee67"}, - {file = "greenlet-3.0.3-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1996cb9306c8595335bb157d133daf5cf9f693ef413e7673cb07e3e5871379ca"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ddc0f794e6ad661e321caa8d2f0a55ce01213c74722587256fb6566049a8b04"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c9db1c18f0eaad2f804728c67d6c610778456e3e1cc4ab4bbd5eeb8e6053c6fc"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7170375bcc99f1a2fbd9c306f5be8764eaf3ac6b5cb968862cad4c7057756506"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b66c9c1e7ccabad3a7d037b2bcb740122a7b17a53734b7d72a344ce39882a1b"}, - {file = "greenlet-3.0.3-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:098d86f528c855ead3479afe84b49242e174ed262456c342d70fc7f972bc13c4"}, - {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:81bb9c6d52e8321f09c3d165b2a78c680506d9af285bfccbad9fb7ad5a5da3e5"}, - {file = "greenlet-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fd096eb7ffef17c456cfa587523c5f92321ae02427ff955bebe9e3c63bc9f0da"}, - {file = "greenlet-3.0.3-cp38-cp38-win32.whl", hash = "sha256:d46677c85c5ba00a9cb6f7a00b2bfa6f812192d2c9f7d9c4f6a55b60216712f3"}, - {file = "greenlet-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:419b386f84949bf0e7c73e6032e3457b82a787c1ab4a0e43732898a761cc9dbf"}, - {file = "greenlet-3.0.3-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:da70d4d51c8b306bb7a031d5cff6cc25ad253affe89b70352af5f1cb68e74b53"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:086152f8fbc5955df88382e8a75984e2bb1c892ad2e3c80a2508954e52295257"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73a9fe764d77f87f8ec26a0c85144d6a951a6c438dfe50487df5595c6373eac"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7dcbe92cc99f08c8dd11f930de4d99ef756c3591a5377d1d9cd7dd5e896da71"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1551a8195c0d4a68fac7a4325efac0d541b48def35feb49d803674ac32582f61"}, - {file = "greenlet-3.0.3-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:64d7675ad83578e3fc149b617a444fab8efdafc9385471f868eb5ff83e446b8b"}, - {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b37eef18ea55f2ffd8f00ff8fe7c8d3818abd3e25fb73fae2ca3b672e333a7a6"}, - {file = "greenlet-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:77457465d89b8263bca14759d7c1684df840b6811b2499838cc5b040a8b5b113"}, - {file = "greenlet-3.0.3-cp39-cp39-win32.whl", hash = "sha256:57e8974f23e47dac22b83436bdcf23080ade568ce77df33159e019d161ce1d1e"}, - {file = "greenlet-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:c5ee858cfe08f34712f548c3c363e807e7186f03ad7a5039ebadb29e8c6be067"}, - {file = "greenlet-3.0.3.tar.gz", hash = "sha256:43374442353259554ce33599da8b692d5aa96f8976d567d4badf263371fbe491"}, -] - -[package.extras] -docs = ["Sphinx", "furo"] -test = ["objgraph", "psutil"] - -[[package]] -name = "itsdangerous" -version = "2.2.0" -description = "Safely pass data to untrusted environments and back." -optional = false -python-versions = ">=3.8" -files = [ - {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, - {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, -] - -[[package]] -name = "jinja2" -version = "3.1.4" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "loguru" -version = "0.7.2" -description = "Python logging made (stupidly) simple" -optional = false -python-versions = ">=3.5" -files = [ - {file = "loguru-0.7.2-py3-none-any.whl", hash = "sha256:003d71e3d3ed35f0f8984898359d65b79e5b21943f78af86aa5491210429b8eb"}, - {file = "loguru-0.7.2.tar.gz", hash = "sha256:e671a53522515f34fd406340ee968cb9ecafbc4b36c679da03c18fd8d0bd51ac"}, -] - -[package.dependencies] -colorama = {version = ">=0.3.4", markers = "sys_platform == \"win32\""} -win32-setctime = {version = ">=1.0.0", markers = "sys_platform == \"win32\""} - -[package.extras] -dev = ["Sphinx (==7.2.5)", "colorama (==0.4.5)", "colorama (==0.4.6)", "exceptiongroup (==1.1.3)", "freezegun (==1.1.0)", "freezegun (==1.2.2)", "mypy (==v0.910)", "mypy (==v0.971)", "mypy (==v1.4.1)", "mypy (==v1.5.1)", "pre-commit (==3.4.0)", "pytest (==6.1.2)", "pytest (==7.4.0)", "pytest-cov (==2.12.1)", "pytest-cov (==4.1.0)", "pytest-mypy-plugins (==1.9.3)", "pytest-mypy-plugins (==3.0.0)", "sphinx-autobuild (==2021.3.14)", "sphinx-rtd-theme (==1.3.0)", "tox (==3.27.1)", "tox (==4.11.0)"] - -[[package]] -name = "mako" -version = "1.3.5" -description = "A super-fast templating language that borrows the best ideas from the existing templating languages." -optional = false -python-versions = ">=3.8" -files = [ - {file = "Mako-1.3.5-py3-none-any.whl", hash = "sha256:260f1dbc3a519453a9c856dedfe4beb4e50bd5a26d96386cb6c80856556bb91a"}, - {file = "Mako-1.3.5.tar.gz", hash = "sha256:48dbc20568c1d276a2698b36d968fa76161bf127194907ea6fc594fa81f943bc"}, -] - -[package.dependencies] -MarkupSafe = ">=0.9.2" - -[package.extras] -babel = ["Babel"] -lingua = ["lingua"] -testing = ["pytest"] - -[[package]] -name = "markupsafe" -version = "2.1.5" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, -] - -[[package]] -name = "marshmallow" -version = "3.22.0" -description = "A lightweight library for converting complex datatypes to and from native Python datatypes." -optional = false -python-versions = ">=3.8" -files = [ - {file = "marshmallow-3.22.0-py3-none-any.whl", hash = "sha256:71a2dce49ef901c3f97ed296ae5051135fd3febd2bf43afe0ae9a82143a494d9"}, - {file = "marshmallow-3.22.0.tar.gz", hash = "sha256:4972f529104a220bb8637d595aa4c9762afbe7f7a77d82dc58c1615d70c5823e"}, -] - -[package.dependencies] -packaging = ">=17.0" - -[package.extras] -dev = ["marshmallow[tests]", "pre-commit (>=3.5,<4.0)", "tox"] -docs = ["alabaster (==1.0.0)", "autodocsumm (==0.2.13)", "sphinx (==8.0.2)", "sphinx-issues (==4.1.0)", "sphinx-version-warning (==1.1.2)"] -tests = ["pytest", "pytz", "simplejson"] - -[[package]] -name = "marshmallow-sqlalchemy" -version = "1.1.0" -description = "SQLAlchemy integration with the marshmallow (de)serialization library" -optional = false -python-versions = ">=3.8" -files = [ - {file = "marshmallow_sqlalchemy-1.1.0-py3-none-any.whl", hash = "sha256:cce261148e4c6ec4ee275f3d29352933380a1afa2fd3933f5e9ecd02fdc16ade"}, - {file = "marshmallow_sqlalchemy-1.1.0.tar.gz", hash = "sha256:2ab092da269dafa8a05d51a58409af71a8d2183958ba47143127dd239e0359d8"}, -] - -[package.dependencies] -marshmallow = ">=3.18.0" -SQLAlchemy = ">=1.4.40,<3.0" - -[package.extras] -dev = ["marshmallow-sqlalchemy[tests]", "pre-commit (>=3.5,<4.0)", "tox"] -docs = ["alabaster (==1.0.0)", "sphinx (==8.0.2)", "sphinx-issues (==4.1.0)"] -tests = ["pytest (<9)", "pytest-lazy-fixtures"] - -[[package]] -name = "packaging" -version = "24.1" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, -] - -[[package]] -name = "pyjwt" -version = "2.9.0" -description = "JSON Web Token implementation in Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyJWT-2.9.0-py3-none-any.whl", hash = "sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850"}, - {file = "pyjwt-2.9.0.tar.gz", hash = "sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c"}, -] - -[package.extras] -crypto = ["cryptography (>=3.4.0)"] -dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] -docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] -tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] - -[[package]] -name = "pytz" -version = "2024.1" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, - {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.2" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.8" -files = [ - {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"}, - {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"}, - {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"}, - {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"}, - {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"}, - {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"}, - {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"}, - {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"}, - {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"}, - {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"}, - {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"}, - {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"}, - {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"}, - {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"}, - {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"}, - {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"}, - {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"}, - {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"}, - {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"}, - {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"}, - {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"}, - {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"}, - {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"}, - {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"}, - {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"}, - {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"}, - {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"}, - {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"}, - {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"}, - {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"}, - {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"}, - {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"}, -] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "sqlalchemy" -version = "2.0.32" -description = "Database Abstraction Library" -optional = false -python-versions = ">=3.7" -files = [ - {file = "SQLAlchemy-2.0.32-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0c9045ecc2e4db59bfc97b20516dfdf8e41d910ac6fb667ebd3a79ea54084619"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1467940318e4a860afd546ef61fefb98a14d935cd6817ed07a228c7f7c62f389"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5954463675cb15db8d4b521f3566a017c8789222b8316b1e6934c811018ee08b"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:167e7497035c303ae50651b351c28dc22a40bb98fbdb8468cdc971821b1ae533"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b27dfb676ac02529fb6e343b3a482303f16e6bc3a4d868b73935b8792edb52d0"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bf2360a5e0f7bd75fa80431bf8ebcfb920c9f885e7956c7efde89031695cafb8"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-win32.whl", hash = "sha256:306fe44e754a91cd9d600a6b070c1f2fadbb4a1a257b8781ccf33c7067fd3e4d"}, - {file = "SQLAlchemy-2.0.32-cp310-cp310-win_amd64.whl", hash = "sha256:99db65e6f3ab42e06c318f15c98f59a436f1c78179e6a6f40f529c8cc7100b22"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:21b053be28a8a414f2ddd401f1be8361e41032d2ef5884b2f31d31cb723e559f"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b178e875a7a25b5938b53b006598ee7645172fccafe1c291a706e93f48499ff5"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723a40ee2cc7ea653645bd4cf024326dea2076673fc9d3d33f20f6c81db83e1d"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:295ff8689544f7ee7e819529633d058bd458c1fd7f7e3eebd0f9268ebc56c2a0"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:49496b68cd190a147118af585173ee624114dfb2e0297558c460ad7495f9dfe2"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:acd9b73c5c15f0ec5ce18128b1fe9157ddd0044abc373e6ecd5ba376a7e5d961"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-win32.whl", hash = "sha256:9365a3da32dabd3e69e06b972b1ffb0c89668994c7e8e75ce21d3e5e69ddef28"}, - {file = "SQLAlchemy-2.0.32-cp311-cp311-win_amd64.whl", hash = "sha256:8bd63d051f4f313b102a2af1cbc8b80f061bf78f3d5bd0843ff70b5859e27924"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6bab3db192a0c35e3c9d1560eb8332463e29e5507dbd822e29a0a3c48c0a8d92"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:19d98f4f58b13900d8dec4ed09dd09ef292208ee44cc9c2fe01c1f0a2fe440e9"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cd33c61513cb1b7371fd40cf221256456d26a56284e7d19d1f0b9f1eb7dd7e8"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d6ba0497c1d066dd004e0f02a92426ca2df20fac08728d03f67f6960271feec"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2b6be53e4fde0065524f1a0a7929b10e9280987b320716c1509478b712a7688c"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:916a798f62f410c0b80b63683c8061f5ebe237b0f4ad778739304253353bc1cb"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-win32.whl", hash = "sha256:31983018b74908ebc6c996a16ad3690301a23befb643093fcfe85efd292e384d"}, - {file = "SQLAlchemy-2.0.32-cp312-cp312-win_amd64.whl", hash = "sha256:4363ed245a6231f2e2957cccdda3c776265a75851f4753c60f3004b90e69bfeb"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b8afd5b26570bf41c35c0121801479958b4446751a3971fb9a480c1afd85558e"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c750987fc876813f27b60d619b987b057eb4896b81117f73bb8d9918c14f1cad"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ada0102afff4890f651ed91120c1120065663506b760da4e7823913ebd3258be"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:78c03d0f8a5ab4f3034c0e8482cfcc415a3ec6193491cfa1c643ed707d476f16"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:3bd1cae7519283ff525e64645ebd7a3e0283f3c038f461ecc1c7b040a0c932a1"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-win32.whl", hash = "sha256:01438ebcdc566d58c93af0171c74ec28efe6a29184b773e378a385e6215389da"}, - {file = "SQLAlchemy-2.0.32-cp37-cp37m-win_amd64.whl", hash = "sha256:4979dc80fbbc9d2ef569e71e0896990bc94df2b9fdbd878290bd129b65ab579c"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c742be912f57586ac43af38b3848f7688863a403dfb220193a882ea60e1ec3a"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:62e23d0ac103bcf1c5555b6c88c114089587bc64d048fef5bbdb58dfd26f96da"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:251f0d1108aab8ea7b9aadbd07fb47fb8e3a5838dde34aa95a3349876b5a1f1d"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ef18a84e5116340e38eca3e7f9eeaaef62738891422e7c2a0b80feab165905f"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:3eb6a97a1d39976f360b10ff208c73afb6a4de86dd2a6212ddf65c4a6a2347d5"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0c1c9b673d21477cec17ab10bc4decb1322843ba35b481585facd88203754fc5"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-win32.whl", hash = "sha256:c41a2b9ca80ee555decc605bd3c4520cc6fef9abde8fd66b1cf65126a6922d65"}, - {file = "SQLAlchemy-2.0.32-cp38-cp38-win_amd64.whl", hash = "sha256:8a37e4d265033c897892279e8adf505c8b6b4075f2b40d77afb31f7185cd6ecd"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:52fec964fba2ef46476312a03ec8c425956b05c20220a1a03703537824b5e8e1"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:328429aecaba2aee3d71e11f2477c14eec5990fb6d0e884107935f7fb6001632"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85a01b5599e790e76ac3fe3aa2f26e1feba56270023d6afd5550ed63c68552b3"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aaf04784797dcdf4c0aa952c8d234fa01974c4729db55c45732520ce12dd95b4"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4488120becf9b71b3ac718f4138269a6be99a42fe023ec457896ba4f80749525"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:14e09e083a5796d513918a66f3d6aedbc131e39e80875afe81d98a03312889e6"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-win32.whl", hash = "sha256:0d322cc9c9b2154ba7e82f7bf25ecc7c36fbe2d82e2933b3642fc095a52cfc78"}, - {file = "SQLAlchemy-2.0.32-cp39-cp39-win_amd64.whl", hash = "sha256:7dd8583df2f98dea28b5cd53a1beac963f4f9d087888d75f22fcc93a07cf8d84"}, - {file = "SQLAlchemy-2.0.32-py3-none-any.whl", hash = "sha256:e567a8793a692451f706b363ccf3c45e056b67d90ead58c3bc9471af5d212202"}, - {file = "SQLAlchemy-2.0.32.tar.gz", hash = "sha256:c1b88cc8b02b6a5f0efb0345a03672d4c897dc7d92585176f88c67346f565ea8"}, -] - -[package.dependencies] -greenlet = {version = "!=0.4.17", markers = "python_version < \"3.13\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} -typing-extensions = ">=4.6.0" - -[package.extras] -aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] -aioodbc = ["aioodbc", "greenlet (!=0.4.17)"] -aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] -asyncio = ["greenlet (!=0.4.17)"] -asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] -mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] -mssql = ["pyodbc"] -mssql-pymssql = ["pymssql"] -mssql-pyodbc = ["pyodbc"] -mypy = ["mypy (>=0.910)"] -mysql = ["mysqlclient (>=1.4.0)"] -mysql-connector = ["mysql-connector-python"] -oracle = ["cx_oracle (>=8)"] -oracle-oracledb = ["oracledb (>=1.0.1)"] -postgresql = ["psycopg2 (>=2.7)"] -postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] -postgresql-pg8000 = ["pg8000 (>=1.29.1)"] -postgresql-psycopg = ["psycopg (>=3.0.7)"] -postgresql-psycopg2binary = ["psycopg2-binary"] -postgresql-psycopg2cffi = ["psycopg2cffi"] -postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] -pymysql = ["pymysql"] -sqlcipher = ["sqlcipher3_binary"] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, -] - -[[package]] -name = "werkzeug" -version = "3.0.4" -description = "The comprehensive WSGI web application library." -optional = false -python-versions = ">=3.8" -files = [ - {file = "werkzeug-3.0.4-py3-none-any.whl", hash = "sha256:02c9eb92b7d6c06f31a782811505d2157837cea66aaede3e217c7c27c039476c"}, - {file = "werkzeug-3.0.4.tar.gz", hash = "sha256:34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306"}, -] - -[package.dependencies] -MarkupSafe = ">=2.1.1" - -[package.extras] -watchdog = ["watchdog (>=2.3)"] - -[[package]] -name = "win32-setctime" -version = "1.1.0" -description = "A small Python utility to set file creation time on Windows" -optional = false -python-versions = ">=3.5" -files = [ - {file = "win32_setctime-1.1.0-py3-none-any.whl", hash = "sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad"}, - {file = "win32_setctime-1.1.0.tar.gz", hash = "sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2"}, -] - -[package.extras] -dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"] - -[metadata] -lock-version = "2.0" -python-versions = "^3.10" -content-hash = "dda1a445d3e4ac500b0e776fae43a153624d8d62cb91ca0f2584837b622a42a7" diff --git a/projects/web_demo/pyproject.toml b/projects/web_demo/pyproject.toml deleted file mode 100644 index 05164cd51..000000000 --- a/projects/web_demo/pyproject.toml +++ /dev/null @@ -1,24 +0,0 @@ -[tool.poetry] -name = "web-api" -version = "0.1.0" -description = "" -authors = ["houlinfeng "] -readme = "README.md" - -[tool.poetry.dependencies] -python = "^3.10" -flask = "^3.0.3" -flask-restful = "^0.3.10" -flask-cors = "^5.0.0" -flask-sqlalchemy = "^3.1.1" -flask-migrate = "^4.0.7" -flask-jwt-extended = "^4.6.0" -flask-marshmallow = "^1.2.1" -pyyaml = "^6.0.2" -loguru = "^0.7.2" -marshmallow-sqlalchemy = "^1.1.0" - - -[build-system] -requires = ["poetry-core"] -build-backend = "poetry.core.masonry.api" diff --git a/projects/web_demo/requirements.txt b/projects/web_demo/requirements.txt deleted file mode 100644 index 92242b62b..000000000 --- a/projects/web_demo/requirements.txt +++ /dev/null @@ -1,13 +0,0 @@ -flask-cors -flask-jwt-extended -flask-marshmallow -flask-migrate -flask-restful -flask-sqlalchemy -flask -greenlet -loguru -marshmallow-sqlalchemy -marshmallow -pyjwt -pyyaml diff --git a/projects/web_demo/tests/__init__.py b/projects/web_demo/tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/projects/web_demo/web_demo/__init__.py b/projects/web_demo/web_demo/__init__.py deleted file mode 100644 index 8c0262efb..000000000 --- a/projects/web_demo/web_demo/__init__.py +++ /dev/null @@ -1 +0,0 @@ -__all__ = ["common", "api"] \ No newline at end of file diff --git a/projects/web_demo/web_demo/api/__init__.py b/projects/web_demo/web_demo/api/__init__.py deleted file mode 100644 index 5efbb9042..000000000 --- a/projects/web_demo/web_demo/api/__init__.py +++ /dev/null @@ -1,38 +0,0 @@ -import os -from .extentions import app, db, migrate, jwt, ma -from common.web_hook import before_request -from common.logger import setup_log - -root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - - -def _register_db(flask_app): - from common import import_models - db.init_app(flask_app) - with app.app_context(): - db.create_all() - - -def create_app(config): - """ - Create and configure an instance of the Flask application - :param config: - :return: - """ - app.static_folder = os.path.join(root_dir, "static") - if config is None: - config = {} - app.config.update(config) - setup_log(config) - _register_db(app) - migrate.init_app(app=app, db=db) - jwt.init_app(app=app) - ma.init_app(app=app) - from .analysis import analysis_blue - app.register_blueprint(analysis_blue) - from .react_app import react_app_blue - app.register_blueprint(react_app_blue) - - app.before_request(before_request) - - return app diff --git a/projects/web_demo/web_demo/api/analysis/__init__.py b/projects/web_demo/web_demo/api/analysis/__init__.py deleted file mode 100644 index 309d8e7ab..000000000 --- a/projects/web_demo/web_demo/api/analysis/__init__.py +++ /dev/null @@ -1,20 +0,0 @@ -from flask import Blueprint -from ..extentions import Api -from .upload_view import UploadPdfView -from .analysis_view import AnalysisTaskView, AnalysisTaskProgressView -from .img_md_view import ImgView, MdView -from .task_view import TaskView, HistoricalTasksView, DeleteTaskView -from .markdown_view import MarkdownView - -analysis_blue = Blueprint('analysis', __name__) - -api_v2 = Api(analysis_blue, prefix='/api/v2') -api_v2.add_resource(UploadPdfView, '/analysis/upload_pdf') -api_v2.add_resource(AnalysisTaskView, '/extract/task/submit') -api_v2.add_resource(AnalysisTaskProgressView, '/extract/task/progress') -api_v2.add_resource(ImgView, '/analysis/pdf_img') -api_v2.add_resource(MdView, '/analysis/pdf_md') -api_v2.add_resource(TaskView, '/extract/taskQueue') -api_v2.add_resource(HistoricalTasksView, '/extract/list') -api_v2.add_resource(DeleteTaskView, '/extract/task/') -api_v2.add_resource(MarkdownView, '/extract/markdown') \ No newline at end of file diff --git a/projects/web_demo/web_demo/api/analysis/analysis_view.py b/projects/web_demo/web_demo/api/analysis/analysis_view.py deleted file mode 100644 index b88a1b48f..000000000 --- a/projects/web_demo/web_demo/api/analysis/analysis_view.py +++ /dev/null @@ -1,242 +0,0 @@ -import json -import threading -from multiprocessing import Process -from pathlib import Path -from flask import request, current_app, url_for -from flask_restful import Resource -from .ext import find_file, task_state_map -# from .formula_ext import formula_detection, formula_recognition -from .serialization import AnalysisViewSchema -from marshmallow import ValidationError -from ..extentions import db -from .models import AnalysisTask, AnalysisPdf -from .pdf_ext import analysis_pdf_task -from common.custom_response import generate_response - - -class AnalysisTaskProgressView(Resource): - - def get(self): - """ - 获取任务进度 - :return: - """ - params = request.args - id = params.get('id') - analysis_task = AnalysisTask.query.filter(AnalysisTask.id == id).first() - if not analysis_task: - return generate_response(code=400, msg="Invalid ID", msgZH="无效id") - match analysis_task.task_type: - case 'pdf': - analysis_pdf = AnalysisPdf.query.filter(AnalysisPdf.id == analysis_task.analysis_pdf_id).first() - file_url = url_for('analysis.uploadpdfview', filename=analysis_task.file_name, as_attachment=False) - file_name_split = analysis_task.file_name.split("_") - file_name = file_name_split[-1] if file_name_split else analysis_task.file_name - if analysis_task.status == 0: - data = { - "state": task_state_map.get(analysis_task.status), - "status": analysis_pdf.status, - "url": file_url, - "fileName": file_name, - "file_key": analysis_task.file_key, - "content": [], - "markdownUrl": [], - "fullMdLink": "", - "type": analysis_task.task_type, - } - return generate_response(data=data) - elif analysis_task.status == 1: - if analysis_pdf.status == 1: # 任务正常完成 - bbox_info = json.loads(analysis_pdf.bbox_info) - md_link_list = json.loads(analysis_pdf.md_link_list) - full_md_link = analysis_pdf.full_md_link - data = { - "state": task_state_map.get(analysis_task.status), - "status": analysis_pdf.status, - "url": file_url, - "fileName": file_name, - "file_key": analysis_task.file_key, - "content": bbox_info, - "markdownUrl": md_link_list, - "fullMdLink": full_md_link, - "type": analysis_task.task_type, - } - return generate_response(data=data) - else: # 任务异常结束 - data = { - "state": "failed", - "status": analysis_pdf.status, - "url": file_url, - "fileName": file_name, - "file_key": analysis_task.file_key, - "content": [], - "markdownUrl": [], - "fullMdLink": "", - "type": analysis_task.task_type, - } - return generate_response(code=-60004, data=data, msg="Failed to retrieve PDF parsing progress", - msgZh="无法获取PDF解析进度") - else: - data = { - "state": task_state_map.get(analysis_task.status), - "status": analysis_pdf.status, - "url": file_url, - "fileName": file_name, - "file_key": analysis_task.file_key, - "content": [], - "markdownUrl": [], - "fullMdLink": "", - "type": analysis_task.task_type, - } - return generate_response(data=data) - case 'formula-detect': - return generate_response(code=400, msg="Not yet supported", msgZH="功能待开发") - case 'formula-extract': - return generate_response(code=400, msg="Not yet supported", msgZH="功能待开发") - case 'table-recogn': - return generate_response(code=400, msg="Not yet supported", msgZH="功能待开发") - case _: - return generate_response(code=400, msg="Not yet supported", msgZH="参数不支持") - - -class AnalysisTaskView(Resource): - - def post(self): - """ - 提交任务 - :return: - """ - analysis_view_schema = AnalysisViewSchema() - try: - params = analysis_view_schema.load(request.get_json()) - except ValidationError as err: - return generate_response(code=400, msg=err.messages) - file_key = params.get("fileKey") - file_name = params.get("fileName") - task_type = params.get("taskType") - is_ocr = params.get("isOcr", False) - - pdf_upload_folder = current_app.config['PDF_UPLOAD_FOLDER'] - upload_dir = f"{current_app.static_folder}/{pdf_upload_folder}" - file_path = find_file(file_key, upload_dir) - match task_type: - case 'pdf': - if not file_path: - return generate_response(code=400, msg="FileKey is invalid, no PDF file found", - msgZH="fileKey无效,未找到pdf文件") - analysis_task = AnalysisTask.query.filter(AnalysisTask.status.in_([0, 2])).first() - file_name = Path(file_path).name - with db.auto_commit(): - analysis_pdf_object = AnalysisPdf( - file_name=file_name, - file_path=file_path, - status=3 if analysis_task else 0, - ) - db.session.add(analysis_pdf_object) - db.session.flush() - analysis_pdf_id = analysis_pdf_object.id - with db.auto_commit(): - analysis_task_object = AnalysisTask( - file_key=file_key, - file_name=file_name, - task_type=task_type, - is_ocr=is_ocr, - status=2 if analysis_task else 0, - analysis_pdf_id=analysis_pdf_id - ) - db.session.add(analysis_task_object) - db.session.flush() - analysis_task_id = analysis_task_object.id - if not analysis_task: # 已有同类型任务在执行,请等待执行完成 - file_stem = Path(file_path).stem - pdf_analysis_folder = current_app.config['PDF_ANALYSIS_FOLDER'] - pdf_dir = f"{current_app.static_folder}/{pdf_analysis_folder}/{file_stem}" - image_dir = f"{pdf_dir}/images" - t = threading.Thread(target=analysis_pdf_task, - args=(pdf_dir, image_dir, file_path, is_ocr, analysis_pdf_id)) - t.start() - # 生成文件的URL路径 - file_url = url_for('analysis.uploadpdfview', filename=file_name, as_attachment=False) - data = { - "url": file_url, - "fileName": file_name, - "id": analysis_task_id - } - return generate_response(data=data) - case 'formula-detect': - # if not file_path: - # return generate_response(code=400, msg="FileKey is invalid, no image file found", - # msgZH="fileKey无效,未找到图片") - # return formula_detection(file_path, upload_dir) - return generate_response(code=400, msg="Not yet supported", msgZH="功能待开发") - case 'formula-extract': - # if not file_path: - # return generate_response(code=400, msg="FileKey is invalid, no image file found", - # msgZH="fileKey无效,未找到图片") - # return formula_recognition(file_path, upload_dir) - return generate_response(code=400, msg="Not yet supported", msgZH="功能待开发") - case 'table-recogn': - return generate_response(code=400, msg="Not yet supported", msgZH="功能待开发") - case _: - return generate_response(code=400, msg="Not yet supported", msgZH="参数不支持") - - def put(self): - """ - 重新发起任务 - :return: - """ - params = json.loads(request.data) - id = params.get('id') - analysis_task = AnalysisTask.query.filter(AnalysisTask.id == id).first() - if not analysis_task: - return generate_response(code=400, msg="Invalid ID", msgZH="无效id") - match analysis_task.task_type: - case 'pdf': - task_r_p = AnalysisTask.query.filter(AnalysisTask.status.in_([0, 2])).first() - if task_r_p: - with db.auto_commit(): - analysis_pdf_object = AnalysisPdf.query.filter_by(id=analysis_task.analysis_pdf_id).first() - analysis_pdf_object.status = 3 - db.session.add(analysis_pdf_object) - with db.auto_commit(): - analysis_task.status = 2 - db.session.add(analysis_task) - else: - with db.auto_commit(): - analysis_pdf_object = AnalysisPdf.query.filter_by(id=analysis_task.analysis_pdf_id).first() - analysis_pdf_object.status = 0 - db.session.add(analysis_pdf_object) - with db.auto_commit(): - analysis_task.status = 0 - db.session.add(analysis_task) - - pdf_upload_folder = current_app.config['PDF_UPLOAD_FOLDER'] - upload_dir = f"{current_app.static_folder}/{pdf_upload_folder}" - file_path = find_file(analysis_task.file_key, upload_dir) - file_stem = Path(file_path).stem - pdf_analysis_folder = current_app.config['PDF_ANALYSIS_FOLDER'] - pdf_dir = f"{current_app.static_folder}/{pdf_analysis_folder}/{file_stem}" - image_dir = f"{pdf_dir}/images" - process = Process(target=analysis_pdf_task, - args=(pdf_dir, image_dir, file_path, analysis_task.is_ocr, - analysis_task.analysis_pdf_id)) - process.start() - - # 生成文件的URL路径 - file_url = url_for('analysis.uploadpdfview', filename=analysis_task.file_name, as_attachment=False) - file_name_split = analysis_task.file_name.split("_") - new_file_name = file_name_split[-1] if file_name_split else analysis_task.file_name - data = { - "url": file_url, - "fileName": new_file_name, - "id": analysis_task.id - } - return generate_response(data=data) - case 'formula-detect': - return generate_response(code=400, msg="Not yet supported", msgZH="功能待开发") - case 'formula-extract': - return generate_response(code=400, msg="Not yet supported", msgZH="功能待开发") - case 'table-recogn': - return generate_response(code=400, msg="Not yet supported", msgZH="功能待开发") - case _: - return generate_response(code=400, msg="Not yet supported", msgZH="参数不支持") diff --git a/projects/web_demo/web_demo/api/analysis/ext.py b/projects/web_demo/web_demo/api/analysis/ext.py deleted file mode 100644 index 6767fd0b6..000000000 --- a/projects/web_demo/web_demo/api/analysis/ext.py +++ /dev/null @@ -1,25 +0,0 @@ -import os - -task_state_map = { - 0: "running", - 1: "done", - 2: "pending" -} - - -def find_file(file_key, file_dir): - """ - 查询文件 - :param file_key: 文件哈希 - :param file_dir: 文件目录 - :return: - """ - pdf_path = "" - for root, subDirs, files in os.walk(file_dir): - for fileName in files: - if fileName.startswith(file_key): - pdf_path = os.path.join(root, fileName) - break - if pdf_path: - break - return pdf_path diff --git a/projects/web_demo/web_demo/api/analysis/formula_ext.py b/projects/web_demo/web_demo/api/analysis/formula_ext.py deleted file mode 100644 index aebcca14a..000000000 --- a/projects/web_demo/web_demo/api/analysis/formula_ext.py +++ /dev/null @@ -1,280 +0,0 @@ -import os -import pkgutil -import numpy as np -import yaml -import argparse -import cv2 -from pathlib import Path -from ultralytics import YOLO -from unimernet.common.config import Config -import unimernet.tasks as tasks -from unimernet.processors import load_processor -from magic_pdf.libs.config_reader import get_local_models_dir, get_device -from torchvision import transforms -from magic_pdf.pre_proc.ocr_span_list_modify import remove_overlaps_low_confidence_spans, remove_overlaps_min_spans -from PIL import Image -from common.ext import singleton_func -from common.custom_response import generate_response - - -def mfd_model_init(weight): - mfd_model = YOLO(weight) - return mfd_model - - -def mfr_model_init(weight_dir, cfg_path, _device_='cpu'): - args = argparse.Namespace(cfg_path=cfg_path, options=None) - cfg = Config(args) - cfg.config.model.pretrained = os.path.join(weight_dir, "pytorch_model.bin") - cfg.config.model.model_config.model_name = weight_dir - cfg.config.model.tokenizer_config.path = weight_dir - task = tasks.setup_task(cfg) - model = task.build_model(cfg) - model = model.to(_device_) - vis_processor = load_processor('formula_image_eval', cfg.config.datasets.formula_rec_eval.vis_processor.eval) - return model, vis_processor - - -@singleton_func -class CustomPEKModel: - def __init__(self): - # PDF-Extract-Kit/models - models_dir = get_local_models_dir() - self.device = get_device() - loader = pkgutil.get_loader("magic_pdf") - root_dir = Path(loader.path).parent - # model_config目录 - model_config_dir = os.path.join(root_dir, 'resources', 'model_config') - # 构建 model_configs.yaml 文件的完整路径 - config_path = os.path.join(model_config_dir, 'model_configs.yaml') - with open(config_path, "r", encoding='utf-8') as f: - configs = yaml.load(f, Loader=yaml.FullLoader) - - # 初始化公式检测模型 - self.mfd_model = mfd_model_init(str(os.path.join(models_dir, configs["weights"]["mfd"]))) - - # 初始化公式解析模型 - mfr_weight_dir = str(os.path.join(models_dir, configs["weights"]["mfr"])) - mfr_cfg_path = str(os.path.join(model_config_dir, "UniMERNet", "demo.yaml")) - self.mfr_model, mfr_vis_processors = mfr_model_init(mfr_weight_dir, mfr_cfg_path, _device_=self.device) - self.mfr_transform = transforms.Compose([mfr_vis_processors, ]) - - -def get_all_spans(layout_dets) -> list: - def remove_duplicate_spans(spans): - new_spans = [] - for span in spans: - if not any(span == existing_span for existing_span in new_spans): - new_spans.append(span) - return new_spans - - all_spans = [] - # allow_category_id_list = [3, 5, 13, 14, 15] - """当成span拼接的""" - # 3: 'image', # 图片 - # 5: 'table', # 表格 - # 13: 'inline_equation', # 行内公式 - # 14: 'interline_equation', # 行间公式 - # 15: 'text', # ocr识别文本 - for layout_det in layout_dets: - if layout_det.get("bbox") is not None: - # 兼容直接输出bbox的模型数据,如paddle - x0, y0, x1, y1 = layout_det["bbox"] - else: - # 兼容直接输出poly的模型数据,如xxx - x0, y0, _, _, x1, y1, _, _ = layout_det["poly"] - bbox = [x0, y0, x1, y1] - layout_det["bbox"] = bbox - all_spans.append(layout_det) - return remove_duplicate_spans(all_spans) - - -def formula_predict(mfd_model, image): - """ - 公式检测 - :param mfd_model: - :param image: - :return: - """ - latex_filling_list = [] - # 公式检测 - mfd_res = mfd_model.predict(image, imgsz=1888, conf=0.25, iou=0.45, verbose=True)[0] - for xyxy, conf, cla in zip(mfd_res.boxes.xyxy.cpu(), mfd_res.boxes.conf.cpu(), mfd_res.boxes.cls.cpu()): - xmin, ymin, xmax, ymax = [int(p.item()) for p in xyxy] - new_item = { - 'category_id': 13 + int(cla.item()), - 'poly': [xmin, ymin, xmax, ymin, xmax, ymax, xmin, ymax], - 'score': round(float(conf.item()), 2), - 'latex': '', - } - latex_filling_list.append(new_item) - return latex_filling_list - - -def formula_detection(file_path, upload_dir): - """ - 公式检测 - :param file_path: 文件路径 - :param upload_dir: 上传文件夹 - :return: - """ - try: - image_open = Image.open(file_path) - except IOError: - return generate_response(code=400, msg="params is not valid", msgZh="参数类型不是图片,无效参数") - - filename = Path(file_path).name - - # 获取图片宽高 - width, height = image_open.size - # 转换为RGB,忽略透明度通道 - rgb_image = image_open.convert('RGB') - # 保存转换后的图片 - rgb_image.save(file_path) - - # 初始化模型 - cpm = CustomPEKModel() - # 初始化公式检测模型 - mfd_model = cpm.mfd_model - - image_conv = Image.open(file_path) - image_array = np.array(image_conv) - pdf_width = 1416 - pdf_height = 1888 - - # 重置图片大小 - scale = min(pdf_width // 2 / width, pdf_height // 2 / height) # 缩放比例 - nw = int(width * scale) - nh = int(height * scale) - image_resize = cv2.resize(image_array, (nw, nh), interpolation=cv2.INTER_LINEAR) - resize_image_path = f"{upload_dir}/resize_{filename}" - cv2.imwrite(resize_image_path, image_resize) - # 将重置的图片贴到pdf白纸中 - x = (pdf_width - nw) // 2 - y = (pdf_height - nh) // 2 - new_img = Image.new('RGB', (pdf_width, pdf_height), 'white') - image_scale = Image.open(resize_image_path) - new_img.paste(image_scale, (x, y)) - - # 公式检测 - latex_filling_list = formula_predict(mfd_model, new_img) - - os.remove(resize_image_path) - - # 将缩放图公式检测的坐标还原为原图公式检测的坐标 - for item in latex_filling_list: - item_poly = item["poly"] - item["poly"] = [ - (item_poly[0] - x) / scale, - (item_poly[1] - y) / scale, - (item_poly[2] - x) / scale, - (item_poly[3] - y) / scale, - (item_poly[4] - x) / scale, - (item_poly[5] - y) / scale, - (item_poly[6] - x) / scale, - (item_poly[7] - y) / scale, - ] - - if not latex_filling_list: - return generate_response(code=1001, msg="detection fail", msgZh="公式检测失败,图片过小,无法检测") - - spans = get_all_spans(latex_filling_list) - '''删除重叠spans中置信度较低的那些''' - spans, dropped_spans_by_confidence = remove_overlaps_low_confidence_spans(spans) - '''删除重叠spans中较小的那些''' - spans, dropped_spans_by_span_overlap = remove_overlaps_min_spans(spans) - - return generate_response(data={ - 'layout': spans, - }) - - -def formula_recognition(file_path, upload_dir): - """ - 公式识别 - :param file_path: 文件路径 - :param upload_dir: 上传文件夹 - :return: - """ - try: - image_open = Image.open(file_path) - except IOError: - return generate_response(code=400, msg="params is not valid", msgZh="参数类型不是图片,无效参数") - - filename = Path(file_path).name - - # 获取图片宽高 - width, height = image_open.size - # 转换为RGB,忽略透明度通道 - rgb_image = image_open.convert('RGB') - # 保存转换后的图片 - rgb_image.save(file_path) - - image_conv = Image.open(file_path) - image_array = np.array(image_conv) - pdf_width = 1416 - pdf_height = 1888 - - # 重置图片大小 - scale = min(pdf_width // 2 / width, pdf_height // 2 / height) # 缩放比例 - nw = int(width * scale) - nh = int(height * scale) - image_resize = cv2.resize(image_array, (nw, nh), interpolation=cv2.INTER_LINEAR) - resize_image_path = f"{upload_dir}/resize_{filename}" - cv2.imwrite(resize_image_path, image_resize) - # 将重置的图片贴到pdf白纸中 - x = (pdf_width - nw) // 2 - y = (pdf_height - nh) // 2 - new_img = Image.new('RGB', (pdf_width, pdf_height), 'white') - image_scale = Image.open(resize_image_path) - new_img.paste(image_scale, (x, y)) - new_img_array = np.array(new_img) - - # 初始化模型 - cpm = CustomPEKModel() - # device - device = cpm.device - # 初始化公式检测模型 - mfd_model = cpm.mfd_model - # 初始化公式解析模型 - mfr_model = cpm.mfr_model - mfr_transform = cpm.mfr_transform - # 公式识别 - latex_filling_list, mfr_res = formula_recognition(mfd_model, new_img_array, mfr_transform, device, mfr_model, - image_open) - - os.remove(resize_image_path) - - # 将缩放图公式检测的坐标还原为原图公式检测的坐标 - for item in latex_filling_list: - item_poly = item["poly"] - item["poly"] = [ - (item_poly[0] - x) / scale, - (item_poly[1] - y) / scale, - (item_poly[2] - x) / scale, - (item_poly[3] - y) / scale, - (item_poly[4] - x) / scale, - (item_poly[5] - y) / scale, - (item_poly[6] - x) / scale, - (item_poly[7] - y) / scale, - ] - - spans = get_all_spans(latex_filling_list) - '''删除重叠spans中置信度较低的那些''' - spans, dropped_spans_by_confidence = remove_overlaps_low_confidence_spans(spans) - '''删除重叠spans中较小的那些''' - spans, dropped_spans_by_span_overlap = remove_overlaps_min_spans(spans) - - if not latex_filling_list: - width, height = image_open.size - latex_filling_list.append({ - 'category_id': 14, - 'poly': [0, 0, width, 0, width, height, 0, height], - 'score': 1, - 'latex': mfr_res[0] if mfr_res else "", - }) - - return generate_response(data={ - 'layout': spans if spans else latex_filling_list, - "mfr_res": mfr_res - }) diff --git a/projects/web_demo/web_demo/api/analysis/img_md_view.py b/projects/web_demo/web_demo/api/analysis/img_md_view.py deleted file mode 100644 index 66df7bc73..000000000 --- a/projects/web_demo/web_demo/api/analysis/img_md_view.py +++ /dev/null @@ -1,46 +0,0 @@ -from pathlib import Path -from flask import request, current_app, send_from_directory -from flask_restful import Resource - - -class ImgView(Resource): - def get(self): - """ - 获取pdf解析的图片 - :return: - """ - params = request.args - pdf = params.get('pdf') - filename = params.get('filename') - as_attachment = params.get('as_attachment') - if str(as_attachment).lower() == "true": - as_attachment = True - else: - as_attachment = False - file_stem = Path(pdf).stem - pdf_analysis_folder = current_app.config['PDF_ANALYSIS_FOLDER'] - pdf_dir = f"{current_app.static_folder}/{pdf_analysis_folder}/{file_stem}" - image_dir = f"{pdf_dir}/images" - response = send_from_directory(image_dir, filename, as_attachment=as_attachment) - return response - - -class MdView(Resource): - def get(self): - """ - 获取pdf解析的markdown - :return: - """ - params = request.args - pdf = params.get('pdf') - filename = params.get('filename') - as_attachment = params.get('as_attachment') - if str(as_attachment).lower() == "true": - as_attachment = True - else: - as_attachment = False - file_stem = Path(pdf).stem - pdf_analysis_folder = current_app.config['PDF_ANALYSIS_FOLDER'] - pdf_dir = f"{current_app.static_folder}/{pdf_analysis_folder}/{file_stem}" - response = send_from_directory(pdf_dir, filename, as_attachment=as_attachment) - return response diff --git a/projects/web_demo/web_demo/api/analysis/markdown_view.py b/projects/web_demo/web_demo/api/analysis/markdown_view.py deleted file mode 100644 index d82d95b2c..000000000 --- a/projects/web_demo/web_demo/api/analysis/markdown_view.py +++ /dev/null @@ -1,44 +0,0 @@ -import json -from pathlib import Path -from flask import request, current_app -from flask_restful import Resource -from common.custom_response import generate_response - - -class MarkdownView(Resource): - - def put(self): - """ - 编辑markdown - """ - params = json.loads(request.data) - file_key = params.get('file_key') - data = params.get('data', {}) - if not data: - return generate_response(code=400, msg="empty data", msgZH="数据为空,无法更新markdown") - - pdf_analysis_folder = current_app.config['PDF_ANALYSIS_FOLDER'] - pdf_dir = f"{current_app.static_folder}/{pdf_analysis_folder}" - markdown_file_dir = "" - for path_obj in Path(pdf_dir).iterdir(): - if path_obj.name.startswith(file_key): - markdown_file_dir = path_obj - break - - if markdown_file_dir and Path(markdown_file_dir).exists(): - for k, v in data.items(): - md_path = f"{markdown_file_dir}/{k}.md" - if Path(md_path).exists(): - with open(md_path, 'w', encoding="utf-8") as f: - f.write(v) - - full_content = "" - for path_obj in Path(markdown_file_dir).iterdir(): - if path_obj.is_file() and path_obj.suffix == ".md" and path_obj.stem != "full": - with open(path_obj, 'r', encoding="utf-8") as f: - full_content += f.read() + "\n" - with open(f"{markdown_file_dir}/full.md", 'w', encoding="utf-8") as f: - f.write(full_content) - else: - return generate_response(code=400, msg="Invalid file_key", msgZH="文件哈希错误") - return generate_response() diff --git a/projects/web_demo/web_demo/api/analysis/models.py b/projects/web_demo/web_demo/api/analysis/models.py deleted file mode 100644 index 8221f54a9..000000000 --- a/projects/web_demo/web_demo/api/analysis/models.py +++ /dev/null @@ -1,29 +0,0 @@ -from datetime import datetime -from ..extentions import db - - -class AnalysisTask(db.Model): - __tablename__ = 'analysis_task' - id = db.Column(db.Integer, primary_key=True, autoincrement=True) - file_key = db.Column(db.Text, comment="文件唯一哈希") - file_name = db.Column(db.Text, comment="文件名称") - task_type = db.Column(db.String(128), comment="任务类型") - is_ocr = db.Column(db.Boolean, default=False, comment="是否ocr") - status = db.Column(db.Integer, default=0, comment="状态") # 0 running 1 done 2 pending - analysis_pdf_id = db.Column(db.Integer, comment="analysis_pdf的id") - create_date = db.Column(db.DateTime(), nullable=False, default=datetime.now) - update_date = db.Column(db.DateTime(), nullable=False, default=datetime.now, onupdate=datetime.now) - - -class AnalysisPdf(db.Model): - __tablename__ = 'analysis_pdf' - id = db.Column(db.Integer, primary_key=True, autoincrement=True) - file_name = db.Column(db.Text, comment="文件名称") - file_url = db.Column(db.Text, comment="文件原路径") - file_path = db.Column(db.Text, comment="文件路径") - status = db.Column(db.Integer, default=3, comment="状态") # 0 转换中 1 已完成 2 转换失败 3 init - bbox_info = db.Column(db.Text, comment="坐标数据") - md_link_list = db.Column(db.Text, comment="markdown分页链接") - full_md_link = db.Column(db.Text, comment="markdown全文链接") - create_date = db.Column(db.DateTime(), nullable=False, default=datetime.now) - update_date = db.Column(db.DateTime(), nullable=False, default=datetime.now, onupdate=datetime.now) \ No newline at end of file diff --git a/projects/web_demo/web_demo/api/analysis/pdf_ext.py b/projects/web_demo/web_demo/api/analysis/pdf_ext.py deleted file mode 100644 index b3a4a98dc..000000000 --- a/projects/web_demo/web_demo/api/analysis/pdf_ext.py +++ /dev/null @@ -1,163 +0,0 @@ -import json -import re -import traceback -from pathlib import Path -from flask import current_app, url_for -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter -from magic_pdf.pipe.UNIPipe import UNIPipe -import magic_pdf.model as model_config -from magic_pdf.libs.json_compressor import JsonCompressor -from magic_pdf.dict2md.ocr_mkcontent import ocr_mk_mm_markdown_with_para_and_pagination -from .ext import find_file -from ..extentions import app, db -from .models import AnalysisPdf, AnalysisTask -from common.error_types import ApiException -from loguru import logger - -model_config.__use_inside_model__ = True - - -def analysis_pdf(image_dir, pdf_bytes, is_ocr=False): - try: - model_json = [] # model_json传空list使用内置模型解析 - logger.info(f"is_ocr: {is_ocr}") - if not is_ocr: - jso_useful_key = {"_pdf_type": "", "model_list": model_json} - image_writer = DiskReaderWriter(image_dir) - pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer, is_debug=True) - pipe.pipe_classify() - else: - jso_useful_key = {"_pdf_type": "ocr", "model_list": model_json} - image_writer = DiskReaderWriter(image_dir) - pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer, is_debug=True) - """如果没有传入有效的模型数据,则使用内置model解析""" - if len(model_json) == 0: - if model_config.__use_inside_model__: - pipe.pipe_analyze() - else: - logger.error("need model list input") - exit(1) - pipe.pipe_parse() - pdf_mid_data = JsonCompressor.decompress_json(pipe.get_compress_pdf_mid_data()) - pdf_info_list = pdf_mid_data["pdf_info"] - md_content = json.dumps(ocr_mk_mm_markdown_with_para_and_pagination(pdf_info_list, image_dir), - ensure_ascii=False) - bbox_info = get_bbox_info(pdf_info_list) - return md_content, bbox_info - except Exception as e: - logger.error(traceback.format_exc()) - - -def get_bbox_info(data): - bbox_info = [] - for page in data: - preproc_blocks = page.get("preproc_blocks", []) - discarded_blocks = page.get("discarded_blocks", []) - bbox_info.append({ - "preproc_blocks": preproc_blocks, - "page_idx": page.get("page_idx"), - "page_size": page.get("page_size"), - "discarded_blocks": discarded_blocks, - }) - return bbox_info - - -def analysis_pdf_task(pdf_dir, image_dir, pdf_path, is_ocr, analysis_pdf_id): - """ - 解析pdf - :param pdf_dir: pdf解析目录 - :param image_dir: 图片目录 - :param pdf_path: pdf路径 - :param is_ocr: 是否启用ocr - :param analysis_pdf_id: pdf解析表id - :return: - """ - try: - logger.info(f"start task: {pdf_path}") - logger.info(f"image_dir: {image_dir}") - if not Path(image_dir).exists(): - Path(image_dir).mkdir(parents=True, exist_ok=True) - with open(pdf_path, 'rb') as file: - pdf_bytes = file.read() - md_content, bbox_info = analysis_pdf(image_dir, pdf_bytes, is_ocr) - img_list = Path(image_dir).glob('*') if Path(image_dir).exists() else [] - - pdf_name = Path(pdf_path).name - with app.app_context(): - for img in img_list: - img_name = Path(img).name - regex = re.compile(fr'.*\((.*?{img_name})') - regex_result = regex.search(md_content) - if regex_result: - img_url = url_for('analysis.imgview', filename=img_name, as_attachment=False) - md_content = md_content.replace(regex_result.group(1), f"{img_url}&pdf={pdf_name}") - - full_md_content = "" - for item in json.loads(md_content): - full_md_content += item["md_content"] + "\n" - - full_md_name = "full.md" - with open(f"{pdf_dir}/{full_md_name}", "w", encoding="utf-8") as file: - file.write(full_md_content) - with app.app_context(): - full_md_link = url_for('analysis.mdview', filename=full_md_name, as_attachment=False) - full_md_link = f"{full_md_link}&pdf={pdf_name}" - - md_link_list = [] - with app.app_context(): - for n, md in enumerate(json.loads(md_content)): - md_content = md["md_content"] - md_name = f"{md.get('page_no', n)}.md" - with open(f"{pdf_dir}/{md_name}", "w", encoding="utf-8") as file: - file.write(md_content) - md_url = url_for('analysis.mdview', filename=md_name, as_attachment=False) - md_link_list.append(f"{md_url}&pdf={pdf_name}") - - with app.app_context(): - with db.auto_commit(): - analysis_pdf_object = AnalysisPdf.query.filter_by(id=analysis_pdf_id).first() - analysis_pdf_object.status = 1 - analysis_pdf_object.bbox_info = json.dumps(bbox_info, ensure_ascii=False) - analysis_pdf_object.md_link_list = json.dumps(md_link_list, ensure_ascii=False) - analysis_pdf_object.full_md_link = full_md_link - db.session.add(analysis_pdf_object) - with db.auto_commit(): - analysis_task_object = AnalysisTask.query.filter_by(analysis_pdf_id=analysis_pdf_id).first() - analysis_task_object.status = 1 - db.session.add(analysis_task_object) - logger.info(f"finished!") - except Exception as e: - logger.error(traceback.format_exc()) - with app.app_context(): - with db.auto_commit(): - analysis_pdf_object = AnalysisPdf.query.filter_by(id=analysis_pdf_id).first() - analysis_pdf_object.status = 2 - db.session.add(analysis_pdf_object) - with db.auto_commit(): - analysis_task_object = AnalysisTask.query.filter_by(analysis_pdf_id=analysis_pdf_id).first() - analysis_task_object.status = 1 - db.session.add(analysis_task_object) - raise ApiException(code=500, msg="PDF parsing failed", msgZH="pdf解析失败") - finally: - # 执行pending - with app.app_context(): - analysis_task_object = AnalysisTask.query.filter_by(status=2).order_by( - AnalysisTask.update_date.asc()).first() - if analysis_task_object: - pdf_upload_folder = current_app.config['PDF_UPLOAD_FOLDER'] - upload_dir = f"{current_app.static_folder}/{pdf_upload_folder}" - file_path = find_file(analysis_task_object.file_key, upload_dir) - file_stem = Path(file_path).stem - pdf_analysis_folder = current_app.config['PDF_ANALYSIS_FOLDER'] - pdf_dir = f"{current_app.static_folder}/{pdf_analysis_folder}/{file_stem}" - image_dir = f"{pdf_dir}/images" - with db.auto_commit(): - analysis_pdf_object = AnalysisPdf.query.filter_by(id=analysis_task_object.analysis_pdf_id).first() - analysis_pdf_object.status = 0 - db.session.add(analysis_pdf_object) - with db.auto_commit(): - analysis_task_object.status = 0 - db.session.add(analysis_task_object) - analysis_pdf_task(pdf_dir, image_dir, file_path, analysis_task_object.is_ocr, analysis_task_object.analysis_pdf_id) - else: - logger.info(f"all task finished!") diff --git a/projects/web_demo/web_demo/api/analysis/serialization.py b/projects/web_demo/web_demo/api/analysis/serialization.py deleted file mode 100644 index 727c6aeda..000000000 --- a/projects/web_demo/web_demo/api/analysis/serialization.py +++ /dev/null @@ -1,28 +0,0 @@ -from marshmallow import Schema, fields, validates_schema, validates -from common.error_types import ApiException -from .models import AnalysisTask - - -class BooleanField(fields.Boolean): - def _deserialize(self, value, attr, data, **kwargs): - # 进行自定义验证 - if not isinstance(value, bool): - raise ApiException(code=400, msg="isOcr not a valid boolean", msgZH="isOcr不是有效的布尔值") - - return value - - -class AnalysisViewSchema(Schema): - fileKey = fields.Str(required=True) - fileName = fields.Str() - taskType = fields.Str(required=True) - isOcr = BooleanField() - - @validates_schema(pass_many=True) - def validate_passwords(self, data, **kwargs): - task_type = data['taskType'] - file_key = data['fileKey'] - if not file_key: - raise ApiException(code=400, msg="fileKey cannot be empty", msgZH="fileKey不能为空") - if not task_type: - raise ApiException(code=400, msg="taskType cannot be empty", msgZH="taskType不能为空") diff --git a/projects/web_demo/web_demo/api/analysis/task_view.py b/projects/web_demo/web_demo/api/analysis/task_view.py deleted file mode 100644 index ea09f07bd..000000000 --- a/projects/web_demo/web_demo/api/analysis/task_view.py +++ /dev/null @@ -1,102 +0,0 @@ -import json -from flask import url_for, request -from flask_restful import Resource -from sqlalchemy import func -from ..extentions import db -from .models import AnalysisTask, AnalysisPdf -from .ext import task_state_map -from common.custom_response import generate_response - - -class TaskView(Resource): - def get(self): - """ - 查询正在进行的任务 - :return: - """ - analysis_task_running = AnalysisTask.query.filter(AnalysisTask.status == 0).first() - analysis_task_pending = AnalysisTask.query.filter(AnalysisTask.status == 2).order_by( - AnalysisTask.create_date.asc()).all() - pending_total = db.session.query(func.count(AnalysisTask.id)).filter(AnalysisTask.status == 2).scalar() - if analysis_task_running: - task_nums = pending_total + 1 - file_name_split = analysis_task_running.file_name.split("_") - new_file_name = file_name_split[-1] if file_name_split else analysis_task_running.file_name - data = [ - { - "queues": task_nums, # 正在排队的任务总数 - "rank": 1, - "id": analysis_task_running.id, - "url": url_for('analysis.uploadpdfview', filename=analysis_task_running.file_name, as_attachment=False), - "fileName": new_file_name, - "type": analysis_task_running.task_type, - "state": task_state_map.get(analysis_task_running.status), - } - ] - else: - task_nums = pending_total - data = [] - for n, task in enumerate(analysis_task_pending): - file_name_split = task.file_name.split("_") - new_file_name = file_name_split[-1] if file_name_split else task.file_name - data.append({ - "queues": task_nums, # 正在排队的任务总数 - "rank": n + 2, - "id": task.id, - "url": url_for('analysis.uploadpdfview', filename=task.file_name, as_attachment=False), - "fileName": new_file_name, - "type": task.task_type, - "state": task_state_map.get(task.status), - }) - data.reverse() - return generate_response(data=data, total=task_nums) - - -class HistoricalTasksView(Resource): - def get(self): - """ - 获取任务历史记录 - :return: - """ - params = request.args - page_no = params.get('pageNo', 1) - page_size = params.get('pageSize', 10) - total = db.session.query(func.count(AnalysisTask.id)).scalar() - analysis_task = AnalysisTask.query.order_by(AnalysisTask.create_date.desc()).paginate(page=int(page_no), - per_page=int(page_size), - error_out=False) - data = [] - for n, task in enumerate(analysis_task): - file_name_split = task.file_name.split("_") - new_file_name = file_name_split[-1] if file_name_split else task.file_name - data.append({ - "fileName": new_file_name, - "id": task.id, - "type": task.task_type, - "state": task_state_map.get(task.status), - }) - data = { - "list": data, - "total": total, - "pageNo": page_no, - "pageSize": page_size, - } - return generate_response(data=data) - - -class DeleteTaskView(Resource): - def delete(self, id): - """ - 删除任务历史记录 - :return: - """ - analysis_task = AnalysisTask.query.filter(AnalysisTask.id == id, AnalysisTask.status != 0).first() - if analysis_task: - analysis_pdf = AnalysisPdf.query.filter(AnalysisPdf.id == AnalysisTask.analysis_pdf_id).first() - with db.auto_commit(): - db.session.delete(analysis_pdf) - db.session.delete(analysis_task) - else: - return generate_response(code=400, msg="The ID is incorrect", msgZH="id不正确") - - return generate_response(data={"id": id}) diff --git a/projects/web_demo/web_demo/api/analysis/upload_view.py b/projects/web_demo/web_demo/api/analysis/upload_view.py deleted file mode 100644 index b8a4767b0..000000000 --- a/projects/web_demo/web_demo/api/analysis/upload_view.py +++ /dev/null @@ -1,89 +0,0 @@ -import json -import time -import traceback -import requests -from flask import request, current_app, url_for, send_from_directory -from flask_restful import Resource -from werkzeug.utils import secure_filename -from pathlib import Path -from common.ext import is_pdf, calculate_file_hash, url_is_pdf -from io import BytesIO -from werkzeug.datastructures import FileStorage -from common.custom_response import generate_response -from loguru import logger - - -class UploadPdfView(Resource): - - def get(self): - """ - 获取pdf - :return: - """ - params = request.args - filename = params.get('filename') - as_attachment = params.get('as_attachment') - if str(as_attachment).lower() == "true": - as_attachment = True - else: - as_attachment = False - pdf_upload_folder = current_app.config['PDF_UPLOAD_FOLDER'] - response = send_from_directory(f"{current_app.static_folder}/{pdf_upload_folder}", filename, - as_attachment=as_attachment) - return response - - def post(self): - """ - 上传pdf - :return: - """ - file_list = request.files.getlist("file") - if file_list: - file = file_list[0] - filename = secure_filename(file.filename) - if not file or file and not is_pdf(filename, file): - return generate_response(code=400, msg="Invalid PDF file", msgZH="PDF文件参数无效") - else: - params = json.loads(request.data) - pdf_url = params.get('pdfUrl') - try: - response = requests.get(pdf_url, stream=True) - except ConnectionError as e: - logger.error(traceback.format_exc()) - return generate_response(code=400, msg="params is not valid", msgZh="参数错误,pdf链接无法访问") - if response.status_code != 200: - return generate_response(code=400, msg="params is not valid", msgZh="参数错误,pdf链接响应状态异常") - # 创建一个模拟的 FileStorage 对象 - file_content = BytesIO(response.content) - filename = Path(pdf_url).name if ".pdf" in pdf_url else f"{Path(pdf_url).name}.pdf" - file = FileStorage( - stream=file_content, - filename=filename, - content_type=response.headers.get('Content-Type', 'application/octet-stream') - ) - if not file or file and not url_is_pdf(file): - return generate_response(code=400, msg="Invalid PDF file", msgZH="PDF文件参数无效") - - pdf_upload_folder = current_app.config['PDF_UPLOAD_FOLDER'] - upload_dir = f"{current_app.static_folder}/{pdf_upload_folder}" - if not Path(upload_dir).exists(): - Path(upload_dir).mkdir(parents=True, exist_ok=True) - file_key = f"{calculate_file_hash(file)}{int(time.time())}" - new_filename = f"{file_key}_{filename}" - file_path = f"{upload_dir}/{new_filename}" - # file.save(file_path) - chunk_size = 8192 - with open(file_path, 'wb') as f: - while True: - chunk = file.stream.read(chunk_size) - if not chunk: - break - f.write(chunk) - - # 生成文件的URL路径 - file_url = url_for('analysis.uploadpdfview', filename=new_filename, as_attachment=False) - data = { - "url": file_url, - "file_key": file_key - } - return generate_response(data=data) diff --git a/projects/web_demo/web_demo/api/extentions.py b/projects/web_demo/web_demo/api/extentions.py deleted file mode 100644 index 0d5fcb012..000000000 --- a/projects/web_demo/web_demo/api/extentions.py +++ /dev/null @@ -1,62 +0,0 @@ -from flask import Flask, jsonify -from flask_restful import Api as _Api -from flask_cors import CORS -from flask_sqlalchemy import SQLAlchemy as _SQLAlchemy -from flask_migrate import Migrate -from contextlib import contextmanager -from flask_jwt_extended import JWTManager -from flask_marshmallow import Marshmallow -from common.error_types import ApiException -from werkzeug.exceptions import HTTPException -from loguru import logger - - -class Api(_Api): - def handle_error(self, e): - if isinstance(e, ApiException): - code = e.code - msg = e.msg - msgZH = e.msgZH - error_code = e.error_code - elif isinstance(e, HTTPException): - code = e.code - msg = e.description - msgZH = "服务异常,详细信息请查看日志" - error_code = e.code - else: - code = 500 - msg = str(e) - error_code = 500 - msgZH = "服务异常,详细信息请查看日志" - - # 使用 loguru 记录异常信息 - logger.opt(exception=e).error(f"An error occurred: {msg}") - - return jsonify({ - "error": "Internal Server Error" if code == 500 else e.name, - "msg": msg, - "msgZH": msgZH, - "code": code, - "error_code": error_code - }), code - - -class SQLAlchemy(_SQLAlchemy): - @contextmanager - def auto_commit(self): - try: - yield - db.session.commit() - db.session.flush() - except Exception as e: - db.session.rollback() - raise e - - -app = Flask(__name__) -CORS(app, supports_credentials=True) -db = SQLAlchemy() -migrate = Migrate() -jwt = JWTManager() -ma = Marshmallow() -folder = app.config.get("REACT_APP_DIST") diff --git a/projects/web_demo/web_demo/api/react_app/__init__.py b/projects/web_demo/web_demo/api/react_app/__init__.py deleted file mode 100644 index b93589a02..000000000 --- a/projects/web_demo/web_demo/api/react_app/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from pathlib import Path -from flask import Blueprint -from ..extentions import app, Api -from .react_app_view import ReactAppView -from loguru import logger - -folder = Path(app.config.get("REACT_APP_DIST", "../../web/dist/")).resolve() -logger.info(f"react_app folder: {folder}") -react_app_blue = Blueprint('react_app', __name__, static_folder=folder, static_url_path='', template_folder=folder) -react_app_api = Api(react_app_blue, prefix='') -react_app_api.add_resource(ReactAppView, '/') \ No newline at end of file diff --git a/projects/web_demo/web_demo/api/react_app/react_app_view.py b/projects/web_demo/web_demo/api/react_app/react_app_view.py deleted file mode 100644 index 7c2ff82a5..000000000 --- a/projects/web_demo/web_demo/api/react_app/react_app_view.py +++ /dev/null @@ -1,11 +0,0 @@ -from flask import render_template, Response -from flask_restful import Resource - - -class ReactAppView(Resource): - def get(self): - # 创建自定义的响应对象 - rendered_template = render_template('index.html') - response = Response(rendered_template, mimetype='text/html') - - return response diff --git a/projects/web_demo/web_demo/app.py b/projects/web_demo/web_demo/app.py deleted file mode 100644 index d98c0e56d..000000000 --- a/projects/web_demo/web_demo/app.py +++ /dev/null @@ -1,54 +0,0 @@ -import socket -from api import create_app -from pathlib import Path -import yaml - - -def get_local_ip(): - sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) - sock.connect(('8.8.8.8', 80)) # Google DNS 服务器 - ip_address = sock.getsockname()[0] - sock.close() - return ip_address - - -current_file_path = Path(__file__).resolve() -base_dir = current_file_path.parent -config_path = base_dir / "config/config.yaml" - - -class ConfigMap(dict): - __setattr__ = dict.__setitem__ - __getattr__ = dict.__getitem__ - - -with open(str(config_path), mode='r', encoding='utf-8') as fd: - data = yaml.load(fd, Loader=yaml.FullLoader) - _config = data.get(data.get("CurrentConfig", "DevelopmentConfig")) -config = ConfigMap() -for k, v in _config.items(): - config[k] = v -config['base_dir'] = base_dir -database = _config.get("database") -if database: - if database.get("type") == "sqlite": - database_uri = f'sqlite:///{base_dir}/{database.get("path")}' - elif database.get("type") == "mysql": - database_uri = f'mysql+pymysql://{database.get("user")}:{database.get("password")}@{database.get("host")}:{database.get("port")}/{database.get("database")}?' - else: - database_uri = '' - config['SQLALCHEMY_DATABASE_URI'] = database_uri - -ip_address = get_local_ip() -port = config.get("PORT", 5559) -# 配置 SERVER_NAME -config['SERVER_NAME'] = f'{ip_address}:5559' -# 配置 APPLICATION_ROOT -config['APPLICATION_ROOT'] = '/' -# 配置 PREFERRED_URL_SCHEME -config['PREFERRED_URL_SCHEME'] = 'http' - -app = create_app(config) - -if __name__ == '__main__': - app.run(host="0.0.0.0", port=port, debug=config.get("DEBUG", False)) diff --git a/projects/web_demo/web_demo/common/__init__.py b/projects/web_demo/web_demo/common/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/projects/web_demo/web_demo/common/custom_response.py b/projects/web_demo/web_demo/common/custom_response.py deleted file mode 100644 index 7d244c1a1..000000000 --- a/projects/web_demo/web_demo/common/custom_response.py +++ /dev/null @@ -1,23 +0,0 @@ -from flask import jsonify - - -class ResponseCode: - SUCCESS = 200 - PARAM_WARING = 400 - MESSAGE = "success" - - -def generate_response(data=None, code=ResponseCode.SUCCESS, msg=ResponseCode.MESSAGE, **kwargs): - """ - 自定义响应 - :param code:状态码 - :param data:返回数据 - :param msg:返回消息 - :param kwargs: - :return: - """ - msg = msg or 'success' if code == 200 else msg or 'fail' - success = True if code == 200 else False - res = jsonify(dict(code=code, success=success, data=data, msg=msg, **kwargs)) - res.status_code = 200 - return res diff --git a/projects/web_demo/web_demo/common/error_types.py b/projects/web_demo/web_demo/common/error_types.py deleted file mode 100644 index 8624437d6..000000000 --- a/projects/web_demo/web_demo/common/error_types.py +++ /dev/null @@ -1,45 +0,0 @@ -import json -from flask import request -from werkzeug.exceptions import HTTPException - - -class ApiException(HTTPException): - """API错误基类""" - code = 500 - msg = 'Sorry, we made a mistake Σ(っ °Д °;)っ' - msgZH = "" - error_code = 999 - - def __init__(self, msg=None, msgZH=None, code=None, error_code=None, headers=None): - if code: - self.code = code - if msg: - self.msg = msg - if msgZH: - self.msgZH = msgZH - if error_code: - self.error_code = error_code - super(ApiException, self).__init__(msg, None) - - @staticmethod - def get_error_url(): - """获取出错路由和请求方式""" - method = request.method - full_path = str(request.full_path) - main_path = full_path.split('?')[0] - res = method + ' ' + main_path - return res - - def get_body(self, environ=None, scope=None): - """异常返回信息""" - body = dict( - msg=self.msg, - error_code=self.error_code, - request=self.get_error_url() - ) - text = json.dumps(body) - return text - - def get_headers(self, environ=None, scope=None): - """异常返回格式""" - return [("Content-Type", "application/json")] \ No newline at end of file diff --git a/projects/web_demo/web_demo/common/ext.py b/projects/web_demo/web_demo/common/ext.py deleted file mode 100644 index 57c06c4ad..000000000 --- a/projects/web_demo/web_demo/common/ext.py +++ /dev/null @@ -1,80 +0,0 @@ -import hashlib -import mimetypes - - -def is_pdf(filename, file): - """ - 判断文件是否为PDF格式。 - - :param filename: 文件名 - :param file: 文件对象 - :return: 如果文件是PDF格式,则返回True,否则返回False - """ - # 检查文件扩展名 https://arxiv.org/pdf/2405.08702 pdf链接可能存在不带扩展名的情况,先注释 - # if not filename.endswith('.pdf'): - # return False - - # 检查MIME类型 - mime_type, _ = mimetypes.guess_type(filename) - print(mime_type) - if mime_type != 'application/pdf': - return False - - # 可选:读取文件的前几KB内容并检查MIME类型 - # 这一步是可选的,用于更严格的检查 - # if not mimetypes.guess_type(filename, strict=False)[0] == 'application/pdf': - # return False - - # 检查文件内容 - file_start = file.read(5) - file.seek(0) - if not file_start.startswith(b'%PDF-'): - return False - - return True - - -def url_is_pdf(file): - """ - 判断文件是否为PDF格式。 - - :param file: 文件对象 - :return: 如果文件是PDF格式,则返回True,否则返回False - """ - # 检查文件内容 - file_start = file.read(5) - file.seek(0) - if not file_start.startswith(b'%PDF-'): - return False - - return True - - -def calculate_file_hash(file, algorithm='sha256'): - """ - 计算给定文件的哈希值。 - - :param file: 文件对象 - :param algorithm: 哈希算法的名字,如:'sha256', 'md5', 'sha1'等 - :return: 文件的哈希值 - """ - hash_func = getattr(hashlib, algorithm)() - block_size = 65536 # 64KB chunks - # with open(file_path, 'rb') as file: - buffer = file.read(block_size) - while len(buffer) > 0: - hash_func.update(buffer) - buffer = file.read(block_size) - file.seek(0) - return hash_func.hexdigest() - - -def singleton_func(cls): - instance = {} - - def _singleton(*args, **kwargs): - if cls not in instance: - instance[cls] = cls(*args, **kwargs) - return instance[cls] - - return _singleton diff --git a/projects/web_demo/web_demo/common/import_models.py b/projects/web_demo/web_demo/common/import_models.py deleted file mode 100644 index 06af38e31..000000000 --- a/projects/web_demo/web_demo/common/import_models.py +++ /dev/null @@ -1 +0,0 @@ -from api.analysis.models import * \ No newline at end of file diff --git a/projects/web_demo/web_demo/common/logger.py b/projects/web_demo/web_demo/common/logger.py deleted file mode 100644 index b994afc9f..000000000 --- a/projects/web_demo/web_demo/common/logger.py +++ /dev/null @@ -1,19 +0,0 @@ -import os -from loguru import logger -from pathlib import Path -from datetime import datetime - - -def setup_log(config): - """ - Setup logging - :param config: config file - :return: - """ - log_path = os.path.join(Path(__file__).parent.parent, "log") - if not Path(log_path).exists(): - Path(log_path).mkdir(parents=True, exist_ok=True) - log_level = config.get("LOG_LEVEL") - log_name = f'log_{datetime.now().strftime("%Y-%m-%d")}.log' - log_file_path = os.path.join(log_path, log_name) - logger.add(str(log_file_path), rotation='00:00', encoding='utf-8', level=log_level, enqueue=True) diff --git a/projects/web_demo/web_demo/common/web_hook.py b/projects/web_demo/web_demo/common/web_hook.py deleted file mode 100644 index 41982a0a9..000000000 --- a/projects/web_demo/web_demo/common/web_hook.py +++ /dev/null @@ -1,9 +0,0 @@ - -def before_request(): - return None - - -def after_request(response): - response.headers.add('Access-Control-Allow-Origin', '*') - response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization') - return response diff --git a/projects/web_demo/web_demo/config/__init__.py b/projects/web_demo/web_demo/config/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/projects/web_demo/web_demo/config/config.yaml b/projects/web_demo/web_demo/config/config.yaml deleted file mode 100644 index d2ca35771..000000000 --- a/projects/web_demo/web_demo/config/config.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# 基本配置 -BaseConfig: &base - DEBUG: false - PORT: 5559 - LOG_LEVEL: "DEBUG" - SQLALCHEMY_TRACK_MODIFICATIONS: true - SQLALCHEMY_DATABASE_URI: "" - PROPAGATE_EXCEPTIONS: true - SECRET_KEY: "#$%^&**$##*(*^%%$**((&" - JWT_SECRET_KEY: "#$%^&**$##*(*^%%$**((&" - JWT_ACCESS_TOKEN_EXPIRES: 3600 - PDF_UPLOAD_FOLDER: "upload_pdf" - PDF_ANALYSIS_FOLDER: "analysis_pdf" - # 前端项目打包的路径 - REACT_APP_DIST: "../../web/dist/" - -# 开发配置 -DevelopmentConfig: - <<: *base - database: - type: sqlite - path: config/mineru_web.db - -# 生产配置 -ProductionConfig: - <<: *base - -# 测试配置 -TestingConfig: - <<: *base - -# 当前使用配置 -CurrentConfig: "DevelopmentConfig" diff --git a/projects/web_demo/web_demo/config/mineru_web.db b/projects/web_demo/web_demo/config/mineru_web.db deleted file mode 100644 index fcac36060..000000000 Binary files a/projects/web_demo/web_demo/config/mineru_web.db and /dev/null differ diff --git a/projects/web_demo/web_demo/static/__init__.py b/projects/web_demo/web_demo/static/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..52dcfd573 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,183 @@ +[build-system] +requires = ["setuptools>=77.0.3", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "mineru" +dynamic = ["version"] +license = "LicenseRef-MinerU-Open-Source-License" +license-files = ["LICENSE.md"] +description = "A practical document parsing tool for converting PDF, images, DOCX, PPTX, and XLSX into Markdown and JSON" +readme = "README.md" +requires-python = ">=3.10,<3.14" +keywords = [ + "mineru", + "magic-pdf", + "document-parsing", + "document-understanding", + "pdf", + "markdown", + "ocr", + "vlm", + "docx", + "pptx", + "xlsx", + "multimodal", +] +classifiers = [ + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", +] +dependencies = [ + "boto3>=1.28.43", + "click>=8.1.7", + "loguru>=0.7.2", + "numpy>=1.21.6", + "pdfminer.six>=20251230", + "tqdm>=4.67.1", + "requests", + "httpx", + "pillow>=11.0.0", + "pypdfium2>=4.30.0", + "pypdf>=5.6.0", + "reportlab", + "pdftext>=0.6.3", + "modelscope>=1.26.0", + "huggingface-hub>=0.32.4", + "json-repair>=0.46.2", + "opencv-python>=4.11.0.86", + "fast-langdetect>=0.2.3,<0.3.0", + "scikit-image>=0.25.0,<1.0.0", + "openai>=1.70.0,<3", + "beautifulsoup4>=4.13.5,<5", + "magika>=0.6.2,<1.1.0", + "mineru-vl-utils>=0.2.5,<1", + "qwen-vl-utils>=0.0.14,<1", + "python-docx>=1.2.0,<2", + 'pypptx-with-oxml>=1.0.3,<2', + "mammoth>=1.11.0,<2", + "pylatexenc>=2.10,<3", + "lxml>=4.0.0,<7.0.0", + "pandas>=2.3.3,<3", + "openpyxl>=3.1.5,<4", + "fastapi", + "python-multipart", + "uvicorn", +] + +[project.optional-dependencies] +test = [ + "mineru[core]", + "pytest", + "pytest-cov", + "coverage", + "fuzzywuzzy" +] +vlm = [ + "torch>=2.6.0,<3", + "transformers>=4.57.3,<5.0.0", + "accelerate>=1.5.1", +] +vllm = [ + "vllm>=0.10.1.1,<0.12", +] +lmdeploy = [ + "lmdeploy>=0.10.2,<0.12", +] +mlx = [ + "mlx-vlm>=0.3.3,<0.4", +] +pipeline = [ + "dill>=0.3.8,<1", + "PyYAML>=6.0.1,<7", + "ftfy>=6.3.1,<7", + "shapely>=2.0.7,<3", + "pyclipper>=1.3.0,<2", + "omegaconf>=2.3.0,<3", + "torch>=2.6.0,<3", + "torchvision", + "transformers>=4.57.3,<5.0.0", + "onnxruntime>1.17.0", + "albumentations>=2.0.8,<3", +] +gradio = [ + "gradio>=5.49.1,!=6.0.0,!=6.0.1,!=6.0.2,!=6.1.0,!=6.2.0,!=6.3.0,!=6.4.0,!=6.5.0,!=6.5.1,!=6.6.0,!=6.7.0,<6.9.0", + "gradio-pdf>=0.0.22", +] +core = [ + "mineru[vlm]", + "mineru[pipeline]", + "mineru[gradio]", +] +all = [ + "mineru[core]", + "mineru[mlx] ; sys_platform == 'darwin'", + "mineru[vllm] ; sys_platform == 'linux'", + "mineru[lmdeploy] ; sys_platform == 'win32'", +] + +[project.urls] +homepage = "https://mineru.net/" +documentation = "https://opendatalab.github.io/MinerU/" +repository = "https://github.com/opendatalab/MinerU" +issues = "https://github.com/opendatalab/MinerU/issues" +License = "https://github.com/opendatalab/MinerU/blob/master/LICENSE.md" + +[project.scripts] +mineru = "mineru.cli.client:main" +mineru-vllm-server = "mineru.cli.vlm_server:vllm_server" +mineru-lmdeploy-server = "mineru.cli.vlm_server:lmdeploy_server" +mineru-openai-server = "mineru.cli.vlm_server:openai_server" +mineru-models-download = "mineru.cli.models_download:download_models" +mineru-api = "mineru.cli.fast_api:main" +mineru-router = "mineru.cli.router:main" +mineru-gradio = "mineru.cli.gradio_app:main" + +[tool.setuptools.dynamic] +version = { attr = "mineru.version.__version__" } + +[tool.setuptools.packages.find] +include = ["mineru*"] +namespaces = false + +[tool.setuptools.package-data] +"mineru" = ["resources/**"] +"mineru.model.utils.pytorchocr.utils" = ["resources/**"] + +[tool.setuptools] +include-package-data = true +zip-safe = false + +[tool.pytest.ini_options] +addopts = "-s --cov=mineru --cov-report html" + +[tool.coverage.run] +command_line = "-m pytest tests/unittest/test_e2e.py" +source = ["mineru/"] +omit = [ + "*/gradio_app.py", + "*/models_download.py", + "*/fast_api.py", + "*/cli/client.py", + "*/vlm_vllm_server.py", + "*/cli_parser.py", +] + +[tool.coverage.html] +directory = "htmlcov" + +[tool.coverage.report] +exclude_also = [ + 'def __repr__', + 'if self.debug:', + 'if settings.DEBUG', + 'raise AssertionError', + 'raise NotImplementedError', + 'if 0:', + 'if __name__ == .__main__.:', + 'if TYPE_CHECKING:', + 'class .*\bProtocol\):', + '@(abc\.)?abstractmethod', +] diff --git a/requirements-docker.txt b/requirements-docker.txt deleted file mode 100644 index bf691b8df..000000000 --- a/requirements-docker.txt +++ /dev/null @@ -1,18 +0,0 @@ -boto3>=1.28.43 -Brotli>=1.1.0 -click>=8.1.7 -PyMuPDF>=1.24.9 -loguru>=0.6.0 -numpy>=1.21.6,<2.0.0 -fast-langdetect==0.2.0 -scikit-learn>=1.0.2 -pdfminer.six==20231228 -unimernet==0.2.1 -matplotlib -ultralytics -paddleocr==2.7.3 -paddlepaddle==3.0.0b1 -pypandoc -struct-eqtable==0.1.0 -doclayout-yolo==0.0.2 -detectron2 diff --git a/requirements-qa.txt b/requirements-qa.txt deleted file mode 100644 index f42f1d38a..000000000 --- a/requirements-qa.txt +++ /dev/null @@ -1,20 +0,0 @@ -pytest -Levenshtein -nltk -rapidfuzz -statistics -openxlab #安装opendatalab -pandas -numpy -matplotlib -seaborn -scipy -scikit-learn -tqdm -htmltabletomd -pypandoc -pyopenssl==24.0.0 -struct-eqtable==0.1.0 -pytest-cov -beautifulsoup4 -coverage \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index eced1426b..000000000 --- a/requirements.txt +++ /dev/null @@ -1,13 +0,0 @@ -boto3>=1.28.43 -Brotli>=1.1.0 -click>=8.1.7 -fast-langdetect==0.2.0 -loguru>=0.6.0 -numpy>=1.21.6,<2.0.0 -pdfminer.six==20231228 -pydantic>=2.7.2,<2.8.0 -PyMuPDF>=1.24.9 -scikit-learn>=1.0.2 -torch>=2.2.2,<=2.3.1 -transformers -# The requirements.txt must ensure that only necessary external dependencies are introduced. If there are new dependencies to add, please contact the project administrator. diff --git a/setup.py b/setup.py deleted file mode 100644 index 0a7e8db30..000000000 --- a/setup.py +++ /dev/null @@ -1,65 +0,0 @@ -from pathlib import Path -from setuptools import setup, find_packages -from magic_pdf.libs.version import __version__ - - -def parse_requirements(filename): - with open(filename) as f: - lines = f.read().splitlines() - - requires = [] - - for line in lines: - if "http" in line: - pkg_name_without_url = line.split('@')[0].strip() - requires.append(pkg_name_without_url) - else: - requires.append(line) - - return requires - - -if __name__ == '__main__': - with Path(Path(__file__).parent, - 'README.md').open(encoding='utf-8') as file: - long_description = file.read() - setup( - name="magic_pdf", # 项目名 - version=__version__, # 自动从tag中获取版本号 - packages=find_packages() + ["magic_pdf.resources"], # 包含所有的包 - package_data={ - "magic_pdf.resources": ["**"], # 包含magic_pdf.resources目录下的所有文件 - }, - install_requires=parse_requirements('requirements.txt'), # 项目依赖的第三方库 - extras_require={ - "lite": ["paddleocr==2.7.3", - "paddlepaddle==3.0.0b1;platform_system=='Linux'", - "paddlepaddle==2.6.1;platform_system=='Windows' or platform_system=='Darwin'", - ], - "full": ["unimernet==0.2.1", # unimernet升级0.2.1 - "matplotlib<=3.9.0;platform_system=='Windows'", # 3.9.1及之后不提供windows的预编译包,避免一些没有编译环境的windows设备安装失败 - "matplotlib;platform_system=='Linux' or platform_system=='Darwin'", # linux 和 macos 不应限制matplotlib的最高版本,以避免无法更新导致的一些bug - "ultralytics", # yolov8,公式检测 - "paddleocr==2.7.3", # 2.8.0及2.8.1版本与detectron2有冲突,需锁定2.7.3 - "paddlepaddle==3.0.0b1;platform_system=='Linux'", # 解决linux的段异常问题 - "paddlepaddle==2.6.1;platform_system=='Windows' or platform_system=='Darwin'", # windows版本3.0.0b1效率下降,需锁定2.6.1 - "pypandoc", # 表格解析latex转html - "struct-eqtable==0.1.0", # 表格解析 - "doclayout_yolo==0.0.2", # doclayout_yolo - "detectron2" - ], - }, - description="A practical tool for converting PDF to Markdown", # 简短描述 - long_description=long_description, # 详细描述 - long_description_content_type="text/markdown", # 如果README是Markdown格式 - url="https://github.com/opendatalab/MinerU", - python_requires=">=3.9", # 项目依赖的 Python 版本 - entry_points={ - "console_scripts": [ - "magic-pdf = magic_pdf.tools.cli:cli", - "magic-pdf-dev = magic_pdf.tools.cli_dev:cli" - ], - }, # 项目提供的可执行命令 - include_package_data=True, # 是否包含非代码文件,如数据文件、配置文件等 - zip_safe=False, # 是否使用 zip 文件格式打包,一般设为 False - ) diff --git a/signatures/version1/cla.json b/signatures/version1/cla.json deleted file mode 100644 index 5e577d1ad..000000000 --- a/signatures/version1/cla.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "signedContributors": [ - { - "name": "eltociear", - "id": 22633385, - "comment_id": 2254564260, - "created_at": "2024-07-28T15:55:21Z", - "repoId": 765083837, - "pullRequestNo": 231 - }, - { - "name": "nutshellfool", - "id": 1439114, - "comment_id": 2259763094, - "created_at": "2024-07-31T06:24:39Z", - "repoId": 765083837, - "pullRequestNo": 258 - }, - { - "name": "zuanzuanshao", - "id": 43691054, - "comment_id": 2272997756, - "created_at": "2024-08-07T09:11:10Z", - "repoId": 765083837, - "pullRequestNo": 355 - }, - { - "name": "Thepathakarpit", - "id": 119810812, - "comment_id": 2286123353, - "created_at": "2024-08-13T12:23:16Z", - "repoId": 765083837, - "pullRequestNo": 418 - }, - { - "name": "Matthijz98", - "id": 17087153, - "comment_id": 2298912989, - "created_at": "2024-08-20T13:49:50Z", - "repoId": 765083837, - "pullRequestNo": 467 - }, - { - "name": "strongerfly", - "id": 11643869, - "comment_id": 2309481561, - "created_at": "2024-08-26T07:01:49Z", - "repoId": 765083837, - "pullRequestNo": 487 - } - ] -} \ No newline at end of file diff --git a/tests/assets/more_para_test_samples/gift_files.txt b/tests/assets/more_para_test_samples/gift_files.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/assets/more_para_test_samples/scihub_files.txt b/tests/assets/more_para_test_samples/scihub_files.txt deleted file mode 100644 index 5136f9a69..000000000 --- a/tests/assets/more_para_test_samples/scihub_files.txt +++ /dev/null @@ -1,17 +0,0 @@ -scihub/scihub_00500000/libgen.scimag00527000-00527999.zip_10.1002/app.25178 -scihub/scihub_07400000/libgen.scimag07481000-07481999.zip_10.1007/s003960050343 -scihub/scihub_11400000/libgen.scimag11451000-11451999.zip_10.1017/s0009838811000231 -scihub/scihub_24400000/libgen.scimag24401000-24401999.zip_10.1016/j.toxicon.2014.02.018 -scihub/scihub_27400000/libgen.scimag27441000-27441999.zip_10.2307/30122482 -scihub/scihub_28400000/libgen.scimag28413000-28413999.zip_10.2307/1316224 -scihub/scihub_31200000/libgen.scimag31207000-31207999.zip_10.1080/03639040600920622 -scihub/scihub_31800000/libgen.scimag31824000-31824999.zip_10.1109/med.2012.6265668 -scihub/scihub_32500000/libgen.scimag32539000-32539999.zip_10.1080/09540121003721000 -scihub/scihub_42500000/libgen.scimag42522000-42522999.zip_10.1016/S1365-6937(15)30162-3 -scihub/scihub_45900000/libgen.scimag45914000-45914999.zip_10.1055/s-0030-1256333 -scihub/scihub_50900000/libgen.scimag50902000-50902999.zip_10.1007/s12274-016-1035-8 -scihub/scihub_63900000/libgen.scimag63921000-63921999.zip_10.1063/1.4938050 -scihub/scihub_65800000/libgen.scimag65832000-65832999.zip_10.1016/s0166-4115(08)62165-2 -scihub/scihub_67300000/libgen.scimag67369000-67369999.zip_10.1096/fj.201700997R -scihub/scihub_67900000/libgen.scimag67967000-67967999.zip_10.1038/s41598-018-21867-z -scihub/scihub_77400000/libgen.scimag77447000-77447999.zip_10.1016/j.jid.2019.06.094 diff --git a/tests/assets/more_para_test_samples/zlib_files.txt b/tests/assets/more_para_test_samples/zlib_files.txt deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/assets/paper/images_tables_equations.json b/tests/assets/paper/images_tables_equations.json deleted file mode 100644 index 6fc466ef4..000000000 --- a/tests/assets/paper/images_tables_equations.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "pageID_imageBboxs": [ - [ - [ - 37.5, - 651.3200073242188, - 557.5, - 790.8300170898438 - ] - ], - [ - [ - 69, - 771, - 119, - 789 - ] - ], - [], - [ - [ - 152.16000366210938, - 188.3996124267578, - 458.8800048828125, - 330.4796142578125 - ], - [ - 200.57258064516128, - 499.0322580645161, - 339.67863247863244, - 627.5418803418803 - ] - ], - [ - [ - 88.29032258064515, - 246.63709677419354, - 288.822792022792, - 608.8307692307692 - ] - ], - [ - [ - 168.42338709677418, - 118.04032258064515, - 439.9509971509971, - 246.60284900284898 - ], - [ - 155.94758064516128, - 341.1653225806451, - 452.4250712250712, - 434.67350427350425 - ] - ], - [], - [] - ], - "pageID_tableBboxs": [ - [], - [], - [], - [], - [], - [ - [ - 71.9758064516129, - 534.0604838709677, - 520.5527065527065, - 717.7390313390313 - ] - ], - [ - [ - 71.01612903225806, - 296.5403225806451, - 525.3504273504273, - 392.45356125356125 - ], - [ - 79.17338709677419, - 503.8306451612903, - 517.674074074074, - 736.4501424501424 - ] - ], - [] - ], - "pageID_equationBboxs": [ - [], - [], - [ - [ - 247.59677419354836, - 511.9879032258064, - 524.8706552706552, - 525.8301994301994 - ], - [ - 222.16532258064515, - 588.7620967741935, - 524.3908831908832, - 608.8307692307692 - ] - ], - [], - [], - [], - [], - [] - ] -} \ No newline at end of file diff --git a/tests/assets/paper/paper.pdf b/tests/assets/paper/paper.pdf deleted file mode 100644 index e8f582400..000000000 Binary files a/tests/assets/paper/paper.pdf and /dev/null differ diff --git a/tests/assets/paper/paper_recogPara.json b/tests/assets/paper/paper_recogPara.json deleted file mode 100644 index 68a047cb6..000000000 --- a/tests/assets/paper/paper_recogPara.json +++ /dev/null @@ -1,6689 +0,0 @@ -{ - "page_0": { - "block_0": { - "bbox": [ - 39.0, - 34.719993591308594, - 347.1359558105469, - 51.2079963684082 - ], - "text": "IOP Conference Series: Earth and Environmental Science", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 347.1359558105469, - "avg_char_width": 6.4194990793863935, - "avg_char_height": 16.48800277709961, - "block_font_type": "Helvetica", - "block_font_size": 12.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 34.719993591308594, - 347.1359558105469, - 51.2079963684082 - ], - "text": "IOP Conference Series: Earth and Environmental Science", - "is_matched": 0, - "font_type": "Helvetica", - "font_size": 12.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 34.719993591308594, - 347.1359558105469, - 51.2079963684082 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_1": { - "bbox": [ - 39.0, - 111.38001251220703, - 143.67001342773438, - 123.77301025390625 - ], - "text": "PAPER • OPEN ACCESS", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 143.67001342773438, - "avg_char_width": 6.541875839233398, - "avg_char_height": 12.392997741699219, - "block_font_type": "Helvetica-Bold", - "block_font_size": 9.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 111.38001251220703, - 143.67001342773438, - 123.77301025390625 - ], - "text": "PAPER • OPEN ACCESS", - "is_matched": 1, - "font_type": "Helvetica-Bold", - "font_size": 9.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 111.38001251220703, - 143.67001342773438, - 123.77301025390625 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 1 - }, - "block_2": { - "bbox": [ - 39.0, - 131.58843994140625, - 553.6265258789062, - 172.2259521484375 - ], - "text": "A comprehensive nutritional supplement made from germinated wheat to enrich drinks", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 341.6492691040039, - "avg_char_width": 8.066554896036784, - "avg_char_height": 9.600006103515625, - "block_font_type": "ArialUnicodeMS", - "block_font_size": 16.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 131.58843994140625, - 553.6265258789062, - 153.02593994140625 - ], - "text": "A comprehensive nutritional supplement made from germinated wheat to", - "is_matched": 0, - "font_type": "ArialUnicodeMS", - "font_size": 16.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 39.0, - 150.7884521484375, - 129.67201232910156, - 172.2259521484375 - ], - "text": "enrich drinks", - "is_matched": 1, - "font_type": "ArialUnicodeMS", - "font_size": 16.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 131.58843994140625, - 553.6265258789062, - 153.02593994140625 - ], - [ - 39.0, - 150.7884521484375, - 129.67201232910156, - 172.2259521484375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_3": { - "bbox": [ - 39.0, - 184.89999389648438, - 352.0479431152344, - 195.95599365234375 - ], - "text": "To cite this article: V V Kazina et al 2021 IOP Conf. Ser.: Earth Environ. Sci. 640 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 352.0479431152344, - "avg_char_width": 4.2883279878799225, - "avg_char_height": 11.055999755859375, - "block_font_type": "Helvetica", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 184.89999389648438, - 352.0479431152344, - 195.95599365234375 - ], - "text": "To cite this article: V V Kazina et al 2021 IOP Conf. Ser.: Earth Environ. Sci. 640 022090", - "is_matched": 1, - "font_type": "Helvetica", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 184.89999389648438, - 352.0479431152344, - 195.95599365234375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_4": { - "bbox": [ - 39.0, - 211.80001831054688, - 41.2239990234375, - 222.79202270507812 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 41.2239990234375, - "avg_char_width": 0, - "avg_char_height": 10.99200439453125, - "block_font_type": "Helvetica", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 211.80001831054688, - 41.2239990234375, - 222.79202270507812 - ], - "text": " ", - "is_matched": 0, - "font_type": "Helvetica", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 211.80001831054688, - 41.2239990234375, - 222.79202270507812 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_5": { - "bbox": [ - 39.0, - 231.19998168945312, - 231.54595947265625, - 242.19198608398438 - ], - "text": "View the article online for updates and enhancements.", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 231.54595947265625, - "avg_char_width": 4.18578172766644, - "avg_char_height": 10.99200439453125, - "block_font_type": "Helvetica", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 231.19998168945312, - 231.54595947265625, - 242.19198608398438 - ], - "text": "View the article online for updates and enhancements.", - "is_matched": 1, - "font_type": "Helvetica", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 231.19998168945312, - 231.54595947265625, - 242.19198608398438 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_6": { - "bbox": [ - 144.3000030517578, - 794.7200317382812, - 450.7078857421875, - 805.7120361328125 - ], - "text": "This content was downloaded from IP address 112.133.244.33 on 31/08/2021 at 06:37", - "dir": [ - 1.0, - 0.0 - ], - "X0": 144.3000030517578, - "X1": 450.7078857421875, - "avg_char_width": 4.3772554670061385, - "avg_char_height": 10.99200439453125, - "block_font_type": "Helvetica", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 144.3000030517578, - 794.7200317382812, - 450.7078857421875, - 805.7120361328125 - ], - "text": "This content was downloaded from IP address 112.133.244.33 on 31/08/2021 at 06:37", - "is_matched": 1, - "font_type": "Helvetica", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 144.3000030517578, - 794.7200317382812, - 450.7078857421875, - 805.7120361328125 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - } - }, - "page_1": { - "block_0": { - "bbox": [ - 69.86895751953125, - 770.9187622070312, - 523.94970703125, - 799.7386474609375 - ], - "text": "Content from this work may be used under the terms of the Creative Commons Attribution 3.0 licence . Any further distribution of this work must maintain attribution to the author(s) and the title of the work, journal citation and DOI. Published under licence by IOP Publishing Ltd", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_1": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_4": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "1", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "1", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 1 - }, - "block_5": { - "bbox": [ - 70.91996765136719, - 190.89048767089844, - 528.6571044921875, - 234.05087280273438 - ], - "text": "A comprehensive nutritional supplement made from germinated wheat to enrich drinks ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.91996765136719, - "X1": 429.6572570800781, - "avg_char_width": 9.800756605893206, - "avg_char_height": 9.779998779296875, - "block_font_type": "Times-Bold", - "block_font_size": 17.03506851196289, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 190.89048767089844, - 528.6571044921875, - 214.49087524414062 - ], - "text": "A comprehensive nutritional supplement made from ", - "is_matched": 0, - "font_type": "Times-Bold", - "font_size": 17.03506851196289, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.91996765136719, - 210.4504852294922, - 330.65740966796875, - 234.05087280273438 - ], - "text": "germinated wheat to enrich drinks ", - "is_matched": 1, - "font_type": "Times-Bold", - "font_size": 17.03506851196289, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 190.89048767089844, - 528.6571044921875, - 214.49087524414062 - ], - [ - 70.91996765136719, - 210.4504852294922, - 330.65740966796875, - 234.05087280273438 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 1 - }, - "block_6": { - "bbox": [ - 141.83987426757812, - 258.9544677734375, - 526.8885498046875, - 543.9988403320312 - ], - "text": "V V Kazina, T N Safronova, O A Yabrova, T L Kamoza and E O Nikulina Siberian Federal University, 2, Prushinskaya street, Krasnoyarsk, 660075, Russia E-mail: v.mutovina89@yandex.ru Abstract. The creation of new enriched and functional products contributes to the formation of a healthy type of nutrition in the population. The combination of processed wheat grain processing products into a complex nutritional supplement that can be used for enrichment will expand the range of functional products. As objects of study, a concentrate from germinated wheat grains and juice from green wheat sprouts were determined. Samples of complex nutritional supplements were prepared with different component ratios. Comparative results of organoleptic evaluation and physicochemical parameters of complex nutritional supplement samples are presented. The formulation of the complex nutritional supplement was optimized by the total quality factor, the most effective ratio of the concentrate from germinated wheat grains and juice from green wheat sprouts - 40:60. The study of the conditions and shelf life of the finished complex food additives, packaged in a vacuum bag, was carried out at a temperature of -18 ± 2 ℃ , air humidity of 75%. Quality control was carried out at 3 control points during 48 days of storage. The developed complex food additive, packed in a vacuum bag and frozen at a temperature of -18 ± 2 ℃ , air humidity of 75% has a shelf life of 40 days and can be widely used in the enrichment of drinks. The complex nutritional supplement from germinated wheat has the following indicators: dry matter content - 21.89%, vitamin C - 4.3 mg, vitamin B 1 - 0.13 mg, vitamin B 2 - 0.1 mg, vitamin B 6 - 0.17 mg, fiber - 0.72 g. The resulting complex nutritional supplement has increased nutritional value. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 141.8402328491211, - "X1": 526.8880310058594, - "avg_char_width": 5.0352963354265805, - "avg_char_height": 5.907777205757473, - "block_font_type": "Times-Roman", - "block_font_size": 9.843855898720877, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 141.83993530273438, - 258.9544677734375, - 495.7184143066406, - 274.244873046875 - ], - "text": "V V Kazina, T N Safronova, O A Yabrova, T L Kamoza and E O Nikulina ", - "is_matched": 0, - "font_type": "Times-Bold", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 141.83993530273438, - 271.554443359375, - 502.31854248046875, - 298.66241455078125 - ], - "text": " Siberian Federal University, 2, Prushinskaya street, Krasnoyarsk, 660075, Russia ", - "is_matched": 1, - "font_type": "Times-Bold", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 141.83993530273438, - 296.5350341796875, - 294.95819091796875, - 323.86236572265625 - ], - "text": " E-mail: v.mutovina89@yandex.ru ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_3": { - "bbox": [ - 141.83987426757812, - 321.85498046875, - 526.8885498046875, - 543.9988403320312 - ], - "text": " Abstract. The creation of new enriched and functional products contributes to the formation of a healthy type of nutrition in the population. The combination of processed wheat grain processing products into a complex nutritional supplement that can be used for enrichment will expand the range of functional products. As objects of study, a concentrate from germinated wheat grains and juice from green wheat sprouts were determined. Samples of complex nutritional supplements were prepared with different component ratios. Comparative results of organoleptic evaluation and physicochemical parameters of complex nutritional supplement samples are presented. The formulation of the complex nutritional supplement was optimized by the total quality factor, the most effective ratio of the concentrate from germinated wheat grains and juice from green wheat sprouts - 40:60. The study of the conditions and shelf life of the finished complex food additives, packaged in a vacuum bag, was carried out at a temperature of -18 ± 2 ℃ , air humidity of 75%. Quality control was carried out at 3 control points during 48 days of storage. The developed complex food additive, packed in a vacuum bag and frozen at a temperature of -18 ± 2 ℃ , air humidity of 75% has a shelf life of 40 days and can be widely used in the enrichment of drinks. The complex nutritional supplement from germinated wheat has the following indicators: dry matter content - 21.89%, vitamin C - 4.3 mg, vitamin B 1 - 0.13 mg, vitamin B 2 - 0.1 mg, vitamin B 6 - 0.17 mg, fiber - 0.72 g. The resulting complex nutritional supplement has increased nutritional value. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 9.645049619674683, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 141.83993530273438, - 258.9544677734375, - 495.7184143066406, - 274.244873046875 - ], - [ - 141.83993530273438, - 271.554443359375, - 502.31854248046875, - 298.66241455078125 - ], - [ - 141.83993530273438, - 296.5350341796875, - 294.95819091796875, - 323.86236572265625 - ], - [ - 141.83987426757812, - 321.85498046875, - 526.8885498046875, - 543.9988403320312 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_7": { - "bbox": [ - 70.919921875, - 570.5943603515625, - 527.15966796875, - 749.38232421875 - ], - "text": "1. Introduction The formation of a healthy type of nutrition for the population requires the production of new enriched, dietary and functional foods. One of the sources of enrichment of the diet is sprouted wheat, which is several times richer than vitamins, macro- and microelements 50 times richer than vitamin E, 10 times richer than vitamin B6, 3-4 times richer than vitamins F and P 4-5 times richer in fatty acids, 2-3 times richer in amino acids, and also contains phosphorus, potassium, magnesium, manganese, calcium, zinc, iron, selenium, copper, vanadium, etc. It is established that the introduction of germinated grain in the diet improves metabolism and blood formation, boosts immunity, replenishes vitamin th and mineral deficiency, stabilizes the acid-base balance, aids in digestion and intensive cleansing the body of toxins. In addition, enzyme systems are activated in the germinated grain, which break down complex substances into simpler, easily absorbed by the human body [1-3]. Another source of enrichment, which contains a significant amount of nutrients, vitamins, macro- and microelements, enzymes, essential amino acids, is the juice from the green wheat sprouts. It contains chlorophyll, which inhibits the development of cancer, promotes tissue regeneration and stimulates the ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.9208755493164, - "X1": 527.15869140625, - "avg_char_width": 5.260399253148637, - "avg_char_height": 6.310023381159856, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 570.5943603515625, - 147.35826110839844, - 585.884765625 - ], - "text": "1. Introduction ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.919921875, - 582.85498046875, - 527.1593017578125, - 711.4623413085938 - ], - "text": "The formation of a healthy type of nutrition for the population requires the production of new enriched, dietary and functional foods. One of the sources of enrichment of the diet is sprouted wheat, which is several times richer than vitamins, macro- and microelements 50 times richer than vitamin E, 10 times richer than vitamin B6, 3-4 times richer than vitamins F and P 4-5 times richer in fatty acids, 2-3 times richer in amino acids, and also contains phosphorus, potassium, magnesium, manganese, calcium, zinc, iron, selenium, copper, vanadium, etc. It is established that the introduction of germinated grain in the diet improves metabolism and blood formation, boosts immunity, replenishes vitamin th and mineral deficiency, stabilizes the acid-base balance, aids in digestion and intensive cleansing the body of toxins. In addition, enzyme systems are activated in the germinated grain, which break down complex substances into simpler, easily absorbed by the human body [1-3]. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 70.92086791992188, - 709.4549560546875, - 527.15966796875, - 749.38232421875 - ], - "text": "Another source of enrichment, which contains a significant amount of nutrients, vitamins, macro- and microelements, enzymes, essential amino acids, is the juice from the green wheat sprouts. It contains chlorophyll, which inhibits the development of cancer, promotes tissue regeneration and stimulates the ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 570.5943603515625, - 147.35826110839844, - 585.884765625 - ], - [ - 70.919921875, - 582.85498046875, - 527.1593017578125, - 711.4623413085938 - ], - [ - 70.92086791992188, - 709.4549560546875, - 527.15966796875, - 749.38232421875 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - } - }, - "page_2": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "2", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "2", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 70.91897583007812, - 111.73517608642578, - 527.2772827148438, - 240.34222412109375 - ], - "text": "production of hemoglobin and red blood cells in case of anemia. Chlorophyll derivatives have an antibacterial effect, have antioxidant activity and help cleanse the body of toxins [4-6]. To enhance the functional effect to the human body and expand the functional products, it is advisable to combine a concentrated product from germinated wheat grains and juice from green wheat sprouts into a complex nutritional supplement, which can later be used in the enrichment of various food products. As an optimal form of food product for enrichment, you can use thick drinks (smoothies) from crushed fruits, vegetables or berries of the same type with the addition of juice, mineral water, ice, etc. The purpose of the work is the development of the technology and formulation of a comprehensive food supplement for the enrichment of drinks using the example of a smoothie with the definition of conditions and shelf life. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.91998291015625, - "X1": 527.15771484375, - "avg_char_width": 5.3257435498500225, - "avg_char_height": 6.326649559868707, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 111.73517608642578, - 527.15771484375, - 139.0625 - ], - "text": "production of hemoglobin and red blood cells in case of anemia. Chlorophyll derivatives have an antibacterial effect, have antioxidant activity and help cleanse the body of toxins [4-6]. ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.91897583007812, - 137.05511474609375, - 527.2772827148438, - 202.30230712890625 - ], - "text": "To enhance the functional effect to the human body and expand the functional products, it is advisable to combine a concentrated product from germinated wheat grains and juice from green wheat sprouts into a complex nutritional supplement, which can later be used in the enrichment of various food products. As an optimal form of food product for enrichment, you can use thick drinks (smoothies) from crushed fruits, vegetables or berries of the same type with the addition of juice, mineral water, ice, etc. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 70.92001342773438, - 200.294921875, - 527.1585083007812, - 240.34222412109375 - ], - "text": "The purpose of the work is the development of the technology and formulation of a comprehensive food supplement for the enrichment of drinks using the example of a smoothie with the definition of conditions and shelf life. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 111.73517608642578, - 527.15771484375, - 139.0625 - ], - [ - 70.91897583007812, - 137.05511474609375, - 527.2772827148438, - 202.30230712890625 - ], - [ - 70.92001342773438, - 200.294921875, - 527.1585083007812, - 240.34222412109375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_5": { - "bbox": [ - 70.91900634765625, - 250.55426025390625, - 527.1585083007812, - 505.3023986816406 - ], - "text": "2. Materials and methods The object of the study was selected concentrate from germinated wheat grains with the following indicators: solids content - (45 ± 0.04)%, protein - (12.4 ± 0.05)%, fats - (1.93 ± 0.003)%, starch - (26.4 ± 0.02)%, fiber - (1.8 ± 0.05)%, sugar - (1.65 ± 0.03)%, ash - (1.03 ± 0.03) %, consistency - homogeneous mass, with small inclusions, without coarse particles; color - beige, with small inclusions of brown; smell - characteristic of a healthy grain of this type; the taste is sweetish, characteristic of a healthy grain of this type [7]. Another object of study was juice from green wheat sprouts with the following indicators: moisture content - (94 ± 0.05)%, sugar - (6.48 ± 0.05)% , ash - (0.09 ± 0.03)%, vitamin C - (5.1 ± 0.02)%, consistency - a homogeneous opaque liquid; color - Homogeneous throughout the mass, saturated dark green; smell - appropriate, herbal; the taste is sweet [8]. To determine the optimal ratio of the concentrated product from germinated wheat grain and juice from green wheat sprouts, experimental preparation was carried out according to 4 variants of formulations. The ratio varied within 30:70; 40:60; 50:50; 60:40. In the finished complex food supplement, organoleptic (on a 5-point scale) and physicochemical parameters (dry matter content, acidity, content of B vitamins and vitamin C) were determined in accordance with the requirements of the standards. The optimization of the ratio of components in a complex food supplement was carried out according to the following criteria: Organoleptic evaluation ( q 1 ), the content of physiologically functional ingredients ( q 2 , q 3 , q 4 ), summarizing them into a total quality factor ( U ). The value of the quality factor ( U ) should be maximum: ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.91999816894531, - "X1": 527.157470703125, - "avg_char_width": 5.424264916600582, - "avg_char_height": 6.316336380807977, - "block_font_type": "Times-Roman", - "block_font_size": 10.583494080437553, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92001342773438, - 250.55426025390625, - 195.5982666015625, - 265.84466552734375 - ], - "text": "2. Materials and methods ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.91900634765625, - 262.81488037109375, - 527.158447265625, - 378.82208251953125 - ], - "text": "The object of the study was selected concentrate from germinated wheat grains with the following indicators: solids content - (45 ± 0.04)%, protein - (12.4 ± 0.05)%, fats - (1.93 ± 0.003)%, starch - (26.4 ± 0.02)%, fiber - (1.8 ± 0.05)%, sugar - (1.65 ± 0.03)%, ash - (1.03 ± 0.03) %, consistency - homogeneous mass, with small inclusions, without coarse particles; color - beige, with small inclusions of brown; smell - characteristic of a healthy grain of this type; the taste is sweetish, characteristic of a healthy grain of this type [7]. Another object of study was juice from green wheat sprouts with the following indicators: moisture content - (94 ± 0.05)%, sugar - (6.48 ± 0.05)% , ash - (0.09 ± 0.03)%, vitamin C - (5.1 ± 0.02)%, consistency - a homogeneous opaque liquid; color - Homogeneous throughout the mass, saturated dark green; smell - appropriate, herbal; the taste is sweet [8]. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 70.91999816894531, - 376.6947326660156, - 527.1580810546875, - 416.7420959472656 - ], - "text": "To determine the optimal ratio of the concentrated product from germinated wheat grain and juice from green wheat sprouts, experimental preparation was carried out according to 4 variants of formulations. The ratio varied within 30:70; 40:60; 50:50; 60:40. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_3": { - "bbox": [ - 70.92001342773438, - 414.61474609375, - 527.1585083007812, - 454.6620788574219 - ], - "text": "In the finished complex food supplement, organoleptic (on a 5-point scale) and physicochemical parameters (dry matter content, acidity, content of B vitamins and vitamin C) were determined in accordance with the requirements of the standards. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_4": { - "bbox": [ - 70.91964721679688, - 452.65472412109375, - 527.1581420898438, - 505.3023986816406 - ], - "text": "The optimization of the ratio of components in a complex food supplement was carried out according to the following criteria: Organoleptic evaluation ( q 1 ), the content of physiologically functional ingredients ( q 2 , q 3 , q 4 ), summarizing them into a total quality factor ( U ). The value of the quality factor ( U ) should be maximum: ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 10.22093448638916, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92001342773438, - 250.55426025390625, - 195.5982666015625, - 265.84466552734375 - ], - [ - 70.91900634765625, - 262.81488037109375, - 527.158447265625, - 378.82208251953125 - ], - [ - 70.91999816894531, - 376.6947326660156, - 527.1580810546875, - 416.7420959472656 - ], - [ - 70.92001342773438, - 414.61474609375, - 527.1585083007812, - 454.6620788574219 - ], - [ - 70.91964721679688, - 452.65472412109375, - 527.1581420898438, - 505.3023986816406 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_6": { - "bbox": [ - 247.6797637939453, - 509.4150390625, - 527.1583251953125, - 525.7728881835938 - ], - "text": "$equations_interline_bboxes$", - "dir": [ - 1.0, - 0.0 - ], - "X0": 247.6797637939453, - "X1": 527.1583251953125, - "avg_char_width": 17.46741008758545, - "avg_char_height": 16.35784912109375, - "block_font_type": "CambriaMath", - "block_font_size": 9.703788333468967, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 247.6797637939453, - 509.4150390625, - 527.1583251953125, - 525.7728881835938 - ], - "text": "� = � � + � � + � � + � � (1) ", - "is_matched": 1, - "font_type": "CambriaMath", - "font_size": 9.703788333468967, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 247.6797637939453, - 509.4150390625, - 527.1583251953125, - 525.7728881835938 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_7": { - "bbox": [ - 70.92019653320312, - 528.375, - 527.158203125, - 582.4623413085938 - ], - "text": "where � � – the estimated coefficient of organoleptic evaluation; � � – estimated coefficient of solids content; � � – estimated coefficient of the content of vitamins of group B; � � – estimated coefficient of vitamin C . The estimated coefficients were determined by the formula: ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 78.00010299682617, - "X1": 440.3982696533203, - "avg_char_width": 5.354437652460648, - "avg_char_height": 6.55999755859375, - "block_font_type": "Times-Roman", - "block_font_size": 10.455831176356265, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92019653320312, - 528.375, - 527.158203125, - 569.8921508789062 - ], - "text": "where � � – the estimated coefficient of organoleptic evaluation; � � – estimated coefficient of solids content; � � – estimated coefficient of the content of vitamins of group B; � � – estimated coefficient of vitamin C . ", - "is_matched": 1, - "font_type": "CambriaMath", - "font_size": 10.4235610432095, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 85.08001708984375, - 567.7349853515625, - 353.6383361816406, - 582.4623413085938 - ], - "text": "The estimated coefficients were determined by the formula: ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92019653320312, - 528.375, - 527.158203125, - 569.8921508789062 - ], - [ - 85.08001708984375, - 567.7349853515625, - 353.6383361816406, - 582.4623413085938 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_8": { - "bbox": [ - 223.43991088867188, - 585.7844848632812, - 527.1583862304688, - 610.4263916015625 - ], - "text": "$equations_interline_bboxes$", - "dir": [ - 1.0, - 0.0 - ], - "X0": 251.7598876953125, - "X1": 268.6517028808594, - "avg_char_width": 10.792428152901786, - "avg_char_height": 3.05755615234375, - "block_font_type": "CambriaMath", - "block_font_size": 9.657103252410888, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 223.43991088867188, - 589.5577392578125, - 250.08006286621094, - 606.026123046875 - ], - "text": "� � = ", - "is_matched": 0, - "font_type": "CambriaMath", - "font_size": 9.151529584612165, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 251.7598876953125, - 585.7844848632812, - 527.1583862304688, - 610.4263916015625 - ], - "text": "� � ��� � � , � = 1 ÷ 4 (2) ", - "is_matched": 1, - "font_type": "CambriaMath", - "font_size": 9.151529584612165, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 223.43991088867188, - 589.5577392578125, - 250.08006286621094, - 606.026123046875 - ], - [ - 251.7598876953125, - 585.7844848632812, - 527.1583862304688, - 610.4263916015625 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_9": { - "bbox": [ - 70.92056274414062, - 613.574951171875, - 527.1592407226562, - 754.7822875976562 - ], - "text": "where � � – significant signs; max � � – corresponding maximum values. The study of the conditions and shelf life of a complex nutritional supplement from a mixture of concentrate from germinated wheat grains and juice from green wheat sprouts was carried out in accordance with TR TS 021/2011 and MUK 4.2. 1847-04 at a temperature of (-18 ± 2) ° С . We used a vacuum packaging machine Profi Cook PC-VK 1015, an intensive cooling chamber PF 031AF CHILLY GN1. The complex nutritional supplement from germinated wheat was packaged in vacuum bags, frozen in an intensive cooling apparatus to -18 ° C inside the product and stored for 48 days. Organoleptic and microbiological indicators of a complex dietary supplement were determined at 3 control points. Statistical processing of the results was carried out using the non-parametric Kolmagorov-Smirnov test in the programs “Statistica 6.1” and “Microsoft Excel”. The difference in the comparison of mean values was considered significant at p <0.05. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.9208984375, - "X1": 527.1588134765625, - "avg_char_width": 5.4521051040764235, - "avg_char_height": 6.3239990234375, - "block_font_type": "Times-Roman", - "block_font_size": 10.721005489951686, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92056274414062, - 613.574951171875, - 527.1592407226562, - 716.8623046875 - ], - "text": "where � � – significant signs; max � � – corresponding maximum values. The study of the conditions and shelf life of a complex nutritional supplement from a mixture of concentrate from germinated wheat grains and juice from green wheat sprouts was carried out in accordance with TR TS 021/2011 and MUK 4.2. 1847-04 at a temperature of (-18 ± 2) ° С . We used a vacuum packaging machine Profi Cook PC-VK 1015, an intensive cooling chamber PF 031AF CHILLY GN1. The complex nutritional supplement from germinated wheat was packaged in vacuum bags, frozen in an intensive cooling apparatus to -18 ° C inside the product and stored for 48 days. Organoleptic and microbiological indicators of a complex dietary supplement were determined at 3 control points. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 10.661813974380493, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92085266113281, - 714.7349243164062, - 527.1590576171875, - 754.7822875976562 - ], - "text": "Statistical processing of the results was carried out using the non-parametric Kolmagorov-Smirnov test in the programs “Statistica 6.1” and “Microsoft Excel”. The difference in the comparison of mean values was considered significant at p <0.05. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92056274414062, - 613.574951171875, - 527.1592407226562, - 716.8623046875 - ], - [ - 70.92085266113281, - 714.7349243164062, - 527.1590576171875, - 754.7822875976562 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - } - }, - "page_3": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "3", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "3", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 70.91996765136719, - 112.07452392578125, - 527.1586303710938, - 164.3824462890625 - ], - "text": "3. Results and discussion A complex nutritional supplement from germinated wheat was prepared by mixing a concentrate from germinated wheat grains and juice from green wheat sprouts in ratios 30:70; 40:60; 50:50; 60: 40, samples are shown in Figure 1. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.91997528076172, - "X1": 370.1979293823242, - "avg_char_width": 5.571070665259578, - "avg_char_height": 6.263427734375, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 112.07452392578125, - 192.59820556640625, - 127.36492156982422 - ], - "text": "3. Results and discussion ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.91996765136719, - 124.33515167236328, - 527.1586303710938, - 164.3824462890625 - ], - "text": "A complex nutritional supplement from germinated wheat was prepared by mixing a concentrate from germinated wheat grains and juice from green wheat sprouts in ratios 30:70; 40:60; 50:50; 60: 40, samples are shown in Figure 1. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 112.07452392578125, - 192.59820556640625, - 127.36492156982422 - ], - [ - 70.91996765136719, - 124.33515167236328, - 527.1586303710938, - 164.3824462890625 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_5": { - "bbox": [ - 70.91996765136719, - 168.37518310546875, - 73.67831420898438, - 183.1025390625 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.91996765136719, - "X1": 73.67831420898438, - "avg_char_width": 0, - "avg_char_height": 14.72735595703125, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 168.37518310546875, - 73.67831420898438, - 183.1025390625 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 1984636 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 168.37518310546875, - 73.67831420898438, - 183.1025390625 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_6": { - "bbox": [ - 70.91938781738281, - 318.7350769042969, - 527.1578979492188, - 475.90240478515625 - ], - "text": " Figure 1. Samples of a comprehensive nutritional supplement with a different ratio of concentrate from germinated wheat grains and juice from green wheat sprouts. An organoleptic assessment of the quality of a complex nutritional supplement from germinated wheat is shown in Figure 2. According to experts, a high overall score (4.8-4.7) was noted in samples of a food supplement containing concentrate from germinated wheat grains and juice from green wheat sprouts in a ratio of 40 : 60 and 50:50. The results of determining the mass fraction of solids are shown in Figure 3. From the data obtained, it can be seen that the solids content increases with a decrease in the juice of green wheat germ in the composition of the complex food supplement. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_7": { - "bbox": [ - 85.07994079589844, - 479.7750549316406, - 87.83828735351562, - 494.5024108886719 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 85.07994079589844, - "X1": 87.83828735351562, - "avg_char_width": 0, - "avg_char_height": 14.72735595703125, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 85.07994079589844, - 479.7750549316406, - 87.83828735351562, - 494.5024108886719 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 85.07994079589844, - 479.7750549316406, - 87.83828735351562, - 494.5024108886719 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_8": { - "bbox": [ - 70.91908264160156, - 640.81494140625, - 527.15771484375, - 759.9423217773438 - ], - "text": " Figure 2. Organoleptic evaluation of a complex nutritional supplement with a different ratio of concentrate from germinated wheat grains of juice from green wheat sprouts ( М ±m) (n=7) Acidity (pH) was determined in the finished samples of a complex food supplement with a different the ratio concentrate from germinated wheat grain and juice from green wheat germ. The results are presented in Figure 4. Figures 5-6 show the results of the content of vitamins in the finished samples of a complex food supplement, from which it can be seen that with a change in the ratio of the components of a complex ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 85.0796127319336, - "X1": 477.35809326171875, - "avg_char_width": 5.446212407119858, - "avg_char_height": 6.525001525878906, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 133.320068359375, - 640.81494140625, - 477.35809326171875, - 672.1647338867188 - ], - "text": " Figure 2. Organoleptic evaluation of a complex nutritional supplement with ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.91908264160156, - 669.375, - 527.15771484375, - 759.9423217773438 - ], - "text": "a different ratio of concentrate from germinated wheat grains of juice from green wheat sprouts ( М ±m) (n=7) Acidity (pH) was determined in the finished samples of a complex food supplement with a different the ratio concentrate from germinated wheat grain and juice from green wheat germ. The results are presented in Figure 4. Figures 5-6 show the results of the content of vitamins in the finished samples of a complex food supplement, from which it can be seen that with a change in the ratio of the components of a complex ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 133.320068359375, - 640.81494140625, - 477.35809326171875, - 672.1647338867188 - ], - [ - 70.91908264160156, - 669.375, - 527.15771484375, - 759.9423217773438 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_9": { - "bbox": [ - 247.55990600585938, - 517.1701049804688, - 260.2879943847656, - 582.090087890625 - ], - "text": "4 4.2 4.4 4.6 4.8 5", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_10": { - "bbox": [ - 251.15989685058594, - 495.5701599121094, - 289.61029052734375, - 517.7701416015625 - ], - "text": "surface condition", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_11": { - "bbox": [ - 324.8398742675781, - 553.89013671875, - 345.34197998046875, - 563.85009765625 - ], - "text": "color", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_12": { - "bbox": [ - 206.99990844726562, - 617.85009765625, - 325.4457092285156, - 627.81005859375 - ], - "text": "smell texture", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_13": { - "bbox": [ - 195.5999298095703, - 553.89013671875, - 215.9152069091797, - 563.85009765625 - ], - "text": "taste", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_14": { - "bbox": [ - 439.31982421875, - 544.5301513671875, - 464.5362243652344, - 554.4901123046875 - ], - "text": " 30:70", - "dir": [ - 1.0, - 0.0 - ], - "X0": 439.31982421875, - "X1": 464.5362243652344, - "avg_char_width": 5.043280029296875, - "avg_char_height": 9.9599609375, - "block_font_type": "Calibri", - "block_font_size": 9.959996223449707, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 439.31982421875, - 544.5301513671875, - 464.5362243652344, - 554.4901123046875 - ], - "text": " 30:70", - "is_matched": 1, - "font_type": "Calibri", - "font_size": 9.959996223449707, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 439.31982421875, - 544.5301513671875, - 464.5362243652344, - 554.4901123046875 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_15": { - "bbox": [ - 439.31982421875, - 562.5301513671875, - 464.5362243652344, - 572.4901123046875 - ], - "text": " 40:60", - "dir": [ - 1.0, - 0.0 - ], - "X0": 439.31982421875, - "X1": 464.5362243652344, - "avg_char_width": 5.043280029296875, - "avg_char_height": 9.9599609375, - "block_font_type": "Calibri", - "block_font_size": 9.959996223449707, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 439.31982421875, - 562.5301513671875, - 464.5362243652344, - 572.4901123046875 - ], - "text": " 40:60", - "is_matched": 1, - "font_type": "Calibri", - "font_size": 9.959996223449707, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 439.31982421875, - 562.5301513671875, - 464.5362243652344, - 572.4901123046875 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_16": { - "bbox": [ - 439.31982421875, - 580.650146484375, - 464.5362243652344, - 590.610107421875 - ], - "text": " 50:50", - "dir": [ - 1.0, - 0.0 - ], - "X0": 439.31982421875, - "X1": 464.5362243652344, - "avg_char_width": 5.043280029296875, - "avg_char_height": 9.9599609375, - "block_font_type": "Calibri", - "block_font_size": 9.959996223449707, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 439.31982421875, - 580.650146484375, - 464.5362243652344, - 590.610107421875 - ], - "text": " 50:50", - "is_matched": 1, - "font_type": "Calibri", - "font_size": 9.959996223449707, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 439.31982421875, - 580.650146484375, - 464.5362243652344, - 590.610107421875 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_17": { - "bbox": [ - 439.31982421875, - 598.7701416015625, - 464.5362243652344, - 608.7301025390625 - ], - "text": " 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 439.31982421875, - "X1": 464.5362243652344, - "avg_char_width": 5.043280029296875, - "avg_char_height": 9.9599609375, - "block_font_type": "Calibri", - "block_font_size": 9.959996223449707, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 439.31982421875, - 598.7701416015625, - 464.5362243652344, - 608.7301025390625 - ], - "text": " 60:40", - "is_matched": 1, - "font_type": "Calibri", - "font_size": 9.959996223449707, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 439.31982421875, - 598.7701416015625, - 464.5362243652344, - 608.7301025390625 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - } - }, - "page_4": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "4", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "4", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 70.91996765136719, - 111.73517608642578, - 527.1588745117188, - 227.62225341796875 - ], - "text": "food supplement, the vitamin composition changes depending on which component prevails in larger quantities. The juice from green wheat sprouts contains vitamin C, and the concentrate from germinated wheat grains contains B vitamins, therefore, with an increase in the concentrate from germinated wheat grains in the complex nutritional supplement, the content of vitamin C decreases, and the content of B vitamins, on the contrary, increases. Organoleptic indicators, solids content, vitamin C and group B vitamins acted as criteria for optimizing the formulation of a complex nutritional supplement. The dependence of quality criteria on the mass fraction of components is presented in Figure 7. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.92045593261719, - "X1": 527.1585083007812, - "avg_char_width": 5.257905702035041, - "avg_char_height": 6.322482585906982, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 111.73517608642578, - 527.1587524414062, - 177.1024169921875 - ], - "text": "food supplement, the vitamin composition changes depending on which component prevails in larger quantities. The juice from green wheat sprouts contains vitamin C, and the concentrate from germinated wheat grains contains B vitamins, therefore, with an increase in the concentrate from germinated wheat grains in the complex nutritional supplement, the content of vitamin C decreases, and the content of B vitamins, on the contrary, increases. ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92045593261719, - 174.9749755859375, - 527.1588745117188, - 215.02227783203125 - ], - "text": "Organoleptic indicators, solids content, vitamin C and group B vitamins acted as criteria for optimizing the formulation of a complex nutritional supplement. The dependence of quality criteria on the mass fraction of components is presented in Figure 7. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 85.0809555053711, - 212.8948974609375, - 87.83930206298828, - 227.62225341796875 - ], - "text": " ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 111.73517608642578, - 527.1587524414062, - 177.1024169921875 - ], - [ - 70.92045593261719, - 174.9749755859375, - 527.1588745117188, - 215.02227783203125 - ], - [ - 85.0809555053711, - 212.8948974609375, - 87.83930206298828, - 227.62225341796875 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_5": { - "bbox": [ - 299.7598876953125, - 350.16021728515625, - 302.2542419433594, - 361.2002258300781 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 299.7598876953125, - "X1": 302.2542419433594, - "avg_char_width": 0, - "avg_char_height": 11.040008544921875, - "block_font_type": "Calibri", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 299.7598876953125, - 350.16021728515625, - 302.2542419433594, - 361.2002258300781 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 299.7598876953125, - 350.16021728515625, - 302.2542419433594, - 361.2002258300781 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_6": { - "bbox": [ - 336.83984375, - 229.44021606445312, - 339.3341979980469, - 240.48020935058594 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 336.83984375, - "X1": 339.3341979980469, - "avg_char_width": 0, - "avg_char_height": 11.039993286132812, - "block_font_type": "Calibri", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 336.83984375, - 229.44021606445312, - 339.3341979980469, - 240.48020935058594 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 336.83984375, - 229.44021606445312, - 339.3341979980469, - 240.48020935058594 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_7": { - "bbox": [ - 350.9998474121094, - 246.97509765625, - 533.1582641601562, - 337.54229736328125 - ], - "text": "Figure 3. Mass fraction of solids in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 350.9998474121094, - "X1": 533.1580810546875, - "avg_char_width": 5.7536008673501255, - "avg_char_height": 6.319986979166667, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 350.9998474121094, - 246.97509765625, - 533.1582641601562, - 337.54229736328125 - ], - "text": "Figure 3. Mass fraction of solids in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 350.9998474121094, - 246.97509765625, - 533.1582641601562, - 337.54229736328125 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_8": { - "bbox": [ - 296.0398864746094, - 479.16015625, - 298.53424072265625, - 490.2001647949219 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 296.0398864746094, - "X1": 298.53424072265625, - "avg_char_width": 0, - "avg_char_height": 11.040008544921875, - "block_font_type": "Calibri", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 296.0398864746094, - 479.16015625, - 298.53424072265625, - 490.2001647949219 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 296.0398864746094, - 479.16015625, - 298.53424072265625, - 490.2001647949219 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_9": { - "bbox": [ - 336.83984375, - 360.6001892089844, - 339.3341979980469, - 371.64019775390625 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 336.83984375, - "X1": 339.3341979980469, - "avg_char_width": 0, - "avg_char_height": 11.040008544921875, - "block_font_type": "Calibri", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 336.83984375, - 360.6001892089844, - 339.3341979980469, - 371.64019775390625 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 336.83984375, - 360.6001892089844, - 339.3341979980469, - 371.64019775390625 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_10": { - "bbox": [ - 350.9998474121094, - 377.0550537109375, - 533.1582641601562, - 467.6224060058594 - ], - "text": "Figure 4. Acidity in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 350.9998474121094, - "X1": 533.1581420898438, - "avg_char_width": 5.6485009641212445, - "avg_char_height": 6.319999694824219, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 350.9998474121094, - 377.0550537109375, - 533.1582641601562, - 467.6224060058594 - ], - "text": "Figure 4. Acidity in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 350.9998474121094, - 377.0550537109375, - 533.1582641601562, - 467.6224060058594 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_11": { - "bbox": [ - 297.4798889160156, - 615.7201538085938, - 299.9742431640625, - 626.7601318359375 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 297.4798889160156, - "X1": 299.9742431640625, - "avg_char_width": 0, - "avg_char_height": 11.03997802734375, - "block_font_type": "Calibri,Bold", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 297.4798889160156, - 615.7201538085938, - 299.9742431640625, - 626.7601318359375 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri,Bold", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 297.4798889160156, - 615.7201538085938, - 299.9742431640625, - 626.7601318359375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 1 - }, - "block_12": { - "bbox": [ - 336.83984375, - 489.60015869140625, - 339.3341979980469, - 500.6401672363281 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 336.83984375, - "X1": 339.3341979980469, - "avg_char_width": 0, - "avg_char_height": 11.040008544921875, - "block_font_type": "Calibri", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 336.83984375, - 489.60015869140625, - 339.3341979980469, - 500.6401672363281 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 336.83984375, - 489.60015869140625, - 339.3341979980469, - 500.6401672363281 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_13": { - "bbox": [ - 350.9998474121094, - 509.7750244140625, - 533.1581420898438, - 601.124755859375 - ], - "text": "Figure 5. Vitamin C content in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 350.9998474121094, - "X1": 533.1580810546875, - "avg_char_width": 5.882016200957435, - "avg_char_height": 6.329996744791667, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 350.9998474121094, - 509.7750244140625, - 533.1581420898438, - 601.124755859375 - ], - "text": "Figure 5. Vitamin C content in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 350.9998474121094, - 509.7750244140625, - 533.1581420898438, - 601.124755859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_14": { - "bbox": [ - 150.83993530273438, - 282.2102355957031, - 156.0728302001953, - 292.17022705078125 - ], - "text": "d", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_15": { - "bbox": [ - 190.07992553710938, - 263.2502746582031, - 233.35279846191406, - 276.69024658203125 - ], - "text": "c b", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_16": { - "bbox": [ - 266.9998779296875, - 243.69027709960938, - 271.770751953125, - 253.65028381347656 - ], - "text": "a", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_17": { - "bbox": [ - 119.87995147705078, - 328.770263671875, - 124.92803955078125, - 338.7302551269531 - ], - "text": "0", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_18": { - "bbox": [ - 114.83995819091797, - 305.0102844238281, - 124.92967224121094, - 314.97027587890625 - ], - "text": "10", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_19": { - "bbox": [ - 114.83995819091797, - 281.2502746582031, - 124.92967224121094, - 291.21026611328125 - ], - "text": "20", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_20": { - "bbox": [ - 114.83995819091797, - 257.4902648925781, - 124.92967224121094, - 267.45025634765625 - ], - "text": "30", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_21": { - "bbox": [ - 114.83995819091797, - 233.73025512695312, - 124.92967224121094, - 243.6902618408203 - ], - "text": "40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 114.83995819091797, - "X1": 124.92967224121094, - "avg_char_width": 5.044857025146484, - "avg_char_height": 9.960006713867188, - "block_font_type": "Calibri", - "block_font_size": 9.959996223449707, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 114.83995819091797, - 233.73025512695312, - 124.92967224121094, - 243.6902618408203 - ], - "text": "40", - "is_matched": 1, - "font_type": "Calibri", - "font_size": 9.959996223449707, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 114.83995819091797, - 233.73025512695312, - 124.92967224121094, - 243.6902618408203 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_22": { - "bbox": [ - 140.87994384765625, - 341.8502197265625, - 282.166259765625, - 351.8102111816406 - ], - "text": " 30:70 40:60 50:50 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_23": { - "bbox": [ - 87.76172637939453, - 238.9506072998047, - 113.07632446289062, - 338.52020263671875 - ], - "text": "mass fraction of solids, %", - "dir": [ - 0.0, - -1.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_24": { - "bbox": [ - 146.99993896484375, - 414.3301696777344, - 152.2328338623047, - 424.2901611328125 - ], - "text": "d", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_25": { - "bbox": [ - 185.63992309570312, - 377.1301574707031, - 190.87281799316406, - 387.09014892578125 - ], - "text": "b", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_26": { - "bbox": [ - 224.87991333007812, - 403.170166015625, - 229.0915069580078, - 413.1301574707031 - ], - "text": "c", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_27": { - "bbox": [ - 263.2798767089844, - 369.8101501464844, - 268.0507507324219, - 379.7701416015625 - ], - "text": "a", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_28": { - "bbox": [ - 103.3199462890625, - 457.7701110839844, - 121.08689880371094, - 467.7301025390625 - ], - "text": "7.25", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_29": { - "bbox": [ - 108.35994720458984, - 439.17010498046875, - 120.96527099609375, - 449.1300964355469 - ], - "text": "7.3", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_30": { - "bbox": [ - 103.3199462890625, - 420.69012451171875, - 121.08689880371094, - 430.6501159667969 - ], - "text": "7.35", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_31": { - "bbox": [ - 108.35994720458984, - 402.0901184082031, - 120.96527099609375, - 412.05010986328125 - ], - "text": "7.4", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_32": { - "bbox": [ - 103.3199462890625, - 383.4901123046875, - 121.08689880371094, - 393.4501037597656 - ], - "text": "7.45", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_33": { - "bbox": [ - 108.35994720458984, - 365.0101013183594, - 120.96527099609375, - 374.9700927734375 - ], - "text": "7.5", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_34": { - "bbox": [ - 137.03993225097656, - 470.8500671386719, - 278.3262939453125, - 480.81005859375 - ], - "text": " 30:70 40:60 50:50 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_35": { - "bbox": [ - 87.76172637939453, - 409.4913330078125, - 101.55632781982422, - 422.76019287109375 - ], - "text": "pH", - "dir": [ - 0.0, - -1.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_36": { - "bbox": [ - 136.3199462890625, - 501.5701599121094, - 225.3715057373047, - 531.93017578125 - ], - "text": "a b c", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_37": { - "bbox": [ - 262.79986572265625, - 559.170166015625, - 268.0327453613281, - 569.130126953125 - ], - "text": "d", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_38": { - "bbox": [ - 103.3199462890625, - 594.3302001953125, - 108.36802673339844, - 604.2901611328125 - ], - "text": "0", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_39": { - "bbox": [ - 103.3199462890625, - 577.5302124023438, - 108.36802673339844, - 587.4901733398438 - ], - "text": "1", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_40": { - "bbox": [ - 103.3199462890625, - 560.8502197265625, - 108.36802673339844, - 570.8101806640625 - ], - "text": "2", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_41": { - "bbox": [ - 103.3199462890625, - 544.1702270507812, - 108.36802673339844, - 554.1301879882812 - ], - "text": "3", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_42": { - "bbox": [ - 103.3199462890625, - 527.3702392578125, - 108.36802673339844, - 537.3302001953125 - ], - "text": "4", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_43": { - "bbox": [ - 103.3199462890625, - 510.6902160644531, - 108.36802673339844, - 520.6502075195312 - ], - "text": "5", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_44": { - "bbox": [ - 103.3199462890625, - 494.01025390625, - 108.36802673339844, - 503.9702453613281 - ], - "text": "6", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_45": { - "bbox": [ - 126.11994171142578, - 607.2902221679688, - 278.0862121582031, - 617.2501831054688 - ], - "text": " 30:70 40:60 50:50 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_46": { - "bbox": [ - 87.76172637939453, - 501.900146484375, - 101.55632781982422, - 596.5201416015625 - ], - "text": "vitamin C content, mg", - "dir": [ - 0.0, - -1.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - } - }, - "page_5": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "5", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "5", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 136.07901000976562, - 249.4951171875, - 473.2773132324219, - 318.1024169921875 - ], - "text": " Figure 6. The content of B vitamins in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 136.07904052734375, - "X1": 473.2771911621094, - "avg_char_width": 5.5000058911973575, - "avg_char_height": 6.734992980957031, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 136.07901000976562, - 249.4951171875, - 473.2773132324219, - 318.1024169921875 - ], - "text": " Figure 6. The content of B vitamins in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 136.07901000976562, - 249.4951171875, - 473.2773132324219, - 318.1024169921875 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_5": { - "bbox": [ - 136.07901000976562, - 322.09503173828125, - 138.8373565673828, - 336.8223876953125 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 136.07901000976562, - "X1": 138.8373565673828, - "avg_char_width": 0, - "avg_char_height": 14.72735595703125, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 136.07901000976562, - 322.09503173828125, - 138.8373565673828, - 336.8223876953125 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 136.07901000976562, - 322.09503173828125, - 138.8373565673828, - 336.8223876953125 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_6": { - "bbox": [ - 136.0785675048828, - 429.0149841308594, - 473.2770080566406, - 497.6223449707031 - ], - "text": " Figure 7. The total quality factor of a comprehensive nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_7": { - "bbox": [ - 136.07858276367188, - 501.614990234375, - 138.83692932128906, - 516.3423461914062 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 136.07858276367188, - "X1": 138.83692932128906, - "avg_char_width": 0, - "avg_char_height": 14.72735595703125, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 136.07858276367188, - 501.614990234375, - 138.83692932128906, - 516.3423461914062 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 136.07858276367188, - 501.614990234375, - 138.83692932128906, - 516.3423461914062 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_8": { - "bbox": [ - 76.55996704101562, - 514.2149658203125, - 521.517822265625, - 541.5423583984375 - ], - "text": "Table 1. Organoleptic characteristics of a complex nutritional supplement from germinated wheat at control points, ( М ±m) (n=7) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_9": { - "bbox": [ - 107.51995086669922, - 546.312255859375, - 513.0884399414062, - 571.1188354492188 - ], - "text": "Indicators Characteristic Total score (5 point system) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_10": { - "bbox": [ - 86.51995849609375, - 569.832275390625, - 473.84881591796875, - 583.118896484375 - ], - "text": "Packaging condition Remained airtight ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_11": { - "bbox": [ - 92.03996276855469, - 581.3522338867188, - 491.6080627441406, - 594.6388549804688 - ], - "text": "Surface condition Homogeneous mass, with small inclusions 4.9±0.02 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_12": { - "bbox": [ - 115.79829406738281, - 602.8322143554688, - 491.6072692871094, - 627.6388549804688 - ], - "text": "Color Green, with small inclusions of beige 4.8±0.01 Smell Peculiar to this type, wheat grass 4.9±0.03 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_13": { - "bbox": [ - 111.95814514160156, - 635.8322143554688, - 491.6063232421875, - 729.518798828125 - ], - "text": "Taste Sweetish, typical for this type, with a wheat flavor 4.8±0.01 Texture Homogeneous, without coarse particles 4.9±0.02 12 days identically 30 days identically 48 days identically ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_14": { - "bbox": [ - 85.07996368408203, - 728.054931640625, - 87.83831024169922, - 742.7822875976562 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 85.07996368408203, - "X1": 87.83831024169922, - "avg_char_width": 0, - "avg_char_height": 14.72735595703125, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 85.07996368408203, - 728.054931640625, - 87.83831024169922, - 742.7822875976562 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 85.07996368408203, - 728.054931640625, - 87.83831024169922, - 742.7822875976562 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_15": { - "bbox": [ - 221.03990173339844, - 127.53024291992188, - 405.2107238769531, - 170.8502960205078 - ], - "text": "d c b a", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_16": { - "bbox": [ - 234.3599090576172, - 152.13021850585938, - 418.217529296875, - 174.4502716064453 - ], - "text": "C B A B d", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_17": { - "bbox": [ - 307.6799011230469, - 124.05020141601562, - 431.2408752441406, - 144.09022521972656 - ], - "text": "c a b", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_18": { - "bbox": [ - 192.95994567871094, - 207.33016967773438, - 198.00802612304688, - 217.29017639160156 - ], - "text": "0", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_19": { - "bbox": [ - 180.2399444580078, - 189.93014526367188, - 198.00686645507812, - 199.89015197753906 - ], - "text": "0.05", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_20": { - "bbox": [ - 185.27993774414062, - 172.41018676757812, - 197.88523864746094, - 182.3701934814453 - ], - "text": "0.1", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_21": { - "bbox": [ - 180.2399444580078, - 154.89016723632812, - 198.00686645507812, - 164.8501739501953 - ], - "text": "0.15", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_22": { - "bbox": [ - 185.27993774414062, - 137.37014770507812, - 197.88523864746094, - 147.3301544189453 - ], - "text": "0.2", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_23": { - "bbox": [ - 180.2399444580078, - 119.85012817382812, - 198.00686645507812, - 129.8101348876953 - ], - "text": "0.25", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_24": { - "bbox": [ - 224.39993286132812, - 220.41006469726562, - 428.0860290527344, - 230.3700714111328 - ], - "text": " 30:70 40:60 50:50 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_25": { - "bbox": [ - 164.6816864013672, - 127.74076843261719, - 178.47628784179688, - 236.6402587890625 - ], - "text": "content of B vitamins, mg", - "dir": [ - 0.0, - -1.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_26": { - "bbox": [ - 226.43991088867188, - 241.41024780273438, - 397.07958984375, - 251.37025451660156 - ], - "text": "vitamin В1 vitamin В2 vitamin В6", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_27": { - "bbox": [ - 226.1999053955078, - 376.6501770019531, - 230.4114990234375, - 386.61016845703125 - ], - "text": "c", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_28": { - "bbox": [ - 289.79986572265625, - 342.9302062988281, - 357.5707092285156, - 354.4501953125 - ], - "text": "a a", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_29": { - "bbox": [ - 415.559814453125, - 363.0901794433594, - 420.7926940917969, - 373.0501708984375 - ], - "text": "b", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_30": { - "bbox": [ - 175.7999267578125, - 410.9701843261719, - 188.4052276611328, - 420.93017578125 - ], - "text": "2.8", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_31": { - "bbox": [ - 183.35992431640625, - 393.93017578125, - 188.4080047607422, - 403.8901672363281 - ], - "text": "3", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_32": { - "bbox": [ - 175.7999267578125, - 376.8901672363281, - 188.4052276611328, - 386.85015869140625 - ], - "text": "3.2", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_33": { - "bbox": [ - 175.7999267578125, - 359.85015869140625, - 188.4052276611328, - 369.8101501464844 - ], - "text": "3.4", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_34": { - "bbox": [ - 175.7999267578125, - 342.8101806640625, - 188.4052276611328, - 352.7701721191406 - ], - "text": "3.6", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_35": { - "bbox": [ - 216.59991455078125, - 423.9301452636719, - 430.8460998535156, - 433.89013671875 - ], - "text": " 30:70 40:60 50:50 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_36": { - "bbox": [ - 160.24168395996094, - 350.58013916015625, - 174.03628540039062, - 414.7201843261719 - ], - "text": "criteria quality", - "dir": [ - 0.0, - -1.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - } - }, - "page_6": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "6", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "6", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 70.92044067382812, - 111.73517608642578, - 527.1589965820312, - 265.9022216796875 - ], - "text": "Based on the results obtained, it is seen that the best results are observed in samples of a complex food supplement with a concentrate from germinated wheat grains and juice from wheat germ in ratios 40:60 and 50:50. Since organoleptic indices and the safety of vitamin C are greater when the ratio of the concentrate of germinated wheat grains and juice from green wheat sprouts is 40:60, this ratio was chosen optimal for obtaining a comprehensive nutritional supplement from germinated wheat. To prevent spoilage, a complex food supplement with a ratio of concentrate from germinated wheat and juice from green wheat germ - 40:60, was Packed in a polymer film using a vacuum packaging machine Profi Cook PC-VK 1015, then frozen in an intensive cooling chamber PF 031AF CHILLY GN1. Ready packaged and frozen complex food supplement was stored for 48 days at a temperature of (-18 ± 2) ℃ . To control the quality of the complex nutritional supplement and establish the shelf life, three control points were established (12; 30 and 48 days), in which organoleptic and microbiological parameters were determined (Table 1 - 2). ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.92045593261719, - "X1": 527.1582641601562, - "avg_char_width": 5.470729542810218, - "avg_char_height": 6.338167710737749, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92044067382812, - 111.73517608642578, - 527.1589965820312, - 177.1024169921875 - ], - "text": "Based on the results obtained, it is seen that the best results are observed in samples of a complex food supplement with a concentrate from germinated wheat grains and juice from wheat germ in ratios 40:60 and 50:50. Since organoleptic indices and the safety of vitamin C are greater when the ratio of the concentrate of germinated wheat grains and juice from green wheat sprouts is 40:60, this ratio was chosen optimal for obtaining a comprehensive nutritional supplement from germinated wheat. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92044067382812, - 174.9749755859375, - 527.1588745117188, - 265.9022216796875 - ], - "text": "To prevent spoilage, a complex food supplement with a ratio of concentrate from germinated wheat and juice from green wheat germ - 40:60, was Packed in a polymer film using a vacuum packaging machine Profi Cook PC-VK 1015, then frozen in an intensive cooling chamber PF 031AF CHILLY GN1. Ready packaged and frozen complex food supplement was stored for 48 days at a temperature of (-18 ± 2) ℃ . To control the quality of the complex nutritional supplement and establish the shelf life, three control points were established (12; 30 and 48 days), in which organoleptic and microbiological parameters were determined (Table 1 - 2). ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92044067382812, - 111.73517608642578, - 527.1589965820312, - 177.1024169921875 - ], - [ - 70.92044067382812, - 174.9749755859375, - 527.1588745117188, - 265.9022216796875 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_5": { - "bbox": [ - 76.79997253417969, - 269.775146484375, - 504.83807373046875, - 285.1649169921875 - ], - "text": "Table 2. Microbiological indicators of a complex nutritional supplement from germinated wheat ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 76.79997253417969, - "X1": 504.83807373046875, - "avg_char_width": 5.219976843857184, - "avg_char_height": 15.3897705078125, - "block_font_type": "Times-Bold", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 76.79997253417969, - 269.775146484375, - 504.83807373046875, - 285.1649169921875 - ], - "text": "Table 2. Microbiological indicators of a complex nutritional supplement from germinated wheat ", - "is_matched": 1, - "font_type": "Times-Bold", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 76.79997253417969, - 269.775146484375, - 504.83807373046875, - 285.1649169921875 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 1 - }, - "block_6": { - "bbox": [ - 76.79997253417969, - 293.9523620605469, - 502.4080810546875, - 307.239013671875 - ], - "text": "Name of indicators Test results after storage Valid levels ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_7": { - "bbox": [ - 76.79997253417969, - 305.9523620605469, - 454.40777587890625, - 319.239013671875 - ], - "text": " 12 days 30 days 48 days ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_8": { - "bbox": [ - 76.79977416992188, - 317.3523864746094, - 520.8880004882812, - 376.7189025878906 - ], - "text": "QMAFAM, CFU / g <5•10 4 <5•10 4 <5•10 4 no more than 5•10 4 Escherichia coli bacteria in 0,1 g not detected not detected not detected not allowed Pathogenic, including salmonella in 25 g not detected not detected not detected not allowed ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_9": { - "bbox": [ - 76.79977416992188, - 374.832275390625, - 519.6874389648438, - 388.1189270019531 - ], - "text": "Mold, CFU / g < 50 < 50 < 50 no more than 50 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_10": { - "bbox": [ - 70.92071533203125, - 392.6550598144531, - 527.15869140625, - 496.182373046875 - ], - "text": " After 48 days of storage at a temperature of (-18 ± 2) ℃ , the organoleptic characteristics of the complex nutritional supplement from germinated wheat are high and meet the requirements of TR TS 021/2011. Microbiological indicators at the control points during storage and before vacuum packaging are identical, while the packaging has remained airtight. Table 3. Evaluation of the nutritional value of a comprehensive nutritional supplement from germinated wheat (100 g) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 82.919677734375, - "X1": 406.1984558105469, - "avg_char_width": 5.317960289363293, - "avg_char_height": 6.342854091099331, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 85.07996368408203, - 392.6550598144531, - 87.83831024169922, - 407.3824157714844 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92071533203125, - 405.49505615234375, - 527.15869140625, - 470.8623962402344 - ], - "text": "After 48 days of storage at a temperature of (-18 ± 2) ℃ , the organoleptic characteristics of the complex nutritional supplement from germinated wheat are high and meet the requirements of TR TS 021/2011. Microbiological indicators at the control points during storage and before vacuum packaging are identical, while the packaging has remained airtight. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 82.91939544677734, - 468.7350158691406, - 492.23779296875, - 496.182373046875 - ], - "text": "Table 3. Evaluation of the nutritional value of a comprehensive nutritional supplement from germinated wheat (100 g) ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 85.07996368408203, - 392.6550598144531, - 87.83831024169922, - 407.3824157714844 - ], - [ - 70.92071533203125, - 405.49505615234375, - 527.15869140625, - 470.8623962402344 - ], - [ - 82.91939544677734, - 468.7350158691406, - 492.23779296875, - 496.182373046875 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_11": { - "bbox": [ - 152.27993774414062, - 500.8322448730469, - 509.7281188964844, - 525.6388549804688 - ], - "text": "Indicator Value Daily requirement, mg, g / day, MR 2.3.1.2432-08 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_12": { - "bbox": [ - 82.91996002197266, - 524.3522338867188, - 460.7680969238281, - 537.6388549804688 - ], - "text": "Protein, g 4.96 74/89±0.50 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_13": { - "bbox": [ - 97.07996368408203, - 536.8881225585938, - 454.05010986328125, - 549.2100830078125 - ], - "text": "% of daily requirement 6.3/5.57 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_14": { - "bbox": [ - 82.91996002197266, - 547.9922485351562, - 454.40814208984375, - 572.9700927734375 - ], - "text": "Fiber, g 0.72 20±0.10 % of daily requirement 3.6 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_15": { - "bbox": [ - 82.91996002197266, - 571.7522583007812, - 454.4081726074219, - 596.7301025390625 - ], - "text": "Vitamin C, mg 4.3 90±0.15 % of daily requirement 4.7 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_16": { - "bbox": [ - 82.91996002197266, - 595.3922729492188, - 455.7281188964844, - 620.3701171875 - ], - "text": "Vitamin B 1 , mg 0.13 1.5±0.05 % of daily requirement 8.6 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_17": { - "bbox": [ - 82.91996002197266, - 619.1522216796875, - 455.7286376953125, - 644.1300659179688 - ], - "text": "Vitamin B 2 , mg 0.1 1.8±0.02 % of daily requirement 5.55 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_18": { - "bbox": [ - 82.91996002197266, - 642.9122314453125, - 451.8878173828125, - 667.7700805664062 - ], - "text": "Vitamin B 6 , mg 0.17 2±0.03 % of daily requirement 8.5 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_19": { - "bbox": [ - 82.91996002197266, - 666.5521850585938, - 460.7685546875, - 691.530029296875 - ], - "text": "Iron, mg 1.5 18/10±0.09 % of daily requirement 8.3/15 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_20": { - "bbox": [ - 82.91996002197266, - 690.3121948242188, - 456.9282531738281, - 715.1700439453125 - ], - "text": "Magnesium, mg 50.87 400±0.75 % of daily requirement 12.7 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_21": { - "bbox": [ - 82.91996002197266, - 713.9522094726562, - 459.4477844238281, - 738.9300537109375 - ], - "text": "Potassium, mg 128.4 2500±0.80 % of daily requirement 5.1 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - } - }, - "page_7": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "7", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "7", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 70.91949462890625, - 111.73517608642578, - 527.1599731445312, - 303.8221435546875 - ], - "text": "Thus, taking into account k = 1.2 (MUK 4.2. 1847-04), the shelf life of the frozen complex nutritional supplement from germinated wheat packed in a vacuum bag was taken 40 days at a controlled temperature of -18 ± 2 ℃ , air humidity 75%. Evaluation of the nutritional value of a comprehensive nutritional supplement from germinated wheat was carried out for men and women of the III group of physical activity and the age group of 30-39 years (MR 2.3.1.2432-08). Table 3 shows the level of satisfaction of the daily needs of the human body for basic nutrients due to 100 g of a complex nutritional supplement from germinated wheat. The results of the study showed that a complex nutritional supplement from germinated wheat has a high nutritional value, is safe by microbiological indicators and can be used as an additive to various thick drinks (smoothies). An example of the use of the obtained complex nutritional supplement can be a formulation with the following ratio of ingredients (complex nutritional supplement: fresh apple: banana: ice or mineral water - 30: 30: 30: 10). The testing of beverage formulations using a complex nutritional supplement from germinated wheat was carried out at the company MAMA FLORA LLC under the direction of director T. B. Bronnikov. As a result, the product received high consumer reviews and can be used to produce drinks (smoothies) of high nutritional value. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.9210205078125, - "X1": 527.1588134765625, - "avg_char_width": 5.445645313822755, - "avg_char_height": 6.334271839686802, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91949462890625, - 111.73517608642578, - 527.1572875976562, - 152.02252197265625 - ], - "text": "Thus, taking into account k = 1.2 (MUK 4.2. 1847-04), the shelf life of the frozen complex nutritional supplement from germinated wheat packed in a vacuum bag was taken 40 days at a controlled temperature of -18 ± 2 ℃ , air humidity 75%. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92002868652344, - 149.8951416015625, - 527.1588134765625, - 202.662353515625 - ], - "text": "Evaluation of the nutritional value of a comprehensive nutritional supplement from germinated wheat was carried out for men and women of the III group of physical activity and the age group of 30-39 years (MR 2.3.1.2432-08). Table 3 shows the level of satisfaction of the daily needs of the human body for basic nutrients due to 100 g of a complex nutritional supplement from germinated wheat. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 70.92100524902344, - 200.53497314453125, - 527.1599731445312, - 303.8221435546875 - ], - "text": "The results of the study showed that a complex nutritional supplement from germinated wheat has a high nutritional value, is safe by microbiological indicators and can be used as an additive to various thick drinks (smoothies). An example of the use of the obtained complex nutritional supplement can be a formulation with the following ratio of ingredients (complex nutritional supplement: fresh apple: banana: ice or mineral water - 30: 30: 30: 10). The testing of beverage formulations using a complex nutritional supplement from germinated wheat was carried out at the company MAMA FLORA LLC under the direction of director T. B. Bronnikov. As a result, the product received high consumer reviews and can be used to produce drinks (smoothies) of high nutritional value. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91949462890625, - 111.73517608642578, - 527.1572875976562, - 152.02252197265625 - ], - [ - 70.92002868652344, - 149.8951416015625, - 527.1588134765625, - 202.662353515625 - ], - [ - 70.92100524902344, - 200.53497314453125, - 527.1599731445312, - 303.8221435546875 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_5": { - "bbox": [ - 70.92001342773438, - 314.0341796875, - 527.1600952148438, - 454.90240478515625 - ], - "text": "4. Conclusions As a result of the studies, the obtained complex nutritional supplement from germinated wheat has the following optimal ratio of concentrate from germinated wheat grain and juice from green wheat sprouts equal to 40:60. The complex nutritional supplement from germinated wheat has high organoleptic characteristics, is safe by microbiological indicators. The shelf life of a complex nutritional supplement of germinated wheat in a vacuum package frozen at an adjustable temperature of -18 ± 2 ° C, air humidity of 75% is 40 days. The use of 100 g of a complex nutritional supplement from germinated wheat satisfies the daily need of the human body for protein by 6.3-5.57%, fiber - 3.6%, vitamin C - 4.7%, vitamin B 1 - 8.6%, B 2 - 5.55%, B 6 - 8.5%, in iron - 8.3-15%, magnesium - 12.7%, potassium - 5.1%, which indicates a high nutritional value of the product. This complex nutritional supplement can be used in the catering system in order to obtain drinks (smoothies) and other products of high nutritional value. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.9219970703125, - "X1": 527.1593017578125, - "avg_char_width": 5.341250471444055, - "avg_char_height": 6.30704345703125, - "block_font_type": "Times-Roman", - "block_font_size": 10.316906143637265, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92201232910156, - 314.0341796875, - 144.2403106689453, - 329.3245849609375 - ], - "text": "4. Conclusions ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 10.271919429302216, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92001342773438, - 326.414794921875, - 527.1600952148438, - 454.90240478515625 - ], - "text": "As a result of the studies, the obtained complex nutritional supplement from germinated wheat has the following optimal ratio of concentrate from germinated wheat grain and juice from green wheat sprouts equal to 40:60. The complex nutritional supplement from germinated wheat has high organoleptic characteristics, is safe by microbiological indicators. The shelf life of a complex nutritional supplement of germinated wheat in a vacuum package frozen at an adjustable temperature of -18 ± 2 ° C, air humidity of 75% is 40 days. The use of 100 g of a complex nutritional supplement from germinated wheat satisfies the daily need of the human body for protein by 6.3-5.57%, fiber - 3.6%, vitamin C - 4.7%, vitamin B 1 - 8.6%, B 2 - 5.55%, B 6 - 8.5%, in iron - 8.3-15%, magnesium - 12.7%, potassium - 5.1%, which indicates a high nutritional value of the product. This complex nutritional supplement can be used in the catering system in order to obtain drinks (smoothies) and other products of high nutritional value. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 10.271919429302216, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92201232910156, - 314.0341796875, - 144.2403106689453, - 329.3245849609375 - ], - [ - 70.92001342773438, - 326.414794921875, - 527.1600952148438, - 454.90240478515625 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - }, - "block_6": { - "bbox": [ - 70.91970825195312, - 465.2344055175781, - 527.160400390625, - 750.4622802734375 - ], - "text": "References [1] Mujoriya R 2011 A study on wheat grass and its nutritional value Food science and Quality Management 2 [2] Singh N, Verma P and Pandey B R 2012 Therapeutic Potential of Organic Triticum aestivum Linn. (Wheat Grass) in Prevention and Treatment of Chronic Diseases, an Overview International Journal of Pharmaceutical Sciences and Drug Research 4 (1) 10-4 [3] Antset V U and Vitchuk N A 2017 Methods of qualimetric assessment of the quality of production processes News of TulSU . Technical science 8-1 324-30 [4] Lai C N 1978 Inhibition of in vitro metabolic activation of carcinogens by wheat sprout extracts Nutrition and Cancer 1 (1) 27–30 [5] Chiu L C 2005 The Chlorophyllin induced cell cycle arrest and apoptosis in human breast cancer MCF 7 cells is associated with ERK deactivation and Cyclin D1 depletion International Journal of Molecular Medicine 16 (4) 735–740. [6] Chauhan M A 2012 pilot study on wheat grass juice for its phytochemical, nutritional and therapeutic potential on chronic diseases International Journal of Chemistry Studies 2 (4) 27– 34. [7] Kasina V V and Safronova T N 2019 Development of technology for obtaining concentrated product from sprouted wheat grain for the public catering system Food industry 9 24-8 [8] Kasina V V, Safronova T N and Safronova K V 2017 Wheat sprouts juice production technology development and determination of juice storage modes and terms Technique and technology of food production 2 (48) 64-72 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 106.31977844238281, - "X1": 525.8375854492188, - "avg_char_width": 5.6130641179113425, - "avg_char_height": 6.440488542829241, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92001342773438, - 465.2344055175781, - 127.67832946777344, - 480.5248107910156 - ], - "text": "References ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92001342773438, - 477.2521667480469, - 527.158203125, - 505.48480224609375 - ], - "text": "[1] Mujoriya R 2011 A study on wheat grass and its nutritional value Food science and Quality Management 2 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 70.9203872680664, - 503.65216064453125, - 527.1587524414062, - 544.4847412109375 - ], - "text": "[2] Singh N, Verma P and Pandey B R 2012 Therapeutic Potential of Organic Triticum aestivum Linn. (Wheat Grass) in Prevention and Treatment of Chronic Diseases, an Overview International Journal of Pharmaceutical Sciences and Drug Research 4 (1) 10-4 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_3": { - "bbox": [ - 70.92047119140625, - 542.6521606445312, - 527.1583862304688, - 570.884765625 - ], - "text": "[3] Antset V U and Vitchuk N A 2017 Methods of qualimetric assessment of the quality of production processes News of TulSU . Technical science 8-1 324-30 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_4": { - "bbox": [ - 70.91996765136719, - 567.8521118164062, - 527.157958984375, - 596.2047729492188 - ], - "text": "[4] Lai C N 1978 Inhibition of in vitro metabolic activation of carcinogens by wheat sprout extracts Nutrition and Cancer 1 (1) 27–30 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_5": { - "bbox": [ - 70.91973876953125, - 593.172119140625, - 527.1582641601562, - 634.124755859375 - ], - "text": "[5] Chiu L C 2005 The Chlorophyllin induced cell cycle arrest and apoptosis in human breast cancer MCF 7 cells is associated with ERK deactivation and Cyclin D1 depletion International Journal of Molecular Medicine 16 (4) 735–740. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_6": { - "bbox": [ - 70.91970825195312, - 631.0921020507812, - 527.1580810546875, - 671.38232421875 - ], - "text": "[6] Chauhan M A 2012 pilot study on wheat grass juice for its phytochemical, nutritional and therapeutic potential on chronic diseases International Journal of Chemistry Studies 2 (4) 27– 34. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_7": { - "bbox": [ - 70.9211196899414, - 670.0921020507812, - 527.1594848632812, - 698.4447021484375 - ], - "text": "[7] Kasina V V and Safronova T N 2019 Development of technology for obtaining concentrated product from sprouted wheat grain for the public catering system Food industry 9 24-8 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_8": { - "bbox": [ - 70.9222412109375, - 696.4921264648438, - 527.160400390625, - 737.4447021484375 - ], - "text": "[8] Kasina V V, Safronova T N and Safronova K V 2017 Wheat sprouts juice production technology development and determination of juice storage modes and terms Technique and technology of food production 2 (48) 64-72 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_9": { - "bbox": [ - 70.9212646484375, - 735.7349243164062, - 73.67961120605469, - 750.4622802734375 - ], - "text": " ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92001342773438, - 465.2344055175781, - 127.67832946777344, - 480.5248107910156 - ], - [ - 70.92001342773438, - 477.2521667480469, - 527.158203125, - 505.48480224609375 - ], - [ - 70.9203872680664, - 503.65216064453125, - 527.1587524414062, - 544.4847412109375 - ], - [ - 70.92047119140625, - 542.6521606445312, - 527.1583862304688, - 570.884765625 - ], - [ - 70.91996765136719, - 567.8521118164062, - 527.157958984375, - 596.2047729492188 - ], - [ - 70.91973876953125, - 593.172119140625, - 527.1582641601562, - 634.124755859375 - ], - [ - 70.91970825195312, - 631.0921020507812, - 527.1580810546875, - 671.38232421875 - ], - [ - 70.9211196899414, - 670.0921020507812, - 527.1594848632812, - 698.4447021484375 - ], - [ - 70.9222412109375, - 696.4921264648438, - 527.160400390625, - 737.4447021484375 - ], - [ - 70.9212646484375, - 735.7349243164062, - 73.67961120605469, - 750.4622802734375 - ] - ], - "is_watermark": 0, - "is_vertical_margin_note": 0, - "is_header": 0, - "is_footer": 0, - "is_block_title": 0 - } - } -} \ No newline at end of file diff --git a/tests/assets/paper/paper_recogPara.pdf b/tests/assets/paper/paper_recogPara.pdf deleted file mode 100644 index d63a2eb76..000000000 Binary files a/tests/assets/paper/paper_recogPara.pdf and /dev/null differ diff --git a/tests/assets/paper/pdf_dic.json b/tests/assets/paper/pdf_dic.json deleted file mode 100644 index c605d3cc6..000000000 --- a/tests/assets/paper/pdf_dic.json +++ /dev/null @@ -1,6150 +0,0 @@ -{ - "page_0": { - "block_0": { - "bbox": [ - 39.0, - 34.719993591308594, - 347.1359558105469, - 51.2079963684082 - ], - "text": "IOP Conference Series: Earth and Environmental Science", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 347.1359558105469, - "avg_char_width": 6.4194990793863935, - "avg_char_height": 16.48800277709961, - "block_font_type": "Helvetica", - "block_font_size": 12.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 34.719993591308594, - 347.1359558105469, - 51.2079963684082 - ], - "text": "IOP Conference Series: Earth and Environmental Science", - "is_matched": 1, - "font_type": "Helvetica", - "font_size": 12.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 34.719993591308594, - 347.1359558105469, - 51.2079963684082 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 39.0, - 111.38001251220703, - 143.67001342773438, - 123.77301025390625 - ], - "text": "PAPER • OPEN ACCESS", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 143.67001342773438, - "avg_char_width": 6.541875839233398, - "avg_char_height": 12.392997741699219, - "block_font_type": "Helvetica-Bold", - "block_font_size": 9.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 111.38001251220703, - 143.67001342773438, - 123.77301025390625 - ], - "text": "PAPER • OPEN ACCESS", - "is_matched": 1, - "font_type": "Helvetica-Bold", - "font_size": 9.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 111.38001251220703, - 143.67001342773438, - 123.77301025390625 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 39.0, - 131.58843994140625, - 553.6265258789062, - 172.2259521484375 - ], - "text": "A comprehensive nutritional supplement made from germinated wheat to enrich drinks", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 341.6492691040039, - "avg_char_width": 8.066554896036784, - "avg_char_height": 9.600006103515625, - "block_font_type": "ArialUnicodeMS", - "block_font_size": 16.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 131.58843994140625, - 553.6265258789062, - 153.02593994140625 - ], - "text": "A comprehensive nutritional supplement made from germinated wheat to", - "is_matched": 0, - "font_type": "ArialUnicodeMS", - "font_size": 16.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 39.0, - 150.7884521484375, - 129.67201232910156, - 172.2259521484375 - ], - "text": "enrich drinks", - "is_matched": 1, - "font_type": "ArialUnicodeMS", - "font_size": 16.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 131.58843994140625, - 553.6265258789062, - 153.02593994140625 - ], - [ - 39.0, - 150.7884521484375, - 129.67201232910156, - 172.2259521484375 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 39.0, - 184.89999389648438, - 352.0479431152344, - 195.95599365234375 - ], - "text": "To cite this article: V V Kazina et al 2021 IOP Conf. Ser.: Earth Environ. Sci. 640 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 352.0479431152344, - "avg_char_width": 4.2883279878799225, - "avg_char_height": 11.055999755859375, - "block_font_type": "Helvetica", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 184.89999389648438, - 352.0479431152344, - 195.95599365234375 - ], - "text": "To cite this article: V V Kazina et al 2021 IOP Conf. Ser.: Earth Environ. Sci. 640 022090", - "is_matched": 1, - "font_type": "Helvetica", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 184.89999389648438, - 352.0479431152344, - 195.95599365234375 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_4": { - "bbox": [ - 39.0, - 211.80001831054688, - 41.2239990234375, - 222.79202270507812 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 41.2239990234375, - "avg_char_width": 0, - "avg_char_height": 10.99200439453125, - "block_font_type": "Helvetica", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 211.80001831054688, - 41.2239990234375, - 222.79202270507812 - ], - "text": " ", - "is_matched": 0, - "font_type": "Helvetica", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 211.80001831054688, - 41.2239990234375, - 222.79202270507812 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_5": { - "bbox": [ - 39.0, - 231.19998168945312, - 231.54595947265625, - 242.19198608398438 - ], - "text": "View the article online for updates and enhancements.", - "dir": [ - 1.0, - 0.0 - ], - "X0": 39.0, - "X1": 231.54595947265625, - "avg_char_width": 4.18578172766644, - "avg_char_height": 10.99200439453125, - "block_font_type": "Helvetica", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 39.0, - 231.19998168945312, - 231.54595947265625, - 242.19198608398438 - ], - "text": "View the article online for updates and enhancements.", - "is_matched": 1, - "font_type": "Helvetica", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 39.0, - 231.19998168945312, - 231.54595947265625, - 242.19198608398438 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_6": { - "bbox": [ - 144.3000030517578, - 794.7200317382812, - 450.7078857421875, - 805.7120361328125 - ], - "text": "This content was downloaded from IP address 112.133.244.33 on 31/08/2021 at 06:37", - "dir": [ - 1.0, - 0.0 - ], - "X0": 144.3000030517578, - "X1": 450.7078857421875, - "avg_char_width": 4.3772554670061385, - "avg_char_height": 10.99200439453125, - "block_font_type": "Helvetica", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 144.3000030517578, - 794.7200317382812, - 450.7078857421875, - 805.7120361328125 - ], - "text": "This content was downloaded from IP address 112.133.244.33 on 31/08/2021 at 06:37", - "is_matched": 1, - "font_type": "Helvetica", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 144.3000030517578, - 794.7200317382812, - 450.7078857421875, - 805.7120361328125 - ] - ], - "is_header": 0, - "is_footer": 0 - } - }, - "page_1": { - "block_0": { - "bbox": [ - 69.86895751953125, - 770.9187622070312, - 523.94970703125, - 799.7386474609375 - ], - "text": "Content from this work may be used under the terms of the Creative Commons Attribution 3.0 licence . Any further distribution of this work must maintain attribution to the author(s) and the title of the work, journal citation and DOI. Published under licence by IOP Publishing Ltd", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_4": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "1", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "1", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_header": 0, - "is_footer": 1 - }, - "block_5": { - "bbox": [ - 70.91996765136719, - 190.89048767089844, - 528.6571044921875, - 234.05087280273438 - ], - "text": "A comprehensive nutritional supplement made from germinated wheat to enrich drinks ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.91996765136719, - "X1": 429.6572570800781, - "avg_char_width": 9.800756605893206, - "avg_char_height": 9.779998779296875, - "block_font_type": "Times-Bold", - "block_font_size": 17.03506851196289, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 190.89048767089844, - 528.6571044921875, - 214.49087524414062 - ], - "text": "A comprehensive nutritional supplement made from ", - "is_matched": 0, - "font_type": "Times-Bold", - "font_size": 17.03506851196289, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.91996765136719, - 210.4504852294922, - 330.65740966796875, - 234.05087280273438 - ], - "text": "germinated wheat to enrich drinks ", - "is_matched": 1, - "font_type": "Times-Bold", - "font_size": 17.03506851196289, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 190.89048767089844, - 528.6571044921875, - 214.49087524414062 - ], - [ - 70.91996765136719, - 210.4504852294922, - 330.65740966796875, - 234.05087280273438 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_6": { - "bbox": [ - 141.83987426757812, - 258.9544677734375, - 526.8885498046875, - 543.9988403320312 - ], - "text": "V V Kazina, T N Safronova, O A Yabrova, T L Kamoza and E O Nikulina Siberian Federal University, 2, Prushinskaya street, Krasnoyarsk, 660075, Russia E-mail: v.mutovina89@yandex.ru Abstract. The creation of new enriched and functional products contributes to the formation of a healthy type of nutrition in the population. The combination of processed wheat grain processing products into a complex nutritional supplement that can be used for enrichment will expand the range of functional products. As objects of study, a concentrate from germinated wheat grains and juice from green wheat sprouts were determined. Samples of complex nutritional supplements were prepared with different component ratios. Comparative results of organoleptic evaluation and physicochemical parameters of complex nutritional supplement samples are presented. The formulation of the complex nutritional supplement was optimized by the total quality factor, the most effective ratio of the concentrate from germinated wheat grains and juice from green wheat sprouts - 40:60. The study of the conditions and shelf life of the finished complex food additives, packaged in a vacuum bag, was carried out at a temperature of -18 ± 2 ℃ , air humidity of 75%. Quality control was carried out at 3 control points during 48 days of storage. The developed complex food additive, packed in a vacuum bag and frozen at a temperature of -18 ± 2 ℃ , air humidity of 75% has a shelf life of 40 days and can be widely used in the enrichment of drinks. The complex nutritional supplement from germinated wheat has the following indicators: dry matter content - 21.89%, vitamin C - 4.3 mg, vitamin B 1 - 0.13 mg, vitamin B 2 - 0.1 mg, vitamin B 6 - 0.17 mg, fiber - 0.72 g. The resulting complex nutritional supplement has increased nutritional value. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 141.8402328491211, - "X1": 526.8880310058594, - "avg_char_width": 5.0352963354265805, - "avg_char_height": 5.907777205757473, - "block_font_type": "Times-Roman", - "block_font_size": 9.843855898720877, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 141.83993530273438, - 258.9544677734375, - 495.7184143066406, - 274.244873046875 - ], - "text": "V V Kazina, T N Safronova, O A Yabrova, T L Kamoza and E O Nikulina ", - "is_matched": 0, - "font_type": "Times-Bold", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 141.83993530273438, - 271.554443359375, - 502.31854248046875, - 298.66241455078125 - ], - "text": " Siberian Federal University, 2, Prushinskaya street, Krasnoyarsk, 660075, Russia ", - "is_matched": 1, - "font_type": "Times-Bold", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 141.83993530273438, - 296.5350341796875, - 294.95819091796875, - 323.86236572265625 - ], - "text": " E-mail: v.mutovina89@yandex.ru ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_3": { - "bbox": [ - 141.83987426757812, - 321.85498046875, - 526.8885498046875, - 543.9988403320312 - ], - "text": " Abstract. The creation of new enriched and functional products contributes to the formation of a healthy type of nutrition in the population. The combination of processed wheat grain processing products into a complex nutritional supplement that can be used for enrichment will expand the range of functional products. As objects of study, a concentrate from germinated wheat grains and juice from green wheat sprouts were determined. Samples of complex nutritional supplements were prepared with different component ratios. Comparative results of organoleptic evaluation and physicochemical parameters of complex nutritional supplement samples are presented. The formulation of the complex nutritional supplement was optimized by the total quality factor, the most effective ratio of the concentrate from germinated wheat grains and juice from green wheat sprouts - 40:60. The study of the conditions and shelf life of the finished complex food additives, packaged in a vacuum bag, was carried out at a temperature of -18 ± 2 ℃ , air humidity of 75%. Quality control was carried out at 3 control points during 48 days of storage. The developed complex food additive, packed in a vacuum bag and frozen at a temperature of -18 ± 2 ℃ , air humidity of 75% has a shelf life of 40 days and can be widely used in the enrichment of drinks. The complex nutritional supplement from germinated wheat has the following indicators: dry matter content - 21.89%, vitamin C - 4.3 mg, vitamin B 1 - 0.13 mg, vitamin B 2 - 0.1 mg, vitamin B 6 - 0.17 mg, fiber - 0.72 g. The resulting complex nutritional supplement has increased nutritional value. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 9.645049619674683, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 141.83993530273438, - 258.9544677734375, - 495.7184143066406, - 274.244873046875 - ], - [ - 141.83993530273438, - 271.554443359375, - 502.31854248046875, - 298.66241455078125 - ], - [ - 141.83993530273438, - 296.5350341796875, - 294.95819091796875, - 323.86236572265625 - ], - [ - 141.83987426757812, - 321.85498046875, - 526.8885498046875, - 543.9988403320312 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_7": { - "bbox": [ - 70.919921875, - 570.5943603515625, - 527.15966796875, - 749.38232421875 - ], - "text": "1. Introduction The formation of a healthy type of nutrition for the population requires the production of new enriched, dietary and functional foods. One of the sources of enrichment of the diet is sprouted wheat, which is several times richer than vitamins, macro- and microelements 50 times richer than vitamin E, 10 times richer than vitamin B6, 3-4 times richer than vitamins F and P 4-5 times richer in fatty acids, 2-3 times richer in amino acids, and also contains phosphorus, potassium, magnesium, manganese, calcium, zinc, iron, selenium, copper, vanadium, etc. It is established that the introduction of germinated grain in the diet improves metabolism and blood formation, boosts immunity, replenishes vitamin th and mineral deficiency, stabilizes the acid-base balance, aids in digestion and intensive cleansing the body of toxins. In addition, enzyme systems are activated in the germinated grain, which break down complex substances into simpler, easily absorbed by the human body [1-3]. Another source of enrichment, which contains a significant amount of nutrients, vitamins, macro- and microelements, enzymes, essential amino acids, is the juice from the green wheat sprouts. It contains chlorophyll, which inhibits the development of cancer, promotes tissue regeneration and stimulates the ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.9208755493164, - "X1": 527.15869140625, - "avg_char_width": 5.260399253148637, - "avg_char_height": 6.310023381159856, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 570.5943603515625, - 147.35826110839844, - 585.884765625 - ], - "text": "1. Introduction ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.919921875, - 582.85498046875, - 527.1593017578125, - 711.4623413085938 - ], - "text": "The formation of a healthy type of nutrition for the population requires the production of new enriched, dietary and functional foods. One of the sources of enrichment of the diet is sprouted wheat, which is several times richer than vitamins, macro- and microelements 50 times richer than vitamin E, 10 times richer than vitamin B6, 3-4 times richer than vitamins F and P 4-5 times richer in fatty acids, 2-3 times richer in amino acids, and also contains phosphorus, potassium, magnesium, manganese, calcium, zinc, iron, selenium, copper, vanadium, etc. It is established that the introduction of germinated grain in the diet improves metabolism and blood formation, boosts immunity, replenishes vitamin th and mineral deficiency, stabilizes the acid-base balance, aids in digestion and intensive cleansing the body of toxins. In addition, enzyme systems are activated in the germinated grain, which break down complex substances into simpler, easily absorbed by the human body [1-3]. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 70.92086791992188, - 709.4549560546875, - 527.15966796875, - 749.38232421875 - ], - "text": "Another source of enrichment, which contains a significant amount of nutrients, vitamins, macro- and microelements, enzymes, essential amino acids, is the juice from the green wheat sprouts. It contains chlorophyll, which inhibits the development of cancer, promotes tissue regeneration and stimulates the ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 570.5943603515625, - 147.35826110839844, - 585.884765625 - ], - [ - 70.919921875, - 582.85498046875, - 527.1593017578125, - 711.4623413085938 - ], - [ - 70.92086791992188, - 709.4549560546875, - 527.15966796875, - 749.38232421875 - ] - ], - "is_header": 0, - "is_footer": 0 - } - }, - "page_2": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "2", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "2", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 70.91897583007812, - 111.73517608642578, - 527.2772827148438, - 240.34222412109375 - ], - "text": "production of hemoglobin and red blood cells in case of anemia. Chlorophyll derivatives have an antibacterial effect, have antioxidant activity and help cleanse the body of toxins [4-6]. To enhance the functional effect to the human body and expand the functional products, it is advisable to combine a concentrated product from germinated wheat grains and juice from green wheat sprouts into a complex nutritional supplement, which can later be used in the enrichment of various food products. As an optimal form of food product for enrichment, you can use thick drinks (smoothies) from crushed fruits, vegetables or berries of the same type with the addition of juice, mineral water, ice, etc. The purpose of the work is the development of the technology and formulation of a comprehensive food supplement for the enrichment of drinks using the example of a smoothie with the definition of conditions and shelf life. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.91998291015625, - "X1": 527.15771484375, - "avg_char_width": 5.3257435498500225, - "avg_char_height": 6.326649559868707, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 111.73517608642578, - 527.15771484375, - 139.0625 - ], - "text": "production of hemoglobin and red blood cells in case of anemia. Chlorophyll derivatives have an antibacterial effect, have antioxidant activity and help cleanse the body of toxins [4-6]. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.91897583007812, - 137.05511474609375, - 527.2772827148438, - 240.34222412109375 - ], - "text": "To enhance the functional effect to the human body and expand the functional products, it is advisable to combine a concentrated product from germinated wheat grains and juice from green wheat sprouts into a complex nutritional supplement, which can later be used in the enrichment of various food products. As an optimal form of food product for enrichment, you can use thick drinks (smoothies) from crushed fruits, vegetables or berries of the same type with the addition of juice, mineral water, ice, etc. The purpose of the work is the development of the technology and formulation of a comprehensive food supplement for the enrichment of drinks using the example of a smoothie with the definition of conditions and shelf life. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 111.73517608642578, - 527.15771484375, - 139.0625 - ], - [ - 70.91897583007812, - 137.05511474609375, - 527.2772827148438, - 240.34222412109375 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_5": { - "bbox": [ - 70.91900634765625, - 250.55426025390625, - 527.1585083007812, - 505.3023986816406 - ], - "text": "2. Materials and methods The object of the study was selected concentrate from germinated wheat grains with the following indicators: solids content - (45 ± 0.04)%, protein - (12.4 ± 0.05)%, fats - (1.93 ± 0.003)%, starch - (26.4 ± 0.02)%, fiber - (1.8 ± 0.05)%, sugar - (1.65 ± 0.03)%, ash - (1.03 ± 0.03) %, consistency - homogeneous mass, with small inclusions, without coarse particles; color - beige, with small inclusions of brown; smell - characteristic of a healthy grain of this type; the taste is sweetish, characteristic of a healthy grain of this type [7]. Another object of study was juice from green wheat sprouts with the following indicators: moisture content - (94 ± 0.05)%, sugar - (6.48 ± 0.05)% , ash - (0.09 ± 0.03)%, vitamin C - (5.1 ± 0.02)%, consistency - a homogeneous opaque liquid; color - Homogeneous throughout the mass, saturated dark green; smell - appropriate, herbal; the taste is sweet [8]. To determine the optimal ratio of the concentrated product from germinated wheat grain and juice from green wheat sprouts, experimental preparation was carried out according to 4 variants of formulations. The ratio varied within 30:70; 40:60; 50:50; 60:40. In the finished complex food supplement, organoleptic (on a 5-point scale) and physicochemical parameters (dry matter content, acidity, content of B vitamins and vitamin C) were determined in accordance with the requirements of the standards. The optimization of the ratio of components in a complex food supplement was carried out according to the following criteria: Organoleptic evaluation ( q 1 ), the content of physiologically functional ingredients ( q 2 , q 3 , q 4 ), summarizing them into a total quality factor ( U ). The value of the quality factor ( U ) should be maximum: ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.91999816894531, - "X1": 527.157470703125, - "avg_char_width": 5.424264916600582, - "avg_char_height": 6.316336380807977, - "block_font_type": "Times-Roman", - "block_font_size": 10.583494080437553, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92001342773438, - 250.55426025390625, - 195.5982666015625, - 265.84466552734375 - ], - "text": "2. Materials and methods ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.91900634765625, - 262.81488037109375, - 527.158447265625, - 378.82208251953125 - ], - "text": "The object of the study was selected concentrate from germinated wheat grains with the following indicators: solids content - (45 ± 0.04)%, protein - (12.4 ± 0.05)%, fats - (1.93 ± 0.003)%, starch - (26.4 ± 0.02)%, fiber - (1.8 ± 0.05)%, sugar - (1.65 ± 0.03)%, ash - (1.03 ± 0.03) %, consistency - homogeneous mass, with small inclusions, without coarse particles; color - beige, with small inclusions of brown; smell - characteristic of a healthy grain of this type; the taste is sweetish, characteristic of a healthy grain of this type [7]. Another object of study was juice from green wheat sprouts with the following indicators: moisture content - (94 ± 0.05)%, sugar - (6.48 ± 0.05)% , ash - (0.09 ± 0.03)%, vitamin C - (5.1 ± 0.02)%, consistency - a homogeneous opaque liquid; color - Homogeneous throughout the mass, saturated dark green; smell - appropriate, herbal; the taste is sweet [8]. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 70.91999816894531, - 376.6947326660156, - 527.1580810546875, - 416.7420959472656 - ], - "text": "To determine the optimal ratio of the concentrated product from germinated wheat grain and juice from green wheat sprouts, experimental preparation was carried out according to 4 variants of formulations. The ratio varied within 30:70; 40:60; 50:50; 60:40. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_3": { - "bbox": [ - 70.92001342773438, - 414.61474609375, - 527.1585083007812, - 454.6620788574219 - ], - "text": "In the finished complex food supplement, organoleptic (on a 5-point scale) and physicochemical parameters (dry matter content, acidity, content of B vitamins and vitamin C) were determined in accordance with the requirements of the standards. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_4": { - "bbox": [ - 70.91964721679688, - 452.65472412109375, - 527.1581420898438, - 505.3023986816406 - ], - "text": "The optimization of the ratio of components in a complex food supplement was carried out according to the following criteria: Organoleptic evaluation ( q 1 ), the content of physiologically functional ingredients ( q 2 , q 3 , q 4 ), summarizing them into a total quality factor ( U ). The value of the quality factor ( U ) should be maximum: ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 10.22093448638916, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92001342773438, - 250.55426025390625, - 195.5982666015625, - 265.84466552734375 - ], - [ - 70.91900634765625, - 262.81488037109375, - 527.158447265625, - 378.82208251953125 - ], - [ - 70.91999816894531, - 376.6947326660156, - 527.1580810546875, - 416.7420959472656 - ], - [ - 70.92001342773438, - 414.61474609375, - 527.1585083007812, - 454.6620788574219 - ], - [ - 70.91964721679688, - 452.65472412109375, - 527.1581420898438, - 505.3023986816406 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_6": { - "bbox": [ - 247.6797637939453, - 509.4150390625, - 527.1583251953125, - 525.7728881835938 - ], - "text": "$equations_interline_bboxes$", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_7": { - "bbox": [ - 70.92019653320312, - 528.375, - 527.158203125, - 582.4623413085938 - ], - "text": "where � � – the estimated coefficient of organoleptic evaluation; � � – estimated coefficient of solids content; � � – estimated coefficient of the content of vitamins of group B; � � – estimated coefficient of vitamin C . The estimated coefficients were determined by the formula: ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 78.00010299682617, - "X1": 440.3982696533203, - "avg_char_width": 5.354437652460648, - "avg_char_height": 6.55999755859375, - "block_font_type": "Times-Roman", - "block_font_size": 10.455831176356265, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 85.0797348022461, - 528.375, - 527.158203125, - 544.06640625 - ], - "text": "where � � – the estimated coefficient of organoleptic evaluation; � � – estimated coefficient of solids ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 10.616834243138632, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92019653320312, - 541.2149658203125, - 527.158203125, - 582.4623413085938 - ], - "text": "content; � � – estimated coefficient of the content of vitamins of group B; � � – estimated coefficient of vitamin C . The estimated coefficients were determined by the formula: ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 10.616834243138632, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 85.0797348022461, - 528.375, - 527.158203125, - 544.06640625 - ], - [ - 70.92019653320312, - 541.2149658203125, - 527.158203125, - 582.4623413085938 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_8": { - "bbox": [ - 223.43991088867188, - 585.7844848632812, - 527.1583862304688, - 610.4263916015625 - ], - "text": "$equations_interline_bboxes$", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_9": { - "bbox": [ - 70.92056274414062, - 613.574951171875, - 527.1592407226562, - 754.7822875976562 - ], - "text": "where � � – significant signs; max � � – corresponding maximum values. The study of the conditions and shelf life of a complex nutritional supplement from a mixture of concentrate from germinated wheat grains and juice from green wheat sprouts was carried out in accordance with TR TS 021/2011 and MUK 4.2. 1847-04 at a temperature of (-18 ± 2) ° С . We used a vacuum packaging machine Profi Cook PC-VK 1015, an intensive cooling chamber PF 031AF CHILLY GN1. The complex nutritional supplement from germinated wheat was packaged in vacuum bags, frozen in an intensive cooling apparatus to -18 ° C inside the product and stored for 48 days. Organoleptic and microbiological indicators of a complex dietary supplement were determined at 3 control points. Statistical processing of the results was carried out using the non-parametric Kolmagorov-Smirnov test in the programs “Statistica 6.1” and “Microsoft Excel”. The difference in the comparison of mean values was considered significant at p <0.05. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.9208984375, - "X1": 527.1588134765625, - "avg_char_width": 5.4521051040764235, - "avg_char_height": 6.3239990234375, - "block_font_type": "Times-Roman", - "block_font_size": 10.721005489951686, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92056274414062, - 613.574951171875, - 527.1592407226562, - 716.8623046875 - ], - "text": "where � � – significant signs; max � � – corresponding maximum values. The study of the conditions and shelf life of a complex nutritional supplement from a mixture of concentrate from germinated wheat grains and juice from green wheat sprouts was carried out in accordance with TR TS 021/2011 and MUK 4.2. 1847-04 at a temperature of (-18 ± 2) ° С . We used a vacuum packaging machine Profi Cook PC-VK 1015, an intensive cooling chamber PF 031AF CHILLY GN1. The complex nutritional supplement from germinated wheat was packaged in vacuum bags, frozen in an intensive cooling apparatus to -18 ° C inside the product and stored for 48 days. Organoleptic and microbiological indicators of a complex dietary supplement were determined at 3 control points. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 10.661813974380493, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92085266113281, - 714.7349243164062, - 527.1590576171875, - 754.7822875976562 - ], - "text": "Statistical processing of the results was carried out using the non-parametric Kolmagorov-Smirnov test in the programs “Statistica 6.1” and “Microsoft Excel”. The difference in the comparison of mean values was considered significant at p <0.05. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92056274414062, - 613.574951171875, - 527.1592407226562, - 716.8623046875 - ], - [ - 70.92085266113281, - 714.7349243164062, - 527.1590576171875, - 754.7822875976562 - ] - ], - "is_header": 0, - "is_footer": 0 - } - }, - "page_3": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "3", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "3", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 70.91996765136719, - 112.07452392578125, - 527.1586303710938, - 164.3824462890625 - ], - "text": "3. Results and discussion A complex nutritional supplement from germinated wheat was prepared by mixing a concentrate from germinated wheat grains and juice from green wheat sprouts in ratios 30:70; 40:60; 50:50; 60: 40, samples are shown in Figure 1. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.91997528076172, - "X1": 370.1979293823242, - "avg_char_width": 5.571070665259578, - "avg_char_height": 6.263427734375, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 112.07452392578125, - 192.59820556640625, - 127.36492156982422 - ], - "text": "3. Results and discussion ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.91996765136719, - 124.33515167236328, - 527.1586303710938, - 164.3824462890625 - ], - "text": "A complex nutritional supplement from germinated wheat was prepared by mixing a concentrate from germinated wheat grains and juice from green wheat sprouts in ratios 30:70; 40:60; 50:50; 60: 40, samples are shown in Figure 1. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 112.07452392578125, - 192.59820556640625, - 127.36492156982422 - ], - [ - 70.91996765136719, - 124.33515167236328, - 527.1586303710938, - 164.3824462890625 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_5": { - "bbox": [ - 70.91996765136719, - 168.37518310546875, - 73.67831420898438, - 183.1025390625 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.91996765136719, - "X1": 73.67831420898438, - "avg_char_width": 0, - "avg_char_height": 14.72735595703125, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 168.37518310546875, - 73.67831420898438, - 183.1025390625 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 1984636 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 168.37518310546875, - 73.67831420898438, - 183.1025390625 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_6": { - "bbox": [ - 70.91938781738281, - 318.7350769042969, - 527.1578979492188, - 475.90240478515625 - ], - "text": " Figure 1. Samples of a comprehensive nutritional supplement with a different ratio of concentrate from germinated wheat grains and juice from green wheat sprouts. An organoleptic assessment of the quality of a complex nutritional supplement from germinated wheat is shown in Figure 2. According to experts, a high overall score (4.8-4.7) was noted in samples of a food supplement containing concentrate from germinated wheat grains and juice from green wheat sprouts in a ratio of 40 : 60 and 50:50. The results of determining the mass fraction of solids are shown in Figure 3. From the data obtained, it can be seen that the solids content increases with a decrease in the juice of green wheat germ in the composition of the complex food supplement. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_7": { - "bbox": [ - 85.07994079589844, - 479.7750549316406, - 87.83828735351562, - 494.5024108886719 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 85.07994079589844, - "X1": 87.83828735351562, - "avg_char_width": 0, - "avg_char_height": 14.72735595703125, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 85.07994079589844, - 479.7750549316406, - 87.83828735351562, - 494.5024108886719 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 85.07994079589844, - 479.7750549316406, - 87.83828735351562, - 494.5024108886719 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_8": { - "bbox": [ - 70.91908264160156, - 640.81494140625, - 527.15771484375, - 759.9423217773438 - ], - "text": " Figure 2. Organoleptic evaluation of a complex nutritional supplement with a different ratio of concentrate from germinated wheat grains of juice from green wheat sprouts ( М ±m) (n=7) Acidity (pH) was determined in the finished samples of a complex food supplement with a different the ratio concentrate from germinated wheat grain and juice from green wheat germ. The results are presented in Figure 4. Figures 5-6 show the results of the content of vitamins in the finished samples of a complex food supplement, from which it can be seen that with a change in the ratio of the components of a complex ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 85.0796127319336, - "X1": 477.35809326171875, - "avg_char_width": 5.446212407119858, - "avg_char_height": 6.525001525878906, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91908264160156, - 640.81494140625, - 527.15771484375, - 759.9423217773438 - ], - "text": " Figure 2. Organoleptic evaluation of a complex nutritional supplement with a different ratio of concentrate from germinated wheat grains of juice from green wheat sprouts ( М ±m) (n=7) Acidity (pH) was determined in the finished samples of a complex food supplement with a different the ratio concentrate from germinated wheat grain and juice from green wheat germ. The results are presented in Figure 4. Figures 5-6 show the results of the content of vitamins in the finished samples of a complex food supplement, from which it can be seen that with a change in the ratio of the components of a complex ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91908264160156, - 640.81494140625, - 527.15771484375, - 759.9423217773438 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_9": { - "bbox": [ - 247.55990600585938, - 517.1701049804688, - 260.2879943847656, - 582.090087890625 - ], - "text": "4 4.2 4.4 4.6 4.8 5", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_10": { - "bbox": [ - 251.15989685058594, - 495.5701599121094, - 289.61029052734375, - 517.7701416015625 - ], - "text": "surface condition", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_11": { - "bbox": [ - 324.8398742675781, - 553.89013671875, - 345.34197998046875, - 563.85009765625 - ], - "text": "color", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_12": { - "bbox": [ - 206.99990844726562, - 617.85009765625, - 325.4457092285156, - 627.81005859375 - ], - "text": "smell texture", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_13": { - "bbox": [ - 195.5999298095703, - 553.89013671875, - 215.9152069091797, - 563.85009765625 - ], - "text": "taste", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_14": { - "bbox": [ - 439.31982421875, - 544.5301513671875, - 464.5362243652344, - 554.4901123046875 - ], - "text": " 30:70", - "dir": [ - 1.0, - 0.0 - ], - "X0": 439.31982421875, - "X1": 464.5362243652344, - "avg_char_width": 5.043280029296875, - "avg_char_height": 9.9599609375, - "block_font_type": "Calibri", - "block_font_size": 9.959996223449707, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 439.31982421875, - 544.5301513671875, - 464.5362243652344, - 554.4901123046875 - ], - "text": " 30:70", - "is_matched": 1, - "font_type": "Calibri", - "font_size": 9.959996223449707, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 439.31982421875, - 544.5301513671875, - 464.5362243652344, - 554.4901123046875 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_15": { - "bbox": [ - 439.31982421875, - 562.5301513671875, - 464.5362243652344, - 572.4901123046875 - ], - "text": " 40:60", - "dir": [ - 1.0, - 0.0 - ], - "X0": 439.31982421875, - "X1": 464.5362243652344, - "avg_char_width": 5.043280029296875, - "avg_char_height": 9.9599609375, - "block_font_type": "Calibri", - "block_font_size": 9.959996223449707, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 439.31982421875, - 562.5301513671875, - 464.5362243652344, - 572.4901123046875 - ], - "text": " 40:60", - "is_matched": 1, - "font_type": "Calibri", - "font_size": 9.959996223449707, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 439.31982421875, - 562.5301513671875, - 464.5362243652344, - 572.4901123046875 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_16": { - "bbox": [ - 439.31982421875, - 580.650146484375, - 464.5362243652344, - 590.610107421875 - ], - "text": " 50:50", - "dir": [ - 1.0, - 0.0 - ], - "X0": 439.31982421875, - "X1": 464.5362243652344, - "avg_char_width": 5.043280029296875, - "avg_char_height": 9.9599609375, - "block_font_type": "Calibri", - "block_font_size": 9.959996223449707, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 439.31982421875, - 580.650146484375, - 464.5362243652344, - 590.610107421875 - ], - "text": " 50:50", - "is_matched": 1, - "font_type": "Calibri", - "font_size": 9.959996223449707, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 439.31982421875, - 580.650146484375, - 464.5362243652344, - 590.610107421875 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_17": { - "bbox": [ - 439.31982421875, - 598.7701416015625, - 464.5362243652344, - 608.7301025390625 - ], - "text": " 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 439.31982421875, - "X1": 464.5362243652344, - "avg_char_width": 5.043280029296875, - "avg_char_height": 9.9599609375, - "block_font_type": "Calibri", - "block_font_size": 9.959996223449707, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 439.31982421875, - 598.7701416015625, - 464.5362243652344, - 608.7301025390625 - ], - "text": " 60:40", - "is_matched": 1, - "font_type": "Calibri", - "font_size": 9.959996223449707, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 439.31982421875, - 598.7701416015625, - 464.5362243652344, - 608.7301025390625 - ] - ], - "is_header": 0, - "is_footer": 0 - } - }, - "page_4": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "4", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "4", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 70.91996765136719, - 111.73517608642578, - 527.1588745117188, - 227.62225341796875 - ], - "text": "food supplement, the vitamin composition changes depending on which component prevails in larger quantities. The juice from green wheat sprouts contains vitamin C, and the concentrate from germinated wheat grains contains B vitamins, therefore, with an increase in the concentrate from germinated wheat grains in the complex nutritional supplement, the content of vitamin C decreases, and the content of B vitamins, on the contrary, increases. Organoleptic indicators, solids content, vitamin C and group B vitamins acted as criteria for optimizing the formulation of a complex nutritional supplement. The dependence of quality criteria on the mass fraction of components is presented in Figure 7. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.92045593261719, - "X1": 527.1585083007812, - "avg_char_width": 5.257905702035041, - "avg_char_height": 6.322482585906982, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91996765136719, - 111.73517608642578, - 527.1587524414062, - 177.1024169921875 - ], - "text": "food supplement, the vitamin composition changes depending on which component prevails in larger quantities. The juice from green wheat sprouts contains vitamin C, and the concentrate from germinated wheat grains contains B vitamins, therefore, with an increase in the concentrate from germinated wheat grains in the complex nutritional supplement, the content of vitamin C decreases, and the content of B vitamins, on the contrary, increases. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92045593261719, - 174.9749755859375, - 527.1588745117188, - 215.02227783203125 - ], - "text": "Organoleptic indicators, solids content, vitamin C and group B vitamins acted as criteria for optimizing the formulation of a complex nutritional supplement. The dependence of quality criteria on the mass fraction of components is presented in Figure 7. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 85.0809555053711, - 212.8948974609375, - 87.83930206298828, - 227.62225341796875 - ], - "text": " ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91996765136719, - 111.73517608642578, - 527.1587524414062, - 177.1024169921875 - ], - [ - 70.92045593261719, - 174.9749755859375, - 527.1588745117188, - 215.02227783203125 - ], - [ - 85.0809555053711, - 212.8948974609375, - 87.83930206298828, - 227.62225341796875 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_5": { - "bbox": [ - 299.7598876953125, - 350.16021728515625, - 302.2542419433594, - 361.2002258300781 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 299.7598876953125, - "X1": 302.2542419433594, - "avg_char_width": 0, - "avg_char_height": 11.040008544921875, - "block_font_type": "Calibri", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 299.7598876953125, - 350.16021728515625, - 302.2542419433594, - 361.2002258300781 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 299.7598876953125, - 350.16021728515625, - 302.2542419433594, - 361.2002258300781 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_6": { - "bbox": [ - 336.83984375, - 229.44021606445312, - 339.3341979980469, - 240.48020935058594 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 336.83984375, - "X1": 339.3341979980469, - "avg_char_width": 0, - "avg_char_height": 11.039993286132812, - "block_font_type": "Calibri", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 336.83984375, - 229.44021606445312, - 339.3341979980469, - 240.48020935058594 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 336.83984375, - 229.44021606445312, - 339.3341979980469, - 240.48020935058594 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_7": { - "bbox": [ - 350.9998474121094, - 246.97509765625, - 533.1582641601562, - 337.54229736328125 - ], - "text": "Figure 3. Mass fraction of solids in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 350.9998474121094, - "X1": 533.1580810546875, - "avg_char_width": 5.7536008673501255, - "avg_char_height": 6.319986979166667, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 350.9998474121094, - 246.97509765625, - 533.1582641601562, - 337.54229736328125 - ], - "text": "Figure 3. Mass fraction of solids in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 350.9998474121094, - 246.97509765625, - 533.1582641601562, - 337.54229736328125 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_8": { - "bbox": [ - 296.0398864746094, - 479.16015625, - 298.53424072265625, - 490.2001647949219 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 296.0398864746094, - "X1": 298.53424072265625, - "avg_char_width": 0, - "avg_char_height": 11.040008544921875, - "block_font_type": "Calibri", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 296.0398864746094, - 479.16015625, - 298.53424072265625, - 490.2001647949219 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 296.0398864746094, - 479.16015625, - 298.53424072265625, - 490.2001647949219 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_9": { - "bbox": [ - 336.83984375, - 360.6001892089844, - 339.3341979980469, - 371.64019775390625 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 336.83984375, - "X1": 339.3341979980469, - "avg_char_width": 0, - "avg_char_height": 11.040008544921875, - "block_font_type": "Calibri", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 336.83984375, - 360.6001892089844, - 339.3341979980469, - 371.64019775390625 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 336.83984375, - 360.6001892089844, - 339.3341979980469, - 371.64019775390625 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_10": { - "bbox": [ - 350.9998474121094, - 377.0550537109375, - 533.1582641601562, - 467.6224060058594 - ], - "text": "Figure 4. Acidity in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 350.9998474121094, - "X1": 533.1581420898438, - "avg_char_width": 5.6485009641212445, - "avg_char_height": 6.319999694824219, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 350.9998474121094, - 377.0550537109375, - 533.1582641601562, - 467.6224060058594 - ], - "text": "Figure 4. Acidity in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 350.9998474121094, - 377.0550537109375, - 533.1582641601562, - 467.6224060058594 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_11": { - "bbox": [ - 297.4798889160156, - 615.7201538085938, - 299.9742431640625, - 626.7601318359375 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 297.4798889160156, - "X1": 299.9742431640625, - "avg_char_width": 0, - "avg_char_height": 11.03997802734375, - "block_font_type": "Calibri,Bold", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 297.4798889160156, - 615.7201538085938, - 299.9742431640625, - 626.7601318359375 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri,Bold", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 297.4798889160156, - 615.7201538085938, - 299.9742431640625, - 626.7601318359375 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_12": { - "bbox": [ - 336.83984375, - 489.60015869140625, - 339.3341979980469, - 500.6401672363281 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 336.83984375, - "X1": 339.3341979980469, - "avg_char_width": 0, - "avg_char_height": 11.040008544921875, - "block_font_type": "Calibri", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 336.83984375, - 489.60015869140625, - 339.3341979980469, - 500.6401672363281 - ], - "text": " ", - "is_matched": 0, - "font_type": "Calibri", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 336.83984375, - 489.60015869140625, - 339.3341979980469, - 500.6401672363281 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_13": { - "bbox": [ - 350.9998474121094, - 509.7750244140625, - 533.1581420898438, - 601.124755859375 - ], - "text": "Figure 5. Vitamin C content in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 350.9998474121094, - "X1": 533.1580810546875, - "avg_char_width": 5.882016200957435, - "avg_char_height": 6.329996744791667, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 350.9998474121094, - 509.7750244140625, - 533.1581420898438, - 601.124755859375 - ], - "text": "Figure 5. Vitamin C content in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 350.9998474121094, - 509.7750244140625, - 533.1581420898438, - 601.124755859375 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_14": { - "bbox": [ - 150.83993530273438, - 282.2102355957031, - 156.0728302001953, - 292.17022705078125 - ], - "text": "d", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_15": { - "bbox": [ - 190.07992553710938, - 263.2502746582031, - 233.35279846191406, - 276.69024658203125 - ], - "text": "c b", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_16": { - "bbox": [ - 266.9998779296875, - 243.69027709960938, - 271.770751953125, - 253.65028381347656 - ], - "text": "a", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_17": { - "bbox": [ - 119.87995147705078, - 328.770263671875, - 124.92803955078125, - 338.7302551269531 - ], - "text": "0", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_18": { - "bbox": [ - 114.83995819091797, - 305.0102844238281, - 124.92967224121094, - 314.97027587890625 - ], - "text": "10", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_19": { - "bbox": [ - 114.83995819091797, - 281.2502746582031, - 124.92967224121094, - 291.21026611328125 - ], - "text": "20", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_20": { - "bbox": [ - 114.83995819091797, - 257.4902648925781, - 124.92967224121094, - 267.45025634765625 - ], - "text": "30", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_21": { - "bbox": [ - 114.83995819091797, - 233.73025512695312, - 124.92967224121094, - 243.6902618408203 - ], - "text": "40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 114.83995819091797, - "X1": 124.92967224121094, - "avg_char_width": 5.044857025146484, - "avg_char_height": 9.960006713867188, - "block_font_type": "Calibri", - "block_font_size": 9.959996223449707, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 114.83995819091797, - 233.73025512695312, - 124.92967224121094, - 243.6902618408203 - ], - "text": "40", - "is_matched": 1, - "font_type": "Calibri", - "font_size": 9.959996223449707, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 114.83995819091797, - 233.73025512695312, - 124.92967224121094, - 243.6902618408203 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_22": { - "bbox": [ - 140.87994384765625, - 341.8502197265625, - 282.166259765625, - 351.8102111816406 - ], - "text": " 30:70 40:60 50:50 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_23": { - "bbox": [ - 87.76172637939453, - 238.9506072998047, - 113.07632446289062, - 338.52020263671875 - ], - "text": "mass fraction of solids, %", - "dir": [ - 0.0, - -1.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_24": { - "bbox": [ - 146.99993896484375, - 414.3301696777344, - 152.2328338623047, - 424.2901611328125 - ], - "text": "d", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_25": { - "bbox": [ - 185.63992309570312, - 377.1301574707031, - 190.87281799316406, - 387.09014892578125 - ], - "text": "b", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_26": { - "bbox": [ - 224.87991333007812, - 403.170166015625, - 229.0915069580078, - 413.1301574707031 - ], - "text": "c", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_27": { - "bbox": [ - 263.2798767089844, - 369.8101501464844, - 268.0507507324219, - 379.7701416015625 - ], - "text": "a", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_28": { - "bbox": [ - 103.3199462890625, - 457.7701110839844, - 121.08689880371094, - 467.7301025390625 - ], - "text": "7.25", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_29": { - "bbox": [ - 108.35994720458984, - 439.17010498046875, - 120.96527099609375, - 449.1300964355469 - ], - "text": "7.3", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_30": { - "bbox": [ - 103.3199462890625, - 420.69012451171875, - 121.08689880371094, - 430.6501159667969 - ], - "text": "7.35", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_31": { - "bbox": [ - 108.35994720458984, - 402.0901184082031, - 120.96527099609375, - 412.05010986328125 - ], - "text": "7.4", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_32": { - "bbox": [ - 103.3199462890625, - 383.4901123046875, - 121.08689880371094, - 393.4501037597656 - ], - "text": "7.45", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_33": { - "bbox": [ - 108.35994720458984, - 365.0101013183594, - 120.96527099609375, - 374.9700927734375 - ], - "text": "7.5", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_34": { - "bbox": [ - 137.03993225097656, - 470.8500671386719, - 278.3262939453125, - 480.81005859375 - ], - "text": " 30:70 40:60 50:50 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_35": { - "bbox": [ - 87.76172637939453, - 409.4913330078125, - 101.55632781982422, - 422.76019287109375 - ], - "text": "pH", - "dir": [ - 0.0, - -1.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_36": { - "bbox": [ - 136.3199462890625, - 501.5701599121094, - 225.3715057373047, - 531.93017578125 - ], - "text": "a b c", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_37": { - "bbox": [ - 262.79986572265625, - 559.170166015625, - 268.0327453613281, - 569.130126953125 - ], - "text": "d", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_38": { - "bbox": [ - 103.3199462890625, - 594.3302001953125, - 108.36802673339844, - 604.2901611328125 - ], - "text": "0", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_39": { - "bbox": [ - 103.3199462890625, - 577.5302124023438, - 108.36802673339844, - 587.4901733398438 - ], - "text": "1", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_40": { - "bbox": [ - 103.3199462890625, - 560.8502197265625, - 108.36802673339844, - 570.8101806640625 - ], - "text": "2", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_41": { - "bbox": [ - 103.3199462890625, - 544.1702270507812, - 108.36802673339844, - 554.1301879882812 - ], - "text": "3", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_42": { - "bbox": [ - 103.3199462890625, - 527.3702392578125, - 108.36802673339844, - 537.3302001953125 - ], - "text": "4", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_43": { - "bbox": [ - 103.3199462890625, - 510.6902160644531, - 108.36802673339844, - 520.6502075195312 - ], - "text": "5", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_44": { - "bbox": [ - 103.3199462890625, - 494.01025390625, - 108.36802673339844, - 503.9702453613281 - ], - "text": "6", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_45": { - "bbox": [ - 126.11994171142578, - 607.2902221679688, - 278.0862121582031, - 617.2501831054688 - ], - "text": " 30:70 40:60 50:50 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_46": { - "bbox": [ - 87.76172637939453, - 501.900146484375, - 101.55632781982422, - 596.5201416015625 - ], - "text": "vitamin C content, mg", - "dir": [ - 0.0, - -1.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - } - }, - "page_5": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "5", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "5", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 136.07901000976562, - 249.4951171875, - 473.2773132324219, - 318.1024169921875 - ], - "text": " Figure 6. The content of B vitamins in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 136.07904052734375, - "X1": 473.2771911621094, - "avg_char_width": 5.5000058911973575, - "avg_char_height": 6.734992980957031, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 136.07901000976562, - 249.4951171875, - 473.2773132324219, - 318.1024169921875 - ], - "text": " Figure 6. The content of B vitamins in samples of a complex nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 136.07901000976562, - 249.4951171875, - 473.2773132324219, - 318.1024169921875 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_5": { - "bbox": [ - 136.07901000976562, - 322.09503173828125, - 138.8373565673828, - 336.8223876953125 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 136.07901000976562, - "X1": 138.8373565673828, - "avg_char_width": 0, - "avg_char_height": 14.72735595703125, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 136.07901000976562, - 322.09503173828125, - 138.8373565673828, - 336.8223876953125 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 136.07901000976562, - 322.09503173828125, - 138.8373565673828, - 336.8223876953125 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_6": { - "bbox": [ - 136.0785675048828, - 429.0149841308594, - 473.2770080566406, - 497.6223449707031 - ], - "text": " Figure 7. The total quality factor of a comprehensive nutritional supplement from germinated wheat with a different ratio of incoming components (M ± m) (n = 7) (intra-group differences are indicated by letters, multiple comparisons, LSD test, p <0.05) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_7": { - "bbox": [ - 136.07858276367188, - 501.614990234375, - 138.83692932128906, - 516.3423461914062 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 136.07858276367188, - "X1": 138.83692932128906, - "avg_char_width": 0, - "avg_char_height": 14.72735595703125, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 136.07858276367188, - 501.614990234375, - 138.83692932128906, - 516.3423461914062 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 136.07858276367188, - 501.614990234375, - 138.83692932128906, - 516.3423461914062 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_8": { - "bbox": [ - 76.55996704101562, - 514.2149658203125, - 521.517822265625, - 541.5423583984375 - ], - "text": "Table 1. Organoleptic characteristics of a complex nutritional supplement from germinated wheat at control points, ( М ±m) (n=7) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_9": { - "bbox": [ - 107.51995086669922, - 546.312255859375, - 513.0884399414062, - 571.1188354492188 - ], - "text": "Indicators Characteristic Total score (5 point system) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_10": { - "bbox": [ - 86.51995849609375, - 569.832275390625, - 473.84881591796875, - 583.118896484375 - ], - "text": "Packaging condition Remained airtight ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_11": { - "bbox": [ - 92.03996276855469, - 581.3522338867188, - 491.6080627441406, - 594.6388549804688 - ], - "text": "Surface condition Homogeneous mass, with small inclusions 4.9±0.02 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_12": { - "bbox": [ - 115.79829406738281, - 602.8322143554688, - 491.6072692871094, - 627.6388549804688 - ], - "text": "Color Green, with small inclusions of beige 4.8±0.01 Smell Peculiar to this type, wheat grass 4.9±0.03 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_13": { - "bbox": [ - 111.95814514160156, - 635.8322143554688, - 491.6063232421875, - 729.518798828125 - ], - "text": "Taste Sweetish, typical for this type, with a wheat flavor 4.8±0.01 Texture Homogeneous, without coarse particles 4.9±0.02 12 days identically 30 days identically 48 days identically ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_14": { - "bbox": [ - 85.07996368408203, - 728.054931640625, - 87.83831024169922, - 742.7822875976562 - ], - "text": " ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 85.07996368408203, - "X1": 87.83831024169922, - "avg_char_width": 0, - "avg_char_height": 14.72735595703125, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 85.07996368408203, - 728.054931640625, - 87.83831024169922, - 742.7822875976562 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 85.07996368408203, - 728.054931640625, - 87.83831024169922, - 742.7822875976562 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_15": { - "bbox": [ - 221.03990173339844, - 127.53024291992188, - 405.2107238769531, - 170.8502960205078 - ], - "text": "d c b a", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_16": { - "bbox": [ - 234.3599090576172, - 152.13021850585938, - 418.217529296875, - 174.4502716064453 - ], - "text": "C B A B d", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_17": { - "bbox": [ - 307.6799011230469, - 124.05020141601562, - 431.2408752441406, - 144.09022521972656 - ], - "text": "c a b", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_18": { - "bbox": [ - 192.95994567871094, - 207.33016967773438, - 198.00802612304688, - 217.29017639160156 - ], - "text": "0", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_19": { - "bbox": [ - 180.2399444580078, - 189.93014526367188, - 198.00686645507812, - 199.89015197753906 - ], - "text": "0.05", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_20": { - "bbox": [ - 185.27993774414062, - 172.41018676757812, - 197.88523864746094, - 182.3701934814453 - ], - "text": "0.1", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_21": { - "bbox": [ - 180.2399444580078, - 154.89016723632812, - 198.00686645507812, - 164.8501739501953 - ], - "text": "0.15", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_22": { - "bbox": [ - 185.27993774414062, - 137.37014770507812, - 197.88523864746094, - 147.3301544189453 - ], - "text": "0.2", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_23": { - "bbox": [ - 180.2399444580078, - 119.85012817382812, - 198.00686645507812, - 129.8101348876953 - ], - "text": "0.25", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_24": { - "bbox": [ - 224.39993286132812, - 220.41006469726562, - 428.0860290527344, - 230.3700714111328 - ], - "text": " 30:70 40:60 50:50 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_25": { - "bbox": [ - 164.6816864013672, - 127.74076843261719, - 178.47628784179688, - 236.6402587890625 - ], - "text": "content of B vitamins, mg", - "dir": [ - 0.0, - -1.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_26": { - "bbox": [ - 226.43991088867188, - 241.41024780273438, - 397.07958984375, - 251.37025451660156 - ], - "text": "vitamin В1 vitamin В2 vitamin В6", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_27": { - "bbox": [ - 226.1999053955078, - 376.6501770019531, - 230.4114990234375, - 386.61016845703125 - ], - "text": "c", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_28": { - "bbox": [ - 289.79986572265625, - 342.9302062988281, - 357.5707092285156, - 354.4501953125 - ], - "text": "a a", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_29": { - "bbox": [ - 415.559814453125, - 363.0901794433594, - 420.7926940917969, - 373.0501708984375 - ], - "text": "b", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_30": { - "bbox": [ - 175.7999267578125, - 410.9701843261719, - 188.4052276611328, - 420.93017578125 - ], - "text": "2.8", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_31": { - "bbox": [ - 183.35992431640625, - 393.93017578125, - 188.4080047607422, - 403.8901672363281 - ], - "text": "3", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_32": { - "bbox": [ - 175.7999267578125, - 376.8901672363281, - 188.4052276611328, - 386.85015869140625 - ], - "text": "3.2", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_33": { - "bbox": [ - 175.7999267578125, - 359.85015869140625, - 188.4052276611328, - 369.8101501464844 - ], - "text": "3.4", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_34": { - "bbox": [ - 175.7999267578125, - 342.8101806640625, - 188.4052276611328, - 352.7701721191406 - ], - "text": "3.6", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_35": { - "bbox": [ - 216.59991455078125, - 423.9301452636719, - 430.8460998535156, - 433.89013671875 - ], - "text": " 30:70 40:60 50:50 60:40", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_36": { - "bbox": [ - 160.24168395996094, - 350.58013916015625, - 174.03628540039062, - 414.7201843261719 - ], - "text": "criteria quality", - "dir": [ - 0.0, - -1.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - } - }, - "page_6": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "6", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "6", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 70.92044067382812, - 111.73517608642578, - 527.1589965820312, - 265.9022216796875 - ], - "text": "Based on the results obtained, it is seen that the best results are observed in samples of a complex food supplement with a concentrate from germinated wheat grains and juice from wheat germ in ratios 40:60 and 50:50. Since organoleptic indices and the safety of vitamin C are greater when the ratio of the concentrate of germinated wheat grains and juice from green wheat sprouts is 40:60, this ratio was chosen optimal for obtaining a comprehensive nutritional supplement from germinated wheat. To prevent spoilage, a complex food supplement with a ratio of concentrate from germinated wheat and juice from green wheat germ - 40:60, was Packed in a polymer film using a vacuum packaging machine Profi Cook PC-VK 1015, then frozen in an intensive cooling chamber PF 031AF CHILLY GN1. Ready packaged and frozen complex food supplement was stored for 48 days at a temperature of (-18 ± 2) ℃ . To control the quality of the complex nutritional supplement and establish the shelf life, three control points were established (12; 30 and 48 days), in which organoleptic and microbiological parameters were determined (Table 1 - 2). ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.92045593261719, - "X1": 527.1582641601562, - "avg_char_width": 5.470729542810218, - "avg_char_height": 6.338167710737749, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92044067382812, - 111.73517608642578, - 527.1589965820312, - 177.1024169921875 - ], - "text": "Based on the results obtained, it is seen that the best results are observed in samples of a complex food supplement with a concentrate from germinated wheat grains and juice from wheat germ in ratios 40:60 and 50:50. Since organoleptic indices and the safety of vitamin C are greater when the ratio of the concentrate of germinated wheat grains and juice from green wheat sprouts is 40:60, this ratio was chosen optimal for obtaining a comprehensive nutritional supplement from germinated wheat. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92044067382812, - 174.9749755859375, - 527.1588745117188, - 265.9022216796875 - ], - "text": "To prevent spoilage, a complex food supplement with a ratio of concentrate from germinated wheat and juice from green wheat germ - 40:60, was Packed in a polymer film using a vacuum packaging machine Profi Cook PC-VK 1015, then frozen in an intensive cooling chamber PF 031AF CHILLY GN1. Ready packaged and frozen complex food supplement was stored for 48 days at a temperature of (-18 ± 2) ℃ . To control the quality of the complex nutritional supplement and establish the shelf life, three control points were established (12; 30 and 48 days), in which organoleptic and microbiological parameters were determined (Table 1 - 2). ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92044067382812, - 111.73517608642578, - 527.1589965820312, - 177.1024169921875 - ], - [ - 70.92044067382812, - 174.9749755859375, - 527.1588745117188, - 265.9022216796875 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_5": { - "bbox": [ - 76.79997253417969, - 269.775146484375, - 504.83807373046875, - 285.1649169921875 - ], - "text": "Table 2. Microbiological indicators of a complex nutritional supplement from germinated wheat ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 76.79997253417969, - "X1": 504.83807373046875, - "avg_char_width": 5.219976843857184, - "avg_char_height": 15.3897705078125, - "block_font_type": "Times-Bold", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 76.79997253417969, - 269.775146484375, - 504.83807373046875, - 285.1649169921875 - ], - "text": "Table 2. Microbiological indicators of a complex nutritional supplement from germinated wheat ", - "is_matched": 1, - "font_type": "Times-Bold", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 76.79997253417969, - 269.775146484375, - 504.83807373046875, - 285.1649169921875 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_6": { - "bbox": [ - 76.79997253417969, - 293.9523620605469, - 502.4080810546875, - 307.239013671875 - ], - "text": "Name of indicators Test results after storage Valid levels ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_7": { - "bbox": [ - 76.79997253417969, - 305.9523620605469, - 454.40777587890625, - 319.239013671875 - ], - "text": " 12 days 30 days 48 days ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_8": { - "bbox": [ - 76.79977416992188, - 317.3523864746094, - 520.8880004882812, - 376.7189025878906 - ], - "text": "QMAFAM, CFU / g <5•10 4 <5•10 4 <5•10 4 no more than 5•10 4 Escherichia coli bacteria in 0,1 g not detected not detected not detected not allowed Pathogenic, including salmonella in 25 g not detected not detected not detected not allowed ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_9": { - "bbox": [ - 76.79977416992188, - 374.832275390625, - 519.6874389648438, - 388.1189270019531 - ], - "text": "Mold, CFU / g < 50 < 50 < 50 no more than 50 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_10": { - "bbox": [ - 70.92071533203125, - 392.6550598144531, - 527.15869140625, - 496.182373046875 - ], - "text": " After 48 days of storage at a temperature of (-18 ± 2) ℃ , the organoleptic characteristics of the complex nutritional supplement from germinated wheat are high and meet the requirements of TR TS 021/2011. Microbiological indicators at the control points during storage and before vacuum packaging are identical, while the packaging has remained airtight. Table 3. Evaluation of the nutritional value of a comprehensive nutritional supplement from germinated wheat (100 g) ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 82.919677734375, - "X1": 406.1984558105469, - "avg_char_width": 5.317960289363293, - "avg_char_height": 6.342854091099331, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 85.07996368408203, - 392.6550598144531, - 87.83831024169922, - 407.3824157714844 - ], - "text": " ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92071533203125, - 405.49505615234375, - 527.15869140625, - 470.8623962402344 - ], - "text": "After 48 days of storage at a temperature of (-18 ± 2) ℃ , the organoleptic characteristics of the complex nutritional supplement from germinated wheat are high and meet the requirements of TR TS 021/2011. Microbiological indicators at the control points during storage and before vacuum packaging are identical, while the packaging has remained airtight. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 82.91939544677734, - 468.7350158691406, - 492.23779296875, - 496.182373046875 - ], - "text": "Table 3. Evaluation of the nutritional value of a comprehensive nutritional supplement from germinated wheat (100 g) ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 85.07996368408203, - 392.6550598144531, - 87.83831024169922, - 407.3824157714844 - ], - [ - 70.92071533203125, - 405.49505615234375, - 527.15869140625, - 470.8623962402344 - ], - [ - 82.91939544677734, - 468.7350158691406, - 492.23779296875, - 496.182373046875 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_11": { - "bbox": [ - 152.27993774414062, - 500.8322448730469, - 509.7281188964844, - 525.6388549804688 - ], - "text": "Indicator Value Daily requirement, mg, g / day, MR 2.3.1.2432-08 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_12": { - "bbox": [ - 82.91996002197266, - 524.3522338867188, - 460.7680969238281, - 537.6388549804688 - ], - "text": "Protein, g 4.96 74/89±0.50 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_13": { - "bbox": [ - 97.07996368408203, - 536.8881225585938, - 454.05010986328125, - 549.2100830078125 - ], - "text": "% of daily requirement 6.3/5.57 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_14": { - "bbox": [ - 82.91996002197266, - 547.9922485351562, - 454.40814208984375, - 572.9700927734375 - ], - "text": "Fiber, g 0.72 20±0.10 % of daily requirement 3.6 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_15": { - "bbox": [ - 82.91996002197266, - 571.7522583007812, - 454.4081726074219, - 596.7301025390625 - ], - "text": "Vitamin C, mg 4.3 90±0.15 % of daily requirement 4.7 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_16": { - "bbox": [ - 82.91996002197266, - 595.3922729492188, - 455.7281188964844, - 620.3701171875 - ], - "text": "Vitamin B 1 , mg 0.13 1.5±0.05 % of daily requirement 8.6 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_17": { - "bbox": [ - 82.91996002197266, - 619.1522216796875, - 455.7286376953125, - 644.1300659179688 - ], - "text": "Vitamin B 2 , mg 0.1 1.8±0.02 % of daily requirement 5.55 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_18": { - "bbox": [ - 82.91996002197266, - 642.9122314453125, - 451.8878173828125, - 667.7700805664062 - ], - "text": "Vitamin B 6 , mg 0.17 2±0.03 % of daily requirement 8.5 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_19": { - "bbox": [ - 82.91996002197266, - 666.5521850585938, - 460.7685546875, - 691.530029296875 - ], - "text": "Iron, mg 1.5 18/10±0.09 % of daily requirement 8.3/15 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_20": { - "bbox": [ - 82.91996002197266, - 690.3121948242188, - 456.9282531738281, - 715.1700439453125 - ], - "text": "Magnesium, mg 50.87 400±0.75 % of daily requirement 12.7 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - }, - "block_21": { - "bbox": [ - 82.91996002197266, - 713.9522094726562, - 459.4477844238281, - 738.9300537109375 - ], - "text": "Potassium, mg 128.4 2500±0.80 % of daily requirement 5.1 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 0, - "X1": 0, - "avg_char_width": 0, - "avg_char_height": 0, - "block_font_type": "", - "block_font_size": "", - "is_segmented": 0, - "is_overlap": true, - "paras": {}, - "bboxes_para": [], - "is_header": 0, - "is_footer": 0 - } - }, - "page_7": { - "block_0": { - "bbox": [ - 70.0, - 56.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "P2ARM 2020 IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.0, - "X1": 241.40998077392578, - "avg_char_width": 5.575718145260866, - "avg_char_height": 7.0, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - "text": "P2ARM 2020", - "is_matched": 0, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ], - "text": "IOP Conf. Series: Earth and Environmental Science 640 (2021) 022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.0, - 56.0888671875, - 125.83000183105469, - 67.1630859375 - ], - [ - 70.0, - 70.0888671875, - 356.9899597167969, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_1": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "dir": [ - 1.0, - 0.0 - ], - "X0": 463.42999267578125, - "X1": 524.7999877929688, - "avg_char_width": 4.720768855168269, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ], - "text": "IOP Publishing", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 463.42999267578125, - 56.0888671875, - 524.7999877929688, - 67.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_2": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "dir": [ - 1.0, - 0.0 - ], - "X0": 372.54998779296875, - "X1": 524.9998779296875, - "avg_char_width": 4.483820298138787, - "avg_char_height": 11.07421875, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 10.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ], - "text": "doi:10.1088/1755-1315/640/2/022090", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 10.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 372.54998779296875, - 70.0888671875, - 524.9998779296875, - 81.1630859375 - ] - ], - "is_header": 1, - "is_footer": 0 - }, - "block_3": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "7", - "dir": [ - 1.0, - 0.0 - ], - "X0": 298.0, - "X1": 302.0, - "avg_char_width": 4.0, - "avg_char_height": 10.6719970703125, - "block_font_type": "TimesNewRomanPSMT", - "block_font_size": 8.0, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ], - "text": "7", - "is_matched": 1, - "font_type": "TimesNewRomanPSMT", - "font_size": 8.0, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 298.0, - 790.5759887695312, - 302.0, - 801.2479858398438 - ] - ], - "is_header": 0, - "is_footer": 1 - }, - "block_4": { - "bbox": [ - 70.91949462890625, - 111.73517608642578, - 527.1599731445312, - 303.8221435546875 - ], - "text": "Thus, taking into account k = 1.2 (MUK 4.2. 1847-04), the shelf life of the frozen complex nutritional supplement from germinated wheat packed in a vacuum bag was taken 40 days at a controlled temperature of -18 ± 2 ℃ , air humidity 75%. Evaluation of the nutritional value of a comprehensive nutritional supplement from germinated wheat was carried out for men and women of the III group of physical activity and the age group of 30-39 years (MR 2.3.1.2432-08). Table 3 shows the level of satisfaction of the daily needs of the human body for basic nutrients due to 100 g of a complex nutritional supplement from germinated wheat. The results of the study showed that a complex nutritional supplement from germinated wheat has a high nutritional value, is safe by microbiological indicators and can be used as an additive to various thick drinks (smoothies). An example of the use of the obtained complex nutritional supplement can be a formulation with the following ratio of ingredients (complex nutritional supplement: fresh apple: banana: ice or mineral water - 30: 30: 30: 10). The testing of beverage formulations using a complex nutritional supplement from germinated wheat was carried out at the company MAMA FLORA LLC under the direction of director T. B. Bronnikov. As a result, the product received high consumer reviews and can be used to produce drinks (smoothies) of high nutritional value. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.9210205078125, - "X1": 527.1588134765625, - "avg_char_width": 5.445645313822755, - "avg_char_height": 6.334271839686802, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.91949462890625, - 111.73517608642578, - 527.1572875976562, - 152.02252197265625 - ], - "text": "Thus, taking into account k = 1.2 (MUK 4.2. 1847-04), the shelf life of the frozen complex nutritional supplement from germinated wheat packed in a vacuum bag was taken 40 days at a controlled temperature of -18 ± 2 ℃ , air humidity 75%. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92002868652344, - 149.8951416015625, - 527.1588134765625, - 202.662353515625 - ], - "text": "Evaluation of the nutritional value of a comprehensive nutritional supplement from germinated wheat was carried out for men and women of the III group of physical activity and the age group of 30-39 years (MR 2.3.1.2432-08). Table 3 shows the level of satisfaction of the daily needs of the human body for basic nutrients due to 100 g of a complex nutritional supplement from germinated wheat. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 70.92100524902344, - 200.53497314453125, - 527.1599731445312, - 303.8221435546875 - ], - "text": "The results of the study showed that a complex nutritional supplement from germinated wheat has a high nutritional value, is safe by microbiological indicators and can be used as an additive to various thick drinks (smoothies). An example of the use of the obtained complex nutritional supplement can be a formulation with the following ratio of ingredients (complex nutritional supplement: fresh apple: banana: ice or mineral water - 30: 30: 30: 10). The testing of beverage formulations using a complex nutritional supplement from germinated wheat was carried out at the company MAMA FLORA LLC under the direction of director T. B. Bronnikov. As a result, the product received high consumer reviews and can be used to produce drinks (smoothies) of high nutritional value. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.91949462890625, - 111.73517608642578, - 527.1572875976562, - 152.02252197265625 - ], - [ - 70.92002868652344, - 149.8951416015625, - 527.1588134765625, - 202.662353515625 - ], - [ - 70.92100524902344, - 200.53497314453125, - 527.1599731445312, - 303.8221435546875 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_5": { - "bbox": [ - 70.92001342773438, - 314.0341796875, - 527.1600952148438, - 454.90240478515625 - ], - "text": "4. Conclusions As a result of the studies, the obtained complex nutritional supplement from germinated wheat has the following optimal ratio of concentrate from germinated wheat grain and juice from green wheat sprouts equal to 40:60. The complex nutritional supplement from germinated wheat has high organoleptic characteristics, is safe by microbiological indicators. The shelf life of a complex nutritional supplement of germinated wheat in a vacuum package frozen at an adjustable temperature of -18 ± 2 ° C, air humidity of 75% is 40 days. The use of 100 g of a complex nutritional supplement from germinated wheat satisfies the daily need of the human body for protein by 6.3-5.57%, fiber - 3.6%, vitamin C - 4.7%, vitamin B 1 - 8.6%, B 2 - 5.55%, B 6 - 8.5%, in iron - 8.3-15%, magnesium - 12.7%, potassium - 5.1%, which indicates a high nutritional value of the product. This complex nutritional supplement can be used in the catering system in order to obtain drinks (smoothies) and other products of high nutritional value. ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 70.9219970703125, - "X1": 527.1593017578125, - "avg_char_width": 5.341250471444055, - "avg_char_height": 6.30704345703125, - "block_font_type": "Times-Roman", - "block_font_size": 10.316906143637265, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92201232910156, - 314.0341796875, - 144.2403106689453, - 329.3245849609375 - ], - "text": "4. Conclusions ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 10.271919429302216, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92001342773438, - 326.414794921875, - 527.1600952148438, - 454.90240478515625 - ], - "text": "As a result of the studies, the obtained complex nutritional supplement from germinated wheat has the following optimal ratio of concentrate from germinated wheat grain and juice from green wheat sprouts equal to 40:60. The complex nutritional supplement from germinated wheat has high organoleptic characteristics, is safe by microbiological indicators. The shelf life of a complex nutritional supplement of germinated wheat in a vacuum package frozen at an adjustable temperature of -18 ± 2 ° C, air humidity of 75% is 40 days. The use of 100 g of a complex nutritional supplement from germinated wheat satisfies the daily need of the human body for protein by 6.3-5.57%, fiber - 3.6%, vitamin C - 4.7%, vitamin B 1 - 8.6%, B 2 - 5.55%, B 6 - 8.5%, in iron - 8.3-15%, magnesium - 12.7%, potassium - 5.1%, which indicates a high nutritional value of the product. This complex nutritional supplement can be used in the catering system in order to obtain drinks (smoothies) and other products of high nutritional value. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 10.271919429302216, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92201232910156, - 314.0341796875, - 144.2403106689453, - 329.3245849609375 - ], - [ - 70.92001342773438, - 326.414794921875, - 527.1600952148438, - 454.90240478515625 - ] - ], - "is_header": 0, - "is_footer": 0 - }, - "block_6": { - "bbox": [ - 70.91970825195312, - 465.2344055175781, - 527.160400390625, - 750.4622802734375 - ], - "text": "References [1] Mujoriya R 2011 A study on wheat grass and its nutritional value Food science and Quality Management 2 [2] Singh N, Verma P and Pandey B R 2012 Therapeutic Potential of Organic Triticum aestivum Linn. (Wheat Grass) in Prevention and Treatment of Chronic Diseases, an Overview International Journal of Pharmaceutical Sciences and Drug Research 4 (1) 10-4 [3] Antset V U and Vitchuk N A 2017 Methods of qualimetric assessment of the quality of production processes News of TulSU . Technical science 8-1 324-30 [4] Lai C N 1978 Inhibition of in vitro metabolic activation of carcinogens by wheat sprout extracts Nutrition and Cancer 1 (1) 27–30 [5] Chiu L C 2005 The Chlorophyllin induced cell cycle arrest and apoptosis in human breast cancer MCF 7 cells is associated with ERK deactivation and Cyclin D1 depletion International Journal of Molecular Medicine 16 (4) 735–740. [6] Chauhan M A 2012 pilot study on wheat grass juice for its phytochemical, nutritional and therapeutic potential on chronic diseases International Journal of Chemistry Studies 2 (4) 27– 34. [7] Kasina V V and Safronova T N 2019 Development of technology for obtaining concentrated product from sprouted wheat grain for the public catering system Food industry 9 24-8 [8] Kasina V V, Safronova T N and Safronova K V 2017 Wheat sprouts juice production technology development and determination of juice storage modes and terms Technique and technology of food production 2 (48) 64-72 ", - "dir": [ - 1.0, - 0.0 - ], - "X0": 106.31977844238281, - "X1": 525.8375854492188, - "avg_char_width": 5.6130641179113425, - "avg_char_height": 6.440488542829241, - "block_font_type": "Times-Roman", - "block_font_size": 11.036693572998047, - "is_segmented": 1, - "is_overlap": false, - "paras": { - "para_0": { - "bbox": [ - 70.92001342773438, - 465.2344055175781, - 127.67832946777344, - 480.5248107910156 - ], - "text": "References ", - "is_matched": 0, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_1": { - "bbox": [ - 70.92001342773438, - 477.2521667480469, - 527.158203125, - 505.48480224609375 - ], - "text": "[1] Mujoriya R 2011 A study on wheat grass and its nutritional value Food science and Quality Management 2 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_2": { - "bbox": [ - 70.9203872680664, - 503.65216064453125, - 527.1587524414062, - 544.4847412109375 - ], - "text": "[2] Singh N, Verma P and Pandey B R 2012 Therapeutic Potential of Organic Triticum aestivum Linn. (Wheat Grass) in Prevention and Treatment of Chronic Diseases, an Overview International Journal of Pharmaceutical Sciences and Drug Research 4 (1) 10-4 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_3": { - "bbox": [ - 70.92047119140625, - 542.6521606445312, - 527.1583862304688, - 570.884765625 - ], - "text": "[3] Antset V U and Vitchuk N A 2017 Methods of qualimetric assessment of the quality of production processes News of TulSU . Technical science 8-1 324-30 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_4": { - "bbox": [ - 70.91996765136719, - 567.8521118164062, - 527.157958984375, - 596.2047729492188 - ], - "text": "[4] Lai C N 1978 Inhibition of in vitro metabolic activation of carcinogens by wheat sprout extracts Nutrition and Cancer 1 (1) 27–30 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_5": { - "bbox": [ - 70.91973876953125, - 593.172119140625, - 527.1582641601562, - 634.124755859375 - ], - "text": "[5] Chiu L C 2005 The Chlorophyllin induced cell cycle arrest and apoptosis in human breast cancer MCF 7 cells is associated with ERK deactivation and Cyclin D1 depletion International Journal of Molecular Medicine 16 (4) 735–740. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_6": { - "bbox": [ - 70.91970825195312, - 631.0921020507812, - 527.1580810546875, - 671.38232421875 - ], - "text": "[6] Chauhan M A 2012 pilot study on wheat grass juice for its phytochemical, nutritional and therapeutic potential on chronic diseases International Journal of Chemistry Studies 2 (4) 27– 34. ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_7": { - "bbox": [ - 70.9211196899414, - 670.0921020507812, - 527.1594848632812, - 698.4447021484375 - ], - "text": "[7] Kasina V V and Safronova T N 2019 Development of technology for obtaining concentrated product from sprouted wheat grain for the public catering system Food industry 9 24-8 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_8": { - "bbox": [ - 70.9222412109375, - 696.4921264648438, - 527.160400390625, - 737.4447021484375 - ], - "text": "[8] Kasina V V, Safronova T N and Safronova K V 2017 Wheat sprouts juice production technology development and determination of juice storage modes and terms Technique and technology of food production 2 (48) 64-72 ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - }, - "para_9": { - "bbox": [ - 70.9212646484375, - 735.7349243164062, - 73.67961120605469, - 750.4622802734375 - ], - "text": " ", - "is_matched": 1, - "font_type": "Times-Roman", - "font_size": 11.036693572998047, - "font_color": 0 - } - }, - "bboxes_para": [ - [ - 70.92001342773438, - 465.2344055175781, - 127.67832946777344, - 480.5248107910156 - ], - [ - 70.92001342773438, - 477.2521667480469, - 527.158203125, - 505.48480224609375 - ], - [ - 70.9203872680664, - 503.65216064453125, - 527.1587524414062, - 544.4847412109375 - ], - [ - 70.92047119140625, - 542.6521606445312, - 527.1583862304688, - 570.884765625 - ], - [ - 70.91996765136719, - 567.8521118164062, - 527.157958984375, - 596.2047729492188 - ], - [ - 70.91973876953125, - 593.172119140625, - 527.1582641601562, - 634.124755859375 - ], - [ - 70.91970825195312, - 631.0921020507812, - 527.1580810546875, - 671.38232421875 - ], - [ - 70.9211196899414, - 670.0921020507812, - 527.1594848632812, - 698.4447021484375 - ], - [ - 70.9222412109375, - 696.4921264648438, - 527.160400390625, - 737.4447021484375 - ], - [ - 70.9212646484375, - 735.7349243164062, - 73.67961120605469, - 750.4622802734375 - ] - ], - "is_header": 0, - "is_footer": 0 - } - } -} \ No newline at end of file diff --git a/tests/assets/paras_test.json b/tests/assets/paras_test.json deleted file mode 100644 index 5b133f65d..000000000 --- a/tests/assets/paras_test.json +++ /dev/null @@ -1,271 +0,0 @@ -{ - "page_0":{ - "para_blocks": [ - { - "block_id": 0, - "bbox": [39.0, 34.719993591308594, 347.1359558105469, 51.2079963684082], - "text": "IOP Conference Series: Earth and Environmental Science", - "dir": [1.0, 0.0], - "X0": 39.0, - "X1": 347.1359558105469, - "avg_char_width": 6.4194990793863935, - "avg_char_height": 16.48800277709961, - "block_font_type": "Helvetica", - "block_font_size": 12.0, - "is_segmented": 1, - "paras": [ - { - "para_id": 0, - "bbox": [39.0, 34.719993591308594, 347.1359558105469, 51.2079963684082], - "text": "IOP Conference Series: Earth and Environmental Science", - "is_matched": 1, - "is_title": 0, - "font_type": "Helvetica", - "font_size": 12.0, - "font_color": 0, - "neighbor_paras": [null, null] - } - ], - "bboxes_para": [[39.0, 34.719993591308594, 347.1359558105469, 51.2079963684082]] - }, - { - "block_id": 1, - "bbox": [39.0, 111.38001251220703, 143.67001342773438, 123.77301025390625], - "text": "PAPER • OPEN ACCESS", - "dir": [1.0, 0.0], - "X0": 39.0, - "X1": 143.67001342773438, - "avg_char_width": 6.541875839233398, - "avg_char_height": 12.392997741699219, - "block_font_type": "Helvetica-Bold", - "block_font_size": 9.0, - "is_segmented": 1, - "paras": [ - { - "para_id": 0, - "bbox": [39.0, 111.38001251220703, 143.67001342773438, 123.77301025390625], - "text": "PAPER • OPEN ACCESS", - "is_matched": 1, - "is_title": 0, - "font_type": "Helvetica-Bold", - "font_size": 9.0, - "font_color": 0, - "neighbor_paras": [null, null] - }, - { - "para_id": 1, - "bbox": [39.0, 111.38001251220703, 143.67001342773438, 123.77301025390625], - "text": "PAPER • OPEN ACCESS", - "is_matched": 1, - "is_title": 0, - "font_type": "Helvetica-Bold", - "font_size": 9.0, - "font_color": 0, - "neighbor_paras": [null, null] - } - ], - "bboxes_para": [[39.0, 111.38001251220703, 143.67001342773438, 123.77301025390625]] - } - ], - - "line_blocks":[ - { - "number": 0, - "type": 0, - "bbox": [ - 428.93170166015625, - 744.921142578125, - 541.5675048828125, - 757.8131713867188 - ], - "lines": [ - { - "spans": [ - { - "size": 11.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 0, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "3", - "origin": [ - 536.37548828125, - 755.3601684570312 - ], - "bbox": [ - 536.37548828125, - 744.921142578125, - 541.5675048828125, - 757.8131713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 536.37548828125, - 744.921142578125, - 541.5675048828125, - 757.8131713867188 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 0, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "Spektrum ", - "origin": [ - 428.93170166015625, - 755.3601684570312 - ], - "bbox": [ - 428.93170166015625, - 747.7681884765625, - 458.7516174316406, - 757.1441650390625 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "UniversNextPro-Cond", - "color": 0, - "ascender": 0.9359999895095825, - "descender": -0.21400000154972076, - "text": "der Wissenschaft ", - "origin": [ - 458.431884765625, - 755.3601684570312 - ], - "bbox": [ - 458.431884765625, - 747.8721923828125, - 508.0399169921875, - 757.0721435546875 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "7.21", - "origin": [ - 510.2349853515625, - 755.3601684570312 - ], - "bbox": [ - 510.2349853515625, - 747.9281616210938, - 524.5621948242188, - 757.1361694335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 428.93170166015625, - 747.7681884765625, - 524.5621948242188, - 757.1441650390625 - ] - } - ] - } - ], - - "images":[ - { - "image_bbox":[0,0,1,1], - "image_path":"path/to/image.jpg" - }, - { - "image_bbox":[1,2,3,4], - "image_path":"path/to/image.jpg" - } - ], - - "tables":[ - { - "table_bbox":[0,0,1,1], - "image_path":"path/to/image.jpg" - }, - { - "table_bbox":[1,2,3,4], - "image_path":"path/to/image.jpg" - } - ], - - "interline_equations":[ - { - "equation_bbox":[0,0,1,1], - "image_path":"path/to/equation.jpg" - }, - { - "equation_bbox":[1,2,3,4], - "image_path":"path/to/equation.jpg" - } - ], - - "inline_equations":[ - { - "equation_bbox":[0,0,1,1], - "image_path":"path/to/equation.jpg" - }, - { - "equation_bbox":[1,2,3,4], - "image_path":"path/to/equation.jpg" - } - ], - - "layout_bboxes":[ - { - "layout_bbox": [0,0, 1,1], - "layout_label":"V|H|B" - }, - { - "layout_bbox": [1,2,3,4], - "layout_label":"V|H|B" - } - ], - "pymu_raw_blocks":[], - - "global_statistic":{ - - }, - "droped_text_block":[ - - - ], - "droped_image_block":[ - - ], - "droped_table_block":[ - - ], - "image_backup":[ - - ], - "table_backup":[ - - ] - }, - "page_1":{ - - } -} \ No newline at end of file diff --git a/tests/assets/pdf_text_example/vertical_blocks.json b/tests/assets/pdf_text_example/vertical_blocks.json deleted file mode 100644 index a4b70767e..000000000 --- a/tests/assets/pdf_text_example/vertical_blocks.json +++ /dev/null @@ -1,617 +0,0 @@ -[ - { - "number": 0, - "type": 0, - "bbox": [ - 133.7009735107422, - 71.23444366455078, - 241.90069580078125, - 105.01055908203125 - ], - "lines": [ - { - "spans": [ - { - "size": 25.81100082397461, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "调虎离山", - "origin": [ - 133.7009735107422, - 98.15451049804688 - ], - "bbox": [ - 133.7009735107422, - 71.23444366455078, - 241.90069580078125, - 105.01055908203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.7009735107422, - 71.23444366455078, - 241.90069580078125, - 105.01055908203125 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 45.990631103515625, - 298.78173828125, - 93.81614685058594, - 314.27288818359375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "【译文】", - "origin": [ - 45.990631103515625, - 311.12841796875 - ], - "bbox": [ - 45.990631103515625, - 298.78173828125, - 93.81614685058594, - 314.27288818359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 45.990631103515625, - 298.78173828125, - 93.81614685058594, - 314.27288818359375 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 76.05915069580078, - 323.13250732421875, - 324.24285888671875, - 338.6236572265625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "等待客观条件对敌方不利时再去围困它,用人为", - "origin": [ - 76.05915069580078, - 335.47918701171875 - ], - "bbox": [ - 76.05915069580078, - 323.13250732421875, - 324.24285888671875, - 338.6236572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.05915069580078, - 323.13250732421875, - 324.24285888671875, - 338.6236572265625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 51.968841552734375, - 347.19915771484375, - 324.2073669433594, - 362.6903076171875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "的因素去诱惑调动它。向前进攻有危险时,就想办法", - "origin": [ - 51.968841552734375, - 359.54583740234375 - ], - "bbox": [ - 51.968841552734375, - 347.19915771484375, - 324.2073669433594, - 362.6903076171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 51.968841552734375, - 347.19915771484375, - 324.2073669433594, - 362.6903076171875 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 51.933349609375, - 371.36053466796875, - 159.9906005859375, - 386.8516540527344 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "让敌人返过来攻我。", - "origin": [ - 51.933349609375, - 383.7071838378906 - ], - "bbox": [ - 51.933349609375, - 371.36053466796875, - 159.9906005859375, - 386.8516540527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 51.933349609375, - 371.36053466796875, - 159.9906005859375, - 386.8516540527344 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 45.884117126464844, - 402.60101318359375, - 93.70964050292969, - 418.0921325683594 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "【溯源】", - "origin": [ - 45.884117126464844, - 414.9476623535156 - ], - "bbox": [ - 45.884117126464844, - 402.60101318359375, - 93.70964050292969, - 418.0921325683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 45.884117126464844, - 402.60101318359375, - 93.70964050292969, - 418.0921325683594 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 75.95264434814453, - 426.9517822265625, - 324.14825439453125, - 442.4429016113281 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "调虎离山,此计用在军事上,是一种调动敌人的", - "origin": [ - 75.95264434814453, - 439.2984313964844 - ], - "bbox": [ - 75.95264434814453, - 426.9517822265625, - 324.14825439453125, - 442.4429016113281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.95264434814453, - 426.9517822265625, - 324.14825439453125, - 442.4429016113281 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 169.9068603515625, - 447.10321044921875, - 205.61537170410156, - 459.161376953125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.829999923706055, - "flags": 4, - "font": "DY2+ZJSBrL-2", - "color": 0, - "ascender": 0.800000011920929, - "descender": -0.20000000298023224, - "text": "!", - "origin": [ - 185.62425231933594, - 456.81591796875 - ], - "bbox": [ - 185.62425231933594, - 449.7519226074219, - 190.03924560546875, - 458.5819091796875 - ] - }, - { - "size": 8.829999923706055, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": " —", - "origin": [ - 190.03924560546875, - 456.81591796875 - ], - "bbox": [ - 190.03924560546875, - 447.10321044921875, - 205.61537170410156, - 459.161376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 185.62425231933594, - 447.10321044921875, - 205.61537170410156, - 459.161376953125 - ] - }, - { - "spans": [ - { - "size": 8.829999923706055, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "—", - "origin": [ - 169.9068603515625, - 456.3126220703125 - ], - "bbox": [ - 169.9068603515625, - 447.10321044921875, - 178.7368621826172, - 458.6580810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.9068603515625, - 447.10321044921875, - 178.7368621826172, - 458.6580810546875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 106.35260009765625, - 11.284072875976562, - 238.4646453857422, - 26.775205612182617 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "图说案例本三十六计全书", - "origin": [ - 106.35260009765625, - 23.6307373046875 - ], - "bbox": [ - 106.35260009765625, - 11.284072875976562, - 238.4646453857422, - 26.775205612182617 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.35260009765625, - 11.284072875976562, - 238.4646453857422, - 26.775205612182617 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 338.5431213378906, - 231.63661193847656, - 350.3811340332031, - 283.2099609375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "第", - "origin": [ - 338.5431213378906, - 243.9832763671875 - ], - "bbox": [ - 338.5431213378906, - 231.63661193847656, - 350.3811340332031, - 247.12774658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 231.63661193847656, - 350.3811340332031, - 247.12774658203125 - ] - }, - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "十", - "origin": [ - 338.5431213378906, - 256.01068115234375 - ], - "bbox": [ - 338.5431213378906, - 243.6640167236328, - 350.3811340332031, - 259.1551513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 243.6640167236328, - 350.3811340332031, - 259.1551513671875 - ] - }, - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "五", - "origin": [ - 338.5431213378906, - 268.0380859375 - ], - "bbox": [ - 338.5431213378906, - 255.69142150878906, - 350.3811340332031, - 271.18255615234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 255.69142150878906, - 350.3811340332031, - 271.18255615234375 - ] - }, - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "计", - "origin": [ - 338.5431213378906, - 280.06549072265625 - ], - "bbox": [ - 338.5431213378906, - 267.71881103515625, - 350.3811340332031, - 283.2099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 267.71881103515625, - 350.3811340332031, - 283.2099609375 - ] - } - ] - } - ] \ No newline at end of file diff --git a/tests/assets/pdf_text_example/vertical_en_blocks.json b/tests/assets/pdf_text_example/vertical_en_blocks.json deleted file mode 100644 index 85901d9f1..000000000 --- a/tests/assets/pdf_text_example/vertical_en_blocks.json +++ /dev/null @@ -1,6296 +0,0 @@ -[ - { - "number": 0, - "type": 0, - "bbox": [ - 163.52999877929688, - 87.15061950683594, - 432.6361389160156, - 123.74800872802734 - ], - "lines": [ - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "ViLT: Vision-and-Language Transformer", - "origin": [ - 172.30999755859375, - 100.9229736328125 - ], - "bbox": [ - 172.30999755859375, - 87.15061950683594, - 424.8892517089844, - 105.81502532958984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 172.30999755859375, - 87.15061950683594, - 424.8892517089844, - 105.81502532958984 - ] - }, - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Without Convolution or Region Supervision", - "origin": [ - 163.52999877929688, - 118.85595703125 - ], - "bbox": [ - 163.52999877929688, - 105.08360290527344, - 432.6361389160156, - 123.74800872802734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.52999877929688, - 105.08360290527344, - 432.6361389160156, - 123.74800872802734 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 198.60899353027344, - 155.3678436279297, - 396.6109313964844, - 171.94522094726562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Wonjae Kim", - "origin": [ - 198.60899353027344, - 168.5479736328125 - ], - "bbox": [ - 198.60899353027344, - 158.98387145996094, - 252.37713623046875, - 171.94522094726562 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 252.37713623046875, - 168.5479736328125 - ], - "bbox": [ - 252.37713623046875, - 158.4881591796875, - 254.03799438476562, - 170.5076141357422 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "* 1 \u2020", - "origin": [ - 254.03799438476562, - 164.93194580078125 - ], - "bbox": [ - 254.03799438476562, - 158.4881591796875, - 267.8182373046875, - 166.89158630371094 - ] - }, - { - "size": 9.962599754333496, - "flags": 21, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": " ", - "origin": [ - 267.8182373046875, - 164.93194580078125 - ], - "bbox": [ - 267.8182373046875, - 155.3678436279297, - 274.4620056152344, - 171.94522094726562 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Bokyung Son", - "origin": [ - 274.4620056152344, - 168.5479736328125 - ], - "bbox": [ - 274.4620056152344, - 158.98387145996094, - 331.06951904296875, - 171.94522094726562 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 331.06951904296875, - 168.5479736328125 - ], - "bbox": [ - 331.06951904296875, - 158.4881591796875, - 332.7300109863281, - 170.5076141357422 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "* 1", - "origin": [ - 332.7300109863281, - 164.93194580078125 - ], - "bbox": [ - 332.7300109863281, - 158.4881591796875, - 341.36358642578125, - 166.89158630371094 - ] - }, - { - "size": 9.962599754333496, - "flags": 21, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": " ", - "origin": [ - 341.36358642578125, - 164.93194580078125 - ], - "bbox": [ - 341.36358642578125, - 155.3678436279297, - 348.00701904296875, - 171.94522094726562 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Ildoo Kim", - "origin": [ - 348.00701904296875, - 168.5479736328125 - ], - "bbox": [ - 348.00701904296875, - 158.98387145996094, - 391.4638977050781, - 171.94522094726562 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 391.4638977050781, - 168.5479736328125 - ], - "bbox": [ - 391.4638977050781, - 158.4881591796875, - 393.1240234375, - 170.5076141357422 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 393.1240234375, - 164.93194580078125 - ], - "bbox": [ - 393.1240234375, - 158.4881591796875, - 396.6109313964844, - 166.89158630371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.60899353027344, - 155.3678436279297, - 396.6109313964844, - 171.94522094726562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 150.19802856445312, - 191.6519775390625, - 194.68331909179688, - 207.2056884765625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Abstract", - "origin": [ - 150.19802856445312, - 203.12896728515625 - ], - "bbox": [ - 150.19802856445312, - 191.6519775390625, - 194.68331909179688, - 207.2056884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 150.19802856445312, - 191.6519775390625, - 194.68331909179688, - 207.2056884765625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 75.00700378417969, - 214.5135498046875, - 271.2561340332031, - 501.48748779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.947644233703613, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Vision-and-Language Pre-training (VLP) has im-", - "origin": [ - 75.36599731445312, - 223.718994140625 - ], - "bbox": [ - 75.36599731445312, - 214.5135498046875, - 271.1695251464844, - 226.5184783935547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 214.5135498046875, - 271.1695251464844, - 226.5184783935547 - ] - }, - { - "spans": [ - { - "size": 10.041984558105469, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "proved performance on various joint vision-and-", - "origin": [ - 75.36599731445312, - 235.67401123046875 - ], - "bbox": [ - 75.36599731445312, - 226.46856689453125, - 271.16607666015625, - 238.47349548339844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 226.46856689453125, - 271.16607666015625, - 238.47349548339844 - ] - }, - { - "spans": [ - { - "size": 10.002370834350586, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "language downstream tasks. Current approaches", - "origin": [ - 75.36599731445312, - 247.6290283203125 - ], - "bbox": [ - 75.36599731445312, - 238.423583984375, - 269.5137939453125, - 250.4285125732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 238.423583984375, - 269.5137939453125, - 250.4285125732422 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "to VLP heavily rely on image feature extraction", - "origin": [ - 75.36599731445312, - 259.583984375 - ], - "bbox": [ - 75.36599731445312, - 250.3785400390625, - 269.5183410644531, - 262.38348388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 250.3785400390625, - 269.5183410644531, - 262.38348388671875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "processes, most of which involve region super-", - "origin": [ - 75.36599731445312, - 271.53900146484375 - ], - "bbox": [ - 75.36599731445312, - 262.33355712890625, - 271.16461181640625, - 274.3385009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 262.33355712890625, - 271.16461181640625, - 274.3385009765625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "vision (e.g., object detection) and the convolu-", - "origin": [ - 75.11699676513672, - 283.4949951171875 - ], - "bbox": [ - 75.11699676513672, - 274.28955078125, - 271.1696472167969, - 286.29449462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.11699676513672, - 274.28955078125, - 271.1696472167969, - 286.29449462890625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tional architecture (e.g., ResNet). Although dis-", - "origin": [ - 75.36599731445312, - 295.45001220703125 - ], - "bbox": [ - 75.36599731445312, - 286.24456787109375, - 271.16461181640625, - 298.24951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 286.24456787109375, - 271.16461181640625, - 298.24951171875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "regarded in the literature, we \ufb01nd it problem-", - "origin": [ - 75.36599731445312, - 307.4049987792969 - ], - "bbox": [ - 75.36599731445312, - 298.1995544433594, - 271.1645812988281, - 310.2044982910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 298.1995544433594, - 271.1645812988281, - 310.2044982910156 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "atic in terms of both (1) ef\ufb01ciency/speed, that", - "origin": [ - 75.36599731445312, - 319.3599853515625 - ], - "bbox": [ - 75.36599731445312, - 310.154541015625, - 269.5184020996094, - 322.15948486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 310.154541015625, - 269.5184020996094, - 322.15948486328125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "simply extracting input features requires much", - "origin": [ - 75.36599731445312, - 331.31500244140625 - ], - "bbox": [ - 75.36599731445312, - 322.10955810546875, - 269.5184020996094, - 334.114501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 322.10955810546875, - 269.5184020996094, - 334.114501953125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "more computation than the multimodal interac-", - "origin": [ - 75.36599731445312, - 343.2699890136719 - ], - "bbox": [ - 75.36599731445312, - 334.0645446777344, - 271.16461181640625, - 346.0694885253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 334.0645446777344, - 271.16461181640625, - 346.0694885253906 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tion steps; and (2) expressive power, as it is upper", - "origin": [ - 75.36599731445312, - 355.22601318359375 - ], - "bbox": [ - 75.36599731445312, - 346.02056884765625, - 269.6858825683594, - 358.0255126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 346.02056884765625, - 269.6858825683594, - 358.0255126953125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "bounded to the expressive power of the visual", - "origin": [ - 75.36599731445312, - 367.1809997558594 - ], - "bbox": [ - 75.36599731445312, - 357.9755554199219, - 269.51837158203125, - 369.9804992675781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 357.9755554199219, - 269.51837158203125, - 369.9804992675781 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "embedder and its prede\ufb01ned visual vocabulary.", - "origin": [ - 75.36599731445312, - 379.135986328125 - ], - "bbox": [ - 75.36599731445312, - 369.9305419921875, - 271.2561340332031, - 381.93548583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 369.9305419921875, - 271.2561340332031, - 381.93548583984375 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "In this paper, we present a minimal VLP model,", - "origin": [ - 75.36599731445312, - 391.09100341796875 - ], - "bbox": [ - 75.36599731445312, - 381.88555908203125, - 270.7580871582031, - 393.8905029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 381.88555908203125, - 270.7580871582031, - 393.8905029296875 - ] - }, - { - "spans": [ - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Vision-and-Language Transformer (ViLT), mono-", - "origin": [ - 75.00700378417969, - 403.0459899902344 - ], - "bbox": [ - 75.00700378417969, - 393.8405456542969, - 271.1720886230469, - 405.8454895019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.00700378417969, - 393.8405456542969, - 271.1720886230469, - 405.8454895019531 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "lithic in the sense that the processing of visual", - "origin": [ - 75.36599731445312, - 415.0010070800781 - ], - "bbox": [ - 75.36599731445312, - 405.7955627441406, - 269.51837158203125, - 417.8005065917969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 405.7955627441406, - 269.51837158203125, - 417.8005065917969 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "inputs is drastically simpli\ufb01ed to just the same", - "origin": [ - 75.36599731445312, - 426.9570007324219 - ], - "bbox": [ - 75.36599731445312, - 417.7515563964844, - 269.51837158203125, - 429.7565002441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 417.7515563964844, - 269.51837158203125, - 429.7565002441406 - ] - }, - { - "spans": [ - { - "size": 10.037040710449219, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "convolution-free manner that we process textual", - "origin": [ - 75.36599731445312, - 438.9119873046875 - ], - "bbox": [ - 75.36599731445312, - 429.70654296875, - 269.5171203613281, - 441.71148681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 429.70654296875, - 269.5171203613281, - 441.71148681640625 - ] - }, - { - "spans": [ - { - "size": 10.02714729309082, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "inputs. We show that ViLT is up to tens of times", - "origin": [ - 75.36599731445312, - 450.86700439453125 - ], - "bbox": [ - 75.36599731445312, - 441.66156005859375, - 269.5180358886719, - 453.66650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 441.66156005859375, - 269.5180358886719, - 453.66650390625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "faster than previous VLP models, yet with com-", - "origin": [ - 75.36599731445312, - 462.8219909667969 - ], - "bbox": [ - 75.36599731445312, - 453.6165466308594, - 271.1645812988281, - 465.6214904785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 453.6165466308594, - 271.1645812988281, - 465.6214904785156 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "petitive or better downstream task performance.", - "origin": [ - 75.36599731445312, - 474.7770080566406 - ], - "bbox": [ - 75.36599731445312, - 465.5715637207031, - 271.25604248046875, - 477.5765075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 465.5715637207031, - 271.25604248046875, - 477.5765075683594 - ] - }, - { - "spans": [ - { - "size": 9.9176664352417, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Our code and pre-trained weights are available at", - "origin": [ - 75.36599731445312, - 486.73199462890625 - ], - "bbox": [ - 75.36599731445312, - 477.52655029296875, - 269.5173034667969, - 489.531494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 477.52655029296875, - 269.5173034667969, - 489.531494140625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 5234, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": "https://github.com/dandelin/vilt", - "origin": [ - 75.36599731445312, - 498.68798828125 - ], - "bbox": [ - 75.36599731445312, - 490.6083068847656, - 266.6478271484375, - 501.04913330078125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 266.64801025390625, - 498.68798828125 - ], - "bbox": [ - 266.64801025390625, - 489.4825439453125, - 269.138671875, - 501.48748779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 489.4825439453125, - 269.138671875, - 501.48748779296875 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 55.44001770019531, - 535.7109985351562, - 132.27609252929688, - 551.2647094726562 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "1. Introduction", - "origin": [ - 55.44001770019531, - 547.18798828125 - ], - "bbox": [ - 55.44001770019531, - 535.7109985351562, - 132.27609252929688, - 551.2647094726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.44001770019531, - 535.7109985351562, - 132.27609252929688, - 551.2647094726562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 55.11199951171875, - 557.3555908203125, - 291.0977478027344, - 629.1365356445312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.927669525146484, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "The pre-train-and-\ufb01ne-tune scheme has been expanded to a", - "origin": [ - 55.13100051879883, - 566.56103515625 - ], - "bbox": [ - 55.13100051879883, - 557.3555908203125, - 289.4433898925781, - 569.3605346679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.13100051879883, - 557.3555908203125, - 289.4433898925781, - 569.3605346679688 - ] - }, - { - "spans": [ - { - "size": 9.92266845703125, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "joint domain of vision and language, giving birth to the cat-", - "origin": [ - 55.439998626708984, - 578.5169677734375 - ], - "bbox": [ - 55.439998626708984, - 569.3115234375, - 291.0977478027344, - 581.3164672851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 569.3115234375, - 291.0977478027344, - 581.3164672851562 - ] - }, - { - "spans": [ - { - "size": 10.017244338989258, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "egory of", - "origin": [ - 55.439998626708984, - 590.4719848632812 - ], - "bbox": [ - 55.439998626708984, - 581.2665405273438, - 89.09119415283203, - 593.271484375 - ] - }, - { - "size": 10.017244338989258, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " Vision-and-Language Pre-training (VLP)", - "origin": [ - 89.09119415283203, - 590.4719848632812 - ], - "bbox": [ - 89.09119415283203, - 581.2665405273438, - 257.868896484375, - 593.161865234375 - ] - }, - { - "size": 10.017244338989258, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " models", - "origin": [ - 257.868896484375, - 590.4719848632812 - ], - "bbox": [ - 257.868896484375, - 581.2665405273438, - 289.4405822753906, - 593.271484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 581.2665405273438, - 289.4405822753906, - 593.271484375 - ] - }, - { - "spans": [ - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 55.11199951171875, - 602.427001953125 - ], - "bbox": [ - 55.11199951171875, - 593.2215576171875, - 58.436180114746094, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Lu et al.", - "origin": [ - 58.436180114746094, - 602.427001953125 - ], - "bbox": [ - 58.436180114746094, - 593.2215576171875, - 91.40845489501953, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 91.40845489501953, - 602.427001953125 - ], - "bbox": [ - 91.40845489501953, - 593.2215576171875, - 93.90408325195312, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 93.90408325195312, - 602.427001953125 - ], - "bbox": [ - 93.90408325195312, - 593.2215576171875, - 116.3647689819336, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 116.3647689819336, - 602.427001953125 - ], - "bbox": [ - 116.3647689819336, - 593.2215576171875, - 119.13990783691406, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Chen et al.", - "origin": [ - 119.13990783691406, - 602.427001953125 - ], - "bbox": [ - 119.13990783691406, - 593.2215576171875, - 164.58033752441406, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 164.58033752441406, - 602.427001953125 - ], - "bbox": [ - 164.58033752441406, - 593.2215576171875, - 167.0759735107422, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 167.0759735107422, - 602.427001953125 - ], - "bbox": [ - 167.0759735107422, - 593.2215576171875, - 189.52664184570312, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 189.52664184570312, - 602.427001953125 - ], - "bbox": [ - 189.52664184570312, - 593.2215576171875, - 192.30178833007812, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Su et al.", - "origin": [ - 192.30178833007812, - 602.427001953125 - ], - "bbox": [ - 192.30178833007812, - 593.2215576171875, - 227.22064208984375, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 227.22064208984375, - 602.427001953125 - ], - "bbox": [ - 227.22064208984375, - 593.2215576171875, - 229.71627807617188, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 229.71627807617188, - 602.427001953125 - ], - "bbox": [ - 229.71627807617188, - 593.2215576171875, - 252.1669464111328, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 252.1669464111328, - 602.427001953125 - ], - "bbox": [ - 252.1669464111328, - 593.2215576171875, - 254.9420928955078, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Li et al.", - "origin": [ - 254.9420928955078, - 602.427001953125 - ], - "bbox": [ - 254.9420928955078, - 593.2215576171875, - 288.1939392089844, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 288.1939392089844, - 602.427001953125 - ], - "bbox": [ - 288.1939392089844, - 593.2215576171875, - 290.6895751953125, - 605.2265014648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.11199951171875, - 593.2215576171875, - 290.6895751953125, - 605.2265014648438 - ] - }, - { - "spans": [ - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2019", - "origin": [ - 55.439998626708984, - 614.3820190429688 - ], - "bbox": [ - 55.439998626708984, - 605.1765747070312, - 75.26556396484375, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 75.26556396484375, - 614.3820190429688 - ], - "bbox": [ - 75.26556396484375, - 605.1765747070312, - 78.02131652832031, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Tan & Bansal", - "origin": [ - 78.02131652832031, - 614.3820190429688 - ], - "bbox": [ - 78.02131652832031, - 605.1765747070312, - 134.8215789794922, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 134.8215789794922, - 614.3820190429688 - ], - "bbox": [ - 134.8215789794922, - 605.1765747070312, - 137.29977416992188, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 137.29977416992188, - 614.3820190429688 - ], - "bbox": [ - 137.29977416992188, - 605.1765747070312, - 159.62335205078125, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 159.62335205078125, - 614.3820190429688 - ], - "bbox": [ - 159.62335205078125, - 605.1765747070312, - 162.3791046142578, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Li et al.", - "origin": [ - 162.3791046142578, - 614.3820190429688 - ], - "bbox": [ - 162.3791046142578, - 605.1765747070312, - 195.4679718017578, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 195.4679718017578, - 614.3820190429688 - ], - "bbox": [ - 195.4679718017578, - 605.1765747070312, - 197.9461669921875, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020a", - "origin": [ - 197.9461669921875, - 614.3820190429688 - ], - "bbox": [ - 197.9461669921875, - 605.1765747070312, - 224.66111755371094, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 224.66111755371094, - 614.3820190429688 - ], - "bbox": [ - 224.66111755371094, - 605.1765747070312, - 227.4168701171875, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Lu et al.", - "origin": [ - 227.4168701171875, - 614.3820190429688 - ], - "bbox": [ - 227.4168701171875, - 605.1765747070312, - 262.71630859375, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 262.71630859375, - 614.3820190429688 - ], - "bbox": [ - 262.71630859375, - 605.1765747070312, - 265.19451904296875, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 265.19451904296875, - 614.3820190429688 - ], - "bbox": [ - 265.19451904296875, - 605.1765747070312, - 287.5081787109375, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 287.5081787109375, - 614.3820190429688 - ], - "bbox": [ - 287.5081787109375, - 605.1765747070312, - 290.2639465332031, - 617.1815185546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 605.1765747070312, - 290.2639465332031, - 617.1815185546875 - ] - }, - { - "spans": [ - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Cho et al.", - "origin": [ - 55.439998626708984, - 626.3370361328125 - ], - "bbox": [ - 55.439998626708984, - 617.131591796875, - 94.53492736816406, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 94.53492736816406, - 626.3370361328125 - ], - "bbox": [ - 94.53492736816406, - 617.131591796875, - 97.0728988647461, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 97.0728988647461, - 626.3370361328125 - ], - "bbox": [ - 97.0728988647461, - 617.131591796875, - 119.86388397216797, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 119.86388397216797, - 626.3370361328125 - ], - "bbox": [ - 119.86388397216797, - 617.131591796875, - 122.68611145019531, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Qi et al.", - "origin": [ - 122.68611145019531, - 626.3370361328125 - ], - "bbox": [ - 122.68611145019531, - 617.131591796875, - 157.4969482421875, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 157.4969482421875, - 626.3370361328125 - ], - "bbox": [ - 157.4969482421875, - 617.131591796875, - 160.03492736816406, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 160.03492736816406, - 626.3370361328125 - ], - "bbox": [ - 160.03492736816406, - 617.131591796875, - 182.82591247558594, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 182.82591247558594, - 626.3370361328125 - ], - "bbox": [ - 182.82591247558594, - 617.131591796875, - 185.64813232421875, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Zhou et al.", - "origin": [ - 185.64813232421875, - 626.3370361328125 - ], - "bbox": [ - 185.64813232421875, - 617.131591796875, - 231.7377166748047, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 231.7377166748047, - 626.3370361328125 - ], - "bbox": [ - 231.7377166748047, - 617.131591796875, - 234.27569580078125, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 234.27569580078125, - 626.3370361328125 - ], - "bbox": [ - 234.27569580078125, - 617.131591796875, - 257.0666809082031, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 257.0666809082031, - 626.3370361328125 - ], - "bbox": [ - 257.0666809082031, - 617.131591796875, - 259.888916015625, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Huang", - "origin": [ - 259.888916015625, - 626.3370361328125 - ], - "bbox": [ - 259.888916015625, - 617.131591796875, - 289.44110107421875, - 629.1365356445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 617.131591796875, - 289.44110107421875, - 629.1365356445312 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 54.426998138427734, - 635.9896850585938, - 290.9289855957031, - 687.6925048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "*", - "origin": [ - 64.95500183105469, - 641.5130004882812 - ], - "bbox": [ - 64.95500183105469, - 635.9896850585938, - 67.94380187988281, - 643.1926879882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Equal contribution", - "origin": [ - 68.44200134277344, - 645.322021484375 - ], - "bbox": [ - 68.44200134277344, - 637.0370483398438, - 133.5630340576172, - 647.841552734375 - ] - }, - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " \u2020", - "origin": [ - 133.5630340576172, - 645.322021484375 - ], - "bbox": [ - 133.5630340576172, - 635.9896850585938, - 138.3968048095703, - 647.001708984375 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Current af\ufb01liation: NAVER AI Lab, Seong-", - "origin": [ - 138.89500427246094, - 645.322021484375 - ], - "bbox": [ - 138.89500427246094, - 637.0370483398438, - 290.9289855957031, - 647.841552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.95500183105469, - 635.9896850585938, - 290.9289855957031, - 647.841552734375 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "nam, Gyeonggi, Republic of Korea.", - "origin": [ - 55.439998626708984, - 655.2850341796875 - ], - "bbox": [ - 55.439998626708984, - 647.0000610351562, - 187.9615936279297, - 657.8045654296875 - ] - }, - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 187.9615936279297, - 655.2850341796875 - ], - "bbox": [ - 187.9615936279297, - 645.9526977539062, - 192.20399475097656, - 656.9647216796875 - ] - }, - { - "size": 5.97760009765625, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 192.20399475097656, - 651.4760131835938 - ], - "bbox": [ - 192.20399475097656, - 645.9526977539062, - 195.1927947998047, - 653.1557006835938 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Kakao Enterprise, Seong-", - "origin": [ - 195.6909942626953, - 655.2850341796875 - ], - "bbox": [ - 195.6909942626953, - 647.0000610351562, - 290.92547607421875, - 657.8045654296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 645.9526977539062, - 290.92547607421875, - 657.8045654296875 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "nam, Gyeonggi, Republic of Korea", - "origin": [ - 55.439998626708984, - 665.2479858398438 - ], - "bbox": [ - 55.439998626708984, - 656.9630126953125, - 188.9858856201172, - 667.7675170898438 - ] - }, - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 188.9858856201172, - 665.2479858398438 - ], - "bbox": [ - 188.9858856201172, - 655.9156494140625, - 192.4550018310547, - 666.9276733398438 - ] - }, - { - "size": 5.97760009765625, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 192.4550018310547, - 661.43896484375 - ], - "bbox": [ - 192.4550018310547, - 655.9156494140625, - 195.4438018798828, - 663.11865234375 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Kakao Brain, Seongnam,", - "origin": [ - 195.94200134277344, - 665.2479858398438 - ], - "bbox": [ - 195.94200134277344, - 656.9630126953125, - 290.5637512207031, - 667.7675170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 655.9156494140625, - 290.5637512207031, - 667.7675170898438 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Gyeonggi, Republic of Korea. Correspondence to: Wonjae Kim", - "origin": [ - 55.439998626708984, - 675.2100219726562 - ], - "bbox": [ - 55.439998626708984, - 666.925048828125, - 289.44256591796875, - 677.7295532226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 666.925048828125, - 289.44256591796875, - 677.7295532226562 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 54.426998138427734, - 685.1729736328125 - ], - "bbox": [ - 54.426998138427734, - 676.8880004882812, - 170.25494384765625, - 687.6925048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.426998138427734, - 676.8880004882812, - 170.25494384765625, - 687.6925048828125 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 55.1619987487793, - 693.0040283203125, - 289.4412841796875, - 717.5805053710938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": "Proceedings of the", - "origin": [ - 55.1619987487793, - 705.0980224609375 - ], - "bbox": [ - 55.1619987487793, - 696.8130493164062, - 124.84329223632812, - 707.5189208984375 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMTI9", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 38", - "origin": [ - 124.84329223632812, - 705.0980224609375 - ], - "bbox": [ - 124.84329223632812, - 698.3732299804688, - 137.28375244140625, - 707.339599609375 - ] - }, - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMMI6", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " ", - "origin": [ - 137.28375244140625, - 705.0980224609375 - ], - "bbox": [ - 137.28375244140625, - 696.8057861328125, - 138.4969940185547, - 706.5924072265625 - ] - }, - { - "size": 5.97760009765625, - "flags": 7, - "font": "CMMI6", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "th", - "origin": [ - 138.4969940185547, - 701.2890014648438 - ], - "bbox": [ - 138.4969940185547, - 696.8057861328125, - 145.68206787109375, - 702.7833862304688 - ] - }, - { - "size": 9.055620193481445, - "flags": 7, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " ", - "origin": [ - 145.68206787109375, - 701.2890014648438 - ], - "bbox": [ - 145.68206787109375, - 693.0040283203125, - 149.218994140625, - 707.5189208984375 - ] - }, - { - "size": 9.055620193481445, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": "International Conference on Machine", - "origin": [ - 149.218994140625, - 705.0980224609375 - ], - "bbox": [ - 149.218994140625, - 696.8130493164062, - 289.4412841796875, - 707.5189208984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.1619987487793, - 693.0040283203125, - 289.4412841796875, - 707.5189208984375 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": "Learning", - "origin": [ - 55.18899917602539, - 715.0609741210938 - ], - "bbox": [ - 55.18899917602539, - 706.7760009765625, - 88.06878662109375, - 717.4818725585938 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ", PMLR 139, 2021. Copyright 2021 by the author(s).", - "origin": [ - 88.06900024414062, - 715.0609741210938 - ], - "bbox": [ - 88.06900024414062, - 706.7760009765625, - 277.80706787109375, - 717.5805053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.18899917602539, - 706.7760009765625, - 277.80706787109375, - 717.5805053710938 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 502.3902282714844, - 251.63328552246094, - 525.6985473632812, - 263.7827453613281 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Modality ", - "origin": [ - 504.17840576171875, - 256.42926025390625 - ], - "bbox": [ - 504.17840576171875, - 251.63328552246094, - 525.2564697265625, - 257.59344482421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 504.17840576171875, - 251.63328552246094, - 525.2564697265625, - 257.59344482421875 - ] - }, - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Interaction", - "origin": [ - 502.3902282714844, - 262.6185607910156 - ], - "bbox": [ - 502.3902282714844, - 257.8226013183594, - 525.6985473632812, - 263.7827453613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 502.3902282714844, - 257.8226013183594, - 525.6985473632812, - 263.7827453613281 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 459.72119140625, - 292.3870849609375, - 475.1094055175781, - 298.34722900390625 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Linear ", - "origin": [ - 459.72119140625, - 297.18304443359375 - ], - "bbox": [ - 459.72119140625, - 292.3870849609375, - 475.1094055175781, - 298.34722900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.72119140625, - 292.3870849609375, - 475.1094055175781, - 298.34722900390625 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 454.3236999511719, - 298.57635498046875, - 479.13580322265625, - 304.5364990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Embedding", - "origin": [ - 454.3236999511719, - 303.372314453125 - ], - "bbox": [ - 454.3236999511719, - 298.57635498046875, - 479.13580322265625, - 304.5364990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.3236999511719, - 298.57635498046875, - 479.13580322265625, - 304.5364990234375 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 459.72119140625, - 262.53955078125, - 475.1094055175781, - 268.49969482421875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Linear ", - "origin": [ - 459.72119140625, - 267.33551025390625 - ], - "bbox": [ - 459.72119140625, - 262.53955078125, - 475.1094055175781, - 268.49969482421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.72119140625, - 262.53955078125, - 475.1094055175781, - 268.49969482421875 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 454.3236999511719, - 268.7288513183594, - 479.13580322265625, - 274.6889953613281 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Embedding", - "origin": [ - 454.3236999511719, - 273.5248107910156 - ], - "bbox": [ - 454.3236999511719, - 268.7288513183594, - 479.13580322265625, - 274.6889953613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.3236999511719, - 268.7288513183594, - 479.13580322265625, - 274.6889953613281 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 461.06146240234375, - 238.60382080078125, - 473.7705078125, - 244.56396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "CNN ", - "origin": [ - 461.06146240234375, - 243.39979553222656 - ], - "bbox": [ - 461.06146240234375, - 238.60382080078125, - 473.7705078125, - 244.56396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.06146240234375, - 238.60382080078125, - 473.7705078125, - 244.56396484375 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 455.9700927734375, - 244.79312133789062, - 477.48974609375, - 250.75326538085938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Backbone", - "origin": [ - 455.9700927734375, - 249.58909606933594 - ], - "bbox": [ - 455.9700927734375, - 244.79312133789062, - 477.48974609375, - 250.75326538085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.9700927734375, - 244.79312133789062, - 477.48974609375, - 250.75326538085938 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 423.95831298828125, - 214.78736877441406, - 436.6673583984375, - 220.7475128173828 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "CNN ", - "origin": [ - 423.95831298828125, - 219.58334350585938 - ], - "bbox": [ - 423.95831298828125, - 214.78736877441406, - 436.6673583984375, - 220.7475128173828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.95831298828125, - 214.78736877441406, - 436.6673583984375, - 220.7475128173828 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 418.866943359375, - 220.97666931152344, - 440.3865966796875, - 226.9368133544922 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Backbone", - "origin": [ - 418.866943359375, - 225.77264404296875 - ], - "bbox": [ - 418.866943359375, - 220.97666931152344, - 440.3865966796875, - 226.9368133544922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 418.866943359375, - 220.97666931152344, - 440.3865966796875, - 226.9368133544922 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 458.9696044921875, - 214.73648071289062, - 475.8615417480469, - 220.69662475585938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Region ", - "origin": [ - 458.9696044921875, - 219.53245544433594 - ], - "bbox": [ - 458.9696044921875, - 214.73648071289062, - 475.8615417480469, - 220.69662475585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.9696044921875, - 214.73648071289062, - 475.8615417480469, - 220.69662475585938 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 454.9228820800781, - 220.92578125, - 478.5367126464844, - 226.88592529296875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Operations", - "origin": [ - 454.9228820800781, - 225.7217559814453 - ], - "bbox": [ - 454.9228820800781, - 220.92578125, - 478.5367126464844, - 226.88592529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.9228820800781, - 220.92578125, - 478.5367126464844, - 226.88592529296875 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 388.87701416015625, - 192.8269805908203, - 476.27813720703125, - 201.76719665527344 - ], - "lines": [ - { - "spans": [ - { - "size": 8.072999954223633, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Visual Embedding Schema", - "origin": [ - 388.87701416015625, - 200.02093505859375 - ], - "bbox": [ - 388.87701416015625, - 192.8269805908203, - 476.27813720703125, - 201.76719665527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.87701416015625, - 192.8269805908203, - 476.27813720703125, - 201.76719665527344 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 320.90106201171875, - 342.736328125, - 362.5631408691406, - 350.1865234375 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "UNITER-Base ", - "origin": [ - 320.90106201171875, - 348.7312927246094 - ], - "bbox": [ - 320.90106201171875, - 342.736328125, - 362.5631408691406, - 350.1865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.90106201171875, - 342.736328125, - 362.5631408691406, - 350.1865234375 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 317.7691650390625, - 350.3517761230469, - 364.0132141113281, - 357.2059631347656 - ], - "lines": [ - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(75.8 / 85.9 / 72.5)", - "origin": [ - 317.7691650390625, - 355.8671569824219 - ], - "bbox": [ - 317.7691650390625, - 350.3517761230469, - 364.0132141113281, - 357.2059631347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.7691650390625, - 350.3517761230469, - 364.0132141113281, - 357.2059631347656 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 317.7691650390625, - 363.93743896484375, - 365.4202880859375, - 378.4071044921875 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Pixel-BERT-R50 ", - "origin": [ - 318.043212890625, - 369.9324035644531 - ], - "bbox": [ - 318.043212890625, - 363.93743896484375, - 365.4202880859375, - 371.38763427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.043212890625, - 363.93743896484375, - 365.4202880859375, - 371.38763427734375 - ] - }, - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(72.4 / 75.7 / 53.4)", - "origin": [ - 317.7691650390625, - 377.06829833984375 - ], - "bbox": [ - 317.7691650390625, - 371.55291748046875, - 364.0132141113281, - 378.4071044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.7691650390625, - 371.55291748046875, - 364.0132141113281, - 378.4071044921875 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 316.9542541503906, - 385.1385192871094, - 366.50970458984375, - 399.6081848144531 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "ViLT-B/32 (Ours) ", - "origin": [ - 316.9542541503906, - 391.13348388671875 - ], - "bbox": [ - 316.9542541503906, - 385.1385192871094, - 366.50970458984375, - 392.5887145996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.9542541503906, - 385.1385192871094, - 366.50970458984375, - 392.5887145996094 - ] - }, - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(76.1 / 83.5 / 64.4)", - "origin": [ - 317.7691650390625, - 398.2693786621094 - ], - "bbox": [ - 317.7691650390625, - 392.7539978027344, - 364.0132141113281, - 399.6081848144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.7691650390625, - 392.7539978027344, - 364.0132141113281, - 399.6081848144531 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 380.48431396484375, - 345.4301452636719, - 393.43341064453125, - 354.4749450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~75 ms ", - "origin": [ - 380.48431396484375, - 349.0271301269531 - ], - "bbox": [ - 380.48431396484375, - 345.4301452636719, - 393.43341064453125, - 349.9002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.48431396484375, - 345.4301452636719, - 393.43341064453125, - 349.9002685546875 - ] - }, - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(R101)", - "origin": [ - 380.736572265625, - 353.601806640625 - ], - "bbox": [ - 380.736572265625, - 350.00482177734375, - 392.1719970703125, - 354.4749450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.736572265625, - 350.00482177734375, - 392.1719970703125, - 354.4749450683594 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 449.0875244140625, - 345.69921875, - 464.05487060546875, - 350.1693420410156 - ], - "lines": [ - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~810 ms ", - "origin": [ - 449.0875244140625, - 349.29620361328125 - ], - "bbox": [ - 449.0875244140625, - 345.69921875, - 464.05487060546875, - 350.1693420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.0875244140625, - 345.69921875, - 464.05487060546875, - 350.1693420410156 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 429.29095458984375, - 350.6640625, - 482.8427429199219, - 354.24017333984375 - ], - "lines": [ - { - "spans": [ - { - "size": 3.2292001247406006, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(RPNs, RoI Align, NMS, and RoI Heads)", - "origin": [ - 429.29095458984375, - 353.5416564941406 - ], - "bbox": [ - 429.29095458984375, - 350.6640625, - 482.8427429199219, - 354.24017333984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.29095458984375, - 350.6640625, - 482.8427429199219, - 354.24017333984375 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 374.83319091796875, - 367.0010681152344, - 387.78228759765625, - 376.0458679199219 - ], - "lines": [ - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~45 ms ", - "origin": [ - 374.83319091796875, - 370.5980529785156 - ], - "bbox": [ - 374.83319091796875, - 367.0010681152344, - 387.78228759765625, - 371.47119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 374.83319091796875, - 367.0010681152344, - 387.78228759765625, - 371.47119140625 - ] - }, - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(R50)", - "origin": [ - 376.0946044921875, - 375.1727294921875 - ], - "bbox": [ - 376.0946044921875, - 371.57574462890625, - 385.51177978515625, - 376.0458679199219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.0946044921875, - 371.57574462890625, - 385.51177978515625, - 376.0458679199219 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 519.169677734375, - 347.3037414550781, - 534.98876953125, - 352.3698425292969 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~900 ms", - "origin": [ - 519.169677734375, - 351.38031005859375 - ], - "bbox": [ - 519.169677734375, - 347.3037414550781, - 534.98876953125, - 352.3698425292969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 519.169677734375, - 347.3037414550781, - 534.98876953125, - 352.3698425292969 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 397.5927429199219, - 368.80059814453125, - 411.1245422363281, - 373.86669921875 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~60 ms", - "origin": [ - 397.5927429199219, - 372.8771667480469 - ], - "bbox": [ - 397.5927429199219, - 368.80059814453125, - 411.1245422363281, - 373.86669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.5927429199219, - 368.80059814453125, - 411.1245422363281, - 373.86669921875 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 382.01416015625, - 390.0016784667969, - 395.54595947265625, - 395.0677795410156 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~15 ms", - "origin": [ - 382.01416015625, - 394.0782470703125 - ], - "bbox": [ - 382.01416015625, - 390.0016784667969, - 395.54595947265625, - 395.0677795410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.01416015625, - 390.0016784667969, - 395.54595947265625, - 395.0677795410156 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 399.98944091796875, - 397.70892333984375, - 415.8087463378906, - 402.7750244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~0.4 ms ", - "origin": [ - 399.98944091796875, - 401.7854919433594 - ], - "bbox": [ - 399.98944091796875, - 397.70892333984375, - 415.8087463378906, - 402.7750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.98944091796875, - 397.70892333984375, - 415.8087463378906, - 402.7750244140625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 388.718017578125, - 403.0909118652344, - 425.93505859375, - 408.1570129394531 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Linear Embedding)", - "origin": [ - 388.718017578125, - 407.16748046875 - ], - "bbox": [ - 388.718017578125, - 403.0909118652344, - 425.93505859375, - 408.1570129394531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.718017578125, - 403.0909118652344, - 425.93505859375, - 408.1570129394531 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 507.81719970703125, - 373.48095703125, - 522.4928588867188, - 378.54705810546875 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~15 ms ", - "origin": [ - 507.81719970703125, - 377.5575256347656 - ], - "bbox": [ - 507.81719970703125, - 373.48095703125, - 522.4928588867188, - 378.54705810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.81719970703125, - 373.48095703125, - 522.4928588867188, - 378.54705810546875 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 498.5437316894531, - 378.86297607421875, - 530.6211547851562, - 383.9290771484375 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(BERT-base-like)", - "origin": [ - 498.5437316894531, - 382.9395446777344 - ], - "bbox": [ - 498.5437316894531, - 378.86297607421875, - 530.6211547851562, - 383.9290771484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 498.5437316894531, - 378.86297607421875, - 530.6211547851562, - 383.9290771484375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 409.3610534667969, - 318.82305908203125, - 457.8135986328125, - 327.7632751464844 - ], - "lines": [ - { - "spans": [ - { - "size": 8.072999954223633, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Running Time ", - "origin": [ - 409.3610534667969, - 326.01702880859375 - ], - "bbox": [ - 409.3610534667969, - 318.82305908203125, - 457.8135986328125, - 327.7632751464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 409.3610534667969, - 318.82305908203125, - 457.8135986328125, - 327.7632751464844 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 356.78668212890625, - 328.10675048828125, - 508.369140625, - 334.06689453125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Performances : NLVR2 test-P Acc. / F30K TR R@1 / F30K IR R@1)", - "origin": [ - 356.78668212890625, - 332.9027099609375 - ], - "bbox": [ - 356.78668212890625, - 328.10675048828125, - 508.369140625, - 334.06689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 356.78668212890625, - 328.10675048828125, - 508.369140625, - 334.06689453125 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 320.24737548828125, - 214.0364532470703, - 363.2159423828125, - 221.48663330078125 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Region Feature ", - "origin": [ - 320.24737548828125, - 220.0314178466797 - ], - "bbox": [ - 320.24737548828125, - 214.0364532470703, - 363.2159423828125, - 221.48663330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.24737548828125, - 214.0364532470703, - 363.2159423828125, - 221.48663330078125 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 313.8355407714844, - 221.77296447753906, - 367.9461975097656, - 227.7331085205078 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(ViLBERT, UNITER, ...)", - "origin": [ - 313.8355407714844, - 226.56893920898438 - ], - "bbox": [ - 313.8355407714844, - 221.77296447753906, - 367.9461975097656, - 227.7331085205078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.8355407714844, - 221.77296447753906, - 367.9461975097656, - 227.7331085205078 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 323.7983703613281, - 237.6286163330078, - 359.6653747558594, - 251.32525634765625 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Grid Feature ", - "origin": [ - 323.7983703613281, - 243.6235809326172 - ], - "bbox": [ - 323.7983703613281, - 237.6286163330078, - 359.6653747558594, - 245.07879638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.7983703613281, - 237.6286163330078, - 359.6653747558594, - 245.07879638671875 - ] - }, - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Pixel-BERT)", - "origin": [ - 325.95556640625, - 250.1610870361328 - ], - "bbox": [ - 325.95556640625, - 245.3651123046875, - 355.82623291015625, - 251.32525634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.95556640625, - 245.3651123046875, - 355.82623291015625, - 251.32525634765625 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 318.3692626953125, - 261.5335388183594, - 364.3302001953125, - 268.9837341308594 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Patch Projection ", - "origin": [ - 318.3692626953125, - 267.52850341796875 - ], - "bbox": [ - 318.3692626953125, - 261.5335388183594, - 364.3302001953125, - 268.9837341308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.3692626953125, - 261.5335388183594, - 364.3302001953125, - 268.9837341308594 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 332.43145751953125, - 269.14898681640625, - 348.58807373046875, - 276.003173828125 - ], - "lines": [ - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Ours)", - "origin": [ - 332.43145751953125, - 274.66436767578125 - ], - "bbox": [ - 332.43145751953125, - 269.14898681640625, - 348.58807373046875, - 276.003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.43145751953125, - 269.14898681640625, - 348.58807373046875, - 276.003173828125 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 385.84881591796875, - 218.06820678710938, - 399.29547119140625, - 224.02835083007812 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Image", - "origin": [ - 385.84881591796875, - 222.8641815185547 - ], - "bbox": [ - 385.84881591796875, - 218.06820678710938, - 399.29547119140625, - 224.02835083007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.84881591796875, - 218.06820678710938, - 399.29547119140625, - 224.02835083007812 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 385.84881591796875, - 241.94732666015625, - 399.29547119140625, - 247.907470703125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Image", - "origin": [ - 385.84881591796875, - 246.74330139160156 - ], - "bbox": [ - 385.84881591796875, - 241.94732666015625, - 399.29547119140625, - 247.907470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.84881591796875, - 241.94732666015625, - 399.29547119140625, - 247.907470703125 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 385.84881591796875, - 265.88916015625, - 399.29547119140625, - 271.84930419921875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Image", - "origin": [ - 385.84881591796875, - 270.68511962890625 - ], - "bbox": [ - 385.84881591796875, - 265.88916015625, - 399.29547119140625, - 271.84930419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.84881591796875, - 265.88916015625, - 399.29547119140625, - 271.84930419921875 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 387.8289794921875, - 295.6824951171875, - 397.3154602050781, - 301.64263916015625 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Text", - "origin": [ - 387.8289794921875, - 300.47845458984375 - ], - "bbox": [ - 387.8289794921875, - 295.6824951171875, - 397.3154602050781, - 301.64263916015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 387.8289794921875, - 295.6824951171875, - 397.3154602050781, - 301.64263916015625 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 306.93798828125, - 422.1160583496094, - 542.9336547851562, - 487.715576171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Figure 1.", - "origin": [ - 306.93798828125, - 430.4010009765625 - ], - "bbox": [ - 306.93798828125, - 422.1160583496094, - 339.3157043457031, - 432.9205627441406 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Visual comparison of conventional VLP architectures", - "origin": [ - 339.3157043457031, - 430.4010009765625 - ], - "bbox": [ - 339.3157043457031, - 422.1160583496094, - 541.4371337890625, - 432.9205627441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.93798828125, - 422.1160583496094, - 541.4371337890625, - 432.9205627441406 - ] - }, - { - "spans": [ - { - "size": 9.020037651062012, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and our proposed ViLT. We have entirely removed convolutional", - "origin": [ - 307.44000244140625, - 441.3599853515625 - ], - "bbox": [ - 307.44000244140625, - 433.0750427246094, - 541.4402465820312, - 443.8795471191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 433.0750427246094, - 541.4402465820312, - 443.8795471191406 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "neural networks from the VLP pipeline without hurting perfor-", - "origin": [ - 307.44000244140625, - 452.3190002441406 - ], - "bbox": [ - 307.44000244140625, - 444.0340576171875, - 542.9336547851562, - 454.83856201171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 444.0340576171875, - 542.9336547851562, - 454.83856201171875 - ] - }, - { - "spans": [ - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "mance on downstream tasks. ViLT is the \ufb01rst VLP model of which", - "origin": [ - 307.44000244140625, - 463.27801513671875 - ], - "bbox": [ - 307.44000244140625, - 454.9930725097656, - 541.4396362304688, - 465.7975769042969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 454.9930725097656, - 541.4396362304688, - 465.7975769042969 - ] - }, - { - "spans": [ - { - "size": 8.988788604736328, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the modal-speci\ufb01c components require", - "origin": [ - 307.44000244140625, - 474.23699951171875 - ], - "bbox": [ - 307.44000244140625, - 465.9520568847656, - 447.3302917480469, - 476.7565612792969 - ] - }, - { - "size": 8.988788604736328, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " less", - "origin": [ - 447.3302917480469, - 474.23699951171875 - ], - "bbox": [ - 447.3302917480469, - 465.9520568847656, - 463.1018371582031, - 476.6579284667969 - ] - }, - { - "size": 8.988788604736328, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " computation than the", - "origin": [ - 463.1018371582031, - 474.23699951171875 - ], - "bbox": [ - 463.1018371582031, - 465.9520568847656, - 541.44384765625, - 476.7565612792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 465.9520568847656, - 541.44384765625, - 476.7565612792969 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "transformer component for multimodal interactions.", - "origin": [ - 307.44000244140625, - 485.1960144042969 - ], - "bbox": [ - 307.44000244140625, - 476.91107177734375, - 493.9679260253906, - 487.715576171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 476.91107177734375, - 493.9679260253906, - 487.715576171875 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 307.0820007324219, - 515.8865966796875, - 542.686767578125, - 587.66748046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "et al.", - "origin": [ - 307.44000244140625, - 525.092041015625 - ], - "bbox": [ - 307.44000244140625, - 515.8865966796875, - 328.06854248046875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 328.06854248046875, - 525.092041015625 - ], - "bbox": [ - 328.06854248046875, - 515.8865966796875, - 330.6090087890625, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 330.6090087890625, - 525.092041015625 - ], - "bbox": [ - 330.6090087890625, - 515.8865966796875, - 354.3572692871094, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 354.3572692871094, - 525.092041015625 - ], - "bbox": [ - 354.3572692871094, - 515.8865966796875, - 357.1822509765625, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Li et al.", - "origin": [ - 357.1822509765625, - 525.092041015625 - ], - "bbox": [ - 357.1822509765625, - 515.8865966796875, - 393.67340087890625, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 393.67340087890625, - 525.092041015625 - ], - "bbox": [ - 393.67340087890625, - 515.8865966796875, - 396.2138671875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020b", - "origin": [ - 396.2138671875, - 525.092041015625 - ], - "bbox": [ - 396.2138671875, - 515.8865966796875, - 425.0430603027344, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 425.0430603027344, - 525.092041015625 - ], - "bbox": [ - 425.0430603027344, - 515.8865966796875, - 427.8680419921875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Gan et al.", - "origin": [ - 427.8680419921875, - 525.092041015625 - ], - "bbox": [ - 427.8680419921875, - 515.8865966796875, - 472.26513671875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 472.26513671875, - 525.092041015625 - ], - "bbox": [ - 472.26513671875, - 515.8865966796875, - 474.80560302734375, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 474.80560302734375, - 525.092041015625 - ], - "bbox": [ - 474.80560302734375, - 515.8865966796875, - 498.543701171875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 498.543701171875, - 525.092041015625 - ], - "bbox": [ - 498.543701171875, - 515.8865966796875, - 501.3686828613281, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Yu et al.", - "origin": [ - 501.3686828613281, - 525.092041015625 - ], - "bbox": [ - 501.3686828613281, - 515.8865966796875, - 540.1463012695312, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 540.1463012695312, - 525.092041015625 - ], - "bbox": [ - 540.1463012695312, - 515.8865966796875, - 542.686767578125, - 527.8915405273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 515.8865966796875, - 542.686767578125, - 527.8915405273438 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2020", - "origin": [ - 307.44000244140625, - 537.0469970703125 - ], - "bbox": [ - 307.44000244140625, - 527.841552734375, - 327.76373291015625, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 327.76373291015625, - 537.0469970703125 - ], - "bbox": [ - 327.76373291015625, - 527.841552734375, - 330.5887145996094, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Zhang et al.", - "origin": [ - 330.5887145996094, - 537.0469970703125 - ], - "bbox": [ - 330.5887145996094, - 527.841552734375, - 383.5625, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 383.5625, - 537.0469970703125 - ], - "bbox": [ - 383.5625, - 527.841552734375, - 386.10296630859375, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2021", - "origin": [ - 386.10296630859375, - 537.0469970703125 - ], - "bbox": [ - 386.10296630859375, - 527.841552734375, - 409.6988220214844, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "). These models are pre-trained", - "origin": [ - 409.6988220214844, - 537.0469970703125 - ], - "bbox": [ - 409.6988220214844, - 527.841552734375, - 541.437255859375, - 539.8464965820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 527.841552734375, - 541.437255859375, - 539.8464965820312 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "with image text matching and masked language modeling", - "origin": [ - 307.0820007324219, - 549.0020141601562 - ], - "bbox": [ - 307.0820007324219, - 539.7965698242188, - 541.4448852539062, - 551.801513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.0820007324219, - 539.7965698242188, - 541.4448852539062, - 551.801513671875 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "objectives", - "origin": [ - 307.44000244140625, - 560.95703125 - ], - "bbox": [ - 307.44000244140625, - 551.7515869140625, - 346.6300964355469, - 563.7565307617188 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 346.6319885253906, - 557.3419799804688 - ], - "bbox": [ - 346.6319885253906, - 550.898193359375, - 350.118896484375, - 559.3016357421875 - ] - }, - { - "size": 9.862470626831055, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 350.118896484375, - 557.3419799804688 - ], - "bbox": [ - 350.118896484375, - 548.1365356445312, - 352.7349853515625, - 563.7565307617188 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "on images and their aligned descriptions, and are", - "origin": [ - 352.7349853515625, - 560.95703125 - ], - "bbox": [ - 352.7349853515625, - 551.7515869140625, - 541.4409790039062, - 563.7565307617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 548.1365356445312, - 541.4409790039062, - 563.7565307617188 - ] - }, - { - "spans": [ - { - "size": 9.89763069152832, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "\ufb01ne-tuned on vision-and-language downstream tasks where", - "origin": [ - 307.44000244140625, - 572.9129638671875 - ], - "bbox": [ - 307.44000244140625, - 563.70751953125, - 541.4378662109375, - 575.7124633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 563.70751953125, - 541.4378662109375, - 575.7124633789062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the inputs involve two modalities.", - "origin": [ - 307.44000244140625, - 584.8679809570312 - ], - "bbox": [ - 307.44000244140625, - 575.6625366210938, - 441.925048828125, - 587.66748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 575.6625366210938, - 441.925048828125, - 587.66748046875 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 307.11199951171875, - 593.5955810546875, - 543.1831665039062, - 689.2864990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "To be fed into VLP models, image pixels need to be ini-", - "origin": [ - 307.1310119628906, - 602.801025390625 - ], - "bbox": [ - 307.1310119628906, - 593.5955810546875, - 543.08935546875, - 605.6005249023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.1310119628906, - 593.5955810546875, - 543.08935546875, - 605.6005249023438 - ] - }, - { - "spans": [ - { - "size": 9.90765380859375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tially embedded in a dense form alongside language tokens.", - "origin": [ - 307.44000244140625, - 614.7559814453125 - ], - "bbox": [ - 307.44000244140625, - 605.550537109375, - 543.1831665039062, - 617.5554809570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 605.550537109375, - 543.1831665039062, - 617.5554809570312 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Since the seminal work of", - "origin": [ - 307.44000244140625, - 626.7109985351562 - ], - "bbox": [ - 307.44000244140625, - 617.5055541992188, - 414.6678771972656, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Krizhevsky et al.", - "origin": [ - 414.6678771972656, - 626.7109985351562 - ], - "bbox": [ - 414.6678771972656, - 617.5055541992188, - 486.8475036621094, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " (", - "origin": [ - 486.8475036621094, - 626.7109985351562 - ], - "bbox": [ - 486.8475036621094, - 617.5055541992188, - 493.07672119140625, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2012", - "origin": [ - 493.07672119140625, - 626.7109985351562 - ], - "bbox": [ - 493.07672119140625, - 617.5055541992188, - 513.4004516601562, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "), deep", - "origin": [ - 513.4004516601562, - 626.7109985351562 - ], - "bbox": [ - 513.4004516601562, - 617.5055541992188, - 541.43701171875, - 629.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 617.5055541992188, - 541.43701171875, - 629.510498046875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "convolutional networks have been regarded as essential for", - "origin": [ - 307.44000244140625, - 638.666015625 - ], - "bbox": [ - 307.44000244140625, - 629.4605712890625, - 541.6109008789062, - 641.4655151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 629.4605712890625, - 541.6109008789062, - 641.4655151367188 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "this visual embedding step. Most VLP models employ an", - "origin": [ - 307.44000244140625, - 650.6209716796875 - ], - "bbox": [ - 307.44000244140625, - 641.41552734375, - 541.43701171875, - 653.4204711914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 641.41552734375, - 541.43701171875, - 653.4204711914062 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "object detector pre-trained on the Visual Genome dataset", - "origin": [ - 307.44000244140625, - 662.5759887695312 - ], - "bbox": [ - 307.44000244140625, - 653.3705444335938, - 541.43701171875, - 665.37548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 653.3705444335938, - 541.43701171875, - 665.37548828125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 307.11199951171875, - 674.531982421875 - ], - "bbox": [ - 307.11199951171875, - 665.3265380859375, - 310.49591064453125, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Krishna et al.", - "origin": [ - 310.49591064453125, - 674.531982421875 - ], - "bbox": [ - 310.49591064453125, - 665.3265380859375, - 365.3394775390625, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 365.3394775390625, - 674.531982421875 - ], - "bbox": [ - 365.3394775390625, - 665.3265380859375, - 367.87994384765625, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2017", - "origin": [ - 367.87994384765625, - 674.531982421875 - ], - "bbox": [ - 367.87994384765625, - 665.3265380859375, - 390.92706298828125, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") annotated with 1,600 object classes", - "origin": [ - 390.92706298828125, - 674.531982421875 - ], - "bbox": [ - 390.92706298828125, - 665.3265380859375, - 541.4443969726562, - 677.3314819335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.11199951171875, - 665.3265380859375, - 541.4443969726562, - 677.3314819335938 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and 400 attribute classes as in", - "origin": [ - 307.44000244140625, - 686.4869995117188 - ], - "bbox": [ - 307.44000244140625, - 677.2815551757812, - 423.8484802246094, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Anderson et al.", - "origin": [ - 423.8484802246094, - 686.4869995117188 - ], - "bbox": [ - 423.8484802246094, - 677.2815551757812, - 485.84576416015625, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " (", - "origin": [ - 485.84576416015625, - 686.4869995117188 - ], - "bbox": [ - 485.84576416015625, - 677.2815551757812, - 491.59637451171875, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2018", - "origin": [ - 491.59637451171875, - 686.4869995117188 - ], - "bbox": [ - 491.59637451171875, - 677.2815551757812, - 511.12310791015625, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "). Pixel-", - "origin": [ - 511.12310791015625, - 686.4869995117188 - ], - "bbox": [ - 511.12310791015625, - 677.2815551757812, - 543.09814453125, - 689.2864990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 677.2815551757812, - 543.09814453125, - 689.2864990234375 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 307.44000244140625, - 695.7656860351562, - 541.440673828125, - 717.5805053710938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 320.0929870605469, - 701.2890014648438 - ], - "bbox": [ - 320.0929870605469, - 695.7656860351562, - 323.081787109375, - 702.9686889648438 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "While some works employ additional objectives and data", - "origin": [ - 323.5799865722656, - 705.0980224609375 - ], - "bbox": [ - 323.5799865722656, - 696.8130493164062, - 541.440673828125, - 707.6175537109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.0929870605469, - 695.7656860351562, - 541.440673828125, - 707.6175537109375 - ] - }, - { - "spans": [ - { - "size": 8.903413772583008, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "structures, these two objectives apply to almost every VLP model.", - "origin": [ - 307.44000244140625, - 715.0609741210938 - ], - "bbox": [ - 307.44000244140625, - 706.7760009765625, - 541.4136962890625, - 717.5805053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 706.7760009765625, - 541.4136962890625, - 717.5805053710938 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 10.940000534057617, - 210.01995849609375, - 37.619998931884766, - 570.0 - ], - "lines": [ - { - "spans": [ - { - "size": 20.0, - "flags": 4, - "font": "Times-Roman", - "color": 9539985, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "arXiv:2102.03334v2 [stat.ML] 10 Jun 2021", - "origin": [ - 32.0, - 570.0 - ], - "bbox": [ - 10.940000534057617, - 210.01995849609375, - 37.619998931884766, - 570.0 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 10.940000534057617, - 210.01995849609375, - 37.619998931884766, - 570.0 - ] - } - ] - } - ] \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/2\345\210\227_ViLT_1_title.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/2\345\210\227_ViLT_1_title.pdf/preproc_out.json" deleted file mode 100644 index f65a5b785..000000000 --- "a/tests/assets/pre_proc_results/2\345\210\227_ViLT_1_title.pdf/preproc_out.json" +++ /dev/null @@ -1,12707 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 163.52999877929688, - 87.15061950683594, - 432.6361389160156, - 123.74800872802734 - ], - "lines": [ - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "ViLT: Vision-and-Language Transformer", - "origin": [ - 172.30999755859375, - 100.9229736328125 - ], - "bbox": [ - 172.30999755859375, - 87.15061950683594, - 424.8892517089844, - 105.81502532958984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 172.30999755859375, - 87.15061950683594, - 424.8892517089844, - 105.81502532958984 - ] - }, - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Without Convolution or Region Supervision", - "origin": [ - 163.52999877929688, - 118.85595703125 - ], - "bbox": [ - 163.52999877929688, - 105.08360290527344, - 432.6361389160156, - 123.74800872802734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.52999877929688, - 105.08360290527344, - 432.6361389160156, - 123.74800872802734 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 198.60899353027344, - 155.3678436279297, - 396.6109313964844, - 171.94522094726562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Wonjae Kim", - "origin": [ - 198.60899353027344, - 168.5479736328125 - ], - "bbox": [ - 198.60899353027344, - 158.98387145996094, - 252.37713623046875, - 171.94522094726562 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 252.37713623046875, - 168.5479736328125 - ], - "bbox": [ - 252.37713623046875, - 158.4881591796875, - 254.03799438476562, - 170.5076141357422 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "* 1 †", - "origin": [ - 254.03799438476562, - 164.93194580078125 - ], - "bbox": [ - 254.03799438476562, - 158.4881591796875, - 267.8182373046875, - 166.89158630371094 - ] - }, - { - "size": 9.962599754333496, - "flags": 21, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": " ", - "origin": [ - 267.8182373046875, - 164.93194580078125 - ], - "bbox": [ - 267.8182373046875, - 155.3678436279297, - 274.4620056152344, - 171.94522094726562 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Bokyung Son", - "origin": [ - 274.4620056152344, - 168.5479736328125 - ], - "bbox": [ - 274.4620056152344, - 158.98387145996094, - 331.06951904296875, - 171.94522094726562 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 331.06951904296875, - 168.5479736328125 - ], - "bbox": [ - 331.06951904296875, - 158.4881591796875, - 332.7300109863281, - 170.5076141357422 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "* 1", - "origin": [ - 332.7300109863281, - 164.93194580078125 - ], - "bbox": [ - 332.7300109863281, - 158.4881591796875, - 341.36358642578125, - 166.89158630371094 - ] - }, - { - "size": 9.962599754333496, - "flags": 21, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": " ", - "origin": [ - 341.36358642578125, - 164.93194580078125 - ], - "bbox": [ - 341.36358642578125, - 155.3678436279297, - 348.00701904296875, - 171.94522094726562 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Ildoo Kim", - "origin": [ - 348.00701904296875, - 168.5479736328125 - ], - "bbox": [ - 348.00701904296875, - 158.98387145996094, - 391.4638977050781, - 171.94522094726562 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 391.4638977050781, - 168.5479736328125 - ], - "bbox": [ - 391.4638977050781, - 158.4881591796875, - 393.1240234375, - 170.5076141357422 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 393.1240234375, - 164.93194580078125 - ], - "bbox": [ - 393.1240234375, - 158.4881591796875, - 396.6109313964844, - 166.89158630371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.60899353027344, - 155.3678436279297, - 396.6109313964844, - 171.94522094726562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 150.19802856445312, - 191.6519775390625, - 194.68331909179688, - 207.2056884765625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Abstract", - "origin": [ - 150.19802856445312, - 203.12896728515625 - ], - "bbox": [ - 150.19802856445312, - 191.6519775390625, - 194.68331909179688, - 207.2056884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 150.19802856445312, - 191.6519775390625, - 194.68331909179688, - 207.2056884765625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 75.00700378417969, - 214.5135498046875, - 271.2561340332031, - 501.48748779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.947644233703613, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Vision-and-Language Pre-training (VLP) has im-", - "origin": [ - 75.36599731445312, - 223.718994140625 - ], - "bbox": [ - 75.36599731445312, - 214.5135498046875, - 271.1695251464844, - 226.5184783935547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 214.5135498046875, - 271.1695251464844, - 226.5184783935547 - ] - }, - { - "spans": [ - { - "size": 10.041984558105469, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "proved performance on various joint vision-and-", - "origin": [ - 75.36599731445312, - 235.67401123046875 - ], - "bbox": [ - 75.36599731445312, - 226.46856689453125, - 271.16607666015625, - 238.47349548339844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 226.46856689453125, - 271.16607666015625, - 238.47349548339844 - ] - }, - { - "spans": [ - { - "size": 10.002370834350586, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "language downstream tasks. Current approaches", - "origin": [ - 75.36599731445312, - 247.6290283203125 - ], - "bbox": [ - 75.36599731445312, - 238.423583984375, - 269.5137939453125, - 250.4285125732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 238.423583984375, - 269.5137939453125, - 250.4285125732422 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "to VLP heavily rely on image feature extraction", - "origin": [ - 75.36599731445312, - 259.583984375 - ], - "bbox": [ - 75.36599731445312, - 250.3785400390625, - 269.5183410644531, - 262.38348388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 250.3785400390625, - 269.5183410644531, - 262.38348388671875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "processes, most of which involve region super-", - "origin": [ - 75.36599731445312, - 271.53900146484375 - ], - "bbox": [ - 75.36599731445312, - 262.33355712890625, - 271.16461181640625, - 274.3385009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 262.33355712890625, - 271.16461181640625, - 274.3385009765625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "vision (e.g., object detection) and the convolu-", - "origin": [ - 75.11699676513672, - 283.4949951171875 - ], - "bbox": [ - 75.11699676513672, - 274.28955078125, - 271.1696472167969, - 286.29449462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.11699676513672, - 274.28955078125, - 271.1696472167969, - 286.29449462890625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tional architecture (e.g., ResNet). Although dis-", - "origin": [ - 75.36599731445312, - 295.45001220703125 - ], - "bbox": [ - 75.36599731445312, - 286.24456787109375, - 271.16461181640625, - 298.24951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 286.24456787109375, - 271.16461181640625, - 298.24951171875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "regarded in the literature, we find it problem-", - "origin": [ - 75.36599731445312, - 307.4049987792969 - ], - "bbox": [ - 75.36599731445312, - 298.1995544433594, - 271.1645812988281, - 310.2044982910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 298.1995544433594, - 271.1645812988281, - 310.2044982910156 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "atic in terms of both (1) efficiency/speed, that", - "origin": [ - 75.36599731445312, - 319.3599853515625 - ], - "bbox": [ - 75.36599731445312, - 310.154541015625, - 269.5184020996094, - 322.15948486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 310.154541015625, - 269.5184020996094, - 322.15948486328125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "simply extracting input features requires much", - "origin": [ - 75.36599731445312, - 331.31500244140625 - ], - "bbox": [ - 75.36599731445312, - 322.10955810546875, - 269.5184020996094, - 334.114501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 322.10955810546875, - 269.5184020996094, - 334.114501953125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "more computation than the multimodal interac-", - "origin": [ - 75.36599731445312, - 343.2699890136719 - ], - "bbox": [ - 75.36599731445312, - 334.0645446777344, - 271.16461181640625, - 346.0694885253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 334.0645446777344, - 271.16461181640625, - 346.0694885253906 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tion steps; and (2) expressive power, as it is upper", - "origin": [ - 75.36599731445312, - 355.22601318359375 - ], - "bbox": [ - 75.36599731445312, - 346.02056884765625, - 269.6858825683594, - 358.0255126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 346.02056884765625, - 269.6858825683594, - 358.0255126953125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "bounded to the expressive power of the visual", - "origin": [ - 75.36599731445312, - 367.1809997558594 - ], - "bbox": [ - 75.36599731445312, - 357.9755554199219, - 269.51837158203125, - 369.9804992675781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 357.9755554199219, - 269.51837158203125, - 369.9804992675781 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "embedder and its predefined visual vocabulary.", - "origin": [ - 75.36599731445312, - 379.135986328125 - ], - "bbox": [ - 75.36599731445312, - 369.9305419921875, - 271.2561340332031, - 381.93548583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 369.9305419921875, - 271.2561340332031, - 381.93548583984375 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "In this paper, we present a minimal VLP model,", - "origin": [ - 75.36599731445312, - 391.09100341796875 - ], - "bbox": [ - 75.36599731445312, - 381.88555908203125, - 270.7580871582031, - 393.8905029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 381.88555908203125, - 270.7580871582031, - 393.8905029296875 - ] - }, - { - "spans": [ - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Vision-and-Language Transformer (ViLT), mono-", - "origin": [ - 75.00700378417969, - 403.0459899902344 - ], - "bbox": [ - 75.00700378417969, - 393.8405456542969, - 271.1720886230469, - 405.8454895019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.00700378417969, - 393.8405456542969, - 271.1720886230469, - 405.8454895019531 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "lithic in the sense that the processing of visual", - "origin": [ - 75.36599731445312, - 415.0010070800781 - ], - "bbox": [ - 75.36599731445312, - 405.7955627441406, - 269.51837158203125, - 417.8005065917969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 405.7955627441406, - 269.51837158203125, - 417.8005065917969 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "inputs is drastically simplified to just the same", - "origin": [ - 75.36599731445312, - 426.9570007324219 - ], - "bbox": [ - 75.36599731445312, - 417.7515563964844, - 269.51837158203125, - 429.7565002441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 417.7515563964844, - 269.51837158203125, - 429.7565002441406 - ] - }, - { - "spans": [ - { - "size": 10.037040710449219, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "convolution-free manner that we process textual", - "origin": [ - 75.36599731445312, - 438.9119873046875 - ], - "bbox": [ - 75.36599731445312, - 429.70654296875, - 269.5171203613281, - 441.71148681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 429.70654296875, - 269.5171203613281, - 441.71148681640625 - ] - }, - { - "spans": [ - { - "size": 10.02714729309082, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "inputs. We show that ViLT is up to tens of times", - "origin": [ - 75.36599731445312, - 450.86700439453125 - ], - "bbox": [ - 75.36599731445312, - 441.66156005859375, - 269.5180358886719, - 453.66650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 441.66156005859375, - 269.5180358886719, - 453.66650390625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "faster than previous VLP models, yet with com-", - "origin": [ - 75.36599731445312, - 462.8219909667969 - ], - "bbox": [ - 75.36599731445312, - 453.6165466308594, - 271.1645812988281, - 465.6214904785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 453.6165466308594, - 271.1645812988281, - 465.6214904785156 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "petitive or better downstream task performance.", - "origin": [ - 75.36599731445312, - 474.7770080566406 - ], - "bbox": [ - 75.36599731445312, - 465.5715637207031, - 271.25604248046875, - 477.5765075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 465.5715637207031, - 271.25604248046875, - 477.5765075683594 - ] - }, - { - "spans": [ - { - "size": 9.9176664352417, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Our code and pre-trained weights are available at", - "origin": [ - 75.36599731445312, - 486.73199462890625 - ], - "bbox": [ - 75.36599731445312, - 477.52655029296875, - 269.5173034667969, - 489.531494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 477.52655029296875, - 269.5173034667969, - 489.531494140625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 5234, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": "https://github.com/dandelin/vilt", - "origin": [ - 75.36599731445312, - 498.68798828125 - ], - "bbox": [ - 75.36599731445312, - 490.6083068847656, - 266.6478271484375, - 501.04913330078125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 266.64801025390625, - 498.68798828125 - ], - "bbox": [ - 266.64801025390625, - 489.4825439453125, - 269.138671875, - 501.48748779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 489.4825439453125, - 269.138671875, - 501.48748779296875 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 55.44001770019531, - 535.7109985351562, - 132.27609252929688, - 551.2647094726562 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "1. Introduction", - "origin": [ - 55.44001770019531, - 547.18798828125 - ], - "bbox": [ - 55.44001770019531, - 535.7109985351562, - 132.27609252929688, - 551.2647094726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.44001770019531, - 535.7109985351562, - 132.27609252929688, - 551.2647094726562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 55.11199951171875, - 557.3555908203125, - 291.0977478027344, - 629.1365356445312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.927669525146484, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "The pre-train-and-fine-tune scheme has been expanded to a", - "origin": [ - 55.13100051879883, - 566.56103515625 - ], - "bbox": [ - 55.13100051879883, - 557.3555908203125, - 289.4433898925781, - 569.3605346679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.13100051879883, - 557.3555908203125, - 289.4433898925781, - 569.3605346679688 - ] - }, - { - "spans": [ - { - "size": 9.92266845703125, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "joint domain of vision and language, giving birth to the cat-", - "origin": [ - 55.439998626708984, - 578.5169677734375 - ], - "bbox": [ - 55.439998626708984, - 569.3115234375, - 291.0977478027344, - 581.3164672851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 569.3115234375, - 291.0977478027344, - 581.3164672851562 - ] - }, - { - "spans": [ - { - "size": 10.017244338989258, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "egory of", - "origin": [ - 55.439998626708984, - 590.4719848632812 - ], - "bbox": [ - 55.439998626708984, - 581.2665405273438, - 89.09119415283203, - 593.271484375 - ] - }, - { - "size": 10.017244338989258, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " Vision-and-Language Pre-training (VLP)", - "origin": [ - 89.09119415283203, - 590.4719848632812 - ], - "bbox": [ - 89.09119415283203, - 581.2665405273438, - 257.868896484375, - 593.161865234375 - ] - }, - { - "size": 10.017244338989258, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " models", - "origin": [ - 257.868896484375, - 590.4719848632812 - ], - "bbox": [ - 257.868896484375, - 581.2665405273438, - 289.4405822753906, - 593.271484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 581.2665405273438, - 289.4405822753906, - 593.271484375 - ] - }, - { - "spans": [ - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 55.11199951171875, - 602.427001953125 - ], - "bbox": [ - 55.11199951171875, - 593.2215576171875, - 58.436180114746094, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Lu et al.", - "origin": [ - 58.436180114746094, - 602.427001953125 - ], - "bbox": [ - 58.436180114746094, - 593.2215576171875, - 91.40845489501953, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 91.40845489501953, - 602.427001953125 - ], - "bbox": [ - 91.40845489501953, - 593.2215576171875, - 93.90408325195312, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 93.90408325195312, - 602.427001953125 - ], - "bbox": [ - 93.90408325195312, - 593.2215576171875, - 116.3647689819336, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 116.3647689819336, - 602.427001953125 - ], - "bbox": [ - 116.3647689819336, - 593.2215576171875, - 119.13990783691406, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Chen et al.", - "origin": [ - 119.13990783691406, - 602.427001953125 - ], - "bbox": [ - 119.13990783691406, - 593.2215576171875, - 164.58033752441406, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 164.58033752441406, - 602.427001953125 - ], - "bbox": [ - 164.58033752441406, - 593.2215576171875, - 167.0759735107422, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 167.0759735107422, - 602.427001953125 - ], - "bbox": [ - 167.0759735107422, - 593.2215576171875, - 189.52664184570312, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 189.52664184570312, - 602.427001953125 - ], - "bbox": [ - 189.52664184570312, - 593.2215576171875, - 192.30178833007812, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Su et al.", - "origin": [ - 192.30178833007812, - 602.427001953125 - ], - "bbox": [ - 192.30178833007812, - 593.2215576171875, - 227.22064208984375, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 227.22064208984375, - 602.427001953125 - ], - "bbox": [ - 227.22064208984375, - 593.2215576171875, - 229.71627807617188, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 229.71627807617188, - 602.427001953125 - ], - "bbox": [ - 229.71627807617188, - 593.2215576171875, - 252.1669464111328, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 252.1669464111328, - 602.427001953125 - ], - "bbox": [ - 252.1669464111328, - 593.2215576171875, - 254.9420928955078, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Li et al.", - "origin": [ - 254.9420928955078, - 602.427001953125 - ], - "bbox": [ - 254.9420928955078, - 593.2215576171875, - 288.1939392089844, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 288.1939392089844, - 602.427001953125 - ], - "bbox": [ - 288.1939392089844, - 593.2215576171875, - 290.6895751953125, - 605.2265014648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.11199951171875, - 593.2215576171875, - 290.6895751953125, - 605.2265014648438 - ] - }, - { - "spans": [ - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2019", - "origin": [ - 55.439998626708984, - 614.3820190429688 - ], - "bbox": [ - 55.439998626708984, - 605.1765747070312, - 75.26556396484375, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 75.26556396484375, - 614.3820190429688 - ], - "bbox": [ - 75.26556396484375, - 605.1765747070312, - 78.02131652832031, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Tan & Bansal", - "origin": [ - 78.02131652832031, - 614.3820190429688 - ], - "bbox": [ - 78.02131652832031, - 605.1765747070312, - 134.8215789794922, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 134.8215789794922, - 614.3820190429688 - ], - "bbox": [ - 134.8215789794922, - 605.1765747070312, - 137.29977416992188, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 137.29977416992188, - 614.3820190429688 - ], - "bbox": [ - 137.29977416992188, - 605.1765747070312, - 159.62335205078125, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 159.62335205078125, - 614.3820190429688 - ], - "bbox": [ - 159.62335205078125, - 605.1765747070312, - 162.3791046142578, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Li et al.", - "origin": [ - 162.3791046142578, - 614.3820190429688 - ], - "bbox": [ - 162.3791046142578, - 605.1765747070312, - 195.4679718017578, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 195.4679718017578, - 614.3820190429688 - ], - "bbox": [ - 195.4679718017578, - 605.1765747070312, - 197.9461669921875, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020a", - "origin": [ - 197.9461669921875, - 614.3820190429688 - ], - "bbox": [ - 197.9461669921875, - 605.1765747070312, - 224.66111755371094, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 224.66111755371094, - 614.3820190429688 - ], - "bbox": [ - 224.66111755371094, - 605.1765747070312, - 227.4168701171875, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Lu et al.", - "origin": [ - 227.4168701171875, - 614.3820190429688 - ], - "bbox": [ - 227.4168701171875, - 605.1765747070312, - 262.71630859375, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 262.71630859375, - 614.3820190429688 - ], - "bbox": [ - 262.71630859375, - 605.1765747070312, - 265.19451904296875, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 265.19451904296875, - 614.3820190429688 - ], - "bbox": [ - 265.19451904296875, - 605.1765747070312, - 287.5081787109375, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 287.5081787109375, - 614.3820190429688 - ], - "bbox": [ - 287.5081787109375, - 605.1765747070312, - 290.2639465332031, - 617.1815185546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 605.1765747070312, - 290.2639465332031, - 617.1815185546875 - ] - }, - { - "spans": [ - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Cho et al.", - "origin": [ - 55.439998626708984, - 626.3370361328125 - ], - "bbox": [ - 55.439998626708984, - 617.131591796875, - 94.53492736816406, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 94.53492736816406, - 626.3370361328125 - ], - "bbox": [ - 94.53492736816406, - 617.131591796875, - 97.0728988647461, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 97.0728988647461, - 626.3370361328125 - ], - "bbox": [ - 97.0728988647461, - 617.131591796875, - 119.86388397216797, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 119.86388397216797, - 626.3370361328125 - ], - "bbox": [ - 119.86388397216797, - 617.131591796875, - 122.68611145019531, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Qi et al.", - "origin": [ - 122.68611145019531, - 626.3370361328125 - ], - "bbox": [ - 122.68611145019531, - 617.131591796875, - 157.4969482421875, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 157.4969482421875, - 626.3370361328125 - ], - "bbox": [ - 157.4969482421875, - 617.131591796875, - 160.03492736816406, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 160.03492736816406, - 626.3370361328125 - ], - "bbox": [ - 160.03492736816406, - 617.131591796875, - 182.82591247558594, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 182.82591247558594, - 626.3370361328125 - ], - "bbox": [ - 182.82591247558594, - 617.131591796875, - 185.64813232421875, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Zhou et al.", - "origin": [ - 185.64813232421875, - 626.3370361328125 - ], - "bbox": [ - 185.64813232421875, - 617.131591796875, - 231.7377166748047, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 231.7377166748047, - 626.3370361328125 - ], - "bbox": [ - 231.7377166748047, - 617.131591796875, - 234.27569580078125, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 234.27569580078125, - 626.3370361328125 - ], - "bbox": [ - 234.27569580078125, - 617.131591796875, - 257.0666809082031, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 257.0666809082031, - 626.3370361328125 - ], - "bbox": [ - 257.0666809082031, - 617.131591796875, - 259.888916015625, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Huang", - "origin": [ - 259.888916015625, - 626.3370361328125 - ], - "bbox": [ - 259.888916015625, - 617.131591796875, - 289.44110107421875, - 629.1365356445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 617.131591796875, - 289.44110107421875, - 629.1365356445312 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 306.93798828125, - 422.1160583496094, - 542.9336547851562, - 487.715576171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Figure 1.", - "origin": [ - 306.93798828125, - 430.4010009765625 - ], - "bbox": [ - 306.93798828125, - 422.1160583496094, - 339.3157043457031, - 432.9205627441406 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Visual comparison of conventional VLP architectures", - "origin": [ - 339.3157043457031, - 430.4010009765625 - ], - "bbox": [ - 339.3157043457031, - 422.1160583496094, - 541.4371337890625, - 432.9205627441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.93798828125, - 422.1160583496094, - 541.4371337890625, - 432.9205627441406 - ] - }, - { - "spans": [ - { - "size": 9.020037651062012, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and our proposed ViLT. We have entirely removed convolutional", - "origin": [ - 307.44000244140625, - 441.3599853515625 - ], - "bbox": [ - 307.44000244140625, - 433.0750427246094, - 541.4402465820312, - 443.8795471191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 433.0750427246094, - 541.4402465820312, - 443.8795471191406 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "neural networks from the VLP pipeline without hurting perfor-", - "origin": [ - 307.44000244140625, - 452.3190002441406 - ], - "bbox": [ - 307.44000244140625, - 444.0340576171875, - 542.9336547851562, - 454.83856201171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 444.0340576171875, - 542.9336547851562, - 454.83856201171875 - ] - }, - { - "spans": [ - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "mance on downstream tasks. ViLT is the first VLP model of which", - "origin": [ - 307.44000244140625, - 463.27801513671875 - ], - "bbox": [ - 307.44000244140625, - 454.9930725097656, - 541.4396362304688, - 465.7975769042969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 454.9930725097656, - 541.4396362304688, - 465.7975769042969 - ] - }, - { - "spans": [ - { - "size": 8.988788604736328, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the modal-specific components require", - "origin": [ - 307.44000244140625, - 474.23699951171875 - ], - "bbox": [ - 307.44000244140625, - 465.9520568847656, - 447.3302917480469, - 476.7565612792969 - ] - }, - { - "size": 8.988788604736328, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " less", - "origin": [ - 447.3302917480469, - 474.23699951171875 - ], - "bbox": [ - 447.3302917480469, - 465.9520568847656, - 463.1018371582031, - 476.6579284667969 - ] - }, - { - "size": 8.988788604736328, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " computation than the", - "origin": [ - 463.1018371582031, - 474.23699951171875 - ], - "bbox": [ - 463.1018371582031, - 465.9520568847656, - 541.44384765625, - 476.7565612792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 465.9520568847656, - 541.44384765625, - 476.7565612792969 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "transformer component for multimodal interactions.", - "origin": [ - 307.44000244140625, - 485.1960144042969 - ], - "bbox": [ - 307.44000244140625, - 476.91107177734375, - 493.9679260253906, - 487.715576171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 476.91107177734375, - 493.9679260253906, - 487.715576171875 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 307.0820007324219, - 515.8865966796875, - 542.686767578125, - 587.66748046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "et al.", - "origin": [ - 307.44000244140625, - 525.092041015625 - ], - "bbox": [ - 307.44000244140625, - 515.8865966796875, - 328.06854248046875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 328.06854248046875, - 525.092041015625 - ], - "bbox": [ - 328.06854248046875, - 515.8865966796875, - 330.6090087890625, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 330.6090087890625, - 525.092041015625 - ], - "bbox": [ - 330.6090087890625, - 515.8865966796875, - 354.3572692871094, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 354.3572692871094, - 525.092041015625 - ], - "bbox": [ - 354.3572692871094, - 515.8865966796875, - 357.1822509765625, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Li et al.", - "origin": [ - 357.1822509765625, - 525.092041015625 - ], - "bbox": [ - 357.1822509765625, - 515.8865966796875, - 393.67340087890625, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 393.67340087890625, - 525.092041015625 - ], - "bbox": [ - 393.67340087890625, - 515.8865966796875, - 396.2138671875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020b", - "origin": [ - 396.2138671875, - 525.092041015625 - ], - "bbox": [ - 396.2138671875, - 515.8865966796875, - 425.0430603027344, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 425.0430603027344, - 525.092041015625 - ], - "bbox": [ - 425.0430603027344, - 515.8865966796875, - 427.8680419921875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Gan et al.", - "origin": [ - 427.8680419921875, - 525.092041015625 - ], - "bbox": [ - 427.8680419921875, - 515.8865966796875, - 472.26513671875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 472.26513671875, - 525.092041015625 - ], - "bbox": [ - 472.26513671875, - 515.8865966796875, - 474.80560302734375, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 474.80560302734375, - 525.092041015625 - ], - "bbox": [ - 474.80560302734375, - 515.8865966796875, - 498.543701171875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 498.543701171875, - 525.092041015625 - ], - "bbox": [ - 498.543701171875, - 515.8865966796875, - 501.3686828613281, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Yu et al.", - "origin": [ - 501.3686828613281, - 525.092041015625 - ], - "bbox": [ - 501.3686828613281, - 515.8865966796875, - 540.1463012695312, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 540.1463012695312, - 525.092041015625 - ], - "bbox": [ - 540.1463012695312, - 515.8865966796875, - 542.686767578125, - 527.8915405273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 515.8865966796875, - 542.686767578125, - 527.8915405273438 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2020", - "origin": [ - 307.44000244140625, - 537.0469970703125 - ], - "bbox": [ - 307.44000244140625, - 527.841552734375, - 327.76373291015625, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 327.76373291015625, - 537.0469970703125 - ], - "bbox": [ - 327.76373291015625, - 527.841552734375, - 330.5887145996094, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Zhang et al.", - "origin": [ - 330.5887145996094, - 537.0469970703125 - ], - "bbox": [ - 330.5887145996094, - 527.841552734375, - 383.5625, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 383.5625, - 537.0469970703125 - ], - "bbox": [ - 383.5625, - 527.841552734375, - 386.10296630859375, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2021", - "origin": [ - 386.10296630859375, - 537.0469970703125 - ], - "bbox": [ - 386.10296630859375, - 527.841552734375, - 409.6988220214844, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "). These models are pre-trained", - "origin": [ - 409.6988220214844, - 537.0469970703125 - ], - "bbox": [ - 409.6988220214844, - 527.841552734375, - 541.437255859375, - 539.8464965820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 527.841552734375, - 541.437255859375, - 539.8464965820312 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "with image text matching and masked language modeling", - "origin": [ - 307.0820007324219, - 549.0020141601562 - ], - "bbox": [ - 307.0820007324219, - 539.7965698242188, - 541.4448852539062, - 551.801513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.0820007324219, - 539.7965698242188, - 541.4448852539062, - 551.801513671875 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "objectives", - "origin": [ - 307.44000244140625, - 560.95703125 - ], - "bbox": [ - 307.44000244140625, - 551.7515869140625, - 346.6300964355469, - 563.7565307617188 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 346.6319885253906, - 557.3419799804688 - ], - "bbox": [ - 346.6319885253906, - 550.898193359375, - 350.118896484375, - 559.3016357421875 - ] - }, - { - "size": 9.862470626831055, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 350.118896484375, - 557.3419799804688 - ], - "bbox": [ - 350.118896484375, - 548.1365356445312, - 352.7349853515625, - 563.7565307617188 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "on images and their aligned descriptions, and are", - "origin": [ - 352.7349853515625, - 560.95703125 - ], - "bbox": [ - 352.7349853515625, - 551.7515869140625, - 541.4409790039062, - 563.7565307617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 548.1365356445312, - 541.4409790039062, - 563.7565307617188 - ] - }, - { - "spans": [ - { - "size": 9.89763069152832, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "fine-tuned on vision-and-language downstream tasks where", - "origin": [ - 307.44000244140625, - 572.9129638671875 - ], - "bbox": [ - 307.44000244140625, - 563.70751953125, - 541.4378662109375, - 575.7124633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 563.70751953125, - 541.4378662109375, - 575.7124633789062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the inputs involve two modalities.", - "origin": [ - 307.44000244140625, - 584.8679809570312 - ], - "bbox": [ - 307.44000244140625, - 575.6625366210938, - 441.925048828125, - 587.66748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 575.6625366210938, - 441.925048828125, - 587.66748046875 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 307.11199951171875, - 593.5955810546875, - 543.1831665039062, - 689.2864990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "To be fed into VLP models, image pixels need to be ini-", - "origin": [ - 307.1310119628906, - 602.801025390625 - ], - "bbox": [ - 307.1310119628906, - 593.5955810546875, - 543.08935546875, - 605.6005249023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.1310119628906, - 593.5955810546875, - 543.08935546875, - 605.6005249023438 - ] - }, - { - "spans": [ - { - "size": 9.90765380859375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tially embedded in a dense form alongside language tokens.", - "origin": [ - 307.44000244140625, - 614.7559814453125 - ], - "bbox": [ - 307.44000244140625, - 605.550537109375, - 543.1831665039062, - 617.5554809570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 605.550537109375, - 543.1831665039062, - 617.5554809570312 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Since the seminal work of", - "origin": [ - 307.44000244140625, - 626.7109985351562 - ], - "bbox": [ - 307.44000244140625, - 617.5055541992188, - 414.6678771972656, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Krizhevsky et al.", - "origin": [ - 414.6678771972656, - 626.7109985351562 - ], - "bbox": [ - 414.6678771972656, - 617.5055541992188, - 486.8475036621094, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " (", - "origin": [ - 486.8475036621094, - 626.7109985351562 - ], - "bbox": [ - 486.8475036621094, - 617.5055541992188, - 493.07672119140625, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2012", - "origin": [ - 493.07672119140625, - 626.7109985351562 - ], - "bbox": [ - 493.07672119140625, - 617.5055541992188, - 513.4004516601562, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "), deep", - "origin": [ - 513.4004516601562, - 626.7109985351562 - ], - "bbox": [ - 513.4004516601562, - 617.5055541992188, - 541.43701171875, - 629.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 617.5055541992188, - 541.43701171875, - 629.510498046875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "convolutional networks have been regarded as essential for", - "origin": [ - 307.44000244140625, - 638.666015625 - ], - "bbox": [ - 307.44000244140625, - 629.4605712890625, - 541.6109008789062, - 641.4655151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 629.4605712890625, - 541.6109008789062, - 641.4655151367188 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "this visual embedding step. Most VLP models employ an", - "origin": [ - 307.44000244140625, - 650.6209716796875 - ], - "bbox": [ - 307.44000244140625, - 641.41552734375, - 541.43701171875, - 653.4204711914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 641.41552734375, - 541.43701171875, - 653.4204711914062 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "object detector pre-trained on the Visual Genome dataset", - "origin": [ - 307.44000244140625, - 662.5759887695312 - ], - "bbox": [ - 307.44000244140625, - 653.3705444335938, - 541.43701171875, - 665.37548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 653.3705444335938, - 541.43701171875, - 665.37548828125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 307.11199951171875, - 674.531982421875 - ], - "bbox": [ - 307.11199951171875, - 665.3265380859375, - 310.49591064453125, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Krishna et al.", - "origin": [ - 310.49591064453125, - 674.531982421875 - ], - "bbox": [ - 310.49591064453125, - 665.3265380859375, - 365.3394775390625, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 365.3394775390625, - 674.531982421875 - ], - "bbox": [ - 365.3394775390625, - 665.3265380859375, - 367.87994384765625, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2017", - "origin": [ - 367.87994384765625, - 674.531982421875 - ], - "bbox": [ - 367.87994384765625, - 665.3265380859375, - 390.92706298828125, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") annotated with 1,600 object classes", - "origin": [ - 390.92706298828125, - 674.531982421875 - ], - "bbox": [ - 390.92706298828125, - 665.3265380859375, - 541.4443969726562, - 677.3314819335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.11199951171875, - 665.3265380859375, - 541.4443969726562, - 677.3314819335938 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and 400 attribute classes as in", - "origin": [ - 307.44000244140625, - 686.4869995117188 - ], - "bbox": [ - 307.44000244140625, - 677.2815551757812, - 423.8484802246094, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Anderson et al.", - "origin": [ - 423.8484802246094, - 686.4869995117188 - ], - "bbox": [ - 423.8484802246094, - 677.2815551757812, - 485.84576416015625, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " (", - "origin": [ - 485.84576416015625, - 686.4869995117188 - ], - "bbox": [ - 485.84576416015625, - 677.2815551757812, - 491.59637451171875, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2018", - "origin": [ - 491.59637451171875, - 686.4869995117188 - ], - "bbox": [ - 491.59637451171875, - 677.2815551757812, - 511.12310791015625, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "). Pixel-", - "origin": [ - 511.12310791015625, - 686.4869995117188 - ], - "bbox": [ - 511.12310791015625, - 677.2815551757812, - 543.09814453125, - 689.2864990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 677.2815551757812, - 543.09814453125, - 689.2864990234375 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 312.0, - 191.8269805908203, - 536.64, - 418.55999999999995 - ], - "image_path": "images/0_312_191_536_418.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 16.799999999999997, - 402.71999999999997, - 35.519999999999996, - 423.35999999999996 - ], - "image_path": "equations_inline/0_16_402_35_423.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 87.15061950683594, - 612.0, - 171.94522094726562 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 55.11199951171875, - 191.6519775390625, - 291.0977478027344, - 689.2864990234375 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 306.93798828125, - 191.6519775390625, - 543.1831665039062, - 689.2864990234375 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 163.52999877929688, - 87.15061950683594, - 432.6361389160156, - 123.74800872802734 - ], - "lines": [ - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "ViLT: Vision-and-Language Transformer", - "origin": [ - 172.30999755859375, - 100.9229736328125 - ], - "bbox": [ - 172.30999755859375, - 87.15061950683594, - 424.8892517089844, - 105.81502532958984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 172.30999755859375, - 87.15061950683594, - 424.8892517089844, - 105.81502532958984 - ] - }, - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Without Convolution or Region Supervision", - "origin": [ - 163.52999877929688, - 118.85595703125 - ], - "bbox": [ - 163.52999877929688, - 105.08360290527344, - 432.6361389160156, - 123.74800872802734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.52999877929688, - 105.08360290527344, - 432.6361389160156, - 123.74800872802734 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 198.60899353027344, - 155.3678436279297, - 396.6109313964844, - 171.94522094726562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Wonjae Kim", - "origin": [ - 198.60899353027344, - 168.5479736328125 - ], - "bbox": [ - 198.60899353027344, - 158.98387145996094, - 252.37713623046875, - 171.94522094726562 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 252.37713623046875, - 168.5479736328125 - ], - "bbox": [ - 252.37713623046875, - 158.4881591796875, - 254.03799438476562, - 170.5076141357422 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "* 1 †", - "origin": [ - 254.03799438476562, - 164.93194580078125 - ], - "bbox": [ - 254.03799438476562, - 158.4881591796875, - 267.8182373046875, - 166.89158630371094 - ] - }, - { - "size": 9.962599754333496, - "flags": 21, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": " ", - "origin": [ - 267.8182373046875, - 164.93194580078125 - ], - "bbox": [ - 267.8182373046875, - 155.3678436279297, - 274.4620056152344, - 171.94522094726562 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Bokyung Son", - "origin": [ - 274.4620056152344, - 168.5479736328125 - ], - "bbox": [ - 274.4620056152344, - 158.98387145996094, - 331.06951904296875, - 171.94522094726562 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 331.06951904296875, - 168.5479736328125 - ], - "bbox": [ - 331.06951904296875, - 158.4881591796875, - 332.7300109863281, - 170.5076141357422 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "* 1", - "origin": [ - 332.7300109863281, - 164.93194580078125 - ], - "bbox": [ - 332.7300109863281, - 158.4881591796875, - 341.36358642578125, - 166.89158630371094 - ] - }, - { - "size": 9.962599754333496, - "flags": 21, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": " ", - "origin": [ - 341.36358642578125, - 164.93194580078125 - ], - "bbox": [ - 341.36358642578125, - 155.3678436279297, - 348.00701904296875, - 171.94522094726562 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Ildoo Kim", - "origin": [ - 348.00701904296875, - 168.5479736328125 - ], - "bbox": [ - 348.00701904296875, - 158.98387145996094, - 391.4638977050781, - 171.94522094726562 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 391.4638977050781, - 168.5479736328125 - ], - "bbox": [ - 391.4638977050781, - 158.4881591796875, - 393.1240234375, - 170.5076141357422 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 393.1240234375, - 164.93194580078125 - ], - "bbox": [ - 393.1240234375, - 158.4881591796875, - 396.6109313964844, - 166.89158630371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.60899353027344, - 155.3678436279297, - 396.6109313964844, - 171.94522094726562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 150.19802856445312, - 191.6519775390625, - 194.68331909179688, - 207.2056884765625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Abstract", - "origin": [ - 150.19802856445312, - 203.12896728515625 - ], - "bbox": [ - 150.19802856445312, - 191.6519775390625, - 194.68331909179688, - 207.2056884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 150.19802856445312, - 191.6519775390625, - 194.68331909179688, - 207.2056884765625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 75.00700378417969, - 214.5135498046875, - 271.2561340332031, - 501.48748779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.947644233703613, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Vision-and-Language Pre-training (VLP) has im-", - "origin": [ - 75.36599731445312, - 223.718994140625 - ], - "bbox": [ - 75.36599731445312, - 214.5135498046875, - 271.1695251464844, - 226.5184783935547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 214.5135498046875, - 271.1695251464844, - 226.5184783935547 - ] - }, - { - "spans": [ - { - "size": 10.041984558105469, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "proved performance on various joint vision-and-", - "origin": [ - 75.36599731445312, - 235.67401123046875 - ], - "bbox": [ - 75.36599731445312, - 226.46856689453125, - 271.16607666015625, - 238.47349548339844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 226.46856689453125, - 271.16607666015625, - 238.47349548339844 - ] - }, - { - "spans": [ - { - "size": 10.002370834350586, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "language downstream tasks. Current approaches", - "origin": [ - 75.36599731445312, - 247.6290283203125 - ], - "bbox": [ - 75.36599731445312, - 238.423583984375, - 269.5137939453125, - 250.4285125732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 238.423583984375, - 269.5137939453125, - 250.4285125732422 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "to VLP heavily rely on image feature extraction", - "origin": [ - 75.36599731445312, - 259.583984375 - ], - "bbox": [ - 75.36599731445312, - 250.3785400390625, - 269.5183410644531, - 262.38348388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 250.3785400390625, - 269.5183410644531, - 262.38348388671875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "processes, most of which involve region super-", - "origin": [ - 75.36599731445312, - 271.53900146484375 - ], - "bbox": [ - 75.36599731445312, - 262.33355712890625, - 271.16461181640625, - 274.3385009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 262.33355712890625, - 271.16461181640625, - 274.3385009765625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "vision (e.g., object detection) and the convolu-", - "origin": [ - 75.11699676513672, - 283.4949951171875 - ], - "bbox": [ - 75.11699676513672, - 274.28955078125, - 271.1696472167969, - 286.29449462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.11699676513672, - 274.28955078125, - 271.1696472167969, - 286.29449462890625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tional architecture (e.g., ResNet). Although dis-", - "origin": [ - 75.36599731445312, - 295.45001220703125 - ], - "bbox": [ - 75.36599731445312, - 286.24456787109375, - 271.16461181640625, - 298.24951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 286.24456787109375, - 271.16461181640625, - 298.24951171875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "regarded in the literature, we find it problem-", - "origin": [ - 75.36599731445312, - 307.4049987792969 - ], - "bbox": [ - 75.36599731445312, - 298.1995544433594, - 271.1645812988281, - 310.2044982910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 298.1995544433594, - 271.1645812988281, - 310.2044982910156 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "atic in terms of both (1) efficiency/speed, that", - "origin": [ - 75.36599731445312, - 319.3599853515625 - ], - "bbox": [ - 75.36599731445312, - 310.154541015625, - 269.5184020996094, - 322.15948486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 310.154541015625, - 269.5184020996094, - 322.15948486328125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "simply extracting input features requires much", - "origin": [ - 75.36599731445312, - 331.31500244140625 - ], - "bbox": [ - 75.36599731445312, - 322.10955810546875, - 269.5184020996094, - 334.114501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 322.10955810546875, - 269.5184020996094, - 334.114501953125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "more computation than the multimodal interac-", - "origin": [ - 75.36599731445312, - 343.2699890136719 - ], - "bbox": [ - 75.36599731445312, - 334.0645446777344, - 271.16461181640625, - 346.0694885253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 334.0645446777344, - 271.16461181640625, - 346.0694885253906 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tion steps; and (2) expressive power, as it is upper", - "origin": [ - 75.36599731445312, - 355.22601318359375 - ], - "bbox": [ - 75.36599731445312, - 346.02056884765625, - 269.6858825683594, - 358.0255126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 346.02056884765625, - 269.6858825683594, - 358.0255126953125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "bounded to the expressive power of the visual", - "origin": [ - 75.36599731445312, - 367.1809997558594 - ], - "bbox": [ - 75.36599731445312, - 357.9755554199219, - 269.51837158203125, - 369.9804992675781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 357.9755554199219, - 269.51837158203125, - 369.9804992675781 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "embedder and its predefined visual vocabulary.", - "origin": [ - 75.36599731445312, - 379.135986328125 - ], - "bbox": [ - 75.36599731445312, - 369.9305419921875, - 271.2561340332031, - 381.93548583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 369.9305419921875, - 271.2561340332031, - 381.93548583984375 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "In this paper, we present a minimal VLP model,", - "origin": [ - 75.36599731445312, - 391.09100341796875 - ], - "bbox": [ - 75.36599731445312, - 381.88555908203125, - 270.7580871582031, - 393.8905029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 381.88555908203125, - 270.7580871582031, - 393.8905029296875 - ] - }, - { - "spans": [ - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Vision-and-Language Transformer (ViLT), mono-", - "origin": [ - 75.00700378417969, - 403.0459899902344 - ], - "bbox": [ - 75.00700378417969, - 393.8405456542969, - 271.1720886230469, - 405.8454895019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.00700378417969, - 393.8405456542969, - 271.1720886230469, - 405.8454895019531 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "lithic in the sense that the processing of visual", - "origin": [ - 75.36599731445312, - 415.0010070800781 - ], - "bbox": [ - 75.36599731445312, - 405.7955627441406, - 269.51837158203125, - 417.8005065917969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 405.7955627441406, - 269.51837158203125, - 417.8005065917969 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "inputs is drastically simplified to just the same", - "origin": [ - 75.36599731445312, - 426.9570007324219 - ], - "bbox": [ - 75.36599731445312, - 417.7515563964844, - 269.51837158203125, - 429.7565002441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 417.7515563964844, - 269.51837158203125, - 429.7565002441406 - ] - }, - { - "spans": [ - { - "size": 10.037040710449219, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "convolution-free manner that we process textual", - "origin": [ - 75.36599731445312, - 438.9119873046875 - ], - "bbox": [ - 75.36599731445312, - 429.70654296875, - 269.5171203613281, - 441.71148681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 429.70654296875, - 269.5171203613281, - 441.71148681640625 - ] - }, - { - "spans": [ - { - "size": 10.02714729309082, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "inputs. We show that ViLT is up to tens of times", - "origin": [ - 75.36599731445312, - 450.86700439453125 - ], - "bbox": [ - 75.36599731445312, - 441.66156005859375, - 269.5180358886719, - 453.66650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 441.66156005859375, - 269.5180358886719, - 453.66650390625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "faster than previous VLP models, yet with com-", - "origin": [ - 75.36599731445312, - 462.8219909667969 - ], - "bbox": [ - 75.36599731445312, - 453.6165466308594, - 271.1645812988281, - 465.6214904785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 453.6165466308594, - 271.1645812988281, - 465.6214904785156 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "petitive or better downstream task performance.", - "origin": [ - 75.36599731445312, - 474.7770080566406 - ], - "bbox": [ - 75.36599731445312, - 465.5715637207031, - 271.25604248046875, - 477.5765075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 465.5715637207031, - 271.25604248046875, - 477.5765075683594 - ] - }, - { - "spans": [ - { - "size": 9.9176664352417, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Our code and pre-trained weights are available at", - "origin": [ - 75.36599731445312, - 486.73199462890625 - ], - "bbox": [ - 75.36599731445312, - 477.52655029296875, - 269.5173034667969, - 489.531494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 477.52655029296875, - 269.5173034667969, - 489.531494140625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 5234, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": "https://github.com/dandelin/vilt", - "origin": [ - 75.36599731445312, - 498.68798828125 - ], - "bbox": [ - 75.36599731445312, - 490.6083068847656, - 266.6478271484375, - 501.04913330078125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 266.64801025390625, - 498.68798828125 - ], - "bbox": [ - 266.64801025390625, - 489.4825439453125, - 269.138671875, - 501.48748779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.36599731445312, - 489.4825439453125, - 269.138671875, - 501.48748779296875 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 55.44001770019531, - 535.7109985351562, - 132.27609252929688, - 551.2647094726562 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "1. Introduction", - "origin": [ - 55.44001770019531, - 547.18798828125 - ], - "bbox": [ - 55.44001770019531, - 535.7109985351562, - 132.27609252929688, - 551.2647094726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.44001770019531, - 535.7109985351562, - 132.27609252929688, - 551.2647094726562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 55.11199951171875, - 557.3555908203125, - 291.0977478027344, - 629.1365356445312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.927669525146484, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "The pre-train-and-fine-tune scheme has been expanded to a", - "origin": [ - 55.13100051879883, - 566.56103515625 - ], - "bbox": [ - 55.13100051879883, - 557.3555908203125, - 289.4433898925781, - 569.3605346679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.13100051879883, - 557.3555908203125, - 289.4433898925781, - 569.3605346679688 - ] - }, - { - "spans": [ - { - "size": 9.92266845703125, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "joint domain of vision and language, giving birth to the cat-", - "origin": [ - 55.439998626708984, - 578.5169677734375 - ], - "bbox": [ - 55.439998626708984, - 569.3115234375, - 291.0977478027344, - 581.3164672851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 569.3115234375, - 291.0977478027344, - 581.3164672851562 - ] - }, - { - "spans": [ - { - "size": 10.017244338989258, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "egory of", - "origin": [ - 55.439998626708984, - 590.4719848632812 - ], - "bbox": [ - 55.439998626708984, - 581.2665405273438, - 89.09119415283203, - 593.271484375 - ] - }, - { - "size": 10.017244338989258, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " Vision-and-Language Pre-training (VLP)", - "origin": [ - 89.09119415283203, - 590.4719848632812 - ], - "bbox": [ - 89.09119415283203, - 581.2665405273438, - 257.868896484375, - 593.161865234375 - ] - }, - { - "size": 10.017244338989258, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " models", - "origin": [ - 257.868896484375, - 590.4719848632812 - ], - "bbox": [ - 257.868896484375, - 581.2665405273438, - 289.4405822753906, - 593.271484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 581.2665405273438, - 289.4405822753906, - 593.271484375 - ] - }, - { - "spans": [ - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 55.11199951171875, - 602.427001953125 - ], - "bbox": [ - 55.11199951171875, - 593.2215576171875, - 58.436180114746094, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Lu et al.", - "origin": [ - 58.436180114746094, - 602.427001953125 - ], - "bbox": [ - 58.436180114746094, - 593.2215576171875, - 91.40845489501953, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 91.40845489501953, - 602.427001953125 - ], - "bbox": [ - 91.40845489501953, - 593.2215576171875, - 93.90408325195312, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 93.90408325195312, - 602.427001953125 - ], - "bbox": [ - 93.90408325195312, - 593.2215576171875, - 116.3647689819336, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 116.3647689819336, - 602.427001953125 - ], - "bbox": [ - 116.3647689819336, - 593.2215576171875, - 119.13990783691406, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Chen et al.", - "origin": [ - 119.13990783691406, - 602.427001953125 - ], - "bbox": [ - 119.13990783691406, - 593.2215576171875, - 164.58033752441406, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 164.58033752441406, - 602.427001953125 - ], - "bbox": [ - 164.58033752441406, - 593.2215576171875, - 167.0759735107422, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 167.0759735107422, - 602.427001953125 - ], - "bbox": [ - 167.0759735107422, - 593.2215576171875, - 189.52664184570312, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 189.52664184570312, - 602.427001953125 - ], - "bbox": [ - 189.52664184570312, - 593.2215576171875, - 192.30178833007812, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Su et al.", - "origin": [ - 192.30178833007812, - 602.427001953125 - ], - "bbox": [ - 192.30178833007812, - 593.2215576171875, - 227.22064208984375, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 227.22064208984375, - 602.427001953125 - ], - "bbox": [ - 227.22064208984375, - 593.2215576171875, - 229.71627807617188, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 229.71627807617188, - 602.427001953125 - ], - "bbox": [ - 229.71627807617188, - 593.2215576171875, - 252.1669464111328, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 252.1669464111328, - 602.427001953125 - ], - "bbox": [ - 252.1669464111328, - 593.2215576171875, - 254.9420928955078, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Li et al.", - "origin": [ - 254.9420928955078, - 602.427001953125 - ], - "bbox": [ - 254.9420928955078, - 593.2215576171875, - 288.1939392089844, - 605.2265014648438 - ] - }, - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 288.1939392089844, - 602.427001953125 - ], - "bbox": [ - 288.1939392089844, - 593.2215576171875, - 290.6895751953125, - 605.2265014648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.11199951171875, - 593.2215576171875, - 290.6895751953125, - 605.2265014648438 - ] - }, - { - "spans": [ - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2019", - "origin": [ - 55.439998626708984, - 614.3820190429688 - ], - "bbox": [ - 55.439998626708984, - 605.1765747070312, - 75.26556396484375, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 75.26556396484375, - 614.3820190429688 - ], - "bbox": [ - 75.26556396484375, - 605.1765747070312, - 78.02131652832031, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Tan & Bansal", - "origin": [ - 78.02131652832031, - 614.3820190429688 - ], - "bbox": [ - 78.02131652832031, - 605.1765747070312, - 134.8215789794922, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 134.8215789794922, - 614.3820190429688 - ], - "bbox": [ - 134.8215789794922, - 605.1765747070312, - 137.29977416992188, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 137.29977416992188, - 614.3820190429688 - ], - "bbox": [ - 137.29977416992188, - 605.1765747070312, - 159.62335205078125, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 159.62335205078125, - 614.3820190429688 - ], - "bbox": [ - 159.62335205078125, - 605.1765747070312, - 162.3791046142578, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Li et al.", - "origin": [ - 162.3791046142578, - 614.3820190429688 - ], - "bbox": [ - 162.3791046142578, - 605.1765747070312, - 195.4679718017578, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 195.4679718017578, - 614.3820190429688 - ], - "bbox": [ - 195.4679718017578, - 605.1765747070312, - 197.9461669921875, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020a", - "origin": [ - 197.9461669921875, - 614.3820190429688 - ], - "bbox": [ - 197.9461669921875, - 605.1765747070312, - 224.66111755371094, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 224.66111755371094, - 614.3820190429688 - ], - "bbox": [ - 224.66111755371094, - 605.1765747070312, - 227.4168701171875, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Lu et al.", - "origin": [ - 227.4168701171875, - 614.3820190429688 - ], - "bbox": [ - 227.4168701171875, - 605.1765747070312, - 262.71630859375, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 262.71630859375, - 614.3820190429688 - ], - "bbox": [ - 262.71630859375, - 605.1765747070312, - 265.19451904296875, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 265.19451904296875, - 614.3820190429688 - ], - "bbox": [ - 265.19451904296875, - 605.1765747070312, - 287.5081787109375, - 617.1815185546875 - ] - }, - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 287.5081787109375, - 614.3820190429688 - ], - "bbox": [ - 287.5081787109375, - 605.1765747070312, - 290.2639465332031, - 617.1815185546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 605.1765747070312, - 290.2639465332031, - 617.1815185546875 - ] - }, - { - "spans": [ - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Cho et al.", - "origin": [ - 55.439998626708984, - 626.3370361328125 - ], - "bbox": [ - 55.439998626708984, - 617.131591796875, - 94.53492736816406, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 94.53492736816406, - 626.3370361328125 - ], - "bbox": [ - 94.53492736816406, - 617.131591796875, - 97.0728988647461, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 97.0728988647461, - 626.3370361328125 - ], - "bbox": [ - 97.0728988647461, - 617.131591796875, - 119.86388397216797, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 119.86388397216797, - 626.3370361328125 - ], - "bbox": [ - 119.86388397216797, - 617.131591796875, - 122.68611145019531, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Qi et al.", - "origin": [ - 122.68611145019531, - 626.3370361328125 - ], - "bbox": [ - 122.68611145019531, - 617.131591796875, - 157.4969482421875, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 157.4969482421875, - 626.3370361328125 - ], - "bbox": [ - 157.4969482421875, - 617.131591796875, - 160.03492736816406, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 160.03492736816406, - 626.3370361328125 - ], - "bbox": [ - 160.03492736816406, - 617.131591796875, - 182.82591247558594, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 182.82591247558594, - 626.3370361328125 - ], - "bbox": [ - 182.82591247558594, - 617.131591796875, - 185.64813232421875, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Zhou et al.", - "origin": [ - 185.64813232421875, - 626.3370361328125 - ], - "bbox": [ - 185.64813232421875, - 617.131591796875, - 231.7377166748047, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 231.7377166748047, - 626.3370361328125 - ], - "bbox": [ - 231.7377166748047, - 617.131591796875, - 234.27569580078125, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 234.27569580078125, - 626.3370361328125 - ], - "bbox": [ - 234.27569580078125, - 617.131591796875, - 257.0666809082031, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 257.0666809082031, - 626.3370361328125 - ], - "bbox": [ - 257.0666809082031, - 617.131591796875, - 259.888916015625, - 629.1365356445312 - ] - }, - { - "size": 10.056798934936523, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Huang", - "origin": [ - 259.888916015625, - 626.3370361328125 - ], - "bbox": [ - 259.888916015625, - 617.131591796875, - 289.44110107421875, - 629.1365356445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 617.131591796875, - 289.44110107421875, - 629.1365356445312 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 54.426998138427734, - 635.9896850585938, - 290.9289855957031, - 687.6925048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "*", - "origin": [ - 64.95500183105469, - 641.5130004882812 - ], - "bbox": [ - 64.95500183105469, - 635.9896850585938, - 67.94380187988281, - 643.1926879882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Equal contribution", - "origin": [ - 68.44200134277344, - 645.322021484375 - ], - "bbox": [ - 68.44200134277344, - 637.0370483398438, - 133.5630340576172, - 647.841552734375 - ] - }, - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " †", - "origin": [ - 133.5630340576172, - 645.322021484375 - ], - "bbox": [ - 133.5630340576172, - 635.9896850585938, - 138.3968048095703, - 647.001708984375 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Current affiliation: NAVER AI Lab, Seong-", - "origin": [ - 138.89500427246094, - 645.322021484375 - ], - "bbox": [ - 138.89500427246094, - 637.0370483398438, - 290.9289855957031, - 647.841552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.95500183105469, - 635.9896850585938, - 290.9289855957031, - 647.841552734375 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "nam, Gyeonggi, Republic of Korea.", - "origin": [ - 55.439998626708984, - 655.2850341796875 - ], - "bbox": [ - 55.439998626708984, - 647.0000610351562, - 187.9615936279297, - 657.8045654296875 - ] - }, - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 187.9615936279297, - 655.2850341796875 - ], - "bbox": [ - 187.9615936279297, - 645.9526977539062, - 192.20399475097656, - 656.9647216796875 - ] - }, - { - "size": 5.97760009765625, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 192.20399475097656, - 651.4760131835938 - ], - "bbox": [ - 192.20399475097656, - 645.9526977539062, - 195.1927947998047, - 653.1557006835938 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Kakao Enterprise, Seong-", - "origin": [ - 195.6909942626953, - 655.2850341796875 - ], - "bbox": [ - 195.6909942626953, - 647.0000610351562, - 290.92547607421875, - 657.8045654296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 645.9526977539062, - 290.92547607421875, - 657.8045654296875 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "nam, Gyeonggi, Republic of Korea", - "origin": [ - 55.439998626708984, - 665.2479858398438 - ], - "bbox": [ - 55.439998626708984, - 656.9630126953125, - 188.9858856201172, - 667.7675170898438 - ] - }, - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 188.9858856201172, - 665.2479858398438 - ], - "bbox": [ - 188.9858856201172, - 655.9156494140625, - 192.4550018310547, - 666.9276733398438 - ] - }, - { - "size": 5.97760009765625, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 192.4550018310547, - 661.43896484375 - ], - "bbox": [ - 192.4550018310547, - 655.9156494140625, - 195.4438018798828, - 663.11865234375 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Kakao Brain, Seongnam,", - "origin": [ - 195.94200134277344, - 665.2479858398438 - ], - "bbox": [ - 195.94200134277344, - 656.9630126953125, - 290.5637512207031, - 667.7675170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 655.9156494140625, - 290.5637512207031, - 667.7675170898438 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Gyeonggi, Republic of Korea. Correspondence to: Wonjae Kim", - "origin": [ - 55.439998626708984, - 675.2100219726562 - ], - "bbox": [ - 55.439998626708984, - 666.925048828125, - 289.44256591796875, - 677.7295532226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 666.925048828125, - 289.44256591796875, - 677.7295532226562 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 54.426998138427734, - 685.1729736328125 - ], - "bbox": [ - 54.426998138427734, - 676.8880004882812, - 170.25494384765625, - 687.6925048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.426998138427734, - 676.8880004882812, - 170.25494384765625, - 687.6925048828125 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 55.1619987487793, - 693.0040283203125, - 289.4412841796875, - 717.5805053710938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": "Proceedings of the", - "origin": [ - 55.1619987487793, - 705.0980224609375 - ], - "bbox": [ - 55.1619987487793, - 696.8130493164062, - 124.84329223632812, - 707.5189208984375 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMTI9", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 38", - "origin": [ - 124.84329223632812, - 705.0980224609375 - ], - "bbox": [ - 124.84329223632812, - 698.3732299804688, - 137.28375244140625, - 707.339599609375 - ] - }, - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMMI6", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " ", - "origin": [ - 137.28375244140625, - 705.0980224609375 - ], - "bbox": [ - 137.28375244140625, - 696.8057861328125, - 138.4969940185547, - 706.5924072265625 - ] - }, - { - "size": 5.97760009765625, - "flags": 7, - "font": "CMMI6", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "th", - "origin": [ - 138.4969940185547, - 701.2890014648438 - ], - "bbox": [ - 138.4969940185547, - 696.8057861328125, - 145.68206787109375, - 702.7833862304688 - ] - }, - { - "size": 9.055620193481445, - "flags": 7, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " ", - "origin": [ - 145.68206787109375, - 701.2890014648438 - ], - "bbox": [ - 145.68206787109375, - 693.0040283203125, - 149.218994140625, - 707.5189208984375 - ] - }, - { - "size": 9.055620193481445, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": "International Conference on Machine", - "origin": [ - 149.218994140625, - 705.0980224609375 - ], - "bbox": [ - 149.218994140625, - 696.8130493164062, - 289.4412841796875, - 707.5189208984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.1619987487793, - 693.0040283203125, - 289.4412841796875, - 707.5189208984375 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": "Learning", - "origin": [ - 55.18899917602539, - 715.0609741210938 - ], - "bbox": [ - 55.18899917602539, - 706.7760009765625, - 88.06878662109375, - 717.4818725585938 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ", PMLR 139, 2021. Copyright 2021 by the author(s).", - "origin": [ - 88.06900024414062, - 715.0609741210938 - ], - "bbox": [ - 88.06900024414062, - 706.7760009765625, - 277.80706787109375, - 717.5805053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.18899917602539, - 706.7760009765625, - 277.80706787109375, - 717.5805053710938 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 502.3902282714844, - 251.63328552246094, - 525.6985473632812, - 263.7827453613281 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Modality ", - "origin": [ - 504.17840576171875, - 256.42926025390625 - ], - "bbox": [ - 504.17840576171875, - 251.63328552246094, - 525.2564697265625, - 257.59344482421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 504.17840576171875, - 251.63328552246094, - 525.2564697265625, - 257.59344482421875 - ] - }, - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Interaction", - "origin": [ - 502.3902282714844, - 262.6185607910156 - ], - "bbox": [ - 502.3902282714844, - 257.8226013183594, - 525.6985473632812, - 263.7827453613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 502.3902282714844, - 257.8226013183594, - 525.6985473632812, - 263.7827453613281 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 459.72119140625, - 292.3870849609375, - 475.1094055175781, - 298.34722900390625 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Linear ", - "origin": [ - 459.72119140625, - 297.18304443359375 - ], - "bbox": [ - 459.72119140625, - 292.3870849609375, - 475.1094055175781, - 298.34722900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.72119140625, - 292.3870849609375, - 475.1094055175781, - 298.34722900390625 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 454.3236999511719, - 298.57635498046875, - 479.13580322265625, - 304.5364990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Embedding", - "origin": [ - 454.3236999511719, - 303.372314453125 - ], - "bbox": [ - 454.3236999511719, - 298.57635498046875, - 479.13580322265625, - 304.5364990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.3236999511719, - 298.57635498046875, - 479.13580322265625, - 304.5364990234375 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 459.72119140625, - 262.53955078125, - 475.1094055175781, - 268.49969482421875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Linear ", - "origin": [ - 459.72119140625, - 267.33551025390625 - ], - "bbox": [ - 459.72119140625, - 262.53955078125, - 475.1094055175781, - 268.49969482421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.72119140625, - 262.53955078125, - 475.1094055175781, - 268.49969482421875 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 454.3236999511719, - 268.7288513183594, - 479.13580322265625, - 274.6889953613281 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Embedding", - "origin": [ - 454.3236999511719, - 273.5248107910156 - ], - "bbox": [ - 454.3236999511719, - 268.7288513183594, - 479.13580322265625, - 274.6889953613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.3236999511719, - 268.7288513183594, - 479.13580322265625, - 274.6889953613281 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 461.06146240234375, - 238.60382080078125, - 473.7705078125, - 244.56396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "CNN ", - "origin": [ - 461.06146240234375, - 243.39979553222656 - ], - "bbox": [ - 461.06146240234375, - 238.60382080078125, - 473.7705078125, - 244.56396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.06146240234375, - 238.60382080078125, - 473.7705078125, - 244.56396484375 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 455.9700927734375, - 244.79312133789062, - 477.48974609375, - 250.75326538085938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Backbone", - "origin": [ - 455.9700927734375, - 249.58909606933594 - ], - "bbox": [ - 455.9700927734375, - 244.79312133789062, - 477.48974609375, - 250.75326538085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.9700927734375, - 244.79312133789062, - 477.48974609375, - 250.75326538085938 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 423.95831298828125, - 214.78736877441406, - 436.6673583984375, - 220.7475128173828 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "CNN ", - "origin": [ - 423.95831298828125, - 219.58334350585938 - ], - "bbox": [ - 423.95831298828125, - 214.78736877441406, - 436.6673583984375, - 220.7475128173828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.95831298828125, - 214.78736877441406, - 436.6673583984375, - 220.7475128173828 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 418.866943359375, - 220.97666931152344, - 440.3865966796875, - 226.9368133544922 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Backbone", - "origin": [ - 418.866943359375, - 225.77264404296875 - ], - "bbox": [ - 418.866943359375, - 220.97666931152344, - 440.3865966796875, - 226.9368133544922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 418.866943359375, - 220.97666931152344, - 440.3865966796875, - 226.9368133544922 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 458.9696044921875, - 214.73648071289062, - 475.8615417480469, - 220.69662475585938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Region ", - "origin": [ - 458.9696044921875, - 219.53245544433594 - ], - "bbox": [ - 458.9696044921875, - 214.73648071289062, - 475.8615417480469, - 220.69662475585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.9696044921875, - 214.73648071289062, - 475.8615417480469, - 220.69662475585938 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 454.9228820800781, - 220.92578125, - 478.5367126464844, - 226.88592529296875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Operations", - "origin": [ - 454.9228820800781, - 225.7217559814453 - ], - "bbox": [ - 454.9228820800781, - 220.92578125, - 478.5367126464844, - 226.88592529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.9228820800781, - 220.92578125, - 478.5367126464844, - 226.88592529296875 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 388.87701416015625, - 192.8269805908203, - 476.27813720703125, - 201.76719665527344 - ], - "lines": [ - { - "spans": [ - { - "size": 8.072999954223633, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Visual Embedding Schema", - "origin": [ - 388.87701416015625, - 200.02093505859375 - ], - "bbox": [ - 388.87701416015625, - 192.8269805908203, - 476.27813720703125, - 201.76719665527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.87701416015625, - 192.8269805908203, - 476.27813720703125, - 201.76719665527344 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 320.90106201171875, - 342.736328125, - 362.5631408691406, - 350.1865234375 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "UNITER-Base ", - "origin": [ - 320.90106201171875, - 348.7312927246094 - ], - "bbox": [ - 320.90106201171875, - 342.736328125, - 362.5631408691406, - 350.1865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.90106201171875, - 342.736328125, - 362.5631408691406, - 350.1865234375 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 317.7691650390625, - 350.3517761230469, - 364.0132141113281, - 357.2059631347656 - ], - "lines": [ - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(75.8 / 85.9 / 72.5)", - "origin": [ - 317.7691650390625, - 355.8671569824219 - ], - "bbox": [ - 317.7691650390625, - 350.3517761230469, - 364.0132141113281, - 357.2059631347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.7691650390625, - 350.3517761230469, - 364.0132141113281, - 357.2059631347656 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 317.7691650390625, - 363.93743896484375, - 365.4202880859375, - 378.4071044921875 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Pixel-BERT-R50 ", - "origin": [ - 318.043212890625, - 369.9324035644531 - ], - "bbox": [ - 318.043212890625, - 363.93743896484375, - 365.4202880859375, - 371.38763427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.043212890625, - 363.93743896484375, - 365.4202880859375, - 371.38763427734375 - ] - }, - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(72.4 / 75.7 / 53.4)", - "origin": [ - 317.7691650390625, - 377.06829833984375 - ], - "bbox": [ - 317.7691650390625, - 371.55291748046875, - 364.0132141113281, - 378.4071044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.7691650390625, - 371.55291748046875, - 364.0132141113281, - 378.4071044921875 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 316.9542541503906, - 385.1385192871094, - 366.50970458984375, - 399.6081848144531 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "ViLT-B/32 (Ours) ", - "origin": [ - 316.9542541503906, - 391.13348388671875 - ], - "bbox": [ - 316.9542541503906, - 385.1385192871094, - 366.50970458984375, - 392.5887145996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.9542541503906, - 385.1385192871094, - 366.50970458984375, - 392.5887145996094 - ] - }, - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(76.1 / 83.5 / 64.4)", - "origin": [ - 317.7691650390625, - 398.2693786621094 - ], - "bbox": [ - 317.7691650390625, - 392.7539978027344, - 364.0132141113281, - 399.6081848144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.7691650390625, - 392.7539978027344, - 364.0132141113281, - 399.6081848144531 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 380.48431396484375, - 345.4301452636719, - 393.43341064453125, - 354.4749450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~75 ms ", - "origin": [ - 380.48431396484375, - 349.0271301269531 - ], - "bbox": [ - 380.48431396484375, - 345.4301452636719, - 393.43341064453125, - 349.9002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.48431396484375, - 345.4301452636719, - 393.43341064453125, - 349.9002685546875 - ] - }, - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(R101)", - "origin": [ - 380.736572265625, - 353.601806640625 - ], - "bbox": [ - 380.736572265625, - 350.00482177734375, - 392.1719970703125, - 354.4749450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.736572265625, - 350.00482177734375, - 392.1719970703125, - 354.4749450683594 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 449.0875244140625, - 345.69921875, - 464.05487060546875, - 350.1693420410156 - ], - "lines": [ - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~810 ms ", - "origin": [ - 449.0875244140625, - 349.29620361328125 - ], - "bbox": [ - 449.0875244140625, - 345.69921875, - 464.05487060546875, - 350.1693420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.0875244140625, - 345.69921875, - 464.05487060546875, - 350.1693420410156 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 429.29095458984375, - 350.6640625, - 482.8427429199219, - 354.24017333984375 - ], - "lines": [ - { - "spans": [ - { - "size": 3.2292001247406006, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(RPNs, RoI Align, NMS, and RoI Heads)", - "origin": [ - 429.29095458984375, - 353.5416564941406 - ], - "bbox": [ - 429.29095458984375, - 350.6640625, - 482.8427429199219, - 354.24017333984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.29095458984375, - 350.6640625, - 482.8427429199219, - 354.24017333984375 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 374.83319091796875, - 367.0010681152344, - 387.78228759765625, - 376.0458679199219 - ], - "lines": [ - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~45 ms ", - "origin": [ - 374.83319091796875, - 370.5980529785156 - ], - "bbox": [ - 374.83319091796875, - 367.0010681152344, - 387.78228759765625, - 371.47119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 374.83319091796875, - 367.0010681152344, - 387.78228759765625, - 371.47119140625 - ] - }, - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(R50)", - "origin": [ - 376.0946044921875, - 375.1727294921875 - ], - "bbox": [ - 376.0946044921875, - 371.57574462890625, - 385.51177978515625, - 376.0458679199219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.0946044921875, - 371.57574462890625, - 385.51177978515625, - 376.0458679199219 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 519.169677734375, - 347.3037414550781, - 534.98876953125, - 352.3698425292969 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~900 ms", - "origin": [ - 519.169677734375, - 351.38031005859375 - ], - "bbox": [ - 519.169677734375, - 347.3037414550781, - 534.98876953125, - 352.3698425292969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 519.169677734375, - 347.3037414550781, - 534.98876953125, - 352.3698425292969 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 397.5927429199219, - 368.80059814453125, - 411.1245422363281, - 373.86669921875 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~60 ms", - "origin": [ - 397.5927429199219, - 372.8771667480469 - ], - "bbox": [ - 397.5927429199219, - 368.80059814453125, - 411.1245422363281, - 373.86669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.5927429199219, - 368.80059814453125, - 411.1245422363281, - 373.86669921875 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 382.01416015625, - 390.0016784667969, - 395.54595947265625, - 395.0677795410156 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~15 ms", - "origin": [ - 382.01416015625, - 394.0782470703125 - ], - "bbox": [ - 382.01416015625, - 390.0016784667969, - 395.54595947265625, - 395.0677795410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.01416015625, - 390.0016784667969, - 395.54595947265625, - 395.0677795410156 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 399.98944091796875, - 397.70892333984375, - 415.8087463378906, - 402.7750244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~0.4 ms ", - "origin": [ - 399.98944091796875, - 401.7854919433594 - ], - "bbox": [ - 399.98944091796875, - 397.70892333984375, - 415.8087463378906, - 402.7750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.98944091796875, - 397.70892333984375, - 415.8087463378906, - 402.7750244140625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 388.718017578125, - 403.0909118652344, - 425.93505859375, - 408.1570129394531 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Linear Embedding)", - "origin": [ - 388.718017578125, - 407.16748046875 - ], - "bbox": [ - 388.718017578125, - 403.0909118652344, - 425.93505859375, - 408.1570129394531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.718017578125, - 403.0909118652344, - 425.93505859375, - 408.1570129394531 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 507.81719970703125, - 373.48095703125, - 522.4928588867188, - 378.54705810546875 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~15 ms ", - "origin": [ - 507.81719970703125, - 377.5575256347656 - ], - "bbox": [ - 507.81719970703125, - 373.48095703125, - 522.4928588867188, - 378.54705810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.81719970703125, - 373.48095703125, - 522.4928588867188, - 378.54705810546875 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 498.5437316894531, - 378.86297607421875, - 530.6211547851562, - 383.9290771484375 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(BERT-base-like)", - "origin": [ - 498.5437316894531, - 382.9395446777344 - ], - "bbox": [ - 498.5437316894531, - 378.86297607421875, - 530.6211547851562, - 383.9290771484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 498.5437316894531, - 378.86297607421875, - 530.6211547851562, - 383.9290771484375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 409.3610534667969, - 318.82305908203125, - 457.8135986328125, - 327.7632751464844 - ], - "lines": [ - { - "spans": [ - { - "size": 8.072999954223633, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Running Time ", - "origin": [ - 409.3610534667969, - 326.01702880859375 - ], - "bbox": [ - 409.3610534667969, - 318.82305908203125, - 457.8135986328125, - 327.7632751464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 409.3610534667969, - 318.82305908203125, - 457.8135986328125, - 327.7632751464844 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 356.78668212890625, - 328.10675048828125, - 508.369140625, - 334.06689453125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Performances : NLVR2 test-P Acc. / F30K TR R@1 / F30K IR R@1)", - "origin": [ - 356.78668212890625, - 332.9027099609375 - ], - "bbox": [ - 356.78668212890625, - 328.10675048828125, - 508.369140625, - 334.06689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 356.78668212890625, - 328.10675048828125, - 508.369140625, - 334.06689453125 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 320.24737548828125, - 214.0364532470703, - 363.2159423828125, - 221.48663330078125 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Region Feature ", - "origin": [ - 320.24737548828125, - 220.0314178466797 - ], - "bbox": [ - 320.24737548828125, - 214.0364532470703, - 363.2159423828125, - 221.48663330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.24737548828125, - 214.0364532470703, - 363.2159423828125, - 221.48663330078125 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 313.8355407714844, - 221.77296447753906, - 367.9461975097656, - 227.7331085205078 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(ViLBERT, UNITER, ...)", - "origin": [ - 313.8355407714844, - 226.56893920898438 - ], - "bbox": [ - 313.8355407714844, - 221.77296447753906, - 367.9461975097656, - 227.7331085205078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.8355407714844, - 221.77296447753906, - 367.9461975097656, - 227.7331085205078 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 323.7983703613281, - 237.6286163330078, - 359.6653747558594, - 251.32525634765625 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Grid Feature ", - "origin": [ - 323.7983703613281, - 243.6235809326172 - ], - "bbox": [ - 323.7983703613281, - 237.6286163330078, - 359.6653747558594, - 245.07879638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.7983703613281, - 237.6286163330078, - 359.6653747558594, - 245.07879638671875 - ] - }, - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Pixel-BERT)", - "origin": [ - 325.95556640625, - 250.1610870361328 - ], - "bbox": [ - 325.95556640625, - 245.3651123046875, - 355.82623291015625, - 251.32525634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.95556640625, - 245.3651123046875, - 355.82623291015625, - 251.32525634765625 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 318.3692626953125, - 261.5335388183594, - 364.3302001953125, - 268.9837341308594 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Patch Projection ", - "origin": [ - 318.3692626953125, - 267.52850341796875 - ], - "bbox": [ - 318.3692626953125, - 261.5335388183594, - 364.3302001953125, - 268.9837341308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.3692626953125, - 261.5335388183594, - 364.3302001953125, - 268.9837341308594 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 332.43145751953125, - 269.14898681640625, - 348.58807373046875, - 276.003173828125 - ], - "lines": [ - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Ours)", - "origin": [ - 332.43145751953125, - 274.66436767578125 - ], - "bbox": [ - 332.43145751953125, - 269.14898681640625, - 348.58807373046875, - 276.003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.43145751953125, - 269.14898681640625, - 348.58807373046875, - 276.003173828125 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 385.84881591796875, - 218.06820678710938, - 399.29547119140625, - 224.02835083007812 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Image", - "origin": [ - 385.84881591796875, - 222.8641815185547 - ], - "bbox": [ - 385.84881591796875, - 218.06820678710938, - 399.29547119140625, - 224.02835083007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.84881591796875, - 218.06820678710938, - 399.29547119140625, - 224.02835083007812 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 385.84881591796875, - 241.94732666015625, - 399.29547119140625, - 247.907470703125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Image", - "origin": [ - 385.84881591796875, - 246.74330139160156 - ], - "bbox": [ - 385.84881591796875, - 241.94732666015625, - 399.29547119140625, - 247.907470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.84881591796875, - 241.94732666015625, - 399.29547119140625, - 247.907470703125 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 385.84881591796875, - 265.88916015625, - 399.29547119140625, - 271.84930419921875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Image", - "origin": [ - 385.84881591796875, - 270.68511962890625 - ], - "bbox": [ - 385.84881591796875, - 265.88916015625, - 399.29547119140625, - 271.84930419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.84881591796875, - 265.88916015625, - 399.29547119140625, - 271.84930419921875 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 387.8289794921875, - 295.6824951171875, - 397.3154602050781, - 301.64263916015625 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Text", - "origin": [ - 387.8289794921875, - 300.47845458984375 - ], - "bbox": [ - 387.8289794921875, - 295.6824951171875, - 397.3154602050781, - 301.64263916015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 387.8289794921875, - 295.6824951171875, - 397.3154602050781, - 301.64263916015625 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 306.93798828125, - 422.1160583496094, - 542.9336547851562, - 487.715576171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Figure 1.", - "origin": [ - 306.93798828125, - 430.4010009765625 - ], - "bbox": [ - 306.93798828125, - 422.1160583496094, - 339.3157043457031, - 432.9205627441406 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Visual comparison of conventional VLP architectures", - "origin": [ - 339.3157043457031, - 430.4010009765625 - ], - "bbox": [ - 339.3157043457031, - 422.1160583496094, - 541.4371337890625, - 432.9205627441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.93798828125, - 422.1160583496094, - 541.4371337890625, - 432.9205627441406 - ] - }, - { - "spans": [ - { - "size": 9.020037651062012, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and our proposed ViLT. We have entirely removed convolutional", - "origin": [ - 307.44000244140625, - 441.3599853515625 - ], - "bbox": [ - 307.44000244140625, - 433.0750427246094, - 541.4402465820312, - 443.8795471191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 433.0750427246094, - 541.4402465820312, - 443.8795471191406 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "neural networks from the VLP pipeline without hurting perfor-", - "origin": [ - 307.44000244140625, - 452.3190002441406 - ], - "bbox": [ - 307.44000244140625, - 444.0340576171875, - 542.9336547851562, - 454.83856201171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 444.0340576171875, - 542.9336547851562, - 454.83856201171875 - ] - }, - { - "spans": [ - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "mance on downstream tasks. ViLT is the first VLP model of which", - "origin": [ - 307.44000244140625, - 463.27801513671875 - ], - "bbox": [ - 307.44000244140625, - 454.9930725097656, - 541.4396362304688, - 465.7975769042969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 454.9930725097656, - 541.4396362304688, - 465.7975769042969 - ] - }, - { - "spans": [ - { - "size": 8.988788604736328, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the modal-specific components require", - "origin": [ - 307.44000244140625, - 474.23699951171875 - ], - "bbox": [ - 307.44000244140625, - 465.9520568847656, - 447.3302917480469, - 476.7565612792969 - ] - }, - { - "size": 8.988788604736328, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " less", - "origin": [ - 447.3302917480469, - 474.23699951171875 - ], - "bbox": [ - 447.3302917480469, - 465.9520568847656, - 463.1018371582031, - 476.6579284667969 - ] - }, - { - "size": 8.988788604736328, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " computation than the", - "origin": [ - 463.1018371582031, - 474.23699951171875 - ], - "bbox": [ - 463.1018371582031, - 465.9520568847656, - 541.44384765625, - 476.7565612792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 465.9520568847656, - 541.44384765625, - 476.7565612792969 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "transformer component for multimodal interactions.", - "origin": [ - 307.44000244140625, - 485.1960144042969 - ], - "bbox": [ - 307.44000244140625, - 476.91107177734375, - 493.9679260253906, - 487.715576171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 476.91107177734375, - 493.9679260253906, - 487.715576171875 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 307.0820007324219, - 515.8865966796875, - 542.686767578125, - 587.66748046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "et al.", - "origin": [ - 307.44000244140625, - 525.092041015625 - ], - "bbox": [ - 307.44000244140625, - 515.8865966796875, - 328.06854248046875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 328.06854248046875, - 525.092041015625 - ], - "bbox": [ - 328.06854248046875, - 515.8865966796875, - 330.6090087890625, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 330.6090087890625, - 525.092041015625 - ], - "bbox": [ - 330.6090087890625, - 515.8865966796875, - 354.3572692871094, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 354.3572692871094, - 525.092041015625 - ], - "bbox": [ - 354.3572692871094, - 515.8865966796875, - 357.1822509765625, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Li et al.", - "origin": [ - 357.1822509765625, - 525.092041015625 - ], - "bbox": [ - 357.1822509765625, - 515.8865966796875, - 393.67340087890625, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 393.67340087890625, - 525.092041015625 - ], - "bbox": [ - 393.67340087890625, - 515.8865966796875, - 396.2138671875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020b", - "origin": [ - 396.2138671875, - 525.092041015625 - ], - "bbox": [ - 396.2138671875, - 515.8865966796875, - 425.0430603027344, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 425.0430603027344, - 525.092041015625 - ], - "bbox": [ - 425.0430603027344, - 515.8865966796875, - 427.8680419921875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Gan et al.", - "origin": [ - 427.8680419921875, - 525.092041015625 - ], - "bbox": [ - 427.8680419921875, - 515.8865966796875, - 472.26513671875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 472.26513671875, - 525.092041015625 - ], - "bbox": [ - 472.26513671875, - 515.8865966796875, - 474.80560302734375, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 474.80560302734375, - 525.092041015625 - ], - "bbox": [ - 474.80560302734375, - 515.8865966796875, - 498.543701171875, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 498.543701171875, - 525.092041015625 - ], - "bbox": [ - 498.543701171875, - 515.8865966796875, - 501.3686828613281, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Yu et al.", - "origin": [ - 501.3686828613281, - 525.092041015625 - ], - "bbox": [ - 501.3686828613281, - 515.8865966796875, - 540.1463012695312, - 527.8915405273438 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 540.1463012695312, - 525.092041015625 - ], - "bbox": [ - 540.1463012695312, - 515.8865966796875, - 542.686767578125, - 527.8915405273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 515.8865966796875, - 542.686767578125, - 527.8915405273438 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2020", - "origin": [ - 307.44000244140625, - 537.0469970703125 - ], - "bbox": [ - 307.44000244140625, - 527.841552734375, - 327.76373291015625, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 327.76373291015625, - 537.0469970703125 - ], - "bbox": [ - 327.76373291015625, - 527.841552734375, - 330.5887145996094, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Zhang et al.", - "origin": [ - 330.5887145996094, - 537.0469970703125 - ], - "bbox": [ - 330.5887145996094, - 527.841552734375, - 383.5625, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 383.5625, - 537.0469970703125 - ], - "bbox": [ - 383.5625, - 527.841552734375, - 386.10296630859375, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2021", - "origin": [ - 386.10296630859375, - 537.0469970703125 - ], - "bbox": [ - 386.10296630859375, - 527.841552734375, - 409.6988220214844, - 539.8464965820312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "). These models are pre-trained", - "origin": [ - 409.6988220214844, - 537.0469970703125 - ], - "bbox": [ - 409.6988220214844, - 527.841552734375, - 541.437255859375, - 539.8464965820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 527.841552734375, - 541.437255859375, - 539.8464965820312 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "with image text matching and masked language modeling", - "origin": [ - 307.0820007324219, - 549.0020141601562 - ], - "bbox": [ - 307.0820007324219, - 539.7965698242188, - 541.4448852539062, - 551.801513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.0820007324219, - 539.7965698242188, - 541.4448852539062, - 551.801513671875 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "objectives", - "origin": [ - 307.44000244140625, - 560.95703125 - ], - "bbox": [ - 307.44000244140625, - 551.7515869140625, - 346.6300964355469, - 563.7565307617188 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 346.6319885253906, - 557.3419799804688 - ], - "bbox": [ - 346.6319885253906, - 550.898193359375, - 350.118896484375, - 559.3016357421875 - ] - }, - { - "size": 9.862470626831055, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 350.118896484375, - 557.3419799804688 - ], - "bbox": [ - 350.118896484375, - 548.1365356445312, - 352.7349853515625, - 563.7565307617188 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "on images and their aligned descriptions, and are", - "origin": [ - 352.7349853515625, - 560.95703125 - ], - "bbox": [ - 352.7349853515625, - 551.7515869140625, - 541.4409790039062, - 563.7565307617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 548.1365356445312, - 541.4409790039062, - 563.7565307617188 - ] - }, - { - "spans": [ - { - "size": 9.89763069152832, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "fine-tuned on vision-and-language downstream tasks where", - "origin": [ - 307.44000244140625, - 572.9129638671875 - ], - "bbox": [ - 307.44000244140625, - 563.70751953125, - 541.4378662109375, - 575.7124633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 563.70751953125, - 541.4378662109375, - 575.7124633789062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the inputs involve two modalities.", - "origin": [ - 307.44000244140625, - 584.8679809570312 - ], - "bbox": [ - 307.44000244140625, - 575.6625366210938, - 441.925048828125, - 587.66748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 575.6625366210938, - 441.925048828125, - 587.66748046875 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 307.11199951171875, - 593.5955810546875, - 543.1831665039062, - 689.2864990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "To be fed into VLP models, image pixels need to be ini-", - "origin": [ - 307.1310119628906, - 602.801025390625 - ], - "bbox": [ - 307.1310119628906, - 593.5955810546875, - 543.08935546875, - 605.6005249023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.1310119628906, - 593.5955810546875, - 543.08935546875, - 605.6005249023438 - ] - }, - { - "spans": [ - { - "size": 9.90765380859375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tially embedded in a dense form alongside language tokens.", - "origin": [ - 307.44000244140625, - 614.7559814453125 - ], - "bbox": [ - 307.44000244140625, - 605.550537109375, - 543.1831665039062, - 617.5554809570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 605.550537109375, - 543.1831665039062, - 617.5554809570312 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Since the seminal work of", - "origin": [ - 307.44000244140625, - 626.7109985351562 - ], - "bbox": [ - 307.44000244140625, - 617.5055541992188, - 414.6678771972656, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Krizhevsky et al.", - "origin": [ - 414.6678771972656, - 626.7109985351562 - ], - "bbox": [ - 414.6678771972656, - 617.5055541992188, - 486.8475036621094, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " (", - "origin": [ - 486.8475036621094, - 626.7109985351562 - ], - "bbox": [ - 486.8475036621094, - 617.5055541992188, - 493.07672119140625, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2012", - "origin": [ - 493.07672119140625, - 626.7109985351562 - ], - "bbox": [ - 493.07672119140625, - 617.5055541992188, - 513.4004516601562, - 629.510498046875 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "), deep", - "origin": [ - 513.4004516601562, - 626.7109985351562 - ], - "bbox": [ - 513.4004516601562, - 617.5055541992188, - 541.43701171875, - 629.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 617.5055541992188, - 541.43701171875, - 629.510498046875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "convolutional networks have been regarded as essential for", - "origin": [ - 307.44000244140625, - 638.666015625 - ], - "bbox": [ - 307.44000244140625, - 629.4605712890625, - 541.6109008789062, - 641.4655151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 629.4605712890625, - 541.6109008789062, - 641.4655151367188 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "this visual embedding step. Most VLP models employ an", - "origin": [ - 307.44000244140625, - 650.6209716796875 - ], - "bbox": [ - 307.44000244140625, - 641.41552734375, - 541.43701171875, - 653.4204711914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 641.41552734375, - 541.43701171875, - 653.4204711914062 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "object detector pre-trained on the Visual Genome dataset", - "origin": [ - 307.44000244140625, - 662.5759887695312 - ], - "bbox": [ - 307.44000244140625, - 653.3705444335938, - 541.43701171875, - 665.37548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 653.3705444335938, - 541.43701171875, - 665.37548828125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 307.11199951171875, - 674.531982421875 - ], - "bbox": [ - 307.11199951171875, - 665.3265380859375, - 310.49591064453125, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Krishna et al.", - "origin": [ - 310.49591064453125, - 674.531982421875 - ], - "bbox": [ - 310.49591064453125, - 665.3265380859375, - 365.3394775390625, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 365.3394775390625, - 674.531982421875 - ], - "bbox": [ - 365.3394775390625, - 665.3265380859375, - 367.87994384765625, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2017", - "origin": [ - 367.87994384765625, - 674.531982421875 - ], - "bbox": [ - 367.87994384765625, - 665.3265380859375, - 390.92706298828125, - 677.3314819335938 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") annotated with 1,600 object classes", - "origin": [ - 390.92706298828125, - 674.531982421875 - ], - "bbox": [ - 390.92706298828125, - 665.3265380859375, - 541.4443969726562, - 677.3314819335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.11199951171875, - 665.3265380859375, - 541.4443969726562, - 677.3314819335938 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and 400 attribute classes as in", - "origin": [ - 307.44000244140625, - 686.4869995117188 - ], - "bbox": [ - 307.44000244140625, - 677.2815551757812, - 423.8484802246094, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Anderson et al.", - "origin": [ - 423.8484802246094, - 686.4869995117188 - ], - "bbox": [ - 423.8484802246094, - 677.2815551757812, - 485.84576416015625, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " (", - "origin": [ - 485.84576416015625, - 686.4869995117188 - ], - "bbox": [ - 485.84576416015625, - 677.2815551757812, - 491.59637451171875, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2018", - "origin": [ - 491.59637451171875, - 686.4869995117188 - ], - "bbox": [ - 491.59637451171875, - 677.2815551757812, - 511.12310791015625, - 689.2864990234375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "). Pixel-", - "origin": [ - 511.12310791015625, - 686.4869995117188 - ], - "bbox": [ - 511.12310791015625, - 677.2815551757812, - 543.09814453125, - 689.2864990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 677.2815551757812, - 543.09814453125, - 689.2864990234375 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 307.44000244140625, - 695.7656860351562, - 541.440673828125, - 717.5805053710938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 320.0929870605469, - 701.2890014648438 - ], - "bbox": [ - 320.0929870605469, - 695.7656860351562, - 323.081787109375, - 702.9686889648438 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "While some works employ additional objectives and data", - "origin": [ - 323.5799865722656, - 705.0980224609375 - ], - "bbox": [ - 323.5799865722656, - 696.8130493164062, - 541.440673828125, - 707.6175537109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.0929870605469, - 695.7656860351562, - 541.440673828125, - 707.6175537109375 - ] - }, - { - "spans": [ - { - "size": 8.903413772583008, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "structures, these two objectives apply to almost every VLP model.", - "origin": [ - 307.44000244140625, - 715.0609741210938 - ], - "bbox": [ - 307.44000244140625, - 706.7760009765625, - 541.4136962890625, - 717.5805053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 706.7760009765625, - 541.4136962890625, - 717.5805053710938 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 10.940000534057617, - 210.01995849609375, - 37.619998931884766, - 570.0 - ], - "lines": [ - { - "spans": [ - { - "size": 20.0, - "flags": 4, - "font": "Times-Roman", - "color": 9539985, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "arXiv:2102.03334v2 [stat.ML] 10 Jun 2021", - "origin": [ - 32.0, - 570.0 - ], - "bbox": [ - 10.940000534057617, - 210.01995849609375, - 37.619998931884766, - 570.0 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 10.940000534057617, - 210.01995849609375, - 37.619998931884766, - 570.0 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 6, - "type": 0, - "bbox": [ - 54.426998138427734, - 635.9896850585938, - 290.9289855957031, - 687.6925048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "*", - "origin": [ - 64.95500183105469, - 641.5130004882812 - ], - "bbox": [ - 64.95500183105469, - 635.9896850585938, - 67.94380187988281, - 643.1926879882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Equal contribution", - "origin": [ - 68.44200134277344, - 645.322021484375 - ], - "bbox": [ - 68.44200134277344, - 637.0370483398438, - 133.5630340576172, - 647.841552734375 - ] - }, - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " †", - "origin": [ - 133.5630340576172, - 645.322021484375 - ], - "bbox": [ - 133.5630340576172, - 635.9896850585938, - 138.3968048095703, - 647.001708984375 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Current affiliation: NAVER AI Lab, Seong-", - "origin": [ - 138.89500427246094, - 645.322021484375 - ], - "bbox": [ - 138.89500427246094, - 637.0370483398438, - 290.9289855957031, - 647.841552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.95500183105469, - 635.9896850585938, - 290.9289855957031, - 647.841552734375 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "nam, Gyeonggi, Republic of Korea.", - "origin": [ - 55.439998626708984, - 655.2850341796875 - ], - "bbox": [ - 55.439998626708984, - 647.0000610351562, - 187.9615936279297, - 657.8045654296875 - ] - }, - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 187.9615936279297, - 655.2850341796875 - ], - "bbox": [ - 187.9615936279297, - 645.9526977539062, - 192.20399475097656, - 656.9647216796875 - ] - }, - { - "size": 5.97760009765625, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 192.20399475097656, - 651.4760131835938 - ], - "bbox": [ - 192.20399475097656, - 645.9526977539062, - 195.1927947998047, - 653.1557006835938 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Kakao Enterprise, Seong-", - "origin": [ - 195.6909942626953, - 655.2850341796875 - ], - "bbox": [ - 195.6909942626953, - 647.0000610351562, - 290.92547607421875, - 657.8045654296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 645.9526977539062, - 290.92547607421875, - 657.8045654296875 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "nam, Gyeonggi, Republic of Korea", - "origin": [ - 55.439998626708984, - 665.2479858398438 - ], - "bbox": [ - 55.439998626708984, - 656.9630126953125, - 188.9858856201172, - 667.7675170898438 - ] - }, - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 188.9858856201172, - 665.2479858398438 - ], - "bbox": [ - 188.9858856201172, - 655.9156494140625, - 192.4550018310547, - 666.9276733398438 - ] - }, - { - "size": 5.97760009765625, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 192.4550018310547, - 661.43896484375 - ], - "bbox": [ - 192.4550018310547, - 655.9156494140625, - 195.4438018798828, - 663.11865234375 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Kakao Brain, Seongnam,", - "origin": [ - 195.94200134277344, - 665.2479858398438 - ], - "bbox": [ - 195.94200134277344, - 656.9630126953125, - 290.5637512207031, - 667.7675170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 655.9156494140625, - 290.5637512207031, - 667.7675170898438 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Gyeonggi, Republic of Korea. Correspondence to: Wonjae Kim", - "origin": [ - 55.439998626708984, - 675.2100219726562 - ], - "bbox": [ - 55.439998626708984, - 666.925048828125, - 289.44256591796875, - 677.7295532226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 666.925048828125, - 289.44256591796875, - 677.7295532226562 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 54.426998138427734, - 685.1729736328125 - ], - "bbox": [ - 54.426998138427734, - 676.8880004882812, - 170.25494384765625, - 687.6925048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.426998138427734, - 676.8880004882812, - 170.25494384765625, - 687.6925048828125 - ] - } - ], - "tag": "footnote" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 55.1619987487793, - 693.0040283203125, - 289.4412841796875, - 717.5805053710938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": "Proceedings of the", - "origin": [ - 55.1619987487793, - 705.0980224609375 - ], - "bbox": [ - 55.1619987487793, - 696.8130493164062, - 124.84329223632812, - 707.5189208984375 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMTI9", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 38", - "origin": [ - 124.84329223632812, - 705.0980224609375 - ], - "bbox": [ - 124.84329223632812, - 698.3732299804688, - 137.28375244140625, - 707.339599609375 - ] - }, - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMMI6", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " ", - "origin": [ - 137.28375244140625, - 705.0980224609375 - ], - "bbox": [ - 137.28375244140625, - 696.8057861328125, - 138.4969940185547, - 706.5924072265625 - ] - }, - { - "size": 5.97760009765625, - "flags": 7, - "font": "CMMI6", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "th", - "origin": [ - 138.4969940185547, - 701.2890014648438 - ], - "bbox": [ - 138.4969940185547, - 696.8057861328125, - 145.68206787109375, - 702.7833862304688 - ] - }, - { - "size": 9.055620193481445, - "flags": 7, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " ", - "origin": [ - 145.68206787109375, - 701.2890014648438 - ], - "bbox": [ - 145.68206787109375, - 693.0040283203125, - 149.218994140625, - 707.5189208984375 - ] - }, - { - "size": 9.055620193481445, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": "International Conference on Machine", - "origin": [ - 149.218994140625, - 705.0980224609375 - ], - "bbox": [ - 149.218994140625, - 696.8130493164062, - 289.4412841796875, - 707.5189208984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.1619987487793, - 693.0040283203125, - 289.4412841796875, - 707.5189208984375 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": "Learning", - "origin": [ - 55.18899917602539, - 715.0609741210938 - ], - "bbox": [ - 55.18899917602539, - 706.7760009765625, - 88.06878662109375, - 717.4818725585938 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ", PMLR 139, 2021. Copyright 2021 by the author(s).", - "origin": [ - 88.06900024414062, - 715.0609741210938 - ], - "bbox": [ - 88.06900024414062, - 706.7760009765625, - 277.80706787109375, - 717.5805053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.18899917602539, - 706.7760009765625, - 277.80706787109375, - 717.5805053710938 - ] - } - ], - "tag": "footnote" - }, - { - "number": 49, - "type": 0, - "bbox": [ - 307.44000244140625, - 695.7656860351562, - 541.440673828125, - 717.5805053710938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 320.0929870605469, - 701.2890014648438 - ], - "bbox": [ - 320.0929870605469, - 695.7656860351562, - 323.081787109375, - 702.9686889648438 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "While some works employ additional objectives and data", - "origin": [ - 323.5799865722656, - 705.0980224609375 - ], - "bbox": [ - 323.5799865722656, - 696.8130493164062, - 541.440673828125, - 707.6175537109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.0929870605469, - 695.7656860351562, - 541.440673828125, - 707.6175537109375 - ] - }, - { - "spans": [ - { - "size": 8.903413772583008, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "structures, these two objectives apply to almost every VLP model.", - "origin": [ - 307.44000244140625, - 715.0609741210938 - ], - "bbox": [ - 307.44000244140625, - 706.7760009765625, - 541.4136962890625, - 717.5805053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 706.7760009765625, - 541.4136962890625, - 717.5805053710938 - ] - } - ], - "tag": "footnote" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 502.3902282714844, - 251.63328552246094, - 525.6985473632812, - 263.7827453613281 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Modality ", - "origin": [ - 504.17840576171875, - 256.42926025390625 - ], - "bbox": [ - 504.17840576171875, - 251.63328552246094, - 525.2564697265625, - 257.59344482421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 504.17840576171875, - 251.63328552246094, - 525.2564697265625, - 257.59344482421875 - ] - }, - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Interaction", - "origin": [ - 502.3902282714844, - 262.6185607910156 - ], - "bbox": [ - 502.3902282714844, - 257.8226013183594, - 525.6985473632812, - 263.7827453613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 502.3902282714844, - 257.8226013183594, - 525.6985473632812, - 263.7827453613281 - ] - } - ], - "tag": "on-image" - }, - { - "number": 9, - "type": 0, - "bbox": [ - 459.72119140625, - 292.3870849609375, - 475.1094055175781, - 298.34722900390625 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Linear ", - "origin": [ - 459.72119140625, - 297.18304443359375 - ], - "bbox": [ - 459.72119140625, - 292.3870849609375, - 475.1094055175781, - 298.34722900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.72119140625, - 292.3870849609375, - 475.1094055175781, - 298.34722900390625 - ] - } - ], - "tag": "on-image" - }, - { - "number": 10, - "type": 0, - "bbox": [ - 454.3236999511719, - 298.57635498046875, - 479.13580322265625, - 304.5364990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Embedding", - "origin": [ - 454.3236999511719, - 303.372314453125 - ], - "bbox": [ - 454.3236999511719, - 298.57635498046875, - 479.13580322265625, - 304.5364990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.3236999511719, - 298.57635498046875, - 479.13580322265625, - 304.5364990234375 - ] - } - ], - "tag": "on-image" - }, - { - "number": 11, - "type": 0, - "bbox": [ - 459.72119140625, - 262.53955078125, - 475.1094055175781, - 268.49969482421875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Linear ", - "origin": [ - 459.72119140625, - 267.33551025390625 - ], - "bbox": [ - 459.72119140625, - 262.53955078125, - 475.1094055175781, - 268.49969482421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.72119140625, - 262.53955078125, - 475.1094055175781, - 268.49969482421875 - ] - } - ], - "tag": "on-image" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 454.3236999511719, - 268.7288513183594, - 479.13580322265625, - 274.6889953613281 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Embedding", - "origin": [ - 454.3236999511719, - 273.5248107910156 - ], - "bbox": [ - 454.3236999511719, - 268.7288513183594, - 479.13580322265625, - 274.6889953613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.3236999511719, - 268.7288513183594, - 479.13580322265625, - 274.6889953613281 - ] - } - ], - "tag": "on-image" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 461.06146240234375, - 238.60382080078125, - 473.7705078125, - 244.56396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "CNN ", - "origin": [ - 461.06146240234375, - 243.39979553222656 - ], - "bbox": [ - 461.06146240234375, - 238.60382080078125, - 473.7705078125, - 244.56396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.06146240234375, - 238.60382080078125, - 473.7705078125, - 244.56396484375 - ] - } - ], - "tag": "on-image" - }, - { - "number": 14, - "type": 0, - "bbox": [ - 455.9700927734375, - 244.79312133789062, - 477.48974609375, - 250.75326538085938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Backbone", - "origin": [ - 455.9700927734375, - 249.58909606933594 - ], - "bbox": [ - 455.9700927734375, - 244.79312133789062, - 477.48974609375, - 250.75326538085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.9700927734375, - 244.79312133789062, - 477.48974609375, - 250.75326538085938 - ] - } - ], - "tag": "on-image" - }, - { - "number": 15, - "type": 0, - "bbox": [ - 423.95831298828125, - 214.78736877441406, - 436.6673583984375, - 220.7475128173828 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "CNN ", - "origin": [ - 423.95831298828125, - 219.58334350585938 - ], - "bbox": [ - 423.95831298828125, - 214.78736877441406, - 436.6673583984375, - 220.7475128173828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.95831298828125, - 214.78736877441406, - 436.6673583984375, - 220.7475128173828 - ] - } - ], - "tag": "on-image" - }, - { - "number": 16, - "type": 0, - "bbox": [ - 418.866943359375, - 220.97666931152344, - 440.3865966796875, - 226.9368133544922 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Backbone", - "origin": [ - 418.866943359375, - 225.77264404296875 - ], - "bbox": [ - 418.866943359375, - 220.97666931152344, - 440.3865966796875, - 226.9368133544922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 418.866943359375, - 220.97666931152344, - 440.3865966796875, - 226.9368133544922 - ] - } - ], - "tag": "on-image" - }, - { - "number": 17, - "type": 0, - "bbox": [ - 458.9696044921875, - 214.73648071289062, - 475.8615417480469, - 220.69662475585938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Region ", - "origin": [ - 458.9696044921875, - 219.53245544433594 - ], - "bbox": [ - 458.9696044921875, - 214.73648071289062, - 475.8615417480469, - 220.69662475585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.9696044921875, - 214.73648071289062, - 475.8615417480469, - 220.69662475585938 - ] - } - ], - "tag": "on-image" - }, - { - "number": 18, - "type": 0, - "bbox": [ - 454.9228820800781, - 220.92578125, - 478.5367126464844, - 226.88592529296875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Operations", - "origin": [ - 454.9228820800781, - 225.7217559814453 - ], - "bbox": [ - 454.9228820800781, - 220.92578125, - 478.5367126464844, - 226.88592529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.9228820800781, - 220.92578125, - 478.5367126464844, - 226.88592529296875 - ] - } - ], - "tag": "on-image" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 388.87701416015625, - 192.8269805908203, - 476.27813720703125, - 201.76719665527344 - ], - "lines": [ - { - "spans": [ - { - "size": 8.072999954223633, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Visual Embedding Schema", - "origin": [ - 388.87701416015625, - 200.02093505859375 - ], - "bbox": [ - 388.87701416015625, - 192.8269805908203, - 476.27813720703125, - 201.76719665527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.87701416015625, - 192.8269805908203, - 476.27813720703125, - 201.76719665527344 - ] - } - ], - "tag": "on-image" - }, - { - "number": 20, - "type": 0, - "bbox": [ - 320.90106201171875, - 342.736328125, - 362.5631408691406, - 350.1865234375 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "UNITER-Base ", - "origin": [ - 320.90106201171875, - 348.7312927246094 - ], - "bbox": [ - 320.90106201171875, - 342.736328125, - 362.5631408691406, - 350.1865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.90106201171875, - 342.736328125, - 362.5631408691406, - 350.1865234375 - ] - } - ], - "tag": "on-image" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 317.7691650390625, - 350.3517761230469, - 364.0132141113281, - 357.2059631347656 - ], - "lines": [ - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(75.8 / 85.9 / 72.5)", - "origin": [ - 317.7691650390625, - 355.8671569824219 - ], - "bbox": [ - 317.7691650390625, - 350.3517761230469, - 364.0132141113281, - 357.2059631347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.7691650390625, - 350.3517761230469, - 364.0132141113281, - 357.2059631347656 - ] - } - ], - "tag": "on-image" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 317.7691650390625, - 363.93743896484375, - 365.4202880859375, - 378.4071044921875 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Pixel-BERT-R50 ", - "origin": [ - 318.043212890625, - 369.9324035644531 - ], - "bbox": [ - 318.043212890625, - 363.93743896484375, - 365.4202880859375, - 371.38763427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.043212890625, - 363.93743896484375, - 365.4202880859375, - 371.38763427734375 - ] - }, - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(72.4 / 75.7 / 53.4)", - "origin": [ - 317.7691650390625, - 377.06829833984375 - ], - "bbox": [ - 317.7691650390625, - 371.55291748046875, - 364.0132141113281, - 378.4071044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.7691650390625, - 371.55291748046875, - 364.0132141113281, - 378.4071044921875 - ] - } - ], - "tag": "on-image" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 316.9542541503906, - 385.1385192871094, - 366.50970458984375, - 399.6081848144531 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "ViLT-B/32 (Ours) ", - "origin": [ - 316.9542541503906, - 391.13348388671875 - ], - "bbox": [ - 316.9542541503906, - 385.1385192871094, - 366.50970458984375, - 392.5887145996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.9542541503906, - 385.1385192871094, - 366.50970458984375, - 392.5887145996094 - ] - }, - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(76.1 / 83.5 / 64.4)", - "origin": [ - 317.7691650390625, - 398.2693786621094 - ], - "bbox": [ - 317.7691650390625, - 392.7539978027344, - 364.0132141113281, - 399.6081848144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.7691650390625, - 392.7539978027344, - 364.0132141113281, - 399.6081848144531 - ] - } - ], - "tag": "on-image" - }, - { - "number": 24, - "type": 0, - "bbox": [ - 380.48431396484375, - 345.4301452636719, - 393.43341064453125, - 354.4749450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~75 ms ", - "origin": [ - 380.48431396484375, - 349.0271301269531 - ], - "bbox": [ - 380.48431396484375, - 345.4301452636719, - 393.43341064453125, - 349.9002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.48431396484375, - 345.4301452636719, - 393.43341064453125, - 349.9002685546875 - ] - }, - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(R101)", - "origin": [ - 380.736572265625, - 353.601806640625 - ], - "bbox": [ - 380.736572265625, - 350.00482177734375, - 392.1719970703125, - 354.4749450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.736572265625, - 350.00482177734375, - 392.1719970703125, - 354.4749450683594 - ] - } - ], - "tag": "on-image" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 449.0875244140625, - 345.69921875, - 464.05487060546875, - 350.1693420410156 - ], - "lines": [ - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~810 ms ", - "origin": [ - 449.0875244140625, - 349.29620361328125 - ], - "bbox": [ - 449.0875244140625, - 345.69921875, - 464.05487060546875, - 350.1693420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.0875244140625, - 345.69921875, - 464.05487060546875, - 350.1693420410156 - ] - } - ], - "tag": "on-image" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 429.29095458984375, - 350.6640625, - 482.8427429199219, - 354.24017333984375 - ], - "lines": [ - { - "spans": [ - { - "size": 3.2292001247406006, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(RPNs, RoI Align, NMS, and RoI Heads)", - "origin": [ - 429.29095458984375, - 353.5416564941406 - ], - "bbox": [ - 429.29095458984375, - 350.6640625, - 482.8427429199219, - 354.24017333984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.29095458984375, - 350.6640625, - 482.8427429199219, - 354.24017333984375 - ] - } - ], - "tag": "on-image" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 374.83319091796875, - 367.0010681152344, - 387.78228759765625, - 376.0458679199219 - ], - "lines": [ - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~45 ms ", - "origin": [ - 374.83319091796875, - 370.5980529785156 - ], - "bbox": [ - 374.83319091796875, - 367.0010681152344, - 387.78228759765625, - 371.47119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 374.83319091796875, - 367.0010681152344, - 387.78228759765625, - 371.47119140625 - ] - }, - { - "spans": [ - { - "size": 4.036499977111816, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(R50)", - "origin": [ - 376.0946044921875, - 375.1727294921875 - ], - "bbox": [ - 376.0946044921875, - 371.57574462890625, - 385.51177978515625, - 376.0458679199219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.0946044921875, - 371.57574462890625, - 385.51177978515625, - 376.0458679199219 - ] - } - ], - "tag": "on-image" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 519.169677734375, - 347.3037414550781, - 534.98876953125, - 352.3698425292969 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~900 ms", - "origin": [ - 519.169677734375, - 351.38031005859375 - ], - "bbox": [ - 519.169677734375, - 347.3037414550781, - 534.98876953125, - 352.3698425292969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 519.169677734375, - 347.3037414550781, - 534.98876953125, - 352.3698425292969 - ] - } - ], - "tag": "on-image" - }, - { - "number": 29, - "type": 0, - "bbox": [ - 397.5927429199219, - 368.80059814453125, - 411.1245422363281, - 373.86669921875 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~60 ms", - "origin": [ - 397.5927429199219, - 372.8771667480469 - ], - "bbox": [ - 397.5927429199219, - 368.80059814453125, - 411.1245422363281, - 373.86669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.5927429199219, - 368.80059814453125, - 411.1245422363281, - 373.86669921875 - ] - } - ], - "tag": "on-image" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 382.01416015625, - 390.0016784667969, - 395.54595947265625, - 395.0677795410156 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~15 ms", - "origin": [ - 382.01416015625, - 394.0782470703125 - ], - "bbox": [ - 382.01416015625, - 390.0016784667969, - 395.54595947265625, - 395.0677795410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.01416015625, - 390.0016784667969, - 395.54595947265625, - 395.0677795410156 - ] - } - ], - "tag": "on-image" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 399.98944091796875, - 397.70892333984375, - 415.8087463378906, - 402.7750244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~0.4 ms ", - "origin": [ - 399.98944091796875, - 401.7854919433594 - ], - "bbox": [ - 399.98944091796875, - 397.70892333984375, - 415.8087463378906, - 402.7750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.98944091796875, - 397.70892333984375, - 415.8087463378906, - 402.7750244140625 - ] - } - ], - "tag": "on-image" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 388.718017578125, - 403.0909118652344, - 425.93505859375, - 408.1570129394531 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Linear Embedding)", - "origin": [ - 388.718017578125, - 407.16748046875 - ], - "bbox": [ - 388.718017578125, - 403.0909118652344, - 425.93505859375, - 408.1570129394531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.718017578125, - 403.0909118652344, - 425.93505859375, - 408.1570129394531 - ] - } - ], - "tag": "on-image" - }, - { - "number": 33, - "type": 0, - "bbox": [ - 507.81719970703125, - 373.48095703125, - 522.4928588867188, - 378.54705810546875 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "~15 ms ", - "origin": [ - 507.81719970703125, - 377.5575256347656 - ], - "bbox": [ - 507.81719970703125, - 373.48095703125, - 522.4928588867188, - 378.54705810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.81719970703125, - 373.48095703125, - 522.4928588867188, - 378.54705810546875 - ] - } - ], - "tag": "on-image" - }, - { - "number": 34, - "type": 0, - "bbox": [ - 498.5437316894531, - 378.86297607421875, - 530.6211547851562, - 383.9290771484375 - ], - "lines": [ - { - "spans": [ - { - "size": 4.574700355529785, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(BERT-base-like)", - "origin": [ - 498.5437316894531, - 382.9395446777344 - ], - "bbox": [ - 498.5437316894531, - 378.86297607421875, - 530.6211547851562, - 383.9290771484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 498.5437316894531, - 378.86297607421875, - 530.6211547851562, - 383.9290771484375 - ] - } - ], - "tag": "on-image" - }, - { - "number": 35, - "type": 0, - "bbox": [ - 409.3610534667969, - 318.82305908203125, - 457.8135986328125, - 327.7632751464844 - ], - "lines": [ - { - "spans": [ - { - "size": 8.072999954223633, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Running Time ", - "origin": [ - 409.3610534667969, - 326.01702880859375 - ], - "bbox": [ - 409.3610534667969, - 318.82305908203125, - 457.8135986328125, - 327.7632751464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 409.3610534667969, - 318.82305908203125, - 457.8135986328125, - 327.7632751464844 - ] - } - ], - "tag": "on-image" - }, - { - "number": 36, - "type": 0, - "bbox": [ - 356.78668212890625, - 328.10675048828125, - 508.369140625, - 334.06689453125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Performances : NLVR2 test-P Acc. / F30K TR R@1 / F30K IR R@1)", - "origin": [ - 356.78668212890625, - 332.9027099609375 - ], - "bbox": [ - 356.78668212890625, - 328.10675048828125, - 508.369140625, - 334.06689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 356.78668212890625, - 328.10675048828125, - 508.369140625, - 334.06689453125 - ] - } - ], - "tag": "on-image" - }, - { - "number": 37, - "type": 0, - "bbox": [ - 320.24737548828125, - 214.0364532470703, - 363.2159423828125, - 221.48663330078125 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Region Feature ", - "origin": [ - 320.24737548828125, - 220.0314178466797 - ], - "bbox": [ - 320.24737548828125, - 214.0364532470703, - 363.2159423828125, - 221.48663330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.24737548828125, - 214.0364532470703, - 363.2159423828125, - 221.48663330078125 - ] - } - ], - "tag": "on-image" - }, - { - "number": 38, - "type": 0, - "bbox": [ - 313.8355407714844, - 221.77296447753906, - 367.9461975097656, - 227.7331085205078 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(ViLBERT, UNITER, ...)", - "origin": [ - 313.8355407714844, - 226.56893920898438 - ], - "bbox": [ - 313.8355407714844, - 221.77296447753906, - 367.9461975097656, - 227.7331085205078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.8355407714844, - 221.77296447753906, - 367.9461975097656, - 227.7331085205078 - ] - } - ], - "tag": "on-image" - }, - { - "number": 39, - "type": 0, - "bbox": [ - 323.7983703613281, - 237.6286163330078, - 359.6653747558594, - 251.32525634765625 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Grid Feature ", - "origin": [ - 323.7983703613281, - 243.6235809326172 - ], - "bbox": [ - 323.7983703613281, - 237.6286163330078, - 359.6653747558594, - 245.07879638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.7983703613281, - 237.6286163330078, - 359.6653747558594, - 245.07879638671875 - ] - }, - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Pixel-BERT)", - "origin": [ - 325.95556640625, - 250.1610870361328 - ], - "bbox": [ - 325.95556640625, - 245.3651123046875, - 355.82623291015625, - 251.32525634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.95556640625, - 245.3651123046875, - 355.82623291015625, - 251.32525634765625 - ] - } - ], - "tag": "on-image" - }, - { - "number": 40, - "type": 0, - "bbox": [ - 318.3692626953125, - 261.5335388183594, - 364.3302001953125, - 268.9837341308594 - ], - "lines": [ - { - "spans": [ - { - "size": 6.7275004386901855, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Patch Projection ", - "origin": [ - 318.3692626953125, - 267.52850341796875 - ], - "bbox": [ - 318.3692626953125, - 261.5335388183594, - 364.3302001953125, - 268.9837341308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.3692626953125, - 261.5335388183594, - 364.3302001953125, - 268.9837341308594 - ] - } - ], - "tag": "on-image" - }, - { - "number": 41, - "type": 0, - "bbox": [ - 332.43145751953125, - 269.14898681640625, - 348.58807373046875, - 276.003173828125 - ], - "lines": [ - { - "spans": [ - { - "size": 6.189300060272217, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "(Ours)", - "origin": [ - 332.43145751953125, - 274.66436767578125 - ], - "bbox": [ - 332.43145751953125, - 269.14898681640625, - 348.58807373046875, - 276.003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.43145751953125, - 269.14898681640625, - 348.58807373046875, - 276.003173828125 - ] - } - ], - "tag": "on-image" - }, - { - "number": 42, - "type": 0, - "bbox": [ - 385.84881591796875, - 218.06820678710938, - 399.29547119140625, - 224.02835083007812 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Image", - "origin": [ - 385.84881591796875, - 222.8641815185547 - ], - "bbox": [ - 385.84881591796875, - 218.06820678710938, - 399.29547119140625, - 224.02835083007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.84881591796875, - 218.06820678710938, - 399.29547119140625, - 224.02835083007812 - ] - } - ], - "tag": "on-image" - }, - { - "number": 43, - "type": 0, - "bbox": [ - 385.84881591796875, - 241.94732666015625, - 399.29547119140625, - 247.907470703125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Image", - "origin": [ - 385.84881591796875, - 246.74330139160156 - ], - "bbox": [ - 385.84881591796875, - 241.94732666015625, - 399.29547119140625, - 247.907470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.84881591796875, - 241.94732666015625, - 399.29547119140625, - 247.907470703125 - ] - } - ], - "tag": "on-image" - }, - { - "number": 44, - "type": 0, - "bbox": [ - 385.84881591796875, - 265.88916015625, - 399.29547119140625, - 271.84930419921875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Image", - "origin": [ - 385.84881591796875, - 270.68511962890625 - ], - "bbox": [ - 385.84881591796875, - 265.88916015625, - 399.29547119140625, - 271.84930419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.84881591796875, - 265.88916015625, - 399.29547119140625, - 271.84930419921875 - ] - } - ], - "tag": "on-image" - }, - { - "number": 45, - "type": 0, - "bbox": [ - 387.8289794921875, - 295.6824951171875, - 397.3154602050781, - 301.64263916015625 - ], - "lines": [ - { - "spans": [ - { - "size": 5.381999969482422, - "flags": 4, - "font": "TimesNewRomanPSMT", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "Text", - "origin": [ - 387.8289794921875, - 300.47845458984375 - ], - "bbox": [ - 387.8289794921875, - 295.6824951171875, - 397.3154602050781, - 301.64263916015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 387.8289794921875, - 295.6824951171875, - 397.3154602050781, - 301.64263916015625 - ] - } - ], - "tag": "on-image" - }, - { - "number": 50, - "type": 0, - "bbox": [ - 10.940000534057617, - 210.01995849609375, - 37.619998931884766, - 570.0 - ], - "lines": [ - { - "spans": [ - { - "size": 20.0, - "flags": 4, - "font": "Times-Roman", - "color": 9539985, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "arXiv:2102.03334v2 [stat.ML] 10 Jun 2021", - "origin": [ - 32.0, - 570.0 - ], - "bbox": [ - 10.940000534057617, - 210.01995849609375, - 37.619998931884766, - 570.0 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 10.940000534057617, - 210.01995849609375, - 37.619998931884766, - 570.0 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ] - } -} \ No newline at end of file diff --git a/tests/assets/pre_proc_results/arxiv_2011.13925/preproc_out.json b/tests/assets/pre_proc_results/arxiv_2011.13925/preproc_out.json deleted file mode 100644 index 5af727e10..000000000 --- a/tests/assets/pre_proc_results/arxiv_2011.13925/preproc_out.json +++ /dev/null @@ -1,85288 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 59.529998779296875, - 56.06788635253906, - 222.9145965576172, - 73.42800903320312 - ], - "lines": [ - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Copyright @2018 The Institute of Electronics, ", - "origin": [ - 59.7599983215332, - 63.1099853515625 - ], - "bbox": [ - 59.7599983215332, - 56.06788635253906, - 222.9145965576172, - 65.37802124023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.7599983215332, - 56.06788635253906, - 222.9145965576172, - 65.37802124023438 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Information and Communication Engineers ", - "origin": [ - 59.529998779296875, - 71.15997314453125 - ], - "bbox": [ - 59.529998779296875, - 64.11787414550781, - 211.52081298828125, - 73.42800903320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 64.11787414550781, - 211.52081298828125, - 73.42800903320312 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 106.55999755859375, - 93.80996704101562, - 505.93121337890625, - 111.92098999023438 - ], - "lines": [ - { - "spans": [ - { - "size": 13.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8958", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 106.55999755859375, - 107.92999267578125 - ], - "bbox": [ - 106.55999755859375, - 94.40999603271484, - 147.23519897460938, - 111.92098999023438 - ] - }, - { - "size": 8.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8959", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 148.08999633789062, - 102.64996337890625 - ], - "bbox": [ - 148.08999633789062, - 93.80996704101562, - 159.97299194335938, - 105.25946044921875 - ] - }, - { - "size": 13.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8958", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する研究倫理の調査と倫理指針の構築", - "origin": [ - 161.76998901367188, - 107.92999267578125 - ], - "bbox": [ - 161.76998901367188, - 94.40999603271484, - 505.93121337890625, - 111.92098999023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.55999755859375, - 93.80996704101562, - 505.93121337890625, - 111.92098999023438 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 93.23999786376953, - 114.39998626708984, - 521.8074340820312, - 131.91098022460938 - ], - "lines": [ - { - "spans": [ - { - "size": 13.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8958", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Investigation on Research Ethics and Building a Benchmark ", - "origin": [ - 93.23999786376953, - 127.91998291015625 - ], - "bbox": [ - 93.23999786376953, - 114.39998626708984, - 521.8074340820312, - 131.91098022460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.23999786376953, - 114.39998626708984, - 521.8074340820312, - 131.91098022460938 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 111.23999786376953, - 144.8775177001953, - 155.77499389648438, - 169.0075225830078 - ], - "lines": [ - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "稲垣俊", - "origin": [ - 111.23999786376953, - 160.52001953125 - ], - "bbox": [ - 111.23999786376953, - 147.7575225830078, - 150.4875030517578, - 169.0075225830078 - ] - }, - { - "size": 12.5, - "flags": 5, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "*", - "origin": [ - 150.5, - 157.6400146484375 - ], - "bbox": [ - 150.5, - 144.8775177001953, - 155.77499389648438, - 166.1275177001953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.23999786376953, - 144.8775177001953, - 155.77499389648438, - 169.0075225830078 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 98.4000015258789, - 147.15748596191406, - 386.5299987792969, - 185.3374786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Shun Inagaki ", - "origin": [ - 98.4000015258789, - 176.78997802734375 - ], - "bbox": [ - 98.4000015258789, - 164.02748107910156, - 168.1857147216797, - 185.27748107910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.4000015258789, - 164.02748107910156, - 168.1857147216797, - 185.27748107910156 - ] - }, - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Robert Ramirez * ", - "origin": [ - 194.75999450683594, - 159.91998291015625 - ], - "bbox": [ - 194.75999450683594, - 147.15748596191406, - 287.1700134277344, - 168.40748596191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.75999450683594, - 147.15748596191406, - 287.1700134277344, - 168.40748596191406 - ] - }, - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Robert Ramirez ", - "origin": [ - 199.08999633789062, - 176.8499755859375 - ], - "bbox": [ - 199.08999633789062, - 164.0874786376953, - 283.3485107421875, - 185.3374786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 199.08999633789062, - 164.0874786376953, - 283.3485107421875, - 185.3374786376953 - ] - }, - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "島岡政基", - "origin": [ - 331.2099914550781, - 160.67999267578125 - ], - "bbox": [ - 331.2099914550781, - 147.91749572753906, - 380.1755065917969, - 169.16749572753906 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*MS PMincho-8962", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ", - "origin": [ - 380.1755065917969, - 160.67999267578125 - ], - "bbox": [ - 380.1755065917969, - 147.20199584960938, - 383.04998779296875, - 166.11199951171875 - ] - }, - { - "size": 8.0, - "flags": 5, - "font": "*MS PMincho-8962", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "*", - "origin": [ - 383.04998779296875, - 155.3699951171875 - ], - "bbox": [ - 383.04998779296875, - 147.20199584960938, - 386.5299987792969, - 160.802001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.2099914550781, - 147.20199584960938, - 386.5299987792969, - 169.16749572753906 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 314.5199890136719, - 143.2575225830078, - 501.1449890136719, - 185.30751037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Masaki Shimaoka ", - "origin": [ - 314.5199890136719, - 176.82000732421875 - ], - "bbox": [ - 314.5199890136719, - 164.05751037597656, - 406.8418884277344, - 185.30751037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.5199890136719, - 164.05751037597656, - 406.8418884277344, - 185.30751037597656 - ] - }, - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "澗", - "origin": [ - 445.20001220703125, - 161.33001708984375 - ], - "bbox": [ - 445.20001220703125, - 148.56752014160156, - 456.3625183105469, - 169.81752014160156 - ] - }, - { - "size": 12.5, - "flags": 5, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "潟謙一*", - "origin": [ - 456.30999755859375, - 159.780029296875 - ], - "bbox": [ - 456.30999755859375, - 143.2575225830078, - 501.1449890136719, - 168.2675323486328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.20001220703125, - 143.2575225830078, - 501.1449890136719, - 169.81752014160156 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 433.20001220703125, - 164.06752014160156, - 517.2359008789062, - 185.31752014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Kenichi Magata ", - "origin": [ - 433.20001220703125, - 176.83001708984375 - ], - "bbox": [ - 433.20001220703125, - 164.06752014160156, - 517.2359008789062, - 185.31752014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 433.20001220703125, - 164.06752014160156, - 517.2359008789062, - 185.31752014160156 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 84.05999755859375, - 206.25003051757812, - 527.6815795898438, - 315.2900085449219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あらまし サイバ", - "origin": [ - 92.27999877929688, - 216.6500244140625 - ], - "bbox": [ - 92.27999877929688, - 206.25003051757812, - 165.12860107421875, - 219.72003173828125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 165.72999572753906, - 213.07000732421875 - ], - "bbox": [ - 165.72999572753906, - 206.30990600585938, - 174.49212646484375, - 215.06553649902344 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティにおける先進的な研究特に攻撃的セキュリティと呼ばれる分野の研", - "origin": [ - 174.91000366210938, - 216.6500244140625 - ], - "bbox": [ - 174.91000366210938, - 206.25003051757812, - 527.6635131835938, - 219.72003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.27999877929688, - 206.25003051757812, - 527.6635131835938, - 219.72003173828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究は, しばしば倫理的な議論を必要とする. 現状ではサイバ", - "origin": [ - 84.31999969482422, - 228.65997314453125 - ], - "bbox": [ - 84.31999969482422, - 218.25997924804688, - 343.9402160644531, - 231.72998046875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 344.7799987792969, - 224.9599609375 - ], - "bbox": [ - 344.7799987792969, - 218.19985961914062, - 353.5421447753906, - 226.9554901123047 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ特有の研究倫理指針は存在", - "origin": [ - 354.0799865722656, - 228.5599365234375 - ], - "bbox": [ - 354.0799865722656, - 218.15994262695312, - 527.6333618164062, - 231.62994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.31999969482422, - 218.15994262695312, - 527.6333618164062, - 231.72998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "せず, 日本の攻撃的セキュリティ研究を躊躇させる", - "origin": [ - 84.05999755859375, - 240.47998046875 - ], - "bbox": [ - 84.05999755859375, - 230.07998657226562, - 305.9252014160156, - 243.54998779296875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 306.1300048828125, - 236.42999267578125 - ], - "bbox": [ - 306.1300048828125, - 229.66989135742188, - 315.3081359863281, - 238.42552185058594 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "因となっている. 本研究では, 過去のトップカン", - "origin": [ - 316.4599914550781, - 240.53997802734375 - ], - "bbox": [ - 316.4599914550781, - 230.13998413085938, - 527.5535278320312, - 243.6099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.05999755859375, - 229.66989135742188, - 527.5535278320312, - 243.6099853515625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ファレンスに投稿された論文を機械学習および手作業で分類し, 研究倫理に関するベストプラクティス", - "origin": [ - 84.1500015258789, - 252.55999755859375 - ], - "bbox": [ - 84.1500015258789, - 242.16000366210938, - 527.6815795898438, - 255.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.1500015258789, - 242.16000366210938, - 527.6815795898438, - 255.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を抽出した. 抽出した知見からサイバ", - "origin": [ - 84.37999725341797, - 264.47998046875 - ], - "bbox": [ - 84.37999725341797, - 254.07998657226562, - 247.56900024414062, - 267.54998779296875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 248.41000366210938, - 260.80999755859375 - ], - "bbox": [ - 248.41000366210938, - 254.04989624023438, - 257.1721496582031, - 262.8055419921875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する研究倫理の倫理指針を構築した. この倫", - "origin": [ - 257.7099914550781, - 264.47998046875 - ], - "bbox": [ - 257.7099914550781, - 254.07998657226562, - 527.4296264648438, - 267.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.37999725341797, - 254.04989624023438, - 527.4296264648438, - 267.54998779296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理指針はグレ", - "origin": [ - 84.08000183105469, - 276.3499755859375 - ], - "bbox": [ - 84.08000183105469, - 265.9499816894531, - 142.20001220703125, - 279.41998291015625 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 142.3300018310547, - 272.69000244140625 - ], - "bbox": [ - 142.3300018310547, - 265.9299011230469, - 151.09213256835938, - 274.685546875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の研究を禁止された研究と誤認されないようにすることを目的としている. 倫理指", - "origin": [ - 151.6999969482422, - 276.40997314453125 - ], - "bbox": [ - 151.6999969482422, - 266.0099792480469, - 527.4737548828125, - 279.47998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.08000183105469, - 265.9299011230469, - 527.4737548828125, - 279.47998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "針を決定木の形で倫理指針を表現することにより, セキュリティ研究者は自分の研究で倫理的議論を必", - "origin": [ - 84.19000244140625, - 288.4200134277344 - ], - "bbox": [ - 84.19000244140625, - 278.02001953125, - 527.6627807617188, - 291.4900207519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.19000244140625, - 278.02001953125, - 527.6627807617188, - 291.4900207519531 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "要とする点を効率的に確認することができる. 本稿では手始めに", - "origin": [ - 84.31999969482422, - 300.3399963378906 - ], - "bbox": [ - 84.31999969482422, - 289.94000244140625, - 363.56671142578125, - 303.4100036621094 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 363.989990234375, - 296.2900085449219 - ], - "bbox": [ - 363.989990234375, - 289.5299072265625, - 373.1681213378906, - 298.2855529785156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "部のカテゴリのみ対象として倫理指", - "origin": [ - 373.5999755859375, - 300.3500061035156 - ], - "bbox": [ - 373.5999755859375, - 289.95001220703125, - 527.5048828125, - 303.4200134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.31999969482422, - 289.5299072265625, - 527.5048828125, - 303.4200134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "針構築を試みたが, 手法そのものは他分野にも応用が期待できる.", - "origin": [ - 84.19000244140625, - 312.2200012207031 - ], - "bbox": [ - 84.19000244140625, - 301.82000732421875, - 364.4624328613281, - 315.2900085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.19000244140625, - 301.82000732421875, - 364.4624328613281, - 315.2900085449219 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 92.27999877929688, - 320.0299987792969, - 367.2349853515625, - 337.2300109863281 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "キ", - "origin": [ - 92.27999877929688, - 334.1600036621094 - ], - "bbox": [ - 92.27999877929688, - 323.760009765625, - 100.6199951171875, - 337.2300109863281 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 100.6199951171875, - 334.1600036621094 - ], - "bbox": [ - 100.6199951171875, - 323.6698913574219, - 101.87999725341797, - 336.1555480957031 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 101.87999725341797, - 330.42999267578125 - ], - "bbox": [ - 101.87999725341797, - 323.6698913574219, - 110.27812957763672, - 332.425537109375 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 110.27812957763672, - 330.42999267578125 - ], - "bbox": [ - 110.27812957763672, - 320.0299987792969, - 111.95999908447266, - 337.2300109863281 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ワ", - "origin": [ - 111.95999908447266, - 334.1600036621094 - ], - "bbox": [ - 111.95999908447266, - 323.760009765625, - 119.5199966430664, - 337.2300109863281 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 119.5199966430664, - 334.1600036621094 - ], - "bbox": [ - 119.5199966430664, - 323.6698913574219, - 120.97000122070312, - 336.1555480957031 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 120.97000122070312, - 330.42999267578125 - ], - "bbox": [ - 120.97000122070312, - 323.6698913574219, - 129.36813354492188, - 332.425537109375 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 129.36813354492188, - 330.42999267578125 - ], - "bbox": [ - 129.36813354492188, - 320.0299987792969, - 133.22000122070312, - 337.20001220703125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドサイバ", - "origin": [ - 133.22000122070312, - 334.1300048828125 - ], - "bbox": [ - 133.22000122070312, - 323.7300109863281, - 175.10279846191406, - 337.20001220703125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 175.8300018310547, - 330.5500183105469 - ], - "bbox": [ - 175.8300018310547, - 323.7899169921875, - 184.59213256835938, - 332.5455627441406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ, 研究倫理, トピックモデル", - "origin": [ - 185.010009765625, - 334.1600036621094 - ], - "bbox": [ - 185.010009765625, - 323.760009765625, - 367.2349853515625, - 337.2300109863281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.27999877929688, - 320.0299987792969, - 367.2349853515625, - 337.2300109863281 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 60.2400016784668, - 358.3735046386719, - 124.74250793457031, - 373.9329833984375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8963", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "1 ", - "origin": [ - 60.2400016784668, - 370.4599914550781 - ], - "bbox": [ - 60.2400016784668, - 358.3735046386719, - 68.27850341796875, - 373.9329833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.2400016784668, - 358.3735046386719, - 68.27850341796875, - 373.9329833984375 - ] - }, - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8963", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "はじめに", - "origin": [ - 80.10000610351562, - 370.4599914550781 - ], - "bbox": [ - 80.10000610351562, - 358.3735046386719, - 124.74250793457031, - 373.9329833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.10000610351562, - 358.3735046386719, - 124.74250793457031, - 373.9329833984375 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.369998931884766, - 560.68994140625, - 293.4129943847656, - 574.3200073242188 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "て,特に議論を要するのは倫理的にグレ", - "origin": [ - 59.369998931884766, - 571.0899658203125 - ], - "bbox": [ - 59.369998931884766, - 560.68994140625, - 226.08340454101562, - 574.1599731445312 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 226.08999633789062, - 567.5800170898438 - ], - "bbox": [ - 226.08999633789062, - 560.8198852539062, - 234.8521270751953, - 569.5755615234375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な領域である.", - "origin": [ - 235.0699920654297, - 571.25 - ], - "bbox": [ - 235.0699920654297, - 560.8499755859375, - 293.4129943847656, - 574.3200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.369998931884766, - 560.68994140625, - 293.4129943847656, - 574.3200073242188 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 59.29999923706055, - 605.6499633789062, - 296.00103759765625, - 634.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ような倫理的にグレ", - "origin": [ - 59.34000015258789, - 616.1199951171875 - ], - "bbox": [ - 59.34000015258789, - 605.719970703125, - 144.95919799804688, - 619.1900024414062 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 145.08999633789062, - 612.4199829101562 - ], - "bbox": [ - 145.08999633789062, - 605.6598510742188, - 153.8521270751953, - 614.41552734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な領域, すなわち攻撃的セキュリ", - "origin": [ - 154.30999755859375, - 616.0499877929688 - ], - "bbox": [ - 154.30999755859375, - 605.6499633789062, - 296.00103759765625, - 619.1199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.34000015258789, - 605.6499633789062, - 296.00103759765625, - 619.1900024414062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ティ研究はサイバ", - "origin": [ - 59.29999923706055, - 630.9500122070312 - ], - "bbox": [ - 59.29999923706055, - 620.5499877929688, - 134.76150512695312, - 634.02001953125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 135.3699951171875, - 627.3499755859375 - ], - "bbox": [ - 135.3699951171875, - 620.58984375, - 144.1321258544922, - 629.3455200195312 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究者にとって有益な", - "origin": [ - 144.42999267578125, - 630.97998046875 - ], - "bbox": [ - 144.42999267578125, - 620.5799560546875, - 295.8500061035156, - 634.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.29999923706055, - 620.5499877929688, - 295.8500061035156, - 634.0499877929688 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 59.189998626708984, - 635.6699829101562, - 295.8489685058594, - 663.9099731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ものとなるが, 同時にその研究が社会に悪影響を与えな", - "origin": [ - 59.45000076293945, - 646.0700073242188 - ], - "bbox": [ - 59.45000076293945, - 635.6699829101562, - 295.8489685058594, - 649.1400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.45000076293945, - 635.6699829101562, - 295.8489685058594, - 649.1400146484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いことを考慮しなければならない.", - "origin": [ - 59.189998626708984, - 660.8399658203125 - ], - "bbox": [ - 59.189998626708984, - 650.43994140625, - 205.343017578125, - 663.9099731445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.189998626708984, - 650.43994140625, - 205.343017578125, - 663.9099731445312 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 59.20000076293945, - 665.6099853515625, - 297.8359069824219, - 708.7300415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "被験者実験を行うことが多い医学等の研究領域では,", - "origin": [ - 69.0, - 676.010009765625 - ], - "bbox": [ - 69.0, - 665.6099853515625, - 297.8359069824219, - 679.0800170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.0, - 665.6099853515625, - 297.8359069824219, - 679.0800170898438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究を実施する際に倫理委員会の承認を必要とすること", - "origin": [ - 59.20000076293945, - 690.8499755859375 - ], - "bbox": [ - 59.20000076293945, - 680.449951171875, - 295.932373046875, - 693.9199829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.20000076293945, - 680.449951171875, - 295.932373046875, - 693.9199829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "がある. しかしながら, 現状ではサイバ", - "origin": [ - 59.380001068115234, - 705.6600341796875 - ], - "bbox": [ - 59.380001068115234, - 695.260009765625, - 229.10018920898438, - 708.7300415039062 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 229.8199920654297, - 702.030029296875 - ], - "bbox": [ - 229.8199920654297, - 695.2698974609375, - 238.58212280273438, - 704.0255737304688 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ", - "origin": [ - 238.87998962402344, - 705.6300048828125 - ], - "bbox": [ - 238.87998962402344, - 695.22998046875, - 295.82098388671875, - 708.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.380001068115234, - 695.22998046875, - 295.82098388671875, - 708.7300415039062 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 325.5299987792969, - 492.70001220703125, - 552.4901123046875, - 506.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "そこで本研究ではサイバ", - "origin": [ - 325.5299987792969, - 503.2300109863281 - ], - "bbox": [ - 325.5299987792969, - 492.83001708984375, - 429.1179504394531, - 506.3000183105469 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 429.72998046875, - 499.55999755859375 - ], - "bbox": [ - 429.72998046875, - 492.7998962402344, - 438.49212646484375, - 501.5555419921875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関連する研", - "origin": [ - 438.90997314453125, - 503.1000061035156 - ], - "bbox": [ - 438.90997314453125, - 492.70001220703125, - 552.4901123046875, - 506.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5299987792969, - 492.70001220703125, - 552.4901123046875, - 506.3000183105469 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.9200134277344, - 507.7600402832031, - 549.9845581054688, - 521.2300415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究倫理課題を洗い出し,研究倫理指針の素案を作成した", - "origin": [ - 315.9200134277344, - 518.1600341796875 - ], - "bbox": [ - 315.9200134277344, - 507.7600402832031, - 549.9845581054688, - 521.2300415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 507.7600402832031, - 549.9845581054688, - 521.2300415039062 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 315.989990234375, - 522.56982421875, - 552.4005126953125, - 536.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "この倫理指針はグレ", - "origin": [ - 315.989990234375, - 533.5799560546875 - ], - "bbox": [ - 315.989990234375, - 522.7099609375, - 401.2801818847656, - 536.6499633789062 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 401.28997802734375, - 529.3299560546875 - ], - "bbox": [ - 401.28997802734375, - 522.56982421875, - 410.0521240234375, - 531.3255004882812 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の研究を禁止された研究と誤", - "origin": [ - 410.41998291015625, - 532.969970703125 - ], - "bbox": [ - 410.41998291015625, - 522.5699462890625, - 552.4005126953125, - 536.0399780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 522.56982421875, - 552.4005126953125, - 536.6499633789062 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 315.75, - 597.6399536132812, - 552.30712890625, - 611.1099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いることが多く, それらは同時に倫理的な問題を扱って", - "origin": [ - 315.75, - 608.0399780273438 - ], - "bbox": [ - 315.75, - 597.6399536132812, - 552.30712890625, - 611.1099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.75, - 597.6399536132812, - 552.30712890625, - 611.1099853515625 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 315.7699890136719, - 657.3899536132812, - 552.5296020507812, - 685.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文を対象とした機械学習のトピックモデル作成を通し", - "origin": [ - 315.7699890136719, - 667.7899780273438 - ], - "bbox": [ - 315.7699890136719, - 657.3899536132812, - 552.5296020507812, - 670.8599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7699890136719, - 657.3899536132812, - 552.5296020507812, - 670.8599853515625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "て, 論文を5カテゴリに分類した. そのうち, 試験的に", - "origin": [ - 315.80999755859375, - 682.6300048828125 - ], - "bbox": [ - 315.80999755859375, - 672.22998046875, - 552.455810546875, - 685.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.80999755859375, - 672.22998046875, - 552.455810546875, - 685.7000122070312 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 59.529998779296875, - 24, - 222.9145965576172, - 73.42800903320312 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 390, - 24, - 553, - 73.42800903320312 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 93.80996704101562, - 612.0, - 131.91098022460938 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 98.4000015258789, - 143.2575225830078, - 517.2359008789062, - 185.3374786376953 - ], - "layout_label": "U", - "sub_layout": [], - "bad_boxes": [ - [ - 314.5199890136719, - 143.2575225830078, - 501.1449890136719, - 185.30751037597656 - ], - [ - 314.5199890136719, - 143.2575225830078, - 501.1449890136719, - 185.30751037597656 - ] - ] - }, - { - "layout_bbox": [ - 0, - 206.25003051757812, - 612.0, - 574.3200073242188 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 59.189998626708984, - 597.6399536132812, - 297.8359069824219, - 708.7300415039062 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.75, - 597.6399536132812, - 552.5296020507812, - 708.7300415039062 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 59.529998779296875, - 56.06788635253906, - 222.9145965576172, - 73.42800903320312 - ], - "lines": [ - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Copyright @2018 The Institute of Electronics, ", - "origin": [ - 59.7599983215332, - 63.1099853515625 - ], - "bbox": [ - 59.7599983215332, - 56.06788635253906, - 222.9145965576172, - 65.37802124023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.7599983215332, - 56.06788635253906, - 222.9145965576172, - 65.37802124023438 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Information and Communication Engineers ", - "origin": [ - 59.529998779296875, - 71.15997314453125 - ], - "bbox": [ - 59.529998779296875, - 64.11787414550781, - 211.52081298828125, - 73.42800903320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 64.11787414550781, - 211.52081298828125, - 73.42800903320312 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 395.7699890136719, - 26.79792594909668, - 547.9946899414062, - 68.02804565429688 - ], - "lines": [ - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "SCIS 2018 ", - "origin": [ - 401.19000244140625, - 33.84002685546875 - ], - "bbox": [ - 401.19000244140625, - 26.79792594909668, - 443.4822998046875, - 36.10805892944336 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 401.19000244140625, - 26.79792594909668, - 443.4822998046875, - 36.10805892944336 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "2018 Symposium on ", - "origin": [ - 463.07000732421875, - 33.84002685546875 - ], - "bbox": [ - 463.07000732421875, - 26.79792594909668, - 534.6165771484375, - 36.10805892944336 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.07000732421875, - 26.79792594909668, - 534.6165771484375, - 36.10805892944336 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Cryptography and Information Security ", - "origin": [ - 402.0, - 41.8699951171875 - ], - "bbox": [ - 402.0, - 34.82789611816406, - 541.9627685546875, - 44.13802719116211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 402.0, - 34.82789611816406, - 541.9627685546875, - 44.13802719116211 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Niigata, Japan, Jan. 23 - 26, 2018 ", - "origin": [ - 411.9599914550781, - 49.83001708984375 - ], - "bbox": [ - 411.9599914550781, - 42.75794982910156, - 531.3631591796875, - 55.87807846069336 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.9599914550781, - 42.75794982910156, - 531.3631591796875, - 55.87807846069336 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "The Institute of Electronics, ", - "origin": [ - 421.67999267578125, - 57.719970703125 - ], - "bbox": [ - 421.67999267578125, - 50.67787170410156, - 521.5001220703125, - 59.98800277709961 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 421.67999267578125, - 50.67787170410156, - 521.5001220703125, - 59.98800277709961 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Information and Communication Engineers ", - "origin": [ - 395.7699890136719, - 65.760009765625 - ], - "bbox": [ - 395.7699890136719, - 58.71791076660156, - 547.9946899414062, - 68.02804565429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.7699890136719, - 58.71791076660156, - 547.9946899414062, - 68.02804565429688 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 106.55999755859375, - 93.80996704101562, - 505.93121337890625, - 111.92098999023438 - ], - "lines": [ - { - "spans": [ - { - "size": 13.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8958", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 106.55999755859375, - 107.92999267578125 - ], - "bbox": [ - 106.55999755859375, - 94.40999603271484, - 147.23519897460938, - 111.92098999023438 - ] - }, - { - "size": 8.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8959", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 148.08999633789062, - 102.64996337890625 - ], - "bbox": [ - 148.08999633789062, - 93.80996704101562, - 159.97299194335938, - 105.25946044921875 - ] - }, - { - "size": 13.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8958", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する研究倫理の調査と倫理指針の構築", - "origin": [ - 161.76998901367188, - 107.92999267578125 - ], - "bbox": [ - 161.76998901367188, - 94.40999603271484, - 505.93121337890625, - 111.92098999023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.55999755859375, - 93.80996704101562, - 505.93121337890625, - 111.92098999023438 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 93.23999786376953, - 114.39998626708984, - 521.8074340820312, - 131.91098022460938 - ], - "lines": [ - { - "spans": [ - { - "size": 13.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8958", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Investigation on Research Ethics and Building a Benchmark ", - "origin": [ - 93.23999786376953, - 127.91998291015625 - ], - "bbox": [ - 93.23999786376953, - 114.39998626708984, - 521.8074340820312, - 131.91098022460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.23999786376953, - 114.39998626708984, - 521.8074340820312, - 131.91098022460938 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 111.23999786376953, - 144.8775177001953, - 155.77499389648438, - 169.0075225830078 - ], - "lines": [ - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "稲垣俊", - "origin": [ - 111.23999786376953, - 160.52001953125 - ], - "bbox": [ - 111.23999786376953, - 147.7575225830078, - 150.4875030517578, - 169.0075225830078 - ] - }, - { - "size": 12.5, - "flags": 5, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "*", - "origin": [ - 150.5, - 157.6400146484375 - ], - "bbox": [ - 150.5, - 144.8775177001953, - 155.77499389648438, - 166.1275177001953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.23999786376953, - 144.8775177001953, - 155.77499389648438, - 169.0075225830078 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 98.4000015258789, - 147.15748596191406, - 386.5299987792969, - 185.3374786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Shun Inagaki ", - "origin": [ - 98.4000015258789, - 176.78997802734375 - ], - "bbox": [ - 98.4000015258789, - 164.02748107910156, - 168.1857147216797, - 185.27748107910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.4000015258789, - 164.02748107910156, - 168.1857147216797, - 185.27748107910156 - ] - }, - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Robert Ramirez * ", - "origin": [ - 194.75999450683594, - 159.91998291015625 - ], - "bbox": [ - 194.75999450683594, - 147.15748596191406, - 287.1700134277344, - 168.40748596191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.75999450683594, - 147.15748596191406, - 287.1700134277344, - 168.40748596191406 - ] - }, - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Robert Ramirez ", - "origin": [ - 199.08999633789062, - 176.8499755859375 - ], - "bbox": [ - 199.08999633789062, - 164.0874786376953, - 283.3485107421875, - 185.3374786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 199.08999633789062, - 164.0874786376953, - 283.3485107421875, - 185.3374786376953 - ] - }, - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "島岡政基", - "origin": [ - 331.2099914550781, - 160.67999267578125 - ], - "bbox": [ - 331.2099914550781, - 147.91749572753906, - 380.1755065917969, - 169.16749572753906 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*MS PMincho-8962", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ", - "origin": [ - 380.1755065917969, - 160.67999267578125 - ], - "bbox": [ - 380.1755065917969, - 147.20199584960938, - 383.04998779296875, - 166.11199951171875 - ] - }, - { - "size": 8.0, - "flags": 5, - "font": "*MS PMincho-8962", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "*", - "origin": [ - 383.04998779296875, - 155.3699951171875 - ], - "bbox": [ - 383.04998779296875, - 147.20199584960938, - 386.5299987792969, - 160.802001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.2099914550781, - 147.20199584960938, - 386.5299987792969, - 169.16749572753906 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 314.5199890136719, - 143.2575225830078, - 501.1449890136719, - 185.30751037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Masaki Shimaoka ", - "origin": [ - 314.5199890136719, - 176.82000732421875 - ], - "bbox": [ - 314.5199890136719, - 164.05751037597656, - 406.8418884277344, - 185.30751037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.5199890136719, - 164.05751037597656, - 406.8418884277344, - 185.30751037597656 - ] - }, - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "澗", - "origin": [ - 445.20001220703125, - 161.33001708984375 - ], - "bbox": [ - 445.20001220703125, - 148.56752014160156, - 456.3625183105469, - 169.81752014160156 - ] - }, - { - "size": 12.5, - "flags": 5, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "潟謙一*", - "origin": [ - 456.30999755859375, - 159.780029296875 - ], - "bbox": [ - 456.30999755859375, - 143.2575225830078, - 501.1449890136719, - 168.2675323486328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.20001220703125, - 143.2575225830078, - 501.1449890136719, - 169.81752014160156 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 433.20001220703125, - 164.06752014160156, - 517.2359008789062, - 185.31752014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 12.5, - "flags": 4, - "font": "*MS PMincho-8961", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Kenichi Magata ", - "origin": [ - 433.20001220703125, - 176.83001708984375 - ], - "bbox": [ - 433.20001220703125, - 164.06752014160156, - 517.2359008789062, - 185.31752014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 433.20001220703125, - 164.06752014160156, - 517.2359008789062, - 185.31752014160156 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 84.05999755859375, - 206.25003051757812, - 527.6815795898438, - 315.2900085449219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あらまし サイバ", - "origin": [ - 92.27999877929688, - 216.6500244140625 - ], - "bbox": [ - 92.27999877929688, - 206.25003051757812, - 165.12860107421875, - 219.72003173828125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 165.72999572753906, - 213.07000732421875 - ], - "bbox": [ - 165.72999572753906, - 206.30990600585938, - 174.49212646484375, - 215.06553649902344 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティにおける先進的な研究特に攻撃的セキュリティと呼ばれる分野の研", - "origin": [ - 174.91000366210938, - 216.6500244140625 - ], - "bbox": [ - 174.91000366210938, - 206.25003051757812, - 527.6635131835938, - 219.72003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.27999877929688, - 206.25003051757812, - 527.6635131835938, - 219.72003173828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究は, しばしば倫理的な議論を必要とする. 現状ではサイバ", - "origin": [ - 84.31999969482422, - 228.65997314453125 - ], - "bbox": [ - 84.31999969482422, - 218.25997924804688, - 343.9402160644531, - 231.72998046875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 344.7799987792969, - 224.9599609375 - ], - "bbox": [ - 344.7799987792969, - 218.19985961914062, - 353.5421447753906, - 226.9554901123047 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ特有の研究倫理指針は存在", - "origin": [ - 354.0799865722656, - 228.5599365234375 - ], - "bbox": [ - 354.0799865722656, - 218.15994262695312, - 527.6333618164062, - 231.62994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.31999969482422, - 218.15994262695312, - 527.6333618164062, - 231.72998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "せず, 日本の攻撃的セキュリティ研究を躊躇させる", - "origin": [ - 84.05999755859375, - 240.47998046875 - ], - "bbox": [ - 84.05999755859375, - 230.07998657226562, - 305.9252014160156, - 243.54998779296875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 306.1300048828125, - 236.42999267578125 - ], - "bbox": [ - 306.1300048828125, - 229.66989135742188, - 315.3081359863281, - 238.42552185058594 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "因となっている. 本研究では, 過去のトップカン", - "origin": [ - 316.4599914550781, - 240.53997802734375 - ], - "bbox": [ - 316.4599914550781, - 230.13998413085938, - 527.5535278320312, - 243.6099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.05999755859375, - 229.66989135742188, - 527.5535278320312, - 243.6099853515625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ファレンスに投稿された論文を機械学習および手作業で分類し, 研究倫理に関するベストプラクティス", - "origin": [ - 84.1500015258789, - 252.55999755859375 - ], - "bbox": [ - 84.1500015258789, - 242.16000366210938, - 527.6815795898438, - 255.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.1500015258789, - 242.16000366210938, - 527.6815795898438, - 255.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を抽出した. 抽出した知見からサイバ", - "origin": [ - 84.37999725341797, - 264.47998046875 - ], - "bbox": [ - 84.37999725341797, - 254.07998657226562, - 247.56900024414062, - 267.54998779296875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 248.41000366210938, - 260.80999755859375 - ], - "bbox": [ - 248.41000366210938, - 254.04989624023438, - 257.1721496582031, - 262.8055419921875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する研究倫理の倫理指針を構築した. この倫", - "origin": [ - 257.7099914550781, - 264.47998046875 - ], - "bbox": [ - 257.7099914550781, - 254.07998657226562, - 527.4296264648438, - 267.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.37999725341797, - 254.04989624023438, - 527.4296264648438, - 267.54998779296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理指針はグレ", - "origin": [ - 84.08000183105469, - 276.3499755859375 - ], - "bbox": [ - 84.08000183105469, - 265.9499816894531, - 142.20001220703125, - 279.41998291015625 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 142.3300018310547, - 272.69000244140625 - ], - "bbox": [ - 142.3300018310547, - 265.9299011230469, - 151.09213256835938, - 274.685546875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の研究を禁止された研究と誤認されないようにすることを目的としている. 倫理指", - "origin": [ - 151.6999969482422, - 276.40997314453125 - ], - "bbox": [ - 151.6999969482422, - 266.0099792480469, - 527.4737548828125, - 279.47998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.08000183105469, - 265.9299011230469, - 527.4737548828125, - 279.47998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "針を決定木の形で倫理指針を表現することにより, セキュリティ研究者は自分の研究で倫理的議論を必", - "origin": [ - 84.19000244140625, - 288.4200134277344 - ], - "bbox": [ - 84.19000244140625, - 278.02001953125, - 527.6627807617188, - 291.4900207519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.19000244140625, - 278.02001953125, - 527.6627807617188, - 291.4900207519531 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "要とする点を効率的に確認することができる. 本稿では手始めに", - "origin": [ - 84.31999969482422, - 300.3399963378906 - ], - "bbox": [ - 84.31999969482422, - 289.94000244140625, - 363.56671142578125, - 303.4100036621094 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 363.989990234375, - 296.2900085449219 - ], - "bbox": [ - 363.989990234375, - 289.5299072265625, - 373.1681213378906, - 298.2855529785156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "部のカテゴリのみ対象として倫理指", - "origin": [ - 373.5999755859375, - 300.3500061035156 - ], - "bbox": [ - 373.5999755859375, - 289.95001220703125, - 527.5048828125, - 303.4200134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.31999969482422, - 289.5299072265625, - 527.5048828125, - 303.4200134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "針構築を試みたが, 手法そのものは他分野にも応用が期待できる.", - "origin": [ - 84.19000244140625, - 312.2200012207031 - ], - "bbox": [ - 84.19000244140625, - 301.82000732421875, - 364.4624328613281, - 315.2900085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.19000244140625, - 301.82000732421875, - 364.4624328613281, - 315.2900085449219 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 92.27999877929688, - 320.0299987792969, - 367.2349853515625, - 337.2300109863281 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "キ", - "origin": [ - 92.27999877929688, - 334.1600036621094 - ], - "bbox": [ - 92.27999877929688, - 323.760009765625, - 100.6199951171875, - 337.2300109863281 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 100.6199951171875, - 334.1600036621094 - ], - "bbox": [ - 100.6199951171875, - 323.6698913574219, - 101.87999725341797, - 336.1555480957031 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 101.87999725341797, - 330.42999267578125 - ], - "bbox": [ - 101.87999725341797, - 323.6698913574219, - 110.27812957763672, - 332.425537109375 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 110.27812957763672, - 330.42999267578125 - ], - "bbox": [ - 110.27812957763672, - 320.0299987792969, - 111.95999908447266, - 337.2300109863281 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ワ", - "origin": [ - 111.95999908447266, - 334.1600036621094 - ], - "bbox": [ - 111.95999908447266, - 323.760009765625, - 119.5199966430664, - 337.2300109863281 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 119.5199966430664, - 334.1600036621094 - ], - "bbox": [ - 119.5199966430664, - 323.6698913574219, - 120.97000122070312, - 336.1555480957031 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 120.97000122070312, - 330.42999267578125 - ], - "bbox": [ - 120.97000122070312, - 323.6698913574219, - 129.36813354492188, - 332.425537109375 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 129.36813354492188, - 330.42999267578125 - ], - "bbox": [ - 129.36813354492188, - 320.0299987792969, - 133.22000122070312, - 337.20001220703125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドサイバ", - "origin": [ - 133.22000122070312, - 334.1300048828125 - ], - "bbox": [ - 133.22000122070312, - 323.7300109863281, - 175.10279846191406, - 337.20001220703125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 175.8300018310547, - 330.5500183105469 - ], - "bbox": [ - 175.8300018310547, - 323.7899169921875, - 184.59213256835938, - 332.5455627441406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ, 研究倫理, トピックモデル", - "origin": [ - 185.010009765625, - 334.1600036621094 - ], - "bbox": [ - 185.010009765625, - 323.760009765625, - 367.2349853515625, - 337.2300109863281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.27999877929688, - 320.0299987792969, - 367.2349853515625, - 337.2300109863281 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 60.2400016784668, - 358.3735046386719, - 124.74250793457031, - 373.9329833984375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8963", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "1 ", - "origin": [ - 60.2400016784668, - 370.4599914550781 - ], - "bbox": [ - 60.2400016784668, - 358.3735046386719, - 68.27850341796875, - 373.9329833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.2400016784668, - 358.3735046386719, - 68.27850341796875, - 373.9329833984375 - ] - }, - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8963", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "はじめに", - "origin": [ - 80.10000610351562, - 370.4599914550781 - ], - "bbox": [ - 80.10000610351562, - 358.3735046386719, - 124.74250793457031, - 373.9329833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.10000610351562, - 358.3735046386719, - 124.74250793457031, - 373.9329833984375 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.20000076293945, - 381.45001220703125, - 296.0260314941406, - 484.760009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "先進的な研究には倫理的な課題が付随することがある.", - "origin": [ - 69.12000274658203, - 391.8500061035156 - ], - "bbox": [ - 69.12000274658203, - 381.45001220703125, - 293.4160461425781, - 394.9200134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.12000274658203, - 381.45001220703125, - 293.4160461425781, - 394.9200134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "医学をはじめとする人間や社会に大きな影響を与えうる", - "origin": [ - 59.27000045776367, - 406.760009765625 - ], - "bbox": [ - 59.27000045776367, - 396.3600158691406, - 295.9580078125, - 409.83001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.27000045776367, - 396.3600158691406, - 295.9580078125, - 409.83001708984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究を行う場合, あらかじめその研究の倫理的妥当性を", - "origin": [ - 59.20000076293945, - 421.75 - ], - "bbox": [ - 59.20000076293945, - 411.3500061035156, - 295.904052734375, - 424.82000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.20000076293945, - 411.3500061035156, - 295.904052734375, - 424.82000732421875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "問う必要がある. 情報通信インフラが末端まで行き届い", - "origin": [ - 59.2400016784668, - 436.6199951171875 - ], - "bbox": [ - 59.2400016784668, - 426.2200012207031, - 296.0260314941406, - 439.69000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.2400016784668, - 426.2200012207031, - 296.0260314941406, - 439.69000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "た現代では, サイバ", - "origin": [ - 59.380001068115234, - 451.57000732421875 - ], - "bbox": [ - 59.380001068115234, - 441.1700134277344, - 143.64862060546875, - 454.6400146484375 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 144.37001037597656, - 447.92999267578125 - ], - "bbox": [ - 144.37001037597656, - 441.1698913574219, - 153.13214111328125, - 449.925537109375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの研究も社会に大き", - "origin": [ - 153.4300079345703, - 451.53997802734375 - ], - "bbox": [ - 153.4300079345703, - 441.1399841308594, - 295.91015625, - 454.6099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.380001068115234, - 441.1399841308594, - 295.91015625, - 454.6400146484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な影響を与える可能性がある. したがって, 医学同様に", - "origin": [ - 59.380001068115234, - 466.4800109863281 - ], - "bbox": [ - 59.380001068115234, - 456.08001708984375, - 295.84002685546875, - 469.71002197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.380001068115234, - 456.08001708984375, - 295.84002685546875, - 469.71002197265625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究が与える影響を十分に考慮しなければならない.", - "origin": [ - 59.20000076293945, - 481.69000244140625 - ], - "bbox": [ - 59.20000076293945, - 470.6438293457031, - 282.0127868652344, - 484.760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999958276748657, - -0.002899987855926156 - ], - "bbox": [ - 59.20000076293945, - 470.6438293457031, - 282.0127868652344, - 484.760009765625 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.2400016784668, - 485.9599914550781, - 297.8428955078125, - 559.3200073242188 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 68.91999816894531, - 496.3599853515625 - ], - "bbox": [ - 68.91999816894531, - 485.9599914550781, - 96.96859741210938, - 499.42999267578125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 97.56999969482422, - 492.78997802734375 - ], - "bbox": [ - 97.56999969482422, - 486.0298767089844, - 106.33213806152344, - 494.7855224609375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究の分野には明らかに他者の", - "origin": [ - 106.62999725341797, - 496.3599853515625 - ], - "bbox": [ - 106.62999725341797, - 485.9599914550781, - 295.8910827636719, - 499.42999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.91999816894531, - 485.9599914550781, - 295.8910827636719, - 499.42999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "権利を明確に侵害するもの,しないもの,そしてどちらと", - "origin": [ - 59.40999984741211, - 511.6000061035156 - ], - "bbox": [ - 59.40999984741211, - 500.6797180175781, - 295.9460754394531, - 514.6699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - -0.002199994632974267 - ], - "bbox": [ - 59.40999984741211, - 500.6797180175781, - 295.9460754394531, - 514.6699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "も言い難い倫理的にグレ", - "origin": [ - 59.45000076293945, - 526.0599975585938 - ], - "bbox": [ - 59.45000076293945, - 515.6599731445312, - 163.56719970703125, - 529.1300048828125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 163.6999969482422, - 522.5999755859375 - ], - "bbox": [ - 163.6999969482422, - 515.83984375, - 172.46212768554688, - 524.5955200195312 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な領域が存在する. 明らかに", - "origin": [ - 172.8000030517578, - 526.3300170898438 - ], - "bbox": [ - 172.8000030517578, - 515.9299926757812, - 295.90985107421875, - 529.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.45000076293945, - 515.6599731445312, - 295.90985107421875, - 529.4000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "問題のある研究や明らかに問題のない研究については,", - "origin": [ - 59.2400016784668, - 541.469970703125 - ], - "bbox": [ - 59.2400016784668, - 530.4734497070312, - 297.8428955078125, - 544.5399780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 59.2400016784668, - 530.4734497070312, - 297.8428955078125, - 544.5399780273438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "その研究活動の可否を判断することが容易である. よっ", - "origin": [ - 59.369998931884766, - 556.25 - ], - "bbox": [ - 59.369998931884766, - 545.2584228515625, - 295.981201171875, - 559.3200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 59.369998931884766, - 545.2584228515625, - 295.981201171875, - 559.3200073242188 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.369998931884766, - 560.68994140625, - 293.4129943847656, - 574.3200073242188 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "て,特に議論を要するのは倫理的にグレ", - "origin": [ - 59.369998931884766, - 571.0899658203125 - ], - "bbox": [ - 59.369998931884766, - 560.68994140625, - 226.08340454101562, - 574.1599731445312 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 226.08999633789062, - 567.5800170898438 - ], - "bbox": [ - 226.08999633789062, - 560.8198852539062, - 234.8521270751953, - 569.5755615234375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な領域である.", - "origin": [ - 235.0699920654297, - 571.25 - ], - "bbox": [ - 235.0699920654297, - 560.8499755859375, - 293.4129943847656, - 574.3200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.369998931884766, - 560.68994140625, - 293.4129943847656, - 574.3200073242188 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.220001220703125, - 575.6199951171875, - 295.8944091796875, - 604.466552734375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究らは攻撃者のように考え, 攻撃者より", - "origin": [ - 59.220001220703125, - 586.2999877929688 - ], - "bbox": [ - 59.220001220703125, - 575.6199951171875, - 295.8100280761719, - 589.3699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.220001220703125, - 575.6199951171875, - 295.8100280761719, - 589.3699951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "も先に新たな攻撃手法を調査しなければならないその", - "origin": [ - 59.45000076293945, - 601.030029296875 - ], - "bbox": [ - 59.45000076293945, - 590.4288940429688, - 295.8944091796875, - 604.466552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 59.45000076293945, - 590.4288940429688, - 295.8944091796875, - 604.466552734375 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 59.29999923706055, - 605.6499633789062, - 296.00103759765625, - 634.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ような倫理的にグレ", - "origin": [ - 59.34000015258789, - 616.1199951171875 - ], - "bbox": [ - 59.34000015258789, - 605.719970703125, - 144.95919799804688, - 619.1900024414062 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 145.08999633789062, - 612.4199829101562 - ], - "bbox": [ - 145.08999633789062, - 605.6598510742188, - 153.8521270751953, - 614.41552734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な領域, すなわち攻撃的セキュリ", - "origin": [ - 154.30999755859375, - 616.0499877929688 - ], - "bbox": [ - 154.30999755859375, - 605.6499633789062, - 296.00103759765625, - 619.1199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.34000015258789, - 605.6499633789062, - 296.00103759765625, - 619.1900024414062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ティ研究はサイバ", - "origin": [ - 59.29999923706055, - 630.9500122070312 - ], - "bbox": [ - 59.29999923706055, - 620.5499877929688, - 134.76150512695312, - 634.02001953125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 135.3699951171875, - 627.3499755859375 - ], - "bbox": [ - 135.3699951171875, - 620.58984375, - 144.1321258544922, - 629.3455200195312 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究者にとって有益な", - "origin": [ - 144.42999267578125, - 630.97998046875 - ], - "bbox": [ - 144.42999267578125, - 620.5799560546875, - 295.8500061035156, - 634.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.29999923706055, - 620.5499877929688, - 295.8500061035156, - 634.0499877929688 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 59.189998626708984, - 635.6699829101562, - 295.8489685058594, - 663.9099731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ものとなるが, 同時にその研究が社会に悪影響を与えな", - "origin": [ - 59.45000076293945, - 646.0700073242188 - ], - "bbox": [ - 59.45000076293945, - 635.6699829101562, - 295.8489685058594, - 649.1400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.45000076293945, - 635.6699829101562, - 295.8489685058594, - 649.1400146484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いことを考慮しなければならない.", - "origin": [ - 59.189998626708984, - 660.8399658203125 - ], - "bbox": [ - 59.189998626708984, - 650.43994140625, - 205.343017578125, - 663.9099731445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.189998626708984, - 650.43994140625, - 205.343017578125, - 663.9099731445312 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 59.20000076293945, - 665.6099853515625, - 297.8359069824219, - 708.7300415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "被験者実験を行うことが多い医学等の研究領域では,", - "origin": [ - 69.0, - 676.010009765625 - ], - "bbox": [ - 69.0, - 665.6099853515625, - 297.8359069824219, - 679.0800170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.0, - 665.6099853515625, - 297.8359069824219, - 679.0800170898438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究を実施する際に倫理委員会の承認を必要とすること", - "origin": [ - 59.20000076293945, - 690.8499755859375 - ], - "bbox": [ - 59.20000076293945, - 680.449951171875, - 295.932373046875, - 693.9199829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.20000076293945, - 680.449951171875, - 295.932373046875, - 693.9199829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "がある. しかしながら, 現状ではサイバ", - "origin": [ - 59.380001068115234, - 705.6600341796875 - ], - "bbox": [ - 59.380001068115234, - 695.260009765625, - 229.10018920898438, - 708.7300415039062 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 229.8199920654297, - 702.030029296875 - ], - "bbox": [ - 229.8199920654297, - 695.2698974609375, - 238.58212280273438, - 704.0255737304688 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ", - "origin": [ - 238.87998962402344, - 705.6300048828125 - ], - "bbox": [ - 238.87998962402344, - 695.22998046875, - 295.82098388671875, - 708.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.380001068115234, - 695.22998046875, - 295.82098388671875, - 708.7300415039062 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 59.47999954223633, - 720.6400146484375, - 297.60845947265625, - 741.22802734375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8955", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セコム株式会社", - "origin": [ - 77.63999938964844, - 728.9600219726562 - ], - "bbox": [ - 77.63999938964844, - 720.6400146484375, - 132.3845977783203, - 732.365966796875 - ] - }, - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " IS", - "origin": [ - 132.3845977783203, - 729.9099731445312 - ], - "bbox": [ - 132.3845977783203, - 722.6278686523438, - 143.86708068847656, - 732.177978515625 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8955", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 研究所,", - "origin": [ - 143.86708068847656, - 729.6699829101562 - ], - "bbox": [ - 143.86708068847656, - 721.3499755859375, - 172.48800659179688, - 732.1259765625 - ] - }, - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " SECOM CO., LTD., Intelligent ", - "origin": [ - 172.48800659179688, - 729.6699829101562 - ], - "bbox": [ - 172.48800659179688, - 722.6278686523438, - 297.60845947265625, - 731.93798828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.63999938964844, - 720.6400146484375, - 297.60845947265625, - 732.365966796875 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Systems Laboratory ", - "origin": [ - 59.47999954223633, - 738.9600219726562 - ], - "bbox": [ - 59.47999954223633, - 731.9179077148438, - 135.29861450195312, - 741.22802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47999954223633, - 731.9179077148438, - 135.29861450195312, - 741.22802734375 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 315.9800109863281, - 357.99920654296875, - 552.2860107421875, - 372.05999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を扱う倫理委員会の存在が希薄であると言わざるを得な", - "origin": [ - 315.9800109863281, - 368.989990234375 - ], - "bbox": [ - 315.9800109863281, - 357.99920654296875, - 552.2860107421875, - 372.05999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 315.9800109863281, - 357.99920654296875, - 552.2860107421875, - 372.05999755859375 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 315.9200134277344, - 372.77001953125, - 552.71240234375, - 401.7400207519531 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ぃ. その", - "origin": [ - 316.3299865722656, - 383.1700134277344 - ], - "bbox": [ - 316.3299865722656, - 372.77001953125, - 353.9599914550781, - 386.6816101074219 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 354.1399841308594, - 379.5321044921875 - ], - "bbox": [ - 354.1399841308594, - 372.7720031738281, - 363.318115234375, - 381.55242919921875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "因は, サイバ", - "origin": [ - 364.219970703125, - 383.5193176269531 - ], - "bbox": [ - 364.219970703125, - 373.11932373046875, - 419.30859375, - 386.7380676269531 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 419.90997314453125, - 380.0296936035156 - ], - "bbox": [ - 419.90997314453125, - 373.26959228515625, - 428.672119140625, - 382.04888916015625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの研究倫理に関", - "origin": [ - 428.969970703125, - 383.4841613769531 - ], - "bbox": [ - 428.969970703125, - 373.08416748046875, - 552.71240234375, - 386.8882751464844 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - 0.002699990291148424 - ], - "bbox": [ - 316.3299865722656, - 372.77001953125, - 552.71240234375, - 386.8882751464844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "して判断する基準が不明確なことにある. 医学の分野で", - "origin": [ - 315.9200134277344, - 398.6700134277344 - ], - "bbox": [ - 315.9200134277344, - 388.1000061035156, - 552.6205444335938, - 401.7400207519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 388.1000061035156, - 552.6205444335938, - 401.7400207519531 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 315.6499938964844, - 403.1600036621094, - 552.4703979492188, - 461.3399963378906 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は古くから研究倫理に関する議論が行われており, ヘル", - "origin": [ - 316.1099853515625, - 413.55999755859375 - ], - "bbox": [ - 316.1099853515625, - 403.1600036621094, - 552.4703979492188, - 416.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.1099853515625, - 403.1600036621094, - 552.4703979492188, - 416.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "シンキ直言やベルモントレポ", - "origin": [ - 316.79998779296875, - 427.8900146484375 - ], - "bbox": [ - 316.79998779296875, - 417.4900207519531, - 438.49920654296875, - 431.5342712402344 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 439.2200012207031, - 424.8060607910156 - ], - "bbox": [ - 439.2200012207031, - 418.04595947265625, - 447.9821472167969, - 426.8235168457031 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トのような倫理指針を参", - "origin": [ - 448.3900146484375, - 428.3089904785156 - ], - "bbox": [ - 448.3900146484375, - 417.90899658203125, - 552.3309936523438, - 431.63885498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 316.79998779296875, - 417.4900207519531, - 552.3309936523438, - 431.63885498046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "考とした研究が行われてきた. サイバ", - "origin": [ - 315.6499938964844, - 443.3500061035156 - ], - "bbox": [ - 315.6499938964844, - 432.95001220703125, - 476.5285949707031, - 446.4200134277344 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 477.1299743652344, - 439.8600158691406 - ], - "bbox": [ - 477.1299743652344, - 433.09991455078125, - 485.8921203613281, - 441.8555603027344 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの", - "origin": [ - 486.1899719238281, - 443.5000305175781 - ], - "bbox": [ - 486.1899719238281, - 433.10003662109375, - 552.4277954101562, - 446.5700378417969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.6499938964844, - 432.95001220703125, - 552.4277954101562, - 446.5700378417969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "分野でもベルモントレポ", - "origin": [ - 315.8999938964844, - 458.2699890136719 - ], - "bbox": [ - 315.8999938964844, - 447.8699951171875, - 419.5220642089844, - 461.3399963378906 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 420.25, - 454.72998046875 - ], - "bbox": [ - 420.25, - 447.9698791503906, - 429.01214599609375, - 456.72552490234375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トの流れをくむメンロレポ", - "origin": [ - 429.4200134277344, - 458.2699890136719 - ], - "bbox": [ - 429.4200134277344, - 447.8699951171875, - 542.5513916015625, - 461.3399963378906 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 543.260009765625, - 454.6600036621094 - ], - "bbox": [ - 543.260009765625, - 447.89990234375, - 552.0221557617188, - 456.6555480957031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8999938964844, - 447.8699951171875, - 552.0221557617188, - 461.3399963378906 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 315.8900146484375, - 462.55999755859375, - 552.5120239257812, - 491.5899963378906 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ト[1]が2012年に登場したものの, それを用いた実践的", - "origin": [ - 315.8900146484375, - 472.9599914550781 - ], - "bbox": [ - 315.8900146484375, - 462.55999755859375, - 552.5120239257812, - 476.57421875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999973177909851, - 0.0022999937646090984 - ], - "bbox": [ - 315.8900146484375, - 462.55999755859375, - 552.5120239257812, - 476.57421875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な判断基準は不足している.", - "origin": [ - 315.94000244140625, - 488.5199890136719 - ], - "bbox": [ - 315.94000244140625, - 477.6279602050781, - 433.0832824707031, - 491.5899963378906 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999991238117218, - -0.004199963063001633 - ], - "bbox": [ - 315.94000244140625, - 477.6279602050781, - 433.0832824707031, - 491.5899963378906 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 325.5299987792969, - 492.70001220703125, - 552.4901123046875, - 506.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "そこで本研究ではサイバ", - "origin": [ - 325.5299987792969, - 503.2300109863281 - ], - "bbox": [ - 325.5299987792969, - 492.83001708984375, - 429.1179504394531, - 506.3000183105469 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 429.72998046875, - 499.55999755859375 - ], - "bbox": [ - 429.72998046875, - 492.7998962402344, - 438.49212646484375, - 501.5555419921875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関連する研", - "origin": [ - 438.90997314453125, - 503.1000061035156 - ], - "bbox": [ - 438.90997314453125, - 492.70001220703125, - 552.4901123046875, - 506.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5299987792969, - 492.70001220703125, - 552.4901123046875, - 506.3000183105469 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.9200134277344, - 507.7600402832031, - 549.9845581054688, - 521.2300415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究倫理課題を洗い出し,研究倫理指針の素案を作成した", - "origin": [ - 315.9200134277344, - 518.1600341796875 - ], - "bbox": [ - 315.9200134277344, - 507.7600402832031, - 549.9845581054688, - 521.2300415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 507.7600402832031, - 549.9845581054688, - 521.2300415039062 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 315.989990234375, - 522.56982421875, - 552.4005126953125, - 536.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "この倫理指針はグレ", - "origin": [ - 315.989990234375, - 533.5799560546875 - ], - "bbox": [ - 315.989990234375, - 522.7099609375, - 401.2801818847656, - 536.6499633789062 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 401.28997802734375, - 529.3299560546875 - ], - "bbox": [ - 401.28997802734375, - 522.56982421875, - 410.0521240234375, - 531.3255004882812 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の研究を禁止された研究と誤", - "origin": [ - 410.41998291015625, - 532.969970703125 - ], - "bbox": [ - 410.41998291015625, - 522.5699462890625, - 552.4005126953125, - 536.0399780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 522.56982421875, - 552.4005126953125, - 536.6499633789062 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 315.67999267578125, - 537.5399780273438, - 552.77001953125, - 580.8400268554688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "認されないようにすることを目的としている. 倫理指針", - "origin": [ - 315.67999267578125, - 548.0999755859375 - ], - "bbox": [ - 315.67999267578125, - 537.5399780273438, - 552.7601928710938, - 551.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.67999267578125, - 537.5399780273438, - 552.7601928710938, - 551.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "構築には,おおよそ過去5年間のトップカンファレンス論", - "origin": [ - 315.7900085449219, - 563.1699829101562 - ], - "bbox": [ - 315.7900085449219, - 552.2012939453125, - 552.77001953125, - 566.239990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 315.7900085449219, - 552.2012939453125, - 552.77001953125, - 566.239990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "文のベストプラクティスを参考にした. トップカンファ", - "origin": [ - 316.1199951171875, - 577.77001953125 - ], - "bbox": [ - 316.1199951171875, - 567.3699951171875, - 552.1408081054688, - 580.8400268554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.1199951171875, - 567.3699951171875, - 552.1408081054688, - 580.8400268554688 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 315.7099914550781, - 582.3499755859375, - 552.3317260742188, - 596.158447265625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "レンスに採択されるような研究は先進的な問題を扱って", - "origin": [ - 315.7099914550781, - 592.75 - ], - "bbox": [ - 315.7099914550781, - 582.3499755859375, - 552.3317260742188, - 596.158447265625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - 0.002099995268508792 - ], - "bbox": [ - 315.7099914550781, - 582.3499755859375, - 552.3317260742188, - 596.158447265625 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 315.75, - 597.6399536132812, - 552.30712890625, - 611.1099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いることが多く, それらは同時に倫理的な問題を扱って", - "origin": [ - 315.75, - 608.0399780273438 - ], - "bbox": [ - 315.75, - 597.6399536132812, - 552.30712890625, - 611.1099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.75, - 597.6399536132812, - 552.30712890625, - 611.1099853515625 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 315.75, - 612.3299560546875, - 552.637939453125, - 656.0 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いることを意味する. 加えて, そのような論文は倫理的", - "origin": [ - 315.75, - 622.72998046875 - ], - "bbox": [ - 315.75, - 612.3299560546875, - 552.5070190429688, - 626.3445434570312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999973177909851, - 0.0022999937646090984 - ], - "bbox": [ - 315.75, - 612.3299560546875, - 552.5070190429688, - 626.3445434570312 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な議論が十分になされていることが多く, それらは倫理", - "origin": [ - 315.94000244140625, - 637.7999877929688 - ], - "bbox": [ - 315.94000244140625, - 627.3999633789062, - 552.637939453125, - 640.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.94000244140625, - 627.3999633789062, - 552.637939453125, - 640.8699951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "指針構築に役立てることができた. 本研究では962本の", - "origin": [ - 315.7900085449219, - 652.9299926757812 - ], - "bbox": [ - 315.7900085449219, - 641.911865234375, - 552.4376220703125, - 656.0 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - -0.002699990291148424 - ], - "bbox": [ - 315.7900085449219, - 641.911865234375, - 552.4376220703125, - 656.0 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 315.7699890136719, - 657.3899536132812, - 552.5296020507812, - 685.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文を対象とした機械学習のトピックモデル作成を通し", - "origin": [ - 315.7699890136719, - 667.7899780273438 - ], - "bbox": [ - 315.7699890136719, - 657.3899536132812, - 552.5296020507812, - 670.8599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7699890136719, - 657.3899536132812, - 552.5296020507812, - 670.8599853515625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "て, 論文を5カテゴリに分類した. そのうち, 試験的に", - "origin": [ - 315.80999755859375, - 682.6300048828125 - ], - "bbox": [ - 315.80999755859375, - 672.22998046875, - 552.455810546875, - 685.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.80999755859375, - 672.22998046875, - 552.455810546875, - 685.7000122070312 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 313.6400146484375, - 686.8599853515625, - 552.5499877929688, - 730.4400024414062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2カテゴリのみを対象として倫理指針を構築したが, 本", - "origin": [ - 313.6400146484375, - 697.260009765625 - ], - "bbox": [ - 313.6400146484375, - 686.8599853515625, - 552.239990234375, - 700.8848266601562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999958276748657, - 0.002899987855926156 - ], - "bbox": [ - 313.6400146484375, - 686.8599853515625, - 552.239990234375, - 700.8848266601562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "手法は残る3カテゴリにも適用可能な汎用性の甜いもの", - "origin": [ - 316.1199951171875, - 712.5 - ], - "bbox": [ - 316.1199951171875, - 702.0999755859375, - 552.4299926757812, - 715.9500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.1199951171875, - 702.0999755859375, - 552.4299926757812, - 715.9500122070312 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "となっている. 倫理指針は決定木の形をとっており, 研", - "origin": [ - 315.9200134277344, - 727.3699951171875 - ], - "bbox": [ - 315.9200134277344, - 716.969970703125, - 552.5499877929688, - 730.4400024414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 716.969970703125, - 552.5499877929688, - 730.4400024414062 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 18, - "type": 0, - "bbox": [ - 59.47999954223633, - 720.6400146484375, - 297.60845947265625, - 741.22802734375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8955", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セコム株式会社", - "origin": [ - 77.63999938964844, - 728.9600219726562 - ], - "bbox": [ - 77.63999938964844, - 720.6400146484375, - 132.3845977783203, - 732.365966796875 - ] - }, - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " IS", - "origin": [ - 132.3845977783203, - 729.9099731445312 - ], - "bbox": [ - 132.3845977783203, - 722.6278686523438, - 143.86708068847656, - 732.177978515625 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8955", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 研究所,", - "origin": [ - 143.86708068847656, - 729.6699829101562 - ], - "bbox": [ - 143.86708068847656, - 721.3499755859375, - 172.48800659179688, - 732.1259765625 - ] - }, - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " SECOM CO., LTD., Intelligent ", - "origin": [ - 172.48800659179688, - 729.6699829101562 - ], - "bbox": [ - 172.48800659179688, - 722.6278686523438, - 297.60845947265625, - 731.93798828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.63999938964844, - 720.6400146484375, - 297.60845947265625, - 732.365966796875 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Systems Laboratory ", - "origin": [ - 59.47999954223633, - 738.9600219726562 - ], - "bbox": [ - 59.47999954223633, - 731.9179077148438, - 135.29861450195312, - 741.22802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47999954223633, - 731.9179077148438, - 135.29861450195312, - 741.22802734375 - ] - } - ], - "tag": "footnote" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 395.7699890136719, - 26.79792594909668, - 547.9946899414062, - 68.02804565429688 - ], - "lines": [ - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "SCIS 2018 ", - "origin": [ - 401.19000244140625, - 33.84002685546875 - ], - "bbox": [ - 401.19000244140625, - 26.79792594909668, - 443.4822998046875, - 36.10805892944336 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 401.19000244140625, - 26.79792594909668, - 443.4822998046875, - 36.10805892944336 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "2018 Symposium on ", - "origin": [ - 463.07000732421875, - 33.84002685546875 - ], - "bbox": [ - 463.07000732421875, - 26.79792594909668, - 534.6165771484375, - 36.10805892944336 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.07000732421875, - 26.79792594909668, - 534.6165771484375, - 36.10805892944336 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Cryptography and Information Security ", - "origin": [ - 402.0, - 41.8699951171875 - ], - "bbox": [ - 402.0, - 34.82789611816406, - 541.9627685546875, - 44.13802719116211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 402.0, - 34.82789611816406, - 541.9627685546875, - 44.13802719116211 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Niigata, Japan, Jan. 23 - 26, 2018 ", - "origin": [ - 411.9599914550781, - 49.83001708984375 - ], - "bbox": [ - 411.9599914550781, - 42.75794982910156, - 531.3631591796875, - 55.87807846069336 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.9599914550781, - 42.75794982910156, - 531.3631591796875, - 55.87807846069336 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "The Institute of Electronics, ", - "origin": [ - 421.67999267578125, - 57.719970703125 - ], - "bbox": [ - 421.67999267578125, - 50.67787170410156, - 521.5001220703125, - 59.98800277709961 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 421.67999267578125, - 50.67787170410156, - 521.5001220703125, - 59.98800277709961 - ] - }, - { - "spans": [ - { - "size": 7.000100135803223, - "flags": 20, - "font": "*MS Mincho-Bold-8960", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Information and Communication Engineers ", - "origin": [ - 395.7699890136719, - 65.760009765625 - ], - "bbox": [ - 395.7699890136719, - 58.71791076660156, - 547.9946899414062, - 68.02804565429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.7699890136719, - 58.71791076660156, - 547.9946899414062, - 68.02804565429688 - ] - } - ], - "tag": "on-image" - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.20000076293945, - 381.45001220703125, - 296.0260314941406, - 484.760009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "先進的な研究には倫理的な課題が付随することがある.", - "origin": [ - 69.12000274658203, - 391.8500061035156 - ], - "bbox": [ - 69.12000274658203, - 381.45001220703125, - 293.4160461425781, - 394.9200134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.12000274658203, - 381.45001220703125, - 293.4160461425781, - 394.9200134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "医学をはじめとする人間や社会に大きな影響を与えうる", - "origin": [ - 59.27000045776367, - 406.760009765625 - ], - "bbox": [ - 59.27000045776367, - 396.3600158691406, - 295.9580078125, - 409.83001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.27000045776367, - 396.3600158691406, - 295.9580078125, - 409.83001708984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究を行う場合, あらかじめその研究の倫理的妥当性を", - "origin": [ - 59.20000076293945, - 421.75 - ], - "bbox": [ - 59.20000076293945, - 411.3500061035156, - 295.904052734375, - 424.82000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.20000076293945, - 411.3500061035156, - 295.904052734375, - 424.82000732421875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "問う必要がある. 情報通信インフラが末端まで行き届い", - "origin": [ - 59.2400016784668, - 436.6199951171875 - ], - "bbox": [ - 59.2400016784668, - 426.2200012207031, - 296.0260314941406, - 439.69000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.2400016784668, - 426.2200012207031, - 296.0260314941406, - 439.69000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "た現代では, サイバ", - "origin": [ - 59.380001068115234, - 451.57000732421875 - ], - "bbox": [ - 59.380001068115234, - 441.1700134277344, - 143.64862060546875, - 454.6400146484375 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 144.37001037597656, - 447.92999267578125 - ], - "bbox": [ - 144.37001037597656, - 441.1698913574219, - 153.13214111328125, - 449.925537109375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの研究も社会に大き", - "origin": [ - 153.4300079345703, - 451.53997802734375 - ], - "bbox": [ - 153.4300079345703, - 441.1399841308594, - 295.91015625, - 454.6099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.380001068115234, - 441.1399841308594, - 295.91015625, - 454.6400146484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な影響を与える可能性がある. したがって, 医学同様に", - "origin": [ - 59.380001068115234, - 466.4800109863281 - ], - "bbox": [ - 59.380001068115234, - 456.08001708984375, - 295.84002685546875, - 469.71002197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.380001068115234, - 456.08001708984375, - 295.84002685546875, - 469.71002197265625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究が与える影響を十分に考慮しなければならない.", - "origin": [ - 59.20000076293945, - 481.69000244140625 - ], - "bbox": [ - 59.20000076293945, - 470.6438293457031, - 282.0127868652344, - 484.760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999958276748657, - -0.002899987855926156 - ], - "bbox": [ - 59.20000076293945, - 470.6438293457031, - 282.0127868652344, - 484.760009765625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.2400016784668, - 485.9599914550781, - 297.8428955078125, - 559.3200073242188 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 68.91999816894531, - 496.3599853515625 - ], - "bbox": [ - 68.91999816894531, - 485.9599914550781, - 96.96859741210938, - 499.42999267578125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 97.56999969482422, - 492.78997802734375 - ], - "bbox": [ - 97.56999969482422, - 486.0298767089844, - 106.33213806152344, - 494.7855224609375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究の分野には明らかに他者の", - "origin": [ - 106.62999725341797, - 496.3599853515625 - ], - "bbox": [ - 106.62999725341797, - 485.9599914550781, - 295.8910827636719, - 499.42999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.91999816894531, - 485.9599914550781, - 295.8910827636719, - 499.42999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "権利を明確に侵害するもの,しないもの,そしてどちらと", - "origin": [ - 59.40999984741211, - 511.6000061035156 - ], - "bbox": [ - 59.40999984741211, - 500.6797180175781, - 295.9460754394531, - 514.6699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - -0.002199994632974267 - ], - "bbox": [ - 59.40999984741211, - 500.6797180175781, - 295.9460754394531, - 514.6699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "も言い難い倫理的にグレ", - "origin": [ - 59.45000076293945, - 526.0599975585938 - ], - "bbox": [ - 59.45000076293945, - 515.6599731445312, - 163.56719970703125, - 529.1300048828125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 163.6999969482422, - 522.5999755859375 - ], - "bbox": [ - 163.6999969482422, - 515.83984375, - 172.46212768554688, - 524.5955200195312 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な領域が存在する. 明らかに", - "origin": [ - 172.8000030517578, - 526.3300170898438 - ], - "bbox": [ - 172.8000030517578, - 515.9299926757812, - 295.90985107421875, - 529.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.45000076293945, - 515.6599731445312, - 295.90985107421875, - 529.4000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "問題のある研究や明らかに問題のない研究については,", - "origin": [ - 59.2400016784668, - 541.469970703125 - ], - "bbox": [ - 59.2400016784668, - 530.4734497070312, - 297.8428955078125, - 544.5399780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 59.2400016784668, - 530.4734497070312, - 297.8428955078125, - 544.5399780273438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "その研究活動の可否を判断することが容易である. よっ", - "origin": [ - 59.369998931884766, - 556.25 - ], - "bbox": [ - 59.369998931884766, - 545.2584228515625, - 295.981201171875, - 559.3200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 59.369998931884766, - 545.2584228515625, - 295.981201171875, - 559.3200073242188 - ] - } - ], - "tag": "rotate" - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.220001220703125, - 575.6199951171875, - 295.8944091796875, - 604.466552734375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究らは攻撃者のように考え, 攻撃者より", - "origin": [ - 59.220001220703125, - 586.2999877929688 - ], - "bbox": [ - 59.220001220703125, - 575.6199951171875, - 295.8100280761719, - 589.3699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.220001220703125, - 575.6199951171875, - 295.8100280761719, - 589.3699951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "も先に新たな攻撃手法を調査しなければならないその", - "origin": [ - 59.45000076293945, - 601.030029296875 - ], - "bbox": [ - 59.45000076293945, - 590.4288940429688, - 295.8944091796875, - 604.466552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 59.45000076293945, - 590.4288940429688, - 295.8944091796875, - 604.466552734375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 315.9800109863281, - 357.99920654296875, - 552.2860107421875, - 372.05999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を扱う倫理委員会の存在が希薄であると言わざるを得な", - "origin": [ - 315.9800109863281, - 368.989990234375 - ], - "bbox": [ - 315.9800109863281, - 357.99920654296875, - 552.2860107421875, - 372.05999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 315.9800109863281, - 357.99920654296875, - 552.2860107421875, - 372.05999755859375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 20, - "type": 0, - "bbox": [ - 315.9200134277344, - 372.77001953125, - 552.71240234375, - 401.7400207519531 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ぃ. その", - "origin": [ - 316.3299865722656, - 383.1700134277344 - ], - "bbox": [ - 316.3299865722656, - 372.77001953125, - 353.9599914550781, - 386.6816101074219 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 354.1399841308594, - 379.5321044921875 - ], - "bbox": [ - 354.1399841308594, - 372.7720031738281, - 363.318115234375, - 381.55242919921875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "因は, サイバ", - "origin": [ - 364.219970703125, - 383.5193176269531 - ], - "bbox": [ - 364.219970703125, - 373.11932373046875, - 419.30859375, - 386.7380676269531 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 419.90997314453125, - 380.0296936035156 - ], - "bbox": [ - 419.90997314453125, - 373.26959228515625, - 428.672119140625, - 382.04888916015625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの研究倫理に関", - "origin": [ - 428.969970703125, - 383.4841613769531 - ], - "bbox": [ - 428.969970703125, - 373.08416748046875, - 552.71240234375, - 386.8882751464844 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - 0.002699990291148424 - ], - "bbox": [ - 316.3299865722656, - 372.77001953125, - 552.71240234375, - 386.8882751464844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "して判断する基準が不明確なことにある. 医学の分野で", - "origin": [ - 315.9200134277344, - 398.6700134277344 - ], - "bbox": [ - 315.9200134277344, - 388.1000061035156, - 552.6205444335938, - 401.7400207519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 388.1000061035156, - 552.6205444335938, - 401.7400207519531 - ] - } - ], - "tag": "rotate" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 315.6499938964844, - 403.1600036621094, - 552.4703979492188, - 461.3399963378906 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は古くから研究倫理に関する議論が行われており, ヘル", - "origin": [ - 316.1099853515625, - 413.55999755859375 - ], - "bbox": [ - 316.1099853515625, - 403.1600036621094, - 552.4703979492188, - 416.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.1099853515625, - 403.1600036621094, - 552.4703979492188, - 416.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "シンキ直言やベルモントレポ", - "origin": [ - 316.79998779296875, - 427.8900146484375 - ], - "bbox": [ - 316.79998779296875, - 417.4900207519531, - 438.49920654296875, - 431.5342712402344 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 439.2200012207031, - 424.8060607910156 - ], - "bbox": [ - 439.2200012207031, - 418.04595947265625, - 447.9821472167969, - 426.8235168457031 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トのような倫理指針を参", - "origin": [ - 448.3900146484375, - 428.3089904785156 - ], - "bbox": [ - 448.3900146484375, - 417.90899658203125, - 552.3309936523438, - 431.63885498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 316.79998779296875, - 417.4900207519531, - 552.3309936523438, - 431.63885498046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "考とした研究が行われてきた. サイバ", - "origin": [ - 315.6499938964844, - 443.3500061035156 - ], - "bbox": [ - 315.6499938964844, - 432.95001220703125, - 476.5285949707031, - 446.4200134277344 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 477.1299743652344, - 439.8600158691406 - ], - "bbox": [ - 477.1299743652344, - 433.09991455078125, - 485.8921203613281, - 441.8555603027344 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの", - "origin": [ - 486.1899719238281, - 443.5000305175781 - ], - "bbox": [ - 486.1899719238281, - 433.10003662109375, - 552.4277954101562, - 446.5700378417969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.6499938964844, - 432.95001220703125, - 552.4277954101562, - 446.5700378417969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "分野でもベルモントレポ", - "origin": [ - 315.8999938964844, - 458.2699890136719 - ], - "bbox": [ - 315.8999938964844, - 447.8699951171875, - 419.5220642089844, - 461.3399963378906 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 420.25, - 454.72998046875 - ], - "bbox": [ - 420.25, - 447.9698791503906, - 429.01214599609375, - 456.72552490234375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トの流れをくむメンロレポ", - "origin": [ - 429.4200134277344, - 458.2699890136719 - ], - "bbox": [ - 429.4200134277344, - 447.8699951171875, - 542.5513916015625, - 461.3399963378906 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8957", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 543.260009765625, - 454.6600036621094 - ], - "bbox": [ - 543.260009765625, - 447.89990234375, - 552.0221557617188, - 456.6555480957031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8999938964844, - 447.8699951171875, - 552.0221557617188, - 461.3399963378906 - ] - } - ], - "tag": "rotate" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 315.8900146484375, - 462.55999755859375, - 552.5120239257812, - 491.5899963378906 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ト[1]が2012年に登場したものの, それを用いた実践的", - "origin": [ - 315.8900146484375, - 472.9599914550781 - ], - "bbox": [ - 315.8900146484375, - 462.55999755859375, - 552.5120239257812, - 476.57421875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999973177909851, - 0.0022999937646090984 - ], - "bbox": [ - 315.8900146484375, - 462.55999755859375, - 552.5120239257812, - 476.57421875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な判断基準は不足している.", - "origin": [ - 315.94000244140625, - 488.5199890136719 - ], - "bbox": [ - 315.94000244140625, - 477.6279602050781, - 433.0832824707031, - 491.5899963378906 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999991238117218, - -0.004199963063001633 - ], - "bbox": [ - 315.94000244140625, - 477.6279602050781, - 433.0832824707031, - 491.5899963378906 - ] - } - ], - "tag": "rotate" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 315.67999267578125, - 537.5399780273438, - 552.77001953125, - 580.8400268554688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "認されないようにすることを目的としている. 倫理指針", - "origin": [ - 315.67999267578125, - 548.0999755859375 - ], - "bbox": [ - 315.67999267578125, - 537.5399780273438, - 552.7601928710938, - 551.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.67999267578125, - 537.5399780273438, - 552.7601928710938, - 551.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "構築には,おおよそ過去5年間のトップカンファレンス論", - "origin": [ - 315.7900085449219, - 563.1699829101562 - ], - "bbox": [ - 315.7900085449219, - 552.2012939453125, - 552.77001953125, - 566.239990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 315.7900085449219, - 552.2012939453125, - 552.77001953125, - 566.239990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "文のベストプラクティスを参考にした. トップカンファ", - "origin": [ - 316.1199951171875, - 577.77001953125 - ], - "bbox": [ - 316.1199951171875, - 567.3699951171875, - 552.1408081054688, - 580.8400268554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.1199951171875, - 567.3699951171875, - 552.1408081054688, - 580.8400268554688 - ] - } - ], - "tag": "rotate" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 315.7099914550781, - 582.3499755859375, - 552.3317260742188, - 596.158447265625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "レンスに採択されるような研究は先進的な問題を扱って", - "origin": [ - 315.7099914550781, - 592.75 - ], - "bbox": [ - 315.7099914550781, - 582.3499755859375, - 552.3317260742188, - 596.158447265625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - 0.002099995268508792 - ], - "bbox": [ - 315.7099914550781, - 582.3499755859375, - 552.3317260742188, - 596.158447265625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 29, - "type": 0, - "bbox": [ - 315.75, - 612.3299560546875, - 552.637939453125, - 656.0 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いることを意味する. 加えて, そのような論文は倫理的", - "origin": [ - 315.75, - 622.72998046875 - ], - "bbox": [ - 315.75, - 612.3299560546875, - 552.5070190429688, - 626.3445434570312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999973177909851, - 0.0022999937646090984 - ], - "bbox": [ - 315.75, - 612.3299560546875, - 552.5070190429688, - 626.3445434570312 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な議論が十分になされていることが多く, それらは倫理", - "origin": [ - 315.94000244140625, - 637.7999877929688 - ], - "bbox": [ - 315.94000244140625, - 627.3999633789062, - 552.637939453125, - 640.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.94000244140625, - 627.3999633789062, - 552.637939453125, - 640.8699951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "指針構築に役立てることができた. 本研究では962本の", - "origin": [ - 315.7900085449219, - 652.9299926757812 - ], - "bbox": [ - 315.7900085449219, - 641.911865234375, - 552.4376220703125, - 656.0 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - -0.002699990291148424 - ], - "bbox": [ - 315.7900085449219, - 641.911865234375, - 552.4376220703125, - 656.0 - ] - } - ], - "tag": "rotate" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 313.6400146484375, - 686.8599853515625, - 552.5499877929688, - 730.4400024414062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2カテゴリのみを対象として倫理指針を構築したが, 本", - "origin": [ - 313.6400146484375, - 697.260009765625 - ], - "bbox": [ - 313.6400146484375, - 686.8599853515625, - 552.239990234375, - 700.8848266601562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999958276748657, - 0.002899987855926156 - ], - "bbox": [ - 313.6400146484375, - 686.8599853515625, - 552.239990234375, - 700.8848266601562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "手法は残る3カテゴリにも適用可能な汎用性の甜いもの", - "origin": [ - 316.1199951171875, - 712.5 - ], - "bbox": [ - 316.1199951171875, - 702.0999755859375, - 552.4299926757812, - 715.9500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.1199951171875, - 702.0999755859375, - 552.4299926757812, - 715.9500122070312 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8956", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "となっている. 倫理指針は決定木の形をとっており, 研", - "origin": [ - 315.9200134277344, - 727.3699951171875 - ], - "bbox": [ - 315.9200134277344, - 716.969970703125, - 552.5499877929688, - 730.4400024414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 716.969970703125, - 552.5499877929688, - 730.4400024414062 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [ - { - "bbox": [ - 390, - 24, - 553, - 71 - ], - "image_path": "images/0_390_24_553_71.jpg", - "tag": "header" - } - ], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_1": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 59.33000183105469, - 52.41994857788086, - 296.0010070800781, - 111.12999725341797 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "提案手法である決定木の構築によって", - "origin": [ - 68.93000030517578, - 63.4000244140625 - ], - "bbox": [ - 68.93000030517578, - 52.900047302246094, - 229.6712188720703, - 66.80004119873047 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 229.9400177001953, - 59.1800537109375 - ], - "bbox": [ - 229.9400177001953, - 52.41994857788086, - 239.05966186523438, - 61.17558288574219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "定の網羅性を", - "origin": [ - 239.010009765625, - 63.36004638671875 - ], - "bbox": [ - 239.010009765625, - 52.960044860839844, - 296.0010070800781, - 66.43004608154297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.93000030517578, - 52.41994857788086, - 296.0010070800781, - 66.80004119873047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "実現する", - "origin": [ - 59.47999954223633, - 78.16998291015625 - ], - "bbox": [ - 59.47999954223633, - 67.76998138427734, - 97.39299011230469, - 81.23998260498047 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 97.44999694824219, - 74.05999755859375 - ], - "bbox": [ - 97.44999694824219, - 67.29989624023438, - 106.56964111328125, - 76.05552673339844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "方で,", - "origin": [ - 107.04999542236328, - 78.21002197265625 - ], - "bbox": [ - 107.04999542236328, - 67.81002044677734, - 133.1313934326172, - 81.28002166748047 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 133.1313934326172, - 78.21002197265625 - ], - "bbox": [ - 133.1313934326172, - 69.40994262695312, - 134.77999877929688, - 80.20555114746094 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 134.77999877929688, - 76.1700439453125 - ], - "bbox": [ - 134.77999877929688, - 69.40994262695312, - 143.7826385498047, - 78.16557312011719 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ストプラクティスの集積とのハイブ", - "origin": [ - 144.22999572753906, - 78.280029296875 - ], - "bbox": [ - 144.22999572753906, - 67.8800277709961, - 295.8009948730469, - 81.35002899169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47999954223633, - 67.29989624023438, - 295.8009948730469, - 81.35002899169922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "リッドなアプロ", - "origin": [ - 59.33000183105469, - 93.239990234375 - ], - "bbox": [ - 59.33000183105469, - 82.8399887084961, - 125.48460388183594, - 96.30998992919922 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 125.9000015258789, - 89.72998046875 - ], - "bbox": [ - 125.9000015258789, - 82.96987915039062, - 134.66213989257812, - 91.72550964355469 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "チには議論が不十分な領域が残ってい", - "origin": [ - 135.75, - 93.2099609375 - ], - "bbox": [ - 135.75, - 82.8099594116211, - 295.9599914550781, - 96.55998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33000183105469, - 82.8099594116211, - 295.9599914550781, - 96.55998992919922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ることを浮き彫りにした.", - "origin": [ - 59.33000183105469, - 108.05999755859375 - ], - "bbox": [ - 59.33000183105469, - 97.65999603271484, - 165.60760498046875, - 111.12999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33000183105469, - 97.65999603271484, - 165.60760498046875, - 111.12999725341797 - ] - }, - { - "spans": [ - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 173.1699981689453, - 106.0999755859375 - ], - "bbox": [ - 173.1699981689453, - 99.33987426757812, - 182.17263793945312, - 108.09550476074219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ストプラクティスにしても", - "origin": [ - 182.6199951171875, - 108.02996826171875 - ], - "bbox": [ - 182.6199951171875, - 97.62996673583984, - 295.9389953613281, - 111.09996795654297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.1699981689453, - 97.62996673583984, - 295.9389953613281, - 111.09996795654297 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 59.150001525878906, - 112.69002532958984, - 295.9977722167969, - 156.51995849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "更なる議論の成熟が期待されるものもあり, 現時点での", - "origin": [ - 59.529998779296875, - 123.09002685546875 - ], - "bbox": [ - 59.529998779296875, - 112.69002532958984, - 295.8245849609375, - 126.56999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 112.69002532958984, - 295.8245849609375, - 126.56999969482422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理指針は完成形ではなく, あくまでも手法の有用性を", - "origin": [ - 59.43000030517578, - 138.0999755859375 - ], - "bbox": [ - 59.43000030517578, - 127.6999740600586, - 295.9977722167969, - 141.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.43000030517578, - 127.6999740600586, - 295.9977722167969, - 141.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "示す", - "origin": [ - 59.150001525878906, - 152.8699951171875 - ], - "bbox": [ - 59.150001525878906, - 142.47000122070312, - 78.41560363769531, - 155.94000244140625 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 78.7300033569336, - 148.719970703125 - ], - "bbox": [ - 78.7300033569336, - 141.95986938476562, - 87.84963989257812, - 150.7154998779297 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "例であることを強調しておく.", - "origin": [ - 88.11000061035156, - 152.969970703125 - ], - "bbox": [ - 88.11000061035156, - 142.56997680664062, - 214.9416046142578, - 156.51995849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.150001525878906, - 141.95986938476562, - 214.9416046142578, - 156.51995849609375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.88999938964844, - 168.3934783935547, - 125.45219421386719, - 183.95298767089844 - ], - "lines": [ - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9661", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "2 ", - "origin": [ - 59.88999938964844, - 180.47998046875 - ], - "bbox": [ - 59.88999938964844, - 168.3934783935547, - 68.52649688720703, - 183.95298767089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.88999938964844, - 168.3934783935547, - 68.52649688720703, - 183.95298767089844 - ] - }, - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9661", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "先行研究", - "origin": [ - 79.7699966430664, - 180.47998046875 - ], - "bbox": [ - 79.7699966430664, - 168.3934783935547, - 125.45219421386719, - 183.95298767089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.7699966430664, - 168.3934783935547, - 125.45219421386719, - 183.95298767089844 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 59.689998626708984, - 191.06002807617188, - 295.9713439941406, - 219.6099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究倫理の綱領や基準は被験者実験を扱う医学や社会", - "origin": [ - 69.02999877929688, - 201.46002197265625 - ], - "bbox": [ - 69.02999877929688, - 191.06002807617188, - 295.9713439941406, - 204.530029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.02999877929688, - 191.06002807617188, - 295.9713439941406, - 204.530029296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "学の分野で発展した. 多くの倫理指針が人間の尊厳を守", - "origin": [ - 59.689998626708984, - 216.29998779296875 - ], - "bbox": [ - 59.689998626708984, - 205.89999389648438, - 295.9429931640625, - 219.6099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.689998626708984, - 205.89999389648438, - 295.9429931640625, - 219.6099853515625 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.369998931884766, - 385.0400085449219, - 296.07000732421875, - 413.69000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルモントレポ", - "origin": [ - 59.41999816894531, - 395.6000061035156 - ], - "bbox": [ - 59.41999816894531, - 385.20001220703125, - 115.69300079345703, - 398.6700134277344 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 116.41000366210938, - 391.9599914550781 - ], - "bbox": [ - 116.41000366210938, - 385.19989013671875, - 125.1721420288086, - 393.9555358886719 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トと呼ばれる研究倫理のガイドラインを", - "origin": [ - 125.69000244140625, - 395.44000244140625 - ], - "bbox": [ - 125.69000244140625, - 385.0400085449219, - 296.07000732421875, - 398.9700012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41999816894531, - 385.0400085449219, - 296.07000732421875, - 398.9700012207031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "発表した.", - "origin": [ - 59.369998931884766, - 410.6199951171875 - ], - "bbox": [ - 59.369998931884766, - 400.2200012207031, - 100.19440460205078, - 413.69000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.369998931884766, - 400.2200012207031, - 100.19440460205078, - 413.69000244140625 - ] - }, - { - "spans": [ - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 107.88999938964844, - 408.6399841308594 - ], - "bbox": [ - 107.88999938964844, - 401.8798828125, - 116.89263916015625, - 410.6355285644531 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルモントレポ", - "origin": [ - 117.2699966430664, - 410.40997314453125 - ], - "bbox": [ - 117.2699966430664, - 400.0099792480469, - 174.7429962158203, - 413.47998046875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 175.5800018310547, - 406.8899841308594 - ], - "bbox": [ - 175.5800018310547, - 400.1298828125, - 184.34213256835938, - 408.8855285644531 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トでは", - "origin": [ - 184.97999572753906, - 410.469970703125 - ], - "bbox": [ - 184.97999572753906, - 400.0699768066406, - 213.7817840576172, - 413.53997802734375 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 「", - "origin": [ - 213.7817840576172, - 410.469970703125 - ], - "bbox": [ - 213.7817840576172, - 401.3998718261719, - 218.54754638671875, - 412.46551513671875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "人格の尊重」,", - "origin": [ - 218.97999572753906, - 410.469970703125 - ], - "bbox": [ - 218.97999572753906, - 400.0699768066406, - 279.43157958984375, - 413.53997802734375 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 「", - "origin": [ - 279.43157958984375, - 410.469970703125 - ], - "bbox": [ - 279.43157958984375, - 401.2798767089844, - 286.237548828125, - 412.46551513671875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "恩", - "origin": [ - 286.6000061035156, - 410.469970703125 - ], - "bbox": [ - 286.6000061035156, - 400.0699768066406, - 295.94000244140625, - 413.53997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.88999938964844, - 400.0099792480469, - 295.94000244140625, - 413.53997802734375 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.41999816894531, - 415.1300048828125, - 296.07281494140625, - 443.4700012207031 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "恵」,", - "origin": [ - 59.41999816894531, - 425.5299987792969 - ], - "bbox": [ - 59.41999816894531, - 415.1300048828125, - 81.2959976196289, - 428.6000061035156 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 81.2959976196289, - 425.5299987792969 - ], - "bbox": [ - 81.2959976196289, - 416.389892578125, - 84.61000061035156, - 427.5255432128906 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 84.61000061035156, - 423.1499938964844 - ], - "bbox": [ - 84.61000061035156, - 416.389892578125, - 88.08755493164062, - 425.1455383300781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "正義」を軸にして研究倫理のあるべき姿を描写し", - "origin": [ - 88.44999694824219, - 425.6499938964844 - ], - "bbox": [ - 88.44999694824219, - 415.25, - 296.07281494140625, - 428.7200012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41999816894531, - 415.1300048828125, - 296.07281494140625, - 428.7200012207031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ている. これらは医学の臨床の現場では", - "origin": [ - 59.41999816894531, - 440.3999938964844 - ], - "bbox": [ - 59.41999816894531, - 430.0, - 230.30458068847656, - 443.4700012207031 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 230.30458068847656, - 440.3999938964844 - ], - "bbox": [ - 230.30458068847656, - 431.32989501953125, - 235.45999145507812, - 442.3955383300781 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 235.45999145507812, - 438.0899963378906 - ], - "bbox": [ - 235.45999145507812, - 431.32989501953125, - 238.9375457763672, - 440.0855407714844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "インフォ", - "origin": [ - 238.92999267578125, - 440.260009765625 - ], - "bbox": [ - 238.92999267578125, - 429.8600158691406, - 275.65240478515625, - 443.33001708984375 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 275.65240478515625, - 440.260009765625 - ], - "bbox": [ - 275.65240478515625, - 429.95989990234375, - 277.22998046875, - 442.25555419921875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 277.22998046875, - 436.7200012207031 - ], - "bbox": [ - 277.22998046875, - 429.95989990234375, - 285.99212646484375, - 438.7155456542969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ム", - "origin": [ - 286.1499938964844, - 440.2300109863281 - ], - "bbox": [ - 286.1499938964844, - 429.83001708984375, - 296.0199890136719, - 443.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41999816894531, - 429.83001708984375, - 296.0199890136719, - 443.4700012207031 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.439998626708984, - 475.010009765625, - 297.26068115234375, - 521.7999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "以上のような医学における研究倫理は被験者実験に重", - "origin": [ - 69.12000274658203, - 485.4100036621094 - ], - "bbox": [ - 69.12000274658203, - 475.010009765625, - 296.0119934082031, - 488.4800109863281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.12000274658203, - 475.010009765625, - 296.0119934082031, - 488.4800109863281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "きを置いているものの,サイバ", - "origin": [ - 59.529998779296875, - 500.20001220703125 - ], - "bbox": [ - 59.529998779296875, - 489.8000183105469, - 191.16079711914062, - 503.27001953125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 191.77000427246094, - 496.5400085449219 - ], - "bbox": [ - 191.77000427246094, - 489.7799072265625, - 200.53213500976562, - 498.5355529785156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティをはじめ", - "origin": [ - 201.260009765625, - 500.05999755859375 - ], - "bbox": [ - 201.260009765625, - 489.6600036621094, - 295.9410400390625, - 503.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 489.6600036621094, - 295.9410400390625, - 503.27001953125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とした", - "origin": [ - 59.439998626708984, - 515.010009765625 - ], - "bbox": [ - 59.439998626708984, - 504.6100158691406, - 87.79879760742188, - 518.0800170898438 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ICT (Information Communication Technology) ", - "origin": [ - 87.79879760742188, - 515.010009765625 - ], - "bbox": [ - 87.79879760742188, - 504.4900207519531, - 297.26068115234375, - 521.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.439998626708984, - 504.4900207519531, - 297.26068115234375, - 521.7999877929688 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.43000030517578, - 519.7799682617188, - 296.0760192871094, - 551.9099731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に関する研究を実施する際にも重視すべき内容を多分に", - "origin": [ - 59.43000030517578, - 530.1799926757812 - ], - "bbox": [ - 59.43000030517578, - 519.7799682617188, - 295.9416198730469, - 533.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.43000030517578, - 519.7799682617188, - 295.9416198730469, - 533.25 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "含んでいる. 実際,", - "origin": [ - 59.439998626708984, - 545.1199951171875 - ], - "bbox": [ - 59.439998626708984, - 534.719970703125, - 143.46340942382812, - 548.1900024414062 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ACM", - "origin": [ - 143.46340942382812, - 545.1199951171875 - ], - "bbox": [ - 143.46340942382812, - 534.5599975585938, - 169.1623992919922, - 551.9099731445312 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " や", - "origin": [ - 169.1623992919922, - 544.77001953125 - ], - "bbox": [ - 169.1623992919922, - 534.3699951171875, - 180.96998596191406, - 548.1799926757812 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " IEEE", - "origin": [ - 180.96998596191406, - 545.1099853515625 - ], - "bbox": [ - 180.96998596191406, - 534.5899658203125, - 207.69796752929688, - 551.8999633789062 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " が掲げる倫理綱領で", - "origin": [ - 207.69796752929688, - 544.7999877929688 - ], - "bbox": [ - 207.69796752929688, - 534.3999633789062, - 296.0760192871094, - 547.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.439998626708984, - 534.3699951171875, - 296.0760192871094, - 551.9099731445312 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.36000061035156, - 549.6499633789062, - 296.2300109863281, - 577.9400024414062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "も他社に害をなさないことや社会に貢献すること,誠実", - "origin": [ - 59.36000061035156, - 560.0499877929688 - ], - "bbox": [ - 59.36000061035156, - 549.6499633789062, - 296.2300109863281, - 563.1199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36000061035156, - 549.6499633789062, - 296.2300109863281, - 563.1199951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "であることなどを会員に求めている. これらは抽象的な", - "origin": [ - 59.43000030517578, - 574.8699951171875 - ], - "bbox": [ - 59.43000030517578, - 564.469970703125, - 296.0282897949219, - 577.9400024414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.43000030517578, - 564.469970703125, - 296.0282897949219, - 577.9400024414062 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 59.40999984741211, - 579.5899658203125, - 296.1070251464844, - 641.1799926757812 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "概念ではあるが,医学の現場で形作られた倫理指針と同", - "origin": [ - 59.40999984741211, - 589.989990234375 - ], - "bbox": [ - 59.40999984741211, - 579.5899658203125, - 296.0308837890625, - 593.0599975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 579.5899658203125, - 296.0308837890625, - 593.0599975585938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "じ目的を持つことがわかる.", - "origin": [ - 59.40999984741211, - 604.5700073242188 - ], - "bbox": [ - 59.40999984741211, - 594.1699829101562, - 176.52610778808594, - 608.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 594.1699829101562, - 176.52610778808594, - 608.0499877929688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "ICT", - "origin": [ - 68.94999694824219, - 619.75 - ], - "bbox": [ - 68.94999694824219, - 609.5399780273438, - 86.0770034790039, - 626.5399780273438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " に関するより包括的な倫理指針として", - "origin": [ - 86.0770034790039, - 619.75 - ], - "bbox": [ - 86.0770034790039, - 609.3499755859375, - 261.1087951660156, - 622.8200073242188 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " Ethical", - "origin": [ - 261.1087951660156, - 619.75 - ], - "bbox": [ - 261.1087951660156, - 609.5399780273438, - 296.1070251464844, - 626.5399780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.94999694824219, - 609.3499755859375, - 296.1070251464844, - 626.5399780273438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Decision-Making", - "origin": [ - 59.529998779296875, - 634.3900146484375 - ], - "bbox": [ - 59.529998779296875, - 624.1799926757812, - 131.58477783203125, - 641.1799926757812 - ] - }, - { - "size": 6.000100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9656", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 皿", - "origin": [ - 131.58477783203125, - 634.3900146484375 - ], - "bbox": [ - 131.58477783203125, - 628.14990234375, - 144.8501739501953, - 636.2320556640625 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "d Internet Research", - "origin": [ - 144.63999938964844, - 634.3900146484375 - ], - "bbox": [ - 144.63999938964844, - 624.1799926757812, - 228.99649047851562, - 641.1799926757812 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " やメンロレポ", - "origin": [ - 228.99649047851562, - 634.3900146484375 - ], - "bbox": [ - 228.99649047851562, - 623.989990234375, - 286.36761474609375, - 637.7300415039062 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 286.7200012207031, - 631.0899658203125 - ], - "bbox": [ - 286.7200012207031, - 624.329833984375, - 295.4821472167969, - 633.0855102539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 623.989990234375, - 295.4821472167969, - 641.1799926757812 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 59.439998626708984, - 639.22998046875, - 295.1369934082031, - 656.469970703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ト", - "origin": [ - 59.439998626708984, - 649.6799926757812 - ], - "bbox": [ - 59.439998626708984, - 639.2799682617188, - 68.87999725341797, - 652.75 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " [1]", - "origin": [ - 68.87999725341797, - 649.6799926757812 - ], - "bbox": [ - 68.87999725341797, - 639.469970703125, - 81.6701889038086, - 656.469970703125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " がある. これらは先に議論された倫理指針を", - "origin": [ - 81.6701889038086, - 649.6799926757812 - ], - "bbox": [ - 81.6701889038086, - 639.2799682617188, - 275.7330017089844, - 652.75 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ICT", - "origin": [ - 275.7330017089844, - 649.6799926757812 - ], - "bbox": [ - 275.7330017089844, - 639.22998046875, - 295.1369934082031, - 656.469970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.439998626708984, - 639.22998046875, - 295.1369934082031, - 656.469970703125 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 59.40999984741211, - 654.3199462890625, - 295.9364013671875, - 667.7899780273438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の観点から見直し, 必要な項目を付け加え, 修正してい", - "origin": [ - 59.40999984741211, - 664.719970703125 - ], - "bbox": [ - 59.40999984741211, - 654.3199462890625, - 295.9364013671875, - 667.7899780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 654.3199462890625, - 295.9364013671875, - 667.7899780273438 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 59.4900016784668, - 699.1399536132812, - 296.0495910644531, - 727.5599975585938 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ステムとなる場合もあるため,それらに対する影響も併", - "origin": [ - 59.4900016784668, - 709.5399780273438 - ], - "bbox": [ - 59.4900016784668, - 699.1399536132812, - 296.0495910644531, - 712.6099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.4900016784668, - 699.1399536132812, - 296.0495910644531, - 712.6099853515625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "せて考慮する必要がある. また,研究対象と相互接続す", - "origin": [ - 59.529998779296875, - 724.489990234375 - ], - "bbox": [ - 59.529998779296875, - 713.8899536132812, - 295.9972229003906, - 727.5599975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 713.8899536132812, - 295.9972229003906, - 727.5599975585938 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 59.33000183105469, - 728.989990234375, - 296.02960205078125, - 742.4600219726562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るシステムやその提供者のように直接的な研究対象でな", - "origin": [ - 59.33000183105469, - 739.3900146484375 - ], - "bbox": [ - 59.33000183105469, - 728.989990234375, - 296.02960205078125, - 742.4600219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33000183105469, - 728.989990234375, - 296.02960205078125, - 742.4600219726562 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 316.0, - 82.4599838256836, - 552.489990234375, - 99.9499740600586 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は", - "origin": [ - 316.0, - 93.15997314453125 - ], - "bbox": [ - 316.0, - 82.75997161865234, - 325.4800109863281, - 96.22997283935547 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " Ethical Decision-Making and Internet Research", - "origin": [ - 325.4800109863281, - 93.15997314453125 - ], - "bbox": [ - 325.4800109863281, - 82.64998626708984, - 531.5065307617188, - 99.9499740600586 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " を発", - "origin": [ - 531.5065307617188, - 92.8599853515625 - ], - "bbox": [ - 531.5065307617188, - 82.4599838256836, - 552.489990234375, - 95.92998504638672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0, - 82.4599838256836, - 552.489990234375, - 99.9499740600586 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.67999267578125, - 127.51998138427734, - 552.5909423828125, - 174.5199737548828 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "する技術や多様な背景に対して柔軟性を維持することを", - "origin": [ - 315.8599853515625, - 138.1300048828125 - ], - "bbox": [ - 315.8599853515625, - 127.51998138427734, - 552.5637817382812, - 141.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8599853515625, - 127.51998138427734, - 552.5637817382812, - 141.20001220703125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "目指しているため,具体的な議論を避けた汎用的な倫理", - "origin": [ - 315.7699890136719, - 153.09002685546875 - ], - "bbox": [ - 315.7699890136719, - 142.69003295898438, - 552.5909423828125, - 156.1600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7699890136719, - 142.69003295898438, - 552.5909423828125, - 156.1600341796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ガイドラインとなっている.", - "origin": [ - 315.67999267578125, - 167.72998046875 - ], - "bbox": [ - 315.67999267578125, - 157.32998657226562, - 435.0000305175781, - 170.79998779296875 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 2012", - "origin": [ - 435.0000305175781, - 167.72998046875 - ], - "bbox": [ - 435.0000305175781, - 157.5199737548828, - 462.5567626953125, - 174.5199737548828 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 年に登場したメンロ", - "origin": [ - 462.5567626953125, - 167.72998046875 - ], - "bbox": [ - 462.5567626953125, - 157.32998657226562, - 552.3099975585938, - 170.79998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.67999267578125, - 157.32998657226562, - 552.3099975585938, - 174.5199737548828 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 315.8500061035156, - 172.36001586914062, - 552.5258178710938, - 200.92999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "レポ", - "origin": [ - 315.8500061035156, - 182.760009765625 - ], - "bbox": [ - 315.8500061035156, - 172.36001586914062, - 334.5776062011719, - 185.83001708984375 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 335.0500183105469, - 179.3699951171875 - ], - "bbox": [ - 335.0500183105469, - 172.60989379882812, - 343.8121643066406, - 181.3655242919922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トは", - "origin": [ - 344.33001708984375, - 182.969970703125 - ], - "bbox": [ - 344.33001708984375, - 172.56997680664062, - 363.3000183105469, - 186.03997802734375 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 363.510009765625, - 181.01995849609375 - ], - "bbox": [ - 363.510009765625, - 174.25985717773438, - 372.51263427734375, - 183.01548767089844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルモントレポ", - "origin": [ - 372.77001953125, - 182.79998779296875 - ], - "bbox": [ - 372.77001953125, - 172.39999389648438, - 429.04302978515625, - 185.8699951171875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 429.760009765625, - 179.28997802734375 - ], - "bbox": [ - 429.760009765625, - 172.52987670898438, - 438.52215576171875, - 181.28550720214844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トの流れを色濃く汲んでい", - "origin": [ - 439.0400085449219, - 182.92999267578125 - ], - "bbox": [ - 439.0400085449219, - 172.52999877929688, - 552.5258178710938, - 186.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8500061035156, - 172.36001586914062, - 552.5258178710938, - 186.03997802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る.", - "origin": [ - 315.8900146484375, - 197.8599853515625 - ], - "bbox": [ - 315.8900146484375, - 187.45999145507812, - 327.726806640625, - 200.92999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8900146484375, - 187.45999145507812, - 327.726806640625, - 200.92999267578125 - ] - }, - { - "spans": [ - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 335.4100036621094, - 195.94000244140625 - ], - "bbox": [ - 335.4100036621094, - 189.17990112304688, - 344.4126281738281, - 197.93553161621094 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルモントレポ", - "origin": [ - 344.7900085449219, - 197.6199951171875 - ], - "bbox": [ - 344.7900085449219, - 187.22000122070312, - 402.14300537109375, - 200.69000244140625 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 403.1000061035156, - 194.20001220703125 - ], - "bbox": [ - 403.1000061035156, - 187.43991088867188, - 411.8621520996094, - 196.19554138183594 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トの中核をなしていた", - "origin": [ - 412.6199951171875, - 197.6600341796875 - ], - "bbox": [ - 412.6199951171875, - 187.26004028320312, - 509.0234069824219, - 200.73004150390625 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 「", - "origin": [ - 509.0234069824219, - 197.6600341796875 - ], - "bbox": [ - 509.0234069824219, - 188.58993530273438, - 513.74755859375, - 199.6555633544922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "人格の尊", - "origin": [ - 514.1799926757812, - 197.6900634765625 - ], - "bbox": [ - 514.1799926757812, - 187.29006958007812, - 552.44140625, - 200.76007080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4100036621094, - 187.22000122070312, - 552.44140625, - 200.76007080078125 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 315.9700012207031, - 247.29000854492188, - 552.4951782226562, - 275.70001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "のの, その倫理的な判断は読者らにゆだねられている.", - "origin": [ - 315.9700012207031, - 257.69000244140625 - ], - "bbox": [ - 315.9700012207031, - 247.29000854492188, - 548.1920166015625, - 260.760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 247.29000854492188, - 548.1920166015625, - 260.760009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究では過去のサイバ", - "origin": [ - 325.6700134277344, - 272.6300048828125 - ], - "bbox": [ - 325.6700134277344, - 262.2300109863281, - 429.1208190917969, - 275.70001220703125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 429.7300109863281, - 268.9100341796875 - ], - "bbox": [ - 429.7300109863281, - 262.1499328613281, - 438.4921569824219, - 270.90557861328125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する研究", - "origin": [ - 439.2200012207031, - 272.510009765625 - ], - "bbox": [ - 439.2200012207031, - 262.1100158691406, - 552.4951782226562, - 275.58001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.6700134277344, - 262.1100158691406, - 552.4951782226562, - 275.70001220703125 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 315.9599914550781, - 276.9200134277344, - 555.166748046875, - 335.2900085449219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ボ例を参考にし倫理的な問題を洗い出しただけでなく,", - "origin": [ - 315.9599914550781, - 287.55999755859375 - ], - "bbox": [ - 315.9599914550781, - 276.9200134277344, - 555.166748046875, - 290.70001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 276.9200134277344, - 555.166748046875, - 290.70001220703125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究活動を行うどの時点でどのような倫理的な問題が発", - "origin": [ - 315.989990234375, - 302.510009765625 - ], - "bbox": [ - 315.989990234375, - 292.1100158691406, - 552.4931030273438, - 305.58001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 292.1100158691406, - 552.4931030273438, - 305.58001708984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "生しうるのかを明らかにした. 倫理的な判断は決定木の", - "origin": [ - 315.989990234375, - 317.3999938964844 - ], - "bbox": [ - 315.989990234375, - 307.0, - 552.3899536132812, - 320.4700012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 307.0, - 552.3899536132812, - 320.4700012207031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "形で表現されている. 研究者らが行おうとしている研究", - "origin": [ - 315.9700012207031, - 332.2200012207031 - ], - "bbox": [ - 315.9700012207031, - 321.82000732421875, - 552.507080078125, - 335.2900085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 321.82000732421875, - 552.507080078125, - 335.2900085449219 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 316.07000732421875, - 336.8600158691406, - 552.52978515625, - 350.33001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "活動に対して特定の手法を用いようとしたとき, 彼らは", - "origin": [ - 316.07000732421875, - 347.260009765625 - ], - "bbox": [ - 316.07000732421875, - 336.8600158691406, - 552.52978515625, - 350.33001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.07000732421875, - 336.8600158691406, - 552.52978515625, - 350.33001708984375 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 315.8900146484375, - 351.92999267578125, - 555.170166015625, - 410.07000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "決定木を辿ることで当該手法が倫理的な議論を必要とす", - "origin": [ - 315.9700012207031, - 362.3299865722656 - ], - "bbox": [ - 315.9700012207031, - 351.92999267578125, - 552.4324340820312, - 365.3999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 351.92999267578125, - 552.4324340820312, - 365.3999938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るか否かを判断できる.", - "origin": [ - 315.8900146484375, - 377.1199951171875 - ], - "bbox": [ - 315.8900146484375, - 366.7200012207031, - 413.8789978027344, - 380.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8900146484375, - 366.7200012207031, - 413.8789978027344, - 380.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究の段階ごとに倫理的な選択肢を提示することで,", - "origin": [ - 325.5899963378906, - 392.1199951171875 - ], - "bbox": [ - 325.5899963378906, - 381.7200012207031, - 555.170166015625, - 395.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5899963378906, - 381.7200012207031, - 555.170166015625, - 395.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "先行研究に比べ具体的な倫理の議論を行うことが可能と", - "origin": [ - 316.04998779296875, - 407.0 - ], - "bbox": [ - 316.04998779296875, - 396.6000061035156, - 552.4815673828125, - 410.07000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.04998779296875, - 396.6000061035156, - 552.4815673828125, - 410.07000732421875 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 316.3299865722656, - 482.447998046875, - 381.677978515625, - 498.6839904785156 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9660", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "3 ", - "origin": [ - 316.3299865722656, - 495.05999755859375 - ], - "bbox": [ - 316.3299865722656, - 482.447998046875, - 325.3299865722656, - 498.6839904785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.3299865722656, - 482.447998046875, - 325.3299865722656, - 498.6839904785156 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9660", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "提案手法", - "origin": [ - 336.29998779296875, - 495.05999755859375 - ], - "bbox": [ - 336.29998779296875, - 482.447998046875, - 381.677978515625, - 498.6839904785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.29998779296875, - 482.447998046875, - 381.677978515625, - 498.6839904785156 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 325.6700134277344, - 505.1999816894531, - 552.77001953125, - 518.8600463867188 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究では過去のトップカンファレンスの論文を参考", - "origin": [ - 325.6700134277344, - 515.7900390625 - ], - "bbox": [ - 325.6700134277344, - 505.1999816894531, - 552.77001953125, - 518.8600463867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.6700134277344, - 505.1999816894531, - 552.77001953125, - 518.8600463867188 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 315.9599914550781, - 565.2799682617188, - 552.510009765625, - 578.75 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "時に倫理的な問題を扱う機会が多いことを意味する. そ", - "origin": [ - 315.9599914550781, - 575.6799926757812 - ], - "bbox": [ - 315.9599914550781, - 565.2799682617188, - 552.510009765625, - 578.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 565.2799682617188, - 552.510009765625, - 578.75 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 315.8599853515625, - 580.18994140625, - 552.6029663085938, - 668.5399780273438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "のような論文は倫理的な議論が十分になされていること", - "origin": [ - 315.9700012207031, - 590.969970703125 - ], - "bbox": [ - 315.9700012207031, - 580.18994140625, - 552.4900512695312, - 594.1199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 580.18994140625, - 552.4900512695312, - 594.1199951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が多く,それらは倫理指針構築に役立てることができた.", - "origin": [ - 315.989990234375, - 605.6300048828125 - ], - "bbox": [ - 315.989990234375, - 595.22998046875, - 549.9680786132812, - 608.9100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 595.22998046875, - 549.9680786132812, - 608.9100341796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 325.4800109863281, - 620.5499877929688 - ], - "bbox": [ - 325.4800109863281, - 610.1499633789062, - 353.64080810546875, - 623.6199951171875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 354.25, - 617.0700073242188 - ], - "bbox": [ - 354.25, - 610.3098754882812, - 363.01214599609375, - 619.0655517578125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究の中では分野ごとに,倫理", - "origin": [ - 363.6199951171875, - 620.5499877929688 - ], - "bbox": [ - 363.6199951171875, - 610.1499633789062, - 552.6029663085938, - 623.6199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4800109863281, - 610.1499633789062, - 552.6029663085938, - 623.6199951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "的な問題が生じることがある. そこでまずは様々な論文", - "origin": [ - 315.989990234375, - 635.47998046875 - ], - "bbox": [ - 315.989990234375, - 625.0799560546875, - 552.4929809570312, - 638.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 625.0799560546875, - 552.4929809570312, - 638.5499877929688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を紐解き,その研究が関連している研究課題を明らかに", - "origin": [ - 315.8900146484375, - 650.4100341796875 - ], - "bbox": [ - 315.8900146484375, - 640.010009765625, - 552.4500122070312, - 653.6799926757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8900146484375, - 640.010009765625, - 552.4500122070312, - 653.6799926757812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "する必要がある. 提案手法では,まず論文の収集を行っ", - "origin": [ - 315.8599853515625, - 665.469970703125 - ], - "bbox": [ - 315.8599853515625, - 654.6900024414062, - 552.4599609375, - 668.5399780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8599853515625, - 654.6900024414062, - 552.4599609375, - 668.5399780273438 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 330.239990234375, - 730.9120483398438, - 469.78094482421875, - 741.552001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-9657", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "1 Institutional/Internal Review Board ", - "origin": [ - 330.239990234375, - 738.9600219726562 - ], - "bbox": [ - 330.239990234375, - 730.9120483398438, - 469.78094482421875, - 741.552001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.239990234375, - 730.9120483398438, - 469.78094482421875, - 741.552001953125 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 59.150001525878906, - 22.959985733032227, - 295.9977722167969, - 219.6099853515625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.67999267578125, - 22.959985733032227, - 553.8812866210938, - 219.6099853515625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 247.29000854492188, - 612.0, - 350.33001708984375 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 59.33000183105469, - 351.92999267578125, - 297.26068115234375, - 742.4600219726562 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.8599853515625, - 351.92999267578125, - 555.170166015625, - 742.4600219726562 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 59.54999923706055, - 23.079980850219727, - 295.739990234375, - 51.78997039794922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究活動において倫理的に考慮すべき点を各段階ごとに明", - "origin": [ - 59.599998474121094, - 33.47998046875 - ], - "bbox": [ - 59.599998474121094, - 23.079980850219727, - 295.739990234375, - 36.54998016357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.599998474121094, - 23.079980850219727, - 295.739990234375, - 36.54998016357422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "確に示している.", - "origin": [ - 59.54999923706055, - 48.719970703125 - ], - "bbox": [ - 59.54999923706055, - 37.593284606933594, - 128.6468048095703, - 51.78997039794922 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999193549156189, - -0.012698975391685963 - ], - "bbox": [ - 59.54999923706055, - 37.593284606933594, - 128.6468048095703, - 51.78997039794922 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 59.33000183105469, - 52.41994857788086, - 296.0010070800781, - 111.12999725341797 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "提案手法である決定木の構築によって", - "origin": [ - 68.93000030517578, - 63.4000244140625 - ], - "bbox": [ - 68.93000030517578, - 52.900047302246094, - 229.6712188720703, - 66.80004119873047 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 229.9400177001953, - 59.1800537109375 - ], - "bbox": [ - 229.9400177001953, - 52.41994857788086, - 239.05966186523438, - 61.17558288574219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "定の網羅性を", - "origin": [ - 239.010009765625, - 63.36004638671875 - ], - "bbox": [ - 239.010009765625, - 52.960044860839844, - 296.0010070800781, - 66.43004608154297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.93000030517578, - 52.41994857788086, - 296.0010070800781, - 66.80004119873047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "実現する", - "origin": [ - 59.47999954223633, - 78.16998291015625 - ], - "bbox": [ - 59.47999954223633, - 67.76998138427734, - 97.39299011230469, - 81.23998260498047 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 97.44999694824219, - 74.05999755859375 - ], - "bbox": [ - 97.44999694824219, - 67.29989624023438, - 106.56964111328125, - 76.05552673339844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "方で,", - "origin": [ - 107.04999542236328, - 78.21002197265625 - ], - "bbox": [ - 107.04999542236328, - 67.81002044677734, - 133.1313934326172, - 81.28002166748047 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 133.1313934326172, - 78.21002197265625 - ], - "bbox": [ - 133.1313934326172, - 69.40994262695312, - 134.77999877929688, - 80.20555114746094 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 134.77999877929688, - 76.1700439453125 - ], - "bbox": [ - 134.77999877929688, - 69.40994262695312, - 143.7826385498047, - 78.16557312011719 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ストプラクティスの集積とのハイブ", - "origin": [ - 144.22999572753906, - 78.280029296875 - ], - "bbox": [ - 144.22999572753906, - 67.8800277709961, - 295.8009948730469, - 81.35002899169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47999954223633, - 67.29989624023438, - 295.8009948730469, - 81.35002899169922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "リッドなアプロ", - "origin": [ - 59.33000183105469, - 93.239990234375 - ], - "bbox": [ - 59.33000183105469, - 82.8399887084961, - 125.48460388183594, - 96.30998992919922 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 125.9000015258789, - 89.72998046875 - ], - "bbox": [ - 125.9000015258789, - 82.96987915039062, - 134.66213989257812, - 91.72550964355469 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "チには議論が不十分な領域が残ってい", - "origin": [ - 135.75, - 93.2099609375 - ], - "bbox": [ - 135.75, - 82.8099594116211, - 295.9599914550781, - 96.55998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33000183105469, - 82.8099594116211, - 295.9599914550781, - 96.55998992919922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ることを浮き彫りにした.", - "origin": [ - 59.33000183105469, - 108.05999755859375 - ], - "bbox": [ - 59.33000183105469, - 97.65999603271484, - 165.60760498046875, - 111.12999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33000183105469, - 97.65999603271484, - 165.60760498046875, - 111.12999725341797 - ] - }, - { - "spans": [ - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 173.1699981689453, - 106.0999755859375 - ], - "bbox": [ - 173.1699981689453, - 99.33987426757812, - 182.17263793945312, - 108.09550476074219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ストプラクティスにしても", - "origin": [ - 182.6199951171875, - 108.02996826171875 - ], - "bbox": [ - 182.6199951171875, - 97.62996673583984, - 295.9389953613281, - 111.09996795654297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.1699981689453, - 97.62996673583984, - 295.9389953613281, - 111.09996795654297 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 59.150001525878906, - 112.69002532958984, - 295.9977722167969, - 156.51995849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "更なる議論の成熟が期待されるものもあり, 現時点での", - "origin": [ - 59.529998779296875, - 123.09002685546875 - ], - "bbox": [ - 59.529998779296875, - 112.69002532958984, - 295.8245849609375, - 126.56999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 112.69002532958984, - 295.8245849609375, - 126.56999969482422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理指針は完成形ではなく, あくまでも手法の有用性を", - "origin": [ - 59.43000030517578, - 138.0999755859375 - ], - "bbox": [ - 59.43000030517578, - 127.6999740600586, - 295.9977722167969, - 141.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.43000030517578, - 127.6999740600586, - 295.9977722167969, - 141.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "示す", - "origin": [ - 59.150001525878906, - 152.8699951171875 - ], - "bbox": [ - 59.150001525878906, - 142.47000122070312, - 78.41560363769531, - 155.94000244140625 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 78.7300033569336, - 148.719970703125 - ], - "bbox": [ - 78.7300033569336, - 141.95986938476562, - 87.84963989257812, - 150.7154998779297 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "例であることを強調しておく.", - "origin": [ - 88.11000061035156, - 152.969970703125 - ], - "bbox": [ - 88.11000061035156, - 142.56997680664062, - 214.9416046142578, - 156.51995849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.150001525878906, - 141.95986938476562, - 214.9416046142578, - 156.51995849609375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.88999938964844, - 168.3934783935547, - 125.45219421386719, - 183.95298767089844 - ], - "lines": [ - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9661", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "2 ", - "origin": [ - 59.88999938964844, - 180.47998046875 - ], - "bbox": [ - 59.88999938964844, - 168.3934783935547, - 68.52649688720703, - 183.95298767089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.88999938964844, - 168.3934783935547, - 68.52649688720703, - 183.95298767089844 - ] - }, - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9661", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "先行研究", - "origin": [ - 79.7699966430664, - 180.47998046875 - ], - "bbox": [ - 79.7699966430664, - 168.3934783935547, - 125.45219421386719, - 183.95298767089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.7699966430664, - 168.3934783935547, - 125.45219421386719, - 183.95298767089844 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 59.689998626708984, - 191.06002807617188, - 295.9713439941406, - 219.6099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究倫理の綱領や基準は被験者実験を扱う医学や社会", - "origin": [ - 69.02999877929688, - 201.46002197265625 - ], - "bbox": [ - 69.02999877929688, - 191.06002807617188, - 295.9713439941406, - 204.530029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.02999877929688, - 191.06002807617188, - 295.9713439941406, - 204.530029296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "学の分野で発展した. 多くの倫理指針が人間の尊厳を守", - "origin": [ - 59.689998626708984, - 216.29998779296875 - ], - "bbox": [ - 59.689998626708984, - 205.89999389648438, - 295.9429931640625, - 219.6099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.689998626708984, - 205.89999389648438, - 295.9429931640625, - 219.6099853515625 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 59.33000183105469, - 220.74002075195312, - 296.06719970703125, - 252.668212890625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ることに議論の重点を置いているのは,その歴史的な背", - "origin": [ - 59.33000183105469, - 231.1400146484375 - ], - "bbox": [ - 59.33000183105469, - 220.74002075195312, - 296.06719970703125, - 234.73101806640625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - 0.002199994632974267 - ], - "bbox": [ - 59.33000183105469, - 220.74002075195312, - 296.06719970703125, - 234.73101806640625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "景と関係がある. 倫理指針の始まりは", - "origin": [ - 59.38999938964844, - 246.5 - ], - "bbox": [ - 59.38999938964844, - 235.4782257080078, - 223.02040100097656, - 249.57000732421875 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 1947", - "origin": [ - 223.02040100097656, - 245.8782196044922 - ], - "bbox": [ - 223.02040100097656, - 235.5822296142578, - 245.64739990234375, - 252.668212890625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 年のニュル", - "origin": [ - 245.64739990234375, - 245.792236328125 - ], - "bbox": [ - 245.64739990234375, - 235.20156860351562, - 295.82562255859375, - 248.86224365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999927282333374, - -0.0037999728228896856 - ], - "bbox": [ - 59.38999938964844, - 235.20156860351562, - 295.82562255859375, - 252.668212890625 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 59.36000061035156, - 250.38290405273438, - 295.95458984375, - 297.6400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ン", - "origin": [ - 59.36000061035156, - 260.8499755859375 - ], - "bbox": [ - 59.36000061035156, - 250.44998168945312, - 69.0, - 263.94696044921875 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 69.01000213623047, - 259.0369873046875 - ], - "bbox": [ - 69.01000213623047, - 252.27688598632812, - 78.01264190673828, - 261.0577392578125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルク綱領まで遡る. ここでは被験者の自発的な同意", - "origin": [ - 78.27000427246094, - 260.78289794921875 - ], - "bbox": [ - 78.27000427246094, - 250.38290405273438, - 295.83941650390625, - 264.4620056152344 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999960660934448, - 0.0027999889571219683 - ], - "bbox": [ - 59.36000061035156, - 250.38290405273438, - 295.83941650390625, - 264.4620056152344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "やリスクと利益の解析, 後に影響のない範囲で実験を取", - "origin": [ - 59.41999816894531, - 276.1199951171875 - ], - "bbox": [ - 59.41999816894531, - 265.7200012207031, - 295.95458984375, - 279.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41999816894531, - 265.7200012207031, - 295.95458984375, - 279.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "り下げる権利を掲げている.", - "origin": [ - 59.880001068115234, - 290.8500061035156 - ], - "bbox": [ - 59.880001068115234, - 280.45001220703125, - 178.1192169189453, - 293.9200134277344 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 1964", - "origin": [ - 178.1192169189453, - 290.8500061035156 - ], - "bbox": [ - 178.1192169189453, - 280.6400146484375, - 206.09161376953125, - 297.6400146484375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 年, フィンランドの", - "origin": [ - 206.09161376953125, - 290.8500061035156 - ], - "bbox": [ - 206.09161376953125, - 280.45001220703125, - 295.8269958496094, - 293.9200134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.880001068115234, - 280.45001220703125, - 295.8269958496094, - 297.6400146484375 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 59.40999984741211, - 295.1300048828125, - 296.1628112792969, - 354.1841735839844 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ヘルシンキ宣言ではニュルン", - "origin": [ - 59.650001525878906, - 305.5299987792969 - ], - "bbox": [ - 59.650001525878906, - 295.1300048828125, - 182.88778686523438, - 309.0436706542969 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 183.01998901367188, - 303.8541564941406 - ], - "bbox": [ - 183.01998901367188, - 297.09405517578125, - 192.0226287841797, - 305.8821105957031 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルク綱領に加え,被験者", - "origin": [ - 192.2799835205078, - 305.7774963378906 - ], - "bbox": [ - 192.2799835205078, - 295.37750244140625, - 296.06036376953125, - 309.22113037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999935030937195, - 0.003599976422265172 - ], - "bbox": [ - 59.650001525878906, - 295.1300048828125, - 296.06036376953125, - 309.22113037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の利益が公益よりも優先されるべきことや,すべての被", - "origin": [ - 59.40999984741211, - 320.8699951171875 - ], - "bbox": [ - 59.40999984741211, - 310.4700012207031, - 296.1628112792969, - 323.94000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 310.4700012207031, - 296.1628112792969, - 323.94000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "験者が十分な扱いを受けることが追加されたことで,よ", - "origin": [ - 59.650001525878906, - 335.8699951171875 - ], - "bbox": [ - 59.650001525878906, - 325.4700012207031, - 295.8432312011719, - 338.94000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.650001525878906, - 325.4700012207031, - 295.8432312011719, - 338.94000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "り柔軟かつ丁寧な被験者実験が行われるようになった.", - "origin": [ - 59.43000030517578, - 350.739990234375 - ], - "bbox": [ - 59.43000030517578, - 340.1081848144531, - 293.4169921875, - 354.1841735839844 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - -0.002699990291148424 - ], - "bbox": [ - 59.43000030517578, - 340.1081848144531, - 293.4169921875, - 354.1841735839844 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 59.25, - 355.08953857421875, - 295.9240417480469, - 383.8399963378906 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "その後", - "origin": [ - 59.380001068115234, - 365.69000244140625 - ], - "bbox": [ - 59.380001068115234, - 355.2900085449219, - 88.05680084228516, - 368.8431701660156 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 1974", - "origin": [ - 88.05680084228516, - 365.7731628417969 - ], - "bbox": [ - 88.05680084228516, - 355.22100830078125, - 110.94339752197266, - 372.56317138671875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 年にアメリカで成立した国家研究法では倫", - "origin": [ - 110.94339752197266, - 365.4895324707031 - ], - "bbox": [ - 110.94339752197266, - 355.08953857421875, - 295.9240417480469, - 369.0959777832031 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999958276748657, - 0.002899987855926156 - ], - "bbox": [ - 59.380001068115234, - 355.08953857421875, - 295.9240417480469, - 372.56317138671875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理委員会の設置を義務付けた そして,その数年後に", - "origin": [ - 59.25, - 380.7699890136719 - ], - "bbox": [ - 59.25, - 370.3699951171875, - 286.448974609375, - 383.8399963378906 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 286.69000244140625, - 378.7799987792969 - ], - "bbox": [ - 286.69000244140625, - 372.0198974609375, - 295.692626953125, - 380.7755432128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.25, - 370.3699951171875, - 295.692626953125, - 383.8399963378906 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.369998931884766, - 385.0400085449219, - 296.07000732421875, - 413.69000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルモントレポ", - "origin": [ - 59.41999816894531, - 395.6000061035156 - ], - "bbox": [ - 59.41999816894531, - 385.20001220703125, - 115.69300079345703, - 398.6700134277344 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 116.41000366210938, - 391.9599914550781 - ], - "bbox": [ - 116.41000366210938, - 385.19989013671875, - 125.1721420288086, - 393.9555358886719 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トと呼ばれる研究倫理のガイドラインを", - "origin": [ - 125.69000244140625, - 395.44000244140625 - ], - "bbox": [ - 125.69000244140625, - 385.0400085449219, - 296.07000732421875, - 398.9700012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41999816894531, - 385.0400085449219, - 296.07000732421875, - 398.9700012207031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "発表した.", - "origin": [ - 59.369998931884766, - 410.6199951171875 - ], - "bbox": [ - 59.369998931884766, - 400.2200012207031, - 100.19440460205078, - 413.69000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.369998931884766, - 400.2200012207031, - 100.19440460205078, - 413.69000244140625 - ] - }, - { - "spans": [ - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 107.88999938964844, - 408.6399841308594 - ], - "bbox": [ - 107.88999938964844, - 401.8798828125, - 116.89263916015625, - 410.6355285644531 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルモントレポ", - "origin": [ - 117.2699966430664, - 410.40997314453125 - ], - "bbox": [ - 117.2699966430664, - 400.0099792480469, - 174.7429962158203, - 413.47998046875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 175.5800018310547, - 406.8899841308594 - ], - "bbox": [ - 175.5800018310547, - 400.1298828125, - 184.34213256835938, - 408.8855285644531 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トでは", - "origin": [ - 184.97999572753906, - 410.469970703125 - ], - "bbox": [ - 184.97999572753906, - 400.0699768066406, - 213.7817840576172, - 413.53997802734375 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 「", - "origin": [ - 213.7817840576172, - 410.469970703125 - ], - "bbox": [ - 213.7817840576172, - 401.3998718261719, - 218.54754638671875, - 412.46551513671875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "人格の尊重」,", - "origin": [ - 218.97999572753906, - 410.469970703125 - ], - "bbox": [ - 218.97999572753906, - 400.0699768066406, - 279.43157958984375, - 413.53997802734375 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 「", - "origin": [ - 279.43157958984375, - 410.469970703125 - ], - "bbox": [ - 279.43157958984375, - 401.2798767089844, - 286.237548828125, - 412.46551513671875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "恩", - "origin": [ - 286.6000061035156, - 410.469970703125 - ], - "bbox": [ - 286.6000061035156, - 400.0699768066406, - 295.94000244140625, - 413.53997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.88999938964844, - 400.0099792480469, - 295.94000244140625, - 413.53997802734375 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.41999816894531, - 415.1300048828125, - 296.07281494140625, - 443.4700012207031 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "恵」,", - "origin": [ - 59.41999816894531, - 425.5299987792969 - ], - "bbox": [ - 59.41999816894531, - 415.1300048828125, - 81.2959976196289, - 428.6000061035156 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 81.2959976196289, - 425.5299987792969 - ], - "bbox": [ - 81.2959976196289, - 416.389892578125, - 84.61000061035156, - 427.5255432128906 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 84.61000061035156, - 423.1499938964844 - ], - "bbox": [ - 84.61000061035156, - 416.389892578125, - 88.08755493164062, - 425.1455383300781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "正義」を軸にして研究倫理のあるべき姿を描写し", - "origin": [ - 88.44999694824219, - 425.6499938964844 - ], - "bbox": [ - 88.44999694824219, - 415.25, - 296.07281494140625, - 428.7200012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41999816894531, - 415.1300048828125, - 296.07281494140625, - 428.7200012207031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ている. これらは医学の臨床の現場では", - "origin": [ - 59.41999816894531, - 440.3999938964844 - ], - "bbox": [ - 59.41999816894531, - 430.0, - 230.30458068847656, - 443.4700012207031 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 230.30458068847656, - 440.3999938964844 - ], - "bbox": [ - 230.30458068847656, - 431.32989501953125, - 235.45999145507812, - 442.3955383300781 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 235.45999145507812, - 438.0899963378906 - ], - "bbox": [ - 235.45999145507812, - 431.32989501953125, - 238.9375457763672, - 440.0855407714844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "インフォ", - "origin": [ - 238.92999267578125, - 440.260009765625 - ], - "bbox": [ - 238.92999267578125, - 429.8600158691406, - 275.65240478515625, - 443.33001708984375 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 275.65240478515625, - 440.260009765625 - ], - "bbox": [ - 275.65240478515625, - 429.95989990234375, - 277.22998046875, - 442.25555419921875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 277.22998046875, - 436.7200012207031 - ], - "bbox": [ - 277.22998046875, - 429.95989990234375, - 285.99212646484375, - 438.7155456542969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ム", - "origin": [ - 286.1499938964844, - 440.2300109863281 - ], - "bbox": [ - 286.1499938964844, - 429.83001708984375, - 296.0199890136719, - 443.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41999816894531, - 429.83001708984375, - 296.0199890136719, - 443.4700012207031 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.29999923706055, - 444.39056396484375, - 296.0748291015625, - 473.7300109863281 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドコンセント」 や", - "origin": [ - 59.33000183105469, - 455.2200012207031 - ], - "bbox": [ - 59.33000183105469, - 444.39056396484375, - 135.0, - 458.4421691894531 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999948740005493, - 0.003199983388185501 - ], - "bbox": [ - 59.33000183105469, - 444.39056396484375, - 135.0, - 458.4421691894531 - ] - }, - { - "spans": [ - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 140.54000854492188, - 453.0198974609375 - ], - "bbox": [ - 140.54000854492188, - 446.2597961425781, - 144.01756286621094, - 455.0265808105469 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "危険性と利益の解析」,", - "origin": [ - 144.27000427246094, - 455.5018310546875 - ], - "bbox": [ - 144.27000427246094, - 444.85296630859375, - 241.8671112060547, - 458.6626892089844 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 「", - "origin": [ - 241.8671112060547, - 455.47412109375 - ], - "bbox": [ - 241.8671112060547, - 446.253173828125, - 248.1975555419922, - 457.46966552734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "被験者の構", - "origin": [ - 248.5, - 455.3353576660156 - ], - "bbox": [ - 248.5, - 444.93536376953125, - 296.0748291015625, - 458.5576171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999949336051941, - 0.0031999838538467884 - ], - "bbox": [ - 140.54000854492188, - 444.85296630859375, - 296.0748291015625, - 458.6626892089844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "成な選抜」 という形をとっている.", - "origin": [ - 59.29999923706055, - 470.6600036621094 - ], - "bbox": [ - 59.29999923706055, - 459.5005798339844, - 205.3400115966797, - 473.7300109863281 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999986469745636, - -0.00519992969930172 - ], - "bbox": [ - 59.29999923706055, - 459.5005798339844, - 205.3400115966797, - 473.7300109863281 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.439998626708984, - 475.010009765625, - 297.26068115234375, - 521.7999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "以上のような医学における研究倫理は被験者実験に重", - "origin": [ - 69.12000274658203, - 485.4100036621094 - ], - "bbox": [ - 69.12000274658203, - 475.010009765625, - 296.0119934082031, - 488.4800109863281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.12000274658203, - 475.010009765625, - 296.0119934082031, - 488.4800109863281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "きを置いているものの,サイバ", - "origin": [ - 59.529998779296875, - 500.20001220703125 - ], - "bbox": [ - 59.529998779296875, - 489.8000183105469, - 191.16079711914062, - 503.27001953125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 191.77000427246094, - 496.5400085449219 - ], - "bbox": [ - 191.77000427246094, - 489.7799072265625, - 200.53213500976562, - 498.5355529785156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティをはじめ", - "origin": [ - 201.260009765625, - 500.05999755859375 - ], - "bbox": [ - 201.260009765625, - 489.6600036621094, - 295.9410400390625, - 503.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 489.6600036621094, - 295.9410400390625, - 503.27001953125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とした", - "origin": [ - 59.439998626708984, - 515.010009765625 - ], - "bbox": [ - 59.439998626708984, - 504.6100158691406, - 87.79879760742188, - 518.0800170898438 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ICT (Information Communication Technology) ", - "origin": [ - 87.79879760742188, - 515.010009765625 - ], - "bbox": [ - 87.79879760742188, - 504.4900207519531, - 297.26068115234375, - 521.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.439998626708984, - 504.4900207519531, - 297.26068115234375, - 521.7999877929688 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.43000030517578, - 519.7799682617188, - 296.0760192871094, - 551.9099731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に関する研究を実施する際にも重視すべき内容を多分に", - "origin": [ - 59.43000030517578, - 530.1799926757812 - ], - "bbox": [ - 59.43000030517578, - 519.7799682617188, - 295.9416198730469, - 533.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.43000030517578, - 519.7799682617188, - 295.9416198730469, - 533.25 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "含んでいる. 実際,", - "origin": [ - 59.439998626708984, - 545.1199951171875 - ], - "bbox": [ - 59.439998626708984, - 534.719970703125, - 143.46340942382812, - 548.1900024414062 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ACM", - "origin": [ - 143.46340942382812, - 545.1199951171875 - ], - "bbox": [ - 143.46340942382812, - 534.5599975585938, - 169.1623992919922, - 551.9099731445312 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " や", - "origin": [ - 169.1623992919922, - 544.77001953125 - ], - "bbox": [ - 169.1623992919922, - 534.3699951171875, - 180.96998596191406, - 548.1799926757812 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " IEEE", - "origin": [ - 180.96998596191406, - 545.1099853515625 - ], - "bbox": [ - 180.96998596191406, - 534.5899658203125, - 207.69796752929688, - 551.8999633789062 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " が掲げる倫理綱領で", - "origin": [ - 207.69796752929688, - 544.7999877929688 - ], - "bbox": [ - 207.69796752929688, - 534.3999633789062, - 296.0760192871094, - 547.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.439998626708984, - 534.3699951171875, - 296.0760192871094, - 551.9099731445312 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.36000061035156, - 549.6499633789062, - 296.2300109863281, - 577.9400024414062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "も他社に害をなさないことや社会に貢献すること,誠実", - "origin": [ - 59.36000061035156, - 560.0499877929688 - ], - "bbox": [ - 59.36000061035156, - 549.6499633789062, - 296.2300109863281, - 563.1199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36000061035156, - 549.6499633789062, - 296.2300109863281, - 563.1199951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "であることなどを会員に求めている. これらは抽象的な", - "origin": [ - 59.43000030517578, - 574.8699951171875 - ], - "bbox": [ - 59.43000030517578, - 564.469970703125, - 296.0282897949219, - 577.9400024414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.43000030517578, - 564.469970703125, - 296.0282897949219, - 577.9400024414062 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 59.40999984741211, - 579.5899658203125, - 296.1070251464844, - 641.1799926757812 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "概念ではあるが,医学の現場で形作られた倫理指針と同", - "origin": [ - 59.40999984741211, - 589.989990234375 - ], - "bbox": [ - 59.40999984741211, - 579.5899658203125, - 296.0308837890625, - 593.0599975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 579.5899658203125, - 296.0308837890625, - 593.0599975585938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "じ目的を持つことがわかる.", - "origin": [ - 59.40999984741211, - 604.5700073242188 - ], - "bbox": [ - 59.40999984741211, - 594.1699829101562, - 176.52610778808594, - 608.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 594.1699829101562, - 176.52610778808594, - 608.0499877929688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "ICT", - "origin": [ - 68.94999694824219, - 619.75 - ], - "bbox": [ - 68.94999694824219, - 609.5399780273438, - 86.0770034790039, - 626.5399780273438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " に関するより包括的な倫理指針として", - "origin": [ - 86.0770034790039, - 619.75 - ], - "bbox": [ - 86.0770034790039, - 609.3499755859375, - 261.1087951660156, - 622.8200073242188 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " Ethical", - "origin": [ - 261.1087951660156, - 619.75 - ], - "bbox": [ - 261.1087951660156, - 609.5399780273438, - 296.1070251464844, - 626.5399780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.94999694824219, - 609.3499755859375, - 296.1070251464844, - 626.5399780273438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Decision-Making", - "origin": [ - 59.529998779296875, - 634.3900146484375 - ], - "bbox": [ - 59.529998779296875, - 624.1799926757812, - 131.58477783203125, - 641.1799926757812 - ] - }, - { - "size": 6.000100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9656", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 皿", - "origin": [ - 131.58477783203125, - 634.3900146484375 - ], - "bbox": [ - 131.58477783203125, - 628.14990234375, - 144.8501739501953, - 636.2320556640625 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "d Internet Research", - "origin": [ - 144.63999938964844, - 634.3900146484375 - ], - "bbox": [ - 144.63999938964844, - 624.1799926757812, - 228.99649047851562, - 641.1799926757812 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " やメンロレポ", - "origin": [ - 228.99649047851562, - 634.3900146484375 - ], - "bbox": [ - 228.99649047851562, - 623.989990234375, - 286.36761474609375, - 637.7300415039062 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 286.7200012207031, - 631.0899658203125 - ], - "bbox": [ - 286.7200012207031, - 624.329833984375, - 295.4821472167969, - 633.0855102539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 623.989990234375, - 295.4821472167969, - 641.1799926757812 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 59.439998626708984, - 639.22998046875, - 295.1369934082031, - 656.469970703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ト", - "origin": [ - 59.439998626708984, - 649.6799926757812 - ], - "bbox": [ - 59.439998626708984, - 639.2799682617188, - 68.87999725341797, - 652.75 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " [1]", - "origin": [ - 68.87999725341797, - 649.6799926757812 - ], - "bbox": [ - 68.87999725341797, - 639.469970703125, - 81.6701889038086, - 656.469970703125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " がある. これらは先に議論された倫理指針を", - "origin": [ - 81.6701889038086, - 649.6799926757812 - ], - "bbox": [ - 81.6701889038086, - 639.2799682617188, - 275.7330017089844, - 652.75 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ICT", - "origin": [ - 275.7330017089844, - 649.6799926757812 - ], - "bbox": [ - 275.7330017089844, - 639.22998046875, - 295.1369934082031, - 656.469970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.439998626708984, - 639.22998046875, - 295.1369934082031, - 656.469970703125 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 59.40999984741211, - 654.3199462890625, - 295.9364013671875, - 667.7899780273438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の観点から見直し, 必要な項目を付け加え, 修正してい", - "origin": [ - 59.40999984741211, - 664.719970703125 - ], - "bbox": [ - 59.40999984741211, - 654.3199462890625, - 295.9364013671875, - 667.7899780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 654.3199462890625, - 295.9364013671875, - 667.7899780273438 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 59.33000183105469, - 669.0054931640625, - 296.05560302734375, - 697.6599731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る.", - "origin": [ - 59.33000183105469, - 679.6099853515625 - ], - "bbox": [ - 59.33000183105469, - 669.0054931640625, - 71.05000305175781, - 682.705810546875 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ICT", - "origin": [ - 71.05000305175781, - 679.41162109375 - ], - "bbox": [ - 71.05000305175781, - 669.2015991210938, - 95.56700897216797, - 686.267822265625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " の研究は医学のそれに比べ,考慮すべき関係者", - "origin": [ - 95.56700897216797, - 679.4778442382812 - ], - "bbox": [ - 95.56700897216797, - 669.0778198242188, - 296.05560302734375, - 683.0891723632812 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - 0.002699990291148424 - ], - "bbox": [ - 59.33000183105469, - 669.0054931640625, - 296.05560302734375, - 686.267822265625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の数や種類が増加する. 研究対象が人間のみならず,シ", - "origin": [ - 59.40999984741211, - 694.5899658203125 - ], - "bbox": [ - 59.40999984741211, - 683.97998046875, - 295.94000244140625, - 697.6599731445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 683.97998046875, - 295.94000244140625, - 697.6599731445312 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 59.4900016784668, - 699.1399536132812, - 296.0495910644531, - 727.5599975585938 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ステムとなる場合もあるため,それらに対する影響も併", - "origin": [ - 59.4900016784668, - 709.5399780273438 - ], - "bbox": [ - 59.4900016784668, - 699.1399536132812, - 296.0495910644531, - 712.6099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.4900016784668, - 699.1399536132812, - 296.0495910644531, - 712.6099853515625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "せて考慮する必要がある. また,研究対象と相互接続す", - "origin": [ - 59.529998779296875, - 724.489990234375 - ], - "bbox": [ - 59.529998779296875, - 713.8899536132812, - 295.9972229003906, - 727.5599975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 713.8899536132812, - 295.9972229003906, - 727.5599975585938 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 59.33000183105469, - 728.989990234375, - 296.02960205078125, - 742.4600219726562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るシステムやその提供者のように直接的な研究対象でな", - "origin": [ - 59.33000183105469, - 739.3900146484375 - ], - "bbox": [ - 59.33000183105469, - 728.989990234375, - 296.02960205078125, - 742.4600219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33000183105469, - 728.989990234375, - 296.02960205078125, - 742.4600219726562 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 315.79998779296875, - 22.959985733032227, - 553.8812866210938, - 84.67000579833984 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いにも関わらず,影響が及ぶ関係者らも存在する. この", - "origin": [ - 315.9100036621094, - 33.82000732421875 - ], - "bbox": [ - 315.9100036621094, - 22.959985733032227, - 552.4099731445312, - 37.10997772216797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9100036621094, - 22.959985733032227, - 552.4099731445312, - 37.10997772216797 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ように研究の責任範囲や影響が医学の研究とは大きく異", - "origin": [ - 316.04998779296875, - 48.54998779296875 - ], - "bbox": [ - 316.04998779296875, - 38.149986267089844, - 552.1699829101562, - 51.61998748779297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.04998779296875, - 38.149986267089844, - 552.1699829101562, - 51.61998748779297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "なるため,", - "origin": [ - 316.0199890136719, - 63.4000244140625 - ], - "bbox": [ - 316.0199890136719, - 53.000022888183594, - 361.7292175292969, - 66.47002410888672 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ICT", - "origin": [ - 361.7292175292969, - 63.4000244140625 - ], - "bbox": [ - 361.7292175292969, - 53.190025329589844, - 381.0469665527344, - 70.19002532958984 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 特有の倫理指針は度々議論されてきた", - "origin": [ - 381.0469665527344, - 63.4000244140625 - ], - "bbox": [ - 381.0469665527344, - 53.000022888183594, - 553.8812866210938, - 66.47002410888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0199890136719, - 53.000022888183594, - 553.8812866210938, - 70.19002532958984 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "2002", - "origin": [ - 315.79998779296875, - 77.8800048828125 - ], - "bbox": [ - 315.79998779296875, - 67.67000579833984, - 336.06439208984375, - 84.67000579833984 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "年,", - "origin": [ - 337.3999938964844, - 77.8800048828125 - ], - "bbox": [ - 337.3999938964844, - 67.4800033569336, - 354.04559326171875, - 80.95000457763672 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Association of Internet Researchers", - "origin": [ - 353.16998291015625, - 77.8800048828125 - ], - "bbox": [ - 353.16998291015625, - 67.67000579833984, - 504.3149719238281, - 84.67000579833984 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " のメンバ", - "origin": [ - 504.3149719238281, - 77.8800048828125 - ], - "bbox": [ - 504.3149719238281, - 67.4800033569336, - 542.9187622070312, - 81.16997528076172 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 543.280029296875, - 74.63995361328125 - ], - "bbox": [ - 543.280029296875, - 67.87985229492188, - 552.0421752929688, - 76.63548278808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.79998779296875, - 67.4800033569336, - 552.0421752929688, - 84.67000579833984 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 316.0, - 82.4599838256836, - 552.489990234375, - 99.9499740600586 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は", - "origin": [ - 316.0, - 93.15997314453125 - ], - "bbox": [ - 316.0, - 82.75997161865234, - 325.4800109863281, - 96.22997283935547 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " Ethical Decision-Making and Internet Research", - "origin": [ - 325.4800109863281, - 93.15997314453125 - ], - "bbox": [ - 325.4800109863281, - 82.64998626708984, - 531.5065307617188, - 99.9499740600586 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " を発", - "origin": [ - 531.5065307617188, - 92.8599853515625 - ], - "bbox": [ - 531.5065307617188, - 82.4599838256836, - 552.489990234375, - 95.92998504638672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0, - 82.4599838256836, - 552.489990234375, - 99.9499740600586 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 315.9599914550781, - 97.51998138427734, - 552.5640869140625, - 129.9099884033203 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表した. これはインタ", - "origin": [ - 316.010009765625, - 107.91998291015625 - ], - "bbox": [ - 316.010009765625, - 97.51998138427734, - 409.32000732421875, - 111.22321319580078 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ー", - "origin": [ - 409.32000732421875, - 108.15321350097656 - ], - "bbox": [ - 409.32000732421875, - 97.72708129882812, - 419.65216064453125, - 110.14874267578125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ネット研究に関する研究倫理を", - "origin": [ - 420.4900207519531, - 108.0611572265625 - ], - "bbox": [ - 420.4900207519531, - 97.6611557006836, - 552.5640869140625, - 111.46121215820312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 316.010009765625, - 97.51998138427734, - 552.5640869140625, - 111.46121215820312 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "説いたものであり,", - "origin": [ - 315.9599914550781, - 123.1199951171875 - ], - "bbox": [ - 315.9599914550781, - 112.7199935913086, - 399.99517822265625, - 126.18999481201172 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 2012", - "origin": [ - 399.99517822265625, - 123.1199951171875 - ], - "bbox": [ - 399.99517822265625, - 112.90999603271484, - 422.3467712402344, - 129.9099884033203 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 年に新版が登場した", - "origin": [ - 422.3467712402344, - 123.1199951171875 - ], - "bbox": [ - 422.3467712402344, - 112.7199935913086, - 510.910400390625, - 126.18999481201172 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " [2].", - "origin": [ - 510.910400390625, - 123.1199951171875 - ], - "bbox": [ - 510.910400390625, - 112.90999603271484, - 525.969970703125, - 129.9099884033203 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 進化", - "origin": [ - 525.969970703125, - 123.1199951171875 - ], - "bbox": [ - 525.969970703125, - 112.7199935913086, - 552.3711547851562, - 126.18999481201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 112.7199935913086, - 552.3711547851562, - 129.9099884033203 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.67999267578125, - 127.51998138427734, - 552.5909423828125, - 174.5199737548828 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "する技術や多様な背景に対して柔軟性を維持することを", - "origin": [ - 315.8599853515625, - 138.1300048828125 - ], - "bbox": [ - 315.8599853515625, - 127.51998138427734, - 552.5637817382812, - 141.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8599853515625, - 127.51998138427734, - 552.5637817382812, - 141.20001220703125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "目指しているため,具体的な議論を避けた汎用的な倫理", - "origin": [ - 315.7699890136719, - 153.09002685546875 - ], - "bbox": [ - 315.7699890136719, - 142.69003295898438, - 552.5909423828125, - 156.1600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7699890136719, - 142.69003295898438, - 552.5909423828125, - 156.1600341796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ガイドラインとなっている.", - "origin": [ - 315.67999267578125, - 167.72998046875 - ], - "bbox": [ - 315.67999267578125, - 157.32998657226562, - 435.0000305175781, - 170.79998779296875 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 2012", - "origin": [ - 435.0000305175781, - 167.72998046875 - ], - "bbox": [ - 435.0000305175781, - 157.5199737548828, - 462.5567626953125, - 174.5199737548828 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 年に登場したメンロ", - "origin": [ - 462.5567626953125, - 167.72998046875 - ], - "bbox": [ - 462.5567626953125, - 157.32998657226562, - 552.3099975585938, - 170.79998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.67999267578125, - 157.32998657226562, - 552.3099975585938, - 174.5199737548828 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 315.8500061035156, - 172.36001586914062, - 552.5258178710938, - 200.92999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "レポ", - "origin": [ - 315.8500061035156, - 182.760009765625 - ], - "bbox": [ - 315.8500061035156, - 172.36001586914062, - 334.5776062011719, - 185.83001708984375 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 335.0500183105469, - 179.3699951171875 - ], - "bbox": [ - 335.0500183105469, - 172.60989379882812, - 343.8121643066406, - 181.3655242919922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トは", - "origin": [ - 344.33001708984375, - 182.969970703125 - ], - "bbox": [ - 344.33001708984375, - 172.56997680664062, - 363.3000183105469, - 186.03997802734375 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 363.510009765625, - 181.01995849609375 - ], - "bbox": [ - 363.510009765625, - 174.25985717773438, - 372.51263427734375, - 183.01548767089844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルモントレポ", - "origin": [ - 372.77001953125, - 182.79998779296875 - ], - "bbox": [ - 372.77001953125, - 172.39999389648438, - 429.04302978515625, - 185.8699951171875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 429.760009765625, - 179.28997802734375 - ], - "bbox": [ - 429.760009765625, - 172.52987670898438, - 438.52215576171875, - 181.28550720214844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トの流れを色濃く汲んでい", - "origin": [ - 439.0400085449219, - 182.92999267578125 - ], - "bbox": [ - 439.0400085449219, - 172.52999877929688, - 552.5258178710938, - 186.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8500061035156, - 172.36001586914062, - 552.5258178710938, - 186.03997802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る.", - "origin": [ - 315.8900146484375, - 197.8599853515625 - ], - "bbox": [ - 315.8900146484375, - 187.45999145507812, - 327.726806640625, - 200.92999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8900146484375, - 187.45999145507812, - 327.726806640625, - 200.92999267578125 - ] - }, - { - "spans": [ - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 335.4100036621094, - 195.94000244140625 - ], - "bbox": [ - 335.4100036621094, - 189.17990112304688, - 344.4126281738281, - 197.93553161621094 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルモントレポ", - "origin": [ - 344.7900085449219, - 197.6199951171875 - ], - "bbox": [ - 344.7900085449219, - 187.22000122070312, - 402.14300537109375, - 200.69000244140625 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 403.1000061035156, - 194.20001220703125 - ], - "bbox": [ - 403.1000061035156, - 187.43991088867188, - 411.8621520996094, - 196.19554138183594 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トの中核をなしていた", - "origin": [ - 412.6199951171875, - 197.6600341796875 - ], - "bbox": [ - 412.6199951171875, - 187.26004028320312, - 509.0234069824219, - 200.73004150390625 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 「", - "origin": [ - 509.0234069824219, - 197.6600341796875 - ], - "bbox": [ - 509.0234069824219, - 188.58993530273438, - 513.74755859375, - 199.6555633544922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "人格の尊", - "origin": [ - 514.1799926757812, - 197.6900634765625 - ], - "bbox": [ - 514.1799926757812, - 187.29006958007812, - 552.44140625, - 200.76007080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4100036621094, - 187.22000122070312, - 552.44140625, - 200.76007080078125 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 315.8299865722656, - 202.33999633789062, - 552.6035766601562, - 245.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "重」", - "origin": [ - 315.8299865722656, - 212.739990234375 - ], - "bbox": [ - 315.8299865722656, - 202.33999633789062, - 330.2209777832031, - 215.80999755859375 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 331.0899963378906, - 210.33001708984375 - ], - "bbox": [ - 331.0899963378906, - 203.56991577148438, - 334.5675354003906, - 212.32554626464844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "恩恵」", - "origin": [ - 334.6999816894531, - 212.79998779296875 - ], - "bbox": [ - 334.6999816894531, - 202.39999389648438, - 358.3177795410156, - 215.8699951171875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 359.0699768066406, - 210.42999267578125 - ], - "bbox": [ - 359.0699768066406, - 203.66989135742188, - 362.5475158691406, - 212.42552185058594 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "正義」に加え,メンロレポ", - "origin": [ - 362.66998291015625, - 212.739990234375 - ], - "bbox": [ - 362.66998291015625, - 202.33999633789062, - 468.8905029296875, - 215.80999755859375 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 469.47998046875, - 209.15997314453125 - ], - "bbox": [ - 469.47998046875, - 202.39987182617188, - 478.24212646484375, - 211.15550231933594 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トでは", - "origin": [ - 478.7599792480469, - 212.79998779296875 - ], - "bbox": [ - 478.7599792480469, - 202.39999389648438, - 507.081787109375, - 215.8699951171875 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 507.081787109375, - 212.79998779296875 - ], - "bbox": [ - 507.081787109375, - 203.83987426757812, - 511.2499694824219, - 214.79551696777344 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 511.2499694824219, - 210.5999755859375 - ], - "bbox": [ - 511.2499694824219, - 203.83987426757812, - 514.7275390625, - 212.5955047607422 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "法と公益", - "origin": [ - 514.739990234375, - 212.90997314453125 - ], - "bbox": [ - 514.739990234375, - 202.50997924804688, - 552.6035766601562, - 215.97998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8299865722656, - 202.33999633789062, - 552.6035766601562, - 215.97998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の尊重」 を柱としている. そのうち, メンロレポ", - "origin": [ - 315.9700012207031, - 227.54998779296875 - ], - "bbox": [ - 315.9700012207031, - 217.14999389648438, - 523.4675903320312, - 230.6199951171875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 524.2999877929688, - 224.07000732421875 - ], - "bbox": [ - 524.2999877929688, - 217.30990600585938, - 533.0621337890625, - 226.06553649902344 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トで", - "origin": [ - 533.5800170898438, - 227.66998291015625 - ], - "bbox": [ - 533.5800170898438, - 217.26998901367188, - 552.4866333007812, - 230.739990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 217.14999389648438, - 552.4866333007812, - 230.739990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は倫理的な問題に関係する事例を多数掲載しているのも", - "origin": [ - 316.0, - 242.8800048828125 - ], - "bbox": [ - 316.0, - 231.93606567382812, - 552.47705078125, - 245.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999973177909851, - -0.0022999937646090984 - ], - "bbox": [ - 316.0, - 231.93606567382812, - 552.47705078125, - 245.95001220703125 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 315.9700012207031, - 247.29000854492188, - 552.4951782226562, - 275.70001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "のの, その倫理的な判断は読者らにゆだねられている.", - "origin": [ - 315.9700012207031, - 257.69000244140625 - ], - "bbox": [ - 315.9700012207031, - 247.29000854492188, - 548.1920166015625, - 260.760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 247.29000854492188, - 548.1920166015625, - 260.760009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究では過去のサイバ", - "origin": [ - 325.6700134277344, - 272.6300048828125 - ], - "bbox": [ - 325.6700134277344, - 262.2300109863281, - 429.1208190917969, - 275.70001220703125 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 429.7300109863281, - 268.9100341796875 - ], - "bbox": [ - 429.7300109863281, - 262.1499328613281, - 438.4921569824219, - 270.90557861328125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する研究", - "origin": [ - 439.2200012207031, - 272.510009765625 - ], - "bbox": [ - 439.2200012207031, - 262.1100158691406, - 552.4951782226562, - 275.58001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.6700134277344, - 262.1100158691406, - 552.4951782226562, - 275.70001220703125 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 315.9599914550781, - 276.9200134277344, - 555.166748046875, - 335.2900085449219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ボ例を参考にし倫理的な問題を洗い出しただけでなく,", - "origin": [ - 315.9599914550781, - 287.55999755859375 - ], - "bbox": [ - 315.9599914550781, - 276.9200134277344, - 555.166748046875, - 290.70001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 276.9200134277344, - 555.166748046875, - 290.70001220703125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究活動を行うどの時点でどのような倫理的な問題が発", - "origin": [ - 315.989990234375, - 302.510009765625 - ], - "bbox": [ - 315.989990234375, - 292.1100158691406, - 552.4931030273438, - 305.58001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 292.1100158691406, - 552.4931030273438, - 305.58001708984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "生しうるのかを明らかにした. 倫理的な判断は決定木の", - "origin": [ - 315.989990234375, - 317.3999938964844 - ], - "bbox": [ - 315.989990234375, - 307.0, - 552.3899536132812, - 320.4700012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 307.0, - 552.3899536132812, - 320.4700012207031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "形で表現されている. 研究者らが行おうとしている研究", - "origin": [ - 315.9700012207031, - 332.2200012207031 - ], - "bbox": [ - 315.9700012207031, - 321.82000732421875, - 552.507080078125, - 335.2900085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 321.82000732421875, - 552.507080078125, - 335.2900085449219 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 316.07000732421875, - 336.8600158691406, - 552.52978515625, - 350.33001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "活動に対して特定の手法を用いようとしたとき, 彼らは", - "origin": [ - 316.07000732421875, - 347.260009765625 - ], - "bbox": [ - 316.07000732421875, - 336.8600158691406, - 552.52978515625, - 350.33001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.07000732421875, - 336.8600158691406, - 552.52978515625, - 350.33001708984375 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 315.8900146484375, - 351.92999267578125, - 555.170166015625, - 410.07000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "決定木を辿ることで当該手法が倫理的な議論を必要とす", - "origin": [ - 315.9700012207031, - 362.3299865722656 - ], - "bbox": [ - 315.9700012207031, - 351.92999267578125, - 552.4324340820312, - 365.3999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 351.92999267578125, - 552.4324340820312, - 365.3999938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るか否かを判断できる.", - "origin": [ - 315.8900146484375, - 377.1199951171875 - ], - "bbox": [ - 315.8900146484375, - 366.7200012207031, - 413.8789978027344, - 380.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8900146484375, - 366.7200012207031, - 413.8789978027344, - 380.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究の段階ごとに倫理的な選択肢を提示することで,", - "origin": [ - 325.5899963378906, - 392.1199951171875 - ], - "bbox": [ - 325.5899963378906, - 381.7200012207031, - 555.170166015625, - 395.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5899963378906, - 381.7200012207031, - 555.170166015625, - 395.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "先行研究に比べ具体的な倫理の議論を行うことが可能と", - "origin": [ - 316.04998779296875, - 407.0 - ], - "bbox": [ - 316.04998779296875, - 396.6000061035156, - 552.4815673828125, - 410.07000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.04998779296875, - 396.6000061035156, - 552.4815673828125, - 410.07000732421875 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 315.8699951171875, - 407.4355163574219, - 555.1474609375, - 440.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "なる.", - "origin": [ - 316.0199890136719, - 421.9200134277344 - ], - "bbox": [ - 316.0199890136719, - 411.1200256347656, - 337.3299865722656, - 425.0301208496094 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " IRB", - "origin": [ - 337.3299865722656, - 421.5247802734375 - ], - "bbox": [ - 337.3299865722656, - 411.3147888183594, - 362.29815673828125, - 428.3672180175781 - ] - }, - { - "size": 6.500100135803223, - "flags": 20, - "font": "*MS PMincho-Bold-9659", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 1", - "origin": [ - 362.29815673828125, - 421.57720947265625 - ], - "bbox": [ - 362.29815673828125, - 411.19287109375, - 366.259521484375, - 425.99078369140625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " の審査官がサイバ", - "origin": [ - 366.259521484375, - 417.83551025390625 - ], - "bbox": [ - 366.259521484375, - 407.4355163574219, - 446.1907653808594, - 425.0433654785156 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 447.03997802734375, - 418.275146484375 - ], - "bbox": [ - 447.03997802734375, - 411.5150451660156, - 455.8021240234375, - 420.2890930175781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの専門家", - "origin": [ - 456.52996826171875, - 421.8050842285156 - ], - "bbox": [ - 456.52996826171875, - 411.40509033203125, - 552.7908935546875, - 425.0771789550781 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - 0.002099995268508792 - ], - "bbox": [ - 316.0199890136719, - 407.4355163574219, - 552.7908935546875, - 428.3672180175781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "でなくとも,研究の際に注意すべき点を確認できるため,", - "origin": [ - 315.8699951171875, - 436.9800109863281 - ], - "bbox": [ - 315.8699951171875, - 426.58001708984375, - 555.1474609375, - 440.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8699951171875, - 426.58001708984375, - 555.1474609375, - 440.0500183105469 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 315.8800048828125, - 441.20001220703125, - 552.5499877929688, - 469.8800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 315.8800048828125, - 451.6000061035156 - ], - "bbox": [ - 315.8800048828125, - 441.20001220703125, - 343.9208068847656, - 454.7653503417969 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 344.5299987792969, - 448.15740966796875 - ], - "bbox": [ - 344.5299987792969, - 441.3973083496094, - 353.2921447753906, - 450.1827392578125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティにおける倫理的な議論が欧米諸国", - "origin": [ - 353.8999938964844, - 451.6092529296875 - ], - "bbox": [ - 353.8999938964844, - 441.2092590332031, - 552.5499877929688, - 455.3546447753906 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999994158744812, - 0.0033999804873019457 - ], - "bbox": [ - 315.8800048828125, - 441.20001220703125, - 552.5499877929688, - 455.3546447753906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に比べ遅れている日本では特に有用な事例となるだろう.", - "origin": [ - 315.989990234375, - 466.80999755859375 - ], - "bbox": [ - 315.989990234375, - 456.4100036621094, - 549.9599609375, - 469.8800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 456.4100036621094, - 549.9599609375, - 469.8800048828125 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 316.3299865722656, - 482.447998046875, - 381.677978515625, - 498.6839904785156 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9660", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "3 ", - "origin": [ - 316.3299865722656, - 495.05999755859375 - ], - "bbox": [ - 316.3299865722656, - 482.447998046875, - 325.3299865722656, - 498.6839904785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.3299865722656, - 482.447998046875, - 325.3299865722656, - 498.6839904785156 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9660", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "提案手法", - "origin": [ - 336.29998779296875, - 495.05999755859375 - ], - "bbox": [ - 336.29998779296875, - 482.447998046875, - 381.677978515625, - 498.6839904785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.29998779296875, - 482.447998046875, - 381.677978515625, - 498.6839904785156 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 325.6700134277344, - 505.1999816894531, - 552.77001953125, - 518.8600463867188 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究では過去のトップカンファレンスの論文を参考", - "origin": [ - 325.6700134277344, - 515.7900390625 - ], - "bbox": [ - 325.6700134277344, - 505.1999816894531, - 552.77001953125, - 518.8600463867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.6700134277344, - 505.1999816894531, - 552.77001953125, - 518.8600463867188 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 315.989990234375, - 520.1983642578125, - 552.5623779296875, - 534.0713500976562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "にして,サイバ", - "origin": [ - 315.989990234375, - 530.7000122070312 - ], - "bbox": [ - 315.989990234375, - 520.2999877929688, - 381.25079345703125, - 533.9332275390625 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 381.8599853515625, - 527.1146850585938 - ], - "bbox": [ - 381.8599853515625, - 520.3545532226562, - 390.62213134765625, - 529.1321411132812 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する研究倫理指針を", - "origin": [ - 391.3499755859375, - 530.598388671875 - ], - "bbox": [ - 391.3499755859375, - 520.1983642578125, - 552.5623779296875, - 534.0713500976562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 315.989990234375, - 520.1983642578125, - 552.5623779296875, - 534.0713500976562 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 315.9200134277344, - 535.2799682617188, - 552.6050415039062, - 563.9647827148438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "構築した. トップカンファレンスに採択されるような研", - "origin": [ - 315.9200134277344, - 546.219970703125 - ], - "bbox": [ - 315.9200134277344, - 535.2799682617188, - 552.5361938476562, - 549.2899780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 535.2799682617188, - 552.5361938476562, - 549.2899780273438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究は先進的な問題を扱っていることが多い. それらは同", - "origin": [ - 316.0, - 560.8599853515625 - ], - "bbox": [ - 316.0, - 550.0684204101562, - 552.6050415039062, - 563.9647827148438 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 316.0, - 550.0684204101562, - 552.6050415039062, - 563.9647827148438 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 315.9599914550781, - 565.2799682617188, - 552.510009765625, - 578.75 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "時に倫理的な問題を扱う機会が多いことを意味する. そ", - "origin": [ - 315.9599914550781, - 575.6799926757812 - ], - "bbox": [ - 315.9599914550781, - 565.2799682617188, - 552.510009765625, - 578.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 565.2799682617188, - 552.510009765625, - 578.75 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 315.8599853515625, - 580.18994140625, - 552.6029663085938, - 668.5399780273438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "のような論文は倫理的な議論が十分になされていること", - "origin": [ - 315.9700012207031, - 590.969970703125 - ], - "bbox": [ - 315.9700012207031, - 580.18994140625, - 552.4900512695312, - 594.1199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 580.18994140625, - 552.4900512695312, - 594.1199951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が多く,それらは倫理指針構築に役立てることができた.", - "origin": [ - 315.989990234375, - 605.6300048828125 - ], - "bbox": [ - 315.989990234375, - 595.22998046875, - 549.9680786132812, - 608.9100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 595.22998046875, - 549.9680786132812, - 608.9100341796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 325.4800109863281, - 620.5499877929688 - ], - "bbox": [ - 325.4800109863281, - 610.1499633789062, - 353.64080810546875, - 623.6199951171875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 354.25, - 617.0700073242188 - ], - "bbox": [ - 354.25, - 610.3098754882812, - 363.01214599609375, - 619.0655517578125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究の中では分野ごとに,倫理", - "origin": [ - 363.6199951171875, - 620.5499877929688 - ], - "bbox": [ - 363.6199951171875, - 610.1499633789062, - 552.6029663085938, - 623.6199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4800109863281, - 610.1499633789062, - 552.6029663085938, - 623.6199951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "的な問題が生じることがある. そこでまずは様々な論文", - "origin": [ - 315.989990234375, - 635.47998046875 - ], - "bbox": [ - 315.989990234375, - 625.0799560546875, - 552.4929809570312, - 638.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 625.0799560546875, - 552.4929809570312, - 638.5499877929688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を紐解き,その研究が関連している研究課題を明らかに", - "origin": [ - 315.8900146484375, - 650.4100341796875 - ], - "bbox": [ - 315.8900146484375, - 640.010009765625, - 552.4500122070312, - 653.6799926757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8900146484375, - 640.010009765625, - 552.4500122070312, - 653.6799926757812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "する必要がある. 提案手法では,まず論文の収集を行っ", - "origin": [ - 315.8599853515625, - 665.469970703125 - ], - "bbox": [ - 315.8599853515625, - 654.6900024414062, - 552.4599609375, - 668.5399780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8599853515625, - 654.6900024414062, - 552.4599609375, - 668.5399780273438 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 315.8900146484375, - 669.7999877929688, - 552.406005859375, - 683.6682739257812 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "た その後それらを対象に(a) 研究分野を表すトピッ", - "origin": [ - 315.8900146484375, - 680.2000122070312 - ], - "bbox": [ - 315.8900146484375, - 669.7999877929688, - 552.406005859375, - 683.6682739257812 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - 0.002099995268508792 - ], - "bbox": [ - 315.8900146484375, - 669.7999877929688, - 552.406005859375, - 683.6682739257812 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 315.7799987792969, - 684.6300048828125, - 554.0239868164062, - 713.4099731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "クモデルの構築と(b)グレ", - "origin": [ - 315.7799987792969, - 695.030029296875 - ], - "bbox": [ - 315.7799987792969, - 684.6300048828125, - 433.52996826171875, - 698.3383178710938 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 433.8199768066406, - 691.6397094726562 - ], - "bbox": [ - 433.8199768066406, - 684.8795776367188, - 442.5821228027344, - 693.654541015625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域/倫理の議論を含む論", - "origin": [ - 443.3199768066406, - 695.360595703125 - ], - "bbox": [ - 443.3199768066406, - 684.9605712890625, - 552.6126708984375, - 698.6710205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - 0.002199994632974267 - ], - "bbox": [ - 315.7799987792969, - 684.6300048828125, - 552.6126708984375, - 698.6710205078125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "文集合の構築を実施した(b)で得られた論文集合を(a)", - "origin": [ - 315.9700012207031, - 710.3399658203125 - ], - "bbox": [ - 315.9700012207031, - 699.93994140625, - 554.0239868164062, - 713.4099731445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 699.93994140625, - 554.0239868164062, - 713.4099731445312 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 330.239990234375, - 730.9120483398438, - 469.78094482421875, - 741.552001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-9657", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "1 Institutional/Internal Review Board ", - "origin": [ - 330.239990234375, - 738.9600219726562 - ], - "bbox": [ - 330.239990234375, - 730.9120483398438, - 469.78094482421875, - 741.552001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.239990234375, - 730.9120483398438, - 469.78094482421875, - 741.552001953125 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 59.54999923706055, - 23.079980850219727, - 295.739990234375, - 51.78997039794922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究活動において倫理的に考慮すべき点を各段階ごとに明", - "origin": [ - 59.599998474121094, - 33.47998046875 - ], - "bbox": [ - 59.599998474121094, - 23.079980850219727, - 295.739990234375, - 36.54998016357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.599998474121094, - 23.079980850219727, - 295.739990234375, - 36.54998016357422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "確に示している.", - "origin": [ - 59.54999923706055, - 48.719970703125 - ], - "bbox": [ - 59.54999923706055, - 37.593284606933594, - 128.6468048095703, - 51.78997039794922 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999193549156189, - -0.012698975391685963 - ], - "bbox": [ - 59.54999923706055, - 37.593284606933594, - 128.6468048095703, - 51.78997039794922 - ] - } - ], - "tag": "rotate" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 59.33000183105469, - 220.74002075195312, - 296.06719970703125, - 252.668212890625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ることに議論の重点を置いているのは,その歴史的な背", - "origin": [ - 59.33000183105469, - 231.1400146484375 - ], - "bbox": [ - 59.33000183105469, - 220.74002075195312, - 296.06719970703125, - 234.73101806640625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - 0.002199994632974267 - ], - "bbox": [ - 59.33000183105469, - 220.74002075195312, - 296.06719970703125, - 234.73101806640625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "景と関係がある. 倫理指針の始まりは", - "origin": [ - 59.38999938964844, - 246.5 - ], - "bbox": [ - 59.38999938964844, - 235.4782257080078, - 223.02040100097656, - 249.57000732421875 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 1947", - "origin": [ - 223.02040100097656, - 245.8782196044922 - ], - "bbox": [ - 223.02040100097656, - 235.5822296142578, - 245.64739990234375, - 252.668212890625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 年のニュル", - "origin": [ - 245.64739990234375, - 245.792236328125 - ], - "bbox": [ - 245.64739990234375, - 235.20156860351562, - 295.82562255859375, - 248.86224365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999927282333374, - -0.0037999728228896856 - ], - "bbox": [ - 59.38999938964844, - 235.20156860351562, - 295.82562255859375, - 252.668212890625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 59.36000061035156, - 250.38290405273438, - 295.95458984375, - 297.6400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ン", - "origin": [ - 59.36000061035156, - 260.8499755859375 - ], - "bbox": [ - 59.36000061035156, - 250.44998168945312, - 69.0, - 263.94696044921875 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 69.01000213623047, - 259.0369873046875 - ], - "bbox": [ - 69.01000213623047, - 252.27688598632812, - 78.01264190673828, - 261.0577392578125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルク綱領まで遡る. ここでは被験者の自発的な同意", - "origin": [ - 78.27000427246094, - 260.78289794921875 - ], - "bbox": [ - 78.27000427246094, - 250.38290405273438, - 295.83941650390625, - 264.4620056152344 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999960660934448, - 0.0027999889571219683 - ], - "bbox": [ - 59.36000061035156, - 250.38290405273438, - 295.83941650390625, - 264.4620056152344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "やリスクと利益の解析, 後に影響のない範囲で実験を取", - "origin": [ - 59.41999816894531, - 276.1199951171875 - ], - "bbox": [ - 59.41999816894531, - 265.7200012207031, - 295.95458984375, - 279.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41999816894531, - 265.7200012207031, - 295.95458984375, - 279.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "り下げる権利を掲げている.", - "origin": [ - 59.880001068115234, - 290.8500061035156 - ], - "bbox": [ - 59.880001068115234, - 280.45001220703125, - 178.1192169189453, - 293.9200134277344 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 1964", - "origin": [ - 178.1192169189453, - 290.8500061035156 - ], - "bbox": [ - 178.1192169189453, - 280.6400146484375, - 206.09161376953125, - 297.6400146484375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 年, フィンランドの", - "origin": [ - 206.09161376953125, - 290.8500061035156 - ], - "bbox": [ - 206.09161376953125, - 280.45001220703125, - 295.8269958496094, - 293.9200134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.880001068115234, - 280.45001220703125, - 295.8269958496094, - 297.6400146484375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 59.40999984741211, - 295.1300048828125, - 296.1628112792969, - 354.1841735839844 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ヘルシンキ宣言ではニュルン", - "origin": [ - 59.650001525878906, - 305.5299987792969 - ], - "bbox": [ - 59.650001525878906, - 295.1300048828125, - 182.88778686523438, - 309.0436706542969 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 183.01998901367188, - 303.8541564941406 - ], - "bbox": [ - 183.01998901367188, - 297.09405517578125, - 192.0226287841797, - 305.8821105957031 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルク綱領に加え,被験者", - "origin": [ - 192.2799835205078, - 305.7774963378906 - ], - "bbox": [ - 192.2799835205078, - 295.37750244140625, - 296.06036376953125, - 309.22113037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999935030937195, - 0.003599976422265172 - ], - "bbox": [ - 59.650001525878906, - 295.1300048828125, - 296.06036376953125, - 309.22113037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の利益が公益よりも優先されるべきことや,すべての被", - "origin": [ - 59.40999984741211, - 320.8699951171875 - ], - "bbox": [ - 59.40999984741211, - 310.4700012207031, - 296.1628112792969, - 323.94000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 310.4700012207031, - 296.1628112792969, - 323.94000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "験者が十分な扱いを受けることが追加されたことで,よ", - "origin": [ - 59.650001525878906, - 335.8699951171875 - ], - "bbox": [ - 59.650001525878906, - 325.4700012207031, - 295.8432312011719, - 338.94000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.650001525878906, - 325.4700012207031, - 295.8432312011719, - 338.94000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "り柔軟かつ丁寧な被験者実験が行われるようになった.", - "origin": [ - 59.43000030517578, - 350.739990234375 - ], - "bbox": [ - 59.43000030517578, - 340.1081848144531, - 293.4169921875, - 354.1841735839844 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - -0.002699990291148424 - ], - "bbox": [ - 59.43000030517578, - 340.1081848144531, - 293.4169921875, - 354.1841735839844 - ] - } - ], - "tag": "rotate" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 59.25, - 355.08953857421875, - 295.9240417480469, - 383.8399963378906 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "その後", - "origin": [ - 59.380001068115234, - 365.69000244140625 - ], - "bbox": [ - 59.380001068115234, - 355.2900085449219, - 88.05680084228516, - 368.8431701660156 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 1974", - "origin": [ - 88.05680084228516, - 365.7731628417969 - ], - "bbox": [ - 88.05680084228516, - 355.22100830078125, - 110.94339752197266, - 372.56317138671875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 年にアメリカで成立した国家研究法では倫", - "origin": [ - 110.94339752197266, - 365.4895324707031 - ], - "bbox": [ - 110.94339752197266, - 355.08953857421875, - 295.9240417480469, - 369.0959777832031 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999958276748657, - 0.002899987855926156 - ], - "bbox": [ - 59.380001068115234, - 355.08953857421875, - 295.9240417480469, - 372.56317138671875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理委員会の設置を義務付けた そして,その数年後に", - "origin": [ - 59.25, - 380.7699890136719 - ], - "bbox": [ - 59.25, - 370.3699951171875, - 286.448974609375, - 383.8399963378906 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ベ", - "origin": [ - 286.69000244140625, - 378.7799987792969 - ], - "bbox": [ - 286.69000244140625, - 372.0198974609375, - 295.692626953125, - 380.7755432128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.25, - 370.3699951171875, - 295.692626953125, - 383.8399963378906 - ] - } - ], - "tag": "rotate" - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.29999923706055, - 444.39056396484375, - 296.0748291015625, - 473.7300109863281 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドコンセント」 や", - "origin": [ - 59.33000183105469, - 455.2200012207031 - ], - "bbox": [ - 59.33000183105469, - 444.39056396484375, - 135.0, - 458.4421691894531 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999948740005493, - 0.003199983388185501 - ], - "bbox": [ - 59.33000183105469, - 444.39056396484375, - 135.0, - 458.4421691894531 - ] - }, - { - "spans": [ - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 140.54000854492188, - 453.0198974609375 - ], - "bbox": [ - 140.54000854492188, - 446.2597961425781, - 144.01756286621094, - 455.0265808105469 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "危険性と利益の解析」,", - "origin": [ - 144.27000427246094, - 455.5018310546875 - ], - "bbox": [ - 144.27000427246094, - 444.85296630859375, - 241.8671112060547, - 458.6626892089844 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 「", - "origin": [ - 241.8671112060547, - 455.47412109375 - ], - "bbox": [ - 241.8671112060547, - 446.253173828125, - 248.1975555419922, - 457.46966552734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "被験者の構", - "origin": [ - 248.5, - 455.3353576660156 - ], - "bbox": [ - 248.5, - 444.93536376953125, - 296.0748291015625, - 458.5576171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999949336051941, - 0.0031999838538467884 - ], - "bbox": [ - 140.54000854492188, - 444.85296630859375, - 296.0748291015625, - 458.6626892089844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "成な選抜」 という形をとっている.", - "origin": [ - 59.29999923706055, - 470.6600036621094 - ], - "bbox": [ - 59.29999923706055, - 459.5005798339844, - 205.3400115966797, - 473.7300109863281 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999986469745636, - -0.00519992969930172 - ], - "bbox": [ - 59.29999923706055, - 459.5005798339844, - 205.3400115966797, - 473.7300109863281 - ] - } - ], - "tag": "rotate" - }, - { - "number": 18, - "type": 0, - "bbox": [ - 59.33000183105469, - 669.0054931640625, - 296.05560302734375, - 697.6599731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る.", - "origin": [ - 59.33000183105469, - 679.6099853515625 - ], - "bbox": [ - 59.33000183105469, - 669.0054931640625, - 71.05000305175781, - 682.705810546875 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ICT", - "origin": [ - 71.05000305175781, - 679.41162109375 - ], - "bbox": [ - 71.05000305175781, - 669.2015991210938, - 95.56700897216797, - 686.267822265625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " の研究は医学のそれに比べ,考慮すべき関係者", - "origin": [ - 95.56700897216797, - 679.4778442382812 - ], - "bbox": [ - 95.56700897216797, - 669.0778198242188, - 296.05560302734375, - 683.0891723632812 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - 0.002699990291148424 - ], - "bbox": [ - 59.33000183105469, - 669.0054931640625, - 296.05560302734375, - 686.267822265625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の数や種類が増加する. 研究対象が人間のみならず,シ", - "origin": [ - 59.40999984741211, - 694.5899658203125 - ], - "bbox": [ - 59.40999984741211, - 683.97998046875, - 295.94000244140625, - 697.6599731445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 683.97998046875, - 295.94000244140625, - 697.6599731445312 - ] - } - ], - "tag": "rotate" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 315.9599914550781, - 97.51998138427734, - 552.5640869140625, - 129.9099884033203 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表した. これはインタ", - "origin": [ - 316.010009765625, - 107.91998291015625 - ], - "bbox": [ - 316.010009765625, - 97.51998138427734, - 409.32000732421875, - 111.22321319580078 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ー", - "origin": [ - 409.32000732421875, - 108.15321350097656 - ], - "bbox": [ - 409.32000732421875, - 97.72708129882812, - 419.65216064453125, - 110.14874267578125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ネット研究に関する研究倫理を", - "origin": [ - 420.4900207519531, - 108.0611572265625 - ], - "bbox": [ - 420.4900207519531, - 97.6611557006836, - 552.5640869140625, - 111.46121215820312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 316.010009765625, - 97.51998138427734, - 552.5640869140625, - 111.46121215820312 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "説いたものであり,", - "origin": [ - 315.9599914550781, - 123.1199951171875 - ], - "bbox": [ - 315.9599914550781, - 112.7199935913086, - 399.99517822265625, - 126.18999481201172 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 2012", - "origin": [ - 399.99517822265625, - 123.1199951171875 - ], - "bbox": [ - 399.99517822265625, - 112.90999603271484, - 422.3467712402344, - 129.9099884033203 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 年に新版が登場した", - "origin": [ - 422.3467712402344, - 123.1199951171875 - ], - "bbox": [ - 422.3467712402344, - 112.7199935913086, - 510.910400390625, - 126.18999481201172 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " [2].", - "origin": [ - 510.910400390625, - 123.1199951171875 - ], - "bbox": [ - 510.910400390625, - 112.90999603271484, - 525.969970703125, - 129.9099884033203 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 進化", - "origin": [ - 525.969970703125, - 123.1199951171875 - ], - "bbox": [ - 525.969970703125, - 112.7199935913086, - 552.3711547851562, - 126.18999481201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 112.7199935913086, - 552.3711547851562, - 129.9099884033203 - ] - } - ], - "tag": "rotate" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 315.8299865722656, - 202.33999633789062, - 552.6035766601562, - 245.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "重」", - "origin": [ - 315.8299865722656, - 212.739990234375 - ], - "bbox": [ - 315.8299865722656, - 202.33999633789062, - 330.2209777832031, - 215.80999755859375 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 331.0899963378906, - 210.33001708984375 - ], - "bbox": [ - 331.0899963378906, - 203.56991577148438, - 334.5675354003906, - 212.32554626464844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "恩恵」", - "origin": [ - 334.6999816894531, - 212.79998779296875 - ], - "bbox": [ - 334.6999816894531, - 202.39999389648438, - 358.3177795410156, - 215.8699951171875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 359.0699768066406, - 210.42999267578125 - ], - "bbox": [ - 359.0699768066406, - 203.66989135742188, - 362.5475158691406, - 212.42552185058594 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "正義」に加え,メンロレポ", - "origin": [ - 362.66998291015625, - 212.739990234375 - ], - "bbox": [ - 362.66998291015625, - 202.33999633789062, - 468.8905029296875, - 215.80999755859375 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 469.47998046875, - 209.15997314453125 - ], - "bbox": [ - 469.47998046875, - 202.39987182617188, - 478.24212646484375, - 211.15550231933594 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トでは", - "origin": [ - 478.7599792480469, - 212.79998779296875 - ], - "bbox": [ - 478.7599792480469, - 202.39999389648438, - 507.081787109375, - 215.8699951171875 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 507.081787109375, - 212.79998779296875 - ], - "bbox": [ - 507.081787109375, - 203.83987426757812, - 511.2499694824219, - 214.79551696777344 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "「", - "origin": [ - 511.2499694824219, - 210.5999755859375 - ], - "bbox": [ - 511.2499694824219, - 203.83987426757812, - 514.7275390625, - 212.5955047607422 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "法と公益", - "origin": [ - 514.739990234375, - 212.90997314453125 - ], - "bbox": [ - 514.739990234375, - 202.50997924804688, - 552.6035766601562, - 215.97998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8299865722656, - 202.33999633789062, - 552.6035766601562, - 215.97998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の尊重」 を柱としている. そのうち, メンロレポ", - "origin": [ - 315.9700012207031, - 227.54998779296875 - ], - "bbox": [ - 315.9700012207031, - 217.14999389648438, - 523.4675903320312, - 230.6199951171875 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 524.2999877929688, - 224.07000732421875 - ], - "bbox": [ - 524.2999877929688, - 217.30990600585938, - 533.0621337890625, - 226.06553649902344 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トで", - "origin": [ - 533.5800170898438, - 227.66998291015625 - ], - "bbox": [ - 533.5800170898438, - 217.26998901367188, - 552.4866333007812, - 230.739990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 217.14999389648438, - 552.4866333007812, - 230.739990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は倫理的な問題に関係する事例を多数掲載しているのも", - "origin": [ - 316.0, - 242.8800048828125 - ], - "bbox": [ - 316.0, - 231.93606567382812, - 552.47705078125, - 245.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999973177909851, - -0.0022999937646090984 - ], - "bbox": [ - 316.0, - 231.93606567382812, - 552.47705078125, - 245.95001220703125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 315.8699951171875, - 407.4355163574219, - 555.1474609375, - 440.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "なる.", - "origin": [ - 316.0199890136719, - 421.9200134277344 - ], - "bbox": [ - 316.0199890136719, - 411.1200256347656, - 337.3299865722656, - 425.0301208496094 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " IRB", - "origin": [ - 337.3299865722656, - 421.5247802734375 - ], - "bbox": [ - 337.3299865722656, - 411.3147888183594, - 362.29815673828125, - 428.3672180175781 - ] - }, - { - "size": 6.500100135803223, - "flags": 20, - "font": "*MS PMincho-Bold-9659", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " 1", - "origin": [ - 362.29815673828125, - 421.57720947265625 - ], - "bbox": [ - 362.29815673828125, - 411.19287109375, - 366.259521484375, - 425.99078369140625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " の審査官がサイバ", - "origin": [ - 366.259521484375, - 417.83551025390625 - ], - "bbox": [ - 366.259521484375, - 407.4355163574219, - 446.1907653808594, - 425.0433654785156 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 447.03997802734375, - 418.275146484375 - ], - "bbox": [ - 447.03997802734375, - 411.5150451660156, - 455.8021240234375, - 420.2890930175781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの専門家", - "origin": [ - 456.52996826171875, - 421.8050842285156 - ], - "bbox": [ - 456.52996826171875, - 411.40509033203125, - 552.7908935546875, - 425.0771789550781 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - 0.002099995268508792 - ], - "bbox": [ - 316.0199890136719, - 407.4355163574219, - 552.7908935546875, - 428.3672180175781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "でなくとも,研究の際に注意すべき点を確認できるため,", - "origin": [ - 315.8699951171875, - 436.9800109863281 - ], - "bbox": [ - 315.8699951171875, - 426.58001708984375, - 555.1474609375, - 440.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8699951171875, - 426.58001708984375, - 555.1474609375, - 440.0500183105469 - ] - } - ], - "tag": "rotate" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 315.8800048828125, - 441.20001220703125, - 552.5499877929688, - 469.8800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 315.8800048828125, - 451.6000061035156 - ], - "bbox": [ - 315.8800048828125, - 441.20001220703125, - 343.9208068847656, - 454.7653503417969 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 344.5299987792969, - 448.15740966796875 - ], - "bbox": [ - 344.5299987792969, - 441.3973083496094, - 353.2921447753906, - 450.1827392578125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティにおける倫理的な議論が欧米諸国", - "origin": [ - 353.8999938964844, - 451.6092529296875 - ], - "bbox": [ - 353.8999938964844, - 441.2092590332031, - 552.5499877929688, - 455.3546447753906 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999994158744812, - 0.0033999804873019457 - ], - "bbox": [ - 315.8800048828125, - 441.20001220703125, - 552.5499877929688, - 455.3546447753906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に比べ遅れている日本では特に有用な事例となるだろう.", - "origin": [ - 315.989990234375, - 466.80999755859375 - ], - "bbox": [ - 315.989990234375, - 456.4100036621094, - 549.9599609375, - 469.8800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 456.4100036621094, - 549.9599609375, - 469.8800048828125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 35, - "type": 0, - "bbox": [ - 315.989990234375, - 520.1983642578125, - 552.5623779296875, - 534.0713500976562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "にして,サイバ", - "origin": [ - 315.989990234375, - 530.7000122070312 - ], - "bbox": [ - 315.989990234375, - 520.2999877929688, - 381.25079345703125, - 533.9332275390625 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 381.8599853515625, - 527.1146850585938 - ], - "bbox": [ - 381.8599853515625, - 520.3545532226562, - 390.62213134765625, - 529.1321411132812 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する研究倫理指針を", - "origin": [ - 391.3499755859375, - 530.598388671875 - ], - "bbox": [ - 391.3499755859375, - 520.1983642578125, - 552.5623779296875, - 534.0713500976562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 315.989990234375, - 520.1983642578125, - 552.5623779296875, - 534.0713500976562 - ] - } - ], - "tag": "rotate" - }, - { - "number": 36, - "type": 0, - "bbox": [ - 315.9200134277344, - 535.2799682617188, - 552.6050415039062, - 563.9647827148438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "構築した. トップカンファレンスに採択されるような研", - "origin": [ - 315.9200134277344, - 546.219970703125 - ], - "bbox": [ - 315.9200134277344, - 535.2799682617188, - 552.5361938476562, - 549.2899780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 535.2799682617188, - 552.5361938476562, - 549.2899780273438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究は先進的な問題を扱っていることが多い. それらは同", - "origin": [ - 316.0, - 560.8599853515625 - ], - "bbox": [ - 316.0, - 550.0684204101562, - 552.6050415039062, - 563.9647827148438 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 316.0, - 550.0684204101562, - 552.6050415039062, - 563.9647827148438 - ] - } - ], - "tag": "rotate" - }, - { - "number": 39, - "type": 0, - "bbox": [ - 315.8900146484375, - 669.7999877929688, - 552.406005859375, - 683.6682739257812 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "た その後それらを対象に(a) 研究分野を表すトピッ", - "origin": [ - 315.8900146484375, - 680.2000122070312 - ], - "bbox": [ - 315.8900146484375, - 669.7999877929688, - 552.406005859375, - 683.6682739257812 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - 0.002099995268508792 - ], - "bbox": [ - 315.8900146484375, - 669.7999877929688, - 552.406005859375, - 683.6682739257812 - ] - } - ], - "tag": "rotate" - }, - { - "number": 40, - "type": 0, - "bbox": [ - 315.7799987792969, - 684.6300048828125, - 554.0239868164062, - 713.4099731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "クモデルの構築と(b)グレ", - "origin": [ - 315.7799987792969, - 695.030029296875 - ], - "bbox": [ - 315.7799987792969, - 684.6300048828125, - 433.52996826171875, - 698.3383178710938 - ] - }, - { - "size": 6.500100135803223, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 433.8199768066406, - 691.6397094726562 - ], - "bbox": [ - 433.8199768066406, - 684.8795776367188, - 442.5821228027344, - 693.654541015625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域/倫理の議論を含む論", - "origin": [ - 443.3199768066406, - 695.360595703125 - ], - "bbox": [ - 443.3199768066406, - 684.9605712890625, - 552.6126708984375, - 698.6710205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - 0.002199994632974267 - ], - "bbox": [ - 315.7799987792969, - 684.6300048828125, - 552.6126708984375, - 698.6710205078125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "文集合の構築を実施した(b)で得られた論文集合を(a)", - "origin": [ - 315.9700012207031, - 710.3399658203125 - ], - "bbox": [ - 315.9700012207031, - 699.93994140625, - 554.0239868164062, - 713.4099731445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9700012207031, - 699.93994140625, - 554.0239868164062, - 713.4099731445312 - ] - } - ], - "tag": "rotate" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 315.79998779296875, - 22.959985733032227, - 553.8812866210938, - 84.67000579833984 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いにも関わらず,影響が及ぶ関係者らも存在する. この", - "origin": [ - 315.9100036621094, - 33.82000732421875 - ], - "bbox": [ - 315.9100036621094, - 22.959985733032227, - 552.4099731445312, - 37.10997772216797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9100036621094, - 22.959985733032227, - 552.4099731445312, - 37.10997772216797 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ように研究の責任範囲や影響が医学の研究とは大きく異", - "origin": [ - 316.04998779296875, - 48.54998779296875 - ], - "bbox": [ - 316.04998779296875, - 38.149986267089844, - 552.1699829101562, - 51.61998748779297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.04998779296875, - 38.149986267089844, - 552.1699829101562, - 51.61998748779297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "なるため,", - "origin": [ - 316.0199890136719, - 63.4000244140625 - ], - "bbox": [ - 316.0199890136719, - 53.000022888183594, - 361.7292175292969, - 66.47002410888672 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " ICT", - "origin": [ - 361.7292175292969, - 63.4000244140625 - ], - "bbox": [ - 361.7292175292969, - 53.190025329589844, - 381.0469665527344, - 70.19002532958984 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 特有の倫理指針は度々議論されてきた", - "origin": [ - 381.0469665527344, - 63.4000244140625 - ], - "bbox": [ - 381.0469665527344, - 53.000022888183594, - 553.8812866210938, - 66.47002410888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0199890136719, - 53.000022888183594, - 553.8812866210938, - 70.19002532958984 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "2002", - "origin": [ - 315.79998779296875, - 77.8800048828125 - ], - "bbox": [ - 315.79998779296875, - 67.67000579833984, - 336.06439208984375, - 84.67000579833984 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "年,", - "origin": [ - 337.3999938964844, - 77.8800048828125 - ], - "bbox": [ - 337.3999938964844, - 67.4800033569336, - 354.04559326171875, - 80.95000457763672 - ] - }, - { - "size": 10.0, - "flags": 20, - "font": "*MS PMincho-Bold-9658", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": "Association of Internet Researchers", - "origin": [ - 353.16998291015625, - 77.8800048828125 - ], - "bbox": [ - 353.16998291015625, - 67.67000579833984, - 504.3149719238281, - 84.67000579833984 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9654", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " のメンバ", - "origin": [ - 504.3149719238281, - 77.8800048828125 - ], - "bbox": [ - 504.3149719238281, - 67.4800033569336, - 542.9187622070312, - 81.16997528076172 - ] - }, - { - "size": 6.500100135803223, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9655", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 543.280029296875, - 74.63995361328125 - ], - "bbox": [ - 543.280029296875, - 67.87985229492188, - 552.0421752929688, - 76.63548278808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.79998779296875, - 67.4800033569336, - 552.0421752929688, - 84.67000579833984 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 1, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_2": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 3, - "type": 0, - "bbox": [ - 59.209999084472656, - 191.45999145507812, - 295.95159912109375, - 219.8599853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "で得られたモデルに適用すると各分野ごとに注目すべき", - "origin": [ - 59.47999954223633, - 201.8599853515625 - ], - "bbox": [ - 59.47999954223633, - 191.45999145507812, - 295.95159912109375, - 204.92999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47999954223633, - 191.45999145507812, - 295.95159912109375, - 204.92999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文集合が得られたそれらを精読し, 倫理的な問題や", - "origin": [ - 59.209999084472656, - 216.78997802734375 - ], - "bbox": [ - 59.209999084472656, - 206.38998413085938, - 295.93780517578125, - 219.8599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.209999084472656, - 206.38998413085938, - 295.93780517578125, - 219.8599853515625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 59.470001220703125, - 221.48001098632812, - 281.9932861328125, - 234.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "その解決法を洗い出したのち, 倫理指針を構築した.", - "origin": [ - 59.470001220703125, - 231.8800048828125 - ], - "bbox": [ - 59.470001220703125, - 221.48001098632812, - 281.9932861328125, - 234.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.470001220703125, - 221.48001098632812, - 281.9932861328125, - 234.95001220703125 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 68.77999877929688, - 383.7900085449219, - 295.3631896972656, - 397.6400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集対象となるカンファレンスは攻撃技術を含むサイ", - "origin": [ - 68.77999877929688, - 394.2200012207031 - ], - "bbox": [ - 68.77999877929688, - 383.7900085449219, - 295.3631896972656, - 397.6400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.77999877929688, - 383.7900085449219, - 295.3631896972656, - 397.6400146484375 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.31999969482422, - 501.8299865722656, - 296.0732116699219, - 529.8099975585938 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集した論文をそれが扱っている研究課題ごとに分類", - "origin": [ - 68.77999877929688, - 512.22998046875 - ], - "bbox": [ - 68.77999877929688, - 501.8299865722656, - 295.7892150878906, - 515.2999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.77999877929688, - 501.8299865722656, - 295.7892150878906, - 515.2999877929688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "した. 論文の中には論文著者らによってキ", - "origin": [ - 59.31999969482422, - 526.7100219726562 - ], - "bbox": [ - 59.31999969482422, - 516.3099975585938, - 239.4923095703125, - 529.780029296875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 239.4199981689453, - 523.2200317382812 - ], - "bbox": [ - 239.4199981689453, - 516.4600219726562, - 248.18199157714844, - 525.2155151367188 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ワ", - "origin": [ - 248.69000244140625, - 526.7100219726562 - ], - "bbox": [ - 248.69000244140625, - 516.3099975585938, - 257.29998779296875, - 529.780029296875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 257.29998779296875, - 526.7100219726562 - ], - "bbox": [ - 257.29998779296875, - 516.4000244140625, - 258.3900146484375, - 528.7055053710938 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 258.3900146484375, - 523.1600341796875 - ], - "bbox": [ - 258.3900146484375, - 516.4000244140625, - 267.1520080566406, - 525.155517578125 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 267.1520080566406, - 523.1600341796875 - ], - "bbox": [ - 267.1520080566406, - 512.760009765625, - 270.1600036621094, - 529.8099975585938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドが設", - "origin": [ - 270.1600036621094, - 526.739990234375 - ], - "bbox": [ - 270.1600036621094, - 516.3399658203125, - 296.0732116699219, - 529.8099975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.31999969482422, - 512.760009765625, - 296.0732116699219, - 529.8099975585938 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.44000244140625, - 531.4400024414062, - 295.9581298828125, - 544.9100341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "定されているものも存在するが, 本手法ではそれらを用", - "origin": [ - 59.44000244140625, - 541.8400268554688 - ], - "bbox": [ - 59.44000244140625, - 531.4400024414062, - 295.9581298828125, - 544.9100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.44000244140625, - 531.4400024414062, - 295.9581298828125, - 544.9100341796875 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 59.42999267578125, - 546.2000122070312, - 296.0516052246094, - 574.7300415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いない.", - "origin": [ - 59.42999267578125, - 557.030029296875 - ], - "bbox": [ - 59.42999267578125, - 546.6300048828125, - 90.01109313964844, - 560.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.42999267578125, - 546.6300048828125, - 90.01109313964844, - 560.1000366210938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "自然言語処理を用いて, 論文中に現れる単語や", - "origin": [ - 99.01109313964844, - 557.030029296875 - ], - "bbox": [ - 99.01109313964844, - 546.2000122070312, - 295.96240234375, - 560.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.01109313964844, - 546.2000122070312, - 295.96240234375, - 560.1000366210938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "フレ", - "origin": [ - 59.50999450683594, - 571.570068359375 - ], - "bbox": [ - 59.50999450683594, - 561.1700439453125, - 78.13699340820312, - 574.6400756835938 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 78.60999298095703, - 568.02001953125 - ], - "bbox": [ - 78.60999298095703, - 561.260009765625, - 87.37199401855469, - 570.0155029296875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ズから論文をカテゴリ分けする. これには, ふた", - "origin": [ - 88.44999694824219, - 571.6600341796875 - ], - "bbox": [ - 88.44999694824219, - 561.260009765625, - 296.0516052246094, - 574.7300415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.50999450683594, - 561.1700439453125, - 296.0516052246094, - 574.7300415039062 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 59.44999694824219, - 576.2200317382812, - 295.93218994140625, - 590.1900634765625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "つの狙いが存在する. ひとつは本文から構成したトピッ", - "origin": [ - 59.44999694824219, - 587.1200561523438 - ], - "bbox": [ - 59.44999694824219, - 576.2200317382812, - 295.93218994140625, - 590.1900634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.44999694824219, - 576.2200317382812, - 295.93218994140625, - 590.1900634765625 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 59.28998565673828, - 591.0, - 296.07147216796875, - 664.4200439453125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "クを利用することで論文著者らが設定した観点とは別の", - "origin": [ - 59.28998565673828, - 601.7300415039062 - ], - "bbox": [ - 59.28998565673828, - 591.0, - 295.8399658203125, - 604.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.28998565673828, - 591.0, - 295.8399658203125, - 604.800048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "観点から論文を分類できる可能性があるというというこ", - "origin": [ - 59.47996520996094, - 616.7000732421875 - ], - "bbox": [ - 59.47996520996094, - 606.300048828125, - 295.91796875, - 619.7700805664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47996520996094, - 606.300048828125, - 295.91796875, - 619.7700805664062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とである. もうひとつは収集した論文集合の中から共通", - "origin": [ - 59.38996505737305, - 631.6500244140625 - ], - "bbox": [ - 59.38996505737305, - 621.25, - 295.9465637207031, - 634.7200317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.38996505737305, - 621.25, - 295.9465637207031, - 634.7200317382812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "する研究課題を抽出することで, それらが抱える倫理的", - "origin": [ - 59.369964599609375, - 646.5900268554688 - ], - "bbox": [ - 59.369964599609375, - 636.1900024414062, - 296.07147216796875, - 649.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.369964599609375, - 636.1900024414062, - 296.07147216796875, - 649.6600341796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な問題が明確になるということである.", - "origin": [ - 59.38996887207031, - 661.3500366210938 - ], - "bbox": [ - 59.38996887207031, - 650.9500122070312, - 224.53057861328125, - 664.4200439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.38996887207031, - 650.9500122070312, - 224.53057861328125, - 664.4200439453125 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 73.43997192382812, - 671.2000732421875, - 166.86270141601562, - 681.4200439453125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-1075", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2 ", - "origin": [ - 73.43997192382812, - 676.9200439453125 - ], - "bbox": [ - 73.43997192382812, - 671.2000732421875, - 77.9334716796875, - 678.6085205078125 - ] - }, - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "USENIX Security Symposium ", - "origin": [ - 77.51997375488281, - 679.800048828125 - ], - "bbox": [ - 77.51997375488281, - 674.77001953125, - 166.86270141601562, - 681.4200439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.43997192382812, - 671.2000732421875, - 166.86270141601562, - 681.4200439453125 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 77.09996032714844, - 683.1699829101562, - 205.074951171875, - 689.8200073242188 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "IEEE Symposium on Security and Privacy ", - "origin": [ - 77.09996032714844, - 688.2000122070312 - ], - "bbox": [ - 77.09996032714844, - 683.1699829101562, - 205.074951171875, - 689.8200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.09996032714844, - 683.1699829101562, - 205.074951171875, - 689.8200073242188 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 77.51996612548828, - 691.5700073242188, - 275.97857666015625, - 698.2200317382812 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "The ACM Conference on Computer and Communications Security ", - "origin": [ - 77.51996612548828, - 696.6000366210938 - ], - "bbox": [ - 77.51996612548828, - 691.5700073242188, - 275.97857666015625, - 698.2200317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.51996612548828, - 691.5700073242188, - 275.97857666015625, - 698.2200317382812 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 77.36996459960938, - 700.0900268554688, - 210.7429656982422, - 706.7400512695312 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Symposium On Usable Privacy and Security ", - "origin": [ - 77.36996459960938, - 705.1200561523438 - ], - "bbox": [ - 77.36996459960938, - 700.0900268554688, - 210.7429656982422, - 706.7400512695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.36996459960938, - 700.0900268554688, - 210.7429656982422, - 706.7400512695312 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 77.34998321533203, - 708.489990234375, - 294.8630065917969, - 715.1400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Network and Distributed System Security, Workshop on Usable Security ", - "origin": [ - 77.34998321533203, - 713.52001953125 - ], - "bbox": [ - 77.34998321533203, - 708.489990234375, - 294.8630065917969, - 715.1400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.34998321533203, - 708.489990234375, - 294.8630065917969, - 715.1400146484375 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 77.48001098632812, - 717.010009765625, - 260.30401611328125, - 723.6600341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Cyber-security Research Ethics Dialog & Strategy Workshop ", - "origin": [ - 77.48001098632812, - 722.0400390625 - ], - "bbox": [ - 77.48001098632812, - 717.010009765625, - 260.30401611328125, - 723.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.48001098632812, - 717.010009765625, - 260.30401611328125, - 723.6600341796875 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 77.52003479003906, - 725.3699951171875, - 247.2345428466797, - 732.02001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "The annual Privacy Enhancing Technologies Symposium ", - "origin": [ - 77.52003479003906, - 730.4000244140625 - ], - "bbox": [ - 77.52003479003906, - 725.3699951171875, - 247.2345428466797, - 732.02001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.52003479003906, - 725.3699951171875, - 247.2345428466797, - 732.02001953125 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 77.37004089355469, - 733.9299926757812, - 176.18923950195312, - 740.5800170898438 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Social Science Research Network ", - "origin": [ - 77.37004089355469, - 738.9600219726562 - ], - "bbox": [ - 77.37004089355469, - 733.9299926757812, - 176.18923950195312, - 740.5800170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.37004089355469, - 733.9299926757812, - 176.18923950195312, - 740.5800170898438 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 315.8999938964844, - 439.67999267578125, - 552.8990478515625, - 498.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集した論文の中には倫理的に議論の余地があるグ", - "origin": [ - 325.3399963378906, - 450.0799865722656 - ], - "bbox": [ - 325.3399963378906, - 439.67999267578125, - 552.8990478515625, - 453.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.3399963378906, - 439.67999267578125, - 552.8990478515625, - 453.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "レ", - "origin": [ - 316.1700134277344, - 464.65997314453125 - ], - "bbox": [ - 316.1700134277344, - 454.2599792480469, - 325.2200012207031, - 467.72998046875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 325.69000244140625, - 461.04998779296875 - ], - "bbox": [ - 325.69000244140625, - 454.28997802734375, - 334.4519958496094, - 463.0455017089844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の論文や, すでに倫理に関する議論を行ってい", - "origin": [ - 334.80999755859375, - 464.97998046875 - ], - "bbox": [ - 334.80999755859375, - 454.5799865722656, - 552.5105590820312, - 468.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.1700134277344, - 454.2599792480469, - 552.5105590820312, - 468.04998779296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る論文が存在した. それらは優先的に調査すべき論文で", - "origin": [ - 315.8999938964844, - 479.469970703125 - ], - "bbox": [ - 315.8999938964844, - 469.0699768066406, - 552.5184936523438, - 483.0199890136719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8999938964844, - 469.0699768066406, - 552.5184936523438, - 483.0199890136719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あるため, 集めた論文からグレ", - "origin": [ - 315.989990234375, - 494.8899841308594 - ], - "bbox": [ - 315.989990234375, - 484.489990234375, - 450.72918701171875, - 497.9599914550781 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 451.3299865722656, - 491.1099853515625 - ], - "bbox": [ - 451.3299865722656, - 484.3499755859375, - 460.09197998046875, - 493.1054992675781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域", - "origin": [ - 460.6899719238281, - 494.97998046875 - ], - "bbox": [ - 460.6899719238281, - 484.5799865722656, - 479.94915771484375, - 498.04998779296875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 479.94915771484375, - 494.97998046875 - ], - "bbox": [ - 479.94915771484375, - 483.9499816894531, - 482.5899658203125, - 496.9754943847656 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "10", - "origin": [ - 482.5899658203125, - 490.7099914550781 - ], - "bbox": [ - 482.5899658203125, - 483.9499816894531, - 490.3314514160156, - 492.70550537109375 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 490.3314514160156, - 490.7099914550781 - ], - "bbox": [ - 490.3314514160156, - 480.30999755859375, - 494.8299560546875, - 497.8999938964844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に関する論文", - "origin": [ - 494.8299560546875, - 494.8299865722656 - ], - "bbox": [ - 494.8299560546875, - 484.42999267578125, - 552.4869995117188, - 497.8999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 480.30999755859375, - 552.4869995117188, - 498.04998779296875 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 315.9599914550781, - 529.0999755859375, - 552.4579467773438, - 557.6600341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "グレ", - "origin": [ - 325.32000732421875, - 539.739990234375 - ], - "bbox": [ - 325.32000732421875, - 529.3399658203125, - 344.3048095703125, - 542.8099975585938 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 344.6499938964844, - 535.8599853515625 - ], - "bbox": [ - 344.6499938964844, - 529.0999755859375, - 353.4119873046875, - 537.85546875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域に関する論文か否かはタイトルと概要から", - "origin": [ - 353.7799987792969, - 539.6500244140625 - ], - "bbox": [ - 353.7799987792969, - 529.25, - 552.4579467773438, - 542.7200317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.32000732421875, - 529.0999755859375, - 552.4579467773438, - 542.8099975585938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "判断したここでは理論研究でないもの, 研究者によっ", - "origin": [ - 315.9599914550781, - 554.5900268554688 - ], - "bbox": [ - 315.9599914550781, - 544.1900024414062, - 552.41650390625, - 557.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 544.1900024414062, - 552.41650390625, - 557.6600341796875 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 315.8999938964844, - 558.8499755859375, - 554.4400024414062, - 572.7300415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "て管理された環境外に影響を及ぼす可能性のある研究,", - "origin": [ - 315.8999938964844, - 569.6600341796875 - ], - "bbox": [ - 315.8999938964844, - 558.8499755859375, - 554.4400024414062, - 572.7300415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8999938964844, - 558.8499755859375, - 554.4400024414062, - 572.7300415039062 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 316.02996826171875, - 574.0, - 552.5681762695312, - 587.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "そして倫理的に不明確な点を含む研究をグレ", - "origin": [ - 316.02996826171875, - 584.6300048828125 - ], - "bbox": [ - 316.02996826171875, - 574.22998046875, - 504.9895935058594, - 587.7000122070312 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 505.449951171875, - 580.760009765625 - ], - "bbox": [ - 505.449951171875, - 574.0, - 514.2119750976562, - 582.7554931640625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の論", - "origin": [ - 514.5699462890625, - 584.5700073242188 - ], - "bbox": [ - 514.5699462890625, - 574.1699829101562, - 552.5681762695312, - 587.6400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.02996826171875, - 574.0, - 552.5681762695312, - 587.7000122070312 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 316.010009765625, - 619.1599731445312, - 552.4810180664062, - 647.4800415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "明に倫理に関して議論している論文集合を作成する", - "origin": [ - 325.4200134277344, - 629.5599975585938 - ], - "bbox": [ - 325.4200134277344, - 619.1599731445312, - 552.4810180664062, - 632.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4200134277344, - 619.1599731445312, - 552.4810180664062, - 632.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ために, 正規表現による文書検索を用いた. 以下のキ", - "origin": [ - 316.010009765625, - 644.4100341796875 - ], - "bbox": [ - 316.010009765625, - 634.010009765625, - 543.3265991210938, - 647.4800415039062 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 543.260009765625, - 640.7100219726562 - ], - "bbox": [ - 543.260009765625, - 633.9500122070312, - 552.0220336914062, - 642.7055053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.010009765625, - 633.9500122070312, - 552.0220336914062, - 647.4800415039062 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 315.8699951171875, - 644.739990234375, - 552.6016235351562, - 662.4800415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ワ", - "origin": [ - 315.8699951171875, - 659.3900146484375 - ], - "bbox": [ - 315.8699951171875, - 648.989990234375, - 324.47998046875, - 662.4600219726562 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 324.47998046875, - 659.3900146484375 - ], - "bbox": [ - 324.47998046875, - 649.1199951171875, - 325.69000244140625, - 661.385498046875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 325.69000244140625, - 655.8800048828125 - ], - "bbox": [ - 325.69000244140625, - 649.1199951171875, - 334.4519958496094, - 657.87548828125 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 334.4519958496094, - 655.8800048828125 - ], - "bbox": [ - 334.4519958496094, - 645.47998046875, - 337.3399963378906, - 662.4800415039062 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドethic*, moral*, IRB or REB", - "origin": [ - 337.3399963378906, - 659.4100341796875 - ], - "bbox": [ - 337.3399963378906, - 648.5700073242188, - 467.21478271484375, - 662.4800415039062 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "11", - "origin": [ - 467.3899841308594, - 655.1400146484375 - ], - "bbox": [ - 467.3899841308594, - 648.3800048828125, - 475.3069763183594, - 657.135498046875 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 475.3069763183594, - 655.1400146484375 - ], - "bbox": [ - 475.3069763183594, - 644.739990234375, - 478.0899963378906, - 662.2100219726562 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "のうち, いずれか", - "origin": [ - 478.0899963378906, - 659.1400146484375 - ], - "bbox": [ - 478.0899963378906, - 648.739990234375, - 552.6016235351562, - 662.2100219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8699951171875, - 644.739990234375, - 552.6016235351562, - 662.4800415039062 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 315.9500427246094, - 663.8200073242188, - 552.4895629882812, - 692.1300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が論文中に現れた場合, それを倫理的な議論を含む論文", - "origin": [ - 315.97003173828125, - 674.2200317382812 - ], - "bbox": [ - 315.97003173828125, - 663.8200073242188, - 552.4895629882812, - 677.2900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.97003173828125, - 663.8200073242188, - 552.4895629882812, - 677.2900390625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "として扱った.", - "origin": [ - 315.9500427246094, - 689.0599975585938 - ], - "bbox": [ - 315.9500427246094, - 678.6599731445312, - 375.6156005859375, - 692.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9500427246094, - 678.6599731445312, - 375.6156005859375, - 692.1300048828125 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 326.23004150390625, - 721.3900146484375, - 519.7219848632812, - 742.030029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 6.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10748", - "color": 0, - "ascender": 1.2280000448226929, - "descender": -0.3070000112056732, - "text": "10", - "origin": [ - 326.6400451660156, - 729.7100219726562 - ], - "bbox": [ - 326.6400451660156, - 722.342041015625, - 333.12005615234375, - 731.552001953125 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10749", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " より正確には明らかに白とは言い切れない領域の論文.", - "origin": [ - 333.12005615234375, - 729.7100219726562 - ], - "bbox": [ - 333.12005615234375, - 721.3900146484375, - 519.7219848632812, - 732.166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.6400451660156, - 721.3900146484375, - 519.7219848632812, - 732.166015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "11 Research Ethics Board ", - "origin": [ - 326.23004150390625, - 738.9600219726562 - ], - "bbox": [ - 326.23004150390625, - 728.5599975585938, - 420.3495178222656, - 742.030029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.23004150390625, - 728.5599975585938, - 420.3495178222656, - 742.030029296875 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 315, - 719, - 410, - 720 - ], - "image_path": "images/2_315_719_410_720.jpg" - } - ], - "tables": [ - { - "bbox": [ - 66.72, - 32.790000915527344, - 288.9700012207031, - 163.800048828125 - ], - "image_path": "tables/2_66_32_288_163.jpg" - } - ], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 31.790000915527344, - 612.0, - 164.800048828125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 191.45999145507812, - 612.0, - 498.04998779296875 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 59.28998565673828, - 501.8299865722656, - 296.0732116699219, - 698.2200317382812 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.8699951171875, - 501.8299865722656, - 554.4400024414062, - 698.2200317382812 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 700.0900268554688, - 612.0, - 715.1400146484375 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 77.37004089355469, - 717.010009765625, - 260.30401611328125, - 742.030029296875 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315, - 717.010009765625, - 519.7219848632812, - 742.030029296875 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.58999633789062, - 32.790000915527344, - 261.9162902832031, - 150.36004638671875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表1: 論文収集元", - "origin": [ - 141.16000366210938, - 43.53997802734375 - ], - "bbox": [ - 141.16000366210938, - 32.790000915527344, - 214.00999450683594, - 46.71001434326172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.16000366210938, - 32.790000915527344, - 214.00999450683594, - 46.71001434326172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "カンファレンス", - "origin": [ - 86.04000091552734, - 53.2900390625 - ], - "bbox": [ - 86.04000091552734, - 42.890037536621094, - 145.08941650390625, - 56.36003875732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.04000091552734, - 42.890037536621094, - 145.08941650390625, - 56.36003875732422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "年代", - "origin": [ - 181.57000732421875, - 53.91998291015625 - ], - "bbox": [ - 181.57000732421875, - 43.27824401855469, - 199.08819580078125, - 56.98998260498047 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999048113822937, - -0.013798686675727367 - ], - "bbox": [ - 181.57000732421875, - 43.27824401855469, - 199.08819580078125, - 56.98998260498047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "USENIX Sec.�", - "origin": [ - 86.1500015258789, - 66.5 - ], - "bbox": [ - 86.1500015258789, - 56.099998474121094, - 144.1320037841797, - 69.56999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.1500015258789, - 56.099998474121094, - 144.1320037841797, - 69.56999969482422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2013-2016 ", - "origin": [ - 170.38999938964844, - 66.53997802734375 - ], - "bbox": [ - 170.38999938964844, - 56.139976501464844, - 212.6715087890625, - 69.60997772216797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38999938964844, - 56.139976501464844, - 212.6715087890625, - 69.60997772216797 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "249 ", - "origin": [ - 245.50999450683594, - 66.44000244140625 - ], - "bbox": [ - 245.50999450683594, - 56.040000915527344, - 261.6694030761719, - 69.72329711914062 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999128580093384, - 0.013198849745094776 - ], - "bbox": [ - 245.50999450683594, - 56.040000915527344, - 261.6694030761719, - 69.72329711914062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "IEEE S & P\"", - "origin": [ - 88.38999938964844, - 77.969970703125 - ], - "bbox": [ - 88.38999938964844, - 67.5699691772461, - 141.97320556640625, - 81.03997039794922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.38999938964844, - 67.5699691772461, - 141.97320556640625, - 81.03997039794922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2013-2017 ", - "origin": [ - 170.38998413085938, - 77.92999267578125 - ], - "bbox": [ - 170.38998413085938, - 67.52999114990234, - 212.85289001464844, - 80.99999237060547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38998413085938, - 67.52999114990234, - 212.85289001464844, - 80.99999237060547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "183 ", - "origin": [ - 245.63999938964844, - 77.8800048828125 - ], - "bbox": [ - 245.63999938964844, - 67.4800033569336, - 261.8359069824219, - 81.1605453491211 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999155402183533, - 0.012998901307582855 - ], - "bbox": [ - 245.63999938964844, - 67.4800033569336, - 261.8359069824219, - 81.1605453491211 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ACM ccs", - "origin": [ - 92.04000091552734, - 89.20001220703125 - ], - "bbox": [ - 92.04000091552734, - 78.80001068115234, - 135.06700134277344, - 92.27001190185547 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4", - "origin": [ - 135.07000732421875, - 85.21002197265625 - ], - "bbox": [ - 135.07000732421875, - 74.81002044677734, - 138.73001098632812, - 88.28002166748047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.04000091552734, - 74.81002044677734, - 138.73001098632812, - 92.27001190185547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2016 ", - "origin": [ - 181.19000244140625, - 89.21002197265625 - ], - "bbox": [ - 181.19000244140625, - 78.81002044677734, - 201.8459930419922, - 92.28002166748047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.19000244140625, - 78.81002044677734, - 201.8459930419922, - 92.28002166748047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "138 ", - "origin": [ - 245.75999450683594, - 89.15997314453125 - ], - "bbox": [ - 245.75999450683594, - 78.75997161865234, - 261.9162902832031, - 92.43677520751953 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999181032180786, - 0.012798951007425785 - ], - "bbox": [ - 245.75999450683594, - 78.75997161865234, - 261.9162902832031, - 92.43677520751953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "SOUPS\" ", - "origin": [ - 98.48999786376953, - 100.6500244140625 - ], - "bbox": [ - 98.48999786376953, - 90.2500228881836, - 134.7667999267578, - 103.72002410888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.48999786376953, - 90.2500228881836, - 134.7667999267578, - 103.72002410888672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2014-2016 ", - "origin": [ - 170.38999938964844, - 100.61004638671875 - ], - "bbox": [ - 170.38999938964844, - 90.21004486083984, - 212.6715087890625, - 103.68004608154297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38999938964844, - 90.21004486083984, - 212.6715087890625, - 103.68004608154297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "65 ", - "origin": [ - 247.72000122070312, - 100.6500244140625 - ], - "bbox": [ - 247.72000122070312, - 90.2500228881836, - 259.57720947265625, - 103.72002410888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.72000122070312, - 90.2500228881836, - 259.57720947265625, - 103.72002410888672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "USESEC and NDSS", - "origin": [ - 72.58999633789062, - 111.8900146484375 - ], - "bbox": [ - 72.58999633789062, - 101.4900131225586, - 154.322998046875, - 115.59001922607422 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "0", - "origin": [ - 154.3199920654297, - 108.25 - ], - "bbox": [ - 154.3199920654297, - 97.8499984741211, - 157.82998657226562, - 111.31999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.58999633789062, - 97.8499984741211, - 157.82998657226562, - 115.59001922607422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2013-2016 ", - "origin": [ - 170.38998413085938, - 111.9000244140625 - ], - "bbox": [ - 170.38998413085938, - 101.5000228881836, - 212.67149353027344, - 114.97002410888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38998413085938, - 101.5000228881836, - 212.67149353027344, - 114.97002410888672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "253 ", - "origin": [ - 245.50999450683594, - 111.80999755859375 - ], - "bbox": [ - 245.50999450683594, - 101.40999603271484, - 261.785400390625, - 115.09317016601562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999141693115234, - 0.013098875060677528 - ], - "bbox": [ - 245.50999450683594, - 101.40999603271484, - 261.785400390625, - 115.09317016601562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "CREDS' ", - "origin": [ - 97.72000122070312, - 123.29998779296875 - ], - "bbox": [ - 97.72000122070312, - 112.89998626708984, - 134.9776153564453, - 126.36998748779297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.72000122070312, - 112.89998626708984, - 134.9776153564453, - 126.36998748779297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2013-2014 ", - "origin": [ - 170.38999938964844, - 123.27996826171875 - ], - "bbox": [ - 170.38999938964844, - 112.87996673583984, - 212.84890747070312, - 126.34996795654297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38999938964844, - 112.87996673583984, - 212.84890747070312, - 126.34996795654297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "8 ", - "origin": [ - 250.0800018310547, - 123.3499755859375 - ], - "bbox": [ - 250.0800018310547, - 112.9499740600586, - 257.3500061035156, - 126.41997528076172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 250.0800018310547, - 112.9499740600586, - 257.3500061035156, - 126.41997528076172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "PETS", - "origin": [ - 101.33000183105469, - 134.72998046875 - ], - "bbox": [ - 101.33000183105469, - 124.3299789428711, - 125.8528060913086, - 137.79998779296875 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "0", - "origin": [ - 125.86000061035156, - 130.8599853515625 - ], - "bbox": [ - 125.86000061035156, - 120.4599838256836, - 129.1300048828125, - 133.92999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.33000183105469, - 120.4599838256836, - 129.1300048828125, - 137.79998779296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2015-2017 ", - "origin": [ - 170.38999938964844, - 134.70001220703125 - ], - "bbox": [ - 170.38999938964844, - 124.30001068115234, - 212.8529052734375, - 137.77001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38999938964844, - 124.30001068115234, - 212.8529052734375, - 137.77001953125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "93 ", - "origin": [ - 247.76998901367188, - 134.73004150390625 - ], - "bbox": [ - 247.76998901367188, - 124.33003997802734, - 259.7503967285156, - 137.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.76998901367188, - 124.33003997802734, - 259.7503967285156, - 137.800048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "SSRN\" ", - "origin": [ - 101.51998901367188, - 145.97003173828125 - ], - "bbox": [ - 101.51998901367188, - 135.57003784179688, - 131.8109893798828, - 149.0400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.51998901367188, - 135.57003784179688, - 131.8109893798828, - 149.0400390625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Any ", - "origin": [ - 182.16998291015625, - 145.780029296875 - ], - "bbox": [ - 182.16998291015625, - 135.38003540039062, - 201.1199951171875, - 150.36004638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.16998291015625, - 135.38003540039062, - 201.1199951171875, - 150.36004638671875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "32 ", - "origin": [ - 247.8000030517578, - 146.08001708984375 - ], - "bbox": [ - 247.8000030517578, - 135.37643432617188, - 259.4751892089844, - 149.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9996622204780579, - -0.02599121630191803 - ], - "bbox": [ - 247.8000030517578, - 135.37643432617188, - 259.4751892089844, - 149.1500244140625 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 222.1300048828125, - 38.220008850097656, - 288.9700012207031, - 58.42500686645508 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集した論文数", - "origin": [ - 222.1300048828125, - 53.82000732421875 - ], - "bbox": [ - 222.1300048828125, - 43.420005798339844, - 282.6117858886719, - 56.89000701904297 - ] - }, - { - "size": 15.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10753", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " l", - "origin": [ - 282.6117858886719, - 53.82000732421875 - ], - "bbox": [ - 282.6117858886719, - 38.220008850097656, - 288.9700012207031, - 58.42500686645508 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.1300048828125, - 38.220008850097656, - 288.9700012207031, - 58.42500686645508 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 109.68000793457031, - 148.82003784179688, - 261.9438171386719, - 163.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "All ", - "origin": [ - 109.68000793457031, - 159.33001708984375 - ], - "bbox": [ - 109.68000793457031, - 148.93002319335938, - 123.75160217285156, - 162.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.68000793457031, - 148.93002319335938, - 123.75160217285156, - 162.4000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Any ", - "origin": [ - 182.17001342773438, - 159.22003173828125 - ], - "bbox": [ - 182.17001342773438, - 148.82003784179688, - 201.12002563476562, - 163.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.17001342773438, - 148.82003784179688, - 201.12002563476562, - 163.800048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "994 ", - "origin": [ - 245.49000549316406, - 159.53997802734375 - ], - "bbox": [ - 245.49000549316406, - 148.92437744140625, - 261.9438171386719, - 162.6099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999141693115234, - -0.013098875060677528 - ], - "bbox": [ - 245.49000549316406, - 148.92437744140625, - 261.9438171386719, - 162.6099853515625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.209999084472656, - 191.45999145507812, - 295.95159912109375, - 219.8599853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "で得られたモデルに適用すると各分野ごとに注目すべき", - "origin": [ - 59.47999954223633, - 201.8599853515625 - ], - "bbox": [ - 59.47999954223633, - 191.45999145507812, - 295.95159912109375, - 204.92999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47999954223633, - 191.45999145507812, - 295.95159912109375, - 204.92999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文集合が得られたそれらを精読し, 倫理的な問題や", - "origin": [ - 59.209999084472656, - 216.78997802734375 - ], - "bbox": [ - 59.209999084472656, - 206.38998413085938, - 295.93780517578125, - 219.8599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.209999084472656, - 206.38998413085938, - 295.93780517578125, - 219.8599853515625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 59.470001220703125, - 221.48001098632812, - 281.9932861328125, - 234.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "その解決法を洗い出したのち, 倫理指針を構築した.", - "origin": [ - 59.470001220703125, - 231.8800048828125 - ], - "bbox": [ - 59.470001220703125, - 221.48001098632812, - 281.9932861328125, - 234.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.470001220703125, - 221.48001098632812, - 281.9932861328125, - 234.95001220703125 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 59.310001373291016, - 245.38003540039062, - 133.36480712890625, - 260.0571594238281 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3.1 ", - "origin": [ - 59.310001373291016, - 255.780029296875 - ], - "bbox": [ - 59.310001373291016, - 245.38003540039062, - 75.82360076904297, - 259.1192321777344 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9998671412467957, - 0.0162978358566761 - ], - "bbox": [ - 59.310001373291016, - 245.38003540039062, - 75.82360076904297, - 259.1192321777344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文の収集", - "origin": [ - 85.08000183105469, - 256.2000732421875 - ], - "bbox": [ - 85.08000183105469, - 245.80007934570312, - 133.36480712890625, - 260.0571594238281 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9998671412467957, - 0.0162978358566761 - ], - "bbox": [ - 85.08000183105469, - 245.80007934570312, - 133.36480712890625, - 260.0571594238281 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 68.93000030517578, - 264.0299987792969, - 295.9988098144531, - 278.067626953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トップカンファレンスの論文収集手法について記述す", - "origin": [ - 68.93000030517578, - 274.42999267578125 - ], - "bbox": [ - 68.93000030517578, - 264.0299987792969, - 295.9988098144531, - 278.067626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 68.93000030517578, - 264.0299987792969, - 295.9988098144531, - 278.067626953125 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 59.28999328613281, - 278.9599914550781, - 296.75750732421875, - 337.32000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る. サイバ", - "origin": [ - 59.34000015258789, - 289.3599853515625 - ], - "bbox": [ - 59.34000015258789, - 278.9599914550781, - 106.45440673828125, - 292.55718994140625 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 107.06000518798828, - 285.9188232421875 - ], - "bbox": [ - 107.06000518798828, - 279.1588134765625, - 115.82200622558594, - 287.93798828125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する倫理は時代や技術と", - "origin": [ - 116.34000396728516, - 289.40386962890625 - ], - "bbox": [ - 116.34000396728516, - 279.0038757324219, - 296.0199890136719, - 292.93316650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - 0.002699990291148424 - ], - "bbox": [ - 59.34000015258789, - 278.9599914550781, - 296.0199890136719, - 292.93316650390625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "共に変化する. 最新の技術とそれに関する議論のみを倫", - "origin": [ - 59.29999923706055, - 304.4200134277344 - ], - "bbox": [ - 59.29999923706055, - 294.02001953125, - 295.9770202636719, - 307.4900207519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.29999923706055, - 294.02001953125, - 295.9770202636719, - 307.4900207519531 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理指針に反映させるためには, それに応じた論文を収集", - "origin": [ - 59.28999328613281, - 319.260009765625 - ], - "bbox": [ - 59.28999328613281, - 308.8600158691406, - 295.9908752441406, - 322.5400085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.28999328613281, - 308.8600158691406, - 295.9908752441406, - 322.5400085449219 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "しなくてはならない. 筆者らは2012年に登場したメン", - "origin": [ - 59.319976806640625, - 334.25 - ], - "bbox": [ - 59.319976806640625, - 323.8500061035156, - 296.75750732421875, - 337.32000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.319976806640625, - 323.8500061035156, - 296.75750732421875, - 337.32000732421875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 59.220001220703125, - 338.6400146484375, - 296.0428466796875, - 382.65106201171875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ロレポ", - "origin": [ - 60.2400016784668, - 349.0400085449219 - ], - "bbox": [ - 60.2400016784668, - 338.6400146484375, - 87.43000793457031, - 352.4647521972656 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 87.98001098632812, - 345.7293395996094 - ], - "bbox": [ - 87.98001098632812, - 338.9693298339844, - 96.74201202392578, - 347.74676513671875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トがサイバ", - "origin": [ - 97.27001190185547, - 349.2125549316406 - ], - "bbox": [ - 97.27001190185547, - 338.81256103515625, - 144.2744140625, - 352.40008544921875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 144.8800048828125, - 345.8415832519531 - ], - "bbox": [ - 144.8800048828125, - 339.0815734863281, - 153.64199829101562, - 347.8590087890625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの研究倫理に特に影", - "origin": [ - 154.15000915527344, - 349.3447570800781 - ], - "bbox": [ - 154.15000915527344, - 338.94476318359375, - 296.0428466796875, - 352.7695617675781 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 60.2400016784668, - 338.6400146484375, - 296.0428466796875, - 352.7695617675781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "響を与えていると考え, その出版年をひとつの区切りと", - "origin": [ - 59.220001220703125, - 364.2900085449219 - ], - "bbox": [ - 59.220001220703125, - 353.8900146484375, - 295.9962158203125, - 367.3600158691406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.220001220703125, - 353.8900146484375, - 295.9962158203125, - 367.3600158691406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "して論文収集を行うこととした.", - "origin": [ - 59.31999969482422, - 379.42999267578125 - ], - "bbox": [ - 59.31999969482422, - 368.6706237792969, - 195.7319793701172, - 382.65106201171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999986469745636, - -0.00519992969930172 - ], - "bbox": [ - 59.31999969482422, - 368.6706237792969, - 195.7319793701172, - 382.65106201171875 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 68.77999877929688, - 383.7900085449219, - 295.3631896972656, - 397.6400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集対象となるカンファレンスは攻撃技術を含むサイ", - "origin": [ - 68.77999877929688, - 394.2200012207031 - ], - "bbox": [ - 68.77999877929688, - 383.7900085449219, - 295.3631896972656, - 397.6400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.77999877929688, - 383.7900085449219, - 295.3631896972656, - 397.6400146484375 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 58.83000183105469, - 398.510009765625, - 296.0238037109375, - 427.2200012207031 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "バ", - "origin": [ - 58.83000183105469, - 408.9100036621094 - ], - "bbox": [ - 58.83000183105469, - 398.510009765625, - 68.52000427246094, - 412.0042419433594 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 69.1300048828125, - 405.5057678222656 - ], - "bbox": [ - 69.1300048828125, - 398.7457580566406, - 77.89200592041016, - 407.523193359375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する投稿が多いものや倫理の議論", - "origin": [ - 78.41000366210938, - 408.948974609375 - ], - "bbox": [ - 78.41000366210938, - 398.5489807128906, - 296.0238037109375, - 412.56292724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 58.83000183105469, - 398.510009765625, - 296.0238037109375, - 412.56292724609375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を多く含むものを中心に扱ったまた, 今回の実験では", - "origin": [ - 59.43000030517578, - 424.1499938964844 - ], - "bbox": [ - 59.43000030517578, - 413.75, - 295.95758056640625, - 427.2200012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.43000030517578, - 413.75, - 295.95758056640625, - 427.2200012207031 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.18001937866211, - 428.7699890136719, - 296.9790344238281, - 472.0899963378906 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "再実験や検証を容易にするために本研究遂行時点(2017", - "origin": [ - 59.41001892089844, - 439.16998291015625 - ], - "bbox": [ - 59.41001892089844, - 428.7699890136719, - 296.9790344238281, - 442.239990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41001892089844, - 428.7699890136719, - 296.9790344238281, - 442.239990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "年8月)でオ", - "origin": [ - 59.18001937866211, - 453.9499816894531 - ], - "bbox": [ - 59.18001937866211, - 443.54998779296875, - 114.9720230102539, - 457.0199890136719 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 115.81002044677734, - 450.3399963378906 - ], - "bbox": [ - 115.81002044677734, - 443.5799865722656, - 124.572021484375, - 452.33551025390625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "プンアクセス可能な論文のみを扱うこと", - "origin": [ - 125.1200180053711, - 453.9800109863281 - ], - "bbox": [ - 125.1200180053711, - 443.58001708984375, - 295.99029541015625, - 457.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.18001937866211, - 443.54998779296875, - 295.99029541015625, - 457.0500183105469 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とした.", - "origin": [ - 59.38999938964844, - 469.0199890136719 - ], - "bbox": [ - 59.38999938964844, - 458.30828857421875, - 90.24980926513672, - 472.0899963378906 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999489784240723, - -0.010099484585225582 - ], - "bbox": [ - 59.38999938964844, - 458.30828857421875, - 90.24980926513672, - 472.0899963378906 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.310001373291016, - 482.67999267578125, - 277.33880615234375, - 496.695068359375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3.2 ", - "origin": [ - 59.310001373291016, - 493.0799865722656 - ], - "bbox": [ - 59.310001373291016, - 482.67999267578125, - 76.0635986328125, - 496.19189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 59.310001373291016, - 482.67999267578125, - 76.0635986328125, - 496.19189453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トピックモデルを用いた論文のカテゴライズ", - "origin": [ - 88.56999969482422, - 493.15313720703125 - ], - "bbox": [ - 88.56999969482422, - 482.7531433105469, - 277.33880615234375, - 496.695068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 88.56999969482422, - 482.7531433105469, - 277.33880615234375, - 496.695068359375 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.31999969482422, - 501.8299865722656, - 296.0732116699219, - 529.8099975585938 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集した論文をそれが扱っている研究課題ごとに分類", - "origin": [ - 68.77999877929688, - 512.22998046875 - ], - "bbox": [ - 68.77999877929688, - 501.8299865722656, - 295.7892150878906, - 515.2999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.77999877929688, - 501.8299865722656, - 295.7892150878906, - 515.2999877929688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "した. 論文の中には論文著者らによってキ", - "origin": [ - 59.31999969482422, - 526.7100219726562 - ], - "bbox": [ - 59.31999969482422, - 516.3099975585938, - 239.4923095703125, - 529.780029296875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 239.4199981689453, - 523.2200317382812 - ], - "bbox": [ - 239.4199981689453, - 516.4600219726562, - 248.18199157714844, - 525.2155151367188 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ワ", - "origin": [ - 248.69000244140625, - 526.7100219726562 - ], - "bbox": [ - 248.69000244140625, - 516.3099975585938, - 257.29998779296875, - 529.780029296875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 257.29998779296875, - 526.7100219726562 - ], - "bbox": [ - 257.29998779296875, - 516.4000244140625, - 258.3900146484375, - 528.7055053710938 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 258.3900146484375, - 523.1600341796875 - ], - "bbox": [ - 258.3900146484375, - 516.4000244140625, - 267.1520080566406, - 525.155517578125 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 267.1520080566406, - 523.1600341796875 - ], - "bbox": [ - 267.1520080566406, - 512.760009765625, - 270.1600036621094, - 529.8099975585938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドが設", - "origin": [ - 270.1600036621094, - 526.739990234375 - ], - "bbox": [ - 270.1600036621094, - 516.3399658203125, - 296.0732116699219, - 529.8099975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.31999969482422, - 512.760009765625, - 296.0732116699219, - 529.8099975585938 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.44000244140625, - 531.4400024414062, - 295.9581298828125, - 544.9100341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "定されているものも存在するが, 本手法ではそれらを用", - "origin": [ - 59.44000244140625, - 541.8400268554688 - ], - "bbox": [ - 59.44000244140625, - 531.4400024414062, - 295.9581298828125, - 544.9100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.44000244140625, - 531.4400024414062, - 295.9581298828125, - 544.9100341796875 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 59.42999267578125, - 546.2000122070312, - 296.0516052246094, - 574.7300415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いない.", - "origin": [ - 59.42999267578125, - 557.030029296875 - ], - "bbox": [ - 59.42999267578125, - 546.6300048828125, - 90.01109313964844, - 560.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.42999267578125, - 546.6300048828125, - 90.01109313964844, - 560.1000366210938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "自然言語処理を用いて, 論文中に現れる単語や", - "origin": [ - 99.01109313964844, - 557.030029296875 - ], - "bbox": [ - 99.01109313964844, - 546.2000122070312, - 295.96240234375, - 560.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.01109313964844, - 546.2000122070312, - 295.96240234375, - 560.1000366210938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "フレ", - "origin": [ - 59.50999450683594, - 571.570068359375 - ], - "bbox": [ - 59.50999450683594, - 561.1700439453125, - 78.13699340820312, - 574.6400756835938 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 78.60999298095703, - 568.02001953125 - ], - "bbox": [ - 78.60999298095703, - 561.260009765625, - 87.37199401855469, - 570.0155029296875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ズから論文をカテゴリ分けする. これには, ふた", - "origin": [ - 88.44999694824219, - 571.6600341796875 - ], - "bbox": [ - 88.44999694824219, - 561.260009765625, - 296.0516052246094, - 574.7300415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.50999450683594, - 561.1700439453125, - 296.0516052246094, - 574.7300415039062 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 59.44999694824219, - 576.2200317382812, - 295.93218994140625, - 590.1900634765625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "つの狙いが存在する. ひとつは本文から構成したトピッ", - "origin": [ - 59.44999694824219, - 587.1200561523438 - ], - "bbox": [ - 59.44999694824219, - 576.2200317382812, - 295.93218994140625, - 590.1900634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.44999694824219, - 576.2200317382812, - 295.93218994140625, - 590.1900634765625 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 59.28998565673828, - 591.0, - 296.07147216796875, - 664.4200439453125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "クを利用することで論文著者らが設定した観点とは別の", - "origin": [ - 59.28998565673828, - 601.7300415039062 - ], - "bbox": [ - 59.28998565673828, - 591.0, - 295.8399658203125, - 604.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.28998565673828, - 591.0, - 295.8399658203125, - 604.800048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "観点から論文を分類できる可能性があるというというこ", - "origin": [ - 59.47996520996094, - 616.7000732421875 - ], - "bbox": [ - 59.47996520996094, - 606.300048828125, - 295.91796875, - 619.7700805664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47996520996094, - 606.300048828125, - 295.91796875, - 619.7700805664062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とである. もうひとつは収集した論文集合の中から共通", - "origin": [ - 59.38996505737305, - 631.6500244140625 - ], - "bbox": [ - 59.38996505737305, - 621.25, - 295.9465637207031, - 634.7200317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.38996505737305, - 621.25, - 295.9465637207031, - 634.7200317382812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "する研究課題を抽出することで, それらが抱える倫理的", - "origin": [ - 59.369964599609375, - 646.5900268554688 - ], - "bbox": [ - 59.369964599609375, - 636.1900024414062, - 296.07147216796875, - 649.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.369964599609375, - 636.1900024414062, - 296.07147216796875, - 649.6600341796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "な問題が明確になるということである.", - "origin": [ - 59.38996887207031, - 661.3500366210938 - ], - "bbox": [ - 59.38996887207031, - 650.9500122070312, - 224.53057861328125, - 664.4200439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.38996887207031, - 650.9500122070312, - 224.53057861328125, - 664.4200439453125 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 73.43997192382812, - 671.2000732421875, - 166.86270141601562, - 681.4200439453125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-1075", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2 ", - "origin": [ - 73.43997192382812, - 676.9200439453125 - ], - "bbox": [ - 73.43997192382812, - 671.2000732421875, - 77.9334716796875, - 678.6085205078125 - ] - }, - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "USENIX Security Symposium ", - "origin": [ - 77.51997375488281, - 679.800048828125 - ], - "bbox": [ - 77.51997375488281, - 674.77001953125, - 166.86270141601562, - 681.4200439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.43997192382812, - 671.2000732421875, - 166.86270141601562, - 681.4200439453125 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 77.09996032714844, - 683.1699829101562, - 205.074951171875, - 689.8200073242188 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "IEEE Symposium on Security and Privacy ", - "origin": [ - 77.09996032714844, - 688.2000122070312 - ], - "bbox": [ - 77.09996032714844, - 683.1699829101562, - 205.074951171875, - 689.8200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.09996032714844, - 683.1699829101562, - 205.074951171875, - 689.8200073242188 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 77.51996612548828, - 691.5700073242188, - 275.97857666015625, - 698.2200317382812 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "The ACM Conference on Computer and Communications Security ", - "origin": [ - 77.51996612548828, - 696.6000366210938 - ], - "bbox": [ - 77.51996612548828, - 691.5700073242188, - 275.97857666015625, - 698.2200317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.51996612548828, - 691.5700073242188, - 275.97857666015625, - 698.2200317382812 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 77.36996459960938, - 700.0900268554688, - 210.7429656982422, - 706.7400512695312 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Symposium On Usable Privacy and Security ", - "origin": [ - 77.36996459960938, - 705.1200561523438 - ], - "bbox": [ - 77.36996459960938, - 700.0900268554688, - 210.7429656982422, - 706.7400512695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.36996459960938, - 700.0900268554688, - 210.7429656982422, - 706.7400512695312 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 77.34998321533203, - 708.489990234375, - 294.8630065917969, - 715.1400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Network and Distributed System Security, Workshop on Usable Security ", - "origin": [ - 77.34998321533203, - 713.52001953125 - ], - "bbox": [ - 77.34998321533203, - 708.489990234375, - 294.8630065917969, - 715.1400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.34998321533203, - 708.489990234375, - 294.8630065917969, - 715.1400146484375 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 77.48001098632812, - 717.010009765625, - 260.30401611328125, - 723.6600341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Cyber-security Research Ethics Dialog & Strategy Workshop ", - "origin": [ - 77.48001098632812, - 722.0400390625 - ], - "bbox": [ - 77.48001098632812, - 717.010009765625, - 260.30401611328125, - 723.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.48001098632812, - 717.010009765625, - 260.30401611328125, - 723.6600341796875 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 77.52003479003906, - 725.3699951171875, - 247.2345428466797, - 732.02001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "The annual Privacy Enhancing Technologies Symposium ", - "origin": [ - 77.52003479003906, - 730.4000244140625 - ], - "bbox": [ - 77.52003479003906, - 725.3699951171875, - 247.2345428466797, - 732.02001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.52003479003906, - 725.3699951171875, - 247.2345428466797, - 732.02001953125 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 77.37004089355469, - 733.9299926757812, - 176.18923950195312, - 740.5800170898438 - ], - "lines": [ - { - "spans": [ - { - "size": 5.0, - "flags": 20, - "font": "*MS Mincho-Bold-10754", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Social Science Research Network ", - "origin": [ - 77.37004089355469, - 738.9600219726562 - ], - "bbox": [ - 77.37004089355469, - 733.9299926757812, - 176.18923950195312, - 740.5800170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.37004089355469, - 733.9299926757812, - 176.18923950195312, - 740.5800170898438 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 315.86004638671875, - 23.190027236938477, - 554.9404296875, - 96.20000457763672 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "提案手法ではトピックモデルを用いて研究課題を抽出", - "origin": [ - 325.5700378417969, - 33.59002685546875 - ], - "bbox": [ - 325.5700378417969, - 23.190027236938477, - 552.5177612304688, - 36.66002655029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5700378417969, - 23.190027236938477, - 552.5177612304688, - 36.66002655029297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "し,各論文を分類した. トピックモデルは,与えられた文", - "origin": [ - 315.8800354003906, - 48.33001708984375 - ], - "bbox": [ - 315.8800354003906, - 37.930015563964844, - 552.4900512695312, - 51.76000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8800354003906, - 37.930015563964844, - 552.4900512695312, - 51.76000213623047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "章がどのようなトピックについて言 及しているのかを抽", - "origin": [ - 315.86004638671875, - 63.22998046875 - ], - "bbox": [ - 315.86004638671875, - 52.829978942871094, - 552.407958984375, - 66.66997528076172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.86004638671875, - 52.829978942871094, - 552.407958984375, - 66.66997528076172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "出する教師無し学習の手法である. 本研究では,Python", - "origin": [ - 315.8699951171875, - 78.54998779296875 - ], - "bbox": [ - 315.8699951171875, - 67.43284606933594, - 554.9404296875, - 81.61998748779297 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999955296516418, - -0.002999986754730344 - ], - "bbox": [ - 315.8699951171875, - 67.43284606933594, - 554.9404296875, - 81.61998748779297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "実装[3]によるLatent Dirichlet Allocation (LDA)を用", - "origin": [ - 316.07000732421875, - 92.78997802734375 - ], - "bbox": [ - 316.07000732421875, - 82.3600082397461, - 552.489990234375, - 96.20000457763672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.07000732421875, - 82.3600082397461, - 552.489990234375, - 96.20000457763672 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 315.95001220703125, - 97.55001068115234, - 557.7235717773438, - 141.3599853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いたこのモデルでは, 文章中に現れる単語がトピック", - "origin": [ - 315.989990234375, - 107.95001220703125 - ], - "bbox": [ - 315.989990234375, - 97.55001068115234, - 552.6156616210938, - 111.64421081542969 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999955296516418, - 0.002999986754730344 - ], - "bbox": [ - 315.989990234375, - 97.55001068115234, - 552.6156616210938, - 111.64421081542969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "と呼ばれる未知の事前分布に従い, 各文書がトピックに", - "origin": [ - 315.95001220703125, - 123.0999755859375 - ], - "bbox": [ - 315.95001220703125, - 112.6999740600586, - 552.6235961914062, - 126.43999481201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.95001220703125, - 112.6999740600586, - 552.6235961914062, - 126.43999481201172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "関する未知の事前分布を持つことを仮定している. LDA ", - "origin": [ - 315.9800109863281, - 138.28997802734375 - ], - "bbox": [ - 315.9800109863281, - 126.99547576904297, - 557.7235717773438, - 141.3599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999931454658508, - -0.003699974622577429 - ], - "bbox": [ - 315.9800109863281, - 126.99547576904297, - 557.7235717773438, - 141.3599853515625 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 315.9200134277344, - 142.61001586914062, - 552.4939575195312, - 186.05999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "では単語とトピックの結合分布学習を目的としている.", - "origin": [ - 315.9200134277344, - 153.010009765625 - ], - "bbox": [ - 315.9200134277344, - 142.61001586914062, - 549.9749145507812, - 156.08001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 142.61001586914062, - 549.9749145507812, - 156.08001708984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "すなわち, デ", - "origin": [ - 315.9300231933594, - 167.8699951171875 - ], - "bbox": [ - 315.9300231933594, - 157.47000122070312, - 372.35003662109375, - 170.94000244140625 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 372.6200256347656, - 164.239990234375 - ], - "bbox": [ - 372.6200256347656, - 157.47999572753906, - 381.38201904296875, - 166.23548889160156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タセットに現れるすべての単語, および", - "origin": [ - 382.0100402832031, - 167.94000244140625 - ], - "bbox": [ - 382.0100402832031, - 157.54000854492188, - 552.288818359375, - 171.010009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9300231933594, - 157.47000122070312, - 552.288818359375, - 171.010009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "それぞれの文章に現れる単語の分布をLDAに与えるこ", - "origin": [ - 316.0299987792969, - 182.989990234375 - ], - "bbox": [ - 316.0299987792969, - 172.01470947265625, - 552.4939575195312, - 186.05999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - -0.002199994632974267 - ], - "bbox": [ - 316.0299987792969, - 172.01470947265625, - 552.4939575195312, - 186.05999755859375 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 315.7300109863281, - 187.44998168945312, - 552.6245727539062, - 275.42999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とで, それぞれのトピックにある単語が属する確率とそ", - "origin": [ - 315.95001220703125, - 197.8499755859375 - ], - "bbox": [ - 315.95001220703125, - 187.44998168945312, - 552.6245727539062, - 200.91998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.95001220703125, - 187.44998168945312, - 552.6245727539062, - 200.91998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "れに基づくトピック毎の単語の集合が得られる.", - "origin": [ - 315.9200134277344, - 212.75 - ], - "bbox": [ - 315.9200134277344, - 202.35000610351562, - 519.3582153320312, - 215.82000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 202.35000610351562, - 519.3582153320312, - 215.82000732421875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 325.59002685546875, - 227.6500244140625 - ], - "bbox": [ - 325.59002685546875, - 217.25003051757812, - 353.6444396972656, - 230.72003173828125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 354.2500305175781, - 224.1700439453125 - ], - "bbox": [ - 354.2500305175781, - 217.41004943847656, - 363.01202392578125, - 226.16554260253906 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する表現の違いにより, 同", - "origin": [ - 363.52001953125, - 227.58001708984375 - ], - "bbox": [ - 363.52001953125, - 217.18002319335938, - 552.1400756835938, - 230.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.59002685546875, - 217.18002319335938, - 552.1400756835938, - 230.72003173828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "様のトピックが別のグル", - "origin": [ - 315.9600524902344, - 242.46002197265625 - ], - "bbox": [ - 315.9600524902344, - 232.06002807617188, - 424.0679016113281, - 245.530029296875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 424.820068359375, - 239.02001953125 - ], - "bbox": [ - 424.820068359375, - 232.26002502441406, - 433.5820617675781, - 241.01551818847656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "プに分類されることがある", - "origin": [ - 434.37005615234375, - 242.59002685546875 - ], - "bbox": [ - 434.37005615234375, - 232.19003295898438, - 552.5199584960938, - 245.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9600524902344, - 232.06002807617188, - 552.5199584960938, - 245.6600341796875 - ] - }, - { - "spans": [ - { - "size": 11.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10751", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "[4]. ", - "origin": [ - 316.9200134277344, - 257.19000244140625 - ], - "bbox": [ - 316.9200134277344, - 245.75, - 331.3190002441406, - 260.6058654785156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "したがって, 完成したモデルは手作業で確認する必", - "origin": [ - 336.0400085449219, - 257.24163818359375 - ], - "bbox": [ - 336.0400085449219, - 246.84164428710938, - 552.3756713867188, - 260.8958435058594 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - 0.0026999900583177805 - ], - "bbox": [ - 316.9200134277344, - 245.75, - 552.3756713867188, - 260.8958435058594 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "要がある. 提案手法では, それぞれのトピックを最もよ", - "origin": [ - 315.7300109863281, - 272.3599853515625 - ], - "bbox": [ - 315.7300109863281, - 261.9599914550781, - 552.47607421875, - 275.42999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7300109863281, - 261.9599914550781, - 552.47607421875, - 275.42999267578125 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 315.8000183105469, - 277.0899963378906, - 552.6087646484375, - 395.30999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "く表現する30語を抜き出し, それを用いてトピック間", - "origin": [ - 315.8000183105469, - 287.489990234375 - ], - "bbox": [ - 315.8000183105469, - 277.0899963378906, - 552.2570190429688, - 290.55999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8000183105469, - 277.0899963378906, - 552.2570190429688, - 290.55999755859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の類似度を手作業で測ったそして, 複数の類似するト", - "origin": [ - 316.0400390625, - 302.489990234375 - ], - "bbox": [ - 316.0400390625, - 292.0899963378906, - 552.6087646484375, - 305.55999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0400390625, - 292.0899963378906, - 552.6087646484375, - 305.55999755859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ピックから構成される集合をカテゴリとして扱うことと", - "origin": [ - 315.95001220703125, - 317.3399963378906 - ], - "bbox": [ - 315.95001220703125, - 306.94000244140625, - 552.5439453125, - 320.4100036621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.95001220703125, - 306.94000244140625, - 552.5439453125, - 320.4100036621094 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "した.", - "origin": [ - 315.8800048828125, - 332.29998779296875 - ], - "bbox": [ - 315.8800048828125, - 321.6164855957031, - 337.19781494140625, - 335.3699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999114871025085, - -0.01329882349818945 - ], - "bbox": [ - 315.8800048828125, - 321.6164855957031, - 337.19781494140625, - 335.3699951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トピックモデル構成の前処理として論文の PDFから", - "origin": [ - 325.489990234375, - 346.989990234375 - ], - "bbox": [ - 325.489990234375, - 336.5899963378906, - 552.4675903320312, - 350.69000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.489990234375, - 336.5899963378906, - 552.4675903320312, - 350.69000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "単語の抽出を行い, 可読不能な文字やストップワ", - "origin": [ - 315.8299865722656, - 362.5400085449219 - ], - "bbox": [ - 315.8299865722656, - 351.6219177246094, - 523.0751953125, - 365.6100158691406 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ー", - "origin": [ - 523.0751953125, - 362.02191162109375 - ], - "bbox": [ - 523.0751953125, - 351.7469482421875, - 533.052001953125, - 364.0174255371094 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ドを", - "origin": [ - 533.052001953125, - 358.5069580078125 - ], - "bbox": [ - 533.052001953125, - 348.1069641113281, - 552.4146118164062, - 365.23944091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 315.8299865722656, - 348.1069641113281, - 552.4146118164062, - 365.6100158691406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "除外した. 併せて, 単語のみならず複数の単語から成る", - "origin": [ - 316.45001220703125, - 377.1099853515625 - ], - "bbox": [ - 316.45001220703125, - 366.7099914550781, - 552.487060546875, - 380.17999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.45001220703125, - 366.7099914550781, - 552.487060546875, - 380.17999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "旬も解析対象とするために,n-gram (n = 1..5)を用いた.", - "origin": [ - 315.9599914550781, - 392.239990234375 - ], - "bbox": [ - 315.9599914550781, - 381.1332092285156, - 550.0183715820312, - 395.30999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 315.9599914550781, - 381.1332092285156, - 550.0183715820312, - 395.30999755859375 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 316.1300048828125, - 405.77001953125, - 552.4019775390625, - 435.07000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3.3 ", - "origin": [ - 316.1300048828125, - 416.1700134277344 - ], - "bbox": [ - 316.1300048828125, - 405.77001953125, - 332.6938171386719, - 419.28143310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 316.1300048828125, - 405.77001953125, - 332.6938171386719, - 419.28143310546875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "グレ", - "origin": [ - 342.7300109863281, - 416.6965026855469 - ], - "bbox": [ - 342.7300109863281, - 406.2965087890625, - 360.7300109863281, - 419.8114929199219 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 361.69000244140625, - 413.05389404296875 - ], - "bbox": [ - 361.69000244140625, - 406.29388427734375, - 370.0880126953125, - 415.0704040527344 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の論文の抽出, 倫理に言及する論文の", - "origin": [ - 370.70001220703125, - 416.87640380859375 - ], - "bbox": [ - 370.70001220703125, - 406.3953552246094, - 552.4019775390625, - 420.18548583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 342.7300109863281, - 406.29388427734375, - 552.4019775390625, - 420.18548583984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "抽出", - "origin": [ - 341.82000732421875, - 432.0 - ], - "bbox": [ - 341.82000732421875, - 421.6000061035156, - 361.21661376953125, - 435.07000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.82000732421875, - 421.6000061035156, - 361.21661376953125, - 435.07000732421875 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 315.8999938964844, - 439.67999267578125, - 552.8990478515625, - 498.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集した論文の中には倫理的に議論の余地があるグ", - "origin": [ - 325.3399963378906, - 450.0799865722656 - ], - "bbox": [ - 325.3399963378906, - 439.67999267578125, - 552.8990478515625, - 453.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.3399963378906, - 439.67999267578125, - 552.8990478515625, - 453.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "レ", - "origin": [ - 316.1700134277344, - 464.65997314453125 - ], - "bbox": [ - 316.1700134277344, - 454.2599792480469, - 325.2200012207031, - 467.72998046875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 325.69000244140625, - 461.04998779296875 - ], - "bbox": [ - 325.69000244140625, - 454.28997802734375, - 334.4519958496094, - 463.0455017089844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の論文や, すでに倫理に関する議論を行ってい", - "origin": [ - 334.80999755859375, - 464.97998046875 - ], - "bbox": [ - 334.80999755859375, - 454.5799865722656, - 552.5105590820312, - 468.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.1700134277344, - 454.2599792480469, - 552.5105590820312, - 468.04998779296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る論文が存在した. それらは優先的に調査すべき論文で", - "origin": [ - 315.8999938964844, - 479.469970703125 - ], - "bbox": [ - 315.8999938964844, - 469.0699768066406, - 552.5184936523438, - 483.0199890136719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8999938964844, - 469.0699768066406, - 552.5184936523438, - 483.0199890136719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あるため, 集めた論文からグレ", - "origin": [ - 315.989990234375, - 494.8899841308594 - ], - "bbox": [ - 315.989990234375, - 484.489990234375, - 450.72918701171875, - 497.9599914550781 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 451.3299865722656, - 491.1099853515625 - ], - "bbox": [ - 451.3299865722656, - 484.3499755859375, - 460.09197998046875, - 493.1054992675781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域", - "origin": [ - 460.6899719238281, - 494.97998046875 - ], - "bbox": [ - 460.6899719238281, - 484.5799865722656, - 479.94915771484375, - 498.04998779296875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 479.94915771484375, - 494.97998046875 - ], - "bbox": [ - 479.94915771484375, - 483.9499816894531, - 482.5899658203125, - 496.9754943847656 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "10", - "origin": [ - 482.5899658203125, - 490.7099914550781 - ], - "bbox": [ - 482.5899658203125, - 483.9499816894531, - 490.3314514160156, - 492.70550537109375 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 490.3314514160156, - 490.7099914550781 - ], - "bbox": [ - 490.3314514160156, - 480.30999755859375, - 494.8299560546875, - 497.8999938964844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に関する論文", - "origin": [ - 494.8299560546875, - 494.8299865722656 - ], - "bbox": [ - 494.8299560546875, - 484.42999267578125, - 552.4869995117188, - 497.8999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 480.30999755859375, - 552.4869995117188, - 498.04998779296875 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 315.7900085449219, - 499.489990234375, - 552.4063720703125, - 528.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "や倫理に言及している論文を抽出し, それぞれの論文集", - "origin": [ - 315.949951171875, - 509.8899841308594 - ], - "bbox": [ - 315.949951171875, - 499.489990234375, - 552.4063720703125, - 512.9599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.949951171875, - 499.489990234375, - 552.4063720703125, - 512.9599609375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "合を作成した.", - "origin": [ - 315.7900085449219, - 525.1300048828125 - ], - "bbox": [ - 315.7900085449219, - 514.0421752929688, - 375.6007995605469, - 528.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999338984489441, - -0.011499240063130856 - ], - "bbox": [ - 315.7900085449219, - 514.0421752929688, - 375.6007995605469, - 528.2000122070312 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 315.9599914550781, - 529.0999755859375, - 552.4579467773438, - 557.6600341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "グレ", - "origin": [ - 325.32000732421875, - 539.739990234375 - ], - "bbox": [ - 325.32000732421875, - 529.3399658203125, - 344.3048095703125, - 542.8099975585938 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 344.6499938964844, - 535.8599853515625 - ], - "bbox": [ - 344.6499938964844, - 529.0999755859375, - 353.4119873046875, - 537.85546875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域に関する論文か否かはタイトルと概要から", - "origin": [ - 353.7799987792969, - 539.6500244140625 - ], - "bbox": [ - 353.7799987792969, - 529.25, - 552.4579467773438, - 542.7200317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.32000732421875, - 529.0999755859375, - 552.4579467773438, - 542.8099975585938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "判断したここでは理論研究でないもの, 研究者によっ", - "origin": [ - 315.9599914550781, - 554.5900268554688 - ], - "bbox": [ - 315.9599914550781, - 544.1900024414062, - 552.41650390625, - 557.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 544.1900024414062, - 552.41650390625, - 557.6600341796875 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 315.8999938964844, - 558.8499755859375, - 554.4400024414062, - 572.7300415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "て管理された環境外に影響を及ぼす可能性のある研究,", - "origin": [ - 315.8999938964844, - 569.6600341796875 - ], - "bbox": [ - 315.8999938964844, - 558.8499755859375, - 554.4400024414062, - 572.7300415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8999938964844, - 558.8499755859375, - 554.4400024414062, - 572.7300415039062 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 316.02996826171875, - 574.0, - 552.5681762695312, - 587.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "そして倫理的に不明確な点を含む研究をグレ", - "origin": [ - 316.02996826171875, - 584.6300048828125 - ], - "bbox": [ - 316.02996826171875, - 574.22998046875, - 504.9895935058594, - 587.7000122070312 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 505.449951171875, - 580.760009765625 - ], - "bbox": [ - 505.449951171875, - 574.0, - 514.2119750976562, - 582.7554931640625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の論", - "origin": [ - 514.5699462890625, - 584.5700073242188 - ], - "bbox": [ - 514.5699462890625, - 574.1699829101562, - 552.5681762695312, - 587.6400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.02996826171875, - 574.0, - 552.5681762695312, - 587.7000122070312 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 315.8900146484375, - 589.02001953125, - 552.5491333007812, - 618.0900268554688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "文とした加えて, 被験者実験を含む研究もグレ", - "origin": [ - 315.929931640625, - 599.6199951171875 - ], - "bbox": [ - 315.929931640625, - 589.219970703125, - 523.8207397460938, - 602.6900024414062 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 524.2899169921875, - 595.780029296875 - ], - "bbox": [ - 524.2899169921875, - 589.02001953125, - 533.0519409179688, - 597.7755126953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域", - "origin": [ - 533.409912109375, - 599.6500244140625 - ], - "bbox": [ - 533.409912109375, - 589.25, - 552.5491333007812, - 602.7200317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.929931640625, - 589.02001953125, - 552.5491333007812, - 602.7200317382812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究とした.", - "origin": [ - 315.8900146484375, - 615.02001953125 - ], - "bbox": [ - 315.8900146484375, - 603.6326293945312, - 366.010009765625, - 618.0900268554688 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9998059868812561, - -0.019696177914738655 - ], - "bbox": [ - 315.8900146484375, - 603.6326293945312, - 366.010009765625, - 618.0900268554688 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 316.010009765625, - 619.1599731445312, - 552.4810180664062, - 647.4800415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "明に倫理に関して議論している論文集合を作成する", - "origin": [ - 325.4200134277344, - 629.5599975585938 - ], - "bbox": [ - 325.4200134277344, - 619.1599731445312, - 552.4810180664062, - 632.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4200134277344, - 619.1599731445312, - 552.4810180664062, - 632.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ために, 正規表現による文書検索を用いた. 以下のキ", - "origin": [ - 316.010009765625, - 644.4100341796875 - ], - "bbox": [ - 316.010009765625, - 634.010009765625, - 543.3265991210938, - 647.4800415039062 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 543.260009765625, - 640.7100219726562 - ], - "bbox": [ - 543.260009765625, - 633.9500122070312, - 552.0220336914062, - 642.7055053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.010009765625, - 633.9500122070312, - 552.0220336914062, - 647.4800415039062 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 315.8699951171875, - 644.739990234375, - 552.6016235351562, - 662.4800415039062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ワ", - "origin": [ - 315.8699951171875, - 659.3900146484375 - ], - "bbox": [ - 315.8699951171875, - 648.989990234375, - 324.47998046875, - 662.4600219726562 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 324.47998046875, - 659.3900146484375 - ], - "bbox": [ - 324.47998046875, - 649.1199951171875, - 325.69000244140625, - 661.385498046875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 325.69000244140625, - 655.8800048828125 - ], - "bbox": [ - 325.69000244140625, - 649.1199951171875, - 334.4519958496094, - 657.87548828125 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 334.4519958496094, - 655.8800048828125 - ], - "bbox": [ - 334.4519958496094, - 645.47998046875, - 337.3399963378906, - 662.4800415039062 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドethic*, moral*, IRB or REB", - "origin": [ - 337.3399963378906, - 659.4100341796875 - ], - "bbox": [ - 337.3399963378906, - 648.5700073242188, - 467.21478271484375, - 662.4800415039062 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "11", - "origin": [ - 467.3899841308594, - 655.1400146484375 - ], - "bbox": [ - 467.3899841308594, - 648.3800048828125, - 475.3069763183594, - 657.135498046875 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 475.3069763183594, - 655.1400146484375 - ], - "bbox": [ - 475.3069763183594, - 644.739990234375, - 478.0899963378906, - 662.2100219726562 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "のうち, いずれか", - "origin": [ - 478.0899963378906, - 659.1400146484375 - ], - "bbox": [ - 478.0899963378906, - 648.739990234375, - 552.6016235351562, - 662.2100219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8699951171875, - 644.739990234375, - 552.6016235351562, - 662.4800415039062 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 315.9500427246094, - 663.8200073242188, - 552.4895629882812, - 692.1300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が論文中に現れた場合, それを倫理的な議論を含む論文", - "origin": [ - 315.97003173828125, - 674.2200317382812 - ], - "bbox": [ - 315.97003173828125, - 663.8200073242188, - 552.4895629882812, - 677.2900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.97003173828125, - 663.8200073242188, - 552.4895629882812, - 677.2900390625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "として扱った.", - "origin": [ - 315.9500427246094, - 689.0599975585938 - ], - "bbox": [ - 315.9500427246094, - 678.6599731445312, - 375.6156005859375, - 692.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9500427246094, - 678.6599731445312, - 375.6156005859375, - 692.1300048828125 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 326.23004150390625, - 721.3900146484375, - 519.7219848632812, - 742.030029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 6.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10748", - "color": 0, - "ascender": 1.2280000448226929, - "descender": -0.3070000112056732, - "text": "10", - "origin": [ - 326.6400451660156, - 729.7100219726562 - ], - "bbox": [ - 326.6400451660156, - 722.342041015625, - 333.12005615234375, - 731.552001953125 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10749", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " より正確には明らかに白とは言い切れない領域の論文.", - "origin": [ - 333.12005615234375, - 729.7100219726562 - ], - "bbox": [ - 333.12005615234375, - 721.3900146484375, - 519.7219848632812, - 732.166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.6400451660156, - 721.3900146484375, - 519.7219848632812, - 732.166015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "11 Research Ethics Board ", - "origin": [ - 326.23004150390625, - 738.9600219726562 - ], - "bbox": [ - 326.23004150390625, - 728.5599975585938, - 420.3495178222656, - 742.030029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.23004150390625, - 728.5599975585938, - 420.3495178222656, - 742.030029296875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 1, - "type": 0, - "bbox": [ - 222.1300048828125, - 38.220008850097656, - 288.9700012207031, - 58.42500686645508 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集した論文数", - "origin": [ - 222.1300048828125, - 53.82000732421875 - ], - "bbox": [ - 222.1300048828125, - 43.420005798339844, - 282.6117858886719, - 56.89000701904297 - ] - }, - { - "size": 15.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10753", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " l", - "origin": [ - 282.6117858886719, - 53.82000732421875 - ], - "bbox": [ - 282.6117858886719, - 38.220008850097656, - 288.9700012207031, - 58.42500686645508 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.1300048828125, - 38.220008850097656, - 288.9700012207031, - 58.42500686645508 - ] - } - ], - "tag": "on-table" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 72.58999633789062, - 32.790000915527344, - 261.9162902832031, - 150.36004638671875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表1: 論文収集元", - "origin": [ - 141.16000366210938, - 43.53997802734375 - ], - "bbox": [ - 141.16000366210938, - 32.790000915527344, - 214.00999450683594, - 46.71001434326172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.16000366210938, - 32.790000915527344, - 214.00999450683594, - 46.71001434326172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "カンファレンス", - "origin": [ - 86.04000091552734, - 53.2900390625 - ], - "bbox": [ - 86.04000091552734, - 42.890037536621094, - 145.08941650390625, - 56.36003875732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.04000091552734, - 42.890037536621094, - 145.08941650390625, - 56.36003875732422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "年代", - "origin": [ - 181.57000732421875, - 53.91998291015625 - ], - "bbox": [ - 181.57000732421875, - 43.27824401855469, - 199.08819580078125, - 56.98998260498047 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999048113822937, - -0.013798686675727367 - ], - "bbox": [ - 181.57000732421875, - 43.27824401855469, - 199.08819580078125, - 56.98998260498047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "USENIX Sec.�", - "origin": [ - 86.1500015258789, - 66.5 - ], - "bbox": [ - 86.1500015258789, - 56.099998474121094, - 144.1320037841797, - 69.56999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.1500015258789, - 56.099998474121094, - 144.1320037841797, - 69.56999969482422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2013-2016 ", - "origin": [ - 170.38999938964844, - 66.53997802734375 - ], - "bbox": [ - 170.38999938964844, - 56.139976501464844, - 212.6715087890625, - 69.60997772216797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38999938964844, - 56.139976501464844, - 212.6715087890625, - 69.60997772216797 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "249 ", - "origin": [ - 245.50999450683594, - 66.44000244140625 - ], - "bbox": [ - 245.50999450683594, - 56.040000915527344, - 261.6694030761719, - 69.72329711914062 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999128580093384, - 0.013198849745094776 - ], - "bbox": [ - 245.50999450683594, - 56.040000915527344, - 261.6694030761719, - 69.72329711914062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "IEEE S & P\"", - "origin": [ - 88.38999938964844, - 77.969970703125 - ], - "bbox": [ - 88.38999938964844, - 67.5699691772461, - 141.97320556640625, - 81.03997039794922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.38999938964844, - 67.5699691772461, - 141.97320556640625, - 81.03997039794922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2013-2017 ", - "origin": [ - 170.38998413085938, - 77.92999267578125 - ], - "bbox": [ - 170.38998413085938, - 67.52999114990234, - 212.85289001464844, - 80.99999237060547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38998413085938, - 67.52999114990234, - 212.85289001464844, - 80.99999237060547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "183 ", - "origin": [ - 245.63999938964844, - 77.8800048828125 - ], - "bbox": [ - 245.63999938964844, - 67.4800033569336, - 261.8359069824219, - 81.1605453491211 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999155402183533, - 0.012998901307582855 - ], - "bbox": [ - 245.63999938964844, - 67.4800033569336, - 261.8359069824219, - 81.1605453491211 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ACM ccs", - "origin": [ - 92.04000091552734, - 89.20001220703125 - ], - "bbox": [ - 92.04000091552734, - 78.80001068115234, - 135.06700134277344, - 92.27001190185547 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4", - "origin": [ - 135.07000732421875, - 85.21002197265625 - ], - "bbox": [ - 135.07000732421875, - 74.81002044677734, - 138.73001098632812, - 88.28002166748047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.04000091552734, - 74.81002044677734, - 138.73001098632812, - 92.27001190185547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2016 ", - "origin": [ - 181.19000244140625, - 89.21002197265625 - ], - "bbox": [ - 181.19000244140625, - 78.81002044677734, - 201.8459930419922, - 92.28002166748047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.19000244140625, - 78.81002044677734, - 201.8459930419922, - 92.28002166748047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "138 ", - "origin": [ - 245.75999450683594, - 89.15997314453125 - ], - "bbox": [ - 245.75999450683594, - 78.75997161865234, - 261.9162902832031, - 92.43677520751953 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999181032180786, - 0.012798951007425785 - ], - "bbox": [ - 245.75999450683594, - 78.75997161865234, - 261.9162902832031, - 92.43677520751953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "SOUPS\" ", - "origin": [ - 98.48999786376953, - 100.6500244140625 - ], - "bbox": [ - 98.48999786376953, - 90.2500228881836, - 134.7667999267578, - 103.72002410888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.48999786376953, - 90.2500228881836, - 134.7667999267578, - 103.72002410888672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2014-2016 ", - "origin": [ - 170.38999938964844, - 100.61004638671875 - ], - "bbox": [ - 170.38999938964844, - 90.21004486083984, - 212.6715087890625, - 103.68004608154297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38999938964844, - 90.21004486083984, - 212.6715087890625, - 103.68004608154297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "65 ", - "origin": [ - 247.72000122070312, - 100.6500244140625 - ], - "bbox": [ - 247.72000122070312, - 90.2500228881836, - 259.57720947265625, - 103.72002410888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.72000122070312, - 90.2500228881836, - 259.57720947265625, - 103.72002410888672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "USESEC and NDSS", - "origin": [ - 72.58999633789062, - 111.8900146484375 - ], - "bbox": [ - 72.58999633789062, - 101.4900131225586, - 154.322998046875, - 115.59001922607422 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "0", - "origin": [ - 154.3199920654297, - 108.25 - ], - "bbox": [ - 154.3199920654297, - 97.8499984741211, - 157.82998657226562, - 111.31999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.58999633789062, - 97.8499984741211, - 157.82998657226562, - 115.59001922607422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2013-2016 ", - "origin": [ - 170.38998413085938, - 111.9000244140625 - ], - "bbox": [ - 170.38998413085938, - 101.5000228881836, - 212.67149353027344, - 114.97002410888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38998413085938, - 101.5000228881836, - 212.67149353027344, - 114.97002410888672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "253 ", - "origin": [ - 245.50999450683594, - 111.80999755859375 - ], - "bbox": [ - 245.50999450683594, - 101.40999603271484, - 261.785400390625, - 115.09317016601562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999141693115234, - 0.013098875060677528 - ], - "bbox": [ - 245.50999450683594, - 101.40999603271484, - 261.785400390625, - 115.09317016601562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "CREDS' ", - "origin": [ - 97.72000122070312, - 123.29998779296875 - ], - "bbox": [ - 97.72000122070312, - 112.89998626708984, - 134.9776153564453, - 126.36998748779297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.72000122070312, - 112.89998626708984, - 134.9776153564453, - 126.36998748779297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2013-2014 ", - "origin": [ - 170.38999938964844, - 123.27996826171875 - ], - "bbox": [ - 170.38999938964844, - 112.87996673583984, - 212.84890747070312, - 126.34996795654297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38999938964844, - 112.87996673583984, - 212.84890747070312, - 126.34996795654297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "8 ", - "origin": [ - 250.0800018310547, - 123.3499755859375 - ], - "bbox": [ - 250.0800018310547, - 112.9499740600586, - 257.3500061035156, - 126.41997528076172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 250.0800018310547, - 112.9499740600586, - 257.3500061035156, - 126.41997528076172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "PETS", - "origin": [ - 101.33000183105469, - 134.72998046875 - ], - "bbox": [ - 101.33000183105469, - 124.3299789428711, - 125.8528060913086, - 137.79998779296875 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "0", - "origin": [ - 125.86000061035156, - 130.8599853515625 - ], - "bbox": [ - 125.86000061035156, - 120.4599838256836, - 129.1300048828125, - 133.92999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.33000183105469, - 120.4599838256836, - 129.1300048828125, - 137.79998779296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2015-2017 ", - "origin": [ - 170.38999938964844, - 134.70001220703125 - ], - "bbox": [ - 170.38999938964844, - 124.30001068115234, - 212.8529052734375, - 137.77001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.38999938964844, - 124.30001068115234, - 212.8529052734375, - 137.77001953125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "93 ", - "origin": [ - 247.76998901367188, - 134.73004150390625 - ], - "bbox": [ - 247.76998901367188, - 124.33003997802734, - 259.7503967285156, - 137.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.76998901367188, - 124.33003997802734, - 259.7503967285156, - 137.800048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "SSRN\" ", - "origin": [ - 101.51998901367188, - 145.97003173828125 - ], - "bbox": [ - 101.51998901367188, - 135.57003784179688, - 131.8109893798828, - 149.0400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.51998901367188, - 135.57003784179688, - 131.8109893798828, - 149.0400390625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Any ", - "origin": [ - 182.16998291015625, - 145.780029296875 - ], - "bbox": [ - 182.16998291015625, - 135.38003540039062, - 201.1199951171875, - 150.36004638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.16998291015625, - 135.38003540039062, - 201.1199951171875, - 150.36004638671875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "32 ", - "origin": [ - 247.8000030517578, - 146.08001708984375 - ], - "bbox": [ - 247.8000030517578, - 135.37643432617188, - 259.4751892089844, - 149.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9996622204780579, - -0.02599121630191803 - ], - "bbox": [ - 247.8000030517578, - 135.37643432617188, - 259.4751892089844, - 149.1500244140625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 109.68000793457031, - 148.82003784179688, - 261.9438171386719, - 163.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "All ", - "origin": [ - 109.68000793457031, - 159.33001708984375 - ], - "bbox": [ - 109.68000793457031, - 148.93002319335938, - 123.75160217285156, - 162.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.68000793457031, - 148.93002319335938, - 123.75160217285156, - 162.4000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Any ", - "origin": [ - 182.17001342773438, - 159.22003173828125 - ], - "bbox": [ - 182.17001342773438, - 148.82003784179688, - 201.12002563476562, - 163.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.17001342773438, - 148.82003784179688, - 201.12002563476562, - 163.800048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "994 ", - "origin": [ - 245.49000549316406, - 159.53997802734375 - ], - "bbox": [ - 245.49000549316406, - 148.92437744140625, - 261.9438171386719, - 162.6099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999141693115234, - -0.013098875060677528 - ], - "bbox": [ - 245.49000549316406, - 148.92437744140625, - 261.9438171386719, - 162.6099853515625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 59.310001373291016, - 245.38003540039062, - 133.36480712890625, - 260.0571594238281 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3.1 ", - "origin": [ - 59.310001373291016, - 255.780029296875 - ], - "bbox": [ - 59.310001373291016, - 245.38003540039062, - 75.82360076904297, - 259.1192321777344 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9998671412467957, - 0.0162978358566761 - ], - "bbox": [ - 59.310001373291016, - 245.38003540039062, - 75.82360076904297, - 259.1192321777344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文の収集", - "origin": [ - 85.08000183105469, - 256.2000732421875 - ], - "bbox": [ - 85.08000183105469, - 245.80007934570312, - 133.36480712890625, - 260.0571594238281 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9998671412467957, - 0.0162978358566761 - ], - "bbox": [ - 85.08000183105469, - 245.80007934570312, - 133.36480712890625, - 260.0571594238281 - ] - } - ], - "tag": "rotate" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 68.93000030517578, - 264.0299987792969, - 295.9988098144531, - 278.067626953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トップカンファレンスの論文収集手法について記述す", - "origin": [ - 68.93000030517578, - 274.42999267578125 - ], - "bbox": [ - 68.93000030517578, - 264.0299987792969, - 295.9988098144531, - 278.067626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 68.93000030517578, - 264.0299987792969, - 295.9988098144531, - 278.067626953125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 59.28999328613281, - 278.9599914550781, - 296.75750732421875, - 337.32000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る. サイバ", - "origin": [ - 59.34000015258789, - 289.3599853515625 - ], - "bbox": [ - 59.34000015258789, - 278.9599914550781, - 106.45440673828125, - 292.55718994140625 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 107.06000518798828, - 285.9188232421875 - ], - "bbox": [ - 107.06000518798828, - 279.1588134765625, - 115.82200622558594, - 287.93798828125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する倫理は時代や技術と", - "origin": [ - 116.34000396728516, - 289.40386962890625 - ], - "bbox": [ - 116.34000396728516, - 279.0038757324219, - 296.0199890136719, - 292.93316650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - 0.002699990291148424 - ], - "bbox": [ - 59.34000015258789, - 278.9599914550781, - 296.0199890136719, - 292.93316650390625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "共に変化する. 最新の技術とそれに関する議論のみを倫", - "origin": [ - 59.29999923706055, - 304.4200134277344 - ], - "bbox": [ - 59.29999923706055, - 294.02001953125, - 295.9770202636719, - 307.4900207519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.29999923706055, - 294.02001953125, - 295.9770202636719, - 307.4900207519531 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理指針に反映させるためには, それに応じた論文を収集", - "origin": [ - 59.28999328613281, - 319.260009765625 - ], - "bbox": [ - 59.28999328613281, - 308.8600158691406, - 295.9908752441406, - 322.5400085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.28999328613281, - 308.8600158691406, - 295.9908752441406, - 322.5400085449219 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "しなくてはならない. 筆者らは2012年に登場したメン", - "origin": [ - 59.319976806640625, - 334.25 - ], - "bbox": [ - 59.319976806640625, - 323.8500061035156, - 296.75750732421875, - 337.32000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.319976806640625, - 323.8500061035156, - 296.75750732421875, - 337.32000732421875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 59.220001220703125, - 338.6400146484375, - 296.0428466796875, - 382.65106201171875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ロレポ", - "origin": [ - 60.2400016784668, - 349.0400085449219 - ], - "bbox": [ - 60.2400016784668, - 338.6400146484375, - 87.43000793457031, - 352.4647521972656 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 87.98001098632812, - 345.7293395996094 - ], - "bbox": [ - 87.98001098632812, - 338.9693298339844, - 96.74201202392578, - 347.74676513671875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トがサイバ", - "origin": [ - 97.27001190185547, - 349.2125549316406 - ], - "bbox": [ - 97.27001190185547, - 338.81256103515625, - 144.2744140625, - 352.40008544921875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 144.8800048828125, - 345.8415832519531 - ], - "bbox": [ - 144.8800048828125, - 339.0815734863281, - 153.64199829101562, - 347.8590087890625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの研究倫理に特に影", - "origin": [ - 154.15000915527344, - 349.3447570800781 - ], - "bbox": [ - 154.15000915527344, - 338.94476318359375, - 296.0428466796875, - 352.7695617675781 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 60.2400016784668, - 338.6400146484375, - 296.0428466796875, - 352.7695617675781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "響を与えていると考え, その出版年をひとつの区切りと", - "origin": [ - 59.220001220703125, - 364.2900085449219 - ], - "bbox": [ - 59.220001220703125, - 353.8900146484375, - 295.9962158203125, - 367.3600158691406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.220001220703125, - 353.8900146484375, - 295.9962158203125, - 367.3600158691406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "して論文収集を行うこととした.", - "origin": [ - 59.31999969482422, - 379.42999267578125 - ], - "bbox": [ - 59.31999969482422, - 368.6706237792969, - 195.7319793701172, - 382.65106201171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999986469745636, - -0.00519992969930172 - ], - "bbox": [ - 59.31999969482422, - 368.6706237792969, - 195.7319793701172, - 382.65106201171875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 10, - "type": 0, - "bbox": [ - 58.83000183105469, - 398.510009765625, - 296.0238037109375, - 427.2200012207031 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "バ", - "origin": [ - 58.83000183105469, - 408.9100036621094 - ], - "bbox": [ - 58.83000183105469, - 398.510009765625, - 68.52000427246094, - 412.0042419433594 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 69.1300048828125, - 405.5057678222656 - ], - "bbox": [ - 69.1300048828125, - 398.7457580566406, - 77.89200592041016, - 407.523193359375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する投稿が多いものや倫理の議論", - "origin": [ - 78.41000366210938, - 408.948974609375 - ], - "bbox": [ - 78.41000366210938, - 398.5489807128906, - 296.0238037109375, - 412.56292724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 58.83000183105469, - 398.510009765625, - 296.0238037109375, - 412.56292724609375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を多く含むものを中心に扱ったまた, 今回の実験では", - "origin": [ - 59.43000030517578, - 424.1499938964844 - ], - "bbox": [ - 59.43000030517578, - 413.75, - 295.95758056640625, - 427.2200012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.43000030517578, - 413.75, - 295.95758056640625, - 427.2200012207031 - ] - } - ], - "tag": "rotate" - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.18001937866211, - 428.7699890136719, - 296.9790344238281, - 472.0899963378906 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "再実験や検証を容易にするために本研究遂行時点(2017", - "origin": [ - 59.41001892089844, - 439.16998291015625 - ], - "bbox": [ - 59.41001892089844, - 428.7699890136719, - 296.9790344238281, - 442.239990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41001892089844, - 428.7699890136719, - 296.9790344238281, - 442.239990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "年8月)でオ", - "origin": [ - 59.18001937866211, - 453.9499816894531 - ], - "bbox": [ - 59.18001937866211, - 443.54998779296875, - 114.9720230102539, - 457.0199890136719 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 115.81002044677734, - 450.3399963378906 - ], - "bbox": [ - 115.81002044677734, - 443.5799865722656, - 124.572021484375, - 452.33551025390625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "プンアクセス可能な論文のみを扱うこと", - "origin": [ - 125.1200180053711, - 453.9800109863281 - ], - "bbox": [ - 125.1200180053711, - 443.58001708984375, - 295.99029541015625, - 457.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.18001937866211, - 443.54998779296875, - 295.99029541015625, - 457.0500183105469 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とした.", - "origin": [ - 59.38999938964844, - 469.0199890136719 - ], - "bbox": [ - 59.38999938964844, - 458.30828857421875, - 90.24980926513672, - 472.0899963378906 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999489784240723, - -0.010099484585225582 - ], - "bbox": [ - 59.38999938964844, - 458.30828857421875, - 90.24980926513672, - 472.0899963378906 - ] - } - ], - "tag": "rotate" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.310001373291016, - 482.67999267578125, - 277.33880615234375, - 496.695068359375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3.2 ", - "origin": [ - 59.310001373291016, - 493.0799865722656 - ], - "bbox": [ - 59.310001373291016, - 482.67999267578125, - 76.0635986328125, - 496.19189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 59.310001373291016, - 482.67999267578125, - 76.0635986328125, - 496.19189453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トピックモデルを用いた論文のカテゴライズ", - "origin": [ - 88.56999969482422, - 493.15313720703125 - ], - "bbox": [ - 88.56999969482422, - 482.7531433105469, - 277.33880615234375, - 496.695068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 88.56999969482422, - 482.7531433105469, - 277.33880615234375, - 496.695068359375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 315.86004638671875, - 23.190027236938477, - 554.9404296875, - 96.20000457763672 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "提案手法ではトピックモデルを用いて研究課題を抽出", - "origin": [ - 325.5700378417969, - 33.59002685546875 - ], - "bbox": [ - 325.5700378417969, - 23.190027236938477, - 552.5177612304688, - 36.66002655029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5700378417969, - 23.190027236938477, - 552.5177612304688, - 36.66002655029297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "し,各論文を分類した. トピックモデルは,与えられた文", - "origin": [ - 315.8800354003906, - 48.33001708984375 - ], - "bbox": [ - 315.8800354003906, - 37.930015563964844, - 552.4900512695312, - 51.76000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8800354003906, - 37.930015563964844, - 552.4900512695312, - 51.76000213623047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "章がどのようなトピックについて言 及しているのかを抽", - "origin": [ - 315.86004638671875, - 63.22998046875 - ], - "bbox": [ - 315.86004638671875, - 52.829978942871094, - 552.407958984375, - 66.66997528076172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.86004638671875, - 52.829978942871094, - 552.407958984375, - 66.66997528076172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "出する教師無し学習の手法である. 本研究では,Python", - "origin": [ - 315.8699951171875, - 78.54998779296875 - ], - "bbox": [ - 315.8699951171875, - 67.43284606933594, - 554.9404296875, - 81.61998748779297 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999955296516418, - -0.002999986754730344 - ], - "bbox": [ - 315.8699951171875, - 67.43284606933594, - 554.9404296875, - 81.61998748779297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "実装[3]によるLatent Dirichlet Allocation (LDA)を用", - "origin": [ - 316.07000732421875, - 92.78997802734375 - ], - "bbox": [ - 316.07000732421875, - 82.3600082397461, - 552.489990234375, - 96.20000457763672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.07000732421875, - 82.3600082397461, - 552.489990234375, - 96.20000457763672 - ] - } - ], - "tag": "rotate" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 315.95001220703125, - 97.55001068115234, - 557.7235717773438, - 141.3599853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いたこのモデルでは, 文章中に現れる単語がトピック", - "origin": [ - 315.989990234375, - 107.95001220703125 - ], - "bbox": [ - 315.989990234375, - 97.55001068115234, - 552.6156616210938, - 111.64421081542969 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999955296516418, - 0.002999986754730344 - ], - "bbox": [ - 315.989990234375, - 97.55001068115234, - 552.6156616210938, - 111.64421081542969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "と呼ばれる未知の事前分布に従い, 各文書がトピックに", - "origin": [ - 315.95001220703125, - 123.0999755859375 - ], - "bbox": [ - 315.95001220703125, - 112.6999740600586, - 552.6235961914062, - 126.43999481201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.95001220703125, - 112.6999740600586, - 552.6235961914062, - 126.43999481201172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "関する未知の事前分布を持つことを仮定している. LDA ", - "origin": [ - 315.9800109863281, - 138.28997802734375 - ], - "bbox": [ - 315.9800109863281, - 126.99547576904297, - 557.7235717773438, - 141.3599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999931454658508, - -0.003699974622577429 - ], - "bbox": [ - 315.9800109863281, - 126.99547576904297, - 557.7235717773438, - 141.3599853515625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 315.9200134277344, - 142.61001586914062, - 552.4939575195312, - 186.05999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "では単語とトピックの結合分布学習を目的としている.", - "origin": [ - 315.9200134277344, - 153.010009765625 - ], - "bbox": [ - 315.9200134277344, - 142.61001586914062, - 549.9749145507812, - 156.08001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 142.61001586914062, - 549.9749145507812, - 156.08001708984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "すなわち, デ", - "origin": [ - 315.9300231933594, - 167.8699951171875 - ], - "bbox": [ - 315.9300231933594, - 157.47000122070312, - 372.35003662109375, - 170.94000244140625 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 372.6200256347656, - 164.239990234375 - ], - "bbox": [ - 372.6200256347656, - 157.47999572753906, - 381.38201904296875, - 166.23548889160156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タセットに現れるすべての単語, および", - "origin": [ - 382.0100402832031, - 167.94000244140625 - ], - "bbox": [ - 382.0100402832031, - 157.54000854492188, - 552.288818359375, - 171.010009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9300231933594, - 157.47000122070312, - 552.288818359375, - 171.010009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "それぞれの文章に現れる単語の分布をLDAに与えるこ", - "origin": [ - 316.0299987792969, - 182.989990234375 - ], - "bbox": [ - 316.0299987792969, - 172.01470947265625, - 552.4939575195312, - 186.05999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - -0.002199994632974267 - ], - "bbox": [ - 316.0299987792969, - 172.01470947265625, - 552.4939575195312, - 186.05999755859375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 29, - "type": 0, - "bbox": [ - 315.7300109863281, - 187.44998168945312, - 552.6245727539062, - 275.42999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とで, それぞれのトピックにある単語が属する確率とそ", - "origin": [ - 315.95001220703125, - 197.8499755859375 - ], - "bbox": [ - 315.95001220703125, - 187.44998168945312, - 552.6245727539062, - 200.91998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.95001220703125, - 187.44998168945312, - 552.6245727539062, - 200.91998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "れに基づくトピック毎の単語の集合が得られる.", - "origin": [ - 315.9200134277344, - 212.75 - ], - "bbox": [ - 315.9200134277344, - 202.35000610351562, - 519.3582153320312, - 215.82000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 202.35000610351562, - 519.3582153320312, - 215.82000732421875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 325.59002685546875, - 227.6500244140625 - ], - "bbox": [ - 325.59002685546875, - 217.25003051757812, - 353.6444396972656, - 230.72003173828125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 354.2500305175781, - 224.1700439453125 - ], - "bbox": [ - 354.2500305175781, - 217.41004943847656, - 363.01202392578125, - 226.16554260253906 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する表現の違いにより, 同", - "origin": [ - 363.52001953125, - 227.58001708984375 - ], - "bbox": [ - 363.52001953125, - 217.18002319335938, - 552.1400756835938, - 230.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.59002685546875, - 217.18002319335938, - 552.1400756835938, - 230.72003173828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "様のトピックが別のグル", - "origin": [ - 315.9600524902344, - 242.46002197265625 - ], - "bbox": [ - 315.9600524902344, - 232.06002807617188, - 424.0679016113281, - 245.530029296875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 424.820068359375, - 239.02001953125 - ], - "bbox": [ - 424.820068359375, - 232.26002502441406, - 433.5820617675781, - 241.01551818847656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "プに分類されることがある", - "origin": [ - 434.37005615234375, - 242.59002685546875 - ], - "bbox": [ - 434.37005615234375, - 232.19003295898438, - 552.5199584960938, - 245.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9600524902344, - 232.06002807617188, - 552.5199584960938, - 245.6600341796875 - ] - }, - { - "spans": [ - { - "size": 11.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10751", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "[4]. ", - "origin": [ - 316.9200134277344, - 257.19000244140625 - ], - "bbox": [ - 316.9200134277344, - 245.75, - 331.3190002441406, - 260.6058654785156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "したがって, 完成したモデルは手作業で確認する必", - "origin": [ - 336.0400085449219, - 257.24163818359375 - ], - "bbox": [ - 336.0400085449219, - 246.84164428710938, - 552.3756713867188, - 260.8958435058594 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - 0.0026999900583177805 - ], - "bbox": [ - 316.9200134277344, - 245.75, - 552.3756713867188, - 260.8958435058594 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "要がある. 提案手法では, それぞれのトピックを最もよ", - "origin": [ - 315.7300109863281, - 272.3599853515625 - ], - "bbox": [ - 315.7300109863281, - 261.9599914550781, - 552.47607421875, - 275.42999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7300109863281, - 261.9599914550781, - 552.47607421875, - 275.42999267578125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 315.8000183105469, - 277.0899963378906, - 552.6087646484375, - 395.30999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "く表現する30語を抜き出し, それを用いてトピック間", - "origin": [ - 315.8000183105469, - 287.489990234375 - ], - "bbox": [ - 315.8000183105469, - 277.0899963378906, - 552.2570190429688, - 290.55999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8000183105469, - 277.0899963378906, - 552.2570190429688, - 290.55999755859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の類似度を手作業で測ったそして, 複数の類似するト", - "origin": [ - 316.0400390625, - 302.489990234375 - ], - "bbox": [ - 316.0400390625, - 292.0899963378906, - 552.6087646484375, - 305.55999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0400390625, - 292.0899963378906, - 552.6087646484375, - 305.55999755859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ピックから構成される集合をカテゴリとして扱うことと", - "origin": [ - 315.95001220703125, - 317.3399963378906 - ], - "bbox": [ - 315.95001220703125, - 306.94000244140625, - 552.5439453125, - 320.4100036621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.95001220703125, - 306.94000244140625, - 552.5439453125, - 320.4100036621094 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "した.", - "origin": [ - 315.8800048828125, - 332.29998779296875 - ], - "bbox": [ - 315.8800048828125, - 321.6164855957031, - 337.19781494140625, - 335.3699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999114871025085, - -0.01329882349818945 - ], - "bbox": [ - 315.8800048828125, - 321.6164855957031, - 337.19781494140625, - 335.3699951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トピックモデル構成の前処理として論文の PDFから", - "origin": [ - 325.489990234375, - 346.989990234375 - ], - "bbox": [ - 325.489990234375, - 336.5899963378906, - 552.4675903320312, - 350.69000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.489990234375, - 336.5899963378906, - 552.4675903320312, - 350.69000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "単語の抽出を行い, 可読不能な文字やストップワ", - "origin": [ - 315.8299865722656, - 362.5400085449219 - ], - "bbox": [ - 315.8299865722656, - 351.6219177246094, - 523.0751953125, - 365.6100158691406 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ー", - "origin": [ - 523.0751953125, - 362.02191162109375 - ], - "bbox": [ - 523.0751953125, - 351.7469482421875, - 533.052001953125, - 364.0174255371094 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ドを", - "origin": [ - 533.052001953125, - 358.5069580078125 - ], - "bbox": [ - 533.052001953125, - 348.1069641113281, - 552.4146118164062, - 365.23944091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 315.8299865722656, - 348.1069641113281, - 552.4146118164062, - 365.6100158691406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "除外した. 併せて, 単語のみならず複数の単語から成る", - "origin": [ - 316.45001220703125, - 377.1099853515625 - ], - "bbox": [ - 316.45001220703125, - 366.7099914550781, - 552.487060546875, - 380.17999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.45001220703125, - 366.7099914550781, - 552.487060546875, - 380.17999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "旬も解析対象とするために,n-gram (n = 1..5)を用いた.", - "origin": [ - 315.9599914550781, - 392.239990234375 - ], - "bbox": [ - 315.9599914550781, - 381.1332092285156, - 550.0183715820312, - 395.30999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 315.9599914550781, - 381.1332092285156, - 550.0183715820312, - 395.30999755859375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 316.1300048828125, - 405.77001953125, - 552.4019775390625, - 435.07000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3.3 ", - "origin": [ - 316.1300048828125, - 416.1700134277344 - ], - "bbox": [ - 316.1300048828125, - 405.77001953125, - 332.6938171386719, - 419.28143310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 316.1300048828125, - 405.77001953125, - 332.6938171386719, - 419.28143310546875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "グレ", - "origin": [ - 342.7300109863281, - 416.6965026855469 - ], - "bbox": [ - 342.7300109863281, - 406.2965087890625, - 360.7300109863281, - 419.8114929199219 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 361.69000244140625, - 413.05389404296875 - ], - "bbox": [ - 361.69000244140625, - 406.29388427734375, - 370.0880126953125, - 415.0704040527344 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の論文の抽出, 倫理に言及する論文の", - "origin": [ - 370.70001220703125, - 416.87640380859375 - ], - "bbox": [ - 370.70001220703125, - 406.3953552246094, - 552.4019775390625, - 420.18548583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 342.7300109863281, - 406.29388427734375, - 552.4019775390625, - 420.18548583984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "抽出", - "origin": [ - 341.82000732421875, - 432.0 - ], - "bbox": [ - 341.82000732421875, - 421.6000061035156, - 361.21661376953125, - 435.07000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.82000732421875, - 421.6000061035156, - 361.21661376953125, - 435.07000732421875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 33, - "type": 0, - "bbox": [ - 315.7900085449219, - 499.489990234375, - 552.4063720703125, - 528.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "や倫理に言及している論文を抽出し, それぞれの論文集", - "origin": [ - 315.949951171875, - 509.8899841308594 - ], - "bbox": [ - 315.949951171875, - 499.489990234375, - 552.4063720703125, - 512.9599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.949951171875, - 499.489990234375, - 552.4063720703125, - 512.9599609375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "合を作成した.", - "origin": [ - 315.7900085449219, - 525.1300048828125 - ], - "bbox": [ - 315.7900085449219, - 514.0421752929688, - 375.6007995605469, - 528.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999338984489441, - -0.011499240063130856 - ], - "bbox": [ - 315.7900085449219, - 514.0421752929688, - 375.6007995605469, - 528.2000122070312 - ] - } - ], - "tag": "rotate" - }, - { - "number": 37, - "type": 0, - "bbox": [ - 315.8900146484375, - 589.02001953125, - 552.5491333007812, - 618.0900268554688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "文とした加えて, 被験者実験を含む研究もグレ", - "origin": [ - 315.929931640625, - 599.6199951171875 - ], - "bbox": [ - 315.929931640625, - 589.219970703125, - 523.8207397460938, - 602.6900024414062 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10750", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 524.2899169921875, - 595.780029296875 - ], - "bbox": [ - 524.2899169921875, - 589.02001953125, - 533.0519409179688, - 597.7755126953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域", - "origin": [ - 533.409912109375, - 599.6500244140625 - ], - "bbox": [ - 533.409912109375, - 589.25, - 552.5491333007812, - 602.7200317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.929931640625, - 589.02001953125, - 552.5491333007812, - 602.7200317382812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10747", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究とした.", - "origin": [ - 315.8900146484375, - 615.02001953125 - ], - "bbox": [ - 315.8900146484375, - 603.6326293945312, - 366.010009765625, - 618.0900268554688 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9998059868812561, - -0.019696177914738655 - ], - "bbox": [ - 315.8900146484375, - 603.6326293945312, - 366.010009765625, - 618.0900268554688 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [ - { - "bbox": [ - 66, - 31.790000915527344, - 288, - 164.800048828125 - ], - "image_path": "images/2_66_31_288_164.jpg", - "tag": "header" - } - ], - "droped_table_block": [], - "image_backup": [ - { - "bbox": [ - 59, - 669, - 154, - 736 - ], - "image_path": "images/2_59_669_154_736.jpg" - } - ], - "table_backup": [], - "page_idx": 2, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_3": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 68.98999786376953, - 41.170005798339844, - 300.0694274902344, - 55.03002166748047 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "グレ", - "origin": [ - 68.98999786376953, - 51.69000244140625 - ], - "bbox": [ - 68.98999786376953, - 41.290000915527344, - 87.76000213623047, - 54.76000213623047 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 87.97000122070312, - 48.09002685546875 - ], - "bbox": [ - 87.97000122070312, - 41.33002853393555, - 96.73200225830078, - 50.08552551269531 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域または倫理に関する議論を含む論文を,3. 2", - "origin": [ - 97.09000396728516, - 51.96002197265625 - ], - "bbox": [ - 97.09000396728516, - 41.170005798339844, - 300.0694274902344, - 55.03002166748047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.98999786376953, - 41.170005798339844, - 300.0694274902344, - 55.03002166748047 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.40998840332031, - 127.4599838256836, - 295.7799987792969, - 159.51995849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "根から葉までのノ", - "origin": [ - 69.0, - 141.5 - ], - "bbox": [ - 69.0, - 131.10000610351562, - 143.61959838867188, - 144.57000732421875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 143.61959838867188, - 141.5 - ], - "bbox": [ - 143.61959838867188, - 131.09999084472656, - 145.20999145507812, - 143.49549865722656 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 145.20999145507812, - 137.8599853515625 - ], - "bbox": [ - 145.20999145507812, - 131.09999084472656, - 153.97198486328125, - 139.85548400878906 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 153.97198486328125, - 137.8599853515625 - ], - "bbox": [ - 153.97198486328125, - 127.4599838256836, - 156.97999572753906, - 144.5899658203125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドが研究活動を示し,葉はそれに", - "origin": [ - 156.97999572753906, - 141.51995849609375 - ], - "bbox": [ - 156.97999572753906, - 131.11996459960938, - 295.7799987792969, - 144.5899658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.0, - 127.4599838256836, - 295.7799987792969, - 144.5899658203125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "対する倫理的な判断を示す. 葉は次の4種類,", - "origin": [ - 59.40998840332031, - 156.449951171875 - ], - "bbox": [ - 59.40998840332031, - 146.04995727539062, - 260.1553955078125, - 159.51995849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40998840332031, - 146.04995727539062, - 260.1553955078125, - 159.51995849609375 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 74.63999938964844, - 214.56002807617188, - 296.02252197265625, - 228.34002685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "• 必要", - "origin": [ - 74.63999938964844, - 224.96002197265625 - ], - "bbox": [ - 74.63999938964844, - 214.56002807617188, - 103.44379425048828, - 228.34002685546875 - ] - }, - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " (Demands):", - "origin": [ - 103.44379425048828, - 225.27001953125 - ], - "bbox": [ - 103.44379425048828, - 216.91201782226562, - 156.1313018798828, - 227.8620147705078 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 当該活動を実施しないことが非", - "origin": [ - 156.1313018798828, - 224.96002197265625 - ], - "bbox": [ - 156.1313018798828, - 214.56002807617188, - 296.02252197265625, - 228.030029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.63999938964844, - 214.56002807617188, - 296.02252197265625, - 228.34002685546875 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 84.31000518798828, - 229.62002563476562, - 141.6652069091797, - 243.09002685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理的である", - "origin": [ - 84.31000518798828, - 240.02001953125 - ], - "bbox": [ - 84.31000518798828, - 229.62002563476562, - 141.6652069091797, - 243.09002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.31000518798828, - 229.62002563476562, - 141.6652069091797, - 243.09002685546875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 74.64000701904297, - 252.04000854492188, - 256.3550109863281, - 266.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "• 要検討(TBD): 現時点では判断できない", - "origin": [ - 74.64000701904297, - 262.44000244140625 - ], - "bbox": [ - 74.64000701904297, - 252.04000854492188, - 256.3550109863281, - 266.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.64000701904297, - 252.04000854492188, - 256.3550109863281, - 266.04998779296875 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.36000061035156, - 271.8399658203125, - 296.0658264160156, - 303.8699645996094 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "から構成される. 禁止,許可ノ", - "origin": [ - 59.36000061035156, - 285.9399719238281 - ], - "bbox": [ - 59.36000061035156, - 275.53997802734375, - 190.20751953125, - 289.0099792480469 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 190.20751953125, - 285.9399719238281 - ], - "bbox": [ - 190.20751953125, - 275.4799499511719, - 191.77000427246094, - 287.93548583984375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 191.77000427246094, - 282.2399597167969 - ], - "bbox": [ - 191.77000427246094, - 275.4799499511719, - 200.53199768066406, - 284.2354736328125 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 200.53199768066406, - 282.2399597167969 - ], - "bbox": [ - 200.53199768066406, - 271.8399658203125, - 203.66000366210938, - 288.9899597167969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドは当該活動の倫理性", - "origin": [ - 203.66000366210938, - 285.9199523925781 - ], - "bbox": [ - 203.66000366210938, - 275.51995849609375, - 296.0658264160156, - 288.9899597167969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36000061035156, - 271.8399658203125, - 296.0658264160156, - 289.0099792480469 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "についての判断例である. なお,ここで許可ノ", - "origin": [ - 59.45001220703125, - 300.7999572753906 - ], - "bbox": [ - 59.45001220703125, - 290.39996337890625, - 256.68280029296875, - 303.8699645996094 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 256.68280029296875, - 300.7999572753906 - ], - "bbox": [ - 256.68280029296875, - 290.3399353027344, - 258.260009765625, - 302.79547119140625 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 258.260009765625, - 297.0999450683594 - ], - "bbox": [ - 258.260009765625, - 290.3399353027344, - 267.0220031738281, - 299.095458984375 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 267.0220031738281, - 297.0999450683594 - ], - "bbox": [ - 267.0220031738281, - 286.699951171875, - 270.0299987792969, - 303.7799377441406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドは必", - "origin": [ - 270.0299987792969, - 300.7099304199219 - ], - "bbox": [ - 270.0299987792969, - 290.3099365234375, - 296.04541015625, - 303.7799377441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.45001220703125, - 286.699951171875, - 296.04541015625, - 303.8699645996094 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.27000427246094, - 305.3999328613281, - 295.97003173828125, - 318.86993408203125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ずしも常に受容可能を意味するわけではないことに気を", - "origin": [ - 59.27000427246094, - 315.7999267578125 - ], - "bbox": [ - 59.27000427246094, - 305.3999328613281, - 295.97003173828125, - 318.86993408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.27000427246094, - 305.3999328613281, - 295.97003173828125, - 318.86993408203125 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.180023193359375, - 320.2599182128906, - 295.81646728515625, - 334.2699279785156 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "付けなければならない. たとえば,本倫理指針では脆弱", - "origin": [ - 59.180023193359375, - 331.1999206542969 - ], - "bbox": [ - 59.180023193359375, - 320.2599182128906, - 295.81646728515625, - 334.2699279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.180023193359375, - 320.2599182128906, - 295.81646728515625, - 334.2699279785156 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.23004150390625, - 335.2499084472656, - 299.99481201171875, - 453.24993896484375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "性の 公開について,それが既にエクスプロイトされてい", - "origin": [ - 59.23004150390625, - 346.0399169921875 - ], - "bbox": [ - 59.23004150390625, - 335.2499084472656, - 295.8758544921875, - 349.10992431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.23004150390625, - 335.2499084472656, - 295.8758544921875, - 349.10992431640625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るものであれば,公開を許可するとした. しかしながら,", - "origin": [ - 59.33003616333008, - 360.64990234375 - ], - "bbox": [ - 59.33003616333008, - 350.2499084472656, - 299.99481201171875, - 363.71990966796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33003616333008, - 350.2499084472656, - 299.99481201171875, - 363.71990966796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "公知の脆弱性でもその情報を改めて世に広めることで被", - "origin": [ - 61.010040283203125, - 375.6299133300781 - ], - "bbox": [ - 61.010040283203125, - 365.22991943359375, - 295.9156494140625, - 378.6999206542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.010040283203125, - 365.22991943359375, - 295.9156494140625, - 378.6999206542969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "害が拡大する可能性がある. したがって,研究者らは本", - "origin": [ - 59.65003967285156, - 390.5299072265625 - ], - "bbox": [ - 59.65003967285156, - 380.09991455078125, - 296.0024719238281, - 394.0799255371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.65003967285156, - 380.09991455078125, - 296.0024719238281, - 394.0799255371094 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理指針の示す項目にのみ依存するのでなく, 自らが置", - "origin": [ - 59.35005187988281, - 405.5699157714844 - ], - "bbox": [ - 59.35005187988281, - 395.169921875, - 296.3530578613281, - 408.6399230957031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.35005187988281, - 395.169921875, - 296.3530578613281, - 408.6399230957031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "かれた状況を踏まえて倫理的な判断を下す必要がある.", - "origin": [ - 59.36006164550781, - 420.5199279785156 - ], - "bbox": [ - 59.36006164550781, - 410.11993408203125, - 293.3860778808594, - 423.5899353027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36006164550781, - 410.11993408203125, - 293.3860778808594, - 423.5899353027344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "必要ノ", - "origin": [ - 59.33006286621094, - 435.2099304199219 - ], - "bbox": [ - 59.33006286621094, - 424.8099365234375, - 86.52346801757812, - 438.2799377441406 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 86.52346801757812, - 435.2099304199219 - ], - "bbox": [ - 86.52346801757812, - 424.96990966796875, - 87.97006225585938, - 437.2054443359375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 87.97006225585938, - 431.72991943359375 - ], - "bbox": [ - 87.97006225585938, - 424.96990966796875, - 96.73206329345703, - 433.7254333496094 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 96.73206329345703, - 431.72991943359375 - ], - "bbox": [ - 96.73206329345703, - 421.3299255371094, - 99.85005950927734, - 438.43994140625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドはグレ", - "origin": [ - 99.85005950927734, - 435.36993408203125 - ], - "bbox": [ - 99.85005950927734, - 424.9699401855469, - 135.04025268554688, - 438.43994140625 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 135.38006591796875, - 431.669921875 - ], - "bbox": [ - 135.38006591796875, - 424.909912109375, - 144.14205932617188, - 433.6654357910156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の研究に付随する対策のベスト", - "origin": [ - 144.50006103515625, - 435.3099365234375 - ], - "bbox": [ - 144.50006103515625, - 424.9099426269531, - 296.205078125, - 439.0899353027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33006286621094, - 421.3299255371094, - 296.205078125, - 439.0899353027344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "プラクティスを示している. これらは特に軍要なもので", - "origin": [ - 59.70005798339844, - 450.179931640625 - ], - "bbox": [ - 59.70005798339844, - 439.7799377441406, - 296.1304016113281, - 453.24993896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.70005798339844, - 439.7799377441406, - 296.1304016113281, - 453.24993896484375 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.37005615234375, - 454.4799499511719, - 299.98797607421875, - 483.2299499511719 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あり,論文中でも倫理的な考察を与える必要がある. 要", - "origin": [ - 59.50005340576172, - 465.2799377441406 - ], - "bbox": [ - 59.50005340576172, - 454.4799499511719, - 295.9500732421875, - 468.4199523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.50005340576172, - 454.4799499511719, - 295.9500732421875, - 468.4199523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "検討ノ", - "origin": [ - 59.37005615234375, - 480.1599426269531 - ], - "bbox": [ - 59.37005615234375, - 469.75994873046875, - 86.05486297607422, - 483.2299499511719 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 86.05486297607422, - 480.1599426269531 - ], - "bbox": [ - 86.05486297607422, - 469.72991943359375, - 87.49005889892578, - 482.15545654296875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 87.49005889892578, - 476.48992919921875 - ], - "bbox": [ - 87.49005889892578, - 469.72991943359375, - 96.25205993652344, - 478.4854431152344 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 96.25205993652344, - 476.48992919921875 - ], - "bbox": [ - 96.25205993652344, - 466.0899353027344, - 99.01005554199219, - 483.199951171875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドはベストプラクティスを見つけられなかった,", - "origin": [ - 99.01005554199219, - 480.12994384765625 - ], - "bbox": [ - 99.01005554199219, - 469.7299499511719, - 299.98797607421875, - 483.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.37005615234375, - 466.0899353027344, - 299.98797607421875, - 483.2299499511719 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.300048828125, - 484.7899475097656, - 295.815673828125, - 528.0399780273438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "または今後の議論を要する部分である. 今後も様々なべ", - "origin": [ - 59.39005661010742, - 495.18994140625 - ], - "bbox": [ - 59.39005661010742, - 484.7899475097656, - 295.6896667480469, - 498.25994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.39005661010742, - 484.7899475097656, - 295.6896667480469, - 498.25994873046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ストプラクティスを参考にしつつ,本倫理指針の拡充に", - "origin": [ - 59.300048828125, - 510.0999450683594 - ], - "bbox": [ - 59.300048828125, - 499.699951171875, - 295.815673828125, - 513.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.300048828125, - 499.699951171875, - 295.815673828125, - 513.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "役立てることを期待する.", - "origin": [ - 59.53004837036133, - 524.969970703125 - ], - "bbox": [ - 59.53004837036133, - 514.5699462890625, - 167.0467529296875, - 528.0399780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.53004837036133, - 514.5699462890625, - 167.0467529296875, - 528.0399780273438 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 316.21002197265625, - 153.738037109375, - 381.9693908691406, - 169.97402954101562 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8946", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "4 ", - "origin": [ - 316.21002197265625, - 166.35003662109375 - ], - "bbox": [ - 316.21002197265625, - 153.738037109375, - 325.45001220703125, - 169.97402954101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.21002197265625, - 153.738037109375, - 325.45001220703125, - 169.97402954101562 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8946", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "実験結果", - "origin": [ - 336.3700256347656, - 166.35003662109375 - ], - "bbox": [ - 336.3700256347656, - 153.738037109375, - 381.9693908691406, - 169.97402954101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.3700256347656, - 153.738037109375, - 381.9693908691406, - 169.97402954101562 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 325.489990234375, - 221.31002807617188, - 552.4616088867188, - 234.780029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "これらの論文を基にトピックモデルを構築した. ここ", - "origin": [ - 325.489990234375, - 231.71002197265625 - ], - "bbox": [ - 325.489990234375, - 221.31002807617188, - 552.4616088867188, - 234.780029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.489990234375, - 221.31002807617188, - 552.4616088867188, - 234.780029296875 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 315.9599609375, - 236.54000854492188, - 552.6099853515625, - 279.60003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "で,SSRNはカンファレンスではないので除外した. ト", - "origin": [ - 315.9899597167969, - 246.94000244140625 - ], - "bbox": [ - 315.9899597167969, - 236.54000854492188, - 552.6099853515625, - 250.010009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9899597167969, - 236.54000854492188, - 552.6099853515625, - 250.010009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ピックの数は50を指定し,他のパラメ", - "origin": [ - 315.9599609375, - 261.780029296875 - ], - "bbox": [ - 315.9599609375, - 251.38003540039062, - 483.3688049316406, - 264.85003662109375 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 483.3688049316406, - 261.780029296875 - ], - "bbox": [ - 483.3688049316406, - 251.38002014160156, - 485.40997314453125, - 263.7755432128906 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 485.40997314453125, - 258.1400146484375 - ], - "bbox": [ - 485.40997314453125, - 251.38002014160156, - 494.1719665527344, - 260.1355285644531 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 494.1719665527344, - 258.1400146484375 - ], - "bbox": [ - 494.1719665527344, - 247.74002075195312, - 495.8599853515625, - 264.760009765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タはトピック", - "origin": [ - 495.8599853515625, - 261.69000244140625 - ], - "bbox": [ - 495.8599853515625, - 251.29000854492188, - 552.4915161132812, - 264.760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599609375, - 247.74002075195312, - 552.4915161132812, - 264.85003662109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "モデルライブラリ", - "origin": [ - 316.0099792480469, - 276.530029296875 - ], - "bbox": [ - 316.0099792480469, - 266.1300354003906, - 393.1814880371094, - 279.60003662109375 - ] - }, - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " Gensim[3]", - "origin": [ - 393.1814880371094, - 276.530029296875 - ], - "bbox": [ - 393.1814880371094, - 268.4820251464844, - 437.8899841308594, - 279.1220397949219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " のデフォルト値を用いた.", - "origin": [ - 437.8899841308594, - 276.530029296875 - ], - "bbox": [ - 437.8899841308594, - 266.1300354003906, - 549.9830322265625, - 279.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0099792480469, - 266.1300354003906, - 549.9830322265625, - 279.60003662109375 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 316.0599365234375, - 385.8400573730469, - 552.4559326171875, - 399.31005859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あり,後者は200件であった.", - "origin": [ - 316.0599365234375, - 396.24005126953125 - ], - "bbox": [ - 316.0599365234375, - 385.8400573730469, - 440.86639404296875, - 399.31005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0599365234375, - 385.8400573730469, - 440.86639404296875, - 399.31005859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "どちらにも含まれている", - "origin": [ - 449.88995361328125, - 396.24005126953125 - ], - "bbox": [ - 449.88995361328125, - 385.8400573730469, - 552.4559326171875, - 399.31005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.88995361328125, - 385.8400573730469, - 552.4559326171875, - 399.31005859375 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.9599914550781, - 430.55999755859375, - 517.1800537109375, - 444.47998046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "クカテゴリに分類した. 分類の基準は次の2つ", - "origin": [ - 315.9599914550781, - 440.9599914550781 - ], - "bbox": [ - 315.9599914550781, - 430.55999755859375, - 517.1800537109375, - 444.47998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 430.55999755859375, - 517.1800537109375, - 444.47998046875 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 325.6700439453125, - 453.5799865722656, - 551.6712036132812, - 467.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "1. ある論文とトピック間の尤度が最も高いトピック", - "origin": [ - 325.6700439453125, - 463.97998046875 - ], - "bbox": [ - 325.6700439453125, - 453.5799865722656, - 551.6712036132812, - 467.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.6700439453125, - 453.5799865722656, - 551.6712036132812, - 467.04998779296875 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 64, - 547.0645751953125, - 544, - 738 - ], - "image_path": "images/3_64_547_544_738.jpg" - } - ], - "tables": [ - { - "bbox": [ - 63.839999999999996, - 548.0645751953125, - 544.8, - 738.3119506835938 - ], - "image_path": "tables/3_63_548_544_738.jpg" - } - ], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 59.36000061035156, - 19.309961318969727, - 300.0694274902344, - 303.8699645996094 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.9599609375, - 19.309961318969727, - 559.3200073242188, - 303.8699645996094 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 305.3999328613281, - 612.0, - 334.2699279785156 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 59.23004150390625, - 335.2499084472656, - 552.4559326171875, - 738.3119506835938 - ], - "layout_label": "U", - "sub_layout": [], - "bad_boxes": [ - [ - 316.0599365234375, - 385.8400573730469, - 552.4559326171875, - 399.31005859375 - ], - [ - 325.6700439453125, - 453.5799865722656, - 551.6712036132812, - 467.04998779296875 - ], - [ - 59.23004150390625, - 335.2499084472656, - 299.99481201171875, - 453.24993896484375 - ], - [ - 59.37005615234375, - 454.4799499511719, - 299.98797607421875, - 483.2299499511719 - ], - [ - 59.300048828125, - 484.7899475097656, - 295.815673828125, - 528.0399780273438 - ] - ] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 59.650001525878906, - 22.459985733032227, - 152.5211944580078, - 37.19303512573242 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3.4 ", - "origin": [ - 59.650001525878906, - 32.8599853515625 - ], - "bbox": [ - 59.650001525878906, - 22.459985733032227, - 76.3373031616211, - 36.156917572021484 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999074935913086, - 0.01359874289482832 - ], - "bbox": [ - 59.650001525878906, - 22.459985733032227, - 76.3373031616211, - 36.156917572021484 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理指針の構築", - "origin": [ - 85.33000183105469, - 33.209228515625 - ], - "bbox": [ - 85.33000183105469, - 22.809228897094727, - 152.5211944580078, - 37.19303512573242 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999074935913086, - 0.01359874289482832 - ], - "bbox": [ - 85.33000183105469, - 22.809228897094727, - 152.5211944580078, - 37.19303512573242 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 68.98999786376953, - 41.170005798339844, - 300.0694274902344, - 55.03002166748047 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "グレ", - "origin": [ - 68.98999786376953, - 51.69000244140625 - ], - "bbox": [ - 68.98999786376953, - 41.290000915527344, - 87.76000213623047, - 54.76000213623047 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 87.97000122070312, - 48.09002685546875 - ], - "bbox": [ - 87.97000122070312, - 41.33002853393555, - 96.73200225830078, - 50.08552551269531 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域または倫理に関する議論を含む論文を,3. 2", - "origin": [ - 97.09000396728516, - 51.96002197265625 - ], - "bbox": [ - 97.09000396728516, - 41.170005798339844, - 300.0694274902344, - 55.03002166748047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.98999786376953, - 41.170005798339844, - 300.0694274902344, - 55.03002166748047 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 59.27999496459961, - 56.339988708496094, - 300.0270080566406, - 129.72003173828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "節で作成したカテゴリごとに分類したそして注目する", - "origin": [ - 59.649993896484375, - 66.739990234375 - ], - "bbox": [ - 59.649993896484375, - 56.339988708496094, - 295.9148254394531, - 69.80998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.649993896484375, - 56.339988708496094, - 295.9148254394531, - 69.80998992919922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "カテゴリに属する論文を精読することで,そこから倫理", - "origin": [ - 59.27999496459961, - 81.739990234375 - ], - "bbox": [ - 59.27999496459961, - 71.3399887084961, - 296.1015930175781, - 84.80998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.27999496459961, - 71.3399887084961, - 296.1015930175781, - 84.80998992919922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "的な問題点や倫理的な議論を抽出した. 提案手法では,", - "origin": [ - 59.399993896484375, - 96.7099609375 - ], - "bbox": [ - 59.399993896484375, - 86.3099594116211, - 300.0270080566406, - 99.77996063232422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.399993896484375, - 86.3099594116211, - 300.0270080566406, - 99.77996063232422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集した倫理的な問題や議論を系統立て決定木の形で表", - "origin": [ - 59.41001892089844, - 111.62994384765625 - ], - "bbox": [ - 59.41001892089844, - 101.22994232177734, - 295.89324951171875, - 114.69994354248047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41001892089844, - 101.22994232177734, - 295.89324951171875, - 114.69994354248047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "現した.", - "origin": [ - 59.36000061035156, - 126.6500244140625 - ], - "bbox": [ - 59.36000061035156, - 115.84223937988281, - 90.25279998779297, - 129.72003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999128580093384, - -0.013198849745094776 - ], - "bbox": [ - 59.36000061035156, - 115.84223937988281, - 90.25279998779297, - 129.72003173828125 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.40998840332031, - 127.4599838256836, - 295.7799987792969, - 159.51995849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "根から葉までのノ", - "origin": [ - 69.0, - 141.5 - ], - "bbox": [ - 69.0, - 131.10000610351562, - 143.61959838867188, - 144.57000732421875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 143.61959838867188, - 141.5 - ], - "bbox": [ - 143.61959838867188, - 131.09999084472656, - 145.20999145507812, - 143.49549865722656 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 145.20999145507812, - 137.8599853515625 - ], - "bbox": [ - 145.20999145507812, - 131.09999084472656, - 153.97198486328125, - 139.85548400878906 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 153.97198486328125, - 137.8599853515625 - ], - "bbox": [ - 153.97198486328125, - 127.4599838256836, - 156.97999572753906, - 144.5899658203125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドが研究活動を示し,葉はそれに", - "origin": [ - 156.97999572753906, - 141.51995849609375 - ], - "bbox": [ - 156.97999572753906, - 131.11996459960938, - 295.7799987792969, - 144.5899658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.0, - 127.4599838256836, - 295.7799987792969, - 144.5899658203125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "対する倫理的な判断を示す. 葉は次の4種類,", - "origin": [ - 59.40998840332031, - 156.449951171875 - ], - "bbox": [ - 59.40998840332031, - 146.04995727539062, - 260.1553955078125, - 159.51995849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40998840332031, - 146.04995727539062, - 260.1553955078125, - 159.51995849609375 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 74.63999938964844, - 168.48001098632812, - 275.780029296875, - 182.85020446777344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "• 禁止", - "origin": [ - 74.63999938964844, - 178.8800048828125 - ], - "bbox": [ - 74.63999938964844, - 168.48001098632812, - 103.49000549316406, - 182.0855712890625 - ] - }, - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " (Prohibits):", - "origin": [ - 103.49000549316406, - 179.01556396484375 - ], - "bbox": [ - 103.49000549316406, - 170.96755981445312, - 155.76242065429688, - 181.853271484375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 当該活動は非倫理的である", - "origin": [ - 155.76242065429688, - 179.2612762451172 - ], - "bbox": [ - 155.76242065429688, - 168.84091186523438, - 275.780029296875, - 182.85020446777344 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999889135360718, - 0.004699947778135538 - ], - "bbox": [ - 74.63999938964844, - 168.48001098632812, - 275.780029296875, - 182.85020446777344 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 74.63999938964844, - 191.39999389648438, - 269.32861328125, - 205.44024658203125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "• 許可", - "origin": [ - 74.63999938964844, - 201.79998779296875 - ], - "bbox": [ - 74.63999938964844, - 191.39999389648438, - 103.36439514160156, - 205.39630126953125 - ] - }, - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " (Permits):", - "origin": [ - 103.36439514160156, - 202.3262939453125 - ], - "bbox": [ - 103.36439514160156, - 193.79055786132812, - 149.41302490234375, - 204.9182891845703 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 当該活動は非倫理的でない", - "origin": [ - 149.41302490234375, - 201.99659729003906 - ], - "bbox": [ - 149.41302490234375, - 191.57009887695312, - 269.32861328125, - 205.44024658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999931454658508, - 0.003699974622577429 - ], - "bbox": [ - 74.63999938964844, - 191.39999389648438, - 269.32861328125, - 205.44024658203125 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 74.63999938964844, - 214.56002807617188, - 296.02252197265625, - 228.34002685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "• 必要", - "origin": [ - 74.63999938964844, - 224.96002197265625 - ], - "bbox": [ - 74.63999938964844, - 214.56002807617188, - 103.44379425048828, - 228.34002685546875 - ] - }, - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " (Demands):", - "origin": [ - 103.44379425048828, - 225.27001953125 - ], - "bbox": [ - 103.44379425048828, - 216.91201782226562, - 156.1313018798828, - 227.8620147705078 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 当該活動を実施しないことが非", - "origin": [ - 156.1313018798828, - 224.96002197265625 - ], - "bbox": [ - 156.1313018798828, - 214.56002807617188, - 296.02252197265625, - 228.030029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.63999938964844, - 214.56002807617188, - 296.02252197265625, - 228.34002685546875 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 84.31000518798828, - 229.62002563476562, - 141.6652069091797, - 243.09002685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理的である", - "origin": [ - 84.31000518798828, - 240.02001953125 - ], - "bbox": [ - 84.31000518798828, - 229.62002563476562, - 141.6652069091797, - 243.09002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.31000518798828, - 229.62002563476562, - 141.6652069091797, - 243.09002685546875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 74.64000701904297, - 252.04000854492188, - 256.3550109863281, - 266.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "• 要検討(TBD): 現時点では判断できない", - "origin": [ - 74.64000701904297, - 262.44000244140625 - ], - "bbox": [ - 74.64000701904297, - 252.04000854492188, - 256.3550109863281, - 266.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.64000701904297, - 252.04000854492188, - 256.3550109863281, - 266.04998779296875 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.36000061035156, - 271.8399658203125, - 296.0658264160156, - 303.8699645996094 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "から構成される. 禁止,許可ノ", - "origin": [ - 59.36000061035156, - 285.9399719238281 - ], - "bbox": [ - 59.36000061035156, - 275.53997802734375, - 190.20751953125, - 289.0099792480469 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 190.20751953125, - 285.9399719238281 - ], - "bbox": [ - 190.20751953125, - 275.4799499511719, - 191.77000427246094, - 287.93548583984375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 191.77000427246094, - 282.2399597167969 - ], - "bbox": [ - 191.77000427246094, - 275.4799499511719, - 200.53199768066406, - 284.2354736328125 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 200.53199768066406, - 282.2399597167969 - ], - "bbox": [ - 200.53199768066406, - 271.8399658203125, - 203.66000366210938, - 288.9899597167969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドは当該活動の倫理性", - "origin": [ - 203.66000366210938, - 285.9199523925781 - ], - "bbox": [ - 203.66000366210938, - 275.51995849609375, - 296.0658264160156, - 288.9899597167969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36000061035156, - 271.8399658203125, - 296.0658264160156, - 289.0099792480469 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "についての判断例である. なお,ここで許可ノ", - "origin": [ - 59.45001220703125, - 300.7999572753906 - ], - "bbox": [ - 59.45001220703125, - 290.39996337890625, - 256.68280029296875, - 303.8699645996094 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 256.68280029296875, - 300.7999572753906 - ], - "bbox": [ - 256.68280029296875, - 290.3399353027344, - 258.260009765625, - 302.79547119140625 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 258.260009765625, - 297.0999450683594 - ], - "bbox": [ - 258.260009765625, - 290.3399353027344, - 267.0220031738281, - 299.095458984375 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 267.0220031738281, - 297.0999450683594 - ], - "bbox": [ - 267.0220031738281, - 286.699951171875, - 270.0299987792969, - 303.7799377441406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドは必", - "origin": [ - 270.0299987792969, - 300.7099304199219 - ], - "bbox": [ - 270.0299987792969, - 290.3099365234375, - 296.04541015625, - 303.7799377441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.45001220703125, - 286.699951171875, - 296.04541015625, - 303.8699645996094 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.27000427246094, - 305.3999328613281, - 295.97003173828125, - 318.86993408203125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ずしも常に受容可能を意味するわけではないことに気を", - "origin": [ - 59.27000427246094, - 315.7999267578125 - ], - "bbox": [ - 59.27000427246094, - 305.3999328613281, - 295.97003173828125, - 318.86993408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.27000427246094, - 305.3999328613281, - 295.97003173828125, - 318.86993408203125 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.180023193359375, - 320.2599182128906, - 295.81646728515625, - 334.2699279785156 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "付けなければならない. たとえば,本倫理指針では脆弱", - "origin": [ - 59.180023193359375, - 331.1999206542969 - ], - "bbox": [ - 59.180023193359375, - 320.2599182128906, - 295.81646728515625, - 334.2699279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.180023193359375, - 320.2599182128906, - 295.81646728515625, - 334.2699279785156 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.23004150390625, - 335.2499084472656, - 299.99481201171875, - 453.24993896484375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "性の 公開について,それが既にエクスプロイトされてい", - "origin": [ - 59.23004150390625, - 346.0399169921875 - ], - "bbox": [ - 59.23004150390625, - 335.2499084472656, - 295.8758544921875, - 349.10992431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.23004150390625, - 335.2499084472656, - 295.8758544921875, - 349.10992431640625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るものであれば,公開を許可するとした. しかしながら,", - "origin": [ - 59.33003616333008, - 360.64990234375 - ], - "bbox": [ - 59.33003616333008, - 350.2499084472656, - 299.99481201171875, - 363.71990966796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33003616333008, - 350.2499084472656, - 299.99481201171875, - 363.71990966796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "公知の脆弱性でもその情報を改めて世に広めることで被", - "origin": [ - 61.010040283203125, - 375.6299133300781 - ], - "bbox": [ - 61.010040283203125, - 365.22991943359375, - 295.9156494140625, - 378.6999206542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.010040283203125, - 365.22991943359375, - 295.9156494140625, - 378.6999206542969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "害が拡大する可能性がある. したがって,研究者らは本", - "origin": [ - 59.65003967285156, - 390.5299072265625 - ], - "bbox": [ - 59.65003967285156, - 380.09991455078125, - 296.0024719238281, - 394.0799255371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.65003967285156, - 380.09991455078125, - 296.0024719238281, - 394.0799255371094 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理指針の示す項目にのみ依存するのでなく, 自らが置", - "origin": [ - 59.35005187988281, - 405.5699157714844 - ], - "bbox": [ - 59.35005187988281, - 395.169921875, - 296.3530578613281, - 408.6399230957031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.35005187988281, - 395.169921875, - 296.3530578613281, - 408.6399230957031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "かれた状況を踏まえて倫理的な判断を下す必要がある.", - "origin": [ - 59.36006164550781, - 420.5199279785156 - ], - "bbox": [ - 59.36006164550781, - 410.11993408203125, - 293.3860778808594, - 423.5899353027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36006164550781, - 410.11993408203125, - 293.3860778808594, - 423.5899353027344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "必要ノ", - "origin": [ - 59.33006286621094, - 435.2099304199219 - ], - "bbox": [ - 59.33006286621094, - 424.8099365234375, - 86.52346801757812, - 438.2799377441406 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 86.52346801757812, - 435.2099304199219 - ], - "bbox": [ - 86.52346801757812, - 424.96990966796875, - 87.97006225585938, - 437.2054443359375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 87.97006225585938, - 431.72991943359375 - ], - "bbox": [ - 87.97006225585938, - 424.96990966796875, - 96.73206329345703, - 433.7254333496094 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 96.73206329345703, - 431.72991943359375 - ], - "bbox": [ - 96.73206329345703, - 421.3299255371094, - 99.85005950927734, - 438.43994140625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドはグレ", - "origin": [ - 99.85005950927734, - 435.36993408203125 - ], - "bbox": [ - 99.85005950927734, - 424.9699401855469, - 135.04025268554688, - 438.43994140625 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 135.38006591796875, - 431.669921875 - ], - "bbox": [ - 135.38006591796875, - 424.909912109375, - 144.14205932617188, - 433.6654357910156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の研究に付随する対策のベスト", - "origin": [ - 144.50006103515625, - 435.3099365234375 - ], - "bbox": [ - 144.50006103515625, - 424.9099426269531, - 296.205078125, - 439.0899353027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33006286621094, - 421.3299255371094, - 296.205078125, - 439.0899353027344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "プラクティスを示している. これらは特に軍要なもので", - "origin": [ - 59.70005798339844, - 450.179931640625 - ], - "bbox": [ - 59.70005798339844, - 439.7799377441406, - 296.1304016113281, - 453.24993896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.70005798339844, - 439.7799377441406, - 296.1304016113281, - 453.24993896484375 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.37005615234375, - 454.4799499511719, - 299.98797607421875, - 483.2299499511719 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あり,論文中でも倫理的な考察を与える必要がある. 要", - "origin": [ - 59.50005340576172, - 465.2799377441406 - ], - "bbox": [ - 59.50005340576172, - 454.4799499511719, - 295.9500732421875, - 468.4199523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.50005340576172, - 454.4799499511719, - 295.9500732421875, - 468.4199523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "検討ノ", - "origin": [ - 59.37005615234375, - 480.1599426269531 - ], - "bbox": [ - 59.37005615234375, - 469.75994873046875, - 86.05486297607422, - 483.2299499511719 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 86.05486297607422, - 480.1599426269531 - ], - "bbox": [ - 86.05486297607422, - 469.72991943359375, - 87.49005889892578, - 482.15545654296875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 87.49005889892578, - 476.48992919921875 - ], - "bbox": [ - 87.49005889892578, - 469.72991943359375, - 96.25205993652344, - 478.4854431152344 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 96.25205993652344, - 476.48992919921875 - ], - "bbox": [ - 96.25205993652344, - 466.0899353027344, - 99.01005554199219, - 483.199951171875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドはベストプラクティスを見つけられなかった,", - "origin": [ - 99.01005554199219, - 480.12994384765625 - ], - "bbox": [ - 99.01005554199219, - 469.7299499511719, - 299.98797607421875, - 483.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.37005615234375, - 466.0899353027344, - 299.98797607421875, - 483.2299499511719 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.300048828125, - 484.7899475097656, - 295.815673828125, - 528.0399780273438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "または今後の議論を要する部分である. 今後も様々なべ", - "origin": [ - 59.39005661010742, - 495.18994140625 - ], - "bbox": [ - 59.39005661010742, - 484.7899475097656, - 295.6896667480469, - 498.25994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.39005661010742, - 484.7899475097656, - 295.6896667480469, - 498.25994873046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ストプラクティスを参考にしつつ,本倫理指針の拡充に", - "origin": [ - 59.300048828125, - 510.0999450683594 - ], - "bbox": [ - 59.300048828125, - 499.699951171875, - 295.815673828125, - 513.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.300048828125, - 499.699951171875, - 295.815673828125, - 513.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "役立てることを期待する.", - "origin": [ - 59.53004837036133, - 524.969970703125 - ], - "bbox": [ - 59.53004837036133, - 514.5699462890625, - 167.0467529296875, - 528.0399780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.53004837036133, - 514.5699462890625, - 167.0467529296875, - 528.0399780273438 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 325.320068359375, - 19.309961318969727, - 559.3200073242188, - 36.79998016357422 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "中間のノ", - "origin": [ - 325.320068359375, - 33.72998046875 - ], - "bbox": [ - 325.320068359375, - 23.009973526000977, - 360.9618835449219, - 36.79998016357422 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 360.9618835449219, - 33.40997314453125 - ], - "bbox": [ - 360.9618835449219, - 22.949960708618164, - 362.0500793457031, - 35.40547180175781 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 362.0500793457031, - 29.7099609375 - ], - "bbox": [ - 362.0500793457031, - 22.949960708618164, - 370.81207275390625, - 31.705461502075195 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 370.81207275390625, - 29.7099609375 - ], - "bbox": [ - 370.81207275390625, - 19.309961318969727, - 373.4500732421875, - 36.54998016357422 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドにも特殊な種類のものが存在する.", - "origin": [ - 373.4500732421875, - 33.47998046875 - ], - "bbox": [ - 373.4500732421875, - 22.699975967407227, - 518.5400390625, - 36.54998016357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.320068359375, - 19.309961318969727, - 518.5400390625, - 36.79998016357422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "\"XOR\" ", - "origin": [ - 527.280029296875, - 31.3299560546875 - ], - "bbox": [ - 527.280029296875, - 20.929956436157227, - 559.3200073242188, - 36.08995819091797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 527.280029296875, - 20.929956436157227, - 559.3200073242188, - 36.08995819091797 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 315.7499694824219, - 34.489952087402344, - 552.64013671875, - 141.030029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ノ", - "origin": [ - 315.8800048828125, - 48.43994140625 - ], - "bbox": [ - 315.8800048828125, - 38.039939880371094, - 324.0, - 51.50994110107422 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 324.0, - 48.43994140625 - ], - "bbox": [ - 324.0, - 38.12995529174805, - 325.69000244140625, - 50.43544006347656 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 325.69000244140625, - 44.88995361328125 - ], - "bbox": [ - 325.69000244140625, - 38.12995529174805, - 334.4519958496094, - 46.88545227050781 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 334.4519958496094, - 44.88995361328125 - ], - "bbox": [ - 334.4519958496094, - 34.489952087402344, - 337.4599914550781, - 51.28997039794922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドはそれ以下に互いに相いれない選択肢を複数持ち", - "origin": [ - 337.4599914550781, - 48.219970703125 - ], - "bbox": [ - 337.4599914550781, - 37.819969177246094, - 552.3499755859375, - 51.28997039794922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8800048828125, - 34.489952087402344, - 552.3499755859375, - 51.50994110107422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "うるノ", - "origin": [ - 315.99993896484375, - 63.2099609375 - ], - "bbox": [ - 315.99993896484375, - 52.809959411621094, - 343.0821228027344, - 66.27996063232422 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 343.0821228027344, - 63.2099609375 - ], - "bbox": [ - 343.0821228027344, - 53.03998947143555, - 344.6499328613281, - 65.20545959472656 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 344.6499328613281, - 59.79998779296875 - ], - "bbox": [ - 344.6499328613281, - 53.03998947143555, - 353.41192626953125, - 61.79548645019531 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 353.41192626953125, - 59.79998779296875 - ], - "bbox": [ - 353.41192626953125, - 49.399986267089844, - 356.419921875, - 66.37999725341797 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドである. このノ", - "origin": [ - 356.419921875, - 63.30999755859375 - ], - "bbox": [ - 356.419921875, - 52.909996032714844, - 428.66033935546875, - 66.37999725341797 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 428.66033935546875, - 63.30999755859375 - ], - "bbox": [ - 428.66033935546875, - 52.90998458862305, - 430.22991943359375, - 65.30549621582031 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 430.22991943359375, - 59.66998291015625 - ], - "bbox": [ - 430.22991943359375, - 52.90998458862305, - 438.9919128417969, - 61.66548156738281 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 438.9919128417969, - 59.66998291015625 - ], - "bbox": [ - 438.9919128417969, - 49.269981384277344, - 441.9999084472656, - 66.37999725341797 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドが登場した場合,倫理指", - "origin": [ - 441.9999084472656, - 63.30999755859375 - ], - "bbox": [ - 441.9999084472656, - 52.909996032714844, - 552.64013671875, - 66.37999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.99993896484375, - 49.269981384277344, - 552.64013671875, - 66.37999725341797 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "針の利用者はXORノ", - "origin": [ - 316.07989501953125, - 78.010009765625 - ], - "bbox": [ - 316.07989501953125, - 67.05001068115234, - 408.2671203613281, - 81.36998748779297 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 408.2671203613281, - 78.29998779296875 - ], - "bbox": [ - 408.2671203613281, - 67.94001007080078, - 409.8299255371094, - 80.29548645019531 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 409.8299255371094, - 74.70001220703125 - ], - "bbox": [ - 409.8299255371094, - 67.94001007080078, - 418.5919189453125, - 76.69551086425781 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 418.5919189453125, - 74.70001220703125 - ], - "bbox": [ - 418.5919189453125, - 64.30001068115234, - 421.7199401855469, - 81.29003143310547 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ド以下に接続されたノ", - "origin": [ - 421.7199401855469, - 78.22003173828125 - ], - "bbox": [ - 421.7199401855469, - 67.82003021240234, - 513.037353515625, - 81.29003143310547 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 513.037353515625, - 78.22003173828125 - ], - "bbox": [ - 513.037353515625, - 68.12000274658203, - 514.719970703125, - 80.21553039550781 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 514.719970703125, - 74.8800048828125 - ], - "bbox": [ - 514.719970703125, - 68.12000274658203, - 523.4819946289062, - 76.87550354003906 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 523.4819946289062, - 74.8800048828125 - ], - "bbox": [ - 523.4819946289062, - 64.4800033569336, - 526.6099853515625, - 81.58000946044922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドのう", - "origin": [ - 526.6099853515625, - 78.510009765625 - ], - "bbox": [ - 526.6099853515625, - 68.1100082397461, - 552.47998046875, - 81.58000946044922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.07989501953125, - 64.30001068115234, - 552.47998046875, - 81.58000946044922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ちのいずれかを選択しなければならない. また,それ以", - "origin": [ - 315.76995849609375, - 93.1600341796875 - ], - "bbox": [ - 315.76995849609375, - 82.7600326538086, - 552.2958374023438, - 96.23003387451172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.76995849609375, - 82.7600326538086, - 552.2958374023438, - 96.23003387451172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "下の葉ノ", - "origin": [ - 315.7499694824219, - 108.1600341796875 - ], - "bbox": [ - 315.7499694824219, - 97.7600326538086, - 352.44317626953125, - 111.23003387451172 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 352.44317626953125, - 108.1600341796875 - ], - "bbox": [ - 352.44317626953125, - 97.74005889892578, - 354.0099792480469, - 110.15553283691406 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 354.0099792480469, - 104.50006103515625 - ], - "bbox": [ - 354.0099792480469, - 97.74005889892578, - 362.77197265625, - 106.49555969238281 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 362.77197265625, - 104.50006103515625 - ], - "bbox": [ - 362.77197265625, - 94.10005950927734, - 365.77996826171875, - 111.23003387451172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドに到達するための条件を現時点では決定し", - "origin": [ - 365.77996826171875, - 108.1600341796875 - ], - "bbox": [ - 365.77996826171875, - 97.7600326538086, - 552.5009155273438, - 111.23003387451172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7499694824219, - 94.10005950927734, - 552.5009155273438, - 111.23003387451172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "きれない場合,", - "origin": [ - 315.8799743652344, - 123.010009765625 - ], - "bbox": [ - 315.8799743652344, - 112.6100082397461, - 382.9132080078125, - 126.08000946044922 - ] - }, - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " \"condition\"", - "origin": [ - 382.9132080078125, - 123.010009765625 - ], - "bbox": [ - 382.9132080078125, - 114.96200561523438, - 432.6039123535156, - 125.60201263427734 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ノ", - "origin": [ - 432.6039123535156, - 123.010009765625 - ], - "bbox": [ - 432.6039123535156, - 112.6100082397461, - 444.72998046875, - 126.08000946044922 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 444.72998046875, - 123.010009765625 - ], - "bbox": [ - 444.72998046875, - 112.66999053955078, - 446.53997802734375, - 125.00550842285156 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 446.53997802734375, - 119.42999267578125 - ], - "bbox": [ - 446.53997802734375, - 112.66999053955078, - 455.3019714355469, - 121.42549133300781 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 455.3019714355469, - 119.42999267578125 - ], - "bbox": [ - 455.3019714355469, - 109.02999114990234, - 458.54998779296875, - 126.08000946044922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドを仮に設置したこ", - "origin": [ - 458.54998779296875, - 123.010009765625 - ], - "bbox": [ - 458.54998779296875, - 112.6100082397461, - 552.485595703125, - 126.08000946044922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8799743652344, - 109.02999114990234, - 552.485595703125, - 126.08000946044922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "れは葉の要検討ノ", - "origin": [ - 316.05999755859375, - 137.85003662109375 - ], - "bbox": [ - 316.05999755859375, - 127.45003509521484, - 391.2040100097656, - 140.9200439453125 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 391.2040100097656, - 137.85003662109375 - ], - "bbox": [ - 391.2040100097656, - 127.45001983642578, - 392.8900146484375, - 139.8455352783203 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 392.8900146484375, - 134.21002197265625 - ], - "bbox": [ - 392.8900146484375, - 127.45001983642578, - 401.6520080566406, - 136.2055206298828 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 401.6520080566406, - 134.21002197265625 - ], - "bbox": [ - 401.6520080566406, - 123.81002044677734, - 404.780029296875, - 141.030029296875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドとほぼ同義である.", - "origin": [ - 404.780029296875, - 137.96002197265625 - ], - "bbox": [ - 404.780029296875, - 127.56002044677734, - 490.699951171875, - 141.030029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.05999755859375, - 123.81002044677734, - 490.699951171875, - 141.030029296875 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 316.21002197265625, - 153.738037109375, - 381.9693908691406, - 169.97402954101562 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8946", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "4 ", - "origin": [ - 316.21002197265625, - 166.35003662109375 - ], - "bbox": [ - 316.21002197265625, - 153.738037109375, - 325.45001220703125, - 169.97402954101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.21002197265625, - 153.738037109375, - 325.45001220703125, - 169.97402954101562 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8946", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "実験結果", - "origin": [ - 336.3700256347656, - 166.35003662109375 - ], - "bbox": [ - 336.3700256347656, - 153.738037109375, - 381.9693908691406, - 169.97402954101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.3700256347656, - 153.738037109375, - 381.9693908691406, - 169.97402954101562 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 315.5899963378906, - 176.38003540039062, - 552.2620239257812, - 220.28997802734375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3章で説明した手法を用いて倫理指針の構築を行った.", - "origin": [ - 327.780029296875, - 186.780029296875 - ], - "bbox": [ - 327.780029296875, - 176.38003540039062, - 549.9722290039062, - 190.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.780029296875, - 176.38003540039062, - 549.9722290039062, - 190.300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表1は今回収集した論文の収集元と対象とした年代,収", - "origin": [ - 316.0500183105469, - 202.10003662109375 - ], - "bbox": [ - 316.0500183105469, - 191.70004272460938, - 552.2620239257812, - 205.1700439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0500183105469, - 191.70004272460938, - 552.2620239257812, - 205.1700439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "集した論文の本数を示している.", - "origin": [ - 315.5899963378906, - 217.219970703125 - ], - "bbox": [ - 315.5899963378906, - 206.30038452148438, - 452.30126953125, - 220.28997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999927282333374, - -0.0037999728228896856 - ], - "bbox": [ - 315.5899963378906, - 206.30038452148438, - 452.30126953125, - 220.28997802734375 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 325.489990234375, - 221.31002807617188, - 552.4616088867188, - 234.780029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "これらの論文を基にトピックモデルを構築した. ここ", - "origin": [ - 325.489990234375, - 231.71002197265625 - ], - "bbox": [ - 325.489990234375, - 221.31002807617188, - 552.4616088867188, - 234.780029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.489990234375, - 221.31002807617188, - 552.4616088867188, - 234.780029296875 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 315.9599609375, - 236.54000854492188, - 552.6099853515625, - 279.60003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "で,SSRNはカンファレンスではないので除外した. ト", - "origin": [ - 315.9899597167969, - 246.94000244140625 - ], - "bbox": [ - 315.9899597167969, - 236.54000854492188, - 552.6099853515625, - 250.010009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9899597167969, - 236.54000854492188, - 552.6099853515625, - 250.010009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ピックの数は50を指定し,他のパラメ", - "origin": [ - 315.9599609375, - 261.780029296875 - ], - "bbox": [ - 315.9599609375, - 251.38003540039062, - 483.3688049316406, - 264.85003662109375 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 483.3688049316406, - 261.780029296875 - ], - "bbox": [ - 483.3688049316406, - 251.38002014160156, - 485.40997314453125, - 263.7755432128906 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 485.40997314453125, - 258.1400146484375 - ], - "bbox": [ - 485.40997314453125, - 251.38002014160156, - 494.1719665527344, - 260.1355285644531 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 494.1719665527344, - 258.1400146484375 - ], - "bbox": [ - 494.1719665527344, - 247.74002075195312, - 495.8599853515625, - 264.760009765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タはトピック", - "origin": [ - 495.8599853515625, - 261.69000244140625 - ], - "bbox": [ - 495.8599853515625, - 251.29000854492188, - 552.4915161132812, - 264.760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599609375, - 247.74002075195312, - 552.4915161132812, - 264.85003662109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "モデルライブラリ", - "origin": [ - 316.0099792480469, - 276.530029296875 - ], - "bbox": [ - 316.0099792480469, - 266.1300354003906, - 393.1814880371094, - 279.60003662109375 - ] - }, - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " Gensim[3]", - "origin": [ - 393.1814880371094, - 276.530029296875 - ], - "bbox": [ - 393.1814880371094, - 268.4820251464844, - 437.8899841308594, - 279.1220397949219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " のデフォルト値を用いた.", - "origin": [ - 437.8899841308594, - 276.530029296875 - ], - "bbox": [ - 437.8899841308594, - 266.1300354003906, - 549.9830322265625, - 279.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0099792480469, - 266.1300354003906, - 549.9830322265625, - 279.60003662109375 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 315.8299560546875, - 281.050048828125, - 552.7288208007812, - 384.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "得られたトピックに属するフレ", - "origin": [ - 315.9599914550781, - 291.5700378417969 - ], - "bbox": [ - 315.9599914550781, - 281.1700439453125, - 450.7681884765625, - 294.6400451660156 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 451.20001220703125, - 288.0800476074219 - ], - "bbox": [ - 451.20001220703125, - 281.3200378417969, - 459.9620056152344, - 290.0755615234375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ズを手作業で13のト", - "origin": [ - 461.0500183105469, - 291.85003662109375 - ], - "bbox": [ - 461.0500183105469, - 281.050048828125, - 552.7288208007812, - 294.9200439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 281.050048828125, - 552.7288208007812, - 294.9200439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ピックカテゴリにまとめたすなわち,あるトピックカ", - "origin": [ - 315.9599609375, - 306.5400390625 - ], - "bbox": [ - 315.9599609375, - 296.1400451660156, - 552.4264526367188, - 309.61004638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599609375, - 296.1400451660156, - 552.4264526367188, - 309.61004638671875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "テゴリは複数のトピックから構成されている. 表2はト", - "origin": [ - 315.8299560546875, - 321.5000305175781 - ], - "bbox": [ - 315.8299560546875, - 311.10003662109375, - 552.7177734375, - 324.5700378417969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8299560546875, - 311.10003662109375, - 552.7177734375, - 324.5700378417969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ピックカテゴリとそれに属するトピックおよびトピック", - "origin": [ - 315.9599609375, - 336.4400329589844 - ], - "bbox": [ - 315.9599609375, - 326.0400390625, - 552.5004272460938, - 339.5100402832031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599609375, - 326.0400390625, - 552.5004272460938, - 339.5100402832031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に属する旬の代表例を表している.", - "origin": [ - 316.010009765625, - 351.6199951171875 - ], - "bbox": [ - 316.010009765625, - 340.82049560546875, - 461.9031066894531, - 354.8292541503906 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999874830245972, - -0.0049999370239675045 - ], - "bbox": [ - 316.010009765625, - 340.82049560546875, - 461.9031066894531, - 354.8292541503906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "次に,収集した論文集合からグレ", - "origin": [ - 325.29998779296875, - 366.1400146484375 - ], - "bbox": [ - 325.29998779296875, - 355.7400207519531, - 467.0915222167969, - 369.6300354003906 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 467.30999755859375, - 362.97003173828125 - ], - "bbox": [ - 467.30999755859375, - 356.21002197265625, - 476.0719909667969, - 364.9655456542969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域に属する論文", - "origin": [ - 476.54998779296875, - 366.6900329589844 - ], - "bbox": [ - 476.54998779296875, - 355.98004150390625, - 552.3937377929688, - 369.7600402832031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.29998779296875, - 355.7400207519531, - 552.3937377929688, - 369.7600402832031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "と倫理に言及している論文を抽出した. 前者は234件で", - "origin": [ - 315.8699645996094, - 381.23004150390625 - ], - "bbox": [ - 315.8699645996094, - 370.8300476074219, - 552.5843505859375, - 384.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8699645996094, - 370.8300476074219, - 552.5843505859375, - 384.300048828125 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 316.0599365234375, - 385.8400573730469, - 552.4559326171875, - 399.31005859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あり,後者は200件であった.", - "origin": [ - 316.0599365234375, - 396.24005126953125 - ], - "bbox": [ - 316.0599365234375, - 385.8400573730469, - 440.86639404296875, - 399.31005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0599365234375, - 385.8400573730469, - 440.86639404296875, - 399.31005859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "どちらにも含まれている", - "origin": [ - 449.88995361328125, - 396.24005126953125 - ], - "bbox": [ - 449.88995361328125, - 385.8400573730469, - 552.4559326171875, - 399.31005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.88995361328125, - 385.8400573730469, - 552.4559326171875, - 399.31005859375 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 315.74993896484375, - 400.6900634765625, - 552.5598754882812, - 429.624755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文は49件であった. グレ", - "origin": [ - 315.74993896484375, - 411.49005126953125 - ], - "bbox": [ - 315.74993896484375, - 400.6900634765625, - 436.7299499511719, - 414.56005859375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 437.179931640625, - 407.61004638671875 - ], - "bbox": [ - 437.179931640625, - 400.85003662109375, - 445.9419250488281, - 409.6055603027344 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文と倫理に言及してい", - "origin": [ - 446.43994140625, - 411.1300354003906 - ], - "bbox": [ - 446.43994140625, - 400.73004150390625, - 552.4371337890625, - 414.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.74993896484375, - 400.6900634765625, - 552.4371337890625, - 414.56005859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る論文の和集合を先に構成したトピックならびにトピッ", - "origin": [ - 315.8900146484375, - 426.2099914550781 - ], - "bbox": [ - 315.8900146484375, - 415.5409240722656, - 552.5598754882812, - 429.624755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - -0.002699990291148424 - ], - "bbox": [ - 315.8900146484375, - 415.5409240722656, - 552.5598754882812, - 429.624755859375 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.9599914550781, - 430.55999755859375, - 517.1800537109375, - 444.47998046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "クカテゴリに分類した. 分類の基準は次の2つ", - "origin": [ - 315.9599914550781, - 440.9599914550781 - ], - "bbox": [ - 315.9599914550781, - 430.55999755859375, - 517.1800537109375, - 444.47998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 430.55999755859375, - 517.1800537109375, - 444.47998046875 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 325.6700439453125, - 453.5799865722656, - 551.6712036132812, - 467.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "1. ある論文とトピック間の尤度が最も高いトピック", - "origin": [ - 325.6700439453125, - 463.97998046875 - ], - "bbox": [ - 325.6700439453125, - 453.5799865722656, - 551.6712036132812, - 467.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.6700439453125, - 453.5799865722656, - 551.6712036132812, - 467.04998779296875 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 325.75, - 476.17999267578125, - 552.567626953125, - 505.07000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2. ある論文とトピック間の尤度が2番目高く,その", - "origin": [ - 325.75, - 486.5799865722656 - ], - "bbox": [ - 325.75, - 476.17999267578125, - 552.567626953125, - 490.2044372558594 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - 0.002099995268508792 - ], - "bbox": [ - 325.75, - 476.17999267578125, - 552.567626953125, - 490.2044372558594 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "値が 0.1以上となるトピック", - "origin": [ - 340.739990234375, - 501.6199951171875 - ], - "bbox": [ - 340.739990234375, - 491.2200012207031, - 463.695068359375, - 505.07000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.739990234375, - 491.2200012207031, - 463.695068359375, - 505.07000732421875 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 64.20001220703125, - 548.0645751953125, - 540.2122192382812, - 738.3119506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 13.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8943", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "l", - "origin": [ - 64.20001220703125, - 567.780029296875 - ], - "bbox": [ - 64.20001220703125, - 553.7400512695312, - 65.87401580810547, - 571.9244995117188 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8941", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " カテゴリ", - "origin": [ - 65.87401580810547, - 567.780029296875 - ], - "bbox": [ - 65.87401580810547, - 559.4600219726562, - 99.59761047363281, - 570.2360229492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.20001220703125, - 553.7400512695312, - 99.59761047363281, - 571.9244995117188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表2: それぞれのトピックカテゴリに属するトピックとそれを構成する代表的な旬", - "origin": [ - 130.64999389648438, - 558.8099975585938 - ], - "bbox": [ - 130.64999389648438, - 548.0645751953125, - 481.34515380859375, - 562.0109252929688 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999990463256836, - 0.00139999866951257 - ], - "bbox": [ - 130.64999389648438, - 548.0645751953125, - 481.34515380859375, - 562.0109252929688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8941", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ト", - "origin": [ - 183.25, - 567.8800048828125 - ], - "bbox": [ - 183.25, - 559.5599975585938, - 187.57000732421875, - 570.3359985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 183.25, - 559.5599975585938, - 187.57000732421875, - 570.3359985351562 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8941", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ック", - "origin": [ - 197.64999389648438, - 567.8800048828125 - ], - "bbox": [ - 197.64999389648438, - 559.5599975585938, - 210.8560028076172, - 570.3359985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 197.64999389648438, - 559.5599975585938, - 210.8560028076172, - 570.3359985351562 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8941", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "止の", - "origin": [ - 252.1300048828125, - 567.4299926757812 - ], - "bbox": [ - 252.1300048828125, - 559.1099853515625, - 265.09100341796875, - 570.2994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9994915723800659, - 0.03188377991318703 - ], - "bbox": [ - 252.1300048828125, - 559.1099853515625, - 265.09100341796875, - 570.2994384765625 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8941", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "語", - "origin": [ - 273.25, - 568.1036987304688 - ], - "bbox": [ - 273.25, - 559.78369140625, - 280.92999267578125, - 570.8046875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9994915723800659, - 0.03188377991318703 - ], - "bbox": [ - 273.25, - 559.78369140625, - 280.92999267578125, - 570.8046875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "authentication", - "origin": [ - 70.87000274658203, - 579.3499755859375 - ], - "bbox": [ - 70.87000274658203, - 571.302001953125, - 123.78202056884766, - 581.9419555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.87000274658203, - 571.302001953125, - 123.78202056884766, - 581.9419555664062 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "7 ", - "origin": [ - 181.57000732421875, - 579.47998046875 - ], - "bbox": [ - 181.57000732421875, - 571.6799926757812, - 187.40501403808594, - 581.782470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.57000732421875, - 571.6799926757812, - 187.40501403808594, - 581.782470703125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "native code, collected data, legitimate users, tenth symposium, shoulder surng, ", - "origin": [ - 242.49000549316406, - 579.3499755859375 - ], - "bbox": [ - 242.49000549316406, - 571.302001953125, - 539.630126953125, - 581.9419555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.49000549316406, - 571.302001953125, - 539.630126953125, - 581.9419555664062 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "session key, users may ", - "origin": [ - 242.59002685546875, - 588.8400268554688 - ], - "bbox": [ - 242.59002685546875, - 580.7920532226562, - 326.0531311035156, - 591.4320068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.59002685546875, - 580.7920532226562, - 326.0531311035156, - 591.4320068359375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "security behavior", - "origin": [ - 70.75003051757812, - 598.7900390625 - ], - "bbox": [ - 70.75003051757812, - 590.7420654296875, - 133.65992736816406, - 601.3820190429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.75003051757812, - 590.7420654296875, - 133.65992736816406, - 601.3820190429688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "4 ", - "origin": [ - 181.3300323486328, - 598.8200073242188 - ], - "bbox": [ - 181.3300323486328, - 590.7720336914062, - 187.4100341796875, - 601.4119873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.3300323486328, - 590.7720336914062, - 187.4100341796875, - 601.4119873046875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "previous studies, security behaviors, information security, identity theft ", - "origin": [ - 242.9100341796875, - 598.7900390625 - ], - "bbox": [ - 242.9100341796875, - 590.7420654296875, - 508.3116760253906, - 601.3820190429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.9100341796875, - 590.7420654296875, - 508.3116760253906, - 601.3820190429688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "low level/0S/IoT", - "origin": [ - 70.62005615234375, - 608.6300048828125 - ], - "bbox": [ - 70.62005615234375, - 600.58203125, - 135.19447326660156, - 611.2219848632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.62005615234375, - 600.58203125, - 135.19447326660156, - 611.2219848632812 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "6 ", - "origin": [ - 181.45005798339844, - 608.760009765625 - ], - "bbox": [ - 181.45005798339844, - 600.7120361328125, - 187.35406494140625, - 611.3519897460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.45005798339844, - 600.7120361328125, - 187.35406494140625, - 611.3519897460938 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "sa fed, linux kernel, control flow, power consumption, address space, operating ", - "origin": [ - 242.47006225585938, - 608.7200317382812 - ], - "bbox": [ - 242.47006225585938, - 600.6720581054688, - 540.2122192382812, - 611.31201171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.47006225585938, - 600.6720581054688, - 540.2122192382812, - 611.31201171875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "system ", - "origin": [ - 242.59005737304688, - 618.1199951171875 - ], - "bbox": [ - 242.59005737304688, - 610.072021484375, - 269.9076232910156, - 620.7119750976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.59005737304688, - 610.072021484375, - 269.9076232910156, - 620.7119750976562 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "privacy controls", - "origin": [ - 70.41006469726562, - 627.9600219726562 - ], - "bbox": [ - 70.41006469726562, - 619.9120483398438, - 129.4592742919922, - 630.552001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.41006469726562, - 619.9120483398438, - 129.4592742919922, - 630.552001953125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "5 ", - "origin": [ - 181.570068359375, - 628.0700073242188 - ], - "bbox": [ - 181.570068359375, - 620.0220336914062, - 187.29006958007812, - 630.6619873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.570068359375, - 620.0220336914062, - 187.29006958007812, - 630.6619873046875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "privacy notices, privacy settings, privacy concerns, users privacy, data practices ", - "origin": [ - 242.60006713867188, - 627.9600219726562 - ], - "bbox": [ - 242.60006713867188, - 619.9120483398438, - 538.5689697265625, - 630.552001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.60006713867188, - 619.9120483398438, - 538.5689697265625, - 630.552001953125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "PII collection", - "origin": [ - 70.9200439453125, - 637.9100341796875 - ], - "bbox": [ - 70.9200439453125, - 629.862060546875, - 120.26025390625, - 640.5020141601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.9200439453125, - 629.862060546875, - 120.26025390625, - 640.5020141601562 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "6 ", - "origin": [ - 181.45004272460938, - 638.0400390625 - ], - "bbox": [ - 181.45004272460938, - 629.9920654296875, - 187.3540496826172, - 640.6320190429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.45004272460938, - 629.9920654296875, - 187.3540496826172, - 640.6320190429688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "internet users, statistically significant, demographic information, personal infor-", - "origin": [ - 242.45004272460938, - 637.8499755859375 - ], - "bbox": [ - 242.45004272460938, - 629.802001953125, - 538.2412719726562, - 640.4419555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.45004272460938, - 629.802001953125, - 538.2412719726562, - 640.4419555664062 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "mation, one participant, phone number ", - "origin": [ - 242.85003662109375, - 647.4000244140625 - ], - "bbox": [ - 242.85003662109375, - 639.35205078125, - 389.56378173828125, - 649.9920043945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.85003662109375, - 639.35205078125, - 389.56378173828125, - 649.9920043945312 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "vulnerabilities", - "origin": [ - 70.88005065917969, - 657.239990234375 - ], - "bbox": [ - 70.88005065917969, - 649.1920166015625, - 122.64165496826172, - 659.8319702148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.88005065917969, - 649.1920166015625, - 122.64165496826172, - 659.8319702148438 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3 ", - "origin": [ - 181.45004272460938, - 657.3499755859375 - ], - "bbox": [ - 181.45004272460938, - 649.5499877929688, - 187.28504943847656, - 659.6524658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.45004272460938, - 649.5499877929688, - 187.28504943847656, - 659.6524658203125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "et al, security symposium, security policy ", - "origin": [ - 242.43003845214844, - 657.239990234375 - ], - "bbox": [ - 242.43003845214844, - 649.1920166015625, - 397.62799072265625, - 659.8319702148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.43003845214844, - 649.1920166015625, - 397.62799072265625, - 659.8319702148438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "encryption", - "origin": [ - 70.58999633789062, - 667.0800170898438 - ], - "bbox": [ - 70.58999633789062, - 659.0320434570312, - 109.94338989257812, - 669.6719970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.58999633789062, - 659.0320434570312, - 109.94338989257812, - 669.6719970703125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "4 ", - "origin": [ - 181.32998657226562, - 667.1099853515625 - ], - "bbox": [ - 181.32998657226562, - 659.06201171875, - 187.4099884033203, - 669.7019653320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.32998657226562, - 659.06201171875, - 187.4099884033203, - 669.7019653320312 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "computer science, security actions, malformed blocks, public key ", - "origin": [ - 242.84999084472656, - 667.0800170898438 - ], - "bbox": [ - 242.84999084472656, - 659.0320434570312, - 483.12200927734375, - 669.6719970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.84999084472656, - 659.0320434570312, - 483.12200927734375, - 669.6719970703125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "user oriented design ", - "origin": [ - 70.80999755859375, - 676.9199829101562 - ], - "bbox": [ - 70.80999755859375, - 668.8720092773438, - 146.2266082763672, - 679.511962890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.80999755859375, - 668.8720092773438, - 146.2266082763672, - 679.511962890625 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3 ", - "origin": [ - 181.4499969482422, - 677.0399780273438 - ], - "bbox": [ - 181.4499969482422, - 669.239990234375, - 187.28500366210938, - 679.3424682617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.4499969482422, - 669.239990234375, - 187.28500366210938, - 679.3424682617188 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "participants reported, security questions, would like ", - "origin": [ - 242.60000610351562, - 676.9199829101562 - ], - "bbox": [ - 242.60000610351562, - 668.8720092773438, - 436.1780090332031, - 679.511962890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.60000610351562, - 668.8720092773438, - 436.1780090332031, - 679.511962890625 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "identity management ", - "origin": [ - 70.6099853515625, - 686.760009765625 - ], - "bbox": [ - 70.6099853515625, - 678.7120361328125, - 150.5919952392578, - 689.3519897460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.6099853515625, - 678.7120361328125, - 150.5919952392578, - 689.3519897460938 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "1 ", - "origin": [ - 181.92999267578125, - 686.760009765625 - ], - "bbox": [ - 181.92999267578125, - 678.9600219726562, - 186.92498779296875, - 689.0625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.92999267578125, - 678.9600219726562, - 186.92498779296875, - 689.0625 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "mobile phone ", - "origin": [ - 242.51998901367188, - 686.760009765625 - ], - "bbox": [ - 242.51998901367188, - 678.7120361328125, - 293.85150146484375, - 689.3519897460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.51998901367188, - 678.7120361328125, - 293.85150146484375, - 689.3519897460938 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "online measurements", - "origin": [ - 70.78999328613281, - 696.5999755859375 - ], - "bbox": [ - 70.78999328613281, - 688.552001953125, - 147.62059020996094, - 699.1919555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.78999328613281, - 688.552001953125, - 147.62059020996094, - 699.1919555664062 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "7 ", - "origin": [ - 181.5699920654297, - 696.719970703125 - ], - "bbox": [ - 181.5699920654297, - 688.9199829101562, - 187.40499877929688, - 699.0224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.5699920654297, - 688.9199829101562, - 187.40499877929688, - 699.0224609375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "touch id, per day, ip address, data collection, mturk workers, social networks, ", - "origin": [ - 242.72000122070312, - 696.5999755859375 - ], - "bbox": [ - 242.72000122070312, - 688.552001953125, - 539.9822998046875, - 699.1919555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.72000122070312, - 688.552001953125, - 539.9822998046875, - 699.1919555664062 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "private key ", - "origin": [ - 242.60000610351562, - 706.0799560546875 - ], - "bbox": [ - 242.60000610351562, - 698.031982421875, - 285.4314270019531, - 708.6719360351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.60000610351562, - 698.031982421875, - 285.4314270019531, - 708.6719360351562 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "website analysis", - "origin": [ - 70.6400146484375, - 716.0399780273438 - ], - "bbox": [ - 70.6400146484375, - 707.9920043945312, - 129.68460083007812, - 718.6319580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.6400146484375, - 707.9920043945312, - 129.68460083007812, - 718.6319580078125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "2 ", - "origin": [ - 181.57000732421875, - 716.0399780273438 - ], - "bbox": [ - 181.57000732421875, - 707.9920043945312, - 187.29000854492188, - 718.6319580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.57000732421875, - 707.9920043945312, - 187.29000854492188, - 718.6319580078125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "new york, available http ", - "origin": [ - 242.49000549316406, - 716.0399780273438 - ], - "bbox": [ - 242.49000549316406, - 707.9920043945312, - 333.80596923828125, - 718.6319580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.49000549316406, - 707.9920043945312, - 333.80596923828125, - 718.6319580078125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "version control", - "origin": [ - 70.88002014160156, - 725.8800048828125 - ], - "bbox": [ - 70.88002014160156, - 717.83203125, - 125.11041259765625, - 728.4719848632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.88002014160156, - 717.83203125, - 125.11041259765625, - 728.4719848632812 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "1 ", - "origin": [ - 181.93002319335938, - 725.8800048828125 - ], - "bbox": [ - 181.93002319335938, - 718.0800170898438, - 186.92501831054688, - 728.1824951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.93002319335938, - 718.0800170898438, - 186.92501831054688, - 728.1824951171875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ca usa ", - "origin": [ - 242.54002380371094, - 725.8800048828125 - ], - "bbox": [ - 242.54002380371094, - 717.83203125, - 267.5743408203125, - 728.4719848632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.54002380371094, - 717.83203125, - 267.5743408203125, - 728.4719848632812 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "bank account", - "origin": [ - 70.72001647949219, - 735.719970703125 - ], - "bbox": [ - 70.72001647949219, - 727.6719970703125, - 119.93182373046875, - 738.3119506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.72001647949219, - 727.6719970703125, - 119.93182373046875, - 738.3119506835938 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "1 ", - "origin": [ - 181.93002319335938, - 735.719970703125 - ], - "bbox": [ - 181.93002319335938, - 727.9199829101562, - 186.92501831054688, - 738.0224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.93002319335938, - 727.9199829101562, - 186.92501831054688, - 738.0224609375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "amazon com ", - "origin": [ - 242.51002502441406, - 735.719970703125 - ], - "bbox": [ - 242.51002502441406, - 727.6719970703125, - 290.54241943359375, - 738.3119506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.51002502441406, - 727.6719970703125, - 290.54241943359375, - 738.3119506835938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 59.650001525878906, - 22.459985733032227, - 152.5211944580078, - 37.19303512573242 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3.4 ", - "origin": [ - 59.650001525878906, - 32.8599853515625 - ], - "bbox": [ - 59.650001525878906, - 22.459985733032227, - 76.3373031616211, - 36.156917572021484 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999074935913086, - 0.01359874289482832 - ], - "bbox": [ - 59.650001525878906, - 22.459985733032227, - 76.3373031616211, - 36.156917572021484 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理指針の構築", - "origin": [ - 85.33000183105469, - 33.209228515625 - ], - "bbox": [ - 85.33000183105469, - 22.809228897094727, - 152.5211944580078, - 37.19303512573242 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999074935913086, - 0.01359874289482832 - ], - "bbox": [ - 85.33000183105469, - 22.809228897094727, - 152.5211944580078, - 37.19303512573242 - ] - } - ], - "tag": "rotate" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 59.27999496459961, - 56.339988708496094, - 300.0270080566406, - 129.72003173828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "節で作成したカテゴリごとに分類したそして注目する", - "origin": [ - 59.649993896484375, - 66.739990234375 - ], - "bbox": [ - 59.649993896484375, - 56.339988708496094, - 295.9148254394531, - 69.80998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.649993896484375, - 56.339988708496094, - 295.9148254394531, - 69.80998992919922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "カテゴリに属する論文を精読することで,そこから倫理", - "origin": [ - 59.27999496459961, - 81.739990234375 - ], - "bbox": [ - 59.27999496459961, - 71.3399887084961, - 296.1015930175781, - 84.80998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.27999496459961, - 71.3399887084961, - 296.1015930175781, - 84.80998992919922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "的な問題点や倫理的な議論を抽出した. 提案手法では,", - "origin": [ - 59.399993896484375, - 96.7099609375 - ], - "bbox": [ - 59.399993896484375, - 86.3099594116211, - 300.0270080566406, - 99.77996063232422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.399993896484375, - 86.3099594116211, - 300.0270080566406, - 99.77996063232422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集した倫理的な問題や議論を系統立て決定木の形で表", - "origin": [ - 59.41001892089844, - 111.62994384765625 - ], - "bbox": [ - 59.41001892089844, - 101.22994232177734, - 295.89324951171875, - 114.69994354248047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41001892089844, - 101.22994232177734, - 295.89324951171875, - 114.69994354248047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "現した.", - "origin": [ - 59.36000061035156, - 126.6500244140625 - ], - "bbox": [ - 59.36000061035156, - 115.84223937988281, - 90.25279998779297, - 129.72003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999128580093384, - -0.013198849745094776 - ], - "bbox": [ - 59.36000061035156, - 115.84223937988281, - 90.25279998779297, - 129.72003173828125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 74.63999938964844, - 168.48001098632812, - 275.780029296875, - 182.85020446777344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "• 禁止", - "origin": [ - 74.63999938964844, - 178.8800048828125 - ], - "bbox": [ - 74.63999938964844, - 168.48001098632812, - 103.49000549316406, - 182.0855712890625 - ] - }, - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " (Prohibits):", - "origin": [ - 103.49000549316406, - 179.01556396484375 - ], - "bbox": [ - 103.49000549316406, - 170.96755981445312, - 155.76242065429688, - 181.853271484375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 当該活動は非倫理的である", - "origin": [ - 155.76242065429688, - 179.2612762451172 - ], - "bbox": [ - 155.76242065429688, - 168.84091186523438, - 275.780029296875, - 182.85020446777344 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999889135360718, - 0.004699947778135538 - ], - "bbox": [ - 74.63999938964844, - 168.48001098632812, - 275.780029296875, - 182.85020446777344 - ] - } - ], - "tag": "rotate" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 74.63999938964844, - 191.39999389648438, - 269.32861328125, - 205.44024658203125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "• 許可", - "origin": [ - 74.63999938964844, - 201.79998779296875 - ], - "bbox": [ - 74.63999938964844, - 191.39999389648438, - 103.36439514160156, - 205.39630126953125 - ] - }, - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " (Permits):", - "origin": [ - 103.36439514160156, - 202.3262939453125 - ], - "bbox": [ - 103.36439514160156, - 193.79055786132812, - 149.41302490234375, - 204.9182891845703 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 当該活動は非倫理的でない", - "origin": [ - 149.41302490234375, - 201.99659729003906 - ], - "bbox": [ - 149.41302490234375, - 191.57009887695312, - 269.32861328125, - 205.44024658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999931454658508, - 0.003699974622577429 - ], - "bbox": [ - 74.63999938964844, - 191.39999389648438, - 269.32861328125, - 205.44024658203125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 18, - "type": 0, - "bbox": [ - 315.5899963378906, - 176.38003540039062, - 552.2620239257812, - 220.28997802734375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3章で説明した手法を用いて倫理指針の構築を行った.", - "origin": [ - 327.780029296875, - 186.780029296875 - ], - "bbox": [ - 327.780029296875, - 176.38003540039062, - 549.9722290039062, - 190.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.780029296875, - 176.38003540039062, - 549.9722290039062, - 190.300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表1は今回収集した論文の収集元と対象とした年代,収", - "origin": [ - 316.0500183105469, - 202.10003662109375 - ], - "bbox": [ - 316.0500183105469, - 191.70004272460938, - 552.2620239257812, - 205.1700439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0500183105469, - 191.70004272460938, - 552.2620239257812, - 205.1700439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "集した論文の本数を示している.", - "origin": [ - 315.5899963378906, - 217.219970703125 - ], - "bbox": [ - 315.5899963378906, - 206.30038452148438, - 452.30126953125, - 220.28997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999927282333374, - -0.0037999728228896856 - ], - "bbox": [ - 315.5899963378906, - 206.30038452148438, - 452.30126953125, - 220.28997802734375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 315.8299560546875, - 281.050048828125, - 552.7288208007812, - 384.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "得られたトピックに属するフレ", - "origin": [ - 315.9599914550781, - 291.5700378417969 - ], - "bbox": [ - 315.9599914550781, - 281.1700439453125, - 450.7681884765625, - 294.6400451660156 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 451.20001220703125, - 288.0800476074219 - ], - "bbox": [ - 451.20001220703125, - 281.3200378417969, - 459.9620056152344, - 290.0755615234375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ズを手作業で13のト", - "origin": [ - 461.0500183105469, - 291.85003662109375 - ], - "bbox": [ - 461.0500183105469, - 281.050048828125, - 552.7288208007812, - 294.9200439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599914550781, - 281.050048828125, - 552.7288208007812, - 294.9200439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ピックカテゴリにまとめたすなわち,あるトピックカ", - "origin": [ - 315.9599609375, - 306.5400390625 - ], - "bbox": [ - 315.9599609375, - 296.1400451660156, - 552.4264526367188, - 309.61004638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599609375, - 296.1400451660156, - 552.4264526367188, - 309.61004638671875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "テゴリは複数のトピックから構成されている. 表2はト", - "origin": [ - 315.8299560546875, - 321.5000305175781 - ], - "bbox": [ - 315.8299560546875, - 311.10003662109375, - 552.7177734375, - 324.5700378417969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8299560546875, - 311.10003662109375, - 552.7177734375, - 324.5700378417969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ピックカテゴリとそれに属するトピックおよびトピック", - "origin": [ - 315.9599609375, - 336.4400329589844 - ], - "bbox": [ - 315.9599609375, - 326.0400390625, - 552.5004272460938, - 339.5100402832031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599609375, - 326.0400390625, - 552.5004272460938, - 339.5100402832031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に属する旬の代表例を表している.", - "origin": [ - 316.010009765625, - 351.6199951171875 - ], - "bbox": [ - 316.010009765625, - 340.82049560546875, - 461.9031066894531, - 354.8292541503906 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999874830245972, - -0.0049999370239675045 - ], - "bbox": [ - 316.010009765625, - 340.82049560546875, - 461.9031066894531, - 354.8292541503906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "次に,収集した論文集合からグレ", - "origin": [ - 325.29998779296875, - 366.1400146484375 - ], - "bbox": [ - 325.29998779296875, - 355.7400207519531, - 467.0915222167969, - 369.6300354003906 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 467.30999755859375, - 362.97003173828125 - ], - "bbox": [ - 467.30999755859375, - 356.21002197265625, - 476.0719909667969, - 364.9655456542969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域に属する論文", - "origin": [ - 476.54998779296875, - 366.6900329589844 - ], - "bbox": [ - 476.54998779296875, - 355.98004150390625, - 552.3937377929688, - 369.7600402832031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.29998779296875, - 355.7400207519531, - 552.3937377929688, - 369.7600402832031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "と倫理に言及している論文を抽出した. 前者は234件で", - "origin": [ - 315.8699645996094, - 381.23004150390625 - ], - "bbox": [ - 315.8699645996094, - 370.8300476074219, - 552.5843505859375, - 384.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8699645996094, - 370.8300476074219, - 552.5843505859375, - 384.300048828125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 315.74993896484375, - 400.6900634765625, - 552.5598754882812, - 429.624755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文は49件であった. グレ", - "origin": [ - 315.74993896484375, - 411.49005126953125 - ], - "bbox": [ - 315.74993896484375, - 400.6900634765625, - 436.7299499511719, - 414.56005859375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 437.179931640625, - 407.61004638671875 - ], - "bbox": [ - 437.179931640625, - 400.85003662109375, - 445.9419250488281, - 409.6055603027344 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文と倫理に言及してい", - "origin": [ - 446.43994140625, - 411.1300354003906 - ], - "bbox": [ - 446.43994140625, - 400.73004150390625, - 552.4371337890625, - 414.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.74993896484375, - 400.6900634765625, - 552.4371337890625, - 414.56005859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る論文の和集合を先に構成したトピックならびにトピッ", - "origin": [ - 315.8900146484375, - 426.2099914550781 - ], - "bbox": [ - 315.8900146484375, - 415.5409240722656, - 552.5598754882812, - 429.624755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999963641166687, - -0.002699990291148424 - ], - "bbox": [ - 315.8900146484375, - 415.5409240722656, - 552.5598754882812, - 429.624755859375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 325.75, - 476.17999267578125, - 552.567626953125, - 505.07000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "2. ある論文とトピック間の尤度が2番目高く,その", - "origin": [ - 325.75, - 486.5799865722656 - ], - "bbox": [ - 325.75, - 476.17999267578125, - 552.567626953125, - 490.2044372558594 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - 0.002099995268508792 - ], - "bbox": [ - 325.75, - 476.17999267578125, - 552.567626953125, - 490.2044372558594 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "値が 0.1以上となるトピック", - "origin": [ - 340.739990234375, - 501.6199951171875 - ], - "bbox": [ - 340.739990234375, - 491.2200012207031, - 463.695068359375, - 505.07000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.739990234375, - 491.2200012207031, - 463.695068359375, - 505.07000732421875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 64.20001220703125, - 548.0645751953125, - 540.2122192382812, - 738.3119506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 13.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8943", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "l", - "origin": [ - 64.20001220703125, - 567.780029296875 - ], - "bbox": [ - 64.20001220703125, - 553.7400512695312, - 65.87401580810547, - 571.9244995117188 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8941", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " カテゴリ", - "origin": [ - 65.87401580810547, - 567.780029296875 - ], - "bbox": [ - 65.87401580810547, - 559.4600219726562, - 99.59761047363281, - 570.2360229492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.20001220703125, - 553.7400512695312, - 99.59761047363281, - 571.9244995117188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表2: それぞれのトピックカテゴリに属するトピックとそれを構成する代表的な旬", - "origin": [ - 130.64999389648438, - 558.8099975585938 - ], - "bbox": [ - 130.64999389648438, - 548.0645751953125, - 481.34515380859375, - 562.0109252929688 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999990463256836, - 0.00139999866951257 - ], - "bbox": [ - 130.64999389648438, - 548.0645751953125, - 481.34515380859375, - 562.0109252929688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8941", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ト", - "origin": [ - 183.25, - 567.8800048828125 - ], - "bbox": [ - 183.25, - 559.5599975585938, - 187.57000732421875, - 570.3359985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 183.25, - 559.5599975585938, - 187.57000732421875, - 570.3359985351562 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8941", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ック", - "origin": [ - 197.64999389648438, - 567.8800048828125 - ], - "bbox": [ - 197.64999389648438, - 559.5599975585938, - 210.8560028076172, - 570.3359985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 197.64999389648438, - 559.5599975585938, - 210.8560028076172, - 570.3359985351562 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8941", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "止の", - "origin": [ - 252.1300048828125, - 567.4299926757812 - ], - "bbox": [ - 252.1300048828125, - 559.1099853515625, - 265.09100341796875, - 570.2994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9994915723800659, - 0.03188377991318703 - ], - "bbox": [ - 252.1300048828125, - 559.1099853515625, - 265.09100341796875, - 570.2994384765625 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8941", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "語", - "origin": [ - 273.25, - 568.1036987304688 - ], - "bbox": [ - 273.25, - 559.78369140625, - 280.92999267578125, - 570.8046875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9994915723800659, - 0.03188377991318703 - ], - "bbox": [ - 273.25, - 559.78369140625, - 280.92999267578125, - 570.8046875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "authentication", - "origin": [ - 70.87000274658203, - 579.3499755859375 - ], - "bbox": [ - 70.87000274658203, - 571.302001953125, - 123.78202056884766, - 581.9419555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.87000274658203, - 571.302001953125, - 123.78202056884766, - 581.9419555664062 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "7 ", - "origin": [ - 181.57000732421875, - 579.47998046875 - ], - "bbox": [ - 181.57000732421875, - 571.6799926757812, - 187.40501403808594, - 581.782470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.57000732421875, - 571.6799926757812, - 187.40501403808594, - 581.782470703125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "native code, collected data, legitimate users, tenth symposium, shoulder surng, ", - "origin": [ - 242.49000549316406, - 579.3499755859375 - ], - "bbox": [ - 242.49000549316406, - 571.302001953125, - 539.630126953125, - 581.9419555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.49000549316406, - 571.302001953125, - 539.630126953125, - 581.9419555664062 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "session key, users may ", - "origin": [ - 242.59002685546875, - 588.8400268554688 - ], - "bbox": [ - 242.59002685546875, - 580.7920532226562, - 326.0531311035156, - 591.4320068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.59002685546875, - 580.7920532226562, - 326.0531311035156, - 591.4320068359375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "security behavior", - "origin": [ - 70.75003051757812, - 598.7900390625 - ], - "bbox": [ - 70.75003051757812, - 590.7420654296875, - 133.65992736816406, - 601.3820190429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.75003051757812, - 590.7420654296875, - 133.65992736816406, - 601.3820190429688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "4 ", - "origin": [ - 181.3300323486328, - 598.8200073242188 - ], - "bbox": [ - 181.3300323486328, - 590.7720336914062, - 187.4100341796875, - 601.4119873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.3300323486328, - 590.7720336914062, - 187.4100341796875, - 601.4119873046875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "previous studies, security behaviors, information security, identity theft ", - "origin": [ - 242.9100341796875, - 598.7900390625 - ], - "bbox": [ - 242.9100341796875, - 590.7420654296875, - 508.3116760253906, - 601.3820190429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.9100341796875, - 590.7420654296875, - 508.3116760253906, - 601.3820190429688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "low level/0S/IoT", - "origin": [ - 70.62005615234375, - 608.6300048828125 - ], - "bbox": [ - 70.62005615234375, - 600.58203125, - 135.19447326660156, - 611.2219848632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.62005615234375, - 600.58203125, - 135.19447326660156, - 611.2219848632812 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "6 ", - "origin": [ - 181.45005798339844, - 608.760009765625 - ], - "bbox": [ - 181.45005798339844, - 600.7120361328125, - 187.35406494140625, - 611.3519897460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.45005798339844, - 600.7120361328125, - 187.35406494140625, - 611.3519897460938 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "sa fed, linux kernel, control flow, power consumption, address space, operating ", - "origin": [ - 242.47006225585938, - 608.7200317382812 - ], - "bbox": [ - 242.47006225585938, - 600.6720581054688, - 540.2122192382812, - 611.31201171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.47006225585938, - 600.6720581054688, - 540.2122192382812, - 611.31201171875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "system ", - "origin": [ - 242.59005737304688, - 618.1199951171875 - ], - "bbox": [ - 242.59005737304688, - 610.072021484375, - 269.9076232910156, - 620.7119750976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.59005737304688, - 610.072021484375, - 269.9076232910156, - 620.7119750976562 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "privacy controls", - "origin": [ - 70.41006469726562, - 627.9600219726562 - ], - "bbox": [ - 70.41006469726562, - 619.9120483398438, - 129.4592742919922, - 630.552001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.41006469726562, - 619.9120483398438, - 129.4592742919922, - 630.552001953125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "5 ", - "origin": [ - 181.570068359375, - 628.0700073242188 - ], - "bbox": [ - 181.570068359375, - 620.0220336914062, - 187.29006958007812, - 630.6619873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.570068359375, - 620.0220336914062, - 187.29006958007812, - 630.6619873046875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "privacy notices, privacy settings, privacy concerns, users privacy, data practices ", - "origin": [ - 242.60006713867188, - 627.9600219726562 - ], - "bbox": [ - 242.60006713867188, - 619.9120483398438, - 538.5689697265625, - 630.552001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.60006713867188, - 619.9120483398438, - 538.5689697265625, - 630.552001953125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "PII collection", - "origin": [ - 70.9200439453125, - 637.9100341796875 - ], - "bbox": [ - 70.9200439453125, - 629.862060546875, - 120.26025390625, - 640.5020141601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.9200439453125, - 629.862060546875, - 120.26025390625, - 640.5020141601562 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "6 ", - "origin": [ - 181.45004272460938, - 638.0400390625 - ], - "bbox": [ - 181.45004272460938, - 629.9920654296875, - 187.3540496826172, - 640.6320190429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.45004272460938, - 629.9920654296875, - 187.3540496826172, - 640.6320190429688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "internet users, statistically significant, demographic information, personal infor-", - "origin": [ - 242.45004272460938, - 637.8499755859375 - ], - "bbox": [ - 242.45004272460938, - 629.802001953125, - 538.2412719726562, - 640.4419555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.45004272460938, - 629.802001953125, - 538.2412719726562, - 640.4419555664062 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "mation, one participant, phone number ", - "origin": [ - 242.85003662109375, - 647.4000244140625 - ], - "bbox": [ - 242.85003662109375, - 639.35205078125, - 389.56378173828125, - 649.9920043945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.85003662109375, - 639.35205078125, - 389.56378173828125, - 649.9920043945312 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "vulnerabilities", - "origin": [ - 70.88005065917969, - 657.239990234375 - ], - "bbox": [ - 70.88005065917969, - 649.1920166015625, - 122.64165496826172, - 659.8319702148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.88005065917969, - 649.1920166015625, - 122.64165496826172, - 659.8319702148438 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3 ", - "origin": [ - 181.45004272460938, - 657.3499755859375 - ], - "bbox": [ - 181.45004272460938, - 649.5499877929688, - 187.28504943847656, - 659.6524658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.45004272460938, - 649.5499877929688, - 187.28504943847656, - 659.6524658203125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "et al, security symposium, security policy ", - "origin": [ - 242.43003845214844, - 657.239990234375 - ], - "bbox": [ - 242.43003845214844, - 649.1920166015625, - 397.62799072265625, - 659.8319702148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.43003845214844, - 649.1920166015625, - 397.62799072265625, - 659.8319702148438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "encryption", - "origin": [ - 70.58999633789062, - 667.0800170898438 - ], - "bbox": [ - 70.58999633789062, - 659.0320434570312, - 109.94338989257812, - 669.6719970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.58999633789062, - 659.0320434570312, - 109.94338989257812, - 669.6719970703125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "4 ", - "origin": [ - 181.32998657226562, - 667.1099853515625 - ], - "bbox": [ - 181.32998657226562, - 659.06201171875, - 187.4099884033203, - 669.7019653320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.32998657226562, - 659.06201171875, - 187.4099884033203, - 669.7019653320312 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "computer science, security actions, malformed blocks, public key ", - "origin": [ - 242.84999084472656, - 667.0800170898438 - ], - "bbox": [ - 242.84999084472656, - 659.0320434570312, - 483.12200927734375, - 669.6719970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.84999084472656, - 659.0320434570312, - 483.12200927734375, - 669.6719970703125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "user oriented design ", - "origin": [ - 70.80999755859375, - 676.9199829101562 - ], - "bbox": [ - 70.80999755859375, - 668.8720092773438, - 146.2266082763672, - 679.511962890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.80999755859375, - 668.8720092773438, - 146.2266082763672, - 679.511962890625 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "3 ", - "origin": [ - 181.4499969482422, - 677.0399780273438 - ], - "bbox": [ - 181.4499969482422, - 669.239990234375, - 187.28500366210938, - 679.3424682617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.4499969482422, - 669.239990234375, - 187.28500366210938, - 679.3424682617188 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "participants reported, security questions, would like ", - "origin": [ - 242.60000610351562, - 676.9199829101562 - ], - "bbox": [ - 242.60000610351562, - 668.8720092773438, - 436.1780090332031, - 679.511962890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.60000610351562, - 668.8720092773438, - 436.1780090332031, - 679.511962890625 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "identity management ", - "origin": [ - 70.6099853515625, - 686.760009765625 - ], - "bbox": [ - 70.6099853515625, - 678.7120361328125, - 150.5919952392578, - 689.3519897460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.6099853515625, - 678.7120361328125, - 150.5919952392578, - 689.3519897460938 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "1 ", - "origin": [ - 181.92999267578125, - 686.760009765625 - ], - "bbox": [ - 181.92999267578125, - 678.9600219726562, - 186.92498779296875, - 689.0625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.92999267578125, - 678.9600219726562, - 186.92498779296875, - 689.0625 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "mobile phone ", - "origin": [ - 242.51998901367188, - 686.760009765625 - ], - "bbox": [ - 242.51998901367188, - 678.7120361328125, - 293.85150146484375, - 689.3519897460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.51998901367188, - 678.7120361328125, - 293.85150146484375, - 689.3519897460938 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "online measurements", - "origin": [ - 70.78999328613281, - 696.5999755859375 - ], - "bbox": [ - 70.78999328613281, - 688.552001953125, - 147.62059020996094, - 699.1919555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.78999328613281, - 688.552001953125, - 147.62059020996094, - 699.1919555664062 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "7 ", - "origin": [ - 181.5699920654297, - 696.719970703125 - ], - "bbox": [ - 181.5699920654297, - 688.9199829101562, - 187.40499877929688, - 699.0224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.5699920654297, - 688.9199829101562, - 187.40499877929688, - 699.0224609375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "touch id, per day, ip address, data collection, mturk workers, social networks, ", - "origin": [ - 242.72000122070312, - 696.5999755859375 - ], - "bbox": [ - 242.72000122070312, - 688.552001953125, - 539.9822998046875, - 699.1919555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.72000122070312, - 688.552001953125, - 539.9822998046875, - 699.1919555664062 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "private key ", - "origin": [ - 242.60000610351562, - 706.0799560546875 - ], - "bbox": [ - 242.60000610351562, - 698.031982421875, - 285.4314270019531, - 708.6719360351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.60000610351562, - 698.031982421875, - 285.4314270019531, - 708.6719360351562 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "website analysis", - "origin": [ - 70.6400146484375, - 716.0399780273438 - ], - "bbox": [ - 70.6400146484375, - 707.9920043945312, - 129.68460083007812, - 718.6319580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.6400146484375, - 707.9920043945312, - 129.68460083007812, - 718.6319580078125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "2 ", - "origin": [ - 181.57000732421875, - 716.0399780273438 - ], - "bbox": [ - 181.57000732421875, - 707.9920043945312, - 187.29000854492188, - 718.6319580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.57000732421875, - 707.9920043945312, - 187.29000854492188, - 718.6319580078125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "new york, available http ", - "origin": [ - 242.49000549316406, - 716.0399780273438 - ], - "bbox": [ - 242.49000549316406, - 707.9920043945312, - 333.80596923828125, - 718.6319580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.49000549316406, - 707.9920043945312, - 333.80596923828125, - 718.6319580078125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "version control", - "origin": [ - 70.88002014160156, - 725.8800048828125 - ], - "bbox": [ - 70.88002014160156, - 717.83203125, - 125.11041259765625, - 728.4719848632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.88002014160156, - 717.83203125, - 125.11041259765625, - 728.4719848632812 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "1 ", - "origin": [ - 181.93002319335938, - 725.8800048828125 - ], - "bbox": [ - 181.93002319335938, - 718.0800170898438, - 186.92501831054688, - 728.1824951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.93002319335938, - 718.0800170898438, - 186.92501831054688, - 728.1824951171875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ca usa ", - "origin": [ - 242.54002380371094, - 725.8800048828125 - ], - "bbox": [ - 242.54002380371094, - 717.83203125, - 267.5743408203125, - 728.4719848632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.54002380371094, - 717.83203125, - 267.5743408203125, - 728.4719848632812 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "bank account", - "origin": [ - 70.72001647949219, - 735.719970703125 - ], - "bbox": [ - 70.72001647949219, - 727.6719970703125, - 119.93182373046875, - 738.3119506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.72001647949219, - 727.6719970703125, - 119.93182373046875, - 738.3119506835938 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8940", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "1 ", - "origin": [ - 181.93002319335938, - 735.719970703125 - ], - "bbox": [ - 181.93002319335938, - 727.9199829101562, - 186.92501831054688, - 738.0224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.93002319335938, - 727.9199829101562, - 186.92501831054688, - 738.0224609375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "amazon com ", - "origin": [ - 242.51002502441406, - 735.719970703125 - ], - "bbox": [ - 242.51002502441406, - 727.6719970703125, - 290.54241943359375, - 738.3119506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.51002502441406, - 727.6719970703125, - 290.54241943359375, - 738.3119506835938 - ] - } - ], - "tag": "rotate" - }, - { - "number": 15, - "type": 0, - "bbox": [ - 325.320068359375, - 19.309961318969727, - 559.3200073242188, - 36.79998016357422 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "中間のノ", - "origin": [ - 325.320068359375, - 33.72998046875 - ], - "bbox": [ - 325.320068359375, - 23.009973526000977, - 360.9618835449219, - 36.79998016357422 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 360.9618835449219, - 33.40997314453125 - ], - "bbox": [ - 360.9618835449219, - 22.949960708618164, - 362.0500793457031, - 35.40547180175781 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 362.0500793457031, - 29.7099609375 - ], - "bbox": [ - 362.0500793457031, - 22.949960708618164, - 370.81207275390625, - 31.705461502075195 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 370.81207275390625, - 29.7099609375 - ], - "bbox": [ - 370.81207275390625, - 19.309961318969727, - 373.4500732421875, - 36.54998016357422 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドにも特殊な種類のものが存在する.", - "origin": [ - 373.4500732421875, - 33.47998046875 - ], - "bbox": [ - 373.4500732421875, - 22.699975967407227, - 518.5400390625, - 36.54998016357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.320068359375, - 19.309961318969727, - 518.5400390625, - 36.79998016357422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "\"XOR\" ", - "origin": [ - 527.280029296875, - 31.3299560546875 - ], - "bbox": [ - 527.280029296875, - 20.929956436157227, - 559.3200073242188, - 36.08995819091797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 527.280029296875, - 20.929956436157227, - 559.3200073242188, - 36.08995819091797 - ] - } - ], - "tag": "header" - }, - { - "number": 16, - "type": 0, - "bbox": [ - 315.7499694824219, - 34.489952087402344, - 552.64013671875, - 141.030029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ノ", - "origin": [ - 315.8800048828125, - 48.43994140625 - ], - "bbox": [ - 315.8800048828125, - 38.039939880371094, - 324.0, - 51.50994110107422 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 324.0, - 48.43994140625 - ], - "bbox": [ - 324.0, - 38.12995529174805, - 325.69000244140625, - 50.43544006347656 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 325.69000244140625, - 44.88995361328125 - ], - "bbox": [ - 325.69000244140625, - 38.12995529174805, - 334.4519958496094, - 46.88545227050781 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 334.4519958496094, - 44.88995361328125 - ], - "bbox": [ - 334.4519958496094, - 34.489952087402344, - 337.4599914550781, - 51.28997039794922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドはそれ以下に互いに相いれない選択肢を複数持ち", - "origin": [ - 337.4599914550781, - 48.219970703125 - ], - "bbox": [ - 337.4599914550781, - 37.819969177246094, - 552.3499755859375, - 51.28997039794922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8800048828125, - 34.489952087402344, - 552.3499755859375, - 51.50994110107422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "うるノ", - "origin": [ - 315.99993896484375, - 63.2099609375 - ], - "bbox": [ - 315.99993896484375, - 52.809959411621094, - 343.0821228027344, - 66.27996063232422 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 343.0821228027344, - 63.2099609375 - ], - "bbox": [ - 343.0821228027344, - 53.03998947143555, - 344.6499328613281, - 65.20545959472656 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 344.6499328613281, - 59.79998779296875 - ], - "bbox": [ - 344.6499328613281, - 53.03998947143555, - 353.41192626953125, - 61.79548645019531 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 353.41192626953125, - 59.79998779296875 - ], - "bbox": [ - 353.41192626953125, - 49.399986267089844, - 356.419921875, - 66.37999725341797 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドである. このノ", - "origin": [ - 356.419921875, - 63.30999755859375 - ], - "bbox": [ - 356.419921875, - 52.909996032714844, - 428.66033935546875, - 66.37999725341797 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 428.66033935546875, - 63.30999755859375 - ], - "bbox": [ - 428.66033935546875, - 52.90998458862305, - 430.22991943359375, - 65.30549621582031 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 430.22991943359375, - 59.66998291015625 - ], - "bbox": [ - 430.22991943359375, - 52.90998458862305, - 438.9919128417969, - 61.66548156738281 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 438.9919128417969, - 59.66998291015625 - ], - "bbox": [ - 438.9919128417969, - 49.269981384277344, - 441.9999084472656, - 66.37999725341797 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドが登場した場合,倫理指", - "origin": [ - 441.9999084472656, - 63.30999755859375 - ], - "bbox": [ - 441.9999084472656, - 52.909996032714844, - 552.64013671875, - 66.37999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.99993896484375, - 49.269981384277344, - 552.64013671875, - 66.37999725341797 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "針の利用者はXORノ", - "origin": [ - 316.07989501953125, - 78.010009765625 - ], - "bbox": [ - 316.07989501953125, - 67.05001068115234, - 408.2671203613281, - 81.36998748779297 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 408.2671203613281, - 78.29998779296875 - ], - "bbox": [ - 408.2671203613281, - 67.94001007080078, - 409.8299255371094, - 80.29548645019531 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 409.8299255371094, - 74.70001220703125 - ], - "bbox": [ - 409.8299255371094, - 67.94001007080078, - 418.5919189453125, - 76.69551086425781 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 418.5919189453125, - 74.70001220703125 - ], - "bbox": [ - 418.5919189453125, - 64.30001068115234, - 421.7199401855469, - 81.29003143310547 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ド以下に接続されたノ", - "origin": [ - 421.7199401855469, - 78.22003173828125 - ], - "bbox": [ - 421.7199401855469, - 67.82003021240234, - 513.037353515625, - 81.29003143310547 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 513.037353515625, - 78.22003173828125 - ], - "bbox": [ - 513.037353515625, - 68.12000274658203, - 514.719970703125, - 80.21553039550781 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 514.719970703125, - 74.8800048828125 - ], - "bbox": [ - 514.719970703125, - 68.12000274658203, - 523.4819946289062, - 76.87550354003906 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 523.4819946289062, - 74.8800048828125 - ], - "bbox": [ - 523.4819946289062, - 64.4800033569336, - 526.6099853515625, - 81.58000946044922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドのう", - "origin": [ - 526.6099853515625, - 78.510009765625 - ], - "bbox": [ - 526.6099853515625, - 68.1100082397461, - 552.47998046875, - 81.58000946044922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.07989501953125, - 64.30001068115234, - 552.47998046875, - 81.58000946044922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ちのいずれかを選択しなければならない. また,それ以", - "origin": [ - 315.76995849609375, - 93.1600341796875 - ], - "bbox": [ - 315.76995849609375, - 82.7600326538086, - 552.2958374023438, - 96.23003387451172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.76995849609375, - 82.7600326538086, - 552.2958374023438, - 96.23003387451172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "下の葉ノ", - "origin": [ - 315.7499694824219, - 108.1600341796875 - ], - "bbox": [ - 315.7499694824219, - 97.7600326538086, - 352.44317626953125, - 111.23003387451172 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 352.44317626953125, - 108.1600341796875 - ], - "bbox": [ - 352.44317626953125, - 97.74005889892578, - 354.0099792480469, - 110.15553283691406 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 354.0099792480469, - 104.50006103515625 - ], - "bbox": [ - 354.0099792480469, - 97.74005889892578, - 362.77197265625, - 106.49555969238281 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 362.77197265625, - 104.50006103515625 - ], - "bbox": [ - 362.77197265625, - 94.10005950927734, - 365.77996826171875, - 111.23003387451172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドに到達するための条件を現時点では決定し", - "origin": [ - 365.77996826171875, - 108.1600341796875 - ], - "bbox": [ - 365.77996826171875, - 97.7600326538086, - 552.5009155273438, - 111.23003387451172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7499694824219, - 94.10005950927734, - 552.5009155273438, - 111.23003387451172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "きれない場合,", - "origin": [ - 315.8799743652344, - 123.010009765625 - ], - "bbox": [ - 315.8799743652344, - 112.6100082397461, - 382.9132080078125, - 126.08000946044922 - ] - }, - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-8945", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " \"condition\"", - "origin": [ - 382.9132080078125, - 123.010009765625 - ], - "bbox": [ - 382.9132080078125, - 114.96200561523438, - 432.6039123535156, - 125.60201263427734 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ノ", - "origin": [ - 432.6039123535156, - 123.010009765625 - ], - "bbox": [ - 432.6039123535156, - 112.6100082397461, - 444.72998046875, - 126.08000946044922 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 444.72998046875, - 123.010009765625 - ], - "bbox": [ - 444.72998046875, - 112.66999053955078, - 446.53997802734375, - 125.00550842285156 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 446.53997802734375, - 119.42999267578125 - ], - "bbox": [ - 446.53997802734375, - 112.66999053955078, - 455.3019714355469, - 121.42549133300781 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 455.3019714355469, - 119.42999267578125 - ], - "bbox": [ - 455.3019714355469, - 109.02999114990234, - 458.54998779296875, - 126.08000946044922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドを仮に設置したこ", - "origin": [ - 458.54998779296875, - 123.010009765625 - ], - "bbox": [ - 458.54998779296875, - 112.6100082397461, - 552.485595703125, - 126.08000946044922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8799743652344, - 109.02999114990234, - 552.485595703125, - 126.08000946044922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "れは葉の要検討ノ", - "origin": [ - 316.05999755859375, - 137.85003662109375 - ], - "bbox": [ - 316.05999755859375, - 127.45003509521484, - 391.2040100097656, - 140.9200439453125 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 391.2040100097656, - 137.85003662109375 - ], - "bbox": [ - 391.2040100097656, - 127.45001983642578, - 392.8900146484375, - 139.8455352783203 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8944", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 392.8900146484375, - 134.21002197265625 - ], - "bbox": [ - 392.8900146484375, - 127.45001983642578, - 401.6520080566406, - 136.2055206298828 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 401.6520080566406, - 134.21002197265625 - ], - "bbox": [ - 401.6520080566406, - 123.81002044677734, - 404.780029296875, - 141.030029296875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8942", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドとほぼ同義である.", - "origin": [ - 404.780029296875, - 137.96002197265625 - ], - "bbox": [ - 404.780029296875, - 127.56002044677734, - 490.699951171875, - 141.030029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.05999755859375, - 123.81002044677734, - 490.699951171875, - 141.030029296875 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 3, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_4": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 59.24998474121094, - 37.749961853027344, - 296.05999755859375, - 51.54998016357422 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "クに決定したが,分類結果のうち10本の論文を読み,そ", - "origin": [ - 59.24998474121094, - 48.47998046875 - ], - "bbox": [ - 59.24998474121094, - 37.749961853027344, - 296.05999755859375, - 51.54998016357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.24998474121094, - 37.749961853027344, - 296.05999755859375, - 51.54998016357422 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 59.41998291015625, - 52.969932556152344, - 296.0032043457031, - 81.40990447998047 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の分類が妥当であることを手作業で確認したまたこ", - "origin": [ - 59.41998291015625, - 63.36993408203125 - ], - "bbox": [ - 59.41998291015625, - 52.969932556152344, - 296.0024108886719, - 66.43993377685547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41998291015625, - 52.969932556152344, - 296.0024108886719, - 66.43993377685547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の段階でも", - "origin": [ - 59.41998291015625, - 78.33990478515625 - ], - "bbox": [ - 59.41998291015625, - 67.69991302490234, - 106.4527816772461, - 81.40990447998047 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " SSRN", - "origin": [ - 106.4527816772461, - 78.09991455078125 - ], - "bbox": [ - 106.4527816772461, - 69.25991821289062, - 134.04867553710938, - 80.70941162109375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " などカンファレンスから収集していな", - "origin": [ - 134.04867553710938, - 78.09991455078125 - ], - "bbox": [ - 134.04867553710938, - 67.69991302490234, - 296.0032043457031, - 81.16991424560547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41998291015625, - 67.69991302490234, - 296.0032043457031, - 81.40990447998047 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.36998748779297, - 82.79988861083984, - 302.8274841308594, - 125.94994354248047 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "い文章は分類から除外した. 表3はその分類結果を示し", - "origin": [ - 59.36998748779297, - 93.19989013671875 - ], - "bbox": [ - 59.36998748779297, - 82.79988861083984, - 296.0015869140625, - 96.26988983154297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36998748779297, - 82.79988861083984, - 296.0015869140625, - 96.26988983154297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ている.", - "origin": [ - 59.399993896484375, - 108.0399169921875 - ], - "bbox": [ - 59.399993896484375, - 97.6399154663086, - 90.12100219726562, - 111.10991668701172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.399993896484375, - 97.6399154663086, - 90.12100219726562, - 111.10991668701172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究では,", - "origin": [ - 68.739990234375, - 122.87994384765625 - ], - "bbox": [ - 68.739990234375, - 112.47994232177734, - 121.0127944946289, - 125.94994354248047 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "\"vulnerabilities\"", - "origin": [ - 120.489990234375, - 122.62994384765625 - ], - "bbox": [ - 120.489990234375, - 113.78994750976562, - 189.00949096679688, - 125.23944091796875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " と", - "origin": [ - 189.00949096679688, - 122.62994384765625 - ], - "bbox": [ - 189.00949096679688, - 112.22994232177734, - 201.33998107910156, - 125.87993621826172 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " \"online measurements\" ", - "origin": [ - 201.33998107910156, - 122.8099365234375 - ], - "bbox": [ - 201.33998107910156, - 113.96994018554688, - 302.8274841308594, - 125.41943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.739990234375, - 112.22994232177734, - 302.8274841308594, - 125.94994354248047 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 59.29998779296875, - 127.45992279052734, - 295.9994812011719, - 156.0599365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に絞って論文を精読することとした.", - "origin": [ - 59.42999267578125, - 137.85992431640625 - ], - "bbox": [ - 59.42999267578125, - 127.45992279052734, - 214.08840942382812, - 140.929931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.42999267578125, - 127.45992279052734, - 214.08840942382812, - 140.929931640625 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Vulnerabilities", - "origin": [ - 221.52999877929688, - 137.85992431640625 - ], - "bbox": [ - 221.52999877929688, - 129.01992797851562, - 284.1536560058594, - 140.46942138671875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " に", - "origin": [ - 284.1536560058594, - 137.85992431640625 - ], - "bbox": [ - 284.1536560058594, - 127.45992279052734, - 295.77996826171875, - 141.22991943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.52999877929688, - 127.45992279052734, - 295.77996826171875, - 141.22991943359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は", - "origin": [ - 59.29998779296875, - 152.98992919921875 - ], - "bbox": [ - 59.29998779296875, - 142.58993530273438, - 68.67998504638672, - 156.0599365234375 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 15", - "origin": [ - 68.67998504638672, - 152.98992919921875 - ], - "bbox": [ - 68.67998504638672, - 144.14993286132812, - 81.56599426269531, - 155.59942626953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 本の論文が含まれており, これらをすべて精読し", - "origin": [ - 81.56599426269531, - 152.98992919921875 - ], - "bbox": [ - 81.56599426269531, - 142.58993530273438, - 295.9994812011719, - 156.0599365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.29998779296875, - 142.58993530273438, - 295.9994812011719, - 156.0599365234375 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 59.369998931884766, - 172.10000610351562, - 295.97979736328125, - 200.66998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いたが, そのうちグレ", - "origin": [ - 59.369998931884766, - 183.1099853515625 - ], - "bbox": [ - 59.369998931884766, - 172.10000610351562, - 153.35000610351562, - 186.17999267578125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 153.86000061035156, - 178.92999267578125 - ], - "bbox": [ - 153.86000061035156, - 172.1699981689453, - 162.6219940185547, - 180.9254913330078 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の論文かつ倫理に言及して", - "origin": [ - 162.99000549316406, - 182.55999755859375 - ], - "bbox": [ - 162.99000549316406, - 172.16000366210938, - 295.97979736328125, - 185.94000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.369998931884766, - 172.10000610351562, - 295.97979736328125, - 186.17999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いる論文である", - "origin": [ - 59.37001037597656, - 197.5999755859375 - ], - "bbox": [ - 59.37001037597656, - 187.19998168945312, - 126.20481872558594, - 200.66998291015625 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 13", - "origin": [ - 126.20481872558594, - 197.5999755859375 - ], - "bbox": [ - 126.20481872558594, - 188.75997924804688, - 138.54022216796875, - 200.20947265625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 本を精読したそして, これらの", - "origin": [ - 138.54022216796875, - 197.5999755859375 - ], - "bbox": [ - 138.54022216796875, - 187.19998168945312, - 283.7152099609375, - 200.66998291015625 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 28", - "origin": [ - 283.7152099609375, - 197.5999755859375 - ], - "bbox": [ - 283.7152099609375, - 188.75997924804688, - 295.9403381347656, - 200.20947265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.37001037597656, - 187.19998168945312, - 295.9403381347656, - 200.66998291015625 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 59.140045166015625, - 202.41000366210938, - 295.9568786621094, - 230.6300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本に含まれる倫理的な課題やそれに対する問題解決法を", - "origin": [ - 59.140045166015625, - 212.80999755859375 - ], - "bbox": [ - 59.140045166015625, - 202.41000366210938, - 295.9568786621094, - 215.8800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.140045166015625, - 202.41000366210938, - 295.9568786621094, - 215.8800048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "系統立ててまとめた.", - "origin": [ - 59.6700439453125, - 227.55999755859375 - ], - "bbox": [ - 59.6700439453125, - 217.16000366210938, - 147.7013702392578, - 230.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.6700439453125, - 217.16000366210938, - 147.7013702392578, - 230.6300048828125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 59.53004455566406, - 242.16000366210938, - 219.6085662841797, - 255.6300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1 ", - "origin": [ - 59.53004455566406, - 252.55999755859375 - ], - "bbox": [ - 59.53004455566406, - 243.72000122070312, - 76.24954986572266, - 255.16949462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.53004455566406, - 243.72000122070312, - 76.24954986572266, - 255.16949462890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "決定木を用いた倫理指針の表現", - "origin": [ - 85.5700454711914, - 252.55999755859375 - ], - "bbox": [ - 85.5700454711914, - 242.16000366210938, - 219.6085662841797, - 255.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.5700454711914, - 242.16000366210938, - 219.6085662841797, - 255.6300048828125 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.080047607421875, - 260.3600158691406, - 296.1470947265625, - 333.4100036621094 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "先に挙げた", - "origin": [ - 68.81004333496094, - 270.94000244140625 - ], - "bbox": [ - 68.81004333496094, - 260.3600158691406, - 117.0864486694336, - 274.010009765625 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 28", - "origin": [ - 117.0864486694336, - 270.760009765625 - ], - "bbox": [ - 117.0864486694336, - 261.9200134277344, - 129.49034118652344, - 273.3695068359375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 本の論文から得られた倫理的な問題や", - "origin": [ - 129.49034118652344, - 270.760009765625 - ], - "bbox": [ - 129.49034118652344, - 260.3600158691406, - 295.8156433105469, - 273.83001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.81004333496094, - 260.3600158691406, - 295.8156433105469, - 274.010009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "解決法, および参考として収集した他の論文を基に手作", - "origin": [ - 59.520042419433594, - 285.7200012207031 - ], - "bbox": [ - 59.520042419433594, - 275.32000732421875, - 296.1470947265625, - 288.7900085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.520042419433594, - 275.32000732421875, - 296.1470947265625, - 288.7900085449219 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "業で倫理指針を構築した. 構築した倫理指針は5つの倫", - "origin": [ - 59.530059814453125, - 300.5799865722656 - ], - "bbox": [ - 59.530059814453125, - 290.17999267578125, - 295.72039794921875, - 303.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.530059814453125, - 290.17999267578125, - 295.72039794921875, - 303.6499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理指針メインクラスと複数のサブクラスから構成される.", - "origin": [ - 59.080047607421875, - 315.3399963378906 - ], - "bbox": [ - 59.080047607421875, - 304.94000244140625, - 293.39105224609375, - 318.7099914550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.080047607421875, - 304.94000244140625, - 293.39105224609375, - 318.7099914550781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表4はメインクラスとその直下のサブクラスを示してい", - "origin": [ - 59.41004943847656, - 330.3399963378906 - ], - "bbox": [ - 59.41004943847656, - 319.94000244140625, - 295.9884338378906, - 333.4100036621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41004943847656, - 319.94000244140625, - 295.9884338378906, - 333.4100036621094 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.32005310058594, - 334.510009765625, - 295.8558654785156, - 348.4200134277344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る. また, 図1は決定木の", - "origin": [ - 59.32005310058594, - 345.3500061035156 - ], - "bbox": [ - 59.32005310058594, - 334.95001220703125, - 172.58326721191406, - 348.4200134277344 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 172.70005798339844, - 341.27001953125 - ], - "bbox": [ - 172.70005798339844, - 334.510009765625, - 181.81956481933594, - 343.2655334472656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "部を示している. 根から葉", - "origin": [ - 181.8500518798828, - 345.32000732421875 - ], - "bbox": [ - 181.8500518798828, - 334.9200134277344, - 295.8558654785156, - 348.3900146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.32005310058594, - 334.510009765625, - 295.8558654785156, - 348.4200134277344 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.1900634765625, - 346.25, - 296.25006103515625, - 408.489990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "までのノ", - "origin": [ - 59.29005432128906, - 360.4100036621094 - ], - "bbox": [ - 59.29005432128906, - 350.010009765625, - 96.0184555053711, - 363.4800109863281 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 96.0184555053711, - 360.4100036621094 - ], - "bbox": [ - 96.0184555053711, - 349.8899841308594, - 97.57005310058594, - 362.405517578125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 97.57005310058594, - 356.6499938964844 - ], - "bbox": [ - 97.57005310058594, - 349.8899841308594, - 106.3320541381836, - 358.6455078125 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 106.3320541381836, - 356.6499938964844 - ], - "bbox": [ - 106.3320541381836, - 346.25, - 109.4500503540039, - 363.3800048828125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドがある研究活動を示し, 葉はそれに対する", - "origin": [ - 109.4500503540039, - 360.30999755859375 - ], - "bbox": [ - 109.4500503540039, - 349.9100036621094, - 296.0187683105469, - 363.3800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.29005432128906, - 346.25, - 296.0187683105469, - 363.4800109863281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理的な判断を示す. 倫理的な判断はトップカンファレ", - "origin": [ - 59.470062255859375, - 375.1499938964844 - ], - "bbox": [ - 59.470062255859375, - 364.75, - 295.81329345703125, - 378.3999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.470062255859375, - 364.75, - 295.81329345703125, - 378.3999938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ンスから得られたものや論文著者らの議論によって決定", - "origin": [ - 59.1900634765625, - 390.2799987792969 - ], - "bbox": [ - 59.1900634765625, - 379.8800048828125, - 295.8482666015625, - 393.3500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.1900634765625, - 379.8800048828125, - 295.8482666015625, - 393.3500061035156 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "したしたがって, 筆者らはそれらが必ずしも正しい判", - "origin": [ - 59.38006591796875, - 405.0799865722656 - ], - "bbox": [ - 59.38006591796875, - 394.67999267578125, - 296.25006103515625, - 408.489990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.38006591796875, - 394.67999267578125, - 296.25006103515625, - 408.489990234375 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.37000274658203, - 469.4800109863281, - 295.74102783203125, - 497.77001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "以下では決定木をメインクラスごとに構成する際に用", - "origin": [ - 69.29000091552734, - 479.8800048828125 - ], - "bbox": [ - 69.29000091552734, - 469.4800109863281, - 295.74102783203125, - 482.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.29000091552734, - 469.4800109863281, - 295.74102783203125, - 482.95001220703125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いた論文とそこから得られた知見について記す.", - "origin": [ - 59.37000274658203, - 494.70001220703125 - ], - "bbox": [ - 59.37000274658203, - 484.3000183105469, - 262.7982177734375, - 497.77001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.37000274658203, - 484.3000183105469, - 262.7982177734375, - 497.77001953125 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 59.53000259399414, - 508.9900207519531, - 207.06781005859375, - 520.4395141601562 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1.1 ", - "origin": [ - 59.53000259399414, - 517.8300170898438 - ], - "bbox": [ - 59.53000259399414, - 508.9900207519531, - 85.27899932861328, - 520.4395141601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.53000259399414, - 508.9900207519531, - 85.27899932861328, - 520.4395141601562 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Software Examination ", - "origin": [ - 94.93000793457031, - 517.8300170898438 - ], - "bbox": [ - 94.93000793457031, - 508.9900207519531, - 207.06781005859375, - 520.4395141601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 94.93000793457031, - 508.9900207519531, - 207.06781005859375, - 520.4395141601562 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 315.71002197265625, - 67.8900375366211, - 554.5780639648438, - 126.12010955810547 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は契約または知的財産権の侵害を起こさないよう気を付", - "origin": [ - 315.71002197265625, - 78.2900390625 - ], - "bbox": [ - 315.71002197265625, - 67.8900375366211, - 552.6504516601562, - 81.36003875732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.71002197265625, - 67.8900375366211, - 552.6504516601562, - 81.36003875732422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ける必要がある.", - "origin": [ - 316.1400146484375, - 93.1900634765625 - ], - "bbox": [ - 316.1400146484375, - 82.7900619506836, - 384.979736328125, - 96.26006317138672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.1400146484375, - 82.7900619506836, - 384.979736328125, - 96.26006317138672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "マルウェアは脆弱性を用いて攻撃を展開しうるため,", - "origin": [ - 325.4100036621094, - 108.15008544921875 - ], - "bbox": [ - 325.4100036621094, - 97.75008392333984, - 554.5780639648438, - 111.22008514404297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4100036621094, - 97.75008392333984, - 554.5780639648438, - 111.22008514404297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "これは本項目で扱う. マルウェアに関する研究を行う際", - "origin": [ - 316.04998779296875, - 123.05010986328125 - ], - "bbox": [ - 316.04998779296875, - 112.65010833740234, - 552.33935546875, - 126.12010955810547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.04998779296875, - 112.65010833740234, - 552.33935546875, - 126.12010955810547 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 315.8500061035156, - 202.32998657226562, - 554.4739990234375, - 245.7899169921875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "まずロ", - "origin": [ - 315.8500061035156, - 212.72998046875 - ], - "bbox": [ - 315.8500061035156, - 202.32998657226562, - 343.57220458984375, - 215.79998779296875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 343.57220458984375, - 212.72998046875 - ], - "bbox": [ - 343.57220458984375, - 202.44996643066406, - 345.1300048828125, - 214.72547912597656 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 345.1300048828125, - 209.2099609375 - ], - "bbox": [ - 345.1300048828125, - 202.44996643066406, - 353.8919982910156, - 211.20545959472656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "カルの隔離された環境でマルウェアを実行し,", - "origin": [ - 354.42999267578125, - 212.72998046875 - ], - "bbox": [ - 354.42999267578125, - 202.32998657226562, - 554.4739990234375, - 215.79998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8500061035156, - 202.32998657226562, - 554.4739990234375, - 215.79998779296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "その影響を把握するべきである.", - "origin": [ - 315.989990234375, - 227.7099609375 - ], - "bbox": [ - 315.989990234375, - 216.92996215820312, - 452.2969970703125, - 230.86993408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 216.92996215820312, - 452.2969970703125, - 230.86993408203125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "マルウェアの送信に関する倫理的な側面は様々な要因", - "origin": [ - 325.40997314453125, - 242.71990966796875 - ], - "bbox": [ - 325.40997314453125, - 232.31991577148438, - 552.2642211914062, - 245.7899169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.40997314453125, - 232.31991577148438, - 552.2642211914062, - 245.7899169921875 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 315.739990234375, - 292.05999755859375, - 552.7108154296875, - 320.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "によっても変化しうる可能性がある. 調査目的で", - "origin": [ - 315.989990234375, - 302.4599914550781 - ], - "bbox": [ - 315.989990234375, - 292.05999755859375, - 524.5261840820312, - 305.5299987792969 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " Apple", - "origin": [ - 524.5261840820312, - 302.4599914550781 - ], - "bbox": [ - 524.5261840820312, - 293.6199951171875, - 552.7108154296875, - 305.0694885253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 292.05999755859375, - 552.7108154296875, - 305.5299987792969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ストアにマルウェアを送信した研究が存在する", - "origin": [ - 315.739990234375, - 317.3800048828125 - ], - "bbox": [ - 315.739990234375, - 306.9800109863281, - 515.7660522460938, - 320.45001220703125 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " [11].", - "origin": [ - 515.7660522460938, - 317.3800048828125 - ], - "bbox": [ - 515.7660522460938, - 307.9400329589844, - 535.5924682617188, - 319.989501953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " こ", - "origin": [ - 535.5924682617188, - 317.21002197265625 - ], - "bbox": [ - 535.5924682617188, - 306.8100280761719, - 552.5699462890625, - 320.280029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.739990234375, - 306.8100280761719, - 552.5699462890625, - 320.45001220703125 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 315.97991943359375, - 321.3800048828125, - 552.421875, - 350.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の研究者はマルウェアを", - "origin": [ - 315.97991943359375, - 332.5400085449219 - ], - "bbox": [ - 315.97991943359375, - 321.9100036621094, - 419.3648986816406, - 335.6100158691406 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " Apple", - "origin": [ - 419.3648986816406, - 332.30999755859375 - ], - "bbox": [ - 419.3648986816406, - 322.94000244140625, - 447.23419189453125, - 334.91949462890625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ストアから自身の端末に", - "origin": [ - 447.23419189453125, - 331.7799987792969 - ], - "bbox": [ - 447.23419189453125, - 321.3800048828125, - 552.421875, - 335.2200012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.97991943359375, - 321.3800048828125, - 552.421875, - 335.6100158691406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ダウンロ", - "origin": [ - 316.0098876953125, - 347.1300048828125 - ], - "bbox": [ - 316.0098876953125, - 336.7300109863281, - 352.56866455078125, - 350.20001220703125 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 352.56866455078125, - 347.1300048828125 - ], - "bbox": [ - 352.56866455078125, - 336.8899841308594, - 353.889892578125, - 349.1255187988281 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 353.889892578125, - 343.6499938964844 - ], - "bbox": [ - 353.889892578125, - 336.8899841308594, - 362.6518859863281, - 345.6455078125 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 362.6518859863281, - 343.6499938964844 - ], - "bbox": [ - 362.6518859863281, - 333.25, - 365.64990234375, - 350.0799865722656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドしたのち, それを", - "origin": [ - 365.64990234375, - 347.0099792480469 - ], - "bbox": [ - 365.64990234375, - 336.6099853515625, - 446.9457092285156, - 350.0799865722656 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " Apple", - "origin": [ - 446.9457092285156, - 347.0099792480469 - ], - "bbox": [ - 446.9457092285156, - 338.16998291015625, - 474.83416748046875, - 349.6194763183594 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ストアから直ちに", - "origin": [ - 474.83416748046875, - 347.0099792480469 - ], - "bbox": [ - 474.83416748046875, - 336.6099853515625, - 552.4212646484375, - 350.0799865722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0098876953125, - 333.25, - 552.4212646484375, - 350.20001220703125 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 315.95001220703125, - 411.58001708984375, - 552.3642578125, - 439.9800109863281 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "多くの論文では脆弱性の公開に先立ち, ベンダや関係者", - "origin": [ - 315.95001220703125, - 421.9800109863281 - ], - "bbox": [ - 315.95001220703125, - 411.58001708984375, - 552.3642578125, - 425.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.95001220703125, - 411.58001708984375, - 552.3642578125, - 425.0500183105469 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に連絡している", - "origin": [ - 315.9900207519531, - 436.9100036621094 - ], - "bbox": [ - 315.9900207519531, - 426.510009765625, - 383.8606262207031, - 439.9800109863281 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " [6, 7, 11, 12, 13, 14, 15, 16]. ", - "origin": [ - 383.8606262207031, - 436.9100036621094 - ], - "bbox": [ - 383.8606262207031, - 427.6300354003906, - 513.3875122070312, - 439.5195007324219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "その際", - "origin": [ - 518.9199829101562, - 436.9000244140625 - ], - "bbox": [ - 518.9199829101562, - 426.5000305175781, - 549.9583740234375, - 439.97003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9900207519531, - 426.5000305175781, - 549.9583740234375, - 439.9800109863281 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 315.63995361328125, - 441.6900329589844, - 554.635986328125, - 499.82000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "脆弱性が新しいか, 誰が脆弱性を開示するか, 脆弱性の", - "origin": [ - 315.8499755859375, - 452.09002685546875 - ], - "bbox": [ - 315.8499755859375, - 441.6900329589844, - 552.5352172851562, - 455.1600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8499755859375, - 441.6900329589844, - 552.5352172851562, - 455.1600341796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "開示範囲, 脆弱性開示のタイミング, 開示の取り扱い,", - "origin": [ - 315.97998046875, - 466.9200134277344 - ], - "bbox": [ - 315.97998046875, - 456.21002197265625, - 554.635986328125, - 469.9900207519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.97998046875, - 456.21002197265625, - 554.635986328125, - 469.9900207519531 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "そして関係者との協力等に堪づき, 情報開示に関する倫", - "origin": [ - 315.9899597167969, - 481.7900085449219 - ], - "bbox": [ - 315.9899597167969, - 470.9800109863281, - 552.3080444335938, - 484.9100036621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9899597167969, - 470.9800109863281, - 552.3080444335938, - 484.9100036621094 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理的な判断を下す必要がある.", - "origin": [ - 315.63995361328125, - 496.75 - ], - "bbox": [ - 315.63995361328125, - 486.3500061035156, - 442.6927490234375, - 499.82000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.63995361328125, - 486.3500061035156, - 442.6927490234375, - 499.82000732421875 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 316.0799560546875, - 510.8699645996094, - 390.8075256347656, - 522.3194580078125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1.2 ", - "origin": [ - 316.0799560546875, - 519.7099609375 - ], - "bbox": [ - 316.0799560546875, - 510.8699645996094, - 341.240966796875, - 522.3194580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0799560546875, - 510.8699645996094, - 341.240966796875, - 522.3194580078125 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Privacy ", - "origin": [ - 351.24993896484375, - 519.7099609375 - ], - "bbox": [ - 351.24993896484375, - 510.8699645996094, - 390.8075256347656, - 522.3194580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.24993896484375, - 510.8699645996094, - 390.8075256347656, - 522.3194580078125 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 315.9500427246094, - 586.8099365234375, - 552.0220947265625, - 615.1699829101562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とし, すべて等しく慎重に扱うよう求めている.", - "origin": [ - 315.9500427246094, - 597.2099609375 - ], - "bbox": [ - 315.9500427246094, - 586.8099365234375, - 519.3619995117188, - 600.2799682617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9500427246094, - 586.8099365234375, - 519.3619995117188, - 600.2799682617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "また,そのようなデ", - "origin": [ - 325.4500732421875, - 612.0999755859375 - ], - "bbox": [ - 325.4500732421875, - 601.699951171875, - 406.437255859375, - 615.1699829101562 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 406.6900634765625, - 608.52001953125 - ], - "bbox": [ - 406.6900634765625, - 601.760009765625, - 415.4520568847656, - 610.5155029296875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを扱う際には,あらかじめデ", - "origin": [ - 415.5300598144531, - 612.0999755859375 - ], - "bbox": [ - 415.5300598144531, - 601.699951171875, - 543.0136108398438, - 615.1699829101562 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 543.2600708007812, - 608.52001953125 - ], - "bbox": [ - 543.2600708007812, - 601.760009765625, - 552.0220947265625, - 610.5155029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4500732421875, - 601.699951171875, - 552.0220947265625, - 615.1699829101562 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 316.9200744628906, - 616.68994140625, - 552.0120849609375, - 630.1599731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "夕取得時から廃棄までの流れを規定し,それに沿ってデ", - "origin": [ - 316.9200744628906, - 627.0899658203125 - ], - "bbox": [ - 316.9200744628906, - 616.68994140625, - 543.1112060546875, - 630.1599731445312 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 543.2500610351562, - 623.6600341796875 - ], - "bbox": [ - 543.2500610351562, - 616.9000244140625, - 552.0120849609375, - 625.655517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.9200744628906, - 616.68994140625, - 552.0120849609375, - 630.1599731445312 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 315.6800537109375, - 631.5299682617188, - 552.3212890625, - 645.030029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを管理する必要がある. このデ", - "origin": [ - 315.6800537109375, - 641.9299926757812 - ], - "bbox": [ - 315.6800537109375, - 631.5299682617188, - 457.6956481933594, - 645.0 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 458.1800537109375, - 638.4400024414062 - ], - "bbox": [ - 458.1800537109375, - 631.6799926757812, - 466.9420471191406, - 640.4354858398438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タパイプラインはセ", - "origin": [ - 467.1400451660156, - 641.9600219726562 - ], - "bbox": [ - 467.1400451660156, - 631.5599975585938, - 552.3212890625, - 645.030029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.6800537109375, - 631.5299682617188, - 552.3212890625, - 645.030029296875 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 315.9500427246094, - 646.5999755859375, - 552.549072265625, - 674.8400268554688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "キュアに構築され, 再利用可能なものとして規定するこ", - "origin": [ - 316.3300476074219, - 657.0 - ], - "bbox": [ - 316.3300476074219, - 646.5999755859375, - 552.549072265625, - 660.0700073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.3300476074219, - 646.5999755859375, - 552.549072265625, - 660.0700073242188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とが望ましい.", - "origin": [ - 315.9500427246094, - 671.77001953125 - ], - "bbox": [ - 315.9500427246094, - 661.3699951171875, - 375.48004150390625, - 674.8400268554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9500427246094, - 661.3699951171875, - 375.48004150390625, - 674.8400268554688 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 316.09002685546875, - 676.4199829101562, - 552.5015869140625, - 705.0700073242188 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "著者らが収集した論文のなかには機微なデ", - "origin": [ - 325.72003173828125, - 686.8200073242188 - ], - "bbox": [ - 325.72003173828125, - 676.4199829101562, - 504.9520568847656, - 689.8900146484375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 505.4500427246094, - 683.2900390625 - ], - "bbox": [ - 505.4500427246094, - 676.530029296875, - 514.2120361328125, - 685.2855224609375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを扱う", - "origin": [ - 514.530029296875, - 686.8900146484375 - ], - "bbox": [ - 514.530029296875, - 676.489990234375, - 552.5015869140625, - 689.9600219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.72003173828125, - 676.4199829101562, - 552.5015869140625, - 689.9600219726562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "際に,必要最低限のデ", - "origin": [ - 316.09002685546875, - 701.8099975585938 - ], - "bbox": [ - 316.09002685546875, - 691.4099731445312, - 406.2198181152344, - 704.8800048828125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 406.45001220703125, - 698.3499755859375 - ], - "bbox": [ - 406.45001220703125, - 691.5899658203125, - 415.2120056152344, - 700.345458984375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タのみを収集し,それに暗号化や", - "origin": [ - 415.4100036621094, - 701.8800048828125 - ], - "bbox": [ - 415.4100036621094, - 691.219970703125, - 552.4127807617188, - 705.0700073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.09002685546875, - 691.219970703125, - 552.4127807617188, - 705.0700073242188 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 378, - 390, - 380, - 391 - ], - "image_path": "images/4_378_390_380_391.jpg" - }, - { - "bbox": [ - 83, - 640, - 271, - 734 - ], - "image_path": "images/4_83_640_271_734.jpg" - } - ], - "tables": [ - { - "bbox": [ - 59.410003662109375, - 613.449951171875, - 296.1432189941406, - 734 - ], - "image_path": "tables/4_59_613_296_734.jpg" - } - ], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 22.839990615844727, - 612.0, - 51.54998016357422 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 59.36998748779297, - 52.969932556152344, - 302.8274841308594, - 126.12010955810547 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.71002197265625, - 52.969932556152344, - 554.5780639648438, - 126.12010955810547 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 127.45992279052734, - 612.0, - 200.66998291015625 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 59.080047607421875, - 202.32998657226562, - 296.25006103515625, - 734 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.63995361328125, - 202.32998657226562, - 554.635986328125, - 734 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 59.56999969482422, - 22.839990615844727, - 295.8023986816406, - 36.30998992919922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "である. ここで2番目の基準の閾値はヒュ", - "origin": [ - 59.56999969482422, - 33.239990234375 - ], - "bbox": [ - 59.56999969482422, - 22.839990615844727, - 239.24481201171875, - 36.30998992919922 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 239.4199981689453, - 29.65997314453125 - ], - "bbox": [ - 239.4199981689453, - 22.899972915649414, - 248.18199157714844, - 31.655473709106445 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "リスティッ", - "origin": [ - 248.70999145507812, - 33.239990234375 - ], - "bbox": [ - 248.70999145507812, - 22.839990615844727, - 295.8023986816406, - 36.30998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.56999969482422, - 22.839990615844727, - 295.8023986816406, - 36.30998992919922 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 59.24998474121094, - 37.749961853027344, - 296.05999755859375, - 51.54998016357422 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "クに決定したが,分類結果のうち10本の論文を読み,そ", - "origin": [ - 59.24998474121094, - 48.47998046875 - ], - "bbox": [ - 59.24998474121094, - 37.749961853027344, - 296.05999755859375, - 51.54998016357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.24998474121094, - 37.749961853027344, - 296.05999755859375, - 51.54998016357422 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 59.41998291015625, - 52.969932556152344, - 296.0032043457031, - 81.40990447998047 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の分類が妥当であることを手作業で確認したまたこ", - "origin": [ - 59.41998291015625, - 63.36993408203125 - ], - "bbox": [ - 59.41998291015625, - 52.969932556152344, - 296.0024108886719, - 66.43993377685547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41998291015625, - 52.969932556152344, - 296.0024108886719, - 66.43993377685547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の段階でも", - "origin": [ - 59.41998291015625, - 78.33990478515625 - ], - "bbox": [ - 59.41998291015625, - 67.69991302490234, - 106.4527816772461, - 81.40990447998047 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " SSRN", - "origin": [ - 106.4527816772461, - 78.09991455078125 - ], - "bbox": [ - 106.4527816772461, - 69.25991821289062, - 134.04867553710938, - 80.70941162109375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " などカンファレンスから収集していな", - "origin": [ - 134.04867553710938, - 78.09991455078125 - ], - "bbox": [ - 134.04867553710938, - 67.69991302490234, - 296.0032043457031, - 81.16991424560547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41998291015625, - 67.69991302490234, - 296.0032043457031, - 81.40990447998047 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.36998748779297, - 82.79988861083984, - 302.8274841308594, - 125.94994354248047 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "い文章は分類から除外した. 表3はその分類結果を示し", - "origin": [ - 59.36998748779297, - 93.19989013671875 - ], - "bbox": [ - 59.36998748779297, - 82.79988861083984, - 296.0015869140625, - 96.26988983154297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36998748779297, - 82.79988861083984, - 296.0015869140625, - 96.26988983154297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ている.", - "origin": [ - 59.399993896484375, - 108.0399169921875 - ], - "bbox": [ - 59.399993896484375, - 97.6399154663086, - 90.12100219726562, - 111.10991668701172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.399993896484375, - 97.6399154663086, - 90.12100219726562, - 111.10991668701172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究では,", - "origin": [ - 68.739990234375, - 122.87994384765625 - ], - "bbox": [ - 68.739990234375, - 112.47994232177734, - 121.0127944946289, - 125.94994354248047 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "\"vulnerabilities\"", - "origin": [ - 120.489990234375, - 122.62994384765625 - ], - "bbox": [ - 120.489990234375, - 113.78994750976562, - 189.00949096679688, - 125.23944091796875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " と", - "origin": [ - 189.00949096679688, - 122.62994384765625 - ], - "bbox": [ - 189.00949096679688, - 112.22994232177734, - 201.33998107910156, - 125.87993621826172 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " \"online measurements\" ", - "origin": [ - 201.33998107910156, - 122.8099365234375 - ], - "bbox": [ - 201.33998107910156, - 113.96994018554688, - 302.8274841308594, - 125.41943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.739990234375, - 112.22994232177734, - 302.8274841308594, - 125.94994354248047 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 59.29998779296875, - 127.45992279052734, - 295.9994812011719, - 156.0599365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に絞って論文を精読することとした.", - "origin": [ - 59.42999267578125, - 137.85992431640625 - ], - "bbox": [ - 59.42999267578125, - 127.45992279052734, - 214.08840942382812, - 140.929931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.42999267578125, - 127.45992279052734, - 214.08840942382812, - 140.929931640625 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Vulnerabilities", - "origin": [ - 221.52999877929688, - 137.85992431640625 - ], - "bbox": [ - 221.52999877929688, - 129.01992797851562, - 284.1536560058594, - 140.46942138671875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " に", - "origin": [ - 284.1536560058594, - 137.85992431640625 - ], - "bbox": [ - 284.1536560058594, - 127.45992279052734, - 295.77996826171875, - 141.22991943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.52999877929688, - 127.45992279052734, - 295.77996826171875, - 141.22991943359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は", - "origin": [ - 59.29998779296875, - 152.98992919921875 - ], - "bbox": [ - 59.29998779296875, - 142.58993530273438, - 68.67998504638672, - 156.0599365234375 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 15", - "origin": [ - 68.67998504638672, - 152.98992919921875 - ], - "bbox": [ - 68.67998504638672, - 144.14993286132812, - 81.56599426269531, - 155.59942626953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 本の論文が含まれており, これらをすべて精読し", - "origin": [ - 81.56599426269531, - 152.98992919921875 - ], - "bbox": [ - 81.56599426269531, - 142.58993530273438, - 295.9994812011719, - 156.0599365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.29998779296875, - 142.58993530273438, - 295.9994812011719, - 156.0599365234375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 59.380001068115234, - 156.97109985351562, - 295.97320556640625, - 170.94076538085938 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "た.", - "origin": [ - 59.380001068115234, - 167.8499755859375 - ], - "bbox": [ - 59.380001068115234, - 156.97109985351562, - 71.15999603271484, - 170.94076538085938 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - 0.002199994632974267 - ], - "bbox": [ - 59.380001068115234, - 156.97109985351562, - 71.15999603271484, - 170.94076538085938 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Online measurements", - "origin": [ - 78.97000122070312, - 167.39306640625 - ], - "bbox": [ - 78.97000122070312, - 158.55307006835938, - 172.1859130859375, - 170.2077178955078 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " には", - "origin": [ - 172.1859130859375, - 167.5982208251953 - ], - "bbox": [ - 172.1859130859375, - 157.19822692871094, - 193.86160278320312, - 170.7158203125 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 61", - "origin": [ - 193.86160278320312, - 167.64581298828125 - ], - "bbox": [ - 193.86160278320312, - 158.80581665039062, - 206.78050231933594, - 170.2837371826172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 本の論文が含まれて", - "origin": [ - 206.78050231933594, - 167.6742401123047 - ], - "bbox": [ - 206.78050231933594, - 157.2742462158203, - 295.97320556640625, - 170.94053649902344 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999975562095642, - 0.002199994632974267 - ], - "bbox": [ - 78.97000122070312, - 157.19822692871094, - 295.97320556640625, - 170.94053649902344 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 59.369998931884766, - 172.10000610351562, - 295.97979736328125, - 200.66998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いたが, そのうちグレ", - "origin": [ - 59.369998931884766, - 183.1099853515625 - ], - "bbox": [ - 59.369998931884766, - 172.10000610351562, - 153.35000610351562, - 186.17999267578125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 153.86000061035156, - 178.92999267578125 - ], - "bbox": [ - 153.86000061035156, - 172.1699981689453, - 162.6219940185547, - 180.9254913330078 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の論文かつ倫理に言及して", - "origin": [ - 162.99000549316406, - 182.55999755859375 - ], - "bbox": [ - 162.99000549316406, - 172.16000366210938, - 295.97979736328125, - 185.94000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.369998931884766, - 172.10000610351562, - 295.97979736328125, - 186.17999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いる論文である", - "origin": [ - 59.37001037597656, - 197.5999755859375 - ], - "bbox": [ - 59.37001037597656, - 187.19998168945312, - 126.20481872558594, - 200.66998291015625 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 13", - "origin": [ - 126.20481872558594, - 197.5999755859375 - ], - "bbox": [ - 126.20481872558594, - 188.75997924804688, - 138.54022216796875, - 200.20947265625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 本を精読したそして, これらの", - "origin": [ - 138.54022216796875, - 197.5999755859375 - ], - "bbox": [ - 138.54022216796875, - 187.19998168945312, - 283.7152099609375, - 200.66998291015625 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 28", - "origin": [ - 283.7152099609375, - 197.5999755859375 - ], - "bbox": [ - 283.7152099609375, - 188.75997924804688, - 295.9403381347656, - 200.20947265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.37001037597656, - 187.19998168945312, - 295.9403381347656, - 200.66998291015625 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 59.140045166015625, - 202.41000366210938, - 295.9568786621094, - 230.6300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本に含まれる倫理的な課題やそれに対する問題解決法を", - "origin": [ - 59.140045166015625, - 212.80999755859375 - ], - "bbox": [ - 59.140045166015625, - 202.41000366210938, - 295.9568786621094, - 215.8800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.140045166015625, - 202.41000366210938, - 295.9568786621094, - 215.8800048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "系統立ててまとめた.", - "origin": [ - 59.6700439453125, - 227.55999755859375 - ], - "bbox": [ - 59.6700439453125, - 217.16000366210938, - 147.7013702392578, - 230.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.6700439453125, - 217.16000366210938, - 147.7013702392578, - 230.6300048828125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 59.53004455566406, - 242.16000366210938, - 219.6085662841797, - 255.6300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1 ", - "origin": [ - 59.53004455566406, - 252.55999755859375 - ], - "bbox": [ - 59.53004455566406, - 243.72000122070312, - 76.24954986572266, - 255.16949462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.53004455566406, - 243.72000122070312, - 76.24954986572266, - 255.16949462890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "決定木を用いた倫理指針の表現", - "origin": [ - 85.5700454711914, - 252.55999755859375 - ], - "bbox": [ - 85.5700454711914, - 242.16000366210938, - 219.6085662841797, - 255.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.5700454711914, - 242.16000366210938, - 219.6085662841797, - 255.6300048828125 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.080047607421875, - 260.3600158691406, - 296.1470947265625, - 333.4100036621094 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "先に挙げた", - "origin": [ - 68.81004333496094, - 270.94000244140625 - ], - "bbox": [ - 68.81004333496094, - 260.3600158691406, - 117.0864486694336, - 274.010009765625 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 28", - "origin": [ - 117.0864486694336, - 270.760009765625 - ], - "bbox": [ - 117.0864486694336, - 261.9200134277344, - 129.49034118652344, - 273.3695068359375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 本の論文から得られた倫理的な問題や", - "origin": [ - 129.49034118652344, - 270.760009765625 - ], - "bbox": [ - 129.49034118652344, - 260.3600158691406, - 295.8156433105469, - 273.83001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.81004333496094, - 260.3600158691406, - 295.8156433105469, - 274.010009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "解決法, および参考として収集した他の論文を基に手作", - "origin": [ - 59.520042419433594, - 285.7200012207031 - ], - "bbox": [ - 59.520042419433594, - 275.32000732421875, - 296.1470947265625, - 288.7900085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.520042419433594, - 275.32000732421875, - 296.1470947265625, - 288.7900085449219 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "業で倫理指針を構築した. 構築した倫理指針は5つの倫", - "origin": [ - 59.530059814453125, - 300.5799865722656 - ], - "bbox": [ - 59.530059814453125, - 290.17999267578125, - 295.72039794921875, - 303.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.530059814453125, - 290.17999267578125, - 295.72039794921875, - 303.6499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理指針メインクラスと複数のサブクラスから構成される.", - "origin": [ - 59.080047607421875, - 315.3399963378906 - ], - "bbox": [ - 59.080047607421875, - 304.94000244140625, - 293.39105224609375, - 318.7099914550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.080047607421875, - 304.94000244140625, - 293.39105224609375, - 318.7099914550781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表4はメインクラスとその直下のサブクラスを示してい", - "origin": [ - 59.41004943847656, - 330.3399963378906 - ], - "bbox": [ - 59.41004943847656, - 319.94000244140625, - 295.9884338378906, - 333.4100036621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41004943847656, - 319.94000244140625, - 295.9884338378906, - 333.4100036621094 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.32005310058594, - 334.510009765625, - 295.8558654785156, - 348.4200134277344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る. また, 図1は決定木の", - "origin": [ - 59.32005310058594, - 345.3500061035156 - ], - "bbox": [ - 59.32005310058594, - 334.95001220703125, - 172.58326721191406, - 348.4200134277344 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 172.70005798339844, - 341.27001953125 - ], - "bbox": [ - 172.70005798339844, - 334.510009765625, - 181.81956481933594, - 343.2655334472656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "部を示している. 根から葉", - "origin": [ - 181.8500518798828, - 345.32000732421875 - ], - "bbox": [ - 181.8500518798828, - 334.9200134277344, - 295.8558654785156, - 348.3900146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.32005310058594, - 334.510009765625, - 295.8558654785156, - 348.4200134277344 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.1900634765625, - 346.25, - 296.25006103515625, - 408.489990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "までのノ", - "origin": [ - 59.29005432128906, - 360.4100036621094 - ], - "bbox": [ - 59.29005432128906, - 350.010009765625, - 96.0184555053711, - 363.4800109863281 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 96.0184555053711, - 360.4100036621094 - ], - "bbox": [ - 96.0184555053711, - 349.8899841308594, - 97.57005310058594, - 362.405517578125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 97.57005310058594, - 356.6499938964844 - ], - "bbox": [ - 97.57005310058594, - 349.8899841308594, - 106.3320541381836, - 358.6455078125 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 106.3320541381836, - 356.6499938964844 - ], - "bbox": [ - 106.3320541381836, - 346.25, - 109.4500503540039, - 363.3800048828125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドがある研究活動を示し, 葉はそれに対する", - "origin": [ - 109.4500503540039, - 360.30999755859375 - ], - "bbox": [ - 109.4500503540039, - 349.9100036621094, - 296.0187683105469, - 363.3800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.29005432128906, - 346.25, - 296.0187683105469, - 363.4800109863281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理的な判断を示す. 倫理的な判断はトップカンファレ", - "origin": [ - 59.470062255859375, - 375.1499938964844 - ], - "bbox": [ - 59.470062255859375, - 364.75, - 295.81329345703125, - 378.3999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.470062255859375, - 364.75, - 295.81329345703125, - 378.3999938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ンスから得られたものや論文著者らの議論によって決定", - "origin": [ - 59.1900634765625, - 390.2799987792969 - ], - "bbox": [ - 59.1900634765625, - 379.8800048828125, - 295.8482666015625, - 393.3500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.1900634765625, - 379.8800048828125, - 295.8482666015625, - 393.3500061035156 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "したしたがって, 筆者らはそれらが必ずしも正しい判", - "origin": [ - 59.38006591796875, - 405.0799865722656 - ], - "bbox": [ - 59.38006591796875, - 394.67999267578125, - 296.25006103515625, - 408.489990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.38006591796875, - 394.67999267578125, - 296.25006103515625, - 408.489990234375 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.5, - 409.4352722167969, - 296.1124267578125, - 438.2200012207031 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "断であることを主張しない. さらに決定木構築時に, 決", - "origin": [ - 59.66999816894531, - 420.07000732421875 - ], - "bbox": [ - 59.66999816894531, - 409.4352722167969, - 296.1099853515625, - 423.38201904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999960660934448, - 0.0027999889571219683 - ], - "bbox": [ - 59.66999816894531, - 409.4352722167969, - 296.1099853515625, - 423.38201904296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "定できなかった倫理的な判断も多数存在したこれは本", - "origin": [ - 59.5, - 435.1499938964844 - ], - "bbox": [ - 59.5, - 424.57000732421875, - 296.1124267578125, - 438.2200012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.5, - 424.57000732421875, - 296.1124267578125, - 438.2200012207031 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.470001220703125, - 439.6400146484375, - 295.9599914550781, - 468.1954040527344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理指針を利用する研究者が所属する組織のポリシ", - "origin": [ - 59.47003173828125, - 450.0400085449219 - ], - "bbox": [ - 59.47003173828125, - 439.6400146484375, - 276.8978271484375, - 453.1100158691406 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 277.33001708984375, - 446.9200134277344 - ], - "bbox": [ - 277.33001708984375, - 440.1600036621094, - 286.0920104980469, - 448.91552734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が", - "origin": [ - 286.6300048828125, - 450.6200256347656 - ], - "bbox": [ - 286.6300048828125, - 440.22003173828125, - 295.9599914550781, - 453.6900329589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47003173828125, - 439.6400146484375, - 295.9599914550781, - 453.6900329589844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理的な判断に関与する場合があるためである.", - "origin": [ - 59.470001220703125, - 465.05999755859375 - ], - "bbox": [ - 59.470001220703125, - 454.2300109863281, - 262.8070068359375, - 468.1954040527344 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999955296516418, - -0.002999986754730344 - ], - "bbox": [ - 59.470001220703125, - 454.2300109863281, - 262.8070068359375, - 468.1954040527344 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.37000274658203, - 469.4800109863281, - 295.74102783203125, - 497.77001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "以下では決定木をメインクラスごとに構成する際に用", - "origin": [ - 69.29000091552734, - 479.8800048828125 - ], - "bbox": [ - 69.29000091552734, - 469.4800109863281, - 295.74102783203125, - 482.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.29000091552734, - 469.4800109863281, - 295.74102783203125, - 482.95001220703125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "いた論文とそこから得られた知見について記す.", - "origin": [ - 59.37000274658203, - 494.70001220703125 - ], - "bbox": [ - 59.37000274658203, - 484.3000183105469, - 262.7982177734375, - 497.77001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.37000274658203, - 484.3000183105469, - 262.7982177734375, - 497.77001953125 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 59.53000259399414, - 508.9900207519531, - 207.06781005859375, - 520.4395141601562 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1.1 ", - "origin": [ - 59.53000259399414, - 517.8300170898438 - ], - "bbox": [ - 59.53000259399414, - 508.9900207519531, - 85.27899932861328, - 520.4395141601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.53000259399414, - 508.9900207519531, - 85.27899932861328, - 520.4395141601562 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Software Examination ", - "origin": [ - 94.93000793457031, - 517.8300170898438 - ], - "bbox": [ - 94.93000793457031, - 508.9900207519531, - 207.06781005859375, - 520.4395141601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 94.93000793457031, - 508.9900207519531, - 207.06781005859375, - 520.4395141601562 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 59.38999938964844, - 525.260009765625, - 296.0946044921875, - 583.4600219726562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "脆弱性の研究それ自体は関係者の同意の下で許容可能", - "origin": [ - 68.89000701904297, - 535.6600341796875 - ], - "bbox": [ - 68.89000701904297, - 525.260009765625, - 296.01580810546875, - 538.7300415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.89000701904297, - 525.260009765625, - 296.01580810546875, - 538.7300415039062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "である. 同意が得られない場合には, ライセンスや倫理", - "origin": [ - 59.57000732421875, - 550.25 - ], - "bbox": [ - 59.57000732421875, - 539.8499755859375, - 296.0946044921875, - 553.4800415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.57000732421875, - 539.8499755859375, - 296.0946044921875, - 553.4800415039062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "指針の許容範囲内で研究を実施しなければならない. た", - "origin": [ - 59.439998626708984, - 565.510009765625 - ], - "bbox": [ - 59.439998626708984, - 554.6732788085938, - 295.8999938964844, - 568.8090209960938 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999948740005493, - -0.003199983388185501 - ], - "bbox": [ - 59.439998626708984, - 554.6732788085938, - 295.8999938964844, - 568.8090209960938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とえば, 多くの論文ではオ", - "origin": [ - 59.38999938964844, - 580.0 - ], - "bbox": [ - 59.38999938964844, - 569.5999755859375, - 171.9805145263672, - 583.0700073242188 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 172.82000732421875, - 576.5899658203125 - ], - "bbox": [ - 172.82000732421875, - 569.8299560546875, - 181.58200073242188, - 578.58544921875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "プンソ", - "origin": [ - 181.82000732421875, - 580.0499877929688 - ], - "bbox": [ - 181.82000732421875, - 569.6499633789062, - 209.55621337890625, - 583.1199951171875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 209.55621337890625, - 580.0499877929688 - ], - "bbox": [ - 209.55621337890625, - 569.9099731445312, - 210.75, - 582.0454711914062 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 210.75, - 576.6699829101562 - ], - "bbox": [ - 210.75, - 569.9099731445312, - 219.51199340820312, - 578.6654663085938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "スのシステムに対", - "origin": [ - 219.88999938964844, - 580.3900146484375 - ], - "bbox": [ - 219.88999938964844, - 569.989990234375, - 295.92999267578125, - 583.4600219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.38999938964844, - 569.5999755859375, - 295.92999267578125, - 583.4600219726562 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 59.410003662109375, - 613.449951171875, - 296.1432189941406, - 662.7505493164062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表3: グレ", - "origin": [ - 59.410003662109375, - 623.9400024414062 - ], - "bbox": [ - 59.410003662109375, - 613.5399780273438, - 103.67081451416016, - 627.010009765625 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 104.18000793457031, - 620.3699951171875 - ], - "bbox": [ - 104.18000793457031, - 613.6099853515625, - 112.94200897216797, - 622.365478515625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の論文および倫理に言及している論文", - "origin": [ - 113.42000579833984, - 623.8499755859375 - ], - "bbox": [ - 113.42000579833984, - 613.449951171875, - 296.1432189941406, - 626.9199829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.410003662109375, - 613.449951171875, - 296.1432189941406, - 627.010009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "をトピックモデルに適用した結果", - "origin": [ - 59.53999328613281, - 638.719970703125 - ], - "bbox": [ - 59.53999328613281, - 628.3199462890625, - 202.9779815673828, - 641.7899780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.53999328613281, - 628.3199462890625, - 202.9779815673828, - 641.7899780273438 - ] - }, - { - "spans": [ - { - "size": 21.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9850", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "I ", - "origin": [ - 83.63997650146484, - 656.1500244140625 - ], - "bbox": [ - 83.63997650146484, - 633.7900390625, - 90.21897888183594, - 662.7505493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.63997650146484, - 633.7900390625, - 90.21897888183594, - 662.7505493164062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "カテゴリ名", - "origin": [ - 133.25999450683594, - 651.5999755859375 - ], - "bbox": [ - 133.25999450683594, - 641.199951171875, - 180.6099853515625, - 655.3555297851562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9998890161514282, - 0.014898346737027168 - ], - "bbox": [ - 133.25999450683594, - 641.199951171875, - 180.6099853515625, - 655.3555297851562 - ] - }, - { - "spans": [ - { - "size": 21.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9850", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "I", - "origin": [ - 229.80999755859375, - 653.7999877929688 - ], - "bbox": [ - 229.80999755859375, - 631.4400024414062, - 231.25050354003906, - 660.4005126953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 231.25050354003906, - 653.7999877929688 - ], - "bbox": [ - 231.25050354003906, - 641.4199829101562, - 236.44000244140625, - 656.8699951171875 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文数", - "origin": [ - 236.44000244140625, - 651.8200073242188 - ], - "bbox": [ - 236.44000244140625, - 641.4199829101562, - 264.9900207519531, - 655.3699951171875 - ] - }, - { - "size": 21.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9850", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " I", - "origin": [ - 264.9900207519531, - 652.2999877929688 - ], - "bbox": [ - 264.9900207519531, - 629.9400024414062, - 271.69500732421875, - 660.4005126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.80999755859375, - 629.9400024414062, - 271.69500732421875, - 660.4005126953125 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 127.0, - 659.7999877929688, - 258.177490234375, - 671.9405517578125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "vulnerabilities ", - "origin": [ - 127.0, - 668.6400146484375 - ], - "bbox": [ - 127.0, - 659.7999877929688, - 190.20297241210938, - 671.24951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.0, - 659.7999877929688, - 190.20297241210938, - 671.24951171875 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "15 ", - "origin": [ - 246.0, - 669.0399780273438 - ], - "bbox": [ - 246.0, - 660.199951171875, - 258.177490234375, - 671.9405517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9997145533561707, - 0.02389317750930786 - ], - "bbox": [ - 246.0, - 660.199951171875, - 258.177490234375, - 671.9405517578125 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 112.12000274658203, - 675.1599731445312, - 258.20550537109375, - 687.1203002929688 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "online measurements ", - "origin": [ - 112.12000274658203, - 684.0 - ], - "bbox": [ - 112.12000274658203, - 675.1599731445312, - 204.73953247070312, - 686.6094970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.12000274658203, - 675.1599731445312, - 204.73953247070312, - 686.6094970703125 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "61 ", - "origin": [ - 245.99000549316406, - 684.1699829101562 - ], - "bbox": [ - 245.99000549316406, - 675.2105712890625, - 258.20550537109375, - 687.1203002929688 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9997215867042542, - -0.02359343133866787 - ], - "bbox": [ - 245.99000549316406, - 675.2105712890625, - 258.20550537109375, - 687.1203002929688 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 119.19999694824219, - 690.5199584960938, - 257.967529296875, - 702.3787841796875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "low level/0S/IoT ", - "origin": [ - 119.19999694824219, - 699.3599853515625 - ], - "bbox": [ - 119.19999694824219, - 690.5199584960938, - 197.50669860839844, - 701.969482421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.19999694824219, - 690.5199584960938, - 197.50669860839844, - 701.969482421875 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "20 ", - "origin": [ - 245.97000122070312, - 699.6500244140625 - ], - "bbox": [ - 245.97000122070312, - 690.5611572265625, - 257.967529296875, - 702.3787841796875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9997145533561707, - 0.02389317750930786 - ], - "bbox": [ - 245.97000122070312, - 690.5611572265625, - 257.967529296875, - 702.3787841796875 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 120.1500015258789, - 705.8799438476562, - 257.967529296875, - 717.8438110351562 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "security behavior ", - "origin": [ - 120.1500015258789, - 714.719970703125 - ], - "bbox": [ - 120.1500015258789, - 705.8799438476562, - 196.71353149414062, - 717.3294677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 120.1500015258789, - 705.8799438476562, - 196.71353149414062, - 717.3294677734375 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "40 ", - "origin": [ - 246.07000732421875, - 714.9500122070312 - ], - "bbox": [ - 246.07000732421875, - 706.1099853515625, - 257.967529296875, - 717.8438110351562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9997145533561707, - 0.02389317750930786 - ], - "bbox": [ - 246.07000732421875, - 706.1099853515625, - 257.967529296875, - 717.8438110351562 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 90.33999633789062, - 721.2905883789062, - 258.20550537109375, - 733.2003173828125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "personal information collection ", - "origin": [ - 90.33999633789062, - 730.3699951171875 - ], - "bbox": [ - 90.33999633789062, - 721.5299682617188, - 226.8779754638672, - 732.9794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 90.33999633789062, - 721.5299682617188, - 226.8779754638672, - 732.9794921875 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "61 ", - "origin": [ - 245.99000549316406, - 730.25 - ], - "bbox": [ - 245.99000549316406, - 721.2905883789062, - 258.20550537109375, - 733.2003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9997215867042542, - -0.02359343133866787 - ], - "bbox": [ - 245.99000549316406, - 721.2905883789062, - 258.20550537109375, - 733.2003173828125 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 315.94000244140625, - 22.574209213256836, - 547.2340087890625, - 36.82933807373047 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "して脆弱性の研究が実施されている[5, 6, 7, 8, 9, 10]. ", - "origin": [ - 315.94000244140625, - 33.33001708984375 - ], - "bbox": [ - 315.94000244140625, - 22.574209213256836, - 547.2340087890625, - 36.82933807373047 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999931454658508, - -0.003699974622577429 - ], - "bbox": [ - 315.94000244140625, - 22.574209213256836, - 547.2340087890625, - 36.82933807373047 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.9200134277344, - 37.70286560058594, - 552.6100463867188, - 66.35002899169922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "脆弱性の研究は必ずしもリバ", - "origin": [ - 325.45001220703125, - 48.510009765625 - ], - "bbox": [ - 325.45001220703125, - 37.85248565673828, - 448.1031799316406, - 51.58000946044922 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 448.69000244140625, - 44.76123046875 - ], - "bbox": [ - 448.69000244140625, - 37.98283004760742, - 457.4519958496094, - 46.75672912597656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "スエンジニアリングを", - "origin": [ - 457.7099914550781, - 48.28228759765625 - ], - "bbox": [ - 457.7099914550781, - 37.70286560058594, - 552.6100463867188, - 51.53289031982422 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - -0.002099995268508792 - ], - "bbox": [ - 325.45001220703125, - 37.70286560058594, - 552.6100463867188, - 51.58000946044922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "必要としない. しかしながら, それを必要とするときに", - "origin": [ - 315.9200134277344, - 63.280029296875 - ], - "bbox": [ - 315.9200134277344, - 52.880027770996094, - 552.4010009765625, - 66.35002899169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 52.880027770996094, - 552.4010009765625, - 66.35002899169922 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 315.71002197265625, - 67.8900375366211, - 554.5780639648438, - 126.12010955810547 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は契約または知的財産権の侵害を起こさないよう気を付", - "origin": [ - 315.71002197265625, - 78.2900390625 - ], - "bbox": [ - 315.71002197265625, - 67.8900375366211, - 552.6504516601562, - 81.36003875732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.71002197265625, - 67.8900375366211, - 552.6504516601562, - 81.36003875732422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ける必要がある.", - "origin": [ - 316.1400146484375, - 93.1900634765625 - ], - "bbox": [ - 316.1400146484375, - 82.7900619506836, - 384.979736328125, - 96.26006317138672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.1400146484375, - 82.7900619506836, - 384.979736328125, - 96.26006317138672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "マルウェアは脆弱性を用いて攻撃を展開しうるため,", - "origin": [ - 325.4100036621094, - 108.15008544921875 - ], - "bbox": [ - 325.4100036621094, - 97.75008392333984, - 554.5780639648438, - 111.22008514404297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4100036621094, - 97.75008392333984, - 554.5780639648438, - 111.22008514404297 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "これは本項目で扱う. マルウェアに関する研究を行う際", - "origin": [ - 316.04998779296875, - 123.05010986328125 - ], - "bbox": [ - 316.04998779296875, - 112.65010833740234, - 552.33935546875, - 126.12010955810547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.04998779296875, - 112.65010833740234, - 552.33935546875, - 126.12010955810547 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 315.9800109863281, - 127.4800033569336, - 554.5673828125, - 201.09002685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "には,それが与える影響を十分に考慮し』殿杉響を低減し", - "origin": [ - 315.989990234375, - 137.8800048828125 - ], - "bbox": [ - 315.989990234375, - 127.4800033569336, - 552.5599975585938, - 141.51759338378906 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 315.989990234375, - 127.4800033569336, - 552.5599975585938, - 141.51759338378906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "なくてはならない. 対象の同意が得られ, 本倫理指針の", - "origin": [ - 316.010009765625, - 152.969970703125 - ], - "bbox": [ - 316.010009765625, - 142.56997680664062, - 552.5355224609375, - 156.03997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.010009765625, - 142.56997680664062, - 552.5355224609375, - 156.03997802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "他の項目を遵守する場合, 本倫理指針ではコンピュ", - "origin": [ - 316.0, - 167.989990234375 - ], - "bbox": [ - 316.0, - 157.27200317382812, - 533.5955810546875, - 171.303466796875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 533.7999877929688, - 164.30126953125 - ], - "bbox": [ - 533.7999877929688, - 157.51235961914062, - 542.56201171875, - 166.29676818847656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タ", - "origin": [ - 542.8800048828125, - 167.91131591796875 - ], - "bbox": [ - 542.8800048828125, - 157.47933959960938, - 552.5700073242188, - 170.9813232421875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999945759773254, - -0.0032999820541590452 - ], - "bbox": [ - 316.0, - 157.27200317382812, - 552.5700073242188, - 171.303466796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "をマルウェアに感染させる動的解析に関しても, それが", - "origin": [ - 315.9800109863281, - 182.8599853515625 - ], - "bbox": [ - 315.9800109863281, - 172.45999145507812, - 552.4442138671875, - 185.92999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9800109863281, - 172.45999145507812, - 552.4442138671875, - 185.92999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "外部に害を及ぼさない限り受け入れられる. たとえば,", - "origin": [ - 316.0299987792969, - 198.02001953125 - ], - "bbox": [ - 316.0299987792969, - 187.02365112304688, - 554.5673828125, - 201.09002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 316.0299987792969, - 187.02365112304688, - 554.5673828125, - 201.09002685546875 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 315.8500061035156, - 202.32998657226562, - 554.4739990234375, - 245.7899169921875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "まずロ", - "origin": [ - 315.8500061035156, - 212.72998046875 - ], - "bbox": [ - 315.8500061035156, - 202.32998657226562, - 343.57220458984375, - 215.79998779296875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 343.57220458984375, - 212.72998046875 - ], - "bbox": [ - 343.57220458984375, - 202.44996643066406, - 345.1300048828125, - 214.72547912597656 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 345.1300048828125, - 209.2099609375 - ], - "bbox": [ - 345.1300048828125, - 202.44996643066406, - 353.8919982910156, - 211.20545959472656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "カルの隔離された環境でマルウェアを実行し,", - "origin": [ - 354.42999267578125, - 212.72998046875 - ], - "bbox": [ - 354.42999267578125, - 202.32998657226562, - 554.4739990234375, - 215.79998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8500061035156, - 202.32998657226562, - 554.4739990234375, - 215.79998779296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "その影響を把握するべきである.", - "origin": [ - 315.989990234375, - 227.7099609375 - ], - "bbox": [ - 315.989990234375, - 216.92996215820312, - 452.2969970703125, - 230.86993408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 216.92996215820312, - 452.2969970703125, - 230.86993408203125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "マルウェアの送信に関する倫理的な側面は様々な要因", - "origin": [ - 325.40997314453125, - 242.71990966796875 - ], - "bbox": [ - 325.40997314453125, - 232.31991577148438, - 552.2642211914062, - 245.7899169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.40997314453125, - 232.31991577148438, - 552.2642211914062, - 245.7899169921875 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 315.989990234375, - 246.84072875976562, - 552.5311889648438, - 260.9596862792969 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に関係する. たとえばマルウェアの作成者, 送信先, 送", - "origin": [ - 315.989990234375, - 257.510009765625 - ], - "bbox": [ - 315.989990234375, - 246.84072875976562, - 552.5311889648438, - 260.9596862792969 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999927282333374, - 0.0037999728228896856 - ], - "bbox": [ - 315.989990234375, - 246.84072875976562, - 552.5311889648438, - 260.9596862792969 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 315.80999755859375, - 261.9103088378906, - 552.6244506835938, - 290.4700012207031 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "信してからそのままにしておく時間, 本件の関係者, そ", - "origin": [ - 315.80999755859375, - 272.310302734375 - ], - "bbox": [ - 315.80999755859375, - 261.9103088378906, - 552.5684204101562, - 276.00933837890625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999927282333374, - 0.0037999728228896856 - ], - "bbox": [ - 315.80999755859375, - 261.9103088378906, - 552.5684204101562, - 276.00933837890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "して送信H的である. また, これらはマルウェアの定義", - "origin": [ - 315.94000244140625, - 287.3999938964844 - ], - "bbox": [ - 315.94000244140625, - 277.0, - 552.6244506835938, - 290.4700012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.94000244140625, - 277.0, - 552.6244506835938, - 290.4700012207031 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 315.739990234375, - 292.05999755859375, - 552.7108154296875, - 320.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "によっても変化しうる可能性がある. 調査目的で", - "origin": [ - 315.989990234375, - 302.4599914550781 - ], - "bbox": [ - 315.989990234375, - 292.05999755859375, - 524.5261840820312, - 305.5299987792969 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " Apple", - "origin": [ - 524.5261840820312, - 302.4599914550781 - ], - "bbox": [ - 524.5261840820312, - 293.6199951171875, - 552.7108154296875, - 305.0694885253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.989990234375, - 292.05999755859375, - 552.7108154296875, - 305.5299987792969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ストアにマルウェアを送信した研究が存在する", - "origin": [ - 315.739990234375, - 317.3800048828125 - ], - "bbox": [ - 315.739990234375, - 306.9800109863281, - 515.7660522460938, - 320.45001220703125 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " [11].", - "origin": [ - 515.7660522460938, - 317.3800048828125 - ], - "bbox": [ - 515.7660522460938, - 307.9400329589844, - 535.5924682617188, - 319.989501953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " こ", - "origin": [ - 535.5924682617188, - 317.21002197265625 - ], - "bbox": [ - 535.5924682617188, - 306.8100280761719, - 552.5699462890625, - 320.280029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.739990234375, - 306.8100280761719, - 552.5699462890625, - 320.45001220703125 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 315.97991943359375, - 321.3800048828125, - 552.421875, - 350.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の研究者はマルウェアを", - "origin": [ - 315.97991943359375, - 332.5400085449219 - ], - "bbox": [ - 315.97991943359375, - 321.9100036621094, - 419.3648986816406, - 335.6100158691406 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " Apple", - "origin": [ - 419.3648986816406, - 332.30999755859375 - ], - "bbox": [ - 419.3648986816406, - 322.94000244140625, - 447.23419189453125, - 334.91949462890625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ストアから自身の端末に", - "origin": [ - 447.23419189453125, - 331.7799987792969 - ], - "bbox": [ - 447.23419189453125, - 321.3800048828125, - 552.421875, - 335.2200012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.97991943359375, - 321.3800048828125, - 552.421875, - 335.6100158691406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ダウンロ", - "origin": [ - 316.0098876953125, - 347.1300048828125 - ], - "bbox": [ - 316.0098876953125, - 336.7300109863281, - 352.56866455078125, - 350.20001220703125 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 352.56866455078125, - 347.1300048828125 - ], - "bbox": [ - 352.56866455078125, - 336.8899841308594, - 353.889892578125, - 349.1255187988281 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 353.889892578125, - 343.6499938964844 - ], - "bbox": [ - 353.889892578125, - 336.8899841308594, - 362.6518859863281, - 345.6455078125 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 362.6518859863281, - 343.6499938964844 - ], - "bbox": [ - 362.6518859863281, - 333.25, - 365.64990234375, - 350.0799865722656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドしたのち, それを", - "origin": [ - 365.64990234375, - 347.0099792480469 - ], - "bbox": [ - 365.64990234375, - 336.6099853515625, - 446.9457092285156, - 350.0799865722656 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " Apple", - "origin": [ - 446.9457092285156, - 347.0099792480469 - ], - "bbox": [ - 446.9457092285156, - 338.16998291015625, - 474.83416748046875, - 349.6194763183594 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ストアから直ちに", - "origin": [ - 474.83416748046875, - 347.0099792480469 - ], - "bbox": [ - 474.83416748046875, - 336.6099853515625, - 552.4212646484375, - 350.0799865722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0098876953125, - 333.25, - 552.4212646484375, - 350.20001220703125 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 315.7200012207031, - 351.2908630371094, - 552.5904541015625, - 395.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "削除している. また,", - "origin": [ - 316.2099914550781, - 361.94000244140625 - ], - "bbox": [ - 316.2099914550781, - 351.5400085449219, - 408.54498291015625, - 365.2408447265625 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " Apple", - "origin": [ - 408.54498291015625, - 362.17083740234375 - ], - "bbox": [ - 408.54498291015625, - 352.8330383300781, - 436.55426025390625, - 364.83245849609375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " の統計を用いて, 同研究者", - "origin": [ - 436.55426025390625, - 361.69085693359375 - ], - "bbox": [ - 436.55426025390625, - 351.2908630371094, - 552.3502197265625, - 365.44036865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 316.2099914550781, - 351.2908630371094, - 552.3502197265625, - 365.44036865234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ら以外がマルウェアをダウンロ", - "origin": [ - 315.7200012207031, - 376.9800109863281 - ], - "bbox": [ - 315.7200012207031, - 366.58001708984375, - 447.2638244628906, - 380.0500183105469 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 447.2638244628906, - 376.9800109863281 - ], - "bbox": [ - 447.2638244628906, - 366.760009765625, - 448.69000244140625, - 378.97552490234375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 448.69000244140625, - 373.52001953125 - ], - "bbox": [ - 448.69000244140625, - 366.760009765625, - 457.4519958496094, - 375.5155334472656 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 457.4519958496094, - 373.52001953125 - ], - "bbox": [ - 457.4519958496094, - 363.1200256347656, - 460.4599914550781, - 379.98004150390625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドしていないことを確", - "origin": [ - 460.4599914550781, - 376.9100341796875 - ], - "bbox": [ - 460.4599914550781, - 366.5100402832031, - 552.5904541015625, - 380.22003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7200012207031, - 363.1200256347656, - 552.5904541015625, - 380.22003173828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "認している", - "origin": [ - 315.7200012207031, - 391.9800109863281 - ], - "bbox": [ - 315.7200012207031, - 381.58001708984375, - 363.8191833496094, - 395.0500183105469 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 363.8191833496094, - 391.9800109863281 - ], - "bbox": [ - 363.8191833496094, - 381.19000244140625, - 366.8500061035156, - 393.97552490234375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "12", - "origin": [ - 366.8500061035156, - 387.95001220703125 - ], - "bbox": [ - 366.8500061035156, - 381.19000244140625, - 373.9284973144531, - 389.9455261230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7200012207031, - 381.19000244140625, - 373.9284973144531, - 395.0500183105469 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 325.45001220703125, - 396.3186950683594, - 549.9729614257812, - 410.3500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "脆弱性の公開は関係者らに影響を与えることがある.", - "origin": [ - 325.45001220703125, - 407.2799987792969 - ], - "bbox": [ - 325.45001220703125, - 396.3186950683594, - 549.9729614257812, - 410.3500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 325.45001220703125, - 396.3186950683594, - 549.9729614257812, - 410.3500061035156 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 315.95001220703125, - 411.58001708984375, - 552.3642578125, - 439.9800109863281 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "多くの論文では脆弱性の公開に先立ち, ベンダや関係者", - "origin": [ - 315.95001220703125, - 421.9800109863281 - ], - "bbox": [ - 315.95001220703125, - 411.58001708984375, - 552.3642578125, - 425.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.95001220703125, - 411.58001708984375, - 552.3642578125, - 425.0500183105469 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に連絡している", - "origin": [ - 315.9900207519531, - 436.9100036621094 - ], - "bbox": [ - 315.9900207519531, - 426.510009765625, - 383.8606262207031, - 439.9800109863281 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " [6, 7, 11, 12, 13, 14, 15, 16]. ", - "origin": [ - 383.8606262207031, - 436.9100036621094 - ], - "bbox": [ - 383.8606262207031, - 427.6300354003906, - 513.3875122070312, - 439.5195007324219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "その際", - "origin": [ - 518.9199829101562, - 436.9000244140625 - ], - "bbox": [ - 518.9199829101562, - 426.5000305175781, - 549.9583740234375, - 439.97003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9900207519531, - 426.5000305175781, - 549.9583740234375, - 439.9800109863281 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 315.63995361328125, - 441.6900329589844, - 554.635986328125, - 499.82000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "脆弱性が新しいか, 誰が脆弱性を開示するか, 脆弱性の", - "origin": [ - 315.8499755859375, - 452.09002685546875 - ], - "bbox": [ - 315.8499755859375, - 441.6900329589844, - 552.5352172851562, - 455.1600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8499755859375, - 441.6900329589844, - 552.5352172851562, - 455.1600341796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "開示範囲, 脆弱性開示のタイミング, 開示の取り扱い,", - "origin": [ - 315.97998046875, - 466.9200134277344 - ], - "bbox": [ - 315.97998046875, - 456.21002197265625, - 554.635986328125, - 469.9900207519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.97998046875, - 456.21002197265625, - 554.635986328125, - 469.9900207519531 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "そして関係者との協力等に堪づき, 情報開示に関する倫", - "origin": [ - 315.9899597167969, - 481.7900085449219 - ], - "bbox": [ - 315.9899597167969, - 470.9800109863281, - 552.3080444335938, - 484.9100036621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9899597167969, - 470.9800109863281, - 552.3080444335938, - 484.9100036621094 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理的な判断を下す必要がある.", - "origin": [ - 315.63995361328125, - 496.75 - ], - "bbox": [ - 315.63995361328125, - 486.3500061035156, - 442.6927490234375, - 499.82000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.63995361328125, - 486.3500061035156, - 442.6927490234375, - 499.82000732421875 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 316.0799560546875, - 510.8699645996094, - 390.8075256347656, - 522.3194580078125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1.2 ", - "origin": [ - 316.0799560546875, - 519.7099609375 - ], - "bbox": [ - 316.0799560546875, - 510.8699645996094, - 341.240966796875, - 522.3194580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0799560546875, - 510.8699645996094, - 341.240966796875, - 522.3194580078125 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Privacy ", - "origin": [ - 351.24993896484375, - 519.7099609375 - ], - "bbox": [ - 351.24993896484375, - 510.8699645996094, - 390.8075256347656, - 522.3194580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.24993896484375, - 510.8699645996094, - 390.8075256347656, - 522.3194580078125 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 315.94000244140625, - 526.75, - 555.9707641601562, - 585.0900268554688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本倫理指針では", - "origin": [ - 325.2999267578125, - 537.1500244140625 - ], - "bbox": [ - 325.2999267578125, - 526.75, - 389.3277282714844, - 540.2200317382812 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " PII(Personal Identifiable Information) ", - "origin": [ - 389.3277282714844, - 537.1500244140625 - ], - "bbox": [ - 389.3277282714844, - 528.0299682617188, - 555.9707641601562, - 539.759521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.2999267578125, - 526.75, - 555.9707641601562, - 540.2200317382812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とその他の情報を区別していない. これは正確な", - "origin": [ - 315.95001220703125, - 552.25 - ], - "bbox": [ - 315.95001220703125, - 541.6123046875, - 524.3723754882812, - 555.4207153320312 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " PII", - "origin": [ - 524.3723754882812, - 552.0123291015625 - ], - "bbox": [ - 524.3723754882812, - 543.1375732421875, - 540.9050903320312, - 554.621826171875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " の", - "origin": [ - 540.9050903320312, - 551.9776000976562 - ], - "bbox": [ - 540.9050903320312, - 541.5775756835938, - 552.5399780273438, - 555.3331298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - -0.002099995268508792 - ], - "bbox": [ - 315.95001220703125, - 541.5775756835938, - 552.5399780273438, - 555.4207153320312 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "定義が困難なためである. その代わり, 本研究では人や", - "origin": [ - 315.94000244140625, - 567.22998046875 - ], - "bbox": [ - 315.94000244140625, - 556.8299560546875, - 552.3942260742188, - 570.2999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.94000244140625, - 556.8299560546875, - 552.3942260742188, - 570.2999877929688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "動物, システムに関して収集したすべてのデ", - "origin": [ - 316.010009765625, - 582.02001953125 - ], - "bbox": [ - 316.010009765625, - 571.6199951171875, - 504.87109375, - 585.0900268554688 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 505.34002685546875, - 578.4000244140625 - ], - "bbox": [ - 505.34002685546875, - 571.6400146484375, - 514.10205078125, - 580.3955078125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを対象", - "origin": [ - 514.4200439453125, - 581.9400024414062 - ], - "bbox": [ - 514.4200439453125, - 571.5399780273438, - 552.6524658203125, - 585.010009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.010009765625, - 571.5399780273438, - 552.6524658203125, - 585.0900268554688 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 315.9500427246094, - 586.8099365234375, - 552.0220947265625, - 615.1699829101562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とし, すべて等しく慎重に扱うよう求めている.", - "origin": [ - 315.9500427246094, - 597.2099609375 - ], - "bbox": [ - 315.9500427246094, - 586.8099365234375, - 519.3619995117188, - 600.2799682617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9500427246094, - 586.8099365234375, - 519.3619995117188, - 600.2799682617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "また,そのようなデ", - "origin": [ - 325.4500732421875, - 612.0999755859375 - ], - "bbox": [ - 325.4500732421875, - 601.699951171875, - 406.437255859375, - 615.1699829101562 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 406.6900634765625, - 608.52001953125 - ], - "bbox": [ - 406.6900634765625, - 601.760009765625, - 415.4520568847656, - 610.5155029296875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを扱う際には,あらかじめデ", - "origin": [ - 415.5300598144531, - 612.0999755859375 - ], - "bbox": [ - 415.5300598144531, - 601.699951171875, - 543.0136108398438, - 615.1699829101562 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 543.2600708007812, - 608.52001953125 - ], - "bbox": [ - 543.2600708007812, - 601.760009765625, - 552.0220947265625, - 610.5155029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4500732421875, - 601.699951171875, - 552.0220947265625, - 615.1699829101562 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 316.9200744628906, - 616.68994140625, - 552.0120849609375, - 630.1599731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "夕取得時から廃棄までの流れを規定し,それに沿ってデ", - "origin": [ - 316.9200744628906, - 627.0899658203125 - ], - "bbox": [ - 316.9200744628906, - 616.68994140625, - 543.1112060546875, - 630.1599731445312 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 543.2500610351562, - 623.6600341796875 - ], - "bbox": [ - 543.2500610351562, - 616.9000244140625, - 552.0120849609375, - 625.655517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.9200744628906, - 616.68994140625, - 552.0120849609375, - 630.1599731445312 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 315.6800537109375, - 631.5299682617188, - 552.3212890625, - 645.030029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを管理する必要がある. このデ", - "origin": [ - 315.6800537109375, - 641.9299926757812 - ], - "bbox": [ - 315.6800537109375, - 631.5299682617188, - 457.6956481933594, - 645.0 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 458.1800537109375, - 638.4400024414062 - ], - "bbox": [ - 458.1800537109375, - 631.6799926757812, - 466.9420471191406, - 640.4354858398438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タパイプラインはセ", - "origin": [ - 467.1400451660156, - 641.9600219726562 - ], - "bbox": [ - 467.1400451660156, - 631.5599975585938, - 552.3212890625, - 645.030029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.6800537109375, - 631.5299682617188, - 552.3212890625, - 645.030029296875 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 315.9500427246094, - 646.5999755859375, - 552.549072265625, - 674.8400268554688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "キュアに構築され, 再利用可能なものとして規定するこ", - "origin": [ - 316.3300476074219, - 657.0 - ], - "bbox": [ - 316.3300476074219, - 646.5999755859375, - 552.549072265625, - 660.0700073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.3300476074219, - 646.5999755859375, - 552.549072265625, - 660.0700073242188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とが望ましい.", - "origin": [ - 315.9500427246094, - 671.77001953125 - ], - "bbox": [ - 315.9500427246094, - 661.3699951171875, - 375.48004150390625, - 674.8400268554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9500427246094, - 661.3699951171875, - 375.48004150390625, - 674.8400268554688 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 316.09002685546875, - 676.4199829101562, - 552.5015869140625, - 705.0700073242188 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "著者らが収集した論文のなかには機微なデ", - "origin": [ - 325.72003173828125, - 686.8200073242188 - ], - "bbox": [ - 325.72003173828125, - 676.4199829101562, - 504.9520568847656, - 689.8900146484375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 505.4500427246094, - 683.2900390625 - ], - "bbox": [ - 505.4500427246094, - 676.530029296875, - 514.2120361328125, - 685.2855224609375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを扱う", - "origin": [ - 514.530029296875, - 686.8900146484375 - ], - "bbox": [ - 514.530029296875, - 676.489990234375, - 552.5015869140625, - 689.9600219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.72003173828125, - 676.4199829101562, - 552.5015869140625, - 689.9600219726562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "際に,必要最低限のデ", - "origin": [ - 316.09002685546875, - 701.8099975585938 - ], - "bbox": [ - 316.09002685546875, - 691.4099731445312, - 406.2198181152344, - 704.8800048828125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 406.45001220703125, - 698.3499755859375 - ], - "bbox": [ - 406.45001220703125, - 691.5899658203125, - 415.2120056152344, - 700.345458984375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タのみを収集し,それに暗号化や", - "origin": [ - 415.4100036621094, - 701.8800048828125 - ], - "bbox": [ - 415.4100036621094, - 691.219970703125, - 552.4127807617188, - 705.0700073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.09002685546875, - 691.219970703125, - 552.4127807617188, - 705.0700073242188 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 315.97998046875, - 719.5499877929688, - 552.6197509765625, - 741.7760009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "12", - "origin": [ - 326.6400146484375, - 729.9500122070312 - ], - "bbox": [ - 326.6400146484375, - 719.5499877929688, - 333.0000305175781, - 733.02001953125 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9846", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "当該論文は日本国外で発表された論文である. 日本で研究する際", - "origin": [ - 333.4700012207031, - 729.9500122070312 - ], - "bbox": [ - 333.4700012207031, - 721.6300048828125, - 552.6197509765625, - 732.406005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.6400146484375, - 719.5499877929688, - 552.6197509765625, - 733.02001953125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9846", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "には関連法に該当しない様な配慮が別途必要である.", - "origin": [ - 315.97998046875, - 739.3200073242188 - ], - "bbox": [ - 315.97998046875, - 731.0, - 494.1639709472656, - 741.7760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.97998046875, - 731.0, - 494.1639709472656, - 741.7760009765625 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 43, - "type": 0, - "bbox": [ - 315.97998046875, - 719.5499877929688, - 552.6197509765625, - 741.7760009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "12", - "origin": [ - 326.6400146484375, - 729.9500122070312 - ], - "bbox": [ - 326.6400146484375, - 719.5499877929688, - 333.0000305175781, - 733.02001953125 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9846", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "当該論文は日本国外で発表された論文である. 日本で研究する際", - "origin": [ - 333.4700012207031, - 729.9500122070312 - ], - "bbox": [ - 333.4700012207031, - 721.6300048828125, - 552.6197509765625, - 732.406005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.6400146484375, - 719.5499877929688, - 552.6197509765625, - 733.02001953125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9846", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "には関連法に該当しない様な配慮が別途必要である.", - "origin": [ - 315.97998046875, - 739.3200073242188 - ], - "bbox": [ - 315.97998046875, - 731.0, - 494.1639709472656, - 741.7760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.97998046875, - 731.0, - 494.1639709472656, - 741.7760009765625 - ] - } - ], - "tag": "footnote" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 59.380001068115234, - 156.97109985351562, - 295.97320556640625, - 170.94076538085938 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "た.", - "origin": [ - 59.380001068115234, - 167.8499755859375 - ], - "bbox": [ - 59.380001068115234, - 156.97109985351562, - 71.15999603271484, - 170.94076538085938 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - 0.002199994632974267 - ], - "bbox": [ - 59.380001068115234, - 156.97109985351562, - 71.15999603271484, - 170.94076538085938 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Online measurements", - "origin": [ - 78.97000122070312, - 167.39306640625 - ], - "bbox": [ - 78.97000122070312, - 158.55307006835938, - 172.1859130859375, - 170.2077178955078 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " には", - "origin": [ - 172.1859130859375, - 167.5982208251953 - ], - "bbox": [ - 172.1859130859375, - 157.19822692871094, - 193.86160278320312, - 170.7158203125 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 61", - "origin": [ - 193.86160278320312, - 167.64581298828125 - ], - "bbox": [ - 193.86160278320312, - 158.80581665039062, - 206.78050231933594, - 170.2837371826172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 本の論文が含まれて", - "origin": [ - 206.78050231933594, - 167.6742401123047 - ], - "bbox": [ - 206.78050231933594, - 157.2742462158203, - 295.97320556640625, - 170.94053649902344 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999975562095642, - 0.002199994632974267 - ], - "bbox": [ - 78.97000122070312, - 157.19822692871094, - 295.97320556640625, - 170.94053649902344 - ] - } - ], - "tag": "rotate" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.5, - 409.4352722167969, - 296.1124267578125, - 438.2200012207031 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "断であることを主張しない. さらに決定木構築時に, 決", - "origin": [ - 59.66999816894531, - 420.07000732421875 - ], - "bbox": [ - 59.66999816894531, - 409.4352722167969, - 296.1099853515625, - 423.38201904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999960660934448, - 0.0027999889571219683 - ], - "bbox": [ - 59.66999816894531, - 409.4352722167969, - 296.1099853515625, - 423.38201904296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "定できなかった倫理的な判断も多数存在したこれは本", - "origin": [ - 59.5, - 435.1499938964844 - ], - "bbox": [ - 59.5, - 424.57000732421875, - 296.1124267578125, - 438.2200012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.5, - 424.57000732421875, - 296.1124267578125, - 438.2200012207031 - ] - } - ], - "tag": "rotate" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.470001220703125, - 439.6400146484375, - 295.9599914550781, - 468.1954040527344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理指針を利用する研究者が所属する組織のポリシ", - "origin": [ - 59.47003173828125, - 450.0400085449219 - ], - "bbox": [ - 59.47003173828125, - 439.6400146484375, - 276.8978271484375, - 453.1100158691406 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 277.33001708984375, - 446.9200134277344 - ], - "bbox": [ - 277.33001708984375, - 440.1600036621094, - 286.0920104980469, - 448.91552734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が", - "origin": [ - 286.6300048828125, - 450.6200256347656 - ], - "bbox": [ - 286.6300048828125, - 440.22003173828125, - 295.9599914550781, - 453.6900329589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47003173828125, - 439.6400146484375, - 295.9599914550781, - 453.6900329589844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "倫理的な判断に関与する場合があるためである.", - "origin": [ - 59.470001220703125, - 465.05999755859375 - ], - "bbox": [ - 59.470001220703125, - 454.2300109863281, - 262.8070068359375, - 468.1954040527344 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999955296516418, - -0.002999986754730344 - ], - "bbox": [ - 59.470001220703125, - 454.2300109863281, - 262.8070068359375, - 468.1954040527344 - ] - } - ], - "tag": "rotate" - }, - { - "number": 16, - "type": 0, - "bbox": [ - 59.38999938964844, - 525.260009765625, - 296.0946044921875, - 583.4600219726562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "脆弱性の研究それ自体は関係者の同意の下で許容可能", - "origin": [ - 68.89000701904297, - 535.6600341796875 - ], - "bbox": [ - 68.89000701904297, - 525.260009765625, - 296.01580810546875, - 538.7300415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.89000701904297, - 525.260009765625, - 296.01580810546875, - 538.7300415039062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "である. 同意が得られない場合には, ライセンスや倫理", - "origin": [ - 59.57000732421875, - 550.25 - ], - "bbox": [ - 59.57000732421875, - 539.8499755859375, - 296.0946044921875, - 553.4800415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.57000732421875, - 539.8499755859375, - 296.0946044921875, - 553.4800415039062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "指針の許容範囲内で研究を実施しなければならない. た", - "origin": [ - 59.439998626708984, - 565.510009765625 - ], - "bbox": [ - 59.439998626708984, - 554.6732788085938, - 295.8999938964844, - 568.8090209960938 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999948740005493, - -0.003199983388185501 - ], - "bbox": [ - 59.439998626708984, - 554.6732788085938, - 295.8999938964844, - 568.8090209960938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とえば, 多くの論文ではオ", - "origin": [ - 59.38999938964844, - 580.0 - ], - "bbox": [ - 59.38999938964844, - 569.5999755859375, - 171.9805145263672, - 583.0700073242188 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 172.82000732421875, - 576.5899658203125 - ], - "bbox": [ - 172.82000732421875, - 569.8299560546875, - 181.58200073242188, - 578.58544921875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "プンソ", - "origin": [ - 181.82000732421875, - 580.0499877929688 - ], - "bbox": [ - 181.82000732421875, - 569.6499633789062, - 209.55621337890625, - 583.1199951171875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 209.55621337890625, - 580.0499877929688 - ], - "bbox": [ - 209.55621337890625, - 569.9099731445312, - 210.75, - 582.0454711914062 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 210.75, - 576.6699829101562 - ], - "bbox": [ - 210.75, - 569.9099731445312, - 219.51199340820312, - 578.6654663085938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "スのシステムに対", - "origin": [ - 219.88999938964844, - 580.3900146484375 - ], - "bbox": [ - 219.88999938964844, - 569.989990234375, - 295.92999267578125, - 583.4600219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.38999938964844, - 569.5999755859375, - 295.92999267578125, - 583.4600219726562 - ] - } - ], - "tag": "rotate" - }, - { - "number": 17, - "type": 0, - "bbox": [ - 59.410003662109375, - 613.449951171875, - 296.1432189941406, - 662.7505493164062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表3: グレ", - "origin": [ - 59.410003662109375, - 623.9400024414062 - ], - "bbox": [ - 59.410003662109375, - 613.5399780273438, - 103.67081451416016, - 627.010009765625 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 104.18000793457031, - 620.3699951171875 - ], - "bbox": [ - 104.18000793457031, - 613.6099853515625, - 112.94200897216797, - 622.365478515625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "領域の論文および倫理に言及している論文", - "origin": [ - 113.42000579833984, - 623.8499755859375 - ], - "bbox": [ - 113.42000579833984, - 613.449951171875, - 296.1432189941406, - 626.9199829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.410003662109375, - 613.449951171875, - 296.1432189941406, - 627.010009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "をトピックモデルに適用した結果", - "origin": [ - 59.53999328613281, - 638.719970703125 - ], - "bbox": [ - 59.53999328613281, - 628.3199462890625, - 202.9779815673828, - 641.7899780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.53999328613281, - 628.3199462890625, - 202.9779815673828, - 641.7899780273438 - ] - }, - { - "spans": [ - { - "size": 21.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9850", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "I ", - "origin": [ - 83.63997650146484, - 656.1500244140625 - ], - "bbox": [ - 83.63997650146484, - 633.7900390625, - 90.21897888183594, - 662.7505493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.63997650146484, - 633.7900390625, - 90.21897888183594, - 662.7505493164062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "カテゴリ名", - "origin": [ - 133.25999450683594, - 651.5999755859375 - ], - "bbox": [ - 133.25999450683594, - 641.199951171875, - 180.6099853515625, - 655.3555297851562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9998890161514282, - 0.014898346737027168 - ], - "bbox": [ - 133.25999450683594, - 641.199951171875, - 180.6099853515625, - 655.3555297851562 - ] - }, - { - "spans": [ - { - "size": 21.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9850", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "I", - "origin": [ - 229.80999755859375, - 653.7999877929688 - ], - "bbox": [ - 229.80999755859375, - 631.4400024414062, - 231.25050354003906, - 660.4005126953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 231.25050354003906, - 653.7999877929688 - ], - "bbox": [ - 231.25050354003906, - 641.4199829101562, - 236.44000244140625, - 656.8699951171875 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文数", - "origin": [ - 236.44000244140625, - 651.8200073242188 - ], - "bbox": [ - 236.44000244140625, - 641.4199829101562, - 264.9900207519531, - 655.3699951171875 - ] - }, - { - "size": 21.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9850", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " I", - "origin": [ - 264.9900207519531, - 652.2999877929688 - ], - "bbox": [ - 264.9900207519531, - 629.9400024414062, - 271.69500732421875, - 660.4005126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.80999755859375, - 629.9400024414062, - 271.69500732421875, - 660.4005126953125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 18, - "type": 0, - "bbox": [ - 127.0, - 659.7999877929688, - 258.177490234375, - 671.9405517578125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "vulnerabilities ", - "origin": [ - 127.0, - 668.6400146484375 - ], - "bbox": [ - 127.0, - 659.7999877929688, - 190.20297241210938, - 671.24951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.0, - 659.7999877929688, - 190.20297241210938, - 671.24951171875 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "15 ", - "origin": [ - 246.0, - 669.0399780273438 - ], - "bbox": [ - 246.0, - 660.199951171875, - 258.177490234375, - 671.9405517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9997145533561707, - 0.02389317750930786 - ], - "bbox": [ - 246.0, - 660.199951171875, - 258.177490234375, - 671.9405517578125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 112.12000274658203, - 675.1599731445312, - 258.20550537109375, - 687.1203002929688 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "online measurements ", - "origin": [ - 112.12000274658203, - 684.0 - ], - "bbox": [ - 112.12000274658203, - 675.1599731445312, - 204.73953247070312, - 686.6094970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.12000274658203, - 675.1599731445312, - 204.73953247070312, - 686.6094970703125 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "61 ", - "origin": [ - 245.99000549316406, - 684.1699829101562 - ], - "bbox": [ - 245.99000549316406, - 675.2105712890625, - 258.20550537109375, - 687.1203002929688 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9997215867042542, - -0.02359343133866787 - ], - "bbox": [ - 245.99000549316406, - 675.2105712890625, - 258.20550537109375, - 687.1203002929688 - ] - } - ], - "tag": "rotate" - }, - { - "number": 20, - "type": 0, - "bbox": [ - 119.19999694824219, - 690.5199584960938, - 257.967529296875, - 702.3787841796875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "low level/0S/IoT ", - "origin": [ - 119.19999694824219, - 699.3599853515625 - ], - "bbox": [ - 119.19999694824219, - 690.5199584960938, - 197.50669860839844, - 701.969482421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.19999694824219, - 690.5199584960938, - 197.50669860839844, - 701.969482421875 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "20 ", - "origin": [ - 245.97000122070312, - 699.6500244140625 - ], - "bbox": [ - 245.97000122070312, - 690.5611572265625, - 257.967529296875, - 702.3787841796875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9997145533561707, - 0.02389317750930786 - ], - "bbox": [ - 245.97000122070312, - 690.5611572265625, - 257.967529296875, - 702.3787841796875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 120.1500015258789, - 705.8799438476562, - 257.967529296875, - 717.8438110351562 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "security behavior ", - "origin": [ - 120.1500015258789, - 714.719970703125 - ], - "bbox": [ - 120.1500015258789, - 705.8799438476562, - 196.71353149414062, - 717.3294677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 120.1500015258789, - 705.8799438476562, - 196.71353149414062, - 717.3294677734375 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "40 ", - "origin": [ - 246.07000732421875, - 714.9500122070312 - ], - "bbox": [ - 246.07000732421875, - 706.1099853515625, - 257.967529296875, - 717.8438110351562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9997145533561707, - 0.02389317750930786 - ], - "bbox": [ - 246.07000732421875, - 706.1099853515625, - 257.967529296875, - 717.8438110351562 - ] - } - ], - "tag": "rotate" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 90.33999633789062, - 721.2905883789062, - 258.20550537109375, - 733.2003173828125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "personal information collection ", - "origin": [ - 90.33999633789062, - 730.3699951171875 - ], - "bbox": [ - 90.33999633789062, - 721.5299682617188, - 226.8779754638672, - 732.9794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 90.33999633789062, - 721.5299682617188, - 226.8779754638672, - 732.9794921875 - ] - }, - { - "spans": [ - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "61 ", - "origin": [ - 245.99000549316406, - 730.25 - ], - "bbox": [ - 245.99000549316406, - 721.2905883789062, - 258.20550537109375, - 733.2003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9997215867042542, - -0.02359343133866787 - ], - "bbox": [ - 245.99000549316406, - 721.2905883789062, - 258.20550537109375, - 733.2003173828125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 315.94000244140625, - 22.574209213256836, - 547.2340087890625, - 36.82933807373047 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "して脆弱性の研究が実施されている[5, 6, 7, 8, 9, 10]. ", - "origin": [ - 315.94000244140625, - 33.33001708984375 - ], - "bbox": [ - 315.94000244140625, - 22.574209213256836, - 547.2340087890625, - 36.82933807373047 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999931454658508, - -0.003699974622577429 - ], - "bbox": [ - 315.94000244140625, - 22.574209213256836, - 547.2340087890625, - 36.82933807373047 - ] - } - ], - "tag": "rotate" - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.9200134277344, - 37.70286560058594, - 552.6100463867188, - 66.35002899169922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "脆弱性の研究は必ずしもリバ", - "origin": [ - 325.45001220703125, - 48.510009765625 - ], - "bbox": [ - 325.45001220703125, - 37.85248565673828, - 448.1031799316406, - 51.58000946044922 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 448.69000244140625, - 44.76123046875 - ], - "bbox": [ - 448.69000244140625, - 37.98283004760742, - 457.4519958496094, - 46.75672912597656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "スエンジニアリングを", - "origin": [ - 457.7099914550781, - 48.28228759765625 - ], - "bbox": [ - 457.7099914550781, - 37.70286560058594, - 552.6100463867188, - 51.53289031982422 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - -0.002099995268508792 - ], - "bbox": [ - 325.45001220703125, - 37.70286560058594, - 552.6100463867188, - 51.58000946044922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "必要としない. しかしながら, それを必要とするときに", - "origin": [ - 315.9200134277344, - 63.280029296875 - ], - "bbox": [ - 315.9200134277344, - 52.880027770996094, - 552.4010009765625, - 66.35002899169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9200134277344, - 52.880027770996094, - 552.4010009765625, - 66.35002899169922 - ] - } - ], - "tag": "rotate" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 315.9800109863281, - 127.4800033569336, - 554.5673828125, - 201.09002685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "には,それが与える影響を十分に考慮し』殿杉響を低減し", - "origin": [ - 315.989990234375, - 137.8800048828125 - ], - "bbox": [ - 315.989990234375, - 127.4800033569336, - 552.5599975585938, - 141.51759338378906 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 315.989990234375, - 127.4800033569336, - 552.5599975585938, - 141.51759338378906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "なくてはならない. 対象の同意が得られ, 本倫理指針の", - "origin": [ - 316.010009765625, - 152.969970703125 - ], - "bbox": [ - 316.010009765625, - 142.56997680664062, - 552.5355224609375, - 156.03997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.010009765625, - 142.56997680664062, - 552.5355224609375, - 156.03997802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "他の項目を遵守する場合, 本倫理指針ではコンピュ", - "origin": [ - 316.0, - 167.989990234375 - ], - "bbox": [ - 316.0, - 157.27200317382812, - 533.5955810546875, - 171.303466796875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 533.7999877929688, - 164.30126953125 - ], - "bbox": [ - 533.7999877929688, - 157.51235961914062, - 542.56201171875, - 166.29676818847656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タ", - "origin": [ - 542.8800048828125, - 167.91131591796875 - ], - "bbox": [ - 542.8800048828125, - 157.47933959960938, - 552.5700073242188, - 170.9813232421875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999945759773254, - -0.0032999820541590452 - ], - "bbox": [ - 316.0, - 157.27200317382812, - 552.5700073242188, - 171.303466796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "をマルウェアに感染させる動的解析に関しても, それが", - "origin": [ - 315.9800109863281, - 182.8599853515625 - ], - "bbox": [ - 315.9800109863281, - 172.45999145507812, - 552.4442138671875, - 185.92999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9800109863281, - 172.45999145507812, - 552.4442138671875, - 185.92999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "外部に害を及ぼさない限り受け入れられる. たとえば,", - "origin": [ - 316.0299987792969, - 198.02001953125 - ], - "bbox": [ - 316.0299987792969, - 187.02365112304688, - 554.5673828125, - 201.09002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 316.0299987792969, - 187.02365112304688, - 554.5673828125, - 201.09002685546875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 315.989990234375, - 246.84072875976562, - 552.5311889648438, - 260.9596862792969 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に関係する. たとえばマルウェアの作成者, 送信先, 送", - "origin": [ - 315.989990234375, - 257.510009765625 - ], - "bbox": [ - 315.989990234375, - 246.84072875976562, - 552.5311889648438, - 260.9596862792969 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999927282333374, - 0.0037999728228896856 - ], - "bbox": [ - 315.989990234375, - 246.84072875976562, - 552.5311889648438, - 260.9596862792969 - ] - } - ], - "tag": "rotate" - }, - { - "number": 29, - "type": 0, - "bbox": [ - 315.80999755859375, - 261.9103088378906, - 552.6244506835938, - 290.4700012207031 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "信してからそのままにしておく時間, 本件の関係者, そ", - "origin": [ - 315.80999755859375, - 272.310302734375 - ], - "bbox": [ - 315.80999755859375, - 261.9103088378906, - 552.5684204101562, - 276.00933837890625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999927282333374, - 0.0037999728228896856 - ], - "bbox": [ - 315.80999755859375, - 261.9103088378906, - 552.5684204101562, - 276.00933837890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "して送信H的である. また, これらはマルウェアの定義", - "origin": [ - 315.94000244140625, - 287.3999938964844 - ], - "bbox": [ - 315.94000244140625, - 277.0, - 552.6244506835938, - 290.4700012207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.94000244140625, - 277.0, - 552.6244506835938, - 290.4700012207031 - ] - } - ], - "tag": "rotate" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 315.7200012207031, - 351.2908630371094, - 552.5904541015625, - 395.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "削除している. また,", - "origin": [ - 316.2099914550781, - 361.94000244140625 - ], - "bbox": [ - 316.2099914550781, - 351.5400085449219, - 408.54498291015625, - 365.2408447265625 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " Apple", - "origin": [ - 408.54498291015625, - 362.17083740234375 - ], - "bbox": [ - 408.54498291015625, - 352.8330383300781, - 436.55426025390625, - 364.83245849609375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " の統計を用いて, 同研究者", - "origin": [ - 436.55426025390625, - 361.69085693359375 - ], - "bbox": [ - 436.55426025390625, - 351.2908630371094, - 552.3502197265625, - 365.44036865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 316.2099914550781, - 351.2908630371094, - 552.3502197265625, - 365.44036865234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ら以外がマルウェアをダウンロ", - "origin": [ - 315.7200012207031, - 376.9800109863281 - ], - "bbox": [ - 315.7200012207031, - 366.58001708984375, - 447.2638244628906, - 380.0500183105469 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 447.2638244628906, - 376.9800109863281 - ], - "bbox": [ - 447.2638244628906, - 366.760009765625, - 448.69000244140625, - 378.97552490234375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 448.69000244140625, - 373.52001953125 - ], - "bbox": [ - 448.69000244140625, - 366.760009765625, - 457.4519958496094, - 375.5155334472656 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 457.4519958496094, - 373.52001953125 - ], - "bbox": [ - 457.4519958496094, - 363.1200256347656, - 460.4599914550781, - 379.98004150390625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドしていないことを確", - "origin": [ - 460.4599914550781, - 376.9100341796875 - ], - "bbox": [ - 460.4599914550781, - 366.5100402832031, - 552.5904541015625, - 380.22003173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7200012207031, - 363.1200256347656, - 552.5904541015625, - 380.22003173828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "認している", - "origin": [ - 315.7200012207031, - 391.9800109863281 - ], - "bbox": [ - 315.7200012207031, - 381.58001708984375, - 363.8191833496094, - 395.0500183105469 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 363.8191833496094, - 391.9800109863281 - ], - "bbox": [ - 363.8191833496094, - 381.19000244140625, - 366.8500061035156, - 393.97552490234375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "12", - "origin": [ - 366.8500061035156, - 387.95001220703125 - ], - "bbox": [ - 366.8500061035156, - 381.19000244140625, - 373.9284973144531, - 389.9455261230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7200012207031, - 381.19000244140625, - 373.9284973144531, - 395.0500183105469 - ] - } - ], - "tag": "rotate" - }, - { - "number": 33, - "type": 0, - "bbox": [ - 325.45001220703125, - 396.3186950683594, - 549.9729614257812, - 410.3500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "脆弱性の公開は関係者らに影響を与えることがある.", - "origin": [ - 325.45001220703125, - 407.2799987792969 - ], - "bbox": [ - 325.45001220703125, - 396.3186950683594, - 549.9729614257812, - 410.3500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 325.45001220703125, - 396.3186950683594, - 549.9729614257812, - 410.3500061035156 - ] - } - ], - "tag": "rotate" - }, - { - "number": 37, - "type": 0, - "bbox": [ - 315.94000244140625, - 526.75, - 555.9707641601562, - 585.0900268554688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本倫理指針では", - "origin": [ - 325.2999267578125, - 537.1500244140625 - ], - "bbox": [ - 325.2999267578125, - 526.75, - 389.3277282714844, - 540.2200317382812 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " PII(Personal Identifiable Information) ", - "origin": [ - 389.3277282714844, - 537.1500244140625 - ], - "bbox": [ - 389.3277282714844, - 528.0299682617188, - 555.9707641601562, - 539.759521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.2999267578125, - 526.75, - 555.9707641601562, - 540.2200317382812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とその他の情報を区別していない. これは正確な", - "origin": [ - 315.95001220703125, - 552.25 - ], - "bbox": [ - 315.95001220703125, - 541.6123046875, - 524.3723754882812, - 555.4207153320312 - ] - }, - { - "size": 8.5, - "flags": 20, - "font": "*Kozuka Mincho Pr6N R-Bold-9849", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " PII", - "origin": [ - 524.3723754882812, - 552.0123291015625 - ], - "bbox": [ - 524.3723754882812, - 543.1375732421875, - 540.9050903320312, - 554.621826171875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " の", - "origin": [ - 540.9050903320312, - 551.9776000976562 - ], - "bbox": [ - 540.9050903320312, - 541.5775756835938, - 552.5399780273438, - 555.3331298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - -0.002099995268508792 - ], - "bbox": [ - 315.95001220703125, - 541.5775756835938, - 552.5399780273438, - 555.4207153320312 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "定義が困難なためである. その代わり, 本研究では人や", - "origin": [ - 315.94000244140625, - 567.22998046875 - ], - "bbox": [ - 315.94000244140625, - 556.8299560546875, - 552.3942260742188, - 570.2999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.94000244140625, - 556.8299560546875, - 552.3942260742188, - 570.2999877929688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "動物, システムに関して収集したすべてのデ", - "origin": [ - 316.010009765625, - 582.02001953125 - ], - "bbox": [ - 316.010009765625, - 571.6199951171875, - 504.87109375, - 585.0900268554688 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 505.34002685546875, - 578.4000244140625 - ], - "bbox": [ - 505.34002685546875, - 571.6400146484375, - 514.10205078125, - 580.3955078125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを対象", - "origin": [ - 514.4200439453125, - 581.9400024414062 - ], - "bbox": [ - 514.4200439453125, - 571.5399780273438, - 552.6524658203125, - 585.010009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.010009765625, - 571.5399780273438, - 552.6524658203125, - 585.0900268554688 - ] - } - ], - "tag": "rotate" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 59.56999969482422, - 22.839990615844727, - 295.8023986816406, - 36.30998992919922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "である. ここで2番目の基準の閾値はヒュ", - "origin": [ - 59.56999969482422, - 33.239990234375 - ], - "bbox": [ - 59.56999969482422, - 22.839990615844727, - 239.24481201171875, - 36.30998992919922 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9848", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 239.4199981689453, - 29.65997314453125 - ], - "bbox": [ - 239.4199981689453, - 22.899972915649414, - 248.18199157714844, - 31.655473709106445 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9847", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "リスティッ", - "origin": [ - 248.70999145507812, - 33.239990234375 - ], - "bbox": [ - 248.70999145507812, - 22.839990615844727, - 295.8023986816406, - 36.30998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.56999969482422, - 22.839990615844727, - 295.8023986816406, - 36.30998992919922 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 4, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_5": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 59.430023193359375, - 82.67000579833984, - 208.06800842285156, - 96.37999725341797 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ていることを明示している[5,19]. ", - "origin": [ - 59.430023193359375, - 93.30999755859375 - ], - "bbox": [ - 59.430023193359375, - 82.67000579833984, - 208.06800842285156, - 96.37999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.430023193359375, - 82.67000579833984, - 208.06800842285156, - 96.37999725341797 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.170013427734375, - 105.8800277709961, - 149.3904266357422, - 119.35002899169922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1.3 ", - "origin": [ - 59.170013427734375, - 116.280029296875 - ], - "bbox": [ - 59.170013427734375, - 105.8800277709961, - 85.16451263427734, - 119.35002899169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.170013427734375, - 105.8800277709961, - 85.16451263427734, - 119.35002899169922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Autonomy ", - "origin": [ - 94.69001770019531, - 116.280029296875 - ], - "bbox": [ - 94.69001770019531, - 105.8800277709961, - 149.3904266357422, - 119.35002899169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 94.69001770019531, - 105.8800277709961, - 149.3904266357422, - 119.35002899169922 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 59.46001434326172, - 123.45003509521484, - 295.9061584472656, - 151.4200439453125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本項目では,第三者の持つシステムや人に対する干渉", - "origin": [ - 69.00001525878906, - 133.85003662109375 - ], - "bbox": [ - 69.00001525878906, - 123.45003509521484, - 295.9061584472656, - 136.9200439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.00001525878906, - 123.45003509521484, - 295.9061584472656, - 136.9200439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に言及している.", - "origin": [ - 59.46001434326172, - 148.35003662109375 - ], - "bbox": [ - 59.46001434326172, - 137.95004272460938, - 128.64732360839844, - 151.4200439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.46001434326172, - 137.95004272460938, - 128.64732360839844, - 151.4200439453125 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 69.25001525878906, - 153.07003784179688, - 295.9308776855469, - 166.5400390625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "同意を得たのちに第三者のシステムにアクセスするこ", - "origin": [ - 69.25001525878906, - 163.47003173828125 - ], - "bbox": [ - 69.25001525878906, - 153.07003784179688, - 295.9308776855469, - 166.5400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.25001525878906, - 153.07003784179688, - 295.9308776855469, - 166.5400390625 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 59.28001403808594, - 168.24002075195312, - 296.1716613769531, - 196.60003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とは受け入れられるが,研究によって与える影響は考慮", - "origin": [ - 59.37001419067383, - 178.6400146484375 - ], - "bbox": [ - 59.37001419067383, - 168.24002075195312, - 296.1716613769531, - 181.71002197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.37001419067383, - 168.24002075195312, - 296.1716613769531, - 181.71002197265625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "しなければならないアクセスの影響が測れず,同意な", - "origin": [ - 59.28001403808594, - 193.530029296875 - ], - "bbox": [ - 59.28001403808594, - 183.13003540039062, - 295.9940490722656, - 196.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.28001403808594, - 183.13003540039062, - 295.9940490722656, - 196.60003662109375 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 59.46001434326172, - 198.01004028320312, - 295.9774169921875, - 211.6600341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "くシステムにアクセスするのであれば,それは非倫理的", - "origin": [ - 59.46001434326172, - 208.59002685546875 - ], - "bbox": [ - 59.46001434326172, - 198.01004028320312, - 295.9774169921875, - 211.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.46001434326172, - 198.01004028320312, - 295.9774169921875, - 211.6600341796875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 59.38001251220703, - 212.70004272460938, - 295.78753662109375, - 226.49005126953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "である. たとえば,ボットネットの操作に関する研究論", - "origin": [ - 59.38001251220703, - 223.4200439453125 - ], - "bbox": [ - 59.38001251220703, - 212.70004272460938, - 295.78753662109375, - 226.49005126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.38001251220703, - 212.70004272460938, - 295.78753662109375, - 226.49005126953125 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.19001770019531, - 226.74903869628906, - 296.1480407714844, - 256.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "文が存在する", - "origin": [ - 59.19001770019531, - 238.34002685546875 - ], - "bbox": [ - 59.19001770019531, - 227.94003295898438, - 116.41001892089844, - 241.4100341796875 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "*MS PMincho-10220", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " [20].", - "origin": [ - 116.41001892089844, - 238.34002685546875 - ], - "bbox": [ - 116.41001892089844, - 226.74903869628906, - 136.4564208984375, - 245.80902099609375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 当該論文の中で著者は感染したボッ", - "origin": [ - 136.4564208984375, - 237.98004150390625 - ], - "bbox": [ - 136.4564208984375, - 227.58004760742188, - 296.1480407714844, - 241.570068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.19001770019531, - 226.74903869628906, - 296.1480407714844, - 245.80902099609375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トに未承認のコミュニケ", - "origin": [ - 59.56001281738281, - 253.23004150390625 - ], - "bbox": [ - 59.56001281738281, - 242.83004760742188, - 162.8440399169922, - 256.300048828125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 163.69000244140625, - 249.71002197265625 - ], - "bbox": [ - 163.69000244140625, - 242.9500274658203, - 172.45199584960938, - 251.7055206298828 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ションを用いることで攻撃が", - "origin": [ - 173.02000427246094, - 253.19000244140625 - ], - "bbox": [ - 173.02000427246094, - 242.79000854492188, - 295.8443908691406, - 256.260009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.56001281738281, - 242.79000854492188, - 295.8443908691406, - 256.300048828125 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.320003509521484, - 257.9599914550781, - 296.20367431640625, - 316.0799865722656 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "でき,脆弱性を利用することで時にボットの感染を止め", - "origin": [ - 59.58000183105469, - 268.3599853515625 - ], - "bbox": [ - 59.58000183105469, - 257.9599914550781, - 295.5987854003906, - 271.42999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.58000183105469, - 257.9599914550781, - 295.5987854003906, - 271.42999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ることができると述べている. しかしながら,その", - "origin": [ - 59.320003509521484, - 283.3599853515625 - ], - "bbox": [ - 59.320003509521484, - 272.9599914550781, - 276.97161865234375, - 286.42999267578125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 277.1000061035156, - 279.17999267578125 - ], - "bbox": [ - 277.1000061035156, - 272.41998291015625, - 286.2195129394531, - 281.1755065917969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "方", - "origin": [ - 286.3800048828125, - 283.22998046875 - ], - "bbox": [ - 286.3800048828125, - 272.8299865722656, - 295.94000244140625, - 286.29998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.320003509521484, - 272.41998291015625, - 295.94000244140625, - 286.42999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "でその手法は付帯的損害を発生させるため,非倫理的で", - "origin": [ - 59.3800048828125, - 298.1099853515625 - ], - "bbox": [ - 59.3800048828125, - 287.7099914550781, - 295.9680480957031, - 301.17999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.3800048828125, - 287.7099914550781, - 295.9680480957031, - 301.17999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あるとしている. 別のボットネットに対する研究[5]に", - "origin": [ - 59.3700065612793, - 313.0099792480469 - ], - "bbox": [ - 59.3700065612793, - 302.6099853515625, - 296.20367431640625, - 316.0799865722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.3700065612793, - 302.6099853515625, - 296.20367431640625, - 316.0799865722656 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.32000732421875, - 317.9499816894531, - 296.0215759277344, - 360.97998046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "おいて,彼らは意図的に被害を出すことを非倫理的であ", - "origin": [ - 59.88999938964844, - 328.3499755859375 - ], - "bbox": [ - 59.88999938964844, - 317.9499816894531, - 295.9342346191406, - 331.41998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.88999938964844, - 317.9499816894531, - 295.9342346191406, - 331.41998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るとしている. しかしながら,我々の倫理指針の中では", - "origin": [ - 59.32000732421875, - 342.9399719238281 - ], - "bbox": [ - 59.32000732421875, - 332.53997802734375, - 295.84698486328125, - 346.0099792480469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.32000732421875, - 332.53997802734375, - 295.84698486328125, - 346.0099792480469 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "何もしないことを非倫理的としている. すなわち,影響", - "origin": [ - 59.410003662109375, - 357.90997314453125 - ], - "bbox": [ - 59.410003662109375, - 347.5099792480469, - 296.0215759277344, - 360.97998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.410003662109375, - 347.5099792480469, - 296.0215759277344, - 360.97998046875 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 315.92999267578125, - 49.179893493652344, - 552.491943359375, - 81.16991424560547 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "自動的にデ", - "origin": [ - 327.1300048828125, - 63.33990478515625 - ], - "bbox": [ - 327.1300048828125, - 52.939903259277344, - 373.8135986328125, - 66.40990447998047 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 374.05999755859375, - 59.57989501953125 - ], - "bbox": [ - 374.05999755859375, - 52.81989669799805, - 382.8219909667969, - 61.57539367675781 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 382.8219909667969, - 59.57989501953125 - ], - "bbox": [ - 382.8219909667969, - 49.179893493652344, - 384.6199951171875, - 66.45989227294922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを収集する際にも配慮が必要である.", - "origin": [ - 384.6199951171875, - 63.389892578125 - ], - "bbox": [ - 384.6199951171875, - 52.989891052246094, - 549.970947265625, - 66.45989227294922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.1300048828125, - 49.179893493652344, - 549.970947265625, - 66.45989227294922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ある研究では,Webサイトから大量にデ", - "origin": [ - 315.92999267578125, - 78.09991455078125 - ], - "bbox": [ - 315.92999267578125, - 67.69991302490234, - 486.7039489746094, - 81.16991424560547 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 486.72998046875, - 74.45989990234375 - ], - "bbox": [ - 486.72998046875, - 67.69989776611328, - 495.4919738769531, - 76.45539855957031 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 495.4919738769531, - 74.45989990234375 - ], - "bbox": [ - 495.4919738769531, - 64.05989837646484, - 497.0599670410156, - 81.10991668701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを収集する", - "origin": [ - 497.0599670410156, - 78.0399169921875 - ], - "bbox": [ - 497.0599670410156, - 67.6399154663086, - 552.491943359375, - 81.10991668701172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.92999267578125, - 64.05989837646484, - 552.491943359375, - 81.16991424560547 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 315.949951171875, - 82.7699203491211, - 552.507568359375, - 111.47997283935547 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ことを目的としているが,それぞれのサイトでは過度の", - "origin": [ - 315.949951171875, - 93.169921875 - ], - "bbox": [ - 315.949951171875, - 82.7699203491211, - 552.4779663085938, - 96.23992156982422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.949951171875, - 82.7699203491211, - 552.4779663085938, - 96.23992156982422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "アクセスを実施していない[14]. 同様に Webサイトの", - "origin": [ - 316.2099609375, - 107.949951171875 - ], - "bbox": [ - 316.2099609375, - 97.5499496459961, - 552.507568359375, - 111.47997283935547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.2099609375, - 97.5499496459961, - 552.507568359375, - 111.47997283935547 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 315.8299560546875, - 109.0300521850586, - 552.5903930664062, - 126.10002899169922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "スクレイピングに関しては,既存のデ", - "origin": [ - 315.8299560546875, - 123.030029296875 - ], - "bbox": [ - 315.8299560546875, - 112.6300277709961, - 476.6531982421875, - 126.10002899169922 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 476.76995849609375, - 119.4300537109375 - ], - "bbox": [ - 476.76995849609375, - 112.67005157470703, - 485.5319519042969, - 121.42555236816406 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 485.5319519042969, - 119.4300537109375 - ], - "bbox": [ - 485.5319519042969, - 109.0300521850586, - 487.0999450683594, - 126.10002899169922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タベ", - "origin": [ - 487.0999450683594, - 123.030029296875 - ], - "bbox": [ - 487.0999450683594, - 112.6300277709961, - 504.7393493652344, - 126.10002899169922 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 505.3499450683594, - 119.3900146484375 - ], - "bbox": [ - 505.3499450683594, - 112.63001251220703, - 514.1119384765625, - 121.38551330566406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "スを利用", - "origin": [ - 514.4599609375, - 122.94000244140625 - ], - "bbox": [ - 514.4599609375, - 112.54000091552734, - 552.5903930664062, - 126.01000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8299560546875, - 109.0300521850586, - 552.5903930664062, - 126.10002899169922 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 315.8499755859375, - 124.00997161865234, - 552.5800170898438, - 155.88995361328125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "することでサ", - "origin": [ - 315.9599609375, - 137.95001220703125 - ], - "bbox": [ - 315.9599609375, - 127.55001068115234, - 372.6965026855469, - 141.02001953125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 372.969970703125, - 134.3800048828125 - ], - "bbox": [ - 372.969970703125, - 127.62000274658203, - 381.7319641113281, - 136.37550354003906 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "バに対する新たな負荷をかけずにデ", - "origin": [ - 382.3399658203125, - 137.97998046875 - ], - "bbox": [ - 382.3399658203125, - 127.5799789428711, - 533.784912109375, - 141.04998779296875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 533.7899780273438, - 134.40997314453125 - ], - "bbox": [ - 533.7899780273438, - 127.64997100830078, - 542.552001953125, - 136.4054718017578 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 542.552001953125, - 134.40997314453125 - ], - "bbox": [ - 542.552001953125, - 124.00997161865234, - 544.1199951171875, - 141.0799560546875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タ", - "origin": [ - 544.1199951171875, - 138.00994873046875 - ], - "bbox": [ - 544.1199951171875, - 127.60994720458984, - 552.5800170898438, - 141.0799560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599609375, - 124.00997161865234, - 552.5800170898438, - 141.0799560546875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を収集する研究も存在する.", - "origin": [ - 315.8499755859375, - 152.48992919921875 - ], - "bbox": [ - 315.8499755859375, - 142.08993530273438, - 433.0903625488281, - 155.88995361328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8499755859375, - 142.08993530273438, - 433.0903625488281, - 155.88995361328125 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 315.72998046875, - 165.63992309570312, - 498.7191467285156, - 179.10992431640625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1.4 ", - "origin": [ - 315.72998046875, - 176.0399169921875 - ], - "bbox": [ - 315.72998046875, - 165.63992309570312, - 342.14898681640625, - 179.10992431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.72998046875, - 165.63992309570312, - 342.14898681640625, - 179.10992431640625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Human and Animal Subjects ", - "origin": [ - 351.2499694824219, - 176.0399169921875 - ], - "bbox": [ - 351.2499694824219, - 165.63992309570312, - 498.7191467285156, - 179.10992431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.2499694824219, - 165.63992309570312, - 498.7191467285156, - 179.10992431640625 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 316.02996826171875, - 183.32992553710938, - 552.719970703125, - 211.2799072265625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本倫理指針では人や動物に対する被験者実験を慎重に", - "origin": [ - 325.5699462890625, - 193.72991943359375 - ], - "bbox": [ - 325.5699462890625, - 183.32992553710938, - 552.719970703125, - 197.179931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5699462890625, - 183.32992553710938, - 552.719970703125, - 197.179931640625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "実施することを求めている.", - "origin": [ - 316.02996826171875, - 208.20989990234375 - ], - "bbox": [ - 316.02996826171875, - 197.80990600585938, - 432.9639587402344, - 211.2799072265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.02996826171875, - 197.80990600585938, - 432.9639587402344, - 211.2799072265625 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 315.87994384765625, - 212.4899444580078, - 552.4657592773438, - 241.50994873046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "被験者実験の", - "origin": [ - 325.5599365234375, - 223.47991943359375 - ], - "bbox": [ - 325.5599365234375, - 213.07992553710938, - 382.3258972167969, - 226.5499267578125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 382.3299255371094, - 219.24993896484375 - ], - "bbox": [ - 382.3299255371094, - 212.4899444580078, - 391.4494323730469, - 221.2454376220703 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "部では事前に同意を得られないものも", - "origin": [ - 391.8099365234375, - 223.59991455078125 - ], - "bbox": [ - 391.8099365234375, - 213.19992065429688, - 552.4657592773438, - 226.669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5599365234375, - 212.4899444580078, - 552.4657592773438, - 226.669921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "存在する. そのような場合,メンロレポ", - "origin": [ - 315.87994384765625, - 238.43994140625 - ], - "bbox": [ - 315.87994384765625, - 228.03994750976562, - 485.7575988769531, - 241.50994873046875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 486.37994384765625, - 234.73992919921875 - ], - "bbox": [ - 486.37994384765625, - 227.9799346923828, - 495.1419372558594, - 236.7354278564453 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トにも記載さ", - "origin": [ - 495.7799377441406, - 238.409912109375 - ], - "bbox": [ - 495.7799377441406, - 228.00991821289062, - 552.4339599609375, - 241.47991943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.87994384765625, - 227.9799346923828, - 552.4339599609375, - 241.50994873046875 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 315.93994140625, - 242.84994506835938, - 552.4998779296875, - 271.2999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "れていたように実験後に十分な説明を行わなくてはなら", - "origin": [ - 315.9699401855469, - 253.419921875 - ], - "bbox": [ - 315.9699401855469, - 242.84994506835938, - 552.407958984375, - 256.63995361328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9699401855469, - 242.84994506835938, - 552.407958984375, - 256.63995361328125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ないたとえば,ある研究ではソ", - "origin": [ - 315.93994140625, - 268.22991943359375 - ], - "bbox": [ - 315.93994140625, - 257.8299255371094, - 456.6043395996094, - 271.2999267578125 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 456.6043395996094, - 268.22991943359375 - ], - "bbox": [ - 456.6043395996094, - 257.86993408203125, - 457.8099365234375, - 270.2254333496094 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 457.8099365234375, - 264.62994384765625 - ], - "bbox": [ - 457.8099365234375, - 257.86993408203125, - 466.5719299316406, - 266.6254577636719 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "シャルネットワ", - "origin": [ - 467.1399230957031, - 268.169921875 - ], - "bbox": [ - 467.1399230957031, - 257.7699279785156, - 532.695556640625, - 271.23992919921875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 532.695556640625, - 268.169921875 - ], - "bbox": [ - 532.695556640625, - 257.8099365234375, - 533.7799072265625, - 270.1654357910156 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 533.7799072265625, - 264.5699462890625 - ], - "bbox": [ - 533.7799072265625, - 257.8099365234375, - 542.5419311523438, - 266.5654602050781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ク", - "origin": [ - 543.0299072265625, - 268.0499267578125 - ], - "bbox": [ - 543.0299072265625, - 257.6499328613281, - 552.4998779296875, - 271.11993408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.93994140625, - 257.6499328613281, - 552.4998779296875, - 271.2999267578125 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 315.94989013671875, - 272.7999267578125, - 552.4022216796875, - 305.6689147949219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "上で被験者を願したものの,検証の終わりにそれを明ら", - "origin": [ - 316.07989501953125, - 283.1999206542969 - ], - "bbox": [ - 316.07989501953125, - 272.7999267578125, - 552.376220703125, - 286.2699279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.07989501953125, - 272.7999267578125, - 552.376220703125, - 286.2699279785156 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "かにした", - "origin": [ - 315.94989013671875, - 298.1999206542969 - ], - "bbox": [ - 315.94989013671875, - 287.7999267578125, - 353.955078125, - 301.2699279785156 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "*MS PMincho-10220", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " [21].", - "origin": [ - 353.955078125, - 298.1999206542969 - ], - "bbox": [ - 353.955078125, - 286.96893310546875, - 373.936279296875, - 305.6689147949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.94989013671875, - 286.96893310546875, - 373.936279296875, - 305.6689147949219 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "また別の研究ではコミュニティサイトで", - "origin": [ - 382.3398742675781, - 298.1999206542969 - ], - "bbox": [ - 382.3398742675781, - 287.7999267578125, - 552.4022216796875, - 301.2699279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.3398742675781, - 287.7999267578125, - 552.4022216796875, - 301.2699279785156 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 315.92987060546875, - 302.50994873046875, - 552.5059204101562, - 316.2799377441406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あるCraigslistに偽広告を掲載し,それに対するスパム", - "origin": [ - 315.92987060546875, - 313.2099304199219 - ], - "bbox": [ - 315.92987060546875, - 302.50994873046875, - 552.5059204101562, - 316.2799377441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.92987060546875, - 302.50994873046875, - 552.5059204101562, - 316.2799377441406 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 315.79986572265625, - 317.5299377441406, - 552.6728515625, - 331.25994873046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集を実施した[18]. この研究では,同サイトの正規利", - "origin": [ - 315.79986572265625, - 328.18994140625 - ], - "bbox": [ - 315.79986572265625, - 317.5299377441406, - 552.6728515625, - 331.25994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.79986572265625, - 317.5299377441406, - 552.6728515625, - 331.25994873046875 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.95989990234375, - 332.61993408203125, - 552.491943359375, - 361.0899353027344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "用者が誤って当該広告に連絡する可能性がある. このと", - "origin": [ - 316.05987548828125, - 343.0199279785156 - ], - "bbox": [ - 316.05987548828125, - 332.61993408203125, - 552.4468994140625, - 346.0899353027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.05987548828125, - 332.61993408203125, - 552.4468994140625, - 346.0899353027344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "き,著者らは研究目的を明かし,適切な対応を取る手続", - "origin": [ - 315.95989990234375, - 358.0199279785156 - ], - "bbox": [ - 315.95989990234375, - 347.61993408203125, - 552.491943359375, - 361.0899353027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.95989990234375, - 347.61993408203125, - 552.491943359375, - 361.0899353027344 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 390.35992431640625, - 629.48779296875, - 524.1914672851562, - 654.9657592773438 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "-� 転", - "origin": [ - 474.60992431640625, - 634.789794921875 - ], - "bbox": [ - 474.60992431640625, - 629.48779296875, - 491.5281677246094, - 636.4727783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 474.60992431640625, - 629.48779296875, - 491.5281677246094, - 636.4727783203125 - ] - }, - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": ".,,,, 油釦ttToS/lt町.,,,_,.,,._(e,>br叫T砥n<>d!匹-叩,呻,.}", - "origin": [ - 390.84991455078125, - 639.9097900390625 - ], - "bbox": [ - 390.84991455078125, - 634.6077880859375, - 524.1914672851562, - 641.5927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.84991455078125, - 634.6077880859375, - 524.1914672851562, - 641.5927734375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "-", - "origin": [ - 390.35992431640625, - 648.7097778320312 - ], - "bbox": [ - 390.35992431640625, - 640.3897705078125, - 433.1999206542969, - 651.165771484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.35992431640625, - 640.3897705078125, - 433.1999206542969, - 651.165771484375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "--―唸肛", - "origin": [ - 453.47991943359375, - 645.289794921875 - ], - "bbox": [ - 453.47991943359375, - 636.9697875976562, - 490.0799255371094, - 647.7457885742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.47991943359375, - 636.9697875976562, - 490.0799255371094, - 647.7457885742188 - ] - }, - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "疇W\\\\Hlll(c,q.a細", - "origin": [ - 391.0799255371094, - 652.509765625 - ], - "bbox": [ - 391.0799255371094, - 647.207763671875, - 435.35498046875, - 654.1927490234375 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "'\"\"'T,", - "origin": [ - 435.24993896484375, - 652.509765625 - ], - "bbox": [ - 435.24993896484375, - 644.1897583007812, - 448.69793701171875, - 654.9657592773438 - ] - }, - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "磁匹血鴫り", - "origin": [ - 447.25994873046875, - 652.509765625 - ], - "bbox": [ - 447.25994873046875, - 647.207763671875, - 477.6199645996094, - 654.1927490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.0799255371094, - 644.1897583007812, - 477.6199645996094, - 654.9657592773438 - ] - }, - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "●が一•四", - "origin": [ - 483.0292663574219, - 652.509765625 - ], - "bbox": [ - 483.0292663574219, - 647.207763671875, - 516.0292358398438, - 654.1927490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.0292663574219, - 647.207763671875, - 516.0292358398438, - 654.1927490234375 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 391.3299560546875, - 684.9378051757812, - 524.2219848632812, - 691.9227905273438 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "hヽIOI...,., OI Tu::Jloollllo,otc. (e.g. 切磁ToS,nod心叫四,1, 血", - "origin": [ - 391.3299560546875, - 690.2398071289062 - ], - "bbox": [ - 391.3299560546875, - 684.9378051757812, - 521.569091796875, - 691.9227905273438 - ] - }, - { - "size": 3.5, - "flags": 4, - "font": "*MS PGothic-10218", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": ".", - "origin": [ - 521.449951171875, - 690.2398071289062 - ], - "bbox": [ - 521.449951171875, - 686.8657836914062, - 522.2899780273438, - 691.310791015625 - ] - }, - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "}", - "origin": [ - 522.6599731445312, - 690.2398071289062 - ], - "bbox": [ - 522.6599731445312, - 684.9378051757812, - 524.2219848632812, - 691.9227905273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.3299560546875, - 684.9378051757812, - 524.2219848632812, - 691.9227905273438 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 226.30995178222656, - 727.5497436523438, - 385.3280029296875, - 741.4898071289062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "図1: 決定木で表現した倫理指針の例", - "origin": [ - 226.30995178222656, - 738.4197998046875 - ], - "bbox": [ - 226.30995178222656, - 727.5497436523438, - 385.3280029296875, - 741.4898071289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 226.30995178222656, - 727.5497436523438, - 385.3280029296875, - 741.4898071289062 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 303.7299499511719, - 751.3597412109375, - 310.6699523925781, - 764.8297729492188 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "6 ", - "origin": [ - 303.7299499511719, - 761.759765625 - ], - "bbox": [ - 303.7299499511719, - 751.3597412109375, - 310.6699523925781, - 764.8297729492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 303.7299499511719, - 751.3597412109375, - 310.6699523925781, - 764.8297729492188 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 70, - 396.4499206542969, - 538, - 604 - ], - "image_path": "images/5_70_396_538_604.jpg" - } - ], - "tables": [ - { - "bbox": [ - 68.64, - 397.4499206542969, - 537.5999999999999, - 603.9717407226562 - ], - "image_path": "tables/5_68_397_537_603.jpg" - } - ], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 59.170013427734375, - 22.859949111938477, - 296.20367431640625, - 361.0899353027344 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.72998046875, - 22.859949111938477, - 552.719970703125, - 361.0899353027344 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 397.4499206542969, - 612.0, - 764.8297729492188 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 59.40999984741211, - 22.870019912719727, - 295.9579772949219, - 36.34001922607422 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "個人識別子の削除を施していたものもあった[17,18, 19]. ", - "origin": [ - 59.40999984741211, - 33.27001953125 - ], - "bbox": [ - 59.40999984741211, - 22.870019912719727, - 295.9579772949219, - 36.34001922607422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 22.870019912719727, - 295.9579772949219, - 36.34001922607422 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 59.399993896484375, - 34.390037536621094, - 296.01397705078125, - 81.43999481201172 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "デ", - "origin": [ - 59.58000183105469, - 48.46002197265625 - ], - "bbox": [ - 59.58000183105469, - 38.060020446777344, - 69.01000213623047, - 51.53002166748047 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 69.1300048828125, - 44.7900390625 - ], - "bbox": [ - 69.1300048828125, - 38.0300407409668, - 77.89200592041016, - 46.78553771972656 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 77.89200592041016, - 44.7900390625 - ], - "bbox": [ - 77.89200592041016, - 34.390037536621094, - 79.45000457763672, - 51.57006072998047 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タの保管のみならず,送信時にも安全な送信方法の", - "origin": [ - 79.45000457763672, - 48.50006103515625 - ], - "bbox": [ - 79.45000457763672, - 37.920066833496094, - 295.9599914550781, - 51.57006072998047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.58000183105469, - 34.390037536621094, - 295.9599914550781, - 51.57006072998047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "みを利用することを記している論文も存在する[18]. い", - "origin": [ - 59.399993896484375, - 63.2900390625 - ], - "bbox": [ - 59.399993896484375, - 52.890037536621094, - 295.95001220703125, - 66.36003875732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.399993896484375, - 52.890037536621094, - 295.95001220703125, - 66.36003875732422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "くつかの論文では,実験の後に収集したデ", - "origin": [ - 59.46000671386719, - 78.21002197265625 - ], - "bbox": [ - 59.46000671386719, - 67.81002044677734, - 239.17071533203125, - 81.43999481201172 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 239.30001831054688, - 74.5899658203125 - ], - "bbox": [ - 239.30001831054688, - 67.82996368408203, - 248.06201171875, - 76.58546447753906 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 248.06201171875, - 74.5899658203125 - ], - "bbox": [ - 248.06201171875, - 64.1899642944336, - 249.63002014160156, - 81.29998016357422 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを破棄し", - "origin": [ - 249.63002014160156, - 78.22998046875 - ], - "bbox": [ - 249.63002014160156, - 67.8299789428711, - 296.01397705078125, - 81.29998016357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.46000671386719, - 64.1899642944336, - 296.01397705078125, - 81.43999481201172 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 59.430023193359375, - 82.67000579833984, - 208.06800842285156, - 96.37999725341797 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ていることを明示している[5,19]. ", - "origin": [ - 59.430023193359375, - 93.30999755859375 - ], - "bbox": [ - 59.430023193359375, - 82.67000579833984, - 208.06800842285156, - 96.37999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.430023193359375, - 82.67000579833984, - 208.06800842285156, - 96.37999725341797 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.170013427734375, - 105.8800277709961, - 149.3904266357422, - 119.35002899169922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1.3 ", - "origin": [ - 59.170013427734375, - 116.280029296875 - ], - "bbox": [ - 59.170013427734375, - 105.8800277709961, - 85.16451263427734, - 119.35002899169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.170013427734375, - 105.8800277709961, - 85.16451263427734, - 119.35002899169922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Autonomy ", - "origin": [ - 94.69001770019531, - 116.280029296875 - ], - "bbox": [ - 94.69001770019531, - 105.8800277709961, - 149.3904266357422, - 119.35002899169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 94.69001770019531, - 105.8800277709961, - 149.3904266357422, - 119.35002899169922 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 59.46001434326172, - 123.45003509521484, - 295.9061584472656, - 151.4200439453125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本項目では,第三者の持つシステムや人に対する干渉", - "origin": [ - 69.00001525878906, - 133.85003662109375 - ], - "bbox": [ - 69.00001525878906, - 123.45003509521484, - 295.9061584472656, - 136.9200439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.00001525878906, - 123.45003509521484, - 295.9061584472656, - 136.9200439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に言及している.", - "origin": [ - 59.46001434326172, - 148.35003662109375 - ], - "bbox": [ - 59.46001434326172, - 137.95004272460938, - 128.64732360839844, - 151.4200439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.46001434326172, - 137.95004272460938, - 128.64732360839844, - 151.4200439453125 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 69.25001525878906, - 153.07003784179688, - 295.9308776855469, - 166.5400390625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "同意を得たのちに第三者のシステムにアクセスするこ", - "origin": [ - 69.25001525878906, - 163.47003173828125 - ], - "bbox": [ - 69.25001525878906, - 153.07003784179688, - 295.9308776855469, - 166.5400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.25001525878906, - 153.07003784179688, - 295.9308776855469, - 166.5400390625 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 59.28001403808594, - 168.24002075195312, - 296.1716613769531, - 196.60003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "とは受け入れられるが,研究によって与える影響は考慮", - "origin": [ - 59.37001419067383, - 178.6400146484375 - ], - "bbox": [ - 59.37001419067383, - 168.24002075195312, - 296.1716613769531, - 181.71002197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.37001419067383, - 168.24002075195312, - 296.1716613769531, - 181.71002197265625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "しなければならないアクセスの影響が測れず,同意な", - "origin": [ - 59.28001403808594, - 193.530029296875 - ], - "bbox": [ - 59.28001403808594, - 183.13003540039062, - 295.9940490722656, - 196.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.28001403808594, - 183.13003540039062, - 295.9940490722656, - 196.60003662109375 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 59.46001434326172, - 198.01004028320312, - 295.9774169921875, - 211.6600341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "くシステムにアクセスするのであれば,それは非倫理的", - "origin": [ - 59.46001434326172, - 208.59002685546875 - ], - "bbox": [ - 59.46001434326172, - 198.01004028320312, - 295.9774169921875, - 211.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.46001434326172, - 198.01004028320312, - 295.9774169921875, - 211.6600341796875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 59.38001251220703, - 212.70004272460938, - 295.78753662109375, - 226.49005126953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "である. たとえば,ボットネットの操作に関する研究論", - "origin": [ - 59.38001251220703, - 223.4200439453125 - ], - "bbox": [ - 59.38001251220703, - 212.70004272460938, - 295.78753662109375, - 226.49005126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.38001251220703, - 212.70004272460938, - 295.78753662109375, - 226.49005126953125 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.19001770019531, - 226.74903869628906, - 296.1480407714844, - 256.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "文が存在する", - "origin": [ - 59.19001770019531, - 238.34002685546875 - ], - "bbox": [ - 59.19001770019531, - 227.94003295898438, - 116.41001892089844, - 241.4100341796875 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "*MS PMincho-10220", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " [20].", - "origin": [ - 116.41001892089844, - 238.34002685546875 - ], - "bbox": [ - 116.41001892089844, - 226.74903869628906, - 136.4564208984375, - 245.80902099609375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " 当該論文の中で著者は感染したボッ", - "origin": [ - 136.4564208984375, - 237.98004150390625 - ], - "bbox": [ - 136.4564208984375, - 227.58004760742188, - 296.1480407714844, - 241.570068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.19001770019531, - 226.74903869628906, - 296.1480407714844, - 245.80902099609375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トに未承認のコミュニケ", - "origin": [ - 59.56001281738281, - 253.23004150390625 - ], - "bbox": [ - 59.56001281738281, - 242.83004760742188, - 162.8440399169922, - 256.300048828125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 163.69000244140625, - 249.71002197265625 - ], - "bbox": [ - 163.69000244140625, - 242.9500274658203, - 172.45199584960938, - 251.7055206298828 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ションを用いることで攻撃が", - "origin": [ - 173.02000427246094, - 253.19000244140625 - ], - "bbox": [ - 173.02000427246094, - 242.79000854492188, - 295.8443908691406, - 256.260009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.56001281738281, - 242.79000854492188, - 295.8443908691406, - 256.300048828125 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.320003509521484, - 257.9599914550781, - 296.20367431640625, - 316.0799865722656 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "でき,脆弱性を利用することで時にボットの感染を止め", - "origin": [ - 59.58000183105469, - 268.3599853515625 - ], - "bbox": [ - 59.58000183105469, - 257.9599914550781, - 295.5987854003906, - 271.42999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.58000183105469, - 257.9599914550781, - 295.5987854003906, - 271.42999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ることができると述べている. しかしながら,その", - "origin": [ - 59.320003509521484, - 283.3599853515625 - ], - "bbox": [ - 59.320003509521484, - 272.9599914550781, - 276.97161865234375, - 286.42999267578125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 277.1000061035156, - 279.17999267578125 - ], - "bbox": [ - 277.1000061035156, - 272.41998291015625, - 286.2195129394531, - 281.1755065917969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "方", - "origin": [ - 286.3800048828125, - 283.22998046875 - ], - "bbox": [ - 286.3800048828125, - 272.8299865722656, - 295.94000244140625, - 286.29998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.320003509521484, - 272.41998291015625, - 295.94000244140625, - 286.42999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "でその手法は付帯的損害を発生させるため,非倫理的で", - "origin": [ - 59.3800048828125, - 298.1099853515625 - ], - "bbox": [ - 59.3800048828125, - 287.7099914550781, - 295.9680480957031, - 301.17999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.3800048828125, - 287.7099914550781, - 295.9680480957031, - 301.17999267578125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あるとしている. 別のボットネットに対する研究[5]に", - "origin": [ - 59.3700065612793, - 313.0099792480469 - ], - "bbox": [ - 59.3700065612793, - 302.6099853515625, - 296.20367431640625, - 316.0799865722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.3700065612793, - 302.6099853515625, - 296.20367431640625, - 316.0799865722656 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 59.32000732421875, - 317.9499816894531, - 296.0215759277344, - 360.97998046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "おいて,彼らは意図的に被害を出すことを非倫理的であ", - "origin": [ - 59.88999938964844, - 328.3499755859375 - ], - "bbox": [ - 59.88999938964844, - 317.9499816894531, - 295.9342346191406, - 331.41998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.88999938964844, - 317.9499816894531, - 295.9342346191406, - 331.41998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るとしている. しかしながら,我々の倫理指針の中では", - "origin": [ - 59.32000732421875, - 342.9399719238281 - ], - "bbox": [ - 59.32000732421875, - 332.53997802734375, - 295.84698486328125, - 346.0099792480469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.32000732421875, - 332.53997802734375, - 295.84698486328125, - 346.0099792480469 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "何もしないことを非倫理的としている. すなわち,影響", - "origin": [ - 59.410003662109375, - 357.90997314453125 - ], - "bbox": [ - 59.410003662109375, - 347.5099792480469, - 296.0215759277344, - 360.97998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.410003662109375, - 347.5099792480469, - 296.0215759277344, - 360.97998046875 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 315.8399963378906, - 22.859949111938477, - 552.390625, - 51.36992645263672 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "がないことを想定するだけでなく,影響の度合いを評価", - "origin": [ - 315.8900146484375, - 33.469970703125 - ], - "bbox": [ - 315.8900146484375, - 22.859949111938477, - 552.390625, - 36.53997039794922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8900146484375, - 22.859949111938477, - 552.390625, - 36.53997039794922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "しなければならない", - "origin": [ - 315.8399963378906, - 48.2999267578125 - ], - "bbox": [ - 315.8399963378906, - 37.899925231933594, - 411.75799560546875, - 51.36992645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8399963378906, - 37.899925231933594, - 411.75799560546875, - 51.36992645263672 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 315.92999267578125, - 49.179893493652344, - 552.491943359375, - 81.16991424560547 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "自動的にデ", - "origin": [ - 327.1300048828125, - 63.33990478515625 - ], - "bbox": [ - 327.1300048828125, - 52.939903259277344, - 373.8135986328125, - 66.40990447998047 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 374.05999755859375, - 59.57989501953125 - ], - "bbox": [ - 374.05999755859375, - 52.81989669799805, - 382.8219909667969, - 61.57539367675781 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 382.8219909667969, - 59.57989501953125 - ], - "bbox": [ - 382.8219909667969, - 49.179893493652344, - 384.6199951171875, - 66.45989227294922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを収集する際にも配慮が必要である.", - "origin": [ - 384.6199951171875, - 63.389892578125 - ], - "bbox": [ - 384.6199951171875, - 52.989891052246094, - 549.970947265625, - 66.45989227294922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.1300048828125, - 49.179893493652344, - 549.970947265625, - 66.45989227294922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ある研究では,Webサイトから大量にデ", - "origin": [ - 315.92999267578125, - 78.09991455078125 - ], - "bbox": [ - 315.92999267578125, - 67.69991302490234, - 486.7039489746094, - 81.16991424560547 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 486.72998046875, - 74.45989990234375 - ], - "bbox": [ - 486.72998046875, - 67.69989776611328, - 495.4919738769531, - 76.45539855957031 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 495.4919738769531, - 74.45989990234375 - ], - "bbox": [ - 495.4919738769531, - 64.05989837646484, - 497.0599670410156, - 81.10991668701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを収集する", - "origin": [ - 497.0599670410156, - 78.0399169921875 - ], - "bbox": [ - 497.0599670410156, - 67.6399154663086, - 552.491943359375, - 81.10991668701172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.92999267578125, - 64.05989837646484, - 552.491943359375, - 81.16991424560547 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 315.949951171875, - 82.7699203491211, - 552.507568359375, - 111.47997283935547 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ことを目的としているが,それぞれのサイトでは過度の", - "origin": [ - 315.949951171875, - 93.169921875 - ], - "bbox": [ - 315.949951171875, - 82.7699203491211, - 552.4779663085938, - 96.23992156982422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.949951171875, - 82.7699203491211, - 552.4779663085938, - 96.23992156982422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "アクセスを実施していない[14]. 同様に Webサイトの", - "origin": [ - 316.2099609375, - 107.949951171875 - ], - "bbox": [ - 316.2099609375, - 97.5499496459961, - 552.507568359375, - 111.47997283935547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.2099609375, - 97.5499496459961, - 552.507568359375, - 111.47997283935547 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 315.8299560546875, - 109.0300521850586, - 552.5903930664062, - 126.10002899169922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "スクレイピングに関しては,既存のデ", - "origin": [ - 315.8299560546875, - 123.030029296875 - ], - "bbox": [ - 315.8299560546875, - 112.6300277709961, - 476.6531982421875, - 126.10002899169922 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 476.76995849609375, - 119.4300537109375 - ], - "bbox": [ - 476.76995849609375, - 112.67005157470703, - 485.5319519042969, - 121.42555236816406 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 485.5319519042969, - 119.4300537109375 - ], - "bbox": [ - 485.5319519042969, - 109.0300521850586, - 487.0999450683594, - 126.10002899169922 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タベ", - "origin": [ - 487.0999450683594, - 123.030029296875 - ], - "bbox": [ - 487.0999450683594, - 112.6300277709961, - 504.7393493652344, - 126.10002899169922 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 505.3499450683594, - 119.3900146484375 - ], - "bbox": [ - 505.3499450683594, - 112.63001251220703, - 514.1119384765625, - 121.38551330566406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "スを利用", - "origin": [ - 514.4599609375, - 122.94000244140625 - ], - "bbox": [ - 514.4599609375, - 112.54000091552734, - 552.5903930664062, - 126.01000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8299560546875, - 109.0300521850586, - 552.5903930664062, - 126.10002899169922 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 315.8499755859375, - 124.00997161865234, - 552.5800170898438, - 155.88995361328125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "することでサ", - "origin": [ - 315.9599609375, - 137.95001220703125 - ], - "bbox": [ - 315.9599609375, - 127.55001068115234, - 372.6965026855469, - 141.02001953125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 372.969970703125, - 134.3800048828125 - ], - "bbox": [ - 372.969970703125, - 127.62000274658203, - 381.7319641113281, - 136.37550354003906 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "バに対する新たな負荷をかけずにデ", - "origin": [ - 382.3399658203125, - 137.97998046875 - ], - "bbox": [ - 382.3399658203125, - 127.5799789428711, - 533.784912109375, - 141.04998779296875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 533.7899780273438, - 134.40997314453125 - ], - "bbox": [ - 533.7899780273438, - 127.64997100830078, - 542.552001953125, - 136.4054718017578 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 542.552001953125, - 134.40997314453125 - ], - "bbox": [ - 542.552001953125, - 124.00997161865234, - 544.1199951171875, - 141.0799560546875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タ", - "origin": [ - 544.1199951171875, - 138.00994873046875 - ], - "bbox": [ - 544.1199951171875, - 127.60994720458984, - 552.5800170898438, - 141.0799560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9599609375, - 124.00997161865234, - 552.5800170898438, - 141.0799560546875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を収集する研究も存在する.", - "origin": [ - 315.8499755859375, - 152.48992919921875 - ], - "bbox": [ - 315.8499755859375, - 142.08993530273438, - 433.0903625488281, - 155.88995361328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8499755859375, - 142.08993530273438, - 433.0903625488281, - 155.88995361328125 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 315.72998046875, - 165.63992309570312, - 498.7191467285156, - 179.10992431640625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1.4 ", - "origin": [ - 315.72998046875, - 176.0399169921875 - ], - "bbox": [ - 315.72998046875, - 165.63992309570312, - 342.14898681640625, - 179.10992431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.72998046875, - 165.63992309570312, - 342.14898681640625, - 179.10992431640625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "Human and Animal Subjects ", - "origin": [ - 351.2499694824219, - 176.0399169921875 - ], - "bbox": [ - 351.2499694824219, - 165.63992309570312, - 498.7191467285156, - 179.10992431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.2499694824219, - 165.63992309570312, - 498.7191467285156, - 179.10992431640625 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 316.02996826171875, - 183.32992553710938, - 552.719970703125, - 211.2799072265625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本倫理指針では人や動物に対する被験者実験を慎重に", - "origin": [ - 325.5699462890625, - 193.72991943359375 - ], - "bbox": [ - 325.5699462890625, - 183.32992553710938, - 552.719970703125, - 197.179931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5699462890625, - 183.32992553710938, - 552.719970703125, - 197.179931640625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "実施することを求めている.", - "origin": [ - 316.02996826171875, - 208.20989990234375 - ], - "bbox": [ - 316.02996826171875, - 197.80990600585938, - 432.9639587402344, - 211.2799072265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.02996826171875, - 197.80990600585938, - 432.9639587402344, - 211.2799072265625 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 315.87994384765625, - 212.4899444580078, - 552.4657592773438, - 241.50994873046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "被験者実験の", - "origin": [ - 325.5599365234375, - 223.47991943359375 - ], - "bbox": [ - 325.5599365234375, - 213.07992553710938, - 382.3258972167969, - 226.5499267578125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 382.3299255371094, - 219.24993896484375 - ], - "bbox": [ - 382.3299255371094, - 212.4899444580078, - 391.4494323730469, - 221.2454376220703 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "部では事前に同意を得られないものも", - "origin": [ - 391.8099365234375, - 223.59991455078125 - ], - "bbox": [ - 391.8099365234375, - 213.19992065429688, - 552.4657592773438, - 226.669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5599365234375, - 212.4899444580078, - 552.4657592773438, - 226.669921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "存在する. そのような場合,メンロレポ", - "origin": [ - 315.87994384765625, - 238.43994140625 - ], - "bbox": [ - 315.87994384765625, - 228.03994750976562, - 485.7575988769531, - 241.50994873046875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 486.37994384765625, - 234.73992919921875 - ], - "bbox": [ - 486.37994384765625, - 227.9799346923828, - 495.1419372558594, - 236.7354278564453 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "トにも記載さ", - "origin": [ - 495.7799377441406, - 238.409912109375 - ], - "bbox": [ - 495.7799377441406, - 228.00991821289062, - 552.4339599609375, - 241.47991943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.87994384765625, - 227.9799346923828, - 552.4339599609375, - 241.50994873046875 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 315.93994140625, - 242.84994506835938, - 552.4998779296875, - 271.2999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "れていたように実験後に十分な説明を行わなくてはなら", - "origin": [ - 315.9699401855469, - 253.419921875 - ], - "bbox": [ - 315.9699401855469, - 242.84994506835938, - 552.407958984375, - 256.63995361328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9699401855469, - 242.84994506835938, - 552.407958984375, - 256.63995361328125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ないたとえば,ある研究ではソ", - "origin": [ - 315.93994140625, - 268.22991943359375 - ], - "bbox": [ - 315.93994140625, - 257.8299255371094, - 456.6043395996094, - 271.2999267578125 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 456.6043395996094, - 268.22991943359375 - ], - "bbox": [ - 456.6043395996094, - 257.86993408203125, - 457.8099365234375, - 270.2254333496094 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 457.8099365234375, - 264.62994384765625 - ], - "bbox": [ - 457.8099365234375, - 257.86993408203125, - 466.5719299316406, - 266.6254577636719 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "シャルネットワ", - "origin": [ - 467.1399230957031, - 268.169921875 - ], - "bbox": [ - 467.1399230957031, - 257.7699279785156, - 532.695556640625, - 271.23992919921875 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 532.695556640625, - 268.169921875 - ], - "bbox": [ - 532.695556640625, - 257.8099365234375, - 533.7799072265625, - 270.1654357910156 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 533.7799072265625, - 264.5699462890625 - ], - "bbox": [ - 533.7799072265625, - 257.8099365234375, - 542.5419311523438, - 266.5654602050781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ク", - "origin": [ - 543.0299072265625, - 268.0499267578125 - ], - "bbox": [ - 543.0299072265625, - 257.6499328613281, - 552.4998779296875, - 271.11993408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.93994140625, - 257.6499328613281, - 552.4998779296875, - 271.2999267578125 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 315.94989013671875, - 272.7999267578125, - 552.4022216796875, - 305.6689147949219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "上で被験者を願したものの,検証の終わりにそれを明ら", - "origin": [ - 316.07989501953125, - 283.1999206542969 - ], - "bbox": [ - 316.07989501953125, - 272.7999267578125, - 552.376220703125, - 286.2699279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.07989501953125, - 272.7999267578125, - 552.376220703125, - 286.2699279785156 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "かにした", - "origin": [ - 315.94989013671875, - 298.1999206542969 - ], - "bbox": [ - 315.94989013671875, - 287.7999267578125, - 353.955078125, - 301.2699279785156 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "*MS PMincho-10220", - "color": 0, - "ascender": 1.0210000276565552, - "descender": -0.6790000200271606, - "text": " [21].", - "origin": [ - 353.955078125, - 298.1999206542969 - ], - "bbox": [ - 353.955078125, - 286.96893310546875, - 373.936279296875, - 305.6689147949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.94989013671875, - 286.96893310546875, - 373.936279296875, - 305.6689147949219 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "また別の研究ではコミュニティサイトで", - "origin": [ - 382.3398742675781, - 298.1999206542969 - ], - "bbox": [ - 382.3398742675781, - 287.7999267578125, - 552.4022216796875, - 301.2699279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.3398742675781, - 287.7999267578125, - 552.4022216796875, - 301.2699279785156 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 315.92987060546875, - 302.50994873046875, - 552.5059204101562, - 316.2799377441406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "あるCraigslistに偽広告を掲載し,それに対するスパム", - "origin": [ - 315.92987060546875, - 313.2099304199219 - ], - "bbox": [ - 315.92987060546875, - 302.50994873046875, - 552.5059204101562, - 316.2799377441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.92987060546875, - 302.50994873046875, - 552.5059204101562, - 316.2799377441406 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 315.79986572265625, - 317.5299377441406, - 552.6728515625, - 331.25994873046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "収集を実施した[18]. この研究では,同サイトの正規利", - "origin": [ - 315.79986572265625, - 328.18994140625 - ], - "bbox": [ - 315.79986572265625, - 317.5299377441406, - 552.6728515625, - 331.25994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.79986572265625, - 317.5299377441406, - 552.6728515625, - 331.25994873046875 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.95989990234375, - 332.61993408203125, - 552.491943359375, - 361.0899353027344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "用者が誤って当該広告に連絡する可能性がある. このと", - "origin": [ - 316.05987548828125, - 343.0199279785156 - ], - "bbox": [ - 316.05987548828125, - 332.61993408203125, - 552.4468994140625, - 346.0899353027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.05987548828125, - 332.61993408203125, - 552.4468994140625, - 346.0899353027344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "き,著者らは研究目的を明かし,適切な対応を取る手続", - "origin": [ - 315.95989990234375, - 358.0199279785156 - ], - "bbox": [ - 315.95989990234375, - 347.61993408203125, - 552.491943359375, - 361.0899353027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.95989990234375, - 347.61993408203125, - 552.491943359375, - 361.0899353027344 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 70.19992065429688, - 397.4499206542969, - 423.8139343261719, - 441.1258850097656 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表4: 倫理指針のメインクラスとその直下のサブクラス", - "origin": [ - 188.0399169921875, - 407.84991455078125 - ], - "bbox": [ - 188.0399169921875, - 397.4499206542969, - 423.8139343261719, - 410.919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.0399169921875, - 397.4499206542969, - 423.8139343261719, - 410.919921875 - ] - }, - { - "spans": [ - { - "size": 13.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10215", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "l", - "origin": [ - 70.19992065429688, - 417.08990478515625 - ], - "bbox": [ - 70.19992065429688, - 403.0498962402344, - 71.8739242553711, - 421.2344055175781 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " メインクラス", - "origin": [ - 71.8739242553711, - 417.08990478515625 - ], - "bbox": [ - 71.8739242553711, - 408.7698974609375, - 122.50642395019531, - 419.5458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.19992065429688, - 403.0498962402344, - 122.50642395019531, - 421.2344055175781 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Software Examination", - "origin": [ - 76.91991424560547, - 428.639892578125 - ], - "bbox": [ - 76.91991424560547, - 420.5918884277344, - 158.55690002441406, - 431.2319030761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.91991424560547, - 420.5918884277344, - 158.55690002441406, - 431.2319030761719 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(他人に作成されたプログラムの理解に関する項目)", - "origin": [ - 81.2799072265625, - 438.6698913574219 - ], - "bbox": [ - 81.2799072265625, - 430.3498840332031, - 256.1622009277344, - 441.1258850097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.2799072265625, - 430.3498840332031, - 256.1622009277344, - 441.1258850097656 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 76.7999038696289, - 458.99188232421875, - 286.4299621582031, - 479.515869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Privacy ", - "origin": [ - 76.7999038696289, - 467.0398864746094 - ], - "bbox": [ - 76.7999038696289, - 458.99188232421875, - 106.62458801269531, - 469.63189697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.7999038696289, - 458.99188232421875, - 106.62458801269531, - 469.63189697265625 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(第三者の人またはシステムに関する情報管理に関する項目)", - "origin": [ - 81.47990417480469, - 477.05987548828125 - ], - "bbox": [ - 81.47990417480469, - 468.7398681640625, - 286.4299621582031, - 479.515869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47990417480469, - 468.7398681640625, - 286.4299621582031, - 479.515869140625 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 76.7999038696289, - 497.3818664550781, - 216.0727996826172, - 537.5958862304688 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Autonomy ", - "origin": [ - 76.7999038696289, - 505.42987060546875 - ], - "bbox": [ - 76.7999038696289, - 497.3818664550781, - 117.23748779296875, - 508.0218811035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.7999038696289, - 497.3818664550781, - 117.23748779296875, - 508.0218811035156 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(第三者のシステムに作用する項目)", - "origin": [ - 81.47990417480469, - 515.33984375 - ], - "bbox": [ - 81.47990417480469, - 507.01983642578125, - 202.07191467285156, - 517.7958374023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47990417480469, - 507.01983642578125, - 202.07191467285156, - 517.7958374023438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Human and Animal Subjects Testing ", - "origin": [ - 76.7999038696289, - 524.869873046875 - ], - "bbox": [ - 76.7999038696289, - 516.8218994140625, - 216.0727996826172, - 527.4618530273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.7999038696289, - 516.8218994140625, - 216.0727996826172, - 527.4618530273438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(被験者実験に関する項目)", - "origin": [ - 81.47989654541016, - 535.139892578125 - ], - "bbox": [ - 81.47989654541016, - 526.8198852539062, - 171.59707641601562, - 537.5958862304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47989654541016, - 526.8198852539062, - 171.59707641601562, - 537.5958862304688 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 76.9198989868164, - 564.7119140625, - 255.9355010986328, - 585.4258422851562 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "General Rules ", - "origin": [ - 76.9198989868164, - 572.7598876953125 - ], - "bbox": [ - 76.9198989868164, - 564.7119140625, - 130.50689697265625, - 575.3518676757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.9198989868164, - 564.7119140625, - 130.50689697265625, - 575.3518676757812 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(指針自体に関する項目や全体的に適用可能な項目)", - "origin": [ - 81.47989654541016, - 582.9698486328125 - ], - "bbox": [ - 81.47989654541016, - 574.6498413085938, - 255.9355010986328, - 585.4258422851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47989654541016, - 574.6498413085938, - 255.9355010986328, - 585.4258422851562 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 97.07989501953125, - 665.9778442382812, - 139.68209838867188, - 672.9628295898438 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "Vul旧r祉叫Resea,ch", - "origin": [ - 97.07989501953125, - 671.2798461914062 - ], - "bbox": [ - 97.07989501953125, - 665.9778442382812, - 139.68209838867188, - 672.9628295898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.07989501953125, - 665.9778442382812, - 139.68209838867188, - 672.9628295898438 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 327.95989990234375, - 403.0198669433594, - 489.7080078125, - 603.9717407226562 - ], - "lines": [ - { - "spans": [ - { - "size": 13.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10215", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "l", - "origin": [ - 327.95989990234375, - 417.05987548828125 - ], - "bbox": [ - 327.95989990234375, - 403.0198669433594, - 330.3629150390625, - 421.2043762207031 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " メインクラス直下のサブクラス", - "origin": [ - 330.3629150390625, - 417.05987548828125 - ], - "bbox": [ - 330.3629150390625, - 408.7398681640625, - 442.4429016113281, - 419.515869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.95989990234375, - 403.0198669433594, - 442.4429016113281, - 421.2043762207031 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Vulnerability Research", - "origin": [ - 335.2898864746094, - 428.6398620605469 - ], - "bbox": [ - 335.2898864746094, - 420.59185791015625, - 419.10272216796875, - 431.23187255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2898864746094, - 420.59185791015625, - 419.10272216796875, - 431.23187255859375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Reverse Engineering", - "origin": [ - 335.4898986816406, - 438.2398681640625 - ], - "bbox": [ - 335.4898986816406, - 430.1918640136719, - 410.3529052734375, - 440.8318786621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4898986816406, - 430.1918640136719, - 410.3529052734375, - 440.8318786621094 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Malware", - "origin": [ - 335.5198974609375, - 447.7098693847656 - ], - "bbox": [ - 335.5198974609375, - 439.661865234375, - 366.7986755371094, - 450.3018798828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5198974609375, - 439.661865234375, - 366.7986755371094, - 450.3018798828125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Disclosure", - "origin": [ - 335.3099060058594, - 457.1998596191406 - ], - "bbox": [ - 335.3099060058594, - 449.15185546875, - 373.1481018066406, - 459.7918701171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3099060058594, - 449.15185546875, - 373.1481018066406, - 459.7918701171875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Collecting Data", - "origin": [ - 335.5198974609375, - 467.03985595703125 - ], - "bbox": [ - 335.5198974609375, - 458.9918518066406, - 393.5050964355469, - 469.6318664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5198974609375, - 458.9918518066406, - 393.5050964355469, - 469.6318664550781 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Handling Data", - "origin": [ - 335.39990234375, - 476.6398620605469 - ], - "bbox": [ - 335.39990234375, - 468.59185791015625, - 389.91510009765625, - 479.23187255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39990234375, - 468.59185791015625, - 389.91510009765625, - 479.23187255859375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Publishing Data", - "origin": [ - 335.5198974609375, - 486.10986328125 - ], - "bbox": [ - 335.5198974609375, - 478.0618591308594, - 395.55511474609375, - 488.7018737792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5198974609375, - 478.0618591308594, - 395.55511474609375, - 488.7018737792969 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Transferring Data To Third Parties ", - "origin": [ - 335.0699157714844, - 495.599853515625 - ], - "bbox": [ - 335.0699157714844, - 487.5518493652344, - 468.5796813964844, - 498.1918640136719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.0699157714844, - 487.5518493652344, - 468.5796813964844, - 498.1918640136719 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Web scraping ", - "origin": [ - 335.2898864746094, - 505.4298400878906 - ], - "bbox": [ - 335.2898864746094, - 497.3818359375, - 387.2858581542969, - 508.0218505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2898864746094, - 497.3818359375, - 387.2858581542969, - 508.0218505859375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Accessing others'systems", - "origin": [ - 335.39990234375, - 515.039794921875 - ], - "bbox": [ - 335.39990234375, - 506.9917907714844, - 429.9837646484375, - 517.6317749023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39990234375, - 506.9917907714844, - 429.9837646484375, - 517.6317749023438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Deceiving human or animal test subjects", - "origin": [ - 335.5199279785156, - 524.8698120117188 - ], - "bbox": [ - 335.5199279785156, - 516.8218383789062, - 486.5213623046875, - 527.4617919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5199279785156, - 516.8218383789062, - 486.5213623046875, - 527.4617919921875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Misleading, false, or deceptive advertising", - "origin": [ - 335.51995849609375, - 534.4797973632812 - ], - "bbox": [ - 335.51995849609375, - 526.4318237304688, - 489.7080078125, - 537.07177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.51995849609375, - 526.4318237304688, - 489.7080078125, - 537.07177734375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Honeypots", - "origin": [ - 335.39996337890625, - 543.9597778320312 - ], - "bbox": [ - 335.39996337890625, - 535.9118041992188, - 374.6415710449219, - 546.5517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39996337890625, - 535.9118041992188, - 374.6415710449219, - 546.5517578125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Criminal and Unethical Services", - "origin": [ - 335.51995849609375, - 553.4298095703125 - ], - "bbox": [ - 335.51995849609375, - 545.3818359375, - 454.9013671875, - 556.0217895507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.51995849609375, - 545.3818359375, - 454.9013671875, - 556.0217895507812 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Consulting with REB or IRB", - "origin": [ - 335.2499694824219, - 562.9097900390625 - ], - "bbox": [ - 335.2499694824219, - 554.86181640625, - 443.54351806640625, - 565.5017700195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2499694824219, - 554.86181640625, - 443.54351806640625, - 565.5017700195312 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Terms of Service", - "origin": [ - 335.3999328613281, - 572.759765625 - ], - "bbox": [ - 335.3999328613281, - 564.7117919921875, - 396.5327453613281, - 575.3517456054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3999328613281, - 564.7117919921875, - 396.5327453613281, - 575.3517456054688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Ethical consistency", - "origin": [ - 335.3399353027344, - 582.3497924804688 - ], - "bbox": [ - 335.3399353027344, - 574.3018188476562, - 406.0318908691406, - 584.9417724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3399353027344, - 574.3018188476562, - 406.0318908691406, - 584.9417724609375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Documentation and Accountability", - "origin": [ - 335.5199279785156, - 591.8397827148438 - ], - "bbox": [ - 335.5199279785156, - 583.7918090820312, - 465.457275390625, - 594.4317626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5199279785156, - 583.7918090820312, - 465.457275390625, - 594.4317626953125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Definitions", - "origin": [ - 335.3999328613281, - 601.3797607421875 - ], - "bbox": [ - 335.3999328613281, - 593.331787109375, - 375.1241149902344, - 603.9717407226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3999328613281, - 593.331787109375, - 375.1241149902344, - 603.9717407226562 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 390.35992431640625, - 629.48779296875, - 524.1914672851562, - 654.9657592773438 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "-� 転", - "origin": [ - 474.60992431640625, - 634.789794921875 - ], - "bbox": [ - 474.60992431640625, - 629.48779296875, - 491.5281677246094, - 636.4727783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 474.60992431640625, - 629.48779296875, - 491.5281677246094, - 636.4727783203125 - ] - }, - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": ".,,,, 油釦ttToS/lt町.,,,_,.,,._(e,>br叫T砥n<>d!匹-叩,呻,.}", - "origin": [ - 390.84991455078125, - 639.9097900390625 - ], - "bbox": [ - 390.84991455078125, - 634.6077880859375, - 524.1914672851562, - 641.5927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.84991455078125, - 634.6077880859375, - 524.1914672851562, - 641.5927734375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "-", - "origin": [ - 390.35992431640625, - 648.7097778320312 - ], - "bbox": [ - 390.35992431640625, - 640.3897705078125, - 433.1999206542969, - 651.165771484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.35992431640625, - 640.3897705078125, - 433.1999206542969, - 651.165771484375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "--―唸肛", - "origin": [ - 453.47991943359375, - 645.289794921875 - ], - "bbox": [ - 453.47991943359375, - 636.9697875976562, - 490.0799255371094, - 647.7457885742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.47991943359375, - 636.9697875976562, - 490.0799255371094, - 647.7457885742188 - ] - }, - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "疇W\\\\Hlll(c,q.a細", - "origin": [ - 391.0799255371094, - 652.509765625 - ], - "bbox": [ - 391.0799255371094, - 647.207763671875, - 435.35498046875, - 654.1927490234375 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "'\"\"'T,", - "origin": [ - 435.24993896484375, - 652.509765625 - ], - "bbox": [ - 435.24993896484375, - 644.1897583007812, - 448.69793701171875, - 654.9657592773438 - ] - }, - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "磁匹血鴫り", - "origin": [ - 447.25994873046875, - 652.509765625 - ], - "bbox": [ - 447.25994873046875, - 647.207763671875, - 477.6199645996094, - 654.1927490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.0799255371094, - 644.1897583007812, - 477.6199645996094, - 654.9657592773438 - ] - }, - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "●が一•四", - "origin": [ - 483.0292663574219, - 652.509765625 - ], - "bbox": [ - 483.0292663574219, - 647.207763671875, - 516.0292358398438, - 654.1927490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.0292663574219, - 647.207763671875, - 516.0292358398438, - 654.1927490234375 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 390.3599548339844, - 655.997802734375, - 493.4449462890625, - 666.7227783203125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": ">-", - "origin": [ - 390.3599548339844, - 661.2998046875 - ], - "bbox": [ - 390.3599548339844, - 655.997802734375, - 396.9599609375, - 662.9827880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.3599548339844, - 655.997802734375, - 396.9599609375, - 662.9827880859375 - ] - }, - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "-•Prob血", - "origin": [ - 471.00994873046875, - 661.2998046875 - ], - "bbox": [ - 471.00994873046875, - 655.997802734375, - 492.4873962402344, - 662.9827880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 471.00994873046875, - 655.997802734375, - 492.4873962402344, - 662.9827880859375 - ] - }, - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "訓lhout叫叫UしUIWUlll , .. g, l10 11Dlka'c UllUUlll etc.) ", - "origin": [ - 391.5699462890625, - 665.039794921875 - ], - "bbox": [ - 391.5699462890625, - 659.73779296875, - 493.4449462890625, - 666.7227783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.5699462890625, - 659.73779296875, - 493.4449462890625, - 666.7227783203125 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 391.3299560546875, - 684.9378051757812, - 524.2219848632812, - 691.9227905273438 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "hヽIOI...,., OI Tu::Jloollllo,otc. (e.g. 切磁ToS,nod心叫四,1, 血", - "origin": [ - 391.3299560546875, - 690.2398071289062 - ], - "bbox": [ - 391.3299560546875, - 684.9378051757812, - 521.569091796875, - 691.9227905273438 - ] - }, - { - "size": 3.5, - "flags": 4, - "font": "*MS PGothic-10218", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": ".", - "origin": [ - 521.449951171875, - 690.2398071289062 - ], - "bbox": [ - 521.449951171875, - 686.8657836914062, - 522.2899780273438, - 691.310791015625 - ] - }, - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "}", - "origin": [ - 522.6599731445312, - 690.2398071289062 - ], - "bbox": [ - 522.6599731445312, - 684.9378051757812, - 524.2219848632812, - 691.9227905273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.3299560546875, - 684.9378051757812, - 524.2219848632812, - 691.9227905273438 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 391.3299560546875, - 697.6477661132812, - 492.01300048828125, - 704.6327514648438 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "w如n\"\"\"\"\"\"'\"°\"\"\"\"'(ag.no四に如匹誼唱も", - "origin": [ - 391.3299560546875, - 702.9497680664062 - ], - "bbox": [ - 391.3299560546875, - 697.6477661132812, - 492.01300048828125, - 704.6327514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.3299560546875, - 697.6477661132812, - 492.01300048828125, - 704.6327514648438 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 226.30995178222656, - 727.5497436523438, - 385.3280029296875, - 741.4898071289062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "図1: 決定木で表現した倫理指針の例", - "origin": [ - 226.30995178222656, - 738.4197998046875 - ], - "bbox": [ - 226.30995178222656, - 727.5497436523438, - 385.3280029296875, - 741.4898071289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 226.30995178222656, - 727.5497436523438, - 385.3280029296875, - 741.4898071289062 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 303.7299499511719, - 751.3597412109375, - 310.6699523925781, - 764.8297729492188 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "6 ", - "origin": [ - 303.7299499511719, - 761.759765625 - ], - "bbox": [ - 303.7299499511719, - 751.3597412109375, - 310.6699523925781, - 764.8297729492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 303.7299499511719, - 751.3597412109375, - 310.6699523925781, - 764.8297729492188 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 29, - "type": 0, - "bbox": [ - 97.07989501953125, - 665.9778442382812, - 139.68209838867188, - 672.9628295898438 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "Vul旧r祉叫Resea,ch", - "origin": [ - 97.07989501953125, - 671.2798461914062 - ], - "bbox": [ - 97.07989501953125, - 665.9778442382812, - 139.68209838867188, - 672.9628295898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.07989501953125, - 665.9778442382812, - 139.68209838867188, - 672.9628295898438 - ] - } - ], - "tag": "on-image" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 390.3599548339844, - 655.997802734375, - 493.4449462890625, - 666.7227783203125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": ">-", - "origin": [ - 390.3599548339844, - 661.2998046875 - ], - "bbox": [ - 390.3599548339844, - 655.997802734375, - 396.9599609375, - 662.9827880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.3599548339844, - 655.997802734375, - 396.9599609375, - 662.9827880859375 - ] - }, - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "-•Prob血", - "origin": [ - 471.00994873046875, - 661.2998046875 - ], - "bbox": [ - 471.00994873046875, - 655.997802734375, - 492.4873962402344, - 662.9827880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 471.00994873046875, - 655.997802734375, - 492.4873962402344, - 662.9827880859375 - ] - }, - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "訓lhout叫叫UしUIWUlll , .. g, l10 11Dlka'c UllUUlll etc.) ", - "origin": [ - 391.5699462890625, - 665.039794921875 - ], - "bbox": [ - 391.5699462890625, - 659.73779296875, - 493.4449462890625, - 666.7227783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.5699462890625, - 659.73779296875, - 493.4449462890625, - 666.7227783203125 - ] - } - ], - "tag": "on-image" - }, - { - "number": 34, - "type": 0, - "bbox": [ - 391.3299560546875, - 697.6477661132812, - 492.01300048828125, - 704.6327514648438 - ], - "lines": [ - { - "spans": [ - { - "size": 5.5, - "flags": 4, - "font": "*MS PGothic-10217", - "color": 0, - "ascender": 0.9639999866485596, - "descender": -0.3059999942779541, - "text": "w如n\"\"\"\"\"\"'\"°\"\"\"\"'(ag.no四に如匹誼唱も", - "origin": [ - 391.3299560546875, - 702.9497680664062 - ], - "bbox": [ - 391.3299560546875, - 697.6477661132812, - 492.01300048828125, - 704.6327514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.3299560546875, - 697.6477661132812, - 492.01300048828125, - 704.6327514648438 - ] - } - ], - "tag": "on-image" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 70.19992065429688, - 397.4499206542969, - 423.8139343261719, - 441.1258850097656 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表4: 倫理指針のメインクラスとその直下のサブクラス", - "origin": [ - 188.0399169921875, - 407.84991455078125 - ], - "bbox": [ - 188.0399169921875, - 397.4499206542969, - 423.8139343261719, - 410.919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.0399169921875, - 397.4499206542969, - 423.8139343261719, - 410.919921875 - ] - }, - { - "spans": [ - { - "size": 13.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10215", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "l", - "origin": [ - 70.19992065429688, - 417.08990478515625 - ], - "bbox": [ - 70.19992065429688, - 403.0498962402344, - 71.8739242553711, - 421.2344055175781 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " メインクラス", - "origin": [ - 71.8739242553711, - 417.08990478515625 - ], - "bbox": [ - 71.8739242553711, - 408.7698974609375, - 122.50642395019531, - 419.5458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.19992065429688, - 403.0498962402344, - 122.50642395019531, - 421.2344055175781 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Software Examination", - "origin": [ - 76.91991424560547, - 428.639892578125 - ], - "bbox": [ - 76.91991424560547, - 420.5918884277344, - 158.55690002441406, - 431.2319030761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.91991424560547, - 420.5918884277344, - 158.55690002441406, - 431.2319030761719 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(他人に作成されたプログラムの理解に関する項目)", - "origin": [ - 81.2799072265625, - 438.6698913574219 - ], - "bbox": [ - 81.2799072265625, - 430.3498840332031, - 256.1622009277344, - 441.1258850097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.2799072265625, - 430.3498840332031, - 256.1622009277344, - 441.1258850097656 - ] - } - ], - "tag": "on-table" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 76.7999038696289, - 458.99188232421875, - 286.4299621582031, - 479.515869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Privacy ", - "origin": [ - 76.7999038696289, - 467.0398864746094 - ], - "bbox": [ - 76.7999038696289, - 458.99188232421875, - 106.62458801269531, - 469.63189697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.7999038696289, - 458.99188232421875, - 106.62458801269531, - 469.63189697265625 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(第三者の人またはシステムに関する情報管理に関する項目)", - "origin": [ - 81.47990417480469, - 477.05987548828125 - ], - "bbox": [ - 81.47990417480469, - 468.7398681640625, - 286.4299621582031, - 479.515869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47990417480469, - 468.7398681640625, - 286.4299621582031, - 479.515869140625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 76.7999038696289, - 497.3818664550781, - 216.0727996826172, - 537.5958862304688 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Autonomy ", - "origin": [ - 76.7999038696289, - 505.42987060546875 - ], - "bbox": [ - 76.7999038696289, - 497.3818664550781, - 117.23748779296875, - 508.0218811035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.7999038696289, - 497.3818664550781, - 117.23748779296875, - 508.0218811035156 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(第三者のシステムに作用する項目)", - "origin": [ - 81.47990417480469, - 515.33984375 - ], - "bbox": [ - 81.47990417480469, - 507.01983642578125, - 202.07191467285156, - 517.7958374023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47990417480469, - 507.01983642578125, - 202.07191467285156, - 517.7958374023438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Human and Animal Subjects Testing ", - "origin": [ - 76.7999038696289, - 524.869873046875 - ], - "bbox": [ - 76.7999038696289, - 516.8218994140625, - 216.0727996826172, - 527.4618530273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.7999038696289, - 516.8218994140625, - 216.0727996826172, - 527.4618530273438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(被験者実験に関する項目)", - "origin": [ - 81.47989654541016, - 535.139892578125 - ], - "bbox": [ - 81.47989654541016, - 526.8198852539062, - 171.59707641601562, - 537.5958862304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47989654541016, - 526.8198852539062, - 171.59707641601562, - 537.5958862304688 - ] - } - ], - "tag": "on-table" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 76.9198989868164, - 564.7119140625, - 255.9355010986328, - 585.4258422851562 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "General Rules ", - "origin": [ - 76.9198989868164, - 572.7598876953125 - ], - "bbox": [ - 76.9198989868164, - 564.7119140625, - 130.50689697265625, - 575.3518676757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.9198989868164, - 564.7119140625, - 130.50689697265625, - 575.3518676757812 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(指針自体に関する項目や全体的に適用可能な項目)", - "origin": [ - 81.47989654541016, - 582.9698486328125 - ], - "bbox": [ - 81.47989654541016, - 574.6498413085938, - 255.9355010986328, - 585.4258422851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47989654541016, - 574.6498413085938, - 255.9355010986328, - 585.4258422851562 - ] - } - ], - "tag": "on-table" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 327.95989990234375, - 403.0198669433594, - 489.7080078125, - 603.9717407226562 - ], - "lines": [ - { - "spans": [ - { - "size": 13.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10215", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "l", - "origin": [ - 327.95989990234375, - 417.05987548828125 - ], - "bbox": [ - 327.95989990234375, - 403.0198669433594, - 330.3629150390625, - 421.2043762207031 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " メインクラス直下のサブクラス", - "origin": [ - 330.3629150390625, - 417.05987548828125 - ], - "bbox": [ - 330.3629150390625, - 408.7398681640625, - 442.4429016113281, - 419.515869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.95989990234375, - 403.0198669433594, - 442.4429016113281, - 421.2043762207031 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Vulnerability Research", - "origin": [ - 335.2898864746094, - 428.6398620605469 - ], - "bbox": [ - 335.2898864746094, - 420.59185791015625, - 419.10272216796875, - 431.23187255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2898864746094, - 420.59185791015625, - 419.10272216796875, - 431.23187255859375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Reverse Engineering", - "origin": [ - 335.4898986816406, - 438.2398681640625 - ], - "bbox": [ - 335.4898986816406, - 430.1918640136719, - 410.3529052734375, - 440.8318786621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4898986816406, - 430.1918640136719, - 410.3529052734375, - 440.8318786621094 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Malware", - "origin": [ - 335.5198974609375, - 447.7098693847656 - ], - "bbox": [ - 335.5198974609375, - 439.661865234375, - 366.7986755371094, - 450.3018798828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5198974609375, - 439.661865234375, - 366.7986755371094, - 450.3018798828125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Disclosure", - "origin": [ - 335.3099060058594, - 457.1998596191406 - ], - "bbox": [ - 335.3099060058594, - 449.15185546875, - 373.1481018066406, - 459.7918701171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3099060058594, - 449.15185546875, - 373.1481018066406, - 459.7918701171875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Collecting Data", - "origin": [ - 335.5198974609375, - 467.03985595703125 - ], - "bbox": [ - 335.5198974609375, - 458.9918518066406, - 393.5050964355469, - 469.6318664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5198974609375, - 458.9918518066406, - 393.5050964355469, - 469.6318664550781 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Handling Data", - "origin": [ - 335.39990234375, - 476.6398620605469 - ], - "bbox": [ - 335.39990234375, - 468.59185791015625, - 389.91510009765625, - 479.23187255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39990234375, - 468.59185791015625, - 389.91510009765625, - 479.23187255859375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Publishing Data", - "origin": [ - 335.5198974609375, - 486.10986328125 - ], - "bbox": [ - 335.5198974609375, - 478.0618591308594, - 395.55511474609375, - 488.7018737792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5198974609375, - 478.0618591308594, - 395.55511474609375, - 488.7018737792969 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Transferring Data To Third Parties ", - "origin": [ - 335.0699157714844, - 495.599853515625 - ], - "bbox": [ - 335.0699157714844, - 487.5518493652344, - 468.5796813964844, - 498.1918640136719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.0699157714844, - 487.5518493652344, - 468.5796813964844, - 498.1918640136719 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Web scraping ", - "origin": [ - 335.2898864746094, - 505.4298400878906 - ], - "bbox": [ - 335.2898864746094, - 497.3818359375, - 387.2858581542969, - 508.0218505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2898864746094, - 497.3818359375, - 387.2858581542969, - 508.0218505859375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Accessing others'systems", - "origin": [ - 335.39990234375, - 515.039794921875 - ], - "bbox": [ - 335.39990234375, - 506.9917907714844, - 429.9837646484375, - 517.6317749023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39990234375, - 506.9917907714844, - 429.9837646484375, - 517.6317749023438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Deceiving human or animal test subjects", - "origin": [ - 335.5199279785156, - 524.8698120117188 - ], - "bbox": [ - 335.5199279785156, - 516.8218383789062, - 486.5213623046875, - 527.4617919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5199279785156, - 516.8218383789062, - 486.5213623046875, - 527.4617919921875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Misleading, false, or deceptive advertising", - "origin": [ - 335.51995849609375, - 534.4797973632812 - ], - "bbox": [ - 335.51995849609375, - 526.4318237304688, - 489.7080078125, - 537.07177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.51995849609375, - 526.4318237304688, - 489.7080078125, - 537.07177734375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Honeypots", - "origin": [ - 335.39996337890625, - 543.9597778320312 - ], - "bbox": [ - 335.39996337890625, - 535.9118041992188, - 374.6415710449219, - 546.5517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39996337890625, - 535.9118041992188, - 374.6415710449219, - 546.5517578125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Criminal and Unethical Services", - "origin": [ - 335.51995849609375, - 553.4298095703125 - ], - "bbox": [ - 335.51995849609375, - 545.3818359375, - 454.9013671875, - 556.0217895507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.51995849609375, - 545.3818359375, - 454.9013671875, - 556.0217895507812 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Consulting with REB or IRB", - "origin": [ - 335.2499694824219, - 562.9097900390625 - ], - "bbox": [ - 335.2499694824219, - 554.86181640625, - 443.54351806640625, - 565.5017700195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2499694824219, - 554.86181640625, - 443.54351806640625, - 565.5017700195312 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Terms of Service", - "origin": [ - 335.3999328613281, - 572.759765625 - ], - "bbox": [ - 335.3999328613281, - 564.7117919921875, - 396.5327453613281, - 575.3517456054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3999328613281, - 564.7117919921875, - 396.5327453613281, - 575.3517456054688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Ethical consistency", - "origin": [ - 335.3399353027344, - 582.3497924804688 - ], - "bbox": [ - 335.3399353027344, - 574.3018188476562, - 406.0318908691406, - 584.9417724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3399353027344, - 574.3018188476562, - 406.0318908691406, - 584.9417724609375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Documentation and Accountability", - "origin": [ - 335.5199279785156, - 591.8397827148438 - ], - "bbox": [ - 335.5199279785156, - 583.7918090820312, - 465.457275390625, - 594.4317626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5199279785156, - 583.7918090820312, - 465.457275390625, - 594.4317626953125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Definitions", - "origin": [ - 335.3999328613281, - 601.3797607421875 - ], - "bbox": [ - 335.3999328613281, - 593.331787109375, - 375.1241149902344, - 603.9717407226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3999328613281, - 593.331787109375, - 375.1241149902344, - 603.9717407226562 - ] - } - ], - "tag": "on-table" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 70.19992065429688, - 397.4499206542969, - 423.8139343261719, - 441.1258850097656 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "表4: 倫理指針のメインクラスとその直下のサブクラス", - "origin": [ - 188.0399169921875, - 407.84991455078125 - ], - "bbox": [ - 188.0399169921875, - 397.4499206542969, - 423.8139343261719, - 410.919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.0399169921875, - 397.4499206542969, - 423.8139343261719, - 410.919921875 - ] - }, - { - "spans": [ - { - "size": 13.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10215", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "l", - "origin": [ - 70.19992065429688, - 417.08990478515625 - ], - "bbox": [ - 70.19992065429688, - 403.0498962402344, - 71.8739242553711, - 421.2344055175781 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " メインクラス", - "origin": [ - 71.8739242553711, - 417.08990478515625 - ], - "bbox": [ - 71.8739242553711, - 408.7698974609375, - 122.50642395019531, - 419.5458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.19992065429688, - 403.0498962402344, - 122.50642395019531, - 421.2344055175781 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Software Examination", - "origin": [ - 76.91991424560547, - 428.639892578125 - ], - "bbox": [ - 76.91991424560547, - 420.5918884277344, - 158.55690002441406, - 431.2319030761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.91991424560547, - 420.5918884277344, - 158.55690002441406, - 431.2319030761719 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(他人に作成されたプログラムの理解に関する項目)", - "origin": [ - 81.2799072265625, - 438.6698913574219 - ], - "bbox": [ - 81.2799072265625, - 430.3498840332031, - 256.1622009277344, - 441.1258850097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.2799072265625, - 430.3498840332031, - 256.1622009277344, - 441.1258850097656 - ] - } - ], - "tag": "on-table" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 76.7999038696289, - 458.99188232421875, - 286.4299621582031, - 479.515869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Privacy ", - "origin": [ - 76.7999038696289, - 467.0398864746094 - ], - "bbox": [ - 76.7999038696289, - 458.99188232421875, - 106.62458801269531, - 469.63189697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.7999038696289, - 458.99188232421875, - 106.62458801269531, - 469.63189697265625 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(第三者の人またはシステムに関する情報管理に関する項目)", - "origin": [ - 81.47990417480469, - 477.05987548828125 - ], - "bbox": [ - 81.47990417480469, - 468.7398681640625, - 286.4299621582031, - 479.515869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47990417480469, - 468.7398681640625, - 286.4299621582031, - 479.515869140625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 76.7999038696289, - 497.3818664550781, - 216.0727996826172, - 537.5958862304688 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Autonomy ", - "origin": [ - 76.7999038696289, - 505.42987060546875 - ], - "bbox": [ - 76.7999038696289, - 497.3818664550781, - 117.23748779296875, - 508.0218811035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.7999038696289, - 497.3818664550781, - 117.23748779296875, - 508.0218811035156 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(第三者のシステムに作用する項目)", - "origin": [ - 81.47990417480469, - 515.33984375 - ], - "bbox": [ - 81.47990417480469, - 507.01983642578125, - 202.07191467285156, - 517.7958374023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47990417480469, - 507.01983642578125, - 202.07191467285156, - 517.7958374023438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Human and Animal Subjects Testing ", - "origin": [ - 76.7999038696289, - 524.869873046875 - ], - "bbox": [ - 76.7999038696289, - 516.8218994140625, - 216.0727996826172, - 527.4618530273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.7999038696289, - 516.8218994140625, - 216.0727996826172, - 527.4618530273438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(被験者実験に関する項目)", - "origin": [ - 81.47989654541016, - 535.139892578125 - ], - "bbox": [ - 81.47989654541016, - 526.8198852539062, - 171.59707641601562, - 537.5958862304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47989654541016, - 526.8198852539062, - 171.59707641601562, - 537.5958862304688 - ] - } - ], - "tag": "on-table" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 76.9198989868164, - 564.7119140625, - 255.9355010986328, - 585.4258422851562 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "General Rules ", - "origin": [ - 76.9198989868164, - 572.7598876953125 - ], - "bbox": [ - 76.9198989868164, - 564.7119140625, - 130.50689697265625, - 575.3518676757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.9198989868164, - 564.7119140625, - 130.50689697265625, - 575.3518676757812 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "(指針自体に関する項目や全体的に適用可能な項目)", - "origin": [ - 81.47989654541016, - 582.9698486328125 - ], - "bbox": [ - 81.47989654541016, - 574.6498413085938, - 255.9355010986328, - 585.4258422851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.47989654541016, - 574.6498413085938, - 255.9355010986328, - 585.4258422851562 - ] - } - ], - "tag": "on-table" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 327.95989990234375, - 403.0198669433594, - 489.7080078125, - 603.9717407226562 - ], - "lines": [ - { - "spans": [ - { - "size": 13.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10215", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "l", - "origin": [ - 327.95989990234375, - 417.05987548828125 - ], - "bbox": [ - 327.95989990234375, - 403.0198669433594, - 330.3629150390625, - 421.2043762207031 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10214", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " メインクラス直下のサブクラス", - "origin": [ - 330.3629150390625, - 417.05987548828125 - ], - "bbox": [ - 330.3629150390625, - 408.7398681640625, - 442.4429016113281, - 419.515869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.95989990234375, - 403.0198669433594, - 442.4429016113281, - 421.2043762207031 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Vulnerability Research", - "origin": [ - 335.2898864746094, - 428.6398620605469 - ], - "bbox": [ - 335.2898864746094, - 420.59185791015625, - 419.10272216796875, - 431.23187255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2898864746094, - 420.59185791015625, - 419.10272216796875, - 431.23187255859375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Reverse Engineering", - "origin": [ - 335.4898986816406, - 438.2398681640625 - ], - "bbox": [ - 335.4898986816406, - 430.1918640136719, - 410.3529052734375, - 440.8318786621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4898986816406, - 430.1918640136719, - 410.3529052734375, - 440.8318786621094 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Malware", - "origin": [ - 335.5198974609375, - 447.7098693847656 - ], - "bbox": [ - 335.5198974609375, - 439.661865234375, - 366.7986755371094, - 450.3018798828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5198974609375, - 439.661865234375, - 366.7986755371094, - 450.3018798828125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Disclosure", - "origin": [ - 335.3099060058594, - 457.1998596191406 - ], - "bbox": [ - 335.3099060058594, - 449.15185546875, - 373.1481018066406, - 459.7918701171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3099060058594, - 449.15185546875, - 373.1481018066406, - 459.7918701171875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Collecting Data", - "origin": [ - 335.5198974609375, - 467.03985595703125 - ], - "bbox": [ - 335.5198974609375, - 458.9918518066406, - 393.5050964355469, - 469.6318664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5198974609375, - 458.9918518066406, - 393.5050964355469, - 469.6318664550781 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Handling Data", - "origin": [ - 335.39990234375, - 476.6398620605469 - ], - "bbox": [ - 335.39990234375, - 468.59185791015625, - 389.91510009765625, - 479.23187255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39990234375, - 468.59185791015625, - 389.91510009765625, - 479.23187255859375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Publishing Data", - "origin": [ - 335.5198974609375, - 486.10986328125 - ], - "bbox": [ - 335.5198974609375, - 478.0618591308594, - 395.55511474609375, - 488.7018737792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5198974609375, - 478.0618591308594, - 395.55511474609375, - 488.7018737792969 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Transferring Data To Third Parties ", - "origin": [ - 335.0699157714844, - 495.599853515625 - ], - "bbox": [ - 335.0699157714844, - 487.5518493652344, - 468.5796813964844, - 498.1918640136719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.0699157714844, - 487.5518493652344, - 468.5796813964844, - 498.1918640136719 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Web scraping ", - "origin": [ - 335.2898864746094, - 505.4298400878906 - ], - "bbox": [ - 335.2898864746094, - 497.3818359375, - 387.2858581542969, - 508.0218505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2898864746094, - 497.3818359375, - 387.2858581542969, - 508.0218505859375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Accessing others'systems", - "origin": [ - 335.39990234375, - 515.039794921875 - ], - "bbox": [ - 335.39990234375, - 506.9917907714844, - 429.9837646484375, - 517.6317749023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39990234375, - 506.9917907714844, - 429.9837646484375, - 517.6317749023438 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Deceiving human or animal test subjects", - "origin": [ - 335.5199279785156, - 524.8698120117188 - ], - "bbox": [ - 335.5199279785156, - 516.8218383789062, - 486.5213623046875, - 527.4617919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5199279785156, - 516.8218383789062, - 486.5213623046875, - 527.4617919921875 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Misleading, false, or deceptive advertising", - "origin": [ - 335.51995849609375, - 534.4797973632812 - ], - "bbox": [ - 335.51995849609375, - 526.4318237304688, - 489.7080078125, - 537.07177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.51995849609375, - 526.4318237304688, - 489.7080078125, - 537.07177734375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Honeypots", - "origin": [ - 335.39996337890625, - 543.9597778320312 - ], - "bbox": [ - 335.39996337890625, - 535.9118041992188, - 374.6415710449219, - 546.5517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39996337890625, - 535.9118041992188, - 374.6415710449219, - 546.5517578125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Criminal and Unethical Services", - "origin": [ - 335.51995849609375, - 553.4298095703125 - ], - "bbox": [ - 335.51995849609375, - 545.3818359375, - 454.9013671875, - 556.0217895507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.51995849609375, - 545.3818359375, - 454.9013671875, - 556.0217895507812 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Consulting with REB or IRB", - "origin": [ - 335.2499694824219, - 562.9097900390625 - ], - "bbox": [ - 335.2499694824219, - 554.86181640625, - 443.54351806640625, - 565.5017700195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2499694824219, - 554.86181640625, - 443.54351806640625, - 565.5017700195312 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Terms of Service", - "origin": [ - 335.3999328613281, - 572.759765625 - ], - "bbox": [ - 335.3999328613281, - 564.7117919921875, - 396.5327453613281, - 575.3517456054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3999328613281, - 564.7117919921875, - 396.5327453613281, - 575.3517456054688 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Ethical consistency", - "origin": [ - 335.3399353027344, - 582.3497924804688 - ], - "bbox": [ - 335.3399353027344, - 574.3018188476562, - 406.0318908691406, - 584.9417724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3399353027344, - 574.3018188476562, - 406.0318908691406, - 584.9417724609375 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Documentation and Accountability", - "origin": [ - 335.5199279785156, - 591.8397827148438 - ], - "bbox": [ - 335.5199279785156, - 583.7918090820312, - 465.457275390625, - 594.4317626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5199279785156, - 583.7918090820312, - 465.457275390625, - 594.4317626953125 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "*MS Mincho-Bold-10219", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Definitions", - "origin": [ - 335.3999328613281, - 601.3797607421875 - ], - "bbox": [ - 335.3999328613281, - 593.331787109375, - 375.1241149902344, - 603.9717407226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3999328613281, - 593.331787109375, - 375.1241149902344, - 603.9717407226562 - ] - } - ], - "tag": "on-table" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 59.40999984741211, - 22.870019912719727, - 295.9579772949219, - 36.34001922607422 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "個人識別子の削除を施していたものもあった[17,18, 19]. ", - "origin": [ - 59.40999984741211, - 33.27001953125 - ], - "bbox": [ - 59.40999984741211, - 22.870019912719727, - 295.9579772949219, - 36.34001922607422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 22.870019912719727, - 295.9579772949219, - 36.34001922607422 - ] - } - ], - "tag": "header" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 59.399993896484375, - 34.390037536621094, - 296.01397705078125, - 81.43999481201172 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "デ", - "origin": [ - 59.58000183105469, - 48.46002197265625 - ], - "bbox": [ - 59.58000183105469, - 38.060020446777344, - 69.01000213623047, - 51.53002166748047 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 69.1300048828125, - 44.7900390625 - ], - "bbox": [ - 69.1300048828125, - 38.0300407409668, - 77.89200592041016, - 46.78553771972656 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 77.89200592041016, - 44.7900390625 - ], - "bbox": [ - 77.89200592041016, - 34.390037536621094, - 79.45000457763672, - 51.57006072998047 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タの保管のみならず,送信時にも安全な送信方法の", - "origin": [ - 79.45000457763672, - 48.50006103515625 - ], - "bbox": [ - 79.45000457763672, - 37.920066833496094, - 295.9599914550781, - 51.57006072998047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.58000183105469, - 34.390037536621094, - 295.9599914550781, - 51.57006072998047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "みを利用することを記している論文も存在する[18]. い", - "origin": [ - 59.399993896484375, - 63.2900390625 - ], - "bbox": [ - 59.399993896484375, - 52.890037536621094, - 295.95001220703125, - 66.36003875732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.399993896484375, - 52.890037536621094, - 295.95001220703125, - 66.36003875732422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "くつかの論文では,実験の後に収集したデ", - "origin": [ - 59.46000671386719, - 78.21002197265625 - ], - "bbox": [ - 59.46000671386719, - 67.81002044677734, - 239.17071533203125, - 81.43999481201172 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10216", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 239.30001831054688, - 74.5899658203125 - ], - "bbox": [ - 239.30001831054688, - 67.82996368408203, - 248.06201171875, - 76.58546447753906 - ] - }, - { - "size": 10.0, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 248.06201171875, - 74.5899658203125 - ], - "bbox": [ - 248.06201171875, - 64.1899642944336, - 249.63002014160156, - 81.29998016357422 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タを破棄し", - "origin": [ - 249.63002014160156, - 78.22998046875 - ], - "bbox": [ - 249.63002014160156, - 67.8299789428711, - 296.01397705078125, - 81.29998016357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.46000671386719, - 64.1899642944336, - 296.01397705078125, - 81.43999481201172 - ] - } - ], - "tag": "header" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 315.8399963378906, - 22.859949111938477, - 552.390625, - 51.36992645263672 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "がないことを想定するだけでなく,影響の度合いを評価", - "origin": [ - 315.8900146484375, - 33.469970703125 - ], - "bbox": [ - 315.8900146484375, - 22.859949111938477, - 552.390625, - 36.53997039794922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8900146484375, - 22.859949111938477, - 552.390625, - 36.53997039794922 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-10213", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "しなければならない", - "origin": [ - 315.8399963378906, - 48.2999267578125 - ], - "bbox": [ - 315.8399963378906, - 37.899925231933594, - 411.75799560546875, - 51.36992645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8399963378906, - 37.899925231933594, - 411.75799560546875, - 51.36992645263672 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [ - { - "bbox": [ - 93, - 627, - 524, - 705.6327514648438 - ], - "image_path": "images/5_93_627_524_705.jpg" - } - ], - "table_backup": [], - "page_idx": 5, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_6": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 58.879974365234375, - 37.9799919128418, - 298.5165710449219, - 111.21990203857422 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本倫理指針ではハニ", - "origin": [ - 69.02999877929688, - 48.45001220703125 - ], - "bbox": [ - 69.02999877929688, - 38.050010681152344, - 154.5599822998047, - 51.52001190185547 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 154.6899871826172, - 44.739990234375 - ], - "bbox": [ - 154.6899871826172, - 37.9799919128418, - 163.4519805908203, - 46.73548889160156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ポットの利用を許容するが,そ", - "origin": [ - 164.5299835205078, - 48.39996337890625 - ], - "bbox": [ - 164.5299835205078, - 37.999961853027344, - 296.0299987792969, - 51.46996307373047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.02999877929688, - 37.9799919128418, - 296.0299987792969, - 51.52001190185547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "れが他者に悪影響を与えるようであれば,その利用を禁", - "origin": [ - 59.30998229980469, - 63.36993408203125 - ], - "bbox": [ - 59.30998229980469, - 52.969932556152344, - 296.1999816894531, - 66.43993377685547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.30998229980469, - 52.969932556152344, - 296.1999816894531, - 66.43993377685547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ずる[14]. ハニ", - "origin": [ - 58.879974365234375, - 78.2999267578125 - ], - "bbox": [ - 58.879974365234375, - 67.8999252319336, - 125.052978515625, - 81.36992645263672 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 125.17997741699219, - 74.659912109375 - ], - "bbox": [ - 125.17997741699219, - 67.89990997314453, - 133.9419708251953, - 76.65541076660156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ポットは通常, 同意や後追いの説明を", - "origin": [ - 135.0299835205078, - 78.23992919921875 - ], - "bbox": [ - 135.0299835205078, - 67.83992767333984, - 295.9471435546875, - 81.30992889404297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.879974365234375, - 67.83992767333984, - 295.9471435546875, - 81.36992645263672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "行わずに情報を収集するツ", - "origin": [ - 59.33998107910156, - 93.179931640625 - ], - "bbox": [ - 59.33998107910156, - 82.7799301147461, - 174.2484893798828, - 96.24993133544922 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 174.2484893798828, - 93.179931640625 - ], - "bbox": [ - 174.2484893798828, - 82.77991485595703, - 175.56997680664062, - 95.17543029785156 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 175.56997680664062, - 89.5399169921875 - ], - "bbox": [ - 175.56997680664062, - 82.77991485595703, - 184.33197021484375, - 91.53541564941406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルである. しかしながら,", - "origin": [ - 184.91998291015625, - 93.2999267578125 - ], - "bbox": [ - 184.91998291015625, - 82.8999252319336, - 298.5165710449219, - 96.36992645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33998107910156, - 82.77991485595703, - 298.5165710449219, - 96.36992645263672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ハニ", - "origin": [ - 59.26997375488281, - 107.93994140625 - ], - "bbox": [ - 59.26997375488281, - 97.5399398803711, - 78.48297882080078, - 111.00994110107422 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 78.60997009277344, - 104.419921875 - ], - "bbox": [ - 78.60997009277344, - 97.65991973876953, - 87.3719711303711, - 106.41542053222656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ポットが与える影響を最小限に留めなくてはなら", - "origin": [ - 88.32997131347656, - 108.14990234375 - ], - "bbox": [ - 88.32997131347656, - 97.7499008178711, - 295.9045104980469, - 111.21990203857422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.26997375488281, - 97.5399398803711, - 295.9045104980469, - 111.21990203857422 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 59.13996887207031, - 112.7799301147461, - 295.92999267578125, - 141.09991455078125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ない先に紹介した偽広告に関する研究[18]では正規の", - "origin": [ - 59.319969177246094, - 123.179931640625 - ], - "bbox": [ - 59.319969177246094, - 112.7799301147461, - 295.91937255859375, - 126.59990692138672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.319969177246094, - 112.7799301147461, - 295.91937255859375, - 126.59990692138672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ユ", - "origin": [ - 59.13996887207031, - 137.96990966796875 - ], - "bbox": [ - 59.13996887207031, - 127.56990814208984, - 68.39997100830078, - 141.0399169921875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 69.12996673583984, - 134.44989013671875 - ], - "bbox": [ - 69.12996673583984, - 127.68988800048828, - 77.8919677734375, - 136.4453887939453 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ザには魅力的でない広告を出すことで,", - "origin": [ - 78.85997009277344, - 138.0299072265625 - ], - "bbox": [ - 78.85997009277344, - 127.6299057006836, - 247.04678344726562, - 141.09991455078125 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 247.04678344726562, - 138.0299072265625 - ], - "bbox": [ - 247.04678344726562, - 127.17987823486328, - 248.6699676513672, - 140.02540588378906 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 248.6699676513672, - 133.93988037109375 - ], - "bbox": [ - 248.6699676513672, - 127.17987823486328, - 257.7894592285156, - 135.9353790283203 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "般ユ", - "origin": [ - 258.03997802734375, - 137.96990966796875 - ], - "bbox": [ - 258.03997802734375, - 127.56990814208984, - 276.510986328125, - 141.0399169921875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 277.2499694824219, - 134.2698974609375 - ], - "bbox": [ - 277.2499694824219, - 127.50989532470703, - 286.011962890625, - 136.26539611816406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ザ", - "origin": [ - 286.97998046875, - 137.7899169921875 - ], - "bbox": [ - 286.97998046875, - 127.3899154663086, - 295.92999267578125, - 140.85992431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.13996887207031, - 127.17987823486328, - 295.92999267578125, - 141.09991455078125 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.21998596191406, - 142.23995971679688, - 295.8399963378906, - 156.179931640625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が偽広告に惹かれる可能性を低減した. その結果,正規", - "origin": [ - 59.21998596191406, - 153.10992431640625 - ], - "bbox": [ - 59.21998596191406, - 142.23995971679688, - 295.8399963378906, - 156.179931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.21998596191406, - 142.23995971679688, - 295.8399963378906, - 156.179931640625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 59.13999938964844, - 157.37997436523438, - 295.8944091796875, - 171.01995849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ユ", - "origin": [ - 59.13999938964844, - 167.949951171875 - ], - "bbox": [ - 59.13999938964844, - 157.54995727539062, - 68.4000015258789, - 171.01995849609375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 69.12999725341797, - 164.40997314453125 - ], - "bbox": [ - 69.12999725341797, - 157.6499786376953, - 77.89199829101562, - 166.4054718017578 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ザからのアクセスはなかったと当該論文の著者らは", - "origin": [ - 78.72999572753906, - 167.77996826171875 - ], - "bbox": [ - 78.72999572753906, - 157.37997436523438, - 295.8944091796875, - 170.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.13999938964844, - 157.37997436523438, - 295.8944091796875, - 171.01995849609375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 59.47999572753906, - 172.38998413085938, - 298.64312744140625, - 200.80999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "記している.", - "origin": [ - 59.47999572753906, - 182.78997802734375 - ], - "bbox": [ - 59.47999572753906, - 172.38998413085938, - 109.44649505615234, - 185.8599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47999572753906, - 172.38998413085938, - 109.44649505615234, - 185.8599853515625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "すべてのサイバ", - "origin": [ - 68.89999389648438, - 197.739990234375 - ], - "bbox": [ - 68.89999389648438, - 187.33999633789062, - 133.72158813476562, - 200.80999755859375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 134.04998779296875, - 194.1300048828125 - ], - "bbox": [ - 134.04998779296875, - 187.37001037597656, - 142.81198120117188, - 196.12550354003906 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリテイプロジェクトにおいて,", - "origin": [ - 142.97998046875, - 197.71002197265625 - ], - "bbox": [ - 142.97998046875, - 187.31002807617188, - 298.64312744140625, - 200.780029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.89999389648438, - 187.31002807617188, - 298.64312744140625, - 200.80999755859375 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 59.319976806640625, - 232.24000549316406, - 298.5381774902344, - 245.77001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ものが倫理指針における許可ノ", - "origin": [ - 59.319976806640625, - 242.70001220703125 - ], - "bbox": [ - 59.319976806640625, - 232.30001831054688, - 193.2008819580078, - 245.77001953125 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 193.2008819580078, - 242.70001220703125 - ], - "bbox": [ - 193.2008819580078, - 232.24000549316406, - 194.88998413085938, - 244.6955108642578 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 194.88998413085938, - 239.0 - ], - "bbox": [ - 194.88998413085938, - 232.24000549316406, - 203.6519775390625, - 240.99549865722656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドに該当する. また,", - "origin": [ - 204.25997924804688, - 242.65997314453125 - ], - "bbox": [ - 204.25997924804688, - 232.25997924804688, - 298.5381774902344, - 245.72998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.319976806640625, - 232.24000549316406, - 298.5381774902344, - 245.77001953125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 59.269989013671875, - 247.29000854492188, - 296.04449462890625, - 305.5700378417969 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "医学や様々な大学の倫理指針を参考にし,被験者実験に", - "origin": [ - 60.129974365234375, - 257.69000244140625 - ], - "bbox": [ - 60.129974365234375, - 247.29000854492188, - 296.0024719238281, - 260.760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.129974365234375, - 247.29000854492188, - 296.0024719238281, - 260.760009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "関する項目も設けた. すなわち,人や動物が研究に係わ", - "origin": [ - 59.35997009277344, - 272.59002685546875 - ], - "bbox": [ - 59.35997009277344, - 262.1900329589844, - 295.7527160644531, - 275.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.35997009277344, - 262.1900329589844, - 295.7527160644531, - 275.6600341796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るとき,その確証が持てない場合でも審査委員会に助言", - "origin": [ - 59.269989013671875, - 287.530029296875 - ], - "bbox": [ - 59.269989013671875, - 277.1300354003906, - 295.80999755859375, - 290.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.269989013671875, - 277.1300354003906, - 295.80999755859375, - 290.60003662109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を求めなければならない. このようなル", - "origin": [ - 59.36998748779297, - 302.5000305175781 - ], - "bbox": [ - 59.36998748779297, - 292.10003662109375, - 229.6923828125, - 305.5700378417969 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 230.06997680664062, - 298.780029296875 - ], - "bbox": [ - 230.06997680664062, - 292.02001953125, - 238.83197021484375, - 300.7755432128906 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルは本倫理指", - "origin": [ - 239.0599822998047, - 302.3000183105469 - ], - "bbox": [ - 239.0599822998047, - 291.9000244140625, - 296.04449462890625, - 305.3700256347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36998748779297, - 291.9000244140625, - 296.04449462890625, - 305.5700378417969 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.43998718261719, - 307.09002685546875, - 262.81219482421875, - 320.5600280761719 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "針を用いる研究者以外も準拠すべき項目である.", - "origin": [ - 59.43998718261719, - 317.4900207519531 - ], - "bbox": [ - 59.43998718261719, - 307.09002685546875, - 262.81219482421875, - 320.5600280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.43998718261719, - 307.09002685546875, - 262.81219482421875, - 320.5600280761719 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.529998779296875, - 330.0600280761719, - 167.6284942626953, - 343.530029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1.5 ", - "origin": [ - 59.529998779296875, - 340.46002197265625 - ], - "bbox": [ - 59.529998779296875, - 330.0600280761719, - 85.60699462890625, - 343.530029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 330.0600280761719, - 85.60699462890625, - 343.530029296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "General Rules ", - "origin": [ - 94.93000030517578, - 340.46002197265625 - ], - "bbox": [ - 94.93000030517578, - 330.0600280761719, - 167.6284942626953, - 343.530029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 94.93000030517578, - 330.0600280761719, - 167.6284942626953, - 343.530029296875 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 69.0300064086914, - 347.58001708984375, - 295.8835144042969, - 361.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本項目はサイバ", - "origin": [ - 69.0300064086914, - 357.9800109863281 - ], - "bbox": [ - 69.0300064086914, - 347.58001708984375, - 134.7996063232422, - 361.0500183105469 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 135.3699951171875, - 354.3700256347656 - ], - "bbox": [ - 135.3699951171875, - 347.6100158691406, - 144.13198852539062, - 356.36553955078125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究において広く適用", - "origin": [ - 144.5399932861328, - 357.9800109863281 - ], - "bbox": [ - 144.5399932861328, - 347.58001708984375, - 295.8835144042969, - 361.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.0300064086914, - 347.58001708984375, - 295.8835144042969, - 361.0500183105469 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.209999084472656, - 392.3900146484375, - 295.89666748046875, - 405.8600158691406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セスを構築しなければならない. ここで特に重要となる", - "origin": [ - 59.209999084472656, - 402.7900085449219 - ], - "bbox": [ - 59.209999084472656, - 392.3900146484375, - 295.89666748046875, - 405.8600158691406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.209999084472656, - 392.3900146484375, - 295.89666748046875, - 405.8600158691406 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 68.9000015258789, - 482.0799865722656, - 295.9147033691406, - 495.6400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 68.9000015258789, - 492.57000732421875 - ], - "bbox": [ - 68.9000015258789, - 482.1700134277344, - 97.00160217285156, - 495.6400146484375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 97.56999969482422, - 488.92999267578125 - ], - "bbox": [ - 97.56999969482422, - 482.16998291015625, - 106.33200073242188, - 490.9255065917969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究者らは自らが実施する研究", - "origin": [ - 106.62000274658203, - 492.47998046875 - ], - "bbox": [ - 106.62000274658203, - 482.0799865722656, - 295.9147033691406, - 495.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.9000015258789, - 482.0799865722656, - 295.9147033691406, - 495.6400146484375 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 68.80999755859375, - 556.5299682617188, - 296.1199951171875, - 570.1199951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セカンドオピニオンは判断を誤った際のセ", - "origin": [ - 68.80999755859375, - 567.0499877929688 - ], - "bbox": [ - 68.80999755859375, - 556.6499633789062, - 248.82241821289062, - 570.1199951171875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 248.88999938964844, - 563.4199829101562 - ], - "bbox": [ - 248.88999938964844, - 556.6599731445312, - 257.6520080566406, - 565.4154663085938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "フガ", - "origin": [ - 258.0799865722656, - 566.9299926757812 - ], - "bbox": [ - 258.0799865722656, - 556.5299682617188, - 276.9657897949219, - 570.0 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 277.3399963378906, - 563.3900146484375 - ], - "bbox": [ - 277.3399963378906, - 556.6300048828125, - 286.10198974609375, - 565.385498046875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ド", - "origin": [ - 286.4700012207031, - 566.9600219726562 - ], - "bbox": [ - 286.4700012207031, - 556.5599975585938, - 296.1199951171875, - 570.030029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.80999755859375, - 556.5299682617188, - 296.1199951171875, - 570.1199951171875 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 59.41999816894531, - 571.719970703125, - 296.0340270996094, - 585.4900512695312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "となりうる. 研究者らは何かを相談する際,倫理的な管", - "origin": [ - 59.41999816894531, - 582.4200439453125 - ], - "bbox": [ - 59.41999816894531, - 571.719970703125, - 296.0340270996094, - 585.4900512695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41999816894531, - 571.719970703125, - 296.0340270996094, - 585.4900512695312 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 59.44000244140625, - 691.1599731445312, - 296.18902587890625, - 719.77001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "様々な項目で同意について言及した", - "origin": [ - 68.93000030517578, - 702.0999755859375 - ], - "bbox": [ - 68.93000030517578, - 691.699951171875, - 229.70999145507812, - 705.1699829101562 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 229.94000244140625, - 697.9199829101562 - ], - "bbox": [ - 229.94000244140625, - 691.1599731445312, - 239.05950927734375, - 699.9154663085938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "般的な利用許", - "origin": [ - 239.30999755859375, - 701.739990234375 - ], - "bbox": [ - 239.30999755859375, - 691.3399658203125, - 296.18902587890625, - 704.8099975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.93000030517578, - 691.1599731445312, - 296.18902587890625, - 705.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "諾は契約であるため,それを反故にすることは禁止され", - "origin": [ - 59.44000244140625, - 716.7000122070312 - ], - "bbox": [ - 59.44000244140625, - 706.2999877929688, - 295.955810546875, - 719.77001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.44000244140625, - 706.2999877929688, - 295.955810546875, - 719.77001953125 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.98004150390625, - 38.059959411621094, - 552.3906860351562, - 51.52996063232422 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "場合,利用許諾の準拠を理由に倫理的な正当性を主張す", - "origin": [ - 315.98004150390625, - 48.4599609375 - ], - "bbox": [ - 315.98004150390625, - 38.059959411621094, - 552.3906860351562, - 51.52996063232422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.98004150390625, - 38.059959411621094, - 552.3906860351562, - 51.52996063232422 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 315.8300476074219, - 53.069969177246094, - 552.3740844726562, - 66.53997039794922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ることは禁止する. 例えば, Facebookの利用許諾を盾", - "origin": [ - 315.8300476074219, - 63.469970703125 - ], - "bbox": [ - 315.8300476074219, - 53.069969177246094, - 552.3740844726562, - 66.53997039794922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8300476074219, - 53.069969177246094, - 552.3740844726562, - 66.53997039794922 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 315.92999267578125, - 146.92001342773438, - 552.4890747070312, - 175.29998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本章では先に提示した倫理指針の導出手法や倫理指針", - "origin": [ - 325.5899963378906, - 157.32000732421875 - ], - "bbox": [ - 325.5899963378906, - 146.92001342773438, - 552.4890747070312, - 160.3900146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5899963378906, - 146.92001342773438, - 552.4890747070312, - 160.3900146484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の活用に関する考察を行う.", - "origin": [ - 315.92999267578125, - 172.22998046875 - ], - "bbox": [ - 315.92999267578125, - 161.49996948242188, - 433.0865783691406, - 175.29998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.92999267578125, - 161.49996948242188, - 433.0865783691406, - 175.29998779296875 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 318.44000244140625, - 219.49996948242188, - 552.2059326171875, - 233.16998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "28本の論文のみである. 収集した論文の多くはトピック", - "origin": [ - 318.44000244140625, - 230.0999755859375 - ], - "bbox": [ - 318.44000244140625, - 219.49996948242188, - 552.2059326171875, - 233.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.44000244140625, - 219.49996948242188, - 552.2059326171875, - 233.16998291015625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 315.4500427246094, - 234.51998901367188, - 552.4088745117188, - 247.989990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "モデルを構成するためだけに利用したものである. これ", - "origin": [ - 315.4500427246094, - 244.91998291015625 - ], - "bbox": [ - 315.4500427246094, - 234.51998901367188, - 552.4088745117188, - 247.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4500427246094, - 234.51998901367188, - 552.4088745117188, - 247.989990234375 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 315.7799987792969, - 309.30999755859375, - 552.52001953125, - 457.3099365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "しながら,これらの論文からも広く受け入れられる実践", - "origin": [ - 315.8399963378906, - 319.7099914550781 - ], - "bbox": [ - 315.8399963378906, - 309.30999755859375, - 552.344482421875, - 322.7799987792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8399963378906, - 309.30999755859375, - 552.344482421875, - 322.7799987792969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "的な知見を集約することができた. 今回対象とした論文", - "origin": [ - 315.8199768066406, - 334.67999267578125 - ], - "bbox": [ - 315.8199768066406, - 324.2799987792969, - 552.4815673828125, - 337.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8199768066406, - 324.2799987792969, - 552.4815673828125, - 337.75 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "はすべて英語の論文のみであるが,その出自はヨ", - "origin": [ - 315.94000244140625, - 349.489990234375 - ], - "bbox": [ - 315.94000244140625, - 339.0899963378906, - 522.75, - 352.55999755859375 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 522.75, - 349.489990234375 - ], - "bbox": [ - 522.75, - 339.5599670410156, - 524.3200073242188, - 351.4855041503906 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 524.3200073242188, - 346.3199768066406 - ], - "bbox": [ - 524.3200073242188, - 339.5599670410156, - 533.08203125, - 348.31549072265625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ロッ", - "origin": [ - 533.7999877929688, - 349.9299621582031 - ], - "bbox": [ - 533.7999877929688, - 339.52996826171875, - 552.4461669921875, - 352.9999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.94000244140625, - 339.0899963378906, - 552.4461669921875, - 352.9999694824219 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "パ, 北アメリカ, アジア, 中東を含む11か国と幅広い", - "origin": [ - 316.0799865722656, - 364.5799560546875 - ], - "bbox": [ - 316.0799865722656, - 354.1799621582031, - 552.430908203125, - 367.64996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0799865722656, - 354.1799621582031, - 552.430908203125, - 367.64996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ものであったしたがって,倫理観が特定の国または地", - "origin": [ - 315.8800048828125, - 379.5799560546875 - ], - "bbox": [ - 315.8800048828125, - 369.1799621582031, - 552.3753051757812, - 382.64996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8800048828125, - 369.1799621582031, - 552.3753051757812, - 382.64996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "域に偏ることは回避できたと考えている.", - "origin": [ - 315.8799743652344, - 394.3599548339844 - ], - "bbox": [ - 315.8799743652344, - 383.9599609375, - 488.3030090332031, - 397.4299621582031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8799743652344, - 383.9599609375, - 488.3030090332031, - 397.4299621582031 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 495.8499755859375, - 390.449951171875 - ], - "bbox": [ - 495.8499755859375, - 383.68994140625, - 504.969482421875, - 392.4454650878906 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "方それらの", - "origin": [ - 505.3399658203125, - 394.449951171875 - ], - "bbox": [ - 505.3399658203125, - 384.0499572753906, - 552.4761352539062, - 397.51995849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 495.8499755859375, - 383.68994140625, - 552.4761352539062, - 397.51995849609375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文を精読し,倫理に関する項目を抽出したのは母国語", - "origin": [ - 315.8099670410156, - 409.1699523925781 - ], - "bbox": [ - 315.8099670410156, - 398.76995849609375, - 552.47509765625, - 412.449951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8099670410156, - 398.76995849609375, - 552.47509765625, - 412.449951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が英語である者", - "origin": [ - 315.7799987792969, - 424.2799377441406 - ], - "bbox": [ - 315.7799987792969, - 413.87994384765625, - 382.0270080566406, - 427.5699462890625 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 382.2200012207031, - 420.18994140625 - ], - "bbox": [ - 382.2200012207031, - 413.429931640625, - 391.3395080566406, - 422.1854553222656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "名である. 構築した倫理指針はその者", - "origin": [ - 391.5899963378906, - 424.179931640625 - ], - "bbox": [ - 391.5899963378906, - 413.7799377441406, - 552.52001953125, - 428.0199279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7799987792969, - 413.429931640625, - 552.52001953125, - 428.0199279785156 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "によるバイアスがかかっている可能性があり,それを緩", - "origin": [ - 315.8699951171875, - 439.59991455078125 - ], - "bbox": [ - 315.8699951171875, - 428.71990966796875, - 552.4599609375, - 442.669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8699951171875, - 428.71990966796875, - 552.4599609375, - 442.669921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "和するために, 筆者ら以外の識者と議論を行った.", - "origin": [ - 315.79998779296875, - 454.23992919921875 - ], - "bbox": [ - 315.79998779296875, - 443.8399353027344, - 528.9961547851562, - 457.3099365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.79998779296875, - 443.8399353027344, - 528.9961547851562, - 457.3099365234375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 315.8799743652344, - 458.85992431640625, - 552.434326171875, - 487.2799377441406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "提案手法を基に本倫理指針の内容を厚くするのであれ", - "origin": [ - 325.53997802734375, - 469.2599182128906 - ], - "bbox": [ - 325.53997802734375, - 458.85992431640625, - 552.4122924804688, - 472.3299255371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.53997802734375, - 458.85992431640625, - 552.4122924804688, - 472.3299255371094 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ば,最新のトップカンファレンスの論文を用いてトピッ", - "origin": [ - 315.8799743652344, - 483.4599304199219 - ], - "bbox": [ - 315.8799743652344, - 473.0599365234375, - 552.434326171875, - 487.2799377441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8799743652344, - 473.0599365234375, - 552.434326171875, - 487.2799377441406 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 316.02996826171875, - 488.5899353027344, - 555.1866455078125, - 502.0599365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "クモデルを構成し続ければよいだろう. しかしながら,", - "origin": [ - 316.02996826171875, - 498.98992919921875 - ], - "bbox": [ - 316.02996826171875, - 488.5899353027344, - 555.1866455078125, - 502.0599365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.02996826171875, - 488.5899353027344, - 555.1866455078125, - 502.0599365234375 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 316.0799560546875, - 503.6999206542969, - 549.97216796875, - 517.169921875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "技術や時代の変化に伴い倫理感が変化する可能性がある.", - "origin": [ - 316.0799560546875, - 514.0999145507812 - ], - "bbox": [ - 316.0799560546875, - 503.6999206542969, - 549.97216796875, - 517.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0799560546875, - 503.6999206542969, - 549.97216796875, - 517.169921875 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 315.9099426269531, - 518.5798950195312, - 552.5099487304688, - 532.4598999023438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "そのような場合には, 変化の度合いを見定め,ル", - "origin": [ - 315.9099426269531, - 529.199951171875 - ], - "bbox": [ - 315.9099426269531, - 518.5798950195312, - 523.9453125, - 532.2699584960938 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 524.3199462890625, - 525.5799560546875 - ], - "bbox": [ - 524.3199462890625, - 518.8199462890625, - 533.0819702148438, - 527.575439453125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルの", - "origin": [ - 533.429931640625, - 529.1199340820312 - ], - "bbox": [ - 533.429931640625, - 518.7199096679688, - 552.5099487304688, - 532.4598999023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9099426269531, - 518.5798950195312, - 552.5099487304688, - 532.4598999023438 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 316.0799560546875, - 532.8798828125, - 461.89447021484375, - 546.949951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 316.0799560546875, - 539.639892578125 - ], - "bbox": [ - 316.0799560546875, - 532.8798828125, - 325.199462890625, - 541.6353759765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "部を適切に変更する必要がある.", - "origin": [ - 325.5399475097656, - 543.8799438476562 - ], - "bbox": [ - 325.5399475097656, - 533.4799194335938, - 461.89447021484375, - 546.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0799560546875, - 532.8798828125, - 461.89447021484375, - 546.949951171875 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 315.85009765625, - 575.9599609375, - 552.4624633789062, - 619.9199829101562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "先にも記した通り,本倫理指針は未だ発展途上である.", - "origin": [ - 325.4800109863281, - 587.1199951171875 - ], - "bbox": [ - 325.4800109863281, - 575.9599609375, - 549.9923095703125, - 590.1900024414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4800109863281, - 575.9599609375, - 549.9923095703125, - 590.1900024414062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本節では,この倫理指針をより向上させるための今後の", - "origin": [ - 315.9900817871094, - 601.9000244140625 - ], - "bbox": [ - 315.9900817871094, - 591.5, - 552.4624633789062, - 604.9700317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9900817871094, - 591.5, - 552.4624633789062, - 604.9700317382812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "課題について議論する.", - "origin": [ - 315.85009765625, - 616.8499755859375 - ], - "bbox": [ - 315.85009765625, - 606.449951171875, - 413.8870849609375, - 619.9199829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.85009765625, - 606.449951171875, - 413.8870849609375, - 619.9199829101562 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 315.830078125, - 621.0399780273438, - 552.567138671875, - 649.8300170898438 - ], - "lines": [ - { - "spans": [ - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 325.6800842285156, - 627.7999877929688 - ], - "bbox": [ - 325.6800842285156, - 621.0399780273438, - 334.7995910644531, - 629.7954711914062 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "番に挙げられるのは,本倫理指針の内容の充実であ", - "origin": [ - 335.0500793457031, - 631.8900146484375 - ], - "bbox": [ - 335.0500793457031, - 621.489990234375, - 552.4728393554688, - 634.9600219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.6800842285156, - 621.0399780273438, - 552.4728393554688, - 634.9600219726562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る. 今回精読しなかった領域の論文から倫理に関する議", - "origin": [ - 315.830078125, - 646.760009765625 - ], - "bbox": [ - 315.830078125, - 636.3599853515625, - 552.567138671875, - 649.8300170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.830078125, - 636.3599853515625, - 552.567138671875, - 649.8300170898438 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 315.8100891113281, - 651.429931640625, - 552.4368286132812, - 680.0800170898438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論を取り上げ,それらの領域が持つ倫理的な問題を洗い", - "origin": [ - 315.8100891113281, - 661.8299560546875 - ], - "bbox": [ - 315.8100891113281, - 651.429931640625, - 552.4368286132812, - 664.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8100891113281, - 651.429931640625, - 552.4368286132812, - 664.8999633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "出すことで, より広範な倫理指針を構築することができ", - "origin": [ - 315.9600830078125, - 676.47998046875 - ], - "bbox": [ - 315.9600830078125, - 666.0799560546875, - 552.4027099609375, - 680.0800170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9600830078125, - 666.0799560546875, - 552.4027099609375, - 680.0800170898438 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 315.8700256347656, - 711.0799560546875, - 552.590576171875, - 739.3699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "先に本倫理指針の強制力を増すことで,研究者らにこ", - "origin": [ - 325.4800109863281, - 721.47998046875 - ], - "bbox": [ - 325.4800109863281, - 711.0799560546875, - 552.590576171875, - 724.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4800109863281, - 711.0799560546875, - 552.590576171875, - 724.5499877929688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "れを利用させる手法を説いた. しかしながら,倫理指針", - "origin": [ - 315.8700256347656, - 736.2999877929688 - ], - "bbox": [ - 315.8700256347656, - 725.8999633789062, - 552.5062255859375, - 739.3699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8700256347656, - 725.8999633789062, - 552.5062255859375, - 739.3699951171875 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 58.879974365234375, - 22.899988174438477, - 298.64312744140625, - 502.0599365234375 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.4500427246094, - 22.899988174438477, - 555.1866455078125, - 502.0599365234375 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 503.6999206542969, - 612.0, - 570.1199951171875 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 59.41999816894531, - 571.719970703125, - 296.0340270996094, - 619.9199829101562 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.85009765625, - 571.719970703125, - 552.4624633789062, - 619.9199829101562 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 621.0399780273438, - 612.0, - 680.0800170898438 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 59.44000244140625, - 691.1599731445312, - 296.18902587890625, - 739.3699951171875 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.8700256347656, - 691.1599731445312, - 552.590576171875, - 739.3699951171875 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 59.400001525878906, - 22.899988174438477, - 231.84759521484375, - 36.36998748779297 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "きを用意していたことが記されていた", - "origin": [ - 59.400001525878906, - 33.29998779296875 - ], - "bbox": [ - 59.400001525878906, - 22.899988174438477, - 231.84759521484375, - 36.36998748779297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.400001525878906, - 22.899988174438477, - 231.84759521484375, - 36.36998748779297 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 58.879974365234375, - 37.9799919128418, - 298.5165710449219, - 111.21990203857422 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本倫理指針ではハニ", - "origin": [ - 69.02999877929688, - 48.45001220703125 - ], - "bbox": [ - 69.02999877929688, - 38.050010681152344, - 154.5599822998047, - 51.52001190185547 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 154.6899871826172, - 44.739990234375 - ], - "bbox": [ - 154.6899871826172, - 37.9799919128418, - 163.4519805908203, - 46.73548889160156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ポットの利用を許容するが,そ", - "origin": [ - 164.5299835205078, - 48.39996337890625 - ], - "bbox": [ - 164.5299835205078, - 37.999961853027344, - 296.0299987792969, - 51.46996307373047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.02999877929688, - 37.9799919128418, - 296.0299987792969, - 51.52001190185547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "れが他者に悪影響を与えるようであれば,その利用を禁", - "origin": [ - 59.30998229980469, - 63.36993408203125 - ], - "bbox": [ - 59.30998229980469, - 52.969932556152344, - 296.1999816894531, - 66.43993377685547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.30998229980469, - 52.969932556152344, - 296.1999816894531, - 66.43993377685547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ずる[14]. ハニ", - "origin": [ - 58.879974365234375, - 78.2999267578125 - ], - "bbox": [ - 58.879974365234375, - 67.8999252319336, - 125.052978515625, - 81.36992645263672 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 125.17997741699219, - 74.659912109375 - ], - "bbox": [ - 125.17997741699219, - 67.89990997314453, - 133.9419708251953, - 76.65541076660156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ポットは通常, 同意や後追いの説明を", - "origin": [ - 135.0299835205078, - 78.23992919921875 - ], - "bbox": [ - 135.0299835205078, - 67.83992767333984, - 295.9471435546875, - 81.30992889404297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.879974365234375, - 67.83992767333984, - 295.9471435546875, - 81.36992645263672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "行わずに情報を収集するツ", - "origin": [ - 59.33998107910156, - 93.179931640625 - ], - "bbox": [ - 59.33998107910156, - 82.7799301147461, - 174.2484893798828, - 96.24993133544922 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 174.2484893798828, - 93.179931640625 - ], - "bbox": [ - 174.2484893798828, - 82.77991485595703, - 175.56997680664062, - 95.17543029785156 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 175.56997680664062, - 89.5399169921875 - ], - "bbox": [ - 175.56997680664062, - 82.77991485595703, - 184.33197021484375, - 91.53541564941406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルである. しかしながら,", - "origin": [ - 184.91998291015625, - 93.2999267578125 - ], - "bbox": [ - 184.91998291015625, - 82.8999252319336, - 298.5165710449219, - 96.36992645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.33998107910156, - 82.77991485595703, - 298.5165710449219, - 96.36992645263672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ハニ", - "origin": [ - 59.26997375488281, - 107.93994140625 - ], - "bbox": [ - 59.26997375488281, - 97.5399398803711, - 78.48297882080078, - 111.00994110107422 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 78.60997009277344, - 104.419921875 - ], - "bbox": [ - 78.60997009277344, - 97.65991973876953, - 87.3719711303711, - 106.41542053222656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ポットが与える影響を最小限に留めなくてはなら", - "origin": [ - 88.32997131347656, - 108.14990234375 - ], - "bbox": [ - 88.32997131347656, - 97.7499008178711, - 295.9045104980469, - 111.21990203857422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.26997375488281, - 97.5399398803711, - 295.9045104980469, - 111.21990203857422 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 59.13996887207031, - 112.7799301147461, - 295.92999267578125, - 141.09991455078125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ない先に紹介した偽広告に関する研究[18]では正規の", - "origin": [ - 59.319969177246094, - 123.179931640625 - ], - "bbox": [ - 59.319969177246094, - 112.7799301147461, - 295.91937255859375, - 126.59990692138672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.319969177246094, - 112.7799301147461, - 295.91937255859375, - 126.59990692138672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ユ", - "origin": [ - 59.13996887207031, - 137.96990966796875 - ], - "bbox": [ - 59.13996887207031, - 127.56990814208984, - 68.39997100830078, - 141.0399169921875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 69.12996673583984, - 134.44989013671875 - ], - "bbox": [ - 69.12996673583984, - 127.68988800048828, - 77.8919677734375, - 136.4453887939453 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ザには魅力的でない広告を出すことで,", - "origin": [ - 78.85997009277344, - 138.0299072265625 - ], - "bbox": [ - 78.85997009277344, - 127.6299057006836, - 247.04678344726562, - 141.09991455078125 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 247.04678344726562, - 138.0299072265625 - ], - "bbox": [ - 247.04678344726562, - 127.17987823486328, - 248.6699676513672, - 140.02540588378906 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 248.6699676513672, - 133.93988037109375 - ], - "bbox": [ - 248.6699676513672, - 127.17987823486328, - 257.7894592285156, - 135.9353790283203 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "般ユ", - "origin": [ - 258.03997802734375, - 137.96990966796875 - ], - "bbox": [ - 258.03997802734375, - 127.56990814208984, - 276.510986328125, - 141.0399169921875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 277.2499694824219, - 134.2698974609375 - ], - "bbox": [ - 277.2499694824219, - 127.50989532470703, - 286.011962890625, - 136.26539611816406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ザ", - "origin": [ - 286.97998046875, - 137.7899169921875 - ], - "bbox": [ - 286.97998046875, - 127.3899154663086, - 295.92999267578125, - 140.85992431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.13996887207031, - 127.17987823486328, - 295.92999267578125, - 141.09991455078125 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.21998596191406, - 142.23995971679688, - 295.8399963378906, - 156.179931640625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が偽広告に惹かれる可能性を低減した. その結果,正規", - "origin": [ - 59.21998596191406, - 153.10992431640625 - ], - "bbox": [ - 59.21998596191406, - 142.23995971679688, - 295.8399963378906, - 156.179931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.21998596191406, - 142.23995971679688, - 295.8399963378906, - 156.179931640625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 59.13999938964844, - 157.37997436523438, - 295.8944091796875, - 171.01995849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ユ", - "origin": [ - 59.13999938964844, - 167.949951171875 - ], - "bbox": [ - 59.13999938964844, - 157.54995727539062, - 68.4000015258789, - 171.01995849609375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 69.12999725341797, - 164.40997314453125 - ], - "bbox": [ - 69.12999725341797, - 157.6499786376953, - 77.89199829101562, - 166.4054718017578 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ザからのアクセスはなかったと当該論文の著者らは", - "origin": [ - 78.72999572753906, - 167.77996826171875 - ], - "bbox": [ - 78.72999572753906, - 157.37997436523438, - 295.8944091796875, - 170.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.13999938964844, - 157.37997436523438, - 295.8944091796875, - 171.01995849609375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 59.47999572753906, - 172.38998413085938, - 298.64312744140625, - 200.80999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "記している.", - "origin": [ - 59.47999572753906, - 182.78997802734375 - ], - "bbox": [ - 59.47999572753906, - 172.38998413085938, - 109.44649505615234, - 185.8599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47999572753906, - 172.38998413085938, - 109.44649505615234, - 185.8599853515625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "すべてのサイバ", - "origin": [ - 68.89999389648438, - 197.739990234375 - ], - "bbox": [ - 68.89999389648438, - 187.33999633789062, - 133.72158813476562, - 200.80999755859375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 134.04998779296875, - 194.1300048828125 - ], - "bbox": [ - 134.04998779296875, - 187.37001037597656, - 142.81198120117188, - 196.12550354003906 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリテイプロジェクトにおいて,", - "origin": [ - 142.97998046875, - 197.71002197265625 - ], - "bbox": [ - 142.97998046875, - 187.31002807617188, - 298.64312744140625, - 200.780029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.89999389648438, - 187.31002807617188, - 298.64312744140625, - 200.80999755859375 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 59.310001373291016, - 201.98507690429688, - 295.9800109863281, - 230.58001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究者らはIRBをはじめとする倫理審査委員会に助言", - "origin": [ - 59.310001373291016, - 212.760009765625 - ], - "bbox": [ - 59.310001373291016, - 201.98507690429688, - 295.9800109863281, - 216.02005004882812 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999955296516418, - 0.002999986754730344 - ], - "bbox": [ - 59.310001373291016, - 201.98507690429688, - 295.9800109863281, - 216.02005004882812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を求める必要がある[9, 16, 19, 22]. ここで許可された", - "origin": [ - 59.369998931884766, - 227.510009765625 - ], - "bbox": [ - 59.369998931884766, - 217.11001586914062, - 295.88677978515625, - 230.58001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.369998931884766, - 217.11001586914062, - 295.88677978515625, - 230.58001708984375 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 59.319976806640625, - 232.24000549316406, - 298.5381774902344, - 245.77001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ものが倫理指針における許可ノ", - "origin": [ - 59.319976806640625, - 242.70001220703125 - ], - "bbox": [ - 59.319976806640625, - 232.30001831054688, - 193.2008819580078, - 245.77001953125 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 193.2008819580078, - 242.70001220703125 - ], - "bbox": [ - 193.2008819580078, - 232.24000549316406, - 194.88998413085938, - 244.6955108642578 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 194.88998413085938, - 239.0 - ], - "bbox": [ - 194.88998413085938, - 232.24000549316406, - 203.6519775390625, - 240.99549865722656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ドに該当する. また,", - "origin": [ - 204.25997924804688, - 242.65997314453125 - ], - "bbox": [ - 204.25997924804688, - 232.25997924804688, - 298.5381774902344, - 245.72998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.319976806640625, - 232.24000549316406, - 298.5381774902344, - 245.77001953125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 59.269989013671875, - 247.29000854492188, - 296.04449462890625, - 305.5700378417969 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "医学や様々な大学の倫理指針を参考にし,被験者実験に", - "origin": [ - 60.129974365234375, - 257.69000244140625 - ], - "bbox": [ - 60.129974365234375, - 247.29000854492188, - 296.0024719238281, - 260.760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.129974365234375, - 247.29000854492188, - 296.0024719238281, - 260.760009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "関する項目も設けた. すなわち,人や動物が研究に係わ", - "origin": [ - 59.35997009277344, - 272.59002685546875 - ], - "bbox": [ - 59.35997009277344, - 262.1900329589844, - 295.7527160644531, - 275.6600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.35997009277344, - 262.1900329589844, - 295.7527160644531, - 275.6600341796875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るとき,その確証が持てない場合でも審査委員会に助言", - "origin": [ - 59.269989013671875, - 287.530029296875 - ], - "bbox": [ - 59.269989013671875, - 277.1300354003906, - 295.80999755859375, - 290.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.269989013671875, - 277.1300354003906, - 295.80999755859375, - 290.60003662109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を求めなければならない. このようなル", - "origin": [ - 59.36998748779297, - 302.5000305175781 - ], - "bbox": [ - 59.36998748779297, - 292.10003662109375, - 229.6923828125, - 305.5700378417969 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 230.06997680664062, - 298.780029296875 - ], - "bbox": [ - 230.06997680664062, - 292.02001953125, - 238.83197021484375, - 300.7755432128906 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルは本倫理指", - "origin": [ - 239.0599822998047, - 302.3000183105469 - ], - "bbox": [ - 239.0599822998047, - 291.9000244140625, - 296.04449462890625, - 305.3700256347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36998748779297, - 291.9000244140625, - 296.04449462890625, - 305.5700378417969 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.43998718261719, - 307.09002685546875, - 262.81219482421875, - 320.5600280761719 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "針を用いる研究者以外も準拠すべき項目である.", - "origin": [ - 59.43998718261719, - 317.4900207519531 - ], - "bbox": [ - 59.43998718261719, - 307.09002685546875, - 262.81219482421875, - 320.5600280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.43998718261719, - 307.09002685546875, - 262.81219482421875, - 320.5600280761719 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.529998779296875, - 330.0600280761719, - 167.6284942626953, - 343.530029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "4.1.5 ", - "origin": [ - 59.529998779296875, - 340.46002197265625 - ], - "bbox": [ - 59.529998779296875, - 330.0600280761719, - 85.60699462890625, - 343.530029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 330.0600280761719, - 85.60699462890625, - 343.530029296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "General Rules ", - "origin": [ - 94.93000030517578, - 340.46002197265625 - ], - "bbox": [ - 94.93000030517578, - 330.0600280761719, - 167.6284942626953, - 343.530029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 94.93000030517578, - 330.0600280761719, - 167.6284942626953, - 343.530029296875 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 69.0300064086914, - 347.58001708984375, - 295.8835144042969, - 361.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本項目はサイバ", - "origin": [ - 69.0300064086914, - 357.9800109863281 - ], - "bbox": [ - 69.0300064086914, - 347.58001708984375, - 134.7996063232422, - 361.0500183105469 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 135.3699951171875, - 354.3700256347656 - ], - "bbox": [ - 135.3699951171875, - 347.6100158691406, - 144.13198852539062, - 356.36553955078125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究において広く適用", - "origin": [ - 144.5399932861328, - 357.9800109863281 - ], - "bbox": [ - 144.5399932861328, - 347.58001708984375, - 295.8835144042969, - 361.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.0300064086914, - 347.58001708984375, - 295.8835144042969, - 361.0500183105469 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.29999923706055, - 362.6100158691406, - 296.02996826171875, - 391.1400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "できる事柄である. 本節で示した事柄を守り研究を遂行", - "origin": [ - 59.399993896484375, - 373.010009765625 - ], - "bbox": [ - 59.399993896484375, - 362.6100158691406, - 296.02996826171875, - 376.08001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.399993896484375, - 362.6100158691406, - 296.02996826171875, - 376.08001708984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "するためには,適切な研究プロセスおよびレビュ", - "origin": [ - 59.29999923706055, - 388.07000732421875 - ], - "bbox": [ - 59.29999923706055, - 377.1514892578125, - 266.72003173828125, - 391.1400146484375 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ー", - "origin": [ - 266.72003173828125, - 387.5514831542969 - ], - "bbox": [ - 266.72003173828125, - 377.4169921875, - 276.5019836425781, - 389.5469970703125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "プロ", - "origin": [ - 276.8599853515625, - 387.756103515625 - ], - "bbox": [ - 276.8599853515625, - 377.30877685546875, - 295.7873840332031, - 390.82611083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 59.29999923706055, - 377.1514892578125, - 295.7873840332031, - 391.1400146484375 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 59.209999084472656, - 392.3900146484375, - 295.89666748046875, - 405.8600158691406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セスを構築しなければならない. ここで特に重要となる", - "origin": [ - 59.209999084472656, - 402.7900085449219 - ], - "bbox": [ - 59.209999084472656, - 392.3900146484375, - 295.89666748046875, - 405.8600158691406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.209999084472656, - 392.3900146484375, - 295.89666748046875, - 405.8600158691406 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.30000305175781, - 407.3600158691406, - 295.9661865234375, - 480.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "のは研究に関する倫理的な管理者の存在である. 彼らは", - "origin": [ - 59.36997985839844, - 418.27001953125 - ], - "bbox": [ - 59.36997985839844, - 407.3600158691406, - 295.8999938964844, - 421.34002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36997985839844, - 407.3600158691406, - 295.8999938964844, - 421.34002685546875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究者らから倫理的な相談を受けたり,研究の可否に関", - "origin": [ - 59.30999755859375, - 432.8500061035156 - ], - "bbox": [ - 59.30999755859375, - 422.45001220703125, - 295.9661865234375, - 435.9200134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.30999755859375, - 422.45001220703125, - 295.9661865234375, - 435.9200134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "する最終判断を下さなければならない. 同時に,研究者", - "origin": [ - 59.30000305175781, - 447.70001220703125 - ], - "bbox": [ - 59.30000305175781, - 437.3000183105469, - 295.8646240234375, - 450.77001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.30000305175781, - 437.3000183105469, - 295.8646240234375, - 450.77001953125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は相談すべき相手として研究管理者の存在を把握してお", - "origin": [ - 59.3800048828125, - 462.46002197265625 - ], - "bbox": [ - 59.3800048828125, - 452.0600280761719, - 295.8902282714844, - 465.530029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.3800048828125, - 452.0600280761719, - 295.8902282714844, - 465.530029296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "く必要がある.", - "origin": [ - 59.31999969482422, - 477.79998779296875 - ], - "bbox": [ - 59.31999969482422, - 466.8206787109375, - 119.04460144042969, - 480.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999529719352722, - -0.009699543938040733 - ], - "bbox": [ - 59.31999969482422, - 466.8206787109375, - 119.04460144042969, - 480.8699951171875 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 68.9000015258789, - 482.0799865722656, - 295.9147033691406, - 495.6400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 68.9000015258789, - 492.57000732421875 - ], - "bbox": [ - 68.9000015258789, - 482.1700134277344, - 97.00160217285156, - 495.6400146484375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 97.56999969482422, - 488.92999267578125 - ], - "bbox": [ - 97.56999969482422, - 482.16998291015625, - 106.33200073242188, - 490.9255065917969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究者らは自らが実施する研究", - "origin": [ - 106.62000274658203, - 492.47998046875 - ], - "bbox": [ - 106.62000274658203, - 482.0799865722656, - 295.9147033691406, - 495.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.9000015258789, - 482.0799865722656, - 295.9147033691406, - 495.6400146484375 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 59.18000030517578, - 497.1099853515625, - 295.9999694824219, - 555.6599731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "について,それが外部に対して何らかの悪影響を与える", - "origin": [ - 59.310001373291016, - 507.7499694824219 - ], - "bbox": [ - 59.310001373291016, - 497.1099853515625, - 295.96002197265625, - 510.8199768066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.310001373291016, - 497.1099853515625, - 295.96002197265625, - 510.8199768066406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "可能性を常に考慮しなければならない[23]. また, 外部", - "origin": [ - 59.24000549316406, - 522.3099365234375 - ], - "bbox": [ - 59.24000549316406, - 511.9099426269531, - 295.92242431640625, - 525.3799438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.24000549316406, - 511.9099426269531, - 295.92242431640625, - 525.3799438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に対する悪影響の発生が予想できるときには,それらを", - "origin": [ - 59.310001373291016, - 537.52001953125 - ], - "bbox": [ - 59.310001373291016, - 526.6229248046875, - 295.9999694824219, - 540.5900268554688 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - -0.002099995268508792 - ], - "bbox": [ - 59.310001373291016, - 526.6229248046875, - 295.9999694824219, - 540.5900268554688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "十分に緩和する必要がある.", - "origin": [ - 59.18000030517578, - 552.5899658203125 - ], - "bbox": [ - 59.18000030517578, - 541.5680541992188, - 176.52220153808594, - 555.6599731445312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999859929084778, - -0.005299925804138184 - ], - "bbox": [ - 59.18000030517578, - 541.5680541992188, - 176.52220153808594, - 555.6599731445312 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 68.80999755859375, - 556.5299682617188, - 296.1199951171875, - 570.1199951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セカンドオピニオンは判断を誤った際のセ", - "origin": [ - 68.80999755859375, - 567.0499877929688 - ], - "bbox": [ - 68.80999755859375, - 556.6499633789062, - 248.82241821289062, - 570.1199951171875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 248.88999938964844, - 563.4199829101562 - ], - "bbox": [ - 248.88999938964844, - 556.6599731445312, - 257.6520080566406, - 565.4154663085938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "フガ", - "origin": [ - 258.0799865722656, - 566.9299926757812 - ], - "bbox": [ - 258.0799865722656, - 556.5299682617188, - 276.9657897949219, - 570.0 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 277.3399963378906, - 563.3900146484375 - ], - "bbox": [ - 277.3399963378906, - 556.6300048828125, - 286.10198974609375, - 565.385498046875 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ド", - "origin": [ - 286.4700012207031, - 566.9600219726562 - ], - "bbox": [ - 286.4700012207031, - 556.5599975585938, - 296.1199951171875, - 570.030029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.80999755859375, - 556.5299682617188, - 296.1199951171875, - 570.1199951171875 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 59.41999816894531, - 571.719970703125, - 296.0340270996094, - 585.4900512695312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "となりうる. 研究者らは何かを相談する際,倫理的な管", - "origin": [ - 59.41999816894531, - 582.4200439453125 - ], - "bbox": [ - 59.41999816894531, - 571.719970703125, - 296.0340270996094, - 585.4900512695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41999816894531, - 571.719970703125, - 296.0340270996094, - 585.4900512695312 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 59.290000915527344, - 586.8399658203125, - 295.9056091308594, - 630.510009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理者のみに相談するのではなく,他の研究者に倫理的な", - "origin": [ - 59.290000915527344, - 597.239990234375 - ], - "bbox": [ - 59.290000915527344, - 586.8399658203125, - 295.8500061035156, - 600.3099975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.290000915527344, - 586.8399658203125, - 295.8500061035156, - 600.3099975585938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "疑問点を相談することも重要である. 倫理的な管理者は", - "origin": [ - 59.529998779296875, - 612.1799926757812 - ], - "bbox": [ - 59.529998779296875, - 601.7799682617188, - 295.8899841308594, - 615.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 601.7799682617188, - 295.8899841308594, - 615.25 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究倫理指針を適切に活用するためになくてはならな", - "origin": [ - 59.43000030517578, - 627.4400024414062 - ], - "bbox": [ - 59.43000030517578, - 616.49609375, - 295.9056091308594, - 630.510009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999973177909851, - -0.0022999937646090984 - ], - "bbox": [ - 59.43000030517578, - 616.49609375, - 295.9056091308594, - 630.510009765625 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 59.310001373291016, - 631.5899658203125, - 296.03582763671875, - 690.1300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "い存在である. 研究者の所属組織に倫理委員会が存在し", - "origin": [ - 59.310001373291016, - 641.989990234375 - ], - "bbox": [ - 59.310001373291016, - 631.5899658203125, - 295.9499816894531, - 645.0599975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.310001373291016, - 631.5899658203125, - 295.9499816894531, - 645.0599975585938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ない場合には,それに代わる担当者を据えるべきである.", - "origin": [ - 59.31999206542969, - 656.9400024414062 - ], - "bbox": [ - 59.31999206542969, - 646.5399780273438, - 293.39501953125, - 660.010009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.31999206542969, - 646.5399780273438, - 293.39501953125, - 660.010009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "また,研究プロセスと責任の明確化のために文書化を徹", - "origin": [ - 59.49999237060547, - 671.9299926757812 - ], - "bbox": [ - 59.49999237060547, - 661.5299682617188, - 296.03582763671875, - 675.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.49999237060547, - 661.5299682617188, - 296.03582763671875, - 675.0 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "底することも必要である[1, 23]. ", - "origin": [ - 59.529998779296875, - 687.0599975585938 - ], - "bbox": [ - 59.529998779296875, - 676.0485229492188, - 198.4980010986328, - 690.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999902844429016, - -0.00439995713531971 - ], - "bbox": [ - 59.529998779296875, - 676.0485229492188, - 198.4980010986328, - 690.1300048828125 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 59.44000244140625, - 691.1599731445312, - 296.18902587890625, - 719.77001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "様々な項目で同意について言及した", - "origin": [ - 68.93000030517578, - 702.0999755859375 - ], - "bbox": [ - 68.93000030517578, - 691.699951171875, - 229.70999145507812, - 705.1699829101562 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 229.94000244140625, - 697.9199829101562 - ], - "bbox": [ - 229.94000244140625, - 691.1599731445312, - 239.05950927734375, - 699.9154663085938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "般的な利用許", - "origin": [ - 239.30999755859375, - 701.739990234375 - ], - "bbox": [ - 239.30999755859375, - 691.3399658203125, - 296.18902587890625, - 704.8099975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.93000030517578, - 691.1599731445312, - 296.18902587890625, - 705.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "諾は契約であるため,それを反故にすることは禁止され", - "origin": [ - 59.44000244140625, - 716.7000122070312 - ], - "bbox": [ - 59.44000244140625, - 706.2999877929688, - 295.955810546875, - 719.77001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.44000244140625, - 706.2999877929688, - 295.955810546875, - 719.77001953125 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 59.38999938964844, - 720.9400024414062, - 295.99639892578125, - 735.2617797851562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ている. しかしながら,もし利用許諾が本倫理指針の他", - "origin": [ - 59.38999938964844, - 731.3400268554688 - ], - "bbox": [ - 59.38999938964844, - 720.9400024414062, - 295.99639892578125, - 735.2617797851562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999935030937195, - 0.003599976422265172 - ], - "bbox": [ - 59.38999938964844, - 720.9400024414062, - 295.99639892578125, - 735.2617797851562 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 315.8500061035156, - 22.959985733032227, - 552.4484252929688, - 36.42998504638672 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "項目から乖離しており,倫理的でないことが認められる", - "origin": [ - 315.8500061035156, - 33.3599853515625 - ], - "bbox": [ - 315.8500061035156, - 22.959985733032227, - 552.4484252929688, - 36.42998504638672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8500061035156, - 22.959985733032227, - 552.4484252929688, - 36.42998504638672 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 315.98004150390625, - 38.059959411621094, - 552.3906860351562, - 51.52996063232422 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "場合,利用許諾の準拠を理由に倫理的な正当性を主張す", - "origin": [ - 315.98004150390625, - 48.4599609375 - ], - "bbox": [ - 315.98004150390625, - 38.059959411621094, - 552.3906860351562, - 51.52996063232422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.98004150390625, - 38.059959411621094, - 552.3906860351562, - 51.52996063232422 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 315.8300476074219, - 53.069969177246094, - 552.3740844726562, - 66.53997039794922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ることは禁止する. 例えば, Facebookの利用許諾を盾", - "origin": [ - 315.8300476074219, - 63.469970703125 - ], - "bbox": [ - 315.8300476074219, - 53.069969177246094, - 552.3740844726562, - 66.53997039794922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8300476074219, - 53.069969177246094, - 552.3740844726562, - 66.53997039794922 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 315.8699951171875, - 67.6640853881836, - 552.6259765625, - 111.48998260498047 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に,ユ", - "origin": [ - 315.8699951171875, - 78.219970703125 - ], - "bbox": [ - 315.8699951171875, - 67.8199691772461, - 343.08001708984375, - 81.35797882080078 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 343.92999267578125, - 74.590087890625 - ], - "bbox": [ - 343.92999267578125, - 67.83008575439453, - 352.6919860839844, - 76.60749053955078 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ザが同意すればその友人の顔画像を顔認識の研", - "origin": [ - 353.53997802734375, - 78.0640869140625 - ], - "bbox": [ - 353.53997802734375, - 67.6640853881836, - 552.6259765625, - 81.63190460205078 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 315.8699951171875, - 67.6640853881836, - 552.6259765625, - 81.63190460205078 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究に使用してもよいと主張したとしても,本倫理指針の", - "origin": [ - 316.0799865722656, - 93.41998291015625 - ], - "bbox": [ - 316.0799865722656, - 83.01998138427734, - 552.4749755859375, - 96.48998260498047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0799865722656, - 83.01998138427734, - 552.4749755859375, - 96.48998260498047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "解釈では, これは倫理的ではないとした.", - "origin": [ - 316.0799865722656, - 108.41998291015625 - ], - "bbox": [ - 316.0799865722656, - 97.46121215820312, - 490.6851501464844, - 111.48998260498047 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999948740005493, - -0.003199983388185501 - ], - "bbox": [ - 316.0799865722656, - 97.46121215820312, - 490.6851501464844, - 111.48998260498047 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 316.45001220703125, - 123.37351989746094, - 358.9407958984375, - 140.05906677246094 - ], - "lines": [ - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8966", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "5 ", - "origin": [ - 316.45001220703125, - 135.46002197265625 - ], - "bbox": [ - 316.45001220703125, - 123.37351989746094, - 325.0865173339844, - 139.16192626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9996491074562073, - 0.026490701362490654 - ], - "bbox": [ - 316.45001220703125, - 123.37351989746094, - 325.0865173339844, - 139.16192626953125 - ] - }, - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8966", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "考察", - "origin": [ - 336.25, - 135.9847412109375 - ], - "bbox": [ - 336.25, - 123.89823913574219, - 358.9407958984375, - 140.05906677246094 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9996491074562073, - 0.026490701362490654 - ], - "bbox": [ - 336.25, - 123.89823913574219, - 358.9407958984375, - 140.05906677246094 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 315.92999267578125, - 146.92001342773438, - 552.4890747070312, - 175.29998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本章では先に提示した倫理指針の導出手法や倫理指針", - "origin": [ - 325.5899963378906, - 157.32000732421875 - ], - "bbox": [ - 325.5899963378906, - 146.92001342773438, - 552.4890747070312, - 160.3900146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5899963378906, - 146.92001342773438, - 552.4890747070312, - 160.3900146484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の活用に関する考察を行う.", - "origin": [ - 315.92999267578125, - 172.22998046875 - ], - "bbox": [ - 315.92999267578125, - 161.49996948242188, - 433.0865783691406, - 175.29998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.92999267578125, - 161.49996948242188, - 433.0865783691406, - 175.29998779296875 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 315.739990234375, - 185.75997924804688, - 399.3699951171875, - 200.2335205078125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "5.1 ", - "origin": [ - 315.739990234375, - 196.15997314453125 - ], - "bbox": [ - 315.739990234375, - 185.75997924804688, - 333.1607971191406, - 199.43905639648438 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999279975891113, - 0.01199913676828146 - ], - "bbox": [ - 315.739990234375, - 185.75997924804688, - 333.1607971191406, - 199.43905639648438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究の制限", - "origin": [ - 342.0099792480469, - 196.4752197265625 - ], - "bbox": [ - 342.0099792480469, - 186.07522583007812, - 399.3699951171875, - 200.2335205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999279975891113, - 0.01199913676828146 - ], - "bbox": [ - 342.0099792480469, - 186.07522583007812, - 399.3699951171875, - 200.2335205078125 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 325.5899963378906, - 204.2159881591797, - 552.469970703125, - 218.44000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本倫理指針の構築に直接用いた論文は 2013年以降の", - "origin": [ - 325.5899963378906, - 215.3699951171875 - ], - "bbox": [ - 325.5899963378906, - 204.2159881591797, - 552.469970703125, - 218.44000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 325.5899963378906, - 204.2159881591797, - 552.469970703125, - 218.44000244140625 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 318.44000244140625, - 219.49996948242188, - 552.2059326171875, - 233.16998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "28本の論文のみである. 収集した論文の多くはトピック", - "origin": [ - 318.44000244140625, - 230.0999755859375 - ], - "bbox": [ - 318.44000244140625, - 219.49996948242188, - 552.2059326171875, - 233.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.44000244140625, - 219.49996948242188, - 552.2059326171875, - 233.16998291015625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 315.4500427246094, - 234.51998901367188, - 552.4088745117188, - 247.989990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "モデルを構成するためだけに利用したものである. これ", - "origin": [ - 315.4500427246094, - 244.91998291015625 - ], - "bbox": [ - 315.4500427246094, - 234.51998901367188, - 552.4088745117188, - 247.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4500427246094, - 234.51998901367188, - 552.4088745117188, - 247.989990234375 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 315.82000732421875, - 249.50997924804688, - 552.459228515625, - 308.0400085449219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "らを基にした倫理指針がサイバ", - "origin": [ - 315.8400573730469, - 260.0 - ], - "bbox": [ - 315.8400573730469, - 249.60000610351562, - 448.1240539550781, - 263.07000732421875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 448.6900634765625, - 256.29998779296875 - ], - "bbox": [ - 448.6900634765625, - 249.5399932861328, - 457.4520568847656, - 258.2955017089844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの研究領", - "origin": [ - 457.74005126953125, - 259.90997314453125 - ], - "bbox": [ - 457.74005126953125, - 249.50997924804688, - 552.459228515625, - 262.97998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8400573730469, - 249.50997924804688, - 552.459228515625, - 263.07000732421875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "域を十分にカバ", - "origin": [ - 315.88006591796875, - 274.80999755859375 - ], - "bbox": [ - 315.88006591796875, - 264.4100036621094, - 382.9565124511719, - 277.8800048828125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 383.77008056640625, - 271.16998291015625 - ], - "bbox": [ - 383.77008056640625, - 264.40997314453125, - 392.5320739746094, - 273.1654968261719 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "していることを筆者は保証できない.", - "origin": [ - 393.13006591796875, - 274.88995361328125 - ], - "bbox": [ - 393.13006591796875, - 264.4899597167969, - 549.9736328125, - 277.9599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.88006591796875, - 264.40997314453125, - 549.9736328125, - 277.9599609375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "また,サイバ", - "origin": [ - 316.06005859375, - 289.8399658203125 - ], - "bbox": [ - 316.06005859375, - 279.4399719238281, - 371.8016662597656, - 292.90997314453125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 372.37005615234375, - 286.2399597167969 - ], - "bbox": [ - 372.37005615234375, - 279.4799499511719, - 381.1320495605469, - 288.2354736328125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究に関するすべての倫理", - "origin": [ - 381.4200439453125, - 289.8099670410156 - ], - "bbox": [ - 381.4200439453125, - 279.40997314453125, - 552.4331665039062, - 292.8799743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.06005859375, - 279.40997314453125, - 552.4331665039062, - 292.90997314453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "的項目を提示しているということを保証できないしか", - "origin": [ - 315.82000732421875, - 304.9700012207031 - ], - "bbox": [ - 315.82000732421875, - 294.0731506347656, - 552.4268798828125, - 308.0400085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - -0.002099995268508792 - ], - "bbox": [ - 315.82000732421875, - 294.0731506347656, - 552.4268798828125, - 308.0400085449219 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 315.7799987792969, - 309.30999755859375, - 552.52001953125, - 457.3099365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "しながら,これらの論文からも広く受け入れられる実践", - "origin": [ - 315.8399963378906, - 319.7099914550781 - ], - "bbox": [ - 315.8399963378906, - 309.30999755859375, - 552.344482421875, - 322.7799987792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8399963378906, - 309.30999755859375, - 552.344482421875, - 322.7799987792969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "的な知見を集約することができた. 今回対象とした論文", - "origin": [ - 315.8199768066406, - 334.67999267578125 - ], - "bbox": [ - 315.8199768066406, - 324.2799987792969, - 552.4815673828125, - 337.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8199768066406, - 324.2799987792969, - 552.4815673828125, - 337.75 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "はすべて英語の論文のみであるが,その出自はヨ", - "origin": [ - 315.94000244140625, - 349.489990234375 - ], - "bbox": [ - 315.94000244140625, - 339.0899963378906, - 522.75, - 352.55999755859375 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 522.75, - 349.489990234375 - ], - "bbox": [ - 522.75, - 339.5599670410156, - 524.3200073242188, - 351.4855041503906 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 524.3200073242188, - 346.3199768066406 - ], - "bbox": [ - 524.3200073242188, - 339.5599670410156, - 533.08203125, - 348.31549072265625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ロッ", - "origin": [ - 533.7999877929688, - 349.9299621582031 - ], - "bbox": [ - 533.7999877929688, - 339.52996826171875, - 552.4461669921875, - 352.9999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.94000244140625, - 339.0899963378906, - 552.4461669921875, - 352.9999694824219 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "パ, 北アメリカ, アジア, 中東を含む11か国と幅広い", - "origin": [ - 316.0799865722656, - 364.5799560546875 - ], - "bbox": [ - 316.0799865722656, - 354.1799621582031, - 552.430908203125, - 367.64996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0799865722656, - 354.1799621582031, - 552.430908203125, - 367.64996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ものであったしたがって,倫理観が特定の国または地", - "origin": [ - 315.8800048828125, - 379.5799560546875 - ], - "bbox": [ - 315.8800048828125, - 369.1799621582031, - 552.3753051757812, - 382.64996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8800048828125, - 369.1799621582031, - 552.3753051757812, - 382.64996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "域に偏ることは回避できたと考えている.", - "origin": [ - 315.8799743652344, - 394.3599548339844 - ], - "bbox": [ - 315.8799743652344, - 383.9599609375, - 488.3030090332031, - 397.4299621582031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8799743652344, - 383.9599609375, - 488.3030090332031, - 397.4299621582031 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 495.8499755859375, - 390.449951171875 - ], - "bbox": [ - 495.8499755859375, - 383.68994140625, - 504.969482421875, - 392.4454650878906 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "方それらの", - "origin": [ - 505.3399658203125, - 394.449951171875 - ], - "bbox": [ - 505.3399658203125, - 384.0499572753906, - 552.4761352539062, - 397.51995849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 495.8499755859375, - 383.68994140625, - 552.4761352539062, - 397.51995849609375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論文を精読し,倫理に関する項目を抽出したのは母国語", - "origin": [ - 315.8099670410156, - 409.1699523925781 - ], - "bbox": [ - 315.8099670410156, - 398.76995849609375, - 552.47509765625, - 412.449951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8099670410156, - 398.76995849609375, - 552.47509765625, - 412.449951171875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が英語である者", - "origin": [ - 315.7799987792969, - 424.2799377441406 - ], - "bbox": [ - 315.7799987792969, - 413.87994384765625, - 382.0270080566406, - 427.5699462890625 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 382.2200012207031, - 420.18994140625 - ], - "bbox": [ - 382.2200012207031, - 413.429931640625, - 391.3395080566406, - 422.1854553222656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "名である. 構築した倫理指針はその者", - "origin": [ - 391.5899963378906, - 424.179931640625 - ], - "bbox": [ - 391.5899963378906, - 413.7799377441406, - 552.52001953125, - 428.0199279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.7799987792969, - 413.429931640625, - 552.52001953125, - 428.0199279785156 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "によるバイアスがかかっている可能性があり,それを緩", - "origin": [ - 315.8699951171875, - 439.59991455078125 - ], - "bbox": [ - 315.8699951171875, - 428.71990966796875, - 552.4599609375, - 442.669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8699951171875, - 428.71990966796875, - 552.4599609375, - 442.669921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "和するために, 筆者ら以外の識者と議論を行った.", - "origin": [ - 315.79998779296875, - 454.23992919921875 - ], - "bbox": [ - 315.79998779296875, - 443.8399353027344, - 528.9961547851562, - 457.3099365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.79998779296875, - 443.8399353027344, - 528.9961547851562, - 457.3099365234375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 315.8799743652344, - 458.85992431640625, - 552.434326171875, - 487.2799377441406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "提案手法を基に本倫理指針の内容を厚くするのであれ", - "origin": [ - 325.53997802734375, - 469.2599182128906 - ], - "bbox": [ - 325.53997802734375, - 458.85992431640625, - 552.4122924804688, - 472.3299255371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.53997802734375, - 458.85992431640625, - 552.4122924804688, - 472.3299255371094 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ば,最新のトップカンファレンスの論文を用いてトピッ", - "origin": [ - 315.8799743652344, - 483.4599304199219 - ], - "bbox": [ - 315.8799743652344, - 473.0599365234375, - 552.434326171875, - 487.2799377441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8799743652344, - 473.0599365234375, - 552.434326171875, - 487.2799377441406 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 316.02996826171875, - 488.5899353027344, - 555.1866455078125, - 502.0599365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "クモデルを構成し続ければよいだろう. しかしながら,", - "origin": [ - 316.02996826171875, - 498.98992919921875 - ], - "bbox": [ - 316.02996826171875, - 488.5899353027344, - 555.1866455078125, - 502.0599365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.02996826171875, - 488.5899353027344, - 555.1866455078125, - 502.0599365234375 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 316.0799560546875, - 503.6999206542969, - 549.97216796875, - 517.169921875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "技術や時代の変化に伴い倫理感が変化する可能性がある.", - "origin": [ - 316.0799560546875, - 514.0999145507812 - ], - "bbox": [ - 316.0799560546875, - 503.6999206542969, - 549.97216796875, - 517.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0799560546875, - 503.6999206542969, - 549.97216796875, - 517.169921875 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 315.9099426269531, - 518.5798950195312, - 552.5099487304688, - 532.4598999023438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "そのような場合には, 変化の度合いを見定め,ル", - "origin": [ - 315.9099426269531, - 529.199951171875 - ], - "bbox": [ - 315.9099426269531, - 518.5798950195312, - 523.9453125, - 532.2699584960938 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 524.3199462890625, - 525.5799560546875 - ], - "bbox": [ - 524.3199462890625, - 518.8199462890625, - 533.0819702148438, - 527.575439453125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ルの", - "origin": [ - 533.429931640625, - 529.1199340820312 - ], - "bbox": [ - 533.429931640625, - 518.7199096679688, - 552.5099487304688, - 532.4598999023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9099426269531, - 518.5798950195312, - 552.5099487304688, - 532.4598999023438 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 316.0799560546875, - 532.8798828125, - 461.89447021484375, - 546.949951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 316.0799560546875, - 539.639892578125 - ], - "bbox": [ - 316.0799560546875, - 532.8798828125, - 325.199462890625, - 541.6353759765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "部を適切に変更する必要がある.", - "origin": [ - 325.5399475097656, - 543.8799438476562 - ], - "bbox": [ - 325.5399475097656, - 533.4799194335938, - 461.89447021484375, - 546.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0799560546875, - 532.8798828125, - 461.89447021484375, - 546.949951171875 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 315.739990234375, - 557.489990234375, - 389.907958984375, - 571.953857421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "5.2 ", - "origin": [ - 315.739990234375, - 567.8900146484375 - ], - "bbox": [ - 315.739990234375, - 557.489990234375, - 332.63079833984375, - 571.1863403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999101758003235, - 0.013398796319961548 - ], - "bbox": [ - 315.739990234375, - 557.489990234375, - 332.63079833984375, - 571.1863403320312 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "今後の課題", - "origin": [ - 341.8699951171875, - 568.2401123046875 - ], - "bbox": [ - 341.8699951171875, - 557.840087890625, - 389.907958984375, - 571.953857421875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999101758003235, - 0.013398796319961548 - ], - "bbox": [ - 341.8699951171875, - 557.840087890625, - 389.907958984375, - 571.953857421875 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 315.85009765625, - 575.9599609375, - 552.4624633789062, - 619.9199829101562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "先にも記した通り,本倫理指針は未だ発展途上である.", - "origin": [ - 325.4800109863281, - 587.1199951171875 - ], - "bbox": [ - 325.4800109863281, - 575.9599609375, - 549.9923095703125, - 590.1900024414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4800109863281, - 575.9599609375, - 549.9923095703125, - 590.1900024414062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本節では,この倫理指針をより向上させるための今後の", - "origin": [ - 315.9900817871094, - 601.9000244140625 - ], - "bbox": [ - 315.9900817871094, - 591.5, - 552.4624633789062, - 604.9700317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9900817871094, - 591.5, - 552.4624633789062, - 604.9700317382812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "課題について議論する.", - "origin": [ - 315.85009765625, - 616.8499755859375 - ], - "bbox": [ - 315.85009765625, - 606.449951171875, - 413.8870849609375, - 619.9199829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.85009765625, - 606.449951171875, - 413.8870849609375, - 619.9199829101562 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 315.830078125, - 621.0399780273438, - 552.567138671875, - 649.8300170898438 - ], - "lines": [ - { - "spans": [ - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "一", - "origin": [ - 325.6800842285156, - 627.7999877929688 - ], - "bbox": [ - 325.6800842285156, - 621.0399780273438, - 334.7995910644531, - 629.7954711914062 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "番に挙げられるのは,本倫理指針の内容の充実であ", - "origin": [ - 335.0500793457031, - 631.8900146484375 - ], - "bbox": [ - 335.0500793457031, - 621.489990234375, - 552.4728393554688, - 634.9600219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.6800842285156, - 621.0399780273438, - 552.4728393554688, - 634.9600219726562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "る. 今回精読しなかった領域の論文から倫理に関する議", - "origin": [ - 315.830078125, - 646.760009765625 - ], - "bbox": [ - 315.830078125, - 636.3599853515625, - 552.567138671875, - 649.8300170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.830078125, - 636.3599853515625, - 552.567138671875, - 649.8300170898438 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 315.8100891113281, - 651.429931640625, - 552.4368286132812, - 680.0800170898438 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "論を取り上げ,それらの領域が持つ倫理的な問題を洗い", - "origin": [ - 315.8100891113281, - 661.8299560546875 - ], - "bbox": [ - 315.8100891113281, - 651.429931640625, - 552.4368286132812, - 664.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8100891113281, - 651.429931640625, - 552.4368286132812, - 664.8999633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "出すことで, より広範な倫理指針を構築することができ", - "origin": [ - 315.9600830078125, - 676.47998046875 - ], - "bbox": [ - 315.9600830078125, - 666.0799560546875, - 552.4027099609375, - 680.0800170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9600830078125, - 666.0799560546875, - 552.4027099609375, - 680.0800170898438 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 315.8299865722656, - 680.9199829101562, - 555.169921875, - 709.530029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るようになるだろう. また,より新しい論文を集め続け,", - "origin": [ - 315.8299865722656, - 691.3200073242188 - ], - "bbox": [ - 315.8299865722656, - 680.9199829101562, - 555.169921875, - 694.9165649414062 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - 0.002199994632974267 - ], - "bbox": [ - 315.8299865722656, - 680.9199829101562, - 555.169921875, - 694.9165649414062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "それらの知見を本倫理指針に適用してもよいだろう.", - "origin": [ - 315.9100036621094, - 706.4600219726562 - ], - "bbox": [ - 315.9100036621094, - 696.0599975585938, - 538.5845947265625, - 709.530029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9100036621094, - 696.0599975585938, - 538.5845947265625, - 709.530029296875 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 315.8700256347656, - 711.0799560546875, - 552.590576171875, - 739.3699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "先に本倫理指針の強制力を増すことで,研究者らにこ", - "origin": [ - 325.4800109863281, - 721.47998046875 - ], - "bbox": [ - 325.4800109863281, - 711.0799560546875, - 552.590576171875, - 724.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.4800109863281, - 711.0799560546875, - 552.590576171875, - 724.5499877929688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "れを利用させる手法を説いた. しかしながら,倫理指針", - "origin": [ - 315.8700256347656, - 736.2999877929688 - ], - "bbox": [ - 315.8700256347656, - 725.8999633789062, - 552.5062255859375, - 739.3699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8700256347656, - 725.8999633789062, - 552.5062255859375, - 739.3699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 6, - "type": 0, - "bbox": [ - 59.310001373291016, - 201.98507690429688, - 295.9800109863281, - 230.58001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究者らはIRBをはじめとする倫理審査委員会に助言", - "origin": [ - 59.310001373291016, - 212.760009765625 - ], - "bbox": [ - 59.310001373291016, - 201.98507690429688, - 295.9800109863281, - 216.02005004882812 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999955296516418, - 0.002999986754730344 - ], - "bbox": [ - 59.310001373291016, - 201.98507690429688, - 295.9800109863281, - 216.02005004882812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "を求める必要がある[9, 16, 19, 22]. ここで許可された", - "origin": [ - 59.369998931884766, - 227.510009765625 - ], - "bbox": [ - 59.369998931884766, - 217.11001586914062, - 295.88677978515625, - 230.58001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.369998931884766, - 217.11001586914062, - 295.88677978515625, - 230.58001708984375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.29999923706055, - 362.6100158691406, - 296.02996826171875, - 391.1400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "できる事柄である. 本節で示した事柄を守り研究を遂行", - "origin": [ - 59.399993896484375, - 373.010009765625 - ], - "bbox": [ - 59.399993896484375, - 362.6100158691406, - 296.02996826171875, - 376.08001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.399993896484375, - 362.6100158691406, - 296.02996826171875, - 376.08001708984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "するためには,適切な研究プロセスおよびレビュ", - "origin": [ - 59.29999923706055, - 388.07000732421875 - ], - "bbox": [ - 59.29999923706055, - 377.1514892578125, - 266.72003173828125, - 391.1400146484375 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " ー", - "origin": [ - 266.72003173828125, - 387.5514831542969 - ], - "bbox": [ - 266.72003173828125, - 377.4169921875, - 276.5019836425781, - 389.5469970703125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "プロ", - "origin": [ - 276.8599853515625, - 387.756103515625 - ], - "bbox": [ - 276.8599853515625, - 377.30877685546875, - 295.7873840332031, - 390.82611083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 59.29999923706055, - 377.1514892578125, - 295.7873840332031, - 391.1400146484375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.30000305175781, - 407.3600158691406, - 295.9661865234375, - 480.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "のは研究に関する倫理的な管理者の存在である. 彼らは", - "origin": [ - 59.36997985839844, - 418.27001953125 - ], - "bbox": [ - 59.36997985839844, - 407.3600158691406, - 295.8999938964844, - 421.34002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36997985839844, - 407.3600158691406, - 295.8999938964844, - 421.34002685546875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "研究者らから倫理的な相談を受けたり,研究の可否に関", - "origin": [ - 59.30999755859375, - 432.8500061035156 - ], - "bbox": [ - 59.30999755859375, - 422.45001220703125, - 295.9661865234375, - 435.9200134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.30999755859375, - 422.45001220703125, - 295.9661865234375, - 435.9200134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "する最終判断を下さなければならない. 同時に,研究者", - "origin": [ - 59.30000305175781, - 447.70001220703125 - ], - "bbox": [ - 59.30000305175781, - 437.3000183105469, - 295.8646240234375, - 450.77001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.30000305175781, - 437.3000183105469, - 295.8646240234375, - 450.77001953125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "は相談すべき相手として研究管理者の存在を把握してお", - "origin": [ - 59.3800048828125, - 462.46002197265625 - ], - "bbox": [ - 59.3800048828125, - 452.0600280761719, - 295.8902282714844, - 465.530029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.3800048828125, - 452.0600280761719, - 295.8902282714844, - 465.530029296875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "く必要がある.", - "origin": [ - 59.31999969482422, - 477.79998779296875 - ], - "bbox": [ - 59.31999969482422, - 466.8206787109375, - 119.04460144042969, - 480.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999529719352722, - -0.009699543938040733 - ], - "bbox": [ - 59.31999969482422, - 466.8206787109375, - 119.04460144042969, - 480.8699951171875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 16, - "type": 0, - "bbox": [ - 59.18000030517578, - 497.1099853515625, - 295.9999694824219, - 555.6599731445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "について,それが外部に対して何らかの悪影響を与える", - "origin": [ - 59.310001373291016, - 507.7499694824219 - ], - "bbox": [ - 59.310001373291016, - 497.1099853515625, - 295.96002197265625, - 510.8199768066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.310001373291016, - 497.1099853515625, - 295.96002197265625, - 510.8199768066406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "可能性を常に考慮しなければならない[23]. また, 外部", - "origin": [ - 59.24000549316406, - 522.3099365234375 - ], - "bbox": [ - 59.24000549316406, - 511.9099426269531, - 295.92242431640625, - 525.3799438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.24000549316406, - 511.9099426269531, - 295.92242431640625, - 525.3799438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に対する悪影響の発生が予想できるときには,それらを", - "origin": [ - 59.310001373291016, - 537.52001953125 - ], - "bbox": [ - 59.310001373291016, - 526.6229248046875, - 295.9999694824219, - 540.5900268554688 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - -0.002099995268508792 - ], - "bbox": [ - 59.310001373291016, - 526.6229248046875, - 295.9999694824219, - 540.5900268554688 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "十分に緩和する必要がある.", - "origin": [ - 59.18000030517578, - 552.5899658203125 - ], - "bbox": [ - 59.18000030517578, - 541.5680541992188, - 176.52220153808594, - 555.6599731445312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999859929084778, - -0.005299925804138184 - ], - "bbox": [ - 59.18000030517578, - 541.5680541992188, - 176.52220153808594, - 555.6599731445312 - ] - } - ], - "tag": "rotate" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 59.290000915527344, - 586.8399658203125, - 295.9056091308594, - 630.510009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "理者のみに相談するのではなく,他の研究者に倫理的な", - "origin": [ - 59.290000915527344, - 597.239990234375 - ], - "bbox": [ - 59.290000915527344, - 586.8399658203125, - 295.8500061035156, - 600.3099975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.290000915527344, - 586.8399658203125, - 295.8500061035156, - 600.3099975585938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "疑問点を相談することも重要である. 倫理的な管理者は", - "origin": [ - 59.529998779296875, - 612.1799926757812 - ], - "bbox": [ - 59.529998779296875, - 601.7799682617188, - 295.8899841308594, - 615.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.529998779296875, - 601.7799682617188, - 295.8899841308594, - 615.25 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究倫理指針を適切に活用するためになくてはならな", - "origin": [ - 59.43000030517578, - 627.4400024414062 - ], - "bbox": [ - 59.43000030517578, - 616.49609375, - 295.9056091308594, - 630.510009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999973177909851, - -0.0022999937646090984 - ], - "bbox": [ - 59.43000030517578, - 616.49609375, - 295.9056091308594, - 630.510009765625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 20, - "type": 0, - "bbox": [ - 59.310001373291016, - 631.5899658203125, - 296.03582763671875, - 690.1300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "い存在である. 研究者の所属組織に倫理委員会が存在し", - "origin": [ - 59.310001373291016, - 641.989990234375 - ], - "bbox": [ - 59.310001373291016, - 631.5899658203125, - 295.9499816894531, - 645.0599975585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.310001373291016, - 631.5899658203125, - 295.9499816894531, - 645.0599975585938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ない場合には,それに代わる担当者を据えるべきである.", - "origin": [ - 59.31999206542969, - 656.9400024414062 - ], - "bbox": [ - 59.31999206542969, - 646.5399780273438, - 293.39501953125, - 660.010009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.31999206542969, - 646.5399780273438, - 293.39501953125, - 660.010009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "また,研究プロセスと責任の明確化のために文書化を徹", - "origin": [ - 59.49999237060547, - 671.9299926757812 - ], - "bbox": [ - 59.49999237060547, - 661.5299682617188, - 296.03582763671875, - 675.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.49999237060547, - 661.5299682617188, - 296.03582763671875, - 675.0 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "底することも必要である[1, 23]. ", - "origin": [ - 59.529998779296875, - 687.0599975585938 - ], - "bbox": [ - 59.529998779296875, - 676.0485229492188, - 198.4980010986328, - 690.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999902844429016, - -0.00439995713531971 - ], - "bbox": [ - 59.529998779296875, - 676.0485229492188, - 198.4980010986328, - 690.1300048828125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 59.38999938964844, - 720.9400024414062, - 295.99639892578125, - 735.2617797851562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ている. しかしながら,もし利用許諾が本倫理指針の他", - "origin": [ - 59.38999938964844, - 731.3400268554688 - ], - "bbox": [ - 59.38999938964844, - 720.9400024414062, - 295.99639892578125, - 735.2617797851562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999935030937195, - 0.003599976422265172 - ], - "bbox": [ - 59.38999938964844, - 720.9400024414062, - 295.99639892578125, - 735.2617797851562 - ] - } - ], - "tag": "rotate" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 315.8699951171875, - 67.6640853881836, - 552.6259765625, - 111.48998260498047 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "に,ユ", - "origin": [ - 315.8699951171875, - 78.219970703125 - ], - "bbox": [ - 315.8699951171875, - 67.8199691772461, - 343.08001708984375, - 81.35797882080078 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 343.92999267578125, - 74.590087890625 - ], - "bbox": [ - 343.92999267578125, - 67.83008575439453, - 352.6919860839844, - 76.60749053955078 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ザが同意すればその友人の顔画像を顔認識の研", - "origin": [ - 353.53997802734375, - 78.0640869140625 - ], - "bbox": [ - 353.53997802734375, - 67.6640853881836, - 552.6259765625, - 81.63190460205078 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - 0.0024999920278787613 - ], - "bbox": [ - 315.8699951171875, - 67.6640853881836, - 552.6259765625, - 81.63190460205078 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究に使用してもよいと主張したとしても,本倫理指針の", - "origin": [ - 316.0799865722656, - 93.41998291015625 - ], - "bbox": [ - 316.0799865722656, - 83.01998138427734, - 552.4749755859375, - 96.48998260498047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.0799865722656, - 83.01998138427734, - 552.4749755859375, - 96.48998260498047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "解釈では, これは倫理的ではないとした.", - "origin": [ - 316.0799865722656, - 108.41998291015625 - ], - "bbox": [ - 316.0799865722656, - 97.46121215820312, - 490.6851501464844, - 111.48998260498047 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999948740005493, - -0.003199983388185501 - ], - "bbox": [ - 316.0799865722656, - 97.46121215820312, - 490.6851501464844, - 111.48998260498047 - ] - } - ], - "tag": "rotate" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 316.45001220703125, - 123.37351989746094, - 358.9407958984375, - 140.05906677246094 - ], - "lines": [ - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8966", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "5 ", - "origin": [ - 316.45001220703125, - 135.46002197265625 - ], - "bbox": [ - 316.45001220703125, - 123.37351989746094, - 325.0865173339844, - 139.16192626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9996491074562073, - 0.026490701362490654 - ], - "bbox": [ - 316.45001220703125, - 123.37351989746094, - 325.0865173339844, - 139.16192626953125 - ] - }, - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-8966", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "考察", - "origin": [ - 336.25, - 135.9847412109375 - ], - "bbox": [ - 336.25, - 123.89823913574219, - 358.9407958984375, - 140.05906677246094 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9996491074562073, - 0.026490701362490654 - ], - "bbox": [ - 336.25, - 123.89823913574219, - 358.9407958984375, - 140.05906677246094 - ] - } - ], - "tag": "rotate" - }, - { - "number": 29, - "type": 0, - "bbox": [ - 315.739990234375, - 185.75997924804688, - 399.3699951171875, - 200.2335205078125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "5.1 ", - "origin": [ - 315.739990234375, - 196.15997314453125 - ], - "bbox": [ - 315.739990234375, - 185.75997924804688, - 333.1607971191406, - 199.43905639648438 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999279975891113, - 0.01199913676828146 - ], - "bbox": [ - 315.739990234375, - 185.75997924804688, - 333.1607971191406, - 199.43905639648438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究の制限", - "origin": [ - 342.0099792480469, - 196.4752197265625 - ], - "bbox": [ - 342.0099792480469, - 186.07522583007812, - 399.3699951171875, - 200.2335205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999279975891113, - 0.01199913676828146 - ], - "bbox": [ - 342.0099792480469, - 186.07522583007812, - 399.3699951171875, - 200.2335205078125 - ] - } - ], - "tag": "rotate" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 325.5899963378906, - 204.2159881591797, - 552.469970703125, - 218.44000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本倫理指針の構築に直接用いた論文は 2013年以降の", - "origin": [ - 325.5899963378906, - 215.3699951171875 - ], - "bbox": [ - 325.5899963378906, - 204.2159881591797, - 552.469970703125, - 218.44000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999968409538269, - -0.0024999920278787613 - ], - "bbox": [ - 325.5899963378906, - 204.2159881591797, - 552.469970703125, - 218.44000244140625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 33, - "type": 0, - "bbox": [ - 315.82000732421875, - 249.50997924804688, - 552.459228515625, - 308.0400085449219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "らを基にした倫理指針がサイバ", - "origin": [ - 315.8400573730469, - 260.0 - ], - "bbox": [ - 315.8400573730469, - 249.60000610351562, - 448.1240539550781, - 263.07000732421875 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 448.6900634765625, - 256.29998779296875 - ], - "bbox": [ - 448.6900634765625, - 249.5399932861328, - 457.4520568847656, - 258.2955017089844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの研究領", - "origin": [ - 457.74005126953125, - 259.90997314453125 - ], - "bbox": [ - 457.74005126953125, - 249.50997924804688, - 552.459228515625, - 262.97998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8400573730469, - 249.50997924804688, - 552.459228515625, - 263.07000732421875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "域を十分にカバ", - "origin": [ - 315.88006591796875, - 274.80999755859375 - ], - "bbox": [ - 315.88006591796875, - 264.4100036621094, - 382.9565124511719, - 277.8800048828125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 383.77008056640625, - 271.16998291015625 - ], - "bbox": [ - 383.77008056640625, - 264.40997314453125, - 392.5320739746094, - 273.1654968261719 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "していることを筆者は保証できない.", - "origin": [ - 393.13006591796875, - 274.88995361328125 - ], - "bbox": [ - 393.13006591796875, - 264.4899597167969, - 549.9736328125, - 277.9599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.88006591796875, - 264.40997314453125, - 549.9736328125, - 277.9599609375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "また,サイバ", - "origin": [ - 316.06005859375, - 289.8399658203125 - ], - "bbox": [ - 316.06005859375, - 279.4399719238281, - 371.8016662597656, - 292.90997314453125 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-8965", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 372.37005615234375, - 286.2399597167969 - ], - "bbox": [ - 372.37005615234375, - 279.4799499511719, - 381.1320495605469, - 288.2354736328125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研究に関するすべての倫理", - "origin": [ - 381.4200439453125, - 289.8099670410156 - ], - "bbox": [ - 381.4200439453125, - 279.40997314453125, - 552.4331665039062, - 292.8799743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.06005859375, - 279.40997314453125, - 552.4331665039062, - 292.90997314453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "的項目を提示しているということを保証できないしか", - "origin": [ - 315.82000732421875, - 304.9700012207031 - ], - "bbox": [ - 315.82000732421875, - 294.0731506347656, - 552.4268798828125, - 308.0400085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - -0.002099995268508792 - ], - "bbox": [ - 315.82000732421875, - 294.0731506347656, - 552.4268798828125, - 308.0400085449219 - ] - } - ], - "tag": "rotate" - }, - { - "number": 40, - "type": 0, - "bbox": [ - 315.739990234375, - 557.489990234375, - 389.907958984375, - 571.953857421875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "5.2 ", - "origin": [ - 315.739990234375, - 567.8900146484375 - ], - "bbox": [ - 315.739990234375, - 557.489990234375, - 332.63079833984375, - 571.1863403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999101758003235, - 0.013398796319961548 - ], - "bbox": [ - 315.739990234375, - 557.489990234375, - 332.63079833984375, - 571.1863403320312 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "今後の課題", - "origin": [ - 341.8699951171875, - 568.2401123046875 - ], - "bbox": [ - 341.8699951171875, - 557.840087890625, - 389.907958984375, - 571.953857421875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999101758003235, - 0.013398796319961548 - ], - "bbox": [ - 341.8699951171875, - 557.840087890625, - 389.907958984375, - 571.953857421875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 44, - "type": 0, - "bbox": [ - 315.8299865722656, - 680.9199829101562, - 555.169921875, - 709.530029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "るようになるだろう. また,より新しい論文を集め続け,", - "origin": [ - 315.8299865722656, - 691.3200073242188 - ], - "bbox": [ - 315.8299865722656, - 680.9199829101562, - 555.169921875, - 694.9165649414062 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999997615814209, - 0.002199994632974267 - ], - "bbox": [ - 315.8299865722656, - 680.9199829101562, - 555.169921875, - 694.9165649414062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "それらの知見を本倫理指針に適用してもよいだろう.", - "origin": [ - 315.9100036621094, - 706.4600219726562 - ], - "bbox": [ - 315.9100036621094, - 696.0599975585938, - 538.5845947265625, - 709.530029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.9100036621094, - 696.0599975585938, - 538.5845947265625, - 709.530029296875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 59.400001525878906, - 22.899988174438477, - 231.84759521484375, - 36.36998748779297 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "きを用意していたことが記されていた", - "origin": [ - 59.400001525878906, - 33.29998779296875 - ], - "bbox": [ - 59.400001525878906, - 22.899988174438477, - 231.84759521484375, - 36.36998748779297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.400001525878906, - 22.899988174438477, - 231.84759521484375, - 36.36998748779297 - ] - } - ], - "tag": "header" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 315.8500061035156, - 22.959985733032227, - 552.4484252929688, - 36.42998504638672 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-8964", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "項目から乖離しており,倫理的でないことが認められる", - "origin": [ - 315.8500061035156, - 33.3599853515625 - ], - "bbox": [ - 315.8500061035156, - 22.959985733032227, - 552.4484252929688, - 36.42998504638672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.8500061035156, - 22.959985733032227, - 552.4484252929688, - 36.42998504638672 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 6, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_7": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 3, - "type": 0, - "bbox": [ - 59.7599983215332, - 168.56346130371094, - 124.56210327148438, - 184.1229705810547 - ], - "lines": [ - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9877", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "6 ", - "origin": [ - 59.7599983215332, - 180.64996337890625 - ], - "bbox": [ - 59.7599983215332, - 168.56346130371094, - 68.63800048828125, - 184.1229705810547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.7599983215332, - 168.56346130371094, - 68.63800048828125, - 184.1229705810547 - ] - }, - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9877", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "おわりに", - "origin": [ - 80.15999603271484, - 180.64996337890625 - ], - "bbox": [ - 80.15999603271484, - 168.56346130371094, - 124.56210327148438, - 184.1229705810547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.15999603271484, - 168.56346130371094, - 124.56210327148438, - 184.1229705810547 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 69.0199966430664, - 191.56996154785156, - 296.0807189941406, - 205.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究では過去のサイバ", - "origin": [ - 69.0199966430664, - 202.02996826171875 - ], - "bbox": [ - 69.0199966430664, - 191.62997436523438, - 172.67599487304688, - 205.0999755859375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9873", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 173.2899932861328, - 198.3299560546875 - ], - "bbox": [ - 173.2899932861328, - 191.56996154785156, - 182.05198669433594, - 200.32545471191406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する研究", - "origin": [ - 183.01998901367188, - 201.969970703125 - ], - "bbox": [ - 183.01998901367188, - 191.56997680664062, - 296.0807189941406, - 205.03997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.0199966430664, - 191.56996154785156, - 296.0807189941406, - 205.0999755859375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 59.40998840332031, - 206.44998168945312, - 295.97998046875, - 220.2099609375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "事例を参考にし, 倫理的な問題を洗い出す手法を提案し", - "origin": [ - 59.40998840332031, - 217.13995361328125 - ], - "bbox": [ - 59.40998840332031, - 206.44998168945312, - 295.97998046875, - 220.2099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40998840332031, - 206.44998168945312, - 295.97998046875, - 220.2099609375 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 59.36997985839844, - 221.52999877929688, - 295.4649658203125, - 235.0 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "た. 倫理指針は決定木として表現されており, セキュリ", - "origin": [ - 59.36997985839844, - 231.92999267578125 - ], - "bbox": [ - 59.36997985839844, - 221.52999877929688, - 295.4649658203125, - 235.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36997985839844, - 221.52999877929688, - 295.4649658203125, - 235.0 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 58.94996643066406, - 236.60000610351562, - 296.02117919921875, - 265.09002685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ティ研究者は自分の研究で倫理的議論を必要とする点を", - "origin": [ - 58.94996643066406, - 247.0 - ], - "bbox": [ - 58.94996643066406, - 236.60000610351562, - 295.91156005859375, - 250.07000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.94996643066406, - 236.60000610351562, - 295.91156005859375, - 250.07000732421875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "効率的に確認することができる.", - "origin": [ - 59.40996551513672, - 261.69000244140625 - ], - "bbox": [ - 59.40996551513672, - 251.29000854492188, - 193.9271697998047, - 264.760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40996551513672, - 251.29000854492188, - 193.9271697998047, - 264.760009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "また,", - "origin": [ - 202.3399658203125, - 261.69000244140625 - ], - "bbox": [ - 202.3399658203125, - 251.29000854492188, - 222.3933868408203, - 264.760009765625 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " IRB", - "origin": [ - 222.3933868408203, - 261.69000244140625 - ], - "bbox": [ - 222.3933868408203, - 252.63600158691406, - 246.14695739746094, - 264.6059875488281 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " の審査官が", - "origin": [ - 246.14695739746094, - 261.69000244140625 - ], - "bbox": [ - 246.14695739746094, - 251.27005004882812, - 296.02117919921875, - 265.09002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.3399658203125, - 251.27005004882812, - 296.02117919921875, - 265.09002685546875 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.40999984741211, - 321.6235046386719, - 105.24969482421875, - 337.1829833984375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9877", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "参考文献", - "origin": [ - 59.40999984741211, - 333.7099914550781 - ], - "bbox": [ - 59.40999984741211, - 321.6235046386719, - 105.24969482421875, - 337.1829833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 321.6235046386719, - 105.24969482421875, - 337.1829833984375 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 64.80000305175781, - 340.3759765625, - 296.0068054199219, - 385.2359619140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[1] Michael Bailey, Erin Kenneally, David Dittrich, and", - "origin": [ - 64.80000305175781, - 349.42999267578125 - ], - "bbox": [ - 64.80000305175781, - 340.3759765625, - 296.0068054199219, - 352.3459777832031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.80000305175781, - 340.3759765625, - 296.0068054199219, - 352.3459777832031 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Douglas Maughan. The Menlo Report. SSRN Schol­", - "origin": [ - 78.74998474121094, - 360.3999938964844 - ], - "bbox": [ - 78.74998474121094, - 351.34600830078125, - 295.7219543457031, - 363.31597900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.74998474121094, - 351.34600830078125, - 295.7219543457031, - 363.31597900390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "arly Paper ID 2145676, Social Science Research Net­", - "origin": [ - 78.85995483398438, - 371.3899841308594 - ], - "bbox": [ - 78.85995483398438, - 362.33599853515625, - 295.7005615234375, - 374.30596923828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.85995483398438, - 362.33599853515625, - 295.7005615234375, - 374.30596923828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "work, Rochester, NY, March 2012.", - "origin": [ - 78.95994567871094, - 382.3199768066406 - ], - "bbox": [ - 78.95994567871094, - 373.2659912109375, - 218.2261505126953, - 385.2359619140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.95994567871094, - 373.2659912109375, - 218.2261505126953, - 385.2359619140625 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 64.79994201660156, - 388.14599609375, - 297.199951171875, - 432.9959716796875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[2] Annette Markham and Elizabeth Buchanan. Ethical", - "origin": [ - 64.79994201660156, - 397.1999816894531 - ], - "bbox": [ - 64.79994201660156, - 388.14599609375, - 296.0139465332031, - 400.115966796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.79994201660156, - 388.14599609375, - 296.0139465332031, - 400.115966796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "decision-making and Internet research: Recommenda", - "origin": [ - 78.68994140625, - 408.239990234375 - ], - "bbox": [ - 78.68994140625, - 399.18597412109375, - 293.0450744628906, - 411.1559753417969 - ] - }, - { - "size": 6.0, - "flags": 21, - "font": "*MS Mincho-Bold-9875", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "— ", - "origin": [ - 292.8199462890625, - 406.55999755859375 - ], - "bbox": [ - 292.8199462890625, - 400.52398681640625, - 297.199951171875, - 408.5039978027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.68994140625, - 399.18597412109375, - 297.199951171875, - 411.1559753417969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "tions from the AoIR ethics working committee (Version", - "origin": [ - 78.80995178222656, - 419.1499938964844 - ], - "bbox": [ - 78.80995178222656, - 410.09600830078125, - 296.0515441894531, - 422.06597900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80995178222656, - 410.09600830078125, - 296.0515441894531, - 422.06597900390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "2.0). AoIR, 2012.", - "origin": [ - 78.71994018554688, - 430.0799865722656 - ], - "bbox": [ - 78.71994018554688, - 421.0260009765625, - 148.9761505126953, - 432.9959716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.71994018554688, - 421.0260009765625, - 148.9761505126953, - 432.9959716796875 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 64.79994201660156, - 435.9959716796875, - 296.41973876953125, - 502.71600341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[3] Ra.dim Rehufek and Petr Sojka. Software FraII1ework", - "origin": [ - 64.79994201660156, - 445.04998779296875 - ], - "bbox": [ - 64.79994201660156, - 435.9959716796875, - 295.9180603027344, - 447.9659729003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.79994201660156, - 435.9959716796875, - 295.9180603027344, - 447.9659729003906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "for Topic Modelling with Large Corpora. In Proceed­", - "origin": [ - 78.83993530273438, - 456.0 - ], - "bbox": [ - 78.83993530273438, - 446.94598388671875, - 296.41973876953125, - 458.9159851074219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.83993530273438, - 446.94598388671875, - 296.41973876953125, - 458.9159851074219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ings of the LREC 2010 Workshop on New Challenges", - "origin": [ - 78.88992309570312, - 466.9200134277344 - ], - "bbox": [ - 78.88992309570312, - 457.86602783203125, - 296.0839538574219, - 469.83599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.88992309570312, - 457.86602783203125, - 296.0839538574219, - 469.83599853515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "for NLP珈meworks,", - "origin": [ - 78.88992309570312, - 477.9700012207031 - ], - "bbox": [ - 78.88992309570312, - 468.916015625, - 170.75991821289062, - 480.885986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.88992309570312, - 468.916015625, - 170.75991821289062, - 480.885986328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "pp. 45-50, Valletta, Malta,", - "origin": [ - 178.02992248535156, - 477.9700012207031 - ], - "bbox": [ - 178.02992248535156, - 468.916015625, - 295.576416015625, - 480.885986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.02992248535156, - 468.916015625, - 295.576416015625, - 480.885986328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "May 2010. ELRA. http: //is .muni. cz/publication/", - "origin": [ - 78.82992553710938, - 488.8600158691406 - ], - "bbox": [ - 78.82992553710938, - 479.8060302734375, - 296.0333557128906, - 491.7760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.82992553710938, - 479.8060302734375, - 296.0333557128906, - 491.7760009765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "884893/en.", - "origin": [ - 78.72993469238281, - 499.8000183105469 - ], - "bbox": [ - 78.72993469238281, - 490.74603271484375, - 123.7596206665039, - 502.71600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.72993469238281, - 490.74603271484375, - 123.7596206665039, - 502.71600341796875 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 64.79993438720703, - 505.72601318359375, - 297.2299499511719, - 550.6260375976562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[4] R. R", - "origin": [ - 64.79993438720703, - 514.780029296875 - ], - "bbox": [ - 64.79993438720703, - 505.72601318359375, - 99.64993286132812, - 517.696044921875 - ] - }, - { - "size": 5.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9871", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "血", - "origin": [ - 99.96993255615234, - 514.780029296875 - ], - "bbox": [ - 99.96993255615234, - 509.58001708984375, - 111.96993255615234, - 516.3150024414062 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "irez and N. Choucri. ", - "origin": [ - 112.03993225097656, - 514.780029296875 - ], - "bbox": [ - 112.03993225097656, - 505.72601318359375, - 202.11874389648438, - 517.696044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.79993438720703, - 505.72601318359375, - 202.11874389648438, - 517.696044921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Improving Interdisci­", - "origin": [ - 209.57992553710938, - 514.780029296875 - ], - "bbox": [ - 209.57992553710938, - 505.72601318359375, - 295.6039123535156, - 517.696044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 209.57992553710938, - 505.72601318359375, - 295.6039123535156, - 517.696044921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "plinary Communication With Standardized Cyber Se", - "origin": [ - 78.89991760253906, - 525.7300415039062 - ], - "bbox": [ - 78.89991760253906, - 516.676025390625, - 292.9665222167969, - 528.6460571289062 - ] - }, - { - "size": 6.0, - "flags": 21, - "font": "*MS Mincho-Bold-9875", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "— ", - "origin": [ - 292.8499450683594, - 524.0400390625 - ], - "bbox": [ - 292.8499450683594, - 518.0040283203125, - 297.2299499511719, - 525.9840087890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.89991760253906, - 516.676025390625, - 297.2299499511719, - 528.6460571289062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "curity Terminology: A Literature Review. IEEE Ac­", - "origin": [ - 78.80995178222656, - 536.6400146484375 - ], - "bbox": [ - 78.80995178222656, - 527.5859985351562, - 296.07293701171875, - 539.5560302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80995178222656, - 527.5859985351562, - 296.07293701171875, - 539.5560302734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "cess, Vol. 4, pp. 2216-2243, 2016.", - "origin": [ - 79.04994201660156, - 547.6800537109375 - ], - "bbox": [ - 79.04994201660156, - 538.6260375976562, - 213.05397033691406, - 550.6260375976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.04994201660156, - 538.6260375976562, - 213.05397033691406, - 550.6260375976562 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 64.7999496459961, - 553.4960327148438, - 297.2299499511719, - 598.466064453125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[5] A. Biryukov, I. Pustogarov, and R. P. Weinmann.", - "origin": [ - 64.7999496459961, - 562.550048828125 - ], - "bbox": [ - 64.7999496459961, - 553.4960327148438, - 295.9338684082031, - 565.466064453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.7999496459961, - 553.4960327148438, - 295.9338684082031, - 565.466064453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Trawling for Tor Hidden Services: Detection, Measure", - "origin": [ - 78.83993530273438, - 573.4800415039062 - ], - "bbox": [ - 78.83993530273438, - 564.426025390625, - 292.9709167480469, - 576.3960571289062 - ] - }, - { - "size": 6.0, - "flags": 21, - "font": "*MS Mincho-Bold-9875", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "— ", - "origin": [ - 292.8499450683594, - 571.800048828125 - ], - "bbox": [ - 292.8499450683594, - 565.7640380859375, - 297.2299499511719, - 573.7440185546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.83993530273438, - 564.426025390625, - 297.2299499511719, - 576.3960571289062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ment, Deanonymization. In 2013 IEEE Symposium on", - "origin": [ - 78.8199462890625, - 584.5100708007812 - ], - "bbox": [ - 78.8199462890625, - 575.4560546875, - 296.2489318847656, - 587.4260864257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.8199462890625, - 575.4560546875, - 296.2489318847656, - 587.4260864257812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Security and Privacy, pp. 80-94, May 2013.", - "origin": [ - 78.82992553710938, - 595.550048828125 - ], - "bbox": [ - 78.82992553710938, - 586.4960327148438, - 254.8343505859375, - 598.466064453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.82992553710938, - 586.4960327148438, - 254.8343505859375, - 598.466064453125 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 64.7999267578125, - 601.3760375976562, - 296.08331298828125, - 646.236083984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[6] Kai Wang, Yuqing Zhang, and Peng Liu. Call Me", - "origin": [ - 64.7999267578125, - 610.4300537109375 - ], - "bbox": [ - 64.7999267578125, - 601.3760375976562, - 296.08331298828125, - 613.3460693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.7999267578125, - 601.3760375976562, - 296.08331298828125, - 613.3460693359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Back!: Attacks on System Server and System Apps in", - "origin": [ - 78.61993408203125, - 621.4800415039062 - ], - "bbox": [ - 78.61993408203125, - 612.426025390625, - 296.0628967285156, - 624.3960571289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.61993408203125, - 612.426025390625, - 296.0628967285156, - 624.3960571289062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Android through Synchronous Callback. pp. 92-103.", - "origin": [ - 78.83990478515625, - 632.4400634765625 - ], - "bbox": [ - 78.83990478515625, - 623.3860473632812, - 295.9349365234375, - 635.3560791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.83990478515625, - 623.3860473632812, - 295.9349365234375, - 635.3560791015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ACM Press, 2016.", - "origin": [ - 78.83992004394531, - 643.320068359375 - ], - "bbox": [ - 78.83992004394531, - 634.2660522460938, - 151.4939422607422, - 646.236083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.83992004394531, - 634.2660522460938, - 151.4939422607422, - 646.236083984375 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 64.79991912841797, - 649.2660522460938, - 296.1315612792969, - 694.1260986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[7] Karthikeyan Bhargavan and Gaetan Leurent. On the", - "origin": [ - 64.79991912841797, - 658.320068359375 - ], - "bbox": [ - 64.79991912841797, - 649.2660522460938, - 295.9589538574219, - 661.236083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.79991912841797, - 649.2660522460938, - 295.9589538574219, - 661.236083984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Practical (In-)Security of 64-bit Block Ciphers: Colli­", - "origin": [ - 78.65995788574219, - 669.2500610351562 - ], - "bbox": [ - 78.65995788574219, - 660.196044921875, - 295.7159423828125, - 672.1660766601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.65995788574219, - 660.196044921875, - 295.7159423828125, - 672.1660766601562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "sion Attacks on HTTP over TLS and OpenVPN. pp.", - "origin": [ - 78.80995178222656, - 680.1600341796875 - ], - "bbox": [ - 78.80995178222656, - 671.1060180664062, - 296.1315612792969, - 683.0760498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80995178222656, - 671.1060180664062, - 296.1315612792969, - 683.0760498046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "456-467. ACM Press, 2016.", - "origin": [ - 78.76995849609375, - 691.2100830078125 - ], - "bbox": [ - 78.76995849609375, - 682.1560668945312, - 189.42396545410156, - 694.1260986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.76995849609375, - 682.1560668945312, - 189.42396545410156, - 694.1260986328125 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 64.79995727539062, - 697.0560302734375, - 296.11163330078125, - 741.8760986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[8] Paul Grubbs, ", - "origin": [ - 64.79995727539062, - 706.1100463867188 - ], - "bbox": [ - 64.79995727539062, - 697.0560302734375, - 140.14755249023438, - 709.0260620117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.79995727539062, - 697.0560302734375, - 140.14755249023438, - 709.0260620117188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "llichard McPherson, ", - "origin": [ - 149.04995727539062, - 706.1100463867188 - ], - "bbox": [ - 149.04995727539062, - 697.0560302734375, - 238.9189453125, - 709.0260620117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 149.04995727539062, - 697.0560302734375, - 238.9189453125, - 709.0260620117188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Muh", - "origin": [ - 247.68995666503906, - 706.1100463867188 - ], - "bbox": [ - 247.68995666503906, - 697.0560302734375, - 266.35955810546875, - 709.0260620117188 - ] - }, - { - "size": 5.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9870", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "皿", - "origin": [ - 266.5499572753906, - 706.1100463867188 - ], - "bbox": [ - 266.5499572753906, - 700.3900756835938, - 278.55096435546875, - 707.7985229492188 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "mad", - "origin": [ - 278.64996337890625, - 706.1100463867188 - ], - "bbox": [ - 278.64996337890625, - 697.0560302734375, - 295.9893798828125, - 709.0260620117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.68995666503906, - 697.0560302734375, - 295.9893798828125, - 709.0260620117188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Naveed, Thomas Ristenpart, and Vitaly Shmatikov.", - "origin": [ - 78.79995727539062, - 717.0000610351562 - ], - "bbox": [ - 78.79995727539062, - 707.946044921875, - 296.11163330078125, - 719.9160766601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79995727539062, - 707.946044921875, - 296.11163330078125, - 719.9160766601562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Breaking Web Applications Built On Top of Encrypted", - "origin": [ - 78.95994567871094, - 728.0300903320312 - ], - "bbox": [ - 78.95994567871094, - 718.97607421875, - 295.94134521484375, - 730.9461059570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.95994567871094, - 718.97607421875, - 295.94134521484375, - 730.9461059570312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Data. pp. 1353-1364. ACM Press, 2016.", - "origin": [ - 78.74993896484375, - 738.9600830078125 - ], - "bbox": [ - 78.74993896484375, - 729.9060668945312, - 240.91395568847656, - 741.8760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.74993896484375, - 729.9060668945312, - 240.91395568847656, - 741.8760986328125 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 316.7998046875, - 81.66603088378906, - 552.5326538085938, - 126.51597595214844 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[10] Yue Cao, Zhiyun Qian, Zhongjie Wang, Tuan Dao,", - "origin": [ - 316.7998046875, - 90.72003173828125 - ], - "bbox": [ - 316.7998046875, - 81.66603088378906, - 552.16162109375, - 93.63603210449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998046875, - 81.66603088378906, - 552.16162109375, - 93.63603210449219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Srikanth Krishnai:nurthy, and Lisa Marvel. Off-Path", - "origin": [ - 335.39984130859375, - 101.69000244140625 - ], - "bbox": [ - 335.39984130859375, - 92.63600158691406, - 552.5326538085938, - 104.60600280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39984130859375, - 92.63600158691406, - 552.5326538085938, - 104.60600280761719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "TCP Exploits: Global Rate Limit Considered Danger­", - "origin": [ - 335.31982421875, - 112.69000244140625 - ], - "bbox": [ - 335.31982421875, - 103.63600158691406, - 552.07958984375, - 115.60600280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.31982421875, - 103.63600158691406, - 552.07958984375, - 115.60600280761719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ous. 2016.", - "origin": [ - 335.4098205566406, - 123.5999755859375 - ], - "bbox": [ - 335.4098205566406, - 114.54597473144531, - 376.3638000488281, - 126.51597595214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4098205566406, - 114.54597473144531, - 376.3638000488281, - 126.51597595214844 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 316.7998352050781, - 128.46595764160156, - 552.6766357421875, - 162.3959197998047 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[11] Tielei Wang, Kangjie Lu, Long Lu, Simon Chung, and", - "origin": [ - 316.7998352050781, - 137.51995849609375 - ], - "bbox": [ - 316.7998352050781, - 128.46595764160156, - 552.6766357421875, - 140.4359588623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998352050781, - 128.46595764160156, - 552.6766357421875, - 140.4359588623047 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Wenke Lee. Jekyll on iOS: When Benign Apps Become", - "origin": [ - 335.28985595703125, - 148.429931640625 - ], - "bbox": [ - 335.28985595703125, - 139.3759307861328, - 552.5328369140625, - 151.34593200683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.28985595703125, - 139.3759307861328, - 552.5328369140625, - 151.34593200683594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Evil. 2013.", - "origin": [ - 335.39984130859375, - 159.47991943359375 - ], - "bbox": [ - 335.39984130859375, - 150.42591857910156, - 379.2442321777344, - 162.3959197998047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39984130859375, - 150.42591857910156, - 379.2442321777344, - 162.3959197998047 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 316.7998352050781, - 164.3459014892578, - 552.9217529296875, - 220.1357879638672 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[12] Laurent Simon, Wenduan Xu, and Ross Anderson.", - "origin": [ - 316.7998352050781, - 173.39990234375 - ], - "bbox": [ - 316.7998352050781, - 164.3459014892578, - 552.6714477539062, - 176.31590270996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998352050781, - 164.3459014892578, - 552.6714477539062, - 176.31590270996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Don't Interrupt Me While I Type: Inferring Text En­", - "origin": [ - 335.309814453125, - 184.31988525390625 - ], - "bbox": [ - 335.309814453125, - 175.26588439941406, - 552.2838134765625, - 187.2358856201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.309814453125, - 175.26588439941406, - 552.2838134765625, - 187.2358856201172 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "tered Through Gesture Typing on Android Keyboards.", - "origin": [ - 335.36981201171875, - 195.2298583984375 - ], - "bbox": [ - 335.36981201171875, - 186.1758575439453, - 552.9217529296875, - 198.14585876464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.36981201171875, - 186.1758575439453, - 552.9217529296875, - 198.14585876464844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Proceedings on Privacy Enhancing Technologies, Vol.", - "origin": [ - 335.4897766113281, - 206.27984619140625 - ], - "bbox": [ - 335.4897766113281, - 197.22584533691406, - 552.919189453125, - 209.1958465576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4897766113281, - 197.22584533691406, - 552.919189453125, - 209.1958465576172 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "2016, No. 3, pp. 136-154, 2016.", - "origin": [ - 335.27978515625, - 217.1898193359375 - ], - "bbox": [ - 335.27978515625, - 208.1258087158203, - 461.5737609863281, - 220.1357879638672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.27978515625, - 208.1258087158203, - 461.5737609863281, - 220.1357879638672 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 316.7997741699219, - 222.05580139160156, - 552.6869506835938, - 267.0057678222656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[13] Luke Deshotels, Razvan Deaconescu, Mihai Chiroiu,", - "origin": [ - 316.7997741699219, - 231.10980224609375 - ], - "bbox": [ - 316.7997741699219, - 222.05580139160156, - 552.0403442382812, - 234.0258026123047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7997741699219, - 222.05580139160156, - 552.0403442382812, - 234.0258026123047 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Lucas Davi, Willi", - "origin": [ - 335.229736328125, - 242.039794921875 - ], - "bbox": [ - 335.229736328125, - 232.9857940673828, - 405.4327392578125, - 244.95579528808594 - ] - }, - { - "size": 5.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9870", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "皿", - "origin": [ - 405.6197204589844, - 242.039794921875 - ], - "bbox": [ - 405.6197204589844, - 236.31979370117188, - 417.6207275390625, - 243.72830200195312 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " Enck, and Ahmad-Reza Sadeghi.", - "origin": [ - 417.6207275390625, - 242.039794921875 - ], - "bbox": [ - 417.6207275390625, - 232.9857940673828, - 552.6866455078125, - 244.95579528808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.229736328125, - 232.9857940673828, - 552.6866455078125, - 244.95579528808594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "SandScout: ", - "origin": [ - 335.5197448730469, - 253.07977294921875 - ], - "bbox": [ - 335.5197448730469, - 244.02577209472656, - 381.95074462890625, - 255.9957733154297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5197448730469, - 244.02577209472656, - 381.95074462890625, - 255.9957733154297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Automatic Detection of Flaws in iOS", - "origin": [ - 389.7697448730469, - 253.07977294921875 - ], - "bbox": [ - 389.7697448730469, - 244.02577209472656, - 552.6869506835938, - 255.9957733154297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.7697448730469, - 244.02577209472656, - 552.6869506835938, - 255.9957733154297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Sandbox Profiles. pp. 704-716. ACM Press, 2016.", - "origin": [ - 335.3997802734375, - 264.08978271484375 - ], - "bbox": [ - 335.3997802734375, - 255.03578186035156, - 536.1182250976562, - 267.0057678222656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3997802734375, - 255.03578186035156, - 536.1182250976562, - 267.0057678222656 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 316.7998046875, - 268.85577392578125, - 552.6624145507812, - 324.7457580566406 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[14] Xiaojing Liao, Sumayah Alrwais, Kan Yuan, Luyi", - "origin": [ - 316.7998046875, - 277.9097900390625 - ], - "bbox": [ - 316.7998046875, - 268.85577392578125, - 552.5674438476562, - 280.8257751464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998046875, - 268.85577392578125, - 552.5674438476562, - 280.8257751464844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Xing, XiaoFeng Wang, Shuang Hao, and Raheem", - "origin": [ - 335.28985595703125, - 288.95977783203125 - ], - "bbox": [ - 335.28985595703125, - 279.90576171875, - 552.4673461914062, - 291.8757629394531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.28985595703125, - 279.90576171875, - 552.4673461914062, - 291.8757629394531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Beyah. Lurking Malice in the Cloud: Understanding", - "origin": [ - 335.51983642578125, - 299.8697814941406 - ], - "bbox": [ - 335.51983642578125, - 290.8157958984375, - 552.6624145507812, - 302.7857666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.51983642578125, - 290.8157958984375, - 552.6624145507812, - 302.7857666015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "and Detecting Cloud Repository as a Malicious Ser­", - "origin": [ - 335.4198303222656, - 310.7997741699219 - ], - "bbox": [ - 335.4198303222656, - 301.74578857421875, - 552.26318359375, - 313.71575927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4198303222656, - 301.74578857421875, - 552.26318359375, - 313.71575927734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "vice. pp. 1541-1552. ACM Press, 2016.", - "origin": [ - 335.6497802734375, - 321.82977294921875 - ], - "bbox": [ - 335.6497802734375, - 312.7757568359375, - 493.2637939453125, - 324.7457580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.6497802734375, - 312.7757568359375, - 493.2637939453125, - 324.7457580566406 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 316.7998046875, - 326.70574951171875, - 552.5052490234375, - 371.5657653808594 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[15] Z. Li, S. Alrwais, X. Wang, and E. Alowaisheq. Hunt­", - "origin": [ - 316.7998046875, - 335.759765625 - ], - "bbox": [ - 316.7998046875, - 326.70574951171875, - 552.2839965820312, - 338.6757507324219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998046875, - 326.70574951171875, - 552.2839965820312, - 338.6757507324219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ing the Red Fox Online: Understanding and Detection", - "origin": [ - 335.3498229980469, - 346.6797790527344 - ], - "bbox": [ - 335.3498229980469, - 337.62579345703125, - 552.2572631835938, - 349.59576416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3498229980469, - 337.62579345703125, - 552.2572631835938, - 349.59576416015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "of Mass Redirect-Script Injections. In 2014 IEEE Sym­", - "origin": [ - 335.4098205566406, - 357.57977294921875 - ], - "bbox": [ - 335.4098205566406, - 348.5257568359375, - 552.5052490234375, - 360.4957580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4098205566406, - 348.5257568359375, - 552.5052490234375, - 360.4957580566406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "posium on Security and Privacy, pp. 3-18, May 2014.", - "origin": [ - 335.08984375, - 368.6497802734375 - ], - "bbox": [ - 335.08984375, - 359.59576416015625, - 551.2426147460938, - 371.5657653808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.08984375, - 359.59576416015625, - 551.2426147460938, - 371.5657653808594 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 316.7998352050781, - 373.49578857421875, - 552.6636962890625, - 418.34576416015625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[16] Daiping Liu, Shuai Hao, and Raining Wang. All Your", - "origin": [ - 316.7998352050781, - 382.5497741699219 - ], - "bbox": [ - 316.7998352050781, - 373.49578857421875, - 552.5965576171875, - 385.46575927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998352050781, - 373.49578857421875, - 552.5965576171875, - 385.46575927734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "DNS Records Point to Us: Understanding the Secu­", - "origin": [ - 335.30975341796875, - 393.4897766113281 - ], - "bbox": [ - 335.30975341796875, - 384.435791015625, - 552.2713012695312, - 396.40576171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.30975341796875, - 384.435791015625, - 552.2713012695312, - 396.40576171875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "rity Threats of Dangling DNS Records. pp. 1414-1425.", - "origin": [ - 335.3997802734375, - 404.3997802734375 - ], - "bbox": [ - 335.3997802734375, - 395.34576416015625, - 552.6636962890625, - 407.3157653808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3997802734375, - 395.34576416015625, - 552.6636962890625, - 407.3157653808594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ACM Press, 2016.", - "origin": [ - 335.3997497558594, - 415.4297790527344 - ], - "bbox": [ - 335.3997497558594, - 406.37579345703125, - 408.0537109375, - 418.34576416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3997497558594, - 406.37579345703125, - 408.0537109375, - 418.34576416015625 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 316.79974365234375, - 420.3057861328125, - 552.8016967773438, - 454.11578369140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[17] Gabi N akibly, Jaime Schcolnik, and Yossi Rubin.", - "origin": [ - 316.79974365234375, - 429.3597717285156 - ], - "bbox": [ - 316.79974365234375, - 420.3057861328125, - 552.8016967773438, - 432.2757568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79974365234375, - 420.3057861328125, - 552.8016967773438, - 432.2757568359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Website-Targeted False Content Injection by Network", - "origin": [ - 335.28973388671875, - 440.27978515625 - ], - "bbox": [ - 335.28973388671875, - 431.22576904296875, - 552.5789794921875, - 443.1957702636719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.28973388671875, - 431.22576904296875, - 552.5789794921875, - 443.1957702636719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Operators. 2016.", - "origin": [ - 335.41973876953125, - 451.1997985839844 - ], - "bbox": [ - 335.41973876953125, - 442.14581298828125, - 403.37371826171875, - 454.11578369140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.41973876953125, - 442.14581298828125, - 403.37371826171875, - 454.11578369140625 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 316.79974365234375, - 456.185791015625, - 552.6537475585938, - 501.0257873535156 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[18] Youngsam Park, Jackie Jones, Dai:non McCoy, Elaine", - "origin": [ - 316.79974365234375, - 465.23980712890625 - ], - "bbox": [ - 316.79974365234375, - 456.185791015625, - 552.6537475585938, - 468.1557922363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79974365234375, - 456.185791015625, - 552.6537475585938, - 468.1557922363281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Shi, and Markus Jakobsson. Scambaiter: Understand­", - "origin": [ - 335.51971435546875, - 476.1697998046875 - ], - "bbox": [ - 335.51971435546875, - 467.11578369140625, - 552.1356811523438, - 479.0857849121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.51971435546875, - 467.11578369140625, - 552.1356811523438, - 479.0857849121094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ing targeted nigerian scams on craigslist. ", - "origin": [ - 335.3497009277344, - 487.0798034667969 - ], - "bbox": [ - 335.3497009277344, - 478.02581787109375, - 514.2421875, - 489.99578857421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3497009277344, - 478.02581787109375, - 514.2421875, - 489.99578857421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "system,", - "origin": [ - 523.419677734375, - 487.0798034667969 - ], - "bbox": [ - 523.419677734375, - 478.02581787109375, - 552.1591796875, - 489.99578857421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 523.419677734375, - 478.02581787109375, - 552.1591796875, - 489.99578857421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Vol. 1, p. 2, 2014.", - "origin": [ - 335.3896789550781, - 498.10980224609375 - ], - "bbox": [ - 335.3896789550781, - 489.0557861328125, - 406.87127685546875, - 501.0257873535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3896789550781, - 489.0557861328125, - 406.87127685546875, - 501.0257873535156 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 316.7996826171875, - 502.99578857421875, - 552.7615966796875, - 548.0864868164062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[19] Yan Shoshitaishvili, Christopher Kruegel, and Gio­", - "origin": [ - 316.7996826171875, - 512.0498046875 - ], - "bbox": [ - 316.7996826171875, - 502.99578857421875, - 552.4483642578125, - 514.9658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7996826171875, - 502.99578857421875, - 552.4483642578125, - 514.9658203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "vanni Vigna. Portrait of a Privacy Invasion. Proceed­", - "origin": [ - 335.3197021484375, - 522.9598388671875 - ], - "bbox": [ - 335.3197021484375, - 513.9058227539062, - 552.7615966796875, - 525.8758544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3197021484375, - 513.9058227539062, - 552.7615966796875, - 525.8758544921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ings on Privacy Enhancing Technologies, Vol. 2015,", - "origin": [ - 335.44964599609375, - 533.8698120117188 - ], - "bbox": [ - 335.44964599609375, - 524.8157958984375, - 551.9186401367188, - 536.7858276367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.44964599609375, - 524.8157958984375, - 551.9186401367188, - 536.7858276367188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "No. 1, pp. 41-60, 2015.", - "origin": [ - 335.359619140625, - 544.9097900390625 - ], - "bbox": [ - 335.359619140625, - 535.6248168945312, - 428.3343811035156, - 548.0864868164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.359619140625, - 535.6248168945312, - 428.3343811035156, - 548.0864868164062 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 316.79998779296875, - 549.7959594726562, - 552.9190063476562, - 605.696044921875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[20] C. Rossow, D. Andriesse, T. Werner, B. Stone-Gross,", - "origin": [ - 316.79998779296875, - 558.8499755859375 - ], - "bbox": [ - 316.79998779296875, - 549.7959594726562, - 552.0265502929688, - 561.7659912109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79998779296875, - 549.7959594726562, - 552.0265502929688, - 561.7659912109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "D. Plohmann, C. J. Dietrich, and H. Bos. ", - "origin": [ - 335.30999755859375, - 569.760009765625 - ], - "bbox": [ - 335.30999755859375, - 560.7059936523438, - 524.1575927734375, - 572.676025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.30999755859375, - 560.7059936523438, - 524.1575927734375, - 572.676025390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "SoK:", - "origin": [ - 533.3400268554688, - 569.760009765625 - ], - "bbox": [ - 533.3400268554688, - 560.7059936523438, - 551.9424438476562, - 572.676025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 533.3400268554688, - 560.7059936523438, - 551.9424438476562, - 572.676025390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "P2pwned - Modeling and Evaluating the Resilience of", - "origin": [ - 335.22003173828125, - 580.6799926757812 - ], - "bbox": [ - 335.22003173828125, - 571.6259765625, - 552.74365234375, - 583.5960083007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.22003173828125, - 571.6259765625, - 552.74365234375, - 583.5960083007812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Peer-to-Peer Botnets. In 2013 IEEE Symposium on", - "origin": [ - 335.6100158691406, - 591.72998046875 - ], - "bbox": [ - 335.6100158691406, - 582.6759643554688, - 552.9190063476562, - 594.64599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.6100158691406, - 582.6759643554688, - 552.9190063476562, - 594.64599609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Security and Privacy, pp. 97-111, May 2013.", - "origin": [ - 335.3900146484375, - 602.780029296875 - ], - "bbox": [ - 335.3900146484375, - 593.7260131835938, - 516.0744018554688, - 605.696044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3900146484375, - 593.7260131835938, - 516.0744018554688, - 605.696044921875 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 316.800048828125, - 607.6259765625, - 552.8881225585938, - 641.5460205078125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[21] Rita Sara Schreiber and Phyllis Noerager Stern. To", - "origin": [ - 316.800048828125, - 616.6799926757812 - ], - "bbox": [ - 316.800048828125, - 607.6259765625, - 552.8881225585938, - 619.5960083007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.800048828125, - 607.6259765625, - 552.8881225585938, - 619.5960083007812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Befriend Or Not? A Model of Friend Request Accep­", - "origin": [ - 335.52001953125, - 627.719970703125 - ], - "bbox": [ - 335.52001953125, - 618.6659545898438, - 552.39697265625, - 630.635986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.52001953125, - 618.6659545898438, - 552.39697265625, - 630.635986328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "tance on Facebook. In Symposium on Usable Privacy", - "origin": [ - 335.3699951171875, - 638.6300048828125 - ], - "bbox": [ - 335.3699951171875, - 629.5759887695312, - 552.6779174804688, - 641.5460205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3699951171875, - 629.5759887695312, - 552.6779174804688, - 641.5460205078125 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 316.79998779296875, - 723.1859741210938, - 468.5539245605469, - 735.156005859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[23] ACM Code of Ethics, June 2016.", - "origin": [ - 316.79998779296875, - 732.239990234375 - ], - "bbox": [ - 316.79998779296875, - 723.1859741210938, - 468.5539245605469, - 735.156005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79998779296875, - 723.1859741210938, - 468.5539245605469, - 735.156005859375 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 58.94996643066406, - 23.040002822875977, - 297.2299499511719, - 741.8760986328125 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 316.7996826171875, - 23.040002822875977, - 553.2066650390625, - 741.8760986328125 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 59.41001892089844, - 23.040002822875977, - 296.1055603027344, - 96.05998992919922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "をより便利なものにすることで研究者らに自発的に倫理", - "origin": [ - 59.47999954223633, - 33.44000244140625 - ], - "bbox": [ - 59.47999954223633, - 23.040002822875977, - 296.1055603027344, - 36.51000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47999954223633, - 23.040002822875977, - 296.1055603027344, - 36.51000213623047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "指針を利用してもらう方法もある. たとえば, 本研究で", - "origin": [ - 59.54999923706055, - 48.40997314453125 - ], - "bbox": [ - 59.54999923706055, - 38.009971618652344, - 296.033447265625, - 51.47997283935547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.54999923706055, - 38.009971618652344, - 296.033447265625, - 51.47997283935547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "得られた決定木をインタラクティブに実装し, 研究者ら", - "origin": [ - 59.41001892089844, - 63.3599853515625 - ], - "bbox": [ - 59.41001892089844, - 52.959983825683594, - 295.5259704589844, - 66.42998504638672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41001892089844, - 52.959983825683594, - 295.5259704589844, - 66.42998504638672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が行おうとしている研究が倫理的であるかどうかを確認", - "origin": [ - 59.490020751953125, - 78.25 - ], - "bbox": [ - 59.490020751953125, - 67.63997650146484, - 296.0696105957031, - 81.31999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.490020751953125, - 67.63997650146484, - 296.0696105957031, - 81.31999969482422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "できるようにしてもよいだろう.", - "origin": [ - 59.50001525878906, - 92.989990234375 - ], - "bbox": [ - 59.50001525878906, - 82.5899887084961, - 195.7198028564453, - 96.05998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.50001525878906, - 82.5899887084961, - 195.7198028564453, - 96.05998992919922 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 59.5099983215332, - 97.68994903564453, - 296.4900207519531, - 126.42998504638672 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本倫理指針ではデ", - "origin": [ - 69.02001953125, - 108.14996337890625 - ], - "bbox": [ - 69.02001953125, - 97.74996185302734, - 145.08462524414062, - 111.21996307373047 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9873", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 145.21002197265625, - 104.449951171875 - ], - "bbox": [ - 145.21002197265625, - 97.68994903564453, - 153.97201538085938, - 106.44544982910156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タ処理手法をあらかじめ定め, そ", - "origin": [ - 154.52001953125, - 108.22998046875 - ], - "bbox": [ - 154.52001953125, - 97.8299789428711, - 296.4900207519531, - 111.29998016357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.02001953125, - 97.68994903564453, - 296.4900207519531, - 111.29998016357422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の手法を再利用にすべきであると説いたそのような", - "origin": [ - 59.5099983215332, - 123.3599853515625 - ], - "bbox": [ - 59.5099983215332, - 112.41596984863281, - 296.0796203613281, - 126.42998504638672 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999973177909851, - -0.0022999937646090984 - ], - "bbox": [ - 59.5099983215332, - 112.41596984863281, - 296.0796203613281, - 126.42998504638672 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 58.9900016784668, - 127.54085540771484, - 296.06719970703125, - 156.1099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "デ", - "origin": [ - 58.9900016784668, - 137.989990234375 - ], - "bbox": [ - 58.9900016784668, - 127.5899887084961, - 69.01000213623047, - 141.08103942871094 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9873", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 69.1300048828125, - 134.38128662109375 - ], - "bbox": [ - 69.1300048828125, - 127.62128448486328, - 77.89200592041016, - 136.3951873779297 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タパイプラインの例を提示することで, 本倫理指針", - "origin": [ - 78.44000244140625, - 137.94085693359375 - ], - "bbox": [ - 78.44000244140625, - 127.54085540771484, - 296.06719970703125, - 141.4678497314453 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - 0.002099995268508792 - ], - "bbox": [ - 58.9900016784668, - 127.54085540771484, - 296.06719970703125, - 141.4678497314453 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の適用が容易になる可能性がある.", - "origin": [ - 59.5099983215332, - 153.03997802734375 - ], - "bbox": [ - 59.5099983215332, - 142.63998413085938, - 205.32899475097656, - 156.1099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.5099983215332, - 142.63998413085938, - 205.32899475097656, - 156.1099853515625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 59.7599983215332, - 168.56346130371094, - 124.56210327148438, - 184.1229705810547 - ], - "lines": [ - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9877", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "6 ", - "origin": [ - 59.7599983215332, - 180.64996337890625 - ], - "bbox": [ - 59.7599983215332, - 168.56346130371094, - 68.63800048828125, - 184.1229705810547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.7599983215332, - 168.56346130371094, - 68.63800048828125, - 184.1229705810547 - ] - }, - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9877", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "おわりに", - "origin": [ - 80.15999603271484, - 180.64996337890625 - ], - "bbox": [ - 80.15999603271484, - 168.56346130371094, - 124.56210327148438, - 184.1229705810547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.15999603271484, - 168.56346130371094, - 124.56210327148438, - 184.1229705810547 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 69.0199966430664, - 191.56996154785156, - 296.0807189941406, - 205.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本研究では過去のサイバ", - "origin": [ - 69.0199966430664, - 202.02996826171875 - ], - "bbox": [ - 69.0199966430664, - 191.62997436523438, - 172.67599487304688, - 205.0999755859375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9873", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 173.2899932861328, - 198.3299560546875 - ], - "bbox": [ - 173.2899932861328, - 191.56996154785156, - 182.05198669433594, - 200.32545471191406 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティに関する研究", - "origin": [ - 183.01998901367188, - 201.969970703125 - ], - "bbox": [ - 183.01998901367188, - 191.56997680664062, - 296.0807189941406, - 205.03997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.0199966430664, - 191.56996154785156, - 296.0807189941406, - 205.0999755859375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 59.40998840332031, - 206.44998168945312, - 295.97998046875, - 220.2099609375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "事例を参考にし, 倫理的な問題を洗い出す手法を提案し", - "origin": [ - 59.40998840332031, - 217.13995361328125 - ], - "bbox": [ - 59.40998840332031, - 206.44998168945312, - 295.97998046875, - 220.2099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40998840332031, - 206.44998168945312, - 295.97998046875, - 220.2099609375 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 59.36997985839844, - 221.52999877929688, - 295.4649658203125, - 235.0 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "た. 倫理指針は決定木として表現されており, セキュリ", - "origin": [ - 59.36997985839844, - 231.92999267578125 - ], - "bbox": [ - 59.36997985839844, - 221.52999877929688, - 295.4649658203125, - 235.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.36997985839844, - 221.52999877929688, - 295.4649658203125, - 235.0 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 58.94996643066406, - 236.60000610351562, - 296.02117919921875, - 265.09002685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ティ研究者は自分の研究で倫理的議論を必要とする点を", - "origin": [ - 58.94996643066406, - 247.0 - ], - "bbox": [ - 58.94996643066406, - 236.60000610351562, - 295.91156005859375, - 250.07000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.94996643066406, - 236.60000610351562, - 295.91156005859375, - 250.07000732421875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "効率的に確認することができる.", - "origin": [ - 59.40996551513672, - 261.69000244140625 - ], - "bbox": [ - 59.40996551513672, - 251.29000854492188, - 193.9271697998047, - 264.760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40996551513672, - 251.29000854492188, - 193.9271697998047, - 264.760009765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "また,", - "origin": [ - 202.3399658203125, - 261.69000244140625 - ], - "bbox": [ - 202.3399658203125, - 251.29000854492188, - 222.3933868408203, - 264.760009765625 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " IRB", - "origin": [ - 222.3933868408203, - 261.69000244140625 - ], - "bbox": [ - 222.3933868408203, - 252.63600158691406, - 246.14695739746094, - 264.6059875488281 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": " の審査官が", - "origin": [ - 246.14695739746094, - 261.69000244140625 - ], - "bbox": [ - 246.14695739746094, - 251.27005004882812, - 296.02117919921875, - 265.09002685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.3399658203125, - 251.27005004882812, - 296.02117919921875, - 265.09002685546875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 58.75994873046875, - 266.3200988769531, - 296.1177673339844, - 310.0 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 58.75994873046875, - 276.86004638671875 - ], - "bbox": [ - 58.75994873046875, - 266.4600524902344, - 87.35774993896484, - 279.9300537109375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9873", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 87.9699478149414, - 273.26007080078125 - ], - "bbox": [ - 87.9699478149414, - 266.50006103515625, - 96.73194885253906, - 275.2555847167969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの専門家でなくとも研究の際に注", - "origin": [ - 97.80995178222656, - 276.7200927734375 - ], - "bbox": [ - 97.80995178222656, - 266.3200988769531, - 295.93389892578125, - 279.79010009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.75994873046875, - 266.3200988769531, - 295.93389892578125, - 279.9300537109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "意すべき点を確認できるため, サイバ", - "origin": [ - 59.52995300292969, - 291.590087890625 - ], - "bbox": [ - 59.52995300292969, - 281.1900939941406, - 219.60775756835938, - 294.66009521484375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9873", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 220.33995056152344, - 288.02008056640625 - ], - "bbox": [ - 220.33995056152344, - 281.26007080078125, - 229.10194396972656, - 290.0155944824219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研", - "origin": [ - 230.05995178222656, - 291.65008544921875 - ], - "bbox": [ - 230.05995178222656, - 281.2500915527344, - 296.1177673339844, - 294.7200927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.52995300292969, - 281.1900939941406, - 296.1177673339844, - 294.7200927734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究倫理の入口として本倫理指針を用いることもできる.", - "origin": [ - 59.459999084472656, - 306.92999267578125 - ], - "bbox": [ - 59.459999084472656, - 296.0426025390625, - 291.59521484375, - 310.0 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - -0.002099995268508792 - ], - "bbox": [ - 59.459999084472656, - 296.0426025390625, - 291.59521484375, - 310.0 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.40999984741211, - 321.6235046386719, - 105.24969482421875, - 337.1829833984375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.5, - "flags": 4, - "font": "*Kozuka Gothic Pr6N M-9877", - "color": 0, - "ascender": 1.0509999990463257, - "descender": -0.3019999861717224, - "text": "参考文献", - "origin": [ - 59.40999984741211, - 333.7099914550781 - ], - "bbox": [ - 59.40999984741211, - 321.6235046386719, - 105.24969482421875, - 337.1829833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.40999984741211, - 321.6235046386719, - 105.24969482421875, - 337.1829833984375 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 64.80000305175781, - 340.3759765625, - 296.0068054199219, - 385.2359619140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[1] Michael Bailey, Erin Kenneally, David Dittrich, and", - "origin": [ - 64.80000305175781, - 349.42999267578125 - ], - "bbox": [ - 64.80000305175781, - 340.3759765625, - 296.0068054199219, - 352.3459777832031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.80000305175781, - 340.3759765625, - 296.0068054199219, - 352.3459777832031 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Douglas Maughan. The Menlo Report. SSRN Schol­", - "origin": [ - 78.74998474121094, - 360.3999938964844 - ], - "bbox": [ - 78.74998474121094, - 351.34600830078125, - 295.7219543457031, - 363.31597900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.74998474121094, - 351.34600830078125, - 295.7219543457031, - 363.31597900390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "arly Paper ID 2145676, Social Science Research Net­", - "origin": [ - 78.85995483398438, - 371.3899841308594 - ], - "bbox": [ - 78.85995483398438, - 362.33599853515625, - 295.7005615234375, - 374.30596923828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.85995483398438, - 362.33599853515625, - 295.7005615234375, - 374.30596923828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "work, Rochester, NY, March 2012.", - "origin": [ - 78.95994567871094, - 382.3199768066406 - ], - "bbox": [ - 78.95994567871094, - 373.2659912109375, - 218.2261505126953, - 385.2359619140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.95994567871094, - 373.2659912109375, - 218.2261505126953, - 385.2359619140625 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 64.79994201660156, - 388.14599609375, - 297.199951171875, - 432.9959716796875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[2] Annette Markham and Elizabeth Buchanan. Ethical", - "origin": [ - 64.79994201660156, - 397.1999816894531 - ], - "bbox": [ - 64.79994201660156, - 388.14599609375, - 296.0139465332031, - 400.115966796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.79994201660156, - 388.14599609375, - 296.0139465332031, - 400.115966796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "decision-making and Internet research: Recommenda", - "origin": [ - 78.68994140625, - 408.239990234375 - ], - "bbox": [ - 78.68994140625, - 399.18597412109375, - 293.0450744628906, - 411.1559753417969 - ] - }, - { - "size": 6.0, - "flags": 21, - "font": "*MS Mincho-Bold-9875", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "— ", - "origin": [ - 292.8199462890625, - 406.55999755859375 - ], - "bbox": [ - 292.8199462890625, - 400.52398681640625, - 297.199951171875, - 408.5039978027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.68994140625, - 399.18597412109375, - 297.199951171875, - 411.1559753417969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "tions from the AoIR ethics working committee (Version", - "origin": [ - 78.80995178222656, - 419.1499938964844 - ], - "bbox": [ - 78.80995178222656, - 410.09600830078125, - 296.0515441894531, - 422.06597900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80995178222656, - 410.09600830078125, - 296.0515441894531, - 422.06597900390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "2.0). AoIR, 2012.", - "origin": [ - 78.71994018554688, - 430.0799865722656 - ], - "bbox": [ - 78.71994018554688, - 421.0260009765625, - 148.9761505126953, - 432.9959716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.71994018554688, - 421.0260009765625, - 148.9761505126953, - 432.9959716796875 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 64.79994201660156, - 435.9959716796875, - 296.41973876953125, - 502.71600341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[3] Ra.dim Rehufek and Petr Sojka. Software FraII1ework", - "origin": [ - 64.79994201660156, - 445.04998779296875 - ], - "bbox": [ - 64.79994201660156, - 435.9959716796875, - 295.9180603027344, - 447.9659729003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.79994201660156, - 435.9959716796875, - 295.9180603027344, - 447.9659729003906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "for Topic Modelling with Large Corpora. In Proceed­", - "origin": [ - 78.83993530273438, - 456.0 - ], - "bbox": [ - 78.83993530273438, - 446.94598388671875, - 296.41973876953125, - 458.9159851074219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.83993530273438, - 446.94598388671875, - 296.41973876953125, - 458.9159851074219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ings of the LREC 2010 Workshop on New Challenges", - "origin": [ - 78.88992309570312, - 466.9200134277344 - ], - "bbox": [ - 78.88992309570312, - 457.86602783203125, - 296.0839538574219, - 469.83599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.88992309570312, - 457.86602783203125, - 296.0839538574219, - 469.83599853515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "for NLP珈meworks,", - "origin": [ - 78.88992309570312, - 477.9700012207031 - ], - "bbox": [ - 78.88992309570312, - 468.916015625, - 170.75991821289062, - 480.885986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.88992309570312, - 468.916015625, - 170.75991821289062, - 480.885986328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "pp. 45-50, Valletta, Malta,", - "origin": [ - 178.02992248535156, - 477.9700012207031 - ], - "bbox": [ - 178.02992248535156, - 468.916015625, - 295.576416015625, - 480.885986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.02992248535156, - 468.916015625, - 295.576416015625, - 480.885986328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "May 2010. ELRA. http: //is .muni. cz/publication/", - "origin": [ - 78.82992553710938, - 488.8600158691406 - ], - "bbox": [ - 78.82992553710938, - 479.8060302734375, - 296.0333557128906, - 491.7760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.82992553710938, - 479.8060302734375, - 296.0333557128906, - 491.7760009765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "884893/en.", - "origin": [ - 78.72993469238281, - 499.8000183105469 - ], - "bbox": [ - 78.72993469238281, - 490.74603271484375, - 123.7596206665039, - 502.71600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.72993469238281, - 490.74603271484375, - 123.7596206665039, - 502.71600341796875 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 64.79993438720703, - 505.72601318359375, - 297.2299499511719, - 550.6260375976562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[4] R. R", - "origin": [ - 64.79993438720703, - 514.780029296875 - ], - "bbox": [ - 64.79993438720703, - 505.72601318359375, - 99.64993286132812, - 517.696044921875 - ] - }, - { - "size": 5.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9871", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "血", - "origin": [ - 99.96993255615234, - 514.780029296875 - ], - "bbox": [ - 99.96993255615234, - 509.58001708984375, - 111.96993255615234, - 516.3150024414062 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "irez and N. Choucri. ", - "origin": [ - 112.03993225097656, - 514.780029296875 - ], - "bbox": [ - 112.03993225097656, - 505.72601318359375, - 202.11874389648438, - 517.696044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.79993438720703, - 505.72601318359375, - 202.11874389648438, - 517.696044921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Improving Interdisci­", - "origin": [ - 209.57992553710938, - 514.780029296875 - ], - "bbox": [ - 209.57992553710938, - 505.72601318359375, - 295.6039123535156, - 517.696044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 209.57992553710938, - 505.72601318359375, - 295.6039123535156, - 517.696044921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "plinary Communication With Standardized Cyber Se", - "origin": [ - 78.89991760253906, - 525.7300415039062 - ], - "bbox": [ - 78.89991760253906, - 516.676025390625, - 292.9665222167969, - 528.6460571289062 - ] - }, - { - "size": 6.0, - "flags": 21, - "font": "*MS Mincho-Bold-9875", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "— ", - "origin": [ - 292.8499450683594, - 524.0400390625 - ], - "bbox": [ - 292.8499450683594, - 518.0040283203125, - 297.2299499511719, - 525.9840087890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.89991760253906, - 516.676025390625, - 297.2299499511719, - 528.6460571289062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "curity Terminology: A Literature Review. IEEE Ac­", - "origin": [ - 78.80995178222656, - 536.6400146484375 - ], - "bbox": [ - 78.80995178222656, - 527.5859985351562, - 296.07293701171875, - 539.5560302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80995178222656, - 527.5859985351562, - 296.07293701171875, - 539.5560302734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "cess, Vol. 4, pp. 2216-2243, 2016.", - "origin": [ - 79.04994201660156, - 547.6800537109375 - ], - "bbox": [ - 79.04994201660156, - 538.6260375976562, - 213.05397033691406, - 550.6260375976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.04994201660156, - 538.6260375976562, - 213.05397033691406, - 550.6260375976562 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 64.7999496459961, - 553.4960327148438, - 297.2299499511719, - 598.466064453125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[5] A. Biryukov, I. Pustogarov, and R. P. Weinmann.", - "origin": [ - 64.7999496459961, - 562.550048828125 - ], - "bbox": [ - 64.7999496459961, - 553.4960327148438, - 295.9338684082031, - 565.466064453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.7999496459961, - 553.4960327148438, - 295.9338684082031, - 565.466064453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Trawling for Tor Hidden Services: Detection, Measure", - "origin": [ - 78.83993530273438, - 573.4800415039062 - ], - "bbox": [ - 78.83993530273438, - 564.426025390625, - 292.9709167480469, - 576.3960571289062 - ] - }, - { - "size": 6.0, - "flags": 21, - "font": "*MS Mincho-Bold-9875", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "— ", - "origin": [ - 292.8499450683594, - 571.800048828125 - ], - "bbox": [ - 292.8499450683594, - 565.7640380859375, - 297.2299499511719, - 573.7440185546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.83993530273438, - 564.426025390625, - 297.2299499511719, - 576.3960571289062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ment, Deanonymization. In 2013 IEEE Symposium on", - "origin": [ - 78.8199462890625, - 584.5100708007812 - ], - "bbox": [ - 78.8199462890625, - 575.4560546875, - 296.2489318847656, - 587.4260864257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.8199462890625, - 575.4560546875, - 296.2489318847656, - 587.4260864257812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Security and Privacy, pp. 80-94, May 2013.", - "origin": [ - 78.82992553710938, - 595.550048828125 - ], - "bbox": [ - 78.82992553710938, - 586.4960327148438, - 254.8343505859375, - 598.466064453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.82992553710938, - 586.4960327148438, - 254.8343505859375, - 598.466064453125 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 64.7999267578125, - 601.3760375976562, - 296.08331298828125, - 646.236083984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[6] Kai Wang, Yuqing Zhang, and Peng Liu. Call Me", - "origin": [ - 64.7999267578125, - 610.4300537109375 - ], - "bbox": [ - 64.7999267578125, - 601.3760375976562, - 296.08331298828125, - 613.3460693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.7999267578125, - 601.3760375976562, - 296.08331298828125, - 613.3460693359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Back!: Attacks on System Server and System Apps in", - "origin": [ - 78.61993408203125, - 621.4800415039062 - ], - "bbox": [ - 78.61993408203125, - 612.426025390625, - 296.0628967285156, - 624.3960571289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.61993408203125, - 612.426025390625, - 296.0628967285156, - 624.3960571289062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Android through Synchronous Callback. pp. 92-103.", - "origin": [ - 78.83990478515625, - 632.4400634765625 - ], - "bbox": [ - 78.83990478515625, - 623.3860473632812, - 295.9349365234375, - 635.3560791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.83990478515625, - 623.3860473632812, - 295.9349365234375, - 635.3560791015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ACM Press, 2016.", - "origin": [ - 78.83992004394531, - 643.320068359375 - ], - "bbox": [ - 78.83992004394531, - 634.2660522460938, - 151.4939422607422, - 646.236083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.83992004394531, - 634.2660522460938, - 151.4939422607422, - 646.236083984375 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 64.79991912841797, - 649.2660522460938, - 296.1315612792969, - 694.1260986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[7] Karthikeyan Bhargavan and Gaetan Leurent. On the", - "origin": [ - 64.79991912841797, - 658.320068359375 - ], - "bbox": [ - 64.79991912841797, - 649.2660522460938, - 295.9589538574219, - 661.236083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.79991912841797, - 649.2660522460938, - 295.9589538574219, - 661.236083984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Practical (In-)Security of 64-bit Block Ciphers: Colli­", - "origin": [ - 78.65995788574219, - 669.2500610351562 - ], - "bbox": [ - 78.65995788574219, - 660.196044921875, - 295.7159423828125, - 672.1660766601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.65995788574219, - 660.196044921875, - 295.7159423828125, - 672.1660766601562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "sion Attacks on HTTP over TLS and OpenVPN. pp.", - "origin": [ - 78.80995178222656, - 680.1600341796875 - ], - "bbox": [ - 78.80995178222656, - 671.1060180664062, - 296.1315612792969, - 683.0760498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80995178222656, - 671.1060180664062, - 296.1315612792969, - 683.0760498046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "456-467. ACM Press, 2016.", - "origin": [ - 78.76995849609375, - 691.2100830078125 - ], - "bbox": [ - 78.76995849609375, - 682.1560668945312, - 189.42396545410156, - 694.1260986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.76995849609375, - 682.1560668945312, - 189.42396545410156, - 694.1260986328125 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 64.79995727539062, - 697.0560302734375, - 296.11163330078125, - 741.8760986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[8] Paul Grubbs, ", - "origin": [ - 64.79995727539062, - 706.1100463867188 - ], - "bbox": [ - 64.79995727539062, - 697.0560302734375, - 140.14755249023438, - 709.0260620117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.79995727539062, - 697.0560302734375, - 140.14755249023438, - 709.0260620117188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "llichard McPherson, ", - "origin": [ - 149.04995727539062, - 706.1100463867188 - ], - "bbox": [ - 149.04995727539062, - 697.0560302734375, - 238.9189453125, - 709.0260620117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 149.04995727539062, - 697.0560302734375, - 238.9189453125, - 709.0260620117188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Muh", - "origin": [ - 247.68995666503906, - 706.1100463867188 - ], - "bbox": [ - 247.68995666503906, - 697.0560302734375, - 266.35955810546875, - 709.0260620117188 - ] - }, - { - "size": 5.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9870", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "皿", - "origin": [ - 266.5499572753906, - 706.1100463867188 - ], - "bbox": [ - 266.5499572753906, - 700.3900756835938, - 278.55096435546875, - 707.7985229492188 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "mad", - "origin": [ - 278.64996337890625, - 706.1100463867188 - ], - "bbox": [ - 278.64996337890625, - 697.0560302734375, - 295.9893798828125, - 709.0260620117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.68995666503906, - 697.0560302734375, - 295.9893798828125, - 709.0260620117188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Naveed, Thomas Ristenpart, and Vitaly Shmatikov.", - "origin": [ - 78.79995727539062, - 717.0000610351562 - ], - "bbox": [ - 78.79995727539062, - 707.946044921875, - 296.11163330078125, - 719.9160766601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79995727539062, - 707.946044921875, - 296.11163330078125, - 719.9160766601562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Breaking Web Applications Built On Top of Encrypted", - "origin": [ - 78.95994567871094, - 728.0300903320312 - ], - "bbox": [ - 78.95994567871094, - 718.97607421875, - 295.94134521484375, - 730.9461059570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.95994567871094, - 718.97607421875, - 295.94134521484375, - 730.9461059570312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Data. pp. 1353-1364. ACM Press, 2016.", - "origin": [ - 78.74993896484375, - 738.9600830078125 - ], - "bbox": [ - 78.74993896484375, - 729.9060668945312, - 240.91395568847656, - 741.8760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.74993896484375, - 729.9060668945312, - 240.91395568847656, - 741.8760986328125 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 321.35992431640625, - 23.816055297851562, - 553.2066650390625, - 79.74601745605469 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[9] A. Bianchi, J. Corbetta, L. Invernizzi, Y. Fratantonio,", - "origin": [ - 321.35992431640625, - 32.87005615234375 - ], - "bbox": [ - 321.35992431640625, - 23.816055297851562, - 552.179931640625, - 35.78605651855469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.35992431640625, - 23.816055297851562, - 552.179931640625, - 35.78605651855469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "C. Kruegel, and G. Vigna. What the App is That?", - "origin": [ - 335.70989990234375, - 43.9200439453125 - ], - "bbox": [ - 335.70989990234375, - 34.86604309082031, - 552.1726684570312, - 46.83604431152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.70989990234375, - 34.86604309082031, - 552.1726684570312, - 46.83604431152344 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Deception and Countermeasures in the Android User", - "origin": [ - 335.30987548828125, - 54.84002685546875 - ], - "bbox": [ - 335.30987548828125, - 45.78602600097656, - 552.5756225585938, - 57.75602722167969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.30987548828125, - 45.78602600097656, - 552.5756225585938, - 57.75602722167969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Interface. In 2015 IEEE Symposium on Security and", - "origin": [ - 335.2398376464844, - 65.760009765625 - ], - "bbox": [ - 335.2398376464844, - 56.70600891113281, - 553.2066650390625, - 68.67601013183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2398376464844, - 56.70600891113281, - 553.2066650390625, - 68.67601013183594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Privacy, pp. 931-948, May 2015.", - "origin": [ - 335.48980712890625, - 76.83001708984375 - ], - "bbox": [ - 335.48980712890625, - 67.77601623535156, - 467.10418701171875, - 79.74601745605469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.48980712890625, - 67.77601623535156, - 467.10418701171875, - 79.74601745605469 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 316.7998046875, - 81.66603088378906, - 552.5326538085938, - 126.51597595214844 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[10] Yue Cao, Zhiyun Qian, Zhongjie Wang, Tuan Dao,", - "origin": [ - 316.7998046875, - 90.72003173828125 - ], - "bbox": [ - 316.7998046875, - 81.66603088378906, - 552.16162109375, - 93.63603210449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998046875, - 81.66603088378906, - 552.16162109375, - 93.63603210449219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Srikanth Krishnai:nurthy, and Lisa Marvel. Off-Path", - "origin": [ - 335.39984130859375, - 101.69000244140625 - ], - "bbox": [ - 335.39984130859375, - 92.63600158691406, - 552.5326538085938, - 104.60600280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39984130859375, - 92.63600158691406, - 552.5326538085938, - 104.60600280761719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "TCP Exploits: Global Rate Limit Considered Danger­", - "origin": [ - 335.31982421875, - 112.69000244140625 - ], - "bbox": [ - 335.31982421875, - 103.63600158691406, - 552.07958984375, - 115.60600280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.31982421875, - 103.63600158691406, - 552.07958984375, - 115.60600280761719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ous. 2016.", - "origin": [ - 335.4098205566406, - 123.5999755859375 - ], - "bbox": [ - 335.4098205566406, - 114.54597473144531, - 376.3638000488281, - 126.51597595214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4098205566406, - 114.54597473144531, - 376.3638000488281, - 126.51597595214844 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 316.7998352050781, - 128.46595764160156, - 552.6766357421875, - 162.3959197998047 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[11] Tielei Wang, Kangjie Lu, Long Lu, Simon Chung, and", - "origin": [ - 316.7998352050781, - 137.51995849609375 - ], - "bbox": [ - 316.7998352050781, - 128.46595764160156, - 552.6766357421875, - 140.4359588623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998352050781, - 128.46595764160156, - 552.6766357421875, - 140.4359588623047 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Wenke Lee. Jekyll on iOS: When Benign Apps Become", - "origin": [ - 335.28985595703125, - 148.429931640625 - ], - "bbox": [ - 335.28985595703125, - 139.3759307861328, - 552.5328369140625, - 151.34593200683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.28985595703125, - 139.3759307861328, - 552.5328369140625, - 151.34593200683594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Evil. 2013.", - "origin": [ - 335.39984130859375, - 159.47991943359375 - ], - "bbox": [ - 335.39984130859375, - 150.42591857910156, - 379.2442321777344, - 162.3959197998047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.39984130859375, - 150.42591857910156, - 379.2442321777344, - 162.3959197998047 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 316.7998352050781, - 164.3459014892578, - 552.9217529296875, - 220.1357879638672 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[12] Laurent Simon, Wenduan Xu, and Ross Anderson.", - "origin": [ - 316.7998352050781, - 173.39990234375 - ], - "bbox": [ - 316.7998352050781, - 164.3459014892578, - 552.6714477539062, - 176.31590270996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998352050781, - 164.3459014892578, - 552.6714477539062, - 176.31590270996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Don't Interrupt Me While I Type: Inferring Text En­", - "origin": [ - 335.309814453125, - 184.31988525390625 - ], - "bbox": [ - 335.309814453125, - 175.26588439941406, - 552.2838134765625, - 187.2358856201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.309814453125, - 175.26588439941406, - 552.2838134765625, - 187.2358856201172 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "tered Through Gesture Typing on Android Keyboards.", - "origin": [ - 335.36981201171875, - 195.2298583984375 - ], - "bbox": [ - 335.36981201171875, - 186.1758575439453, - 552.9217529296875, - 198.14585876464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.36981201171875, - 186.1758575439453, - 552.9217529296875, - 198.14585876464844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Proceedings on Privacy Enhancing Technologies, Vol.", - "origin": [ - 335.4897766113281, - 206.27984619140625 - ], - "bbox": [ - 335.4897766113281, - 197.22584533691406, - 552.919189453125, - 209.1958465576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4897766113281, - 197.22584533691406, - 552.919189453125, - 209.1958465576172 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "2016, No. 3, pp. 136-154, 2016.", - "origin": [ - 335.27978515625, - 217.1898193359375 - ], - "bbox": [ - 335.27978515625, - 208.1258087158203, - 461.5737609863281, - 220.1357879638672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.27978515625, - 208.1258087158203, - 461.5737609863281, - 220.1357879638672 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 316.7997741699219, - 222.05580139160156, - 552.6869506835938, - 267.0057678222656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[13] Luke Deshotels, Razvan Deaconescu, Mihai Chiroiu,", - "origin": [ - 316.7997741699219, - 231.10980224609375 - ], - "bbox": [ - 316.7997741699219, - 222.05580139160156, - 552.0403442382812, - 234.0258026123047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7997741699219, - 222.05580139160156, - 552.0403442382812, - 234.0258026123047 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Lucas Davi, Willi", - "origin": [ - 335.229736328125, - 242.039794921875 - ], - "bbox": [ - 335.229736328125, - 232.9857940673828, - 405.4327392578125, - 244.95579528808594 - ] - }, - { - "size": 5.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9870", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "皿", - "origin": [ - 405.6197204589844, - 242.039794921875 - ], - "bbox": [ - 405.6197204589844, - 236.31979370117188, - 417.6207275390625, - 243.72830200195312 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": " Enck, and Ahmad-Reza Sadeghi.", - "origin": [ - 417.6207275390625, - 242.039794921875 - ], - "bbox": [ - 417.6207275390625, - 232.9857940673828, - 552.6866455078125, - 244.95579528808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.229736328125, - 232.9857940673828, - 552.6866455078125, - 244.95579528808594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "SandScout: ", - "origin": [ - 335.5197448730469, - 253.07977294921875 - ], - "bbox": [ - 335.5197448730469, - 244.02577209472656, - 381.95074462890625, - 255.9957733154297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5197448730469, - 244.02577209472656, - 381.95074462890625, - 255.9957733154297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Automatic Detection of Flaws in iOS", - "origin": [ - 389.7697448730469, - 253.07977294921875 - ], - "bbox": [ - 389.7697448730469, - 244.02577209472656, - 552.6869506835938, - 255.9957733154297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.7697448730469, - 244.02577209472656, - 552.6869506835938, - 255.9957733154297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Sandbox Profiles. pp. 704-716. ACM Press, 2016.", - "origin": [ - 335.3997802734375, - 264.08978271484375 - ], - "bbox": [ - 335.3997802734375, - 255.03578186035156, - 536.1182250976562, - 267.0057678222656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3997802734375, - 255.03578186035156, - 536.1182250976562, - 267.0057678222656 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 316.7998046875, - 268.85577392578125, - 552.6624145507812, - 324.7457580566406 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[14] Xiaojing Liao, Sumayah Alrwais, Kan Yuan, Luyi", - "origin": [ - 316.7998046875, - 277.9097900390625 - ], - "bbox": [ - 316.7998046875, - 268.85577392578125, - 552.5674438476562, - 280.8257751464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998046875, - 268.85577392578125, - 552.5674438476562, - 280.8257751464844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Xing, XiaoFeng Wang, Shuang Hao, and Raheem", - "origin": [ - 335.28985595703125, - 288.95977783203125 - ], - "bbox": [ - 335.28985595703125, - 279.90576171875, - 552.4673461914062, - 291.8757629394531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.28985595703125, - 279.90576171875, - 552.4673461914062, - 291.8757629394531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Beyah. Lurking Malice in the Cloud: Understanding", - "origin": [ - 335.51983642578125, - 299.8697814941406 - ], - "bbox": [ - 335.51983642578125, - 290.8157958984375, - 552.6624145507812, - 302.7857666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.51983642578125, - 290.8157958984375, - 552.6624145507812, - 302.7857666015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "and Detecting Cloud Repository as a Malicious Ser­", - "origin": [ - 335.4198303222656, - 310.7997741699219 - ], - "bbox": [ - 335.4198303222656, - 301.74578857421875, - 552.26318359375, - 313.71575927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4198303222656, - 301.74578857421875, - 552.26318359375, - 313.71575927734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "vice. pp. 1541-1552. ACM Press, 2016.", - "origin": [ - 335.6497802734375, - 321.82977294921875 - ], - "bbox": [ - 335.6497802734375, - 312.7757568359375, - 493.2637939453125, - 324.7457580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.6497802734375, - 312.7757568359375, - 493.2637939453125, - 324.7457580566406 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 316.7998046875, - 326.70574951171875, - 552.5052490234375, - 371.5657653808594 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[15] Z. Li, S. Alrwais, X. Wang, and E. Alowaisheq. Hunt­", - "origin": [ - 316.7998046875, - 335.759765625 - ], - "bbox": [ - 316.7998046875, - 326.70574951171875, - 552.2839965820312, - 338.6757507324219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998046875, - 326.70574951171875, - 552.2839965820312, - 338.6757507324219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ing the Red Fox Online: Understanding and Detection", - "origin": [ - 335.3498229980469, - 346.6797790527344 - ], - "bbox": [ - 335.3498229980469, - 337.62579345703125, - 552.2572631835938, - 349.59576416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3498229980469, - 337.62579345703125, - 552.2572631835938, - 349.59576416015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "of Mass Redirect-Script Injections. In 2014 IEEE Sym­", - "origin": [ - 335.4098205566406, - 357.57977294921875 - ], - "bbox": [ - 335.4098205566406, - 348.5257568359375, - 552.5052490234375, - 360.4957580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.4098205566406, - 348.5257568359375, - 552.5052490234375, - 360.4957580566406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "posium on Security and Privacy, pp. 3-18, May 2014.", - "origin": [ - 335.08984375, - 368.6497802734375 - ], - "bbox": [ - 335.08984375, - 359.59576416015625, - 551.2426147460938, - 371.5657653808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.08984375, - 359.59576416015625, - 551.2426147460938, - 371.5657653808594 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 316.7998352050781, - 373.49578857421875, - 552.6636962890625, - 418.34576416015625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[16] Daiping Liu, Shuai Hao, and Raining Wang. All Your", - "origin": [ - 316.7998352050781, - 382.5497741699219 - ], - "bbox": [ - 316.7998352050781, - 373.49578857421875, - 552.5965576171875, - 385.46575927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7998352050781, - 373.49578857421875, - 552.5965576171875, - 385.46575927734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "DNS Records Point to Us: Understanding the Secu­", - "origin": [ - 335.30975341796875, - 393.4897766113281 - ], - "bbox": [ - 335.30975341796875, - 384.435791015625, - 552.2713012695312, - 396.40576171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.30975341796875, - 384.435791015625, - 552.2713012695312, - 396.40576171875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "rity Threats of Dangling DNS Records. pp. 1414-1425.", - "origin": [ - 335.3997802734375, - 404.3997802734375 - ], - "bbox": [ - 335.3997802734375, - 395.34576416015625, - 552.6636962890625, - 407.3157653808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3997802734375, - 395.34576416015625, - 552.6636962890625, - 407.3157653808594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ACM Press, 2016.", - "origin": [ - 335.3997497558594, - 415.4297790527344 - ], - "bbox": [ - 335.3997497558594, - 406.37579345703125, - 408.0537109375, - 418.34576416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3997497558594, - 406.37579345703125, - 408.0537109375, - 418.34576416015625 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 316.79974365234375, - 420.3057861328125, - 552.8016967773438, - 454.11578369140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[17] Gabi N akibly, Jaime Schcolnik, and Yossi Rubin.", - "origin": [ - 316.79974365234375, - 429.3597717285156 - ], - "bbox": [ - 316.79974365234375, - 420.3057861328125, - 552.8016967773438, - 432.2757568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79974365234375, - 420.3057861328125, - 552.8016967773438, - 432.2757568359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Website-Targeted False Content Injection by Network", - "origin": [ - 335.28973388671875, - 440.27978515625 - ], - "bbox": [ - 335.28973388671875, - 431.22576904296875, - 552.5789794921875, - 443.1957702636719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.28973388671875, - 431.22576904296875, - 552.5789794921875, - 443.1957702636719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Operators. 2016.", - "origin": [ - 335.41973876953125, - 451.1997985839844 - ], - "bbox": [ - 335.41973876953125, - 442.14581298828125, - 403.37371826171875, - 454.11578369140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.41973876953125, - 442.14581298828125, - 403.37371826171875, - 454.11578369140625 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 316.79974365234375, - 456.185791015625, - 552.6537475585938, - 501.0257873535156 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[18] Youngsam Park, Jackie Jones, Dai:non McCoy, Elaine", - "origin": [ - 316.79974365234375, - 465.23980712890625 - ], - "bbox": [ - 316.79974365234375, - 456.185791015625, - 552.6537475585938, - 468.1557922363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79974365234375, - 456.185791015625, - 552.6537475585938, - 468.1557922363281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Shi, and Markus Jakobsson. Scambaiter: Understand­", - "origin": [ - 335.51971435546875, - 476.1697998046875 - ], - "bbox": [ - 335.51971435546875, - 467.11578369140625, - 552.1356811523438, - 479.0857849121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.51971435546875, - 467.11578369140625, - 552.1356811523438, - 479.0857849121094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ing targeted nigerian scams on craigslist. ", - "origin": [ - 335.3497009277344, - 487.0798034667969 - ], - "bbox": [ - 335.3497009277344, - 478.02581787109375, - 514.2421875, - 489.99578857421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3497009277344, - 478.02581787109375, - 514.2421875, - 489.99578857421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "system,", - "origin": [ - 523.419677734375, - 487.0798034667969 - ], - "bbox": [ - 523.419677734375, - 478.02581787109375, - 552.1591796875, - 489.99578857421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 523.419677734375, - 478.02581787109375, - 552.1591796875, - 489.99578857421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Vol. 1, p. 2, 2014.", - "origin": [ - 335.3896789550781, - 498.10980224609375 - ], - "bbox": [ - 335.3896789550781, - 489.0557861328125, - 406.87127685546875, - 501.0257873535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3896789550781, - 489.0557861328125, - 406.87127685546875, - 501.0257873535156 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 316.7996826171875, - 502.99578857421875, - 552.7615966796875, - 548.0864868164062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[19] Yan Shoshitaishvili, Christopher Kruegel, and Gio­", - "origin": [ - 316.7996826171875, - 512.0498046875 - ], - "bbox": [ - 316.7996826171875, - 502.99578857421875, - 552.4483642578125, - 514.9658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.7996826171875, - 502.99578857421875, - 552.4483642578125, - 514.9658203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "vanni Vigna. Portrait of a Privacy Invasion. Proceed­", - "origin": [ - 335.3197021484375, - 522.9598388671875 - ], - "bbox": [ - 335.3197021484375, - 513.9058227539062, - 552.7615966796875, - 525.8758544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3197021484375, - 513.9058227539062, - 552.7615966796875, - 525.8758544921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "ings on Privacy Enhancing Technologies, Vol. 2015,", - "origin": [ - 335.44964599609375, - 533.8698120117188 - ], - "bbox": [ - 335.44964599609375, - 524.8157958984375, - 551.9186401367188, - 536.7858276367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.44964599609375, - 524.8157958984375, - 551.9186401367188, - 536.7858276367188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "No. 1, pp. 41-60, 2015.", - "origin": [ - 335.359619140625, - 544.9097900390625 - ], - "bbox": [ - 335.359619140625, - 535.6248168945312, - 428.3343811035156, - 548.0864868164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.359619140625, - 535.6248168945312, - 428.3343811035156, - 548.0864868164062 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 316.79998779296875, - 549.7959594726562, - 552.9190063476562, - 605.696044921875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[20] C. Rossow, D. Andriesse, T. Werner, B. Stone-Gross,", - "origin": [ - 316.79998779296875, - 558.8499755859375 - ], - "bbox": [ - 316.79998779296875, - 549.7959594726562, - 552.0265502929688, - 561.7659912109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79998779296875, - 549.7959594726562, - 552.0265502929688, - 561.7659912109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "D. Plohmann, C. J. Dietrich, and H. Bos. ", - "origin": [ - 335.30999755859375, - 569.760009765625 - ], - "bbox": [ - 335.30999755859375, - 560.7059936523438, - 524.1575927734375, - 572.676025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.30999755859375, - 560.7059936523438, - 524.1575927734375, - 572.676025390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "SoK:", - "origin": [ - 533.3400268554688, - 569.760009765625 - ], - "bbox": [ - 533.3400268554688, - 560.7059936523438, - 551.9424438476562, - 572.676025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 533.3400268554688, - 560.7059936523438, - 551.9424438476562, - 572.676025390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "P2pwned - Modeling and Evaluating the Resilience of", - "origin": [ - 335.22003173828125, - 580.6799926757812 - ], - "bbox": [ - 335.22003173828125, - 571.6259765625, - 552.74365234375, - 583.5960083007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.22003173828125, - 571.6259765625, - 552.74365234375, - 583.5960083007812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Peer-to-Peer Botnets. In 2013 IEEE Symposium on", - "origin": [ - 335.6100158691406, - 591.72998046875 - ], - "bbox": [ - 335.6100158691406, - 582.6759643554688, - 552.9190063476562, - 594.64599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.6100158691406, - 582.6759643554688, - 552.9190063476562, - 594.64599609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Security and Privacy, pp. 97-111, May 2013.", - "origin": [ - 335.3900146484375, - 602.780029296875 - ], - "bbox": [ - 335.3900146484375, - 593.7260131835938, - 516.0744018554688, - 605.696044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3900146484375, - 593.7260131835938, - 516.0744018554688, - 605.696044921875 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 316.800048828125, - 607.6259765625, - 552.8881225585938, - 641.5460205078125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[21] Rita Sara Schreiber and Phyllis Noerager Stern. To", - "origin": [ - 316.800048828125, - 616.6799926757812 - ], - "bbox": [ - 316.800048828125, - 607.6259765625, - 552.8881225585938, - 619.5960083007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.800048828125, - 607.6259765625, - 552.8881225585938, - 619.5960083007812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Befriend Or Not? A Model of Friend Request Accep­", - "origin": [ - 335.52001953125, - 627.719970703125 - ], - "bbox": [ - 335.52001953125, - 618.6659545898438, - 552.39697265625, - 630.635986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.52001953125, - 618.6659545898438, - 552.39697265625, - 630.635986328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "tance on Facebook. In Symposium on Usable Privacy", - "origin": [ - 335.3699951171875, - 638.6300048828125 - ], - "bbox": [ - 335.3699951171875, - 629.5759887695312, - 552.6779174804688, - 641.5460205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3699951171875, - 629.5759887695312, - 552.6779174804688, - 641.5460205078125 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 335.5199890136719, - 640.296142578125, - 552.6627807617188, - 663.426025390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "and Security (SOUPS), pp. 285-300, New York, 2014.", - "origin": [ - 335.6099853515625, - 649.469970703125 - ], - "bbox": [ - 335.6099853515625, - 640.296142578125, - 552.6627807617188, - 653.1065063476562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999074935913086, - 0.013598741963505745 - ], - "bbox": [ - 335.6099853515625, - 640.296142578125, - 552.6627807617188, - 653.1065063476562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Springer Pub. Co. OCLC: 471133082.", - "origin": [ - 335.5199890136719, - 660.510009765625 - ], - "bbox": [ - 335.5199890136719, - 651.4559936523438, - 487.934814453125, - 663.426025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5199890136719, - 651.4559936523438, - 487.934814453125, - 663.426025390625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 316.79998779296875, - 665.4660034179688, - 552.815185546875, - 721.2760009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[22] W. Diao, X. Liu, Z. Li, and K. Zhang. No Pardon for", - "origin": [ - 316.79998779296875, - 674.52001953125 - ], - "bbox": [ - 316.79998779296875, - 665.4660034179688, - 552.6063232421875, - 677.43603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79998779296875, - 665.4660034179688, - 552.6063232421875, - 677.43603515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "the Interruption: New Inference Attacks on Android", - "origin": [ - 335.36993408203125, - 685.4400024414062 - ], - "bbox": [ - 335.36993408203125, - 676.385986328125, - 552.6731567382812, - 688.3560180664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.36993408203125, - 676.385986328125, - 552.6731567382812, - 688.3560180664062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Through Interrupt Timing Analysis. In 2016 IEEE", - "origin": [ - 335.3199462890625, - 696.3599853515625 - ], - "bbox": [ - 335.3199462890625, - 687.3059692382812, - 552.815185546875, - 699.2760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3199462890625, - 687.3059692382812, - 552.815185546875, - 699.2760009765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Symposium on Security and Privacy (SP), pp. 414-", - "origin": [ - 335.3900146484375, - 707.3399658203125 - ], - "bbox": [ - 335.3900146484375, - 698.2609252929688, - 552.4636840820312, - 710.9219970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999995768070221, - 0.002899987855926156 - ], - "bbox": [ - 335.3900146484375, - 698.2609252929688, - 552.4636840820312, - 710.9219970703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "432, May 2016.", - "origin": [ - 335.3299865722656, - 718.3599853515625 - ], - "bbox": [ - 335.3299865722656, - 709.3059692382812, - 396.5339660644531, - 721.2760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3299865722656, - 709.3059692382812, - 396.5339660644531, - 721.2760009765625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 316.79998779296875, - 723.1859741210938, - 468.5539245605469, - 735.156005859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[23] ACM Code of Ethics, June 2016.", - "origin": [ - 316.79998779296875, - 732.239990234375 - ], - "bbox": [ - 316.79998779296875, - 723.1859741210938, - 468.5539245605469, - 735.156005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79998779296875, - 723.1859741210938, - 468.5539245605469, - 735.156005859375 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 1, - "type": 0, - "bbox": [ - 59.5099983215332, - 97.68994903564453, - 296.4900207519531, - 126.42998504638672 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "本倫理指針ではデ", - "origin": [ - 69.02001953125, - 108.14996337890625 - ], - "bbox": [ - 69.02001953125, - 97.74996185302734, - 145.08462524414062, - 111.21996307373047 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9873", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 145.21002197265625, - 104.449951171875 - ], - "bbox": [ - 145.21002197265625, - 97.68994903564453, - 153.97201538085938, - 106.44544982910156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タ処理手法をあらかじめ定め, そ", - "origin": [ - 154.52001953125, - 108.22998046875 - ], - "bbox": [ - 154.52001953125, - 97.8299789428711, - 296.4900207519531, - 111.29998016357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 69.02001953125, - 97.68994903564453, - 296.4900207519531, - 111.29998016357422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の手法を再利用にすべきであると説いたそのような", - "origin": [ - 59.5099983215332, - 123.3599853515625 - ], - "bbox": [ - 59.5099983215332, - 112.41596984863281, - 296.0796203613281, - 126.42998504638672 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999973177909851, - -0.0022999937646090984 - ], - "bbox": [ - 59.5099983215332, - 112.41596984863281, - 296.0796203613281, - 126.42998504638672 - ] - } - ], - "tag": "rotate" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 58.9900016784668, - 127.54085540771484, - 296.06719970703125, - 156.1099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "デ", - "origin": [ - 58.9900016784668, - 137.989990234375 - ], - "bbox": [ - 58.9900016784668, - 127.5899887084961, - 69.01000213623047, - 141.08103942871094 - ] - }, - { - "size": 6.5, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9873", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 69.1300048828125, - 134.38128662109375 - ], - "bbox": [ - 69.1300048828125, - 127.62128448486328, - 77.89200592041016, - 136.3951873779297 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "タパイプラインの例を提示することで, 本倫理指針", - "origin": [ - 78.44000244140625, - 137.94085693359375 - ], - "bbox": [ - 78.44000244140625, - 127.54085540771484, - 296.06719970703125, - 141.4678497314453 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - 0.002099995268508792 - ], - "bbox": [ - 58.9900016784668, - 127.54085540771484, - 296.06719970703125, - 141.4678497314453 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "の適用が容易になる可能性がある.", - "origin": [ - 59.5099983215332, - 153.03997802734375 - ], - "bbox": [ - 59.5099983215332, - 142.63998413085938, - 205.32899475097656, - 156.1099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.5099983215332, - 142.63998413085938, - 205.32899475097656, - 156.1099853515625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 58.75994873046875, - 266.3200988769531, - 296.1177673339844, - 310.0 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "サイバ", - "origin": [ - 58.75994873046875, - 276.86004638671875 - ], - "bbox": [ - 58.75994873046875, - 266.4600524902344, - 87.35774993896484, - 279.9300537109375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9873", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 87.9699478149414, - 273.26007080078125 - ], - "bbox": [ - 87.9699478149414, - 266.50006103515625, - 96.73194885253906, - 275.2555847167969 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティの専門家でなくとも研究の際に注", - "origin": [ - 97.80995178222656, - 276.7200927734375 - ], - "bbox": [ - 97.80995178222656, - 266.3200988769531, - 295.93389892578125, - 279.79010009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.75994873046875, - 266.3200988769531, - 295.93389892578125, - 279.9300537109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "意すべき点を確認できるため, サイバ", - "origin": [ - 59.52995300292969, - 291.590087890625 - ], - "bbox": [ - 59.52995300292969, - 281.1900939941406, - 219.60775756835938, - 294.66009521484375 - ] - }, - { - "size": 6.5, - "flags": 5, - "font": "*Kozuka Mincho Pr6N R-9873", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "ー", - "origin": [ - 220.33995056152344, - 288.02008056640625 - ], - "bbox": [ - 220.33995056152344, - 281.26007080078125, - 229.10194396972656, - 290.0155944824219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "セキュリティ研", - "origin": [ - 230.05995178222656, - 291.65008544921875 - ], - "bbox": [ - 230.05995178222656, - 281.2500915527344, - 296.1177673339844, - 294.7200927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.52995300292969, - 281.1900939941406, - 296.1177673339844, - 294.7200927734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "究倫理の入口として本倫理指針を用いることもできる.", - "origin": [ - 59.459999084472656, - 306.92999267578125 - ], - "bbox": [ - 59.459999084472656, - 296.0426025390625, - 291.59521484375, - 310.0 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999977946281433, - -0.002099995268508792 - ], - "bbox": [ - 59.459999084472656, - 296.0426025390625, - 291.59521484375, - 310.0 - ] - } - ], - "tag": "rotate" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 335.5199890136719, - 640.296142578125, - 552.6627807617188, - 663.426025390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "and Security (SOUPS), pp. 285-300, New York, 2014.", - "origin": [ - 335.6099853515625, - 649.469970703125 - ], - "bbox": [ - 335.6099853515625, - 640.296142578125, - 552.6627807617188, - 653.1065063476562 - ] - } - ], - "wmode": 0, - "dir": [ - 0.9999074935913086, - 0.013598741963505745 - ], - "bbox": [ - 335.6099853515625, - 640.296142578125, - 552.6627807617188, - 653.1065063476562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Springer Pub. Co. OCLC: 471133082.", - "origin": [ - 335.5199890136719, - 660.510009765625 - ], - "bbox": [ - 335.5199890136719, - 651.4559936523438, - 487.934814453125, - 663.426025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.5199890136719, - 651.4559936523438, - 487.934814453125, - 663.426025390625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 316.79998779296875, - 665.4660034179688, - 552.815185546875, - 721.2760009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[22] W. Diao, X. Liu, Z. Li, and K. Zhang. No Pardon for", - "origin": [ - 316.79998779296875, - 674.52001953125 - ], - "bbox": [ - 316.79998779296875, - 665.4660034179688, - 552.6063232421875, - 677.43603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79998779296875, - 665.4660034179688, - 552.6063232421875, - 677.43603515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "the Interruption: New Inference Attacks on Android", - "origin": [ - 335.36993408203125, - 685.4400024414062 - ], - "bbox": [ - 335.36993408203125, - 676.385986328125, - 552.6731567382812, - 688.3560180664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.36993408203125, - 676.385986328125, - 552.6731567382812, - 688.3560180664062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Through Interrupt Timing Analysis. In 2016 IEEE", - "origin": [ - 335.3199462890625, - 696.3599853515625 - ], - "bbox": [ - 335.3199462890625, - 687.3059692382812, - 552.815185546875, - 699.2760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3199462890625, - 687.3059692382812, - 552.815185546875, - 699.2760009765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Symposium on Security and Privacy (SP), pp. 414-", - "origin": [ - 335.3900146484375, - 707.3399658203125 - ], - "bbox": [ - 335.3900146484375, - 698.2609252929688, - 552.4636840820312, - 710.9219970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.999995768070221, - 0.002899987855926156 - ], - "bbox": [ - 335.3900146484375, - 698.2609252929688, - 552.4636840820312, - 710.9219970703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "432, May 2016.", - "origin": [ - 335.3299865722656, - 718.3599853515625 - ], - "bbox": [ - 335.3299865722656, - 709.3059692382812, - 396.5339660644531, - 721.2760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.3299865722656, - 709.3059692382812, - 396.5339660644531, - 721.2760009765625 - ] - } - ], - "tag": "rotate" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 59.41001892089844, - 23.040002822875977, - 296.1055603027344, - 96.05998992919922 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "をより便利なものにすることで研究者らに自発的に倫理", - "origin": [ - 59.47999954223633, - 33.44000244140625 - ], - "bbox": [ - 59.47999954223633, - 23.040002822875977, - 296.1055603027344, - 36.51000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.47999954223633, - 23.040002822875977, - 296.1055603027344, - 36.51000213623047 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "指針を利用してもらう方法もある. たとえば, 本研究で", - "origin": [ - 59.54999923706055, - 48.40997314453125 - ], - "bbox": [ - 59.54999923706055, - 38.009971618652344, - 296.033447265625, - 51.47997283935547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.54999923706055, - 38.009971618652344, - 296.033447265625, - 51.47997283935547 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "得られた決定木をインタラクティブに実装し, 研究者ら", - "origin": [ - 59.41001892089844, - 63.3599853515625 - ], - "bbox": [ - 59.41001892089844, - 52.959983825683594, - 295.5259704589844, - 66.42998504638672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.41001892089844, - 52.959983825683594, - 295.5259704589844, - 66.42998504638672 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "が行おうとしている研究が倫理的であるかどうかを確認", - "origin": [ - 59.490020751953125, - 78.25 - ], - "bbox": [ - 59.490020751953125, - 67.63997650146484, - 296.0696105957031, - 81.31999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.490020751953125, - 67.63997650146484, - 296.0696105957031, - 81.31999969482422 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "*Kozuka Mincho Pr6N R-9872", - "color": 0, - "ascender": 1.0399999618530273, - "descender": -0.3070000112056732, - "text": "できるようにしてもよいだろう.", - "origin": [ - 59.50001525878906, - 92.989990234375 - ], - "bbox": [ - 59.50001525878906, - 82.5899887084961, - 195.7198028564453, - 96.05998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.50001525878906, - 82.5899887084961, - 195.7198028564453, - 96.05998992919922 - ] - } - ], - "tag": "header" - }, - { - "number": 18, - "type": 0, - "bbox": [ - 321.35992431640625, - 23.816055297851562, - 553.2066650390625, - 79.74601745605469 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "[9] A. Bianchi, J. Corbetta, L. Invernizzi, Y. Fratantonio,", - "origin": [ - 321.35992431640625, - 32.87005615234375 - ], - "bbox": [ - 321.35992431640625, - 23.816055297851562, - 552.179931640625, - 35.78605651855469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.35992431640625, - 23.816055297851562, - 552.179931640625, - 35.78605651855469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "C. Kruegel, and G. Vigna. What the App is That?", - "origin": [ - 335.70989990234375, - 43.9200439453125 - ], - "bbox": [ - 335.70989990234375, - 34.86604309082031, - 552.1726684570312, - 46.83604431152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.70989990234375, - 34.86604309082031, - 552.1726684570312, - 46.83604431152344 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Deception and Countermeasures in the Android User", - "origin": [ - 335.30987548828125, - 54.84002685546875 - ], - "bbox": [ - 335.30987548828125, - 45.78602600097656, - 552.5756225585938, - 57.75602722167969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.30987548828125, - 45.78602600097656, - 552.5756225585938, - 57.75602722167969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Interface. In 2015 IEEE Symposium on Security and", - "origin": [ - 335.2398376464844, - 65.760009765625 - ], - "bbox": [ - 335.2398376464844, - 56.70600891113281, - 553.2066650390625, - 68.67601013183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.2398376464844, - 56.70600891113281, - 553.2066650390625, - 68.67601013183594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "*MS Mincho-Bold-9874", - "color": 0, - "ascender": 1.00600004196167, - "descender": -0.3240000009536743, - "text": "Privacy, pp. 931-948, May 2015.", - "origin": [ - 335.48980712890625, - 76.83001708984375 - ], - "bbox": [ - 335.48980712890625, - 67.77601623535156, - 467.10418701171875, - 79.74601745605469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.48980712890625, - 67.77601623535156, - 467.10418701171875, - 79.74601745605469 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 7, - "page_size": [ - 612.0, - 792.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/p3_\345\233\276\346\226\207\346\267\267\346\216\222_5.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/p3_\345\233\276\346\226\207\346\267\267\346\216\222_5.pdf/preproc_out.json" deleted file mode 100644 index 582ede004..000000000 --- "a/tests/assets/pre_proc_results/p3_\345\233\276\346\226\207\346\267\267\346\216\222_5.pdf/preproc_out.json" +++ /dev/null @@ -1,3261 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 89.76000213623047, - 790.4000244140625 - ], - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 92.04000091552734, - 792.3727416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 92.04000091552734, - 792.3727416992188 - ] - }, - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "3 ", - "origin": [ - 295.44000244140625, - 790.4000244140625 - ], - "bbox": [ - 295.44000244140625, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.44000244140625, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 332.1600036621094, - 74.76689147949219, - 334.68939208984375, - 84.70626831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 20, - "font": "FZKai-Z03S,Bold", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": " ", - "origin": [ - 332.1600036621094, - 82.6400146484375 - ], - "bbox": [ - 332.1600036621094, - 74.76689147949219, - 334.68939208984375, - 84.70626831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.1600036621094, - 74.76689147949219, - 334.68939208984375, - 84.70626831054688 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 332.1600036621094, - 90.36686706542969, - 505.6799011230469, - 100.30624389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 20, - "font": "FZKai-Z03S,Bold", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "二、成功的电视广告无不采用规范的视听语", - "origin": [ - 332.1600036621094, - 98.239990234375 - ], - "bbox": [ - 332.1600036621094, - 90.36686706542969, - 505.6799011230469, - 100.30624389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.1600036621094, - 90.36686706542969, - 505.6799011230469, - 100.30624389648438 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 332.1600036621094, - 121.56681823730469, - 510.239990234375, - 131.50619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "在法国的布列塔尼半岛,一种红鲑(大马哈鱼)", - "origin": [ - 332.1600036621094, - 129.43994140625 - ], - "bbox": [ - 332.1600036621094, - 121.56681823730469, - 510.239990234375, - 131.50619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.1600036621094, - 121.56681823730469, - 510.239990234375, - 131.50619506835938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 314.15997314453125, - 137.1667938232422, - 505.67987060546875, - 147.10617065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "享有盛名,但是以红鲑深加工的食品却不一定为", - "origin": [ - 314.15997314453125, - 145.0399169921875 - ], - "bbox": [ - 314.15997314453125, - 137.1667938232422, - 505.67987060546875, - 147.10617065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.15997314453125, - 137.1667938232422, - 505.67987060546875, - 147.10617065429688 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 314.1598815917969, - 152.7667694091797, - 510.2398681640625, - 162.70614624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "世人所知。现在我们看到的这则情节性电视广告,", - "origin": [ - 314.1598815917969, - 160.639892578125 - ], - "bbox": [ - 314.1598815917969, - 152.7667694091797, - 510.2398681640625, - 162.70614624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.1598815917969, - 152.7667694091797, - 510.2398681640625, - 162.70614624023438 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 314.15985107421875, - 168.3667449951172, - 505.67974853515625, - 178.30612182617188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "则让红鲑罐头享誉全球。让我们下载几个画面,", - "origin": [ - 314.15985107421875, - 176.2398681640625 - ], - "bbox": [ - 314.15985107421875, - 168.3667449951172, - 505.67974853515625, - 178.30612182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.15985107421875, - 168.3667449951172, - 505.67974853515625, - 178.30612182617188 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 314.15972900390625, - 183.9667205810547, - 433.8091125488281, - 193.90609741210938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "看看这则广告是怎样叙事的。 ", - "origin": [ - 314.15972900390625, - 191.83984375 - ], - "bbox": [ - 314.15972900390625, - 183.9667205810547, - 433.8091125488281, - 193.90609741210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.15972900390625, - 183.9667205810547, - 433.8091125488281, - 193.90609741210938 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 363.5997314453125, - 199.79290771484375, - 505.6796569824219, - 209.89259338378906 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "1", - "origin": [ - 363.5997314453125, - 207.91986083984375 - ], - "bbox": [ - 363.5997314453125, - 199.79290771484375, - 368.15972900390625, - 209.89259338378906 - ] - }, - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、美丽的布列塔尼水美鱼肥,引来", - "origin": [ - 368.39971923828125, - 207.91986083984375 - ], - "bbox": [ - 368.39971923828125, - 200.08236694335938, - 505.6796569824219, - 209.20236206054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.5997314453125, - 199.79290771484375, - 505.6796569824219, - 209.89259338378906 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 345.59967041015625, - 384.4023742675781, - 505.6796875, - 393.5223693847656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "馋嘴的棕熊肆意捕猎。这时的画面,由于", - "origin": [ - 345.59967041015625, - 392.2398681640625 - ], - "bbox": [ - 345.59967041015625, - 384.4023742675781, - 505.6796875, - 393.5223693847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 345.59967041015625, - 384.4023742675781, - 505.6796875, - 393.5223693847656 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 89.75970458984375, - 400.00238037109375, - 505.4396667480469, - 409.12237548828125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "没有人物出现,暂时属于景物镜头或曰空镜头。随后由于推摄产生的效果,景别发生变化。这种变化,意", - "origin": [ - 89.75970458984375, - 407.8398742675781 - ], - "bbox": [ - 89.75970458984375, - 400.00238037109375, - 505.4396667480469, - 409.12237548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75970458984375, - 400.00238037109375, - 505.4396667480469, - 409.12237548828125 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 89.75967407226562, - 415.6023864746094, - 509.9996643066406, - 424.7223815917969 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "在清楚地交代棕熊在干什么。由于仍然没有人物出现在画格内,虽然由远景变成了“近景”仍然还是空镜。", - "origin": [ - 89.75967407226562, - 423.43988037109375 - ], - "bbox": [ - 89.75967407226562, - 415.6023864746094, - 509.9996643066406, - 424.7223815917969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75967407226562, - 415.6023864746094, - 509.9996643066406, - 424.7223815917969 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 89.75967407226562, - 431.202392578125, - 505.439697265625, - 440.3223876953125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "尽管由于变焦产生推摄的效果,景别确实发生了变化,还是不能说这是什么景别。(但是,这则广告中的棕", - "origin": [ - 89.75967407226562, - 439.0398864746094 - ], - "bbox": [ - 89.75967407226562, - 431.202392578125, - 505.439697265625, - 440.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75967407226562, - 431.202392578125, - 505.439697265625, - 440.3223876953125 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 89.75970458984375, - 446.8023986816406, - 509.99969482421875, - 455.9223937988281 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "熊是被人格化的,或许就是由演员扮演的,为了便于明确的操作,也不妨在分镜本中标明为远景——全景,", - "origin": [ - 89.75970458984375, - 454.639892578125 - ], - "bbox": [ - 89.75970458984375, - 446.8023986816406, - 509.99969482421875, - 455.9223937988281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75970458984375, - 446.8023986816406, - 509.99969482421875, - 455.9223937988281 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 89.75970458984375, - 462.40240478515625, - 505.6797180175781, - 471.52239990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "摄法:推。)这样做的目的只是让观众看清体态庞大的棕熊捕捞上一条红鲑。这个镜头至此并没有结束,这", - "origin": [ - 89.75970458984375, - 470.2398986816406 - ], - "bbox": [ - 89.75970458984375, - 462.40240478515625, - 505.6797180175781, - 471.52239990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75970458984375, - 462.40240478515625, - 505.6797180175781, - 471.52239990234375 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 89.75973510742188, - 478.0024108886719, - 505.439697265625, - 487.1224060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "时我们听到一声断喝,随即镜头循声摇了过去,人物入画。而后镜头又随着突然出现的人物跟摇回来——", - "origin": [ - 89.75973510742188, - 485.83990478515625 - ], - "bbox": [ - 89.75973510742188, - 478.0024108886719, - 505.439697265625, - 487.1224060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75973510742188, - 478.0024108886719, - 505.439697265625, - 487.1224060058594 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 89.75970458984375, - 493.6024169921875, - 505.439697265625, - 502.722412109375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "服装标明人物的身份,这里的“服装”属于画面语言的造型元素之一。出现的人物暂且视为食品厂工人,", - "origin": [ - 89.75970458984375, - 501.4399108886719 - ], - "bbox": [ - 89.75970458984375, - 493.6024169921875, - 505.439697265625, - 502.722412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75970458984375, - 493.6024169921875, - 505.439697265625, - 502.722412109375 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 89.75970458984375, - 509.2024230957031, - 505.4396667480469, - 518.3223876953125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "接着,工人与棕熊发生激烈冲突。冲突是由这个工人发起的,棕熊采用十分专业的散打方式进行还击,工", - "origin": [ - 89.75970458984375, - 517.0399169921875 - ], - "bbox": [ - 89.75970458984375, - 509.2024230957031, - 505.4396667480469, - 518.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75970458984375, - 509.2024230957031, - 505.4396667480469, - 518.3223876953125 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 89.75967407226562, - 524.8023681640625, - 264.71966552734375, - 533.92236328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "人则以拳击的套路与棕熊搏斗。让动物与人", - "origin": [ - 89.75967407226562, - 532.639892578125 - ], - "bbox": [ - 89.75967407226562, - 524.8023681640625, - 264.71966552734375, - 533.92236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75967407226562, - 524.8023681640625, - 264.71966552734375, - 533.92236328125 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 89.75967407226562, - 540.4024047851562, - 264.71966552734375, - 549.5223999023438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "物进行对抗颇具看点,属于表演元素,目的", - "origin": [ - 89.75967407226562, - 548.2399291992188 - ], - "bbox": [ - 89.75967407226562, - 540.4024047851562, - 264.71966552734375, - 549.5223999023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75967407226562, - 540.4024047851562, - 264.71966552734375, - 549.5223999023438 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 89.75965881347656, - 556.00244140625, - 264.71966552734375, - 565.1224365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "是增强观赏性和趣味性。这场搏击,最终以", - "origin": [ - 89.75965881347656, - 563.8399658203125 - ], - "bbox": [ - 89.75965881347656, - 556.00244140625, - 264.71966552734375, - 565.1224365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75965881347656, - 556.00244140625, - 264.71966552734375, - 565.1224365234375 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 89.75965881347656, - 571.6024169921875, - 264.71966552734375, - 580.722412109375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "棕熊腹部受到难忍的拳击而败北,这个镜头", - "origin": [ - 89.75965881347656, - 579.43994140625 - ], - "bbox": [ - 89.75965881347656, - 571.6024169921875, - 264.71966552734375, - 580.722412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75965881347656, - 571.6024169921875, - 264.71966552734375, - 580.722412109375 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 89.75965881347656, - 586.9129638671875, - 137.15965270996094, - 597.0126342773438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "至此结束。", - "origin": [ - 89.75965881347656, - 595.0399169921875 - ], - "bbox": [ - 89.75965881347656, - 587.202392578125, - 134.87965393066406, - 596.3223876953125 - ] - }, - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 134.87965393066406, - 595.0399169921875 - ], - "bbox": [ - 134.87965393066406, - 586.9129638671875, - 137.15965270996094, - 597.0126342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75965881347656, - 586.9129638671875, - 137.15965270996094, - 597.0126342773438 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 107.75965118408203, - 602.5130004882812, - 264.71966552734375, - 612.6126708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "2", - "origin": [ - 107.75965118408203, - 610.6399536132812 - ], - "bbox": [ - 107.75965118408203, - 602.5130004882812, - 112.31964874267578, - 612.6126708984375 - ] - }, - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、我们看,当棕熊捂着肚子痛苦不堪之", - "origin": [ - 112.31964874267578, - 610.6399536132812 - ], - "bbox": [ - 112.31964874267578, - 602.8024291992188, - 264.71966552734375, - 611.9224243164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.75965118408203, - 602.5130004882812, - 264.71966552734375, - 612.6126708984375 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 89.75965881347656, - 618.4024658203125, - 264.7196350097656, - 627.5224609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "际,工人攫取了棕熊的猎物。恰在这时,画", - "origin": [ - 89.75965881347656, - 626.239990234375 - ], - "bbox": [ - 89.75965881347656, - 618.4024658203125, - 264.7196350097656, - 627.5224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75965881347656, - 618.4024658203125, - 264.7196350097656, - 627.5224609375 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 89.75962829589844, - 634.00244140625, - 264.7196350097656, - 643.1224365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "面叠印上标有品牌的红鲑罐头,我们将这个", - "origin": [ - 89.75962829589844, - 641.8399658203125 - ], - "bbox": [ - 89.75962829589844, - 634.00244140625, - 264.7196350097656, - 643.1224365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75962829589844, - 634.00244140625, - 264.7196350097656, - 643.1224365234375 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 89.75962829589844, - 649.6024169921875, - 264.7196350097656, - 658.722412109375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "画面视为两个镜头的叠印。这种技法在今天", - "origin": [ - 89.75962829589844, - 657.43994140625 - ], - "bbox": [ - 89.75962829589844, - 649.6024169921875, - 264.7196350097656, - 658.722412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75962829589844, - 649.6024169921875, - 264.7196350097656, - 658.722412109375 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 89.75962829589844, - 665.2024536132812, - 264.7196044921875, - 674.3224487304688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "不算回事了,但是按照传统的做法,罐头须", - "origin": [ - 89.75962829589844, - 673.0399780273438 - ], - "bbox": [ - 89.75962829589844, - 665.2024536132812, - 264.7196044921875, - 674.3224487304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75962829589844, - 665.2024536132812, - 264.7196044921875, - 674.3224487304688 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 89.75961303710938, - 680.802490234375, - 264.7195739746094, - 689.9224853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "事先拍摄下来,再抠相叠加在主画面上。这", - "origin": [ - 89.75961303710938, - 688.6400146484375 - ], - "bbox": [ - 89.75961303710938, - 680.802490234375, - 264.7195739746094, - 689.9224853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75961303710938, - 680.802490234375, - 264.7195739746094, - 689.9224853515625 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 89.75958251953125, - 696.4024658203125, - 264.7195739746094, - 705.5224609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "里顺便明确一个概念,这种画面的叠印,也", - "origin": [ - 89.75958251953125, - 704.239990234375 - ], - "bbox": [ - 89.75958251953125, - 696.4024658203125, - 264.7195739746094, - 705.5224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75958251953125, - 696.4024658203125, - 264.7195739746094, - 705.5224609375 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 89.75956726074219, - 711.7130126953125, - 173.15956115722656, - 721.8126831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "是一种蒙太奇关系。", - "origin": [ - 89.75956726074219, - 719.8399658203125 - ], - "bbox": [ - 89.75956726074219, - 712.00244140625, - 170.8795623779297, - 721.1224365234375 - ] - }, - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 170.8795623779297, - 719.8399658203125 - ], - "bbox": [ - 170.8795623779297, - 711.7130126953125, - 173.15956115722656, - 721.8126831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75956726074219, - 711.7130126953125, - 173.15956115722656, - 721.8126831054688 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 289, - 220, - 515, - 381 - ], - "image_path": "images/0_289_220_515_381.jpg" - }, - { - "bbox": [ - 273, - 530, - 504, - 714 - ], - "image_path": "images/0_273_530_504_714.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 74.76689147949219, - 595.0, - 518.3223876953125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 89.75956726074219, - 524.8023681640625, - 264.71966552734375, - 721.8126831054688 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 273, - 524.8023681640625, - 504, - 721.8126831054688 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 782.2730712890625, - 595.0, - 792.3727416992188 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 89.76000213623047, - 790.4000244140625 - ], - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 92.04000091552734, - 792.3727416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 92.04000091552734, - 792.3727416992188 - ] - }, - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "3 ", - "origin": [ - 295.44000244140625, - 790.4000244140625 - ], - "bbox": [ - 295.44000244140625, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.44000244140625, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 332.1600036621094, - 74.76689147949219, - 334.68939208984375, - 84.70626831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 20, - "font": "FZKai-Z03S,Bold", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": " ", - "origin": [ - 332.1600036621094, - 82.6400146484375 - ], - "bbox": [ - 332.1600036621094, - 74.76689147949219, - 334.68939208984375, - 84.70626831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.1600036621094, - 74.76689147949219, - 334.68939208984375, - 84.70626831054688 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 332.1600036621094, - 90.36686706542969, - 505.6799011230469, - 100.30624389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 20, - "font": "FZKai-Z03S,Bold", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "二、成功的电视广告无不采用规范的视听语", - "origin": [ - 332.1600036621094, - 98.239990234375 - ], - "bbox": [ - 332.1600036621094, - 90.36686706542969, - 505.6799011230469, - 100.30624389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.1600036621094, - 90.36686706542969, - 505.6799011230469, - 100.30624389648438 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 314.1600036621094, - 105.96684265136719, - 326.04937744140625, - 115.90621948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 20, - "font": "FZKai-Z03S,Bold", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "言 ", - "origin": [ - 314.1600036621094, - 113.8399658203125 - ], - "bbox": [ - 314.1600036621094, - 105.96684265136719, - 326.04937744140625, - 115.90621948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.1600036621094, - 105.96684265136719, - 326.04937744140625, - 115.90621948242188 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 332.1600036621094, - 121.56681823730469, - 510.239990234375, - 131.50619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "在法国的布列塔尼半岛,一种红鲑(大马哈鱼)", - "origin": [ - 332.1600036621094, - 129.43994140625 - ], - "bbox": [ - 332.1600036621094, - 121.56681823730469, - 510.239990234375, - 131.50619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.1600036621094, - 121.56681823730469, - 510.239990234375, - 131.50619506835938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 314.15997314453125, - 137.1667938232422, - 505.67987060546875, - 147.10617065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "享有盛名,但是以红鲑深加工的食品却不一定为", - "origin": [ - 314.15997314453125, - 145.0399169921875 - ], - "bbox": [ - 314.15997314453125, - 137.1667938232422, - 505.67987060546875, - 147.10617065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.15997314453125, - 137.1667938232422, - 505.67987060546875, - 147.10617065429688 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 314.1598815917969, - 152.7667694091797, - 510.2398681640625, - 162.70614624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "世人所知。现在我们看到的这则情节性电视广告,", - "origin": [ - 314.1598815917969, - 160.639892578125 - ], - "bbox": [ - 314.1598815917969, - 152.7667694091797, - 510.2398681640625, - 162.70614624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.1598815917969, - 152.7667694091797, - 510.2398681640625, - 162.70614624023438 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 314.15985107421875, - 168.3667449951172, - 505.67974853515625, - 178.30612182617188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "则让红鲑罐头享誉全球。让我们下载几个画面,", - "origin": [ - 314.15985107421875, - 176.2398681640625 - ], - "bbox": [ - 314.15985107421875, - 168.3667449951172, - 505.67974853515625, - 178.30612182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.15985107421875, - 168.3667449951172, - 505.67974853515625, - 178.30612182617188 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 314.15972900390625, - 183.9667205810547, - 433.8091125488281, - 193.90609741210938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "看看这则广告是怎样叙事的。 ", - "origin": [ - 314.15972900390625, - 191.83984375 - ], - "bbox": [ - 314.15972900390625, - 183.9667205810547, - 433.8091125488281, - 193.90609741210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.15972900390625, - 183.9667205810547, - 433.8091125488281, - 193.90609741210938 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 363.5997314453125, - 199.79290771484375, - 505.6796569824219, - 209.89259338378906 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "1", - "origin": [ - 363.5997314453125, - 207.91986083984375 - ], - "bbox": [ - 363.5997314453125, - 199.79290771484375, - 368.15972900390625, - 209.89259338378906 - ] - }, - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、美丽的布列塔尼水美鱼肥,引来", - "origin": [ - 368.39971923828125, - 207.91986083984375 - ], - "bbox": [ - 368.39971923828125, - 200.08236694335938, - 505.6796569824219, - 209.20236206054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.5997314453125, - 199.79290771484375, - 505.6796569824219, - 209.89259338378906 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 345.59967041015625, - 384.4023742675781, - 505.6796875, - 393.5223693847656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "馋嘴的棕熊肆意捕猎。这时的画面,由于", - "origin": [ - 345.59967041015625, - 392.2398681640625 - ], - "bbox": [ - 345.59967041015625, - 384.4023742675781, - 505.6796875, - 393.5223693847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 345.59967041015625, - 384.4023742675781, - 505.6796875, - 393.5223693847656 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 89.75970458984375, - 400.00238037109375, - 505.4396667480469, - 409.12237548828125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "没有人物出现,暂时属于景物镜头或曰空镜头。随后由于推摄产生的效果,景别发生变化。这种变化,意", - "origin": [ - 89.75970458984375, - 407.8398742675781 - ], - "bbox": [ - 89.75970458984375, - 400.00238037109375, - 505.4396667480469, - 409.12237548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75970458984375, - 400.00238037109375, - 505.4396667480469, - 409.12237548828125 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 89.75967407226562, - 415.6023864746094, - 509.9996643066406, - 424.7223815917969 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "在清楚地交代棕熊在干什么。由于仍然没有人物出现在画格内,虽然由远景变成了“近景”仍然还是空镜。", - "origin": [ - 89.75967407226562, - 423.43988037109375 - ], - "bbox": [ - 89.75967407226562, - 415.6023864746094, - 509.9996643066406, - 424.7223815917969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75967407226562, - 415.6023864746094, - 509.9996643066406, - 424.7223815917969 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 89.75967407226562, - 431.202392578125, - 505.439697265625, - 440.3223876953125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "尽管由于变焦产生推摄的效果,景别确实发生了变化,还是不能说这是什么景别。(但是,这则广告中的棕", - "origin": [ - 89.75967407226562, - 439.0398864746094 - ], - "bbox": [ - 89.75967407226562, - 431.202392578125, - 505.439697265625, - 440.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75967407226562, - 431.202392578125, - 505.439697265625, - 440.3223876953125 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 89.75970458984375, - 446.8023986816406, - 509.99969482421875, - 455.9223937988281 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "熊是被人格化的,或许就是由演员扮演的,为了便于明确的操作,也不妨在分镜本中标明为远景——全景,", - "origin": [ - 89.75970458984375, - 454.639892578125 - ], - "bbox": [ - 89.75970458984375, - 446.8023986816406, - 509.99969482421875, - 455.9223937988281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75970458984375, - 446.8023986816406, - 509.99969482421875, - 455.9223937988281 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 89.75970458984375, - 462.40240478515625, - 505.6797180175781, - 471.52239990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "摄法:推。)这样做的目的只是让观众看清体态庞大的棕熊捕捞上一条红鲑。这个镜头至此并没有结束,这", - "origin": [ - 89.75970458984375, - 470.2398986816406 - ], - "bbox": [ - 89.75970458984375, - 462.40240478515625, - 505.6797180175781, - 471.52239990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75970458984375, - 462.40240478515625, - 505.6797180175781, - 471.52239990234375 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 89.75973510742188, - 478.0024108886719, - 505.439697265625, - 487.1224060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "时我们听到一声断喝,随即镜头循声摇了过去,人物入画。而后镜头又随着突然出现的人物跟摇回来——", - "origin": [ - 89.75973510742188, - 485.83990478515625 - ], - "bbox": [ - 89.75973510742188, - 478.0024108886719, - 505.439697265625, - 487.1224060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75973510742188, - 478.0024108886719, - 505.439697265625, - 487.1224060058594 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 89.75970458984375, - 493.6024169921875, - 505.439697265625, - 502.722412109375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "服装标明人物的身份,这里的“服装”属于画面语言的造型元素之一。出现的人物暂且视为食品厂工人,", - "origin": [ - 89.75970458984375, - 501.4399108886719 - ], - "bbox": [ - 89.75970458984375, - 493.6024169921875, - 505.439697265625, - 502.722412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75970458984375, - 493.6024169921875, - 505.439697265625, - 502.722412109375 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 89.75970458984375, - 509.2024230957031, - 505.4396667480469, - 518.3223876953125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "接着,工人与棕熊发生激烈冲突。冲突是由这个工人发起的,棕熊采用十分专业的散打方式进行还击,工", - "origin": [ - 89.75970458984375, - 517.0399169921875 - ], - "bbox": [ - 89.75970458984375, - 509.2024230957031, - 505.4396667480469, - 518.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75970458984375, - 509.2024230957031, - 505.4396667480469, - 518.3223876953125 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 89.75967407226562, - 524.8023681640625, - 264.71966552734375, - 533.92236328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "人则以拳击的套路与棕熊搏斗。让动物与人", - "origin": [ - 89.75967407226562, - 532.639892578125 - ], - "bbox": [ - 89.75967407226562, - 524.8023681640625, - 264.71966552734375, - 533.92236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75967407226562, - 524.8023681640625, - 264.71966552734375, - 533.92236328125 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 89.75967407226562, - 540.4024047851562, - 264.71966552734375, - 549.5223999023438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "物进行对抗颇具看点,属于表演元素,目的", - "origin": [ - 89.75967407226562, - 548.2399291992188 - ], - "bbox": [ - 89.75967407226562, - 540.4024047851562, - 264.71966552734375, - 549.5223999023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75967407226562, - 540.4024047851562, - 264.71966552734375, - 549.5223999023438 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 89.75965881347656, - 556.00244140625, - 264.71966552734375, - 565.1224365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "是增强观赏性和趣味性。这场搏击,最终以", - "origin": [ - 89.75965881347656, - 563.8399658203125 - ], - "bbox": [ - 89.75965881347656, - 556.00244140625, - 264.71966552734375, - 565.1224365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75965881347656, - 556.00244140625, - 264.71966552734375, - 565.1224365234375 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 89.75965881347656, - 571.6024169921875, - 264.71966552734375, - 580.722412109375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "棕熊腹部受到难忍的拳击而败北,这个镜头", - "origin": [ - 89.75965881347656, - 579.43994140625 - ], - "bbox": [ - 89.75965881347656, - 571.6024169921875, - 264.71966552734375, - 580.722412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75965881347656, - 571.6024169921875, - 264.71966552734375, - 580.722412109375 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 89.75965881347656, - 586.9129638671875, - 137.15965270996094, - 597.0126342773438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "至此结束。", - "origin": [ - 89.75965881347656, - 595.0399169921875 - ], - "bbox": [ - 89.75965881347656, - 587.202392578125, - 134.87965393066406, - 596.3223876953125 - ] - }, - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 134.87965393066406, - 595.0399169921875 - ], - "bbox": [ - 134.87965393066406, - 586.9129638671875, - 137.15965270996094, - 597.0126342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75965881347656, - 586.9129638671875, - 137.15965270996094, - 597.0126342773438 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 107.75965118408203, - 602.5130004882812, - 264.71966552734375, - 612.6126708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "2", - "origin": [ - 107.75965118408203, - 610.6399536132812 - ], - "bbox": [ - 107.75965118408203, - 602.5130004882812, - 112.31964874267578, - 612.6126708984375 - ] - }, - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、我们看,当棕熊捂着肚子痛苦不堪之", - "origin": [ - 112.31964874267578, - 610.6399536132812 - ], - "bbox": [ - 112.31964874267578, - 602.8024291992188, - 264.71966552734375, - 611.9224243164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.75965118408203, - 602.5130004882812, - 264.71966552734375, - 612.6126708984375 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 89.75965881347656, - 618.4024658203125, - 264.7196350097656, - 627.5224609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "际,工人攫取了棕熊的猎物。恰在这时,画", - "origin": [ - 89.75965881347656, - 626.239990234375 - ], - "bbox": [ - 89.75965881347656, - 618.4024658203125, - 264.7196350097656, - 627.5224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75965881347656, - 618.4024658203125, - 264.7196350097656, - 627.5224609375 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 89.75962829589844, - 634.00244140625, - 264.7196350097656, - 643.1224365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "面叠印上标有品牌的红鲑罐头,我们将这个", - "origin": [ - 89.75962829589844, - 641.8399658203125 - ], - "bbox": [ - 89.75962829589844, - 634.00244140625, - 264.7196350097656, - 643.1224365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75962829589844, - 634.00244140625, - 264.7196350097656, - 643.1224365234375 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 89.75962829589844, - 649.6024169921875, - 264.7196350097656, - 658.722412109375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "画面视为两个镜头的叠印。这种技法在今天", - "origin": [ - 89.75962829589844, - 657.43994140625 - ], - "bbox": [ - 89.75962829589844, - 649.6024169921875, - 264.7196350097656, - 658.722412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75962829589844, - 649.6024169921875, - 264.7196350097656, - 658.722412109375 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 89.75962829589844, - 665.2024536132812, - 264.7196044921875, - 674.3224487304688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "不算回事了,但是按照传统的做法,罐头须", - "origin": [ - 89.75962829589844, - 673.0399780273438 - ], - "bbox": [ - 89.75962829589844, - 665.2024536132812, - 264.7196044921875, - 674.3224487304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75962829589844, - 665.2024536132812, - 264.7196044921875, - 674.3224487304688 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 89.75961303710938, - 680.802490234375, - 264.7195739746094, - 689.9224853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "事先拍摄下来,再抠相叠加在主画面上。这", - "origin": [ - 89.75961303710938, - 688.6400146484375 - ], - "bbox": [ - 89.75961303710938, - 680.802490234375, - 264.7195739746094, - 689.9224853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75961303710938, - 680.802490234375, - 264.7195739746094, - 689.9224853515625 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 89.75958251953125, - 696.4024658203125, - 264.7195739746094, - 705.5224609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "里顺便明确一个概念,这种画面的叠印,也", - "origin": [ - 89.75958251953125, - 704.239990234375 - ], - "bbox": [ - 89.75958251953125, - 696.4024658203125, - 264.7195739746094, - 705.5224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75958251953125, - 696.4024658203125, - 264.7195739746094, - 705.5224609375 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 89.75956726074219, - 711.7130126953125, - 173.15956115722656, - 721.8126831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "是一种蒙太奇关系。", - "origin": [ - 89.75956726074219, - 719.8399658203125 - ], - "bbox": [ - 89.75956726074219, - 712.00244140625, - 170.8795623779297, - 721.1224365234375 - ] - }, - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 170.8795623779297, - 719.8399658203125 - ], - "bbox": [ - 170.8795623779297, - 711.7130126953125, - 173.15956115722656, - 721.8126831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75956726074219, - 711.7130126953125, - 173.15956115722656, - 721.8126831054688 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 3, - "type": 0, - "bbox": [ - 314.1600036621094, - 105.96684265136719, - 326.04937744140625, - 115.90621948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 20, - "font": "FZKai-Z03S,Bold", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "言 ", - "origin": [ - 314.1600036621094, - 113.8399658203125 - ], - "bbox": [ - 314.1600036621094, - 105.96684265136719, - 326.04937744140625, - 115.90621948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.1600036621094, - 105.96684265136719, - 326.04937744140625, - 115.90621948242188 - ] - } - ], - "tag": "on-image" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [ - { - "bbox": [ - 89, - 80, - 336, - 394 - ], - "image_path": "images/0_89_80_336_394.jpg" - } - ], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.0, - 842.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/p3_\345\233\276\346\226\207\346\267\267\346\216\222_6.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/p3_\345\233\276\346\226\207\346\267\267\346\216\222_6.pdf/preproc_out.json" deleted file mode 100644 index 2799ef811..000000000 --- "a/tests/assets/pre_proc_results/p3_\345\233\276\346\226\207\346\267\267\346\216\222_6.pdf/preproc_out.json" +++ /dev/null @@ -1,4277 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 89.76000213623047, - 790.4000244140625 - ], - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 92.04000091552734, - 792.3727416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 92.04000091552734, - 792.3727416992188 - ] - }, - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "4 ", - "origin": [ - 295.44000244140625, - 790.4000244140625 - ], - "bbox": [ - 295.44000244140625, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.44000244140625, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 358.32000732421875, - 74.76689147949219, - 506.8800048828125, - 84.70626831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "3、故事并没有完结,情节还在继续。", - "origin": [ - 358.32000732421875, - 82.6400146484375 - ], - "bbox": [ - 358.32000732421875, - 74.76689147949219, - 506.8800048828125, - 84.70626831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 358.32000732421875, - 74.76689147949219, - 506.8800048828125, - 84.70626831054688 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 340.32000732421875, - 90.36686706542969, - 510.239990234375, - 100.30624389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "工人跨上接应他的摩托车,准备迅速逃离,", - "origin": [ - 340.32000732421875, - 98.239990234375 - ], - "bbox": [ - 340.32000732421875, - 90.36686706542969, - 510.239990234375, - 100.30624389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.32000732421875, - 90.36686706542969, - 510.239990234375, - 100.30624389648438 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 340.32000732421875, - 105.96684265136719, - 505.6799621582031, - 115.90621948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "棕熊忍痛穷追不舍。实际上它已经追到跟", - "origin": [ - 340.32000732421875, - 113.8399658203125 - ], - "bbox": [ - 340.32000732421875, - 105.96684265136719, - 505.6799621582031, - 115.90621948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.32000732421875, - 105.96684265136719, - 505.6799621582031, - 115.90621948242188 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 340.3199462890625, - 121.56681823730469, - 505.67987060546875, - 131.50619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "前,甚至有可能夺回那条大马哈鱼,只是", - "origin": [ - 340.3199462890625, - 129.43994140625 - ], - "bbox": [ - 340.3199462890625, - 121.56681823730469, - 505.67987060546875, - 131.50619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.3199462890625, - 121.56681823730469, - 505.67987060546875, - 131.50619506835938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 340.31988525390625, - 137.1667938232422, - 505.6798400878906, - 147.10617065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "摩托车速度太快,迅速逃离了。棕熊十分", - "origin": [ - 340.31988525390625, - 145.0399169921875 - ], - "bbox": [ - 340.31988525390625, - 137.1667938232422, - 505.6798400878906, - 147.10617065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.31988525390625, - 137.1667938232422, - 505.6798400878906, - 147.10617065429688 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 340.31982421875, - 152.7667694091797, - 477.9692077636719, - 162.70614624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "郁闷十分恼火,然而却无可奈何。", - "origin": [ - 340.31982421875, - 160.639892578125 - ], - "bbox": [ - 340.31982421875, - 152.7667694091797, - 475.4398193359375, - 162.70614624023438 - ] - }, - { - "size": 9.119999885559082, - "flags": 20, - "font": "FZKai-Z03S,Bold", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": " ", - "origin": [ - 475.4398193359375, - 160.639892578125 - ], - "bbox": [ - 475.4398193359375, - 152.7667694091797, - 477.9692077636719, - 162.70614624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.31982421875, - 152.7667694091797, - 477.9692077636719, - 162.70614624023438 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 358.31982421875, - 168.3667449951172, - 505.6798095703125, - 178.30612182617188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "4、当摩托车即将消失之际,前景再次", - "origin": [ - 358.31982421875, - 176.2398681640625 - ], - "bbox": [ - 358.31982421875, - 168.3667449951172, - 505.6798095703125, - 178.30612182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 358.31982421875, - 168.3667449951172, - 505.6798095703125, - 178.30612182617188 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 340.31982421875, - 183.9667205810547, - 505.67974853515625, - 193.90609741210938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "出现那种品牌罐头,而且还将罐头里的鲜", - "origin": [ - 340.31982421875, - 191.83984375 - ], - "bbox": [ - 340.31982421875, - 183.9667205810547, - 505.67974853515625, - 193.90609741210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.31982421875, - 183.9667205810547, - 505.67974853515625, - 193.90609741210938 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 340.31976318359375, - 199.5666961669922, - 505.6796875, - 209.50607299804688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "美红鲑制品展示出来。那鲜美的红鲑制品", - "origin": [ - 340.31976318359375, - 207.4398193359375 - ], - "bbox": [ - 340.31976318359375, - 199.5666961669922, - 505.6796875, - 209.50607299804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.31976318359375, - 199.5666961669922, - 505.6796875, - 209.50607299804688 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 340.3197021484375, - 215.1666717529297, - 505.67962646484375, - 225.10604858398438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "莫不令人垂涎欲滴,至此,人与棕熊的一", - "origin": [ - 340.3197021484375, - 223.039794921875 - ], - "bbox": [ - 340.3197021484375, - 215.1666717529297, - 505.67962646484375, - 225.10604858398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.3197021484375, - 215.1666717529297, - 505.67962646484375, - 225.10604858398438 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 340.31964111328125, - 230.7666473388672, - 451.0890197753906, - 240.70602416992188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "场殊死搏斗有了合理答案。 ", - "origin": [ - 340.31964111328125, - 238.6397705078125 - ], - "bbox": [ - 340.31964111328125, - 230.7666473388672, - 451.0890197753906, - 240.70602416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.31964111328125, - 230.7666473388672, - 451.0890197753906, - 240.70602416992188 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 107.7596435546875, - 274.6866149902344, - 328.55963134765625, - 284.6260070800781 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "这里需要提示的,人物是在镜头的运动过程中出现的,我", - "origin": [ - 107.7596435546875, - 282.55975341796875 - ], - "bbox": [ - 107.7596435546875, - 274.6866149902344, - 328.55963134765625, - 284.6260070800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.7596435546875, - 274.6866149902344, - 328.55963134765625, - 284.6260070800781 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 89.7596435546875, - 290.2865905761719, - 263.4090270996094, - 300.2259826660156 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "们以人物定景别,因此这则广告只有远景。 ", - "origin": [ - 89.7596435546875, - 298.15972900390625 - ], - "bbox": [ - 89.7596435546875, - 290.2865905761719, - 263.4090270996094, - 300.2259826660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 290.2865905761719, - 263.4090270996094, - 300.2259826660156 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 107.7596435546875, - 305.8865661621094, - 328.55963134765625, - 315.8259582519531 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "这则广告的叙事内容,实际上一句话便可概括:“能够吃", - "origin": [ - 107.7596435546875, - 313.75970458984375 - ], - "bbox": [ - 107.7596435546875, - 305.8865661621094, - 328.55963134765625, - 315.8259582519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.7596435546875, - 305.8865661621094, - 328.55963134765625, - 315.8259582519531 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 89.7596435546875, - 321.4865417480469, - 328.55963134765625, - 331.4259338378906 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "上红鲑罐头,死了都值!”可是,一句话只是空洞的概念,有", - "origin": [ - 89.7596435546875, - 329.35968017578125 - ], - "bbox": [ - 89.7596435546875, - 321.4865417480469, - 328.55963134765625, - 331.4259338378906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 321.4865417480469, - 328.55963134765625, - 331.4259338378906 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 89.7596435546875, - 337.0865478515625, - 333.11962890625, - 347.02593994140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "了镜头制造的运动画面,有了镜头的衔接,即使什么话也不说,", - "origin": [ - 89.7596435546875, - 344.9596862792969 - ], - "bbox": [ - 89.7596435546875, - 337.0865478515625, - 333.11962890625, - 347.02593994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 337.0865478515625, - 333.11962890625, - 347.02593994140625 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 89.7596435546875, - 352.6865539550781, - 328.55963134765625, - 362.6259460449219 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "创意变成具体的现实。这个现实就是这种食品产生的诱惑,不", - "origin": [ - 89.7596435546875, - 360.5596923828125 - ], - "bbox": [ - 89.7596435546875, - 352.6865539550781, - 328.55963134765625, - 362.6259460449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 352.6865539550781, - 328.55963134765625, - 362.6259460449219 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 89.7596435546875, - 368.28656005859375, - 328.55963134765625, - 378.2259521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "仅如此,产生诱惑的同时还使观众获得观感的愉悦。这是一种", - "origin": [ - 89.7596435546875, - 376.1596984863281 - ], - "bbox": [ - 89.7596435546875, - 368.28656005859375, - 328.55963134765625, - 378.2259521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 368.28656005859375, - 328.55963134765625, - 378.2259521484375 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 89.7596435546875, - 383.8865661621094, - 328.55963134765625, - 393.8259582519531 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "什么语言呢?这叫蒙太奇视听语言,唯有这种语言才会产生如", - "origin": [ - 89.7596435546875, - 391.75970458984375 - ], - "bbox": [ - 89.7596435546875, - 383.8865661621094, - 328.55963134765625, - 393.8259582519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 383.8865661621094, - 328.55963134765625, - 393.8259582519531 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 89.7596435546875, - 399.486572265625, - 177.96900939941406, - 409.42596435546875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "此美妙的多种效应。 ", - "origin": [ - 89.7596435546875, - 407.3597106933594 - ], - "bbox": [ - 89.7596435546875, - 399.486572265625, - 177.96900939941406, - 409.42596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 399.486572265625, - 177.96900939941406, - 409.42596435546875 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 107.7596435546875, - 415.0865783691406, - 110.28901672363281, - 425.0259704589844 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": " ", - "origin": [ - 107.7596435546875, - 422.959716796875 - ], - "bbox": [ - 107.7596435546875, - 415.0865783691406, - 110.28901672363281, - 425.0259704589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.7596435546875, - 415.0865783691406, - 110.28901672363281, - 425.0259704589844 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 107.7596435546875, - 430.68658447265625, - 254.76901245117188, - 440.6259765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 20, - "font": "FZKai-Z03S,Bold", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "三、电视艺术综合各门类的艺术语言", - "origin": [ - 107.7596435546875, - 438.5597229003906 - ], - "bbox": [ - 107.7596435546875, - 430.68658447265625, - 252.23963928222656, - 440.6259765625 - ] - }, - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": " ", - "origin": [ - 252.23963928222656, - 438.5597229003906 - ], - "bbox": [ - 252.23963928222656, - 430.68658447265625, - 254.76901245117188, - 440.6259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.7596435546875, - 430.68658447265625, - 254.76901245117188, - 440.6259765625 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 107.7596435546875, - 446.2865905761719, - 505.67962646484375, - 456.2259826660156 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "创造影视艺术属于智慧性集体劳动,从事这项劳动需要一种通用语言,以便内部交流协同动作,从这", - "origin": [ - 107.7596435546875, - 454.15972900390625 - ], - "bbox": [ - 107.7596435546875, - 446.2865905761719, - 505.67962646484375, - 456.2259826660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.7596435546875, - 446.2865905761719, - 505.67962646484375, - 456.2259826660156 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 89.7596435546875, - 461.8865966796875, - 505.43963623046875, - 471.82598876953125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "个层面上说,属于工作性语言。另一方面,影视艺术最终呈献给观众完整的作品。而这种作品是靠叙事完", - "origin": [ - 89.7596435546875, - 469.7597351074219 - ], - "bbox": [ - 89.7596435546875, - 461.8865966796875, - 505.43963623046875, - 471.82598876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 461.8865966796875, - 505.43963623046875, - 471.82598876953125 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 89.7596435546875, - 477.4866027832031, - 505.4396057128906, - 487.4259948730469 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "成的,是综合各类艺术元素通过技术手段表达出来的。简言之,是通过视听语言表达出来的,这种语言就", - "origin": [ - 89.7596435546875, - 485.3597412109375 - ], - "bbox": [ - 89.7596435546875, - 477.4866027832031, - 505.4396057128906, - 487.4259948730469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 477.4866027832031, - 505.4396057128906, - 487.4259948730469 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 89.75961303710938, - 493.08660888671875, - 434.28900146484375, - 503.0260009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "是蒙太奇语言。从业者必须熟练掌握这门语言,才能将要表达的信息准确传达给受众。 ", - "origin": [ - 89.75961303710938, - 500.9597473144531 - ], - "bbox": [ - 89.75961303710938, - 493.08660888671875, - 434.28900146484375, - 503.0260009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75961303710938, - 493.08660888671875, - 434.28900146484375, - 503.0260009765625 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 107.75961303710938, - 508.6866149902344, - 505.6795959472656, - 518.6259765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "譬如,语文表述的“与此同时”,在影视表述中,则可能用平行蒙太奇、对比蒙太奇;语文表述的“好", - "origin": [ - 107.75961303710938, - 516.5597534179688 - ], - "bbox": [ - 107.75961303710938, - 508.6866149902344, - 505.6795959472656, - 518.6259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.75961303710938, - 508.6866149902344, - 505.6795959472656, - 518.6259765625 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 89.75961303710938, - 524.2866821289062, - 505.6795654296875, - 534.2260131835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "像是……”,“言外之意……”影视表述中,可能采用隐喻蒙太奇的手法;语文所说“特别强调的是……”", - "origin": [ - 89.75961303710938, - 532.1597900390625 - ], - "bbox": [ - 89.75961303710938, - 524.2866821289062, - 505.6795654296875, - 534.2260131835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75961303710938, - 524.2866821289062, - 505.6795654296875, - 534.2260131835938 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 89.75958251953125, - 539.8866577148438, - 505.4395751953125, - 549.8259887695312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "在影视表述中,或许有个特写镜头就“强调”了。初涉电视工作的朋友可能会认为,如此,电视语言就是", - "origin": [ - 89.75958251953125, - 547.759765625 - ], - "bbox": [ - 89.75958251953125, - 539.8866577148438, - 505.4395751953125, - 549.8259887695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75958251953125, - 539.8866577148438, - 505.4395751953125, - 549.8259887695312 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 89.75958251953125, - 555.4866333007812, - 505.4395446777344, - 565.4259643554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "电影语言,何必再造炉灶侈谈什么电视艺术语言?作者忧虑的是,这些朋友也并不知道电影语言是什么。", - "origin": [ - 89.75958251953125, - 563.3597412109375 - ], - "bbox": [ - 89.75958251953125, - 555.4866333007812, - 505.4395446777344, - 565.4259643554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75958251953125, - 555.4866333007812, - 505.4395446777344, - 565.4259643554688 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 89.75955200195312, - 571.086669921875, - 505.43951416015625, - 581.0260009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "因此,也不可能知道哪些适用于电视表达,而哪些存在着差异,最终如何在电视屏幕上制造出近似电影的", - "origin": [ - 89.75955200195312, - 578.9597778320312 - ], - "bbox": [ - 89.75955200195312, - 571.086669921875, - 505.43951416015625, - 581.0260009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75955200195312, - 571.086669921875, - 505.43951416015625, - 581.0260009765625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 89.759521484375, - 586.6867065429688, - 146.5288848876953, - 596.6260375976562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "蒙太奇时空。 ", - "origin": [ - 89.759521484375, - 594.559814453125 - ], - "bbox": [ - 89.759521484375, - 586.6867065429688, - 146.5288848876953, - 596.6260375976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.759521484375, - 586.6867065429688, - 146.5288848876953, - 596.6260375976562 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 88.79951477050781, - 602.2866821289062, - 469.3288879394531, - 612.2260131835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": " 因此,为了表述的方便,为了把大的前提说清楚,我们切入的话题,将从电影的语言说起。 ", - "origin": [ - 88.79951477050781, - 610.1597900390625 - ], - "bbox": [ - 88.79951477050781, - 602.2866821289062, - 469.3288879394531, - 612.2260131835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.79951477050781, - 602.2866821289062, - 469.3288879394531, - 612.2260131835938 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 103.91949462890625, - 617.8866577148438, - 505.1994934082031, - 627.8259887695312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "人类通常的叙事方式依靠语言和文字,表达事物能够妙语连珠或是文采飞扬,便会赢得听众和读者。因", - "origin": [ - 103.91949462890625, - 625.759765625 - ], - "bbox": [ - 103.91949462890625, - 617.8866577148438, - 505.1994934082031, - 627.8259887695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.91949462890625, - 617.8866577148438, - 505.1994934082031, - 627.8259887695312 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 85.91949462890625, - 633.4866943359375, - 505.43951416015625, - 643.426025390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "为听众和读者通过表述者的叙事,不仅获得某种信息,还能体味到精神的愉悦和快感。这是语言或是文字表", - "origin": [ - 85.91949462890625, - 641.3598022460938 - ], - "bbox": [ - 85.91949462890625, - 633.4866943359375, - 505.43951416015625, - 643.426025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91949462890625, - 633.4866943359375, - 505.43951416015625, - 643.426025390625 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 85.91952514648438, - 649.0867309570312, - 169.5688934326172, - 659.0260620117188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "达艺术的魅力使然。 ", - "origin": [ - 85.91952514648438, - 656.9598388671875 - ], - "bbox": [ - 85.91952514648438, - 649.0867309570312, - 169.5688934326172, - 659.0260620117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 649.0867309570312, - 169.5688934326172, - 659.0260620117188 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 103.91952514648438, - 664.6867065429688, - 505.19952392578125, - 674.6260375976562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "作为艺术,不论哪个门类,都有各自的艺术语言。音乐依靠旋律、节奏、节拍、速度、力度、音区、音", - "origin": [ - 103.91952514648438, - 672.559814453125 - ], - "bbox": [ - 103.91952514648438, - 664.6867065429688, - 505.19952392578125, - 674.6260375976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.91952514648438, - 664.6867065429688, - 505.19952392578125, - 674.6260375976562 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 85.91952514648438, - 680.2866821289062, - 505.19952392578125, - 690.2260131835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "色、调式等元素组织语言;美术依靠线条、明暗对比和色彩构成组织语言;舞蹈主要依靠肢体、形体、神情", - "origin": [ - 85.91952514648438, - 688.1597900390625 - ], - "bbox": [ - 85.91952514648438, - 680.2866821289062, - 505.19952392578125, - 690.2260131835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 680.2866821289062, - 505.19952392578125, - 690.2260131835938 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 85.91952514648438, - 695.88671875, - 505.43951416015625, - 705.8260498046875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "组织语言;文学则依靠人的语音文字、修辞方法组织语言,如此等等。娴熟的艺术语言,需要掌握足够的词", - "origin": [ - 85.91952514648438, - 703.7598266601562 - ], - "bbox": [ - 85.91952514648438, - 695.88671875, - 505.43951416015625, - 705.8260498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 695.88671875, - 505.43951416015625, - 705.8260498046875 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 85.91952514648438, - 711.4866943359375, - 505.43951416015625, - 721.426025390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "汇量,正确的语言语法,巧妙的组织结构,饱满的情感色彩。并且能够引发听者或读者形象的逻辑的智慧的", - "origin": [ - 85.91952514648438, - 719.3598022460938 - ], - "bbox": [ - 85.91952514648438, - 711.4866943359375, - 505.43951416015625, - 721.426025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 711.4866943359375, - 505.43951416015625, - 721.426025390625 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 85.91952514648438, - 727.0867309570312, - 509.0395202636719, - 737.0260620117188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "思维,使人产生健康的美的感受。艺术家只有掌握了本门类的艺术语言,才可能得心应手的塑造艺术形象,", - "origin": [ - 85.91952514648438, - 734.9598388671875 - ], - "bbox": [ - 85.91952514648438, - 727.0867309570312, - 509.0395202636719, - 737.0260620117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 727.0867309570312, - 509.0395202636719, - 737.0260620117188 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 85.91952514648438, - 742.6867065429688, - 505.4394836425781, - 752.6260375976562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "向受众传达对现实生活的感受。世界上没有一个艺术家,创造的作品仅供自己孤芳自赏的,艺术家都是不安", - "origin": [ - 85.91952514648438, - 750.559814453125 - ], - "bbox": [ - 85.91952514648438, - 742.6867065429688, - 505.4394836425781, - 752.6260375976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 742.6867065429688, - 505.4394836425781, - 752.6260375976562 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 85.91949462890625, - 758.2866821289062, - 142.68885803222656, - 768.2260131835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "分的表现狂。 ", - "origin": [ - 85.91949462890625, - 766.1597900390625 - ], - "bbox": [ - 85.91949462890625, - 758.2866821289062, - 142.68885803222656, - 768.2260131835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91949462890625, - 758.2866821289062, - 142.68885803222656, - 768.2260131835938 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 90, - 79, - 331, - 265 - ], - "image_path": "images/0_90_79_331_265.jpg" - }, - { - "bbox": [ - 338, - 251, - 595, - 436 - ], - "image_path": "images/0_338_251_595_436.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 121.87903225806451, - 367.025641025641, - 133.875, - 379.49971509971505 - ], - "image_path": "equations_inline/0_121_367_133_379.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 89.7596435546875, - 74.76689147949219, - 333.11962890625, - 440.6259765625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 338, - 74.76689147949219, - 595, - 440.6259765625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 446.2865905761719, - 595.0, - 792.3727416992188 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 89.76000213623047, - 790.4000244140625 - ], - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 92.04000091552734, - 792.3727416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76000213623047, - 782.2730712890625, - 92.04000091552734, - 792.3727416992188 - ] - }, - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "4 ", - "origin": [ - 295.44000244140625, - 790.4000244140625 - ], - "bbox": [ - 295.44000244140625, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.44000244140625, - 782.2730712890625, - 302.2799987792969, - 792.3727416992188 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 358.32000732421875, - 74.76689147949219, - 506.8800048828125, - 84.70626831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "3、故事并没有完结,情节还在继续。", - "origin": [ - 358.32000732421875, - 82.6400146484375 - ], - "bbox": [ - 358.32000732421875, - 74.76689147949219, - 506.8800048828125, - 84.70626831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 358.32000732421875, - 74.76689147949219, - 506.8800048828125, - 84.70626831054688 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 340.32000732421875, - 90.36686706542969, - 510.239990234375, - 100.30624389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "工人跨上接应他的摩托车,准备迅速逃离,", - "origin": [ - 340.32000732421875, - 98.239990234375 - ], - "bbox": [ - 340.32000732421875, - 90.36686706542969, - 510.239990234375, - 100.30624389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.32000732421875, - 90.36686706542969, - 510.239990234375, - 100.30624389648438 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 340.32000732421875, - 105.96684265136719, - 505.6799621582031, - 115.90621948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "棕熊忍痛穷追不舍。实际上它已经追到跟", - "origin": [ - 340.32000732421875, - 113.8399658203125 - ], - "bbox": [ - 340.32000732421875, - 105.96684265136719, - 505.6799621582031, - 115.90621948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.32000732421875, - 105.96684265136719, - 505.6799621582031, - 115.90621948242188 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 340.3199462890625, - 121.56681823730469, - 505.67987060546875, - 131.50619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "前,甚至有可能夺回那条大马哈鱼,只是", - "origin": [ - 340.3199462890625, - 129.43994140625 - ], - "bbox": [ - 340.3199462890625, - 121.56681823730469, - 505.67987060546875, - 131.50619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.3199462890625, - 121.56681823730469, - 505.67987060546875, - 131.50619506835938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 340.31988525390625, - 137.1667938232422, - 505.6798400878906, - 147.10617065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "摩托车速度太快,迅速逃离了。棕熊十分", - "origin": [ - 340.31988525390625, - 145.0399169921875 - ], - "bbox": [ - 340.31988525390625, - 137.1667938232422, - 505.6798400878906, - 147.10617065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.31988525390625, - 137.1667938232422, - 505.6798400878906, - 147.10617065429688 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 340.31982421875, - 152.7667694091797, - 477.9692077636719, - 162.70614624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "郁闷十分恼火,然而却无可奈何。", - "origin": [ - 340.31982421875, - 160.639892578125 - ], - "bbox": [ - 340.31982421875, - 152.7667694091797, - 475.4398193359375, - 162.70614624023438 - ] - }, - { - "size": 9.119999885559082, - "flags": 20, - "font": "FZKai-Z03S,Bold", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": " ", - "origin": [ - 475.4398193359375, - 160.639892578125 - ], - "bbox": [ - 475.4398193359375, - 152.7667694091797, - 477.9692077636719, - 162.70614624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.31982421875, - 152.7667694091797, - 477.9692077636719, - 162.70614624023438 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 358.31982421875, - 168.3667449951172, - 505.6798095703125, - 178.30612182617188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "4、当摩托车即将消失之际,前景再次", - "origin": [ - 358.31982421875, - 176.2398681640625 - ], - "bbox": [ - 358.31982421875, - 168.3667449951172, - 505.6798095703125, - 178.30612182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 358.31982421875, - 168.3667449951172, - 505.6798095703125, - 178.30612182617188 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 340.31982421875, - 183.9667205810547, - 505.67974853515625, - 193.90609741210938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "出现那种品牌罐头,而且还将罐头里的鲜", - "origin": [ - 340.31982421875, - 191.83984375 - ], - "bbox": [ - 340.31982421875, - 183.9667205810547, - 505.67974853515625, - 193.90609741210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.31982421875, - 183.9667205810547, - 505.67974853515625, - 193.90609741210938 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 340.31976318359375, - 199.5666961669922, - 505.6796875, - 209.50607299804688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "美红鲑制品展示出来。那鲜美的红鲑制品", - "origin": [ - 340.31976318359375, - 207.4398193359375 - ], - "bbox": [ - 340.31976318359375, - 199.5666961669922, - 505.6796875, - 209.50607299804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.31976318359375, - 199.5666961669922, - 505.6796875, - 209.50607299804688 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 340.3197021484375, - 215.1666717529297, - 505.67962646484375, - 225.10604858398438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "莫不令人垂涎欲滴,至此,人与棕熊的一", - "origin": [ - 340.3197021484375, - 223.039794921875 - ], - "bbox": [ - 340.3197021484375, - 215.1666717529297, - 505.67962646484375, - 225.10604858398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.3197021484375, - 215.1666717529297, - 505.67962646484375, - 225.10604858398438 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 340.31964111328125, - 230.7666473388672, - 451.0890197753906, - 240.70602416992188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "场殊死搏斗有了合理答案。 ", - "origin": [ - 340.31964111328125, - 238.6397705078125 - ], - "bbox": [ - 340.31964111328125, - 230.7666473388672, - 451.0890197753906, - 240.70602416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.31964111328125, - 230.7666473388672, - 451.0890197753906, - 240.70602416992188 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 107.7596435546875, - 274.6866149902344, - 328.55963134765625, - 284.6260070800781 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "这里需要提示的,人物是在镜头的运动过程中出现的,我", - "origin": [ - 107.7596435546875, - 282.55975341796875 - ], - "bbox": [ - 107.7596435546875, - 274.6866149902344, - 328.55963134765625, - 284.6260070800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.7596435546875, - 274.6866149902344, - 328.55963134765625, - 284.6260070800781 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 89.7596435546875, - 290.2865905761719, - 263.4090270996094, - 300.2259826660156 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "们以人物定景别,因此这则广告只有远景。 ", - "origin": [ - 89.7596435546875, - 298.15972900390625 - ], - "bbox": [ - 89.7596435546875, - 290.2865905761719, - 263.4090270996094, - 300.2259826660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 290.2865905761719, - 263.4090270996094, - 300.2259826660156 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 107.7596435546875, - 305.8865661621094, - 328.55963134765625, - 315.8259582519531 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "这则广告的叙事内容,实际上一句话便可概括:“能够吃", - "origin": [ - 107.7596435546875, - 313.75970458984375 - ], - "bbox": [ - 107.7596435546875, - 305.8865661621094, - 328.55963134765625, - 315.8259582519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.7596435546875, - 305.8865661621094, - 328.55963134765625, - 315.8259582519531 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 89.7596435546875, - 321.4865417480469, - 328.55963134765625, - 331.4259338378906 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "上红鲑罐头,死了都值!”可是,一句话只是空洞的概念,有", - "origin": [ - 89.7596435546875, - 329.35968017578125 - ], - "bbox": [ - 89.7596435546875, - 321.4865417480469, - 328.55963134765625, - 331.4259338378906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 321.4865417480469, - 328.55963134765625, - 331.4259338378906 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 89.7596435546875, - 337.0865478515625, - 333.11962890625, - 347.02593994140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "了镜头制造的运动画面,有了镜头的衔接,即使什么话也不说,", - "origin": [ - 89.7596435546875, - 344.9596862792969 - ], - "bbox": [ - 89.7596435546875, - 337.0865478515625, - 333.11962890625, - 347.02593994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 337.0865478515625, - 333.11962890625, - 347.02593994140625 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 89.7596435546875, - 352.6865539550781, - 328.55963134765625, - 362.6259460449219 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "创意变成具体的现实。这个现实就是这种食品产生的诱惑,不", - "origin": [ - 89.7596435546875, - 360.5596923828125 - ], - "bbox": [ - 89.7596435546875, - 352.6865539550781, - 328.55963134765625, - 362.6259460449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 352.6865539550781, - 328.55963134765625, - 362.6259460449219 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 89.7596435546875, - 368.28656005859375, - 328.55963134765625, - 378.2259521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "仅如此,产生诱惑的同时还使观众获得观感的愉悦。这是一种", - "origin": [ - 89.7596435546875, - 376.1596984863281 - ], - "bbox": [ - 89.7596435546875, - 368.28656005859375, - 328.55963134765625, - 378.2259521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 368.28656005859375, - 328.55963134765625, - 378.2259521484375 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 89.7596435546875, - 383.8865661621094, - 328.55963134765625, - 393.8259582519531 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "什么语言呢?这叫蒙太奇视听语言,唯有这种语言才会产生如", - "origin": [ - 89.7596435546875, - 391.75970458984375 - ], - "bbox": [ - 89.7596435546875, - 383.8865661621094, - 328.55963134765625, - 393.8259582519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 383.8865661621094, - 328.55963134765625, - 393.8259582519531 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 89.7596435546875, - 399.486572265625, - 177.96900939941406, - 409.42596435546875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "此美妙的多种效应。 ", - "origin": [ - 89.7596435546875, - 407.3597106933594 - ], - "bbox": [ - 89.7596435546875, - 399.486572265625, - 177.96900939941406, - 409.42596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 399.486572265625, - 177.96900939941406, - 409.42596435546875 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 107.7596435546875, - 415.0865783691406, - 110.28901672363281, - 425.0259704589844 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": " ", - "origin": [ - 107.7596435546875, - 422.959716796875 - ], - "bbox": [ - 107.7596435546875, - 415.0865783691406, - 110.28901672363281, - 425.0259704589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.7596435546875, - 415.0865783691406, - 110.28901672363281, - 425.0259704589844 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 107.7596435546875, - 430.68658447265625, - 254.76901245117188, - 440.6259765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 20, - "font": "FZKai-Z03S,Bold", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "三、电视艺术综合各门类的艺术语言", - "origin": [ - 107.7596435546875, - 438.5597229003906 - ], - "bbox": [ - 107.7596435546875, - 430.68658447265625, - 252.23963928222656, - 440.6259765625 - ] - }, - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": " ", - "origin": [ - 252.23963928222656, - 438.5597229003906 - ], - "bbox": [ - 252.23963928222656, - 430.68658447265625, - 254.76901245117188, - 440.6259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.7596435546875, - 430.68658447265625, - 254.76901245117188, - 440.6259765625 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 107.7596435546875, - 446.2865905761719, - 505.67962646484375, - 456.2259826660156 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "创造影视艺术属于智慧性集体劳动,从事这项劳动需要一种通用语言,以便内部交流协同动作,从这", - "origin": [ - 107.7596435546875, - 454.15972900390625 - ], - "bbox": [ - 107.7596435546875, - 446.2865905761719, - 505.67962646484375, - 456.2259826660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.7596435546875, - 446.2865905761719, - 505.67962646484375, - 456.2259826660156 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 89.7596435546875, - 461.8865966796875, - 505.43963623046875, - 471.82598876953125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "个层面上说,属于工作性语言。另一方面,影视艺术最终呈献给观众完整的作品。而这种作品是靠叙事完", - "origin": [ - 89.7596435546875, - 469.7597351074219 - ], - "bbox": [ - 89.7596435546875, - 461.8865966796875, - 505.43963623046875, - 471.82598876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 461.8865966796875, - 505.43963623046875, - 471.82598876953125 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 89.7596435546875, - 477.4866027832031, - 505.4396057128906, - 487.4259948730469 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "成的,是综合各类艺术元素通过技术手段表达出来的。简言之,是通过视听语言表达出来的,这种语言就", - "origin": [ - 89.7596435546875, - 485.3597412109375 - ], - "bbox": [ - 89.7596435546875, - 477.4866027832031, - 505.4396057128906, - 487.4259948730469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.7596435546875, - 477.4866027832031, - 505.4396057128906, - 487.4259948730469 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 89.75961303710938, - 493.08660888671875, - 434.28900146484375, - 503.0260009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "是蒙太奇语言。从业者必须熟练掌握这门语言,才能将要表达的信息准确传达给受众。 ", - "origin": [ - 89.75961303710938, - 500.9597473144531 - ], - "bbox": [ - 89.75961303710938, - 493.08660888671875, - 434.28900146484375, - 503.0260009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75961303710938, - 493.08660888671875, - 434.28900146484375, - 503.0260009765625 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 107.75961303710938, - 508.6866149902344, - 505.6795959472656, - 518.6259765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "譬如,语文表述的“与此同时”,在影视表述中,则可能用平行蒙太奇、对比蒙太奇;语文表述的“好", - "origin": [ - 107.75961303710938, - 516.5597534179688 - ], - "bbox": [ - 107.75961303710938, - 508.6866149902344, - 505.6795959472656, - 518.6259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.75961303710938, - 508.6866149902344, - 505.6795959472656, - 518.6259765625 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 89.75961303710938, - 524.2866821289062, - 505.6795654296875, - 534.2260131835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "像是……”,“言外之意……”影视表述中,可能采用隐喻蒙太奇的手法;语文所说“特别强调的是……”", - "origin": [ - 89.75961303710938, - 532.1597900390625 - ], - "bbox": [ - 89.75961303710938, - 524.2866821289062, - 505.6795654296875, - 534.2260131835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75961303710938, - 524.2866821289062, - 505.6795654296875, - 534.2260131835938 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 89.75958251953125, - 539.8866577148438, - 505.4395751953125, - 549.8259887695312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "在影视表述中,或许有个特写镜头就“强调”了。初涉电视工作的朋友可能会认为,如此,电视语言就是", - "origin": [ - 89.75958251953125, - 547.759765625 - ], - "bbox": [ - 89.75958251953125, - 539.8866577148438, - 505.4395751953125, - 549.8259887695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75958251953125, - 539.8866577148438, - 505.4395751953125, - 549.8259887695312 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 89.75958251953125, - 555.4866333007812, - 505.4395446777344, - 565.4259643554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "电影语言,何必再造炉灶侈谈什么电视艺术语言?作者忧虑的是,这些朋友也并不知道电影语言是什么。", - "origin": [ - 89.75958251953125, - 563.3597412109375 - ], - "bbox": [ - 89.75958251953125, - 555.4866333007812, - 505.4395446777344, - 565.4259643554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75958251953125, - 555.4866333007812, - 505.4395446777344, - 565.4259643554688 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 89.75955200195312, - 571.086669921875, - 505.43951416015625, - 581.0260009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "因此,也不可能知道哪些适用于电视表达,而哪些存在着差异,最终如何在电视屏幕上制造出近似电影的", - "origin": [ - 89.75955200195312, - 578.9597778320312 - ], - "bbox": [ - 89.75955200195312, - 571.086669921875, - 505.43951416015625, - 581.0260009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75955200195312, - 571.086669921875, - 505.43951416015625, - 581.0260009765625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 89.759521484375, - 586.6867065429688, - 146.5288848876953, - 596.6260375976562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "蒙太奇时空。 ", - "origin": [ - 89.759521484375, - 594.559814453125 - ], - "bbox": [ - 89.759521484375, - 586.6867065429688, - 146.5288848876953, - 596.6260375976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.759521484375, - 586.6867065429688, - 146.5288848876953, - 596.6260375976562 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 88.79951477050781, - 602.2866821289062, - 469.3288879394531, - 612.2260131835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": " 因此,为了表述的方便,为了把大的前提说清楚,我们切入的话题,将从电影的语言说起。 ", - "origin": [ - 88.79951477050781, - 610.1597900390625 - ], - "bbox": [ - 88.79951477050781, - 602.2866821289062, - 469.3288879394531, - 612.2260131835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.79951477050781, - 602.2866821289062, - 469.3288879394531, - 612.2260131835938 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 103.91949462890625, - 617.8866577148438, - 505.1994934082031, - 627.8259887695312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "人类通常的叙事方式依靠语言和文字,表达事物能够妙语连珠或是文采飞扬,便会赢得听众和读者。因", - "origin": [ - 103.91949462890625, - 625.759765625 - ], - "bbox": [ - 103.91949462890625, - 617.8866577148438, - 505.1994934082031, - 627.8259887695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.91949462890625, - 617.8866577148438, - 505.1994934082031, - 627.8259887695312 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 85.91949462890625, - 633.4866943359375, - 505.43951416015625, - 643.426025390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "为听众和读者通过表述者的叙事,不仅获得某种信息,还能体味到精神的愉悦和快感。这是语言或是文字表", - "origin": [ - 85.91949462890625, - 641.3598022460938 - ], - "bbox": [ - 85.91949462890625, - 633.4866943359375, - 505.43951416015625, - 643.426025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91949462890625, - 633.4866943359375, - 505.43951416015625, - 643.426025390625 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 85.91952514648438, - 649.0867309570312, - 169.5688934326172, - 659.0260620117188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "达艺术的魅力使然。 ", - "origin": [ - 85.91952514648438, - 656.9598388671875 - ], - "bbox": [ - 85.91952514648438, - 649.0867309570312, - 169.5688934326172, - 659.0260620117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 649.0867309570312, - 169.5688934326172, - 659.0260620117188 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 103.91952514648438, - 664.6867065429688, - 505.19952392578125, - 674.6260375976562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "作为艺术,不论哪个门类,都有各自的艺术语言。音乐依靠旋律、节奏、节拍、速度、力度、音区、音", - "origin": [ - 103.91952514648438, - 672.559814453125 - ], - "bbox": [ - 103.91952514648438, - 664.6867065429688, - 505.19952392578125, - 674.6260375976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.91952514648438, - 664.6867065429688, - 505.19952392578125, - 674.6260375976562 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 85.91952514648438, - 680.2866821289062, - 505.19952392578125, - 690.2260131835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "色、调式等元素组织语言;美术依靠线条、明暗对比和色彩构成组织语言;舞蹈主要依靠肢体、形体、神情", - "origin": [ - 85.91952514648438, - 688.1597900390625 - ], - "bbox": [ - 85.91952514648438, - 680.2866821289062, - 505.19952392578125, - 690.2260131835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 680.2866821289062, - 505.19952392578125, - 690.2260131835938 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 85.91952514648438, - 695.88671875, - 505.43951416015625, - 705.8260498046875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "组织语言;文学则依靠人的语音文字、修辞方法组织语言,如此等等。娴熟的艺术语言,需要掌握足够的词", - "origin": [ - 85.91952514648438, - 703.7598266601562 - ], - "bbox": [ - 85.91952514648438, - 695.88671875, - 505.43951416015625, - 705.8260498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 695.88671875, - 505.43951416015625, - 705.8260498046875 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 85.91952514648438, - 711.4866943359375, - 505.43951416015625, - 721.426025390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "汇量,正确的语言语法,巧妙的组织结构,饱满的情感色彩。并且能够引发听者或读者形象的逻辑的智慧的", - "origin": [ - 85.91952514648438, - 719.3598022460938 - ], - "bbox": [ - 85.91952514648438, - 711.4866943359375, - 505.43951416015625, - 721.426025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 711.4866943359375, - 505.43951416015625, - 721.426025390625 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 85.91952514648438, - 727.0867309570312, - 509.0395202636719, - 737.0260620117188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "思维,使人产生健康的美的感受。艺术家只有掌握了本门类的艺术语言,才可能得心应手的塑造艺术形象,", - "origin": [ - 85.91952514648438, - 734.9598388671875 - ], - "bbox": [ - 85.91952514648438, - 727.0867309570312, - 509.0395202636719, - 737.0260620117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 727.0867309570312, - 509.0395202636719, - 737.0260620117188 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 85.91952514648438, - 742.6867065429688, - 505.4394836425781, - 752.6260375976562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "向受众传达对现实生活的感受。世界上没有一个艺术家,创造的作品仅供自己孤芳自赏的,艺术家都是不安", - "origin": [ - 85.91952514648438, - 750.559814453125 - ], - "bbox": [ - 85.91952514648438, - 742.6867065429688, - 505.4394836425781, - 752.6260375976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91952514648438, - 742.6867065429688, - 505.4394836425781, - 752.6260375976562 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 85.91949462890625, - 758.2866821289062, - 142.68885803222656, - 768.2260131835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "FZKai-Z03S", - "color": 0, - "ascender": 0.86328125, - "descender": -0.2265625, - "text": "分的表现狂。 ", - "origin": [ - 85.91949462890625, - 766.1597900390625 - ], - "bbox": [ - 85.91949462890625, - 758.2866821289062, - 142.68885803222656, - 768.2260131835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.91949462890625, - 758.2866821289062, - 142.68885803222656, - 768.2260131835938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.0, - 842.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/p3_\345\233\276\346\226\207\346\267\267\346\216\222_84.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/p3_\345\233\276\346\226\207\346\267\267\346\216\222_84.pdf/preproc_out.json" deleted file mode 100644 index 279516b5f..000000000 --- "a/tests/assets/pre_proc_results/p3_\345\233\276\346\226\207\346\267\267\346\216\222_84.pdf/preproc_out.json" +++ /dev/null @@ -1,3521 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 304.44000244140625, - 792.1326904296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 89.76000213623047, - 790.1599731445312 - ], - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 92.04000091552734, - 792.1326904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 92.04000091552734, - 792.1326904296875 - ] - }, - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "99 ", - "origin": [ - 293.0400085449219, - 790.1599731445312 - ], - "bbox": [ - 293.0400085449219, - 782.0330200195312, - 304.44000244140625, - 792.1326904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.0400085449219, - 782.0330200195312, - 304.44000244140625, - 792.1326904296875 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 219.1199951171875, - 71.24002075195312, - 394.0920104980469, - 87.7640151977539 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "SimSun,Bold", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "第六章、三角形原理的普遍意义", - "origin": [ - 219.1199951171875, - 84.08001708984375 - ], - "bbox": [ - 219.1199951171875, - 73.76751708984375, - 387.8399658203125, - 85.76751708984375 - ] - }, - { - "size": 12.0, - "flags": 16, - "font": "SimSun,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 388.08001708984375, - 84.08001708984375 - ], - "bbox": [ - 388.08001708984375, - 71.24002075195312, - 394.0920104980469, - 87.7640151977539 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.1199951171875, - 71.24002075195312, - 394.0920104980469, - 87.7640151977539 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 89.75994873046875, - 89.36749267578125, - 511.4400634765625, - 756.5673217773438 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "按照语法的通解,语法是约定俗成的,具有社会性。语法是一种法则,是", - "origin": [ - 118.56002807617188, - 99.67999267578125 - ], - "bbox": [ - 118.56002807617188, - 89.36749267578125, - 502.5600280761719, - 101.36749267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.56002807617188, - 89.36749267578125, - 502.5600280761719, - 101.36749267578125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "有条理、成系统、客观存在的完整体系。语法既然称为法则,就不能轻易变动,", - "origin": [ - 89.76002502441406, - 115.27996826171875 - ], - "bbox": [ - 89.76002502441406, - 104.96746826171875, - 509.760009765625, - 116.96746826171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76002502441406, - 104.96746826171875, - 509.760009765625, - 116.96746826171875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "具有相对稳定性,就要遵循其规律严肃认真地掌握它、使用它。电影的语言语法,", - "origin": [ - 89.76002502441406, - 130.87994384765625 - ], - "bbox": [ - 89.76002502441406, - 120.56744384765625, - 511.4400634765625, - 132.56744384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76002502441406, - 120.56744384765625, - 511.4400634765625, - 132.56744384765625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "是在一百年的电影艺术发展中形成的,同样拥有这样的特点。为了使我国的文化", - "origin": [ - 89.76002502441406, - 146.47991943359375 - ], - "bbox": [ - 89.76002502441406, - 136.16741943359375, - 505.44000244140625, - 148.16741943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76002502441406, - 136.16741943359375, - 505.44000244140625, - 148.16741943359375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "产品融入世界的大市场,影视作品也应该走向世界。欲达此目的,就要首先克服", - "origin": [ - 89.76002502441406, - 162.07989501953125 - ], - "bbox": [ - 89.76002502441406, - 151.76739501953125, - 505.44000244140625, - 163.76739501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76002502441406, - 151.76739501953125, - 505.44000244140625, - 163.76739501953125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "中外文本语境的差异。当今世界,文化产品在文化工业背景下,强调全球口味和", - "origin": [ - 89.760009765625, - 177.67987060546875 - ], - "bbox": [ - 89.760009765625, - 167.36737060546875, - 505.44000244140625, - 179.36737060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 167.36737060546875, - 505.44000244140625, - 179.36737060546875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "通约性,规范影视作品的语言语法,目前显得尤为重要和紧迫。", - "origin": [ - 89.760009765625, - 193.27984619140625 - ], - "bbox": [ - 89.760009765625, - 182.96734619140625, - 425.760009765625, - 194.96734619140625 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 425.760009765625, - 193.27984619140625 - ], - "bbox": [ - 425.760009765625, - 180.37985229492188, - 431.760009765625, - 196.8678436279297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 180.37985229492188, - 431.760009765625, - 196.8678436279297 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "好莱坞何以在世界影坛称王称霸?港台的电视剧一度覆盖全国银屏,在亚", - "origin": [ - 118.55999755859375, - 208.87982177734375 - ], - "bbox": [ - 118.55999755859375, - 198.56732177734375, - 502.55999755859375, - 210.56732177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.55999755859375, - 198.56732177734375, - 502.55999755859375, - 210.56732177734375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "洲甚至“卡通”“横行、韩流”阵阵,以致出现“哈日”、“哈韩”现象。究其原", - "origin": [ - 89.760009765625, - 224.47979736328125 - ], - "bbox": [ - 89.760009765625, - 214.16729736328125, - 503.760009765625, - 226.16729736328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 214.16729736328125, - 503.760009765625, - 226.16729736328125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "因,无非摸透了多数人的“口味”,在相当大的范围内展示了“通约”语言。尤", - "origin": [ - 89.760009765625, - 240.07977294921875 - ], - "bbox": [ - 89.760009765625, - 229.76727294921875, - 503.760009765625, - 241.76727294921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 229.76727294921875, - 503.760009765625, - 241.76727294921875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "其我们的某些电视从艺者,一叶障目不见泰山,不认真地研究和借鉴规范的电影", - "origin": [ - 89.760009765625, - 255.67974853515625 - ], - "bbox": [ - 89.760009765625, - 245.36724853515625, - 505.44000244140625, - 257.36724853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 245.36724853515625, - 505.44000244140625, - 257.36724853515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "语言,依旧信口开河的胡编乱造,这是没有危机感的一种严重现象。", - "origin": [ - 89.760009765625, - 271.27972412109375 - ], - "bbox": [ - 89.760009765625, - 260.96722412109375, - 449.760009765625, - 272.96722412109375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 449.760009765625, - 271.27972412109375 - ], - "bbox": [ - 449.760009765625, - 258.3797302246094, - 455.760009765625, - 274.86773681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 258.3797302246094, - 455.760009765625, - 274.86773681640625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 118.55999755859375, - 286.87969970703125 - ], - "bbox": [ - 118.55999755859375, - 273.9797058105469, - 124.55999755859375, - 290.46771240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.55999755859375, - 273.9797058105469, - 124.55999755859375, - 290.46771240234375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "电影语言语法的三角形原理,是乌拉圭导演丹尼艾尔·阿里洪总结出来的,", - "origin": [ - 113.75999450683594, - 302.47967529296875 - ], - "bbox": [ - 113.75999450683594, - 292.16717529296875, - 509.760009765625, - 304.16717529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.75999450683594, - 292.16717529296875, - 509.760009765625, - 304.16717529296875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "他的基本观点大致是这样的:一个场景中两个中心演员之间的关系线,是以他们", - "origin": [ - 89.760009765625, - 318.07965087890625 - ], - "bbox": [ - 89.760009765625, - 307.76715087890625, - 505.44000244140625, - 319.76715087890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 307.76715087890625, - 505.44000244140625, - 319.76715087890625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "相互视线的走向为基础的。即使场景中只有一个中心演员,其视线亦可以和运动", - "origin": [ - 89.760009765625, - 333.6796569824219 - ], - "bbox": [ - 89.760009765625, - 323.3671569824219, - 505.44000244140625, - 335.3671569824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 323.3671569824219, - 505.44000244140625, - 335.3671569824219 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "趋向形成关系线。在关系线的一侧可以有三个顶端位置,这三个顶端构成底边与", - "origin": [ - 89.760009765625, - 349.2796630859375 - ], - "bbox": [ - 89.760009765625, - 338.9671630859375, - 505.44000244140625, - 350.9671630859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 338.9671630859375, - 505.44000244140625, - 350.9671630859375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "关系线的三角形。但是,一般情况下,不能越过关系线", - "origin": [ - 89.760009765625, - 364.8796691894531 - ], - "bbox": [ - 89.760009765625, - 354.5671691894531, - 373.67999267578125, - 366.5671691894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 354.5671691894531, - 373.67999267578125, - 366.5671691894531 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "到另一侧拍摄,这是电影语言要遵守的最重要的规则之", - "origin": [ - 89.75997924804688, - 380.47967529296875 - ], - "bbox": [ - 89.75997924804688, - 370.16717529296875, - 373.67999267578125, - 382.16717529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75997924804688, - 370.16717529296875, - 373.67999267578125, - 382.16717529296875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "一。违犯这一规则,演员会失去画面上的固定位置,甚", - "origin": [ - 89.75997924804688, - 396.0796813964844 - ], - "bbox": [ - 89.75997924804688, - 385.7671813964844, - 373.4399719238281, - 397.7671813964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75997924804688, - 385.7671813964844, - 373.4399719238281, - 397.7671813964844 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "至会失去运动方向,把观众搞得糊里糊涂,不知道谁跟", - "origin": [ - 89.75997924804688, - 411.6796875 - ], - "bbox": [ - 89.75997924804688, - 401.3671875, - 373.6799621582031, - 413.3671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75997924804688, - 401.3671875, - 373.6799621582031, - 413.3671875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "谁在交流,不知道他们究竟要到哪里去。画面中的人物", - "origin": [ - 89.75996398925781, - 427.2796936035156 - ], - "bbox": [ - 89.75996398925781, - 416.9671936035156, - 373.6799621582031, - 428.9671936035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75996398925781, - 416.9671936035156, - 373.6799621582031, - 428.9671936035156 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "关系线和运动线,是两条不可轻易逾越的轴线,毫无根", - "origin": [ - 89.75994873046875, - 442.87969970703125 - ], - "bbox": [ - 89.75994873046875, - 432.56719970703125, - 373.43994140625, - 444.56719970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 432.56719970703125, - 373.43994140625, - 444.56719970703125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "据的逾越了,那就犯规了,通常称作“跳轴”。必须越", - "origin": [ - 89.75994873046875, - 458.4797058105469 - ], - "bbox": [ - 89.75994873046875, - 448.1672058105469, - 371.75994873046875, - 460.1672058105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 448.1672058105469, - 371.75994873046875, - 460.1672058105469 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "过轴线拍摄是有条件的,需要采取必要的手段。这一章", - "origin": [ - 89.75994873046875, - 474.0797119140625 - ], - "bbox": [ - 89.75994873046875, - 463.7672119140625, - 373.43994140625, - 475.7672119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 463.7672119140625, - 373.43994140625, - 475.7672119140625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "从并列的十个方面,阐述涉及三角形原理的问题。", - "origin": [ - 89.75994873046875, - 489.6797180175781 - ], - "bbox": [ - 89.75994873046875, - 479.3672180175781, - 353.75994873046875, - 491.3672180175781 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 353.75994873046875, - 489.6797180175781 - ], - "bbox": [ - 353.75994873046875, - 476.77972412109375, - 365.75994873046875, - 493.2677307128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 476.77972412109375, - 365.75994873046875, - 493.2677307128906 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 118.55995178222656, - 505.27972412109375 - ], - "bbox": [ - 118.55995178222656, - 492.3797302246094, - 124.55995178222656, - 508.86773681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.55995178222656, - 492.3797302246094, - 124.55995178222656, - 508.86773681640625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "SimSun,Bold", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "一、关系线与运动线", - "origin": [ - 113.75994873046875, - 520.8797607421875 - ], - "bbox": [ - 113.75994873046875, - 510.5672607421875, - 222.23995971679688, - 522.5672607421875 - ] - }, - { - "size": 12.0, - "flags": 16, - "font": "SimSun,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 222.23995971679688, - 520.8797607421875 - ], - "bbox": [ - 222.23995971679688, - 508.0397644042969, - 234.5039520263672, - 524.5637817382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.75994873046875, - 508.0397644042969, - 234.5039520263672, - 524.5637817382812 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "场景中,两个居支配地位的演员,在表演中,可能面对面;可能并排;可能", - "origin": [ - 113.75995635986328, - 536.479736328125 - ], - "bbox": [ - 113.75995635986328, - 526.167236328125, - 505.1999816894531, - 538.167236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.75995635986328, - 526.167236328125, - 505.1999816894531, - 538.167236328125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "一个人背向另个人;可能两人背对背。他们又可能存在不同的姿态:卧姿(仰卧、", - "origin": [ - 89.75997924804688, - 552.0797119140625 - ], - "bbox": [ - 89.75997924804688, - 541.7672119140625, - 511.199951171875, - 553.7672119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75997924804688, - 541.7672119140625, - 511.199951171875, - 553.7672119140625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "俯卧、测卧);跪姿(躯干挺直,或躯干弯曲);坐姿(坐在任何高度的位置上);", - "origin": [ - 89.75994873046875, - 567.6797485351562 - ], - "bbox": [ - 89.75994873046875, - 557.3672485351562, - 511.43994140625, - 569.3672485351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 557.3672485351562, - 511.43994140625, - 569.3672485351562 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "倚姿(向后依靠在支撑面上、向前以肘支撑);立姿(直立或者斜立)。不同的排", - "origin": [ - 89.75994873046875, - 583.27978515625 - ], - "bbox": [ - 89.75994873046875, - 572.96728515625, - 505.1999816894531, - 584.96728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 572.96728515625, - 505.1999816894531, - 584.96728515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "列方式,可以形成两种线形排列,即成直线的构图和直角的构图。", - "origin": [ - 89.75997924804688, - 598.8797607421875 - ], - "bbox": [ - 89.75997924804688, - 588.5672607421875, - 437.7599792480469, - 600.5672607421875 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 437.7599792480469, - 598.8797607421875 - ], - "bbox": [ - 437.7599792480469, - 585.979736328125, - 443.7599792480469, - 602.4677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75997924804688, - 585.979736328125, - 443.7599792480469, - 602.4677734375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "不论这两个居中心位置的主导人物", - "origin": [ - 314.15997314453125, - 614.479736328125 - ], - "bbox": [ - 314.15997314453125, - 604.167236328125, - 494.15997314453125, - 616.167236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.15997314453125, - 604.167236328125, - 494.15997314453125, - 616.167236328125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "如何排列,姿态如何,直接吸引观众的是", - "origin": [ - 290.15997314453125, - 630.0797729492188 - ], - "bbox": [ - 290.15997314453125, - 619.7672729492188, - 505.67999267578125, - 631.7672729492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.15997314453125, - 619.7672729492188, - 505.67999267578125, - 631.7672729492188 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "人物的头部,因为提供视听的来源均在头", - "origin": [ - 290.15997314453125, - 645.6798095703125 - ], - "bbox": [ - 290.15997314453125, - 635.3673095703125, - 505.4399719238281, - 647.3673095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.15997314453125, - 635.3673095703125, - 505.4399719238281, - 647.3673095703125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "部。甚至在一个演员背向另一个、或者背", - "origin": [ - 290.15997314453125, - 661.27978515625 - ], - "bbox": [ - 290.15997314453125, - 650.96728515625, - 505.67999267578125, - 662.96728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.15997314453125, - 650.96728515625, - 505.67999267578125, - 662.96728515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "对背的情况下,也有一条关系线通过他们", - "origin": [ - 290.15997314453125, - 676.8797607421875 - ], - "bbox": [ - 290.15997314453125, - 666.5672607421875, - 505.4399719238281, - 678.5672607421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.15997314453125, - 666.5672607421875, - 505.4399719238281, - 678.5672607421875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "的头部。这一点至关重要,在任何场景中,", - "origin": [ - 290.15997314453125, - 692.4797973632812 - ], - "bbox": [ - 290.15997314453125, - 682.1672973632812, - 511.44000244140625, - 694.1672973632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.15997314453125, - 682.1672973632812, - 511.44000244140625, - 694.1672973632812 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "关系线必须是两个中心人物头部的一条", - "origin": [ - 290.1600036621094, - 708.079833984375 - ], - "bbox": [ - 290.1600036621094, - 697.767333984375, - 494.1600036621094, - 709.767333984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.1600036621094, - 697.767333984375, - 494.1600036621094, - 709.767333984375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "直线。", - "origin": [ - 290.1600036621094, - 723.6798095703125 - ], - "bbox": [ - 290.1600036621094, - 713.3673095703125, - 326.1600036621094, - 725.3673095703125 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 326.1600036621094, - 723.6798095703125 - ], - "bbox": [ - 326.1600036621094, - 710.77978515625, - 332.1600036621094, - 727.267822265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.1600036621094, - 710.77978515625, - 332.1600036621094, - 727.267822265625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "人物的运动方向,或者说运动趋势的", - "origin": [ - 314.1600036621094, - 739.27978515625 - ], - "bbox": [ - 314.1600036621094, - 728.96728515625, - 505.44000244140625, - 740.96728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.1600036621094, - 728.96728515625, - 505.44000244140625, - 740.96728515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "方向,便是这个人物的运动线。当三角形", - "origin": [ - 290.1600036621094, - 754.8798217773438 - ], - "bbox": [ - 290.1600036621094, - 744.5673217773438, - 505.6800231933594, - 756.5673217773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.1600036621094, - 744.5673217773438, - 505.6800231933594, - 756.5673217773438 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 71.24002075195312, - 595.0, - 792.1326904296875 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 304.44000244140625, - 792.1326904296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 89.76000213623047, - 790.1599731445312 - ], - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 92.04000091552734, - 792.1326904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 92.04000091552734, - 792.1326904296875 - ] - }, - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "99 ", - "origin": [ - 293.0400085449219, - 790.1599731445312 - ], - "bbox": [ - 293.0400085449219, - 782.0330200195312, - 304.44000244140625, - 792.1326904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.0400085449219, - 782.0330200195312, - 304.44000244140625, - 792.1326904296875 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 219.1199951171875, - 71.24002075195312, - 394.0920104980469, - 87.7640151977539 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "SimSun,Bold", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "第六章、三角形原理的普遍意义", - "origin": [ - 219.1199951171875, - 84.08001708984375 - ], - "bbox": [ - 219.1199951171875, - 73.76751708984375, - 387.8399658203125, - 85.76751708984375 - ] - }, - { - "size": 12.0, - "flags": 16, - "font": "SimSun,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 388.08001708984375, - 84.08001708984375 - ], - "bbox": [ - 388.08001708984375, - 71.24002075195312, - 394.0920104980469, - 87.7640151977539 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.1199951171875, - 71.24002075195312, - 394.0920104980469, - 87.7640151977539 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 89.75994873046875, - 89.36749267578125, - 511.4400634765625, - 756.5673217773438 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "按照语法的通解,语法是约定俗成的,具有社会性。语法是一种法则,是", - "origin": [ - 118.56002807617188, - 99.67999267578125 - ], - "bbox": [ - 118.56002807617188, - 89.36749267578125, - 502.5600280761719, - 101.36749267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.56002807617188, - 89.36749267578125, - 502.5600280761719, - 101.36749267578125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "有条理、成系统、客观存在的完整体系。语法既然称为法则,就不能轻易变动,", - "origin": [ - 89.76002502441406, - 115.27996826171875 - ], - "bbox": [ - 89.76002502441406, - 104.96746826171875, - 509.760009765625, - 116.96746826171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76002502441406, - 104.96746826171875, - 509.760009765625, - 116.96746826171875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "具有相对稳定性,就要遵循其规律严肃认真地掌握它、使用它。电影的语言语法,", - "origin": [ - 89.76002502441406, - 130.87994384765625 - ], - "bbox": [ - 89.76002502441406, - 120.56744384765625, - 511.4400634765625, - 132.56744384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76002502441406, - 120.56744384765625, - 511.4400634765625, - 132.56744384765625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "是在一百年的电影艺术发展中形成的,同样拥有这样的特点。为了使我国的文化", - "origin": [ - 89.76002502441406, - 146.47991943359375 - ], - "bbox": [ - 89.76002502441406, - 136.16741943359375, - 505.44000244140625, - 148.16741943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76002502441406, - 136.16741943359375, - 505.44000244140625, - 148.16741943359375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "产品融入世界的大市场,影视作品也应该走向世界。欲达此目的,就要首先克服", - "origin": [ - 89.76002502441406, - 162.07989501953125 - ], - "bbox": [ - 89.76002502441406, - 151.76739501953125, - 505.44000244140625, - 163.76739501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76002502441406, - 151.76739501953125, - 505.44000244140625, - 163.76739501953125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "中外文本语境的差异。当今世界,文化产品在文化工业背景下,强调全球口味和", - "origin": [ - 89.760009765625, - 177.67987060546875 - ], - "bbox": [ - 89.760009765625, - 167.36737060546875, - 505.44000244140625, - 179.36737060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 167.36737060546875, - 505.44000244140625, - 179.36737060546875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "通约性,规范影视作品的语言语法,目前显得尤为重要和紧迫。", - "origin": [ - 89.760009765625, - 193.27984619140625 - ], - "bbox": [ - 89.760009765625, - 182.96734619140625, - 425.760009765625, - 194.96734619140625 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 425.760009765625, - 193.27984619140625 - ], - "bbox": [ - 425.760009765625, - 180.37985229492188, - 431.760009765625, - 196.8678436279297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 180.37985229492188, - 431.760009765625, - 196.8678436279297 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "好莱坞何以在世界影坛称王称霸?港台的电视剧一度覆盖全国银屏,在亚", - "origin": [ - 118.55999755859375, - 208.87982177734375 - ], - "bbox": [ - 118.55999755859375, - 198.56732177734375, - 502.55999755859375, - 210.56732177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.55999755859375, - 198.56732177734375, - 502.55999755859375, - 210.56732177734375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "洲甚至“卡通”“横行、韩流”阵阵,以致出现“哈日”、“哈韩”现象。究其原", - "origin": [ - 89.760009765625, - 224.47979736328125 - ], - "bbox": [ - 89.760009765625, - 214.16729736328125, - 503.760009765625, - 226.16729736328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 214.16729736328125, - 503.760009765625, - 226.16729736328125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "因,无非摸透了多数人的“口味”,在相当大的范围内展示了“通约”语言。尤", - "origin": [ - 89.760009765625, - 240.07977294921875 - ], - "bbox": [ - 89.760009765625, - 229.76727294921875, - 503.760009765625, - 241.76727294921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 229.76727294921875, - 503.760009765625, - 241.76727294921875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "其我们的某些电视从艺者,一叶障目不见泰山,不认真地研究和借鉴规范的电影", - "origin": [ - 89.760009765625, - 255.67974853515625 - ], - "bbox": [ - 89.760009765625, - 245.36724853515625, - 505.44000244140625, - 257.36724853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 245.36724853515625, - 505.44000244140625, - 257.36724853515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "语言,依旧信口开河的胡编乱造,这是没有危机感的一种严重现象。", - "origin": [ - 89.760009765625, - 271.27972412109375 - ], - "bbox": [ - 89.760009765625, - 260.96722412109375, - 449.760009765625, - 272.96722412109375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 449.760009765625, - 271.27972412109375 - ], - "bbox": [ - 449.760009765625, - 258.3797302246094, - 455.760009765625, - 274.86773681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 258.3797302246094, - 455.760009765625, - 274.86773681640625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 118.55999755859375, - 286.87969970703125 - ], - "bbox": [ - 118.55999755859375, - 273.9797058105469, - 124.55999755859375, - 290.46771240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.55999755859375, - 273.9797058105469, - 124.55999755859375, - 290.46771240234375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "电影语言语法的三角形原理,是乌拉圭导演丹尼艾尔·阿里洪总结出来的,", - "origin": [ - 113.75999450683594, - 302.47967529296875 - ], - "bbox": [ - 113.75999450683594, - 292.16717529296875, - 509.760009765625, - 304.16717529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.75999450683594, - 292.16717529296875, - 509.760009765625, - 304.16717529296875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "他的基本观点大致是这样的:一个场景中两个中心演员之间的关系线,是以他们", - "origin": [ - 89.760009765625, - 318.07965087890625 - ], - "bbox": [ - 89.760009765625, - 307.76715087890625, - 505.44000244140625, - 319.76715087890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 307.76715087890625, - 505.44000244140625, - 319.76715087890625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "相互视线的走向为基础的。即使场景中只有一个中心演员,其视线亦可以和运动", - "origin": [ - 89.760009765625, - 333.6796569824219 - ], - "bbox": [ - 89.760009765625, - 323.3671569824219, - 505.44000244140625, - 335.3671569824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 323.3671569824219, - 505.44000244140625, - 335.3671569824219 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "趋向形成关系线。在关系线的一侧可以有三个顶端位置,这三个顶端构成底边与", - "origin": [ - 89.760009765625, - 349.2796630859375 - ], - "bbox": [ - 89.760009765625, - 338.9671630859375, - 505.44000244140625, - 350.9671630859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 338.9671630859375, - 505.44000244140625, - 350.9671630859375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "关系线的三角形。但是,一般情况下,不能越过关系线", - "origin": [ - 89.760009765625, - 364.8796691894531 - ], - "bbox": [ - 89.760009765625, - 354.5671691894531, - 373.67999267578125, - 366.5671691894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 354.5671691894531, - 373.67999267578125, - 366.5671691894531 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "到另一侧拍摄,这是电影语言要遵守的最重要的规则之", - "origin": [ - 89.75997924804688, - 380.47967529296875 - ], - "bbox": [ - 89.75997924804688, - 370.16717529296875, - 373.67999267578125, - 382.16717529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75997924804688, - 370.16717529296875, - 373.67999267578125, - 382.16717529296875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "一。违犯这一规则,演员会失去画面上的固定位置,甚", - "origin": [ - 89.75997924804688, - 396.0796813964844 - ], - "bbox": [ - 89.75997924804688, - 385.7671813964844, - 373.4399719238281, - 397.7671813964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75997924804688, - 385.7671813964844, - 373.4399719238281, - 397.7671813964844 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "至会失去运动方向,把观众搞得糊里糊涂,不知道谁跟", - "origin": [ - 89.75997924804688, - 411.6796875 - ], - "bbox": [ - 89.75997924804688, - 401.3671875, - 373.6799621582031, - 413.3671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75997924804688, - 401.3671875, - 373.6799621582031, - 413.3671875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "谁在交流,不知道他们究竟要到哪里去。画面中的人物", - "origin": [ - 89.75996398925781, - 427.2796936035156 - ], - "bbox": [ - 89.75996398925781, - 416.9671936035156, - 373.6799621582031, - 428.9671936035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75996398925781, - 416.9671936035156, - 373.6799621582031, - 428.9671936035156 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "关系线和运动线,是两条不可轻易逾越的轴线,毫无根", - "origin": [ - 89.75994873046875, - 442.87969970703125 - ], - "bbox": [ - 89.75994873046875, - 432.56719970703125, - 373.43994140625, - 444.56719970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 432.56719970703125, - 373.43994140625, - 444.56719970703125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "据的逾越了,那就犯规了,通常称作“跳轴”。必须越", - "origin": [ - 89.75994873046875, - 458.4797058105469 - ], - "bbox": [ - 89.75994873046875, - 448.1672058105469, - 371.75994873046875, - 460.1672058105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 448.1672058105469, - 371.75994873046875, - 460.1672058105469 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "过轴线拍摄是有条件的,需要采取必要的手段。这一章", - "origin": [ - 89.75994873046875, - 474.0797119140625 - ], - "bbox": [ - 89.75994873046875, - 463.7672119140625, - 373.43994140625, - 475.7672119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 463.7672119140625, - 373.43994140625, - 475.7672119140625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "从并列的十个方面,阐述涉及三角形原理的问题。", - "origin": [ - 89.75994873046875, - 489.6797180175781 - ], - "bbox": [ - 89.75994873046875, - 479.3672180175781, - 353.75994873046875, - 491.3672180175781 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 353.75994873046875, - 489.6797180175781 - ], - "bbox": [ - 353.75994873046875, - 476.77972412109375, - 365.75994873046875, - 493.2677307128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 476.77972412109375, - 365.75994873046875, - 493.2677307128906 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 118.55995178222656, - 505.27972412109375 - ], - "bbox": [ - 118.55995178222656, - 492.3797302246094, - 124.55995178222656, - 508.86773681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.55995178222656, - 492.3797302246094, - 124.55995178222656, - 508.86773681640625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "SimSun,Bold", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "一、关系线与运动线", - "origin": [ - 113.75994873046875, - 520.8797607421875 - ], - "bbox": [ - 113.75994873046875, - 510.5672607421875, - 222.23995971679688, - 522.5672607421875 - ] - }, - { - "size": 12.0, - "flags": 16, - "font": "SimSun,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 222.23995971679688, - 520.8797607421875 - ], - "bbox": [ - 222.23995971679688, - 508.0397644042969, - 234.5039520263672, - 524.5637817382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.75994873046875, - 508.0397644042969, - 234.5039520263672, - 524.5637817382812 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "场景中,两个居支配地位的演员,在表演中,可能面对面;可能并排;可能", - "origin": [ - 113.75995635986328, - 536.479736328125 - ], - "bbox": [ - 113.75995635986328, - 526.167236328125, - 505.1999816894531, - 538.167236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.75995635986328, - 526.167236328125, - 505.1999816894531, - 538.167236328125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "一个人背向另个人;可能两人背对背。他们又可能存在不同的姿态:卧姿(仰卧、", - "origin": [ - 89.75997924804688, - 552.0797119140625 - ], - "bbox": [ - 89.75997924804688, - 541.7672119140625, - 511.199951171875, - 553.7672119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75997924804688, - 541.7672119140625, - 511.199951171875, - 553.7672119140625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "俯卧、测卧);跪姿(躯干挺直,或躯干弯曲);坐姿(坐在任何高度的位置上);", - "origin": [ - 89.75994873046875, - 567.6797485351562 - ], - "bbox": [ - 89.75994873046875, - 557.3672485351562, - 511.43994140625, - 569.3672485351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 557.3672485351562, - 511.43994140625, - 569.3672485351562 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "倚姿(向后依靠在支撑面上、向前以肘支撑);立姿(直立或者斜立)。不同的排", - "origin": [ - 89.75994873046875, - 583.27978515625 - ], - "bbox": [ - 89.75994873046875, - 572.96728515625, - 505.1999816894531, - 584.96728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 572.96728515625, - 505.1999816894531, - 584.96728515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "列方式,可以形成两种线形排列,即成直线的构图和直角的构图。", - "origin": [ - 89.75997924804688, - 598.8797607421875 - ], - "bbox": [ - 89.75997924804688, - 588.5672607421875, - 437.7599792480469, - 600.5672607421875 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 437.7599792480469, - 598.8797607421875 - ], - "bbox": [ - 437.7599792480469, - 585.979736328125, - 443.7599792480469, - 602.4677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75997924804688, - 585.979736328125, - 443.7599792480469, - 602.4677734375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "不论这两个居中心位置的主导人物", - "origin": [ - 314.15997314453125, - 614.479736328125 - ], - "bbox": [ - 314.15997314453125, - 604.167236328125, - 494.15997314453125, - 616.167236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.15997314453125, - 604.167236328125, - 494.15997314453125, - 616.167236328125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "如何排列,姿态如何,直接吸引观众的是", - "origin": [ - 290.15997314453125, - 630.0797729492188 - ], - "bbox": [ - 290.15997314453125, - 619.7672729492188, - 505.67999267578125, - 631.7672729492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.15997314453125, - 619.7672729492188, - 505.67999267578125, - 631.7672729492188 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "人物的头部,因为提供视听的来源均在头", - "origin": [ - 290.15997314453125, - 645.6798095703125 - ], - "bbox": [ - 290.15997314453125, - 635.3673095703125, - 505.4399719238281, - 647.3673095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.15997314453125, - 635.3673095703125, - 505.4399719238281, - 647.3673095703125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "部。甚至在一个演员背向另一个、或者背", - "origin": [ - 290.15997314453125, - 661.27978515625 - ], - "bbox": [ - 290.15997314453125, - 650.96728515625, - 505.67999267578125, - 662.96728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.15997314453125, - 650.96728515625, - 505.67999267578125, - 662.96728515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "对背的情况下,也有一条关系线通过他们", - "origin": [ - 290.15997314453125, - 676.8797607421875 - ], - "bbox": [ - 290.15997314453125, - 666.5672607421875, - 505.4399719238281, - 678.5672607421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.15997314453125, - 666.5672607421875, - 505.4399719238281, - 678.5672607421875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "的头部。这一点至关重要,在任何场景中,", - "origin": [ - 290.15997314453125, - 692.4797973632812 - ], - "bbox": [ - 290.15997314453125, - 682.1672973632812, - 511.44000244140625, - 694.1672973632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.15997314453125, - 682.1672973632812, - 511.44000244140625, - 694.1672973632812 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "关系线必须是两个中心人物头部的一条", - "origin": [ - 290.1600036621094, - 708.079833984375 - ], - "bbox": [ - 290.1600036621094, - 697.767333984375, - 494.1600036621094, - 709.767333984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.1600036621094, - 697.767333984375, - 494.1600036621094, - 709.767333984375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "直线。", - "origin": [ - 290.1600036621094, - 723.6798095703125 - ], - "bbox": [ - 290.1600036621094, - 713.3673095703125, - 326.1600036621094, - 725.3673095703125 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 326.1600036621094, - 723.6798095703125 - ], - "bbox": [ - 326.1600036621094, - 710.77978515625, - 332.1600036621094, - 727.267822265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.1600036621094, - 710.77978515625, - 332.1600036621094, - 727.267822265625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "人物的运动方向,或者说运动趋势的", - "origin": [ - 314.1600036621094, - 739.27978515625 - ], - "bbox": [ - 314.1600036621094, - 728.96728515625, - 505.44000244140625, - 740.96728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.1600036621094, - 728.96728515625, - 505.44000244140625, - 740.96728515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "方向,便是这个人物的运动线。当三角形", - "origin": [ - 290.1600036621094, - 754.8798217773438 - ], - "bbox": [ - 290.1600036621094, - 744.5673217773438, - 505.6800231933594, - 756.5673217773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.1600036621094, - 744.5673217773438, - 505.6800231933594, - 756.5673217773438 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [ - { - "bbox": [ - 90, - 602, - 281, - 759 - ], - "image_path": "images/0_90_602_281_759.jpg" - }, - { - "bbox": [ - 383, - 352, - 497, - 485 - ], - "image_path": "images/0_383_352_497_485.jpg" - } - ], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.0, - 842.0 - ] - } -} \ No newline at end of file diff --git a/tests/assets/pre_proc_results/scihub_10800000/preproc_out.json b/tests/assets/pre_proc_results/scihub_10800000/preproc_out.json deleted file mode 100644 index 9ec6df678..000000000 --- a/tests/assets/pre_proc_results/scihub_10800000/preproc_out.json +++ /dev/null @@ -1,60044 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 99.14230346679688, - 100.17604064941406, - 512.1576538085938, - 165.48605346679688 - ], - "lines": [ - { - "spans": [ - { - "size": 17.99970054626465, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Algae of Periphyton of Lake Teletskoye", - "origin": [ - 154.289794921875, - 114.06622314453125 - ], - "bbox": [ - 154.289794921875, - 100.17604064941406, - 457.76483154296875, - 118.17574310302734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.289794921875, - 100.17604064941406, - 457.76483154296875, - 118.17574310302734 - ] - }, - { - "spans": [ - { - "size": 11.999699592590332, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "G. V. Kim", - "origin": [ - 279.6300964355469, - 130.56622314453125 - ], - "bbox": [ - 279.6300964355469, - 121.30618286132812, - 332.29681396484375, - 133.30587768554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 279.6300964355469, - 121.30618286132812, - 332.29681396484375, - 133.30587768554688 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Institute for Water and Environmental Problems, Siberian Branch of the Russian Academy of Sciences,", - "origin": [ - 99.14230346679688, - 142.76611328125 - ], - "bbox": [ - 99.14230346679688, - 135.0863800048828, - 512.1576538085938, - 145.08627319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.14230346679688, - 135.0863800048828, - 512.1576538085938, - 145.08627319335938 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "ul. Molodezhnaya 1, Barnaul, 656038 Russia", - "origin": [ - 215.13113403320312, - 152.96600341796875 - ], - "bbox": [ - 215.13113403320312, - 145.28627014160156, - 396.239013671875, - 155.28616333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.13113403320312, - 145.28627014160156, - 396.239013671875, - 155.28616333007812 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "E-mail: kimg@iwep.asu.ru", - "origin": [ - 251.72076416015625, - 163.1658935546875 - ], - "bbox": [ - 251.72076416015625, - 155.4861602783203, - 360.07952880859375, - 165.48605346679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.72076416015625, - 155.4861602783203, - 360.07952880859375, - 165.48605346679688 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 86.31242370605469, - 119.0868911743164, - 525.6575317382812, - 190.8287353515625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Abstract", - "origin": [ - 86.31242370605469, - 188.545654296875 - ], - "bbox": [ - 86.31242370605469, - 180.82884216308594, - 123.52204132080078, - 190.8287353515625 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "—The generalized data are given on the composition and structure of phytoperiphyton of Lake", - "origin": [ - 123.62205505371094, - 188.545654296875 - ], - "bbox": [ - 123.62205505371094, - 119.0868911743164, - 525.6575317382812, - 129.0867919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 119.0868911743164, - 525.6575317382812, - 190.8287353515625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Teletskoye on different substrates (rocks, macrophytes and their residues). It is noted that in spite of the", - "origin": [ - 86.31242370605469, - 198.74554443359375 - ], - "bbox": [ - 86.31242370605469, - 129.28677368164062, - 525.6575317382812, - 139.28668212890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 129.28677368164062, - 525.6575317382812, - 139.28668212890625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "differences in the taxonomic structure and level of development the algocenoses of periphyton of various", - "origin": [ - 86.31242370605469, - 208.9454345703125 - ], - "bbox": [ - 86.31242370605469, - 139.48666381835938, - 525.5775146484375, - 149.486572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 139.48666381835938, - 525.5775146484375, - 149.486572265625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "substrates have similar ecological range. This gives a possibility of using the algocenoses of periphyton on", - "origin": [ - 86.31242370605469, - 219.14532470703125 - ], - "bbox": [ - 86.31242370605469, - 149.68655395507812, - 525.5975341796875, - 159.68646240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 149.68655395507812, - 525.5975341796875, - 159.68646240234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "different substrates for assessing the quality of the lake water.", - "origin": [ - 86.31242370605469, - 229.34521484375 - ], - "bbox": [ - 86.31242370605469, - 159.88644409179688, - 333.47979736328125, - 169.8863525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 159.88644409179688, - 333.47979736328125, - 169.8863525390625 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 86.31242370605469, - 176.26626586914062, - 231.9410400390625, - 248.00811767578125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "DOI:", - "origin": [ - 86.31242370605469, - 245.72503662109375 - ], - "bbox": [ - 86.31242370605469, - 238.0082244873047, - 108.53219604492188, - 248.00811767578125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " 10.1134/S1995425511010048", - "origin": [ - 108.53219604492188, - 245.72503662109375 - ], - "bbox": [ - 108.53219604492188, - 176.26626586914062, - 231.9410400390625, - 186.26617431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 176.26626586914062, - 231.9410400390625, - 248.00811767578125 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 86.31242370605469, - 192.46609497070312, - 340.4696960449219, - 264.2450256347656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Keywords:", - "origin": [ - 86.31242370605469, - 261.92486572265625 - ], - "bbox": [ - 86.31242370605469, - 254.24513244628906, - 129.64199829101562, - 264.2450256347656 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " phytoperiphyton, ecological range, Lake Teletskoye", - "origin": [ - 129.64199829101562, - 261.92486572265625 - ], - "bbox": [ - 129.64199829101562, - 192.46609497070312, - 340.4696960449219, - 202.46600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 192.46609497070312, - 340.4696960449219, - 264.2450256347656 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 57.96049499511719, - 219.12158203125, - 299.0122375488281, - 657.359130859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake Teletskoye is located in the northeast part of", - "origin": [ - 72.1417007446289, - 295.52630615234375 - ], - "bbox": [ - 72.1417007446289, - 219.12158203125, - 298.8606262207031, - 230.12149047851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1417007446289, - 219.12158203125, - 298.8606262207031, - 230.12149047851562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Altai Mountains at the level of 434 m a.s.l. Its surface", - "origin": [ - 57.97383117675781, - 306.7242126464844 - ], - "bbox": [ - 57.97383117675781, - 230.31948852539062, - 298.91558837890625, - 241.31939697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97383117675781, - 230.31948852539062, - 298.91558837890625, - 241.31939697265625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "area is 227.3 km", - "origin": [ - 57.97383117675781, - 317.922119140625 - ], - "bbox": [ - 57.97383117675781, - 241.51739501953125, - 131.8271484375, - 252.51730346679688 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 131.768798828125, - 312.9432067871094 - ], - "bbox": [ - 131.768798828125, - 263.2796936035156, - 135.3437957763672, - 270.4296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", the shore line is 192.8 km long, the", - "origin": [ - 135.3739013671875, - 317.92620849609375 - ], - "bbox": [ - 135.3739013671875, - 241.521484375, - 298.8874206542969, - 252.52139282226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97383117675781, - 241.51739501953125, - 298.8874206542969, - 270.4296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "maximum width is 5.2 km, maximum depth—323 m", - "origin": [ - 57.96760559082031, - 329.1241149902344 - ], - "bbox": [ - 57.96760559082031, - 252.71939086914062, - 298.98638916015625, - 263.71929931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96760559082031, - 252.71939086914062, - 298.98638916015625, - 263.71929931640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[1]. The area of littoral zone limited by the 10-m isobath", - "origin": [ - 57.96760559082031, - 340.322021484375 - ], - "bbox": [ - 57.96760559082031, - 263.91729736328125, - 298.7884216308594, - 274.9172058105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96760559082031, - 263.91729736328125, - 298.7884216308594, - 274.9172058105469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "is 7.8 km", - "origin": [ - 57.96760559082031, - 351.5199279785156 - ], - "bbox": [ - 57.96760559082031, - 275.1152038574219, - 97.35823059082031, - 286.1151123046875 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 97.30799865722656, - 346.5430908203125 - ], - "bbox": [ - 97.30799865722656, - 296.87957763671875, - 100.88299560546875, - 304.0295715332031 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", or 3.4 % of the total surface area (in 1934 the", - "origin": [ - 100.91310119628906, - 351.5260925292969 - ], - "bbox": [ - 100.91310119628906, - 275.1213684082031, - 298.88922119140625, - 286.12127685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96760559082031, - 275.1152038574219, - 298.88922119140625, - 304.0295715332031 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "lake area was believed to be 228 km", - "origin": [ - 57.96949005126953, - 362.7239990234375 - ], - "bbox": [ - 57.96949005126953, - 286.31927490234375, - 215.21307373046875, - 297.3191833496094 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 215.16290283203125, - 357.74310302734375 - ], - "bbox": [ - 215.16290283203125, - 308.07958984375, - 218.73789978027344, - 315.2295837402344 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ") [2]. The littoral’s", - "origin": [ - 218.76800537109375, - 362.7261047363281 - ], - "bbox": [ - 218.76800537109375, - 286.3213806152344, - 298.92425537109375, - 297.3212890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96949005126953, - 286.31927490234375, - 298.92425537109375, - 315.2295837402344 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "areas bordering the water edge are influenced by two", - "origin": [ - 57.971466064453125, - 373.92401123046875 - ], - "bbox": [ - 57.971466064453125, - 297.519287109375, - 298.8802795410156, - 308.5191955566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 297.519287109375, - 298.8802795410156, - 308.5191955566406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "hydrodynamic factors—the water level fluctuations", - "origin": [ - 57.971466064453125, - 385.1219177246094 - ], - "bbox": [ - 57.971466064453125, - 308.7171936035156, - 298.7922058105469, - 319.71710205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 308.7171936035156, - 298.7922058105469, - 319.71710205078125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and wave-cut process. The water level in the lake can", - "origin": [ - 57.971466064453125, - 396.31982421875 - ], - "bbox": [ - 57.971466064453125, - 319.91510009765625, - 298.9241943359375, - 330.9150085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 319.91510009765625, - 298.9241943359375, - 330.9150085449219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "change for 0.1 m in 7–12 minutes and up to 6 m in a", - "origin": [ - 57.971466064453125, - 407.5177307128906 - ], - "bbox": [ - 57.971466064453125, - 331.1130065917969, - 298.9242858886719, - 342.1129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 331.1130065917969, - 298.9242858886719, - 342.1129150390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "year. The water level change is accompanied by a pow-", - "origin": [ - 57.971466064453125, - 418.71563720703125 - ], - "bbox": [ - 57.971466064453125, - 342.3109130859375, - 298.8912353515625, - 353.3108215332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 342.3109130859375, - 298.8912353515625, - 353.3108215332031 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "erful wave-cut process as a result of constant movement", - "origin": [ - 57.971466064453125, - 429.9135437011719 - ], - "bbox": [ - 57.971466064453125, - 353.5088195800781, - 298.93524169921875, - 364.50872802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 353.5088195800781, - 298.93524169921875, - 364.50872802734375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of air masses in the lake valley. The winds are classified", - "origin": [ - 57.971466064453125, - 441.1114501953125 - ], - "bbox": [ - 57.971466064453125, - 364.70672607421875, - 298.9132385253906, - 375.7066345214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 364.70672607421875, - 298.9132385253906, - 375.7066345214844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "as those of local and general atmospheric circulation. In", - "origin": [ - 57.971466064453125, - 452.3093566894531 - ], - "bbox": [ - 57.971466064453125, - 375.9046325683594, - 298.71527099609375, - 386.904541015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 375.9046325683594, - 298.71527099609375, - 386.904541015625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "summer the winds of general circulation last from 1–", - "origin": [ - 57.971466064453125, - 463.50726318359375 - ], - "bbox": [ - 57.971466064453125, - 387.1025390625, - 298.8472900390625, - 398.1024475097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 387.1025390625, - 298.8472900390625, - 398.1024475097656 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8 hours to 3–8 days. When the general atmospheric cir-", - "origin": [ - 57.971466064453125, - 474.7051696777344 - ], - "bbox": [ - 57.971466064453125, - 398.3004455566406, - 298.91326904296875, - 409.30035400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 398.3004455566406, - 298.91326904296875, - 409.30035400390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "culation decreases, the local winds with expressed daily", - "origin": [ - 57.97148132324219, - 485.903076171875 - ], - "bbox": [ - 57.97148132324219, - 409.49835205078125, - 298.7042541503906, - 420.4982604980469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97148132324219, - 409.49835205078125, - 298.7042541503906, - 420.4982604980469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "course grow stronger. The waves can be as high as", - "origin": [ - 57.97148132324219, - 497.1009826660156 - ], - "bbox": [ - 57.97148132324219, - 420.6962585449219, - 298.92425537109375, - 431.6961669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97148132324219, - 420.6962585449219, - 298.92425537109375, - 431.6961669921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2.5 m [1, 3].", - "origin": [ - 57.97148132324219, - 508.29888916015625 - ], - "bbox": [ - 57.97148132324219, - 431.8941650390625, - 112.35498046875, - 442.8940734863281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97148132324219, - 431.8941650390625, - 112.35498046875, - 442.8940734863281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The littoral is represented by the rock, boul-", - "origin": [ - 72.13935089111328, - 523.7977294921875 - ], - "bbox": [ - 72.13935089111328, - 447.39300537109375, - 298.90228271484375, - 458.3929138183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13935089111328, - 447.39300537109375, - 298.90228271484375, - 458.3929138183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "der-stone, coarse materials in the open part and sand,", - "origin": [ - 57.96049499511719, - 534.9956665039062 - ], - "bbox": [ - 57.96049499511719, - 458.5909423828125, - 298.8471984863281, - 469.5908508300781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 458.5909423828125, - 298.8471984863281, - 469.5908508300781 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "gravel, granite boulders in the talus trains of the major-", - "origin": [ - 57.96049499511719, - 546.1935424804688 - ], - "bbox": [ - 57.96049499511719, - 469.788818359375, - 298.90228271484375, - 480.7887268066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 469.788818359375, - 298.90228271484375, - 480.7887268066406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ity of the tributaries [3]. The vegetation is represented", - "origin": [ - 57.96049499511719, - 557.3914794921875 - ], - "bbox": [ - 57.96049499511719, - 480.98675537109375, - 298.85821533203125, - 491.9866638183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 480.98675537109375, - 298.85821533203125, - 491.9866638183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "mostly by phytoepilithon–the algae of periphyton de-", - "origin": [ - 57.96049499511719, - 568.58935546875 - ], - "bbox": [ - 57.96049499511719, - 492.18463134765625, - 298.90228271484375, - 503.1845397949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 492.18463134765625, - 298.90228271484375, - 503.1845397949219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "veloped on the rock substrate.", - "origin": [ - 57.96049499511719, - 579.7872314453125 - ], - "bbox": [ - 57.96049499511719, - 503.38250732421875, - 189.62928771972656, - 514.3824462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 503.38250732421875, - 189.62928771972656, - 514.3824462890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In the areas with lowered wind-wave load and sandy", - "origin": [ - 72.12836456298828, - 595.2860717773438 - ], - "bbox": [ - 72.12836456298828, - 518.88134765625, - 298.6162109375, - 529.8812255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.12836456298828, - 518.88134765625, - 298.6162109375, - 529.8812255859375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and silted grounds (bays, mouth areas of some tributar-", - "origin": [ - 57.96049499511719, - 606.4840087890625 - ], - "bbox": [ - 57.96049499511719, - 530.0792846679688, - 298.90228271484375, - 541.0792236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 530.0792846679688, - 298.90228271484375, - 541.0792236328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ies, northwest area of relatively shallow stretch) the", - "origin": [ - 57.96049499511719, - 617.681884765625 - ], - "bbox": [ - 57.96049499511719, - 541.2771606445312, - 298.8692626953125, - 552.277099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 541.2771606445312, - 298.8692626953125, - 552.277099609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "higher water vegetation develops. The area under", - "origin": [ - 57.96049499511719, - 628.8797607421875 - ], - "bbox": [ - 57.96049499511719, - 552.4750366210938, - 298.8142395019531, - 563.4749755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 552.4750366210938, - 298.8142395019531, - 563.4749755859375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "macrophytes is about 30% of the total littoral area [4].", - "origin": [ - 57.96049499511719, - 640.07763671875 - ], - "bbox": [ - 57.96049499511719, - 563.6729125976562, - 299.0122375488281, - 574.6728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 563.6729125976562, - 299.0122375488281, - 574.6728515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepiphyton, the another type of algocenoses of", - "origin": [ - 57.96049499511719, - 651.2755126953125 - ], - "bbox": [ - 57.96049499511719, - 574.8707885742188, - 298.8582458496094, - 585.8707275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 574.8707885742188, - 298.8582458496094, - 585.8707275390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "periphyton develops on the surface of water plants.", - "origin": [ - 57.96049499511719, - 662.4734497070312 - ], - "bbox": [ - 57.96049499511719, - 586.0687255859375, - 282.79840087890625, - 597.068603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 586.0687255859375, - 282.79840087890625, - 597.068603515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Hydrothermal regime of the lake is characterized by", - "origin": [ - 72.12836456298828, - 677.9722900390625 - ], - "bbox": [ - 72.12836456298828, - 601.5675659179688, - 298.7702331542969, - 612.5675048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.12836456298828, - 601.5675659179688, - 298.7702331542969, - 612.5675048828125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "low temperatures. The water temperature exceeding", - "origin": [ - 57.96049499511719, - 689.170166015625 - ], - "bbox": [ - 57.96049499511719, - 612.7654418945312, - 298.8252258300781, - 623.765380859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 612.7654418945312, - 298.8252258300781, - 623.765380859375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "10°C is observed annually only in the upper 10 m for no", - "origin": [ - 57.96049499511719, - 700.3681030273438 - ], - "bbox": [ - 57.96049499511719, - 623.96337890625, - 298.7043151855469, - 634.9632568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 623.96337890625, - 298.7043151855469, - 634.9632568359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "longer than 2.5 months [3]. At low water temperature", - "origin": [ - 57.96049499511719, - 711.5659790039062 - ], - "bbox": [ - 57.96049499511719, - 635.1612548828125, - 298.9461975097656, - 646.1611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 635.1612548828125, - 298.9461975097656, - 646.1611328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the macrophytes decay slowly. The plant residues stay", - "origin": [ - 57.96049499511719, - 722.763916015625 - ], - "bbox": [ - 57.96049499511719, - 646.3591918945312, - 298.82525634765625, - 657.359130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 646.3591918945312, - 298.82525634765625, - 657.359130859375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 313.0701599121094, - 217.90206909179688, - 554.0888671875, - 507.2469177246094 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the shallow bottom for a long time creating an", - "origin": [ - 313.0701599121094, - 294.3067932128906 - ], - "bbox": [ - 313.0701599121094, - 217.90206909179688, - 554.0007934570312, - 228.9019775390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0701599121094, - 217.90206909179688, - 554.0007934570312, - 228.9019775390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "additional substrate for the development of periphyton", - "origin": [ - 313.0701599121094, - 305.50469970703125 - ], - "bbox": [ - 313.0701599121094, - 229.0999755859375, - 553.769775390625, - 240.09988403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0701599121094, - 229.0999755859375, - 553.769775390625, - 240.09988403320312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algae.", - "origin": [ - 313.0701599121094, - 316.7026062011719 - ], - "bbox": [ - 313.0701599121094, - 240.29788208007812, - 339.0298767089844, - 251.29779052734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0701599121094, - 240.29788208007812, - 339.0298767089844, - 251.29779052734375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In 1961–1975 the mineralization of water (calcium", - "origin": [ - 327.238037109375, - 332.6524658203125 - ], - "bbox": [ - 327.238037109375, - 256.24774169921875, - 554.0888671875, - 267.2476501464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.238037109375, - 256.24774169921875, - 554.0888671875, - 267.2476501464844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "group of hydrocarbonate class) changed from 41.4 to", - "origin": [ - 313.0701599121094, - 343.8503723144531 - ], - "bbox": [ - 313.0701599121094, - 267.4456481933594, - 553.9676513671875, - 278.445556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0701599121094, - 267.4456481933594, - 553.9676513671875, - 278.445556640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "132 mg/dm", - "origin": [ - 313.0701599121094, - 355.04827880859375 - ], - "bbox": [ - 313.0701599121094, - 278.6435546875, - 364.23065185546875, - 289.6434631347656 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3", - "origin": [ - 364.1546936035156, - 350.1441955566406 - ], - "bbox": [ - 364.1546936035156, - 300.4806823730469, - 367.7297058105469, - 307.63067626953125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", pH—from 7.2 to 7.6. The content of or-", - "origin": [ - 367.7597961425781, - 355.1272888183594 - ], - "bbox": [ - 367.7597961425781, - 278.7225646972656, - 554.0209350585938, - 289.72247314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0701599121094, - 278.6435546875, - 554.0209350585938, - 307.63067626953125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ganic matter in the lake water is insignificant, with per-", - "origin": [ - 313.07928466796875, - 366.3251953125 - ], - "bbox": [ - 313.07928466796875, - 289.92047119140625, - 553.9990234375, - 300.9203796386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07928466796875, - 289.92047119140625, - 553.9990234375, - 300.9203796386719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "manganate oxidizability varying from 1.1 to 5.4 mgO/", - "origin": [ - 313.07928466796875, - 377.5231018066406 - ], - "bbox": [ - 313.07928466796875, - 301.1183776855469, - 554.0648803710938, - 312.1182861328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07928466796875, - 301.1183776855469, - 554.0648803710938, - 312.1182861328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dm", - "origin": [ - 313.07928466796875, - 388.72100830078125 - ], - "bbox": [ - 313.07928466796875, - 312.3162841796875, - 327.13714599609375, - 323.3161926269531 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3", - "origin": [ - 327.0906066894531, - 383.7441101074219 - ], - "bbox": [ - 327.0906066894531, - 334.0805969238281, - 330.6656188964844, - 341.2305908203125 - ] - }, - { - "size": 10.999899864196777, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " ", - "origin": [ - 330.6656188964844, - 383.7441101074219 - ], - "bbox": [ - 330.6656188964844, - 307.3393859863281, - 332.81939697265625, - 318.33929443359375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[3]. In 2003–2006 mineralization of water changed", - "origin": [ - 332.81939697265625, - 388.7272033691406 - ], - "bbox": [ - 332.81939697265625, - 312.3224792480469, - 553.7631225585938, - 323.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07928466796875, - 307.3393859863281, - 553.7631225585938, - 341.2305908203125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "from 62.6 to 82.0 mg/dm", - "origin": [ - 313.0855712890625, - 399.92510986328125 - ], - "bbox": [ - 313.0855712890625, - 323.5203857421875, - 429.1123962402344, - 334.5202941894531 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3", - "origin": [ - 429.02301025390625, - 394.944091796875 - ], - "bbox": [ - 429.02301025390625, - 345.28057861328125, - 432.5980224609375, - 352.4305725097656 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", pH, from 7.7 to 7.9, per-", - "origin": [ - 432.62811279296875, - 399.9270935058594 - ], - "bbox": [ - 432.62811279296875, - 323.5223693847656, - 554.02294921875, - 334.52227783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0855712890625, - 323.5203857421875, - 554.02294921875, - 352.4305725097656 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "manganate oxidizability from 2.1 to 4.8 mgO/dm", - "origin": [ - 313.0812072753906, - 411.125 - ], - "bbox": [ - 313.0812072753906, - 334.72027587890625, - 547.763916015625, - 345.7201843261719 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3", - "origin": [ - 547.6602783203125, - 406.14410400390625 - ], - "bbox": [ - 547.6602783203125, - 356.4805908203125, - 551.2352905273438, - 363.6305847167969 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 551.265380859375, - 411.1271057128906 - ], - "bbox": [ - 551.265380859375, - 334.7223815917969, - 554.015380859375, - 345.7222900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0812072753906, - 334.72027587890625, - 554.015380859375, - 363.6305847167969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "BOD", - "origin": [ - 313.08453369140625, - 422.32501220703125 - ], - "bbox": [ - 313.08453369140625, - 345.9202880859375, - 336.3053283691406, - 356.9201965332031 - ] - }, - { - "size": 7.150000095367432, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "5", - "origin": [ - 336.28729248046875, - 423.8999938964844 - ], - "bbox": [ - 336.28729248046875, - 374.2364807128906, - 339.8623046875, - 381.386474609375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "—from 0.1 to 6.4 mg O", - "origin": [ - 339.89239501953125, - 422.32708740234375 - ], - "bbox": [ - 339.89239501953125, - 345.92236328125, - 459.3182678222656, - 356.9222717285156 - ] - }, - { - "size": 7.150000095367432, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 459.327392578125, - 423.8999938964844 - ], - "bbox": [ - 459.327392578125, - 374.2364807128906, - 462.90240478515625, - 381.386474609375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "/dm", - "origin": [ - 462.9324951171875, - 422.32708740234375 - ], - "bbox": [ - 462.9324951171875, - 345.92236328125, - 480.04833984375, - 356.9222717285156 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3", - "origin": [ - 480.0038146972656, - 417.3440856933594 - ], - "bbox": [ - 480.0038146972656, - 367.6805725097656, - 483.5788269042969, - 374.83056640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " ", - "origin": [ - 483.5788269042969, - 417.3440856933594 - ], - "bbox": [ - 483.5788269042969, - 340.9393615722656, - 489.39068603515625, - 351.93927001953125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[5]. Thus, we", - "origin": [ - 489.39068603515625, - 422.32708740234375 - ], - "bbox": [ - 489.39068603515625, - 345.92236328125, - 554.048095703125, - 356.9222717285156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08453369140625, - 340.9393615722656, - 554.048095703125, - 381.386474609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "should note the long-term stability of these elements of", - "origin": [ - 313.08428955078125, - 433.5249938964844 - ], - "bbox": [ - 313.08428955078125, - 357.1202697753906, - 553.9820556640625, - 368.12017822265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 357.1202697753906, - 553.9820556640625, - 368.12017822265625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "hydrochemical regime of the lake.", - "origin": [ - 313.08428955078125, - 444.722900390625 - ], - "bbox": [ - 313.08428955078125, - 368.31817626953125, - 463.6837158203125, - 379.3180847167969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 368.31817626953125, - 463.6837158203125, - 379.3180847167969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The methods of using the phytoperiphiton in the", - "origin": [ - 327.2521667480469, - 460.6727600097656 - ], - "bbox": [ - 327.2521667480469, - 384.2680358886719, - 554.0039672851562, - 395.2679443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2521667480469, - 384.2680358886719, - 554.0039672851562, - 395.2679443359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "monitoring of ecological state of a water object are", - "origin": [ - 313.08428955078125, - 471.87066650390625 - ], - "bbox": [ - 313.08428955078125, - 395.4659423828125, - 554.0590209960938, - 406.4658508300781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 395.4659423828125, - 554.0590209960938, - 406.4658508300781 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "based on the changes of the structure of algocenoses as", - "origin": [ - 313.08428955078125, - 483.0685729980469 - ], - "bbox": [ - 313.08428955078125, - 406.6638488769531, - 554.0478515625, - 417.66375732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 406.6638488769531, - 554.0478515625, - 417.66375732421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "a result of the influence of the environmental factors,", - "origin": [ - 313.08428955078125, - 494.2664794921875 - ], - "bbox": [ - 313.08428955078125, - 417.86175537109375, - 554.0260009765625, - 428.8616638183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 417.86175537109375, - 554.0260009765625, - 428.8616638183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "including human impact [6]. The purpose of this work", - "origin": [ - 313.08428955078125, - 505.4643859863281 - ], - "bbox": [ - 313.08428955078125, - 429.0596618652344, - 553.9379272460938, - 440.0595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 429.0596618652344, - 553.9379272460938, - 440.0595703125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "is to compare the composition and structure of the", - "origin": [ - 313.08428955078125, - 516.6622924804688 - ], - "bbox": [ - 313.08428955078125, - 440.257568359375, - 553.992919921875, - 451.2574768066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 440.257568359375, - 553.992919921875, - 451.2574768066406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algocenoses of epilithon and epiphyton (including", - "origin": [ - 313.08428955078125, - 527.8602294921875 - ], - "bbox": [ - 313.08428955078125, - 451.45550537109375, - 553.8718872070312, - 462.4554138183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 451.45550537109375, - 553.8718872070312, - 462.4554138183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "those on plant residues) and to determine the signifi-", - "origin": [ - 313.08428955078125, - 539.05810546875 - ], - "bbox": [ - 313.08428955078125, - 462.65338134765625, - 554.0260620117188, - 473.6532897949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 462.65338134765625, - 554.0260620117188, - 473.6532897949219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cance of the changes of the water communities in Lake", - "origin": [ - 313.08428955078125, - 550.2559814453125 - ], - "bbox": [ - 313.08428955078125, - 473.85125732421875, - 553.992919921875, - 484.8511657714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 473.85125732421875, - 553.992919921875, - 484.8511657714844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Teletskoye for indicating the changes of the abiotic", - "origin": [ - 313.08428955078125, - 561.453857421875 - ], - "bbox": [ - 313.08428955078125, - 485.04913330078125, - 553.970947265625, - 496.0490417480469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 485.04913330078125, - 553.970947265625, - 496.0490417480469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "factors.", - "origin": [ - 313.08428955078125, - 572.6517333984375 - ], - "bbox": [ - 313.08428955078125, - 496.24700927734375, - 345.76495361328125, - 507.2469177246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 496.24700927734375, - 345.76495361328125, - 507.2469177246094 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 362.4738464355469, - 527.6517333984375, - 504.5925598144531, - 538.651611328125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "MATERIAL AND METHODS", - "origin": [ - 362.4738464355469, - 604.0564575195312 - ], - "bbox": [ - 362.4738464355469, - 527.6517333984375, - 504.5925598144531, - 538.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 362.4738464355469, - 527.6517333984375, - 504.5925598144531, - 538.651611328125 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 313.08428955078125, - 545.6035766601562, - 554.1469116210938, - 657.4066162109375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "From May to October, 1998, 2002, and 2003, we", - "origin": [ - 327.2521667480469, - 622.00830078125 - ], - "bbox": [ - 327.2521667480469, - 545.6035766601562, - 554.0259399414062, - 556.603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2521667480469, - 545.6035766601562, - 554.0259399414062, - 556.603515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "studied the algocenoses of the rock littoral of the lake to", - "origin": [ - 313.08428955078125, - 633.2061767578125 - ], - "bbox": [ - 313.08428955078125, - 556.8014526367188, - 553.8059692382812, - 567.8013916015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 556.8014526367188, - 553.8059692382812, - 567.8013916015625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "a depth of 1.5 m. The structure of phytoepilithon in", - "origin": [ - 313.08428955078125, - 644.404052734375 - ], - "bbox": [ - 313.08428955078125, - 567.9993286132812, - 553.9818725585938, - 578.999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 567.9993286132812, - 553.9818725585938, - 578.999267578125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "June–August, 1928–1931, to a depth of 30 m is charac-", - "origin": [ - 313.08428955078125, - 655.6019897460938 - ], - "bbox": [ - 313.08428955078125, - 579.197265625, - 554.0150756835938, - 590.1971435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 579.197265625, - 554.0150756835938, - 590.1971435546875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "terized by the data given in the works by N. N. Vo-", - "origin": [ - 313.08428955078125, - 666.8108520507812 - ], - "bbox": [ - 313.08428955078125, - 590.4061279296875, - 554.0150756835938, - 601.406005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 590.4061279296875, - 554.0150756835938, - 601.406005859375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ronikhin [7], V. S. Poretskii and V. S. Sheshukova [8].", - "origin": [ - 313.08428955078125, - 678.019775390625 - ], - "bbox": [ - 313.08428955078125, - 601.6150512695312, - 554.1469116210938, - 612.614990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 601.6150512695312, - 554.1469116210938, - 612.614990234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In June–August, 2004–2005, the algae vegetating on", - "origin": [ - 313.08428955078125, - 689.2176513671875 - ], - "bbox": [ - 313.08428955078125, - 612.8129272460938, - 553.9597778320312, - 623.8128662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 612.8129272460938, - 553.9597778320312, - 623.8128662109375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "macrophytes were studied. In August–October, 2006,", - "origin": [ - 313.08428955078125, - 700.4155883789062 - ], - "bbox": [ - 313.08428955078125, - 624.0108642578125, - 553.8828735351562, - 635.0107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 624.0108642578125, - 553.8828735351562, - 635.0107421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the dynamics of composition and structure of the al-", - "origin": [ - 313.08428955078125, - 711.6134643554688 - ], - "bbox": [ - 313.08428955078125, - 635.19775390625, - 554.0260620117188, - 646.2086181640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 635.19775390625, - 554.0260620117188, - 646.2086181640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "gae on the plant residues was researched. The total of", - "origin": [ - 313.08428955078125, - 722.8114013671875 - ], - "bbox": [ - 313.08428955078125, - 646.4066772460938, - 553.992919921875, - 657.4066162109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 646.4066772460938, - 553.992919921875, - 657.4066162109375 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 37.05726623535156, - 612.0, - 51.056884765625 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 57.96049499511719, - 100.17604064941406, - 554.1469116210938, - 657.4066162109375 - ], - "layout_label": "U", - "sub_layout": [], - "bad_boxes": [ - [ - 86.31242370605469, - 100.17604064941406, - 525.6575317382812, - 264.2450256347656 - ], - [ - 86.31242370605469, - 100.17604064941406, - 525.6575317382812, - 264.2450256347656 - ] - ] - }, - { - "layout_bbox": [ - 0, - 683.4950561523438, - 612.0, - 692.4949340820312 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 99.14230346679688, - 100.17604064941406, - 512.1576538085938, - 165.48605346679688 - ], - "lines": [ - { - "spans": [ - { - "size": 17.99970054626465, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Algae of Periphyton of Lake Teletskoye", - "origin": [ - 154.289794921875, - 114.06622314453125 - ], - "bbox": [ - 154.289794921875, - 100.17604064941406, - 457.76483154296875, - 118.17574310302734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.289794921875, - 100.17604064941406, - 457.76483154296875, - 118.17574310302734 - ] - }, - { - "spans": [ - { - "size": 11.999699592590332, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "G. V. Kim", - "origin": [ - 279.6300964355469, - 130.56622314453125 - ], - "bbox": [ - 279.6300964355469, - 121.30618286132812, - 332.29681396484375, - 133.30587768554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 279.6300964355469, - 121.30618286132812, - 332.29681396484375, - 133.30587768554688 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Institute for Water and Environmental Problems, Siberian Branch of the Russian Academy of Sciences,", - "origin": [ - 99.14230346679688, - 142.76611328125 - ], - "bbox": [ - 99.14230346679688, - 135.0863800048828, - 512.1576538085938, - 145.08627319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.14230346679688, - 135.0863800048828, - 512.1576538085938, - 145.08627319335938 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "ul. Molodezhnaya 1, Barnaul, 656038 Russia", - "origin": [ - 215.13113403320312, - 152.96600341796875 - ], - "bbox": [ - 215.13113403320312, - 145.28627014160156, - 396.239013671875, - 155.28616333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.13113403320312, - 145.28627014160156, - 396.239013671875, - 155.28616333007812 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "E-mail: kimg@iwep.asu.ru", - "origin": [ - 251.72076416015625, - 163.1658935546875 - ], - "bbox": [ - 251.72076416015625, - 155.4861602783203, - 360.07952880859375, - 165.48605346679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.72076416015625, - 155.4861602783203, - 360.07952880859375, - 165.48605346679688 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 86.31242370605469, - 119.0868911743164, - 525.6575317382812, - 190.8287353515625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Abstract", - "origin": [ - 86.31242370605469, - 188.545654296875 - ], - "bbox": [ - 86.31242370605469, - 180.82884216308594, - 123.52204132080078, - 190.8287353515625 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "—The generalized data are given on the composition and structure of phytoperiphyton of Lake", - "origin": [ - 123.62205505371094, - 188.545654296875 - ], - "bbox": [ - 123.62205505371094, - 119.0868911743164, - 525.6575317382812, - 129.0867919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 119.0868911743164, - 525.6575317382812, - 190.8287353515625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Teletskoye on different substrates (rocks, macrophytes and their residues). It is noted that in spite of the", - "origin": [ - 86.31242370605469, - 198.74554443359375 - ], - "bbox": [ - 86.31242370605469, - 129.28677368164062, - 525.6575317382812, - 139.28668212890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 129.28677368164062, - 525.6575317382812, - 139.28668212890625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "differences in the taxonomic structure and level of development the algocenoses of periphyton of various", - "origin": [ - 86.31242370605469, - 208.9454345703125 - ], - "bbox": [ - 86.31242370605469, - 139.48666381835938, - 525.5775146484375, - 149.486572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 139.48666381835938, - 525.5775146484375, - 149.486572265625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "substrates have similar ecological range. This gives a possibility of using the algocenoses of periphyton on", - "origin": [ - 86.31242370605469, - 219.14532470703125 - ], - "bbox": [ - 86.31242370605469, - 149.68655395507812, - 525.5975341796875, - 159.68646240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 149.68655395507812, - 525.5975341796875, - 159.68646240234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "different substrates for assessing the quality of the lake water.", - "origin": [ - 86.31242370605469, - 229.34521484375 - ], - "bbox": [ - 86.31242370605469, - 159.88644409179688, - 333.47979736328125, - 169.8863525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 159.88644409179688, - 333.47979736328125, - 169.8863525390625 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 86.31242370605469, - 176.26626586914062, - 231.9410400390625, - 248.00811767578125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "DOI:", - "origin": [ - 86.31242370605469, - 245.72503662109375 - ], - "bbox": [ - 86.31242370605469, - 238.0082244873047, - 108.53219604492188, - 248.00811767578125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " 10.1134/S1995425511010048", - "origin": [ - 108.53219604492188, - 245.72503662109375 - ], - "bbox": [ - 108.53219604492188, - 176.26626586914062, - 231.9410400390625, - 186.26617431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 176.26626586914062, - 231.9410400390625, - 248.00811767578125 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 86.31242370605469, - 192.46609497070312, - 340.4696960449219, - 264.2450256347656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Keywords:", - "origin": [ - 86.31242370605469, - 261.92486572265625 - ], - "bbox": [ - 86.31242370605469, - 254.24513244628906, - 129.64199829101562, - 264.2450256347656 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " phytoperiphyton, ecological range, Lake Teletskoye", - "origin": [ - 129.64199829101562, - 261.92486572265625 - ], - "bbox": [ - 129.64199829101562, - 192.46609497070312, - 340.4696960449219, - 202.46600341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.31242370605469, - 192.46609497070312, - 340.4696960449219, - 264.2450256347656 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 57.96049499511719, - 219.12158203125, - 299.0122375488281, - 657.359130859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake Teletskoye is located in the northeast part of", - "origin": [ - 72.1417007446289, - 295.52630615234375 - ], - "bbox": [ - 72.1417007446289, - 219.12158203125, - 298.8606262207031, - 230.12149047851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1417007446289, - 219.12158203125, - 298.8606262207031, - 230.12149047851562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Altai Mountains at the level of 434 m a.s.l. Its surface", - "origin": [ - 57.97383117675781, - 306.7242126464844 - ], - "bbox": [ - 57.97383117675781, - 230.31948852539062, - 298.91558837890625, - 241.31939697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97383117675781, - 230.31948852539062, - 298.91558837890625, - 241.31939697265625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "area is 227.3 km", - "origin": [ - 57.97383117675781, - 317.922119140625 - ], - "bbox": [ - 57.97383117675781, - 241.51739501953125, - 131.8271484375, - 252.51730346679688 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 131.768798828125, - 312.9432067871094 - ], - "bbox": [ - 131.768798828125, - 263.2796936035156, - 135.3437957763672, - 270.4296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", the shore line is 192.8 km long, the", - "origin": [ - 135.3739013671875, - 317.92620849609375 - ], - "bbox": [ - 135.3739013671875, - 241.521484375, - 298.8874206542969, - 252.52139282226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97383117675781, - 241.51739501953125, - 298.8874206542969, - 270.4296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "maximum width is 5.2 km, maximum depth—323 m", - "origin": [ - 57.96760559082031, - 329.1241149902344 - ], - "bbox": [ - 57.96760559082031, - 252.71939086914062, - 298.98638916015625, - 263.71929931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96760559082031, - 252.71939086914062, - 298.98638916015625, - 263.71929931640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[1]. The area of littoral zone limited by the 10-m isobath", - "origin": [ - 57.96760559082031, - 340.322021484375 - ], - "bbox": [ - 57.96760559082031, - 263.91729736328125, - 298.7884216308594, - 274.9172058105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96760559082031, - 263.91729736328125, - 298.7884216308594, - 274.9172058105469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "is 7.8 km", - "origin": [ - 57.96760559082031, - 351.5199279785156 - ], - "bbox": [ - 57.96760559082031, - 275.1152038574219, - 97.35823059082031, - 286.1151123046875 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 97.30799865722656, - 346.5430908203125 - ], - "bbox": [ - 97.30799865722656, - 296.87957763671875, - 100.88299560546875, - 304.0295715332031 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", or 3.4 % of the total surface area (in 1934 the", - "origin": [ - 100.91310119628906, - 351.5260925292969 - ], - "bbox": [ - 100.91310119628906, - 275.1213684082031, - 298.88922119140625, - 286.12127685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96760559082031, - 275.1152038574219, - 298.88922119140625, - 304.0295715332031 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "lake area was believed to be 228 km", - "origin": [ - 57.96949005126953, - 362.7239990234375 - ], - "bbox": [ - 57.96949005126953, - 286.31927490234375, - 215.21307373046875, - 297.3191833496094 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 215.16290283203125, - 357.74310302734375 - ], - "bbox": [ - 215.16290283203125, - 308.07958984375, - 218.73789978027344, - 315.2295837402344 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ") [2]. The littoral’s", - "origin": [ - 218.76800537109375, - 362.7261047363281 - ], - "bbox": [ - 218.76800537109375, - 286.3213806152344, - 298.92425537109375, - 297.3212890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96949005126953, - 286.31927490234375, - 298.92425537109375, - 315.2295837402344 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "areas bordering the water edge are influenced by two", - "origin": [ - 57.971466064453125, - 373.92401123046875 - ], - "bbox": [ - 57.971466064453125, - 297.519287109375, - 298.8802795410156, - 308.5191955566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 297.519287109375, - 298.8802795410156, - 308.5191955566406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "hydrodynamic factors—the water level fluctuations", - "origin": [ - 57.971466064453125, - 385.1219177246094 - ], - "bbox": [ - 57.971466064453125, - 308.7171936035156, - 298.7922058105469, - 319.71710205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 308.7171936035156, - 298.7922058105469, - 319.71710205078125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and wave-cut process. The water level in the lake can", - "origin": [ - 57.971466064453125, - 396.31982421875 - ], - "bbox": [ - 57.971466064453125, - 319.91510009765625, - 298.9241943359375, - 330.9150085449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 319.91510009765625, - 298.9241943359375, - 330.9150085449219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "change for 0.1 m in 7–12 minutes and up to 6 m in a", - "origin": [ - 57.971466064453125, - 407.5177307128906 - ], - "bbox": [ - 57.971466064453125, - 331.1130065917969, - 298.9242858886719, - 342.1129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 331.1130065917969, - 298.9242858886719, - 342.1129150390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "year. The water level change is accompanied by a pow-", - "origin": [ - 57.971466064453125, - 418.71563720703125 - ], - "bbox": [ - 57.971466064453125, - 342.3109130859375, - 298.8912353515625, - 353.3108215332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 342.3109130859375, - 298.8912353515625, - 353.3108215332031 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "erful wave-cut process as a result of constant movement", - "origin": [ - 57.971466064453125, - 429.9135437011719 - ], - "bbox": [ - 57.971466064453125, - 353.5088195800781, - 298.93524169921875, - 364.50872802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 353.5088195800781, - 298.93524169921875, - 364.50872802734375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of air masses in the lake valley. The winds are classified", - "origin": [ - 57.971466064453125, - 441.1114501953125 - ], - "bbox": [ - 57.971466064453125, - 364.70672607421875, - 298.9132385253906, - 375.7066345214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 364.70672607421875, - 298.9132385253906, - 375.7066345214844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "as those of local and general atmospheric circulation. In", - "origin": [ - 57.971466064453125, - 452.3093566894531 - ], - "bbox": [ - 57.971466064453125, - 375.9046325683594, - 298.71527099609375, - 386.904541015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 375.9046325683594, - 298.71527099609375, - 386.904541015625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "summer the winds of general circulation last from 1–", - "origin": [ - 57.971466064453125, - 463.50726318359375 - ], - "bbox": [ - 57.971466064453125, - 387.1025390625, - 298.8472900390625, - 398.1024475097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 387.1025390625, - 298.8472900390625, - 398.1024475097656 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8 hours to 3–8 days. When the general atmospheric cir-", - "origin": [ - 57.971466064453125, - 474.7051696777344 - ], - "bbox": [ - 57.971466064453125, - 398.3004455566406, - 298.91326904296875, - 409.30035400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971466064453125, - 398.3004455566406, - 298.91326904296875, - 409.30035400390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "culation decreases, the local winds with expressed daily", - "origin": [ - 57.97148132324219, - 485.903076171875 - ], - "bbox": [ - 57.97148132324219, - 409.49835205078125, - 298.7042541503906, - 420.4982604980469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97148132324219, - 409.49835205078125, - 298.7042541503906, - 420.4982604980469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "course grow stronger. The waves can be as high as", - "origin": [ - 57.97148132324219, - 497.1009826660156 - ], - "bbox": [ - 57.97148132324219, - 420.6962585449219, - 298.92425537109375, - 431.6961669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97148132324219, - 420.6962585449219, - 298.92425537109375, - 431.6961669921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2.5 m [1, 3].", - "origin": [ - 57.97148132324219, - 508.29888916015625 - ], - "bbox": [ - 57.97148132324219, - 431.8941650390625, - 112.35498046875, - 442.8940734863281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97148132324219, - 431.8941650390625, - 112.35498046875, - 442.8940734863281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The littoral is represented by the rock, boul-", - "origin": [ - 72.13935089111328, - 523.7977294921875 - ], - "bbox": [ - 72.13935089111328, - 447.39300537109375, - 298.90228271484375, - 458.3929138183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13935089111328, - 447.39300537109375, - 298.90228271484375, - 458.3929138183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "der-stone, coarse materials in the open part and sand,", - "origin": [ - 57.96049499511719, - 534.9956665039062 - ], - "bbox": [ - 57.96049499511719, - 458.5909423828125, - 298.8471984863281, - 469.5908508300781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 458.5909423828125, - 298.8471984863281, - 469.5908508300781 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "gravel, granite boulders in the talus trains of the major-", - "origin": [ - 57.96049499511719, - 546.1935424804688 - ], - "bbox": [ - 57.96049499511719, - 469.788818359375, - 298.90228271484375, - 480.7887268066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 469.788818359375, - 298.90228271484375, - 480.7887268066406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ity of the tributaries [3]. The vegetation is represented", - "origin": [ - 57.96049499511719, - 557.3914794921875 - ], - "bbox": [ - 57.96049499511719, - 480.98675537109375, - 298.85821533203125, - 491.9866638183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 480.98675537109375, - 298.85821533203125, - 491.9866638183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "mostly by phytoepilithon–the algae of periphyton de-", - "origin": [ - 57.96049499511719, - 568.58935546875 - ], - "bbox": [ - 57.96049499511719, - 492.18463134765625, - 298.90228271484375, - 503.1845397949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 492.18463134765625, - 298.90228271484375, - 503.1845397949219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "veloped on the rock substrate.", - "origin": [ - 57.96049499511719, - 579.7872314453125 - ], - "bbox": [ - 57.96049499511719, - 503.38250732421875, - 189.62928771972656, - 514.3824462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 503.38250732421875, - 189.62928771972656, - 514.3824462890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In the areas with lowered wind-wave load and sandy", - "origin": [ - 72.12836456298828, - 595.2860717773438 - ], - "bbox": [ - 72.12836456298828, - 518.88134765625, - 298.6162109375, - 529.8812255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.12836456298828, - 518.88134765625, - 298.6162109375, - 529.8812255859375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and silted grounds (bays, mouth areas of some tributar-", - "origin": [ - 57.96049499511719, - 606.4840087890625 - ], - "bbox": [ - 57.96049499511719, - 530.0792846679688, - 298.90228271484375, - 541.0792236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 530.0792846679688, - 298.90228271484375, - 541.0792236328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ies, northwest area of relatively shallow stretch) the", - "origin": [ - 57.96049499511719, - 617.681884765625 - ], - "bbox": [ - 57.96049499511719, - 541.2771606445312, - 298.8692626953125, - 552.277099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 541.2771606445312, - 298.8692626953125, - 552.277099609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "higher water vegetation develops. The area under", - "origin": [ - 57.96049499511719, - 628.8797607421875 - ], - "bbox": [ - 57.96049499511719, - 552.4750366210938, - 298.8142395019531, - 563.4749755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 552.4750366210938, - 298.8142395019531, - 563.4749755859375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "macrophytes is about 30% of the total littoral area [4].", - "origin": [ - 57.96049499511719, - 640.07763671875 - ], - "bbox": [ - 57.96049499511719, - 563.6729125976562, - 299.0122375488281, - 574.6728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 563.6729125976562, - 299.0122375488281, - 574.6728515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepiphyton, the another type of algocenoses of", - "origin": [ - 57.96049499511719, - 651.2755126953125 - ], - "bbox": [ - 57.96049499511719, - 574.8707885742188, - 298.8582458496094, - 585.8707275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 574.8707885742188, - 298.8582458496094, - 585.8707275390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "periphyton develops on the surface of water plants.", - "origin": [ - 57.96049499511719, - 662.4734497070312 - ], - "bbox": [ - 57.96049499511719, - 586.0687255859375, - 282.79840087890625, - 597.068603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 586.0687255859375, - 282.79840087890625, - 597.068603515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Hydrothermal regime of the lake is characterized by", - "origin": [ - 72.12836456298828, - 677.9722900390625 - ], - "bbox": [ - 72.12836456298828, - 601.5675659179688, - 298.7702331542969, - 612.5675048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.12836456298828, - 601.5675659179688, - 298.7702331542969, - 612.5675048828125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "low temperatures. The water temperature exceeding", - "origin": [ - 57.96049499511719, - 689.170166015625 - ], - "bbox": [ - 57.96049499511719, - 612.7654418945312, - 298.8252258300781, - 623.765380859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 612.7654418945312, - 298.8252258300781, - 623.765380859375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "10°C is observed annually only in the upper 10 m for no", - "origin": [ - 57.96049499511719, - 700.3681030273438 - ], - "bbox": [ - 57.96049499511719, - 623.96337890625, - 298.7043151855469, - 634.9632568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 623.96337890625, - 298.7043151855469, - 634.9632568359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "longer than 2.5 months [3]. At low water temperature", - "origin": [ - 57.96049499511719, - 711.5659790039062 - ], - "bbox": [ - 57.96049499511719, - 635.1612548828125, - 298.9461975097656, - 646.1611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 635.1612548828125, - 298.9461975097656, - 646.1611328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the macrophytes decay slowly. The plant residues stay", - "origin": [ - 57.96049499511719, - 722.763916015625 - ], - "bbox": [ - 57.96049499511719, - 646.3591918945312, - 298.82525634765625, - 657.359130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96049499511719, - 646.3591918945312, - 298.82525634765625, - 657.359130859375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 313.0701599121094, - 217.90206909179688, - 554.0888671875, - 507.2469177246094 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the shallow bottom for a long time creating an", - "origin": [ - 313.0701599121094, - 294.3067932128906 - ], - "bbox": [ - 313.0701599121094, - 217.90206909179688, - 554.0007934570312, - 228.9019775390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0701599121094, - 217.90206909179688, - 554.0007934570312, - 228.9019775390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "additional substrate for the development of periphyton", - "origin": [ - 313.0701599121094, - 305.50469970703125 - ], - "bbox": [ - 313.0701599121094, - 229.0999755859375, - 553.769775390625, - 240.09988403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0701599121094, - 229.0999755859375, - 553.769775390625, - 240.09988403320312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algae.", - "origin": [ - 313.0701599121094, - 316.7026062011719 - ], - "bbox": [ - 313.0701599121094, - 240.29788208007812, - 339.0298767089844, - 251.29779052734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0701599121094, - 240.29788208007812, - 339.0298767089844, - 251.29779052734375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In 1961–1975 the mineralization of water (calcium", - "origin": [ - 327.238037109375, - 332.6524658203125 - ], - "bbox": [ - 327.238037109375, - 256.24774169921875, - 554.0888671875, - 267.2476501464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.238037109375, - 256.24774169921875, - 554.0888671875, - 267.2476501464844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "group of hydrocarbonate class) changed from 41.4 to", - "origin": [ - 313.0701599121094, - 343.8503723144531 - ], - "bbox": [ - 313.0701599121094, - 267.4456481933594, - 553.9676513671875, - 278.445556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0701599121094, - 267.4456481933594, - 553.9676513671875, - 278.445556640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "132 mg/dm", - "origin": [ - 313.0701599121094, - 355.04827880859375 - ], - "bbox": [ - 313.0701599121094, - 278.6435546875, - 364.23065185546875, - 289.6434631347656 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3", - "origin": [ - 364.1546936035156, - 350.1441955566406 - ], - "bbox": [ - 364.1546936035156, - 300.4806823730469, - 367.7297058105469, - 307.63067626953125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", pH—from 7.2 to 7.6. The content of or-", - "origin": [ - 367.7597961425781, - 355.1272888183594 - ], - "bbox": [ - 367.7597961425781, - 278.7225646972656, - 554.0209350585938, - 289.72247314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0701599121094, - 278.6435546875, - 554.0209350585938, - 307.63067626953125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ganic matter in the lake water is insignificant, with per-", - "origin": [ - 313.07928466796875, - 366.3251953125 - ], - "bbox": [ - 313.07928466796875, - 289.92047119140625, - 553.9990234375, - 300.9203796386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07928466796875, - 289.92047119140625, - 553.9990234375, - 300.9203796386719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "manganate oxidizability varying from 1.1 to 5.4 mgO/", - "origin": [ - 313.07928466796875, - 377.5231018066406 - ], - "bbox": [ - 313.07928466796875, - 301.1183776855469, - 554.0648803710938, - 312.1182861328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07928466796875, - 301.1183776855469, - 554.0648803710938, - 312.1182861328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dm", - "origin": [ - 313.07928466796875, - 388.72100830078125 - ], - "bbox": [ - 313.07928466796875, - 312.3162841796875, - 327.13714599609375, - 323.3161926269531 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3", - "origin": [ - 327.0906066894531, - 383.7441101074219 - ], - "bbox": [ - 327.0906066894531, - 334.0805969238281, - 330.6656188964844, - 341.2305908203125 - ] - }, - { - "size": 10.999899864196777, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " ", - "origin": [ - 330.6656188964844, - 383.7441101074219 - ], - "bbox": [ - 330.6656188964844, - 307.3393859863281, - 332.81939697265625, - 318.33929443359375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[3]. In 2003–2006 mineralization of water changed", - "origin": [ - 332.81939697265625, - 388.7272033691406 - ], - "bbox": [ - 332.81939697265625, - 312.3224792480469, - 553.7631225585938, - 323.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07928466796875, - 307.3393859863281, - 553.7631225585938, - 341.2305908203125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "from 62.6 to 82.0 mg/dm", - "origin": [ - 313.0855712890625, - 399.92510986328125 - ], - "bbox": [ - 313.0855712890625, - 323.5203857421875, - 429.1123962402344, - 334.5202941894531 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3", - "origin": [ - 429.02301025390625, - 394.944091796875 - ], - "bbox": [ - 429.02301025390625, - 345.28057861328125, - 432.5980224609375, - 352.4305725097656 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", pH, from 7.7 to 7.9, per-", - "origin": [ - 432.62811279296875, - 399.9270935058594 - ], - "bbox": [ - 432.62811279296875, - 323.5223693847656, - 554.02294921875, - 334.52227783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0855712890625, - 323.5203857421875, - 554.02294921875, - 352.4305725097656 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "manganate oxidizability from 2.1 to 4.8 mgO/dm", - "origin": [ - 313.0812072753906, - 411.125 - ], - "bbox": [ - 313.0812072753906, - 334.72027587890625, - 547.763916015625, - 345.7201843261719 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3", - "origin": [ - 547.6602783203125, - 406.14410400390625 - ], - "bbox": [ - 547.6602783203125, - 356.4805908203125, - 551.2352905273438, - 363.6305847167969 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 551.265380859375, - 411.1271057128906 - ], - "bbox": [ - 551.265380859375, - 334.7223815917969, - 554.015380859375, - 345.7222900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0812072753906, - 334.72027587890625, - 554.015380859375, - 363.6305847167969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "BOD", - "origin": [ - 313.08453369140625, - 422.32501220703125 - ], - "bbox": [ - 313.08453369140625, - 345.9202880859375, - 336.3053283691406, - 356.9201965332031 - ] - }, - { - "size": 7.150000095367432, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "5", - "origin": [ - 336.28729248046875, - 423.8999938964844 - ], - "bbox": [ - 336.28729248046875, - 374.2364807128906, - 339.8623046875, - 381.386474609375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "—from 0.1 to 6.4 mg O", - "origin": [ - 339.89239501953125, - 422.32708740234375 - ], - "bbox": [ - 339.89239501953125, - 345.92236328125, - 459.3182678222656, - 356.9222717285156 - ] - }, - { - "size": 7.150000095367432, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 459.327392578125, - 423.8999938964844 - ], - "bbox": [ - 459.327392578125, - 374.2364807128906, - 462.90240478515625, - 381.386474609375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "/dm", - "origin": [ - 462.9324951171875, - 422.32708740234375 - ], - "bbox": [ - 462.9324951171875, - 345.92236328125, - 480.04833984375, - 356.9222717285156 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3", - "origin": [ - 480.0038146972656, - 417.3440856933594 - ], - "bbox": [ - 480.0038146972656, - 367.6805725097656, - 483.5788269042969, - 374.83056640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " ", - "origin": [ - 483.5788269042969, - 417.3440856933594 - ], - "bbox": [ - 483.5788269042969, - 340.9393615722656, - 489.39068603515625, - 351.93927001953125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[5]. Thus, we", - "origin": [ - 489.39068603515625, - 422.32708740234375 - ], - "bbox": [ - 489.39068603515625, - 345.92236328125, - 554.048095703125, - 356.9222717285156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08453369140625, - 340.9393615722656, - 554.048095703125, - 381.386474609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "should note the long-term stability of these elements of", - "origin": [ - 313.08428955078125, - 433.5249938964844 - ], - "bbox": [ - 313.08428955078125, - 357.1202697753906, - 553.9820556640625, - 368.12017822265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 357.1202697753906, - 553.9820556640625, - 368.12017822265625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "hydrochemical regime of the lake.", - "origin": [ - 313.08428955078125, - 444.722900390625 - ], - "bbox": [ - 313.08428955078125, - 368.31817626953125, - 463.6837158203125, - 379.3180847167969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 368.31817626953125, - 463.6837158203125, - 379.3180847167969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The methods of using the phytoperiphiton in the", - "origin": [ - 327.2521667480469, - 460.6727600097656 - ], - "bbox": [ - 327.2521667480469, - 384.2680358886719, - 554.0039672851562, - 395.2679443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2521667480469, - 384.2680358886719, - 554.0039672851562, - 395.2679443359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "monitoring of ecological state of a water object are", - "origin": [ - 313.08428955078125, - 471.87066650390625 - ], - "bbox": [ - 313.08428955078125, - 395.4659423828125, - 554.0590209960938, - 406.4658508300781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 395.4659423828125, - 554.0590209960938, - 406.4658508300781 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "based on the changes of the structure of algocenoses as", - "origin": [ - 313.08428955078125, - 483.0685729980469 - ], - "bbox": [ - 313.08428955078125, - 406.6638488769531, - 554.0478515625, - 417.66375732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 406.6638488769531, - 554.0478515625, - 417.66375732421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "a result of the influence of the environmental factors,", - "origin": [ - 313.08428955078125, - 494.2664794921875 - ], - "bbox": [ - 313.08428955078125, - 417.86175537109375, - 554.0260009765625, - 428.8616638183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 417.86175537109375, - 554.0260009765625, - 428.8616638183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "including human impact [6]. The purpose of this work", - "origin": [ - 313.08428955078125, - 505.4643859863281 - ], - "bbox": [ - 313.08428955078125, - 429.0596618652344, - 553.9379272460938, - 440.0595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 429.0596618652344, - 553.9379272460938, - 440.0595703125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "is to compare the composition and structure of the", - "origin": [ - 313.08428955078125, - 516.6622924804688 - ], - "bbox": [ - 313.08428955078125, - 440.257568359375, - 553.992919921875, - 451.2574768066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 440.257568359375, - 553.992919921875, - 451.2574768066406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algocenoses of epilithon and epiphyton (including", - "origin": [ - 313.08428955078125, - 527.8602294921875 - ], - "bbox": [ - 313.08428955078125, - 451.45550537109375, - 553.8718872070312, - 462.4554138183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 451.45550537109375, - 553.8718872070312, - 462.4554138183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "those on plant residues) and to determine the signifi-", - "origin": [ - 313.08428955078125, - 539.05810546875 - ], - "bbox": [ - 313.08428955078125, - 462.65338134765625, - 554.0260620117188, - 473.6532897949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 462.65338134765625, - 554.0260620117188, - 473.6532897949219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cance of the changes of the water communities in Lake", - "origin": [ - 313.08428955078125, - 550.2559814453125 - ], - "bbox": [ - 313.08428955078125, - 473.85125732421875, - 553.992919921875, - 484.8511657714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 473.85125732421875, - 553.992919921875, - 484.8511657714844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Teletskoye for indicating the changes of the abiotic", - "origin": [ - 313.08428955078125, - 561.453857421875 - ], - "bbox": [ - 313.08428955078125, - 485.04913330078125, - 553.970947265625, - 496.0490417480469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 485.04913330078125, - 553.970947265625, - 496.0490417480469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "factors.", - "origin": [ - 313.08428955078125, - 572.6517333984375 - ], - "bbox": [ - 313.08428955078125, - 496.24700927734375, - 345.76495361328125, - 507.2469177246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 496.24700927734375, - 345.76495361328125, - 507.2469177246094 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 362.4738464355469, - 527.6517333984375, - 504.5925598144531, - 538.651611328125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "MATERIAL AND METHODS", - "origin": [ - 362.4738464355469, - 604.0564575195312 - ], - "bbox": [ - 362.4738464355469, - 527.6517333984375, - 504.5925598144531, - 538.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 362.4738464355469, - 527.6517333984375, - 504.5925598144531, - 538.651611328125 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 313.08428955078125, - 545.6035766601562, - 554.1469116210938, - 657.4066162109375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "From May to October, 1998, 2002, and 2003, we", - "origin": [ - 327.2521667480469, - 622.00830078125 - ], - "bbox": [ - 327.2521667480469, - 545.6035766601562, - 554.0259399414062, - 556.603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2521667480469, - 545.6035766601562, - 554.0259399414062, - 556.603515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "studied the algocenoses of the rock littoral of the lake to", - "origin": [ - 313.08428955078125, - 633.2061767578125 - ], - "bbox": [ - 313.08428955078125, - 556.8014526367188, - 553.8059692382812, - 567.8013916015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 556.8014526367188, - 553.8059692382812, - 567.8013916015625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "a depth of 1.5 m. The structure of phytoepilithon in", - "origin": [ - 313.08428955078125, - 644.404052734375 - ], - "bbox": [ - 313.08428955078125, - 567.9993286132812, - 553.9818725585938, - 578.999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 567.9993286132812, - 553.9818725585938, - 578.999267578125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "June–August, 1928–1931, to a depth of 30 m is charac-", - "origin": [ - 313.08428955078125, - 655.6019897460938 - ], - "bbox": [ - 313.08428955078125, - 579.197265625, - 554.0150756835938, - 590.1971435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 579.197265625, - 554.0150756835938, - 590.1971435546875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "terized by the data given in the works by N. N. Vo-", - "origin": [ - 313.08428955078125, - 666.8108520507812 - ], - "bbox": [ - 313.08428955078125, - 590.4061279296875, - 554.0150756835938, - 601.406005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 590.4061279296875, - 554.0150756835938, - 601.406005859375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ronikhin [7], V. S. Poretskii and V. S. Sheshukova [8].", - "origin": [ - 313.08428955078125, - 678.019775390625 - ], - "bbox": [ - 313.08428955078125, - 601.6150512695312, - 554.1469116210938, - 612.614990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 601.6150512695312, - 554.1469116210938, - 612.614990234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In June–August, 2004–2005, the algae vegetating on", - "origin": [ - 313.08428955078125, - 689.2176513671875 - ], - "bbox": [ - 313.08428955078125, - 612.8129272460938, - 553.9597778320312, - 623.8128662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 612.8129272460938, - 553.9597778320312, - 623.8128662109375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "macrophytes were studied. In August–October, 2006,", - "origin": [ - 313.08428955078125, - 700.4155883789062 - ], - "bbox": [ - 313.08428955078125, - 624.0108642578125, - 553.8828735351562, - 635.0107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 624.0108642578125, - 553.8828735351562, - 635.0107421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the dynamics of composition and structure of the al-", - "origin": [ - 313.08428955078125, - 711.6134643554688 - ], - "bbox": [ - 313.08428955078125, - 635.19775390625, - 554.0260620117188, - 646.2086181640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 635.19775390625, - 554.0260620117188, - 646.2086181640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "gae on the plant residues was researched. The total of", - "origin": [ - 313.08428955078125, - 722.8114013671875 - ], - "bbox": [ - 313.08428955078125, - 646.4066772460938, - 553.992919921875, - 657.4066162109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08428955078125, - 646.4066772460938, - 553.992919921875, - 657.4066162109375 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 57.96849822998047, - 37.05726623535156, - 397.332763671875, - 51.056884765625 - ], - "lines": [ - { - "spans": [ - { - "size": 6.999800205230713, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "ISSN 1995-4255, Contemporary Problems of Ecology, 2011, Vol. 4, No. 1, pp. 21–27. © Pleiades Publishing, Ltd., 2011.", - "origin": [ - 57.96849822998047, - 42.4329833984375 - ], - "bbox": [ - 57.96849822998047, - 37.05726623535156, - 397.332763671875, - 44.05706787109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 37.05726623535156, - 397.332763671875, - 44.05706787109375 - ] - }, - { - "spans": [ - { - "size": 6.999800205230713, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Original Russian Text © G.V. Kim, 2011, published in Sibirskii Ekologicheskii Zhurnal, 2011, Vol. 18, No. 1, pp. 33–41.", - "origin": [ - 57.96849822998047, - 49.43280029296875 - ], - "bbox": [ - 57.96849822998047, - 44.05708312988281, - 395.7927551269531, - 51.056884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 44.05708312988281, - 395.7927551269531, - 51.056884765625 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 301.54278564453125, - 683.4950561523438, - 310.54266357421875, - 692.4949340820312 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "21", - "origin": [ - 301.54278564453125, - 746.0078735351562 - ], - "bbox": [ - 301.54278564453125, - 683.4950561523438, - 310.54266357421875, - 692.4949340820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.54278564453125, - 683.4950561523438, - 310.54266357421875, - 692.4949340820312 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 8, - "type": 0, - "bbox": [ - 57.96849822998047, - 37.05726623535156, - 397.332763671875, - 51.056884765625 - ], - "lines": [ - { - "spans": [ - { - "size": 6.999800205230713, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "ISSN 1995-4255, Contemporary Problems of Ecology, 2011, Vol. 4, No. 1, pp. 21–27. © Pleiades Publishing, Ltd., 2011.", - "origin": [ - 57.96849822998047, - 42.4329833984375 - ], - "bbox": [ - 57.96849822998047, - 37.05726623535156, - 397.332763671875, - 44.05706787109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 37.05726623535156, - 397.332763671875, - 44.05706787109375 - ] - }, - { - "spans": [ - { - "size": 6.999800205230713, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Original Russian Text © G.V. Kim, 2011, published in Sibirskii Ekologicheskii Zhurnal, 2011, Vol. 18, No. 1, pp. 33–41.", - "origin": [ - 57.96849822998047, - 49.43280029296875 - ], - "bbox": [ - 57.96849822998047, - 44.05708312988281, - 395.7927551269531, - 51.056884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 44.05708312988281, - 395.7927551269531, - 51.056884765625 - ] - } - ], - "tag": "header" - }, - { - "number": 9, - "type": 0, - "bbox": [ - 301.54278564453125, - 683.4950561523438, - 310.54266357421875, - 692.4949340820312 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "21", - "origin": [ - 301.54278564453125, - 746.0078735351562 - ], - "bbox": [ - 301.54278564453125, - 683.4950561523438, - 310.54266357421875, - 692.4949340820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.54278564453125, - 683.4950561523438, - 310.54266357421875, - 692.4949340820312 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_1": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 106.12605285644531, - 502.873291015625, - 250.73074340820312, - 513.8731689453125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "RESULTS AND DISCUSSION", - "origin": [ - 106.12605285644531, - 579.2780151367188 - ], - "bbox": [ - 106.12605285644531, - 502.873291015625, - 250.73074340820312, - 513.8731689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.12605285644531, - 502.873291015625, - 250.73074340820312, - 513.8731689453125 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 193.44, - 59.99999999999999, - 206.39999999999998, - 70.08 - ], - "image_path": "equations_inline/1_193_59_206_70.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 502.873291015625, - 612.0, - 513.8731689453125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 57.94648742675781, - 519.6151123046875, - 554.0319213867188, - 725.3128662109375 - ], - "layout_label": "U", - "sub_layout": [], - "bad_boxes": [ - [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ], - [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - ] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 57.96849060058594, - -8.511833190917969, - 298.97625732421875, - 483.4364929199219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "233 samples of phytoepilithon, 22 samples of phytoepi-", - "origin": [ - 57.96849822998047, - 67.89288330078125 - ], - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.9102783203125, - 2.499053955078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.9102783203125, - 2.499053955078125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "phyton, and 8 samples of algae from plant residues was", - "origin": [ - 57.96849060058594, - 79.10174560546875 - ], - "bbox": [ - 57.96849060058594, - 2.6970291137695312, - 298.9432678222656, - 13.696929931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 2.6970291137695312, - 298.9432678222656, - 13.696929931640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "analyzed.", - "origin": [ - 57.96849060058594, - 90.29962158203125 - ], - "bbox": [ - 57.96849060058594, - 13.894905090332031, - 99.8121109008789, - 24.894805908203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 13.894905090332031, - 99.8121109008789, - 24.894805908203125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The samples of the algae from different substrates", - "origin": [ - 72.13636016845703, - 105.03948974609375 - ], - "bbox": [ - 72.13636016845703, - 28.63477325439453, - 298.87725830078125, - 39.634674072265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13636016845703, - 28.63477325439453, - 298.87725830078125, - 39.634674072265625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "were taken by standard methods [9]. Phytoepilithon", - "origin": [ - 57.96849060058594, - 116.23736572265625 - ], - "bbox": [ - 57.96849060058594, - 39.83264923095703, - 298.602294921875, - 50.832550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 39.83264923095703, - 298.602294921875, - 50.832550048828125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "was washed off the rocks (0.15–0.2 m in diameter), the", - "origin": [ - 57.96849060058594, - 127.43524169921875 - ], - "bbox": [ - 57.96849060058594, - 51.03052520751953, - 298.8882751464844, - 62.030426025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 51.03052520751953, - 298.8882751464844, - 62.030426025390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algae cover on which was the most typical of the given", - "origin": [ - 57.96849060058594, - 138.63311767578125 - ], - "bbox": [ - 57.96849060058594, - 62.22840118408203, - 298.822265625, - 73.22830200195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 62.22840118408203, - 298.822265625, - 73.22830200195312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "area of the lake. The algae were separated from the sub-", - "origin": [ - 57.96849060058594, - 149.83099365234375 - ], - "bbox": [ - 57.96849060058594, - 73.42627716064453, - 298.9102783203125, - 84.42617797851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 73.42627716064453, - 298.9102783203125, - 84.42617797851562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "strate with a hard toothbrush and fixed in 40% formalin.", - "origin": [ - 57.96849060058594, - 161.02886962890625 - ], - "bbox": [ - 57.96849060058594, - 84.62415313720703, - 298.8773193359375, - 95.62405395507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 84.62415313720703, - 298.8773193359375, - 95.62405395507812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepiphyton was collected from the species of", - "origin": [ - 57.96849060058594, - 172.22674560546875 - ], - "bbox": [ - 57.96849060058594, - 95.82202911376953, - 298.8662414550781, - 106.82192993164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 95.82202911376953, - 298.8662414550781, - 106.82192993164062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "higher water plants dominating in the studied area. The", - "origin": [ - 57.96849060058594, - 183.42462158203125 - ], - "bbox": [ - 57.96849060058594, - 107.01990509033203, - 298.8772277832031, - 118.01980590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 107.01990509033203, - 298.8772277832031, - 118.01980590820312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "plant was covered with a plastic bag and taken out of", - "origin": [ - 57.96849060058594, - 194.62249755859375 - ], - "bbox": [ - 57.96849060058594, - 118.21778106689453, - 298.87725830078125, - 129.21768188476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 118.21778106689453, - 298.87725830078125, - 129.21768188476562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water. The bag’s contents were transferred into a deep", - "origin": [ - 57.96849060058594, - 205.82037353515625 - ], - "bbox": [ - 57.96849060058594, - 129.4156494140625, - 298.87176513671875, - 140.41555786132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 129.4156494140625, - 298.87176513671875, - 140.41555786132812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dish, where the algae were washed off the macrophyte", - "origin": [ - 57.96849060058594, - 217.01824951171875 - ], - "bbox": [ - 57.96849060058594, - 140.613525390625, - 298.84423828125, - 151.61343383789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 140.613525390625, - 298.84423828125, - 151.61343383789062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "with a wide brush, mixed, and a part of the suspension", - "origin": [ - 57.96849060058594, - 228.21612548828125 - ], - "bbox": [ - 57.96849060058594, - 151.8114013671875, - 298.78924560546875, - 162.81130981445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 151.8114013671875, - 298.78924560546875, - 162.81130981445312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "was fixed in 40% formalin [4]. The area of wide leaves", - "origin": [ - 57.96849060058594, - 239.41400146484375 - ], - "bbox": [ - 57.96849060058594, - 163.00927734375, - 298.91021728515625, - 174.00918579101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 163.00927734375, - 298.91021728515625, - 174.00918579101562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of the macrophytes was determined by their contour on", - "origin": [ - 57.96849060058594, - 250.61187744140625 - ], - "bbox": [ - 57.96849060058594, - 174.2071533203125, - 298.8332214355469, - 185.20706176757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 174.2071533203125, - 298.8332214355469, - 185.20706176757812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "paper, the area of horse-tail stems and leaves was", - "origin": [ - 57.96849060058594, - 261.80975341796875 - ], - "bbox": [ - 57.96849060058594, - 185.405029296875, - 298.9432678222656, - 196.40493774414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 185.405029296875, - 298.9432678222656, - 196.40493774414062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "calculated like that of a cylinder.", - "origin": [ - 57.96849060058594, - 273.00762939453125 - ], - "bbox": [ - 57.96849060058594, - 196.6029052734375, - 201.84718322753906, - 207.60281372070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 196.6029052734375, - 201.84718322753906, - 207.60281372070312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The dynamics of the change in the structure of the", - "origin": [ - 72.13636016845703, - 287.74749755859375 - ], - "bbox": [ - 72.13636016845703, - 211.3427734375, - 298.8552551269531, - 222.34268188476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13636016845703, - 211.3427734375, - 298.8552551269531, - 222.34268188476562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algocenoses on the plant residues was studied as the cut", - "origin": [ - 57.96849060058594, - 298.9454040527344 - ], - "bbox": [ - 57.96849060058594, - 222.54067993164062, - 298.8772277832031, - 233.54058837890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 222.54067993164062, - 298.8772277832031, - 233.54058837890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "plants of pondweed, horse-tail and the birch leaves", - "origin": [ - 57.96849060058594, - 310.143310546875 - ], - "bbox": [ - 57.96849060058594, - 233.73858642578125, - 298.9212341308594, - 244.73849487304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 233.73858642578125, - 298.9212341308594, - 244.73849487304688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "fallen into water were placed separately into the mesh", - "origin": [ - 57.96849060058594, - 321.3412170410156 - ], - "bbox": [ - 57.96849060058594, - 244.93649291992188, - 298.97625732421875, - 255.9364013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 244.93649291992188, - 298.97625732421875, - 255.9364013671875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "nets. The experiment was conducted in July, 2006. In", - "origin": [ - 57.96849060058594, - 332.53912353515625 - ], - "bbox": [ - 57.96849060058594, - 256.1343994140625, - 298.8772888183594, - 267.1343078613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 256.1343994140625, - 298.8772888183594, - 267.1343078613281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "1.5 (August) and 3.5 (October) months the nets with", - "origin": [ - 57.96849060058594, - 343.7370300292969 - ], - "bbox": [ - 57.96849060058594, - 267.3323059082031, - 298.8772888183594, - 278.33221435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 267.3323059082031, - 298.8772888183594, - 278.33221435546875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "plant residues were lifted from the water and washed in", - "origin": [ - 57.96849060058594, - 354.9349365234375 - ], - "bbox": [ - 57.96849060058594, - 278.53021240234375, - 298.87725830078125, - 289.5301208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 278.53021240234375, - 298.87725830078125, - 289.5301208496094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "a dish. Part of the suspension was taken for determining", - "origin": [ - 57.96849060058594, - 366.1328430175781 - ], - "bbox": [ - 57.96849060058594, - 289.7281188964844, - 298.7012939453125, - 300.72802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 289.7281188964844, - 298.7012939453125, - 300.72802734375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the taxonomic attribution and quantitative calculations.", - "origin": [ - 57.96849060058594, - 377.33074951171875 - ], - "bbox": [ - 57.96849060058594, - 300.926025390625, - 298.8442687988281, - 311.9259338378906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 300.926025390625, - 298.8442687988281, - 311.9259338378906 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The number of the algae was calculated for 1 g of dry", - "origin": [ - 57.96849060058594, - 388.5286560058594 - ], - "bbox": [ - 57.96849060058594, - 312.1239318847656, - 298.77825927734375, - 323.12384033203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 312.1239318847656, - 298.77825927734375, - 323.12384033203125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "initial mass of the cut macrophytes.", - "origin": [ - 57.96849060058594, - 399.7265625 - ], - "bbox": [ - 57.96849060058594, - 323.32183837890625, - 214.39808654785156, - 334.3217468261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 323.32183837890625, - 214.39808654785156, - 334.3217468261719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The biomass of the algae was calculated with vol-", - "origin": [ - 72.13636016845703, - 414.4664306640625 - ], - "bbox": [ - 72.13636016845703, - 338.06170654296875, - 298.8883361816406, - 349.0616149902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13636016845703, - 338.06170654296875, - 298.8883361816406, - 349.0616149902344 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ume-counting method [9]. The coefficient of recalcula-", - "origin": [ - 57.96849060058594, - 425.6643371582031 - ], - "bbox": [ - 57.96849060058594, - 349.2596130371094, - 298.9322509765625, - 360.259521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 349.2596130371094, - 298.9322509765625, - 360.259521484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion of the wet mass of the algae into dry mass is 20%", - "origin": [ - 57.96849060058594, - 436.86224365234375 - ], - "bbox": [ - 57.96849060058594, - 360.45751953125, - 298.84429931640625, - 371.4574279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 360.45751953125, - 298.84429931640625, - 371.4574279785156 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[10]. The taxonomic attribution of the algae was deter-", - "origin": [ - 57.96849060058594, - 448.0601501464844 - ], - "bbox": [ - 57.96849060058594, - 371.6554260253906, - 298.9102478027344, - 382.65533447265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 371.6554260253906, - 298.9102478027344, - 382.65533447265625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "mined under the light microscope with 600 and 1500", - "origin": [ - 57.96849060058594, - 459.258056640625 - ], - "bbox": [ - 57.96849060058594, - 382.85333251953125, - 298.7892150878906, - 393.8532409667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 382.85333251953125, - 298.7892150878906, - 393.8532409667969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "magnification, using the guides from the series “Guide", - "origin": [ - 57.96849060058594, - 470.4559631347656 - ], - "bbox": [ - 57.96849060058594, - 394.0512390136719, - 298.87725830078125, - 405.0511474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 394.0512390136719, - 298.87725830078125, - 405.0511474609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "to fresh-water algae of the USSR” (in Russian), “Guide", - "origin": [ - 57.96849060058594, - 481.65386962890625 - ], - "bbox": [ - 57.96849060058594, - 405.2491455078125, - 298.8662414550781, - 416.2490539550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 405.2491455078125, - 298.8662414550781, - 416.2490539550781 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "to fresh-water algae of Ukranian SSR” (in Ukranian),", - "origin": [ - 57.96849060058594, - 492.8517761230469 - ], - "bbox": [ - 57.96849060058594, - 416.4470520019531, - 298.8222351074219, - 427.44696044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 416.4470520019531, - 298.8222351074219, - 427.44696044921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "“Flora", - "origin": [ - 57.96849060058594, - 504.0496826171875 - ], - "bbox": [ - 57.96849060058594, - 427.64495849609375, - 86.07323455810547, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 427.64495849609375, - 86.07323455810547, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "slodkowodna", - "origin": [ - 95.379150390625, - 504.0496826171875 - ], - "bbox": [ - 95.379150390625, - 427.64495849609375, - 154.0416259765625, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.379150390625, - 427.64495849609375, - 154.0416259765625, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Polski”", - "origin": [ - 163.51254272460938, - 504.0496826171875 - ], - "bbox": [ - 163.51254272460938, - 427.64495849609375, - 195.90725708007812, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.51254272460938, - 427.64495849609375, - 195.90725708007812, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(in", - "origin": [ - 205.25717163085938, - 504.0496826171875 - ], - "bbox": [ - 205.25717163085938, - 427.64495849609375, - 217.47805786132812, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.25717163085938, - 427.64495849609375, - 217.47805786132812, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Polish),", - "origin": [ - 226.80596923828125, - 504.0496826171875 - ], - "bbox": [ - 226.80596923828125, - 427.64495849609375, - 260.72967529296875, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 226.80596923828125, - 427.64495849609375, - 260.72967529296875, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "guides", - "origin": [ - 270.1125793457031, - 504.0496826171875 - ], - "bbox": [ - 270.1125793457031, - 427.64495849609375, - 298.8332824707031, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.1125793457031, - 427.64495849609375, - 298.8332824707031, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "“Fresh-water diatoms and blue-green algae in the water", - "origin": [ - 57.96849060058594, - 515.24755859375 - ], - "bbox": [ - 57.96849060058594, - 438.84283447265625, - 298.9212646484375, - 449.8427429199219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 438.84283447265625, - 298.9212646484375, - 449.8427429199219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "bodies in Yakutia” [11] and Central Asia [12, 13]. For", - "origin": [ - 57.96849060058594, - 526.4454956054688 - ], - "bbox": [ - 57.96849060058594, - 450.040771484375, - 298.84423828125, - 461.0406799316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 450.040771484375, - 298.84423828125, - 461.0406799316406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "determining the ecological characteristics of the algae", - "origin": [ - 57.96849060058594, - 537.6433715820312 - ], - "bbox": [ - 57.96849060058594, - 461.2386474609375, - 298.89923095703125, - 472.2385559082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 461.2386474609375, - 298.89923095703125, - 472.2385559082031 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "we used the data from the works [14–16].", - "origin": [ - 57.96849060058594, - 548.84130859375 - ], - "bbox": [ - 57.96849060058594, - 472.43658447265625, - 241.2598114013672, - 483.4364929199219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 472.43658447265625, - 241.2598114013672, - 483.4364929199219 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 106.12605285644531, - 502.873291015625, - 250.73074340820312, - 513.8731689453125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "RESULTS AND DISCUSSION", - "origin": [ - 106.12605285644531, - 579.2780151367188 - ], - "bbox": [ - 106.12605285644531, - 502.873291015625, - 250.73074340820312, - 513.8731689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.12605285644531, - 502.873291015625, - 250.73074340820312, - 513.8731689453125 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 57.94648742675781, - 519.6151123046875, - 298.9322814941406, - 725.3128662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In the", - "origin": [ - 72.13636779785156, - 596.0198364257812 - ], - "bbox": [ - 72.13636779785156, - 519.6151123046875, - 97.72212982177734, - 530.614990234375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " phytoepilithon", - "origin": [ - 97.72212982177734, - 596.0198364257812 - ], - "bbox": [ - 97.72212982177734, - 587.5721435546875, - 164.238525390625, - 598.572021484375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " of Lake Teletskoye to a depth", - "origin": [ - 164.238525390625, - 596.0198364257812 - ], - "bbox": [ - 164.238525390625, - 519.6151123046875, - 298.8112487792969, - 530.614990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13636779785156, - 519.6151123046875, - 298.8112487792969, - 598.572021484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of 1.5 m we revealed 446 species (538 taxa lower than", - "origin": [ - 57.957496643066406, - 607.2177734375 - ], - "bbox": [ - 57.957496643066406, - 530.8130493164062, - 298.84429931640625, - 541.81298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.957496643066406, - 530.8130493164062, - 298.84429931640625, - 541.81298828125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "genus) of algae from 9 sections. The list primarily con-", - "origin": [ - 57.957496643066406, - 618.4156494140625 - ], - "bbox": [ - 57.957496643066406, - 542.0109252929688, - 298.8992919921875, - 553.0108642578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.957496643066406, - 542.0109252929688, - 298.8992919921875, - 553.0108642578125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "sists of Bacillariophyta (42% of species composition),", - "origin": [ - 57.95750427246094, - 629.613525390625 - ], - "bbox": [ - 57.95750427246094, - 553.2088012695312, - 298.80035400390625, - 564.208740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 553.2088012695312, - 298.80035400390625, - 564.208740234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Cyanophyta (30%), and Chlorophyta (20%) (Fig. 1).", - "origin": [ - 57.95750427246094, - 640.8114013671875 - ], - "bbox": [ - 57.95750427246094, - 564.4066772460938, - 289.2303466796875, - 575.4066162109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 564.4066772460938, - 289.2303466796875, - 575.4066162109375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The families Oscillatoriaceae, Naviculaceae, Cym-", - "origin": [ - 72.12537384033203, - 655.55126953125 - ], - "bbox": [ - 72.12537384033203, - 579.1465454101562, - 298.8883056640625, - 590.146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.12537384033203, - 579.1465454101562, - 298.8883056640625, - 590.146484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "bellaceae and the genera", - "origin": [ - 57.94651794433594, - 666.7601928710938 - ], - "bbox": [ - 57.94651794433594, - 590.35546875, - 163.93055725097656, - 601.3553466796875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Nitzschia", - "origin": [ - 163.93055725097656, - 666.7601928710938 - ], - "bbox": [ - 163.93055725097656, - 658.3125, - 207.05015563964844, - 669.3123779296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 207.0941619873047, - 666.7601928710938 - ], - "bbox": [ - 207.0941619873047, - 590.35546875, - 209.84413146972656, - 601.3553466796875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Navicula", - "origin": [ - 209.84413146972656, - 666.7601928710938 - ], - "bbox": [ - 209.84413146972656, - 658.3125, - 251.72076416015625, - 669.3123779296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 251.79776000976562, - 666.7601928710938 - ], - "bbox": [ - 251.79776000976562, - 590.35546875, - 254.5477294921875, - 601.3553466796875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Cymbella", - "origin": [ - 254.5477294921875, - 666.7601928710938 - ], - "bbox": [ - 254.5477294921875, - 658.3125, - 298.8663024902344, - 669.3123779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.94651794433594, - 590.35546875, - 298.8663024902344, - 669.3123779296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "are most diverse (Tables 1, 2). The species of diatoms", - "origin": [ - 57.95750427246094, - 677.9580688476562 - ], - "bbox": [ - 57.95750427246094, - 601.5533447265625, - 298.9322814941406, - 612.55322265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 601.5533447265625, - 298.9322814941406, - 612.55322265625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "such as", - "origin": [ - 57.95750427246094, - 689.156005859375 - ], - "bbox": [ - 57.95750427246094, - 612.7512817382812, - 89.36221313476562, - 623.751220703125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Synedra vaucheriae", - "origin": [ - 89.36221313476562, - 689.156005859375 - ], - "bbox": [ - 89.36221313476562, - 680.7083129882812, - 178.4284210205078, - 691.7081909179688 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " K", - "origin": [ - 178.4284210205078, - 689.156005859375 - ], - "bbox": [ - 178.4284210205078, - 612.7512817382812, - 188.4822998046875, - 623.751220703125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 188.16329956054688, - 688.4630126953125 - ], - "bbox": [ - 188.16329956054688, - 620.6121826171875, - 194.2638397216797, - 631.612060546875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz.,", - "origin": [ - 188.47129821777344, - 689.177978515625 - ], - "bbox": [ - 188.47129821777344, - 612.7512817382812, - 207.31411743164062, - 623.773193359375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " S. pulchella", - "origin": [ - 207.31411743164062, - 689.156005859375 - ], - "bbox": [ - 207.31411743164062, - 680.7083129882812, - 260.66363525390625, - 691.7081909179688 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " var.", - "origin": [ - 260.66363525390625, - 689.156005859375 - ], - "bbox": [ - 260.66363525390625, - 612.7512817382812, - 279.04443359375, - 623.751220703125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " pul-", - "origin": [ - 279.04443359375, - 689.156005859375 - ], - "bbox": [ - 279.04443359375, - 680.7083129882812, - 298.8992919921875, - 691.7081909179688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 612.7512817382812, - 298.8992919921875, - 691.7081909179688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "chella", - "origin": [ - 57.95750427246094, - 700.3648681640625 - ], - "bbox": [ - 57.95750427246094, - 691.9171752929688, - 84.84126281738281, - 702.9170532226562 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Ralfs) K", - "origin": [ - 84.84126281738281, - 700.3648681640625 - ], - "bbox": [ - 84.84126281738281, - 623.9601440429688, - 132.12982177734375, - 634.9600830078125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 131.8218231201172, - 699.671875 - ], - "bbox": [ - 131.8218231201172, - 631.821044921875, - 137.92236328125, - 642.8209228515625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. et var.", - "origin": [ - 132.12982177734375, - 700.3869018554688 - ], - "bbox": [ - 132.12982177734375, - 623.9601440429688, - 181.14537048339844, - 634.9820556640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " lacerate", - "origin": [ - 181.14537048339844, - 700.3648681640625 - ], - "bbox": [ - 181.14537048339844, - 691.9171752929688, - 221.59201049804688, - 702.9170532226562 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Hust.,", - "origin": [ - 221.59201049804688, - 700.3648681640625 - ], - "bbox": [ - 221.59201049804688, - 623.9601440429688, - 252.27072143554688, - 634.9600830078125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Cymbella", - "origin": [ - 252.27072143554688, - 700.3648681640625 - ], - "bbox": [ - 252.27072143554688, - 691.9171752929688, - 298.8663024902344, - 702.9170532226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 623.9601440429688, - 298.8663024902344, - 702.9170532226562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "cistula", - "origin": [ - 57.95750427246094, - 711.5628051757812 - ], - "bbox": [ - 57.95750427246094, - 703.1151123046875, - 87.29424285888672, - 714.114990234375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Hempr.) Grun.,", - "origin": [ - 87.29424285888672, - 711.5628051757812 - ], - "bbox": [ - 87.29424285888672, - 635.1580810546875, - 160.2455596923828, - 646.157958984375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " C. ventricosa", - "origin": [ - 160.2455596923828, - 711.5628051757812 - ], - "bbox": [ - 160.2455596923828, - 703.1151123046875, - 221.0750274658203, - 714.114990234375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Ag.) K", - "origin": [ - 221.0750274658203, - 711.5628051757812 - ], - "bbox": [ - 221.0750274658203, - 635.1580810546875, - 257.4296875, - 646.157958984375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 257.1106872558594, - 710.8698120117188 - ], - "bbox": [ - 257.1106872558594, - 643.0189819335938, - 263.21124267578125, - 654.0188598632812 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz.,", - "origin": [ - 257.4186706542969, - 711.5847778320312 - ], - "bbox": [ - 257.4186706542969, - 635.1580810546875, - 276.261474609375, - 646.179931640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Dia-", - "origin": [ - 276.261474609375, - 711.5628051757812 - ], - "bbox": [ - 276.261474609375, - 703.1040649414062, - 298.8882751464844, - 714.114990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 635.1580810546875, - 298.8882751464844, - 714.114990234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "toma hiemale", - "origin": [ - 57.94648742675781, - 722.7606811523438 - ], - "bbox": [ - 57.94648742675781, - 714.31298828125, - 116.98294830322266, - 725.3128662109375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " var.", - "origin": [ - 116.98294830322266, - 722.7606811523438 - ], - "bbox": [ - 116.98294830322266, - 646.35595703125, - 135.38577270507812, - 657.3558349609375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " mesodon", - "origin": [ - 135.38577270507812, - 722.7606811523438 - ], - "bbox": [ - 135.38577270507812, - 714.31298828125, - 176.6574249267578, - 725.3128662109375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Ehr.) Grun.,", - "origin": [ - 176.6574249267578, - 722.7606811523438 - ], - "bbox": [ - 176.6574249267578, - 646.35595703125, - 234.58287048339844, - 657.3558349609375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Gomphonema", - "origin": [ - 234.58287048339844, - 722.7606811523438 - ], - "bbox": [ - 234.58287048339844, - 714.31298828125, - 298.5362548828125, - 725.3128662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.94648742675781, - 646.35595703125, - 298.5362548828125, - 725.3128662109375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 313.0451965332031, - -8.578117370605469, - 554.063720703125, - 206.07302856445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "olivaceum", - "origin": [ - 313.06719970703125, - 67.82666015625 - ], - "bbox": [ - 313.06719970703125, - 59.37894058227539, - 358.2767333984375, - 70.37883758544922 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Lyngb.) K", - "origin": [ - 358.2767333984375, - 67.82666015625 - ], - "bbox": [ - 358.2767333984375, - -8.578056335449219, - 408.6122741699219, - 2.421844482421875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 408.2823181152344, - 67.1446533203125 - ], - "bbox": [ - 408.2823181152344, - -0.7061920166015625, - 414.38287353515625, - 10.293704986572266 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz., and", - "origin": [ - 408.5903015136719, - 67.859619140625 - ], - "bbox": [ - 408.5903015136719, - -8.578117370605469, - 445.31890869140625, - 2.454803466796875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Achnanthes minutissima", - "origin": [ - 445.31890869140625, - 67.82659912109375 - ], - "bbox": [ - 445.31890869140625, - 59.37887954711914, - 553.9210205078125, - 70.37877655029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06719970703125, - -8.578117370605469, - 553.9210205078125, - 70.37883758544922 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "K", - "origin": [ - 313.06719970703125, - 79.02447509765625 - ], - "bbox": [ - 313.06719970703125, - 2.6197586059570312, - 321.0091247558594, - 13.619659423828125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 320.69012451171875, - 78.34246826171875 - ], - "bbox": [ - 320.69012451171875, - 10.491622924804688, - 326.7906799316406, - 21.491519927978516 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. in various ratios form the dominating (in cell", - "origin": [ - 320.99810791015625, - 79.05743408203125 - ], - "bbox": [ - 320.99810791015625, - 2.6196975708007812, - 554.0088500976562, - 13.652618408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06719970703125, - 2.6196975708007812, - 554.0088500976562, - 21.491519927978516 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "densities) complex in all areas of the lake studied at dif-", - "origin": [ - 313.0561828613281, - 90.2222900390625 - ], - "bbox": [ - 313.0561828613281, - 13.817573547363281, - 553.9979858398438, - 24.828460693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0561828613281, - 13.817573547363281, - 553.9979858398438, - 24.828460693359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ferent times. No constantly occurring species of", - "origin": [ - 313.05621337890625, - 101.43115234375 - ], - "bbox": [ - 313.05621337890625, - 25.02643585205078, - 553.9539794921875, - 36.026336669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.05621337890625, - 25.02643585205078, - 553.9539794921875, - 36.026336669921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "blue-green and green algae have been revealed except", - "origin": [ - 313.05621337890625, - 112.6290283203125 - ], - "bbox": [ - 313.05621337890625, - 36.22431182861328, - 553.9647216796875, - 47.224212646484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.05621337890625, - 36.22431182861328, - 553.9647216796875, - 47.224212646484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "for", - "origin": [ - 313.05621337890625, - 123.826904296875 - ], - "bbox": [ - 313.05621337890625, - 47.42218780517578, - 325.882080078125, - 58.422088623046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Ulothrix zonata", - "origin": [ - 325.882080078125, - 123.826904296875 - ], - "bbox": [ - 325.882080078125, - 115.37918853759766, - 398.525390625, - 126.37908172607422 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Web. et Mohr.) K", - "origin": [ - 398.525390625, - 123.826904296875 - ], - "bbox": [ - 398.525390625, - 47.42218780517578, - 483.0815734863281, - 58.422088623046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 482.7626647949219, - 123.1448974609375 - ], - "bbox": [ - 482.7626647949219, - 55.29405212402344, - 488.86322021484375, - 66.2939453125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. The species", - "origin": [ - 483.0706481933594, - 123.85986328125 - ], - "bbox": [ - 483.0706481933594, - 47.42212677001953, - 554.02001953125, - 58.455047607421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.05621337890625, - 47.42212677001953, - 554.02001953125, - 126.37908172607422 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "is found in many open areas of the lake along the water", - "origin": [ - 313.0451965332031, - 135.02471923828125 - ], - "bbox": [ - 313.0451965332031, - 58.62000274658203, - 553.9978637695312, - 69.61990356445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0451965332031, - 58.62000274658203, - 553.9978637695312, - 69.61990356445312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "edge.", - "origin": [ - 313.0451965332031, - 146.22259521484375 - ], - "bbox": [ - 313.0451965332031, - 69.81787872314453, - 336.56292724609375, - 80.81777954101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0451965332031, - 69.81787872314453, - 336.56292724609375, - 80.81777954101562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The biomass shows the tendency to increase as the", - "origin": [ - 327.21307373046875, - 159.4224853515625 - ], - "bbox": [ - 327.21307373046875, - 83.01776885986328, - 553.953857421875, - 94.01766967773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.21307373046875, - 83.01776885986328, - 553.953857421875, - 94.01766967773438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "depth grows. Thus, an average value of the biomass of", - "origin": [ - 313.0451965332031, - 170.620361328125 - ], - "bbox": [ - 313.0451965332031, - 94.21564483642578, - 553.9426879882812, - 105.21554565429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0451965332031, - 94.21564483642578, - 553.9426879882812, - 105.21554565429688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the algae in epilithon in July 1998 at a depth of 0.5 m", - "origin": [ - 313.0451965332031, - 181.8182373046875 - ], - "bbox": [ - 313.0451965332031, - 105.41352081298828, - 554.063720703125, - 116.41342163085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0451965332031, - 105.41352081298828, - 554.063720703125, - 116.41342163085938 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "was 3.21, and at a depth of 1.5 m—42.6 g/m", - "origin": [ - 313.0451965332031, - 193.01611328125 - ], - "bbox": [ - 313.0451965332031, - 116.61139678955078, - 512.0991821289062, - 127.61129760742188 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 512.118408203125, - 188.10968017578125 - ], - "bbox": [ - 512.118408203125, - 138.4461669921875, - 515.6934204101562, - 145.59616088867188 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ". The in-", - "origin": [ - 515.7235107421875, - 193.09271240234375 - ], - "bbox": [ - 515.7235107421875, - 116.68799591064453, - 554.025146484375, - 127.68789672851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0451965332031, - 116.61139678955078, - 554.025146484375, - 145.59616088867188 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "crease of the quantitative parameters of the algocenoses", - "origin": [ - 313.0943603515625, - 204.29058837890625 - ], - "bbox": [ - 313.0943603515625, - 127.88587188720703, - 553.8050537109375, - 138.88577270507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 127.88587188720703, - 553.8050537109375, - 138.88577270507812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of periphyton and benthos as the distance to the water", - "origin": [ - 313.0943603515625, - 215.48846435546875 - ], - "bbox": [ - 313.0943603515625, - 139.083740234375, - 554.0470581054688, - 150.08364868164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 139.083740234375, - 554.0470581054688, - 150.08364868164062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "edge grows bigger has been noted in other lakes with", - "origin": [ - 313.0943603515625, - 226.68634033203125 - ], - "bbox": [ - 313.0943603515625, - 150.2816162109375, - 553.9920043945312, - 161.28152465820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 150.2816162109375, - 553.9920043945312, - 161.28152465820312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "developed wave-cut process [17–24]. The character of", - "origin": [ - 313.0943603515625, - 237.88421630859375 - ], - "bbox": [ - 313.0943603515625, - 161.4794921875, - 554.0028686523438, - 172.47940063476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 161.4794921875, - 554.0028686523438, - 172.47940063476562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the curve of distribution of the quantitative characteris-", - "origin": [ - 313.0943603515625, - 249.08209228515625 - ], - "bbox": [ - 313.0943603515625, - 172.6773681640625, - 554.0361328125, - 183.67727661132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 172.6773681640625, - 554.0361328125, - 183.67727661132812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tics of the benthos algae over the depth is similar to that", - "origin": [ - 313.0943603515625, - 260.27996826171875 - ], - "bbox": [ - 313.0943603515625, - 183.875244140625, - 553.9921264648438, - 194.87515258789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 183.875244140625, - 553.9921264648438, - 194.87515258789062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "revealed by V. N. Nikulina [25] for periphyton of Lake", - "origin": [ - 313.0943603515625, - 271.47784423828125 - ], - "bbox": [ - 313.0943603515625, - 195.0731201171875, - 554.0249633789062, - 206.07302856445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 195.0731201171875, - 554.0249633789062, - 206.07302856445312 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 269.92181396484375, - 748.1763916015625 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 313.08660888671875, - 648.43310546875, - 554.0319213867188, - 713.0096435546875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Fig. 1.", - "origin": [ - 313.08660888671875, - 710.9548950195312 - ], - "bbox": [ - 313.08660888671875, - 704.009765625, - 338.2052917480469, - 713.0096435546875 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Taxonomic structure of phytoperiphyton on various sub-", - "origin": [ - 338.2052917480469, - 710.9548950195312 - ], - "bbox": [ - 338.2052917480469, - 648.43310546875, - 554.0319213867188, - 657.4419555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08660888671875, - 648.43310546875, - 554.0319213867188, - 713.0096435546875 - ] - }, - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "strates in Lake Teletskoye.", - "origin": [ - 313.09564208984375, - 720.15283203125 - ], - "bbox": [ - 313.09564208984375, - 657.6400146484375, - 409.574462890625, - 666.639892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09564208984375, - 657.6400146484375, - 409.574462890625, - 666.639892578125 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ], - "tag": "on-image" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 57.96849060058594, - -8.511833190917969, - 298.97625732421875, - 483.4364929199219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "233 samples of phytoepilithon, 22 samples of phytoepi-", - "origin": [ - 57.96849822998047, - 67.89288330078125 - ], - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.9102783203125, - 2.499053955078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.9102783203125, - 2.499053955078125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "phyton, and 8 samples of algae from plant residues was", - "origin": [ - 57.96849060058594, - 79.10174560546875 - ], - "bbox": [ - 57.96849060058594, - 2.6970291137695312, - 298.9432678222656, - 13.696929931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 2.6970291137695312, - 298.9432678222656, - 13.696929931640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "analyzed.", - "origin": [ - 57.96849060058594, - 90.29962158203125 - ], - "bbox": [ - 57.96849060058594, - 13.894905090332031, - 99.8121109008789, - 24.894805908203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 13.894905090332031, - 99.8121109008789, - 24.894805908203125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The samples of the algae from different substrates", - "origin": [ - 72.13636016845703, - 105.03948974609375 - ], - "bbox": [ - 72.13636016845703, - 28.63477325439453, - 298.87725830078125, - 39.634674072265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13636016845703, - 28.63477325439453, - 298.87725830078125, - 39.634674072265625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "were taken by standard methods [9]. Phytoepilithon", - "origin": [ - 57.96849060058594, - 116.23736572265625 - ], - "bbox": [ - 57.96849060058594, - 39.83264923095703, - 298.602294921875, - 50.832550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 39.83264923095703, - 298.602294921875, - 50.832550048828125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "was washed off the rocks (0.15–0.2 m in diameter), the", - "origin": [ - 57.96849060058594, - 127.43524169921875 - ], - "bbox": [ - 57.96849060058594, - 51.03052520751953, - 298.8882751464844, - 62.030426025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 51.03052520751953, - 298.8882751464844, - 62.030426025390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algae cover on which was the most typical of the given", - "origin": [ - 57.96849060058594, - 138.63311767578125 - ], - "bbox": [ - 57.96849060058594, - 62.22840118408203, - 298.822265625, - 73.22830200195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 62.22840118408203, - 298.822265625, - 73.22830200195312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "area of the lake. The algae were separated from the sub-", - "origin": [ - 57.96849060058594, - 149.83099365234375 - ], - "bbox": [ - 57.96849060058594, - 73.42627716064453, - 298.9102783203125, - 84.42617797851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 73.42627716064453, - 298.9102783203125, - 84.42617797851562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "strate with a hard toothbrush and fixed in 40% formalin.", - "origin": [ - 57.96849060058594, - 161.02886962890625 - ], - "bbox": [ - 57.96849060058594, - 84.62415313720703, - 298.8773193359375, - 95.62405395507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 84.62415313720703, - 298.8773193359375, - 95.62405395507812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepiphyton was collected from the species of", - "origin": [ - 57.96849060058594, - 172.22674560546875 - ], - "bbox": [ - 57.96849060058594, - 95.82202911376953, - 298.8662414550781, - 106.82192993164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 95.82202911376953, - 298.8662414550781, - 106.82192993164062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "higher water plants dominating in the studied area. The", - "origin": [ - 57.96849060058594, - 183.42462158203125 - ], - "bbox": [ - 57.96849060058594, - 107.01990509033203, - 298.8772277832031, - 118.01980590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 107.01990509033203, - 298.8772277832031, - 118.01980590820312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "plant was covered with a plastic bag and taken out of", - "origin": [ - 57.96849060058594, - 194.62249755859375 - ], - "bbox": [ - 57.96849060058594, - 118.21778106689453, - 298.87725830078125, - 129.21768188476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 118.21778106689453, - 298.87725830078125, - 129.21768188476562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water. The bag’s contents were transferred into a deep", - "origin": [ - 57.96849060058594, - 205.82037353515625 - ], - "bbox": [ - 57.96849060058594, - 129.4156494140625, - 298.87176513671875, - 140.41555786132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 129.4156494140625, - 298.87176513671875, - 140.41555786132812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dish, where the algae were washed off the macrophyte", - "origin": [ - 57.96849060058594, - 217.01824951171875 - ], - "bbox": [ - 57.96849060058594, - 140.613525390625, - 298.84423828125, - 151.61343383789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 140.613525390625, - 298.84423828125, - 151.61343383789062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "with a wide brush, mixed, and a part of the suspension", - "origin": [ - 57.96849060058594, - 228.21612548828125 - ], - "bbox": [ - 57.96849060058594, - 151.8114013671875, - 298.78924560546875, - 162.81130981445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 151.8114013671875, - 298.78924560546875, - 162.81130981445312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "was fixed in 40% formalin [4]. The area of wide leaves", - "origin": [ - 57.96849060058594, - 239.41400146484375 - ], - "bbox": [ - 57.96849060058594, - 163.00927734375, - 298.91021728515625, - 174.00918579101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 163.00927734375, - 298.91021728515625, - 174.00918579101562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of the macrophytes was determined by their contour on", - "origin": [ - 57.96849060058594, - 250.61187744140625 - ], - "bbox": [ - 57.96849060058594, - 174.2071533203125, - 298.8332214355469, - 185.20706176757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 174.2071533203125, - 298.8332214355469, - 185.20706176757812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "paper, the area of horse-tail stems and leaves was", - "origin": [ - 57.96849060058594, - 261.80975341796875 - ], - "bbox": [ - 57.96849060058594, - 185.405029296875, - 298.9432678222656, - 196.40493774414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 185.405029296875, - 298.9432678222656, - 196.40493774414062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "calculated like that of a cylinder.", - "origin": [ - 57.96849060058594, - 273.00762939453125 - ], - "bbox": [ - 57.96849060058594, - 196.6029052734375, - 201.84718322753906, - 207.60281372070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 196.6029052734375, - 201.84718322753906, - 207.60281372070312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The dynamics of the change in the structure of the", - "origin": [ - 72.13636016845703, - 287.74749755859375 - ], - "bbox": [ - 72.13636016845703, - 211.3427734375, - 298.8552551269531, - 222.34268188476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13636016845703, - 211.3427734375, - 298.8552551269531, - 222.34268188476562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algocenoses on the plant residues was studied as the cut", - "origin": [ - 57.96849060058594, - 298.9454040527344 - ], - "bbox": [ - 57.96849060058594, - 222.54067993164062, - 298.8772277832031, - 233.54058837890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 222.54067993164062, - 298.8772277832031, - 233.54058837890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "plants of pondweed, horse-tail and the birch leaves", - "origin": [ - 57.96849060058594, - 310.143310546875 - ], - "bbox": [ - 57.96849060058594, - 233.73858642578125, - 298.9212341308594, - 244.73849487304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 233.73858642578125, - 298.9212341308594, - 244.73849487304688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "fallen into water were placed separately into the mesh", - "origin": [ - 57.96849060058594, - 321.3412170410156 - ], - "bbox": [ - 57.96849060058594, - 244.93649291992188, - 298.97625732421875, - 255.9364013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 244.93649291992188, - 298.97625732421875, - 255.9364013671875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "nets. The experiment was conducted in July, 2006. In", - "origin": [ - 57.96849060058594, - 332.53912353515625 - ], - "bbox": [ - 57.96849060058594, - 256.1343994140625, - 298.8772888183594, - 267.1343078613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 256.1343994140625, - 298.8772888183594, - 267.1343078613281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "1.5 (August) and 3.5 (October) months the nets with", - "origin": [ - 57.96849060058594, - 343.7370300292969 - ], - "bbox": [ - 57.96849060058594, - 267.3323059082031, - 298.8772888183594, - 278.33221435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 267.3323059082031, - 298.8772888183594, - 278.33221435546875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "plant residues were lifted from the water and washed in", - "origin": [ - 57.96849060058594, - 354.9349365234375 - ], - "bbox": [ - 57.96849060058594, - 278.53021240234375, - 298.87725830078125, - 289.5301208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 278.53021240234375, - 298.87725830078125, - 289.5301208496094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "a dish. Part of the suspension was taken for determining", - "origin": [ - 57.96849060058594, - 366.1328430175781 - ], - "bbox": [ - 57.96849060058594, - 289.7281188964844, - 298.7012939453125, - 300.72802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 289.7281188964844, - 298.7012939453125, - 300.72802734375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the taxonomic attribution and quantitative calculations.", - "origin": [ - 57.96849060058594, - 377.33074951171875 - ], - "bbox": [ - 57.96849060058594, - 300.926025390625, - 298.8442687988281, - 311.9259338378906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 300.926025390625, - 298.8442687988281, - 311.9259338378906 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The number of the algae was calculated for 1 g of dry", - "origin": [ - 57.96849060058594, - 388.5286560058594 - ], - "bbox": [ - 57.96849060058594, - 312.1239318847656, - 298.77825927734375, - 323.12384033203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 312.1239318847656, - 298.77825927734375, - 323.12384033203125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "initial mass of the cut macrophytes.", - "origin": [ - 57.96849060058594, - 399.7265625 - ], - "bbox": [ - 57.96849060058594, - 323.32183837890625, - 214.39808654785156, - 334.3217468261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 323.32183837890625, - 214.39808654785156, - 334.3217468261719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The biomass of the algae was calculated with vol-", - "origin": [ - 72.13636016845703, - 414.4664306640625 - ], - "bbox": [ - 72.13636016845703, - 338.06170654296875, - 298.8883361816406, - 349.0616149902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13636016845703, - 338.06170654296875, - 298.8883361816406, - 349.0616149902344 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ume-counting method [9]. The coefficient of recalcula-", - "origin": [ - 57.96849060058594, - 425.6643371582031 - ], - "bbox": [ - 57.96849060058594, - 349.2596130371094, - 298.9322509765625, - 360.259521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 349.2596130371094, - 298.9322509765625, - 360.259521484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion of the wet mass of the algae into dry mass is 20%", - "origin": [ - 57.96849060058594, - 436.86224365234375 - ], - "bbox": [ - 57.96849060058594, - 360.45751953125, - 298.84429931640625, - 371.4574279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 360.45751953125, - 298.84429931640625, - 371.4574279785156 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[10]. The taxonomic attribution of the algae was deter-", - "origin": [ - 57.96849060058594, - 448.0601501464844 - ], - "bbox": [ - 57.96849060058594, - 371.6554260253906, - 298.9102478027344, - 382.65533447265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 371.6554260253906, - 298.9102478027344, - 382.65533447265625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "mined under the light microscope with 600 and 1500", - "origin": [ - 57.96849060058594, - 459.258056640625 - ], - "bbox": [ - 57.96849060058594, - 382.85333251953125, - 298.7892150878906, - 393.8532409667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 382.85333251953125, - 298.7892150878906, - 393.8532409667969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "magnification, using the guides from the series “Guide", - "origin": [ - 57.96849060058594, - 470.4559631347656 - ], - "bbox": [ - 57.96849060058594, - 394.0512390136719, - 298.87725830078125, - 405.0511474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 394.0512390136719, - 298.87725830078125, - 405.0511474609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "to fresh-water algae of the USSR” (in Russian), “Guide", - "origin": [ - 57.96849060058594, - 481.65386962890625 - ], - "bbox": [ - 57.96849060058594, - 405.2491455078125, - 298.8662414550781, - 416.2490539550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 405.2491455078125, - 298.8662414550781, - 416.2490539550781 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "to fresh-water algae of Ukranian SSR” (in Ukranian),", - "origin": [ - 57.96849060058594, - 492.8517761230469 - ], - "bbox": [ - 57.96849060058594, - 416.4470520019531, - 298.8222351074219, - 427.44696044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 416.4470520019531, - 298.8222351074219, - 427.44696044921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "“Flora", - "origin": [ - 57.96849060058594, - 504.0496826171875 - ], - "bbox": [ - 57.96849060058594, - 427.64495849609375, - 86.07323455810547, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 427.64495849609375, - 86.07323455810547, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "slodkowodna", - "origin": [ - 95.379150390625, - 504.0496826171875 - ], - "bbox": [ - 95.379150390625, - 427.64495849609375, - 154.0416259765625, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.379150390625, - 427.64495849609375, - 154.0416259765625, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Polski”", - "origin": [ - 163.51254272460938, - 504.0496826171875 - ], - "bbox": [ - 163.51254272460938, - 427.64495849609375, - 195.90725708007812, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.51254272460938, - 427.64495849609375, - 195.90725708007812, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(in", - "origin": [ - 205.25717163085938, - 504.0496826171875 - ], - "bbox": [ - 205.25717163085938, - 427.64495849609375, - 217.47805786132812, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.25717163085938, - 427.64495849609375, - 217.47805786132812, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Polish),", - "origin": [ - 226.80596923828125, - 504.0496826171875 - ], - "bbox": [ - 226.80596923828125, - 427.64495849609375, - 260.72967529296875, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 226.80596923828125, - 427.64495849609375, - 260.72967529296875, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "guides", - "origin": [ - 270.1125793457031, - 504.0496826171875 - ], - "bbox": [ - 270.1125793457031, - 427.64495849609375, - 298.8332824707031, - 438.6448669433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.1125793457031, - 427.64495849609375, - 298.8332824707031, - 438.6448669433594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "“Fresh-water diatoms and blue-green algae in the water", - "origin": [ - 57.96849060058594, - 515.24755859375 - ], - "bbox": [ - 57.96849060058594, - 438.84283447265625, - 298.9212646484375, - 449.8427429199219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 438.84283447265625, - 298.9212646484375, - 449.8427429199219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "bodies in Yakutia” [11] and Central Asia [12, 13]. For", - "origin": [ - 57.96849060058594, - 526.4454956054688 - ], - "bbox": [ - 57.96849060058594, - 450.040771484375, - 298.84423828125, - 461.0406799316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 450.040771484375, - 298.84423828125, - 461.0406799316406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "determining the ecological characteristics of the algae", - "origin": [ - 57.96849060058594, - 537.6433715820312 - ], - "bbox": [ - 57.96849060058594, - 461.2386474609375, - 298.89923095703125, - 472.2385559082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 461.2386474609375, - 298.89923095703125, - 472.2385559082031 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "we used the data from the works [14–16].", - "origin": [ - 57.96849060058594, - 548.84130859375 - ], - "bbox": [ - 57.96849060058594, - 472.43658447265625, - 241.2598114013672, - 483.4364929199219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 472.43658447265625, - 241.2598114013672, - 483.4364929199219 - ] - } - ], - "tag": "header" - }, - { - "number": 3, - "type": 0, - "bbox": [ - 313.0451965332031, - -8.578117370605469, - 554.063720703125, - 206.07302856445312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "olivaceum", - "origin": [ - 313.06719970703125, - 67.82666015625 - ], - "bbox": [ - 313.06719970703125, - 59.37894058227539, - 358.2767333984375, - 70.37883758544922 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Lyngb.) K", - "origin": [ - 358.2767333984375, - 67.82666015625 - ], - "bbox": [ - 358.2767333984375, - -8.578056335449219, - 408.6122741699219, - 2.421844482421875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 408.2823181152344, - 67.1446533203125 - ], - "bbox": [ - 408.2823181152344, - -0.7061920166015625, - 414.38287353515625, - 10.293704986572266 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz., and", - "origin": [ - 408.5903015136719, - 67.859619140625 - ], - "bbox": [ - 408.5903015136719, - -8.578117370605469, - 445.31890869140625, - 2.454803466796875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Achnanthes minutissima", - "origin": [ - 445.31890869140625, - 67.82659912109375 - ], - "bbox": [ - 445.31890869140625, - 59.37887954711914, - 553.9210205078125, - 70.37877655029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06719970703125, - -8.578117370605469, - 553.9210205078125, - 70.37883758544922 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "K", - "origin": [ - 313.06719970703125, - 79.02447509765625 - ], - "bbox": [ - 313.06719970703125, - 2.6197586059570312, - 321.0091247558594, - 13.619659423828125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 320.69012451171875, - 78.34246826171875 - ], - "bbox": [ - 320.69012451171875, - 10.491622924804688, - 326.7906799316406, - 21.491519927978516 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. in various ratios form the dominating (in cell", - "origin": [ - 320.99810791015625, - 79.05743408203125 - ], - "bbox": [ - 320.99810791015625, - 2.6196975708007812, - 554.0088500976562, - 13.652618408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06719970703125, - 2.6196975708007812, - 554.0088500976562, - 21.491519927978516 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "densities) complex in all areas of the lake studied at dif-", - "origin": [ - 313.0561828613281, - 90.2222900390625 - ], - "bbox": [ - 313.0561828613281, - 13.817573547363281, - 553.9979858398438, - 24.828460693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0561828613281, - 13.817573547363281, - 553.9979858398438, - 24.828460693359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ferent times. No constantly occurring species of", - "origin": [ - 313.05621337890625, - 101.43115234375 - ], - "bbox": [ - 313.05621337890625, - 25.02643585205078, - 553.9539794921875, - 36.026336669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.05621337890625, - 25.02643585205078, - 553.9539794921875, - 36.026336669921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "blue-green and green algae have been revealed except", - "origin": [ - 313.05621337890625, - 112.6290283203125 - ], - "bbox": [ - 313.05621337890625, - 36.22431182861328, - 553.9647216796875, - 47.224212646484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.05621337890625, - 36.22431182861328, - 553.9647216796875, - 47.224212646484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "for", - "origin": [ - 313.05621337890625, - 123.826904296875 - ], - "bbox": [ - 313.05621337890625, - 47.42218780517578, - 325.882080078125, - 58.422088623046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Ulothrix zonata", - "origin": [ - 325.882080078125, - 123.826904296875 - ], - "bbox": [ - 325.882080078125, - 115.37918853759766, - 398.525390625, - 126.37908172607422 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Web. et Mohr.) K", - "origin": [ - 398.525390625, - 123.826904296875 - ], - "bbox": [ - 398.525390625, - 47.42218780517578, - 483.0815734863281, - 58.422088623046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 482.7626647949219, - 123.1448974609375 - ], - "bbox": [ - 482.7626647949219, - 55.29405212402344, - 488.86322021484375, - 66.2939453125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. The species", - "origin": [ - 483.0706481933594, - 123.85986328125 - ], - "bbox": [ - 483.0706481933594, - 47.42212677001953, - 554.02001953125, - 58.455047607421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.05621337890625, - 47.42212677001953, - 554.02001953125, - 126.37908172607422 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "is found in many open areas of the lake along the water", - "origin": [ - 313.0451965332031, - 135.02471923828125 - ], - "bbox": [ - 313.0451965332031, - 58.62000274658203, - 553.9978637695312, - 69.61990356445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0451965332031, - 58.62000274658203, - 553.9978637695312, - 69.61990356445312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "edge.", - "origin": [ - 313.0451965332031, - 146.22259521484375 - ], - "bbox": [ - 313.0451965332031, - 69.81787872314453, - 336.56292724609375, - 80.81777954101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0451965332031, - 69.81787872314453, - 336.56292724609375, - 80.81777954101562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The biomass shows the tendency to increase as the", - "origin": [ - 327.21307373046875, - 159.4224853515625 - ], - "bbox": [ - 327.21307373046875, - 83.01776885986328, - 553.953857421875, - 94.01766967773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.21307373046875, - 83.01776885986328, - 553.953857421875, - 94.01766967773438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "depth grows. Thus, an average value of the biomass of", - "origin": [ - 313.0451965332031, - 170.620361328125 - ], - "bbox": [ - 313.0451965332031, - 94.21564483642578, - 553.9426879882812, - 105.21554565429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0451965332031, - 94.21564483642578, - 553.9426879882812, - 105.21554565429688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the algae in epilithon in July 1998 at a depth of 0.5 m", - "origin": [ - 313.0451965332031, - 181.8182373046875 - ], - "bbox": [ - 313.0451965332031, - 105.41352081298828, - 554.063720703125, - 116.41342163085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0451965332031, - 105.41352081298828, - 554.063720703125, - 116.41342163085938 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "was 3.21, and at a depth of 1.5 m—42.6 g/m", - "origin": [ - 313.0451965332031, - 193.01611328125 - ], - "bbox": [ - 313.0451965332031, - 116.61139678955078, - 512.0991821289062, - 127.61129760742188 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 512.118408203125, - 188.10968017578125 - ], - "bbox": [ - 512.118408203125, - 138.4461669921875, - 515.6934204101562, - 145.59616088867188 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ". The in-", - "origin": [ - 515.7235107421875, - 193.09271240234375 - ], - "bbox": [ - 515.7235107421875, - 116.68799591064453, - 554.025146484375, - 127.68789672851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0451965332031, - 116.61139678955078, - 554.025146484375, - 145.59616088867188 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "crease of the quantitative parameters of the algocenoses", - "origin": [ - 313.0943603515625, - 204.29058837890625 - ], - "bbox": [ - 313.0943603515625, - 127.88587188720703, - 553.8050537109375, - 138.88577270507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 127.88587188720703, - 553.8050537109375, - 138.88577270507812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of periphyton and benthos as the distance to the water", - "origin": [ - 313.0943603515625, - 215.48846435546875 - ], - "bbox": [ - 313.0943603515625, - 139.083740234375, - 554.0470581054688, - 150.08364868164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 139.083740234375, - 554.0470581054688, - 150.08364868164062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "edge grows bigger has been noted in other lakes with", - "origin": [ - 313.0943603515625, - 226.68634033203125 - ], - "bbox": [ - 313.0943603515625, - 150.2816162109375, - 553.9920043945312, - 161.28152465820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 150.2816162109375, - 553.9920043945312, - 161.28152465820312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "developed wave-cut process [17–24]. The character of", - "origin": [ - 313.0943603515625, - 237.88421630859375 - ], - "bbox": [ - 313.0943603515625, - 161.4794921875, - 554.0028686523438, - 172.47940063476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 161.4794921875, - 554.0028686523438, - 172.47940063476562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the curve of distribution of the quantitative characteris-", - "origin": [ - 313.0943603515625, - 249.08209228515625 - ], - "bbox": [ - 313.0943603515625, - 172.6773681640625, - 554.0361328125, - 183.67727661132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 172.6773681640625, - 554.0361328125, - 183.67727661132812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tics of the benthos algae over the depth is similar to that", - "origin": [ - 313.0943603515625, - 260.27996826171875 - ], - "bbox": [ - 313.0943603515625, - 183.875244140625, - 553.9921264648438, - 194.87515258789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 183.875244140625, - 553.9921264648438, - 194.87515258789062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "revealed by V. N. Nikulina [25] for periphyton of Lake", - "origin": [ - 313.0943603515625, - 271.47784423828125 - ], - "bbox": [ - 313.0943603515625, - 195.0731201171875, - 554.0249633789062, - 206.07302856445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0943603515625, - 195.0731201171875, - 554.0249633789062, - 206.07302856445312 - ] - } - ], - "tag": "header" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 57.94648742675781, - 519.6151123046875, - 298.9322814941406, - 725.3128662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In the", - "origin": [ - 72.13636779785156, - 596.0198364257812 - ], - "bbox": [ - 72.13636779785156, - 519.6151123046875, - 97.72212982177734, - 530.614990234375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " phytoepilithon", - "origin": [ - 97.72212982177734, - 596.0198364257812 - ], - "bbox": [ - 97.72212982177734, - 587.5721435546875, - 164.238525390625, - 598.572021484375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " of Lake Teletskoye to a depth", - "origin": [ - 164.238525390625, - 596.0198364257812 - ], - "bbox": [ - 164.238525390625, - 519.6151123046875, - 298.8112487792969, - 530.614990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13636779785156, - 519.6151123046875, - 298.8112487792969, - 598.572021484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of 1.5 m we revealed 446 species (538 taxa lower than", - "origin": [ - 57.957496643066406, - 607.2177734375 - ], - "bbox": [ - 57.957496643066406, - 530.8130493164062, - 298.84429931640625, - 541.81298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.957496643066406, - 530.8130493164062, - 298.84429931640625, - 541.81298828125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "genus) of algae from 9 sections. The list primarily con-", - "origin": [ - 57.957496643066406, - 618.4156494140625 - ], - "bbox": [ - 57.957496643066406, - 542.0109252929688, - 298.8992919921875, - 553.0108642578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.957496643066406, - 542.0109252929688, - 298.8992919921875, - 553.0108642578125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "sists of Bacillariophyta (42% of species composition),", - "origin": [ - 57.95750427246094, - 629.613525390625 - ], - "bbox": [ - 57.95750427246094, - 553.2088012695312, - 298.80035400390625, - 564.208740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 553.2088012695312, - 298.80035400390625, - 564.208740234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Cyanophyta (30%), and Chlorophyta (20%) (Fig. 1).", - "origin": [ - 57.95750427246094, - 640.8114013671875 - ], - "bbox": [ - 57.95750427246094, - 564.4066772460938, - 289.2303466796875, - 575.4066162109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 564.4066772460938, - 289.2303466796875, - 575.4066162109375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The families Oscillatoriaceae, Naviculaceae, Cym-", - "origin": [ - 72.12537384033203, - 655.55126953125 - ], - "bbox": [ - 72.12537384033203, - 579.1465454101562, - 298.8883056640625, - 590.146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.12537384033203, - 579.1465454101562, - 298.8883056640625, - 590.146484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "bellaceae and the genera", - "origin": [ - 57.94651794433594, - 666.7601928710938 - ], - "bbox": [ - 57.94651794433594, - 590.35546875, - 163.93055725097656, - 601.3553466796875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Nitzschia", - "origin": [ - 163.93055725097656, - 666.7601928710938 - ], - "bbox": [ - 163.93055725097656, - 658.3125, - 207.05015563964844, - 669.3123779296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 207.0941619873047, - 666.7601928710938 - ], - "bbox": [ - 207.0941619873047, - 590.35546875, - 209.84413146972656, - 601.3553466796875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Navicula", - "origin": [ - 209.84413146972656, - 666.7601928710938 - ], - "bbox": [ - 209.84413146972656, - 658.3125, - 251.72076416015625, - 669.3123779296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 251.79776000976562, - 666.7601928710938 - ], - "bbox": [ - 251.79776000976562, - 590.35546875, - 254.5477294921875, - 601.3553466796875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Cymbella", - "origin": [ - 254.5477294921875, - 666.7601928710938 - ], - "bbox": [ - 254.5477294921875, - 658.3125, - 298.8663024902344, - 669.3123779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.94651794433594, - 590.35546875, - 298.8663024902344, - 669.3123779296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "are most diverse (Tables 1, 2). The species of diatoms", - "origin": [ - 57.95750427246094, - 677.9580688476562 - ], - "bbox": [ - 57.95750427246094, - 601.5533447265625, - 298.9322814941406, - 612.55322265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 601.5533447265625, - 298.9322814941406, - 612.55322265625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "such as", - "origin": [ - 57.95750427246094, - 689.156005859375 - ], - "bbox": [ - 57.95750427246094, - 612.7512817382812, - 89.36221313476562, - 623.751220703125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Synedra vaucheriae", - "origin": [ - 89.36221313476562, - 689.156005859375 - ], - "bbox": [ - 89.36221313476562, - 680.7083129882812, - 178.4284210205078, - 691.7081909179688 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " K", - "origin": [ - 178.4284210205078, - 689.156005859375 - ], - "bbox": [ - 178.4284210205078, - 612.7512817382812, - 188.4822998046875, - 623.751220703125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 188.16329956054688, - 688.4630126953125 - ], - "bbox": [ - 188.16329956054688, - 620.6121826171875, - 194.2638397216797, - 631.612060546875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz.,", - "origin": [ - 188.47129821777344, - 689.177978515625 - ], - "bbox": [ - 188.47129821777344, - 612.7512817382812, - 207.31411743164062, - 623.773193359375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " S. pulchella", - "origin": [ - 207.31411743164062, - 689.156005859375 - ], - "bbox": [ - 207.31411743164062, - 680.7083129882812, - 260.66363525390625, - 691.7081909179688 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " var.", - "origin": [ - 260.66363525390625, - 689.156005859375 - ], - "bbox": [ - 260.66363525390625, - 612.7512817382812, - 279.04443359375, - 623.751220703125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " pul-", - "origin": [ - 279.04443359375, - 689.156005859375 - ], - "bbox": [ - 279.04443359375, - 680.7083129882812, - 298.8992919921875, - 691.7081909179688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 612.7512817382812, - 298.8992919921875, - 691.7081909179688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "chella", - "origin": [ - 57.95750427246094, - 700.3648681640625 - ], - "bbox": [ - 57.95750427246094, - 691.9171752929688, - 84.84126281738281, - 702.9170532226562 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Ralfs) K", - "origin": [ - 84.84126281738281, - 700.3648681640625 - ], - "bbox": [ - 84.84126281738281, - 623.9601440429688, - 132.12982177734375, - 634.9600830078125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 131.8218231201172, - 699.671875 - ], - "bbox": [ - 131.8218231201172, - 631.821044921875, - 137.92236328125, - 642.8209228515625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. et var.", - "origin": [ - 132.12982177734375, - 700.3869018554688 - ], - "bbox": [ - 132.12982177734375, - 623.9601440429688, - 181.14537048339844, - 634.9820556640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " lacerate", - "origin": [ - 181.14537048339844, - 700.3648681640625 - ], - "bbox": [ - 181.14537048339844, - 691.9171752929688, - 221.59201049804688, - 702.9170532226562 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Hust.,", - "origin": [ - 221.59201049804688, - 700.3648681640625 - ], - "bbox": [ - 221.59201049804688, - 623.9601440429688, - 252.27072143554688, - 634.9600830078125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Cymbella", - "origin": [ - 252.27072143554688, - 700.3648681640625 - ], - "bbox": [ - 252.27072143554688, - 691.9171752929688, - 298.8663024902344, - 702.9170532226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 623.9601440429688, - 298.8663024902344, - 702.9170532226562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "cistula", - "origin": [ - 57.95750427246094, - 711.5628051757812 - ], - "bbox": [ - 57.95750427246094, - 703.1151123046875, - 87.29424285888672, - 714.114990234375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Hempr.) Grun.,", - "origin": [ - 87.29424285888672, - 711.5628051757812 - ], - "bbox": [ - 87.29424285888672, - 635.1580810546875, - 160.2455596923828, - 646.157958984375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " C. ventricosa", - "origin": [ - 160.2455596923828, - 711.5628051757812 - ], - "bbox": [ - 160.2455596923828, - 703.1151123046875, - 221.0750274658203, - 714.114990234375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Ag.) K", - "origin": [ - 221.0750274658203, - 711.5628051757812 - ], - "bbox": [ - 221.0750274658203, - 635.1580810546875, - 257.4296875, - 646.157958984375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 257.1106872558594, - 710.8698120117188 - ], - "bbox": [ - 257.1106872558594, - 643.0189819335938, - 263.21124267578125, - 654.0188598632812 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz.,", - "origin": [ - 257.4186706542969, - 711.5847778320312 - ], - "bbox": [ - 257.4186706542969, - 635.1580810546875, - 276.261474609375, - 646.179931640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Dia-", - "origin": [ - 276.261474609375, - 711.5628051757812 - ], - "bbox": [ - 276.261474609375, - 703.1040649414062, - 298.8882751464844, - 714.114990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95750427246094, - 635.1580810546875, - 298.8882751464844, - 714.114990234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "toma hiemale", - "origin": [ - 57.94648742675781, - 722.7606811523438 - ], - "bbox": [ - 57.94648742675781, - 714.31298828125, - 116.98294830322266, - 725.3128662109375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " var.", - "origin": [ - 116.98294830322266, - 722.7606811523438 - ], - "bbox": [ - 116.98294830322266, - 646.35595703125, - 135.38577270507812, - 657.3558349609375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " mesodon", - "origin": [ - 135.38577270507812, - 722.7606811523438 - ], - "bbox": [ - 135.38577270507812, - 714.31298828125, - 176.6574249267578, - 725.3128662109375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Ehr.) Grun.,", - "origin": [ - 176.6574249267578, - 722.7606811523438 - ], - "bbox": [ - 176.6574249267578, - 646.35595703125, - 234.58287048339844, - 657.3558349609375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Gomphonema", - "origin": [ - 234.58287048339844, - 722.7606811523438 - ], - "bbox": [ - 234.58287048339844, - 714.31298828125, - 298.5362548828125, - 725.3128662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.94648742675781, - 646.35595703125, - 298.5362548828125, - 725.3128662109375 - ] - } - ], - "tag": "footer" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 269.92181396484375, - 748.1763916015625 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ], - "tag": "footer" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 313.08660888671875, - 648.43310546875, - 554.0319213867188, - 713.0096435546875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Fig. 1.", - "origin": [ - 313.08660888671875, - 710.9548950195312 - ], - "bbox": [ - 313.08660888671875, - 704.009765625, - 338.2052917480469, - 713.0096435546875 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Taxonomic structure of phytoperiphyton on various sub-", - "origin": [ - 338.2052917480469, - 710.9548950195312 - ], - "bbox": [ - 338.2052917480469, - 648.43310546875, - 554.0319213867188, - 657.4419555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08660888671875, - 648.43310546875, - 554.0319213867188, - 713.0096435546875 - ] - }, - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "strates in Lake Teletskoye.", - "origin": [ - 313.09564208984375, - 720.15283203125 - ], - "bbox": [ - 313.09564208984375, - 657.6400146484375, - 409.574462890625, - 666.639892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09564208984375, - 657.6400146484375, - 409.574462890625, - 666.639892578125 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [ - { - "bbox": [ - 325, - 303, - 541, - 686 - ], - "image_path": "images/1_325_303_541_686.jpg", - "tag": "footer" - } - ], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 1, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_2": { - "para_blocks": {}, - "preproc_blocks": [], - "images": [], - "tables": [ - { - "bbox": [ - 57, - -2.3857650756835938, - 555, - 407.41546630859375 - ], - "image_path": "tables/2_57_-2_555_407.jpg" - }, - { - "bbox": [ - 57, - 335.6736145019531, - 555, - 723 - ], - "image_path": "tables/2_57_335_555_723.jpg" - } - ], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 335.6736145019531, - 612.0, - 723 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 72.1417007446289, - 748.1763916015625 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 57.971649169921875, - -2.3857650756835938, - 554.0460815429688, - 69.3560791015625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Table 1.", - "origin": [ - 57.971649169921875, - 67.072998046875 - ], - "bbox": [ - 57.971649169921875, - 59.356178283691406, - 91.84131622314453, - 69.3560791015625 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Composition of dominating families of phytoperiphyton on various substrates in Lake Teletskoye, number of species", - "origin": [ - 91.84131622314453, - 67.072998046875 - ], - "bbox": [ - 91.84131622314453, - -2.3857650756835938, - 554.0460815429688, - 7.614128112792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971649169921875, - -2.3857650756835938, - 554.0460815429688, - 69.3560791015625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(share of species, %)", - "origin": [ - 57.971649169921875, - 77.27288818359375 - ], - "bbox": [ - 57.971649169921875, - 7.814125061035156, - 141.27081298828125, - 17.81401824951172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971649169921875, - 7.814125061035156, - 141.27081298828125, - 17.81401824951172 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 105.91117095947266, - 26.763954162597656, - 539.0265502929688, - 36.76384735107422 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Family", - "origin": [ - 105.91117095947266, - 96.22271728515625 - ], - "bbox": [ - 105.91117095947266, - 26.763954162597656, - 134.2509002685547, - 36.76384735107422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.91117095947266, - 26.763954162597656, - 134.2509002685547, - 36.76384735107422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepilithon", - "origin": [ - 214.5400848388672, - 96.22271728515625 - ], - "bbox": [ - 214.5400848388672, - 26.763954162597656, - 273.4394836425781, - 36.76384735107422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.5400848388672, - 26.763954162597656, - 273.4394836425781, - 36.76384735107422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepiphyton", - "origin": [ - 336.3088684082031, - 96.22271728515625 - ], - "bbox": [ - 336.3088684082031, - 26.763954162597656, - 399.6481018066406, - 36.76384735107422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.3088684082031, - 26.763954162597656, - 399.6481018066406, - 36.76384735107422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Algae on plant residues", - "origin": [ - 444.8776550292969, - 96.22271728515625 - ], - "bbox": [ - 444.8776550292969, - 26.763954162597656, - 539.0265502929688, - 36.76384735107422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.8776550292969, - 26.763954162597656, - 539.0265502929688, - 36.76384735107422 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 64.96157836914062, - 44.463783264160156, - 505.277099609375, - 54.46367645263672 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Oscillatoriaceae", - "origin": [ - 64.96157836914062, - 113.92254638671875 - ], - "bbox": [ - 64.96157836914062, - 44.463783264160156, - 129.38095092773438, - 54.46367645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.96157836914062, - 44.463783264160156, - 129.38095092773438, - 54.46367645263672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "44 (9.9)", - "origin": [ - 228.0699462890625, - 113.92254638671875 - ], - "bbox": [ - 228.0699462890625, - 44.463783264160156, - 259.7296142578125, - 54.46367645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.0699462890625, - 44.463783264160156, - 259.7296142578125, - 54.46367645263672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6 (3.4)", - "origin": [ - 357.11865234375, - 113.92254638671875 - ], - "bbox": [ - 357.11865234375, - 44.463783264160156, - 383.7783203125, - 54.46367645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.11865234375, - 44.463783264160156, - 383.7783203125, - 54.46367645263672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3 (4.1)", - "origin": [ - 478.617431640625, - 113.92254638671875 - ], - "bbox": [ - 478.617431640625, - 44.463783264160156, - 505.277099609375, - 54.46367645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.617431640625, - 44.463783264160156, - 505.277099609375, - 54.46367645263672 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 64.9615478515625, - 60.163612365722656, - 505.277099609375, - 70.16350555419922 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Naviculaceae", - "origin": [ - 64.9615478515625, - 129.62237548828125 - ], - "bbox": [ - 64.9615478515625, - 60.163612365722656, - 118.82101440429688, - 70.16350555419922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 60.163612365722656, - 118.82101440429688, - 70.16350555419922 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "36 (8.1)", - "origin": [ - 228.06991577148438, - 129.62237548828125 - ], - "bbox": [ - 228.06991577148438, - 60.163612365722656, - 259.7295837402344, - 70.16350555419922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 60.163612365722656, - 259.7295837402344, - 70.16350555419922 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "16 (9.0)", - "origin": [ - 352.08868408203125, - 129.62237548828125 - ], - "bbox": [ - 352.08868408203125, - 60.163612365722656, - 383.748291015625, - 70.16350555419922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.08868408203125, - 60.163612365722656, - 383.748291015625, - 70.16350555419922 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6 (8.1)", - "origin": [ - 478.617431640625, - 129.62237548828125 - ], - "bbox": [ - 478.617431640625, - 60.163612365722656, - 505.277099609375, - 70.16350555419922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.617431640625, - 60.163612365722656, - 505.277099609375, - 70.16350555419922 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 64.9615478515625, - 75.86344146728516, - 510.27703857421875, - 85.86333465576172 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Cymbellaceae", - "origin": [ - 64.9615478515625, - 145.32220458984375 - ], - "bbox": [ - 64.9615478515625, - 75.86344146728516, - 121.61099243164062, - 85.86333465576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 75.86344146728516, - 121.61099243164062, - 85.86333465576172 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "30 (6.7)", - "origin": [ - 228.06991577148438, - 145.32220458984375 - ], - "bbox": [ - 228.06991577148438, - 75.86344146728516, - 259.7295837402344, - 85.86333465576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 75.86344146728516, - 259.7295837402344, - 85.86333465576172 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "16 (9.0)", - "origin": [ - 352.08868408203125, - 145.32220458984375 - ], - "bbox": [ - 352.08868408203125, - 75.86344146728516, - 383.748291015625, - 85.86333465576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.08868408203125, - 75.86344146728516, - 383.748291015625, - 85.86333465576172 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "9 (12.2)", - "origin": [ - 478.617431640625, - 145.32220458984375 - ], - "bbox": [ - 478.617431640625, - 75.86344146728516, - 510.27703857421875, - 85.86333465576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.617431640625, - 75.86344146728516, - 510.27703857421875, - 85.86333465576172 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 64.9615478515625, - 91.56327056884766, - 505.277099609375, - 101.56316375732422 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Nitzschiaceae", - "origin": [ - 64.9615478515625, - 161.02203369140625 - ], - "bbox": [ - 64.9615478515625, - 91.56327056884766, - 120.49100494384766, - 101.56316375732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 91.56327056884766, - 120.49100494384766, - 101.56316375732422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "30 (6.7)", - "origin": [ - 228.06991577148438, - 161.02203369140625 - ], - "bbox": [ - 228.06991577148438, - 91.56327056884766, - 259.7295837402344, - 101.56316375732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 91.56327056884766, - 259.7295837402344, - 101.56316375732422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11 (6.2)", - "origin": [ - 352.08868408203125, - 161.02203369140625 - ], - "bbox": [ - 352.08868408203125, - 91.56327056884766, - 383.748291015625, - 101.56316375732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.08868408203125, - 91.56327056884766, - 383.748291015625, - 101.56316375732422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6 (8.1)", - "origin": [ - 478.617431640625, - 161.02203369140625 - ], - "bbox": [ - 478.617431640625, - 91.56327056884766, - 505.277099609375, - 101.56316375732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.617431640625, - 91.56327056884766, - 505.277099609375, - 101.56316375732422 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 64.9615478515625, - 107.26309967041016, - 510.27703857421875, - 117.26299285888672 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Fragillariaceae", - "origin": [ - 64.9615478515625, - 176.72186279296875 - ], - "bbox": [ - 64.9615478515625, - 107.26309967041016, - 124.38096618652344, - 117.26299285888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 107.26309967041016, - 124.38096618652344, - 117.26299285888672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "29 (6.5)", - "origin": [ - 228.06991577148438, - 176.72186279296875 - ], - "bbox": [ - 228.06991577148438, - 107.26309967041016, - 259.7295837402344, - 117.26299285888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 107.26309967041016, - 259.7295837402344, - 117.26299285888672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "20 (11.2)", - "origin": [ - 352.08868408203125, - 176.72186279296875 - ], - "bbox": [ - 352.08868408203125, - 107.26309967041016, - 388.74822998046875, - 117.26299285888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.08868408203125, - 107.26309967041016, - 388.74822998046875, - 117.26299285888672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8 (10.8)", - "origin": [ - 478.617431640625, - 176.72186279296875 - ], - "bbox": [ - 478.617431640625, - 107.26309967041016, - 510.27703857421875, - 117.26299285888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.617431640625, - 107.26309967041016, - 510.27703857421875, - 117.26299285888672 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 64.9615478515625, - 122.96292877197266, - 494.5172424316406, - 132.96282958984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Scenedesmaceae", - "origin": [ - 64.9615478515625, - 192.42169189453125 - ], - "bbox": [ - 64.9615478515625, - 122.96292877197266, - 132.15087890625, - 132.96282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 122.96292877197266, - 132.15087890625, - 132.96282958984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "21 (4.7)", - "origin": [ - 228.06991577148438, - 192.42169189453125 - ], - "bbox": [ - 228.06991577148438, - 122.96292877197266, - 259.7295837402344, - 132.96282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 122.96292877197266, - 259.7295837402344, - 132.96282958984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (7.3)", - "origin": [ - 352.08868408203125, - 192.42169189453125 - ], - "bbox": [ - 352.08868408203125, - 122.96292877197266, - 383.748291015625, - 132.96282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.08868408203125, - 122.96292877197266, - 383.748291015625, - 132.96282958984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.5173034667969, - 192.42169189453125 - ], - "bbox": [ - 489.5173034667969, - 122.96292877197266, - 494.5172424316406, - 132.96282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.5173034667969, - 122.96292877197266, - 494.5172424316406, - 132.96282958984375 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 64.9615478515625, - 138.66275024414062, - 505.2770690917969, - 148.66265869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Achnanthaceae", - "origin": [ - 64.9615478515625, - 208.12152099609375 - ], - "bbox": [ - 64.9615478515625, - 138.66275024414062, - 126.04093170166016, - 148.66265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 138.66275024414062, - 126.04093170166016, - 148.66265869140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "16 (3.6)", - "origin": [ - 228.06991577148438, - 208.12152099609375 - ], - "bbox": [ - 228.06991577148438, - 138.66275024414062, - 259.7295837402344, - 148.66265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 138.66275024414062, - 259.7295837402344, - 148.66265869140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.49853515625, - 208.12152099609375 - ], - "bbox": [ - 365.49853515625, - 138.66275024414062, - 370.49847412109375, - 148.66265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.49853515625, - 138.66275024414062, - 370.49847412109375, - 148.66265869140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6 (8.1)", - "origin": [ - 478.6174011230469, - 208.12152099609375 - ], - "bbox": [ - 478.6174011230469, - 138.66275024414062, - 505.2770690917969, - 148.66265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.6174011230469, - 138.66275024414062, - 505.2770690917969, - 148.66265869140625 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 64.96151733398438, - 154.36257934570312, - 494.5172119140625, - 164.36248779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Gloeocapsaceae", - "origin": [ - 64.96151733398438, - 223.82135009765625 - ], - "bbox": [ - 64.96151733398438, - 154.36257934570312, - 129.37086486816406, - 164.36248779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.96151733398438, - 154.36257934570312, - 129.37086486816406, - 164.36248779296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (2.9)", - "origin": [ - 228.06988525390625, - 223.82135009765625 - ], - "bbox": [ - 228.06988525390625, - 154.36257934570312, - 259.72955322265625, - 164.36248779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06988525390625, - 154.36257934570312, - 259.72955322265625, - 164.36248779296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4985046386719, - 223.82135009765625 - ], - "bbox": [ - 365.4985046386719, - 154.36257934570312, - 370.4984436035156, - 164.36248779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4985046386719, - 154.36257934570312, - 370.4984436035156, - 164.36248779296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.51727294921875, - 223.82135009765625 - ], - "bbox": [ - 489.51727294921875, - 154.36257934570312, - 494.5172119140625, - 164.36248779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.51727294921875, - 154.36257934570312, - 494.5172119140625, - 164.36248779296875 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 64.96151733398438, - 170.06240844726562, - 505.27703857421875, - 180.06231689453125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Gomphonemataceae", - "origin": [ - 64.96151733398438, - 239.52117919921875 - ], - "bbox": [ - 64.96151733398438, - 170.06240844726562, - 146.60069274902344, - 180.06231689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.96151733398438, - 170.06240844726562, - 146.60069274902344, - 180.06231689453125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "12 (2.7)", - "origin": [ - 228.06988525390625, - 239.52117919921875 - ], - "bbox": [ - 228.06988525390625, - 170.06240844726562, - 259.72955322265625, - 180.06231689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06988525390625, - 170.06240844726562, - 259.72955322265625, - 180.06231689453125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "9 (5.1)", - "origin": [ - 357.11859130859375, - 239.52117919921875 - ], - "bbox": [ - 357.11859130859375, - 170.06240844726562, - 383.77825927734375, - 180.06231689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.11859130859375, - 170.06240844726562, - 383.77825927734375, - 180.06231689453125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4 (5.4)", - "origin": [ - 478.61737060546875, - 239.52117919921875 - ], - "bbox": [ - 478.61737060546875, - 170.06240844726562, - 505.27703857421875, - 180.06231689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.61737060546875, - 170.06240844726562, - 505.27703857421875, - 180.06231689453125 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 64.96148681640625, - 185.76223754882812, - 494.5171813964844, - 195.76214599609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Synechococcaceae", - "origin": [ - 64.96148681640625, - 255.22100830078125 - ], - "bbox": [ - 64.96148681640625, - 185.76223754882812, - 139.9207305908203, - 195.76214599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.96148681640625, - 185.76223754882812, - 139.9207305908203, - 195.76214599609375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11 (2.5)", - "origin": [ - 228.06985473632812, - 255.22100830078125 - ], - "bbox": [ - 228.06985473632812, - 185.76223754882812, - 259.7295227050781, - 195.76214599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06985473632812, - 185.76223754882812, - 259.7295227050781, - 195.76214599609375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.49847412109375, - 255.22100830078125 - ], - "bbox": [ - 365.49847412109375, - 185.76223754882812, - 370.4984130859375, - 195.76214599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.49847412109375, - 185.76223754882812, - 370.4984130859375, - 195.76214599609375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.5172424316406, - 255.22100830078125 - ], - "bbox": [ - 489.5172424316406, - 185.76223754882812, - 494.5171813964844, - 195.76214599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.5172424316406, - 185.76223754882812, - 494.5171813964844, - 195.76214599609375 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 64.96148681640625, - 201.46206665039062, - 494.5071716308594, - 211.46197509765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Selenastraceae", - "origin": [ - 64.96148681640625, - 270.92083740234375 - ], - "bbox": [ - 64.96148681640625, - 201.46206665039062, - 123.82090759277344, - 211.46197509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.96148681640625, - 201.46206665039062, - 123.82090759277344, - 211.46197509765625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.47972106933594, - 270.92083740234375 - ], - "bbox": [ - 241.47972106933594, - 201.46206665039062, - 246.47967529296875, - 211.46197509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.47972106933594, - 201.46206665039062, - 246.47967529296875, - 211.46197509765625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11 (6.2)", - "origin": [ - 352.07861328125, - 270.92083740234375 - ], - "bbox": [ - 352.07861328125, - 201.46206665039062, - 383.73822021484375, - 211.46197509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.07861328125, - 201.46206665039062, - 383.73822021484375, - 211.46197509765625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.5072326660156, - 270.92083740234375 - ], - "bbox": [ - 489.5072326660156, - 201.46206665039062, - 494.5071716308594, - 211.46197509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.5072326660156, - 201.46206665039062, - 494.5071716308594, - 211.46197509765625 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 64.95147705078125, - 217.16189575195312, - 505.2569885253906, - 227.16180419921875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Eunotiaceae", - "origin": [ - 64.95147705078125, - 286.62066650390625 - ], - "bbox": [ - 64.95147705078125, - 217.16189575195312, - 113.82099151611328, - 227.16180419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.95147705078125, - 217.16189575195312, - 113.82099151611328, - 227.16180419921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.46971130371094, - 286.62066650390625 - ], - "bbox": [ - 241.46971130371094, - 217.16189575195312, - 246.46966552734375, - 227.16180419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.46971130371094, - 217.16189575195312, - 246.46966552734375, - 227.16180419921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (3.9)", - "origin": [ - 357.0985412597656, - 286.62066650390625 - ], - "bbox": [ - 357.0985412597656, - 217.16189575195312, - 383.7582092285156, - 227.16180419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.0985412597656, - 217.16189575195312, - 383.7582092285156, - 227.16180419921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3 (4.1)", - "origin": [ - 478.5973205566406, - 286.62066650390625 - ], - "bbox": [ - 478.5973205566406, - 217.16189575195312, - 505.2569885253906, - 227.16180419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5973205566406, - 217.16189575195312, - 505.2569885253906, - 227.16180419921875 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 64.94143676757812, - 232.86172485351562, - 494.48712158203125, - 242.86163330078125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Desmidiaceae", - "origin": [ - 64.94143676757812, - 302.32049560546875 - ], - "bbox": [ - 64.94143676757812, - 232.86172485351562, - 121.0308837890625, - 242.86163330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94143676757812, - 232.86172485351562, - 121.0308837890625, - 242.86163330078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4596710205078, - 302.32049560546875 - ], - "bbox": [ - 241.4596710205078, - 232.86172485351562, - 246.45962524414062, - 242.86163330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4596710205078, - 232.86172485351562, - 246.45962524414062, - 242.86163330078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (3.9)", - "origin": [ - 357.0885009765625, - 302.32049560546875 - ], - "bbox": [ - 357.0885009765625, - 232.86172485351562, - 383.7481689453125, - 242.86163330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.0885009765625, - 232.86172485351562, - 383.7481689453125, - 242.86163330078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.4871826171875, - 302.32049560546875 - ], - "bbox": [ - 489.4871826171875, - 232.86172485351562, - 494.48712158203125, - 242.86163330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.4871826171875, - 232.86172485351562, - 494.48712158203125, - 242.86163330078125 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 64.93142700195312, - 248.56155395507812, - 505.2469482421875, - 258.56146240234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Stephanodiscaceae", - "origin": [ - 64.93142700195312, - 318.02032470703125 - ], - "bbox": [ - 64.93142700195312, - 248.56155395507812, - 140.46066284179688, - 258.56146240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.93142700195312, - 248.56155395507812, - 140.46066284179688, - 258.56146240234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4496612548828, - 318.02032470703125 - ], - "bbox": [ - 241.4496612548828, - 248.56155395507812, - 246.44961547851562, - 258.56146240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4496612548828, - 248.56155395507812, - 246.44961547851562, - 258.56146240234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4684143066406, - 318.02032470703125 - ], - "bbox": [ - 365.4684143066406, - 248.56155395507812, - 370.4683532714844, - 258.56146240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4684143066406, - 248.56155395507812, - 370.4683532714844, - 258.56146240234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4 (5.4)", - "origin": [ - 478.5872802734375, - 318.02032470703125 - ], - "bbox": [ - 478.5872802734375, - 248.56155395507812, - 505.2469482421875, - 258.56146240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5872802734375, - 248.56155395507812, - 505.2469482421875, - 258.56146240234375 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 64.931396484375, - 264.2613830566406, - 505.2469177246094, - 274.26129150390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Surirellaceae", - "origin": [ - 64.931396484375, - 333.72015380859375 - ], - "bbox": [ - 64.931396484375, - 264.2613830566406, - 117.1308822631836, - 274.26129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.931396484375, - 264.2613830566406, - 117.1308822631836, - 274.26129150390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4496307373047, - 333.72015380859375 - ], - "bbox": [ - 241.4496307373047, - 264.2613830566406, - 246.4495849609375, - 274.26129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4496307373047, - 264.2613830566406, - 246.4495849609375, - 274.26129150390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4683837890625, - 333.72015380859375 - ], - "bbox": [ - 365.4683837890625, - 264.2613830566406, - 370.46832275390625, - 274.26129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4683837890625, - 264.2613830566406, - 370.46832275390625, - 274.26129150390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3 (4.1)", - "origin": [ - 478.5872497558594, - 333.72015380859375 - ], - "bbox": [ - 478.5872497558594, - 264.2613830566406, - 505.2469177246094, - 274.26129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5872497558594, - 264.2613830566406, - 505.2469177246094, - 274.26129150390625 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 64.93136596679688, - 279.9612121582031, - 510.216796875, - 289.96112060546875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Total", - "origin": [ - 64.93136596679688, - 349.41998291015625 - ], - "bbox": [ - 64.93136596679688, - 279.9612121582031, - 86.04115295410156, - 289.96112060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.93136596679688, - 279.9612121582031, - 86.04115295410156, - 289.96112060546875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "242 (54.3)", - "origin": [ - 223.00978088378906, - 349.41998291015625 - ], - "bbox": [ - 223.00978088378906, - 279.9612121582031, - 264.66937255859375, - 289.96112060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 223.00978088378906, - 279.9612121582031, - 264.66937255859375, - 289.96112060546875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "116 (65.2)", - "origin": [ - 347.0285339355469, - 349.41998291015625 - ], - "bbox": [ - 347.0285339355469, - 279.9612121582031, - 388.6880187988281, - 289.96112060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.0285339355469, - 279.9612121582031, - 388.6880187988281, - 289.96112060546875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "52 (70.3)", - "origin": [ - 473.5572509765625, - 349.41998291015625 - ], - "bbox": [ - 473.5572509765625, - 279.9612121582031, - 510.216796875, - 289.96112060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.5572509765625, - 279.9612121582031, - 510.216796875, - 289.96112060546875 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 57.96849822998047, - 304.85479736328125, - 408.1724548339844, - 313.85467529296875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Note: Dash here and in Table 2 stands for no data, since in this case the family is not dominating.", - "origin": [ - 57.96849822998047, - 367.36761474609375 - ], - "bbox": [ - 57.96849822998047, - 304.85479736328125, - 408.1724548339844, - 313.85467529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 304.85479736328125, - 408.1724548339844, - 313.85467529296875 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 57.96849822998047, - 335.6736145019531, - 554.04296875, - 407.41546630859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Table 2.", - "origin": [ - 57.96849822998047, - 405.13238525390625 - ], - "bbox": [ - 57.96849822998047, - 397.4155578613281, - 92.16815948486328, - 407.41546630859375 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Composition of dominating genera of phytoperiphyton on various substrates in Lake Teletskoye, number of species", - "origin": [ - 92.16815948486328, - 405.13238525390625 - ], - "bbox": [ - 92.16815948486328, - 335.6736145019531, - 554.04296875, - 345.67352294921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 335.6736145019531, - 554.04296875, - 407.41546630859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(share of species, %)", - "origin": [ - 57.96849822998047, - 415.332275390625 - ], - "bbox": [ - 57.96849822998047, - 345.8735046386719, - 141.26766967773438, - 355.8734130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 345.8735046386719, - 141.26766967773438, - 355.8734130859375 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 107.15800476074219, - 364.82330322265625, - 539.0133666992188, - 374.8232116699219 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Genus", - "origin": [ - 107.15800476074219, - 434.2820739746094 - ], - "bbox": [ - 107.15800476074219, - 364.82330322265625, - 132.70773315429688, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.15800476074219, - 364.82330322265625, - 132.70773315429688, - 374.8232116699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepilithon", - "origin": [ - 214.5269317626953, - 434.2820739746094 - ], - "bbox": [ - 214.5269317626953, - 364.82330322265625, - 273.42633056640625, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.5269317626953, - 364.82330322265625, - 273.42633056640625, - 374.8232116699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepiphyton", - "origin": [ - 336.29571533203125, - 434.2820739746094 - ], - "bbox": [ - 336.29571533203125, - 364.82330322265625, - 399.63494873046875, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.29571533203125, - 364.82330322265625, - 399.63494873046875, - 374.8232116699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Algae on plant residues", - "origin": [ - 444.864501953125, - 434.2820739746094 - ], - "bbox": [ - 444.864501953125, - 364.82330322265625, - 539.0133666992188, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.864501953125, - 364.82330322265625, - 539.0133666992188, - 374.8232116699219 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 64.94842529296875, - 382.52313232421875, - 505.26397705078125, - 454.30206298828125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Nitzschia", - "origin": [ - 64.94842529296875, - 451.9819030761719 - ], - "bbox": [ - 64.94842529296875, - 444.3021545410156, - 102.17806243896484, - 454.30206298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94842529296875, - 444.3021545410156, - 102.17806243896484, - 454.30206298828125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "29 (6.5)", - "origin": [ - 228.05679321289062, - 451.9819030761719 - ], - "bbox": [ - 228.05679321289062, - 382.52313232421875, - 259.7164611816406, - 392.5230407714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05679321289062, - 382.52313232421875, - 259.7164611816406, - 392.5230407714844 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11 (6.2)", - "origin": [ - 352.0755615234375, - 451.9819030761719 - ], - "bbox": [ - 352.0755615234375, - 382.52313232421875, - 383.73516845703125, - 392.5230407714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.0755615234375, - 382.52313232421875, - 383.73516845703125, - 392.5230407714844 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6 (8.1)", - "origin": [ - 478.60430908203125, - 451.9819030761719 - ], - "bbox": [ - 478.60430908203125, - 382.52313232421875, - 505.26397705078125, - 392.5230407714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.60430908203125, - 382.52313232421875, - 505.26397705078125, - 392.5230407714844 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 64.94842529296875, - 398.22296142578125, - 494.50408935546875, - 470.00189208984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Navicula", - "origin": [ - 64.94842529296875, - 467.6817321777344 - ], - "bbox": [ - 64.94842529296875, - 460.0019836425781, - 101.05806732177734, - 470.00189208984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94842529296875, - 460.0019836425781, - 101.05806732177734, - 470.00189208984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "25 (5.6)", - "origin": [ - 228.05679321289062, - 467.6817321777344 - ], - "bbox": [ - 228.05679321289062, - 398.22296142578125, - 259.7164611816406, - 408.2228698730469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05679321289062, - 398.22296142578125, - 259.7164611816406, - 408.2228698730469 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8 (4.5)", - "origin": [ - 357.1054992675781, - 467.6817321777344 - ], - "bbox": [ - 357.1054992675781, - 398.22296142578125, - 383.7651672363281, - 408.2228698730469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.1054992675781, - 398.22296142578125, - 383.7651672363281, - 408.2228698730469 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.504150390625, - 467.6817321777344 - ], - "bbox": [ - 489.504150390625, - 398.22296142578125, - 494.50408935546875, - 408.2228698730469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.504150390625, - 398.22296142578125, - 494.50408935546875, - 408.2228698730469 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 64.94839477539062, - 413.92279052734375, - 505.263916015625, - 485.70172119140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Cymbella", - "origin": [ - 64.94839477539062, - 483.3815612792969 - ], - "bbox": [ - 64.94839477539062, - 475.7018127441406, - 103.27801513671875, - 485.70172119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94839477539062, - 475.7018127441406, - 103.27801513671875, - 485.70172119140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "24 (5.4)", - "origin": [ - 228.0567626953125, - 483.3815612792969 - ], - "bbox": [ - 228.0567626953125, - 413.92279052734375, - 259.7164306640625, - 423.9226989746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.0567626953125, - 413.92279052734375, - 259.7164306640625, - 423.9226989746094 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (7.3)", - "origin": [ - 352.0755310058594, - 483.3815612792969 - ], - "bbox": [ - 352.0755310058594, - 413.92279052734375, - 383.7351379394531, - 423.9226989746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.0755310058594, - 413.92279052734375, - 383.7351379394531, - 423.9226989746094 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (9.5)", - "origin": [ - 478.604248046875, - 483.3815612792969 - ], - "bbox": [ - 478.604248046875, - 413.92279052734375, - 505.263916015625, - 423.9226989746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.604248046875, - 413.92279052734375, - 505.263916015625, - 423.9226989746094 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 64.9483642578125, - 429.62261962890625, - 494.5040588378906, - 501.40155029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Oscillatoria", - "origin": [ - 64.9483642578125, - 499.0813903808594 - ], - "bbox": [ - 64.9483642578125, - 491.4016418457031, - 113.28788757324219, - 501.40155029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9483642578125, - 491.4016418457031, - 113.28788757324219, - 501.40155029296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "20 (4.5)", - "origin": [ - 228.05673217773438, - 499.0813903808594 - ], - "bbox": [ - 228.05673217773438, - 429.62261962890625, - 259.7164001464844, - 439.6225280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05673217773438, - 429.62261962890625, - 259.7164001464844, - 439.6225280761719 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4853515625, - 499.0813903808594 - ], - "bbox": [ - 365.4853515625, - 429.62261962890625, - 370.48529052734375, - 439.6225280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4853515625, - 429.62261962890625, - 370.48529052734375, - 439.6225280761719 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.5041198730469, - 499.0813903808594 - ], - "bbox": [ - 489.5041198730469, - 429.62261962890625, - 494.5040588378906, - 439.6225280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.5041198730469, - 429.62261962890625, - 494.5040588378906, - 439.6225280761719 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 64.9483642578125, - 445.3224792480469, - 505.2638854980469, - 517.1014404296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Synedra", - "origin": [ - 64.9483642578125, - 514.78125 - ], - "bbox": [ - 64.9483642578125, - 507.10150146484375, - 97.71802520751953, - 517.1014404296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9483642578125, - 507.10150146484375, - 97.71802520751953, - 517.1014404296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "15 (3.4)", - "origin": [ - 228.05673217773438, - 514.78125 - ], - "bbox": [ - 228.05673217773438, - 445.3224792480469, - 259.7164001464844, - 455.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05673217773438, - 445.3224792480469, - 259.7164001464844, - 455.3223876953125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8 (4.5)", - "origin": [ - 357.1054382324219, - 514.78125 - ], - "bbox": [ - 357.1054382324219, - 445.3224792480469, - 383.7651062011719, - 455.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.1054382324219, - 445.3224792480469, - 383.7651062011719, - 455.3223876953125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3 (4.1)", - "origin": [ - 478.6042175292969, - 514.78125 - ], - "bbox": [ - 478.6042175292969, - 445.3224792480469, - 505.2638854980469, - 455.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.6042175292969, - 445.3224792480469, - 505.2638854980469, - 455.3223876953125 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 64.94833374023438, - 461.0223083496094, - 494.5040283203125, - 532.80126953125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Gloeocapsa", - "origin": [ - 64.94833374023438, - 530.4810791015625 - ], - "bbox": [ - 64.94833374023438, - 522.8013305664062, - 112.71784210205078, - 532.80126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94833374023438, - 522.8013305664062, - 112.71784210205078, - 532.80126953125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (2.9)", - "origin": [ - 228.05670166015625, - 530.4810791015625 - ], - "bbox": [ - 228.05670166015625, - 461.0223083496094, - 259.71636962890625, - 471.022216796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05670166015625, - 461.0223083496094, - 259.71636962890625, - 471.022216796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4853210449219, - 530.4810791015625 - ], - "bbox": [ - 365.4853210449219, - 461.0223083496094, - 370.4852600097656, - 471.022216796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4853210449219, - 461.0223083496094, - 370.4852600097656, - 471.022216796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.50408935546875, - 530.4810791015625 - ], - "bbox": [ - 489.50408935546875, - 461.0223083496094, - 494.5040283203125, - 471.022216796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.50408935546875, - 461.0223083496094, - 494.5040283203125, - 471.022216796875 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 64.94833374023438, - 476.7221374511719, - 494.5040283203125, - 548.5010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Scenedesmus", - "origin": [ - 64.94833374023438, - 546.180908203125 - ], - "bbox": [ - 64.94833374023438, - 538.5011596679688, - 117.70779418945312, - 548.5010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94833374023438, - 538.5011596679688, - 117.70779418945312, - 548.5010986328125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (2.9)", - "origin": [ - 228.05670166015625, - 546.180908203125 - ], - "bbox": [ - 228.05670166015625, - 476.7221374511719, - 259.71636962890625, - 486.7220458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05670166015625, - 476.7221374511719, - 259.71636962890625, - 486.7220458984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (7.3)", - "origin": [ - 352.0754699707031, - 546.180908203125 - ], - "bbox": [ - 352.0754699707031, - 476.7221374511719, - 383.7350769042969, - 486.7220458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.0754699707031, - 476.7221374511719, - 383.7350769042969, - 486.7220458984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.50408935546875, - 546.180908203125 - ], - "bbox": [ - 489.50408935546875, - 476.7221374511719, - 494.5040283203125, - 486.7220458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.50408935546875, - 476.7221374511719, - 494.5040283203125, - 486.7220458984375 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 64.94833374023438, - 492.4219665527344, - 505.26385498046875, - 564.200927734375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Fragillaria", - "origin": [ - 64.94833374023438, - 561.8807373046875 - ], - "bbox": [ - 64.94833374023438, - 554.2009887695312, - 109.9578857421875, - 564.200927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94833374023438, - 554.2009887695312, - 109.9578857421875, - 564.200927734375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "12 (2.7)", - "origin": [ - 228.05670166015625, - 561.8807373046875 - ], - "bbox": [ - 228.05670166015625, - 492.4219665527344, - 259.71636962890625, - 502.421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05670166015625, - 492.4219665527344, - 259.71636962890625, - 502.421875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8 (4.5)", - "origin": [ - 357.10540771484375, - 561.8807373046875 - ], - "bbox": [ - 357.10540771484375, - 492.4219665527344, - 383.76507568359375, - 502.421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.10540771484375, - 492.4219665527344, - 383.76507568359375, - 502.421875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4 (5.4)", - "origin": [ - 478.60418701171875, - 561.8807373046875 - ], - "bbox": [ - 478.60418701171875, - 492.4219665527344, - 505.26385498046875, - 502.421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.60418701171875, - 492.4219665527344, - 505.26385498046875, - 502.421875 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 64.94830322265625, - 508.1217956542969, - 505.2638244628906, - 579.9007568359375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Achnanthes", - "origin": [ - 64.94830322265625, - 577.58056640625 - ], - "bbox": [ - 64.94830322265625, - 569.9008178710938, - 111.60782623291016, - 579.9007568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94830322265625, - 569.9008178710938, - 111.60782623291016, - 579.9007568359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2 (2.7)", - "origin": [ - 233.08660888671875, - 577.58056640625 - ], - "bbox": [ - 233.08660888671875, - 508.1217956542969, - 259.746337890625, - 518.1217041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.08660888671875, - 508.1217956542969, - 259.746337890625, - 518.1217041015625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.48529052734375, - 577.58056640625 - ], - "bbox": [ - 365.48529052734375, - 508.1217956542969, - 370.4852294921875, - 518.1217041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.48529052734375, - 508.1217956542969, - 370.4852294921875, - 518.1217041015625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4 (5.4)", - "origin": [ - 478.6041564941406, - 577.58056640625 - ], - "bbox": [ - 478.6041564941406, - 508.1217956542969, - 505.2638244628906, - 518.1217041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.6041564941406, - 508.1217956542969, - 505.2638244628906, - 518.1217041015625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 64.94827270507812, - 523.8216552734375, - 494.50396728515625, - 595.6005859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Lyngbya", - "origin": [ - 64.94827270507812, - 593.2803955078125 - ], - "bbox": [ - 64.94827270507812, - 585.6006469726562, - 99.3879165649414, - 595.6005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94827270507812, - 585.6006469726562, - 99.3879165649414, - 595.6005859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11 (2.5)", - "origin": [ - 228.056640625, - 593.2803955078125 - ], - "bbox": [ - 228.056640625, - 523.8216552734375, - 259.71630859375, - 533.821533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.056640625, - 523.8216552734375, - 259.71630859375, - 533.821533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4852600097656, - 593.2803955078125 - ], - "bbox": [ - 365.4852600097656, - 523.8216552734375, - 370.4851989746094, - 533.821533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4852600097656, - 523.8216552734375, - 370.4851989746094, - 533.821533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.5040283203125, - 593.2803955078125 - ], - "bbox": [ - 489.5040283203125, - 523.8216552734375, - 494.50396728515625, - 533.821533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.5040283203125, - 523.8216552734375, - 494.50396728515625, - 533.821533203125 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 64.94827270507812, - 539.5215454101562, - 505.2537841796875, - 611.3004760742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Gomphonema", - "origin": [ - 64.94827270507812, - 608.9802856445312 - ], - "bbox": [ - 64.94827270507812, - 601.300537109375, - 121.04768371582031, - 611.3004760742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94827270507812, - 601.300537109375, - 121.04768371582031, - 611.3004760742188 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4665069580078, - 608.9802856445312 - ], - "bbox": [ - 241.4665069580078, - 539.5215454101562, - 246.46646118164062, - 549.5214233398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4665069580078, - 539.5215454101562, - 246.46646118164062, - 549.5214233398438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "9 (5.1)", - "origin": [ - 357.0953369140625, - 608.9802856445312 - ], - "bbox": [ - 357.0953369140625, - 539.5215454101562, - 383.7550048828125, - 549.5214233398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.0953369140625, - 539.5215454101562, - 383.7550048828125, - 549.5214233398438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4 (5.4)", - "origin": [ - 478.5941162109375, - 608.9802856445312 - ], - "bbox": [ - 478.5941162109375, - 539.5215454101562, - 505.2537841796875, - 549.5214233398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5941162109375, - 539.5215454101562, - 505.2537841796875, - 549.5214233398438 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 64.938232421875, - 555.2213745117188, - 505.2437438964844, - 627.0003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Eunotia", - "origin": [ - 64.938232421875, - 624.6801147460938 - ], - "bbox": [ - 64.938232421875, - 617.0003662109375, - 96.60791015625, - 627.0003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.938232421875, - 617.0003662109375, - 96.60791015625, - 627.0003051757812 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4564666748047, - 624.6801147460938 - ], - "bbox": [ - 241.4564666748047, - 555.2213745117188, - 246.4564208984375, - 565.2212524414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4564666748047, - 555.2213745117188, - 246.4564208984375, - 565.2212524414062 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (4.0)", - "origin": [ - 357.0852966308594, - 624.6801147460938 - ], - "bbox": [ - 357.0852966308594, - 555.2213745117188, - 383.7449645996094, - 565.2212524414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.0852966308594, - 555.2213745117188, - 383.7449645996094, - 565.2212524414062 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3 (4.1)", - "origin": [ - 478.5840759277344, - 624.6801147460938 - ], - "bbox": [ - 478.5840759277344, - 555.2213745117188, - 505.2437438964844, - 565.2212524414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5840759277344, - 555.2213745117188, - 505.2437438964844, - 565.2212524414062 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 64.92819213867188, - 570.9212036132812, - 494.473876953125, - 642.7001342773438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Monoraphidium", - "origin": [ - 64.92819213867188, - 640.3799438476562 - ], - "bbox": [ - 64.92819213867188, - 632.7001953125, - 129.92752075195312, - 642.7001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.92819213867188, - 632.7001953125, - 129.92752075195312, - 642.7001342773438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.44642639160156, - 640.3799438476562 - ], - "bbox": [ - 241.44642639160156, - 570.9212036132812, - 246.44638061523438, - 580.9210815429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.44642639160156, - 570.9212036132812, - 246.44638061523438, - 580.9210815429688 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (4.0)", - "origin": [ - 357.07525634765625, - 640.3799438476562 - ], - "bbox": [ - 357.07525634765625, - 570.9212036132812, - 383.73492431640625, - 580.9210815429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.07525634765625, - 570.9212036132812, - 383.73492431640625, - 580.9210815429688 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.47393798828125, - 640.3799438476562 - ], - "bbox": [ - 489.47393798828125, - 570.9212036132812, - 494.473876953125, - 580.9210815429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.47393798828125, - 570.9212036132812, - 494.473876953125, - 580.9210815429688 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 64.91818237304688, - 586.62109375, - 494.4638671875, - 658.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Cosmarium", - "origin": [ - 64.91818237304688, - 656.079833984375 - ], - "bbox": [ - 64.91818237304688, - 648.4000854492188, - 111.58770751953125, - 658.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.91818237304688, - 648.4000854492188, - 111.58770751953125, - 658.4000244140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.43641662597656, - 656.079833984375 - ], - "bbox": [ - 241.43641662597656, - 586.62109375, - 246.43637084960938, - 596.6209716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.43641662597656, - 586.62109375, - 246.43637084960938, - 596.6209716796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (4.0)", - "origin": [ - 357.06524658203125, - 656.079833984375 - ], - "bbox": [ - 357.06524658203125, - 586.62109375, - 383.72491455078125, - 596.6209716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.06524658203125, - 586.62109375, - 383.72491455078125, - 596.6209716796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.46392822265625, - 656.079833984375 - ], - "bbox": [ - 489.46392822265625, - 586.62109375, - 494.4638671875, - 596.6209716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.46392822265625, - 586.62109375, - 494.4638671875, - 596.6209716796875 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 64.90817260742188, - 602.3209228515625, - 505.22369384765625, - 674.099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Microcystis", - "origin": [ - 64.90817260742188, - 671.7796630859375 - ], - "bbox": [ - 64.90817260742188, - 664.0999145507812, - 111.56771850585938, - 674.099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.90817260742188, - 664.0999145507812, - 111.56771850585938, - 674.099853515625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.42640686035156, - 671.7796630859375 - ], - "bbox": [ - 241.42640686035156, - 602.3209228515625, - 246.42636108398438, - 612.32080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.42640686035156, - 602.3209228515625, - 246.42636108398438, - 612.32080078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4451599121094, - 671.7796630859375 - ], - "bbox": [ - 365.4451599121094, - 602.3209228515625, - 370.4450988769531, - 612.32080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4451599121094, - 602.3209228515625, - 370.4450988769531, - 612.32080078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2 (2.7)", - "origin": [ - 478.56402587890625, - 671.7796630859375 - ], - "bbox": [ - 478.56402587890625, - 602.3209228515625, - 505.22369384765625, - 612.32080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.56402587890625, - 602.3209228515625, - 505.22369384765625, - 612.32080078125 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 64.90814208984375, - 618.020751953125, - 505.2236633300781, - 689.7996826171875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Stephanodiscus", - "origin": [ - 64.90814208984375, - 687.4794921875 - ], - "bbox": [ - 64.90814208984375, - 679.7997436523438, - 127.12750244140625, - 689.7996826171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.90814208984375, - 679.7997436523438, - 127.12750244140625, - 689.7996826171875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.42637634277344, - 687.4794921875 - ], - "bbox": [ - 241.42637634277344, - 618.020751953125, - 246.42633056640625, - 628.0206298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.42637634277344, - 618.020751953125, - 246.42633056640625, - 628.0206298828125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.44512939453125, - 687.4794921875 - ], - "bbox": [ - 365.44512939453125, - 618.020751953125, - 370.445068359375, - 628.0206298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.44512939453125, - 618.020751953125, - 370.445068359375, - 628.0206298828125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2 (2.7)", - "origin": [ - 478.5639953613281, - 687.4794921875 - ], - "bbox": [ - 478.5639953613281, - 618.020751953125, - 505.2236633300781, - 628.0206298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5639953613281, - 618.020751953125, - 505.2236633300781, - 628.0206298828125 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 64.90811157226562, - 633.7205810546875, - 505.2236328125, - 705.49951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Cyclotella", - "origin": [ - 64.90811157226562, - 703.1793212890625 - ], - "bbox": [ - 64.90811157226562, - 695.4995727539062, - 106.01771545410156, - 705.49951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.90811157226562, - 695.4995727539062, - 106.01771545410156, - 705.49951171875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4263458251953, - 703.1793212890625 - ], - "bbox": [ - 241.4263458251953, - 633.7205810546875, - 246.42630004882812, - 643.720458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4263458251953, - 633.7205810546875, - 246.42630004882812, - 643.720458984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4450988769531, - 703.1793212890625 - ], - "bbox": [ - 365.4450988769531, - 633.7205810546875, - 370.4450378417969, - 643.720458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4450988769531, - 633.7205810546875, - 370.4450378417969, - 643.720458984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2 (2.7)", - "origin": [ - 478.56396484375, - 703.1793212890625 - ], - "bbox": [ - 478.56396484375, - 633.7205810546875, - 505.2236328125, - 643.720458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.56396484375, - 633.7205810546875, - 505.2236328125, - 643.720458984375 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 64.9080810546875, - 649.42041015625, - 510.19354248046875, - 659.4202880859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Total", - "origin": [ - 64.9080810546875, - 718.879150390625 - ], - "bbox": [ - 64.9080810546875, - 649.42041015625, - 86.01786804199219, - 659.4202880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9080810546875, - 649.42041015625, - 86.01786804199219, - 659.4202880859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "174 (39.0)", - "origin": [ - 220.46652221679688, - 718.879150390625 - ], - "bbox": [ - 220.46652221679688, - 649.42041015625, - 262.1260986328125, - 659.4202880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.46652221679688, - 649.42041015625, - 262.1260986328125, - 659.4202880859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "91 (51.4)", - "origin": [ - 349.5152282714844, - 718.879150390625 - ], - "bbox": [ - 349.5152282714844, - 649.42041015625, - 386.1747741699219, - 659.4202880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.5152282714844, - 649.42041015625, - 386.1747741699219, - 659.4202880859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "37 (50.0)", - "origin": [ - 473.53399658203125, - 718.879150390625 - ], - "bbox": [ - 473.53399658203125, - 649.42041015625, - 510.19354248046875, - 659.4202880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.53399658203125, - 649.42041015625, - 510.19354248046875, - 659.4202880859375 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ], - "tag": "on-table" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 57.971649169921875, - -2.3857650756835938, - 554.0460815429688, - 69.3560791015625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Table 1.", - "origin": [ - 57.971649169921875, - 67.072998046875 - ], - "bbox": [ - 57.971649169921875, - 59.356178283691406, - 91.84131622314453, - 69.3560791015625 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Composition of dominating families of phytoperiphyton on various substrates in Lake Teletskoye, number of species", - "origin": [ - 91.84131622314453, - 67.072998046875 - ], - "bbox": [ - 91.84131622314453, - -2.3857650756835938, - 554.0460815429688, - 7.614128112792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971649169921875, - -2.3857650756835938, - 554.0460815429688, - 69.3560791015625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(share of species, %)", - "origin": [ - 57.971649169921875, - 77.27288818359375 - ], - "bbox": [ - 57.971649169921875, - 7.814125061035156, - 141.27081298828125, - 17.81401824951172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.971649169921875, - 7.814125061035156, - 141.27081298828125, - 17.81401824951172 - ] - } - ], - "tag": "on-table" - }, - { - "number": 3, - "type": 0, - "bbox": [ - 105.91117095947266, - 26.763954162597656, - 539.0265502929688, - 36.76384735107422 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Family", - "origin": [ - 105.91117095947266, - 96.22271728515625 - ], - "bbox": [ - 105.91117095947266, - 26.763954162597656, - 134.2509002685547, - 36.76384735107422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.91117095947266, - 26.763954162597656, - 134.2509002685547, - 36.76384735107422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepilithon", - "origin": [ - 214.5400848388672, - 96.22271728515625 - ], - "bbox": [ - 214.5400848388672, - 26.763954162597656, - 273.4394836425781, - 36.76384735107422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.5400848388672, - 26.763954162597656, - 273.4394836425781, - 36.76384735107422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepiphyton", - "origin": [ - 336.3088684082031, - 96.22271728515625 - ], - "bbox": [ - 336.3088684082031, - 26.763954162597656, - 399.6481018066406, - 36.76384735107422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.3088684082031, - 26.763954162597656, - 399.6481018066406, - 36.76384735107422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Algae on plant residues", - "origin": [ - 444.8776550292969, - 96.22271728515625 - ], - "bbox": [ - 444.8776550292969, - 26.763954162597656, - 539.0265502929688, - 36.76384735107422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.8776550292969, - 26.763954162597656, - 539.0265502929688, - 36.76384735107422 - ] - } - ], - "tag": "on-table" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 64.96157836914062, - 44.463783264160156, - 505.277099609375, - 54.46367645263672 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Oscillatoriaceae", - "origin": [ - 64.96157836914062, - 113.92254638671875 - ], - "bbox": [ - 64.96157836914062, - 44.463783264160156, - 129.38095092773438, - 54.46367645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.96157836914062, - 44.463783264160156, - 129.38095092773438, - 54.46367645263672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "44 (9.9)", - "origin": [ - 228.0699462890625, - 113.92254638671875 - ], - "bbox": [ - 228.0699462890625, - 44.463783264160156, - 259.7296142578125, - 54.46367645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.0699462890625, - 44.463783264160156, - 259.7296142578125, - 54.46367645263672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6 (3.4)", - "origin": [ - 357.11865234375, - 113.92254638671875 - ], - "bbox": [ - 357.11865234375, - 44.463783264160156, - 383.7783203125, - 54.46367645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.11865234375, - 44.463783264160156, - 383.7783203125, - 54.46367645263672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3 (4.1)", - "origin": [ - 478.617431640625, - 113.92254638671875 - ], - "bbox": [ - 478.617431640625, - 44.463783264160156, - 505.277099609375, - 54.46367645263672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.617431640625, - 44.463783264160156, - 505.277099609375, - 54.46367645263672 - ] - } - ], - "tag": "on-table" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 64.9615478515625, - 60.163612365722656, - 505.277099609375, - 70.16350555419922 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Naviculaceae", - "origin": [ - 64.9615478515625, - 129.62237548828125 - ], - "bbox": [ - 64.9615478515625, - 60.163612365722656, - 118.82101440429688, - 70.16350555419922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 60.163612365722656, - 118.82101440429688, - 70.16350555419922 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "36 (8.1)", - "origin": [ - 228.06991577148438, - 129.62237548828125 - ], - "bbox": [ - 228.06991577148438, - 60.163612365722656, - 259.7295837402344, - 70.16350555419922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 60.163612365722656, - 259.7295837402344, - 70.16350555419922 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "16 (9.0)", - "origin": [ - 352.08868408203125, - 129.62237548828125 - ], - "bbox": [ - 352.08868408203125, - 60.163612365722656, - 383.748291015625, - 70.16350555419922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.08868408203125, - 60.163612365722656, - 383.748291015625, - 70.16350555419922 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6 (8.1)", - "origin": [ - 478.617431640625, - 129.62237548828125 - ], - "bbox": [ - 478.617431640625, - 60.163612365722656, - 505.277099609375, - 70.16350555419922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.617431640625, - 60.163612365722656, - 505.277099609375, - 70.16350555419922 - ] - } - ], - "tag": "on-table" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 64.9615478515625, - 75.86344146728516, - 510.27703857421875, - 85.86333465576172 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Cymbellaceae", - "origin": [ - 64.9615478515625, - 145.32220458984375 - ], - "bbox": [ - 64.9615478515625, - 75.86344146728516, - 121.61099243164062, - 85.86333465576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 75.86344146728516, - 121.61099243164062, - 85.86333465576172 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "30 (6.7)", - "origin": [ - 228.06991577148438, - 145.32220458984375 - ], - "bbox": [ - 228.06991577148438, - 75.86344146728516, - 259.7295837402344, - 85.86333465576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 75.86344146728516, - 259.7295837402344, - 85.86333465576172 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "16 (9.0)", - "origin": [ - 352.08868408203125, - 145.32220458984375 - ], - "bbox": [ - 352.08868408203125, - 75.86344146728516, - 383.748291015625, - 85.86333465576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.08868408203125, - 75.86344146728516, - 383.748291015625, - 85.86333465576172 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "9 (12.2)", - "origin": [ - 478.617431640625, - 145.32220458984375 - ], - "bbox": [ - 478.617431640625, - 75.86344146728516, - 510.27703857421875, - 85.86333465576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.617431640625, - 75.86344146728516, - 510.27703857421875, - 85.86333465576172 - ] - } - ], - "tag": "on-table" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 64.9615478515625, - 91.56327056884766, - 505.277099609375, - 101.56316375732422 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Nitzschiaceae", - "origin": [ - 64.9615478515625, - 161.02203369140625 - ], - "bbox": [ - 64.9615478515625, - 91.56327056884766, - 120.49100494384766, - 101.56316375732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 91.56327056884766, - 120.49100494384766, - 101.56316375732422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "30 (6.7)", - "origin": [ - 228.06991577148438, - 161.02203369140625 - ], - "bbox": [ - 228.06991577148438, - 91.56327056884766, - 259.7295837402344, - 101.56316375732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 91.56327056884766, - 259.7295837402344, - 101.56316375732422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11 (6.2)", - "origin": [ - 352.08868408203125, - 161.02203369140625 - ], - "bbox": [ - 352.08868408203125, - 91.56327056884766, - 383.748291015625, - 101.56316375732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.08868408203125, - 91.56327056884766, - 383.748291015625, - 101.56316375732422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6 (8.1)", - "origin": [ - 478.617431640625, - 161.02203369140625 - ], - "bbox": [ - 478.617431640625, - 91.56327056884766, - 505.277099609375, - 101.56316375732422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.617431640625, - 91.56327056884766, - 505.277099609375, - 101.56316375732422 - ] - } - ], - "tag": "on-table" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 64.9615478515625, - 107.26309967041016, - 510.27703857421875, - 117.26299285888672 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Fragillariaceae", - "origin": [ - 64.9615478515625, - 176.72186279296875 - ], - "bbox": [ - 64.9615478515625, - 107.26309967041016, - 124.38096618652344, - 117.26299285888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 107.26309967041016, - 124.38096618652344, - 117.26299285888672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "29 (6.5)", - "origin": [ - 228.06991577148438, - 176.72186279296875 - ], - "bbox": [ - 228.06991577148438, - 107.26309967041016, - 259.7295837402344, - 117.26299285888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 107.26309967041016, - 259.7295837402344, - 117.26299285888672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "20 (11.2)", - "origin": [ - 352.08868408203125, - 176.72186279296875 - ], - "bbox": [ - 352.08868408203125, - 107.26309967041016, - 388.74822998046875, - 117.26299285888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.08868408203125, - 107.26309967041016, - 388.74822998046875, - 117.26299285888672 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8 (10.8)", - "origin": [ - 478.617431640625, - 176.72186279296875 - ], - "bbox": [ - 478.617431640625, - 107.26309967041016, - 510.27703857421875, - 117.26299285888672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.617431640625, - 107.26309967041016, - 510.27703857421875, - 117.26299285888672 - ] - } - ], - "tag": "on-table" - }, - { - "number": 9, - "type": 0, - "bbox": [ - 64.9615478515625, - 122.96292877197266, - 494.5172424316406, - 132.96282958984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Scenedesmaceae", - "origin": [ - 64.9615478515625, - 192.42169189453125 - ], - "bbox": [ - 64.9615478515625, - 122.96292877197266, - 132.15087890625, - 132.96282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 122.96292877197266, - 132.15087890625, - 132.96282958984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "21 (4.7)", - "origin": [ - 228.06991577148438, - 192.42169189453125 - ], - "bbox": [ - 228.06991577148438, - 122.96292877197266, - 259.7295837402344, - 132.96282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 122.96292877197266, - 259.7295837402344, - 132.96282958984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (7.3)", - "origin": [ - 352.08868408203125, - 192.42169189453125 - ], - "bbox": [ - 352.08868408203125, - 122.96292877197266, - 383.748291015625, - 132.96282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.08868408203125, - 122.96292877197266, - 383.748291015625, - 132.96282958984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.5173034667969, - 192.42169189453125 - ], - "bbox": [ - 489.5173034667969, - 122.96292877197266, - 494.5172424316406, - 132.96282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.5173034667969, - 122.96292877197266, - 494.5172424316406, - 132.96282958984375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 10, - "type": 0, - "bbox": [ - 64.9615478515625, - 138.66275024414062, - 505.2770690917969, - 148.66265869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Achnanthaceae", - "origin": [ - 64.9615478515625, - 208.12152099609375 - ], - "bbox": [ - 64.9615478515625, - 138.66275024414062, - 126.04093170166016, - 148.66265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9615478515625, - 138.66275024414062, - 126.04093170166016, - 148.66265869140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "16 (3.6)", - "origin": [ - 228.06991577148438, - 208.12152099609375 - ], - "bbox": [ - 228.06991577148438, - 138.66275024414062, - 259.7295837402344, - 148.66265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06991577148438, - 138.66275024414062, - 259.7295837402344, - 148.66265869140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.49853515625, - 208.12152099609375 - ], - "bbox": [ - 365.49853515625, - 138.66275024414062, - 370.49847412109375, - 148.66265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.49853515625, - 138.66275024414062, - 370.49847412109375, - 148.66265869140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6 (8.1)", - "origin": [ - 478.6174011230469, - 208.12152099609375 - ], - "bbox": [ - 478.6174011230469, - 138.66275024414062, - 505.2770690917969, - 148.66265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.6174011230469, - 138.66275024414062, - 505.2770690917969, - 148.66265869140625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 11, - "type": 0, - "bbox": [ - 64.96151733398438, - 154.36257934570312, - 494.5172119140625, - 164.36248779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Gloeocapsaceae", - "origin": [ - 64.96151733398438, - 223.82135009765625 - ], - "bbox": [ - 64.96151733398438, - 154.36257934570312, - 129.37086486816406, - 164.36248779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.96151733398438, - 154.36257934570312, - 129.37086486816406, - 164.36248779296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (2.9)", - "origin": [ - 228.06988525390625, - 223.82135009765625 - ], - "bbox": [ - 228.06988525390625, - 154.36257934570312, - 259.72955322265625, - 164.36248779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06988525390625, - 154.36257934570312, - 259.72955322265625, - 164.36248779296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4985046386719, - 223.82135009765625 - ], - "bbox": [ - 365.4985046386719, - 154.36257934570312, - 370.4984436035156, - 164.36248779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4985046386719, - 154.36257934570312, - 370.4984436035156, - 164.36248779296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.51727294921875, - 223.82135009765625 - ], - "bbox": [ - 489.51727294921875, - 154.36257934570312, - 494.5172119140625, - 164.36248779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.51727294921875, - 154.36257934570312, - 494.5172119140625, - 164.36248779296875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 64.96151733398438, - 170.06240844726562, - 505.27703857421875, - 180.06231689453125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Gomphonemataceae", - "origin": [ - 64.96151733398438, - 239.52117919921875 - ], - "bbox": [ - 64.96151733398438, - 170.06240844726562, - 146.60069274902344, - 180.06231689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.96151733398438, - 170.06240844726562, - 146.60069274902344, - 180.06231689453125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "12 (2.7)", - "origin": [ - 228.06988525390625, - 239.52117919921875 - ], - "bbox": [ - 228.06988525390625, - 170.06240844726562, - 259.72955322265625, - 180.06231689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06988525390625, - 170.06240844726562, - 259.72955322265625, - 180.06231689453125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "9 (5.1)", - "origin": [ - 357.11859130859375, - 239.52117919921875 - ], - "bbox": [ - 357.11859130859375, - 170.06240844726562, - 383.77825927734375, - 180.06231689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.11859130859375, - 170.06240844726562, - 383.77825927734375, - 180.06231689453125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4 (5.4)", - "origin": [ - 478.61737060546875, - 239.52117919921875 - ], - "bbox": [ - 478.61737060546875, - 170.06240844726562, - 505.27703857421875, - 180.06231689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.61737060546875, - 170.06240844726562, - 505.27703857421875, - 180.06231689453125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 64.96148681640625, - 185.76223754882812, - 494.5171813964844, - 195.76214599609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Synechococcaceae", - "origin": [ - 64.96148681640625, - 255.22100830078125 - ], - "bbox": [ - 64.96148681640625, - 185.76223754882812, - 139.9207305908203, - 195.76214599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.96148681640625, - 185.76223754882812, - 139.9207305908203, - 195.76214599609375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11 (2.5)", - "origin": [ - 228.06985473632812, - 255.22100830078125 - ], - "bbox": [ - 228.06985473632812, - 185.76223754882812, - 259.7295227050781, - 195.76214599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.06985473632812, - 185.76223754882812, - 259.7295227050781, - 195.76214599609375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.49847412109375, - 255.22100830078125 - ], - "bbox": [ - 365.49847412109375, - 185.76223754882812, - 370.4984130859375, - 195.76214599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.49847412109375, - 185.76223754882812, - 370.4984130859375, - 195.76214599609375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.5172424316406, - 255.22100830078125 - ], - "bbox": [ - 489.5172424316406, - 185.76223754882812, - 494.5171813964844, - 195.76214599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.5172424316406, - 185.76223754882812, - 494.5171813964844, - 195.76214599609375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 14, - "type": 0, - "bbox": [ - 64.96148681640625, - 201.46206665039062, - 494.5071716308594, - 211.46197509765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Selenastraceae", - "origin": [ - 64.96148681640625, - 270.92083740234375 - ], - "bbox": [ - 64.96148681640625, - 201.46206665039062, - 123.82090759277344, - 211.46197509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.96148681640625, - 201.46206665039062, - 123.82090759277344, - 211.46197509765625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.47972106933594, - 270.92083740234375 - ], - "bbox": [ - 241.47972106933594, - 201.46206665039062, - 246.47967529296875, - 211.46197509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.47972106933594, - 201.46206665039062, - 246.47967529296875, - 211.46197509765625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11 (6.2)", - "origin": [ - 352.07861328125, - 270.92083740234375 - ], - "bbox": [ - 352.07861328125, - 201.46206665039062, - 383.73822021484375, - 211.46197509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.07861328125, - 201.46206665039062, - 383.73822021484375, - 211.46197509765625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.5072326660156, - 270.92083740234375 - ], - "bbox": [ - 489.5072326660156, - 201.46206665039062, - 494.5071716308594, - 211.46197509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.5072326660156, - 201.46206665039062, - 494.5071716308594, - 211.46197509765625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 15, - "type": 0, - "bbox": [ - 64.95147705078125, - 217.16189575195312, - 505.2569885253906, - 227.16180419921875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Eunotiaceae", - "origin": [ - 64.95147705078125, - 286.62066650390625 - ], - "bbox": [ - 64.95147705078125, - 217.16189575195312, - 113.82099151611328, - 227.16180419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.95147705078125, - 217.16189575195312, - 113.82099151611328, - 227.16180419921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.46971130371094, - 286.62066650390625 - ], - "bbox": [ - 241.46971130371094, - 217.16189575195312, - 246.46966552734375, - 227.16180419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.46971130371094, - 217.16189575195312, - 246.46966552734375, - 227.16180419921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (3.9)", - "origin": [ - 357.0985412597656, - 286.62066650390625 - ], - "bbox": [ - 357.0985412597656, - 217.16189575195312, - 383.7582092285156, - 227.16180419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.0985412597656, - 217.16189575195312, - 383.7582092285156, - 227.16180419921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3 (4.1)", - "origin": [ - 478.5973205566406, - 286.62066650390625 - ], - "bbox": [ - 478.5973205566406, - 217.16189575195312, - 505.2569885253906, - 227.16180419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5973205566406, - 217.16189575195312, - 505.2569885253906, - 227.16180419921875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 16, - "type": 0, - "bbox": [ - 64.94143676757812, - 232.86172485351562, - 494.48712158203125, - 242.86163330078125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Desmidiaceae", - "origin": [ - 64.94143676757812, - 302.32049560546875 - ], - "bbox": [ - 64.94143676757812, - 232.86172485351562, - 121.0308837890625, - 242.86163330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94143676757812, - 232.86172485351562, - 121.0308837890625, - 242.86163330078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4596710205078, - 302.32049560546875 - ], - "bbox": [ - 241.4596710205078, - 232.86172485351562, - 246.45962524414062, - 242.86163330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4596710205078, - 232.86172485351562, - 246.45962524414062, - 242.86163330078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (3.9)", - "origin": [ - 357.0885009765625, - 302.32049560546875 - ], - "bbox": [ - 357.0885009765625, - 232.86172485351562, - 383.7481689453125, - 242.86163330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.0885009765625, - 232.86172485351562, - 383.7481689453125, - 242.86163330078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.4871826171875, - 302.32049560546875 - ], - "bbox": [ - 489.4871826171875, - 232.86172485351562, - 494.48712158203125, - 242.86163330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.4871826171875, - 232.86172485351562, - 494.48712158203125, - 242.86163330078125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 17, - "type": 0, - "bbox": [ - 64.93142700195312, - 248.56155395507812, - 505.2469482421875, - 258.56146240234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Stephanodiscaceae", - "origin": [ - 64.93142700195312, - 318.02032470703125 - ], - "bbox": [ - 64.93142700195312, - 248.56155395507812, - 140.46066284179688, - 258.56146240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.93142700195312, - 248.56155395507812, - 140.46066284179688, - 258.56146240234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4496612548828, - 318.02032470703125 - ], - "bbox": [ - 241.4496612548828, - 248.56155395507812, - 246.44961547851562, - 258.56146240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4496612548828, - 248.56155395507812, - 246.44961547851562, - 258.56146240234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4684143066406, - 318.02032470703125 - ], - "bbox": [ - 365.4684143066406, - 248.56155395507812, - 370.4683532714844, - 258.56146240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4684143066406, - 248.56155395507812, - 370.4683532714844, - 258.56146240234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4 (5.4)", - "origin": [ - 478.5872802734375, - 318.02032470703125 - ], - "bbox": [ - 478.5872802734375, - 248.56155395507812, - 505.2469482421875, - 258.56146240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5872802734375, - 248.56155395507812, - 505.2469482421875, - 258.56146240234375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 18, - "type": 0, - "bbox": [ - 64.931396484375, - 264.2613830566406, - 505.2469177246094, - 274.26129150390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Surirellaceae", - "origin": [ - 64.931396484375, - 333.72015380859375 - ], - "bbox": [ - 64.931396484375, - 264.2613830566406, - 117.1308822631836, - 274.26129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.931396484375, - 264.2613830566406, - 117.1308822631836, - 274.26129150390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4496307373047, - 333.72015380859375 - ], - "bbox": [ - 241.4496307373047, - 264.2613830566406, - 246.4495849609375, - 274.26129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4496307373047, - 264.2613830566406, - 246.4495849609375, - 274.26129150390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4683837890625, - 333.72015380859375 - ], - "bbox": [ - 365.4683837890625, - 264.2613830566406, - 370.46832275390625, - 274.26129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4683837890625, - 264.2613830566406, - 370.46832275390625, - 274.26129150390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3 (4.1)", - "origin": [ - 478.5872497558594, - 333.72015380859375 - ], - "bbox": [ - 478.5872497558594, - 264.2613830566406, - 505.2469177246094, - 274.26129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5872497558594, - 264.2613830566406, - 505.2469177246094, - 274.26129150390625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 64.93136596679688, - 279.9612121582031, - 510.216796875, - 289.96112060546875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Total", - "origin": [ - 64.93136596679688, - 349.41998291015625 - ], - "bbox": [ - 64.93136596679688, - 279.9612121582031, - 86.04115295410156, - 289.96112060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.93136596679688, - 279.9612121582031, - 86.04115295410156, - 289.96112060546875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "242 (54.3)", - "origin": [ - 223.00978088378906, - 349.41998291015625 - ], - "bbox": [ - 223.00978088378906, - 279.9612121582031, - 264.66937255859375, - 289.96112060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 223.00978088378906, - 279.9612121582031, - 264.66937255859375, - 289.96112060546875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "116 (65.2)", - "origin": [ - 347.0285339355469, - 349.41998291015625 - ], - "bbox": [ - 347.0285339355469, - 279.9612121582031, - 388.6880187988281, - 289.96112060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.0285339355469, - 279.9612121582031, - 388.6880187988281, - 289.96112060546875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "52 (70.3)", - "origin": [ - 473.5572509765625, - 349.41998291015625 - ], - "bbox": [ - 473.5572509765625, - 279.9612121582031, - 510.216796875, - 289.96112060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.5572509765625, - 279.9612121582031, - 510.216796875, - 289.96112060546875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 20, - "type": 0, - "bbox": [ - 57.96849822998047, - 304.85479736328125, - 408.1724548339844, - 313.85467529296875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Note: Dash here and in Table 2 stands for no data, since in this case the family is not dominating.", - "origin": [ - 57.96849822998047, - 367.36761474609375 - ], - "bbox": [ - 57.96849822998047, - 304.85479736328125, - 408.1724548339844, - 313.85467529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 304.85479736328125, - 408.1724548339844, - 313.85467529296875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 57.96849822998047, - 335.6736145019531, - 554.04296875, - 407.41546630859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Table 2.", - "origin": [ - 57.96849822998047, - 405.13238525390625 - ], - "bbox": [ - 57.96849822998047, - 397.4155578613281, - 92.16815948486328, - 407.41546630859375 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Composition of dominating genera of phytoperiphyton on various substrates in Lake Teletskoye, number of species", - "origin": [ - 92.16815948486328, - 405.13238525390625 - ], - "bbox": [ - 92.16815948486328, - 335.6736145019531, - 554.04296875, - 345.67352294921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 335.6736145019531, - 554.04296875, - 407.41546630859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(share of species, %)", - "origin": [ - 57.96849822998047, - 415.332275390625 - ], - "bbox": [ - 57.96849822998047, - 345.8735046386719, - 141.26766967773438, - 355.8734130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 345.8735046386719, - 141.26766967773438, - 355.8734130859375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 107.15800476074219, - 364.82330322265625, - 539.0133666992188, - 374.8232116699219 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Genus", - "origin": [ - 107.15800476074219, - 434.2820739746094 - ], - "bbox": [ - 107.15800476074219, - 364.82330322265625, - 132.70773315429688, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.15800476074219, - 364.82330322265625, - 132.70773315429688, - 374.8232116699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepilithon", - "origin": [ - 214.5269317626953, - 434.2820739746094 - ], - "bbox": [ - 214.5269317626953, - 364.82330322265625, - 273.42633056640625, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.5269317626953, - 364.82330322265625, - 273.42633056640625, - 374.8232116699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepiphyton", - "origin": [ - 336.29571533203125, - 434.2820739746094 - ], - "bbox": [ - 336.29571533203125, - 364.82330322265625, - 399.63494873046875, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.29571533203125, - 364.82330322265625, - 399.63494873046875, - 374.8232116699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Algae on plant residues", - "origin": [ - 444.864501953125, - 434.2820739746094 - ], - "bbox": [ - 444.864501953125, - 364.82330322265625, - 539.0133666992188, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.864501953125, - 364.82330322265625, - 539.0133666992188, - 374.8232116699219 - ] - } - ], - "tag": "on-table" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 72.1417007446289, - 748.1763916015625 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ], - "tag": "on-table" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 57.96849822998047, - 335.6736145019531, - 554.04296875, - 407.41546630859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Table 2.", - "origin": [ - 57.96849822998047, - 405.13238525390625 - ], - "bbox": [ - 57.96849822998047, - 397.4155578613281, - 92.16815948486328, - 407.41546630859375 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Composition of dominating genera of phytoperiphyton on various substrates in Lake Teletskoye, number of species", - "origin": [ - 92.16815948486328, - 405.13238525390625 - ], - "bbox": [ - 92.16815948486328, - 335.6736145019531, - 554.04296875, - 345.67352294921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 335.6736145019531, - 554.04296875, - 407.41546630859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(share of species, %)", - "origin": [ - 57.96849822998047, - 415.332275390625 - ], - "bbox": [ - 57.96849822998047, - 345.8735046386719, - 141.26766967773438, - 355.8734130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 345.8735046386719, - 141.26766967773438, - 355.8734130859375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 107.15800476074219, - 364.82330322265625, - 539.0133666992188, - 374.8232116699219 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Genus", - "origin": [ - 107.15800476074219, - 434.2820739746094 - ], - "bbox": [ - 107.15800476074219, - 364.82330322265625, - 132.70773315429688, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.15800476074219, - 364.82330322265625, - 132.70773315429688, - 374.8232116699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepilithon", - "origin": [ - 214.5269317626953, - 434.2820739746094 - ], - "bbox": [ - 214.5269317626953, - 364.82330322265625, - 273.42633056640625, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.5269317626953, - 364.82330322265625, - 273.42633056640625, - 374.8232116699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Phytoepiphyton", - "origin": [ - 336.29571533203125, - 434.2820739746094 - ], - "bbox": [ - 336.29571533203125, - 364.82330322265625, - 399.63494873046875, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.29571533203125, - 364.82330322265625, - 399.63494873046875, - 374.8232116699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Algae on plant residues", - "origin": [ - 444.864501953125, - 434.2820739746094 - ], - "bbox": [ - 444.864501953125, - 364.82330322265625, - 539.0133666992188, - 374.8232116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.864501953125, - 364.82330322265625, - 539.0133666992188, - 374.8232116699219 - ] - } - ], - "tag": "on-table" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 64.94842529296875, - 382.52313232421875, - 505.26397705078125, - 454.30206298828125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Nitzschia", - "origin": [ - 64.94842529296875, - 451.9819030761719 - ], - "bbox": [ - 64.94842529296875, - 444.3021545410156, - 102.17806243896484, - 454.30206298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94842529296875, - 444.3021545410156, - 102.17806243896484, - 454.30206298828125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "29 (6.5)", - "origin": [ - 228.05679321289062, - 451.9819030761719 - ], - "bbox": [ - 228.05679321289062, - 382.52313232421875, - 259.7164611816406, - 392.5230407714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05679321289062, - 382.52313232421875, - 259.7164611816406, - 392.5230407714844 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11 (6.2)", - "origin": [ - 352.0755615234375, - 451.9819030761719 - ], - "bbox": [ - 352.0755615234375, - 382.52313232421875, - 383.73516845703125, - 392.5230407714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.0755615234375, - 382.52313232421875, - 383.73516845703125, - 392.5230407714844 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6 (8.1)", - "origin": [ - 478.60430908203125, - 451.9819030761719 - ], - "bbox": [ - 478.60430908203125, - 382.52313232421875, - 505.26397705078125, - 392.5230407714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.60430908203125, - 382.52313232421875, - 505.26397705078125, - 392.5230407714844 - ] - } - ], - "tag": "on-table" - }, - { - "number": 24, - "type": 0, - "bbox": [ - 64.94842529296875, - 398.22296142578125, - 494.50408935546875, - 470.00189208984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Navicula", - "origin": [ - 64.94842529296875, - 467.6817321777344 - ], - "bbox": [ - 64.94842529296875, - 460.0019836425781, - 101.05806732177734, - 470.00189208984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94842529296875, - 460.0019836425781, - 101.05806732177734, - 470.00189208984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "25 (5.6)", - "origin": [ - 228.05679321289062, - 467.6817321777344 - ], - "bbox": [ - 228.05679321289062, - 398.22296142578125, - 259.7164611816406, - 408.2228698730469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05679321289062, - 398.22296142578125, - 259.7164611816406, - 408.2228698730469 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8 (4.5)", - "origin": [ - 357.1054992675781, - 467.6817321777344 - ], - "bbox": [ - 357.1054992675781, - 398.22296142578125, - 383.7651672363281, - 408.2228698730469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.1054992675781, - 398.22296142578125, - 383.7651672363281, - 408.2228698730469 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.504150390625, - 467.6817321777344 - ], - "bbox": [ - 489.504150390625, - 398.22296142578125, - 494.50408935546875, - 408.2228698730469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.504150390625, - 398.22296142578125, - 494.50408935546875, - 408.2228698730469 - ] - } - ], - "tag": "on-table" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 64.94839477539062, - 413.92279052734375, - 505.263916015625, - 485.70172119140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Cymbella", - "origin": [ - 64.94839477539062, - 483.3815612792969 - ], - "bbox": [ - 64.94839477539062, - 475.7018127441406, - 103.27801513671875, - 485.70172119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94839477539062, - 475.7018127441406, - 103.27801513671875, - 485.70172119140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "24 (5.4)", - "origin": [ - 228.0567626953125, - 483.3815612792969 - ], - "bbox": [ - 228.0567626953125, - 413.92279052734375, - 259.7164306640625, - 423.9226989746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.0567626953125, - 413.92279052734375, - 259.7164306640625, - 423.9226989746094 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (7.3)", - "origin": [ - 352.0755310058594, - 483.3815612792969 - ], - "bbox": [ - 352.0755310058594, - 413.92279052734375, - 383.7351379394531, - 423.9226989746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.0755310058594, - 413.92279052734375, - 383.7351379394531, - 423.9226989746094 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (9.5)", - "origin": [ - 478.604248046875, - 483.3815612792969 - ], - "bbox": [ - 478.604248046875, - 413.92279052734375, - 505.263916015625, - 423.9226989746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.604248046875, - 413.92279052734375, - 505.263916015625, - 423.9226989746094 - ] - } - ], - "tag": "on-table" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 64.9483642578125, - 429.62261962890625, - 494.5040588378906, - 501.40155029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Oscillatoria", - "origin": [ - 64.9483642578125, - 499.0813903808594 - ], - "bbox": [ - 64.9483642578125, - 491.4016418457031, - 113.28788757324219, - 501.40155029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9483642578125, - 491.4016418457031, - 113.28788757324219, - 501.40155029296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "20 (4.5)", - "origin": [ - 228.05673217773438, - 499.0813903808594 - ], - "bbox": [ - 228.05673217773438, - 429.62261962890625, - 259.7164001464844, - 439.6225280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05673217773438, - 429.62261962890625, - 259.7164001464844, - 439.6225280761719 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4853515625, - 499.0813903808594 - ], - "bbox": [ - 365.4853515625, - 429.62261962890625, - 370.48529052734375, - 439.6225280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4853515625, - 429.62261962890625, - 370.48529052734375, - 439.6225280761719 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.5041198730469, - 499.0813903808594 - ], - "bbox": [ - 489.5041198730469, - 429.62261962890625, - 494.5040588378906, - 439.6225280761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.5041198730469, - 429.62261962890625, - 494.5040588378906, - 439.6225280761719 - ] - } - ], - "tag": "on-table" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 64.9483642578125, - 445.3224792480469, - 505.2638854980469, - 517.1014404296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Synedra", - "origin": [ - 64.9483642578125, - 514.78125 - ], - "bbox": [ - 64.9483642578125, - 507.10150146484375, - 97.71802520751953, - 517.1014404296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9483642578125, - 507.10150146484375, - 97.71802520751953, - 517.1014404296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "15 (3.4)", - "origin": [ - 228.05673217773438, - 514.78125 - ], - "bbox": [ - 228.05673217773438, - 445.3224792480469, - 259.7164001464844, - 455.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05673217773438, - 445.3224792480469, - 259.7164001464844, - 455.3223876953125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8 (4.5)", - "origin": [ - 357.1054382324219, - 514.78125 - ], - "bbox": [ - 357.1054382324219, - 445.3224792480469, - 383.7651062011719, - 455.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.1054382324219, - 445.3224792480469, - 383.7651062011719, - 455.3223876953125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3 (4.1)", - "origin": [ - 478.6042175292969, - 514.78125 - ], - "bbox": [ - 478.6042175292969, - 445.3224792480469, - 505.2638854980469, - 455.3223876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.6042175292969, - 445.3224792480469, - 505.2638854980469, - 455.3223876953125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 64.94833374023438, - 461.0223083496094, - 494.5040283203125, - 532.80126953125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Gloeocapsa", - "origin": [ - 64.94833374023438, - 530.4810791015625 - ], - "bbox": [ - 64.94833374023438, - 522.8013305664062, - 112.71784210205078, - 532.80126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94833374023438, - 522.8013305664062, - 112.71784210205078, - 532.80126953125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (2.9)", - "origin": [ - 228.05670166015625, - 530.4810791015625 - ], - "bbox": [ - 228.05670166015625, - 461.0223083496094, - 259.71636962890625, - 471.022216796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05670166015625, - 461.0223083496094, - 259.71636962890625, - 471.022216796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4853210449219, - 530.4810791015625 - ], - "bbox": [ - 365.4853210449219, - 461.0223083496094, - 370.4852600097656, - 471.022216796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4853210449219, - 461.0223083496094, - 370.4852600097656, - 471.022216796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.50408935546875, - 530.4810791015625 - ], - "bbox": [ - 489.50408935546875, - 461.0223083496094, - 494.5040283203125, - 471.022216796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.50408935546875, - 461.0223083496094, - 494.5040283203125, - 471.022216796875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 29, - "type": 0, - "bbox": [ - 64.94833374023438, - 476.7221374511719, - 494.5040283203125, - 548.5010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Scenedesmus", - "origin": [ - 64.94833374023438, - 546.180908203125 - ], - "bbox": [ - 64.94833374023438, - 538.5011596679688, - 117.70779418945312, - 548.5010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94833374023438, - 538.5011596679688, - 117.70779418945312, - 548.5010986328125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (2.9)", - "origin": [ - 228.05670166015625, - 546.180908203125 - ], - "bbox": [ - 228.05670166015625, - 476.7221374511719, - 259.71636962890625, - 486.7220458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05670166015625, - 476.7221374511719, - 259.71636962890625, - 486.7220458984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13 (7.3)", - "origin": [ - 352.0754699707031, - 546.180908203125 - ], - "bbox": [ - 352.0754699707031, - 476.7221374511719, - 383.7350769042969, - 486.7220458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.0754699707031, - 476.7221374511719, - 383.7350769042969, - 486.7220458984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.50408935546875, - 546.180908203125 - ], - "bbox": [ - 489.50408935546875, - 476.7221374511719, - 494.5040283203125, - 486.7220458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.50408935546875, - 476.7221374511719, - 494.5040283203125, - 486.7220458984375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 64.94833374023438, - 492.4219665527344, - 505.26385498046875, - 564.200927734375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Fragillaria", - "origin": [ - 64.94833374023438, - 561.8807373046875 - ], - "bbox": [ - 64.94833374023438, - 554.2009887695312, - 109.9578857421875, - 564.200927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94833374023438, - 554.2009887695312, - 109.9578857421875, - 564.200927734375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "12 (2.7)", - "origin": [ - 228.05670166015625, - 561.8807373046875 - ], - "bbox": [ - 228.05670166015625, - 492.4219665527344, - 259.71636962890625, - 502.421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.05670166015625, - 492.4219665527344, - 259.71636962890625, - 502.421875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8 (4.5)", - "origin": [ - 357.10540771484375, - 561.8807373046875 - ], - "bbox": [ - 357.10540771484375, - 492.4219665527344, - 383.76507568359375, - 502.421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.10540771484375, - 492.4219665527344, - 383.76507568359375, - 502.421875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4 (5.4)", - "origin": [ - 478.60418701171875, - 561.8807373046875 - ], - "bbox": [ - 478.60418701171875, - 492.4219665527344, - 505.26385498046875, - 502.421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.60418701171875, - 492.4219665527344, - 505.26385498046875, - 502.421875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 64.94830322265625, - 508.1217956542969, - 505.2638244628906, - 579.9007568359375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Achnanthes", - "origin": [ - 64.94830322265625, - 577.58056640625 - ], - "bbox": [ - 64.94830322265625, - 569.9008178710938, - 111.60782623291016, - 579.9007568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94830322265625, - 569.9008178710938, - 111.60782623291016, - 579.9007568359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2 (2.7)", - "origin": [ - 233.08660888671875, - 577.58056640625 - ], - "bbox": [ - 233.08660888671875, - 508.1217956542969, - 259.746337890625, - 518.1217041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.08660888671875, - 508.1217956542969, - 259.746337890625, - 518.1217041015625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.48529052734375, - 577.58056640625 - ], - "bbox": [ - 365.48529052734375, - 508.1217956542969, - 370.4852294921875, - 518.1217041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.48529052734375, - 508.1217956542969, - 370.4852294921875, - 518.1217041015625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4 (5.4)", - "origin": [ - 478.6041564941406, - 577.58056640625 - ], - "bbox": [ - 478.6041564941406, - 508.1217956542969, - 505.2638244628906, - 518.1217041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.6041564941406, - 508.1217956542969, - 505.2638244628906, - 518.1217041015625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 64.94827270507812, - 523.8216552734375, - 494.50396728515625, - 595.6005859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Lyngbya", - "origin": [ - 64.94827270507812, - 593.2803955078125 - ], - "bbox": [ - 64.94827270507812, - 585.6006469726562, - 99.3879165649414, - 595.6005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94827270507812, - 585.6006469726562, - 99.3879165649414, - 595.6005859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11 (2.5)", - "origin": [ - 228.056640625, - 593.2803955078125 - ], - "bbox": [ - 228.056640625, - 523.8216552734375, - 259.71630859375, - 533.821533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.056640625, - 523.8216552734375, - 259.71630859375, - 533.821533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4852600097656, - 593.2803955078125 - ], - "bbox": [ - 365.4852600097656, - 523.8216552734375, - 370.4851989746094, - 533.821533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4852600097656, - 523.8216552734375, - 370.4851989746094, - 533.821533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.5040283203125, - 593.2803955078125 - ], - "bbox": [ - 489.5040283203125, - 523.8216552734375, - 494.50396728515625, - 533.821533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.5040283203125, - 523.8216552734375, - 494.50396728515625, - 533.821533203125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 33, - "type": 0, - "bbox": [ - 64.94827270507812, - 539.5215454101562, - 505.2537841796875, - 611.3004760742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Gomphonema", - "origin": [ - 64.94827270507812, - 608.9802856445312 - ], - "bbox": [ - 64.94827270507812, - 601.300537109375, - 121.04768371582031, - 611.3004760742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.94827270507812, - 601.300537109375, - 121.04768371582031, - 611.3004760742188 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4665069580078, - 608.9802856445312 - ], - "bbox": [ - 241.4665069580078, - 539.5215454101562, - 246.46646118164062, - 549.5214233398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4665069580078, - 539.5215454101562, - 246.46646118164062, - 549.5214233398438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "9 (5.1)", - "origin": [ - 357.0953369140625, - 608.9802856445312 - ], - "bbox": [ - 357.0953369140625, - 539.5215454101562, - 383.7550048828125, - 549.5214233398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.0953369140625, - 539.5215454101562, - 383.7550048828125, - 549.5214233398438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4 (5.4)", - "origin": [ - 478.5941162109375, - 608.9802856445312 - ], - "bbox": [ - 478.5941162109375, - 539.5215454101562, - 505.2537841796875, - 549.5214233398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5941162109375, - 539.5215454101562, - 505.2537841796875, - 549.5214233398438 - ] - } - ], - "tag": "on-table" - }, - { - "number": 34, - "type": 0, - "bbox": [ - 64.938232421875, - 555.2213745117188, - 505.2437438964844, - 627.0003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Eunotia", - "origin": [ - 64.938232421875, - 624.6801147460938 - ], - "bbox": [ - 64.938232421875, - 617.0003662109375, - 96.60791015625, - 627.0003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.938232421875, - 617.0003662109375, - 96.60791015625, - 627.0003051757812 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4564666748047, - 624.6801147460938 - ], - "bbox": [ - 241.4564666748047, - 555.2213745117188, - 246.4564208984375, - 565.2212524414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4564666748047, - 555.2213745117188, - 246.4564208984375, - 565.2212524414062 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (4.0)", - "origin": [ - 357.0852966308594, - 624.6801147460938 - ], - "bbox": [ - 357.0852966308594, - 555.2213745117188, - 383.7449645996094, - 565.2212524414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.0852966308594, - 555.2213745117188, - 383.7449645996094, - 565.2212524414062 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3 (4.1)", - "origin": [ - 478.5840759277344, - 624.6801147460938 - ], - "bbox": [ - 478.5840759277344, - 555.2213745117188, - 505.2437438964844, - 565.2212524414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5840759277344, - 555.2213745117188, - 505.2437438964844, - 565.2212524414062 - ] - } - ], - "tag": "on-table" - }, - { - "number": 35, - "type": 0, - "bbox": [ - 64.92819213867188, - 570.9212036132812, - 494.473876953125, - 642.7001342773438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Monoraphidium", - "origin": [ - 64.92819213867188, - 640.3799438476562 - ], - "bbox": [ - 64.92819213867188, - 632.7001953125, - 129.92752075195312, - 642.7001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.92819213867188, - 632.7001953125, - 129.92752075195312, - 642.7001342773438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.44642639160156, - 640.3799438476562 - ], - "bbox": [ - 241.44642639160156, - 570.9212036132812, - 246.44638061523438, - 580.9210815429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.44642639160156, - 570.9212036132812, - 246.44638061523438, - 580.9210815429688 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (4.0)", - "origin": [ - 357.07525634765625, - 640.3799438476562 - ], - "bbox": [ - 357.07525634765625, - 570.9212036132812, - 383.73492431640625, - 580.9210815429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.07525634765625, - 570.9212036132812, - 383.73492431640625, - 580.9210815429688 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.47393798828125, - 640.3799438476562 - ], - "bbox": [ - 489.47393798828125, - 570.9212036132812, - 494.473876953125, - 580.9210815429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.47393798828125, - 570.9212036132812, - 494.473876953125, - 580.9210815429688 - ] - } - ], - "tag": "on-table" - }, - { - "number": 36, - "type": 0, - "bbox": [ - 64.91818237304688, - 586.62109375, - 494.4638671875, - 658.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Cosmarium", - "origin": [ - 64.91818237304688, - 656.079833984375 - ], - "bbox": [ - 64.91818237304688, - 648.4000854492188, - 111.58770751953125, - 658.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.91818237304688, - 648.4000854492188, - 111.58770751953125, - 658.4000244140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.43641662597656, - 656.079833984375 - ], - "bbox": [ - 241.43641662597656, - 586.62109375, - 246.43637084960938, - 596.6209716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.43641662597656, - 586.62109375, - 246.43637084960938, - 596.6209716796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7 (4.0)", - "origin": [ - 357.06524658203125, - 656.079833984375 - ], - "bbox": [ - 357.06524658203125, - 586.62109375, - 383.72491455078125, - 596.6209716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.06524658203125, - 586.62109375, - 383.72491455078125, - 596.6209716796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 489.46392822265625, - 656.079833984375 - ], - "bbox": [ - 489.46392822265625, - 586.62109375, - 494.4638671875, - 596.6209716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.46392822265625, - 586.62109375, - 494.4638671875, - 596.6209716796875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 37, - "type": 0, - "bbox": [ - 64.90817260742188, - 602.3209228515625, - 505.22369384765625, - 674.099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Microcystis", - "origin": [ - 64.90817260742188, - 671.7796630859375 - ], - "bbox": [ - 64.90817260742188, - 664.0999145507812, - 111.56771850585938, - 674.099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.90817260742188, - 664.0999145507812, - 111.56771850585938, - 674.099853515625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.42640686035156, - 671.7796630859375 - ], - "bbox": [ - 241.42640686035156, - 602.3209228515625, - 246.42636108398438, - 612.32080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.42640686035156, - 602.3209228515625, - 246.42636108398438, - 612.32080078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4451599121094, - 671.7796630859375 - ], - "bbox": [ - 365.4451599121094, - 602.3209228515625, - 370.4450988769531, - 612.32080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4451599121094, - 602.3209228515625, - 370.4450988769531, - 612.32080078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2 (2.7)", - "origin": [ - 478.56402587890625, - 671.7796630859375 - ], - "bbox": [ - 478.56402587890625, - 602.3209228515625, - 505.22369384765625, - 612.32080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.56402587890625, - 602.3209228515625, - 505.22369384765625, - 612.32080078125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 38, - "type": 0, - "bbox": [ - 64.90814208984375, - 618.020751953125, - 505.2236633300781, - 689.7996826171875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Stephanodiscus", - "origin": [ - 64.90814208984375, - 687.4794921875 - ], - "bbox": [ - 64.90814208984375, - 679.7997436523438, - 127.12750244140625, - 689.7996826171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.90814208984375, - 679.7997436523438, - 127.12750244140625, - 689.7996826171875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.42637634277344, - 687.4794921875 - ], - "bbox": [ - 241.42637634277344, - 618.020751953125, - 246.42633056640625, - 628.0206298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.42637634277344, - 618.020751953125, - 246.42633056640625, - 628.0206298828125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.44512939453125, - 687.4794921875 - ], - "bbox": [ - 365.44512939453125, - 618.020751953125, - 370.445068359375, - 628.0206298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.44512939453125, - 618.020751953125, - 370.445068359375, - 628.0206298828125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2 (2.7)", - "origin": [ - 478.5639953613281, - 687.4794921875 - ], - "bbox": [ - 478.5639953613281, - 618.020751953125, - 505.2236633300781, - 628.0206298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.5639953613281, - 618.020751953125, - 505.2236633300781, - 628.0206298828125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 39, - "type": 0, - "bbox": [ - 64.90811157226562, - 633.7205810546875, - 505.2236328125, - 705.49951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Cyclotella", - "origin": [ - 64.90811157226562, - 703.1793212890625 - ], - "bbox": [ - 64.90811157226562, - 695.4995727539062, - 106.01771545410156, - 705.49951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.90811157226562, - 695.4995727539062, - 106.01771545410156, - 705.49951171875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 241.4263458251953, - 703.1793212890625 - ], - "bbox": [ - 241.4263458251953, - 633.7205810546875, - 246.42630004882812, - 643.720458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.4263458251953, - 633.7205810546875, - 246.42630004882812, - 643.720458984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "–", - "origin": [ - 365.4450988769531, - 703.1793212890625 - ], - "bbox": [ - 365.4450988769531, - 633.7205810546875, - 370.4450378417969, - 643.720458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.4450988769531, - 633.7205810546875, - 370.4450378417969, - 643.720458984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2 (2.7)", - "origin": [ - 478.56396484375, - 703.1793212890625 - ], - "bbox": [ - 478.56396484375, - 633.7205810546875, - 505.2236328125, - 643.720458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.56396484375, - 633.7205810546875, - 505.2236328125, - 643.720458984375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 40, - "type": 0, - "bbox": [ - 64.9080810546875, - 649.42041015625, - 510.19354248046875, - 659.4202880859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Total", - "origin": [ - 64.9080810546875, - 718.879150390625 - ], - "bbox": [ - 64.9080810546875, - 649.42041015625, - 86.01786804199219, - 659.4202880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 64.9080810546875, - 649.42041015625, - 86.01786804199219, - 659.4202880859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "174 (39.0)", - "origin": [ - 220.46652221679688, - 718.879150390625 - ], - "bbox": [ - 220.46652221679688, - 649.42041015625, - 262.1260986328125, - 659.4202880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.46652221679688, - 649.42041015625, - 262.1260986328125, - 659.4202880859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "91 (51.4)", - "origin": [ - 349.5152282714844, - 718.879150390625 - ], - "bbox": [ - 349.5152282714844, - 649.42041015625, - 386.1747741699219, - 659.4202880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.5152282714844, - 649.42041015625, - 386.1747741699219, - 659.4202880859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "37 (50.0)", - "origin": [ - 473.53399658203125, - 718.879150390625 - ], - "bbox": [ - 473.53399658203125, - 649.42041015625, - 510.19354248046875, - 659.4202880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.53399658203125, - 649.42041015625, - 510.19354248046875, - 659.4202880859375 - ] - } - ], - "tag": "on-table" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 2, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_3": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 3, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 522.7199999999999, - 355.2, - 532.3199999999999, - 364.79999999999995 - ], - "image_path": "equations_inline/3_522_355_532_364.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 685.66357421875, - 612.0, - 694.6634521484375 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 57.96849060058594, - -8.511833190917969, - 298.9872741699219, - 669.3013305664062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Onega. The highest values are observed at the optimal", - "origin": [ - 57.96849822998047, - 67.89288330078125 - ], - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.93231201171875, - 2.488067626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.93231201171875, - 2.488067626953125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "combination of light intensity and wind-wave load.", - "origin": [ - 57.96849822998047, - 79.09075927734375 - ], - "bbox": [ - 57.96849822998047, - 2.6860427856445312, - 298.8332214355469, - 13.685943603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 2.6860427856445312, - 298.8332214355469, - 13.685943603515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Therefore, the location of the curve peak would change", - "origin": [ - 57.96849822998047, - 90.28863525390625 - ], - "bbox": [ - 57.96849822998047, - 13.883918762207031, - 298.8552551269531, - 24.883819580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 13.883918762207031, - 298.8552551269531, - 24.883819580078125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "depending on the water body, season, and weather.", - "origin": [ - 57.96849822998047, - 101.48651123046875 - ], - "bbox": [ - 57.96849822998047, - 25.08179473876953, - 281.4423828125, - 36.081695556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 25.08179473876953, - 281.4423828125, - 36.081695556640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In Lake Teletskoye at a depth of less than 1.5 m no", - "origin": [ - 72.13636779785156, - 115.44537353515625 - ], - "bbox": [ - 72.13636779785156, - 39.04065704345703, - 298.8332824707031, - 50.040557861328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13636779785156, - 39.04065704345703, - 298.8332824707031, - 50.040557861328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "seasonal and year-to-year dynamics of the phyto-", - "origin": [ - 57.96849822998047, - 126.64324951171875 - ], - "bbox": [ - 57.96849822998047, - 50.23853302001953, - 298.9102783203125, - 61.238433837890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 50.23853302001953, - 298.9102783203125, - 61.238433837890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "epilithon structure has been noted. It is likely to be con-", - "origin": [ - 57.96849060058594, - 137.84112548828125 - ], - "bbox": [ - 57.96849060058594, - 61.43640899658203, - 298.9102783203125, - 72.43630981445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 61.43640899658203, - 298.9102783203125, - 72.43630981445312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "nected to the prevailing influence of hydrodynamic", - "origin": [ - 57.96849060058594, - 149.03900146484375 - ], - "bbox": [ - 57.96849060058594, - 72.63428497314453, - 298.67926025390625, - 83.63418579101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 72.63428497314453, - 298.67926025390625, - 83.63418579101562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "factor over the algocenoses that creates unstable condi-", - "origin": [ - 57.96849060058594, - 160.23687744140625 - ], - "bbox": [ - 57.96849060058594, - 83.83216094970703, - 298.9102783203125, - 94.83206176757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 83.83216094970703, - 298.9102783203125, - 94.83206176757812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tions, under which small-celled pioneering and wide-", - "origin": [ - 57.96849060058594, - 171.43475341796875 - ], - "bbox": [ - 57.96849060058594, - 95.03003692626953, - 298.9102783203125, - 106.02993774414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 95.03003692626953, - 298.9102783203125, - 106.02993774414062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "spread species of algae primarily vegetate or the algae", - "origin": [ - 57.96849060058594, - 182.63262939453125 - ], - "bbox": [ - 57.96849060058594, - 106.22791290283203, - 298.9102478027344, - 117.22781372070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 106.22791290283203, - 298.9102478027344, - 117.22781372070312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "resistant to the dynamic load of water, such as", - "origin": [ - 57.96849060058594, - 193.83050537109375 - ], - "bbox": [ - 57.96849060058594, - 117.42578887939453, - 259.06866455078125, - 128.42568969726562 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Ulothrix", - "origin": [ - 259.06866455078125, - 193.83050537109375 - ], - "bbox": [ - 259.06866455078125, - 185.38278198242188, - 298.8663024902344, - 196.3826904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 117.42578887939453, - 298.8663024902344, - 196.3826904296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "zonata", - "origin": [ - 57.968505859375, - 205.02838134765625 - ], - "bbox": [ - 57.968505859375, - 196.58065795898438, - 87.30522918701172, - 207.58056640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ". Since the instability in the shallow areas of the", - "origin": [ - 87.42623901367188, - 205.02838134765625 - ], - "bbox": [ - 87.42623901367188, - 128.6236572265625, - 298.8772888183594, - 139.62356567382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 128.6236572265625, - 298.8772888183594, - 207.58056640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "littoral is observed all year around, the structure of the", - "origin": [ - 57.968505859375, - 216.22625732421875 - ], - "bbox": [ - 57.968505859375, - 139.821533203125, - 298.8772888183594, - 150.82144165039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 139.821533203125, - 298.8772888183594, - 150.82144165039062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algocenoses is similar for the whole period of algae", - "origin": [ - 57.968505859375, - 227.42413330078125 - ], - "bbox": [ - 57.968505859375, - 151.0194091796875, - 298.9102478027344, - 162.01931762695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 151.0194091796875, - 298.9102478027344, - 162.01931762695312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "vegetation.", - "origin": [ - 57.968505859375, - 238.62200927734375 - ], - "bbox": [ - 57.968505859375, - 162.21728515625, - 106.5440673828125, - 173.21719360351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 162.21728515625, - 106.5440673828125, - 173.21719360351562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "As the water level in the lake drops, the algocenoses", - "origin": [ - 72.1363754272461, - 252.58087158203125 - ], - "bbox": [ - 72.1363754272461, - 176.1761474609375, - 298.8662414550781, - 187.17605590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1363754272461, - 176.1761474609375, - 298.8662414550781, - 187.17605590820312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "with large biomass come under the wave influence. The", - "origin": [ - 57.968505859375, - 263.77874755859375 - ], - "bbox": [ - 57.968505859375, - 187.3740234375, - 298.6902770996094, - 198.37393188476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 187.3740234375, - 298.6902770996094, - 198.37393188476562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "flakes of diatoms are torn from the substrate by the", - "origin": [ - 57.968505859375, - 274.97662353515625 - ], - "bbox": [ - 57.968505859375, - 198.5718994140625, - 298.8992919921875, - 209.57180786132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 198.5718994140625, - 298.8992919921875, - 209.57180786132812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "waves and transported to pelagic zone or along the", - "origin": [ - 57.968505859375, - 286.1745300292969 - ], - "bbox": [ - 57.968505859375, - 209.76980590820312, - 298.8772888183594, - 220.76971435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 209.76980590820312, - 298.8772888183594, - 220.76971435546875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "shores making the impression of the bloom.", - "origin": [ - 57.968505859375, - 297.3724365234375 - ], - "bbox": [ - 57.968505859375, - 220.96771240234375, - 250.76373291015625, - 231.96762084960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 220.96771240234375, - 250.76373291015625, - 231.96762084960938 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "At a depth of 1.5–30 m some filaments or stands of", - "origin": [ - 72.1363754272461, - 311.331298828125 - ], - "bbox": [ - 72.1363754272461, - 234.92657470703125, - 298.85528564453125, - 245.92648315429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1363754272461, - 234.92657470703125, - 298.85528564453125, - 245.92648315429688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the green algae", - "origin": [ - 57.968505859375, - 322.5292053222656 - ], - "bbox": [ - 57.968505859375, - 246.12448120117188, - 123.8799057006836, - 257.1243896484375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Tetraspora cylindrica", - "origin": [ - 123.8799057006836, - 322.5292053222656 - ], - "bbox": [ - 123.8799057006836, - 314.08148193359375, - 221.20704650878906, - 325.0813903808594 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (W.) Ag. (1–2 m)", - "origin": [ - 221.20704650878906, - 322.5292053222656 - ], - "bbox": [ - 221.20704650878906, - 246.12448120117188, - 298.9872741699219, - 257.1243896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 246.12448120117188, - 298.9872741699219, - 325.0813903808594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and", - "origin": [ - 57.97950744628906, - 333.72711181640625 - ], - "bbox": [ - 57.97950744628906, - 257.3223876953125, - 73.86335754394531, - 268.3222961425781 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Aegagropila holsatica", - "origin": [ - 73.86335754394531, - 333.72711181640625 - ], - "bbox": [ - 73.86335754394531, - 325.2793884277344, - 177.65841674804688, - 336.279296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " K", - "origin": [ - 177.65841674804688, - 333.72711181640625 - ], - "bbox": [ - 177.65841674804688, - 257.3223876953125, - 190.06631469726562, - 268.3222961425781 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 189.747314453125, - 333.04510498046875 - ], - "bbox": [ - 189.747314453125, - 265.19427490234375, - 195.8478546142578, - 276.19415283203125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. (2–30 m) in phyto-", - "origin": [ - 190.05531311035156, - 333.7601013183594 - ], - "bbox": [ - 190.05531311035156, - 257.3223876953125, - 298.9103088378906, - 268.35528564453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97950744628906, - 257.3223876953125, - 298.9103088378906, - 336.279296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "benthos are met [7, 8].", - "origin": [ - 57.979522705078125, - 344.9250183105469 - ], - "bbox": [ - 57.979522705078125, - 268.5202941894531, - 156.95660400390625, - 279.52020263671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 268.5202941894531, - 156.95660400390625, - 279.52020263671875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The increase of unfavorable environmental factors", - "origin": [ - 72.14739227294922, - 358.8838806152344 - ], - "bbox": [ - 72.14739227294922, - 282.4791564941406, - 298.9103088378906, - 293.47906494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.14739227294922, - 282.4791564941406, - 298.9103088378906, - 293.47906494140625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "directed toward the water edge is indicated by the re-", - "origin": [ - 57.979522705078125, - 370.081787109375 - ], - "bbox": [ - 57.979522705078125, - 293.67706298828125, - 298.9212646484375, - 304.6769714355469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 293.67706298828125, - 298.9212646484375, - 304.6769714355469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "place of polydominant communities with monodomi-", - "origin": [ - 57.979522705078125, - 381.2796936035156 - ], - "bbox": [ - 57.979522705078125, - 304.8749694824219, - 298.9212646484375, - 315.8748779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 304.8749694824219, - 298.9212646484375, - 315.8748779296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "nant ones. Thus, at a depth from 2–3 to 30 m the", - "origin": [ - 57.979522705078125, - 392.47760009765625 - ], - "bbox": [ - 57.979522705078125, - 316.0728759765625, - 298.8773193359375, - 327.0727844238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 316.0728759765625, - 298.8773193359375, - 327.0727844238281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "communities,", - "origin": [ - 57.979522705078125, - 403.6755065917969 - ], - "bbox": [ - 57.979522705078125, - 327.2707824707031, - 117.56598663330078, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 327.2707824707031, - 117.56598663330078, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "particularly", - "origin": [ - 126.89390563964844, - 403.6755065917969 - ], - "bbox": [ - 126.89390563964844, - 327.2707824707031, - 177.6034393310547, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.89390563964844, - 327.2707824707031, - 177.6034393310547, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of", - "origin": [ - 187.15135192871094, - 403.6755065917969 - ], - "bbox": [ - 187.15135192871094, - 327.2707824707031, - 196.31427001953125, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.15135192871094, - 327.2707824707031, - 196.31427001953125, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "diatoms,", - "origin": [ - 205.75218200683594, - 403.6755065917969 - ], - "bbox": [ - 205.75218200683594, - 327.2707824707031, - 243.33883666992188, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.75218200683594, - 327.2707824707031, - 243.33883666992188, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "are", - "origin": [ - 252.7217559814453, - 403.6755065917969 - ], - "bbox": [ - 252.7217559814453, - 327.2707824707031, - 266.1526184082031, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.7217559814453, - 327.2707824707031, - 266.1526184082031, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "poly-", - "origin": [ - 275.5355224609375, - 403.6755065917969 - ], - "bbox": [ - 275.5355224609375, - 327.2707824707031, - 298.9212951660156, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.5355224609375, - 327.2707824707031, - 298.9212951660156, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dominant. Poretskii and Sheshukova [8] give 6 to 12", - "origin": [ - 57.979522705078125, - 414.8734130859375 - ], - "bbox": [ - 57.979522705078125, - 338.46868896484375, - 298.84429931640625, - 349.4685974121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 338.46868896484375, - 298.84429931640625, - 349.4685974121094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dominating species. At a depth of less than 1.5 m only", - "origin": [ - 57.979522705078125, - 426.0713195800781 - ], - "bbox": [ - 57.979522705078125, - 349.6665954589844, - 298.7563171386719, - 360.66650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 349.6665954589844, - 298.7563171386719, - 360.66650390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "one or two species dominate.", - "origin": [ - 57.979522705078125, - 437.26922607421875 - ], - "bbox": [ - 57.979522705078125, - 360.864501953125, - 185.9853515625, - 371.8644104003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 360.864501953125, - 185.9853515625, - 371.8644104003906 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In phytoepilithon the cosmopolite forms dominate,", - "origin": [ - 72.14739227294922, - 451.22808837890625 - ], - "bbox": [ - 72.14739227294922, - 374.8233642578125, - 298.8993225097656, - 385.8232727050781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.14739227294922, - 374.8233642578125, - 298.8993225097656, - 385.8232727050781 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "199 taxa lower than genus (37% of the total composi-", - "origin": [ - 57.979522705078125, - 462.4259948730469 - ], - "bbox": [ - 57.979522705078125, - 386.0212707519531, - 298.91033935546875, - 397.02117919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 386.0212707519531, - 298.91033935546875, - 397.02117919921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion). The Arctic-Alpine forms make up 28 (5.2%),", - "origin": [ - 57.979522705078125, - 473.6239013671875 - ], - "bbox": [ - 57.979522705078125, - 397.21917724609375, - 298.85528564453125, - 408.2190856933594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 397.21917724609375, - 298.85528564453125, - 408.2190856933594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "boreal—96 taxa (17.8% of the total composition). The", - "origin": [ - 57.979522705078125, - 484.8218078613281 - ], - "bbox": [ - 57.979522705078125, - 408.4170837402344, - 298.8883056640625, - 419.4169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 408.4170837402344, - 298.8883056640625, - 419.4169921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "range of salinity reflects the low mineralization of the", - "origin": [ - 57.979522705078125, - 496.01971435546875 - ], - "bbox": [ - 57.979522705078125, - 419.614990234375, - 298.8882751464844, - 430.6148986816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 419.614990234375, - 298.8882751464844, - 430.6148986816406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water in the lake. The share of indifferent species is", - "origin": [ - 57.979522705078125, - 507.2176208496094 - ], - "bbox": [ - 57.979522705078125, - 430.8128967285156, - 298.9103088378906, - 441.81280517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 430.8128967285156, - 298.9103088378906, - 441.81280517578125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "248 taxa (46.1% of the taxonomic composition)", - "origin": [ - 57.979522705078125, - 518.41552734375 - ], - "bbox": [ - 57.979522705078125, - 442.01080322265625, - 298.8443298339844, - 453.0107116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 442.01080322265625, - 298.8443298339844, - 453.0107116699219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(Fig. 2), drimophiles and halophobes—38 (7.1%) and", - "origin": [ - 57.979522705078125, - 529.6134033203125 - ], - "bbox": [ - 57.979522705078125, - 453.20867919921875, - 298.8772888183594, - 464.2085876464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 453.20867919921875, - 298.8772888183594, - 464.2085876464844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "17 taxa (3.2% of taxonomic composition), respectively.", - "origin": [ - 57.979522705078125, - 540.8113403320312 - ], - "bbox": [ - 57.979522705078125, - 464.4066162109375, - 298.6902770996094, - 475.4065246582031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 464.4066162109375, - 298.6902770996094, - 475.4065246582031 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Mesohalophiles count 9 taxa (1.7%). The indicators of", - "origin": [ - 57.979522705078125, - 552.0092163085938 - ], - "bbox": [ - 57.979522705078125, - 475.6044921875, - 298.8663024902344, - 486.6044006347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 475.6044921875, - 298.8663024902344, - 486.6044006347656 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "pH are prevailed by indifferent species—100 taxa", - "origin": [ - 57.979522705078125, - 563.2070922851562 - ], - "bbox": [ - 57.979522705078125, - 486.8023681640625, - 298.9102783203125, - 497.8022766113281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 486.8023681640625, - 298.9102783203125, - 497.8022766113281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(18.6% of the total composition). The excess of the", - "origin": [ - 57.979522705078125, - 574.405029296875 - ], - "bbox": [ - 57.979522705078125, - 498.00030517578125, - 298.8882751464844, - 509.0002136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 498.00030517578125, - 298.8882751464844, - 509.0002136230469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "share of alkaliphiles (81 and 15.1%) over the acido-", - "origin": [ - 57.979522705078125, - 585.6029052734375 - ], - "bbox": [ - 57.979522705078125, - 509.19818115234375, - 298.92132568359375, - 520.1981201171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 509.19818115234375, - 298.92132568359375, - 520.1981201171875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "philes (14 and 2.6%) is a reflection of alkalescent me-", - "origin": [ - 57.97953796386719, - 596.80078125 - ], - "bbox": [ - 57.97953796386719, - 520.3960571289062, - 298.92132568359375, - 531.39599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 520.3960571289062, - 298.92132568359375, - 531.39599609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dium reaction. The characteristic in relation to the", - "origin": [ - 57.97953796386719, - 607.9986572265625 - ], - "bbox": [ - 57.97953796386719, - 531.5939331054688, - 298.9102783203125, - 542.5938720703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 531.5939331054688, - 298.9102783203125, - 542.5938720703125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "organic pollution is known only for 35.3% of all listed", - "origin": [ - 57.97953796386719, - 619.196533203125 - ], - "bbox": [ - 57.97953796386719, - 542.7918090820312, - 298.888427734375, - 553.791748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 542.7918090820312, - 298.888427734375, - 553.791748046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algae forms. The majority of them, 146 taxa (27.1%),", - "origin": [ - 57.97953796386719, - 630.3944702148438 - ], - "bbox": [ - 57.97953796386719, - 553.98974609375, - 298.8222961425781, - 564.9896240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 553.98974609375, - 298.8222961425781, - 564.9896240234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "are xeno- oligo-, and", - "origin": [ - 57.97953796386719, - 641.5923461914062 - ], - "bbox": [ - 57.97953796386719, - 565.1876220703125, - 154.30564880371094, - 576.1875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 154.30564880371094, - 641.5923461914062 - ], - "bbox": [ - 154.30564880371094, - 633.1370239257812, - 164.0405731201172, - 644.169921875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "-mesosaprobionts, and inhabit", - "origin": [ - 163.402587890625, - 641.5923461914062 - ], - "bbox": [ - 163.402587890625, - 565.1876220703125, - 298.8223571777344, - 576.1875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 565.1876220703125, - 298.8223571777344, - 644.169921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "pure water.", - "origin": [ - 57.968544006347656, - 652.7902221679688 - ], - "bbox": [ - 57.968544006347656, - 576.385498046875, - 106.88510131835938, - 587.3853759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968544006347656, - 576.385498046875, - 106.88510131835938, - 587.3853759765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The composition of", - "origin": [ - 72.13641357421875, - 666.7491455078125 - ], - "bbox": [ - 72.13641357421875, - 590.3444213867188, - 161.29058837890625, - 601.3443603515625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " phytoepiphyton", - "origin": [ - 161.29058837890625, - 666.7491455078125 - ], - "bbox": [ - 161.29058837890625, - 658.3014526367188, - 233.36196899414062, - 669.3013305664062 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " on the higher", - "origin": [ - 233.36196899414062, - 666.7491455078125 - ], - "bbox": [ - 233.36196899414062, - 590.3444213867188, - 298.8222961425781, - 601.3443603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13641357421875, - 590.3444213867188, - 298.8222961425781, - 669.3013305664062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water plants in Lake Teletskoye lists 182 species of al-", - "origin": [ - 57.968536376953125, - 677.947021484375 - ], - "bbox": [ - 57.968536376953125, - 601.5422973632812, - 298.91033935546875, - 612.542236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968536376953125, - 601.5422973632812, - 298.91033935546875, - 612.542236328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "gae (203 taxa lower than genus) of six sections. The list", - "origin": [ - 57.96855163574219, - 689.1558837890625 - ], - "bbox": [ - 57.96855163574219, - 612.7511596679688, - 298.88836669921875, - 623.7510986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96855163574219, - 612.7511596679688, - 298.88836669921875, - 623.7510986328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "is dominated by diatoms (53% of the species composi-", - "origin": [ - 57.96855163574219, - 700.3538208007812 - ], - "bbox": [ - 57.96855163574219, - 623.9490966796875, - 298.91033935546875, - 634.948974609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96855163574219, - 623.9490966796875, - 298.91033935546875, - 634.948974609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion), green (30%) and blue-green (14%) algae (see", - "origin": [ - 57.96855163574219, - 711.562744140625 - ], - "bbox": [ - 57.96855163574219, - 635.1580200195312, - 298.9322814941406, - 646.157958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96855163574219, - 635.1580200195312, - 298.9322814941406, - 646.157958984375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Fig. 1).", - "origin": [ - 57.96855163574219, - 722.7606201171875 - ], - "bbox": [ - 57.96855163574219, - 646.3558959960938, - 90.05525970458984, - 657.3558349609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96855163574219, - 646.3558959960938, - 90.05525970458984, - 657.3558349609375 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 313.0782470703125, - -8.578117370605469, - 554.1199340820312, - 657.371826171875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The highest diversity is shown by the families Fra-", - "origin": [ - 327.257080078125, - 67.82659912109375 - ], - "bbox": [ - 327.257080078125, - -8.578117370605469, - 554.02001953125, - 2.432769775390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.257080078125, - -8.578117370605469, - 554.02001953125, - 2.432769775390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "gilariaceae, Naviculaceae, Cymbellaceae, Scenedes-", - "origin": [ - 313.0892333984375, - 79.03546142578125 - ], - "bbox": [ - 313.0892333984375, - 2.6307449340820312, - 554.031005859375, - 13.641632080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0892333984375, - 2.6307449340820312, - 554.031005859375, - 13.641632080078125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "maceae, and the genera", - "origin": [ - 313.0892333984375, - 90.24432373046875 - ], - "bbox": [ - 313.0892333984375, - 13.839607238769531, - 431.887939453125, - 24.839508056640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Cymbella", - "origin": [ - 431.887939453125, - 90.24432373046875 - ], - "bbox": [ - 431.887939453125, - 81.7966079711914, - 482.23468017578125, - 92.79650115966797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 482.2677001953125, - 90.24432373046875 - ], - "bbox": [ - 482.2677001953125, - 13.839607238769531, - 485.0176696777344, - 24.839508056640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Scenedesmus", - "origin": [ - 485.0176696777344, - 90.24432373046875 - ], - "bbox": [ - 485.0176696777344, - 81.7966079711914, - 551.237060546875, - 92.79650115966797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 551.2700805664062, - 90.24432373046875 - ], - "bbox": [ - 551.2700805664062, - 13.839607238769531, - 554.0200805664062, - 24.839508056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0892333984375, - 13.839607238769531, - 554.0200805664062, - 92.79650115966797 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Nitzschia", - "origin": [ - 313.0892333984375, - 101.44219970703125 - ], - "bbox": [ - 313.0892333984375, - 92.9944839477539, - 354.0418701171875, - 103.99437713623047 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (see Tables 1, 2).", - "origin": [ - 354.0418701171875, - 101.44219970703125 - ], - "bbox": [ - 354.0418701171875, - 25.03748321533203, - 431.5030517578125, - 36.037384033203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0892333984375, - 25.03748321533203, - 431.5030517578125, - 103.99437713623047 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The similarity of phytoepiphyton on different spe-", - "origin": [ - 327.2571105957031, - 116.77606201171875 - ], - "bbox": [ - 327.2571105957031, - 40.37134552001953, - 554.02001953125, - 51.371246337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2571105957031, - 40.37134552001953, - 554.02001953125, - 51.371246337890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cies of macrophytes varies from 8 to 64%. The highest", - "origin": [ - 313.0782470703125, - 127.97393798828125 - ], - "bbox": [ - 313.0782470703125, - 51.56922149658203, - 553.931884765625, - 62.569122314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0782470703125, - 51.56922149658203, - 553.931884765625, - 62.569122314453125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "number of species (54) is noted on", - "origin": [ - 313.0782470703125, - 139.17181396484375 - ], - "bbox": [ - 313.0782470703125, - 62.76709747314453, - 471.6416015625, - 73.76699829101562 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Batrachium diva-", - "origin": [ - 471.6416015625, - 139.17181396484375 - ], - "bbox": [ - 471.6416015625, - 130.72409057617188, - 554.02001953125, - 141.7239990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0782470703125, - 62.76709747314453, - 554.02001953125, - 141.7239990234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "ricatum", - "origin": [ - 313.0892333984375, - 150.36968994140625 - ], - "bbox": [ - 313.0892333984375, - 141.92196655273438, - 347.3099060058594, - 152.921875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Schrank.) Wimm., the lowest (6)—on", - "origin": [ - 347.3099060058594, - 150.36968994140625 - ], - "bbox": [ - 347.3099060058594, - 73.96497344970703, - 525.5301513671875, - 84.96487426757812 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Pota-", - "origin": [ - 525.5301513671875, - 150.36968994140625 - ], - "bbox": [ - 525.5301513671875, - 141.92196655273438, - 554.0310668945312, - 152.921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0892333984375, - 73.96497344970703, - 554.0310668945312, - 152.921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "mogeton perfoliatus", - "origin": [ - 313.10028076171875, - 161.56756591796875 - ], - "bbox": [ - 313.10028076171875, - 153.11984252929688, - 401.7264099121094, - 164.1197509765625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " L. No regularities considering the", - "origin": [ - 401.7264099121094, - 161.56756591796875 - ], - "bbox": [ - 401.7264099121094, - 85.16284942626953, - 554.02001953125, - 96.16275024414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 85.16284942626953, - 554.02001953125, - 164.1197509765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "species dependence of algae and macrophytes have", - "origin": [ - 313.10028076171875, - 172.76544189453125 - ], - "bbox": [ - 313.10028076171875, - 96.36072540283203, - 553.997802734375, - 107.36062622070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 96.36072540283203, - 553.997802734375, - 107.36062622070312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "been revealed, like in other water bodies [26, 27]. The", - "origin": [ - 313.10028076171875, - 183.96331787109375 - ], - "bbox": [ - 313.10028076171875, - 107.55860137939453, - 553.9978637695312, - 118.55850219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 107.55860137939453, - 553.9978637695312, - 118.55850219726562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "changes in the structure of phytoepiphyton are related", - "origin": [ - 313.10028076171875, - 195.16119384765625 - ], - "bbox": [ - 313.10028076171875, - 118.75647735595703, - 554.0308837890625, - 129.75637817382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 118.75647735595703, - 554.0308837890625, - 129.75637817382812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "to the decrease in the wave load as moving away from", - "origin": [ - 313.10028076171875, - 206.35906982421875 - ], - "bbox": [ - 313.10028076171875, - 129.954345703125, - 554.0639038085938, - 140.95425415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 129.954345703125, - 554.0639038085938, - 140.95425415039062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the beds bordering the open water towards the beds near", - "origin": [ - 313.10028076171875, - 217.55694580078125 - ], - "bbox": [ - 313.10028076171875, - 141.1522216796875, - 553.9978637695312, - 152.15213012695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 141.1522216796875, - 553.9978637695312, - 152.15213012695312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the shores, regardless of the vegetation type. Towards", - "origin": [ - 313.10028076171875, - 228.75482177734375 - ], - "bbox": [ - 313.10028076171875, - 152.35009765625, - 553.98681640625, - 163.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 152.35009765625, - 553.98681640625, - 163.35000610351562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the shore the species diversity of the algae increase in", - "origin": [ - 313.10028076171875, - 239.95269775390625 - ], - "bbox": [ - 313.10028076171875, - 163.5479736328125, - 553.9979858398438, - 174.54788208007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 163.5479736328125, - 553.9979858398438, - 174.54788208007812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "general including the blue-green algae of the genera", - "origin": [ - 313.10028076171875, - 251.15057373046875 - ], - "bbox": [ - 313.10028076171875, - 174.745849609375, - 553.9979248046875, - 185.74575805664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 174.745849609375, - 553.9979248046875, - 185.74575805664062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Lyngbya", - "origin": [ - 313.10028076171875, - 262.34844970703125 - ], - "bbox": [ - 313.10028076171875, - 253.90072631835938, - 350.6978454589844, - 264.900634765625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 350.78594970703125, - 262.34844970703125 - ], - "bbox": [ - 350.78594970703125, - 185.9437255859375, - 353.5359191894531, - 196.94363403320312 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Phormidium", - "origin": [ - 353.5359191894531, - 262.34844970703125 - ], - "bbox": [ - 353.5359191894531, - 253.90072631835938, - 412.484375, - 264.900634765625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 412.60540771484375, - 262.34844970703125 - ], - "bbox": [ - 412.60540771484375, - 185.9437255859375, - 415.3553771972656, - 196.94363403320312 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Homoeothrix", - "origin": [ - 415.3553771972656, - 262.34844970703125 - ], - "bbox": [ - 415.3553771972656, - 253.90072631835938, - 477.35076904296875, - 264.900634765625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "; whereas the di-", - "origin": [ - 477.4278259277344, - 262.34844970703125 - ], - "bbox": [ - 477.4278259277344, - 185.9437255859375, - 554.0311279296875, - 196.94363403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 185.9437255859375, - 554.0311279296875, - 264.900634765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "versity of the unicellular blue-green algae of the genera", - "origin": [ - 313.08935546875, - 273.54632568359375 - ], - "bbox": [ - 313.08935546875, - 197.1416015625, - 553.987060546875, - 208.14151000976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08935546875, - 197.1416015625, - 553.987060546875, - 208.14151000976562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Microcystis", - "origin": [ - 313.08935546875, - 284.7442321777344 - ], - "bbox": [ - 313.08935546875, - 276.2965087890625, - 363.9528503417969, - 287.2964172363281 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 363.94189453125, - 284.7442321777344 - ], - "bbox": [ - 363.94189453125, - 208.33950805664062, - 366.6918640136719, - 219.33941650390625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Gloeocapsa", - "origin": [ - 366.6918640136719, - 284.7442321777344 - ], - "bbox": [ - 366.6918640136719, - 276.2965087890625, - 421.7132873535156, - 287.2964172363281 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " and unicellular green algae of", - "origin": [ - 421.7132873535156, - 284.7442321777344 - ], - "bbox": [ - 421.7132873535156, - 208.33950805664062, - 554.0090942382812, - 219.33941650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08935546875, - 208.33950805664062, - 554.0090942382812, - 287.2964172363281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the genera", - "origin": [ - 313.1003723144531, - 295.942138671875 - ], - "bbox": [ - 313.1003723144531, - 219.53741455078125, - 360.6638488769531, - 230.53732299804688 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Scenedesmus", - "origin": [ - 360.6638488769531, - 295.942138671875 - ], - "bbox": [ - 360.6638488769531, - 287.4944152832031, - 423.51727294921875, - 298.49432373046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 423.5503845214844, - 295.942138671875 - ], - "bbox": [ - 423.5503845214844, - 219.53741455078125, - 426.30035400390625, - 230.53732299804688 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Cosmarium", - "origin": [ - 426.30035400390625, - 295.942138671875 - ], - "bbox": [ - 426.30035400390625, - 287.4944152832031, - 482.44384765625, - 298.49432373046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " decreases. The", - "origin": [ - 482.44384765625, - 295.942138671875 - ], - "bbox": [ - 482.44384765625, - 219.53741455078125, - 554.03125, - 230.53732299804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.1003723144531, - 219.53741455078125, - 554.03125, - 298.49432373046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tendency is revealed for the biomass of phytoepiphyton", - "origin": [ - 313.11138916015625, - 307.1400451660156 - ], - "bbox": [ - 313.11138916015625, - 230.73532104492188, - 553.3819580078125, - 241.7352294921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.11138916015625, - 230.73532104492188, - 553.3819580078125, - 241.7352294921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "to increase towards the shore. Within the dominating", - "origin": [ - 313.11138916015625, - 318.33795166015625 - ], - "bbox": [ - 313.11138916015625, - 241.9332275390625, - 553.965087890625, - 252.93313598632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.11138916015625, - 241.9332275390625, - 553.965087890625, - 252.93313598632812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "complex on various species of macrophytes the diatoms", - "origin": [ - 313.11138916015625, - 329.5358581542969 - ], - "bbox": [ - 313.11138916015625, - 253.13113403320312, - 554.02001953125, - 264.13104248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.11138916015625, - 253.13113403320312, - 554.02001953125, - 264.13104248046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "were found:", - "origin": [ - 313.11138916015625, - 340.7337646484375 - ], - "bbox": [ - 313.11138916015625, - 264.32904052734375, - 366.5598449707031, - 275.3289489746094 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Fragillaria pinnata", - "origin": [ - 366.5598449707031, - 340.7337646484375 - ], - "bbox": [ - 366.5598449707031, - 332.2860412597656, - 456.737060546875, - 343.28594970703125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Ehr.,", - "origin": [ - 456.737060546875, - 340.7337646484375 - ], - "bbox": [ - 456.737060546875, - 264.32904052734375, - 481.1128234863281, - 275.3289489746094 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Achnanthes mi-", - "origin": [ - 481.1128234863281, - 340.7337646484375 - ], - "bbox": [ - 481.1128234863281, - 332.2860412597656, - 554.042236328125, - 343.28594970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.11138916015625, - 264.32904052734375, - 554.042236328125, - 343.28594970703125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "nutissima", - "origin": [ - 313.1003723144531, - 351.9316711425781 - ], - "bbox": [ - 313.1003723144531, - 343.48394775390625, - 355.27398681640625, - 354.4838562011719 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " K", - "origin": [ - 355.27398681640625, - 351.9316711425781 - ], - "bbox": [ - 355.27398681640625, - 275.5269470214844, - 366.1308898925781, - 286.52685546875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 365.8118896484375, - 351.2496643066406 - ], - "bbox": [ - 365.8118896484375, - 283.3988037109375, - 371.9124450683594, - 294.3987121582031 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz.,", - "origin": [ - 366.119873046875, - 351.96466064453125 - ], - "bbox": [ - 366.119873046875, - 275.51593017578125, - 384.97369384765625, - 286.5598449707031 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " A. linearis", - "origin": [ - 384.97369384765625, - 351.920654296875 - ], - "bbox": [ - 384.97369384765625, - 343.4729309082031, - 433.7802734375, - 354.47283935546875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (W. Sm.) Grun., and", - "origin": [ - 433.7802734375, - 351.920654296875 - ], - "bbox": [ - 433.7802734375, - 275.51593017578125, - 526.0913696289062, - 286.5158386230469 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Gom-", - "origin": [ - 526.0913696289062, - 351.920654296875 - ], - "bbox": [ - 526.0913696289062, - 343.4729309082031, - 554.0300903320312, - 354.47283935546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.1003723144531, - 275.51593017578125, - 554.0300903320312, - 354.4838562011719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "phonema", - "origin": [ - 313.100341796875, - 363.1185607910156 - ], - "bbox": [ - 313.100341796875, - 354.67083740234375, - 353.4259033203125, - 365.6707458496094 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (including", - "origin": [ - 353.4259033203125, - 363.1185607910156 - ], - "bbox": [ - 353.4259033203125, - 286.7138366699219, - 403.3984680175781, - 297.7137451171875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " G. constrictum", - "origin": [ - 403.3984680175781, - 363.1185607910156 - ], - "bbox": [ - 403.3984680175781, - 354.67083740234375, - 475.44781494140625, - 365.6707458496094 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Ehr. and", - "origin": [ - 475.44781494140625, - 363.1185607910156 - ], - "bbox": [ - 475.44781494140625, - 286.7138366699219, - 518.721435546875, - 297.7137451171875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " G. oli-", - "origin": [ - 518.721435546875, - 363.1185607910156 - ], - "bbox": [ - 518.721435546875, - 354.67083740234375, - 553.9982299804688, - 365.6707458496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.100341796875, - 286.7138366699219, - 553.9982299804688, - 365.6707458496094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "vaceum", - "origin": [ - 313.100341796875, - 374.31646728515625 - ], - "bbox": [ - 313.100341796875, - 365.8687438964844, - 346.6939697265625, - 376.86865234375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Lyngb.) K", - "origin": [ - 346.6939697265625, - 374.31646728515625 - ], - "bbox": [ - 346.6939697265625, - 297.9117431640625, - 398.3714904785156, - 308.9116516113281 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 398.2615661621094, - 373.63446044921875 - ], - "bbox": [ - 398.2615661621094, - 305.78363037109375, - 404.36212158203125, - 316.78350830078125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz.).", - "origin": [ - 398.5695495605469, - 374.3494567871094 - ], - "bbox": [ - 398.5695495605469, - 297.9117431640625, - 421.0863342285156, - 308.94464111328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.100341796875, - 297.9117431640625, - 421.0863342285156, - 376.86865234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The biomass of the algae of epiphyton changes from", - "origin": [ - 327.2681884765625, - 389.65032958984375 - ], - "bbox": [ - 327.2681884765625, - 313.24560546875, - 554.0639038085938, - 324.2455139160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2681884765625, - 313.24560546875, - 554.0639038085938, - 324.2455139160156 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "0.03 g/m", - "origin": [ - 313.1003112792969, - 400.8482360839844 - ], - "bbox": [ - 313.1003112792969, - 324.4435119628906, - 351.9519348144531, - 335.44342041015625 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 351.8888854980469, - 395.9804992675781 - ], - "bbox": [ - 351.8888854980469, - 346.3169860839844, - 355.4638977050781, - 353.46697998046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " ", - "origin": [ - 355.4638977050781, - 395.9804992675781 - ], - "bbox": [ - 355.4638977050781, - 319.5757751464844, - 357.87109375, - 330.57568359375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on", - "origin": [ - 357.87109375, - 400.9635009765625 - ], - "bbox": [ - 357.87109375, - 324.55877685546875, - 368.8709716796875, - 335.5586853027344 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " P. perfoliatus", - "origin": [ - 368.8709716796875, - 400.9635009765625 - ], - "bbox": [ - 368.8709716796875, - 392.5157775878906, - 429.4144287109375, - 403.51568603515625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " to 192.35 g/m", - "origin": [ - 429.4144287109375, - 400.9635009765625 - ], - "bbox": [ - 429.4144287109375, - 324.55877685546875, - 492.7847900390625, - 335.5586853027344 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 492.7424011230469, - 395.9804992675781 - ], - "bbox": [ - 492.7424011230469, - 346.3169860839844, - 496.3174133300781, - 353.46697998046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " ", - "origin": [ - 496.3174133300781, - 395.9804992675781 - ], - "bbox": [ - 496.3174133300781, - 319.5757751464844, - 498.724609375, - 330.57568359375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on", - "origin": [ - 498.724609375, - 400.9635009765625 - ], - "bbox": [ - 498.724609375, - 324.55877685546875, - 509.7244873046875, - 335.5586853027344 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " B. divari-", - "origin": [ - 509.7244873046875, - 400.9635009765625 - ], - "bbox": [ - 509.7244873046875, - 392.5157775878906, - 554.0211181640625, - 403.51568603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.1003112792969, - 319.5757751464844, - 554.0211181640625, - 403.51568603515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "catum", - "origin": [ - 313.09033203125, - 412.1614074707031 - ], - "bbox": [ - 313.09033203125, - 403.71368408203125, - 339.97406005859375, - 414.7135925292969 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " and corresponds to the values of the mass of", - "origin": [ - 339.97406005859375, - 412.1614074707031 - ], - "bbox": [ - 339.97406005859375, - 335.7566833496094, - 553.9879150390625, - 346.756591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 335.7566833496094, - 553.9879150390625, - 414.7135925292969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "phytoepiphyton in other oligotrophic water bodies and", - "origin": [ - 313.09033203125, - 423.35931396484375 - ], - "bbox": [ - 313.09033203125, - 346.95458984375, - 553.9769287109375, - 357.9544982910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 346.95458984375, - 553.9769287109375, - 357.9544982910156 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water streams [28, 30–32].", - "origin": [ - 313.09033203125, - 434.5572204589844 - ], - "bbox": [ - 313.09033203125, - 358.1524963378906, - 430.70111083984375, - 369.15240478515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 358.1524963378906, - 430.70111083984375, - 369.15240478515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In addition to the algae, large amount of mineral and", - "origin": [ - 327.2582092285156, - 449.8910827636719 - ], - "bbox": [ - 327.2582092285156, - 373.4863586425781, - 553.9769287109375, - 384.48626708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2582092285156, - 373.4863586425781, - 553.9769287109375, - 384.48626708984375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "organic particles and sand deposit on the macrophytes", - "origin": [ - 313.09033203125, - 461.0889892578125 - ], - "bbox": [ - 313.09033203125, - 384.68426513671875, - 553.9659423828125, - 395.6841735839844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 384.68426513671875, - 553.9659423828125, - 395.6841735839844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "forming epiphytic suspension (the term is introduced", - "origin": [ - 313.09033203125, - 472.2868957519531 - ], - "bbox": [ - 313.09033203125, - 395.8821716308594, - 553.8780517578125, - 406.882080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 395.8821716308594, - 553.8780517578125, - 406.882080078125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "by E. P. Yanin [33]). The ratio of the mass of the", - "origin": [ - 313.09033203125, - 483.48480224609375 - ], - "bbox": [ - 313.09033203125, - 407.080078125, - 553.9769897460938, - 418.0799865722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 407.080078125, - 553.9769897460938, - 418.0799865722656 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "epiphytic suspension and the mass of the macrophyte", - "origin": [ - 313.09033203125, - 494.6827087402344 - ], - "bbox": [ - 313.09033203125, - 418.2779846191406, - 553.9439697265625, - 429.27789306640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 418.2779846191406, - 553.9439697265625, - 429.27789306640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "varies from 0.47 to 25.07, increasing on the macro-", - "origin": [ - 313.09033203125, - 505.880615234375 - ], - "bbox": [ - 313.09033203125, - 429.47589111328125, - 554.0321044921875, - 440.4757995605469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 429.47589111328125, - 554.0321044921875, - 440.4757995605469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "phytes with more dissected surface. The change in the", - "origin": [ - 313.09033203125, - 517.0784912109375 - ], - "bbox": [ - 313.09033203125, - 440.67376708984375, - 553.9989013671875, - 451.6736755371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 440.67376708984375, - 553.9989013671875, - 451.6736755371094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "mass of epiphytic suspension on the macrophytes with", - "origin": [ - 313.09033203125, - 528.2764282226562 - ], - "bbox": [ - 313.09033203125, - 451.8717041015625, - 553.9769897460938, - 462.8716125488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 451.8717041015625, - 553.9769897460938, - 462.8716125488281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "homogeneous surface (flat or dissected leaves) in dif-", - "origin": [ - 313.09033203125, - 539.4743041992188 - ], - "bbox": [ - 313.09033203125, - 463.069580078125, - 554.0321044921875, - 474.0694885253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 463.069580078125, - 554.0321044921875, - 474.0694885253906 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ferent areas of the lake leads to conclusion that if the", - "origin": [ - 313.09033203125, - 550.6722412109375 - ], - "bbox": [ - 313.09033203125, - 474.26751708984375, - 554.0209350585938, - 485.2674255371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 474.26751708984375, - 554.0209350585938, - 485.2674255371094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "main stream of the suspended particles comes from the", - "origin": [ - 313.09033203125, - 561.8701171875 - ], - "bbox": [ - 313.09033203125, - 485.46539306640625, - 554.0099487304688, - 496.4653015136719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 485.46539306640625, - 554.0099487304688, - 496.4653015136719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "shore, the mass of the epiphytic suspension is the high-", - "origin": [ - 313.09033203125, - 573.0679931640625 - ], - "bbox": [ - 313.09033203125, - 496.66326904296875, - 554.0321044921875, - 507.6631774902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 496.66326904296875, - 554.0321044921875, - 507.6631774902344 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "est near the shore. If more suspended particles come", - "origin": [ - 313.09033203125, - 584.265869140625 - ], - "bbox": [ - 313.09033203125, - 507.86114501953125, - 554.1199340820312, - 518.861083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 507.86114501953125, - 554.1199340820312, - 518.861083984375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "from the open part of the lake, the mass of the epiphytic", - "origin": [ - 313.09033203125, - 595.4637451171875 - ], - "bbox": [ - 313.09033203125, - 519.0590209960938, - 553.8670043945312, - 530.0589599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 519.0590209960938, - 553.8670043945312, - 530.0589599609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "suspension is more in the stands bordering the open wa-", - "origin": [ - 313.09033203125, - 606.6616821289062 - ], - "bbox": [ - 313.09033203125, - 530.2569580078125, - 554.0211181640625, - 541.2568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 530.2569580078125, - 554.0211181640625, - 541.2568359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ter. The share of live cells in the epiphytic suspension", - "origin": [ - 313.09033203125, - 617.8595581054688 - ], - "bbox": [ - 313.09033203125, - 541.454833984375, - 553.9110107421875, - 552.4547119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 541.454833984375, - 553.9110107421875, - 552.4547119140625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the macrophytes subjected to the wave load is lower", - "origin": [ - 313.09033203125, - 629.0574340820312 - ], - "bbox": [ - 313.09033203125, - 552.6527099609375, - 554.010009765625, - 563.652587890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 552.6527099609375, - 554.010009765625, - 563.652587890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "than that in the calmer parts (2 and 30–90%, respec-", - "origin": [ - 313.09033203125, - 640.25537109375 - ], - "bbox": [ - 313.09033203125, - 563.8506469726562, - 554.0321044921875, - 574.8505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 563.8506469726562, - 554.0321044921875, - 574.8505859375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tively).", - "origin": [ - 313.09033203125, - 651.4532470703125 - ], - "bbox": [ - 313.09033203125, - 575.0485229492188, - 344.56103515625, - 586.0484619140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 575.0485229492188, - 344.56103515625, - 586.0484619140625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Among the algae of the epiphyton the cosmopolite", - "origin": [ - 327.2582092285156, - 666.787109375 - ], - "bbox": [ - 327.2582092285156, - 590.3823852539062, - 554.0099487304688, - 601.38232421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2582092285156, - 590.3823852539062, - 554.0099487304688, - 601.38232421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "forms prevail—37.4% of the taxonomic composition", - "origin": [ - 313.09033203125, - 677.9849853515625 - ], - "bbox": [ - 313.09033203125, - 601.5802612304688, - 553.9659423828125, - 612.5802001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 601.5802612304688, - 553.9659423828125, - 612.5802001953125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(76 taxa). The Arctic-Alpine forms make up 4.4% (9),", - "origin": [ - 313.09033203125, - 689.182861328125 - ], - "bbox": [ - 313.09033203125, - 612.7781372070312, - 553.9659423828125, - 623.778076171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 612.7781372070312, - 553.9659423828125, - 623.778076171875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "boreal, 14.3% of the total composition (29 taxa). The", - "origin": [ - 313.09033203125, - 700.3807983398438 - ], - "bbox": [ - 313.09033203125, - 623.97607421875, - 553.9879760742188, - 634.9759521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 623.97607421875, - 553.9879760742188, - 634.9759521484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "range of salinity, like in case of phytoepilithon, reflects", - "origin": [ - 313.09033203125, - 711.5786743164062 - ], - "bbox": [ - 313.09033203125, - 635.1739501953125, - 554.0540771484375, - 646.173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 635.1739501953125, - 554.0540771484375, - 646.173828125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the low mineralization of the water in Lake Teletskoye.", - "origin": [ - 313.09033203125, - 722.776611328125 - ], - "bbox": [ - 313.09033203125, - 646.3718872070312, - 553.9000244140625, - 657.371826171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 646.3718872070312, - 553.9000244140625, - 657.371826171875 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 269.92181396484375, - 748.1763916015625 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 57.96849060058594, - -8.511833190917969, - 298.9872741699219, - 669.3013305664062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Onega. The highest values are observed at the optimal", - "origin": [ - 57.96849822998047, - 67.89288330078125 - ], - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.93231201171875, - 2.488067626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.93231201171875, - 2.488067626953125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "combination of light intensity and wind-wave load.", - "origin": [ - 57.96849822998047, - 79.09075927734375 - ], - "bbox": [ - 57.96849822998047, - 2.6860427856445312, - 298.8332214355469, - 13.685943603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 2.6860427856445312, - 298.8332214355469, - 13.685943603515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Therefore, the location of the curve peak would change", - "origin": [ - 57.96849822998047, - 90.28863525390625 - ], - "bbox": [ - 57.96849822998047, - 13.883918762207031, - 298.8552551269531, - 24.883819580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 13.883918762207031, - 298.8552551269531, - 24.883819580078125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "depending on the water body, season, and weather.", - "origin": [ - 57.96849822998047, - 101.48651123046875 - ], - "bbox": [ - 57.96849822998047, - 25.08179473876953, - 281.4423828125, - 36.081695556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 25.08179473876953, - 281.4423828125, - 36.081695556640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In Lake Teletskoye at a depth of less than 1.5 m no", - "origin": [ - 72.13636779785156, - 115.44537353515625 - ], - "bbox": [ - 72.13636779785156, - 39.04065704345703, - 298.8332824707031, - 50.040557861328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13636779785156, - 39.04065704345703, - 298.8332824707031, - 50.040557861328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "seasonal and year-to-year dynamics of the phyto-", - "origin": [ - 57.96849822998047, - 126.64324951171875 - ], - "bbox": [ - 57.96849822998047, - 50.23853302001953, - 298.9102783203125, - 61.238433837890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 50.23853302001953, - 298.9102783203125, - 61.238433837890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "epilithon structure has been noted. It is likely to be con-", - "origin": [ - 57.96849060058594, - 137.84112548828125 - ], - "bbox": [ - 57.96849060058594, - 61.43640899658203, - 298.9102783203125, - 72.43630981445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 61.43640899658203, - 298.9102783203125, - 72.43630981445312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "nected to the prevailing influence of hydrodynamic", - "origin": [ - 57.96849060058594, - 149.03900146484375 - ], - "bbox": [ - 57.96849060058594, - 72.63428497314453, - 298.67926025390625, - 83.63418579101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 72.63428497314453, - 298.67926025390625, - 83.63418579101562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "factor over the algocenoses that creates unstable condi-", - "origin": [ - 57.96849060058594, - 160.23687744140625 - ], - "bbox": [ - 57.96849060058594, - 83.83216094970703, - 298.9102783203125, - 94.83206176757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 83.83216094970703, - 298.9102783203125, - 94.83206176757812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tions, under which small-celled pioneering and wide-", - "origin": [ - 57.96849060058594, - 171.43475341796875 - ], - "bbox": [ - 57.96849060058594, - 95.03003692626953, - 298.9102783203125, - 106.02993774414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 95.03003692626953, - 298.9102783203125, - 106.02993774414062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "spread species of algae primarily vegetate or the algae", - "origin": [ - 57.96849060058594, - 182.63262939453125 - ], - "bbox": [ - 57.96849060058594, - 106.22791290283203, - 298.9102478027344, - 117.22781372070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 106.22791290283203, - 298.9102478027344, - 117.22781372070312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "resistant to the dynamic load of water, such as", - "origin": [ - 57.96849060058594, - 193.83050537109375 - ], - "bbox": [ - 57.96849060058594, - 117.42578887939453, - 259.06866455078125, - 128.42568969726562 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Ulothrix", - "origin": [ - 259.06866455078125, - 193.83050537109375 - ], - "bbox": [ - 259.06866455078125, - 185.38278198242188, - 298.8663024902344, - 196.3826904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 117.42578887939453, - 298.8663024902344, - 196.3826904296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "zonata", - "origin": [ - 57.968505859375, - 205.02838134765625 - ], - "bbox": [ - 57.968505859375, - 196.58065795898438, - 87.30522918701172, - 207.58056640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ". Since the instability in the shallow areas of the", - "origin": [ - 87.42623901367188, - 205.02838134765625 - ], - "bbox": [ - 87.42623901367188, - 128.6236572265625, - 298.8772888183594, - 139.62356567382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 128.6236572265625, - 298.8772888183594, - 207.58056640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "littoral is observed all year around, the structure of the", - "origin": [ - 57.968505859375, - 216.22625732421875 - ], - "bbox": [ - 57.968505859375, - 139.821533203125, - 298.8772888183594, - 150.82144165039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 139.821533203125, - 298.8772888183594, - 150.82144165039062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algocenoses is similar for the whole period of algae", - "origin": [ - 57.968505859375, - 227.42413330078125 - ], - "bbox": [ - 57.968505859375, - 151.0194091796875, - 298.9102478027344, - 162.01931762695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 151.0194091796875, - 298.9102478027344, - 162.01931762695312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "vegetation.", - "origin": [ - 57.968505859375, - 238.62200927734375 - ], - "bbox": [ - 57.968505859375, - 162.21728515625, - 106.5440673828125, - 173.21719360351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 162.21728515625, - 106.5440673828125, - 173.21719360351562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "As the water level in the lake drops, the algocenoses", - "origin": [ - 72.1363754272461, - 252.58087158203125 - ], - "bbox": [ - 72.1363754272461, - 176.1761474609375, - 298.8662414550781, - 187.17605590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1363754272461, - 176.1761474609375, - 298.8662414550781, - 187.17605590820312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "with large biomass come under the wave influence. The", - "origin": [ - 57.968505859375, - 263.77874755859375 - ], - "bbox": [ - 57.968505859375, - 187.3740234375, - 298.6902770996094, - 198.37393188476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 187.3740234375, - 298.6902770996094, - 198.37393188476562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "flakes of diatoms are torn from the substrate by the", - "origin": [ - 57.968505859375, - 274.97662353515625 - ], - "bbox": [ - 57.968505859375, - 198.5718994140625, - 298.8992919921875, - 209.57180786132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 198.5718994140625, - 298.8992919921875, - 209.57180786132812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "waves and transported to pelagic zone or along the", - "origin": [ - 57.968505859375, - 286.1745300292969 - ], - "bbox": [ - 57.968505859375, - 209.76980590820312, - 298.8772888183594, - 220.76971435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 209.76980590820312, - 298.8772888183594, - 220.76971435546875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "shores making the impression of the bloom.", - "origin": [ - 57.968505859375, - 297.3724365234375 - ], - "bbox": [ - 57.968505859375, - 220.96771240234375, - 250.76373291015625, - 231.96762084960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 220.96771240234375, - 250.76373291015625, - 231.96762084960938 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "At a depth of 1.5–30 m some filaments or stands of", - "origin": [ - 72.1363754272461, - 311.331298828125 - ], - "bbox": [ - 72.1363754272461, - 234.92657470703125, - 298.85528564453125, - 245.92648315429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1363754272461, - 234.92657470703125, - 298.85528564453125, - 245.92648315429688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the green algae", - "origin": [ - 57.968505859375, - 322.5292053222656 - ], - "bbox": [ - 57.968505859375, - 246.12448120117188, - 123.8799057006836, - 257.1243896484375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Tetraspora cylindrica", - "origin": [ - 123.8799057006836, - 322.5292053222656 - ], - "bbox": [ - 123.8799057006836, - 314.08148193359375, - 221.20704650878906, - 325.0813903808594 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (W.) Ag. (1–2 m)", - "origin": [ - 221.20704650878906, - 322.5292053222656 - ], - "bbox": [ - 221.20704650878906, - 246.12448120117188, - 298.9872741699219, - 257.1243896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968505859375, - 246.12448120117188, - 298.9872741699219, - 325.0813903808594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and", - "origin": [ - 57.97950744628906, - 333.72711181640625 - ], - "bbox": [ - 57.97950744628906, - 257.3223876953125, - 73.86335754394531, - 268.3222961425781 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Aegagropila holsatica", - "origin": [ - 73.86335754394531, - 333.72711181640625 - ], - "bbox": [ - 73.86335754394531, - 325.2793884277344, - 177.65841674804688, - 336.279296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " K", - "origin": [ - 177.65841674804688, - 333.72711181640625 - ], - "bbox": [ - 177.65841674804688, - 257.3223876953125, - 190.06631469726562, - 268.3222961425781 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 189.747314453125, - 333.04510498046875 - ], - "bbox": [ - 189.747314453125, - 265.19427490234375, - 195.8478546142578, - 276.19415283203125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. (2–30 m) in phyto-", - "origin": [ - 190.05531311035156, - 333.7601013183594 - ], - "bbox": [ - 190.05531311035156, - 257.3223876953125, - 298.9103088378906, - 268.35528564453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97950744628906, - 257.3223876953125, - 298.9103088378906, - 336.279296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "benthos are met [7, 8].", - "origin": [ - 57.979522705078125, - 344.9250183105469 - ], - "bbox": [ - 57.979522705078125, - 268.5202941894531, - 156.95660400390625, - 279.52020263671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 268.5202941894531, - 156.95660400390625, - 279.52020263671875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The increase of unfavorable environmental factors", - "origin": [ - 72.14739227294922, - 358.8838806152344 - ], - "bbox": [ - 72.14739227294922, - 282.4791564941406, - 298.9103088378906, - 293.47906494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.14739227294922, - 282.4791564941406, - 298.9103088378906, - 293.47906494140625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "directed toward the water edge is indicated by the re-", - "origin": [ - 57.979522705078125, - 370.081787109375 - ], - "bbox": [ - 57.979522705078125, - 293.67706298828125, - 298.9212646484375, - 304.6769714355469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 293.67706298828125, - 298.9212646484375, - 304.6769714355469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "place of polydominant communities with monodomi-", - "origin": [ - 57.979522705078125, - 381.2796936035156 - ], - "bbox": [ - 57.979522705078125, - 304.8749694824219, - 298.9212646484375, - 315.8748779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 304.8749694824219, - 298.9212646484375, - 315.8748779296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "nant ones. Thus, at a depth from 2–3 to 30 m the", - "origin": [ - 57.979522705078125, - 392.47760009765625 - ], - "bbox": [ - 57.979522705078125, - 316.0728759765625, - 298.8773193359375, - 327.0727844238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 316.0728759765625, - 298.8773193359375, - 327.0727844238281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "communities,", - "origin": [ - 57.979522705078125, - 403.6755065917969 - ], - "bbox": [ - 57.979522705078125, - 327.2707824707031, - 117.56598663330078, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 327.2707824707031, - 117.56598663330078, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "particularly", - "origin": [ - 126.89390563964844, - 403.6755065917969 - ], - "bbox": [ - 126.89390563964844, - 327.2707824707031, - 177.6034393310547, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.89390563964844, - 327.2707824707031, - 177.6034393310547, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of", - "origin": [ - 187.15135192871094, - 403.6755065917969 - ], - "bbox": [ - 187.15135192871094, - 327.2707824707031, - 196.31427001953125, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.15135192871094, - 327.2707824707031, - 196.31427001953125, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "diatoms,", - "origin": [ - 205.75218200683594, - 403.6755065917969 - ], - "bbox": [ - 205.75218200683594, - 327.2707824707031, - 243.33883666992188, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.75218200683594, - 327.2707824707031, - 243.33883666992188, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "are", - "origin": [ - 252.7217559814453, - 403.6755065917969 - ], - "bbox": [ - 252.7217559814453, - 327.2707824707031, - 266.1526184082031, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.7217559814453, - 327.2707824707031, - 266.1526184082031, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "poly-", - "origin": [ - 275.5355224609375, - 403.6755065917969 - ], - "bbox": [ - 275.5355224609375, - 327.2707824707031, - 298.9212951660156, - 338.27069091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.5355224609375, - 327.2707824707031, - 298.9212951660156, - 338.27069091796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dominant. Poretskii and Sheshukova [8] give 6 to 12", - "origin": [ - 57.979522705078125, - 414.8734130859375 - ], - "bbox": [ - 57.979522705078125, - 338.46868896484375, - 298.84429931640625, - 349.4685974121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 338.46868896484375, - 298.84429931640625, - 349.4685974121094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dominating species. At a depth of less than 1.5 m only", - "origin": [ - 57.979522705078125, - 426.0713195800781 - ], - "bbox": [ - 57.979522705078125, - 349.6665954589844, - 298.7563171386719, - 360.66650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 349.6665954589844, - 298.7563171386719, - 360.66650390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "one or two species dominate.", - "origin": [ - 57.979522705078125, - 437.26922607421875 - ], - "bbox": [ - 57.979522705078125, - 360.864501953125, - 185.9853515625, - 371.8644104003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 360.864501953125, - 185.9853515625, - 371.8644104003906 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In phytoepilithon the cosmopolite forms dominate,", - "origin": [ - 72.14739227294922, - 451.22808837890625 - ], - "bbox": [ - 72.14739227294922, - 374.8233642578125, - 298.8993225097656, - 385.8232727050781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.14739227294922, - 374.8233642578125, - 298.8993225097656, - 385.8232727050781 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "199 taxa lower than genus (37% of the total composi-", - "origin": [ - 57.979522705078125, - 462.4259948730469 - ], - "bbox": [ - 57.979522705078125, - 386.0212707519531, - 298.91033935546875, - 397.02117919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 386.0212707519531, - 298.91033935546875, - 397.02117919921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion). The Arctic-Alpine forms make up 28 (5.2%),", - "origin": [ - 57.979522705078125, - 473.6239013671875 - ], - "bbox": [ - 57.979522705078125, - 397.21917724609375, - 298.85528564453125, - 408.2190856933594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 397.21917724609375, - 298.85528564453125, - 408.2190856933594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "boreal—96 taxa (17.8% of the total composition). The", - "origin": [ - 57.979522705078125, - 484.8218078613281 - ], - "bbox": [ - 57.979522705078125, - 408.4170837402344, - 298.8883056640625, - 419.4169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 408.4170837402344, - 298.8883056640625, - 419.4169921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "range of salinity reflects the low mineralization of the", - "origin": [ - 57.979522705078125, - 496.01971435546875 - ], - "bbox": [ - 57.979522705078125, - 419.614990234375, - 298.8882751464844, - 430.6148986816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 419.614990234375, - 298.8882751464844, - 430.6148986816406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water in the lake. The share of indifferent species is", - "origin": [ - 57.979522705078125, - 507.2176208496094 - ], - "bbox": [ - 57.979522705078125, - 430.8128967285156, - 298.9103088378906, - 441.81280517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 430.8128967285156, - 298.9103088378906, - 441.81280517578125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "248 taxa (46.1% of the taxonomic composition)", - "origin": [ - 57.979522705078125, - 518.41552734375 - ], - "bbox": [ - 57.979522705078125, - 442.01080322265625, - 298.8443298339844, - 453.0107116699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 442.01080322265625, - 298.8443298339844, - 453.0107116699219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(Fig. 2), drimophiles and halophobes—38 (7.1%) and", - "origin": [ - 57.979522705078125, - 529.6134033203125 - ], - "bbox": [ - 57.979522705078125, - 453.20867919921875, - 298.8772888183594, - 464.2085876464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 453.20867919921875, - 298.8772888183594, - 464.2085876464844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "17 taxa (3.2% of taxonomic composition), respectively.", - "origin": [ - 57.979522705078125, - 540.8113403320312 - ], - "bbox": [ - 57.979522705078125, - 464.4066162109375, - 298.6902770996094, - 475.4065246582031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 464.4066162109375, - 298.6902770996094, - 475.4065246582031 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Mesohalophiles count 9 taxa (1.7%). The indicators of", - "origin": [ - 57.979522705078125, - 552.0092163085938 - ], - "bbox": [ - 57.979522705078125, - 475.6044921875, - 298.8663024902344, - 486.6044006347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 475.6044921875, - 298.8663024902344, - 486.6044006347656 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "pH are prevailed by indifferent species—100 taxa", - "origin": [ - 57.979522705078125, - 563.2070922851562 - ], - "bbox": [ - 57.979522705078125, - 486.8023681640625, - 298.9102783203125, - 497.8022766113281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 486.8023681640625, - 298.9102783203125, - 497.8022766113281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(18.6% of the total composition). The excess of the", - "origin": [ - 57.979522705078125, - 574.405029296875 - ], - "bbox": [ - 57.979522705078125, - 498.00030517578125, - 298.8882751464844, - 509.0002136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 498.00030517578125, - 298.8882751464844, - 509.0002136230469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "share of alkaliphiles (81 and 15.1%) over the acido-", - "origin": [ - 57.979522705078125, - 585.6029052734375 - ], - "bbox": [ - 57.979522705078125, - 509.19818115234375, - 298.92132568359375, - 520.1981201171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.979522705078125, - 509.19818115234375, - 298.92132568359375, - 520.1981201171875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "philes (14 and 2.6%) is a reflection of alkalescent me-", - "origin": [ - 57.97953796386719, - 596.80078125 - ], - "bbox": [ - 57.97953796386719, - 520.3960571289062, - 298.92132568359375, - 531.39599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 520.3960571289062, - 298.92132568359375, - 531.39599609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dium reaction. The characteristic in relation to the", - "origin": [ - 57.97953796386719, - 607.9986572265625 - ], - "bbox": [ - 57.97953796386719, - 531.5939331054688, - 298.9102783203125, - 542.5938720703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 531.5939331054688, - 298.9102783203125, - 542.5938720703125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "organic pollution is known only for 35.3% of all listed", - "origin": [ - 57.97953796386719, - 619.196533203125 - ], - "bbox": [ - 57.97953796386719, - 542.7918090820312, - 298.888427734375, - 553.791748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 542.7918090820312, - 298.888427734375, - 553.791748046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algae forms. The majority of them, 146 taxa (27.1%),", - "origin": [ - 57.97953796386719, - 630.3944702148438 - ], - "bbox": [ - 57.97953796386719, - 553.98974609375, - 298.8222961425781, - 564.9896240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 553.98974609375, - 298.8222961425781, - 564.9896240234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "are xeno- oligo-, and", - "origin": [ - 57.97953796386719, - 641.5923461914062 - ], - "bbox": [ - 57.97953796386719, - 565.1876220703125, - 154.30564880371094, - 576.1875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 154.30564880371094, - 641.5923461914062 - ], - "bbox": [ - 154.30564880371094, - 633.1370239257812, - 164.0405731201172, - 644.169921875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "-mesosaprobionts, and inhabit", - "origin": [ - 163.402587890625, - 641.5923461914062 - ], - "bbox": [ - 163.402587890625, - 565.1876220703125, - 298.8223571777344, - 576.1875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 565.1876220703125, - 298.8223571777344, - 644.169921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "pure water.", - "origin": [ - 57.968544006347656, - 652.7902221679688 - ], - "bbox": [ - 57.968544006347656, - 576.385498046875, - 106.88510131835938, - 587.3853759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968544006347656, - 576.385498046875, - 106.88510131835938, - 587.3853759765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The composition of", - "origin": [ - 72.13641357421875, - 666.7491455078125 - ], - "bbox": [ - 72.13641357421875, - 590.3444213867188, - 161.29058837890625, - 601.3443603515625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " phytoepiphyton", - "origin": [ - 161.29058837890625, - 666.7491455078125 - ], - "bbox": [ - 161.29058837890625, - 658.3014526367188, - 233.36196899414062, - 669.3013305664062 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " on the higher", - "origin": [ - 233.36196899414062, - 666.7491455078125 - ], - "bbox": [ - 233.36196899414062, - 590.3444213867188, - 298.8222961425781, - 601.3443603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13641357421875, - 590.3444213867188, - 298.8222961425781, - 669.3013305664062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water plants in Lake Teletskoye lists 182 species of al-", - "origin": [ - 57.968536376953125, - 677.947021484375 - ], - "bbox": [ - 57.968536376953125, - 601.5422973632812, - 298.91033935546875, - 612.542236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968536376953125, - 601.5422973632812, - 298.91033935546875, - 612.542236328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "gae (203 taxa lower than genus) of six sections. The list", - "origin": [ - 57.96855163574219, - 689.1558837890625 - ], - "bbox": [ - 57.96855163574219, - 612.7511596679688, - 298.88836669921875, - 623.7510986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96855163574219, - 612.7511596679688, - 298.88836669921875, - 623.7510986328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "is dominated by diatoms (53% of the species composi-", - "origin": [ - 57.96855163574219, - 700.3538208007812 - ], - "bbox": [ - 57.96855163574219, - 623.9490966796875, - 298.91033935546875, - 634.948974609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96855163574219, - 623.9490966796875, - 298.91033935546875, - 634.948974609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion), green (30%) and blue-green (14%) algae (see", - "origin": [ - 57.96855163574219, - 711.562744140625 - ], - "bbox": [ - 57.96855163574219, - 635.1580200195312, - 298.9322814941406, - 646.157958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96855163574219, - 635.1580200195312, - 298.9322814941406, - 646.157958984375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Fig. 1).", - "origin": [ - 57.96855163574219, - 722.7606201171875 - ], - "bbox": [ - 57.96855163574219, - 646.3558959960938, - 90.05525970458984, - 657.3558349609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96855163574219, - 646.3558959960938, - 90.05525970458984, - 657.3558349609375 - ] - } - ], - "tag": "header" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 313.0782470703125, - -8.578117370605469, - 554.1199340820312, - 657.371826171875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The highest diversity is shown by the families Fra-", - "origin": [ - 327.257080078125, - 67.82659912109375 - ], - "bbox": [ - 327.257080078125, - -8.578117370605469, - 554.02001953125, - 2.432769775390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.257080078125, - -8.578117370605469, - 554.02001953125, - 2.432769775390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "gilariaceae, Naviculaceae, Cymbellaceae, Scenedes-", - "origin": [ - 313.0892333984375, - 79.03546142578125 - ], - "bbox": [ - 313.0892333984375, - 2.6307449340820312, - 554.031005859375, - 13.641632080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0892333984375, - 2.6307449340820312, - 554.031005859375, - 13.641632080078125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "maceae, and the genera", - "origin": [ - 313.0892333984375, - 90.24432373046875 - ], - "bbox": [ - 313.0892333984375, - 13.839607238769531, - 431.887939453125, - 24.839508056640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Cymbella", - "origin": [ - 431.887939453125, - 90.24432373046875 - ], - "bbox": [ - 431.887939453125, - 81.7966079711914, - 482.23468017578125, - 92.79650115966797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 482.2677001953125, - 90.24432373046875 - ], - "bbox": [ - 482.2677001953125, - 13.839607238769531, - 485.0176696777344, - 24.839508056640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Scenedesmus", - "origin": [ - 485.0176696777344, - 90.24432373046875 - ], - "bbox": [ - 485.0176696777344, - 81.7966079711914, - 551.237060546875, - 92.79650115966797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 551.2700805664062, - 90.24432373046875 - ], - "bbox": [ - 551.2700805664062, - 13.839607238769531, - 554.0200805664062, - 24.839508056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0892333984375, - 13.839607238769531, - 554.0200805664062, - 92.79650115966797 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Nitzschia", - "origin": [ - 313.0892333984375, - 101.44219970703125 - ], - "bbox": [ - 313.0892333984375, - 92.9944839477539, - 354.0418701171875, - 103.99437713623047 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (see Tables 1, 2).", - "origin": [ - 354.0418701171875, - 101.44219970703125 - ], - "bbox": [ - 354.0418701171875, - 25.03748321533203, - 431.5030517578125, - 36.037384033203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0892333984375, - 25.03748321533203, - 431.5030517578125, - 103.99437713623047 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The similarity of phytoepiphyton on different spe-", - "origin": [ - 327.2571105957031, - 116.77606201171875 - ], - "bbox": [ - 327.2571105957031, - 40.37134552001953, - 554.02001953125, - 51.371246337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2571105957031, - 40.37134552001953, - 554.02001953125, - 51.371246337890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cies of macrophytes varies from 8 to 64%. The highest", - "origin": [ - 313.0782470703125, - 127.97393798828125 - ], - "bbox": [ - 313.0782470703125, - 51.56922149658203, - 553.931884765625, - 62.569122314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0782470703125, - 51.56922149658203, - 553.931884765625, - 62.569122314453125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "number of species (54) is noted on", - "origin": [ - 313.0782470703125, - 139.17181396484375 - ], - "bbox": [ - 313.0782470703125, - 62.76709747314453, - 471.6416015625, - 73.76699829101562 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Batrachium diva-", - "origin": [ - 471.6416015625, - 139.17181396484375 - ], - "bbox": [ - 471.6416015625, - 130.72409057617188, - 554.02001953125, - 141.7239990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0782470703125, - 62.76709747314453, - 554.02001953125, - 141.7239990234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "ricatum", - "origin": [ - 313.0892333984375, - 150.36968994140625 - ], - "bbox": [ - 313.0892333984375, - 141.92196655273438, - 347.3099060058594, - 152.921875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Schrank.) Wimm., the lowest (6)—on", - "origin": [ - 347.3099060058594, - 150.36968994140625 - ], - "bbox": [ - 347.3099060058594, - 73.96497344970703, - 525.5301513671875, - 84.96487426757812 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Pota-", - "origin": [ - 525.5301513671875, - 150.36968994140625 - ], - "bbox": [ - 525.5301513671875, - 141.92196655273438, - 554.0310668945312, - 152.921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0892333984375, - 73.96497344970703, - 554.0310668945312, - 152.921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "mogeton perfoliatus", - "origin": [ - 313.10028076171875, - 161.56756591796875 - ], - "bbox": [ - 313.10028076171875, - 153.11984252929688, - 401.7264099121094, - 164.1197509765625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " L. No regularities considering the", - "origin": [ - 401.7264099121094, - 161.56756591796875 - ], - "bbox": [ - 401.7264099121094, - 85.16284942626953, - 554.02001953125, - 96.16275024414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 85.16284942626953, - 554.02001953125, - 164.1197509765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "species dependence of algae and macrophytes have", - "origin": [ - 313.10028076171875, - 172.76544189453125 - ], - "bbox": [ - 313.10028076171875, - 96.36072540283203, - 553.997802734375, - 107.36062622070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 96.36072540283203, - 553.997802734375, - 107.36062622070312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "been revealed, like in other water bodies [26, 27]. The", - "origin": [ - 313.10028076171875, - 183.96331787109375 - ], - "bbox": [ - 313.10028076171875, - 107.55860137939453, - 553.9978637695312, - 118.55850219726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 107.55860137939453, - 553.9978637695312, - 118.55850219726562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "changes in the structure of phytoepiphyton are related", - "origin": [ - 313.10028076171875, - 195.16119384765625 - ], - "bbox": [ - 313.10028076171875, - 118.75647735595703, - 554.0308837890625, - 129.75637817382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 118.75647735595703, - 554.0308837890625, - 129.75637817382812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "to the decrease in the wave load as moving away from", - "origin": [ - 313.10028076171875, - 206.35906982421875 - ], - "bbox": [ - 313.10028076171875, - 129.954345703125, - 554.0639038085938, - 140.95425415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 129.954345703125, - 554.0639038085938, - 140.95425415039062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the beds bordering the open water towards the beds near", - "origin": [ - 313.10028076171875, - 217.55694580078125 - ], - "bbox": [ - 313.10028076171875, - 141.1522216796875, - 553.9978637695312, - 152.15213012695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 141.1522216796875, - 553.9978637695312, - 152.15213012695312 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the shores, regardless of the vegetation type. Towards", - "origin": [ - 313.10028076171875, - 228.75482177734375 - ], - "bbox": [ - 313.10028076171875, - 152.35009765625, - 553.98681640625, - 163.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 152.35009765625, - 553.98681640625, - 163.35000610351562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the shore the species diversity of the algae increase in", - "origin": [ - 313.10028076171875, - 239.95269775390625 - ], - "bbox": [ - 313.10028076171875, - 163.5479736328125, - 553.9979858398438, - 174.54788208007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 163.5479736328125, - 553.9979858398438, - 174.54788208007812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "general including the blue-green algae of the genera", - "origin": [ - 313.10028076171875, - 251.15057373046875 - ], - "bbox": [ - 313.10028076171875, - 174.745849609375, - 553.9979248046875, - 185.74575805664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 174.745849609375, - 553.9979248046875, - 185.74575805664062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Lyngbya", - "origin": [ - 313.10028076171875, - 262.34844970703125 - ], - "bbox": [ - 313.10028076171875, - 253.90072631835938, - 350.6978454589844, - 264.900634765625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 350.78594970703125, - 262.34844970703125 - ], - "bbox": [ - 350.78594970703125, - 185.9437255859375, - 353.5359191894531, - 196.94363403320312 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Phormidium", - "origin": [ - 353.5359191894531, - 262.34844970703125 - ], - "bbox": [ - 353.5359191894531, - 253.90072631835938, - 412.484375, - 264.900634765625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 412.60540771484375, - 262.34844970703125 - ], - "bbox": [ - 412.60540771484375, - 185.9437255859375, - 415.3553771972656, - 196.94363403320312 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Homoeothrix", - "origin": [ - 415.3553771972656, - 262.34844970703125 - ], - "bbox": [ - 415.3553771972656, - 253.90072631835938, - 477.35076904296875, - 264.900634765625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "; whereas the di-", - "origin": [ - 477.4278259277344, - 262.34844970703125 - ], - "bbox": [ - 477.4278259277344, - 185.9437255859375, - 554.0311279296875, - 196.94363403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.10028076171875, - 185.9437255859375, - 554.0311279296875, - 264.900634765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "versity of the unicellular blue-green algae of the genera", - "origin": [ - 313.08935546875, - 273.54632568359375 - ], - "bbox": [ - 313.08935546875, - 197.1416015625, - 553.987060546875, - 208.14151000976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08935546875, - 197.1416015625, - 553.987060546875, - 208.14151000976562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Microcystis", - "origin": [ - 313.08935546875, - 284.7442321777344 - ], - "bbox": [ - 313.08935546875, - 276.2965087890625, - 363.9528503417969, - 287.2964172363281 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 363.94189453125, - 284.7442321777344 - ], - "bbox": [ - 363.94189453125, - 208.33950805664062, - 366.6918640136719, - 219.33941650390625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Gloeocapsa", - "origin": [ - 366.6918640136719, - 284.7442321777344 - ], - "bbox": [ - 366.6918640136719, - 276.2965087890625, - 421.7132873535156, - 287.2964172363281 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " and unicellular green algae of", - "origin": [ - 421.7132873535156, - 284.7442321777344 - ], - "bbox": [ - 421.7132873535156, - 208.33950805664062, - 554.0090942382812, - 219.33941650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.08935546875, - 208.33950805664062, - 554.0090942382812, - 287.2964172363281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the genera", - "origin": [ - 313.1003723144531, - 295.942138671875 - ], - "bbox": [ - 313.1003723144531, - 219.53741455078125, - 360.6638488769531, - 230.53732299804688 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Scenedesmus", - "origin": [ - 360.6638488769531, - 295.942138671875 - ], - "bbox": [ - 360.6638488769531, - 287.4944152832031, - 423.51727294921875, - 298.49432373046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 423.5503845214844, - 295.942138671875 - ], - "bbox": [ - 423.5503845214844, - 219.53741455078125, - 426.30035400390625, - 230.53732299804688 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Cosmarium", - "origin": [ - 426.30035400390625, - 295.942138671875 - ], - "bbox": [ - 426.30035400390625, - 287.4944152832031, - 482.44384765625, - 298.49432373046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " decreases. The", - "origin": [ - 482.44384765625, - 295.942138671875 - ], - "bbox": [ - 482.44384765625, - 219.53741455078125, - 554.03125, - 230.53732299804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.1003723144531, - 219.53741455078125, - 554.03125, - 298.49432373046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tendency is revealed for the biomass of phytoepiphyton", - "origin": [ - 313.11138916015625, - 307.1400451660156 - ], - "bbox": [ - 313.11138916015625, - 230.73532104492188, - 553.3819580078125, - 241.7352294921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.11138916015625, - 230.73532104492188, - 553.3819580078125, - 241.7352294921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "to increase towards the shore. Within the dominating", - "origin": [ - 313.11138916015625, - 318.33795166015625 - ], - "bbox": [ - 313.11138916015625, - 241.9332275390625, - 553.965087890625, - 252.93313598632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.11138916015625, - 241.9332275390625, - 553.965087890625, - 252.93313598632812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "complex on various species of macrophytes the diatoms", - "origin": [ - 313.11138916015625, - 329.5358581542969 - ], - "bbox": [ - 313.11138916015625, - 253.13113403320312, - 554.02001953125, - 264.13104248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.11138916015625, - 253.13113403320312, - 554.02001953125, - 264.13104248046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "were found:", - "origin": [ - 313.11138916015625, - 340.7337646484375 - ], - "bbox": [ - 313.11138916015625, - 264.32904052734375, - 366.5598449707031, - 275.3289489746094 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Fragillaria pinnata", - "origin": [ - 366.5598449707031, - 340.7337646484375 - ], - "bbox": [ - 366.5598449707031, - 332.2860412597656, - 456.737060546875, - 343.28594970703125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Ehr.,", - "origin": [ - 456.737060546875, - 340.7337646484375 - ], - "bbox": [ - 456.737060546875, - 264.32904052734375, - 481.1128234863281, - 275.3289489746094 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Achnanthes mi-", - "origin": [ - 481.1128234863281, - 340.7337646484375 - ], - "bbox": [ - 481.1128234863281, - 332.2860412597656, - 554.042236328125, - 343.28594970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.11138916015625, - 264.32904052734375, - 554.042236328125, - 343.28594970703125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "nutissima", - "origin": [ - 313.1003723144531, - 351.9316711425781 - ], - "bbox": [ - 313.1003723144531, - 343.48394775390625, - 355.27398681640625, - 354.4838562011719 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " K", - "origin": [ - 355.27398681640625, - 351.9316711425781 - ], - "bbox": [ - 355.27398681640625, - 275.5269470214844, - 366.1308898925781, - 286.52685546875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 365.8118896484375, - 351.2496643066406 - ], - "bbox": [ - 365.8118896484375, - 283.3988037109375, - 371.9124450683594, - 294.3987121582031 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz.,", - "origin": [ - 366.119873046875, - 351.96466064453125 - ], - "bbox": [ - 366.119873046875, - 275.51593017578125, - 384.97369384765625, - 286.5598449707031 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " A. linearis", - "origin": [ - 384.97369384765625, - 351.920654296875 - ], - "bbox": [ - 384.97369384765625, - 343.4729309082031, - 433.7802734375, - 354.47283935546875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (W. Sm.) Grun., and", - "origin": [ - 433.7802734375, - 351.920654296875 - ], - "bbox": [ - 433.7802734375, - 275.51593017578125, - 526.0913696289062, - 286.5158386230469 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Gom-", - "origin": [ - 526.0913696289062, - 351.920654296875 - ], - "bbox": [ - 526.0913696289062, - 343.4729309082031, - 554.0300903320312, - 354.47283935546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.1003723144531, - 275.51593017578125, - 554.0300903320312, - 354.4838562011719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "phonema", - "origin": [ - 313.100341796875, - 363.1185607910156 - ], - "bbox": [ - 313.100341796875, - 354.67083740234375, - 353.4259033203125, - 365.6707458496094 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (including", - "origin": [ - 353.4259033203125, - 363.1185607910156 - ], - "bbox": [ - 353.4259033203125, - 286.7138366699219, - 403.3984680175781, - 297.7137451171875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " G. constrictum", - "origin": [ - 403.3984680175781, - 363.1185607910156 - ], - "bbox": [ - 403.3984680175781, - 354.67083740234375, - 475.44781494140625, - 365.6707458496094 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Ehr. and", - "origin": [ - 475.44781494140625, - 363.1185607910156 - ], - "bbox": [ - 475.44781494140625, - 286.7138366699219, - 518.721435546875, - 297.7137451171875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " G. oli-", - "origin": [ - 518.721435546875, - 363.1185607910156 - ], - "bbox": [ - 518.721435546875, - 354.67083740234375, - 553.9982299804688, - 365.6707458496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.100341796875, - 286.7138366699219, - 553.9982299804688, - 365.6707458496094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "vaceum", - "origin": [ - 313.100341796875, - 374.31646728515625 - ], - "bbox": [ - 313.100341796875, - 365.8687438964844, - 346.6939697265625, - 376.86865234375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Lyngb.) K", - "origin": [ - 346.6939697265625, - 374.31646728515625 - ], - "bbox": [ - 346.6939697265625, - 297.9117431640625, - 398.3714904785156, - 308.9116516113281 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 398.2615661621094, - 373.63446044921875 - ], - "bbox": [ - 398.2615661621094, - 305.78363037109375, - 404.36212158203125, - 316.78350830078125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz.).", - "origin": [ - 398.5695495605469, - 374.3494567871094 - ], - "bbox": [ - 398.5695495605469, - 297.9117431640625, - 421.0863342285156, - 308.94464111328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.100341796875, - 297.9117431640625, - 421.0863342285156, - 376.86865234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The biomass of the algae of epiphyton changes from", - "origin": [ - 327.2681884765625, - 389.65032958984375 - ], - "bbox": [ - 327.2681884765625, - 313.24560546875, - 554.0639038085938, - 324.2455139160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2681884765625, - 313.24560546875, - 554.0639038085938, - 324.2455139160156 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "0.03 g/m", - "origin": [ - 313.1003112792969, - 400.8482360839844 - ], - "bbox": [ - 313.1003112792969, - 324.4435119628906, - 351.9519348144531, - 335.44342041015625 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 351.8888854980469, - 395.9804992675781 - ], - "bbox": [ - 351.8888854980469, - 346.3169860839844, - 355.4638977050781, - 353.46697998046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " ", - "origin": [ - 355.4638977050781, - 395.9804992675781 - ], - "bbox": [ - 355.4638977050781, - 319.5757751464844, - 357.87109375, - 330.57568359375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on", - "origin": [ - 357.87109375, - 400.9635009765625 - ], - "bbox": [ - 357.87109375, - 324.55877685546875, - 368.8709716796875, - 335.5586853027344 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " P. perfoliatus", - "origin": [ - 368.8709716796875, - 400.9635009765625 - ], - "bbox": [ - 368.8709716796875, - 392.5157775878906, - 429.4144287109375, - 403.51568603515625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " to 192.35 g/m", - "origin": [ - 429.4144287109375, - 400.9635009765625 - ], - "bbox": [ - 429.4144287109375, - 324.55877685546875, - 492.7847900390625, - 335.5586853027344 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 492.7424011230469, - 395.9804992675781 - ], - "bbox": [ - 492.7424011230469, - 346.3169860839844, - 496.3174133300781, - 353.46697998046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " ", - "origin": [ - 496.3174133300781, - 395.9804992675781 - ], - "bbox": [ - 496.3174133300781, - 319.5757751464844, - 498.724609375, - 330.57568359375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on", - "origin": [ - 498.724609375, - 400.9635009765625 - ], - "bbox": [ - 498.724609375, - 324.55877685546875, - 509.7244873046875, - 335.5586853027344 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " B. divari-", - "origin": [ - 509.7244873046875, - 400.9635009765625 - ], - "bbox": [ - 509.7244873046875, - 392.5157775878906, - 554.0211181640625, - 403.51568603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.1003112792969, - 319.5757751464844, - 554.0211181640625, - 403.51568603515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "catum", - "origin": [ - 313.09033203125, - 412.1614074707031 - ], - "bbox": [ - 313.09033203125, - 403.71368408203125, - 339.97406005859375, - 414.7135925292969 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " and corresponds to the values of the mass of", - "origin": [ - 339.97406005859375, - 412.1614074707031 - ], - "bbox": [ - 339.97406005859375, - 335.7566833496094, - 553.9879150390625, - 346.756591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 335.7566833496094, - 553.9879150390625, - 414.7135925292969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "phytoepiphyton in other oligotrophic water bodies and", - "origin": [ - 313.09033203125, - 423.35931396484375 - ], - "bbox": [ - 313.09033203125, - 346.95458984375, - 553.9769287109375, - 357.9544982910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 346.95458984375, - 553.9769287109375, - 357.9544982910156 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water streams [28, 30–32].", - "origin": [ - 313.09033203125, - 434.5572204589844 - ], - "bbox": [ - 313.09033203125, - 358.1524963378906, - 430.70111083984375, - 369.15240478515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 358.1524963378906, - 430.70111083984375, - 369.15240478515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "In addition to the algae, large amount of mineral and", - "origin": [ - 327.2582092285156, - 449.8910827636719 - ], - "bbox": [ - 327.2582092285156, - 373.4863586425781, - 553.9769287109375, - 384.48626708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2582092285156, - 373.4863586425781, - 553.9769287109375, - 384.48626708984375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "organic particles and sand deposit on the macrophytes", - "origin": [ - 313.09033203125, - 461.0889892578125 - ], - "bbox": [ - 313.09033203125, - 384.68426513671875, - 553.9659423828125, - 395.6841735839844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 384.68426513671875, - 553.9659423828125, - 395.6841735839844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "forming epiphytic suspension (the term is introduced", - "origin": [ - 313.09033203125, - 472.2868957519531 - ], - "bbox": [ - 313.09033203125, - 395.8821716308594, - 553.8780517578125, - 406.882080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 395.8821716308594, - 553.8780517578125, - 406.882080078125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "by E. P. Yanin [33]). The ratio of the mass of the", - "origin": [ - 313.09033203125, - 483.48480224609375 - ], - "bbox": [ - 313.09033203125, - 407.080078125, - 553.9769897460938, - 418.0799865722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 407.080078125, - 553.9769897460938, - 418.0799865722656 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "epiphytic suspension and the mass of the macrophyte", - "origin": [ - 313.09033203125, - 494.6827087402344 - ], - "bbox": [ - 313.09033203125, - 418.2779846191406, - 553.9439697265625, - 429.27789306640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 418.2779846191406, - 553.9439697265625, - 429.27789306640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "varies from 0.47 to 25.07, increasing on the macro-", - "origin": [ - 313.09033203125, - 505.880615234375 - ], - "bbox": [ - 313.09033203125, - 429.47589111328125, - 554.0321044921875, - 440.4757995605469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 429.47589111328125, - 554.0321044921875, - 440.4757995605469 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "phytes with more dissected surface. The change in the", - "origin": [ - 313.09033203125, - 517.0784912109375 - ], - "bbox": [ - 313.09033203125, - 440.67376708984375, - 553.9989013671875, - 451.6736755371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 440.67376708984375, - 553.9989013671875, - 451.6736755371094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "mass of epiphytic suspension on the macrophytes with", - "origin": [ - 313.09033203125, - 528.2764282226562 - ], - "bbox": [ - 313.09033203125, - 451.8717041015625, - 553.9769897460938, - 462.8716125488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 451.8717041015625, - 553.9769897460938, - 462.8716125488281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "homogeneous surface (flat or dissected leaves) in dif-", - "origin": [ - 313.09033203125, - 539.4743041992188 - ], - "bbox": [ - 313.09033203125, - 463.069580078125, - 554.0321044921875, - 474.0694885253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 463.069580078125, - 554.0321044921875, - 474.0694885253906 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ferent areas of the lake leads to conclusion that if the", - "origin": [ - 313.09033203125, - 550.6722412109375 - ], - "bbox": [ - 313.09033203125, - 474.26751708984375, - 554.0209350585938, - 485.2674255371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 474.26751708984375, - 554.0209350585938, - 485.2674255371094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "main stream of the suspended particles comes from the", - "origin": [ - 313.09033203125, - 561.8701171875 - ], - "bbox": [ - 313.09033203125, - 485.46539306640625, - 554.0099487304688, - 496.4653015136719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 485.46539306640625, - 554.0099487304688, - 496.4653015136719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "shore, the mass of the epiphytic suspension is the high-", - "origin": [ - 313.09033203125, - 573.0679931640625 - ], - "bbox": [ - 313.09033203125, - 496.66326904296875, - 554.0321044921875, - 507.6631774902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 496.66326904296875, - 554.0321044921875, - 507.6631774902344 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "est near the shore. If more suspended particles come", - "origin": [ - 313.09033203125, - 584.265869140625 - ], - "bbox": [ - 313.09033203125, - 507.86114501953125, - 554.1199340820312, - 518.861083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 507.86114501953125, - 554.1199340820312, - 518.861083984375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "from the open part of the lake, the mass of the epiphytic", - "origin": [ - 313.09033203125, - 595.4637451171875 - ], - "bbox": [ - 313.09033203125, - 519.0590209960938, - 553.8670043945312, - 530.0589599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 519.0590209960938, - 553.8670043945312, - 530.0589599609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "suspension is more in the stands bordering the open wa-", - "origin": [ - 313.09033203125, - 606.6616821289062 - ], - "bbox": [ - 313.09033203125, - 530.2569580078125, - 554.0211181640625, - 541.2568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 530.2569580078125, - 554.0211181640625, - 541.2568359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ter. The share of live cells in the epiphytic suspension", - "origin": [ - 313.09033203125, - 617.8595581054688 - ], - "bbox": [ - 313.09033203125, - 541.454833984375, - 553.9110107421875, - 552.4547119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 541.454833984375, - 553.9110107421875, - 552.4547119140625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the macrophytes subjected to the wave load is lower", - "origin": [ - 313.09033203125, - 629.0574340820312 - ], - "bbox": [ - 313.09033203125, - 552.6527099609375, - 554.010009765625, - 563.652587890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 552.6527099609375, - 554.010009765625, - 563.652587890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "than that in the calmer parts (2 and 30–90%, respec-", - "origin": [ - 313.09033203125, - 640.25537109375 - ], - "bbox": [ - 313.09033203125, - 563.8506469726562, - 554.0321044921875, - 574.8505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 563.8506469726562, - 554.0321044921875, - 574.8505859375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tively).", - "origin": [ - 313.09033203125, - 651.4532470703125 - ], - "bbox": [ - 313.09033203125, - 575.0485229492188, - 344.56103515625, - 586.0484619140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 575.0485229492188, - 344.56103515625, - 586.0484619140625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Among the algae of the epiphyton the cosmopolite", - "origin": [ - 327.2582092285156, - 666.787109375 - ], - "bbox": [ - 327.2582092285156, - 590.3823852539062, - 554.0099487304688, - 601.38232421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2582092285156, - 590.3823852539062, - 554.0099487304688, - 601.38232421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "forms prevail—37.4% of the taxonomic composition", - "origin": [ - 313.09033203125, - 677.9849853515625 - ], - "bbox": [ - 313.09033203125, - 601.5802612304688, - 553.9659423828125, - 612.5802001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 601.5802612304688, - 553.9659423828125, - 612.5802001953125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(76 taxa). The Arctic-Alpine forms make up 4.4% (9),", - "origin": [ - 313.09033203125, - 689.182861328125 - ], - "bbox": [ - 313.09033203125, - 612.7781372070312, - 553.9659423828125, - 623.778076171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 612.7781372070312, - 553.9659423828125, - 623.778076171875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "boreal, 14.3% of the total composition (29 taxa). The", - "origin": [ - 313.09033203125, - 700.3807983398438 - ], - "bbox": [ - 313.09033203125, - 623.97607421875, - 553.9879760742188, - 634.9759521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 623.97607421875, - 553.9879760742188, - 634.9759521484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "range of salinity, like in case of phytoepilithon, reflects", - "origin": [ - 313.09033203125, - 711.5786743164062 - ], - "bbox": [ - 313.09033203125, - 635.1739501953125, - 554.0540771484375, - 646.173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 635.1739501953125, - 554.0540771484375, - 646.173828125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the low mineralization of the water in Lake Teletskoye.", - "origin": [ - 313.09033203125, - 722.776611328125 - ], - "bbox": [ - 313.09033203125, - 646.3718872070312, - 553.9000244140625, - 657.371826171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.09033203125, - 646.3718872070312, - 553.9000244140625, - 657.371826171875 - ] - } - ], - "tag": "header" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 269.92181396484375, - 748.1763916015625 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 3, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_4": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 57.96849060058594, - 441.42034912109375, - 298.9432373046875, - 658.1619873046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The share of halophobes is 5.9% (12 taxa) (see Fig. 2).", - "origin": [ - 57.96849822998047, - 517.8250732421875 - ], - "bbox": [ - 57.96849822998047, - 441.42034912109375, - 298.8552551269531, - 452.4202575683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 441.42034912109375, - 298.8552551269531, - 452.4202575683594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The share of drimophiles is 2.0% (4 taxa), mesohalo-", - "origin": [ - 57.96849822998047, - 529.0230102539062 - ], - "bbox": [ - 57.96849822998047, - 452.6182861328125, - 298.9102783203125, - 463.6181945800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 452.6182861328125, - 298.9102783203125, - 463.6181945800781 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "philes—1.0% (2 taxa). Among the pH indicators those", - "origin": [ - 57.96849060058594, - 540.2208862304688 - ], - "bbox": [ - 57.96849060058594, - 463.816162109375, - 298.85528564453125, - 474.8160705566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 463.816162109375, - 298.85528564453125, - 474.8160705566406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of alkalescent reaction of the medium prevail with the", - "origin": [ - 57.96849060058594, - 551.4188232421875 - ], - "bbox": [ - 57.96849060058594, - 475.01409912109375, - 298.8773498535156, - 486.0140075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 475.01409912109375, - 298.8773498535156, - 486.0140075683594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "share of alkaliphiles and alkalibionts (21.2% of the total", - "origin": [ - 57.96849060058594, - 562.61669921875 - ], - "bbox": [ - 57.96849060058594, - 486.21197509765625, - 298.8222961425781, - 497.2118835449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 486.21197509765625, - 298.8222961425781, - 497.2118835449219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "composition, or 43 taxa) exceeding the share of acido-", - "origin": [ - 57.96849060058594, - 573.8145751953125 - ], - "bbox": [ - 57.96849060058594, - 497.40985107421875, - 298.9102783203125, - 508.4097595214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 497.40985107421875, - 298.9102783203125, - 508.4097595214844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "philes (3.9%, or 8 taxa). The characteristic in relation to", - "origin": [ - 57.96849060058594, - 585.012451171875 - ], - "bbox": [ - 57.96849060058594, - 508.60772705078125, - 298.7012939453125, - 519.607666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 508.60772705078125, - 298.7012939453125, - 519.607666015625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the organic pollution is known only for 36.0% of all", - "origin": [ - 57.96849060058594, - 596.2103271484375 - ], - "bbox": [ - 57.96849060058594, - 519.8056030273438, - 298.8992919921875, - 530.8055419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 519.8056030273438, - 298.8992919921875, - 530.8055419921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "listed algae forms (73). The majority of them, 30.0%", - "origin": [ - 57.96849060058594, - 607.4082641601562 - ], - "bbox": [ - 57.96849060058594, - 531.0035400390625, - 298.8222351074219, - 542.00341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 531.0035400390625, - 298.8222351074219, - 542.00341796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(61 taxa), are the inhabitants of pure water xeno-,", - "origin": [ - 57.96849060058594, - 618.6061401367188 - ], - "bbox": [ - 57.96849060058594, - 542.201416015625, - 298.8112487792969, - 553.2012939453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 542.201416015625, - 298.8112487792969, - 553.2012939453125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "oligo-, and", - "origin": [ - 57.96849060058594, - 629.8040161132812 - ], - "bbox": [ - 57.96849060058594, - 553.3992919921875, - 105.63105010986328, - 564.399169921875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 105.63105010986328, - 629.8040161132812 - ], - "bbox": [ - 105.63105010986328, - 621.3486938476562, - 114.03498077392578, - 632.381591796875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "-mesosaprobionts.", - "origin": [ - 113.39698028564453, - 629.8040161132812 - ], - "bbox": [ - 113.39698028564453, - 553.3992919921875, - 193.75125122070312, - 564.399169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 553.3992919921875, - 193.75125122070312, - 632.381591796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The species diversity of the algae on the", - "origin": [ - 72.14735412597656, - 644.411865234375 - ], - "bbox": [ - 72.14735412597656, - 568.0071411132812, - 250.57675170898438, - 579.007080078125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " plant resi-", - "origin": [ - 250.57675170898438, - 644.411865234375 - ], - "bbox": [ - 250.57675170898438, - 635.9641723632812, - 298.9212646484375, - 646.9640502929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.14735412597656, - 568.0071411132812, - 298.9212646484375, - 646.9640502929688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "dues", - "origin": [ - 57.97947692871094, - 655.6098022460938 - ], - "bbox": [ - 57.97947692871094, - 647.162109375, - 78.14229583740234, - 658.1619873046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (horse-tail, pondweed, leaves residues) is signifi-", - "origin": [ - 78.14229583740234, - 655.6098022460938 - ], - "bbox": [ - 78.14229583740234, - 579.205078125, - 298.9102783203125, - 590.2049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97947692871094, - 579.205078125, - 298.9102783203125, - 658.1619873046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cantly lower as compared with the live plants, 74 spe-", - "origin": [ - 57.96849060058594, - 666.8186645507812 - ], - "bbox": [ - 57.96849060058594, - 590.4139404296875, - 298.9102783203125, - 601.413818359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 590.4139404296875, - 298.9102783203125, - 601.413818359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cies (78 taxa lower than genus) of four sections. It", - "origin": [ - 57.96849060058594, - 678.0166015625 - ], - "bbox": [ - 57.96849060058594, - 601.6118774414062, - 298.8883361816406, - 612.61181640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 601.6118774414062, - 298.8883361816406, - 612.61181640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "might be so that the lesser species diversity of the algae", - "origin": [ - 57.96849060058594, - 689.2144775390625 - ], - "bbox": [ - 57.96849060058594, - 612.8097534179688, - 298.9212341308594, - 623.8096923828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 612.8097534179688, - 298.9212341308594, - 623.8096923828125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the decaying plants is related to the lesser amount of", - "origin": [ - 57.96849060058594, - 700.412353515625 - ], - "bbox": [ - 57.96849060058594, - 624.0076293945312, - 298.87725830078125, - 635.007568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 624.0076293945312, - 298.87725830078125, - 635.007568359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the samples. The diatoms make up 77% of the species", - "origin": [ - 57.96849060058594, - 711.6102905273438 - ], - "bbox": [ - 57.96849060058594, - 635.20556640625, - 298.9432373046875, - 646.2054443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 635.20556640625, - 298.9432373046875, - 646.2054443359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "composition, green and blue-green algae, 11% each", - "origin": [ - 57.96849060058594, - 722.8081665039062 - ], - "bbox": [ - 57.96849060058594, - 646.4034423828125, - 298.9102478027344, - 657.4033203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 646.4034423828125, - 298.9102478027344, - 657.4033203125 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 57.968475341796875, - 400.41058349609375, - 554.0518188476562, - 483.42816162109375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Fig. 2.", - "origin": [ - 57.96849822998047, - 462.92340087890625 - ], - "bbox": [ - 57.96849822998047, - 455.978271484375, - 81.27824401855469, - 464.9781799316406 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Ecological range of phytoperiphyton of various substrates in Lake Teletskoye. (a), Phytoepilithon; (b), phytoepiphyton; (c), algae on", - "origin": [ - 81.27824401855469, - 462.92340087890625 - ], - "bbox": [ - 81.27824401855469, - 400.41058349609375, - 554.0518188476562, - 409.41046142578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 400.41058349609375, - 554.0518188476562, - 464.9781799316406 - ] - }, - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "plant residues.", - "origin": [ - 57.96849822998047, - 472.1213073730469 - ], - "bbox": [ - 57.96849822998047, - 409.6084899902344, - 112.54389190673828, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " I", - "origin": [ - 112.54389190673828, - 472.1213073730469 - ], - "bbox": [ - 112.54389190673828, - 465.2095642089844, - 120.38279724121094, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Indifferent species;", - "origin": [ - 120.38279724121094, - 472.1213073730469 - ], - "bbox": [ - 120.38279724121094, - 409.6084899902344, - 199.284912109375, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " oh", - "origin": [ - 199.284912109375, - 472.1213073730469 - ], - "bbox": [ - 199.284912109375, - 465.2095642089844, - 213.13577270507812, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", oligohalophiles;", - "origin": [ - 213.13577270507812, - 472.1213073730469 - ], - "bbox": [ - 213.13577270507812, - 409.6084899902344, - 278.1960754394531, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " hl", - "origin": [ - 278.1960754394531, - 472.1213073730469 - ], - "bbox": [ - 278.1960754394531, - 465.2095642089844, - 290.1119079589844, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", drimophiles;", - "origin": [ - 290.1299133300781, - 472.1213073730469 - ], - "bbox": [ - 290.1299133300781, - 409.6084899902344, - 342.6893005371094, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " hb", - "origin": [ - 342.6893005371094, - 472.1213073730469 - ], - "bbox": [ - 342.6893005371094, - 465.2095642089844, - 356.504150390625, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", halophobes;", - "origin": [ - 356.504150390625, - 472.1213073730469 - ], - "bbox": [ - 356.504150390625, - 409.6084899902344, - 407.0564880371094, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " mh", - "origin": [ - 407.0564880371094, - 472.1213073730469 - ], - "bbox": [ - 407.0564880371094, - 465.2095642089844, - 422.89642333984375, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", mesohalophiles;", - "origin": [ - 422.8784484863281, - 472.1213073730469 - ], - "bbox": [ - 422.8784484863281, - 409.6084899902344, - 488.4336242675781, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " alf", - "origin": [ - 488.4336242675781, - 472.1213073730469 - ], - "bbox": [ - 488.4336242675781, - 465.2095642089844, - 502.7795715332031, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", alkaliphiles;", - "origin": [ - 502.8155517578125, - 472.1213073730469 - ], - "bbox": [ - 502.8155517578125, - 409.6084899902344, - 553.8718872070312, - 418.6083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 409.6084899902344, - 553.8718872070312, - 474.2094421386719 - ] - }, - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "acf", - "origin": [ - 57.968475341796875, - 481.3192138671875 - ], - "bbox": [ - 57.968475341796875, - 474.407470703125, - 68.96635437011719, - 483.4073486328125 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", acidophiles;", - "origin": [ - 69.0113525390625, - 481.3192138671875 - ], - "bbox": [ - 69.0113525390625, - 418.806396484375, - 117.00782775878906, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " x", - "origin": [ - 117.00782775878906, - 481.3192138671875 - ], - "bbox": [ - 117.00782775878906, - 474.407470703125, - 123.46974182128906, - 483.4073486328125 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", xenosaprobionts;", - "origin": [ - 123.49674224853516, - 481.3192138671875 - ], - "bbox": [ - 123.49674224853516, - 418.806396484375, - 189.49302673339844, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " o", - "origin": [ - 189.49302673339844, - 481.3192138671875 - ], - "bbox": [ - 189.49302673339844, - 474.407470703125, - 196.39593505859375, - 483.4073486328125 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", oligosaprobionts;", - "origin": [ - 196.39593505859375, - 481.3192138671875 - ], - "bbox": [ - 196.39593505859375, - 418.806396484375, - 263.4002380371094, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 263.4002380371094, - 481.3192138671875 - ], - "bbox": [ - 263.4002380371094, - 474.4012451171875, - 270.1681213378906, - 483.42816162109375 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 270.0421142578125, - 481.3192138671875 - ], - "bbox": [ - 270.0421142578125, - 418.806396484375, - 272.2920837402344, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 272.2920837402344, - 481.3192138671875 - ], - "bbox": [ - 272.2920837402344, - 474.4012451171875, - 278.9520263671875, - 483.42816162109375 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "-mesosaprobionts;", - "origin": [ - 278.8260192871094, - 481.3192138671875 - ], - "bbox": [ - 278.8260192871094, - 418.806396484375, - 344.8222961425781, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 344.8222961425781, - 481.3192138671875 - ], - "bbox": [ - 344.8222961425781, - 474.4012451171875, - 352.1932067871094, - 483.42816162109375 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 352.5172119140625, - 481.3192138671875 - ], - "bbox": [ - 352.5172119140625, - 418.806396484375, - 354.7671813964844, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 354.7671813964844, - 481.3192138671875 - ], - "bbox": [ - 354.7671813964844, - 474.4012451171875, - 362.16510009765625, - 483.42816162109375 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "-mesosaprobionts;", - "origin": [ - 362.4891052246094, - 481.3192138671875 - ], - "bbox": [ - 362.4891052246094, - 418.806396484375, - 428.4853820800781, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 428.4853820800781, - 481.3192138671875 - ], - "bbox": [ - 428.4853820800781, - 474.4012451171875, - 435.1183166503906, - 483.42816162109375 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", polysaprobionts.", - "origin": [ - 434.3713073730469, - 481.3192138671875 - ], - "bbox": [ - 434.3713073730469, - 418.806396484375, - 498.6215515136719, - 427.8062744140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968475341796875, - 418.806396484375, - 498.6215515136719, - 483.42816162109375 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 345.59999999999997, - 465.11999999999995, - 358.56, - 475.2 - ], - "image_path": "equations_inline/4_345_465_358_475.jpg" - }, - { - "bbox": [ - 281.28, - 465.59999999999997, - 293.76, - 475.2 - ], - "image_path": "equations_inline/4_281_465_293_475.jpg" - }, - { - "bbox": [ - 129.6, - 565.92, - 142.07999999999998, - 576.0 - ], - "image_path": "equations_inline/4_129_565_142_576.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 0, - 612.0, - 792.0 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 57.96849060058594, - 441.42034912109375, - 298.9432373046875, - 658.1619873046875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The share of halophobes is 5.9% (12 taxa) (see Fig. 2).", - "origin": [ - 57.96849822998047, - 517.8250732421875 - ], - "bbox": [ - 57.96849822998047, - 441.42034912109375, - 298.8552551269531, - 452.4202575683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 441.42034912109375, - 298.8552551269531, - 452.4202575683594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The share of drimophiles is 2.0% (4 taxa), mesohalo-", - "origin": [ - 57.96849822998047, - 529.0230102539062 - ], - "bbox": [ - 57.96849822998047, - 452.6182861328125, - 298.9102783203125, - 463.6181945800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 452.6182861328125, - 298.9102783203125, - 463.6181945800781 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "philes—1.0% (2 taxa). Among the pH indicators those", - "origin": [ - 57.96849060058594, - 540.2208862304688 - ], - "bbox": [ - 57.96849060058594, - 463.816162109375, - 298.85528564453125, - 474.8160705566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 463.816162109375, - 298.85528564453125, - 474.8160705566406 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of alkalescent reaction of the medium prevail with the", - "origin": [ - 57.96849060058594, - 551.4188232421875 - ], - "bbox": [ - 57.96849060058594, - 475.01409912109375, - 298.8773498535156, - 486.0140075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 475.01409912109375, - 298.8773498535156, - 486.0140075683594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "share of alkaliphiles and alkalibionts (21.2% of the total", - "origin": [ - 57.96849060058594, - 562.61669921875 - ], - "bbox": [ - 57.96849060058594, - 486.21197509765625, - 298.8222961425781, - 497.2118835449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 486.21197509765625, - 298.8222961425781, - 497.2118835449219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "composition, or 43 taxa) exceeding the share of acido-", - "origin": [ - 57.96849060058594, - 573.8145751953125 - ], - "bbox": [ - 57.96849060058594, - 497.40985107421875, - 298.9102783203125, - 508.4097595214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 497.40985107421875, - 298.9102783203125, - 508.4097595214844 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "philes (3.9%, or 8 taxa). The characteristic in relation to", - "origin": [ - 57.96849060058594, - 585.012451171875 - ], - "bbox": [ - 57.96849060058594, - 508.60772705078125, - 298.7012939453125, - 519.607666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 508.60772705078125, - 298.7012939453125, - 519.607666015625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the organic pollution is known only for 36.0% of all", - "origin": [ - 57.96849060058594, - 596.2103271484375 - ], - "bbox": [ - 57.96849060058594, - 519.8056030273438, - 298.8992919921875, - 530.8055419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 519.8056030273438, - 298.8992919921875, - 530.8055419921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "listed algae forms (73). The majority of them, 30.0%", - "origin": [ - 57.96849060058594, - 607.4082641601562 - ], - "bbox": [ - 57.96849060058594, - 531.0035400390625, - 298.8222351074219, - 542.00341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 531.0035400390625, - 298.8222351074219, - 542.00341796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(61 taxa), are the inhabitants of pure water xeno-,", - "origin": [ - 57.96849060058594, - 618.6061401367188 - ], - "bbox": [ - 57.96849060058594, - 542.201416015625, - 298.8112487792969, - 553.2012939453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 542.201416015625, - 298.8112487792969, - 553.2012939453125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "oligo-, and", - "origin": [ - 57.96849060058594, - 629.8040161132812 - ], - "bbox": [ - 57.96849060058594, - 553.3992919921875, - 105.63105010986328, - 564.399169921875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 105.63105010986328, - 629.8040161132812 - ], - "bbox": [ - 105.63105010986328, - 621.3486938476562, - 114.03498077392578, - 632.381591796875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "-mesosaprobionts.", - "origin": [ - 113.39698028564453, - 629.8040161132812 - ], - "bbox": [ - 113.39698028564453, - 553.3992919921875, - 193.75125122070312, - 564.399169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 553.3992919921875, - 193.75125122070312, - 632.381591796875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The species diversity of the algae on the", - "origin": [ - 72.14735412597656, - 644.411865234375 - ], - "bbox": [ - 72.14735412597656, - 568.0071411132812, - 250.57675170898438, - 579.007080078125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " plant resi-", - "origin": [ - 250.57675170898438, - 644.411865234375 - ], - "bbox": [ - 250.57675170898438, - 635.9641723632812, - 298.9212646484375, - 646.9640502929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.14735412597656, - 568.0071411132812, - 298.9212646484375, - 646.9640502929688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "dues", - "origin": [ - 57.97947692871094, - 655.6098022460938 - ], - "bbox": [ - 57.97947692871094, - 647.162109375, - 78.14229583740234, - 658.1619873046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (horse-tail, pondweed, leaves residues) is signifi-", - "origin": [ - 78.14229583740234, - 655.6098022460938 - ], - "bbox": [ - 78.14229583740234, - 579.205078125, - 298.9102783203125, - 590.2049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97947692871094, - 579.205078125, - 298.9102783203125, - 658.1619873046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cantly lower as compared with the live plants, 74 spe-", - "origin": [ - 57.96849060058594, - 666.8186645507812 - ], - "bbox": [ - 57.96849060058594, - 590.4139404296875, - 298.9102783203125, - 601.413818359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 590.4139404296875, - 298.9102783203125, - 601.413818359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cies (78 taxa lower than genus) of four sections. It", - "origin": [ - 57.96849060058594, - 678.0166015625 - ], - "bbox": [ - 57.96849060058594, - 601.6118774414062, - 298.8883361816406, - 612.61181640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 601.6118774414062, - 298.8883361816406, - 612.61181640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "might be so that the lesser species diversity of the algae", - "origin": [ - 57.96849060058594, - 689.2144775390625 - ], - "bbox": [ - 57.96849060058594, - 612.8097534179688, - 298.9212341308594, - 623.8096923828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 612.8097534179688, - 298.9212341308594, - 623.8096923828125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the decaying plants is related to the lesser amount of", - "origin": [ - 57.96849060058594, - 700.412353515625 - ], - "bbox": [ - 57.96849060058594, - 624.0076293945312, - 298.87725830078125, - 635.007568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 624.0076293945312, - 298.87725830078125, - 635.007568359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the samples. The diatoms make up 77% of the species", - "origin": [ - 57.96849060058594, - 711.6102905273438 - ], - "bbox": [ - 57.96849060058594, - 635.20556640625, - 298.9432373046875, - 646.2054443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 635.20556640625, - 298.9432373046875, - 646.2054443359375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "composition, green and blue-green algae, 11% each", - "origin": [ - 57.96849060058594, - 722.8081665039062 - ], - "bbox": [ - 57.96849060058594, - 646.4034423828125, - 298.9102478027344, - 657.4033203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849060058594, - 646.4034423828125, - 298.9102478027344, - 657.4033203125 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 313.0561218261719, - 441.3983154296875, - 554.041748046875, - 725.3273315429688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(see Fig. 1). The leaves residues was found to host", - "origin": [ - 313.0781555175781, - 517.8030395507812 - ], - "bbox": [ - 313.0781555175781, - 441.3983154296875, - 553.9757080078125, - 452.3982238769531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 441.3983154296875, - 553.9757080078125, - 452.3982238769531 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "35 species of algae, the horse-tail—48, the residues of", - "origin": [ - 313.0781555175781, - 529.0009765625 - ], - "bbox": [ - 313.0781555175781, - 452.59625244140625, - 553.9867553710938, - 463.5961608886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 452.59625244140625, - 553.9867553710938, - 463.5961608886719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the pondweed—39 species. From July to October, as", - "origin": [ - 313.0781555175781, - 540.1988525390625 - ], - "bbox": [ - 313.0781555175781, - 463.79412841796875, - 554.041748046875, - 474.7940368652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 463.79412841796875, - 554.041748046875, - 474.7940368652344 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the substrate decays, the number of the species tends to", - "origin": [ - 313.0781555175781, - 551.396728515625 - ], - "bbox": [ - 313.0781555175781, - 474.99200439453125, - 553.9757080078125, - 485.9919128417969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 474.99200439453125, - 553.9757080078125, - 485.9919128417969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "grow: from 17 to 41 on the horse-tail and from 24 to 29", - "origin": [ - 313.0781555175781, - 562.5946044921875 - ], - "bbox": [ - 313.0781555175781, - 486.18988037109375, - 553.975830078125, - 497.1897888183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 486.18988037109375, - 553.975830078125, - 497.1897888183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the pondweed. The number of the species on the", - "origin": [ - 313.0781555175781, - 573.79248046875 - ], - "bbox": [ - 313.0781555175781, - 497.38775634765625, - 553.9976806640625, - 508.3876647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 497.38775634765625, - 553.9976806640625, - 508.3876647949219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "leaves residues did not change, remaining 26–27.", - "origin": [ - 313.0781555175781, - 584.9904174804688 - ], - "bbox": [ - 313.0781555175781, - 508.585693359375, - 529.9849243164062, - 519.5855712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 508.585693359375, - 529.9849243164062, - 519.5855712890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "As the plants decay, the dominating complex is re-", - "origin": [ - 327.24603271484375, - 599.5982666015625 - ], - "bbox": [ - 327.24603271484375, - 523.1935424804688, - 554.0089721679688, - 534.1934814453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.24603271484375, - 523.1935424804688, - 554.0089721679688, - 534.1934814453125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "placed. Thus, the species dominating in their cell densi-", - "origin": [ - 313.07818603515625, - 610.796142578125 - ], - "bbox": [ - 313.07818603515625, - 534.3914184570312, - 554.0199584960938, - 545.391357421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07818603515625, - 534.3914184570312, - 554.0199584960938, - 545.391357421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ties on the live horse-tail (", - "origin": [ - 313.07818603515625, - 621.9940185546875 - ], - "bbox": [ - 313.07818603515625, - 545.5892944335938, - 437.7729797363281, - 556.5892333984375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Fragillaria pinnata", - "origin": [ - 437.7840576171875, - 621.9940185546875 - ], - "bbox": [ - 437.7840576171875, - 613.5463256835938, - 525.6732788085938, - 624.5462036132812 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 525.8382568359375, - 621.9940185546875 - ], - "bbox": [ - 525.8382568359375, - 545.5892944335938, - 528.5882568359375, - 556.5892333984375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Ach-", - "origin": [ - 528.5882568359375, - 621.9940185546875 - ], - "bbox": [ - 528.5882568359375, - 613.5463256835938, - 553.9979858398438, - 624.5462036132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07818603515625, - 545.5892944335938, - 553.9979858398438, - 624.5462036132812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "nanthes microcephala", - "origin": [ - 313.07818603515625, - 633.1919555664062 - ], - "bbox": [ - 313.07818603515625, - 624.7442626953125, - 411.71417236328125, - 635.744140625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (K", - "origin": [ - 411.71417236328125, - 633.1919555664062 - ], - "bbox": [ - 411.71417236328125, - 556.7872314453125, - 427.7191467285156, - 567.787109375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 427.400146484375, - 632.4989624023438 - ], - "bbox": [ - 427.400146484375, - 564.6481323242188, - 433.5007019042969, - 575.6480102539062 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz.) Grun.,", - "origin": [ - 427.7081298828125, - 633.2139282226562 - ], - "bbox": [ - 427.7081298828125, - 556.7761840820312, - 479.8586120605469, - 567.80908203125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " A. minutissima", - "origin": [ - 479.8586120605469, - 633.180908203125 - ], - "bbox": [ - 479.8586120605469, - 624.7332153320312, - 551.1710205078125, - 635.7330932617188 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 551.2479858398438, - 633.180908203125 - ], - "bbox": [ - 551.2479858398438, - 556.7761840820312, - 553.9979858398438, - 567.776123046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07818603515625, - 556.7761840820312, - 553.9979858398438, - 635.744140625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "A. linearis", - "origin": [ - 313.067138671875, - 644.3788452148438 - ], - "bbox": [ - 313.067138671875, - 635.93115234375, - 358.23272705078125, - 646.9310302734375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " and", - "origin": [ - 358.23272705078125, - 644.3788452148438 - ], - "bbox": [ - 358.23272705078125, - 567.97412109375, - 376.228515625, - 578.9739990234375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Gomphonema olivaceum", - "origin": [ - 376.228515625, - 644.3788452148438 - ], - "bbox": [ - 376.228515625, - 635.93115234375, - 487.4483947753906, - 646.9310302734375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ") were replaced", - "origin": [ - 487.5035400390625, - 644.3788452148438 - ], - "bbox": [ - 487.5035400390625, - 567.97412109375, - 553.876953125, - 578.9739990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 567.97412109375, - 553.876953125, - 646.9310302734375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "in 1.5 months after the macrophyte’s death by", - "origin": [ - 313.067138671875, - 655.5767211914062 - ], - "bbox": [ - 313.067138671875, - 579.1719970703125, - 513.5731201171875, - 590.171875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " A. minu-", - "origin": [ - 513.5731201171875, - 655.5767211914062 - ], - "bbox": [ - 513.5731201171875, - 647.1290283203125, - 553.9979248046875, - 658.12890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 579.1719970703125, - 553.9979248046875, - 658.12890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "tissima Fragillaria intermedia", - "origin": [ - 313.067138671875, - 666.78564453125 - ], - "bbox": [ - 313.067138671875, - 658.3379516601562, - 447.81591796875, - 669.3378295898438 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Grun., and", - "origin": [ - 447.81591796875, - 666.78564453125 - ], - "bbox": [ - 447.81591796875, - 590.3809204101562, - 498.1843566894531, - 601.380859375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Gloeocapsa", - "origin": [ - 498.1843566894531, - 666.78564453125 - ], - "bbox": [ - 498.1843566894531, - 658.3379516601562, - 553.8988647460938, - 669.3378295898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 590.3809204101562, - 553.8988647460938, - 669.3378295898438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "magma", - "origin": [ - 313.067138671875, - 677.9835205078125 - ], - "bbox": [ - 313.067138671875, - 669.5358276367188, - 345.4508056640625, - 680.5357055664062 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Breb.) K", - "origin": [ - 345.4508056640625, - 677.9835205078125 - ], - "bbox": [ - 345.4508056640625, - 601.5787963867188, - 392.4753723144531, - 612.5787353515625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 392.15643310546875, - 677.29052734375 - ], - "bbox": [ - 392.15643310546875, - 609.439697265625, - 398.2569885253906, - 620.4395751953125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. emend. Hollerb. In 3.5 months,", - "origin": [ - 392.46441650390625, - 678.0054931640625 - ], - "bbox": [ - 392.46441650390625, - 601.5787963867188, - 553.98681640625, - 612.6007080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 601.5787963867188, - 553.98681640625, - 680.5357055664062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the dominant complex consisted of", - "origin": [ - 313.067138671875, - 689.181396484375 - ], - "bbox": [ - 313.067138671875, - 612.7766723632812, - 477.68048095703125, - 623.776611328125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " A. minutissima", - "origin": [ - 477.68048095703125, - 689.181396484375 - ], - "bbox": [ - 477.68048095703125, - 680.7337036132812, - 551.1710205078125, - 691.7335815429688 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 551.2479858398438, - 689.181396484375 - ], - "bbox": [ - 551.2479858398438, - 612.7766723632812, - 553.9979858398438, - 623.776611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 612.7766723632812, - 553.9979858398438, - 691.7335815429688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Synedra pulchella", - "origin": [ - 313.067138671875, - 700.3793334960938 - ], - "bbox": [ - 313.067138671875, - 691.931640625, - 392.15631103515625, - 702.9315185546875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 392.26641845703125, - 700.3793334960938 - ], - "bbox": [ - 392.26641845703125, - 623.974609375, - 395.0163879394531, - 634.9744873046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " S. vaucheriae", - "origin": [ - 395.0163879394531, - 700.3793334960938 - ], - "bbox": [ - 395.0163879394531, - 691.931640625, - 456.25274658203125, - 702.9315185546875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 456.3078308105469, - 700.3793334960938 - ], - "bbox": [ - 456.3078308105469, - 623.974609375, - 459.05780029296875, - 634.9744873046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Tabellaria flocculosa", - "origin": [ - 459.05780029296875, - 700.3793334960938 - ], - "bbox": [ - 459.05780029296875, - 691.931640625, - 553.9099731445312, - 702.9315185546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 623.974609375, - 553.9099731445312, - 702.9315185546875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(Roth) K", - "origin": [ - 313.067138671875, - 711.5772094726562 - ], - "bbox": [ - 313.067138671875, - 635.1724853515625, - 352.6337585449219, - 646.17236328125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 352.3147888183594, - 710.8842163085938 - ], - "bbox": [ - 352.3147888183594, - 643.0333862304688, - 358.41534423828125, - 654.0332641601562 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. The change of dominating species during", - "origin": [ - 352.6227722167969, - 711.5992431640625 - ], - "bbox": [ - 352.6227722167969, - 635.1724853515625, - 553.86572265625, - 646.1944580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 635.1724853515625, - 553.86572265625, - 654.0332641601562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the decay of the pondweed was as follows:", - "origin": [ - 313.0561218261719, - 722.775146484375 - ], - "bbox": [ - 313.0561218261719, - 646.3704223632812, - 501.56121826171875, - 657.370361328125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Fragillaria", - "origin": [ - 501.56121826171875, - 722.775146484375 - ], - "bbox": [ - 501.56121826171875, - 714.3274536132812, - 553.8549194335938, - 725.3273315429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0561218261719, - 646.3704223632812, - 553.8549194335938, - 725.3273315429688 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 72.1417007446289, - 748.1763916015625 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 57.968475341796875, - 400.41058349609375, - 554.0518188476562, - 483.42816162109375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": "Fig. 2.", - "origin": [ - 57.96849822998047, - 462.92340087890625 - ], - "bbox": [ - 57.96849822998047, - 455.978271484375, - 81.27824401855469, - 464.9781799316406 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Ecological range of phytoperiphyton of various substrates in Lake Teletskoye. (a), Phytoepilithon; (b), phytoepiphyton; (c), algae on", - "origin": [ - 81.27824401855469, - 462.92340087890625 - ], - "bbox": [ - 81.27824401855469, - 400.41058349609375, - 554.0518188476562, - 409.41046142578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 400.41058349609375, - 554.0518188476562, - 464.9781799316406 - ] - }, - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "plant residues.", - "origin": [ - 57.96849822998047, - 472.1213073730469 - ], - "bbox": [ - 57.96849822998047, - 409.6084899902344, - 112.54389190673828, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " I", - "origin": [ - 112.54389190673828, - 472.1213073730469 - ], - "bbox": [ - 112.54389190673828, - 465.2095642089844, - 120.38279724121094, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Indifferent species;", - "origin": [ - 120.38279724121094, - 472.1213073730469 - ], - "bbox": [ - 120.38279724121094, - 409.6084899902344, - 199.284912109375, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " oh", - "origin": [ - 199.284912109375, - 472.1213073730469 - ], - "bbox": [ - 199.284912109375, - 465.2095642089844, - 213.13577270507812, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", oligohalophiles;", - "origin": [ - 213.13577270507812, - 472.1213073730469 - ], - "bbox": [ - 213.13577270507812, - 409.6084899902344, - 278.1960754394531, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " hl", - "origin": [ - 278.1960754394531, - 472.1213073730469 - ], - "bbox": [ - 278.1960754394531, - 465.2095642089844, - 290.1119079589844, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", drimophiles;", - "origin": [ - 290.1299133300781, - 472.1213073730469 - ], - "bbox": [ - 290.1299133300781, - 409.6084899902344, - 342.6893005371094, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " hb", - "origin": [ - 342.6893005371094, - 472.1213073730469 - ], - "bbox": [ - 342.6893005371094, - 465.2095642089844, - 356.504150390625, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", halophobes;", - "origin": [ - 356.504150390625, - 472.1213073730469 - ], - "bbox": [ - 356.504150390625, - 409.6084899902344, - 407.0564880371094, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " mh", - "origin": [ - 407.0564880371094, - 472.1213073730469 - ], - "bbox": [ - 407.0564880371094, - 465.2095642089844, - 422.89642333984375, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", mesohalophiles;", - "origin": [ - 422.8784484863281, - 472.1213073730469 - ], - "bbox": [ - 422.8784484863281, - 409.6084899902344, - 488.4336242675781, - 418.6083984375 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " alf", - "origin": [ - 488.4336242675781, - 472.1213073730469 - ], - "bbox": [ - 488.4336242675781, - 465.2095642089844, - 502.7795715332031, - 474.2094421386719 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", alkaliphiles;", - "origin": [ - 502.8155517578125, - 472.1213073730469 - ], - "bbox": [ - 502.8155517578125, - 409.6084899902344, - 553.8718872070312, - 418.6083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - 409.6084899902344, - 553.8718872070312, - 474.2094421386719 - ] - }, - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "acf", - "origin": [ - 57.968475341796875, - 481.3192138671875 - ], - "bbox": [ - 57.968475341796875, - 474.407470703125, - 68.96635437011719, - 483.4073486328125 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", acidophiles;", - "origin": [ - 69.0113525390625, - 481.3192138671875 - ], - "bbox": [ - 69.0113525390625, - 418.806396484375, - 117.00782775878906, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " x", - "origin": [ - 117.00782775878906, - 481.3192138671875 - ], - "bbox": [ - 117.00782775878906, - 474.407470703125, - 123.46974182128906, - 483.4073486328125 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", xenosaprobionts;", - "origin": [ - 123.49674224853516, - 481.3192138671875 - ], - "bbox": [ - 123.49674224853516, - 418.806396484375, - 189.49302673339844, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " o", - "origin": [ - 189.49302673339844, - 481.3192138671875 - ], - "bbox": [ - 189.49302673339844, - 474.407470703125, - 196.39593505859375, - 483.4073486328125 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", oligosaprobionts;", - "origin": [ - 196.39593505859375, - 481.3192138671875 - ], - "bbox": [ - 196.39593505859375, - 418.806396484375, - 263.4002380371094, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 263.4002380371094, - 481.3192138671875 - ], - "bbox": [ - 263.4002380371094, - 474.4012451171875, - 270.1681213378906, - 483.42816162109375 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 270.0421142578125, - 481.3192138671875 - ], - "bbox": [ - 270.0421142578125, - 418.806396484375, - 272.2920837402344, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 272.2920837402344, - 481.3192138671875 - ], - "bbox": [ - 272.2920837402344, - 474.4012451171875, - 278.9520263671875, - 483.42816162109375 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "-mesosaprobionts;", - "origin": [ - 278.8260192871094, - 481.3192138671875 - ], - "bbox": [ - 278.8260192871094, - 418.806396484375, - 344.8222961425781, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 344.8222961425781, - 481.3192138671875 - ], - "bbox": [ - 344.8222961425781, - 474.4012451171875, - 352.1932067871094, - 483.42816162109375 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 352.5172119140625, - 481.3192138671875 - ], - "bbox": [ - 352.5172119140625, - 418.806396484375, - 354.7671813964844, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 354.7671813964844, - 481.3192138671875 - ], - "bbox": [ - 354.7671813964844, - 474.4012451171875, - 362.16510009765625, - 483.42816162109375 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "-mesosaprobionts;", - "origin": [ - 362.4891052246094, - 481.3192138671875 - ], - "bbox": [ - 362.4891052246094, - 418.806396484375, - 428.4853820800781, - 427.8062744140625 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "Symbol", - "color": 1250067, - "ascender": 0.7409999966621399, - "descender": -0.22300000488758087, - "text": " �", - "origin": [ - 428.4853820800781, - 481.3192138671875 - ], - "bbox": [ - 428.4853820800781, - 474.4012451171875, - 435.1183166503906, - 483.42816162109375 - ] - }, - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", polysaprobionts.", - "origin": [ - 434.3713073730469, - 481.3192138671875 - ], - "bbox": [ - 434.3713073730469, - 418.806396484375, - 498.6215515136719, - 427.8062744140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968475341796875, - 418.806396484375, - 498.6215515136719, - 483.42816162109375 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 3, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ], - "tag": "on-image" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 313.0561218261719, - 441.3983154296875, - 554.041748046875, - 725.3273315429688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(see Fig. 1). The leaves residues was found to host", - "origin": [ - 313.0781555175781, - 517.8030395507812 - ], - "bbox": [ - 313.0781555175781, - 441.3983154296875, - 553.9757080078125, - 452.3982238769531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 441.3983154296875, - 553.9757080078125, - 452.3982238769531 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "35 species of algae, the horse-tail—48, the residues of", - "origin": [ - 313.0781555175781, - 529.0009765625 - ], - "bbox": [ - 313.0781555175781, - 452.59625244140625, - 553.9867553710938, - 463.5961608886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 452.59625244140625, - 553.9867553710938, - 463.5961608886719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the pondweed—39 species. From July to October, as", - "origin": [ - 313.0781555175781, - 540.1988525390625 - ], - "bbox": [ - 313.0781555175781, - 463.79412841796875, - 554.041748046875, - 474.7940368652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 463.79412841796875, - 554.041748046875, - 474.7940368652344 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the substrate decays, the number of the species tends to", - "origin": [ - 313.0781555175781, - 551.396728515625 - ], - "bbox": [ - 313.0781555175781, - 474.99200439453125, - 553.9757080078125, - 485.9919128417969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 474.99200439453125, - 553.9757080078125, - 485.9919128417969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "grow: from 17 to 41 on the horse-tail and from 24 to 29", - "origin": [ - 313.0781555175781, - 562.5946044921875 - ], - "bbox": [ - 313.0781555175781, - 486.18988037109375, - 553.975830078125, - 497.1897888183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 486.18988037109375, - 553.975830078125, - 497.1897888183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the pondweed. The number of the species on the", - "origin": [ - 313.0781555175781, - 573.79248046875 - ], - "bbox": [ - 313.0781555175781, - 497.38775634765625, - 553.9976806640625, - 508.3876647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 497.38775634765625, - 553.9976806640625, - 508.3876647949219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "leaves residues did not change, remaining 26–27.", - "origin": [ - 313.0781555175781, - 584.9904174804688 - ], - "bbox": [ - 313.0781555175781, - 508.585693359375, - 529.9849243164062, - 519.5855712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0781555175781, - 508.585693359375, - 529.9849243164062, - 519.5855712890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "As the plants decay, the dominating complex is re-", - "origin": [ - 327.24603271484375, - 599.5982666015625 - ], - "bbox": [ - 327.24603271484375, - 523.1935424804688, - 554.0089721679688, - 534.1934814453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.24603271484375, - 523.1935424804688, - 554.0089721679688, - 534.1934814453125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "placed. Thus, the species dominating in their cell densi-", - "origin": [ - 313.07818603515625, - 610.796142578125 - ], - "bbox": [ - 313.07818603515625, - 534.3914184570312, - 554.0199584960938, - 545.391357421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07818603515625, - 534.3914184570312, - 554.0199584960938, - 545.391357421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ties on the live horse-tail (", - "origin": [ - 313.07818603515625, - 621.9940185546875 - ], - "bbox": [ - 313.07818603515625, - 545.5892944335938, - 437.7729797363281, - 556.5892333984375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Fragillaria pinnata", - "origin": [ - 437.7840576171875, - 621.9940185546875 - ], - "bbox": [ - 437.7840576171875, - 613.5463256835938, - 525.6732788085938, - 624.5462036132812 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 525.8382568359375, - 621.9940185546875 - ], - "bbox": [ - 525.8382568359375, - 545.5892944335938, - 528.5882568359375, - 556.5892333984375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Ach-", - "origin": [ - 528.5882568359375, - 621.9940185546875 - ], - "bbox": [ - 528.5882568359375, - 613.5463256835938, - 553.9979858398438, - 624.5462036132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07818603515625, - 545.5892944335938, - 553.9979858398438, - 624.5462036132812 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "nanthes microcephala", - "origin": [ - 313.07818603515625, - 633.1919555664062 - ], - "bbox": [ - 313.07818603515625, - 624.7442626953125, - 411.71417236328125, - 635.744140625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (K", - "origin": [ - 411.71417236328125, - 633.1919555664062 - ], - "bbox": [ - 411.71417236328125, - 556.7872314453125, - 427.7191467285156, - 567.787109375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 427.400146484375, - 632.4989624023438 - ], - "bbox": [ - 427.400146484375, - 564.6481323242188, - 433.5007019042969, - 575.6480102539062 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz.) Grun.,", - "origin": [ - 427.7081298828125, - 633.2139282226562 - ], - "bbox": [ - 427.7081298828125, - 556.7761840820312, - 479.8586120605469, - 567.80908203125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " A. minutissima", - "origin": [ - 479.8586120605469, - 633.180908203125 - ], - "bbox": [ - 479.8586120605469, - 624.7332153320312, - 551.1710205078125, - 635.7330932617188 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 551.2479858398438, - 633.180908203125 - ], - "bbox": [ - 551.2479858398438, - 556.7761840820312, - 553.9979858398438, - 567.776123046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.07818603515625, - 556.7761840820312, - 553.9979858398438, - 635.744140625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "A. linearis", - "origin": [ - 313.067138671875, - 644.3788452148438 - ], - "bbox": [ - 313.067138671875, - 635.93115234375, - 358.23272705078125, - 646.9310302734375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " and", - "origin": [ - 358.23272705078125, - 644.3788452148438 - ], - "bbox": [ - 358.23272705078125, - 567.97412109375, - 376.228515625, - 578.9739990234375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Gomphonema olivaceum", - "origin": [ - 376.228515625, - 644.3788452148438 - ], - "bbox": [ - 376.228515625, - 635.93115234375, - 487.4483947753906, - 646.9310302734375 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ") were replaced", - "origin": [ - 487.5035400390625, - 644.3788452148438 - ], - "bbox": [ - 487.5035400390625, - 567.97412109375, - 553.876953125, - 578.9739990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 567.97412109375, - 553.876953125, - 646.9310302734375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "in 1.5 months after the macrophyte’s death by", - "origin": [ - 313.067138671875, - 655.5767211914062 - ], - "bbox": [ - 313.067138671875, - 579.1719970703125, - 513.5731201171875, - 590.171875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " A. minu-", - "origin": [ - 513.5731201171875, - 655.5767211914062 - ], - "bbox": [ - 513.5731201171875, - 647.1290283203125, - 553.9979248046875, - 658.12890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 579.1719970703125, - 553.9979248046875, - 658.12890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "tissima Fragillaria intermedia", - "origin": [ - 313.067138671875, - 666.78564453125 - ], - "bbox": [ - 313.067138671875, - 658.3379516601562, - 447.81591796875, - 669.3378295898438 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Grun., and", - "origin": [ - 447.81591796875, - 666.78564453125 - ], - "bbox": [ - 447.81591796875, - 590.3809204101562, - 498.1843566894531, - 601.380859375 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Gloeocapsa", - "origin": [ - 498.1843566894531, - 666.78564453125 - ], - "bbox": [ - 498.1843566894531, - 658.3379516601562, - 553.8988647460938, - 669.3378295898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 590.3809204101562, - 553.8988647460938, - 669.3378295898438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "magma", - "origin": [ - 313.067138671875, - 677.9835205078125 - ], - "bbox": [ - 313.067138671875, - 669.5358276367188, - 345.4508056640625, - 680.5357055664062 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Breb.) K", - "origin": [ - 345.4508056640625, - 677.9835205078125 - ], - "bbox": [ - 345.4508056640625, - 601.5787963867188, - 392.4753723144531, - 612.5787353515625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 392.15643310546875, - 677.29052734375 - ], - "bbox": [ - 392.15643310546875, - 609.439697265625, - 398.2569885253906, - 620.4395751953125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. emend. Hollerb. In 3.5 months,", - "origin": [ - 392.46441650390625, - 678.0054931640625 - ], - "bbox": [ - 392.46441650390625, - 601.5787963867188, - 553.98681640625, - 612.6007080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 601.5787963867188, - 553.98681640625, - 680.5357055664062 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the dominant complex consisted of", - "origin": [ - 313.067138671875, - 689.181396484375 - ], - "bbox": [ - 313.067138671875, - 612.7766723632812, - 477.68048095703125, - 623.776611328125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " A. minutissima", - "origin": [ - 477.68048095703125, - 689.181396484375 - ], - "bbox": [ - 477.68048095703125, - 680.7337036132812, - 551.1710205078125, - 691.7335815429688 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 551.2479858398438, - 689.181396484375 - ], - "bbox": [ - 551.2479858398438, - 612.7766723632812, - 553.9979858398438, - 623.776611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 612.7766723632812, - 553.9979858398438, - 691.7335815429688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Synedra pulchella", - "origin": [ - 313.067138671875, - 700.3793334960938 - ], - "bbox": [ - 313.067138671875, - 691.931640625, - 392.15631103515625, - 702.9315185546875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 392.26641845703125, - 700.3793334960938 - ], - "bbox": [ - 392.26641845703125, - 623.974609375, - 395.0163879394531, - 634.9744873046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " S. vaucheriae", - "origin": [ - 395.0163879394531, - 700.3793334960938 - ], - "bbox": [ - 395.0163879394531, - 691.931640625, - 456.25274658203125, - 702.9315185546875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 456.3078308105469, - 700.3793334960938 - ], - "bbox": [ - 456.3078308105469, - 623.974609375, - 459.05780029296875, - 634.9744873046875 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Tabellaria flocculosa", - "origin": [ - 459.05780029296875, - 700.3793334960938 - ], - "bbox": [ - 459.05780029296875, - 691.931640625, - 553.9099731445312, - 702.9315185546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 623.974609375, - 553.9099731445312, - 702.9315185546875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(Roth) K", - "origin": [ - 313.067138671875, - 711.5772094726562 - ], - "bbox": [ - 313.067138671875, - 635.1724853515625, - 352.6337585449219, - 646.17236328125 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "MTExtra", - "color": 1250067, - "ascender": 0.6230000257492065, - "descender": 0.5220000147819519, - "text": "��", - "origin": [ - 352.3147888183594, - 710.8842163085938 - ], - "bbox": [ - 352.3147888183594, - 643.0333862304688, - 358.41534423828125, - 654.0332641601562 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "utz. The change of dominating species during", - "origin": [ - 352.6227722167969, - 711.5992431640625 - ], - "bbox": [ - 352.6227722167969, - 635.1724853515625, - 553.86572265625, - 646.1944580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.067138671875, - 635.1724853515625, - 553.86572265625, - 654.0332641601562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the decay of the pondweed was as follows:", - "origin": [ - 313.0561218261719, - 722.775146484375 - ], - "bbox": [ - 313.0561218261719, - 646.3704223632812, - 501.56121826171875, - 657.370361328125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Fragillaria", - "origin": [ - 501.56121826171875, - 722.775146484375 - ], - "bbox": [ - 501.56121826171875, - 714.3274536132812, - 553.8549194335938, - 725.3273315429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0561218261719, - 646.3704223632812, - 553.8549194335938, - 725.3273315429688 - ] - } - ], - "tag": "footer" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 72.1417007446289, - 748.1763916015625 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [ - { - "bbox": [ - 82, - 56, - 529, - 438 - ], - "image_path": "images/4_82_56_529_438.jpg" - } - ], - "table_backup": [], - "page_idx": 4, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_5": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 139.9948272705078, - 367.02447509765625, - 216.99411010742188, - 378.0243835449219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONCLUSIONS", - "origin": [ - 139.9948272705078, - 443.42919921875 - ], - "bbox": [ - 139.9948272705078, - 367.02447509765625, - 216.99411010742188, - 378.0243835449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.9948272705078, - 367.02447509765625, - 216.99411010742188, - 378.0243835449219 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 57.95301818847656, - 384.5033264160156, - 298.9653625488281, - 657.4149169921875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The highest species diversity of the algae is revealed", - "origin": [ - 72.19144439697266, - 460.9080505371094 - ], - "bbox": [ - 72.19144439697266, - 384.5033264160156, - 298.80029296875, - 395.50323486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19144439697266, - 384.5033264160156, - 298.80029296875, - 395.50323486328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "in the communities developing on the rock substrate", - "origin": [ - 58.02357482910156, - 472.10595703125 - ], - "bbox": [ - 58.02357482910156, - 395.70123291015625, - 298.92138671875, - 406.7011413574219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 395.70123291015625, - 298.92138671875, - 406.7011413574219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(446 species). On vegetating macrophytes and their", - "origin": [ - 58.02357482910156, - 483.3038635253906 - ], - "bbox": [ - 58.02357482910156, - 406.8991394042969, - 298.932373046875, - 417.8990478515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 406.8991394042969, - 298.932373046875, - 417.8990478515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "residues the species diversity is lower, 182 and 74 spe-", - "origin": [ - 58.02357482910156, - 494.50177001953125 - ], - "bbox": [ - 58.02357482910156, - 418.0970458984375, - 298.9653625488281, - 429.0969543457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 418.0970458984375, - 298.9653625488281, - 429.0969543457031 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cies, respectively. The highest value of biomass of the", - "origin": [ - 58.02357482910156, - 505.6996765136719 - ], - "bbox": [ - 58.02357482910156, - 429.2949523925781, - 298.9103698730469, - 440.29486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 429.2949523925781, - 298.9103698730469, - 440.29486083984375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algae of epilithon is 424.6 g/m", - "origin": [ - 58.02357482910156, - 516.8975830078125 - ], - "bbox": [ - 58.02357482910156, - 440.49285888671875, - 209.33822631835938, - 451.4927673339844 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 209.2418975830078, - 511.9715881347656 - ], - "bbox": [ - 209.2418975830078, - 462.3080749511719, - 212.81689453125, - 469.45806884765625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", and epiphyton—", - "origin": [ - 212.8470001220703, - 516.95458984375 - ], - "bbox": [ - 212.8470001220703, - 440.54986572265625, - 298.668212890625, - 451.5497741699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 440.49285888671875, - 298.668212890625, - 469.45806884765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "192.35 g/m", - "origin": [ - 57.968414306640625, - 528.1524658203125 - ], - "bbox": [ - 57.968414306640625, - 451.74774169921875, - 108.06195068359375, - 462.7476501464844 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 108.01640319824219, - 523.171630859375 - ], - "bbox": [ - 108.01640319824219, - 473.50811767578125, - 111.59140014648438, - 480.6581115722656 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ". It is noted that the composition and struc-", - "origin": [ - 111.62149810791016, - 528.1546020507812 - ], - "bbox": [ - 111.62149810791016, - 451.7498779296875, - 298.9057922363281, - 462.7497863769531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968414306640625, - 451.74774169921875, - 298.9057922363281, - 480.6581115722656 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ture of both phytoepilithon and phytoepiphyton depend", - "origin": [ - 57.96400451660156, - 539.3524780273438 - ], - "bbox": [ - 57.96400451660156, - 462.94775390625, - 298.5757751464844, - 473.9476623535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 462.94775390625, - 298.5757751464844, - 473.9476623535156 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the degree of hydrodynamic load on the communi-", - "origin": [ - 57.96400451660156, - 550.5504150390625 - ], - "bbox": [ - 57.96400451660156, - 474.14569091796875, - 298.9057922363281, - 485.1455993652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 474.14569091796875, - 298.9057922363281, - 485.1455993652344 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ties. On the rock substrate the wind-wave impact in-", - "origin": [ - 57.96400451660156, - 561.748291015625 - ], - "bbox": [ - 57.96400451660156, - 485.34356689453125, - 298.9057922363281, - 496.3434753417969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 485.34356689453125, - 298.9057922363281, - 496.3434753417969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "creases towards the water edge, with the quantitative", - "origin": [ - 57.96400451660156, - 572.9461669921875 - ], - "bbox": [ - 57.96400451660156, - 496.54144287109375, - 298.7848205566406, - 507.5413513183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 496.54144287109375, - 298.7848205566406, - 507.5413513183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "parameters decreasing in the same direction. In the ar-", - "origin": [ - 57.96400451660156, - 584.14404296875 - ], - "bbox": [ - 57.96400451660156, - 507.73931884765625, - 298.9057922363281, - 518.7392578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 507.73931884765625, - 298.9057922363281, - 518.7392578125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "eas with the stands of macrophytes the highest", - "origin": [ - 57.96400451660156, - 595.3419189453125 - ], - "bbox": [ - 57.96400451660156, - 518.9371948242188, - 298.8288269042969, - 529.9371337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 518.9371948242188, - 298.8288269042969, - 529.9371337890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "wind-wave load is brought on the zone bordering the", - "origin": [ - 57.96400451660156, - 606.5398559570312 - ], - "bbox": [ - 57.96400451660156, - 530.1351318359375, - 298.872802734375, - 541.135009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 530.1351318359375, - 298.872802734375, - 541.135009765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "open water. Accordingly, the species diversity and bio-", - "origin": [ - 57.96400451660156, - 617.7377319335938 - ], - "bbox": [ - 57.96400451660156, - 541.3330078125, - 298.9057922363281, - 552.3328857421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 541.3330078125, - 298.9057922363281, - 552.3328857421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "mass of the algae of epiphyton increase from the open", - "origin": [ - 57.96400451660156, - 628.9356079101562 - ], - "bbox": [ - 57.96400451660156, - 552.5308837890625, - 298.8507995605469, - 563.53076171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 552.5308837890625, - 298.8507995605469, - 563.53076171875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water towards the shore.", - "origin": [ - 57.96400451660156, - 640.133544921875 - ], - "bbox": [ - 57.96400451660156, - 563.7288208007812, - 165.48802185058594, - 574.728759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 563.7288208007812, - 165.48802185058594, - 574.728759765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The change in the water level accompanied by pow-", - "origin": [ - 72.13187408447266, - 655.6103515625 - ], - "bbox": [ - 72.13187408447266, - 579.2056274414062, - 298.8948059082031, - 590.20556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13187408447266, - 579.2056274414062, - 298.8948059082031, - 590.20556640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "erful wave-cut process creates unstable conditions for", - "origin": [ - 57.95301818847656, - 666.8192749023438 - ], - "bbox": [ - 57.95301818847656, - 590.41455078125, - 298.850830078125, - 601.4144287109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 590.41455078125, - 298.850830078125, - 601.4144287109375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "vegetation of the algae on the rock littoral at a depth of", - "origin": [ - 57.95301818847656, - 678.0171508789062 - ], - "bbox": [ - 57.95301818847656, - 601.6124267578125, - 298.8617248535156, - 612.6123046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 601.6124267578125, - 298.8617248535156, - 612.6123046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "less than 1.5 m. From May to October in the algo-", - "origin": [ - 57.95301818847656, - 689.215087890625 - ], - "bbox": [ - 57.95301818847656, - 612.8103637695312, - 298.8948059082031, - 623.810302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 612.8103637695312, - 298.8948059082031, - 623.810302734375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cenoses of epilithon the small-celled pioneering and", - "origin": [ - 57.95301818847656, - 700.4239501953125 - ], - "bbox": [ - 57.95301818847656, - 624.0192260742188, - 298.83978271484375, - 635.0191650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 624.0192260742188, - 298.83978271484375, - 635.0191650390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "widespread species of algae or the algae resistant to the", - "origin": [ - 57.95301818847656, - 711.6218872070312 - ], - "bbox": [ - 57.95301818847656, - 635.2171630859375, - 298.83978271484375, - 646.217041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 635.2171630859375, - 298.83978271484375, - 646.217041015625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dynamic load of water primarily vegetate, that results in", - "origin": [ - 57.95301818847656, - 722.8197631835938 - ], - "bbox": [ - 57.95301818847656, - 646.4150390625, - 298.7738037109375, - 657.4149169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 646.4150390625, - 298.7738037109375, - 657.4149169921875 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 398.9718933105469, - 113.63477325439453, - 468.0403137207031, - 124.63467407226562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "REFERENCES", - "origin": [ - 398.9718933105469, - 190.03948974609375 - ], - "bbox": [ - 398.9718933105469, - 113.63477325439453, - 468.0403137207031, - 124.63467407226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.9718933105469, - 113.63477325439453, - 468.0403137207031, - 124.63467407226562 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 182.88, - 325.91999999999996, - 297.59999999999997, - 338.4 - ], - "image_path": "equations_inline/5_182_325_297_338.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 113.63477325439453, - 612.0, - 124.63467407226562 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 57.95301818847656, - 367.02447509765625, - 298.9653625488281, - 657.4149169921875 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 685.66357421875, - 612.0, - 694.6634521484375 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.9873352050781, - 347.0046691894531 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "construens", - "origin": [ - 57.96849822998047, - 67.89288330078125 - ], - "bbox": [ - 57.96849822998047, - 59.44516372680664, - 105.63105773925781, - 70.44506072998047 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Ehr.) Grun.,", - "origin": [ - 105.63105773925781, - 67.89288330078125 - ], - "bbox": [ - 105.63105773925781, - -8.511833190917969, - 164.6015167236328, - 2.488067626953125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Merismopedia punctata", - "origin": [ - 164.6015167236328, - 67.89288330078125 - ], - "bbox": [ - 164.6015167236328, - 59.44516372680664, - 272.1475830078125, - 70.44506072998047 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Mey-", - "origin": [ - 272.1475830078125, - 67.89288330078125 - ], - "bbox": [ - 272.1475830078125, - -8.511833190917969, - 298.9212951660156, - 2.499053955078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.9212951660156, - 70.44506072998047 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "en,", - "origin": [ - 57.97950744628906, - 79.10174560546875 - ], - "bbox": [ - 57.97950744628906, - 2.6970291137695312, - 71.11338806152344, - 13.696929931640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Microcystis", - "origin": [ - 71.11338806152344, - 79.10174560546875 - ], - "bbox": [ - 71.11338806152344, - 70.6540298461914, - 124.11091613769531, - 81.65392303466797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " sp. (live plants) to", - "origin": [ - 124.11091613769531, - 79.10174560546875 - ], - "bbox": [ - 124.11091613769531, - 2.6970291137695312, - 203.81617736816406, - 13.696929931640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " M. punctata", - "origin": [ - 203.81617736816406, - 79.10174560546875 - ], - "bbox": [ - 203.81617736816406, - 70.6540298461914, - 258.45269775390625, - 81.65392303466797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 258.606689453125, - 79.10174560546875 - ], - "bbox": [ - 258.606689453125, - 2.6970291137695312, - 261.3566589355469, - 13.696929931640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " G. mag-", - "origin": [ - 261.3566589355469, - 79.10174560546875 - ], - "bbox": [ - 261.3566589355469, - 70.6540298461914, - 298.92132568359375, - 81.66490936279297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97950744628906, - 2.6970291137695312, - 298.92132568359375, - 81.66490936279297 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "ma", - "origin": [ - 57.97953796386719, - 90.31060791015625 - ], - "bbox": [ - 57.97953796386719, - 81.8628921508789, - 71.4214096069336, - 92.86278533935547 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 71.44341278076172, - 90.31060791015625 - ], - "bbox": [ - 71.44341278076172, - 13.905891418457031, - 74.19338989257812, - 24.905792236328125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " F. pinnata", - "origin": [ - 74.19338989257812, - 90.31060791015625 - ], - "bbox": [ - 74.19338989257812, - 81.8628921508789, - 127.53189849853516, - 92.86278533935547 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 127.6968994140625, - 90.31060791015625 - ], - "bbox": [ - 127.6968994140625, - 13.905891418457031, - 130.44686889648438, - 24.905792236328125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " A. minutissima", - "origin": [ - 130.44686889648438, - 90.31060791015625 - ], - "bbox": [ - 130.44686889648438, - 81.8628921508789, - 204.7841796875, - 92.86278533935547 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (in 1.5 months) to", - "origin": [ - 204.7841796875, - 90.31060791015625 - ], - "bbox": [ - 204.7841796875, - 13.905891418457031, - 298.8663330078125, - 24.905792236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 13.905891418457031, - 298.8663330078125, - 92.86278533935547 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "A. minutissima", - "origin": [ - 57.97953796386719, - 101.50848388671875 - ], - "bbox": [ - 57.97953796386719, - 93.0607681274414, - 123.79193878173828, - 104.06066131591797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 123.86893463134766, - 101.50848388671875 - ], - "bbox": [ - 123.86893463134766, - 25.10376739501953, - 126.61891174316406, - 36.103668212890625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " F. pinnata", - "origin": [ - 126.61891174316406, - 101.50848388671875 - ], - "bbox": [ - 126.61891174316406, - 93.0607681274414, - 174.58946228027344, - 104.06066131591797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 174.7544708251953, - 101.50848388671875 - ], - "bbox": [ - 174.7544708251953, - 25.10376739501953, - 177.5044403076172, - 36.103668212890625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Microcystis pulverea", - "origin": [ - 177.5044403076172, - 101.50848388671875 - ], - "bbox": [ - 177.5044403076172, - 93.0607681274414, - 272.7415771484375, - 104.06066131591797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " f.", - "origin": [ - 272.7415771484375, - 101.50848388671875 - ], - "bbox": [ - 272.7415771484375, - 25.10376739501953, - 282.3114929199219, - 36.103668212890625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " ra-", - "origin": [ - 282.3114929199219, - 101.50848388671875 - ], - "bbox": [ - 282.3114929199219, - 93.0607681274414, - 298.9323425292969, - 104.06066131591797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 25.10376739501953, - 298.9323425292969, - 104.06066131591797 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "cemiformis", - "origin": [ - 57.99055480957031, - 112.70635986328125 - ], - "bbox": [ - 57.99055480957031, - 104.2586441040039, - 106.87411499023438, - 115.25853729248047 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Nyg.) Hollerb.,", - "origin": [ - 106.87411499023438, - 112.70635986328125 - ], - "bbox": [ - 106.87411499023438, - 36.30164337158203, - 181.2003936767578, - 47.301544189453125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " T. flocculosa", - "origin": [ - 181.2003936767578, - 112.70635986328125 - ], - "bbox": [ - 181.2003936767578, - 104.2586441040039, - 240.64389038085938, - 115.25853729248047 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 240.74288940429688, - 112.70635986328125 - ], - "bbox": [ - 240.74288940429688, - 36.30164337158203, - 243.49285888671875, - 47.301544189453125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " S. pulchella", - "origin": [ - 243.49285888671875, - 112.70635986328125 - ], - "bbox": [ - 243.49285888671875, - 104.2586441040039, - 298.82232666015625, - 115.25853729248047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.99055480957031, - 36.30164337158203, - 298.82232666015625, - 115.25853729248047 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(in 3.5 months). On the leaves waste the complex of", - "origin": [ - 58.001556396484375, - 123.90423583984375 - ], - "bbox": [ - 58.001556396484375, - 47.49951934814453, - 298.9212646484375, - 58.499420166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.001556396484375, - 47.49951934814453, - 298.9212646484375, - 58.499420166015625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "A. minutissima", - "origin": [ - 58.001556396484375, - 135.10211181640625 - ], - "bbox": [ - 58.001556396484375, - 126.6543960571289, - 124.04496002197266, - 137.654296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 124.12195587158203, - 135.10211181640625 - ], - "bbox": [ - 124.12195587158203, - 58.69739532470703, - 126.87193298339844, - 69.69729614257812 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " F. pinnata", - "origin": [ - 126.87193298339844, - 135.10211181640625 - ], - "bbox": [ - 126.87193298339844, - 126.6543960571289, - 175.3044891357422, - 137.654296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 175.46949768066406, - 135.10211181640625 - ], - "bbox": [ - 175.46949768066406, - 58.69739532470703, - 178.21946716308594, - 69.69729614257812 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Dinobryon divergens", - "origin": [ - 178.21946716308594, - 135.10211181640625 - ], - "bbox": [ - 178.21946716308594, - 126.6543960571289, - 275.1065673828125, - 137.654296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Imh.", - "origin": [ - 275.1065673828125, - 135.10211181640625 - ], - "bbox": [ - 275.1065673828125, - 58.69739532470703, - 298.9873352050781, - 69.69729614257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.001556396484375, - 58.69739532470703, - 298.9873352050781, - 137.654296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(August) was joined by", - "origin": [ - 58.01255798339844, - 146.29998779296875 - ], - "bbox": [ - 58.01255798339844, - 69.89527130126953, - 160.9716339111328, - 80.89517211914062 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " T. flocculosa", - "origin": [ - 160.9716339111328, - 146.29998779296875 - ], - "bbox": [ - 160.9716339111328, - 137.85226440429688, - 220.06309509277344, - 148.8521728515625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (October).", - "origin": [ - 220.06309509277344, - 146.29998779296875 - ], - "bbox": [ - 220.06309509277344, - 69.89527130126953, - 268.462646484375, - 80.89517211914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.01255798339844, - 69.89527130126953, - 268.462646484375, - 148.8521728515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "As the plant remains of all types decay, the cell", - "origin": [ - 72.19143676757812, - 161.77685546875 - ], - "bbox": [ - 72.19143676757812, - 85.37213897705078, - 298.9653625488281, - 96.37203979492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19143676757812, - 85.37213897705078, - 298.9653625488281, - 96.37203979492188 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "densities of algae increases: from 141.44 to 348.08", - "origin": [ - 58.02356719970703, - 172.9747314453125 - ], - "bbox": [ - 58.02356719970703, - 96.57001495361328, - 298.7893371582031, - 107.56991577148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 96.57001495361328, - 298.7893371582031, - 107.56991577148438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "thousands of cells of algae per gram of the initial dry", - "origin": [ - 58.02356719970703, - 184.172607421875 - ], - "bbox": [ - 58.02356719970703, - 107.76789093017578, - 298.8443603515625, - 118.76779174804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 107.76789093017578, - 298.8443603515625, - 118.76779174804688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "mass of the macrophyte for the horse-tail, from 60.5 to", - "origin": [ - 58.02356719970703, - 195.3704833984375 - ], - "bbox": [ - 58.02356719970703, - 118.96576690673828, - 298.92132568359375, - 129.96566772460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 118.96576690673828, - 298.92132568359375, - 129.96566772460938 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "226.48 for the pondweed, and from 134.16 to 241.92", - "origin": [ - 58.02356719970703, - 206.568359375 - ], - "bbox": [ - 58.02356719970703, - 130.16363525390625, - 298.7893371582031, - 141.16354370117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 130.16363525390625, - 298.7893371582031, - 141.16354370117188 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "for the leaves residues. The values of the biomass also", - "origin": [ - 58.02356719970703, - 217.7662353515625 - ], - "bbox": [ - 58.02356719970703, - 141.36151123046875, - 298.943359375, - 152.36141967773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 141.36151123046875, - 298.943359375, - 152.36141967773438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "increased: from 0.06 to 0.56 gram of dry mass of algae", - "origin": [ - 58.02356719970703, - 228.964111328125 - ], - "bbox": [ - 58.02356719970703, - 152.55938720703125, - 298.9653625488281, - 163.55929565429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 152.55938720703125, - 298.9653625488281, - 163.55929565429688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "per gram of dry mass of plant residues for the horse-tail,", - "origin": [ - 58.02356719970703, - 240.1619873046875 - ], - "bbox": [ - 58.02356719970703, - 163.75726318359375, - 298.7783203125, - 174.75717163085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 163.75726318359375, - 298.7783203125, - 174.75717163085938 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "from 0.12 to 0.63 for the pondweed, and from 0.23 to", - "origin": [ - 58.02356719970703, - 251.35986328125 - ], - "bbox": [ - 58.02356719970703, - 174.95513916015625, - 298.89935302734375, - 185.95504760742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 174.95513916015625, - 298.89935302734375, - 185.95504760742188 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "0.84 for the leaves residues.", - "origin": [ - 58.02356719970703, - 262.5577392578125 - ], - "bbox": [ - 58.02356719970703, - 186.15301513671875, - 180.82644653320312, - 197.15292358398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 186.15301513671875, - 180.82644653320312, - 197.15292358398438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The ratio of the cosmopolites (53.8% of the total", - "origin": [ - 72.19143676757812, - 278.03460693359375 - ], - "bbox": [ - 72.19143676757812, - 201.6298828125, - 298.92138671875, - 212.62979125976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19143676757812, - 201.6298828125, - 298.92138671875, - 212.62979125976562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "composition, 42 taxa), boreal (14.1%, 11 taxa), and", - "origin": [ - 58.02356719970703, - 289.2325134277344 - ], - "bbox": [ - 58.02356719970703, - 212.82778930664062, - 298.9103088378906, - 223.82769775390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 212.82778930664062, - 298.9103088378906, - 223.82769775390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Arctic-Alpine (7.7%, 6 taxa) forms in the algocenoses", - "origin": [ - 58.02356719970703, - 300.430419921875 - ], - "bbox": [ - 58.02356719970703, - 224.02569580078125, - 298.9102783203125, - 235.02560424804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 224.02569580078125, - 298.9102783203125, - 235.02560424804688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the dying plants reveals the prevalence of wide-", - "origin": [ - 58.02356719970703, - 311.6283264160156 - ], - "bbox": [ - 58.02356719970703, - 235.22360229492188, - 298.9653625488281, - 246.2235107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 235.22360229492188, - 298.9653625488281, - 246.2235107421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "spread taxa. The share of halophobes (9%, 7 taxa) ex-", - "origin": [ - 58.02357482910156, - 322.82623291015625 - ], - "bbox": [ - 58.02357482910156, - 246.4215087890625, - 298.9653625488281, - 257.4214172363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 246.4215087890625, - 298.9653625488281, - 257.4214172363281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ceeds the share of halophiles (5.1%, 4 taxa) (see Fig. 2).", - "origin": [ - 58.02357482910156, - 334.0241394042969 - ], - "bbox": [ - 58.02357482910156, - 257.6194152832031, - 298.92132568359375, - 268.61932373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 257.6194152832031, - 298.92132568359375, - 268.61932373046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Among the indicators of pH those of the alkalescent re-", - "origin": [ - 58.02357482910156, - 345.2220458984375 - ], - "bbox": [ - 58.02357482910156, - 268.81732177734375, - 298.9763488769531, - 279.8172302246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 268.81732177734375, - 298.9763488769531, - 279.8172302246094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "action of the medium prevail with the share of", - "origin": [ - 58.02357482910156, - 356.4199523925781 - ], - "bbox": [ - 58.02357482910156, - 280.0152282714844, - 298.91033935546875, - 291.01513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 280.0152282714844, - 298.91033935546875, - 291.01513671875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "alkaliphiles and alkalibionts (37.2%, 29 taxa) exceed-", - "origin": [ - 58.02357482910156, - 367.61785888671875 - ], - "bbox": [ - 58.02357482910156, - 291.213134765625, - 298.9543151855469, - 302.2130432128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 291.213134765625, - 298.9543151855469, - 302.2130432128906 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ing the share of acidophiles (3.8%, 3 taxa). The charac-", - "origin": [ - 58.02357482910156, - 378.8157653808594 - ], - "bbox": [ - 58.02357482910156, - 302.4110412597656, - 298.97625732421875, - 313.41094970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 302.4110412597656, - 298.97625732421875, - 313.41094970703125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "teristic in relation to the organic pollution is known", - "origin": [ - 58.02357482910156, - 390.013671875 - ], - "bbox": [ - 58.02357482910156, - 313.60894775390625, - 298.84442138671875, - 324.6088562011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 313.60894775390625, - 298.84442138671875, - 324.6088562011719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "only for 53.8% of all listed algae forms (42), with", - "origin": [ - 58.02357482910156, - 401.2115783691406 - ], - "bbox": [ - 58.02357482910156, - 324.8068542480469, - 298.91033935546875, - 335.8067626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 324.8068542480469, - 298.91033935546875, - 335.8067626953125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "38.5% (30 taxa) inhabiting pure water.", - "origin": [ - 58.02357482910156, - 412.40948486328125 - ], - "bbox": [ - 58.02357482910156, - 336.0047607421875, - 227.9940185546875, - 347.0046691894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 336.0047607421875, - 227.9940185546875, - 347.0046691894531 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 139.9948272705078, - 367.02447509765625, - 216.99411010742188, - 378.0243835449219 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONCLUSIONS", - "origin": [ - 139.9948272705078, - 443.42919921875 - ], - "bbox": [ - 139.9948272705078, - 367.02447509765625, - 216.99411010742188, - 378.0243835449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.9948272705078, - 367.02447509765625, - 216.99411010742188, - 378.0243835449219 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 57.95301818847656, - 384.5033264160156, - 298.9653625488281, - 657.4149169921875 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The highest species diversity of the algae is revealed", - "origin": [ - 72.19144439697266, - 460.9080505371094 - ], - "bbox": [ - 72.19144439697266, - 384.5033264160156, - 298.80029296875, - 395.50323486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19144439697266, - 384.5033264160156, - 298.80029296875, - 395.50323486328125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "in the communities developing on the rock substrate", - "origin": [ - 58.02357482910156, - 472.10595703125 - ], - "bbox": [ - 58.02357482910156, - 395.70123291015625, - 298.92138671875, - 406.7011413574219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 395.70123291015625, - 298.92138671875, - 406.7011413574219 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(446 species). On vegetating macrophytes and their", - "origin": [ - 58.02357482910156, - 483.3038635253906 - ], - "bbox": [ - 58.02357482910156, - 406.8991394042969, - 298.932373046875, - 417.8990478515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 406.8991394042969, - 298.932373046875, - 417.8990478515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "residues the species diversity is lower, 182 and 74 spe-", - "origin": [ - 58.02357482910156, - 494.50177001953125 - ], - "bbox": [ - 58.02357482910156, - 418.0970458984375, - 298.9653625488281, - 429.0969543457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 418.0970458984375, - 298.9653625488281, - 429.0969543457031 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cies, respectively. The highest value of biomass of the", - "origin": [ - 58.02357482910156, - 505.6996765136719 - ], - "bbox": [ - 58.02357482910156, - 429.2949523925781, - 298.9103698730469, - 440.29486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 429.2949523925781, - 298.9103698730469, - 440.29486083984375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "algae of epilithon is 424.6 g/m", - "origin": [ - 58.02357482910156, - 516.8975830078125 - ], - "bbox": [ - 58.02357482910156, - 440.49285888671875, - 209.33822631835938, - 451.4927673339844 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 209.2418975830078, - 511.9715881347656 - ], - "bbox": [ - 209.2418975830078, - 462.3080749511719, - 212.81689453125, - 469.45806884765625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", and epiphyton—", - "origin": [ - 212.8470001220703, - 516.95458984375 - ], - "bbox": [ - 212.8470001220703, - 440.54986572265625, - 298.668212890625, - 451.5497741699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 440.49285888671875, - 298.668212890625, - 469.45806884765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "192.35 g/m", - "origin": [ - 57.968414306640625, - 528.1524658203125 - ], - "bbox": [ - 57.968414306640625, - 451.74774169921875, - 108.06195068359375, - 462.7476501464844 - ] - }, - { - "size": 7.150000095367432, - "flags": 5, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2", - "origin": [ - 108.01640319824219, - 523.171630859375 - ], - "bbox": [ - 108.01640319824219, - 473.50811767578125, - 111.59140014648438, - 480.6581115722656 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ". It is noted that the composition and struc-", - "origin": [ - 111.62149810791016, - 528.1546020507812 - ], - "bbox": [ - 111.62149810791016, - 451.7498779296875, - 298.9057922363281, - 462.7497863769531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.968414306640625, - 451.74774169921875, - 298.9057922363281, - 480.6581115722656 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ture of both phytoepilithon and phytoepiphyton depend", - "origin": [ - 57.96400451660156, - 539.3524780273438 - ], - "bbox": [ - 57.96400451660156, - 462.94775390625, - 298.5757751464844, - 473.9476623535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 462.94775390625, - 298.5757751464844, - 473.9476623535156 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the degree of hydrodynamic load on the communi-", - "origin": [ - 57.96400451660156, - 550.5504150390625 - ], - "bbox": [ - 57.96400451660156, - 474.14569091796875, - 298.9057922363281, - 485.1455993652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 474.14569091796875, - 298.9057922363281, - 485.1455993652344 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ties. On the rock substrate the wind-wave impact in-", - "origin": [ - 57.96400451660156, - 561.748291015625 - ], - "bbox": [ - 57.96400451660156, - 485.34356689453125, - 298.9057922363281, - 496.3434753417969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 485.34356689453125, - 298.9057922363281, - 496.3434753417969 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "creases towards the water edge, with the quantitative", - "origin": [ - 57.96400451660156, - 572.9461669921875 - ], - "bbox": [ - 57.96400451660156, - 496.54144287109375, - 298.7848205566406, - 507.5413513183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 496.54144287109375, - 298.7848205566406, - 507.5413513183594 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "parameters decreasing in the same direction. In the ar-", - "origin": [ - 57.96400451660156, - 584.14404296875 - ], - "bbox": [ - 57.96400451660156, - 507.73931884765625, - 298.9057922363281, - 518.7392578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 507.73931884765625, - 298.9057922363281, - 518.7392578125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "eas with the stands of macrophytes the highest", - "origin": [ - 57.96400451660156, - 595.3419189453125 - ], - "bbox": [ - 57.96400451660156, - 518.9371948242188, - 298.8288269042969, - 529.9371337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 518.9371948242188, - 298.8288269042969, - 529.9371337890625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "wind-wave load is brought on the zone bordering the", - "origin": [ - 57.96400451660156, - 606.5398559570312 - ], - "bbox": [ - 57.96400451660156, - 530.1351318359375, - 298.872802734375, - 541.135009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 530.1351318359375, - 298.872802734375, - 541.135009765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "open water. Accordingly, the species diversity and bio-", - "origin": [ - 57.96400451660156, - 617.7377319335938 - ], - "bbox": [ - 57.96400451660156, - 541.3330078125, - 298.9057922363281, - 552.3328857421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 541.3330078125, - 298.9057922363281, - 552.3328857421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "mass of the algae of epiphyton increase from the open", - "origin": [ - 57.96400451660156, - 628.9356079101562 - ], - "bbox": [ - 57.96400451660156, - 552.5308837890625, - 298.8507995605469, - 563.53076171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 552.5308837890625, - 298.8507995605469, - 563.53076171875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water towards the shore.", - "origin": [ - 57.96400451660156, - 640.133544921875 - ], - "bbox": [ - 57.96400451660156, - 563.7288208007812, - 165.48802185058594, - 574.728759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96400451660156, - 563.7288208007812, - 165.48802185058594, - 574.728759765625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The change in the water level accompanied by pow-", - "origin": [ - 72.13187408447266, - 655.6103515625 - ], - "bbox": [ - 72.13187408447266, - 579.2056274414062, - 298.8948059082031, - 590.20556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.13187408447266, - 579.2056274414062, - 298.8948059082031, - 590.20556640625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "erful wave-cut process creates unstable conditions for", - "origin": [ - 57.95301818847656, - 666.8192749023438 - ], - "bbox": [ - 57.95301818847656, - 590.41455078125, - 298.850830078125, - 601.4144287109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 590.41455078125, - 298.850830078125, - 601.4144287109375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "vegetation of the algae on the rock littoral at a depth of", - "origin": [ - 57.95301818847656, - 678.0171508789062 - ], - "bbox": [ - 57.95301818847656, - 601.6124267578125, - 298.8617248535156, - 612.6123046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 601.6124267578125, - 298.8617248535156, - 612.6123046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "less than 1.5 m. From May to October in the algo-", - "origin": [ - 57.95301818847656, - 689.215087890625 - ], - "bbox": [ - 57.95301818847656, - 612.8103637695312, - 298.8948059082031, - 623.810302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 612.8103637695312, - 298.8948059082031, - 623.810302734375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cenoses of epilithon the small-celled pioneering and", - "origin": [ - 57.95301818847656, - 700.4239501953125 - ], - "bbox": [ - 57.95301818847656, - 624.0192260742188, - 298.83978271484375, - 635.0191650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 624.0192260742188, - 298.83978271484375, - 635.0191650390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "widespread species of algae or the algae resistant to the", - "origin": [ - 57.95301818847656, - 711.6218872070312 - ], - "bbox": [ - 57.95301818847656, - 635.2171630859375, - 298.83978271484375, - 646.217041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 635.2171630859375, - 298.83978271484375, - 646.217041015625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "dynamic load of water primarily vegetate, that results in", - "origin": [ - 57.95301818847656, - 722.8197631835938 - ], - "bbox": [ - 57.95301818847656, - 646.4150390625, - 298.7738037109375, - 657.4149169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.95301818847656, - 646.4150390625, - 298.7738037109375, - 657.4149169921875 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 313.06268310546875, - -8.518974304199219, - 553.9713745117188, - 94.82492065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the absence of seasonal and year-to-year dynamics of", - "origin": [ - 313.06268310546875, - 67.8857421875 - ], - "bbox": [ - 313.06268310546875, - -8.518974304199219, - 553.938232421875, - 2.480926513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - -8.518974304199219, - 553.938232421875, - 2.480926513671875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the structure in phytoepilithon at this depth.", - "origin": [ - 313.06268310546875, - 79.0836181640625 - ], - "bbox": [ - 313.06268310546875, - 2.6789016723632812, - 505.2527770996094, - 13.678802490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 2.6789016723632812, - 505.2527770996094, - 13.678802490234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Regardless of the substrate type (rocks, water plants,", - "origin": [ - 327.2305603027344, - 93.04248046875 - ], - "bbox": [ - 327.2305603027344, - 16.63776397705078, - 553.9052734375, - 27.637664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2305603027344, - 16.63776397705078, - 553.9052734375, - 27.637664794921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "plant waste), time of study, and volume of the studied", - "origin": [ - 313.06268310546875, - 104.2403564453125 - ], - "bbox": [ - 313.06268310546875, - 27.83563995361328, - 553.9163818359375, - 38.835540771484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 27.83563995361328, - 553.9163818359375, - 38.835540771484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "material, the ecological range of the algae in periphyton", - "origin": [ - 313.06268310546875, - 115.438232421875 - ], - "bbox": [ - 313.06268310546875, - 39.03351593017578, - 553.6192626953125, - 50.033416748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 39.03351593017578, - 553.6192626953125, - 50.033416748046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "is identical and reflects the following hydrochemical", - "origin": [ - 313.06268310546875, - 126.6361083984375 - ], - "bbox": [ - 313.06268310546875, - 50.23139190673828, - 553.8944702148438, - 61.231292724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 50.23139190673828, - 553.8944702148438, - 61.231292724609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "characteristics of the lake: low mineralization of the", - "origin": [ - 313.06268310546875, - 137.833984375 - ], - "bbox": [ - 313.06268310546875, - 61.42926788330078, - 553.9713745117188, - 72.42916870117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 61.42926788330078, - 553.9713745117188, - 72.42916870117188 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water, alkalescent reaction of the medium, and low", - "origin": [ - 313.06268310546875, - 149.0318603515625 - ], - "bbox": [ - 313.06268310546875, - 72.62714385986328, - 553.9603271484375, - 83.62704467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 72.62714385986328, - 553.9603271484375, - 83.62704467773438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "content of organic matter.", - "origin": [ - 313.06268310546875, - 160.229736328125 - ], - "bbox": [ - 313.06268310546875, - 83.82501983642578, - 426.05352783203125, - 94.82492065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 83.82501983642578, - 426.05352783203125, - 94.82492065429688 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 398.9718933105469, - 113.63477325439453, - 468.0403137207031, - 124.63467407226562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "REFERENCES", - "origin": [ - 398.9718933105469, - 190.03948974609375 - ], - "bbox": [ - 398.9718933105469, - 113.63477325439453, - 468.0403137207031, - 124.63467407226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.9718933105469, - 113.63477325439453, - 468.0403137207031, - 124.63467407226562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 313.57110595703125, - 135.72171020507812, - 554.1185302734375, - 714.895263671875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "1. V. Selegei, B. Dehandschutter, J. Klerks, E. Vysotsky,", - "origin": [ - 318.58099365234375, - 205.18048095703125 - ], - "bbox": [ - 318.58099365234375, - 135.72171020507812, - 554.0182495117188, - 145.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.58099365234375, - 135.72171020507812, - 554.0182495117188, - 145.72161865234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and T. Perepelova,", - "origin": [ - 330.09088134765625, - 215.38037109375 - ], - "bbox": [ - 330.09088134765625, - 145.92160034179688, - 407.8299255371094, - 155.9215087890625 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Physical and Geological Environ-", - "origin": [ - 407.8299255371094, - 215.38037109375 - ], - "bbox": [ - 407.8299255371094, - 207.7006378173828, - 553.9986572265625, - 217.70053100585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.09088134765625, - 145.92160034179688, - 553.9986572265625, - 217.70053100585938 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "ment of Lake Teletskoye", - "origin": [ - 330.0909118652344, - 225.58026123046875 - ], - "bbox": [ - 330.0909118652344, - 217.90052795410156, - 432.5997009277344, - 227.90042114257812 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Tervuren (Belgium): Royal", - "origin": [ - 432.5997009277344, - 225.58026123046875 - ], - "bbox": [ - 432.5997009277344, - 156.12149047851562, - 554.0884399414062, - 166.12139892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0909118652344, - 156.12149047851562, - 554.0884399414062, - 227.90042114257812 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Museum for Central Africa, 2001), Vol. 105.", - "origin": [ - 330.0909118652344, - 235.7801513671875 - ], - "bbox": [ - 330.0909118652344, - 166.32138061523438, - 508.9888000488281, - 176.3212890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0909118652344, - 166.32138061523438, - 508.9888000488281, - 176.3212890625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2. N. V. Remezova, “Some Morphometric Parameters of", - "origin": [ - 318.5810241699219, - 248.510009765625 - ], - "bbox": [ - 318.5810241699219, - 179.05123901367188, - 553.9583740234375, - 189.0511474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.5810241699219, - 179.05123901367188, - 553.9583740234375, - 189.0511474609375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake Teletskoye,” in", - "origin": [ - 330.0909118652344, - 258.70989990234375 - ], - "bbox": [ - 330.0909118652344, - 189.25112915039062, - 412.7098693847656, - 199.25103759765625 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Studies of Lakes in the USSR: Col-", - "origin": [ - 412.7098693847656, - 258.70989990234375 - ], - "bbox": [ - 412.7098693847656, - 251.03016662597656, - 554.0086669921875, - 261.0300598144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0909118652344, - 189.25112915039062, - 554.0086669921875, - 261.0300598144531 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "lection of Papers", - "origin": [ - 330.1009216308594, - 268.9097900390625 - ], - "bbox": [ - 330.1009216308594, - 261.23004150390625, - 398.43011474609375, - 271.2299499511719 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by I. V. Molchanov (GTI, Lenin-", - "origin": [ - 398.490234375, - 268.9097900390625 - ], - "bbox": [ - 398.490234375, - 199.45101928710938, - 554.0086669921875, - 209.450927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1009216308594, - 199.45101928710938, - 554.0086669921875, - 271.2299499511719 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "grad, 1934), Issue 7, pp. 53–58 [in Russian].", - "origin": [ - 330.1009216308594, - 279.10968017578125 - ], - "bbox": [ - 330.1009216308594, - 209.65090942382812, - 510.35870361328125, - 219.65081787109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1009216308594, - 209.65090942382812, - 510.35870361328125, - 219.65081787109375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3. V. V. Selegei and T. S. Selegei,", - "origin": [ - 318.5910339355469, - 291.83953857421875 - ], - "bbox": [ - 318.5910339355469, - 222.38076782226562, - 450.6994323730469, - 232.38067626953125 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Hydrometeorological Re-", - "origin": [ - 450.6994323730469, - 291.83953857421875 - ], - "bbox": [ - 450.6994323730469, - 284.1597900390625, - 554.0186767578125, - 294.1596984863281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.5910339355469, - 222.38076782226562, - 554.0186767578125, - 294.1596984863281 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "gime of Lakes and Water Reservoirs in the USSR. Lake", - "origin": [ - 330.1109313964844, - 302.0394287109375 - ], - "bbox": [ - 330.1109313964844, - 294.35968017578125, - 554.0283813476562, - 304.3595886230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1109313964844, - 294.35968017578125, - 554.0283813476562, - 304.3595886230469 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Teletskoye", - "origin": [ - 330.1109313964844, - 312.23931884765625 - ], - "bbox": [ - 330.1109313964844, - 304.5595703125, - 371.430419921875, - 314.5594787597656 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Gidrometeoizdat, Leningrad, 1978) [in Rus-", - "origin": [ - 371.430419921875, - 312.23931884765625 - ], - "bbox": [ - 371.430419921875, - 242.78054809570312, - 554.0286865234375, - 252.78045654296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1109313964844, - 242.78054809570312, - 554.0286865234375, - 314.5594787597656 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "sian].", - "origin": [ - 330.1209411621094, - 322.439208984375 - ], - "bbox": [ - 330.1209411621094, - 252.98043823242188, - 352.0606689453125, - 262.9803466796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 252.98043823242188, - 352.0606689453125, - 262.9803466796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4. E. Yu. Zarubina, L. V. Yanygina, O. S. Burmistro-", - "origin": [ - 318.6110534667969, - 335.1690673828125 - ], - "bbox": [ - 318.6110534667969, - 265.7102966308594, - 554.0384521484375, - 275.710205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.6110534667969, - 265.7102966308594, - 554.0384521484375, - 275.710205078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "va, E. Yu. Mitrofanova, A. V. Kotovshchikov, and", - "origin": [ - 330.1209411621094, - 345.36895751953125 - ], - "bbox": [ - 330.1209411621094, - 275.9101867675781, - 554.0184326171875, - 285.91009521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 275.9101867675781, - 554.0184326171875, - 285.91009521484375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "G. V. Kim, Polzunovskii Vestnik, No. 2, 201 (2005).", - "origin": [ - 330.1209411621094, - 355.56884765625 - ], - "bbox": [ - 330.1209411621094, - 286.1100769042969, - 539.7685546875, - 296.1099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 286.1100769042969, - 539.7685546875, - 296.1099853515625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "5. L. A. Dolmatova, “Hydrochemical Regime of Lake Te-", - "origin": [ - 318.6110534667969, - 368.2987060546875 - ], - "bbox": [ - 318.6110534667969, - 298.8399353027344, - 554.0283813476562, - 308.83984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.6110534667969, - 298.8399353027344, - 554.0283813476562, - 308.83984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "letskoye,” in", - "origin": [ - 330.1209411621094, - 378.49859619140625 - ], - "bbox": [ - 330.1209411621094, - 309.0398254394531, - 380.2203369140625, - 319.03973388671875 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " On the State and Prospects of Development", - "origin": [ - 380.2203369140625, - 378.49859619140625 - ], - "bbox": [ - 380.2203369140625, - 370.81884765625, - 553.9884033203125, - 380.8187561035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 309.0398254394531, - 553.9884033203125, - 380.8187561035156 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "of Network of Specially Protected Natural Territories in", - "origin": [ - 330.1209411621094, - 388.698486328125 - ], - "bbox": [ - 330.1209411621094, - 381.01873779296875, - 554.0582885742188, - 391.0186462402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 381.01873779296875, - 554.0582885742188, - 391.0186462402344 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Altai Republic (Yailyu, Gorno-Altaisk, September 20–", - "origin": [ - 330.1209411621094, - 398.89837646484375 - ], - "bbox": [ - 330.1209411621094, - 391.2186279296875, - 553.9583129882812, - 401.2185363769531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 391.2186279296875, - 553.9583129882812, - 401.2185363769531 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "23, 2007): Proceedings", - "origin": [ - 330.1209411621094, - 409.0982666015625 - ], - "bbox": [ - 330.1209411621094, - 401.41851806640625, - 427.0997619628906, - 411.4184265136719 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (PANI, Gorno-Altaisk, 2008),", - "origin": [ - 427.0997619628906, - 409.0982666015625 - ], - "bbox": [ - 427.0997619628906, - 339.6394958496094, - 553.8886108398438, - 349.639404296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 339.6394958496094, - 553.8886108398438, - 411.4184265136719 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "pp. 72–80 [in Russian].", - "origin": [ - 330.1209411621094, - 419.29815673828125 - ], - "bbox": [ - 330.1209411621094, - 349.8393859863281, - 423.72979736328125, - 359.83929443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 349.8393859863281, - 423.72979736328125, - 359.83929443359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6. O P. Oksiyuk and O. A. Davydov, “Methods of Estima-", - "origin": [ - 318.6110534667969, - 432.02801513671875 - ], - "bbox": [ - 318.6110534667969, - 362.5692443847656, - 554.0383911132812, - 372.56915283203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.6110534667969, - 362.5692443847656, - 554.0383911132812, - 372.56915283203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion of Ecological State of Water Objects by Micro-", - "origin": [ - 330.1209411621094, - 442.2279052734375 - ], - "bbox": [ - 330.1209411621094, - 372.7691345214844, - 554.0283813476562, - 382.76904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 372.7691345214844, - 554.0283813476562, - 382.76904296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "phytobenthos,” Gidrobiologicheskii Zh.", - "origin": [ - 330.1209411621094, - 452.6077880859375 - ], - "bbox": [ - 330.1209411621094, - 383.1490173339844, - 498.73895263671875, - 393.14892578125 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 42", - "origin": [ - 498.73895263671875, - 452.6077880859375 - ], - "bbox": [ - 498.73895263671875, - 444.8909606933594, - 515.7490844726562, - 454.890869140625 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (2), 98", - "origin": [ - 515.7490844726562, - 452.6077880859375 - ], - "bbox": [ - 515.7490844726562, - 383.1490173339844, - 553.9986572265625, - 393.14892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 383.1490173339844, - 553.9986572265625, - 454.890869140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(2006).", - "origin": [ - 330.12091064453125, - 462.80767822265625 - ], - "bbox": [ - 330.12091064453125, - 393.3489074707031, - 359.2805480957031, - 403.34881591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.12091064453125, - 393.3489074707031, - 359.2805480957031, - 403.34881591796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7. N. N. Voronikhin, “Microphytobenthos of Lake Telets-", - "origin": [ - 318.61102294921875, - 475.53753662109375 - ], - "bbox": [ - 318.61102294921875, - 406.0787658691406, - 554.0286865234375, - 416.07867431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.61102294921875, - 406.0787658691406, - 554.0286865234375, - 416.07867431640625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "koye and Some Tributaries,” in", - "origin": [ - 330.1209411621094, - 485.7374267578125 - ], - "bbox": [ - 330.1209411621094, - 416.2786560058594, - 453.84942626953125, - 426.278564453125 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Spore Plants: Collection", - "origin": [ - 453.84942626953125, - 485.7374267578125 - ], - "bbox": [ - 453.84942626953125, - 478.05767822265625, - 554.1185302734375, - 488.0575866699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 416.2786560058594, - 554.1185302734375, - 488.0575866699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "of Papers", - "origin": [ - 330.1209716796875, - 495.93731689453125 - ], - "bbox": [ - 330.1209716796875, - 488.257568359375, - 368.3804931640625, - 498.2574768066406 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by V. P. Savich (Izd. AN SSSR, Moscow,", - "origin": [ - 368.43060302734375, - 495.93731689453125 - ], - "bbox": [ - 368.43060302734375, - 426.4785461425781, - 554.03857421875, - 436.47845458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 426.4785461425781, - 554.03857421875, - 498.2574768066406 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "1940), Issue 4, pp. 237–245 [in Russian].", - "origin": [ - 330.1209716796875, - 506.13720703125 - ], - "bbox": [ - 330.1209716796875, - 436.6784362792969, - 495.10894775390625, - 446.6783447265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 436.6784362792969, - 495.10894775390625, - 446.6783447265625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8. V. S. Poretskii and V. S. Sheshukova, “Diatoms of Lake", - "origin": [ - 318.611083984375, - 518.8670654296875 - ], - "bbox": [ - 318.611083984375, - 449.4082946777344, - 554.0282592773438, - 459.408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.611083984375, - 449.4082946777344, - 554.0282592773438, - 459.408203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Teletskoye and Related Rivers,” in", - "origin": [ - 330.1209716796875, - 529.0669555664062 - ], - "bbox": [ - 330.1209716796875, - 459.6081848144531, - 469.769287109375, - 469.60809326171875 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Diatoms Collection:", - "origin": [ - 469.769287109375, - 529.0669555664062 - ], - "bbox": [ - 469.769287109375, - 521.38720703125, - 554.07861328125, - 531.3871459960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 459.6081848144531, - 554.07861328125, - 531.3871459960938 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Collection of Papers of Leningrad State University", - "origin": [ - 330.1209716796875, - 539.266845703125 - ], - "bbox": [ - 330.1209716796875, - 531.5870971679688, - 552.1183471679688, - 541.5870361328125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 551.5387573242188, - 539.266845703125 - ], - "bbox": [ - 551.5387573242188, - 469.8080749511719, - 554.0387573242188, - 479.8079833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 469.8080749511719, - 554.0387573242188, - 541.5870361328125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Ed. by A. I. Proshkina-Lavrenko and V. S. Sheshukova", - "origin": [ - 330.1209716796875, - 549.4667358398438 - ], - "bbox": [ - 330.1209716796875, - 480.0079650878906, - 553.8783569335938, - 490.00787353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 480.0079650878906, - 553.8783569335938, - 490.00787353515625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(Leningrad. Gos. Univ., Leningrad, 1953), pp. 107–172", - "origin": [ - 330.1209716796875, - 559.6666259765625 - ], - "bbox": [ - 330.1209716796875, - 490.2078552246094, - 553.8383178710938, - 500.207763671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 490.2078552246094, - 553.8383178710938, - 500.207763671875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[in Russian].", - "origin": [ - 330.1209716796875, - 569.8665161132812 - ], - "bbox": [ - 330.1209716796875, - 500.4077453613281, - 381.2303466796875, - 510.40765380859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 500.4077453613281, - 381.2303466796875, - 510.40765380859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "9. V. A. Abakumov (Ed.),", - "origin": [ - 318.611083984375, - 582.5963745117188 - ], - "bbox": [ - 318.611083984375, - 513.1376342773438, - 422.3299560546875, - 523.1375122070312 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Guide to Hydrobiological Moni-", - "origin": [ - 422.3299560546875, - 582.5963745117188 - ], - "bbox": [ - 422.3299560546875, - 574.9166259765625, - 554.0286865234375, - 584.9165649414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.611083984375, - 513.1376342773438, - 554.0286865234375, - 584.9165649414062 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "toring of Fresh-Water Ecosystems", - "origin": [ - 330.1209411621094, - 592.7962646484375 - ], - "bbox": [ - 330.1209411621094, - 585.1165161132812, - 475.3792724609375, - 595.116455078125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Gidrometeoizdat,", - "origin": [ - 475.3792724609375, - 592.7962646484375 - ], - "bbox": [ - 475.3792724609375, - 523.3375244140625, - 554.1085815429688, - 533.33740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 523.3375244140625, - 554.1085815429688, - 595.116455078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "St. Petersburg, 1992) [in Russian].", - "origin": [ - 330.1209411621094, - 602.9962158203125 - ], - "bbox": [ - 330.1209411621094, - 533.5374755859375, - 468.0792541503906, - 543.537353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 533.5374755859375, - 468.0792541503906, - 543.537353515625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "10. K. K. Votintsev, A. I. Meshcheryakova, and G. I. Popov-", - "origin": [ - 313.58111572265625, - 615.72607421875 - ], - "bbox": [ - 313.58111572265625, - 546.267333984375, - 554.0286865234375, - 556.2672119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.58111572265625, - 546.267333984375, - 554.0286865234375, - 556.2672119140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "skaya, “Primary Production,” in", - "origin": [ - 330.1209411621094, - 625.9259643554688 - ], - "bbox": [ - 330.1209411621094, - 556.4672241210938, - 464.71929931640625, - 566.4671020507812 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Problems of Baikal:", - "origin": [ - 464.71929931640625, - 625.9259643554688 - ], - "bbox": [ - 464.71929931640625, - 618.2462158203125, - 554.028564453125, - 628.2461547851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 556.4672241210938, - 554.028564453125, - 628.2461547851562 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Collection of Papers of SB AS USSR; Limnological Insti-", - "origin": [ - 330.1209411621094, - 636.1258544921875 - ], - "bbox": [ - 330.1209411621094, - 628.4461059570312, - 554.0286865234375, - 638.446044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 628.4461059570312, - 554.0286865234375, - 638.446044921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "tute", - "origin": [ - 330.1209411621094, - 646.3257446289062 - ], - "bbox": [ - 330.1209411621094, - 638.64599609375, - 345.1207580566406, - 648.6459350585938 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by G. I. Galazii et al. (Nauka, Siberian Branch,", - "origin": [ - 345.0907897949219, - 646.3257446289062 - ], - "bbox": [ - 345.0907897949219, - 576.8670043945312, - 554.0084228515625, - 586.8668823242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 576.8670043945312, - 554.0084228515625, - 648.6459350585938 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Novosibirsk, 1978), pp. 169–179 [in Russian].", - "origin": [ - 330.1209411621094, - 656.525634765625 - ], - "bbox": [ - 330.1209411621094, - 587.06689453125, - 515.94873046875, - 597.0667724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 587.06689453125, - 515.94873046875, - 597.0667724609375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11. L. E. Komarenko and I. I. Vasil’eva,", - "origin": [ - 313.58111572265625, - 669.2554931640625 - ], - "bbox": [ - 313.58111572265625, - 599.7967529296875, - 479.4192199707031, - 609.796630859375 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Fresh-Water Dia-", - "origin": [ - 479.4192199707031, - 669.2554931640625 - ], - "bbox": [ - 479.4192199707031, - 661.5757446289062, - 554.0286865234375, - 671.57568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.58111572265625, - 599.7967529296875, - 554.0286865234375, - 671.57568359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "toms and Blue-Green Algae in the Water Bodies of Yaku-", - "origin": [ - 330.1209411621094, - 679.4553833007812 - ], - "bbox": [ - 330.1209411621094, - 671.7656860351562, - 554.0286865234375, - 681.7755737304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 671.7656860351562, - 554.0286865234375, - 681.7755737304688 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "tia", - "origin": [ - 330.1209411621094, - 689.6453247070312 - ], - "bbox": [ - 330.1209411621094, - 681.965576171875, - 340.6808166503906, - 691.9655151367188 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Nauka, Moscow, 1975) [in Russian].", - "origin": [ - 340.6808166503906, - 689.6453247070312 - ], - "bbox": [ - 340.6808166503906, - 620.1865844726562, - 493.4890441894531, - 630.1864624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 620.1865844726562, - 493.4890441894531, - 691.9655151367188 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "12. A. E. Ergashev,", - "origin": [ - 313.57110595703125, - 702.3751831054688 - ], - "bbox": [ - 313.57110595703125, - 632.9164428710938, - 393.6201477050781, - 642.9163208007812 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Guide to Protococcic Algae of Central", - "origin": [ - 393.6201477050781, - 702.3751831054688 - ], - "bbox": [ - 393.6201477050781, - 694.6954345703125, - 554.0584106445312, - 704.6953735351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.57110595703125, - 632.9164428710938, - 554.0584106445312, - 704.6953735351562 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Asia. Tetrasporales and Chlorococcales", - "origin": [ - 330.1109619140625, - 712.5750732421875 - ], - "bbox": [ - 330.1109619140625, - 704.8953247070312, - 489.81903076171875, - 714.895263671875 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Fan, Tashkent,", - "origin": [ - 489.81903076171875, - 712.5750732421875 - ], - "bbox": [ - 489.81903076171875, - 643.1163330078125, - 553.9886474609375, - 653.1162109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1109619140625, - 643.1163330078125, - 553.9886474609375, - 714.895263671875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "1979) [in Russian].", - "origin": [ - 330.1109619140625, - 722.7749633789062 - ], - "bbox": [ - 330.1109619140625, - 653.3162231445312, - 407.0500183105469, - 663.3161010742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1109619140625, - 653.3162231445312, - 407.0500183105469, - 663.3161010742188 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 269.92181396484375, - 748.1763916015625 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.9873352050781, - 347.0046691894531 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "construens", - "origin": [ - 57.96849822998047, - 67.89288330078125 - ], - "bbox": [ - 57.96849822998047, - 59.44516372680664, - 105.63105773925781, - 70.44506072998047 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Ehr.) Grun.,", - "origin": [ - 105.63105773925781, - 67.89288330078125 - ], - "bbox": [ - 105.63105773925781, - -8.511833190917969, - 164.6015167236328, - 2.488067626953125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Merismopedia punctata", - "origin": [ - 164.6015167236328, - 67.89288330078125 - ], - "bbox": [ - 164.6015167236328, - 59.44516372680664, - 272.1475830078125, - 70.44506072998047 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Mey-", - "origin": [ - 272.1475830078125, - 67.89288330078125 - ], - "bbox": [ - 272.1475830078125, - -8.511833190917969, - 298.9212951660156, - 2.499053955078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.96849822998047, - -8.511833190917969, - 298.9212951660156, - 70.44506072998047 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "en,", - "origin": [ - 57.97950744628906, - 79.10174560546875 - ], - "bbox": [ - 57.97950744628906, - 2.6970291137695312, - 71.11338806152344, - 13.696929931640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Microcystis", - "origin": [ - 71.11338806152344, - 79.10174560546875 - ], - "bbox": [ - 71.11338806152344, - 70.6540298461914, - 124.11091613769531, - 81.65392303466797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " sp. (live plants) to", - "origin": [ - 124.11091613769531, - 79.10174560546875 - ], - "bbox": [ - 124.11091613769531, - 2.6970291137695312, - 203.81617736816406, - 13.696929931640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " M. punctata", - "origin": [ - 203.81617736816406, - 79.10174560546875 - ], - "bbox": [ - 203.81617736816406, - 70.6540298461914, - 258.45269775390625, - 81.65392303466797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 258.606689453125, - 79.10174560546875 - ], - "bbox": [ - 258.606689453125, - 2.6970291137695312, - 261.3566589355469, - 13.696929931640625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " G. mag-", - "origin": [ - 261.3566589355469, - 79.10174560546875 - ], - "bbox": [ - 261.3566589355469, - 70.6540298461914, - 298.92132568359375, - 81.66490936279297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97950744628906, - 2.6970291137695312, - 298.92132568359375, - 81.66490936279297 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "ma", - "origin": [ - 57.97953796386719, - 90.31060791015625 - ], - "bbox": [ - 57.97953796386719, - 81.8628921508789, - 71.4214096069336, - 92.86278533935547 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 71.44341278076172, - 90.31060791015625 - ], - "bbox": [ - 71.44341278076172, - 13.905891418457031, - 74.19338989257812, - 24.905792236328125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " F. pinnata", - "origin": [ - 74.19338989257812, - 90.31060791015625 - ], - "bbox": [ - 74.19338989257812, - 81.8628921508789, - 127.53189849853516, - 92.86278533935547 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 127.6968994140625, - 90.31060791015625 - ], - "bbox": [ - 127.6968994140625, - 13.905891418457031, - 130.44686889648438, - 24.905792236328125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " A. minutissima", - "origin": [ - 130.44686889648438, - 90.31060791015625 - ], - "bbox": [ - 130.44686889648438, - 81.8628921508789, - 204.7841796875, - 92.86278533935547 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (in 1.5 months) to", - "origin": [ - 204.7841796875, - 90.31060791015625 - ], - "bbox": [ - 204.7841796875, - 13.905891418457031, - 298.8663330078125, - 24.905792236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 13.905891418457031, - 298.8663330078125, - 92.86278533935547 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "A. minutissima", - "origin": [ - 57.97953796386719, - 101.50848388671875 - ], - "bbox": [ - 57.97953796386719, - 93.0607681274414, - 123.79193878173828, - 104.06066131591797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 123.86893463134766, - 101.50848388671875 - ], - "bbox": [ - 123.86893463134766, - 25.10376739501953, - 126.61891174316406, - 36.103668212890625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " F. pinnata", - "origin": [ - 126.61891174316406, - 101.50848388671875 - ], - "bbox": [ - 126.61891174316406, - 93.0607681274414, - 174.58946228027344, - 104.06066131591797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 174.7544708251953, - 101.50848388671875 - ], - "bbox": [ - 174.7544708251953, - 25.10376739501953, - 177.5044403076172, - 36.103668212890625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Microcystis pulverea", - "origin": [ - 177.5044403076172, - 101.50848388671875 - ], - "bbox": [ - 177.5044403076172, - 93.0607681274414, - 272.7415771484375, - 104.06066131591797 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " f.", - "origin": [ - 272.7415771484375, - 101.50848388671875 - ], - "bbox": [ - 272.7415771484375, - 25.10376739501953, - 282.3114929199219, - 36.103668212890625 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " ra-", - "origin": [ - 282.3114929199219, - 101.50848388671875 - ], - "bbox": [ - 282.3114929199219, - 93.0607681274414, - 298.9323425292969, - 104.06066131591797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.97953796386719, - 25.10376739501953, - 298.9323425292969, - 104.06066131591797 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "cemiformis", - "origin": [ - 57.99055480957031, - 112.70635986328125 - ], - "bbox": [ - 57.99055480957031, - 104.2586441040039, - 106.87411499023438, - 115.25853729248047 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Nyg.) Hollerb.,", - "origin": [ - 106.87411499023438, - 112.70635986328125 - ], - "bbox": [ - 106.87411499023438, - 36.30164337158203, - 181.2003936767578, - 47.301544189453125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " T. flocculosa", - "origin": [ - 181.2003936767578, - 112.70635986328125 - ], - "bbox": [ - 181.2003936767578, - 104.2586441040039, - 240.64389038085938, - 115.25853729248047 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 240.74288940429688, - 112.70635986328125 - ], - "bbox": [ - 240.74288940429688, - 36.30164337158203, - 243.49285888671875, - 47.301544189453125 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " S. pulchella", - "origin": [ - 243.49285888671875, - 112.70635986328125 - ], - "bbox": [ - 243.49285888671875, - 104.2586441040039, - 298.82232666015625, - 115.25853729248047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.99055480957031, - 36.30164337158203, - 298.82232666015625, - 115.25853729248047 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(in 3.5 months). On the leaves waste the complex of", - "origin": [ - 58.001556396484375, - 123.90423583984375 - ], - "bbox": [ - 58.001556396484375, - 47.49951934814453, - 298.9212646484375, - 58.499420166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.001556396484375, - 47.49951934814453, - 298.9212646484375, - 58.499420166015625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "A. minutissima", - "origin": [ - 58.001556396484375, - 135.10211181640625 - ], - "bbox": [ - 58.001556396484375, - 126.6543960571289, - 124.04496002197266, - 137.654296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 124.12195587158203, - 135.10211181640625 - ], - "bbox": [ - 124.12195587158203, - 58.69739532470703, - 126.87193298339844, - 69.69729614257812 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " F. pinnata", - "origin": [ - 126.87193298339844, - 135.10211181640625 - ], - "bbox": [ - 126.87193298339844, - 126.6543960571289, - 175.3044891357422, - 137.654296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 175.46949768066406, - 135.10211181640625 - ], - "bbox": [ - 175.46949768066406, - 58.69739532470703, - 178.21946716308594, - 69.69729614257812 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Dinobryon divergens", - "origin": [ - 178.21946716308594, - 135.10211181640625 - ], - "bbox": [ - 178.21946716308594, - 126.6543960571289, - 275.1065673828125, - 137.654296875 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " Imh.", - "origin": [ - 275.1065673828125, - 135.10211181640625 - ], - "bbox": [ - 275.1065673828125, - 58.69739532470703, - 298.9873352050781, - 69.69729614257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.001556396484375, - 58.69739532470703, - 298.9873352050781, - 137.654296875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(August) was joined by", - "origin": [ - 58.01255798339844, - 146.29998779296875 - ], - "bbox": [ - 58.01255798339844, - 69.89527130126953, - 160.9716339111328, - 80.89517211914062 - ] - }, - { - "size": 10.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " T. flocculosa", - "origin": [ - 160.9716339111328, - 146.29998779296875 - ], - "bbox": [ - 160.9716339111328, - 137.85226440429688, - 220.06309509277344, - 148.8521728515625 - ] - }, - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (October).", - "origin": [ - 220.06309509277344, - 146.29998779296875 - ], - "bbox": [ - 220.06309509277344, - 69.89527130126953, - 268.462646484375, - 80.89517211914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.01255798339844, - 69.89527130126953, - 268.462646484375, - 148.8521728515625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "As the plant remains of all types decay, the cell", - "origin": [ - 72.19143676757812, - 161.77685546875 - ], - "bbox": [ - 72.19143676757812, - 85.37213897705078, - 298.9653625488281, - 96.37203979492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19143676757812, - 85.37213897705078, - 298.9653625488281, - 96.37203979492188 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "densities of algae increases: from 141.44 to 348.08", - "origin": [ - 58.02356719970703, - 172.9747314453125 - ], - "bbox": [ - 58.02356719970703, - 96.57001495361328, - 298.7893371582031, - 107.56991577148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 96.57001495361328, - 298.7893371582031, - 107.56991577148438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "thousands of cells of algae per gram of the initial dry", - "origin": [ - 58.02356719970703, - 184.172607421875 - ], - "bbox": [ - 58.02356719970703, - 107.76789093017578, - 298.8443603515625, - 118.76779174804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 107.76789093017578, - 298.8443603515625, - 118.76779174804688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "mass of the macrophyte for the horse-tail, from 60.5 to", - "origin": [ - 58.02356719970703, - 195.3704833984375 - ], - "bbox": [ - 58.02356719970703, - 118.96576690673828, - 298.92132568359375, - 129.96566772460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 118.96576690673828, - 298.92132568359375, - 129.96566772460938 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "226.48 for the pondweed, and from 134.16 to 241.92", - "origin": [ - 58.02356719970703, - 206.568359375 - ], - "bbox": [ - 58.02356719970703, - 130.16363525390625, - 298.7893371582031, - 141.16354370117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 130.16363525390625, - 298.7893371582031, - 141.16354370117188 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "for the leaves residues. The values of the biomass also", - "origin": [ - 58.02356719970703, - 217.7662353515625 - ], - "bbox": [ - 58.02356719970703, - 141.36151123046875, - 298.943359375, - 152.36141967773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 141.36151123046875, - 298.943359375, - 152.36141967773438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "increased: from 0.06 to 0.56 gram of dry mass of algae", - "origin": [ - 58.02356719970703, - 228.964111328125 - ], - "bbox": [ - 58.02356719970703, - 152.55938720703125, - 298.9653625488281, - 163.55929565429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 152.55938720703125, - 298.9653625488281, - 163.55929565429688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "per gram of dry mass of plant residues for the horse-tail,", - "origin": [ - 58.02356719970703, - 240.1619873046875 - ], - "bbox": [ - 58.02356719970703, - 163.75726318359375, - 298.7783203125, - 174.75717163085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 163.75726318359375, - 298.7783203125, - 174.75717163085938 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "from 0.12 to 0.63 for the pondweed, and from 0.23 to", - "origin": [ - 58.02356719970703, - 251.35986328125 - ], - "bbox": [ - 58.02356719970703, - 174.95513916015625, - 298.89935302734375, - 185.95504760742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 174.95513916015625, - 298.89935302734375, - 185.95504760742188 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "0.84 for the leaves residues.", - "origin": [ - 58.02356719970703, - 262.5577392578125 - ], - "bbox": [ - 58.02356719970703, - 186.15301513671875, - 180.82644653320312, - 197.15292358398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 186.15301513671875, - 180.82644653320312, - 197.15292358398438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "The ratio of the cosmopolites (53.8% of the total", - "origin": [ - 72.19143676757812, - 278.03460693359375 - ], - "bbox": [ - 72.19143676757812, - 201.6298828125, - 298.92138671875, - 212.62979125976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19143676757812, - 201.6298828125, - 298.92138671875, - 212.62979125976562 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "composition, 42 taxa), boreal (14.1%, 11 taxa), and", - "origin": [ - 58.02356719970703, - 289.2325134277344 - ], - "bbox": [ - 58.02356719970703, - 212.82778930664062, - 298.9103088378906, - 223.82769775390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 212.82778930664062, - 298.9103088378906, - 223.82769775390625 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Arctic-Alpine (7.7%, 6 taxa) forms in the algocenoses", - "origin": [ - 58.02356719970703, - 300.430419921875 - ], - "bbox": [ - 58.02356719970703, - 224.02569580078125, - 298.9102783203125, - 235.02560424804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 224.02569580078125, - 298.9102783203125, - 235.02560424804688 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on the dying plants reveals the prevalence of wide-", - "origin": [ - 58.02356719970703, - 311.6283264160156 - ], - "bbox": [ - 58.02356719970703, - 235.22360229492188, - 298.9653625488281, - 246.2235107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02356719970703, - 235.22360229492188, - 298.9653625488281, - 246.2235107421875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "spread taxa. The share of halophobes (9%, 7 taxa) ex-", - "origin": [ - 58.02357482910156, - 322.82623291015625 - ], - "bbox": [ - 58.02357482910156, - 246.4215087890625, - 298.9653625488281, - 257.4214172363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 246.4215087890625, - 298.9653625488281, - 257.4214172363281 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ceeds the share of halophiles (5.1%, 4 taxa) (see Fig. 2).", - "origin": [ - 58.02357482910156, - 334.0241394042969 - ], - "bbox": [ - 58.02357482910156, - 257.6194152832031, - 298.92132568359375, - 268.61932373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 257.6194152832031, - 298.92132568359375, - 268.61932373046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Among the indicators of pH those of the alkalescent re-", - "origin": [ - 58.02357482910156, - 345.2220458984375 - ], - "bbox": [ - 58.02357482910156, - 268.81732177734375, - 298.9763488769531, - 279.8172302246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 268.81732177734375, - 298.9763488769531, - 279.8172302246094 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "action of the medium prevail with the share of", - "origin": [ - 58.02357482910156, - 356.4199523925781 - ], - "bbox": [ - 58.02357482910156, - 280.0152282714844, - 298.91033935546875, - 291.01513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 280.0152282714844, - 298.91033935546875, - 291.01513671875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "alkaliphiles and alkalibionts (37.2%, 29 taxa) exceed-", - "origin": [ - 58.02357482910156, - 367.61785888671875 - ], - "bbox": [ - 58.02357482910156, - 291.213134765625, - 298.9543151855469, - 302.2130432128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 291.213134765625, - 298.9543151855469, - 302.2130432128906 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ing the share of acidophiles (3.8%, 3 taxa). The charac-", - "origin": [ - 58.02357482910156, - 378.8157653808594 - ], - "bbox": [ - 58.02357482910156, - 302.4110412597656, - 298.97625732421875, - 313.41094970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 302.4110412597656, - 298.97625732421875, - 313.41094970703125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "teristic in relation to the organic pollution is known", - "origin": [ - 58.02357482910156, - 390.013671875 - ], - "bbox": [ - 58.02357482910156, - 313.60894775390625, - 298.84442138671875, - 324.6088562011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 313.60894775390625, - 298.84442138671875, - 324.6088562011719 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "only for 53.8% of all listed algae forms (42), with", - "origin": [ - 58.02357482910156, - 401.2115783691406 - ], - "bbox": [ - 58.02357482910156, - 324.8068542480469, - 298.91033935546875, - 335.8067626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 324.8068542480469, - 298.91033935546875, - 335.8067626953125 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "38.5% (30 taxa) inhabiting pure water.", - "origin": [ - 58.02357482910156, - 412.40948486328125 - ], - "bbox": [ - 58.02357482910156, - 336.0047607421875, - 227.9940185546875, - 347.0046691894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.02357482910156, - 336.0047607421875, - 227.9940185546875, - 347.0046691894531 - ] - } - ], - "tag": "header" - }, - { - "number": 3, - "type": 0, - "bbox": [ - 313.06268310546875, - -8.518974304199219, - 553.9713745117188, - 94.82492065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the absence of seasonal and year-to-year dynamics of", - "origin": [ - 313.06268310546875, - 67.8857421875 - ], - "bbox": [ - 313.06268310546875, - -8.518974304199219, - 553.938232421875, - 2.480926513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - -8.518974304199219, - 553.938232421875, - 2.480926513671875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "the structure in phytoepilithon at this depth.", - "origin": [ - 313.06268310546875, - 79.0836181640625 - ], - "bbox": [ - 313.06268310546875, - 2.6789016723632812, - 505.2527770996094, - 13.678802490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 2.6789016723632812, - 505.2527770996094, - 13.678802490234375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Regardless of the substrate type (rocks, water plants,", - "origin": [ - 327.2305603027344, - 93.04248046875 - ], - "bbox": [ - 327.2305603027344, - 16.63776397705078, - 553.9052734375, - 27.637664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.2305603027344, - 16.63776397705078, - 553.9052734375, - 27.637664794921875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "plant waste), time of study, and volume of the studied", - "origin": [ - 313.06268310546875, - 104.2403564453125 - ], - "bbox": [ - 313.06268310546875, - 27.83563995361328, - 553.9163818359375, - 38.835540771484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 27.83563995361328, - 553.9163818359375, - 38.835540771484375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "material, the ecological range of the algae in periphyton", - "origin": [ - 313.06268310546875, - 115.438232421875 - ], - "bbox": [ - 313.06268310546875, - 39.03351593017578, - 553.6192626953125, - 50.033416748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 39.03351593017578, - 553.6192626953125, - 50.033416748046875 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "is identical and reflects the following hydrochemical", - "origin": [ - 313.06268310546875, - 126.6361083984375 - ], - "bbox": [ - 313.06268310546875, - 50.23139190673828, - 553.8944702148438, - 61.231292724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 50.23139190673828, - 553.8944702148438, - 61.231292724609375 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "characteristics of the lake: low mineralization of the", - "origin": [ - 313.06268310546875, - 137.833984375 - ], - "bbox": [ - 313.06268310546875, - 61.42926788330078, - 553.9713745117188, - 72.42916870117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 61.42926788330078, - 553.9713745117188, - 72.42916870117188 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "water, alkalescent reaction of the medium, and low", - "origin": [ - 313.06268310546875, - 149.0318603515625 - ], - "bbox": [ - 313.06268310546875, - 72.62714385986328, - 553.9603271484375, - 83.62704467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 72.62714385986328, - 553.9603271484375, - 83.62704467773438 - ] - }, - { - "spans": [ - { - "size": 10.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "content of organic matter.", - "origin": [ - 313.06268310546875, - 160.229736328125 - ], - "bbox": [ - 313.06268310546875, - 83.82501983642578, - 426.05352783203125, - 94.82492065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.06268310546875, - 83.82501983642578, - 426.05352783203125, - 94.82492065429688 - ] - } - ], - "tag": "header" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 313.57110595703125, - 135.72171020507812, - 554.1185302734375, - 714.895263671875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "1. V. Selegei, B. Dehandschutter, J. Klerks, E. Vysotsky,", - "origin": [ - 318.58099365234375, - 205.18048095703125 - ], - "bbox": [ - 318.58099365234375, - 135.72171020507812, - 554.0182495117188, - 145.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.58099365234375, - 135.72171020507812, - 554.0182495117188, - 145.72161865234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and T. Perepelova,", - "origin": [ - 330.09088134765625, - 215.38037109375 - ], - "bbox": [ - 330.09088134765625, - 145.92160034179688, - 407.8299255371094, - 155.9215087890625 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Physical and Geological Environ-", - "origin": [ - 407.8299255371094, - 215.38037109375 - ], - "bbox": [ - 407.8299255371094, - 207.7006378173828, - 553.9986572265625, - 217.70053100585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.09088134765625, - 145.92160034179688, - 553.9986572265625, - 217.70053100585938 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "ment of Lake Teletskoye", - "origin": [ - 330.0909118652344, - 225.58026123046875 - ], - "bbox": [ - 330.0909118652344, - 217.90052795410156, - 432.5997009277344, - 227.90042114257812 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Tervuren (Belgium): Royal", - "origin": [ - 432.5997009277344, - 225.58026123046875 - ], - "bbox": [ - 432.5997009277344, - 156.12149047851562, - 554.0884399414062, - 166.12139892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0909118652344, - 156.12149047851562, - 554.0884399414062, - 227.90042114257812 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Museum for Central Africa, 2001), Vol. 105.", - "origin": [ - 330.0909118652344, - 235.7801513671875 - ], - "bbox": [ - 330.0909118652344, - 166.32138061523438, - 508.9888000488281, - 176.3212890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0909118652344, - 166.32138061523438, - 508.9888000488281, - 176.3212890625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2. N. V. Remezova, “Some Morphometric Parameters of", - "origin": [ - 318.5810241699219, - 248.510009765625 - ], - "bbox": [ - 318.5810241699219, - 179.05123901367188, - 553.9583740234375, - 189.0511474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.5810241699219, - 179.05123901367188, - 553.9583740234375, - 189.0511474609375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake Teletskoye,” in", - "origin": [ - 330.0909118652344, - 258.70989990234375 - ], - "bbox": [ - 330.0909118652344, - 189.25112915039062, - 412.7098693847656, - 199.25103759765625 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Studies of Lakes in the USSR: Col-", - "origin": [ - 412.7098693847656, - 258.70989990234375 - ], - "bbox": [ - 412.7098693847656, - 251.03016662597656, - 554.0086669921875, - 261.0300598144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0909118652344, - 189.25112915039062, - 554.0086669921875, - 261.0300598144531 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "lection of Papers", - "origin": [ - 330.1009216308594, - 268.9097900390625 - ], - "bbox": [ - 330.1009216308594, - 261.23004150390625, - 398.43011474609375, - 271.2299499511719 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by I. V. Molchanov (GTI, Lenin-", - "origin": [ - 398.490234375, - 268.9097900390625 - ], - "bbox": [ - 398.490234375, - 199.45101928710938, - 554.0086669921875, - 209.450927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1009216308594, - 199.45101928710938, - 554.0086669921875, - 271.2299499511719 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "grad, 1934), Issue 7, pp. 53–58 [in Russian].", - "origin": [ - 330.1009216308594, - 279.10968017578125 - ], - "bbox": [ - 330.1009216308594, - 209.65090942382812, - 510.35870361328125, - 219.65081787109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1009216308594, - 209.65090942382812, - 510.35870361328125, - 219.65081787109375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "3. V. V. Selegei and T. S. Selegei,", - "origin": [ - 318.5910339355469, - 291.83953857421875 - ], - "bbox": [ - 318.5910339355469, - 222.38076782226562, - 450.6994323730469, - 232.38067626953125 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Hydrometeorological Re-", - "origin": [ - 450.6994323730469, - 291.83953857421875 - ], - "bbox": [ - 450.6994323730469, - 284.1597900390625, - 554.0186767578125, - 294.1596984863281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.5910339355469, - 222.38076782226562, - 554.0186767578125, - 294.1596984863281 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "gime of Lakes and Water Reservoirs in the USSR. Lake", - "origin": [ - 330.1109313964844, - 302.0394287109375 - ], - "bbox": [ - 330.1109313964844, - 294.35968017578125, - 554.0283813476562, - 304.3595886230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1109313964844, - 294.35968017578125, - 554.0283813476562, - 304.3595886230469 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Teletskoye", - "origin": [ - 330.1109313964844, - 312.23931884765625 - ], - "bbox": [ - 330.1109313964844, - 304.5595703125, - 371.430419921875, - 314.5594787597656 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Gidrometeoizdat, Leningrad, 1978) [in Rus-", - "origin": [ - 371.430419921875, - 312.23931884765625 - ], - "bbox": [ - 371.430419921875, - 242.78054809570312, - 554.0286865234375, - 252.78045654296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1109313964844, - 242.78054809570312, - 554.0286865234375, - 314.5594787597656 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "sian].", - "origin": [ - 330.1209411621094, - 322.439208984375 - ], - "bbox": [ - 330.1209411621094, - 252.98043823242188, - 352.0606689453125, - 262.9803466796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 252.98043823242188, - 352.0606689453125, - 262.9803466796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "4. E. Yu. Zarubina, L. V. Yanygina, O. S. Burmistro-", - "origin": [ - 318.6110534667969, - 335.1690673828125 - ], - "bbox": [ - 318.6110534667969, - 265.7102966308594, - 554.0384521484375, - 275.710205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.6110534667969, - 265.7102966308594, - 554.0384521484375, - 275.710205078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "va, E. Yu. Mitrofanova, A. V. Kotovshchikov, and", - "origin": [ - 330.1209411621094, - 345.36895751953125 - ], - "bbox": [ - 330.1209411621094, - 275.9101867675781, - 554.0184326171875, - 285.91009521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 275.9101867675781, - 554.0184326171875, - 285.91009521484375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "G. V. Kim, Polzunovskii Vestnik, No. 2, 201 (2005).", - "origin": [ - 330.1209411621094, - 355.56884765625 - ], - "bbox": [ - 330.1209411621094, - 286.1100769042969, - 539.7685546875, - 296.1099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 286.1100769042969, - 539.7685546875, - 296.1099853515625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "5. L. A. Dolmatova, “Hydrochemical Regime of Lake Te-", - "origin": [ - 318.6110534667969, - 368.2987060546875 - ], - "bbox": [ - 318.6110534667969, - 298.8399353027344, - 554.0283813476562, - 308.83984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.6110534667969, - 298.8399353027344, - 554.0283813476562, - 308.83984375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "letskoye,” in", - "origin": [ - 330.1209411621094, - 378.49859619140625 - ], - "bbox": [ - 330.1209411621094, - 309.0398254394531, - 380.2203369140625, - 319.03973388671875 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " On the State and Prospects of Development", - "origin": [ - 380.2203369140625, - 378.49859619140625 - ], - "bbox": [ - 380.2203369140625, - 370.81884765625, - 553.9884033203125, - 380.8187561035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 309.0398254394531, - 553.9884033203125, - 380.8187561035156 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "of Network of Specially Protected Natural Territories in", - "origin": [ - 330.1209411621094, - 388.698486328125 - ], - "bbox": [ - 330.1209411621094, - 381.01873779296875, - 554.0582885742188, - 391.0186462402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 381.01873779296875, - 554.0582885742188, - 391.0186462402344 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Altai Republic (Yailyu, Gorno-Altaisk, September 20–", - "origin": [ - 330.1209411621094, - 398.89837646484375 - ], - "bbox": [ - 330.1209411621094, - 391.2186279296875, - 553.9583129882812, - 401.2185363769531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 391.2186279296875, - 553.9583129882812, - 401.2185363769531 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "23, 2007): Proceedings", - "origin": [ - 330.1209411621094, - 409.0982666015625 - ], - "bbox": [ - 330.1209411621094, - 401.41851806640625, - 427.0997619628906, - 411.4184265136719 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (PANI, Gorno-Altaisk, 2008),", - "origin": [ - 427.0997619628906, - 409.0982666015625 - ], - "bbox": [ - 427.0997619628906, - 339.6394958496094, - 553.8886108398438, - 349.639404296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 339.6394958496094, - 553.8886108398438, - 411.4184265136719 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "pp. 72–80 [in Russian].", - "origin": [ - 330.1209411621094, - 419.29815673828125 - ], - "bbox": [ - 330.1209411621094, - 349.8393859863281, - 423.72979736328125, - 359.83929443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 349.8393859863281, - 423.72979736328125, - 359.83929443359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "6. O P. Oksiyuk and O. A. Davydov, “Methods of Estima-", - "origin": [ - 318.6110534667969, - 432.02801513671875 - ], - "bbox": [ - 318.6110534667969, - 362.5692443847656, - 554.0383911132812, - 372.56915283203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.6110534667969, - 362.5692443847656, - 554.0383911132812, - 372.56915283203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion of Ecological State of Water Objects by Micro-", - "origin": [ - 330.1209411621094, - 442.2279052734375 - ], - "bbox": [ - 330.1209411621094, - 372.7691345214844, - 554.0283813476562, - 382.76904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 372.7691345214844, - 554.0283813476562, - 382.76904296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "phytobenthos,” Gidrobiologicheskii Zh.", - "origin": [ - 330.1209411621094, - 452.6077880859375 - ], - "bbox": [ - 330.1209411621094, - 383.1490173339844, - 498.73895263671875, - 393.14892578125 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 42", - "origin": [ - 498.73895263671875, - 452.6077880859375 - ], - "bbox": [ - 498.73895263671875, - 444.8909606933594, - 515.7490844726562, - 454.890869140625 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (2), 98", - "origin": [ - 515.7490844726562, - 452.6077880859375 - ], - "bbox": [ - 515.7490844726562, - 383.1490173339844, - 553.9986572265625, - 393.14892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 383.1490173339844, - 553.9986572265625, - 454.890869140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(2006).", - "origin": [ - 330.12091064453125, - 462.80767822265625 - ], - "bbox": [ - 330.12091064453125, - 393.3489074707031, - 359.2805480957031, - 403.34881591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.12091064453125, - 393.3489074707031, - 359.2805480957031, - 403.34881591796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "7. N. N. Voronikhin, “Microphytobenthos of Lake Telets-", - "origin": [ - 318.61102294921875, - 475.53753662109375 - ], - "bbox": [ - 318.61102294921875, - 406.0787658691406, - 554.0286865234375, - 416.07867431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.61102294921875, - 406.0787658691406, - 554.0286865234375, - 416.07867431640625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "koye and Some Tributaries,” in", - "origin": [ - 330.1209411621094, - 485.7374267578125 - ], - "bbox": [ - 330.1209411621094, - 416.2786560058594, - 453.84942626953125, - 426.278564453125 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Spore Plants: Collection", - "origin": [ - 453.84942626953125, - 485.7374267578125 - ], - "bbox": [ - 453.84942626953125, - 478.05767822265625, - 554.1185302734375, - 488.0575866699219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 416.2786560058594, - 554.1185302734375, - 488.0575866699219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "of Papers", - "origin": [ - 330.1209716796875, - 495.93731689453125 - ], - "bbox": [ - 330.1209716796875, - 488.257568359375, - 368.3804931640625, - 498.2574768066406 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by V. P. Savich (Izd. AN SSSR, Moscow,", - "origin": [ - 368.43060302734375, - 495.93731689453125 - ], - "bbox": [ - 368.43060302734375, - 426.4785461425781, - 554.03857421875, - 436.47845458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 426.4785461425781, - 554.03857421875, - 498.2574768066406 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "1940), Issue 4, pp. 237–245 [in Russian].", - "origin": [ - 330.1209716796875, - 506.13720703125 - ], - "bbox": [ - 330.1209716796875, - 436.6784362792969, - 495.10894775390625, - 446.6783447265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 436.6784362792969, - 495.10894775390625, - 446.6783447265625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "8. V. S. Poretskii and V. S. Sheshukova, “Diatoms of Lake", - "origin": [ - 318.611083984375, - 518.8670654296875 - ], - "bbox": [ - 318.611083984375, - 449.4082946777344, - 554.0282592773438, - 459.408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.611083984375, - 449.4082946777344, - 554.0282592773438, - 459.408203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Teletskoye and Related Rivers,” in", - "origin": [ - 330.1209716796875, - 529.0669555664062 - ], - "bbox": [ - 330.1209716796875, - 459.6081848144531, - 469.769287109375, - 469.60809326171875 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Diatoms Collection:", - "origin": [ - 469.769287109375, - 529.0669555664062 - ], - "bbox": [ - 469.769287109375, - 521.38720703125, - 554.07861328125, - 531.3871459960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 459.6081848144531, - 554.07861328125, - 531.3871459960938 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Collection of Papers of Leningrad State University", - "origin": [ - 330.1209716796875, - 539.266845703125 - ], - "bbox": [ - 330.1209716796875, - 531.5870971679688, - 552.1183471679688, - 541.5870361328125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ",", - "origin": [ - 551.5387573242188, - 539.266845703125 - ], - "bbox": [ - 551.5387573242188, - 469.8080749511719, - 554.0387573242188, - 479.8079833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 469.8080749511719, - 554.0387573242188, - 541.5870361328125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Ed. by A. I. Proshkina-Lavrenko and V. S. Sheshukova", - "origin": [ - 330.1209716796875, - 549.4667358398438 - ], - "bbox": [ - 330.1209716796875, - 480.0079650878906, - 553.8783569335938, - 490.00787353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 480.0079650878906, - 553.8783569335938, - 490.00787353515625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(Leningrad. Gos. Univ., Leningrad, 1953), pp. 107–172", - "origin": [ - 330.1209716796875, - 559.6666259765625 - ], - "bbox": [ - 330.1209716796875, - 490.2078552246094, - 553.8383178710938, - 500.207763671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 490.2078552246094, - 553.8383178710938, - 500.207763671875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[in Russian].", - "origin": [ - 330.1209716796875, - 569.8665161132812 - ], - "bbox": [ - 330.1209716796875, - 500.4077453613281, - 381.2303466796875, - 510.40765380859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209716796875, - 500.4077453613281, - 381.2303466796875, - 510.40765380859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "9. V. A. Abakumov (Ed.),", - "origin": [ - 318.611083984375, - 582.5963745117188 - ], - "bbox": [ - 318.611083984375, - 513.1376342773438, - 422.3299560546875, - 523.1375122070312 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Guide to Hydrobiological Moni-", - "origin": [ - 422.3299560546875, - 582.5963745117188 - ], - "bbox": [ - 422.3299560546875, - 574.9166259765625, - 554.0286865234375, - 584.9165649414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.611083984375, - 513.1376342773438, - 554.0286865234375, - 584.9165649414062 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "toring of Fresh-Water Ecosystems", - "origin": [ - 330.1209411621094, - 592.7962646484375 - ], - "bbox": [ - 330.1209411621094, - 585.1165161132812, - 475.3792724609375, - 595.116455078125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Gidrometeoizdat,", - "origin": [ - 475.3792724609375, - 592.7962646484375 - ], - "bbox": [ - 475.3792724609375, - 523.3375244140625, - 554.1085815429688, - 533.33740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 523.3375244140625, - 554.1085815429688, - 595.116455078125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "St. Petersburg, 1992) [in Russian].", - "origin": [ - 330.1209411621094, - 602.9962158203125 - ], - "bbox": [ - 330.1209411621094, - 533.5374755859375, - 468.0792541503906, - 543.537353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 533.5374755859375, - 468.0792541503906, - 543.537353515625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "10. K. K. Votintsev, A. I. Meshcheryakova, and G. I. Popov-", - "origin": [ - 313.58111572265625, - 615.72607421875 - ], - "bbox": [ - 313.58111572265625, - 546.267333984375, - 554.0286865234375, - 556.2672119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.58111572265625, - 546.267333984375, - 554.0286865234375, - 556.2672119140625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "skaya, “Primary Production,” in", - "origin": [ - 330.1209411621094, - 625.9259643554688 - ], - "bbox": [ - 330.1209411621094, - 556.4672241210938, - 464.71929931640625, - 566.4671020507812 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Problems of Baikal:", - "origin": [ - 464.71929931640625, - 625.9259643554688 - ], - "bbox": [ - 464.71929931640625, - 618.2462158203125, - 554.028564453125, - 628.2461547851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 556.4672241210938, - 554.028564453125, - 628.2461547851562 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Collection of Papers of SB AS USSR; Limnological Insti-", - "origin": [ - 330.1209411621094, - 636.1258544921875 - ], - "bbox": [ - 330.1209411621094, - 628.4461059570312, - 554.0286865234375, - 638.446044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 628.4461059570312, - 554.0286865234375, - 638.446044921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "tute", - "origin": [ - 330.1209411621094, - 646.3257446289062 - ], - "bbox": [ - 330.1209411621094, - 638.64599609375, - 345.1207580566406, - 648.6459350585938 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by G. I. Galazii et al. (Nauka, Siberian Branch,", - "origin": [ - 345.0907897949219, - 646.3257446289062 - ], - "bbox": [ - 345.0907897949219, - 576.8670043945312, - 554.0084228515625, - 586.8668823242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 576.8670043945312, - 554.0084228515625, - 648.6459350585938 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Novosibirsk, 1978), pp. 169–179 [in Russian].", - "origin": [ - 330.1209411621094, - 656.525634765625 - ], - "bbox": [ - 330.1209411621094, - 587.06689453125, - 515.94873046875, - 597.0667724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 587.06689453125, - 515.94873046875, - 597.0667724609375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "11. L. E. Komarenko and I. I. Vasil’eva,", - "origin": [ - 313.58111572265625, - 669.2554931640625 - ], - "bbox": [ - 313.58111572265625, - 599.7967529296875, - 479.4192199707031, - 609.796630859375 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Fresh-Water Dia-", - "origin": [ - 479.4192199707031, - 669.2554931640625 - ], - "bbox": [ - 479.4192199707031, - 661.5757446289062, - 554.0286865234375, - 671.57568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.58111572265625, - 599.7967529296875, - 554.0286865234375, - 671.57568359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "toms and Blue-Green Algae in the Water Bodies of Yaku-", - "origin": [ - 330.1209411621094, - 679.4553833007812 - ], - "bbox": [ - 330.1209411621094, - 671.7656860351562, - 554.0286865234375, - 681.7755737304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 671.7656860351562, - 554.0286865234375, - 681.7755737304688 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "tia", - "origin": [ - 330.1209411621094, - 689.6453247070312 - ], - "bbox": [ - 330.1209411621094, - 681.965576171875, - 340.6808166503906, - 691.9655151367188 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Nauka, Moscow, 1975) [in Russian].", - "origin": [ - 340.6808166503906, - 689.6453247070312 - ], - "bbox": [ - 340.6808166503906, - 620.1865844726562, - 493.4890441894531, - 630.1864624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1209411621094, - 620.1865844726562, - 493.4890441894531, - 691.9655151367188 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "12. A. E. Ergashev,", - "origin": [ - 313.57110595703125, - 702.3751831054688 - ], - "bbox": [ - 313.57110595703125, - 632.9164428710938, - 393.6201477050781, - 642.9163208007812 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Guide to Protococcic Algae of Central", - "origin": [ - 393.6201477050781, - 702.3751831054688 - ], - "bbox": [ - 393.6201477050781, - 694.6954345703125, - 554.0584106445312, - 704.6953735351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.57110595703125, - 632.9164428710938, - 554.0584106445312, - 704.6953735351562 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Asia. Tetrasporales and Chlorococcales", - "origin": [ - 330.1109619140625, - 712.5750732421875 - ], - "bbox": [ - 330.1109619140625, - 704.8953247070312, - 489.81903076171875, - 714.895263671875 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Fan, Tashkent,", - "origin": [ - 489.81903076171875, - 712.5750732421875 - ], - "bbox": [ - 489.81903076171875, - 643.1163330078125, - 553.9886474609375, - 653.1162109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1109619140625, - 643.1163330078125, - 553.9886474609375, - 714.895263671875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "1979) [in Russian].", - "origin": [ - 330.1109619140625, - 722.7749633789062 - ], - "bbox": [ - 330.1109619140625, - 653.3162231445312, - 407.0500183105469, - 663.3161010742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1109619140625, - 653.3162231445312, - 407.0500183105469, - 663.3161010742188 - ] - } - ], - "tag": "footer" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 269.92181396484375, - 748.1763916015625 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.92181396484375, - 685.66357421875, - 539.8466186523438, - 694.6634521484375 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 5, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_6": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 3, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 685.66357421875, - 612.0, - 694.6634521484375 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 58.43450164794922, - -2.5659408569335938, - 299.0421142578125, - 467.51153564453125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13. A. E. Ergashev,", - "origin": [ - 58.43450164794922, - 66.892822265625 - ], - "bbox": [ - 58.43450164794922, - -2.5659408569335938, - 138.48370361328125, - 7.433952331542969 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Guide to Protococcic Algae of Central", - "origin": [ - 138.48370361328125, - 66.892822265625 - ], - "bbox": [ - 138.48370361328125, - 59.21308517456055, - 298.9220275878906, - 69.21298217773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43450164794922, - -2.5659408569335938, - 298.9220275878906, - 69.21298217773438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Asia. Chlorococcales", - "origin": [ - 74.97433471679688, - 77.09271240234375 - ], - "bbox": [ - 74.97433471679688, - 69.41297149658203, - 162.40345764160156, - 79.41287231445312 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Fan, Tashkent, 1979) [in Rus-", - "origin": [ - 162.40345764160156, - 77.09271240234375 - ], - "bbox": [ - 162.40345764160156, - 7.633949279785156, - 298.89208984375, - 17.64385223388672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97433471679688, - 7.633949279785156, - 298.89208984375, - 79.41287231445312 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "sian].", - "origin": [ - 74.97434997558594, - 87.3026123046875 - ], - "bbox": [ - 74.97434997558594, - 17.843849182128906, - 96.91413116455078, - 27.84374237060547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97434997558594, - 17.843849182128906, - 96.91413116455078, - 27.84374237060547 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "14. S. S. Barinova, L. A. Medvedeva, and O. V. Anisimova,", - "origin": [ - 58.43451690673828, - 99.5224609375 - ], - "bbox": [ - 58.43451690673828, - 30.063697814941406, - 298.9420471191406, - 40.06359100341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43451690673828, - 30.063697814941406, - 298.9420471191406, - 40.06359100341797 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Biodiversity of Algae-Indicators of Environment", - "origin": [ - 74.97434997558594, - 109.72235107421875 - ], - "bbox": [ - 74.97434997558594, - 102.04261016845703, - 271.0724182128906, - 112.04251098632812 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Insti-", - "origin": [ - 271.0724182128906, - 109.72235107421875 - ], - "bbox": [ - 271.0724182128906, - 40.263587951660156, - 298.8921203613281, - 50.27349090576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97434997558594, - 40.263587951660156, - 298.8921203613281, - 112.04251098632812 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tute of Evolution, University of Haifa, Tel-Aviv, 2006)", - "origin": [ - 74.97438049316406, - 119.9322509765625 - ], - "bbox": [ - 74.97438049316406, - 50.473487854003906, - 298.7720947265625, - 60.47338104248047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97438049316406, - 50.473487854003906, - 298.7720947265625, - 60.47338104248047 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[in Russian].", - "origin": [ - 74.97438049316406, - 130.13214111328125 - ], - "bbox": [ - 74.97438049316406, - 60.673377990722656, - 126.08386993408203, - 70.67327117919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97438049316406, - 60.673377990722656, - 126.08386993408203, - 70.67327117919922 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "15.", - "origin": [ - 58.434547424316406, - 142.35198974609375 - ], - "bbox": [ - 58.434547424316406, - 72.89322662353516, - 70.9344253540039, - 82.89311981201172 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Phytoplankton of Lowe Volga. Water Reservoirs and", - "origin": [ - 70.9344253540039, - 142.35198974609375 - ], - "bbox": [ - 70.9344253540039, - 134.67225646972656, - 298.8021240234375, - 144.67214965820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.434547424316406, - 72.89322662353516, - 298.8021240234375, - 144.67214965820312 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Lower Course of the River", - "origin": [ - 74.97438049316406, - 152.5518798828125 - ], - "bbox": [ - 74.97438049316406, - 144.8721466064453, - 179.7133331298828, - 154.87203979492188 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by I. S. Trifonov (Nauka,", - "origin": [ - 178.53334045410156, - 152.5518798828125 - ], - "bbox": [ - 178.53334045410156, - 83.0931167602539, - 298.80206298828125, - 93.09300994873047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97438049316406, - 83.0931167602539, - 298.80206298828125, - 154.87203979492188 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "St. Petersburg, 2003) [in Russian].", - "origin": [ - 74.97438049316406, - 162.75177001953125 - ], - "bbox": [ - 74.97438049316406, - 93.29300689697266, - 212.93299865722656, - 103.29290008544922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97438049316406, - 93.29300689697266, - 212.93299865722656, - 103.29290008544922 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "16.", - "origin": [ - 58.434547424316406, - 174.97161865234375 - ], - "bbox": [ - 58.434547424316406, - 105.51285552978516, - 70.9344253540039, - 115.51274871826172 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Ecological Problems of the Upper Volga", - "origin": [ - 70.9344253540039, - 174.97161865234375 - ], - "bbox": [ - 70.9344253540039, - 167.29188537597656, - 258.9625549316406, - 177.29177856445312 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by", - "origin": [ - 259.04254150390625, - 174.97161865234375 - ], - "bbox": [ - 259.04254150390625, - 105.51285552978516, - 298.9020690917969, - 115.51274871826172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.434547424316406, - 105.51285552978516, - 298.9020690917969, - 177.29177856445312 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "A. I. Kopylov (YaGTU, Yaroslavl, 2001) [in Russian].", - "origin": [ - 74.97439575195312, - 185.1715087890625 - ], - "bbox": [ - 74.97439575195312, - 115.7127456665039, - 295.22210693359375, - 125.71263885498047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97439575195312, - 115.7127456665039, - 295.22210693359375, - 125.71263885498047 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "17. L. A. Izhboldina, “Phytobenthos (Macrophytes) of Litto-", - "origin": [ - 58.43456268310547, - 197.391357421875 - ], - "bbox": [ - 58.43456268310547, - 127.9325942993164, - 298.89215087890625, - 137.9324951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43456268310547, - 127.9325942993164, - 298.89215087890625, - 137.9324951171875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ral and Sublittoral of Open Shores of South Baikal,”", - "origin": [ - 74.97441101074219, - 207.59124755859375 - ], - "bbox": [ - 74.97441101074219, - 138.13247680664062, - 298.9521179199219, - 148.13238525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 138.13247680664062, - 298.9521179199219, - 148.13238525390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Candidate’s Dissertation in Biology (Irkutsk, 1971).", - "origin": [ - 74.97441101074219, - 217.7911376953125 - ], - "bbox": [ - 74.97441101074219, - 148.33236694335938, - 283.0522766113281, - 158.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 148.33236694335938, - 283.0522766113281, - 158.332275390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "18. M. A. Rychkova, “Periphyton of Littoral Zone of Lake", - "origin": [ - 58.43457794189453, - 230.010986328125 - ], - "bbox": [ - 58.43457794189453, - 160.55221557617188, - 298.88214111328125, - 170.5521240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43457794189453, - 160.55221557617188, - 298.88214111328125, - 170.5521240234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Onega,” in", - "origin": [ - 74.97441101074219, - 240.21087646484375 - ], - "bbox": [ - 74.97441101074219, - 170.75210571289062, - 120.64395141601562, - 180.75201416015625 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Littoral Zone of Lake Onega: Collection", - "origin": [ - 120.64395141601562, - 240.21087646484375 - ], - "bbox": [ - 120.64395141601562, - 232.53114318847656, - 298.9621276855469, - 242.53103637695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 170.75210571289062, - 298.9621276855469, - 242.53103637695312 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "of Papers", - "origin": [ - 74.97441101074219, - 250.4107666015625 - ], - "bbox": [ - 74.97441101074219, - 242.7310333251953, - 114.64401245117188, - 252.73092651367188 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by I. M. Raspopov (Nauka, Leningrad,", - "origin": [ - 114.70401000976562, - 250.4107666015625 - ], - "bbox": [ - 114.70401000976562, - 180.95199584960938, - 298.8020935058594, - 190.951904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 180.95199584960938, - 298.8020935058594, - 252.73092651367188 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "1975), pp. 123–137 [in Russian].", - "origin": [ - 74.97441101074219, - 260.61065673828125 - ], - "bbox": [ - 74.97441101074219, - 191.15188598632812, - 206.91310119628906, - 201.15179443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 191.15188598632812, - 206.91310119628906, - 201.15179443359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "19. M. A. Rychkova, “Role of Dynamics of Water in Forma-", - "origin": [ - 58.43457794189453, - 272.83050537109375 - ], - "bbox": [ - 58.43457794189453, - 203.37173461914062, - 298.89215087890625, - 213.37164306640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43457794189453, - 203.37173461914062, - 298.89215087890625, - 213.37164306640625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion", - "origin": [ - 74.98440551757812, - 283.0303955078125 - ], - "bbox": [ - 74.98440551757812, - 213.57162475585938, - 90.54425048828125, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 213.57162475585938, - 90.54425048828125, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of", - "origin": [ - 98.69416809082031, - 283.0303955078125 - ], - "bbox": [ - 98.69416809082031, - 213.57162475585938, - 107.02407836914062, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.69416809082031, - 213.57162475585938, - 107.02407836914062, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Epiphytic", - "origin": [ - 115.21399688720703, - 283.0303955078125 - ], - "bbox": [ - 115.21399688720703, - 213.57162475585938, - 154.10360717773438, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 115.21399688720703, - 213.57162475585938, - 154.10360717773438, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Algae", - "origin": [ - 162.21353149414062, - 283.0303955078125 - ], - "bbox": [ - 162.21353149414062, - 213.57162475585938, - 186.09329223632812, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.21353149414062, - 213.57162475585938, - 186.09329223632812, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Communities in", - "origin": [ - 194.2432098388672, - 283.0303955078125 - ], - "bbox": [ - 194.2432098388672, - 213.57162475585938, - 263.8125, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.2432098388672, - 213.57162475585938, - 263.8125, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake,”", - "origin": [ - 271.9624328613281, - 283.0303955078125 - ], - "bbox": [ - 271.9624328613281, - 213.57162475585938, - 298.89208984375, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.9624328613281, - 213.57162475585938, - 298.89208984375, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Gidrobiologicheskii Zh.", - "origin": [ - 74.98440551757812, - 293.4102783203125 - ], - "bbox": [ - 74.98440551757812, - 223.95150756835938, - 171.0934295654297, - 233.951416015625 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 25", - "origin": [ - 171.0934295654297, - 293.4102783203125 - ], - "bbox": [ - 171.0934295654297, - 285.6934509277344, - 183.7833251953125, - 295.693359375 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (3), 8 (1989).", - "origin": [ - 183.7833251953125, - 293.4102783203125 - ], - "bbox": [ - 183.7833251953125, - 223.95150756835938, - 239.6827850341797, - 233.951416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 223.95150756835938, - 239.6827850341797, - 295.693359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "20. A. P. Skabichevskii, “Main Characteristics of Distribu-", - "origin": [ - 58.444580078125, - 305.6301574707031 - ], - "bbox": [ - 58.444580078125, - 236.17138671875, - 298.90216064453125, - 246.17129516601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.444580078125, - 236.17138671875, - 298.90216064453125, - 246.17129516601562 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion of Bottom (Algae) Vegetation of Baikal and Meth-", - "origin": [ - 74.98442077636719, - 315.8300476074219 - ], - "bbox": [ - 74.98442077636719, - 246.37127685546875, - 298.90216064453125, - 256.3711853027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98442077636719, - 246.37127685546875, - 298.90216064453125, - 256.3711853027344 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ods of Studying its Productivity,” in", - "origin": [ - 74.98442077636719, - 326.0299377441406 - ], - "bbox": [ - 74.98442077636719, - 256.5711669921875, - 217.38299560546875, - 266.5710754394531 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Cycle of Matter and", - "origin": [ - 217.38299560546875, - 326.0299377441406 - ], - "bbox": [ - 217.38299560546875, - 318.3501892089844, - 298.8321228027344, - 328.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98442077636719, - 256.5711669921875, - 298.8321228027344, - 328.35009765625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Energy in Water Bodies: Collection of Papers", - "origin": [ - 74.98442077636719, - 336.2298278808594 - ], - "bbox": [ - 74.98442077636719, - 328.5500793457031, - 265.3125, - 338.54998779296875 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by", - "origin": [ - 265.38250732421875, - 336.2298278808594 - ], - "bbox": [ - 265.38250732421875, - 266.77105712890625, - 298.9220886230469, - 276.7709655761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98442077636719, - 266.77105712890625, - 298.9220886230469, - 338.54998779296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "G. I. Galazii and K. K. Votintsev (Nauka, Siberian", - "origin": [ - 74.98440551757812, - 346.4297180175781 - ], - "bbox": [ - 74.98440551757812, - 276.970947265625, - 298.882080078125, - 286.9708557128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 276.970947265625, - 298.882080078125, - 286.9708557128906 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Branch, Novosibirsk, 1975), pp. 102–107 [in Russian].", - "origin": [ - 74.98440551757812, - 356.6296081542969 - ], - "bbox": [ - 74.98440551757812, - 287.17083740234375, - 294.692138671875, - 297.1707458496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 287.17083740234375, - 294.692138671875, - 297.1707458496094 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "21. L. Hakanson and V. V. Boulion, “Empirical and Dynami-", - "origin": [ - 58.44457244873047, - 368.8494873046875 - ], - "bbox": [ - 58.44457244873047, - 299.3907165527344, - 298.89208984375, - 309.390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.44457244873047, - 299.3907165527344, - 298.89208984375, - 309.390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cal Models of Production and Biomass of Benthic Algae", - "origin": [ - 74.98440551757812, - 379.04937744140625 - ], - "bbox": [ - 74.98440551757812, - 309.5906066894531, - 298.89215087890625, - 319.59051513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 309.5906066894531, - 298.89215087890625, - 319.59051513671875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "in Lakes,” Hydrobiologia", - "origin": [ - 74.98440551757812, - 389.42926025390625 - ], - "bbox": [ - 74.98440551757812, - 319.9704895019531, - 176.9134063720703, - 329.97039794921875 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 522", - "origin": [ - 176.9134063720703, - 389.42926025390625 - ], - "bbox": [ - 176.9134063720703, - 381.7124328613281, - 194.5932159423828, - 391.71234130859375 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", 75 (2004).", - "origin": [ - 194.68319702148438, - 389.42926025390625 - ], - "bbox": [ - 194.68319702148438, - 319.9704895019531, - 241.34274291992188, - 329.97039794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 319.9704895019531, - 241.34274291992188, - 391.71234130859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "22. G. Jonsson, “Photosynthesis and Production of Epilithic", - "origin": [ - 58.43455505371094, - 401.6491394042969 - ], - "bbox": [ - 58.43455505371094, - 332.19036865234375, - 298.97210693359375, - 342.1902770996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43455505371094, - 332.19036865234375, - 298.97210693359375, - 342.1902770996094 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Algal Communities in Thingvallavatn,” OICOS", - "origin": [ - 74.9743881225586, - 412.0290222167969 - ], - "bbox": [ - 74.9743881225586, - 342.57025146484375, - 266.1824951171875, - 352.5701599121094 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 64", - "origin": [ - 266.1824951171875, - 412.0290222167969 - ], - "bbox": [ - 266.1824951171875, - 404.31219482421875, - 278.7423400878906, - 414.3121032714844 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", 222", - "origin": [ - 278.8023681640625, - 412.0290222167969 - ], - "bbox": [ - 278.8023681640625, - 342.57025146484375, - 298.8221435546875, - 352.5701599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.9743881225586, - 342.57025146484375, - 298.8221435546875, - 414.3121032714844 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(1992).", - "origin": [ - 74.97441101074219, - 422.2289123535156 - ], - "bbox": [ - 74.97441101074219, - 352.7701416015625, - 104.13410186767578, - 362.7700500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 352.7701416015625, - 104.13410186767578, - 362.7700500488281 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "23. M. Kahlert, A. Hasselrot, H. Hillebrant, and K. Pet-", - "origin": [ - 58.43457794189453, - 434.44879150390625 - ], - "bbox": [ - 58.43457794189453, - 364.9900207519531, - 298.9021301269531, - 374.98992919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43457794189453, - 364.9900207519531, - 298.9021301269531, - 374.98992919921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tersson, “Spatial and Temporal Variation in the Biomass", - "origin": [ - 74.97441101074219, - 444.648681640625 - ], - "bbox": [ - 74.97441101074219, - 375.1899108886719, - 299.0421142578125, - 385.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 375.1899108886719, - 299.0421142578125, - 385.1898193359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and Nutrient Status of Epilithic Algae in Lake Erken,", - "origin": [ - 74.97441101074219, - 454.84857177734375 - ], - "bbox": [ - 74.97441101074219, - 385.3898010253906, - 298.83209228515625, - 395.38970947265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 385.3898010253906, - 298.83209228515625, - 395.38970947265625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Sweden,” Freshwater Biology", - "origin": [ - 74.97441101074219, - 465.22845458984375 - ], - "bbox": [ - 74.97441101074219, - 395.7696838378906, - 195.23321533203125, - 405.76959228515625 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 47", - "origin": [ - 195.23321533203125, - 465.22845458984375 - ], - "bbox": [ - 195.23321533203125, - 457.5116271972656, - 207.9130859375, - 467.51153564453125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", 1191 (2002).", - "origin": [ - 207.97308349609375, - 465.22845458984375 - ], - "bbox": [ - 207.97308349609375, - 395.7696838378906, - 264.33251953125, - 405.76959228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 395.7696838378906, - 264.33251953125, - 467.51153564453125 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 313.5520324707031, - -2.5263290405273438, - 554.0892944335938, - 467.32135009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "24. M. Kumagai, K. Ishikawa, and J. Chunmeng, “Dynamics", - "origin": [ - 313.5520324707031, - 66.93243408203125 - ], - "bbox": [ - 313.5520324707031, - -2.5263290405273438, - 554.0892944335938, - 7.473564147949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.5520324707031, - -2.5263290405273438, - 554.0892944335938, - 7.473564147949219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and Biogeochemical Significance of the Physical Envi-", - "origin": [ - 330.09185791015625, - 77.13232421875 - ], - "bbox": [ - 330.09185791015625, - 7.673561096191406, - 553.9996337890625, - 17.68346405029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.09185791015625, - 7.673561096191406, - 553.9996337890625, - 17.68346405029297 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ronment in Lake Biwa,” Lakes & Reservoirs: Research", - "origin": [ - 330.0918884277344, - 87.34222412109375 - ], - "bbox": [ - 330.0918884277344, - 17.883460998535156, - 554.0192260742188, - 27.88335418701172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 17.883460998535156, - 554.0192260742188, - 27.88335418701172 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and Management", - "origin": [ - 330.0918884277344, - 97.72210693359375 - ], - "bbox": [ - 330.0918884277344, - 28.263343811035156, - 399.2410888671875, - 38.26323699951172 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 7", - "origin": [ - 399.2410888671875, - 97.72210693359375 - ], - "bbox": [ - 399.2410888671875, - 90.00528717041016, - 406.71112060546875, - 100.00518798828125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", 345 (2002).", - "origin": [ - 406.7411193847656, - 97.72210693359375 - ], - "bbox": [ - 406.7411193847656, - 28.263343811035156, - 458.4004821777344, - 38.26323699951172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 28.263343811035156, - 458.4004821777344, - 100.00518798828125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "25. V. N. Nikulina, “Phytofouling in Ilem-Gorskaya Bay of", - "origin": [ - 313.55206298828125, - 110.1619873046875 - ], - "bbox": [ - 313.55206298828125, - 40.703224182128906, - 553.9793090820312, - 50.70311737060547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.55206298828125, - 40.703224182128906, - 553.9793090820312, - 50.70311737060547 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake Onega,” in:", - "origin": [ - 330.0918884277344, - 120.36187744140625 - ], - "bbox": [ - 330.0918884277344, - 50.903114318847656, - 398.0810852050781, - 60.90300750732422 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Limnological Studies in the Big Onego", - "origin": [ - 398.0810852050781, - 120.36187744140625 - ], - "bbox": [ - 398.0810852050781, - 112.68213653564453, - 553.9193725585938, - 122.68203735351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 50.903114318847656, - 553.9193725585938, - 122.68203735351562 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Bay of Lake Onega", - "origin": [ - 330.0919189453125, - 130.561767578125 - ], - "bbox": [ - 330.0919189453125, - 122.88202667236328, - 407.301025390625, - 132.88192749023438 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Zoological Institute AS USSR, Le-", - "origin": [ - 407.301025390625, - 130.561767578125 - ], - "bbox": [ - 407.301025390625, - 61.103004455566406, - 553.9996337890625, - 71.10289764404297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0919189453125, - 61.103004455566406, - 553.9996337890625, - 132.88192749023438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ningrad, 1982), pp. 109–114 [in Russian].", - "origin": [ - 330.0918884277344, - 140.76165771484375 - ], - "bbox": [ - 330.0918884277344, - 71.30289459228516, - 497.76983642578125, - 81.30278778076172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 71.30289459228516, - 497.76983642578125, - 81.30278778076172 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "26. T. A. Makarevich, “Estimation of Biomass of Epiphyton", - "origin": [ - 313.55206298828125, - 153.2015380859375 - ], - "bbox": [ - 313.55206298828125, - 83.7427749633789, - 553.9492797851562, - 93.74266815185547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.55206298828125, - 83.7427749633789, - 553.9492797851562, - 93.74266815185547 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on Different Types of Macrophytes in Mesotrophic", - "origin": [ - 330.0918884277344, - 163.40142822265625 - ], - "bbox": [ - 330.0918884277344, - 93.94266510009766, - 553.979248046875, - 103.94255828857422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 93.94266510009766, - 553.979248046875, - 103.94255828857422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake,” in", - "origin": [ - 330.0918884277344, - 173.601318359375 - ], - "bbox": [ - 330.0918884277344, - 104.1425552368164, - 370.23138427734375, - 114.14244842529297 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Results and Prospects of Hydrobiological", - "origin": [ - 370.23138427734375, - 173.601318359375 - ], - "bbox": [ - 370.23138427734375, - 165.9215850830078, - 553.9593505859375, - 175.92147827148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 104.1425552368164, - 553.9593505859375, - 175.92147827148438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Studies in Belorussia", - "origin": [ - 330.0918884277344, - 183.80120849609375 - ], - "bbox": [ - 330.0918884277344, - 176.12147521972656, - 414.0308837890625, - 186.12136840820312 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Institute of Zoology of AS BSSR,", - "origin": [ - 414.0308837890625, - 183.80120849609375 - ], - "bbox": [ - 414.0308837890625, - 114.34244537353516, - 554.0393676757812, - 124.34233856201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 114.34244537353516, - 554.0393676757812, - 186.12136840820312 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Minsk, 1983), pp. 123–127 [in Russian].", - "origin": [ - 330.0918884277344, - 194.0010986328125 - ], - "bbox": [ - 330.0918884277344, - 124.5423355102539, - 492.5899353027344, - 134.542236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 124.5423355102539, - 492.5899353027344, - 134.542236328125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "27. T. A. Makarevich, A. P. Ostapenya, and T. M. Mikheeva,", - "origin": [ - 313.55206298828125, - 206.44097900390625 - ], - "bbox": [ - 313.55206298828125, - 136.98220825195312, - 553.9993286132812, - 146.98211669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.55206298828125, - 136.98220825195312, - 553.9993286132812, - 146.98211669921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "“Express-Method of Estimate of Growth Rate and Pro-", - "origin": [ - 330.0918884277344, - 216.640869140625 - ], - "bbox": [ - 330.0918884277344, - 147.18209838867188, - 553.9996337890625, - 157.1820068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 147.18209838867188, - 553.9996337890625, - 157.1820068359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "duction Characteristics of Periphyton,” Gidrobiologi-", - "origin": [ - 330.0918884277344, - 226.84075927734375 - ], - "bbox": [ - 330.0918884277344, - 157.38198852539062, - 553.9996337890625, - 167.38189697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 157.38198852539062, - 553.9996337890625, - 167.38189697265625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cheskii Zh.", - "origin": [ - 330.0918884277344, - 237.22064208984375 - ], - "bbox": [ - 330.0918884277344, - 167.76187133789062, - 374.5313415527344, - 177.76177978515625 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 23", - "origin": [ - 374.5313415527344, - 237.22064208984375 - ], - "bbox": [ - 374.5313415527344, - 229.5038299560547, - 387.1012878417969, - 239.50372314453125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (4), 76 (1987).", - "origin": [ - 387.1012878417969, - 237.22064208984375 - ], - "bbox": [ - 387.1012878417969, - 167.76187133789062, - 448.00054931640625, - 177.76177978515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 167.76187133789062, - 448.00054931640625, - 239.50372314453125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "28. N. E. Votyakova, “Phytobenthos of Water Bodies of", - "origin": [ - 313.5620422363281, - 249.6605224609375 - ], - "bbox": [ - 313.5620422363281, - 180.20175170898438, - 553.9891967773438, - 190.20166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.5620422363281, - 180.20175170898438, - 553.9891967773438, - 190.20166015625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Delta of Upper Angara,” in", - "origin": [ - 330.10186767578125, - 259.86041259765625 - ], - "bbox": [ - 330.10186767578125, - 190.40164184570312, - 440.3606262207031, - 200.40155029296875 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Vegetation of River Ecosys-", - "origin": [ - 440.3606262207031, - 259.86041259765625 - ], - "bbox": [ - 440.3606262207031, - 252.18067932128906, - 554.0095825195312, - 262.1805725097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.10186767578125, - 190.40164184570312, - 554.0095825195312, - 262.1805725097656 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "tems in North Cis-Baikalia", - "origin": [ - 330.1018371582031, - 270.060302734375 - ], - "bbox": [ - 330.1018371582031, - 262.38055419921875, - 444.9305114746094, - 272.3804626464844 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Nauka, Siberian Branch", - "origin": [ - 444.9305114746094, - 270.060302734375 - ], - "bbox": [ - 444.9305114746094, - 200.60153198242188, - 553.9894409179688, - 210.6014404296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 200.60153198242188, - 553.9894409179688, - 272.3804626464844 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Novosibirsk, 1992), pp. 115–157 [in Russian].", - "origin": [ - 330.1018371582031, - 280.26019287109375 - ], - "bbox": [ - 330.1018371582031, - 210.80142211914062, - 516.0496215820312, - 220.80133056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 210.80142211914062, - 516.0496215820312, - 220.80133056640625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "29. L. V. Yanygina, M. I. Koveshnikova, E. N. Krylova, and", - "origin": [ - 313.56201171875, - 292.7000732421875 - ], - "bbox": [ - 313.56201171875, - 223.24130249023438, - 553.9793090820312, - 233.2412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.56201171875, - 223.24130249023438, - 553.9793090820312, - 233.2412109375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "K. V. Marusin, “Spatial Distribution of Zoobenthos of", - "origin": [ - 330.1018371582031, - 302.89996337890625 - ], - "bbox": [ - 330.1018371582031, - 233.44119262695312, - 553.9692993164062, - 243.44110107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 233.44119262695312, - 553.9692993164062, - 243.44110107421875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake Teletskoye,” in", - "origin": [ - 330.1018371582031, - 313.099853515625 - ], - "bbox": [ - 330.1018371582031, - 243.64108276367188, - 413.76080322265625, - 253.6409912109375 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Lake Ecosystems: Biological Pro-", - "origin": [ - 413.76080322265625, - 313.099853515625 - ], - "bbox": [ - 413.76080322265625, - 305.42010498046875, - 554.0095825195312, - 315.4200134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 243.64108276367188, - 554.0095825195312, - 315.4200134277344 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "cesses, Anthropogenic Transformation, Quality of Water", - "origin": [ - 330.1018371582031, - 323.29974365234375 - ], - "bbox": [ - 330.1018371582031, - 315.6199951171875, - 554.0191650390625, - 325.6199035644531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 315.6199951171875, - 554.0191650390625, - 325.6199035644531 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "(Minsk–Naroch, September 17–22, 2007): Proceedings", - "origin": [ - 330.1018371582031, - 333.4996337890625 - ], - "bbox": [ - 330.1018371582031, - 325.81988525390625, - 553.959228515625, - 335.8197937011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 325.81988525390625, - 553.959228515625, - 335.8197937011719 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(BGU, Minsk, 2007), p. 274 [in Russian].", - "origin": [ - 330.1018371582031, - 343.69952392578125 - ], - "bbox": [ - 330.1018371582031, - 274.2407531738281, - 497.0398864746094, - 284.24066162109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 274.2407531738281, - 497.0398864746094, - 284.24066162109375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "30. O. M. Kozhova and G. F. Zagorenko, “Vegetative Peri-", - "origin": [ - 313.56201171875, - 356.139404296875 - ], - "bbox": [ - 313.56201171875, - 286.6806335449219, - 554.00927734375, - 296.6805419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.56201171875, - 286.6806335449219, - 554.00927734375, - 296.6805419921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "phyton of Bratsk Reservoir,” Nauchnye Doklady Vys-", - "origin": [ - 330.1018371582031, - 366.33929443359375 - ], - "bbox": [ - 330.1018371582031, - 296.8805236816406, - 553.9969482421875, - 306.88043212890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 296.8805236816406, - 553.9969482421875, - 306.88043212890625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "shei Shkoly, Biologicheskie Nauki, No. 8, 50 (1968).", - "origin": [ - 330.1018371582031, - 376.5391845703125 - ], - "bbox": [ - 330.1018371582031, - 307.0804138183594, - 542.2693481445312, - 317.080322265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 307.0804138183594, - 542.2693481445312, - 317.080322265625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "31. G. V. Pomazkina, “Microphytobenthos of South Baikal,”", - "origin": [ - 313.56201171875, - 388.97906494140625 - ], - "bbox": [ - 313.56201171875, - 319.5202941894531, - 553.9892578125, - 329.52020263671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.56201171875, - 319.5202941894531, - 553.9892578125, - 329.52020263671875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Candidate’s Dissertation in Biology (Irkutsk, 2000).", - "origin": [ - 330.1018371582031, - 399.178955078125 - ], - "bbox": [ - 330.1018371582031, - 329.7201843261719, - 538.1793823242188, - 339.7200927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 329.7201843261719, - 538.1793823242188, - 339.7200927734375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "32. M. A. Rychkova, “Peryphyton of Littoral Zone,” in", - "origin": [ - 313.56201171875, - 411.61883544921875 - ], - "bbox": [ - 313.56201171875, - 342.1600646972656, - 532.5294189453125, - 352.15997314453125 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Lake", - "origin": [ - 532.5294189453125, - 411.61883544921875 - ], - "bbox": [ - 532.5294189453125, - 403.9390869140625, - 554.01953125, - 413.9389953613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.56201171875, - 342.1600646972656, - 554.01953125, - 413.9389953613281 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Ladoga: Past, Present, Future", - "origin": [ - 330.101806640625, - 421.8187255859375 - ], - "bbox": [ - 330.101806640625, - 414.13897705078125, - 455.00030517578125, - 424.1388854980469 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Nauka, St. Petersburg,", - "origin": [ - 455.00030517578125, - 421.8187255859375 - ], - "bbox": [ - 455.00030517578125, - 352.3599548339844, - 553.9894409179688, - 362.35986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.101806640625, - 352.3599548339844, - 553.9894409179688, - 424.1388854980469 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2002), pp. 246–251 [in Russian].", - "origin": [ - 330.101806640625, - 432.01861572265625 - ], - "bbox": [ - 330.101806640625, - 362.5598449707031, - 462.0401916503906, - 372.55975341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.101806640625, - 362.5598449707031, - 462.0401916503906, - 372.55975341796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "33. E. P. Yanin, “Epiphytic Suspension—Indicator of Pollu-", - "origin": [ - 313.5619812011719, - 444.45849609375 - ], - "bbox": [ - 313.5619812011719, - 374.9997253417969, - 553.9990844726562, - 384.9996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.5619812011719, - 374.9997253417969, - 553.9990844726562, - 384.9996337890625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion of River Systems with Heavy Metals,” Vodnye Re-", - "origin": [ - 330.101806640625, - 454.65838623046875 - ], - "bbox": [ - 330.101806640625, - 385.1996154785156, - 554.0067138671875, - 395.19952392578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.101806640625, - 385.1996154785156, - 554.0067138671875, - 395.19952392578125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "sursy", - "origin": [ - 330.101806640625, - 465.03826904296875 - ], - "bbox": [ - 330.101806640625, - 395.5794982910156, - 351.2115478515625, - 405.57940673828125 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 26", - "origin": [ - 351.2115478515625, - 465.03826904296875 - ], - "bbox": [ - 351.2115478515625, - 457.3214416503906, - 363.7514343261719, - 467.32135009765625 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (6), 731 (1999).", - "origin": [ - 363.7514343261719, - 465.03826904296875 - ], - "bbox": [ - 363.7514343261719, - 395.5794982910156, - 429.650634765625, - 405.57940673828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.101806640625, - 395.5794982910156, - 429.650634765625, - 467.32135009765625 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 72.1417007446289, - 748.1763916015625 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - }, - { - "spans": [], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 58.43450164794922, - -2.5659408569335938, - 299.0421142578125, - 467.51153564453125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "13. A. E. Ergashev,", - "origin": [ - 58.43450164794922, - 66.892822265625 - ], - "bbox": [ - 58.43450164794922, - -2.5659408569335938, - 138.48370361328125, - 7.433952331542969 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Guide to Protococcic Algae of Central", - "origin": [ - 138.48370361328125, - 66.892822265625 - ], - "bbox": [ - 138.48370361328125, - 59.21308517456055, - 298.9220275878906, - 69.21298217773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43450164794922, - -2.5659408569335938, - 298.9220275878906, - 69.21298217773438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Asia. Chlorococcales", - "origin": [ - 74.97433471679688, - 77.09271240234375 - ], - "bbox": [ - 74.97433471679688, - 69.41297149658203, - 162.40345764160156, - 79.41287231445312 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Fan, Tashkent, 1979) [in Rus-", - "origin": [ - 162.40345764160156, - 77.09271240234375 - ], - "bbox": [ - 162.40345764160156, - 7.633949279785156, - 298.89208984375, - 17.64385223388672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97433471679688, - 7.633949279785156, - 298.89208984375, - 79.41287231445312 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "sian].", - "origin": [ - 74.97434997558594, - 87.3026123046875 - ], - "bbox": [ - 74.97434997558594, - 17.843849182128906, - 96.91413116455078, - 27.84374237060547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97434997558594, - 17.843849182128906, - 96.91413116455078, - 27.84374237060547 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "14. S. S. Barinova, L. A. Medvedeva, and O. V. Anisimova,", - "origin": [ - 58.43451690673828, - 99.5224609375 - ], - "bbox": [ - 58.43451690673828, - 30.063697814941406, - 298.9420471191406, - 40.06359100341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43451690673828, - 30.063697814941406, - 298.9420471191406, - 40.06359100341797 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Biodiversity of Algae-Indicators of Environment", - "origin": [ - 74.97434997558594, - 109.72235107421875 - ], - "bbox": [ - 74.97434997558594, - 102.04261016845703, - 271.0724182128906, - 112.04251098632812 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Insti-", - "origin": [ - 271.0724182128906, - 109.72235107421875 - ], - "bbox": [ - 271.0724182128906, - 40.263587951660156, - 298.8921203613281, - 50.27349090576172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97434997558594, - 40.263587951660156, - 298.8921203613281, - 112.04251098632812 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tute of Evolution, University of Haifa, Tel-Aviv, 2006)", - "origin": [ - 74.97438049316406, - 119.9322509765625 - ], - "bbox": [ - 74.97438049316406, - 50.473487854003906, - 298.7720947265625, - 60.47338104248047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97438049316406, - 50.473487854003906, - 298.7720947265625, - 60.47338104248047 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "[in Russian].", - "origin": [ - 74.97438049316406, - 130.13214111328125 - ], - "bbox": [ - 74.97438049316406, - 60.673377990722656, - 126.08386993408203, - 70.67327117919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97438049316406, - 60.673377990722656, - 126.08386993408203, - 70.67327117919922 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "15.", - "origin": [ - 58.434547424316406, - 142.35198974609375 - ], - "bbox": [ - 58.434547424316406, - 72.89322662353516, - 70.9344253540039, - 82.89311981201172 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Phytoplankton of Lowe Volga. Water Reservoirs and", - "origin": [ - 70.9344253540039, - 142.35198974609375 - ], - "bbox": [ - 70.9344253540039, - 134.67225646972656, - 298.8021240234375, - 144.67214965820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.434547424316406, - 72.89322662353516, - 298.8021240234375, - 144.67214965820312 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Lower Course of the River", - "origin": [ - 74.97438049316406, - 152.5518798828125 - ], - "bbox": [ - 74.97438049316406, - 144.8721466064453, - 179.7133331298828, - 154.87203979492188 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by I. S. Trifonov (Nauka,", - "origin": [ - 178.53334045410156, - 152.5518798828125 - ], - "bbox": [ - 178.53334045410156, - 83.0931167602539, - 298.80206298828125, - 93.09300994873047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97438049316406, - 83.0931167602539, - 298.80206298828125, - 154.87203979492188 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "St. Petersburg, 2003) [in Russian].", - "origin": [ - 74.97438049316406, - 162.75177001953125 - ], - "bbox": [ - 74.97438049316406, - 93.29300689697266, - 212.93299865722656, - 103.29290008544922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97438049316406, - 93.29300689697266, - 212.93299865722656, - 103.29290008544922 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "16.", - "origin": [ - 58.434547424316406, - 174.97161865234375 - ], - "bbox": [ - 58.434547424316406, - 105.51285552978516, - 70.9344253540039, - 115.51274871826172 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Ecological Problems of the Upper Volga", - "origin": [ - 70.9344253540039, - 174.97161865234375 - ], - "bbox": [ - 70.9344253540039, - 167.29188537597656, - 258.9625549316406, - 177.29177856445312 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by", - "origin": [ - 259.04254150390625, - 174.97161865234375 - ], - "bbox": [ - 259.04254150390625, - 105.51285552978516, - 298.9020690917969, - 115.51274871826172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.434547424316406, - 105.51285552978516, - 298.9020690917969, - 177.29177856445312 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "A. I. Kopylov (YaGTU, Yaroslavl, 2001) [in Russian].", - "origin": [ - 74.97439575195312, - 185.1715087890625 - ], - "bbox": [ - 74.97439575195312, - 115.7127456665039, - 295.22210693359375, - 125.71263885498047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97439575195312, - 115.7127456665039, - 295.22210693359375, - 125.71263885498047 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "17. L. A. Izhboldina, “Phytobenthos (Macrophytes) of Litto-", - "origin": [ - 58.43456268310547, - 197.391357421875 - ], - "bbox": [ - 58.43456268310547, - 127.9325942993164, - 298.89215087890625, - 137.9324951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43456268310547, - 127.9325942993164, - 298.89215087890625, - 137.9324951171875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ral and Sublittoral of Open Shores of South Baikal,”", - "origin": [ - 74.97441101074219, - 207.59124755859375 - ], - "bbox": [ - 74.97441101074219, - 138.13247680664062, - 298.9521179199219, - 148.13238525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 138.13247680664062, - 298.9521179199219, - 148.13238525390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Candidate’s Dissertation in Biology (Irkutsk, 1971).", - "origin": [ - 74.97441101074219, - 217.7911376953125 - ], - "bbox": [ - 74.97441101074219, - 148.33236694335938, - 283.0522766113281, - 158.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 148.33236694335938, - 283.0522766113281, - 158.332275390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "18. M. A. Rychkova, “Periphyton of Littoral Zone of Lake", - "origin": [ - 58.43457794189453, - 230.010986328125 - ], - "bbox": [ - 58.43457794189453, - 160.55221557617188, - 298.88214111328125, - 170.5521240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43457794189453, - 160.55221557617188, - 298.88214111328125, - 170.5521240234375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Onega,” in", - "origin": [ - 74.97441101074219, - 240.21087646484375 - ], - "bbox": [ - 74.97441101074219, - 170.75210571289062, - 120.64395141601562, - 180.75201416015625 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Littoral Zone of Lake Onega: Collection", - "origin": [ - 120.64395141601562, - 240.21087646484375 - ], - "bbox": [ - 120.64395141601562, - 232.53114318847656, - 298.9621276855469, - 242.53103637695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 170.75210571289062, - 298.9621276855469, - 242.53103637695312 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "of Papers", - "origin": [ - 74.97441101074219, - 250.4107666015625 - ], - "bbox": [ - 74.97441101074219, - 242.7310333251953, - 114.64401245117188, - 252.73092651367188 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by I. M. Raspopov (Nauka, Leningrad,", - "origin": [ - 114.70401000976562, - 250.4107666015625 - ], - "bbox": [ - 114.70401000976562, - 180.95199584960938, - 298.8020935058594, - 190.951904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 180.95199584960938, - 298.8020935058594, - 252.73092651367188 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "1975), pp. 123–137 [in Russian].", - "origin": [ - 74.97441101074219, - 260.61065673828125 - ], - "bbox": [ - 74.97441101074219, - 191.15188598632812, - 206.91310119628906, - 201.15179443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 191.15188598632812, - 206.91310119628906, - 201.15179443359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "19. M. A. Rychkova, “Role of Dynamics of Water in Forma-", - "origin": [ - 58.43457794189453, - 272.83050537109375 - ], - "bbox": [ - 58.43457794189453, - 203.37173461914062, - 298.89215087890625, - 213.37164306640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43457794189453, - 203.37173461914062, - 298.89215087890625, - 213.37164306640625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion", - "origin": [ - 74.98440551757812, - 283.0303955078125 - ], - "bbox": [ - 74.98440551757812, - 213.57162475585938, - 90.54425048828125, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 213.57162475585938, - 90.54425048828125, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "of", - "origin": [ - 98.69416809082031, - 283.0303955078125 - ], - "bbox": [ - 98.69416809082031, - 213.57162475585938, - 107.02407836914062, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.69416809082031, - 213.57162475585938, - 107.02407836914062, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Epiphytic", - "origin": [ - 115.21399688720703, - 283.0303955078125 - ], - "bbox": [ - 115.21399688720703, - 213.57162475585938, - 154.10360717773438, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 115.21399688720703, - 213.57162475585938, - 154.10360717773438, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Algae", - "origin": [ - 162.21353149414062, - 283.0303955078125 - ], - "bbox": [ - 162.21353149414062, - 213.57162475585938, - 186.09329223632812, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.21353149414062, - 213.57162475585938, - 186.09329223632812, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Communities in", - "origin": [ - 194.2432098388672, - 283.0303955078125 - ], - "bbox": [ - 194.2432098388672, - 213.57162475585938, - 263.8125, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.2432098388672, - 213.57162475585938, - 263.8125, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake,”", - "origin": [ - 271.9624328613281, - 283.0303955078125 - ], - "bbox": [ - 271.9624328613281, - 213.57162475585938, - 298.89208984375, - 223.571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.9624328613281, - 213.57162475585938, - 298.89208984375, - 223.571533203125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Gidrobiologicheskii Zh.", - "origin": [ - 74.98440551757812, - 293.4102783203125 - ], - "bbox": [ - 74.98440551757812, - 223.95150756835938, - 171.0934295654297, - 233.951416015625 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 25", - "origin": [ - 171.0934295654297, - 293.4102783203125 - ], - "bbox": [ - 171.0934295654297, - 285.6934509277344, - 183.7833251953125, - 295.693359375 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (3), 8 (1989).", - "origin": [ - 183.7833251953125, - 293.4102783203125 - ], - "bbox": [ - 183.7833251953125, - 223.95150756835938, - 239.6827850341797, - 233.951416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 223.95150756835938, - 239.6827850341797, - 295.693359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "20. A. P. Skabichevskii, “Main Characteristics of Distribu-", - "origin": [ - 58.444580078125, - 305.6301574707031 - ], - "bbox": [ - 58.444580078125, - 236.17138671875, - 298.90216064453125, - 246.17129516601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.444580078125, - 236.17138671875, - 298.90216064453125, - 246.17129516601562 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion of Bottom (Algae) Vegetation of Baikal and Meth-", - "origin": [ - 74.98442077636719, - 315.8300476074219 - ], - "bbox": [ - 74.98442077636719, - 246.37127685546875, - 298.90216064453125, - 256.3711853027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98442077636719, - 246.37127685546875, - 298.90216064453125, - 256.3711853027344 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ods of Studying its Productivity,” in", - "origin": [ - 74.98442077636719, - 326.0299377441406 - ], - "bbox": [ - 74.98442077636719, - 256.5711669921875, - 217.38299560546875, - 266.5710754394531 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Cycle of Matter and", - "origin": [ - 217.38299560546875, - 326.0299377441406 - ], - "bbox": [ - 217.38299560546875, - 318.3501892089844, - 298.8321228027344, - 328.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98442077636719, - 256.5711669921875, - 298.8321228027344, - 328.35009765625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Energy in Water Bodies: Collection of Papers", - "origin": [ - 74.98442077636719, - 336.2298278808594 - ], - "bbox": [ - 74.98442077636719, - 328.5500793457031, - 265.3125, - 338.54998779296875 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", Ed. by", - "origin": [ - 265.38250732421875, - 336.2298278808594 - ], - "bbox": [ - 265.38250732421875, - 266.77105712890625, - 298.9220886230469, - 276.7709655761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98442077636719, - 266.77105712890625, - 298.9220886230469, - 338.54998779296875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "G. I. Galazii and K. K. Votintsev (Nauka, Siberian", - "origin": [ - 74.98440551757812, - 346.4297180175781 - ], - "bbox": [ - 74.98440551757812, - 276.970947265625, - 298.882080078125, - 286.9708557128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 276.970947265625, - 298.882080078125, - 286.9708557128906 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Branch, Novosibirsk, 1975), pp. 102–107 [in Russian].", - "origin": [ - 74.98440551757812, - 356.6296081542969 - ], - "bbox": [ - 74.98440551757812, - 287.17083740234375, - 294.692138671875, - 297.1707458496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 287.17083740234375, - 294.692138671875, - 297.1707458496094 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "21. L. Hakanson and V. V. Boulion, “Empirical and Dynami-", - "origin": [ - 58.44457244873047, - 368.8494873046875 - ], - "bbox": [ - 58.44457244873047, - 299.3907165527344, - 298.89208984375, - 309.390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.44457244873047, - 299.3907165527344, - 298.89208984375, - 309.390625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cal Models of Production and Biomass of Benthic Algae", - "origin": [ - 74.98440551757812, - 379.04937744140625 - ], - "bbox": [ - 74.98440551757812, - 309.5906066894531, - 298.89215087890625, - 319.59051513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 309.5906066894531, - 298.89215087890625, - 319.59051513671875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "in Lakes,” Hydrobiologia", - "origin": [ - 74.98440551757812, - 389.42926025390625 - ], - "bbox": [ - 74.98440551757812, - 319.9704895019531, - 176.9134063720703, - 329.97039794921875 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 522", - "origin": [ - 176.9134063720703, - 389.42926025390625 - ], - "bbox": [ - 176.9134063720703, - 381.7124328613281, - 194.5932159423828, - 391.71234130859375 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", 75 (2004).", - "origin": [ - 194.68319702148438, - 389.42926025390625 - ], - "bbox": [ - 194.68319702148438, - 319.9704895019531, - 241.34274291992188, - 329.97039794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.98440551757812, - 319.9704895019531, - 241.34274291992188, - 391.71234130859375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "22. G. Jonsson, “Photosynthesis and Production of Epilithic", - "origin": [ - 58.43455505371094, - 401.6491394042969 - ], - "bbox": [ - 58.43455505371094, - 332.19036865234375, - 298.97210693359375, - 342.1902770996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43455505371094, - 332.19036865234375, - 298.97210693359375, - 342.1902770996094 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Algal Communities in Thingvallavatn,” OICOS", - "origin": [ - 74.9743881225586, - 412.0290222167969 - ], - "bbox": [ - 74.9743881225586, - 342.57025146484375, - 266.1824951171875, - 352.5701599121094 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 64", - "origin": [ - 266.1824951171875, - 412.0290222167969 - ], - "bbox": [ - 266.1824951171875, - 404.31219482421875, - 278.7423400878906, - 414.3121032714844 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", 222", - "origin": [ - 278.8023681640625, - 412.0290222167969 - ], - "bbox": [ - 278.8023681640625, - 342.57025146484375, - 298.8221435546875, - 352.5701599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.9743881225586, - 342.57025146484375, - 298.8221435546875, - 414.3121032714844 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(1992).", - "origin": [ - 74.97441101074219, - 422.2289123535156 - ], - "bbox": [ - 74.97441101074219, - 352.7701416015625, - 104.13410186767578, - 362.7700500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 352.7701416015625, - 104.13410186767578, - 362.7700500488281 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "23. M. Kahlert, A. Hasselrot, H. Hillebrant, and K. Pet-", - "origin": [ - 58.43457794189453, - 434.44879150390625 - ], - "bbox": [ - 58.43457794189453, - 364.9900207519531, - 298.9021301269531, - 374.98992919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 58.43457794189453, - 364.9900207519531, - 298.9021301269531, - 374.98992919921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tersson, “Spatial and Temporal Variation in the Biomass", - "origin": [ - 74.97441101074219, - 444.648681640625 - ], - "bbox": [ - 74.97441101074219, - 375.1899108886719, - 299.0421142578125, - 385.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 375.1899108886719, - 299.0421142578125, - 385.1898193359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and Nutrient Status of Epilithic Algae in Lake Erken,", - "origin": [ - 74.97441101074219, - 454.84857177734375 - ], - "bbox": [ - 74.97441101074219, - 385.3898010253906, - 298.83209228515625, - 395.38970947265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 385.3898010253906, - 298.83209228515625, - 395.38970947265625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Sweden,” Freshwater Biology", - "origin": [ - 74.97441101074219, - 465.22845458984375 - ], - "bbox": [ - 74.97441101074219, - 395.7696838378906, - 195.23321533203125, - 405.76959228515625 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 47", - "origin": [ - 195.23321533203125, - 465.22845458984375 - ], - "bbox": [ - 195.23321533203125, - 457.5116271972656, - 207.9130859375, - 467.51153564453125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", 1191 (2002).", - "origin": [ - 207.97308349609375, - 465.22845458984375 - ], - "bbox": [ - 207.97308349609375, - 395.7696838378906, - 264.33251953125, - 405.76959228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.97441101074219, - 395.7696838378906, - 264.33251953125, - 467.51153564453125 - ] - } - ], - "tag": "header" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 313.5520324707031, - -2.5263290405273438, - 554.0892944335938, - 467.32135009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "24. M. Kumagai, K. Ishikawa, and J. Chunmeng, “Dynamics", - "origin": [ - 313.5520324707031, - 66.93243408203125 - ], - "bbox": [ - 313.5520324707031, - -2.5263290405273438, - 554.0892944335938, - 7.473564147949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.5520324707031, - -2.5263290405273438, - 554.0892944335938, - 7.473564147949219 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and Biogeochemical Significance of the Physical Envi-", - "origin": [ - 330.09185791015625, - 77.13232421875 - ], - "bbox": [ - 330.09185791015625, - 7.673561096191406, - 553.9996337890625, - 17.68346405029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.09185791015625, - 7.673561096191406, - 553.9996337890625, - 17.68346405029297 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ronment in Lake Biwa,” Lakes & Reservoirs: Research", - "origin": [ - 330.0918884277344, - 87.34222412109375 - ], - "bbox": [ - 330.0918884277344, - 17.883460998535156, - 554.0192260742188, - 27.88335418701172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 17.883460998535156, - 554.0192260742188, - 27.88335418701172 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "and Management", - "origin": [ - 330.0918884277344, - 97.72210693359375 - ], - "bbox": [ - 330.0918884277344, - 28.263343811035156, - 399.2410888671875, - 38.26323699951172 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 7", - "origin": [ - 399.2410888671875, - 97.72210693359375 - ], - "bbox": [ - 399.2410888671875, - 90.00528717041016, - 406.71112060546875, - 100.00518798828125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": ", 345 (2002).", - "origin": [ - 406.7411193847656, - 97.72210693359375 - ], - "bbox": [ - 406.7411193847656, - 28.263343811035156, - 458.4004821777344, - 38.26323699951172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 28.263343811035156, - 458.4004821777344, - 100.00518798828125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "25. V. N. Nikulina, “Phytofouling in Ilem-Gorskaya Bay of", - "origin": [ - 313.55206298828125, - 110.1619873046875 - ], - "bbox": [ - 313.55206298828125, - 40.703224182128906, - 553.9793090820312, - 50.70311737060547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.55206298828125, - 40.703224182128906, - 553.9793090820312, - 50.70311737060547 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake Onega,” in:", - "origin": [ - 330.0918884277344, - 120.36187744140625 - ], - "bbox": [ - 330.0918884277344, - 50.903114318847656, - 398.0810852050781, - 60.90300750732422 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Limnological Studies in the Big Onego", - "origin": [ - 398.0810852050781, - 120.36187744140625 - ], - "bbox": [ - 398.0810852050781, - 112.68213653564453, - 553.9193725585938, - 122.68203735351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 50.903114318847656, - 553.9193725585938, - 122.68203735351562 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Bay of Lake Onega", - "origin": [ - 330.0919189453125, - 130.561767578125 - ], - "bbox": [ - 330.0919189453125, - 122.88202667236328, - 407.301025390625, - 132.88192749023438 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Zoological Institute AS USSR, Le-", - "origin": [ - 407.301025390625, - 130.561767578125 - ], - "bbox": [ - 407.301025390625, - 61.103004455566406, - 553.9996337890625, - 71.10289764404297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0919189453125, - 61.103004455566406, - 553.9996337890625, - 132.88192749023438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "ningrad, 1982), pp. 109–114 [in Russian].", - "origin": [ - 330.0918884277344, - 140.76165771484375 - ], - "bbox": [ - 330.0918884277344, - 71.30289459228516, - 497.76983642578125, - 81.30278778076172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 71.30289459228516, - 497.76983642578125, - 81.30278778076172 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "26. T. A. Makarevich, “Estimation of Biomass of Epiphyton", - "origin": [ - 313.55206298828125, - 153.2015380859375 - ], - "bbox": [ - 313.55206298828125, - 83.7427749633789, - 553.9492797851562, - 93.74266815185547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.55206298828125, - 83.7427749633789, - 553.9492797851562, - 93.74266815185547 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "on Different Types of Macrophytes in Mesotrophic", - "origin": [ - 330.0918884277344, - 163.40142822265625 - ], - "bbox": [ - 330.0918884277344, - 93.94266510009766, - 553.979248046875, - 103.94255828857422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 93.94266510009766, - 553.979248046875, - 103.94255828857422 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake,” in", - "origin": [ - 330.0918884277344, - 173.601318359375 - ], - "bbox": [ - 330.0918884277344, - 104.1425552368164, - 370.23138427734375, - 114.14244842529297 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Results and Prospects of Hydrobiological", - "origin": [ - 370.23138427734375, - 173.601318359375 - ], - "bbox": [ - 370.23138427734375, - 165.9215850830078, - 553.9593505859375, - 175.92147827148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 104.1425552368164, - 553.9593505859375, - 175.92147827148438 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Studies in Belorussia", - "origin": [ - 330.0918884277344, - 183.80120849609375 - ], - "bbox": [ - 330.0918884277344, - 176.12147521972656, - 414.0308837890625, - 186.12136840820312 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Institute of Zoology of AS BSSR,", - "origin": [ - 414.0308837890625, - 183.80120849609375 - ], - "bbox": [ - 414.0308837890625, - 114.34244537353516, - 554.0393676757812, - 124.34233856201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 114.34244537353516, - 554.0393676757812, - 186.12136840820312 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Minsk, 1983), pp. 123–127 [in Russian].", - "origin": [ - 330.0918884277344, - 194.0010986328125 - ], - "bbox": [ - 330.0918884277344, - 124.5423355102539, - 492.5899353027344, - 134.542236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 124.5423355102539, - 492.5899353027344, - 134.542236328125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "27. T. A. Makarevich, A. P. Ostapenya, and T. M. Mikheeva,", - "origin": [ - 313.55206298828125, - 206.44097900390625 - ], - "bbox": [ - 313.55206298828125, - 136.98220825195312, - 553.9993286132812, - 146.98211669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.55206298828125, - 136.98220825195312, - 553.9993286132812, - 146.98211669921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "“Express-Method of Estimate of Growth Rate and Pro-", - "origin": [ - 330.0918884277344, - 216.640869140625 - ], - "bbox": [ - 330.0918884277344, - 147.18209838867188, - 553.9996337890625, - 157.1820068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 147.18209838867188, - 553.9996337890625, - 157.1820068359375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "duction Characteristics of Periphyton,” Gidrobiologi-", - "origin": [ - 330.0918884277344, - 226.84075927734375 - ], - "bbox": [ - 330.0918884277344, - 157.38198852539062, - 553.9996337890625, - 167.38189697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 157.38198852539062, - 553.9996337890625, - 167.38189697265625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "cheskii Zh.", - "origin": [ - 330.0918884277344, - 237.22064208984375 - ], - "bbox": [ - 330.0918884277344, - 167.76187133789062, - 374.5313415527344, - 177.76177978515625 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 23", - "origin": [ - 374.5313415527344, - 237.22064208984375 - ], - "bbox": [ - 374.5313415527344, - 229.5038299560547, - 387.1012878417969, - 239.50372314453125 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (4), 76 (1987).", - "origin": [ - 387.1012878417969, - 237.22064208984375 - ], - "bbox": [ - 387.1012878417969, - 167.76187133789062, - 448.00054931640625, - 177.76177978515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.0918884277344, - 167.76187133789062, - 448.00054931640625, - 239.50372314453125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "28. N. E. Votyakova, “Phytobenthos of Water Bodies of", - "origin": [ - 313.5620422363281, - 249.6605224609375 - ], - "bbox": [ - 313.5620422363281, - 180.20175170898438, - 553.9891967773438, - 190.20166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.5620422363281, - 180.20175170898438, - 553.9891967773438, - 190.20166015625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Delta of Upper Angara,” in", - "origin": [ - 330.10186767578125, - 259.86041259765625 - ], - "bbox": [ - 330.10186767578125, - 190.40164184570312, - 440.3606262207031, - 200.40155029296875 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Vegetation of River Ecosys-", - "origin": [ - 440.3606262207031, - 259.86041259765625 - ], - "bbox": [ - 440.3606262207031, - 252.18067932128906, - 554.0095825195312, - 262.1805725097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.10186767578125, - 190.40164184570312, - 554.0095825195312, - 262.1805725097656 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "tems in North Cis-Baikalia", - "origin": [ - 330.1018371582031, - 270.060302734375 - ], - "bbox": [ - 330.1018371582031, - 262.38055419921875, - 444.9305114746094, - 272.3804626464844 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Nauka, Siberian Branch", - "origin": [ - 444.9305114746094, - 270.060302734375 - ], - "bbox": [ - 444.9305114746094, - 200.60153198242188, - 553.9894409179688, - 210.6014404296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 200.60153198242188, - 553.9894409179688, - 272.3804626464844 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Novosibirsk, 1992), pp. 115–157 [in Russian].", - "origin": [ - 330.1018371582031, - 280.26019287109375 - ], - "bbox": [ - 330.1018371582031, - 210.80142211914062, - 516.0496215820312, - 220.80133056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 210.80142211914062, - 516.0496215820312, - 220.80133056640625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "29. L. V. Yanygina, M. I. Koveshnikova, E. N. Krylova, and", - "origin": [ - 313.56201171875, - 292.7000732421875 - ], - "bbox": [ - 313.56201171875, - 223.24130249023438, - 553.9793090820312, - 233.2412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.56201171875, - 223.24130249023438, - 553.9793090820312, - 233.2412109375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "K. V. Marusin, “Spatial Distribution of Zoobenthos of", - "origin": [ - 330.1018371582031, - 302.89996337890625 - ], - "bbox": [ - 330.1018371582031, - 233.44119262695312, - 553.9692993164062, - 243.44110107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 233.44119262695312, - 553.9692993164062, - 243.44110107421875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Lake Teletskoye,” in", - "origin": [ - 330.1018371582031, - 313.099853515625 - ], - "bbox": [ - 330.1018371582031, - 243.64108276367188, - 413.76080322265625, - 253.6409912109375 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Lake Ecosystems: Biological Pro-", - "origin": [ - 413.76080322265625, - 313.099853515625 - ], - "bbox": [ - 413.76080322265625, - 305.42010498046875, - 554.0095825195312, - 315.4200134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 243.64108276367188, - 554.0095825195312, - 315.4200134277344 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "cesses, Anthropogenic Transformation, Quality of Water", - "origin": [ - 330.1018371582031, - 323.29974365234375 - ], - "bbox": [ - 330.1018371582031, - 315.6199951171875, - 554.0191650390625, - 325.6199035644531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 315.6199951171875, - 554.0191650390625, - 325.6199035644531 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "(Minsk–Naroch, September 17–22, 2007): Proceedings", - "origin": [ - 330.1018371582031, - 333.4996337890625 - ], - "bbox": [ - 330.1018371582031, - 325.81988525390625, - 553.959228515625, - 335.8197937011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 325.81988525390625, - 553.959228515625, - 335.8197937011719 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "(BGU, Minsk, 2007), p. 274 [in Russian].", - "origin": [ - 330.1018371582031, - 343.69952392578125 - ], - "bbox": [ - 330.1018371582031, - 274.2407531738281, - 497.0398864746094, - 284.24066162109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 274.2407531738281, - 497.0398864746094, - 284.24066162109375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "30. O. M. Kozhova and G. F. Zagorenko, “Vegetative Peri-", - "origin": [ - 313.56201171875, - 356.139404296875 - ], - "bbox": [ - 313.56201171875, - 286.6806335449219, - 554.00927734375, - 296.6805419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.56201171875, - 286.6806335449219, - 554.00927734375, - 296.6805419921875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "phyton of Bratsk Reservoir,” Nauchnye Doklady Vys-", - "origin": [ - 330.1018371582031, - 366.33929443359375 - ], - "bbox": [ - 330.1018371582031, - 296.8805236816406, - 553.9969482421875, - 306.88043212890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 296.8805236816406, - 553.9969482421875, - 306.88043212890625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "shei Shkoly, Biologicheskie Nauki, No. 8, 50 (1968).", - "origin": [ - 330.1018371582031, - 376.5391845703125 - ], - "bbox": [ - 330.1018371582031, - 307.0804138183594, - 542.2693481445312, - 317.080322265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 307.0804138183594, - 542.2693481445312, - 317.080322265625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "31. G. V. Pomazkina, “Microphytobenthos of South Baikal,”", - "origin": [ - 313.56201171875, - 388.97906494140625 - ], - "bbox": [ - 313.56201171875, - 319.5202941894531, - 553.9892578125, - 329.52020263671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.56201171875, - 319.5202941894531, - 553.9892578125, - 329.52020263671875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "Candidate’s Dissertation in Biology (Irkutsk, 2000).", - "origin": [ - 330.1018371582031, - 399.178955078125 - ], - "bbox": [ - 330.1018371582031, - 329.7201843261719, - 538.1793823242188, - 339.7200927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.1018371582031, - 329.7201843261719, - 538.1793823242188, - 339.7200927734375 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "32. M. A. Rychkova, “Peryphyton of Littoral Zone,” in", - "origin": [ - 313.56201171875, - 411.61883544921875 - ], - "bbox": [ - 313.56201171875, - 342.1600646972656, - 532.5294189453125, - 352.15997314453125 - ] - }, - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": " Lake", - "origin": [ - 532.5294189453125, - 411.61883544921875 - ], - "bbox": [ - 532.5294189453125, - 403.9390869140625, - 554.01953125, - 413.9389953613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.56201171875, - 342.1600646972656, - 554.01953125, - 413.9389953613281 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 6, - "font": "TimesNewRoman-NormalItalic", - "color": 1250067, - "ascender": 0.6620000004768372, - "descender": -0.20000000298023224, - "text": "Ladoga: Past, Present, Future", - "origin": [ - 330.101806640625, - 421.8187255859375 - ], - "bbox": [ - 330.101806640625, - 414.13897705078125, - 455.00030517578125, - 424.1388854980469 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (Nauka, St. Petersburg,", - "origin": [ - 455.00030517578125, - 421.8187255859375 - ], - "bbox": [ - 455.00030517578125, - 352.3599548339844, - 553.9894409179688, - 362.35986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.101806640625, - 352.3599548339844, - 553.9894409179688, - 424.1388854980469 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "2002), pp. 246–251 [in Russian].", - "origin": [ - 330.101806640625, - 432.01861572265625 - ], - "bbox": [ - 330.101806640625, - 362.5598449707031, - 462.0401916503906, - 372.55975341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.101806640625, - 362.5598449707031, - 462.0401916503906, - 372.55975341796875 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "33. E. P. Yanin, “Epiphytic Suspension—Indicator of Pollu-", - "origin": [ - 313.5619812011719, - 444.45849609375 - ], - "bbox": [ - 313.5619812011719, - 374.9997253417969, - 553.9990844726562, - 384.9996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.5619812011719, - 374.9997253417969, - 553.9990844726562, - 384.9996337890625 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "tion of River Systems with Heavy Metals,” Vodnye Re-", - "origin": [ - 330.101806640625, - 454.65838623046875 - ], - "bbox": [ - 330.101806640625, - 385.1996154785156, - 554.0067138671875, - 395.19952392578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.101806640625, - 385.1996154785156, - 554.0067138671875, - 395.19952392578125 - ] - }, - { - "spans": [ - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "sursy", - "origin": [ - 330.101806640625, - 465.03826904296875 - ], - "bbox": [ - 330.101806640625, - 395.5794982910156, - 351.2115478515625, - 405.57940673828125 - ] - }, - { - "size": 9.999899864196777, - "flags": 20, - "font": "TimesNewRoman-Bold", - "color": 1250067, - "ascender": 0.6759999990463257, - "descender": -0.20000000298023224, - "text": " 26", - "origin": [ - 351.2115478515625, - 465.03826904296875 - ], - "bbox": [ - 351.2115478515625, - 457.3214416503906, - 363.7514343261719, - 467.32135009765625 - ] - }, - { - "size": 9.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": " (6), 731 (1999).", - "origin": [ - 363.7514343261719, - 465.03826904296875 - ], - "bbox": [ - 363.7514343261719, - 395.5794982910156, - 429.650634765625, - 405.57940673828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.101806640625, - 395.5794982910156, - 429.650634765625, - 467.32135009765625 - ] - } - ], - "tag": "header" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.999899864196777, - "flags": 4, - "font": "TimesNewRoman", - "color": 1250067, - "ascender": 0.25699999928474426, - "descender": 0.2199999988079071, - "text": "CONTEMPORARY PROBLEMS OF ECOLOGY Vol. 4 No. 1 2011", - "origin": [ - 72.1417007446289, - 748.1763916015625 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1417007446289, - 685.66357421875, - 342.0666198730469, - 694.6634521484375 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 6, - "page_size": [ - 612.0, - 792.0 - ] - } -} \ No newline at end of file diff --git a/tests/assets/pre_proc_results/scihub_46600000/preproc_out.json b/tests/assets/pre_proc_results/scihub_46600000/preproc_out.json deleted file mode 100644 index 382131fed..000000000 --- a/tests/assets/pre_proc_results/scihub_46600000/preproc_out.json +++ /dev/null @@ -1,195185 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 50.0, - 191.25, - 454.639892578125, - 204.99000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "This content has been downloaded from IOPscience. Please scroll down to see the full text.", - "origin": [ - 50.0, - 202.0 - ], - "bbox": [ - 50.0, - 191.25, - 454.639892578125, - 204.99000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 191.25, - 454.639892578125, - 204.99000549316406 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 50.0, - 336.25, - 128.91998291015625, - 349.989990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Download details:", - "origin": [ - 50.0, - 347.0 - ], - "bbox": [ - 50.0, - 336.25, - 128.91998291015625, - 349.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 336.25, - 128.91998291015625, - 349.989990234375 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 50.0, - 366.25, - 287.36993408203125, - 394.989990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "IP Address: 174.61.97.118", - "origin": [ - 50.0, - 377.0 - ], - "bbox": [ - 50.0, - 366.25, - 168.40997314453125, - 379.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 366.25, - 168.40997314453125, - 379.989990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "This content was downloaded on 26/10/2015 at 08:38", - "origin": [ - 50.0, - 392.0 - ], - "bbox": [ - 50.0, - 381.25, - 287.36993408203125, - 394.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 381.25, - 287.36993408203125, - 394.989990234375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 50.0, - 421.25, - 246.76995849609375, - 434.989990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Please note that terms and conditions apply.", - "origin": [ - 50.0, - 432.0 - ], - "bbox": [ - 50.0, - 421.25, - 246.76995849609375, - 434.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 421.25, - 246.76995849609375, - 434.989990234375 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 50.0, - 113.0999984741211, - 339.43994140625, - 129.58799743652344 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Does quantum mechanics tell an atomistic spacetime?", - "origin": [ - 50.0, - 126.0 - ], - "bbox": [ - 50.0, - 113.0999984741211, - 339.43994140625, - 129.58799743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 113.0999984741211, - 339.43994140625, - 129.58799743652344 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 50.0, - 256.25, - 402.39984130859375, - 269.989990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "View the table of contents for this issue, or go to the journal homepage for more", - "origin": [ - 50.0, - 267.0 - ], - "bbox": [ - 50.0, - 256.25, - 402.39984130859375, - 269.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 256.25, - 402.39984130859375, - 269.989990234375 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 50.0, - 211.25, - 216.76995849609375, - 224.99000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "2009 J. Phys.: Conf. Ser. 174 012009", - "origin": [ - 50.0, - 222.0 - ], - "bbox": [ - 50.0, - 211.25, - 216.76995849609375, - 224.99000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 211.25, - 216.76995849609375, - 224.99000549316406 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 50.0, - 231.25, - 276.7999267578125, - 244.99000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "(http://iopscience.iop.org/1742-6596/174/1/012009)", - "origin": [ - 50.0, - 242.0 - ], - "bbox": [ - 50.0, - 231.25, - 276.7999267578125, - 244.99000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 231.25, - 276.7999267578125, - 244.99000549316406 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 53.25, - 595.0, - 434.989990234375 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 50.0, - 191.25, - 454.639892578125, - 204.99000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "This content has been downloaded from IOPscience. Please scroll down to see the full text.", - "origin": [ - 50.0, - 202.0 - ], - "bbox": [ - 50.0, - 191.25, - 454.639892578125, - 204.99000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 191.25, - 454.639892578125, - 204.99000549316406 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 50.0, - 336.25, - 128.91998291015625, - 349.989990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Download details:", - "origin": [ - 50.0, - 347.0 - ], - "bbox": [ - 50.0, - 336.25, - 128.91998291015625, - 349.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 336.25, - 128.91998291015625, - 349.989990234375 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 50.0, - 366.25, - 287.36993408203125, - 394.989990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "IP Address: 174.61.97.118", - "origin": [ - 50.0, - 377.0 - ], - "bbox": [ - 50.0, - 366.25, - 168.40997314453125, - 379.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 366.25, - 168.40997314453125, - 379.989990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "This content was downloaded on 26/10/2015 at 08:38", - "origin": [ - 50.0, - 392.0 - ], - "bbox": [ - 50.0, - 381.25, - 287.36993408203125, - 394.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 381.25, - 287.36993408203125, - 394.989990234375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 50.0, - 421.25, - 246.76995849609375, - 434.989990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Please note that terms and conditions apply.", - "origin": [ - 50.0, - 432.0 - ], - "bbox": [ - 50.0, - 421.25, - 246.76995849609375, - 434.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 421.25, - 246.76995849609375, - 434.989990234375 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 50.0, - 113.0999984741211, - 339.43994140625, - 129.58799743652344 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Does quantum mechanics tell an atomistic spacetime?", - "origin": [ - 50.0, - 126.0 - ], - "bbox": [ - 50.0, - 113.0999984741211, - 339.43994140625, - 129.58799743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 113.0999984741211, - 339.43994140625, - 129.58799743652344 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 50.0, - 256.25, - 402.39984130859375, - 269.989990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "View the table of contents for this issue, or go to the journal homepage for more", - "origin": [ - 50.0, - 267.0 - ], - "bbox": [ - 50.0, - 256.25, - 402.39984130859375, - 269.989990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 256.25, - 402.39984130859375, - 269.989990234375 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 50.0, - 211.25, - 216.76995849609375, - 224.99000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "2009 J. Phys.: Conf. Ser. 174 012009", - "origin": [ - 50.0, - 222.0 - ], - "bbox": [ - 50.0, - 211.25, - 216.76995849609375, - 224.99000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 211.25, - 216.76995849609375, - 224.99000549316406 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 50.0, - 231.25, - 276.7999267578125, - 244.99000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "(http://iopscience.iop.org/1742-6596/174/1/012009)", - "origin": [ - 50.0, - 242.0 - ], - "bbox": [ - 50.0, - 231.25, - 276.7999267578125, - 244.99000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.0, - 231.25, - 276.7999267578125, - 244.99000549316406 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 10.15999984741211, - 53.25, - 365.6199951171875, - 66.98999786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Home", - "origin": [ - 10.15999984741211, - 64.0 - ], - "bbox": [ - 10.15999984741211, - 53.25, - 36.83000564575195, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 10.15999984741211, - 53.25, - 36.83000564575195, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Search", - "origin": [ - 50.15999984741211, - 64.0 - ], - "bbox": [ - 50.15999984741211, - 53.25, - 81.84000396728516, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.15999984741211, - 53.25, - 81.84000396728516, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Collections", - "origin": [ - 95.55000305175781, - 64.0 - ], - "bbox": [ - 95.55000305175781, - 53.25, - 144.4499969482422, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.55000305175781, - 53.25, - 144.4499969482422, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Journals", - "origin": [ - 155.10000610351562, - 64.0 - ], - "bbox": [ - 155.10000610351562, - 53.25, - 192.88999938964844, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 155.10000610351562, - 53.25, - 192.88999938964844, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "About", - "origin": [ - 203.92999267578125, - 64.0 - ], - "bbox": [ - 203.92999267578125, - 53.25, - 230.0599822998047, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.92999267578125, - 53.25, - 230.0599822998047, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Contact us", - "origin": [ - 240.10000610351562, - 64.0 - ], - "bbox": [ - 240.10000610351562, - 53.25, - 287.8999938964844, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.10000610351562, - 53.25, - 287.8999938964844, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "My IOPscience", - "origin": [ - 298.3800048828125, - 64.0 - ], - "bbox": [ - 298.3800048828125, - 53.25, - 365.6199951171875, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 298.3800048828125, - 53.25, - 365.6199951171875, - 66.98999786376953 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 8, - "type": 0, - "bbox": [ - 10.15999984741211, - 53.25, - 365.6199951171875, - 66.98999786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Home", - "origin": [ - 10.15999984741211, - 64.0 - ], - "bbox": [ - 10.15999984741211, - 53.25, - 36.83000564575195, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 10.15999984741211, - 53.25, - 36.83000564575195, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Search", - "origin": [ - 50.15999984741211, - 64.0 - ], - "bbox": [ - 50.15999984741211, - 53.25, - 81.84000396728516, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.15999984741211, - 53.25, - 81.84000396728516, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Collections", - "origin": [ - 95.55000305175781, - 64.0 - ], - "bbox": [ - 95.55000305175781, - 53.25, - 144.4499969482422, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.55000305175781, - 53.25, - 144.4499969482422, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Journals", - "origin": [ - 155.10000610351562, - 64.0 - ], - "bbox": [ - 155.10000610351562, - 53.25, - 192.88999938964844, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 155.10000610351562, - 53.25, - 192.88999938964844, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "About", - "origin": [ - 203.92999267578125, - 64.0 - ], - "bbox": [ - 203.92999267578125, - 53.25, - 230.0599822998047, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.92999267578125, - 53.25, - 230.0599822998047, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Contact us", - "origin": [ - 240.10000610351562, - 64.0 - ], - "bbox": [ - 240.10000610351562, - 53.25, - 287.8999938964844, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.10000610351562, - 53.25, - 287.8999938964844, - 66.98999786376953 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 0, - "font": "Helvetica", - "color": 3837123, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "My IOPscience", - "origin": [ - 298.3800048828125, - 64.0 - ], - "bbox": [ - 298.3800048828125, - 53.25, - 365.6199951171875, - 66.98999786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 298.3800048828125, - 53.25, - 365.6199951171875, - 66.98999786376953 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_1": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 71.5999984741211, - 200.25, - 516.4000244140625, - 219.14999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "������\u000b\n\r\f\u000f\u000e\u0010�\u0012\u0011", - "origin": [ - 71.5999984741211, - 206.75 - ], - "bbox": [ - 71.5999984741211, - 200.25, - 177.6999969482422, - 219.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.5999984741211, - 200.25, - 177.6999969482422, - 219.14999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�\u0014\u0013\u0016\u0015\u000b\n\r\f\u0012\u0017\u0018\u0013\u0019�\u001a\u000e\u001b��\u001c\u001d\u001c\u001e\n\u001f\f", - "origin": [ - 215.60000610351562, - 206.75 - ], - "bbox": [ - 215.60000610351562, - 200.25, - 333.0, - 219.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.60000610351562, - 200.25, - 333.0, - 219.14999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\n \u000e\u0010�!\u0011", - "origin": [ - 349.5, - 206.75 - ], - "bbox": [ - 349.5, - 200.25, - 376.20001220703125, - 219.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.5, - 200.25, - 376.20001220703125, - 219.14999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0017\u001d�\"\u000e\u0010\u0017\u001d\u0013#�\u0010$\u000b\n\r\u0013%�&\u000e\u0010\u0017\u001d\u0011", - "origin": [ - 392.3999938964844, - 206.75 - ], - "bbox": [ - 392.3999938964844, - 200.25, - 490.79998779296875, - 219.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 392.3999938964844, - 200.25, - 490.79998779296875, - 219.14999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�\r'", - "origin": [ - 506.8999938964844, - 206.75 - ], - "bbox": [ - 506.8999938964844, - 200.25, - 516.4000244140625, - 219.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 506.8999938964844, - 200.25, - 516.4000244140625, - 219.14999389648438 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 142.89999389648438, - 235.45001220703125, - 239.7999725341797, - 254.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "(!)+*-,/.10&243657)8,�9;:=", - "origin": [ - 142.89999389648438, - 241.95001220703125 - ], - "bbox": [ - 142.89999389648438, - 235.45001220703125, - 239.7999725341797, - 254.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89999389648438, - 235.45001220703125, - 239.7999725341797, - 254.35000610351562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 142.79998779296875, - 250.35003662109375, - 460.6000671386719, - 269.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "@BADC\u0018EGFIHJALKNMPOQHJR\u0010STAVUWALXIALYZE\u0014[=\\+OTFJADY]R^U\u0018M]FJKNAL_a`abVEcFJdeR^fWR1OgHJM]YPR1FJh/R\u0010iT`\u001djlk=m1nToZpeq\u001bf8ALXJET`rjlHsE1tLADE", - "origin": [ - 142.79998779296875, - 256.85003662109375 - ], - "bbox": [ - 142.79998779296875, - 250.35003662109375, - 460.6000671386719, - 269.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.79998779296875, - 250.35003662109375, - 460.6000671386719, - 269.2500305175781 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 142.89999389648438, - 266.25006103515625, - 246.40000915527344, - 285.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�klK^E1ALtwvyxQz1{Qx/|1}/~8l€/T‚cƒa‚VI‚c„", - "origin": [ - 142.89999389648438, - 272.75006103515625 - ], - "bbox": [ - 142.89999389648438, - 266.25006103515625, - 246.40000915527344, - 285.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89999389648438, - 266.25006103515625, - 246.40000915527344, - 285.1500549316406 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 142.89999389648438, - 291.35003662109375, - 202.20001220703125, - 310.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "…^†u‡PˆP‰cŠ\u0018‹eˆeŒŽ", - "origin": [ - 142.89999389648438, - 297.85003662109375 - ], - "bbox": [ - 142.89999389648438, - 291.35003662109375, - 202.20001220703125, - 310.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89999389648438, - 291.35003662109375, - 202.20001220703125, - 310.2500305175781 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 207.29998779296875, - 291.550048828125, - 302.5999755859375, - 310.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M\u0019YPE1O\u0018R1O\u0018ALYZEGt\"EGO\u0018X’‘6M]F“HJR�H", - "origin": [ - 207.29998779296875, - 298.050048828125 - ], - "bbox": [ - 207.29998779296875, - 291.550048828125, - 302.5999755859375, - 310.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 207.29998779296875, - 291.550048828125, - 302.5999755859375, - 310.4500427246094 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 311.5, - 291.550048828125, - 507.6000061035156, - 310.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M\u0019”Q•\u0018MPX’HJALReO–CrR1XIMZS—ADX\u001f[™˜yMPXPš", - "origin": [ - 311.5, - 298.050048828125 - ], - "bbox": [ - 311.5, - 291.550048828125, - 415.4000549316406, - 310.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5, - 291.550048828125, - 415.4000549316406, - 310.4500427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "_�›œHsE1Y]ALHJtž–EGXIXI•\u0018KNALO\u0018d�H", - "origin": [ - 417.3999938964844, - 298.050048828125 - ], - "bbox": [ - 417.3999938964844, - 291.550048828125, - 507.6000061035156, - 310.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 417.3999938964844, - 291.550048828125, - 507.6000061035156, - 310.4500427246094 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 516.5, - 291.550048828125, - 520.9000244140625, - 310.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGH", - "origin": [ - 516.5, - 298.050048828125 - ], - "bbox": [ - 516.5, - 291.550048828125, - 520.9000244140625, - 310.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5, - 291.550048828125, - 520.9000244140625, - 310.4500427246094 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 142.89999389648438, - 302.550048828125, - 182.6999969482422, - 321.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u0018E1OQHJ•\u0018KŸH", - "origin": [ - 142.89999389648438, - 309.050048828125 - ], - "bbox": [ - 142.89999389648438, - 302.550048828125, - 182.6999969482422, - 321.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89999389648438, - 302.550048828125, - 182.6999969482422, - 321.4500427246094 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 191.59999084472656, - 302.550048828125, - 231.79998779296875, - 321.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPRGFI\u001fEGO\u001dS�H", - "origin": [ - 191.59999084472656, - 309.050048828125 - ], - "bbox": [ - 191.59999084472656, - 302.550048828125, - 231.79998779296875, - 321.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.59999084472656, - 302.550048828125, - 231.79998779296875, - 321.4500427246094 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 240.6999969482422, - 302.550048828125, - 487.10003662109375, - 321.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M“Y]ReO\u0018Y]MPCaH^RG ¡XIC\u001dEGYPM]HJALKNM;EGFJM¢HJR\u0014£rM“•\u0018OaAž¤\u001dMZS¥£Q\u001f¦ž”Q•\u0018E1OQHJAL§PALO\u0018da¨yE\u0019H", - "origin": [ - 240.6999969482422, - 309.050048828125 - ], - "bbox": [ - 240.6999969482422, - 302.550048828125, - 487.10003662109375, - 321.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.6999969482422, - 302.550048828125, - 487.10003662109375, - 321.4500427246094 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 495.8999938964844, - 302.550048828125, - 521.6000366210938, - 321.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPR1FI¥RG ", - "origin": [ - 495.8999938964844, - 309.050048828125 - ], - "bbox": [ - 495.8999938964844, - 302.550048828125, - 521.6000366210938, - 321.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 495.8999938964844, - 302.550048828125, - 521.6000366210938, - 321.4500427246094 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 142.79998779296875, - 313.4500732421875, - 395.5000305175781, - 332.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "dGFsEZhTAžHsEcHJADR1O©š8˜yM]HZ`gALO\u0018X’HJMZE1Sª`TReOaMBK^EPNCrReO\u0018SaM]FZv8«6Re•\u0018tDS¢”g•\u0018E1OQHJ•\u0018K7KNMPY", - "origin": [ - 142.79998779296875, - 319.9500732421875 - ], - "bbox": [ - 142.79998779296875, - 313.4500732421875, - 395.5000305175781, - 332.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.79998779296875, - 313.4500732421875, - 395.5000305175781, - 332.3500671386719 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 404.5999755859375, - 313.4500732421875, - 519.300048828125, - 332.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u0018ALYPXEcFJALXIM¡E1X¬E­YPR/EcFJXIM]kld1FsEGADOaMZS", - "origin": [ - 404.5999755859375, - 319.9500732421875 - ], - "bbox": [ - 404.5999755859375, - 313.4500732421875, - 519.300048828125, - 332.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 404.5999755859375, - 313.4500732421875, - 519.300048828125, - 332.3500671386719 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 142.69998168945312, - 324.4500732421875, - 194.49998474121094, - 343.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "FJM¯®\u001dMPY]HJALR1O�R1 °H", - "origin": [ - 142.69998168945312, - 330.9500732421875 - ], - "bbox": [ - 142.69998168945312, - 324.4500732421875, - 194.49998474121094, - 343.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.69998168945312, - 324.4500732421875, - 194.49998474121094, - 343.3500671386719 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 203.3999786376953, - 324.4500732421875, - 408.70001220703125, - 343.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M^EcHJReKNALX’HJALY^O\u001dEGHJ•TFJMNR1 ¬XIC\u0018E1YPM]HJALKNMc±\u000f›;²\u0014MNXICrM]YP•\u0018tDEGHJM^H", - "origin": [ - 203.3999786376953, - 330.9500732421875 - ], - "bbox": [ - 203.3999786376953, - 324.4500732421875, - 408.70001220703125, - 343.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.3999786376953, - 324.4500732421875, - 408.70001220703125, - 343.3500671386719 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 417.699951171875, - 324.4500732421875, - 429.2999267578125, - 343.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EcH­H", - "origin": [ - 417.699951171875, - 330.9500732421875 - ], - "bbox": [ - 417.699951171875, - 324.4500732421875, - 429.2999267578125, - 343.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 417.699951171875, - 324.4500732421875, - 429.2999267578125, - 343.3500671386719 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 438.199951171875, - 324.4500732421875, - 511.699951171875, - 343.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX­K^EZ³ALO\u001dSTMPMZS&£rM\u0010H", - "origin": [ - 438.199951171875, - 330.9500732421875 - ], - "bbox": [ - 438.199951171875, - 324.4500732421875, - 511.699951171875, - 343.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.199951171875, - 324.4500732421875, - 511.699951171875, - 343.3500671386719 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 142.7999267578125, - 335.3500671386719, - 204.8999481201172, - 354.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "YPE1XIMešu²&MFJMPYZE1tLtTH", - "origin": [ - 142.7999267578125, - 341.8500671386719 - ], - "bbox": [ - 142.7999267578125, - 335.3500671386719, - 204.8999481201172, - 354.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.7999267578125, - 335.3500671386719, - 204.8999481201172, - 354.25006103515625 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 213.7999267578125, - 335.3500671386719, - 447.29998779296875, - 354.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MXIALKNALtDEGFJAžH=\"£rM]H=‘6MPMPO\u0010M]h/RetL•aHJALR1O\u0010R1 rY]t´EGXIXIALYZE1t?EGO\u001dS\u001b”Q•\u0018E1OQHJ•\u0018KµKNMPY", - "origin": [ - 213.7999267578125, - 341.8500671386719 - ], - "bbox": [ - 213.7999267578125, - 335.3500671386719, - 447.29998779296875, - 354.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 213.7999267578125, - 335.3500671386719, - 447.29998779296875, - 354.25006103515625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 456.39996337890625, - 335.3500671386719, - 522.5999755859375, - 354.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaADYPE1tTMPO\u0018XIMPK\"£\u0018tLMPXP`", - "origin": [ - 456.39996337890625, - 341.8500671386719 - ], - "bbox": [ - 456.39996337890625, - 335.3500671386719, - 522.5999755859375, - 354.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 456.39996337890625, - 335.3500671386719, - 522.5999755859375, - 354.25006103515625 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 142.89996337890625, - 346.3500671386719, - 403.300048828125, - 365.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGYPYPRGFsSaALO\u0018d\u0014HJR&b©ALRe•ahTALtLtLM³E1O\u001dS h/ReO°¶-MP•\u0018K^EGO\u0018O MZ”Q•\u001dEcHJADR1O©`FJM]XICrMPY]HJALh/MPtžQš", - "origin": [ - 142.89996337890625, - 352.8500671386719 - ], - "bbox": [ - 142.89996337890625, - 346.3500671386719, - 403.300048828125, - 365.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89996337890625, - 346.3500671386719, - 403.300048828125, - 365.25006103515625 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 413.0999755859375, - 346.1500549316406, - 419.5999755859375, - 365.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 413.0999755859375, - 352.6500549316406 - ], - "bbox": [ - 413.0999755859375, - 346.1500549316406, - 419.5999755859375, - 365.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 413.0999755859375, - 346.1500549316406, - 419.5999755859375, - 365.050048828125 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 424.79998779296875, - 346.3500671386719, - 517.0, - 365.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M\u0016YPtDE1XIXIALYZE1t·E1O\u001dSœ”Q•\u001dE1OQHJ•aK", - "origin": [ - 424.79998779296875, - 352.8500671386719 - ], - "bbox": [ - 424.79998779296875, - 346.3500671386719, - 517.0, - 365.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.79998779296875, - 346.3500671386719, - 517.0, - 365.25006103515625 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 142.79998779296875, - 357.3500671386719, - 154.59999084472656, - 376.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNM]Y", - "origin": [ - 142.79998779296875, - 363.8500671386719 - ], - "bbox": [ - 142.79998779296875, - 357.3500671386719, - 154.59999084472656, - 376.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.79998779296875, - 357.3500671386719, - 154.59999084472656, - 376.25006103515625 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 163.69998168945312, - 357.3500671386719, - 292.5999755859375, - 376.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1O\u0018ALYZEGt¬MZ”Q•\u001dEGHJALR1O\u0018X^EGFJM;ALO\u0018SaALX’HJALO\u0018de•aALX", - "origin": [ - 163.69998168945312, - 363.8500671386719 - ], - "bbox": [ - 163.69998168945312, - 357.3500671386719, - 292.5999755859375, - 376.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.69998168945312, - 357.3500671386719, - 292.5999755859375, - 376.25006103515625 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 301.4999694824219, - 357.3500671386719, - 369.699951171875, - 376.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1£atLM“ ¸R1F^R1£T¹=MPY]HJXN‘", - "origin": [ - 301.4999694824219, - 363.8500671386719 - ], - "bbox": [ - 301.4999694824219, - 357.3500671386719, - 369.699951171875, - 376.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.4999694824219, - 357.3500671386719, - 369.699951171875, - 376.25006103515625 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 381.5999755859375, - 357.3500671386719, - 384.0999755859375, - 376.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALY", - "origin": [ - 381.5999755859375, - 363.8500671386719 - ], - "bbox": [ - 381.5999755859375, - 357.3500671386719, - 384.0999755859375, - 376.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 381.5999755859375, - 357.3500671386719, - 384.0999755859375, - 376.25006103515625 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 397.39996337890625, - 357.3500671386719, - 519.5, - 376.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EcFJM“ ºFJMPM“RGF»XI•\u0018£g¹’MPY]HNHJR\u0019XIC\u001dEcHJA´EGtLtL", - "origin": [ - 397.39996337890625, - 363.8500671386719 - ], - "bbox": [ - 397.39996337890625, - 357.3500671386719, - 519.5, - 376.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.39996337890625, - 357.3500671386719, - 519.5, - 376.25006103515625 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 142.79995727539062, - 368.25006103515625, - 308.29998779296875, - 387.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Y]ReO\u0018X’HsEGOQH\"£a•aH­CrR1XIXIAD£atž&HJALKNMNSaM]CrMPO\u001dSTMPOQHZ`WR1F", - "origin": [ - 142.79995727539062, - 374.75006103515625 - ], - "bbox": [ - 142.79995727539062, - 368.25006103515625, - 308.29998779296875, - 387.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.79995727539062, - 368.25006103515625, - 308.29998779296875, - 387.1500549316406 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 320.89996337890625, - 368.25006103515625, - 498.60009765625, - 387.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGFJKNReOaALY\u001b ¸RGFJYPMPXP`8Až °FJMPCaFJM]XIMPOQHJMZS\u0014E1CaCaFJR1CaFJADEGHJMPtžQš", - "origin": [ - 320.89996337890625, - 374.75006103515625 - ], - "bbox": [ - 320.89996337890625, - 368.25006103515625, - 498.60009765625, - 387.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.89996337890625, - 368.25006103515625, - 498.60009765625, - 387.1500549316406 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 506.699951171875, - 368.050048828125, - 513.199951171875, - 386.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 506.699951171875, - 374.550048828125 - ], - "bbox": [ - 506.699951171875, - 368.050048828125, - 513.199951171875, - 386.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 506.699951171875, - 368.050048828125, - 513.199951171875, - 386.9500427246094 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 518.3999633789062, - 368.25006103515625, - 520.8999633789062, - 387.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX", - "origin": [ - 518.3999633789062, - 374.75006103515625 - ], - "bbox": [ - 518.3999633789062, - 368.25006103515625, - 520.8999633789062, - 387.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.3999633789062, - 368.25006103515625, - 520.8999633789062, - 387.1500549316406 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 142.699951171875, - 379.1500549316406, - 296.6000061035156, - 398.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "FJM]XI•\u0018tžH·XI•adedeM]X’HJX·E\u0010‘°EP\u0016HJRNALOaYPR1FJCrRGFsEGHJM\"E1O", - "origin": [ - 142.699951171875, - 385.6500549316406 - ], - "bbox": [ - 142.699951171875, - 379.1500549316406, - 296.6000061035156, - 398.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.699951171875, - 379.1500549316406, - 296.6000061035156, - 398.050048828125 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 306.9999694824219, - 379.1500549316406, - 485.60003662109375, - 398.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGFJKNR1O\u0018ALY­ADOQHJM]FsEGY]HJALReOaXP`?ADOaYPtL•\u001dSTADOad\u0010®\u001d•aY]HJ•\u001dEcHJADR1O\u0018X¬‘", - "origin": [ - 306.9999694824219, - 385.6500549316406 - ], - "bbox": [ - 306.9999694824219, - 379.1500549316406, - 485.60003662109375, - 398.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.9999694824219, - 379.1500549316406, - 485.60003662109375, - 398.050048828125 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 497.5, - 379.1500549316406, - 500.0, - 398.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALY", - "origin": [ - 497.5, - 385.6500549316406 - ], - "bbox": [ - 497.5, - 379.1500549316406, - 500.0, - 398.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 497.5, - 379.1500549316406, - 500.0, - 398.050048828125 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 512.2999877929688, - 379.1500549316406, - 520.4000244140625, - 398.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGFJM", - "origin": [ - 512.2999877929688, - 385.6500549316406 - ], - "bbox": [ - 512.2999877929688, - 379.1500549316406, - 520.4000244140625, - 398.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 512.2999877929688, - 379.1500549316406, - 520.4000244140625, - 398.050048828125 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 142.69998168945312, - 390.25006103515625, - 232.79995727539062, - 409.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "HJM]OgHsEcHJALh/MPtž\u0019FJM]t´EcHJMZS\u0019HJR“H", - "origin": [ - 142.69998168945312, - 396.75006103515625 - ], - "bbox": [ - 142.69998168945312, - 390.25006103515625, - 232.79995727539062, - 409.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.69998168945312, - 390.25006103515625, - 232.79995727539062, - 409.1500549316406 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 241.59999084472656, - 390.25006103515625, - 511.7000732421875, - 409.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M\u0010•\u0018O\u0018SaM]FJtžTALO\u0018d;STADXIY¯FJM]HJMPO\u0018M]XIX\"RG °XIC\u001dEGYPM]HJALKNMeš\u0016¼6MPALO\u0018d;tLALO\u0018MZEcF\u0010EGO\u001dS³tDRQYPE1t°EcH½H", - "origin": [ - 241.59999084472656, - 396.75006103515625 - ], - "bbox": [ - 241.59999084472656, - 390.25006103515625, - 511.7000732421875, - 409.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.59999084472656, - 390.25006103515625, - 511.7000732421875, - 409.1500549316406 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 142.89999389648438, - 401.1500549316406, - 193.5, - 420.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u0018E1OQHJ•\u0018K¾KNMPY", - "origin": [ - 142.89999389648438, - 407.6500549316406 - ], - "bbox": [ - 142.89999389648438, - 401.1500549316406, - 193.5, - 420.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89999389648438, - 401.1500549316406, - 193.5, - 420.050048828125 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 202.59999084472656, - 401.1500549316406, - 252.30001831054688, - 420.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaADYPE1t?tLMPh/MPtw`TH", - "origin": [ - 202.59999084472656, - 407.6500549316406 - ], - "bbox": [ - 202.59999084472656, - 401.1500549316406, - 252.30001831054688, - 420.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.59999084472656, - 401.1500549316406, - 252.30001831054688, - 420.050048828125 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 261.20001220703125, - 401.1500549316406, - 340.9000244140625, - 420.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M·KNRgSTMPt?R1¿?M]FJX4E\u001bSTMPYPR", - "origin": [ - 261.20001220703125, - 407.6500549316406 - ], - "bbox": [ - 261.20001220703125, - 401.1500549316406, - 340.9000244140625, - 420.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 261.20001220703125, - 401.1500549316406, - 340.9000244140625, - 420.050048828125 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 350.60003662109375, - 401.1500549316406, - 489.60009765625, - 420.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]FJMPOaYPM­E1O\u0018S¢O\u0018EGHJ•aFsEGt?tDRQYPE1tLAL§ZEGHJALReO%KNMPY", - "origin": [ - 350.60003662109375, - 407.6500549316406 - ], - "bbox": [ - 350.60003662109375, - 401.1500549316406, - 489.60009765625, - 420.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.60003662109375, - 401.1500549316406, - 489.60009765625, - 420.050048828125 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 498.70001220703125, - 401.1500549316406, - 522.7000122070312, - 420.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u0018ALXIK“š", - "origin": [ - 498.70001220703125, - 407.6500549316406 - ], - "bbox": [ - 498.70001220703125, - 401.1500549316406, - 522.7000122070312, - 420.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 498.70001220703125, - 401.1500549316406, - 522.7000122070312, - 420.050048828125 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 142.80001831054688, - 412.050048828125, - 182.40000915527344, - 430.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "À-RZ‘MPh/M¯FZ`aH", - "origin": [ - 142.80001831054688, - 418.550048828125 - ], - "bbox": [ - 142.80001831054688, - 412.050048828125, - 182.40000915527344, - 430.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.80001831054688, - 412.050048828125, - 182.40000915527344, - 430.9500427246094 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 191.2000274658203, - 412.050048828125, - 465.0001220703125, - 430.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MBFJMPtDEGHJALReO“HJR\u001bCaFJALKNR1FsSTA´EGtVSTM]HJM]FJKNALO\u0018ALX’HJALY¡STMPd1FJMPM]X-RG W ºFJMPMPSaReKÁALX¬O\u0018R1O\u0018tLRQYZE1twš", - "origin": [ - 191.2000274658203, - 418.550048828125 - ], - "bbox": [ - 191.2000274658203, - 412.050048828125, - 465.0001220703125, - 430.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.2000274658203, - 412.050048828125, - 465.0001220703125, - 430.9500427246094 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 71.8000259399414, - 467.1500549316406, - 96.0000228881836, - 486.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Â+Ã\u0014Ä¥Å", - "origin": [ - 71.8000259399414, - 473.6500549316406 - ], - "bbox": [ - 71.8000259399414, - 467.1500549316406, - 96.0000228881836, - 486.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.8000259399414, - 467.1500549316406, - 96.0000228881836, - 486.050048828125 - ] - } - ] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 102.9000244140625, - 466.8500671386719, - 115.5000228881836, - 485.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ")+*6Æ", - "origin": [ - 102.9000244140625, - 473.3500671386719 - ], - "bbox": [ - 102.9000244140625, - 466.8500671386719, - 115.5000228881836, - 485.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.9000244140625, - 466.8500671386719, - 115.5000228881836, - 485.75006103515625 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 127.60002136230469, - 466.8500671386719, - 157.80001831054688, - 485.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "5Èǯ>©)8Æ", - "origin": [ - 127.60002136230469, - 473.3500671386719 - ], - "bbox": [ - 127.60002136230469, - 466.8500671386719, - 157.80001831054688, - 485.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.60002136230469, - 466.8500671386719, - 157.80001831054688, - 485.75006103515625 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 162.9000244140625, - 467.1500549316406, - 169.7000274658203, - 486.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Å4É", - "origin": [ - 162.9000244140625, - 473.6500549316406 - ], - "bbox": [ - 162.9000244140625, - 467.1500549316406, - 169.7000274658203, - 486.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.9000244140625, - 467.1500549316406, - 169.7000274658203, - 486.050048828125 - ] - } - ] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 174.9000244140625, - 466.8500671386719, - 207.4000244140625, - 485.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ">V,rʷ˒*-Çs3", - "origin": [ - 174.9000244140625, - 473.3500671386719 - ], - "bbox": [ - 174.9000244140625, - 466.8500671386719, - 207.4000244140625, - 485.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 174.9000244140625, - 466.8500671386719, - 207.4000244140625, - 485.75006103515625 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 218.9000244140625, - 466.8500671386719, - 382.70001220703125, - 485.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "5¾)uÆaË=3y*\u001e:=3+,g,œ)+*4ÌÍ,gÎB)8Ï?>©Æa˒57>µÌBË=,gÏ", - "origin": [ - 218.9000244140625, - 473.3500671386719 - ], - "bbox": [ - 218.9000244140625, - 466.8500671386719, - 382.70001220703125, - 485.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9000244140625, - 466.8500671386719, - 382.70001220703125, - 485.75006103515625 - ] - } - ] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 393.4000549316406, - 466.8500671386719, - 427.5000305175781, - 485.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ">©ÆT>W*4>V,g,", - "origin": [ - 393.4000549316406, - 473.3500671386719 - ], - "bbox": [ - 393.4000549316406, - 466.8500671386719, - 427.5000305175781, - 485.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 393.4000549316406, - 466.8500671386719, - 427.5000305175781, - 485.75006103515625 - ] - } - ] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 71.40005493164062, - 479.4500732421875, - 522.0000610351562, - 498.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ð\u0010ÑlÒrÓcÓcÔÖÕQÒrÑr×gØ+ÓZ×gÙ³ÚyÑw×½ÛcÜu×QÝrÞGß%à»ÔwÛcÜ\u0019ÔwÛcÓ4á-ÔwÝ?âuãWÔÖÑÖÑwס×gäVâ8Ò\u001dÛcÔwÝ?Ø&ÔÖÙ�å+ÑlÔw×gÓ°ÛcÜu×\u001bÒ\u001dÚ+ÓZ×gØ8Õ/×\u001bÝræ8Ò¢ÓcÛcÒ\u001dÚ+Ñw×½çrÞGÝ?â8Ø8è³ÓcÛcÒ\u001dÛZ×ré", - "origin": [ - 71.40005493164062, - 485.9500732421875 - ], - "bbox": [ - 71.40005493164062, - 479.4500732421875, - 522.0000610351562, - 498.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.40005493164062, - 479.4500732421875, - 522.0000610351562, - 498.3500671386719 - ] - } - ] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 71.10005187988281, - 492.4500732421875, - 522.2000732421875, - 511.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×gØ¥Þc×Qà^Þ1ÔwÛZÛZ×g؜ÒrÓ\u001bÒ&ê¢ÔÖÑÖÚ6×QÞGÛ½ÓZå+ÒrÕ/×\u0016ÛcÜu×QÝrÞcß�à»ÔÖÛcܜÒrØ\u001fÒrØ8ÒrÑwÝrç?âu×\u0016Ýræ¬ÛcÜu×;ëWÕGÜ8Þaì", - "origin": [ - 71.10005187988281, - 498.9500732421875 - ], - "bbox": [ - 71.10005187988281, - 492.4500732421875, - 404.6999816894531, - 511.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10005187988281, - 492.4500732421875, - 404.6999816894531, - 511.3500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?è8ÔÖØuçr×QÞ\"×gä©â+Ò\u001dÛcÔwÝ?Ø�í¸î\u001déWïVéuð\u0018ñJò", - "origin": [ - 403.90008544921875, - 498.9500732421875 - ], - "bbox": [ - 403.90008544921875, - 492.4500732421875, - 522.2000732421875, - 511.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 403.90008544921875, - 492.4500732421875, - 522.2000732421875, - 511.3500671386719 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 71.40008544921875, - 505.3500671386719, - 520.4000244140625, - 524.2500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ð\u001bÝrÞGÞc×gÓZåÝ?Ø8è8ÔÖØ8ç?Ñwßré©ÛcÜ8×\u0019ÒrØ8ÒrÑwÝrç?â8׳Ýræ¡ÛcÜu×%ãrÝ?Ø¢ó»×gâ+Ù¥ÒrØ8ؗ×gäVâ8Ò\u001dÛcÔwÝ?صÝrÚ8ÛcÒrÔÖØ8Ó¢ÒrØ!â8ØVâ8Ócâ+ÒrѰÓcâuå×QÞcÝrå×QÞGÒ\u001dÛZÝrÞ", - "origin": [ - 71.40008544921875, - 511.8500671386719 - ], - "bbox": [ - 71.40008544921875, - 505.3500671386719, - 520.4000244140625, - 524.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.40008544921875, - 505.3500671386719, - 520.4000244140625, - 524.2500610351562 - ] - } - ] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 71.10008239746094, - 518.35009765625, - 396.2000732421875, - 537.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü+ÔÖÕGܗÕ/Ý?âuåyÑw×gÓ\u0010ÛcÜu׳ê\u0016ÔÖÑwڐ×QÞcÛ\u0010ÓZå+ÒrÕ/׳ÒrØ+è–ÔwÛcÓ^è8â+ÒrÑ­í", - "origin": [ - 71.10008239746094, - 524.85009765625 - ], - "bbox": [ - 71.10008239746094, - 518.35009765625, - 287.6000671386719, - 537.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 518.35009765625, - 287.6000671386719, - 537.2501220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ô\u001dñJé+Õ/æ¯ò\u0010ëV×gÕ/ÛcÔwÝ?Ø!ï\u0014ڐ×gÑwÝaà%ò", - "origin": [ - 289.8000793457031, - 524.85009765625 - ], - "bbox": [ - 289.8000793457031, - 518.35009765625, - 396.2000732421875, - 537.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.8000793457031, - 518.35009765625, - 396.2000732421875, - 537.2501220703125 - ] - } - ] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 93.3000717163086, - 531.35009765625, - 518.800048828125, - 550.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×gÓZ×\u0010æ=×gÒ\u001dÛcâuÞc×gÓ­Ü+Ògãr×Nå8Þc×gÓc×gتÛZ×gè¥Óc×QÞGÔwÝ?â8ÓBÝrÚ+ÓZÛcÒrÕQÑÖ×gÓ¡ÛZÝ%Ò;Ø©â+ٳڐ×QÞ·ÝræyÞG×gÕ/×gتۭÒ\u001dÛZÛZ×gÙ�å+ÛcÓ­ÛZÝ%â8Ø8è8×QÞGÓZÛcÒrØ8è", - "origin": [ - 93.3000717163086, - 537.85009765625 - ], - "bbox": [ - 93.3000717163086, - 531.35009765625, - 518.800048828125, - 550.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.3000717163086, - 531.35009765625, - 518.800048828125, - 550.2501220703125 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 71.2000732421875, - 544.2500610351562, - 511.79986572265625, - 563.1500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "äVâ8ÒrØ©Ûcâ8ÙöÙ�×gÕGÜ+ÒrØ8ÔÖÕQÓ»ÒrÓ»Òrؖ×gÙ�×QÞcçr×gØ©Û^å+Ü8×gØuÝ?Ù�×gØuÝ?Ø7íž÷Vé6øVé6ù©éyúVéyûVé4îQürñJé+ÓZ×Q׳ÒrÑÖÓcÝ¥ý^×Qæ’ÓQò4í¸îrî?é¬îgðWé-î/ô\u001dñJò", - "origin": [ - 71.2000732421875, - 550.7500610351562 - ], - "bbox": [ - 71.2000732421875, - 544.2500610351562, - 511.79986572265625, - 563.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 544.2500610351562, - 511.79986572265625, - 563.1500854492188 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 85.6000747680664, - 557.2500610351562, - 522.300048828125, - 576.1500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëWâ8Õ1ܾÓZÛcâ+è8Ôw×gÓ&Ò\u001dÞcחÓZÛZÞcÝ?Øuç?Ñwß¾Ù�ÝrÛcÔwã\u001dÒ\u001dÛZ×gè\u000bÚ©ß7ÔlÓcÓcâu×gÓ&ÓcâuÞcÞGÝ?â8Ø8è8ÔÖØ8ç–ä©â8ÒrØ©Ûcâ8ÙþçrÞGÒTãVÔwÛ¯ßré\"ÔÖØ¾å+Ò\u001dÞcÛcÔlÕQâ8ÑÖÒ\u001dÞgé", - "origin": [ - 85.6000747680664, - 563.7500610351562 - ], - "bbox": [ - 85.6000747680664, - 557.2500610351562, - 522.300048828125, - 576.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.6000747680664, - 557.2500610351562, - 522.300048828125, - 576.1500854492188 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 71.1000747680664, - 570.1500244140625, - 521.60009765625, - 589.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u0019æ=ÒrÕ/Û¢ÛcÜ8Ò\u001dۓä©â8ÒrØ©Ûcâ8ÙÿÛcÜu×QÝrÞcߖÔÖÓ¢Ü8Ò\u001dÞGè8Ñwß\rÕ/Ý?Ù�å+Ò\u001dÛcÔÖÚ+Ñw×%à»ÔÖÛcܖÛcÜu×&ÓZßVÙ Ù�×QÛZÞcß\rÞc×gäVâ8ÔwÞc×gÙ�×gØ©ÛcÓ^Ýræ¡çr×gØ8×QÞGÒrÑ", - "origin": [ - 71.1000747680664, - 576.6500244140625 - ], - "bbox": [ - 71.1000747680664, - 570.1500244140625, - 521.60009765625, - 589.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.1000747680664, - 570.1500244140625, - 521.60009765625, - 589.050048828125 - ] - } - ] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 71.1000747680664, - 583.1500244140625, - 521.60009765625, - 602.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÑlÒ\u001dÛcÔwãVÔÖÛsß\u000bÝrÞ\rÝræ%ÝrÛcÜu×QÞ\rÛcÜu×QÝrÞGÔw×gÓ\u001fèu×gÓcÕ/Þ1ÔwÚ+ÔÖØuç�çrÞ1ÒgãWÔwÛsßÍÒrØ8è\u001eÓcå+ÒrÕ/×QÛcÔÖÙ�×ré^à¢Ü8ÔÖÕGÜ\u001eÒ\u001dÞc×", - "origin": [ - 71.1000747680664, - 589.6500244140625 - ], - "bbox": [ - 71.1000747680664, - 583.1500244140625, - 432.2000427246094, - 602.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.1000747680664, - 583.1500244140625, - 432.2000427246094, - 602.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú+ÒrÓZ×gèÍÝ?Ø", - "origin": [ - 442.2000732421875, - 589.6500244140625 - ], - "bbox": [ - 442.2000732421875, - 583.1500244140625, - 479.60009765625, - 602.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 442.2000732421875, - 583.1500244140625, - 479.60009765625, - 602.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çr×gØ8×QÞGÒrÑ", - "origin": [ - 490.6000671386719, - 589.6500244140625 - ], - "bbox": [ - 490.6000671386719, - 583.1500244140625, - 521.60009765625, - 602.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 490.6000671386719, - 583.1500244140625, - 521.60009765625, - 602.050048828125 - ] - } - ] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 71.2000732421875, - 596.1500244140625, - 176.60006713867188, - 615.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/ÝVÝrÞGè8ÔÖØ+Ò\u001dÛZ×", - "origin": [ - 71.2000732421875, - 602.6500244140625 - ], - "bbox": [ - 71.2000732421875, - 596.1500244140625, - 116.40007019042969, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 596.1500244140625, - 116.40007019042969, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ã\u0018Ò\u001dÞ1ÔÖÒrØ8Õ/×rò", - "origin": [ - 128.10006713867188, - 602.6500244140625 - ], - "bbox": [ - 128.10006713867188, - 596.1500244140625, - 176.60006713867188, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.10006713867188, - 596.1500244140625, - 176.60006713867188, - 615.050048828125 - ] - } - ] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 199.7000732421875, - 596.1500244140625, - 521.6000366210938, - 615.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "â8ÞcÛcÜu×QÞGÙ�ÝrÞG×ré\u000fè8×gÓZå+ÔwÛZ×", - "origin": [ - 199.7000732421875, - 602.6500244140625 - ], - "bbox": [ - 199.7000732421875, - 596.1500244140625, - 292.5000915527344, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 199.7000732421875, - 596.1500244140625, - 292.5000915527344, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×", - "origin": [ - 304.00006103515625, - 602.6500244140625 - ], - "bbox": [ - 304.00006103515625, - 596.1500244140625, - 314.4000549316406, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.00006103515625, - 596.1500244140625, - 314.4000549316406, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çrÞc×gÒ\u001dÛ", - "origin": [ - 326.1000671386719, - 602.6500244140625 - ], - "bbox": [ - 326.1000671386719, - 596.1500244140625, - 346.0000305175781, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.1000671386719, - 596.1500244140625, - 346.0000305175781, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ócâ+ÕQÕ/×gÓcÓZ×gÓÍÔÖØ", - "origin": [ - 357.4000549316406, - 602.6500244140625 - ], - "bbox": [ - 357.4000549316406, - 596.1500244140625, - 410.00006103515625, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.4000549316406, - 596.1500244140625, - 410.00006103515625, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×", - "origin": [ - 422.7000732421875, - 602.6500244140625 - ], - "bbox": [ - 422.7000732421875, - 596.1500244140625, - 422.7000732421875, - 615.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 422.7000732421875, - 602.6500244140625 - ], - "bbox": [ - 422.7000732421875, - 596.1500244140625, - 427.40008544921875, - 614.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Wå+ÑÖÒrÔÖØ+ÔÖØuç", - "origin": [ - 427.40008544921875, - 602.6500244140625 - ], - "bbox": [ - 427.40008544921875, - 596.1500244140625, - 466.4001159667969, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.7000732421875, - 596.1500244140625, - 466.4001159667969, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛcÒ\u001dÛcÔÖÓcÛcÔÖÕQÒrÑ", - "origin": [ - 478.50006103515625, - 602.6500244140625 - ], - "bbox": [ - 478.50006103515625, - 596.1500244140625, - 521.6000366210938, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.50006103515625, - 596.1500244140625, - 521.6000366210938, - 615.050048828125 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 71.20004272460938, - 609.050048828125, - 518.7000122070312, - 627.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrÓZå×gÕ/ÛcÓ¢Ýræ¡×", - "origin": [ - 71.20004272460938, - 615.550048828125 - ], - "bbox": [ - 71.20004272460938, - 609.050048828125, - 121.90003967285156, - 627.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 121.90003967285156, - 615.550048828125 - ], - "bbox": [ - 121.90003967285156, - 609.050048828125, - 126.60003662109375, - 626.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå×QÞGÔlÙ�×gتÛcÓgé+ÛcÜu×&ÔÖØªÛZÞ1ÔÖØ8ÓcÔÖÕQÒrÑlÑwß ÔÖØ8è8×QÛZ×QÞGÙ¥ÔÖØ8ÔlÓZÛcÔÖÕ\u0016æ™×gÒ\u001dÛcâ8Þc×gÓ»Ýræ\"ä©â8ÒrØ©Ûcâ8Ù", - "origin": [ - 126.60003662109375, - 615.550048828125 - ], - "bbox": [ - 126.60003662109375, - 609.050048828125, - 427.00006103515625, - 627.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 609.050048828125, - 427.00006103515625, - 627.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù�×gÕGÜ8ÒrØ+ÔÖÕQÓ»ÞG×gÙ¥ÒrÔÖØ", - "origin": [ - 439.9000549316406, - 615.550048828125 - ], - "bbox": [ - 439.9000549316406, - 609.050048828125, - 518.7000122070312, - 627.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 439.9000549316406, - 609.050048828125, - 518.7000122070312, - 627.9500732421875 - ] - } - ] - }, - { - "number": 99, - "type": 0, - "bbox": [ - 71.10003662109375, - 622.050048828125, - 128.20004272460938, - 640.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å8ÞGÝrÚ+Ñw×gÙ¥Ò\u001dÛcÔÖÕ\u001dò", - "origin": [ - 71.10003662109375, - 628.550048828125 - ], - "bbox": [ - 71.10003662109375, - 622.050048828125, - 128.20004272460938, - 640.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 622.050048828125, - 128.20004272460938, - 640.9500732421875 - ] - } - ] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 145.300048828125, - 622.050048828125, - 518.6000366210938, - 640.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖӓÔÖÓ%ÓZ×Q×gجé4æ=ÝrÞ%×", - "origin": [ - 145.300048828125, - 628.550048828125 - ], - "bbox": [ - 145.300048828125, - 622.050048828125, - 219.1000518798828, - 640.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 219.1000518798828, - 628.550048828125 - ], - "bbox": [ - 219.1000518798828, - 622.050048828125, - 223.800048828125, - 639.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÒrÙ¥å+Ñw×ré-ÔlØ\u000fÛcÜu× â8ØuÞG×gÓZÝ?Ñwãr×gè�Ù�×gÒrÓcâ8Þc×gÙ�×gØ©Û%å8ÞcÝrÚ+ÑÖ×gٗé¬à»ÔwÛcÜ\u000fÞG×gÑÖÒ\u001dÛZ×gè", - "origin": [ - 223.800048828125, - 628.550048828125 - ], - "bbox": [ - 223.800048828125, - 622.050048828125, - 518.6000366210938, - 640.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 145.300048828125, - 622.050048828125, - 518.6000366210938, - 640.9500732421875 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 71.2000503540039, - 634.9500732421875, - 520.3999633789062, - 653.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓGÓcâu×gÓ^Ýræ½à\u001bÒTãr×�æ=â8Ø+Õ/ÛcÔwÝ?Ø!Õ/Ý?ÑÖÑlÒ\u001då+ÓZ׳ÝrޓÝrÚ", - "origin": [ - 71.2000503540039, - 641.4500732421875 - ], - "bbox": [ - 71.2000503540039, - 634.9500732421875, - 244.5000457763672, - 653.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 244.5000457763672, - 641.4500732421875 - ], - "bbox": [ - 244.5000457763672, - 634.9500732421875, - 250.40003967285156, - 652.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÔwãr×\u0014Þc×gè8â+Õ/ÛcÔwÝ?ؾí¸îg÷8éBîgøañJé°ÒrØ8è", - "origin": [ - 250.40003967285156, - 641.4500732421875 - ], - "bbox": [ - 250.40003967285156, - 634.9500732421875, - 388.0000305175781, - 653.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000503540039, - 634.9500732421875, - 388.0000305175781, - 653.85009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØµÛcÜu×&äVâ8ÒrØ©Ûcâ8Ù\u001aÙ�×gÕGÜ8ÒrØ+ÔÖÕQÓ", - "origin": [ - 398.00006103515625, - 641.4500732421875 - ], - "bbox": [ - 398.00006103515625, - 634.9500732421875, - 520.3999633789062, - 653.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.00006103515625, - 634.9500732421875, - 520.3999633789062, - 653.85009765625 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 71.10006713867188, - 647.9500732421875, - 417.4001159667969, - 666.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝræBÛcÜu׳â8Ø+Ôwãr×QÞGÓZ×réuÕ/Ý?Ø8ÓcÔlèu×QÞc×gè—ÒrÓ»Ò¥à»ÜuÝ?Ñw×réuà»Ü+ÔÖÕGܗ٥ÔÖç?ܪÛNڐ×%ÓZ×gÑwæ", - "origin": [ - 71.10006713867188, - 654.4500732421875 - ], - "bbox": [ - 71.10006713867188, - 647.9500732421875, - 347.2001037597656, - 666.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 347.2001037597656, - 654.4500732421875 - ], - "bbox": [ - 347.2001037597656, - 647.9500732421875, - 350.5000915527344, - 665.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "sÕ/Ý?Ø©ÛZÞGÒrè8ÔÖÕ/ÛZÝrÞcßrò", - "origin": [ - 350.5000915527344, - 654.4500732421875 - ], - "bbox": [ - 350.5000915527344, - 647.9500732421875, - 417.4001159667969, - 666.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 647.9500732421875, - 417.4001159667969, - 666.85009765625 - ] - } - ] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 92.50006866455078, - 660.7500610351562, - 522.1000366210938, - 679.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×QÛ�ÛcÜu×QÞcזÔÖÓ\u0014Ò", - "origin": [ - 92.50006866455078, - 667.2500610351562 - ], - "bbox": [ - 92.50006866455078, - 660.7500610351562, - 147.40008544921875, - 679.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.50006866455078, - 660.7500610351562, - 147.40008544921875, - 679.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å8ÞcÝVÝræ»Ýræ¢×", - "origin": [ - 157.4000701904297, - 667.2500610351562 - ], - "bbox": [ - 157.4000701904297, - 660.7500610351562, - 200.5000762939453, - 679.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 200.5000762939453, - 667.2500610351562 - ], - "bbox": [ - 200.5000762939453, - 660.7500610351562, - 205.2000732421875, - 678.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔlÓZÛZ×gØ8Õ/חÝræ¢è8×QÛZ×QÞGÙ¥ÔÖØ8ÔlÓZÛcÔÖÕ Ù¥ÝVèu×gÑlÓ\u0019æ=ÝrÞ¥äVâ8ÒrتÛcâ+Ù", - "origin": [ - 205.2000732421875, - 667.2500610351562 - ], - "bbox": [ - 205.2000732421875, - 660.7500610351562, - 417.10009765625, - 679.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.4000701904297, - 660.7500610351562, - 417.10009765625, - 679.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù�×gÕGÜ8ÒrØ+ÔÖÕQÒrÑ\u0010ÝrÚ", - "origin": [ - 430.90008544921875, - 667.2500610351562 - ], - "bbox": [ - 430.90008544921875, - 660.7500610351562, - 493.3000793457031, - 679.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 493.3000793457031, - 667.2500610351562 - ], - "bbox": [ - 493.3000793457031, - 660.7500610351562, - 499.2000732421875, - 678.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÓQé", - "origin": [ - 499.2000732421875, - 667.2500610351562 - ], - "bbox": [ - 499.2000732421875, - 660.7500610351562, - 522.1000366210938, - 679.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.90008544921875, - 660.7500610351562, - 522.1000366210938, - 679.6500854492188 - ] - } - ] - }, - { - "number": 106, - "type": 0, - "bbox": [ - 71.2000732421875, - 673.7500610351562, - 521.60009765625, - 692.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ\u001eà»Ü8ÔlÕGÜÍè8ÔÖÓcÓcÔÖå+Ò\u001dÛcÔwÝ?ذéNÔIòž×ròwé\u0016Ò¾æ’â8Ø8è+ÒrÙ�×gتÛcÒrÑ\u0016ÔÖØuæ=ÝrÞGÙ¥Ò\u001dÛcÔÖÝ?Ø\u001eÑwÝ?ÓGÓ\u001fÙ¥×gÕGÜ8ÒrØ8ÔlÓcٗé»Ü8ÒrÓ\u001fڐ×Q×gØ", - "origin": [ - 71.2000732421875, - 680.2500610351562 - ], - "bbox": [ - 71.2000732421875, - 673.7500610351562, - 456.9000244140625, - 692.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 673.7500610351562, - 456.9000244140625, - 692.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØÍ×gÓcÓZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 468.2000732421875, - 680.2500610351562 - ], - "bbox": [ - 468.2000732421875, - 673.7500610351562, - 521.60009765625, - 692.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 468.2000732421875, - 673.7500610351562, - 521.60009765625, - 692.6500854492188 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 71.2000732421875, - 686.7500610351562, - 157.4000701904297, - 705.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ8çrÞc×gè8Ôw×gØ©Û%í¸îTùVé¬îgú\u0018ñJò", - "origin": [ - 71.2000732421875, - 693.2500610351562 - ], - "bbox": [ - 71.2000732421875, - 686.7500610351562, - 157.4000701904297, - 705.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 686.7500610351562, - 157.4000701904297, - 705.6500854492188 - ] - } - ] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 96.50006866455078, - 699.6500244140625, - 516.2000732421875, - 718.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÛcÜ\u0012ÛcÜu×gÓZ×", - "origin": [ - 96.50006866455078, - 706.1500244140625 - ], - "bbox": [ - 96.50006866455078, - 699.6500244140625, - 134.10006713867188, - 718.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u000b\n", - "origin": [ - 134.10006713867188, - 706.1500244140625 - ], - "bbox": [ - 134.10006713867188, - 699.6500244140625, - 143.7000732421875, - 717.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø+è8ÔÖØuç?Ó\u0014ÔÖØ\u0012Ù¥ÔlØ8è°é½à\u001bחå8Þc×gÓc×gتÛcÑwß\u000bè8ÔÖÓGÕQâ8ÓcÓ�ÒrÓZå×gÕ/ÛcÓ�Ýræ;Ò", - "origin": [ - 143.7000732421875, - 706.1500244140625 - ], - "bbox": [ - 143.7000732421875, - 699.6500244140625, - 387.9000549316406, - 718.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.50006866455078, - 699.6500244140625, - 387.9000549316406, - 718.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èußWØ8ÒrÙ¥ÔlÕQÒrÑ\u0010ÛZÞGÒrØ8ÓcÔwÛcÔÖÝ?Ø", - "origin": [ - 398.2000732421875, - 706.1500244140625 - ], - "bbox": [ - 398.2000732421875, - 699.6500244140625, - 492.1000671386719, - 718.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\r\f\u000f\u000e\u0011\u0010\u0013\u0012", - "origin": [ - 492.1000671386719, - 706.1500244140625 - ], - "bbox": [ - 492.1000671386719, - 699.6500244140625, - 516.2000732421875, - 717.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.2000732421875, - 699.6500244140625, - 516.2000732421875, - 718.550048828125 - ] - } - ] - }, - { - "number": 110, - "type": 0, - "bbox": [ - 71.2000732421875, - 712.6500244140625, - 520.2999267578125, - 731.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÑÖÒrÓGÓcÔÖÕQÒrÑ", - "origin": [ - 71.2000732421875, - 719.1500244140625 - ], - "bbox": [ - 71.2000732421875, - 712.6500244140625, - 106.50008392333984, - 731.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0015\u0014\u0016\u0010", - "origin": [ - 106.50008392333984, - 719.1500244140625 - ], - "bbox": [ - 106.50008392333984, - 712.6500244140625, - 117.90007781982422, - 730.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014ä©â+ÒrتÛcâ8Ù", - "origin": [ - 117.90007781982422, - 719.1500244140625 - ], - "bbox": [ - 117.90007781982422, - 712.6500244140625, - 160.10008239746094, - 731.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 712.6500244140625, - 160.10008239746094, - 731.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×gÜ8ÒTãVÔÖÝ?âuÞgéÒrÓcÓcâ8Ù¥ÔlØuçœÛcÜ+Ò\u001dÛ", - "origin": [ - 173.2000732421875, - 719.1500244140625 - ], - "bbox": [ - 173.2000732421875, - 712.6500244140625, - 291.00006103515625, - 731.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017\u001a\u0019\u0015\u001b\u001d\u001c\u0013\u001e\u001f\u0014 \u001b�\u0012!\f#\"$\u001c%\u0014 \u001b�\u000e$\"'&(\u0010\u0013\u000e')+*,)�\u001e-\u001c%\u0014.\"/\f\u000f\u000e\u0011\u0010\u0013\u00120\u001c21\u0013)�&3&\u000f)54�\u001c%\u0014 )76\u0013\"", - "origin": [ - 291.00006103515625, - 719.1500244140625 - ], - "bbox": [ - 291.00006103515625, - 712.6500244140625, - 520.2999267578125, - 730.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.2000732421875, - 712.6500244140625, - 520.2999267578125, - 731.550048828125 - ] - } - ] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 70.90007019042969, - 725.550048828125, - 516.300048828125, - 743.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "48\u000e\u0011\u0010#9'\"'&3&\u000b:<;=)>9�;?\u001cA@B\"39#\u00147&C\u001c\u0013D�DE4\u001f;GFH&') 9\u000f\u001c\u0013D/\u0010=I>J\u0018\"39#\u00147&�KMLNF\u0013\u001e8\u001c\u0013\u0012O) 9\u0018&\u000b\u001c%\u001e81\r&�\u0014\u0016\u001c%\u0014 )P&�\u0014 ) 9\u000f\u001c\u0013DQ)7\u001e\u001f\u0014.\"�\u000e.48\u000e$\"\u0018\u0014\u0016\u001c%\u0014 )>\u0010\u0013\u001eR\u0010A\fCS\u0018\u001b\u001d\u001c\u0013\u001e\u001f\u0014 \u001b�\u0012", - "origin": [ - 70.90007019042969, - 732.050048828125 - ], - "bbox": [ - 70.90007019042969, - 725.550048828125, - 516.300048828125, - 743.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.90007019042969, - 725.550048828125, - 516.300048828125, - 743.4500732421875 - ] - } - ] - }, - { - "number": 112, - "type": 0, - "bbox": [ - 71.60006713867188, - 738.550048828125, - 521.6000366210938, - 756.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&�\u0014\u0016\u001c%\u0014.\"'&UT7VB\u0010\u0013\u000e'\u001eW\u000e'\u001bXDY\"[ZC\u0010\u0013\u000e')+*,)�\u001e-\u001c%\u0014.\"\u0015\f'\u000eA\u0010%\u001201=\"\u0018\u0014.\"\u0018\u000e\u000f\u0012O)7\u001e\u001d)�&'\u0014 )>9\\\\u000e'\u001bXDY\"'&\u000f]\u0015&\u000f\u001b\u001d9�;2\u001c\u0013&^\"\u0018\u0012^I3\u0010#1\u0013)\u0016\"$1_)�\u001eW9#D+\u001c\u0013&3&\u000f)>93\u001c%D`\u0012^\"39�;X\u001c%\u001e\u001d) 9\u0018&3]", - "origin": [ - 71.60006713867188, - 745.050048828125 - ], - "bbox": [ - 71.60006713867188, - 738.550048828125, - 521.6000366210938, - 756.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.60006713867188, - 738.550048828125, - 521.6000366210938, - 756.4500732421875 - ] - } - ] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 71.70006561279297, - 751.550048828125, - 176.10008239746094, - 769.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")7\u001e\r\u001c%\u001ea\"\u0018\u001eb&\u0018\"\u0018\u0012(I�DY\"c\u00147;�\"$\u0010\u0013\u000e'F,K", - "origin": [ - 71.70006561279297, - 758.050048828125 - ], - "bbox": [ - 71.70006561279297, - 751.550048828125, - 176.10008239746094, - 769.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.70006561279297, - 751.550048828125, - 176.10008239746094, - 769.4500732421875 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 71.9962158203125, - 595.5, - 285.1500549316406 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 142.699951171875, - 291.35003662109375, - 522.7000122070312, - 430.9500427246094 - ], - "layout_label": "U", - "sub_layout": [], - "bad_boxes": [ - [ - 397.39996337890625, - 291.550048828125, - 522.5999755859375, - 398.050048828125 - ], - [ - 311.5, - 291.550048828125, - 507.6000061035156, - 310.4500427246094 - ], - [ - 240.6999969482422, - 302.550048828125, - 487.10003662109375, - 321.4500427246094 - ], - [ - 191.2000274658203, - 401.1500549316406, - 465.0001220703125, - 430.9500427246094 - ], - [ - 213.7999267578125, - 335.3500671386719, - 447.29998779296875, - 365.050048828125 - ], - [ - 203.3999786376953, - 324.4500732421875, - 408.70001220703125, - 343.3500671386719 - ], - [ - 241.59999084472656, - 368.25006103515625, - 511.7000732421875, - 420.050048828125 - ], - [ - 397.39996337890625, - 291.550048828125, - 522.5999755859375, - 398.050048828125 - ], - [ - 311.5, - 291.550048828125, - 507.6000061035156, - 310.4500427246094 - ], - [ - 241.59999084472656, - 368.25006103515625, - 511.7000732421875, - 420.050048828125 - ] - ] - }, - { - "layout_bbox": [ - 0, - 466.8500671386719, - 595.5, - 808.4216918945312 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 71.5999984741211, - 200.25, - 516.4000244140625, - 219.14999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "������\u000b\n\r\f\u000f\u000e\u0010�\u0012\u0011", - "origin": [ - 71.5999984741211, - 206.75 - ], - "bbox": [ - 71.5999984741211, - 200.25, - 177.6999969482422, - 219.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.5999984741211, - 200.25, - 177.6999969482422, - 219.14999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�\u0014\u0013\u0016\u0015\u000b\n\r\f\u0012\u0017\u0018\u0013\u0019�\u001a\u000e\u001b��\u001c\u001d\u001c\u001e\n\u001f\f", - "origin": [ - 215.60000610351562, - 206.75 - ], - "bbox": [ - 215.60000610351562, - 200.25, - 333.0, - 219.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.60000610351562, - 200.25, - 333.0, - 219.14999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\n \u000e\u0010�!\u0011", - "origin": [ - 349.5, - 206.75 - ], - "bbox": [ - 349.5, - 200.25, - 376.20001220703125, - 219.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.5, - 200.25, - 376.20001220703125, - 219.14999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0017\u001d�\"\u000e\u0010\u0017\u001d\u0013#�\u0010$\u000b\n\r\u0013%�&\u000e\u0010\u0017\u001d\u0011", - "origin": [ - 392.3999938964844, - 206.75 - ], - "bbox": [ - 392.3999938964844, - 200.25, - 490.79998779296875, - 219.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 392.3999938964844, - 200.25, - 490.79998779296875, - 219.14999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�\r'", - "origin": [ - 506.8999938964844, - 206.75 - ], - "bbox": [ - 506.8999938964844, - 200.25, - 516.4000244140625, - 219.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 506.8999938964844, - 200.25, - 516.4000244140625, - 219.14999389648438 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 142.89999389648438, - 235.45001220703125, - 239.7999725341797, - 254.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "(!)+*-,/.10&243657)8,�9;:=", - "origin": [ - 142.89999389648438, - 241.95001220703125 - ], - "bbox": [ - 142.89999389648438, - 235.45001220703125, - 239.7999725341797, - 254.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89999389648438, - 235.45001220703125, - 239.7999725341797, - 254.35000610351562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 142.79998779296875, - 250.35003662109375, - 460.6000671386719, - 269.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "@BADC\u0018EGFIHJALKNMPOQHJR\u0010STAVUWALXIALYZE\u0014[=\\+OTFJADY]R^U\u0018M]FJKNAL_a`abVEcFJdeR^fWR1OgHJM]YPR1FJh/R\u0010iT`\u001djlk=m1nToZpeq\u001bf8ALXJET`rjlHsE1tLADE", - "origin": [ - 142.79998779296875, - 256.85003662109375 - ], - "bbox": [ - 142.79998779296875, - 250.35003662109375, - 460.6000671386719, - 269.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.79998779296875, - 250.35003662109375, - 460.6000671386719, - 269.2500305175781 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 142.89999389648438, - 266.25006103515625, - 246.40000915527344, - 285.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�klK^E1ALtwvyxQz1{Qx/|1}/~8l€/T‚cƒa‚VI‚c„", - "origin": [ - 142.89999389648438, - 272.75006103515625 - ], - "bbox": [ - 142.89999389648438, - 266.25006103515625, - 246.40000915527344, - 285.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89999389648438, - 266.25006103515625, - 246.40000915527344, - 285.1500549316406 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 142.89999389648438, - 291.35003662109375, - 202.20001220703125, - 310.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "…^†u‡PˆP‰cŠ\u0018‹eˆeŒŽ", - "origin": [ - 142.89999389648438, - 297.85003662109375 - ], - "bbox": [ - 142.89999389648438, - 291.35003662109375, - 202.20001220703125, - 310.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89999389648438, - 291.35003662109375, - 202.20001220703125, - 310.2500305175781 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 207.29998779296875, - 291.550048828125, - 302.5999755859375, - 310.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M\u0019YPE1O\u0018R1O\u0018ALYZEGt\"EGO\u0018X’‘6M]F“HJR�H", - "origin": [ - 207.29998779296875, - 298.050048828125 - ], - "bbox": [ - 207.29998779296875, - 291.550048828125, - 302.5999755859375, - 310.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 207.29998779296875, - 291.550048828125, - 302.5999755859375, - 310.4500427246094 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 311.5, - 291.550048828125, - 507.6000061035156, - 310.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M\u0019”Q•\u0018MPX’HJALReO–CrR1XIMZS—ADX\u001f[™˜yMPXPš", - "origin": [ - 311.5, - 298.050048828125 - ], - "bbox": [ - 311.5, - 291.550048828125, - 415.4000549316406, - 310.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5, - 291.550048828125, - 415.4000549316406, - 310.4500427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "_�›œHsE1Y]ALHJtž–EGXIXI•\u0018KNALO\u0018d�H", - "origin": [ - 417.3999938964844, - 298.050048828125 - ], - "bbox": [ - 417.3999938964844, - 291.550048828125, - 507.6000061035156, - 310.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 417.3999938964844, - 291.550048828125, - 507.6000061035156, - 310.4500427246094 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 516.5, - 291.550048828125, - 520.9000244140625, - 310.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGH", - "origin": [ - 516.5, - 298.050048828125 - ], - "bbox": [ - 516.5, - 291.550048828125, - 520.9000244140625, - 310.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5, - 291.550048828125, - 520.9000244140625, - 310.4500427246094 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 142.89999389648438, - 302.550048828125, - 182.6999969482422, - 321.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u0018E1OQHJ•\u0018KŸH", - "origin": [ - 142.89999389648438, - 309.050048828125 - ], - "bbox": [ - 142.89999389648438, - 302.550048828125, - 182.6999969482422, - 321.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89999389648438, - 302.550048828125, - 182.6999969482422, - 321.4500427246094 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 191.59999084472656, - 302.550048828125, - 231.79998779296875, - 321.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPRGFI\u001fEGO\u001dS�H", - "origin": [ - 191.59999084472656, - 309.050048828125 - ], - "bbox": [ - 191.59999084472656, - 302.550048828125, - 231.79998779296875, - 321.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.59999084472656, - 302.550048828125, - 231.79998779296875, - 321.4500427246094 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 240.6999969482422, - 302.550048828125, - 487.10003662109375, - 321.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M“Y]ReO\u0018Y]MPCaH^RG ¡XIC\u001dEGYPM]HJALKNM;EGFJM¢HJR\u0014£rM“•\u0018OaAž¤\u001dMZS¥£Q\u001f¦ž”Q•\u0018E1OQHJAL§PALO\u0018da¨yE\u0019H", - "origin": [ - 240.6999969482422, - 309.050048828125 - ], - "bbox": [ - 240.6999969482422, - 302.550048828125, - 487.10003662109375, - 321.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.6999969482422, - 302.550048828125, - 487.10003662109375, - 321.4500427246094 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 495.8999938964844, - 302.550048828125, - 521.6000366210938, - 321.4500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPR1FI¥RG ", - "origin": [ - 495.8999938964844, - 309.050048828125 - ], - "bbox": [ - 495.8999938964844, - 302.550048828125, - 521.6000366210938, - 321.4500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 495.8999938964844, - 302.550048828125, - 521.6000366210938, - 321.4500427246094 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 142.79998779296875, - 313.4500732421875, - 395.5000305175781, - 332.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "dGFsEZhTAžHsEcHJADR1O©š8˜yM]HZ`gALO\u0018X’HJMZE1Sª`TReOaMBK^EPNCrReO\u0018SaM]FZv8«6Re•\u0018tDS¢”g•\u0018E1OQHJ•\u0018K7KNMPY", - "origin": [ - 142.79998779296875, - 319.9500732421875 - ], - "bbox": [ - 142.79998779296875, - 313.4500732421875, - 395.5000305175781, - 332.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.79998779296875, - 313.4500732421875, - 395.5000305175781, - 332.3500671386719 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 404.5999755859375, - 313.4500732421875, - 519.300048828125, - 332.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u0018ALYPXEcFJALXIM¡E1X¬E­YPR/EcFJXIM]kld1FsEGADOaMZS", - "origin": [ - 404.5999755859375, - 319.9500732421875 - ], - "bbox": [ - 404.5999755859375, - 313.4500732421875, - 519.300048828125, - 332.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 404.5999755859375, - 313.4500732421875, - 519.300048828125, - 332.3500671386719 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 142.69998168945312, - 324.4500732421875, - 194.49998474121094, - 343.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "FJM¯®\u001dMPY]HJALR1O�R1 °H", - "origin": [ - 142.69998168945312, - 330.9500732421875 - ], - "bbox": [ - 142.69998168945312, - 324.4500732421875, - 194.49998474121094, - 343.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.69998168945312, - 324.4500732421875, - 194.49998474121094, - 343.3500671386719 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 203.3999786376953, - 324.4500732421875, - 408.70001220703125, - 343.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M^EcHJReKNALX’HJALY^O\u001dEGHJ•TFJMNR1 ¬XIC\u0018E1YPM]HJALKNMc±\u000f›;²\u0014MNXICrM]YP•\u0018tDEGHJM^H", - "origin": [ - 203.3999786376953, - 330.9500732421875 - ], - "bbox": [ - 203.3999786376953, - 324.4500732421875, - 408.70001220703125, - 343.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.3999786376953, - 324.4500732421875, - 408.70001220703125, - 343.3500671386719 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 417.699951171875, - 324.4500732421875, - 429.2999267578125, - 343.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EcH­H", - "origin": [ - 417.699951171875, - 330.9500732421875 - ], - "bbox": [ - 417.699951171875, - 324.4500732421875, - 429.2999267578125, - 343.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 417.699951171875, - 324.4500732421875, - 429.2999267578125, - 343.3500671386719 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 438.199951171875, - 324.4500732421875, - 511.699951171875, - 343.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX­K^EZ³ALO\u001dSTMPMZS&£rM\u0010H", - "origin": [ - 438.199951171875, - 330.9500732421875 - ], - "bbox": [ - 438.199951171875, - 324.4500732421875, - 511.699951171875, - 343.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.199951171875, - 324.4500732421875, - 511.699951171875, - 343.3500671386719 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 142.7999267578125, - 335.3500671386719, - 204.8999481201172, - 354.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "YPE1XIMešu²&MFJMPYZE1tLtTH", - "origin": [ - 142.7999267578125, - 341.8500671386719 - ], - "bbox": [ - 142.7999267578125, - 335.3500671386719, - 204.8999481201172, - 354.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.7999267578125, - 335.3500671386719, - 204.8999481201172, - 354.25006103515625 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 213.7999267578125, - 335.3500671386719, - 447.29998779296875, - 354.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MXIALKNALtDEGFJAžH=\"£rM]H=‘6MPMPO\u0010M]h/RetL•aHJALR1O\u0010R1 rY]t´EGXIXIALYZE1t?EGO\u001dS\u001b”Q•\u0018E1OQHJ•\u0018KµKNMPY", - "origin": [ - 213.7999267578125, - 341.8500671386719 - ], - "bbox": [ - 213.7999267578125, - 335.3500671386719, - 447.29998779296875, - 354.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 213.7999267578125, - 335.3500671386719, - 447.29998779296875, - 354.25006103515625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 456.39996337890625, - 335.3500671386719, - 522.5999755859375, - 354.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaADYPE1tTMPO\u0018XIMPK\"£\u0018tLMPXP`", - "origin": [ - 456.39996337890625, - 341.8500671386719 - ], - "bbox": [ - 456.39996337890625, - 335.3500671386719, - 522.5999755859375, - 354.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 456.39996337890625, - 335.3500671386719, - 522.5999755859375, - 354.25006103515625 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 142.89996337890625, - 346.3500671386719, - 403.300048828125, - 365.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGYPYPRGFsSaALO\u0018d\u0014HJR&b©ALRe•ahTALtLtLM³E1O\u001dS h/ReO°¶-MP•\u0018K^EGO\u0018O MZ”Q•\u001dEcHJADR1O©`FJM]XICrMPY]HJALh/MPtžQš", - "origin": [ - 142.89996337890625, - 352.8500671386719 - ], - "bbox": [ - 142.89996337890625, - 346.3500671386719, - 403.300048828125, - 365.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89996337890625, - 346.3500671386719, - 403.300048828125, - 365.25006103515625 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 413.0999755859375, - 346.1500549316406, - 419.5999755859375, - 365.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 413.0999755859375, - 352.6500549316406 - ], - "bbox": [ - 413.0999755859375, - 346.1500549316406, - 419.5999755859375, - 365.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 413.0999755859375, - 346.1500549316406, - 419.5999755859375, - 365.050048828125 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 424.79998779296875, - 346.3500671386719, - 517.0, - 365.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M\u0016YPtDE1XIXIALYZE1t·E1O\u001dSœ”Q•\u001dE1OQHJ•aK", - "origin": [ - 424.79998779296875, - 352.8500671386719 - ], - "bbox": [ - 424.79998779296875, - 346.3500671386719, - 517.0, - 365.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.79998779296875, - 346.3500671386719, - 517.0, - 365.25006103515625 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 142.79998779296875, - 357.3500671386719, - 154.59999084472656, - 376.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNM]Y", - "origin": [ - 142.79998779296875, - 363.8500671386719 - ], - "bbox": [ - 142.79998779296875, - 357.3500671386719, - 154.59999084472656, - 376.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.79998779296875, - 357.3500671386719, - 154.59999084472656, - 376.25006103515625 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 163.69998168945312, - 357.3500671386719, - 292.5999755859375, - 376.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1O\u0018ALYZEGt¬MZ”Q•\u001dEGHJALR1O\u0018X^EGFJM;ALO\u0018SaALX’HJALO\u0018de•aALX", - "origin": [ - 163.69998168945312, - 363.8500671386719 - ], - "bbox": [ - 163.69998168945312, - 357.3500671386719, - 292.5999755859375, - 376.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.69998168945312, - 357.3500671386719, - 292.5999755859375, - 376.25006103515625 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 301.4999694824219, - 357.3500671386719, - 369.699951171875, - 376.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1£atLM“ ¸R1F^R1£T¹=MPY]HJXN‘", - "origin": [ - 301.4999694824219, - 363.8500671386719 - ], - "bbox": [ - 301.4999694824219, - 357.3500671386719, - 369.699951171875, - 376.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.4999694824219, - 357.3500671386719, - 369.699951171875, - 376.25006103515625 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 381.5999755859375, - 357.3500671386719, - 384.0999755859375, - 376.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALY", - "origin": [ - 381.5999755859375, - 363.8500671386719 - ], - "bbox": [ - 381.5999755859375, - 357.3500671386719, - 384.0999755859375, - 376.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 381.5999755859375, - 357.3500671386719, - 384.0999755859375, - 376.25006103515625 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 397.39996337890625, - 357.3500671386719, - 519.5, - 376.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EcFJM“ ºFJMPM“RGF»XI•\u0018£g¹’MPY]HNHJR\u0019XIC\u001dEcHJA´EGtLtL", - "origin": [ - 397.39996337890625, - 363.8500671386719 - ], - "bbox": [ - 397.39996337890625, - 357.3500671386719, - 519.5, - 376.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.39996337890625, - 357.3500671386719, - 519.5, - 376.25006103515625 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 142.79995727539062, - 368.25006103515625, - 308.29998779296875, - 387.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Y]ReO\u0018X’HsEGOQH\"£a•aH­CrR1XIXIAD£atž&HJALKNMNSaM]CrMPO\u001dSTMPOQHZ`WR1F", - "origin": [ - 142.79995727539062, - 374.75006103515625 - ], - "bbox": [ - 142.79995727539062, - 368.25006103515625, - 308.29998779296875, - 387.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.79995727539062, - 368.25006103515625, - 308.29998779296875, - 387.1500549316406 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 320.89996337890625, - 368.25006103515625, - 498.60009765625, - 387.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGFJKNReOaALY\u001b ¸RGFJYPMPXP`8Až °FJMPCaFJM]XIMPOQHJMZS\u0014E1CaCaFJR1CaFJADEGHJMPtžQš", - "origin": [ - 320.89996337890625, - 374.75006103515625 - ], - "bbox": [ - 320.89996337890625, - 368.25006103515625, - 498.60009765625, - 387.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.89996337890625, - 368.25006103515625, - 498.60009765625, - 387.1500549316406 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 506.699951171875, - 368.050048828125, - 513.199951171875, - 386.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 506.699951171875, - 374.550048828125 - ], - "bbox": [ - 506.699951171875, - 368.050048828125, - 513.199951171875, - 386.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 506.699951171875, - 368.050048828125, - 513.199951171875, - 386.9500427246094 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 518.3999633789062, - 368.25006103515625, - 520.8999633789062, - 387.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX", - "origin": [ - 518.3999633789062, - 374.75006103515625 - ], - "bbox": [ - 518.3999633789062, - 368.25006103515625, - 520.8999633789062, - 387.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.3999633789062, - 368.25006103515625, - 520.8999633789062, - 387.1500549316406 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 142.699951171875, - 379.1500549316406, - 296.6000061035156, - 398.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "FJM]XI•\u0018tžH·XI•adedeM]X’HJX·E\u0010‘°EP\u0016HJRNALOaYPR1FJCrRGFsEGHJM\"E1O", - "origin": [ - 142.699951171875, - 385.6500549316406 - ], - "bbox": [ - 142.699951171875, - 379.1500549316406, - 296.6000061035156, - 398.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.699951171875, - 379.1500549316406, - 296.6000061035156, - 398.050048828125 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 306.9999694824219, - 379.1500549316406, - 485.60003662109375, - 398.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGFJKNR1O\u0018ALY­ADOQHJM]FsEGY]HJALReOaXP`?ADOaYPtL•\u001dSTADOad\u0010®\u001d•aY]HJ•\u001dEcHJADR1O\u0018X¬‘", - "origin": [ - 306.9999694824219, - 385.6500549316406 - ], - "bbox": [ - 306.9999694824219, - 379.1500549316406, - 485.60003662109375, - 398.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.9999694824219, - 379.1500549316406, - 485.60003662109375, - 398.050048828125 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 497.5, - 379.1500549316406, - 500.0, - 398.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALY", - "origin": [ - 497.5, - 385.6500549316406 - ], - "bbox": [ - 497.5, - 379.1500549316406, - 500.0, - 398.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 497.5, - 379.1500549316406, - 500.0, - 398.050048828125 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 512.2999877929688, - 379.1500549316406, - 520.4000244140625, - 398.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGFJM", - "origin": [ - 512.2999877929688, - 385.6500549316406 - ], - "bbox": [ - 512.2999877929688, - 379.1500549316406, - 520.4000244140625, - 398.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 512.2999877929688, - 379.1500549316406, - 520.4000244140625, - 398.050048828125 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 142.69998168945312, - 390.25006103515625, - 232.79995727539062, - 409.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "HJM]OgHsEcHJALh/MPtž\u0019FJM]t´EcHJMZS\u0019HJR“H", - "origin": [ - 142.69998168945312, - 396.75006103515625 - ], - "bbox": [ - 142.69998168945312, - 390.25006103515625, - 232.79995727539062, - 409.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.69998168945312, - 390.25006103515625, - 232.79995727539062, - 409.1500549316406 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 241.59999084472656, - 390.25006103515625, - 511.7000732421875, - 409.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M\u0010•\u0018O\u0018SaM]FJtžTALO\u0018d;STADXIY¯FJM]HJMPO\u0018M]XIX\"RG °XIC\u001dEGYPM]HJALKNMeš\u0016¼6MPALO\u0018d;tLALO\u0018MZEcF\u0010EGO\u001dS³tDRQYPE1t°EcH½H", - "origin": [ - 241.59999084472656, - 396.75006103515625 - ], - "bbox": [ - 241.59999084472656, - 390.25006103515625, - 511.7000732421875, - 409.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.59999084472656, - 390.25006103515625, - 511.7000732421875, - 409.1500549316406 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 142.89999389648438, - 401.1500549316406, - 193.5, - 420.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u0018E1OQHJ•\u0018K¾KNMPY", - "origin": [ - 142.89999389648438, - 407.6500549316406 - ], - "bbox": [ - 142.89999389648438, - 401.1500549316406, - 193.5, - 420.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.89999389648438, - 401.1500549316406, - 193.5, - 420.050048828125 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 202.59999084472656, - 401.1500549316406, - 252.30001831054688, - 420.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaADYPE1t?tLMPh/MPtw`TH", - "origin": [ - 202.59999084472656, - 407.6500549316406 - ], - "bbox": [ - 202.59999084472656, - 401.1500549316406, - 252.30001831054688, - 420.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.59999084472656, - 401.1500549316406, - 252.30001831054688, - 420.050048828125 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 261.20001220703125, - 401.1500549316406, - 340.9000244140625, - 420.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M·KNRgSTMPt?R1¿?M]FJX4E\u001bSTMPYPR", - "origin": [ - 261.20001220703125, - 407.6500549316406 - ], - "bbox": [ - 261.20001220703125, - 401.1500549316406, - 340.9000244140625, - 420.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 261.20001220703125, - 401.1500549316406, - 340.9000244140625, - 420.050048828125 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 350.60003662109375, - 401.1500549316406, - 489.60009765625, - 420.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]FJMPOaYPM­E1O\u0018S¢O\u0018EGHJ•aFsEGt?tDRQYPE1tLAL§ZEGHJALReO%KNMPY", - "origin": [ - 350.60003662109375, - 407.6500549316406 - ], - "bbox": [ - 350.60003662109375, - 401.1500549316406, - 489.60009765625, - 420.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.60003662109375, - 401.1500549316406, - 489.60009765625, - 420.050048828125 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 498.70001220703125, - 401.1500549316406, - 522.7000122070312, - 420.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u0018ALXIK“š", - "origin": [ - 498.70001220703125, - 407.6500549316406 - ], - "bbox": [ - 498.70001220703125, - 401.1500549316406, - 522.7000122070312, - 420.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 498.70001220703125, - 401.1500549316406, - 522.7000122070312, - 420.050048828125 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 142.80001831054688, - 412.050048828125, - 182.40000915527344, - 430.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "À-RZ‘MPh/M¯FZ`aH", - "origin": [ - 142.80001831054688, - 418.550048828125 - ], - "bbox": [ - 142.80001831054688, - 412.050048828125, - 182.40000915527344, - 430.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.80001831054688, - 412.050048828125, - 182.40000915527344, - 430.9500427246094 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 191.2000274658203, - 412.050048828125, - 465.0001220703125, - 430.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MBFJMPtDEGHJALReO“HJR\u001bCaFJALKNR1FsSTA´EGtVSTM]HJM]FJKNALO\u0018ALX’HJALY¡STMPd1FJMPM]X-RG W ºFJMPMPSaReKÁALX¬O\u0018R1O\u0018tLRQYZE1twš", - "origin": [ - 191.2000274658203, - 418.550048828125 - ], - "bbox": [ - 191.2000274658203, - 412.050048828125, - 465.0001220703125, - 430.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.2000274658203, - 412.050048828125, - 465.0001220703125, - 430.9500427246094 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 71.8000259399414, - 467.1500549316406, - 96.0000228881836, - 486.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Â+Ã\u0014Ä¥Å", - "origin": [ - 71.8000259399414, - 473.6500549316406 - ], - "bbox": [ - 71.8000259399414, - 467.1500549316406, - 96.0000228881836, - 486.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.8000259399414, - 467.1500549316406, - 96.0000228881836, - 486.050048828125 - ] - } - ] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 102.9000244140625, - 466.8500671386719, - 115.5000228881836, - 485.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ")+*6Æ", - "origin": [ - 102.9000244140625, - 473.3500671386719 - ], - "bbox": [ - 102.9000244140625, - 466.8500671386719, - 115.5000228881836, - 485.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.9000244140625, - 466.8500671386719, - 115.5000228881836, - 485.75006103515625 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 127.60002136230469, - 466.8500671386719, - 157.80001831054688, - 485.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "5Èǯ>©)8Æ", - "origin": [ - 127.60002136230469, - 473.3500671386719 - ], - "bbox": [ - 127.60002136230469, - 466.8500671386719, - 157.80001831054688, - 485.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.60002136230469, - 466.8500671386719, - 157.80001831054688, - 485.75006103515625 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 162.9000244140625, - 467.1500549316406, - 169.7000274658203, - 486.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Å4É", - "origin": [ - 162.9000244140625, - 473.6500549316406 - ], - "bbox": [ - 162.9000244140625, - 467.1500549316406, - 169.7000274658203, - 486.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.9000244140625, - 467.1500549316406, - 169.7000274658203, - 486.050048828125 - ] - } - ] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 174.9000244140625, - 466.8500671386719, - 207.4000244140625, - 485.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ">V,rʷ˒*-Çs3", - "origin": [ - 174.9000244140625, - 473.3500671386719 - ], - "bbox": [ - 174.9000244140625, - 466.8500671386719, - 207.4000244140625, - 485.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 174.9000244140625, - 466.8500671386719, - 207.4000244140625, - 485.75006103515625 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 218.9000244140625, - 466.8500671386719, - 382.70001220703125, - 485.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "5¾)uÆaË=3y*\u001e:=3+,g,œ)+*4ÌÍ,gÎB)8Ï?>©Æa˒57>µÌBË=,gÏ", - "origin": [ - 218.9000244140625, - 473.3500671386719 - ], - "bbox": [ - 218.9000244140625, - 466.8500671386719, - 382.70001220703125, - 485.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9000244140625, - 466.8500671386719, - 382.70001220703125, - 485.75006103515625 - ] - } - ] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 393.4000549316406, - 466.8500671386719, - 427.5000305175781, - 485.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ">©ÆT>W*4>V,g,", - "origin": [ - 393.4000549316406, - 473.3500671386719 - ], - "bbox": [ - 393.4000549316406, - 466.8500671386719, - 427.5000305175781, - 485.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 393.4000549316406, - 466.8500671386719, - 427.5000305175781, - 485.75006103515625 - ] - } - ] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 71.40005493164062, - 479.4500732421875, - 522.0000610351562, - 498.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ð\u0010ÑlÒrÓcÓcÔÖÕQÒrÑr×gØ+ÓZ×gÙ³ÚyÑw×½ÛcÜu×QÝrÞGß%à»ÔwÛcÜ\u0019ÔwÛcÓ4á-ÔwÝ?âuãWÔÖÑÖÑwס×gäVâ8Ò\u001dÛcÔwÝ?Ø&ÔÖÙ�å+ÑlÔw×gÓ°ÛcÜu×\u001bÒ\u001dÚ+ÓZ×gØ8Õ/×\u001bÝræ8Ò¢ÓcÛcÒ\u001dÚ+Ñw×½çrÞGÝ?â8Ø8è³ÓcÛcÒ\u001dÛZ×ré", - "origin": [ - 71.40005493164062, - 485.9500732421875 - ], - "bbox": [ - 71.40005493164062, - 479.4500732421875, - 522.0000610351562, - 498.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.40005493164062, - 479.4500732421875, - 522.0000610351562, - 498.3500671386719 - ] - } - ] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 71.10005187988281, - 492.4500732421875, - 522.2000732421875, - 511.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×gØ¥Þc×Qà^Þ1ÔwÛZÛZ×g؜ÒrÓ\u001bÒ&ê¢ÔÖÑÖÚ6×QÞGÛ½ÓZå+ÒrÕ/×\u0016ÛcÜu×QÝrÞcß�à»ÔÖÛcܜÒrØ\u001fÒrØ8ÒrÑwÝrç?âu×\u0016Ýræ¬ÛcÜu×;ëWÕGÜ8Þaì", - "origin": [ - 71.10005187988281, - 498.9500732421875 - ], - "bbox": [ - 71.10005187988281, - 492.4500732421875, - 404.6999816894531, - 511.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10005187988281, - 492.4500732421875, - 404.6999816894531, - 511.3500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?è8ÔÖØuçr×QÞ\"×gä©â+Ò\u001dÛcÔwÝ?Ø�í¸î\u001déWïVéuð\u0018ñJò", - "origin": [ - 403.90008544921875, - 498.9500732421875 - ], - "bbox": [ - 403.90008544921875, - 492.4500732421875, - 522.2000732421875, - 511.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 403.90008544921875, - 492.4500732421875, - 522.2000732421875, - 511.3500671386719 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 71.40008544921875, - 505.3500671386719, - 520.4000244140625, - 524.2500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ð\u001bÝrÞGÞc×gÓZåÝ?Ø8è8ÔÖØ8ç?Ñwßré©ÛcÜ8×\u0019ÒrØ8ÒrÑwÝrç?â8׳Ýræ¡ÛcÜu×%ãrÝ?Ø¢ó»×gâ+Ù¥ÒrØ8ؗ×gäVâ8Ò\u001dÛcÔwÝ?صÝrÚ8ÛcÒrÔÖØ8Ó¢ÒrØ!â8ØVâ8Ócâ+ÒrѰÓcâuå×QÞcÝrå×QÞGÒ\u001dÛZÝrÞ", - "origin": [ - 71.40008544921875, - 511.8500671386719 - ], - "bbox": [ - 71.40008544921875, - 505.3500671386719, - 520.4000244140625, - 524.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.40008544921875, - 505.3500671386719, - 520.4000244140625, - 524.2500610351562 - ] - } - ] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 71.10008239746094, - 518.35009765625, - 396.2000732421875, - 537.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü+ÔÖÕGܗÕ/Ý?âuåyÑw×gÓ\u0010ÛcÜu׳ê\u0016ÔÖÑwڐ×QÞcÛ\u0010ÓZå+ÒrÕ/׳ÒrØ+è–ÔwÛcÓ^è8â+ÒrÑ­í", - "origin": [ - 71.10008239746094, - 524.85009765625 - ], - "bbox": [ - 71.10008239746094, - 518.35009765625, - 287.6000671386719, - 537.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 518.35009765625, - 287.6000671386719, - 537.2501220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ô\u001dñJé+Õ/æ¯ò\u0010ëV×gÕ/ÛcÔwÝ?Ø!ï\u0014ڐ×gÑwÝaà%ò", - "origin": [ - 289.8000793457031, - 524.85009765625 - ], - "bbox": [ - 289.8000793457031, - 518.35009765625, - 396.2000732421875, - 537.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.8000793457031, - 518.35009765625, - 396.2000732421875, - 537.2501220703125 - ] - } - ] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 93.3000717163086, - 531.35009765625, - 518.800048828125, - 550.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×gÓZ×\u0010æ=×gÒ\u001dÛcâuÞc×gÓ­Ü+Ògãr×Nå8Þc×gÓc×gتÛZ×gè¥Óc×QÞGÔwÝ?â8ÓBÝrÚ+ÓZÛcÒrÕQÑÖ×gÓ¡ÛZÝ%Ò;Ø©â+ٳڐ×QÞ·ÝræyÞG×gÕ/×gتۭÒ\u001dÛZÛZ×gÙ�å+ÛcÓ­ÛZÝ%â8Ø8è8×QÞGÓZÛcÒrØ8è", - "origin": [ - 93.3000717163086, - 537.85009765625 - ], - "bbox": [ - 93.3000717163086, - 531.35009765625, - 518.800048828125, - 550.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.3000717163086, - 531.35009765625, - 518.800048828125, - 550.2501220703125 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 71.2000732421875, - 544.2500610351562, - 511.79986572265625, - 563.1500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "äVâ8ÒrØ©Ûcâ8ÙöÙ�×gÕGÜ+ÒrØ8ÔÖÕQÓ»ÒrÓ»Òrؖ×gÙ�×QÞcçr×gØ©Û^å+Ü8×gØuÝ?Ù�×gØuÝ?Ø7íž÷Vé6øVé6ù©éyúVéyûVé4îQürñJé+ÓZ×Q׳ÒrÑÖÓcÝ¥ý^×Qæ’ÓQò4í¸îrî?é¬îgðWé-î/ô\u001dñJò", - "origin": [ - 71.2000732421875, - 550.7500610351562 - ], - "bbox": [ - 71.2000732421875, - 544.2500610351562, - 511.79986572265625, - 563.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 544.2500610351562, - 511.79986572265625, - 563.1500854492188 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 85.6000747680664, - 557.2500610351562, - 522.300048828125, - 576.1500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëWâ8Õ1ܾÓZÛcâ+è8Ôw×gÓ&Ò\u001dÞcחÓZÛZÞcÝ?Øuç?Ñwß¾Ù�ÝrÛcÔwã\u001dÒ\u001dÛZ×gè\u000bÚ©ß7ÔlÓcÓcâu×gÓ&ÓcâuÞcÞGÝ?â8Ø8è8ÔÖØ8ç–ä©â8ÒrØ©Ûcâ8ÙþçrÞGÒTãVÔwÛ¯ßré\"ÔÖØ¾å+Ò\u001dÞcÛcÔlÕQâ8ÑÖÒ\u001dÞgé", - "origin": [ - 85.6000747680664, - 563.7500610351562 - ], - "bbox": [ - 85.6000747680664, - 557.2500610351562, - 522.300048828125, - 576.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.6000747680664, - 557.2500610351562, - 522.300048828125, - 576.1500854492188 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 71.1000747680664, - 570.1500244140625, - 521.60009765625, - 589.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u0019æ=ÒrÕ/Û¢ÛcÜ8Ò\u001dۓä©â8ÒrØ©Ûcâ8ÙÿÛcÜu×QÝrÞcߖÔÖÓ¢Ü8Ò\u001dÞGè8Ñwß\rÕ/Ý?Ù�å+Ò\u001dÛcÔÖÚ+Ñw×%à»ÔÖÛcܖÛcÜu×&ÓZßVÙ Ù�×QÛZÞcß\rÞc×gäVâ8ÔwÞc×gÙ�×gØ©ÛcÓ^Ýræ¡çr×gØ8×QÞGÒrÑ", - "origin": [ - 71.1000747680664, - 576.6500244140625 - ], - "bbox": [ - 71.1000747680664, - 570.1500244140625, - 521.60009765625, - 589.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.1000747680664, - 570.1500244140625, - 521.60009765625, - 589.050048828125 - ] - } - ] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 71.1000747680664, - 583.1500244140625, - 521.60009765625, - 602.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÑlÒ\u001dÛcÔwãVÔÖÛsß\u000bÝrÞ\rÝræ%ÝrÛcÜu×QÞ\rÛcÜu×QÝrÞGÔw×gÓ\u001fèu×gÓcÕ/Þ1ÔwÚ+ÔÖØuç�çrÞ1ÒgãWÔwÛsßÍÒrØ8è\u001eÓcå+ÒrÕ/×QÛcÔÖÙ�×ré^à¢Ü8ÔÖÕGÜ\u001eÒ\u001dÞc×", - "origin": [ - 71.1000747680664, - 589.6500244140625 - ], - "bbox": [ - 71.1000747680664, - 583.1500244140625, - 432.2000427246094, - 602.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.1000747680664, - 583.1500244140625, - 432.2000427246094, - 602.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú+ÒrÓZ×gèÍÝ?Ø", - "origin": [ - 442.2000732421875, - 589.6500244140625 - ], - "bbox": [ - 442.2000732421875, - 583.1500244140625, - 479.60009765625, - 602.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 442.2000732421875, - 583.1500244140625, - 479.60009765625, - 602.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çr×gØ8×QÞGÒrÑ", - "origin": [ - 490.6000671386719, - 589.6500244140625 - ], - "bbox": [ - 490.6000671386719, - 583.1500244140625, - 521.60009765625, - 602.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 490.6000671386719, - 583.1500244140625, - 521.60009765625, - 602.050048828125 - ] - } - ] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 71.2000732421875, - 596.1500244140625, - 176.60006713867188, - 615.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/ÝVÝrÞGè8ÔÖØ+Ò\u001dÛZ×", - "origin": [ - 71.2000732421875, - 602.6500244140625 - ], - "bbox": [ - 71.2000732421875, - 596.1500244140625, - 116.40007019042969, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 596.1500244140625, - 116.40007019042969, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ã\u0018Ò\u001dÞ1ÔÖÒrØ8Õ/×rò", - "origin": [ - 128.10006713867188, - 602.6500244140625 - ], - "bbox": [ - 128.10006713867188, - 596.1500244140625, - 176.60006713867188, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.10006713867188, - 596.1500244140625, - 176.60006713867188, - 615.050048828125 - ] - } - ] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 199.7000732421875, - 596.1500244140625, - 521.6000366210938, - 615.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "â8ÞcÛcÜu×QÞGÙ�ÝrÞG×ré\u000fè8×gÓZå+ÔwÛZ×", - "origin": [ - 199.7000732421875, - 602.6500244140625 - ], - "bbox": [ - 199.7000732421875, - 596.1500244140625, - 292.5000915527344, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 199.7000732421875, - 596.1500244140625, - 292.5000915527344, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×", - "origin": [ - 304.00006103515625, - 602.6500244140625 - ], - "bbox": [ - 304.00006103515625, - 596.1500244140625, - 314.4000549316406, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.00006103515625, - 596.1500244140625, - 314.4000549316406, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çrÞc×gÒ\u001dÛ", - "origin": [ - 326.1000671386719, - 602.6500244140625 - ], - "bbox": [ - 326.1000671386719, - 596.1500244140625, - 346.0000305175781, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.1000671386719, - 596.1500244140625, - 346.0000305175781, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ócâ+ÕQÕ/×gÓcÓZ×gÓÍÔÖØ", - "origin": [ - 357.4000549316406, - 602.6500244140625 - ], - "bbox": [ - 357.4000549316406, - 596.1500244140625, - 410.00006103515625, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.4000549316406, - 596.1500244140625, - 410.00006103515625, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×", - "origin": [ - 422.7000732421875, - 602.6500244140625 - ], - "bbox": [ - 422.7000732421875, - 596.1500244140625, - 422.7000732421875, - 615.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 422.7000732421875, - 602.6500244140625 - ], - "bbox": [ - 422.7000732421875, - 596.1500244140625, - 427.40008544921875, - 614.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Wå+ÑÖÒrÔÖØ+ÔÖØuç", - "origin": [ - 427.40008544921875, - 602.6500244140625 - ], - "bbox": [ - 427.40008544921875, - 596.1500244140625, - 466.4001159667969, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.7000732421875, - 596.1500244140625, - 466.4001159667969, - 615.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛcÒ\u001dÛcÔÖÓcÛcÔÖÕQÒrÑ", - "origin": [ - 478.50006103515625, - 602.6500244140625 - ], - "bbox": [ - 478.50006103515625, - 596.1500244140625, - 521.6000366210938, - 615.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.50006103515625, - 596.1500244140625, - 521.6000366210938, - 615.050048828125 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 71.20004272460938, - 609.050048828125, - 518.7000122070312, - 627.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrÓZå×gÕ/ÛcÓ¢Ýræ¡×", - "origin": [ - 71.20004272460938, - 615.550048828125 - ], - "bbox": [ - 71.20004272460938, - 609.050048828125, - 121.90003967285156, - 627.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 121.90003967285156, - 615.550048828125 - ], - "bbox": [ - 121.90003967285156, - 609.050048828125, - 126.60003662109375, - 626.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå×QÞGÔlÙ�×gتÛcÓgé+ÛcÜu×&ÔÖØªÛZÞ1ÔÖØ8ÓcÔÖÕQÒrÑlÑwß ÔÖØ8è8×QÛZ×QÞGÙ¥ÔÖØ8ÔlÓZÛcÔÖÕ\u0016æ™×gÒ\u001dÛcâ8Þc×gÓ»Ýræ\"ä©â8ÒrØ©Ûcâ8Ù", - "origin": [ - 126.60003662109375, - 615.550048828125 - ], - "bbox": [ - 126.60003662109375, - 609.050048828125, - 427.00006103515625, - 627.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 609.050048828125, - 427.00006103515625, - 627.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù�×gÕGÜ8ÒrØ+ÔÖÕQÓ»ÞG×gÙ¥ÒrÔÖØ", - "origin": [ - 439.9000549316406, - 615.550048828125 - ], - "bbox": [ - 439.9000549316406, - 609.050048828125, - 518.7000122070312, - 627.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 439.9000549316406, - 609.050048828125, - 518.7000122070312, - 627.9500732421875 - ] - } - ] - }, - { - "number": 99, - "type": 0, - "bbox": [ - 71.10003662109375, - 622.050048828125, - 128.20004272460938, - 640.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å8ÞGÝrÚ+Ñw×gÙ¥Ò\u001dÛcÔÖÕ\u001dò", - "origin": [ - 71.10003662109375, - 628.550048828125 - ], - "bbox": [ - 71.10003662109375, - 622.050048828125, - 128.20004272460938, - 640.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 622.050048828125, - 128.20004272460938, - 640.9500732421875 - ] - } - ] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 145.300048828125, - 622.050048828125, - 518.6000366210938, - 640.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖӓÔÖÓ%ÓZ×Q×gجé4æ=ÝrÞ%×", - "origin": [ - 145.300048828125, - 628.550048828125 - ], - "bbox": [ - 145.300048828125, - 622.050048828125, - 219.1000518798828, - 640.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 219.1000518798828, - 628.550048828125 - ], - "bbox": [ - 219.1000518798828, - 622.050048828125, - 223.800048828125, - 639.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÒrÙ¥å+Ñw×ré-ÔlØ\u000fÛcÜu× â8ØuÞG×gÓZÝ?Ñwãr×gè�Ù�×gÒrÓcâ8Þc×gÙ�×gØ©Û%å8ÞcÝrÚ+ÑÖ×gٗé¬à»ÔwÛcÜ\u000fÞG×gÑÖÒ\u001dÛZ×gè", - "origin": [ - 223.800048828125, - 628.550048828125 - ], - "bbox": [ - 223.800048828125, - 622.050048828125, - 518.6000366210938, - 640.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 145.300048828125, - 622.050048828125, - 518.6000366210938, - 640.9500732421875 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 71.2000503540039, - 634.9500732421875, - 520.3999633789062, - 653.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓGÓcâu×gÓ^Ýræ½à\u001bÒTãr×�æ=â8Ø+Õ/ÛcÔwÝ?Ø!Õ/Ý?ÑÖÑlÒ\u001då+ÓZ׳ÝrޓÝrÚ", - "origin": [ - 71.2000503540039, - 641.4500732421875 - ], - "bbox": [ - 71.2000503540039, - 634.9500732421875, - 244.5000457763672, - 653.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 244.5000457763672, - 641.4500732421875 - ], - "bbox": [ - 244.5000457763672, - 634.9500732421875, - 250.40003967285156, - 652.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÔwãr×\u0014Þc×gè8â+Õ/ÛcÔwÝ?ؾí¸îg÷8éBîgøañJé°ÒrØ8è", - "origin": [ - 250.40003967285156, - 641.4500732421875 - ], - "bbox": [ - 250.40003967285156, - 634.9500732421875, - 388.0000305175781, - 653.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000503540039, - 634.9500732421875, - 388.0000305175781, - 653.85009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØµÛcÜu×&äVâ8ÒrØ©Ûcâ8Ù\u001aÙ�×gÕGÜ8ÒrØ+ÔÖÕQÓ", - "origin": [ - 398.00006103515625, - 641.4500732421875 - ], - "bbox": [ - 398.00006103515625, - 634.9500732421875, - 520.3999633789062, - 653.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.00006103515625, - 634.9500732421875, - 520.3999633789062, - 653.85009765625 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 71.10006713867188, - 647.9500732421875, - 417.4001159667969, - 666.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝræBÛcÜu׳â8Ø+Ôwãr×QÞGÓZ×réuÕ/Ý?Ø8ÓcÔlèu×QÞc×gè—ÒrÓ»Ò¥à»ÜuÝ?Ñw×réuà»Ü+ÔÖÕGܗ٥ÔÖç?ܪÛNڐ×%ÓZ×gÑwæ", - "origin": [ - 71.10006713867188, - 654.4500732421875 - ], - "bbox": [ - 71.10006713867188, - 647.9500732421875, - 347.2001037597656, - 666.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 347.2001037597656, - 654.4500732421875 - ], - "bbox": [ - 347.2001037597656, - 647.9500732421875, - 350.5000915527344, - 665.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "sÕ/Ý?Ø©ÛZÞGÒrè8ÔÖÕ/ÛZÝrÞcßrò", - "origin": [ - 350.5000915527344, - 654.4500732421875 - ], - "bbox": [ - 350.5000915527344, - 647.9500732421875, - 417.4001159667969, - 666.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 647.9500732421875, - 417.4001159667969, - 666.85009765625 - ] - } - ] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 92.50006866455078, - 660.7500610351562, - 522.1000366210938, - 679.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×QÛ�ÛcÜu×QÞcזÔÖÓ\u0014Ò", - "origin": [ - 92.50006866455078, - 667.2500610351562 - ], - "bbox": [ - 92.50006866455078, - 660.7500610351562, - 147.40008544921875, - 679.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.50006866455078, - 660.7500610351562, - 147.40008544921875, - 679.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å8ÞcÝVÝræ»Ýræ¢×", - "origin": [ - 157.4000701904297, - 667.2500610351562 - ], - "bbox": [ - 157.4000701904297, - 660.7500610351562, - 200.5000762939453, - 679.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 200.5000762939453, - 667.2500610351562 - ], - "bbox": [ - 200.5000762939453, - 660.7500610351562, - 205.2000732421875, - 678.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔlÓZÛZ×gØ8Õ/חÝræ¢è8×QÛZ×QÞGÙ¥ÔÖØ8ÔlÓZÛcÔÖÕ Ù¥ÝVèu×gÑlÓ\u0019æ=ÝrÞ¥äVâ8ÒrتÛcâ+Ù", - "origin": [ - 205.2000732421875, - 667.2500610351562 - ], - "bbox": [ - 205.2000732421875, - 660.7500610351562, - 417.10009765625, - 679.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.4000701904297, - 660.7500610351562, - 417.10009765625, - 679.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù�×gÕGÜ8ÒrØ+ÔÖÕQÒrÑ\u0010ÝrÚ", - "origin": [ - 430.90008544921875, - 667.2500610351562 - ], - "bbox": [ - 430.90008544921875, - 660.7500610351562, - 493.3000793457031, - 679.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 493.3000793457031, - 667.2500610351562 - ], - "bbox": [ - 493.3000793457031, - 660.7500610351562, - 499.2000732421875, - 678.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÓQé", - "origin": [ - 499.2000732421875, - 667.2500610351562 - ], - "bbox": [ - 499.2000732421875, - 660.7500610351562, - 522.1000366210938, - 679.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.90008544921875, - 660.7500610351562, - 522.1000366210938, - 679.6500854492188 - ] - } - ] - }, - { - "number": 106, - "type": 0, - "bbox": [ - 71.2000732421875, - 673.7500610351562, - 521.60009765625, - 692.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ\u001eà»Ü8ÔlÕGÜÍè8ÔÖÓcÓcÔÖå+Ò\u001dÛcÔwÝ?ذéNÔIòž×ròwé\u0016Ò¾æ’â8Ø8è+ÒrÙ�×gتÛcÒrÑ\u0016ÔÖØuæ=ÝrÞGÙ¥Ò\u001dÛcÔÖÝ?Ø\u001eÑwÝ?ÓGÓ\u001fÙ¥×gÕGÜ8ÒrØ8ÔlÓcٗé»Ü8ÒrÓ\u001fڐ×Q×gØ", - "origin": [ - 71.2000732421875, - 680.2500610351562 - ], - "bbox": [ - 71.2000732421875, - 673.7500610351562, - 456.9000244140625, - 692.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 673.7500610351562, - 456.9000244140625, - 692.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØÍ×gÓcÓZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 468.2000732421875, - 680.2500610351562 - ], - "bbox": [ - 468.2000732421875, - 673.7500610351562, - 521.60009765625, - 692.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 468.2000732421875, - 673.7500610351562, - 521.60009765625, - 692.6500854492188 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 71.2000732421875, - 686.7500610351562, - 157.4000701904297, - 705.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ8çrÞc×gè8Ôw×gØ©Û%í¸îTùVé¬îgú\u0018ñJò", - "origin": [ - 71.2000732421875, - 693.2500610351562 - ], - "bbox": [ - 71.2000732421875, - 686.7500610351562, - 157.4000701904297, - 705.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 686.7500610351562, - 157.4000701904297, - 705.6500854492188 - ] - } - ] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 96.50006866455078, - 699.6500244140625, - 516.2000732421875, - 718.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÛcÜ\u0012ÛcÜu×gÓZ×", - "origin": [ - 96.50006866455078, - 706.1500244140625 - ], - "bbox": [ - 96.50006866455078, - 699.6500244140625, - 134.10006713867188, - 718.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u000b\n", - "origin": [ - 134.10006713867188, - 706.1500244140625 - ], - "bbox": [ - 134.10006713867188, - 699.6500244140625, - 143.7000732421875, - 717.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø+è8ÔÖØuç?Ó\u0014ÔÖØ\u0012Ù¥ÔlØ8è°é½à\u001bחå8Þc×gÓc×gتÛcÑwß\u000bè8ÔÖÓGÕQâ8ÓcÓ�ÒrÓZå×gÕ/ÛcÓ�Ýræ;Ò", - "origin": [ - 143.7000732421875, - 706.1500244140625 - ], - "bbox": [ - 143.7000732421875, - 699.6500244140625, - 387.9000549316406, - 718.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.50006866455078, - 699.6500244140625, - 387.9000549316406, - 718.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èußWØ8ÒrÙ¥ÔlÕQÒrÑ\u0010ÛZÞGÒrØ8ÓcÔwÛcÔÖÝ?Ø", - "origin": [ - 398.2000732421875, - 706.1500244140625 - ], - "bbox": [ - 398.2000732421875, - 699.6500244140625, - 492.1000671386719, - 718.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\r\f\u000f\u000e\u0011\u0010\u0013\u0012", - "origin": [ - 492.1000671386719, - 706.1500244140625 - ], - "bbox": [ - 492.1000671386719, - 699.6500244140625, - 516.2000732421875, - 717.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.2000732421875, - 699.6500244140625, - 516.2000732421875, - 718.550048828125 - ] - } - ] - }, - { - "number": 110, - "type": 0, - "bbox": [ - 71.2000732421875, - 712.6500244140625, - 520.2999267578125, - 731.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÑÖÒrÓGÓcÔÖÕQÒrÑ", - "origin": [ - 71.2000732421875, - 719.1500244140625 - ], - "bbox": [ - 71.2000732421875, - 712.6500244140625, - 106.50008392333984, - 731.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0015\u0014\u0016\u0010", - "origin": [ - 106.50008392333984, - 719.1500244140625 - ], - "bbox": [ - 106.50008392333984, - 712.6500244140625, - 117.90007781982422, - 730.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014ä©â+ÒrتÛcâ8Ù", - "origin": [ - 117.90007781982422, - 719.1500244140625 - ], - "bbox": [ - 117.90007781982422, - 712.6500244140625, - 160.10008239746094, - 731.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 712.6500244140625, - 160.10008239746094, - 731.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×gÜ8ÒTãVÔÖÝ?âuÞgéÒrÓcÓcâ8Ù¥ÔlØuçœÛcÜ+Ò\u001dÛ", - "origin": [ - 173.2000732421875, - 719.1500244140625 - ], - "bbox": [ - 173.2000732421875, - 712.6500244140625, - 291.00006103515625, - 731.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017\u001a\u0019\u0015\u001b\u001d\u001c\u0013\u001e\u001f\u0014 \u001b�\u0012!\f#\"$\u001c%\u0014 \u001b�\u000e$\"'&(\u0010\u0013\u000e')+*,)�\u001e-\u001c%\u0014.\"/\f\u000f\u000e\u0011\u0010\u0013\u00120\u001c21\u0013)�&3&\u000f)54�\u001c%\u0014 )76\u0013\"", - "origin": [ - 291.00006103515625, - 719.1500244140625 - ], - "bbox": [ - 291.00006103515625, - 712.6500244140625, - 520.2999267578125, - 730.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.2000732421875, - 712.6500244140625, - 520.2999267578125, - 731.550048828125 - ] - } - ] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 70.90007019042969, - 725.550048828125, - 516.300048828125, - 743.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "48\u000e\u0011\u0010#9'\"'&3&\u000b:<;=)>9�;?\u001cA@B\"39#\u00147&C\u001c\u0013D�DE4\u001f;GFH&') 9\u000f\u001c\u0013D/\u0010=I>J\u0018\"39#\u00147&�KMLNF\u0013\u001e8\u001c\u0013\u0012O) 9\u0018&\u000b\u001c%\u001e81\r&�\u0014\u0016\u001c%\u0014 )P&�\u0014 ) 9\u000f\u001c\u0013DQ)7\u001e\u001f\u0014.\"�\u000e.48\u000e$\"\u0018\u0014\u0016\u001c%\u0014 )>\u0010\u0013\u001eR\u0010A\fCS\u0018\u001b\u001d\u001c\u0013\u001e\u001f\u0014 \u001b�\u0012", - "origin": [ - 70.90007019042969, - 732.050048828125 - ], - "bbox": [ - 70.90007019042969, - 725.550048828125, - 516.300048828125, - 743.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.90007019042969, - 725.550048828125, - 516.300048828125, - 743.4500732421875 - ] - } - ] - }, - { - "number": 112, - "type": 0, - "bbox": [ - 71.60006713867188, - 738.550048828125, - 521.6000366210938, - 756.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&�\u0014\u0016\u001c%\u0014.\"'&UT7VB\u0010\u0013\u000e'\u001eW\u000e'\u001bXDY\"[ZC\u0010\u0013\u000e')+*,)�\u001e-\u001c%\u0014.\"\u0015\f'\u000eA\u0010%\u001201=\"\u0018\u0014.\"\u0018\u000e\u000f\u0012O)7\u001e\u001d)�&'\u0014 )>9\\\\u000e'\u001bXDY\"'&\u000f]\u0015&\u000f\u001b\u001d9�;2\u001c\u0013&^\"\u0018\u0012^I3\u0010#1\u0013)\u0016\"$1_)�\u001eW9#D+\u001c\u0013&3&\u000f)>93\u001c%D`\u0012^\"39�;X\u001c%\u001e\u001d) 9\u0018&3]", - "origin": [ - 71.60006713867188, - 745.050048828125 - ], - "bbox": [ - 71.60006713867188, - 738.550048828125, - 521.6000366210938, - 756.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.60006713867188, - 738.550048828125, - 521.6000366210938, - 756.4500732421875 - ] - } - ] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 71.70006561279297, - 751.550048828125, - 176.10008239746094, - 769.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")7\u001e\r\u001c%\u001ea\"\u0018\u001eb&\u0018\"\u0018\u0012(I�DY\"c\u00147;�\"$\u0010\u0013\u000e'F,K", - "origin": [ - 71.70006561279297, - 758.050048828125 - ], - "bbox": [ - 71.70006561279297, - 751.550048828125, - 176.10008239746094, - 769.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.70006561279297, - 751.550048828125, - 176.10008239746094, - 769.4500732421875 - ] - } - ] - }, - { - "number": 114, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ] - }, - { - "number": 116, - "type": 0, - "bbox": [ - 71.10613250732422, - 789.6123046875, - 299.75, - 808.4216918945312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "c", - "origin": [ - 73.875732421875, - 798.5587158203125 - ], - "bbox": [ - 73.875732421875, - 789.6123046875, - 78.29912567138672, - 800.7305908203125 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": "⃝", - "origin": [ - 71.10613250732422, - 798.8576049804688 - ], - "bbox": [ - 71.10613250732422, - 791.1365966796875, - 81.06873321533203, - 808.4216918945312 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " 2009 IOP Publishing Ltd", - "origin": [ - 81.06873321533203, - 798.8576049804688 - ], - "bbox": [ - 81.06873321533203, - 789.9111938476562, - 183.47425842285156, - 801.0294799804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10613250732422, - 789.6123046875, - 183.47425842285156, - 808.4216918945312 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "1", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 114, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "tag": "header" - }, - { - "number": 115, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "tag": "header" - }, - { - "number": 116, - "type": 0, - "bbox": [ - 71.10613250732422, - 789.6123046875, - 299.75, - 808.4216918945312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "c", - "origin": [ - 73.875732421875, - 798.5587158203125 - ], - "bbox": [ - 73.875732421875, - 789.6123046875, - 78.29912567138672, - 800.7305908203125 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": "⃝", - "origin": [ - 71.10613250732422, - 798.8576049804688 - ], - "bbox": [ - 71.10613250732422, - 791.1365966796875, - 81.06873321533203, - 808.4216918945312 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " 2009 IOP Publishing Ltd", - "origin": [ - 81.06873321533203, - 798.8576049804688 - ], - "bbox": [ - 81.06873321533203, - 789.9111938476562, - 183.47425842285156, - 801.0294799804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10613250732422, - 789.6123046875, - 183.47425842285156, - 808.4216918945312 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "1", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 1, - "page_size": [ - 595.5, - 842.25 - ] - }, - "page_2": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 95.5, - 109.04998779296875, - 519.7999877929688, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×\"ÓZå×gÕQâ8ÑlÒ\u001dÛZ×­ÛcÜ8Ò\u001dÛ4ÛcÜ8×", - "origin": [ - 95.5, - 116.04998779296875 - ], - "bbox": [ - 95.5, - 109.54998779296875, - 182.4000244140625, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.5, - 109.54998779296875, - 182.4000244140625, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001c%\u0014\u0016\u0010\u0013\u0012O)�&'\u0014 )>9", - "origin": [ - 190.5, - 116.04998779296875 - ], - "bbox": [ - 190.5, - 109.54998779296875, - 228.8000030517578, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "·ÓZÛZÞGâ8Õ/ÛcâuÞGסÝræ8ÓZå+ÒrÕ/×QÛcÔÖÙ�×\"ÔwÛcÓZ×gÑwæWÔÖÓ¬ÞG×gÓZåÝ?Ø8ÓcÔwÚ+ÑÖ×-æ=ÝrÞ4×", - "origin": [ - 228.8000030517578, - 116.04998779296875 - ], - "bbox": [ - 228.8000030517578, - 109.54998779296875, - 447.8999938964844, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 447.8999938964844, - 116.04998779296875 - ], - "bbox": [ - 447.8999938964844, - 109.04998779296875, - 452.6000061035156, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛcÓBà»Ü8ÔÖÕ1Ü%Ò\u001dÞc×", - "origin": [ - 452.6000061035156, - 116.04998779296875 - ], - "bbox": [ - 452.6000061035156, - 109.54998779296875, - 519.7999877929688, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 190.5, - 109.04998779296875, - 519.7999877929688, - 128.44998168945312 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 71.19999694824219, - 122.45001220703125, - 519.7998046875, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÛZÛZÞGÔÖÚ+âuÛZ×gè\u0014ÛZݳäVâ8ÒrØ©Ûcâ8َÙ�×gÕGÜ+ÒrØ8ÔÖÕQÓQé©ÛsßVå+ÔÖÕQÒrÑÖÑwß\u0019Ýrå×QÞGÒ\u001dÛcÔÖØuç;Ò\u001dÛ½Ñw×gØ8çrÛcÜ¥ÓcÕQÒrÑw×gÓ¡ãr×QÞGß\u0014Ù&â8Õ1Ü¥ÑÖÒ\u001dÞcçr×QÞ­ÛcÜ+ÒrØ�ÛcÜu×", - "origin": [ - 71.19999694824219, - 128.95001220703125 - ], - "bbox": [ - 71.19999694824219, - 122.45001220703125, - 519.7998046875, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 122.45001220703125, - 519.7998046875, - 141.35000610351562 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 78.69999694824219, - 134.95001220703125, - 522.1000366210938, - 154.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 78.69999694824219, - 141.95001220703125 - ], - "bbox": [ - 78.69999694824219, - 135.45001220703125, - 93.29999542236328, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 93.29999542236328, - 141.95001220703125 - ], - "bbox": [ - 93.29999542236328, - 134.95001220703125, - 97.5999984741211, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "%ÑÖ×gØuçrÛcܰò-ê¢×QÞc×", - "origin": [ - 97.5999984741211, - 141.95001220703125 - ], - "bbox": [ - 97.5999984741211, - 135.45001220703125, - 160.50001525878906, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 160.50001525878906, - 141.95001220703125 - ], - "bbox": [ - 160.50001525878906, - 134.95001220703125, - 169.50001525878906, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒ\u001dÛZÝ?Ù¥ÔÖÓcÛcÔÖÕ", - "origin": [ - 169.50001525878906, - 141.95001220703125 - ], - "bbox": [ - 169.50001525878906, - 135.45001220703125, - 212.60003662109375, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 212.60003662109375, - 141.95001220703125 - ], - "bbox": [ - 212.60003662109375, - 134.95001220703125, - 217.40003967285156, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "»ÞG×Qæ™×QÞGÓ-ÛZÝ;Ò»è8ÔlÓcÕ/Þc×QÛZ×\u0010ÓZ×QÛ-Ýræu×gÑÖ×gÙ�×gتÛcÓBà»ÔÖÛcܳÛcÜu×\"å8Þc×gÓZ×gØ+Õ/×rérÝrÞBÒ\u001dÚ+Óc×gØ8Õ/×ré", - "origin": [ - 217.40003967285156, - 141.95001220703125 - ], - "bbox": [ - 217.40003967285156, - 135.45001220703125, - 522.1000366210938, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.69999694824219, - 134.95001220703125, - 522.1000366210938, - 154.35000610351562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 71.0999984741211, - 148.35003662109375, - 326.6999816894531, - 167.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ\u0010җÕ/×QÞcÛcÒrÔÖØ�ÝrÞ1èu×QÞ;Þc×gÑÖÒ\u001dÛcÔwÝ?Ø\u000fڐ×QÛ¯à\"×Q×gؾÒrتß", - "origin": [ - 71.0999984741211, - 154.85003662109375 - ], - "bbox": [ - 71.0999984741211, - 148.35003662109375, - 254.10000610351562, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999984741211, - 148.35003662109375, - 254.10000610351562, - 167.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ûsà\u001bݖ×gÑw×gÙ�×gØ©ÛcÓQò", - "origin": [ - 264.1000061035156, - 154.85003662109375 - ], - "bbox": [ - 264.1000061035156, - 148.35003662109375, - 326.6999816894531, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.1000061035156, - 148.35003662109375, - 326.6999816894531, - 167.25003051757812 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 341.9000244140625, - 148.35003662109375, - 519.7999267578125, - 167.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "â8ÞcÛcÜu×QÞGÙ�ÝrÞG×ré¬ÛcÜ8ÔÖÓ;ÓZ×QÛQéBÔÖØ\u000få+Ò\u001dÞcÛcÔlÕQâ8ÑÖÒ\u001dޓÛcÜu×", - "origin": [ - 341.9000244140625, - 154.85003662109375 - ], - "bbox": [ - 341.9000244140625, - 148.35003662109375, - 519.7999267578125, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.9000244140625, - 148.35003662109375, - 519.7999267578125, - 167.25003051757812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 71.20001220703125, - 161.35003662109375, - 519.2998657226562, - 180.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ØVâ8Ù\u0019Ú6×QÞBÝræÔwÛcÓB×gÑw×gÙ�×gØ©ÛcÓ­ÕGÜ8ÒrØ8çr×gÓ­èußWØ8ÒrÙ¥ÔÖÕQÒrÑÖÑÖßré\u0018åÝ?ÓcÓGÔwÚ+Ñwߓ×gÓZÛcÒ\u001dÚ+ÑlÔÖÓcÜ8ÔÖØ8ç»Øu×Qà\u0012ÝrÞGèu×QÞ¡ÞG×gÑÖÒ\u001dÛcÔwÝ?Ø8ÓQé\u001dÝrÞ­×QÞ1ÒrÓcÔÖØuç", - "origin": [ - 71.20001220703125, - 167.85003662109375 - ], - "bbox": [ - 71.20001220703125, - 161.35003662109375, - 519.2998657226562, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 161.35003662109375, - 519.2998657226562, - 180.25003051757812 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 71.10001373291016, - 173.85003662109375, - 252.60003662109375, - 193.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÑÖè\rÝ?Ø8×gÓQò", - "origin": [ - 71.10001373291016, - 180.85003662109375 - ], - "bbox": [ - 71.10001373291016, - 174.35003662109375, - 110.50001525878906, - 193.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000b\n", - "origin": [ - 110.50001525878906, - 180.85003662109375 - ], - "bbox": [ - 110.50001525878906, - 173.85003662109375, - 117.80001831054688, - 192.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PؗÛcÜ8ÔÖÓ\u0010à\u0010Ògßré", - "origin": [ - 117.80001831054688, - 180.85003662109375 - ], - "bbox": [ - 117.80001831054688, - 174.35003662109375, - 170.70001220703125, - 193.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\f�", - "origin": [ - 170.70001220703125, - 180.85003662109375 - ], - "bbox": [ - 170.70001220703125, - 173.85003662109375, - 178.30001831054688, - 192.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PÛcÔÖÙ�×%Ü8Ò\u001då8å×gØ8Ó", - "origin": [ - 178.30001831054688, - 180.85003662109375 - ], - "bbox": [ - 178.30001831054688, - 174.35003662109375, - 242.300048828125, - 193.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 242.300048828125, - 180.85003662109375 - ], - "bbox": [ - 242.300048828125, - 173.85003662109375, - 246.70004272460938, - 192.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Wò", - "origin": [ - 246.70004272460938, - 180.85003662109375 - ], - "bbox": [ - 246.70004272460938, - 174.35003662109375, - 252.60003662109375, - 193.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10001373291016, - 173.85003662109375, - 252.60003662109375, - 193.25003051757812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 85.60001373291016, - 187.1500244140625, - 518.60009765625, - 206.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëWÔÖÙ¥ÔlÑÖÒ\u001dޖÔÖèu×gÒrÓ", - "origin": [ - 85.60001373291016, - 193.6500244140625 - ], - "bbox": [ - 85.60001373291016, - 187.1500244140625, - 144.40000915527344, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.60001373291016, - 187.1500244140625, - 144.40000915527344, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dڐÝ?âuÛµÛcÜ8×", - "origin": [ - 154.4000244140625, - 193.6500244140625 - ], - "bbox": [ - 154.4000244140625, - 187.1500244140625, - 198.00003051757812, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.4000244140625, - 187.1500244140625, - 198.00003051757812, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ø8Ò\u001dÛcâ8Þc×7Ýræ Ócå+ÒrÕ/×QÛcÔÖÙ�×\u000bÜ8Ògãr×\u000bڐ×Q×gØ", - "origin": [ - 208.6000213623047, - 193.6500244140625 - ], - "bbox": [ - 208.6000213623047, - 187.1500244140625, - 355.5000305175781, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.6000213623047, - 187.1500244140625, - 355.5000305175781, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™ÝrÞGÙ&â8ÑÖÒ\u001dÛZ×gè", - "origin": [ - 367.20001220703125, - 193.6500244140625 - ], - "bbox": [ - 367.20001220703125, - 187.1500244140625, - 412.6999816894531, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.20001220703125, - 187.1500244140625, - 412.6999816894531, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×Qãr×QÞcß", - "origin": [ - 424.4000244140625, - 193.6500244140625 - ], - "bbox": [ - 424.4000244140625, - 187.1500244140625, - 443.6999816894531, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.4000244140625, - 187.1500244140625, - 443.6999816894531, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ØuÝTà", - "origin": [ - 455.5000305175781, - 193.6500244140625 - ], - "bbox": [ - 455.5000305175781, - 187.1500244140625, - 466.5000305175781, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.5000305175781, - 187.1500244140625, - 466.5000305175781, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è", - "origin": [ - 480.2000427246094, - 193.6500244140625 - ], - "bbox": [ - 480.2000427246094, - 187.1500244140625, - 491.7000427246094, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 480.2000427246094, - 187.1500244140625, - 491.7000427246094, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×gØ", - "origin": [ - 503.4000549316406, - 193.6500244140625 - ], - "bbox": [ - 503.4000549316406, - 187.1500244140625, - 518.60009765625, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 503.4000549316406, - 187.1500244140625, - 518.60009765625, - 206.05001831054688 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 71.10003662109375, - 200.1500244140625, - 521.6000366210938, - 219.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuÞGÝ?âuç?ÜuÝ?âuÛ\u001fÛcÜu×�Ü8ÔÖÓZÛZÝrÞGß\u0012Ýræ\u0019Ø8Ò\u001dÛcâuÞ1ÒrÑ»å+Ü+ÔÖÑwÝ?ÓZÝrå+ܩߟí¸îgûWé^ï\u001dü\u0018ñJò", - "origin": [ - 71.10003662109375, - 206.6500244140625 - ], - "bbox": [ - 71.10003662109375, - 200.1500244140625, - 335.00006103515625, - 219.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 200.1500244140625, - 335.00006103515625, - 219.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢ÝTà\u001b×Qãr×QÞgé“Ý?Ø8ÑwßÁÞG×gÕ/×gتÛcÑwßÍÓcâ8Õ1Ü\u001eçr×gØ8×QÞGÒrÑ", - "origin": [ - 347.2000427246094, - 206.6500244140625 - ], - "bbox": [ - 347.2000427246094, - 200.1500244140625, - 521.6000366210938, - 219.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.2000427246094, - 200.1500244140625, - 521.6000366210938, - 219.05001831054688 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 71.20004272460938, - 212.550048828125, - 522.199951171875, - 231.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÕ/×gØ+Ò\u001dÞGÔwݳÜ8ÒrÓ\"ڐ×Q×gØ¥×gÑÖÒ\u001dڐÝrÞGÒ\u001dÛZ×gè\u001fÔÖØœÙ�ÝrÞc×¢è8×QÛcÒrÔÖÑ+ÔÖØ ÛcÜu×»ÛcÜ8×QÝrÞcß�Ýræ", - "origin": [ - 71.20004272460938, - 219.550048828125 - ], - "bbox": [ - 71.20004272460938, - 213.050048828125, - 349.29998779296875, - 231.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 213.050048828125, - 349.29998779296875, - 231.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "93\u001c%\u001bG&\u0018\u001c\u0013D8&\u0018\"\u0018\u00147&", - "origin": [ - 356.800048828125, - 219.550048828125 - ], - "bbox": [ - 356.800048828125, - 213.050048828125, - 401.6999816894531, - 230.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eò", - "origin": [ - 401.6999816894531, - 219.550048828125 - ], - "bbox": [ - 401.6999816894531, - 213.050048828125, - 406.29998779296875, - 231.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e\n", - "origin": [ - 406.29998779296875, - 219.550048828125 - ], - "bbox": [ - 406.29998779296875, - 212.550048828125, - 413.5, - 230.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø\u001fÙ¥Ò\u001dÛcÜu×gÙ Ò\u001dÛcÔÖÕQÒrÑ+ÛZ×QÞ1Ù¥ÓQé", - "origin": [ - 413.5, - 219.550048828125 - ], - "bbox": [ - 413.5, - 213.050048828125, - 522.199951171875, - 231.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 356.800048828125, - 212.550048828125, - 522.199951171875, - 231.95004272460938 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 71.10003662109375, - 226.050048828125, - 245.40003967285156, - 244.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×gÓc×\u000fÒ\u001dÞG×\u000fÑÖÝVÕQÒrÑÖÑÖß", - "origin": [ - 71.10003662109375, - 232.550048828125 - ], - "bbox": [ - 71.10003662109375, - 226.050048828125, - 145.800048828125, - 244.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "?\n", - "origin": [ - 145.800048828125, - 232.550048828125 - ], - "bbox": [ - 145.800048828125, - 226.050048828125, - 156.6000518798828, - 243.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø8ÔwÛZ×", - "origin": [ - 156.6000518798828, - 232.550048828125 - ], - "bbox": [ - 156.6000518798828, - 226.050048828125, - 176.1000518798828, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 226.050048828125, - 176.1000518798828, - 244.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞGèu×QÞc×gè", - "origin": [ - 186.10003662109375, - 232.550048828125 - ], - "bbox": [ - 186.10003662109375, - 226.050048828125, - 215.9000244140625, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.10003662109375, - 226.050048828125, - 215.9000244140625, - 244.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZ×QÛcÓgò", - "origin": [ - 227.20004272460938, - 232.550048828125 - ], - "bbox": [ - 227.20004272460938, - 226.050048828125, - 245.40003967285156, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.20004272460938, - 226.050048828125, - 245.40003967285156, - 244.95004272460938 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 265.5000305175781, - 226.050048828125, - 515.7000732421875, - 244.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×gÔwÞ\u001f×QãrÝ?ÑÖâuÛcÔÖÝ?Ø", - "origin": [ - 265.5000305175781, - 232.550048828125 - ], - "bbox": [ - 265.5000305175781, - 226.050048828125, - 326.5, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 265.5000305175781, - 226.050048828125, - 326.5, - 244.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú©ß", - "origin": [ - 337.800048828125, - 232.550048828125 - ], - "bbox": [ - 337.800048828125, - 226.050048828125, - 343.50006103515625, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.800048828125, - 226.050048828125, - 343.50006103515625, - 244.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Óc×gä©âu×gØ©ÛcÔÖÒrѓçrÞcÝaà^ÛcÜ", - "origin": [ - 354.50006103515625, - 232.550048828125 - ], - "bbox": [ - 354.50006103515625, - 226.050048828125, - 434.1000061035156, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.50006103515625, - 226.050048828125, - 434.1000061035156, - 244.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuÞcÝ?â8ç?Ü\u001eÞ1ÒrØ8èuÝ?Ù", - "origin": [ - 445.4000549316406, - 232.550048828125 - ], - "bbox": [ - 445.4000549316406, - 226.050048828125, - 515.7000732421875, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.4000549316406, - 226.050048828125, - 515.7000732421875, - 244.95004272460938 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 76.60005187988281, - 238.4500732421875, - 518.7000732421875, - 257.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 76.60005187988281, - 245.4500732421875 - ], - "bbox": [ - 76.60005187988281, - 238.4500732421875, - 76.60005187988281, - 256.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÓZå+ÞGÔÖØ", - "origin": [ - 76.60005187988281, - 245.4500732421875 - ], - "bbox": [ - 76.60005187988281, - 238.9500732421875, - 98.70004272460938, - 257.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 98.70004272460938, - 245.4500732421875 - ], - "bbox": [ - 98.70004272460938, - 238.4500732421875, - 104.70004272460938, - 256.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÑÖÔÖØuç", - "origin": [ - 104.70004272460938, - 245.4500732421875 - ], - "bbox": [ - 104.70004272460938, - 238.9500732421875, - 122.80004119873047, - 257.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011�\u0013\u0012", - "origin": [ - 122.80004119873047, - 245.4500732421875 - ], - "bbox": [ - 122.80004119873047, - 238.4500732421875, - 133.90005493164062, - 256.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥Ò\u001då8å×gÒ\u001dÞGÒrØ8Õ/×", - "origin": [ - 133.90005493164062, - 245.4500732421875 - ], - "bbox": [ - 133.90005493164062, - 238.9500732421875, - 191.70005798339844, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.60005187988281, - 238.4500732421875, - 191.70005798339844, - 257.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ\u0014Øu×Qà�ÓZ×QÛ!×gÑw×gÙ�×gØ©ÛcӖÛZÝrçr×QÛcÜu×QÞµà»ÔwÛcÜ", - "origin": [ - 202.00006103515625, - 245.4500732421875 - ], - "bbox": [ - 202.00006103515625, - 238.9500732421875, - 365.6999816894531, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.00006103515625, - 238.9500732421875, - 365.6999816894531, - 257.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×gÔwޗÝrÞ1èu×QޖÞc×gÑÖÒ\u001dÛcÔÖÝ?Ø8ӗÜ8Òrӗڐ×Q×gØ", - "origin": [ - 377.00006103515625, - 245.4500732421875 - ], - "bbox": [ - 377.00006103515625, - 238.9500732421875, - 518.7000732421875, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.00006103515625, - 238.9500732421875, - 518.7000732421875, - 257.8500671386719 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 71.20004272460938, - 251.9500732421875, - 162.00001525878906, - 270.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛcâ+è8Ôw×gè�ížï\u001düuéyïWîré+ïrï\u001dñJò", - "origin": [ - 71.20004272460938, - 258.4500732421875 - ], - "bbox": [ - 71.20004272460938, - 251.9500732421875, - 162.00001525878906, - 270.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 251.9500732421875, - 162.00001525878906, - 270.8500671386719 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 85.30004119873047, - 264.4500732421875, - 519.7999877929688, - 283.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.30004119873047, - 271.4500732421875 - ], - "bbox": [ - 85.30004119873047, - 264.4500732421875, - 85.30004119873047, - 282.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø\u0014ÛcÜ8×^Ò\u001dÚ+ÓZ×gØ8Õ/×^ÝræÒrØ�×gäVâ8ÒrÑÖÑwß\u0019×gÑÖÒ\u001dڐÝrÞGÒ\u001dÛZ×NÛcÜu×QÝrÞcß\u0014ÝræÙ¥Ò\u001dÛZÛZ×QÞ\"ÔlØ\u0019ÞG×gÑÖÒ\u001dÛcÔwÝ?Ø�ÛZݳÓGâ8ÕGÜ�Ò\u001dÛZÝ?Ù¥ÔlÓZÛcÔÖÕNÓZÛZÞGâ+Õ/ÛcâuÞc×", - "origin": [ - 85.30004119873047, - 271.4500732421875 - ], - "bbox": [ - 85.30004119873047, - 264.9500732421875, - 519.7999877929688, - 283.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.30004119873047, - 264.4500732421875, - 519.7999877929688, - 283.8500671386719 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 71.10004425048828, - 277.85009765625, - 522.1000366210938, - 296.7500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ+Ócå+ÒrÕ/×QÛcÔÖÙ�×ré\u001dà\u001b×\u0010ÕQÒrØ\u0014Øu×Qãr×QÞGÛcÜu×gÑw×gÓcÓ·ÓZÛcÒ\u001dÛZ×\u0010ÛcÜu×\u001bæ™Ý?ÑlÑwÝTà»ÔlØuçué\u0018Õ/Ý?Ø+Õ/×QÞGØ8ÔÖØuç¢ÛcÜu×\u0010ÓcÔwÛcâ8Ò\u001dÛcÔwÝ?Ø\u0019Ýræ+Ò¢ÛsßVå+ÔÖÕQÒrÑVÝrÚ", - "origin": [ - 71.10004425048828, - 284.35009765625 - ], - "bbox": [ - 71.10004425048828, - 277.85009765625, - 497.60003662109375, - 296.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 497.60003662109375, - 284.35009765625 - ], - "bbox": [ - 497.60003662109375, - 277.85009765625, - 503.5000305175781, - 295.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛQò", - "origin": [ - 503.5000305175781, - 284.35009765625 - ], - "bbox": [ - 503.5000305175781, - 277.85009765625, - 522.1000366210938, - 296.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10004425048828, - 277.85009765625, - 522.1000366210938, - 296.7500915527344 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 71.4000473022461, - 290.35009765625, - 519.199951171875, - 309.7500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ð\u001bÝ?Ø+ÓcÔÖèu×QÞ\u001bÒrØ\r×gÑw×gÕ/ÛZÞcÝ?ذéWæ=ÝrÞ\u001b×", - "origin": [ - 71.4000473022461, - 297.35009765625 - ], - "bbox": [ - 71.4000473022461, - 290.85009765625, - 191.80003356933594, - 309.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 191.80003356933594, - 297.35009765625 - ], - "bbox": [ - 191.80003356933594, - 290.85009765625, - 196.50003051757812, - 308.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ�å+ÑÖ×réWÒrØ\u001fÝrÚ", - "origin": [ - 196.50003051757812, - 297.35009765625 - ], - "bbox": [ - 196.50003051757812, - 290.85009765625, - 257.70001220703125, - 309.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 257.70001220703125, - 297.35009765625 - ], - "bbox": [ - 257.70001220703125, - 290.85009765625, - 263.6000061035156, - 308.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛNÛcÜ8Ò\u001dÛ\u0010ÛZÝ�Ü8Ôwç?Üu×gÓcÛ", - "origin": [ - 263.6000061035156, - 297.35009765625 - ], - "bbox": [ - 263.6000061035156, - 290.85009765625, - 351.6000061035156, - 309.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0014�", - "origin": [ - 351.6000061035156, - 297.35009765625 - ], - "bbox": [ - 351.6000061035156, - 290.35009765625, - 359.1000061035156, - 308.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WØuÝTà¢Ø å8ÞG×gÕQÔÖÓcÔwÝ?؜ڐ×gÜ8Ògãr×gÓNÒrÕQÕ/ÝrÞGè+ÔÖØuç", - "origin": [ - 359.1000061035156, - 297.35009765625 - ], - "bbox": [ - 359.1000061035156, - 290.85009765625, - 519.199951171875, - 309.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.4000473022461, - 290.35009765625, - 519.199951171875, - 309.7500915527344 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 71.10004425048828, - 303.7501220703125, - 234.20004272460938, - 322.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ�ÛcÜu×%ÑlÒgà»Ó\u0010Ýræ·ä©â+ÒrتÛcâ8ÙÿÙ�×gÕGÜ8ÒrØ+ÔÖÕQÓQò", - "origin": [ - 71.10004425048828, - 310.2501220703125 - ], - "bbox": [ - 71.10004425048828, - 303.7501220703125, - 234.20004272460938, - 322.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10004425048828, - 303.7501220703125, - 234.20004272460938, - 322.6501159667969 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 251.6000518798828, - 303.2501220703125, - 521.2000732421875, - 322.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "׳٥ÒTߜÛZ×QÞ1Ù", - "origin": [ - 251.6000518798828, - 310.2501220703125 - ], - "bbox": [ - 251.6000518798828, - 303.7501220703125, - 297.10003662109375, - 322.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.6000518798828, - 303.7501220703125, - 297.10003662109375, - 322.6501159667969 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÛcÓ", - "origin": [ - 309.800048828125, - 310.2501220703125 - ], - "bbox": [ - 309.800048828125, - 303.7501220703125, - 317.10003662109375, - 322.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 317.10003662109375, - 310.2501220703125 - ], - "bbox": [ - 317.10003662109375, - 303.2501220703125, - 326.10003662109375, - 321.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÓcÔwÛcâ+Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 326.10003662109375, - 310.2501220703125 - ], - "bbox": [ - 326.10003662109375, - 303.7501220703125, - 366.20001220703125, - 322.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0015�", - "origin": [ - 366.20001220703125, - 310.2501220703125 - ], - "bbox": [ - 366.20001220703125, - 303.2501220703125, - 372.3000183105469, - 321.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�Ò�ܩߩåÝrÛcÜu×QÛcÔÖÕQÒrѰÕ/Ý?Ù¥å+Ñw×QÛZ׳ÓZ×QÛNÝræ", - "origin": [ - 372.3000183105469, - 310.2501220703125 - ], - "bbox": [ - 372.3000183105469, - 303.7501220703125, - 521.2000732421875, - 322.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 309.800048828125, - 303.2501220703125, - 521.2000732421875, - 322.6501159667969 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 71.20004272460938, - 316.7501220703125, - 301.9000244140625, - 335.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÛcÓ\u0010å+ÞcÝrå×QÞcÛcÔw×gÓ\u0010ÛcÜ8Ò\u001dÛ»Ò\u001dÞG׳ÒrÕQÕ/×gÓcÓcÔwÚyÑw×;Ú©ß\u001f×", - "origin": [ - 71.20004272460938, - 323.2501220703125 - ], - "bbox": [ - 71.20004272460938, - 316.7501220703125, - 243.800048828125, - 335.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 243.800048828125, - 323.2501220703125 - ], - "bbox": [ - 243.800048828125, - 316.7501220703125, - 248.5000457763672, - 334.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Wå6×QÞ1ÔÖÙ�×gØ©ÛcÓQò", - "origin": [ - 248.5000457763672, - 323.2501220703125 - ], - "bbox": [ - 248.5000457763672, - 316.7501220703125, - 301.9000244140625, - 335.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 316.7501220703125, - 301.9000244140625, - 335.6501159667969 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 85.40003967285156, - 329.7501220703125, - 469.50006103515625, - 348.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ó»Ýaà%é", - "origin": [ - 85.40003967285156, - 336.2501220703125 - ], - "bbox": [ - 85.40003967285156, - 329.7501220703125, - 107.00003814697266, - 348.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.40003967285156, - 329.7501220703125, - 107.00003814697266, - 348.6501159667969 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 113.80004119873047, - 336.2501220703125 - ], - "bbox": [ - 113.80004119873047, - 329.7501220703125, - 113.80004119873047, - 347.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+ÞGÓZۓÝræ\u001bÒrÑlÑIé°ÛcÜu×QÞc×¥Ò\u001dÞcלÔÖØªÛZ×QÞ1ÒrÕ/ÛcÔwÝ?Ø8Ó;ڐ×QÛsà\u001b×Q×gØ", - "origin": [ - 113.80004119873047, - 336.2501220703125 - ], - "bbox": [ - 113.80004119873047, - 329.7501220703125, - 308.10003662109375, - 348.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.80004119873047, - 329.7501220703125, - 308.10003662109375, - 348.6501159667969 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ócâ+ÕGÜ�ÝrÚ", - "origin": [ - 318.4000549316406, - 336.2501220703125 - ], - "bbox": [ - 318.4000549316406, - 329.7501220703125, - 348.9000549316406, - 348.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 348.9000549316406, - 336.2501220703125 - ], - "bbox": [ - 348.9000549316406, - 329.7501220703125, - 354.800048828125, - 347.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/Û³ÒrØ8è�ÔÖÛcӓ×gتãWÔwÞcÝ?Ø8Ù¥×gتÛ", - "origin": [ - 354.800048828125, - 336.2501220703125 - ], - "bbox": [ - 354.800048828125, - 329.7501220703125, - 469.50006103515625, - 348.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.4000549316406, - 329.7501220703125, - 469.50006103515625, - 348.6501159667969 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 482.1000671386719, - 329.2501220703125, - 520.300048828125, - 348.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×", - "origin": [ - 482.1000671386719, - 336.2501220703125 - ], - "bbox": [ - 482.1000671386719, - 329.7501220703125, - 492.4000549316406, - 348.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0016�", - "origin": [ - 492.4000549316406, - 336.2501220703125 - ], - "bbox": [ - 492.4000549316406, - 329.2501220703125, - 502.7000427246094, - 347.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PÞG×gÓZÛ", - "origin": [ - 502.7000427246094, - 336.2501220703125 - ], - "bbox": [ - 502.7000427246094, - 329.7501220703125, - 520.300048828125, - 348.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 482.1000671386719, - 329.2501220703125, - 520.300048828125, - 348.6501159667969 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 71.10006713867188, - 342.1501159667969, - 521.9999389648438, - 361.55010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ;ÛcÜu×", - "origin": [ - 71.10006713867188, - 349.1501159667969 - ], - "bbox": [ - 71.10006713867188, - 342.6501159667969, - 95.2000732421875, - 361.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 342.6501159667969, - 95.2000732421875, - 361.55010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "â8Ø8Ôwãr×QÞ1ÓZ×", - "origin": [ - 105.2000732421875, - 349.1501159667969 - ], - "bbox": [ - 105.2000732421875, - 342.6501159667969, - 139.30006408691406, - 361.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0017�\u0013\u0012", - "origin": [ - 139.30006408691406, - 349.1501159667969 - ], - "bbox": [ - 139.30006408691406, - 342.1501159667969, - 149.80006408691406, - 360.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1éNÑÖÒrÓZۜØ8ÝrۜÑw×gÒrÓZۜçrÞGÒgãWÔwÛcÒ\u001dÛcÔwÝ?Ø+ÒrÑ¢Ý?Ø8×gÓQò", - "origin": [ - 149.80006408691406, - 349.1501159667969 - ], - "bbox": [ - 149.80006408691406, - 342.6501159667969, - 318.70001220703125, - 361.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0019\u0018", - "origin": [ - 318.70001220703125, - 349.1501159667969 - ], - "bbox": [ - 318.70001220703125, - 342.1501159667969, - 330.20001220703125, - 360.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001b×gÓcÔÖèu×gӜÙ�ÝrÞc×!æ’ÒrÙ¥ÔÖÑlÔÖÒ\u001dÞ ÒrÓZå×gÕ/ÛcÓQé^ÜuÝaà\"×Qãr×QÞTé", - "origin": [ - 330.20001220703125, - 349.1501159667969 - ], - "bbox": [ - 330.20001220703125, - 342.6501159667969, - 521.9999389648438, - 361.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.2000732421875, - 342.1501159667969, - 521.9999389648438, - 361.55010986328125 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 71.10006713867188, - 355.6501159667969, - 519.800048828125, - 374.55010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×QÞG׳Ù\u0019â+ÓZÛN×", - "origin": [ - 71.10006713867188, - 362.1501159667969 - ], - "bbox": [ - 71.10006713867188, - 355.6501159667969, - 126.10006713867188, - 374.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 126.10006713867188, - 362.1501159667969 - ], - "bbox": [ - 126.10006713867188, - 355.6501159667969, - 130.80006408691406, - 373.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔlÓZÛ»Ò Õ/Ý?Ø©ÛcÔÖØVâ8ÒrÑ", - "origin": [ - 130.80006408691406, - 362.1501159667969 - ], - "bbox": [ - 130.80006408691406, - 355.6501159667969, - 201.90005493164062, - 374.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "`)7\u001e#\f\u0018\u0010\u0013\u000e\u000f\u0012^\u001c%\u0014 )>\u0010\u0013\u001eaD", - "origin": [ - 201.90005493164062, - 362.1501159667969 - ], - "bbox": [ - 201.90005493164062, - 355.6501159667969, - 269.2000427246094, - 373.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 355.6501159667969, - 269.2000427246094, - 374.55010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f&", - "origin": [ - 277.40008544921875, - 362.1501159667969 - ], - "bbox": [ - 277.40008544921875, - 355.6501159667969, - 281.90008544921875, - 373.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NÒ\u001dڐÝ?âuÛ¢ÔwÛcÓ^ÓcÔwÛcâ+Ò\u001dÛcÔwÝ?ذé8ÓcÔÖØ+Õ/×%ÛcÜu׳Ò\u001dÛZÝ?Ù¥ÔlÓZÛcÔÖÕ%ÓZåyÒrÕ/×QÛcÔÖÙ�×", - "origin": [ - 281.90008544921875, - 362.1501159667969 - ], - "bbox": [ - 281.90008544921875, - 355.6501159667969, - 519.800048828125, - 374.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.40008544921875, - 355.6501159667969, - 519.800048828125, - 374.55010986328125 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 71.10008239746094, - 368.4501037597656, - 146.40008544921875, - 387.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×gØu×gÒ\u001dÛcÜ\r×QãrÝ?Ñwãr×gÓgò", - "origin": [ - 71.10008239746094, - 374.9501037597656 - ], - "bbox": [ - 71.10008239746094, - 368.4501037597656, - 146.40008544921875, - 387.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 368.4501037597656, - 146.40008544921875, - 387.35009765625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 165.10008239746094, - 368.4501037597656, - 520.800048828125, - 387.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÛcܗÞc×gÓZå×gÕ/ÛNÛZÝ¥ÛcÜ8×%ÑÖÒ\u001dÛZÛZ×QÞgé+äVâ8ÒrØ©Ûcâ8ÙöÛcÜu×QÝrÞcß\rÒ\u001dÛ^å8ÞG×gÓZ×gتۢèu×gÒrÑÖÓ\u0010à»ÔwÛcÜ\rãr×QÞGß\rÕ/Ý?Ò\u001dÞ1ÓZ×", - "origin": [ - 165.10008239746094, - 374.9501037597656 - ], - "bbox": [ - 165.10008239746094, - 368.4501037597656, - 516.1000366210938, - 387.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 516.1000366210938, - 374.9501037597656 - ], - "bbox": [ - 516.1000366210938, - 368.4501037597656, - 520.800048828125, - 386.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.10008239746094, - 368.4501037597656, - 520.800048828125, - 387.35009765625 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 71.10008239746094, - 380.9501037597656, - 519.1000366210938, - 400.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çrÞGÒrÔlØu×gè", - "origin": [ - 71.10008239746094, - 387.9501037597656 - ], - "bbox": [ - 71.10008239746094, - 381.4501037597656, - 100.40008544921875, - 400.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 381.4501037597656, - 100.40008544921875, - 400.35009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Üu×gØuÝ?Ù�×gØ+ÒWé½à»Üu×gØ\u000bèu×gÓGÕ/ÞGÔwÚ+ÔÖØ8çµÛcÜuחèußWØ8ÒrÙ¥ÔlÕQÓ\u0014Ýræ¢Ù¥Ò\u001dÛZÛZ×QÞgòÁá4Ý©Ý?Óc×gÑwß¾ÓZå×gÒ", - "origin": [ - 111.00008392333984, - 387.9501037597656 - ], - "bbox": [ - 111.00008392333984, - 381.4501037597656, - 437.8000183105469, - 400.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 437.8000183105469, - 387.9501037597656 - ], - "bbox": [ - 437.8000183105469, - 380.9501037597656, - 443.1000061035156, - 399.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔÖØuçué½ÔlؾÝrÞ1èu×QÞ�ÛZÝ", - "origin": [ - 443.1000061035156, - 387.9501037597656 - ], - "bbox": [ - 443.1000061035156, - 381.4501037597656, - 519.1000366210938, - 400.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.00008392333984, - 380.9501037597656, - 519.1000366210938, - 400.35009765625 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 71.10008239746094, - 393.85009765625, - 519.2000122070312, - 413.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ’â8ÑÖÑwߗÕ1Ü8Ò\u001dÞGÒrÕ/ÛZ×QÞGÔ", - "origin": [ - 71.10008239746094, - 400.85009765625 - ], - "bbox": [ - 71.10008239746094, - 394.35009765625, - 140.2000732421875, - 413.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 140.2000732421875, - 400.85009765625 - ], - "bbox": [ - 140.2000732421875, - 393.85009765625, - 143.2000732421875, - 412.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "QלÒrØ\u000f×gÑw×gÕ/ÛZÞcÝ?ذé¬ÛcÜ8×&×QãrÝ?ÑlâuÛcÔwÝ?Ø\u000fÝræ\"ÔÖÛcÓ;ÕQÒrâ8ÓcÒrÑ·Þc×gÑÖÒ\u001dÛcÔÖÝ?Ø8Ó\u0016à»ÔwÛcÜ\u000fÒ\rÕ/Ý?تÛcÔÖØVâ8ÒrÑÖÑÖß!ÕGÜ8ÒrØ8ç?ÔÖØuç", - "origin": [ - 143.2000732421875, - 400.85009765625 - ], - "bbox": [ - 143.2000732421875, - 394.35009765625, - 519.2000122070312, - 413.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 393.85009765625, - 519.2000122070312, - 413.2500915527344 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 71.20008087158203, - 406.85009765625, - 519.9000854492188, - 426.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ØVâ8Ù\u0019Ú6×QÞNÝræ­Ócå+ÒrÕ/×QÛcÔÖÙ�×", - "origin": [ - 71.20008087158203, - 413.85009765625 - ], - "bbox": [ - 71.20008087158203, - 407.35009765625, - 165.3000946044922, - 426.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001d�", - "origin": [ - 165.3000946044922, - 413.85009765625 - ], - "bbox": [ - 165.3000946044922, - 406.85009765625, - 175.10009765625, - 425.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒ\u001dÛZÝ?Ù Ó", - "origin": [ - 175.10009765625, - 413.85009765625 - ], - "bbox": [ - 175.10009765625, - 407.35009765625, - 203.50009155273438, - 426.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 203.50009155273438, - 413.85009765625 - ], - "bbox": [ - 203.50009155273438, - 406.85009765625, - 207.8000946044922, - 425.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œÜ+ÒrÓ^ÛZݜÕ/Ý?Ù¥×&ÔÖØ©ÛZÝ¥å+ÑlÒgßrò^Ð\u001bÝ?Ø8ÓZ×gäVâu×gØ©ÛcÑwßréyÔÖØ!Ò¥Õ/Ý?Ò\u001dÞGÓZ×", - "origin": [ - 207.8000946044922, - 413.85009765625 - ], - "bbox": [ - 207.8000946044922, - 407.35009765625, - 443.7001037597656, - 426.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 443.7001037597656, - 413.85009765625 - ], - "bbox": [ - 443.7001037597656, - 407.35009765625, - 448.4001159667969, - 425.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞGÒrÔlØu×gè!åyÔÖÕ/ÛcâuÞc×", - "origin": [ - 448.4001159667969, - 413.85009765625 - ], - "bbox": [ - 448.4001159667969, - 407.35009765625, - 519.9000854492188, - 426.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20008087158203, - 406.85009765625, - 519.9000854492188, - 426.2500915527344 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 71.10008239746094, - 419.85009765625, - 519.0999755859375, - 439.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×QÞc×¥ÛcÜ8ÔÖÓ\u0019ÔÖÓ%ØuÝrÛ\u0019×", - "origin": [ - 71.10008239746094, - 426.85009765625 - ], - "bbox": [ - 71.10008239746094, - 420.35009765625, - 157.30007934570312, - 439.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 157.30007934570312, - 426.85009765625 - ], - "bbox": [ - 157.30007934570312, - 420.35009765625, - 162.0000762939453, - 438.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VåyÑÖÔÖÕQÔwÛcÑwß", - "origin": [ - 162.0000762939453, - 426.85009765625 - ], - "bbox": [ - 162.0000762939453, - 420.35009765625, - 195.4001007080078, - 439.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 420.35009765625, - 195.4001007080078, - 439.2500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÒ", - "origin": [ - 205.40008544921875, - 426.85009765625 - ], - "bbox": [ - 205.40008544921875, - 420.35009765625, - 209.70008850097656, - 439.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 209.70008850097656, - 426.85009765625 - ], - "bbox": [ - 209.70008850097656, - 419.85009765625, - 215.00009155273438, - 438.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×gØ\u000bÔÖØ©ÛZÝ!ÒrÕQÕ/Ý?â8Ø©ÛQé­ÔÖØuæ=ÝrÞGÙ¥Ò\u001dÛcÔwÝ?ؾÒ\u001dÚ6Ý?â8Û³ÒrØ7ÝrÚ", - "origin": [ - 215.00009155273438, - 426.85009765625 - ], - "bbox": [ - 215.00009155273438, - 420.35009765625, - 416.20001220703125, - 439.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "b�", - "origin": [ - 416.20001220703125, - 426.85009765625 - ], - "bbox": [ - 416.20001220703125, - 420.35009765625, - 422.20001220703125, - 438.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "P×gÕ/Û&èu×QçrÞGÒrèu×gÓQé¡è8â8×¥ÛZÝ", - "origin": [ - 422.20001220703125, - 426.85009765625 - ], - "bbox": [ - 422.20001220703125, - 420.35009765625, - 519.0999755859375, - 439.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.40008544921875, - 419.85009765625, - 519.0999755859375, - 439.2500915527344 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 71.10008239746094, - 432.7500915527344, - 453.8000793457031, - 452.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×;×QãrÝ?ÑÖãVÔÖØ8ç", - "origin": [ - 71.10008239746094, - 439.7500915527344 - ], - "bbox": [ - 71.10008239746094, - 433.2500915527344, - 123.60009002685547, - 452.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001f\u001e", - "origin": [ - 123.60009002685547, - 439.7500915527344 - ], - "bbox": [ - 123.60009002685547, - 432.7500915527344, - 132.40008544921875, - 451.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001fÒrÑwà\u0010ÒgßWÓ»ÒrØ8è—×Qãr×QÞGß©à»Ü8×QÞc×;å8Þc×gÓZ×gØ©Û", - "origin": [ - 132.40008544921875, - 439.7500915527344 - ], - "bbox": [ - 132.40008544921875, - 433.2500915527344, - 284.6000671386719, - 452.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": " \u001e", - "origin": [ - 284.6000671386719, - 439.7500915527344 - ], - "bbox": [ - 284.6000671386719, - 432.7500915527344, - 292.3000793457031, - 451.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œ×gØ©ãWÔwÞcÝ?Ø8Ù�×gØ©Û\u0010à»Ü8ÔÖÕ1ܖÔÖÓNÓZåyÒrÕ/×QÛcÔÖÙ�×rò", - "origin": [ - 292.3000793457031, - 439.7500915527344 - ], - "bbox": [ - 292.3000793457031, - 433.2500915527344, - 453.8000793457031, - 452.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 432.7500915527344, - 453.8000793457031, - 452.15008544921875 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 85.60008239746094, - 445.7500915527344, - 520.3001098632812, - 465.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëV×gÕ/Ý?Ø8è8ÑÖßré+ÜuÝTà\u001b×Qãr×QÞgéÕ/Ý?Ù¥Ù�Ý?صÝrÚ", - "origin": [ - 85.60008239746094, - 452.7500915527344 - ], - "bbox": [ - 85.60008239746094, - 446.2500915527344, - 227.5000762939453, - 465.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 227.5000762939453, - 452.7500915527344 - ], - "bbox": [ - 227.5000762939453, - 446.2500915527344, - 233.4000701904297, - 464.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÓ¢Ò\u001dÞc×&ÕGÜ8Ò\u001dÞ1ÒrÕ/ÛZ×QÞGÔ", - "origin": [ - 233.4000701904297, - 452.7500915527344 - ], - "bbox": [ - 233.4000701904297, - 446.2500915527344, - 321.8000183105469, - 465.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 321.8000183105469, - 452.7500915527344 - ], - "bbox": [ - 321.8000183105469, - 445.7500915527344, - 324.8000183105469, - 464.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×gèµÚ©ß—Ò Õ/×QÞGÛcÒrÔÖØ–å×QÞGÓcÔlÓZÛZ×gØ8Õ/×ré8à»Ü+ÔÖÕGܖ٠Ò", - "origin": [ - 324.8000183105469, - 452.7500915527344 - ], - "bbox": [ - 324.8000183105469, - 446.2500915527344, - 504.7000732421875, - 465.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 504.7000732421875, - 452.7500915527344 - ], - "bbox": [ - 504.7000732421875, - 445.7500915527344, - 510.00006103515625, - 464.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×gÓ", - "origin": [ - 510.00006103515625, - 452.7500915527344 - ], - "bbox": [ - 510.00006103515625, - 446.2500915527344, - 520.3001098632812, - 465.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.60008239746094, - 445.7500915527344, - 520.3001098632812, - 465.15008544921875 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 71.10008239746094, - 459.15008544921875, - 228.80006408691406, - 478.0500793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×gÙ", - "origin": [ - 71.10008239746094, - 465.65008544921875 - ], - "bbox": [ - 71.10008239746094, - 459.15008544921875, - 86.30008697509766, - 478.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 459.15008544921875, - 86.30008697509766, - 478.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖè8×gتÛcÔ", - "origin": [ - 100.00008392333984, - 465.65008544921875 - ], - "bbox": [ - 100.00008392333984, - 459.15008544921875, - 124.00008392333984, - 478.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.00008392333984, - 459.15008544921875, - 124.00008392333984, - 478.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 127.00008392333984, - 465.65008544921875 - ], - "bbox": [ - 127.00008392333984, - 459.15008544921875, - 127.00008392333984, - 477.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yÒ\u001dÚ+ÑwלÔlØ7×", - "origin": [ - 127.00008392333984, - 465.65008544921875 - ], - "bbox": [ - 127.00008392333984, - 459.15008544921875, - 170.7000732421875, - 478.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 170.7000732421875, - 465.65008544921875 - ], - "bbox": [ - 170.7000732421875, - 459.15008544921875, - 175.4000701904297, - 477.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Wå×QÞGÔÖÙ�×gØ©ÛcÓQò", - "origin": [ - 175.4000701904297, - 465.65008544921875 - ], - "bbox": [ - 175.4000701904297, - 459.15008544921875, - 228.80006408691406, - 478.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.00008392333984, - 459.15008544921875, - 228.80006408691406, - 478.0500793457031 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 246.90008544921875, - 458.65008544921875, - 520.4000854492188, - 478.0500793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×QÞc×Qæ=ÝrÞc×ré­ÛcÜ8×\rÔlØuæ™ÝrÞ1Ù¥Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 246.90008544921875, - 465.65008544921875 - ], - "bbox": [ - 246.90008544921875, - 459.15008544921875, - 362.0999755859375, - 478.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.90008544921875, - 459.15008544921875, - 362.0999755859375, - 478.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑwÝ?ÓcÓ\u0014Ù\u0019â+ÓZÛ\u0019ڐ×\rÒ\u000fèu×gÑÖÔÖÕQÒ\u001dÛZ×\rÝ?Øu×rò", - "origin": [ - 372.7000732421875, - 465.65008544921875 - ], - "bbox": [ - 372.7000732421875, - 459.15008544921875, - 506.10009765625, - 478.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0016\n", - "origin": [ - 506.10009765625, - 465.65008544921875 - ], - "bbox": [ - 506.10009765625, - 458.65008544921875, - 516.4000854492188, - 477.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Û", - "origin": [ - 516.4000854492188, - 465.65008544921875 - ], - "bbox": [ - 516.4000854492188, - 459.15008544921875, - 520.4000854492188, - 478.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7000732421875, - 458.65008544921875, - 520.4000854492188, - 478.0500793457031 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 71.2000732421875, - 472.15008544921875, - 519.8001098632812, - 491.0500793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù&â8ÓZÛ^ڐ×&Õ/Ý?Ù�å+Ò\u001dÛcÔwÚ+ÑÖ×%à»ÔwÛcÜ!ÛcÜu×", - "origin": [ - 71.2000732421875, - 478.65008544921875 - ], - "bbox": [ - 71.2000732421875, - 472.15008544921875, - 204.70008850097656, - 491.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001a9\u000f\u0010\u0013\u001eb&\u0018\"\u0018\u000e\u000f6\u0013\u001c%\u0014 )>\u0010\u0013\u001e", - "origin": [ - 204.70008850097656, - 478.65008544921875 - ], - "bbox": [ - 204.70008850097656, - 472.15008544921875, - 267.1000671386719, - 490.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 472.15008544921875, - 267.1000671386719, - 491.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010A\f", - "origin": [ - 277.7000732421875, - 478.65008544921875 - ], - "bbox": [ - 277.7000732421875, - 472.15008544921875, - 281.8000793457031, - 490.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.7000732421875, - 472.15008544921875, - 281.8000793457031, - 490.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "48\u000e\u0011\u0010=I$\u001c=I\u0018)�D", - "origin": [ - 289.7000732421875, - 478.65008544921875 - ], - "bbox": [ - 289.7000732421875, - 472.15008544921875, - 323.800048828125, - 490.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.7000732421875, - 472.15008544921875, - 323.800048828125, - 490.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ") \u0014 F", - "origin": [ - 326.6000671386719, - 478.65008544921875 - ], - "bbox": [ - 326.6000671386719, - 472.15008544921875, - 333.6000671386719, - 490.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0018é°à¢Ü8ÔÖÕGܵÔÖÓ»Ò Ú+ÒrÓcÔÖÕ³ÛZ×gØu×QÛ\u0016Ýræ­Ò¥Þc×gÒrÓZÝ?Ø+Ò\u001dÚ+Ñw×", - "origin": [ - 333.6000671386719, - 478.65008544921875 - ], - "bbox": [ - 333.6000671386719, - 472.15008544921875, - 519.8001098632812, - 491.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.6000671386719, - 472.15008544921875, - 519.8001098632812, - 491.0500793457031 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 71.10006713867188, - 485.15008544921875, - 147.70005798339844, - 504.0500793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gØ8Óc×gÙ³Ú+ÑÖ×\u0016ÛcÜ8×QÝrÞcßrò", - "origin": [ - 71.10006713867188, - 491.65008544921875 - ], - "bbox": [ - 71.10006713867188, - 485.15008544921875, - 147.70005798339844, - 504.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 485.15008544921875, - 147.70005798339844, - 504.0500793457031 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 85.60006713867188, - 498.0500793457031, - 518.699951171875, - 516.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ð\u001bÝ?Ø©ÛZÞGÒ\u001dÞcß ÛZÝ�Ù�×gÒrÓGâuÞc×gÙ�×gØ©ÛNå8ÞcÝWÕ/×gÓcÓZ×gÓNÔÖØ\u001fäVâ8ÒrتÛcâ+ÙöÙ�×gÕGÜ8ÒrØ+ÔÖÕQÓQéWà»Üu×QÞc×;ÔÖØ8æ™ÝrÞGÙ Ò\u001dÛcÔwÝ?؜ÔlÓ\"ÛZÞ1ÒrØ8ÓZæ=×QÞcÞc×gè", - "origin": [ - 85.60006713867188, - 504.5500793457031 - ], - "bbox": [ - 85.60006713867188, - 498.0500793457031, - 518.699951171875, - 516.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.60006713867188, - 498.0500793457031, - 518.699951171875, - 516.9500732421875 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 71.10006713867188, - 510.550048828125, - 519.800048828125, - 529.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=ÞcÝ?ÙöÙ¥ÔÖÕ/ÞGÝ?ÓcÕ/Ýrå+ÔÖÕ\u0016ÛZÝ Ù¥ÒrÕ/ÞGÝ?ÓcÕ/Ýrå+ÔÖՓÝrÚ", - "origin": [ - 71.10006713867188, - 517.550048828125 - ], - "bbox": [ - 71.10006713867188, - 511.050048828125, - 235.50003051757812, - 529.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 235.50003051757812, - 517.550048828125 - ], - "bbox": [ - 235.50003051757812, - 511.050048828125, - 241.4000244140625, - 528.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÓQé", - "origin": [ - 241.4000244140625, - 517.550048828125 - ], - "bbox": [ - 241.4000244140625, - 511.050048828125, - 264.29998779296875, - 529.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\"!", - "origin": [ - 264.29998779296875, - 517.550048828125 - ], - "bbox": [ - 264.29998779296875, - 510.550048828125, - 270.8999938964844, - 528.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Nà\u001b×%å8ÞcÝråÝ?ÓZ×;Üu×QÞG×\u0016ÛcÜ+Ò\u001dÛ»Ù¥Ò\u001dÛZÛZ×QÞ»èu×QçrÞG×Q×gÓ^ÝræBæ™Þc×Q×gè8Ý?Ù", - "origin": [ - 270.8999938964844, - 517.550048828125 - ], - "bbox": [ - 270.8999938964844, - 511.050048828125, - 497.4998779296875, - 529.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 510.550048828125, - 497.4998779296875, - 529.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÞc×", - "origin": [ - 510.2000732421875, - 517.550048828125 - ], - "bbox": [ - 510.2000732421875, - 511.050048828125, - 519.800048828125, - 529.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.2000732421875, - 511.050048828125, - 519.800048828125, - 529.9500732421875 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 71.2000732421875, - 523.4500732421875, - 327.60009765625, - 542.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/Ý?Ø©ÛcÔÖØVâ8ÒrÑÖÑwß", - "origin": [ - 71.2000732421875, - 530.4500732421875 - ], - "bbox": [ - 71.2000732421875, - 523.9500732421875, - 117.90007019042969, - 542.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "#�", - "origin": [ - 117.90007019042969, - 530.4500732421875 - ], - "bbox": [ - 117.90007019042969, - 523.4500732421875, - 128.5000762939453, - 541.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÙ�×gÒrÓcâuÞc×gè", - "origin": [ - 128.5000762939453, - 530.4500732421875 - ], - "bbox": [ - 128.5000762939453, - 523.9500732421875, - 171.50006103515625, - 542.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "$�", - "origin": [ - 171.50006103515625, - 530.4500732421875 - ], - "bbox": [ - 171.50006103515625, - 523.4500732421875, - 177.70005798339844, - 541.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014Ú©ß\rÛcÜu×;×QãrÝ?ÑÖâ8ÛcÔwÝ?ؗÝræ¡ÓZå+ÒrÕ/×QÛcÔÖÙ¥×rò", - "origin": [ - 177.70005798339844, - 530.4500732421875 - ], - "bbox": [ - 177.70005798339844, - 523.9500732421875, - 327.60009765625, - 542.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 523.4500732421875, - 327.60009765625, - 542.85009765625 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 93.3000717163086, - 536.9500732421875, - 520.5, - 555.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×gÓZ×&Üu×gâuÞGÔlÓZÛcÔÖÕ%Õ/Ý?Ø8ÓGÔÖèu×QÞGÒ\u001dÛcÔwÝ?Ø+Ó»Ñw×gÒrè\u000fâ8Ó»ÛZÝ\rÙ¥ÝVè8ÔÖæ™ß\rÛcÜu×\u0014ÕQÑÖÒrÓcÓcÔlÕQÒrѬ×gØ8ÓZ×gÙ\u0019Ú+Ñw×&ÛcÜu×QÝrÞcߖÔlصÔÖÙ¥å6ÝrÞGÛcÒrتÛ", - "origin": [ - 93.3000717163086, - 543.4500732421875 - ], - "bbox": [ - 93.3000717163086, - 536.9500732421875, - 520.5, - 555.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.3000717163086, - 536.9500732421875, - 520.5, - 555.85009765625 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 71.10006713867188, - 549.7500610351562, - 94.40007019042969, - 568.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u0010ÒgßWÓQò", - "origin": [ - 71.10006713867188, - 556.2500610351562 - ], - "bbox": [ - 71.10006713867188, - 549.7500610351562, - 94.40007019042969, - 568.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 549.7500610351562, - 94.40007019042969, - 568.6500854492188 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 112.80006408691406, - 549.7500610351562, - 520.300048828125, - 568.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×\u0019à»ÔlÑÖѬÔÖØ8Õ/ÝrÞGå6ÝrÞ1Ò\u001dÛZ×\u0019è8ÔÖÓGÓcÔwå+Ò\u001dÛcÔwÝ?Ø!ÔÖØªÛZݜÛcÜu×\u0014á4ÔwÝ?âuãWÔÖÑÖÑÖ×;×gä©â8Ò\u001dÛcÔÖÝ?ذé6Ü8ÝTà\u001b×Qãr×QÞgé¬ÔÖØ!ÓGâ8ÕGÜ", - "origin": [ - 112.80006408691406, - 556.2500610351562 - ], - "bbox": [ - 112.80006408691406, - 549.7500610351562, - 463.0, - 568.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.80006408691406, - 549.7500610351562, - 463.0, - 568.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò à\u0010Ògß!ÛcÜ8Ò\u001dÛ", - "origin": [ - 473.00006103515625, - 556.2500610351562 - ], - "bbox": [ - 473.00006103515625, - 549.7500610351562, - 520.300048828125, - 568.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.00006103515625, - 549.7500610351562, - 520.300048828125, - 568.6500854492188 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 71.10006713867188, - 562.7500610351562, - 257.50006103515625, - 581.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å8ÞGÝrÚ+Ò\u001dÚ+ÔÖÑÖÔÖÛsß\u0014Õ/Ý?Ø8ÓZ×QÞcã\u001dÒ\u001dÛcÔwÝ?Ø\u001fÞc×gÙ¥ÒrÔÖØ+Ó½ÔÖØ©ÛcÒrÕ/ÛQò", - "origin": [ - 71.10006713867188, - 569.2500610351562 - ], - "bbox": [ - 71.10006713867188, - 562.7500610351562, - 257.50006103515625, - 581.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 562.7500610351562, - 257.50006103515625, - 581.6500854492188 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 272.8000793457031, - 562.7500610351562, - 520.300048828125, - 581.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔlÓ¡å8ÞcÝaãVÔÖè8×gÓ\"â8Ó\"à»ÔwÛcÜ\u001fÒ\u0019ç?ÑÖÔÖÙ�å+Óc×^Ýræ¬ÛcÜu×\u0016Ù�×gÕGÜ8ÒrØ+ÔÖÓcÙ", - "origin": [ - 272.8000793457031, - 569.2500610351562 - ], - "bbox": [ - 272.8000793457031, - 562.7500610351562, - 492.30010986328125, - 581.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.8000793457031, - 562.7500610351562, - 492.30010986328125, - 581.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8Ò\u001dÛ", - "origin": [ - 504.60009765625, - 569.2500610351562 - ], - "bbox": [ - 504.60009765625, - 562.7500610351562, - 520.300048828125, - 581.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 504.60009765625, - 562.7500610351562, - 520.300048828125, - 581.6500854492188 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 71.20010375976562, - 575.7500610351562, - 519.7999877929688, - 594.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥ÔÖç?ܪÛNڐ×%Þc×gÓcå6Ý?Ø+ÓcÔwÚ+Ñw×\u0016æ=ÝrÞ»ÛcâuÞGØ+ÔÖØuç\u0014ÛcÜu×\u0019è8×QÛZ×QÞGÙ¥ÔÖØ8ÔlÓZÛcÔÖÕ\u0016×QãrÝ?ÑÖâuÛcÔwÝ?ؖÝræ­ÕQÑÖÒrÓcÓcÔÖÕQÒrѬÝrÚ", - "origin": [ - 71.20010375976562, - 582.2500610351562 - ], - "bbox": [ - 71.20010375976562, - 575.7500610351562, - 421.2000427246094, - 594.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 421.2000427246094, - 582.2500610351562 - ], - "bbox": [ - 421.2000427246094, - 575.7500610351562, - 427.10003662109375, - 593.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "P×gÕ/ÛcÓgéyèu×gÓcÕ/Þ1Ôwڐ×gè—Üu×QÞc×", - "origin": [ - 427.10003662109375, - 582.2500610351562 - ], - "bbox": [ - 427.10003662109375, - 575.7500610351562, - 519.7999877929688, - 594.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20010375976562, - 575.7500610351562, - 519.7999877929688, - 594.6500854492188 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 71.10010528564453, - 588.6500244140625, - 424.8000793457031, - 607.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÚVß\u001fÒrؖ×gØ8ÓZ×gÙ\u0019Ú+Ñw×;ÛcÜu×QÝrÞcßréyÔÖØªÛZÝ ÛcÜu×\u0019ëWÕGÜ8Þaì", - "origin": [ - 71.10010528564453, - 595.1500244140625 - ], - "bbox": [ - 71.10010528564453, - 588.6500244140625, - 246.90011596679688, - 607.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10010528564453, - 588.6500244140625, - 246.90011596679688, - 607.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?è8ÔÖØuçr×QÞN×QãrÝ?ÑlâuÛcÔwÝ?ؗÝræ¡äVâ8ÒrتÛcâ+Ù", - "origin": [ - 246.10009765625, - 595.1500244140625 - ], - "bbox": [ - 246.10009765625, - 588.6500244140625, - 378.1000671386719, - 607.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.10009765625, - 588.6500244140625, - 378.1000671386719, - 607.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÚ", - "origin": [ - 390.60009765625, - 595.1500244140625 - ], - "bbox": [ - 390.60009765625, - 588.6500244140625, - 396.0000915527344, - 607.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 396.0000915527344, - 595.1500244140625 - ], - "bbox": [ - 396.0000915527344, - 588.6500244140625, - 401.90008544921875, - 606.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "P×gÕ/ÛcÓgò", - "origin": [ - 401.90008544921875, - 595.1500244140625 - ], - "bbox": [ - 401.90008544921875, - 588.6500244140625, - 424.8000793457031, - 607.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.60009765625, - 588.6500244140625, - 424.8000793457031, - 607.550048828125 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 71.40008544921875, - 616.8500366210938, - 78.00008392333984, - 636.2500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "%", - "origin": [ - 71.40008544921875, - 623.8500366210938 - ], - "bbox": [ - 71.40008544921875, - 616.8500366210938, - 71.40008544921875, - 635.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "°Ã", - "origin": [ - 71.40008544921875, - 623.8500366210938 - ], - "bbox": [ - 71.40008544921875, - 617.3500366210938, - 78.00008392333984, - 636.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.40008544921875, - 616.8500366210938, - 78.00008392333984, - 636.2500610351562 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 86.60008239746094, - 616.550048828125, - 123.20008087158203, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "0\u00192->", - "origin": [ - 86.60008239746094, - 623.550048828125 - ], - "bbox": [ - 86.60008239746094, - 617.050048828125, - 102.20008087158203, - 635.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "'&", - "origin": [ - 102.20008087158203, - 623.550048828125 - ], - "bbox": [ - 102.20008087158203, - 616.550048828125, - 112.10008239746094, - 634.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010Ë=3", - "origin": [ - 112.10008239746094, - 623.550048828125 - ], - "bbox": [ - 112.10008239746094, - 617.050048828125, - 123.20008087158203, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.60008239746094, - 616.550048828125, - 123.20008087158203, - 635.9500732421875 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 129.50009155273438, - 616.8500366210938, - 136.3000946044922, - 636.2500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Å", - "origin": [ - 129.50009155273438, - 623.8500366210938 - ], - "bbox": [ - 129.50009155273438, - 617.3500366210938, - 129.50009155273438, - 636.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ")(", - "origin": [ - 129.50009155273438, - 623.8500366210938 - ], - "bbox": [ - 129.50009155273438, - 616.8500366210938, - 136.3000946044922, - 635.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.50009155273438, - 616.8500366210938, - 136.3000946044922, - 636.2500610351562 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 143.10009765625, - 616.550048828125, - 169.10009765625, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "˒:=:=>", - "origin": [ - 143.10009765625, - 623.550048828125 - ], - "bbox": [ - 143.10009765625, - 617.050048828125, - 153.40008544921875, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 143.10009765625, - 617.050048828125, - 153.40008544921875, - 635.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ">", - "origin": [ - 163.4001007080078, - 623.550048828125 - ], - "bbox": [ - 163.4001007080078, - 617.050048828125, - 163.4001007080078, - 635.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+*", - "origin": [ - 163.4001007080078, - 623.550048828125 - ], - "bbox": [ - 163.4001007080078, - 616.550048828125, - 169.10009765625, - 634.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.4001007080078, - 616.550048828125, - 169.10009765625, - 635.9500732421875 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 182.70008850097656, - 617.050048828125, - 234.20008850097656, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ")uÆaË=36*\u001e˒*", - "origin": [ - 182.70008850097656, - 623.550048828125 - ], - "bbox": [ - 182.70008850097656, - 617.050048828125, - 218.20008850097656, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.70008850097656, - 617.050048828125, - 218.20008850097656, - 635.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÆT>", - "origin": [ - 229.20008850097656, - 623.550048828125 - ], - "bbox": [ - 229.20008850097656, - 617.050048828125, - 234.20008850097656, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.20008850097656, - 617.050048828125, - 234.20008850097656, - 635.9500732421875 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 245.20008850097656, - 616.550048828125, - 303.1000671386719, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "5¾,�3+Ç»(", - "origin": [ - 245.20008850097656, - 623.550048828125 - ], - "bbox": [ - 245.20008850097656, - 617.050048828125, - 278.9001159667969, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.20008850097656, - 617.050048828125, - 278.9001159667969, - 635.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "˒:", - "origin": [ - 288.90008544921875, - 623.550048828125 - ], - "bbox": [ - 288.90008544921875, - 617.050048828125, - 292.40008544921875, - 635.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "-,", - "origin": [ - 292.40008544921875, - 623.550048828125 - ], - "bbox": [ - 292.40008544921875, - 616.550048828125, - 295.7000732421875, - 634.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½>", - "origin": [ - 295.7000732421875, - 623.550048828125 - ], - "bbox": [ - 295.7000732421875, - 617.050048828125, - 303.1000671386719, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.90008544921875, - 616.550048828125, - 303.1000671386719, - 635.9500732421875 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 313.90008544921875, - 617.050048828125, - 370.10009765625, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Æ¥,gÎB)8Ï?>\u000f3+έ>", - "origin": [ - 313.90008544921875, - 623.550048828125 - ], - "bbox": [ - 313.90008544921875, - 617.050048828125, - 370.10009765625, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.90008544921875, - 617.050048828125, - 370.10009765625, - 635.9500732421875 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 381.10009765625, - 617.050048828125, - 392.10009765625, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ")uÆT3", - "origin": [ - 381.10009765625, - 623.550048828125 - ], - "bbox": [ - 381.10009765625, - 617.050048828125, - 392.10009765625, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 381.10009765625, - 617.050048828125, - 392.10009765625, - 635.9500732421875 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 71.10012817382812, - 629.3500366210938, - 519.8001708984375, - 648.7500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 71.10012817382812, - 636.3500366210938 - ], - "bbox": [ - 71.10012817382812, - 629.3500366210938, - 71.10012817382812, - 647.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Û\u0014à»ÔÖÑÖÑ\"ڐ×\rÓGÜuÝTà»Ø\u0012Ü8×QÞcחÜuÝTà", - "origin": [ - 71.10012817382812, - 636.3500366210938 - ], - "bbox": [ - 71.10012817382812, - 629.8500366210938, - 191.7001495361328, - 648.7500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10012817382812, - 629.3500366210938, - 191.7001495361328, - 648.7500610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×", - "origin": [ - 204.40013122558594, - 636.3500366210938 - ], - "bbox": [ - 204.40013122558594, - 629.8500366210938, - 214.80014038085938, - 648.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "W9\u0018D", - "origin": [ - 214.80014038085938, - 636.3500366210938 - ], - "bbox": [ - 214.80014038085938, - 629.8500366210938, - 230.00013732910156, - 647.7500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 204.40013122558594, - 629.8500366210938, - 230.00013732910156, - 648.7500610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&3&') 9\u000f\u001c\u0013D", - "origin": [ - 238.20013427734375, - 636.3500366210938 - ], - "bbox": [ - 238.20013427734375, - 629.8500366210938, - 260.5001220703125, - 647.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡á4ÔwÝ?âuãWÔÖÑÖÑÖ×¥×gä©â+Ò\u001dÛcÔwÝ?ØÁÕQÒrØ\u0012ڐ×\u001fà^ÞGÔwÛZÛZ×gØ\u0012ÔÖØ", - "origin": [ - 260.5001220703125, - 636.3500366210938 - ], - "bbox": [ - 260.5001220703125, - 629.8500366210938, - 438.5000915527344, - 648.7500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 238.20013427734375, - 629.8500366210938, - 438.5000915527344, - 648.7500610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuחæ=ÝrÞGÙ", - "origin": [ - 449.10015869140625, - 636.3500366210938 - ], - "bbox": [ - 449.10015869140625, - 629.8500366210938, - 482.20013427734375, - 648.7500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.10015869140625, - 629.8500366210938, - 482.20013427734375, - 648.7500610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ\u0016ÛcÜu×", - "origin": [ - 495.900146484375, - 636.3500366210938 - ], - "bbox": [ - 495.900146484375, - 629.8500366210938, - 519.8001708984375, - 648.7500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 495.900146484375, - 629.8500366210938, - 519.8001708984375, - 648.7500610351562 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 71.900146484375, - 642.7500610351562, - 522.2000732421875, - 661.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "S#\u001bb\u001c%\u001e\u001f\u0014 \u001b�\u0012", - "origin": [ - 71.900146484375, - 649.2500610351562 - ], - "bbox": [ - 71.900146484375, - 642.7500610351562, - 103.8001480102539, - 660.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.900146484375, - 642.7500610351562, - 103.8001480102539, - 660.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012(\"39�;X\u001c\u0013\u001e\u001f) 9\u000f\u001c\u0013D", - "origin": [ - 115.60014343261719, - 649.2500610351562 - ], - "bbox": [ - 115.60014343261719, - 642.7500610351562, - 164.50013732910156, - 660.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ+س×gäVâ8Ò\u001dÛcÔwÝ?ذé\u0018çr×gØu×QÞGÒrÑlÑwßrérÔÖØ8Õ/ÝrÞcåÝrÞGÒ\u001dÛcÔÖØ8ç^Ò»ÕGÜ+Ò\u001dÞGÒrÕ/ÛZ×QÞGÔÖÓZÛcÔlÕ½×", - "origin": [ - 164.50013732910156, - 649.2500610351562 - ], - "bbox": [ - 164.50013732910156, - 642.7500610351562, - 471.90008544921875, - 661.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 471.90008544921875, - 649.2500610351562 - ], - "bbox": [ - 471.90008544921875, - 642.7500610351562, - 476.60009765625, - 660.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZÞGÒ¢ÛZ×QÞGٗò", - "origin": [ - 476.60009765625, - 649.2500610351562 - ], - "bbox": [ - 476.60009765625, - 642.7500610351562, - 522.2000732421875, - 661.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 115.60014343261719, - 642.7500610351562, - 522.2000732421875, - 661.6500854492188 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 95.50013732910156, - 655.2500610351562, - 470.6001281738281, - 674.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "לÕ/Ý?Ø8ÓGÔÖèu×QÞ%ÝrÚ", - "origin": [ - 95.50013732910156, - 662.2500610351562 - ], - "bbox": [ - 95.50013732910156, - 655.7500610351562, - 153.30014038085938, - 674.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 153.30014038085938, - 662.2500610351562 - ], - "bbox": [ - 153.30014038085938, - 655.7500610351562, - 159.20013427734375, - 673.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÓ%à¢ÔwÛcÜ", - "origin": [ - 159.20013427734375, - 662.2500610351562 - ], - "bbox": [ - 159.20013427734375, - 655.7500610351562, - 201.20013427734375, - 674.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.50013732910156, - 655.7500610351562, - 201.20013427734375, - 674.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ҖÓcÔlØuç?Ñw×¥Õ/Ý?Ø©ÛcÔÖØ©â8Ý?â8Ó³èu×QçrÞG×Q×¥Ýræ\u0010æ™Þc×Q×gè8Ý?ٗé-æ=ÝrÞ\u0019ÓGÔÖÙ�å+ÑÖÔlÕQÔwÛsßrò", - "origin": [ - 211.50013732910156, - 662.2500610351562 - ], - "bbox": [ - 211.50013732910156, - 655.7500610351562, - 464.1001281738281, - 674.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "/.", - "origin": [ - 464.1001281738281, - 662.2500610351562 - ], - "bbox": [ - 464.1001281738281, - 655.2500610351562, - 470.6001281738281, - 673.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.50013732910156, - 655.2500610351562, - 470.6001281738281, - 674.6500854492188 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 489.1001281738281, - 655.7500610351562, - 518.7001342773438, - 674.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ݖڐ×Qç?ÔÖØ", - "origin": [ - 489.1001281738281, - 662.2500610351562 - ], - "bbox": [ - 489.1001281738281, - 655.7500610351562, - 518.7001342773438, - 674.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.1001281738281, - 655.7500610351562, - 518.7001342773438, - 674.6500854492188 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 71.10012817382812, - 668.7500610351562, - 519.800048828125, - 687.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcܰéuà\"×\u0019Õ/Ý?Ø8ÓcÔÖèu×QÞ¢Õ/Ý?Ø8ÓZ×QÞcã\u001dÒ\u001dÛcÔwãr׳æ=ÝrÞGÕ/×gÓQé6Ócâ8Õ1ܗÛcÜ8Ò\u001dÛ»ÛcÜ8×%×gä©â+Ò\u001dÛcÔwÝ?Ø8ÓNÝræ¡Ù�ÝrÛcÔwÝ?صÒ\u001dÞc׳èu×QÛZ×QÞ1Ù¥ÔÖØu×gè—ÚVß\rÛcÜu×", - "origin": [ - 71.10012817382812, - 675.2500610351562 - ], - "bbox": [ - 71.10012817382812, - 668.7500610351562, - 519.800048828125, - 687.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10012817382812, - 668.7500610351562, - 519.800048828125, - 687.6500854492188 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 71.10012817382812, - 681.6500244140625, - 204.10015869140625, - 700.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çr×gØu×QÞ1ÔÖÕ;ê¢ÒrÙ ÔÖÑwÛZÝ?Ø8ÔÖÒrØ\ræ’â8Ø8Õ/ÛcÔÖÝ?Ø", - "origin": [ - 71.10012817382812, - 688.1500244140625 - ], - "bbox": [ - 71.10012817382812, - 681.6500244140625, - 204.10015869140625, - 700.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10012817382812, - 681.6500244140625, - 204.10015869140625, - 700.550048828125 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 251.8001251220703, - 698.1500244140625, - 265.5001220703125, - 716.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21)354", - "origin": [ - 251.8001251220703, - 705.1500244140625 - ], - "bbox": [ - 251.8001251220703, - 698.1500244140625, - 265.5001220703125, - 716.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.8001251220703, - 698.1500244140625, - 265.5001220703125, - 716.550048828125 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 272.1001281738281, - 698.6500244140625, - 282.5001525878906, - 717.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 272.1001281738281, - 705.6500244140625 - ], - "bbox": [ - 272.1001281738281, - 698.6500244140625, - 272.1001281738281, - 717.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0015\u0017", - "origin": [ - 272.1001281738281, - 705.6500244140625 - ], - "bbox": [ - 272.1001281738281, - 699.1500244140625, - 279.8001403808594, - 717.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 279.8001403808594, - 705.6500244140625 - ], - "bbox": [ - 279.8001403808594, - 698.6500244140625, - 282.5001525878906, - 717.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.1001281738281, - 698.6500244140625, - 282.5001525878906, - 717.050048828125 - ] - } - ] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 307.1000061035156, - 698.1500244140625, - 334.8999938964844, - 716.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ".\u000b8#9", - "origin": [ - 307.1000061035156, - 705.25 - ], - "bbox": [ - 307.1000061035156, - 698.25, - 325.0, - 716.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.1000061035156, - 698.25, - 325.0, - 716.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 331.5, - 705.1500244140625 - ], - "bbox": [ - 331.5, - 698.1500244140625, - 334.8999938964844, - 716.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.5, - 698.1500244140625, - 334.8999938964844, - 716.550048828125 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 515.5999755859375, - 698.6500244140625, - 520.5999755859375, - 718.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î", - "origin": [ - 515.5999755859375, - 705.6500244140625 - ], - "bbox": [ - 515.5999755859375, - 699.1500244140625, - 515.5999755859375, - 718.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ":\u0012", - "origin": [ - 515.5999755859375, - 705.6500244140625 - ], - "bbox": [ - 515.5999755859375, - 698.6500244140625, - 520.5999755859375, - 717.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.5999755859375, - 698.6500244140625, - 520.5999755859375, - 718.050048828125 - ] - } - ] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 80.1999740600586, - 727.4500122070312, - 119.6999740600586, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "j=O\u0014E»‘°EP%‘", - "origin": [ - 80.1999740600586, - 733.9500122070312 - ], - "bbox": [ - 80.1999740600586, - 727.4500122070312, - 119.6999740600586, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.1999740600586, - 727.4500122070312, - 119.6999740600586, - 746.3500366210938 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 131.5999755859375, - 727.4500122070312, - 134.0999755859375, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALY", - "origin": [ - 131.5999755859375, - 733.9500122070312 - ], - "bbox": [ - 131.5999755859375, - 727.4500122070312, - 134.0999755859375, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.5999755859375, - 727.4500122070312, - 134.0999755859375, - 746.3500366210938 - ] - } - ] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 146.7999725341797, - 727.4500122070312, - 304.29998779296875, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ADX­OaR1H­•\u0018O\u0018SaM]FJX’HJRQRgS³ALO�E1tLt+ALHJX½EGXICrMPY]HJX­ALO\u0019H", - "origin": [ - 146.7999725341797, - 733.9500122070312 - ], - "bbox": [ - 146.7999725341797, - 727.4500122070312, - 304.29998779296875, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.7999725341797, - 727.4500122070312, - 304.29998779296875, - 746.3500366210938 - ] - } - ] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 313.1999816894531, - 727.4500122070312, - 432.9000244140625, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]R1FIQš^U\u0018RGF­FJMPYPMPOQH½SaALXIYP•aXIXIALReO\u0018XP`V‘", - "origin": [ - 313.1999816894531, - 733.9500122070312 - ], - "bbox": [ - 313.1999816894531, - 727.4500122070312, - 432.9000244140625, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.1999816894531, - 727.4500122070312, - 432.9000244140625, - 746.3500366210938 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 444.79998779296875, - 727.4500122070312, - 447.29998779296875, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALY", - "origin": [ - 444.79998779296875, - 733.9500122070312 - ], - "bbox": [ - 444.79998779296875, - 727.4500122070312, - 447.29998779296875, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.79998779296875, - 727.4500122070312, - 447.29998779296875, - 746.3500366210938 - ] - } - ] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 459.9999694824219, - 727.4500122070312, - 517.800048828125, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Y]FJAžHJADYPE1tLtž\u0019FJMPhgALM]‘", - "origin": [ - 459.9999694824219, - 733.9500122070312 - ], - "bbox": [ - 459.9999694824219, - 727.4500122070312, - 517.800048828125, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.9999694824219, - 727.4500122070312, - 517.800048828125, - 746.3500366210938 - ] - } - ] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 70.99996948242188, - 737.8499755859375, - 194.9999542236328, - 757.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "FJMPtDEGHJMZS¢A´STMZE1XP`\u0018XIMPM", - "origin": [ - 70.99996948242188, - 744.8499755859375 - ], - "bbox": [ - 70.99996948242188, - 738.3499755859375, - 135.199951171875, - 757.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e<", - "origin": [ - 135.199951171875, - 744.8499755859375 - ], - "bbox": [ - 135.199951171875, - 737.8499755859375, - 142.3999481201172, - 756.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4M] ¸XPš", - "origin": [ - 142.3999481201172, - 744.8499755859375 - ], - "bbox": [ - 142.3999481201172, - 738.3499755859375, - 160.199951171875, - 757.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+=", - "origin": [ - 160.199951171875, - 744.8499755859375 - ], - "bbox": [ - 160.199951171875, - 737.8499755859375, - 165.8999481201172, - 756.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocmT`ªoZn", - "origin": [ - 165.8999481201172, - 744.8499755859375 - ], - "bbox": [ - 165.8999481201172, - 738.3499755859375, - 187.3999481201172, - 757.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 187.3999481201172, - 744.8499755859375 - ], - "bbox": [ - 187.3999481201172, - 737.8499755859375, - 191.8999481201172, - 756.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "֚", - "origin": [ - 191.8999481201172, - 744.8499755859375 - ], - "bbox": [ - 191.8999481201172, - 738.3499755859375, - 194.9999542236328, - 757.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.99996948242188, - 737.8499755859375, - 194.9999542236328, - 757.25 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 80.29997253417969, - 749.75, - 86.79997253417969, - 768.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 80.29997253417969, - 756.25 - ], - "bbox": [ - 80.29997253417969, - 749.75, - 86.79997253417969, - 768.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.29997253417969, - 749.75, - 86.79997253417969, - 768.6500244140625 - ] - } - ] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 91.99996948242188, - 749.9500122070312, - 331.0999450683594, - 768.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M· ¸R1tLtDRZ‘¬ALO\u0018d^ALX4MZE1XIALtž¢FJM]CrMZEGHJMZS» ¸R1F4 ¸M¯‘°k™£rRgSg»X’aX’HJM]KNX4RGF¬¤\u001dMPtDSaXPš", - "origin": [ - 91.99996948242188, - 756.4500122070312 - ], - "bbox": [ - 91.99996948242188, - 749.9500122070312, - 331.0999450683594, - 768.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.99996948242188, - 749.9500122070312, - 331.0999450683594, - 768.8500366210938 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [ - { - "bbox": [ - 239.64867042707493, - 696.4957264957264, - 355.87107171635773, - 722.9145299145299 - ], - "image_path": "equation_interline/2_239_696_355_722.jpg" - } - ], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 71.9962158203125, - 595.5, - 718.050048828125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 70.99996948242188, - 727.4500122070312, - 432.9000244140625, - 768.8500366210938 - ], - "layout_label": "U", - "sub_layout": [], - "bad_boxes": [ - [ - 146.7999725341797, - 727.4500122070312, - 304.29998779296875, - 746.3500366210938 - ], - [ - 91.99996948242188, - 749.9500122070312, - 331.0999450683594, - 768.8500366210938 - ], - [ - 70.99996948242188, - 727.4500122070312, - 194.9999542236328, - 768.6500244140625 - ] - ] - }, - { - "layout_bbox": [ - 444.79998779296875, - 727.4500122070312, - 447.29998779296875, - 768.8500366210938 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 459.9999694824219, - 727.4500122070312, - 517.800048828125, - 768.8500366210938 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 791.7025756835938, - 595.5, - 800.5619506835938 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 95.5, - 109.04998779296875, - 519.7999877929688, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×\"ÓZå×gÕQâ8ÑlÒ\u001dÛZ×­ÛcÜ8Ò\u001dÛ4ÛcÜ8×", - "origin": [ - 95.5, - 116.04998779296875 - ], - "bbox": [ - 95.5, - 109.54998779296875, - 182.4000244140625, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.5, - 109.54998779296875, - 182.4000244140625, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001c%\u0014\u0016\u0010\u0013\u0012O)�&'\u0014 )>9", - "origin": [ - 190.5, - 116.04998779296875 - ], - "bbox": [ - 190.5, - 109.54998779296875, - 228.8000030517578, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "·ÓZÛZÞGâ8Õ/ÛcâuÞGסÝræ8ÓZå+ÒrÕ/×QÛcÔÖÙ�×\"ÔwÛcÓZ×gÑwæWÔÖÓ¬ÞG×gÓZåÝ?Ø8ÓcÔwÚ+ÑÖ×-æ=ÝrÞ4×", - "origin": [ - 228.8000030517578, - 116.04998779296875 - ], - "bbox": [ - 228.8000030517578, - 109.54998779296875, - 447.8999938964844, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 447.8999938964844, - 116.04998779296875 - ], - "bbox": [ - 447.8999938964844, - 109.04998779296875, - 452.6000061035156, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛcÓBà»Ü8ÔÖÕ1Ü%Ò\u001dÞc×", - "origin": [ - 452.6000061035156, - 116.04998779296875 - ], - "bbox": [ - 452.6000061035156, - 109.54998779296875, - 519.7999877929688, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 190.5, - 109.04998779296875, - 519.7999877929688, - 128.44998168945312 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 71.19999694824219, - 122.45001220703125, - 519.7998046875, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÛZÛZÞGÔÖÚ+âuÛZ×gè\u0014ÛZݳäVâ8ÒrØ©Ûcâ8َÙ�×gÕGÜ+ÒrØ8ÔÖÕQÓQé©ÛsßVå+ÔÖÕQÒrÑÖÑwß\u0019Ýrå×QÞGÒ\u001dÛcÔÖØuç;Ò\u001dÛ½Ñw×gØ8çrÛcÜ¥ÓcÕQÒrÑw×gÓ¡ãr×QÞGß\u0014Ù&â8Õ1Ü¥ÑÖÒ\u001dÞcçr×QÞ­ÛcÜ+ÒrØ�ÛcÜu×", - "origin": [ - 71.19999694824219, - 128.95001220703125 - ], - "bbox": [ - 71.19999694824219, - 122.45001220703125, - 519.7998046875, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 122.45001220703125, - 519.7998046875, - 141.35000610351562 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 78.69999694824219, - 134.95001220703125, - 522.1000366210938, - 154.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 78.69999694824219, - 141.95001220703125 - ], - "bbox": [ - 78.69999694824219, - 135.45001220703125, - 93.29999542236328, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 93.29999542236328, - 141.95001220703125 - ], - "bbox": [ - 93.29999542236328, - 134.95001220703125, - 97.5999984741211, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "%ÑÖ×gØuçrÛcܰò-ê¢×QÞc×", - "origin": [ - 97.5999984741211, - 141.95001220703125 - ], - "bbox": [ - 97.5999984741211, - 135.45001220703125, - 160.50001525878906, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 160.50001525878906, - 141.95001220703125 - ], - "bbox": [ - 160.50001525878906, - 134.95001220703125, - 169.50001525878906, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒ\u001dÛZÝ?Ù¥ÔÖÓcÛcÔÖÕ", - "origin": [ - 169.50001525878906, - 141.95001220703125 - ], - "bbox": [ - 169.50001525878906, - 135.45001220703125, - 212.60003662109375, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 212.60003662109375, - 141.95001220703125 - ], - "bbox": [ - 212.60003662109375, - 134.95001220703125, - 217.40003967285156, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "»ÞG×Qæ™×QÞGÓ-ÛZÝ;Ò»è8ÔlÓcÕ/Þc×QÛZ×\u0010ÓZ×QÛ-Ýræu×gÑÖ×gÙ�×gتÛcÓBà»ÔÖÛcܳÛcÜu×\"å8Þc×gÓZ×gØ+Õ/×rérÝrÞBÒ\u001dÚ+Óc×gØ8Õ/×ré", - "origin": [ - 217.40003967285156, - 141.95001220703125 - ], - "bbox": [ - 217.40003967285156, - 135.45001220703125, - 522.1000366210938, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.69999694824219, - 134.95001220703125, - 522.1000366210938, - 154.35000610351562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 71.0999984741211, - 148.35003662109375, - 326.6999816894531, - 167.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ\u0010җÕ/×QÞcÛcÒrÔÖØ�ÝrÞ1èu×QÞ;Þc×gÑÖÒ\u001dÛcÔwÝ?Ø\u000fڐ×QÛ¯à\"×Q×gؾÒrتß", - "origin": [ - 71.0999984741211, - 154.85003662109375 - ], - "bbox": [ - 71.0999984741211, - 148.35003662109375, - 254.10000610351562, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999984741211, - 148.35003662109375, - 254.10000610351562, - 167.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ûsà\u001bݖ×gÑw×gÙ�×gØ©ÛcÓQò", - "origin": [ - 264.1000061035156, - 154.85003662109375 - ], - "bbox": [ - 264.1000061035156, - 148.35003662109375, - 326.6999816894531, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.1000061035156, - 148.35003662109375, - 326.6999816894531, - 167.25003051757812 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 341.9000244140625, - 148.35003662109375, - 519.7999267578125, - 167.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "â8ÞcÛcÜu×QÞGÙ�ÝrÞG×ré¬ÛcÜ8ÔÖÓ;ÓZ×QÛQéBÔÖØ\u000få+Ò\u001dÞcÛcÔlÕQâ8ÑÖÒ\u001dޓÛcÜu×", - "origin": [ - 341.9000244140625, - 154.85003662109375 - ], - "bbox": [ - 341.9000244140625, - 148.35003662109375, - 519.7999267578125, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.9000244140625, - 148.35003662109375, - 519.7999267578125, - 167.25003051757812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 71.20001220703125, - 161.35003662109375, - 519.2998657226562, - 180.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ØVâ8Ù\u0019Ú6×QÞBÝræÔwÛcÓB×gÑw×gÙ�×gØ©ÛcÓ­ÕGÜ8ÒrØ8çr×gÓ­èußWØ8ÒrÙ¥ÔÖÕQÒrÑÖÑÖßré\u0018åÝ?ÓcÓGÔwÚ+Ñwߓ×gÓZÛcÒ\u001dÚ+ÑlÔÖÓcÜ8ÔÖØ8ç»Øu×Qà\u0012ÝrÞGèu×QÞ¡ÞG×gÑÖÒ\u001dÛcÔwÝ?Ø8ÓQé\u001dÝrÞ­×QÞ1ÒrÓcÔÖØuç", - "origin": [ - 71.20001220703125, - 167.85003662109375 - ], - "bbox": [ - 71.20001220703125, - 161.35003662109375, - 519.2998657226562, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 161.35003662109375, - 519.2998657226562, - 180.25003051757812 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 71.10001373291016, - 173.85003662109375, - 252.60003662109375, - 193.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÑÖè\rÝ?Ø8×gÓQò", - "origin": [ - 71.10001373291016, - 180.85003662109375 - ], - "bbox": [ - 71.10001373291016, - 174.35003662109375, - 110.50001525878906, - 193.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000b\n", - "origin": [ - 110.50001525878906, - 180.85003662109375 - ], - "bbox": [ - 110.50001525878906, - 173.85003662109375, - 117.80001831054688, - 192.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PؗÛcÜ8ÔÖÓ\u0010à\u0010Ògßré", - "origin": [ - 117.80001831054688, - 180.85003662109375 - ], - "bbox": [ - 117.80001831054688, - 174.35003662109375, - 170.70001220703125, - 193.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\f�", - "origin": [ - 170.70001220703125, - 180.85003662109375 - ], - "bbox": [ - 170.70001220703125, - 173.85003662109375, - 178.30001831054688, - 192.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PÛcÔÖÙ�×%Ü8Ò\u001då8å×gØ8Ó", - "origin": [ - 178.30001831054688, - 180.85003662109375 - ], - "bbox": [ - 178.30001831054688, - 174.35003662109375, - 242.300048828125, - 193.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 242.300048828125, - 180.85003662109375 - ], - "bbox": [ - 242.300048828125, - 173.85003662109375, - 246.70004272460938, - 192.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Wò", - "origin": [ - 246.70004272460938, - 180.85003662109375 - ], - "bbox": [ - 246.70004272460938, - 174.35003662109375, - 252.60003662109375, - 193.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10001373291016, - 173.85003662109375, - 252.60003662109375, - 193.25003051757812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 85.60001373291016, - 187.1500244140625, - 518.60009765625, - 206.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëWÔÖÙ¥ÔlÑÖÒ\u001dޖÔÖèu×gÒrÓ", - "origin": [ - 85.60001373291016, - 193.6500244140625 - ], - "bbox": [ - 85.60001373291016, - 187.1500244140625, - 144.40000915527344, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.60001373291016, - 187.1500244140625, - 144.40000915527344, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dڐÝ?âuÛµÛcÜ8×", - "origin": [ - 154.4000244140625, - 193.6500244140625 - ], - "bbox": [ - 154.4000244140625, - 187.1500244140625, - 198.00003051757812, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.4000244140625, - 187.1500244140625, - 198.00003051757812, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ø8Ò\u001dÛcâ8Þc×7Ýræ Ócå+ÒrÕ/×QÛcÔÖÙ�×\u000bÜ8Ògãr×\u000bڐ×Q×gØ", - "origin": [ - 208.6000213623047, - 193.6500244140625 - ], - "bbox": [ - 208.6000213623047, - 187.1500244140625, - 355.5000305175781, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.6000213623047, - 187.1500244140625, - 355.5000305175781, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™ÝrÞGÙ&â8ÑÖÒ\u001dÛZ×gè", - "origin": [ - 367.20001220703125, - 193.6500244140625 - ], - "bbox": [ - 367.20001220703125, - 187.1500244140625, - 412.6999816894531, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.20001220703125, - 187.1500244140625, - 412.6999816894531, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×Qãr×QÞcß", - "origin": [ - 424.4000244140625, - 193.6500244140625 - ], - "bbox": [ - 424.4000244140625, - 187.1500244140625, - 443.6999816894531, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.4000244140625, - 187.1500244140625, - 443.6999816894531, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ØuÝTà", - "origin": [ - 455.5000305175781, - 193.6500244140625 - ], - "bbox": [ - 455.5000305175781, - 187.1500244140625, - 466.5000305175781, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.5000305175781, - 187.1500244140625, - 466.5000305175781, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è", - "origin": [ - 480.2000427246094, - 193.6500244140625 - ], - "bbox": [ - 480.2000427246094, - 187.1500244140625, - 491.7000427246094, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 480.2000427246094, - 187.1500244140625, - 491.7000427246094, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×gØ", - "origin": [ - 503.4000549316406, - 193.6500244140625 - ], - "bbox": [ - 503.4000549316406, - 187.1500244140625, - 518.60009765625, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 503.4000549316406, - 187.1500244140625, - 518.60009765625, - 206.05001831054688 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 71.10003662109375, - 200.1500244140625, - 521.6000366210938, - 219.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuÞGÝ?âuç?ÜuÝ?âuÛ\u001fÛcÜu×�Ü8ÔÖÓZÛZÝrÞGß\u0012Ýræ\u0019Ø8Ò\u001dÛcâuÞ1ÒrÑ»å+Ü+ÔÖÑwÝ?ÓZÝrå+ܩߟí¸îgûWé^ï\u001dü\u0018ñJò", - "origin": [ - 71.10003662109375, - 206.6500244140625 - ], - "bbox": [ - 71.10003662109375, - 200.1500244140625, - 335.00006103515625, - 219.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 200.1500244140625, - 335.00006103515625, - 219.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢ÝTà\u001b×Qãr×QÞgé“Ý?Ø8ÑwßÁÞG×gÕ/×gتÛcÑwßÍÓcâ8Õ1Ü\u001eçr×gØ8×QÞGÒrÑ", - "origin": [ - 347.2000427246094, - 206.6500244140625 - ], - "bbox": [ - 347.2000427246094, - 200.1500244140625, - 521.6000366210938, - 219.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.2000427246094, - 200.1500244140625, - 521.6000366210938, - 219.05001831054688 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 71.20004272460938, - 212.550048828125, - 522.199951171875, - 231.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÕ/×gØ+Ò\u001dÞGÔwݳÜ8ÒrÓ\"ڐ×Q×gØ¥×gÑÖÒ\u001dڐÝrÞGÒ\u001dÛZ×gè\u001fÔÖØœÙ�ÝrÞc×¢è8×QÛcÒrÔÖÑ+ÔÖØ ÛcÜu×»ÛcÜ8×QÝrÞcß�Ýræ", - "origin": [ - 71.20004272460938, - 219.550048828125 - ], - "bbox": [ - 71.20004272460938, - 213.050048828125, - 349.29998779296875, - 231.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 213.050048828125, - 349.29998779296875, - 231.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "93\u001c%\u001bG&\u0018\u001c\u0013D8&\u0018\"\u0018\u00147&", - "origin": [ - 356.800048828125, - 219.550048828125 - ], - "bbox": [ - 356.800048828125, - 213.050048828125, - 401.6999816894531, - 230.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eò", - "origin": [ - 401.6999816894531, - 219.550048828125 - ], - "bbox": [ - 401.6999816894531, - 213.050048828125, - 406.29998779296875, - 231.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e\n", - "origin": [ - 406.29998779296875, - 219.550048828125 - ], - "bbox": [ - 406.29998779296875, - 212.550048828125, - 413.5, - 230.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø\u001fÙ¥Ò\u001dÛcÜu×gÙ Ò\u001dÛcÔÖÕQÒrÑ+ÛZ×QÞ1Ù¥ÓQé", - "origin": [ - 413.5, - 219.550048828125 - ], - "bbox": [ - 413.5, - 213.050048828125, - 522.199951171875, - 231.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 356.800048828125, - 212.550048828125, - 522.199951171875, - 231.95004272460938 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 71.10003662109375, - 226.050048828125, - 245.40003967285156, - 244.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×gÓc×\u000fÒ\u001dÞG×\u000fÑÖÝVÕQÒrÑÖÑÖß", - "origin": [ - 71.10003662109375, - 232.550048828125 - ], - "bbox": [ - 71.10003662109375, - 226.050048828125, - 145.800048828125, - 244.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "?\n", - "origin": [ - 145.800048828125, - 232.550048828125 - ], - "bbox": [ - 145.800048828125, - 226.050048828125, - 156.6000518798828, - 243.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø8ÔwÛZ×", - "origin": [ - 156.6000518798828, - 232.550048828125 - ], - "bbox": [ - 156.6000518798828, - 226.050048828125, - 176.1000518798828, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 226.050048828125, - 176.1000518798828, - 244.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞGèu×QÞc×gè", - "origin": [ - 186.10003662109375, - 232.550048828125 - ], - "bbox": [ - 186.10003662109375, - 226.050048828125, - 215.9000244140625, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.10003662109375, - 226.050048828125, - 215.9000244140625, - 244.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZ×QÛcÓgò", - "origin": [ - 227.20004272460938, - 232.550048828125 - ], - "bbox": [ - 227.20004272460938, - 226.050048828125, - 245.40003967285156, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.20004272460938, - 226.050048828125, - 245.40003967285156, - 244.95004272460938 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 265.5000305175781, - 226.050048828125, - 515.7000732421875, - 244.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×gÔwÞ\u001f×QãrÝ?ÑÖâuÛcÔÖÝ?Ø", - "origin": [ - 265.5000305175781, - 232.550048828125 - ], - "bbox": [ - 265.5000305175781, - 226.050048828125, - 326.5, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 265.5000305175781, - 226.050048828125, - 326.5, - 244.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú©ß", - "origin": [ - 337.800048828125, - 232.550048828125 - ], - "bbox": [ - 337.800048828125, - 226.050048828125, - 343.50006103515625, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.800048828125, - 226.050048828125, - 343.50006103515625, - 244.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Óc×gä©âu×gØ©ÛcÔÖÒrѓçrÞcÝaà^ÛcÜ", - "origin": [ - 354.50006103515625, - 232.550048828125 - ], - "bbox": [ - 354.50006103515625, - 226.050048828125, - 434.1000061035156, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.50006103515625, - 226.050048828125, - 434.1000061035156, - 244.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuÞcÝ?â8ç?Ü\u001eÞ1ÒrØ8èuÝ?Ù", - "origin": [ - 445.4000549316406, - 232.550048828125 - ], - "bbox": [ - 445.4000549316406, - 226.050048828125, - 515.7000732421875, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.4000549316406, - 226.050048828125, - 515.7000732421875, - 244.95004272460938 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 76.60005187988281, - 238.4500732421875, - 518.7000732421875, - 257.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 76.60005187988281, - 245.4500732421875 - ], - "bbox": [ - 76.60005187988281, - 238.4500732421875, - 76.60005187988281, - 256.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÓZå+ÞGÔÖØ", - "origin": [ - 76.60005187988281, - 245.4500732421875 - ], - "bbox": [ - 76.60005187988281, - 238.9500732421875, - 98.70004272460938, - 257.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 98.70004272460938, - 245.4500732421875 - ], - "bbox": [ - 98.70004272460938, - 238.4500732421875, - 104.70004272460938, - 256.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÑÖÔÖØuç", - "origin": [ - 104.70004272460938, - 245.4500732421875 - ], - "bbox": [ - 104.70004272460938, - 238.9500732421875, - 122.80004119873047, - 257.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011�\u0013\u0012", - "origin": [ - 122.80004119873047, - 245.4500732421875 - ], - "bbox": [ - 122.80004119873047, - 238.4500732421875, - 133.90005493164062, - 256.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥Ò\u001då8å×gÒ\u001dÞGÒrØ8Õ/×", - "origin": [ - 133.90005493164062, - 245.4500732421875 - ], - "bbox": [ - 133.90005493164062, - 238.9500732421875, - 191.70005798339844, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.60005187988281, - 238.4500732421875, - 191.70005798339844, - 257.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ\u0014Øu×Qà�ÓZ×QÛ!×gÑw×gÙ�×gØ©ÛcӖÛZÝrçr×QÛcÜu×QÞµà»ÔwÛcÜ", - "origin": [ - 202.00006103515625, - 245.4500732421875 - ], - "bbox": [ - 202.00006103515625, - 238.9500732421875, - 365.6999816894531, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.00006103515625, - 238.9500732421875, - 365.6999816894531, - 257.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×gÔwޗÝrÞ1èu×QޖÞc×gÑÖÒ\u001dÛcÔÖÝ?Ø8ӗÜ8Òrӗڐ×Q×gØ", - "origin": [ - 377.00006103515625, - 245.4500732421875 - ], - "bbox": [ - 377.00006103515625, - 238.9500732421875, - 518.7000732421875, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.00006103515625, - 238.9500732421875, - 518.7000732421875, - 257.8500671386719 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 71.20004272460938, - 251.9500732421875, - 162.00001525878906, - 270.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛcâ+è8Ôw×gè�ížï\u001düuéyïWîré+ïrï\u001dñJò", - "origin": [ - 71.20004272460938, - 258.4500732421875 - ], - "bbox": [ - 71.20004272460938, - 251.9500732421875, - 162.00001525878906, - 270.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 251.9500732421875, - 162.00001525878906, - 270.8500671386719 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 85.30004119873047, - 264.4500732421875, - 519.7999877929688, - 283.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.30004119873047, - 271.4500732421875 - ], - "bbox": [ - 85.30004119873047, - 264.4500732421875, - 85.30004119873047, - 282.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø\u0014ÛcÜ8×^Ò\u001dÚ+ÓZ×gØ8Õ/×^ÝræÒrØ�×gäVâ8ÒrÑÖÑwß\u0019×gÑÖÒ\u001dڐÝrÞGÒ\u001dÛZ×NÛcÜu×QÝrÞcß\u0014ÝræÙ¥Ò\u001dÛZÛZ×QÞ\"ÔlØ\u0019ÞG×gÑÖÒ\u001dÛcÔwÝ?Ø�ÛZݳÓGâ8ÕGÜ�Ò\u001dÛZÝ?Ù¥ÔlÓZÛcÔÖÕNÓZÛZÞGâ+Õ/ÛcâuÞc×", - "origin": [ - 85.30004119873047, - 271.4500732421875 - ], - "bbox": [ - 85.30004119873047, - 264.9500732421875, - 519.7999877929688, - 283.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.30004119873047, - 264.4500732421875, - 519.7999877929688, - 283.8500671386719 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 71.10004425048828, - 277.85009765625, - 522.1000366210938, - 296.7500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ+Ócå+ÒrÕ/×QÛcÔÖÙ�×ré\u001dà\u001b×\u0010ÕQÒrØ\u0014Øu×Qãr×QÞGÛcÜu×gÑw×gÓcÓ·ÓZÛcÒ\u001dÛZ×\u0010ÛcÜu×\u001bæ™Ý?ÑlÑwÝTà»ÔlØuçué\u0018Õ/Ý?Ø+Õ/×QÞGØ8ÔÖØuç¢ÛcÜu×\u0010ÓcÔwÛcâ8Ò\u001dÛcÔwÝ?Ø\u0019Ýræ+Ò¢ÛsßVå+ÔÖÕQÒrÑVÝrÚ", - "origin": [ - 71.10004425048828, - 284.35009765625 - ], - "bbox": [ - 71.10004425048828, - 277.85009765625, - 497.60003662109375, - 296.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 497.60003662109375, - 284.35009765625 - ], - "bbox": [ - 497.60003662109375, - 277.85009765625, - 503.5000305175781, - 295.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛQò", - "origin": [ - 503.5000305175781, - 284.35009765625 - ], - "bbox": [ - 503.5000305175781, - 277.85009765625, - 522.1000366210938, - 296.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10004425048828, - 277.85009765625, - 522.1000366210938, - 296.7500915527344 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 71.4000473022461, - 290.35009765625, - 519.199951171875, - 309.7500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ð\u001bÝ?Ø+ÓcÔÖèu×QÞ\u001bÒrØ\r×gÑw×gÕ/ÛZÞcÝ?ذéWæ=ÝrÞ\u001b×", - "origin": [ - 71.4000473022461, - 297.35009765625 - ], - "bbox": [ - 71.4000473022461, - 290.85009765625, - 191.80003356933594, - 309.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 191.80003356933594, - 297.35009765625 - ], - "bbox": [ - 191.80003356933594, - 290.85009765625, - 196.50003051757812, - 308.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ�å+ÑÖ×réWÒrØ\u001fÝrÚ", - "origin": [ - 196.50003051757812, - 297.35009765625 - ], - "bbox": [ - 196.50003051757812, - 290.85009765625, - 257.70001220703125, - 309.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 257.70001220703125, - 297.35009765625 - ], - "bbox": [ - 257.70001220703125, - 290.85009765625, - 263.6000061035156, - 308.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛNÛcÜ8Ò\u001dÛ\u0010ÛZÝ�Ü8Ôwç?Üu×gÓcÛ", - "origin": [ - 263.6000061035156, - 297.35009765625 - ], - "bbox": [ - 263.6000061035156, - 290.85009765625, - 351.6000061035156, - 309.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0014�", - "origin": [ - 351.6000061035156, - 297.35009765625 - ], - "bbox": [ - 351.6000061035156, - 290.35009765625, - 359.1000061035156, - 308.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WØuÝTà¢Ø å8ÞG×gÕQÔÖÓcÔwÝ?؜ڐ×gÜ8Ògãr×gÓNÒrÕQÕ/ÝrÞGè+ÔÖØuç", - "origin": [ - 359.1000061035156, - 297.35009765625 - ], - "bbox": [ - 359.1000061035156, - 290.85009765625, - 519.199951171875, - 309.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.4000473022461, - 290.35009765625, - 519.199951171875, - 309.7500915527344 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 71.10004425048828, - 303.7501220703125, - 234.20004272460938, - 322.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ�ÛcÜu×%ÑlÒgà»Ó\u0010Ýræ·ä©â+ÒrتÛcâ8ÙÿÙ�×gÕGÜ8ÒrØ+ÔÖÕQÓQò", - "origin": [ - 71.10004425048828, - 310.2501220703125 - ], - "bbox": [ - 71.10004425048828, - 303.7501220703125, - 234.20004272460938, - 322.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10004425048828, - 303.7501220703125, - 234.20004272460938, - 322.6501159667969 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 251.6000518798828, - 303.2501220703125, - 521.2000732421875, - 322.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "׳٥ÒTߜÛZ×QÞ1Ù", - "origin": [ - 251.6000518798828, - 310.2501220703125 - ], - "bbox": [ - 251.6000518798828, - 303.7501220703125, - 297.10003662109375, - 322.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.6000518798828, - 303.7501220703125, - 297.10003662109375, - 322.6501159667969 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÛcÓ", - "origin": [ - 309.800048828125, - 310.2501220703125 - ], - "bbox": [ - 309.800048828125, - 303.7501220703125, - 317.10003662109375, - 322.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 317.10003662109375, - 310.2501220703125 - ], - "bbox": [ - 317.10003662109375, - 303.2501220703125, - 326.10003662109375, - 321.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÓcÔwÛcâ+Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 326.10003662109375, - 310.2501220703125 - ], - "bbox": [ - 326.10003662109375, - 303.7501220703125, - 366.20001220703125, - 322.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0015�", - "origin": [ - 366.20001220703125, - 310.2501220703125 - ], - "bbox": [ - 366.20001220703125, - 303.2501220703125, - 372.3000183105469, - 321.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�Ò�ܩߩåÝrÛcÜu×QÛcÔÖÕQÒrѰÕ/Ý?Ù¥å+Ñw×QÛZ׳ÓZ×QÛNÝræ", - "origin": [ - 372.3000183105469, - 310.2501220703125 - ], - "bbox": [ - 372.3000183105469, - 303.7501220703125, - 521.2000732421875, - 322.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 309.800048828125, - 303.2501220703125, - 521.2000732421875, - 322.6501159667969 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 71.20004272460938, - 316.7501220703125, - 301.9000244140625, - 335.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÛcÓ\u0010å+ÞcÝrå×QÞcÛcÔw×gÓ\u0010ÛcÜ8Ò\u001dÛ»Ò\u001dÞG׳ÒrÕQÕ/×gÓcÓcÔwÚyÑw×;Ú©ß\u001f×", - "origin": [ - 71.20004272460938, - 323.2501220703125 - ], - "bbox": [ - 71.20004272460938, - 316.7501220703125, - 243.800048828125, - 335.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 243.800048828125, - 323.2501220703125 - ], - "bbox": [ - 243.800048828125, - 316.7501220703125, - 248.5000457763672, - 334.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Wå6×QÞ1ÔÖÙ�×gØ©ÛcÓQò", - "origin": [ - 248.5000457763672, - 323.2501220703125 - ], - "bbox": [ - 248.5000457763672, - 316.7501220703125, - 301.9000244140625, - 335.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 316.7501220703125, - 301.9000244140625, - 335.6501159667969 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 85.40003967285156, - 329.7501220703125, - 469.50006103515625, - 348.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ó»Ýaà%é", - "origin": [ - 85.40003967285156, - 336.2501220703125 - ], - "bbox": [ - 85.40003967285156, - 329.7501220703125, - 107.00003814697266, - 348.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.40003967285156, - 329.7501220703125, - 107.00003814697266, - 348.6501159667969 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 113.80004119873047, - 336.2501220703125 - ], - "bbox": [ - 113.80004119873047, - 329.7501220703125, - 113.80004119873047, - 347.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+ÞGÓZۓÝræ\u001bÒrÑlÑIé°ÛcÜu×QÞc×¥Ò\u001dÞcלÔÖØªÛZ×QÞ1ÒrÕ/ÛcÔwÝ?Ø8Ó;ڐ×QÛsà\u001b×Q×gØ", - "origin": [ - 113.80004119873047, - 336.2501220703125 - ], - "bbox": [ - 113.80004119873047, - 329.7501220703125, - 308.10003662109375, - 348.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.80004119873047, - 329.7501220703125, - 308.10003662109375, - 348.6501159667969 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ócâ+ÕGÜ�ÝrÚ", - "origin": [ - 318.4000549316406, - 336.2501220703125 - ], - "bbox": [ - 318.4000549316406, - 329.7501220703125, - 348.9000549316406, - 348.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 348.9000549316406, - 336.2501220703125 - ], - "bbox": [ - 348.9000549316406, - 329.7501220703125, - 354.800048828125, - 347.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/Û³ÒrØ8è�ÔÖÛcӓ×gتãWÔwÞcÝ?Ø8Ù¥×gتÛ", - "origin": [ - 354.800048828125, - 336.2501220703125 - ], - "bbox": [ - 354.800048828125, - 329.7501220703125, - 469.50006103515625, - 348.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.4000549316406, - 329.7501220703125, - 469.50006103515625, - 348.6501159667969 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 482.1000671386719, - 329.2501220703125, - 520.300048828125, - 348.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×", - "origin": [ - 482.1000671386719, - 336.2501220703125 - ], - "bbox": [ - 482.1000671386719, - 329.7501220703125, - 492.4000549316406, - 348.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0016�", - "origin": [ - 492.4000549316406, - 336.2501220703125 - ], - "bbox": [ - 492.4000549316406, - 329.2501220703125, - 502.7000427246094, - 347.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PÞG×gÓZÛ", - "origin": [ - 502.7000427246094, - 336.2501220703125 - ], - "bbox": [ - 502.7000427246094, - 329.7501220703125, - 520.300048828125, - 348.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 482.1000671386719, - 329.2501220703125, - 520.300048828125, - 348.6501159667969 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 71.10006713867188, - 342.1501159667969, - 521.9999389648438, - 361.55010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ;ÛcÜu×", - "origin": [ - 71.10006713867188, - 349.1501159667969 - ], - "bbox": [ - 71.10006713867188, - 342.6501159667969, - 95.2000732421875, - 361.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 342.6501159667969, - 95.2000732421875, - 361.55010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "â8Ø8Ôwãr×QÞ1ÓZ×", - "origin": [ - 105.2000732421875, - 349.1501159667969 - ], - "bbox": [ - 105.2000732421875, - 342.6501159667969, - 139.30006408691406, - 361.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0017�\u0013\u0012", - "origin": [ - 139.30006408691406, - 349.1501159667969 - ], - "bbox": [ - 139.30006408691406, - 342.1501159667969, - 149.80006408691406, - 360.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1éNÑÖÒrÓZۜØ8ÝrۜÑw×gÒrÓZۜçrÞGÒgãWÔwÛcÒ\u001dÛcÔwÝ?Ø+ÒrÑ¢Ý?Ø8×gÓQò", - "origin": [ - 149.80006408691406, - 349.1501159667969 - ], - "bbox": [ - 149.80006408691406, - 342.6501159667969, - 318.70001220703125, - 361.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0019\u0018", - "origin": [ - 318.70001220703125, - 349.1501159667969 - ], - "bbox": [ - 318.70001220703125, - 342.1501159667969, - 330.20001220703125, - 360.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001b×gÓcÔÖèu×gӜÙ�ÝrÞc×!æ’ÒrÙ¥ÔÖÑlÔÖÒ\u001dÞ ÒrÓZå×gÕ/ÛcÓQé^ÜuÝaà\"×Qãr×QÞTé", - "origin": [ - 330.20001220703125, - 349.1501159667969 - ], - "bbox": [ - 330.20001220703125, - 342.6501159667969, - 521.9999389648438, - 361.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.2000732421875, - 342.1501159667969, - 521.9999389648438, - 361.55010986328125 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 71.10006713867188, - 355.6501159667969, - 519.800048828125, - 374.55010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×QÞG׳Ù\u0019â+ÓZÛN×", - "origin": [ - 71.10006713867188, - 362.1501159667969 - ], - "bbox": [ - 71.10006713867188, - 355.6501159667969, - 126.10006713867188, - 374.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 126.10006713867188, - 362.1501159667969 - ], - "bbox": [ - 126.10006713867188, - 355.6501159667969, - 130.80006408691406, - 373.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔlÓZÛ»Ò Õ/Ý?Ø©ÛcÔÖØVâ8ÒrÑ", - "origin": [ - 130.80006408691406, - 362.1501159667969 - ], - "bbox": [ - 130.80006408691406, - 355.6501159667969, - 201.90005493164062, - 374.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "`)7\u001e#\f\u0018\u0010\u0013\u000e\u000f\u0012^\u001c%\u0014 )>\u0010\u0013\u001eaD", - "origin": [ - 201.90005493164062, - 362.1501159667969 - ], - "bbox": [ - 201.90005493164062, - 355.6501159667969, - 269.2000427246094, - 373.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 355.6501159667969, - 269.2000427246094, - 374.55010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f&", - "origin": [ - 277.40008544921875, - 362.1501159667969 - ], - "bbox": [ - 277.40008544921875, - 355.6501159667969, - 281.90008544921875, - 373.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NÒ\u001dڐÝ?âuÛ¢ÔwÛcÓ^ÓcÔwÛcâ+Ò\u001dÛcÔwÝ?ذé8ÓcÔÖØ+Õ/×%ÛcÜu׳Ò\u001dÛZÝ?Ù¥ÔlÓZÛcÔÖÕ%ÓZåyÒrÕ/×QÛcÔÖÙ�×", - "origin": [ - 281.90008544921875, - 362.1501159667969 - ], - "bbox": [ - 281.90008544921875, - 355.6501159667969, - 519.800048828125, - 374.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.40008544921875, - 355.6501159667969, - 519.800048828125, - 374.55010986328125 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 71.10008239746094, - 368.4501037597656, - 146.40008544921875, - 387.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×gØu×gÒ\u001dÛcÜ\r×QãrÝ?Ñwãr×gÓgò", - "origin": [ - 71.10008239746094, - 374.9501037597656 - ], - "bbox": [ - 71.10008239746094, - 368.4501037597656, - 146.40008544921875, - 387.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 368.4501037597656, - 146.40008544921875, - 387.35009765625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 165.10008239746094, - 368.4501037597656, - 520.800048828125, - 387.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÛcܗÞc×gÓZå×gÕ/ÛNÛZÝ¥ÛcÜ8×%ÑÖÒ\u001dÛZÛZ×QÞgé+äVâ8ÒrØ©Ûcâ8ÙöÛcÜu×QÝrÞcß\rÒ\u001dÛ^å8ÞG×gÓZ×gتۢèu×gÒrÑÖÓ\u0010à»ÔwÛcÜ\rãr×QÞGß\rÕ/Ý?Ò\u001dÞ1ÓZ×", - "origin": [ - 165.10008239746094, - 374.9501037597656 - ], - "bbox": [ - 165.10008239746094, - 368.4501037597656, - 516.1000366210938, - 387.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 516.1000366210938, - 374.9501037597656 - ], - "bbox": [ - 516.1000366210938, - 368.4501037597656, - 520.800048828125, - 386.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.10008239746094, - 368.4501037597656, - 520.800048828125, - 387.35009765625 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 71.10008239746094, - 380.9501037597656, - 519.1000366210938, - 400.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çrÞGÒrÔlØu×gè", - "origin": [ - 71.10008239746094, - 387.9501037597656 - ], - "bbox": [ - 71.10008239746094, - 381.4501037597656, - 100.40008544921875, - 400.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 381.4501037597656, - 100.40008544921875, - 400.35009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Üu×gØuÝ?Ù�×gØ+ÒWé½à»Üu×gØ\u000bèu×gÓGÕ/ÞGÔwÚ+ÔÖØ8çµÛcÜuחèußWØ8ÒrÙ¥ÔlÕQÓ\u0014Ýræ¢Ù¥Ò\u001dÛZÛZ×QÞgòÁá4Ý©Ý?Óc×gÑwß¾ÓZå×gÒ", - "origin": [ - 111.00008392333984, - 387.9501037597656 - ], - "bbox": [ - 111.00008392333984, - 381.4501037597656, - 437.8000183105469, - 400.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 437.8000183105469, - 387.9501037597656 - ], - "bbox": [ - 437.8000183105469, - 380.9501037597656, - 443.1000061035156, - 399.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔÖØuçué½ÔlؾÝrÞ1èu×QÞ�ÛZÝ", - "origin": [ - 443.1000061035156, - 387.9501037597656 - ], - "bbox": [ - 443.1000061035156, - 381.4501037597656, - 519.1000366210938, - 400.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.00008392333984, - 380.9501037597656, - 519.1000366210938, - 400.35009765625 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 71.10008239746094, - 393.85009765625, - 519.2000122070312, - 413.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ’â8ÑÖÑwߗÕ1Ü8Ò\u001dÞGÒrÕ/ÛZ×QÞGÔ", - "origin": [ - 71.10008239746094, - 400.85009765625 - ], - "bbox": [ - 71.10008239746094, - 394.35009765625, - 140.2000732421875, - 413.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 140.2000732421875, - 400.85009765625 - ], - "bbox": [ - 140.2000732421875, - 393.85009765625, - 143.2000732421875, - 412.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "QלÒrØ\u000f×gÑw×gÕ/ÛZÞcÝ?ذé¬ÛcÜ8×&×QãrÝ?ÑlâuÛcÔwÝ?Ø\u000fÝræ\"ÔÖÛcÓ;ÕQÒrâ8ÓcÒrÑ·Þc×gÑÖÒ\u001dÛcÔÖÝ?Ø8Ó\u0016à»ÔwÛcÜ\u000fÒ\rÕ/Ý?تÛcÔÖØVâ8ÒrÑÖÑÖß!ÕGÜ8ÒrØ8ç?ÔÖØuç", - "origin": [ - 143.2000732421875, - 400.85009765625 - ], - "bbox": [ - 143.2000732421875, - 394.35009765625, - 519.2000122070312, - 413.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 393.85009765625, - 519.2000122070312, - 413.2500915527344 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 71.20008087158203, - 406.85009765625, - 519.9000854492188, - 426.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ØVâ8Ù\u0019Ú6×QÞNÝræ­Ócå+ÒrÕ/×QÛcÔÖÙ�×", - "origin": [ - 71.20008087158203, - 413.85009765625 - ], - "bbox": [ - 71.20008087158203, - 407.35009765625, - 165.3000946044922, - 426.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001d�", - "origin": [ - 165.3000946044922, - 413.85009765625 - ], - "bbox": [ - 165.3000946044922, - 406.85009765625, - 175.10009765625, - 425.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒ\u001dÛZÝ?Ù Ó", - "origin": [ - 175.10009765625, - 413.85009765625 - ], - "bbox": [ - 175.10009765625, - 407.35009765625, - 203.50009155273438, - 426.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 203.50009155273438, - 413.85009765625 - ], - "bbox": [ - 203.50009155273438, - 406.85009765625, - 207.8000946044922, - 425.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œÜ+ÒrÓ^ÛZݜÕ/Ý?Ù¥×&ÔÖØ©ÛZÝ¥å+ÑlÒgßrò^Ð\u001bÝ?Ø8ÓZ×gäVâu×gØ©ÛcÑwßréyÔÖØ!Ò¥Õ/Ý?Ò\u001dÞGÓZ×", - "origin": [ - 207.8000946044922, - 413.85009765625 - ], - "bbox": [ - 207.8000946044922, - 407.35009765625, - 443.7001037597656, - 426.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 443.7001037597656, - 413.85009765625 - ], - "bbox": [ - 443.7001037597656, - 407.35009765625, - 448.4001159667969, - 425.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞGÒrÔlØu×gè!åyÔÖÕ/ÛcâuÞc×", - "origin": [ - 448.4001159667969, - 413.85009765625 - ], - "bbox": [ - 448.4001159667969, - 407.35009765625, - 519.9000854492188, - 426.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20008087158203, - 406.85009765625, - 519.9000854492188, - 426.2500915527344 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 71.10008239746094, - 419.85009765625, - 519.0999755859375, - 439.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×QÞc×¥ÛcÜ8ÔÖÓ\u0019ÔÖÓ%ØuÝrÛ\u0019×", - "origin": [ - 71.10008239746094, - 426.85009765625 - ], - "bbox": [ - 71.10008239746094, - 420.35009765625, - 157.30007934570312, - 439.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 157.30007934570312, - 426.85009765625 - ], - "bbox": [ - 157.30007934570312, - 420.35009765625, - 162.0000762939453, - 438.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VåyÑÖÔÖÕQÔwÛcÑwß", - "origin": [ - 162.0000762939453, - 426.85009765625 - ], - "bbox": [ - 162.0000762939453, - 420.35009765625, - 195.4001007080078, - 439.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 420.35009765625, - 195.4001007080078, - 439.2500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÒ", - "origin": [ - 205.40008544921875, - 426.85009765625 - ], - "bbox": [ - 205.40008544921875, - 420.35009765625, - 209.70008850097656, - 439.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 209.70008850097656, - 426.85009765625 - ], - "bbox": [ - 209.70008850097656, - 419.85009765625, - 215.00009155273438, - 438.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×gØ\u000bÔÖØ©ÛZÝ!ÒrÕQÕ/Ý?â8Ø©ÛQé­ÔÖØuæ=ÝrÞGÙ¥Ò\u001dÛcÔwÝ?ؾÒ\u001dÚ6Ý?â8Û³ÒrØ7ÝrÚ", - "origin": [ - 215.00009155273438, - 426.85009765625 - ], - "bbox": [ - 215.00009155273438, - 420.35009765625, - 416.20001220703125, - 439.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "b�", - "origin": [ - 416.20001220703125, - 426.85009765625 - ], - "bbox": [ - 416.20001220703125, - 420.35009765625, - 422.20001220703125, - 438.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "P×gÕ/Û&èu×QçrÞGÒrèu×gÓQé¡è8â8×¥ÛZÝ", - "origin": [ - 422.20001220703125, - 426.85009765625 - ], - "bbox": [ - 422.20001220703125, - 420.35009765625, - 519.0999755859375, - 439.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.40008544921875, - 419.85009765625, - 519.0999755859375, - 439.2500915527344 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 71.10008239746094, - 432.7500915527344, - 453.8000793457031, - 452.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×;×QãrÝ?ÑÖãVÔÖØ8ç", - "origin": [ - 71.10008239746094, - 439.7500915527344 - ], - "bbox": [ - 71.10008239746094, - 433.2500915527344, - 123.60009002685547, - 452.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001f\u001e", - "origin": [ - 123.60009002685547, - 439.7500915527344 - ], - "bbox": [ - 123.60009002685547, - 432.7500915527344, - 132.40008544921875, - 451.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001fÒrÑwà\u0010ÒgßWÓ»ÒrØ8è—×Qãr×QÞGß©à»Ü8×QÞc×;å8Þc×gÓZ×gØ©Û", - "origin": [ - 132.40008544921875, - 439.7500915527344 - ], - "bbox": [ - 132.40008544921875, - 433.2500915527344, - 284.6000671386719, - 452.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": " \u001e", - "origin": [ - 284.6000671386719, - 439.7500915527344 - ], - "bbox": [ - 284.6000671386719, - 432.7500915527344, - 292.3000793457031, - 451.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œ×gØ©ãWÔwÞcÝ?Ø8Ù�×gØ©Û\u0010à»Ü8ÔÖÕ1ܖÔÖÓNÓZåyÒrÕ/×QÛcÔÖÙ�×rò", - "origin": [ - 292.3000793457031, - 439.7500915527344 - ], - "bbox": [ - 292.3000793457031, - 433.2500915527344, - 453.8000793457031, - 452.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 432.7500915527344, - 453.8000793457031, - 452.15008544921875 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 85.60008239746094, - 445.7500915527344, - 520.3001098632812, - 465.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëV×gÕ/Ý?Ø8è8ÑÖßré+ÜuÝTà\u001b×Qãr×QÞgéÕ/Ý?Ù¥Ù�Ý?صÝrÚ", - "origin": [ - 85.60008239746094, - 452.7500915527344 - ], - "bbox": [ - 85.60008239746094, - 446.2500915527344, - 227.5000762939453, - 465.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 227.5000762939453, - 452.7500915527344 - ], - "bbox": [ - 227.5000762939453, - 446.2500915527344, - 233.4000701904297, - 464.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÓ¢Ò\u001dÞc×&ÕGÜ8Ò\u001dÞ1ÒrÕ/ÛZ×QÞGÔ", - "origin": [ - 233.4000701904297, - 452.7500915527344 - ], - "bbox": [ - 233.4000701904297, - 446.2500915527344, - 321.8000183105469, - 465.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 321.8000183105469, - 452.7500915527344 - ], - "bbox": [ - 321.8000183105469, - 445.7500915527344, - 324.8000183105469, - 464.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×gèµÚ©ß—Ò Õ/×QÞGÛcÒrÔÖØ–å×QÞGÓcÔlÓZÛZ×gØ8Õ/×ré8à»Ü+ÔÖÕGܖ٠Ò", - "origin": [ - 324.8000183105469, - 452.7500915527344 - ], - "bbox": [ - 324.8000183105469, - 446.2500915527344, - 504.7000732421875, - 465.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 504.7000732421875, - 452.7500915527344 - ], - "bbox": [ - 504.7000732421875, - 445.7500915527344, - 510.00006103515625, - 464.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×gÓ", - "origin": [ - 510.00006103515625, - 452.7500915527344 - ], - "bbox": [ - 510.00006103515625, - 446.2500915527344, - 520.3001098632812, - 465.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.60008239746094, - 445.7500915527344, - 520.3001098632812, - 465.15008544921875 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 71.10008239746094, - 459.15008544921875, - 228.80006408691406, - 478.0500793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×gÙ", - "origin": [ - 71.10008239746094, - 465.65008544921875 - ], - "bbox": [ - 71.10008239746094, - 459.15008544921875, - 86.30008697509766, - 478.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 459.15008544921875, - 86.30008697509766, - 478.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖè8×gتÛcÔ", - "origin": [ - 100.00008392333984, - 465.65008544921875 - ], - "bbox": [ - 100.00008392333984, - 459.15008544921875, - 124.00008392333984, - 478.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.00008392333984, - 459.15008544921875, - 124.00008392333984, - 478.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 127.00008392333984, - 465.65008544921875 - ], - "bbox": [ - 127.00008392333984, - 459.15008544921875, - 127.00008392333984, - 477.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yÒ\u001dÚ+ÑwלÔlØ7×", - "origin": [ - 127.00008392333984, - 465.65008544921875 - ], - "bbox": [ - 127.00008392333984, - 459.15008544921875, - 170.7000732421875, - 478.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 170.7000732421875, - 465.65008544921875 - ], - "bbox": [ - 170.7000732421875, - 459.15008544921875, - 175.4000701904297, - 477.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Wå×QÞGÔÖÙ�×gØ©ÛcÓQò", - "origin": [ - 175.4000701904297, - 465.65008544921875 - ], - "bbox": [ - 175.4000701904297, - 459.15008544921875, - 228.80006408691406, - 478.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.00008392333984, - 459.15008544921875, - 228.80006408691406, - 478.0500793457031 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 246.90008544921875, - 458.65008544921875, - 520.4000854492188, - 478.0500793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×QÞc×Qæ=ÝrÞc×ré­ÛcÜ8×\rÔlØuæ™ÝrÞ1Ù¥Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 246.90008544921875, - 465.65008544921875 - ], - "bbox": [ - 246.90008544921875, - 459.15008544921875, - 362.0999755859375, - 478.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.90008544921875, - 459.15008544921875, - 362.0999755859375, - 478.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑwÝ?ÓcÓ\u0014Ù\u0019â+ÓZÛ\u0019ڐ×\rÒ\u000fèu×gÑÖÔÖÕQÒ\u001dÛZ×\rÝ?Øu×rò", - "origin": [ - 372.7000732421875, - 465.65008544921875 - ], - "bbox": [ - 372.7000732421875, - 459.15008544921875, - 506.10009765625, - 478.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0016\n", - "origin": [ - 506.10009765625, - 465.65008544921875 - ], - "bbox": [ - 506.10009765625, - 458.65008544921875, - 516.4000854492188, - 477.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Û", - "origin": [ - 516.4000854492188, - 465.65008544921875 - ], - "bbox": [ - 516.4000854492188, - 459.15008544921875, - 520.4000854492188, - 478.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7000732421875, - 458.65008544921875, - 520.4000854492188, - 478.0500793457031 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 71.2000732421875, - 472.15008544921875, - 519.8001098632812, - 491.0500793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù&â8ÓZÛ^ڐ×&Õ/Ý?Ù�å+Ò\u001dÛcÔwÚ+ÑÖ×%à»ÔwÛcÜ!ÛcÜu×", - "origin": [ - 71.2000732421875, - 478.65008544921875 - ], - "bbox": [ - 71.2000732421875, - 472.15008544921875, - 204.70008850097656, - 491.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001a9\u000f\u0010\u0013\u001eb&\u0018\"\u0018\u000e\u000f6\u0013\u001c%\u0014 )>\u0010\u0013\u001e", - "origin": [ - 204.70008850097656, - 478.65008544921875 - ], - "bbox": [ - 204.70008850097656, - 472.15008544921875, - 267.1000671386719, - 490.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 472.15008544921875, - 267.1000671386719, - 491.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010A\f", - "origin": [ - 277.7000732421875, - 478.65008544921875 - ], - "bbox": [ - 277.7000732421875, - 472.15008544921875, - 281.8000793457031, - 490.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.7000732421875, - 472.15008544921875, - 281.8000793457031, - 490.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "48\u000e\u0011\u0010=I$\u001c=I\u0018)�D", - "origin": [ - 289.7000732421875, - 478.65008544921875 - ], - "bbox": [ - 289.7000732421875, - 472.15008544921875, - 323.800048828125, - 490.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.7000732421875, - 472.15008544921875, - 323.800048828125, - 490.0500793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ") \u0014 F", - "origin": [ - 326.6000671386719, - 478.65008544921875 - ], - "bbox": [ - 326.6000671386719, - 472.15008544921875, - 333.6000671386719, - 490.0500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0018é°à¢Ü8ÔÖÕGܵÔÖÓ»Ò Ú+ÒrÓcÔÖÕ³ÛZ×gØu×QÛ\u0016Ýræ­Ò¥Þc×gÒrÓZÝ?Ø+Ò\u001dÚ+Ñw×", - "origin": [ - 333.6000671386719, - 478.65008544921875 - ], - "bbox": [ - 333.6000671386719, - 472.15008544921875, - 519.8001098632812, - 491.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.6000671386719, - 472.15008544921875, - 519.8001098632812, - 491.0500793457031 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 71.10006713867188, - 485.15008544921875, - 147.70005798339844, - 504.0500793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gØ8Óc×gÙ³Ú+ÑÖ×\u0016ÛcÜ8×QÝrÞcßrò", - "origin": [ - 71.10006713867188, - 491.65008544921875 - ], - "bbox": [ - 71.10006713867188, - 485.15008544921875, - 147.70005798339844, - 504.0500793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 485.15008544921875, - 147.70005798339844, - 504.0500793457031 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 85.60006713867188, - 498.0500793457031, - 518.699951171875, - 516.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ð\u001bÝ?Ø©ÛZÞGÒ\u001dÞcß ÛZÝ�Ù�×gÒrÓGâuÞc×gÙ�×gØ©ÛNå8ÞcÝWÕ/×gÓcÓZ×gÓNÔÖØ\u001fäVâ8ÒrتÛcâ+ÙöÙ�×gÕGÜ8ÒrØ+ÔÖÕQÓQéWà»Üu×QÞc×;ÔÖØ8æ™ÝrÞGÙ Ò\u001dÛcÔwÝ?؜ÔlÓ\"ÛZÞ1ÒrØ8ÓZæ=×QÞcÞc×gè", - "origin": [ - 85.60006713867188, - 504.5500793457031 - ], - "bbox": [ - 85.60006713867188, - 498.0500793457031, - 518.699951171875, - 516.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.60006713867188, - 498.0500793457031, - 518.699951171875, - 516.9500732421875 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 71.10006713867188, - 510.550048828125, - 519.800048828125, - 529.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=ÞcÝ?ÙöÙ¥ÔÖÕ/ÞGÝ?ÓcÕ/Ýrå+ÔÖÕ\u0016ÛZÝ Ù¥ÒrÕ/ÞGÝ?ÓcÕ/Ýrå+ÔÖՓÝrÚ", - "origin": [ - 71.10006713867188, - 517.550048828125 - ], - "bbox": [ - 71.10006713867188, - 511.050048828125, - 235.50003051757812, - 529.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 235.50003051757812, - 517.550048828125 - ], - "bbox": [ - 235.50003051757812, - 511.050048828125, - 241.4000244140625, - 528.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÓQé", - "origin": [ - 241.4000244140625, - 517.550048828125 - ], - "bbox": [ - 241.4000244140625, - 511.050048828125, - 264.29998779296875, - 529.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\"!", - "origin": [ - 264.29998779296875, - 517.550048828125 - ], - "bbox": [ - 264.29998779296875, - 510.550048828125, - 270.8999938964844, - 528.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Nà\u001b×%å8ÞcÝråÝ?ÓZ×;Üu×QÞG×\u0016ÛcÜ+Ò\u001dÛ»Ù¥Ò\u001dÛZÛZ×QÞ»èu×QçrÞG×Q×gÓ^ÝræBæ™Þc×Q×gè8Ý?Ù", - "origin": [ - 270.8999938964844, - 517.550048828125 - ], - "bbox": [ - 270.8999938964844, - 511.050048828125, - 497.4998779296875, - 529.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 510.550048828125, - 497.4998779296875, - 529.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÞc×", - "origin": [ - 510.2000732421875, - 517.550048828125 - ], - "bbox": [ - 510.2000732421875, - 511.050048828125, - 519.800048828125, - 529.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.2000732421875, - 511.050048828125, - 519.800048828125, - 529.9500732421875 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 71.2000732421875, - 523.4500732421875, - 327.60009765625, - 542.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/Ý?Ø©ÛcÔÖØVâ8ÒrÑÖÑwß", - "origin": [ - 71.2000732421875, - 530.4500732421875 - ], - "bbox": [ - 71.2000732421875, - 523.9500732421875, - 117.90007019042969, - 542.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "#�", - "origin": [ - 117.90007019042969, - 530.4500732421875 - ], - "bbox": [ - 117.90007019042969, - 523.4500732421875, - 128.5000762939453, - 541.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÙ�×gÒrÓcâuÞc×gè", - "origin": [ - 128.5000762939453, - 530.4500732421875 - ], - "bbox": [ - 128.5000762939453, - 523.9500732421875, - 171.50006103515625, - 542.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "$�", - "origin": [ - 171.50006103515625, - 530.4500732421875 - ], - "bbox": [ - 171.50006103515625, - 523.4500732421875, - 177.70005798339844, - 541.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014Ú©ß\rÛcÜu×;×QãrÝ?ÑÖâ8ÛcÔwÝ?ؗÝræ¡ÓZå+ÒrÕ/×QÛcÔÖÙ¥×rò", - "origin": [ - 177.70005798339844, - 530.4500732421875 - ], - "bbox": [ - 177.70005798339844, - 523.9500732421875, - 327.60009765625, - 542.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2000732421875, - 523.4500732421875, - 327.60009765625, - 542.85009765625 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 93.3000717163086, - 536.9500732421875, - 520.5, - 555.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×gÓZ×&Üu×gâuÞGÔlÓZÛcÔÖÕ%Õ/Ý?Ø8ÓGÔÖèu×QÞGÒ\u001dÛcÔwÝ?Ø+Ó»Ñw×gÒrè\u000fâ8Ó»ÛZÝ\rÙ¥ÝVè8ÔÖæ™ß\rÛcÜu×\u0014ÕQÑÖÒrÓcÓcÔlÕQÒrѬ×gØ8ÓZ×gÙ\u0019Ú+Ñw×&ÛcÜu×QÝrÞcߖÔlصÔÖÙ¥å6ÝrÞGÛcÒrتÛ", - "origin": [ - 93.3000717163086, - 543.4500732421875 - ], - "bbox": [ - 93.3000717163086, - 536.9500732421875, - 520.5, - 555.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.3000717163086, - 536.9500732421875, - 520.5, - 555.85009765625 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 71.10006713867188, - 549.7500610351562, - 94.40007019042969, - 568.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u0010ÒgßWÓQò", - "origin": [ - 71.10006713867188, - 556.2500610351562 - ], - "bbox": [ - 71.10006713867188, - 549.7500610351562, - 94.40007019042969, - 568.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 549.7500610351562, - 94.40007019042969, - 568.6500854492188 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 112.80006408691406, - 549.7500610351562, - 520.300048828125, - 568.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×\u0019à»ÔlÑÖѬÔÖØ8Õ/ÝrÞGå6ÝrÞ1Ò\u001dÛZ×\u0019è8ÔÖÓGÓcÔwå+Ò\u001dÛcÔwÝ?Ø!ÔÖØªÛZݜÛcÜu×\u0014á4ÔwÝ?âuãWÔÖÑÖÑÖ×;×gä©â8Ò\u001dÛcÔÖÝ?ذé6Ü8ÝTà\u001b×Qãr×QÞgé¬ÔÖØ!ÓGâ8ÕGÜ", - "origin": [ - 112.80006408691406, - 556.2500610351562 - ], - "bbox": [ - 112.80006408691406, - 549.7500610351562, - 463.0, - 568.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.80006408691406, - 549.7500610351562, - 463.0, - 568.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò à\u0010Ògß!ÛcÜ8Ò\u001dÛ", - "origin": [ - 473.00006103515625, - 556.2500610351562 - ], - "bbox": [ - 473.00006103515625, - 549.7500610351562, - 520.300048828125, - 568.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.00006103515625, - 549.7500610351562, - 520.300048828125, - 568.6500854492188 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 71.10006713867188, - 562.7500610351562, - 257.50006103515625, - 581.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å8ÞGÝrÚ+Ò\u001dÚ+ÔÖÑÖÔÖÛsß\u0014Õ/Ý?Ø8ÓZ×QÞcã\u001dÒ\u001dÛcÔwÝ?Ø\u001fÞc×gÙ¥ÒrÔÖØ+Ó½ÔÖØ©ÛcÒrÕ/ÛQò", - "origin": [ - 71.10006713867188, - 569.2500610351562 - ], - "bbox": [ - 71.10006713867188, - 562.7500610351562, - 257.50006103515625, - 581.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 562.7500610351562, - 257.50006103515625, - 581.6500854492188 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 272.8000793457031, - 562.7500610351562, - 520.300048828125, - 581.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔlÓ¡å8ÞcÝaãVÔÖè8×gÓ\"â8Ó\"à»ÔwÛcÜ\u001fÒ\u0019ç?ÑÖÔÖÙ�å+Óc×^Ýræ¬ÛcÜu×\u0016Ù�×gÕGÜ8ÒrØ+ÔÖÓcÙ", - "origin": [ - 272.8000793457031, - 569.2500610351562 - ], - "bbox": [ - 272.8000793457031, - 562.7500610351562, - 492.30010986328125, - 581.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.8000793457031, - 562.7500610351562, - 492.30010986328125, - 581.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8Ò\u001dÛ", - "origin": [ - 504.60009765625, - 569.2500610351562 - ], - "bbox": [ - 504.60009765625, - 562.7500610351562, - 520.300048828125, - 581.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 504.60009765625, - 562.7500610351562, - 520.300048828125, - 581.6500854492188 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 71.20010375976562, - 575.7500610351562, - 519.7999877929688, - 594.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥ÔÖç?ܪÛNڐ×%Þc×gÓcå6Ý?Ø+ÓcÔwÚ+Ñw×\u0016æ=ÝrÞ»ÛcâuÞGØ+ÔÖØuç\u0014ÛcÜu×\u0019è8×QÛZ×QÞGÙ¥ÔÖØ8ÔlÓZÛcÔÖÕ\u0016×QãrÝ?ÑÖâuÛcÔwÝ?ؖÝræ­ÕQÑÖÒrÓcÓcÔÖÕQÒrѬÝrÚ", - "origin": [ - 71.20010375976562, - 582.2500610351562 - ], - "bbox": [ - 71.20010375976562, - 575.7500610351562, - 421.2000427246094, - 594.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 421.2000427246094, - 582.2500610351562 - ], - "bbox": [ - 421.2000427246094, - 575.7500610351562, - 427.10003662109375, - 593.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "P×gÕ/ÛcÓgéyèu×gÓcÕ/Þ1Ôwڐ×gè—Üu×QÞc×", - "origin": [ - 427.10003662109375, - 582.2500610351562 - ], - "bbox": [ - 427.10003662109375, - 575.7500610351562, - 519.7999877929688, - 594.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20010375976562, - 575.7500610351562, - 519.7999877929688, - 594.6500854492188 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 71.10010528564453, - 588.6500244140625, - 424.8000793457031, - 607.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÚVß\u001fÒrؖ×gØ8ÓZ×gÙ\u0019Ú+Ñw×;ÛcÜu×QÝrÞcßréyÔÖØªÛZÝ ÛcÜu×\u0019ëWÕGÜ8Þaì", - "origin": [ - 71.10010528564453, - 595.1500244140625 - ], - "bbox": [ - 71.10010528564453, - 588.6500244140625, - 246.90011596679688, - 607.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10010528564453, - 588.6500244140625, - 246.90011596679688, - 607.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?è8ÔÖØuçr×QÞN×QãrÝ?ÑlâuÛcÔwÝ?ؗÝræ¡äVâ8ÒrتÛcâ+Ù", - "origin": [ - 246.10009765625, - 595.1500244140625 - ], - "bbox": [ - 246.10009765625, - 588.6500244140625, - 378.1000671386719, - 607.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.10009765625, - 588.6500244140625, - 378.1000671386719, - 607.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÚ", - "origin": [ - 390.60009765625, - 595.1500244140625 - ], - "bbox": [ - 390.60009765625, - 588.6500244140625, - 396.0000915527344, - 607.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 396.0000915527344, - 595.1500244140625 - ], - "bbox": [ - 396.0000915527344, - 588.6500244140625, - 401.90008544921875, - 606.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "P×gÕ/ÛcÓgò", - "origin": [ - 401.90008544921875, - 595.1500244140625 - ], - "bbox": [ - 401.90008544921875, - 588.6500244140625, - 424.8000793457031, - 607.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.60009765625, - 588.6500244140625, - 424.8000793457031, - 607.550048828125 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 71.40008544921875, - 616.8500366210938, - 78.00008392333984, - 636.2500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "%", - "origin": [ - 71.40008544921875, - 623.8500366210938 - ], - "bbox": [ - 71.40008544921875, - 616.8500366210938, - 71.40008544921875, - 635.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "°Ã", - "origin": [ - 71.40008544921875, - 623.8500366210938 - ], - "bbox": [ - 71.40008544921875, - 617.3500366210938, - 78.00008392333984, - 636.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.40008544921875, - 616.8500366210938, - 78.00008392333984, - 636.2500610351562 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 86.60008239746094, - 616.550048828125, - 123.20008087158203, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "0\u00192->", - "origin": [ - 86.60008239746094, - 623.550048828125 - ], - "bbox": [ - 86.60008239746094, - 617.050048828125, - 102.20008087158203, - 635.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "'&", - "origin": [ - 102.20008087158203, - 623.550048828125 - ], - "bbox": [ - 102.20008087158203, - 616.550048828125, - 112.10008239746094, - 634.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010Ë=3", - "origin": [ - 112.10008239746094, - 623.550048828125 - ], - "bbox": [ - 112.10008239746094, - 617.050048828125, - 123.20008087158203, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.60008239746094, - 616.550048828125, - 123.20008087158203, - 635.9500732421875 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 129.50009155273438, - 616.8500366210938, - 136.3000946044922, - 636.2500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Å", - "origin": [ - 129.50009155273438, - 623.8500366210938 - ], - "bbox": [ - 129.50009155273438, - 617.3500366210938, - 129.50009155273438, - 636.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ")(", - "origin": [ - 129.50009155273438, - 623.8500366210938 - ], - "bbox": [ - 129.50009155273438, - 616.8500366210938, - 136.3000946044922, - 635.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.50009155273438, - 616.8500366210938, - 136.3000946044922, - 636.2500610351562 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 143.10009765625, - 616.550048828125, - 169.10009765625, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "˒:=:=>", - "origin": [ - 143.10009765625, - 623.550048828125 - ], - "bbox": [ - 143.10009765625, - 617.050048828125, - 153.40008544921875, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 143.10009765625, - 617.050048828125, - 153.40008544921875, - 635.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ">", - "origin": [ - 163.4001007080078, - 623.550048828125 - ], - "bbox": [ - 163.4001007080078, - 617.050048828125, - 163.4001007080078, - 635.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+*", - "origin": [ - 163.4001007080078, - 623.550048828125 - ], - "bbox": [ - 163.4001007080078, - 616.550048828125, - 169.10009765625, - 634.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.4001007080078, - 616.550048828125, - 169.10009765625, - 635.9500732421875 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 182.70008850097656, - 617.050048828125, - 234.20008850097656, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ")uÆaË=36*\u001e˒*", - "origin": [ - 182.70008850097656, - 623.550048828125 - ], - "bbox": [ - 182.70008850097656, - 617.050048828125, - 218.20008850097656, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.70008850097656, - 617.050048828125, - 218.20008850097656, - 635.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÆT>", - "origin": [ - 229.20008850097656, - 623.550048828125 - ], - "bbox": [ - 229.20008850097656, - 617.050048828125, - 234.20008850097656, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.20008850097656, - 617.050048828125, - 234.20008850097656, - 635.9500732421875 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 245.20008850097656, - 616.550048828125, - 303.1000671386719, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "5¾,�3+Ç»(", - "origin": [ - 245.20008850097656, - 623.550048828125 - ], - "bbox": [ - 245.20008850097656, - 617.050048828125, - 278.9001159667969, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.20008850097656, - 617.050048828125, - 278.9001159667969, - 635.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "˒:", - "origin": [ - 288.90008544921875, - 623.550048828125 - ], - "bbox": [ - 288.90008544921875, - 617.050048828125, - 292.40008544921875, - 635.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "-,", - "origin": [ - 292.40008544921875, - 623.550048828125 - ], - "bbox": [ - 292.40008544921875, - 616.550048828125, - 295.7000732421875, - 634.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½>", - "origin": [ - 295.7000732421875, - 623.550048828125 - ], - "bbox": [ - 295.7000732421875, - 617.050048828125, - 303.1000671386719, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.90008544921875, - 616.550048828125, - 303.1000671386719, - 635.9500732421875 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 313.90008544921875, - 617.050048828125, - 370.10009765625, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Æ¥,gÎB)8Ï?>\u000f3+έ>", - "origin": [ - 313.90008544921875, - 623.550048828125 - ], - "bbox": [ - 313.90008544921875, - 617.050048828125, - 370.10009765625, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.90008544921875, - 617.050048828125, - 370.10009765625, - 635.9500732421875 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 381.10009765625, - 617.050048828125, - 392.10009765625, - 635.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ")uÆT3", - "origin": [ - 381.10009765625, - 623.550048828125 - ], - "bbox": [ - 381.10009765625, - 617.050048828125, - 392.10009765625, - 635.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 381.10009765625, - 617.050048828125, - 392.10009765625, - 635.9500732421875 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 71.10012817382812, - 629.3500366210938, - 519.8001708984375, - 648.7500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 71.10012817382812, - 636.3500366210938 - ], - "bbox": [ - 71.10012817382812, - 629.3500366210938, - 71.10012817382812, - 647.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Û\u0014à»ÔÖÑÖÑ\"ڐ×\rÓGÜuÝTà»Ø\u0012Ü8×QÞcחÜuÝTà", - "origin": [ - 71.10012817382812, - 636.3500366210938 - ], - "bbox": [ - 71.10012817382812, - 629.8500366210938, - 191.7001495361328, - 648.7500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10012817382812, - 629.3500366210938, - 191.7001495361328, - 648.7500610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×", - "origin": [ - 204.40013122558594, - 636.3500366210938 - ], - "bbox": [ - 204.40013122558594, - 629.8500366210938, - 214.80014038085938, - 648.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "W9\u0018D", - "origin": [ - 214.80014038085938, - 636.3500366210938 - ], - "bbox": [ - 214.80014038085938, - 629.8500366210938, - 230.00013732910156, - 647.7500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 204.40013122558594, - 629.8500366210938, - 230.00013732910156, - 648.7500610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&3&') 9\u000f\u001c\u0013D", - "origin": [ - 238.20013427734375, - 636.3500366210938 - ], - "bbox": [ - 238.20013427734375, - 629.8500366210938, - 260.5001220703125, - 647.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡á4ÔwÝ?âuãWÔÖÑÖÑÖ×¥×gä©â+Ò\u001dÛcÔwÝ?ØÁÕQÒrØ\u0012ڐ×\u001fà^ÞGÔwÛZÛZ×gØ\u0012ÔÖØ", - "origin": [ - 260.5001220703125, - 636.3500366210938 - ], - "bbox": [ - 260.5001220703125, - 629.8500366210938, - 438.5000915527344, - 648.7500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 238.20013427734375, - 629.8500366210938, - 438.5000915527344, - 648.7500610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuחæ=ÝrÞGÙ", - "origin": [ - 449.10015869140625, - 636.3500366210938 - ], - "bbox": [ - 449.10015869140625, - 629.8500366210938, - 482.20013427734375, - 648.7500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.10015869140625, - 629.8500366210938, - 482.20013427734375, - 648.7500610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ\u0016ÛcÜu×", - "origin": [ - 495.900146484375, - 636.3500366210938 - ], - "bbox": [ - 495.900146484375, - 629.8500366210938, - 519.8001708984375, - 648.7500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 495.900146484375, - 629.8500366210938, - 519.8001708984375, - 648.7500610351562 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 71.900146484375, - 642.7500610351562, - 522.2000732421875, - 661.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "S#\u001bb\u001c%\u001e\u001f\u0014 \u001b�\u0012", - "origin": [ - 71.900146484375, - 649.2500610351562 - ], - "bbox": [ - 71.900146484375, - 642.7500610351562, - 103.8001480102539, - 660.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.900146484375, - 642.7500610351562, - 103.8001480102539, - 660.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012(\"39�;X\u001c\u0013\u001e\u001f) 9\u000f\u001c\u0013D", - "origin": [ - 115.60014343261719, - 649.2500610351562 - ], - "bbox": [ - 115.60014343261719, - 642.7500610351562, - 164.50013732910156, - 660.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ+س×gäVâ8Ò\u001dÛcÔwÝ?ذé\u0018çr×gØu×QÞGÒrÑlÑwßrérÔÖØ8Õ/ÝrÞcåÝrÞGÒ\u001dÛcÔÖØ8ç^Ò»ÕGÜ+Ò\u001dÞGÒrÕ/ÛZ×QÞGÔÖÓZÛcÔlÕ½×", - "origin": [ - 164.50013732910156, - 649.2500610351562 - ], - "bbox": [ - 164.50013732910156, - 642.7500610351562, - 471.90008544921875, - 661.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 471.90008544921875, - 649.2500610351562 - ], - "bbox": [ - 471.90008544921875, - 642.7500610351562, - 476.60009765625, - 660.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZÞGÒ¢ÛZ×QÞGٗò", - "origin": [ - 476.60009765625, - 649.2500610351562 - ], - "bbox": [ - 476.60009765625, - 642.7500610351562, - 522.2000732421875, - 661.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 115.60014343261719, - 642.7500610351562, - 522.2000732421875, - 661.6500854492188 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 95.50013732910156, - 655.2500610351562, - 470.6001281738281, - 674.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "לÕ/Ý?Ø8ÓGÔÖèu×QÞ%ÝrÚ", - "origin": [ - 95.50013732910156, - 662.2500610351562 - ], - "bbox": [ - 95.50013732910156, - 655.7500610351562, - 153.30014038085938, - 674.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 153.30014038085938, - 662.2500610351562 - ], - "bbox": [ - 153.30014038085938, - 655.7500610351562, - 159.20013427734375, - 673.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÓ%à¢ÔwÛcÜ", - "origin": [ - 159.20013427734375, - 662.2500610351562 - ], - "bbox": [ - 159.20013427734375, - 655.7500610351562, - 201.20013427734375, - 674.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.50013732910156, - 655.7500610351562, - 201.20013427734375, - 674.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ҖÓcÔlØuç?Ñw×¥Õ/Ý?Ø©ÛcÔÖØ©â8Ý?â8Ó³èu×QçrÞG×Q×¥Ýræ\u0010æ™Þc×Q×gè8Ý?ٗé-æ=ÝrÞ\u0019ÓGÔÖÙ�å+ÑÖÔlÕQÔwÛsßrò", - "origin": [ - 211.50013732910156, - 662.2500610351562 - ], - "bbox": [ - 211.50013732910156, - 655.7500610351562, - 464.1001281738281, - 674.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "/.", - "origin": [ - 464.1001281738281, - 662.2500610351562 - ], - "bbox": [ - 464.1001281738281, - 655.2500610351562, - 470.6001281738281, - 673.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.50013732910156, - 655.2500610351562, - 470.6001281738281, - 674.6500854492188 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 489.1001281738281, - 655.7500610351562, - 518.7001342773438, - 674.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ݖڐ×Qç?ÔÖØ", - "origin": [ - 489.1001281738281, - 662.2500610351562 - ], - "bbox": [ - 489.1001281738281, - 655.7500610351562, - 518.7001342773438, - 674.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.1001281738281, - 655.7500610351562, - 518.7001342773438, - 674.6500854492188 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 71.10012817382812, - 668.7500610351562, - 519.800048828125, - 687.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcܰéuà\"×\u0019Õ/Ý?Ø8ÓcÔÖèu×QÞ¢Õ/Ý?Ø8ÓZ×QÞcã\u001dÒ\u001dÛcÔwãr׳æ=ÝrÞGÕ/×gÓQé6Ócâ8Õ1ܗÛcÜ8Ò\u001dÛ»ÛcÜ8×%×gä©â+Ò\u001dÛcÔwÝ?Ø8ÓNÝræ¡Ù�ÝrÛcÔwÝ?صÒ\u001dÞc׳èu×QÛZ×QÞ1Ù¥ÔÖØu×gè—ÚVß\rÛcÜu×", - "origin": [ - 71.10012817382812, - 675.2500610351562 - ], - "bbox": [ - 71.10012817382812, - 668.7500610351562, - 519.800048828125, - 687.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10012817382812, - 668.7500610351562, - 519.800048828125, - 687.6500854492188 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 71.10012817382812, - 681.6500244140625, - 204.10015869140625, - 700.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çr×gØu×QÞ1ÔÖÕ;ê¢ÒrÙ ÔÖÑwÛZÝ?Ø8ÔÖÒrØ\ræ’â8Ø8Õ/ÛcÔÖÝ?Ø", - "origin": [ - 71.10012817382812, - 688.1500244140625 - ], - "bbox": [ - 71.10012817382812, - 681.6500244140625, - 204.10015869140625, - 700.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10012817382812, - 681.6500244140625, - 204.10015869140625, - 700.550048828125 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 251.8001251220703, - 698.1500244140625, - 265.5001220703125, - 716.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21)354", - "origin": [ - 251.8001251220703, - 705.1500244140625 - ], - "bbox": [ - 251.8001251220703, - 698.1500244140625, - 265.5001220703125, - 716.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.8001251220703, - 698.1500244140625, - 265.5001220703125, - 716.550048828125 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 272.1001281738281, - 698.6500244140625, - 282.5001525878906, - 717.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 272.1001281738281, - 705.6500244140625 - ], - "bbox": [ - 272.1001281738281, - 698.6500244140625, - 272.1001281738281, - 717.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0015\u0017", - "origin": [ - 272.1001281738281, - 705.6500244140625 - ], - "bbox": [ - 272.1001281738281, - 699.1500244140625, - 279.8001403808594, - 717.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 279.8001403808594, - 705.6500244140625 - ], - "bbox": [ - 279.8001403808594, - 698.6500244140625, - 282.5001525878906, - 717.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.1001281738281, - 698.6500244140625, - 282.5001525878906, - 717.050048828125 - ] - } - ] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 307.1000061035156, - 698.1500244140625, - 334.8999938964844, - 716.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ".\u000b8#9", - "origin": [ - 307.1000061035156, - 705.25 - ], - "bbox": [ - 307.1000061035156, - 698.25, - 325.0, - 716.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.1000061035156, - 698.25, - 325.0, - 716.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 331.5, - 705.1500244140625 - ], - "bbox": [ - 331.5, - 698.1500244140625, - 334.8999938964844, - 716.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.5, - 698.1500244140625, - 334.8999938964844, - 716.550048828125 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 515.5999755859375, - 698.6500244140625, - 520.5999755859375, - 718.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î", - "origin": [ - 515.5999755859375, - 705.6500244140625 - ], - "bbox": [ - 515.5999755859375, - 699.1500244140625, - 515.5999755859375, - 718.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ":\u0012", - "origin": [ - 515.5999755859375, - 705.6500244140625 - ], - "bbox": [ - 515.5999755859375, - 698.6500244140625, - 520.5999755859375, - 717.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.5999755859375, - 698.6500244140625, - 520.5999755859375, - 718.050048828125 - ] - } - ] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 80.1999740600586, - 727.4500122070312, - 119.6999740600586, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "j=O\u0014E»‘°EP%‘", - "origin": [ - 80.1999740600586, - 733.9500122070312 - ], - "bbox": [ - 80.1999740600586, - 727.4500122070312, - 119.6999740600586, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.1999740600586, - 727.4500122070312, - 119.6999740600586, - 746.3500366210938 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 131.5999755859375, - 727.4500122070312, - 134.0999755859375, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALY", - "origin": [ - 131.5999755859375, - 733.9500122070312 - ], - "bbox": [ - 131.5999755859375, - 727.4500122070312, - 134.0999755859375, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.5999755859375, - 727.4500122070312, - 134.0999755859375, - 746.3500366210938 - ] - } - ] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 146.7999725341797, - 727.4500122070312, - 304.29998779296875, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ADX­OaR1H­•\u0018O\u0018SaM]FJX’HJRQRgS³ALO�E1tLt+ALHJX½EGXICrMPY]HJX­ALO\u0019H", - "origin": [ - 146.7999725341797, - 733.9500122070312 - ], - "bbox": [ - 146.7999725341797, - 727.4500122070312, - 304.29998779296875, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.7999725341797, - 727.4500122070312, - 304.29998779296875, - 746.3500366210938 - ] - } - ] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 313.1999816894531, - 727.4500122070312, - 432.9000244140625, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]R1FIQš^U\u0018RGF­FJMPYPMPOQH½SaALXIYP•aXIXIALReO\u0018XP`V‘", - "origin": [ - 313.1999816894531, - 733.9500122070312 - ], - "bbox": [ - 313.1999816894531, - 727.4500122070312, - 432.9000244140625, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.1999816894531, - 727.4500122070312, - 432.9000244140625, - 746.3500366210938 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 444.79998779296875, - 727.4500122070312, - 447.29998779296875, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALY", - "origin": [ - 444.79998779296875, - 733.9500122070312 - ], - "bbox": [ - 444.79998779296875, - 727.4500122070312, - 447.29998779296875, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.79998779296875, - 727.4500122070312, - 447.29998779296875, - 746.3500366210938 - ] - } - ] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 459.9999694824219, - 727.4500122070312, - 517.800048828125, - 746.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Y]FJAžHJADYPE1tLtž\u0019FJMPhgALM]‘", - "origin": [ - 459.9999694824219, - 733.9500122070312 - ], - "bbox": [ - 459.9999694824219, - 727.4500122070312, - 517.800048828125, - 746.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.9999694824219, - 727.4500122070312, - 517.800048828125, - 746.3500366210938 - ] - } - ] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 70.99996948242188, - 737.8499755859375, - 194.9999542236328, - 757.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "FJMPtDEGHJMZS¢A´STMZE1XP`\u0018XIMPM", - "origin": [ - 70.99996948242188, - 744.8499755859375 - ], - "bbox": [ - 70.99996948242188, - 738.3499755859375, - 135.199951171875, - 757.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e<", - "origin": [ - 135.199951171875, - 744.8499755859375 - ], - "bbox": [ - 135.199951171875, - 737.8499755859375, - 142.3999481201172, - 756.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4M] ¸XPš", - "origin": [ - 142.3999481201172, - 744.8499755859375 - ], - "bbox": [ - 142.3999481201172, - 738.3499755859375, - 160.199951171875, - 757.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+=", - "origin": [ - 160.199951171875, - 744.8499755859375 - ], - "bbox": [ - 160.199951171875, - 737.8499755859375, - 165.8999481201172, - 756.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocmT`ªoZn", - "origin": [ - 165.8999481201172, - 744.8499755859375 - ], - "bbox": [ - 165.8999481201172, - 738.3499755859375, - 187.3999481201172, - 757.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 187.3999481201172, - 744.8499755859375 - ], - "bbox": [ - 187.3999481201172, - 737.8499755859375, - 191.8999481201172, - 756.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "֚", - "origin": [ - 191.8999481201172, - 744.8499755859375 - ], - "bbox": [ - 191.8999481201172, - 738.3499755859375, - 194.9999542236328, - 757.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.99996948242188, - 737.8499755859375, - 194.9999542236328, - 757.25 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 80.29997253417969, - 749.75, - 86.79997253417969, - 768.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 80.29997253417969, - 756.25 - ], - "bbox": [ - 80.29997253417969, - 749.75, - 86.79997253417969, - 768.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.29997253417969, - 749.75, - 86.79997253417969, - 768.6500244140625 - ] - } - ] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 91.99996948242188, - 749.9500122070312, - 331.0999450683594, - 768.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M· ¸R1tLtDRZ‘¬ALO\u0018d^ALX4MZE1XIALtž¢FJM]CrMZEGHJMZS» ¸R1F4 ¸M¯‘°k™£rRgSg»X’aX’HJM]KNX4RGF¬¤\u001dMPtDSaXPš", - "origin": [ - 91.99996948242188, - 756.4500122070312 - ], - "bbox": [ - 91.99996948242188, - 749.9500122070312, - 331.0999450683594, - 768.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.99996948242188, - 749.9500122070312, - 331.0999450683594, - 768.8500366210938 - ] - } - ] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ] - }, - { - "number": 106, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "2", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 105, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "tag": "header" - }, - { - "number": 106, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "tag": "header" - }, - { - "number": 107, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "2", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 2, - "page_size": [ - 595.5, - 842.25 - ] - }, - "page_3": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 71.19999694824219, - 109.04998779296875, - 237.69996643066406, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×Qå×gØ8è+ÔÖØuçNÝ?Ø\u0014çr×gØu×QÞGÒrÑlÔ", - "origin": [ - 71.19999694824219, - 116.04998779296875 - ], - "bbox": [ - 71.19999694824219, - 109.54998779296875, - 171.0999755859375, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 171.0999755859375, - 116.04998779296875 - ], - "bbox": [ - 171.0999755859375, - 109.04998779296875, - 174.0999755859375, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×gè\u0019Õ/ÝVÝrÞGè8ÔlØ8Ò\u001dÛZ×", - "origin": [ - 174.0999755859375, - 116.04998779296875 - ], - "bbox": [ - 174.0999755859375, - 109.54998779296875, - 237.69996643066406, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 109.04998779296875, - 237.69996643066406, - 128.44998168945312 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 254.5, - 109.54998779296875, - 319.3000183105469, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è\u0019Ù¥Ý?Ù�×gتÛcâ+Ù", - "origin": [ - 254.5, - 116.04998779296875 - ], - "bbox": [ - 254.5, - 109.54998779296875, - 319.3000183105469, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 254.5, - 109.54998779296875, - 319.3000183105469, - 128.44998168945312 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 337.29998779296875, - 109.54998779296875, - 386.0999450683594, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "érÒrØ8è&à»Üu×QÞc×", - "origin": [ - 337.29998779296875, - 116.04998779296875 - ], - "bbox": [ - 337.29998779296875, - 109.54998779296875, - 386.0999450683594, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.29998779296875, - 109.54998779296875, - 386.0999450683594, - 128.44998168945312 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 402.1999816894531, - 109.54998779296875, - 522.0, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gØuÝrÛZ×gÓ·ÛcÜu×", - "origin": [ - 402.1999816894531, - 116.04998779296875 - ], - "bbox": [ - 402.1999816894531, - 109.54998779296875, - 450.9999694824219, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 402.1999816894531, - 109.54998779296875, - 450.9999694824219, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0014 \u000e'\u001b\u001d\"`4�\u0010,\u0014.\"�\u001e\u001f\u0014 )>\u001c\u0013D", - "origin": [ - 459.29998779296875, - 116.04998779296875 - ], - "bbox": [ - 459.29998779296875, - 109.54998779296875, - 519.2000122070312, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ºò", - "origin": [ - 519.2000122070312, - 116.04998779296875 - ], - "bbox": [ - 519.2000122070312, - 109.54998779296875, - 522.0, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.29998779296875, - 109.54998779296875, - 522.0, - 128.44998168945312 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 71.0999755859375, - 121.95001220703125, - 519.2999877929688, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 71.0999755859375, - 128.95001220703125 - ], - "bbox": [ - 71.0999755859375, - 121.95001220703125, - 71.0999755859375, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PØ", - "origin": [ - 71.0999755859375, - 128.95001220703125 - ], - "bbox": [ - 71.0999755859375, - 122.45001220703125, - 75.1999740600586, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 121.95001220703125, - 75.1999740600586, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëV×gÕ/ÛcÔÖÝ?Ø", - "origin": [ - 85.79997253417969, - 128.95001220703125 - ], - "bbox": [ - 85.79997253417969, - 122.45001220703125, - 114.0999755859375, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.79997253417969, - 122.45001220703125, - 114.0999755859375, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ðVé·à\u001b× à»ÔÖÑlÑ­Õ/Ý?Ù�×\u001fÚ+ÒrÕ", - "origin": [ - 124.6999740600586, - 128.95001220703125 - ], - "bbox": [ - 124.6999740600586, - 122.45001220703125, - 216.19996643066406, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 216.19996643066406, - 128.95001220703125 - ], - "bbox": [ - 216.19996643066406, - 121.95001220703125, - 220.49996948242188, - 140.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.6999740600586, - 121.95001220703125, - 220.49996948242188, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZݵÛcÜu×\rØuÝrÛcÔwÝ?Ø", - "origin": [ - 230.7999725341797, - 128.95001220703125 - ], - "bbox": [ - 230.7999725341797, - 122.45001220703125, - 288.89996337890625, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.7999725341797, - 122.45001220703125, - 288.89996337890625, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝræNÛcÜ8לÛZÞGâ8×¥åÝrÛZ×gتÛcÔÖÒrÑ\u001bÒrØ8è¾è8ÔÖÓZÛcÔÖØ8ç?â8ÔÖÓcÜ�ÔwÛ³æ™ÞcÝ?ÙþÒ", - "origin": [ - 299.1999816894531, - 128.95001220703125 - ], - "bbox": [ - 299.1999816894531, - 122.45001220703125, - 519.2999877929688, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 299.1999816894531, - 122.45001220703125, - 519.2999877929688, - 141.35000610351562 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 71.0999755859375, - 129.05001831054688, - 232.29998779296875, - 163.75001525878906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÑlÒ\u001dÛZ×gè", - "origin": [ - 71.0999755859375, - 141.95001220703125 - ], - "bbox": [ - 71.0999755859375, - 135.45001220703125, - 97.89997863769531, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "W93\u0010#\u001c%\u000e3&#\"", - "origin": [ - 97.89997863769531, - 141.95001220703125 - ], - "bbox": [ - 97.89997863769531, - 135.45001220703125, - 132.29998779296875, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 132.29998779296875, - 141.95001220703125 - ], - "bbox": [ - 132.29998779296875, - 129.05001831054688, - 136.99998474121094, - 163.75001525878906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ">*%\u000e\u0011\u001c\u0013)�\u001e", - "origin": [ - 136.99998474121094, - 141.95001220703125 - ], - "bbox": [ - 136.99998474121094, - 135.45001220703125, - 158.79998779296875, - 153.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 129.05001831054688, - 158.79998779296875, - 163.75001525878906 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"$1", - "origin": [ - 165.29998779296875, - 141.95001220703125 - ], - "bbox": [ - 165.29998779296875, - 135.45001220703125, - 169.59999084472656, - 153.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.29998779296875, - 135.45001220703125, - 169.59999084472656, - 153.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "4�\u0010,\u0014.\"�\u001e\u001f\u0014 )>\u001c\u0013D", - "origin": [ - 178.29998779296875, - 141.95001220703125 - ], - "bbox": [ - 178.29998779296875, - 135.45001220703125, - 216.79998779296875, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 216.79998779296875, - 141.95001220703125 - ], - "bbox": [ - 216.79998779296875, - 129.05001831054688, - 223.19998168945312, - 163.75001525878906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥ò", - "origin": [ - 223.19998168945312, - 141.95001220703125 - ], - "bbox": [ - 223.19998168945312, - 135.45001220703125, - 232.29998779296875, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.29998779296875, - 129.05001831054688, - 232.29998779296875, - 163.75001525878906 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 93.49998474121094, - 147.8499755859375, - 521.9000244140625, - 167.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Øÿ×gØ8ÓZ×gÙ\u0019Ú+Ñw×", - "origin": [ - 93.49998474121094, - 154.8499755859375 - ], - "bbox": [ - 93.49998474121094, - 148.3499755859375, - 144.29998779296875, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.49998474121094, - 148.3499755859375, - 144.29998779296875, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ�Ócâ+ÕGÜ", - "origin": [ - 155.79998779296875, - 154.8499755859375 - ], - "bbox": [ - 155.79998779296875, - 148.3499755859375, - 186.2999725341797, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 155.79998779296875, - 148.3499755859375, - 186.2999725341797, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÚ", - "origin": [ - 198.99998474121094, - 154.8499755859375 - ], - "bbox": [ - 198.99998474121094, - 148.3499755859375, - 204.3999786376953, - 167.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "b�", - "origin": [ - 204.3999786376953, - 154.8499755859375 - ], - "bbox": [ - 204.3999786376953, - 148.3499755859375, - 210.3999786376953, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "P×gÕ/ÛcÓQé\u000fæ=ÝrÞ\u001e×", - "origin": [ - 210.3999786376953, - 154.8499755859375 - ], - "bbox": [ - 210.3999786376953, - 148.3499755859375, - 263.1999816894531, - 167.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 263.1999816894531, - 154.8499755859375 - ], - "bbox": [ - 263.1999816894531, - 148.3499755859375, - 267.8999938964844, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ�å+ÑÖ×ré!æ=Ý?ÑÖÑwÝTà¢ÔÖØuçŽÛZÞGÒ", - "origin": [ - 267.8999938964844, - 154.8499755859375 - ], - "bbox": [ - 267.8999938964844, - 148.3499755859375, - 370.6000061035156, - 167.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "H�", - "origin": [ - 370.6000061035156, - 154.8499755859375 - ], - "bbox": [ - 370.6000061035156, - 148.3499755859375, - 375.70001220703125, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛZÝrÞGÔw×gÓÍà»ÔwÛcÜÿè8Ô", - "origin": [ - 375.70001220703125, - 154.8499755859375 - ], - "bbox": [ - 375.70001220703125, - 148.3499755859375, - 456.8000183105469, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.99998474121094, - 148.3499755859375, - 456.8000183105469, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 459.70001220703125, - 154.8499755859375 - ], - "bbox": [ - 459.70001220703125, - 147.8499755859375, - 459.70001220703125, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×QÞc×gتÛ\u001eÔÖØ8ÔwÛcÔÖÒrÑ", - "origin": [ - 459.70001220703125, - 154.8499755859375 - ], - "bbox": [ - 459.70001220703125, - 148.3499755859375, - 521.9000244140625, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.70001220703125, - 147.8499755859375, - 521.9000244140625, - 167.24996948242188 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 71.20001220703125, - 154.94998168945312, - 519.0999755859375, - 189.6499786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/Ý?Ø8è+ÔwÛcÔwÝ?Ø8ÓQé\u0010ÔÖӜèu×gÓcÕ/ÞGÔwڐ×gè\u0012ÚVßÁÒ7è+ÔÖÓZÛZÞGÔwÚyâuÛcÔwÝ?Ø", - "origin": [ - 71.20001220703125, - 167.8499755859375 - ], - "bbox": [ - 71.20001220703125, - 161.3499755859375, - 267.29998779296875, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 161.3499755859375, - 267.29998779296875, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=â+Ø8Õ/ÛcÔwÝ?Ø", - "origin": [ - 277.9000244140625, - 167.8499755859375 - ], - "bbox": [ - 277.9000244140625, - 161.3499755859375, - 311.10003662109375, - 180.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 311.10003662109375, - 167.8499755859375 - ], - "bbox": [ - 311.10003662109375, - 154.94998168945312, - 322.2000427246094, - 189.6499786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.9000244140625, - 154.94998168945312, - 322.2000427246094, - 189.6499786376953 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØÁå+Ü+ÒrÓZ×µÓZåyÒrÕ/×ré^ÔIòž×ròwéNÚ©ß\u0012ÛcÜ8×!å8ÞcÝrÚyÒ\u001dÚ+ÔÖÑÖÔwÛ¯ß", - "origin": [ - 333.70001220703125, - 167.8499755859375 - ], - "bbox": [ - 333.70001220703125, - 161.3499755859375, - 519.0999755859375, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.70001220703125, - 161.3499755859375, - 519.0999755859375, - 180.24996948242188 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 78.50001525878906, - 167.44998168945312, - 103.30001831054688, - 202.1499786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 78.50001525878906, - 180.3499755859375 - ], - "bbox": [ - 78.50001525878906, - 173.3499755859375, - 81.90001678466797, - 191.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.50001525878906, - 173.3499755859375, - 81.90001678466797, - 191.74996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "354", - "origin": [ - 88.80001831054688, - 180.3499755859375 - ], - "bbox": [ - 88.80001831054688, - 173.3499755859375, - 92.30001831054688, - 191.74996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�\n�", - "origin": [ - 92.30001831054688, - 180.3499755859375 - ], - "bbox": [ - 92.30001831054688, - 167.44998168945312, - 103.30001831054688, - 202.1499786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.80001831054688, - 167.44998168945312, - 103.30001831054688, - 202.1499786376953 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 107.50001525878906, - 173.8499755859375, - 111.50001525878906, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 107.50001525878906, - 180.8499755859375 - ], - "bbox": [ - 107.50001525878906, - 173.8499755859375, - 107.50001525878906, - 192.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]è", - "origin": [ - 107.50001525878906, - 180.8499755859375 - ], - "bbox": [ - 107.50001525878906, - 174.3499755859375, - 111.50001525878906, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.50001525878906, - 173.8499755859375, - 111.50001525878906, - 193.24996948242188 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 138.80001831054688, - 174.3499755859375, - 462.800048828125, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ", - "origin": [ - 138.80001831054688, - 180.8499755859375 - ], - "bbox": [ - 138.80001831054688, - 174.3499755859375, - 143.00001525878906, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\\\n", - "origin": [ - 143.00001525878906, - 180.8499755859375 - ], - "bbox": [ - 143.00001525878906, - 174.3499755859375, - 152.00001525878906, - 192.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø8è\rÒ�Ù�×gÙ\u0019ڐ×QÞNÝræ-ÛcÜ8×;×gØ8ÓZ×gÙ\u0019Ú+Ñw×;ÔÖØ\rÒrؖÔÖØ", - "origin": [ - 152.00001525878906, - 180.8499755859375 - ], - "bbox": [ - 152.00001525878906, - 174.3499755859375, - 332.800048828125, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "b\n", - "origin": [ - 332.800048828125, - 180.8499755859375 - ], - "bbox": [ - 332.800048828125, - 174.3499755859375, - 338.800048828125, - 192.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yØ8ÔwÛZ×gÓcÔÖÙ ÒrÑuãrÝ?ÑÖâ8Ù�×%Ò\u001dÛNåÝ?ÔÖØ©Û", - "origin": [ - 338.800048828125, - 180.8499755859375 - ], - "bbox": [ - 338.800048828125, - 174.3499755859375, - 462.800048828125, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 138.80001831054688, - 174.3499755859375, - 462.800048828125, - 193.24996948242188 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 471.3000183105469, - 173.3499755859375, - 485.0, - 191.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21)354", - "origin": [ - 471.3000183105469, - 180.3499755859375 - ], - "bbox": [ - 471.3000183105469, - 173.3499755859375, - 485.0, - 191.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 471.3000183105469, - 173.3499755859375, - 485.0, - 191.74996948242188 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 491.5000305175781, - 173.8499755859375, - 496.0000305175781, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 491.5000305175781, - 180.8499755859375 - ], - "bbox": [ - 491.5000305175781, - 173.8499755859375, - 491.5000305175781, - 192.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 491.5000305175781, - 180.8499755859375 - ], - "bbox": [ - 491.5000305175781, - 174.3499755859375, - 496.0000305175781, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 491.5000305175781, - 173.8499755859375, - 496.0000305175781, - 193.24996948242188 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 511.4000244140625, - 174.3499755859375, - 520.5999755859375, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ", - "origin": [ - 511.4000244140625, - 180.8499755859375 - ], - "bbox": [ - 511.4000244140625, - 174.3499755859375, - 520.5999755859375, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 511.4000244140625, - 174.3499755859375, - 520.5999755859375, - 193.24996948242188 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 71.20001220703125, - 187.14996337890625, - 328.3999938964844, - 206.04995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8ÔlÓZÛZÞGÔwÚ+â8ÛcÔwÝ?Ø¥×QãrÝ?Ñwãr×gÓ\u0016ÒrÕQÕ/ÝrÞGè8ÔlØuç�ÛZÝ¥ÛcÜu׳á-ÔwÝ?âuãWÔÖÑÖÑw×¢×gä©â+Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 71.20001220703125, - 193.64996337890625 - ], - "bbox": [ - 71.20001220703125, - 187.14996337890625, - 328.3999938964844, - 206.04995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 187.14996337890625, - 328.3999938964844, - 206.04995727539062 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 178.1000213623047, - 215.44998168945312, - 191.7000274658203, - 250.1499786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000b\r\f\u000f\u000e", - "origin": [ - 178.1000213623047, - 228.3499755859375 - ], - "bbox": [ - 178.1000213623047, - 215.44998168945312, - 191.7000274658203, - 250.1499786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.1000213623047, - 215.44998168945312, - 191.7000274658203, - 250.1499786376953 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 225.5, - 217.64999389648438, - 238.1999969482422, - 252.34999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "4", - "origin": [ - 225.5, - 230.54998779296875 - ], - "bbox": [ - 225.5, - 223.54998779296875, - 225.5, - 241.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0011\u0010", - "origin": [ - 225.5, - 230.54998779296875 - ], - "bbox": [ - 225.5, - 217.64999389648438, - 238.1999969482422, - 252.34999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.5, - 217.64999389648438, - 238.1999969482422, - 252.34999084472656 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 245.3000030517578, - 222.85000610351562, - 250.90000915527344, - 257.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0013\u0012", - "origin": [ - 245.3000030517578, - 235.75 - ], - "bbox": [ - 245.3000030517578, - 222.85000610351562, - 250.90000915527344, - 257.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.3000030517578, - 222.85000610351562, - 250.90000915527344, - 257.54998779296875 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 281.0, - 217.64999389648438, - 293.3999938964844, - 252.34999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "1", - "origin": [ - 281.0, - 230.54998779296875 - ], - "bbox": [ - 281.0, - 223.54998779296875, - 281.0, - 241.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0014\u0010", - "origin": [ - 281.0, - 230.54998779296875 - ], - "bbox": [ - 281.0, - 217.64999389648438, - 293.3999938964844, - 252.34999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 281.0, - 217.64999389648438, - 293.3999938964844, - 252.34999084472656 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 300.8999938964844, - 222.85000610351562, - 305.8999938964844, - 257.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0016\u0015", - "origin": [ - 300.8999938964844, - 235.75 - ], - "bbox": [ - 300.8999938964844, - 222.85000610351562, - 305.8999938964844, - 257.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 300.8999938964844, - 222.85000610351562, - 305.8999938964844, - 257.54998779296875 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 316.79998779296875, - 210.75003051757812, - 328.5, - 245.4500274658203 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "6", - "origin": [ - 316.79998779296875, - 223.6500244140625 - ], - "bbox": [ - 316.79998779296875, - 216.6500244140625, - 316.79998779296875, - 235.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0018\u0017", - "origin": [ - 316.79998779296875, - 223.6500244140625 - ], - "bbox": [ - 316.79998779296875, - 210.75003051757812, - 328.5, - 245.4500274658203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79998779296875, - 210.75003051757812, - 328.5, - 245.4500274658203 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 339.29998779296875, - 215.45004272460938, - 353.1999816894531, - 250.15003967285156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u000f\u0012\u0019\u000b", - "origin": [ - 339.29998779296875, - 228.35003662109375 - ], - "bbox": [ - 339.29998779296875, - 215.45004272460938, - 353.1999816894531, - 250.15003967285156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 339.29998779296875, - 215.45004272460938, - 353.1999816894531, - 250.15003967285156 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 363.3999938964844, - 210.35006713867188, - 376.0, - 245.05006408691406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "9", - "origin": [ - 363.3999938964844, - 223.25006103515625 - ], - "bbox": [ - 363.3999938964844, - 216.25006103515625, - 363.3999938964844, - 234.65005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001b\u001a", - "origin": [ - 363.3999938964844, - 223.25006103515625 - ], - "bbox": [ - 363.3999938964844, - 210.35006713867188, - 369.1000061035156, - 245.05006408691406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.3999938964844, - 210.35006713867188, - 369.1000061035156, - 245.05006408691406 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 372.6000061035156, - 223.15008544921875 - ], - "bbox": [ - 372.6000061035156, - 216.15008544921875, - 376.0, - 234.55007934570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.6000061035156, - 216.15008544921875, - 376.0, - 234.55007934570312 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 386.70001220703125, - 215.45010375976562, - 397.70001220703125, - 250.1501007080078 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0016\u0015\u001d\u001c", - "origin": [ - 386.70001220703125, - 228.35009765625 - ], - "bbox": [ - 386.70001220703125, - 215.45010375976562, - 397.70001220703125, - 250.1501007080078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.70001220703125, - 215.45010375976562, - 397.70001220703125, - 250.1501007080078 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 515.1000366210938, - 216.65008544921875, - 520.6000366210938, - 236.05007934570312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ï", - "origin": [ - 515.1000366210938, - 223.65008544921875 - ], - "bbox": [ - 515.1000366210938, - 217.15008544921875, - 515.1000366210938, - 236.05007934570312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.1000366210938, - 223.65008544921875 - ], - "bbox": [ - 515.1000366210938, - 216.65008544921875, - 520.6000366210938, - 235.05007934570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.1000366210938, - 216.65008544921875, - 520.6000366210938, - 236.05007934570312 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 71.10003662109375, - 249.05010986328125, - 86.50003814697266, - 267.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcÜ", - "origin": [ - 71.10003662109375, - 255.55010986328125 - ], - "bbox": [ - 71.10003662109375, - 249.05010986328125, - 86.50003814697266, - 267.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 249.05010986328125, - 86.50003814697266, - 267.9501037597656 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 106.20003509521484, - 248.05010986328125, - 109.60003662109375, - 266.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 106.20003509521484, - 255.05010986328125 - ], - "bbox": [ - 106.20003509521484, - 248.05010986328125, - 109.60003662109375, - 266.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.20003509521484, - 248.05010986328125, - 109.60003662109375, - 266.4501037597656 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 116.20003509521484, - 248.55010986328125, - 128.30003356933594, - 266.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 116.20003509521484, - 255.55010986328125 - ], - "bbox": [ - 116.20003509521484, - 248.55010986328125, - 116.20003509521484, - 266.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001a\u0017", - "origin": [ - 116.20003509521484, - 255.55010986328125 - ], - "bbox": [ - 116.20003509521484, - 249.05010986328125, - 125.60003662109375, - 266.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 125.60003662109375, - 255.55010986328125 - ], - "bbox": [ - 125.60003662109375, - 248.55010986328125, - 128.30003356933594, - 266.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 116.20003509521484, - 248.55010986328125, - 128.30003356933594, - 266.9501037597656 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 153.90003967285156, - 248.05010986328125, - 157.30003356933594, - 266.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 153.90003967285156, - 255.05010986328125 - ], - "bbox": [ - 153.90003967285156, - 248.05010986328125, - 157.30003356933594, - 266.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 153.90003967285156, - 248.05010986328125, - 157.30003356933594, - 266.4501037597656 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 163.80003356933594, - 242.65011596679688, - 173.2000274658203, - 277.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 163.80003356933594, - 255.55010986328125 - ], - "bbox": [ - 163.80003356933594, - 248.55010986328125, - 163.80003356933594, - 266.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\n\u001e", - "origin": [ - 163.80003356933594, - 255.55010986328125 - ], - "bbox": [ - 163.80003356933594, - 242.65011596679688, - 168.00003051757812, - 277.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0018è", - "origin": [ - 168.00003051757812, - 255.55010986328125 - ], - "bbox": [ - 168.00003051757812, - 249.05010986328125, - 173.2000274658203, - 267.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.80003356933594, - 242.65011596679688, - 173.2000274658203, - 277.35009765625 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 217.00003051757812, - 249.05010986328125, - 422.0, - 267.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "חÞG×gÕQÒrÑÖÑ\u0010ÛcÜ8Ò\u001dÛ�ÛcÜuחÞc×gÑlÒ\u001dÛcÔwãrח٥ÔÖØVâ8Ó\u0014ÓcÔwç?Ø\u000bÔÖØ", - "origin": [ - 217.00003051757812, - 255.55010986328125 - ], - "bbox": [ - 217.00003051757812, - 249.05010986328125, - 401.0999755859375, - 267.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 217.00003051757812, - 249.05010986328125, - 401.0999755859375, - 267.9501037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×", - "origin": [ - 411.70001220703125, - 255.55010986328125 - ], - "bbox": [ - 411.70001220703125, - 249.05010986328125, - 422.0, - 267.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.70001220703125, - 249.05010986328125, - 422.0, - 267.9501037597656 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 438.70001220703125, - 248.55010986328125, - 520.2999877929688, - 267.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÔÖÓcÓZÝ?Ø\u000bÚ+ÞGÒrÕ", - "origin": [ - 438.70001220703125, - 255.55010986328125 - ], - "bbox": [ - 438.70001220703125, - 249.05010986328125, - 488.0000305175781, - 267.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 488.0000305175781, - 255.55010986328125 - ], - "bbox": [ - 488.0000305175781, - 248.55010986328125, - 492.3000183105469, - 266.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×QÛQé\u001bÝrÞ", - "origin": [ - 492.3000183105469, - 255.55010986328125 - ], - "bbox": [ - 492.3000183105469, - 249.05010986328125, - 520.2999877929688, - 267.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.70001220703125, - 248.55010986328125, - 520.2999877929688, - 267.9501037597656 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 71.10000610351562, - 255.65011596679688, - 383.4000549316406, - 290.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×QÛsà\u001b×Q×gؾÛZ×QÞGÙ¥Ó&Üu×QÞc×ré·Þc×", - "origin": [ - 71.10000610351562, - 268.55010986328125 - ], - "bbox": [ - 71.10000610351562, - 262.05010986328125, - 177.2000274658203, - 280.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": " \u001f", - "origin": [ - 177.2000274658203, - 268.55010986328125 - ], - "bbox": [ - 177.2000274658203, - 255.65011596679688, - 182.00003051757812, - 290.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gÕ/ÛcÓ\u0014Ò!ÓcßVÙ�åyÑw×gÕ/ÛcÔÖÕ�å+Ü+ÒrÓZלÓZåyÒrÕ/×\u001fÓZßWÙ¥Ù�×QÛZÞGßrò", - "origin": [ - 182.00003051757812, - 268.55010986328125 - ], - "bbox": [ - 182.00003051757812, - 262.05010986328125, - 383.4000549316406, - 280.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 255.65011596679688, - 383.4000549316406, - 290.35009765625 - ] - } - ] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 401.1000061035156, - 262.05010986328125, - 519.800048828125, - 280.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ%à»ÔÖÑÖÑ·ÛZÞGÒrØ+ÓcÑÖÒ\u001dÛZ×\rÔÖØªÛZݵÛcÜu×", - "origin": [ - 401.1000061035156, - 268.55010986328125 - ], - "bbox": [ - 401.1000061035156, - 262.05010986328125, - 519.800048828125, - 280.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 401.1000061035156, - 262.05010986328125, - 519.800048828125, - 280.9501037597656 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 71.10000610351562, - 268.5501403808594, - 246.2999725341797, - 303.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ’ÒrÙ¥ÔÖÑÖÔlÒ\u001dÞ\u0010Õ/Ý?Ù Ù\u0019âuÛcÒ\u001dÛZÝrޓÓZÛZÞGâ+Õ/ÛcâuÞc×;ÔÖØ", - "origin": [ - 71.10000610351562, - 281.45013427734375 - ], - "bbox": [ - 71.10000610351562, - 274.95013427734375, - 222.8999786376953, - 293.8501281738281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\"!", - "origin": [ - 222.8999786376953, - 281.45013427734375 - ], - "bbox": [ - 222.8999786376953, - 268.5501403808594, - 232.5999755859375, - 303.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 232.5999755859375, - 281.45013427734375 - ], - "bbox": [ - 232.5999755859375, - 274.95013427734375, - 246.2999725341797, - 293.8501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 268.5501403808594, - 246.2999725341797, - 303.2501220703125 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 254.90000915527344, - 274.45013427734375, - 264.9000244140625, - 293.8501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 254.90000915527344, - 281.45013427734375 - ], - "bbox": [ - 254.90000915527344, - 274.95013427734375, - 254.90000915527344, - 293.8501281738281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 254.90000915527344, - 281.45013427734375 - ], - "bbox": [ - 254.90000915527344, - 274.45013427734375, - 260.4000244140625, - 292.8501281738281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 260.4000244140625, - 281.45013427734375 - ], - "bbox": [ - 260.4000244140625, - 274.95013427734375, - 264.9000244140625, - 293.8501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 254.90000915527344, - 274.45013427734375, - 264.9000244140625, - 293.8501281738281 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 103.20000457763672, - 281.4501037597656, - 212.20001220703125, - 316.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?âuÞGÔw×QÞNÛZÞGÒrØ+ÓZæ™ÝrÞ1Ù¥Ò\u001dÛcÔwÝ?ذé", - "origin": [ - 103.20000457763672, - 294.35009765625 - ], - "bbox": [ - 103.20000457763672, - 287.85009765625, - 206.10000610351562, - 306.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "#�", - "origin": [ - 206.10000610351562, - 294.35009765625 - ], - "bbox": [ - 206.10000610351562, - 281.4501037597656, - 212.20001220703125, - 316.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.20000457763672, - 281.4501037597656, - 212.20001220703125, - 316.15008544921875 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 219.40000915527344, - 280.9501037597656, - 244.1999969482422, - 315.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21)354", - "origin": [ - 219.40000915527344, - 293.85009765625 - ], - "bbox": [ - 219.40000915527344, - 286.85009765625, - 233.10000610351562, - 305.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "$�\n�", - "origin": [ - 233.10000610351562, - 293.85009765625 - ], - "bbox": [ - 233.10000610351562, - 280.9501037597656, - 244.1999969482422, - 315.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.40000915527344, - 280.9501037597656, - 244.1999969482422, - 315.65008544921875 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 248.40000915527344, - 281.4501037597656, - 301.6000061035156, - 316.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012\u000b6", - "origin": [ - 248.40000915527344, - 294.35009765625 - ], - "bbox": [ - 248.40000915527344, - 287.35009765625, - 255.70001220703125, - 305.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "&%", - "origin": [ - 255.70001220703125, - 294.35009765625 - ], - "bbox": [ - 255.70001220703125, - 281.4501037597656, - 267.20001220703125, - 316.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“è", - "origin": [ - 267.20001220703125, - 294.35009765625 - ], - "bbox": [ - 267.20001220703125, - 287.85009765625, - 275.5, - 306.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001d'", - "origin": [ - 275.5, - 294.35009765625 - ], - "bbox": [ - 275.5, - 281.4501037597656, - 281.5, - 316.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019×", - "origin": [ - 281.5, - 294.35009765625 - ], - "bbox": [ - 281.5, - 287.85009765625, - 290.20001220703125, - 306.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")(#*", - "origin": [ - 290.20001220703125, - 294.35009765625 - ], - "bbox": [ - 290.20001220703125, - 281.4501037597656, - 301.6000061035156, - 316.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.40000915527344, - 281.4501037597656, - 301.6000061035156, - 316.15008544921875 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 304.0, - 280.4501037597656, - 308.79998779296875, - 315.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0015 +", - "origin": [ - 304.0, - 293.35009765625 - ], - "bbox": [ - 304.0, - 280.4501037597656, - 308.79998779296875, - 315.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.0, - 280.4501037597656, - 308.79998779296875, - 315.15008544921875 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 321.20001220703125, - 286.85009765625, - 331.3999938964844, - 305.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21)3", - "origin": [ - 321.20001220703125, - 293.85009765625 - ], - "bbox": [ - 321.20001220703125, - 286.85009765625, - 331.3999938964844, - 305.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.20001220703125, - 286.85009765625, - 331.3999938964844, - 305.2500915527344 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 342.0, - 280.9501037597656, - 346.20001220703125, - 315.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�\n�", - "origin": [ - 342.0, - 293.85009765625 - ], - "bbox": [ - 342.0, - 280.9501037597656, - 346.20001220703125, - 315.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.0, - 280.9501037597656, - 346.20001220703125, - 315.65008544921875 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 350.3999938964844, - 287.35009765625, - 522.2000122070312, - 306.7500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 350.3999938964844, - 294.35009765625 - ], - "bbox": [ - 350.3999938964844, - 287.35009765625, - 350.3999938964844, - 305.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é8ÞG×Qå+ÑÖÒrÕ/×gÓ\u0010ÛcÜu×%á-ÔwÝ?âuãWÔÖÑÖÑw×¢×gä©â8Ò\u001dÛcÔÖÝ?ؗکß", - "origin": [ - 350.3999938964844, - 294.35009765625 - ], - "bbox": [ - 350.3999938964844, - 287.85009765625, - 515.7999877929688, - 306.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-\u0017", - "origin": [ - 515.7999877929688, - 294.35009765625 - ], - "bbox": [ - 515.7999877929688, - 287.85009765625, - 522.2000122070312, - 305.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.3999938964844, - 287.35009765625, - 522.2000122070312, - 306.7500915527344 - ] - } - ] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 232.69998168945312, - 310.9501037597656, - 238.29998779296875, - 345.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0013\u000e", - "origin": [ - 232.69998168945312, - 323.85009765625 - ], - "bbox": [ - 232.69998168945312, - 310.9501037597656, - 238.29998779296875, - 345.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 232.69998168945312, - 310.9501037597656, - 238.29998779296875, - 345.65008544921875 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 251.7999725341797, - 306.2500915527344, - 263.4999694824219, - 340.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "6", - "origin": [ - 251.7999725341797, - 319.15008544921875 - ], - "bbox": [ - 251.7999725341797, - 312.15008544921875, - 251.7999725341797, - 330.5500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0018\u0017", - "origin": [ - 251.7999725341797, - 319.15008544921875 - ], - "bbox": [ - 251.7999725341797, - 306.2500915527344, - 263.4999694824219, - 340.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.7999725341797, - 306.2500915527344, - 263.4999694824219, - 340.9500732421875 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 271.4999694824219, - 310.9501037597656, - 298.29998779296875, - 345.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000b-\f\u0013+.\f\u0013\u0012", - "origin": [ - 271.4999694824219, - 323.85009765625 - ], - "bbox": [ - 271.4999694824219, - 310.9501037597656, - 298.29998779296875, - 345.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.4999694824219, - 310.9501037597656, - 298.29998779296875, - 345.65008544921875 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 332.0, - 311.650146484375, - 335.3999938964844, - 330.0501403808594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 332.0, - 318.650146484375 - ], - "bbox": [ - 332.0, - 311.650146484375, - 335.3999938964844, - 330.0501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.0, - 311.650146484375, - 335.3999938964844, - 330.0501403808594 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 515.0999755859375, - 312.150146484375, - 520.5999755859375, - 331.5501403808594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ð", - "origin": [ - 515.0999755859375, - 319.150146484375 - ], - "bbox": [ - 515.0999755859375, - 312.650146484375, - 515.0999755859375, - 331.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0999755859375, - 319.150146484375 - ], - "bbox": [ - 515.0999755859375, - 312.150146484375, - 520.5999755859375, - 330.5501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.0999755859375, - 312.150146484375, - 520.5999755859375, - 331.5501403808594 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 71.0999755859375, - 337.5501403808594, - 522.2999877929688, - 356.45013427734375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcÜuÝ?âuÛ", - "origin": [ - 71.0999755859375, - 344.0501403808594 - ], - "bbox": [ - 71.0999755859375, - 337.5501403808594, - 103.9999771118164, - 356.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 337.5501403808594, - 103.9999771118164, - 356.45013427734375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕGÜ+ÒrØuç?ÔÖØuç", - "origin": [ - 114.29997253417969, - 344.0501403808594 - ], - "bbox": [ - 114.29997253417969, - 337.5501403808594, - 150.8999786376953, - 356.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.29997253417969, - 337.5501403808594, - 150.8999786376953, - 356.45013427734375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×\u001eØuÝrÛcÒ\u001dÛcÔwÝ?Ø", - "origin": [ - 162.3999786376953, - 344.0501403808594 - ], - "bbox": [ - 162.3999786376953, - 337.5501403808594, - 217.6999969482422, - 356.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.3999786376953, - 337.5501403808594, - 217.6999969482422, - 356.45013427734375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™ÝrÞ¾ÛcÜu×\u001eè+ÔÖÓZÛZÞGÔwÚyâuÛcÔwÝ?Ø", - "origin": [ - 229.8999786376953, - 344.0501403808594 - ], - "bbox": [ - 229.8999786376953, - 337.5501403808594, - 320.70001220703125, - 356.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.8999786376953, - 337.5501403808594, - 320.70001220703125, - 356.45013427734375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=â8Ø+Õ/ÛcÔwÝ?ذé¥à»Ü8×gØu×Qãr×QÞ¾Õ1Ü8ÒrØuç?ÔÖØuçŸã\u0018Ò\u001dÞGÔlÒ\u001dÚ+Ñw×gÓQò", - "origin": [ - 332.39996337890625, - 344.0501403808594 - ], - "bbox": [ - 332.39996337890625, - 337.5501403808594, - 522.2999877929688, - 356.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.39996337890625, - 337.5501403808594, - 522.2999877929688, - 356.45013427734375 - ] - } - ] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 79.0999526977539, - 350.45013427734375, - 449.69989013671875, - 369.3501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÜVâ8ÓQé\u0016Ù�Ý?Ù�×gØ©Ûcâ8ÙÈÔÖÓ\r×gÑlÔÖÙ¥ÔÖØ8Ò\u001dÛZ×gè", - "origin": [ - 79.0999526977539, - 356.95013427734375 - ], - "bbox": [ - 79.0999526977539, - 350.45013427734375, - 219.49996948242188, - 369.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.0999526977539, - 350.45013427734375, - 219.49996948242188, - 369.3501281738281 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è", - "origin": [ - 230.79995727539062, - 356.95013427734375 - ], - "bbox": [ - 230.79995727539062, - 350.45013427734375, - 242.29995727539062, - 369.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.79995727539062, - 350.45013427734375, - 242.29995727539062, - 369.3501281738281 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò", - "origin": [ - 253.699951171875, - 356.95013427734375 - ], - "bbox": [ - 253.699951171875, - 350.45013427734375, - 253.699951171875, - 369.3501281738281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "R1=\u0010\u0013\u001b\u001fI�DY\"$1", - "origin": [ - 253.699951171875, - 356.95013427734375 - ], - "bbox": [ - 253.699951171875, - 350.45013427734375, - 294.39996337890625, - 368.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.699951171875, - 350.45013427734375, - 294.39996337890625, - 369.3501281738281 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001e\u001d\u001b�\u0012^I\u000f\"�\u000ea\u0010A\fW9\u000f\u0010#\u0010\u0013\u000e\u00111\u0013)�\u001e-\u001c%\u0014.\"'&", - "origin": [ - 305.39996337890625, - 356.95013427734375 - ], - "bbox": [ - 305.39996337890625, - 350.45013427734375, - 408.1999206542969, - 368.3501281738281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "–Þc×gÓGâ8ÑwÛcÓQò", - "origin": [ - 408.1999206542969, - 356.95013427734375 - ], - "bbox": [ - 408.1999206542969, - 350.45013427734375, - 449.69989013671875, - 369.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 305.39996337890625, - 350.45013427734375, - 449.69989013671875, - 369.3501281738281 - ] - } - ] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 469.0999755859375, - 350.45013427734375, - 518.7000122070312, - 369.3501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔlØ8ÒrÑÖÑwßré¢à»ÔwÛcÜ", - "origin": [ - 469.0999755859375, - 356.95013427734375 - ], - "bbox": [ - 469.0999755859375, - 350.45013427734375, - 518.7000122070312, - 369.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 469.0999755859375, - 350.45013427734375, - 518.7000122070312, - 369.3501281738281 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 71.0999755859375, - 363.45013427734375, - 154.59999084472656, - 382.3501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×;ÛZÞ1ÒrØ8ÓZæ=ÝrÞGÙ¥Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 71.0999755859375, - 369.95013427734375 - ], - "bbox": [ - 71.0999755859375, - 363.45013427734375, - 154.59999084472656, - 382.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 363.45013427734375, - 154.59999084472656, - 382.3501281738281 - ] - } - ] - }, - { - "number": 99, - "type": 0, - "bbox": [ - 234.7999725341797, - 375.8501281738281, - 237.49996948242188, - 394.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 234.7999725341797, - 382.8501281738281 - ], - "bbox": [ - 234.7999725341797, - 376.3501281738281, - 234.7999725341797, - 394.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 234.7999725341797, - 382.8501281738281 - ], - "bbox": [ - 234.7999725341797, - 375.8501281738281, - 237.49996948242188, - 394.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.7999725341797, - 375.8501281738281, - 237.49996948242188, - 394.2501220703125 - ] - } - ] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 268.2999572753906, - 369.95013427734375, - 279.5999450683594, - 404.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "'\u001d\u001e", - "origin": [ - 268.2999572753906, - 382.8501281738281 - ], - "bbox": [ - 268.2999572753906, - 369.95013427734375, - 274.2999572753906, - 404.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001dï", - "origin": [ - 274.2999572753906, - 382.8501281738281 - ], - "bbox": [ - 274.2999572753906, - 376.3501281738281, - 279.5999450683594, - 395.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 268.2999572753906, - 369.95013427734375, - 279.5999450683594, - 404.6501159667969 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 291.699951171875, - 369.45013427734375, - 305.0999450683594, - 404.1501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 291.699951171875, - 382.3501281738281 - ], - "bbox": [ - 291.699951171875, - 375.3501281738281, - 291.699951171875, - 393.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "10", - "origin": [ - 291.699951171875, - 382.3501281738281 - ], - "bbox": [ - 291.699951171875, - 369.45013427734375, - 305.0999450683594, - 404.1501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 291.699951171875, - 369.45013427734375, - 305.0999450683594, - 404.1501159667969 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 313.89996337890625, - 375.8501281738281, - 316.5999755859375, - 394.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 313.89996337890625, - 382.8501281738281 - ], - "bbox": [ - 313.89996337890625, - 376.3501281738281, - 313.89996337890625, - 394.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 313.89996337890625, - 382.8501281738281 - ], - "bbox": [ - 313.89996337890625, - 375.8501281738281, - 316.5999755859375, - 394.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.89996337890625, - 375.8501281738281, - 316.5999755859375, - 394.2501220703125 - ] - } - ] - }, - { - "number": 106, - "type": 0, - "bbox": [ - 347.3999328613281, - 369.95013427734375, - 358.6999206542969, - 404.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "'\u001d\u001e", - "origin": [ - 347.3999328613281, - 382.8501281738281 - ], - "bbox": [ - 347.3999328613281, - 369.95013427734375, - 353.3999328613281, - 404.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001dï", - "origin": [ - 353.3999328613281, - 382.8501281738281 - ], - "bbox": [ - 353.3999328613281, - 376.3501281738281, - 358.6999206542969, - 395.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.3999328613281, - 369.95013427734375, - 358.6999206542969, - 404.6501159667969 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 108, - "type": 0, - "bbox": [ - 514.8999633789062, - 375.8501281738281, - 520.5999755859375, - 395.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ô", - "origin": [ - 514.8999633789062, - 382.8501281738281 - ], - "bbox": [ - 514.8999633789062, - 376.3501281738281, - 514.8999633789062, - 395.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 514.8999633789062, - 382.8501281738281 - ], - "bbox": [ - 514.8999633789062, - 375.8501281738281, - 520.5999755859375, - 394.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.8999633789062, - 375.8501281738281, - 520.5999755859375, - 395.2501220703125 - ] - } - ] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 71.09994506835938, - 395.7501220703125, - 283.39996337890625, - 414.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u001b×;ÝrÚ8ÛcÒrÔÖØ—ÛcÜ8׳á4ÔwÝ?â8ãVÔÖÑlÑw×»×gäVâ8Ò\u001dÛcÔwÝ?ؖÔlؗÛcÜu×;æ=ÝrÞGÙ", - "origin": [ - 71.09994506835938, - 402.2501220703125 - ], - "bbox": [ - 71.09994506835938, - 395.7501220703125, - 273.7999572753906, - 414.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u000b\u0017", - "origin": [ - 273.7999572753906, - 402.2501220703125 - ], - "bbox": [ - 273.7999572753906, - 395.7501220703125, - 283.39996337890625, - 413.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 395.7501220703125, - 283.39996337890625, - 414.6501159667969 - ] - } - ] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 146.59994506835938, - 420.6501159667969, - 152.09994506835938, - 455.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u000f\u000e", - "origin": [ - 146.59994506835938, - 433.55010986328125 - ], - "bbox": [ - 146.59994506835938, - 420.6501159667969, - 152.09994506835938, - 455.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.59994506835938, - 420.6501159667969, - 152.09994506835938, - 455.35009765625 - ] - } - ] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 175.79994201660156, - 415.4501037597656, - 189.99993896484375, - 450.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 175.79994201660156, - 428.35009765625 - ], - "bbox": [ - 175.79994201660156, - 421.35009765625, - 175.79994201660156, - 439.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20\u001b�\n�", - "origin": [ - 175.79994201660156, - 428.35009765625 - ], - "bbox": [ - 175.79994201660156, - 415.4501037597656, - 189.99993896484375, - 450.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.79994201660156, - 415.4501037597656, - 189.99993896484375, - 450.15008544921875 - ] - } - ] - }, - { - "number": 116, - "type": 0, - "bbox": [ - 230.69993591308594, - 415.9501037597656, - 240.0999298095703, - 450.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "354", - "origin": [ - 230.69993591308594, - 428.85009765625 - ], - "bbox": [ - 230.69993591308594, - 415.9501037597656, - 240.0999298095703, - 450.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.69993591308594, - 415.9501037597656, - 240.0999298095703, - 450.65008544921875 - ] - } - ] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 236.49993896484375, - 416.1501159667969, - 245.69993591308594, - 450.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 236.49993896484375, - 429.05010986328125 - ], - "bbox": [ - 236.49993896484375, - 422.05010986328125, - 236.49993896484375, - 440.4501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "76", - "origin": [ - 236.49993896484375, - 429.05010986328125 - ], - "bbox": [ - 236.49993896484375, - 416.1501159667969, - 245.69993591308594, - 450.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 236.49993896484375, - 416.1501159667969, - 245.69993591308594, - 450.85009765625 - ] - } - ] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 265.99993896484375, - 416.1501159667969, - 275.0999450683594, - 450.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 265.99993896484375, - 429.05010986328125 - ], - "bbox": [ - 265.99993896484375, - 422.05010986328125, - 265.99993896484375, - 440.4501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "98", - "origin": [ - 265.99993896484375, - 429.05010986328125 - ], - "bbox": [ - 265.99993896484375, - 416.1501159667969, - 275.0999450683594, - 450.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 265.99993896484375, - 416.1501159667969, - 275.0999450683594, - 450.85009765625 - ] - } - ] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 282.2999267578125, - 415.55010986328125, - 292.8999328613281, - 450.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "8", - "origin": [ - 282.2999267578125, - 428.4501037597656 - ], - "bbox": [ - 282.2999267578125, - 421.4501037597656, - 282.2999267578125, - 439.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ";:", - "origin": [ - 282.2999267578125, - 428.4501037597656 - ], - "bbox": [ - 282.2999267578125, - 415.55010986328125, - 292.8999328613281, - 450.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.2999267578125, - 415.55010986328125, - 292.8999328613281, - 450.2500915527344 - ] - } - ] - }, - { - "number": 123, - "type": 0, - "bbox": [ - 312.99993896484375, - 415.4501037597656, - 317.2999267578125, - 450.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 312.99993896484375, - 428.35009765625 - ], - "bbox": [ - 312.99993896484375, - 421.35009765625, - 312.99993896484375, - 439.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20", - "origin": [ - 312.99993896484375, - 428.35009765625 - ], - "bbox": [ - 312.99993896484375, - 415.4501037597656, - 317.2999267578125, - 450.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.99993896484375, - 415.4501037597656, - 317.2999267578125, - 450.15008544921875 - ] - } - ] - }, - { - "number": 124, - "type": 0, - "bbox": [ - 322.7999267578125, - 415.9501037597656, - 333.59991455078125, - 450.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 322.7999267578125, - 428.85009765625 - ], - "bbox": [ - 322.7999267578125, - 421.85009765625, - 322.7999267578125, - 440.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": " <\u001d�", - "origin": [ - 322.7999267578125, - 428.85009765625 - ], - "bbox": [ - 322.7999267578125, - 415.9501037597656, - 333.59991455078125, - 450.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 322.7999267578125, - 415.9501037597656, - 333.59991455078125, - 450.65008544921875 - ] - } - ] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 353.49993896484375, - 415.4501037597656, - 367.7999267578125, - 450.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 353.49993896484375, - 428.35009765625 - ], - "bbox": [ - 353.49993896484375, - 421.35009765625, - 353.49993896484375, - 439.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20=�\n�", - "origin": [ - 353.49993896484375, - 428.35009765625 - ], - "bbox": [ - 353.49993896484375, - 415.4501037597656, - 367.7999267578125, - 450.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.49993896484375, - 415.4501037597656, - 367.7999267578125, - 450.15008544921875 - ] - } - ] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 130, - "type": 0, - "bbox": [ - 515.0999145507812, - 421.85009765625, - 520.5999145507812, - 441.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 515.0999145507812, - 428.85009765625 - ], - "bbox": [ - 515.0999145507812, - 422.35009765625, - 515.0999145507812, - 441.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0999145507812, - 428.85009765625 - ], - "bbox": [ - 515.0999145507812, - 421.85009765625, - 520.5999145507812, - 440.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.0999145507812, - 421.85009765625, - 520.5999145507812, - 441.2500915527344 - ] - } - ] - }, - { - "number": 132, - "type": 0, - "bbox": [ - 183.4999237060547, - 445.55010986328125, - 192.5999298095703, - 480.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 183.4999237060547, - 458.4501037597656 - ], - "bbox": [ - 183.4999237060547, - 451.4501037597656, - 183.4999237060547, - 469.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "9>", - "origin": [ - 183.4999237060547, - 458.4501037597656 - ], - "bbox": [ - 183.4999237060547, - 445.55010986328125, - 192.5999298095703, - 480.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 183.4999237060547, - 445.55010986328125, - 192.5999298095703, - 480.2500915527344 - ] - } - ] - }, - { - "number": 133, - "type": 0, - "bbox": [ - 208.89991760253906, - 451.2500915527344, - 211.59991455078125, - 469.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 208.89991760253906, - 458.2500915527344 - ], - "bbox": [ - 208.89991760253906, - 451.7500915527344, - 208.89991760253906, - 469.65008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 208.89991760253906, - 458.2500915527344 - ], - "bbox": [ - 208.89991760253906, - 451.2500915527344, - 211.59991455078125, - 469.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.89991760253906, - 451.2500915527344, - 211.59991455078125, - 469.65008544921875 - ] - } - ] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 262.20001220703125, - 444.8500061035156, - 282.70001220703125, - 479.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "8#9", - "origin": [ - 262.20001220703125, - 457.8500061035156 - ], - "bbox": [ - 262.20001220703125, - 450.8500061035156, - 272.8000183105469, - 469.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.20001220703125, - 450.8500061035156, - 272.8000183105469, - 469.25 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 279.3000183105469, - 457.75 - ], - "bbox": [ - 279.3000183105469, - 450.75, - 279.3000183105469, - 469.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "@?", - "origin": [ - 279.3000183105469, - 457.75 - ], - "bbox": [ - 279.3000183105469, - 444.8500061035156, - 282.70001220703125, - 479.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 279.3000183105469, - 444.8500061035156, - 282.70001220703125, - 479.54998779296875 - ] - } - ] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 313.8999938964844, - 451.75, - 322.5999755859375, - 470.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™ÝrÞ", - "origin": [ - 313.8999938964844, - 458.25 - ], - "bbox": [ - 313.8999938964844, - 451.75, - 322.5999755859375, - 470.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.8999938964844, - 451.75, - 322.5999755859375, - 470.6499938964844 - ] - } - ] - }, - { - "number": 147, - "type": 0, - "bbox": [ - 363.6000061035156, - 444.8500061035156, - 367.8999938964844, - 479.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 363.6000061035156, - 457.75 - ], - "bbox": [ - 363.6000061035156, - 450.75, - 363.6000061035156, - 469.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20", - "origin": [ - 363.6000061035156, - 457.75 - ], - "bbox": [ - 363.6000061035156, - 444.8500061035156, - 367.8999938964844, - 479.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.6000061035156, - 444.8500061035156, - 367.8999938964844, - 479.54998779296875 - ] - } - ] - }, - { - "number": 148, - "type": 0, - "bbox": [ - 515.0999755859375, - 451.25, - 520.5999755859375, - 470.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ø", - "origin": [ - 515.0999755859375, - 458.25 - ], - "bbox": [ - 515.0999755859375, - 451.75, - 515.0999755859375, - 470.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0999755859375, - 458.25 - ], - "bbox": [ - 515.0999755859375, - 451.25, - 520.5999755859375, - 469.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.0999755859375, - 451.25, - 520.5999755859375, - 470.6499938964844 - ] - } - ] - }, - { - "number": 149, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 151, - "type": 0, - "bbox": [ - 184.4999542236328, - 475.8500061035156, - 188.79995727539062, - 510.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 184.4999542236328, - 488.75 - ], - "bbox": [ - 184.4999542236328, - 481.75, - 184.4999542236328, - 500.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20", - "origin": [ - 184.4999542236328, - 488.75 - ], - "bbox": [ - 184.4999542236328, - 475.8500061035156, - 188.79995727539062, - 510.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 184.4999542236328, - 475.8500061035156, - 188.79995727539062, - 510.54998779296875 - ] - } - ] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 208.89996337890625, - 482.25, - 211.59996032714844, - 500.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 208.89996337890625, - 489.25 - ], - "bbox": [ - 208.89996337890625, - 482.75, - 208.89996337890625, - 500.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 208.89996337890625, - 489.25 - ], - "bbox": [ - 208.89996337890625, - 482.25, - 211.59996032714844, - 500.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.89996337890625, - 482.25, - 211.59996032714844, - 500.6499938964844 - ] - } - ] - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 161, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 165, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 168, - "type": 0, - "bbox": [ - 367.8000183105469, - 475.8500061035156, - 371.3000183105469, - 510.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 367.8000183105469, - 488.75 - ], - "bbox": [ - 367.8000183105469, - 481.75, - 367.8000183105469, - 500.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "A0", - "origin": [ - 367.8000183105469, - 488.75 - ], - "bbox": [ - 367.8000183105469, - 475.8500061035156, - 371.3000183105469, - 510.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.8000183105469, - 475.8500061035156, - 371.3000183105469, - 510.54998779296875 - ] - } - ] - }, - { - "number": 169, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 171, - "type": 0, - "bbox": [ - 417.5, - 475.8500061035156, - 421.0, - 510.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 417.5, - 488.75 - ], - "bbox": [ - 417.5, - 481.75, - 417.5, - 500.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "A0", - "origin": [ - 417.5, - 488.75 - ], - "bbox": [ - 417.5, - 475.8500061035156, - 421.0, - 510.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 417.5, - 475.8500061035156, - 421.0, - 510.54998779296875 - ] - } - ] - }, - { - "number": 173, - "type": 0, - "bbox": [ - 439.8999938964844, - 476.3500061035156, - 450.6000061035156, - 511.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 439.8999938964844, - 489.25 - ], - "bbox": [ - 439.8999938964844, - 482.25, - 439.8999938964844, - 500.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "CB", - "origin": [ - 439.8999938964844, - 489.25 - ], - "bbox": [ - 439.8999938964844, - 476.3500061035156, - 450.6000061035156, - 511.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 439.8999938964844, - 476.3500061035156, - 450.6000061035156, - 511.04998779296875 - ] - } - ] - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 176, - "type": 0, - "bbox": [ - 71.4000244140625, - 510.6500244140625, - 240.10003662109375, - 529.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëV×Qãr×QÞ1ÒrѬÕ/Ý?Ù¥Ù�×gØ©ÛcÓ»Ò\u001dÞc×\u0019ÔÖØ\rÝrÞGèu×QÞ»Ü8×QÞc×", - "origin": [ - 71.4000244140625, - 517.1500244140625 - ], - "bbox": [ - 71.4000244140625, - 510.6500244140625, - 234.70004272460938, - 529.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%\u0017", - "origin": [ - 234.70004272460938, - 517.1500244140625 - ], - "bbox": [ - 234.70004272460938, - 510.6500244140625, - 240.10003662109375, - 528.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.4000244140625, - 510.6500244140625, - 240.10003662109375, - 529.550048828125 - ] - } - ] - }, - { - "number": 179, - "type": 0, - "bbox": [ - 100.9000244140625, - 529.5499877929688, - 520.2999877929688, - 548.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×¥å8Þc×gÓc×gتÛ%ÞG×Qæ™ÝrÞGÙ&â8ÑÖÒ\u001dÛcÔÖÝ?Ø�ÝræNÕQÑÖÒrÓcÓcÔÖÕQÒrѽèußVØ+ÒrÙ¥ÔÖÕQÓ;ÔÖØ�åyÜ8ÒrÓZ× ÓZåyÒrÕ/× ÕQÒrØ", - "origin": [ - 100.9000244140625, - 536.0499877929688 - ], - "bbox": [ - 100.9000244140625, - 529.5499877929688, - 412.4000244140625, - 548.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.9000244140625, - 529.5499877929688, - 412.4000244140625, - 548.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú× ÕQÒ\u001dÞcÞ1Ôw×gè�Ý?âuÛ%Þ1Ò\u001dÛcÜu×QÞ", - "origin": [ - 422.7000427246094, - 536.0499877929688 - ], - "bbox": [ - 422.7000427246094, - 529.5499877929688, - 520.2999877929688, - 548.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.7000427246094, - 529.5499877929688, - 520.2999877929688, - 548.4500122070312 - ] - } - ] - }, - { - "number": 180, - "type": 0, - "bbox": [ - 92.9000244140625, - 536.0499267578125, - 520.9000244140625, - 570.7499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔlØ8èu×Qå×gØ8èu×gØ©ÛcÑwߖÝræ\u0010ÛcÜu× ØVâ8Ù\u0019ڐ×QÞ%ÝræNèu×QçrÞc×Q×gÓ%Ýræ\u0010æ=Þc×Q×gèuÝ?Ù�ÒrØ+è7ÔÖÓ%Ò\u001då+å+ÑÖÔÖÕQÒ\u001dÚ+ÑÖ×\u0019ÛZÝ", - "origin": [ - 92.9000244140625, - 548.949951171875 - ], - "bbox": [ - 92.9000244140625, - 542.449951171875, - 434.0999755859375, - 561.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.9000244140625, - 542.449951171875, - 434.0999755859375, - 561.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥Ò\u001dÛZÞGÔ", - "origin": [ - 444.10003662109375, - 548.949951171875 - ], - "bbox": [ - 444.10003662109375, - 542.449951171875, - 467.10003662109375, - 561.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "+�", - "origin": [ - 467.10003662109375, - 548.949951171875 - ], - "bbox": [ - 467.10003662109375, - 542.449951171875, - 470.0000305175781, - 560.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u000fÝrÞ", - "origin": [ - 470.0000305175781, - 548.949951171875 - ], - "bbox": [ - 470.0000305175781, - 542.449951171875, - 485.5000305175781, - 561.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "FE", - "origin": [ - 485.5000305175781, - 548.949951171875 - ], - "bbox": [ - 485.5000305175781, - 536.0499267578125, - 494.4000244140625, - 570.7499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016Þ1ÒrÓcÓ", - "origin": [ - 494.4000244140625, - 548.949951171875 - ], - "bbox": [ - 494.4000244140625, - 542.449951171875, - 516.800048828125, - 561.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "A�", - "origin": [ - 516.800048828125, - 548.949951171875 - ], - "bbox": [ - 516.800048828125, - 542.449951171875, - 520.9000244140625, - 560.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.10003662109375, - 536.0499267578125, - 520.9000244140625, - 570.7499389648438 - ] - } - ] - }, - { - "number": 181, - "type": 0, - "bbox": [ - 92.9000244140625, - 555.449951171875, - 231.6999969482422, - 574.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù ÒrØ8ؗã\u001dÒrÑÖâu×gè\rã\u001dÒ\u001dÞGÔÖÒ\u001dÚ+Ñw×gÓNÒrÓ»à\"×gÑlÑ", - "origin": [ - 92.9000244140625, - 561.949951171875 - ], - "bbox": [ - 92.9000244140625, - 555.449951171875, - 231.6999969482422, - 574.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.9000244140625, - 555.449951171875, - 231.6999969482422, - 574.3499755859375 - ] - } - ] - }, - { - "number": 183, - "type": 0, - "bbox": [ - 241.40003967285156, - 549.0499267578125, - 522.1998901367188, - 583.7499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZ×Q×ré8æ=ÝrÞ^×", - "origin": [ - 241.40003967285156, - 561.949951171875 - ], - "bbox": [ - 241.40003967285156, - 555.449951171875, - 278.6000061035156, - 574.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 278.6000061035156, - 561.949951171875 - ], - "bbox": [ - 278.6000061035156, - 555.449951171875, - 283.3000183105469, - 573.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ�å+Ñw×ré+ý»×Qæ=Ógò4ížøWéyïrð\u0018ñJò", - "origin": [ - 283.3000183105469, - 561.949951171875 - ], - "bbox": [ - 283.3000183105469, - 555.449951171875, - 381.29998779296875, - 574.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "GE", - "origin": [ - 381.29998779296875, - 561.949951171875 - ], - "bbox": [ - 381.29998779296875, - 549.0499267578125, - 388.8999938964844, - 583.7499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";Òrâuçr×%ÛcÜu×QÝrÞGÔÖ×gÓNÝrÞgé8çr×gØu×QÞ1ÒrÑÖÑwßré", - "origin": [ - 388.8999938964844, - 561.949951171875 - ], - "bbox": [ - 388.8999938964844, - 555.449951171875, - 522.1998901367188, - 574.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.40003967285156, - 549.0499267578125, - 522.1998901367188, - 583.7499389648438 - ] - } - ] - }, - { - "number": 184, - "type": 0, - "bbox": [ - 92.80003356933594, - 568.3499755859375, - 356.5999755859375, - 587.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×QÝrÞGÔw×gÓ^à¢ÔwÛcܗÕ/Ý?Ø8ÓZÛZÞGÒrÔlتÛcÓ^Ü+Ògãr׳ÛZÝ Ú6ד×", - "origin": [ - 92.80003356933594, - 574.8499755859375 - ], - "bbox": [ - 92.80003356933594, - 568.3499755859375, - 267.3000183105469, - 587.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 267.3000183105469, - 574.8499755859375 - ], - "bbox": [ - 267.3000183105469, - 568.3499755859375, - 272.0000305175781, - 586.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ¥ÔÖØu×gè!ÕQÒ\u001dÞc×Qæ=â+ÑÖÑwßrò", - "origin": [ - 272.0000305175781, - 574.8499755859375 - ], - "bbox": [ - 272.0000305175781, - 568.3499755859375, - 356.5999755859375, - 587.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.80003356933594, - 568.3499755859375, - 356.5999755859375, - 587.25 - ] - } - ] - }, - { - "number": 185, - "type": 0, - "bbox": [ - 82.20003509521484, - 593.6499633789062, - 93.00003814697266, - 628.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "DIH", - "origin": [ - 82.20003509521484, - 606.5499877929688 - ], - "bbox": [ - 82.20003509521484, - 593.6499633789062, - 93.00003814697266, - 628.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20003509521484, - 593.6499633789062, - 93.00003814697266, - 628.3499755859375 - ] - } - ] - }, - { - "number": 186, - "type": 0, - "bbox": [ - 102.80003356933594, - 590.7499389648438, - 219.40000915527344, - 625.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÓZÛ\u001fÔÖÙ�åÝrÞcÛcÒrØ©ÛcÑwßré½ÛcÜu×", - "origin": [ - 102.80003356933594, - 603.6499633789062 - ], - "bbox": [ - 102.80003356933594, - 597.1499633789062, - 196.00001525878906, - 616.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\"!", - "origin": [ - 196.00001525878906, - 603.6499633789062 - ], - "bbox": [ - 196.00001525878906, - 590.7499389648438, - 205.70001220703125, - 625.449951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 205.70001220703125, - 603.6499633789062 - ], - "bbox": [ - 205.70001220703125, - 597.1499633789062, - 219.40000915527344, - 616.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.80003356933594, - 590.7499389648438, - 219.40000915527344, - 625.449951171875 - ] - } - ] - }, - { - "number": 188, - "type": 0, - "bbox": [ - 228.00003051757812, - 590.7499389648438, - 519.0000610351562, - 625.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 228.00003051757812, - 603.6499633789062 - ], - "bbox": [ - 228.00003051757812, - 597.1499633789062, - 228.00003051757812, - 616.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 228.00003051757812, - 603.6499633789062 - ], - "bbox": [ - 228.00003051757812, - 596.6499633789062, - 233.50003051757812, - 615.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥ÕQÑwÝ?ÓZ×gÑwß", - "origin": [ - 233.50003051757812, - 603.6499633789062 - ], - "bbox": [ - 233.50003051757812, - 597.1499633789062, - 268.0000305175781, - 616.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.00003051757812, - 596.6499633789062, - 268.0000305175781, - 616.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÓZ×gÙ\u0019Ú+Ñw×gÓ\u0014ÛcÜ8×", - "origin": [ - 278.60003662109375, - 603.6499633789062 - ], - "bbox": [ - 278.60003662109375, - 597.1499633789062, - 339.0000305175781, - 616.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "a6", - "origin": [ - 339.0000305175781, - 603.6499633789062 - ], - "bbox": [ - 339.0000305175781, - 597.1499633789062, - 349.3000183105469, - 615.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.60003662109375, - 597.1499633789062, - 349.3000183105469, - 616.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010\u0013\u001e", - "origin": [ - 354.5000305175781, - 603.6499633789062 - ], - "bbox": [ - 354.5000305175781, - 597.1499633789062, - 359.8000183105469, - 615.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "KJ", - "origin": [ - 359.8000183105469, - 603.6499633789062 - ], - "bbox": [ - 359.8000183105469, - 590.7499389648438, - 367.6000061035156, - 625.449951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.5000305175781, - 590.7499389648438, - 367.6000061035156, - 625.449951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"\u0018\u001b�\u0012\\\\u001c%\u001e\u001d\u001e", - "origin": [ - 376.3000183105469, - 603.6499633789062 - ], - "bbox": [ - 376.3000183105469, - 597.1499633789062, - 407.5, - 615.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.3000183105469, - 597.1499633789062, - 407.5, - 615.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"3S\u0018\u001b\u001d\u001c%\u0014 )>\u0010\u0013\u001e", - "origin": [ - 418.9000244140625, - 603.6499633789062 - ], - "bbox": [ - 418.9000244140625, - 597.1499633789062, - 452.0, - 615.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "7æ=ÝrÞ Ò", - "origin": [ - 452.0, - 603.6499633789062 - ], - "bbox": [ - 452.0, - 597.1499633789062, - 480.3999938964844, - 616.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 418.9000244140625, - 597.1499633789062, - 480.3999938964844, - 616.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8×gØ8ÓcÔwÛ¯ß", - "origin": [ - 490.70001220703125, - 603.6499633789062 - ], - "bbox": [ - 490.70001220703125, - 597.1499633789062, - 519.0000610351562, - 616.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 490.70001220703125, - 597.1499633789062, - 519.0000610351562, - 616.0499877929688 - ] - } - ] - }, - { - "number": 189, - "type": 0, - "bbox": [ - 92.80001831054688, - 611.449951171875, - 128.80001831054688, - 630.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýrå×QÞGÒ\u001dÛZÝrÞ", - "origin": [ - 92.80001831054688, - 617.949951171875 - ], - "bbox": [ - 92.80001831054688, - 611.449951171875, - 128.80001831054688, - 630.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.80001831054688, - 611.449951171875, - 128.80001831054688, - 630.3499755859375 - ] - } - ] - }, - { - "number": 190, - "type": 0, - "bbox": [ - 144.6000213623047, - 604.5499267578125, - 148.00001525878906, - 639.2499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 144.6000213623047, - 617.449951171875 - ], - "bbox": [ - 144.6000213623047, - 610.449951171875, - 144.6000213623047, - 628.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "@�", - "origin": [ - 144.6000213623047, - 617.449951171875 - ], - "bbox": [ - 144.6000213623047, - 604.5499267578125, - 148.00001525878906, - 639.2499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 144.6000213623047, - 604.5499267578125, - 148.00001525878906, - 639.2499389648438 - ] - } - ] - }, - { - "number": 191, - "type": 0, - "bbox": [ - 152.30001831054688, - 605.0499267578125, - 221.2000274658203, - 639.7499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 152.30001831054688, - 617.949951171875 - ], - "bbox": [ - 152.30001831054688, - 610.949951171875, - 152.30001831054688, - 629.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é4Õ/Ý?Ø8ÓGÔÖèu×QÞGÔÖØ8ç", - "origin": [ - 152.30001831054688, - 617.949951171875 - ], - "bbox": [ - 152.30001831054688, - 611.449951171875, - 211.80003356933594, - 630.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "5�", - "origin": [ - 211.80003356933594, - 617.949951171875 - ], - "bbox": [ - 211.80003356933594, - 605.0499267578125, - 221.2000274658203, - 639.7499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.30001831054688, - 605.0499267578125, - 221.2000274658203, - 639.7499389648438 - ] - } - ] - }, - { - "number": 194, - "type": 0, - "bbox": [ - 241.00001525878906, - 604.5499267578125, - 255.30001831054688, - 639.2499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 241.00001525878906, - 617.449951171875 - ], - "bbox": [ - 241.00001525878906, - 610.449951171875, - 241.00001525878906, - 628.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20=�\n�", - "origin": [ - 241.00001525878906, - 617.449951171875 - ], - "bbox": [ - 241.00001525878906, - 604.5499267578125, - 255.30001831054688, - 639.2499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.00001525878906, - 604.5499267578125, - 255.30001831054688, - 639.2499389648438 - ] - } - ] - }, - { - "number": 195, - "type": 0, - "bbox": [ - 259.6000061035156, - 610.949951171875, - 374.5999755859375, - 630.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 259.6000061035156, - 617.949951171875 - ], - "bbox": [ - 259.6000061035156, - 610.949951171875, - 259.6000061035156, - 629.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¢ÒrÓ%ÔwÛcӓ٥Ò\u001dÛZÞGÔ", - "origin": [ - 259.6000061035156, - 617.949951171875 - ], - "bbox": [ - 259.6000061035156, - 611.449951171875, - 320.1999816894531, - 630.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "+�", - "origin": [ - 320.1999816894531, - 617.949951171875 - ], - "bbox": [ - 320.1999816894531, - 611.449951171875, - 323.0999755859375, - 629.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 259.6000061035156, - 610.949951171875, - 323.0999755859375, - 630.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÑw×gÙ�×gØ©ÛcÓQò", - "origin": [ - 333.1000061035156, - 617.949951171875 - ], - "bbox": [ - 333.1000061035156, - 611.449951171875, - 374.5999755859375, - 630.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.1000061035156, - 611.449951171875, - 374.5999755859375, - 630.3499755859375 - ] - } - ] - }, - { - "number": 197, - "type": 0, - "bbox": [ - 393.4000244140625, - 611.449951171875, - 519.7999877929688, - 630.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×¥Òrâ8ÛZÝ?Ù¥Ò\u001dÛcÔÖÕQÒrÑÖÑwßµÞc×gÕ/ÝTãr×QÞ\u0019ÛcÜu×", - "origin": [ - 393.4000244140625, - 617.949951171875 - ], - "bbox": [ - 393.4000244140625, - 611.449951171875, - 519.7999877929688, - 630.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 393.4000244140625, - 611.449951171875, - 519.7999877929688, - 630.3499755859375 - ] - } - ] - }, - { - "number": 198, - "type": 0, - "bbox": [ - 92.9000244140625, - 619.1499633789062, - 201.70001220703125, - 653.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê\u0016ÒrÙ¥ÔÖÑÖÛZÝ?Ø8ÔÖÒrØ&Ýrå×QÞGÒ\u001dÛZÝrÞ", - "origin": [ - 92.9000244140625, - 632.0499877929688 - ], - "bbox": [ - 92.9000244140625, - 625.5499877929688, - 190.90000915527344, - 644.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "I4", - "origin": [ - 190.90000915527344, - 632.0499877929688 - ], - "bbox": [ - 190.90000915527344, - 619.1499633789062, - 201.70001220703125, - 653.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.9000244140625, - 619.1499633789062, - 201.70001220703125, - 653.8499755859375 - ] - } - ] - }, - { - "number": 200, - "type": 0, - "bbox": [ - 210.80003356933594, - 619.1499633789062, - 397.9000244140625, - 653.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÑÖÒ\u001dÛZ×gè\u0014ÛZݓÛcÜu×Nê\u0016ÒrÙ¥ÔÖÑwÛZÝ?Ø+ÔÖÒrØ&æ=â8Ø+Õ/ÛcÔwÝ?ذé", - "origin": [ - 210.80003356933594, - 632.0499877929688 - ], - "bbox": [ - 210.80003356933594, - 625.5499877929688, - 378.800048828125, - 644.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "L!", - "origin": [ - 378.800048828125, - 632.0499877929688 - ], - "bbox": [ - 378.800048828125, - 619.1499633789062, - 384.2000427246094, - 653.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 384.2000427246094, - 632.0499877929688 - ], - "bbox": [ - 384.2000427246094, - 625.5499877929688, - 397.9000244140625, - 644.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 210.80003356933594, - 619.1499633789062, - 397.9000244140625, - 653.8499755859375 - ] - } - ] - }, - { - "number": 202, - "type": 0, - "bbox": [ - 407.0000305175781, - 625.0499877929688, - 522.1000366210938, - 644.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î", - "origin": [ - 407.0000305175781, - 632.0499877929688 - ], - "bbox": [ - 407.0000305175781, - 625.5499877929688, - 407.0000305175781, - 644.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ":\u0012", - "origin": [ - 407.0000305175781, - 632.0499877929688 - ], - "bbox": [ - 407.0000305175781, - 625.0499877929688, - 412.0000305175781, - 643.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1éªÒrÓ¡ÔÖØ\u0014äVâ8ÒrتÛcâ+Ù", - "origin": [ - 412.0000305175781, - 632.0499877929688 - ], - "bbox": [ - 412.0000305175781, - 625.5499877929688, - 480.10003662109375, - 644.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 407.0000305175781, - 625.0499877929688, - 480.10003662109375, - 644.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×QÝrÞcßrò", - "origin": [ - 491.800048828125, - 632.0499877929688 - ], - "bbox": [ - 491.800048828125, - 625.5499877929688, - 522.1000366210938, - 644.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 491.800048828125, - 625.5499877929688, - 522.1000366210938, - 644.4500122070312 - ] - } - ] - }, - { - "number": 203, - "type": 0, - "bbox": [ - 92.90005493164062, - 633.1499633789062, - 378.60009765625, - 667.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢ÝTà\u001b×Qãr×QÞgé4Òrص×gÓcÓZ×gØ©ÛcÔÖÒrÑBè8Ô", - "origin": [ - 92.90005493164062, - 646.0499877929688 - ], - "bbox": [ - 92.90005493164062, - 639.5499877929688, - 205.50003051757812, - 658.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.90005493164062, - 639.5499877929688, - 205.50003051757812, - 658.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 208.40005493164062, - 646.0499877929688 - ], - "bbox": [ - 208.40005493164062, - 639.0499877929688, - 208.40005493164062, - 657.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×QÞc×gØ8Õ/×&Õ/Ý?Ø8ÓcÔÖÓZÛcÓ\u0016ÔÖØ!ÛcÜu×\u0019ÔÖØ©ÛZ×QÞGÒrÕ/ÛcÔwÝ?Ø", - "origin": [ - 208.40005493164062, - 646.0499877929688 - ], - "bbox": [ - 208.40005493164062, - 639.5499877929688, - 365.90008544921875, - 658.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u00114", - "origin": [ - 365.90008544921875, - 646.0499877929688 - ], - "bbox": [ - 365.90008544921875, - 633.1499633789062, - 378.60009765625, - 667.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.40005493164062, - 633.1499633789062, - 378.60009765625, - 667.8499755859375 - ] - } - ] - }, - { - "number": 205, - "type": 0, - "bbox": [ - 386.50006103515625, - 633.1499633789062, - 522.0999145507812, - 667.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×QÛsà\u001b×Q×gØ", - "origin": [ - 386.50006103515625, - 646.0499877929688 - ], - "bbox": [ - 386.50006103515625, - 639.5499877929688, - 418.9000244140625, - 658.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "?I\u0018\u000eA\u001c", - "origin": [ - 418.9000244140625, - 646.0499877929688 - ], - "bbox": [ - 418.9000244140625, - 639.5499877929688, - 438.6000061035156, - 657.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "L�", - "origin": [ - 438.6000061035156, - 646.0499877929688 - ], - "bbox": [ - 438.6000061035156, - 633.1499633789062, - 444.0, - 667.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½ÒrØ8è", - "origin": [ - 444.0, - 646.0499877929688 - ], - "bbox": [ - 444.0, - 639.5499877929688, - 462.8999938964844, - 658.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "-M", - "origin": [ - 462.8999938964844, - 646.0499877929688 - ], - "bbox": [ - 462.8999938964844, - 633.1499633789062, - 473.29998779296875, - 667.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%\"\u0018\u0014", - "origin": [ - 473.29998779296875, - 646.0499877929688 - ], - "bbox": [ - 473.29998779296875, - 639.5499877929688, - 483.4999694824219, - 657.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "A�", - "origin": [ - 483.4999694824219, - 646.0499877929688 - ], - "bbox": [ - 483.4999694824219, - 633.1499633789062, - 486.9999694824219, - 667.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "­ÓcÛcÒ\u001dÛZ×gÓQò", - "origin": [ - 486.9999694824219, - 646.0499877929688 - ], - "bbox": [ - 486.9999694824219, - 639.5499877929688, - 522.0999145507812, - 658.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.50006103515625, - 633.1499633789062, - 522.0999145507812, - 667.8499755859375 - ] - } - ] - }, - { - "number": 207, - "type": 0, - "bbox": [ - 100.90005493164062, - 646.1499633789062, - 419.1001281738281, - 680.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×%ê¢ÔlÑwڐ×QÞcÛNÓZå+ÒrÕ/׳ÒrØ8è—ÔÖÛcÓ^è8â8ÒrѰÜu×QÞG×%Ò\u001dÞc׳Õ/Ý?âuå+ÑÖ×gè\rکߗÒ", - "origin": [ - 100.90005493164062, - 659.0499877929688 - ], - "bbox": [ - 100.90005493164062, - 652.5499877929688, - 339.9001159667969, - 671.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001a&\u000f\u001bH4b\"\u0018\u000eA\u0010'4b\"�\u000e\u0011\u001c%\u0014\u0016\u0010\u0013\u000e", - "origin": [ - 339.9001159667969, - 659.0499877929688 - ], - "bbox": [ - 339.9001159667969, - 652.5499877929688, - 407.70013427734375, - 670.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eò", - "origin": [ - 407.70013427734375, - 659.0499877929688 - ], - "bbox": [ - 407.70013427734375, - 652.5499877929688, - 412.3001403808594, - 671.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�N", - "origin": [ - 412.3001403808594, - 659.0499877929688 - ], - "bbox": [ - 412.3001403808594, - 646.1499633789062, - 419.1001281738281, - 680.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.90005493164062, - 646.1499633789062, - 419.1001281738281, - 680.8499755859375 - ] - } - ] - }, - { - "number": 209, - "type": 0, - "bbox": [ - 101.10005187988281, - 674.949951171875, - 193.60003662109375, - 709.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑwÛZ×QÞGØ+Ò\u001dÛcÔwãr×gÑwßré8ÛcÜu×", - "origin": [ - 101.10005187988281, - 687.8499755859375 - ], - "bbox": [ - 101.10005187988281, - 681.3499755859375, - 171.40003967285156, - 700.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "O!", - "origin": [ - 171.40003967285156, - 687.8499755859375 - ], - "bbox": [ - 171.40003967285156, - 674.949951171875, - 179.90003967285156, - 709.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 179.90003967285156, - 687.8499755859375 - ], - "bbox": [ - 179.90003967285156, - 681.3499755859375, - 193.60003662109375, - 700.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.10005187988281, - 674.949951171875, - 193.60003662109375, - 709.6499633789062 - ] - } - ] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 202.20005798339844, - 674.949951171875, - 496.1000061035156, - 709.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 202.20005798339844, - 687.8499755859375 - ], - "bbox": [ - 202.20005798339844, - 681.3499755859375, - 202.20005798339844, - 700.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 202.20005798339844, - 687.8499755859375 - ], - "bbox": [ - 202.20005798339844, - 680.8499755859375, - 207.70005798339844, - 699.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "^Ù¥Ôwç?Ü©Û\u0010Ú6×;ÞG×gÒrè–ÒrÓNÛcÜu×", - "origin": [ - 207.70005798339844, - 687.8499755859375 - ], - "bbox": [ - 207.70005798339844, - 681.3499755859375, - 309.3000183105469, - 700.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "9P", - "origin": [ - 309.3000183105469, - 687.8499755859375 - ], - "bbox": [ - 309.3000183105469, - 674.949951171875, - 318.4000244140625, - 709.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-9�;=\u000e", - "origin": [ - 318.4000244140625, - 687.8499755859375 - ], - "bbox": [ - 318.4000244140625, - 681.3499755859375, - 335.10003662109375, - 699.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "RQ", - "origin": [ - 335.10003662109375, - 687.8499755859375 - ], - "bbox": [ - 335.10003662109375, - 674.949951171875, - 341.7000427246094, - 709.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.20005798339844, - 674.949951171875, - 341.7000427246094, - 709.6499633789062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010,1\u0013)7\u001eG*G\"\u0018\u000eO\"3S\u0018\u001b\u001d\u001c%\u0014 )>\u0010\u0013\u001e", - "origin": [ - 339.9000549316406, - 687.8499755859375 - ], - "bbox": [ - 339.9000549316406, - 681.3499755859375, - 412.3000183105469, - 699.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " æ=ÝrÞ^Ûsà\u001bÝ ÔÖè8×gتÛcÔÖÕQÒrÑ", - "origin": [ - 412.3000183105469, - 687.8499755859375 - ], - "bbox": [ - 412.3000183105469, - 681.3499755859375, - 496.1000061035156, - 700.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 339.9000549316406, - 681.3499755859375, - 496.1000061035156, - 700.25 - ] - } - ] - }, - { - "number": 213, - "type": 0, - "bbox": [ - 506.9000549316406, - 681.3499755859375, - 520.300048828125, - 700.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Óc×QÛcÓ", - "origin": [ - 506.9000549316406, - 687.8499755859375 - ], - "bbox": [ - 506.9000549316406, - 681.3499755859375, - 520.300048828125, - 700.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 506.9000549316406, - 681.3499755859375, - 520.300048828125, - 700.25 - ] - } - ] - }, - { - "number": 214, - "type": 0, - "bbox": [ - 92.800048828125, - 689.25, - 461.3000793457031, - 723.9500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ", - "origin": [ - 92.800048828125, - 701.9500122070312 - ], - "bbox": [ - 92.800048828125, - 695.4500122070312, - 98.2000503540039, - 714.3500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?\u0012", - "origin": [ - 98.2000503540039, - 701.9500122070312 - ], - "bbox": [ - 98.2000503540039, - 694.9500122070312, - 102.7000503540039, - 713.3500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥èu×QçrÞc×Q×gӜÝræ“æ™Þc×Q×gè8Ý?ٗò\u001eê¢ÝTà\u001b×Qãr×QÞgé^ÛcÜu×gÔÖÞ¥Þc×gÓZå×gÕ/ÛcÔwãr×!ê\u0016ÒrÙ¥ÔÖÑÖÛZÝ?ØÁÝrå×QÞGÒ\u001dÛZÝrÞGÓQé", - "origin": [ - 102.7000503540039, - 701.9500122070312 - ], - "bbox": [ - 102.7000503540039, - 695.4500122070312, - 437.20001220703125, - 714.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.800048828125, - 694.9500122070312, - 437.20001220703125, - 714.3500366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 445.00006103515625, - 702.1500244140625 - ], - "bbox": [ - 445.00006103515625, - 695.1500244140625, - 445.00006103515625, - 713.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "76TS", - "origin": [ - 445.00006103515625, - 702.1500244140625 - ], - "bbox": [ - 445.00006103515625, - 689.25, - 461.3000793457031, - 723.9500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.00006103515625, - 689.25, - 461.3000793457031, - 723.9500122070312 - ] - } - ] - }, - { - "number": 215, - "type": 0, - "bbox": [ - 468.10003662109375, - 695.4500122070312, - 519.8001098632812, - 714.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "éNÕ/Ý?تÛZÞGÔÖÚ+âuÛZ×", - "origin": [ - 468.10003662109375, - 701.9500122070312 - ], - "bbox": [ - 468.10003662109375, - 695.4500122070312, - 519.8001098632812, - 714.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 468.10003662109375, - 695.4500122070312, - 519.8001098632812, - 714.3500366210938 - ] - } - ] - }, - { - "number": 216, - "type": 0, - "bbox": [ - 92.80001831054688, - 708.3500366210938, - 520.4000854492188, - 727.2500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à¢ÔwÛcÜ\u001fÝrå8åÝ?ÓcÔwÛZ×;ÓcÔwç?ذéWà»Ü+ÔÖÕGÜ\rÙ&â8ÓZÛ\u0010ڐ×\u0016ÛZÞ1ÒrÕ/×gè—ÛZÝ�ÛcÜu×;ÕQÑÖÒrÓcÓcÔlÕQÒrѰÓZßVÙ¥å+Ñw×gÕ/ÛcÔÖÕ\u0016ÓZßWÙ¥Ù�×QÛZÞcßrò\u001bëuÔÖØ8Õ/×\u0016ÛcÜu×gÔwÞ", - "origin": [ - 92.80001831054688, - 714.8500366210938 - ], - "bbox": [ - 92.80001831054688, - 708.3500366210938, - 520.4000854492188, - 727.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.80001831054688, - 708.3500366210938, - 520.4000854492188, - 727.2500610351562 - ] - } - ] - }, - { - "number": 218, - "type": 0, - "bbox": [ - 80.30001831054688, - 730.9500122070312, - 86.80001831054688, - 749.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 80.30001831054688, - 737.4500122070312 - ], - "bbox": [ - 80.30001831054688, - 730.9500122070312, - 86.80001831054688, - 749.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.30001831054688, - 730.9500122070312, - 86.80001831054688, - 749.8500366210938 - ] - } - ] - }, - { - "number": 219, - "type": 0, - "bbox": [ - 92.00001525878906, - 731.1500244140625, - 274.8000183105469, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX¢XI•aCrM]FJReCrM¯FsEGHJR1F¢ALX¢RG ½E\u0014h/M]FI XICrMPYPAž¤\u0018Y% ºR1FJK“`°‘", - "origin": [ - 92.00001525878906, - 737.6500244140625 - ], - "bbox": [ - 92.00001525878906, - 731.1500244140625, - 274.8000183105469, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.00001525878906, - 731.1500244140625, - 274.8000183105469, - 750.050048828125 - ] - } - ] - }, - { - "number": 221, - "type": 0, - "bbox": [ - 286.6000061035156, - 731.1500244140625, - 289.20001220703125, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ADY", - "origin": [ - 286.6000061035156, - 737.6500244140625 - ], - "bbox": [ - 286.6000061035156, - 731.1500244140625, - 289.20001220703125, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.6000061035156, - 731.1500244140625, - 289.20001220703125, - 750.050048828125 - ] - } - ] - }, - { - "number": 223, - "type": 0, - "bbox": [ - 302.5, - 731.1500244140625, - 339.20001220703125, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "tLMZE1SaX^HJR&H", - "origin": [ - 302.5, - 737.6500244140625 - ], - "bbox": [ - 302.5, - 731.1500244140625, - 339.20001220703125, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 302.5, - 731.1500244140625, - 339.20001220703125, - 750.050048828125 - ] - } - ] - }, - { - "number": 225, - "type": 0, - "bbox": [ - 348.1000061035156, - 724.75, - 516.7999877929688, - 759.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M%EGOgHJALX’TKNKNM]HIFI¥ALO—\\+”\u001dš", - "origin": [ - 348.1000061035156, - 737.6500244140625 - ], - "bbox": [ - 348.1000061035156, - 731.1500244140625, - 440.1000061035156, - 750.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\nV", - "origin": [ - 440.1000061035156, - 737.6500244140625 - ], - "bbox": [ - 440.1000061035156, - 724.75, - 444.3000183105469, - 759.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "lq", - "origin": [ - 444.3000183105469, - 737.6500244140625 - ], - "bbox": [ - 444.3000183105469, - 731.1500244140625, - 447.5000305175781, - 750.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "XW", - "origin": [ - 447.5000305175781, - 737.6500244140625 - ], - "bbox": [ - 447.5000305175781, - 724.75, - 452.10003662109375, - 759.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¯šµj™H¢SaAž¿?M]FJXN ´FJReK", - "origin": [ - 452.10003662109375, - 737.6500244140625 - ], - "bbox": [ - 452.10003662109375, - 731.1500244140625, - 516.7999877929688, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.1000061035156, - 724.75, - 516.7999877929688, - 759.4500122070312 - ] - } - ] - }, - { - "number": 226, - "type": 0, - "bbox": [ - 71.20001220703125, - 742.1500244140625, - 455.4000549316406, - 761.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E�b©ALO\u001dST£\u0018tDEeSœXI•\u0018CrM]FJR1CrM]FsEGHJRGFZ`BRG ºHJMPO—R1£aHsE1ALOaMZS—E1X¢E\u0014X’TKNKNM]HIFJALY;SaR1•\u0018£\u0018tLM%YPR1KNK\u001b•aHsEcHJR1F^X’HIFJ•aY]HJ•aFJMe`4ALO\u001fH", - "origin": [ - 71.20001220703125, - 748.6500244140625 - ], - "bbox": [ - 71.20001220703125, - 742.1500244140625, - 455.4000549316406, - 761.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 742.1500244140625, - 455.4000549316406, - 761.050048828125 - ] - } - ] - }, - { - "number": 228, - "type": 0, - "bbox": [ - 464.20001220703125, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M³YPE1XIM³R1 ­ReCrM]O", - "origin": [ - 464.20001220703125, - 748.6500244140625 - ], - "bbox": [ - 464.20001220703125, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 464.20001220703125, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ] - } - ] - }, - { - "number": 229, - "type": 0, - "bbox": [ - 71.20001220703125, - 753.1500244140625, - 121.90001678466797, - 772.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u001dE1OQHJ•aK", - "origin": [ - 71.20001220703125, - 759.6500244140625 - ], - "bbox": [ - 71.20001220703125, - 753.1500244140625, - 99.40001678466797, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 753.1500244140625, - 99.40001678466797, - 772.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNMPY", - "origin": [ - 110.00001525878906, - 759.6500244140625 - ], - "bbox": [ - 110.00001525878906, - 753.1500244140625, - 121.90001678466797, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.00001525878906, - 753.1500244140625, - 121.90001678466797, - 772.050048828125 - ] - } - ] - }, - { - "number": 231, - "type": 0, - "bbox": [ - 131.00001525878906, - 746.75, - 211.40000915527344, - 781.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u0018ALYZE1t?X’TX’HJMPKNX", - "origin": [ - 131.00001525878906, - 759.6500244140625 - ], - "bbox": [ - 131.00001525878906, - 753.1500244140625, - 184.90000915527344, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e=", - "origin": [ - 184.90000915527344, - 759.6500244140625 - ], - "bbox": [ - 184.90000915527344, - 752.6500244140625, - 192.10000610351562, - 771.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.00001525878906, - 752.6500244140625, - 192.10000610351562, - 772.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 194.20001220703125, - 759.6500244140625 - ], - "bbox": [ - 194.20001220703125, - 753.1500244140625, - 194.20001220703125, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 194.20001220703125, - 759.6500244140625 - ], - "bbox": [ - 194.20001220703125, - 746.75, - 198.60000610351562, - 781.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 198.60000610351562, - 759.6500244140625 - ], - "bbox": [ - 198.60000610351562, - 752.6500244140625, - 203.3000030517578, - 771.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\\[", - "origin": [ - 203.3000030517578, - 759.6500244140625 - ], - "bbox": [ - 203.3000030517578, - 746.75, - 206.40000915527344, - 781.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TH", - "origin": [ - 206.40000915527344, - 759.6500244140625 - ], - "bbox": [ - 206.40000915527344, - 753.1500244140625, - 211.40000915527344, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.20001220703125, - 746.75, - 211.40000915527344, - 781.4500122070312 - ] - } - ] - }, - { - "number": 233, - "type": 0, - "bbox": [ - 220.3000030517578, - 746.75, - 399.300048828125, - 781.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX¬ALX4XIM]MPO©`T ¸RGFBM", - "origin": [ - 220.3000030517578, - 759.6500244140625 - ], - "bbox": [ - 220.3000030517578, - 753.1500244140625, - 275.5, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "^]", - "origin": [ - 275.5, - 759.6500244140625 - ], - "bbox": [ - 275.5, - 746.75, - 279.5, - 781.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aEGKNC\u0018tLMe`TALO\u0016Re•TF-\\y”\u001dš", - "origin": [ - 279.5, - 759.6500244140625 - ], - "bbox": [ - 279.5, - 753.1500244140625, - 352.8999938964844, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\nV", - "origin": [ - 352.8999938964844, - 759.6500244140625 - ], - "bbox": [ - 352.8999938964844, - 746.75, - 357.1000061035156, - 781.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "lpGi", - "origin": [ - 357.1000061035156, - 759.6500244140625 - ], - "bbox": [ - 357.1000061035156, - 753.1500244140625, - 364.70001220703125, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 364.70001220703125, - 759.6500244140625 - ], - "bbox": [ - 364.70001220703125, - 746.75, - 369.4000244140625, - 781.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "£rMPtLRZ‘¡š", - "origin": [ - 369.4000244140625, - 759.6500244140625 - ], - "bbox": [ - 369.4000244140625, - 753.1500244140625, - 399.300048828125, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.3000030517578, - 746.75, - 399.300048828125, - 781.4500122070312 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [ - { - "bbox": [ - 172.8928283642224, - 213.27179487179487, - 420.2256244963739, - 244.0136752136752 - ], - "image_path": "equation_interline/3_172_213_420_244.jpg" - }, - { - "bbox": [ - 227.16196615632552, - 315.1042735042735, - 369.31829170024173, - 332.39658119658117 - ], - "image_path": "equation_interline/3_227_315_369_332.jpg" - }, - { - "bbox": [ - 221.3988718775181, - 379.47008547008545, - 374.12087026591456, - 395.3213675213675 - ], - "image_path": "equation_interline/3_221_379_374_395.jpg" - }, - { - "bbox": [ - 140.23529411764704, - 421.25982905982903, - 456.7252215954875, - 508.68205128205125 - ], - "image_path": "equation_interline/3_140_421_456_508.jpg" - } - ], - "inline_equations": [ - { - "bbox": [ - 392.3706688154714, - 118.16410256410256, - 400.05479452054794, - 125.36923076923077 - ], - "image_path": "equations_inline/3_392_118_400_125.jpg" - }, - { - "bbox": [ - 244.45124899274776, - 118.64444444444445, - 252.6156325543916, - 125.36923076923077 - ], - "image_path": "equations_inline/3_244_118_252_125.jpg" - }, - { - "bbox": [ - 329.9371474617244, - 118.64444444444445, - 337.62127316680096, - 127.77094017094016 - ], - "image_path": "equations_inline/3_329_118_337_127.jpg" - }, - { - "bbox": [ - 221.8791297340854, - 141.7008547008547, - 232.44480257856566, - 151.78803418803417 - ], - "image_path": "equations_inline/3_221_141_232_151.jpg" - }, - { - "bbox": [ - 320.81224818694596, - 167.15897435897435, - 329.45688960515713, - 179.64786324786323 - ], - "image_path": "equations_inline/3_320_167_329_179.jpg" - }, - { - "bbox": [ - 69.63738920225624, - 179.64786324786323, - 135.9129734085415, - 193.0974358974359 - ], - "image_path": "equations_inline/3_69_179_135_193.jpg" - }, - { - "bbox": [ - 469.69218372280415, - 179.64786324786323, - 496.5866236905721, - 193.0974358974359 - ], - "image_path": "equations_inline/3_469_179_496_193.jpg" - }, - { - "bbox": [ - 96.05157131345689, - 254.10085470085468, - 186.82030620467364, - 268.03076923076924 - ], - "image_path": "equations_inline/3_96_254_186_268.jpg" - }, - { - "bbox": [ - 210.83319903303786, - 292.5282051282051, - 355.87107171635773, - 306.9384615384615 - ], - "image_path": "equations_inline/3_210_292_355_306.jpg" - }, - { - "bbox": [ - 136.39323126510877, - 614.8376068376068, - 157.044319097502, - 630.6888888888889 - ], - "image_path": "equations_inline/3_136_614_157_630.jpg" - }, - { - "bbox": [ - 219.95809830781627, - 617.2393162393162, - 264.6220789685737, - 630.6888888888889 - ], - "image_path": "equations_inline/3_219_617_264_630.jpg" - }, - { - "bbox": [ - 196.9057211925866, - 629.2478632478633, - 208.91216760676872, - 642.217094017094 - ], - "image_path": "equations_inline/3_196_629_208_642.jpg" - }, - { - "bbox": [ - 375.0813859790491, - 643.6581196581196, - 383.7260273972602, - 656.1470085470086 - ], - "image_path": "equations_inline/3_375_643_383_656.jpg" - }, - { - "bbox": [ - 443.7582594681708, - 699.3777777777777, - 468.7316680096696, - 715.2290598290598 - ], - "image_path": "equations_inline/3_443_699_468_715.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 71.9962158203125, - 595.5, - 414.6501159667969 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 71.4000244140625, - 415.4501037597656, - 522.1998901367188, - 587.25 - ], - "layout_label": "U", - "sub_layout": [], - "bad_boxes": [ - [ - 92.80003356933594, - 529.5499877929688, - 522.1998901367188, - 587.25 - ], - [ - 236.49993896484375, - 416.1501159667969, - 245.69993591308594, - 450.85009765625 - ], - [ - 71.4000244140625, - 510.6500244140625, - 240.10003662109375, - 529.550048828125 - ] - ] - }, - { - "layout_bbox": [ - 0, - 593.6499633789062, - 595.5, - 800.5619506835938 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 71.19999694824219, - 109.04998779296875, - 237.69996643066406, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×Qå×gØ8è+ÔÖØuçNÝ?Ø\u0014çr×gØu×QÞGÒrÑlÔ", - "origin": [ - 71.19999694824219, - 116.04998779296875 - ], - "bbox": [ - 71.19999694824219, - 109.54998779296875, - 171.0999755859375, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 171.0999755859375, - 116.04998779296875 - ], - "bbox": [ - 171.0999755859375, - 109.04998779296875, - 174.0999755859375, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×gè\u0019Õ/ÝVÝrÞGè8ÔlØ8Ò\u001dÛZ×", - "origin": [ - 174.0999755859375, - 116.04998779296875 - ], - "bbox": [ - 174.0999755859375, - 109.54998779296875, - 237.69996643066406, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 109.04998779296875, - 237.69996643066406, - 128.44998168945312 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 254.5, - 109.54998779296875, - 319.3000183105469, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è\u0019Ù¥Ý?Ù�×gتÛcâ+Ù", - "origin": [ - 254.5, - 116.04998779296875 - ], - "bbox": [ - 254.5, - 109.54998779296875, - 319.3000183105469, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 254.5, - 109.54998779296875, - 319.3000183105469, - 128.44998168945312 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 337.29998779296875, - 109.54998779296875, - 386.0999450683594, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "érÒrØ8è&à»Üu×QÞc×", - "origin": [ - 337.29998779296875, - 116.04998779296875 - ], - "bbox": [ - 337.29998779296875, - 109.54998779296875, - 386.0999450683594, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.29998779296875, - 109.54998779296875, - 386.0999450683594, - 128.44998168945312 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 402.1999816894531, - 109.54998779296875, - 522.0, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gØuÝrÛZ×gÓ·ÛcÜu×", - "origin": [ - 402.1999816894531, - 116.04998779296875 - ], - "bbox": [ - 402.1999816894531, - 109.54998779296875, - 450.9999694824219, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 402.1999816894531, - 109.54998779296875, - 450.9999694824219, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0014 \u000e'\u001b\u001d\"`4�\u0010,\u0014.\"�\u001e\u001f\u0014 )>\u001c\u0013D", - "origin": [ - 459.29998779296875, - 116.04998779296875 - ], - "bbox": [ - 459.29998779296875, - 109.54998779296875, - 519.2000122070312, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ºò", - "origin": [ - 519.2000122070312, - 116.04998779296875 - ], - "bbox": [ - 519.2000122070312, - 109.54998779296875, - 522.0, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.29998779296875, - 109.54998779296875, - 522.0, - 128.44998168945312 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 71.0999755859375, - 121.95001220703125, - 519.2999877929688, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 71.0999755859375, - 128.95001220703125 - ], - "bbox": [ - 71.0999755859375, - 121.95001220703125, - 71.0999755859375, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PØ", - "origin": [ - 71.0999755859375, - 128.95001220703125 - ], - "bbox": [ - 71.0999755859375, - 122.45001220703125, - 75.1999740600586, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 121.95001220703125, - 75.1999740600586, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëV×gÕ/ÛcÔÖÝ?Ø", - "origin": [ - 85.79997253417969, - 128.95001220703125 - ], - "bbox": [ - 85.79997253417969, - 122.45001220703125, - 114.0999755859375, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.79997253417969, - 122.45001220703125, - 114.0999755859375, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ðVé·à\u001b× à»ÔÖÑlÑ­Õ/Ý?Ù�×\u001fÚ+ÒrÕ", - "origin": [ - 124.6999740600586, - 128.95001220703125 - ], - "bbox": [ - 124.6999740600586, - 122.45001220703125, - 216.19996643066406, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 216.19996643066406, - 128.95001220703125 - ], - "bbox": [ - 216.19996643066406, - 121.95001220703125, - 220.49996948242188, - 140.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.6999740600586, - 121.95001220703125, - 220.49996948242188, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZݵÛcÜu×\rØuÝrÛcÔwÝ?Ø", - "origin": [ - 230.7999725341797, - 128.95001220703125 - ], - "bbox": [ - 230.7999725341797, - 122.45001220703125, - 288.89996337890625, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.7999725341797, - 122.45001220703125, - 288.89996337890625, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝræNÛcÜ8לÛZÞGâ8×¥åÝrÛZ×gتÛcÔÖÒrÑ\u001bÒrØ8è¾è8ÔÖÓZÛcÔÖØ8ç?â8ÔÖÓcÜ�ÔwÛ³æ™ÞcÝ?ÙþÒ", - "origin": [ - 299.1999816894531, - 128.95001220703125 - ], - "bbox": [ - 299.1999816894531, - 122.45001220703125, - 519.2999877929688, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 299.1999816894531, - 122.45001220703125, - 519.2999877929688, - 141.35000610351562 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 71.0999755859375, - 129.05001831054688, - 232.29998779296875, - 163.75001525878906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÑlÒ\u001dÛZ×gè", - "origin": [ - 71.0999755859375, - 141.95001220703125 - ], - "bbox": [ - 71.0999755859375, - 135.45001220703125, - 97.89997863769531, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "W93\u0010#\u001c%\u000e3&#\"", - "origin": [ - 97.89997863769531, - 141.95001220703125 - ], - "bbox": [ - 97.89997863769531, - 135.45001220703125, - 132.29998779296875, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 132.29998779296875, - 141.95001220703125 - ], - "bbox": [ - 132.29998779296875, - 129.05001831054688, - 136.99998474121094, - 163.75001525878906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ">*%\u000e\u0011\u001c\u0013)�\u001e", - "origin": [ - 136.99998474121094, - 141.95001220703125 - ], - "bbox": [ - 136.99998474121094, - 135.45001220703125, - 158.79998779296875, - 153.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 129.05001831054688, - 158.79998779296875, - 163.75001525878906 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"$1", - "origin": [ - 165.29998779296875, - 141.95001220703125 - ], - "bbox": [ - 165.29998779296875, - 135.45001220703125, - 169.59999084472656, - 153.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.29998779296875, - 135.45001220703125, - 169.59999084472656, - 153.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "4�\u0010,\u0014.\"�\u001e\u001f\u0014 )>\u001c\u0013D", - "origin": [ - 178.29998779296875, - 141.95001220703125 - ], - "bbox": [ - 178.29998779296875, - 135.45001220703125, - 216.79998779296875, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 216.79998779296875, - 141.95001220703125 - ], - "bbox": [ - 216.79998779296875, - 129.05001831054688, - 223.19998168945312, - 163.75001525878906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥ò", - "origin": [ - 223.19998168945312, - 141.95001220703125 - ], - "bbox": [ - 223.19998168945312, - 135.45001220703125, - 232.29998779296875, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.29998779296875, - 129.05001831054688, - 232.29998779296875, - 163.75001525878906 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 93.49998474121094, - 147.8499755859375, - 521.9000244140625, - 167.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Øÿ×gØ8ÓZ×gÙ\u0019Ú+Ñw×", - "origin": [ - 93.49998474121094, - 154.8499755859375 - ], - "bbox": [ - 93.49998474121094, - 148.3499755859375, - 144.29998779296875, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.49998474121094, - 148.3499755859375, - 144.29998779296875, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ�Ócâ+ÕGÜ", - "origin": [ - 155.79998779296875, - 154.8499755859375 - ], - "bbox": [ - 155.79998779296875, - 148.3499755859375, - 186.2999725341797, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 155.79998779296875, - 148.3499755859375, - 186.2999725341797, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÚ", - "origin": [ - 198.99998474121094, - 154.8499755859375 - ], - "bbox": [ - 198.99998474121094, - 148.3499755859375, - 204.3999786376953, - 167.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "b�", - "origin": [ - 204.3999786376953, - 154.8499755859375 - ], - "bbox": [ - 204.3999786376953, - 148.3499755859375, - 210.3999786376953, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "P×gÕ/ÛcÓQé\u000fæ=ÝrÞ\u001e×", - "origin": [ - 210.3999786376953, - 154.8499755859375 - ], - "bbox": [ - 210.3999786376953, - 148.3499755859375, - 263.1999816894531, - 167.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 263.1999816894531, - 154.8499755859375 - ], - "bbox": [ - 263.1999816894531, - 148.3499755859375, - 267.8999938964844, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ�å+ÑÖ×ré!æ=Ý?ÑÖÑwÝTà¢ÔÖØuçŽÛZÞGÒ", - "origin": [ - 267.8999938964844, - 154.8499755859375 - ], - "bbox": [ - 267.8999938964844, - 148.3499755859375, - 370.6000061035156, - 167.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "H�", - "origin": [ - 370.6000061035156, - 154.8499755859375 - ], - "bbox": [ - 370.6000061035156, - 148.3499755859375, - 375.70001220703125, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛZÝrÞGÔw×gÓÍà»ÔwÛcÜÿè8Ô", - "origin": [ - 375.70001220703125, - 154.8499755859375 - ], - "bbox": [ - 375.70001220703125, - 148.3499755859375, - 456.8000183105469, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.99998474121094, - 148.3499755859375, - 456.8000183105469, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 459.70001220703125, - 154.8499755859375 - ], - "bbox": [ - 459.70001220703125, - 147.8499755859375, - 459.70001220703125, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×QÞc×gتÛ\u001eÔÖØ8ÔwÛcÔÖÒrÑ", - "origin": [ - 459.70001220703125, - 154.8499755859375 - ], - "bbox": [ - 459.70001220703125, - 148.3499755859375, - 521.9000244140625, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.70001220703125, - 147.8499755859375, - 521.9000244140625, - 167.24996948242188 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 71.20001220703125, - 154.94998168945312, - 519.0999755859375, - 189.6499786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/Ý?Ø8è+ÔwÛcÔwÝ?Ø8ÓQé\u0010ÔÖӜèu×gÓcÕ/ÞGÔwڐ×gè\u0012ÚVßÁÒ7è+ÔÖÓZÛZÞGÔwÚyâuÛcÔwÝ?Ø", - "origin": [ - 71.20001220703125, - 167.8499755859375 - ], - "bbox": [ - 71.20001220703125, - 161.3499755859375, - 267.29998779296875, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 161.3499755859375, - 267.29998779296875, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=â+Ø8Õ/ÛcÔwÝ?Ø", - "origin": [ - 277.9000244140625, - 167.8499755859375 - ], - "bbox": [ - 277.9000244140625, - 161.3499755859375, - 311.10003662109375, - 180.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 311.10003662109375, - 167.8499755859375 - ], - "bbox": [ - 311.10003662109375, - 154.94998168945312, - 322.2000427246094, - 189.6499786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.9000244140625, - 154.94998168945312, - 322.2000427246094, - 189.6499786376953 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØÁå+Ü+ÒrÓZ×µÓZåyÒrÕ/×ré^ÔIòž×ròwéNÚ©ß\u0012ÛcÜ8×!å8ÞcÝrÚyÒ\u001dÚ+ÔÖÑÖÔwÛ¯ß", - "origin": [ - 333.70001220703125, - 167.8499755859375 - ], - "bbox": [ - 333.70001220703125, - 161.3499755859375, - 519.0999755859375, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.70001220703125, - 161.3499755859375, - 519.0999755859375, - 180.24996948242188 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 78.50001525878906, - 167.44998168945312, - 103.30001831054688, - 202.1499786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 78.50001525878906, - 180.3499755859375 - ], - "bbox": [ - 78.50001525878906, - 173.3499755859375, - 81.90001678466797, - 191.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.50001525878906, - 173.3499755859375, - 81.90001678466797, - 191.74996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "354", - "origin": [ - 88.80001831054688, - 180.3499755859375 - ], - "bbox": [ - 88.80001831054688, - 173.3499755859375, - 92.30001831054688, - 191.74996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�\n�", - "origin": [ - 92.30001831054688, - 180.3499755859375 - ], - "bbox": [ - 92.30001831054688, - 167.44998168945312, - 103.30001831054688, - 202.1499786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.80001831054688, - 167.44998168945312, - 103.30001831054688, - 202.1499786376953 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 107.50001525878906, - 173.8499755859375, - 111.50001525878906, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 107.50001525878906, - 180.8499755859375 - ], - "bbox": [ - 107.50001525878906, - 173.8499755859375, - 107.50001525878906, - 192.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]è", - "origin": [ - 107.50001525878906, - 180.8499755859375 - ], - "bbox": [ - 107.50001525878906, - 174.3499755859375, - 111.50001525878906, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.50001525878906, - 173.8499755859375, - 111.50001525878906, - 193.24996948242188 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 138.80001831054688, - 174.3499755859375, - 462.800048828125, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ", - "origin": [ - 138.80001831054688, - 180.8499755859375 - ], - "bbox": [ - 138.80001831054688, - 174.3499755859375, - 143.00001525878906, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\\\n", - "origin": [ - 143.00001525878906, - 180.8499755859375 - ], - "bbox": [ - 143.00001525878906, - 174.3499755859375, - 152.00001525878906, - 192.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø8è\rÒ�Ù�×gÙ\u0019ڐ×QÞNÝræ-ÛcÜ8×;×gØ8ÓZ×gÙ\u0019Ú+Ñw×;ÔÖØ\rÒrؖÔÖØ", - "origin": [ - 152.00001525878906, - 180.8499755859375 - ], - "bbox": [ - 152.00001525878906, - 174.3499755859375, - 332.800048828125, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "b\n", - "origin": [ - 332.800048828125, - 180.8499755859375 - ], - "bbox": [ - 332.800048828125, - 174.3499755859375, - 338.800048828125, - 192.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yØ8ÔwÛZ×gÓcÔÖÙ ÒrÑuãrÝ?ÑÖâ8Ù�×%Ò\u001dÛNåÝ?ÔÖØ©Û", - "origin": [ - 338.800048828125, - 180.8499755859375 - ], - "bbox": [ - 338.800048828125, - 174.3499755859375, - 462.800048828125, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 138.80001831054688, - 174.3499755859375, - 462.800048828125, - 193.24996948242188 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 471.3000183105469, - 173.3499755859375, - 485.0, - 191.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21)354", - "origin": [ - 471.3000183105469, - 180.3499755859375 - ], - "bbox": [ - 471.3000183105469, - 173.3499755859375, - 485.0, - 191.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 471.3000183105469, - 173.3499755859375, - 485.0, - 191.74996948242188 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 491.5000305175781, - 173.8499755859375, - 496.0000305175781, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 491.5000305175781, - 180.8499755859375 - ], - "bbox": [ - 491.5000305175781, - 173.8499755859375, - 491.5000305175781, - 192.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 491.5000305175781, - 180.8499755859375 - ], - "bbox": [ - 491.5000305175781, - 174.3499755859375, - 496.0000305175781, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 491.5000305175781, - 173.8499755859375, - 496.0000305175781, - 193.24996948242188 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 511.4000244140625, - 174.3499755859375, - 520.5999755859375, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ", - "origin": [ - 511.4000244140625, - 180.8499755859375 - ], - "bbox": [ - 511.4000244140625, - 174.3499755859375, - 520.5999755859375, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 511.4000244140625, - 174.3499755859375, - 520.5999755859375, - 193.24996948242188 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 71.20001220703125, - 187.14996337890625, - 328.3999938964844, - 206.04995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8ÔlÓZÛZÞGÔwÚ+â8ÛcÔwÝ?Ø¥×QãrÝ?Ñwãr×gÓ\u0016ÒrÕQÕ/ÝrÞGè8ÔlØuç�ÛZÝ¥ÛcÜu׳á-ÔwÝ?âuãWÔÖÑÖÑw×¢×gä©â+Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 71.20001220703125, - 193.64996337890625 - ], - "bbox": [ - 71.20001220703125, - 187.14996337890625, - 328.3999938964844, - 206.04995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 187.14996337890625, - 328.3999938964844, - 206.04995727539062 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 178.1000213623047, - 215.44998168945312, - 191.7000274658203, - 250.1499786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000b\r\f\u000f\u000e", - "origin": [ - 178.1000213623047, - 228.3499755859375 - ], - "bbox": [ - 178.1000213623047, - 215.44998168945312, - 191.7000274658203, - 250.1499786376953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.1000213623047, - 215.44998168945312, - 191.7000274658203, - 250.1499786376953 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 225.5, - 217.64999389648438, - 238.1999969482422, - 252.34999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "4", - "origin": [ - 225.5, - 230.54998779296875 - ], - "bbox": [ - 225.5, - 223.54998779296875, - 225.5, - 241.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0011\u0010", - "origin": [ - 225.5, - 230.54998779296875 - ], - "bbox": [ - 225.5, - 217.64999389648438, - 238.1999969482422, - 252.34999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.5, - 217.64999389648438, - 238.1999969482422, - 252.34999084472656 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 245.3000030517578, - 222.85000610351562, - 250.90000915527344, - 257.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0013\u0012", - "origin": [ - 245.3000030517578, - 235.75 - ], - "bbox": [ - 245.3000030517578, - 222.85000610351562, - 250.90000915527344, - 257.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.3000030517578, - 222.85000610351562, - 250.90000915527344, - 257.54998779296875 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 281.0, - 217.64999389648438, - 293.3999938964844, - 252.34999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "1", - "origin": [ - 281.0, - 230.54998779296875 - ], - "bbox": [ - 281.0, - 223.54998779296875, - 281.0, - 241.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0014\u0010", - "origin": [ - 281.0, - 230.54998779296875 - ], - "bbox": [ - 281.0, - 217.64999389648438, - 293.3999938964844, - 252.34999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 281.0, - 217.64999389648438, - 293.3999938964844, - 252.34999084472656 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 300.8999938964844, - 222.85000610351562, - 305.8999938964844, - 257.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0016\u0015", - "origin": [ - 300.8999938964844, - 235.75 - ], - "bbox": [ - 300.8999938964844, - 222.85000610351562, - 305.8999938964844, - 257.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 300.8999938964844, - 222.85000610351562, - 305.8999938964844, - 257.54998779296875 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 316.79998779296875, - 210.75003051757812, - 328.5, - 245.4500274658203 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "6", - "origin": [ - 316.79998779296875, - 223.6500244140625 - ], - "bbox": [ - 316.79998779296875, - 216.6500244140625, - 316.79998779296875, - 235.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0018\u0017", - "origin": [ - 316.79998779296875, - 223.6500244140625 - ], - "bbox": [ - 316.79998779296875, - 210.75003051757812, - 328.5, - 245.4500274658203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.79998779296875, - 210.75003051757812, - 328.5, - 245.4500274658203 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 339.29998779296875, - 215.45004272460938, - 353.1999816894531, - 250.15003967285156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u000f\u0012\u0019\u000b", - "origin": [ - 339.29998779296875, - 228.35003662109375 - ], - "bbox": [ - 339.29998779296875, - 215.45004272460938, - 353.1999816894531, - 250.15003967285156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 339.29998779296875, - 215.45004272460938, - 353.1999816894531, - 250.15003967285156 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 363.3999938964844, - 210.35006713867188, - 376.0, - 245.05006408691406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "9", - "origin": [ - 363.3999938964844, - 223.25006103515625 - ], - "bbox": [ - 363.3999938964844, - 216.25006103515625, - 363.3999938964844, - 234.65005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001b\u001a", - "origin": [ - 363.3999938964844, - 223.25006103515625 - ], - "bbox": [ - 363.3999938964844, - 210.35006713867188, - 369.1000061035156, - 245.05006408691406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.3999938964844, - 210.35006713867188, - 369.1000061035156, - 245.05006408691406 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 372.6000061035156, - 223.15008544921875 - ], - "bbox": [ - 372.6000061035156, - 216.15008544921875, - 376.0, - 234.55007934570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.6000061035156, - 216.15008544921875, - 376.0, - 234.55007934570312 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 386.70001220703125, - 215.45010375976562, - 397.70001220703125, - 250.1501007080078 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0016\u0015\u001d\u001c", - "origin": [ - 386.70001220703125, - 228.35009765625 - ], - "bbox": [ - 386.70001220703125, - 215.45010375976562, - 397.70001220703125, - 250.1501007080078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.70001220703125, - 215.45010375976562, - 397.70001220703125, - 250.1501007080078 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 515.1000366210938, - 216.65008544921875, - 520.6000366210938, - 236.05007934570312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ï", - "origin": [ - 515.1000366210938, - 223.65008544921875 - ], - "bbox": [ - 515.1000366210938, - 217.15008544921875, - 515.1000366210938, - 236.05007934570312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.1000366210938, - 223.65008544921875 - ], - "bbox": [ - 515.1000366210938, - 216.65008544921875, - 520.6000366210938, - 235.05007934570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.1000366210938, - 216.65008544921875, - 520.6000366210938, - 236.05007934570312 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 71.10003662109375, - 249.05010986328125, - 86.50003814697266, - 267.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcÜ", - "origin": [ - 71.10003662109375, - 255.55010986328125 - ], - "bbox": [ - 71.10003662109375, - 249.05010986328125, - 86.50003814697266, - 267.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 249.05010986328125, - 86.50003814697266, - 267.9501037597656 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 106.20003509521484, - 248.05010986328125, - 109.60003662109375, - 266.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 106.20003509521484, - 255.05010986328125 - ], - "bbox": [ - 106.20003509521484, - 248.05010986328125, - 109.60003662109375, - 266.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.20003509521484, - 248.05010986328125, - 109.60003662109375, - 266.4501037597656 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 116.20003509521484, - 248.55010986328125, - 128.30003356933594, - 266.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 116.20003509521484, - 255.55010986328125 - ], - "bbox": [ - 116.20003509521484, - 248.55010986328125, - 116.20003509521484, - 266.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001a\u0017", - "origin": [ - 116.20003509521484, - 255.55010986328125 - ], - "bbox": [ - 116.20003509521484, - 249.05010986328125, - 125.60003662109375, - 266.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 125.60003662109375, - 255.55010986328125 - ], - "bbox": [ - 125.60003662109375, - 248.55010986328125, - 128.30003356933594, - 266.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 116.20003509521484, - 248.55010986328125, - 128.30003356933594, - 266.9501037597656 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 153.90003967285156, - 248.05010986328125, - 157.30003356933594, - 266.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 153.90003967285156, - 255.05010986328125 - ], - "bbox": [ - 153.90003967285156, - 248.05010986328125, - 157.30003356933594, - 266.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 153.90003967285156, - 248.05010986328125, - 157.30003356933594, - 266.4501037597656 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 163.80003356933594, - 242.65011596679688, - 173.2000274658203, - 277.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 163.80003356933594, - 255.55010986328125 - ], - "bbox": [ - 163.80003356933594, - 248.55010986328125, - 163.80003356933594, - 266.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\n\u001e", - "origin": [ - 163.80003356933594, - 255.55010986328125 - ], - "bbox": [ - 163.80003356933594, - 242.65011596679688, - 168.00003051757812, - 277.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0018è", - "origin": [ - 168.00003051757812, - 255.55010986328125 - ], - "bbox": [ - 168.00003051757812, - 249.05010986328125, - 173.2000274658203, - 267.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.80003356933594, - 242.65011596679688, - 173.2000274658203, - 277.35009765625 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 217.00003051757812, - 249.05010986328125, - 422.0, - 267.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "חÞG×gÕQÒrÑÖÑ\u0010ÛcÜ8Ò\u001dÛ�ÛcÜuחÞc×gÑlÒ\u001dÛcÔwãrח٥ÔÖØVâ8Ó\u0014ÓcÔwç?Ø\u000bÔÖØ", - "origin": [ - 217.00003051757812, - 255.55010986328125 - ], - "bbox": [ - 217.00003051757812, - 249.05010986328125, - 401.0999755859375, - 267.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 217.00003051757812, - 249.05010986328125, - 401.0999755859375, - 267.9501037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×", - "origin": [ - 411.70001220703125, - 255.55010986328125 - ], - "bbox": [ - 411.70001220703125, - 249.05010986328125, - 422.0, - 267.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.70001220703125, - 249.05010986328125, - 422.0, - 267.9501037597656 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 438.70001220703125, - 248.55010986328125, - 520.2999877929688, - 267.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÔÖÓcÓZÝ?Ø\u000bÚ+ÞGÒrÕ", - "origin": [ - 438.70001220703125, - 255.55010986328125 - ], - "bbox": [ - 438.70001220703125, - 249.05010986328125, - 488.0000305175781, - 267.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 488.0000305175781, - 255.55010986328125 - ], - "bbox": [ - 488.0000305175781, - 248.55010986328125, - 492.3000183105469, - 266.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×QÛQé\u001bÝrÞ", - "origin": [ - 492.3000183105469, - 255.55010986328125 - ], - "bbox": [ - 492.3000183105469, - 249.05010986328125, - 520.2999877929688, - 267.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.70001220703125, - 248.55010986328125, - 520.2999877929688, - 267.9501037597656 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 71.10000610351562, - 255.65011596679688, - 383.4000549316406, - 290.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×QÛsà\u001b×Q×gؾÛZ×QÞGÙ¥Ó&Üu×QÞc×ré·Þc×", - "origin": [ - 71.10000610351562, - 268.55010986328125 - ], - "bbox": [ - 71.10000610351562, - 262.05010986328125, - 177.2000274658203, - 280.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": " \u001f", - "origin": [ - 177.2000274658203, - 268.55010986328125 - ], - "bbox": [ - 177.2000274658203, - 255.65011596679688, - 182.00003051757812, - 290.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gÕ/ÛcÓ\u0014Ò!ÓcßVÙ�åyÑw×gÕ/ÛcÔÖÕ�å+Ü+ÒrÓZלÓZåyÒrÕ/×\u001fÓZßWÙ¥Ù�×QÛZÞGßrò", - "origin": [ - 182.00003051757812, - 268.55010986328125 - ], - "bbox": [ - 182.00003051757812, - 262.05010986328125, - 383.4000549316406, - 280.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 255.65011596679688, - 383.4000549316406, - 290.35009765625 - ] - } - ] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 401.1000061035156, - 262.05010986328125, - 519.800048828125, - 280.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ%à»ÔÖÑÖÑ·ÛZÞGÒrØ+ÓcÑÖÒ\u001dÛZ×\rÔÖØªÛZݵÛcÜu×", - "origin": [ - 401.1000061035156, - 268.55010986328125 - ], - "bbox": [ - 401.1000061035156, - 262.05010986328125, - 519.800048828125, - 280.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 401.1000061035156, - 262.05010986328125, - 519.800048828125, - 280.9501037597656 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 71.10000610351562, - 268.5501403808594, - 246.2999725341797, - 303.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ’ÒrÙ¥ÔÖÑÖÔlÒ\u001dÞ\u0010Õ/Ý?Ù Ù\u0019âuÛcÒ\u001dÛZÝrޓÓZÛZÞGâ+Õ/ÛcâuÞc×;ÔÖØ", - "origin": [ - 71.10000610351562, - 281.45013427734375 - ], - "bbox": [ - 71.10000610351562, - 274.95013427734375, - 222.8999786376953, - 293.8501281738281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\"!", - "origin": [ - 222.8999786376953, - 281.45013427734375 - ], - "bbox": [ - 222.8999786376953, - 268.5501403808594, - 232.5999755859375, - 303.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 232.5999755859375, - 281.45013427734375 - ], - "bbox": [ - 232.5999755859375, - 274.95013427734375, - 246.2999725341797, - 293.8501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 268.5501403808594, - 246.2999725341797, - 303.2501220703125 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 254.90000915527344, - 274.45013427734375, - 264.9000244140625, - 293.8501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 254.90000915527344, - 281.45013427734375 - ], - "bbox": [ - 254.90000915527344, - 274.95013427734375, - 254.90000915527344, - 293.8501281738281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 254.90000915527344, - 281.45013427734375 - ], - "bbox": [ - 254.90000915527344, - 274.45013427734375, - 260.4000244140625, - 292.8501281738281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 260.4000244140625, - 281.45013427734375 - ], - "bbox": [ - 260.4000244140625, - 274.95013427734375, - 264.9000244140625, - 293.8501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 254.90000915527344, - 274.45013427734375, - 264.9000244140625, - 293.8501281738281 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 103.20000457763672, - 281.4501037597656, - 212.20001220703125, - 316.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?âuÞGÔw×QÞNÛZÞGÒrØ+ÓZæ™ÝrÞ1Ù¥Ò\u001dÛcÔwÝ?ذé", - "origin": [ - 103.20000457763672, - 294.35009765625 - ], - "bbox": [ - 103.20000457763672, - 287.85009765625, - 206.10000610351562, - 306.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "#�", - "origin": [ - 206.10000610351562, - 294.35009765625 - ], - "bbox": [ - 206.10000610351562, - 281.4501037597656, - 212.20001220703125, - 316.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.20000457763672, - 281.4501037597656, - 212.20001220703125, - 316.15008544921875 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 219.40000915527344, - 280.9501037597656, - 244.1999969482422, - 315.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21)354", - "origin": [ - 219.40000915527344, - 293.85009765625 - ], - "bbox": [ - 219.40000915527344, - 286.85009765625, - 233.10000610351562, - 305.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "$�\n�", - "origin": [ - 233.10000610351562, - 293.85009765625 - ], - "bbox": [ - 233.10000610351562, - 280.9501037597656, - 244.1999969482422, - 315.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.40000915527344, - 280.9501037597656, - 244.1999969482422, - 315.65008544921875 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 248.40000915527344, - 281.4501037597656, - 301.6000061035156, - 316.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012\u000b6", - "origin": [ - 248.40000915527344, - 294.35009765625 - ], - "bbox": [ - 248.40000915527344, - 287.35009765625, - 255.70001220703125, - 305.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "&%", - "origin": [ - 255.70001220703125, - 294.35009765625 - ], - "bbox": [ - 255.70001220703125, - 281.4501037597656, - 267.20001220703125, - 316.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“è", - "origin": [ - 267.20001220703125, - 294.35009765625 - ], - "bbox": [ - 267.20001220703125, - 287.85009765625, - 275.5, - 306.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001d'", - "origin": [ - 275.5, - 294.35009765625 - ], - "bbox": [ - 275.5, - 281.4501037597656, - 281.5, - 316.15008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019×", - "origin": [ - 281.5, - 294.35009765625 - ], - "bbox": [ - 281.5, - 287.85009765625, - 290.20001220703125, - 306.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")(#*", - "origin": [ - 290.20001220703125, - 294.35009765625 - ], - "bbox": [ - 290.20001220703125, - 281.4501037597656, - 301.6000061035156, - 316.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.40000915527344, - 281.4501037597656, - 301.6000061035156, - 316.15008544921875 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 304.0, - 280.4501037597656, - 308.79998779296875, - 315.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0015 +", - "origin": [ - 304.0, - 293.35009765625 - ], - "bbox": [ - 304.0, - 280.4501037597656, - 308.79998779296875, - 315.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.0, - 280.4501037597656, - 308.79998779296875, - 315.15008544921875 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 321.20001220703125, - 286.85009765625, - 331.3999938964844, - 305.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21)3", - "origin": [ - 321.20001220703125, - 293.85009765625 - ], - "bbox": [ - 321.20001220703125, - 286.85009765625, - 331.3999938964844, - 305.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.20001220703125, - 286.85009765625, - 331.3999938964844, - 305.2500915527344 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 342.0, - 280.9501037597656, - 346.20001220703125, - 315.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�\n�", - "origin": [ - 342.0, - 293.85009765625 - ], - "bbox": [ - 342.0, - 280.9501037597656, - 346.20001220703125, - 315.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.0, - 280.9501037597656, - 346.20001220703125, - 315.65008544921875 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 350.3999938964844, - 287.35009765625, - 522.2000122070312, - 306.7500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 350.3999938964844, - 294.35009765625 - ], - "bbox": [ - 350.3999938964844, - 287.35009765625, - 350.3999938964844, - 305.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é8ÞG×Qå+ÑÖÒrÕ/×gÓ\u0010ÛcÜu×%á-ÔwÝ?âuãWÔÖÑÖÑw×¢×gä©â8Ò\u001dÛcÔÖÝ?ؗکß", - "origin": [ - 350.3999938964844, - 294.35009765625 - ], - "bbox": [ - 350.3999938964844, - 287.85009765625, - 515.7999877929688, - 306.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-\u0017", - "origin": [ - 515.7999877929688, - 294.35009765625 - ], - "bbox": [ - 515.7999877929688, - 287.85009765625, - 522.2000122070312, - 305.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.3999938964844, - 287.35009765625, - 522.2000122070312, - 306.7500915527344 - ] - } - ] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 232.69998168945312, - 310.9501037597656, - 238.29998779296875, - 345.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0013\u000e", - "origin": [ - 232.69998168945312, - 323.85009765625 - ], - "bbox": [ - 232.69998168945312, - 310.9501037597656, - 238.29998779296875, - 345.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 232.69998168945312, - 310.9501037597656, - 238.29998779296875, - 345.65008544921875 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 251.7999725341797, - 306.2500915527344, - 263.4999694824219, - 340.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "6", - "origin": [ - 251.7999725341797, - 319.15008544921875 - ], - "bbox": [ - 251.7999725341797, - 312.15008544921875, - 251.7999725341797, - 330.5500793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0018\u0017", - "origin": [ - 251.7999725341797, - 319.15008544921875 - ], - "bbox": [ - 251.7999725341797, - 306.2500915527344, - 263.4999694824219, - 340.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.7999725341797, - 306.2500915527344, - 263.4999694824219, - 340.9500732421875 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 271.4999694824219, - 310.9501037597656, - 298.29998779296875, - 345.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000b-\f\u0013+.\f\u0013\u0012", - "origin": [ - 271.4999694824219, - 323.85009765625 - ], - "bbox": [ - 271.4999694824219, - 310.9501037597656, - 298.29998779296875, - 345.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.4999694824219, - 310.9501037597656, - 298.29998779296875, - 345.65008544921875 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 332.0, - 311.650146484375, - 335.3999938964844, - 330.0501403808594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 332.0, - 318.650146484375 - ], - "bbox": [ - 332.0, - 311.650146484375, - 335.3999938964844, - 330.0501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.0, - 311.650146484375, - 335.3999938964844, - 330.0501403808594 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 515.0999755859375, - 312.150146484375, - 520.5999755859375, - 331.5501403808594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ð", - "origin": [ - 515.0999755859375, - 319.150146484375 - ], - "bbox": [ - 515.0999755859375, - 312.650146484375, - 515.0999755859375, - 331.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0999755859375, - 319.150146484375 - ], - "bbox": [ - 515.0999755859375, - 312.150146484375, - 520.5999755859375, - 330.5501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.0999755859375, - 312.150146484375, - 520.5999755859375, - 331.5501403808594 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 71.0999755859375, - 337.5501403808594, - 522.2999877929688, - 356.45013427734375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcÜuÝ?âuÛ", - "origin": [ - 71.0999755859375, - 344.0501403808594 - ], - "bbox": [ - 71.0999755859375, - 337.5501403808594, - 103.9999771118164, - 356.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 337.5501403808594, - 103.9999771118164, - 356.45013427734375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕGÜ+ÒrØuç?ÔÖØuç", - "origin": [ - 114.29997253417969, - 344.0501403808594 - ], - "bbox": [ - 114.29997253417969, - 337.5501403808594, - 150.8999786376953, - 356.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.29997253417969, - 337.5501403808594, - 150.8999786376953, - 356.45013427734375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×\u001eØuÝrÛcÒ\u001dÛcÔwÝ?Ø", - "origin": [ - 162.3999786376953, - 344.0501403808594 - ], - "bbox": [ - 162.3999786376953, - 337.5501403808594, - 217.6999969482422, - 356.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.3999786376953, - 337.5501403808594, - 217.6999969482422, - 356.45013427734375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™ÝrÞ¾ÛcÜu×\u001eè+ÔÖÓZÛZÞGÔwÚyâuÛcÔwÝ?Ø", - "origin": [ - 229.8999786376953, - 344.0501403808594 - ], - "bbox": [ - 229.8999786376953, - 337.5501403808594, - 320.70001220703125, - 356.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.8999786376953, - 337.5501403808594, - 320.70001220703125, - 356.45013427734375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=â8Ø+Õ/ÛcÔwÝ?ذé¥à»Ü8×gØu×Qãr×QÞ¾Õ1Ü8ÒrØuç?ÔÖØuçŸã\u0018Ò\u001dÞGÔlÒ\u001dÚ+Ñw×gÓQò", - "origin": [ - 332.39996337890625, - 344.0501403808594 - ], - "bbox": [ - 332.39996337890625, - 337.5501403808594, - 522.2999877929688, - 356.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.39996337890625, - 337.5501403808594, - 522.2999877929688, - 356.45013427734375 - ] - } - ] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 79.0999526977539, - 350.45013427734375, - 449.69989013671875, - 369.3501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÜVâ8ÓQé\u0016Ù�Ý?Ù�×gØ©Ûcâ8ÙÈÔÖÓ\r×gÑlÔÖÙ¥ÔÖØ8Ò\u001dÛZ×gè", - "origin": [ - 79.0999526977539, - 356.95013427734375 - ], - "bbox": [ - 79.0999526977539, - 350.45013427734375, - 219.49996948242188, - 369.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.0999526977539, - 350.45013427734375, - 219.49996948242188, - 369.3501281738281 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è", - "origin": [ - 230.79995727539062, - 356.95013427734375 - ], - "bbox": [ - 230.79995727539062, - 350.45013427734375, - 242.29995727539062, - 369.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.79995727539062, - 350.45013427734375, - 242.29995727539062, - 369.3501281738281 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò", - "origin": [ - 253.699951171875, - 356.95013427734375 - ], - "bbox": [ - 253.699951171875, - 350.45013427734375, - 253.699951171875, - 369.3501281738281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "R1=\u0010\u0013\u001b\u001fI�DY\"$1", - "origin": [ - 253.699951171875, - 356.95013427734375 - ], - "bbox": [ - 253.699951171875, - 350.45013427734375, - 294.39996337890625, - 368.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.699951171875, - 350.45013427734375, - 294.39996337890625, - 369.3501281738281 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001e\u001d\u001b�\u0012^I\u000f\"�\u000ea\u0010A\fW9\u000f\u0010#\u0010\u0013\u000e\u00111\u0013)�\u001e-\u001c%\u0014.\"'&", - "origin": [ - 305.39996337890625, - 356.95013427734375 - ], - "bbox": [ - 305.39996337890625, - 350.45013427734375, - 408.1999206542969, - 368.3501281738281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "–Þc×gÓGâ8ÑwÛcÓQò", - "origin": [ - 408.1999206542969, - 356.95013427734375 - ], - "bbox": [ - 408.1999206542969, - 350.45013427734375, - 449.69989013671875, - 369.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 305.39996337890625, - 350.45013427734375, - 449.69989013671875, - 369.3501281738281 - ] - } - ] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 469.0999755859375, - 350.45013427734375, - 518.7000122070312, - 369.3501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔlØ8ÒrÑÖÑwßré¢à»ÔwÛcÜ", - "origin": [ - 469.0999755859375, - 356.95013427734375 - ], - "bbox": [ - 469.0999755859375, - 350.45013427734375, - 518.7000122070312, - 369.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 469.0999755859375, - 350.45013427734375, - 518.7000122070312, - 369.3501281738281 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 71.0999755859375, - 363.45013427734375, - 154.59999084472656, - 382.3501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×;ÛZÞ1ÒrØ8ÓZæ=ÝrÞGÙ¥Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 71.0999755859375, - 369.95013427734375 - ], - "bbox": [ - 71.0999755859375, - 363.45013427734375, - 154.59999084472656, - 382.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 363.45013427734375, - 154.59999084472656, - 382.3501281738281 - ] - } - ] - }, - { - "number": 99, - "type": 0, - "bbox": [ - 234.7999725341797, - 375.8501281738281, - 237.49996948242188, - 394.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 234.7999725341797, - 382.8501281738281 - ], - "bbox": [ - 234.7999725341797, - 376.3501281738281, - 234.7999725341797, - 394.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 234.7999725341797, - 382.8501281738281 - ], - "bbox": [ - 234.7999725341797, - 375.8501281738281, - 237.49996948242188, - 394.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.7999725341797, - 375.8501281738281, - 237.49996948242188, - 394.2501220703125 - ] - } - ] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 268.2999572753906, - 369.95013427734375, - 279.5999450683594, - 404.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "'\u001d\u001e", - "origin": [ - 268.2999572753906, - 382.8501281738281 - ], - "bbox": [ - 268.2999572753906, - 369.95013427734375, - 274.2999572753906, - 404.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001dï", - "origin": [ - 274.2999572753906, - 382.8501281738281 - ], - "bbox": [ - 274.2999572753906, - 376.3501281738281, - 279.5999450683594, - 395.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 268.2999572753906, - 369.95013427734375, - 279.5999450683594, - 404.6501159667969 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 291.699951171875, - 369.45013427734375, - 305.0999450683594, - 404.1501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 291.699951171875, - 382.3501281738281 - ], - "bbox": [ - 291.699951171875, - 375.3501281738281, - 291.699951171875, - 393.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "10", - "origin": [ - 291.699951171875, - 382.3501281738281 - ], - "bbox": [ - 291.699951171875, - 369.45013427734375, - 305.0999450683594, - 404.1501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 291.699951171875, - 369.45013427734375, - 305.0999450683594, - 404.1501159667969 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 313.89996337890625, - 375.8501281738281, - 316.5999755859375, - 394.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 313.89996337890625, - 382.8501281738281 - ], - "bbox": [ - 313.89996337890625, - 376.3501281738281, - 313.89996337890625, - 394.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 313.89996337890625, - 382.8501281738281 - ], - "bbox": [ - 313.89996337890625, - 375.8501281738281, - 316.5999755859375, - 394.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.89996337890625, - 375.8501281738281, - 316.5999755859375, - 394.2501220703125 - ] - } - ] - }, - { - "number": 106, - "type": 0, - "bbox": [ - 347.3999328613281, - 369.95013427734375, - 358.6999206542969, - 404.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "'\u001d\u001e", - "origin": [ - 347.3999328613281, - 382.8501281738281 - ], - "bbox": [ - 347.3999328613281, - 369.95013427734375, - 353.3999328613281, - 404.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001dï", - "origin": [ - 353.3999328613281, - 382.8501281738281 - ], - "bbox": [ - 353.3999328613281, - 376.3501281738281, - 358.6999206542969, - 395.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.3999328613281, - 369.95013427734375, - 358.6999206542969, - 404.6501159667969 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 108, - "type": 0, - "bbox": [ - 514.8999633789062, - 375.8501281738281, - 520.5999755859375, - 395.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ô", - "origin": [ - 514.8999633789062, - 382.8501281738281 - ], - "bbox": [ - 514.8999633789062, - 376.3501281738281, - 514.8999633789062, - 395.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 514.8999633789062, - 382.8501281738281 - ], - "bbox": [ - 514.8999633789062, - 375.8501281738281, - 520.5999755859375, - 394.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.8999633789062, - 375.8501281738281, - 520.5999755859375, - 395.2501220703125 - ] - } - ] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 71.09994506835938, - 395.7501220703125, - 283.39996337890625, - 414.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u001b×;ÝrÚ8ÛcÒrÔÖØ—ÛcÜ8׳á4ÔwÝ?â8ãVÔÖÑlÑw×»×gäVâ8Ò\u001dÛcÔwÝ?ؖÔlؗÛcÜu×;æ=ÝrÞGÙ", - "origin": [ - 71.09994506835938, - 402.2501220703125 - ], - "bbox": [ - 71.09994506835938, - 395.7501220703125, - 273.7999572753906, - 414.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u000b\u0017", - "origin": [ - 273.7999572753906, - 402.2501220703125 - ], - "bbox": [ - 273.7999572753906, - 395.7501220703125, - 283.39996337890625, - 413.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 395.7501220703125, - 283.39996337890625, - 414.6501159667969 - ] - } - ] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 146.59994506835938, - 420.6501159667969, - 152.09994506835938, - 455.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u000f\u000e", - "origin": [ - 146.59994506835938, - 433.55010986328125 - ], - "bbox": [ - 146.59994506835938, - 420.6501159667969, - 152.09994506835938, - 455.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.59994506835938, - 420.6501159667969, - 152.09994506835938, - 455.35009765625 - ] - } - ] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 175.79994201660156, - 415.4501037597656, - 189.99993896484375, - 450.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 175.79994201660156, - 428.35009765625 - ], - "bbox": [ - 175.79994201660156, - 421.35009765625, - 175.79994201660156, - 439.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20\u001b�\n�", - "origin": [ - 175.79994201660156, - 428.35009765625 - ], - "bbox": [ - 175.79994201660156, - 415.4501037597656, - 189.99993896484375, - 450.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.79994201660156, - 415.4501037597656, - 189.99993896484375, - 450.15008544921875 - ] - } - ] - }, - { - "number": 116, - "type": 0, - "bbox": [ - 230.69993591308594, - 415.9501037597656, - 240.0999298095703, - 450.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "354", - "origin": [ - 230.69993591308594, - 428.85009765625 - ], - "bbox": [ - 230.69993591308594, - 415.9501037597656, - 240.0999298095703, - 450.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.69993591308594, - 415.9501037597656, - 240.0999298095703, - 450.65008544921875 - ] - } - ] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 236.49993896484375, - 416.1501159667969, - 245.69993591308594, - 450.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 236.49993896484375, - 429.05010986328125 - ], - "bbox": [ - 236.49993896484375, - 422.05010986328125, - 236.49993896484375, - 440.4501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "76", - "origin": [ - 236.49993896484375, - 429.05010986328125 - ], - "bbox": [ - 236.49993896484375, - 416.1501159667969, - 245.69993591308594, - 450.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 236.49993896484375, - 416.1501159667969, - 245.69993591308594, - 450.85009765625 - ] - } - ] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 265.99993896484375, - 416.1501159667969, - 275.0999450683594, - 450.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 265.99993896484375, - 429.05010986328125 - ], - "bbox": [ - 265.99993896484375, - 422.05010986328125, - 265.99993896484375, - 440.4501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "98", - "origin": [ - 265.99993896484375, - 429.05010986328125 - ], - "bbox": [ - 265.99993896484375, - 416.1501159667969, - 275.0999450683594, - 450.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 265.99993896484375, - 416.1501159667969, - 275.0999450683594, - 450.85009765625 - ] - } - ] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 282.2999267578125, - 415.55010986328125, - 292.8999328613281, - 450.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "8", - "origin": [ - 282.2999267578125, - 428.4501037597656 - ], - "bbox": [ - 282.2999267578125, - 421.4501037597656, - 282.2999267578125, - 439.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ";:", - "origin": [ - 282.2999267578125, - 428.4501037597656 - ], - "bbox": [ - 282.2999267578125, - 415.55010986328125, - 292.8999328613281, - 450.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.2999267578125, - 415.55010986328125, - 292.8999328613281, - 450.2500915527344 - ] - } - ] - }, - { - "number": 123, - "type": 0, - "bbox": [ - 312.99993896484375, - 415.4501037597656, - 317.2999267578125, - 450.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 312.99993896484375, - 428.35009765625 - ], - "bbox": [ - 312.99993896484375, - 421.35009765625, - 312.99993896484375, - 439.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20", - "origin": [ - 312.99993896484375, - 428.35009765625 - ], - "bbox": [ - 312.99993896484375, - 415.4501037597656, - 317.2999267578125, - 450.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.99993896484375, - 415.4501037597656, - 317.2999267578125, - 450.15008544921875 - ] - } - ] - }, - { - "number": 124, - "type": 0, - "bbox": [ - 322.7999267578125, - 415.9501037597656, - 333.59991455078125, - 450.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 322.7999267578125, - 428.85009765625 - ], - "bbox": [ - 322.7999267578125, - 421.85009765625, - 322.7999267578125, - 440.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": " <\u001d�", - "origin": [ - 322.7999267578125, - 428.85009765625 - ], - "bbox": [ - 322.7999267578125, - 415.9501037597656, - 333.59991455078125, - 450.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 322.7999267578125, - 415.9501037597656, - 333.59991455078125, - 450.65008544921875 - ] - } - ] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 353.49993896484375, - 415.4501037597656, - 367.7999267578125, - 450.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 353.49993896484375, - 428.35009765625 - ], - "bbox": [ - 353.49993896484375, - 421.35009765625, - 353.49993896484375, - 439.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20=�\n�", - "origin": [ - 353.49993896484375, - 428.35009765625 - ], - "bbox": [ - 353.49993896484375, - 415.4501037597656, - 367.7999267578125, - 450.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.49993896484375, - 415.4501037597656, - 367.7999267578125, - 450.15008544921875 - ] - } - ] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 130, - "type": 0, - "bbox": [ - 515.0999145507812, - 421.85009765625, - 520.5999145507812, - 441.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 515.0999145507812, - 428.85009765625 - ], - "bbox": [ - 515.0999145507812, - 422.35009765625, - 515.0999145507812, - 441.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0999145507812, - 428.85009765625 - ], - "bbox": [ - 515.0999145507812, - 421.85009765625, - 520.5999145507812, - 440.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.0999145507812, - 421.85009765625, - 520.5999145507812, - 441.2500915527344 - ] - } - ] - }, - { - "number": 132, - "type": 0, - "bbox": [ - 183.4999237060547, - 445.55010986328125, - 192.5999298095703, - 480.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 183.4999237060547, - 458.4501037597656 - ], - "bbox": [ - 183.4999237060547, - 451.4501037597656, - 183.4999237060547, - 469.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "9>", - "origin": [ - 183.4999237060547, - 458.4501037597656 - ], - "bbox": [ - 183.4999237060547, - 445.55010986328125, - 192.5999298095703, - 480.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 183.4999237060547, - 445.55010986328125, - 192.5999298095703, - 480.2500915527344 - ] - } - ] - }, - { - "number": 133, - "type": 0, - "bbox": [ - 208.89991760253906, - 451.2500915527344, - 211.59991455078125, - 469.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 208.89991760253906, - 458.2500915527344 - ], - "bbox": [ - 208.89991760253906, - 451.7500915527344, - 208.89991760253906, - 469.65008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 208.89991760253906, - 458.2500915527344 - ], - "bbox": [ - 208.89991760253906, - 451.2500915527344, - 211.59991455078125, - 469.65008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.89991760253906, - 451.2500915527344, - 211.59991455078125, - 469.65008544921875 - ] - } - ] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 262.20001220703125, - 444.8500061035156, - 282.70001220703125, - 479.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "8#9", - "origin": [ - 262.20001220703125, - 457.8500061035156 - ], - "bbox": [ - 262.20001220703125, - 450.8500061035156, - 272.8000183105469, - 469.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.20001220703125, - 450.8500061035156, - 272.8000183105469, - 469.25 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 279.3000183105469, - 457.75 - ], - "bbox": [ - 279.3000183105469, - 450.75, - 279.3000183105469, - 469.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "@?", - "origin": [ - 279.3000183105469, - 457.75 - ], - "bbox": [ - 279.3000183105469, - 444.8500061035156, - 282.70001220703125, - 479.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 279.3000183105469, - 444.8500061035156, - 282.70001220703125, - 479.54998779296875 - ] - } - ] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 313.8999938964844, - 451.75, - 322.5999755859375, - 470.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™ÝrÞ", - "origin": [ - 313.8999938964844, - 458.25 - ], - "bbox": [ - 313.8999938964844, - 451.75, - 322.5999755859375, - 470.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.8999938964844, - 451.75, - 322.5999755859375, - 470.6499938964844 - ] - } - ] - }, - { - "number": 147, - "type": 0, - "bbox": [ - 363.6000061035156, - 444.8500061035156, - 367.8999938964844, - 479.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 363.6000061035156, - 457.75 - ], - "bbox": [ - 363.6000061035156, - 450.75, - 363.6000061035156, - 469.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20", - "origin": [ - 363.6000061035156, - 457.75 - ], - "bbox": [ - 363.6000061035156, - 444.8500061035156, - 367.8999938964844, - 479.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.6000061035156, - 444.8500061035156, - 367.8999938964844, - 479.54998779296875 - ] - } - ] - }, - { - "number": 148, - "type": 0, - "bbox": [ - 515.0999755859375, - 451.25, - 520.5999755859375, - 470.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ø", - "origin": [ - 515.0999755859375, - 458.25 - ], - "bbox": [ - 515.0999755859375, - 451.75, - 515.0999755859375, - 470.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0999755859375, - 458.25 - ], - "bbox": [ - 515.0999755859375, - 451.25, - 520.5999755859375, - 469.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.0999755859375, - 451.25, - 520.5999755859375, - 470.6499938964844 - ] - } - ] - }, - { - "number": 149, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 151, - "type": 0, - "bbox": [ - 184.4999542236328, - 475.8500061035156, - 188.79995727539062, - 510.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 184.4999542236328, - 488.75 - ], - "bbox": [ - 184.4999542236328, - 481.75, - 184.4999542236328, - 500.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20", - "origin": [ - 184.4999542236328, - 488.75 - ], - "bbox": [ - 184.4999542236328, - 475.8500061035156, - 188.79995727539062, - 510.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 184.4999542236328, - 475.8500061035156, - 188.79995727539062, - 510.54998779296875 - ] - } - ] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 208.89996337890625, - 482.25, - 211.59996032714844, - 500.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 208.89996337890625, - 489.25 - ], - "bbox": [ - 208.89996337890625, - 482.75, - 208.89996337890625, - 500.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 208.89996337890625, - 489.25 - ], - "bbox": [ - 208.89996337890625, - 482.25, - 211.59996032714844, - 500.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.89996337890625, - 482.25, - 211.59996032714844, - 500.6499938964844 - ] - } - ] - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 161, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 165, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 168, - "type": 0, - "bbox": [ - 367.8000183105469, - 475.8500061035156, - 371.3000183105469, - 510.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 367.8000183105469, - 488.75 - ], - "bbox": [ - 367.8000183105469, - 481.75, - 367.8000183105469, - 500.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "A0", - "origin": [ - 367.8000183105469, - 488.75 - ], - "bbox": [ - 367.8000183105469, - 475.8500061035156, - 371.3000183105469, - 510.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.8000183105469, - 475.8500061035156, - 371.3000183105469, - 510.54998779296875 - ] - } - ] - }, - { - "number": 169, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 171, - "type": 0, - "bbox": [ - 417.5, - 475.8500061035156, - 421.0, - 510.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 417.5, - 488.75 - ], - "bbox": [ - 417.5, - 481.75, - 417.5, - 500.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "A0", - "origin": [ - 417.5, - 488.75 - ], - "bbox": [ - 417.5, - 475.8500061035156, - 421.0, - 510.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 417.5, - 475.8500061035156, - 421.0, - 510.54998779296875 - ] - } - ] - }, - { - "number": 173, - "type": 0, - "bbox": [ - 439.8999938964844, - 476.3500061035156, - 450.6000061035156, - 511.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 439.8999938964844, - 489.25 - ], - "bbox": [ - 439.8999938964844, - 482.25, - 439.8999938964844, - 500.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "CB", - "origin": [ - 439.8999938964844, - 489.25 - ], - "bbox": [ - 439.8999938964844, - 476.3500061035156, - 450.6000061035156, - 511.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 439.8999938964844, - 476.3500061035156, - 450.6000061035156, - 511.04998779296875 - ] - } - ] - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 176, - "type": 0, - "bbox": [ - 71.4000244140625, - 510.6500244140625, - 240.10003662109375, - 529.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëV×Qãr×QÞ1ÒrѬÕ/Ý?Ù¥Ù�×gØ©ÛcÓ»Ò\u001dÞc×\u0019ÔÖØ\rÝrÞGèu×QÞ»Ü8×QÞc×", - "origin": [ - 71.4000244140625, - 517.1500244140625 - ], - "bbox": [ - 71.4000244140625, - 510.6500244140625, - 234.70004272460938, - 529.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%\u0017", - "origin": [ - 234.70004272460938, - 517.1500244140625 - ], - "bbox": [ - 234.70004272460938, - 510.6500244140625, - 240.10003662109375, - 528.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.4000244140625, - 510.6500244140625, - 240.10003662109375, - 529.550048828125 - ] - } - ] - }, - { - "number": 179, - "type": 0, - "bbox": [ - 100.9000244140625, - 529.5499877929688, - 520.2999877929688, - 548.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×¥å8Þc×gÓc×gتÛ%ÞG×Qæ™ÝrÞGÙ&â8ÑÖÒ\u001dÛcÔÖÝ?Ø�ÝræNÕQÑÖÒrÓcÓcÔÖÕQÒrѽèußVØ+ÒrÙ¥ÔÖÕQÓ;ÔÖØ�åyÜ8ÒrÓZ× ÓZåyÒrÕ/× ÕQÒrØ", - "origin": [ - 100.9000244140625, - 536.0499877929688 - ], - "bbox": [ - 100.9000244140625, - 529.5499877929688, - 412.4000244140625, - 548.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.9000244140625, - 529.5499877929688, - 412.4000244140625, - 548.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú× ÕQÒ\u001dÞcÞ1Ôw×gè�Ý?âuÛ%Þ1Ò\u001dÛcÜu×QÞ", - "origin": [ - 422.7000427246094, - 536.0499877929688 - ], - "bbox": [ - 422.7000427246094, - 529.5499877929688, - 520.2999877929688, - 548.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.7000427246094, - 529.5499877929688, - 520.2999877929688, - 548.4500122070312 - ] - } - ] - }, - { - "number": 180, - "type": 0, - "bbox": [ - 92.9000244140625, - 536.0499267578125, - 520.9000244140625, - 570.7499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔlØ8èu×Qå×gØ8èu×gØ©ÛcÑwߖÝræ\u0010ÛcÜu× ØVâ8Ù\u0019ڐ×QÞ%ÝræNèu×QçrÞc×Q×gÓ%Ýræ\u0010æ=Þc×Q×gèuÝ?Ù�ÒrØ+è7ÔÖÓ%Ò\u001då+å+ÑÖÔÖÕQÒ\u001dÚ+ÑÖ×\u0019ÛZÝ", - "origin": [ - 92.9000244140625, - 548.949951171875 - ], - "bbox": [ - 92.9000244140625, - 542.449951171875, - 434.0999755859375, - 561.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.9000244140625, - 542.449951171875, - 434.0999755859375, - 561.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥Ò\u001dÛZÞGÔ", - "origin": [ - 444.10003662109375, - 548.949951171875 - ], - "bbox": [ - 444.10003662109375, - 542.449951171875, - 467.10003662109375, - 561.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "+�", - "origin": [ - 467.10003662109375, - 548.949951171875 - ], - "bbox": [ - 467.10003662109375, - 542.449951171875, - 470.0000305175781, - 560.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u000fÝrÞ", - "origin": [ - 470.0000305175781, - 548.949951171875 - ], - "bbox": [ - 470.0000305175781, - 542.449951171875, - 485.5000305175781, - 561.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "FE", - "origin": [ - 485.5000305175781, - 548.949951171875 - ], - "bbox": [ - 485.5000305175781, - 536.0499267578125, - 494.4000244140625, - 570.7499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016Þ1ÒrÓcÓ", - "origin": [ - 494.4000244140625, - 548.949951171875 - ], - "bbox": [ - 494.4000244140625, - 542.449951171875, - 516.800048828125, - 561.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "A�", - "origin": [ - 516.800048828125, - 548.949951171875 - ], - "bbox": [ - 516.800048828125, - 542.449951171875, - 520.9000244140625, - 560.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.10003662109375, - 536.0499267578125, - 520.9000244140625, - 570.7499389648438 - ] - } - ] - }, - { - "number": 181, - "type": 0, - "bbox": [ - 92.9000244140625, - 555.449951171875, - 231.6999969482422, - 574.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù ÒrØ8ؗã\u001dÒrÑÖâu×gè\rã\u001dÒ\u001dÞGÔÖÒ\u001dÚ+Ñw×gÓNÒrÓ»à\"×gÑlÑ", - "origin": [ - 92.9000244140625, - 561.949951171875 - ], - "bbox": [ - 92.9000244140625, - 555.449951171875, - 231.6999969482422, - 574.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.9000244140625, - 555.449951171875, - 231.6999969482422, - 574.3499755859375 - ] - } - ] - }, - { - "number": 183, - "type": 0, - "bbox": [ - 241.40003967285156, - 549.0499267578125, - 522.1998901367188, - 583.7499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZ×Q×ré8æ=ÝrÞ^×", - "origin": [ - 241.40003967285156, - 561.949951171875 - ], - "bbox": [ - 241.40003967285156, - 555.449951171875, - 278.6000061035156, - 574.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 278.6000061035156, - 561.949951171875 - ], - "bbox": [ - 278.6000061035156, - 555.449951171875, - 283.3000183105469, - 573.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ�å+Ñw×ré+ý»×Qæ=Ógò4ížøWéyïrð\u0018ñJò", - "origin": [ - 283.3000183105469, - 561.949951171875 - ], - "bbox": [ - 283.3000183105469, - 555.449951171875, - 381.29998779296875, - 574.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "GE", - "origin": [ - 381.29998779296875, - 561.949951171875 - ], - "bbox": [ - 381.29998779296875, - 549.0499267578125, - 388.8999938964844, - 583.7499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";Òrâuçr×%ÛcÜu×QÝrÞGÔÖ×gÓNÝrÞgé8çr×gØu×QÞ1ÒrÑÖÑwßré", - "origin": [ - 388.8999938964844, - 561.949951171875 - ], - "bbox": [ - 388.8999938964844, - 555.449951171875, - 522.1998901367188, - 574.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.40003967285156, - 549.0499267578125, - 522.1998901367188, - 583.7499389648438 - ] - } - ] - }, - { - "number": 184, - "type": 0, - "bbox": [ - 92.80003356933594, - 568.3499755859375, - 356.5999755859375, - 587.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×QÝrÞGÔw×gÓ^à¢ÔwÛcܗÕ/Ý?Ø8ÓZÛZÞGÒrÔlتÛcÓ^Ü+Ògãr׳ÛZÝ Ú6ד×", - "origin": [ - 92.80003356933594, - 574.8499755859375 - ], - "bbox": [ - 92.80003356933594, - 568.3499755859375, - 267.3000183105469, - 587.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 267.3000183105469, - 574.8499755859375 - ], - "bbox": [ - 267.3000183105469, - 568.3499755859375, - 272.0000305175781, - 586.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ¥ÔÖØu×gè!ÕQÒ\u001dÞc×Qæ=â+ÑÖÑwßrò", - "origin": [ - 272.0000305175781, - 574.8499755859375 - ], - "bbox": [ - 272.0000305175781, - 568.3499755859375, - 356.5999755859375, - 587.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.80003356933594, - 568.3499755859375, - 356.5999755859375, - 587.25 - ] - } - ] - }, - { - "number": 185, - "type": 0, - "bbox": [ - 82.20003509521484, - 593.6499633789062, - 93.00003814697266, - 628.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "DIH", - "origin": [ - 82.20003509521484, - 606.5499877929688 - ], - "bbox": [ - 82.20003509521484, - 593.6499633789062, - 93.00003814697266, - 628.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20003509521484, - 593.6499633789062, - 93.00003814697266, - 628.3499755859375 - ] - } - ] - }, - { - "number": 186, - "type": 0, - "bbox": [ - 102.80003356933594, - 590.7499389648438, - 219.40000915527344, - 625.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÓZÛ\u001fÔÖÙ�åÝrÞcÛcÒrØ©ÛcÑwßré½ÛcÜu×", - "origin": [ - 102.80003356933594, - 603.6499633789062 - ], - "bbox": [ - 102.80003356933594, - 597.1499633789062, - 196.00001525878906, - 616.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\"!", - "origin": [ - 196.00001525878906, - 603.6499633789062 - ], - "bbox": [ - 196.00001525878906, - 590.7499389648438, - 205.70001220703125, - 625.449951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 205.70001220703125, - 603.6499633789062 - ], - "bbox": [ - 205.70001220703125, - 597.1499633789062, - 219.40000915527344, - 616.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.80003356933594, - 590.7499389648438, - 219.40000915527344, - 625.449951171875 - ] - } - ] - }, - { - "number": 188, - "type": 0, - "bbox": [ - 228.00003051757812, - 590.7499389648438, - 519.0000610351562, - 625.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 228.00003051757812, - 603.6499633789062 - ], - "bbox": [ - 228.00003051757812, - 597.1499633789062, - 228.00003051757812, - 616.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 228.00003051757812, - 603.6499633789062 - ], - "bbox": [ - 228.00003051757812, - 596.6499633789062, - 233.50003051757812, - 615.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥ÕQÑwÝ?ÓZ×gÑwß", - "origin": [ - 233.50003051757812, - 603.6499633789062 - ], - "bbox": [ - 233.50003051757812, - 597.1499633789062, - 268.0000305175781, - 616.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.00003051757812, - 596.6499633789062, - 268.0000305175781, - 616.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÓZ×gÙ\u0019Ú+Ñw×gÓ\u0014ÛcÜ8×", - "origin": [ - 278.60003662109375, - 603.6499633789062 - ], - "bbox": [ - 278.60003662109375, - 597.1499633789062, - 339.0000305175781, - 616.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "a6", - "origin": [ - 339.0000305175781, - 603.6499633789062 - ], - "bbox": [ - 339.0000305175781, - 597.1499633789062, - 349.3000183105469, - 615.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.60003662109375, - 597.1499633789062, - 349.3000183105469, - 616.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010\u0013\u001e", - "origin": [ - 354.5000305175781, - 603.6499633789062 - ], - "bbox": [ - 354.5000305175781, - 597.1499633789062, - 359.8000183105469, - 615.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "KJ", - "origin": [ - 359.8000183105469, - 603.6499633789062 - ], - "bbox": [ - 359.8000183105469, - 590.7499389648438, - 367.6000061035156, - 625.449951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.5000305175781, - 590.7499389648438, - 367.6000061035156, - 625.449951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"\u0018\u001b�\u0012\\\\u001c%\u001e\u001d\u001e", - "origin": [ - 376.3000183105469, - 603.6499633789062 - ], - "bbox": [ - 376.3000183105469, - 597.1499633789062, - 407.5, - 615.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.3000183105469, - 597.1499633789062, - 407.5, - 615.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"3S\u0018\u001b\u001d\u001c%\u0014 )>\u0010\u0013\u001e", - "origin": [ - 418.9000244140625, - 603.6499633789062 - ], - "bbox": [ - 418.9000244140625, - 597.1499633789062, - 452.0, - 615.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "7æ=ÝrÞ Ò", - "origin": [ - 452.0, - 603.6499633789062 - ], - "bbox": [ - 452.0, - 597.1499633789062, - 480.3999938964844, - 616.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 418.9000244140625, - 597.1499633789062, - 480.3999938964844, - 616.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8×gØ8ÓcÔwÛ¯ß", - "origin": [ - 490.70001220703125, - 603.6499633789062 - ], - "bbox": [ - 490.70001220703125, - 597.1499633789062, - 519.0000610351562, - 616.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 490.70001220703125, - 597.1499633789062, - 519.0000610351562, - 616.0499877929688 - ] - } - ] - }, - { - "number": 189, - "type": 0, - "bbox": [ - 92.80001831054688, - 611.449951171875, - 128.80001831054688, - 630.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýrå×QÞGÒ\u001dÛZÝrÞ", - "origin": [ - 92.80001831054688, - 617.949951171875 - ], - "bbox": [ - 92.80001831054688, - 611.449951171875, - 128.80001831054688, - 630.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.80001831054688, - 611.449951171875, - 128.80001831054688, - 630.3499755859375 - ] - } - ] - }, - { - "number": 190, - "type": 0, - "bbox": [ - 144.6000213623047, - 604.5499267578125, - 148.00001525878906, - 639.2499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 144.6000213623047, - 617.449951171875 - ], - "bbox": [ - 144.6000213623047, - 610.449951171875, - 144.6000213623047, - 628.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "@�", - "origin": [ - 144.6000213623047, - 617.449951171875 - ], - "bbox": [ - 144.6000213623047, - 604.5499267578125, - 148.00001525878906, - 639.2499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 144.6000213623047, - 604.5499267578125, - 148.00001525878906, - 639.2499389648438 - ] - } - ] - }, - { - "number": 191, - "type": 0, - "bbox": [ - 152.30001831054688, - 605.0499267578125, - 221.2000274658203, - 639.7499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 152.30001831054688, - 617.949951171875 - ], - "bbox": [ - 152.30001831054688, - 610.949951171875, - 152.30001831054688, - 629.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é4Õ/Ý?Ø8ÓGÔÖèu×QÞGÔÖØ8ç", - "origin": [ - 152.30001831054688, - 617.949951171875 - ], - "bbox": [ - 152.30001831054688, - 611.449951171875, - 211.80003356933594, - 630.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "5�", - "origin": [ - 211.80003356933594, - 617.949951171875 - ], - "bbox": [ - 211.80003356933594, - 605.0499267578125, - 221.2000274658203, - 639.7499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.30001831054688, - 605.0499267578125, - 221.2000274658203, - 639.7499389648438 - ] - } - ] - }, - { - "number": 194, - "type": 0, - "bbox": [ - 241.00001525878906, - 604.5499267578125, - 255.30001831054688, - 639.2499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "3", - "origin": [ - 241.00001525878906, - 617.449951171875 - ], - "bbox": [ - 241.00001525878906, - 610.449951171875, - 241.00001525878906, - 628.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "20=�\n�", - "origin": [ - 241.00001525878906, - 617.449951171875 - ], - "bbox": [ - 241.00001525878906, - 604.5499267578125, - 255.30001831054688, - 639.2499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.00001525878906, - 604.5499267578125, - 255.30001831054688, - 639.2499389648438 - ] - } - ] - }, - { - "number": 195, - "type": 0, - "bbox": [ - 259.6000061035156, - 610.949951171875, - 374.5999755859375, - 630.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 259.6000061035156, - 617.949951171875 - ], - "bbox": [ - 259.6000061035156, - 610.949951171875, - 259.6000061035156, - 629.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¢ÒrÓ%ÔwÛcӓ٥Ò\u001dÛZÞGÔ", - "origin": [ - 259.6000061035156, - 617.949951171875 - ], - "bbox": [ - 259.6000061035156, - 611.449951171875, - 320.1999816894531, - 630.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "+�", - "origin": [ - 320.1999816894531, - 617.949951171875 - ], - "bbox": [ - 320.1999816894531, - 611.449951171875, - 323.0999755859375, - 629.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 259.6000061035156, - 610.949951171875, - 323.0999755859375, - 630.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÑw×gÙ�×gØ©ÛcÓQò", - "origin": [ - 333.1000061035156, - 617.949951171875 - ], - "bbox": [ - 333.1000061035156, - 611.449951171875, - 374.5999755859375, - 630.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.1000061035156, - 611.449951171875, - 374.5999755859375, - 630.3499755859375 - ] - } - ] - }, - { - "number": 197, - "type": 0, - "bbox": [ - 393.4000244140625, - 611.449951171875, - 519.7999877929688, - 630.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×¥Òrâ8ÛZÝ?Ù¥Ò\u001dÛcÔÖÕQÒrÑÖÑwßµÞc×gÕ/ÝTãr×QÞ\u0019ÛcÜu×", - "origin": [ - 393.4000244140625, - 617.949951171875 - ], - "bbox": [ - 393.4000244140625, - 611.449951171875, - 519.7999877929688, - 630.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 393.4000244140625, - 611.449951171875, - 519.7999877929688, - 630.3499755859375 - ] - } - ] - }, - { - "number": 198, - "type": 0, - "bbox": [ - 92.9000244140625, - 619.1499633789062, - 201.70001220703125, - 653.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê\u0016ÒrÙ¥ÔÖÑÖÛZÝ?Ø8ÔÖÒrØ&Ýrå×QÞGÒ\u001dÛZÝrÞ", - "origin": [ - 92.9000244140625, - 632.0499877929688 - ], - "bbox": [ - 92.9000244140625, - 625.5499877929688, - 190.90000915527344, - 644.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "I4", - "origin": [ - 190.90000915527344, - 632.0499877929688 - ], - "bbox": [ - 190.90000915527344, - 619.1499633789062, - 201.70001220703125, - 653.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.9000244140625, - 619.1499633789062, - 201.70001220703125, - 653.8499755859375 - ] - } - ] - }, - { - "number": 200, - "type": 0, - "bbox": [ - 210.80003356933594, - 619.1499633789062, - 397.9000244140625, - 653.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÑÖÒ\u001dÛZ×gè\u0014ÛZݓÛcÜu×Nê\u0016ÒrÙ¥ÔÖÑwÛZÝ?Ø+ÔÖÒrØ&æ=â8Ø+Õ/ÛcÔwÝ?ذé", - "origin": [ - 210.80003356933594, - 632.0499877929688 - ], - "bbox": [ - 210.80003356933594, - 625.5499877929688, - 378.800048828125, - 644.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "L!", - "origin": [ - 378.800048828125, - 632.0499877929688 - ], - "bbox": [ - 378.800048828125, - 619.1499633789062, - 384.2000427246094, - 653.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 384.2000427246094, - 632.0499877929688 - ], - "bbox": [ - 384.2000427246094, - 625.5499877929688, - 397.9000244140625, - 644.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 210.80003356933594, - 619.1499633789062, - 397.9000244140625, - 653.8499755859375 - ] - } - ] - }, - { - "number": 202, - "type": 0, - "bbox": [ - 407.0000305175781, - 625.0499877929688, - 522.1000366210938, - 644.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î", - "origin": [ - 407.0000305175781, - 632.0499877929688 - ], - "bbox": [ - 407.0000305175781, - 625.5499877929688, - 407.0000305175781, - 644.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ":\u0012", - "origin": [ - 407.0000305175781, - 632.0499877929688 - ], - "bbox": [ - 407.0000305175781, - 625.0499877929688, - 412.0000305175781, - 643.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1éªÒrÓ¡ÔÖØ\u0014äVâ8ÒrتÛcâ+Ù", - "origin": [ - 412.0000305175781, - 632.0499877929688 - ], - "bbox": [ - 412.0000305175781, - 625.5499877929688, - 480.10003662109375, - 644.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 407.0000305175781, - 625.0499877929688, - 480.10003662109375, - 644.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×QÝrÞcßrò", - "origin": [ - 491.800048828125, - 632.0499877929688 - ], - "bbox": [ - 491.800048828125, - 625.5499877929688, - 522.1000366210938, - 644.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 491.800048828125, - 625.5499877929688, - 522.1000366210938, - 644.4500122070312 - ] - } - ] - }, - { - "number": 203, - "type": 0, - "bbox": [ - 92.90005493164062, - 633.1499633789062, - 378.60009765625, - 667.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢ÝTà\u001b×Qãr×QÞgé4Òrص×gÓcÓZ×gØ©ÛcÔÖÒrÑBè8Ô", - "origin": [ - 92.90005493164062, - 646.0499877929688 - ], - "bbox": [ - 92.90005493164062, - 639.5499877929688, - 205.50003051757812, - 658.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.90005493164062, - 639.5499877929688, - 205.50003051757812, - 658.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 208.40005493164062, - 646.0499877929688 - ], - "bbox": [ - 208.40005493164062, - 639.0499877929688, - 208.40005493164062, - 657.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×QÞc×gØ8Õ/×&Õ/Ý?Ø8ÓcÔÖÓZÛcÓ\u0016ÔÖØ!ÛcÜu×\u0019ÔÖØ©ÛZ×QÞGÒrÕ/ÛcÔwÝ?Ø", - "origin": [ - 208.40005493164062, - 646.0499877929688 - ], - "bbox": [ - 208.40005493164062, - 639.5499877929688, - 365.90008544921875, - 658.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u00114", - "origin": [ - 365.90008544921875, - 646.0499877929688 - ], - "bbox": [ - 365.90008544921875, - 633.1499633789062, - 378.60009765625, - 667.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.40005493164062, - 633.1499633789062, - 378.60009765625, - 667.8499755859375 - ] - } - ] - }, - { - "number": 205, - "type": 0, - "bbox": [ - 386.50006103515625, - 633.1499633789062, - 522.0999145507812, - 667.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×QÛsà\u001b×Q×gØ", - "origin": [ - 386.50006103515625, - 646.0499877929688 - ], - "bbox": [ - 386.50006103515625, - 639.5499877929688, - 418.9000244140625, - 658.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "?I\u0018\u000eA\u001c", - "origin": [ - 418.9000244140625, - 646.0499877929688 - ], - "bbox": [ - 418.9000244140625, - 639.5499877929688, - 438.6000061035156, - 657.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "L�", - "origin": [ - 438.6000061035156, - 646.0499877929688 - ], - "bbox": [ - 438.6000061035156, - 633.1499633789062, - 444.0, - 667.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½ÒrØ8è", - "origin": [ - 444.0, - 646.0499877929688 - ], - "bbox": [ - 444.0, - 639.5499877929688, - 462.8999938964844, - 658.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "-M", - "origin": [ - 462.8999938964844, - 646.0499877929688 - ], - "bbox": [ - 462.8999938964844, - 633.1499633789062, - 473.29998779296875, - 667.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%\"\u0018\u0014", - "origin": [ - 473.29998779296875, - 646.0499877929688 - ], - "bbox": [ - 473.29998779296875, - 639.5499877929688, - 483.4999694824219, - 657.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "A�", - "origin": [ - 483.4999694824219, - 646.0499877929688 - ], - "bbox": [ - 483.4999694824219, - 633.1499633789062, - 486.9999694824219, - 667.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "­ÓcÛcÒ\u001dÛZ×gÓQò", - "origin": [ - 486.9999694824219, - 646.0499877929688 - ], - "bbox": [ - 486.9999694824219, - 639.5499877929688, - 522.0999145507812, - 658.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.50006103515625, - 633.1499633789062, - 522.0999145507812, - 667.8499755859375 - ] - } - ] - }, - { - "number": 207, - "type": 0, - "bbox": [ - 100.90005493164062, - 646.1499633789062, - 419.1001281738281, - 680.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×%ê¢ÔlÑwڐ×QÞcÛNÓZå+ÒrÕ/׳ÒrØ8è—ÔÖÛcÓ^è8â8ÒrѰÜu×QÞG×%Ò\u001dÞc׳Õ/Ý?âuå+ÑÖ×gè\rکߗÒ", - "origin": [ - 100.90005493164062, - 659.0499877929688 - ], - "bbox": [ - 100.90005493164062, - 652.5499877929688, - 339.9001159667969, - 671.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001a&\u000f\u001bH4b\"\u0018\u000eA\u0010'4b\"�\u000e\u0011\u001c%\u0014\u0016\u0010\u0013\u000e", - "origin": [ - 339.9001159667969, - 659.0499877929688 - ], - "bbox": [ - 339.9001159667969, - 652.5499877929688, - 407.70013427734375, - 670.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eò", - "origin": [ - 407.70013427734375, - 659.0499877929688 - ], - "bbox": [ - 407.70013427734375, - 652.5499877929688, - 412.3001403808594, - 671.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�N", - "origin": [ - 412.3001403808594, - 659.0499877929688 - ], - "bbox": [ - 412.3001403808594, - 646.1499633789062, - 419.1001281738281, - 680.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.90005493164062, - 646.1499633789062, - 419.1001281738281, - 680.8499755859375 - ] - } - ] - }, - { - "number": 209, - "type": 0, - "bbox": [ - 101.10005187988281, - 674.949951171875, - 193.60003662109375, - 709.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑwÛZ×QÞGØ+Ò\u001dÛcÔwãr×gÑwßré8ÛcÜu×", - "origin": [ - 101.10005187988281, - 687.8499755859375 - ], - "bbox": [ - 101.10005187988281, - 681.3499755859375, - 171.40003967285156, - 700.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "O!", - "origin": [ - 171.40003967285156, - 687.8499755859375 - ], - "bbox": [ - 171.40003967285156, - 674.949951171875, - 179.90003967285156, - 709.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 179.90003967285156, - 687.8499755859375 - ], - "bbox": [ - 179.90003967285156, - 681.3499755859375, - 193.60003662109375, - 700.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.10005187988281, - 674.949951171875, - 193.60003662109375, - 709.6499633789062 - ] - } - ] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 202.20005798339844, - 674.949951171875, - 496.1000061035156, - 709.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 202.20005798339844, - 687.8499755859375 - ], - "bbox": [ - 202.20005798339844, - 681.3499755859375, - 202.20005798339844, - 700.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 202.20005798339844, - 687.8499755859375 - ], - "bbox": [ - 202.20005798339844, - 680.8499755859375, - 207.70005798339844, - 699.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "^Ù¥Ôwç?Ü©Û\u0010Ú6×;ÞG×gÒrè–ÒrÓNÛcÜu×", - "origin": [ - 207.70005798339844, - 687.8499755859375 - ], - "bbox": [ - 207.70005798339844, - 681.3499755859375, - 309.3000183105469, - 700.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "9P", - "origin": [ - 309.3000183105469, - 687.8499755859375 - ], - "bbox": [ - 309.3000183105469, - 674.949951171875, - 318.4000244140625, - 709.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-9�;=\u000e", - "origin": [ - 318.4000244140625, - 687.8499755859375 - ], - "bbox": [ - 318.4000244140625, - 681.3499755859375, - 335.10003662109375, - 699.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "RQ", - "origin": [ - 335.10003662109375, - 687.8499755859375 - ], - "bbox": [ - 335.10003662109375, - 674.949951171875, - 341.7000427246094, - 709.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.20005798339844, - 674.949951171875, - 341.7000427246094, - 709.6499633789062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010,1\u0013)7\u001eG*G\"\u0018\u000eO\"3S\u0018\u001b\u001d\u001c%\u0014 )>\u0010\u0013\u001e", - "origin": [ - 339.9000549316406, - 687.8499755859375 - ], - "bbox": [ - 339.9000549316406, - 681.3499755859375, - 412.3000183105469, - 699.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " æ=ÝrÞ^Ûsà\u001bÝ ÔÖè8×gتÛcÔÖÕQÒrÑ", - "origin": [ - 412.3000183105469, - 687.8499755859375 - ], - "bbox": [ - 412.3000183105469, - 681.3499755859375, - 496.1000061035156, - 700.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 339.9000549316406, - 681.3499755859375, - 496.1000061035156, - 700.25 - ] - } - ] - }, - { - "number": 213, - "type": 0, - "bbox": [ - 506.9000549316406, - 681.3499755859375, - 520.300048828125, - 700.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Óc×QÛcÓ", - "origin": [ - 506.9000549316406, - 687.8499755859375 - ], - "bbox": [ - 506.9000549316406, - 681.3499755859375, - 520.300048828125, - 700.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 506.9000549316406, - 681.3499755859375, - 520.300048828125, - 700.25 - ] - } - ] - }, - { - "number": 214, - "type": 0, - "bbox": [ - 92.800048828125, - 689.25, - 461.3000793457031, - 723.9500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ", - "origin": [ - 92.800048828125, - 701.9500122070312 - ], - "bbox": [ - 92.800048828125, - 695.4500122070312, - 98.2000503540039, - 714.3500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?\u0012", - "origin": [ - 98.2000503540039, - 701.9500122070312 - ], - "bbox": [ - 98.2000503540039, - 694.9500122070312, - 102.7000503540039, - 713.3500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥èu×QçrÞc×Q×gӜÝræ“æ™Þc×Q×gè8Ý?ٗò\u001eê¢ÝTà\u001b×Qãr×QÞgé^ÛcÜu×gÔÖÞ¥Þc×gÓZå×gÕ/ÛcÔwãr×!ê\u0016ÒrÙ¥ÔÖÑÖÛZÝ?ØÁÝrå×QÞGÒ\u001dÛZÝrÞGÓQé", - "origin": [ - 102.7000503540039, - 701.9500122070312 - ], - "bbox": [ - 102.7000503540039, - 695.4500122070312, - 437.20001220703125, - 714.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.800048828125, - 694.9500122070312, - 437.20001220703125, - 714.3500366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 445.00006103515625, - 702.1500244140625 - ], - "bbox": [ - 445.00006103515625, - 695.1500244140625, - 445.00006103515625, - 713.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "76TS", - "origin": [ - 445.00006103515625, - 702.1500244140625 - ], - "bbox": [ - 445.00006103515625, - 689.25, - 461.3000793457031, - 723.9500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.00006103515625, - 689.25, - 461.3000793457031, - 723.9500122070312 - ] - } - ] - }, - { - "number": 215, - "type": 0, - "bbox": [ - 468.10003662109375, - 695.4500122070312, - 519.8001098632812, - 714.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "éNÕ/Ý?تÛZÞGÔÖÚ+âuÛZ×", - "origin": [ - 468.10003662109375, - 701.9500122070312 - ], - "bbox": [ - 468.10003662109375, - 695.4500122070312, - 519.8001098632812, - 714.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 468.10003662109375, - 695.4500122070312, - 519.8001098632812, - 714.3500366210938 - ] - } - ] - }, - { - "number": 216, - "type": 0, - "bbox": [ - 92.80001831054688, - 708.3500366210938, - 520.4000854492188, - 727.2500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à¢ÔwÛcÜ\u001fÝrå8åÝ?ÓcÔwÛZ×;ÓcÔwç?ذéWà»Ü+ÔÖÕGÜ\rÙ&â8ÓZÛ\u0010ڐ×\u0016ÛZÞ1ÒrÕ/×gè—ÛZÝ�ÛcÜu×;ÕQÑÖÒrÓcÓcÔlÕQÒrѰÓZßVÙ¥å+Ñw×gÕ/ÛcÔÖÕ\u0016ÓZßWÙ¥Ù�×QÛZÞcßrò\u001bëuÔÖØ8Õ/×\u0016ÛcÜu×gÔwÞ", - "origin": [ - 92.80001831054688, - 714.8500366210938 - ], - "bbox": [ - 92.80001831054688, - 708.3500366210938, - 520.4000854492188, - 727.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.80001831054688, - 708.3500366210938, - 520.4000854492188, - 727.2500610351562 - ] - } - ] - }, - { - "number": 218, - "type": 0, - "bbox": [ - 80.30001831054688, - 730.9500122070312, - 86.80001831054688, - 749.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 80.30001831054688, - 737.4500122070312 - ], - "bbox": [ - 80.30001831054688, - 730.9500122070312, - 86.80001831054688, - 749.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.30001831054688, - 730.9500122070312, - 86.80001831054688, - 749.8500366210938 - ] - } - ] - }, - { - "number": 219, - "type": 0, - "bbox": [ - 92.00001525878906, - 731.1500244140625, - 274.8000183105469, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX¢XI•aCrM]FJReCrM¯FsEGHJR1F¢ALX¢RG ½E\u0014h/M]FI XICrMPYPAž¤\u0018Y% ºR1FJK“`°‘", - "origin": [ - 92.00001525878906, - 737.6500244140625 - ], - "bbox": [ - 92.00001525878906, - 731.1500244140625, - 274.8000183105469, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.00001525878906, - 731.1500244140625, - 274.8000183105469, - 750.050048828125 - ] - } - ] - }, - { - "number": 221, - "type": 0, - "bbox": [ - 286.6000061035156, - 731.1500244140625, - 289.20001220703125, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ADY", - "origin": [ - 286.6000061035156, - 737.6500244140625 - ], - "bbox": [ - 286.6000061035156, - 731.1500244140625, - 289.20001220703125, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.6000061035156, - 731.1500244140625, - 289.20001220703125, - 750.050048828125 - ] - } - ] - }, - { - "number": 223, - "type": 0, - "bbox": [ - 302.5, - 731.1500244140625, - 339.20001220703125, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "tLMZE1SaX^HJR&H", - "origin": [ - 302.5, - 737.6500244140625 - ], - "bbox": [ - 302.5, - 731.1500244140625, - 339.20001220703125, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 302.5, - 731.1500244140625, - 339.20001220703125, - 750.050048828125 - ] - } - ] - }, - { - "number": 225, - "type": 0, - "bbox": [ - 348.1000061035156, - 724.75, - 516.7999877929688, - 759.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M%EGOgHJALX’TKNKNM]HIFI¥ALO—\\+”\u001dš", - "origin": [ - 348.1000061035156, - 737.6500244140625 - ], - "bbox": [ - 348.1000061035156, - 731.1500244140625, - 440.1000061035156, - 750.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\nV", - "origin": [ - 440.1000061035156, - 737.6500244140625 - ], - "bbox": [ - 440.1000061035156, - 724.75, - 444.3000183105469, - 759.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "lq", - "origin": [ - 444.3000183105469, - 737.6500244140625 - ], - "bbox": [ - 444.3000183105469, - 731.1500244140625, - 447.5000305175781, - 750.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "XW", - "origin": [ - 447.5000305175781, - 737.6500244140625 - ], - "bbox": [ - 447.5000305175781, - 724.75, - 452.10003662109375, - 759.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¯šµj™H¢SaAž¿?M]FJXN ´FJReK", - "origin": [ - 452.10003662109375, - 737.6500244140625 - ], - "bbox": [ - 452.10003662109375, - 731.1500244140625, - 516.7999877929688, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.1000061035156, - 724.75, - 516.7999877929688, - 759.4500122070312 - ] - } - ] - }, - { - "number": 226, - "type": 0, - "bbox": [ - 71.20001220703125, - 742.1500244140625, - 455.4000549316406, - 761.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E�b©ALO\u001dST£\u0018tDEeSœXI•\u0018CrM]FJR1CrM]FsEGHJRGFZ`BRG ºHJMPO—R1£aHsE1ALOaMZS—E1X¢E\u0014X’TKNKNM]HIFJALY;SaR1•\u0018£\u0018tLM%YPR1KNK\u001b•aHsEcHJR1F^X’HIFJ•aY]HJ•aFJMe`4ALO\u001fH", - "origin": [ - 71.20001220703125, - 748.6500244140625 - ], - "bbox": [ - 71.20001220703125, - 742.1500244140625, - 455.4000549316406, - 761.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 742.1500244140625, - 455.4000549316406, - 761.050048828125 - ] - } - ] - }, - { - "number": 228, - "type": 0, - "bbox": [ - 464.20001220703125, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M³YPE1XIM³R1 ­ReCrM]O", - "origin": [ - 464.20001220703125, - 748.6500244140625 - ], - "bbox": [ - 464.20001220703125, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 464.20001220703125, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ] - } - ] - }, - { - "number": 229, - "type": 0, - "bbox": [ - 71.20001220703125, - 753.1500244140625, - 121.90001678466797, - 772.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u001dE1OQHJ•aK", - "origin": [ - 71.20001220703125, - 759.6500244140625 - ], - "bbox": [ - 71.20001220703125, - 753.1500244140625, - 99.40001678466797, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 753.1500244140625, - 99.40001678466797, - 772.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNMPY", - "origin": [ - 110.00001525878906, - 759.6500244140625 - ], - "bbox": [ - 110.00001525878906, - 753.1500244140625, - 121.90001678466797, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.00001525878906, - 753.1500244140625, - 121.90001678466797, - 772.050048828125 - ] - } - ] - }, - { - "number": 231, - "type": 0, - "bbox": [ - 131.00001525878906, - 746.75, - 211.40000915527344, - 781.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u0018ALYZE1t?X’TX’HJMPKNX", - "origin": [ - 131.00001525878906, - 759.6500244140625 - ], - "bbox": [ - 131.00001525878906, - 753.1500244140625, - 184.90000915527344, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e=", - "origin": [ - 184.90000915527344, - 759.6500244140625 - ], - "bbox": [ - 184.90000915527344, - 752.6500244140625, - 192.10000610351562, - 771.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.00001525878906, - 752.6500244140625, - 192.10000610351562, - 772.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 194.20001220703125, - 759.6500244140625 - ], - "bbox": [ - 194.20001220703125, - 753.1500244140625, - 194.20001220703125, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 194.20001220703125, - 759.6500244140625 - ], - "bbox": [ - 194.20001220703125, - 746.75, - 198.60000610351562, - 781.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 198.60000610351562, - 759.6500244140625 - ], - "bbox": [ - 198.60000610351562, - 752.6500244140625, - 203.3000030517578, - 771.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\\[", - "origin": [ - 203.3000030517578, - 759.6500244140625 - ], - "bbox": [ - 203.3000030517578, - 746.75, - 206.40000915527344, - 781.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TH", - "origin": [ - 206.40000915527344, - 759.6500244140625 - ], - "bbox": [ - 206.40000915527344, - 753.1500244140625, - 211.40000915527344, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.20001220703125, - 746.75, - 211.40000915527344, - 781.4500122070312 - ] - } - ] - }, - { - "number": 233, - "type": 0, - "bbox": [ - 220.3000030517578, - 746.75, - 399.300048828125, - 781.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX¬ALX4XIM]MPO©`T ¸RGFBM", - "origin": [ - 220.3000030517578, - 759.6500244140625 - ], - "bbox": [ - 220.3000030517578, - 753.1500244140625, - 275.5, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "^]", - "origin": [ - 275.5, - 759.6500244140625 - ], - "bbox": [ - 275.5, - 746.75, - 279.5, - 781.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aEGKNC\u0018tLMe`TALO\u0016Re•TF-\\y”\u001dš", - "origin": [ - 279.5, - 759.6500244140625 - ], - "bbox": [ - 279.5, - 753.1500244140625, - 352.8999938964844, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\nV", - "origin": [ - 352.8999938964844, - 759.6500244140625 - ], - "bbox": [ - 352.8999938964844, - 746.75, - 357.1000061035156, - 781.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "lpGi", - "origin": [ - 357.1000061035156, - 759.6500244140625 - ], - "bbox": [ - 357.1000061035156, - 753.1500244140625, - 364.70001220703125, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 364.70001220703125, - 759.6500244140625 - ], - "bbox": [ - 364.70001220703125, - 746.75, - 369.4000244140625, - 781.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "£rMPtLRZ‘¡š", - "origin": [ - 369.4000244140625, - 759.6500244140625 - ], - "bbox": [ - 369.4000244140625, - 753.1500244140625, - 399.300048828125, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.3000030517578, - 746.75, - 399.300048828125, - 781.4500122070312 - ] - } - ] - }, - { - "number": 234, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ] - }, - { - "number": 235, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ] - }, - { - "number": 236, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "3", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 234, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "tag": "header" - }, - { - "number": 235, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "tag": "header" - }, - { - "number": 236, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "3", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 3, - "page_size": [ - 595.5, - 842.25 - ] - }, - "page_4": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 92.9000015258789, - 109.8499755859375, - 138.10000610351562, - 128.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔlتÛZ×QÞGÒrÕ/ÛcÔÖÝ?Ø", - "origin": [ - 92.9000015258789, - 116.3499755859375 - ], - "bbox": [ - 92.9000015258789, - 109.8499755859375, - 138.10000610351562, - 128.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.9000015258789, - 109.8499755859375, - 138.10000610351562, - 128.74996948242188 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 157.0, - 109.8499755859375, - 261.60003662109375, - 128.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ½ÒrتÛcÔÖÓcßV٥٥×QÛZÞGÔÖÕNâ8Ø8è8×QÞ", - "origin": [ - 157.0, - 116.3499755859375 - ], - "bbox": [ - 157.0, - 109.8499755859375, - 261.60003662109375, - 128.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.0, - 109.8499755859375, - 261.60003662109375, - 128.74996948242188 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 300.1999816894531, - 109.8499755859375, - 361.5, - 128.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "é?ÛcÜu×¢Õ/Ý?Ù�å+Ñw×QÛZ×", - "origin": [ - 300.1999816894531, - 116.3499755859375 - ], - "bbox": [ - 300.1999816894531, - 109.8499755859375, - 361.5, - 128.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 300.1999816894531, - 109.8499755859375, - 361.5, - 128.74996948242188 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 373.6999816894531, - 109.3499755859375, - 520.89990234375, - 128.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "á-ÔwÝ?âuãWÔÖÑÖÑw×", - "origin": [ - 373.6999816894531, - 116.3499755859375 - ], - "bbox": [ - 373.6999816894531, - 109.8499755859375, - 410.1999816894531, - 128.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 373.6999816894531, - 109.8499755859375, - 410.1999816894531, - 128.74996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 415.29998779296875, - 116.3499755859375 - ], - "bbox": [ - 415.29998779296875, - 109.3499755859375, - 415.29998779296875, - 127.7499771118164 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬Ýrå×QÞGÒ\u001dÛZÝrÞ½Ý?Ø¥ÛcÜu×^ÞGÔwç?Ü©Û", - "origin": [ - 415.29998779296875, - 116.3499755859375 - ], - "bbox": [ - 415.29998779296875, - 109.8499755859375, - 516.7999267578125, - 128.74996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "A�", - "origin": [ - 516.7999267578125, - 116.3499755859375 - ], - "bbox": [ - 516.7999267578125, - 109.8499755859375, - 520.89990234375, - 127.7499771118164 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 415.29998779296875, - 109.3499755859375, - 520.89990234375, - 128.74996948242188 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 92.89999389648438, - 116.4499740600586, - 166.89999389648438, - 151.1499786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÒrØ8è ÓcÔlèu×NÝræ", - "origin": [ - 92.89999389648438, - 129.3499755859375 - ], - "bbox": [ - 92.89999389648438, - 122.8499755859375, - 146.49998474121094, - 141.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.89999389648438, - 122.8499755859375, - 146.49998474121094, - 141.74996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 153.1999969482422, - 129.3499755859375 - ], - "bbox": [ - 153.1999969482422, - 116.4499740600586, - 153.1999969482422, - 151.1499786376953 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 153.1999969482422, - 129.3499755859375 - ], - "bbox": [ - 153.1999969482422, - 122.8499755859375, - 166.89999389648438, - 141.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 153.1999969482422, - 116.4499740600586, - 166.89999389648438, - 151.1499786376953 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 175.5, - 122.3499755859375, - 520.4000244140625, - 141.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 175.5, - 129.3499755859375 - ], - "bbox": [ - 175.5, - 122.8499755859375, - 175.5, - 141.74996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 175.5, - 129.3499755859375 - ], - "bbox": [ - 175.5, - 122.3499755859375, - 181.0, - 140.74996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡Ü8ÒrÓ\u001bÒ%ÓZßWÙ¥Ù�×QÛZÞ1ÔÖÕ^ÓZå×gÕ/ÛZÞGâ8Ù", - "origin": [ - 181.0, - 129.3499755859375 - ], - "bbox": [ - 181.0, - 122.8499755859375, - 303.5000305175781, - 141.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.5, - 122.3499755859375, - 303.5000305175781, - 141.74996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔwÛcÜ�ÞG×gÓZå×gÕ/Û­ÛZÝ", - "origin": [ - 315.70001220703125, - 129.3499755859375 - ], - "bbox": [ - 315.70001220703125, - 122.8499755859375, - 381.1000061035156, - 141.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.70001220703125, - 122.8499755859375, - 381.1000061035156, - 141.74996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001b", - "origin": [ - 389.70001220703125, - 129.3499755859375 - ], - "bbox": [ - 389.70001220703125, - 122.3499755859375, - 389.70001220703125, - 140.74996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×QÞcÝ&ÒrØ8è°éVÔÖØ�çr×gØu×QÞGÒrÑJé©à»ÔlÑÖÑuØuÝrÛ", - "origin": [ - 389.70001220703125, - 129.3499755859375 - ], - "bbox": [ - 389.70001220703125, - 122.8499755859375, - 520.4000244140625, - 141.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.70001220703125, - 122.3499755859375, - 520.4000244140625, - 141.74996948242188 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 92.80001831054688, - 135.75, - 180.2000274658203, - 154.64999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×;ڐÝ?â8Ø8è8×gèœÚ×gÑwÝaà%ò", - "origin": [ - 92.80001831054688, - 142.25 - ], - "bbox": [ - 92.80001831054688, - 135.75, - 180.2000274658203, - 154.64999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.80001831054688, - 135.75, - 180.2000274658203, - 154.64999389648438 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 100.00001525878906, - 164.54998779296875, - 338.9999694824219, - 183.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ+ÒrÑÖÑwßréWÛcÜu×%æ=Ý?ÑÖÑwÝaà»ÔÖØuç\u0014ÝrÚ+ÓZ×QÞGã\u0018Ò\u001dÛcÔwÝ?ؖà»ÔÖÑÖÑ6ڐ×;ÔÖÙ�åÝrÞcÛcÒrØ©Û", - "origin": [ - 100.00001525878906, - 171.04998779296875 - ], - "bbox": [ - 100.00001525878906, - 164.54998779296875, - 334.1999816894531, - 183.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017", - "origin": [ - 334.1999816894531, - 171.04998779296875 - ], - "bbox": [ - 334.1999816894531, - 164.54998779296875, - 338.9999694824219, - 182.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.00001525878906, - 164.54998779296875, - 338.9999694824219, - 183.44998168945312 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 152.80001831054688, - 180.14999389648438, - 162.9000244140625, - 216.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ":", - "origin": [ - 152.80001831054688, - 195.04998779296875 - ], - "bbox": [ - 152.80001831054688, - 182.14999389648438, - 152.80001831054688, - 216.84999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "�", - "origin": [ - 152.80001831054688, - 195.04998779296875 - ], - "bbox": [ - 152.80001831054688, - 180.14999389648438, - 162.9000244140625, - 205.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.80001831054688, - 180.14999389648438, - 162.9000244140625, - 216.84999084472656 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 174.20001220703125, - 180.55001831054688, - 280.29998779296875, - 207.85000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ü", - "origin": [ - 174.20001220703125, - 195.45001220703125 - ], - "bbox": [ - 174.20001220703125, - 188.95001220703125, - 174.20001220703125, - 207.85000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "��", - "origin": [ - 174.20001220703125, - 195.45001220703125 - ], - "bbox": [ - 174.20001220703125, - 180.55001831054688, - 198.00001525878906, - 205.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 174.20001220703125, - 180.55001831054688, - 198.00001525878906, - 207.85000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÞGâu×;åÝrÛZ×gتÛcÔlÒrÑ", - "origin": [ - 217.80001831054688, - 195.45001220703125 - ], - "bbox": [ - 217.80001831054688, - 188.95001220703125, - 280.29998779296875, - 207.85000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 217.80001831054688, - 188.95001220703125, - 280.29998779296875, - 207.85000610351562 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 292.6000061035156, - 187.95001220703125, - 296.0, - 206.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 292.6000061035156, - 194.95001220703125 - ], - "bbox": [ - 292.6000061035156, - 187.95001220703125, - 296.0, - 206.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 292.6000061035156, - 187.95001220703125, - 296.0, - 206.35000610351562 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 302.5, - 188.45001220703125, - 453.9999694824219, - 207.85000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 302.5, - 195.45001220703125 - ], - "bbox": [ - 302.5, - 188.45001220703125, - 302.5, - 206.85000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "­ÔÖÓNÕ/Ý?Ø8ÓZÛcÒrØ©ÛQéyÑlÔÖØu×gÒ\u001dÞgéWÝrÞ»Ü8Ò\u001dÞ1Ù�Ý?Ø8ÔÖÕ", - "origin": [ - 302.5, - 195.45001220703125 - ], - "bbox": [ - 302.5, - 188.95001220703125, - 453.9999694824219, - 207.85000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 302.5, - 188.45001220703125, - 453.9999694824219, - 207.85000610351562 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 515.0999755859375, - 188.45001220703125, - 520.5999755859375, - 207.85000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ú", - "origin": [ - 515.0999755859375, - 195.45001220703125 - ], - "bbox": [ - 515.0999755859375, - 188.95001220703125, - 515.0999755859375, - 207.85000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0999755859375, - 195.45001220703125 - ], - "bbox": [ - 515.0999755859375, - 188.45001220703125, - 520.5999755859375, - 206.85000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.0999755859375, - 188.45001220703125, - 520.5999755859375, - 207.85000610351562 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 100.89996337890625, - 214.54998779296875, - 217.79995727539062, - 233.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×»ÒrØ8ÒrÑwÝrçrÝ?â+Ó­ã\u001dÒrØ8ÔÖÓcÜ8ÔlØuç“Ýræ", - "origin": [ - 100.89996337890625, - 221.04998779296875 - ], - "bbox": [ - 100.89996337890625, - 214.54998779296875, - 217.79995727539062, - 233.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.89996337890625, - 214.54998779296875, - 217.79995727539062, - 233.44998168945312 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 234.19998168945312, - 214.54998779296875, - 520.5, - 233.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ¥Ò", - "origin": [ - 234.19998168945312, - 221.04998779296875 - ], - "bbox": [ - 234.19998168945312, - 214.54998779296875, - 246.39999389648438, - 233.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "N\n", - "origin": [ - 246.39999389648438, - 221.04998779296875 - ], - "bbox": [ - 246.39999389648438, - 214.54998779296875, - 255.0, - 232.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gÑÖè\u0014ÛcÜu×QÝrÞcߥÔlÓ¡×gä©â+Ôwã\u0018ÒrÑÖ×gتۡà»ÔÖÛcÜ¥Ü8ÒgãWÔÖØuç\u0019Ù¥ÒrÓcÓcÔwãr×»ÝrÞ\"Ù¥ÒrÓcÓGÑw×gÓcÓ", - "origin": [ - 255.0, - 221.04998779296875 - ], - "bbox": [ - 255.0, - 214.54998779296875, - 520.5, - 233.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.19998168945312, - 214.54998779296875, - 520.5, - 233.44998168945312 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 92.79997253417969, - 227.45001220703125, - 522.3999633789062, - 246.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=Þc×Q×", - "origin": [ - 92.79997253417969, - 233.95001220703125 - ], - "bbox": [ - 92.79997253417969, - 227.45001220703125, - 105.29998016357422, - 246.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.79997253417969, - 227.45001220703125, - 105.29998016357422, - 246.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 116.39997100830078, - 233.95001220703125 - ], - "bbox": [ - 116.39997100830078, - 227.45001220703125, - 116.39997100830078, - 245.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gÑÖè8ÓQé�à¢ÔwÛc܎ÝrÞ7à¢ÔwÛcÜuÝ?âuÛ�×", - "origin": [ - 116.39997100830078, - 233.95001220703125 - ], - "bbox": [ - 116.39997100830078, - 227.45001220703125, - 236.69998168945312, - 246.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 236.69998168945312, - 233.95001220703125 - ], - "bbox": [ - 236.69998168945312, - 227.45001220703125, - 241.3999786376953, - 245.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZ×QÞGØ8ÒrќÓZÝ?âuÞGÕ/×gÓQé\u001fÒrØ8è", - "origin": [ - 241.3999786376953, - 233.95001220703125 - ], - "bbox": [ - 241.3999786376953, - 227.45001220703125, - 336.8999328613281, - 246.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 116.39997100830078, - 227.45001220703125, - 336.8999328613281, - 246.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à¢ÔwÛc܎ÝrÞ7à¢ÔwÛcÜuÝ?âuÛ�Ú+ÔlÑÖÔÖØu×gÒ\u001dÞ", - "origin": [ - 348.9999694824219, - 233.95001220703125 - ], - "bbox": [ - 348.9999694824219, - 227.45001220703125, - 467.0999755859375, - 246.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.9999694824219, - 227.45001220703125, - 467.0999755859375, - 246.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/Ý?âuåyÑÖÔÖØuç?ÓQò", - "origin": [ - 477.39996337890625, - 233.95001220703125 - ], - "bbox": [ - 477.39996337890625, - 227.45001220703125, - 522.3999633789062, - 246.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 477.39996337890625, - 227.45001220703125, - 522.3999633789062, - 246.35000610351562 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 93.09994506835938, - 234.05001831054688, - 442.89996337890625, - 268.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "E", - "origin": [ - 93.09994506835938, - 246.95001220703125 - ], - "bbox": [ - 93.09994506835938, - 234.05001831054688, - 93.09994506835938, - 268.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“×gØu×QÞGÒrÑÖÑwßréyÔÖØ—ÒrÑÖѐÛcÜu×gÓZ×\u0019ÕQÒrÓZ×gÓQé+ÒrØ8Ü+Ò\u001dÞGÙ�Ý?Ø8ÔÖÕ\u0016æ=ÝrÞGÕ/×gÓ^ÝrÞ\u0016ÔÖØ©ÛZ×QÞGÒrÕ/ÛcÔwÝ?Ø8Ó^Ò\u001dÞG׳Ò\u001dÚ+ÓZ×gØ©ÛQò", - "origin": [ - 93.09994506835938, - 246.95001220703125 - ], - "bbox": [ - 93.09994506835938, - 240.45001220703125, - 442.89996337890625, - 259.3500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.09994506835938, - 234.05001831054688, - 442.89996337890625, - 268.75 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 81.29994201660156, - 258.54998779296875, - 521.199951171875, - 277.9499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×\r×gÙ�å+Ü+ÒrÓcÔ", - "origin": [ - 81.29994201660156, - 265.54998779296875 - ], - "bbox": [ - 81.29994201660156, - 259.04998779296875, - 126.79994201660156, - 277.9499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 126.79994201660156, - 265.54998779296875 - ], - "bbox": [ - 126.79994201660156, - 258.54998779296875, - 129.79994201660156, - 276.9499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×\u001fÛcÜ8Ò\u001dÛ�ÛcÜu×\rÕ/Ý?âuå+ÑÖÔÖØ8ç!Ýræ»ÛcÜ8×\rê\u0016ÔÖÑwڐ×QÞcÛ\u0019ÓZå+ÒrÕ/חÒrØ8è\u000bÔwÛcÓ\u0014è8â8ÒrÑ\u001bÒrØ8è", - "origin": [ - 129.79994201660156, - 265.54998779296875 - ], - "bbox": [ - 129.79994201660156, - 259.04998779296875, - 410.1000061035156, - 277.9499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.29994201660156, - 258.54998779296875, - 410.1000061035156, - 277.9499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\rÞc×gÑÖÒ\u001dÛZ×gè\u0012ÑÖÒrÕ", - "origin": [ - 420.699951171875, - 265.54998779296875 - ], - "bbox": [ - 420.699951171875, - 259.04998779296875, - 486.4999084472656, - 277.9499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 486.4999084472656, - 265.54998779296875 - ], - "bbox": [ - 486.4999084472656, - 258.54998779296875, - 490.89990234375, - 276.9499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÔlØuçµÝræ", - "origin": [ - 490.89990234375, - 265.54998779296875 - ], - "bbox": [ - 490.89990234375, - 259.04998779296875, - 521.199951171875, - 277.9499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.699951171875, - 258.54998779296875, - 521.199951171875, - 277.9499816894531 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 71.199951171875, - 271.95001220703125, - 520.3999633789062, - 290.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒµÓZÛcÒ\u001dÚ+Ñw×¥çrÞGÝ?â8Ø8è7ÓcÛcÒ\u001dÛZ×ré­ÔÖØ�çr×gØu×QÞGÒrÑJé·ÓGÜuÝTà", - "origin": [ - 71.199951171875, - 278.45001220703125 - ], - "bbox": [ - 71.199951171875, - 271.95001220703125, - 252.29994201660156, - 290.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 271.95001220703125, - 252.29994201660156, - 290.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8Ò\u001dÛ³Ý?â8Þ³Þc×Qæ=ÝrÞGÙ&â8ÑÖÒ\u001dÛcÔwÝ?Ø7Ýræ^ê¢ÒrÙ¥ÔlÑwÛZÝ?Ø8ÔÖÒrØ", - "origin": [ - 264.699951171875, - 278.45001220703125 - ], - "bbox": [ - 264.699951171875, - 271.95001220703125, - 444.39990234375, - 290.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.699951171875, - 271.95001220703125, - 444.39990234375, - 290.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8ßVØ8ÒrÙ ÔÖÕQÓ%èuÝV×gÓ", - "origin": [ - 454.699951171875, - 278.45001220703125 - ], - "bbox": [ - 454.699951171875, - 271.95001220703125, - 520.3999633789062, - 290.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.699951171875, - 271.95001220703125, - 520.3999633789062, - 290.8500061035156 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 71.199951171875, - 284.95001220703125, - 515.5999145507812, - 303.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ØuÝrÛ\u0016ä©â+ÒrÑÖÔwæ=ß\u001fÒrÓ\u0016Ò¥å8ÞGÝrå6×QÞ¢ä©â8ÒrØ©Ûcâ8ÙÿÛcÜu×QÝrÞcßrò»ê¢ÝTà\u001b×Qãr×QÞgé°à\u001b׳à»ÔÖÑlѰÙ�ÝrÛcÔwã\u001dÒ\u001dÛZ×&Õ/×QÞcÛcÒrÔlØ!Ù�ÝWè8Ô", - "origin": [ - 71.199951171875, - 291.45001220703125 - ], - "bbox": [ - 71.199951171875, - 284.95001220703125, - 456.2998962402344, - 303.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 284.95001220703125, - 456.2998962402344, - 303.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 459.2999572753906, - 291.45001220703125 - ], - "bbox": [ - 459.2999572753906, - 284.95001220703125, - 459.2999572753906, - 302.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+ÕQÒ\u001dÛcÔÖÝ?Ø8ÓNæ=ÞcÝ?Ù", - "origin": [ - 459.2999572753906, - 291.45001220703125 - ], - "bbox": [ - 459.2999572753906, - 284.95001220703125, - 515.5999145507812, - 303.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.2999572753906, - 284.95001220703125, - 515.5999145507812, - 303.8500061035156 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 71.09994506835938, - 297.95001220703125, - 418.1999206542969, - 316.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü+ÔÖÕGܗèußWØ8ÒrÙ¥ÔlÕQÒrѰÒrÓZå×gÕ/ÛcÓNÝræ¡ä©â8ÒrØ©Ûcâ8Ù", - "origin": [ - 71.09994506835938, - 304.45001220703125 - ], - "bbox": [ - 71.09994506835938, - 297.95001220703125, - 238.5999298095703, - 316.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 297.95001220703125, - 238.5999298095703, - 316.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÓ^ÓZ×Q×gÙ", - "origin": [ - 251.29994201660156, - 304.45001220703125 - ], - "bbox": [ - 251.29994201660156, - 297.95001220703125, - 317.09991455078125, - 316.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.29994201660156, - 297.95001220703125, - 317.09991455078125, - 316.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ ×gÙ�×QÞcçr׳Ò\u001dæ=ÛZ×QÞ¢ÒrÑÖÑJò", - "origin": [ - 329.7999267578125, - 304.45001220703125 - ], - "bbox": [ - 329.7999267578125, - 297.95001220703125, - 418.1999206542969, - 316.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.7999267578125, - 297.95001220703125, - 418.1999206542969, - 316.8500061035156 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 71.2999267578125, - 318.2500305175781, - 86.8999252319336, - 345.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "�", - "origin": [ - 71.2999267578125, - 333.1500244140625 - ], - "bbox": [ - 71.2999267578125, - 318.2500305175781, - 71.2999267578125, - 343.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬Ã", - "origin": [ - 71.2999267578125, - 333.1500244140625 - ], - "bbox": [ - 71.2999267578125, - 326.6500244140625, - 77.99992370605469, - 345.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\n�", - "origin": [ - 77.99992370605469, - 333.1500244140625 - ], - "bbox": [ - 77.99992370605469, - 318.2500305175781, - 86.8999252319336, - 343.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2999267578125, - 318.2500305175781, - 86.8999252319336, - 345.5500183105469 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 93.3999252319336, - 326.35003662109375, - 149.69992065429688, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÎB)uÆaË=38Æa>V5¾Î­3", - "origin": [ - 93.3999252319336, - 332.85003662109375 - ], - "bbox": [ - 93.3999252319336, - 326.35003662109375, - 149.69992065429688, - 345.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.3999252319336, - 326.35003662109375, - 149.69992065429688, - 345.2500305175781 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 161.0999298095703, - 326.35003662109375, - 190.09991455078125, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ")+:\"ÌBË=,gÏ", - "origin": [ - 161.0999298095703, - 332.85003662109375 - ], - "bbox": [ - 161.0999298095703, - 326.35003662109375, - 190.09991455078125, - 345.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.0999298095703, - 326.35003662109375, - 190.09991455078125, - 345.2500305175781 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 200.79994201660156, - 317.9500427246094, - 268.2999267578125, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ">©ÆT>W*4>V,g, )y*4Ì", - "origin": [ - 200.79994201660156, - 332.85003662109375 - ], - "bbox": [ - 200.79994201660156, - 326.35003662109375, - 257.1999206542969, - 345.2500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\f\u000b", - "origin": [ - 257.1999206542969, - 332.85003662109375 - ], - "bbox": [ - 257.1999206542969, - 317.9500427246094, - 268.2999267578125, - 342.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.79994201660156, - 317.9500427246094, - 268.2999267578125, - 345.2500305175781 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 282.2999267578125, - 326.35003662109375, - 287.6999206542969, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÏrÆ", - "origin": [ - 282.2999267578125, - 332.85003662109375 - ], - "bbox": [ - 282.2999267578125, - 326.35003662109375, - 287.6999206542969, - 345.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.2999267578125, - 326.35003662109375, - 287.6999206542969, - 345.2500305175781 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 299.6999206542969, - 317.9500427246094, - 381.4999084472656, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ")uÆaË=36*4, 誮 5¾)", - "origin": [ - 299.6999206542969, - 332.85003662109375 - ], - "bbox": [ - 299.6999206542969, - 326.35003662109375, - 359.59991455078125, - 345.2500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u000e\r", - "origin": [ - 359.59991455078125, - 332.85003662109375 - ], - "bbox": [ - 359.59991455078125, - 317.9500427246094, - 365.1999206542969, - 342.85003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0012Ï?)", - "origin": [ - 365.1999206542969, - 332.85003662109375 - ], - "bbox": [ - 365.1999206542969, - 326.35003662109375, - 381.4999084472656, - 345.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 299.6999206542969, - 317.9500427246094, - 381.4999084472656, - 345.2500305175781 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 394.59991455078125, - 326.35003662109375, - 399.4999084472656, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",g>", - "origin": [ - 394.59991455078125, - 332.85003662109375 - ], - "bbox": [ - 394.59991455078125, - 326.35003662109375, - 399.4999084472656, - 345.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 394.59991455078125, - 326.35003662109375, - 399.4999084472656, - 345.2500305175781 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 71.19992065429688, - 339.050048828125, - 519.8999633789062, - 357.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢×QÞc×^à\u001b×^å8Þc×gÓc×gتۭÒ%ÓGÔÖÙ�å+Ñw×", - "origin": [ - 71.19992065429688, - 345.550048828125 - ], - "bbox": [ - 71.19992065429688, - 339.050048828125, - 183.39993286132812, - 357.9500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 183.39993286132812, - 345.550048828125 - ], - "bbox": [ - 183.39993286132812, - 339.050048828125, - 188.0999298095703, - 356.9500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "sÙ ÔÖØ8èu×gè&Ò\u001dÞcç?â8Ù�×gة۽ÔÖØ+è8ÔÖÕQÒ\u001dÛcÔÖØuç\u0016ÛcÜ8Ò\u001dÛ­ÛcÜ8×»è8ÔÖÓcÕ/ÞG×QÛZ×gØu×gÓcÓ¡Ýræ°ÓZå+ÒrÕ/×QÛcÔlÙ�×»Ù¥ÒTß&ڐ×", - "origin": [ - 188.0999298095703, - 345.550048828125 - ], - "bbox": [ - 188.0999298095703, - 339.050048828125, - 519.8999633789062, - 357.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 339.050048828125, - 519.8999633789062, - 357.9500427246094 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 71.09992218017578, - 352.050048828125, - 518.5999145507812, - 370.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÑÖ×Qã\u0018Òrةۓæ™ÝrÞ%ÛcÜ8×�×gÙ�×QÞcçr×gØ8Õ/×�Ýræ\u0010ä©â+ÒrتÛcâ8Ù", - "origin": [ - 71.09992218017578, - 358.550048828125 - ], - "bbox": [ - 71.09992218017578, - 352.050048828125, - 248.89993286132812, - 370.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09992218017578, - 352.050048828125, - 248.89993286132812, - 370.9500427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÒrÑ¡å+Üu×gØuÝ?Ù¥×gØ8ÒWé°ÛcâuÞGØ8ÔlØuçœÛcÜ8×\u0014á-ÔwÝ?âuãWÔÖÑÖÑw×\u0019×gä©â+Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 262.09991455078125, - 358.550048828125 - ], - "bbox": [ - 262.09991455078125, - 352.050048828125, - 518.5999145507812, - 370.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.09991455078125, - 352.050048828125, - 518.5999145507812, - 370.9500427246094 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 71.19990539550781, - 364.9500427246094, - 341.4999084472656, - 383.85003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ÛZÝ�ÛcÜu×;ãrÝ?Ø¢ó»×gâ8Ù ÒrØ8Ø", - "origin": [ - 71.19990539550781, - 371.4500427246094 - ], - "bbox": [ - 71.19990539550781, - 364.9500427246094, - 170.5998992919922, - 383.85003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "U�", - "origin": [ - 170.5998992919922, - 371.4500427246094 - ], - "bbox": [ - 170.5998992919922, - 364.9500427246094, - 180.0998992919922, - 382.85003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½á4ÔlØ8èuÚ+ÑÖÒrèœ×gäVâ8Ò\u001dÛcÔwÝ?ذé+ÔlØ\rå+Ò\u001dÞcÛcÔÖÕQâ8ÑlÒ\u001dÞgò", - "origin": [ - 180.0998992919922, - 371.4500427246094 - ], - "bbox": [ - 180.0998992919922, - 364.9500427246094, - 341.4999084472656, - 383.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19990539550781, - 364.9500427246094, - 341.4999084472656, - 383.85003662109375 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 85.59990692138672, - 371.550048828125, - 482.3998718261719, - 406.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "E", - "origin": [ - 85.59990692138672, - 384.4500427246094 - ], - "bbox": [ - 85.59990692138672, - 371.550048828125, - 85.59990692138672, - 406.2500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“Ôwãr×gØ\u001eÛcÜ8Ò\u001dۗÓZå+ÒrÕ/×QÛcÔÖÙ¥×", - "origin": [ - 85.59990692138672, - 384.4500427246094 - ], - "bbox": [ - 85.59990692138672, - 377.9500427246094, - 185.39993286132812, - 396.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.59990692138672, - 371.550048828125, - 185.39993286132812, - 406.2500305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ\u001fè8ÔÖÓGÕ/Þc×QÛZ×ré^ÛcÜu×QÞc×\u000fÙ&â8ÓZÛ Ú×\u000fÒ¾Õ1Ü8Ò\u001dÞGÒrÕ/ÛZ×QÞGÔlÓZÛcÔÖÕ", - "origin": [ - 195.39990234375, - 384.4500427246094 - ], - "bbox": [ - 195.39990234375, - 377.9500427246094, - 396.2998962402344, - 396.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.39990234375, - 377.9500427246094, - 396.2998962402344, - 396.85003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gØuçrÛcÜ", - "origin": [ - 406.2999267578125, - 384.4500427246094 - ], - "bbox": [ - 406.2999267578125, - 377.9500427246094, - 429.89990234375, - 396.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 406.2999267578125, - 377.9500427246094, - 429.89990234375, - 396.85003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÕQÒrÑw×ré^ÛcÜ8×", - "origin": [ - 441.1999206542969, - 384.4500427246094 - ], - "bbox": [ - 441.1999206542969, - 377.9500427246094, - 482.3998718261719, - 396.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 441.1999206542969, - 377.9500427246094, - 482.3998718261719, - 396.85003662109375 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 499.8999328613281, - 377.4500427246094, - 518.7999267578125, - 396.85003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 499.8999328613281, - 384.4500427246094 - ], - "bbox": [ - 499.8999328613281, - 377.9500427246094, - 514.4999389648438, - 396.85003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 514.4999389648438, - 384.4500427246094 - ], - "bbox": [ - 514.4999389648438, - 377.4500427246094, - 518.7999267578125, - 395.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 499.8999328613281, - 377.4500427246094, - 518.7999267578125, - 396.85003662109375 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 71.19992065429688, - 390.2500305175781, - 414.39990234375, - 409.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gØ8çrÛcܰé8à»Üu×QÞG׳ÛcÜu×&Õ/Ý?تÛcÔÖØVâ8â8Ù", - "origin": [ - 71.19992065429688, - 397.2500305175781 - ], - "bbox": [ - 71.19992065429688, - 390.7500305175781, - 199.69996643066406, - 409.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 390.7500305175781, - 199.69996643066406, - 409.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gÓcÕ/ÞGÔÖå8ÛcÔwÝ?Ø\rÝræ­ÒrÑÖÑ4å+Üu×gØuÝ?Ù�×gØ+Ò�Ú8Þc×gÒ", - "origin": [ - 212.5999298095703, - 397.2500305175781 - ], - "bbox": [ - 212.5999298095703, - 390.7500305175781, - 369.39990234375, - 409.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 369.39990234375, - 397.2500305175781 - ], - "bbox": [ - 369.39990234375, - 390.2500305175781, - 374.69989013671875, - 408.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÓ¢è8ÝTà»Ø°ò", - "origin": [ - 374.69989013671875, - 397.2500305175781 - ], - "bbox": [ - 374.69989013671875, - 390.7500305175781, - 414.39990234375, - 409.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 212.5999298095703, - 390.2500305175781, - 414.39990234375, - 409.6500244140625 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 430.0999450683594, - 390.7500305175781, - 519.7999877929688, - 409.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÓ^ÔÖÙ�åyÑÖÔw×gÓ\u0010ÛcÜ8Ò\u001dÛ\u0016Ý?Øu×", - "origin": [ - 430.0999450683594, - 397.2500305175781 - ], - "bbox": [ - 430.0999450683594, - 390.7500305175781, - 519.7999877929688, - 409.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.0999450683594, - 390.7500305175781, - 519.7999877929688, - 409.6500244140625 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 71.199951171875, - 403.2500305175781, - 520.5, - 422.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥ÔÖç?ܪÛNÝaãr×QÞGÑwÝVÝ", - "origin": [ - 71.199951171875, - 410.2500305175781 - ], - "bbox": [ - 71.199951171875, - 403.7500305175781, - 130.79995727539062, - 422.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 403.7500305175781, - 130.79995727539062, - 422.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 136.199951171875, - 410.2500305175781 - ], - "bbox": [ - 136.199951171875, - 403.2500305175781, - 136.199951171875, - 421.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÔlÙ�åÝrÞcÛcÒrتÛNÛZÞ1ÒrÕ/×gÓ^Ýræ·ÛcÜ8ÔÖÓNÒ\u001dÛZÝ?Ù¥ÔlÓZÛcÔÖÕ%ÓZÛZÞ1â8Õ/ÛcâuÞcדÚVß\u001f×gÙ¥å+ÑwÝTßWÔÖØuç�Õ/Ý?Ø©ÛcÔÖØVâ8â8Ù", - "origin": [ - 136.199951171875, - 410.2500305175781 - ], - "bbox": [ - 136.199951171875, - 403.7500305175781, - 465.29998779296875, - 422.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.199951171875, - 403.2500305175781, - 465.29998779296875, - 422.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "äVâ8ÒrØ©ÛcÔwÛcÔw×gÓ", - "origin": [ - 477.9999694824219, - 410.2500305175781 - ], - "bbox": [ - 477.9999694824219, - 403.7500305175781, - 520.5, - 422.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 477.9999694824219, - 403.7500305175781, - 520.5, - 422.6500244140625 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 71.0999755859375, - 408.35003662109375, - 521.5999145507812, - 435.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü+ÔÖÕGÜ�ÒrÑÖÑÖÝTàŽÛZÝ!Ò\u001dÞcÚyÔwÛZÞGÒ\u001dÞGÔÖÑÖߖ×", - "origin": [ - 71.0999755859375, - 423.2500305175781 - ], - "bbox": [ - 71.0999755859375, - 416.7500305175781, - 198.69998168945312, - 435.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 198.69998168945312, - 423.2500305175781 - ], - "bbox": [ - 198.69998168945312, - 416.7500305175781, - 203.3999786376953, - 434.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÛZÞ1Ò\u001då6Ý?ÑlÒ\u001dÛZ×¥ÛcÜu×gÔwÞ;æ’â8Ø8Õ/ÛcÔwÝ?Ø+ÒrÑBè8×Qå6×gØ+èu×gØ8Õ/×�ÛZÝ!ÓcÕQÒrÑÖ×gÓ", - "origin": [ - 203.3999786376953, - 423.2500305175781 - ], - "bbox": [ - 203.3999786376953, - 416.7500305175781, - 430.8999328613281, - 435.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0010\u000f\u0012\u0011\u0013\u000f\u0015\u0014\u0017\u0016", - "origin": [ - 430.8999328613281, - 423.2500305175781 - ], - "bbox": [ - 430.8999328613281, - 408.35003662109375, - 469.0999450683594, - 433.2500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Jé4à»Üu×QÞG×", - "origin": [ - 469.0999450683594, - 423.2500305175781 - ], - "bbox": [ - 469.0999450683594, - 416.7500305175781, - 502.7999267578125, - 435.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\n\u000f\u0018\u0014\u0017\u0016", - "origin": [ - 502.7999267578125, - 423.2500305175781 - ], - "bbox": [ - 502.7999267578125, - 408.35003662109375, - 521.5999145507812, - 433.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 408.35003662109375, - 521.5999145507812, - 435.6500244140625 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 71.1999740600586, - 429.6500244140625, - 120.79998016357422, - 448.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gØ8ÝrÛZ×gÓNÛcÜu×", - "origin": [ - 71.1999740600586, - 436.1500244140625 - ], - "bbox": [ - 71.1999740600586, - 429.6500244140625, - 120.79998016357422, - 448.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.1999740600586, - 429.6500244140625, - 120.79998016357422, - 448.5500183105469 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 136.8999786376953, - 429.1500244140625, - 195.5999755859375, - 448.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 136.8999786376953, - 436.1500244140625 - ], - "bbox": [ - 136.8999786376953, - 429.6500244140625, - 151.49998474121094, - 448.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 151.49998474121094, - 436.1500244140625 - ], - "bbox": [ - 151.49998474121094, - 429.1500244140625, - 155.79998779296875, - 447.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÑw×gØuçrÛcܬò", - "origin": [ - 155.79998779296875, - 436.1500244140625 - ], - "bbox": [ - 155.79998779296875, - 429.6500244140625, - 195.5999755859375, - 448.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.8999786376953, - 429.1500244140625, - 195.5999755859375, - 448.5500183105469 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 85.29997253417969, - 436.2500305175781, - 442.39996337890625, - 470.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.29997253417969, - 449.1500244140625 - ], - "bbox": [ - 85.29997253417969, - 442.1500244140625, - 85.29997253417969, - 460.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø+ÓZÛZ×gÒrè%ÝræuÜ8ÒTãVÔÖØ8ç»Ò", - "origin": [ - 85.29997253417969, - 449.1500244140625 - ], - "bbox": [ - 85.29997253417969, - 442.6500244140625, - 168.19998168945312, - 461.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.29997253417969, - 442.1500244140625, - 168.19998168945312, - 461.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9\u000f\u0010#\u001c\u0013\u000e\u000f&\u0018\"", - "origin": [ - 176.89996337890625, - 449.1500244140625 - ], - "bbox": [ - 176.89996337890625, - 442.6500244140625, - 200.89996337890625, - 460.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 200.89996337890625, - 449.1500244140625 - ], - "bbox": [ - 200.89996337890625, - 436.2500305175781, - 205.59996032714844, - 470.95001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ">*%\u000e\u0011\u001c\u0013)7\u001e-\"$1Q4�\u0010%\u0014.\"\u0018\u001e\u001f\u0014 )>\u001c\u0013D", - "origin": [ - 205.59996032714844, - 449.1500244140625 - ], - "bbox": [ - 205.59996032714844, - 442.6500244140625, - 284.49993896484375, - 460.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 284.49993896484375, - 449.1500244140625 - ], - "bbox": [ - 284.49993896484375, - 436.2500305175781, - 289.699951171875, - 470.95001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥é\u0018æ=ÝrÞ4×", - "origin": [ - 289.699951171875, - 449.1500244140625 - ], - "bbox": [ - 289.699951171875, - 442.6500244140625, - 319.5999450683594, - 461.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 319.5999450683594, - 449.1500244140625 - ], - "bbox": [ - 319.5999450683594, - 442.6500244140625, - 324.2999572753906, - 460.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ�å+ÑÖ×réaÛcÜu×", - "origin": [ - 324.2999572753906, - 449.1500244140625 - ], - "bbox": [ - 324.2999572753906, - 442.6500244140625, - 374.7999572753906, - 461.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.89996337890625, - 436.2500305175781, - 374.7999572753906, - 470.95001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0014 \u000e\u000f\u001b\u001f\"", - "origin": [ - 382.89996337890625, - 449.1500244140625 - ], - "bbox": [ - 382.89996337890625, - 442.6500244140625, - 397.0999755859375, - 460.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.89996337890625, - 442.6500244140625, - 397.0999755859375, - 460.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "4�\u0010,\u0014.\"�\u001e\u001f\u0014 )>\u001c\u0013D", - "origin": [ - 403.89996337890625, - 449.1500244140625 - ], - "bbox": [ - 403.89996337890625, - 442.6500244140625, - 442.39996337890625, - 460.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 403.89996337890625, - 442.6500244140625, - 442.39996337890625, - 460.5500183105469 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 455.699951171875, - 442.6500244140625, - 519.7999877929688, - 461.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÜuÝ?â+ÑÖè;ڐ×gÕ/Ý?Ù�×", - "origin": [ - 455.699951171875, - 449.1500244140625 - ], - "bbox": [ - 455.699951171875, - 442.6500244140625, - 519.7999877929688, - 461.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.699951171875, - 442.6500244140625, - 519.7999877929688, - 461.5500183105469 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 71.09994506835938, - 455.5500183105469, - 515.699951171875, - 474.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+ÔÖ×gÕ/×Qà»ÔÖÓZ×�èu×", - "origin": [ - 71.09994506835938, - 462.0500183105469 - ], - "bbox": [ - 71.09994506835938, - 455.5500183105469, - 126.29994201660156, - 474.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\n", - "origin": [ - 126.29994201660156, - 462.0500183105469 - ], - "bbox": [ - 126.29994201660156, - 455.5500183105469, - 131.09994506835938, - 473.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø8×gè", - "origin": [ - 131.09994506835938, - 462.0500183105469 - ], - "bbox": [ - 131.09994506835938, - 455.5500183105469, - 148.29994201660156, - 474.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 455.5500183105469, - 148.29994201660156, - 474.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÝ?Ù�×gÜuÝaà%é;à»Üu×gØ", - "origin": [ - 159.699951171875, - 462.0500183105469 - ], - "bbox": [ - 159.699951171875, - 455.5500183105469, - 230.19993591308594, - 474.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 159.699951171875, - 455.5500183105469, - 230.19993591308594, - 474.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001då+å8ÞcÝ?ÒrÕGÜ+ÔÖØuçÁÓcÙ¥ÒrÑlÑw×QޖÒrØ8è", - "origin": [ - 241.699951171875, - 462.0500183105469 - ], - "bbox": [ - 241.699951171875, - 455.5500183105469, - 356.0999450683594, - 474.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.699951171875, - 455.5500183105469, - 356.0999450683594, - 474.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÙ ÒrÑÖÑw×QޗÓcÕQÒrÑw×gÓµÔÖØ", - "origin": [ - 367.5999450683594, - 462.0500183105469 - ], - "bbox": [ - 367.5999450683594, - 455.5500183105469, - 442.39990234375, - 474.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.5999450683594, - 455.5500183105469, - 442.39990234375, - 474.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×7Õ/Ý?Ø©ÛcÔÖØVâ8â8Ù", - "origin": [ - 453.699951171875, - 462.0500183105469 - ], - "bbox": [ - 453.699951171875, - 455.5500183105469, - 515.699951171875, - 474.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.699951171875, - 455.5500183105469, - 515.699951171875, - 474.45001220703125 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 71.09994506835938, - 468.5500183105469, - 105.19994354248047, - 487.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+ÔlÕ/ÛcâuÞc×rò", - "origin": [ - 71.09994506835938, - 475.0500183105469 - ], - "bbox": [ - 71.09994506835938, - 468.5500183105469, - 105.19994354248047, - 487.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 468.5500183105469, - 105.19994354248047, - 487.45001220703125 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 120.19994354248047, - 468.5500183105469, - 316.39996337890625, - 487.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü©â+ÓQé?ÛcÜu×^æ’â8Ø8Õ/ÛcÔÖÝ?Ø", - "origin": [ - 120.19994354248047, - 475.0500183105469 - ], - "bbox": [ - 120.19994354248047, - 468.5500183105469, - 193.89996337890625, - 487.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 120.19994354248047, - 468.5500183105469, - 193.89996337890625, - 487.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ­Òr؜Ò\u001då8å8ÞcÝ", - "origin": [ - 214.9999542236328, - 475.0500183105469 - ], - "bbox": [ - 214.9999542236328, - 468.5500183105469, - 261.89996337890625, - 487.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.9999542236328, - 468.5500183105469, - 261.89996337890625, - 487.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 266.89996337890625, - 475.0500183105469 - ], - "bbox": [ - 266.89996337890625, - 468.5500183105469, - 266.89996337890625, - 486.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔÖÙ Ò\u001dÛcÔwÝ?Ø�ÛZÝ", - "origin": [ - 266.89996337890625, - 475.0500183105469 - ], - "bbox": [ - 266.89996337890625, - 468.5500183105469, - 316.39996337890625, - 487.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.89996337890625, - 468.5500183105469, - 316.39996337890625, - 487.45001220703125 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 333.9999694824219, - 468.0500183105469, - 520.39990234375, - 487.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è¥ÛcÜu×¢è8Ô", - "origin": [ - 333.9999694824219, - 475.0500183105469 - ], - "bbox": [ - 333.9999694824219, - 468.5500183105469, - 379.0999755859375, - 487.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c�", - "origin": [ - 379.0999755859375, - 475.0500183105469 - ], - "bbox": [ - 379.0999755859375, - 468.0500183105469, - 382.0999755859375, - 486.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6×QÞc×gØ+Õ/×NÚ6×QÛ¯à\"×Q×g؜ÛcÜu×¢Ûsà\u001bÝ\u0019Ù&â8ÓZÛ", - "origin": [ - 382.0999755859375, - 475.0500183105469 - ], - "bbox": [ - 382.0999755859375, - 468.5500183105469, - 520.39990234375, - 487.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.9999694824219, - 468.0500183105469, - 520.39990234375, - 487.45001220703125 - ] - } - ] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 71.0999755859375, - 473.1500244140625, - 226.3999786376953, - 509.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ç?Ôwãr×;Þ1ÔÖÓZ×;ÛZÝ ÑwÝWÕQÒrÑ", - "origin": [ - 71.0999755859375, - 488.0500183105469 - ], - "bbox": [ - 71.0999755859375, - 481.5500183105469, - 146.09996032714844, - 500.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001a\u0019", - "origin": [ - 146.09996032714844, - 488.0500183105469 - ], - "bbox": [ - 146.09996032714844, - 473.1500244140625, - 152.09996032714844, - 498.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 473.1500244140625, - 152.09996032714844, - 500.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001b\u001d9#\u0014 \u001b\u001d\u001c%\u0014 )>\u0010\u0013\u001eb&", - "origin": [ - 159.69998168945312, - 488.0500183105469 - ], - "bbox": [ - 159.69998168945312, - 481.5500183105469, - 204.09999084472656, - 499.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c\u001b", - "origin": [ - 204.09999084472656, - 488.0500183105469 - ], - "bbox": [ - 204.09999084472656, - 473.1500244140625, - 211.99998474121094, - 498.0500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 211.99998474121094, - 488.0500183105469 - ], - "bbox": [ - 211.99998474121094, - 475.1500244140625, - 217.19998168945312, - 509.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ò", - "origin": [ - 217.19998168945312, - 488.0500183105469 - ], - "bbox": [ - 217.19998168945312, - 481.5500183105469, - 226.3999786376953, - 500.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 159.69998168945312, - 473.1500244140625, - 226.3999786376953, - 509.8500061035156 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 241.69998168945312, - 481.5500183105469, - 316.1999206542969, - 500.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8×QÞc×Qæ™ÝrÞG×réuà\"׳Óc×QÛ", - "origin": [ - 241.69998168945312, - 488.0500183105469 - ], - "bbox": [ - 241.69998168945312, - 481.5500183105469, - 311.3999328613281, - 500.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017", - "origin": [ - 311.3999328613281, - 488.0500183105469 - ], - "bbox": [ - 311.3999328613281, - 481.5500183105469, - 316.1999206542969, - 499.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.69998168945312, - 481.5500183105469, - 316.1999206542969, - 500.45001220703125 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 248.8999786376953, - 496.95001220703125, - 252.2999725341797, - 523.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 248.8999786376953, - 511.8500061035156 - ], - "bbox": [ - 248.8999786376953, - 504.8500061035156, - 248.8999786376953, - 523.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 248.8999786376953, - 511.8500061035156 - ], - "bbox": [ - 248.8999786376953, - 496.95001220703125, - 252.2999725341797, - 521.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.8999786376953, - 496.95001220703125, - 252.2999725341797, - 523.25 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 259.1999816894531, - 505.3499755859375, - 266.4999694824219, - 523.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012\u000b6", - "origin": [ - 259.1999816894531, - 512.3499755859375 - ], - "bbox": [ - 259.1999816894531, - 505.3499755859375, - 266.4999694824219, - 523.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 259.1999816894531, - 505.3499755859375, - 266.4999694824219, - 523.75 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 287.29998779296875, - 496.95001220703125, - 290.6999816894531, - 523.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 287.29998779296875, - 511.8500061035156 - ], - "bbox": [ - 287.29998779296875, - 504.8500061035156, - 287.29998779296875, - 523.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 287.29998779296875, - 511.8500061035156 - ], - "bbox": [ - 287.29998779296875, - 496.95001220703125, - 290.6999816894531, - 521.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 287.29998779296875, - 496.95001220703125, - 290.6999816894531, - 523.25 - ] - } - ] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 315.1999816894531, - 497.4499816894531, - 320.3999938964844, - 534.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 315.1999816894531, - 512.3499755859375 - ], - "bbox": [ - 315.1999816894531, - 497.4499816894531, - 315.1999816894531, - 522.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 315.1999816894531, - 512.3499755859375 - ], - "bbox": [ - 315.1999816894531, - 499.4499816894531, - 320.3999938964844, - 534.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.1999816894531, - 497.4499816894531, - 320.3999938964844, - 534.1499633789062 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 329.79998779296875, - 496.95001220703125, - 333.1999816894531, - 523.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 329.79998779296875, - 511.8500061035156 - ], - "bbox": [ - 329.79998779296875, - 504.8500061035156, - 329.79998779296875, - 523.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 329.79998779296875, - 511.8500061035156 - ], - "bbox": [ - 329.79998779296875, - 496.95001220703125, - 333.1999816894531, - 521.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.79998779296875, - 496.95001220703125, - 333.1999816894531, - 523.25 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 515.0999755859375, - 505.3499755859375, - 520.5999755859375, - 524.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "û", - "origin": [ - 515.0999755859375, - 512.3499755859375 - ], - "bbox": [ - 515.0999755859375, - 505.8499755859375, - 515.0999755859375, - 524.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0999755859375, - 512.3499755859375 - ], - "bbox": [ - 515.0999755859375, - 505.3499755859375, - 520.5999755859375, - 523.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.0999755859375, - 505.3499755859375, - 520.5999755859375, - 524.75 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 71.19998168945312, - 530.3499755859375, - 449.0999755859375, - 549.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ\rÝrÞ1èu×QÞNÛZÝ Þc×gÑlÒ\u001dÛZ×;ÛcÜu׳ÓcÜuÝrÞGÛ^è8ÔÖÓZÛcÒrØ8Õ/×;ڐ×gÜ8ÒTãVÔÖÝ?âuÞNÛZÝ ÔwÛcÓ^Õ/Ý?Ò\u001dÞ1ÓZ×", - "origin": [ - 71.19998168945312, - 536.8499755859375 - ], - "bbox": [ - 71.19998168945312, - 530.3499755859375, - 348.6999816894531, - 549.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 348.6999816894531, - 536.8499755859375 - ], - "bbox": [ - 348.6999816894531, - 530.3499755859375, - 353.3999938964844, - 548.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞGÒrÔÖØu×gèµèu×gÓcÕ/ÞGÔÖå8ÛcÔwÝ?ذò", - "origin": [ - 353.3999938964844, - 536.8499755859375 - ], - "bbox": [ - 353.3999938964844, - 530.3499755859375, - 449.0999755859375, - 549.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 530.3499755859375, - 449.0999755859375, - 549.25 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 93.19998168945312, - 536.75, - 300.699951171875, - 571.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u001bÝÍÓZÝ?â8ÞGÕ/×gÓ\u000fÝræ", - "origin": [ - 93.19998168945312, - 549.6500244140625 - ], - "bbox": [ - 93.19998168945312, - 543.1500244140625, - 157.2999725341797, - 562.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "7\u001f", - "origin": [ - 157.2999725341797, - 549.6500244140625 - ], - "bbox": [ - 157.2999725341797, - 536.75, - 166.49996948242188, - 571.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â+Õ/Ûcâ8Ò\u001dÛcÔwÝ?Ø8Ó", - "origin": [ - 166.49996948242188, - 549.6500244140625 - ], - "bbox": [ - 166.49996948242188, - 543.1500244140625, - 218.19998168945312, - 562.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.19998168945312, - 536.75, - 218.19998168945312, - 571.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÒrØ", - "origin": [ - 228.19998168945312, - 549.6500244140625 - ], - "bbox": [ - 228.19998168945312, - 543.1500244140625, - 238.3999786376953, - 562.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.19998168945312, - 543.1500244140625, - 238.3999786376953, - 562.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gتÛZ×QÞ", - "origin": [ - 250.29998779296875, - 549.6500244140625 - ], - "bbox": [ - 250.29998779296875, - 543.1500244140625, - 269.79998779296875, - 562.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 250.29998779296875, - 543.1500244140625, - 269.79998779296875, - 562.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8×QÞc×", - "origin": [ - 280.0999755859375, - 549.6500244140625 - ], - "bbox": [ - 280.0999755859375, - 543.1500244140625, - 295.2999572753906, - 562.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%\u0017", - "origin": [ - 295.2999572753906, - 549.6500244140625 - ], - "bbox": [ - 295.2999572753906, - 543.1500244140625, - 300.699951171875, - 561.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.0999755859375, - 543.1500244140625, - 300.699951171875, - 562.050048828125 - ] - } - ] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 319.4999694824219, - 543.1500244140625, - 522.1998901367188, - 562.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÞGÓcÛQé\u0019ÛcÜu×\u0012ÓZåyÒ\u001dÛcÔwÝrÛZ×gÙ�åÝrÞGÒrÑ\u0014è8ÔÖÓcÕ/ÞG×QÛZ×gØu×gÓcÓ\u000bížïr÷\u001dñJò", - "origin": [ - 319.4999694824219, - 549.6500244140625 - ], - "bbox": [ - 319.4999694824219, - 543.1500244140625, - 522.1998901367188, - 562.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 319.4999694824219, - 543.1500244140625, - 522.1998901367188, - 562.050048828125 - ] - } - ] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 71.39996337890625, - 556.1500244140625, - 375.3999938964844, - 575.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëV×gÕ/Ý?Ø+è°é\u0010ÛcÜu×!åÝ?ÓcÓcÔÖÚ+Ñwß¾è+ÔÖÓcÕ/Þc×QÛZ×", - "origin": [ - 71.39996337890625, - 562.6500244140625 - ], - "bbox": [ - 71.39996337890625, - 556.1500244140625, - 207.8999786376953, - 575.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.39996337890625, - 556.1500244140625, - 207.8999786376953, - 575.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ø8Ò\u001dÛcâuÞcזÝræ%ÔlتÛZ×QÞGÒrÕ/ÛcÔÖÝ?Ø8Ó ÝrÞ\rÙ¥Ò\u001dÛZÛZ×QÞgò", - "origin": [ - 217.89996337890625, - 562.6500244140625 - ], - "bbox": [ - 217.89996337890625, - 556.1500244140625, - 375.3999938964844, - 575.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 217.89996337890625, - 556.1500244140625, - 375.3999938964844, - 575.050048828125 - ] - } - ] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 394.9999694824219, - 556.1500244140625, - 518.699951171875, - 575.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×!ÑÖÒ\u001dÛZÛZ×QÞ\rÙ¥Ôwç?Ü©Û çrÝ", - "origin": [ - 394.9999694824219, - 562.6500244140625 - ], - "bbox": [ - 394.9999694824219, - 556.1500244140625, - 479.79998779296875, - 575.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 394.9999694824219, - 556.1500244140625, - 479.79998779296875, - 575.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×QßrÝ?Ø8è", - "origin": [ - 490.39996337890625, - 562.6500244140625 - ], - "bbox": [ - 490.39996337890625, - 556.1500244140625, - 518.699951171875, - 575.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 490.39996337890625, - 556.1500244140625, - 518.699951171875, - 575.050048828125 - ] - } - ] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 71.09994506835938, - 569.1500244140625, - 329.5999450683594, - 588.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü+Ò\u001dÛ³ÔÖÓ%â8ÓGâ8ÒrÑÖÑwß", - "origin": [ - 71.09994506835938, - 575.6500244140625 - ], - "bbox": [ - 71.09994506835938, - 569.1500244140625, - 138.8999481201172, - 588.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 569.1500244140625, - 138.8999481201172, - 588.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZ×Q×gØ7ÒrÓ", - "origin": [ - 148.8999481201172, - 575.6500244140625 - ], - "bbox": [ - 148.8999481201172, - 569.1500244140625, - 178.5999298095703, - 588.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u000b\" @B\"39#\u00147&", - "origin": [ - 178.5999298095703, - 575.6500244140625 - ], - "bbox": [ - 178.5999298095703, - 569.1500244140625, - 212.59991455078125, - 587.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“ÝræNä©â8ÒrØ©Ûcâ8Ù", - "origin": [ - 212.59991455078125, - 575.6500244140625 - ], - "bbox": [ - 212.59991455078125, - 569.1500244140625, - 267.39990234375, - 588.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 148.8999481201172, - 569.1500244140625, - 267.39990234375, - 588.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù�×gÕGÜ8ÒrØ+ÔÖÕQÓQò", - "origin": [ - 280.89996337890625, - 575.6500244140625 - ], - "bbox": [ - 280.89996337890625, - 569.1500244140625, - 329.5999450683594, - 588.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.89996337890625, - 569.1500244140625, - 329.5999450683594, - 588.050048828125 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 346.9999694824219, - 569.1500244140625, - 521.7999877929688, - 588.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ%Ü+ÒrÓ³ØuÝrÛ%ڐ×Q×gØ7×", - "origin": [ - 346.9999694824219, - 575.6500244140625 - ], - "bbox": [ - 346.9999694824219, - 569.1500244140625, - 431.39996337890625, - 588.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 431.39996337890625, - 575.6500244140625 - ], - "bbox": [ - 431.39996337890625, - 569.1500244140625, - 436.0999755859375, - 587.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå+ÑÖÝrÞc×gè", - "origin": [ - 436.0999755859375, - 575.6500244140625 - ], - "bbox": [ - 436.0999755859375, - 569.1500244140625, - 465.7999572753906, - 588.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.9999694824219, - 569.1500244140625, - 465.7999572753906, - 588.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ�åyÒ\u001dÞGÒrÑÖÑw×gÑ", - "origin": [ - 476.0999755859375, - 575.6500244140625 - ], - "bbox": [ - 476.0999755859375, - 569.1500244140625, - 521.7999877929688, - 588.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 476.0999755859375, - 569.1500244140625, - 521.7999877929688, - 588.050048828125 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 71.0999755859375, - 582.050048828125, - 518.7999877929688, - 600.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcܗÛcÜu×\u0019ÕQÒrâ+ÓcÒrÑ-Óc×QÛ¢ÛcÜu×QÝrÞGߗÝræ¡ÛcÜu×\u0019èu×Q×Qå\u000fÓZÛZÞGâ+Õ/ÛcâuÞc×%Ýræ­ÓZåyÒrÕ/×QÛcÔÖÙ�×\u0019ÒrØ+è!à»ÔlÑÖѰØuÝrۻڐ×%æ’âuÞcÛcÜ8×QÞ¢è8ÔÖÓGÕQâ8ÓcÓZ×gè", - "origin": [ - 71.0999755859375, - 588.550048828125 - ], - "bbox": [ - 71.0999755859375, - 582.050048828125, - 518.7999877929688, - 600.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 582.050048828125, - 518.7999877929688, - 600.9500732421875 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 71.1999740600586, - 595.050048828125, - 119.39997863769531, - 613.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÛ^å+Þc×gÓZ×gØ©ÛQò", - "origin": [ - 71.1999740600586, - 601.550048828125 - ], - "bbox": [ - 71.1999740600586, - 595.050048828125, - 119.39997863769531, - 613.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.1999740600586, - 595.050048828125, - 119.39997863769531, - 613.9500732421875 - ] - } - ] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 77.39997100830078, - 614.8499755859375, - 499.1999206542969, - 641.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "K", - "origin": [ - 77.39997100830078, - 629.75 - ], - "bbox": [ - 77.39997100830078, - 623.25, - 77.39997100830078, - 641.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e ", - "origin": [ - 77.39997100830078, - 629.75 - ], - "bbox": [ - 77.39997100830078, - 614.8499755859375, - 80.79997253417969, - 639.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ",K", - "origin": [ - 80.79997253417969, - 629.75 - ], - "bbox": [ - 80.79997253417969, - 623.25, - 86.29997253417969, - 641.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "�!#\"", - "origin": [ - 86.29997253417969, - 629.75 - ], - "bbox": [ - 86.29997253417969, - 614.8499755859375, - 99.89997100830078, - 639.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.39997100830078, - 614.8499755859375, - 99.89997100830078, - 641.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&'F", - "origin": [ - 108.1999740600586, - 629.75 - ], - "bbox": [ - 108.1999740600586, - 623.25, - 112.79997253417969, - 641.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.1999740600586, - 623.25, - 112.79997253417969, - 641.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "4-\u0014\u0016\u0010,\u0014 ) 9\u0015\f'\u000e$\"3\"$1=\u0010\u0013\u0012", - "origin": [ - 126.0999755859375, - 629.75 - ], - "bbox": [ - 126.0999755859375, - 623.25, - 184.8999786376953, - 641.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "%$", - "origin": [ - 184.8999786376953, - 629.75 - ], - "bbox": [ - 184.8999786376953, - 614.8499755859375, - 194.8999786376953, - 639.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "c\u0010\u0013\u001ea93\u001c\u0013\u001bX&\u0018\u001c\u0013D", - "origin": [ - 194.8999786376953, - 629.75 - ], - "bbox": [ - 194.8999786376953, - 623.25, - 244.89999389648438, - 641.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.0999755859375, - 614.8499755859375, - 244.89999389648438, - 641.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&#\"\u0018\u00147&3]", - "origin": [ - 251.5999755859375, - 629.75 - ], - "bbox": [ - 251.5999755859375, - 623.25, - 269.0999450683594, - 641.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.5999755859375, - 623.25, - 269.0999450683594, - 641.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "48)>\"39\u000f\"\u0018:`)P&#\"", - "origin": [ - 275.79998779296875, - 629.75 - ], - "bbox": [ - 275.79998779296875, - 623.25, - 314.6999816894531, - 641.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.79998779296875, - 623.25, - 314.6999816894531, - 641.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")7\u001e-\"$\u001c%\u000eQ4�\u0010%\u0014.\"\u0018\u001e\u001f\u0014 )>\u001c\u0013D5&\\\\u001c\u0013\u001e81\u000b\"�\u0012(\"\u0018\u000e *X\"�\u001e89'\"O\u0010A\fN\u00147;�\"", - "origin": [ - 326.1000061035156, - 629.75 - ], - "bbox": [ - 326.1000061035156, - 623.25, - 499.1999206542969, - 641.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.1000061035156, - 623.25, - 499.1999206542969, - 641.1500244140625 - ] - } - ] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 71.69999694824219, - 629.75, - 173.1999969482422, - 664.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "6\u0013\u0010\u0013\u001e", - "origin": [ - 71.69999694824219, - 642.6500244140625 - ], - "bbox": [ - 71.69999694824219, - 636.1500244140625, - 82.30000305175781, - 654.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "GJ", - "origin": [ - 82.30000305175781, - 642.6500244140625 - ], - "bbox": [ - 82.30000305175781, - 629.75, - 89.9000015258789, - 664.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "c\"�\u001b�\u0012^\u001c\u0013\u001e\u001d\u001eW\"$S#\u001bb\u001c,\u0014 ) \u0010\u0013\u001e", - "origin": [ - 89.9000015258789, - 642.6500244140625 - ], - "bbox": [ - 89.9000015258789, - 636.1500244140625, - 173.1999969482422, - 654.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69999694824219, - 629.75, - 173.1999969482422, - 664.4500122070312 - ] - } - ] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 71.19999694824219, - 648.6500244140625, - 521.7000122070312, - 668.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢ÝTà\u001b×Qãr×QÞgéÁÛcÜu×QÞG×", - "origin": [ - 71.19999694824219, - 655.6500244140625 - ], - "bbox": [ - 71.19999694824219, - 649.1500244140625, - 142.20001220703125, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 649.1500244140625, - 142.20001220703125, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖӟÒrØ", - "origin": [ - 154.39999389648438, - 655.6500244140625 - ], - "bbox": [ - 154.39999389648438, - 649.1500244140625, - 174.5, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.39999389648438, - 649.1500244140625, - 174.5, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÙ�åÝrÞcÛcÒrØ©Û", - "origin": [ - 188.0, - 655.6500244140625 - ], - "bbox": [ - 188.0, - 649.1500244140625, - 231.6999969482422, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.0, - 649.1500244140625, - 231.6999969482422, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 244.39999389648438, - 655.6500244140625 - ], - "bbox": [ - 244.39999389648438, - 648.6500244140625, - 244.39999389648438, - 667.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒrÓZßWÙ�å8ÛZÝrÛcÔÖÕ", - "origin": [ - 244.39999389648438, - 655.6500244140625 - ], - "bbox": [ - 244.39999389648438, - 649.1500244140625, - 296.1999816894531, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 244.39999389648438, - 648.6500244140625, - 296.1999816894531, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™Þc×Q×gè8Ý?Ù", - "origin": [ - 308.3999938964844, - 655.6500244140625 - ], - "bbox": [ - 308.3999938964844, - 649.1500244140625, - 337.2999572753906, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.3999938964844, - 649.1500244140625, - 337.2999572753906, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×", - "origin": [ - 359.1000061035156, - 655.6500244140625 - ], - "bbox": [ - 359.1000061035156, - 649.1500244140625, - 359.1000061035156, - 668.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 359.1000061035156, - 655.6500244140625 - ], - "bbox": [ - 359.1000061035156, - 648.6500244140625, - 363.8000183105469, - 667.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛQéÁÕQÒrâ8ÓZ×gè", - "origin": [ - 363.8000183105469, - 655.6500244140625 - ], - "bbox": [ - 363.8000183105469, - 649.1500244140625, - 421.0, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 359.1000061035156, - 648.6500244140625, - 421.0, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú©ß", - "origin": [ - 434.5, - 655.6500244140625 - ], - "bbox": [ - 434.5, - 649.1500244140625, - 440.20001220703125, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 434.5, - 649.1500244140625, - 440.20001220703125, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZåyÒ\u001dÛcÔwÝrÛZ×gÙ�åÝrÞGÒrÑ", - "origin": [ - 453.3999938964844, - 655.6500244140625 - ], - "bbox": [ - 453.3999938964844, - 649.1500244140625, - 521.7000122070312, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.3999938964844, - 649.1500244140625, - 521.7000122070312, - 668.050048828125 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 71.19998168945312, - 661.9500122070312, - 142.99998474121094, - 680.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8ÔlÓcÕ/Þc×QÛZ×gØu×gÓcÓ", - "origin": [ - 71.19998168945312, - 668.4500122070312 - ], - "bbox": [ - 71.19998168945312, - 661.9500122070312, - 122.89998626708984, - 680.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#\u0017", - "origin": [ - 122.89998626708984, - 668.4500122070312 - ], - "bbox": [ - 122.89998626708984, - 661.9500122070312, - 127.79998779296875, - 679.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "–Ý?Ø", - "origin": [ - 127.79998779296875, - 668.4500122070312 - ], - "bbox": [ - 127.79998779296875, - 661.9500122070312, - 142.99998474121094, - 680.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 661.9500122070312, - 142.99998474121094, - 680.8500366210938 - ] - } - ] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 168.5999755859375, - 661.4500122070312, - 520.199951171875, - 680.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú+ÒrÕ", - "origin": [ - 168.5999755859375, - 668.4500122070312 - ], - "bbox": [ - 168.5999755859375, - 661.9500122070312, - 180.19996643066406, - 680.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 180.19996643066406, - 668.4500122070312 - ], - "bbox": [ - 180.19996643066406, - 661.4500122070312, - 184.49996948242188, - 679.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VçrÞcÝ?â8Ø8è", - "origin": [ - 184.49996948242188, - 668.4500122070312 - ], - "bbox": [ - 184.49996948242188, - 661.9500122070312, - 217.69998168945312, - 680.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.5999755859375, - 661.4500122070312, - 217.69998168945312, - 680.8500366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 224.0999755859375, - 668.4500122070312 - ], - "bbox": [ - 224.0999755859375, - 661.4500122070312, - 224.0999755859375, - 679.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014ÕQÒrâ8ÓcÒrÑ\u0016ÓZ×QÛQéNÕ/ÞcÝ?ÓcӜÓZ×gÕ/ÛcÔwÝ?Ø8Ó\u001fÙ\u0019â+ÓZÛ¥æ’ÒrÑÖÑNÛZÝ", - "origin": [ - 224.0999755859375, - 668.4500122070312 - ], - "bbox": [ - 224.0999755859375, - 661.9500122070312, - 411.1999816894531, - 680.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0016\u001b", - "origin": [ - 411.1999816894531, - 668.4500122070312 - ], - "bbox": [ - 411.1999816894531, - 661.4500122070312, - 421.4999694824219, - 679.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×QÞcݾà»Üu×gØ", - "origin": [ - 421.4999694824219, - 668.4500122070312 - ], - "bbox": [ - 421.4999694824219, - 661.9500122070312, - 464.7999267578125, - 680.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.0999755859375, - 661.4500122070312, - 464.7999267578125, - 680.8500366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×!Õ/×gØ©ÛZ×QÞ", - "origin": [ - 475.79998779296875, - 668.4500122070312 - ], - "bbox": [ - 475.79998779296875, - 661.9500122070312, - 520.199951171875, - 680.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 475.79998779296875, - 661.9500122070312, - 520.199951171875, - 680.8500366210938 - ] - } - ] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 71.0999755859375, - 674.9500122070312, - 330.59991455078125, - 693.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ;Ù¥ÒrÓcÓ¥×gØu×QÞcçrß\u000bÝræ“Ûsà\u001bݾÓcÕQÒ\u001dÛZÛZ×QÞGÔlØuç7å+Ò\u001dÞGÛcÔÖÕQÑw×gÓ�Þc×gÒrÕ1Üu×gÓ¥ÛcÜ8×", - "origin": [ - 71.0999755859375, - 681.4500122070312 - ], - "bbox": [ - 71.0999755859375, - 674.9500122070312, - 330.59991455078125, - 693.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 674.9500122070312, - 330.59991455078125, - 693.8500366210938 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 347.79998779296875, - 666.5499877929688, - 429.7999267578125, - 693.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ+Õ", - "origin": [ - 347.79998779296875, - 681.4500122070312 - ], - "bbox": [ - 347.79998779296875, - 674.9500122070312, - 362.5, - 693.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 362.5, - 681.4500122070312 - ], - "bbox": [ - 362.5, - 674.4500122070312, - 366.79998779296875, - 692.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0012ÓcÕQÒrÑw×¾ížïrø\u001dñJò", - "origin": [ - 366.79998779296875, - 681.4500122070312 - ], - "bbox": [ - 366.79998779296875, - 674.9500122070312, - 422.3999328613281, - 693.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "'&", - "origin": [ - 422.3999328613281, - 681.4500122070312 - ], - "bbox": [ - 422.3999328613281, - 666.5499877929688, - 429.7999267578125, - 691.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.79998779296875, - 666.5499877929688, - 429.7999267578125, - 693.8500366210938 - ] - } - ] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 451.0999755859375, - 674.9500122070312, - 518.5999755859375, - 693.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÓ�ÔÖÓ�Ú+ÒrÓc×gè\u0012Ý?Ø", - "origin": [ - 451.0999755859375, - 681.4500122070312 - ], - "bbox": [ - 451.0999755859375, - 674.9500122070312, - 518.5999755859375, - 693.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 451.0999755859375, - 674.9500122070312, - 518.5999755859375, - 693.8500366210938 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 80.19998168945312, - 698.25, - 87.29998016357422, - 717.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "j·H", - "origin": [ - 80.19998168945312, - 704.75 - ], - "bbox": [ - 80.19998168945312, - 698.25, - 87.29998016357422, - 717.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.19998168945312, - 698.25, - 87.29998016357422, - 717.1500244140625 - ] - } - ] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 96.29998779296875, - 689.8499755859375, - 188.59996032714844, - 717.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1O", - "origin": [ - 96.29998779296875, - 704.75 - ], - "bbox": [ - 96.29998779296875, - 698.25, - 100.79998779296875, - 717.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "*)", - "origin": [ - 100.79998779296875, - 704.75 - ], - "bbox": [ - 100.79998779296875, - 689.8499755859375, - 105.89998626708984, - 714.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001f<", - "origin": [ - 105.89998626708984, - 704.75 - ], - "bbox": [ - 105.89998626708984, - 697.75, - 114.69998931884766, - 716.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-EG ¸E1MPt", - "origin": [ - 114.69998931884766, - 704.75 - ], - "bbox": [ - 114.69998931884766, - 698.25, - 137.5, - 717.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ",+", - "origin": [ - 137.5, - 704.75 - ], - "bbox": [ - 137.5, - 689.8499755859375, - 144.1999969482422, - 714.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gR1F", - "origin": [ - 144.1999969482422, - 704.75 - ], - "bbox": [ - 144.1999969482422, - 698.25, - 153.59999084472656, - 717.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 153.59999084472656, - 704.75 - ], - "bbox": [ - 153.59999084472656, - 689.8499755859375, - 157.29998779296875, - 714.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO\u0014 ¸RGF\u0010H", - "origin": [ - 157.29998779296875, - 704.75 - ], - "bbox": [ - 157.29998779296875, - 698.25, - 188.59996032714844, - 717.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.29998779296875, - 689.8499755859375, - 188.59996032714844, - 717.1500244140625 - ] - } - ] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 197.49998474121094, - 698.25, - 356.7000732421875, - 717.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MN ¸R1tLtDRZ‘¬ALO\u0018d\u0019ALtDtL•aKNADO\u0018EGHJALO\u0018d%STMPXIY]FJALCaHJALR1O RG ¬H", - "origin": [ - 197.49998474121094, - 704.75 - ], - "bbox": [ - 197.49998474121094, - 698.25, - 356.7000732421875, - 717.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 197.49998474121094, - 698.25, - 356.7000732421875, - 717.1500244140625 - ] - } - ] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 365.6000061035156, - 698.25, - 434.5999755859375, - 717.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX&[™¶BR%j=OQHJM]FsEGY]HJALReO", - "origin": [ - 365.6000061035156, - 704.75 - ], - "bbox": [ - 365.6000061035156, - 698.25, - 434.5999755859375, - 717.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.6000061035156, - 698.25, - 434.5999755859375, - 717.1500244140625 - ] - } - ] - }, - { - "number": 114, - "type": 0, - "bbox": [ - 443.70001220703125, - 698.050048828125, - 450.20001220703125, - 716.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 443.70001220703125, - 704.550048828125 - ], - "bbox": [ - 443.70001220703125, - 698.050048828125, - 450.20001220703125, - 716.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 443.70001220703125, - 698.050048828125, - 450.20001220703125, - 716.9500732421875 - ] - } - ] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 455.4000244140625, - 689.8499755859375, - 521.2000122070312, - 717.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]R1FJMPKN_Tv", - "origin": [ - 455.4000244140625, - 704.75 - ], - "bbox": [ - 455.4000244140625, - 698.25, - 484.5000305175781, - 717.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "/.1032547698;:", - "origin": [ - 484.5000305175781, - 704.75 - ], - "bbox": [ - 484.5000305175781, - 689.8499755859375, - 521.2000122070312, - 714.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.4000244140625, - 689.8499755859375, - 521.2000122070312, - 717.1500244140625 - ] - } - ] - }, - { - "number": 116, - "type": 0, - "bbox": [ - 71.9000244140625, - 700.9500122070312, - 521.0999755859375, - 725.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ":<2>=1?/@A27BDCE6E=GFH:JI7B\u0012KL2NM7:POH@A2>=1Q>:DCR27S32UTVKWI7BDFYXZCE[*\\D:>]36^8`_a6^8AQbI7KcS#QN6,SV@A2>=1:5d/.18eC9?f:J=1:D8*C\u0018:DBgI\u001eh\u00120327S-SLhDB<2703:Di,C9?f:\u001cCEKWIgCE[*\\1:DS", - "origin": [ - 71.9000244140625, - 715.8500366210938 - ], - "bbox": [ - 71.9000244140625, - 700.9500122070312, - 521.0999755859375, - 725.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.9000244140625, - 700.9500122070312, - 521.0999755859375, - 725.8500366210938 - ] - } - ] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 71.60002136230469, - 711.8499755859375, - 520.5, - 736.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "032jQ>:\u001c278kT9l\u001c]5dnmo?f:\u001c=1:D8fC\u0018:DBJI#hpC9?f:qlRi\u0017Kr?f:DB<:\u001cC9?f:pCE[*\\D:DS303:-:DCEis6^S'C9?f:36^8fC\u0018:DB#2>=PCE6VI78�B-:V476VIN8;dZtRI7K�\\1I5INS1CR:<2>=1?Z@A2NBDCE6V=GFH:pC\u0015I", - "origin": [ - 71.60002136230469, - 726.75 - ], - "bbox": [ - 71.60002136230469, - 711.8499755859375, - 520.5, - 736.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.60002136230469, - 711.8499755859375, - 520.5, - 736.75 - ] - } - ] - }, - { - "number": 118, - "type": 0, - "bbox": [ - 71.80001831054688, - 722.75, - 519.800048828125, - 747.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "2JM7:DB1uJ?v6Y4j?`:D8;:DBE47uwdqxy:<=-27[vSP:\u001cI\u001eh'C9?f:Rz{INB-:D8fC}|J=-I78fCEB#2>=PCE6VI78*i\u0017C9?f:\u0012CE[f\\1:DS\u0012\\1:-=-I703:qSDIn~\u001727CEC\u0018:D8;::PF", - "origin": [ - 335.0000305175781, - 748.6500244140625 - ], - "bbox": [ - 335.0000305175781, - 733.75, - 346.4000549316406, - 758.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.0000305175781, - 733.75, - 346.4000549316406, - 758.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "uD†'8‡I/:PFH:D03:D8fCLI#hyC9?f:„=-27[vSG:DCWC\u0015IpB-:\u0018@‡B<:DSG:D8*C\u0017C9?v6^S", - "origin": [ - 348.7000427246094, - 748.6500244140625 - ], - "bbox": [ - 348.7000427246094, - 733.75, - 521.4000854492188, - 758.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.7000427246094, - 733.75, - 521.4000854492188, - 758.6500244140625 - ] - } - ] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 71.60003662109375, - 744.75, - 269.4000244140625, - 769.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "6^8fC\u0018:DB#2>=PCE6VI78B-:V476VIN8fiˆK\u001a?*:D8=1:„C9?f:DB<:'6^Sn8‡Ip6^8fC\u0018:DB#2>=PCE6VI78d", - "origin": [ - 71.60003662109375, - 759.6500244140625 - ], - "bbox": [ - 71.60003662109375, - 744.75, - 269.4000244140625, - 769.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.60003662109375, - 744.75, - 269.4000244140625, - 769.6500244140625 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [ - { - "bbox": [ - 241.08944399677677, - 509.16239316239313, - 354.4302981466559, - 525.0136752136752 - ], - "image_path": "equation_interline/4_241_509_354_525.jpg" - } - ], - "inline_equations": [ - { - "bbox": [ - 146.47864625302174, - 113.84102564102564, - 154.6430298146656, - 125.84957264957265 - ], - "image_path": "equations_inline/4_146_113_154_125.jpg" - }, - { - "bbox": [ - 267.9838839645447, - 115.76239316239315, - 300.64141821112, - 127.77094017094016 - ], - "image_path": "equations_inline/4_267_115_300_127.jpg" - }, - { - "bbox": [ - 223.31990330378724, - 218.07521367521366, - 231.96454472199838, - 230.56410256410257 - ], - "image_path": "equations_inline/4_223_218_231_230.jpg" - }, - { - "bbox": [ - 437.9951651893634, - 422.7008547008547, - 473.5342465753424, - 435.18974358974356 - ], - "image_path": "equations_inline/4_437_422_473_435.jpg" - }, - { - "bbox": [ - 510.51410153102336, - 423.18119658119656, - 525.8823529411765, - 435.18974358974356 - ], - "image_path": "equations_inline/4_510_423_525_435.jpg" - }, - { - "bbox": [ - 288.6349717969379, - 449.1196581196581, - 299.2006446414182, - 459.2068376068376 - ], - "image_path": "equations_inline/4_288_449_299_459.jpg" - }, - { - "bbox": [ - 446.6398066075745, - 451.0410256410256, - 453.84367445608376, - 459.2068376068376 - ], - "image_path": "equations_inline/4_446_451_453_459.jpg" - }, - { - "bbox": [ - 201.70829975825944, - 475.05811965811967, - 212.754230459307, - 485.14529914529913 - ], - "image_path": "equations_inline/4_201_475_212_485.jpg" - }, - { - "bbox": [ - 324.17405318291696, - 477.459829059829, - 331.37792103142624, - 484.66495726495725 - ], - "image_path": "equations_inline/4_324_477_331_484.jpg" - }, - { - "bbox": [ - 210.83319903303786, - 488.0273504273504, - 226.68170829975824, - 498.1145299145299 - ], - "image_path": "equations_inline/4_210_488_226_498.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 71.9962158203125, - 595.5, - 800.5619506835938 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 92.9000015258789, - 109.8499755859375, - 138.10000610351562, - 128.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔlتÛZ×QÞGÒrÕ/ÛcÔÖÝ?Ø", - "origin": [ - 92.9000015258789, - 116.3499755859375 - ], - "bbox": [ - 92.9000015258789, - 109.8499755859375, - 138.10000610351562, - 128.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.9000015258789, - 109.8499755859375, - 138.10000610351562, - 128.74996948242188 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 157.0, - 109.8499755859375, - 261.60003662109375, - 128.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ½ÒrتÛcÔÖÓcßV٥٥×QÛZÞGÔÖÕNâ8Ø8è8×QÞ", - "origin": [ - 157.0, - 116.3499755859375 - ], - "bbox": [ - 157.0, - 109.8499755859375, - 261.60003662109375, - 128.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.0, - 109.8499755859375, - 261.60003662109375, - 128.74996948242188 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 269.1000061035156, - 88.5499496459961, - 280.70001220703125, - 125.24995422363281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "/", - "origin": [ - 269.1000061035156, - 103.449951171875 - ], - "bbox": [ - 269.1000061035156, - 90.5499496459961, - 269.1000061035156, - 125.24995422363281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "�", - "origin": [ - 269.1000061035156, - 103.449951171875 - ], - "bbox": [ - 269.1000061035156, - 88.5499496459961, - 280.70001220703125, - 113.449951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.1000061035156, - 88.5499496459961, - 280.70001220703125, - 125.24995422363281 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 300.1999816894531, - 109.8499755859375, - 361.5, - 128.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "é?ÛcÜu×¢Õ/Ý?Ù�å+Ñw×QÛZ×", - "origin": [ - 300.1999816894531, - 116.3499755859375 - ], - "bbox": [ - 300.1999816894531, - 109.8499755859375, - 361.5, - 128.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 300.1999816894531, - 109.8499755859375, - 361.5, - 128.74996948242188 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 373.6999816894531, - 109.3499755859375, - 520.89990234375, - 128.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "á-ÔwÝ?âuãWÔÖÑÖÑw×", - "origin": [ - 373.6999816894531, - 116.3499755859375 - ], - "bbox": [ - 373.6999816894531, - 109.8499755859375, - 410.1999816894531, - 128.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 373.6999816894531, - 109.8499755859375, - 410.1999816894531, - 128.74996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 415.29998779296875, - 116.3499755859375 - ], - "bbox": [ - 415.29998779296875, - 109.3499755859375, - 415.29998779296875, - 127.7499771118164 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬Ýrå×QÞGÒ\u001dÛZÝrÞ½Ý?Ø¥ÛcÜu×^ÞGÔwç?Ü©Û", - "origin": [ - 415.29998779296875, - 116.3499755859375 - ], - "bbox": [ - 415.29998779296875, - 109.8499755859375, - 516.7999267578125, - 128.74996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "A�", - "origin": [ - 516.7999267578125, - 116.3499755859375 - ], - "bbox": [ - 516.7999267578125, - 109.8499755859375, - 520.89990234375, - 127.7499771118164 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 415.29998779296875, - 109.3499755859375, - 520.89990234375, - 128.74996948242188 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 92.89999389648438, - 116.4499740600586, - 166.89999389648438, - 151.1499786376953 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÒrØ8è ÓcÔlèu×NÝræ", - "origin": [ - 92.89999389648438, - 129.3499755859375 - ], - "bbox": [ - 92.89999389648438, - 122.8499755859375, - 146.49998474121094, - 141.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.89999389648438, - 122.8499755859375, - 146.49998474121094, - 141.74996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 153.1999969482422, - 129.3499755859375 - ], - "bbox": [ - 153.1999969482422, - 116.4499740600586, - 153.1999969482422, - 151.1499786376953 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 153.1999969482422, - 129.3499755859375 - ], - "bbox": [ - 153.1999969482422, - 122.8499755859375, - 166.89999389648438, - 141.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 153.1999969482422, - 116.4499740600586, - 166.89999389648438, - 151.1499786376953 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 175.5, - 122.3499755859375, - 520.4000244140625, - 141.74996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 175.5, - 129.3499755859375 - ], - "bbox": [ - 175.5, - 122.8499755859375, - 175.5, - 141.74996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 175.5, - 129.3499755859375 - ], - "bbox": [ - 175.5, - 122.3499755859375, - 181.0, - 140.74996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡Ü8ÒrÓ\u001bÒ%ÓZßWÙ¥Ù�×QÛZÞ1ÔÖÕ^ÓZå×gÕ/ÛZÞGâ8Ù", - "origin": [ - 181.0, - 129.3499755859375 - ], - "bbox": [ - 181.0, - 122.8499755859375, - 303.5000305175781, - 141.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.5, - 122.3499755859375, - 303.5000305175781, - 141.74996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔwÛcÜ�ÞG×gÓZå×gÕ/Û­ÛZÝ", - "origin": [ - 315.70001220703125, - 129.3499755859375 - ], - "bbox": [ - 315.70001220703125, - 122.8499755859375, - 381.1000061035156, - 141.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.70001220703125, - 122.8499755859375, - 381.1000061035156, - 141.74996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001b", - "origin": [ - 389.70001220703125, - 129.3499755859375 - ], - "bbox": [ - 389.70001220703125, - 122.3499755859375, - 389.70001220703125, - 140.74996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×QÞcÝ&ÒrØ8è°éVÔÖØ�çr×gØu×QÞGÒrÑJé©à»ÔlÑÖÑuØuÝrÛ", - "origin": [ - 389.70001220703125, - 129.3499755859375 - ], - "bbox": [ - 389.70001220703125, - 122.8499755859375, - 520.4000244140625, - 141.74996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.70001220703125, - 122.3499755859375, - 520.4000244140625, - 141.74996948242188 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 92.80001831054688, - 135.75, - 180.2000274658203, - 154.64999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×;ڐÝ?â8Ø8è8×gèœÚ×gÑwÝaà%ò", - "origin": [ - 92.80001831054688, - 142.25 - ], - "bbox": [ - 92.80001831054688, - 135.75, - 180.2000274658203, - 154.64999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.80001831054688, - 135.75, - 180.2000274658203, - 154.64999389648438 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 100.00001525878906, - 164.54998779296875, - 338.9999694824219, - 183.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ+ÒrÑÖÑwßréWÛcÜu×%æ=Ý?ÑÖÑwÝaà»ÔÖØuç\u0014ÝrÚ+ÓZ×QÞGã\u0018Ò\u001dÛcÔwÝ?ؖà»ÔÖÑÖÑ6ڐ×;ÔÖÙ�åÝrÞcÛcÒrØ©Û", - "origin": [ - 100.00001525878906, - 171.04998779296875 - ], - "bbox": [ - 100.00001525878906, - 164.54998779296875, - 334.1999816894531, - 183.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017", - "origin": [ - 334.1999816894531, - 171.04998779296875 - ], - "bbox": [ - 334.1999816894531, - 164.54998779296875, - 338.9999694824219, - 182.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.00001525878906, - 164.54998779296875, - 338.9999694824219, - 183.44998168945312 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 152.80001831054688, - 180.14999389648438, - 162.9000244140625, - 216.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ":", - "origin": [ - 152.80001831054688, - 195.04998779296875 - ], - "bbox": [ - 152.80001831054688, - 182.14999389648438, - 152.80001831054688, - 216.84999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "�", - "origin": [ - 152.80001831054688, - 195.04998779296875 - ], - "bbox": [ - 152.80001831054688, - 180.14999389648438, - 162.9000244140625, - 205.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.80001831054688, - 180.14999389648438, - 162.9000244140625, - 216.84999084472656 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 174.20001220703125, - 180.55001831054688, - 280.29998779296875, - 207.85000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ü", - "origin": [ - 174.20001220703125, - 195.45001220703125 - ], - "bbox": [ - 174.20001220703125, - 188.95001220703125, - 174.20001220703125, - 207.85000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "��", - "origin": [ - 174.20001220703125, - 195.45001220703125 - ], - "bbox": [ - 174.20001220703125, - 180.55001831054688, - 198.00001525878906, - 205.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 174.20001220703125, - 180.55001831054688, - 198.00001525878906, - 207.85000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÞGâu×;åÝrÛZ×gتÛcÔlÒrÑ", - "origin": [ - 217.80001831054688, - 195.45001220703125 - ], - "bbox": [ - 217.80001831054688, - 188.95001220703125, - 280.29998779296875, - 207.85000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 217.80001831054688, - 188.95001220703125, - 280.29998779296875, - 207.85000610351562 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 292.6000061035156, - 187.95001220703125, - 296.0, - 206.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f21", - "origin": [ - 292.6000061035156, - 194.95001220703125 - ], - "bbox": [ - 292.6000061035156, - 187.95001220703125, - 296.0, - 206.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 292.6000061035156, - 187.95001220703125, - 296.0, - 206.35000610351562 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 302.5, - 188.45001220703125, - 453.9999694824219, - 207.85000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 302.5, - 195.45001220703125 - ], - "bbox": [ - 302.5, - 188.45001220703125, - 302.5, - 206.85000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "­ÔÖÓNÕ/Ý?Ø8ÓZÛcÒrØ©ÛQéyÑlÔÖØu×gÒ\u001dÞgéWÝrÞ»Ü8Ò\u001dÞ1Ù�Ý?Ø8ÔÖÕ", - "origin": [ - 302.5, - 195.45001220703125 - ], - "bbox": [ - 302.5, - 188.95001220703125, - 453.9999694824219, - 207.85000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 302.5, - 188.45001220703125, - 453.9999694824219, - 207.85000610351562 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 515.0999755859375, - 188.45001220703125, - 520.5999755859375, - 207.85000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ú", - "origin": [ - 515.0999755859375, - 195.45001220703125 - ], - "bbox": [ - 515.0999755859375, - 188.95001220703125, - 515.0999755859375, - 207.85000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0999755859375, - 195.45001220703125 - ], - "bbox": [ - 515.0999755859375, - 188.45001220703125, - 520.5999755859375, - 206.85000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.0999755859375, - 188.45001220703125, - 520.5999755859375, - 207.85000610351562 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 100.89996337890625, - 214.54998779296875, - 217.79995727539062, - 233.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×»ÒrØ8ÒrÑwÝrçrÝ?â+Ó­ã\u001dÒrØ8ÔÖÓcÜ8ÔlØuç“Ýræ", - "origin": [ - 100.89996337890625, - 221.04998779296875 - ], - "bbox": [ - 100.89996337890625, - 214.54998779296875, - 217.79995727539062, - 233.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.89996337890625, - 214.54998779296875, - 217.79995727539062, - 233.44998168945312 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 234.19998168945312, - 214.54998779296875, - 520.5, - 233.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ¥Ò", - "origin": [ - 234.19998168945312, - 221.04998779296875 - ], - "bbox": [ - 234.19998168945312, - 214.54998779296875, - 246.39999389648438, - 233.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "N\n", - "origin": [ - 246.39999389648438, - 221.04998779296875 - ], - "bbox": [ - 246.39999389648438, - 214.54998779296875, - 255.0, - 232.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gÑÖè\u0014ÛcÜu×QÝrÞcߥÔlÓ¡×gä©â+Ôwã\u0018ÒrÑÖ×gتۡà»ÔÖÛcÜ¥Ü8ÒgãWÔÖØuç\u0019Ù¥ÒrÓcÓcÔwãr×»ÝrÞ\"Ù¥ÒrÓcÓGÑw×gÓcÓ", - "origin": [ - 255.0, - 221.04998779296875 - ], - "bbox": [ - 255.0, - 214.54998779296875, - 520.5, - 233.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.19998168945312, - 214.54998779296875, - 520.5, - 233.44998168945312 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 92.79997253417969, - 227.45001220703125, - 522.3999633789062, - 246.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=Þc×Q×", - "origin": [ - 92.79997253417969, - 233.95001220703125 - ], - "bbox": [ - 92.79997253417969, - 227.45001220703125, - 105.29998016357422, - 246.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.79997253417969, - 227.45001220703125, - 105.29998016357422, - 246.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 116.39997100830078, - 233.95001220703125 - ], - "bbox": [ - 116.39997100830078, - 227.45001220703125, - 116.39997100830078, - 245.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gÑÖè8ÓQé�à¢ÔwÛc܎ÝrÞ7à¢ÔwÛcÜuÝ?âuÛ�×", - "origin": [ - 116.39997100830078, - 233.95001220703125 - ], - "bbox": [ - 116.39997100830078, - 227.45001220703125, - 236.69998168945312, - 246.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 236.69998168945312, - 233.95001220703125 - ], - "bbox": [ - 236.69998168945312, - 227.45001220703125, - 241.3999786376953, - 245.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZ×QÞGØ8ÒrќÓZÝ?âuÞGÕ/×gÓQé\u001fÒrØ8è", - "origin": [ - 241.3999786376953, - 233.95001220703125 - ], - "bbox": [ - 241.3999786376953, - 227.45001220703125, - 336.8999328613281, - 246.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 116.39997100830078, - 227.45001220703125, - 336.8999328613281, - 246.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à¢ÔwÛc܎ÝrÞ7à¢ÔwÛcÜuÝ?âuÛ�Ú+ÔlÑÖÔÖØu×gÒ\u001dÞ", - "origin": [ - 348.9999694824219, - 233.95001220703125 - ], - "bbox": [ - 348.9999694824219, - 227.45001220703125, - 467.0999755859375, - 246.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.9999694824219, - 227.45001220703125, - 467.0999755859375, - 246.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/Ý?âuåyÑÖÔÖØuç?ÓQò", - "origin": [ - 477.39996337890625, - 233.95001220703125 - ], - "bbox": [ - 477.39996337890625, - 227.45001220703125, - 522.3999633789062, - 246.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 477.39996337890625, - 227.45001220703125, - 522.3999633789062, - 246.35000610351562 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 93.09994506835938, - 234.05001831054688, - 442.89996337890625, - 268.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "E", - "origin": [ - 93.09994506835938, - 246.95001220703125 - ], - "bbox": [ - 93.09994506835938, - 234.05001831054688, - 93.09994506835938, - 268.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“×gØu×QÞGÒrÑÖÑwßréyÔÖØ—ÒrÑÖѐÛcÜu×gÓZ×\u0019ÕQÒrÓZ×gÓQé+ÒrØ8Ü+Ò\u001dÞGÙ�Ý?Ø8ÔÖÕ\u0016æ=ÝrÞGÕ/×gÓ^ÝrÞ\u0016ÔÖØ©ÛZ×QÞGÒrÕ/ÛcÔwÝ?Ø8Ó^Ò\u001dÞG׳Ò\u001dÚ+ÓZ×gØ©ÛQò", - "origin": [ - 93.09994506835938, - 246.95001220703125 - ], - "bbox": [ - 93.09994506835938, - 240.45001220703125, - 442.89996337890625, - 259.3500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.09994506835938, - 234.05001831054688, - 442.89996337890625, - 268.75 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 81.29994201660156, - 258.54998779296875, - 521.199951171875, - 277.9499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×\r×gÙ�å+Ü+ÒrÓcÔ", - "origin": [ - 81.29994201660156, - 265.54998779296875 - ], - "bbox": [ - 81.29994201660156, - 259.04998779296875, - 126.79994201660156, - 277.9499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 126.79994201660156, - 265.54998779296875 - ], - "bbox": [ - 126.79994201660156, - 258.54998779296875, - 129.79994201660156, - 276.9499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×\u001fÛcÜ8Ò\u001dÛ�ÛcÜu×\rÕ/Ý?âuå+ÑÖÔÖØ8ç!Ýræ»ÛcÜ8×\rê\u0016ÔÖÑwڐ×QÞcÛ\u0019ÓZå+ÒrÕ/חÒrØ8è\u000bÔwÛcÓ\u0014è8â8ÒrÑ\u001bÒrØ8è", - "origin": [ - 129.79994201660156, - 265.54998779296875 - ], - "bbox": [ - 129.79994201660156, - 259.04998779296875, - 410.1000061035156, - 277.9499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.29994201660156, - 258.54998779296875, - 410.1000061035156, - 277.9499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\rÞc×gÑÖÒ\u001dÛZ×gè\u0012ÑÖÒrÕ", - "origin": [ - 420.699951171875, - 265.54998779296875 - ], - "bbox": [ - 420.699951171875, - 259.04998779296875, - 486.4999084472656, - 277.9499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 486.4999084472656, - 265.54998779296875 - ], - "bbox": [ - 486.4999084472656, - 258.54998779296875, - 490.89990234375, - 276.9499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÔlØuçµÝræ", - "origin": [ - 490.89990234375, - 265.54998779296875 - ], - "bbox": [ - 490.89990234375, - 259.04998779296875, - 521.199951171875, - 277.9499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.699951171875, - 258.54998779296875, - 521.199951171875, - 277.9499816894531 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 71.199951171875, - 271.95001220703125, - 520.3999633789062, - 290.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒµÓZÛcÒ\u001dÚ+Ñw×¥çrÞGÝ?â8Ø8è7ÓcÛcÒ\u001dÛZ×ré­ÔÖØ�çr×gØu×QÞGÒrÑJé·ÓGÜuÝTà", - "origin": [ - 71.199951171875, - 278.45001220703125 - ], - "bbox": [ - 71.199951171875, - 271.95001220703125, - 252.29994201660156, - 290.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 271.95001220703125, - 252.29994201660156, - 290.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8Ò\u001dÛ³Ý?â8Þ³Þc×Qæ=ÝrÞGÙ&â8ÑÖÒ\u001dÛcÔwÝ?Ø7Ýræ^ê¢ÒrÙ¥ÔlÑwÛZÝ?Ø8ÔÖÒrØ", - "origin": [ - 264.699951171875, - 278.45001220703125 - ], - "bbox": [ - 264.699951171875, - 271.95001220703125, - 444.39990234375, - 290.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.699951171875, - 271.95001220703125, - 444.39990234375, - 290.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8ßVØ8ÒrÙ ÔÖÕQÓ%èuÝV×gÓ", - "origin": [ - 454.699951171875, - 278.45001220703125 - ], - "bbox": [ - 454.699951171875, - 271.95001220703125, - 520.3999633789062, - 290.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.699951171875, - 271.95001220703125, - 520.3999633789062, - 290.8500061035156 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 71.199951171875, - 284.95001220703125, - 515.5999145507812, - 303.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ØuÝrÛ\u0016ä©â+ÒrÑÖÔwæ=ß\u001fÒrÓ\u0016Ò¥å8ÞGÝrå6×QÞ¢ä©â8ÒrØ©Ûcâ8ÙÿÛcÜu×QÝrÞcßrò»ê¢ÝTà\u001b×Qãr×QÞgé°à\u001b׳à»ÔÖÑlѰÙ�ÝrÛcÔwã\u001dÒ\u001dÛZ×&Õ/×QÞcÛcÒrÔlØ!Ù�ÝWè8Ô", - "origin": [ - 71.199951171875, - 291.45001220703125 - ], - "bbox": [ - 71.199951171875, - 284.95001220703125, - 456.2998962402344, - 303.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 284.95001220703125, - 456.2998962402344, - 303.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 459.2999572753906, - 291.45001220703125 - ], - "bbox": [ - 459.2999572753906, - 284.95001220703125, - 459.2999572753906, - 302.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+ÕQÒ\u001dÛcÔÖÝ?Ø8ÓNæ=ÞcÝ?Ù", - "origin": [ - 459.2999572753906, - 291.45001220703125 - ], - "bbox": [ - 459.2999572753906, - 284.95001220703125, - 515.5999145507812, - 303.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.2999572753906, - 284.95001220703125, - 515.5999145507812, - 303.8500061035156 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 71.09994506835938, - 297.95001220703125, - 418.1999206542969, - 316.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü+ÔÖÕGܗèußWØ8ÒrÙ¥ÔlÕQÒrѰÒrÓZå×gÕ/ÛcÓNÝræ¡ä©â8ÒrØ©Ûcâ8Ù", - "origin": [ - 71.09994506835938, - 304.45001220703125 - ], - "bbox": [ - 71.09994506835938, - 297.95001220703125, - 238.5999298095703, - 316.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 297.95001220703125, - 238.5999298095703, - 316.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÓ^ÓZ×Q×gÙ", - "origin": [ - 251.29994201660156, - 304.45001220703125 - ], - "bbox": [ - 251.29994201660156, - 297.95001220703125, - 317.09991455078125, - 316.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.29994201660156, - 297.95001220703125, - 317.09991455078125, - 316.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ ×gÙ�×QÞcçr׳Ò\u001dæ=ÛZ×QÞ¢ÒrÑÖÑJò", - "origin": [ - 329.7999267578125, - 304.45001220703125 - ], - "bbox": [ - 329.7999267578125, - 297.95001220703125, - 418.1999206542969, - 316.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.7999267578125, - 297.95001220703125, - 418.1999206542969, - 316.8500061035156 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 71.2999267578125, - 318.2500305175781, - 86.8999252319336, - 345.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "�", - "origin": [ - 71.2999267578125, - 333.1500244140625 - ], - "bbox": [ - 71.2999267578125, - 318.2500305175781, - 71.2999267578125, - 343.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬Ã", - "origin": [ - 71.2999267578125, - 333.1500244140625 - ], - "bbox": [ - 71.2999267578125, - 326.6500244140625, - 77.99992370605469, - 345.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\n�", - "origin": [ - 77.99992370605469, - 333.1500244140625 - ], - "bbox": [ - 77.99992370605469, - 318.2500305175781, - 86.8999252319336, - 343.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.2999267578125, - 318.2500305175781, - 86.8999252319336, - 345.5500183105469 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 93.3999252319336, - 326.35003662109375, - 149.69992065429688, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÎB)uÆaË=38Æa>V5¾Î­3", - "origin": [ - 93.3999252319336, - 332.85003662109375 - ], - "bbox": [ - 93.3999252319336, - 326.35003662109375, - 149.69992065429688, - 345.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.3999252319336, - 326.35003662109375, - 149.69992065429688, - 345.2500305175781 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 161.0999298095703, - 326.35003662109375, - 190.09991455078125, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ")+:\"ÌBË=,gÏ", - "origin": [ - 161.0999298095703, - 332.85003662109375 - ], - "bbox": [ - 161.0999298095703, - 326.35003662109375, - 190.09991455078125, - 345.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.0999298095703, - 326.35003662109375, - 190.09991455078125, - 345.2500305175781 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 200.79994201660156, - 317.9500427246094, - 268.2999267578125, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ">©ÆT>W*4>V,g, )y*4Ì", - "origin": [ - 200.79994201660156, - 332.85003662109375 - ], - "bbox": [ - 200.79994201660156, - 326.35003662109375, - 257.1999206542969, - 345.2500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\f\u000b", - "origin": [ - 257.1999206542969, - 332.85003662109375 - ], - "bbox": [ - 257.1999206542969, - 317.9500427246094, - 268.2999267578125, - 342.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.79994201660156, - 317.9500427246094, - 268.2999267578125, - 345.2500305175781 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 282.2999267578125, - 326.35003662109375, - 287.6999206542969, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÏrÆ", - "origin": [ - 282.2999267578125, - 332.85003662109375 - ], - "bbox": [ - 282.2999267578125, - 326.35003662109375, - 287.6999206542969, - 345.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.2999267578125, - 326.35003662109375, - 287.6999206542969, - 345.2500305175781 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 299.6999206542969, - 317.9500427246094, - 381.4999084472656, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ")uÆaË=36*4, 誮 5¾)", - "origin": [ - 299.6999206542969, - 332.85003662109375 - ], - "bbox": [ - 299.6999206542969, - 326.35003662109375, - 359.59991455078125, - 345.2500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u000e\r", - "origin": [ - 359.59991455078125, - 332.85003662109375 - ], - "bbox": [ - 359.59991455078125, - 317.9500427246094, - 365.1999206542969, - 342.85003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0012Ï?)", - "origin": [ - 365.1999206542969, - 332.85003662109375 - ], - "bbox": [ - 365.1999206542969, - 326.35003662109375, - 381.4999084472656, - 345.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 299.6999206542969, - 317.9500427246094, - 381.4999084472656, - 345.2500305175781 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 394.59991455078125, - 326.35003662109375, - 399.4999084472656, - 345.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",g>", - "origin": [ - 394.59991455078125, - 332.85003662109375 - ], - "bbox": [ - 394.59991455078125, - 326.35003662109375, - 399.4999084472656, - 345.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 394.59991455078125, - 326.35003662109375, - 399.4999084472656, - 345.2500305175781 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 71.19992065429688, - 339.050048828125, - 519.8999633789062, - 357.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢×QÞc×^à\u001b×^å8Þc×gÓc×gتۭÒ%ÓGÔÖÙ�å+Ñw×", - "origin": [ - 71.19992065429688, - 345.550048828125 - ], - "bbox": [ - 71.19992065429688, - 339.050048828125, - 183.39993286132812, - 357.9500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 183.39993286132812, - 345.550048828125 - ], - "bbox": [ - 183.39993286132812, - 339.050048828125, - 188.0999298095703, - 356.9500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "sÙ ÔÖØ8èu×gè&Ò\u001dÞcç?â8Ù�×gة۽ÔÖØ+è8ÔÖÕQÒ\u001dÛcÔÖØuç\u0016ÛcÜ8Ò\u001dÛ­ÛcÜ8×»è8ÔÖÓcÕ/ÞG×QÛZ×gØu×gÓcÓ¡Ýræ°ÓZå+ÒrÕ/×QÛcÔlÙ�×»Ù¥ÒTß&ڐ×", - "origin": [ - 188.0999298095703, - 345.550048828125 - ], - "bbox": [ - 188.0999298095703, - 339.050048828125, - 519.8999633789062, - 357.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 339.050048828125, - 519.8999633789062, - 357.9500427246094 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 71.09992218017578, - 352.050048828125, - 518.5999145507812, - 370.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÑÖ×Qã\u0018Òrةۓæ™ÝrÞ%ÛcÜ8×�×gÙ�×QÞcçr×gØ8Õ/×�Ýræ\u0010ä©â+ÒrتÛcâ8Ù", - "origin": [ - 71.09992218017578, - 358.550048828125 - ], - "bbox": [ - 71.09992218017578, - 352.050048828125, - 248.89993286132812, - 370.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09992218017578, - 352.050048828125, - 248.89993286132812, - 370.9500427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÒrÑ¡å+Üu×gØuÝ?Ù¥×gØ8ÒWé°ÛcâuÞGØ8ÔlØuçœÛcÜ8×\u0014á-ÔwÝ?âuãWÔÖÑÖÑw×\u0019×gä©â+Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 262.09991455078125, - 358.550048828125 - ], - "bbox": [ - 262.09991455078125, - 352.050048828125, - 518.5999145507812, - 370.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.09991455078125, - 352.050048828125, - 518.5999145507812, - 370.9500427246094 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 71.19990539550781, - 364.9500427246094, - 341.4999084472656, - 383.85003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ÛZÝ�ÛcÜu×;ãrÝ?Ø¢ó»×gâ8Ù ÒrØ8Ø", - "origin": [ - 71.19990539550781, - 371.4500427246094 - ], - "bbox": [ - 71.19990539550781, - 364.9500427246094, - 170.5998992919922, - 383.85003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "U�", - "origin": [ - 170.5998992919922, - 371.4500427246094 - ], - "bbox": [ - 170.5998992919922, - 364.9500427246094, - 180.0998992919922, - 382.85003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½á4ÔlØ8èuÚ+ÑÖÒrèœ×gäVâ8Ò\u001dÛcÔwÝ?ذé+ÔlØ\rå+Ò\u001dÞcÛcÔÖÕQâ8ÑlÒ\u001dÞgò", - "origin": [ - 180.0998992919922, - 371.4500427246094 - ], - "bbox": [ - 180.0998992919922, - 364.9500427246094, - 341.4999084472656, - 383.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19990539550781, - 364.9500427246094, - 341.4999084472656, - 383.85003662109375 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 85.59990692138672, - 371.550048828125, - 482.3998718261719, - 406.2500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "E", - "origin": [ - 85.59990692138672, - 384.4500427246094 - ], - "bbox": [ - 85.59990692138672, - 371.550048828125, - 85.59990692138672, - 406.2500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“Ôwãr×gØ\u001eÛcÜ8Ò\u001dۗÓZå+ÒrÕ/×QÛcÔÖÙ¥×", - "origin": [ - 85.59990692138672, - 384.4500427246094 - ], - "bbox": [ - 85.59990692138672, - 377.9500427246094, - 185.39993286132812, - 396.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.59990692138672, - 371.550048828125, - 185.39993286132812, - 406.2500305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ\u001fè8ÔÖÓGÕ/Þc×QÛZ×ré^ÛcÜu×QÞc×\u000fÙ&â8ÓZÛ Ú×\u000fÒ¾Õ1Ü8Ò\u001dÞGÒrÕ/ÛZ×QÞGÔlÓZÛcÔÖÕ", - "origin": [ - 195.39990234375, - 384.4500427246094 - ], - "bbox": [ - 195.39990234375, - 377.9500427246094, - 396.2998962402344, - 396.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.39990234375, - 377.9500427246094, - 396.2998962402344, - 396.85003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gØuçrÛcÜ", - "origin": [ - 406.2999267578125, - 384.4500427246094 - ], - "bbox": [ - 406.2999267578125, - 377.9500427246094, - 429.89990234375, - 396.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 406.2999267578125, - 377.9500427246094, - 429.89990234375, - 396.85003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÕQÒrÑw×ré^ÛcÜ8×", - "origin": [ - 441.1999206542969, - 384.4500427246094 - ], - "bbox": [ - 441.1999206542969, - 377.9500427246094, - 482.3998718261719, - 396.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 441.1999206542969, - 377.9500427246094, - 482.3998718261719, - 396.85003662109375 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 499.8999328613281, - 377.4500427246094, - 518.7999267578125, - 396.85003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 499.8999328613281, - 384.4500427246094 - ], - "bbox": [ - 499.8999328613281, - 377.9500427246094, - 514.4999389648438, - 396.85003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 514.4999389648438, - 384.4500427246094 - ], - "bbox": [ - 514.4999389648438, - 377.4500427246094, - 518.7999267578125, - 395.85003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 499.8999328613281, - 377.4500427246094, - 518.7999267578125, - 396.85003662109375 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 71.19992065429688, - 390.2500305175781, - 414.39990234375, - 409.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gØ8çrÛcܰé8à»Üu×QÞG׳ÛcÜu×&Õ/Ý?تÛcÔÖØVâ8â8Ù", - "origin": [ - 71.19992065429688, - 397.2500305175781 - ], - "bbox": [ - 71.19992065429688, - 390.7500305175781, - 199.69996643066406, - 409.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 390.7500305175781, - 199.69996643066406, - 409.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gÓcÕ/ÞGÔÖå8ÛcÔwÝ?Ø\rÝræ­ÒrÑÖÑ4å+Üu×gØuÝ?Ù�×gØ+Ò�Ú8Þc×gÒ", - "origin": [ - 212.5999298095703, - 397.2500305175781 - ], - "bbox": [ - 212.5999298095703, - 390.7500305175781, - 369.39990234375, - 409.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 369.39990234375, - 397.2500305175781 - ], - "bbox": [ - 369.39990234375, - 390.2500305175781, - 374.69989013671875, - 408.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÓ¢è8ÝTà»Ø°ò", - "origin": [ - 374.69989013671875, - 397.2500305175781 - ], - "bbox": [ - 374.69989013671875, - 390.7500305175781, - 414.39990234375, - 409.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 212.5999298095703, - 390.2500305175781, - 414.39990234375, - 409.6500244140625 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 430.0999450683594, - 390.7500305175781, - 519.7999877929688, - 409.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÓ^ÔÖÙ�åyÑÖÔw×gÓ\u0010ÛcÜ8Ò\u001dÛ\u0016Ý?Øu×", - "origin": [ - 430.0999450683594, - 397.2500305175781 - ], - "bbox": [ - 430.0999450683594, - 390.7500305175781, - 519.7999877929688, - 409.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.0999450683594, - 390.7500305175781, - 519.7999877929688, - 409.6500244140625 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 71.199951171875, - 403.2500305175781, - 520.5, - 422.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥ÔÖç?ܪÛNÝaãr×QÞGÑwÝVÝ", - "origin": [ - 71.199951171875, - 410.2500305175781 - ], - "bbox": [ - 71.199951171875, - 403.7500305175781, - 130.79995727539062, - 422.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 403.7500305175781, - 130.79995727539062, - 422.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 136.199951171875, - 410.2500305175781 - ], - "bbox": [ - 136.199951171875, - 403.2500305175781, - 136.199951171875, - 421.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÔlÙ�åÝrÞcÛcÒrتÛNÛZÞ1ÒrÕ/×gÓ^Ýræ·ÛcÜ8ÔÖÓNÒ\u001dÛZÝ?Ù¥ÔlÓZÛcÔÖÕ%ÓZÛZÞ1â8Õ/ÛcâuÞcדÚVß\u001f×gÙ¥å+ÑwÝTßWÔÖØuç�Õ/Ý?Ø©ÛcÔÖØVâ8â8Ù", - "origin": [ - 136.199951171875, - 410.2500305175781 - ], - "bbox": [ - 136.199951171875, - 403.7500305175781, - 465.29998779296875, - 422.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.199951171875, - 403.2500305175781, - 465.29998779296875, - 422.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "äVâ8ÒrØ©ÛcÔwÛcÔw×gÓ", - "origin": [ - 477.9999694824219, - 410.2500305175781 - ], - "bbox": [ - 477.9999694824219, - 403.7500305175781, - 520.5, - 422.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 477.9999694824219, - 403.7500305175781, - 520.5, - 422.6500244140625 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 71.0999755859375, - 408.35003662109375, - 521.5999145507812, - 435.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü+ÔÖÕGÜ�ÒrÑÖÑÖÝTàŽÛZÝ!Ò\u001dÞcÚyÔwÛZÞGÒ\u001dÞGÔÖÑÖߖ×", - "origin": [ - 71.0999755859375, - 423.2500305175781 - ], - "bbox": [ - 71.0999755859375, - 416.7500305175781, - 198.69998168945312, - 435.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 198.69998168945312, - 423.2500305175781 - ], - "bbox": [ - 198.69998168945312, - 416.7500305175781, - 203.3999786376953, - 434.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÛZÞ1Ò\u001då6Ý?ÑlÒ\u001dÛZ×¥ÛcÜu×gÔwÞ;æ’â8Ø8Õ/ÛcÔwÝ?Ø+ÒrÑBè8×Qå6×gØ+èu×gØ8Õ/×�ÛZÝ!ÓcÕQÒrÑÖ×gÓ", - "origin": [ - 203.3999786376953, - 423.2500305175781 - ], - "bbox": [ - 203.3999786376953, - 416.7500305175781, - 430.8999328613281, - 435.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0010\u000f\u0012\u0011\u0013\u000f\u0015\u0014\u0017\u0016", - "origin": [ - 430.8999328613281, - 423.2500305175781 - ], - "bbox": [ - 430.8999328613281, - 408.35003662109375, - 469.0999450683594, - 433.2500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Jé4à»Üu×QÞG×", - "origin": [ - 469.0999450683594, - 423.2500305175781 - ], - "bbox": [ - 469.0999450683594, - 416.7500305175781, - 502.7999267578125, - 435.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\n\u000f\u0018\u0014\u0017\u0016", - "origin": [ - 502.7999267578125, - 423.2500305175781 - ], - "bbox": [ - 502.7999267578125, - 408.35003662109375, - 521.5999145507812, - 433.2500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 408.35003662109375, - 521.5999145507812, - 435.6500244140625 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 71.1999740600586, - 429.6500244140625, - 120.79998016357422, - 448.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gØ8ÝrÛZ×gÓNÛcÜu×", - "origin": [ - 71.1999740600586, - 436.1500244140625 - ], - "bbox": [ - 71.1999740600586, - 429.6500244140625, - 120.79998016357422, - 448.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.1999740600586, - 429.6500244140625, - 120.79998016357422, - 448.5500183105469 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 136.8999786376953, - 429.1500244140625, - 195.5999755859375, - 448.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 136.8999786376953, - 436.1500244140625 - ], - "bbox": [ - 136.8999786376953, - 429.6500244140625, - 151.49998474121094, - 448.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 151.49998474121094, - 436.1500244140625 - ], - "bbox": [ - 151.49998474121094, - 429.1500244140625, - 155.79998779296875, - 447.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÑw×gØuçrÛcܬò", - "origin": [ - 155.79998779296875, - 436.1500244140625 - ], - "bbox": [ - 155.79998779296875, - 429.6500244140625, - 195.5999755859375, - 448.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.8999786376953, - 429.1500244140625, - 195.5999755859375, - 448.5500183105469 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 85.29997253417969, - 436.2500305175781, - 442.39996337890625, - 470.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.29997253417969, - 449.1500244140625 - ], - "bbox": [ - 85.29997253417969, - 442.1500244140625, - 85.29997253417969, - 460.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø+ÓZÛZ×gÒrè%ÝræuÜ8ÒTãVÔÖØ8ç»Ò", - "origin": [ - 85.29997253417969, - 449.1500244140625 - ], - "bbox": [ - 85.29997253417969, - 442.6500244140625, - 168.19998168945312, - 461.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.29997253417969, - 442.1500244140625, - 168.19998168945312, - 461.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9\u000f\u0010#\u001c\u0013\u000e\u000f&\u0018\"", - "origin": [ - 176.89996337890625, - 449.1500244140625 - ], - "bbox": [ - 176.89996337890625, - 442.6500244140625, - 200.89996337890625, - 460.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 200.89996337890625, - 449.1500244140625 - ], - "bbox": [ - 200.89996337890625, - 436.2500305175781, - 205.59996032714844, - 470.95001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ">*%\u000e\u0011\u001c\u0013)7\u001e-\"$1Q4�\u0010%\u0014.\"\u0018\u001e\u001f\u0014 )>\u001c\u0013D", - "origin": [ - 205.59996032714844, - 449.1500244140625 - ], - "bbox": [ - 205.59996032714844, - 442.6500244140625, - 284.49993896484375, - 460.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 284.49993896484375, - 449.1500244140625 - ], - "bbox": [ - 284.49993896484375, - 436.2500305175781, - 289.699951171875, - 470.95001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥é\u0018æ=ÝrÞ4×", - "origin": [ - 289.699951171875, - 449.1500244140625 - ], - "bbox": [ - 289.699951171875, - 442.6500244140625, - 319.5999450683594, - 461.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 319.5999450683594, - 449.1500244140625 - ], - "bbox": [ - 319.5999450683594, - 442.6500244140625, - 324.2999572753906, - 460.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ�å+ÑÖ×réaÛcÜu×", - "origin": [ - 324.2999572753906, - 449.1500244140625 - ], - "bbox": [ - 324.2999572753906, - 442.6500244140625, - 374.7999572753906, - 461.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.89996337890625, - 436.2500305175781, - 374.7999572753906, - 470.95001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0014 \u000e\u000f\u001b\u001f\"", - "origin": [ - 382.89996337890625, - 449.1500244140625 - ], - "bbox": [ - 382.89996337890625, - 442.6500244140625, - 397.0999755859375, - 460.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.89996337890625, - 442.6500244140625, - 397.0999755859375, - 460.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "4�\u0010,\u0014.\"�\u001e\u001f\u0014 )>\u001c\u0013D", - "origin": [ - 403.89996337890625, - 449.1500244140625 - ], - "bbox": [ - 403.89996337890625, - 442.6500244140625, - 442.39996337890625, - 460.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 403.89996337890625, - 442.6500244140625, - 442.39996337890625, - 460.5500183105469 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 455.699951171875, - 442.6500244140625, - 519.7999877929688, - 461.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÜuÝ?â+ÑÖè;ڐ×gÕ/Ý?Ù�×", - "origin": [ - 455.699951171875, - 449.1500244140625 - ], - "bbox": [ - 455.699951171875, - 442.6500244140625, - 519.7999877929688, - 461.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.699951171875, - 442.6500244140625, - 519.7999877929688, - 461.5500183105469 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 71.09994506835938, - 455.5500183105469, - 515.699951171875, - 474.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+ÔÖ×gÕ/×Qà»ÔÖÓZ×�èu×", - "origin": [ - 71.09994506835938, - 462.0500183105469 - ], - "bbox": [ - 71.09994506835938, - 455.5500183105469, - 126.29994201660156, - 474.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\n", - "origin": [ - 126.29994201660156, - 462.0500183105469 - ], - "bbox": [ - 126.29994201660156, - 455.5500183105469, - 131.09994506835938, - 473.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø8×gè", - "origin": [ - 131.09994506835938, - 462.0500183105469 - ], - "bbox": [ - 131.09994506835938, - 455.5500183105469, - 148.29994201660156, - 474.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 455.5500183105469, - 148.29994201660156, - 474.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÝ?Ù�×gÜuÝaà%é;à»Üu×gØ", - "origin": [ - 159.699951171875, - 462.0500183105469 - ], - "bbox": [ - 159.699951171875, - 455.5500183105469, - 230.19993591308594, - 474.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 159.699951171875, - 455.5500183105469, - 230.19993591308594, - 474.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001då+å8ÞcÝ?ÒrÕGÜ+ÔÖØuçÁÓcÙ¥ÒrÑlÑw×QޖÒrØ8è", - "origin": [ - 241.699951171875, - 462.0500183105469 - ], - "bbox": [ - 241.699951171875, - 455.5500183105469, - 356.0999450683594, - 474.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.699951171875, - 455.5500183105469, - 356.0999450683594, - 474.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÙ ÒrÑÖÑw×QޗÓcÕQÒrÑw×gÓµÔÖØ", - "origin": [ - 367.5999450683594, - 462.0500183105469 - ], - "bbox": [ - 367.5999450683594, - 455.5500183105469, - 442.39990234375, - 474.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.5999450683594, - 455.5500183105469, - 442.39990234375, - 474.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×7Õ/Ý?Ø©ÛcÔÖØVâ8â8Ù", - "origin": [ - 453.699951171875, - 462.0500183105469 - ], - "bbox": [ - 453.699951171875, - 455.5500183105469, - 515.699951171875, - 474.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.699951171875, - 455.5500183105469, - 515.699951171875, - 474.45001220703125 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 71.09994506835938, - 468.5500183105469, - 105.19994354248047, - 487.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+ÔlÕ/ÛcâuÞc×rò", - "origin": [ - 71.09994506835938, - 475.0500183105469 - ], - "bbox": [ - 71.09994506835938, - 468.5500183105469, - 105.19994354248047, - 487.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 468.5500183105469, - 105.19994354248047, - 487.45001220703125 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 120.19994354248047, - 468.5500183105469, - 316.39996337890625, - 487.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü©â+ÓQé?ÛcÜu×^æ’â8Ø8Õ/ÛcÔÖÝ?Ø", - "origin": [ - 120.19994354248047, - 475.0500183105469 - ], - "bbox": [ - 120.19994354248047, - 468.5500183105469, - 193.89996337890625, - 487.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 120.19994354248047, - 468.5500183105469, - 193.89996337890625, - 487.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ­Òr؜Ò\u001då8å8ÞcÝ", - "origin": [ - 214.9999542236328, - 475.0500183105469 - ], - "bbox": [ - 214.9999542236328, - 468.5500183105469, - 261.89996337890625, - 487.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.9999542236328, - 468.5500183105469, - 261.89996337890625, - 487.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 266.89996337890625, - 475.0500183105469 - ], - "bbox": [ - 266.89996337890625, - 468.5500183105469, - 266.89996337890625, - 486.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔÖÙ Ò\u001dÛcÔwÝ?Ø�ÛZÝ", - "origin": [ - 266.89996337890625, - 475.0500183105469 - ], - "bbox": [ - 266.89996337890625, - 468.5500183105469, - 316.39996337890625, - 487.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.89996337890625, - 468.5500183105469, - 316.39996337890625, - 487.45001220703125 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 333.9999694824219, - 468.0500183105469, - 520.39990234375, - 487.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è¥ÛcÜu×¢è8Ô", - "origin": [ - 333.9999694824219, - 475.0500183105469 - ], - "bbox": [ - 333.9999694824219, - 468.5500183105469, - 379.0999755859375, - 487.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c�", - "origin": [ - 379.0999755859375, - 475.0500183105469 - ], - "bbox": [ - 379.0999755859375, - 468.0500183105469, - 382.0999755859375, - 486.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6×QÞc×gØ+Õ/×NÚ6×QÛ¯à\"×Q×g؜ÛcÜu×¢Ûsà\u001bÝ\u0019Ù&â8ÓZÛ", - "origin": [ - 382.0999755859375, - 475.0500183105469 - ], - "bbox": [ - 382.0999755859375, - 468.5500183105469, - 520.39990234375, - 487.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.9999694824219, - 468.0500183105469, - 520.39990234375, - 487.45001220703125 - ] - } - ] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 71.0999755859375, - 473.1500244140625, - 226.3999786376953, - 509.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ç?Ôwãr×;Þ1ÔÖÓZ×;ÛZÝ ÑwÝWÕQÒrÑ", - "origin": [ - 71.0999755859375, - 488.0500183105469 - ], - "bbox": [ - 71.0999755859375, - 481.5500183105469, - 146.09996032714844, - 500.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001a\u0019", - "origin": [ - 146.09996032714844, - 488.0500183105469 - ], - "bbox": [ - 146.09996032714844, - 473.1500244140625, - 152.09996032714844, - 498.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 473.1500244140625, - 152.09996032714844, - 500.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001b\u001d9#\u0014 \u001b\u001d\u001c%\u0014 )>\u0010\u0013\u001eb&", - "origin": [ - 159.69998168945312, - 488.0500183105469 - ], - "bbox": [ - 159.69998168945312, - 481.5500183105469, - 204.09999084472656, - 499.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c\u001b", - "origin": [ - 204.09999084472656, - 488.0500183105469 - ], - "bbox": [ - 204.09999084472656, - 473.1500244140625, - 211.99998474121094, - 498.0500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 211.99998474121094, - 488.0500183105469 - ], - "bbox": [ - 211.99998474121094, - 475.1500244140625, - 217.19998168945312, - 509.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ò", - "origin": [ - 217.19998168945312, - 488.0500183105469 - ], - "bbox": [ - 217.19998168945312, - 481.5500183105469, - 226.3999786376953, - 500.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 159.69998168945312, - 473.1500244140625, - 226.3999786376953, - 509.8500061035156 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 241.69998168945312, - 481.5500183105469, - 316.1999206542969, - 500.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8×QÞc×Qæ™ÝrÞG×réuà\"׳Óc×QÛ", - "origin": [ - 241.69998168945312, - 488.0500183105469 - ], - "bbox": [ - 241.69998168945312, - 481.5500183105469, - 311.3999328613281, - 500.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017", - "origin": [ - 311.3999328613281, - 488.0500183105469 - ], - "bbox": [ - 311.3999328613281, - 481.5500183105469, - 316.1999206542969, - 499.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.69998168945312, - 481.5500183105469, - 316.1999206542969, - 500.45001220703125 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 248.8999786376953, - 496.95001220703125, - 252.2999725341797, - 523.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 248.8999786376953, - 511.8500061035156 - ], - "bbox": [ - 248.8999786376953, - 504.8500061035156, - 248.8999786376953, - 523.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 248.8999786376953, - 511.8500061035156 - ], - "bbox": [ - 248.8999786376953, - 496.95001220703125, - 252.2999725341797, - 521.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.8999786376953, - 496.95001220703125, - 252.2999725341797, - 523.25 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 259.1999816894531, - 505.3499755859375, - 266.4999694824219, - 523.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012\u000b6", - "origin": [ - 259.1999816894531, - 512.3499755859375 - ], - "bbox": [ - 259.1999816894531, - 505.3499755859375, - 266.4999694824219, - 523.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 259.1999816894531, - 505.3499755859375, - 266.4999694824219, - 523.75 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 287.29998779296875, - 496.95001220703125, - 290.6999816894531, - 523.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 287.29998779296875, - 511.8500061035156 - ], - "bbox": [ - 287.29998779296875, - 504.8500061035156, - 287.29998779296875, - 523.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 287.29998779296875, - 511.8500061035156 - ], - "bbox": [ - 287.29998779296875, - 496.95001220703125, - 290.6999816894531, - 521.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 287.29998779296875, - 496.95001220703125, - 290.6999816894531, - 523.25 - ] - } - ] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 315.1999816894531, - 497.4499816894531, - 320.3999938964844, - 534.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 315.1999816894531, - 512.3499755859375 - ], - "bbox": [ - 315.1999816894531, - 497.4499816894531, - 315.1999816894531, - 522.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 315.1999816894531, - 512.3499755859375 - ], - "bbox": [ - 315.1999816894531, - 499.4499816894531, - 320.3999938964844, - 534.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.1999816894531, - 497.4499816894531, - 320.3999938964844, - 534.1499633789062 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 329.79998779296875, - 496.95001220703125, - 333.1999816894531, - 523.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 329.79998779296875, - 511.8500061035156 - ], - "bbox": [ - 329.79998779296875, - 504.8500061035156, - 329.79998779296875, - 523.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 329.79998779296875, - 511.8500061035156 - ], - "bbox": [ - 329.79998779296875, - 496.95001220703125, - 333.1999816894531, - 521.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.79998779296875, - 496.95001220703125, - 333.1999816894531, - 523.25 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 515.0999755859375, - 505.3499755859375, - 520.5999755859375, - 524.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "û", - "origin": [ - 515.0999755859375, - 512.3499755859375 - ], - "bbox": [ - 515.0999755859375, - 505.8499755859375, - 515.0999755859375, - 524.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0999755859375, - 512.3499755859375 - ], - "bbox": [ - 515.0999755859375, - 505.3499755859375, - 520.5999755859375, - 523.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.0999755859375, - 505.3499755859375, - 520.5999755859375, - 524.75 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 71.19998168945312, - 530.3499755859375, - 449.0999755859375, - 549.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ\rÝrÞ1èu×QÞNÛZÝ Þc×gÑlÒ\u001dÛZ×;ÛcÜu׳ÓcÜuÝrÞGÛ^è8ÔÖÓZÛcÒrØ8Õ/×;ڐ×gÜ8ÒTãVÔÖÝ?âuÞNÛZÝ ÔwÛcÓ^Õ/Ý?Ò\u001dÞ1ÓZ×", - "origin": [ - 71.19998168945312, - 536.8499755859375 - ], - "bbox": [ - 71.19998168945312, - 530.3499755859375, - 348.6999816894531, - 549.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 348.6999816894531, - 536.8499755859375 - ], - "bbox": [ - 348.6999816894531, - 530.3499755859375, - 353.3999938964844, - 548.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞGÒrÔÖØu×gèµèu×gÓcÕ/ÞGÔÖå8ÛcÔwÝ?ذò", - "origin": [ - 353.3999938964844, - 536.8499755859375 - ], - "bbox": [ - 353.3999938964844, - 530.3499755859375, - 449.0999755859375, - 549.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 530.3499755859375, - 449.0999755859375, - 549.25 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 93.19998168945312, - 536.75, - 300.699951171875, - 571.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u001bÝÍÓZÝ?â8ÞGÕ/×gÓ\u000fÝræ", - "origin": [ - 93.19998168945312, - 549.6500244140625 - ], - "bbox": [ - 93.19998168945312, - 543.1500244140625, - 157.2999725341797, - 562.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "7\u001f", - "origin": [ - 157.2999725341797, - 549.6500244140625 - ], - "bbox": [ - 157.2999725341797, - 536.75, - 166.49996948242188, - 571.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â+Õ/Ûcâ8Ò\u001dÛcÔwÝ?Ø8Ó", - "origin": [ - 166.49996948242188, - 549.6500244140625 - ], - "bbox": [ - 166.49996948242188, - 543.1500244140625, - 218.19998168945312, - 562.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.19998168945312, - 536.75, - 218.19998168945312, - 571.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÒrØ", - "origin": [ - 228.19998168945312, - 549.6500244140625 - ], - "bbox": [ - 228.19998168945312, - 543.1500244140625, - 238.3999786376953, - 562.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.19998168945312, - 543.1500244140625, - 238.3999786376953, - 562.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gتÛZ×QÞ", - "origin": [ - 250.29998779296875, - 549.6500244140625 - ], - "bbox": [ - 250.29998779296875, - 543.1500244140625, - 269.79998779296875, - 562.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 250.29998779296875, - 543.1500244140625, - 269.79998779296875, - 562.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8×QÞc×", - "origin": [ - 280.0999755859375, - 549.6500244140625 - ], - "bbox": [ - 280.0999755859375, - 543.1500244140625, - 295.2999572753906, - 562.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%\u0017", - "origin": [ - 295.2999572753906, - 549.6500244140625 - ], - "bbox": [ - 295.2999572753906, - 543.1500244140625, - 300.699951171875, - 561.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.0999755859375, - 543.1500244140625, - 300.699951171875, - 562.050048828125 - ] - } - ] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 319.4999694824219, - 543.1500244140625, - 522.1998901367188, - 562.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÞGÓcÛQé\u0019ÛcÜu×\u0012ÓZåyÒ\u001dÛcÔwÝrÛZ×gÙ�åÝrÞGÒrÑ\u0014è8ÔÖÓcÕ/ÞG×QÛZ×gØu×gÓcÓ\u000bížïr÷\u001dñJò", - "origin": [ - 319.4999694824219, - 549.6500244140625 - ], - "bbox": [ - 319.4999694824219, - 543.1500244140625, - 522.1998901367188, - 562.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 319.4999694824219, - 543.1500244140625, - 522.1998901367188, - 562.050048828125 - ] - } - ] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 71.39996337890625, - 556.1500244140625, - 375.3999938964844, - 575.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëV×gÕ/Ý?Ø+è°é\u0010ÛcÜu×!åÝ?ÓcÓcÔÖÚ+Ñwß¾è+ÔÖÓcÕ/Þc×QÛZ×", - "origin": [ - 71.39996337890625, - 562.6500244140625 - ], - "bbox": [ - 71.39996337890625, - 556.1500244140625, - 207.8999786376953, - 575.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.39996337890625, - 556.1500244140625, - 207.8999786376953, - 575.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ø8Ò\u001dÛcâuÞcזÝræ%ÔlتÛZ×QÞGÒrÕ/ÛcÔÖÝ?Ø8Ó ÝrÞ\rÙ¥Ò\u001dÛZÛZ×QÞgò", - "origin": [ - 217.89996337890625, - 562.6500244140625 - ], - "bbox": [ - 217.89996337890625, - 556.1500244140625, - 375.3999938964844, - 575.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 217.89996337890625, - 556.1500244140625, - 375.3999938964844, - 575.050048828125 - ] - } - ] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 394.9999694824219, - 556.1500244140625, - 518.699951171875, - 575.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×!ÑÖÒ\u001dÛZÛZ×QÞ\rÙ¥Ôwç?Ü©Û çrÝ", - "origin": [ - 394.9999694824219, - 562.6500244140625 - ], - "bbox": [ - 394.9999694824219, - 556.1500244140625, - 479.79998779296875, - 575.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 394.9999694824219, - 556.1500244140625, - 479.79998779296875, - 575.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×QßrÝ?Ø8è", - "origin": [ - 490.39996337890625, - 562.6500244140625 - ], - "bbox": [ - 490.39996337890625, - 556.1500244140625, - 518.699951171875, - 575.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 490.39996337890625, - 556.1500244140625, - 518.699951171875, - 575.050048828125 - ] - } - ] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 71.09994506835938, - 569.1500244140625, - 329.5999450683594, - 588.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü+Ò\u001dÛ³ÔÖÓ%â8ÓGâ8ÒrÑÖÑwß", - "origin": [ - 71.09994506835938, - 575.6500244140625 - ], - "bbox": [ - 71.09994506835938, - 569.1500244140625, - 138.8999481201172, - 588.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 569.1500244140625, - 138.8999481201172, - 588.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZ×Q×gØ7ÒrÓ", - "origin": [ - 148.8999481201172, - 575.6500244140625 - ], - "bbox": [ - 148.8999481201172, - 569.1500244140625, - 178.5999298095703, - 588.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u000b\" @B\"39#\u00147&", - "origin": [ - 178.5999298095703, - 575.6500244140625 - ], - "bbox": [ - 178.5999298095703, - 569.1500244140625, - 212.59991455078125, - 587.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“ÝræNä©â8ÒrØ©Ûcâ8Ù", - "origin": [ - 212.59991455078125, - 575.6500244140625 - ], - "bbox": [ - 212.59991455078125, - 569.1500244140625, - 267.39990234375, - 588.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 148.8999481201172, - 569.1500244140625, - 267.39990234375, - 588.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù�×gÕGÜ8ÒrØ+ÔÖÕQÓQò", - "origin": [ - 280.89996337890625, - 575.6500244140625 - ], - "bbox": [ - 280.89996337890625, - 569.1500244140625, - 329.5999450683594, - 588.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.89996337890625, - 569.1500244140625, - 329.5999450683594, - 588.050048828125 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 346.9999694824219, - 569.1500244140625, - 521.7999877929688, - 588.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ%Ü+ÒrÓ³ØuÝrÛ%ڐ×Q×gØ7×", - "origin": [ - 346.9999694824219, - 575.6500244140625 - ], - "bbox": [ - 346.9999694824219, - 569.1500244140625, - 431.39996337890625, - 588.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 431.39996337890625, - 575.6500244140625 - ], - "bbox": [ - 431.39996337890625, - 569.1500244140625, - 436.0999755859375, - 587.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå+ÑÖÝrÞc×gè", - "origin": [ - 436.0999755859375, - 575.6500244140625 - ], - "bbox": [ - 436.0999755859375, - 569.1500244140625, - 465.7999572753906, - 588.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.9999694824219, - 569.1500244140625, - 465.7999572753906, - 588.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ�åyÒ\u001dÞGÒrÑÖÑw×gÑ", - "origin": [ - 476.0999755859375, - 575.6500244140625 - ], - "bbox": [ - 476.0999755859375, - 569.1500244140625, - 521.7999877929688, - 588.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 476.0999755859375, - 569.1500244140625, - 521.7999877929688, - 588.050048828125 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 71.0999755859375, - 582.050048828125, - 518.7999877929688, - 600.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcܗÛcÜu×\u0019ÕQÒrâ+ÓcÒrÑ-Óc×QÛ¢ÛcÜu×QÝrÞGߗÝræ¡ÛcÜu×\u0019èu×Q×Qå\u000fÓZÛZÞGâ+Õ/ÛcâuÞc×%Ýræ­ÓZåyÒrÕ/×QÛcÔÖÙ�×\u0019ÒrØ+è!à»ÔlÑÖѰØuÝrۻڐ×%æ’âuÞcÛcÜ8×QÞ¢è8ÔÖÓGÕQâ8ÓcÓZ×gè", - "origin": [ - 71.0999755859375, - 588.550048828125 - ], - "bbox": [ - 71.0999755859375, - 582.050048828125, - 518.7999877929688, - 600.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 582.050048828125, - 518.7999877929688, - 600.9500732421875 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 71.1999740600586, - 595.050048828125, - 119.39997863769531, - 613.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÛ^å+Þc×gÓZ×gØ©ÛQò", - "origin": [ - 71.1999740600586, - 601.550048828125 - ], - "bbox": [ - 71.1999740600586, - 595.050048828125, - 119.39997863769531, - 613.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.1999740600586, - 595.050048828125, - 119.39997863769531, - 613.9500732421875 - ] - } - ] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 77.39997100830078, - 614.8499755859375, - 499.1999206542969, - 641.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "K", - "origin": [ - 77.39997100830078, - 629.75 - ], - "bbox": [ - 77.39997100830078, - 623.25, - 77.39997100830078, - 641.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e ", - "origin": [ - 77.39997100830078, - 629.75 - ], - "bbox": [ - 77.39997100830078, - 614.8499755859375, - 80.79997253417969, - 639.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ",K", - "origin": [ - 80.79997253417969, - 629.75 - ], - "bbox": [ - 80.79997253417969, - 623.25, - 86.29997253417969, - 641.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "�!#\"", - "origin": [ - 86.29997253417969, - 629.75 - ], - "bbox": [ - 86.29997253417969, - 614.8499755859375, - 99.89997100830078, - 639.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.39997100830078, - 614.8499755859375, - 99.89997100830078, - 641.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&'F", - "origin": [ - 108.1999740600586, - 629.75 - ], - "bbox": [ - 108.1999740600586, - 623.25, - 112.79997253417969, - 641.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.1999740600586, - 623.25, - 112.79997253417969, - 641.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "4-\u0014\u0016\u0010,\u0014 ) 9\u0015\f'\u000e$\"3\"$1=\u0010\u0013\u0012", - "origin": [ - 126.0999755859375, - 629.75 - ], - "bbox": [ - 126.0999755859375, - 623.25, - 184.8999786376953, - 641.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "%$", - "origin": [ - 184.8999786376953, - 629.75 - ], - "bbox": [ - 184.8999786376953, - 614.8499755859375, - 194.8999786376953, - 639.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "c\u0010\u0013\u001ea93\u001c\u0013\u001bX&\u0018\u001c\u0013D", - "origin": [ - 194.8999786376953, - 629.75 - ], - "bbox": [ - 194.8999786376953, - 623.25, - 244.89999389648438, - 641.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.0999755859375, - 614.8499755859375, - 244.89999389648438, - 641.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&#\"\u0018\u00147&3]", - "origin": [ - 251.5999755859375, - 629.75 - ], - "bbox": [ - 251.5999755859375, - 623.25, - 269.0999450683594, - 641.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.5999755859375, - 623.25, - 269.0999450683594, - 641.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "48)>\"39\u000f\"\u0018:`)P&#\"", - "origin": [ - 275.79998779296875, - 629.75 - ], - "bbox": [ - 275.79998779296875, - 623.25, - 314.6999816894531, - 641.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.79998779296875, - 623.25, - 314.6999816894531, - 641.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")7\u001e-\"$\u001c%\u000eQ4�\u0010%\u0014.\"\u0018\u001e\u001f\u0014 )>\u001c\u0013D5&\\\\u001c\u0013\u001e81\u000b\"�\u0012(\"\u0018\u000e *X\"�\u001e89'\"O\u0010A\fN\u00147;�\"", - "origin": [ - 326.1000061035156, - 629.75 - ], - "bbox": [ - 326.1000061035156, - 623.25, - 499.1999206542969, - 641.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.1000061035156, - 623.25, - 499.1999206542969, - 641.1500244140625 - ] - } - ] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 71.69999694824219, - 629.75, - 173.1999969482422, - 664.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "6\u0013\u0010\u0013\u001e", - "origin": [ - 71.69999694824219, - 642.6500244140625 - ], - "bbox": [ - 71.69999694824219, - 636.1500244140625, - 82.30000305175781, - 654.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "GJ", - "origin": [ - 82.30000305175781, - 642.6500244140625 - ], - "bbox": [ - 82.30000305175781, - 629.75, - 89.9000015258789, - 664.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "c\"�\u001b�\u0012^\u001c\u0013\u001e\u001d\u001eW\"$S#\u001bb\u001c,\u0014 ) \u0010\u0013\u001e", - "origin": [ - 89.9000015258789, - 642.6500244140625 - ], - "bbox": [ - 89.9000015258789, - 636.1500244140625, - 173.1999969482422, - 654.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69999694824219, - 629.75, - 173.1999969482422, - 664.4500122070312 - ] - } - ] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 71.19999694824219, - 648.6500244140625, - 521.7000122070312, - 668.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢ÝTà\u001b×Qãr×QÞgéÁÛcÜu×QÞG×", - "origin": [ - 71.19999694824219, - 655.6500244140625 - ], - "bbox": [ - 71.19999694824219, - 649.1500244140625, - 142.20001220703125, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 649.1500244140625, - 142.20001220703125, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖӟÒrØ", - "origin": [ - 154.39999389648438, - 655.6500244140625 - ], - "bbox": [ - 154.39999389648438, - 649.1500244140625, - 174.5, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.39999389648438, - 649.1500244140625, - 174.5, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÙ�åÝrÞcÛcÒrØ©Û", - "origin": [ - 188.0, - 655.6500244140625 - ], - "bbox": [ - 188.0, - 649.1500244140625, - 231.6999969482422, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.0, - 649.1500244140625, - 231.6999969482422, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 244.39999389648438, - 655.6500244140625 - ], - "bbox": [ - 244.39999389648438, - 648.6500244140625, - 244.39999389648438, - 667.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒrÓZßWÙ�å8ÛZÝrÛcÔÖÕ", - "origin": [ - 244.39999389648438, - 655.6500244140625 - ], - "bbox": [ - 244.39999389648438, - 649.1500244140625, - 296.1999816894531, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 244.39999389648438, - 648.6500244140625, - 296.1999816894531, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™Þc×Q×gè8Ý?Ù", - "origin": [ - 308.3999938964844, - 655.6500244140625 - ], - "bbox": [ - 308.3999938964844, - 649.1500244140625, - 337.2999572753906, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.3999938964844, - 649.1500244140625, - 337.2999572753906, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×", - "origin": [ - 359.1000061035156, - 655.6500244140625 - ], - "bbox": [ - 359.1000061035156, - 649.1500244140625, - 359.1000061035156, - 668.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 359.1000061035156, - 655.6500244140625 - ], - "bbox": [ - 359.1000061035156, - 648.6500244140625, - 363.8000183105469, - 667.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛQéÁÕQÒrâ8ÓZ×gè", - "origin": [ - 363.8000183105469, - 655.6500244140625 - ], - "bbox": [ - 363.8000183105469, - 649.1500244140625, - 421.0, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 359.1000061035156, - 648.6500244140625, - 421.0, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú©ß", - "origin": [ - 434.5, - 655.6500244140625 - ], - "bbox": [ - 434.5, - 649.1500244140625, - 440.20001220703125, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 434.5, - 649.1500244140625, - 440.20001220703125, - 668.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZåyÒ\u001dÛcÔwÝrÛZ×gÙ�åÝrÞGÒrÑ", - "origin": [ - 453.3999938964844, - 655.6500244140625 - ], - "bbox": [ - 453.3999938964844, - 649.1500244140625, - 521.7000122070312, - 668.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.3999938964844, - 649.1500244140625, - 521.7000122070312, - 668.050048828125 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 71.19998168945312, - 661.9500122070312, - 142.99998474121094, - 680.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8ÔlÓcÕ/Þc×QÛZ×gØu×gÓcÓ", - "origin": [ - 71.19998168945312, - 668.4500122070312 - ], - "bbox": [ - 71.19998168945312, - 661.9500122070312, - 122.89998626708984, - 680.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#\u0017", - "origin": [ - 122.89998626708984, - 668.4500122070312 - ], - "bbox": [ - 122.89998626708984, - 661.9500122070312, - 127.79998779296875, - 679.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "–Ý?Ø", - "origin": [ - 127.79998779296875, - 668.4500122070312 - ], - "bbox": [ - 127.79998779296875, - 661.9500122070312, - 142.99998474121094, - 680.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 661.9500122070312, - 142.99998474121094, - 680.8500366210938 - ] - } - ] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 168.5999755859375, - 661.4500122070312, - 520.199951171875, - 680.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú+ÒrÕ", - "origin": [ - 168.5999755859375, - 668.4500122070312 - ], - "bbox": [ - 168.5999755859375, - 661.9500122070312, - 180.19996643066406, - 680.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 180.19996643066406, - 668.4500122070312 - ], - "bbox": [ - 180.19996643066406, - 661.4500122070312, - 184.49996948242188, - 679.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VçrÞcÝ?â8Ø8è", - "origin": [ - 184.49996948242188, - 668.4500122070312 - ], - "bbox": [ - 184.49996948242188, - 661.9500122070312, - 217.69998168945312, - 680.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.5999755859375, - 661.4500122070312, - 217.69998168945312, - 680.8500366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 224.0999755859375, - 668.4500122070312 - ], - "bbox": [ - 224.0999755859375, - 661.4500122070312, - 224.0999755859375, - 679.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014ÕQÒrâ8ÓcÒrÑ\u0016ÓZ×QÛQéNÕ/ÞcÝ?ÓcӜÓZ×gÕ/ÛcÔwÝ?Ø8Ó\u001fÙ\u0019â+ÓZÛ¥æ’ÒrÑÖÑNÛZÝ", - "origin": [ - 224.0999755859375, - 668.4500122070312 - ], - "bbox": [ - 224.0999755859375, - 661.9500122070312, - 411.1999816894531, - 680.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0016\u001b", - "origin": [ - 411.1999816894531, - 668.4500122070312 - ], - "bbox": [ - 411.1999816894531, - 661.4500122070312, - 421.4999694824219, - 679.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×QÞcݾà»Üu×gØ", - "origin": [ - 421.4999694824219, - 668.4500122070312 - ], - "bbox": [ - 421.4999694824219, - 661.9500122070312, - 464.7999267578125, - 680.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.0999755859375, - 661.4500122070312, - 464.7999267578125, - 680.8500366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×!Õ/×gØ©ÛZ×QÞ", - "origin": [ - 475.79998779296875, - 668.4500122070312 - ], - "bbox": [ - 475.79998779296875, - 661.9500122070312, - 520.199951171875, - 680.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 475.79998779296875, - 661.9500122070312, - 520.199951171875, - 680.8500366210938 - ] - } - ] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 71.0999755859375, - 674.9500122070312, - 330.59991455078125, - 693.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ;Ù¥ÒrÓcÓ¥×gØu×QÞcçrß\u000bÝræ“Ûsà\u001bݾÓcÕQÒ\u001dÛZÛZ×QÞGÔlØuç7å+Ò\u001dÞGÛcÔÖÕQÑw×gÓ�Þc×gÒrÕ1Üu×gÓ¥ÛcÜ8×", - "origin": [ - 71.0999755859375, - 681.4500122070312 - ], - "bbox": [ - 71.0999755859375, - 674.9500122070312, - 330.59991455078125, - 693.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 674.9500122070312, - 330.59991455078125, - 693.8500366210938 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 347.79998779296875, - 666.5499877929688, - 429.7999267578125, - 693.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ+Õ", - "origin": [ - 347.79998779296875, - 681.4500122070312 - ], - "bbox": [ - 347.79998779296875, - 674.9500122070312, - 362.5, - 693.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 362.5, - 681.4500122070312 - ], - "bbox": [ - 362.5, - 674.4500122070312, - 366.79998779296875, - 692.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0012ÓcÕQÒrÑw×¾ížïrø\u001dñJò", - "origin": [ - 366.79998779296875, - 681.4500122070312 - ], - "bbox": [ - 366.79998779296875, - 674.9500122070312, - 422.3999328613281, - 693.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "'&", - "origin": [ - 422.3999328613281, - 681.4500122070312 - ], - "bbox": [ - 422.3999328613281, - 666.5499877929688, - 429.7999267578125, - 691.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.79998779296875, - 666.5499877929688, - 429.7999267578125, - 693.8500366210938 - ] - } - ] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 451.0999755859375, - 674.9500122070312, - 518.5999755859375, - 693.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÓ�ÔÖÓ�Ú+ÒrÓc×gè\u0012Ý?Ø", - "origin": [ - 451.0999755859375, - 681.4500122070312 - ], - "bbox": [ - 451.0999755859375, - 674.9500122070312, - 518.5999755859375, - 693.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 451.0999755859375, - 674.9500122070312, - 518.5999755859375, - 693.8500366210938 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 80.19998168945312, - 698.25, - 87.29998016357422, - 717.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "j·H", - "origin": [ - 80.19998168945312, - 704.75 - ], - "bbox": [ - 80.19998168945312, - 698.25, - 87.29998016357422, - 717.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.19998168945312, - 698.25, - 87.29998016357422, - 717.1500244140625 - ] - } - ] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 96.29998779296875, - 689.8499755859375, - 188.59996032714844, - 717.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1O", - "origin": [ - 96.29998779296875, - 704.75 - ], - "bbox": [ - 96.29998779296875, - 698.25, - 100.79998779296875, - 717.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "*)", - "origin": [ - 100.79998779296875, - 704.75 - ], - "bbox": [ - 100.79998779296875, - 689.8499755859375, - 105.89998626708984, - 714.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001f<", - "origin": [ - 105.89998626708984, - 704.75 - ], - "bbox": [ - 105.89998626708984, - 697.75, - 114.69998931884766, - 716.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-EG ¸E1MPt", - "origin": [ - 114.69998931884766, - 704.75 - ], - "bbox": [ - 114.69998931884766, - 698.25, - 137.5, - 717.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ",+", - "origin": [ - 137.5, - 704.75 - ], - "bbox": [ - 137.5, - 689.8499755859375, - 144.1999969482422, - 714.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gR1F", - "origin": [ - 144.1999969482422, - 704.75 - ], - "bbox": [ - 144.1999969482422, - 698.25, - 153.59999084472656, - 717.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 153.59999084472656, - 704.75 - ], - "bbox": [ - 153.59999084472656, - 689.8499755859375, - 157.29998779296875, - 714.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO\u0014 ¸RGF\u0010H", - "origin": [ - 157.29998779296875, - 704.75 - ], - "bbox": [ - 157.29998779296875, - 698.25, - 188.59996032714844, - 717.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.29998779296875, - 689.8499755859375, - 188.59996032714844, - 717.1500244140625 - ] - } - ] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 197.49998474121094, - 698.25, - 356.7000732421875, - 717.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MN ¸R1tLtDRZ‘¬ALO\u0018d\u0019ALtDtL•aKNADO\u0018EGHJALO\u0018d%STMPXIY]FJALCaHJALR1O RG ¬H", - "origin": [ - 197.49998474121094, - 704.75 - ], - "bbox": [ - 197.49998474121094, - 698.25, - 356.7000732421875, - 717.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 197.49998474121094, - 698.25, - 356.7000732421875, - 717.1500244140625 - ] - } - ] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 365.6000061035156, - 698.25, - 434.5999755859375, - 717.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX&[™¶BR%j=OQHJM]FsEGY]HJALReO", - "origin": [ - 365.6000061035156, - 704.75 - ], - "bbox": [ - 365.6000061035156, - 698.25, - 434.5999755859375, - 717.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.6000061035156, - 698.25, - 434.5999755859375, - 717.1500244140625 - ] - } - ] - }, - { - "number": 114, - "type": 0, - "bbox": [ - 443.70001220703125, - 698.050048828125, - 450.20001220703125, - 716.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 443.70001220703125, - 704.550048828125 - ], - "bbox": [ - 443.70001220703125, - 698.050048828125, - 450.20001220703125, - 716.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 443.70001220703125, - 698.050048828125, - 450.20001220703125, - 716.9500732421875 - ] - } - ] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 455.4000244140625, - 689.8499755859375, - 521.2000122070312, - 717.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]R1FJMPKN_Tv", - "origin": [ - 455.4000244140625, - 704.75 - ], - "bbox": [ - 455.4000244140625, - 698.25, - 484.5000305175781, - 717.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "/.1032547698;:", - "origin": [ - 484.5000305175781, - 704.75 - ], - "bbox": [ - 484.5000305175781, - 689.8499755859375, - 521.2000122070312, - 714.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.4000244140625, - 689.8499755859375, - 521.2000122070312, - 717.1500244140625 - ] - } - ] - }, - { - "number": 116, - "type": 0, - "bbox": [ - 71.9000244140625, - 700.9500122070312, - 521.0999755859375, - 725.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ":<2>=1?/@A27BDCE6E=GFH:JI7B\u0012KL2NM7:POH@A2>=1Q>:DCR27S32UTVKWI7BDFYXZCE[*\\D:>]36^8`_a6^8AQbI7KcS#QN6,SV@A2>=1:5d/.18eC9?f:J=1:D8*C\u0018:DBgI\u001eh\u00120327S-SLhDB<2703:Di,C9?f:\u001cCEKWIgCE[*\\1:DS", - "origin": [ - 71.9000244140625, - 715.8500366210938 - ], - "bbox": [ - 71.9000244140625, - 700.9500122070312, - 521.0999755859375, - 725.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.9000244140625, - 700.9500122070312, - 521.0999755859375, - 725.8500366210938 - ] - } - ] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 71.60002136230469, - 711.8499755859375, - 520.5, - 736.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "032jQ>:\u001c278kT9l\u001c]5dnmo?f:\u001c=1:D8fC\u0018:DBJI#hpC9?f:qlRi\u0017Kr?f:DB<:\u001cC9?f:pCE[*\\D:DS303:-:DCEis6^S'C9?f:36^8fC\u0018:DB#2>=PCE6VI78�B-:V476VIN8;dZtRI7K�\\1I5INS1CR:<2>=1?Z@A2NBDCE6V=GFH:pC\u0015I", - "origin": [ - 71.60002136230469, - 726.75 - ], - "bbox": [ - 71.60002136230469, - 711.8499755859375, - 520.5, - 736.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.60002136230469, - 711.8499755859375, - 520.5, - 736.75 - ] - } - ] - }, - { - "number": 118, - "type": 0, - "bbox": [ - 71.80001831054688, - 722.75, - 519.800048828125, - 747.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "2JM7:DB1uJ?v6Y4j?`:D8;:DBE47uwdqxy:<=-27[vSP:\u001cI\u001eh'C9?f:Rz{INB-:D8fC}|J=-I78fCEB#2>=PCE6VI78*i\u0017C9?f:\u0012CE[f\\1:DS\u0012\\1:-=-I703:qSDIn~\u001727CEC\u0018:D8;::PF", - "origin": [ - 335.0000305175781, - 748.6500244140625 - ], - "bbox": [ - 335.0000305175781, - 733.75, - 346.4000549316406, - 758.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.0000305175781, - 733.75, - 346.4000549316406, - 758.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "uD†'8‡I/:PFH:D03:D8fCLI#hyC9?f:„=-27[vSG:DCWC\u0015IpB-:\u0018@‡B<:DSG:D8*C\u0017C9?v6^S", - "origin": [ - 348.7000427246094, - 748.6500244140625 - ], - "bbox": [ - 348.7000427246094, - 733.75, - 521.4000854492188, - 758.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.7000427246094, - 733.75, - 521.4000854492188, - 758.6500244140625 - ] - } - ] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 71.60003662109375, - 744.75, - 269.4000244140625, - 769.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "6^8fC\u0018:DB#2>=PCE6VI78B-:V476VIN8fiˆK\u001a?*:D8=1:„C9?f:DB<:'6^Sn8‡Ip6^8fC\u0018:DB#2>=PCE6VI78d", - "origin": [ - 71.60003662109375, - 759.6500244140625 - ], - "bbox": [ - 71.60003662109375, - 744.75, - 269.4000244140625, - 769.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.60003662109375, - 744.75, - 269.4000244140625, - 769.6500244140625 - ] - } - ] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ] - }, - { - "number": 122, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ] - }, - { - "number": 123, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "4", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 3, - "type": 0, - "bbox": [ - 269.1000061035156, - 88.5499496459961, - 280.70001220703125, - 125.24995422363281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "/", - "origin": [ - 269.1000061035156, - 103.449951171875 - ], - "bbox": [ - 269.1000061035156, - 90.5499496459961, - 269.1000061035156, - 125.24995422363281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "�", - "origin": [ - 269.1000061035156, - 103.449951171875 - ], - "bbox": [ - 269.1000061035156, - 88.5499496459961, - 280.70001220703125, - 113.449951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.1000061035156, - 88.5499496459961, - 280.70001220703125, - 125.24995422363281 - ] - } - ], - "tag": "header" - }, - { - "number": 121, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "tag": "header" - }, - { - "number": 122, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "tag": "header" - }, - { - "number": 123, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "4", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 4, - "page_size": [ - 595.5, - 842.25 - ] - }, - "page_5": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 71.0999984741211, - 109.54998779296875, - 272.1999816894531, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ãWÔw×Qà»ÔÖØ8ç ÛcÜu×¥ÕQÒrâ8ÓGÒrÑ¡ÓZ×QÛ", - "origin": [ - 71.0999984741211, - 116.04998779296875 - ], - "bbox": [ - 71.0999984741211, - 109.54998779296875, - 172.89999389648438, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "^\u001c", - "origin": [ - 172.89999389648438, - 116.04998779296875 - ], - "bbox": [ - 172.89999389648438, - 109.54998779296875, - 182.0, - 127.44998931884766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999984741211, - 109.54998779296875, - 182.0, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\\)", - "origin": [ - 187.1999969482422, - 116.04998779296875 - ], - "bbox": [ - 187.1999969482422, - 109.54998779296875, - 196.1999969482422, - 127.44998931884766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.1999969482422, - 109.54998779296875, - 196.1999969482422, - 127.44998931884766 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\f", - "origin": [ - 198.3000030517578, - 116.04998779296875 - ], - "bbox": [ - 198.3000030517578, - 109.54998779296875, - 198.3000030517578, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¢çr×gØu×QÞGÒ\u001dÛZ×gè�ÚVßµÒ", - "origin": [ - 198.3000030517578, - 116.04998779296875 - ], - "bbox": [ - 198.3000030517578, - 109.54998779296875, - 272.1999816894531, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.3000030517578, - 109.54998779296875, - 272.1999816894531, - 128.44998168945312 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 288.79998779296875, - 109.04998779296875, - 518.5999755859375, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÔÖÓcÓcÝ?Ø\u000få8ÞcÝWÕ/×gÓcÓQé", - "origin": [ - 288.79998779296875, - 116.04998779296875 - ], - "bbox": [ - 288.79998779296875, - 109.54998779296875, - 356.5999450683594, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.79998779296875, - 109.54998779296875, - 356.5999450683594, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 364.5, - 116.04998779296875 - ], - "bbox": [ - 364.5, - 109.04998779296875, - 364.5, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÓZå8Þ1ÔÖØ", - "origin": [ - 364.5, - 116.04998779296875 - ], - "bbox": [ - 364.5, - 109.54998779296875, - 386.60003662109375, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 386.60003662109375, - 116.04998779296875 - ], - "bbox": [ - 386.60003662109375, - 109.04998779296875, - 392.60003662109375, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÑÖÔÖØuç", - "origin": [ - 392.60003662109375, - 116.04998779296875 - ], - "bbox": [ - 392.60003662109375, - 109.54998779296875, - 410.7000427246094, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011�", - "origin": [ - 410.7000427246094, - 116.04998779296875 - ], - "bbox": [ - 410.7000427246094, - 109.04998779296875, - 416.2000427246094, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥Óc×QÛ;×gÑw×gÙ�×gØ©Ûcӓà»ÔwÛcÜ\u000fÒrØ", - "origin": [ - 416.2000427246094, - 116.04998779296875 - ], - "bbox": [ - 416.2000427246094, - 109.54998779296875, - 518.5999755859375, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.5, - 109.04998779296875, - 518.5999755859375, - 128.44998168945312 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 71.19998168945312, - 122.45001220703125, - 227.19998168945312, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒTãr×QÞGÒ\u001dçr×^èu×gØ8ÓcÔÖÛsß;Ýræ8Ý?Øu×\u001b×gÑw×gÙ�×gØ©ÛBå6×QÞ", - "origin": [ - 71.19998168945312, - 128.95001220703125 - ], - "bbox": [ - 71.19998168945312, - 122.45001220703125, - 227.19998168945312, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 122.45001220703125, - 227.19998168945312, - 141.35000610351562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 241.69998168945312, - 121.95001220703125, - 318.2999572753906, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑlÒrØ8Õ", - "origin": [ - 241.69998168945312, - 128.95001220703125 - ], - "bbox": [ - 241.69998168945312, - 122.45001220703125, - 256.39996337890625, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 256.39996337890625, - 128.95001220703125 - ], - "bbox": [ - 256.39996337890625, - 121.95001220703125, - 260.699951171875, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔÖÒrØ\u0019ãrÝ?ÑÖâ8Ù�×ré", - "origin": [ - 260.699951171875, - 128.95001220703125 - ], - "bbox": [ - 260.699951171875, - 122.45001220703125, - 318.2999572753906, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.69998168945312, - 121.95001220703125, - 318.2999572753906, - 141.35000610351562 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 327.8999938964844, - 114.05001068115234, - 434.6000061035156, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u000f\u0015\u0014\u0017\u0016", - "origin": [ - 327.8999938964844, - 128.95001220703125 - ], - "bbox": [ - 327.8999938964844, - 114.05001068115234, - 337.70001220703125, - 138.95001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "2\u0012", - "origin": [ - 337.70001220703125, - 128.95001220703125 - ], - "bbox": [ - 337.70001220703125, - 121.95001220703125, - 341.1000061035156, - 140.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.8999938964844, - 114.05001068115234, - 341.1000061035156, - 140.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 352.29998779296875, - 128.95001220703125 - ], - "bbox": [ - 352.29998779296875, - 121.95001220703125, - 352.29998779296875, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";æ™ÝrÞB×", - "origin": [ - 352.29998779296875, - 128.95001220703125 - ], - "bbox": [ - 352.29998779296875, - 122.45001220703125, - 376.39996337890625, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 376.39996337890625, - 128.95001220703125 - ], - "bbox": [ - 376.39996337890625, - 122.45001220703125, - 381.0999755859375, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ�å+Ñw×ré?ÔÖØ©ÛZÝ", - "origin": [ - 381.0999755859375, - 128.95001220703125 - ], - "bbox": [ - 381.0999755859375, - 122.45001220703125, - 434.6000061035156, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.29998779296875, - 121.95001220703125, - 434.6000061035156, - 141.35000610351562 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 452.6999816894531, - 121.95001220703125, - 522.0999755859375, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 452.6999816894531, - 128.95001220703125 - ], - "bbox": [ - 452.6999816894531, - 122.45001220703125, - 455.79998779296875, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 455.79998779296875, - 128.95001220703125 - ], - "bbox": [ - 455.79998779296875, - 121.95001220703125, - 461.79998779296875, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝaà»Ó", - "origin": [ - 461.79998779296875, - 128.95001220703125 - ], - "bbox": [ - 461.79998779296875, - 122.45001220703125, - 480.29998779296875, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6999816894531, - 121.95001220703125, - 480.29998779296875, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 484.4999694824219, - 128.95001220703125 - ], - "bbox": [ - 484.4999694824219, - 121.95001220703125, - 484.4999694824219, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔ©Ócå+ÒrÕ/×ré", - "origin": [ - 484.4999694824219, - 128.95001220703125 - ], - "bbox": [ - 484.4999694824219, - 122.45001220703125, - 522.0999755859375, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 484.4999694824219, - 121.95001220703125, - 522.0999755859375, - 141.35000610351562 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 71.199951171875, - 135.45001220703125, - 276.1000061035156, - 154.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ôwæ-ÛcÜ8ÔÖÓNÔÖÓ»Õ/Ý?Ø8ÓcÔÖèu×QÞG×gè—ÒrÓNÛcÜu׳Õ/Ý?Ø©ÛcÔÖØVâ8â8ÙöÑÖÔÖÙ ÔwÛQò", - "origin": [ - 71.199951171875, - 141.95001220703125 - ], - "bbox": [ - 71.199951171875, - 135.45001220703125, - 276.1000061035156, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 135.45001220703125, - 276.1000061035156, - 154.35000610351562 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 93.2999496459961, - 147.8499755859375, - 452.5999450683594, - 167.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×", - "origin": [ - 93.2999496459961, - 154.8499755859375 - ], - "bbox": [ - 93.2999496459961, - 148.3499755859375, - 99.2999496459961, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.2999496459961, - 148.3499755859375, - 99.2999496459961, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 107.89994812011719, - 154.8499755859375 - ], - "bbox": [ - 107.89994812011719, - 147.8499755859375, - 107.89994812011719, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒrÓcßVÙ�å+ÛZÝrÛcÔÖÕ­æ=Þc×Q×gèuÝ?Ù", - "origin": [ - 107.89994812011719, - 154.8499755859375 - ], - "bbox": [ - 107.89994812011719, - 148.3499755859375, - 195.9999542236328, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.89994812011719, - 147.8499755859375, - 195.9999542236328, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 205.09994506835938, - 154.8499755859375 - ], - "bbox": [ - 205.09994506835938, - 147.8499755859375, - 205.09994506835938, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "»×", - "origin": [ - 205.09994506835938, - 154.8499755859375 - ], - "bbox": [ - 205.09994506835938, - 148.3499755859375, - 213.09994506835938, - 167.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 213.09994506835938, - 154.8499755859375 - ], - "bbox": [ - 213.09994506835938, - 147.8499755859375, - 217.79994201660156, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6×gÕ/Û¡Ócâ8çrçr×gÓZÛcÓ4ÛZݓÕ/Ý?Ø8ÓcÔlèu×QÞ¬ÛcÜu×", - "origin": [ - 217.79994201660156, - 154.8499755859375 - ], - "bbox": [ - 217.79994201660156, - 148.3499755859375, - 346.4999084472656, - 167.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "B\u0014 \u000e\u000f\u001b\u001f\"E4b\u0010%\u0014.\"�\u001e\u001f\u0014 )>\u001c\u0013D", - "origin": [ - 346.4999084472656, - 154.8499755859375 - ], - "bbox": [ - 346.4999084472656, - 148.3499755859375, - 414.2999267578125, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aæ=â8Ø+Õ/ÛcÔwÝ?Ø", - "origin": [ - 414.2999267578125, - 154.8499755859375 - ], - "bbox": [ - 414.2999267578125, - 148.3499755859375, - 452.5999450683594, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.09994506835938, - 147.8499755859375, - 452.5999450683594, - 167.24996948242188 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 469.3999328613281, - 148.3499755859375, - 520.2999267578125, - 167.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrÓ", - "origin": [ - 469.3999328613281, - 154.8499755859375 - ], - "bbox": [ - 469.3999328613281, - 148.3499755859375, - 474.7999267578125, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 469.3999328613281, - 148.3499755859375, - 474.7999267578125, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "4-)>\"39\u000f\"�:`)�&\u0018\"", - "origin": [ - 481.3999328613281, - 154.8499755859375 - ], - "bbox": [ - 481.3999328613281, - 148.3499755859375, - 520.2999267578125, - 166.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.3999328613281, - 148.3499755859375, - 520.2999267578125, - 166.24996948242188 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 74.49992370605469, - 160.8499755859375, - 518.9999389648438, - 180.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")�\u001e", - "origin": [ - 74.49992370605469, - 167.8499755859375 - ], - "bbox": [ - 74.49992370605469, - 161.3499755859375, - 77.7999267578125, - 179.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.49992370605469, - 161.3499755859375, - 77.7999267578125, - 179.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"$\u001c\u0013\u000e", - "origin": [ - 84.2999267578125, - 167.8499755859375 - ], - "bbox": [ - 84.2999267578125, - 161.3499755859375, - 93.89993286132812, - 179.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eé;à»ÔwÛcÜ", - "origin": [ - 93.89993286132812, - 167.8499755859375 - ], - "bbox": [ - 93.89993286132812, - 161.3499755859375, - 122.19993591308594, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.2999267578125, - 161.3499755859375, - 122.19993591308594, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×7å+Ôw×gÕ/×gÓ", - "origin": [ - 133.4999237060547, - 167.8499755859375 - ], - "bbox": [ - 133.4999237060547, - 161.3499755859375, - 177.89990234375, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.4999237060547, - 161.3499755859375, - 177.89990234375, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 187.2999267578125, - 167.8499755859375 - ], - "bbox": [ - 187.2999267578125, - 160.8499755859375, - 187.2999267578125, - 179.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÍÓGÔÖÙ�å+ÑÖÔlÕ/×gÓ\u001fÔlØ", - "origin": [ - 187.2999267578125, - 167.8499755859375 - ], - "bbox": [ - 187.2999267578125, - 161.3499755859375, - 249.6999053955078, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.2999267578125, - 160.8499755859375, - 249.6999053955078, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8Ôwç?Üu×Qޖè8ÔlÙ�×gØ8ÓcÔwÝ?Ø+Ó", - "origin": [ - 261.09991455078125, - 167.8499755859375 - ], - "bbox": [ - 261.09991455078125, - 161.3499755859375, - 344.49993896484375, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 261.09991455078125, - 161.3499755859375, - 344.49993896484375, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕGÜ8Ò\u001dÞGÒrÕ/ÛZ×QÞ1Ô", - "origin": [ - 364.89990234375, - 167.8499755859375 - ], - "bbox": [ - 364.89990234375, - 161.3499755859375, - 408.69989013671875, - 180.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 408.69989013671875, - 167.8499755859375 - ], - "bbox": [ - 408.69989013671875, - 160.8499755859375, - 411.69989013671875, - 179.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×gèŸÚVß", - "origin": [ - 411.69989013671875, - 167.8499755859375 - ], - "bbox": [ - 411.69989013671875, - 161.3499755859375, - 438.79986572265625, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.89990234375, - 160.8499755859375, - 438.79986572265625, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÜuÝrÞcÛ", - "origin": [ - 450.09991455078125, - 167.8499755859375 - ], - "bbox": [ - 450.09991455078125, - 161.3499755859375, - 470.0998840332031, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 450.09991455078125, - 161.3499755859375, - 470.0998840332031, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 480.9999084472656, - 167.8499755859375 - ], - "bbox": [ - 480.9999084472656, - 160.8499755859375, - 480.9999084472656, - 179.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÑÖÔlØu×gÒ\u001dÞGÔwÛ¯ß", - "origin": [ - 480.9999084472656, - 167.8499755859375 - ], - "bbox": [ - 480.9999084472656, - 161.3499755859375, - 518.9999389648438, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 480.9999084472656, - 160.8499755859375, - 518.9999389648438, - 180.24996948242188 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 71.19989013671875, - 173.8499755859375, - 105.29989624023438, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gØ8çrÛcÜ8Ó", - "origin": [ - 71.19989013671875, - 180.8499755859375 - ], - "bbox": [ - 71.19989013671875, - 174.3499755859375, - 100.99989318847656, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 100.99989318847656, - 180.8499755859375 - ], - "bbox": [ - 100.99989318847656, - 173.8499755859375, - 105.29989624023438, - 192.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19989013671875, - 173.8499755859375, - 105.29989624023438, - 193.24996948242188 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 141.89988708496094, - 174.3499755859375, - 375.69989013671875, - 209.0499725341797 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×QߖÙ&â8ÓZÛ\u0016ڐ×réÜ8ÝTà\u001b×Qãr×QÞgé¬Ócâ", - "origin": [ - 141.89988708496094, - 180.8499755859375 - ], - "bbox": [ - 141.89988708496094, - 174.3499755859375, - 257.69989013671875, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 257.69989013671875, - 180.8499755859375 - ], - "bbox": [ - 257.69989013671875, - 175.1499786376953, - 263.69989013671875, - 209.0499725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ÕQÔÖ×gتÛcÑwߖÑlÒ\u001dÞcçr×QޓÛcÜ8ÒrØ", - "origin": [ - 263.69989013671875, - 180.8499755859375 - ], - "bbox": [ - 263.69989013671875, - 174.3499755859375, - 355.39984130859375, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.89988708496094, - 174.3499755859375, - 355.39984130859375, - 209.0499725341797 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×", - "origin": [ - 365.39990234375, - 180.8499755859375 - ], - "bbox": [ - 365.39990234375, - 174.3499755859375, - 375.69989013671875, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.39990234375, - 174.3499755859375, - 375.69989013671875, - 193.24996948242188 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 391.9999084472656, - 165.94998168945312, - 457.69989013671875, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 391.9999084472656, - 180.8499755859375 - ], - "bbox": [ - 391.9999084472656, - 174.3499755859375, - 406.59991455078125, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 406.59991455078125, - 180.8499755859375 - ], - "bbox": [ - 406.59991455078125, - 173.8499755859375, - 410.9999084472656, - 192.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "!Ñw×gØuçrÛcܰé", - "origin": [ - 410.9999084472656, - 180.8499755859375 - ], - "bbox": [ - 410.9999084472656, - 174.3499755859375, - 450.9998779296875, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ",\u001b", - "origin": [ - 450.9998779296875, - 180.8499755859375 - ], - "bbox": [ - 450.9998779296875, - 165.94998168945312, - 457.69989013671875, - 190.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.9999084472656, - 165.94998168945312, - 457.69989013671875, - 193.24996948242188 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 462.2999267578125, - 180.84999084472656, - 472.2999267578125, - 214.74998474121094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "��", - "origin": [ - 462.2999267578125, - 186.54998779296875 - ], - "bbox": [ - 462.2999267578125, - 180.84999084472656, - 472.2999267578125, - 214.74998474121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 462.2999267578125, - 180.84999084472656, - 472.2999267578125, - 214.74998474121094 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 483.7999267578125, - 165.94998168945312, - 518.5999145507812, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u000f\u0015\u0014\u0017\u0016", - "origin": [ - 483.7999267578125, - 180.8499755859375 - ], - "bbox": [ - 483.7999267578125, - 165.94998168945312, - 493.5999450683594, - 190.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "’é°Ócâ8Õ1Ü", - "origin": [ - 493.5999450683594, - 180.8499755859375 - ], - "bbox": [ - 493.5999450683594, - 174.3499755859375, - 518.5999145507812, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.7999267578125, - 165.94998168945312, - 518.5999145507812, - 193.24996948242188 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 71.09991455078125, - 187.14996337890625, - 293.49993896484375, - 221.84996032714844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8Ò\u001dÛ»ÛcÜu×%Õ/Ý?تÛcÔlØ©â8â+Ù", - "origin": [ - 71.09991455078125, - 193.64996337890625 - ], - "bbox": [ - 71.09991455078125, - 187.14996337890625, - 154.89991760253906, - 206.04995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09991455078125, - 187.14996337890625, - 154.89991760253906, - 206.04995727539062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gÓcÕ/ÞGÔÖå8ÛcÔwÝ?Ø\rÔÖÓNÙ�×gÒrØ8ÔlØuçræ=â+ÑIò", - "origin": [ - 167.59991455078125, - 193.64996337890625 - ], - "bbox": [ - 167.59991455078125, - 187.14996337890625, - 287.49993896484375, - 206.04995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 287.49993896484375, - 193.64996337890625 - ], - "bbox": [ - 287.49993896484375, - 187.94996643066406, - 293.49993896484375, - 221.84996032714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.59991455078125, - 187.14996337890625, - 293.49993896484375, - 221.84996032714844 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 96.49990844726562, - 199.64996337890625, - 370.8998718261719, - 234.84996032714844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÛcÜ\u000fÛcÜu×gÓZ×�Þc×gÙ¥Ò\u001dÞ", - "origin": [ - 96.49990844726562, - 206.64996337890625 - ], - "bbox": [ - 96.49990844726562, - 200.14996337890625, - 165.99990844726562, - 219.04995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 165.99990844726562, - 206.64996337890625 - ], - "bbox": [ - 165.99990844726562, - 199.64996337890625, - 170.39990234375, - 218.04995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÓ;ÔÖØ\u000fÙ¥ÔlØ8è°éà\"×�ÞG×gÕ/Ý?Ø8ÓcÔÖèu×QޓÛcÜu×�æ=ÝrÞGÕ/×�ÛZ×QÞGÙ", - "origin": [ - 170.39990234375, - 206.64996337890625 - ], - "bbox": [ - 170.39990234375, - 200.14996337890625, - 357.4998779296875, - 219.04995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 357.4998779296875, - 206.64996337890625 - ], - "bbox": [ - 357.4998779296875, - 200.94996643066406, - 370.8998718261719, - 234.84996032714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.49990844726562, - 199.64996337890625, - 370.8998718261719, - 234.84996032714844 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 395.6999206542969, - 193.74990844726562, - 422.59991455078125, - 228.4499053955078 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 395.6999206542969, - 206.64990234375 - ], - "bbox": [ - 395.6999206542969, - 200.14990234375, - 398.7999267578125, - 219.04989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.6999206542969, - 200.14990234375, - 398.7999267578125, - 219.04989624023438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 408.8999328613281, - 206.64990234375 - ], - "bbox": [ - 408.8999328613281, - 193.74990844726562, - 408.8999328613281, - 228.4499053955078 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 408.8999328613281, - 206.64990234375 - ], - "bbox": [ - 408.8999328613281, - 200.14990234375, - 422.59991455078125, - 219.04989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 408.8999328613281, - 193.74990844726562, - 422.59991455078125, - 228.4499053955078 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 431.2999267578125, - 199.64990234375, - 441.2999267578125, - 219.04989624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 431.2999267578125, - 206.64990234375 - ], - "bbox": [ - 431.2999267578125, - 200.14990234375, - 431.2999267578125, - 219.04989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 431.2999267578125, - 206.64990234375 - ], - "bbox": [ - 431.2999267578125, - 199.64990234375, - 436.7999267578125, - 218.04989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 436.7999267578125, - 206.64990234375 - ], - "bbox": [ - 436.7999267578125, - 200.14990234375, - 441.2999267578125, - 219.04989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 431.2999267578125, - 199.64990234375, - 441.2999267578125, - 219.04989624023438 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 460.3999328613281, - 200.14990234375, - 520.4998779296875, - 219.04989624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×�Þc×Qà^Þ1ÔwÛZ×\u0014ÛcÜ8ÔÖÓ", - "origin": [ - 460.3999328613281, - 206.64990234375 - ], - "bbox": [ - 460.3999328613281, - 200.14990234375, - 520.4998779296875, - 219.04989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 460.3999328613281, - 200.14990234375, - 520.4998779296875, - 219.04989624023438 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 71.09991455078125, - 213.0499267578125, - 403.9998779296875, - 231.94992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gäVâ8Ò\u001dÛcÔwÝ?ذé8Òrè+Ù¥ÔwÛZÛcÔÖØuç�Ù�ÝrÞG×%ÛcÜ8ÒrؗÝ?Øu×\u0019ÓZå+Ò\u001dÛcÔÖÒrѰè8ÔlÙ�×gØ8ÓcÔwÝ?جéVÙ�ÝrÞG׳ÓcÔÖÙ�åyÑwߥÒrÓ", - "origin": [ - 71.09991455078125, - 219.5499267578125 - ], - "bbox": [ - 71.09991455078125, - 213.0499267578125, - 399.19989013671875, - 231.94992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017", - "origin": [ - 399.19989013671875, - 219.5499267578125 - ], - "bbox": [ - 399.19989013671875, - 213.0499267578125, - 403.9998779296875, - 230.94992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09991455078125, - 213.0499267578125, - 403.9998779296875, - 231.94992065429688 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 154.19992065429688, - 238.74990844726562, - 159.7999267578125, - 273.44989013671875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0013\u000e", - "origin": [ - 154.19992065429688, - 251.64990234375 - ], - "bbox": [ - 154.19992065429688, - 238.74990844726562, - 159.7999267578125, - 273.44989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.19992065429688, - 238.74990844726562, - 159.7999267578125, - 273.44989013671875 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 195.69992065429688, - 233.54989624023438, - 199.89991760253906, - 268.2498779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�\n�", - "origin": [ - 195.69992065429688, - 246.44989013671875 - ], - "bbox": [ - 195.69992065429688, - 233.54989624023438, - 199.89991760253906, - 268.2498779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.69992065429688, - 233.54989624023438, - 199.89991760253906, - 268.2498779296875 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 204.09991455078125, - 239.94989013671875, - 234.79991149902344, - 275.349853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012\u000e6", - "origin": [ - 204.09991455078125, - 246.94989013671875 - ], - "bbox": [ - 204.09991455078125, - 239.94989013671875, - 211.29991149902344, - 258.3498840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 204.09991455078125, - 239.94989013671875, - 211.29991149902344, - 258.3498840332031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 225.6999053955078, - 247.14984130859375 - ], - "bbox": [ - 225.6999053955078, - 240.14984130859375, - 225.6999053955078, - 258.5498352050781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\n�", - "origin": [ - 225.6999053955078, - 247.14984130859375 - ], - "bbox": [ - 225.6999053955078, - 241.44984436035156, - 234.79991149902344, - 275.349853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.6999053955078, - 240.14984130859375, - 234.79991149902344, - 275.349853515625 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 244.49989318847656, - 234.04983520507812, - 257.19989013671875, - 275.14984130859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 244.49989318847656, - 246.9498291015625 - ], - "bbox": [ - 244.49989318847656, - 234.04983520507812, - 244.49989318847656, - 268.74981689453125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+ñ", - "origin": [ - 244.49989318847656, - 246.9498291015625 - ], - "bbox": [ - 244.49989318847656, - 240.4498291015625, - 250.69989013671875, - 259.3498229980469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\f\u000b\u000e\r", - "origin": [ - 250.69989013671875, - 246.9498291015625 - ], - "bbox": [ - 250.69989013671875, - 241.2498321533203, - 257.19989013671875, - 275.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 244.49989318847656, - 234.04983520507812, - 257.19989013671875, - 275.14984130859375 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 266.7998962402344, - 242.04981994628906, - 272.39990234375, - 275.9498291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u000f\u0011\u0010", - "origin": [ - 266.7998962402344, - 247.74981689453125 - ], - "bbox": [ - 266.7998962402344, - 242.04981994628906, - 272.39990234375, - 275.9498291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.7998962402344, - 242.04981994628906, - 272.39990234375, - 275.9498291015625 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 274.2998962402344, - 239.34982299804688, - 277.4999084472656, - 280.4498291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000e", - "origin": [ - 274.2998962402344, - 252.24981689453125 - ], - "bbox": [ - 274.2998962402344, - 239.34982299804688, - 274.2998962402344, - 274.0498046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0012", - "origin": [ - 274.2998962402344, - 252.24981689453125 - ], - "bbox": [ - 274.2998962402344, - 246.54981994628906, - 277.4999084472656, - 280.4498291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.2998962402344, - 239.34982299804688, - 277.4999084472656, - 280.4498291015625 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 333.39990234375, - 240.94985961914062, - 336.59991455078125, - 282.04986572265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0010", - "origin": [ - 333.39990234375, - 253.849853515625 - ], - "bbox": [ - 333.39990234375, - 240.94985961914062, - 333.39990234375, - 275.64984130859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0014", - "origin": [ - 333.39990234375, - 253.849853515625 - ], - "bbox": [ - 333.39990234375, - 248.1498565673828, - 336.59991455078125, - 282.04986572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.39990234375, - 240.94985961914062, - 336.59991455078125, - 282.04986572265625 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 423.8999938964844, - 233.55001831054688, - 428.1000061035156, - 268.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�\n�", - "origin": [ - 423.8999938964844, - 246.45001220703125 - ], - "bbox": [ - 423.8999938964844, - 233.55001831054688, - 428.1000061035156, - 268.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.8999938964844, - 233.55001831054688, - 428.1000061035156, - 268.25 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 510.1000061035156, - 239.95001220703125, - 520.5, - 259.3500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îQü", - "origin": [ - 510.1000061035156, - 246.95001220703125 - ], - "bbox": [ - 510.1000061035156, - 240.45001220703125, - 514.9000244140625, - 259.3500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 514.9000244140625, - 246.95001220703125 - ], - "bbox": [ - 514.9000244140625, - 239.95001220703125, - 520.5, - 258.3500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1000061035156, - 239.95001220703125, - 520.5, - 259.3500061035156 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 71.10000610351562, - 262.3500061035156, - 106.00001525878906, - 297.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×QÞc×", - "origin": [ - 71.10000610351562, - 275.25 - ], - "bbox": [ - 71.10000610351562, - 268.75, - 94.30001068115234, - 287.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u00184", - "origin": [ - 94.30001068115234, - 275.25 - ], - "bbox": [ - 94.30001068115234, - 262.3500061035156, - 106.00001525878906, - 297.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 262.3500061035156, - 106.00001525878906, - 297.04998779296875 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 102.30000305175781, - 268.45001220703125, - 111.4000015258789, - 303.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 102.30000305175781, - 275.45001220703125 - ], - "bbox": [ - 102.30000305175781, - 268.45001220703125, - 102.30000305175781, - 286.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\n�", - "origin": [ - 102.30000305175781, - 275.45001220703125 - ], - "bbox": [ - 102.30000305175781, - 269.75, - 111.4000015258789, - 303.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.30000305175781, - 268.45001220703125, - 111.4000015258789, - 303.6500244140625 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 119.60000610351562, - 268.25, - 122.30000305175781, - 286.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 119.60000610351562, - 275.25 - ], - "bbox": [ - 119.60000610351562, - 268.75, - 119.60000610351562, - 286.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 119.60000610351562, - 275.25 - ], - "bbox": [ - 119.60000610351562, - 268.25, - 122.30000305175781, - 286.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.60000610351562, - 268.25, - 122.30000305175781, - 286.6499938964844 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 143.5, - 275.95001220703125, - 148.8000030517578, - 311.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ".", - "origin": [ - 143.5, - 282.95001220703125 - ], - "bbox": [ - 143.5, - 275.95001220703125, - 143.5, - 294.3500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0016\u0015", - "origin": [ - 143.5, - 282.95001220703125 - ], - "bbox": [ - 143.5, - 277.25, - 148.8000030517578, - 311.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 143.5, - 275.95001220703125, - 148.8000030517578, - 311.1500244140625 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 158.39999389648438, - 268.75, - 179.5, - 287.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "é©à»ÔÖÛcÜ", - "origin": [ - 158.39999389648438, - 275.25 - ], - "bbox": [ - 158.39999389648438, - 268.75, - 179.5, - 287.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.39999389648438, - 268.75, - 179.5, - 287.6499938964844 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 200.89999389648438, - 268.25, - 515.5999755859375, - 287.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8×gØuÝrÛcÔÖØuç\u0019ÛcÜu×¢á-Ò\u001då+ÑÖÒrÕQÔÖÒrذéVÔÖØ ÒrØ ÝrÚ©ãWÔwÝ?â8Ó\"çr×gØu×QÞGÒrÑlÔ", - "origin": [ - 200.89999389648438, - 275.25 - ], - "bbox": [ - 200.89999389648438, - 268.75, - 416.4999694824219, - 287.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 416.4999694824219, - 275.25 - ], - "bbox": [ - 416.4999694824219, - 268.25, - 419.4999694824219, - 286.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gÒ\u001dÛcÔwÝ?ذò¡ó¢ÝTà%éWÛcÜu×¢ÛZ×QÞGÙ", - "origin": [ - 419.4999694824219, - 275.25 - ], - "bbox": [ - 419.4999694824219, - 268.75, - 515.5999755859375, - 287.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.89999389648438, - 268.25, - 515.5999755859375, - 287.6499938964844 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 71.19999694824219, - 275.3500061035156, - 506.0999755859375, - 310.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ãrÝ?ÑwãWÔÖØuç¥ÛcÜ8×\u0014è8×QÞGÔwã\u001dÒ\u001dÛcÔwãr×\u0019Ýræ\"ÛcÜu×&å6ÝrÛZ×gØ©ÛcÔÖÒrÑ·ÔÖÓ\u0016Þc×gÑÖÒ\u001dÛZ×gè", - "origin": [ - 71.19999694824219, - 288.25 - ], - "bbox": [ - 71.19999694824219, - 281.75, - 304.0999755859375, - 300.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 281.75, - 304.0999755859375, - 300.6499938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ\rÛcÜu×", - "origin": [ - 314.1000061035156, - 288.25 - ], - "bbox": [ - 314.1000061035156, - 281.75, - 338.1000061035156, - 300.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "U:", - "origin": [ - 338.1000061035156, - 288.25 - ], - "bbox": [ - 338.1000061035156, - 281.75, - 347.6000061035156, - 299.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.1000061035156, - 281.75, - 347.6000061035156, - 300.6499938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010\u0013\u001b�D", - "origin": [ - 355.0, - 288.25 - ], - "bbox": [ - 355.0, - 281.75, - 366.1999816894531, - 299.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 355.0, - 281.75, - 366.1999816894531, - 299.6499938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "1", - "origin": [ - 369.20001220703125, - 288.25 - ], - "bbox": [ - 369.20001220703125, - 281.75, - 369.20001220703125, - 299.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")�", - "origin": [ - 369.20001220703125, - 288.25 - ], - "bbox": [ - 369.20001220703125, - 275.3500061035156, - 374.5, - 310.04998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0011I\u000f\"(S#\u001b\u001d\u001c\u0013\u001e\u001f\u0014 \u001b�\u0012", - "origin": [ - 374.5, - 288.25 - ], - "bbox": [ - 374.5, - 281.75, - 424.3000183105469, - 299.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 369.20001220703125, - 275.3500061035156, - 424.3000183105469, - 310.04998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012(\"$9�;�\u001c\u0013\u001e\u001d)>93\u001c\u0013D", - "origin": [ - 437.5, - 288.25 - ], - "bbox": [ - 437.5, - 281.75, - 486.29998779296875, - 299.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6ÛZ×QÞGÙ", - "origin": [ - 486.29998779296875, - 288.25 - ], - "bbox": [ - 486.29998779296875, - 281.75, - 506.0999755859375, - 300.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 437.5, - 281.75, - 506.0999755859375, - 300.6499938964844 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 71.10000610351562, - 294.04998779296875, - 255.30003356933594, - 313.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuלåÝrÛZ×gتÛcÔÖÒrÑ\u001bè8Ô", - "origin": [ - 71.10000610351562, - 301.04998779296875 - ], - "bbox": [ - 71.10000610351562, - 294.54998779296875, - 143.80001831054688, - 313.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 294.54998779296875, - 143.80001831054688, - 313.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 146.70001220703125, - 301.04998779296875 - ], - "bbox": [ - 146.70001220703125, - 294.04998779296875, - 146.70001220703125, - 312.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×QÞc×gØ8Õ/לڐ×QÛsà\u001b×Q×gؾåÝ?ÔÖØ©ÛcÓ", - "origin": [ - 146.70001220703125, - 301.04998779296875 - ], - "bbox": [ - 146.70001220703125, - 294.54998779296875, - 255.30003356933594, - 313.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.70001220703125, - 294.04998779296875, - 255.30003356933594, - 313.4499816894531 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 277.1000061035156, - 294.54998779296875, - 288.70001220703125, - 313.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ+è", - "origin": [ - 277.1000061035156, - 301.04998779296875 - ], - "bbox": [ - 277.1000061035156, - 294.54998779296875, - 288.70001220703125, - 313.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.1000061035156, - 294.54998779296875, - 288.70001220703125, - 313.4499816894531 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 318.8999938964844, - 294.54998779296875, - 518.6000366210938, - 313.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrÓ&ÒµÑÖÔlØu×gÒ\u001dÞ\u0019Ù¥Ôlè", - "origin": [ - 318.8999938964844, - 301.04998779296875 - ], - "bbox": [ - 318.8999938964844, - 294.54998779296875, - 386.5, - 313.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 386.5, - 301.04998779296875 - ], - "bbox": [ - 386.5, - 294.54998779296875, - 392.3999938964844, - 312.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JåÝ?ÔÖØªÛ%Ò\u001då+å8ÞcÝ", - "origin": [ - 392.3999938964844, - 301.04998779296875 - ], - "bbox": [ - 392.3999938964844, - 294.54998779296875, - 447.20001220703125, - 313.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#�", - "origin": [ - 447.20001220703125, - 301.04998779296875 - ], - "bbox": [ - 447.20001220703125, - 294.54998779296875, - 452.1000061035156, - 312.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÔÖÙ¥Ò\u001dÛcÔÖÝ?Ø7ÛZÝ\u000fÒrØ", - "origin": [ - 452.1000061035156, - 301.04998779296875 - ], - "bbox": [ - 452.1000061035156, - 294.54998779296875, - 518.6000366210938, - 313.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.8999938964844, - 294.54998779296875, - 518.6000366210938, - 313.4499816894531 - ] - } - ] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 71.19999694824219, - 307.54998779296875, - 107.79999542236328, - 326.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ÛZ×QçrÞGÒrÑ", - "origin": [ - 71.19999694824219, - 314.04998779296875 - ], - "bbox": [ - 71.19999694824219, - 307.54998779296875, - 104.19999694824219, - 326.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ">\u0017", - "origin": [ - 104.19999694824219, - 314.04998779296875 - ], - "bbox": [ - 104.19999694824219, - 307.54998779296875, - 107.79999542236328, - 325.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 307.54998779296875, - 107.79999542236328, - 326.4499816894531 - ] - } - ] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 205.8000030517578, - 327.3499755859375, - 209.0, - 368.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0010", - "origin": [ - 205.8000030517578, - 340.2499694824219 - ], - "bbox": [ - 205.8000030517578, - 327.3499755859375, - 205.8000030517578, - 362.0499572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0014", - "origin": [ - 205.8000030517578, - 340.2499694824219 - ], - "bbox": [ - 205.8000030517578, - 334.5499572753906, - 209.0, - 368.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.8000030517578, - 327.3499755859375, - 209.0, - 368.4499816894531 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 270.29998779296875, - 318.45001220703125, - 284.79998779296875, - 361.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0011", - "origin": [ - 270.29998779296875, - 333.3500061035156 - ], - "bbox": [ - 270.29998779296875, - 318.45001220703125, - 270.29998779296875, - 343.3500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0018\u0017", - "origin": [ - 270.29998779296875, - 333.3500061035156 - ], - "bbox": [ - 270.29998779296875, - 327.6499938964844, - 284.79998779296875, - 361.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.29998779296875, - 318.45001220703125, - 284.79998779296875, - 361.5500183105469 - ] - } - ] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 316.29998779296875, - 327.3500061035156, - 319.5, - 368.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0010", - "origin": [ - 316.29998779296875, - 340.25 - ], - "bbox": [ - 316.29998779296875, - 327.3500061035156, - 316.29998779296875, - 362.04998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0014", - "origin": [ - 316.29998779296875, - 340.25 - ], - "bbox": [ - 316.29998779296875, - 334.54998779296875, - 319.5, - 368.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.29998779296875, - 327.3500061035156, - 319.5, - 368.45001220703125 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 415.8000183105469, - 320.45001220703125, - 426.4000244140625, - 355.1499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 415.8000183105469, - 333.3500061035156 - ], - "bbox": [ - 415.8000183105469, - 326.3500061035156, - 415.8000183105469, - 344.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ";B", - "origin": [ - 415.8000183105469, - 333.3500061035156 - ], - "bbox": [ - 415.8000183105469, - 320.45001220703125, - 426.4000244140625, - 355.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 415.8000183105469, - 320.45001220703125, - 426.4000244140625, - 355.1499938964844 - ] - } - ] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 510.10003662109375, - 326.3500061035156, - 520.5000610351562, - 345.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îrî", - "origin": [ - 510.10003662109375, - 333.3500061035156 - ], - "bbox": [ - 510.10003662109375, - 326.8500061035156, - 515.5000610351562, - 345.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ":\u0012", - "origin": [ - 515.5000610351562, - 333.3500061035156 - ], - "bbox": [ - 515.5000610351562, - 326.3500061035156, - 520.5000610351562, - 344.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.10003662109375, - 326.3500061035156, - 520.5000610351562, - 345.75 - ] - } - ] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 79.10004425048828, - 351.6500244140625, - 486.8999938964844, - 370.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8דÒ\u001då+å8ÞcÝ", - "origin": [ - 79.10004425048828, - 358.1500244140625 - ], - "bbox": [ - 79.10004425048828, - 351.6500244140625, - 115.4000473022461, - 370.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#�", - "origin": [ - 115.4000473022461, - 358.1500244140625 - ], - "bbox": [ - 115.4000473022461, - 351.6500244140625, - 120.300048828125, - 369.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÔÖÙ¥Ò\u001dÛZ׳Þc×gÑÖÒ\u001dÛcÔwÝ?ؗڐ×gÕ/Ý?Ù�×gÓ»Òrؗ×", - "origin": [ - 120.300048828125, - 358.1500244140625 - ], - "bbox": [ - 120.300048828125, - 351.6500244140625, - 255.10006713867188, - 370.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 255.10006713867188, - 358.1500244140625 - ], - "bbox": [ - 255.10006713867188, - 351.6500244140625, - 259.8000793457031, - 369.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÒrÕ/Û¢×gä©â+ÒrÑÖÔwÛsß\rÔÖØ\rÛcÜu×\u0019ÕQÒrÓZ×gÓ»Õ/Ýaãr×QÞc×gè!ÚVß\u001fÝrÚ+ÓZ×QÞcã\u001dÒ\u001dÛcÔwÝ?Ø", - "origin": [ - 259.8000793457031, - 358.1500244140625 - ], - "bbox": [ - 259.8000793457031, - 351.6500244140625, - 486.8999938964844, - 370.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.10004425048828, - 351.6500244140625, - 486.8999938964844, - 370.5500183105469 - ] - } - ] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 501.00006103515625, - 351.1500244140625, - 511.00006103515625, - 370.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ú", - "origin": [ - 501.00006103515625, - 358.1500244140625 - ], - "bbox": [ - 501.00006103515625, - 351.6500244140625, - 501.00006103515625, - 370.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 501.00006103515625, - 358.1500244140625 - ], - "bbox": [ - 501.00006103515625, - 351.1500244140625, - 506.50006103515625, - 369.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 506.50006103515625, - 358.1500244140625 - ], - "bbox": [ - 506.50006103515625, - 351.6500244140625, - 511.00006103515625, - 370.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 501.00006103515625, - 351.1500244140625, - 511.00006103515625, - 370.5500183105469 - ] - } - ] - }, - { - "number": 119, - "type": 0, - "bbox": [ - 95.20005798339844, - 364.6500244140625, - 519.9000244140625, - 399.35003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞG× çr×gØu×QÞGÒrÑlÑwßré4ÛcÜuלÔÖØªÛZ×QçrÞ1ÒrÑ", - "origin": [ - 95.20005798339844, - 371.1500244140625 - ], - "bbox": [ - 95.20005798339844, - 364.6500244140625, - 216.1000518798828, - 383.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.20005798339844, - 364.6500244140625, - 216.1000518798828, - 383.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à¢Ü8ÔÖÕGÜ\u000fßWÔw×gÑÖè+Ó", - "origin": [ - 233.20005798339844, - 371.1500244140625 - ], - "bbox": [ - 233.20005798339844, - 364.6500244140625, - 288.1000671386719, - 383.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.20005798339844, - 364.6500244140625, - 288.1000671386719, - 383.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"", - "origin": [ - 297.4000549316406, - 371.1500244140625 - ], - "bbox": [ - 297.4000549316406, - 364.6500244140625, - 297.4000549316406, - 382.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u001a\u0019", - "origin": [ - 297.4000549316406, - 371.1500244140625 - ], - "bbox": [ - 297.4000549316406, - 365.45001220703125, - 301.7000427246094, - 399.35003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "G\u001c,9#\u0014 D", - "origin": [ - 301.7000427246094, - 371.1500244140625 - ], - "bbox": [ - 301.7000427246094, - 364.6500244140625, - 321.300048828125, - 382.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 297.4000549316406, - 364.6500244140625, - 321.300048828125, - 399.35003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "F", - "origin": [ - 324.1000671386719, - 371.1500244140625 - ], - "bbox": [ - 324.1000671386719, - 364.6500244140625, - 324.1000671386719, - 382.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥ÛcÜu× äVâ8ÒrØ©Ûcâ8Ù", - "origin": [ - 324.1000671386719, - 371.1500244140625 - ], - "bbox": [ - 324.1000671386719, - 364.6500244140625, - 386.1000671386719, - 383.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 324.1000671386719, - 364.6500244140625, - 386.1000671386719, - 383.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÒrÑ­ÛZ×QÞGÙ", - "origin": [ - 399.50006103515625, - 371.1500244140625 - ], - "bbox": [ - 399.50006103515625, - 364.6500244140625, - 469.60003662109375, - 383.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.50006103515625, - 364.6500244140625, - 469.60003662109375, - 383.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÒrØ7ڐ×", - "origin": [ - 492.800048828125, - 371.1500244140625 - ], - "bbox": [ - 492.800048828125, - 364.6500244140625, - 519.9000244140625, - 383.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.800048828125, - 364.6500244140625, - 519.9000244140625, - 383.5500183105469 - ] - } - ] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 71.20004272460938, - 377.5500183105469, - 376.2000427246094, - 396.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gÕ/Ý?Ù¥å6Ý?Óc×gè–ÔÖØ©ÛZÝ¥Ò¥Ócâ8Ù", - "origin": [ - 71.20004272460938, - 384.0500183105469 - ], - "bbox": [ - 71.20004272460938, - 377.5500183105469, - 173.80006408691406, - 396.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 377.5500183105469, - 173.80006408691406, - 396.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ¡ÔÖØ©ÛZ×QçrÞGÒrÑÖÓ^ÒrÑÖÝ?Øuç¥ÓZÛZÞGÒrÔwç?ܩۻÑÖÔlØu×\u0016Óc×Qç?Ù�×gتÛcÓ", - "origin": [ - 186.300048828125, - 384.0500183105469 - ], - "bbox": [ - 186.300048828125, - 377.5500183105469, - 371.300048828125, - 396.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#\u0017", - "origin": [ - 371.300048828125, - 384.0500183105469 - ], - "bbox": [ - 371.300048828125, - 377.5500183105469, - 376.2000427246094, - 395.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.300048828125, - 377.5500183105469, - 376.2000427246094, - 396.45001220703125 - ] - } - ] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 192.70004272460938, - 403.8500061035156, - 204.300048828125, - 439.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "6", - "origin": [ - 192.70004272460938, - 410.8500061035156 - ], - "bbox": [ - 192.70004272460938, - 403.8500061035156, - 192.70004272460938, - 422.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u001c\u001b", - "origin": [ - 192.70004272460938, - 410.8500061035156 - ], - "bbox": [ - 192.70004272460938, - 405.1499938964844, - 204.300048828125, - 439.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.70004272460938, - 403.8500061035156, - 204.300048828125, - 439.0500183105469 - ] - } - ] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 220.5000457763672, - 405.1499938964844, - 244.5000457763672, - 439.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0017\u001e\u001d \u001f\"!$#", - "origin": [ - 220.5000457763672, - 410.8500061035156 - ], - "bbox": [ - 220.5000457763672, - 405.1499938964844, - 244.5000457763672, - 439.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.5000457763672, - 405.1499938964844, - 244.5000457763672, - 439.0500183105469 - ] - } - ] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 263.2000427246094, - 404.85003662109375, - 266.4000549316406, - 445.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0010", - "origin": [ - 263.2000427246094, - 417.7500305175781 - ], - "bbox": [ - 263.2000427246094, - 404.85003662109375, - 263.2000427246094, - 439.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0014", - "origin": [ - 263.2000427246094, - 417.7500305175781 - ], - "bbox": [ - 263.2000427246094, - 412.0500183105469, - 266.4000549316406, - 445.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 263.2000427246094, - 404.85003662109375, - 266.4000549316406, - 445.9500427246094 - ] - } - ] - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 137, - "type": 0, - "bbox": [ - 290.4000549316406, - 403.85003662109375, - 309.4000549316406, - 439.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012\u00146", - "origin": [ - 290.4000549316406, - 410.85003662109375 - ], - "bbox": [ - 290.4000549316406, - 403.85003662109375, - 297.9000549316406, - 422.2500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "%\u001b", - "origin": [ - 297.9000549316406, - 410.85003662109375 - ], - "bbox": [ - 297.9000549316406, - 405.1500244140625, - 309.4000549316406, - 439.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.4000549316406, - 403.85003662109375, - 309.4000549316406, - 439.050048828125 - ] - } - ] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 327.800048828125, - 404.550048828125, - 345.10003662109375, - 439.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",", - "origin": [ - 327.800048828125, - 411.050048828125 - ], - "bbox": [ - 327.800048828125, - 404.550048828125, - 327.800048828125, - 423.4500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "'&)(+*", - "origin": [ - 327.800048828125, - 411.050048828125 - ], - "bbox": [ - 327.800048828125, - 405.35003662109375, - 345.10003662109375, - 439.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.800048828125, - 404.550048828125, - 345.10003662109375, - 439.25006103515625 - ] - } - ] - }, - { - "number": 142, - "type": 0, - "bbox": [ - 363.5000305175781, - 404.550048828125, - 368.60003662109375, - 439.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",", - "origin": [ - 363.5000305175781, - 411.050048828125 - ], - "bbox": [ - 363.5000305175781, - 404.550048828125, - 363.5000305175781, - 423.4500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": ",&", - "origin": [ - 363.5000305175781, - 411.050048828125 - ], - "bbox": [ - 363.5000305175781, - 405.35003662109375, - 368.60003662109375, - 439.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.5000305175781, - 404.550048828125, - 368.60003662109375, - 439.25006103515625 - ] - } - ] - }, - { - "number": 144, - "type": 0, - "bbox": [ - 379.60003662109375, - 404.85003662109375, - 382.800048828125, - 445.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0010", - "origin": [ - 379.60003662109375, - 417.7500305175781 - ], - "bbox": [ - 379.60003662109375, - 404.85003662109375, - 379.60003662109375, - 439.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0014", - "origin": [ - 379.60003662109375, - 417.7500305175781 - ], - "bbox": [ - 379.60003662109375, - 412.0500183105469, - 382.800048828125, - 445.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 379.60003662109375, - 404.85003662109375, - 382.800048828125, - 445.9500427246094 - ] - } - ] - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 148, - "type": 0, - "bbox": [ - 432.300048828125, - 397.8500061035156, - 444.60003662109375, - 431.7500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "&)(+*", - "origin": [ - 432.300048828125, - 403.5500183105469 - ], - "bbox": [ - 432.300048828125, - 397.8500061035156, - 444.60003662109375, - 431.7500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.300048828125, - 397.8500061035156, - 444.60003662109375, - 431.7500305175781 - ] - } - ] - }, - { - "number": 151, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 510.1000061035156, - 403.8500061035156, - 520.5, - 423.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgï", - "origin": [ - 510.1000061035156, - 410.8500061035156 - ], - "bbox": [ - 510.1000061035156, - 404.3500061035156, - 515.0, - 423.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0, - 410.8500061035156 - ], - "bbox": [ - 515.0, - 403.8500061035156, - 520.5, - 422.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1000061035156, - 403.8500061035156, - 520.5, - 423.25 - ] - } - ] - }, - { - "number": 153, - "type": 0, - "bbox": [ - 71.20001220703125, - 435.0500183105469, - 220.5000457763672, - 453.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×QÛZ×QÞ1Ù¥ÔÖØu×gè\rÚVß—Ò ÓZ×QÛ¢ÝræBåÝ?ÓcÔÖÛcÔwÝ?Ø8Ó", - "origin": [ - 71.20001220703125, - 441.5500183105469 - ], - "bbox": [ - 71.20001220703125, - 435.0500183105469, - 220.5000457763672, - 453.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 435.0500183105469, - 220.5000457763672, - 453.95001220703125 - ] - } - ] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 233.70001220703125, - 435.2500305175781, - 238.70001220703125, - 469.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",", - "origin": [ - 233.70001220703125, - 441.7500305175781 - ], - "bbox": [ - 233.70001220703125, - 435.2500305175781, - 233.70001220703125, - 454.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "'&", - "origin": [ - 233.70001220703125, - 441.7500305175781 - ], - "bbox": [ - 233.70001220703125, - 436.0500183105469, - 238.70001220703125, - 469.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.70001220703125, - 435.2500305175781, - 238.70001220703125, - 469.9500427246094 - ] - } - ] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 253.80001831054688, - 435.0500183105469, - 521.7000122070312, - 453.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8ÔÖÕ1ܖ٥Ò\u001dÛcÕGܵÛcÜu×%åyÔw×gÕ/×Qà»ÔÖÓZ×%ÑlÔÖØu×gÒ\u001dÞGÔwۯߜÝræ·ÛcÜu×\u0019ÛZÞGâu×%åÝrÛZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 253.80001831054688, - 441.5500183105469 - ], - "bbox": [ - 253.80001831054688, - 435.0500183105469, - 521.7000122070312, - 453.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.80001831054688, - 435.0500183105469, - 521.7000122070312, - 453.95001220703125 - ] - } - ] - }, - { - "number": 157, - "type": 0, - "bbox": [ - 71.10002136230469, - 448.0500183105469, - 221.2000274658203, - 466.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcÜ\rÛcÜu×;å+Ò\u001dÛcܗÝræ¡ÔÖØ©ÛZ×QçrÞGÒ\u001dÛcÔwÝ?ؗæ=ÞcÝ?Ù", - "origin": [ - 71.10002136230469, - 454.5500183105469 - ], - "bbox": [ - 71.10002136230469, - 448.0500183105469, - 221.2000274658203, - 466.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10002136230469, - 448.0500183105469, - 221.2000274658203, - 466.95001220703125 - ] - } - ] - }, - { - "number": 159, - "type": 0, - "bbox": [ - 244.2000274658203, - 448.0500183105469, - 248.4000244140625, - 466.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ", - "origin": [ - 244.2000274658203, - 454.5500183105469 - ], - "bbox": [ - 244.2000274658203, - 448.0500183105469, - 248.4000244140625, - 466.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 244.2000274658203, - 448.0500183105469, - 248.4000244140625, - 466.95001220703125 - ] - } - ] - }, - { - "number": 161, - "type": 0, - "bbox": [ - 267.60003662109375, - 439.6500244140625, - 421.6999816894531, - 466.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "é8ÔIòž×ròwé8à»ÔwÛcÜ\rÛcÜ8×%ÑÖÔÖØu×gÒ\u001dÞGÔÖÛsߜÑÖ×gØuçrÛcÜ8ÓQé", - "origin": [ - 267.60003662109375, - 454.5500183105469 - ], - "bbox": [ - 267.60003662109375, - 448.0500183105469, - 415.4999694824219, - 466.95001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆ\u001b", - "origin": [ - 415.4999694824219, - 454.5500183105469 - ], - "bbox": [ - 415.4999694824219, - 439.6500244140625, - 421.6999816894531, - 464.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.60003662109375, - 439.6500244140625, - 421.6999816894531, - 466.95001220703125 - ] - } - ] - }, - { - "number": 163, - "type": 0, - "bbox": [ - 435.4000549316406, - 447.5500183105469, - 447.4000549316406, - 482.7500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "6", - "origin": [ - 435.4000549316406, - 454.5500183105469 - ], - "bbox": [ - 435.4000549316406, - 447.5500183105469, - 435.4000549316406, - 465.95001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": ".-", - "origin": [ - 435.4000549316406, - 454.5500183105469 - ], - "bbox": [ - 435.4000549316406, - 448.8500061035156, - 447.4000549316406, - 482.7500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.4000549316406, - 447.5500183105469, - 447.4000549316406, - 482.7500305175781 - ] - } - ] - }, - { - "number": 164, - "type": 0, - "bbox": [ - 449.6000671386719, - 448.2500305175781, - 466.9000549316406, - 482.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",", - "origin": [ - 449.6000671386719, - 454.7500305175781 - ], - "bbox": [ - 449.6000671386719, - 448.2500305175781, - 449.6000671386719, - 467.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "'&)(+*", - "origin": [ - 449.6000671386719, - 454.7500305175781 - ], - "bbox": [ - 449.6000671386719, - 449.0500183105469, - 466.9000549316406, - 482.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.6000671386719, - 448.2500305175781, - 466.9000549316406, - 482.9500427246094 - ] - } - ] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 485.300048828125, - 448.2500305175781, - 490.4000549316406, - 482.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",", - "origin": [ - 485.300048828125, - 454.7500305175781 - ], - "bbox": [ - 485.300048828125, - 448.2500305175781, - 485.300048828125, - 467.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": ",&", - "origin": [ - 485.300048828125, - 454.7500305175781 - ], - "bbox": [ - 485.300048828125, - 449.0500183105469, - 490.4000549316406, - 482.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 485.300048828125, - 448.2500305175781, - 490.4000549316406, - 482.9500427246094 - ] - } - ] - }, - { - "number": 167, - "type": 0, - "bbox": [ - 497.10003662109375, - 448.0500183105469, - 499.800048828125, - 482.7500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "-", - "origin": [ - 497.10003662109375, - 454.5500183105469 - ], - "bbox": [ - 497.10003662109375, - 448.8500061035156, - 497.10003662109375, - 482.7500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "´ò", - "origin": [ - 497.10003662109375, - 454.5500183105469 - ], - "bbox": [ - 497.10003662109375, - 448.0500183105469, - 499.800048828125, - 466.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 497.10003662109375, - 448.0500183105469, - 499.800048828125, - 482.7500305175781 - ] - } - ] - }, - { - "number": 169, - "type": 0, - "bbox": [ - 95.50001525878906, - 460.45001220703125, - 519.0999755859375, - 479.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×»Õ/Ý?Ø8ÕQÑÖâ+èu×\u0010ÛcÜ8Ò\u001dÛ¡à»ÔwÛcÜ8ÔlØ\u0019ÓcÙ ÒrÑÖÑVãrÝ?ÑÖâ8Ù�×gÓQéªÛcÜu×^ÑÖÔÖØu×gÒ\u001dÞ¡ÓcÔ", - "origin": [ - 95.50001525878906, - 467.45001220703125 - ], - "bbox": [ - 95.50001525878906, - 460.95001220703125, - 328.1000061035156, - 479.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.50001525878906, - 460.95001220703125, - 328.1000061035156, - 479.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001b", - "origin": [ - 331.20001220703125, - 467.45001220703125 - ], - "bbox": [ - 331.20001220703125, - 460.45001220703125, - 331.20001220703125, - 478.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×NÝræyà»Ü+ÔÖÕGÜ\u0014ÔÖÓ¡èu×QÛZ×QÞ1Ù¥ÔÖØu×gè&ÚVß\u0019ÛcÜu×^ÑlÔÖØu×gÒ\u001dÞGÔwÛ¯ß", - "origin": [ - 331.20001220703125, - 467.45001220703125 - ], - "bbox": [ - 331.20001220703125, - 460.95001220703125, - 519.0999755859375, - 479.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.20001220703125, - 460.45001220703125, - 519.0999755859375, - 479.8500061035156 - ] - } - ] - }, - { - "number": 170, - "type": 0, - "bbox": [ - 71.20001220703125, - 465.5500183105469, - 519.7999267578125, - 492.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gØ8çrÛcÜ", - "origin": [ - 71.20001220703125, - 480.45001220703125 - ], - "bbox": [ - 71.20001220703125, - 473.95001220703125, - 94.90001678466797, - 492.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 473.95001220703125, - 94.90001678466797, - 492.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 105.20001220703125, - 480.45001220703125 - ], - "bbox": [ - 105.20001220703125, - 465.5500183105469, - 105.20001220703125, - 490.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " Ýræ\u001bÛcÜu×�åÝrÛZ×gØ©ÛcÔÖÒrÑ·ÛcÜu×QÞc×ré-ÛcÜu×¥á4ÔwÝ?â8ãVÔÖÑlÑw׳×gäVâ8Ò\u001dÛcÔwÝ?Ø�Ýræ", - "origin": [ - 105.20001220703125, - 480.45001220703125 - ], - "bbox": [ - 105.20001220703125, - 473.95001220703125, - 340.0, - 492.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.20001220703125, - 465.5500183105469, - 340.0, - 492.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9\u0018D", - "origin": [ - 348.4000244140625, - 480.45001220703125 - ], - "bbox": [ - 348.4000244140625, - 473.95001220703125, - 353.20001220703125, - 491.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.4000244140625, - 473.95001220703125, - 353.20001220703125, - 491.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f&\u000f)>93\u001c\u0013D", - "origin": [ - 361.4000244140625, - 480.45001220703125 - ], - "bbox": [ - 361.4000244140625, - 473.95001220703125, - 383.70001220703125, - 491.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "°ÓZÛcÒ\u001dÛcÔÖÓcÛcÔÖÕQÒrÑ­Ù�×gÕ1Ü8ÒrØ8ÔÖÕQÓQé-ÔÖØ\u000fÛcÜu×", - "origin": [ - 383.70001220703125, - 480.45001220703125 - ], - "bbox": [ - 383.70001220703125, - 473.95001220703125, - 519.7999267578125, - 492.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 361.4000244140625, - 473.95001220703125, - 519.7999267578125, - 492.8500061035156 - ] - } - ] - }, - { - "number": 171, - "type": 0, - "bbox": [ - 71.10000610351562, - 480.5500183105469, - 126.20001220703125, - 515.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=ÝrÞGÙ", - "origin": [ - 71.10000610351562, - 493.45001220703125 - ], - "bbox": [ - 71.10000610351562, - 486.95001220703125, - 84.30001068115234, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 486.95001220703125, - 84.30001068115234, - 505.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ", - "origin": [ - 98.50000762939453, - 493.45001220703125 - ], - "bbox": [ - 98.50000762939453, - 486.95001220703125, - 103.90000915527344, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.50000762939453, - 486.95001220703125, - 103.90000915527344, - 505.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 112.50000762939453, - 493.45001220703125 - ], - "bbox": [ - 112.50000762939453, - 480.5500183105469, - 112.50000762939453, - 515.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 112.50000762939453, - 493.45001220703125 - ], - "bbox": [ - 112.50000762939453, - 486.95001220703125, - 126.20001220703125, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.50000762939453, - 480.5500183105469, - 126.20001220703125, - 515.25 - ] - } - ] - }, - { - "number": 173, - "type": 0, - "bbox": [ - 134.90000915527344, - 480.5500183105469, - 178.39999389648438, - 515.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 134.90000915527344, - 493.45001220703125 - ], - "bbox": [ - 134.90000915527344, - 486.95001220703125, - 134.90000915527344, - 505.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 134.90000915527344, - 493.45001220703125 - ], - "bbox": [ - 134.90000915527344, - 486.45001220703125, - 140.40000915527344, - 504.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ÝrÞ", - "origin": [ - 140.40000915527344, - 493.45001220703125 - ], - "bbox": [ - 140.40000915527344, - 486.95001220703125, - 155.0, - 505.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\"!", - "origin": [ - 155.0, - 493.45001220703125 - ], - "bbox": [ - 155.0, - 480.5500183105469, - 164.6999969482422, - 515.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 164.6999969482422, - 493.45001220703125 - ], - "bbox": [ - 164.6999969482422, - 486.95001220703125, - 178.39999389648438, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.90000915527344, - 480.5500183105469, - 178.39999389648438, - 515.25 - ] - } - ] - }, - { - "number": 175, - "type": 0, - "bbox": [ - 187.50001525878906, - 486.45001220703125, - 522.2000122070312, - 505.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îQü", - "origin": [ - 187.50001525878906, - 493.45001220703125 - ], - "bbox": [ - 187.50001525878906, - 486.95001220703125, - 192.30001831054688, - 505.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 192.30001831054688, - 493.45001220703125 - ], - "bbox": [ - 192.30001831054688, - 486.45001220703125, - 197.9000244140625, - 504.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é“ÔÖÓ", - "origin": [ - 197.9000244140625, - 493.45001220703125 - ], - "bbox": [ - 197.9000244140625, - 486.95001220703125, - 213.80003356933594, - 505.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "2)�\u001e81%)P&�\u0014 )�\u001eG*,\u001b�)P&\u000f;X\u001c=I�DY\"", - "origin": [ - 213.80003356933594, - 493.45001220703125 - ], - "bbox": [ - 213.80003356933594, - 486.95001220703125, - 297.50006103515625, - 504.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\ræ=ÞcÝ?Ù", - "origin": [ - 297.50006103515625, - 493.45001220703125 - ], - "bbox": [ - 297.50006103515625, - 486.95001220703125, - 320.2000427246094, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.50001525878906, - 486.45001220703125, - 320.2000427246094, - 505.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u000fÕ/ÝrÞcÞc×gÓZåÝ?Ø8è+ÔÖØuç", - "origin": [ - 334.4000244140625, - 493.45001220703125 - ], - "bbox": [ - 334.4000244140625, - 486.95001220703125, - 416.0000305175781, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.4000244140625, - 486.95001220703125, - 416.0000305175781, - 505.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "S#\u001b\u001d\u001c\u0013\u001e\u001f\u0014 \u001b�\u0012", - "origin": [ - 427.20001220703125, - 493.45001220703125 - ], - "bbox": [ - 427.20001220703125, - 486.95001220703125, - 459.1000061035156, - 504.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.20001220703125, - 486.95001220703125, - 459.1000061035156, - 504.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012^\"39�;X\u001c%\u001e\u001d) 9\u000f\u001c\u0013D", - "origin": [ - 473.4000244140625, - 493.45001220703125 - ], - "bbox": [ - 473.4000244140625, - 486.95001220703125, - 522.2000122070312, - 504.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.4000244140625, - 486.95001220703125, - 522.2000122070312, - 504.8500061035156 - ] - } - ] - }, - { - "number": 176, - "type": 0, - "bbox": [ - 71.10000610351562, - 499.8500061035156, - 408.10003662109375, - 518.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ+ؗ×gä©â+Ò\u001dÛcÔwÝ?ذéuà»Ü8ÔlÕGÜ\rڐÝrÛcܗÞc×Qæ=×QÞ^ÛZÝ¥ÛcÜu×\u0019Õ/Ý?تÛcÔÖØVâ8â8Ùöè8×gÓcÕ/ÞGÔwå8ÛcÔÖÝ?ذò", - "origin": [ - 71.10000610351562, - 506.3500061035156 - ], - "bbox": [ - 71.10000610351562, - 499.8500061035156, - 408.10003662109375, - 518.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 499.8500061035156, - 408.10003662109375, - 518.75 - ] - } - ] - }, - { - "number": 178, - "type": 0, - "bbox": [ - 91.50000762939453, - 506.4499816894531, - 236.80001831054688, - 541.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "âuÞcÛcÜ8×QÞGÙ�ÝrÞc×ré©à\"×»ÑÖ×gÒ\u001dÞGØ¥æ=ÞcÝ?Ù", - "origin": [ - 91.50000762939453, - 519.3499755859375 - ], - "bbox": [ - 91.50000762939453, - 512.8499755859375, - 206.70001220703125, - 531.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.50000762939453, - 512.8499755859375, - 206.70001220703125, - 531.75 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 218.80001831054688, - 519.3499755859375 - ], - "bbox": [ - 218.80001831054688, - 506.4499816894531, - 218.80001831054688, - 541.1499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä©ÓQò", - "origin": [ - 218.80001831054688, - 519.3499755859375 - ], - "bbox": [ - 218.80001831054688, - 512.8499755859375, - 236.80001831054688, - 531.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.80001831054688, - 506.4499816894531, - 236.80001831054688, - 541.1499633789062 - ] - } - ] - }, - { - "number": 180, - "type": 0, - "bbox": [ - 245.9000244140625, - 512.3499755859375, - 256.3000183105469, - 531.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îQü", - "origin": [ - 245.9000244140625, - 519.3499755859375 - ], - "bbox": [ - 245.9000244140625, - 512.8499755859375, - 250.7000274658203, - 531.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 250.7000274658203, - 519.3499755859375 - ], - "bbox": [ - 250.7000274658203, - 512.3499755859375, - 256.3000183105469, - 530.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.9000244140625, - 512.3499755859375, - 256.3000183105469, - 531.75 - ] - } - ] - }, - { - "number": 182, - "type": 0, - "bbox": [ - 270.5000305175781, - 512.3499755859375, - 519.0999755859375, - 531.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgï", - "origin": [ - 270.5000305175781, - 519.3499755859375 - ], - "bbox": [ - 270.5000305175781, - 512.8499755859375, - 275.4000244140625, - 531.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 275.4000244140625, - 519.3499755859375 - ], - "bbox": [ - 275.4000244140625, - 512.3499755859375, - 280.9000244140625, - 530.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ÛcÜ+Ò\u001dÛ½æ=ÝrÞ\"ÑÖÒ\u001dÞcçr×QÞ\"è8ÔÖÓZÛcÒrØ8Õ/×gÓgé©Õ/ÝTãr×QÞ1ÔÖØuç\u0019Óc×Qãr×QÞGÒrÑyÑlÔÖØu×gÒ\u001dÞGÔwÛ¯ß", - "origin": [ - 280.9000244140625, - 519.3499755859375 - ], - "bbox": [ - 280.9000244140625, - 512.8499755859375, - 519.0999755859375, - 531.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.5000305175781, - 512.3499755859375, - 519.0999755859375, - 531.75 - ] - } - ] - }, - { - "number": 183, - "type": 0, - "bbox": [ - 71.20002746582031, - 517.3499755859375, - 108.60002899169922, - 544.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gØ8çrÛcÜ8Ó", - "origin": [ - 71.20002746582031, - 532.25 - ], - "bbox": [ - 71.20002746582031, - 525.75, - 101.00003051757812, - 544.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0012\u001b", - "origin": [ - 101.00003051757812, - 532.25 - ], - "bbox": [ - 101.00003051757812, - 517.3499755859375, - 108.60002899169922, - 542.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20002746582031, - 517.3499755859375, - 108.60002899169922, - 544.6500244140625 - ] - } - ] - }, - { - "number": 185, - "type": 0, - "bbox": [ - 119.60002899169922, - 525.75, - 183.40000915527344, - 544.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "éWÛcÜu×\u0016å6ÝrÛZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 119.60002899169922, - 532.25 - ], - "bbox": [ - 119.60002899169922, - 525.75, - 183.40000915527344, - 544.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.60002899169922, - 525.75, - 183.40000915527344, - 544.6500244140625 - ] - } - ] - }, - { - "number": 187, - "type": 0, - "bbox": [ - 194.10003662109375, - 525.25, - 516.300048828125, - 544.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/Ý?Ù¥Ù&âuÛcÒ\u001dÛZÝrÞ", - "origin": [ - 194.10003662109375, - 532.25 - ], - "bbox": [ - 194.10003662109375, - 525.75, - 247.40003967285156, - 544.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.10003662109375, - 525.75, - 247.40003967285156, - 544.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 252.00003051757812, - 532.25 - ], - "bbox": [ - 252.00003051757812, - 525.25, - 252.00003051757812, - 543.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001bÛZ×QÞ1Ù", - "origin": [ - 252.00003051757812, - 532.25 - ], - "bbox": [ - 252.00003051757812, - 525.75, - 273.10003662109375, - 544.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.00003051757812, - 525.25, - 273.10003662109375, - 544.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ¬ÛcÜuדãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ8Ø\u001fÝrå×QÞGÒ\u001dÛZÝrÞ^ÔÖÓ\"ÝrÚ8ÛcÒrÔÖØu×gè\rÒrÓNÒ", - "origin": [ - 285.60003662109375, - 532.25 - ], - "bbox": [ - 285.60003662109375, - 525.75, - 496.5999450683594, - 544.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 285.60003662109375, - 525.75, - 496.5999450683594, - 544.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f\u001b�\u0012", - "origin": [ - 505.9000244140625, - 532.25 - ], - "bbox": [ - 505.9000244140625, - 525.75, - 516.300048828125, - 543.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 505.9000244140625, - 525.75, - 516.300048828125, - 543.6500244140625 - ] - } - ] - }, - { - "number": 188, - "type": 0, - "bbox": [ - 71.9000244140625, - 538.75, - 188.0000457763672, - 557.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010A\f", - "origin": [ - 71.9000244140625, - 545.25 - ], - "bbox": [ - 71.9000244140625, - 538.75, - 76.0000228881836, - 556.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.9000244140625, - 538.75, - 76.0000228881836, - 556.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9#D+\u001c", - "origin": [ - 84.5000228881836, - 545.25 - ], - "bbox": [ - 84.5000228881836, - 538.75, - 92.3000259399414, - 556.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.5000228881836, - 538.75, - 92.3000259399414, - 556.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f&\u000f)>93\u001c\u0013D", - "origin": [ - 97.5000228881836, - 545.25 - ], - "bbox": [ - 97.5000228881836, - 538.75, - 119.8000259399414, - 556.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.5000228881836, - 538.75, - 119.8000259399414, - 556.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9\u000f\u0010\u0013\u001e\u001f\u0014 \u000e')>I\u0018\u001bb\u0014 ) \u0010\u0013\u001e\u001d&", - "origin": [ - 126.60002136230469, - 545.25 - ], - "bbox": [ - 126.60002136230469, - 538.75, - 183.5000457763672, - 556.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 183.5000457763672, - 545.25 - ], - "bbox": [ - 183.5000457763672, - 538.75, - 188.0000457763672, - 557.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.60002136230469, - 538.75, - 188.0000457763672, - 557.6500244140625 - ] - } - ] - }, - { - "number": 190, - "type": 0, - "bbox": [ - 203.30001831054688, - 538.75, - 518.5999755859375, - 557.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÓ\"ÓGâ8٥٥Ò\u001dÛcÔwÝ?Ø\u001fÔÖÓ\u001bØ8Ò\u001dÛcâuÞGÒrѐÔÖØœãWÔw×Qà\u001eÝræ-ÛcÜu×\u0016æ=ÒrÕ/ÛNÛcÜ8Ò\u001dÛ\u0010×gÒrÕ1Ü\rÛZ×QÞGÙöÒrè8è8Ó\u001bÒrØ", - "origin": [ - 203.30001831054688, - 545.25 - ], - "bbox": [ - 203.30001831054688, - 538.75, - 518.5999755859375, - 557.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.30001831054688, - 538.75, - 518.5999755859375, - 557.6500244140625 - ] - } - ] - }, - { - "number": 191, - "type": 0, - "bbox": [ - 71.20001220703125, - 551.25, - 332.79998779296875, - 570.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001då8å+ÞcÝrå8ÞGÔÖÒ\u001dÛZ×¢ÒrÙ�Ý?â8ة۽Ýræ¬×gØu×QÞGçrß�ÛZÝ\u0019ÛcÜu×¢åÝrÛZ×gتÛcÔÖÒrÑ6è8Ô", - "origin": [ - 71.20001220703125, - 558.25 - ], - "bbox": [ - 71.20001220703125, - 551.75, - 298.5999755859375, - 570.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 551.75, - 298.5999755859375, - 570.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 301.5, - 558.25 - ], - "bbox": [ - 301.5, - 551.25, - 301.5, - 569.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×QÞc×gØ8Õ/×", - "origin": [ - 301.5, - 558.25 - ], - "bbox": [ - 301.5, - 551.75, - 332.79998779296875, - 570.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.5, - 551.25, - 332.79998779296875, - 570.6500244140625 - ] - } - ] - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 196, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 198, - "type": 0, - "bbox": [ - 392.8999328613281, - 551.25, - 520.3999633789062, - 570.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 392.8999328613281, - 558.25 - ], - "bbox": [ - 392.8999328613281, - 551.25, - 392.8999328613281, - 569.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1éWà»ÔwÛcÜ Ý?Øu×¢Õ/Ý?Ø©ÛZÞGÔwÚ+â8ÛcÔwÝ?Ø¥å×QÞ", - "origin": [ - 392.8999328613281, - 558.25 - ], - "bbox": [ - 392.8999328613281, - 551.75, - 520.3999633789062, - 570.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 392.8999328613281, - 551.25, - 520.3999633789062, - 570.6500244140625 - ] - } - ] - }, - { - "number": 199, - "type": 0, - "bbox": [ - 71.19992065429688, - 564.6500244140625, - 268.39990234375, - 583.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ÛZ×QÞcã\u001dÒrѐÝTãr×QÞ\u0016à»Ü8ÔÖÕ1Ü\rÛcÜu×;åÝrÛZ×gتÛcÔlÒrѬÔÖÓ^ÑÖÔlØu×gÒ\u001dÞgò", - "origin": [ - 71.19992065429688, - 571.1500244140625 - ], - "bbox": [ - 71.19992065429688, - 564.6500244140625, - 268.39990234375, - 583.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 564.6500244140625, - 268.39990234375, - 583.550048828125 - ] - } - ] - }, - { - "number": 200, - "type": 0, - "bbox": [ - 85.29991912841797, - 577.1500244140625, - 520.4999389648438, - 596.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.29991912841797, - 584.1500244140625 - ], - "bbox": [ - 85.29991912841797, - 577.1500244140625, - 85.29991912841797, - 595.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø", - "origin": [ - 85.29991912841797, - 584.1500244140625 - ], - "bbox": [ - 85.29991912841797, - 577.6500244140625, - 89.29991912841797, - 596.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.29991912841797, - 577.1500244140625, - 89.29991912841797, - 596.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8ÔÖÓµà\u0010Ògßré\u0014à\"×\u000bÝrÚ8ÛcÒrÔl؟ÛcÜu×\u0012ê\u0016ÒrÙ¥ÔÖÑwÛZÝ?Ø", - "origin": [ - 100.99991607666016, - 584.1500244140625 - ], - "bbox": [ - 100.99991607666016, - 577.6500244140625, - 265.09991455078125, - 596.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.99991607666016, - 577.6500244140625, - 265.09991455078125, - 596.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýrå×QÞGÒ\u001dÛZÝrÞ\u000fæ™ÝrÞ�Ò\u001dÞcÚyÔwÛZÞGÒ\u001dÞGÔÖÑÖßÍ×", - "origin": [ - 276.7999267578125, - 584.1500244140625 - ], - "bbox": [ - 276.7999267578125, - 577.6500244140625, - 396.3998718261719, - 596.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 396.3998718261719, - 584.1500244140625 - ], - "bbox": [ - 396.3998718261719, - 577.6500244140625, - 401.0998840332031, - 595.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZ×gØ8èu×gè¬é³å+Ôw×gÕ/×Qà¢ÔÖÓZ×\u000bÑÖÔÖØu×gÒ\u001dÞ", - "origin": [ - 401.0998840332031, - 584.1500244140625 - ], - "bbox": [ - 401.0998840332031, - 577.6500244140625, - 520.4999389648438, - 596.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.7999267578125, - 577.6500244140625, - 520.4999389648438, - 596.550048828125 - ] - } - ] - }, - { - "number": 201, - "type": 0, - "bbox": [ - 71.09992980957031, - 590.5499877929688, - 118.49993133544922, - 609.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "åÝrÛZ×gØ©ÛcÔÖÒrÑÖÓ", - "origin": [ - 71.09992980957031, - 597.0499877929688 - ], - "bbox": [ - 71.09992980957031, - 590.5499877929688, - 113.6999282836914, - 609.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017", - "origin": [ - 113.6999282836914, - 597.0499877929688 - ], - "bbox": [ - 113.6999282836914, - 590.5499877929688, - 118.49993133544922, - 608.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09992980957031, - 590.5499877929688, - 118.49993133544922, - 609.4500122070312 - ] - } - ] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 323.20001220703125, - 599.25, - 326.6000061035156, - 625.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 323.20001220703125, - 614.1500244140625 - ], - "bbox": [ - 323.20001220703125, - 607.1500244140625, - 323.20001220703125, - 625.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 323.20001220703125, - 614.1500244140625 - ], - "bbox": [ - 323.20001220703125, - 599.25, - 326.6000061035156, - 624.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.20001220703125, - 599.25, - 326.6000061035156, - 625.550048828125 - ] - } - ] - }, - { - "number": 213, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 214, - "type": 0, - "bbox": [ - 510.1000061035156, - 607.6500244140625, - 520.5, - 627.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgð", - "origin": [ - 510.1000061035156, - 614.6500244140625 - ], - "bbox": [ - 510.1000061035156, - 608.1500244140625, - 515.0, - 627.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0, - 614.6500244140625 - ], - "bbox": [ - 515.0, - 607.6500244140625, - 520.5, - 626.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1000061035156, - 607.6500244140625, - 520.5, - 627.050048828125 - ] - } - ] - }, - { - "number": 215, - "type": 0, - "bbox": [ - 71.20001220703125, - 629.4500122070312, - 522.199951171875, - 648.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØœÛcÜu×;Õ/ÝVÝrÞGè8ÔÖØ8Ò\u001dÛZדÞc×Qå+Þc×gÓZ×gØ©ÛcÒ\u001dÛcÔwÝ?ذé8ÒrØ8è\u001fÞc×gÒrè8ÔlÑwß ÔÖØuæ=×QÞ\u001bÛcÜu×;ãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ8Ø\u001f×gäVâ8Ò\u001dÛcÔwÝ?ؗÔÖØ\u001fÝrå×QÞGÒ\u001dÛZÝrÞNæ=ÝrÞGÙ", - "origin": [ - 71.20001220703125, - 635.9500122070312 - ], - "bbox": [ - 71.20001220703125, - 629.4500122070312, - 512.5999755859375, - 648.3500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u000b\u0017", - "origin": [ - 512.5999755859375, - 635.9500122070312 - ], - "bbox": [ - 512.5999755859375, - 629.4500122070312, - 522.199951171875, - 647.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 629.4500122070312, - 522.199951171875, - 648.3500366210938 - ] - } - ] - }, - { - "number": 216, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 217, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 220, - "type": 0, - "bbox": [ - 301.6999816894531, - 645.5499877929688, - 307.6999816894531, - 680.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "í", - "origin": [ - 301.6999816894531, - 658.4500122070312 - ], - "bbox": [ - 301.6999816894531, - 651.9500122070312, - 301.6999816894531, - 670.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001d4", - "origin": [ - 301.6999816894531, - 658.4500122070312 - ], - "bbox": [ - 301.6999816894531, - 645.5499877929688, - 307.6999816894531, - 680.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.6999816894531, - 645.5499877929688, - 307.6999816894531, - 680.25 - ] - } - ] - }, - { - "number": 223, - "type": 0, - "bbox": [ - 318.89996337890625, - 645.5499877929688, - 325.199951171875, - 680.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 318.89996337890625, - 658.4500122070312 - ], - "bbox": [ - 318.89996337890625, - 645.5499877929688, - 318.89996337890625, - 680.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yñ", - "origin": [ - 318.89996337890625, - 658.4500122070312 - ], - "bbox": [ - 318.89996337890625, - 651.9500122070312, - 325.199951171875, - 670.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.89996337890625, - 645.5499877929688, - 325.199951171875, - 680.25 - ] - } - ] - }, - { - "number": 225, - "type": 0, - "bbox": [ - 510.0999755859375, - 651.4500122070312, - 520.5, - 670.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î/ô", - "origin": [ - 510.0999755859375, - 658.4500122070312 - ], - "bbox": [ - 510.0999755859375, - 651.9500122070312, - 514.7999877929688, - 670.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 514.7999877929688, - 658.4500122070312 - ], - "bbox": [ - 514.7999877929688, - 651.4500122070312, - 520.5, - 669.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.0999755859375, - 651.4500122070312, - 520.5, - 670.8500366210938 - ] - } - ] - }, - { - "number": 226, - "type": 0, - "bbox": [ - 71.19998168945312, - 667.8499755859375, - 273.7999572753906, - 702.5499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢ÝTà\u001b×Qãr×QÞgé4æ=Ý?ÑÖÑwÝaà»ÔÖØuç\u001fÛcÜu×�Ò\u001dÞcç?â8Ù¥×gتÛ;æ=ÞcÝ?Ù", - "origin": [ - 71.19998168945312, - 680.75 - ], - "bbox": [ - 71.19998168945312, - 674.25, - 246.90000915527344, - 693.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 674.25, - 246.90000915527344, - 693.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 260.0999755859375, - 680.75 - ], - "bbox": [ - 260.0999755859375, - 667.8499755859375, - 260.0999755859375, - 702.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 260.0999755859375, - 680.75 - ], - "bbox": [ - 260.0999755859375, - 674.25, - 273.7999572753906, - 693.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.0999755859375, - 667.8499755859375, - 273.7999572753906, - 702.5499877929688 - ] - } - ] - }, - { - "number": 228, - "type": 0, - "bbox": [ - 282.8999938964844, - 667.8499755859375, - 329.10003662109375, - 702.5499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îQü", - "origin": [ - 282.8999938964844, - 680.75 - ], - "bbox": [ - 282.8999938964844, - 674.25, - 287.6999816894531, - 693.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 287.6999816894531, - 680.75 - ], - "bbox": [ - 287.6999816894531, - 673.75, - 293.29998779296875, - 692.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016ÛZÝ", - "origin": [ - 293.29998779296875, - 680.75 - ], - "bbox": [ - 293.29998779296875, - 674.25, - 305.70001220703125, - 693.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\"!", - "origin": [ - 305.70001220703125, - 680.75 - ], - "bbox": [ - 305.70001220703125, - 667.8499755859375, - 315.4000244140625, - 702.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 315.4000244140625, - 680.75 - ], - "bbox": [ - 315.4000244140625, - 674.25, - 329.10003662109375, - 693.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.8999938964844, - 667.8499755859375, - 329.10003662109375, - 702.5499877929688 - ] - } - ] - }, - { - "number": 230, - "type": 0, - "bbox": [ - 338.29998779296875, - 673.75, - 520.3999633789062, - 693.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î/ô", - "origin": [ - 338.29998779296875, - 680.75 - ], - "bbox": [ - 338.29998779296875, - 674.25, - 343.0, - 693.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 343.0, - 680.75 - ], - "bbox": [ - 343.0, - 673.75, - 348.70001220703125, - 692.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é-ÛcÜu×QÞc×�ÔÖÓ;Ò\rÓcâuÚ+ÛcÑw×QÛsßµÚ6×gÜ+ÔÖØ8èµÛcÜu×�ÑÖÒrÓZÛ", - "origin": [ - 348.70001220703125, - 680.75 - ], - "bbox": [ - 348.70001220703125, - 674.25, - 520.3999633789062, - 693.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.29998779296875, - 673.75, - 520.3999633789062, - 693.1500244140625 - ] - } - ] - }, - { - "number": 231, - "type": 0, - "bbox": [ - 71.0999755859375, - 687.1500244140625, - 376.1999816894531, - 706.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Û¯à\"Ý¥×gäVâ8Ò\u001dÛcÔwÝ?Ø+Ó^Üu×QÞc×ré+Õ/Ý?Ø+Õ/×QÞGØ8ÔÖØuç�ÛcÜ8×%Õ/Ý?Ù�åÝ?ÓcÔwÛcÔwÝ?Ø\rÝræ·ÛcÜu×%ÓcÔlÙ�å+ÑÖÔÖÕ/×gÓgò", - "origin": [ - 71.0999755859375, - 693.6500244140625 - ], - "bbox": [ - 71.0999755859375, - 687.1500244140625, - 376.1999816894531, - 706.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 687.1500244140625, - 376.1999816894531, - 706.050048828125 - ] - } - ] - }, - { - "number": 233, - "type": 0, - "bbox": [ - 80.39997100830078, - 700.949951171875, - 90.59996795654297, - 728.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "+", - "origin": [ - 80.39997100830078, - 715.8499755859375 - ], - "bbox": [ - 80.39997100830078, - 700.949951171875, - 80.39997100830078, - 725.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "T•\u0018Y", - "origin": [ - 80.39997100830078, - 715.8499755859375 - ], - "bbox": [ - 80.39997100830078, - 709.3499755859375, - 90.59996795654297, - 728.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.39997100830078, - 700.949951171875, - 90.59996795654297, - 728.25 - ] - } - ] - }, - { - "number": 235, - "type": 0, - "bbox": [ - 102.29997253417969, - 709.3499755859375, - 224.69996643066406, - 728.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "YPReOaXIADSaM]FsEcHJADR1O\u0018X¬K^EP^SaM]hTADEcHJM- ºFJR1K", - "origin": [ - 102.29997253417969, - 715.8499755859375 - ], - "bbox": [ - 102.29997253417969, - 709.3499755859375, - 224.69996643066406, - 728.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.29997253417969, - 709.3499755859375, - 224.69996643066406, - 728.25 - ] - } - ] - }, - { - "number": 237, - "type": 0, - "bbox": [ - 244.19996643066406, - 709.3499755859375, - 520.800048828125, - 728.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M-X’HIFsEGHJMPdG^HJR\u001bE1S\u0018E1CTH°YPR1OgHJALOg•\u0018•aK\u000b”Q•\u001dEGOQHJALHJALMPXyHJR\u001bE\"SaALXIY]FJM]HJM·XIC\u0018E1YPM¯HJADKNM¬›\u001b ºR1F", - "origin": [ - 244.19996643066406, - 715.8499755859375 - ], - "bbox": [ - 244.19996643066406, - 709.3499755859375, - 520.800048828125, - 728.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 244.19996643066406, - 709.3499755859375, - 520.800048828125, - 728.25 - ] - } - ] - }, - { - "number": 238, - "type": 0, - "bbox": [ - 71.09996032714844, - 713.8499755859375, - 368.5999450683594, - 748.5499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M", - "origin": [ - 71.09996032714844, - 726.75 - ], - "bbox": [ - 71.09996032714844, - 720.25, - 71.09996032714844, - 739.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "^]", - "origin": [ - 71.09996032714844, - 726.75 - ], - "bbox": [ - 71.09996032714844, - 713.8499755859375, - 75.09996032714844, - 748.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aE1KNCatDM1`\u0018£Q¢E1CaCaFJR", - "origin": [ - 75.09996032714844, - 726.75 - ], - "bbox": [ - 75.09996032714844, - 720.25, - 141.19996643066406, - 739.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\n]", - "origin": [ - 141.19996643066406, - 726.75 - ], - "bbox": [ - 141.19996643066406, - 713.8499755859375, - 145.39996337890625, - 748.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TADK^EcHJALO\u0018dNEN”Q•\u001dEcFIHJALY½CrRGHJMPOQHJADE1tV£Q¢EN”Q•\u001dEcFIHJADY­M", - "origin": [ - 145.39996337890625, - 726.75 - ], - "bbox": [ - 145.39996337890625, - 720.25, - 315.09991455078125, - 739.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "^]", - "origin": [ - 315.09991455078125, - 726.75 - ], - "bbox": [ - 315.09991455078125, - 713.8499755859375, - 319.09991455078125, - 748.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TCTFJMPXIXIALReO“‘¬AžH", - "origin": [ - 319.09991455078125, - 726.75 - ], - "bbox": [ - 319.09991455078125, - 720.25, - 368.5999450683594, - 739.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09996032714844, - 713.8499755859375, - 368.5999450683594, - 748.5499877929688 - ] - } - ] - }, - { - "number": 240, - "type": 0, - "bbox": [ - 380.6999816894531, - 720.25, - 427.70001220703125, - 739.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "XI•\u0018CaCrR1FIH4ReO\u0016H", - "origin": [ - 380.6999816894531, - 726.75 - ], - "bbox": [ - 380.6999816894531, - 720.25, - 427.70001220703125, - 739.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.6999816894531, - 720.25, - 427.70001220703125, - 739.1500244140625 - ] - } - ] - }, - { - "number": 242, - "type": 0, - "bbox": [ - 436.5, - 720.25, - 522.0000610351562, - 739.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M­MPtLMPKNMPOQHJX¬R1 +E\u0010YZEG•\u0018XJE1t", - "origin": [ - 436.5, - 726.75 - ], - "bbox": [ - 436.5, - 720.25, - 522.0000610351562, - 739.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 436.5, - 720.25, - 522.0000610351562, - 739.1500244140625 - ] - } - ] - }, - { - "number": 243, - "type": 0, - "bbox": [ - 71.10000610351562, - 722.75, - 429.5000305175781, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "XIM]HZš8j™HXIMPMPKNX°E½heEGtD•\u0018E1£atDMBE1tžHJM]FJO\u0018EGHJALh/MBHJR\"tDRQR", - "origin": [ - 71.10000610351562, - 737.6500244140625 - ], - "bbox": [ - 71.10000610351562, - 731.1500244140625, - 232.79998779296875, - 750.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "7)", - "origin": [ - 232.79998779296875, - 737.6500244140625 - ], - "bbox": [ - 232.79998779296875, - 722.75, - 237.29998779296875, - 747.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N ¸R1F4E½KNRgSaMPtrRG WK^EcHIHJM]F¬SaM]d1FJMPMPX°RG V ´FJMPMZSaR1K\u0012E1O\u0018S^H", - "origin": [ - 237.29998779296875, - 737.6500244140625 - ], - "bbox": [ - 237.29998779296875, - 731.1500244140625, - 429.5000305175781, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 722.75, - 429.5000305175781, - 750.050048828125 - ] - } - ] - }, - { - "number": 245, - "type": 0, - "bbox": [ - 438.3000183105469, - 731.1500244140625, - 501.2000427246094, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPAžF¬ALOgHJM¯FsE1Y]HJALReOaX‘", - "origin": [ - 438.3000183105469, - 737.6500244140625 - ], - "bbox": [ - 438.3000183105469, - 731.1500244140625, - 501.2000427246094, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.3000183105469, - 731.1500244140625, - 501.2000427246094, - 750.050048828125 - ] - } - ] - }, - { - "number": 247, - "type": 0, - "bbox": [ - 513.1000366210938, - 731.1500244140625, - 515.6000366210938, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALY", - "origin": [ - 513.1000366210938, - 737.6500244140625 - ], - "bbox": [ - 513.1000366210938, - 731.1500244140625, - 515.6000366210938, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 513.1000366210938, - 731.1500244140625, - 515.6000366210938, - 750.050048828125 - ] - } - ] - }, - { - "number": 249, - "type": 0, - "bbox": [ - 71.10000610351562, - 733.75, - 433.5, - 761.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX6 ¸RGFJK\u001b•\u0018tDEcHJMZS»ALO^HJM]FJKNX6ALOaO\u001dEGHJM4HJR\u001bE½YZE1•aXJE1t?XIM]HZ`aE1Xy wEGF4EGX°CrReXIXIAL£\u0018tLMešyU\u0018RGF ºFJM]M·C\u001dEcFIHJADY]tDM]XP`T‘6R1F", - "origin": [ - 71.10000610351562, - 748.6500244140625 - ], - "bbox": [ - 71.10000610351562, - 742.1500244140625, - 411.6000061035156, - 761.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 411.6000061035156, - 748.6500244140625 - ], - "bbox": [ - 411.6000061035156, - 733.75, - 415.3000183105469, - 758.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "^ALONH", - "origin": [ - 415.3000183105469, - 748.6500244140625 - ], - "bbox": [ - 415.3000183105469, - 742.1500244140625, - 433.5, - 761.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 733.75, - 433.5, - 761.050048828125 - ] - } - ] - }, - { - "number": 251, - "type": 0, - "bbox": [ - 442.4000244140625, - 742.1500244140625, - 481.6000671386719, - 761.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX¬SaAžFJMPY]HJALR1O", - "origin": [ - 442.4000244140625, - 748.6500244140625 - ], - "bbox": [ - 442.4000244140625, - 742.1500244140625, - 481.6000671386719, - 761.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 442.4000244140625, - 742.1500244140625, - 481.6000671386719, - 761.050048828125 - ] - } - ] - }, - { - "number": 253, - "type": 0, - "bbox": [ - 494.9000244140625, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1X£rMPM]O", - "origin": [ - 494.9000244140625, - 748.6500244140625 - ], - "bbox": [ - 494.9000244140625, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 494.9000244140625, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ] - } - ] - }, - { - "number": 254, - "type": 0, - "bbox": [ - 71.00003051757812, - 752.6500244140625, - 153.10003662109375, - 772.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "FJMPCrR1FIHJMPS¢ALO", - "origin": [ - 71.00003051757812, - 759.6500244140625 - ], - "bbox": [ - 71.00003051757812, - 753.1500244140625, - 110.70001983642578, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.00003051757812, - 753.1500244140625, - 110.70001983642578, - 772.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 119.00003051757812, - 759.6500244140625 - ], - "bbox": [ - 119.00003051757812, - 752.6500244140625, - 119.00003051757812, - 771.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4M] =š", - "origin": [ - 119.00003051757812, - 759.6500244140625 - ], - "bbox": [ - 119.00003051757812, - 753.1500244140625, - 133.2000274658203, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+=", - "origin": [ - 133.2000274658203, - 759.6500244140625 - ], - "bbox": [ - 133.2000274658203, - 752.6500244140625, - 138.9000244140625, - 771.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.00003051757812, - 752.6500244140625, - 138.9000244140625, - 772.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "peq", - "origin": [ - 141.00003051757812, - 759.6500244140625 - ], - "bbox": [ - 141.00003051757812, - 753.1500244140625, - 145.60003662109375, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 145.60003662109375, - 759.6500244140625 - ], - "bbox": [ - 145.60003662109375, - 752.6500244140625, - 150.00003051757812, - 771.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "֚", - "origin": [ - 150.00003051757812, - 759.6500244140625 - ], - "bbox": [ - 150.00003051757812, - 753.1500244140625, - 153.10003662109375, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.00003051757812, - 752.6500244140625, - 153.10003662109375, - 772.050048828125 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [ - { - "bbox": [ - 148.39967767929087, - 236.808547008547, - 447.6003223207091, - 264.1880341880342 - ], - "image_path": "equation_interline/5_148_236_447_264.jpg" - }, - { - "bbox": [ - 164.72844480257857, - 321.8290598290598, - 432.71232876712327, - 353.05128205128204 - ], - "image_path": "equation_interline/5_164_321_432_353.jpg" - }, - { - "bbox": [ - 129.6696212731668, - 401.565811965812, - 465.85012087026587, - 432.3076923076923 - ], - "image_path": "equation_interline/5_129_401_465_432.jpg" - }, - { - "bbox": [ - 247.81305398871876, - 605.2307692307692, - 348.1869460112812, - 631.6495726495726 - ], - "image_path": "equation_interline/5_247_605_348_631.jpg" - }, - { - "bbox": [ - 256.93795326349715, - 653.2649572649573, - 340.02256244963735, - 671.0376068376069 - ], - "image_path": "equation_interline/5_256_653_340_671.jpg" - } - ], - "inline_equations": [ - { - "bbox": [ - 460.0870265914585, - 157.55213675213676, - 467.77115229653504, - 164.27692307692308 - ], - "image_path": "equations_inline/5_460_157_467_164.jpg" - }, - { - "bbox": [ - 456.7252215954875, - 180.1282051282051, - 497.54713940370664, - 192.13675213675214 - ], - "image_path": "equations_inline/5_456_180_497_192.jpg" - }, - { - "bbox": [ - 113.34085414987912, - 180.608547008547, - 125.82755842062852, - 192.13675213675214 - ], - "image_path": "equations_inline/5_113_180_125_192.jpg" - }, - { - "bbox": [ - 369.798549556809, - 205.1059829059829, - 392.85092667203867, - 216.634188034188 - ], - "image_path": "equations_inline/5_369_205_392_216.jpg" - }, - { - "bbox": [ - 101.33440773569701, - 272.834188034188, - 158.48509266720384, - 288.68547008547006 - ], - "image_path": "equations_inline/5_101_272_158_288.jpg" - }, - { - "bbox": [ - 187.30056406124092, - 275.2358974358974, - 198.34649476228847, - 284.84273504273506 - ], - "image_path": "equations_inline/5_187_275_198_284.jpg" - }, - { - "bbox": [ - 263.18130539887187, - 300.69401709401706, - 273.74697824335215, - 312.7025641025641 - ], - "image_path": "equations_inline/5_263_300_273_312.jpg" - }, - { - "bbox": [ - 227.16196615632552, - 440.47350427350426, - 251.17485898468976, - 453.9230769230769 - ], - "image_path": "equations_inline/5_227_440_251_453.jpg" - }, - { - "bbox": [ - 420.70588235294116, - 453.442735042735, - 499.9484286865431, - 466.89230769230767 - ], - "image_path": "equations_inline/5_420_453_499_466.jpg" - }, - { - "bbox": [ - 256.4576954069299, - 454.4034188034188, - 267.9838839645447, - 466.4119658119658 - ], - "image_path": "equations_inline/5_256_454_267_466.jpg" - }, - { - "bbox": [ - 232.44480257856566, - 456.8051282051282, - 242.04995970991135, - 465.9316239316239 - ], - "image_path": "equations_inline/5_232_456_242_465.jpg" - }, - { - "bbox": [ - 103.73569701853343, - 479.86153846153843, - 110.9395648670427, - 490.42905982905984 - ], - "image_path": "equations_inline/5_103_479_110_490.jpg" - }, - { - "bbox": [ - 107.5777598710717, - 532.2188034188034, - 119.58420628525381, - 543.7470085470085 - ], - "image_path": "equations_inline/5_107_532_119_543.jpg" - }, - { - "bbox": [ - 340.02256244963735, - 557.1965811965812, - 397.6535052377115, - 570.6461538461539 - ], - "image_path": "equations_inline/5_340_557_397_570.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 71.9962158203125, - 595.5, - 800.5619506835938 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 71.0999984741211, - 109.54998779296875, - 272.1999816894531, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ãWÔw×Qà»ÔÖØ8ç ÛcÜu×¥ÕQÒrâ8ÓGÒrÑ¡ÓZ×QÛ", - "origin": [ - 71.0999984741211, - 116.04998779296875 - ], - "bbox": [ - 71.0999984741211, - 109.54998779296875, - 172.89999389648438, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "^\u001c", - "origin": [ - 172.89999389648438, - 116.04998779296875 - ], - "bbox": [ - 172.89999389648438, - 109.54998779296875, - 182.0, - 127.44998931884766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999984741211, - 109.54998779296875, - 182.0, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\\)", - "origin": [ - 187.1999969482422, - 116.04998779296875 - ], - "bbox": [ - 187.1999969482422, - 109.54998779296875, - 196.1999969482422, - 127.44998931884766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.1999969482422, - 109.54998779296875, - 196.1999969482422, - 127.44998931884766 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\f", - "origin": [ - 198.3000030517578, - 116.04998779296875 - ], - "bbox": [ - 198.3000030517578, - 109.54998779296875, - 198.3000030517578, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¢çr×gØu×QÞGÒ\u001dÛZ×gè�ÚVßµÒ", - "origin": [ - 198.3000030517578, - 116.04998779296875 - ], - "bbox": [ - 198.3000030517578, - 109.54998779296875, - 272.1999816894531, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.3000030517578, - 109.54998779296875, - 272.1999816894531, - 128.44998168945312 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 288.79998779296875, - 109.04998779296875, - 518.5999755859375, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÔÖÓcÓcÝ?Ø\u000få8ÞcÝWÕ/×gÓcÓQé", - "origin": [ - 288.79998779296875, - 116.04998779296875 - ], - "bbox": [ - 288.79998779296875, - 109.54998779296875, - 356.5999450683594, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.79998779296875, - 109.54998779296875, - 356.5999450683594, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 364.5, - 116.04998779296875 - ], - "bbox": [ - 364.5, - 109.04998779296875, - 364.5, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÓZå8Þ1ÔÖØ", - "origin": [ - 364.5, - 116.04998779296875 - ], - "bbox": [ - 364.5, - 109.54998779296875, - 386.60003662109375, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 386.60003662109375, - 116.04998779296875 - ], - "bbox": [ - 386.60003662109375, - 109.04998779296875, - 392.60003662109375, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÑÖÔÖØuç", - "origin": [ - 392.60003662109375, - 116.04998779296875 - ], - "bbox": [ - 392.60003662109375, - 109.54998779296875, - 410.7000427246094, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011�", - "origin": [ - 410.7000427246094, - 116.04998779296875 - ], - "bbox": [ - 410.7000427246094, - 109.04998779296875, - 416.2000427246094, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥Óc×QÛ;×gÑw×gÙ�×gØ©Ûcӓà»ÔwÛcÜ\u000fÒrØ", - "origin": [ - 416.2000427246094, - 116.04998779296875 - ], - "bbox": [ - 416.2000427246094, - 109.54998779296875, - 518.5999755859375, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.5, - 109.04998779296875, - 518.5999755859375, - 128.44998168945312 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 71.19998168945312, - 122.45001220703125, - 227.19998168945312, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒTãr×QÞGÒ\u001dçr×^èu×gØ8ÓcÔÖÛsß;Ýræ8Ý?Øu×\u001b×gÑw×gÙ�×gØ©ÛBå6×QÞ", - "origin": [ - 71.19998168945312, - 128.95001220703125 - ], - "bbox": [ - 71.19998168945312, - 122.45001220703125, - 227.19998168945312, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 122.45001220703125, - 227.19998168945312, - 141.35000610351562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 241.69998168945312, - 121.95001220703125, - 318.2999572753906, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑlÒrØ8Õ", - "origin": [ - 241.69998168945312, - 128.95001220703125 - ], - "bbox": [ - 241.69998168945312, - 122.45001220703125, - 256.39996337890625, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 256.39996337890625, - 128.95001220703125 - ], - "bbox": [ - 256.39996337890625, - 121.95001220703125, - 260.699951171875, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔÖÒrØ\u0019ãrÝ?ÑÖâ8Ù�×ré", - "origin": [ - 260.699951171875, - 128.95001220703125 - ], - "bbox": [ - 260.699951171875, - 122.45001220703125, - 318.2999572753906, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.69998168945312, - 121.95001220703125, - 318.2999572753906, - 141.35000610351562 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 327.8999938964844, - 114.05001068115234, - 434.6000061035156, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u000f\u0015\u0014\u0017\u0016", - "origin": [ - 327.8999938964844, - 128.95001220703125 - ], - "bbox": [ - 327.8999938964844, - 114.05001068115234, - 337.70001220703125, - 138.95001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "2\u0012", - "origin": [ - 337.70001220703125, - 128.95001220703125 - ], - "bbox": [ - 337.70001220703125, - 121.95001220703125, - 341.1000061035156, - 140.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.8999938964844, - 114.05001068115234, - 341.1000061035156, - 140.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 352.29998779296875, - 128.95001220703125 - ], - "bbox": [ - 352.29998779296875, - 121.95001220703125, - 352.29998779296875, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";æ™ÝrÞB×", - "origin": [ - 352.29998779296875, - 128.95001220703125 - ], - "bbox": [ - 352.29998779296875, - 122.45001220703125, - 376.39996337890625, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 376.39996337890625, - 128.95001220703125 - ], - "bbox": [ - 376.39996337890625, - 122.45001220703125, - 381.0999755859375, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÙ�å+Ñw×ré?ÔÖØ©ÛZÝ", - "origin": [ - 381.0999755859375, - 128.95001220703125 - ], - "bbox": [ - 381.0999755859375, - 122.45001220703125, - 434.6000061035156, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.29998779296875, - 121.95001220703125, - 434.6000061035156, - 141.35000610351562 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 452.6999816894531, - 121.95001220703125, - 522.0999755859375, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 452.6999816894531, - 128.95001220703125 - ], - "bbox": [ - 452.6999816894531, - 122.45001220703125, - 455.79998779296875, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 455.79998779296875, - 128.95001220703125 - ], - "bbox": [ - 455.79998779296875, - 121.95001220703125, - 461.79998779296875, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝaà»Ó", - "origin": [ - 461.79998779296875, - 128.95001220703125 - ], - "bbox": [ - 461.79998779296875, - 122.45001220703125, - 480.29998779296875, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6999816894531, - 121.95001220703125, - 480.29998779296875, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 484.4999694824219, - 128.95001220703125 - ], - "bbox": [ - 484.4999694824219, - 121.95001220703125, - 484.4999694824219, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔ©Ócå+ÒrÕ/×ré", - "origin": [ - 484.4999694824219, - 128.95001220703125 - ], - "bbox": [ - 484.4999694824219, - 122.45001220703125, - 522.0999755859375, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 484.4999694824219, - 121.95001220703125, - 522.0999755859375, - 141.35000610351562 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 71.199951171875, - 135.45001220703125, - 276.1000061035156, - 154.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ôwæ-ÛcÜ8ÔÖÓNÔÖÓ»Õ/Ý?Ø8ÓcÔÖèu×QÞG×gè—ÒrÓNÛcÜu׳Õ/Ý?Ø©ÛcÔÖØVâ8â8ÙöÑÖÔÖÙ ÔwÛQò", - "origin": [ - 71.199951171875, - 141.95001220703125 - ], - "bbox": [ - 71.199951171875, - 135.45001220703125, - 276.1000061035156, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 135.45001220703125, - 276.1000061035156, - 154.35000610351562 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 93.2999496459961, - 147.8499755859375, - 452.5999450683594, - 167.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×", - "origin": [ - 93.2999496459961, - 154.8499755859375 - ], - "bbox": [ - 93.2999496459961, - 148.3499755859375, - 99.2999496459961, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.2999496459961, - 148.3499755859375, - 99.2999496459961, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 107.89994812011719, - 154.8499755859375 - ], - "bbox": [ - 107.89994812011719, - 147.8499755859375, - 107.89994812011719, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒrÓcßVÙ�å+ÛZÝrÛcÔÖÕ­æ=Þc×Q×gèuÝ?Ù", - "origin": [ - 107.89994812011719, - 154.8499755859375 - ], - "bbox": [ - 107.89994812011719, - 148.3499755859375, - 195.9999542236328, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.89994812011719, - 147.8499755859375, - 195.9999542236328, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 205.09994506835938, - 154.8499755859375 - ], - "bbox": [ - 205.09994506835938, - 147.8499755859375, - 205.09994506835938, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "»×", - "origin": [ - 205.09994506835938, - 154.8499755859375 - ], - "bbox": [ - 205.09994506835938, - 148.3499755859375, - 213.09994506835938, - 167.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 213.09994506835938, - 154.8499755859375 - ], - "bbox": [ - 213.09994506835938, - 147.8499755859375, - 217.79994201660156, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6×gÕ/Û¡Ócâ8çrçr×gÓZÛcÓ4ÛZݓÕ/Ý?Ø8ÓcÔlèu×QÞ¬ÛcÜu×", - "origin": [ - 217.79994201660156, - 154.8499755859375 - ], - "bbox": [ - 217.79994201660156, - 148.3499755859375, - 346.4999084472656, - 167.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "B\u0014 \u000e\u000f\u001b\u001f\"E4b\u0010%\u0014.\"�\u001e\u001f\u0014 )>\u001c\u0013D", - "origin": [ - 346.4999084472656, - 154.8499755859375 - ], - "bbox": [ - 346.4999084472656, - 148.3499755859375, - 414.2999267578125, - 166.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aæ=â8Ø+Õ/ÛcÔwÝ?Ø", - "origin": [ - 414.2999267578125, - 154.8499755859375 - ], - "bbox": [ - 414.2999267578125, - 148.3499755859375, - 452.5999450683594, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.09994506835938, - 147.8499755859375, - 452.5999450683594, - 167.24996948242188 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 469.3999328613281, - 148.3499755859375, - 520.2999267578125, - 167.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrÓ", - "origin": [ - 469.3999328613281, - 154.8499755859375 - ], - "bbox": [ - 469.3999328613281, - 148.3499755859375, - 474.7999267578125, - 167.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 469.3999328613281, - 148.3499755859375, - 474.7999267578125, - 167.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "4-)>\"39\u000f\"�:`)�&\u0018\"", - "origin": [ - 481.3999328613281, - 154.8499755859375 - ], - "bbox": [ - 481.3999328613281, - 148.3499755859375, - 520.2999267578125, - 166.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.3999328613281, - 148.3499755859375, - 520.2999267578125, - 166.24996948242188 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 74.49992370605469, - 160.8499755859375, - 518.9999389648438, - 180.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")�\u001e", - "origin": [ - 74.49992370605469, - 167.8499755859375 - ], - "bbox": [ - 74.49992370605469, - 161.3499755859375, - 77.7999267578125, - 179.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.49992370605469, - 161.3499755859375, - 77.7999267578125, - 179.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"$\u001c\u0013\u000e", - "origin": [ - 84.2999267578125, - 167.8499755859375 - ], - "bbox": [ - 84.2999267578125, - 161.3499755859375, - 93.89993286132812, - 179.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eé;à»ÔwÛcÜ", - "origin": [ - 93.89993286132812, - 167.8499755859375 - ], - "bbox": [ - 93.89993286132812, - 161.3499755859375, - 122.19993591308594, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.2999267578125, - 161.3499755859375, - 122.19993591308594, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×7å+Ôw×gÕ/×gÓ", - "origin": [ - 133.4999237060547, - 167.8499755859375 - ], - "bbox": [ - 133.4999237060547, - 161.3499755859375, - 177.89990234375, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.4999237060547, - 161.3499755859375, - 177.89990234375, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 187.2999267578125, - 167.8499755859375 - ], - "bbox": [ - 187.2999267578125, - 160.8499755859375, - 187.2999267578125, - 179.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÍÓGÔÖÙ�å+ÑÖÔlÕ/×gÓ\u001fÔlØ", - "origin": [ - 187.2999267578125, - 167.8499755859375 - ], - "bbox": [ - 187.2999267578125, - 161.3499755859375, - 249.6999053955078, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.2999267578125, - 160.8499755859375, - 249.6999053955078, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8Ôwç?Üu×Qޖè8ÔlÙ�×gØ8ÓcÔwÝ?Ø+Ó", - "origin": [ - 261.09991455078125, - 167.8499755859375 - ], - "bbox": [ - 261.09991455078125, - 161.3499755859375, - 344.49993896484375, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 261.09991455078125, - 161.3499755859375, - 344.49993896484375, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕGÜ8Ò\u001dÞGÒrÕ/ÛZ×QÞ1Ô", - "origin": [ - 364.89990234375, - 167.8499755859375 - ], - "bbox": [ - 364.89990234375, - 161.3499755859375, - 408.69989013671875, - 180.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 408.69989013671875, - 167.8499755859375 - ], - "bbox": [ - 408.69989013671875, - 160.8499755859375, - 411.69989013671875, - 179.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×gèŸÚVß", - "origin": [ - 411.69989013671875, - 167.8499755859375 - ], - "bbox": [ - 411.69989013671875, - 161.3499755859375, - 438.79986572265625, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.89990234375, - 160.8499755859375, - 438.79986572265625, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÜuÝrÞcÛ", - "origin": [ - 450.09991455078125, - 167.8499755859375 - ], - "bbox": [ - 450.09991455078125, - 161.3499755859375, - 470.0998840332031, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 450.09991455078125, - 161.3499755859375, - 470.0998840332031, - 180.24996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 480.9999084472656, - 167.8499755859375 - ], - "bbox": [ - 480.9999084472656, - 160.8499755859375, - 480.9999084472656, - 179.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÑÖÔlØu×gÒ\u001dÞGÔwÛ¯ß", - "origin": [ - 480.9999084472656, - 167.8499755859375 - ], - "bbox": [ - 480.9999084472656, - 161.3499755859375, - 518.9999389648438, - 180.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 480.9999084472656, - 160.8499755859375, - 518.9999389648438, - 180.24996948242188 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 71.19989013671875, - 173.8499755859375, - 105.29989624023438, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gØ8çrÛcÜ8Ó", - "origin": [ - 71.19989013671875, - 180.8499755859375 - ], - "bbox": [ - 71.19989013671875, - 174.3499755859375, - 100.99989318847656, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 100.99989318847656, - 180.8499755859375 - ], - "bbox": [ - 100.99989318847656, - 173.8499755859375, - 105.29989624023438, - 192.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19989013671875, - 173.8499755859375, - 105.29989624023438, - 193.24996948242188 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 141.89988708496094, - 174.3499755859375, - 375.69989013671875, - 209.0499725341797 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×QߖÙ&â8ÓZÛ\u0016ڐ×réÜ8ÝTà\u001b×Qãr×QÞgé¬Ócâ", - "origin": [ - 141.89988708496094, - 180.8499755859375 - ], - "bbox": [ - 141.89988708496094, - 174.3499755859375, - 257.69989013671875, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 257.69989013671875, - 180.8499755859375 - ], - "bbox": [ - 257.69989013671875, - 175.1499786376953, - 263.69989013671875, - 209.0499725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ÕQÔÖ×gتÛcÑwߖÑlÒ\u001dÞcçr×QޓÛcÜ8ÒrØ", - "origin": [ - 263.69989013671875, - 180.8499755859375 - ], - "bbox": [ - 263.69989013671875, - 174.3499755859375, - 355.39984130859375, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.89988708496094, - 174.3499755859375, - 355.39984130859375, - 209.0499725341797 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×", - "origin": [ - 365.39990234375, - 180.8499755859375 - ], - "bbox": [ - 365.39990234375, - 174.3499755859375, - 375.69989013671875, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.39990234375, - 174.3499755859375, - 375.69989013671875, - 193.24996948242188 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 391.9999084472656, - 165.94998168945312, - 457.69989013671875, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 391.9999084472656, - 180.8499755859375 - ], - "bbox": [ - 391.9999084472656, - 174.3499755859375, - 406.59991455078125, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 406.59991455078125, - 180.8499755859375 - ], - "bbox": [ - 406.59991455078125, - 173.8499755859375, - 410.9999084472656, - 192.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "!Ñw×gØuçrÛcܰé", - "origin": [ - 410.9999084472656, - 180.8499755859375 - ], - "bbox": [ - 410.9999084472656, - 174.3499755859375, - 450.9998779296875, - 193.24996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ",\u001b", - "origin": [ - 450.9998779296875, - 180.8499755859375 - ], - "bbox": [ - 450.9998779296875, - 165.94998168945312, - 457.69989013671875, - 190.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.9999084472656, - 165.94998168945312, - 457.69989013671875, - 193.24996948242188 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 462.2999267578125, - 180.84999084472656, - 472.2999267578125, - 214.74998474121094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "��", - "origin": [ - 462.2999267578125, - 186.54998779296875 - ], - "bbox": [ - 462.2999267578125, - 180.84999084472656, - 472.2999267578125, - 214.74998474121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 462.2999267578125, - 180.84999084472656, - 472.2999267578125, - 214.74998474121094 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 483.7999267578125, - 165.94998168945312, - 518.5999145507812, - 193.24996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u000f\u0015\u0014\u0017\u0016", - "origin": [ - 483.7999267578125, - 180.8499755859375 - ], - "bbox": [ - 483.7999267578125, - 165.94998168945312, - 493.5999450683594, - 190.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "’é°Ócâ8Õ1Ü", - "origin": [ - 493.5999450683594, - 180.8499755859375 - ], - "bbox": [ - 493.5999450683594, - 174.3499755859375, - 518.5999145507812, - 193.24996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.7999267578125, - 165.94998168945312, - 518.5999145507812, - 193.24996948242188 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 71.09991455078125, - 187.14996337890625, - 293.49993896484375, - 221.84996032714844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8Ò\u001dÛ»ÛcÜu×%Õ/Ý?تÛcÔlØ©â8â+Ù", - "origin": [ - 71.09991455078125, - 193.64996337890625 - ], - "bbox": [ - 71.09991455078125, - 187.14996337890625, - 154.89991760253906, - 206.04995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09991455078125, - 187.14996337890625, - 154.89991760253906, - 206.04995727539062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gÓcÕ/ÞGÔÖå8ÛcÔwÝ?Ø\rÔÖÓNÙ�×gÒrØ8ÔlØuçræ=â+ÑIò", - "origin": [ - 167.59991455078125, - 193.64996337890625 - ], - "bbox": [ - 167.59991455078125, - 187.14996337890625, - 287.49993896484375, - 206.04995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 287.49993896484375, - 193.64996337890625 - ], - "bbox": [ - 287.49993896484375, - 187.94996643066406, - 293.49993896484375, - 221.84996032714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.59991455078125, - 187.14996337890625, - 293.49993896484375, - 221.84996032714844 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 96.49990844726562, - 199.64996337890625, - 370.8998718261719, - 234.84996032714844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÛcÜ\u000fÛcÜu×gÓZ×�Þc×gÙ¥Ò\u001dÞ", - "origin": [ - 96.49990844726562, - 206.64996337890625 - ], - "bbox": [ - 96.49990844726562, - 200.14996337890625, - 165.99990844726562, - 219.04995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 165.99990844726562, - 206.64996337890625 - ], - "bbox": [ - 165.99990844726562, - 199.64996337890625, - 170.39990234375, - 218.04995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÓ;ÔÖØ\u000fÙ¥ÔlØ8è°éà\"×�ÞG×gÕ/Ý?Ø8ÓcÔÖèu×QޓÛcÜu×�æ=ÝrÞGÕ/×�ÛZ×QÞGÙ", - "origin": [ - 170.39990234375, - 206.64996337890625 - ], - "bbox": [ - 170.39990234375, - 200.14996337890625, - 357.4998779296875, - 219.04995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 357.4998779296875, - 206.64996337890625 - ], - "bbox": [ - 357.4998779296875, - 200.94996643066406, - 370.8998718261719, - 234.84996032714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.49990844726562, - 199.64996337890625, - 370.8998718261719, - 234.84996032714844 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 395.6999206542969, - 193.74990844726562, - 422.59991455078125, - 228.4499053955078 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 395.6999206542969, - 206.64990234375 - ], - "bbox": [ - 395.6999206542969, - 200.14990234375, - 398.7999267578125, - 219.04989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.6999206542969, - 200.14990234375, - 398.7999267578125, - 219.04989624023438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 408.8999328613281, - 206.64990234375 - ], - "bbox": [ - 408.8999328613281, - 193.74990844726562, - 408.8999328613281, - 228.4499053955078 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 408.8999328613281, - 206.64990234375 - ], - "bbox": [ - 408.8999328613281, - 200.14990234375, - 422.59991455078125, - 219.04989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 408.8999328613281, - 193.74990844726562, - 422.59991455078125, - 228.4499053955078 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 431.2999267578125, - 199.64990234375, - 441.2999267578125, - 219.04989624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 431.2999267578125, - 206.64990234375 - ], - "bbox": [ - 431.2999267578125, - 200.14990234375, - 431.2999267578125, - 219.04989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 431.2999267578125, - 206.64990234375 - ], - "bbox": [ - 431.2999267578125, - 199.64990234375, - 436.7999267578125, - 218.04989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 436.7999267578125, - 206.64990234375 - ], - "bbox": [ - 436.7999267578125, - 200.14990234375, - 441.2999267578125, - 219.04989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 431.2999267578125, - 199.64990234375, - 441.2999267578125, - 219.04989624023438 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 460.3999328613281, - 200.14990234375, - 520.4998779296875, - 219.04989624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×�Þc×Qà^Þ1ÔwÛZ×\u0014ÛcÜ8ÔÖÓ", - "origin": [ - 460.3999328613281, - 206.64990234375 - ], - "bbox": [ - 460.3999328613281, - 200.14990234375, - 520.4998779296875, - 219.04989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 460.3999328613281, - 200.14990234375, - 520.4998779296875, - 219.04989624023438 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 71.09991455078125, - 213.0499267578125, - 403.9998779296875, - 231.94992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gäVâ8Ò\u001dÛcÔwÝ?ذé8Òrè+Ù¥ÔwÛZÛcÔÖØuç�Ù�ÝrÞG×%ÛcÜ8ÒrؗÝ?Øu×\u0019ÓZå+Ò\u001dÛcÔÖÒrѰè8ÔlÙ�×gØ8ÓcÔwÝ?جéVÙ�ÝrÞG׳ÓcÔÖÙ�åyÑwߥÒrÓ", - "origin": [ - 71.09991455078125, - 219.5499267578125 - ], - "bbox": [ - 71.09991455078125, - 213.0499267578125, - 399.19989013671875, - 231.94992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017", - "origin": [ - 399.19989013671875, - 219.5499267578125 - ], - "bbox": [ - 399.19989013671875, - 213.0499267578125, - 403.9998779296875, - 230.94992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09991455078125, - 213.0499267578125, - 403.9998779296875, - 231.94992065429688 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 154.19992065429688, - 238.74990844726562, - 159.7999267578125, - 273.44989013671875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0013\u000e", - "origin": [ - 154.19992065429688, - 251.64990234375 - ], - "bbox": [ - 154.19992065429688, - 238.74990844726562, - 159.7999267578125, - 273.44989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.19992065429688, - 238.74990844726562, - 159.7999267578125, - 273.44989013671875 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 195.69992065429688, - 233.54989624023438, - 199.89991760253906, - 268.2498779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�\n�", - "origin": [ - 195.69992065429688, - 246.44989013671875 - ], - "bbox": [ - 195.69992065429688, - 233.54989624023438, - 199.89991760253906, - 268.2498779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.69992065429688, - 233.54989624023438, - 199.89991760253906, - 268.2498779296875 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 204.09991455078125, - 239.94989013671875, - 234.79991149902344, - 275.349853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012\u000e6", - "origin": [ - 204.09991455078125, - 246.94989013671875 - ], - "bbox": [ - 204.09991455078125, - 239.94989013671875, - 211.29991149902344, - 258.3498840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 204.09991455078125, - 239.94989013671875, - 211.29991149902344, - 258.3498840332031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 225.6999053955078, - 247.14984130859375 - ], - "bbox": [ - 225.6999053955078, - 240.14984130859375, - 225.6999053955078, - 258.5498352050781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\n�", - "origin": [ - 225.6999053955078, - 247.14984130859375 - ], - "bbox": [ - 225.6999053955078, - 241.44984436035156, - 234.79991149902344, - 275.349853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.6999053955078, - 240.14984130859375, - 234.79991149902344, - 275.349853515625 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 244.49989318847656, - 234.04983520507812, - 257.19989013671875, - 275.14984130859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 244.49989318847656, - 246.9498291015625 - ], - "bbox": [ - 244.49989318847656, - 234.04983520507812, - 244.49989318847656, - 268.74981689453125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+ñ", - "origin": [ - 244.49989318847656, - 246.9498291015625 - ], - "bbox": [ - 244.49989318847656, - 240.4498291015625, - 250.69989013671875, - 259.3498229980469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\f\u000b\u000e\r", - "origin": [ - 250.69989013671875, - 246.9498291015625 - ], - "bbox": [ - 250.69989013671875, - 241.2498321533203, - 257.19989013671875, - 275.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 244.49989318847656, - 234.04983520507812, - 257.19989013671875, - 275.14984130859375 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 266.7998962402344, - 242.04981994628906, - 272.39990234375, - 275.9498291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u000f\u0011\u0010", - "origin": [ - 266.7998962402344, - 247.74981689453125 - ], - "bbox": [ - 266.7998962402344, - 242.04981994628906, - 272.39990234375, - 275.9498291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.7998962402344, - 242.04981994628906, - 272.39990234375, - 275.9498291015625 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 274.2998962402344, - 239.34982299804688, - 277.4999084472656, - 280.4498291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000e", - "origin": [ - 274.2998962402344, - 252.24981689453125 - ], - "bbox": [ - 274.2998962402344, - 239.34982299804688, - 274.2998962402344, - 274.0498046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0012", - "origin": [ - 274.2998962402344, - 252.24981689453125 - ], - "bbox": [ - 274.2998962402344, - 246.54981994628906, - 277.4999084472656, - 280.4498291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.2998962402344, - 239.34982299804688, - 277.4999084472656, - 280.4498291015625 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 333.39990234375, - 240.94985961914062, - 336.59991455078125, - 282.04986572265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0010", - "origin": [ - 333.39990234375, - 253.849853515625 - ], - "bbox": [ - 333.39990234375, - 240.94985961914062, - 333.39990234375, - 275.64984130859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0014", - "origin": [ - 333.39990234375, - 253.849853515625 - ], - "bbox": [ - 333.39990234375, - 248.1498565673828, - 336.59991455078125, - 282.04986572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.39990234375, - 240.94985961914062, - 336.59991455078125, - 282.04986572265625 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 423.8999938964844, - 233.55001831054688, - 428.1000061035156, - 268.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�\n�", - "origin": [ - 423.8999938964844, - 246.45001220703125 - ], - "bbox": [ - 423.8999938964844, - 233.55001831054688, - 428.1000061035156, - 268.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.8999938964844, - 233.55001831054688, - 428.1000061035156, - 268.25 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 510.1000061035156, - 239.95001220703125, - 520.5, - 259.3500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îQü", - "origin": [ - 510.1000061035156, - 246.95001220703125 - ], - "bbox": [ - 510.1000061035156, - 240.45001220703125, - 514.9000244140625, - 259.3500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 514.9000244140625, - 246.95001220703125 - ], - "bbox": [ - 514.9000244140625, - 239.95001220703125, - 520.5, - 258.3500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1000061035156, - 239.95001220703125, - 520.5, - 259.3500061035156 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 71.10000610351562, - 262.3500061035156, - 106.00001525878906, - 297.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×QÞc×", - "origin": [ - 71.10000610351562, - 275.25 - ], - "bbox": [ - 71.10000610351562, - 268.75, - 94.30001068115234, - 287.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u00184", - "origin": [ - 94.30001068115234, - 275.25 - ], - "bbox": [ - 94.30001068115234, - 262.3500061035156, - 106.00001525878906, - 297.04998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 262.3500061035156, - 106.00001525878906, - 297.04998779296875 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 102.30000305175781, - 268.45001220703125, - 111.4000015258789, - 303.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 102.30000305175781, - 275.45001220703125 - ], - "bbox": [ - 102.30000305175781, - 268.45001220703125, - 102.30000305175781, - 286.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\n�", - "origin": [ - 102.30000305175781, - 275.45001220703125 - ], - "bbox": [ - 102.30000305175781, - 269.75, - 111.4000015258789, - 303.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.30000305175781, - 268.45001220703125, - 111.4000015258789, - 303.6500244140625 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 119.60000610351562, - 268.25, - 122.30000305175781, - 286.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 119.60000610351562, - 275.25 - ], - "bbox": [ - 119.60000610351562, - 268.75, - 119.60000610351562, - 286.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 119.60000610351562, - 275.25 - ], - "bbox": [ - 119.60000610351562, - 268.25, - 122.30000305175781, - 286.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.60000610351562, - 268.25, - 122.30000305175781, - 286.6499938964844 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 143.5, - 275.95001220703125, - 148.8000030517578, - 311.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ".", - "origin": [ - 143.5, - 282.95001220703125 - ], - "bbox": [ - 143.5, - 275.95001220703125, - 143.5, - 294.3500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0016\u0015", - "origin": [ - 143.5, - 282.95001220703125 - ], - "bbox": [ - 143.5, - 277.25, - 148.8000030517578, - 311.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 143.5, - 275.95001220703125, - 148.8000030517578, - 311.1500244140625 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 158.39999389648438, - 268.75, - 179.5, - 287.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "é©à»ÔÖÛcÜ", - "origin": [ - 158.39999389648438, - 275.25 - ], - "bbox": [ - 158.39999389648438, - 268.75, - 179.5, - 287.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.39999389648438, - 268.75, - 179.5, - 287.6499938964844 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 200.89999389648438, - 268.25, - 515.5999755859375, - 287.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8×gØuÝrÛcÔÖØuç\u0019ÛcÜu×¢á-Ò\u001då+ÑÖÒrÕQÔÖÒrذéVÔÖØ ÒrØ ÝrÚ©ãWÔwÝ?â8Ó\"çr×gØu×QÞGÒrÑlÔ", - "origin": [ - 200.89999389648438, - 275.25 - ], - "bbox": [ - 200.89999389648438, - 268.75, - 416.4999694824219, - 287.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 416.4999694824219, - 275.25 - ], - "bbox": [ - 416.4999694824219, - 268.25, - 419.4999694824219, - 286.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gÒ\u001dÛcÔwÝ?ذò¡ó¢ÝTà%éWÛcÜu×¢ÛZ×QÞGÙ", - "origin": [ - 419.4999694824219, - 275.25 - ], - "bbox": [ - 419.4999694824219, - 268.75, - 515.5999755859375, - 287.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.89999389648438, - 268.25, - 515.5999755859375, - 287.6499938964844 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 71.19999694824219, - 275.3500061035156, - 506.0999755859375, - 310.04998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ãrÝ?ÑwãWÔÖØuç¥ÛcÜ8×\u0014è8×QÞGÔwã\u001dÒ\u001dÛcÔwãr×\u0019Ýræ\"ÛcÜu×&å6ÝrÛZ×gØ©ÛcÔÖÒrÑ·ÔÖÓ\u0016Þc×gÑÖÒ\u001dÛZ×gè", - "origin": [ - 71.19999694824219, - 288.25 - ], - "bbox": [ - 71.19999694824219, - 281.75, - 304.0999755859375, - 300.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 281.75, - 304.0999755859375, - 300.6499938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ\rÛcÜu×", - "origin": [ - 314.1000061035156, - 288.25 - ], - "bbox": [ - 314.1000061035156, - 281.75, - 338.1000061035156, - 300.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "U:", - "origin": [ - 338.1000061035156, - 288.25 - ], - "bbox": [ - 338.1000061035156, - 281.75, - 347.6000061035156, - 299.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.1000061035156, - 281.75, - 347.6000061035156, - 300.6499938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010\u0013\u001b�D", - "origin": [ - 355.0, - 288.25 - ], - "bbox": [ - 355.0, - 281.75, - 366.1999816894531, - 299.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 355.0, - 281.75, - 366.1999816894531, - 299.6499938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "1", - "origin": [ - 369.20001220703125, - 288.25 - ], - "bbox": [ - 369.20001220703125, - 281.75, - 369.20001220703125, - 299.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")�", - "origin": [ - 369.20001220703125, - 288.25 - ], - "bbox": [ - 369.20001220703125, - 275.3500061035156, - 374.5, - 310.04998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0011I\u000f\"(S#\u001b\u001d\u001c\u0013\u001e\u001f\u0014 \u001b�\u0012", - "origin": [ - 374.5, - 288.25 - ], - "bbox": [ - 374.5, - 281.75, - 424.3000183105469, - 299.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 369.20001220703125, - 275.3500061035156, - 424.3000183105469, - 310.04998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012(\"$9�;�\u001c\u0013\u001e\u001d)>93\u001c\u0013D", - "origin": [ - 437.5, - 288.25 - ], - "bbox": [ - 437.5, - 281.75, - 486.29998779296875, - 299.6499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6ÛZ×QÞGÙ", - "origin": [ - 486.29998779296875, - 288.25 - ], - "bbox": [ - 486.29998779296875, - 281.75, - 506.0999755859375, - 300.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 437.5, - 281.75, - 506.0999755859375, - 300.6499938964844 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 71.10000610351562, - 294.04998779296875, - 255.30003356933594, - 313.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuלåÝrÛZ×gتÛcÔÖÒrÑ\u001bè8Ô", - "origin": [ - 71.10000610351562, - 301.04998779296875 - ], - "bbox": [ - 71.10000610351562, - 294.54998779296875, - 143.80001831054688, - 313.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 294.54998779296875, - 143.80001831054688, - 313.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 146.70001220703125, - 301.04998779296875 - ], - "bbox": [ - 146.70001220703125, - 294.04998779296875, - 146.70001220703125, - 312.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×QÞc×gØ8Õ/לڐ×QÛsà\u001b×Q×gؾåÝ?ÔÖØ©ÛcÓ", - "origin": [ - 146.70001220703125, - 301.04998779296875 - ], - "bbox": [ - 146.70001220703125, - 294.54998779296875, - 255.30003356933594, - 313.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.70001220703125, - 294.04998779296875, - 255.30003356933594, - 313.4499816894531 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 277.1000061035156, - 294.54998779296875, - 288.70001220703125, - 313.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ+è", - "origin": [ - 277.1000061035156, - 301.04998779296875 - ], - "bbox": [ - 277.1000061035156, - 294.54998779296875, - 288.70001220703125, - 313.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.1000061035156, - 294.54998779296875, - 288.70001220703125, - 313.4499816894531 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 318.8999938964844, - 294.54998779296875, - 518.6000366210938, - 313.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrÓ&ÒµÑÖÔlØu×gÒ\u001dÞ\u0019Ù¥Ôlè", - "origin": [ - 318.8999938964844, - 301.04998779296875 - ], - "bbox": [ - 318.8999938964844, - 294.54998779296875, - 386.5, - 313.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 386.5, - 301.04998779296875 - ], - "bbox": [ - 386.5, - 294.54998779296875, - 392.3999938964844, - 312.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JåÝ?ÔÖØªÛ%Ò\u001då+å8ÞcÝ", - "origin": [ - 392.3999938964844, - 301.04998779296875 - ], - "bbox": [ - 392.3999938964844, - 294.54998779296875, - 447.20001220703125, - 313.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#�", - "origin": [ - 447.20001220703125, - 301.04998779296875 - ], - "bbox": [ - 447.20001220703125, - 294.54998779296875, - 452.1000061035156, - 312.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÔÖÙ¥Ò\u001dÛcÔÖÝ?Ø7ÛZÝ\u000fÒrØ", - "origin": [ - 452.1000061035156, - 301.04998779296875 - ], - "bbox": [ - 452.1000061035156, - 294.54998779296875, - 518.6000366210938, - 313.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.8999938964844, - 294.54998779296875, - 518.6000366210938, - 313.4499816894531 - ] - } - ] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 71.19999694824219, - 307.54998779296875, - 107.79999542236328, - 326.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ÛZ×QçrÞGÒrÑ", - "origin": [ - 71.19999694824219, - 314.04998779296875 - ], - "bbox": [ - 71.19999694824219, - 307.54998779296875, - 104.19999694824219, - 326.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ">\u0017", - "origin": [ - 104.19999694824219, - 314.04998779296875 - ], - "bbox": [ - 104.19999694824219, - 307.54998779296875, - 107.79999542236328, - 325.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 307.54998779296875, - 107.79999542236328, - 326.4499816894531 - ] - } - ] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 205.8000030517578, - 327.3499755859375, - 209.0, - 368.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0010", - "origin": [ - 205.8000030517578, - 340.2499694824219 - ], - "bbox": [ - 205.8000030517578, - 327.3499755859375, - 205.8000030517578, - 362.0499572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0014", - "origin": [ - 205.8000030517578, - 340.2499694824219 - ], - "bbox": [ - 205.8000030517578, - 334.5499572753906, - 209.0, - 368.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.8000030517578, - 327.3499755859375, - 209.0, - 368.4499816894531 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 270.29998779296875, - 318.45001220703125, - 284.79998779296875, - 361.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0011", - "origin": [ - 270.29998779296875, - 333.3500061035156 - ], - "bbox": [ - 270.29998779296875, - 318.45001220703125, - 270.29998779296875, - 343.3500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0018\u0017", - "origin": [ - 270.29998779296875, - 333.3500061035156 - ], - "bbox": [ - 270.29998779296875, - 327.6499938964844, - 284.79998779296875, - 361.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.29998779296875, - 318.45001220703125, - 284.79998779296875, - 361.5500183105469 - ] - } - ] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 316.29998779296875, - 327.3500061035156, - 319.5, - 368.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0010", - "origin": [ - 316.29998779296875, - 340.25 - ], - "bbox": [ - 316.29998779296875, - 327.3500061035156, - 316.29998779296875, - 362.04998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0014", - "origin": [ - 316.29998779296875, - 340.25 - ], - "bbox": [ - 316.29998779296875, - 334.54998779296875, - 319.5, - 368.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.29998779296875, - 327.3500061035156, - 319.5, - 368.45001220703125 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 415.8000183105469, - 320.45001220703125, - 426.4000244140625, - 355.1499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 415.8000183105469, - 333.3500061035156 - ], - "bbox": [ - 415.8000183105469, - 326.3500061035156, - 415.8000183105469, - 344.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ";B", - "origin": [ - 415.8000183105469, - 333.3500061035156 - ], - "bbox": [ - 415.8000183105469, - 320.45001220703125, - 426.4000244140625, - 355.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 415.8000183105469, - 320.45001220703125, - 426.4000244140625, - 355.1499938964844 - ] - } - ] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 510.10003662109375, - 326.3500061035156, - 520.5000610351562, - 345.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îrî", - "origin": [ - 510.10003662109375, - 333.3500061035156 - ], - "bbox": [ - 510.10003662109375, - 326.8500061035156, - 515.5000610351562, - 345.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ":\u0012", - "origin": [ - 515.5000610351562, - 333.3500061035156 - ], - "bbox": [ - 515.5000610351562, - 326.3500061035156, - 520.5000610351562, - 344.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.10003662109375, - 326.3500061035156, - 520.5000610351562, - 345.75 - ] - } - ] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 79.10004425048828, - 351.6500244140625, - 486.8999938964844, - 370.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8דÒ\u001då+å8ÞcÝ", - "origin": [ - 79.10004425048828, - 358.1500244140625 - ], - "bbox": [ - 79.10004425048828, - 351.6500244140625, - 115.4000473022461, - 370.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#�", - "origin": [ - 115.4000473022461, - 358.1500244140625 - ], - "bbox": [ - 115.4000473022461, - 351.6500244140625, - 120.300048828125, - 369.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÔÖÙ¥Ò\u001dÛZ׳Þc×gÑÖÒ\u001dÛcÔwÝ?ؗڐ×gÕ/Ý?Ù�×gÓ»Òrؗ×", - "origin": [ - 120.300048828125, - 358.1500244140625 - ], - "bbox": [ - 120.300048828125, - 351.6500244140625, - 255.10006713867188, - 370.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 255.10006713867188, - 358.1500244140625 - ], - "bbox": [ - 255.10006713867188, - 351.6500244140625, - 259.8000793457031, - 369.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÒrÕ/Û¢×gä©â+ÒrÑÖÔwÛsß\rÔÖØ\rÛcÜu×\u0019ÕQÒrÓZ×gÓ»Õ/Ýaãr×QÞc×gè!ÚVß\u001fÝrÚ+ÓZ×QÞcã\u001dÒ\u001dÛcÔwÝ?Ø", - "origin": [ - 259.8000793457031, - 358.1500244140625 - ], - "bbox": [ - 259.8000793457031, - 351.6500244140625, - 486.8999938964844, - 370.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.10004425048828, - 351.6500244140625, - 486.8999938964844, - 370.5500183105469 - ] - } - ] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 501.00006103515625, - 351.1500244140625, - 511.00006103515625, - 370.5500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ú", - "origin": [ - 501.00006103515625, - 358.1500244140625 - ], - "bbox": [ - 501.00006103515625, - 351.6500244140625, - 501.00006103515625, - 370.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 501.00006103515625, - 358.1500244140625 - ], - "bbox": [ - 501.00006103515625, - 351.1500244140625, - 506.50006103515625, - 369.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 506.50006103515625, - 358.1500244140625 - ], - "bbox": [ - 506.50006103515625, - 351.6500244140625, - 511.00006103515625, - 370.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 501.00006103515625, - 351.1500244140625, - 511.00006103515625, - 370.5500183105469 - ] - } - ] - }, - { - "number": 119, - "type": 0, - "bbox": [ - 95.20005798339844, - 364.6500244140625, - 519.9000244140625, - 399.35003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞG× çr×gØu×QÞGÒrÑlÑwßré4ÛcÜuלÔÖØªÛZ×QçrÞ1ÒrÑ", - "origin": [ - 95.20005798339844, - 371.1500244140625 - ], - "bbox": [ - 95.20005798339844, - 364.6500244140625, - 216.1000518798828, - 383.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.20005798339844, - 364.6500244140625, - 216.1000518798828, - 383.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à¢Ü8ÔÖÕGÜ\u000fßWÔw×gÑÖè+Ó", - "origin": [ - 233.20005798339844, - 371.1500244140625 - ], - "bbox": [ - 233.20005798339844, - 364.6500244140625, - 288.1000671386719, - 383.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.20005798339844, - 364.6500244140625, - 288.1000671386719, - 383.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"", - "origin": [ - 297.4000549316406, - 371.1500244140625 - ], - "bbox": [ - 297.4000549316406, - 364.6500244140625, - 297.4000549316406, - 382.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u001a\u0019", - "origin": [ - 297.4000549316406, - 371.1500244140625 - ], - "bbox": [ - 297.4000549316406, - 365.45001220703125, - 301.7000427246094, - 399.35003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "G\u001c,9#\u0014 D", - "origin": [ - 301.7000427246094, - 371.1500244140625 - ], - "bbox": [ - 301.7000427246094, - 364.6500244140625, - 321.300048828125, - 382.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 297.4000549316406, - 364.6500244140625, - 321.300048828125, - 399.35003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "F", - "origin": [ - 324.1000671386719, - 371.1500244140625 - ], - "bbox": [ - 324.1000671386719, - 364.6500244140625, - 324.1000671386719, - 382.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥ÛcÜu× äVâ8ÒrØ©Ûcâ8Ù", - "origin": [ - 324.1000671386719, - 371.1500244140625 - ], - "bbox": [ - 324.1000671386719, - 364.6500244140625, - 386.1000671386719, - 383.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 324.1000671386719, - 364.6500244140625, - 386.1000671386719, - 383.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÒrÑ­ÛZ×QÞGÙ", - "origin": [ - 399.50006103515625, - 371.1500244140625 - ], - "bbox": [ - 399.50006103515625, - 364.6500244140625, - 469.60003662109375, - 383.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.50006103515625, - 364.6500244140625, - 469.60003662109375, - 383.5500183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÒrØ7ڐ×", - "origin": [ - 492.800048828125, - 371.1500244140625 - ], - "bbox": [ - 492.800048828125, - 364.6500244140625, - 519.9000244140625, - 383.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.800048828125, - 364.6500244140625, - 519.9000244140625, - 383.5500183105469 - ] - } - ] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 71.20004272460938, - 377.5500183105469, - 376.2000427246094, - 396.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gÕ/Ý?Ù¥å6Ý?Óc×gè–ÔÖØ©ÛZÝ¥Ò¥Ócâ8Ù", - "origin": [ - 71.20004272460938, - 384.0500183105469 - ], - "bbox": [ - 71.20004272460938, - 377.5500183105469, - 173.80006408691406, - 396.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 377.5500183105469, - 173.80006408691406, - 396.45001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ¡ÔÖØ©ÛZ×QçrÞGÒrÑÖÓ^ÒrÑÖÝ?Øuç¥ÓZÛZÞGÒrÔwç?ܩۻÑÖÔlØu×\u0016Óc×Qç?Ù�×gتÛcÓ", - "origin": [ - 186.300048828125, - 384.0500183105469 - ], - "bbox": [ - 186.300048828125, - 377.5500183105469, - 371.300048828125, - 396.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#\u0017", - "origin": [ - 371.300048828125, - 384.0500183105469 - ], - "bbox": [ - 371.300048828125, - 377.5500183105469, - 376.2000427246094, - 395.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.300048828125, - 377.5500183105469, - 376.2000427246094, - 396.45001220703125 - ] - } - ] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 192.70004272460938, - 403.8500061035156, - 204.300048828125, - 439.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "6", - "origin": [ - 192.70004272460938, - 410.8500061035156 - ], - "bbox": [ - 192.70004272460938, - 403.8500061035156, - 192.70004272460938, - 422.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u001c\u001b", - "origin": [ - 192.70004272460938, - 410.8500061035156 - ], - "bbox": [ - 192.70004272460938, - 405.1499938964844, - 204.300048828125, - 439.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.70004272460938, - 403.8500061035156, - 204.300048828125, - 439.0500183105469 - ] - } - ] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 220.5000457763672, - 405.1499938964844, - 244.5000457763672, - 439.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0017\u001e\u001d \u001f\"!$#", - "origin": [ - 220.5000457763672, - 410.8500061035156 - ], - "bbox": [ - 220.5000457763672, - 405.1499938964844, - 244.5000457763672, - 439.0500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.5000457763672, - 405.1499938964844, - 244.5000457763672, - 439.0500183105469 - ] - } - ] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 263.2000427246094, - 404.85003662109375, - 266.4000549316406, - 445.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0010", - "origin": [ - 263.2000427246094, - 417.7500305175781 - ], - "bbox": [ - 263.2000427246094, - 404.85003662109375, - 263.2000427246094, - 439.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0014", - "origin": [ - 263.2000427246094, - 417.7500305175781 - ], - "bbox": [ - 263.2000427246094, - 412.0500183105469, - 266.4000549316406, - 445.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 263.2000427246094, - 404.85003662109375, - 266.4000549316406, - 445.9500427246094 - ] - } - ] - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 137, - "type": 0, - "bbox": [ - 290.4000549316406, - 403.85003662109375, - 309.4000549316406, - 439.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012\u00146", - "origin": [ - 290.4000549316406, - 410.85003662109375 - ], - "bbox": [ - 290.4000549316406, - 403.85003662109375, - 297.9000549316406, - 422.2500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "%\u001b", - "origin": [ - 297.9000549316406, - 410.85003662109375 - ], - "bbox": [ - 297.9000549316406, - 405.1500244140625, - 309.4000549316406, - 439.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.4000549316406, - 403.85003662109375, - 309.4000549316406, - 439.050048828125 - ] - } - ] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 327.800048828125, - 404.550048828125, - 345.10003662109375, - 439.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",", - "origin": [ - 327.800048828125, - 411.050048828125 - ], - "bbox": [ - 327.800048828125, - 404.550048828125, - 327.800048828125, - 423.4500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "'&)(+*", - "origin": [ - 327.800048828125, - 411.050048828125 - ], - "bbox": [ - 327.800048828125, - 405.35003662109375, - 345.10003662109375, - 439.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.800048828125, - 404.550048828125, - 345.10003662109375, - 439.25006103515625 - ] - } - ] - }, - { - "number": 142, - "type": 0, - "bbox": [ - 363.5000305175781, - 404.550048828125, - 368.60003662109375, - 439.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",", - "origin": [ - 363.5000305175781, - 411.050048828125 - ], - "bbox": [ - 363.5000305175781, - 404.550048828125, - 363.5000305175781, - 423.4500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": ",&", - "origin": [ - 363.5000305175781, - 411.050048828125 - ], - "bbox": [ - 363.5000305175781, - 405.35003662109375, - 368.60003662109375, - 439.25006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.5000305175781, - 404.550048828125, - 368.60003662109375, - 439.25006103515625 - ] - } - ] - }, - { - "number": 144, - "type": 0, - "bbox": [ - 379.60003662109375, - 404.85003662109375, - 382.800048828125, - 445.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0010", - "origin": [ - 379.60003662109375, - 417.7500305175781 - ], - "bbox": [ - 379.60003662109375, - 404.85003662109375, - 379.60003662109375, - 439.5500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0013\u0014", - "origin": [ - 379.60003662109375, - 417.7500305175781 - ], - "bbox": [ - 379.60003662109375, - 412.0500183105469, - 382.800048828125, - 445.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 379.60003662109375, - 404.85003662109375, - 382.800048828125, - 445.9500427246094 - ] - } - ] - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 148, - "type": 0, - "bbox": [ - 432.300048828125, - 397.8500061035156, - 444.60003662109375, - 431.7500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "&)(+*", - "origin": [ - 432.300048828125, - 403.5500183105469 - ], - "bbox": [ - 432.300048828125, - 397.8500061035156, - 444.60003662109375, - 431.7500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.300048828125, - 397.8500061035156, - 444.60003662109375, - 431.7500305175781 - ] - } - ] - }, - { - "number": 151, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 510.1000061035156, - 403.8500061035156, - 520.5, - 423.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgï", - "origin": [ - 510.1000061035156, - 410.8500061035156 - ], - "bbox": [ - 510.1000061035156, - 404.3500061035156, - 515.0, - 423.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0, - 410.8500061035156 - ], - "bbox": [ - 515.0, - 403.8500061035156, - 520.5, - 422.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1000061035156, - 403.8500061035156, - 520.5, - 423.25 - ] - } - ] - }, - { - "number": 153, - "type": 0, - "bbox": [ - 71.20001220703125, - 435.0500183105469, - 220.5000457763672, - 453.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×QÛZ×QÞ1Ù¥ÔÖØu×gè\rÚVß—Ò ÓZ×QÛ¢ÝræBåÝ?ÓcÔÖÛcÔwÝ?Ø8Ó", - "origin": [ - 71.20001220703125, - 441.5500183105469 - ], - "bbox": [ - 71.20001220703125, - 435.0500183105469, - 220.5000457763672, - 453.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 435.0500183105469, - 220.5000457763672, - 453.95001220703125 - ] - } - ] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 233.70001220703125, - 435.2500305175781, - 238.70001220703125, - 469.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",", - "origin": [ - 233.70001220703125, - 441.7500305175781 - ], - "bbox": [ - 233.70001220703125, - 435.2500305175781, - 233.70001220703125, - 454.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "'&", - "origin": [ - 233.70001220703125, - 441.7500305175781 - ], - "bbox": [ - 233.70001220703125, - 436.0500183105469, - 238.70001220703125, - 469.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.70001220703125, - 435.2500305175781, - 238.70001220703125, - 469.9500427246094 - ] - } - ] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 253.80001831054688, - 435.0500183105469, - 521.7000122070312, - 453.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8ÔÖÕ1ܖ٥Ò\u001dÛcÕGܵÛcÜu×%åyÔw×gÕ/×Qà»ÔÖÓZ×%ÑlÔÖØu×gÒ\u001dÞGÔwۯߜÝræ·ÛcÜu×\u0019ÛZÞGâu×%åÝrÛZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 253.80001831054688, - 441.5500183105469 - ], - "bbox": [ - 253.80001831054688, - 435.0500183105469, - 521.7000122070312, - 453.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.80001831054688, - 435.0500183105469, - 521.7000122070312, - 453.95001220703125 - ] - } - ] - }, - { - "number": 157, - "type": 0, - "bbox": [ - 71.10002136230469, - 448.0500183105469, - 221.2000274658203, - 466.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcÜ\rÛcÜu×;å+Ò\u001dÛcܗÝræ¡ÔÖØ©ÛZ×QçrÞGÒ\u001dÛcÔwÝ?ؗæ=ÞcÝ?Ù", - "origin": [ - 71.10002136230469, - 454.5500183105469 - ], - "bbox": [ - 71.10002136230469, - 448.0500183105469, - 221.2000274658203, - 466.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10002136230469, - 448.0500183105469, - 221.2000274658203, - 466.95001220703125 - ] - } - ] - }, - { - "number": 159, - "type": 0, - "bbox": [ - 244.2000274658203, - 448.0500183105469, - 248.4000244140625, - 466.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ", - "origin": [ - 244.2000274658203, - 454.5500183105469 - ], - "bbox": [ - 244.2000274658203, - 448.0500183105469, - 248.4000244140625, - 466.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 244.2000274658203, - 448.0500183105469, - 248.4000244140625, - 466.95001220703125 - ] - } - ] - }, - { - "number": 161, - "type": 0, - "bbox": [ - 267.60003662109375, - 439.6500244140625, - 421.6999816894531, - 466.95001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "é8ÔIòž×ròwé8à»ÔwÛcÜ\rÛcÜ8×%ÑÖÔÖØu×gÒ\u001dÞGÔÖÛsߜÑÖ×gØuçrÛcÜ8ÓQé", - "origin": [ - 267.60003662109375, - 454.5500183105469 - ], - "bbox": [ - 267.60003662109375, - 448.0500183105469, - 415.4999694824219, - 466.95001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆ\u001b", - "origin": [ - 415.4999694824219, - 454.5500183105469 - ], - "bbox": [ - 415.4999694824219, - 439.6500244140625, - 421.6999816894531, - 464.5500183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.60003662109375, - 439.6500244140625, - 421.6999816894531, - 466.95001220703125 - ] - } - ] - }, - { - "number": 163, - "type": 0, - "bbox": [ - 435.4000549316406, - 447.5500183105469, - 447.4000549316406, - 482.7500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "6", - "origin": [ - 435.4000549316406, - 454.5500183105469 - ], - "bbox": [ - 435.4000549316406, - 447.5500183105469, - 435.4000549316406, - 465.95001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": ".-", - "origin": [ - 435.4000549316406, - 454.5500183105469 - ], - "bbox": [ - 435.4000549316406, - 448.8500061035156, - 447.4000549316406, - 482.7500305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.4000549316406, - 447.5500183105469, - 447.4000549316406, - 482.7500305175781 - ] - } - ] - }, - { - "number": 164, - "type": 0, - "bbox": [ - 449.6000671386719, - 448.2500305175781, - 466.9000549316406, - 482.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",", - "origin": [ - 449.6000671386719, - 454.7500305175781 - ], - "bbox": [ - 449.6000671386719, - 448.2500305175781, - 449.6000671386719, - 467.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "'&)(+*", - "origin": [ - 449.6000671386719, - 454.7500305175781 - ], - "bbox": [ - 449.6000671386719, - 449.0500183105469, - 466.9000549316406, - 482.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.6000671386719, - 448.2500305175781, - 466.9000549316406, - 482.9500427246094 - ] - } - ] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 485.300048828125, - 448.2500305175781, - 490.4000549316406, - 482.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",", - "origin": [ - 485.300048828125, - 454.7500305175781 - ], - "bbox": [ - 485.300048828125, - 448.2500305175781, - 485.300048828125, - 467.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": ",&", - "origin": [ - 485.300048828125, - 454.7500305175781 - ], - "bbox": [ - 485.300048828125, - 449.0500183105469, - 490.4000549316406, - 482.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 485.300048828125, - 448.2500305175781, - 490.4000549316406, - 482.9500427246094 - ] - } - ] - }, - { - "number": 167, - "type": 0, - "bbox": [ - 497.10003662109375, - 448.0500183105469, - 499.800048828125, - 482.7500305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "-", - "origin": [ - 497.10003662109375, - 454.5500183105469 - ], - "bbox": [ - 497.10003662109375, - 448.8500061035156, - 497.10003662109375, - 482.7500305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "´ò", - "origin": [ - 497.10003662109375, - 454.5500183105469 - ], - "bbox": [ - 497.10003662109375, - 448.0500183105469, - 499.800048828125, - 466.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 497.10003662109375, - 448.0500183105469, - 499.800048828125, - 482.7500305175781 - ] - } - ] - }, - { - "number": 169, - "type": 0, - "bbox": [ - 95.50001525878906, - 460.45001220703125, - 519.0999755859375, - 479.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×»Õ/Ý?Ø8ÕQÑÖâ+èu×\u0010ÛcÜ8Ò\u001dÛ¡à»ÔwÛcÜ8ÔlØ\u0019ÓcÙ ÒrÑÖÑVãrÝ?ÑÖâ8Ù�×gÓQéªÛcÜu×^ÑÖÔÖØu×gÒ\u001dÞ¡ÓcÔ", - "origin": [ - 95.50001525878906, - 467.45001220703125 - ], - "bbox": [ - 95.50001525878906, - 460.95001220703125, - 328.1000061035156, - 479.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.50001525878906, - 460.95001220703125, - 328.1000061035156, - 479.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001b", - "origin": [ - 331.20001220703125, - 467.45001220703125 - ], - "bbox": [ - 331.20001220703125, - 460.45001220703125, - 331.20001220703125, - 478.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×NÝræyà»Ü+ÔÖÕGÜ\u0014ÔÖÓ¡èu×QÛZ×QÞ1Ù¥ÔÖØu×gè&ÚVß\u0019ÛcÜu×^ÑlÔÖØu×gÒ\u001dÞGÔwÛ¯ß", - "origin": [ - 331.20001220703125, - 467.45001220703125 - ], - "bbox": [ - 331.20001220703125, - 460.95001220703125, - 519.0999755859375, - 479.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.20001220703125, - 460.45001220703125, - 519.0999755859375, - 479.8500061035156 - ] - } - ] - }, - { - "number": 170, - "type": 0, - "bbox": [ - 71.20001220703125, - 465.5500183105469, - 519.7999267578125, - 492.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gØ8çrÛcÜ", - "origin": [ - 71.20001220703125, - 480.45001220703125 - ], - "bbox": [ - 71.20001220703125, - 473.95001220703125, - 94.90001678466797, - 492.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 473.95001220703125, - 94.90001678466797, - 492.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 105.20001220703125, - 480.45001220703125 - ], - "bbox": [ - 105.20001220703125, - 465.5500183105469, - 105.20001220703125, - 490.45001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " Ýræ\u001bÛcÜu×�åÝrÛZ×gØ©ÛcÔÖÒrÑ·ÛcÜu×QÞc×ré-ÛcÜu×¥á4ÔwÝ?â8ãVÔÖÑlÑw׳×gäVâ8Ò\u001dÛcÔwÝ?Ø�Ýræ", - "origin": [ - 105.20001220703125, - 480.45001220703125 - ], - "bbox": [ - 105.20001220703125, - 473.95001220703125, - 340.0, - 492.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.20001220703125, - 465.5500183105469, - 340.0, - 492.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9\u0018D", - "origin": [ - 348.4000244140625, - 480.45001220703125 - ], - "bbox": [ - 348.4000244140625, - 473.95001220703125, - 353.20001220703125, - 491.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.4000244140625, - 473.95001220703125, - 353.20001220703125, - 491.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f&\u000f)>93\u001c\u0013D", - "origin": [ - 361.4000244140625, - 480.45001220703125 - ], - "bbox": [ - 361.4000244140625, - 473.95001220703125, - 383.70001220703125, - 491.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "°ÓZÛcÒ\u001dÛcÔÖÓcÛcÔÖÕQÒrÑ­Ù�×gÕ1Ü8ÒrØ8ÔÖÕQÓQé-ÔÖØ\u000fÛcÜu×", - "origin": [ - 383.70001220703125, - 480.45001220703125 - ], - "bbox": [ - 383.70001220703125, - 473.95001220703125, - 519.7999267578125, - 492.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 361.4000244140625, - 473.95001220703125, - 519.7999267578125, - 492.8500061035156 - ] - } - ] - }, - { - "number": 171, - "type": 0, - "bbox": [ - 71.10000610351562, - 480.5500183105469, - 126.20001220703125, - 515.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=ÝrÞGÙ", - "origin": [ - 71.10000610351562, - 493.45001220703125 - ], - "bbox": [ - 71.10000610351562, - 486.95001220703125, - 84.30001068115234, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 486.95001220703125, - 84.30001068115234, - 505.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ", - "origin": [ - 98.50000762939453, - 493.45001220703125 - ], - "bbox": [ - 98.50000762939453, - 486.95001220703125, - 103.90000915527344, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.50000762939453, - 486.95001220703125, - 103.90000915527344, - 505.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 112.50000762939453, - 493.45001220703125 - ], - "bbox": [ - 112.50000762939453, - 480.5500183105469, - 112.50000762939453, - 515.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 112.50000762939453, - 493.45001220703125 - ], - "bbox": [ - 112.50000762939453, - 486.95001220703125, - 126.20001220703125, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.50000762939453, - 480.5500183105469, - 126.20001220703125, - 515.25 - ] - } - ] - }, - { - "number": 173, - "type": 0, - "bbox": [ - 134.90000915527344, - 480.5500183105469, - 178.39999389648438, - 515.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "÷", - "origin": [ - 134.90000915527344, - 493.45001220703125 - ], - "bbox": [ - 134.90000915527344, - 486.95001220703125, - 134.90000915527344, - 505.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 134.90000915527344, - 493.45001220703125 - ], - "bbox": [ - 134.90000915527344, - 486.45001220703125, - 140.40000915527344, - 504.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ÝrÞ", - "origin": [ - 140.40000915527344, - 493.45001220703125 - ], - "bbox": [ - 140.40000915527344, - 486.95001220703125, - 155.0, - 505.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\"!", - "origin": [ - 155.0, - 493.45001220703125 - ], - "bbox": [ - 155.0, - 480.5500183105469, - 164.6999969482422, - 515.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 164.6999969482422, - 493.45001220703125 - ], - "bbox": [ - 164.6999969482422, - 486.95001220703125, - 178.39999389648438, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.90000915527344, - 480.5500183105469, - 178.39999389648438, - 515.25 - ] - } - ] - }, - { - "number": 175, - "type": 0, - "bbox": [ - 187.50001525878906, - 486.45001220703125, - 522.2000122070312, - 505.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îQü", - "origin": [ - 187.50001525878906, - 493.45001220703125 - ], - "bbox": [ - 187.50001525878906, - 486.95001220703125, - 192.30001831054688, - 505.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 192.30001831054688, - 493.45001220703125 - ], - "bbox": [ - 192.30001831054688, - 486.45001220703125, - 197.9000244140625, - 504.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é“ÔÖÓ", - "origin": [ - 197.9000244140625, - 493.45001220703125 - ], - "bbox": [ - 197.9000244140625, - 486.95001220703125, - 213.80003356933594, - 505.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "2)�\u001e81%)P&�\u0014 )�\u001eG*,\u001b�)P&\u000f;X\u001c=I�DY\"", - "origin": [ - 213.80003356933594, - 493.45001220703125 - ], - "bbox": [ - 213.80003356933594, - 486.95001220703125, - 297.50006103515625, - 504.8500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\ræ=ÞcÝ?Ù", - "origin": [ - 297.50006103515625, - 493.45001220703125 - ], - "bbox": [ - 297.50006103515625, - 486.95001220703125, - 320.2000427246094, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.50001525878906, - 486.45001220703125, - 320.2000427246094, - 505.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u000fÕ/ÝrÞcÞc×gÓZåÝ?Ø8è+ÔÖØuç", - "origin": [ - 334.4000244140625, - 493.45001220703125 - ], - "bbox": [ - 334.4000244140625, - 486.95001220703125, - 416.0000305175781, - 505.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.4000244140625, - 486.95001220703125, - 416.0000305175781, - 505.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "S#\u001b\u001d\u001c\u0013\u001e\u001f\u0014 \u001b�\u0012", - "origin": [ - 427.20001220703125, - 493.45001220703125 - ], - "bbox": [ - 427.20001220703125, - 486.95001220703125, - 459.1000061035156, - 504.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.20001220703125, - 486.95001220703125, - 459.1000061035156, - 504.8500061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012^\"39�;X\u001c%\u001e\u001d) 9\u000f\u001c\u0013D", - "origin": [ - 473.4000244140625, - 493.45001220703125 - ], - "bbox": [ - 473.4000244140625, - 486.95001220703125, - 522.2000122070312, - 504.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.4000244140625, - 486.95001220703125, - 522.2000122070312, - 504.8500061035156 - ] - } - ] - }, - { - "number": 176, - "type": 0, - "bbox": [ - 71.10000610351562, - 499.8500061035156, - 408.10003662109375, - 518.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ+ؗ×gä©â+Ò\u001dÛcÔwÝ?ذéuà»Ü8ÔlÕGÜ\rڐÝrÛcܗÞc×Qæ=×QÞ^ÛZÝ¥ÛcÜu×\u0019Õ/Ý?تÛcÔÖØVâ8â8Ùöè8×gÓcÕ/ÞGÔwå8ÛcÔÖÝ?ذò", - "origin": [ - 71.10000610351562, - 506.3500061035156 - ], - "bbox": [ - 71.10000610351562, - 499.8500061035156, - 408.10003662109375, - 518.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 499.8500061035156, - 408.10003662109375, - 518.75 - ] - } - ] - }, - { - "number": 178, - "type": 0, - "bbox": [ - 91.50000762939453, - 506.4499816894531, - 236.80001831054688, - 541.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "âuÞcÛcÜ8×QÞGÙ�ÝrÞc×ré©à\"×»ÑÖ×gÒ\u001dÞGØ¥æ=ÞcÝ?Ù", - "origin": [ - 91.50000762939453, - 519.3499755859375 - ], - "bbox": [ - 91.50000762939453, - 512.8499755859375, - 206.70001220703125, - 531.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.50000762939453, - 512.8499755859375, - 206.70001220703125, - 531.75 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 218.80001831054688, - 519.3499755859375 - ], - "bbox": [ - 218.80001831054688, - 506.4499816894531, - 218.80001831054688, - 541.1499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä©ÓQò", - "origin": [ - 218.80001831054688, - 519.3499755859375 - ], - "bbox": [ - 218.80001831054688, - 512.8499755859375, - 236.80001831054688, - 531.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.80001831054688, - 506.4499816894531, - 236.80001831054688, - 541.1499633789062 - ] - } - ] - }, - { - "number": 180, - "type": 0, - "bbox": [ - 245.9000244140625, - 512.3499755859375, - 256.3000183105469, - 531.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îQü", - "origin": [ - 245.9000244140625, - 519.3499755859375 - ], - "bbox": [ - 245.9000244140625, - 512.8499755859375, - 250.7000274658203, - 531.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 250.7000274658203, - 519.3499755859375 - ], - "bbox": [ - 250.7000274658203, - 512.3499755859375, - 256.3000183105469, - 530.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.9000244140625, - 512.3499755859375, - 256.3000183105469, - 531.75 - ] - } - ] - }, - { - "number": 182, - "type": 0, - "bbox": [ - 270.5000305175781, - 512.3499755859375, - 519.0999755859375, - 531.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgï", - "origin": [ - 270.5000305175781, - 519.3499755859375 - ], - "bbox": [ - 270.5000305175781, - 512.8499755859375, - 275.4000244140625, - 531.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 275.4000244140625, - 519.3499755859375 - ], - "bbox": [ - 275.4000244140625, - 512.3499755859375, - 280.9000244140625, - 530.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ÛcÜ+Ò\u001dÛ½æ=ÝrÞ\"ÑÖÒ\u001dÞcçr×QÞ\"è8ÔÖÓZÛcÒrØ8Õ/×gÓgé©Õ/ÝTãr×QÞ1ÔÖØuç\u0019Óc×Qãr×QÞGÒrÑyÑlÔÖØu×gÒ\u001dÞGÔwÛ¯ß", - "origin": [ - 280.9000244140625, - 519.3499755859375 - ], - "bbox": [ - 280.9000244140625, - 512.8499755859375, - 519.0999755859375, - 531.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.5000305175781, - 512.3499755859375, - 519.0999755859375, - 531.75 - ] - } - ] - }, - { - "number": 183, - "type": 0, - "bbox": [ - 71.20002746582031, - 517.3499755859375, - 108.60002899169922, - 544.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gØ8çrÛcÜ8Ó", - "origin": [ - 71.20002746582031, - 532.25 - ], - "bbox": [ - 71.20002746582031, - 525.75, - 101.00003051757812, - 544.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0012\u001b", - "origin": [ - 101.00003051757812, - 532.25 - ], - "bbox": [ - 101.00003051757812, - 517.3499755859375, - 108.60002899169922, - 542.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20002746582031, - 517.3499755859375, - 108.60002899169922, - 544.6500244140625 - ] - } - ] - }, - { - "number": 185, - "type": 0, - "bbox": [ - 119.60002899169922, - 525.75, - 183.40000915527344, - 544.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "éWÛcÜu×\u0016å6ÝrÛZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 119.60002899169922, - 532.25 - ], - "bbox": [ - 119.60002899169922, - 525.75, - 183.40000915527344, - 544.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.60002899169922, - 525.75, - 183.40000915527344, - 544.6500244140625 - ] - } - ] - }, - { - "number": 187, - "type": 0, - "bbox": [ - 194.10003662109375, - 525.25, - 516.300048828125, - 544.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/Ý?Ù¥Ù&âuÛcÒ\u001dÛZÝrÞ", - "origin": [ - 194.10003662109375, - 532.25 - ], - "bbox": [ - 194.10003662109375, - 525.75, - 247.40003967285156, - 544.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.10003662109375, - 525.75, - 247.40003967285156, - 544.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 252.00003051757812, - 532.25 - ], - "bbox": [ - 252.00003051757812, - 525.25, - 252.00003051757812, - 543.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001bÛZ×QÞ1Ù", - "origin": [ - 252.00003051757812, - 532.25 - ], - "bbox": [ - 252.00003051757812, - 525.75, - 273.10003662109375, - 544.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.00003051757812, - 525.25, - 273.10003662109375, - 544.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ¬ÛcÜuדãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ8Ø\u001fÝrå×QÞGÒ\u001dÛZÝrÞ^ÔÖÓ\"ÝrÚ8ÛcÒrÔÖØu×gè\rÒrÓNÒ", - "origin": [ - 285.60003662109375, - 532.25 - ], - "bbox": [ - 285.60003662109375, - 525.75, - 496.5999450683594, - 544.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 285.60003662109375, - 525.75, - 496.5999450683594, - 544.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f\u001b�\u0012", - "origin": [ - 505.9000244140625, - 532.25 - ], - "bbox": [ - 505.9000244140625, - 525.75, - 516.300048828125, - 543.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 505.9000244140625, - 525.75, - 516.300048828125, - 543.6500244140625 - ] - } - ] - }, - { - "number": 188, - "type": 0, - "bbox": [ - 71.9000244140625, - 538.75, - 188.0000457763672, - 557.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010A\f", - "origin": [ - 71.9000244140625, - 545.25 - ], - "bbox": [ - 71.9000244140625, - 538.75, - 76.0000228881836, - 556.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.9000244140625, - 538.75, - 76.0000228881836, - 556.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9#D+\u001c", - "origin": [ - 84.5000228881836, - 545.25 - ], - "bbox": [ - 84.5000228881836, - 538.75, - 92.3000259399414, - 556.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.5000228881836, - 538.75, - 92.3000259399414, - 556.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f&\u000f)>93\u001c\u0013D", - "origin": [ - 97.5000228881836, - 545.25 - ], - "bbox": [ - 97.5000228881836, - 538.75, - 119.8000259399414, - 556.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.5000228881836, - 538.75, - 119.8000259399414, - 556.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9\u000f\u0010\u0013\u001e\u001f\u0014 \u000e')>I\u0018\u001bb\u0014 ) \u0010\u0013\u001e\u001d&", - "origin": [ - 126.60002136230469, - 545.25 - ], - "bbox": [ - 126.60002136230469, - 538.75, - 183.5000457763672, - 556.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 183.5000457763672, - 545.25 - ], - "bbox": [ - 183.5000457763672, - 538.75, - 188.0000457763672, - 557.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.60002136230469, - 538.75, - 188.0000457763672, - 557.6500244140625 - ] - } - ] - }, - { - "number": 190, - "type": 0, - "bbox": [ - 203.30001831054688, - 538.75, - 518.5999755859375, - 557.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÓ\"ÓGâ8٥٥Ò\u001dÛcÔwÝ?Ø\u001fÔÖÓ\u001bØ8Ò\u001dÛcâuÞGÒrѐÔÖØœãWÔw×Qà\u001eÝræ-ÛcÜu×\u0016æ=ÒrÕ/ÛNÛcÜ8Ò\u001dÛ\u0010×gÒrÕ1Ü\rÛZ×QÞGÙöÒrè8è8Ó\u001bÒrØ", - "origin": [ - 203.30001831054688, - 545.25 - ], - "bbox": [ - 203.30001831054688, - 538.75, - 518.5999755859375, - 557.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.30001831054688, - 538.75, - 518.5999755859375, - 557.6500244140625 - ] - } - ] - }, - { - "number": 191, - "type": 0, - "bbox": [ - 71.20001220703125, - 551.25, - 332.79998779296875, - 570.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001då8å+ÞcÝrå8ÞGÔÖÒ\u001dÛZ×¢ÒrÙ�Ý?â8ة۽Ýræ¬×gØu×QÞGçrß�ÛZÝ\u0019ÛcÜu×¢åÝrÛZ×gتÛcÔÖÒrÑ6è8Ô", - "origin": [ - 71.20001220703125, - 558.25 - ], - "bbox": [ - 71.20001220703125, - 551.75, - 298.5999755859375, - 570.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 551.75, - 298.5999755859375, - 570.6500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 301.5, - 558.25 - ], - "bbox": [ - 301.5, - 551.25, - 301.5, - 569.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×QÞc×gØ8Õ/×", - "origin": [ - 301.5, - 558.25 - ], - "bbox": [ - 301.5, - 551.75, - 332.79998779296875, - 570.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.5, - 551.25, - 332.79998779296875, - 570.6500244140625 - ] - } - ] - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 196, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 198, - "type": 0, - "bbox": [ - 392.8999328613281, - 551.25, - 520.3999633789062, - 570.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 392.8999328613281, - 558.25 - ], - "bbox": [ - 392.8999328613281, - 551.25, - 392.8999328613281, - 569.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1éWà»ÔwÛcÜ Ý?Øu×¢Õ/Ý?Ø©ÛZÞGÔwÚ+â8ÛcÔwÝ?Ø¥å×QÞ", - "origin": [ - 392.8999328613281, - 558.25 - ], - "bbox": [ - 392.8999328613281, - 551.75, - 520.3999633789062, - 570.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 392.8999328613281, - 551.25, - 520.3999633789062, - 570.6500244140625 - ] - } - ] - }, - { - "number": 199, - "type": 0, - "bbox": [ - 71.19992065429688, - 564.6500244140625, - 268.39990234375, - 583.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ÛZ×QÞcã\u001dÒrѐÝTãr×QÞ\u0016à»Ü8ÔÖÕ1Ü\rÛcÜu×;åÝrÛZ×gتÛcÔlÒrѬÔÖÓ^ÑÖÔlØu×gÒ\u001dÞgò", - "origin": [ - 71.19992065429688, - 571.1500244140625 - ], - "bbox": [ - 71.19992065429688, - 564.6500244140625, - 268.39990234375, - 583.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 564.6500244140625, - 268.39990234375, - 583.550048828125 - ] - } - ] - }, - { - "number": 200, - "type": 0, - "bbox": [ - 85.29991912841797, - 577.1500244140625, - 520.4999389648438, - 596.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.29991912841797, - 584.1500244140625 - ], - "bbox": [ - 85.29991912841797, - 577.1500244140625, - 85.29991912841797, - 595.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø", - "origin": [ - 85.29991912841797, - 584.1500244140625 - ], - "bbox": [ - 85.29991912841797, - 577.6500244140625, - 89.29991912841797, - 596.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.29991912841797, - 577.1500244140625, - 89.29991912841797, - 596.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8ÔÖÓµà\u0010Ògßré\u0014à\"×\u000bÝrÚ8ÛcÒrÔl؟ÛcÜu×\u0012ê\u0016ÒrÙ¥ÔÖÑwÛZÝ?Ø", - "origin": [ - 100.99991607666016, - 584.1500244140625 - ], - "bbox": [ - 100.99991607666016, - 577.6500244140625, - 265.09991455078125, - 596.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.99991607666016, - 577.6500244140625, - 265.09991455078125, - 596.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýrå×QÞGÒ\u001dÛZÝrÞ\u000fæ™ÝrÞ�Ò\u001dÞcÚyÔwÛZÞGÒ\u001dÞGÔÖÑÖßÍ×", - "origin": [ - 276.7999267578125, - 584.1500244140625 - ], - "bbox": [ - 276.7999267578125, - 577.6500244140625, - 396.3998718261719, - 596.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 396.3998718261719, - 584.1500244140625 - ], - "bbox": [ - 396.3998718261719, - 577.6500244140625, - 401.0998840332031, - 595.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZ×gØ8èu×gè¬é³å+Ôw×gÕ/×Qà¢ÔÖÓZ×\u000bÑÖÔÖØu×gÒ\u001dÞ", - "origin": [ - 401.0998840332031, - 584.1500244140625 - ], - "bbox": [ - 401.0998840332031, - 577.6500244140625, - 520.4999389648438, - 596.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.7999267578125, - 577.6500244140625, - 520.4999389648438, - 596.550048828125 - ] - } - ] - }, - { - "number": 201, - "type": 0, - "bbox": [ - 71.09992980957031, - 590.5499877929688, - 118.49993133544922, - 609.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "åÝrÛZ×gØ©ÛcÔÖÒrÑÖÓ", - "origin": [ - 71.09992980957031, - 597.0499877929688 - ], - "bbox": [ - 71.09992980957031, - 590.5499877929688, - 113.6999282836914, - 609.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017", - "origin": [ - 113.6999282836914, - 597.0499877929688 - ], - "bbox": [ - 113.6999282836914, - 590.5499877929688, - 118.49993133544922, - 608.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09992980957031, - 590.5499877929688, - 118.49993133544922, - 609.4500122070312 - ] - } - ] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 323.20001220703125, - 599.25, - 326.6000061035156, - 625.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 323.20001220703125, - 614.1500244140625 - ], - "bbox": [ - 323.20001220703125, - 607.1500244140625, - 323.20001220703125, - 625.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 323.20001220703125, - 614.1500244140625 - ], - "bbox": [ - 323.20001220703125, - 599.25, - 326.6000061035156, - 624.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.20001220703125, - 599.25, - 326.6000061035156, - 625.550048828125 - ] - } - ] - }, - { - "number": 213, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 214, - "type": 0, - "bbox": [ - 510.1000061035156, - 607.6500244140625, - 520.5, - 627.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgð", - "origin": [ - 510.1000061035156, - 614.6500244140625 - ], - "bbox": [ - 510.1000061035156, - 608.1500244140625, - 515.0, - 627.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0, - 614.6500244140625 - ], - "bbox": [ - 515.0, - 607.6500244140625, - 520.5, - 626.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1000061035156, - 607.6500244140625, - 520.5, - 627.050048828125 - ] - } - ] - }, - { - "number": 215, - "type": 0, - "bbox": [ - 71.20001220703125, - 629.4500122070312, - 522.199951171875, - 648.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØœÛcÜu×;Õ/ÝVÝrÞGè8ÔÖØ8Ò\u001dÛZדÞc×Qå+Þc×gÓZ×gØ©ÛcÒ\u001dÛcÔwÝ?ذé8ÒrØ8è\u001fÞc×gÒrè8ÔlÑwß ÔÖØuæ=×QÞ\u001bÛcÜu×;ãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ8Ø\u001f×gäVâ8Ò\u001dÛcÔwÝ?ؗÔÖØ\u001fÝrå×QÞGÒ\u001dÛZÝrÞNæ=ÝrÞGÙ", - "origin": [ - 71.20001220703125, - 635.9500122070312 - ], - "bbox": [ - 71.20001220703125, - 629.4500122070312, - 512.5999755859375, - 648.3500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u000b\u0017", - "origin": [ - 512.5999755859375, - 635.9500122070312 - ], - "bbox": [ - 512.5999755859375, - 629.4500122070312, - 522.199951171875, - 647.3500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 629.4500122070312, - 522.199951171875, - 648.3500366210938 - ] - } - ] - }, - { - "number": 216, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 217, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 220, - "type": 0, - "bbox": [ - 301.6999816894531, - 645.5499877929688, - 307.6999816894531, - 680.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "í", - "origin": [ - 301.6999816894531, - 658.4500122070312 - ], - "bbox": [ - 301.6999816894531, - 651.9500122070312, - 301.6999816894531, - 670.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001d4", - "origin": [ - 301.6999816894531, - 658.4500122070312 - ], - "bbox": [ - 301.6999816894531, - 645.5499877929688, - 307.6999816894531, - 680.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.6999816894531, - 645.5499877929688, - 307.6999816894531, - 680.25 - ] - } - ] - }, - { - "number": 223, - "type": 0, - "bbox": [ - 318.89996337890625, - 645.5499877929688, - 325.199951171875, - 680.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 318.89996337890625, - 658.4500122070312 - ], - "bbox": [ - 318.89996337890625, - 645.5499877929688, - 318.89996337890625, - 680.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yñ", - "origin": [ - 318.89996337890625, - 658.4500122070312 - ], - "bbox": [ - 318.89996337890625, - 651.9500122070312, - 325.199951171875, - 670.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.89996337890625, - 645.5499877929688, - 325.199951171875, - 680.25 - ] - } - ] - }, - { - "number": 225, - "type": 0, - "bbox": [ - 510.0999755859375, - 651.4500122070312, - 520.5, - 670.8500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î/ô", - "origin": [ - 510.0999755859375, - 658.4500122070312 - ], - "bbox": [ - 510.0999755859375, - 651.9500122070312, - 514.7999877929688, - 670.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 514.7999877929688, - 658.4500122070312 - ], - "bbox": [ - 514.7999877929688, - 651.4500122070312, - 520.5, - 669.8500366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.0999755859375, - 651.4500122070312, - 520.5, - 670.8500366210938 - ] - } - ] - }, - { - "number": 226, - "type": 0, - "bbox": [ - 71.19998168945312, - 667.8499755859375, - 273.7999572753906, - 702.5499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢ÝTà\u001b×Qãr×QÞgé4æ=Ý?ÑÖÑwÝaà»ÔÖØuç\u001fÛcÜu×�Ò\u001dÞcç?â8Ù¥×gتÛ;æ=ÞcÝ?Ù", - "origin": [ - 71.19998168945312, - 680.75 - ], - "bbox": [ - 71.19998168945312, - 674.25, - 246.90000915527344, - 693.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 674.25, - 246.90000915527344, - 693.1500244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 260.0999755859375, - 680.75 - ], - "bbox": [ - 260.0999755859375, - 667.8499755859375, - 260.0999755859375, - 702.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 260.0999755859375, - 680.75 - ], - "bbox": [ - 260.0999755859375, - 674.25, - 273.7999572753906, - 693.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.0999755859375, - 667.8499755859375, - 273.7999572753906, - 702.5499877929688 - ] - } - ] - }, - { - "number": 228, - "type": 0, - "bbox": [ - 282.8999938964844, - 667.8499755859375, - 329.10003662109375, - 702.5499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îQü", - "origin": [ - 282.8999938964844, - 680.75 - ], - "bbox": [ - 282.8999938964844, - 674.25, - 287.6999816894531, - 693.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 287.6999816894531, - 680.75 - ], - "bbox": [ - 287.6999816894531, - 673.75, - 293.29998779296875, - 692.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016ÛZÝ", - "origin": [ - 293.29998779296875, - 680.75 - ], - "bbox": [ - 293.29998779296875, - 674.25, - 305.70001220703125, - 693.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\"!", - "origin": [ - 305.70001220703125, - 680.75 - ], - "bbox": [ - 305.70001220703125, - 667.8499755859375, - 315.4000244140625, - 702.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 315.4000244140625, - 680.75 - ], - "bbox": [ - 315.4000244140625, - 674.25, - 329.10003662109375, - 693.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.8999938964844, - 667.8499755859375, - 329.10003662109375, - 702.5499877929688 - ] - } - ] - }, - { - "number": 230, - "type": 0, - "bbox": [ - 338.29998779296875, - 673.75, - 520.3999633789062, - 693.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î/ô", - "origin": [ - 338.29998779296875, - 680.75 - ], - "bbox": [ - 338.29998779296875, - 674.25, - 343.0, - 693.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 343.0, - 680.75 - ], - "bbox": [ - 343.0, - 673.75, - 348.70001220703125, - 692.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é-ÛcÜu×QÞc×�ÔÖÓ;Ò\rÓcâuÚ+ÛcÑw×QÛsßµÚ6×gÜ+ÔÖØ8èµÛcÜu×�ÑÖÒrÓZÛ", - "origin": [ - 348.70001220703125, - 680.75 - ], - "bbox": [ - 348.70001220703125, - 674.25, - 520.3999633789062, - 693.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.29998779296875, - 673.75, - 520.3999633789062, - 693.1500244140625 - ] - } - ] - }, - { - "number": 231, - "type": 0, - "bbox": [ - 71.0999755859375, - 687.1500244140625, - 376.1999816894531, - 706.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Û¯à\"Ý¥×gäVâ8Ò\u001dÛcÔwÝ?Ø+Ó^Üu×QÞc×ré+Õ/Ý?Ø+Õ/×QÞGØ8ÔÖØuç�ÛcÜ8×%Õ/Ý?Ù�åÝ?ÓcÔwÛcÔwÝ?Ø\rÝræ·ÛcÜu×%ÓcÔlÙ�å+ÑÖÔÖÕ/×gÓgò", - "origin": [ - 71.0999755859375, - 693.6500244140625 - ], - "bbox": [ - 71.0999755859375, - 687.1500244140625, - 376.1999816894531, - 706.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 687.1500244140625, - 376.1999816894531, - 706.050048828125 - ] - } - ] - }, - { - "number": 233, - "type": 0, - "bbox": [ - 80.39997100830078, - 700.949951171875, - 90.59996795654297, - 728.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "+", - "origin": [ - 80.39997100830078, - 715.8499755859375 - ], - "bbox": [ - 80.39997100830078, - 700.949951171875, - 80.39997100830078, - 725.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "T•\u0018Y", - "origin": [ - 80.39997100830078, - 715.8499755859375 - ], - "bbox": [ - 80.39997100830078, - 709.3499755859375, - 90.59996795654297, - 728.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.39997100830078, - 700.949951171875, - 90.59996795654297, - 728.25 - ] - } - ] - }, - { - "number": 235, - "type": 0, - "bbox": [ - 102.29997253417969, - 709.3499755859375, - 224.69996643066406, - 728.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "YPReOaXIADSaM]FsEcHJADR1O\u0018X¬K^EP^SaM]hTADEcHJM- ºFJR1K", - "origin": [ - 102.29997253417969, - 715.8499755859375 - ], - "bbox": [ - 102.29997253417969, - 709.3499755859375, - 224.69996643066406, - 728.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.29997253417969, - 709.3499755859375, - 224.69996643066406, - 728.25 - ] - } - ] - }, - { - "number": 237, - "type": 0, - "bbox": [ - 244.19996643066406, - 709.3499755859375, - 520.800048828125, - 728.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M-X’HIFsEGHJMPdG^HJR\u001bE1S\u0018E1CTH°YPR1OgHJALOg•\u0018•aK\u000b”Q•\u001dEGOQHJALHJALMPXyHJR\u001bE\"SaALXIY]FJM]HJM·XIC\u0018E1YPM¯HJADKNM¬›\u001b ºR1F", - "origin": [ - 244.19996643066406, - 715.8499755859375 - ], - "bbox": [ - 244.19996643066406, - 709.3499755859375, - 520.800048828125, - 728.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 244.19996643066406, - 709.3499755859375, - 520.800048828125, - 728.25 - ] - } - ] - }, - { - "number": 238, - "type": 0, - "bbox": [ - 71.09996032714844, - 713.8499755859375, - 368.5999450683594, - 748.5499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M", - "origin": [ - 71.09996032714844, - 726.75 - ], - "bbox": [ - 71.09996032714844, - 720.25, - 71.09996032714844, - 739.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "^]", - "origin": [ - 71.09996032714844, - 726.75 - ], - "bbox": [ - 71.09996032714844, - 713.8499755859375, - 75.09996032714844, - 748.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aE1KNCatDM1`\u0018£Q¢E1CaCaFJR", - "origin": [ - 75.09996032714844, - 726.75 - ], - "bbox": [ - 75.09996032714844, - 720.25, - 141.19996643066406, - 739.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\n]", - "origin": [ - 141.19996643066406, - 726.75 - ], - "bbox": [ - 141.19996643066406, - 713.8499755859375, - 145.39996337890625, - 748.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TADK^EcHJALO\u0018dNEN”Q•\u001dEcFIHJALY½CrRGHJMPOQHJADE1tV£Q¢EN”Q•\u001dEcFIHJADY­M", - "origin": [ - 145.39996337890625, - 726.75 - ], - "bbox": [ - 145.39996337890625, - 720.25, - 315.09991455078125, - 739.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "^]", - "origin": [ - 315.09991455078125, - 726.75 - ], - "bbox": [ - 315.09991455078125, - 713.8499755859375, - 319.09991455078125, - 748.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TCTFJMPXIXIALReO“‘¬AžH", - "origin": [ - 319.09991455078125, - 726.75 - ], - "bbox": [ - 319.09991455078125, - 720.25, - 368.5999450683594, - 739.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09996032714844, - 713.8499755859375, - 368.5999450683594, - 748.5499877929688 - ] - } - ] - }, - { - "number": 240, - "type": 0, - "bbox": [ - 380.6999816894531, - 720.25, - 427.70001220703125, - 739.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "XI•\u0018CaCrR1FIH4ReO\u0016H", - "origin": [ - 380.6999816894531, - 726.75 - ], - "bbox": [ - 380.6999816894531, - 720.25, - 427.70001220703125, - 739.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.6999816894531, - 720.25, - 427.70001220703125, - 739.1500244140625 - ] - } - ] - }, - { - "number": 242, - "type": 0, - "bbox": [ - 436.5, - 720.25, - 522.0000610351562, - 739.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M­MPtLMPKNMPOQHJX¬R1 +E\u0010YZEG•\u0018XJE1t", - "origin": [ - 436.5, - 726.75 - ], - "bbox": [ - 436.5, - 720.25, - 522.0000610351562, - 739.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 436.5, - 720.25, - 522.0000610351562, - 739.1500244140625 - ] - } - ] - }, - { - "number": 243, - "type": 0, - "bbox": [ - 71.10000610351562, - 722.75, - 429.5000305175781, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "XIM]HZš8j™HXIMPMPKNX°E½heEGtD•\u0018E1£atDMBE1tžHJM]FJO\u0018EGHJALh/MBHJR\"tDRQR", - "origin": [ - 71.10000610351562, - 737.6500244140625 - ], - "bbox": [ - 71.10000610351562, - 731.1500244140625, - 232.79998779296875, - 750.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "7)", - "origin": [ - 232.79998779296875, - 737.6500244140625 - ], - "bbox": [ - 232.79998779296875, - 722.75, - 237.29998779296875, - 747.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N ¸R1F4E½KNRgSaMPtrRG WK^EcHIHJM]F¬SaM]d1FJMPMPX°RG V ´FJMPMZSaR1K\u0012E1O\u0018S^H", - "origin": [ - 237.29998779296875, - 737.6500244140625 - ], - "bbox": [ - 237.29998779296875, - 731.1500244140625, - 429.5000305175781, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 722.75, - 429.5000305175781, - 750.050048828125 - ] - } - ] - }, - { - "number": 245, - "type": 0, - "bbox": [ - 438.3000183105469, - 731.1500244140625, - 501.2000427246094, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPAžF¬ALOgHJM¯FsE1Y]HJALReOaX‘", - "origin": [ - 438.3000183105469, - 737.6500244140625 - ], - "bbox": [ - 438.3000183105469, - 731.1500244140625, - 501.2000427246094, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.3000183105469, - 731.1500244140625, - 501.2000427246094, - 750.050048828125 - ] - } - ] - }, - { - "number": 247, - "type": 0, - "bbox": [ - 513.1000366210938, - 731.1500244140625, - 515.6000366210938, - 750.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALY", - "origin": [ - 513.1000366210938, - 737.6500244140625 - ], - "bbox": [ - 513.1000366210938, - 731.1500244140625, - 515.6000366210938, - 750.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 513.1000366210938, - 731.1500244140625, - 515.6000366210938, - 750.050048828125 - ] - } - ] - }, - { - "number": 249, - "type": 0, - "bbox": [ - 71.10000610351562, - 733.75, - 433.5, - 761.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX6 ¸RGFJK\u001b•\u0018tDEcHJMZS»ALO^HJM]FJKNX6ALOaO\u001dEGHJM4HJR\u001bE½YZE1•aXJE1t?XIM]HZ`aE1Xy wEGF4EGX°CrReXIXIAL£\u0018tLMešyU\u0018RGF ºFJM]M·C\u001dEcFIHJADY]tDM]XP`T‘6R1F", - "origin": [ - 71.10000610351562, - 748.6500244140625 - ], - "bbox": [ - 71.10000610351562, - 742.1500244140625, - 411.6000061035156, - 761.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 411.6000061035156, - 748.6500244140625 - ], - "bbox": [ - 411.6000061035156, - 733.75, - 415.3000183105469, - 758.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "^ALONH", - "origin": [ - 415.3000183105469, - 748.6500244140625 - ], - "bbox": [ - 415.3000183105469, - 742.1500244140625, - 433.5, - 761.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 733.75, - 433.5, - 761.050048828125 - ] - } - ] - }, - { - "number": 251, - "type": 0, - "bbox": [ - 442.4000244140625, - 742.1500244140625, - 481.6000671386719, - 761.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALX¬SaAžFJMPY]HJALR1O", - "origin": [ - 442.4000244140625, - 748.6500244140625 - ], - "bbox": [ - 442.4000244140625, - 742.1500244140625, - 481.6000671386719, - 761.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 442.4000244140625, - 742.1500244140625, - 481.6000671386719, - 761.050048828125 - ] - } - ] - }, - { - "number": 253, - "type": 0, - "bbox": [ - 494.9000244140625, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1X£rMPM]O", - "origin": [ - 494.9000244140625, - 748.6500244140625 - ], - "bbox": [ - 494.9000244140625, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 494.9000244140625, - 742.1500244140625, - 519.4000244140625, - 761.050048828125 - ] - } - ] - }, - { - "number": 254, - "type": 0, - "bbox": [ - 71.00003051757812, - 752.6500244140625, - 153.10003662109375, - 772.050048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "FJMPCrR1FIHJMPS¢ALO", - "origin": [ - 71.00003051757812, - 759.6500244140625 - ], - "bbox": [ - 71.00003051757812, - 753.1500244140625, - 110.70001983642578, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.00003051757812, - 753.1500244140625, - 110.70001983642578, - 772.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 119.00003051757812, - 759.6500244140625 - ], - "bbox": [ - 119.00003051757812, - 752.6500244140625, - 119.00003051757812, - 771.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4M] =š", - "origin": [ - 119.00003051757812, - 759.6500244140625 - ], - "bbox": [ - 119.00003051757812, - 753.1500244140625, - 133.2000274658203, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+=", - "origin": [ - 133.2000274658203, - 759.6500244140625 - ], - "bbox": [ - 133.2000274658203, - 752.6500244140625, - 138.9000244140625, - 771.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.00003051757812, - 752.6500244140625, - 138.9000244140625, - 772.050048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "peq", - "origin": [ - 141.00003051757812, - 759.6500244140625 - ], - "bbox": [ - 141.00003051757812, - 753.1500244140625, - 145.60003662109375, - 772.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 145.60003662109375, - 759.6500244140625 - ], - "bbox": [ - 145.60003662109375, - 752.6500244140625, - 150.00003051757812, - 771.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "֚", - "origin": [ - 150.00003051757812, - 759.6500244140625 - ], - "bbox": [ - 150.00003051757812, - 753.1500244140625, - 153.10003662109375, - 772.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.00003051757812, - 752.6500244140625, - 153.10003662109375, - 772.050048828125 - ] - } - ] - }, - { - "number": 255, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ] - }, - { - "number": 256, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ] - }, - { - "number": 257, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "5", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 255, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "tag": "header" - }, - { - "number": 256, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "tag": "header" - }, - { - "number": 257, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "5", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 5, - "page_size": [ - 595.5, - 842.25 - ] - }, - "page_6": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 85.30000305175781, - 109.04998779296875, - 519.0999755859375, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.30000305175781, - 116.04998779296875 - ], - "bbox": [ - 85.30000305175781, - 109.04998779296875, - 85.30000305175781, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]؜ÛcÜuדÕ/Ý?تÛcÔlØ©â8â+Ù", - "origin": [ - 85.30000305175781, - 116.04998779296875 - ], - "bbox": [ - 85.30000305175781, - 109.54998779296875, - 158.50001525878906, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.30000305175781, - 109.04998779296875, - 158.50001525878906, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+ÔlÕ/ÛcâuÞc×réV×gÒrÕGܗÓcÔÖÙ¥å+Ñw×", - "origin": [ - 170.70001220703125, - 116.04998779296875 - ], - "bbox": [ - 170.70001220703125, - 109.54998779296875, - 260.6000061035156, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 260.6000061035156, - 116.04998779296875 - ], - "bbox": [ - 260.6000061035156, - 109.54998779296875, - 265.3000183105469, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�æ™ÝrÞ1Ù¥Ó\"Ò\u0019ÛcÔÖØ©ß", - "origin": [ - 265.3000183105469, - 116.04998779296875 - ], - "bbox": [ - 265.3000183105469, - 109.54998779296875, - 325.9000244140625, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0016�", - "origin": [ - 325.9000244140625, - 116.04998779296875 - ], - "bbox": [ - 325.9000244140625, - 109.04998779296875, - 336.20001220703125, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PڐÝ", - "origin": [ - 336.20001220703125, - 116.04998779296875 - ], - "bbox": [ - 336.20001220703125, - 109.54998779296875, - 346.8000183105469, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#�", - "origin": [ - 346.8000183105469, - 116.04998779296875 - ], - "bbox": [ - 346.8000183105469, - 109.54998779296875, - 351.70001220703125, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 351.70001220703125, - 116.04998779296875 - ], - "bbox": [ - 351.70001220703125, - 109.04998779296875, - 357.70001220703125, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019à¢ÔwÛcܜÒ", - "origin": [ - 357.70001220703125, - 116.04998779296875 - ], - "bbox": [ - 357.70001220703125, - 109.54998779296875, - 391.1000061035156, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "(&3;�\u001c\u0013\u000e\u00164-D", - "origin": [ - 391.1000061035156, - 116.04998779296875 - ], - "bbox": [ - 391.1000061035156, - 109.54998779296875, - 426.0, - 127.44998931884766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.70001220703125, - 109.04998779296875, - 426.0, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "D+\u0010#9\u000f\u001c\u0013D", - "origin": [ - 438.0, - 116.04998779296875 - ], - "bbox": [ - 438.0, - 109.54998779296875, - 455.5999755859375, - 127.44998931884766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.0, - 109.54998779296875, - 455.5999755859375, - 127.44998931884766 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")", - "origin": [ - 458.3999938964844, - 116.04998779296875 - ], - "bbox": [ - 458.3999938964844, - 109.54998779296875, - 458.3999938964844, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 458.3999938964844, - 116.04998779296875 - ], - "bbox": [ - 458.3999938964844, - 109.24998474121094, - 461.3999938964844, - 127.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "H\"$1", - "origin": [ - 461.3999938964844, - 116.04998779296875 - ], - "bbox": [ - 461.3999938964844, - 109.54998779296875, - 470.79998779296875, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“ڐÝ?â8Ø8è+Ò\u001dÞcß", - "origin": [ - 470.79998779296875, - 116.04998779296875 - ], - "bbox": [ - 470.79998779296875, - 109.54998779296875, - 519.0999755859375, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.3999938964844, - 109.24998474121094, - 519.0999755859375, - 128.44998168945312 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 71.19998168945312, - 121.95001220703125, - 519.7999877929688, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/Ý?Ø8è+ÔwÛcÔwÝ?ذé%à¢Ü8ÔÖÕGÜ", - "origin": [ - 71.19998168945312, - 128.95001220703125 - ], - "bbox": [ - 71.19998168945312, - 122.45001220703125, - 146.29998779296875, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 122.45001220703125, - 146.29998779296875, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å8ÞcÝ?Ü+ÔwÚ+ÔwÛcӗÛcÜ8×\u000bÑÖ×gÒ", - "origin": [ - 157.99998474121094, - 128.95001220703125 - ], - "bbox": [ - 157.99998474121094, - 122.45001220703125, - 235.3000030517578, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 235.3000030517578, - 128.95001220703125 - ], - "bbox": [ - 235.3000030517578, - 121.95001220703125, - 240.60000610351562, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÔÖØ8ç", - "origin": [ - 240.60000610351562, - 128.95001220703125 - ], - "bbox": [ - 240.60000610351562, - 122.45001220703125, - 255.6000213623047, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.99998474121094, - 121.95001220703125, - 255.6000213623047, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ å+ÞcÝrÚ+Ò\u001dÚ+ÔÖÑlÔwÛsßÍÛZÝ", - "origin": [ - 266.5999755859375, - 128.95001220703125 - ], - "bbox": [ - 266.5999755859375, - 122.45001220703125, - 343.3000183105469, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.5999755859375, - 122.45001220703125, - 343.3000183105469, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u000bÝ?âuÛcÓcÔÖèu×", - "origin": [ - 354.5999755859375, - 128.95001220703125 - ], - "bbox": [ - 354.5999755859375, - 122.45001220703125, - 404.7999572753906, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0016\u001e", - "origin": [ - 404.7999572753906, - 128.95001220703125 - ], - "bbox": [ - 404.7999572753906, - 121.95001220703125, - 415.0999450683594, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ŸÒrÓ", - "origin": [ - 415.0999450683594, - 128.95001220703125 - ], - "bbox": [ - 415.0999450683594, - 122.45001220703125, - 432.0999450683594, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.5999755859375, - 121.95001220703125, - 432.0999450683594, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÝ?ØuçÍÒrÓ", - "origin": [ - 442.0999755859375, - 128.95001220703125 - ], - "bbox": [ - 442.0999755859375, - 122.45001220703125, - 473.29998779296875, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 442.0999755859375, - 122.45001220703125, - 473.29998779296875, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×Qß", - "origin": [ - 483.29998779296875, - 128.95001220703125 - ], - "bbox": [ - 483.29998779296875, - 122.45001220703125, - 498.39996337890625, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.29998779296875, - 122.45001220703125, - 498.39996337890625, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÞc×", - "origin": [ - 510.1999816894531, - 128.95001220703125 - ], - "bbox": [ - 510.1999816894531, - 122.45001220703125, - 519.7999877929688, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1999816894531, - 122.45001220703125, - 519.7999877929688, - 141.35000610351562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 71.19998168945312, - 134.95001220703125, - 520.3999633789062, - 170.15000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ócâ", - "origin": [ - 71.19998168945312, - 141.95001220703125 - ], - "bbox": [ - 71.19998168945312, - 135.45001220703125, - 75.49998474121094, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 135.45001220703125, - 75.49998474121094, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 81.59998321533203, - 141.95001220703125 - ], - "bbox": [ - 81.59998321533203, - 136.25001525878906, - 81.59998321533203, - 170.15000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ÕQÔw×gØ©ÛcÑwß ÓZ×Qå+Ò\u001dÞ1Ò\u001dÛZ×gè°ò", - "origin": [ - 81.59998321533203, - 141.95001220703125 - ], - "bbox": [ - 81.59998321533203, - 135.45001220703125, - 171.6999969482422, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.59998321533203, - 135.45001220703125, - 171.6999969482422, - 170.15000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0018", - "origin": [ - 179.0999755859375, - 141.95001220703125 - ], - "bbox": [ - 179.0999755859375, - 134.95001220703125, - 179.0999755859375, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001bÞGÔÖØuç?ÔlØuç\u0019Û¯à\"Ý\u001fÓcâ8Õ1Ü\rÚ6Ý", - "origin": [ - 179.0999755859375, - 141.95001220703125 - ], - "bbox": [ - 179.0999755859375, - 135.45001220703125, - 275.1999816894531, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 179.0999755859375, - 134.95001220703125, - 275.1999816894531, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 280.1999816894531, - 141.95001220703125 - ], - "bbox": [ - 280.1999816894531, - 135.45001220703125, - 280.1999816894531, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "V×gÓ»Øu×", - "origin": [ - 280.1999816894531, - 141.95001220703125 - ], - "bbox": [ - 280.1999816894531, - 135.45001220703125, - 304.89996337890625, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 304.89996337890625, - 141.95001220703125 - ], - "bbox": [ - 304.89996337890625, - 135.45001220703125, - 309.5999755859375, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÛ»ÛZÝ�×gÒrÕGܖÝrÛcÜ8×QÞgé+Ócâ8Õ1Ü\rÛcÜ8Ò\u001dÛ»Ò�Õ/Ý?٥٥Ý?ؗڐÝrÞGèu×QÞ", - "origin": [ - 309.5999755859375, - 141.95001220703125 - ], - "bbox": [ - 309.5999755859375, - 135.45001220703125, - 520.3999633789062, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.1999816894531, - 135.45001220703125, - 520.3999633789062, - 154.35000610351562 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 71.0999755859375, - 148.35003662109375, - 213.29998779296875, - 167.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×Qç?ÔÖÝ?صÒ\u001dÞGÔlÓZ×gÓ»à¢Ü8ÔÖÕGÜ", - "origin": [ - 71.0999755859375, - 154.85003662109375 - ], - "bbox": [ - 71.0999755859375, - 148.35003662109375, - 155.89999389648438, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 148.35003662109375, - 155.89999389648438, - 167.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ\u0016Ñw×gÓcÓ¢ÛcÜ8ÒrØ", - "origin": [ - 165.8999786376953, - 154.85003662109375 - ], - "bbox": [ - 165.8999786376953, - 148.35003662109375, - 213.29998779296875, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.8999786376953, - 148.35003662109375, - 213.29998779296875, - 167.25003051757812 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 240.19998168945312, - 147.85003662109375, - 521.8999633789062, - 167.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 240.19998168945312, - 154.85003662109375 - ], - "bbox": [ - 240.19998168945312, - 148.35003662109375, - 254.79998779296875, - 167.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 254.79998779296875, - 154.85003662109375 - ], - "bbox": [ - 254.79998779296875, - 147.85003662109375, - 259.1999816894531, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "–Ñw×gØuçrÛcÜ", - "origin": [ - 259.1999816894531, - 154.85003662109375 - ], - "bbox": [ - 259.1999816894531, - 148.35003662109375, - 292.4999694824219, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.19998168945312, - 147.85003662109375, - 292.4999694824219, - 167.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 303.79998779296875, - 154.85003662109375 - ], - "bbox": [ - 303.79998779296875, - 147.85003662109375, - 303.79998779296875, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PÛcÜ8ÔÖÕ", - "origin": [ - 303.79998779296875, - 154.85003662109375 - ], - "bbox": [ - 303.79998779296875, - 148.35003662109375, - 321.3999938964844, - 167.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 321.3999938964844, - 154.85003662109375 - ], - "bbox": [ - 321.3999938964844, - 147.85003662109375, - 325.79998779296875, - 166.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 303.79998779296875, - 147.85003662109375, - 325.79998779296875, - 167.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 331.5999755859375, - 154.85003662109375 - ], - "bbox": [ - 331.5999755859375, - 147.85003662109375, - 331.5999755859375, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WéÛcÜu×\u0014Õ/Ý?Ø", - "origin": [ - 331.5999755859375, - 154.85003662109375 - ], - "bbox": [ - 331.5999755859375, - 148.35003662109375, - 373.39996337890625, - 167.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "b\n", - "origin": [ - 373.39996337890625, - 154.85003662109375 - ], - "bbox": [ - 373.39996337890625, - 148.35003662109375, - 379.39996337890625, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø8ÔlØuç¥ÚÝ?â8Ø8è8Ò\u001dÞGß\rÕ/Ý?Ø+è8ÔwÛcÔwÝ?صà»ÔÖÑÖÑ", - "origin": [ - 379.39996337890625, - 154.85003662109375 - ], - "bbox": [ - 379.39996337890625, - 148.35003662109375, - 521.8999633789062, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.5999755859375, - 147.85003662109375, - 521.8999633789062, - 167.25003051757812 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 71.19998168945312, - 161.35003662109375, - 483.6000061035156, - 180.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8ÔlÓcÓZÝ?Ñwãr×&ÔÖØªÛZÝ\rÒ\u001fæ™ÞG×Q×&ڐÝ?â8Ø+è8Ò\u001dÞcߗÕ/Ý?Ø8è8ÔwÛcÔÖÝ?ذé6Ø8Ý\rÙ Ò\u001dÛZÛZ×QÞ%ÜuÝTàŽÔwÛ\u0016ÝrÞGÔwç?ÔÖØ+Ò\u001dÛZ×gè", - "origin": [ - 71.19998168945312, - 167.85003662109375 - ], - "bbox": [ - 71.19998168945312, - 161.35003662109375, - 393.7000427246094, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 161.35003662109375, - 393.7000427246094, - 180.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔlØ!ÛcÜu×", - "origin": [ - 403.6999816894531, - 167.85003662109375 - ], - "bbox": [ - 403.6999816894531, - 161.35003662109375, - 426.9999694824219, - 180.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "O\n", - "origin": [ - 426.9999694824219, - 167.85003662109375 - ], - "bbox": [ - 426.9999694824219, - 161.35003662109375, - 435.89996337890625, - 179.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8Þ1ÓZÛ»å+ÑlÒrÕ/×rò", - "origin": [ - 435.89996337890625, - 167.85003662109375 - ], - "bbox": [ - 435.89996337890625, - 161.35003662109375, - 483.6000061035156, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 403.6999816894531, - 161.35003662109375, - 483.6000061035156, - 180.25003051757812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 499.9999694824219, - 161.35003662109375, - 520.4999389648438, - 180.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ\u0016ÔÖÓ", - "origin": [ - 499.9999694824219, - 167.85003662109375 - ], - "bbox": [ - 499.9999694824219, - 161.35003662109375, - 520.4999389648438, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 499.9999694824219, - 161.35003662109375, - 520.4999389648438, - 180.25003051757812 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 71.199951171875, - 173.85003662109375, - 519.7999877929688, - 193.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØuÝrÛcÜ8×QÞ\u0016Ù¥ÒrØ+Ôwæ™×gÓcÛcÒ\u001dÛcÔwÝ?Ø!Ýræ½ÛcÜu×", - "origin": [ - 71.199951171875, - 180.85003662109375 - ], - "bbox": [ - 71.199951171875, - 174.35003662109375, - 202.89996337890625, - 193.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "'�", - "origin": [ - 202.89996337890625, - 180.85003662109375 - ], - "bbox": [ - 202.89996337890625, - 173.85003662109375, - 212.79995727539062, - 192.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒrÓZßWÙ�å8ÛZÝrÛcÔlÕ³æ=Þc×Q×gèuÝ?Ù", - "origin": [ - 212.79995727539062, - 180.85003662109375 - ], - "bbox": [ - 212.79995727539062, - 174.35003662109375, - 302.1999206542969, - 193.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 173.85003662109375, - 302.1999206542969, - 193.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 311.2999572753906, - 180.85003662109375 - ], - "bbox": [ - 311.2999572753906, - 173.85003662109375, - 311.2999572753906, - 192.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œå8ÞcÝrå×QÞcÛ¯ßré6ÕQÒrâ+ÓZ×gè", - "origin": [ - 311.2999572753906, - 180.85003662109375 - ], - "bbox": [ - 311.2999572753906, - 174.35003662109375, - 393.19989013671875, - 193.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.2999572753906, - 173.85003662109375, - 393.19989013671875, - 193.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "کߗÛcÜu×\u0014è8ÔÖÓGÕ/Þc×QÛZ×\u0019ÓZåyÒrÕ/×QÛcÔÖÙ�×", - "origin": [ - 403.199951171875, - 180.85003662109375 - ], - "bbox": [ - 403.199951171875, - 174.35003662109375, - 519.7999877929688, - 193.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 403.199951171875, - 174.35003662109375, - 519.7999877929688, - 193.25003051757812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 71.199951171875, - 187.1500244140625, - 114.89994812011719, - 206.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛZÞ1â8Õ/ÛcâuÞc×rò", - "origin": [ - 71.199951171875, - 193.6500244140625 - ], - "bbox": [ - 71.199951171875, - 187.1500244140625, - 114.89994812011719, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 187.1500244140625, - 114.89994812011719, - 206.05001831054688 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 131.09994506835938, - 180.75003051757812, - 518.5999755859375, - 215.4500274658203 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÜVâ8ÓQé+à\u001b×�ÔÖÙ¥Ò\u001dç?ÔÖØ8׳ÛcÜ8Ò\u001dÛ\u0016ÛcÜu×\u0014ÞGÒrØuçr×&Ýræ­ã\u001dÒ\u001dÞGÔÖÒ\u001dÚ+Ñw×gÓ¢×gØ©ÛZ×QÞGÔÖØuç\u001fÛcÜu×\u0014Ù¥Ò\u001dÛZÞGÔ", - "origin": [ - 131.09994506835938, - 193.6500244140625 - ], - "bbox": [ - 131.09994506835938, - 187.1500244140625, - 427.4999084472656, - 206.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "+�", - "origin": [ - 427.4999084472656, - 193.6500244140625 - ], - "bbox": [ - 427.4999084472656, - 187.1500244140625, - 430.39990234375, - 205.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "–×gÑw×gÙ¥×gتÛcÓ\u0016Ýræ", - "origin": [ - 430.39990234375, - 193.6500244140625 - ], - "bbox": [ - 430.39990234375, - 187.1500244140625, - 490.39990234375, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.09994506835938, - 187.1500244140625, - 490.39990234375, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 497.99993896484375, - 193.6500244140625 - ], - "bbox": [ - 497.99993896484375, - 180.75003051757812, - 497.99993896484375, - 215.4500274658203 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "7ÕQÒrØ", - "origin": [ - 497.99993896484375, - 193.6500244140625 - ], - "bbox": [ - 497.99993896484375, - 187.1500244140625, - 518.5999755859375, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 497.99993896484375, - 180.75003051757812, - 518.5999755859375, - 215.4500274658203 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 71.19992065429688, - 200.1500244140625, - 352.9999084472656, - 219.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Òrè8ÔlÒ\u001dÚ+Ò\u001dÛcÔÖÕQÒrÑÖÑwߜÔÖØ8Õ/Þc×gÒrÓZ׳ÛZÝ¥ÛcÜu×;æ’â8ÑÖÑ6ÞGÒrØuçr×%Ýaãr×QޢڐÝrÛcܗÓcÔlÙ�å+Ñw×", - "origin": [ - 71.19992065429688, - 206.6500244140625 - ], - "bbox": [ - 71.19992065429688, - 200.1500244140625, - 332.6999206542969, - 219.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 332.6999206542969, - 206.6500244140625 - ], - "bbox": [ - 332.6999206542969, - 200.1500244140625, - 337.3999328613281, - 218.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "W×gÓQò", - "origin": [ - 337.3999328613281, - 206.6500244140625 - ], - "bbox": [ - 337.3999328613281, - 200.1500244140625, - 352.9999084472656, - 219.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 200.1500244140625, - 352.9999084472656, - 219.05001831054688 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 96.49991607666016, - 206.64999389648438, - 519.7999267578125, - 241.34999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÑw×", - "origin": [ - 96.49991607666016, - 219.54998779296875 - ], - "bbox": [ - 96.49991607666016, - 213.04998779296875, - 108.79991149902344, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.49991607666016, - 213.04998779296875, - 108.79991149902344, - 231.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8ÔÖÓ", - "origin": [ - 120.19992065429688, - 219.54998779296875 - ], - "bbox": [ - 120.19992065429688, - 213.04998779296875, - 133.69993591308594, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 120.19992065429688, - 213.04998779296875, - 133.69993591308594, - 231.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 145.9999237060547, - 219.54998779296875 - ], - "bbox": [ - 145.9999237060547, - 212.54998779296875, - 145.9999237060547, - 230.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZE", - "origin": [ - 145.9999237060547, - 219.54998779296875 - ], - "bbox": [ - 145.9999237060547, - 206.64999389648438, - 150.39991760253906, - 241.34999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016×gè8ÒrØ", - "origin": [ - 150.39991760253906, - 219.54998779296875 - ], - "bbox": [ - 150.39991760253906, - 213.04998779296875, - 174.99990844726562, - 231.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 174.99990844726562, - 219.54998779296875 - ], - "bbox": [ - 174.99990844726562, - 212.54998779296875, - 180.99990844726562, - 230.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×gØ8×", - "origin": [ - 180.99990844726562, - 219.54998779296875 - ], - "bbox": [ - 180.99990844726562, - 213.04998779296875, - 197.39990234375, - 231.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 197.39990234375, - 219.54998779296875 - ], - "bbox": [ - 197.39990234375, - 213.04998779296875, - 202.0998992919922, - 230.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå×QÞGÔÖÙ¥×gتÛ", - "origin": [ - 202.0998992919922, - 219.54998779296875 - ], - "bbox": [ - 202.0998992919922, - 213.04998779296875, - 246.29991149902344, - 231.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 246.29991149902344, - 219.54998779296875 - ], - "bbox": [ - 246.29991149902344, - 212.54998779296875, - 250.59991455078125, - 230.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 145.9999237060547, - 206.64999389648438, - 250.59991455078125, - 241.34999084472656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥Ôwç?Ü©Û\u001eÓZ×Q×gÙ", - "origin": [ - 262.8999328613281, - 219.54998779296875 - ], - "bbox": [ - 262.8999328613281, - 213.04998779296875, - 311.199951171875, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.8999328613281, - 213.04998779296875, - 311.199951171875, - 231.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+ÑÖÒrâ8ÓGÔwÚ+Ñw×ré!Ò", - "origin": [ - 327.0999450683594, - 219.54998779296875 - ], - "bbox": [ - 327.0999450683594, - 213.04998779296875, - 379.699951171875, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.0999450683594, - 213.04998779296875, - 379.699951171875, - 231.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZ×QÞGÔwÝ?â+Ó", - "origin": [ - 391.99993896484375, - 219.54998779296875 - ], - "bbox": [ - 391.99993896484375, - 213.04998779296875, - 420.0999450683594, - 231.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "2�", - "origin": [ - 420.0999450683594, - 219.54998779296875 - ], - "bbox": [ - 420.0999450683594, - 213.04998779296875, - 430.0999450683594, - 230.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Zâ+ÓZÛcÔ", - "origin": [ - 430.0999450683594, - 219.54998779296875 - ], - "bbox": [ - 430.0999450683594, - 213.04998779296875, - 448.9999694824219, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.99993896484375, - 213.04998779296875, - 448.9999694824219, - 231.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 451.99993896484375, - 219.54998779296875 - ], - "bbox": [ - 451.99993896484375, - 213.04998779296875, - 451.99993896484375, - 230.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+ÕQÒ\u001dÛcÔwÝ?ØÿÝræ�ÛcÜu×", - "origin": [ - 451.99993896484375, - 219.54998779296875 - ], - "bbox": [ - 451.99993896484375, - 213.04998779296875, - 519.7999267578125, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 451.99993896484375, - 213.04998779296875, - 519.7999267578125, - 231.94998168945312 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 71.09994506835938, - 219.64999389648438, - 252.79994201660156, - 254.34999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×", - "origin": [ - 71.09994506835938, - 232.54998779296875 - ], - "bbox": [ - 71.09994506835938, - 226.04998779296875, - 71.09994506835938, - 244.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 71.09994506835938, - 232.54998779296875 - ], - "bbox": [ - 71.09994506835938, - 226.04998779296875, - 75.79994201660156, - 243.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZ×gØ8ÓcÔwÝ?Ø&Ýræ6ÛcÜu×\u0010ÞGÒrØuçr×NÝræyã\u0018ÒrÑÖÔlè8ÔwÛsß³Ýræ", - "origin": [ - 75.79994201660156, - 232.54998779296875 - ], - "bbox": [ - 75.79994201660156, - 226.04998779296875, - 232.7999267578125, - 244.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 226.04998779296875, - 232.7999267578125, - 244.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 239.09994506835938, - 232.54998779296875 - ], - "bbox": [ - 239.09994506835938, - 219.64999389648438, - 239.09994506835938, - 254.34999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 239.09994506835938, - 232.54998779296875 - ], - "bbox": [ - 239.09994506835938, - 226.04998779296875, - 252.79994201660156, - 244.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 239.09994506835938, - 219.64999389648438, - 252.79994201660156, - 254.34999084472656 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 261.99993896484375, - 225.54998779296875, - 522.099853515625, - 244.94998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î/ô", - "origin": [ - 261.99993896484375, - 232.54998779296875 - ], - "bbox": [ - 261.99993896484375, - 226.04998779296875, - 266.699951171875, - 244.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 266.699951171875, - 232.54998779296875 - ], - "bbox": [ - 266.699951171875, - 225.54998779296875, - 272.39996337890625, - 243.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BÝaãr×QÞ½Ù�ÝrÞc×\u0010ÛcÜ8ÒrØ¥Ý?Øu×NÑÖÔÖØu×gÒ\u001dÞGÔÖÛsß³Ñw×gØ8çrÛcÜ&Óc×Q×gÙ¥Ó­Øu×gÕ/×gÓcÓGÒ\u001dÞcßrò", - "origin": [ - 272.39996337890625, - 232.54998779296875 - ], - "bbox": [ - 272.39996337890625, - 226.04998779296875, - 522.099853515625, - 244.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 261.99993896484375, - 225.54998779296875, - 522.099853515625, - 244.94998168945312 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 81.2999267578125, - 238.449951171875, - 350.39990234375, - 257.8499450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "׳ÔlتÛZ×gØ8è\rÛZÝ\u001fÕ/Ý?Ù�×%Ú+ÒrÕ", - "origin": [ - 81.2999267578125, - 245.449951171875 - ], - "bbox": [ - 81.2999267578125, - 238.949951171875, - 176.29989624023438, - 257.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 176.29989624023438, - 245.449951171875 - ], - "bbox": [ - 176.29989624023438, - 238.449951171875, - 180.69989013671875, - 256.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÛZÝ¥ÛcÜ8ÔÖÓNÔÖÙ¥å6ÝrÞGÛcÒrتÛNåÝ?ÔÖØ©Û\u0010×gÑÖÓZ×Qà»Üu×QÞG×rò", - "origin": [ - 180.69989013671875, - 245.449951171875 - ], - "bbox": [ - 180.69989013671875, - 238.949951171875, - 350.39990234375, - 257.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.2999267578125, - 238.449951171875, - 350.39990234375, - 257.8499450683594 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 77.3999252319336, - 260.5499572753906, - 357.09991455078125, - 295.24993896484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "K", - "origin": [ - 77.3999252319336, - 273.449951171875 - ], - "bbox": [ - 77.3999252319336, - 266.949951171875, - 77.3999252319336, - 284.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 77.3999252319336, - 273.449951171875 - ], - "bbox": [ - 77.3999252319336, - 266.64996337890625, - 80.59992218017578, - 284.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "GK", - "origin": [ - 80.59992218017578, - 273.449951171875 - ], - "bbox": [ - 80.59992218017578, - 266.949951171875, - 86.29991912841797, - 284.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 86.29991912841797, - 273.449951171875 - ], - "bbox": [ - 86.29991912841797, - 266.64996337890625, - 95.29991912841797, - 284.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "`\u0010#\u001c%\u000e3&#\"", - "origin": [ - 95.29991912841797, - 273.449951171875 - ], - "bbox": [ - 95.29991912841797, - 266.949951171875, - 122.09992218017578, - 284.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 122.09992218017578, - 273.449951171875 - ], - "bbox": [ - 122.09992218017578, - 260.5499572753906, - 126.79991912841797, - 295.24993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ">*%\u000e\u0011\u001c\u0013)�\u001e\u001f)�\u001eG*%]\u00151=\"393\u0010", - "origin": [ - 126.79991912841797, - 273.449951171875 - ], - "bbox": [ - 126.79991912841797, - 266.949951171875, - 191.29989624023438, - 284.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.3999252319336, - 260.5499572753906, - 191.29989624023438, - 295.24993896484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ";b\"�\u000e$\"�\u001e89'\"^\u001c\u0013\u001e81\u001aD", - "origin": [ - 196.4999237060547, - 273.449951171875 - ], - "bbox": [ - 196.4999237060547, - 266.949951171875, - 257.199951171875, - 284.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 196.4999237060547, - 266.949951171875, - 257.199951171875, - 284.8499450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010#9\u000f\u001c\u0013D", - "origin": [ - 260.1999206542969, - 273.449951171875 - ], - "bbox": [ - 260.1999206542969, - 266.949951171875, - 274.89990234375, - 284.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.1999206542969, - 266.949951171875, - 274.89990234375, - 284.8499450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")", - "origin": [ - 277.59991455078125, - 273.449951171875 - ], - "bbox": [ - 277.59991455078125, - 266.949951171875, - 277.59991455078125, - 284.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 277.59991455078125, - 273.449951171875 - ], - "bbox": [ - 277.59991455078125, - 266.64996337890625, - 280.6999206542969, - 284.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#\u001c,\u0014 ) \u0010\u0013\u001eW\u0012^\"39�;X\u001c%\u001e\u001d)P&'\u0012", - "origin": [ - 280.6999206542969, - 273.449951171875 - ], - "bbox": [ - 280.6999206542969, - 266.949951171875, - 357.09991455078125, - 284.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.59991455078125, - 266.64996337890625, - 357.09991455078125, - 284.949951171875 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 71.09991455078125, - 279.449951171875, - 520.4998779296875, - 298.8499450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 71.09991455078125, - 286.449951171875 - ], - "bbox": [ - 71.09991455078125, - 279.449951171875, - 71.09991455078125, - 297.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PØ", - "origin": [ - 71.09991455078125, - 286.449951171875 - ], - "bbox": [ - 71.09991455078125, - 279.949951171875, - 75.19991302490234, - 298.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09991455078125, - 279.449951171875, - 75.19991302490234, - 298.8499450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞGèu×QÞ%ÛZݗ×", - "origin": [ - 85.19991302490234, - 286.449951171875 - ], - "bbox": [ - 85.19991302490234, - 279.949951171875, - 128.09991455078125, - 298.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 128.09991455078125, - 286.449951171875 - ], - "bbox": [ - 128.09991455078125, - 279.949951171875, - 132.79991149902344, - 297.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZ×gØ8è�Ý?âuÞ%Õ/Ý?Ø+ÓcÔÖèu×QÞGÒ\u001dÛcÔÖÝ?Ø8Ó\u0016æ=âuÞGÛcÜu×QÞ;ÛZݗÞc×gÒrÕGÜ", - "origin": [ - 132.79991149902344, - 286.449951171875 - ], - "bbox": [ - 132.79991149902344, - 279.949951171875, - 325.6998596191406, - 298.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.19991302490234, - 279.949951171875, - 325.6998596191406, - 298.8499450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×¥ÓcÕQÒrÑw×gÓ;à¢Üu×QÞc×�ä©â+ÒrتÛcâ8Ù", - "origin": [ - 335.9999084472656, - 286.449951171875 - ], - "bbox": [ - 335.9999084472656, - 279.949951171875, - 451.6998596191406, - 298.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.9999084472656, - 279.949951171875, - 451.6998596191406, - 298.8499450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÓ%ÔÖÓ", - "origin": [ - 464.89990234375, - 286.449951171875 - ], - "bbox": [ - 464.89990234375, - 279.949951171875, - 520.4998779296875, - 298.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 464.89990234375, - 279.949951171875, - 520.4998779296875, - 298.8499450683594 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 71.09988403320312, - 292.3499755859375, - 460.5998840332031, - 311.7499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 71.09988403320312, - 299.3499755859375 - ], - "bbox": [ - 71.09988403320312, - 292.3499755859375, - 71.09988403320312, - 310.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WØuÝTà¢ØœÛZÝ\u0014à\u001bÝrÞ", - "origin": [ - 71.09988403320312, - 299.3499755859375 - ], - "bbox": [ - 71.09988403320312, - 292.8499755859375, - 131.4998779296875, - 311.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 131.4998779296875, - 299.3499755859375 - ], - "bbox": [ - 131.4998779296875, - 292.3499755859375, - 135.7998809814453, - 310.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6éVà\u001b×;Ü8Ògãr×;ÛZÝ¥Òrè+èuÞc×gÓcÓ\u001bÒrÑÖÓZÝ\u0014ÛcÜu×;Õ/Ý?Ò\u001dÞGÓZ×", - "origin": [ - 135.7998809814453, - 299.3499755859375 - ], - "bbox": [ - 135.7998809814453, - 292.8499755859375, - 305.1998596191406, - 311.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 305.1998596191406, - 299.3499755859375 - ], - "bbox": [ - 305.1998596191406, - 292.8499755859375, - 309.8998718261719, - 310.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞ1ÒrÔÖØ8ÔÖØuç&ÛcÜ8Ò\u001dÛNÙ&â8ÓZÛ\u0010ڐ×\u0016ÔÖØ©ãrÝ?Ñwãr×gè°ò", - "origin": [ - 309.8998718261719, - 299.3499755859375 - ], - "bbox": [ - 309.8998718261719, - 292.8499755859375, - 460.5998840332031, - 311.7499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09988403320312, - 292.3499755859375, - 460.5998840332031, - 311.7499694824219 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 475.89990234375, - 292.8499755859375, - 520.2999267578125, - 311.7499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ½ÕQÒrØ+ØuÝrÛ", - "origin": [ - 475.89990234375, - 299.3499755859375 - ], - "bbox": [ - 475.89990234375, - 292.8499755859375, - 520.2999267578125, - 311.7499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 475.89990234375, - 292.8499755859375, - 520.2999267578125, - 311.7499694824219 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 71.09988403320312, - 305.3499755859375, - 519.7999267578125, - 324.7499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐלÒrØ+ÒrÑwß", - "origin": [ - 71.09988403320312, - 312.3499755859375 - ], - "bbox": [ - 71.09988403320312, - 305.8499755859375, - 106.89988708496094, - 324.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u001b", - "origin": [ - 106.89988708496094, - 312.3499755859375 - ], - "bbox": [ - 106.89988708496094, - 305.3499755859375, - 112.59988403320312, - 323.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×gè¾ÞGÔwçrÝrÞGÝ?â8ÓcÑwß\u000fà»ÔwÛcÜ8Ý?âuÛ\u0019â8Ø+èu×QÞGÓZÛcÒrØ8è+ÔÖØuç–ÜuÝaà", - "origin": [ - 112.59988403320312, - 312.3499755859375 - ], - "bbox": [ - 112.59988403320312, - 305.8499755859375, - 309.59991455078125, - 324.7499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09988403320312, - 305.3499755859375, - 309.59991455078125, - 324.7499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\rÕ/Ý?Ù¥Ù�Ý?Ø", - "origin": [ - 321.89990234375, - 312.3499755859375 - ], - "bbox": [ - 321.89990234375, - 305.8499755859375, - 375.4999084472656, - 324.7499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.89990234375, - 305.8499755859375, - 375.4999084472656, - 324.7499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=ÝrÞGÕ/×gÓ", - "origin": [ - 386.09991455078125, - 312.3499755859375 - ], - "bbox": [ - 386.09991455078125, - 305.8499755859375, - 408.89990234375, - 324.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 408.89990234375, - 312.3499755859375 - ], - "bbox": [ - 408.89990234375, - 305.54998779296875, - 417.9999084472656, - 323.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "–ÔlتÛZ×QÞGÒrÕ/ÛcÔÖÝ?Ø8Ó³ÛcÜ+Ò\u001dÛ&à\u001b×", - "origin": [ - 417.9999084472656, - 312.3499755859375 - ], - "bbox": [ - 417.9999084472656, - 305.8499755859375, - 519.7999267578125, - 324.7499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.09991455078125, - 305.54998779296875, - 519.7999267578125, - 324.7499694824219 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 71.09991455078125, - 318.75, - 500.6998291015625, - 337.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gØ8Õ/Ý?â+تÛZ×QÞ^ÞG×gÑÖÒ\u001dÛZ×%ÛZÝ¥å+Ü8×gØuÝ?Ù�×gØ8Ò�Ò\u001dÛ»Ù&â8Õ1Ü!ÓcÜuÝrÞGÛZ×QÞ»è8ÔÖÓZÛcÒrØ+Õ/×%ÓcÕQÒrÑw×gÓQé+ÓGâ8ÕGܖÒrÓ^ÛcÜu׳ÑÖÔÖØ8×gÒ\u001dÞGÔwÛsß\u001fÓcÕQÒrÑw×rò", - "origin": [ - 71.09991455078125, - 325.25 - ], - "bbox": [ - 71.09991455078125, - 318.75, - 500.6998291015625, - 337.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09991455078125, - 318.75, - 500.6998291015625, - 337.6499938964844 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 85.39991760253906, - 331.6499938964844, - 515.699951171875, - 350.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê»Ýaà\"×Qãr×QÞTé\"äVâ8ÒrÑÖÔwÛcÒ\u001dÛcÔwãr×gÑÖßré¡à\"×\u001f×", - "origin": [ - 85.39991760253906, - 338.1499938964844 - ], - "bbox": [ - 85.39991760253906, - 331.6499938964844, - 216.69992065429688, - 350.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 216.69992065429688, - 338.1499938964844 - ], - "bbox": [ - 216.69992065429688, - 331.6499938964844, - 221.39991760253906, - 349.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå×gÕ/Û\u0014ÛcÜu×\rÕ/Ý©ÝrÞ1è8ÔÖØ8Ò\u001dÛZ×gÓ&ÛZÝ", - "origin": [ - 221.39991760253906, - 338.1499938964844 - ], - "bbox": [ - 221.39991760253906, - 331.6499938964844, - 334.99993896484375, - 350.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.39991760253906, - 331.6499938964844, - 334.99993896484375, - 350.54998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001b\u001d9", - "origin": [ - 351.99993896484375, - 338.1499938964844 - ], - "bbox": [ - 351.99993896484375, - 331.6499938964844, - 358.0999450683594, - 349.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.99993896484375, - 331.6499938964844, - 358.0999450683594, - 349.54998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0014 \u001bb\u001c,\u0014.\"", - "origin": [ - 363.0999450683594, - 338.1499938964844 - ], - "bbox": [ - 363.0999450683594, - 331.6499938964844, - 381.8999328613281, - 349.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/é­à»Ü+ÔÖÕGܾ×gتÛZ×QÞ�ÛcÜ8×\u001fÕ/Ý?Ø©ÛcÔÖØVâ8â8Ù", - "origin": [ - 381.8999328613281, - 338.1499938964844 - ], - "bbox": [ - 381.8999328613281, - 331.6499938964844, - 515.699951171875, - 350.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.0999450683594, - 331.6499938964844, - 515.699951171875, - 350.54998779296875 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 71.199951171875, - 344.54998779296875, - 521.699951171875, - 363.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gÓGÕ/ÞGÔwå8ÛcÔwÝ?جé4ÔÖØ", - "origin": [ - 71.199951171875, - 351.04998779296875 - ], - "bbox": [ - 71.199951171875, - 344.54998779296875, - 134.09996032714844, - 363.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 344.54998779296875, - 134.09996032714844, - 363.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "åyÒ\u001dÞcÛcÔÖÕQâ8ÑÖÒ\u001dÞTé4à»Üu×gØ7à\"לà^ÞGÔwÛZלèuÝTà»Ø¾ÛcÜuלãrÝ?Ø^ó»×gâ+Ù¥ÒrØ8Ø", - "origin": [ - 144.39996337890625, - 351.04998779296875 - ], - "bbox": [ - 144.39996337890625, - 344.54998779296875, - 381.2999572753906, - 363.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 144.39996337890625, - 344.54998779296875, - 381.2999572753906, - 363.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gäVâ8Ò\u001dÛcÔwÝ?ؾà»ÔwÛcÜ", - "origin": [ - 391.5999755859375, - 351.04998779296875 - ], - "bbox": [ - 391.5999755859375, - 344.54998779296875, - 452.2999267578125, - 363.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.5999755859375, - 344.54998779296875, - 452.2999267578125, - 363.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuלåÝrÛZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 462.5999755859375, - 351.04998779296875 - ], - "bbox": [ - 462.5999755859375, - 344.54998779296875, - 521.699951171875, - 363.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 462.5999755859375, - 344.54998779296875, - 521.699951171875, - 363.4499816894531 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 71.0999755859375, - 351.1499938964844, - 177.29998779296875, - 385.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZ×QÞGÙ Ó ÝrÚ8ÛcÒrÔlØu×gè\u001eÔlØ", - "origin": [ - 71.0999755859375, - 364.04998779296875 - ], - "bbox": [ - 71.0999755859375, - 357.54998779296875, - 152.49998474121094, - 376.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�!", - "origin": [ - 152.49998474121094, - 364.04998779296875 - ], - "bbox": [ - 152.49998474121094, - 351.1499938964844, - 163.59999084472656, - 385.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 163.59999084472656, - 364.04998779296875 - ], - "bbox": [ - 163.59999084472656, - 357.54998779296875, - 177.29998779296875, - 376.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 351.1499938964844, - 177.29998779296875, - 385.8499755859375 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 186.39999389648438, - 357.04998779296875, - 518.6998901367188, - 376.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgï", - "origin": [ - 186.39999389648438, - 364.04998779296875 - ], - "bbox": [ - 186.39999389648438, - 357.54998779296875, - 191.29998779296875, - 376.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 191.29998779296875, - 364.04998779296875 - ], - "bbox": [ - 191.29998779296875, - 357.04998779296875, - 196.79998779296875, - 375.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 196.79998779296875, - 364.04998779296875 - ], - "bbox": [ - 196.79998779296875, - 357.54998779296875, - 201.29998779296875, - 376.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.39999389648438, - 357.04998779296875, - 201.29998779296875, - 376.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 223.89999389648438, - 364.04998779296875 - ], - "bbox": [ - 223.89999389648438, - 357.04998779296875, - 223.89999389648438, - 375.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø+èu×Q×gè°é^Ñw×QÛ\râ8Ó\u001fÕ/Ý?Ø8ÓcÔÖèu×QÞTéNæ™ÝrÞ\u001f×", - "origin": [ - 223.89999389648438, - 364.04998779296875 - ], - "bbox": [ - 223.89999389648438, - 357.54998779296875, - 362.49993896484375, - 376.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 362.49993896484375, - 364.04998779296875 - ], - "bbox": [ - 362.49993896484375, - 357.54998779296875, - 367.199951171875, - 375.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÒrÙ¥å+Ñw×ré»ÒrØÍ×Qãr×gØ©Û\rè8×QÛZ×QÞGÙ¥ÔÖØu×gè\u001eÔÖØ", - "origin": [ - 367.199951171875, - 364.04998779296875 - ], - "bbox": [ - 367.199951171875, - 357.54998779296875, - 518.6998901367188, - 376.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 223.89999389648438, - 357.04998779296875, - 518.6998901367188, - 376.4499816894531 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 71.09999084472656, - 370.54998779296875, - 178.5, - 389.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u0014Õ/Ý?Ø©ÛcÔÖØ©â+â8ÙÿåyÔÖÕ/ÛcâuÞc×rò", - "origin": [ - 71.09999084472656, - 377.04998779296875 - ], - "bbox": [ - 71.09999084472656, - 370.54998779296875, - 178.5, - 389.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09999084472656, - 370.54998779296875, - 178.5, - 389.4499816894531 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 194.5999755859375, - 370.04998779296875, - 518.699951171875, - 389.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×&å6Ý?ÓGÔwÛcÔwÝ?Ø!ÒrÓGÕ/ÞGÔwڐ×gè–ÛZݗÔwÛ\u0016ÔÖØµÒ", - "origin": [ - 194.5999755859375, - 377.04998779296875 - ], - "bbox": [ - 194.5999755859375, - 370.54998779296875, - 332.3000183105469, - 389.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.5999755859375, - 370.54998779296875, - 332.3000183105469, - 389.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\nb�", - "origin": [ - 341.5999755859375, - 377.04998779296875 - ], - "bbox": [ - 341.5999755859375, - 370.54998779296875, - 347.5999755859375, - 388.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "W×gè\u000fá¬ÝrÞc×gØ©Û", - "origin": [ - 347.5999755859375, - 377.04998779296875 - ], - "bbox": [ - 347.5999755859375, - 370.54998779296875, - 395.4999694824219, - 389.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.5999755859375, - 370.54998779296875, - 395.4999694824219, - 389.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001b", - "origin": [ - 399.6999816894531, - 377.04998779296875 - ], - "bbox": [ - 399.6999816894531, - 370.04998779296875, - 399.6999816894531, - 388.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019æ=ÞGÒrÙ�×\u0014ÕQÒrØ8ØuÝrۓڐ׳×", - "origin": [ - 399.6999816894531, - 377.04998779296875 - ], - "bbox": [ - 399.6999816894531, - 370.54998779296875, - 490.5999450683594, - 389.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 490.5999450683594, - 377.04998779296875 - ], - "bbox": [ - 490.5999450683594, - 370.54998779296875, - 495.2999572753906, - 388.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÕ/ÛcÑwß", - "origin": [ - 495.2999572753906, - 377.04998779296875 - ], - "bbox": [ - 495.2999572753906, - 370.54998779296875, - 518.699951171875, - 389.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.6999816894531, - 370.04998779296875, - 518.699951171875, - 389.4499816894531 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 71.19998168945312, - 383.4499816894531, - 180.5999755859375, - 402.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥ÒrÔlتÛcÒrÔÖØ8×gè;à»ÔwÛcÜ;ÛcÔlÙ�×ré\u0018ÔÖæ", - "origin": [ - 71.19998168945312, - 389.9499816894531 - ], - "bbox": [ - 71.19998168945312, - 383.4499816894531, - 180.5999755859375, - 402.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 383.4499816894531, - 180.5999755859375, - 402.3499755859375 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 196.3999786376953, - 382.9499816894531, - 519.800048828125, - 418.1499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 196.3999786376953, - 389.9499816894531 - ], - "bbox": [ - 196.3999786376953, - 383.4499816894531, - 199.49998474121094, - 402.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 199.49998474121094, - 389.9499816894531 - ], - "bbox": [ - 199.49998474121094, - 382.9499816894531, - 205.49998474121094, - 401.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝaà»Ó", - "origin": [ - 205.49998474121094, - 389.9499816894531 - ], - "bbox": [ - 205.49998474121094, - 383.4499816894531, - 223.99998474121094, - 402.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 196.3999786376953, - 382.9499816894531, - 223.99998474121094, - 402.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 228.19998168945312, - 389.9499816894531 - ], - "bbox": [ - 228.19998168945312, - 382.9499816894531, - 228.19998168945312, - 401.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔ?ÓZå+ÒrÕ/×\u001bÔÖÓ¬Ò", - "origin": [ - 228.19998168945312, - 389.9499816894531 - ], - "bbox": [ - 228.19998168945312, - 383.4499816894531, - 277.5, - 402.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.19998168945312, - 382.9499816894531, - 277.5, - 402.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9\u000f\u0010\u0013\u001e\u001f\u0014 )7\u001e\u001d\u001b�\u001b�\u0012!\u001c'4,48\u000e\u0011\u0010", - "origin": [ - 286.1999816894531, - 389.9499816894531 - ], - "bbox": [ - 286.1999816894531, - 383.4499816894531, - 359.5999755859375, - 401.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.1999816894531, - 383.4499816894531, - 359.5999755859375, - 401.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0019", - "origin": [ - 364.5, - 389.9499816894531 - ], - "bbox": [ - 364.5, - 384.2499694824219, - 364.5, - 418.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%)7\u0012^\u001c%\u0014 ) \u0010%\u001e", - "origin": [ - 364.5, - 389.9499816894531 - ], - "bbox": [ - 364.5, - 383.4499816894531, - 400.1999816894531, - 401.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "%ÛZÝ¢ÒrØ\u0019â8Ø8èu×QÞGÑÖßVÔÖØ8ç\u001bè8ÔlÓcÕ/Þc×QÛZ×", - "origin": [ - 400.1999816894531, - 389.9499816894531 - ], - "bbox": [ - 400.1999816894531, - 383.4499816894531, - 519.800048828125, - 402.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.5, - 383.4499816894531, - 519.800048828125, - 418.1499938964844 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 71.19998168945312, - 395.9499816894531, - 340.8999938964844, - 415.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛZÞ1â8Õ/ÛcâuÞc×", - "origin": [ - 71.19998168945312, - 402.9499816894531 - ], - "bbox": [ - 71.19998168945312, - 396.4499816894531, - 109.4999771118164, - 415.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%\u0017", - "origin": [ - 109.4999771118164, - 402.9499816894531 - ], - "bbox": [ - 109.4999771118164, - 396.4499816894531, - 114.89997863769531, - 414.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019ÛZÝ!ÛcÜuלæ=âuÛcâ8Þc×�ÝræNÛcÜ8ÔÖÓ;×Qãr×gØ©Û&ÛcÜu×QÞc× ÑÖÔ", - "origin": [ - 114.89997863769531, - 402.9499816894531 - ], - "bbox": [ - 114.89997863769531, - 396.4499816894531, - 286.6999816894531, - 415.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 396.4499816894531, - 286.6999816894531, - 415.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 289.79998779296875, - 402.9499816894531 - ], - "bbox": [ - 289.79998779296875, - 395.9499816894531, - 289.79998779296875, - 414.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×gÑwßµà¢ÔÖÑÖѷڐ×", - "origin": [ - 289.79998779296875, - 402.9499816894531 - ], - "bbox": [ - 289.79998779296875, - 396.4499816894531, - 340.8999938964844, - 415.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.79998779296875, - 395.9499816894531, - 340.8999938964844, - 415.3499755859375 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 357.4999694824219, - 395.9499816894531, - 425.6999206542969, - 415.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑlÒrØ8Õ", - "origin": [ - 357.4999694824219, - 402.9499816894531 - ], - "bbox": [ - 357.4999694824219, - 396.4499816894531, - 372.1999816894531, - 415.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 372.1999816894531, - 402.9499816894531 - ], - "bbox": [ - 372.1999816894531, - 395.9499816894531, - 376.4999694824219, - 414.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�ÓcÕQÒrÑw×\u001fÓcÔ", - "origin": [ - 376.4999694824219, - 402.9499816894531 - ], - "bbox": [ - 376.4999694824219, - 396.4499816894531, - 417.8999328613281, - 415.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 417.8999328613281, - 402.9499816894531 - ], - "bbox": [ - 417.8999328613281, - 395.9499816894531, - 420.8999328613281, - 414.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×", - "origin": [ - 420.8999328613281, - 402.9499816894531 - ], - "bbox": [ - 420.8999328613281, - 396.4499816894531, - 425.6999206542969, - 415.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.4999694824219, - 395.9499816894531, - 425.6999206542969, - 415.3499755859375 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 438.9999694824219, - 395.9499816894531, - 520.2999267578125, - 415.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞ\u0014ÑÖÒ\u001dÞcçr×QÞ", - "origin": [ - 438.9999694824219, - 402.9499816894531 - ], - "bbox": [ - 438.9999694824219, - 396.4499816894531, - 476.1999206542969, - 415.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�\u0012", - "origin": [ - 476.1999206542969, - 402.9499816894531 - ], - "bbox": [ - 476.1999206542969, - 395.9499816894531, - 480.8999328613281, - 414.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016å+Ò\u001dÛcÕGÜ8×gÓ", - "origin": [ - 480.8999328613281, - 402.9499816894531 - ], - "bbox": [ - 480.8999328613281, - 396.4499816894531, - 520.2999267578125, - 415.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.9999694824219, - 395.9499816894531, - 520.2999267578125, - 415.3499755859375 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 71.0999755859375, - 409.3499755859375, - 76.4999771118164, - 428.2499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ", - "origin": [ - 71.0999755859375, - 415.8499755859375 - ], - "bbox": [ - 71.0999755859375, - 409.3499755859375, - 76.4999771118164, - 428.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 409.3499755859375, - 76.4999771118164, - 428.2499694824219 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 93.6999740600586, - 408.8499755859375, - 520.4998779296875, - 428.2499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 93.6999740600586, - 415.8499755859375 - ], - "bbox": [ - 93.6999740600586, - 409.3499755859375, - 96.79997253417969, - 428.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 96.79997253417969, - 415.8499755859375 - ], - "bbox": [ - 96.79997253417969, - 408.8499755859375, - 102.79997253417969, - 427.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝTà¢Ó", - "origin": [ - 102.79997253417969, - 415.8499755859375 - ], - "bbox": [ - 102.79997253417969, - 409.3499755859375, - 121.29997253417969, - 428.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.6999740600586, - 408.8499755859375, - 121.29997253417969, - 428.2499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 125.4999771118164, - 415.8499755859375 - ], - "bbox": [ - 125.4999771118164, - 408.8499755859375, - 125.4999771118164, - 427.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÔ-ÓZå+ÒrÕ/×\u0019à»Ü8ÔÖÕ1ܖÕ/Ý?تÛcÒrÔlصØuÝ ×gÑw×gÙ�×gةۻÝræ¡ÛcÜu׳Ò\u001då+å8ÞcÝ", - "origin": [ - 125.4999771118164, - 415.8499755859375 - ], - "bbox": [ - 125.4999771118164, - 409.3499755859375, - 346.3999328613281, - 428.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#�", - "origin": [ - 346.3999328613281, - 415.8499755859375 - ], - "bbox": [ - 346.3999328613281, - 409.3499755859375, - 351.2999267578125, - 427.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÔÖÙ¥Ò\u001dÛZ×gèµÕQÒrâ8ÓcÒrÑBÓZ×QÛQò", - "origin": [ - 351.2999267578125, - 415.8499755859375 - ], - "bbox": [ - 351.2999267578125, - 409.3499755859375, - 440.5998840332031, - 428.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": " \n", - "origin": [ - 440.5998840332031, - 415.8499755859375 - ], - "bbox": [ - 440.5998840332031, - 408.8499755859375, - 448.2998962402344, - 427.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¯Û\u0016Ò\u001då8å×gÒ\u001dÞGÓ^ÛZÝ\u001fâ8Ó", - "origin": [ - 448.2998962402344, - 415.8499755859375 - ], - "bbox": [ - 448.2998962402344, - 409.3499755859375, - 520.4998779296875, - 428.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 125.4999771118164, - 408.8499755859375, - 520.4998779296875, - 428.2499694824219 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 71.0999755859375, - 422.3499755859375, - 519.7999267578125, - 441.2499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8Ò\u001dÛ&ÛcÜu×\u001f×Qãr×gتÛQé½Þc×gÓZå×gÕ/ÛcÔwãr×gÑwß", - "origin": [ - 71.0999755859375, - 428.8499755859375 - ], - "bbox": [ - 71.0999755859375, - 422.3499755859375, - 198.2999725341797, - 441.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 422.3499755859375, - 198.2999725341797, - 441.2499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÛcÓ&Ócâ8ÕQÕ/×gÓGÓZÝrÞGÓQé­Ù&â8ÓZÛ\u0014ÕGÜ8ÒrØ8çr×\u001fåÝ?ÓcÔÖÛcÔwÝ?Ø", - "origin": [ - 208.5999755859375, - 428.8499755859375 - ], - "bbox": [ - 208.5999755859375, - 422.3499755859375, - 376.9999084472656, - 441.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.5999755859375, - 422.3499755859375, - 376.9999084472656, - 441.2499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÚVß7ÓcÙ¥ÒrÑlѽÒrÙ�Ý?â8Ø©ÛcÓ&à»ÔwÛcÜ7ÛcÔÖÙ�×", - "origin": [ - 387.29998779296875, - 428.8499755859375 - ], - "bbox": [ - 387.29998779296875, - 422.3499755859375, - 519.7999267578125, - 441.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 387.29998779296875, - 422.3499755859375, - 519.7999267578125, - 441.2499694824219 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 76.59999084472656, - 434.8499755859375, - 455.1999816894531, - 454.2499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 76.59999084472656, - 441.8499755859375 - ], - "bbox": [ - 76.59999084472656, - 434.8499755859375, - 76.59999084472656, - 453.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÓZà\u001b×QÞcãr×", - "origin": [ - 76.59999084472656, - 441.8499755859375 - ], - "bbox": [ - 76.59999084472656, - 435.3499755859375, - 107.09999084472656, - 454.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0017�\u0013\u0012", - "origin": [ - 107.09999084472656, - 441.8499755859375 - ], - "bbox": [ - 107.09999084472656, - 434.8499755859375, - 117.59999084472656, - 453.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é6×", - "origin": [ - 117.59999084472656, - 441.8499755859375 - ], - "bbox": [ - 117.59999084472656, - 435.3499755859375, - 128.49998474121094, - 454.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 128.49998474121094, - 441.8499755859375 - ], - "bbox": [ - 128.49998474121094, - 434.8499755859375, - 133.19998168945312, - 453.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6×gÕ/ÛcÔÖãr×gÑwß\rå6×QÞGæ™ÝrÞGÙ ÔÖØuç\u0014Ò�ÞGÒrØ8èuÝ?Ù", - "origin": [ - 133.19998168945312, - 441.8499755859375 - ], - "bbox": [ - 133.19998168945312, - 435.3499755859375, - 271.6999206542969, - 454.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.59999084472656, - 434.8499755859375, - 271.6999206542969, - 454.2499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u0010ÒrÑ", - "origin": [ - 284.20001220703125, - 441.8499755859375 - ], - "bbox": [ - 284.20001220703125, - 435.3499755859375, - 297.3000183105469, - 454.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c�", - "origin": [ - 297.3000183105469, - 441.8499755859375 - ], - "bbox": [ - 297.3000183105469, - 434.8499755859375, - 300.3000183105469, - 453.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001fà»ÔwÛcÜ8ÔlØ\u001fÔÖÛcÓNæ=â8ÛcâuÞc×;ÑÖÔwç?Ü©ÛcÕ/Ý?Øuלížï?ùañJò", - "origin": [ - 300.3000183105469, - 441.8499755859375 - ], - "bbox": [ - 300.3000183105469, - 435.3499755859375, - 455.1999816894531, - 454.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 284.20001220703125, - 434.8499755859375, - 455.1999816894531, - 454.2499694824219 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 95.5, - 447.7499694824219, - 519.0999145507812, - 467.14996337890625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "חÕQÒrؾçr×QÛ¥Òµæ=×Q×gÑÖÔÖØuçµæ™ÝrÞ\u0014ÛcÜuחÑÖÔÖØ8×gÒ\u001dÞ\u0019ÓcÔ", - "origin": [ - 95.5, - 454.7499694824219 - ], - "bbox": [ - 95.5, - 448.2499694824219, - 263.20001220703125, - 467.14996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 263.20001220703125, - 454.7499694824219 - ], - "bbox": [ - 263.20001220703125, - 447.7499694824219, - 266.20001220703125, - 466.14996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×", - "origin": [ - 266.20001220703125, - 454.7499694824219 - ], - "bbox": [ - 266.20001220703125, - 448.2499694824219, - 271.0, - 467.14996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\n�\f\u000b", - "origin": [ - 271.0, - 454.7499694824219 - ], - "bbox": [ - 271.0, - 447.9499816894531, - 290.1000061035156, - 466.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "µÝræ^ÛcÜu×gÓZחÓZà\u001b×QÞcãr×gÓ&Ú©ß7×gÓZÛcÔÖÙ¥Ò\u001dÛcÔÖØ8çµÛcÜu×\u001få8ÞcÝrÚyÒ\u001dÚ+ÔÖÑÖÔwÛ¯ß", - "origin": [ - 290.1000061035156, - 454.7499694824219 - ], - "bbox": [ - 290.1000061035156, - 448.2499694824219, - 519.0999145507812, - 467.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.5, - 447.7499694824219, - 519.0999145507812, - 467.14996337890625 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 71.0999984741211, - 460.9499816894531, - 236.3000030517578, - 480.14996337890625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ7Ü+Ògãr×µÒ7ÓZå+Ò\u001dÛcÔÖÒrÑNãrÝ?Ôlè\u0012Ýræ“ãrÝ?ÑÖâ8Ù�×", - "origin": [ - 71.0999984741211, - 467.7499694824219 - ], - "bbox": [ - 71.0999984741211, - 461.2499694824219, - 226.5, - 480.14996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\u000e\r", - "origin": [ - 226.5, - 467.7499694824219 - ], - "bbox": [ - 226.5, - 460.9499816894531, - 236.3000030517578, - 479.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999984741211, - 460.9499816894531, - 236.3000030517578, - 480.14996337890625 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 262.29998779296875, - 462.5500183105469, - 267.6999816894531, - 497.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "N", - "origin": [ - 262.29998779296875, - 475.45001220703125 - ], - "bbox": [ - 262.29998779296875, - 462.5500183105469, - 262.29998779296875, - 497.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\u0010\u000f", - "origin": [ - 262.29998779296875, - 475.45001220703125 - ], - "bbox": [ - 262.29998779296875, - 468.6500244140625, - 267.6999816894531, - 486.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.29998779296875, - 462.5500183105469, - 267.6999816894531, - 497.25 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 274.5, - 454.8500061035156, - 367.699951171875, - 489.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�\f\u000b", - "origin": [ - 274.5, - 467.75 - ], - "bbox": [ - 274.5, - 460.95001220703125, - 283.8999938964844, - 479.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "LN", - "origin": [ - 283.8999938964844, - 467.75 - ], - "bbox": [ - 283.8999938964844, - 454.8500061035156, - 289.29998779296875, - 489.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œÛcÜ+Ò\u001dۜÑÖÒrÓZÛcÓ¥æ™ÝrÞ Ò", - "origin": [ - 289.29998779296875, - 467.75 - ], - "bbox": [ - 289.29998779296875, - 461.25, - 367.699951171875, - 480.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.5, - 454.8500061035156, - 367.699951171875, - 489.54998779296875 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 385.6000061035156, - 460.75, - 477.79998779296875, - 480.1499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ+Õ", - "origin": [ - 385.6000061035156, - 467.75 - ], - "bbox": [ - 385.6000061035156, - 461.25, - 400.3000183105469, - 480.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 400.3000183105469, - 467.75 - ], - "bbox": [ - 400.3000183105469, - 460.75, - 404.6000061035156, - 479.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.6000061035156, - 460.75, - 404.6000061035156, - 480.1499938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÔÖÙ�×!ÔÖØ©ÛZ×QÞcã\u001dÒrÑIò", - "origin": [ - 415.20001220703125, - 467.75 - ], - "bbox": [ - 415.20001220703125, - 461.25, - 477.79998779296875, - 480.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 415.20001220703125, - 461.25, - 477.79998779296875, - 480.1499938964844 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 494.70001220703125, - 461.25, - 519.7999877929688, - 480.1499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞ\u001fÛcÜu×", - "origin": [ - 494.70001220703125, - 467.75 - ], - "bbox": [ - 494.70001220703125, - 461.25, - 519.7999877929688, - 480.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 494.70001220703125, - 461.25, - 519.7999877929688, - 480.1499938964844 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 78.20001220703125, - 468.1499938964844, - 418.4000549316406, - 495.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÔÖÓcÓcÝ?؜å+ÞcÝVÕ/×gÓGÓNÙ�×gتÛcÔÖÝ?Øu×gè\r×gÒ\u001dÞGÑÖÔw×QÞNÒrØ8è\rà¢ÔwÛcÜ", - "origin": [ - 78.20001220703125, - 483.04998779296875 - ], - "bbox": [ - 78.20001220703125, - 476.54998779296875, - 270.8000183105469, - 495.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\n�\f\u000b\u0012\u0011", - "origin": [ - 270.8000183105469, - 483.04998779296875 - ], - "bbox": [ - 270.8000183105469, - 476.25, - 298.3000183105469, - 494.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.20001220703125, - 476.25, - 298.3000183105469, - 495.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u000f\u0015\u0014\u0017\u0016", - "origin": [ - 312.10003662109375, - 483.04998779296875 - ], - "bbox": [ - 312.10003662109375, - 468.1499938964844, - 321.9000549316406, - 493.04998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Iéuà\u001b×", - "origin": [ - 321.9000549316406, - 483.04998779296875 - ], - "bbox": [ - 321.9000549316406, - 476.54998779296875, - 339.1000671386719, - 495.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.10003662109375, - 468.1499938964844, - 339.1000671386719, - 495.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 347.5000305175781, - 483.04998779296875 - ], - "bbox": [ - 347.5000305175781, - 476.54998779296875, - 347.5000305175781, - 494.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø8èœÛcÜ8ÔÖÓ\u001bÛZÝ�ڐ×", - "origin": [ - 347.5000305175781, - 483.04998779296875 - ], - "bbox": [ - 347.5000305175781, - 476.54998779296875, - 409.9000549316406, - 495.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\u0014\u0013", - "origin": [ - 409.9000549316406, - 483.04998779296875 - ], - "bbox": [ - 409.9000549316406, - 476.25, - 418.4000549316406, - 494.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.5000305175781, - 476.25, - 418.4000549316406, - 495.4499816894531 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 430.300048828125, - 470.0500183105469, - 445.0000305175781, - 505.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u000b", - "origin": [ - 430.300048828125, - 476.8500061035156 - ], - "bbox": [ - 430.300048828125, - 471.1499938964844, - 430.300048828125, - 505.0500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�\u0015\u0017\u0016\u0019\u0018", - "origin": [ - 430.300048828125, - 476.8500061035156 - ], - "bbox": [ - 430.300048828125, - 470.0500183105469, - 445.0000305175781, - 488.3500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.300048828125, - 470.0500183105469, - 445.0000305175781, - 505.0500183105469 - ] - } - ] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 449.10003662109375, - 462.45001220703125, - 457.300048828125, - 488.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0016", - "origin": [ - 449.10003662109375, - 477.3500061035156 - ], - "bbox": [ - 449.10003662109375, - 462.45001220703125, - 449.10003662109375, - 487.3500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\u001b\u001a\u001d\u001c", - "origin": [ - 449.10003662109375, - 477.3500061035156 - ], - "bbox": [ - 449.10003662109375, - 470.5500183105469, - 457.300048828125, - 488.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.10003662109375, - 462.45001220703125, - 457.300048828125, - 488.8500061035156 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 483.800048828125, - 476.54998779296875, - 522.2000122070312, - 495.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×QÞc×Qæ=ÝrÞc×ré", - "origin": [ - 483.800048828125, - 483.04998779296875 - ], - "bbox": [ - 483.800048828125, - 476.54998779296875, - 522.2000122070312, - 495.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.800048828125, - 476.54998779296875, - 522.2000122070312, - 495.4499816894531 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 71.20004272460938, - 489.25, - 422.9000244140625, - 508.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "â8Ø+Õ/×QÞcÛcÒrÔÖØ©ÛcÔw×gÓ", - "origin": [ - 71.20004272460938, - 496.04998779296875 - ], - "bbox": [ - 71.20004272460938, - 489.54998779296875, - 128.0000457763672, - 508.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\u001e�\f\u000b", - "origin": [ - 128.0000457763672, - 496.04998779296875 - ], - "bbox": [ - 128.0000457763672, - 489.25, - 144.30003356933594, - 507.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NÝræWÛcÜu×­ÝrÞ1èu×QÞ4Ýræ8ÒNۯߩåyÔÖÕQÒrѪè8ÔlÓZÛcÒrØ8Õ/×­å×QÞcÛcÒrÔÖØ+ÔÖØuç\u0010ÛZÝ»ÛcÜu×\u0010ëVÛcÒrØ8è8Ò\u001dÞGè", - "origin": [ - 144.30003356933594, - 496.04998779296875 - ], - "bbox": [ - 144.30003356933594, - 489.54998779296875, - 422.9000244140625, - 508.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 489.25, - 422.9000244140625, - 508.4499816894531 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 441.300048828125, - 489.54998779296875, - 522.2000732421875, - 508.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝWèu×gÑIé\u0018æ™ÝrÞ-×", - "origin": [ - 441.300048828125, - 496.04998779296875 - ], - "bbox": [ - 441.300048828125, - 489.54998779296875, - 482.5000305175781, - 508.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 482.5000305175781, - 496.04998779296875 - ], - "bbox": [ - 482.5000305175781, - 489.54998779296875, - 487.2000427246094, - 507.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÒrÙ¥å+Ñw×ré", - "origin": [ - 487.2000427246094, - 496.04998779296875 - ], - "bbox": [ - 487.2000427246094, - 489.54998779296875, - 522.2000732421875, - 508.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 441.300048828125, - 489.54998779296875, - 522.2000732421875, - 508.4499816894531 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 71.20004272460938, - 502.54998779296875, - 518.6998291015625, - 521.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÞc×\u0016×", - "origin": [ - 71.20004272460938, - 509.04998779296875 - ], - "bbox": [ - 71.20004272460938, - 502.54998779296875, - 89.00004577636719, - 521.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 89.00004577636719, - 509.04998779296875 - ], - "bbox": [ - 89.00004577636719, - 502.54998779296875, - 93.70004272460938, - 520.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZÞc×gÙ�×gÑwߥÔÖÙ¥å8ÞcÝrÚ+Ò\u001dÚ+ÑÖ×ròBó¢×Qãr×QÞcÛcÜu×gÑw×gÓGÓQéuÒ\u001dÛ\"ÛcÜuדÑÖÔÖØ8×gÒ\u001dÞGÔwÛsß�ÓcÕQÒrÑÖ×¢ÛcÜu×Qߜ٥Ògߜå+ÑÖÒgߥÒrØ\u001f×gÓcÓc×gتÛcÔÖÒrÑyÞcÝ?Ñw×\u0016ÔÖØ", - "origin": [ - 93.70004272460938, - 509.04998779296875 - ], - "bbox": [ - 93.70004272460938, - 502.54998779296875, - 518.6998291015625, - 521.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 502.54998779296875, - 518.6998291015625, - 521.4500122070312 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 71.10004425048828, - 515.1499633789062, - 281.9000244140625, - 534.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u0010ÒrÓcÜ8ÔÖØ8ç&Ý?â8Û^ÛcÜu×;å+Ôw×gÕ/×Qà¢ÔÖÓZ×%ÑÖÔÖØ8×gÒ\u001dÞ\u001båÝrÛZ×gØ©ÛcÔÖÒrÑÖÓQò", - "origin": [ - 71.10004425048828, - 521.949951171875 - ], - "bbox": [ - 71.10004425048828, - 515.449951171875, - 275.8000183105469, - 534.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": " \u001f", - "origin": [ - 275.8000183105469, - 521.949951171875 - ], - "bbox": [ - 275.8000183105469, - 515.1499633789062, - 281.9000244140625, - 533.449951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10004425048828, - 515.1499633789062, - 281.9000244140625, - 534.3499755859375 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 85.4000473022461, - 527.949951171875, - 518.7000732421875, - 547.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0018", - "origin": [ - 85.4000473022461, - 534.949951171875 - ], - "bbox": [ - 85.4000473022461, - 527.949951171875, - 85.4000473022461, - 546.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001bß", - "origin": [ - 85.4000473022461, - 534.949951171875 - ], - "bbox": [ - 85.4000473022461, - 528.449951171875, - 93.00004577636719, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.4000473022461, - 527.949951171875, - 93.00004577636719, - 547.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×", - "origin": [ - 103.300048828125, - 534.949951171875 - ], - "bbox": [ - 103.300048828125, - 528.449951171875, - 103.300048828125, - 547.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 103.300048828125, - 534.949951171875 - ], - "bbox": [ - 103.300048828125, - 528.449951171875, - 108.00004577636719, - 546.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå×QÞGÔÖ×gØ8Õ/×ré¡ÓcÙ�ÝVÝrÛcܾåÝ?ÑwßWØuÝ?Ù¥ÔlÒrÑ­ÔÖØ©ÛZ×QÞGÒrÕ/ÛcÔwÝ?Ø8Ó&å+ÑÖÒTß", - "origin": [ - 108.00004577636719, - 534.949951171875 - ], - "bbox": [ - 108.00004577636719, - 528.449951171875, - 331.9000549316406, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.300048828125, - 528.449951171875, - 331.9000549316406, - 547.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ", - "origin": [ - 342.2000732421875, - 534.949951171875 - ], - "bbox": [ - 342.2000732421875, - 528.449951171875, - 347.6000671386719, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.2000732421875, - 528.449951171875, - 347.6000671386719, - 547.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÓcÓZ×gØ©ÛcÔÖÒrѽÞGÝ?Ñw×ré­ÓcÒgß", - "origin": [ - 358.2000732421875, - 534.949951171875 - ], - "bbox": [ - 358.2000732421875, - 528.449951171875, - 437.20001220703125, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 358.2000732421875, - 528.449951171875, - 437.20001220703125, - 547.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 447.8000793457031, - 534.949951171875 - ], - "bbox": [ - 447.8000793457031, - 528.449951171875, - 450.90008544921875, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 447.8000793457031, - 528.449951171875, - 450.90008544921875, - 547.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8חëVÛcÒrØ+è8Ò\u001dÞGè", - "origin": [ - 461.2000732421875, - 534.949951171875 - ], - "bbox": [ - 461.2000732421875, - 528.449951171875, - 518.7000732421875, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.2000732421875, - 528.449951171875, - 518.7000732421875, - 547.3499755859375 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 81.10008239746094, - 541.3499755859375, - 522.2001342773438, - 560.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝVè8×gÑ©ÒrØ8è¬érÛZÝ\u0016ڐ×\u001bèu×QÞGÔwãr×gè&æ=ÞcÝ?ٟÛcÜ8×QÞc×réªÔÖØ\u0019å+Üu×gØuÝ?Ù¥×gØuÝ?ÑwÝrç?ÔÖÕQÒrÑ©æ™ÝrÞ1Õ/×gÓ·Ýræ8å+Ü©ßVÓcÔlÕQÓ-Ò\u001dÛ¡ÓZÛcÔÖÑlѪÑwÝaà\"×QÞ¡×gØu×QÞGç?Ôw×gÓQò", - "origin": [ - 81.10008239746094, - 547.8499755859375 - ], - "bbox": [ - 81.10008239746094, - 541.3499755859375, - 522.2001342773438, - 560.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.10008239746094, - 541.3499755859375, - 522.2001342773438, - 560.25 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 71.40008544921875, - 553.8499755859375, - 518.7001953125, - 573.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëWÔlØ8Õ/×­èu×QÛcÒrÔÖÑÖÓ¬ÝræVÛcÜ8×\"Õ/Ý?Ò\u001dÞGÓZ×", - "origin": [ - 71.40008544921875, - 560.8499755859375 - ], - "bbox": [ - 71.40008544921875, - 554.3499755859375, - 185.20008850097656, - 573.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 185.20008850097656, - 560.8499755859375 - ], - "bbox": [ - 185.20008850097656, - 554.3499755859375, - 189.90008544921875, - 572.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞ1ÒrÔÖØ8ÔÖØuç¢Ò\u001dÞc×½â8Ø", - "origin": [ - 189.90008544921875, - 560.8499755859375 - ], - "bbox": [ - 189.90008544921875, - 554.3499755859375, - 258.40008544921875, - 573.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 258.40008544921875, - 560.8499755859375 - ], - "bbox": [ - 258.40008544921875, - 553.8499755859375, - 264.40008544921875, - 572.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WØuÝaà»Ø°éaÔlØ;å+Ò\u001dÞcÛcÔÖÕQâ+ÑÖÒ\u001dÞ°ÛcÜuÝ?ÓZ×\u001bÑw×gÒrè8ÔÖØuçNÛZÝ\u0016Ü8Ôwç?Ü8ÑÖߢÕ/Ý?Ø8ÓZÛZÞ1ÒrÔÖØu×gè", - "origin": [ - 264.40008544921875, - 560.8499755859375 - ], - "bbox": [ - 264.40008544921875, - 554.3499755859375, - 518.7001953125, - 573.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.40008544921875, - 553.8499755859375, - 518.7001953125, - 573.25 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 71.10008239746094, - 558.7499389648438, - 403.3000793457031, - 595.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ç?Òrâuçr×\u0010ÓZßWÙ¥Ù�×QÛZÞGÔÖ×gÓQéTà\u001b×\u001bØ8ÝTà\u000bÕ/Ý?Ø8ÓcÔÖèu×QÞ4ÛcÜu×½å+Ü8×gØuÝ?Ù�×gØuÝ?ÑwÝrç?ÔlÕQÒrÑ", - "origin": [ - 71.10008239746094, - 573.6499633789062 - ], - "bbox": [ - 71.10008239746094, - 567.1499633789062, - 337.9001159667969, - 586.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "{\"", - "origin": [ - 337.9001159667969, - 573.6499633789062 - ], - "bbox": [ - 337.9001159667969, - 558.7499389648438, - 343.7001037597656, - 583.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "B\u001eb&\u0018\u001c%\u0014", - "origin": [ - 343.7001037597656, - 573.6499633789062 - ], - "bbox": [ - 343.7001037597656, - 567.1499633789062, - 368.10009765625, - 585.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 368.10009765625, - 573.6499633789062 - ], - "bbox": [ - 368.10009765625, - 566.8499755859375, - 371.30010986328125, - 585.1499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4Ýræ", - "origin": [ - 371.30010986328125, - 573.6499633789062 - ], - "bbox": [ - 371.30010986328125, - 567.1499633789062, - 383.5000915527344, - 586.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "#!", - "origin": [ - 383.5000915527344, - 573.6499633789062 - ], - "bbox": [ - 383.5000915527344, - 560.7499389648438, - 389.60009765625, - 595.449951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 389.60009765625, - 573.6499633789062 - ], - "bbox": [ - 389.60009765625, - 567.1499633789062, - 403.3000793457031, - 586.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 558.7499389648438, - 403.3000793457031, - 595.449951171875 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 411.9001159667969, - 566.6499633789062, - 521.5001220703125, - 586.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "û", - "origin": [ - 411.9001159667969, - 573.6499633789062 - ], - "bbox": [ - 411.9001159667969, - 567.1499633789062, - 411.9001159667969, - 586.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 411.9001159667969, - 573.6499633789062 - ], - "bbox": [ - 411.9001159667969, - 566.6499633789062, - 417.4001159667969, - 585.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1érà»Ü8ÔÖÕ1ܳÕ/Ý?Ø8Ø8×gÕ/ÛcÓ", - "origin": [ - 417.4001159667969, - 573.6499633789062 - ], - "bbox": [ - 417.4001159667969, - 567.1499633789062, - 493.900146484375, - 586.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.9001159667969, - 566.6499633789062, - 493.900146484375, - 586.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f;X\u0010\u0013\u000e�\u0014", - "origin": [ - 501.20013427734375, - 573.6499633789062 - ], - "bbox": [ - 501.20013427734375, - 567.1499633789062, - 521.5001220703125, - 585.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 501.20013427734375, - 567.1499633789062, - 521.5001220703125, - 585.0499877929688 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 71.90011596679688, - 573.7499389648438, - 520.5, - 608.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "1\u0013)�&'\u0014\u0016\u001c%\u001e89\u000f\"UI3\"�;X\u001c\u00136H) \u0010\u0013\u001b�\u000e(\u001c%\u0014", - "origin": [ - 71.90011596679688, - 586.6499633789062 - ], - "bbox": [ - 71.90011596679688, - 580.1499633789062, - 169.10011291503906, - 598.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.90011596679688, - 580.1499633789062, - 169.10011291503906, - 598.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u00147;�\"^D", - "origin": [ - 177.2001190185547, - 586.6499633789062 - ], - "bbox": [ - 177.2001190185547, - 580.1499633789062, - 195.60011291503906, - 598.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 177.2001190185547, - 580.1499633789062, - 195.60011291503906, - 598.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")7\u001e-\"$\u001c%\u000e\u000f) \u0014 FC&\u001893\u001c\u0013DY\"", - "origin": [ - 198.3001251220703, - 586.6499633789062 - ], - "bbox": [ - 198.3001251220703, - 580.1499633789062, - 256.60009765625, - 598.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“à»ÔÖÛcÜ", - "origin": [ - 256.60009765625, - 586.6499633789062 - ], - "bbox": [ - 256.60009765625, - 580.1499633789062, - 280.3000793457031, - 599.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.3001251220703, - 580.1499633789062, - 280.3000793457031, - 599.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÛcÓ", - "origin": [ - 290.30010986328125, - 586.6499633789062 - ], - "bbox": [ - 290.30010986328125, - 580.1499633789062, - 297.7001037597656, - 599.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "O9\u000f\u0010#\u001c\u0013\u000e\u000f&\u0018\"", - "origin": [ - 297.7001037597656, - 586.6499633789062 - ], - "bbox": [ - 297.7001037597656, - 580.1499633789062, - 330.6000671386719, - 598.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": " �", - "origin": [ - 330.6000671386719, - 586.6499633789062 - ], - "bbox": [ - 330.6000671386719, - 573.7499389648438, - 335.4000549316406, - 608.449951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": " *,\u000eA\u001c\u0013)7\u001e-\"31", - "origin": [ - 335.4000549316406, - 586.6499633789062 - ], - "bbox": [ - 335.4000549316406, - 580.1499633789062, - 368.0000305175781, - 598.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.30010986328125, - 573.7499389648438, - 368.0000305175781, - 608.449951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "1=\"'&\u00189\u0018\u000e')", - "origin": [ - 378.2001037597656, - 586.6499633789062 - ], - "bbox": [ - 378.2001037597656, - 580.1499633789062, - 402.60009765625, - 598.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 378.2001037597656, - 580.1499633789062, - 402.60009765625, - 598.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "4-\u0014 )>\u0010\u0013\u001e", - "origin": [ - 405.10009765625, - 586.6499633789062 - ], - "bbox": [ - 405.10009765625, - 580.1499633789062, - 423.90008544921875, - 598.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8ò", - "origin": [ - 423.90008544921875, - 586.6499633789062 - ], - "bbox": [ - 423.90008544921875, - 580.1499633789062, - 430.0000915527344, - 599.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 405.10009765625, - 580.1499633789062, - 430.0000915527344, - 599.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 438.90008544921875, - 586.6499633789062 - ], - "bbox": [ - 438.90008544921875, - 579.6499633789062, - 438.90008544921875, - 598.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PØ", - "origin": [ - 438.90008544921875, - 586.6499633789062 - ], - "bbox": [ - 438.90008544921875, - 580.1499633789062, - 443.0000915527344, - 599.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.90008544921875, - 579.6499633789062, - 443.0000915527344, - 599.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Ò\u001dÞcÛcÔÖÕQâ8ÑlÒ\u001dÞgéÛcÜ8ÔÖÓ", - "origin": [ - 453.0000915527344, - 586.6499633789062 - ], - "bbox": [ - 453.0000915527344, - 580.1499633789062, - 520.5, - 599.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.0000915527344, - 580.1499633789062, - 520.5, - 599.0499877929688 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 71.10009765625, - 593.1499633789062, - 259.5001220703125, - 612.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×QåyÑÖÒrÕ/×gÓ4ÒNÛZÞ1âu×ré\u001då+Ôw×gÕ/×Qà»ÔÖÓc×­ÑÖÔÖØu×gÒ\u001dÞ¬åÝrÛZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 71.10009765625, - 599.6499633789062 - ], - "bbox": [ - 71.10009765625, - 593.1499633789062, - 259.5001220703125, - 612.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10009765625, - 593.1499633789062, - 259.5001220703125, - 612.0499877929688 - ] - } - ] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 273.2000732421875, - 586.7499389648438, - 520.5001220703125, - 621.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÚVߓҢÕ/Ý?Ò\u001dÞGÓZ×", - "origin": [ - 273.2000732421875, - 599.6499633789062 - ], - "bbox": [ - 273.2000732421875, - 593.1499633789062, - 319.50006103515625, - 612.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 319.50006103515625, - 599.6499633789062 - ], - "bbox": [ - 319.50006103515625, - 593.1499633789062, - 324.2000732421875, - 611.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞGÒrÔlØu×gè³åÝrÛZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 324.2000732421875, - 599.6499633789062 - ], - "bbox": [ - 324.2000732421875, - 593.1499633789062, - 405.3000793457031, - 612.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "=�", - "origin": [ - 405.3000793457031, - 599.6499633789062 - ], - "bbox": [ - 405.3000793457031, - 586.7499389648438, - 411.1000671386719, - 621.449951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 273.2000732421875, - 586.7499389648438, - 411.1000671386719, - 621.449951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Ñlâ8Ó°ÑwÝWÕQÒrÑ", - "origin": [ - 422.10009765625, - 599.6499633789062 - ], - "bbox": [ - 422.10009765625, - 593.1499633789062, - 463.30010986328125, - 612.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000f\u001f", - "origin": [ - 463.30010986328125, - 599.6499633789062 - ], - "bbox": [ - 463.30010986328125, - 586.7499389648438, - 468.80010986328125, - 621.449951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8Õ/Ûcâ+Ò\u001dÛcÔwÝ?Ø8Ó", - "origin": [ - 468.80010986328125, - 599.6499633789062 - ], - "bbox": [ - 468.80010986328125, - 593.1499633789062, - 520.5001220703125, - 612.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.10009765625, - 586.7499389648438, - 520.5001220703125, - 621.449951171875 - ] - } - ] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 71.30007934570312, - 597.64990234375, - 85.80007934570312, - 634.3499145507812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 71.30007934570312, - 612.5499267578125 - ], - "bbox": [ - 71.30007934570312, - 597.64990234375, - 71.30007934570312, - 622.5499267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")�", - "origin": [ - 71.30007934570312, - 612.5499267578125 - ], - "bbox": [ - 71.30007934570312, - 599.64990234375, - 76.60008239746094, - 634.3499145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ò", - "origin": [ - 76.60008239746094, - 612.5499267578125 - ], - "bbox": [ - 76.60008239746094, - 606.0499267578125, - 85.80007934570312, - 624.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.30007934570312, - 597.64990234375, - 85.80007934570312, - 634.3499145507812 - ] - } - ] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 93.30007934570312, - 612.64990234375, - 522.2000732421875, - 647.3499145507812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×", - "origin": [ - 93.30007934570312, - 625.5499267578125 - ], - "bbox": [ - 93.30007934570312, - 619.0499267578125, - 99.30007934570312, - 637.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "K\u001f", - "origin": [ - 99.30007934570312, - 625.5499267578125 - ], - "bbox": [ - 99.30007934570312, - 612.64990234375, - 107.10008239746094, - 647.3499145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â+Õ/Ûcâ8Ò\u001dÛcÔwÝ?Ø8Ó\"Ò\u001dÞc×^ÛZÞc×gÒ\u001dÛZ×gè\rÒrÓ­à¢Ü8ÔwÛZ×»ØuÝ?ÔlÓZ×Nà»ÔwÛcÜ¥Ù¥×gÒr؜ÒrØ8è Õ/ÝrÞcÞc×gÑÖÒ\u001dÛcÔwÝ?جéªÞc×gÓZå×gÕ/ÛcÔwãr×gÑÖßré©ç?Ôwãr×gØ Ú©ß", - "origin": [ - 107.10008239746094, - 625.5499267578125 - ], - "bbox": [ - 107.10008239746094, - 619.0499267578125, - 515.800048828125, - 637.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-\u0017", - "origin": [ - 515.800048828125, - 625.5499267578125 - ], - "bbox": [ - 515.800048828125, - 619.0499267578125, - 522.2000732421875, - 636.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.30007934570312, - 612.64990234375, - 522.2000732421875, - 647.3499145507812 - ] - } - ] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 233.8000946044922, - 633.3499145507812, - 239.10009765625, - 670.0499267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 233.8000946044922, - 648.2499389648438 - ], - "bbox": [ - 233.8000946044922, - 633.3499145507812, - 233.8000946044922, - 658.2499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")�", - "origin": [ - 233.8000946044922, - 648.2499389648438 - ], - "bbox": [ - 233.8000946044922, - 635.3499145507812, - 239.10009765625, - 670.0499267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.8000946044922, - 633.3499145507812, - 239.10009765625, - 670.0499267578125 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 248.4001007080078, - 632.8499145507812, - 251.8000946044922, - 659.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 248.4001007080078, - 647.7499389648438 - ], - "bbox": [ - 248.4001007080078, - 640.7499389648438, - 248.4001007080078, - 659.1499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 248.4001007080078, - 647.7499389648438 - ], - "bbox": [ - 248.4001007080078, - 632.8499145507812, - 251.8000946044922, - 657.7499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.4001007080078, - 632.8499145507812, - 251.8000946044922, - 659.1499633789062 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 258.7001037597656, - 641.2499389648438, - 262.9001159667969, - 659.7499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 258.7001037597656, - 648.2499389648438 - ], - "bbox": [ - 258.7001037597656, - 641.2499389648438, - 258.7001037597656, - 659.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "#\"", - "origin": [ - 258.7001037597656, - 648.2499389648438 - ], - "bbox": [ - 258.7001037597656, - 641.449951171875, - 262.9001159667969, - 659.7499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.7001037597656, - 641.2499389648438, - 262.9001159667969, - 659.7499389648438 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 510.1001281738281, - 641.2499389648438, - 520.5001220703125, - 660.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îg÷", - "origin": [ - 510.1001281738281, - 648.2499389648438 - ], - "bbox": [ - 510.1001281738281, - 641.7499389648438, - 515.0001220703125, - 660.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0001220703125, - 648.2499389648438 - ], - "bbox": [ - 515.0001220703125, - 641.2499389648438, - 520.5001220703125, - 659.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1001281738281, - 641.2499389648438, - 520.5001220703125, - 660.6499633789062 - ] - } - ] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 204.5001220703125, - 653.949951171875, - 209.8001251220703, - 690.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 204.5001220703125, - 668.8499755859375 - ], - "bbox": [ - 204.5001220703125, - 653.949951171875, - 204.5001220703125, - 678.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")�", - "origin": [ - 204.5001220703125, - 668.8499755859375 - ], - "bbox": [ - 204.5001220703125, - 655.949951171875, - 209.8001251220703, - 690.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 204.5001220703125, - 653.949951171875, - 209.8001251220703, - 690.6499633789062 - ] - } - ] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 219.2001190185547, - 653.449951171875, - 222.60011291503906, - 679.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 219.2001190185547, - 668.3499755859375 - ], - "bbox": [ - 219.2001190185547, - 661.3499755859375, - 219.2001190185547, - 679.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 219.2001190185547, - 668.3499755859375 - ], - "bbox": [ - 219.2001190185547, - 653.449951171875, - 222.60011291503906, - 678.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.2001190185547, - 653.449951171875, - 222.60011291503906, - 679.75 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 229.5001220703125, - 653.949951171875, - 238.8001251220703, - 690.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 229.5001220703125, - 668.8499755859375 - ], - "bbox": [ - 229.5001220703125, - 661.8499755859375, - 229.5001220703125, - 680.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "G\u001b", - "origin": [ - 229.5001220703125, - 668.8499755859375 - ], - "bbox": [ - 229.5001220703125, - 653.949951171875, - 233.60012817382812, - 678.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 233.60012817382812, - 668.8499755859375 - ], - "bbox": [ - 233.60012817382812, - 655.949951171875, - 238.8001251220703, - 690.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.5001220703125, - 653.949951171875, - 238.8001251220703, - 690.6499633789062 - ] - } - ] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 258.70013427734375, - 661.8499755859375, - 262.900146484375, - 680.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 258.70013427734375, - 668.8499755859375 - ], - "bbox": [ - 258.70013427734375, - 661.8499755859375, - 258.70013427734375, - 680.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "#\"", - "origin": [ - 258.70013427734375, - 668.8499755859375 - ], - "bbox": [ - 258.70013427734375, - 662.0499877929688, - 262.900146484375, - 680.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.70013427734375, - 661.8499755859375, - 262.900146484375, - 680.3499755859375 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 307.1001281738281, - 653.449951171875, - 310.5001220703125, - 679.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 307.1001281738281, - 668.3499755859375 - ], - "bbox": [ - 307.1001281738281, - 661.3499755859375, - 307.1001281738281, - 679.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 307.1001281738281, - 668.3499755859375 - ], - "bbox": [ - 307.1001281738281, - 653.449951171875, - 310.5001220703125, - 678.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.1001281738281, - 653.449951171875, - 310.5001220703125, - 679.75 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 317.4001159667969, - 653.949951171875, - 321.5001220703125, - 680.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 317.4001159667969, - 668.8499755859375 - ], - "bbox": [ - 317.4001159667969, - 661.8499755859375, - 317.4001159667969, - 680.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "G\u001b", - "origin": [ - 317.4001159667969, - 668.8499755859375 - ], - "bbox": [ - 317.4001159667969, - 653.949951171875, - 321.5001220703125, - 678.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.4001159667969, - 653.949951171875, - 321.5001220703125, - 680.25 - ] - } - ] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 327.30010986328125, - 653.449951171875, - 330.7001037597656, - 679.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 327.30010986328125, - 668.3499755859375 - ], - "bbox": [ - 327.30010986328125, - 661.3499755859375, - 327.30010986328125, - 679.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 327.30010986328125, - 668.3499755859375 - ], - "bbox": [ - 327.30010986328125, - 653.449951171875, - 330.7001037597656, - 678.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.30010986328125, - 653.449951171875, - 330.7001037597656, - 679.75 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 357.9001159667969, - 653.949951171875, - 367.4001159667969, - 690.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 357.9001159667969, - 668.8499755859375 - ], - "bbox": [ - 357.9001159667969, - 661.8499755859375, - 357.9001159667969, - 680.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\n\u001e", - "origin": [ - 357.9001159667969, - 668.8499755859375 - ], - "bbox": [ - 357.9001159667969, - 655.949951171875, - 362.1001281738281, - 690.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "‡\u001b", - "origin": [ - 362.1001281738281, - 668.8499755859375 - ], - "bbox": [ - 362.1001281738281, - 653.949951171875, - 367.4001159667969, - 678.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.9001159667969, - 653.949951171875, - 367.4001159667969, - 690.6499633789062 - ] - } - ] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 376.6001281738281, - 661.8499755859375, - 382.20013427734375, - 681.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ü", - "origin": [ - 376.6001281738281, - 668.8499755859375 - ], - "bbox": [ - 376.6001281738281, - 662.3499755859375, - 376.6001281738281, - 681.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 376.6001281738281, - 668.8499755859375 - ], - "bbox": [ - 376.6001281738281, - 661.8499755859375, - 382.20013427734375, - 680.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.6001281738281, - 661.8499755859375, - 382.20013427734375, - 681.25 - ] - } - ] - }, - { - "number": 110, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 510.1001281738281, - 661.8499755859375, - 520.5001220703125, - 681.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgø", - "origin": [ - 510.1001281738281, - 668.8499755859375 - ], - "bbox": [ - 510.1001281738281, - 662.3499755859375, - 515.0001220703125, - 681.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0001220703125, - 668.8499755859375 - ], - "bbox": [ - 515.0001220703125, - 661.8499755859375, - 520.5001220703125, - 680.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1001281738281, - 661.8499755859375, - 520.5001220703125, - 681.25 - ] - } - ] - }, - { - "number": 112, - "type": 0, - "bbox": [ - 71.10012817382812, - 684.7499389648438, - 102.20013427734375, - 703.949951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×QÞc×", - "origin": [ - 71.10012817382812, - 691.5499267578125 - ], - "bbox": [ - 71.10012817382812, - 685.0499267578125, - 94.30013275146484, - 703.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "$\r", - "origin": [ - 94.30013275146484, - 691.5499267578125 - ], - "bbox": [ - 94.30013275146484, - 684.7499389648438, - 102.20013427734375, - 703.0499267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10012817382812, - 684.7499389648438, - 102.20013427734375, - 703.949951171875 - ] - } - ] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 108.90013122558594, - 676.14990234375, - 112.30013275146484, - 702.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 108.90013122558594, - 691.0499267578125 - ], - "bbox": [ - 108.90013122558594, - 684.0499267578125, - 108.90013122558594, - 702.449951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 108.90013122558594, - 691.0499267578125 - ], - "bbox": [ - 108.90013122558594, - 676.14990234375, - 112.30013275146484, - 701.0499267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.90013122558594, - 676.14990234375, - 112.30013275146484, - 702.449951171875 - ] - } - ] - }, - { - "number": 114, - "type": 0, - "bbox": [ - 119.20013427734375, - 678.64990234375, - 402.400146484375, - 713.3499145507812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 119.20013427734375, - 691.5499267578125 - ], - "bbox": [ - 119.20013427734375, - 684.5499267578125, - 119.20013427734375, - 702.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Bèu×gÓcÕ/ÞGÔÖÚ6×gÓBÛcÜu×»à»ÔÖèuÛcÜ&Ýræ6ÛcÜu×^ÑwÝWÕQÒrÑuè8ÔÖÓZÛZÞGÔÖÚ+âuÛcÔwÝ?سÝræ", - "origin": [ - 119.20013427734375, - 691.5499267578125 - ], - "bbox": [ - 119.20013427734375, - 685.0499267578125, - 339.6001281738281, - 703.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.20013427734375, - 684.5499267578125, - 339.6001281738281, - 703.949951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001f", - "origin": [ - 345.900146484375, - 691.5499267578125 - ], - "bbox": [ - 345.900146484375, - 678.64990234375, - 345.900146484375, - 713.3499145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â+Õ/Ûcâ8Ò\u001dÛcÔwÝ?Ø8ÓQò", - "origin": [ - 345.900146484375, - 691.5499267578125 - ], - "bbox": [ - 345.900146484375, - 685.0499267578125, - 402.400146484375, - 703.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 345.900146484375, - 678.64990234375, - 402.400146484375, - 713.3499145507812 - ] - } - ] - }, - { - "number": 116, - "type": 0, - "bbox": [ - 417.400146484375, - 685.0499267578125, - 520.3002319335938, - 703.949951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔlÓBè+ÔÖÓZÛZÞGÔwÚyâuÛcÔwÝ?سÕQÒrØ+ØuÝrÛ", - "origin": [ - 417.400146484375, - 691.5499267578125 - ], - "bbox": [ - 417.400146484375, - 685.0499267578125, - 520.3002319335938, - 703.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 417.400146484375, - 685.0499267578125, - 520.3002319335938, - 703.949951171875 - ] - } - ] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 71.10012817382812, - 697.949951171875, - 461.5000305175781, - 716.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×;ÒrÓcÓZ×gÓcÓc×gè–à»ÔwÛcÜ8Ý?âuÛ\u0010æ=âuÞGÛcÜu×QÞ^ÔÖØ8ÓcÔÖç?ܪÛNÔÖØ©ÛZÝ ÜuÝaà", - "origin": [ - 71.10012817382812, - 704.449951171875 - ], - "bbox": [ - 71.10012817382812, - 697.949951171875, - 274.2001647949219, - 716.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10012817382812, - 697.949951171875, - 274.2001647949219, - 716.8499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™ÝrÞ1Õ/×gÓ»Ò\u001dÞGÔÖÓc×%Ò\u001dÛ»ÓcÙ¥ÒrÑÖѰÓcå+ÒrÕ/×QÛcÔÖÙ�×%ÓcÕQÒrÑÖ×gÓQò", - "origin": [ - 285.70013427734375, - 704.449951171875 - ], - "bbox": [ - 285.70013427734375, - 697.949951171875, - 461.5000305175781, - 716.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 285.70013427734375, - 697.949951171875, - 461.5000305175781, - 716.8499755859375 - ] - } - ] - }, - { - "number": 119, - "type": 0, - "bbox": [ - 80.40013122558594, - 711.8499145507812, - 122.00013732910156, - 739.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "+", - "origin": [ - 80.40013122558594, - 726.7499389648438 - ], - "bbox": [ - 80.40013122558594, - 711.8499145507812, - 80.40013122558594, - 736.7499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TALKNALt´EcFJtžQ`WH", - "origin": [ - 80.40013122558594, - 726.7499389648438 - ], - "bbox": [ - 80.40013122558594, - 720.2499389648438, - 122.00013732910156, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.40013122558594, - 711.8499145507812, - 122.00013732910156, - 739.1499633789062 - ] - } - ] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 130.90013122558594, - 720.2499389648438, - 149.10012817382812, - 739.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]FJM1`uH", - "origin": [ - 130.90013122558594, - 726.7499389648438 - ], - "bbox": [ - 130.90013122558594, - 720.2499389648438, - 149.10012817382812, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 130.90013122558594, - 720.2499389648438, - 149.10012817382812, - 739.1499633789062 - ] - } - ] - }, - { - "number": 123, - "type": 0, - "bbox": [ - 158.0001220703125, - 720.2499389648438, - 182.40013122558594, - 739.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]³‘¬ALtDt", - "origin": [ - 158.0001220703125, - 726.7499389648438 - ], - "bbox": [ - 158.0001220703125, - 720.2499389648438, - 182.40013122558594, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.0001220703125, - 720.2499389648438, - 182.40013122558594, - 739.1499633789062 - ] - } - ] - }, - { - "number": 125, - "type": 0, - "bbox": [ - 194.10012817382812, - 720.2499389648438, - 262.80010986328125, - 739.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EZh/M^E1O�M¯¿?MPY]H\"ReO&H", - "origin": [ - 194.10012817382812, - 726.7499389648438 - ], - "bbox": [ - 194.10012817382812, - 720.2499389648438, - 262.80010986328125, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.10012817382812, - 720.2499389648438, - 262.80010986328125, - 739.1499633789062 - ] - } - ] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 271.6001281738281, - 711.8499145507812, - 347.7001647949219, - 739.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M", - "origin": [ - 271.6001281738281, - 726.7499389648438 - ], - "bbox": [ - 271.6001281738281, - 720.2499389648438, - 271.6001281738281, - 739.1499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "J)", - "origin": [ - 271.6001281738281, - 726.7499389648438 - ], - "bbox": [ - 271.6001281738281, - 711.8499145507812, - 279.6001281738281, - 736.7499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO\u0018M¯HJADY\u0010HJM¯FJKNX\"RG °H", - "origin": [ - 279.6001281738281, - 726.7499389648438 - ], - "bbox": [ - 279.6001281738281, - 720.2499389648438, - 347.7001647949219, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.6001281738281, - 711.8499145507812, - 347.7001647949219, - 739.1499633789062 - ] - } - ] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 356.60015869140625, - 713.8499145507812, - 520.500244140625, - 748.5499267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M^b©ALR1•\u0018hgALtDtLM»R1F\"h/ReO¬¶-MP•\u0018K^EGO\u0018O³ReCrM]FsEcHJR1F", - "origin": [ - 356.60015869140625, - 726.7499389648438 - ], - "bbox": [ - 356.60015869140625, - 720.2499389648438, - 503.5002136230469, - 739.1499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\n[", - "origin": [ - 503.5002136230469, - 726.7499389648438 - ], - "bbox": [ - 503.5002136230469, - 713.8499145507812, - 507.7002258300781, - 748.5499267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6‘6M", - "origin": [ - 507.7002258300781, - 726.7499389648438 - ], - "bbox": [ - 507.7002258300781, - 720.2499389648438, - 520.500244140625, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 356.60015869140625, - 713.8499145507812, - 520.500244140625, - 748.5499267578125 - ] - } - ] - }, - { - "number": 130, - "type": 0, - "bbox": [ - 71.10015869140625, - 722.7499389648438, - 119.50016021728516, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "XIALKNC\u0018tž\"HsE", - "origin": [ - 71.10015869140625, - 737.6499633789062 - ], - "bbox": [ - 71.10015869140625, - 731.1499633789062, - 103.90016174316406, - 750.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "N)", - "origin": [ - 103.90016174316406, - 737.6499633789062 - ], - "bbox": [ - 103.90016174316406, - 722.7499389648438, - 108.30016326904297, - 747.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/MH", - "origin": [ - 108.30016326904297, - 737.6499633789062 - ], - "bbox": [ - 108.30016326904297, - 731.1499633789062, - 119.50016021728516, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10015869140625, - 722.7499389648438, - 119.50016021728516, - 750.0499877929688 - ] - } - ] - }, - { - "number": 132, - "type": 0, - "bbox": [ - 128.40016174316406, - 731.1499633789062, - 153.50015258789062, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]K¾EGX+H", - "origin": [ - 128.40016174316406, - 737.6499633789062 - ], - "bbox": [ - 128.40016174316406, - 731.1499633789062, - 153.50015258789062, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.40016174316406, - 731.1499633789062, - 153.50015258789062, - 750.0499877929688 - ] - } - ] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 162.3001708984375, - 731.1499633789062, - 213.5001678466797, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]\u001bEGFJMe`gXIALO\u0018Y]M¬H", - "origin": [ - 162.3001708984375, - 737.6499633789062 - ], - "bbox": [ - 162.3001708984375, - 731.1499633789062, - 213.5001678466797, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.3001708984375, - 731.1499633789062, - 213.5001678466797, - 750.0499877929688 - ] - } - ] - }, - { - "number": 136, - "type": 0, - "bbox": [ - 222.3001708984375, - 731.1499633789062, - 255.60018920898438, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]½aALMPtDS\u001bH", - "origin": [ - 222.3001708984375, - 737.6499633789062 - ], - "bbox": [ - 222.3001708984375, - 731.1499633789062, - 255.60018920898438, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.3001708984375, - 731.1499633789062, - 255.60018920898438, - 750.0499877929688 - ] - } - ] - }, - { - "number": 138, - "type": 0, - "bbox": [ - 264.4001770019531, - 731.1499633789062, - 370.6002502441406, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M¬E1C\u0018CTFJReCTFJA´EcHJMB”Q•\u0018E1OQHJ•\u0018K\u000fKNM]Y", - "origin": [ - 264.4001770019531, - 737.6499633789062 - ], - "bbox": [ - 264.4001770019531, - 731.1499633789062, - 370.6002502441406, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.4001770019531, - 731.1499633789062, - 370.6002502441406, - 750.0499877929688 - ] - } - ] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 379.7001953125, - 731.1499633789062, - 519.5001831054688, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1O\u0018ALYZEGt\u0018R1CrM]FsEGHJRGFZš8ÀBRZ‘MPheM]FZ`gE­SaM]HsEGALtDMPS", - "origin": [ - 379.7001953125, - 737.6499633789062 - ], - "bbox": [ - 379.7001953125, - 731.1499633789062, - 519.5001831054688, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 379.7001953125, - 731.1499633789062, - 519.5001831054688, - 750.0499877929688 - ] - } - ] - }, - { - "number": 141, - "type": 0, - "bbox": [ - 71.10018920898438, - 742.1499633789062, - 105.6001968383789, - 761.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "X’HJ•\u001dSg­R1 \u001dH", - "origin": [ - 71.10018920898438, - 748.6499633789062 - ], - "bbox": [ - 71.10018920898438, - 742.1499633789062, - 105.6001968383789, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10018920898438, - 742.1499633789062, - 105.6001968383789, - 761.0499877929688 - ] - } - ] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 114.40018463134766, - 742.1499633789062, - 183.4001922607422, - 761.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MMPKNM]FJd1MPO\u0018YPM6R1 rXI•aY", - "origin": [ - 114.40018463134766, - 748.6499633789062 - ], - "bbox": [ - 114.40018463134766, - 742.1499633789062, - 183.4001922607422, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.40018463134766, - 742.1499633789062, - 183.4001922607422, - 761.0499877929688 - ] - } - ] - }, - { - "number": 145, - "type": 0, - "bbox": [ - 194.60018920898438, - 742.1499633789062, - 348.70025634765625, - 761.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "HJM]FJKNXW ºFJR1K", - "origin": [ - 194.60018920898438, - 748.6499633789062 - ], - "bbox": [ - 194.60018920898438, - 742.1499633789062, - 230.70018005371094, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.60018920898438, - 742.1499633789062, - 230.70018005371094, - 761.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E-YZEG•\u0018XJEGt\u0018XIM]H8CrM]FJXICrM]Y]HJALh/Me`/RG \u001dH", - "origin": [ - 241.00018310546875, - 748.6499633789062 - ], - "bbox": [ - 241.00018310546875, - 742.1499633789062, - 348.70025634765625, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.00018310546875, - 742.1499633789062, - 348.70025634765625, - 761.0499877929688 - ] - } - ] - }, - { - "number": 147, - "type": 0, - "bbox": [ - 357.6001892089844, - 742.1499633789062, - 472.3002014160156, - 761.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "My‘°EZh/MR1CrM]FsEGHJRGFyALO\"C\u001dEGFIHJALYP•atDEGFZ`", - "origin": [ - 357.6001892089844, - 748.6499633789062 - ], - "bbox": [ - 357.6001892089844, - 742.1499633789062, - 472.3002014160156, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.6001892089844, - 742.1499633789062, - 472.3002014160156, - 761.0499877929688 - ] - } - ] - }, - { - "number": 149, - "type": 0, - "bbox": [ - 482.3002014160156, - 742.1499633789062, - 519.6002807617188, - 761.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1XWFJMPYPM]OgHJtž", - "origin": [ - 482.3002014160156, - 748.6499633789062 - ], - "bbox": [ - 482.3002014160156, - 742.1499633789062, - 519.6002807617188, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 482.3002014160156, - 742.1499633789062, - 519.6002807617188, - 761.0499877929688 - ] - } - ] - }, - { - "number": 150, - "type": 0, - "bbox": [ - 71.10018920898438, - 752.6499633789062, - 274.9001770019531, - 772.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "£rMPMPO¢CrM]FI ¸RGFJKNMZS", - "origin": [ - 71.10018920898438, - 759.6499633789062 - ], - "bbox": [ - 71.10018920898438, - 753.1499633789062, - 128.80018615722656, - 772.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10018920898438, - 753.1499633789062, - 128.80018615722656, - 772.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "pem", - "origin": [ - 139.60018920898438, - 759.6499633789062 - ], - "bbox": [ - 139.60018920898438, - 753.1499633789062, - 144.2001953125, - 772.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 144.2001953125, - 759.6499633789062 - ], - "bbox": [ - 144.2001953125, - 752.6499633789062, - 148.5001983642578, - 771.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "l`\u0018MPh/MPOQHJ•\u0018E1tLtž»HJR\"£rM¡YPReK\"£\u0018ALO\u0018MPS^‘¬AžH", - "origin": [ - 148.5001983642578, - 759.6499633789062 - ], - "bbox": [ - 148.5001983642578, - 753.1499633789062, - 274.9001770019531, - 772.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.60018920898438, - 752.6499633789062, - 274.9001770019531, - 772.0499877929688 - ] - } - ] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 286.9001770019531, - 753.1499633789062, - 371.4002380371094, - 772.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "YPR1O\u0018XIADSaM¯FsEGHJALReOaX·E1tLR1O\u0018d\u001bH", - "origin": [ - 286.9001770019531, - 759.6499633789062 - ], - "bbox": [ - 286.9001770019531, - 753.1499633789062, - 371.4002380371094, - 772.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.9001770019531, - 753.1499633789062, - 371.4002380371094, - 772.0499877929688 - ] - } - ] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 380.2001953125, - 753.1499633789062, - 441.7002868652344, - 772.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M¡tDALOaMPX¬CaFJMPXIMPOQHJMZS", - "origin": [ - 380.2001953125, - 759.6499633789062 - ], - "bbox": [ - 380.2001953125, - 753.1499633789062, - 441.7002868652344, - 772.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.2001953125, - 753.1499633789062, - 441.7002868652344, - 772.0499877929688 - ] - } - ] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 454.90020751953125, - 753.1499633789062, - 467.1002197265625, - 772.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]FJM1š", - "origin": [ - 454.90020751953125, - 759.6499633789062 - ], - "bbox": [ - 454.90020751953125, - 753.1499633789062, - 467.1002197265625, - 772.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.90020751953125, - 753.1499633789062, - 467.1002197265625, - 772.0499877929688 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [ - { - "bbox": [ - 198.34649476228847, - 643.6581196581196, - 395.25221595487506, - 684.4871794871794 - ], - "image_path": "equation_interline/6_198_643_395_684.jpg" - } - ], - "inline_equations": [ - { - "bbox": [ - 497.06688154713936, - 190.2153846153846, - 505.71152296535047, - 205.58632478632478 - ], - "image_path": "equations_inline/6_497_190_505_205.jpg" - }, - { - "bbox": [ - 416.3835616438356, - 311.26153846153846, - 424.54794520547944, - 324.7111111111111 - ], - "image_path": "equations_inline/6_416_311_424_324.jpg" - }, - { - "bbox": [ - 234.84609186140207, - 465.9316239316239, - 294.87832393231264, - 481.3025641025641 - ], - "image_path": "equations_inline/6_234_465_294_481.jpg" - }, - { - "bbox": [ - 417.82433521353744, - 479.86153846153843, - 468.7316680096696, - 492.8307692307692 - ], - "image_path": "equations_inline/6_417_479_468_492.jpg" - }, - { - "bbox": [ - 279.51007252215953, - 482.7435897435897, - 326.09508460918613, - 494.7521367521367 - ], - "image_path": "equations_inline/6_279_482_326_494.jpg" - }, - { - "bbox": [ - 133.51168412570507, - 495.7128205128205, - 150.32070910556, - 505.8 - ], - "image_path": "equations_inline/6_133_495_150_505.jpg" - }, - { - "bbox": [ - 410.1402095084609, - 599.4666666666667, - 420.2256244963739, - 609.5538461538462 - ], - "image_path": "equations_inline/6_410_599_420_609.jpg" - }, - { - "bbox": [ - 70.11764705882352, - 611.9555555555555, - 85.9661563255439, - 622.5230769230769 - ], - "image_path": "equations_inline/6_70_611_85_622.jpg" - }, - { - "bbox": [ - 100.85414987912972, - 690.7316239316239, - 123.90652699435938, - 704.1811965811966 - ], - "image_path": "equations_inline/6_100_690_123_704.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 71.9962158203125, - 595.5, - 800.5619506835938 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 85.30000305175781, - 109.04998779296875, - 519.0999755859375, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.30000305175781, - 116.04998779296875 - ], - "bbox": [ - 85.30000305175781, - 109.04998779296875, - 85.30000305175781, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]؜ÛcÜuדÕ/Ý?تÛcÔlØ©â8â+Ù", - "origin": [ - 85.30000305175781, - 116.04998779296875 - ], - "bbox": [ - 85.30000305175781, - 109.54998779296875, - 158.50001525878906, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.30000305175781, - 109.04998779296875, - 158.50001525878906, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+ÔlÕ/ÛcâuÞc×réV×gÒrÕGܗÓcÔÖÙ¥å+Ñw×", - "origin": [ - 170.70001220703125, - 116.04998779296875 - ], - "bbox": [ - 170.70001220703125, - 109.54998779296875, - 260.6000061035156, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 260.6000061035156, - 116.04998779296875 - ], - "bbox": [ - 260.6000061035156, - 109.54998779296875, - 265.3000183105469, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�æ™ÝrÞ1Ù¥Ó\"Ò\u0019ÛcÔÖØ©ß", - "origin": [ - 265.3000183105469, - 116.04998779296875 - ], - "bbox": [ - 265.3000183105469, - 109.54998779296875, - 325.9000244140625, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0016�", - "origin": [ - 325.9000244140625, - 116.04998779296875 - ], - "bbox": [ - 325.9000244140625, - 109.04998779296875, - 336.20001220703125, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PڐÝ", - "origin": [ - 336.20001220703125, - 116.04998779296875 - ], - "bbox": [ - 336.20001220703125, - 109.54998779296875, - 346.8000183105469, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#�", - "origin": [ - 346.8000183105469, - 116.04998779296875 - ], - "bbox": [ - 346.8000183105469, - 109.54998779296875, - 351.70001220703125, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 351.70001220703125, - 116.04998779296875 - ], - "bbox": [ - 351.70001220703125, - 109.04998779296875, - 357.70001220703125, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019à¢ÔwÛcܜÒ", - "origin": [ - 357.70001220703125, - 116.04998779296875 - ], - "bbox": [ - 357.70001220703125, - 109.54998779296875, - 391.1000061035156, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "(&3;�\u001c\u0013\u000e\u00164-D", - "origin": [ - 391.1000061035156, - 116.04998779296875 - ], - "bbox": [ - 391.1000061035156, - 109.54998779296875, - 426.0, - 127.44998931884766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.70001220703125, - 109.04998779296875, - 426.0, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "D+\u0010#9\u000f\u001c\u0013D", - "origin": [ - 438.0, - 116.04998779296875 - ], - "bbox": [ - 438.0, - 109.54998779296875, - 455.5999755859375, - 127.44998931884766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.0, - 109.54998779296875, - 455.5999755859375, - 127.44998931884766 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")", - "origin": [ - 458.3999938964844, - 116.04998779296875 - ], - "bbox": [ - 458.3999938964844, - 109.54998779296875, - 458.3999938964844, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 458.3999938964844, - 116.04998779296875 - ], - "bbox": [ - 458.3999938964844, - 109.24998474121094, - 461.3999938964844, - 127.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "H\"$1", - "origin": [ - 461.3999938964844, - 116.04998779296875 - ], - "bbox": [ - 461.3999938964844, - 109.54998779296875, - 470.79998779296875, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“ڐÝ?â8Ø8è+Ò\u001dÞcß", - "origin": [ - 470.79998779296875, - 116.04998779296875 - ], - "bbox": [ - 470.79998779296875, - 109.54998779296875, - 519.0999755859375, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.3999938964844, - 109.24998474121094, - 519.0999755859375, - 128.44998168945312 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 71.19998168945312, - 121.95001220703125, - 519.7999877929688, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/Ý?Ø8è+ÔwÛcÔwÝ?ذé%à¢Ü8ÔÖÕGÜ", - "origin": [ - 71.19998168945312, - 128.95001220703125 - ], - "bbox": [ - 71.19998168945312, - 122.45001220703125, - 146.29998779296875, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 122.45001220703125, - 146.29998779296875, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å8ÞcÝ?Ü+ÔwÚ+ÔwÛcӗÛcÜ8×\u000bÑÖ×gÒ", - "origin": [ - 157.99998474121094, - 128.95001220703125 - ], - "bbox": [ - 157.99998474121094, - 122.45001220703125, - 235.3000030517578, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 235.3000030517578, - 128.95001220703125 - ], - "bbox": [ - 235.3000030517578, - 121.95001220703125, - 240.60000610351562, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÔÖØ8ç", - "origin": [ - 240.60000610351562, - 128.95001220703125 - ], - "bbox": [ - 240.60000610351562, - 122.45001220703125, - 255.6000213623047, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.99998474121094, - 121.95001220703125, - 255.6000213623047, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ å+ÞcÝrÚ+Ò\u001dÚ+ÔÖÑlÔwÛsßÍÛZÝ", - "origin": [ - 266.5999755859375, - 128.95001220703125 - ], - "bbox": [ - 266.5999755859375, - 122.45001220703125, - 343.3000183105469, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.5999755859375, - 122.45001220703125, - 343.3000183105469, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u000bÝ?âuÛcÓcÔÖèu×", - "origin": [ - 354.5999755859375, - 128.95001220703125 - ], - "bbox": [ - 354.5999755859375, - 122.45001220703125, - 404.7999572753906, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0016\u001e", - "origin": [ - 404.7999572753906, - 128.95001220703125 - ], - "bbox": [ - 404.7999572753906, - 121.95001220703125, - 415.0999450683594, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ŸÒrÓ", - "origin": [ - 415.0999450683594, - 128.95001220703125 - ], - "bbox": [ - 415.0999450683594, - 122.45001220703125, - 432.0999450683594, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.5999755859375, - 121.95001220703125, - 432.0999450683594, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÝ?ØuçÍÒrÓ", - "origin": [ - 442.0999755859375, - 128.95001220703125 - ], - "bbox": [ - 442.0999755859375, - 122.45001220703125, - 473.29998779296875, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 442.0999755859375, - 122.45001220703125, - 473.29998779296875, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×Qß", - "origin": [ - 483.29998779296875, - 128.95001220703125 - ], - "bbox": [ - 483.29998779296875, - 122.45001220703125, - 498.39996337890625, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.29998779296875, - 122.45001220703125, - 498.39996337890625, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÞc×", - "origin": [ - 510.1999816894531, - 128.95001220703125 - ], - "bbox": [ - 510.1999816894531, - 122.45001220703125, - 519.7999877929688, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1999816894531, - 122.45001220703125, - 519.7999877929688, - 141.35000610351562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 71.19998168945312, - 134.95001220703125, - 520.3999633789062, - 170.15000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ócâ", - "origin": [ - 71.19998168945312, - 141.95001220703125 - ], - "bbox": [ - 71.19998168945312, - 135.45001220703125, - 75.49998474121094, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 135.45001220703125, - 75.49998474121094, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 81.59998321533203, - 141.95001220703125 - ], - "bbox": [ - 81.59998321533203, - 136.25001525878906, - 81.59998321533203, - 170.15000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ÕQÔw×gØ©ÛcÑwß ÓZ×Qå+Ò\u001dÞ1Ò\u001dÛZ×gè°ò", - "origin": [ - 81.59998321533203, - 141.95001220703125 - ], - "bbox": [ - 81.59998321533203, - 135.45001220703125, - 171.6999969482422, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.59998321533203, - 135.45001220703125, - 171.6999969482422, - 170.15000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0018", - "origin": [ - 179.0999755859375, - 141.95001220703125 - ], - "bbox": [ - 179.0999755859375, - 134.95001220703125, - 179.0999755859375, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001bÞGÔÖØuç?ÔlØuç\u0019Û¯à\"Ý\u001fÓcâ8Õ1Ü\rÚ6Ý", - "origin": [ - 179.0999755859375, - 141.95001220703125 - ], - "bbox": [ - 179.0999755859375, - 135.45001220703125, - 275.1999816894531, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 179.0999755859375, - 134.95001220703125, - 275.1999816894531, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 280.1999816894531, - 141.95001220703125 - ], - "bbox": [ - 280.1999816894531, - 135.45001220703125, - 280.1999816894531, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "V×gÓ»Øu×", - "origin": [ - 280.1999816894531, - 141.95001220703125 - ], - "bbox": [ - 280.1999816894531, - 135.45001220703125, - 304.89996337890625, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 304.89996337890625, - 141.95001220703125 - ], - "bbox": [ - 304.89996337890625, - 135.45001220703125, - 309.5999755859375, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÛ»ÛZÝ�×gÒrÕGܖÝrÛcÜ8×QÞgé+Ócâ8Õ1Ü\rÛcÜ8Ò\u001dÛ»Ò�Õ/Ý?٥٥Ý?ؗڐÝrÞGèu×QÞ", - "origin": [ - 309.5999755859375, - 141.95001220703125 - ], - "bbox": [ - 309.5999755859375, - 135.45001220703125, - 520.3999633789062, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.1999816894531, - 135.45001220703125, - 520.3999633789062, - 154.35000610351562 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 71.0999755859375, - 148.35003662109375, - 213.29998779296875, - 167.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×Qç?ÔÖÝ?صÒ\u001dÞGÔlÓZ×gÓ»à¢Ü8ÔÖÕGÜ", - "origin": [ - 71.0999755859375, - 154.85003662109375 - ], - "bbox": [ - 71.0999755859375, - 148.35003662109375, - 155.89999389648438, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 148.35003662109375, - 155.89999389648438, - 167.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ\u0016Ñw×gÓcÓ¢ÛcÜ8ÒrØ", - "origin": [ - 165.8999786376953, - 154.85003662109375 - ], - "bbox": [ - 165.8999786376953, - 148.35003662109375, - 213.29998779296875, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.8999786376953, - 148.35003662109375, - 213.29998779296875, - 167.25003051757812 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 240.19998168945312, - 147.85003662109375, - 521.8999633789062, - 167.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 240.19998168945312, - 154.85003662109375 - ], - "bbox": [ - 240.19998168945312, - 148.35003662109375, - 254.79998779296875, - 167.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 254.79998779296875, - 154.85003662109375 - ], - "bbox": [ - 254.79998779296875, - 147.85003662109375, - 259.1999816894531, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "–Ñw×gØuçrÛcÜ", - "origin": [ - 259.1999816894531, - 154.85003662109375 - ], - "bbox": [ - 259.1999816894531, - 148.35003662109375, - 292.4999694824219, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.19998168945312, - 147.85003662109375, - 292.4999694824219, - 167.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 303.79998779296875, - 154.85003662109375 - ], - "bbox": [ - 303.79998779296875, - 147.85003662109375, - 303.79998779296875, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PÛcÜ8ÔÖÕ", - "origin": [ - 303.79998779296875, - 154.85003662109375 - ], - "bbox": [ - 303.79998779296875, - 148.35003662109375, - 321.3999938964844, - 167.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 321.3999938964844, - 154.85003662109375 - ], - "bbox": [ - 321.3999938964844, - 147.85003662109375, - 325.79998779296875, - 166.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 303.79998779296875, - 147.85003662109375, - 325.79998779296875, - 167.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 331.5999755859375, - 154.85003662109375 - ], - "bbox": [ - 331.5999755859375, - 147.85003662109375, - 331.5999755859375, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WéÛcÜu×\u0014Õ/Ý?Ø", - "origin": [ - 331.5999755859375, - 154.85003662109375 - ], - "bbox": [ - 331.5999755859375, - 148.35003662109375, - 373.39996337890625, - 167.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "b\n", - "origin": [ - 373.39996337890625, - 154.85003662109375 - ], - "bbox": [ - 373.39996337890625, - 148.35003662109375, - 379.39996337890625, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø8ÔlØuç¥ÚÝ?â8Ø8è8Ò\u001dÞGß\rÕ/Ý?Ø+è8ÔwÛcÔwÝ?صà»ÔÖÑÖÑ", - "origin": [ - 379.39996337890625, - 154.85003662109375 - ], - "bbox": [ - 379.39996337890625, - 148.35003662109375, - 521.8999633789062, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.5999755859375, - 147.85003662109375, - 521.8999633789062, - 167.25003051757812 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 71.19998168945312, - 161.35003662109375, - 483.6000061035156, - 180.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "è8ÔlÓcÓZÝ?Ñwãr×&ÔÖØªÛZÝ\rÒ\u001fæ™ÞG×Q×&ڐÝ?â8Ø+è8Ò\u001dÞcߗÕ/Ý?Ø8è8ÔwÛcÔÖÝ?ذé6Ø8Ý\rÙ Ò\u001dÛZÛZ×QÞ%ÜuÝTàŽÔwÛ\u0016ÝrÞGÔwç?ÔÖØ+Ò\u001dÛZ×gè", - "origin": [ - 71.19998168945312, - 167.85003662109375 - ], - "bbox": [ - 71.19998168945312, - 161.35003662109375, - 393.7000427246094, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 161.35003662109375, - 393.7000427246094, - 180.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔlØ!ÛcÜu×", - "origin": [ - 403.6999816894531, - 167.85003662109375 - ], - "bbox": [ - 403.6999816894531, - 161.35003662109375, - 426.9999694824219, - 180.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "O\n", - "origin": [ - 426.9999694824219, - 167.85003662109375 - ], - "bbox": [ - 426.9999694824219, - 161.35003662109375, - 435.89996337890625, - 179.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8Þ1ÓZÛ»å+ÑlÒrÕ/×rò", - "origin": [ - 435.89996337890625, - 167.85003662109375 - ], - "bbox": [ - 435.89996337890625, - 161.35003662109375, - 483.6000061035156, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 403.6999816894531, - 161.35003662109375, - 483.6000061035156, - 180.25003051757812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 499.9999694824219, - 161.35003662109375, - 520.4999389648438, - 180.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ\u0016ÔÖÓ", - "origin": [ - 499.9999694824219, - 167.85003662109375 - ], - "bbox": [ - 499.9999694824219, - 161.35003662109375, - 520.4999389648438, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 499.9999694824219, - 161.35003662109375, - 520.4999389648438, - 180.25003051757812 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 71.199951171875, - 173.85003662109375, - 519.7999877929688, - 193.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØuÝrÛcÜ8×QÞ\u0016Ù¥ÒrØ+Ôwæ™×gÓcÛcÒ\u001dÛcÔwÝ?Ø!Ýræ½ÛcÜu×", - "origin": [ - 71.199951171875, - 180.85003662109375 - ], - "bbox": [ - 71.199951171875, - 174.35003662109375, - 202.89996337890625, - 193.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "'�", - "origin": [ - 202.89996337890625, - 180.85003662109375 - ], - "bbox": [ - 202.89996337890625, - 173.85003662109375, - 212.79995727539062, - 192.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒrÓZßWÙ�å8ÛZÝrÛcÔlÕ³æ=Þc×Q×gèuÝ?Ù", - "origin": [ - 212.79995727539062, - 180.85003662109375 - ], - "bbox": [ - 212.79995727539062, - 174.35003662109375, - 302.1999206542969, - 193.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 173.85003662109375, - 302.1999206542969, - 193.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 311.2999572753906, - 180.85003662109375 - ], - "bbox": [ - 311.2999572753906, - 173.85003662109375, - 311.2999572753906, - 192.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œå8ÞcÝrå×QÞcÛ¯ßré6ÕQÒrâ+ÓZ×gè", - "origin": [ - 311.2999572753906, - 180.85003662109375 - ], - "bbox": [ - 311.2999572753906, - 174.35003662109375, - 393.19989013671875, - 193.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.2999572753906, - 173.85003662109375, - 393.19989013671875, - 193.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "کߗÛcÜu×\u0014è8ÔÖÓGÕ/Þc×QÛZ×\u0019ÓZåyÒrÕ/×QÛcÔÖÙ�×", - "origin": [ - 403.199951171875, - 180.85003662109375 - ], - "bbox": [ - 403.199951171875, - 174.35003662109375, - 519.7999877929688, - 193.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 403.199951171875, - 174.35003662109375, - 519.7999877929688, - 193.25003051757812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 71.199951171875, - 187.1500244140625, - 114.89994812011719, - 206.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛZÞ1â8Õ/ÛcâuÞc×rò", - "origin": [ - 71.199951171875, - 193.6500244140625 - ], - "bbox": [ - 71.199951171875, - 187.1500244140625, - 114.89994812011719, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 187.1500244140625, - 114.89994812011719, - 206.05001831054688 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 131.09994506835938, - 180.75003051757812, - 518.5999755859375, - 215.4500274658203 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÜVâ8ÓQé+à\u001b×�ÔÖÙ¥Ò\u001dç?ÔÖØ8׳ÛcÜ8Ò\u001dÛ\u0016ÛcÜu×\u0014ÞGÒrØuçr×&Ýræ­ã\u001dÒ\u001dÞGÔÖÒ\u001dÚ+Ñw×gÓ¢×gØ©ÛZ×QÞGÔÖØuç\u001fÛcÜu×\u0014Ù¥Ò\u001dÛZÞGÔ", - "origin": [ - 131.09994506835938, - 193.6500244140625 - ], - "bbox": [ - 131.09994506835938, - 187.1500244140625, - 427.4999084472656, - 206.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "+�", - "origin": [ - 427.4999084472656, - 193.6500244140625 - ], - "bbox": [ - 427.4999084472656, - 187.1500244140625, - 430.39990234375, - 205.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "–×gÑw×gÙ¥×gتÛcÓ\u0016Ýræ", - "origin": [ - 430.39990234375, - 193.6500244140625 - ], - "bbox": [ - 430.39990234375, - 187.1500244140625, - 490.39990234375, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.09994506835938, - 187.1500244140625, - 490.39990234375, - 206.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 497.99993896484375, - 193.6500244140625 - ], - "bbox": [ - 497.99993896484375, - 180.75003051757812, - 497.99993896484375, - 215.4500274658203 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "7ÕQÒrØ", - "origin": [ - 497.99993896484375, - 193.6500244140625 - ], - "bbox": [ - 497.99993896484375, - 187.1500244140625, - 518.5999755859375, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 497.99993896484375, - 180.75003051757812, - 518.5999755859375, - 215.4500274658203 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 71.19992065429688, - 200.1500244140625, - 352.9999084472656, - 219.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Òrè8ÔlÒ\u001dÚ+Ò\u001dÛcÔÖÕQÒrÑÖÑwߜÔÖØ8Õ/Þc×gÒrÓZ׳ÛZÝ¥ÛcÜu×;æ’â8ÑÖÑ6ÞGÒrØuçr×%Ýaãr×QޢڐÝrÛcܗÓcÔlÙ�å+Ñw×", - "origin": [ - 71.19992065429688, - 206.6500244140625 - ], - "bbox": [ - 71.19992065429688, - 200.1500244140625, - 332.6999206542969, - 219.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 332.6999206542969, - 206.6500244140625 - ], - "bbox": [ - 332.6999206542969, - 200.1500244140625, - 337.3999328613281, - 218.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "W×gÓQò", - "origin": [ - 337.3999328613281, - 206.6500244140625 - ], - "bbox": [ - 337.3999328613281, - 200.1500244140625, - 352.9999084472656, - 219.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 200.1500244140625, - 352.9999084472656, - 219.05001831054688 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 96.49991607666016, - 206.64999389648438, - 519.7999267578125, - 241.34999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÑw×", - "origin": [ - 96.49991607666016, - 219.54998779296875 - ], - "bbox": [ - 96.49991607666016, - 213.04998779296875, - 108.79991149902344, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.49991607666016, - 213.04998779296875, - 108.79991149902344, - 231.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8ÔÖÓ", - "origin": [ - 120.19992065429688, - 219.54998779296875 - ], - "bbox": [ - 120.19992065429688, - 213.04998779296875, - 133.69993591308594, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 120.19992065429688, - 213.04998779296875, - 133.69993591308594, - 231.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 145.9999237060547, - 219.54998779296875 - ], - "bbox": [ - 145.9999237060547, - 212.54998779296875, - 145.9999237060547, - 230.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZE", - "origin": [ - 145.9999237060547, - 219.54998779296875 - ], - "bbox": [ - 145.9999237060547, - 206.64999389648438, - 150.39991760253906, - 241.34999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016×gè8ÒrØ", - "origin": [ - 150.39991760253906, - 219.54998779296875 - ], - "bbox": [ - 150.39991760253906, - 213.04998779296875, - 174.99990844726562, - 231.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 174.99990844726562, - 219.54998779296875 - ], - "bbox": [ - 174.99990844726562, - 212.54998779296875, - 180.99990844726562, - 230.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×gØ8×", - "origin": [ - 180.99990844726562, - 219.54998779296875 - ], - "bbox": [ - 180.99990844726562, - 213.04998779296875, - 197.39990234375, - 231.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 197.39990234375, - 219.54998779296875 - ], - "bbox": [ - 197.39990234375, - 213.04998779296875, - 202.0998992919922, - 230.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå×QÞGÔÖÙ¥×gتÛ", - "origin": [ - 202.0998992919922, - 219.54998779296875 - ], - "bbox": [ - 202.0998992919922, - 213.04998779296875, - 246.29991149902344, - 231.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 246.29991149902344, - 219.54998779296875 - ], - "bbox": [ - 246.29991149902344, - 212.54998779296875, - 250.59991455078125, - 230.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 145.9999237060547, - 206.64999389648438, - 250.59991455078125, - 241.34999084472656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥Ôwç?Ü©Û\u001eÓZ×Q×gÙ", - "origin": [ - 262.8999328613281, - 219.54998779296875 - ], - "bbox": [ - 262.8999328613281, - 213.04998779296875, - 311.199951171875, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.8999328613281, - 213.04998779296875, - 311.199951171875, - 231.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+ÑÖÒrâ8ÓGÔwÚ+Ñw×ré!Ò", - "origin": [ - 327.0999450683594, - 219.54998779296875 - ], - "bbox": [ - 327.0999450683594, - 213.04998779296875, - 379.699951171875, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.0999450683594, - 213.04998779296875, - 379.699951171875, - 231.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZ×QÞGÔwÝ?â+Ó", - "origin": [ - 391.99993896484375, - 219.54998779296875 - ], - "bbox": [ - 391.99993896484375, - 213.04998779296875, - 420.0999450683594, - 231.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "2�", - "origin": [ - 420.0999450683594, - 219.54998779296875 - ], - "bbox": [ - 420.0999450683594, - 213.04998779296875, - 430.0999450683594, - 230.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Zâ+ÓZÛcÔ", - "origin": [ - 430.0999450683594, - 219.54998779296875 - ], - "bbox": [ - 430.0999450683594, - 213.04998779296875, - 448.9999694824219, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.99993896484375, - 213.04998779296875, - 448.9999694824219, - 231.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 451.99993896484375, - 219.54998779296875 - ], - "bbox": [ - 451.99993896484375, - 213.04998779296875, - 451.99993896484375, - 230.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+ÕQÒ\u001dÛcÔwÝ?ØÿÝræ�ÛcÜu×", - "origin": [ - 451.99993896484375, - 219.54998779296875 - ], - "bbox": [ - 451.99993896484375, - 213.04998779296875, - 519.7999267578125, - 231.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 451.99993896484375, - 213.04998779296875, - 519.7999267578125, - 231.94998168945312 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 71.09994506835938, - 219.64999389648438, - 252.79994201660156, - 254.34999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×", - "origin": [ - 71.09994506835938, - 232.54998779296875 - ], - "bbox": [ - 71.09994506835938, - 226.04998779296875, - 71.09994506835938, - 244.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 71.09994506835938, - 232.54998779296875 - ], - "bbox": [ - 71.09994506835938, - 226.04998779296875, - 75.79994201660156, - 243.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZ×gØ8ÓcÔwÝ?Ø&Ýræ6ÛcÜu×\u0010ÞGÒrØuçr×NÝræyã\u0018ÒrÑÖÔlè8ÔwÛsß³Ýræ", - "origin": [ - 75.79994201660156, - 232.54998779296875 - ], - "bbox": [ - 75.79994201660156, - 226.04998779296875, - 232.7999267578125, - 244.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 226.04998779296875, - 232.7999267578125, - 244.94998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 239.09994506835938, - 232.54998779296875 - ], - "bbox": [ - 239.09994506835938, - 219.64999389648438, - 239.09994506835938, - 254.34999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 239.09994506835938, - 232.54998779296875 - ], - "bbox": [ - 239.09994506835938, - 226.04998779296875, - 252.79994201660156, - 244.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 239.09994506835938, - 219.64999389648438, - 252.79994201660156, - 254.34999084472656 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 261.99993896484375, - 225.54998779296875, - 522.099853515625, - 244.94998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î/ô", - "origin": [ - 261.99993896484375, - 232.54998779296875 - ], - "bbox": [ - 261.99993896484375, - 226.04998779296875, - 266.699951171875, - 244.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 266.699951171875, - 232.54998779296875 - ], - "bbox": [ - 266.699951171875, - 225.54998779296875, - 272.39996337890625, - 243.94998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BÝaãr×QÞ½Ù�ÝrÞc×\u0010ÛcÜ8ÒrØ¥Ý?Øu×NÑÖÔÖØu×gÒ\u001dÞGÔÖÛsß³Ñw×gØ8çrÛcÜ&Óc×Q×gÙ¥Ó­Øu×gÕ/×gÓcÓGÒ\u001dÞcßrò", - "origin": [ - 272.39996337890625, - 232.54998779296875 - ], - "bbox": [ - 272.39996337890625, - 226.04998779296875, - 522.099853515625, - 244.94998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 261.99993896484375, - 225.54998779296875, - 522.099853515625, - 244.94998168945312 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 81.2999267578125, - 238.449951171875, - 350.39990234375, - 257.8499450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "׳ÔlتÛZ×gØ8è\rÛZÝ\u001fÕ/Ý?Ù�×%Ú+ÒrÕ", - "origin": [ - 81.2999267578125, - 245.449951171875 - ], - "bbox": [ - 81.2999267578125, - 238.949951171875, - 176.29989624023438, - 257.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 176.29989624023438, - 245.449951171875 - ], - "bbox": [ - 176.29989624023438, - 238.449951171875, - 180.69989013671875, - 256.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÛZÝ¥ÛcÜ8ÔÖÓNÔÖÙ¥å6ÝrÞGÛcÒrتÛNåÝ?ÔÖØ©Û\u0010×gÑÖÓZ×Qà»Üu×QÞG×rò", - "origin": [ - 180.69989013671875, - 245.449951171875 - ], - "bbox": [ - 180.69989013671875, - 238.949951171875, - 350.39990234375, - 257.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.2999267578125, - 238.449951171875, - 350.39990234375, - 257.8499450683594 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 77.3999252319336, - 260.5499572753906, - 357.09991455078125, - 295.24993896484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "K", - "origin": [ - 77.3999252319336, - 273.449951171875 - ], - "bbox": [ - 77.3999252319336, - 266.949951171875, - 77.3999252319336, - 284.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 77.3999252319336, - 273.449951171875 - ], - "bbox": [ - 77.3999252319336, - 266.64996337890625, - 80.59992218017578, - 284.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "GK", - "origin": [ - 80.59992218017578, - 273.449951171875 - ], - "bbox": [ - 80.59992218017578, - 266.949951171875, - 86.29991912841797, - 284.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 86.29991912841797, - 273.449951171875 - ], - "bbox": [ - 86.29991912841797, - 266.64996337890625, - 95.29991912841797, - 284.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "`\u0010#\u001c%\u000e3&#\"", - "origin": [ - 95.29991912841797, - 273.449951171875 - ], - "bbox": [ - 95.29991912841797, - 266.949951171875, - 122.09992218017578, - 284.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 122.09992218017578, - 273.449951171875 - ], - "bbox": [ - 122.09992218017578, - 260.5499572753906, - 126.79991912841797, - 295.24993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ">*%\u000e\u0011\u001c\u0013)�\u001e\u001f)�\u001eG*%]\u00151=\"393\u0010", - "origin": [ - 126.79991912841797, - 273.449951171875 - ], - "bbox": [ - 126.79991912841797, - 266.949951171875, - 191.29989624023438, - 284.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.3999252319336, - 260.5499572753906, - 191.29989624023438, - 295.24993896484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ";b\"�\u000e$\"�\u001e89'\"^\u001c\u0013\u001e81\u001aD", - "origin": [ - 196.4999237060547, - 273.449951171875 - ], - "bbox": [ - 196.4999237060547, - 266.949951171875, - 257.199951171875, - 284.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 196.4999237060547, - 266.949951171875, - 257.199951171875, - 284.8499450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010#9\u000f\u001c\u0013D", - "origin": [ - 260.1999206542969, - 273.449951171875 - ], - "bbox": [ - 260.1999206542969, - 266.949951171875, - 274.89990234375, - 284.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.1999206542969, - 266.949951171875, - 274.89990234375, - 284.8499450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")", - "origin": [ - 277.59991455078125, - 273.449951171875 - ], - "bbox": [ - 277.59991455078125, - 266.949951171875, - 277.59991455078125, - 284.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 277.59991455078125, - 273.449951171875 - ], - "bbox": [ - 277.59991455078125, - 266.64996337890625, - 280.6999206542969, - 284.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#\u001c,\u0014 ) \u0010\u0013\u001eW\u0012^\"39�;X\u001c%\u001e\u001d)P&'\u0012", - "origin": [ - 280.6999206542969, - 273.449951171875 - ], - "bbox": [ - 280.6999206542969, - 266.949951171875, - 357.09991455078125, - 284.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.59991455078125, - 266.64996337890625, - 357.09991455078125, - 284.949951171875 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 71.09991455078125, - 279.449951171875, - 520.4998779296875, - 298.8499450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 71.09991455078125, - 286.449951171875 - ], - "bbox": [ - 71.09991455078125, - 279.449951171875, - 71.09991455078125, - 297.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PØ", - "origin": [ - 71.09991455078125, - 286.449951171875 - ], - "bbox": [ - 71.09991455078125, - 279.949951171875, - 75.19991302490234, - 298.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09991455078125, - 279.449951171875, - 75.19991302490234, - 298.8499450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞGèu×QÞ%ÛZݗ×", - "origin": [ - 85.19991302490234, - 286.449951171875 - ], - "bbox": [ - 85.19991302490234, - 279.949951171875, - 128.09991455078125, - 298.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 128.09991455078125, - 286.449951171875 - ], - "bbox": [ - 128.09991455078125, - 279.949951171875, - 132.79991149902344, - 297.8499450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZ×gØ8è�Ý?âuÞ%Õ/Ý?Ø+ÓcÔÖèu×QÞGÒ\u001dÛcÔÖÝ?Ø8Ó\u0016æ=âuÞGÛcÜu×QÞ;ÛZݗÞc×gÒrÕGÜ", - "origin": [ - 132.79991149902344, - 286.449951171875 - ], - "bbox": [ - 132.79991149902344, - 279.949951171875, - 325.6998596191406, - 298.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.19991302490234, - 279.949951171875, - 325.6998596191406, - 298.8499450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×¥ÓcÕQÒrÑw×gÓ;à¢Üu×QÞc×�ä©â+ÒrتÛcâ8Ù", - "origin": [ - 335.9999084472656, - 286.449951171875 - ], - "bbox": [ - 335.9999084472656, - 279.949951171875, - 451.6998596191406, - 298.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.9999084472656, - 279.949951171875, - 451.6998596191406, - 298.8499450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÓ%ÔÖÓ", - "origin": [ - 464.89990234375, - 286.449951171875 - ], - "bbox": [ - 464.89990234375, - 279.949951171875, - 520.4998779296875, - 298.8499450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 464.89990234375, - 279.949951171875, - 520.4998779296875, - 298.8499450683594 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 71.09988403320312, - 292.3499755859375, - 460.5998840332031, - 311.7499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 71.09988403320312, - 299.3499755859375 - ], - "bbox": [ - 71.09988403320312, - 292.3499755859375, - 71.09988403320312, - 310.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WØuÝTà¢ØœÛZÝ\u0014à\u001bÝrÞ", - "origin": [ - 71.09988403320312, - 299.3499755859375 - ], - "bbox": [ - 71.09988403320312, - 292.8499755859375, - 131.4998779296875, - 311.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 131.4998779296875, - 299.3499755859375 - ], - "bbox": [ - 131.4998779296875, - 292.3499755859375, - 135.7998809814453, - 310.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6éVà\u001b×;Ü8Ògãr×;ÛZÝ¥Òrè+èuÞc×gÓcÓ\u001bÒrÑÖÓZÝ\u0014ÛcÜu×;Õ/Ý?Ò\u001dÞGÓZ×", - "origin": [ - 135.7998809814453, - 299.3499755859375 - ], - "bbox": [ - 135.7998809814453, - 292.8499755859375, - 305.1998596191406, - 311.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 305.1998596191406, - 299.3499755859375 - ], - "bbox": [ - 305.1998596191406, - 292.8499755859375, - 309.8998718261719, - 310.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞ1ÒrÔÖØ8ÔÖØuç&ÛcÜ8Ò\u001dÛNÙ&â8ÓZÛ\u0010ڐ×\u0016ÔÖØ©ãrÝ?Ñwãr×gè°ò", - "origin": [ - 309.8998718261719, - 299.3499755859375 - ], - "bbox": [ - 309.8998718261719, - 292.8499755859375, - 460.5998840332031, - 311.7499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09988403320312, - 292.3499755859375, - 460.5998840332031, - 311.7499694824219 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 475.89990234375, - 292.8499755859375, - 520.2999267578125, - 311.7499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ½ÕQÒrØ+ØuÝrÛ", - "origin": [ - 475.89990234375, - 299.3499755859375 - ], - "bbox": [ - 475.89990234375, - 292.8499755859375, - 520.2999267578125, - 311.7499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 475.89990234375, - 292.8499755859375, - 520.2999267578125, - 311.7499694824219 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 71.09988403320312, - 305.3499755859375, - 519.7999267578125, - 324.7499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐלÒrØ+ÒrÑwß", - "origin": [ - 71.09988403320312, - 312.3499755859375 - ], - "bbox": [ - 71.09988403320312, - 305.8499755859375, - 106.89988708496094, - 324.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u001b", - "origin": [ - 106.89988708496094, - 312.3499755859375 - ], - "bbox": [ - 106.89988708496094, - 305.3499755859375, - 112.59988403320312, - 323.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×gè¾ÞGÔwçrÝrÞGÝ?â8ÓcÑwß\u000fà»ÔwÛcÜ8Ý?âuÛ\u0019â8Ø+èu×QÞGÓZÛcÒrØ8è+ÔÖØuç–ÜuÝaà", - "origin": [ - 112.59988403320312, - 312.3499755859375 - ], - "bbox": [ - 112.59988403320312, - 305.8499755859375, - 309.59991455078125, - 324.7499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09988403320312, - 305.3499755859375, - 309.59991455078125, - 324.7499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\rÕ/Ý?Ù¥Ù�Ý?Ø", - "origin": [ - 321.89990234375, - 312.3499755859375 - ], - "bbox": [ - 321.89990234375, - 305.8499755859375, - 375.4999084472656, - 324.7499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.89990234375, - 305.8499755859375, - 375.4999084472656, - 324.7499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=ÝrÞGÕ/×gÓ", - "origin": [ - 386.09991455078125, - 312.3499755859375 - ], - "bbox": [ - 386.09991455078125, - 305.8499755859375, - 408.89990234375, - 324.7499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 408.89990234375, - 312.3499755859375 - ], - "bbox": [ - 408.89990234375, - 305.54998779296875, - 417.9999084472656, - 323.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "–ÔlتÛZ×QÞGÒrÕ/ÛcÔÖÝ?Ø8Ó³ÛcÜ+Ò\u001dÛ&à\u001b×", - "origin": [ - 417.9999084472656, - 312.3499755859375 - ], - "bbox": [ - 417.9999084472656, - 305.8499755859375, - 519.7999267578125, - 324.7499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.09991455078125, - 305.54998779296875, - 519.7999267578125, - 324.7499694824219 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 71.09991455078125, - 318.75, - 500.6998291015625, - 337.6499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gØ8Õ/Ý?â+تÛZ×QÞ^ÞG×gÑÖÒ\u001dÛZ×%ÛZÝ¥å+Ü8×gØuÝ?Ù�×gØ8Ò�Ò\u001dÛ»Ù&â8Õ1Ü!ÓcÜuÝrÞGÛZ×QÞ»è8ÔÖÓZÛcÒrØ+Õ/×%ÓcÕQÒrÑw×gÓQé+ÓGâ8ÕGܖÒrÓ^ÛcÜu׳ÑÖÔÖØ8×gÒ\u001dÞGÔwÛsß\u001fÓcÕQÒrÑw×rò", - "origin": [ - 71.09991455078125, - 325.25 - ], - "bbox": [ - 71.09991455078125, - 318.75, - 500.6998291015625, - 337.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09991455078125, - 318.75, - 500.6998291015625, - 337.6499938964844 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 85.39991760253906, - 331.6499938964844, - 515.699951171875, - 350.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê»Ýaà\"×Qãr×QÞTé\"äVâ8ÒrÑÖÔwÛcÒ\u001dÛcÔwãr×gÑÖßré¡à\"×\u001f×", - "origin": [ - 85.39991760253906, - 338.1499938964844 - ], - "bbox": [ - 85.39991760253906, - 331.6499938964844, - 216.69992065429688, - 350.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 216.69992065429688, - 338.1499938964844 - ], - "bbox": [ - 216.69992065429688, - 331.6499938964844, - 221.39991760253906, - 349.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå×gÕ/Û\u0014ÛcÜu×\rÕ/Ý©ÝrÞ1è8ÔÖØ8Ò\u001dÛZ×gÓ&ÛZÝ", - "origin": [ - 221.39991760253906, - 338.1499938964844 - ], - "bbox": [ - 221.39991760253906, - 331.6499938964844, - 334.99993896484375, - 350.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.39991760253906, - 331.6499938964844, - 334.99993896484375, - 350.54998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001b\u001d9", - "origin": [ - 351.99993896484375, - 338.1499938964844 - ], - "bbox": [ - 351.99993896484375, - 331.6499938964844, - 358.0999450683594, - 349.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.99993896484375, - 331.6499938964844, - 358.0999450683594, - 349.54998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0014 \u001bb\u001c,\u0014.\"", - "origin": [ - 363.0999450683594, - 338.1499938964844 - ], - "bbox": [ - 363.0999450683594, - 331.6499938964844, - 381.8999328613281, - 349.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/é­à»Ü+ÔÖÕGܾ×gتÛZ×QÞ�ÛcÜ8×\u001fÕ/Ý?Ø©ÛcÔÖØVâ8â8Ù", - "origin": [ - 381.8999328613281, - 338.1499938964844 - ], - "bbox": [ - 381.8999328613281, - 331.6499938964844, - 515.699951171875, - 350.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.0999450683594, - 331.6499938964844, - 515.699951171875, - 350.54998779296875 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 71.199951171875, - 344.54998779296875, - 521.699951171875, - 363.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "èu×gÓGÕ/ÞGÔwå8ÛcÔwÝ?جé4ÔÖØ", - "origin": [ - 71.199951171875, - 351.04998779296875 - ], - "bbox": [ - 71.199951171875, - 344.54998779296875, - 134.09996032714844, - 363.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 344.54998779296875, - 134.09996032714844, - 363.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "åyÒ\u001dÞcÛcÔÖÕQâ8ÑÖÒ\u001dÞTé4à»Üu×gØ7à\"לà^ÞGÔwÛZלèuÝTà»Ø¾ÛcÜuלãrÝ?Ø^ó»×gâ+Ù¥ÒrØ8Ø", - "origin": [ - 144.39996337890625, - 351.04998779296875 - ], - "bbox": [ - 144.39996337890625, - 344.54998779296875, - 381.2999572753906, - 363.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 144.39996337890625, - 344.54998779296875, - 381.2999572753906, - 363.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gäVâ8Ò\u001dÛcÔwÝ?ؾà»ÔwÛcÜ", - "origin": [ - 391.5999755859375, - 351.04998779296875 - ], - "bbox": [ - 391.5999755859375, - 344.54998779296875, - 452.2999267578125, - 363.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.5999755859375, - 344.54998779296875, - 452.2999267578125, - 363.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuלåÝrÛZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 462.5999755859375, - 351.04998779296875 - ], - "bbox": [ - 462.5999755859375, - 344.54998779296875, - 521.699951171875, - 363.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 462.5999755859375, - 344.54998779296875, - 521.699951171875, - 363.4499816894531 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 71.0999755859375, - 351.1499938964844, - 177.29998779296875, - 385.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZ×QÞGÙ Ó ÝrÚ8ÛcÒrÔlØu×gè\u001eÔlØ", - "origin": [ - 71.0999755859375, - 364.04998779296875 - ], - "bbox": [ - 71.0999755859375, - 357.54998779296875, - 152.49998474121094, - 376.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�!", - "origin": [ - 152.49998474121094, - 364.04998779296875 - ], - "bbox": [ - 152.49998474121094, - 351.1499938964844, - 163.59999084472656, - 385.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 163.59999084472656, - 364.04998779296875 - ], - "bbox": [ - 163.59999084472656, - 357.54998779296875, - 177.29998779296875, - 376.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 351.1499938964844, - 177.29998779296875, - 385.8499755859375 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 186.39999389648438, - 357.04998779296875, - 518.6998901367188, - 376.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgï", - "origin": [ - 186.39999389648438, - 364.04998779296875 - ], - "bbox": [ - 186.39999389648438, - 357.54998779296875, - 191.29998779296875, - 376.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 191.29998779296875, - 364.04998779296875 - ], - "bbox": [ - 191.29998779296875, - 357.04998779296875, - 196.79998779296875, - 375.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 196.79998779296875, - 364.04998779296875 - ], - "bbox": [ - 196.79998779296875, - 357.54998779296875, - 201.29998779296875, - 376.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.39999389648438, - 357.04998779296875, - 201.29998779296875, - 376.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 223.89999389648438, - 364.04998779296875 - ], - "bbox": [ - 223.89999389648438, - 357.04998779296875, - 223.89999389648438, - 375.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø+èu×Q×gè°é^Ñw×QÛ\râ8Ó\u001fÕ/Ý?Ø8ÓcÔÖèu×QÞTéNæ™ÝrÞ\u001f×", - "origin": [ - 223.89999389648438, - 364.04998779296875 - ], - "bbox": [ - 223.89999389648438, - 357.54998779296875, - 362.49993896484375, - 376.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 362.49993896484375, - 364.04998779296875 - ], - "bbox": [ - 362.49993896484375, - 357.54998779296875, - 367.199951171875, - 375.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÒrÙ¥å+Ñw×ré»ÒrØÍ×Qãr×gØ©Û\rè8×QÛZ×QÞGÙ¥ÔÖØu×gè\u001eÔÖØ", - "origin": [ - 367.199951171875, - 364.04998779296875 - ], - "bbox": [ - 367.199951171875, - 357.54998779296875, - 518.6998901367188, - 376.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 223.89999389648438, - 357.04998779296875, - 518.6998901367188, - 376.4499816894531 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 71.09999084472656, - 370.54998779296875, - 178.5, - 389.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u0014Õ/Ý?Ø©ÛcÔÖØ©â+â8ÙÿåyÔÖÕ/ÛcâuÞc×rò", - "origin": [ - 71.09999084472656, - 377.04998779296875 - ], - "bbox": [ - 71.09999084472656, - 370.54998779296875, - 178.5, - 389.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09999084472656, - 370.54998779296875, - 178.5, - 389.4499816894531 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 194.5999755859375, - 370.04998779296875, - 518.699951171875, - 389.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×&å6Ý?ÓGÔwÛcÔwÝ?Ø!ÒrÓGÕ/ÞGÔwڐ×gè–ÛZݗÔwÛ\u0016ÔÖØµÒ", - "origin": [ - 194.5999755859375, - 377.04998779296875 - ], - "bbox": [ - 194.5999755859375, - 370.54998779296875, - 332.3000183105469, - 389.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.5999755859375, - 370.54998779296875, - 332.3000183105469, - 389.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\nb�", - "origin": [ - 341.5999755859375, - 377.04998779296875 - ], - "bbox": [ - 341.5999755859375, - 370.54998779296875, - 347.5999755859375, - 388.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "W×gè\u000fá¬ÝrÞc×gØ©Û", - "origin": [ - 347.5999755859375, - 377.04998779296875 - ], - "bbox": [ - 347.5999755859375, - 370.54998779296875, - 395.4999694824219, - 389.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.5999755859375, - 370.54998779296875, - 395.4999694824219, - 389.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001b", - "origin": [ - 399.6999816894531, - 377.04998779296875 - ], - "bbox": [ - 399.6999816894531, - 370.04998779296875, - 399.6999816894531, - 388.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019æ=ÞGÒrÙ�×\u0014ÕQÒrØ8ØuÝrۓڐ׳×", - "origin": [ - 399.6999816894531, - 377.04998779296875 - ], - "bbox": [ - 399.6999816894531, - 370.54998779296875, - 490.5999450683594, - 389.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 490.5999450683594, - 377.04998779296875 - ], - "bbox": [ - 490.5999450683594, - 370.54998779296875, - 495.2999572753906, - 388.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÒrÕ/ÛcÑwß", - "origin": [ - 495.2999572753906, - 377.04998779296875 - ], - "bbox": [ - 495.2999572753906, - 370.54998779296875, - 518.699951171875, - 389.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.6999816894531, - 370.04998779296875, - 518.699951171875, - 389.4499816894531 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 71.19998168945312, - 383.4499816894531, - 180.5999755859375, - 402.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥ÒrÔlتÛcÒrÔÖØ8×gè;à»ÔwÛcÜ;ÛcÔlÙ�×ré\u0018ÔÖæ", - "origin": [ - 71.19998168945312, - 389.9499816894531 - ], - "bbox": [ - 71.19998168945312, - 383.4499816894531, - 180.5999755859375, - 402.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 383.4499816894531, - 180.5999755859375, - 402.3499755859375 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 196.3999786376953, - 382.9499816894531, - 519.800048828125, - 418.1499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 196.3999786376953, - 389.9499816894531 - ], - "bbox": [ - 196.3999786376953, - 383.4499816894531, - 199.49998474121094, - 402.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 199.49998474121094, - 389.9499816894531 - ], - "bbox": [ - 199.49998474121094, - 382.9499816894531, - 205.49998474121094, - 401.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝaà»Ó", - "origin": [ - 205.49998474121094, - 389.9499816894531 - ], - "bbox": [ - 205.49998474121094, - 383.4499816894531, - 223.99998474121094, - 402.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 196.3999786376953, - 382.9499816894531, - 223.99998474121094, - 402.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 228.19998168945312, - 389.9499816894531 - ], - "bbox": [ - 228.19998168945312, - 382.9499816894531, - 228.19998168945312, - 401.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔ?ÓZå+ÒrÕ/×\u001bÔÖÓ¬Ò", - "origin": [ - 228.19998168945312, - 389.9499816894531 - ], - "bbox": [ - 228.19998168945312, - 383.4499816894531, - 277.5, - 402.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.19998168945312, - 382.9499816894531, - 277.5, - 402.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9\u000f\u0010\u0013\u001e\u001f\u0014 )7\u001e\u001d\u001b�\u001b�\u0012!\u001c'4,48\u000e\u0011\u0010", - "origin": [ - 286.1999816894531, - 389.9499816894531 - ], - "bbox": [ - 286.1999816894531, - 383.4499816894531, - 359.5999755859375, - 401.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.1999816894531, - 383.4499816894531, - 359.5999755859375, - 401.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u0019", - "origin": [ - 364.5, - 389.9499816894531 - ], - "bbox": [ - 364.5, - 384.2499694824219, - 364.5, - 418.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%)7\u0012^\u001c%\u0014 ) \u0010%\u001e", - "origin": [ - 364.5, - 389.9499816894531 - ], - "bbox": [ - 364.5, - 383.4499816894531, - 400.1999816894531, - 401.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "%ÛZÝ¢ÒrØ\u0019â8Ø8èu×QÞGÑÖßVÔÖØ8ç\u001bè8ÔlÓcÕ/Þc×QÛZ×", - "origin": [ - 400.1999816894531, - 389.9499816894531 - ], - "bbox": [ - 400.1999816894531, - 383.4499816894531, - 519.800048828125, - 402.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.5, - 383.4499816894531, - 519.800048828125, - 418.1499938964844 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 71.19998168945312, - 395.9499816894531, - 340.8999938964844, - 415.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛZÞ1â8Õ/ÛcâuÞc×", - "origin": [ - 71.19998168945312, - 402.9499816894531 - ], - "bbox": [ - 71.19998168945312, - 396.4499816894531, - 109.4999771118164, - 415.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%\u0017", - "origin": [ - 109.4999771118164, - 402.9499816894531 - ], - "bbox": [ - 109.4999771118164, - 396.4499816894531, - 114.89997863769531, - 414.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019ÛZÝ!ÛcÜuלæ=âuÛcâ8Þc×�ÝræNÛcÜ8ÔÖÓ;×Qãr×gØ©Û&ÛcÜu×QÞc× ÑÖÔ", - "origin": [ - 114.89997863769531, - 402.9499816894531 - ], - "bbox": [ - 114.89997863769531, - 396.4499816894531, - 286.6999816894531, - 415.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 396.4499816894531, - 286.6999816894531, - 415.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 289.79998779296875, - 402.9499816894531 - ], - "bbox": [ - 289.79998779296875, - 395.9499816894531, - 289.79998779296875, - 414.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×gÑwßµà¢ÔÖÑÖѷڐ×", - "origin": [ - 289.79998779296875, - 402.9499816894531 - ], - "bbox": [ - 289.79998779296875, - 396.4499816894531, - 340.8999938964844, - 415.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.79998779296875, - 395.9499816894531, - 340.8999938964844, - 415.3499755859375 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 357.4999694824219, - 395.9499816894531, - 425.6999206542969, - 415.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑlÒrØ8Õ", - "origin": [ - 357.4999694824219, - 402.9499816894531 - ], - "bbox": [ - 357.4999694824219, - 396.4499816894531, - 372.1999816894531, - 415.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 372.1999816894531, - 402.9499816894531 - ], - "bbox": [ - 372.1999816894531, - 395.9499816894531, - 376.4999694824219, - 414.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "�ÓcÕQÒrÑw×\u001fÓcÔ", - "origin": [ - 376.4999694824219, - 402.9499816894531 - ], - "bbox": [ - 376.4999694824219, - 396.4499816894531, - 417.8999328613281, - 415.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 417.8999328613281, - 402.9499816894531 - ], - "bbox": [ - 417.8999328613281, - 395.9499816894531, - 420.8999328613281, - 414.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×", - "origin": [ - 420.8999328613281, - 402.9499816894531 - ], - "bbox": [ - 420.8999328613281, - 396.4499816894531, - 425.6999206542969, - 415.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.4999694824219, - 395.9499816894531, - 425.6999206542969, - 415.3499755859375 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 438.9999694824219, - 395.9499816894531, - 520.2999267578125, - 415.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞ\u0014ÑÖÒ\u001dÞcçr×QÞ", - "origin": [ - 438.9999694824219, - 402.9499816894531 - ], - "bbox": [ - 438.9999694824219, - 396.4499816894531, - 476.1999206542969, - 415.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�\u0012", - "origin": [ - 476.1999206542969, - 402.9499816894531 - ], - "bbox": [ - 476.1999206542969, - 395.9499816894531, - 480.8999328613281, - 414.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016å+Ò\u001dÛcÕGÜ8×gÓ", - "origin": [ - 480.8999328613281, - 402.9499816894531 - ], - "bbox": [ - 480.8999328613281, - 396.4499816894531, - 520.2999267578125, - 415.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.9999694824219, - 395.9499816894531, - 520.2999267578125, - 415.3499755859375 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 71.0999755859375, - 409.3499755859375, - 76.4999771118164, - 428.2499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ", - "origin": [ - 71.0999755859375, - 415.8499755859375 - ], - "bbox": [ - 71.0999755859375, - 409.3499755859375, - 76.4999771118164, - 428.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 409.3499755859375, - 76.4999771118164, - 428.2499694824219 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 93.6999740600586, - 408.8499755859375, - 520.4998779296875, - 428.2499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 93.6999740600586, - 415.8499755859375 - ], - "bbox": [ - 93.6999740600586, - 409.3499755859375, - 96.79997253417969, - 428.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 96.79997253417969, - 415.8499755859375 - ], - "bbox": [ - 96.79997253417969, - 408.8499755859375, - 102.79997253417969, - 427.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝTà¢Ó", - "origin": [ - 102.79997253417969, - 415.8499755859375 - ], - "bbox": [ - 102.79997253417969, - 409.3499755859375, - 121.29997253417969, - 428.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.6999740600586, - 408.8499755859375, - 121.29997253417969, - 428.2499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 125.4999771118164, - 415.8499755859375 - ], - "bbox": [ - 125.4999771118164, - 408.8499755859375, - 125.4999771118164, - 427.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÔ-ÓZå+ÒrÕ/×\u0019à»Ü8ÔÖÕ1ܖÕ/Ý?تÛcÒrÔlصØuÝ ×gÑw×gÙ�×gةۻÝræ¡ÛcÜu׳Ò\u001då+å8ÞcÝ", - "origin": [ - 125.4999771118164, - 415.8499755859375 - ], - "bbox": [ - 125.4999771118164, - 409.3499755859375, - 346.3999328613281, - 428.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#�", - "origin": [ - 346.3999328613281, - 415.8499755859375 - ], - "bbox": [ - 346.3999328613281, - 409.3499755859375, - 351.2999267578125, - 427.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÔÖÙ¥Ò\u001dÛZ×gèµÕQÒrâ8ÓcÒrÑBÓZ×QÛQò", - "origin": [ - 351.2999267578125, - 415.8499755859375 - ], - "bbox": [ - 351.2999267578125, - 409.3499755859375, - 440.5998840332031, - 428.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": " \n", - "origin": [ - 440.5998840332031, - 415.8499755859375 - ], - "bbox": [ - 440.5998840332031, - 408.8499755859375, - 448.2998962402344, - 427.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¯Û\u0016Ò\u001då8å×gÒ\u001dÞGÓ^ÛZÝ\u001fâ8Ó", - "origin": [ - 448.2998962402344, - 415.8499755859375 - ], - "bbox": [ - 448.2998962402344, - 409.3499755859375, - 520.4998779296875, - 428.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 125.4999771118164, - 408.8499755859375, - 520.4998779296875, - 428.2499694824219 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 71.0999755859375, - 422.3499755859375, - 519.7999267578125, - 441.2499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8Ò\u001dÛ&ÛcÜu×\u001f×Qãr×gتÛQé½Þc×gÓZå×gÕ/ÛcÔwãr×gÑwß", - "origin": [ - 71.0999755859375, - 428.8499755859375 - ], - "bbox": [ - 71.0999755859375, - 422.3499755859375, - 198.2999725341797, - 441.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 422.3499755859375, - 198.2999725341797, - 441.2499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÛcÓ&Ócâ8ÕQÕ/×gÓGÓZÝrÞGÓQé­Ù&â8ÓZÛ\u0014ÕGÜ8ÒrØ8çr×\u001fåÝ?ÓcÔÖÛcÔwÝ?Ø", - "origin": [ - 208.5999755859375, - 428.8499755859375 - ], - "bbox": [ - 208.5999755859375, - 422.3499755859375, - 376.9999084472656, - 441.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.5999755859375, - 422.3499755859375, - 376.9999084472656, - 441.2499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÚVß7ÓcÙ¥ÒrÑlѽÒrÙ�Ý?â8Ø©ÛcÓ&à»ÔwÛcÜ7ÛcÔÖÙ�×", - "origin": [ - 387.29998779296875, - 428.8499755859375 - ], - "bbox": [ - 387.29998779296875, - 422.3499755859375, - 519.7999267578125, - 441.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 387.29998779296875, - 422.3499755859375, - 519.7999267578125, - 441.2499694824219 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 76.59999084472656, - 434.8499755859375, - 455.1999816894531, - 454.2499694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 76.59999084472656, - 441.8499755859375 - ], - "bbox": [ - 76.59999084472656, - 434.8499755859375, - 76.59999084472656, - 453.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÓZà\u001b×QÞcãr×", - "origin": [ - 76.59999084472656, - 441.8499755859375 - ], - "bbox": [ - 76.59999084472656, - 435.3499755859375, - 107.09999084472656, - 454.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0017�\u0013\u0012", - "origin": [ - 107.09999084472656, - 441.8499755859375 - ], - "bbox": [ - 107.09999084472656, - 434.8499755859375, - 117.59999084472656, - 453.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é6×", - "origin": [ - 117.59999084472656, - 441.8499755859375 - ], - "bbox": [ - 117.59999084472656, - 435.3499755859375, - 128.49998474121094, - 454.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 128.49998474121094, - 441.8499755859375 - ], - "bbox": [ - 128.49998474121094, - 434.8499755859375, - 133.19998168945312, - 453.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6×gÕ/ÛcÔÖãr×gÑwß\rå6×QÞGæ™ÝrÞGÙ ÔÖØuç\u0014Ò�ÞGÒrØ8èuÝ?Ù", - "origin": [ - 133.19998168945312, - 441.8499755859375 - ], - "bbox": [ - 133.19998168945312, - 435.3499755859375, - 271.6999206542969, - 454.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.59999084472656, - 434.8499755859375, - 271.6999206542969, - 454.2499694824219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u0010ÒrÑ", - "origin": [ - 284.20001220703125, - 441.8499755859375 - ], - "bbox": [ - 284.20001220703125, - 435.3499755859375, - 297.3000183105469, - 454.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c�", - "origin": [ - 297.3000183105469, - 441.8499755859375 - ], - "bbox": [ - 297.3000183105469, - 434.8499755859375, - 300.3000183105469, - 453.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001fà»ÔwÛcÜ8ÔlØ\u001fÔÖÛcÓNæ=â8ÛcâuÞc×;ÑÖÔwç?Ü©ÛcÕ/Ý?Øuלížï?ùañJò", - "origin": [ - 300.3000183105469, - 441.8499755859375 - ], - "bbox": [ - 300.3000183105469, - 435.3499755859375, - 455.1999816894531, - 454.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 284.20001220703125, - 434.8499755859375, - 455.1999816894531, - 454.2499694824219 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 95.5, - 447.7499694824219, - 519.0999145507812, - 467.14996337890625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "חÕQÒrؾçr×QÛ¥Òµæ=×Q×gÑÖÔÖØuçµæ™ÝrÞ\u0014ÛcÜuחÑÖÔÖØ8×gÒ\u001dÞ\u0019ÓcÔ", - "origin": [ - 95.5, - 454.7499694824219 - ], - "bbox": [ - 95.5, - 448.2499694824219, - 263.20001220703125, - 467.14996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 263.20001220703125, - 454.7499694824219 - ], - "bbox": [ - 263.20001220703125, - 447.7499694824219, - 266.20001220703125, - 466.14996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×", - "origin": [ - 266.20001220703125, - 454.7499694824219 - ], - "bbox": [ - 266.20001220703125, - 448.2499694824219, - 271.0, - 467.14996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\n�\f\u000b", - "origin": [ - 271.0, - 454.7499694824219 - ], - "bbox": [ - 271.0, - 447.9499816894531, - 290.1000061035156, - 466.2499694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "µÝræ^ÛcÜu×gÓZחÓZà\u001b×QÞcãr×gÓ&Ú©ß7×gÓZÛcÔÖÙ¥Ò\u001dÛcÔÖØ8çµÛcÜu×\u001få8ÞcÝrÚyÒ\u001dÚ+ÔÖÑÖÔwÛ¯ß", - "origin": [ - 290.1000061035156, - 454.7499694824219 - ], - "bbox": [ - 290.1000061035156, - 448.2499694824219, - 519.0999145507812, - 467.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.5, - 447.7499694824219, - 519.0999145507812, - 467.14996337890625 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 71.0999984741211, - 460.9499816894531, - 236.3000030517578, - 480.14996337890625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ7Ü+Ògãr×µÒ7ÓZå+Ò\u001dÛcÔÖÒrÑNãrÝ?Ôlè\u0012Ýræ“ãrÝ?ÑÖâ8Ù�×", - "origin": [ - 71.0999984741211, - 467.7499694824219 - ], - "bbox": [ - 71.0999984741211, - 461.2499694824219, - 226.5, - 480.14996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\u000e\r", - "origin": [ - 226.5, - 467.7499694824219 - ], - "bbox": [ - 226.5, - 460.9499816894531, - 236.3000030517578, - 479.2499694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999984741211, - 460.9499816894531, - 236.3000030517578, - 480.14996337890625 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 262.29998779296875, - 462.5500183105469, - 267.6999816894531, - 497.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "N", - "origin": [ - 262.29998779296875, - 475.45001220703125 - ], - "bbox": [ - 262.29998779296875, - 462.5500183105469, - 262.29998779296875, - 497.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\u0010\u000f", - "origin": [ - 262.29998779296875, - 475.45001220703125 - ], - "bbox": [ - 262.29998779296875, - 468.6500244140625, - 267.6999816894531, - 486.95001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.29998779296875, - 462.5500183105469, - 267.6999816894531, - 497.25 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 274.5, - 454.8500061035156, - 367.699951171875, - 489.54998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�\f\u000b", - "origin": [ - 274.5, - 467.75 - ], - "bbox": [ - 274.5, - 460.95001220703125, - 283.8999938964844, - 479.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "LN", - "origin": [ - 283.8999938964844, - 467.75 - ], - "bbox": [ - 283.8999938964844, - 454.8500061035156, - 289.29998779296875, - 489.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œÛcÜ+Ò\u001dۜÑÖÒrÓZÛcÓ¥æ™ÝrÞ Ò", - "origin": [ - 289.29998779296875, - 467.75 - ], - "bbox": [ - 289.29998779296875, - 461.25, - 367.699951171875, - 480.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.5, - 454.8500061035156, - 367.699951171875, - 489.54998779296875 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 385.6000061035156, - 460.75, - 477.79998779296875, - 480.1499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ+Õ", - "origin": [ - 385.6000061035156, - 467.75 - ], - "bbox": [ - 385.6000061035156, - 461.25, - 400.3000183105469, - 480.1499938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 400.3000183105469, - 467.75 - ], - "bbox": [ - 400.3000183105469, - 460.75, - 404.6000061035156, - 479.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 385.6000061035156, - 460.75, - 404.6000061035156, - 480.1499938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÔÖÙ�×!ÔÖØ©ÛZ×QÞcã\u001dÒrÑIò", - "origin": [ - 415.20001220703125, - 467.75 - ], - "bbox": [ - 415.20001220703125, - 461.25, - 477.79998779296875, - 480.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 415.20001220703125, - 461.25, - 477.79998779296875, - 480.1499938964844 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 494.70001220703125, - 461.25, - 519.7999877929688, - 480.1499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞ\u001fÛcÜu×", - "origin": [ - 494.70001220703125, - 467.75 - ], - "bbox": [ - 494.70001220703125, - 461.25, - 519.7999877929688, - 480.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 494.70001220703125, - 461.25, - 519.7999877929688, - 480.1499938964844 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 78.20001220703125, - 468.1499938964844, - 418.4000549316406, - 495.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÔÖÓcÓcÝ?؜å+ÞcÝVÕ/×gÓGÓNÙ�×gتÛcÔÖÝ?Øu×gè\r×gÒ\u001dÞGÑÖÔw×QÞNÒrØ8è\rà¢ÔwÛcÜ", - "origin": [ - 78.20001220703125, - 483.04998779296875 - ], - "bbox": [ - 78.20001220703125, - 476.54998779296875, - 270.8000183105469, - 495.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\n�\f\u000b\u0012\u0011", - "origin": [ - 270.8000183105469, - 483.04998779296875 - ], - "bbox": [ - 270.8000183105469, - 476.25, - 298.3000183105469, - 494.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.20001220703125, - 476.25, - 298.3000183105469, - 495.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u000f\u0015\u0014\u0017\u0016", - "origin": [ - 312.10003662109375, - 483.04998779296875 - ], - "bbox": [ - 312.10003662109375, - 468.1499938964844, - 321.9000549316406, - 493.04998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Iéuà\u001b×", - "origin": [ - 321.9000549316406, - 483.04998779296875 - ], - "bbox": [ - 321.9000549316406, - 476.54998779296875, - 339.1000671386719, - 495.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.10003662109375, - 468.1499938964844, - 339.1000671386719, - 495.4499816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 347.5000305175781, - 483.04998779296875 - ], - "bbox": [ - 347.5000305175781, - 476.54998779296875, - 347.5000305175781, - 494.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+Ø8èœÛcÜ8ÔÖÓ\u001bÛZÝ�ڐ×", - "origin": [ - 347.5000305175781, - 483.04998779296875 - ], - "bbox": [ - 347.5000305175781, - 476.54998779296875, - 409.9000549316406, - 495.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\u0014\u0013", - "origin": [ - 409.9000549316406, - 483.04998779296875 - ], - "bbox": [ - 409.9000549316406, - 476.25, - 418.4000549316406, - 494.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.5000305175781, - 476.25, - 418.4000549316406, - 495.4499816894531 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 430.300048828125, - 470.0500183105469, - 445.0000305175781, - 505.0500183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u000b", - "origin": [ - 430.300048828125, - 476.8500061035156 - ], - "bbox": [ - 430.300048828125, - 471.1499938964844, - 430.300048828125, - 505.0500183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�\u0015\u0017\u0016\u0019\u0018", - "origin": [ - 430.300048828125, - 476.8500061035156 - ], - "bbox": [ - 430.300048828125, - 470.0500183105469, - 445.0000305175781, - 488.3500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.300048828125, - 470.0500183105469, - 445.0000305175781, - 505.0500183105469 - ] - } - ] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 449.10003662109375, - 462.45001220703125, - 457.300048828125, - 488.8500061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0016", - "origin": [ - 449.10003662109375, - 477.3500061035156 - ], - "bbox": [ - 449.10003662109375, - 462.45001220703125, - 449.10003662109375, - 487.3500061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\u001b\u001a\u001d\u001c", - "origin": [ - 449.10003662109375, - 477.3500061035156 - ], - "bbox": [ - 449.10003662109375, - 470.5500183105469, - 457.300048828125, - 488.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.10003662109375, - 462.45001220703125, - 457.300048828125, - 488.8500061035156 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 483.800048828125, - 476.54998779296875, - 522.2000122070312, - 495.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×QÞc×Qæ=ÝrÞc×ré", - "origin": [ - 483.800048828125, - 483.04998779296875 - ], - "bbox": [ - 483.800048828125, - 476.54998779296875, - 522.2000122070312, - 495.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.800048828125, - 476.54998779296875, - 522.2000122070312, - 495.4499816894531 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 71.20004272460938, - 489.25, - 422.9000244140625, - 508.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "â8Ø+Õ/×QÞcÛcÒrÔÖØ©ÛcÔw×gÓ", - "origin": [ - 71.20004272460938, - 496.04998779296875 - ], - "bbox": [ - 71.20004272460938, - 489.54998779296875, - 128.0000457763672, - 508.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\u001e�\f\u000b", - "origin": [ - 128.0000457763672, - 496.04998779296875 - ], - "bbox": [ - 128.0000457763672, - 489.25, - 144.30003356933594, - 507.54998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NÝræWÛcÜu×­ÝrÞ1èu×QÞ4Ýræ8ÒNۯߩåyÔÖÕQÒrѪè8ÔlÓZÛcÒrØ8Õ/×­å×QÞcÛcÒrÔÖØ+ÔÖØuç\u0010ÛZÝ»ÛcÜu×\u0010ëVÛcÒrØ8è8Ò\u001dÞGè", - "origin": [ - 144.30003356933594, - 496.04998779296875 - ], - "bbox": [ - 144.30003356933594, - 489.54998779296875, - 422.9000244140625, - 508.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 489.25, - 422.9000244140625, - 508.4499816894531 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 441.300048828125, - 489.54998779296875, - 522.2000732421875, - 508.4499816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝWèu×gÑIé\u0018æ™ÝrÞ-×", - "origin": [ - 441.300048828125, - 496.04998779296875 - ], - "bbox": [ - 441.300048828125, - 489.54998779296875, - 482.5000305175781, - 508.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 482.5000305175781, - 496.04998779296875 - ], - "bbox": [ - 482.5000305175781, - 489.54998779296875, - 487.2000427246094, - 507.4499816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÒrÙ¥å+Ñw×ré", - "origin": [ - 487.2000427246094, - 496.04998779296875 - ], - "bbox": [ - 487.2000427246094, - 489.54998779296875, - 522.2000732421875, - 508.4499816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 441.300048828125, - 489.54998779296875, - 522.2000732421875, - 508.4499816894531 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 71.20004272460938, - 502.54998779296875, - 518.6998291015625, - 521.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÞc×\u0016×", - "origin": [ - 71.20004272460938, - 509.04998779296875 - ], - "bbox": [ - 71.20004272460938, - 502.54998779296875, - 89.00004577636719, - 521.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 89.00004577636719, - 509.04998779296875 - ], - "bbox": [ - 89.00004577636719, - 502.54998779296875, - 93.70004272460938, - 520.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÛZÞc×gÙ�×gÑwߥÔÖÙ¥å8ÞcÝrÚ+Ò\u001dÚ+ÑÖ×ròBó¢×Qãr×QÞcÛcÜu×gÑw×gÓGÓQéuÒ\u001dÛ\"ÛcÜuדÑÖÔÖØ8×gÒ\u001dÞGÔwÛsß�ÓcÕQÒrÑÖ×¢ÛcÜu×Qߜ٥Ògߜå+ÑÖÒgߥÒrØ\u001f×gÓcÓc×gتÛcÔÖÒrÑyÞcÝ?Ñw×\u0016ÔÖØ", - "origin": [ - 93.70004272460938, - 509.04998779296875 - ], - "bbox": [ - 93.70004272460938, - 502.54998779296875, - 518.6998291015625, - 521.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20004272460938, - 502.54998779296875, - 518.6998291015625, - 521.4500122070312 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 71.10004425048828, - 515.1499633789062, - 281.9000244140625, - 534.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u0010ÒrÓcÜ8ÔÖØ8ç&Ý?â8Û^ÛcÜu×;å+Ôw×gÕ/×Qà¢ÔÖÓZ×%ÑÖÔÖØ8×gÒ\u001dÞ\u001båÝrÛZ×gØ©ÛcÔÖÒrÑÖÓQò", - "origin": [ - 71.10004425048828, - 521.949951171875 - ], - "bbox": [ - 71.10004425048828, - 515.449951171875, - 275.8000183105469, - 534.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": " \u001f", - "origin": [ - 275.8000183105469, - 521.949951171875 - ], - "bbox": [ - 275.8000183105469, - 515.1499633789062, - 281.9000244140625, - 533.449951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10004425048828, - 515.1499633789062, - 281.9000244140625, - 534.3499755859375 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 85.4000473022461, - 527.949951171875, - 518.7000732421875, - 547.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0018", - "origin": [ - 85.4000473022461, - 534.949951171875 - ], - "bbox": [ - 85.4000473022461, - 527.949951171875, - 85.4000473022461, - 546.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001bß", - "origin": [ - 85.4000473022461, - 534.949951171875 - ], - "bbox": [ - 85.4000473022461, - 528.449951171875, - 93.00004577636719, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.4000473022461, - 527.949951171875, - 93.00004577636719, - 547.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×", - "origin": [ - 103.300048828125, - 534.949951171875 - ], - "bbox": [ - 103.300048828125, - 528.449951171875, - 103.300048828125, - 547.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 103.300048828125, - 534.949951171875 - ], - "bbox": [ - 103.300048828125, - 528.449951171875, - 108.00004577636719, - 546.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå×QÞGÔÖ×gØ8Õ/×ré¡ÓcÙ�ÝVÝrÛcܾåÝ?ÑwßWØuÝ?Ù¥ÔlÒrÑ­ÔÖØ©ÛZ×QÞGÒrÕ/ÛcÔwÝ?Ø8Ó&å+ÑÖÒTß", - "origin": [ - 108.00004577636719, - 534.949951171875 - ], - "bbox": [ - 108.00004577636719, - 528.449951171875, - 331.9000549316406, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.300048828125, - 528.449951171875, - 331.9000549316406, - 547.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ", - "origin": [ - 342.2000732421875, - 534.949951171875 - ], - "bbox": [ - 342.2000732421875, - 528.449951171875, - 347.6000671386719, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.2000732421875, - 528.449951171875, - 347.6000671386719, - 547.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÓcÓZ×gØ©ÛcÔÖÒrѽÞGÝ?Ñw×ré­ÓcÒgß", - "origin": [ - 358.2000732421875, - 534.949951171875 - ], - "bbox": [ - 358.2000732421875, - 528.449951171875, - 437.20001220703125, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 358.2000732421875, - 528.449951171875, - 437.20001220703125, - 547.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 447.8000793457031, - 534.949951171875 - ], - "bbox": [ - 447.8000793457031, - 528.449951171875, - 450.90008544921875, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 447.8000793457031, - 528.449951171875, - 450.90008544921875, - 547.3499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8חëVÛcÒrØ+è8Ò\u001dÞGè", - "origin": [ - 461.2000732421875, - 534.949951171875 - ], - "bbox": [ - 461.2000732421875, - 528.449951171875, - 518.7000732421875, - 547.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.2000732421875, - 528.449951171875, - 518.7000732421875, - 547.3499755859375 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 81.10008239746094, - 541.3499755859375, - 522.2001342773438, - 560.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝVè8×gÑ©ÒrØ8è¬érÛZÝ\u0016ڐ×\u001bèu×QÞGÔwãr×gè&æ=ÞcÝ?ٟÛcÜ8×QÞc×réªÔÖØ\u0019å+Üu×gØuÝ?Ù¥×gØuÝ?ÑwÝrç?ÔÖÕQÒrÑ©æ™ÝrÞ1Õ/×gÓ·Ýræ8å+Ü©ßVÓcÔlÕQÓ-Ò\u001dÛ¡ÓZÛcÔÖÑlѪÑwÝaà\"×QÞ¡×gØu×QÞGç?Ôw×gÓQò", - "origin": [ - 81.10008239746094, - 547.8499755859375 - ], - "bbox": [ - 81.10008239746094, - 541.3499755859375, - 522.2001342773438, - 560.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.10008239746094, - 541.3499755859375, - 522.2001342773438, - 560.25 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 71.40008544921875, - 553.8499755859375, - 518.7001953125, - 573.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëWÔlØ8Õ/×­èu×QÛcÒrÔÖÑÖÓ¬ÝræVÛcÜ8×\"Õ/Ý?Ò\u001dÞGÓZ×", - "origin": [ - 71.40008544921875, - 560.8499755859375 - ], - "bbox": [ - 71.40008544921875, - 554.3499755859375, - 185.20008850097656, - 573.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 185.20008850097656, - 560.8499755859375 - ], - "bbox": [ - 185.20008850097656, - 554.3499755859375, - 189.90008544921875, - 572.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞ1ÒrÔÖØ8ÔÖØuç¢Ò\u001dÞc×½â8Ø", - "origin": [ - 189.90008544921875, - 560.8499755859375 - ], - "bbox": [ - 189.90008544921875, - 554.3499755859375, - 258.40008544921875, - 573.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 258.40008544921875, - 560.8499755859375 - ], - "bbox": [ - 258.40008544921875, - 553.8499755859375, - 264.40008544921875, - 572.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WØuÝaà»Ø°éaÔlØ;å+Ò\u001dÞcÛcÔÖÕQâ+ÑÖÒ\u001dÞ°ÛcÜuÝ?ÓZ×\u001bÑw×gÒrè8ÔÖØuçNÛZÝ\u0016Ü8Ôwç?Ü8ÑÖߢÕ/Ý?Ø8ÓZÛZÞ1ÒrÔÖØu×gè", - "origin": [ - 264.40008544921875, - 560.8499755859375 - ], - "bbox": [ - 264.40008544921875, - 554.3499755859375, - 518.7001953125, - 573.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.40008544921875, - 553.8499755859375, - 518.7001953125, - 573.25 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 71.10008239746094, - 558.7499389648438, - 403.3000793457031, - 595.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ç?Òrâuçr×\u0010ÓZßWÙ¥Ù�×QÛZÞGÔÖ×gÓQéTà\u001b×\u001bØ8ÝTà\u000bÕ/Ý?Ø8ÓcÔÖèu×QÞ4ÛcÜu×½å+Ü8×gØuÝ?Ù�×gØuÝ?ÑwÝrç?ÔlÕQÒrÑ", - "origin": [ - 71.10008239746094, - 573.6499633789062 - ], - "bbox": [ - 71.10008239746094, - 567.1499633789062, - 337.9001159667969, - 586.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "{\"", - "origin": [ - 337.9001159667969, - 573.6499633789062 - ], - "bbox": [ - 337.9001159667969, - 558.7499389648438, - 343.7001037597656, - 583.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "B\u001eb&\u0018\u001c%\u0014", - "origin": [ - 343.7001037597656, - 573.6499633789062 - ], - "bbox": [ - 343.7001037597656, - 567.1499633789062, - 368.10009765625, - 585.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 368.10009765625, - 573.6499633789062 - ], - "bbox": [ - 368.10009765625, - 566.8499755859375, - 371.30010986328125, - 585.1499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4Ýræ", - "origin": [ - 371.30010986328125, - 573.6499633789062 - ], - "bbox": [ - 371.30010986328125, - 567.1499633789062, - 383.5000915527344, - 586.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "#!", - "origin": [ - 383.5000915527344, - 573.6499633789062 - ], - "bbox": [ - 383.5000915527344, - 560.7499389648438, - 389.60009765625, - 595.449951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 389.60009765625, - 573.6499633789062 - ], - "bbox": [ - 389.60009765625, - 567.1499633789062, - 403.3000793457031, - 586.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10008239746094, - 558.7499389648438, - 403.3000793457031, - 595.449951171875 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 411.9001159667969, - 566.6499633789062, - 521.5001220703125, - 586.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "û", - "origin": [ - 411.9001159667969, - 573.6499633789062 - ], - "bbox": [ - 411.9001159667969, - 567.1499633789062, - 411.9001159667969, - 586.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 411.9001159667969, - 573.6499633789062 - ], - "bbox": [ - 411.9001159667969, - 566.6499633789062, - 417.4001159667969, - 585.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1érà»Ü8ÔÖÕ1ܳÕ/Ý?Ø8Ø8×gÕ/ÛcÓ", - "origin": [ - 417.4001159667969, - 573.6499633789062 - ], - "bbox": [ - 417.4001159667969, - 567.1499633789062, - 493.900146484375, - 586.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.9001159667969, - 566.6499633789062, - 493.900146484375, - 586.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f;X\u0010\u0013\u000e�\u0014", - "origin": [ - 501.20013427734375, - 573.6499633789062 - ], - "bbox": [ - 501.20013427734375, - 567.1499633789062, - 521.5001220703125, - 585.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 501.20013427734375, - 567.1499633789062, - 521.5001220703125, - 585.0499877929688 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 71.90011596679688, - 573.7499389648438, - 520.5, - 608.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "1\u0013)�&'\u0014\u0016\u001c%\u001e89\u000f\"UI3\"�;X\u001c\u00136H) \u0010\u0013\u001b�\u000e(\u001c%\u0014", - "origin": [ - 71.90011596679688, - 586.6499633789062 - ], - "bbox": [ - 71.90011596679688, - 580.1499633789062, - 169.10011291503906, - 598.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.90011596679688, - 580.1499633789062, - 169.10011291503906, - 598.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u00147;�\"^D", - "origin": [ - 177.2001190185547, - 586.6499633789062 - ], - "bbox": [ - 177.2001190185547, - 580.1499633789062, - 195.60011291503906, - 598.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 177.2001190185547, - 580.1499633789062, - 195.60011291503906, - 598.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")7\u001e-\"$\u001c%\u000e\u000f) \u0014 FC&\u001893\u001c\u0013DY\"", - "origin": [ - 198.3001251220703, - 586.6499633789062 - ], - "bbox": [ - 198.3001251220703, - 580.1499633789062, - 256.60009765625, - 598.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“à»ÔÖÛcÜ", - "origin": [ - 256.60009765625, - 586.6499633789062 - ], - "bbox": [ - 256.60009765625, - 580.1499633789062, - 280.3000793457031, - 599.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.3001251220703, - 580.1499633789062, - 280.3000793457031, - 599.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÛcÓ", - "origin": [ - 290.30010986328125, - 586.6499633789062 - ], - "bbox": [ - 290.30010986328125, - 580.1499633789062, - 297.7001037597656, - 599.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "O9\u000f\u0010#\u001c\u0013\u000e\u000f&\u0018\"", - "origin": [ - 297.7001037597656, - 586.6499633789062 - ], - "bbox": [ - 297.7001037597656, - 580.1499633789062, - 330.6000671386719, - 598.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": " �", - "origin": [ - 330.6000671386719, - 586.6499633789062 - ], - "bbox": [ - 330.6000671386719, - 573.7499389648438, - 335.4000549316406, - 608.449951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": " *,\u000eA\u001c\u0013)7\u001e-\"31", - "origin": [ - 335.4000549316406, - 586.6499633789062 - ], - "bbox": [ - 335.4000549316406, - 580.1499633789062, - 368.0000305175781, - 598.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.30010986328125, - 573.7499389648438, - 368.0000305175781, - 608.449951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "1=\"'&\u00189\u0018\u000e')", - "origin": [ - 378.2001037597656, - 586.6499633789062 - ], - "bbox": [ - 378.2001037597656, - 580.1499633789062, - 402.60009765625, - 598.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 378.2001037597656, - 580.1499633789062, - 402.60009765625, - 598.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "4-\u0014 )>\u0010\u0013\u001e", - "origin": [ - 405.10009765625, - 586.6499633789062 - ], - "bbox": [ - 405.10009765625, - 580.1499633789062, - 423.90008544921875, - 598.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8ò", - "origin": [ - 423.90008544921875, - 586.6499633789062 - ], - "bbox": [ - 423.90008544921875, - 580.1499633789062, - 430.0000915527344, - 599.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 405.10009765625, - 580.1499633789062, - 430.0000915527344, - 599.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 438.90008544921875, - 586.6499633789062 - ], - "bbox": [ - 438.90008544921875, - 579.6499633789062, - 438.90008544921875, - 598.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PØ", - "origin": [ - 438.90008544921875, - 586.6499633789062 - ], - "bbox": [ - 438.90008544921875, - 580.1499633789062, - 443.0000915527344, - 599.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.90008544921875, - 579.6499633789062, - 443.0000915527344, - 599.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Ò\u001dÞcÛcÔÖÕQâ8ÑlÒ\u001dÞgéÛcÜ8ÔÖÓ", - "origin": [ - 453.0000915527344, - 586.6499633789062 - ], - "bbox": [ - 453.0000915527344, - 580.1499633789062, - 520.5, - 599.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.0000915527344, - 580.1499633789062, - 520.5, - 599.0499877929688 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 71.10009765625, - 593.1499633789062, - 259.5001220703125, - 612.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×QåyÑÖÒrÕ/×gÓ4ÒNÛZÞ1âu×ré\u001då+Ôw×gÕ/×Qà»ÔÖÓc×­ÑÖÔÖØu×gÒ\u001dÞ¬åÝrÛZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 71.10009765625, - 599.6499633789062 - ], - "bbox": [ - 71.10009765625, - 593.1499633789062, - 259.5001220703125, - 612.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10009765625, - 593.1499633789062, - 259.5001220703125, - 612.0499877929688 - ] - } - ] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 273.2000732421875, - 586.7499389648438, - 520.5001220703125, - 621.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÚVߓҢÕ/Ý?Ò\u001dÞGÓZ×", - "origin": [ - 273.2000732421875, - 599.6499633789062 - ], - "bbox": [ - 273.2000732421875, - 593.1499633789062, - 319.50006103515625, - 612.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 319.50006103515625, - 599.6499633789062 - ], - "bbox": [ - 319.50006103515625, - 593.1499633789062, - 324.2000732421875, - 611.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞGÒrÔlØu×gè³åÝrÛZ×gØ©ÛcÔÖÒrÑ", - "origin": [ - 324.2000732421875, - 599.6499633789062 - ], - "bbox": [ - 324.2000732421875, - 593.1499633789062, - 405.3000793457031, - 612.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "=�", - "origin": [ - 405.3000793457031, - 599.6499633789062 - ], - "bbox": [ - 405.3000793457031, - 586.7499389648438, - 411.1000671386719, - 621.449951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 273.2000732421875, - 586.7499389648438, - 411.1000671386719, - 621.449951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Ñlâ8Ó°ÑwÝWÕQÒrÑ", - "origin": [ - 422.10009765625, - 599.6499633789062 - ], - "bbox": [ - 422.10009765625, - 593.1499633789062, - 463.30010986328125, - 612.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000f\u001f", - "origin": [ - 463.30010986328125, - 599.6499633789062 - ], - "bbox": [ - 463.30010986328125, - 586.7499389648438, - 468.80010986328125, - 621.449951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8Õ/Ûcâ+Ò\u001dÛcÔwÝ?Ø8Ó", - "origin": [ - 468.80010986328125, - 599.6499633789062 - ], - "bbox": [ - 468.80010986328125, - 593.1499633789062, - 520.5001220703125, - 612.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.10009765625, - 586.7499389648438, - 520.5001220703125, - 621.449951171875 - ] - } - ] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 71.30007934570312, - 597.64990234375, - 85.80007934570312, - 634.3499145507812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 71.30007934570312, - 612.5499267578125 - ], - "bbox": [ - 71.30007934570312, - 597.64990234375, - 71.30007934570312, - 622.5499267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")�", - "origin": [ - 71.30007934570312, - 612.5499267578125 - ], - "bbox": [ - 71.30007934570312, - 599.64990234375, - 76.60008239746094, - 634.3499145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ò", - "origin": [ - 76.60008239746094, - 612.5499267578125 - ], - "bbox": [ - 76.60008239746094, - 606.0499267578125, - 85.80007934570312, - 624.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.30007934570312, - 597.64990234375, - 85.80007934570312, - 634.3499145507812 - ] - } - ] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 93.30007934570312, - 612.64990234375, - 522.2000732421875, - 647.3499145507812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×", - "origin": [ - 93.30007934570312, - 625.5499267578125 - ], - "bbox": [ - 93.30007934570312, - 619.0499267578125, - 99.30007934570312, - 637.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "K\u001f", - "origin": [ - 99.30007934570312, - 625.5499267578125 - ], - "bbox": [ - 99.30007934570312, - 612.64990234375, - 107.10008239746094, - 647.3499145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â+Õ/Ûcâ8Ò\u001dÛcÔwÝ?Ø8Ó\"Ò\u001dÞc×^ÛZÞc×gÒ\u001dÛZ×gè\rÒrÓ­à¢Ü8ÔwÛZ×»ØuÝ?ÔlÓZ×Nà»ÔwÛcÜ¥Ù¥×gÒr؜ÒrØ8è Õ/ÝrÞcÞc×gÑÖÒ\u001dÛcÔwÝ?جéªÞc×gÓZå×gÕ/ÛcÔwãr×gÑÖßré©ç?Ôwãr×gØ Ú©ß", - "origin": [ - 107.10008239746094, - 625.5499267578125 - ], - "bbox": [ - 107.10008239746094, - 619.0499267578125, - 515.800048828125, - 637.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-\u0017", - "origin": [ - 515.800048828125, - 625.5499267578125 - ], - "bbox": [ - 515.800048828125, - 619.0499267578125, - 522.2000732421875, - 636.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.30007934570312, - 612.64990234375, - 522.2000732421875, - 647.3499145507812 - ] - } - ] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 233.8000946044922, - 633.3499145507812, - 239.10009765625, - 670.0499267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 233.8000946044922, - 648.2499389648438 - ], - "bbox": [ - 233.8000946044922, - 633.3499145507812, - 233.8000946044922, - 658.2499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")�", - "origin": [ - 233.8000946044922, - 648.2499389648438 - ], - "bbox": [ - 233.8000946044922, - 635.3499145507812, - 239.10009765625, - 670.0499267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.8000946044922, - 633.3499145507812, - 239.10009765625, - 670.0499267578125 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 248.4001007080078, - 632.8499145507812, - 251.8000946044922, - 659.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 248.4001007080078, - 647.7499389648438 - ], - "bbox": [ - 248.4001007080078, - 640.7499389648438, - 248.4001007080078, - 659.1499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 248.4001007080078, - 647.7499389648438 - ], - "bbox": [ - 248.4001007080078, - 632.8499145507812, - 251.8000946044922, - 657.7499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.4001007080078, - 632.8499145507812, - 251.8000946044922, - 659.1499633789062 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 258.7001037597656, - 641.2499389648438, - 262.9001159667969, - 659.7499389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 258.7001037597656, - 648.2499389648438 - ], - "bbox": [ - 258.7001037597656, - 641.2499389648438, - 258.7001037597656, - 659.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "#\"", - "origin": [ - 258.7001037597656, - 648.2499389648438 - ], - "bbox": [ - 258.7001037597656, - 641.449951171875, - 262.9001159667969, - 659.7499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.7001037597656, - 641.2499389648438, - 262.9001159667969, - 659.7499389648438 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 510.1001281738281, - 641.2499389648438, - 520.5001220703125, - 660.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îg÷", - "origin": [ - 510.1001281738281, - 648.2499389648438 - ], - "bbox": [ - 510.1001281738281, - 641.7499389648438, - 515.0001220703125, - 660.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0001220703125, - 648.2499389648438 - ], - "bbox": [ - 515.0001220703125, - 641.2499389648438, - 520.5001220703125, - 659.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1001281738281, - 641.2499389648438, - 520.5001220703125, - 660.6499633789062 - ] - } - ] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 204.5001220703125, - 653.949951171875, - 209.8001251220703, - 690.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 204.5001220703125, - 668.8499755859375 - ], - "bbox": [ - 204.5001220703125, - 653.949951171875, - 204.5001220703125, - 678.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")�", - "origin": [ - 204.5001220703125, - 668.8499755859375 - ], - "bbox": [ - 204.5001220703125, - 655.949951171875, - 209.8001251220703, - 690.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 204.5001220703125, - 653.949951171875, - 209.8001251220703, - 690.6499633789062 - ] - } - ] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 219.2001190185547, - 653.449951171875, - 222.60011291503906, - 679.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 219.2001190185547, - 668.3499755859375 - ], - "bbox": [ - 219.2001190185547, - 661.3499755859375, - 219.2001190185547, - 679.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 219.2001190185547, - 668.3499755859375 - ], - "bbox": [ - 219.2001190185547, - 653.449951171875, - 222.60011291503906, - 678.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.2001190185547, - 653.449951171875, - 222.60011291503906, - 679.75 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 229.5001220703125, - 653.949951171875, - 238.8001251220703, - 690.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 229.5001220703125, - 668.8499755859375 - ], - "bbox": [ - 229.5001220703125, - 661.8499755859375, - 229.5001220703125, - 680.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "G\u001b", - "origin": [ - 229.5001220703125, - 668.8499755859375 - ], - "bbox": [ - 229.5001220703125, - 653.949951171875, - 233.60012817382812, - 678.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 233.60012817382812, - 668.8499755859375 - ], - "bbox": [ - 233.60012817382812, - 655.949951171875, - 238.8001251220703, - 690.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.5001220703125, - 653.949951171875, - 238.8001251220703, - 690.6499633789062 - ] - } - ] - }, - { - "number": 101, - "type": 0, - "bbox": [ - 258.70013427734375, - 661.8499755859375, - 262.900146484375, - 680.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 258.70013427734375, - 668.8499755859375 - ], - "bbox": [ - 258.70013427734375, - 661.8499755859375, - 258.70013427734375, - 680.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "#\"", - "origin": [ - 258.70013427734375, - 668.8499755859375 - ], - "bbox": [ - 258.70013427734375, - 662.0499877929688, - 262.900146484375, - 680.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.70013427734375, - 661.8499755859375, - 262.900146484375, - 680.3499755859375 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 307.1001281738281, - 653.449951171875, - 310.5001220703125, - 679.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 307.1001281738281, - 668.3499755859375 - ], - "bbox": [ - 307.1001281738281, - 661.3499755859375, - 307.1001281738281, - 679.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 307.1001281738281, - 668.3499755859375 - ], - "bbox": [ - 307.1001281738281, - 653.449951171875, - 310.5001220703125, - 678.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.1001281738281, - 653.449951171875, - 310.5001220703125, - 679.75 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 317.4001159667969, - 653.949951171875, - 321.5001220703125, - 680.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 317.4001159667969, - 668.8499755859375 - ], - "bbox": [ - 317.4001159667969, - 661.8499755859375, - 317.4001159667969, - 680.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "G\u001b", - "origin": [ - 317.4001159667969, - 668.8499755859375 - ], - "bbox": [ - 317.4001159667969, - 653.949951171875, - 321.5001220703125, - 678.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.4001159667969, - 653.949951171875, - 321.5001220703125, - 680.25 - ] - } - ] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 327.30010986328125, - 653.449951171875, - 330.7001037597656, - 679.75 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 327.30010986328125, - 668.3499755859375 - ], - "bbox": [ - 327.30010986328125, - 661.3499755859375, - 327.30010986328125, - 679.75 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 327.30010986328125, - 668.3499755859375 - ], - "bbox": [ - 327.30010986328125, - 653.449951171875, - 330.7001037597656, - 678.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.30010986328125, - 653.449951171875, - 330.7001037597656, - 679.75 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 357.9001159667969, - 653.949951171875, - 367.4001159667969, - 690.6499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 357.9001159667969, - 668.8499755859375 - ], - "bbox": [ - 357.9001159667969, - 661.8499755859375, - 357.9001159667969, - 680.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\n\u001e", - "origin": [ - 357.9001159667969, - 668.8499755859375 - ], - "bbox": [ - 357.9001159667969, - 655.949951171875, - 362.1001281738281, - 690.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "‡\u001b", - "origin": [ - 362.1001281738281, - 668.8499755859375 - ], - "bbox": [ - 362.1001281738281, - 653.949951171875, - 367.4001159667969, - 678.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.9001159667969, - 653.949951171875, - 367.4001159667969, - 690.6499633789062 - ] - } - ] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 376.6001281738281, - 661.8499755859375, - 382.20013427734375, - 681.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ü", - "origin": [ - 376.6001281738281, - 668.8499755859375 - ], - "bbox": [ - 376.6001281738281, - 662.3499755859375, - 376.6001281738281, - 681.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 376.6001281738281, - 668.8499755859375 - ], - "bbox": [ - 376.6001281738281, - 661.8499755859375, - 382.20013427734375, - 680.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.6001281738281, - 661.8499755859375, - 382.20013427734375, - 681.25 - ] - } - ] - }, - { - "number": 110, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 510.1001281738281, - 661.8499755859375, - 520.5001220703125, - 681.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgø", - "origin": [ - 510.1001281738281, - 668.8499755859375 - ], - "bbox": [ - 510.1001281738281, - 662.3499755859375, - 515.0001220703125, - 681.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0001220703125, - 668.8499755859375 - ], - "bbox": [ - 515.0001220703125, - 661.8499755859375, - 520.5001220703125, - 680.25 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.1001281738281, - 661.8499755859375, - 520.5001220703125, - 681.25 - ] - } - ] - }, - { - "number": 112, - "type": 0, - "bbox": [ - 71.10012817382812, - 684.7499389648438, - 102.20013427734375, - 703.949951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×QÞc×", - "origin": [ - 71.10012817382812, - 691.5499267578125 - ], - "bbox": [ - 71.10012817382812, - 685.0499267578125, - 94.30013275146484, - 703.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "$\r", - "origin": [ - 94.30013275146484, - 691.5499267578125 - ], - "bbox": [ - 94.30013275146484, - 684.7499389648438, - 102.20013427734375, - 703.0499267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10012817382812, - 684.7499389648438, - 102.20013427734375, - 703.949951171875 - ] - } - ] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 108.90013122558594, - 676.14990234375, - 112.30013275146484, - 702.449951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 108.90013122558594, - 691.0499267578125 - ], - "bbox": [ - 108.90013122558594, - 684.0499267578125, - 108.90013122558594, - 702.449951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 108.90013122558594, - 691.0499267578125 - ], - "bbox": [ - 108.90013122558594, - 676.14990234375, - 112.30013275146484, - 701.0499267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.90013122558594, - 676.14990234375, - 112.30013275146484, - 702.449951171875 - ] - } - ] - }, - { - "number": 114, - "type": 0, - "bbox": [ - 119.20013427734375, - 678.64990234375, - 402.400146484375, - 713.3499145507812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 119.20013427734375, - 691.5499267578125 - ], - "bbox": [ - 119.20013427734375, - 684.5499267578125, - 119.20013427734375, - 702.949951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Bèu×gÓcÕ/ÞGÔÖÚ6×gÓBÛcÜu×»à»ÔÖèuÛcÜ&Ýræ6ÛcÜu×^ÑwÝWÕQÒrÑuè8ÔÖÓZÛZÞGÔÖÚ+âuÛcÔwÝ?سÝræ", - "origin": [ - 119.20013427734375, - 691.5499267578125 - ], - "bbox": [ - 119.20013427734375, - 685.0499267578125, - 339.6001281738281, - 703.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.20013427734375, - 684.5499267578125, - 339.6001281738281, - 703.949951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001f", - "origin": [ - 345.900146484375, - 691.5499267578125 - ], - "bbox": [ - 345.900146484375, - 678.64990234375, - 345.900146484375, - 713.3499145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â+Õ/Ûcâ8Ò\u001dÛcÔwÝ?Ø8ÓQò", - "origin": [ - 345.900146484375, - 691.5499267578125 - ], - "bbox": [ - 345.900146484375, - 685.0499267578125, - 402.400146484375, - 703.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 345.900146484375, - 678.64990234375, - 402.400146484375, - 713.3499145507812 - ] - } - ] - }, - { - "number": 116, - "type": 0, - "bbox": [ - 417.400146484375, - 685.0499267578125, - 520.3002319335938, - 703.949951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔlÓBè+ÔÖÓZÛZÞGÔwÚyâuÛcÔwÝ?سÕQÒrØ+ØuÝrÛ", - "origin": [ - 417.400146484375, - 691.5499267578125 - ], - "bbox": [ - 417.400146484375, - 685.0499267578125, - 520.3002319335938, - 703.949951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 417.400146484375, - 685.0499267578125, - 520.3002319335938, - 703.949951171875 - ] - } - ] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 71.10012817382812, - 697.949951171875, - 461.5000305175781, - 716.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×;ÒrÓcÓZ×gÓcÓc×gè–à»ÔwÛcÜ8Ý?âuÛ\u0010æ=âuÞGÛcÜu×QÞ^ÔÖØ8ÓcÔÖç?ܪÛNÔÖØ©ÛZÝ ÜuÝaà", - "origin": [ - 71.10012817382812, - 704.449951171875 - ], - "bbox": [ - 71.10012817382812, - 697.949951171875, - 274.2001647949219, - 716.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10012817382812, - 697.949951171875, - 274.2001647949219, - 716.8499755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™ÝrÞ1Õ/×gÓ»Ò\u001dÞGÔÖÓc×%Ò\u001dÛ»ÓcÙ¥ÒrÑÖѰÓcå+ÒrÕ/×QÛcÔÖÙ�×%ÓcÕQÒrÑÖ×gÓQò", - "origin": [ - 285.70013427734375, - 704.449951171875 - ], - "bbox": [ - 285.70013427734375, - 697.949951171875, - 461.5000305175781, - 716.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 285.70013427734375, - 697.949951171875, - 461.5000305175781, - 716.8499755859375 - ] - } - ] - }, - { - "number": 119, - "type": 0, - "bbox": [ - 80.40013122558594, - 711.8499145507812, - 122.00013732910156, - 739.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "+", - "origin": [ - 80.40013122558594, - 726.7499389648438 - ], - "bbox": [ - 80.40013122558594, - 711.8499145507812, - 80.40013122558594, - 736.7499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TALKNALt´EcFJtžQ`WH", - "origin": [ - 80.40013122558594, - 726.7499389648438 - ], - "bbox": [ - 80.40013122558594, - 720.2499389648438, - 122.00013732910156, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.40013122558594, - 711.8499145507812, - 122.00013732910156, - 739.1499633789062 - ] - } - ] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 130.90013122558594, - 720.2499389648438, - 149.10012817382812, - 739.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]FJM1`uH", - "origin": [ - 130.90013122558594, - 726.7499389648438 - ], - "bbox": [ - 130.90013122558594, - 720.2499389648438, - 149.10012817382812, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 130.90013122558594, - 720.2499389648438, - 149.10012817382812, - 739.1499633789062 - ] - } - ] - }, - { - "number": 123, - "type": 0, - "bbox": [ - 158.0001220703125, - 720.2499389648438, - 182.40013122558594, - 739.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]³‘¬ALtDt", - "origin": [ - 158.0001220703125, - 726.7499389648438 - ], - "bbox": [ - 158.0001220703125, - 720.2499389648438, - 182.40013122558594, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.0001220703125, - 720.2499389648438, - 182.40013122558594, - 739.1499633789062 - ] - } - ] - }, - { - "number": 125, - "type": 0, - "bbox": [ - 194.10012817382812, - 720.2499389648438, - 262.80010986328125, - 739.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EZh/M^E1O�M¯¿?MPY]H\"ReO&H", - "origin": [ - 194.10012817382812, - 726.7499389648438 - ], - "bbox": [ - 194.10012817382812, - 720.2499389648438, - 262.80010986328125, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.10012817382812, - 720.2499389648438, - 262.80010986328125, - 739.1499633789062 - ] - } - ] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 271.6001281738281, - 711.8499145507812, - 347.7001647949219, - 739.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M", - "origin": [ - 271.6001281738281, - 726.7499389648438 - ], - "bbox": [ - 271.6001281738281, - 720.2499389648438, - 271.6001281738281, - 739.1499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "J)", - "origin": [ - 271.6001281738281, - 726.7499389648438 - ], - "bbox": [ - 271.6001281738281, - 711.8499145507812, - 279.6001281738281, - 736.7499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO\u0018M¯HJADY\u0010HJM¯FJKNX\"RG °H", - "origin": [ - 279.6001281738281, - 726.7499389648438 - ], - "bbox": [ - 279.6001281738281, - 720.2499389648438, - 347.7001647949219, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.6001281738281, - 711.8499145507812, - 347.7001647949219, - 739.1499633789062 - ] - } - ] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 356.60015869140625, - 713.8499145507812, - 520.500244140625, - 748.5499267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M^b©ALR1•\u0018hgALtDtLM»R1F\"h/ReO¬¶-MP•\u0018K^EGO\u0018O³ReCrM]FsEcHJR1F", - "origin": [ - 356.60015869140625, - 726.7499389648438 - ], - "bbox": [ - 356.60015869140625, - 720.2499389648438, - 503.5002136230469, - 739.1499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\n[", - "origin": [ - 503.5002136230469, - 726.7499389648438 - ], - "bbox": [ - 503.5002136230469, - 713.8499145507812, - 507.7002258300781, - 748.5499267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6‘6M", - "origin": [ - 507.7002258300781, - 726.7499389648438 - ], - "bbox": [ - 507.7002258300781, - 720.2499389648438, - 520.500244140625, - 739.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 356.60015869140625, - 713.8499145507812, - 520.500244140625, - 748.5499267578125 - ] - } - ] - }, - { - "number": 130, - "type": 0, - "bbox": [ - 71.10015869140625, - 722.7499389648438, - 119.50016021728516, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "XIALKNC\u0018tž\"HsE", - "origin": [ - 71.10015869140625, - 737.6499633789062 - ], - "bbox": [ - 71.10015869140625, - 731.1499633789062, - 103.90016174316406, - 750.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "N)", - "origin": [ - 103.90016174316406, - 737.6499633789062 - ], - "bbox": [ - 103.90016174316406, - 722.7499389648438, - 108.30016326904297, - 747.6499633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/MH", - "origin": [ - 108.30016326904297, - 737.6499633789062 - ], - "bbox": [ - 108.30016326904297, - 731.1499633789062, - 119.50016021728516, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10015869140625, - 722.7499389648438, - 119.50016021728516, - 750.0499877929688 - ] - } - ] - }, - { - "number": 132, - "type": 0, - "bbox": [ - 128.40016174316406, - 731.1499633789062, - 153.50015258789062, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]K¾EGX+H", - "origin": [ - 128.40016174316406, - 737.6499633789062 - ], - "bbox": [ - 128.40016174316406, - 731.1499633789062, - 153.50015258789062, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.40016174316406, - 731.1499633789062, - 153.50015258789062, - 750.0499877929688 - ] - } - ] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 162.3001708984375, - 731.1499633789062, - 213.5001678466797, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]\u001bEGFJMe`gXIALO\u0018Y]M¬H", - "origin": [ - 162.3001708984375, - 737.6499633789062 - ], - "bbox": [ - 162.3001708984375, - 731.1499633789062, - 213.5001678466797, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.3001708984375, - 731.1499633789062, - 213.5001678466797, - 750.0499877929688 - ] - } - ] - }, - { - "number": 136, - "type": 0, - "bbox": [ - 222.3001708984375, - 731.1499633789062, - 255.60018920898438, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]½aALMPtDS\u001bH", - "origin": [ - 222.3001708984375, - 737.6499633789062 - ], - "bbox": [ - 222.3001708984375, - 731.1499633789062, - 255.60018920898438, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.3001708984375, - 731.1499633789062, - 255.60018920898438, - 750.0499877929688 - ] - } - ] - }, - { - "number": 138, - "type": 0, - "bbox": [ - 264.4001770019531, - 731.1499633789062, - 370.6002502441406, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M¬E1C\u0018CTFJReCTFJA´EcHJMB”Q•\u0018E1OQHJ•\u0018K\u000fKNM]Y", - "origin": [ - 264.4001770019531, - 737.6499633789062 - ], - "bbox": [ - 264.4001770019531, - 731.1499633789062, - 370.6002502441406, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.4001770019531, - 731.1499633789062, - 370.6002502441406, - 750.0499877929688 - ] - } - ] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 379.7001953125, - 731.1499633789062, - 519.5001831054688, - 750.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1O\u0018ALYZEGt\u0018R1CrM]FsEGHJRGFZš8ÀBRZ‘MPheM]FZ`gE­SaM]HsEGALtDMPS", - "origin": [ - 379.7001953125, - 737.6499633789062 - ], - "bbox": [ - 379.7001953125, - 731.1499633789062, - 519.5001831054688, - 750.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 379.7001953125, - 731.1499633789062, - 519.5001831054688, - 750.0499877929688 - ] - } - ] - }, - { - "number": 141, - "type": 0, - "bbox": [ - 71.10018920898438, - 742.1499633789062, - 105.6001968383789, - 761.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "X’HJ•\u001dSg­R1 \u001dH", - "origin": [ - 71.10018920898438, - 748.6499633789062 - ], - "bbox": [ - 71.10018920898438, - 742.1499633789062, - 105.6001968383789, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10018920898438, - 742.1499633789062, - 105.6001968383789, - 761.0499877929688 - ] - } - ] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 114.40018463134766, - 742.1499633789062, - 183.4001922607422, - 761.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MMPKNM]FJd1MPO\u0018YPM6R1 rXI•aY", - "origin": [ - 114.40018463134766, - 748.6499633789062 - ], - "bbox": [ - 114.40018463134766, - 742.1499633789062, - 183.4001922607422, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.40018463134766, - 742.1499633789062, - 183.4001922607422, - 761.0499877929688 - ] - } - ] - }, - { - "number": 145, - "type": 0, - "bbox": [ - 194.60018920898438, - 742.1499633789062, - 348.70025634765625, - 761.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "HJM]FJKNXW ºFJR1K", - "origin": [ - 194.60018920898438, - 748.6499633789062 - ], - "bbox": [ - 194.60018920898438, - 742.1499633789062, - 230.70018005371094, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.60018920898438, - 742.1499633789062, - 230.70018005371094, - 761.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E-YZEG•\u0018XJEGt\u0018XIM]H8CrM]FJXICrM]Y]HJALh/Me`/RG \u001dH", - "origin": [ - 241.00018310546875, - 748.6499633789062 - ], - "bbox": [ - 241.00018310546875, - 742.1499633789062, - 348.70025634765625, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.00018310546875, - 742.1499633789062, - 348.70025634765625, - 761.0499877929688 - ] - } - ] - }, - { - "number": 147, - "type": 0, - "bbox": [ - 357.6001892089844, - 742.1499633789062, - 472.3002014160156, - 761.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "My‘°EZh/MR1CrM]FsEGHJRGFyALO\"C\u001dEGFIHJALYP•atDEGFZ`", - "origin": [ - 357.6001892089844, - 748.6499633789062 - ], - "bbox": [ - 357.6001892089844, - 742.1499633789062, - 472.3002014160156, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.6001892089844, - 742.1499633789062, - 472.3002014160156, - 761.0499877929688 - ] - } - ] - }, - { - "number": 149, - "type": 0, - "bbox": [ - 482.3002014160156, - 742.1499633789062, - 519.6002807617188, - 761.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1XWFJMPYPM]OgHJtž", - "origin": [ - 482.3002014160156, - 748.6499633789062 - ], - "bbox": [ - 482.3002014160156, - 742.1499633789062, - 519.6002807617188, - 761.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 482.3002014160156, - 742.1499633789062, - 519.6002807617188, - 761.0499877929688 - ] - } - ] - }, - { - "number": 150, - "type": 0, - "bbox": [ - 71.10018920898438, - 752.6499633789062, - 274.9001770019531, - 772.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "£rMPMPO¢CrM]FI ¸RGFJKNMZS", - "origin": [ - 71.10018920898438, - 759.6499633789062 - ], - "bbox": [ - 71.10018920898438, - 753.1499633789062, - 128.80018615722656, - 772.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10018920898438, - 753.1499633789062, - 128.80018615722656, - 772.0499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "pem", - "origin": [ - 139.60018920898438, - 759.6499633789062 - ], - "bbox": [ - 139.60018920898438, - 753.1499633789062, - 144.2001953125, - 772.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 144.2001953125, - 759.6499633789062 - ], - "bbox": [ - 144.2001953125, - 752.6499633789062, - 148.5001983642578, - 771.0499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "l`\u0018MPh/MPOQHJ•\u0018E1tLtž»HJR\"£rM¡YPReK\"£\u0018ALO\u0018MPS^‘¬AžH", - "origin": [ - 148.5001983642578, - 759.6499633789062 - ], - "bbox": [ - 148.5001983642578, - 753.1499633789062, - 274.9001770019531, - 772.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.60018920898438, - 752.6499633789062, - 274.9001770019531, - 772.0499877929688 - ] - } - ] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 286.9001770019531, - 753.1499633789062, - 371.4002380371094, - 772.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "YPR1O\u0018XIADSaM¯FsEGHJALReOaX·E1tLR1O\u0018d\u001bH", - "origin": [ - 286.9001770019531, - 759.6499633789062 - ], - "bbox": [ - 286.9001770019531, - 753.1499633789062, - 371.4002380371094, - 772.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.9001770019531, - 753.1499633789062, - 371.4002380371094, - 772.0499877929688 - ] - } - ] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 380.2001953125, - 753.1499633789062, - 441.7002868652344, - 772.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M¡tDALOaMPX¬CaFJMPXIMPOQHJMZS", - "origin": [ - 380.2001953125, - 759.6499633789062 - ], - "bbox": [ - 380.2001953125, - 753.1499633789062, - 441.7002868652344, - 772.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.2001953125, - 753.1499633789062, - 441.7002868652344, - 772.0499877929688 - ] - } - ] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 454.90020751953125, - 753.1499633789062, - 467.1002197265625, - 772.0499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]FJM1š", - "origin": [ - 454.90020751953125, - 759.6499633789062 - ], - "bbox": [ - 454.90020751953125, - 753.1499633789062, - 467.1002197265625, - 772.0499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.90020751953125, - 753.1499633789062, - 467.1002197265625, - 772.0499877929688 - ] - } - ] - }, - { - "number": 157, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ] - }, - { - "number": 158, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ] - }, - { - "number": 159, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "6", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 157, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "tag": "header" - }, - { - "number": 158, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "tag": "header" - }, - { - "number": 159, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "6", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 6, - "page_size": [ - 595.5, - 842.25 - ] - }, - "page_7": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 95.5, - 103.14998626708984, - 196.3999786376953, - 137.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "לØuÝaà", - "origin": [ - 95.5, - 116.04998779296875 - ], - "bbox": [ - 95.5, - 109.54998779296875, - 115.9000015258789, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.5, - 109.54998779296875, - 115.9000015258789, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔlÙ�å+Ñw×gÙ�×gØ©Û", - "origin": [ - 128.3000030517578, - 116.04998779296875 - ], - "bbox": [ - 128.3000030517578, - 109.54998779296875, - 174.19998168945312, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "O!", - "origin": [ - 174.19998168945312, - 116.04998779296875 - ], - "bbox": [ - 174.19998168945312, - 103.14998626708984, - 182.69998168945312, - 137.84999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 182.69998168945312, - 116.04998779296875 - ], - "bbox": [ - 182.69998168945312, - 109.54998779296875, - 196.3999786376953, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.3000030517578, - 103.14998626708984, - 196.3999786376953, - 137.84999084472656 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 205.0, - 109.04998779296875, - 215.0, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "û", - "origin": [ - 205.0, - 116.04998779296875 - ], - "bbox": [ - 205.0, - 109.54998779296875, - 205.0, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 205.0, - 116.04998779296875 - ], - "bbox": [ - 205.0, - 109.04998779296875, - 210.5, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é", - "origin": [ - 210.5, - 116.04998779296875 - ], - "bbox": [ - 210.5, - 109.54998779296875, - 215.0, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.0, - 109.04998779296875, - 215.0, - 128.44998168945312 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 228.59999084472656, - 100.64998626708984, - 231.99998474121094, - 126.94998931884766 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 228.59999084472656, - 115.54998779296875 - ], - "bbox": [ - 228.59999084472656, - 108.54998779296875, - 228.59999084472656, - 126.94998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 228.59999084472656, - 115.54998779296875 - ], - "bbox": [ - 228.59999084472656, - 100.64998626708984, - 231.99998474121094, - 125.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.59999084472656, - 100.64998626708984, - 231.99998474121094, - 126.94998931884766 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 247.59999084472656, - 103.14998626708984, - 260.29998779296875, - 137.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "6", - "origin": [ - 247.59999084472656, - 116.04998779296875 - ], - "bbox": [ - 247.59999084472656, - 109.04998779296875, - 247.59999084472656, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0011�", - "origin": [ - 247.59999084472656, - 116.04998779296875 - ], - "bbox": [ - 247.59999084472656, - 103.14998626708984, - 260.29998779296875, - 137.84999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.59999084472656, - 103.14998626708984, - 260.29998779296875, - 137.84999084472656 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 269.5999755859375, - 100.64998626708984, - 272.9999694824219, - 126.94998931884766 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 269.5999755859375, - 115.54998779296875 - ], - "bbox": [ - 269.5999755859375, - 108.54998779296875, - 269.5999755859375, - 126.94998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 269.5999755859375, - 115.54998779296875 - ], - "bbox": [ - 269.5999755859375, - 100.64998626708984, - 272.9999694824219, - 125.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.5999755859375, - 100.64998626708984, - 272.9999694824219, - 126.94998931884766 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 298.39996337890625, - 101.14998626708984, - 303.5999755859375, - 137.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 298.39996337890625, - 116.04998779296875 - ], - "bbox": [ - 298.39996337890625, - 101.14998626708984, - 298.39996337890625, - 126.04998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 298.39996337890625, - 116.04998779296875 - ], - "bbox": [ - 298.39996337890625, - 103.14998626708984, - 303.5999755859375, - 137.84999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 298.39996337890625, - 101.14998626708984, - 303.5999755859375, - 137.84999084472656 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 313.0999755859375, - 100.64998626708984, - 316.4999694824219, - 126.94998931884766 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 313.0999755859375, - 115.54998779296875 - ], - "bbox": [ - 313.0999755859375, - 108.54998779296875, - 313.0999755859375, - 126.94998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 313.0999755859375, - 115.54998779296875 - ], - "bbox": [ - 313.0999755859375, - 100.64998626708984, - 316.4999694824219, - 125.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0999755859375, - 100.64998626708984, - 316.4999694824219, - 126.94998931884766 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 323.39996337890625, - 109.04998779296875, - 519.3999633789062, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 323.39996337890625, - 116.04998779296875 - ], - "bbox": [ - 323.39996337890625, - 109.04998779296875, - 323.39996337890625, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é¡ÔÖØ�ÛcÜ8× ãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ8Ø7×gä©â+Ò\u001dÛcÔwÝ?Ø7æ=Ý?ÑÖÑwÝaà»ÔÖØuç", - "origin": [ - 323.39996337890625, - 116.04998779296875 - ], - "bbox": [ - 323.39996337890625, - 109.54998779296875, - 519.3999633789062, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.39996337890625, - 109.04998779296875, - 519.3999633789062, - 128.44998168945312 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 71.09996032714844, - 116.05001068115234, - 114.29996490478516, - 150.75001525878906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=ÞcÝ?Ù", - "origin": [ - 71.09996032714844, - 128.95001220703125 - ], - "bbox": [ - 71.09996032714844, - 122.45001220703125, - 84.29996490478516, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09996032714844, - 122.45001220703125, - 84.29996490478516, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 96.29995727539062, - 128.95001220703125 - ], - "bbox": [ - 96.29995727539062, - 116.05001068115234, - 96.29995727539062, - 150.75001525878906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äVÓQò", - "origin": [ - 96.29995727539062, - 128.95001220703125 - ], - "bbox": [ - 96.29995727539062, - 122.45001220703125, - 114.29996490478516, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.29995727539062, - 116.05001068115234, - 114.29996490478516, - 150.75001525878906 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 123.39995574951172, - 121.95001220703125, - 133.79995727539062, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îQü", - "origin": [ - 123.39995574951172, - 128.95001220703125 - ], - "bbox": [ - 123.39995574951172, - 122.45001220703125, - 128.199951171875, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 128.199951171875, - 128.95001220703125 - ], - "bbox": [ - 128.199951171875, - 121.95001220703125, - 133.79995727539062, - 140.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 123.39995574951172, - 121.95001220703125, - 133.79995727539062, - 141.35000610351562 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 147.9999542236328, - 121.95001220703125, - 312.5999450683594, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgï", - "origin": [ - 147.9999542236328, - 128.95001220703125 - ], - "bbox": [ - 147.9999542236328, - 122.45001220703125, - 152.8999481201172, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 152.8999481201172, - 128.95001220703125 - ], - "bbox": [ - 152.8999481201172, - 121.95001220703125, - 158.3999481201172, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1éuà»ÔÖÛcÜ\u0014å+Ôw×gÕ/×Qà»ÔÖÓc×\u0010ÑlÔÖØu×gÒ\u001dÞ·åÝrÛZ×gتÛcÔÖÒrÑJò", - "origin": [ - 158.3999481201172, - 128.95001220703125 - ], - "bbox": [ - 158.3999481201172, - 122.45001220703125, - 312.5999450683594, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.9999542236328, - 121.95001220703125, - 312.5999450683594, - 141.35000610351562 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 327.4999694824219, - 122.45001220703125, - 518.699951171875, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÓ·ßVÔÖ×gÑÖè8ÓBÛcÜu×NãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ8Ø¥×gä©â8Ò\u001dÛcÔÖÝ?Ø\u0014à»ÔwÛcÜ", - "origin": [ - 327.4999694824219, - 128.95001220703125 - ], - "bbox": [ - 327.4999694824219, - 122.45001220703125, - 518.699951171875, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.4999694824219, - 122.45001220703125, - 518.699951171875, - 141.35000610351562 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 71.0999755859375, - 129.05001831054688, - 375.1999816894531, - 163.75001525878906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×%Õ/Ý?Ò\u001dÞ1ÓZ×", - "origin": [ - 71.0999755859375, - 141.95001220703125 - ], - "bbox": [ - 71.0999755859375, - 135.45001220703125, - 114.0999755859375, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 114.0999755859375, - 141.95001220703125 - ], - "bbox": [ - 114.0999755859375, - 135.45001220703125, - 118.79997253417969, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞGÒrÔÖØu×gè!åÝrÛZ×gتÛcÔÖÒrÑ", - "origin": [ - 118.79997253417969, - 141.95001220703125 - ], - "bbox": [ - 118.79997253417969, - 135.45001220703125, - 200.89996337890625, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 135.45001220703125, - 200.89996337890625, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è!Òrè8è8ÔwÛcÔwÝ?Ø+ÒrÑ", - "origin": [ - 219.99998474121094, - 141.95001220703125 - ], - "bbox": [ - 219.99998474121094, - 135.45001220703125, - 286.29998779296875, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.99998474121094, - 135.45001220703125, - 286.29998779296875, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001f", - "origin": [ - 292.79998779296875, - 141.95001220703125 - ], - "bbox": [ - 292.79998779296875, - 129.05001831054688, - 292.79998779296875, - 163.75001525878906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8Õ/Ûcâ8Ò\u001dÛcÔÖØ8ç&ÛZ×QÞ1Ù¥Ó", - "origin": [ - 292.79998779296875, - 141.95001220703125 - ], - "bbox": [ - 292.79998779296875, - 135.45001220703125, - 370.3999938964844, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017", - "origin": [ - 370.3999938964844, - 141.95001220703125 - ], - "bbox": [ - 370.3999938964844, - 135.45001220703125, - 375.1999816894531, - 153.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 292.79998779296875, - 129.05001831054688, - 375.1999816894531, - 163.75001525878906 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 251.79998779296875, - 157.85000610351562, - 257.3999938964844, - 192.5500030517578 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0013\u000e", - "origin": [ - 251.79998779296875, - 170.75 - ], - "bbox": [ - 251.79998779296875, - 157.85000610351562, - 257.3999938964844, - 192.5500030517578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.79998779296875, - 157.85000610351562, - 257.3999938964844, - 192.5500030517578 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 294.9999694824219, - 153.14999389648438, - 300.9999694824219, - 187.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "í", - "origin": [ - 294.9999694824219, - 166.04998779296875 - ], - "bbox": [ - 294.9999694824219, - 159.54998779296875, - 294.9999694824219, - 178.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001d4", - "origin": [ - 294.9999694824219, - 166.04998779296875 - ], - "bbox": [ - 294.9999694824219, - 153.14999389648438, - 300.9999694824219, - 187.84999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 294.9999694824219, - 153.14999389648438, - 300.9999694824219, - 187.84999084472656 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 297.2999572753906, - 159.25, - 315.39996337890625, - 177.64999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 297.2999572753906, - 166.25 - ], - "bbox": [ - 297.2999572753906, - 159.25, - 297.2999572753906, - 177.64999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "���", - "origin": [ - 297.2999572753906, - 166.25 - ], - "bbox": [ - 297.2999572753906, - 159.85000610351562, - 315.39996337890625, - 173.85000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 297.2999572753906, - 159.25, - 315.39996337890625, - 177.64999389648438 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 325.5999450683594, - 153.14999389648438, - 331.8999328613281, - 187.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 325.5999450683594, - 166.04998779296875 - ], - "bbox": [ - 325.5999450683594, - 153.14999389648438, - 325.5999450683594, - 187.84999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yñ", - "origin": [ - 325.5999450683594, - 166.04998779296875 - ], - "bbox": [ - 325.5999450683594, - 159.54998779296875, - 331.8999328613281, - 178.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5999450683594, - 153.14999389648438, - 331.8999328613281, - 187.84999084472656 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 510.0999450683594, - 159.54998779296875, - 515.0999755859375, - 178.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îTù", - "origin": [ - 510.0999450683594, - 166.04998779296875 - ], - "bbox": [ - 510.0999450683594, - 159.54998779296875, - 515.0999755859375, - 178.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.0999450683594, - 159.54998779296875, - 515.0999755859375, - 178.44998168945312 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 71.09994506835938, - 183.14996337890625, - 329.99993896484375, - 202.54995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×QÞcדÛcÜu×%×", - "origin": [ - 71.09994506835938, - 190.14996337890625 - ], - "bbox": [ - 71.09994506835938, - 183.64996337890625, - 121.39995574951172, - 202.54995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 121.39995574951172, - 190.14996337890625 - ], - "bbox": [ - 121.39995574951172, - 183.14996337890625, - 126.0999526977539, - 201.54995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛcÔwãr×\u0019ê\u0016ÒrÙ¥ÔÖÑwÛZÝ?ؖÝrå6×QÞ1Ò\u001dÛZÝrÞ»ÔÖÓ^ØuÝaà", - "origin": [ - 126.0999526977539, - 190.14996337890625 - ], - "bbox": [ - 126.0999526977539, - 183.64996337890625, - 277.89990234375, - 202.54995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 183.14996337890625, - 277.89990234375, - 202.54995727539062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ç?Ôwãr×gؗÚVß", - "origin": [ - 289.39996337890625, - 190.14996337890625 - ], - "bbox": [ - 289.39996337890625, - 183.64996337890625, - 323.5999450683594, - 202.54995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-\u0017", - "origin": [ - 323.5999450683594, - 190.14996337890625 - ], - "bbox": [ - 323.5999450683594, - 183.64996337890625, - 329.99993896484375, - 201.54995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.39996337890625, - 183.64996337890625, - 329.99993896484375, - 202.54995727539062 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 211.29995727539062, - 207.449951171875, - 229.39996337890625, - 225.84994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 211.29995727539062, - 214.449951171875 - ], - "bbox": [ - 211.29995727539062, - 207.449951171875, - 211.29995727539062, - 225.84994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "���", - "origin": [ - 211.29995727539062, - 214.449951171875 - ], - "bbox": [ - 211.29995727539062, - 208.04995727539062, - 229.39996337890625, - 222.04995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.29995727539062, - 207.449951171875, - 229.39996337890625, - 225.84994506835938 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 245.09996032714844, - 207.24993896484375, - 247.79995727539062, - 225.64993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 245.09996032714844, - 214.24993896484375 - ], - "bbox": [ - 245.09996032714844, - 207.74993896484375, - 245.09996032714844, - 225.64993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 245.09996032714844, - 214.24993896484375 - ], - "bbox": [ - 245.09996032714844, - 207.24993896484375, - 247.79995727539062, - 225.64993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.09996032714844, - 207.24993896484375, - 247.79995727539062, - 225.64993286132812 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 289.49993896484375, - 199.34994506835938, - 294.699951171875, - 236.04994201660156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 289.49993896484375, - 214.24993896484375 - ], - "bbox": [ - 289.49993896484375, - 199.34994506835938, - 289.49993896484375, - 224.24993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 289.49993896484375, - 214.24993896484375 - ], - "bbox": [ - 289.49993896484375, - 201.34994506835938, - 294.699951171875, - 236.04994201660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.49993896484375, - 199.34994506835938, - 294.699951171875, - 236.04994201660156 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 510.0999450683594, - 207.24993896484375, - 520.4999389648438, - 226.64993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgú", - "origin": [ - 510.0999450683594, - 214.24993896484375 - ], - "bbox": [ - 510.0999450683594, - 207.74993896484375, - 514.9999389648438, - 226.64993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 514.9999389648438, - 214.24993896484375 - ], - "bbox": [ - 514.9999389648438, - 207.24993896484375, - 520.4999389648438, - 225.64993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.0999450683594, - 207.24993896484375, - 520.4999389648438, - 226.64993286132812 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 245.09994506835938, - 233.64996337890625, - 247.79994201660156, - 252.04995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 245.09994506835938, - 240.64996337890625 - ], - "bbox": [ - 245.09994506835938, - 234.14996337890625, - 245.09994506835938, - 252.04995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 245.09994506835938, - 240.64996337890625 - ], - "bbox": [ - 245.09994506835938, - 233.64996337890625, - 247.79994201660156, - 252.04995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.09994506835938, - 233.64996337890625, - 247.79994201660156, - 252.04995727539062 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 318.6000061035156, - 225.25003051757812, - 322.0, - 251.55001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 318.6000061035156, - 240.1500244140625 - ], - "bbox": [ - 318.6000061035156, - 233.1500244140625, - 318.6000061035156, - 251.55001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 318.6000061035156, - 240.1500244140625 - ], - "bbox": [ - 318.6000061035156, - 225.25003051757812, - 322.0, - 250.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.6000061035156, - 225.25003051757812, - 322.0, - 251.55001831054688 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 346.4999694824219, - 225.75003051757812, - 351.6999816894531, - 262.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 346.4999694824219, - 240.6500244140625 - ], - "bbox": [ - 346.4999694824219, - 225.75003051757812, - 346.4999694824219, - 250.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 346.4999694824219, - 240.6500244140625 - ], - "bbox": [ - 346.4999694824219, - 227.75003051757812, - 351.6999816894531, - 262.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.4999694824219, - 225.75003051757812, - 351.6999816894531, - 262.45001220703125 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 361.0999755859375, - 225.25003051757812, - 364.4999694824219, - 251.55001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 361.0999755859375, - 240.1500244140625 - ], - "bbox": [ - 361.0999755859375, - 233.1500244140625, - 361.0999755859375, - 251.55001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 361.0999755859375, - 240.1500244140625 - ], - "bbox": [ - 361.0999755859375, - 225.25003051757812, - 364.4999694824219, - 250.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 361.0999755859375, - 225.25003051757812, - 364.4999694824219, - 251.55001831054688 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 510.0999450683594, - 233.6500244140625, - 520.4999389648438, - 253.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgû", - "origin": [ - 510.0999450683594, - 240.6500244140625 - ], - "bbox": [ - 510.0999450683594, - 234.1500244140625, - 514.9999389648438, - 253.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 514.9999389648438, - 240.6500244140625 - ], - "bbox": [ - 514.9999389648438, - 233.6500244140625, - 520.4999389648438, - 252.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.0999450683594, - 233.6500244140625, - 520.4999389648438, - 253.05001831054688 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 71.199951171875, - 255.65005493164062, - 260.49993896484375, - 290.35003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ\rÛcÜ8×%Õ/Ý©ÝrÞGè+ÔÖØ8Ò\u001dÛZ×;Þc×Qå8ÞG×gÓZ×gتÛcÒ\u001dÛcÔÖÝ?ذé+Õ/æ]ò", - "origin": [ - 71.199951171875, - 268.550048828125 - ], - "bbox": [ - 71.199951171875, - 262.050048828125, - 239.39996337890625, - 280.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 262.050048828125, - 239.39996337890625, - 280.9500427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 246.79995727539062, - 268.550048828125 - ], - "bbox": [ - 246.79995727539062, - 255.65005493164062, - 246.79995727539062, - 290.35003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 246.79995727539062, - 268.550048828125 - ], - "bbox": [ - 246.79995727539062, - 262.050048828125, - 260.49993896484375, - 280.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.79995727539062, - 255.65005493164062, - 260.49993896484375, - 290.35003662109375 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 269.5999755859375, - 261.550048828125, - 284.5, - 280.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î/ô", - "origin": [ - 269.5999755859375, - 268.550048828125 - ], - "bbox": [ - 269.5999755859375, - 262.050048828125, - 274.29998779296875, - 280.9500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 274.29998779296875, - 268.550048828125 - ], - "bbox": [ - 274.29998779296875, - 261.550048828125, - 280.0, - 279.9500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 280.0, - 268.550048828125 - ], - "bbox": [ - 280.0, - 262.050048828125, - 284.5, - 280.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.5999755859375, - 261.550048828125, - 284.5, - 280.9500427246094 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 85.29997253417969, - 268.5500793457031, - 405.7999572753906, - 303.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.29997253417969, - 281.4500732421875 - ], - "bbox": [ - 85.29997253417969, - 274.4500732421875, - 85.29997253417969, - 292.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø\rÝrÞ1èu×QÞ^ÛZÝ¥×Qã\u001dÒrÑÖâ8Ò\u001dÛZ×%ÛcÜ8׳ÔÖØ", - "origin": [ - 85.29997253417969, - 281.4500732421875 - ], - "bbox": [ - 85.29997253417969, - 274.9500732421875, - 205.50001525878906, - 293.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001d\u001f", - "origin": [ - 205.50001525878906, - 281.4500732421875 - ], - "bbox": [ - 205.50001525878906, - 268.5500793457031, - 211.50001525878906, - 303.25006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8×gØ8Õ/דÝræ-ÛcÜu×", - "origin": [ - 211.50001525878906, - 281.4500732421875 - ], - "bbox": [ - 211.50001525878906, - 274.9500732421875, - 270.3999938964844, - 293.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.29997253417969, - 268.5500793457031, - 270.3999938964844, - 303.25006103515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001f", - "origin": [ - 278.9999694824219, - 281.4500732421875 - ], - "bbox": [ - 278.9999694824219, - 268.5500793457031, - 278.9999694824219, - 303.25006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8Õ/Ûcâ8Ò\u001dÛcÔwÝ?Ø+ÓQéuà\"×%ÔÖÛZ×QÞGÒ\u001dÛZ×", - "origin": [ - 278.9999694824219, - 281.4500732421875 - ], - "bbox": [ - 278.9999694824219, - 274.9500732421875, - 383.4999694824219, - 293.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.9999694824219, - 268.5500793457031, - 383.4999694824219, - 303.25006103515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 392.0999755859375, - 281.4500732421875 - ], - "bbox": [ - 392.0999755859375, - 268.5500793457031, - 392.0999755859375, - 303.25006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 392.0999755859375, - 281.4500732421875 - ], - "bbox": [ - 392.0999755859375, - 274.9500732421875, - 405.7999572753906, - 293.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 392.0999755859375, - 268.5500793457031, - 405.7999572753906, - 303.25006103515625 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 414.9999694824219, - 274.4500732421875, - 454.89996337890625, - 293.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îTù", - "origin": [ - 414.9999694824219, - 281.4500732421875 - ], - "bbox": [ - 414.9999694824219, - 274.9500732421875, - 419.9999694824219, - 293.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.9999694824219, - 274.9500732421875, - 419.9999694824219, - 293.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 425.39996337890625, - 281.4500732421875 - ], - "bbox": [ - 425.39996337890625, - 274.4500732421875, - 425.39996337890625, - 292.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NÝ?Ø8Õ/×", - "origin": [ - 425.39996337890625, - 281.4500732421875 - ], - "bbox": [ - 425.39996337890625, - 274.9500732421875, - 449.4999694824219, - 293.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%\u0017", - "origin": [ - 449.4999694824219, - 281.4500732421875 - ], - "bbox": [ - 449.4999694824219, - 274.9500732421875, - 454.89996337890625, - 292.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 425.39996337890625, - 274.4500732421875, - 454.89996337890625, - 293.8500671386719 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 245.39993286132812, - 294.0500793457031, - 251.39993286132812, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "í", - "origin": [ - 245.39993286132812, - 306.9500732421875 - ], - "bbox": [ - 245.39993286132812, - 300.4500732421875, - 245.39993286132812, - 319.3500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001d4", - "origin": [ - 245.39993286132812, - 306.9500732421875 - ], - "bbox": [ - 245.39993286132812, - 294.0500793457031, - 251.39993286132812, - 328.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.39993286132812, - 294.0500793457031, - 251.39993286132812, - 328.75006103515625 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 262.5999450683594, - 298.7500915527344, - 268.199951171875, - 333.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0013\u000e", - "origin": [ - 262.5999450683594, - 311.65008544921875 - ], - "bbox": [ - 262.5999450683594, - 298.7500915527344, - 268.199951171875, - 333.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.5999450683594, - 298.7500915527344, - 268.199951171875, - 333.4500732421875 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 271.99993896484375, - 294.0500793457031, - 278.0999450683594, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 271.99993896484375, - 306.9500732421875 - ], - "bbox": [ - 271.99993896484375, - 294.0500793457031, - 271.99993896484375, - 328.75006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8ñ", - "origin": [ - 271.99993896484375, - 306.9500732421875 - ], - "bbox": [ - 271.99993896484375, - 300.4500732421875, - 278.0999450683594, - 319.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.99993896484375, - 294.0500793457031, - 278.0999450683594, - 328.75006103515625 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 284.0999450683594, - 299.550048828125, - 294.99993896484375, - 317.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "8", - "origin": [ - 284.0999450683594, - 306.550048828125 - ], - "bbox": [ - 284.0999450683594, - 299.550048828125, - 284.0999450683594, - 317.9500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "�", - "origin": [ - 284.0999450683594, - 306.550048828125 - ], - "bbox": [ - 284.0999450683594, - 300.1500549316406, - 294.99993896484375, - 314.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 284.0999450683594, - 299.550048828125, - 294.99993896484375, - 317.9500427246094 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 307.5999450683594, - 292.0500793457031, - 321.6999206542969, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 307.5999450683594, - 306.9500732421875 - ], - "bbox": [ - 307.5999450683594, - 292.0500793457031, - 307.5999450683594, - 316.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")�", - "origin": [ - 307.5999450683594, - 306.9500732421875 - ], - "bbox": [ - 307.5999450683594, - 294.0500793457031, - 312.8999328613281, - 328.75006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001f\u0012", - "origin": [ - 312.8999328613281, - 306.9500732421875 - ], - "bbox": [ - 312.8999328613281, - 299.9500732421875, - 321.6999206542969, - 318.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.5999450683594, - 292.0500793457031, - 321.6999206542969, - 328.75006103515625 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 342.199951171875, - 292.0500793457031, - 347.39996337890625, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 342.199951171875, - 306.9500732421875 - ], - "bbox": [ - 342.199951171875, - 292.0500793457031, - 342.199951171875, - 316.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 342.199951171875, - 306.9500732421875 - ], - "bbox": [ - 342.199951171875, - 294.0500793457031, - 347.39996337890625, - 328.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.199951171875, - 292.0500793457031, - 347.39996337890625, - 328.75006103515625 - ] - } - ] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 362.0999450683594, - 292.0500793457031, - 367.2999572753906, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 362.0999450683594, - 306.9500732421875 - ], - "bbox": [ - 362.0999450683594, - 292.0500793457031, - 362.0999450683594, - 316.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 362.0999450683594, - 306.9500732421875 - ], - "bbox": [ - 362.0999450683594, - 294.0500793457031, - 367.2999572753906, - 328.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 362.0999450683594, - 292.0500793457031, - 367.2999572753906, - 328.75006103515625 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 378.99993896484375, - 294.0500793457031, - 385.699951171875, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 378.99993896484375, - 306.9500732421875 - ], - "bbox": [ - 378.99993896484375, - 294.0500793457031, - 378.99993896484375, - 328.75006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬ñ", - "origin": [ - 378.99993896484375, - 306.9500732421875 - ], - "bbox": [ - 378.99993896484375, - 300.4500732421875, - 385.699951171875, - 319.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 378.99993896484375, - 294.0500793457031, - 385.699951171875, - 328.75006103515625 - ] - } - ] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 509.5999450683594, - 299.9500732421875, - 520.4999389648438, - 319.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ï\u001dü", - "origin": [ - 509.5999450683594, - 306.9500732421875 - ], - "bbox": [ - 509.5999450683594, - 300.4500732421875, - 514.8999633789062, - 319.3500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 514.8999633789062, - 306.9500732421875 - ], - "bbox": [ - 514.8999633789062, - 299.9500732421875, - 520.4999389648438, - 318.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.5999450683594, - 299.9500732421875, - 520.4999389648438, - 319.3500671386719 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 71.09994506835938, - 324.0500793457031, - 268.89996337890625, - 343.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 71.09994506835938, - 331.0500793457031 - ], - "bbox": [ - 71.09994506835938, - 324.0500793457031, - 71.09994506835938, - 342.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PتÛZ×QçrÞ1Ò\u001dÛcÔÖØuç¥Ý?Ø8Õ/×ré+à»ÔwÛcÜ\rÛcÜu×%ÔÖØ+ÔwÛcÔÖÒrѐÕ/Ý?Ø8è8ÔwÛcÔÖÝ?Ø", - "origin": [ - 71.09994506835938, - 331.0500793457031 - ], - "bbox": [ - 71.09994506835938, - 324.5500793457031, - 268.89996337890625, - 343.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 324.0500793457031, - 268.89996337890625, - 343.4500732421875 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 220.39993286132812, - 346.9500732421875, - 225.89993286132812, - 381.6500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u000f\u000e", - "origin": [ - 220.39993286132812, - 359.8500671386719 - ], - "bbox": [ - 220.39993286132812, - 346.9500732421875, - 225.89993286132812, - 381.6500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.39993286132812, - 346.9500732421875, - 225.89993286132812, - 381.6500549316406 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 239.0999298095703, - 346.9501037597656, - 242.2999267578125, - 381.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000e", - "origin": [ - 239.0999298095703, - 359.85009765625 - ], - "bbox": [ - 239.0999298095703, - 346.9501037597656, - 239.0999298095703, - 381.65008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\n�", - "origin": [ - 239.0999298095703, - 359.85009765625 - ], - "bbox": [ - 239.0999298095703, - 353.4501037597656, - 242.2999267578125, - 367.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 239.0999298095703, - 346.9501037597656, - 242.2999267578125, - 381.65008544921875 - ] - } - ] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 298.19989013671875, - 342.2501220703125, - 304.4998779296875, - 376.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 298.19989013671875, - 355.1501159667969 - ], - "bbox": [ - 298.19989013671875, - 342.2501220703125, - 298.19989013671875, - 376.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yñ", - "origin": [ - 298.19989013671875, - 355.1501159667969 - ], - "bbox": [ - 298.19989013671875, - 348.6501159667969, - 304.4998779296875, - 367.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 298.19989013671875, - 342.2501220703125, - 304.4998779296875, - 376.9501037597656 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 307.5998840332031, - 346.95013427734375, - 310.7998962402344, - 381.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000e", - "origin": [ - 307.5998840332031, - 359.8501281738281 - ], - "bbox": [ - 307.5998840332031, - 346.95013427734375, - 307.5998840332031, - 381.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\n�", - "origin": [ - 307.5998840332031, - 359.8501281738281 - ], - "bbox": [ - 307.5998840332031, - 353.45013427734375, - 310.7998962402344, - 367.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.5998840332031, - 346.95013427734375, - 310.7998962402344, - 381.6501159667969 - ] - } - ] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 324.69989013671875, - 347.7501220703125, - 335.69989013671875, - 366.1501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "8", - "origin": [ - 324.69989013671875, - 354.7501220703125 - ], - "bbox": [ - 324.69989013671875, - 347.7501220703125, - 324.69989013671875, - 366.1501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u000b�", - "origin": [ - 324.69989013671875, - 354.7501220703125 - ], - "bbox": [ - 324.69989013671875, - 348.3501281738281, - 335.69989013671875, - 362.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 324.69989013671875, - 347.7501220703125, - 335.69989013671875, - 366.1501159667969 - ] - } - ] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 348.2998962402344, - 340.2501220703125, - 353.4999084472656, - 376.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 348.2998962402344, - 355.1501159667969 - ], - "bbox": [ - 348.2998962402344, - 340.2501220703125, - 348.2998962402344, - 365.1501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 348.2998962402344, - 355.1501159667969 - ], - "bbox": [ - 348.2998962402344, - 342.2501220703125, - 353.4999084472656, - 376.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.2998962402344, - 340.2501220703125, - 353.4999084472656, - 376.9501037597656 - ] - } - ] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 509.59991455078125, - 348.1501159667969, - 520.4999389648438, - 367.55010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïWî", - "origin": [ - 509.59991455078125, - 355.1501159667969 - ], - "bbox": [ - 509.59991455078125, - 348.6501159667969, - 515.4999389648438, - 367.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ":\u0012", - "origin": [ - 515.4999389648438, - 355.1501159667969 - ], - "bbox": [ - 515.4999389648438, - 348.1501159667969, - 520.4999389648438, - 366.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.59991455078125, - 348.1501159667969, - 520.4999389648438, - 367.55010986328125 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 71.19992065429688, - 366.3501281738281, - 343.4998779296875, - 401.05010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è—ÒTãr×QÞGÒ\u001dç?ÔÖØuçœÝTãr×QÞ\u0016ÛcÜu×", - "origin": [ - 71.19992065429688, - 379.2501220703125 - ], - "bbox": [ - 71.19992065429688, - 372.7501220703125, - 174.7999267578125, - 391.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0019\u001f", - "origin": [ - 174.7999267578125, - 379.2501220703125 - ], - "bbox": [ - 174.7999267578125, - 366.3501281738281, - 183.19992065429688, - 401.05010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8Õ/Ûcâ+Ò\u001dÛcÔwÝ?Ø8ÓQéuà»ÔÖÛcÜ\rÛcÜu׳Üu×gÑwå—Ýræ", - "origin": [ - 183.19992065429688, - 379.2501220703125 - ], - "bbox": [ - 183.19992065429688, - 372.7501220703125, - 318.39990234375, - 391.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "T!", - "origin": [ - 318.39990234375, - 379.2501220703125 - ], - "bbox": [ - 318.39990234375, - 366.3501281738281, - 325.4999084472656, - 401.05010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äVÓQò", - "origin": [ - 325.4999084472656, - 379.2501220703125 - ], - "bbox": [ - 325.4999084472656, - 372.7501220703125, - 343.4998779296875, - 391.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 366.3501281738281, - 343.4998779296875, - 401.05010986328125 - ] - } - ] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 352.5999450683594, - 372.2501220703125, - 362.99993896484375, - 391.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îg÷", - "origin": [ - 352.5999450683594, - 379.2501220703125 - ], - "bbox": [ - 352.5999450683594, - 372.7501220703125, - 357.49993896484375, - 391.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 357.49993896484375, - 379.2501220703125 - ], - "bbox": [ - 357.49993896484375, - 372.2501220703125, - 362.99993896484375, - 390.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.5999450683594, - 372.2501220703125, - 362.99993896484375, - 391.6501159667969 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 377.199951171875, - 372.2501220703125, - 436.1999816894531, - 391.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgø", - "origin": [ - 377.199951171875, - 379.2501220703125 - ], - "bbox": [ - 377.199951171875, - 372.7501220703125, - 382.0999450683594, - 391.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 382.0999450683594, - 379.2501220703125 - ], - "bbox": [ - 382.0999450683594, - 372.2501220703125, - 387.5999450683594, - 390.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é¬Ñw×gÒrè+Ó\u0010ÛZÝ", - "origin": [ - 387.5999450683594, - 379.2501220703125 - ], - "bbox": [ - 387.5999450683594, - 372.7501220703125, - 430.1999816894531, - 391.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "b\u0017", - "origin": [ - 430.1999816894531, - 379.2501220703125 - ], - "bbox": [ - 430.1999816894531, - 372.7501220703125, - 436.1999816894531, - 390.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.199951171875, - 372.2501220703125, - 436.1999816894531, - 391.6501159667969 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 198.29994201660156, - 401.5501403808594, - 203.79994201660156, - 436.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u000f\u000e", - "origin": [ - 198.29994201660156, - 414.45013427734375 - ], - "bbox": [ - 198.29994201660156, - 401.5501403808594, - 203.79994201660156, - 436.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.29994201660156, - 401.5501403808594, - 203.79994201660156, - 436.2501220703125 - ] - } - ] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 258.59991455078125, - 396.8501892089844, - 264.89990234375, - 431.5501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 258.59991455078125, - 409.75018310546875 - ], - "bbox": [ - 258.59991455078125, - 396.8501892089844, - 258.59991455078125, - 431.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yñ", - "origin": [ - 258.59991455078125, - 409.75018310546875 - ], - "bbox": [ - 258.59991455078125, - 403.25018310546875, - 264.89990234375, - 422.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.59991455078125, - 396.8501892089844, - 264.89990234375, - 431.5501708984375 - ] - } - ] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 122, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 123, - "type": 0, - "bbox": [ - 341.89990234375, - 401.5502014160156, - 349.9999084472656, - 436.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001c\r\u000b", - "origin": [ - 341.89990234375, - 414.4501953125 - ], - "bbox": [ - 341.89990234375, - 401.5502014160156, - 349.9999084472656, - 436.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.89990234375, - 401.5502014160156, - 349.9999084472656, - 436.25018310546875 - ] - } - ] - }, - { - "number": 126, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 128, - "type": 0, - "bbox": [ - 378.3999328613281, - 402.75018310546875, - 384.5999450683594, - 421.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 378.3999328613281, - 409.75018310546875 - ], - "bbox": [ - 378.3999328613281, - 402.9501953125, - 378.3999328613281, - 421.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "$\u0012", - "origin": [ - 378.3999328613281, - 409.75018310546875 - ], - "bbox": [ - 378.3999328613281, - 402.75018310546875, - 384.5999450683594, - 421.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 378.3999328613281, - 402.75018310546875, - 384.5999450683594, - 421.25018310546875 - ] - } - ] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 130, - "type": 0, - "bbox": [ - 509.5999450683594, - 402.75018310546875, - 520.4999389648438, - 422.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrï", - "origin": [ - 509.5999450683594, - 409.75018310546875 - ], - "bbox": [ - 509.5999450683594, - 403.25018310546875, - 514.9999389648438, - 422.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 514.9999389648438, - 409.75018310546875 - ], - "bbox": [ - 514.9999389648438, - 402.75018310546875, - 520.4999389648438, - 421.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.5999450683594, - 402.75018310546875, - 520.4999389648438, - 422.1501770019531 - ] - } - ] - }, - { - "number": 131, - "type": 0, - "bbox": [ - 71.09994506835938, - 434.75018310546875, - 194.8999481201172, - 453.6501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcÜ", - "origin": [ - 71.09994506835938, - 441.25018310546875 - ], - "bbox": [ - 71.09994506835938, - 434.75018310546875, - 86.49994659423828, - 453.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 434.75018310546875, - 86.49994659423828, - 453.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×", - "origin": [ - 98.59994506835938, - 441.25018310546875 - ], - "bbox": [ - 98.59994506835938, - 434.75018310546875, - 108.89994812011719, - 453.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.59994506835938, - 434.75018310546875, - 108.89994812011719, - 453.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥Ò\u001dÛZÞGÔ", - "origin": [ - 120.19994354248047, - 441.25018310546875 - ], - "bbox": [ - 120.19994354248047, - 434.75018310546875, - 143.19993591308594, - 453.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "+�", - "origin": [ - 143.19993591308594, - 441.25018310546875 - ], - "bbox": [ - 143.19993591308594, - 434.75018310546875, - 146.0999298095703, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 120.19994354248047, - 434.75018310546875, - 146.0999298095703, - 453.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÑÖ×gÙ�×gتÛcÓ", - "origin": [ - 158.199951171875, - 441.25018310546875 - ], - "bbox": [ - 158.199951171875, - 434.75018310546875, - 194.8999481201172, - 453.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.199951171875, - 434.75018310546875, - 194.8999481201172, - 453.6501770019531 - ] - } - ] - }, - { - "number": 132, - "type": 0, - "bbox": [ - 206.3999481201172, - 425.8501892089844, - 209.79994201660156, - 452.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "!", - "origin": [ - 206.3999481201172, - 440.75018310546875 - ], - "bbox": [ - 206.3999481201172, - 433.9501953125, - 206.3999481201172, - 452.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 206.3999481201172, - 440.75018310546875 - ], - "bbox": [ - 206.3999481201172, - 425.8501892089844, - 209.79994201660156, - 450.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 206.3999481201172, - 425.8501892089844, - 209.79994201660156, - 452.25018310546875 - ] - } - ] - }, - { - "number": 133, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 135, - "type": 0, - "bbox": [ - 224.99993896484375, - 434.25018310546875, - 231.09994506835938, - 452.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 224.99993896484375, - 441.25018310546875 - ], - "bbox": [ - 224.99993896484375, - 434.4501953125, - 224.99993896484375, - 452.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0015.", - "origin": [ - 224.99993896484375, - 441.25018310546875 - ], - "bbox": [ - 224.99993896484375, - 434.25018310546875, - 231.09994506835938, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.99993896484375, - 434.25018310546875, - 231.09994506835938, - 452.75018310546875 - ] - } - ] - }, - { - "number": 137, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 141, - "type": 0, - "bbox": [ - 274.7999267578125, - 434.25018310546875, - 299.49993896484375, - 452.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 274.7999267578125, - 441.25018310546875 - ], - "bbox": [ - 274.7999267578125, - 434.75018310546875, - 274.7999267578125, - 452.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 274.7999267578125, - 441.25018310546875 - ], - "bbox": [ - 274.7999267578125, - 434.25018310546875, - 277.49993896484375, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.7999267578125, - 434.25018310546875, - 277.49993896484375, - 452.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 293.3999328613281, - 441.25018310546875 - ], - "bbox": [ - 293.3999328613281, - 434.4501953125, - 293.3999328613281, - 452.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0015.", - "origin": [ - 293.3999328613281, - 441.25018310546875 - ], - "bbox": [ - 293.3999328613281, - 434.25018310546875, - 299.49993896484375, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.3999328613281, - 434.25018310546875, - 299.49993896484375, - 452.75018310546875 - ] - } - ] - }, - { - "number": 142, - "type": 0, - "bbox": [ - 304.7999267578125, - 425.8501892089844, - 308.1999206542969, - 452.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 304.7999267578125, - 440.75018310546875 - ], - "bbox": [ - 304.7999267578125, - 433.75018310546875, - 304.7999267578125, - 452.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 304.7999267578125, - 440.75018310546875 - ], - "bbox": [ - 304.7999267578125, - 425.8501892089844, - 308.1999206542969, - 450.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.7999267578125, - 425.8501892089844, - 308.1999206542969, - 452.1501770019531 - ] - } - ] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 144, - "type": 0, - "bbox": [ - 326.3999328613281, - 425.8501892089844, - 336.99993896484375, - 452.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 326.3999328613281, - 440.75018310546875 - ], - "bbox": [ - 326.3999328613281, - 433.75018310546875, - 326.3999328613281, - 452.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 326.3999328613281, - 440.75018310546875 - ], - "bbox": [ - 326.3999328613281, - 425.8501892089844, - 329.7999267578125, - 450.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e3", - "origin": [ - 329.7999267578125, - 440.75018310546875 - ], - "bbox": [ - 329.7999267578125, - 433.75018310546875, - 336.99993896484375, - 452.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.3999328613281, - 425.8501892089844, - 336.99993896484375, - 452.1501770019531 - ] - } - ] - }, - { - "number": 149, - "type": 0, - "bbox": [ - 376.699951171875, - 425.8501892089844, - 387.2999572753906, - 452.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 376.699951171875, - 440.75018310546875 - ], - "bbox": [ - 376.699951171875, - 433.75018310546875, - 376.699951171875, - 452.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 376.699951171875, - 440.75018310546875 - ], - "bbox": [ - 376.699951171875, - 425.8501892089844, - 380.0999450683594, - 450.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e3", - "origin": [ - 380.0999450683594, - 440.75018310546875 - ], - "bbox": [ - 380.0999450683594, - 433.75018310546875, - 387.2999572753906, - 452.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.699951171875, - 425.8501892089844, - 387.2999572753906, - 452.1501770019531 - ] - } - ] - }, - { - "number": 151, - "type": 0, - "bbox": [ - 402.5999450683594, - 434.25018310546875, - 408.699951171875, - 452.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 402.5999450683594, - 441.25018310546875 - ], - "bbox": [ - 402.5999450683594, - 434.4501953125, - 402.5999450683594, - 452.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0015.", - "origin": [ - 402.5999450683594, - 441.25018310546875 - ], - "bbox": [ - 402.5999450683594, - 434.25018310546875, - 408.699951171875, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 402.5999450683594, - 434.25018310546875, - 408.699951171875, - 452.75018310546875 - ] - } - ] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 424.5999450683594, - 434.25018310546875, - 446.5999450683594, - 453.6501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 424.5999450683594, - 441.25018310546875 - ], - "bbox": [ - 424.5999450683594, - 434.25018310546875, - 424.5999450683594, - 452.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¾ÒrØ8è", - "origin": [ - 424.5999450683594, - 441.25018310546875 - ], - "bbox": [ - 424.5999450683594, - 434.75018310546875, - 446.5999450683594, - 453.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.5999450683594, - 434.25018310546875, - 446.5999450683594, - 453.6501770019531 - ] - } - ] - }, - { - "number": 155, - "type": 0, - "bbox": [ - 459.7999572753906, - 425.8501892089844, - 463.199951171875, - 452.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "!", - "origin": [ - 459.7999572753906, - 440.75018310546875 - ], - "bbox": [ - 459.7999572753906, - 433.9501953125, - 459.7999572753906, - 452.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 459.7999572753906, - 440.75018310546875 - ], - "bbox": [ - 459.7999572753906, - 425.8501892089844, - 463.199951171875, - 450.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.7999572753906, - 425.8501892089844, - 463.199951171875, - 452.25018310546875 - ] - } - ] - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 160, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 162, - "type": 0, - "bbox": [ - 513.699951171875, - 434.25018310546875, - 516.3999633789062, - 452.6501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 513.699951171875, - 441.25018310546875 - ], - "bbox": [ - 513.699951171875, - 434.75018310546875, - 513.699951171875, - 452.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 513.699951171875, - 441.25018310546875 - ], - "bbox": [ - 513.699951171875, - 434.25018310546875, - 516.3999633789062, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 513.699951171875, - 434.25018310546875, - 516.3999633789062, - 452.6501770019531 - ] - } - ] - }, - { - "number": 163, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 164, - "type": 0, - "bbox": [ - 82.69995880126953, - 440.0502014160156, - 86.09996032714844, - 466.3501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 82.69995880126953, - 454.9501953125 - ], - "bbox": [ - 82.69995880126953, - 447.9501953125, - 82.69995880126953, - 466.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 82.69995880126953, - 454.9501953125 - ], - "bbox": [ - 82.69995880126953, - 440.0502014160156, - 86.09996032714844, - 464.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69995880126953, - 440.0502014160156, - 86.09996032714844, - 466.3501892089844 - ] - } - ] - }, - { - "number": 165, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 104.29995727539062, - 440.0502014160156, - 114.89995574951172, - 466.3501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 104.29995727539062, - 454.9501953125 - ], - "bbox": [ - 104.29995727539062, - 447.9501953125, - 104.29995727539062, - 466.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 104.29995727539062, - 454.9501953125 - ], - "bbox": [ - 104.29995727539062, - 440.0502014160156, - 107.69995880126953, - 464.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e3", - "origin": [ - 107.69995880126953, - 454.9501953125 - ], - "bbox": [ - 107.69995880126953, - 447.9501953125, - 114.89995574951172, - 466.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 104.29995727539062, - 440.0502014160156, - 114.89995574951172, - 466.3501892089844 - ] - } - ] - }, - { - "number": 168, - "type": 0, - "bbox": [ - 126.09996032714844, - 440.5502014160156, - 130.19996643066406, - 466.8501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 126.09996032714844, - 455.4501953125 - ], - "bbox": [ - 126.09996032714844, - 448.4501953125, - 126.09996032714844, - 466.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "G\u001b", - "origin": [ - 126.09996032714844, - 455.4501953125 - ], - "bbox": [ - 126.09996032714844, - 440.5502014160156, - 130.19996643066406, - 465.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.09996032714844, - 440.5502014160156, - 130.19996643066406, - 466.8501892089844 - ] - } - ] - }, - { - "number": 169, - "type": 0, - "bbox": [ - 135.9999542236328, - 440.0502014160156, - 139.3999481201172, - 466.3501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 135.9999542236328, - 454.9501953125 - ], - "bbox": [ - 135.9999542236328, - 447.9501953125, - 135.9999542236328, - 466.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 135.9999542236328, - 454.9501953125 - ], - "bbox": [ - 135.9999542236328, - 440.0502014160156, - 139.3999481201172, - 464.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.9999542236328, - 440.0502014160156, - 139.3999481201172, - 466.3501892089844 - ] - } - ] - }, - { - "number": 172, - "type": 0, - "bbox": [ - 167.699951171875, - 440.5502014160156, - 177.199951171875, - 477.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 167.699951171875, - 455.4501953125 - ], - "bbox": [ - 167.699951171875, - 448.4501953125, - 167.699951171875, - 466.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\n\u001e", - "origin": [ - 167.699951171875, - 455.4501953125 - ], - "bbox": [ - 167.699951171875, - 442.5502014160156, - 171.8999481201172, - 477.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "‡\u001b", - "origin": [ - 171.8999481201172, - 455.4501953125 - ], - "bbox": [ - 171.8999481201172, - 440.5502014160156, - 177.199951171875, - 465.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.699951171875, - 440.5502014160156, - 177.199951171875, - 477.25018310546875 - ] - } - ] - }, - { - "number": 174, - "type": 0, - "bbox": [ - 186.3999481201172, - 448.4501953125, - 196.4999542236328, - 467.8501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ü", - "origin": [ - 186.3999481201172, - 455.4501953125 - ], - "bbox": [ - 186.3999481201172, - 448.9501953125, - 186.3999481201172, - 467.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 186.3999481201172, - 455.4501953125 - ], - "bbox": [ - 186.3999481201172, - 448.4501953125, - 191.9999542236328, - 466.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 191.9999542236328, - 455.4501953125 - ], - "bbox": [ - 191.9999542236328, - 448.9501953125, - 196.4999542236328, - 467.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.3999481201172, - 448.4501953125, - 196.4999542236328, - 467.8501892089844 - ] - } - ] - }, - { - "number": 176, - "type": 0, - "bbox": [ - 212.199951171875, - 442.5502014160156, - 519.7999877929688, - 483.65020751953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞ\u0014Ócâ", - "origin": [ - 212.199951171875, - 455.4501953125 - ], - "bbox": [ - 212.199951171875, - 448.9501953125, - 230.79994201660156, - 467.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 230.79994201660156, - 455.4501953125 - ], - "bbox": [ - 230.79994201660156, - 449.75018310546875, - 236.79994201660156, - 483.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œÕQÔw×gتÛcÑÖß", - "origin": [ - 236.79994201660156, - 455.4501953125 - ], - "bbox": [ - 236.79994201660156, - 448.9501953125, - 271.7999572753906, - 467.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 212.199951171875, - 448.9501953125, - 271.7999572753906, - 483.65020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÜ8ÝrÞcÛ;ÛcÔÖÙ�×gÓ\u0019ÒrØ8è", - "origin": [ - 281.7999572753906, - 455.4501953125 - ], - "bbox": [ - 281.7999572753906, - 448.9501953125, - 351.7999267578125, - 467.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 281.7999572753906, - 448.9501953125, - 351.7999267578125, - 467.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÑwÝaà»Ñwß", - "origin": [ - 362.0999755859375, - 455.4501953125 - ], - "bbox": [ - 362.0999755859375, - 448.9501953125, - 385.4999694824219, - 467.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 362.0999755859375, - 448.9501953125, - 385.4999694824219, - 467.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ã\u0018Ò\u001dÞGßVÔÖØ8ç", - "origin": [ - 395.4999694824219, - 455.4501953125 - ], - "bbox": [ - 395.4999694824219, - 448.9501953125, - 425.39996337890625, - 467.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u00114", - "origin": [ - 425.39996337890625, - 455.4501953125 - ], - "bbox": [ - 425.39996337890625, - 442.5502014160156, - 438.0999755859375, - 477.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.4999694824219, - 442.5502014160156, - 438.0999755859375, - 477.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 435.1999816894531, - 455.4501953125 - ], - "bbox": [ - 435.1999816894531, - 442.5502014160156, - 435.1999816894531, - 477.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4é-à\"×\u001fÙ¥Ògß�â8Óc×¥ÛcÜu×", - "origin": [ - 435.1999816894531, - 455.4501953125 - ], - "bbox": [ - 435.1999816894531, - 448.9501953125, - 519.7999877929688, - 467.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.1999816894531, - 442.5502014160156, - 519.7999877929688, - 477.25018310546875 - ] - } - ] - }, - { - "number": 177, - "type": 0, - "bbox": [ - 71.19998168945312, - 461.9501953125, - 134.29998779296875, - 480.8501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001då8å+ÞcÝ", - "origin": [ - 71.19998168945312, - 468.4501953125 - ], - "bbox": [ - 71.19998168945312, - 461.9501953125, - 93.09998321533203, - 480.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#�", - "origin": [ - 93.09998321533203, - 468.4501953125 - ], - "bbox": [ - 93.09998321533203, - 461.9501953125, - 97.99998474121094, - 479.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÔÖÙ¥Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 97.99998474121094, - 468.4501953125 - ], - "bbox": [ - 97.99998474121094, - 461.9501953125, - 134.29998779296875, - 480.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 461.9501953125, - 134.29998779296875, - 480.8501892089844 - ] - } - ] - }, - { - "number": 178, - "type": 0, - "bbox": [ - 210.29998779296875, - 473.0502014160156, - 215.79998779296875, - 507.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u000f\u000e", - "origin": [ - 210.29998779296875, - 485.9501953125 - ], - "bbox": [ - 210.29998779296875, - 473.0502014160156, - 215.79998779296875, - 507.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 210.29998779296875, - 473.0502014160156, - 215.79998779296875, - 507.75018310546875 - ] - } - ] - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 184, - "type": 0, - "bbox": [ - 270.7999572753906, - 468.3502197265625, - 277.0999450683594, - 503.0502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 270.7999572753906, - 481.2502136230469 - ], - "bbox": [ - 270.7999572753906, - 468.3502197265625, - 270.7999572753906, - 503.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yñ", - "origin": [ - 270.7999572753906, - 481.2502136230469 - ], - "bbox": [ - 270.7999572753906, - 474.7502136230469, - 277.0999450683594, - 493.65020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.7999572753906, - 468.3502197265625, - 277.0999450683594, - 503.0502014160156 - ] - } - ] - }, - { - "number": 186, - "type": 0, - "bbox": [ - 293.4999694824219, - 467.8502197265625, - 298.1999816894531, - 502.5502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 293.4999694824219, - 480.7502136230469 - ], - "bbox": [ - 293.4999694824219, - 467.8502197265625, - 293.4999694824219, - 502.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�\u000f", - "origin": [ - 293.4999694824219, - 480.7502136230469 - ], - "bbox": [ - 293.4999694824219, - 473.7502136230469, - 298.1999816894531, - 492.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.4999694824219, - 467.8502197265625, - 298.1999816894531, - 502.5502014160156 - ] - } - ] - }, - { - "number": 190, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 191, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 195, - "type": 0, - "bbox": [ - 353.70001220703125, - 468.3502197265625, - 362.9000244140625, - 503.0502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 353.70001220703125, - 481.2502136230469 - ], - "bbox": [ - 353.70001220703125, - 474.4502258300781, - 353.70001220703125, - 492.7502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "74", - "origin": [ - 353.70001220703125, - 481.2502136230469 - ], - "bbox": [ - 353.70001220703125, - 468.3502197265625, - 362.9000244140625, - 503.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.70001220703125, - 468.3502197265625, - 362.9000244140625, - 503.0502014160156 - ] - } - ] - }, - { - "number": 197, - "type": 0, - "bbox": [ - 366.3000183105469, - 474.2502136230469, - 372.5000305175781, - 492.7502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 366.3000183105469, - 481.2502136230469 - ], - "bbox": [ - 366.3000183105469, - 474.4502258300781, - 366.3000183105469, - 492.7502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "$\u0012", - "origin": [ - 366.3000183105469, - 481.2502136230469 - ], - "bbox": [ - 366.3000183105469, - 474.2502136230469, - 372.5000305175781, - 492.65020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 366.3000183105469, - 474.2502136230469, - 372.5000305175781, - 492.7502136230469 - ] - } - ] - }, - { - "number": 198, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 199, - "type": 0, - "bbox": [ - 509.6000061035156, - 474.2502136230469, - 520.5, - 493.65020751953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrð", - "origin": [ - 509.6000061035156, - 481.2502136230469 - ], - "bbox": [ - 509.6000061035156, - 474.7502136230469, - 515.0, - 493.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0, - 481.2502136230469 - ], - "bbox": [ - 515.0, - 474.2502136230469, - 520.5, - 492.65020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.6000061035156, - 474.2502136230469, - 520.5, - 493.65020751953125 - ] - } - ] - }, - { - "number": 201, - "type": 0, - "bbox": [ - 79.10001373291016, - 493.9502258300781, - 160.10000610351562, - 512.8502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÜVâ8ÓQéªà\"×»Ò\u001dÞGÞGÔwãr×»Ò\u001dÛ½Ò", - "origin": [ - 79.10001373291016, - 500.4502258300781 - ], - "bbox": [ - 79.10001373291016, - 493.9502258300781, - 160.10000610351562, - 512.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.10001373291016, - 493.9502258300781, - 160.10000610351562, - 512.8502197265625 - ] - } - ] - }, - { - "number": 203, - "type": 0, - "bbox": [ - 178.7000274658203, - 493.4502258300781, - 519.1000366210938, - 512.8502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÞ", - "origin": [ - 178.7000274658203, - 500.4502258300781 - ], - "bbox": [ - 178.7000274658203, - 493.9502258300781, - 184.00003051757812, - 512.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 184.00003051757812, - 500.4502258300781 - ], - "bbox": [ - 184.00003051757812, - 493.4502258300781, - 188.4000244140625, - 511.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝTãWÔÖÒr؜٠ÒrÓZÛZ×QÞ½×gäVâ8Ò\u001dÛcÔwÝ?Ø à»ÔwÛcÜ�Ò³è+ÔÖÓcÓcÔwåyÒ\u001dÛcÔwãr×", - "origin": [ - 188.4000244140625, - 500.4502258300781 - ], - "bbox": [ - 188.4000244140625, - 493.9502258300781, - 379.8999328613281, - 512.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\r\f", - "origin": [ - 379.8999328613281, - 500.4502258300781 - ], - "bbox": [ - 379.8999328613281, - 494.05023193359375, - 387.8999328613281, - 508.05023193359375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "<)7\u001e81=I�D", - "origin": [ - 387.8999328613281, - 500.4502258300781 - ], - "bbox": [ - 387.8999328613281, - 493.9502258300781, - 414.99993896484375, - 511.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.7000274658203, - 493.4502258300781, - 414.99993896484375, - 512.8502197265625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001c,1\\\\u0014.\"\u0018\u000e\u000f\u0012", - "origin": [ - 418.0000305175781, - 500.4502258300781 - ], - "bbox": [ - 418.0000305175781, - 493.9502258300781, - 445.6000061035156, - 511.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014éVÔÖØ¥Òrè8è8ÔÖÛcÔwÝ?Ø\u0014ÛZÝ", - "origin": [ - 445.6000061035156, - 500.4502258300781 - ], - "bbox": [ - 445.6000061035156, - 493.9502258300781, - 519.1000366210938, - 512.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 418.0000305175781, - 493.9502258300781, - 519.1000366210938, - 512.8502197265625 - ] - } - ] - }, - { - "number": 204, - "type": 0, - "bbox": [ - 71.10003662109375, - 506.9501953125, - 518.7000122070312, - 525.8502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×%ÑÖ×gÒrè8ÔÖØuç�Õ/Ý?Ù¥Ù&âuÛcÒ\u001dÛZÝrÞgéyà»Ü8ÔÖÕ1ܗÔÖÓNÞc×gÓZåÝ?Ø8ÓGÔwÚ+Ñw×¢æ™ÝrÞ»â+Ø8ÔwÛcÒ\u001dÞcß\u001fä©â8ÒrØ©Ûcâ8Ùö×QãrÝ?ÑlâuÛcÔwÝ?Ø", - "origin": [ - 71.10003662109375, - 513.4501953125 - ], - "bbox": [ - 71.10003662109375, - 506.9501953125, - 429.300048828125, - 525.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u000f\u000e", - "origin": [ - 429.300048828125, - 513.4501953125 - ], - "bbox": [ - 429.300048828125, - 507.0502014160156, - 439.800048828125, - 521.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 506.9501953125, - 439.800048828125, - 525.8502197265625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò�ÑÖÒ\u0014ãrÝ?Ø¢ó»×gâ+Ù¥ÒrØ8Ø", - "origin": [ - 439.0000305175781, - 513.4501953125 - ], - "bbox": [ - 439.0000305175781, - 506.9501953125, - 518.7000122070312, - 525.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 439.0000305175781, - 506.9501953125, - 518.7000122070312, - 525.8502197265625 - ] - } - ] - }, - { - "number": 205, - "type": 0, - "bbox": [ - 71.20001220703125, - 519.750244140625, - 207.1000213623047, - 538.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ\rÛcÜ8×%Ò\u001dÚ+ÓZ×gØ8Õ/×%Ýræ¡è8ÔlÓcÓcÔwå+Ò\u001dÛcÔÖÝ?ذò", - "origin": [ - 71.20001220703125, - 526.250244140625 - ], - "bbox": [ - 71.20001220703125, - 519.750244140625, - 207.1000213623047, - 538.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 519.750244140625, - 207.1000213623047, - 538.6502685546875 - ] - } - ] - }, - { - "number": 206, - "type": 0, - "bbox": [ - 85.40000915527344, - 532.250244140625, - 518.7000122070312, - 551.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "á4ÔÖØ8×gÒ\u001dÞGÔwÛsß", - "origin": [ - 85.40000915527344, - 539.250244140625 - ], - "bbox": [ - 85.40000915527344, - 532.750244140625, - 122.80001831054688, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.40000915527344, - 532.750244140625, - 122.80001831054688, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 134.50001525878906, - 539.250244140625 - ], - "bbox": [ - 134.50001525878906, - 532.750244140625, - 137.6000213623047, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.50001525878906, - 532.750244140625, - 137.6000213623047, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u0012èu×gØ8ÓcÔwۯߟ٥Ò\u001dÛZÞGÔ", - "origin": [ - 149.40000915527344, - 539.250244140625 - ], - "bbox": [ - 149.40000915527344, - 532.750244140625, - 233.30001831054688, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 149.40000915527344, - 532.750244140625, - 233.30001831054688, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ�Òr؎ÔÖÙ�åÝrÞcÛcÒrØ©Û", - "origin": [ - 248.00001525878906, - 539.250244140625 - ], - "bbox": [ - 248.00001525878906, - 532.750244140625, - 322.3999938964844, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.00001525878906, - 532.750244140625, - 322.3999938964844, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™×gÒ\u001dÛcâuÞG×", - "origin": [ - 332.4000244140625, - 539.250244140625 - ], - "bbox": [ - 332.4000244140625, - 532.750244140625, - 360.5999755859375, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.4000244140625, - 532.750244140625, - 360.5999755859375, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ\u001fÝ?âuÞ\u000fÞc×gÓcâ+ÑwÛcÔÖØuç\u001e×gä©â8Ò\u001dÛcÔÖÝ?Ø8ÓQò", - "origin": [ - 371.20001220703125, - 539.250244140625 - ], - "bbox": [ - 371.20001220703125, - 532.750244140625, - 500.5999755859375, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.20001220703125, - 532.750244140625, - 500.5999755859375, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 514.6000366210938, - 539.250244140625 - ], - "bbox": [ - 514.6000366210938, - 532.250244140625, - 514.6000366210938, - 550.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PØ", - "origin": [ - 514.6000366210938, - 539.250244140625 - ], - "bbox": [ - 514.6000366210938, - 532.750244140625, - 518.7000122070312, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.6000366210938, - 532.250244140625, - 518.7000122070312, - 551.6502685546875 - ] - } - ] - }, - { - "number": 207, - "type": 0, - "bbox": [ - 71.10003662109375, - 539.3502197265625, - 218.40003967285156, - 574.0502319335938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Ò\u001dÞGÛcÔÖÕQâ8ÑÖÒ\u001dÞgé\"ÔÖØ", - "origin": [ - 71.10003662109375, - 552.250244140625 - ], - "bbox": [ - 71.10003662109375, - 545.750244140625, - 129.20004272460938, - 564.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 545.750244140625, - 129.20004272460938, - 564.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuחæ™ÝrÞ1Ù", - "origin": [ - 139.800048828125, - 552.250244140625 - ], - "bbox": [ - 139.800048828125, - 545.750244140625, - 172.90005493164062, - 564.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.800048828125, - 545.750244140625, - 172.90005493164062, - 564.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ", - "origin": [ - 186.70004272460938, - 552.250244140625 - ], - "bbox": [ - 186.70004272460938, - 545.750244140625, - 192.10003662109375, - 564.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.70004272460938, - 545.750244140625, - 192.10003662109375, - 564.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 200.300048828125, - 552.250244140625 - ], - "bbox": [ - 200.300048828125, - 539.3502197265625, - 200.300048828125, - 574.0502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä©Ógò", - "origin": [ - 200.300048828125, - 552.250244140625 - ], - "bbox": [ - 200.300048828125, - 545.750244140625, - 218.40003967285156, - 564.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.300048828125, - 539.3502197265625, - 218.40003967285156, - 574.0502319335938 - ] - } - ] - }, - { - "number": 209, - "type": 0, - "bbox": [ - 227.00006103515625, - 545.250244140625, - 237.90005493164062, - 564.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrï", - "origin": [ - 227.00006103515625, - 552.250244140625 - ], - "bbox": [ - 227.00006103515625, - 545.750244140625, - 232.40005493164062, - 564.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 232.40005493164062, - 552.250244140625 - ], - "bbox": [ - 232.40005493164062, - 545.250244140625, - 237.90005493164062, - 563.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.00006103515625, - 545.250244140625, - 237.90005493164062, - 564.6502685546875 - ] - } - ] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 251.60006713867188, - 545.250244140625, - 521.199951171875, - 564.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrð", - "origin": [ - 251.60006713867188, - 552.250244140625 - ], - "bbox": [ - 251.60006713867188, - 545.750244140625, - 257.00006103515625, - 564.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 257.00006103515625, - 552.250244140625 - ], - "bbox": [ - 257.00006103515625, - 545.250244140625, - 262.50006103515625, - 563.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é»ÛcÜuז٥ÒrÓcÛZ×QÞ¥×gä©â+Ò\u001dÛcÔwÝ?Ø\u0012å8Þc×gÓc×QÞcãr×gÓ�ÛcÜuזØuÝrÞ1Ù¥ÒrÑÖÔ", - "origin": [ - 262.50006103515625, - 552.250244140625 - ], - "bbox": [ - 262.50006103515625, - 545.750244140625, - 479.0999755859375, - 564.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 479.0999755859375, - 552.250244140625 - ], - "bbox": [ - 479.0999755859375, - 545.250244140625, - 482.0999755859375, - 563.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gÒ\u001dÛcÔwÝ?Ø\u000bÝræ", - "origin": [ - 482.0999755859375, - 552.250244140625 - ], - "bbox": [ - 482.0999755859375, - 545.750244140625, - 521.199951171875, - 564.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.60006713867188, - 545.250244140625, - 521.199951171875, - 564.6502685546875 - ] - } - ] - }, - { - "number": 212, - "type": 0, - "bbox": [ - 71.30006408691406, - 553.4501953125, - 93.60006713867188, - 588.1502075195312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 71.30006408691406, - 566.3502197265625 - ], - "bbox": [ - 71.30006408691406, - 553.4501953125, - 71.30006408691406, - 588.1502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-é8ÓcÒTß", - "origin": [ - 71.30006408691406, - 566.3502197265625 - ], - "bbox": [ - 71.30006408691406, - 559.8502197265625, - 93.60006713867188, - 578.750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.30006408691406, - 553.4501953125, - 93.60006713867188, - 588.1502075195312 - ] - } - ] - }, - { - "number": 214, - "type": 0, - "bbox": [ - 136.10006713867188, - 559.8502197265625, - 372.1000061035156, - 578.750244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î\u001dé+à»Ü8ÔÖÕ1Ü\r×", - "origin": [ - 136.10006713867188, - 566.3502197265625 - ], - "bbox": [ - 136.10006713867188, - 559.8502197265625, - 178.80007934570312, - 578.750244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 178.80007934570312, - 566.3502197265625 - ], - "bbox": [ - 178.80007934570312, - 559.8502197265625, - 183.5000762939453, - 577.750244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå8ÞG×gÓcÓZ×gÓNÛcÜu×\u0019Õ/Ý?Ø8ÓZ×QÞcã\u001dÒ\u001dÛcÔwÝ?ؗÝræ·å8ÞcÝrÚyÒ\u001dÚ+ÔÖÑÖÔwÛ¯ßrò", - "origin": [ - 183.5000762939453, - 566.3502197265625 - ], - "bbox": [ - 183.5000762939453, - 559.8502197265625, - 372.1000061035156, - 578.750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.10006713867188, - 559.8502197265625, - 372.1000061035156, - 578.750244140625 - ] - } - ] - }, - { - "number": 215, - "type": 0, - "bbox": [ - 85.30006408691406, - 572.3502197265625, - 522.0000610351562, - 591.750244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.30006408691406, - 579.3502197265625 - ], - "bbox": [ - 85.30006408691406, - 572.3502197265625, - 85.30006408691406, - 590.750244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¯Û�ÓZ×Q×gÙ Ó\u0014à\"ÝrÞcÛcÜ\u000bà¢Ü8ÔÖÑwלÛZÝ", - "origin": [ - 85.30006408691406, - 579.3502197265625 - ], - "bbox": [ - 85.30006408691406, - 572.8502197265625, - 196.2000732421875, - 591.750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.30006408691406, - 572.3502197265625, - 196.2000732421875, - 591.750244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "åÝ?ÔÖØ©Û&Ý?âuÛ\u0014ÛcÜ8Ò\u001dÛ�à\"חÒ\u001dÞcÞ1ÔwãrחÒ\u001dÛ&ÛcÜ8×\rÓcÛcÒrØ8è8Ò\u001dÞGè°é\"ÔIòž×ròwé½ÔÖØ", - "origin": [ - 206.2000732421875, - 579.3502197265625 - ], - "bbox": [ - 206.2000732421875, - 572.8502197265625, - 438.9999694824219, - 591.750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 206.2000732421875, - 572.8502197265625, - 438.9999694824219, - 591.750244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Ò\u001dÞcÛcÔlÕQâ8ÑÖÒ\u001dÞ", - "origin": [ - 449.60009765625, - 579.3502197265625 - ], - "bbox": [ - 449.60009765625, - 572.8502197265625, - 492.2000732421875, - 591.750244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001aD+\u0010#9\u000f\u001c\u0013D", - "origin": [ - 492.2000732421875, - 579.3502197265625 - ], - "bbox": [ - 492.2000732421875, - 572.8502197265625, - 519.2000732421875, - 590.750244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ºé", - "origin": [ - 519.2000732421875, - 579.3502197265625 - ], - "bbox": [ - 519.2000732421875, - 572.8502197265625, - 522.0000610351562, - 591.750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.60009765625, - 572.8502197265625, - 522.0000610351562, - 591.750244140625 - ] - } - ] - }, - { - "number": 216, - "type": 0, - "bbox": [ - 71.20010375976562, - 585.250244140625, - 519.8001098632812, - 604.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "äVâ8ÒrØ©Ûcâ8Ù", - "origin": [ - 71.20010375976562, - 592.250244140625 - ], - "bbox": [ - 71.20010375976562, - 585.750244140625, - 104.60010528564453, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20010375976562, - 585.750244140625, - 104.60010528564453, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÒrѓ×QãrÝ?ÑÖâuÛcÔwÝ?ØÍ×gäVâ8Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 118.70010375976562, - 592.250244140625 - ], - "bbox": [ - 118.70010375976562, - 585.750244140625, - 260.1001281738281, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.70010375976562, - 585.750244140625, - 260.1001281738281, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 271.10009765625, - 592.250244140625 - ], - "bbox": [ - 271.10009765625, - 585.250244140625, - 271.10009765625, - 603.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Á×Qãr×gØ", - "origin": [ - 271.10009765625, - 592.250244140625 - ], - "bbox": [ - 271.10009765625, - 585.750244140625, - 297.1000671386719, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.10009765625, - 585.250244140625, - 297.1000671386719, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ôwæ%Ù�ÝWè8Ô", - "origin": [ - 308.5000915527344, - 592.250244140625 - ], - "bbox": [ - 308.5000915527344, - 585.750244140625, - 341.0000915527344, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.5000915527344, - 585.750244140625, - 341.0000915527344, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 344.0000915527344, - 592.250244140625 - ], - "bbox": [ - 344.0000915527344, - 585.750244140625, - 344.0000915527344, - 603.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gè", - "origin": [ - 344.0000915527344, - 592.250244140625 - ], - "bbox": [ - 344.0000915527344, - 585.750244140625, - 355.0000915527344, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 344.0000915527344, - 585.750244140625, - 355.0000915527344, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú©ß", - "origin": [ - 366.0000915527344, - 592.250244140625 - ], - "bbox": [ - 366.0000915527344, - 585.750244140625, - 371.7001037597656, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 366.0000915527344, - 585.750244140625, - 371.7001037597656, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u000bÑw×gÓGÓ\u001fÓcÛcÒrØ8è8Ò\u001dÞGè\u001eßr×Qۗà\"×gÑlÑÖÕ/Ý?Ù�×", - "origin": [ - 382.7001037597656, - 592.250244140625 - ], - "bbox": [ - 382.7001037597656, - 585.750244140625, - 519.8001098632812, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.7001037597656, - 585.750244140625, - 519.8001098632812, - 604.6502685546875 - ] - } - ] - }, - { - "number": 217, - "type": 0, - "bbox": [ - 71.20010375976562, - 598.250244140625, - 520.300048828125, - 617.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "á-ÔÖØ8èuÚ+ÑlÒrè³ÛZ×QÞGٖò·ê¢ÝTà\u001b×Qãr×QÞgéWà\u001b×^×gÙ�å+Ü8ÒrÓGÔ", - "origin": [ - 71.20010375976562, - 605.250244140625 - ], - "bbox": [ - 71.20010375976562, - 598.750244140625, - 244.90008544921875, - 617.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 244.90008544921875, - 605.250244140625 - ], - "bbox": [ - 244.90008544921875, - 598.250244140625, - 247.90008544921875, - 616.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×NÛcÜ8Ò\u001dÛ­ÛcÜu×»Þc×gÑÖÒ\u001dÛcÔwÝ?Ø�ÛZݳÛcÜu×^å8ÞGÔlÙ�ÝrÞGè8ÔÖÒrÑVèu×QÛZ×QÞGÙ ÔÖØ8ÔÖÓZÛcÔlÕ\"èu×QçrÞG×Q×gÓ", - "origin": [ - 247.90008544921875, - 605.250244140625 - ], - "bbox": [ - 247.90008544921875, - 598.750244140625, - 520.300048828125, - 617.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20010375976562, - 598.250244140625, - 520.300048828125, - 617.6502685546875 - ] - } - ] - }, - { - "number": 218, - "type": 0, - "bbox": [ - 71.10010528564453, - 611.750244140625, - 198.20010375976562, - 630.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ6æ™ÞG×Q×gèuÝ?ٗéªà¢Ü8ÔÖÕGÜ�ÔlتãrÝ?Ñwãr×gÓ\"Ò", - "origin": [ - 71.10010528564453, - 618.250244140625 - ], - "bbox": [ - 71.10010528564453, - 611.750244140625, - 198.20010375976562, - 630.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10010528564453, - 611.750244140625, - 198.20010375976562, - 630.6502685546875 - ] - } - ] - }, - { - "number": 220, - "type": 0, - "bbox": [ - 212.70010375976562, - 611.750244140625, - 308.6000671386719, - 630.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?âuÞ1Ôw×QÞ­ÛZÞGÒrØ8Ócæ™ÝrÞGÙ Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 212.70010375976562, - 618.250244140625 - ], - "bbox": [ - 212.70010375976562, - 611.750244140625, - 308.6000671386719, - 630.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 212.70010375976562, - 611.750244140625, - 308.6000671386719, - 630.6502685546875 - ] - } - ] - }, - { - "number": 222, - "type": 0, - "bbox": [ - 321.9001159667969, - 611.250244140625, - 473.4001159667969, - 630.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/æ]ò\"ëV×gÕ/ÛcÔwÝ?Ø»ï", - "origin": [ - 321.9001159667969, - 618.250244140625 - ], - "bbox": [ - 321.9001159667969, - 611.750244140625, - 374.30010986328125, - 630.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 374.30010986328125, - 618.250244140625 - ], - "bbox": [ - 374.30010986328125, - 611.250244140625, - 379.80010986328125, - 629.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1éVÔÖÓ­Ü8Ôwç?Ü+Ñwß\u0019ØuÝ?Ø+ÑwÝVÕQÒrÑJò", - "origin": [ - 379.80010986328125, - 618.250244140625 - ], - "bbox": [ - 379.80010986328125, - 611.750244140625, - 473.4001159667969, - 630.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.9001159667969, - 611.250244140625, - 473.4001159667969, - 630.6502685546875 - ] - } - ] - }, - { - "number": 224, - "type": 0, - "bbox": [ - 488.30010986328125, - 611.750244140625, - 518.7001342773438, - 630.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÓ·Ù¥Ògß", - "origin": [ - 488.30010986328125, - 618.250244140625 - ], - "bbox": [ - 488.30010986328125, - 611.750244140625, - 518.7001342773438, - 630.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 488.30010986328125, - 611.750244140625, - 518.7001342773438, - 630.6502685546875 - ] - } - ] - }, - { - "number": 225, - "type": 0, - "bbox": [ - 71.10009765625, - 624.1502075195312, - 417.400146484375, - 643.5502319335938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÒrÓZ×\u0016ÛcÜu×¢ÛZ×gØ8ÓcÔwÝ?Ø\u001fÕ/Þc×gÒ\u001dÛZ×gè\u001fÚ©ß", - "origin": [ - 71.10009765625, - 631.1502075195312 - ], - "bbox": [ - 71.10009765625, - 624.6502075195312, - 193.00006103515625, - 643.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10009765625, - 624.6502075195312, - 193.00006103515625, - 643.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0018", - "origin": [ - 202.3000946044922, - 631.1502075195312 - ], - "bbox": [ - 202.3000946044922, - 624.1502075195312, - 202.3000946044922, - 642.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"×gÑlÑ", - "origin": [ - 202.3000946044922, - 631.1502075195312 - ], - "bbox": [ - 202.3000946044922, - 624.6502075195312, - 217.90008544921875, - 643.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u0011\u0010", - "origin": [ - 217.90008544921875, - 631.1502075195312 - ], - "bbox": [ - 217.90008544921875, - 624.7501831054688, - 221.50009155273438, - 638.7501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "LÓ­ÛcÜu×QÝrÞG×gٗéWà»Üu×gØ ÔÖÛ\"Õ/Ý?Ù�×gÓ\u001bÛZÝ\u0014èu×QÛZ×QÞGÙ¥ÔÖØ+ÔÖÓZÛcÔÖÕ", - "origin": [ - 221.50009155273438, - 631.1502075195312 - ], - "bbox": [ - 221.50009155273438, - 624.6502075195312, - 417.400146484375, - 643.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.3000946044922, - 624.1502075195312, - 417.400146484375, - 643.5502319335938 - ] - } - ] - }, - { - "number": 227, - "type": 0, - "bbox": [ - 430.7001037597656, - 624.1502075195312, - 522.3001708984375, - 643.5502319335938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 430.7001037597656, - 631.1502075195312 - ], - "bbox": [ - 430.7001037597656, - 624.1502075195312, - 430.7001037597656, - 642.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÜ+ÔÖè8èu×gØ", - "origin": [ - 430.7001037597656, - 631.1502075195312 - ], - "bbox": [ - 430.7001037597656, - 624.6502075195312, - 461.20013427734375, - 643.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0015�\u0013\u0012", - "origin": [ - 461.20013427734375, - 631.1502075195312 - ], - "bbox": [ - 461.20013427734375, - 624.1502075195312, - 472.900146484375, - 642.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "·ã\u0018Ò\u001dÞGÔlÒ\u001dÚ+Ñw×gÓQò", - "origin": [ - 472.900146484375, - 631.1502075195312 - ], - "bbox": [ - 472.900146484375, - 624.6502075195312, - 522.3001708984375, - 643.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.7001037597656, - 624.1502075195312, - 522.3001708984375, - 643.5502319335938 - ] - } - ] - }, - { - "number": 229, - "type": 0, - "bbox": [ - 93.30008697509766, - 631.2501831054688, - 205.40008544921875, - 665.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×\u0016á4ÔÖØ8è8Ú+ÑÖÒrè�ÛZ×QÞGÙ", - "origin": [ - 93.30008697509766, - 644.1502075195312 - ], - "bbox": [ - 93.30008697509766, - 637.6502075195312, - 166.70008850097656, - 656.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.30008697509766, - 637.6502075195312, - 166.70008850097656, - 656.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 179.20008850097656, - 644.1502075195312 - ], - "bbox": [ - 179.20008850097656, - 637.6502075195312, - 182.3000946044922, - 656.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "5!", - "origin": [ - 182.3000946044922, - 644.1502075195312 - ], - "bbox": [ - 182.3000946044922, - 631.2501831054688, - 191.70008850097656, - 665.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 191.70008850097656, - 644.1502075195312 - ], - "bbox": [ - 191.70008850097656, - 637.6502075195312, - 205.40008544921875, - 656.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 179.20008850097656, - 631.2501831054688, - 205.40008544921875, - 665.9501953125 - ] - } - ] - }, - { - "number": 231, - "type": 0, - "bbox": [ - 214.00009155273438, - 637.1502075195312, - 518.7000732421875, - 656.5502319335938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrð", - "origin": [ - 214.00009155273438, - 644.1502075195312 - ], - "bbox": [ - 214.00009155273438, - 637.6502075195312, - 219.40008544921875, - 656.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 219.40008544921875, - 644.1502075195312 - ], - "bbox": [ - 219.40008544921875, - 637.1502075195312, - 224.90008544921875, - 655.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ÔÖÙ�å+ÑlÔw×gÓ­ÒrØ\rÔÖØ©ÛZ×QÞc×gÓZÛcÔÖØuç", - "origin": [ - 224.90008544921875, - 644.1502075195312 - ], - "bbox": [ - 224.90008544921875, - 637.6502075195312, - 328.6000671386719, - 656.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u000b1=\"393\u0010", - "origin": [ - 328.6000671386719, - 644.1502075195312 - ], - "bbox": [ - 328.6000671386719, - 637.6502075195312, - 352.6000671386719, - 655.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.00009155273438, - 637.1502075195312, - 352.6000671386719, - 656.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ";�\"\u0018\u000e\u0011\"\u0018\u001e89\u000f\"c\u001c\u0013\u001e-1", - "origin": [ - 357.80010986328125, - 644.1502075195312 - ], - "bbox": [ - 357.80010986328125, - 637.6502075195312, - 408.800048828125, - 655.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.80010986328125, - 637.6502075195312, - 408.800048828125, - 655.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9\u000f\u0010\u0013\u001e\u001f\u0014 )7\u001e\u001d\u001b\u001d\u0010\u0013\u001bX&BD", - "origin": [ - 418.10009765625, - 644.1502075195312 - ], - "bbox": [ - 418.10009765625, - 637.6502075195312, - 472.5000915527344, - 655.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 418.10009765625, - 637.6502075195312, - 472.5000915527344, - 655.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010#93\u001c%D", - "origin": [ - 475.5000915527344, - 644.1502075195312 - ], - "bbox": [ - 475.5000915527344, - 637.6502075195312, - 490.2000732421875, - 655.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 475.5000915527344, - 637.6502075195312, - 490.2000732421875, - 655.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")", - "origin": [ - 492.90008544921875, - 644.1502075195312 - ], - "bbox": [ - 492.90008544921875, - 637.6502075195312, - 492.90008544921875, - 655.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 492.90008544921875, - 644.1502075195312 - ], - "bbox": [ - 492.90008544921875, - 637.3502197265625, - 496.0000915527344, - 655.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#\u001c%\u0014 )>\u0010\u0013\u001e", - "origin": [ - 496.0000915527344, - 644.1502075195312 - ], - "bbox": [ - 496.0000915527344, - 637.6502075195312, - 518.7000732421875, - 655.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.90008544921875, - 637.3502197265625, - 518.7000732421875, - 655.6502075195312 - ] - } - ] - }, - { - "number": 232, - "type": 0, - "bbox": [ - 71.7000732421875, - 650.5501708984375, - 356.10003662109375, - 669.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012(\"$9\u0018;X\u001c\u0013\u001e\u001d)�&\u000f\u0012", - "origin": [ - 71.7000732421875, - 657.0501708984375 - ], - "bbox": [ - 71.7000732421875, - 650.5501708984375, - 115.00008392333984, - 668.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014éyà»Ü8ÔÖÕ1ܖÕQÒrâ8ÓZ×gÓ»ÛcÜu׳èu×gÕQÒTߗÝræ·Ócå+Ò\u001dÛcÔÖÒrѰÓcâuå×QÞcåÝ?ÓcÔÖÛcÔwÝ?Ø8Ó", - "origin": [ - 115.00008392333984, - 657.0501708984375 - ], - "bbox": [ - 115.00008392333984, - 650.5501708984375, - 356.10003662109375, - 669.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.7000732421875, - 650.5501708984375, - 356.10003662109375, - 669.4501953125 - ] - } - ] - }, - { - "number": 234, - "type": 0, - "bbox": [ - 369.10009765625, - 650.0501708984375, - 488.7000732421875, - 669.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 369.10009765625, - 657.0501708984375 - ], - "bbox": [ - 369.10009765625, - 650.0501708984375, - 369.10009765625, - 668.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "GëWÕGÜuÞ\u0018ì", - "origin": [ - 369.10009765625, - 657.0501708984375 - ], - "bbox": [ - 369.10009765625, - 650.5501708984375, - 395.0000915527344, - 669.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 369.10009765625, - 650.0501708984375, - 395.0000915527344, - 669.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?è8ÔÖØuçr×QÞ\u0016ÕQÒ\u001dÛ»ÓZÛcÒ\u001dÛZ×gÓ", - "origin": [ - 394.2001037597656, - 657.0501708984375 - ], - "bbox": [ - 394.2001037597656, - 650.5501708984375, - 474.3000793457031, - 669.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�\u0013\u0012", - "origin": [ - 474.3000793457031, - 657.0501708984375 - ], - "bbox": [ - 474.3000793457031, - 650.0501708984375, - 484.2000732421875, - 668.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 484.2000732421875, - 657.0501708984375 - ], - "bbox": [ - 484.2000732421875, - 650.5501708984375, - 488.7000732421875, - 669.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 394.2001037597656, - 650.0501708984375, - 488.7000732421875, - 669.4501953125 - ] - } - ] - }, - { - "number": 236, - "type": 0, - "bbox": [ - 507.7001037597656, - 650.5501708984375, - 519.9000854492188, - 669.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÑw×", - "origin": [ - 507.7001037597656, - 657.0501708984375 - ], - "bbox": [ - 507.7001037597656, - 650.5501708984375, - 519.9000854492188, - 669.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.7001037597656, - 650.5501708984375, - 519.9000854492188, - 669.4501953125 - ] - } - ] - }, - { - "number": 237, - "type": 0, - "bbox": [ - 71.10009765625, - 658.3501586914062, - 515.9000854492188, - 693.0501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×^è+ÔÖÒ\u001dçrÝ?Ø8ÒrÑ8Ù¥Ò\u001dÛZÞ1Ô", - "origin": [ - 71.10009765625, - 671.2501831054688 - ], - "bbox": [ - 71.10009765625, - 664.7501831054688, - 155.50010681152344, - 683.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "+�", - "origin": [ - 155.50010681152344, - 671.2501831054688 - ], - "bbox": [ - 155.50010681152344, - 664.7501831054688, - 158.4001007080078, - 682.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&×gÑÖ×gÙ�×gتÛcÓ½Ýræ", - "origin": [ - 158.4001007080078, - 671.2501831054688 - ], - "bbox": [ - 158.4001007080078, - 664.7501831054688, - 216.70008850097656, - 683.6502075195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10009765625, - 664.7501831054688, - 216.70008850097656, - 683.6502075195312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 223.4001007080078, - 671.2501831054688 - ], - "bbox": [ - 223.4001007080078, - 658.3501586914062, - 223.4001007080078, - 693.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÒ\u001dÞc×»ØuÝrÛ½Ò", - "origin": [ - 223.4001007080078, - 671.2501831054688 - ], - "bbox": [ - 223.4001007080078, - 664.7501831054688, - 269.30010986328125, - 683.6502075195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 223.4001007080078, - 658.3501586914062, - 269.30010986328125, - 693.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 274.5000915527344, - 671.2501831054688 - ], - "bbox": [ - 274.5000915527344, - 664.2501831054688, - 274.5000915527344, - 682.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛZ×gèœÚ©ß&ÛcÜu×»á-ÔÖØ8èuÚ+ÑlÒrè³ÛZ×QÞGٖéªÛcÜu×^Ý", - "origin": [ - 274.5000915527344, - 671.2501831054688 - ], - "bbox": [ - 274.5000915527344, - 664.7501831054688, - 434.2001037597656, - 683.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 434.2001037597656, - 671.2501831054688 - ], - "bbox": [ - 434.2001037597656, - 664.2501831054688, - 439.5000915527344, - 682.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-�", - "origin": [ - 439.5000915527344, - 671.2501831054688 - ], - "bbox": [ - 439.5000915527344, - 664.7501831054688, - 445.90008544921875, - 682.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "sè8ÔÖÒ\u001dçrÝ?Ø+ÒrÑ+Ù¥Ò\u001dÛZÞGÔ", - "origin": [ - 445.90008544921875, - 671.2501831054688 - ], - "bbox": [ - 445.90008544921875, - 664.7501831054688, - 515.9000854492188, - 683.6502075195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.5000915527344, - 664.2501831054688, - 515.9000854492188, - 683.6502075195312 - ] - } - ] - }, - { - "number": 238, - "type": 0, - "bbox": [ - 71.10006713867188, - 677.7501831054688, - 142.80006408691406, - 696.6502075195312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÑw×gÙ¥×gتÛcÓ^è8×gÕQÒgß", - "origin": [ - 71.10006713867188, - 684.2501831054688 - ], - "bbox": [ - 71.10006713867188, - 677.7501831054688, - 136.4000701904297, - 696.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-\u0017", - "origin": [ - 136.4000701904297, - 684.2501831054688 - ], - "bbox": [ - 136.4000701904297, - 677.7501831054688, - 142.80006408691406, - 695.6502075195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 677.7501831054688, - 142.80006408691406, - 696.6502075195312 - ] - } - ] - }, - { - "number": 240, - "type": 0, - "bbox": [ - 210.80006408691406, - 683.5501708984375, - 221.40005493164062, - 709.8502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 210.80006408691406, - 698.4501953125 - ], - "bbox": [ - 210.80006408691406, - 691.4501953125, - 210.80006408691406, - 709.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 210.80006408691406, - 698.4501953125 - ], - "bbox": [ - 210.80006408691406, - 683.5501708984375, - 214.20005798339844, - 708.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e3", - "origin": [ - 214.20005798339844, - 698.4501953125 - ], - "bbox": [ - 214.20005798339844, - 691.4501953125, - 221.40005493164062, - 709.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 210.80006408691406, - 683.5501708984375, - 221.40005493164062, - 709.8502197265625 - ] - } - ] - }, - { - "number": 242, - "type": 0, - "bbox": [ - 232.9000701904297, - 685.5501708984375, - 237.10006713867188, - 720.2501831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�\n�", - "origin": [ - 232.9000701904297, - 698.4501953125 - ], - "bbox": [ - 232.9000701904297, - 685.5501708984375, - 237.10006713867188, - 720.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 232.9000701904297, - 685.5501708984375, - 237.10006713867188, - 720.2501831054688 - ] - } - ] - }, - { - "number": 243, - "type": 0, - "bbox": [ - 241.30006408691406, - 691.9501953125, - 248.80006408691406, - 710.3502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012\u00146", - "origin": [ - 241.30006408691406, - 698.9501953125 - ], - "bbox": [ - 241.30006408691406, - 691.9501953125, - 248.80006408691406, - 710.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.30006408691406, - 691.9501953125, - 248.80006408691406, - 710.3502197265625 - ] - } - ] - }, - { - "number": 244, - "type": 0, - "bbox": [ - 267.40008544921875, - 683.5501708984375, - 278.0000915527344, - 709.8502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 267.40008544921875, - 698.4501953125 - ], - "bbox": [ - 267.40008544921875, - 691.4501953125, - 267.40008544921875, - 709.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 267.40008544921875, - 698.4501953125 - ], - "bbox": [ - 267.40008544921875, - 683.5501708984375, - 270.8000793457031, - 708.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e3", - "origin": [ - 270.8000793457031, - 698.4501953125 - ], - "bbox": [ - 270.8000793457031, - 691.4501953125, - 278.0000915527344, - 709.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.40008544921875, - 683.5501708984375, - 278.0000915527344, - 709.8502197265625 - ] - } - ] - }, - { - "number": 247, - "type": 0, - "bbox": [ - 293.800048828125, - 691.9501953125, - 303.300048828125, - 711.3502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ü", - "origin": [ - 293.800048828125, - 698.9501953125 - ], - "bbox": [ - 293.800048828125, - 692.4501953125, - 293.800048828125, - 711.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 293.800048828125, - 698.9501953125 - ], - "bbox": [ - 293.800048828125, - 691.9501953125, - 299.4000549316406, - 710.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¯×", - "origin": [ - 299.4000549316406, - 698.9501953125 - ], - "bbox": [ - 299.4000549316406, - 692.4501953125, - 303.300048828125, - 711.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.800048828125, - 691.9501953125, - 303.300048828125, - 711.3502197265625 - ] - } - ] - }, - { - "number": 253, - "type": 0, - "bbox": [ - 328.8000183105469, - 685.75, - 331.6000061035156, - 720.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u000b", - "origin": [ - 328.8000183105469, - 692.1500244140625 - ], - "bbox": [ - 328.8000183105469, - 686.4500122070312, - 328.8000183105469, - 720.3500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u0013\u0012", - "origin": [ - 328.8000183105469, - 692.1500244140625 - ], - "bbox": [ - 328.8000183105469, - 685.75, - 331.6000061035156, - 699.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 328.8000183105469, - 685.75, - 331.6000061035156, - 720.3500366210938 - ] - } - ] - }, - { - "number": 261, - "type": 0, - "bbox": [ - 368.0000305175781, - 685.7499389648438, - 370.8000183105469, - 720.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u000b", - "origin": [ - 368.0000305175781, - 692.1499633789062 - ], - "bbox": [ - 368.0000305175781, - 686.449951171875, - 368.0000305175781, - 720.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u0013\u0014", - "origin": [ - 368.0000305175781, - 692.1499633789062 - ], - "bbox": [ - 368.0000305175781, - 685.7499389648438, - 370.8000183105469, - 699.7499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 368.0000305175781, - 685.7499389648438, - 370.8000183105469, - 720.3499755859375 - ] - } - ] - }, - { - "number": 262, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 263, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 264, - "type": 0, - "bbox": [ - 509.60003662109375, - 691.949951171875, - 520.5000610351562, - 711.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ï\u0018ô", - "origin": [ - 509.60003662109375, - 698.949951171875 - ], - "bbox": [ - 509.60003662109375, - 692.449951171875, - 514.800048828125, - 711.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 514.800048828125, - 698.949951171875 - ], - "bbox": [ - 514.800048828125, - 691.949951171875, - 520.5000610351562, - 710.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.60003662109375, - 691.949951171875, - 520.5000610351562, - 711.3499755859375 - ] - } - ] - }, - { - "number": 265, - "type": 0, - "bbox": [ - 71.10003662109375, - 712.1499633789062, - 224.60000610351562, - 731.5499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×QÞcלà\u001bחØu×Qç?Ñw×gÕ/ÛZ×gè\u0012ÛcÜ8×\u001f×", - "origin": [ - 71.10003662109375, - 719.1499633789062 - ], - "bbox": [ - 71.10003662109375, - 712.6499633789062, - 189.4000244140625, - 731.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 189.4000244140625, - 719.1499633789062 - ], - "bbox": [ - 189.4000244140625, - 712.1499633789062, - 194.1000213623047, - 730.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/Û�Ýræ", - "origin": [ - 194.1000213623047, - 719.1499633789062 - ], - "bbox": [ - 194.1000213623047, - 712.6499633789062, - 224.60000610351562, - 731.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 712.1499633789062, - 224.60000610351562, - 731.5499877929688 - ] - } - ] - }, - { - "number": 267, - "type": 0, - "bbox": [ - 243.20004272460938, - 712.6499633789062, - 522.2000732421875, - 731.5499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "é­æ=ÝrÞ¥ÓcÔÖÙ�åyÑÖÔÖÕQÔwÛ¯ßréBà¢Ü8ÔÖÕGÜ", - "origin": [ - 243.20004272460938, - 719.1499633789062 - ], - "bbox": [ - 243.20004272460938, - 712.6499633789062, - 343.10003662109375, - 731.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 243.20004272460938, - 712.6499633789062, - 343.10003662109375, - 731.5499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÒrØ8ØuÝrÛ¥ÓcÛZÝrå", - "origin": [ - 353.7000427246094, - 719.1499633789062 - ], - "bbox": [ - 353.7000427246094, - 712.6499633789062, - 404.4000244140625, - 731.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.7000427246094, - 712.6499633789062, - 404.4000244140625, - 731.5499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×\rè8×gÕQÒgßrò", - "origin": [ - 415.0000305175781, - 719.1499633789062 - ], - "bbox": [ - 415.0000305175781, - 712.6499633789062, - 461.0, - 731.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u0016\u0015", - "origin": [ - 461.0, - 719.1499633789062 - ], - "bbox": [ - 461.0, - 712.7499389648438, - 471.70001220703125, - 726.7499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¢ÑwÛcÔlÙ¥Ò\u001dÛZ×gÑwßré", - "origin": [ - 471.70001220703125, - 719.1499633789062 - ], - "bbox": [ - 471.70001220703125, - 712.6499633789062, - 522.2000732421875, - 731.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 415.0000305175781, - 712.6499633789062, - 522.2000732421875, - 731.5499877929688 - ] - } - ] - }, - { - "number": 268, - "type": 0, - "bbox": [ - 71.20001220703125, - 719.1499633789062, - 519.0000610351562, - 753.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZåyÒrÕ/×QÛcÔÖÙ�×%è8ÔÖÓGÕ/Þc×QÛZ×gØu×gÓcÓNå+ÞcÝVè+â8Õ/×gÓ\u0010ÛcÜ8ÔÖÓNÙ�×gÕ1Ü8ÒrØ8ÔÖÓGÙ", - "origin": [ - 71.20001220703125, - 732.0499877929688 - ], - "bbox": [ - 71.20001220703125, - 725.5499877929688, - 291.70001220703125, - 744.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 725.5499877929688, - 291.70001220703125, - 744.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 304.10003662109375, - 732.0499877929688 - ], - "bbox": [ - 304.10003662109375, - 725.0499877929688, - 304.10003662109375, - 743.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œãWÔÖÒ\u0014ÛcÜu×%ÔÖØ8è+â8Õ/×gè", - "origin": [ - 304.10003662109375, - 732.0499877929688 - ], - "bbox": [ - 304.10003662109375, - 725.5499877929688, - 381.2000427246094, - 744.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.10003662109375, - 725.0499877929688, - 381.2000427246094, - 744.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001f", - "origin": [ - 390.7000427246094, - 732.0499877929688 - ], - "bbox": [ - 390.7000427246094, - 719.1499633789062, - 390.7000427246094, - 753.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8Õ/Ûcâ8Ò\u001dÛcÔÖÝ?Ø8ÓNÔÖØ—ÔÖØ©ÛZ×QÞGÒrÕ/ÛcÔwÝ?Ø8Ógò", - "origin": [ - 390.7000427246094, - 732.0499877929688 - ], - "bbox": [ - 390.7000427246094, - 725.5499877929688, - 519.0000610351562, - 744.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.7000427246094, - 719.1499633789062, - 519.0000610351562, - 753.8499755859375 - ] - } - ] - }, - { - "number": 269, - "type": 0, - "bbox": [ - 85.60003662109375, - 738.0499877929688, - 519.1000366210938, - 773.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëWÔÖØ8Õ/לÛcÜu×QÞc×\rÔÖÓ\u0014ØuÝ", - "origin": [ - 85.60003662109375, - 745.0499877929688 - ], - "bbox": [ - 85.60003662109375, - 738.5499877929688, - 161.60003662109375, - 757.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.60003662109375, - 738.5499877929688, - 161.60003662109375, - 757.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×QÝrÞcß7ßr×QÛ\u0014ÛZÝ\u000fÛZ×gÑÖÑ\u0010â8Ó&Ò\u001dڐÝ?âuÛ\u0019ÛcÜ8×\rÕ/ÝrÞGÞc×gÑÖÒ\u001dÛcÔwÝ?Ø", - "origin": [ - 171.60003662109375, - 745.0499877929688 - ], - "bbox": [ - 171.60003662109375, - 738.5499877929688, - 371.79998779296875, - 757.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 171.60003662109375, - 738.5499877929688, - 371.79998779296875, - 757.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ’â8Ø8Õ/ÛcÔwÝ?Ø", - "origin": [ - 382.4000244140625, - 745.0499877929688 - ], - "bbox": [ - 382.4000244140625, - 738.5499877929688, - 415.60003662109375, - 757.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.4000244140625, - 738.5499877929688, - 415.60003662109375, - 757.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 426.3000183105469, - 745.0499877929688 - ], - "bbox": [ - 426.3000183105469, - 738.25, - 426.3000183105469, - 756.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010.", - "origin": [ - 426.3000183105469, - 745.0499877929688 - ], - "bbox": [ - 426.3000183105469, - 738.0499877929688, - 432.3000183105469, - 756.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0018é­ÔwÛ\u0014Ù¥Ògß", - "origin": [ - 432.3000183105469, - 745.0499877929688 - ], - "bbox": [ - 432.3000183105469, - 738.5499877929688, - 470.70001220703125, - 757.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 426.3000183105469, - 738.0499877929688, - 470.70001220703125, - 757.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ócâ", - "origin": [ - 481.3000183105469, - 745.0499877929688 - ], - "bbox": [ - 481.3000183105469, - 738.5499877929688, - 485.6000061035156, - 757.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 485.6000061035156, - 745.0499877929688 - ], - "bbox": [ - 485.6000061035156, - 739.3499755859375, - 491.6000061035156, - 773.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " Õ/×\u001fÛZÝ", - "origin": [ - 491.6000061035156, - 745.0499877929688 - ], - "bbox": [ - 491.6000061035156, - 738.5499877929688, - 519.1000366210938, - 757.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.3000183105469, - 738.5499877929688, - 519.1000366210938, - 773.25 - ] - } - ] - }, - { - "number": 270, - "type": 0, - "bbox": [ - 71.10000610351562, - 751.0499877929688, - 519.8999633789062, - 770.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "åÝ?ÔÖØ©Û\u0010Ý?âuÛNÛcÜ8Ò\u001dÛ»Õ/Ý?Ø8ÓGÔÖèu×QÞGÒ\u001dÛcÔwÝ?Ø+Ó\"Ýræ¡ÓZÛZÝWÕGÜ+ÒrÓZÛcÔÖÕ;×", - "origin": [ - 71.10000610351562, - 758.0499877929688 - ], - "bbox": [ - 71.10000610351562, - 751.5499877929688, - 276.29998779296875, - 770.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 276.29998779296875, - 758.0499877929688 - ], - "bbox": [ - 276.29998779296875, - 751.0499877929688, - 281.0, - 769.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛcÓ^Ý?ؖäVâ8ÒrØ©Ûcâ8ÙöÙ�×gÕ1Ü8ÒrØ8ÔÖÕQÓ", - "origin": [ - 281.0, - 758.0499877929688 - ], - "bbox": [ - 281.0, - 751.5499877929688, - 414.3999938964844, - 770.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\f\u001e", - "origin": [ - 414.3999938964844, - 758.0499877929688 - ], - "bbox": [ - 414.3999938964844, - 751.0499877929688, - 422.0, - 769.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÒrÓ^ÔwÛ^ÔÖÓ", - "origin": [ - 422.0, - 758.0499877929688 - ], - "bbox": [ - 422.0, - 751.5499877929688, - 458.79998779296875, - 770.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0014\u001e", - "origin": [ - 458.79998779296875, - 758.0499877929688 - ], - "bbox": [ - 458.79998779296875, - 751.0499877929688, - 466.29998779296875, - 769.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œÜ8ÒTãr×\u0019äVâ8ÔwÛZ×", - "origin": [ - 466.29998779296875, - 758.0499877929688 - ], - "bbox": [ - 466.29998779296875, - 751.5499877929688, - 519.8999633789062, - 770.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 751.0499877929688, - 519.8999633789062, - 770.4500122070312 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [ - { - "bbox": [ - 250.69460112812246, - 160.43418803418803, - 345.7856567284448, - 178.6871794871795 - ], - "image_path": "equation_interline/7_250_160_345_178.jpg" - }, - { - "bbox": [ - 209.392425463336, - 207.5076923076923, - 386.12731668009667, - 260.825641025641 - ], - "image_path": "equation_interline/7_209_207_386_260.jpg" - }, - { - "bbox": [ - 196.9057211925866, - 301.17435897435894, - 400.05479452054794, - 319.4273504273504 - ], - "image_path": "equation_interline/7_196_301_400_319.jpg" - }, - { - "bbox": [ - 219.47784045124897, - 349.68888888888887, - 377.0024174053183, - 367.46153846153845 - ], - "image_path": "equation_interline/7_219_349_377_367.jpg" - }, - { - "bbox": [ - 196.9057211925866, - 398.6837606837607, - 399.09427880741333, - 428.46495726495726 - ], - "image_path": "equation_interline/7_196_398_399_428.jpg" - }, - { - "bbox": [ - 208.91216760676872, - 476.01880341880343, - 387.0878323932312, - 493.79145299145296 - ], - "image_path": "equation_interline/7_208_476_387_493.jpg" - }, - { - "bbox": [ - 201.70829975825944, - 692.1726495726496, - 393.8114423851732, - 711.8666666666667 - ], - "image_path": "equation_interline/7_201_692_393_711.jpg" - } - ], - "inline_equations": [ - { - "bbox": [ - 221.3988718775181, - 114.8017094017094, - 328.01611603545524, - 128.25128205128206 - ], - "image_path": "equations_inline/7_221_114_328_128.jpg" - }, - { - "bbox": [ - 206.5108783239323, - 141.7008547008547, - 217.55680902497983, - 151.78803418803417 - ], - "image_path": "equations_inline/7_206_141_217_151.jpg" - }, - { - "bbox": [ - 458.1659951651893, - 438.55213675213673, - 525.8823529411765, - 453.9230769230769 - ], - "image_path": "equations_inline/7_458_438_525_453.jpg" - }, - { - "bbox": [ - 204.1095890410959, - 439.0324786324786, - 430.7912973408541, - 454.88376068376067 - ], - "image_path": "equations_inline/7_204_439_430_454.jpg" - }, - { - "bbox": [ - 434.1531023368251, - 452.48205128205126, - 442.31748589846893, - 467.37264957264955 - ], - "image_path": "equations_inline/7_434_452_442_467.jpg" - }, - { - "bbox": [ - 69.63738920225624, - 453.442735042735, - 196.42546333601933, - 467.85299145299143 - ], - "image_path": "equations_inline/7_69_453_196_467.jpg" - }, - { - "bbox": [ - 101.81466559226429, - 563.4410256410256, - 141.6760676873489, - 578.8119658119658 - ], - "image_path": "equations_inline/7_101_563_141_578.jpg" - }, - { - "bbox": [ - 69.63738920225624, - 563.9213675213675, - 78.28203062046737, - 578.3316239316239 - ], - "image_path": "equations_inline/7_69_563_78_578.jpg" - }, - { - "bbox": [ - 222.3593875906527, - 668.1555555555556, - 231.0040290088638, - 683.5264957264957 - ], - "image_path": "equations_inline/7_222_668_231_683.jpg" - }, - { - "bbox": [ - 231.4842868654311, - 716.1897435897436, - 243.4907332796132, - 729.1589743589743 - ], - "image_path": "equations_inline/7_231_716_243_729.jpg" - }, - { - "bbox": [ - 425.0282030620467, - 743.0888888888888, - 437.9951651893634, - 755.5777777777778 - ], - "image_path": "equations_inline/7_425_743_437_755.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 71.9962158203125, - 595.5, - 800.5619506835938 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 95.5, - 103.14998626708984, - 196.3999786376953, - 137.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "לØuÝaà", - "origin": [ - 95.5, - 116.04998779296875 - ], - "bbox": [ - 95.5, - 109.54998779296875, - 115.9000015258789, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.5, - 109.54998779296875, - 115.9000015258789, - 128.44998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔlÙ�å+Ñw×gÙ�×gØ©Û", - "origin": [ - 128.3000030517578, - 116.04998779296875 - ], - "bbox": [ - 128.3000030517578, - 109.54998779296875, - 174.19998168945312, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "O!", - "origin": [ - 174.19998168945312, - 116.04998779296875 - ], - "bbox": [ - 174.19998168945312, - 103.14998626708984, - 182.69998168945312, - 137.84999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 182.69998168945312, - 116.04998779296875 - ], - "bbox": [ - 182.69998168945312, - 109.54998779296875, - 196.3999786376953, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.3000030517578, - 103.14998626708984, - 196.3999786376953, - 137.84999084472656 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 205.0, - 109.04998779296875, - 215.0, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "û", - "origin": [ - 205.0, - 116.04998779296875 - ], - "bbox": [ - 205.0, - 109.54998779296875, - 205.0, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 205.0, - 116.04998779296875 - ], - "bbox": [ - 205.0, - 109.04998779296875, - 210.5, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é", - "origin": [ - 210.5, - 116.04998779296875 - ], - "bbox": [ - 210.5, - 109.54998779296875, - 215.0, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.0, - 109.04998779296875, - 215.0, - 128.44998168945312 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 228.59999084472656, - 100.64998626708984, - 231.99998474121094, - 126.94998931884766 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 228.59999084472656, - 115.54998779296875 - ], - "bbox": [ - 228.59999084472656, - 108.54998779296875, - 228.59999084472656, - 126.94998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 228.59999084472656, - 115.54998779296875 - ], - "bbox": [ - 228.59999084472656, - 100.64998626708984, - 231.99998474121094, - 125.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.59999084472656, - 100.64998626708984, - 231.99998474121094, - 126.94998931884766 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 247.59999084472656, - 103.14998626708984, - 260.29998779296875, - 137.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "6", - "origin": [ - 247.59999084472656, - 116.04998779296875 - ], - "bbox": [ - 247.59999084472656, - 109.04998779296875, - 247.59999084472656, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0011�", - "origin": [ - 247.59999084472656, - 116.04998779296875 - ], - "bbox": [ - 247.59999084472656, - 103.14998626708984, - 260.29998779296875, - 137.84999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.59999084472656, - 103.14998626708984, - 260.29998779296875, - 137.84999084472656 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 269.5999755859375, - 100.64998626708984, - 272.9999694824219, - 126.94998931884766 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 269.5999755859375, - 115.54998779296875 - ], - "bbox": [ - 269.5999755859375, - 108.54998779296875, - 269.5999755859375, - 126.94998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 269.5999755859375, - 115.54998779296875 - ], - "bbox": [ - 269.5999755859375, - 100.64998626708984, - 272.9999694824219, - 125.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.5999755859375, - 100.64998626708984, - 272.9999694824219, - 126.94998931884766 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 298.39996337890625, - 101.14998626708984, - 303.5999755859375, - 137.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 298.39996337890625, - 116.04998779296875 - ], - "bbox": [ - 298.39996337890625, - 101.14998626708984, - 298.39996337890625, - 126.04998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 298.39996337890625, - 116.04998779296875 - ], - "bbox": [ - 298.39996337890625, - 103.14998626708984, - 303.5999755859375, - 137.84999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 298.39996337890625, - 101.14998626708984, - 303.5999755859375, - 137.84999084472656 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 313.0999755859375, - 100.64998626708984, - 316.4999694824219, - 126.94998931884766 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 313.0999755859375, - 115.54998779296875 - ], - "bbox": [ - 313.0999755859375, - 108.54998779296875, - 313.0999755859375, - 126.94998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 313.0999755859375, - 115.54998779296875 - ], - "bbox": [ - 313.0999755859375, - 100.64998626708984, - 316.4999694824219, - 125.54998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.0999755859375, - 100.64998626708984, - 316.4999694824219, - 126.94998931884766 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 323.39996337890625, - 109.04998779296875, - 519.3999633789062, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 323.39996337890625, - 116.04998779296875 - ], - "bbox": [ - 323.39996337890625, - 109.04998779296875, - 323.39996337890625, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é¡ÔÖØ�ÛcÜ8× ãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ8Ø7×gä©â+Ò\u001dÛcÔwÝ?Ø7æ=Ý?ÑÖÑwÝaà»ÔÖØuç", - "origin": [ - 323.39996337890625, - 116.04998779296875 - ], - "bbox": [ - 323.39996337890625, - 109.54998779296875, - 519.3999633789062, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.39996337890625, - 109.04998779296875, - 519.3999633789062, - 128.44998168945312 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 71.09996032714844, - 116.05001068115234, - 114.29996490478516, - 150.75001525878906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=ÞcÝ?Ù", - "origin": [ - 71.09996032714844, - 128.95001220703125 - ], - "bbox": [ - 71.09996032714844, - 122.45001220703125, - 84.29996490478516, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09996032714844, - 122.45001220703125, - 84.29996490478516, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 96.29995727539062, - 128.95001220703125 - ], - "bbox": [ - 96.29995727539062, - 116.05001068115234, - 96.29995727539062, - 150.75001525878906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äVÓQò", - "origin": [ - 96.29995727539062, - 128.95001220703125 - ], - "bbox": [ - 96.29995727539062, - 122.45001220703125, - 114.29996490478516, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.29995727539062, - 116.05001068115234, - 114.29996490478516, - 150.75001525878906 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 123.39995574951172, - 121.95001220703125, - 133.79995727539062, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îQü", - "origin": [ - 123.39995574951172, - 128.95001220703125 - ], - "bbox": [ - 123.39995574951172, - 122.45001220703125, - 128.199951171875, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 128.199951171875, - 128.95001220703125 - ], - "bbox": [ - 128.199951171875, - 121.95001220703125, - 133.79995727539062, - 140.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 123.39995574951172, - 121.95001220703125, - 133.79995727539062, - 141.35000610351562 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 147.9999542236328, - 121.95001220703125, - 312.5999450683594, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgï", - "origin": [ - 147.9999542236328, - 128.95001220703125 - ], - "bbox": [ - 147.9999542236328, - 122.45001220703125, - 152.8999481201172, - 141.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 152.8999481201172, - 128.95001220703125 - ], - "bbox": [ - 152.8999481201172, - 121.95001220703125, - 158.3999481201172, - 140.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1éuà»ÔÖÛcÜ\u0014å+Ôw×gÕ/×Qà»ÔÖÓc×\u0010ÑlÔÖØu×gÒ\u001dÞ·åÝrÛZ×gتÛcÔÖÒrÑJò", - "origin": [ - 158.3999481201172, - 128.95001220703125 - ], - "bbox": [ - 158.3999481201172, - 122.45001220703125, - 312.5999450683594, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.9999542236328, - 121.95001220703125, - 312.5999450683594, - 141.35000610351562 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 327.4999694824219, - 122.45001220703125, - 518.699951171875, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÓ·ßVÔÖ×gÑÖè8ÓBÛcÜu×NãrÝ?Ø^ó¢×gâ8Ù¥ÒrØ8Ø¥×gä©â8Ò\u001dÛcÔÖÝ?Ø\u0014à»ÔwÛcÜ", - "origin": [ - 327.4999694824219, - 128.95001220703125 - ], - "bbox": [ - 327.4999694824219, - 122.45001220703125, - 518.699951171875, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.4999694824219, - 122.45001220703125, - 518.699951171875, - 141.35000610351562 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 71.0999755859375, - 129.05001831054688, - 375.1999816894531, - 163.75001525878906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×%Õ/Ý?Ò\u001dÞ1ÓZ×", - "origin": [ - 71.0999755859375, - 141.95001220703125 - ], - "bbox": [ - 71.0999755859375, - 135.45001220703125, - 114.0999755859375, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 114.0999755859375, - 141.95001220703125 - ], - "bbox": [ - 114.0999755859375, - 135.45001220703125, - 118.79997253417969, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞGÒrÔÖØu×gè!åÝrÛZ×gتÛcÔÖÒrÑ", - "origin": [ - 118.79997253417969, - 141.95001220703125 - ], - "bbox": [ - 118.79997253417969, - 135.45001220703125, - 200.89996337890625, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 135.45001220703125, - 200.89996337890625, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è!Òrè8è8ÔwÛcÔwÝ?Ø+ÒrÑ", - "origin": [ - 219.99998474121094, - 141.95001220703125 - ], - "bbox": [ - 219.99998474121094, - 135.45001220703125, - 286.29998779296875, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.99998474121094, - 135.45001220703125, - 286.29998779296875, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001f", - "origin": [ - 292.79998779296875, - 141.95001220703125 - ], - "bbox": [ - 292.79998779296875, - 129.05001831054688, - 292.79998779296875, - 163.75001525878906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8Õ/Ûcâ8Ò\u001dÛcÔÖØ8ç&ÛZ×QÞ1Ù¥Ó", - "origin": [ - 292.79998779296875, - 141.95001220703125 - ], - "bbox": [ - 292.79998779296875, - 135.45001220703125, - 370.3999938964844, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0018\u0017", - "origin": [ - 370.3999938964844, - 141.95001220703125 - ], - "bbox": [ - 370.3999938964844, - 135.45001220703125, - 375.1999816894531, - 153.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 292.79998779296875, - 129.05001831054688, - 375.1999816894531, - 163.75001525878906 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 251.79998779296875, - 157.85000610351562, - 257.3999938964844, - 192.5500030517578 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0013\u000e", - "origin": [ - 251.79998779296875, - 170.75 - ], - "bbox": [ - 251.79998779296875, - 157.85000610351562, - 257.3999938964844, - 192.5500030517578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.79998779296875, - 157.85000610351562, - 257.3999938964844, - 192.5500030517578 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 294.9999694824219, - 153.14999389648438, - 300.9999694824219, - 187.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "í", - "origin": [ - 294.9999694824219, - 166.04998779296875 - ], - "bbox": [ - 294.9999694824219, - 159.54998779296875, - 294.9999694824219, - 178.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001d4", - "origin": [ - 294.9999694824219, - 166.04998779296875 - ], - "bbox": [ - 294.9999694824219, - 153.14999389648438, - 300.9999694824219, - 187.84999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 294.9999694824219, - 153.14999389648438, - 300.9999694824219, - 187.84999084472656 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 297.2999572753906, - 159.25, - 315.39996337890625, - 177.64999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 297.2999572753906, - 166.25 - ], - "bbox": [ - 297.2999572753906, - 159.25, - 297.2999572753906, - 177.64999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "���", - "origin": [ - 297.2999572753906, - 166.25 - ], - "bbox": [ - 297.2999572753906, - 159.85000610351562, - 315.39996337890625, - 173.85000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 297.2999572753906, - 159.25, - 315.39996337890625, - 177.64999389648438 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 325.5999450683594, - 153.14999389648438, - 331.8999328613281, - 187.84999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 325.5999450683594, - 166.04998779296875 - ], - "bbox": [ - 325.5999450683594, - 153.14999389648438, - 325.5999450683594, - 187.84999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yñ", - "origin": [ - 325.5999450683594, - 166.04998779296875 - ], - "bbox": [ - 325.5999450683594, - 159.54998779296875, - 331.8999328613281, - 178.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.5999450683594, - 153.14999389648438, - 331.8999328613281, - 187.84999084472656 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 510.0999450683594, - 159.54998779296875, - 515.0999755859375, - 178.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îTù", - "origin": [ - 510.0999450683594, - 166.04998779296875 - ], - "bbox": [ - 510.0999450683594, - 159.54998779296875, - 515.0999755859375, - 178.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.0999450683594, - 159.54998779296875, - 515.0999755859375, - 178.44998168945312 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 71.09994506835938, - 183.14996337890625, - 329.99993896484375, - 202.54995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×QÞcדÛcÜu×%×", - "origin": [ - 71.09994506835938, - 190.14996337890625 - ], - "bbox": [ - 71.09994506835938, - 183.64996337890625, - 121.39995574951172, - 202.54995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 121.39995574951172, - 190.14996337890625 - ], - "bbox": [ - 121.39995574951172, - 183.14996337890625, - 126.0999526977539, - 201.54995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛcÔwãr×\u0019ê\u0016ÒrÙ¥ÔÖÑwÛZÝ?ؖÝrå6×QÞ1Ò\u001dÛZÝrÞ»ÔÖÓ^ØuÝaà", - "origin": [ - 126.0999526977539, - 190.14996337890625 - ], - "bbox": [ - 126.0999526977539, - 183.64996337890625, - 277.89990234375, - 202.54995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 183.14996337890625, - 277.89990234375, - 202.54995727539062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ç?Ôwãr×gؗÚVß", - "origin": [ - 289.39996337890625, - 190.14996337890625 - ], - "bbox": [ - 289.39996337890625, - 183.64996337890625, - 323.5999450683594, - 202.54995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-\u0017", - "origin": [ - 323.5999450683594, - 190.14996337890625 - ], - "bbox": [ - 323.5999450683594, - 183.64996337890625, - 329.99993896484375, - 201.54995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.39996337890625, - 183.64996337890625, - 329.99993896484375, - 202.54995727539062 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 211.29995727539062, - 207.449951171875, - 229.39996337890625, - 225.84994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "0", - "origin": [ - 211.29995727539062, - 214.449951171875 - ], - "bbox": [ - 211.29995727539062, - 207.449951171875, - 211.29995727539062, - 225.84994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "���", - "origin": [ - 211.29995727539062, - 214.449951171875 - ], - "bbox": [ - 211.29995727539062, - 208.04995727539062, - 229.39996337890625, - 222.04995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.29995727539062, - 207.449951171875, - 229.39996337890625, - 225.84994506835938 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 245.09996032714844, - 207.24993896484375, - 247.79995727539062, - 225.64993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 245.09996032714844, - 214.24993896484375 - ], - "bbox": [ - 245.09996032714844, - 207.74993896484375, - 245.09996032714844, - 225.64993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 245.09996032714844, - 214.24993896484375 - ], - "bbox": [ - 245.09996032714844, - 207.24993896484375, - 247.79995727539062, - 225.64993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.09996032714844, - 207.24993896484375, - 247.79995727539062, - 225.64993286132812 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 289.49993896484375, - 199.34994506835938, - 294.699951171875, - 236.04994201660156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 289.49993896484375, - 214.24993896484375 - ], - "bbox": [ - 289.49993896484375, - 199.34994506835938, - 289.49993896484375, - 224.24993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 289.49993896484375, - 214.24993896484375 - ], - "bbox": [ - 289.49993896484375, - 201.34994506835938, - 294.699951171875, - 236.04994201660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.49993896484375, - 199.34994506835938, - 294.699951171875, - 236.04994201660156 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 510.0999450683594, - 207.24993896484375, - 520.4999389648438, - 226.64993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgú", - "origin": [ - 510.0999450683594, - 214.24993896484375 - ], - "bbox": [ - 510.0999450683594, - 207.74993896484375, - 514.9999389648438, - 226.64993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 514.9999389648438, - 214.24993896484375 - ], - "bbox": [ - 514.9999389648438, - 207.24993896484375, - 520.4999389648438, - 225.64993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.0999450683594, - 207.24993896484375, - 520.4999389648438, - 226.64993286132812 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 245.09994506835938, - 233.64996337890625, - 247.79994201660156, - 252.04995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 245.09994506835938, - 240.64996337890625 - ], - "bbox": [ - 245.09994506835938, - 234.14996337890625, - 245.09994506835938, - 252.04995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 245.09994506835938, - 240.64996337890625 - ], - "bbox": [ - 245.09994506835938, - 233.64996337890625, - 247.79994201660156, - 252.04995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.09994506835938, - 233.64996337890625, - 247.79994201660156, - 252.04995727539062 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 318.6000061035156, - 225.25003051757812, - 322.0, - 251.55001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 318.6000061035156, - 240.1500244140625 - ], - "bbox": [ - 318.6000061035156, - 233.1500244140625, - 318.6000061035156, - 251.55001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 318.6000061035156, - 240.1500244140625 - ], - "bbox": [ - 318.6000061035156, - 225.25003051757812, - 322.0, - 250.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.6000061035156, - 225.25003051757812, - 322.0, - 251.55001831054688 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 346.4999694824219, - 225.75003051757812, - 351.6999816894531, - 262.45001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 346.4999694824219, - 240.6500244140625 - ], - "bbox": [ - 346.4999694824219, - 225.75003051757812, - 346.4999694824219, - 250.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 346.4999694824219, - 240.6500244140625 - ], - "bbox": [ - 346.4999694824219, - 227.75003051757812, - 351.6999816894531, - 262.45001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.4999694824219, - 225.75003051757812, - 351.6999816894531, - 262.45001220703125 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 361.0999755859375, - 225.25003051757812, - 364.4999694824219, - 251.55001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 361.0999755859375, - 240.1500244140625 - ], - "bbox": [ - 361.0999755859375, - 233.1500244140625, - 361.0999755859375, - 251.55001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 361.0999755859375, - 240.1500244140625 - ], - "bbox": [ - 361.0999755859375, - 225.25003051757812, - 364.4999694824219, - 250.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 361.0999755859375, - 225.25003051757812, - 364.4999694824219, - 251.55001831054688 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 510.0999450683594, - 233.6500244140625, - 520.4999389648438, - 253.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgû", - "origin": [ - 510.0999450683594, - 240.6500244140625 - ], - "bbox": [ - 510.0999450683594, - 234.1500244140625, - 514.9999389648438, - 253.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 514.9999389648438, - 240.6500244140625 - ], - "bbox": [ - 514.9999389648438, - 233.6500244140625, - 520.4999389648438, - 252.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.0999450683594, - 233.6500244140625, - 520.4999389648438, - 253.05001831054688 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 71.199951171875, - 255.65005493164062, - 260.49993896484375, - 290.35003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ\rÛcÜ8×%Õ/Ý©ÝrÞGè+ÔÖØ8Ò\u001dÛZ×;Þc×Qå8ÞG×gÓZ×gتÛcÒ\u001dÛcÔÖÝ?ذé+Õ/æ]ò", - "origin": [ - 71.199951171875, - 268.550048828125 - ], - "bbox": [ - 71.199951171875, - 262.050048828125, - 239.39996337890625, - 280.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.199951171875, - 262.050048828125, - 239.39996337890625, - 280.9500427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 246.79995727539062, - 268.550048828125 - ], - "bbox": [ - 246.79995727539062, - 255.65005493164062, - 246.79995727539062, - 290.35003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 246.79995727539062, - 268.550048828125 - ], - "bbox": [ - 246.79995727539062, - 262.050048828125, - 260.49993896484375, - 280.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.79995727539062, - 255.65005493164062, - 260.49993896484375, - 290.35003662109375 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 269.5999755859375, - 261.550048828125, - 284.5, - 280.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î/ô", - "origin": [ - 269.5999755859375, - 268.550048828125 - ], - "bbox": [ - 269.5999755859375, - 262.050048828125, - 274.29998779296875, - 280.9500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 274.29998779296875, - 268.550048828125 - ], - "bbox": [ - 274.29998779296875, - 261.550048828125, - 280.0, - 279.9500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 280.0, - 268.550048828125 - ], - "bbox": [ - 280.0, - 262.050048828125, - 284.5, - 280.9500427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.5999755859375, - 261.550048828125, - 284.5, - 280.9500427246094 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 85.29997253417969, - 268.5500793457031, - 405.7999572753906, - 303.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.29997253417969, - 281.4500732421875 - ], - "bbox": [ - 85.29997253417969, - 274.4500732421875, - 85.29997253417969, - 292.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]Ø\rÝrÞ1èu×QÞ^ÛZÝ¥×Qã\u001dÒrÑÖâ8Ò\u001dÛZ×%ÛcÜ8׳ÔÖØ", - "origin": [ - 85.29997253417969, - 281.4500732421875 - ], - "bbox": [ - 85.29997253417969, - 274.9500732421875, - 205.50001525878906, - 293.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001d\u001f", - "origin": [ - 205.50001525878906, - 281.4500732421875 - ], - "bbox": [ - 205.50001525878906, - 268.5500793457031, - 211.50001525878906, - 303.25006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8×gØ8Õ/דÝræ-ÛcÜu×", - "origin": [ - 211.50001525878906, - 281.4500732421875 - ], - "bbox": [ - 211.50001525878906, - 274.9500732421875, - 270.3999938964844, - 293.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.29997253417969, - 268.5500793457031, - 270.3999938964844, - 303.25006103515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001f", - "origin": [ - 278.9999694824219, - 281.4500732421875 - ], - "bbox": [ - 278.9999694824219, - 268.5500793457031, - 278.9999694824219, - 303.25006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8Õ/Ûcâ8Ò\u001dÛcÔwÝ?Ø+ÓQéuà\"×%ÔÖÛZ×QÞGÒ\u001dÛZ×", - "origin": [ - 278.9999694824219, - 281.4500732421875 - ], - "bbox": [ - 278.9999694824219, - 274.9500732421875, - 383.4999694824219, - 293.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.9999694824219, - 268.5500793457031, - 383.4999694824219, - 303.25006103515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 392.0999755859375, - 281.4500732421875 - ], - "bbox": [ - 392.0999755859375, - 268.5500793457031, - 392.0999755859375, - 303.25006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 392.0999755859375, - 281.4500732421875 - ], - "bbox": [ - 392.0999755859375, - 274.9500732421875, - 405.7999572753906, - 293.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 392.0999755859375, - 268.5500793457031, - 405.7999572753906, - 303.25006103515625 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 414.9999694824219, - 274.4500732421875, - 454.89996337890625, - 293.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îTù", - "origin": [ - 414.9999694824219, - 281.4500732421875 - ], - "bbox": [ - 414.9999694824219, - 274.9500732421875, - 419.9999694824219, - 293.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.9999694824219, - 274.9500732421875, - 419.9999694824219, - 293.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 425.39996337890625, - 281.4500732421875 - ], - "bbox": [ - 425.39996337890625, - 274.4500732421875, - 425.39996337890625, - 292.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NÝ?Ø8Õ/×", - "origin": [ - 425.39996337890625, - 281.4500732421875 - ], - "bbox": [ - 425.39996337890625, - 274.9500732421875, - 449.4999694824219, - 293.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "%\u0017", - "origin": [ - 449.4999694824219, - 281.4500732421875 - ], - "bbox": [ - 449.4999694824219, - 274.9500732421875, - 454.89996337890625, - 292.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 425.39996337890625, - 274.4500732421875, - 454.89996337890625, - 293.8500671386719 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 245.39993286132812, - 294.0500793457031, - 251.39993286132812, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "í", - "origin": [ - 245.39993286132812, - 306.9500732421875 - ], - "bbox": [ - 245.39993286132812, - 300.4500732421875, - 245.39993286132812, - 319.3500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001d4", - "origin": [ - 245.39993286132812, - 306.9500732421875 - ], - "bbox": [ - 245.39993286132812, - 294.0500793457031, - 251.39993286132812, - 328.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.39993286132812, - 294.0500793457031, - 251.39993286132812, - 328.75006103515625 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 262.5999450683594, - 298.7500915527344, - 268.199951171875, - 333.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u0013\u000e", - "origin": [ - 262.5999450683594, - 311.65008544921875 - ], - "bbox": [ - 262.5999450683594, - 298.7500915527344, - 268.199951171875, - 333.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.5999450683594, - 298.7500915527344, - 268.199951171875, - 333.4500732421875 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 271.99993896484375, - 294.0500793457031, - 278.0999450683594, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 271.99993896484375, - 306.9500732421875 - ], - "bbox": [ - 271.99993896484375, - 294.0500793457031, - 271.99993896484375, - 328.75006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8ñ", - "origin": [ - 271.99993896484375, - 306.9500732421875 - ], - "bbox": [ - 271.99993896484375, - 300.4500732421875, - 278.0999450683594, - 319.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.99993896484375, - 294.0500793457031, - 278.0999450683594, - 328.75006103515625 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 284.0999450683594, - 299.550048828125, - 294.99993896484375, - 317.9500427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "8", - "origin": [ - 284.0999450683594, - 306.550048828125 - ], - "bbox": [ - 284.0999450683594, - 299.550048828125, - 284.0999450683594, - 317.9500427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "�", - "origin": [ - 284.0999450683594, - 306.550048828125 - ], - "bbox": [ - 284.0999450683594, - 300.1500549316406, - 294.99993896484375, - 314.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 284.0999450683594, - 299.550048828125, - 294.99993896484375, - 317.9500427246094 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 307.5999450683594, - 292.0500793457031, - 321.6999206542969, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 307.5999450683594, - 306.9500732421875 - ], - "bbox": [ - 307.5999450683594, - 292.0500793457031, - 307.5999450683594, - 316.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ")�", - "origin": [ - 307.5999450683594, - 306.9500732421875 - ], - "bbox": [ - 307.5999450683594, - 294.0500793457031, - 312.8999328613281, - 328.75006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001f\u0012", - "origin": [ - 312.8999328613281, - 306.9500732421875 - ], - "bbox": [ - 312.8999328613281, - 299.9500732421875, - 321.6999206542969, - 318.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.5999450683594, - 292.0500793457031, - 321.6999206542969, - 328.75006103515625 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 342.199951171875, - 292.0500793457031, - 347.39996337890625, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 342.199951171875, - 306.9500732421875 - ], - "bbox": [ - 342.199951171875, - 292.0500793457031, - 342.199951171875, - 316.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 342.199951171875, - 306.9500732421875 - ], - "bbox": [ - 342.199951171875, - 294.0500793457031, - 347.39996337890625, - 328.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.199951171875, - 292.0500793457031, - 347.39996337890625, - 328.75006103515625 - ] - } - ] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 362.0999450683594, - 292.0500793457031, - 367.2999572753906, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 362.0999450683594, - 306.9500732421875 - ], - "bbox": [ - 362.0999450683594, - 292.0500793457031, - 362.0999450683594, - 316.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 362.0999450683594, - 306.9500732421875 - ], - "bbox": [ - 362.0999450683594, - 294.0500793457031, - 367.2999572753906, - 328.75006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 362.0999450683594, - 292.0500793457031, - 367.2999572753906, - 328.75006103515625 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 378.99993896484375, - 294.0500793457031, - 385.699951171875, - 328.75006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 378.99993896484375, - 306.9500732421875 - ], - "bbox": [ - 378.99993896484375, - 294.0500793457031, - 378.99993896484375, - 328.75006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬ñ", - "origin": [ - 378.99993896484375, - 306.9500732421875 - ], - "bbox": [ - 378.99993896484375, - 300.4500732421875, - 385.699951171875, - 319.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 378.99993896484375, - 294.0500793457031, - 385.699951171875, - 328.75006103515625 - ] - } - ] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 509.5999450683594, - 299.9500732421875, - 520.4999389648438, - 319.3500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ï\u001dü", - "origin": [ - 509.5999450683594, - 306.9500732421875 - ], - "bbox": [ - 509.5999450683594, - 300.4500732421875, - 514.8999633789062, - 319.3500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 514.8999633789062, - 306.9500732421875 - ], - "bbox": [ - 514.8999633789062, - 299.9500732421875, - 520.4999389648438, - 318.3500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.5999450683594, - 299.9500732421875, - 520.4999389648438, - 319.3500671386719 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 71.09994506835938, - 324.0500793457031, - 268.89996337890625, - 343.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 71.09994506835938, - 331.0500793457031 - ], - "bbox": [ - 71.09994506835938, - 324.0500793457031, - 71.09994506835938, - 342.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PتÛZ×QçrÞ1Ò\u001dÛcÔÖØuç¥Ý?Ø8Õ/×ré+à»ÔwÛcÜ\rÛcÜu×%ÔÖØ+ÔwÛcÔÖÒrѐÕ/Ý?Ø8è8ÔwÛcÔÖÝ?Ø", - "origin": [ - 71.09994506835938, - 331.0500793457031 - ], - "bbox": [ - 71.09994506835938, - 324.5500793457031, - 268.89996337890625, - 343.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 324.0500793457031, - 268.89996337890625, - 343.4500732421875 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 220.39993286132812, - 346.9500732421875, - 225.89993286132812, - 381.6500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u000f\u000e", - "origin": [ - 220.39993286132812, - 359.8500671386719 - ], - "bbox": [ - 220.39993286132812, - 346.9500732421875, - 225.89993286132812, - 381.6500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.39993286132812, - 346.9500732421875, - 225.89993286132812, - 381.6500549316406 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 239.0999298095703, - 346.9501037597656, - 242.2999267578125, - 381.65008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000e", - "origin": [ - 239.0999298095703, - 359.85009765625 - ], - "bbox": [ - 239.0999298095703, - 346.9501037597656, - 239.0999298095703, - 381.65008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\n�", - "origin": [ - 239.0999298095703, - 359.85009765625 - ], - "bbox": [ - 239.0999298095703, - 353.4501037597656, - 242.2999267578125, - 367.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 239.0999298095703, - 346.9501037597656, - 242.2999267578125, - 381.65008544921875 - ] - } - ] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 298.19989013671875, - 342.2501220703125, - 304.4998779296875, - 376.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 298.19989013671875, - 355.1501159667969 - ], - "bbox": [ - 298.19989013671875, - 342.2501220703125, - 298.19989013671875, - 376.9501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yñ", - "origin": [ - 298.19989013671875, - 355.1501159667969 - ], - "bbox": [ - 298.19989013671875, - 348.6501159667969, - 304.4998779296875, - 367.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 298.19989013671875, - 342.2501220703125, - 304.4998779296875, - 376.9501037597656 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 307.5998840332031, - 346.95013427734375, - 310.7998962402344, - 381.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u000e", - "origin": [ - 307.5998840332031, - 359.8501281738281 - ], - "bbox": [ - 307.5998840332031, - 346.95013427734375, - 307.5998840332031, - 381.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\n�", - "origin": [ - 307.5998840332031, - 359.8501281738281 - ], - "bbox": [ - 307.5998840332031, - 353.45013427734375, - 310.7998962402344, - 367.45013427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.5998840332031, - 346.95013427734375, - 310.7998962402344, - 381.6501159667969 - ] - } - ] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 324.69989013671875, - 347.7501220703125, - 335.69989013671875, - 366.1501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "8", - "origin": [ - 324.69989013671875, - 354.7501220703125 - ], - "bbox": [ - 324.69989013671875, - 347.7501220703125, - 324.69989013671875, - 366.1501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u000b�", - "origin": [ - 324.69989013671875, - 354.7501220703125 - ], - "bbox": [ - 324.69989013671875, - 348.3501281738281, - 335.69989013671875, - 362.3501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 324.69989013671875, - 347.7501220703125, - 335.69989013671875, - 366.1501159667969 - ] - } - ] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 348.2998962402344, - 340.2501220703125, - 353.4999084472656, - 376.9501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001b", - "origin": [ - 348.2998962402344, - 355.1501159667969 - ], - "bbox": [ - 348.2998962402344, - 340.2501220703125, - 348.2998962402344, - 365.1501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".�", - "origin": [ - 348.2998962402344, - 355.1501159667969 - ], - "bbox": [ - 348.2998962402344, - 342.2501220703125, - 353.4999084472656, - 376.9501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.2998962402344, - 340.2501220703125, - 353.4999084472656, - 376.9501037597656 - ] - } - ] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 509.59991455078125, - 348.1501159667969, - 520.4999389648438, - 367.55010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïWî", - "origin": [ - 509.59991455078125, - 355.1501159667969 - ], - "bbox": [ - 509.59991455078125, - 348.6501159667969, - 515.4999389648438, - 367.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ":\u0012", - "origin": [ - 515.4999389648438, - 355.1501159667969 - ], - "bbox": [ - 515.4999389648438, - 348.1501159667969, - 520.4999389648438, - 366.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.59991455078125, - 348.1501159667969, - 520.4999389648438, - 367.55010986328125 - ] - } - ] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 71.19992065429688, - 366.3501281738281, - 343.4998779296875, - 401.05010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è—ÒTãr×QÞGÒ\u001dç?ÔÖØuçœÝTãr×QÞ\u0016ÛcÜu×", - "origin": [ - 71.19992065429688, - 379.2501220703125 - ], - "bbox": [ - 71.19992065429688, - 372.7501220703125, - 174.7999267578125, - 391.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0019\u001f", - "origin": [ - 174.7999267578125, - 379.2501220703125 - ], - "bbox": [ - 174.7999267578125, - 366.3501281738281, - 183.19992065429688, - 401.05010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8Õ/Ûcâ+Ò\u001dÛcÔwÝ?Ø8ÓQéuà»ÔÖÛcÜ\rÛcÜu׳Üu×gÑwå—Ýræ", - "origin": [ - 183.19992065429688, - 379.2501220703125 - ], - "bbox": [ - 183.19992065429688, - 372.7501220703125, - 318.39990234375, - 391.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "T!", - "origin": [ - 318.39990234375, - 379.2501220703125 - ], - "bbox": [ - 318.39990234375, - 366.3501281738281, - 325.4999084472656, - 401.05010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äVÓQò", - "origin": [ - 325.4999084472656, - 379.2501220703125 - ], - "bbox": [ - 325.4999084472656, - 372.7501220703125, - 343.4998779296875, - 391.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 366.3501281738281, - 343.4998779296875, - 401.05010986328125 - ] - } - ] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 352.5999450683594, - 372.2501220703125, - 362.99993896484375, - 391.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îg÷", - "origin": [ - 352.5999450683594, - 379.2501220703125 - ], - "bbox": [ - 352.5999450683594, - 372.7501220703125, - 357.49993896484375, - 391.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 357.49993896484375, - 379.2501220703125 - ], - "bbox": [ - 357.49993896484375, - 372.2501220703125, - 362.99993896484375, - 390.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 352.5999450683594, - 372.2501220703125, - 362.99993896484375, - 391.6501159667969 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 377.199951171875, - 372.2501220703125, - 436.1999816894531, - 391.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "îgø", - "origin": [ - 377.199951171875, - 379.2501220703125 - ], - "bbox": [ - 377.199951171875, - 372.7501220703125, - 382.0999450683594, - 391.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 382.0999450683594, - 379.2501220703125 - ], - "bbox": [ - 382.0999450683594, - 372.2501220703125, - 387.5999450683594, - 390.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é¬Ñw×gÒrè+Ó\u0010ÛZÝ", - "origin": [ - 387.5999450683594, - 379.2501220703125 - ], - "bbox": [ - 387.5999450683594, - 372.7501220703125, - 430.1999816894531, - 391.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "b\u0017", - "origin": [ - 430.1999816894531, - 379.2501220703125 - ], - "bbox": [ - 430.1999816894531, - 372.7501220703125, - 436.1999816894531, - 390.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.199951171875, - 372.2501220703125, - 436.1999816894531, - 391.6501159667969 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 198.29994201660156, - 401.5501403808594, - 203.79994201660156, - 436.2501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u000f\u000e", - "origin": [ - 198.29994201660156, - 414.45013427734375 - ], - "bbox": [ - 198.29994201660156, - 401.5501403808594, - 203.79994201660156, - 436.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 198.29994201660156, - 401.5501403808594, - 203.79994201660156, - 436.2501220703125 - ] - } - ] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 258.59991455078125, - 396.8501892089844, - 264.89990234375, - 431.5501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 258.59991455078125, - 409.75018310546875 - ], - "bbox": [ - 258.59991455078125, - 396.8501892089844, - 258.59991455078125, - 431.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yñ", - "origin": [ - 258.59991455078125, - 409.75018310546875 - ], - "bbox": [ - 258.59991455078125, - 403.25018310546875, - 264.89990234375, - 422.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.59991455078125, - 396.8501892089844, - 264.89990234375, - 431.5501708984375 - ] - } - ] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 122, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 123, - "type": 0, - "bbox": [ - 341.89990234375, - 401.5502014160156, - 349.9999084472656, - 436.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001c\r\u000b", - "origin": [ - 341.89990234375, - 414.4501953125 - ], - "bbox": [ - 341.89990234375, - 401.5502014160156, - 349.9999084472656, - 436.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.89990234375, - 401.5502014160156, - 349.9999084472656, - 436.25018310546875 - ] - } - ] - }, - { - "number": 126, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 128, - "type": 0, - "bbox": [ - 378.3999328613281, - 402.75018310546875, - 384.5999450683594, - 421.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 378.3999328613281, - 409.75018310546875 - ], - "bbox": [ - 378.3999328613281, - 402.9501953125, - 378.3999328613281, - 421.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "$\u0012", - "origin": [ - 378.3999328613281, - 409.75018310546875 - ], - "bbox": [ - 378.3999328613281, - 402.75018310546875, - 384.5999450683594, - 421.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 378.3999328613281, - 402.75018310546875, - 384.5999450683594, - 421.25018310546875 - ] - } - ] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 130, - "type": 0, - "bbox": [ - 509.5999450683594, - 402.75018310546875, - 520.4999389648438, - 422.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrï", - "origin": [ - 509.5999450683594, - 409.75018310546875 - ], - "bbox": [ - 509.5999450683594, - 403.25018310546875, - 514.9999389648438, - 422.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 514.9999389648438, - 409.75018310546875 - ], - "bbox": [ - 514.9999389648438, - 402.75018310546875, - 520.4999389648438, - 421.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.5999450683594, - 402.75018310546875, - 520.4999389648438, - 422.1501770019531 - ] - } - ] - }, - { - "number": 131, - "type": 0, - "bbox": [ - 71.09994506835938, - 434.75018310546875, - 194.8999481201172, - 453.6501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcÜ", - "origin": [ - 71.09994506835938, - 441.25018310546875 - ], - "bbox": [ - 71.09994506835938, - 434.75018310546875, - 86.49994659423828, - 453.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09994506835938, - 434.75018310546875, - 86.49994659423828, - 453.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×", - "origin": [ - 98.59994506835938, - 441.25018310546875 - ], - "bbox": [ - 98.59994506835938, - 434.75018310546875, - 108.89994812011719, - 453.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.59994506835938, - 434.75018310546875, - 108.89994812011719, - 453.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥Ò\u001dÛZÞGÔ", - "origin": [ - 120.19994354248047, - 441.25018310546875 - ], - "bbox": [ - 120.19994354248047, - 434.75018310546875, - 143.19993591308594, - 453.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "+�", - "origin": [ - 143.19993591308594, - 441.25018310546875 - ], - "bbox": [ - 143.19993591308594, - 434.75018310546875, - 146.0999298095703, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 120.19994354248047, - 434.75018310546875, - 146.0999298095703, - 453.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÑÖ×gÙ�×gتÛcÓ", - "origin": [ - 158.199951171875, - 441.25018310546875 - ], - "bbox": [ - 158.199951171875, - 434.75018310546875, - 194.8999481201172, - 453.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.199951171875, - 434.75018310546875, - 194.8999481201172, - 453.6501770019531 - ] - } - ] - }, - { - "number": 132, - "type": 0, - "bbox": [ - 206.3999481201172, - 425.8501892089844, - 209.79994201660156, - 452.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "!", - "origin": [ - 206.3999481201172, - 440.75018310546875 - ], - "bbox": [ - 206.3999481201172, - 433.9501953125, - 206.3999481201172, - 452.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 206.3999481201172, - 440.75018310546875 - ], - "bbox": [ - 206.3999481201172, - 425.8501892089844, - 209.79994201660156, - 450.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 206.3999481201172, - 425.8501892089844, - 209.79994201660156, - 452.25018310546875 - ] - } - ] - }, - { - "number": 133, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 135, - "type": 0, - "bbox": [ - 224.99993896484375, - 434.25018310546875, - 231.09994506835938, - 452.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 224.99993896484375, - 441.25018310546875 - ], - "bbox": [ - 224.99993896484375, - 434.4501953125, - 224.99993896484375, - 452.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0015.", - "origin": [ - 224.99993896484375, - 441.25018310546875 - ], - "bbox": [ - 224.99993896484375, - 434.25018310546875, - 231.09994506835938, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.99993896484375, - 434.25018310546875, - 231.09994506835938, - 452.75018310546875 - ] - } - ] - }, - { - "number": 137, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 141, - "type": 0, - "bbox": [ - 274.7999267578125, - 434.25018310546875, - 299.49993896484375, - 452.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 274.7999267578125, - 441.25018310546875 - ], - "bbox": [ - 274.7999267578125, - 434.75018310546875, - 274.7999267578125, - 452.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 274.7999267578125, - 441.25018310546875 - ], - "bbox": [ - 274.7999267578125, - 434.25018310546875, - 277.49993896484375, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.7999267578125, - 434.25018310546875, - 277.49993896484375, - 452.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 293.3999328613281, - 441.25018310546875 - ], - "bbox": [ - 293.3999328613281, - 434.4501953125, - 293.3999328613281, - 452.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0015.", - "origin": [ - 293.3999328613281, - 441.25018310546875 - ], - "bbox": [ - 293.3999328613281, - 434.25018310546875, - 299.49993896484375, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.3999328613281, - 434.25018310546875, - 299.49993896484375, - 452.75018310546875 - ] - } - ] - }, - { - "number": 142, - "type": 0, - "bbox": [ - 304.7999267578125, - 425.8501892089844, - 308.1999206542969, - 452.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 304.7999267578125, - 440.75018310546875 - ], - "bbox": [ - 304.7999267578125, - 433.75018310546875, - 304.7999267578125, - 452.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 304.7999267578125, - 440.75018310546875 - ], - "bbox": [ - 304.7999267578125, - 425.8501892089844, - 308.1999206542969, - 450.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.7999267578125, - 425.8501892089844, - 308.1999206542969, - 452.1501770019531 - ] - } - ] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 144, - "type": 0, - "bbox": [ - 326.3999328613281, - 425.8501892089844, - 336.99993896484375, - 452.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 326.3999328613281, - 440.75018310546875 - ], - "bbox": [ - 326.3999328613281, - 433.75018310546875, - 326.3999328613281, - 452.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 326.3999328613281, - 440.75018310546875 - ], - "bbox": [ - 326.3999328613281, - 425.8501892089844, - 329.7999267578125, - 450.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e3", - "origin": [ - 329.7999267578125, - 440.75018310546875 - ], - "bbox": [ - 329.7999267578125, - 433.75018310546875, - 336.99993896484375, - 452.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.3999328613281, - 425.8501892089844, - 336.99993896484375, - 452.1501770019531 - ] - } - ] - }, - { - "number": 149, - "type": 0, - "bbox": [ - 376.699951171875, - 425.8501892089844, - 387.2999572753906, - 452.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 376.699951171875, - 440.75018310546875 - ], - "bbox": [ - 376.699951171875, - 433.75018310546875, - 376.699951171875, - 452.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 376.699951171875, - 440.75018310546875 - ], - "bbox": [ - 376.699951171875, - 425.8501892089844, - 380.0999450683594, - 450.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e3", - "origin": [ - 380.0999450683594, - 440.75018310546875 - ], - "bbox": [ - 380.0999450683594, - 433.75018310546875, - 387.2999572753906, - 452.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.699951171875, - 425.8501892089844, - 387.2999572753906, - 452.1501770019531 - ] - } - ] - }, - { - "number": 151, - "type": 0, - "bbox": [ - 402.5999450683594, - 434.25018310546875, - 408.699951171875, - 452.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 402.5999450683594, - 441.25018310546875 - ], - "bbox": [ - 402.5999450683594, - 434.4501953125, - 402.5999450683594, - 452.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0015.", - "origin": [ - 402.5999450683594, - 441.25018310546875 - ], - "bbox": [ - 402.5999450683594, - 434.25018310546875, - 408.699951171875, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 402.5999450683594, - 434.25018310546875, - 408.699951171875, - 452.75018310546875 - ] - } - ] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 424.5999450683594, - 434.25018310546875, - 446.5999450683594, - 453.6501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 424.5999450683594, - 441.25018310546875 - ], - "bbox": [ - 424.5999450683594, - 434.25018310546875, - 424.5999450683594, - 452.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¾ÒrØ8è", - "origin": [ - 424.5999450683594, - 441.25018310546875 - ], - "bbox": [ - 424.5999450683594, - 434.75018310546875, - 446.5999450683594, - 453.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.5999450683594, - 434.25018310546875, - 446.5999450683594, - 453.6501770019531 - ] - } - ] - }, - { - "number": 155, - "type": 0, - "bbox": [ - 459.7999572753906, - 425.8501892089844, - 463.199951171875, - 452.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "!", - "origin": [ - 459.7999572753906, - 440.75018310546875 - ], - "bbox": [ - 459.7999572753906, - 433.9501953125, - 459.7999572753906, - 452.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 459.7999572753906, - 440.75018310546875 - ], - "bbox": [ - 459.7999572753906, - 425.8501892089844, - 463.199951171875, - 450.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.7999572753906, - 425.8501892089844, - 463.199951171875, - 452.25018310546875 - ] - } - ] - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 160, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 162, - "type": 0, - "bbox": [ - 513.699951171875, - 434.25018310546875, - 516.3999633789062, - 452.6501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0017", - "origin": [ - 513.699951171875, - 441.25018310546875 - ], - "bbox": [ - 513.699951171875, - 434.75018310546875, - 513.699951171875, - 452.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "76", - "origin": [ - 513.699951171875, - 441.25018310546875 - ], - "bbox": [ - 513.699951171875, - 434.25018310546875, - 516.3999633789062, - 452.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 513.699951171875, - 434.25018310546875, - 516.3999633789062, - 452.6501770019531 - ] - } - ] - }, - { - "number": 163, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 164, - "type": 0, - "bbox": [ - 82.69995880126953, - 440.0502014160156, - 86.09996032714844, - 466.3501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 82.69995880126953, - 454.9501953125 - ], - "bbox": [ - 82.69995880126953, - 447.9501953125, - 82.69995880126953, - 466.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 82.69995880126953, - 454.9501953125 - ], - "bbox": [ - 82.69995880126953, - 440.0502014160156, - 86.09996032714844, - 464.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69995880126953, - 440.0502014160156, - 86.09996032714844, - 466.3501892089844 - ] - } - ] - }, - { - "number": 165, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 104.29995727539062, - 440.0502014160156, - 114.89995574951172, - 466.3501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 104.29995727539062, - 454.9501953125 - ], - "bbox": [ - 104.29995727539062, - 447.9501953125, - 104.29995727539062, - 466.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 104.29995727539062, - 454.9501953125 - ], - "bbox": [ - 104.29995727539062, - 440.0502014160156, - 107.69995880126953, - 464.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e3", - "origin": [ - 107.69995880126953, - 454.9501953125 - ], - "bbox": [ - 107.69995880126953, - 447.9501953125, - 114.89995574951172, - 466.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 104.29995727539062, - 440.0502014160156, - 114.89995574951172, - 466.3501892089844 - ] - } - ] - }, - { - "number": 168, - "type": 0, - "bbox": [ - 126.09996032714844, - 440.5502014160156, - 130.19996643066406, - 466.8501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 126.09996032714844, - 455.4501953125 - ], - "bbox": [ - 126.09996032714844, - 448.4501953125, - 126.09996032714844, - 466.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "G\u001b", - "origin": [ - 126.09996032714844, - 455.4501953125 - ], - "bbox": [ - 126.09996032714844, - 440.5502014160156, - 130.19996643066406, - 465.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.09996032714844, - 440.5502014160156, - 130.19996643066406, - 466.8501892089844 - ] - } - ] - }, - { - "number": 169, - "type": 0, - "bbox": [ - 135.9999542236328, - 440.0502014160156, - 139.3999481201172, - 466.3501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 135.9999542236328, - 454.9501953125 - ], - "bbox": [ - 135.9999542236328, - 447.9501953125, - 135.9999542236328, - 466.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 135.9999542236328, - 454.9501953125 - ], - "bbox": [ - 135.9999542236328, - 440.0502014160156, - 139.3999481201172, - 464.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.9999542236328, - 440.0502014160156, - 139.3999481201172, - 466.3501892089844 - ] - } - ] - }, - { - "number": 172, - "type": 0, - "bbox": [ - 167.699951171875, - 440.5502014160156, - 177.199951171875, - 477.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012", - "origin": [ - 167.699951171875, - 455.4501953125 - ], - "bbox": [ - 167.699951171875, - 448.4501953125, - 167.699951171875, - 466.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\n\u001e", - "origin": [ - 167.699951171875, - 455.4501953125 - ], - "bbox": [ - 167.699951171875, - 442.5502014160156, - 171.8999481201172, - 477.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "‡\u001b", - "origin": [ - 171.8999481201172, - 455.4501953125 - ], - "bbox": [ - 171.8999481201172, - 440.5502014160156, - 177.199951171875, - 465.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.699951171875, - 440.5502014160156, - 177.199951171875, - 477.25018310546875 - ] - } - ] - }, - { - "number": 174, - "type": 0, - "bbox": [ - 186.3999481201172, - 448.4501953125, - 196.4999542236328, - 467.8501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ü", - "origin": [ - 186.3999481201172, - 455.4501953125 - ], - "bbox": [ - 186.3999481201172, - 448.9501953125, - 186.3999481201172, - 467.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 186.3999481201172, - 455.4501953125 - ], - "bbox": [ - 186.3999481201172, - 448.4501953125, - 191.9999542236328, - 466.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 191.9999542236328, - 455.4501953125 - ], - "bbox": [ - 191.9999542236328, - 448.9501953125, - 196.4999542236328, - 467.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.3999481201172, - 448.4501953125, - 196.4999542236328, - 467.8501892089844 - ] - } - ] - }, - { - "number": 176, - "type": 0, - "bbox": [ - 212.199951171875, - 442.5502014160156, - 519.7999877929688, - 483.65020751953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞ\u0014Ócâ", - "origin": [ - 212.199951171875, - 455.4501953125 - ], - "bbox": [ - 212.199951171875, - 448.9501953125, - 230.79994201660156, - 467.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 230.79994201660156, - 455.4501953125 - ], - "bbox": [ - 230.79994201660156, - 449.75018310546875, - 236.79994201660156, - 483.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œÕQÔw×gتÛcÑÖß", - "origin": [ - 236.79994201660156, - 455.4501953125 - ], - "bbox": [ - 236.79994201660156, - 448.9501953125, - 271.7999572753906, - 467.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 212.199951171875, - 448.9501953125, - 271.7999572753906, - 483.65020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÜ8ÝrÞcÛ;ÛcÔÖÙ�×gÓ\u0019ÒrØ8è", - "origin": [ - 281.7999572753906, - 455.4501953125 - ], - "bbox": [ - 281.7999572753906, - 448.9501953125, - 351.7999267578125, - 467.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 281.7999572753906, - 448.9501953125, - 351.7999267578125, - 467.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓcÑwÝaà»Ñwß", - "origin": [ - 362.0999755859375, - 455.4501953125 - ], - "bbox": [ - 362.0999755859375, - 448.9501953125, - 385.4999694824219, - 467.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 362.0999755859375, - 448.9501953125, - 385.4999694824219, - 467.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ã\u0018Ò\u001dÞGßVÔÖØ8ç", - "origin": [ - 395.4999694824219, - 455.4501953125 - ], - "bbox": [ - 395.4999694824219, - 448.9501953125, - 425.39996337890625, - 467.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u00114", - "origin": [ - 425.39996337890625, - 455.4501953125 - ], - "bbox": [ - 425.39996337890625, - 442.5502014160156, - 438.0999755859375, - 477.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.4999694824219, - 442.5502014160156, - 438.0999755859375, - 477.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 435.1999816894531, - 455.4501953125 - ], - "bbox": [ - 435.1999816894531, - 442.5502014160156, - 435.1999816894531, - 477.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4é-à\"×\u001fÙ¥Ògß�â8Óc×¥ÛcÜu×", - "origin": [ - 435.1999816894531, - 455.4501953125 - ], - "bbox": [ - 435.1999816894531, - 448.9501953125, - 519.7999877929688, - 467.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.1999816894531, - 442.5502014160156, - 519.7999877929688, - 477.25018310546875 - ] - } - ] - }, - { - "number": 177, - "type": 0, - "bbox": [ - 71.19998168945312, - 461.9501953125, - 134.29998779296875, - 480.8501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001då8å+ÞcÝ", - "origin": [ - 71.19998168945312, - 468.4501953125 - ], - "bbox": [ - 71.19998168945312, - 461.9501953125, - 93.09998321533203, - 480.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#�", - "origin": [ - 93.09998321533203, - 468.4501953125 - ], - "bbox": [ - 93.09998321533203, - 461.9501953125, - 97.99998474121094, - 479.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uÔÖÙ¥Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 97.99998474121094, - 468.4501953125 - ], - "bbox": [ - 97.99998474121094, - 461.9501953125, - 134.29998779296875, - 480.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 461.9501953125, - 134.29998779296875, - 480.8501892089844 - ] - } - ] - }, - { - "number": 178, - "type": 0, - "bbox": [ - 210.29998779296875, - 473.0502014160156, - 215.79998779296875, - 507.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\f\u000f\u000e", - "origin": [ - 210.29998779296875, - 485.9501953125 - ], - "bbox": [ - 210.29998779296875, - 473.0502014160156, - 215.79998779296875, - 507.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 210.29998779296875, - 473.0502014160156, - 215.79998779296875, - 507.75018310546875 - ] - } - ] - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 184, - "type": 0, - "bbox": [ - 270.7999572753906, - 468.3502197265625, - 277.0999450683594, - 503.0502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 270.7999572753906, - 481.2502136230469 - ], - "bbox": [ - 270.7999572753906, - 468.3502197265625, - 270.7999572753906, - 503.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yñ", - "origin": [ - 270.7999572753906, - 481.2502136230469 - ], - "bbox": [ - 270.7999572753906, - 474.7502136230469, - 277.0999450683594, - 493.65020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.7999572753906, - 468.3502197265625, - 277.0999450683594, - 503.0502014160156 - ] - } - ] - }, - { - "number": 186, - "type": 0, - "bbox": [ - 293.4999694824219, - 467.8502197265625, - 298.1999816894531, - 502.5502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 293.4999694824219, - 480.7502136230469 - ], - "bbox": [ - 293.4999694824219, - 467.8502197265625, - 293.4999694824219, - 502.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�\u000f", - "origin": [ - 293.4999694824219, - 480.7502136230469 - ], - "bbox": [ - 293.4999694824219, - 473.7502136230469, - 298.1999816894531, - 492.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.4999694824219, - 467.8502197265625, - 298.1999816894531, - 502.5502014160156 - ] - } - ] - }, - { - "number": 190, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 191, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 195, - "type": 0, - "bbox": [ - 353.70001220703125, - 468.3502197265625, - 362.9000244140625, - 503.0502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 353.70001220703125, - 481.2502136230469 - ], - "bbox": [ - 353.70001220703125, - 474.4502258300781, - 353.70001220703125, - 492.7502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "74", - "origin": [ - 353.70001220703125, - 481.2502136230469 - ], - "bbox": [ - 353.70001220703125, - 468.3502197265625, - 362.9000244140625, - 503.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.70001220703125, - 468.3502197265625, - 362.9000244140625, - 503.0502014160156 - ] - } - ] - }, - { - "number": 197, - "type": 0, - "bbox": [ - 366.3000183105469, - 474.2502136230469, - 372.5000305175781, - 492.7502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 366.3000183105469, - 481.2502136230469 - ], - "bbox": [ - 366.3000183105469, - 474.4502258300781, - 366.3000183105469, - 492.7502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "$\u0012", - "origin": [ - 366.3000183105469, - 481.2502136230469 - ], - "bbox": [ - 366.3000183105469, - 474.2502136230469, - 372.5000305175781, - 492.65020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 366.3000183105469, - 474.2502136230469, - 372.5000305175781, - 492.7502136230469 - ] - } - ] - }, - { - "number": 198, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 199, - "type": 0, - "bbox": [ - 509.6000061035156, - 474.2502136230469, - 520.5, - 493.65020751953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrð", - "origin": [ - 509.6000061035156, - 481.2502136230469 - ], - "bbox": [ - 509.6000061035156, - 474.7502136230469, - 515.0, - 493.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 515.0, - 481.2502136230469 - ], - "bbox": [ - 515.0, - 474.2502136230469, - 520.5, - 492.65020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.6000061035156, - 474.2502136230469, - 520.5, - 493.65020751953125 - ] - } - ] - }, - { - "number": 201, - "type": 0, - "bbox": [ - 79.10001373291016, - 493.9502258300781, - 160.10000610351562, - 512.8502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÜVâ8ÓQéªà\"×»Ò\u001dÞGÞGÔwãr×»Ò\u001dÛ½Ò", - "origin": [ - 79.10001373291016, - 500.4502258300781 - ], - "bbox": [ - 79.10001373291016, - 493.9502258300781, - 160.10000610351562, - 512.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.10001373291016, - 493.9502258300781, - 160.10000610351562, - 512.8502197265625 - ] - } - ] - }, - { - "number": 203, - "type": 0, - "bbox": [ - 178.7000274658203, - 493.4502258300781, - 519.1000366210938, - 512.8502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÞ", - "origin": [ - 178.7000274658203, - 500.4502258300781 - ], - "bbox": [ - 178.7000274658203, - 493.9502258300781, - 184.00003051757812, - 512.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 184.00003051757812, - 500.4502258300781 - ], - "bbox": [ - 184.00003051757812, - 493.4502258300781, - 188.4000244140625, - 511.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝTãWÔÖÒr؜٠ÒrÓZÛZ×QÞ½×gäVâ8Ò\u001dÛcÔwÝ?Ø à»ÔwÛcÜ�Ò³è+ÔÖÓcÓcÔwåyÒ\u001dÛcÔwãr×", - "origin": [ - 188.4000244140625, - 500.4502258300781 - ], - "bbox": [ - 188.4000244140625, - 493.9502258300781, - 379.8999328613281, - 512.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\r\f", - "origin": [ - 379.8999328613281, - 500.4502258300781 - ], - "bbox": [ - 379.8999328613281, - 494.05023193359375, - 387.8999328613281, - 508.05023193359375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "<)7\u001e81=I�D", - "origin": [ - 387.8999328613281, - 500.4502258300781 - ], - "bbox": [ - 387.8999328613281, - 493.9502258300781, - 414.99993896484375, - 511.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.7000274658203, - 493.4502258300781, - 414.99993896484375, - 512.8502197265625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001c,1\\\\u0014.\"\u0018\u000e\u000f\u0012", - "origin": [ - 418.0000305175781, - 500.4502258300781 - ], - "bbox": [ - 418.0000305175781, - 493.9502258300781, - 445.6000061035156, - 511.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014éVÔÖØ¥Òrè8è8ÔÖÛcÔwÝ?Ø\u0014ÛZÝ", - "origin": [ - 445.6000061035156, - 500.4502258300781 - ], - "bbox": [ - 445.6000061035156, - 493.9502258300781, - 519.1000366210938, - 512.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 418.0000305175781, - 493.9502258300781, - 519.1000366210938, - 512.8502197265625 - ] - } - ] - }, - { - "number": 204, - "type": 0, - "bbox": [ - 71.10003662109375, - 506.9501953125, - 518.7000122070312, - 525.8502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×%ÑÖ×gÒrè8ÔÖØuç�Õ/Ý?Ù¥Ù&âuÛcÒ\u001dÛZÝrÞgéyà»Ü8ÔÖÕ1ܗÔÖÓNÞc×gÓZåÝ?Ø8ÓGÔwÚ+Ñw×¢æ™ÝrÞ»â+Ø8ÔwÛcÒ\u001dÞcß\u001fä©â8ÒrØ©Ûcâ8Ùö×QãrÝ?ÑlâuÛcÔwÝ?Ø", - "origin": [ - 71.10003662109375, - 513.4501953125 - ], - "bbox": [ - 71.10003662109375, - 506.9501953125, - 429.300048828125, - 525.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u000f\u000e", - "origin": [ - 429.300048828125, - 513.4501953125 - ], - "bbox": [ - 429.300048828125, - 507.0502014160156, - 439.800048828125, - 521.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 506.9501953125, - 439.800048828125, - 525.8502197265625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò�ÑÖÒ\u0014ãrÝ?Ø¢ó»×gâ+Ù¥ÒrØ8Ø", - "origin": [ - 439.0000305175781, - 513.4501953125 - ], - "bbox": [ - 439.0000305175781, - 506.9501953125, - 518.7000122070312, - 525.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 439.0000305175781, - 506.9501953125, - 518.7000122070312, - 525.8502197265625 - ] - } - ] - }, - { - "number": 205, - "type": 0, - "bbox": [ - 71.20001220703125, - 519.750244140625, - 207.1000213623047, - 538.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ\rÛcÜ8×%Ò\u001dÚ+ÓZ×gØ8Õ/×%Ýræ¡è8ÔlÓcÓcÔwå+Ò\u001dÛcÔÖÝ?ذò", - "origin": [ - 71.20001220703125, - 526.250244140625 - ], - "bbox": [ - 71.20001220703125, - 519.750244140625, - 207.1000213623047, - 538.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 519.750244140625, - 207.1000213623047, - 538.6502685546875 - ] - } - ] - }, - { - "number": 206, - "type": 0, - "bbox": [ - 85.40000915527344, - 532.250244140625, - 518.7000122070312, - 551.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "á4ÔÖØ8×gÒ\u001dÞGÔwÛsß", - "origin": [ - 85.40000915527344, - 539.250244140625 - ], - "bbox": [ - 85.40000915527344, - 532.750244140625, - 122.80001831054688, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.40000915527344, - 532.750244140625, - 122.80001831054688, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 134.50001525878906, - 539.250244140625 - ], - "bbox": [ - 134.50001525878906, - 532.750244140625, - 137.6000213623047, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.50001525878906, - 532.750244140625, - 137.6000213623047, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u0012èu×gØ8ÓcÔwۯߟ٥Ò\u001dÛZÞGÔ", - "origin": [ - 149.40000915527344, - 539.250244140625 - ], - "bbox": [ - 149.40000915527344, - 532.750244140625, - 233.30001831054688, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 149.40000915527344, - 532.750244140625, - 233.30001831054688, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ�Òr؎ÔÖÙ�åÝrÞcÛcÒrØ©Û", - "origin": [ - 248.00001525878906, - 539.250244140625 - ], - "bbox": [ - 248.00001525878906, - 532.750244140625, - 322.3999938964844, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.00001525878906, - 532.750244140625, - 322.3999938964844, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ™×gÒ\u001dÛcâuÞG×", - "origin": [ - 332.4000244140625, - 539.250244140625 - ], - "bbox": [ - 332.4000244140625, - 532.750244140625, - 360.5999755859375, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.4000244140625, - 532.750244140625, - 360.5999755859375, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ\u001fÝ?âuÞ\u000fÞc×gÓcâ+ÑwÛcÔÖØuç\u001e×gä©â8Ò\u001dÛcÔÖÝ?Ø8ÓQò", - "origin": [ - 371.20001220703125, - 539.250244140625 - ], - "bbox": [ - 371.20001220703125, - 532.750244140625, - 500.5999755859375, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.20001220703125, - 532.750244140625, - 500.5999755859375, - 551.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 514.6000366210938, - 539.250244140625 - ], - "bbox": [ - 514.6000366210938, - 532.250244140625, - 514.6000366210938, - 550.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PØ", - "origin": [ - 514.6000366210938, - 539.250244140625 - ], - "bbox": [ - 514.6000366210938, - 532.750244140625, - 518.7000122070312, - 551.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.6000366210938, - 532.250244140625, - 518.7000122070312, - 551.6502685546875 - ] - } - ] - }, - { - "number": 207, - "type": 0, - "bbox": [ - 71.10003662109375, - 539.3502197265625, - 218.40003967285156, - 574.0502319335938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Ò\u001dÞGÛcÔÖÕQâ8ÑÖÒ\u001dÞgé\"ÔÖØ", - "origin": [ - 71.10003662109375, - 552.250244140625 - ], - "bbox": [ - 71.10003662109375, - 545.750244140625, - 129.20004272460938, - 564.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 545.750244140625, - 129.20004272460938, - 564.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜuחæ™ÝrÞ1Ù", - "origin": [ - 139.800048828125, - 552.250244140625 - ], - "bbox": [ - 139.800048828125, - 545.750244140625, - 172.90005493164062, - 564.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.800048828125, - 545.750244140625, - 172.90005493164062, - 564.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ", - "origin": [ - 186.70004272460938, - 552.250244140625 - ], - "bbox": [ - 186.70004272460938, - 545.750244140625, - 192.10003662109375, - 564.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.70004272460938, - 545.750244140625, - 192.10003662109375, - 564.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "!", - "origin": [ - 200.300048828125, - 552.250244140625 - ], - "bbox": [ - 200.300048828125, - 539.3502197265625, - 200.300048828125, - 574.0502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä©Ógò", - "origin": [ - 200.300048828125, - 552.250244140625 - ], - "bbox": [ - 200.300048828125, - 545.750244140625, - 218.40003967285156, - 564.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.300048828125, - 539.3502197265625, - 218.40003967285156, - 574.0502319335938 - ] - } - ] - }, - { - "number": 209, - "type": 0, - "bbox": [ - 227.00006103515625, - 545.250244140625, - 237.90005493164062, - 564.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrï", - "origin": [ - 227.00006103515625, - 552.250244140625 - ], - "bbox": [ - 227.00006103515625, - 545.750244140625, - 232.40005493164062, - 564.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 232.40005493164062, - 552.250244140625 - ], - "bbox": [ - 232.40005493164062, - 545.250244140625, - 237.90005493164062, - 563.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.00006103515625, - 545.250244140625, - 237.90005493164062, - 564.6502685546875 - ] - } - ] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 251.60006713867188, - 545.250244140625, - 521.199951171875, - 564.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrð", - "origin": [ - 251.60006713867188, - 552.250244140625 - ], - "bbox": [ - 251.60006713867188, - 545.750244140625, - 257.00006103515625, - 564.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 257.00006103515625, - 552.250244140625 - ], - "bbox": [ - 257.00006103515625, - 545.250244140625, - 262.50006103515625, - 563.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1é»ÛcÜuז٥ÒrÓcÛZ×QÞ¥×gä©â+Ò\u001dÛcÔwÝ?Ø\u0012å8Þc×gÓc×QÞcãr×gÓ�ÛcÜuזØuÝrÞ1Ù¥ÒrÑÖÔ", - "origin": [ - 262.50006103515625, - 552.250244140625 - ], - "bbox": [ - 262.50006103515625, - 545.750244140625, - 479.0999755859375, - 564.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 479.0999755859375, - 552.250244140625 - ], - "bbox": [ - 479.0999755859375, - 545.250244140625, - 482.0999755859375, - 563.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gÒ\u001dÛcÔwÝ?Ø\u000bÝræ", - "origin": [ - 482.0999755859375, - 552.250244140625 - ], - "bbox": [ - 482.0999755859375, - 545.750244140625, - 521.199951171875, - 564.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 251.60006713867188, - 545.250244140625, - 521.199951171875, - 564.6502685546875 - ] - } - ] - }, - { - "number": 212, - "type": 0, - "bbox": [ - 71.30006408691406, - 553.4501953125, - 93.60006713867188, - 588.1502075195312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 71.30006408691406, - 566.3502197265625 - ], - "bbox": [ - 71.30006408691406, - 553.4501953125, - 71.30006408691406, - 588.1502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-é8ÓcÒTß", - "origin": [ - 71.30006408691406, - 566.3502197265625 - ], - "bbox": [ - 71.30006408691406, - 559.8502197265625, - 93.60006713867188, - 578.750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.30006408691406, - 553.4501953125, - 93.60006713867188, - 588.1502075195312 - ] - } - ] - }, - { - "number": 214, - "type": 0, - "bbox": [ - 136.10006713867188, - 559.8502197265625, - 372.1000061035156, - 578.750244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "î\u001dé+à»Ü8ÔÖÕ1Ü\r×", - "origin": [ - 136.10006713867188, - 566.3502197265625 - ], - "bbox": [ - 136.10006713867188, - 559.8502197265625, - 178.80007934570312, - 578.750244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 178.80007934570312, - 566.3502197265625 - ], - "bbox": [ - 178.80007934570312, - 559.8502197265625, - 183.5000762939453, - 577.750244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Vå8ÞG×gÓcÓZ×gÓNÛcÜu×\u0019Õ/Ý?Ø8ÓZ×QÞcã\u001dÒ\u001dÛcÔwÝ?ؗÝræ·å8ÞcÝrÚyÒ\u001dÚ+ÔÖÑÖÔwÛ¯ßrò", - "origin": [ - 183.5000762939453, - 566.3502197265625 - ], - "bbox": [ - 183.5000762939453, - 559.8502197265625, - 372.1000061035156, - 578.750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.10006713867188, - 559.8502197265625, - 372.1000061035156, - 578.750244140625 - ] - } - ] - }, - { - "number": 215, - "type": 0, - "bbox": [ - 85.30006408691406, - 572.3502197265625, - 522.0000610351562, - 591.750244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 85.30006408691406, - 579.3502197265625 - ], - "bbox": [ - 85.30006408691406, - 572.3502197265625, - 85.30006408691406, - 590.750244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¯Û�ÓZ×Q×gÙ Ó\u0014à\"ÝrÞcÛcÜ\u000bà¢Ü8ÔÖÑwלÛZÝ", - "origin": [ - 85.30006408691406, - 579.3502197265625 - ], - "bbox": [ - 85.30006408691406, - 572.8502197265625, - 196.2000732421875, - 591.750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.30006408691406, - 572.3502197265625, - 196.2000732421875, - 591.750244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "åÝ?ÔÖØ©Û&Ý?âuÛ\u0014ÛcÜ8Ò\u001dÛ�à\"חÒ\u001dÞcÞ1ÔwãrחÒ\u001dÛ&ÛcÜ8×\rÓcÛcÒrØ8è8Ò\u001dÞGè°é\"ÔIòž×ròwé½ÔÖØ", - "origin": [ - 206.2000732421875, - 579.3502197265625 - ], - "bbox": [ - 206.2000732421875, - 572.8502197265625, - 438.9999694824219, - 591.750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 206.2000732421875, - 572.8502197265625, - 438.9999694824219, - 591.750244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Ò\u001dÞcÛcÔlÕQâ8ÑÖÒ\u001dÞ", - "origin": [ - 449.60009765625, - 579.3502197265625 - ], - "bbox": [ - 449.60009765625, - 572.8502197265625, - 492.2000732421875, - 591.750244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u001aD+\u0010#9\u000f\u001c\u0013D", - "origin": [ - 492.2000732421875, - 579.3502197265625 - ], - "bbox": [ - 492.2000732421875, - 572.8502197265625, - 519.2000732421875, - 590.750244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ºé", - "origin": [ - 519.2000732421875, - 579.3502197265625 - ], - "bbox": [ - 519.2000732421875, - 572.8502197265625, - 522.0000610351562, - 591.750244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.60009765625, - 572.8502197265625, - 522.0000610351562, - 591.750244140625 - ] - } - ] - }, - { - "number": 216, - "type": 0, - "bbox": [ - 71.20010375976562, - 585.250244140625, - 519.8001098632812, - 604.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "äVâ8ÒrØ©Ûcâ8Ù", - "origin": [ - 71.20010375976562, - 592.250244140625 - ], - "bbox": [ - 71.20010375976562, - 585.750244140625, - 104.60010528564453, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20010375976562, - 585.750244140625, - 104.60010528564453, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÒrѓ×QãrÝ?ÑÖâuÛcÔwÝ?ØÍ×gäVâ8Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 118.70010375976562, - 592.250244140625 - ], - "bbox": [ - 118.70010375976562, - 585.750244140625, - 260.1001281738281, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.70010375976562, - 585.750244140625, - 260.1001281738281, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 271.10009765625, - 592.250244140625 - ], - "bbox": [ - 271.10009765625, - 585.250244140625, - 271.10009765625, - 603.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Á×Qãr×gØ", - "origin": [ - 271.10009765625, - 592.250244140625 - ], - "bbox": [ - 271.10009765625, - 585.750244140625, - 297.1000671386719, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.10009765625, - 585.250244140625, - 297.1000671386719, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ôwæ%Ù�ÝWè8Ô", - "origin": [ - 308.5000915527344, - 592.250244140625 - ], - "bbox": [ - 308.5000915527344, - 585.750244140625, - 341.0000915527344, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.5000915527344, - 585.750244140625, - 341.0000915527344, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 344.0000915527344, - 592.250244140625 - ], - "bbox": [ - 344.0000915527344, - 585.750244140625, - 344.0000915527344, - 603.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gè", - "origin": [ - 344.0000915527344, - 592.250244140625 - ], - "bbox": [ - 344.0000915527344, - 585.750244140625, - 355.0000915527344, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 344.0000915527344, - 585.750244140625, - 355.0000915527344, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ú©ß", - "origin": [ - 366.0000915527344, - 592.250244140625 - ], - "bbox": [ - 366.0000915527344, - 585.750244140625, - 371.7001037597656, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 366.0000915527344, - 585.750244140625, - 371.7001037597656, - 604.6502685546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u000bÑw×gÓGÓ\u001fÓcÛcÒrØ8è8Ò\u001dÞGè\u001eßr×Qۗà\"×gÑlÑÖÕ/Ý?Ù�×", - "origin": [ - 382.7001037597656, - 592.250244140625 - ], - "bbox": [ - 382.7001037597656, - 585.750244140625, - 519.8001098632812, - 604.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.7001037597656, - 585.750244140625, - 519.8001098632812, - 604.6502685546875 - ] - } - ] - }, - { - "number": 217, - "type": 0, - "bbox": [ - 71.20010375976562, - 598.250244140625, - 520.300048828125, - 617.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "á-ÔÖØ8èuÚ+ÑlÒrè³ÛZ×QÞGٖò·ê¢ÝTà\u001b×Qãr×QÞgéWà\u001b×^×gÙ�å+Ü8ÒrÓGÔ", - "origin": [ - 71.20010375976562, - 605.250244140625 - ], - "bbox": [ - 71.20010375976562, - 598.750244140625, - 244.90008544921875, - 617.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 244.90008544921875, - 605.250244140625 - ], - "bbox": [ - 244.90008544921875, - 598.250244140625, - 247.90008544921875, - 616.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Q×NÛcÜ8Ò\u001dÛ­ÛcÜu×»Þc×gÑÖÒ\u001dÛcÔwÝ?Ø�ÛZݳÛcÜu×^å8ÞGÔlÙ�ÝrÞGè8ÔÖÒrÑVèu×QÛZ×QÞGÙ ÔÖØ8ÔÖÓZÛcÔlÕ\"èu×QçrÞG×Q×gÓ", - "origin": [ - 247.90008544921875, - 605.250244140625 - ], - "bbox": [ - 247.90008544921875, - 598.750244140625, - 520.300048828125, - 617.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20010375976562, - 598.250244140625, - 520.300048828125, - 617.6502685546875 - ] - } - ] - }, - { - "number": 218, - "type": 0, - "bbox": [ - 71.10010528564453, - 611.750244140625, - 198.20010375976562, - 630.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ6æ™ÞG×Q×gèuÝ?ٗéªà¢Ü8ÔÖÕGÜ�ÔlتãrÝ?Ñwãr×gÓ\"Ò", - "origin": [ - 71.10010528564453, - 618.250244140625 - ], - "bbox": [ - 71.10010528564453, - 611.750244140625, - 198.20010375976562, - 630.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10010528564453, - 611.750244140625, - 198.20010375976562, - 630.6502685546875 - ] - } - ] - }, - { - "number": 220, - "type": 0, - "bbox": [ - 212.70010375976562, - 611.750244140625, - 308.6000671386719, - 630.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?âuÞ1Ôw×QÞ­ÛZÞGÒrØ8Ócæ™ÝrÞGÙ Ò\u001dÛcÔwÝ?Ø", - "origin": [ - 212.70010375976562, - 618.250244140625 - ], - "bbox": [ - 212.70010375976562, - 611.750244140625, - 308.6000671386719, - 630.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 212.70010375976562, - 611.750244140625, - 308.6000671386719, - 630.6502685546875 - ] - } - ] - }, - { - "number": 222, - "type": 0, - "bbox": [ - 321.9001159667969, - 611.250244140625, - 473.4001159667969, - 630.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Õ/æ]ò\"ëV×gÕ/ÛcÔwÝ?Ø»ï", - "origin": [ - 321.9001159667969, - 618.250244140625 - ], - "bbox": [ - 321.9001159667969, - 611.750244140625, - 374.30010986328125, - 630.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 374.30010986328125, - 618.250244140625 - ], - "bbox": [ - 374.30010986328125, - 611.250244140625, - 379.80010986328125, - 629.6502685546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1éVÔÖÓ­Ü8Ôwç?Ü+Ñwß\u0019ØuÝ?Ø+ÑwÝVÕQÒrÑJò", - "origin": [ - 379.80010986328125, - 618.250244140625 - ], - "bbox": [ - 379.80010986328125, - 611.750244140625, - 473.4001159667969, - 630.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.9001159667969, - 611.250244140625, - 473.4001159667969, - 630.6502685546875 - ] - } - ] - }, - { - "number": 224, - "type": 0, - "bbox": [ - 488.30010986328125, - 611.750244140625, - 518.7001342773438, - 630.6502685546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÓ·Ù¥Ògß", - "origin": [ - 488.30010986328125, - 618.250244140625 - ], - "bbox": [ - 488.30010986328125, - 611.750244140625, - 518.7001342773438, - 630.6502685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 488.30010986328125, - 611.750244140625, - 518.7001342773438, - 630.6502685546875 - ] - } - ] - }, - { - "number": 225, - "type": 0, - "bbox": [ - 71.10009765625, - 624.1502075195312, - 417.400146484375, - 643.5502319335938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÒrÓZ×\u0016ÛcÜu×¢ÛZ×gØ8ÓcÔwÝ?Ø\u001fÕ/Þc×gÒ\u001dÛZ×gè\u001fÚ©ß", - "origin": [ - 71.10009765625, - 631.1502075195312 - ], - "bbox": [ - 71.10009765625, - 624.6502075195312, - 193.00006103515625, - 643.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10009765625, - 624.6502075195312, - 193.00006103515625, - 643.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0018", - "origin": [ - 202.3000946044922, - 631.1502075195312 - ], - "bbox": [ - 202.3000946044922, - 624.1502075195312, - 202.3000946044922, - 642.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"×gÑlÑ", - "origin": [ - 202.3000946044922, - 631.1502075195312 - ], - "bbox": [ - 202.3000946044922, - 624.6502075195312, - 217.90008544921875, - 643.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u0011\u0010", - "origin": [ - 217.90008544921875, - 631.1502075195312 - ], - "bbox": [ - 217.90008544921875, - 624.7501831054688, - 221.50009155273438, - 638.7501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "LÓ­ÛcÜu×QÝrÞG×gٗéWà»Üu×gØ ÔÖÛ\"Õ/Ý?Ù�×gÓ\u001bÛZÝ\u0014èu×QÛZ×QÞGÙ¥ÔÖØ+ÔÖÓZÛcÔÖÕ", - "origin": [ - 221.50009155273438, - 631.1502075195312 - ], - "bbox": [ - 221.50009155273438, - 624.6502075195312, - 417.400146484375, - 643.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.3000946044922, - 624.1502075195312, - 417.400146484375, - 643.5502319335938 - ] - } - ] - }, - { - "number": 227, - "type": 0, - "bbox": [ - 430.7001037597656, - 624.1502075195312, - 522.3001708984375, - 643.5502319335938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 430.7001037597656, - 631.1502075195312 - ], - "bbox": [ - 430.7001037597656, - 624.1502075195312, - 430.7001037597656, - 642.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÜ+ÔÖè8èu×gØ", - "origin": [ - 430.7001037597656, - 631.1502075195312 - ], - "bbox": [ - 430.7001037597656, - 624.6502075195312, - 461.20013427734375, - 643.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0015�\u0013\u0012", - "origin": [ - 461.20013427734375, - 631.1502075195312 - ], - "bbox": [ - 461.20013427734375, - 624.1502075195312, - 472.900146484375, - 642.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "·ã\u0018Ò\u001dÞGÔlÒ\u001dÚ+Ñw×gÓQò", - "origin": [ - 472.900146484375, - 631.1502075195312 - ], - "bbox": [ - 472.900146484375, - 624.6502075195312, - 522.3001708984375, - 643.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.7001037597656, - 624.1502075195312, - 522.3001708984375, - 643.5502319335938 - ] - } - ] - }, - { - "number": 229, - "type": 0, - "bbox": [ - 93.30008697509766, - 631.2501831054688, - 205.40008544921875, - 665.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×\u0016á4ÔÖØ8è8Ú+ÑÖÒrè�ÛZ×QÞGÙ", - "origin": [ - 93.30008697509766, - 644.1502075195312 - ], - "bbox": [ - 93.30008697509766, - 637.6502075195312, - 166.70008850097656, - 656.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.30008697509766, - 637.6502075195312, - 166.70008850097656, - 656.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 179.20008850097656, - 644.1502075195312 - ], - "bbox": [ - 179.20008850097656, - 637.6502075195312, - 182.3000946044922, - 656.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "5!", - "origin": [ - 182.3000946044922, - 644.1502075195312 - ], - "bbox": [ - 182.3000946044922, - 631.2501831054688, - 191.70008850097656, - 665.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½äyò", - "origin": [ - 191.70008850097656, - 644.1502075195312 - ], - "bbox": [ - 191.70008850097656, - 637.6502075195312, - 205.40008544921875, - 656.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 179.20008850097656, - 631.2501831054688, - 205.40008544921875, - 665.9501953125 - ] - } - ] - }, - { - "number": 231, - "type": 0, - "bbox": [ - 214.00009155273438, - 637.1502075195312, - 518.7000732421875, - 656.5502319335938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrð", - "origin": [ - 214.00009155273438, - 644.1502075195312 - ], - "bbox": [ - 214.00009155273438, - 637.6502075195312, - 219.40008544921875, - 656.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 219.40008544921875, - 644.1502075195312 - ], - "bbox": [ - 219.40008544921875, - 637.1502075195312, - 224.90008544921875, - 655.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ÔÖÙ�å+ÑlÔw×gÓ­ÒrØ\rÔÖØ©ÛZ×QÞc×gÓZÛcÔÖØuç", - "origin": [ - 224.90008544921875, - 644.1502075195312 - ], - "bbox": [ - 224.90008544921875, - 637.6502075195312, - 328.6000671386719, - 656.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u000b1=\"393\u0010", - "origin": [ - 328.6000671386719, - 644.1502075195312 - ], - "bbox": [ - 328.6000671386719, - 637.6502075195312, - 352.6000671386719, - 655.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.00009155273438, - 637.1502075195312, - 352.6000671386719, - 656.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ";�\"\u0018\u000e\u0011\"\u0018\u001e89\u000f\"c\u001c\u0013\u001e-1", - "origin": [ - 357.80010986328125, - 644.1502075195312 - ], - "bbox": [ - 357.80010986328125, - 637.6502075195312, - 408.800048828125, - 655.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.80010986328125, - 637.6502075195312, - 408.800048828125, - 655.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "9\u000f\u0010\u0013\u001e\u001f\u0014 )7\u001e\u001d\u001b\u001d\u0010\u0013\u001bX&BD", - "origin": [ - 418.10009765625, - 644.1502075195312 - ], - "bbox": [ - 418.10009765625, - 637.6502075195312, - 472.5000915527344, - 655.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 418.10009765625, - 637.6502075195312, - 472.5000915527344, - 655.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0010#93\u001c%D", - "origin": [ - 475.5000915527344, - 644.1502075195312 - ], - "bbox": [ - 475.5000915527344, - 637.6502075195312, - 490.2000732421875, - 655.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 475.5000915527344, - 637.6502075195312, - 490.2000732421875, - 655.5502319335938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": ")", - "origin": [ - 492.90008544921875, - 644.1502075195312 - ], - "bbox": [ - 492.90008544921875, - 637.6502075195312, - 492.90008544921875, - 655.5502319335938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "�", - "origin": [ - 492.90008544921875, - 644.1502075195312 - ], - "bbox": [ - 492.90008544921875, - 637.3502197265625, - 496.0000915527344, - 655.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "#\u001c%\u0014 )>\u0010\u0013\u001e", - "origin": [ - 496.0000915527344, - 644.1502075195312 - ], - "bbox": [ - 496.0000915527344, - 637.6502075195312, - 518.7000732421875, - 655.5502319335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.90008544921875, - 637.3502197265625, - 518.7000732421875, - 655.6502075195312 - ] - } - ] - }, - { - "number": 232, - "type": 0, - "bbox": [ - 71.7000732421875, - 650.5501708984375, - 356.10003662109375, - 669.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012(\"$9\u0018;X\u001c\u0013\u001e\u001d)�&\u000f\u0012", - "origin": [ - 71.7000732421875, - 657.0501708984375 - ], - "bbox": [ - 71.7000732421875, - 650.5501708984375, - 115.00008392333984, - 668.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014éyà»Ü8ÔÖÕ1ܖÕQÒrâ8ÓZ×gÓ»ÛcÜu׳èu×gÕQÒTߗÝræ·Ócå+Ò\u001dÛcÔÖÒrѰÓcâuå×QÞcåÝ?ÓcÔÖÛcÔwÝ?Ø8Ó", - "origin": [ - 115.00008392333984, - 657.0501708984375 - ], - "bbox": [ - 115.00008392333984, - 650.5501708984375, - 356.10003662109375, - 669.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.7000732421875, - 650.5501708984375, - 356.10003662109375, - 669.4501953125 - ] - } - ] - }, - { - "number": 234, - "type": 0, - "bbox": [ - 369.10009765625, - 650.0501708984375, - 488.7000732421875, - 669.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 369.10009765625, - 657.0501708984375 - ], - "bbox": [ - 369.10009765625, - 650.0501708984375, - 369.10009765625, - 668.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "GëWÕGÜuÞ\u0018ì", - "origin": [ - 369.10009765625, - 657.0501708984375 - ], - "bbox": [ - 369.10009765625, - 650.5501708984375, - 395.0000915527344, - 669.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 369.10009765625, - 650.0501708984375, - 395.0000915527344, - 669.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?è8ÔÖØuçr×QÞ\u0016ÕQÒ\u001dÛ»ÓZÛcÒ\u001dÛZ×gÓ", - "origin": [ - 394.2001037597656, - 657.0501708984375 - ], - "bbox": [ - 394.2001037597656, - 650.5501708984375, - 474.3000793457031, - 669.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�\u0013\u0012", - "origin": [ - 474.3000793457031, - 657.0501708984375 - ], - "bbox": [ - 474.3000793457031, - 650.0501708984375, - 484.2000732421875, - 668.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1ò", - "origin": [ - 484.2000732421875, - 657.0501708984375 - ], - "bbox": [ - 484.2000732421875, - 650.5501708984375, - 488.7000732421875, - 669.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 394.2001037597656, - 650.0501708984375, - 488.7000732421875, - 669.4501953125 - ] - } - ] - }, - { - "number": 236, - "type": 0, - "bbox": [ - 507.7001037597656, - 650.5501708984375, - 519.9000854492188, - 669.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÑw×", - "origin": [ - 507.7001037597656, - 657.0501708984375 - ], - "bbox": [ - 507.7001037597656, - 650.5501708984375, - 519.9000854492188, - 669.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.7001037597656, - 650.5501708984375, - 519.9000854492188, - 669.4501953125 - ] - } - ] - }, - { - "number": 237, - "type": 0, - "bbox": [ - 71.10009765625, - 658.3501586914062, - 515.9000854492188, - 693.0501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×^è+ÔÖÒ\u001dçrÝ?Ø8ÒrÑ8Ù¥Ò\u001dÛZÞ1Ô", - "origin": [ - 71.10009765625, - 671.2501831054688 - ], - "bbox": [ - 71.10009765625, - 664.7501831054688, - 155.50010681152344, - 683.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "+�", - "origin": [ - 155.50010681152344, - 671.2501831054688 - ], - "bbox": [ - 155.50010681152344, - 664.7501831054688, - 158.4001007080078, - 682.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&×gÑÖ×gÙ�×gتÛcÓ½Ýræ", - "origin": [ - 158.4001007080078, - 671.2501831054688 - ], - "bbox": [ - 158.4001007080078, - 664.7501831054688, - 216.70008850097656, - 683.6502075195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10009765625, - 664.7501831054688, - 216.70008850097656, - 683.6502075195312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�", - "origin": [ - 223.4001007080078, - 671.2501831054688 - ], - "bbox": [ - 223.4001007080078, - 658.3501586914062, - 223.4001007080078, - 693.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÒ\u001dÞc×»ØuÝrÛ½Ò", - "origin": [ - 223.4001007080078, - 671.2501831054688 - ], - "bbox": [ - 223.4001007080078, - 664.7501831054688, - 269.30010986328125, - 683.6502075195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 223.4001007080078, - 658.3501586914062, - 269.30010986328125, - 693.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 274.5000915527344, - 671.2501831054688 - ], - "bbox": [ - 274.5000915527344, - 664.2501831054688, - 274.5000915527344, - 682.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛZ×gèœÚ©ß&ÛcÜu×»á-ÔÖØ8èuÚ+ÑlÒrè³ÛZ×QÞGٖéªÛcÜu×^Ý", - "origin": [ - 274.5000915527344, - 671.2501831054688 - ], - "bbox": [ - 274.5000915527344, - 664.7501831054688, - 434.2001037597656, - 683.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 434.2001037597656, - 671.2501831054688 - ], - "bbox": [ - 434.2001037597656, - 664.2501831054688, - 439.5000915527344, - 682.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-�", - "origin": [ - 439.5000915527344, - 671.2501831054688 - ], - "bbox": [ - 439.5000915527344, - 664.7501831054688, - 445.90008544921875, - 682.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "sè8ÔÖÒ\u001dçrÝ?Ø+ÒrÑ+Ù¥Ò\u001dÛZÞGÔ", - "origin": [ - 445.90008544921875, - 671.2501831054688 - ], - "bbox": [ - 445.90008544921875, - 664.7501831054688, - 515.9000854492188, - 683.6502075195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.5000915527344, - 664.2501831054688, - 515.9000854492188, - 683.6502075195312 - ] - } - ] - }, - { - "number": 238, - "type": 0, - "bbox": [ - 71.10006713867188, - 677.7501831054688, - 142.80006408691406, - 696.6502075195312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÑw×gÙ¥×gتÛcÓ^è8×gÕQÒgß", - "origin": [ - 71.10006713867188, - 684.2501831054688 - ], - "bbox": [ - 71.10006713867188, - 677.7501831054688, - 136.4000701904297, - 696.6502075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "-\u0017", - "origin": [ - 136.4000701904297, - 684.2501831054688 - ], - "bbox": [ - 136.4000701904297, - 677.7501831054688, - 142.80006408691406, - 695.6502075195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10006713867188, - 677.7501831054688, - 142.80006408691406, - 696.6502075195312 - ] - } - ] - }, - { - "number": 240, - "type": 0, - "bbox": [ - 210.80006408691406, - 683.5501708984375, - 221.40005493164062, - 709.8502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 210.80006408691406, - 698.4501953125 - ], - "bbox": [ - 210.80006408691406, - 691.4501953125, - 210.80006408691406, - 709.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 210.80006408691406, - 698.4501953125 - ], - "bbox": [ - 210.80006408691406, - 683.5501708984375, - 214.20005798339844, - 708.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e3", - "origin": [ - 214.20005798339844, - 698.4501953125 - ], - "bbox": [ - 214.20005798339844, - 691.4501953125, - 221.40005493164062, - 709.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 210.80006408691406, - 683.5501708984375, - 221.40005493164062, - 709.8502197265625 - ] - } - ] - }, - { - "number": 242, - "type": 0, - "bbox": [ - 232.9000701904297, - 685.5501708984375, - 237.10006713867188, - 720.2501831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�\n�", - "origin": [ - 232.9000701904297, - 698.4501953125 - ], - "bbox": [ - 232.9000701904297, - 685.5501708984375, - 237.10006713867188, - 720.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 232.9000701904297, - 685.5501708984375, - 237.10006713867188, - 720.2501831054688 - ] - } - ] - }, - { - "number": 243, - "type": 0, - "bbox": [ - 241.30006408691406, - 691.9501953125, - 248.80006408691406, - 710.3502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0012\u00146", - "origin": [ - 241.30006408691406, - 698.9501953125 - ], - "bbox": [ - 241.30006408691406, - 691.9501953125, - 248.80006408691406, - 710.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.30006408691406, - 691.9501953125, - 248.80006408691406, - 710.3502197265625 - ] - } - ] - }, - { - "number": 244, - "type": 0, - "bbox": [ - 267.40008544921875, - 683.5501708984375, - 278.0000915527344, - 709.8502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000f", - "origin": [ - 267.40008544921875, - 698.4501953125 - ], - "bbox": [ - 267.40008544921875, - 691.4501953125, - 267.40008544921875, - 709.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001e\u001d", - "origin": [ - 267.40008544921875, - 698.4501953125 - ], - "bbox": [ - 267.40008544921875, - 683.5501708984375, - 270.8000793457031, - 708.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e3", - "origin": [ - 270.8000793457031, - 698.4501953125 - ], - "bbox": [ - 270.8000793457031, - 691.4501953125, - 278.0000915527344, - 709.8502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.40008544921875, - 683.5501708984375, - 278.0000915527344, - 709.8502197265625 - ] - } - ] - }, - { - "number": 247, - "type": 0, - "bbox": [ - 293.800048828125, - 691.9501953125, - 303.300048828125, - 711.3502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ü", - "origin": [ - 293.800048828125, - 698.9501953125 - ], - "bbox": [ - 293.800048828125, - 692.4501953125, - 293.800048828125, - 711.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0013\u0012", - "origin": [ - 293.800048828125, - 698.9501953125 - ], - "bbox": [ - 293.800048828125, - 691.9501953125, - 299.4000549316406, - 710.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¯×", - "origin": [ - 299.4000549316406, - 698.9501953125 - ], - "bbox": [ - 299.4000549316406, - 692.4501953125, - 303.300048828125, - 711.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.800048828125, - 691.9501953125, - 303.300048828125, - 711.3502197265625 - ] - } - ] - }, - { - "number": 253, - "type": 0, - "bbox": [ - 328.8000183105469, - 685.75, - 331.6000061035156, - 720.3500366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u000b", - "origin": [ - 328.8000183105469, - 692.1500244140625 - ], - "bbox": [ - 328.8000183105469, - 686.4500122070312, - 328.8000183105469, - 720.3500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u0013\u0012", - "origin": [ - 328.8000183105469, - 692.1500244140625 - ], - "bbox": [ - 328.8000183105469, - 685.75, - 331.6000061035156, - 699.75 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 328.8000183105469, - 685.75, - 331.6000061035156, - 720.3500366210938 - ] - } - ] - }, - { - "number": 261, - "type": 0, - "bbox": [ - 368.0000305175781, - 685.7499389648438, - 370.8000183105469, - 720.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "\u000b", - "origin": [ - 368.0000305175781, - 692.1499633789062 - ], - "bbox": [ - 368.0000305175781, - 686.449951171875, - 368.0000305175781, - 720.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u0013\u0014", - "origin": [ - 368.0000305175781, - 692.1499633789062 - ], - "bbox": [ - 368.0000305175781, - 685.7499389648438, - 370.8000183105469, - 699.7499389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 368.0000305175781, - 685.7499389648438, - 370.8000183105469, - 720.3499755859375 - ] - } - ] - }, - { - "number": 262, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 263, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 264, - "type": 0, - "bbox": [ - 509.60003662109375, - 691.949951171875, - 520.5000610351562, - 711.3499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ï\u0018ô", - "origin": [ - 509.60003662109375, - 698.949951171875 - ], - "bbox": [ - 509.60003662109375, - 692.449951171875, - 514.800048828125, - 711.3499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+\u0012", - "origin": [ - 514.800048828125, - 698.949951171875 - ], - "bbox": [ - 514.800048828125, - 691.949951171875, - 520.5000610351562, - 710.3499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.60003662109375, - 691.949951171875, - 520.5000610351562, - 711.3499755859375 - ] - } - ] - }, - { - "number": 265, - "type": 0, - "bbox": [ - 71.10003662109375, - 712.1499633789062, - 224.60000610351562, - 731.5499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»Ü8×QÞcלà\u001bחØu×Qç?Ñw×gÕ/ÛZ×gè\u0012ÛcÜ8×\u001f×", - "origin": [ - 71.10003662109375, - 719.1499633789062 - ], - "bbox": [ - 71.10003662109375, - 712.6499633789062, - 189.4000244140625, - 731.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 189.4000244140625, - 719.1499633789062 - ], - "bbox": [ - 189.4000244140625, - 712.1499633789062, - 194.1000213623047, - 730.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/Û�Ýræ", - "origin": [ - 194.1000213623047, - 719.1499633789062 - ], - "bbox": [ - 194.1000213623047, - 712.6499633789062, - 224.60000610351562, - 731.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 712.1499633789062, - 224.60000610351562, - 731.5499877929688 - ] - } - ] - }, - { - "number": 267, - "type": 0, - "bbox": [ - 243.20004272460938, - 712.6499633789062, - 522.2000732421875, - 731.5499877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "é­æ=ÝrÞ¥ÓcÔÖÙ�åyÑÖÔÖÕQÔwÛ¯ßréBà¢Ü8ÔÖÕGÜ", - "origin": [ - 243.20004272460938, - 719.1499633789062 - ], - "bbox": [ - 243.20004272460938, - 712.6499633789062, - 343.10003662109375, - 731.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 243.20004272460938, - 712.6499633789062, - 343.10003662109375, - 731.5499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÒrØ8ØuÝrÛ¥ÓcÛZÝrå", - "origin": [ - 353.7000427246094, - 719.1499633789062 - ], - "bbox": [ - 353.7000427246094, - 712.6499633789062, - 404.4000244140625, - 731.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.7000427246094, - 712.6499633789062, - 404.4000244140625, - 731.5499877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8×\rè8×gÕQÒgßrò", - "origin": [ - 415.0000305175781, - 719.1499633789062 - ], - "bbox": [ - 415.0000305175781, - 712.6499633789062, - 461.0, - 731.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u0016\u0015", - "origin": [ - 461.0, - 719.1499633789062 - ], - "bbox": [ - 461.0, - 712.7499389648438, - 471.70001220703125, - 726.7499389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¢ÑwÛcÔlÙ¥Ò\u001dÛZ×gÑwßré", - "origin": [ - 471.70001220703125, - 719.1499633789062 - ], - "bbox": [ - 471.70001220703125, - 712.6499633789062, - 522.2000732421875, - 731.5499877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 415.0000305175781, - 712.6499633789062, - 522.2000732421875, - 731.5499877929688 - ] - } - ] - }, - { - "number": 268, - "type": 0, - "bbox": [ - 71.20001220703125, - 719.1499633789062, - 519.0000610351562, - 753.8499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZåyÒrÕ/×QÛcÔÖÙ�×%è8ÔÖÓGÕ/Þc×QÛZ×gØu×gÓcÓNå+ÞcÝVè+â8Õ/×gÓ\u0010ÛcÜ8ÔÖÓNÙ�×gÕ1Ü8ÒrØ8ÔÖÓGÙ", - "origin": [ - 71.20001220703125, - 732.0499877929688 - ], - "bbox": [ - 71.20001220703125, - 725.5499877929688, - 291.70001220703125, - 744.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 725.5499877929688, - 291.70001220703125, - 744.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 304.10003662109375, - 732.0499877929688 - ], - "bbox": [ - 304.10003662109375, - 725.0499877929688, - 304.10003662109375, - 743.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œãWÔÖÒ\u0014ÛcÜu×%ÔÖØ8è+â8Õ/×gè", - "origin": [ - 304.10003662109375, - 732.0499877929688 - ], - "bbox": [ - 304.10003662109375, - 725.5499877929688, - 381.2000427246094, - 744.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.10003662109375, - 725.0499877929688, - 381.2000427246094, - 744.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u001f", - "origin": [ - 390.7000427246094, - 732.0499877929688 - ], - "bbox": [ - 390.7000427246094, - 719.1499633789062, - 390.7000427246094, - 753.8499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+â8Õ/Ûcâ8Ò\u001dÛcÔÖÝ?Ø8ÓNÔÖØ—ÔÖØ©ÛZ×QÞGÒrÕ/ÛcÔwÝ?Ø8Ógò", - "origin": [ - 390.7000427246094, - 732.0499877929688 - ], - "bbox": [ - 390.7000427246094, - 725.5499877929688, - 519.0000610351562, - 744.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.7000427246094, - 719.1499633789062, - 519.0000610351562, - 753.8499755859375 - ] - } - ] - }, - { - "number": 269, - "type": 0, - "bbox": [ - 85.60003662109375, - 738.0499877929688, - 519.1000366210938, - 773.25 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ëWÔÖØ8Õ/לÛcÜu×QÞc×\rÔÖÓ\u0014ØuÝ", - "origin": [ - 85.60003662109375, - 745.0499877929688 - ], - "bbox": [ - 85.60003662109375, - 738.5499877929688, - 161.60003662109375, - 757.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.60003662109375, - 738.5499877929688, - 161.60003662109375, - 757.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×QÝrÞcß7ßr×QÛ\u0014ÛZÝ\u000fÛZ×gÑÖÑ\u0010â8Ó&Ò\u001dڐÝ?âuÛ\u0019ÛcÜ8×\rÕ/ÝrÞGÞc×gÑÖÒ\u001dÛcÔwÝ?Ø", - "origin": [ - 171.60003662109375, - 745.0499877929688 - ], - "bbox": [ - 171.60003662109375, - 738.5499877929688, - 371.79998779296875, - 757.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 171.60003662109375, - 738.5499877929688, - 371.79998779296875, - 757.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ’â8Ø8Õ/ÛcÔwÝ?Ø", - "origin": [ - 382.4000244140625, - 745.0499877929688 - ], - "bbox": [ - 382.4000244140625, - 738.5499877929688, - 415.60003662109375, - 757.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 382.4000244140625, - 738.5499877929688, - 415.60003662109375, - 757.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "G", - "color": 0, - "ascender": 115.0, - "descender": -68.0, - "text": "\r", - "origin": [ - 426.3000183105469, - 745.0499877929688 - ], - "bbox": [ - 426.3000183105469, - 738.25, - 426.3000183105469, - 756.5499877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010.", - "origin": [ - 426.3000183105469, - 745.0499877929688 - ], - "bbox": [ - 426.3000183105469, - 738.0499877929688, - 432.3000183105469, - 756.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0018é­ÔwÛ\u0014Ù¥Ògß", - "origin": [ - 432.3000183105469, - 745.0499877929688 - ], - "bbox": [ - 432.3000183105469, - 738.5499877929688, - 470.70001220703125, - 757.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 426.3000183105469, - 738.0499877929688, - 470.70001220703125, - 757.4500122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ócâ", - "origin": [ - 481.3000183105469, - 745.0499877929688 - ], - "bbox": [ - 481.3000183105469, - 738.5499877929688, - 485.6000061035156, - 757.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 485.6000061035156, - 745.0499877929688 - ], - "bbox": [ - 485.6000061035156, - 739.3499755859375, - 491.6000061035156, - 773.25 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " Õ/×\u001fÛZÝ", - "origin": [ - 491.6000061035156, - 745.0499877929688 - ], - "bbox": [ - 491.6000061035156, - 738.5499877929688, - 519.1000366210938, - 757.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.3000183105469, - 738.5499877929688, - 519.1000366210938, - 773.25 - ] - } - ] - }, - { - "number": 270, - "type": 0, - "bbox": [ - 71.10000610351562, - 751.0499877929688, - 519.8999633789062, - 770.4500122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "åÝ?ÔÖØ©Û\u0010Ý?âuÛNÛcÜ8Ò\u001dÛ»Õ/Ý?Ø8ÓGÔÖèu×QÞGÒ\u001dÛcÔwÝ?Ø+Ó\"Ýræ¡ÓZÛZÝWÕGÜ+ÒrÓZÛcÔÖÕ;×", - "origin": [ - 71.10000610351562, - 758.0499877929688 - ], - "bbox": [ - 71.10000610351562, - 751.5499877929688, - 276.29998779296875, - 770.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 276.29998779296875, - 758.0499877929688 - ], - "bbox": [ - 276.29998779296875, - 751.0499877929688, - 281.0, - 769.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛcÓ^Ý?ؖäVâ8ÒrØ©Ûcâ8ÙöÙ�×gÕ1Ü8ÒrØ8ÔÖÕQÓ", - "origin": [ - 281.0, - 758.0499877929688 - ], - "bbox": [ - 281.0, - 751.5499877929688, - 414.3999938964844, - 770.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\f\u001e", - "origin": [ - 414.3999938964844, - 758.0499877929688 - ], - "bbox": [ - 414.3999938964844, - 751.0499877929688, - 422.0, - 769.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÒrÓ^ÔwÛ^ÔÖÓ", - "origin": [ - 422.0, - 758.0499877929688 - ], - "bbox": [ - 422.0, - 751.5499877929688, - 458.79998779296875, - 770.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0014\u001e", - "origin": [ - 458.79998779296875, - 758.0499877929688 - ], - "bbox": [ - 458.79998779296875, - 751.0499877929688, - 466.29998779296875, - 769.4500122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œÜ8ÒTãr×\u0019äVâ8ÔwÛZ×", - "origin": [ - 466.29998779296875, - 758.0499877929688 - ], - "bbox": [ - 466.29998779296875, - 751.5499877929688, - 519.8999633789062, - 770.4500122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 751.0499877929688, - 519.8999633789062, - 770.4500122070312 - ] - } - ] - }, - { - "number": 271, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ] - }, - { - "number": 272, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ] - }, - { - "number": 273, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "7", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 271, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "tag": "header" - }, - { - "number": 272, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "tag": "header" - }, - { - "number": 273, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "7", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 7, - "page_size": [ - 595.5, - 842.25 - ] - }, - "page_8": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 71.19999694824219, - 109.54998779296875, - 436.5998229980469, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u0019Ü8ÔÖÓZÛZÝrÞcßréVÓZ×Q×réWæ™ÝrÞ\"×", - "origin": [ - 71.19999694824219, - 116.04998779296875 - ], - "bbox": [ - 71.19999694824219, - 109.54998779296875, - 154.8999786376953, - 128.44998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 154.8999786376953, - 116.04998779296875 - ], - "bbox": [ - 154.8999786376953, - 109.54998779296875, - 159.5999755859375, - 127.44998931884766 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÒrÙ¥å+Ñw×réWý^×Qæ’ÓQò6í¸îg÷WéîgøVéuïrúWéVïrû\u0018ñÒrØ8è¥ÛcÜ8×¢ÑÖÔwÛZ×QÞ1Ò\u001dÛcâuÞc×»ÕQÔwÛZ×gèœÛcÜu×QÞc×rò", - "origin": [ - 159.5999755859375, - 116.04998779296875 - ], - "bbox": [ - 159.5999755859375, - 109.54998779296875, - 436.5998229980469, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19999694824219, - 109.54998779296875, - 436.5998229980469, - 128.44998168945312 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 451.9000244140625, - 109.54998779296875, - 519.1000366210938, - 128.44998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8ÔÖÓ­ÔÖÓ½Þc×gÑÖÒ\u001dÛZ×gèœÛZÝ", - "origin": [ - 451.9000244140625, - 116.04998779296875 - ], - "bbox": [ - 451.9000244140625, - 109.54998779296875, - 519.1000366210938, - 128.44998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 451.9000244140625, - 109.54998779296875, - 519.1000366210938, - 128.44998168945312 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 71.20001220703125, - 122.45001220703125, - 521.7000122070312, - 141.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÛZÛZ×gÙ�å+ÛcÓ^ÛZÝ¥ÓZÝ?Ñwãr׳ÛcÜu×%Ù�×gÒrÓcâuÞG×gÙ�×gتۻå8ÞcÝrÚ+Ñw×gÙ", - "origin": [ - 71.20001220703125, - 128.95001220703125 - ], - "bbox": [ - 71.20001220703125, - 122.45001220703125, - 272.3000183105469, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 122.45001220703125, - 272.3000183105469, - 141.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8è\rÛZݜÒrÕQÕ/Ý?â8تۢæ™ÝrÞ»ÛcÜu×%Ò\u001då8å+Ò\u001dÞc×gØ©Û^Ò\u001dÚ+ÓZ×gØ+Õ/×%ÝræBÓcå+Ò\u001dÛcÔÖÒrÑ", - "origin": [ - 284.8000183105469, - 128.95001220703125 - ], - "bbox": [ - 284.8000183105469, - 122.45001220703125, - 521.7000122070312, - 141.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 284.8000183105469, - 122.45001220703125, - 521.7000122070312, - 141.35000610351562 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 71.20001220703125, - 135.45001220703125, - 519.1000366210938, - 154.35000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ócâ8å6×QÞGå6Ý?ÓGÔwÛcÔwÝ?Ø", - "origin": [ - 71.20001220703125, - 141.95001220703125 - ], - "bbox": [ - 71.20001220703125, - 135.45001220703125, - 129.30003356933594, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 135.45001220703125, - 129.30003356933594, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛcÒ\u001dÛZ×gÓ Ýræ¢Ù¥ÒrÕ/ÞGÝ?ÓcÕ/Ýrå+ÔÖÕ\rÝrÚ", - "origin": [ - 139.60000610351562, - 141.95001220703125 - ], - "bbox": [ - 139.60000610351562, - 135.45001220703125, - 252.8999786376953, - 154.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 252.8999786376953, - 141.95001220703125 - ], - "bbox": [ - 252.8999786376953, - 135.45001220703125, - 258.79998779296875, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcӖížð\u001dü8é­ðWî/ñJò", - "origin": [ - 258.79998779296875, - 141.95001220703125 - ], - "bbox": [ - 258.79998779296875, - 135.45001220703125, - 322.0, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.60000610351562, - 135.45001220703125, - 322.0, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑlÓZÝ�ä©â8ÒrØ©Ûcâ8Ù", - "origin": [ - 340.70001220703125, - 141.95001220703125 - ], - "bbox": [ - 340.70001220703125, - 135.45001220703125, - 391.6000671386719, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.70001220703125, - 135.45001220703125, - 391.6000671386719, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çrÞGÒTãVÔÖÛsß\u000bÔÖÓ\u0014Õ/Ý?Ø", - "origin": [ - 405.3000183105469, - 141.95001220703125 - ], - "bbox": [ - 405.3000183105469, - 135.45001220703125, - 465.70001220703125, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 405.3000183105469, - 135.45001220703125, - 465.70001220703125, - 154.35000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 470.9000244140625, - 141.95001220703125 - ], - "bbox": [ - 470.9000244140625, - 135.45001220703125, - 470.9000244140625, - 153.35000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "P×gÕ/Ûcâ8Þc×gè\u000bÛZÝ", - "origin": [ - 470.9000244140625, - 141.95001220703125 - ], - "bbox": [ - 470.9000244140625, - 135.45001220703125, - 519.1000366210938, - 154.35000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 470.9000244140625, - 135.45001220703125, - 519.1000366210938, - 154.35000610351562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 71.20001220703125, - 147.85003662109375, - 519.7999877929688, - 167.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ñw×gÒrè7ÛZݵÕ1Ü8Ò\u001dÞGÒrÕ/ÛZ×QÞGÔÖÓcÛcÔÖ՜ÓcÛZÝVÕ1Ü8ÒrÓZÛcÔÖÕ ×", - "origin": [ - 71.20001220703125, - 154.85003662109375 - ], - "bbox": [ - 71.20001220703125, - 148.35003662109375, - 228.00003051757812, - 167.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 228.00003051757812, - 154.85003662109375 - ], - "bbox": [ - 228.00003051757812, - 147.85003662109375, - 232.7000274658203, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6×gÕ/ÛcӗížðrïWé·ðrðWéBð\u0018ôrñJò", - "origin": [ - 232.7000274658203, - 154.85003662109375 - ], - "bbox": [ - 232.7000274658203, - 148.35003662109375, - 316.0, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 147.85003662109375, - 316.0, - 167.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 325.60003662109375, - 154.85003662109375 - ], - "bbox": [ - 325.60003662109375, - 147.85003662109375, - 325.60003662109375, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "PØ", - "origin": [ - 325.60003662109375, - 154.85003662109375 - ], - "bbox": [ - 325.60003662109375, - 148.35003662109375, - 329.7000427246094, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 325.60003662109375, - 147.85003662109375, - 329.7000427246094, - 167.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ+ÔÖÓ%Õ/Ý?Ø©ÛZ×", - "origin": [ - 340.0000305175781, - 154.85003662109375 - ], - "bbox": [ - 340.0000305175781, - 148.35003662109375, - 382.2000732421875, - 167.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 382.2000732421875, - 154.85003662109375 - ], - "bbox": [ - 382.2000732421875, - 148.35003662109375, - 386.90008544921875, - 166.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VÛQé­ã\u001dÒ\u001dÞGÔwÝ?â+Ó;å8ÞcÝråÝ?ÓcÒrÑÖÓ%æ™ÝrÞ&ÛcÜu×", - "origin": [ - 386.90008544921875, - 154.85003662109375 - ], - "bbox": [ - 386.90008544921875, - 148.35003662109375, - 519.7999877929688, - 167.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.0000305175781, - 148.35003662109375, - 519.7999877929688, - 167.25003051757812 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 71.20001220703125, - 161.35003662109375, - 234.20001220703125, - 180.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrØ8ÒrÑÖÝrç?âuלÝræ»Ý?âuÞ&á-ÔÖØ8èuÚyÑÖÒrè�Ýrå×QÞGÒ\u001dÛZÝrÞ", - "origin": [ - 71.20001220703125, - 167.85003662109375 - ], - "bbox": [ - 71.20001220703125, - 161.35003662109375, - 234.20001220703125, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 161.35003662109375, - 234.20001220703125, - 180.25003051757812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 253.9000244140625, - 154.95004272460938, - 281.10003662109375, - 189.65003967285156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ", - "origin": [ - 253.9000244140625, - 167.85003662109375 - ], - "bbox": [ - 253.9000244140625, - 161.35003662109375, - 257.0000305175781, - 180.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "-!", - "origin": [ - 257.0000305175781, - 167.85003662109375 - ], - "bbox": [ - 257.0000305175781, - 154.95004272460938, - 267.4000244140625, - 189.65003967285156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"ä+ò", - "origin": [ - 267.4000244140625, - 167.85003662109375 - ], - "bbox": [ - 267.4000244140625, - 161.35003662109375, - 281.10003662109375, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.9000244140625, - 154.95004272460938, - 281.10003662109375, - 189.65003967285156 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 289.7000427246094, - 160.85003662109375, - 519.2000122070312, - 180.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ïrð", - "origin": [ - 289.7000427246094, - 167.85003662109375 - ], - "bbox": [ - 289.7000427246094, - 161.35003662109375, - 295.10003662109375, - 180.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011\u0012", - "origin": [ - 295.10003662109375, - 167.85003662109375 - ], - "bbox": [ - 295.10003662109375, - 160.85003662109375, - 300.60003662109375, - 179.25003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&Ü8ÒTãr×\rÚ6×Q×gØ", - "origin": [ - 300.60003662109375, - 167.85003662109375 - ], - "bbox": [ - 300.60003662109375, - 161.35003662109375, - 351.5, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.7000427246094, - 160.85003662109375, - 351.5, - 180.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥Òrèu×\rÒrÓ&à\"×gÑlÑ\"ÒrØ8è", - "origin": [ - 362.10003662109375, - 167.85003662109375 - ], - "bbox": [ - 362.10003662109375, - 161.35003662109375, - 440.9000244140625, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 362.10003662109375, - 161.35003662109375, - 440.9000244140625, - 180.25003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔwÛ\u0014Ü8ÒrÓ&ÓcÔÖÙ¥ÔÖÑlÒ\u001dÞGÑwß", - "origin": [ - 451.5000305175781, - 167.85003662109375 - ], - "bbox": [ - 451.5000305175781, - 161.35003662109375, - 519.2000122070312, - 180.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 451.5000305175781, - 161.35003662109375, - 519.2000122070312, - 180.25003051757812 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 71.10003662109375, - 174.35003662109375, - 397.29998779296875, - 193.25003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×Q×gؗÕ/Ý?Ø8ÕQÑÖâ+èu×gè\rÛcÜ8Ò\u001dÛ»ÓZåyÒ\u001dÛcÔÖÒrѬÓcâuå×QÞcåÝ?ÓcÔÖÛcÔwÝ?؜ÓcÛcÒ\u001dÛZ×gÓ»èu×gÕ/Ý?Üu×QÞG׳ÒrØ8è–èu×gÕQÒTßrò", - "origin": [ - 71.10003662109375, - 180.85003662109375 - ], - "bbox": [ - 71.10003662109375, - 174.35003662109375, - 397.29998779296875, - 193.25003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10003662109375, - 174.35003662109375, - 397.29998779296875, - 193.25003051757812 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 96.50003051757812, - 187.1500244140625, - 521.5999755859375, - 206.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü+ÔÖÑwסÛcÜu×gÓZ×\"ÔÖÓcÓcâu×gÓ4Ò\u001dÞc×\"ØuÝrÛ-ÓZ×QÛZÛcÑw×gè°é\u001dÝ?âuÞBÜu×gâuÞGÔÖÓcÛcÔÖÕ·Ò\u001dÞcç?â8Ù�×gØ©ÛcÓ4Ócâ8çrçr×gÓZÛ4ÛcÜ8Ò\u001dÛBÔwæuä©â+ÒrتÛcâ8ٟÙ�×gÕGÜ8ÒrØ+ÔÖÕQÒrÑ", - "origin": [ - 96.50003051757812, - 193.6500244140625 - ], - "bbox": [ - 96.50003051757812, - 187.1500244140625, - 521.5999755859375, - 206.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.50003051757812, - 187.1500244140625, - 521.5999755859375, - 206.05001831054688 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 71.10002899169922, - 200.1500244140625, - 518.7000122070312, - 219.05001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×gÜ8ÒTãVÔwÝ?â8Þ\u0019ÔÖØ8è8×Q×gè", - "origin": [ - 71.10002899169922, - 206.6500244140625 - ], - "bbox": [ - 71.10002899169922, - 200.1500244140625, - 147.7000274658203, - 219.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10002899169922, - 200.1500244140625, - 147.7000274658203, - 219.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÙ�×QÞcçr×gÓ\u0014èußWØ8ÒrÙ¥ÔlÕQÒrÑÖÑwßréBÛcÜu×gØ7ÛcÜ8× Þc×gÓZÝ?ÑlâuÛcÔwÝ?Ø", - "origin": [ - 158.00003051757812, - 206.6500244140625 - ], - "bbox": [ - 158.00003051757812, - 200.1500244140625, - 350.6999816894531, - 219.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.00003051757812, - 200.1500244140625, - 350.6999816894531, - 219.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ»ÛcÜu×\u001fÙ¥×gÒrÓcâuÞc×gÙ�×gØ©Û&å8ÞcÝrÚ+Ñw×gÙ", - "origin": [ - 361.0000305175781, - 206.6500244140625 - ], - "bbox": [ - 361.0000305175781, - 200.1500244140625, - 491.2999572753906, - 219.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 361.0000305175781, - 200.1500244140625, - 491.2999572753906, - 219.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥Ògß", - "origin": [ - 504.70001220703125, - 206.6500244140625 - ], - "bbox": [ - 504.70001220703125, - 200.1500244140625, - 518.7000122070312, - 219.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 504.70001220703125, - 200.1500244140625, - 518.7000122070312, - 219.05001831054688 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 71.10000610351562, - 212.550048828125, - 157.20001220703125, - 231.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×;ÑÖÔÖØ", - "origin": [ - 71.10000610351562, - 219.550048828125 - ], - "bbox": [ - 71.10000610351562, - 213.050048828125, - 92.20000457763672, - 231.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0010�", - "origin": [ - 92.20000457763672, - 219.550048828125 - ], - "bbox": [ - 92.20000457763672, - 212.550048828125, - 98.20000457763672, - 230.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×gè\u001fÛZÝ�ÛcÜ8ÔlÓQò", - "origin": [ - 98.20000457763672, - 219.550048828125 - ], - "bbox": [ - 98.20000457763672, - 213.050048828125, - 149.50001525878906, - 231.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�", - "origin": [ - 149.50001525878906, - 219.550048828125 - ], - "bbox": [ - 149.50001525878906, - 216.8500518798828, - 157.20001220703125, - 228.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 212.550048828125, - 157.20001220703125, - 231.95004272460938 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 167.1000213623047, - 213.050048828125, - 518.699951171875, - 231.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gäVâ8ÒrØ©Ûcâ8Ù", - "origin": [ - 167.1000213623047, - 219.550048828125 - ], - "bbox": [ - 167.1000213623047, - 213.050048828125, - 209.7000274658203, - 231.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.1000213623047, - 213.050048828125, - 209.7000274658203, - 231.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "H", - "color": 0, - "ascender": 76.0, - "descender": -64.0, - "text": "\u0010", - "origin": [ - 219.30001831054688, - 219.550048828125 - ], - "bbox": [ - 219.30001831054688, - 213.15005493164062, - 219.30001831054688, - 227.15005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uèußWØ8ÒrÙ¥ÔÖÕQÓNÙ Ògß\rÒrÕQÕ/Ý?â8تۢæ™ÝrÞ^ÒrؖÝrÚ", - "origin": [ - 219.30001831054688, - 219.550048828125 - ], - "bbox": [ - 219.30001831054688, - 213.050048828125, - 374.3999938964844, - 231.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 374.3999938964844, - 219.550048828125 - ], - "bbox": [ - 374.3999938964844, - 213.050048828125, - 380.29998779296875, - 230.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "P×gÕ/ÛcÔÖãr׳ÓZ×gÑw×gÕ/ÛcÔwÝ?ؗ٥×gÕGÜ8ÒrØ8ÔlÓcÙöÔÖØ", - "origin": [ - 380.29998779296875, - 219.550048828125 - ], - "bbox": [ - 380.29998779296875, - 213.050048828125, - 518.699951171875, - 231.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.30001831054688, - 213.050048828125, - 518.699951171875, - 231.95004272460938 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 71.20001220703125, - 226.050048828125, - 449.5000305175781, - 244.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrÕQÕ/ÝrÞGè+ÒrØ8Õ/×%à»ÔwÛcܖÛcÜu×;ÝrÚ+ÓZ×QÞcãr×gè!à\u001bÒTãr׳æ’â8Ø8Õ/ÛcÔwÝ?ؗÕ/Ý?ÑlÑÖÒ\u001då+ÓZ×%ÔÖØ—Ù¥×gÒrÓcâuÞc×gÙ�×gØ©Û^Ý?âuÛcÕ/Ý?Ù¥×gÓQò", - "origin": [ - 71.20001220703125, - 232.550048828125 - ], - "bbox": [ - 71.20001220703125, - 226.050048828125, - 449.5000305175781, - 244.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.20001220703125, - 226.050048828125, - 449.5000305175781, - 244.95004272460938 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 85.60001373291016, - 232.55007934570312, - 425.4000244140625, - 267.25006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "E", - "origin": [ - 85.60001373291016, - 245.4500732421875 - ], - "bbox": [ - 85.60001373291016, - 232.55007934570312, - 85.60001373291016, - 267.25006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016×gØu×QÞGÒrÑlÑwßré á4ÔlØ8èuÚ+ÑÖÒrè", - "origin": [ - 85.60001373291016, - 245.4500732421875 - ], - "bbox": [ - 85.60001373291016, - 238.9500732421875, - 176.9000244140625, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.60001373291016, - 232.55007934570312, - 176.9000244140625, - 267.25006103515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥ÒrÓcÛZ×QÞ¾×gäVâ8Ò\u001dÛcÔwÝ?Ø8Ó7å8Þc×gÓZ×gØ©Û7Ò", - "origin": [ - 188.80001831054688, - 245.4500732421875 - ], - "bbox": [ - 188.80001831054688, - 238.9500732421875, - 319.0000305175781, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.80001831054688, - 238.9500732421875, - 319.0000305175781, - 257.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒ\u001dÞcçr×", - "origin": [ - 330.70001220703125, - 245.4500732421875 - ], - "bbox": [ - 330.70001220703125, - 238.9500732421875, - 348.79998779296875, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 330.70001220703125, - 238.9500732421875, - 348.79998779296875, - 257.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÑÖÒrÓGÓ", - "origin": [ - 359.8000183105469, - 245.4500732421875 - ], - "bbox": [ - 359.8000183105469, - 238.9500732421875, - 377.5, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 359.8000183105469, - 238.9500732421875, - 377.5, - 257.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ–ÑÖÔÖØ8×gÒ\u001dÞ", - "origin": [ - 387.8000183105469, - 245.4500732421875 - ], - "bbox": [ - 387.8000183105469, - 238.9500732421875, - 425.4000244140625, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 387.8000183105469, - 238.9500732421875, - 425.4000244140625, - 257.8500671386719 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 445.6000061035156, - 238.4500732421875, - 520.2999877929688, - 257.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u001dÞ", - "origin": [ - 445.6000061035156, - 245.4500732421875 - ], - "bbox": [ - 445.6000061035156, - 238.9500732421875, - 450.8999938964844, - 257.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 450.8999938964844, - 245.4500732421875 - ], - "bbox": [ - 450.8999938964844, - 238.4500732421875, - 455.1999816894531, - 256.8500671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝaãVÔlÒrØ", - "origin": [ - 455.1999816894531, - 245.4500732421875 - ], - "bbox": [ - 455.1999816894531, - 238.9500732421875, - 480.0999755859375, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.6000061035156, - 238.4500732421875, - 480.0999755859375, - 257.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù ÒrÓZÛZ×QÞ", - "origin": [ - 492.5, - 245.4500732421875 - ], - "bbox": [ - 492.5, - 238.9500732421875, - 520.2999877929688, - 257.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.5, - 238.9500732421875, - 520.2999877929688, - 257.8500671386719 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 71.10000610351562, - 251.9500732421875, - 518.7000122070312, - 270.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gäVâ8Ò\u001dÛcÔwÝ?Ø8Ógé\u0016à¢Ü8ÔÖÕGܟÒ\u001dÞc×¾â8ÓGâ8ÒrÑÖÑwßÍèu×QÞGÔwãr×gè", - "origin": [ - 71.10000610351562, - 258.4500732421875 - ], - "bbox": [ - 71.10000610351562, - 251.9500732421875, - 246.4000244140625, - 270.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.10000610351562, - 251.9500732421875, - 246.4000244140625, - 270.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ\u001eèu×gÓcÕ/ÞGÔwڐ×�Ýrå×gØ", - "origin": [ - 257.79998779296875, - 258.4500732421875 - ], - "bbox": [ - 257.79998779296875, - 251.9500732421875, - 333.8999938964844, - 270.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 257.79998779296875, - 251.9500732421875, - 333.8999938964844, - 270.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "äVâ8ÒrØ©Ûcâ8Ù�ÓZßWÓZÛZ×gÙ¥Ó!ÛcÜ8Ò\u001dÛµÔlتÛZ×QÞGÒrÕ/Û!à»ÔwÛcÜ", - "origin": [ - 345.3999938964844, - 258.4500732421875 - ], - "bbox": [ - 345.3999938964844, - 251.9500732421875, - 518.7000122070312, - 270.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 345.3999938964844, - 251.9500732421875, - 518.7000122070312, - 270.8500671386719 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 71.0999755859375, - 264.9500732421875, - 520.3999633789062, - 283.8500671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å+Ò\u001dÞGÛcÔÖÕQâ8ÑÖÒ\u001dޜ×gتãWÔwÞcÝ?Ø8Ù¥×gتÛcÓ\u000fížï\u0018ô8éNðr÷Wé\u0010ðrø\u001dñJò", - "origin": [ - 71.0999755859375, - 271.4500732421875 - ], - "bbox": [ - 71.0999755859375, - 264.9500732421875, - 247.19998168945312, - 283.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.0999755859375, - 264.9500732421875, - 247.19998168945312, - 283.8500671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ê¢×QÞc×\u000fÓZå+ÒrÕ/×QÛcÔÖÙ�×�ÔwÛcÓc×gÑwæ“æ™ÝrÞGÙ Ó ÛcÜu×\u000fâ8Ø8ÔÖãr×QÞGÓcÒrÑ^×gØ©ãWÔwÞcÝ?Ø8Ù�×gØ©Û", - "origin": [ - 259.0, - 271.4500732421875 - ], - "bbox": [ - 259.0, - 264.9500732421875, - 520.3999633789062, - 283.8500671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 259.0, - 264.9500732421875, - 520.3999633789062, - 283.8500671386719 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 71.09999084472656, - 277.35009765625, - 243.69996643066406, - 296.7500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜ8Ò\u001dÛ", - "origin": [ - 71.09999084472656, - 284.35009765625 - ], - "bbox": [ - 71.09999084472656, - 277.85009765625, - 86.79999542236328, - 296.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09999084472656, - 277.85009765625, - 86.79999542236328, - 296.7500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 96.09999084472656, - 284.35009765625 - ], - "bbox": [ - 96.09999084472656, - 277.35009765625, - 96.09999084472656, - 295.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÙ�×gÒrÓcâuÞc×gÓ", - "origin": [ - 96.09999084472656, - 284.35009765625 - ], - "bbox": [ - 96.09999084472656, - 277.85009765625, - 139.09999084472656, - 296.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 139.09999084472656, - 284.35009765625 - ], - "bbox": [ - 139.09999084472656, - 277.35009765625, - 143.49998474121094, - 295.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥ÒrÑÖѐå+Ü©ßVÓGÔÖÕQÒrѐÝrÚ", - "origin": [ - 143.49998474121094, - 284.35009765625 - ], - "bbox": [ - 143.49998474121094, - 277.85009765625, - 214.8999786376953, - 296.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 214.8999786376953, - 284.35009765625 - ], - "bbox": [ - 214.8999786376953, - 277.85009765625, - 220.7999725341797, - 295.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Z×gÕ/ÛcÓQò", - "origin": [ - 220.7999725341797, - 284.35009765625 - ], - "bbox": [ - 220.7999725341797, - 277.85009765625, - 243.69996643066406, - 296.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.09999084472656, - 277.35009765625, - 243.69996643066406, - 296.7500915527344 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 95.49998474121094, - 290.85009765625, - 522.2000122070312, - 309.7500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×NÜ8Ògãr×Nèu×QÞGÔÖãr×gè³ÛcÜ8ÔlÓ", - "origin": [ - 95.49998474121094, - 297.35009765625 - ], - "bbox": [ - 95.49998474121094, - 290.85009765625, - 178.3000030517578, - 309.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.49998474121094, - 290.85009765625, - 178.3000030517578, - 309.7500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "S#\u001bb\u001c%\u001e\u001f\u0014 \u001b�\u0012", - "origin": [ - 185.89999389648438, - 297.35009765625 - ], - "bbox": [ - 185.89999389648438, - 290.85009765625, - 217.7999725341797, - 308.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 185.89999389648438, - 290.85009765625, - 217.7999725341797, - 308.7500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012(\"$9�;�\u001c\u0013\u001e\u001d)>93\u001c\u0013D\u001d\u0012^\u001c", - "origin": [ - 229.89999389648438, - 297.35009765625 - ], - "bbox": [ - 229.89999389648438, - 290.85009765625, - 293.8999938964844, - 308.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.89999389648438, - 290.85009765625, - 293.8999938964844, - 308.7500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&�\u0014.\"�\u000e", - "origin": [ - 299.1000061035156, - 297.35009765625 - ], - "bbox": [ - 299.1000061035156, - 290.85009765625, - 312.3000183105469, - 308.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 299.1000061035156, - 290.85009765625, - 312.3000183105469, - 308.7500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"3S\u0018\u001b\u001d\u001c%\u0014 )>\u0010\u0013\u001e", - "origin": [ - 320.3999938964844, - 297.35009765625 - ], - "bbox": [ - 320.3999938964844, - 290.85009765625, - 353.4999694824219, - 308.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8érڐ×Qç?ÔÖØ8Ø8ÔlØuç^à»ÔwÛcÜ", - "origin": [ - 353.4999694824219, - 297.35009765625 - ], - "bbox": [ - 353.4999694824219, - 290.85009765625, - 429.4999694824219, - 309.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "U9\u0018D", - "origin": [ - 429.4999694824219, - 297.35009765625 - ], - "bbox": [ - 429.4999694824219, - 290.85009765625, - 443.7999572753906, - 308.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.3999938964844, - 290.85009765625, - 443.7999572753906, - 309.7500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f&\u000f)>93\u001c\u0013D�&�\u0014\u0016\u001c%\u0014 )P&�\u0014 ) 9\u000f\u001c\u0013D", - "origin": [ - 452.0, - 297.35009765625 - ], - "bbox": [ - 452.0, - 290.85009765625, - 522.2000122070312, - 308.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.0, - 290.85009765625, - 522.2000122070312, - 308.7500915527344 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 71.69998168945312, - 303.7501220703125, - 520.3999633789062, - 322.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012(\"$9\u0018;X\u001c\u0013\u001e\u001d)>9�&", - "origin": [ - 71.69998168945312, - 310.2501220703125 - ], - "bbox": [ - 71.69998168945312, - 303.7501220703125, - 115.49998474121094, - 321.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eé­ÚVß", - "origin": [ - 115.49998474121094, - 310.2501220703125 - ], - "bbox": [ - 115.49998474121094, - 303.7501220703125, - 133.19998168945312, - 322.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69998168945312, - 303.7501220703125, - 133.19998168945312, - 322.6501159667969 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ8Õ/ÝrÞcåÝrÞGÒ\u001dÛcÔÖØ8ç!ÓZ×Qãr×QÞGÒrÑNÒrÓcÓGâ8Ù�å8ÛcÔwÝ?Ø+Ó³Ò\u001dڐÝ?âuÛ³ÛcÜ8×\u001fÒ\u001dÛZÝ?Ù¥ÔlÓZÛcÔÖÕ\u001fØ8Ò\u001dÛcâuÞc×\u001fÝræ»ÓZå+ÒrÕ/×QÛcÔlÙ�×ré­ÒrÓ", - "origin": [ - 143.49998474121094, - 310.2501220703125 - ], - "bbox": [ - 143.49998474121094, - 303.7501220703125, - 520.3999633789062, - 322.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 143.49998474121094, - 303.7501220703125, - 520.3999633789062, - 322.6501159667969 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 71.09998321533203, - 316.7501220703125, - 314.7999572753906, - 335.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u001b×gÑÖѰÒrÓ»Ò\u001dڐÝ?âuÛNÛcÜ8×%Ø8Ò\u001dÛcâuÞc×;Ýræ·æ=ÝrÞGÕ/×gÓ»ÒrÕ/ÛcÔÖØ8ç�Ý?Ø!Ù¥Ò\u001dÛZÛZ×QÞgò", - "origin": [ - 71.09998321533203, - 323.2501220703125 - ], - "bbox": [ - 71.09998321533203, - 316.7501220703125, - 314.7999572753906, - 335.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09998321533203, - 316.7501220703125, - 314.7999572753906, - 335.6501159667969 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 71.19998168945312, - 345.2501220703125, - 86.89998626708984, - 364.1501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�", - "origin": [ - 71.19998168945312, - 351.7501220703125 - ], - "bbox": [ - 71.19998168945312, - 349.05010986328125, - 71.19998168945312, - 361.1501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4Ã", - "origin": [ - 71.19998168945312, - 351.7501220703125 - ], - "bbox": [ - 71.19998168945312, - 345.2501220703125, - 77.99998474121094, - 364.1501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�", - "origin": [ - 77.99998474121094, - 351.7501220703125 - ], - "bbox": [ - 77.99998474121094, - 349.05010986328125, - 86.89998626708984, - 361.1501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 345.2501220703125, - 86.89998626708984, - 364.1501159667969 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 95.59998321533203, - 344.95013427734375, - 114.39998626708984, - 363.8501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "3y*-Ϫ:", - "origin": [ - 95.59998321533203, - 351.45013427734375 - ], - "bbox": [ - 95.59998321533203, - 344.95013427734375, - 114.39998626708984, - 363.8501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.59998321533203, - 344.95013427734375, - 114.39998626708984, - 363.8501281738281 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 124.69998931884766, - 344.95013427734375, - 146.29998779296875, - 363.8501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",a˙36*4,", - "origin": [ - 124.69998931884766, - 351.45013427734375 - ], - "bbox": [ - 124.69998931884766, - 344.95013427734375, - 146.29998779296875, - 363.8501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.69998931884766, - 344.95013427734375, - 146.29998779296875, - 363.8501281738281 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 81.29998779296875, - 357.1501159667969, - 518.699951171875, - 376.55010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "׳Ü+Ògãr׳å+Þc×gÓZ×gØ©ÛZ×gè!Ò¥Üu×gâ8ÞGÔÖÓZÛcÔÖÕ\u0016è8ÔÖÓGÕQâ8ÓcÓcÔwÝ?Ø\u001fÛZݜÛcÜu×;×", - "origin": [ - 81.29998779296875, - 364.1501159667969 - ], - "bbox": [ - 81.29998779296875, - 357.6501159667969, - 300.6999816894531, - 376.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 300.6999816894531, - 364.1501159667969 - ], - "bbox": [ - 300.6999816894531, - 357.1501159667969, - 305.3999938964844, - 375.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6×gÕ/Û\u0016ÛcÜ8Ò\u001dÛ»äVâ8ÒrØ©Ûcâ8Ù", - "origin": [ - 305.3999938964844, - 364.1501159667969 - ], - "bbox": [ - 305.3999938964844, - 357.6501159667969, - 386.6999816894531, - 376.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.29998779296875, - 357.1501159667969, - 386.6999816894531, - 376.55010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù�×gÕ1Ü8ÒrØ8ÔÖÕQÓ", - "origin": [ - 399.3999938964844, - 364.1501159667969 - ], - "bbox": [ - 399.3999938964844, - 357.6501159667969, - 443.29998779296875, - 376.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": " \u001e", - "origin": [ - 443.29998779296875, - 364.1501159667969 - ], - "bbox": [ - 443.29998779296875, - 357.1501159667969, - 451.0, - 375.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œÛZÝrçr×QÛcÜu×QÞ\u0016à»ÔwÛcÜ", - "origin": [ - 451.0, - 364.1501159667969 - ], - "bbox": [ - 451.0, - 357.6501159667969, - 518.699951171875, - 376.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.3999938964844, - 357.1501159667969, - 518.699951171875, - 376.55010986328125 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 71.19998168945312, - 370.1501159667969, - 521.7000732421875, - 389.55010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò�Ø8Ò\u001dÛcâ8ÞGÒrÑ^èu×gÕ/Ý?Üu×QÞG×gØ8Õ/×!ÒrØ8èÁÕ/Ý?Ø©ÛcÔÖØVâuÝ?â8Ó¥ÑÖÝVÕQÒrÑÖÔ", - "origin": [ - 71.19998168945312, - 377.1501159667969 - ], - "bbox": [ - 71.19998168945312, - 370.6501159667969, - 283.0999755859375, - 389.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 370.6501159667969, - 283.0999755859375, - 389.55010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001b", - "origin": [ - 286.1999816894531, - 377.1501159667969 - ], - "bbox": [ - 286.1999816894531, - 370.1501159667969, - 286.1999816894531, - 388.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gÒ\u001dÛcÔwÝ?Ø\u0012Ù�×gÕGÜ+ÒrØ8ÔÖÓcÙ", - "origin": [ - 286.1999816894531, - 377.1501159667969 - ], - "bbox": [ - 286.1999816894531, - 370.6501159667969, - 363.3999328613281, - 389.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.1999816894531, - 370.1501159667969, - 363.3999328613281, - 389.55010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 377.0, - 377.1501159667969 - ], - "bbox": [ - 377.0, - 370.1501159667969, - 377.0, - 388.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¾ÔlÓ¥Ò�Õ/Ý?Ø8ÓZ×gäVâu×gØ8Õ/זÝræ;ÕQÑÖÒrÓGÓcÔÖÕQÒrÑ", - "origin": [ - 377.0, - 377.1501159667969 - ], - "bbox": [ - 377.0, - 370.6501159667969, - 521.7000732421875, - 389.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.0, - 370.1501159667969, - 521.7000732421875, - 389.55010986328125 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 71.19998168945312, - 383.55010986328125, - 518.7000122070312, - 402.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛcÒ\u001dÛcÔlÓZÛcÔÖÕQӓÒrØ8è\u000fÕ/Ý?Ø8Õ/×QÞGØ8Ó;è8ßVØ8ÒrÙ ÔÖÕQÓ»à¢ÔwÛcÜ!ÞG×gÓZå×gÕ/Û\u0016ÛZݗÒrØ\u000fÒ\u001dÛZÝ?Ù¥ÔÖÓcÛcÔÖÕ\u0014ÓZå+ÒrÕ/×QÛcÔÖÙ�×\u0014ÛcÜ8Ò\u001dÛ;ÔÖÓ\u0016ÝrÚ+Óc×QÞcãr×gè", - "origin": [ - 71.19998168945312, - 390.05010986328125 - ], - "bbox": [ - 71.19998168945312, - 383.55010986328125, - 493.3999938964844, - 402.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 383.55010986328125, - 493.3999938964844, - 402.4501037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔwÛcÜ", - "origin": [ - 503.3999938964844, - 390.05010986328125 - ], - "bbox": [ - 503.3999938964844, - 383.55010986328125, - 518.7000122070312, - 402.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 503.3999938964844, - 383.55010986328125, - 518.7000122070312, - 402.4501037597656 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 71.19998168945312, - 396.55010986328125, - 268.1999816894531, - 415.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑwÝaà", - "origin": [ - 71.19998168945312, - 403.05010986328125 - ], - "bbox": [ - 71.19998168945312, - 396.55010986328125, - 79.29998016357422, - 415.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 396.55010986328125, - 79.29998016357422, - 415.4501037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÓZÝ?ÑlâuÛcÔwÝ?ذéTÔJòž×ròwé\u0018Ò\u001dÛBÑÖÒ\u001dÞcçr×½è8ÔlÓZÛcÒrØ8Õ/×­ÓcÕQÒrÑw×gÓgò", - "origin": [ - 89.59998321533203, - 403.05010986328125 - ], - "bbox": [ - 89.59998321533203, - 396.55010986328125, - 268.1999816894531, - 415.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.59998321533203, - 396.55010986328125, - 268.1999816894531, - 415.4501037597656 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 283.0999755859375, - 396.55010986328125, - 520.4998779296875, - 415.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8×­ÓZå+Ò\u001dÛcÔwÝrÛZ×gÙ�åÝrÞGÒrѪè8ÔÖÓcÕ/Þc×QÛZ×gØ8×gÓcÓ°Þc×gÓcâ+ÑwÛcÓ°ÔÖØ;å×QÞGÙ¥ÒrØ8×gتÛ", - "origin": [ - 283.0999755859375, - 403.05010986328125 - ], - "bbox": [ - 283.0999755859375, - 396.55010986328125, - 520.4998779296875, - 415.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 283.0999755859375, - 396.55010986328125, - 520.4998779296875, - 415.4501037597656 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 71.19996643066406, - 409.05010986328125, - 519.8999633789062, - 428.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ8æ™ÝrÞGÙ Ò\u001dÛcÔwÝ?سÑwÝ?ÓGÓBÒ", - "origin": [ - 71.19996643066406, - 416.05010986328125 - ], - "bbox": [ - 71.19996643066406, - 409.55010986328125, - 149.2999725341797, - 428.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19996643066406, - 409.55010986328125, - 149.2999725341797, - 428.4501037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 154.49996948242188, - 416.05010986328125 - ], - "bbox": [ - 154.49996948242188, - 409.05010986328125, - 154.49996948242188, - 427.4501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛcÔÖØuç;ÒrÑÖÑWÙ¥Ò\u001dÛZÛZ×QÞTé?à»Üu×gØ&èu×gÓcÕ/ÞGÔÖÚ6×gè&ÔÖØ\u0019ÛcÜu×\u0010Õ/ÝrÞGÓZ×", - "origin": [ - 154.49996948242188, - 416.05010986328125 - ], - "bbox": [ - 154.49996948242188, - 409.55010986328125, - 368.5999450683594, - 428.4501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 368.5999450683594, - 416.05010986328125 - ], - "bbox": [ - 368.5999450683594, - 409.55010986328125, - 373.2999572753906, - 427.4501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞGÒrÔÖØ8×gè\u0014à\u001bÒTß³ÛcÜ8Ò\u001dÛ¡ÔÖÓ·Ò\u001då8å8ÞGÝrå8ÞGÔÖÒ\u001dÛZ×", - "origin": [ - 373.2999572753906, - 416.05010986328125 - ], - "bbox": [ - 373.2999572753906, - 409.55010986328125, - 519.8999633789062, - 428.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.49996948242188, - 409.05010986328125, - 519.8999633789062, - 428.4501037597656 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 71.09996795654297, - 422.4501037597656, - 243.09996032714844, - 441.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcÜ7è8ÔÖÓcÛcÒrØ8Õ/×gÓ\u0014Ù\u0019â8Õ1Ü\u000bÑÖÒ\u001dÞcçr×QÞ&ÛcÜ8ÒrØ", - "origin": [ - 71.09996795654297, - 428.9501037597656 - ], - "bbox": [ - 71.09996795654297, - 422.4501037597656, - 222.19998168945312, - 441.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09996795654297, - 422.4501037597656, - 222.19998168945312, - 441.35009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×", - "origin": [ - 232.79995727539062, - 428.9501037597656 - ], - "bbox": [ - 232.79995727539062, - 422.4501037597656, - 243.09996032714844, - 441.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 232.79995727539062, - 422.4501037597656, - 243.09996032714844, - 441.35009765625 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 259.99993896484375, - 421.9501037597656, - 312.2998962402344, - 441.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 259.99993896484375, - 428.9501037597656 - ], - "bbox": [ - 259.99993896484375, - 422.4501037597656, - 274.5999450683594, - 441.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 274.5999450683594, - 428.9501037597656 - ], - "bbox": [ - 274.5999450683594, - 421.9501037597656, - 278.99993896484375, - 440.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "7ÓcÕQÒrÑw×rò", - "origin": [ - 278.99993896484375, - 428.9501037597656 - ], - "bbox": [ - 278.99993896484375, - 422.4501037597656, - 312.2998962402344, - 441.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 259.99993896484375, - 421.9501037597656, - 312.2998962402344, - 441.35009765625 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 332.5999450683594, - 422.4501037597656, - 521.199951171875, - 441.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×\rà\"×QÞG×\u001fÙ�ÝrÛcÔÖã\u0018Ò\u001dÛZ×gè\u0012Üu×QÞGלÚVß�ÛcÜu×\rÛcÜu×QÝrÞcß", - "origin": [ - 332.5999450683594, - 428.9501037597656 - ], - "bbox": [ - 332.5999450683594, - 422.4501037597656, - 505.49981689453125, - 441.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.5999450683594, - 422.4501037597656, - 505.49981689453125, - 441.35009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ", - "origin": [ - 515.7999267578125, - 428.9501037597656 - ], - "bbox": [ - 515.7999267578125, - 422.4501037597656, - 521.199951171875, - 441.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.7999267578125, - 422.4501037597656, - 521.199951171875, - 441.35009765625 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 71.19992065429688, - 434.9501037597656, - 520.4998779296875, - 454.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÒrâ8ÓGÒrÑ+ÓZ×QÛcÓQé©à»Üu×QÞc×¢Ócâ8ÕGܜÒ%å+ÔlÕ/ÛcâuÞc×NÝræ°ÓZå+ÒrÕ/×QÛcÔÖÙ¥×¢èuÝV×gÓ½ØuÝrÛ½æ™Ý?ÑÖÑÖÝTà", - "origin": [ - 71.19992065429688, - 441.9501037597656 - ], - "bbox": [ - 71.19992065429688, - 435.4501037597656, - 352.39990234375, - 454.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 435.4501037597656, - 352.39990234375, - 454.35009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=ÞcÝ?Ù", - "origin": [ - 363.3999328613281, - 441.9501037597656 - ], - "bbox": [ - 363.3999328613281, - 435.4501037597656, - 376.59991455078125, - 454.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.3999328613281, - 435.4501037597656, - 376.59991455078125, - 454.35009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u0019ä©â+ÒrتÛcÔ", - "origin": [ - 388.6999206542969, - 441.9501037597656 - ], - "bbox": [ - 388.6999206542969, - 435.4501037597656, - 424.5999450683594, - 454.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 424.5999450683594, - 441.9501037597656 - ], - "bbox": [ - 424.5999450683594, - 434.9501037597656, - 427.5999450683594, - 453.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gÒ\u001dÛcÔÖÝ?Ø¥Ýræ°çrÞGÒTãVÔwÛ¯ß�Ú+âuÛ", - "origin": [ - 427.5999450683594, - 441.9501037597656 - ], - "bbox": [ - 427.5999450683594, - 435.4501037597656, - 520.4998779296875, - 454.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.6999206542969, - 434.9501037597656, - 520.4998779296875, - 454.35009765625 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 71.19992065429688, - 448.35009765625, - 214.39991760253906, - 467.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓNÒrÓGÓcâ8Ù�×gè–ÒrÓ^å8ÞGÔÖÙ¥Ò\u001dÞGß æ=×gÒ\u001dÛcâuÞc×rò", - "origin": [ - 71.19992065429688, - 454.85009765625 - ], - "bbox": [ - 71.19992065429688, - 448.35009765625, - 214.39991760253906, - 467.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 448.35009765625, - 214.39991760253906, - 467.2500915527344 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 93.29991912841797, - 461.35009765625, - 314.9999084472656, - 480.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×QÞc×\u001fÒ\u001dÞcחÒ\u000fØ©â8Ù\u0019ڐ×QÞ³Ýræ¢ÛZÝrå+ÔÖÕQÓ&æ™ÝrÞ\u0014æ’âuÞcÛcÜu×QÞ\u0014ÓZÛcâ8è8ßrò", - "origin": [ - 93.29991912841797, - 467.85009765625 - ], - "bbox": [ - 93.29991912841797, - 461.35009765625, - 314.9999084472656, - 480.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.29991912841797, - 461.35009765625, - 314.9999084472656, - 480.2500915527344 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 335.0999450683594, - 460.85009765625, - 521.199951171875, - 480.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞ", - "origin": [ - 335.0999450683594, - 467.85009765625 - ], - "bbox": [ - 335.0999450683594, - 461.35009765625, - 340.49993896484375, - 480.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 340.49993896484375, - 467.85009765625 - ], - "bbox": [ - 340.49993896484375, - 460.85009765625, - 344.7999267578125, - 479.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.0999450683594, - 460.85009765625, - 344.7999267578125, - 480.2500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ\u0014ÔÖØ¾å8ÞcÝrçrÞc×gÓcÓ&Ù¥Ò", - "origin": [ - 355.3999328613281, - 467.85009765625 - ], - "bbox": [ - 355.3999328613281, - 461.35009765625, - 433.5998840332031, - 480.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 433.5998840332031, - 467.85009765625 - ], - "bbox": [ - 433.5998840332031, - 460.85009765625, - 438.8998718261719, - 479.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔÖØuç\u000fØu×Qà»Ñwß", - "origin": [ - 438.8998718261719, - 467.85009765625 - ], - "bbox": [ - 438.8998718261719, - 461.35009765625, - 485.79986572265625, - 480.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 355.3999328613281, - 460.85009765625, - 485.79986572265625, - 480.2500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "â+ÓZלÝræ", - "origin": [ - 496.09991455078125, - 467.85009765625 - ], - "bbox": [ - 496.09991455078125, - 461.35009765625, - 521.199951171875, - 480.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 496.09991455078125, - 461.35009765625, - 521.199951171875, - 480.2500915527344 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 71.09991455078125, - 474.35009765625, - 518.6997680664062, - 493.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×¢æ™ÝrÞ1Ù¥ÒrÑÖÔÖÓcÙ", - "origin": [ - 71.09991455078125, - 480.85009765625 - ], - "bbox": [ - 71.09991455078125, - 474.35009765625, - 127.69992065429688, - 493.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09991455078125, - 474.35009765625, - 127.69992065429688, - 493.2500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrèuÝrå8ÛZ×gè\rÜu×QÞc×réVÝræ4â8ÓGÔÖØuç³ê\u0016ÔÖÑwڐ×QÞcÛ­ÓZåyÒrÕ/×\u0016Ýrå×QÞGÒ\u001dÛZÝrÞ1Ó½ÛZÝ�èu×gÓcÕ/Þ1Ôwڐ׻ÕQÑÖÒrÓcÓcÔlÕQÒrÑ+ÓZÛcÒ\u001dÛcÔÖÓcÛcÔÖÕQÓQéuÒrØ8è", - "origin": [ - 139.99990844726562, - 480.85009765625 - ], - "bbox": [ - 139.99990844726562, - 474.35009765625, - 518.6997680664062, - 493.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.99990844726562, - 474.35009765625, - 518.6997680664062, - 493.2500915527344 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 71.09990692138672, - 487.2500915527344, - 265.1999206542969, - 506.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çrÝ?ÔÖØ8ç�Ú6×QßrÝ?Ø+è—ÛcÜu×;×gÒ\u001dÞGÑwß\rÓcâuçrçr×gÓcÛcÔwÝ?Ø8Ó³í¸îré6ïañJò", - "origin": [ - 71.09990692138672, - 493.7500915527344 - ], - "bbox": [ - 71.09990692138672, - 487.2500915527344, - 265.1999206542969, - 506.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09990692138672, - 487.2500915527344, - 265.1999206542969, - 506.15008544921875 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 91.49990844726562, - 500.2500915527344, - 519.89990234375, - 519.1500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "âuÞcÛcÜ8×QÞGÙ�ÝrÞc×ré\u001bÒrÓ�åÝ?ÔÖØªÛZ×gè\u000bÝ?â8Û¥ÔÖØ\u0012ý^×Qæ]òTí", - "origin": [ - 91.49990844726562, - 506.7500915527344 - ], - "bbox": [ - 91.49990844726562, - 500.2500915527344, - 264.2999267578125, - 519.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.49990844726562, - 500.2500915527344, - 264.2999267578125, - 519.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ôrñJé\u001bÛcÜuחå8ÞcÝrÚ+ÑÖ×gÙ", - "origin": [ - 266.4999084472656, - 506.7500915527344 - ], - "bbox": [ - 266.4999084472656, - 500.2500915527344, - 333.09991455078125, - 519.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.4999084472656, - 500.2500915527344, - 333.09991455078125, - 519.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ“Øu×Qç?Ò\u001dÛcÔwãr×!å8ÞcÝrÚ+Ò\u001dÚ+ÔlÑÖÔwÛcÔw×gÓ&Øu×Q×gè8Ó\u0014ÛZÝ", - "origin": [ - 346.59991455078125, - 506.7500915527344 - ], - "bbox": [ - 346.59991455078125, - 500.2500915527344, - 503.0998229980469, - 519.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.59991455078125, - 500.2500915527344, - 503.0998229980469, - 519.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×", - "origin": [ - 513.39990234375, - 506.7500915527344 - ], - "bbox": [ - 513.39990234375, - 500.2500915527344, - 519.89990234375, - 519.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 513.39990234375, - 500.2500915527344, - 519.89990234375, - 519.1500854492188 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 71.09988403320312, - 513.050048828125, - 519.7998657226562, - 531.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÓcÝ?Ñwãr×gè°é8à»Ü+ÔÖÕGܖÔlÓ^Ù�×QÛ»à¢Üu×gؖÕQÒ\u001dÞcÞcßWÔÖØuç ÛcÜu׳ØuÝrÛcÔwÝ?Ø!Ýræ·å8ÞcÝrÚ+Ò\u001dÚ+ÔlÑÖÔwÛsß\u001fèu×gØ8ÓcÔÖÛsß\ræ™ÞGÝ?Ù", - "origin": [ - 71.09988403320312, - 519.550048828125 - ], - "bbox": [ - 71.09988403320312, - 513.050048828125, - 424.2998352050781, - 531.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09988403320312, - 513.050048828125, - 424.2998352050781, - 531.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu׳ÕQÑlÒrÓcÓcÔÖÕQÒrѰåyÜ8ÒrÓZ×", - "origin": [ - 436.9998779296875, - 519.550048828125 - ], - "bbox": [ - 436.9998779296875, - 513.050048828125, - 519.7998657226562, - 531.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 436.9998779296875, - 513.050048828125, - 519.7998657226562, - 531.9500732421875 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 71.19985961914062, - 526.050048828125, - 403.79986572265625, - 544.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZåyÒrÕ/×;ÛcÜu×QÝrÞcß\rÝTãr×QÞ\u0016ÛZÝ¥ÛcÜu×;×gÙ�×QÞGçr×gتÛ\u0016ä©â8ÒrØ©Ûcâ8Ù", - "origin": [ - 71.19985961914062, - 532.550048828125 - ], - "bbox": [ - 71.19985961914062, - 526.050048828125, - 270.39984130859375, - 544.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19985961914062, - 526.050048828125, - 270.39984130859375, - 544.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÒrѰÝ?Øu×ré+ÒrÓ»à\"׳è8Ýuò", - "origin": [ - 283.099853515625, - 532.550048828125 - ], - "bbox": [ - 283.099853515625, - 526.050048828125, - 403.79986572265625, - 544.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 283.099853515625, - 526.050048828125, - 403.79986572265625, - 544.9500732421875 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 93.29985809326172, - 538.4500732421875, - 521.699951171875, - 557.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×¥çr×gØ8×QÞGÒrÑÖÔ", - "origin": [ - 93.29985809326172, - 545.4500732421875 - ], - "bbox": [ - 93.29985809326172, - 538.9500732421875, - 142.49984741210938, - 557.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 142.49984741210938, - 545.4500732421875 - ], - "bbox": [ - 142.49984741210938, - 538.4500732421875, - 145.49984741210938, - 556.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gÒ\u001dÛcÔwÝ?Ø7Ýræ\u0010ÛcÜuלÔÖè8×gÒrÓ³Ó", - "origin": [ - 145.49984741210938, - 545.4500732421875 - ], - "bbox": [ - 145.49984741210938, - 538.9500732421875, - 239.69984436035156, - 557.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.29985809326172, - 538.4500732421875, - 239.69984436035156, - 557.85009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 243.89987182617188, - 545.4500732421875 - ], - "bbox": [ - 243.89987182617188, - 538.4500732421875, - 243.89987182617188, - 556.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×QÛcÕ1Üu×gè\u000bÜu×QÞc×¥ÛZÝ", - "origin": [ - 243.89987182617188, - 545.4500732421875 - ], - "bbox": [ - 243.89987182617188, - 538.9500732421875, - 312.8998718261719, - 557.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 243.89987182617188, - 538.4500732421875, - 312.8998718261719, - 557.85009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 322.79986572265625, - 545.4500732421875 - ], - "bbox": [ - 322.79986572265625, - 538.9500732421875, - 322.79986572265625, - 556.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gÑÖè�ÛcÜu×QÝrÞ1Ôw×gÓ\u0019Ü+ÒrÓ%ÛZÝ!æ’ÒrÕ/× ÛcÜ8× æ’â8Ø8è8ÒrÙ�×gØ©ÛcÒrÑ", - "origin": [ - 322.79986572265625, - 545.4500732421875 - ], - "bbox": [ - 322.79986572265625, - 538.9500732421875, - 521.699951171875, - 557.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 322.79986572265625, - 538.9500732421875, - 521.699951171875, - 557.85009765625 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 71.09986877441406, - 551.9500732421875, - 400.9999084472656, - 570.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å8ÞGÝrÚ+Ñw×gÙ", - "origin": [ - 71.09986877441406, - 558.4500732421875 - ], - "bbox": [ - 71.09986877441406, - 551.9500732421875, - 101.09986877441406, - 570.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09986877441406, - 551.9500732421875, - 101.09986877441406, - 570.85009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZݓâ8Ø8èu×QÞ1ÓZÛcÒrØ8è%ÛcÜ8×\"Ø8Ò\u001dÛcâuÞG×\"Ýræ8Ù¥Ò\u001dÛZÛZ×QÞ", - "origin": [ - 112.49987030029297, - 558.4500732421875 - ], - "bbox": [ - 112.49987030029297, - 551.9500732421875, - 271.59991455078125, - 570.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "<\n", - "origin": [ - 271.59991455078125, - 558.4500732421875 - ], - "bbox": [ - 271.59991455078125, - 551.9500732421875, - 278.6999206542969, - 569.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gÑlè8Ó4ÒrØ8è\u0019ÛcÜu×\"×gÙ�×QÞcçr×gØ8Õ/×\u0010Ýræ", - "origin": [ - 278.6999206542969, - 558.4500732421875 - ], - "bbox": [ - 278.6999206542969, - 551.9500732421875, - 400.9999084472656, - 570.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.49987030029297, - 551.9500732421875, - 400.9999084472656, - 570.85009765625 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 411.29986572265625, - 551.4500732421875, - 520.39990234375, - 570.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u001bÓZßWÙ¥Ù�×QÛZÞGÔw×gÓ-Ýræ", - "origin": [ - 411.29986572265625, - 558.4500732421875 - ], - "bbox": [ - 411.29986572265625, - 551.9500732421875, - 490.9998474121094, - 570.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?\u0012", - "origin": [ - 490.9998474121094, - 558.4500732421875 - ], - "bbox": [ - 490.9998474121094, - 551.4500732421875, - 495.4998474121094, - 569.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬ÛcÜu×gÔwÞ", - "origin": [ - 495.4998474121094, - 558.4500732421875 - ], - "bbox": [ - 495.4998474121094, - 551.9500732421875, - 520.39990234375, - 570.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.29986572265625, - 551.4500732421875, - 520.39990234375, - 570.85009765625 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 71.19985961914062, - 564.9500732421875, - 330.5998229980469, - 583.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ÛZ×QÞGÒrÕ/ÛcÔwÝ?Ø+ÓNà»ÔwÛcܖè8×gÕ/Þc×gÒrÓcÔÖØuç¥Ócå+Ò\u001dÛcÔwÝrÛZ×gÙ�åÝrÞGÒrѰÞG×gÓZÝ?ÑÖâuÛcÔwÝ?جò", - "origin": [ - 71.19985961914062, - 571.4500732421875 - ], - "bbox": [ - 71.19985961914062, - 564.9500732421875, - 330.5998229980469, - 583.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19985961914062, - 564.9500732421875, - 330.5998229980469, - 583.85009765625 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 346.4998474121094, - 564.9500732421875, - 518.4998168945312, - 583.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "âuÞ»Ò\u001då+å8ÞcÝ?ÒrÕGܬé8å+ÒgßWÔÖØuçœÓZå×gÕQÔÖÒrѰÒ\u001dÛZÛZ×gتÛcÔÖÝ?Ø", - "origin": [ - 346.4998474121094, - 571.4500732421875 - ], - "bbox": [ - 346.4998474121094, - 564.9500732421875, - 518.4998168945312, - 583.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.4998474121094, - 564.9500732421875, - 518.4998168945312, - 583.85009765625 - ] - } - ] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 71.099853515625, - 577.85009765625, - 521.1998291015625, - 612.5501098632812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ\u0014å+Ôw×gÕ/×Qà¢ÔÖÓZדÑÖÔÖØu×gÒ\u001dÞ\u001båÝrÛZ×gتÛcÔÖÒrÑlÓNÒ\u001dÛ\u0010ÓGâ", - "origin": [ - 71.099853515625, - 584.35009765625 - ], - "bbox": [ - 71.099853515625, - 577.85009765625, - 229.2998504638672, - 596.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 229.2998504638672, - 584.35009765625 - ], - "bbox": [ - 229.2998504638672, - 578.6500854492188, - 235.2998504638672, - 612.5501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ÕQÔw×gØ©ÛcÑwß ÓcÙ ÒrÑÖÑyÓGÕQÒrÑw×gÓQé8ÔÖÓ\u001bÔÖØ\rÒrÕQÕ/ÝrÞGè8ÒrØ8Õ/×;à¢ÔwÛcÜ\u001fÛcÜu×;Ócâuçrçr×gÓZÛcÔwÝ?Ø\rÝræ", - "origin": [ - 235.2998504638672, - 584.35009765625 - ], - "bbox": [ - 235.2998504638672, - 577.85009765625, - 521.1998291015625, - 596.7501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.099853515625, - 577.85009765625, - 521.1998291015625, - 612.5501098632812 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 71.1998519897461, - 590.85009765625, - 196.19985961914062, - 609.7501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ØuÝ?Ø+ÔÖØªÛZ×QÞ1ÒrÕ/ÛcÔÖØuç", - "origin": [ - 71.1998519897461, - 597.35009765625 - ], - "bbox": [ - 71.1998519897461, - 590.85009765625, - 134.599853515625, - 609.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "(\n", - "origin": [ - 134.599853515625, - 597.35009765625 - ], - "bbox": [ - 134.599853515625, - 590.85009765625, - 143.7998504638672, - 608.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+×gÑÖè8Ó\u0016Ò\u001dÛ\u0016ÛcÜ8×", - "origin": [ - 143.7998504638672, - 597.35009765625 - ], - "bbox": [ - 143.7998504638672, - 590.85009765625, - 196.19985961914062, - 609.7501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.1998519897461, - 590.85009765625, - 196.19985961914062, - 609.7501220703125 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 212.49984741210938, - 590.35009765625, - 264.1998596191406, - 609.7501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 212.49984741210938, - 597.35009765625 - ], - "bbox": [ - 212.49984741210938, - 590.85009765625, - 227.099853515625, - 609.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 227.099853515625, - 597.35009765625 - ], - "bbox": [ - 227.099853515625, - 590.35009765625, - 231.3998565673828, - 608.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "µÓcÕQÒrÑw×rò", - "origin": [ - 231.3998565673828, - 597.35009765625 - ], - "bbox": [ - 231.3998565673828, - 590.85009765625, - 264.1998596191406, - 609.7501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 212.49984741210938, - 590.35009765625, - 264.1998596191406, - 609.7501220703125 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 280.4998474121094, - 590.85009765625, - 520.3997802734375, - 609.7501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×QÞc×réÛcÜu×\u0014Ò\u001dÛZÝ?Ù¥ÔÖÓcÛcÔÖÕ\u0019ÓcÛZÞGâ8Õ/ÛcâuÞc×&Ýræ½ÓZåyÒrÕ/×QÛcÔÖÙ�×\u0014ڐ×gÕ/Ý?Ù�×gÓ", - "origin": [ - 280.4998474121094, - 597.35009765625 - ], - "bbox": [ - 280.4998474121094, - 590.85009765625, - 520.3997802734375, - 609.7501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.4998474121094, - 590.85009765625, - 520.3997802734375, - 609.7501220703125 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 71.09983825683594, - 603.2500610351562, - 517.2998657226562, - 622.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×", - "origin": [ - 71.09983825683594, - 610.2500610351562 - ], - "bbox": [ - 71.09983825683594, - 603.7500610351562, - 71.09983825683594, - 622.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 71.09983825683594, - 610.2500610351562 - ], - "bbox": [ - 71.09983825683594, - 603.2500610351562, - 75.79983520507812, - 621.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛcÔwãr×\u0019ÒrØ+è", - "origin": [ - 75.79983520507812, - 610.2500610351562 - ], - "bbox": [ - 75.79983520507812, - 603.7500610351562, - 124.89983367919922, - 622.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09983825683594, - 603.2500610351562, - 124.89983367919922, - 622.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 134.19984436035156, - 610.2500610351562 - ], - "bbox": [ - 134.19984436035156, - 603.2500610351562, - 134.19984436035156, - 621.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œæ™ÝrÞ¢Òrؖâ8Ø8èu×QÞ1ÑwßVÔlØuç&ÕQÒrâ+ÓcÒrѬÓZ×QÛ", - "origin": [ - 134.19984436035156, - 610.2500610351562 - ], - "bbox": [ - 134.19984436035156, - 603.7500610351562, - 271.4998474121094, - 622.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": " \u001e", - "origin": [ - 271.4998474121094, - 610.2500610351562 - ], - "bbox": [ - 271.4998474121094, - 603.2500610351562, - 279.1998596191406, - 621.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÔÖØ8è8â8Õ/×gÓ\u0010Ócâ+ÕGܖÒrØ", - "origin": [ - 279.1998596191406, - 610.2500610351562 - ], - "bbox": [ - 279.1998596191406, - 603.7500610351562, - 357.39990234375, - 622.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.19984436035156, - 603.2500610351562, - 357.39990234375, - 622.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 368.4998474121094, - 610.2500610351562 - ], - "bbox": [ - 368.4998474121094, - 603.2500610351562, - 368.4998474121094, - 621.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒrÓZßVÙ¥å8ÛZÝrÛcÔÖÕ;æ=Þc×Q×gèuÝ?Ùöå+ÞcÝrå×QÞcÛsß", - "origin": [ - 368.4998474121094, - 610.2500610351562 - ], - "bbox": [ - 368.4998474121094, - 603.7500610351562, - 505.4997863769531, - 622.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 368.4998474121094, - 603.2500610351562, - 505.4997863769531, - 622.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 511.39984130859375, - 610.2500610351562 - ], - "bbox": [ - 511.39984130859375, - 603.2500610351562, - 511.39984130859375, - 621.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Wò", - "origin": [ - 511.39984130859375, - 610.2500610351562 - ], - "bbox": [ - 511.39984130859375, - 603.7500610351562, - 517.2998657226562, - 622.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 511.39984130859375, - 603.2500610351562, - 517.2998657226562, - 622.6500854492188 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 80.69983673095703, - 632.050048828125, - 164.69981384277344, - 650.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ï", - "origin": [ - 80.69983673095703, - 638.550048828125 - ], - "bbox": [ - 80.69983673095703, - 632.050048828125, - 80.69983673095703, - 650.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�", - "origin": [ - 80.69983673095703, - 638.550048828125 - ], - "bbox": [ - 80.69983673095703, - 635.8500366210938, - 85.89983367919922, - 647.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬*43", - "origin": [ - 85.89983367919922, - 638.550048828125 - ], - "bbox": [ - 85.89983367919922, - 632.050048828125, - 99.39983367919922, - 650.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�", - "origin": [ - 99.39983367919922, - 638.550048828125 - ], - "bbox": [ - 99.39983367919922, - 635.8500366210938, - 105.19983673095703, - 647.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œ:=>VÌ", - "origin": [ - 105.19983673095703, - 638.550048828125 - ], - "bbox": [ - 105.19983673095703, - 632.050048828125, - 123.69984436035156, - 650.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u000b\n", - "origin": [ - 123.69984436035156, - 638.550048828125 - ], - "bbox": [ - 123.69984436035156, - 635.8500366210938, - 130.59983825683594, - 647.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "657>W*6ÆT,", - "origin": [ - 130.59983825683594, - 638.550048828125 - ], - "bbox": [ - 130.59983825683594, - 632.050048828125, - 164.69981384277344, - 650.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.69983673095703, - 632.050048828125, - 164.69981384277344, - 650.9500732421875 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 71.09983825683594, - 644.2500610351562, - 520.6996459960938, - 663.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 71.09983825683594, - 651.2500610351562 - ], - "bbox": [ - 71.09983825683594, - 644.2500610351562, - 71.09983825683594, - 662.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "^ÒrÙ", - "origin": [ - 71.09983825683594, - 651.2500610351562 - ], - "bbox": [ - 71.09983825683594, - 644.7500610351562, - 84.39984130859375, - 663.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09983825683594, - 644.2500610351562, - 84.39984130859375, - 663.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çrÞGÒ\u001dÛZ×Qæ’â8Ñ4ÛZÝ\rá4Ò", - "origin": [ - 97.29983520507812, - 651.2500610351562 - ], - "bbox": [ - 97.29983520507812, - 644.7500610351562, - 158.2998504638672, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "H�", - "origin": [ - 158.2998504638672, - 651.2500610351562 - ], - "bbox": [ - 158.2998504638672, - 644.7500610351562, - 163.3998565673828, - 662.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÝ?Ó", - "origin": [ - 163.3998565673828, - 651.2500610351562 - ], - "bbox": [ - 163.3998565673828, - 644.7500610351562, - 173.099853515625, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\r\f", - "origin": [ - 173.099853515625, - 651.2500610351562 - ], - "bbox": [ - 173.099853515625, - 648.550048828125, - 181.3998565673828, - 660.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“Ô", - "origin": [ - 181.3998565673828, - 651.2500610351562 - ], - "bbox": [ - 181.3998565673828, - 644.7500610351562, - 189.69985961914062, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u000f\u000e", - "origin": [ - 189.69985961914062, - 651.2500610351562 - ], - "bbox": [ - 189.69985961914062, - 648.550048828125, - 194.599853515625, - 660.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.29983520507812, - 644.7500610351562, - 194.599853515625, - 663.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÓcÔIé", - "origin": [ - 192.6998291015625, - 651.2500610351562 - ], - "bbox": [ - 192.6998291015625, - 644.7500610351562, - 206.09983825683594, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0011\u0010", - "origin": [ - 206.09983825683594, - 651.2500610351562 - ], - "bbox": [ - 206.09983825683594, - 648.550048828125, - 212.59983825683594, - 660.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝ?ÓZ×", - "origin": [ - 212.59983825683594, - 651.2500610351562 - ], - "bbox": [ - 212.59983825683594, - 644.7500610351562, - 227.6998291015625, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001f\n", - "origin": [ - 227.6998291015625, - 651.2500610351562 - ], - "bbox": [ - 227.6998291015625, - 644.2500610351562, - 236.4998321533203, - 662.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]ÓGÔÖèuÞcÝué", - "origin": [ - 236.4998321533203, - 651.2500610351562 - ], - "bbox": [ - 236.4998321533203, - 644.7500610351562, - 264.2998352050781, - 663.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.6998291015625, - 644.2500610351562, - 264.2998352050781, - 663.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ø8è8Þc×gÔ", - "origin": [ - 278.7998352050781, - 651.2500610351562 - ], - "bbox": [ - 278.7998352050781, - 644.7500610351562, - 300.1998291015625, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0013\u0012", - "origin": [ - 300.1998291015625, - 651.2500610351562 - ], - "bbox": [ - 300.1998291015625, - 648.550048828125, - 306.99981689453125, - 660.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "%Ü8Þc×gØ8Ø8Ô", - "origin": [ - 306.99981689453125, - 651.2500610351562 - ], - "bbox": [ - 306.99981689453125, - 644.7500610351562, - 342.99981689453125, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c�", - "origin": [ - 342.99981689453125, - 651.2500610351562 - ], - "bbox": [ - 342.99981689453125, - 644.2500610351562, - 345.99981689453125, - 662.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝaã—ÒrØ8è!ý¢Ò\u001dæ=Ò\u001d×gÑ­ëVÝrÞ", - "origin": [ - 345.99981689453125, - 651.2500610351562 - ], - "bbox": [ - 345.99981689453125, - 644.7500610351562, - 432.8997497558594, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 432.8997497558594, - 651.2500610351562 - ], - "bbox": [ - 432.8997497558594, - 644.2500610351562, - 437.1997375488281, - 662.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔÖØ!æ™Ýrޓè8ÔÖÓcÕQâ+ÓcÓcÔwÝ?Ø8Ó", - "origin": [ - 437.1997375488281, - 651.2500610351562 - ], - "bbox": [ - 437.1997375488281, - 644.7500610351562, - 520.6996459960938, - 663.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.7998352050781, - 644.2500610351562, - 520.6996459960938, - 663.6500854492188 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 71.09983825683594, - 657.6500244140625, - 157.59983825683594, - 676.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞ»Õ/ÝrÞGÞc×gÓZåÝ?Ø8èu×gØ8Õ/×rò", - "origin": [ - 71.09983825683594, - 664.1500244140625 - ], - "bbox": [ - 71.09983825683594, - 657.6500244140625, - 157.59983825683594, - 676.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09983825683594, - 657.6500244140625, - 157.59983825683594, - 676.550048828125 - ] - } - ] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 71.19983673095703, - 685.9500732421875, - 90.19983673095703, - 704.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0014", - "origin": [ - 71.19983673095703, - 692.4500732421875 - ], - "bbox": [ - 71.19983673095703, - 689.7500610351562, - 71.19983673095703, - 701.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001f>©Ç¯>", - "origin": [ - 71.19983673095703, - 692.4500732421875 - ], - "bbox": [ - 71.19983673095703, - 685.9500732421875, - 90.19983673095703, - 704.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19983673095703, - 685.9500732421875, - 90.19983673095703, - 704.85009765625 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 101.09983825683594, - 685.9500732421875, - 125.09984588623047, - 704.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ">W*4Ï?>V,", - "origin": [ - 101.09983825683594, - 692.4500732421875 - ], - "bbox": [ - 101.09983825683594, - 685.9500732421875, - 125.09984588623047, - 704.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.09983825683594, - 685.9500732421875, - 125.09984588623047, - 704.85009765625 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 76.29983520507812, - 689.8500366210938, - 315.39984130859375, - 717.1500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 76.29983520507812, - 704.7500610351562 - ], - "bbox": [ - 76.29983520507812, - 697.7500610351562, - 76.29983520507812, - 716.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žo", - "origin": [ - 76.29983520507812, - 704.7500610351562 - ], - "bbox": [ - 76.29983520507812, - 698.2500610351562, - 78.69983673095703, - 717.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.29983520507812, - 697.7500610351562, - 78.69983673095703, - 717.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ">", - "origin": [ - 82.69983673095703, - 704.7500610351562 - ], - "bbox": [ - 82.69983673095703, - 697.7500610351562, - 82.69983673095703, - 716.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�\u0015", - "origin": [ - 82.69983673095703, - 704.7500610351562 - ], - "bbox": [ - 82.69983673095703, - 702.050048828125, - 90.39983367919922, - 714.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡RQReC\u0018K^EGO\u0016¼", - "origin": [ - 90.39983367919922, - 704.7500610351562 - ], - "bbox": [ - 90.39983367919922, - 698.2500610351562, - 132.6998291015625, - 717.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0017\u0016", - "origin": [ - 132.6998291015625, - 704.7500610351562 - ], - "bbox": [ - 132.6998291015625, - 702.050048828125, - 142.3998260498047, - 714.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69983673095703, - 697.7500610351562, - 142.3998260498047, - 717.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "o", - "origin": [ - 152.99984741210938, - 704.7500610351562 - ], - "bbox": [ - 152.99984741210938, - 698.2500610351562, - 152.99984741210938, - 717.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u0018", - "origin": [ - 152.99984741210938, - 704.7500610351562 - ], - "bbox": [ - 152.99984741210938, - 702.050048828125, - 157.099853515625, - 714.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eiTo", - "origin": [ - 157.099853515625, - 704.7500610351562 - ], - "bbox": [ - 157.099853515625, - 698.2500610351562, - 166.69985961914062, - 717.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "q€ƒBXwd", - "origin": [ - 219.29986572265625, - 704.7500610351562 - ], - "bbox": [ - 219.29986572265625, - 689.8500366210938, - 239.19985961914062, - 714.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�\u001b", - "origin": [ - 239.19985961914062, - 704.7500610351562 - ], - "bbox": [ - 239.19985961914062, - 702.050048828125, - 244.99986267089844, - 714.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "=P6\u0015dL…", - "origin": [ - 244.99986267089844, - 704.7500610351562 - ], - "bbox": [ - 244.99986267089844, - 689.8500366210938, - 263.9998474121094, - 714.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u001d\u001c\u001e\u001b\u001f\u001a", - "origin": [ - 263.9998474121094, - 704.7500610351562 - ], - "bbox": [ - 263.9998474121094, - 702.050048828125, - 278.89984130859375, - 714.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ†", - "origin": [ - 278.89984130859375, - 704.7500610351562 - ], - "bbox": [ - 278.89984130859375, - 689.8500366210938, - 285.39984130859375, - 714.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "! #\"", - "origin": [ - 285.39984130859375, - 704.7500610351562 - ], - "bbox": [ - 285.39984130859375, - 702.050048828125, - 297.9998474121094, - 714.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016igocm", - "origin": [ - 297.9998474121094, - 704.7500610351562 - ], - "bbox": [ - 297.9998474121094, - 698.2500610351562, - 315.39984130859375, - 717.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.99984741210938, - 689.8500366210938, - 315.39984130859375, - 717.1500854492188 - ] - } - ] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 78.39984130859375, - 700.9500122070312, - 269.2998046875, - 728.2500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 78.39984130859375, - 715.8500366210938 - ], - "bbox": [ - 78.39984130859375, - 709.3500366210938, - 78.39984130859375, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39984130859375, - 715.8500366210938 - ], - "bbox": [ - 78.39984130859375, - 708.8500366210938, - 82.69984436035156, - 727.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010h/ReO°¶-MP•\u0018K^EGO\u0018O", - "origin": [ - 82.69984436035156, - 715.8500366210938 - ], - "bbox": [ - 82.69984436035156, - 709.3500366210938, - 139.99981689453125, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "%$", - "origin": [ - 139.99981689453125, - 715.8500366210938 - ], - "bbox": [ - 139.99981689453125, - 713.1500244140625, - 148.09982299804688, - 725.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016o", - "origin": [ - 148.09982299804688, - 715.8500366210938 - ], - "bbox": [ - 148.09982299804688, - 709.3500366210938, - 156.29981994628906, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&\u0018", - "origin": [ - 156.29981994628906, - 715.8500366210938 - ], - "bbox": [ - 156.29981994628906, - 713.1500244140625, - 160.49981689453125, - 725.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eiep", - "origin": [ - 160.49981689453125, - 715.8500366210938 - ], - "bbox": [ - 160.49981689453125, - 709.3500366210938, - 169.6998291015625, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "'\u001a", - "origin": [ - 169.6998291015625, - 715.8500366210938 - ], - "bbox": [ - 169.6998291015625, - 713.1500244140625, - 177.59982299804688, - 725.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.39984130859375, - 708.8500366210938, - 177.59982299804688, - 728.2500610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "8f8do_27C9?fd", - "origin": [ - 184.39984130859375, - 715.8500366210938 - ], - "bbox": [ - 184.39984130859375, - 700.9500122070312, - 221.79983520507812, - 725.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")(*(", - "origin": [ - 221.79983520507812, - 715.8500366210938 - ], - "bbox": [ - 221.79983520507812, - 713.1500244140625, - 232.4998321533203, - 725.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";m", - "origin": [ - 232.4998321533203, - 715.8500366210938 - ], - "bbox": [ - 232.4998321533203, - 709.3500366210938, - 240.8998260498047, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",+", - "origin": [ - 240.8998260498047, - 715.8500366210938 - ], - "bbox": [ - 240.8998260498047, - 713.1500244140625, - 245.29981994628906, - 725.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/qg`rq", - "origin": [ - 245.29981994628906, - 715.8500366210938 - ], - "bbox": [ - 245.29981994628906, - 709.3500366210938, - 260.2998046875, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-+-\u0018", - "origin": [ - 260.2998046875, - 715.8500366210938 - ], - "bbox": [ - 260.2998046875, - 713.1500244140625, - 269.2998046875, - 725.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 184.39984130859375, - 700.9500122070312, - 269.2998046875, - 728.2500610351562 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 78.29984283447266, - 711.8500366210938, - 376.2998352050781, - 748.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i", - "origin": [ - 78.29984283447266, - 726.7500610351562 - ], - "bbox": [ - 78.29984283447266, - 720.2500610351562, - 78.29984283447266, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29984283447266, - 726.7500610351562 - ], - "bbox": [ - 78.29984283447266, - 719.7500610351562, - 82.69984436035156, - 738.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016¨", - "origin": [ - 82.69984436035156, - 726.7500610351562 - ], - "bbox": [ - 82.69984436035156, - 720.2500610351562, - 90.89984130859375, - 739.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.29984283447266, - 719.7500610351562, - 90.89984130859375, - 739.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "H\u0018ÀBRQRG ºH", - "origin": [ - 92.89984130859375, - 726.7500610351562 - ], - "bbox": [ - 92.89984130859375, - 720.2500610351562, - 117.09984588623047, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/.", - "origin": [ - 117.09984588623047, - 726.7500610351562 - ], - "bbox": [ - 117.09984588623047, - 724.050048828125, - 124.09984588623047, - 736.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.89984130859375, - 720.2500610351562, - 124.09984588623047, - 739.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 134.39984130859375, - 726.7500610351562 - ], - "bbox": [ - 134.39984130859375, - 720.2500610351562, - 134.39984130859375, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010", - "origin": [ - 134.39984130859375, - 726.7500610351562 - ], - "bbox": [ - 134.39984130859375, - 724.050048828125, - 143.49984741210938, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eq", - "origin": [ - 143.49984741210938, - 726.7500610351562 - ], - "bbox": [ - 143.49984741210938, - 720.2500610351562, - 148.099853515625, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "32", - "origin": [ - 148.099853515625, - 726.7500610351562 - ], - "bbox": [ - 148.099853515625, - 724.050048828125, - 156.2998504638672, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad;€L?vuNSPd", - "origin": [ - 156.2998504638672, - 726.7500610351562 - ], - "bbox": [ - 156.2998504638672, - 711.8500366210938, - 186.4998321533203, - 736.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "5476", - "origin": [ - 186.4998321533203, - 726.7500610351562 - ], - "bbox": [ - 186.4998321533203, - 724.050048828125, - 196.79981994628906, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI78Gh5d", - "origin": [ - 196.79981994628906, - 726.7500610351562 - ], - "bbox": [ - 196.79981994628906, - 711.8500366210938, - 215.79981994628906, - 736.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�\u001b", - "origin": [ - 215.79981994628906, - 726.7500610351562 - ], - "bbox": [ - 215.79981994628906, - 724.050048828125, - 221.59982299804688, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ";:DBGd", - "origin": [ - 221.59982299804688, - 726.7500610351562 - ], - "bbox": [ - 221.59982299804688, - 711.8500366210938, - 235.09982299804688, - 736.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")8)\"30", - "origin": [ - 235.09982299804688, - 726.7500610351562 - ], - "bbox": [ - 235.09982299804688, - 724.050048828125, - 254.0998077392578, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ToZp", - "origin": [ - 254.0998077392578, - 726.7500610351562 - ], - "bbox": [ - 254.0998077392578, - 720.2500610351562, - 263.2998352050781, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 263.2998352050781, - 726.7500610351562 - ], - "bbox": [ - 263.2998352050781, - 724.050048828125, - 267.7998352050781, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gocm", - "origin": [ - 267.7998352050781, - 726.7500610351562 - ], - "bbox": [ - 267.7998352050781, - 720.2500610351562, - 276.99981689453125, - 739.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.39984130859375, - 711.8500366210938, - 276.99981689453125, - 739.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 285.29986572265625, - 726.7500610351562 - ], - "bbox": [ - 285.29986572265625, - 713.8500366210938, - 285.29986572265625, - 748.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€\u0017B<:\u0018@‡B16^8fC", - "origin": [ - 285.29986572265625, - 726.7500610351562 - ], - "bbox": [ - 285.29986572265625, - 711.8500366210938, - 319.1998596191406, - 736.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 319.1998596191406, - 726.7500610351562 - ], - "bbox": [ - 319.1998596191406, - 720.2500610351562, - 329.39984130859375, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 329.39984130859375, - 726.7500610351562 - ], - "bbox": [ - 329.39984130859375, - 724.050048828125, - 333.099853515625, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADhrv", - "origin": [ - 333.099853515625, - 726.7500610351562 - ], - "bbox": [ - 333.099853515625, - 720.2500610351562, - 347.9998474121094, - 739.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 285.29986572265625, - 711.8500366210938, - 347.9998474121094, - 748.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u001dEGOgHIklC", - "origin": [ - 350.099853515625, - 726.7500610351562 - ], - "bbox": [ - 350.099853515625, - 720.2500610351562, - 376.2998352050781, - 739.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.099853515625, - 720.2500610351562, - 376.2998352050781, - 739.1500854492188 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 381.39984130859375, - 720.050048828125, - 386.7998352050781, - 738.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 381.39984130859375, - 726.550048828125 - ], - "bbox": [ - 381.39984130859375, - 720.050048828125, - 381.39984130859375, - 738.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ");", - "origin": [ - 381.39984130859375, - 726.550048828125 - ], - "bbox": [ - 381.39984130859375, - 723.8500366210938, - 386.7998352050781, - 735.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 381.39984130859375, - 720.050048828125, - 386.7998352050781, - 738.9500732421875 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 391.2998352050781, - 713.8500366210938, - 423.29986572265625, - 748.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 391.2998352050781, - 726.7500610351562 - ], - "bbox": [ - 391.2998352050781, - 724.050048828125, - 391.2998352050781, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1n", - "origin": [ - 391.2998352050781, - 726.7500610351562 - ], - "bbox": [ - 391.2998352050781, - 720.2500610351562, - 395.7998352050781, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "10", - "origin": [ - 395.7998352050781, - 726.7500610351562 - ], - "bbox": [ - 395.7998352050781, - 724.050048828125, - 400.39984130859375, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 400.39984130859375, - 726.7500610351562 - ], - "bbox": [ - 400.39984130859375, - 713.8500366210938, - 404.7998352050781, - 748.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "<010-+", - "origin": [ - 404.7998352050781, - 726.7500610351562 - ], - "bbox": [ - 404.7998352050781, - 724.050048828125, - 418.599853515625, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 418.599853515625, - 726.7500610351562 - ], - "bbox": [ - 418.599853515625, - 713.8500366210938, - 423.29986572265625, - 748.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.2998352050781, - 713.8500366210938, - 423.29986572265625, - 748.550048828125 - ] - } - ] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 78.19983673095703, - 724.7500610351562, - 118.09983825683594, - 759.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 78.19983673095703, - 737.6500854492188 - ], - "bbox": [ - 78.19983673095703, - 724.7500610351562, - 78.19983673095703, - 759.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 78.19983673095703, - 737.6500854492188 - ], - "bbox": [ - 78.19983673095703, - 730.6500854492188, - 82.69983673095703, - 749.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tL§PM^À-k", - "origin": [ - 82.69983673095703, - 737.6500854492188 - ], - "bbox": [ - 82.69983673095703, - 731.1500854492188, - 118.09983825683594, - 750.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.19983673095703, - 724.7500610351562, - 118.09983825683594, - 759.4500732421875 - ] - } - ] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 131.69984436035156, - 722.7500610351562, - 519.39990234375, - 759.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 131.69984436035156, - 737.6500854492188 - ], - "bbox": [ - 131.69984436035156, - 731.1500854492188, - 131.69984436035156, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0101\u0018", - "origin": [ - 131.69984436035156, - 737.6500854492188 - ], - "bbox": [ - 131.69984436035156, - 734.9500732421875, - 145.2998504638672, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "`.18*C\u0018d", - "origin": [ - 145.2998504638672, - 737.6500854492188 - ], - "bbox": [ - 145.2998504638672, - 722.7500610351562, - 166.19985961914062, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "=2", - "origin": [ - 166.19985961914062, - 737.6500854492188 - ], - "bbox": [ - 166.19985961914062, - 734.9500732421875, - 172.79986572265625, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad", - "origin": [ - 172.79986572265625, - 737.6500854492188 - ], - "bbox": [ - 172.79986572265625, - 722.7500610351562, - 177.79986572265625, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/>", - "origin": [ - 177.79986572265625, - 737.6500854492188 - ], - "bbox": [ - 177.79986572265625, - 734.9500732421875, - 184.79986572265625, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ[fdˆ.185hGdn…^.", - "origin": [ - 184.79986572265625, - 737.6500854492188 - ], - "bbox": [ - 184.79986572265625, - 722.7500610351562, - 224.79986572265625, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "?2*>", - "origin": [ - 224.79986572265625, - 737.6500854492188 - ], - "bbox": [ - 224.79986572265625, - 734.9500732421875, - 233.99986267089844, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "W.\u0018†", - "origin": [ - 233.99986267089844, - 737.6500854492188 - ], - "bbox": [ - 233.99986267089844, - 722.7500610351562, - 243.59986877441406, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�\"@+", - "origin": [ - 243.59986877441406, - 737.6500854492188 - ], - "bbox": [ - 243.59986877441406, - 734.9500732421875, - 260.099853515625, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eick", - "origin": [ - 260.099853515625, - 737.6500854492188 - ], - "bbox": [ - 260.099853515625, - 731.1500854492188, - 268.9998474121094, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "A\u0018", - "origin": [ - 268.9998474121094, - 737.6500854492188 - ], - "bbox": [ - 268.9998474121094, - 734.9500732421875, - 272.2998352050781, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "en", - "origin": [ - 272.2998352050781, - 737.6500854492188 - ], - "bbox": [ - 272.2998352050781, - 731.1500854492188, - 276.89984130859375, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "FV", - "origin": [ - 276.89984130859375, - 737.6500854492188 - ], - "bbox": [ - 276.89984130859375, - 724.7500610351562, - 285.7998352050781, - 759.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 285.7998352050781, - 737.6500854492188 - ], - "bbox": [ - 285.7998352050781, - 722.7500610351562, - 319.6998291015625, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGF", - "origin": [ - 319.6998291015625, - 737.6500854492188 - ], - "bbox": [ - 319.6998291015625, - 731.1500854492188, - 330.5998229980469, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 330.5998229980469, - 737.6500854492188 - ], - "bbox": [ - 330.5998229980469, - 734.9500732421875, - 334.2998352050781, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADhrv", - "origin": [ - 334.2998352050781, - 737.6500854492188 - ], - "bbox": [ - 334.2998352050781, - 731.1500854492188, - 349.1998291015625, - 750.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.69984436035156, - 722.7500610351562, - 349.1998291015625, - 759.4500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "01+-0", - "origin": [ - 351.29986572265625, - 737.6500854492188 - ], - "bbox": [ - 351.29986572265625, - 734.9500732421875, - 360.3998718261719, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "engš", - "origin": [ - 360.3998718261719, - 737.6500854492188 - ], - "bbox": [ - 360.3998718261719, - 731.1500854492188, - 369.8998718261719, - 750.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.29986572265625, - 731.1500854492188, - 369.8998718261719, - 750.0501098632812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i", - "origin": [ - 372.099853515625, - 737.6500854492188 - ], - "bbox": [ - 372.099853515625, - 731.1500854492188, - 372.099853515625, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 372.099853515625, - 737.6500854492188 - ], - "bbox": [ - 372.099853515625, - 724.7500610351562, - 376.4998474121094, - 759.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "<0-+", - "origin": [ - 376.4998474121094, - 737.6500854492188 - ], - "bbox": [ - 376.4998474121094, - 734.9500732421875, - 385.6998596191406, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 385.6998596191406, - 737.6500854492188 - ], - "bbox": [ - 385.6998596191406, - 724.7500610351562, - 390.3998718261719, - 759.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.099853515625, - 724.7500610351562, - 390.3998718261719, - 759.4500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "[", - "origin": [ - 394.29986572265625, - 737.6500854492188 - ], - "bbox": [ - 394.29986572265625, - 724.7500610351562, - 394.29986572265625, - 759.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "RXbIwd", - "origin": [ - 394.29986572265625, - 737.6500854492188 - ], - "bbox": [ - 394.29986572265625, - 722.7500610351562, - 410.8998718261719, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "up", - "origin": [ - 410.8998718261719, - 737.6500854492188 - ], - "bbox": [ - 410.8998718261719, - 731.1500854492188, - 416.8998718261719, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01\u0018", - "origin": [ - 416.8998718261719, - 737.6500854492188 - ], - "bbox": [ - 416.8998718261719, - 734.9500732421875, - 430.4998779296875, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "+", - "origin": [ - 430.4998779296875, - 737.6500854492188 - ], - "bbox": [ - 430.4998779296875, - 722.7500610351562, - 439.0998840332031, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gTKNKNM]HIFI%EGXICrMPY]HJX½ALO", - "origin": [ - 439.0998840332031, - 737.6500854492188 - ], - "bbox": [ - 439.0998840332031, - 731.1500854492188, - 519.39990234375, - 750.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 394.29986572265625, - 722.7500610351562, - 519.39990234375, - 759.4500732421875 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 100.39987182617188, - 742.1500854492188, - 190.39988708496094, - 761.0501098632812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPKNM]FJd1MPOQH°”Q•\u001dEGOQHJ•\u0018K", - "origin": [ - 100.39987182617188, - 748.6500854492188 - ], - "bbox": [ - 100.39987182617188, - 742.1500854492188, - 168.1998748779297, - 761.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.39987182617188, - 742.1500854492188, - 168.1998748779297, - 761.0501098632812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNMPY", - "origin": [ - 178.4998779296875, - 748.6500854492188 - ], - "bbox": [ - 178.4998779296875, - 742.1500854492188, - 190.39988708496094, - 761.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.4998779296875, - 742.1500854492188, - 190.39988708496094, - 761.0501098632812 - ] - } - ] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 199.4998779296875, - 733.7500610351562, - 522.4999389648438, - 761.0501098632812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaALYPX", - "origin": [ - 199.4998779296875, - 748.6500854492188 - ], - "bbox": [ - 199.4998779296875, - 742.1500854492188, - 215.69989013671875, - 761.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0017€ƒB†5i", - "origin": [ - 363.59991455078125, - 748.6500854492188 - ], - "bbox": [ - 363.59991455078125, - 733.7500610351562, - 389.3999328613281, - 758.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "IB", - "origin": [ - 389.3999328613281, - 748.6500854492188 - ], - "bbox": [ - 389.3999328613281, - 745.9500732421875, - 395.2999267578125, - 758.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "q:<=1:D03\\1:DB", - "origin": [ - 395.2999267578125, - 748.6500854492188 - ], - "bbox": [ - 395.2999267578125, - 733.7500610351562, - 429.5998840332031, - 758.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "7J1J", - "origin": [ - 429.5998840332031, - 748.6500854492188 - ], - "bbox": [ - 429.5998840332031, - 745.9500732421875, - 441.5998840332031, - 758.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "7O", - "origin": [ - 441.5998840332031, - 748.6500854492188 - ], - "bbox": [ - 441.5998840332031, - 733.7500610351562, - 446.0998840332031, - 758.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "KJ1L", - "origin": [ - 446.0998840332031, - 748.6500854492188 - ], - "bbox": [ - 446.0998840332031, - 745.9500732421875, - 454.19989013671875, - 758.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ni", - "origin": [ - 454.19989013671875, - 748.6500854492188 - ], - "bbox": [ - 454.19989013671875, - 733.7500610351562, - 458.5998840332031, - 758.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "NM\u001fD93\u001c\u0013D\u001d\u0012^\u001c", - "origin": [ - 229.89999389648438, - 297.35009765625 - ], - "bbox": [ - 229.89999389648438, - 290.85009765625, - 293.8999938964844, - 308.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.89999389648438, - 290.85009765625, - 293.8999938964844, - 308.7500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&�\u0014.\"�\u000e", - "origin": [ - 299.1000061035156, - 297.35009765625 - ], - "bbox": [ - 299.1000061035156, - 290.85009765625, - 312.3000183105469, - 308.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 299.1000061035156, - 290.85009765625, - 312.3000183105469, - 308.7500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\"3S\u0018\u001b\u001d\u001c%\u0014 )>\u0010\u0013\u001e", - "origin": [ - 320.3999938964844, - 297.35009765625 - ], - "bbox": [ - 320.3999938964844, - 290.85009765625, - 353.4999694824219, - 308.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8érڐ×Qç?ÔÖØ8Ø8ÔlØuç^à»ÔwÛcÜ", - "origin": [ - 353.4999694824219, - 297.35009765625 - ], - "bbox": [ - 353.4999694824219, - 290.85009765625, - 429.4999694824219, - 309.7500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "U9\u0018D", - "origin": [ - 429.4999694824219, - 297.35009765625 - ], - "bbox": [ - 429.4999694824219, - 290.85009765625, - 443.7999572753906, - 308.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.3999938964844, - 290.85009765625, - 443.7999572753906, - 309.7500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "&\u000f&\u000f)>93\u001c\u0013D�&�\u0014\u0016\u001c%\u0014 )P&�\u0014 ) 9\u000f\u001c\u0013D", - "origin": [ - 452.0, - 297.35009765625 - ], - "bbox": [ - 452.0, - 290.85009765625, - 522.2000122070312, - 308.7500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.0, - 290.85009765625, - 522.2000122070312, - 308.7500915527344 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 71.69998168945312, - 303.7501220703125, - 520.3999633789062, - 322.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\u0012(\"$9\u0018;X\u001c\u0013\u001e\u001d)>9�&", - "origin": [ - 71.69998168945312, - 310.2501220703125 - ], - "bbox": [ - 71.69998168945312, - 303.7501220703125, - 115.49998474121094, - 321.6501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eé­ÚVß", - "origin": [ - 115.49998474121094, - 310.2501220703125 - ], - "bbox": [ - 115.49998474121094, - 303.7501220703125, - 133.19998168945312, - 322.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69998168945312, - 303.7501220703125, - 133.19998168945312, - 322.6501159667969 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ8Õ/ÝrÞcåÝrÞGÒ\u001dÛcÔÖØ8ç!ÓZ×Qãr×QÞGÒrÑNÒrÓcÓGâ8Ù�å8ÛcÔwÝ?Ø+Ó³Ò\u001dڐÝ?âuÛ³ÛcÜ8×\u001fÒ\u001dÛZÝ?Ù¥ÔlÓZÛcÔÖÕ\u001fØ8Ò\u001dÛcâuÞc×\u001fÝræ»ÓZå+ÒrÕ/×QÛcÔlÙ�×ré­ÒrÓ", - "origin": [ - 143.49998474121094, - 310.2501220703125 - ], - "bbox": [ - 143.49998474121094, - 303.7501220703125, - 520.3999633789062, - 322.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 143.49998474121094, - 303.7501220703125, - 520.3999633789062, - 322.6501159667969 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 71.09998321533203, - 316.7501220703125, - 314.7999572753906, - 335.6501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à\u001b×gÑÖѰÒrÓ»Ò\u001dڐÝ?âuÛNÛcÜ8×%Ø8Ò\u001dÛcâuÞc×;Ýræ·æ=ÝrÞGÕ/×gÓ»ÒrÕ/ÛcÔÖØ8ç�Ý?Ø!Ù¥Ò\u001dÛZÛZ×QÞgò", - "origin": [ - 71.09998321533203, - 323.2501220703125 - ], - "bbox": [ - 71.09998321533203, - 316.7501220703125, - 314.7999572753906, - 335.6501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09998321533203, - 316.7501220703125, - 314.7999572753906, - 335.6501159667969 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 71.19998168945312, - 345.2501220703125, - 86.89998626708984, - 364.1501159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�", - "origin": [ - 71.19998168945312, - 351.7501220703125 - ], - "bbox": [ - 71.19998168945312, - 349.05010986328125, - 71.19998168945312, - 361.1501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4Ã", - "origin": [ - 71.19998168945312, - 351.7501220703125 - ], - "bbox": [ - 71.19998168945312, - 345.2501220703125, - 77.99998474121094, - 364.1501159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�", - "origin": [ - 77.99998474121094, - 351.7501220703125 - ], - "bbox": [ - 77.99998474121094, - 349.05010986328125, - 86.89998626708984, - 361.1501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 345.2501220703125, - 86.89998626708984, - 364.1501159667969 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 95.59998321533203, - 344.95013427734375, - 114.39998626708984, - 363.8501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "3y*-Ϫ:", - "origin": [ - 95.59998321533203, - 351.45013427734375 - ], - "bbox": [ - 95.59998321533203, - 344.95013427734375, - 114.39998626708984, - 363.8501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.59998321533203, - 344.95013427734375, - 114.39998626708984, - 363.8501281738281 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 124.69998931884766, - 344.95013427734375, - 146.29998779296875, - 363.8501281738281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ",a˙36*4,", - "origin": [ - 124.69998931884766, - 351.45013427734375 - ], - "bbox": [ - 124.69998931884766, - 344.95013427734375, - 146.29998779296875, - 363.8501281738281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.69998931884766, - 344.95013427734375, - 146.29998779296875, - 363.8501281738281 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 81.29998779296875, - 357.1501159667969, - 518.699951171875, - 376.55010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "׳Ü+Ògãr׳å+Þc×gÓZ×gØ©ÛZ×gè!Ò¥Üu×gâ8ÞGÔÖÓZÛcÔÖÕ\u0016è8ÔÖÓGÕQâ8ÓcÓcÔwÝ?Ø\u001fÛZݜÛcÜu×;×", - "origin": [ - 81.29998779296875, - 364.1501159667969 - ], - "bbox": [ - 81.29998779296875, - 357.6501159667969, - 300.6999816894531, - 376.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 300.6999816894531, - 364.1501159667969 - ], - "bbox": [ - 300.6999816894531, - 357.1501159667969, - 305.3999938964844, - 375.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "6×gÕ/Û\u0016ÛcÜ8Ò\u001dÛ»äVâ8ÒrØ©Ûcâ8Ù", - "origin": [ - 305.3999938964844, - 364.1501159667969 - ], - "bbox": [ - 305.3999938964844, - 357.6501159667969, - 386.6999816894531, - 376.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.29998779296875, - 357.1501159667969, - 386.6999816894531, - 376.55010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù�×gÕ1Ü8ÒrØ8ÔÖÕQÓ", - "origin": [ - 399.3999938964844, - 364.1501159667969 - ], - "bbox": [ - 399.3999938964844, - 357.6501159667969, - 443.29998779296875, - 376.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": " \u001e", - "origin": [ - 443.29998779296875, - 364.1501159667969 - ], - "bbox": [ - 443.29998779296875, - 357.1501159667969, - 451.0, - 375.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œÛZÝrçr×QÛcÜu×QÞ\u0016à»ÔwÛcÜ", - "origin": [ - 451.0, - 364.1501159667969 - ], - "bbox": [ - 451.0, - 357.6501159667969, - 518.699951171875, - 376.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.3999938964844, - 357.1501159667969, - 518.699951171875, - 376.55010986328125 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 71.19998168945312, - 370.1501159667969, - 521.7000732421875, - 389.55010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò�Ø8Ò\u001dÛcâ8ÞGÒrÑ^èu×gÕ/Ý?Üu×QÞG×gØ8Õ/×!ÒrØ8èÁÕ/Ý?Ø©ÛcÔÖØVâuÝ?â8Ó¥ÑÖÝVÕQÒrÑÖÔ", - "origin": [ - 71.19998168945312, - 377.1501159667969 - ], - "bbox": [ - 71.19998168945312, - 370.6501159667969, - 283.0999755859375, - 389.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 370.6501159667969, - 283.0999755859375, - 389.55010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001b", - "origin": [ - 286.1999816894531, - 377.1501159667969 - ], - "bbox": [ - 286.1999816894531, - 370.1501159667969, - 286.1999816894531, - 388.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gÒ\u001dÛcÔwÝ?Ø\u0012Ù�×gÕGÜ+ÒrØ8ÔÖÓcÙ", - "origin": [ - 286.1999816894531, - 377.1501159667969 - ], - "bbox": [ - 286.1999816894531, - 370.6501159667969, - 363.3999328613281, - 389.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.1999816894531, - 370.1501159667969, - 363.3999328613281, - 389.55010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 377.0, - 377.1501159667969 - ], - "bbox": [ - 377.0, - 370.1501159667969, - 377.0, - 388.55010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¾ÔlÓ¥Ò�Õ/Ý?Ø8ÓZ×gäVâu×gØ8Õ/זÝræ;ÕQÑÖÒrÓGÓcÔÖÕQÒrÑ", - "origin": [ - 377.0, - 377.1501159667969 - ], - "bbox": [ - 377.0, - 370.6501159667969, - 521.7000732421875, - 389.55010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.0, - 370.1501159667969, - 521.7000732421875, - 389.55010986328125 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 71.19998168945312, - 383.55010986328125, - 518.7000122070312, - 402.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZÛcÒ\u001dÛcÔlÓZÛcÔÖÕQӓÒrØ8è\u000fÕ/Ý?Ø8Õ/×QÞGØ8Ó;è8ßVØ8ÒrÙ ÔÖÕQÓ»à¢ÔwÛcÜ!ÞG×gÓZå×gÕ/Û\u0016ÛZݗÒrØ\u000fÒ\u001dÛZÝ?Ù¥ÔÖÓcÛcÔÖÕ\u0014ÓZå+ÒrÕ/×QÛcÔÖÙ�×\u0014ÛcÜ8Ò\u001dÛ;ÔÖÓ\u0016ÝrÚ+Óc×QÞcãr×gè", - "origin": [ - 71.19998168945312, - 390.05010986328125 - ], - "bbox": [ - 71.19998168945312, - 383.55010986328125, - 493.3999938964844, - 402.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 383.55010986328125, - 493.3999938964844, - 402.4501037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔwÛcÜ", - "origin": [ - 503.3999938964844, - 390.05010986328125 - ], - "bbox": [ - 503.3999938964844, - 383.55010986328125, - 518.7000122070312, - 402.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 503.3999938964844, - 383.55010986328125, - 518.7000122070312, - 402.4501037597656 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 71.19998168945312, - 396.55010986328125, - 268.1999816894531, - 415.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑwÝaà", - "origin": [ - 71.19998168945312, - 403.05010986328125 - ], - "bbox": [ - 71.19998168945312, - 396.55010986328125, - 79.29998016357422, - 415.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19998168945312, - 396.55010986328125, - 79.29998016357422, - 415.4501037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÓZÝ?ÑlâuÛcÔwÝ?ذéTÔJòž×ròwé\u0018Ò\u001dÛBÑÖÒ\u001dÞcçr×½è8ÔlÓZÛcÒrØ8Õ/×­ÓcÕQÒrÑw×gÓgò", - "origin": [ - 89.59998321533203, - 403.05010986328125 - ], - "bbox": [ - 89.59998321533203, - 396.55010986328125, - 268.1999816894531, - 415.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.59998321533203, - 396.55010986328125, - 268.1999816894531, - 415.4501037597656 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 283.0999755859375, - 396.55010986328125, - 520.4998779296875, - 415.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ü8×­ÓZå+Ò\u001dÛcÔwÝrÛZ×gÙ�åÝrÞGÒrѪè8ÔÖÓcÕ/Þc×QÛZ×gØ8×gÓcÓ°Þc×gÓcâ+ÑwÛcÓ°ÔÖØ;å×QÞGÙ¥ÒrØ8×gتÛ", - "origin": [ - 283.0999755859375, - 403.05010986328125 - ], - "bbox": [ - 283.0999755859375, - 396.55010986328125, - 520.4998779296875, - 415.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 283.0999755859375, - 396.55010986328125, - 520.4998779296875, - 415.4501037597656 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 71.19996643066406, - 409.05010986328125, - 519.8999633789062, - 428.4501037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ8æ™ÝrÞGÙ Ò\u001dÛcÔwÝ?سÑwÝ?ÓGÓBÒ", - "origin": [ - 71.19996643066406, - 416.05010986328125 - ], - "bbox": [ - 71.19996643066406, - 409.55010986328125, - 149.2999725341797, - 428.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19996643066406, - 409.55010986328125, - 149.2999725341797, - 428.4501037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 154.49996948242188, - 416.05010986328125 - ], - "bbox": [ - 154.49996948242188, - 409.05010986328125, - 154.49996948242188, - 427.4501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛcÔÖØuç;ÒrÑÖÑWÙ¥Ò\u001dÛZÛZ×QÞTé?à»Üu×gØ&èu×gÓcÕ/ÞGÔÖÚ6×gè&ÔÖØ\u0019ÛcÜu×\u0010Õ/ÝrÞGÓZ×", - "origin": [ - 154.49996948242188, - 416.05010986328125 - ], - "bbox": [ - 154.49996948242188, - 409.55010986328125, - 368.5999450683594, - 428.4501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "�", - "origin": [ - 368.5999450683594, - 416.05010986328125 - ], - "bbox": [ - 368.5999450683594, - 409.55010986328125, - 373.2999572753906, - 427.4501037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "JçrÞGÒrÔÖØ8×gè\u0014à\u001bÒTß³ÛcÜ8Ò\u001dÛ¡ÔÖÓ·Ò\u001då8å8ÞGÝrå8ÞGÔÖÒ\u001dÛZ×", - "origin": [ - 373.2999572753906, - 416.05010986328125 - ], - "bbox": [ - 373.2999572753906, - 409.55010986328125, - 519.8999633789062, - 428.4501037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.49996948242188, - 409.05010986328125, - 519.8999633789062, - 428.4501037597656 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 71.09996795654297, - 422.4501037597656, - 243.09996032714844, - 441.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "à»ÔÖÛcÜ7è8ÔÖÓcÛcÒrØ8Õ/×gÓ\u0014Ù\u0019â8Õ1Ü\u000bÑÖÒ\u001dÞcçr×QÞ&ÛcÜ8ÒrØ", - "origin": [ - 71.09996795654297, - 428.9501037597656 - ], - "bbox": [ - 71.09996795654297, - 422.4501037597656, - 222.19998168945312, - 441.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09996795654297, - 422.4501037597656, - 222.19998168945312, - 441.35009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×", - "origin": [ - 232.79995727539062, - 428.9501037597656 - ], - "bbox": [ - 232.79995727539062, - 422.4501037597656, - 243.09996032714844, - 441.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 232.79995727539062, - 422.4501037597656, - 243.09996032714844, - 441.35009765625 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 259.99993896484375, - 421.9501037597656, - 312.2998962402344, - 441.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 259.99993896484375, - 428.9501037597656 - ], - "bbox": [ - 259.99993896484375, - 422.4501037597656, - 274.5999450683594, - 441.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r�", - "origin": [ - 274.5999450683594, - 428.9501037597656 - ], - "bbox": [ - 274.5999450683594, - 421.9501037597656, - 278.99993896484375, - 440.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "7ÓcÕQÒrÑw×rò", - "origin": [ - 278.99993896484375, - 428.9501037597656 - ], - "bbox": [ - 278.99993896484375, - 422.4501037597656, - 312.2998962402344, - 441.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 259.99993896484375, - 421.9501037597656, - 312.2998962402344, - 441.35009765625 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 332.5999450683594, - 422.4501037597656, - 521.199951171875, - 441.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×\rà\"×QÞG×\u001fÙ�ÝrÛcÔÖã\u0018Ò\u001dÛZ×gè\u0012Üu×QÞGלÚVß�ÛcÜu×\rÛcÜu×QÝrÞcß", - "origin": [ - 332.5999450683594, - 428.9501037597656 - ], - "bbox": [ - 332.5999450683594, - 422.4501037597656, - 505.49981689453125, - 441.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.5999450683594, - 422.4501037597656, - 505.49981689453125, - 441.35009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ", - "origin": [ - 515.7999267578125, - 428.9501037597656 - ], - "bbox": [ - 515.7999267578125, - 422.4501037597656, - 521.199951171875, - 441.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.7999267578125, - 422.4501037597656, - 521.199951171875, - 441.35009765625 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 71.19992065429688, - 434.9501037597656, - 520.4998779296875, - 454.35009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÕQÒrâ8ÓGÒrÑ+ÓZ×QÛcÓQé©à»Üu×QÞc×¢Ócâ8ÕGܜÒ%å+ÔlÕ/ÛcâuÞc×NÝræ°ÓZå+ÒrÕ/×QÛcÔÖÙ¥×¢èuÝV×gÓ½ØuÝrÛ½æ™Ý?ÑÖÑÖÝTà", - "origin": [ - 71.19992065429688, - 441.9501037597656 - ], - "bbox": [ - 71.19992065429688, - 435.4501037597656, - 352.39990234375, - 454.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 435.4501037597656, - 352.39990234375, - 454.35009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "æ=ÞcÝ?Ù", - "origin": [ - 363.3999328613281, - 441.9501037597656 - ], - "bbox": [ - 363.3999328613281, - 435.4501037597656, - 376.59991455078125, - 454.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.3999328613281, - 435.4501037597656, - 376.59991455078125, - 454.35009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ò\u0019ä©â+ÒrتÛcÔ", - "origin": [ - 388.6999206542969, - 441.9501037597656 - ], - "bbox": [ - 388.6999206542969, - 435.4501037597656, - 424.5999450683594, - 454.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 424.5999450683594, - 441.9501037597656 - ], - "bbox": [ - 424.5999450683594, - 434.9501037597656, - 427.5999450683594, - 453.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gÒ\u001dÛcÔÖÝ?Ø¥Ýræ°çrÞGÒTãVÔwÛ¯ß�Ú+âuÛ", - "origin": [ - 427.5999450683594, - 441.9501037597656 - ], - "bbox": [ - 427.5999450683594, - 435.4501037597656, - 520.4998779296875, - 454.35009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.6999206542969, - 434.9501037597656, - 520.4998779296875, - 454.35009765625 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 71.19992065429688, - 448.35009765625, - 214.39991760253906, - 467.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓNÒrÓGÓcâ8Ù�×gè–ÒrÓ^å8ÞGÔÖÙ¥Ò\u001dÞGß æ=×gÒ\u001dÛcâuÞc×rò", - "origin": [ - 71.19992065429688, - 454.85009765625 - ], - "bbox": [ - 71.19992065429688, - 448.35009765625, - 214.39991760253906, - 467.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19992065429688, - 448.35009765625, - 214.39991760253906, - 467.2500915527344 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 93.29991912841797, - 461.35009765625, - 314.9999084472656, - 480.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×QÞc×\u001fÒ\u001dÞcחÒ\u000fØ©â8Ù\u0019ڐ×QÞ³Ýræ¢ÛZÝrå+ÔÖÕQÓ&æ™ÝrÞ\u0014æ’âuÞcÛcÜu×QÞ\u0014ÓZÛcâ8è8ßrò", - "origin": [ - 93.29991912841797, - 467.85009765625 - ], - "bbox": [ - 93.29991912841797, - 461.35009765625, - 314.9999084472656, - 480.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.29991912841797, - 461.35009765625, - 314.9999084472656, - 480.2500915527344 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 335.0999450683594, - 460.85009765625, - 521.199951171875, - 480.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞ", - "origin": [ - 335.0999450683594, - 467.85009765625 - ], - "bbox": [ - 335.0999450683594, - 461.35009765625, - 340.49993896484375, - 480.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 340.49993896484375, - 467.85009765625 - ], - "bbox": [ - 340.49993896484375, - 460.85009765625, - 344.7999267578125, - 479.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 335.0999450683594, - 460.85009765625, - 344.7999267578125, - 480.2500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖÓ\u0014ÔÖØ¾å8ÞcÝrçrÞc×gÓcÓ&Ù¥Ò", - "origin": [ - 355.3999328613281, - 467.85009765625 - ], - "bbox": [ - 355.3999328613281, - 461.35009765625, - 433.5998840332031, - 480.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001a�", - "origin": [ - 433.5998840332031, - 467.85009765625 - ], - "bbox": [ - 433.5998840332031, - 460.85009765625, - 438.8998718261719, - 479.2500915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔÖØuç\u000fØu×Qà»Ñwß", - "origin": [ - 438.8998718261719, - 467.85009765625 - ], - "bbox": [ - 438.8998718261719, - 461.35009765625, - 485.79986572265625, - 480.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 355.3999328613281, - 460.85009765625, - 485.79986572265625, - 480.2500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "â+ÓZלÝræ", - "origin": [ - 496.09991455078125, - 467.85009765625 - ], - "bbox": [ - 496.09991455078125, - 461.35009765625, - 521.199951171875, - 480.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 496.09991455078125, - 461.35009765625, - 521.199951171875, - 480.2500915527344 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 71.09991455078125, - 474.35009765625, - 518.6997680664062, - 493.2500915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×¢æ™ÝrÞ1Ù¥ÒrÑÖÔÖÓcÙ", - "origin": [ - 71.09991455078125, - 480.85009765625 - ], - "bbox": [ - 71.09991455078125, - 474.35009765625, - 127.69992065429688, - 493.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09991455078125, - 474.35009765625, - 127.69992065429688, - 493.2500915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÒrèuÝrå8ÛZ×gè\rÜu×QÞc×réVÝræ4â8ÓGÔÖØuç³ê\u0016ÔÖÑwڐ×QÞcÛ­ÓZåyÒrÕ/×\u0016Ýrå×QÞGÒ\u001dÛZÝrÞ1Ó½ÛZÝ�èu×gÓcÕ/Þ1Ôwڐ׻ÕQÑÖÒrÓcÓcÔlÕQÒrÑ+ÓZÛcÒ\u001dÛcÔÖÓcÛcÔÖÕQÓQéuÒrØ8è", - "origin": [ - 139.99990844726562, - 480.85009765625 - ], - "bbox": [ - 139.99990844726562, - 474.35009765625, - 518.6997680664062, - 493.2500915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.99990844726562, - 474.35009765625, - 518.6997680664062, - 493.2500915527344 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 71.09990692138672, - 487.2500915527344, - 265.1999206542969, - 506.15008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çrÝ?ÔÖØ8ç�Ú6×QßrÝ?Ø+è—ÛcÜu×;×gÒ\u001dÞGÑwß\rÓcâuçrçr×gÓcÛcÔwÝ?Ø8Ó³í¸îré6ïañJò", - "origin": [ - 71.09990692138672, - 493.7500915527344 - ], - "bbox": [ - 71.09990692138672, - 487.2500915527344, - 265.1999206542969, - 506.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09990692138672, - 487.2500915527344, - 265.1999206542969, - 506.15008544921875 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 91.49990844726562, - 500.2500915527344, - 519.89990234375, - 519.1500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "âuÞcÛcÜ8×QÞGÙ�ÝrÞc×ré\u001bÒrÓ�åÝ?ÔÖØªÛZ×gè\u000bÝ?â8Û¥ÔÖØ\u0012ý^×Qæ]òTí", - "origin": [ - 91.49990844726562, - 506.7500915527344 - ], - "bbox": [ - 91.49990844726562, - 500.2500915527344, - 264.2999267578125, - 519.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.49990844726562, - 500.2500915527344, - 264.2999267578125, - 519.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ôrñJé\u001bÛcÜuחå8ÞcÝrÚ+ÑÖ×gÙ", - "origin": [ - 266.4999084472656, - 506.7500915527344 - ], - "bbox": [ - 266.4999084472656, - 500.2500915527344, - 333.09991455078125, - 519.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.4999084472656, - 500.2500915527344, - 333.09991455078125, - 519.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ýræ“Øu×Qç?Ò\u001dÛcÔwãr×!å8ÞcÝrÚ+Ò\u001dÚ+ÔlÑÖÔwÛcÔw×gÓ&Øu×Q×gè8Ó\u0014ÛZÝ", - "origin": [ - 346.59991455078125, - 506.7500915527344 - ], - "bbox": [ - 346.59991455078125, - 500.2500915527344, - 503.0998229980469, - 519.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.59991455078125, - 500.2500915527344, - 503.0998229980469, - 519.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ڐ×", - "origin": [ - 513.39990234375, - 506.7500915527344 - ], - "bbox": [ - 513.39990234375, - 500.2500915527344, - 519.89990234375, - 519.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 513.39990234375, - 500.2500915527344, - 519.89990234375, - 519.1500854492188 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 71.09988403320312, - 513.050048828125, - 519.7998657226562, - 531.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Þc×gÓcÝ?Ñwãr×gè°é8à»Ü+ÔÖÕGܖÔlÓ^Ù�×QÛ»à¢Üu×gؖÕQÒ\u001dÞcÞcßWÔÖØuç ÛcÜu׳ØuÝrÛcÔwÝ?Ø!Ýræ·å8ÞcÝrÚ+Ò\u001dÚ+ÔlÑÖÔwÛsß\u001fèu×gØ8ÓcÔÖÛsß\ræ™ÞGÝ?Ù", - "origin": [ - 71.09988403320312, - 519.550048828125 - ], - "bbox": [ - 71.09988403320312, - 513.050048828125, - 424.2998352050781, - 531.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09988403320312, - 513.050048828125, - 424.2998352050781, - 531.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu׳ÕQÑlÒrÓcÓcÔÖÕQÒrѰåyÜ8ÒrÓZ×", - "origin": [ - 436.9998779296875, - 519.550048828125 - ], - "bbox": [ - 436.9998779296875, - 513.050048828125, - 519.7998657226562, - 531.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 436.9998779296875, - 513.050048828125, - 519.7998657226562, - 531.9500732421875 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 71.19985961914062, - 526.050048828125, - 403.79986572265625, - 544.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÓZåyÒrÕ/×;ÛcÜu×QÝrÞcß\rÝTãr×QÞ\u0016ÛZÝ¥ÛcÜu×;×gÙ�×QÞGçr×gتÛ\u0016ä©â8ÒrØ©Ûcâ8Ù", - "origin": [ - 71.19985961914062, - 532.550048828125 - ], - "bbox": [ - 71.19985961914062, - 526.050048828125, - 270.39984130859375, - 544.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19985961914062, - 526.050048828125, - 270.39984130859375, - 544.9500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ù¥×gÕGÜ8ÒrØ8ÔlÕQÒrѰÝ?Øu×ré+ÒrÓ»à\"׳è8Ýuò", - "origin": [ - 283.099853515625, - 532.550048828125 - ], - "bbox": [ - 283.099853515625, - 526.050048828125, - 403.79986572265625, - 544.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 283.099853515625, - 526.050048828125, - 403.79986572265625, - 544.9500732421875 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 93.29985809326172, - 538.4500732421875, - 521.699951171875, - 557.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×¥çr×gØ8×QÞGÒrÑÖÔ", - "origin": [ - 93.29985809326172, - 545.4500732421875 - ], - "bbox": [ - 93.29985809326172, - 538.9500732421875, - 142.49984741210938, - 557.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c\u001b", - "origin": [ - 142.49984741210938, - 545.4500732421875 - ], - "bbox": [ - 142.49984741210938, - 538.4500732421875, - 145.49984741210938, - 556.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gÒ\u001dÛcÔwÝ?Ø7Ýræ\u0010ÛcÜuלÔÖè8×gÒrÓ³Ó", - "origin": [ - 145.49984741210938, - 545.4500732421875 - ], - "bbox": [ - 145.49984741210938, - 538.9500732421875, - 239.69984436035156, - 557.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.29985809326172, - 538.4500732421875, - 239.69984436035156, - 557.85009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 243.89987182617188, - 545.4500732421875 - ], - "bbox": [ - 243.89987182617188, - 538.4500732421875, - 243.89987182617188, - 556.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "r×QÛcÕ1Üu×gè\u000bÜu×QÞc×¥ÛZÝ", - "origin": [ - 243.89987182617188, - 545.4500732421875 - ], - "bbox": [ - 243.89987182617188, - 538.9500732421875, - 312.8998718261719, - 557.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 243.89987182617188, - 538.4500732421875, - 312.8998718261719, - 557.85009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "\n", - "origin": [ - 322.79986572265625, - 545.4500732421875 - ], - "bbox": [ - 322.79986572265625, - 538.9500732421875, - 322.79986572265625, - 556.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gÑÖè�ÛcÜu×QÝrÞ1Ôw×gÓ\u0019Ü+ÒrÓ%ÛZÝ!æ’ÒrÕ/× ÛcÜ8× æ’â8Ø8è8ÒrÙ�×gØ©ÛcÒrÑ", - "origin": [ - 322.79986572265625, - 545.4500732421875 - ], - "bbox": [ - 322.79986572265625, - 538.9500732421875, - 521.699951171875, - 557.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 322.79986572265625, - 538.9500732421875, - 521.699951171875, - 557.85009765625 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 71.09986877441406, - 551.9500732421875, - 400.9999084472656, - 570.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "å8ÞGÝrÚ+Ñw×gÙ", - "origin": [ - 71.09986877441406, - 558.4500732421875 - ], - "bbox": [ - 71.09986877441406, - 551.9500732421875, - 101.09986877441406, - 570.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09986877441406, - 551.9500732421875, - 101.09986877441406, - 570.85009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZݓâ8Ø8èu×QÞ1ÓZÛcÒrØ8è%ÛcÜ8×\"Ø8Ò\u001dÛcâuÞG×\"Ýræ8Ù¥Ò\u001dÛZÛZ×QÞ", - "origin": [ - 112.49987030029297, - 558.4500732421875 - ], - "bbox": [ - 112.49987030029297, - 551.9500732421875, - 271.59991455078125, - 570.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "<\n", - "origin": [ - 271.59991455078125, - 558.4500732421875 - ], - "bbox": [ - 271.59991455078125, - 551.9500732421875, - 278.6999206542969, - 569.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "8×gÑlè8Ó4ÒrØ8è\u0019ÛcÜu×\"×gÙ�×QÞcçr×gØ8Õ/×\u0010Ýræ", - "origin": [ - 278.6999206542969, - 558.4500732421875 - ], - "bbox": [ - 278.6999206542969, - 551.9500732421875, - 400.9999084472656, - 570.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.49987030029297, - 551.9500732421875, - 400.9999084472656, - 570.85009765625 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 411.29986572265625, - 551.4500732421875, - 520.39990234375, - 570.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛcÜu×\u001bÓZßWÙ¥Ù�×QÛZÞGÔw×gÓ-Ýræ", - "origin": [ - 411.29986572265625, - 558.4500732421875 - ], - "bbox": [ - 411.29986572265625, - 551.9500732421875, - 490.9998474121094, - 570.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?\u0012", - "origin": [ - 490.9998474121094, - 558.4500732421875 - ], - "bbox": [ - 490.9998474121094, - 551.4500732421875, - 495.4998474121094, - 569.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬ÛcÜu×gÔwÞ", - "origin": [ - 495.4998474121094, - 558.4500732421875 - ], - "bbox": [ - 495.4998474121094, - 551.9500732421875, - 520.39990234375, - 570.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.29986572265625, - 551.4500732421875, - 520.39990234375, - 570.85009765625 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 71.19985961914062, - 564.9500732421875, - 330.5998229980469, - 583.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÔÖØ©ÛZ×QÞGÒrÕ/ÛcÔwÝ?Ø+ÓNà»ÔwÛcܖè8×gÕ/Þc×gÒrÓcÔÖØuç¥Ócå+Ò\u001dÛcÔwÝrÛZ×gÙ�åÝrÞGÒrѰÞG×gÓZÝ?ÑÖâuÛcÔwÝ?جò", - "origin": [ - 71.19985961914062, - 571.4500732421875 - ], - "bbox": [ - 71.19985961914062, - 564.9500732421875, - 330.5998229980469, - 583.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19985961914062, - 564.9500732421875, - 330.5998229980469, - 583.85009765625 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 346.4998474121094, - 564.9500732421875, - 518.4998168945312, - 583.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "âuÞ»Ò\u001då+å8ÞcÝ?ÒrÕGܬé8å+ÒgßWÔÖØuçœÓZå×gÕQÔÖÒrѰÒ\u001dÛZÛZ×gتÛcÔÖÝ?Ø", - "origin": [ - 346.4998474121094, - 571.4500732421875 - ], - "bbox": [ - 346.4998474121094, - 564.9500732421875, - 518.4998168945312, - 583.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.4998474121094, - 564.9500732421875, - 518.4998168945312, - 583.85009765625 - ] - } - ] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 71.099853515625, - 577.85009765625, - 521.1998291015625, - 612.5501098632812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÛZÝ\u0014å+Ôw×gÕ/×Qà¢ÔÖÓZדÑÖÔÖØu×gÒ\u001dÞ\u001båÝrÛZ×gتÛcÔÖÒrÑlÓNÒ\u001dÛ\u0010ÓGâ", - "origin": [ - 71.099853515625, - 584.35009765625 - ], - "bbox": [ - 71.099853515625, - 577.85009765625, - 229.2998504638672, - 596.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "F", - "color": 0, - "ascender": 282.0, - "descender": -57.0, - "text": "�", - "origin": [ - 229.2998504638672, - 584.35009765625 - ], - "bbox": [ - 229.2998504638672, - 578.6500854492188, - 235.2998504638672, - 612.5501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": " ÕQÔw×gØ©ÛcÑwß ÓcÙ ÒrÑÖÑyÓGÕQÒrÑw×gÓQé8ÔÖÓ\u001bÔÖØ\rÒrÕQÕ/ÝrÞGè8ÒrØ8Õ/×;à¢ÔwÛcÜ\u001fÛcÜu×;Ócâuçrçr×gÓZÛcÔwÝ?Ø\rÝræ", - "origin": [ - 235.2998504638672, - 584.35009765625 - ], - "bbox": [ - 235.2998504638672, - 577.85009765625, - 521.1998291015625, - 596.7501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.099853515625, - 577.85009765625, - 521.1998291015625, - 612.5501098632812 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 71.1998519897461, - 590.85009765625, - 196.19985961914062, - 609.7501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ØuÝ?Ø+ÔÖØªÛZ×QÞ1ÒrÕ/ÛcÔÖØuç", - "origin": [ - 71.1998519897461, - 597.35009765625 - ], - "bbox": [ - 71.1998519897461, - 590.85009765625, - 134.599853515625, - 609.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "(\n", - "origin": [ - 134.599853515625, - 597.35009765625 - ], - "bbox": [ - 134.599853515625, - 590.85009765625, - 143.7998504638672, - 608.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "+×gÑÖè8Ó\u0016Ò\u001dÛ\u0016ÛcÜ8×", - "origin": [ - 143.7998504638672, - 597.35009765625 - ], - "bbox": [ - 143.7998504638672, - 590.85009765625, - 196.19985961914062, - 609.7501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.1998519897461, - 590.85009765625, - 196.19985961914062, - 609.7501220703125 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 212.49984741210938, - 590.35009765625, - 264.1998596191406, - 609.7501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÑÖÒrØ8Õ", - "origin": [ - 212.49984741210938, - 597.35009765625 - ], - "bbox": [ - 212.49984741210938, - 590.85009765625, - 227.099853515625, - 609.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 227.099853515625, - 597.35009765625 - ], - "bbox": [ - 227.099853515625, - 590.35009765625, - 231.3998565673828, - 608.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "µÓcÕQÒrÑw×rò", - "origin": [ - 231.3998565673828, - 597.35009765625 - ], - "bbox": [ - 231.3998565673828, - 590.85009765625, - 264.1998596191406, - 609.7501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 212.49984741210938, - 590.35009765625, - 264.1998596191406, - 609.7501220703125 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 280.4998474121094, - 590.85009765625, - 520.3997802734375, - 609.7501220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Üu×QÞc×réÛcÜu×\u0014Ò\u001dÛZÝ?Ù¥ÔÖÓcÛcÔÖÕ\u0019ÓcÛZÞGâ8Õ/ÛcâuÞc×&Ýræ½ÓZåyÒrÕ/×QÛcÔÖÙ�×\u0014ڐ×gÕ/Ý?Ù�×gÓ", - "origin": [ - 280.4998474121094, - 597.35009765625 - ], - "bbox": [ - 280.4998474121094, - 590.85009765625, - 520.3997802734375, - 609.7501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.4998474121094, - 590.85009765625, - 520.3997802734375, - 609.7501220703125 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 71.09983825683594, - 603.2500610351562, - 517.2998657226562, - 622.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×", - "origin": [ - 71.09983825683594, - 610.2500610351562 - ], - "bbox": [ - 71.09983825683594, - 603.7500610351562, - 71.09983825683594, - 622.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 71.09983825683594, - 610.2500610351562 - ], - "bbox": [ - 71.09983825683594, - 603.2500610351562, - 75.79983520507812, - 621.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "×gÕ/ÛcÔwãr×\u0019ÒrØ+è", - "origin": [ - 75.79983520507812, - 610.2500610351562 - ], - "bbox": [ - 75.79983520507812, - 603.7500610351562, - 124.89983367919922, - 622.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09983825683594, - 603.2500610351562, - 124.89983367919922, - 622.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001e", - "origin": [ - 134.19984436035156, - 610.2500610351562 - ], - "bbox": [ - 134.19984436035156, - 603.2500610351562, - 134.19984436035156, - 621.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œæ™ÝrÞ¢Òrؖâ8Ø8èu×QÞ1ÑwßVÔlØuç&ÕQÒrâ+ÓcÒrѬÓZ×QÛ", - "origin": [ - 134.19984436035156, - 610.2500610351562 - ], - "bbox": [ - 134.19984436035156, - 603.7500610351562, - 271.4998474121094, - 622.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": " \u001e", - "origin": [ - 271.4998474121094, - 610.2500610351562 - ], - "bbox": [ - 271.4998474121094, - 603.2500610351562, - 279.1998596191406, - 621.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\rÔÖØ8è8â8Õ/×gÓ\u0010Ócâ+ÕGܖÒrØ", - "origin": [ - 279.1998596191406, - 610.2500610351562 - ], - "bbox": [ - 279.1998596191406, - 603.7500610351562, - 357.39990234375, - 622.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.19984436035156, - 603.2500610351562, - 357.39990234375, - 622.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 368.4998474121094, - 610.2500610351562 - ], - "bbox": [ - 368.4998474121094, - 603.2500610351562, - 368.4998474121094, - 621.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÒrÓZßVÙ¥å8ÛZÝrÛcÔÖÕ;æ=Þc×Q×gèuÝ?Ùöå+ÞcÝrå×QÞcÛsß", - "origin": [ - 368.4998474121094, - 610.2500610351562 - ], - "bbox": [ - 368.4998474121094, - 603.7500610351562, - 505.4997863769531, - 622.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 368.4998474121094, - 603.2500610351562, - 505.4997863769531, - 622.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 511.39984130859375, - 610.2500610351562 - ], - "bbox": [ - 511.39984130859375, - 603.2500610351562, - 511.39984130859375, - 621.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Wò", - "origin": [ - 511.39984130859375, - 610.2500610351562 - ], - "bbox": [ - 511.39984130859375, - 603.7500610351562, - 517.2998657226562, - 622.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 511.39984130859375, - 603.2500610351562, - 517.2998657226562, - 622.6500854492188 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 80.69983673095703, - 632.050048828125, - 164.69981384277344, - 650.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ï", - "origin": [ - 80.69983673095703, - 638.550048828125 - ], - "bbox": [ - 80.69983673095703, - 632.050048828125, - 80.69983673095703, - 650.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�", - "origin": [ - 80.69983673095703, - 638.550048828125 - ], - "bbox": [ - 80.69983673095703, - 635.8500366210938, - 85.89983367919922, - 647.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬*43", - "origin": [ - 85.89983367919922, - 638.550048828125 - ], - "bbox": [ - 85.89983367919922, - 632.050048828125, - 99.39983367919922, - 650.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�", - "origin": [ - 99.39983367919922, - 638.550048828125 - ], - "bbox": [ - 99.39983367919922, - 635.8500366210938, - 105.19983673095703, - 647.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œ:=>VÌ", - "origin": [ - 105.19983673095703, - 638.550048828125 - ], - "bbox": [ - 105.19983673095703, - 632.050048828125, - 123.69984436035156, - 650.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u000b\n", - "origin": [ - 123.69984436035156, - 638.550048828125 - ], - "bbox": [ - 123.69984436035156, - 635.8500366210938, - 130.59983825683594, - 647.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "657>W*6ÆT,", - "origin": [ - 130.59983825683594, - 638.550048828125 - ], - "bbox": [ - 130.59983825683594, - 632.050048828125, - 164.69981384277344, - 650.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.69983673095703, - 632.050048828125, - 164.69981384277344, - 650.9500732421875 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 71.09983825683594, - 644.2500610351562, - 520.6996459960938, - 663.6500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\n", - "origin": [ - 71.09983825683594, - 651.2500610351562 - ], - "bbox": [ - 71.09983825683594, - 644.2500610351562, - 71.09983825683594, - 662.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "^ÒrÙ", - "origin": [ - 71.09983825683594, - 651.2500610351562 - ], - "bbox": [ - 71.09983825683594, - 644.7500610351562, - 84.39984130859375, - 663.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09983825683594, - 644.2500610351562, - 84.39984130859375, - 663.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "çrÞGÒ\u001dÛZ×Qæ’â8Ñ4ÛZÝ\rá4Ò", - "origin": [ - 97.29983520507812, - 651.2500610351562 - ], - "bbox": [ - 97.29983520507812, - 644.7500610351562, - 158.2998504638672, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 114.0, - "descender": -65.0, - "text": "H�", - "origin": [ - 158.2998504638672, - 651.2500610351562 - ], - "bbox": [ - 158.2998504638672, - 644.7500610351562, - 163.3998565673828, - 662.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ZÝ?Ó", - "origin": [ - 163.3998565673828, - 651.2500610351562 - ], - "bbox": [ - 163.3998565673828, - 644.7500610351562, - 173.099853515625, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\r\f", - "origin": [ - 173.099853515625, - 651.2500610351562 - ], - "bbox": [ - 173.099853515625, - 648.550048828125, - 181.3998565673828, - 660.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“Ô", - "origin": [ - 181.3998565673828, - 651.2500610351562 - ], - "bbox": [ - 181.3998565673828, - 644.7500610351562, - 189.69985961914062, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u000f\u000e", - "origin": [ - 189.69985961914062, - 651.2500610351562 - ], - "bbox": [ - 189.69985961914062, - 648.550048828125, - 194.599853515625, - 660.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.29983520507812, - 644.7500610351562, - 194.599853515625, - 663.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ý?ÓcÔIé", - "origin": [ - 192.6998291015625, - 651.2500610351562 - ], - "bbox": [ - 192.6998291015625, - 644.7500610351562, - 206.09983825683594, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0011\u0010", - "origin": [ - 206.09983825683594, - 651.2500610351562 - ], - "bbox": [ - 206.09983825683594, - 648.550048828125, - 212.59983825683594, - 660.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝ?ÓZ×", - "origin": [ - 212.59983825683594, - 651.2500610351562 - ], - "bbox": [ - 212.59983825683594, - 644.7500610351562, - 227.6998291015625, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001f\n", - "origin": [ - 227.6998291015625, - 651.2500610351562 - ], - "bbox": [ - 227.6998291015625, - 644.2500610351562, - 236.4998321533203, - 662.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "]ÓGÔÖèuÞcÝué", - "origin": [ - 236.4998321533203, - 651.2500610351562 - ], - "bbox": [ - 236.4998321533203, - 644.7500610351562, - 264.2998352050781, - 663.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.6998291015625, - 644.2500610351562, - 264.2998352050781, - 663.6500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Ø8è8Þc×gÔ", - "origin": [ - 278.7998352050781, - 651.2500610351562 - ], - "bbox": [ - 278.7998352050781, - 644.7500610351562, - 300.1998291015625, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0013\u0012", - "origin": [ - 300.1998291015625, - 651.2500610351562 - ], - "bbox": [ - 300.1998291015625, - 648.550048828125, - 306.99981689453125, - 660.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "%Ü8Þc×gØ8Ø8Ô", - "origin": [ - 306.99981689453125, - 651.2500610351562 - ], - "bbox": [ - 306.99981689453125, - 644.7500610351562, - 342.99981689453125, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u001c�", - "origin": [ - 342.99981689453125, - 651.2500610351562 - ], - "bbox": [ - 342.99981689453125, - 644.2500610351562, - 345.99981689453125, - 662.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rÝaã—ÒrØ8è!ý¢Ò\u001dæ=Ò\u001d×gÑ­ëVÝrÞ", - "origin": [ - 345.99981689453125, - 651.2500610351562 - ], - "bbox": [ - 345.99981689453125, - 644.7500610351562, - 432.8997497558594, - 663.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�", - "origin": [ - 432.8997497558594, - 651.2500610351562 - ], - "bbox": [ - 432.8997497558594, - 644.2500610351562, - 437.1997375488281, - 662.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WÔÖØ!æ™Ýrޓè8ÔÖÓcÕQâ+ÓcÓcÔwÝ?Ø8Ó", - "origin": [ - 437.1997375488281, - 651.2500610351562 - ], - "bbox": [ - 437.1997375488281, - 644.7500610351562, - 520.6996459960938, - 663.6500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.7998352050781, - 644.2500610351562, - 520.6996459960938, - 663.6500854492188 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 71.09983825683594, - 657.6500244140625, - 157.59983825683594, - 676.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÝrÞ»Õ/ÝrÞGÞc×gÓZåÝ?Ø8èu×gØ8Õ/×rò", - "origin": [ - 71.09983825683594, - 664.1500244140625 - ], - "bbox": [ - 71.09983825683594, - 657.6500244140625, - 157.59983825683594, - 676.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.09983825683594, - 657.6500244140625, - 157.59983825683594, - 676.550048828125 - ] - } - ] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 71.19983673095703, - 685.9500732421875, - 90.19983673095703, - 704.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0014", - "origin": [ - 71.19983673095703, - 692.4500732421875 - ], - "bbox": [ - 71.19983673095703, - 689.7500610351562, - 71.19983673095703, - 701.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001f>©Ç¯>", - "origin": [ - 71.19983673095703, - 692.4500732421875 - ], - "bbox": [ - 71.19983673095703, - 685.9500732421875, - 90.19983673095703, - 704.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.19983673095703, - 685.9500732421875, - 90.19983673095703, - 704.85009765625 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 101.09983825683594, - 685.9500732421875, - 125.09984588623047, - 704.85009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ">W*4Ï?>V,", - "origin": [ - 101.09983825683594, - 692.4500732421875 - ], - "bbox": [ - 101.09983825683594, - 685.9500732421875, - 125.09984588623047, - 704.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.09983825683594, - 685.9500732421875, - 125.09984588623047, - 704.85009765625 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 76.29983520507812, - 689.8500366210938, - 315.39984130859375, - 717.1500854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 76.29983520507812, - 704.7500610351562 - ], - "bbox": [ - 76.29983520507812, - 697.7500610351562, - 76.29983520507812, - 716.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žo", - "origin": [ - 76.29983520507812, - 704.7500610351562 - ], - "bbox": [ - 76.29983520507812, - 698.2500610351562, - 78.69983673095703, - 717.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.29983520507812, - 697.7500610351562, - 78.69983673095703, - 717.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ">", - "origin": [ - 82.69983673095703, - 704.7500610351562 - ], - "bbox": [ - 82.69983673095703, - 697.7500610351562, - 82.69983673095703, - 716.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�\u0015", - "origin": [ - 82.69983673095703, - 704.7500610351562 - ], - "bbox": [ - 82.69983673095703, - 702.050048828125, - 90.39983367919922, - 714.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡RQReC\u0018K^EGO\u0016¼", - "origin": [ - 90.39983367919922, - 704.7500610351562 - ], - "bbox": [ - 90.39983367919922, - 698.2500610351562, - 132.6998291015625, - 717.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0017\u0016", - "origin": [ - 132.6998291015625, - 704.7500610351562 - ], - "bbox": [ - 132.6998291015625, - 702.050048828125, - 142.3998260498047, - 714.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69983673095703, - 697.7500610351562, - 142.3998260498047, - 717.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "o", - "origin": [ - 152.99984741210938, - 704.7500610351562 - ], - "bbox": [ - 152.99984741210938, - 698.2500610351562, - 152.99984741210938, - 717.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u0018", - "origin": [ - 152.99984741210938, - 704.7500610351562 - ], - "bbox": [ - 152.99984741210938, - 702.050048828125, - 157.099853515625, - 714.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eiTo", - "origin": [ - 157.099853515625, - 704.7500610351562 - ], - "bbox": [ - 157.099853515625, - 698.2500610351562, - 166.69985961914062, - 717.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "q€ƒBXwd", - "origin": [ - 219.29986572265625, - 704.7500610351562 - ], - "bbox": [ - 219.29986572265625, - 689.8500366210938, - 239.19985961914062, - 714.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�\u001b", - "origin": [ - 239.19985961914062, - 704.7500610351562 - ], - "bbox": [ - 239.19985961914062, - 702.050048828125, - 244.99986267089844, - 714.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "=P6\u0015dL…", - "origin": [ - 244.99986267089844, - 704.7500610351562 - ], - "bbox": [ - 244.99986267089844, - 689.8500366210938, - 263.9998474121094, - 714.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u001d\u001c\u001e\u001b\u001f\u001a", - "origin": [ - 263.9998474121094, - 704.7500610351562 - ], - "bbox": [ - 263.9998474121094, - 702.050048828125, - 278.89984130859375, - 714.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ†", - "origin": [ - 278.89984130859375, - 704.7500610351562 - ], - "bbox": [ - 278.89984130859375, - 689.8500366210938, - 285.39984130859375, - 714.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "! #\"", - "origin": [ - 285.39984130859375, - 704.7500610351562 - ], - "bbox": [ - 285.39984130859375, - 702.050048828125, - 297.9998474121094, - 714.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016igocm", - "origin": [ - 297.9998474121094, - 704.7500610351562 - ], - "bbox": [ - 297.9998474121094, - 698.2500610351562, - 315.39984130859375, - 717.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.99984741210938, - 689.8500366210938, - 315.39984130859375, - 717.1500854492188 - ] - } - ] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 78.39984130859375, - 700.9500122070312, - 269.2998046875, - 728.2500610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 78.39984130859375, - 715.8500366210938 - ], - "bbox": [ - 78.39984130859375, - 709.3500366210938, - 78.39984130859375, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39984130859375, - 715.8500366210938 - ], - "bbox": [ - 78.39984130859375, - 708.8500366210938, - 82.69984436035156, - 727.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010h/ReO°¶-MP•\u0018K^EGO\u0018O", - "origin": [ - 82.69984436035156, - 715.8500366210938 - ], - "bbox": [ - 82.69984436035156, - 709.3500366210938, - 139.99981689453125, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "%$", - "origin": [ - 139.99981689453125, - 715.8500366210938 - ], - "bbox": [ - 139.99981689453125, - 713.1500244140625, - 148.09982299804688, - 725.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016o", - "origin": [ - 148.09982299804688, - 715.8500366210938 - ], - "bbox": [ - 148.09982299804688, - 709.3500366210938, - 156.29981994628906, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&\u0018", - "origin": [ - 156.29981994628906, - 715.8500366210938 - ], - "bbox": [ - 156.29981994628906, - 713.1500244140625, - 160.49981689453125, - 725.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eiep", - "origin": [ - 160.49981689453125, - 715.8500366210938 - ], - "bbox": [ - 160.49981689453125, - 709.3500366210938, - 169.6998291015625, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "'\u001a", - "origin": [ - 169.6998291015625, - 715.8500366210938 - ], - "bbox": [ - 169.6998291015625, - 713.1500244140625, - 177.59982299804688, - 725.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.39984130859375, - 708.8500366210938, - 177.59982299804688, - 728.2500610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "8f8do_27C9?fd", - "origin": [ - 184.39984130859375, - 715.8500366210938 - ], - "bbox": [ - 184.39984130859375, - 700.9500122070312, - 221.79983520507812, - 725.8500366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")(*(", - "origin": [ - 221.79983520507812, - 715.8500366210938 - ], - "bbox": [ - 221.79983520507812, - 713.1500244140625, - 232.4998321533203, - 725.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";m", - "origin": [ - 232.4998321533203, - 715.8500366210938 - ], - "bbox": [ - 232.4998321533203, - 709.3500366210938, - 240.8998260498047, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",+", - "origin": [ - 240.8998260498047, - 715.8500366210938 - ], - "bbox": [ - 240.8998260498047, - 713.1500244140625, - 245.29981994628906, - 725.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/qg`rq", - "origin": [ - 245.29981994628906, - 715.8500366210938 - ], - "bbox": [ - 245.29981994628906, - 709.3500366210938, - 260.2998046875, - 728.2500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-+-\u0018", - "origin": [ - 260.2998046875, - 715.8500366210938 - ], - "bbox": [ - 260.2998046875, - 713.1500244140625, - 269.2998046875, - 725.2500610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 184.39984130859375, - 700.9500122070312, - 269.2998046875, - 728.2500610351562 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 78.29984283447266, - 711.8500366210938, - 376.2998352050781, - 748.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i", - "origin": [ - 78.29984283447266, - 726.7500610351562 - ], - "bbox": [ - 78.29984283447266, - 720.2500610351562, - 78.29984283447266, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29984283447266, - 726.7500610351562 - ], - "bbox": [ - 78.29984283447266, - 719.7500610351562, - 82.69984436035156, - 738.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016¨", - "origin": [ - 82.69984436035156, - 726.7500610351562 - ], - "bbox": [ - 82.69984436035156, - 720.2500610351562, - 90.89984130859375, - 739.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.29984283447266, - 719.7500610351562, - 90.89984130859375, - 739.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "H\u0018ÀBRQRG ºH", - "origin": [ - 92.89984130859375, - 726.7500610351562 - ], - "bbox": [ - 92.89984130859375, - 720.2500610351562, - 117.09984588623047, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/.", - "origin": [ - 117.09984588623047, - 726.7500610351562 - ], - "bbox": [ - 117.09984588623047, - 724.050048828125, - 124.09984588623047, - 736.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.89984130859375, - 720.2500610351562, - 124.09984588623047, - 739.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 134.39984130859375, - 726.7500610351562 - ], - "bbox": [ - 134.39984130859375, - 720.2500610351562, - 134.39984130859375, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010", - "origin": [ - 134.39984130859375, - 726.7500610351562 - ], - "bbox": [ - 134.39984130859375, - 724.050048828125, - 143.49984741210938, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eq", - "origin": [ - 143.49984741210938, - 726.7500610351562 - ], - "bbox": [ - 143.49984741210938, - 720.2500610351562, - 148.099853515625, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "32", - "origin": [ - 148.099853515625, - 726.7500610351562 - ], - "bbox": [ - 148.099853515625, - 724.050048828125, - 156.2998504638672, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad;€L?vuNSPd", - "origin": [ - 156.2998504638672, - 726.7500610351562 - ], - "bbox": [ - 156.2998504638672, - 711.8500366210938, - 186.4998321533203, - 736.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "5476", - "origin": [ - 186.4998321533203, - 726.7500610351562 - ], - "bbox": [ - 186.4998321533203, - 724.050048828125, - 196.79981994628906, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI78Gh5d", - "origin": [ - 196.79981994628906, - 726.7500610351562 - ], - "bbox": [ - 196.79981994628906, - 711.8500366210938, - 215.79981994628906, - 736.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�\u001b", - "origin": [ - 215.79981994628906, - 726.7500610351562 - ], - "bbox": [ - 215.79981994628906, - 724.050048828125, - 221.59982299804688, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ";:DBGd", - "origin": [ - 221.59982299804688, - 726.7500610351562 - ], - "bbox": [ - 221.59982299804688, - 711.8500366210938, - 235.09982299804688, - 736.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")8)\"30", - "origin": [ - 235.09982299804688, - 726.7500610351562 - ], - "bbox": [ - 235.09982299804688, - 724.050048828125, - 254.0998077392578, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ToZp", - "origin": [ - 254.0998077392578, - 726.7500610351562 - ], - "bbox": [ - 254.0998077392578, - 720.2500610351562, - 263.2998352050781, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 263.2998352050781, - 726.7500610351562 - ], - "bbox": [ - 263.2998352050781, - 724.050048828125, - 267.7998352050781, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gocm", - "origin": [ - 267.7998352050781, - 726.7500610351562 - ], - "bbox": [ - 267.7998352050781, - 720.2500610351562, - 276.99981689453125, - 739.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.39984130859375, - 711.8500366210938, - 276.99981689453125, - 739.1500854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 285.29986572265625, - 726.7500610351562 - ], - "bbox": [ - 285.29986572265625, - 713.8500366210938, - 285.29986572265625, - 748.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€\u0017B<:\u0018@‡B16^8fC", - "origin": [ - 285.29986572265625, - 726.7500610351562 - ], - "bbox": [ - 285.29986572265625, - 711.8500366210938, - 319.1998596191406, - 736.7500610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 319.1998596191406, - 726.7500610351562 - ], - "bbox": [ - 319.1998596191406, - 720.2500610351562, - 329.39984130859375, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 329.39984130859375, - 726.7500610351562 - ], - "bbox": [ - 329.39984130859375, - 724.050048828125, - 333.099853515625, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADhrv", - "origin": [ - 333.099853515625, - 726.7500610351562 - ], - "bbox": [ - 333.099853515625, - 720.2500610351562, - 347.9998474121094, - 739.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 285.29986572265625, - 711.8500366210938, - 347.9998474121094, - 748.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u001dEGOgHIklC", - "origin": [ - 350.099853515625, - 726.7500610351562 - ], - "bbox": [ - 350.099853515625, - 720.2500610351562, - 376.2998352050781, - 739.1500854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.099853515625, - 720.2500610351562, - 376.2998352050781, - 739.1500854492188 - ] - } - ] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 381.39984130859375, - 720.050048828125, - 386.7998352050781, - 738.9500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 381.39984130859375, - 726.550048828125 - ], - "bbox": [ - 381.39984130859375, - 720.050048828125, - 381.39984130859375, - 738.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ");", - "origin": [ - 381.39984130859375, - 726.550048828125 - ], - "bbox": [ - 381.39984130859375, - 723.8500366210938, - 386.7998352050781, - 735.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 381.39984130859375, - 720.050048828125, - 386.7998352050781, - 738.9500732421875 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 391.2998352050781, - 713.8500366210938, - 423.29986572265625, - 748.550048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 391.2998352050781, - 726.7500610351562 - ], - "bbox": [ - 391.2998352050781, - 724.050048828125, - 391.2998352050781, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1n", - "origin": [ - 391.2998352050781, - 726.7500610351562 - ], - "bbox": [ - 391.2998352050781, - 720.2500610351562, - 395.7998352050781, - 739.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "10", - "origin": [ - 395.7998352050781, - 726.7500610351562 - ], - "bbox": [ - 395.7998352050781, - 724.050048828125, - 400.39984130859375, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 400.39984130859375, - 726.7500610351562 - ], - "bbox": [ - 400.39984130859375, - 713.8500366210938, - 404.7998352050781, - 748.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "<010-+", - "origin": [ - 404.7998352050781, - 726.7500610351562 - ], - "bbox": [ - 404.7998352050781, - 724.050048828125, - 418.599853515625, - 736.1500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 418.599853515625, - 726.7500610351562 - ], - "bbox": [ - 418.599853515625, - 713.8500366210938, - 423.29986572265625, - 748.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 391.2998352050781, - 713.8500366210938, - 423.29986572265625, - 748.550048828125 - ] - } - ] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 78.19983673095703, - 724.7500610351562, - 118.09983825683594, - 759.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 78.19983673095703, - 737.6500854492188 - ], - "bbox": [ - 78.19983673095703, - 724.7500610351562, - 78.19983673095703, - 759.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 78.19983673095703, - 737.6500854492188 - ], - "bbox": [ - 78.19983673095703, - 730.6500854492188, - 82.69983673095703, - 749.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tL§PM^À-k", - "origin": [ - 82.69983673095703, - 737.6500854492188 - ], - "bbox": [ - 82.69983673095703, - 731.1500854492188, - 118.09983825683594, - 750.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.19983673095703, - 724.7500610351562, - 118.09983825683594, - 759.4500732421875 - ] - } - ] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 131.69984436035156, - 722.7500610351562, - 519.39990234375, - 759.4500732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 131.69984436035156, - 737.6500854492188 - ], - "bbox": [ - 131.69984436035156, - 731.1500854492188, - 131.69984436035156, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0101\u0018", - "origin": [ - 131.69984436035156, - 737.6500854492188 - ], - "bbox": [ - 131.69984436035156, - 734.9500732421875, - 145.2998504638672, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "`.18*C\u0018d", - "origin": [ - 145.2998504638672, - 737.6500854492188 - ], - "bbox": [ - 145.2998504638672, - 722.7500610351562, - 166.19985961914062, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "=2", - "origin": [ - 166.19985961914062, - 737.6500854492188 - ], - "bbox": [ - 166.19985961914062, - 734.9500732421875, - 172.79986572265625, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad", - "origin": [ - 172.79986572265625, - 737.6500854492188 - ], - "bbox": [ - 172.79986572265625, - 722.7500610351562, - 177.79986572265625, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/>", - "origin": [ - 177.79986572265625, - 737.6500854492188 - ], - "bbox": [ - 177.79986572265625, - 734.9500732421875, - 184.79986572265625, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ[fdˆ.185hGdn…^.", - "origin": [ - 184.79986572265625, - 737.6500854492188 - ], - "bbox": [ - 184.79986572265625, - 722.7500610351562, - 224.79986572265625, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "?2*>", - "origin": [ - 224.79986572265625, - 737.6500854492188 - ], - "bbox": [ - 224.79986572265625, - 734.9500732421875, - 233.99986267089844, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "W.\u0018†", - "origin": [ - 233.99986267089844, - 737.6500854492188 - ], - "bbox": [ - 233.99986267089844, - 722.7500610351562, - 243.59986877441406, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�\"@+", - "origin": [ - 243.59986877441406, - 737.6500854492188 - ], - "bbox": [ - 243.59986877441406, - 734.9500732421875, - 260.099853515625, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eick", - "origin": [ - 260.099853515625, - 737.6500854492188 - ], - "bbox": [ - 260.099853515625, - 731.1500854492188, - 268.9998474121094, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "A\u0018", - "origin": [ - 268.9998474121094, - 737.6500854492188 - ], - "bbox": [ - 268.9998474121094, - 734.9500732421875, - 272.2998352050781, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "en", - "origin": [ - 272.2998352050781, - 737.6500854492188 - ], - "bbox": [ - 272.2998352050781, - 731.1500854492188, - 276.89984130859375, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "FV", - "origin": [ - 276.89984130859375, - 737.6500854492188 - ], - "bbox": [ - 276.89984130859375, - 724.7500610351562, - 285.7998352050781, - 759.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 285.7998352050781, - 737.6500854492188 - ], - "bbox": [ - 285.7998352050781, - 722.7500610351562, - 319.6998291015625, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGF", - "origin": [ - 319.6998291015625, - 737.6500854492188 - ], - "bbox": [ - 319.6998291015625, - 731.1500854492188, - 330.5998229980469, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 330.5998229980469, - 737.6500854492188 - ], - "bbox": [ - 330.5998229980469, - 734.9500732421875, - 334.2998352050781, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADhrv", - "origin": [ - 334.2998352050781, - 737.6500854492188 - ], - "bbox": [ - 334.2998352050781, - 731.1500854492188, - 349.1998291015625, - 750.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.69984436035156, - 722.7500610351562, - 349.1998291015625, - 759.4500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "01+-0", - "origin": [ - 351.29986572265625, - 737.6500854492188 - ], - "bbox": [ - 351.29986572265625, - 734.9500732421875, - 360.3998718261719, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "engš", - "origin": [ - 360.3998718261719, - 737.6500854492188 - ], - "bbox": [ - 360.3998718261719, - 731.1500854492188, - 369.8998718261719, - 750.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.29986572265625, - 731.1500854492188, - 369.8998718261719, - 750.0501098632812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i", - "origin": [ - 372.099853515625, - 737.6500854492188 - ], - "bbox": [ - 372.099853515625, - 731.1500854492188, - 372.099853515625, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 372.099853515625, - 737.6500854492188 - ], - "bbox": [ - 372.099853515625, - 724.7500610351562, - 376.4998474121094, - 759.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "<0-+", - "origin": [ - 376.4998474121094, - 737.6500854492188 - ], - "bbox": [ - 376.4998474121094, - 734.9500732421875, - 385.6998596191406, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 385.6998596191406, - 737.6500854492188 - ], - "bbox": [ - 385.6998596191406, - 724.7500610351562, - 390.3998718261719, - 759.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.099853515625, - 724.7500610351562, - 390.3998718261719, - 759.4500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "[", - "origin": [ - 394.29986572265625, - 737.6500854492188 - ], - "bbox": [ - 394.29986572265625, - 724.7500610351562, - 394.29986572265625, - 759.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "RXbIwd", - "origin": [ - 394.29986572265625, - 737.6500854492188 - ], - "bbox": [ - 394.29986572265625, - 722.7500610351562, - 410.8998718261719, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "up", - "origin": [ - 410.8998718261719, - 737.6500854492188 - ], - "bbox": [ - 410.8998718261719, - 731.1500854492188, - 416.8998718261719, - 750.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01\u0018", - "origin": [ - 416.8998718261719, - 737.6500854492188 - ], - "bbox": [ - 416.8998718261719, - 734.9500732421875, - 430.4998779296875, - 747.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "+", - "origin": [ - 430.4998779296875, - 737.6500854492188 - ], - "bbox": [ - 430.4998779296875, - 722.7500610351562, - 439.0998840332031, - 747.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gTKNKNM]HIFI%EGXICrMPY]HJX½ALO", - "origin": [ - 439.0998840332031, - 737.6500854492188 - ], - "bbox": [ - 439.0998840332031, - 731.1500854492188, - 519.39990234375, - 750.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 394.29986572265625, - 722.7500610351562, - 519.39990234375, - 759.4500732421875 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 100.39987182617188, - 742.1500854492188, - 190.39988708496094, - 761.0501098632812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPKNM]FJd1MPOQH°”Q•\u001dEGOQHJ•\u0018K", - "origin": [ - 100.39987182617188, - 748.6500854492188 - ], - "bbox": [ - 100.39987182617188, - 742.1500854492188, - 168.1998748779297, - 761.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.39987182617188, - 742.1500854492188, - 168.1998748779297, - 761.0501098632812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNMPY", - "origin": [ - 178.4998779296875, - 748.6500854492188 - ], - "bbox": [ - 178.4998779296875, - 742.1500854492188, - 190.39988708496094, - 761.0501098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.4998779296875, - 742.1500854492188, - 190.39988708496094, - 761.0501098632812 - ] - } - ] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 199.4998779296875, - 733.7500610351562, - 522.4999389648438, - 761.0501098632812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaALYPX", - "origin": [ - 199.4998779296875, - 748.6500854492188 - ], - "bbox": [ - 199.4998779296875, - 742.1500854492188, - 215.69989013671875, - 761.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0017€ƒB†5i", - "origin": [ - 363.59991455078125, - 748.6500854492188 - ], - "bbox": [ - 363.59991455078125, - 733.7500610351562, - 389.3999328613281, - 758.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "IB", - "origin": [ - 389.3999328613281, - 748.6500854492188 - ], - "bbox": [ - 389.3999328613281, - 745.9500732421875, - 395.2999267578125, - 758.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "q:<=1:D03\\1:DB", - "origin": [ - 395.2999267578125, - 748.6500854492188 - ], - "bbox": [ - 395.2999267578125, - 733.7500610351562, - 429.5998840332031, - 758.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "7J1J", - "origin": [ - 429.5998840332031, - 748.6500854492188 - ], - "bbox": [ - 429.5998840332031, - 745.9500732421875, - 441.5998840332031, - 758.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "7O", - "origin": [ - 441.5998840332031, - 748.6500854492188 - ], - "bbox": [ - 441.5998840332031, - 733.7500610351562, - 446.0998840332031, - 758.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "KJ1L", - "origin": [ - 446.0998840332031, - 748.6500854492188 - ], - "bbox": [ - 446.0998840332031, - 745.9500732421875, - 454.19989013671875, - 758.0501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ni", - "origin": [ - 454.19989013671875, - 748.6500854492188 - ], - "bbox": [ - 454.19989013671875, - 733.7500610351562, - 458.5998840332031, - 758.6500854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "NM\u001fD", - "origin": [ - 78.4000015258789, - 117.6500244140625 - ], - "bbox": [ - 78.4000015258789, - 110.6500244140625, - 82.70000457763672, - 129.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016¨", - "origin": [ - 82.70000457763672, - 117.6500244140625 - ], - "bbox": [ - 82.70000457763672, - 111.1500244140625, - 90.90000915527344, - 130.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.4000015258789, - 110.6500244140625, - 90.90000915527344, - 130.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "H\u0018ÀBRQRG ºH", - "origin": [ - 92.9000015258789, - 117.6500244140625 - ], - "bbox": [ - 92.9000015258789, - 111.1500244140625, - 117.10000610351562, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/.", - "origin": [ - 117.10000610351562, - 117.6500244140625 - ], - "bbox": [ - 117.10000610351562, - 114.95002746582031, - 124.10000610351562, - 127.0500259399414 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.9000015258789, - 111.1500244140625, - 124.10000610351562, - 130.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 134.39999389648438, - 117.6500244140625 - ], - "bbox": [ - 134.39999389648438, - 111.1500244140625, - 134.39999389648438, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010", - "origin": [ - 134.39999389648438, - 117.6500244140625 - ], - "bbox": [ - 134.39999389648438, - 114.95002746582031, - 143.5, - 127.0500259399414 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1i", - "origin": [ - 143.5, - 117.6500244140625 - ], - "bbox": [ - 143.5, - 111.1500244140625, - 148.0, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "J.18fC\u0018d", - "origin": [ - 148.0, - 117.6500244140625 - ], - "bbox": [ - 148.0, - 102.7500228881836, - 168.3000030517578, - 127.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "I2", - "origin": [ - 168.3000030517578, - 117.6500244140625 - ], - "bbox": [ - 168.3000030517578, - 114.95002746582031, - 174.1999969482422, - 127.0500259399414 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Adƒmo?f:Iwd", - "origin": [ - 284.0, - 117.6500244140625 - ], - "bbox": [ - 284.0, - 102.7500228881836, - 299.6000061035156, - 127.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "©o", - "origin": [ - 299.6000061035156, - 117.6500244140625 - ], - "bbox": [ - 299.6000061035156, - 111.1500244140625, - 305.3000183105469, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u00181\u0018-\u0018@6", - "origin": [ - 305.3000183105469, - 117.6500244140625 - ], - "bbox": [ - 305.3000183105469, - 114.95002746582031, - 327.3000183105469, - 127.0500259399414 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "cFY27S-SGd", - "origin": [ - 327.3000183105469, - 117.6500244140625 - ], - "bbox": [ - 327.3000183105469, - 102.7500228881836, - 348.2000427246094, - 127.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 284.0, - 102.7500228881836, - 348.2000427246094, - 139.4500274658203 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ">", - "origin": [ - 354.6000061035156, - 117.6500244140625 - ], - "bbox": [ - 354.6000061035156, - 114.95002746582031, - 354.6000061035156, - 127.0500259399414 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ[*278*C\u0018d", - "origin": [ - 354.6000061035156, - 117.6500244140625 - ], - "bbox": [ - 354.6000061035156, - 102.7500228881836, - 379.1000061035156, - 127.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 379.1000061035156, - 117.6500244140625 - ], - "bbox": [ - 379.1000061035156, - 117.45002746582031, - 385.70001220703125, - 126.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "LB<27M7d", - "origin": [ - 385.70001220703125, - 117.6500244140625 - ], - "bbox": [ - 385.70001220703125, - 102.7500228881836, - 404.70001220703125, - 127.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "P \u001f8", - "origin": [ - 404.70001220703125, - 117.6500244140625 - ], - "bbox": [ - 404.70001220703125, - 114.95002746582031, - 415.4000244140625, - 127.0500259399414 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";iep1neick™i/peq", - "origin": [ - 415.4000244140625, - 117.6500244140625 - ], - "bbox": [ - 415.4000244140625, - 111.1500244140625, - 454.4000244140625, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",\u0018", - "origin": [ - 454.4000244140625, - 117.6500244140625 - ], - "bbox": [ - 454.4000244140625, - 114.95002746582031, - 458.8000183105469, - 127.0500259399414 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.6000061035156, - 102.7500228881836, - 458.8000183105469, - 130.05001831054688 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 78.29998779296875, - 121.550048828125, - 117.49999237060547, - 140.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "n", - "origin": [ - 78.29998779296875, - 128.550048828125 - ], - "bbox": [ - 78.29998779296875, - 122.050048828125, - 78.29998779296875, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29998779296875, - 128.550048828125 - ], - "bbox": [ - 78.29998779296875, - 121.550048828125, - 82.69998931884766, - 139.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tL§PM­À-k", - "origin": [ - 82.69998931884766, - 128.550048828125 - ], - "bbox": [ - 82.69998931884766, - 122.050048828125, - 117.49999237060547, - 140.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.29998779296875, - 121.550048828125, - 117.49999237060547, - 140.95004272460938 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 130.59999084472656, - 113.6500473022461, - 366.1000061035156, - 150.3500518798828 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 130.59999084472656, - 128.550048828125 - ], - "bbox": [ - 130.59999084472656, - 122.050048828125, - 130.59999084472656, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 130.59999084472656, - 128.550048828125 - ], - "bbox": [ - 130.59999084472656, - 125.85005187988281, - 139.59999084472656, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "en", - "origin": [ - 139.59999084472656, - 128.550048828125 - ], - "bbox": [ - 139.59999084472656, - 122.050048828125, - 144.1999969482422, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\r2", - "origin": [ - 144.1999969482422, - 128.550048828125 - ], - "bbox": [ - 144.1999969482422, - 125.85005187988281, - 152.5, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad\u000e€L?wu7SPd", - "origin": [ - 152.5, - 128.550048828125 - ], - "bbox": [ - 152.5, - 113.6500473022461, - 182.8000030517578, - 138.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "54", - "origin": [ - 182.8000030517578, - 128.550048828125 - ], - "bbox": [ - 182.8000030517578, - 125.85005187988281, - 185.6999969482422, - 137.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 130.59999084472656, - 113.6500473022461, - 185.6999969482422, - 140.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "6", - "origin": [ - 193.29998779296875, - 128.550048828125 - ], - "bbox": [ - 193.29998779296875, - 125.85005187988281, - 193.29998779296875, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI78Gh5d", - "origin": [ - 193.29998779296875, - 128.550048828125 - ], - "bbox": [ - 193.29998779296875, - 113.6500473022461, - 212.29998779296875, - 138.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�\u001b", - "origin": [ - 212.29998779296875, - 128.550048828125 - ], - "bbox": [ - 212.29998779296875, - 125.85005187988281, - 218.09999084472656, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ";:DBGd", - "origin": [ - 218.09999084472656, - 128.550048828125 - ], - "bbox": [ - 218.09999084472656, - 113.6500473022461, - 231.59999084472656, - 138.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")(*(", - "origin": [ - 231.59999084472656, - 128.550048828125 - ], - "bbox": [ - 231.59999084472656, - 125.85005187988281, - 242.29998779296875, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";i", - "origin": [ - 242.29998779296875, - 128.550048828125 - ], - "bbox": [ - 242.29998779296875, - 122.050048828125, - 250.69998168945312, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1\u00181\u0018", - "origin": [ - 250.69998168945312, - 128.550048828125 - ], - "bbox": [ - 250.69998168945312, - 125.85005187988281, - 259.8999938964844, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ck", - "origin": [ - 259.8999938964844, - 128.550048828125 - ], - "bbox": [ - 259.8999938964844, - 122.050048828125, - 264.1999816894531, - 140.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.29998779296875, - 113.6500473022461, - 264.1999816894531, - 140.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 267.3999938964844, - 128.550048828125 - ], - "bbox": [ - 267.3999938964844, - 115.6500473022461, - 267.3999938964844, - 150.3500518798828 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "<0", - "origin": [ - 267.3999938964844, - 128.550048828125 - ], - "bbox": [ - 267.3999938964844, - 125.85005187988281, - 272.1000061035156, - 137.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.3999938964844, - 115.6500473022461, - 272.1000061035156, - 150.3500518798828 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "YOV", - "origin": [ - 276.6000061035156, - 128.550048828125 - ], - "bbox": [ - 276.6000061035156, - 115.6500473022461, - 285.1000061035156, - 150.3500518798828 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@‡B16^8*C", - "origin": [ - 285.1000061035156, - 128.550048828125 - ], - "bbox": [ - 285.1000061035156, - 113.6500473022461, - 318.8999938964844, - 138.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uEGF", - "origin": [ - 318.8999938964844, - 128.550048828125 - ], - "bbox": [ - 318.8999938964844, - 122.050048828125, - 329.29998779296875, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 329.29998779296875, - 128.550048828125 - ], - "bbox": [ - 329.29998779296875, - 125.85005187988281, - 333.0, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 333.0, - 128.550048828125 - ], - "bbox": [ - 333.0, - 122.050048828125, - 347.8999938964844, - 140.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.6000061035156, - 113.6500473022461, - 347.8999938964844, - 150.3500518798828 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "dGFIk=”QY", - "origin": [ - 349.9000244140625, - 128.550048828125 - ], - "bbox": [ - 349.9000244140625, - 122.050048828125, - 366.1000061035156, - 140.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.9000244140625, - 122.050048828125, - 366.1000061035156, - 140.95004272460938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 374.8000183105469, - 113.6500473022461, - 519.5, - 150.3500518798828 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 374.8000183105469, - 128.550048828125 - ], - "bbox": [ - 374.8000183105469, - 125.85005187988281, - 374.8000183105469, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/mQocp", - "origin": [ - 374.8000183105469, - 128.550048828125 - ], - "bbox": [ - 374.8000183105469, - 122.050048828125, - 388.6000061035156, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 388.6000061035156, - 128.550048828125 - ], - "bbox": [ - 388.6000061035156, - 125.85005187988281, - 393.1000061035156, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "goZn", - "origin": [ - 393.1000061035156, - 128.550048828125 - ], - "bbox": [ - 393.1000061035156, - 122.050048828125, - 402.20001220703125, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "XW", - "origin": [ - 402.20001220703125, - 128.550048828125 - ], - "bbox": [ - 402.20001220703125, - 115.6500473022461, - 406.8000183105469, - 150.3500518798828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 374.8000183105469, - 115.6500473022461, - 406.8000183105469, - 150.3500518798828 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "[", - "origin": [ - 410.70001220703125, - 128.550048828125 - ], - "bbox": [ - 410.70001220703125, - 115.6500473022461, - 410.70001220703125, - 150.3500518798828 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "LXbIwd", - "origin": [ - 410.70001220703125, - 128.550048828125 - ], - "bbox": [ - 410.70001220703125, - 113.6500473022461, - 426.5, - 138.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rp", - "origin": [ - 426.5, - 128.550048828125 - ], - "bbox": [ - 426.5, - 122.050048828125, - 431.8999938964844, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 431.8999938964844, - 128.550048828125 - ], - "bbox": [ - 431.8999938964844, - 125.85005187988281, - 440.8999938964844, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 440.8999938964844, - 128.550048828125 - ], - "bbox": [ - 440.8999938964844, - 122.050048828125, - 445.6000061035156, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Jx,B<2G|Nd", - "origin": [ - 445.6000061035156, - 128.550048828125 - ], - "bbox": [ - 445.6000061035156, - 113.6500473022461, - 472.4000244140625, - 138.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 410.70001220703125, - 113.6500473022461, - 472.4000244140625, - 150.3500518798828 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "2", - "origin": [ - 478.4000244140625, - 128.550048828125 - ], - "bbox": [ - 478.4000244140625, - 125.85005187988281, - 478.4000244140625, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad\u000e€L?vuNSPd", - "origin": [ - 478.4000244140625, - 128.550048828125 - ], - "bbox": [ - 478.4000244140625, - 113.6500473022461, - 508.70001220703125, - 138.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.4000244140625, - 113.6500473022461, - 508.70001220703125, - 138.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "(", - "origin": [ - 514.2000122070312, - 128.550048828125 - ], - "bbox": [ - 514.2000122070312, - 125.85005187988281, - 514.2000122070312, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 514.2000122070312, - 128.550048828125 - ], - "bbox": [ - 514.2000122070312, - 128.3500518798828, - 519.5, - 137.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.2000122070312, - 125.85005187988281, - 519.5, - 137.95004272460938 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 105.0, - 124.6500473022461, - 275.3000183105469, - 161.3500518798828 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 105.0, - 139.550048828125 - ], - "bbox": [ - 105.0, - 126.6500473022461, - 105.0, - 161.3500518798828 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eiGk™i/m", - "origin": [ - 105.0, - 139.550048828125 - ], - "bbox": [ - 105.0, - 133.050048828125, - 122.0, - 151.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0", - "origin": [ - 122.0, - 139.550048828125 - ], - "bbox": [ - 122.0, - 136.8500518798828, - 126.4000015258789, - 148.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0016[", - "origin": [ - 126.4000015258789, - 139.550048828125 - ], - "bbox": [ - 126.4000015258789, - 126.6500473022461, - 131.40000915527344, - 161.3500518798828 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "rX>Iwd", - "origin": [ - 131.40000915527344, - 139.550048828125 - ], - "bbox": [ - 131.40000915527344, - 124.6500473022461, - 146.8000030517578, - 149.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rp", - "origin": [ - 146.8000030517578, - 139.550048828125 - ], - "bbox": [ - 146.8000030517578, - 133.050048828125, - 152.1999969482422, - 151.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 152.1999969482422, - 139.550048828125 - ], - "bbox": [ - 152.1999969482422, - 136.8500518798828, - 161.1999969482422, - 148.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ei", - "origin": [ - 161.1999969482422, - 139.550048828125 - ], - "bbox": [ - 161.1999969482422, - 133.050048828125, - 165.8000030517578, - 151.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c€W?vuNSGd\u000ezr:DCEC\u0018d", - "origin": [ - 165.8000030517578, - 139.550048828125 - ], - "bbox": [ - 165.8000030517578, - 124.6500473022461, - 215.09999084472656, - 149.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 215.09999084472656, - 139.550048828125 - ], - "bbox": [ - 215.09999084472656, - 139.3500518798828, - 220.49998474121094, - 148.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.0, - 124.6500473022461, - 220.49998474121094, - 161.3500518798828 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": " ", - "origin": [ - 236.10000610351562, - 139.550048828125 - ], - "bbox": [ - 236.10000610351562, - 136.8500518798828, - 236.10000610351562, - 148.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\n�", - "origin": [ - 236.10000610351562, - 139.550048828125 - ], - "bbox": [ - 236.10000610351562, - 139.3500518798828, - 241.0, - 148.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&oeo", - "origin": [ - 241.0, - 139.550048828125 - ], - "bbox": [ - 241.0, - 133.050048828125, - 254.40000915527344, - 151.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u00190", - "origin": [ - 254.40000915527344, - 139.550048828125 - ], - "bbox": [ - 254.40000915527344, - 136.8500518798828, - 258.5, - 148.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "GkJoeo", - "origin": [ - 258.5, - 139.550048828125 - ], - "bbox": [ - 258.5, - 133.050048828125, - 271.20001220703125, - 151.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019+", - "origin": [ - 271.20001220703125, - 139.550048828125 - ], - "bbox": [ - 271.20001220703125, - 136.8500518798828, - 275.3000183105469, - 148.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 236.10000610351562, - 133.050048828125, - 275.3000183105469, - 151.95004272460938 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 78.4000015258789, - 135.55007934570312, - 455.5999755859375, - 172.2500762939453 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "q", - "origin": [ - 78.4000015258789, - 150.4500732421875 - ], - "bbox": [ - 78.4000015258789, - 143.9500732421875, - 78.4000015258789, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.4000015258789, - 150.4500732421875 - ], - "bbox": [ - 78.4000015258789, - 143.4500732421875, - 82.70000457763672, - 161.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N¼6tDE1XIReOaM", - "origin": [ - 82.70000457763672, - 150.4500732421875 - ], - "bbox": [ - 82.70000457763672, - 143.9500732421875, - 117.30000305175781, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\f\u000b", - "origin": [ - 117.30000305175781, - 150.4500732421875 - ], - "bbox": [ - 117.30000305175781, - 150.2500762939453, - 125.20000457763672, - 158.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019`", - "origin": [ - 125.20000457763672, - 150.4500732421875 - ], - "bbox": [ - 125.20000457763672, - 143.9500732421875, - 133.90000915527344, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "P$", - "origin": [ - 133.90000915527344, - 150.4500732421875 - ], - "bbox": [ - 133.90000915527344, - 147.7500762939453, - 139.60000610351562, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eAL§P£\u001dE¢fµEGO\u001dS", - "origin": [ - 139.60000610351562, - 150.4500732421875 - ], - "bbox": [ - 139.60000610351562, - 143.9500732421875, - 183.80001831054688, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.4000015258789, - 143.4500732421875, - 183.80001831054688, - 162.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0015", - "origin": [ - 192.3000030517578, - 150.4500732421875 - ], - "bbox": [ - 192.3000030517578, - 147.7500762939453, - 192.3000030517578, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡tLMPALO\u0018M]FIH¡À", - "origin": [ - 192.3000030517578, - 150.4500732421875 - ], - "bbox": [ - 192.3000030517578, - 143.9500732421875, - 228.60000610351562, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.3000030517578, - 143.9500732421875, - 228.60000610351562, - 162.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 239.20001220703125, - 150.4500732421875 - ], - "bbox": [ - 239.20001220703125, - 143.9500732421875, - 239.20001220703125, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 239.20001220703125, - 150.4500732421875 - ], - "bbox": [ - 239.20001220703125, - 147.7500762939453, - 248.20001220703125, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 248.20001220703125, - 150.4500732421875 - ], - "bbox": [ - 248.20001220703125, - 143.9500732421875, - 252.90000915527344, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 239.20001220703125, - 143.9500732421875, - 252.90000915527344, - 162.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "8*8;d\u001a€W?vuNSGd", - "origin": [ - 268.1000061035156, - 150.4500732421875 - ], - "bbox": [ - 268.1000061035156, - 135.55007934570312, - 304.3999938964844, - 160.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "P(", - "origin": [ - 304.3999938964844, - 150.4500732421875 - ], - "bbox": [ - 304.3999938964844, - 147.7500762939453, - 310.1000061035156, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "��", - "origin": [ - 310.1000061035156, - 150.4500732421875 - ], - "bbox": [ - 310.1000061035156, - 150.2500762939453, - 320.6000061035156, - 158.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 268.1000061035156, - 135.55007934570312, - 320.6000061035156, - 160.4500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 329.3999938964844, - 150.4500732421875 - ], - "bbox": [ - 329.3999938964844, - 137.55007934570312, - 329.3999938964844, - 172.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "en", - "origin": [ - 329.3999938964844, - 150.4500732421875 - ], - "bbox": [ - 329.3999938964844, - 143.9500732421875, - 334.0, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1+", - "origin": [ - 334.0, - 150.4500732421875 - ], - "bbox": [ - 334.0, - 147.7500762939453, - 338.6000061035156, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ck", - "origin": [ - 338.6000061035156, - 150.4500732421875 - ], - "bbox": [ - 338.6000061035156, - 143.9500732421875, - 342.8999938964844, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.3999938964844, - 137.55007934570312, - 342.8999938964844, - 172.2500762939453 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 346.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 346.1999816894531, - 137.55007934570312, - 346.1999816894531, - 172.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1+", - "origin": [ - 346.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 346.1999816894531, - 147.7500762939453, - 350.79998779296875, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "en", - "origin": [ - 350.79998779296875, - 150.4500732421875 - ], - "bbox": [ - 350.79998779296875, - 143.9500732421875, - 355.3999938964844, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.1999816894531, - 137.55007934570312, - 355.3999938964844, - 172.2500762939453 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 364.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 364.1999816894531, - 137.55007934570312, - 364.1999816894531, - 172.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 364.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 364.1999816894531, - 135.55007934570312, - 398.0, - 160.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yEGF", - "origin": [ - 398.0, - 150.4500732421875 - ], - "bbox": [ - 398.0, - 143.9500732421875, - 408.6999816894531, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 408.6999816894531, - 150.4500732421875 - ], - "bbox": [ - 408.6999816894531, - 147.7500762939453, - 412.3999938964844, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 412.3999938964844, - 150.4500732421875 - ], - "bbox": [ - 412.3999938964844, - 143.9500732421875, - 427.29998779296875, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.1999816894531, - 135.55007934570312, - 427.29998779296875, - 172.2500762939453 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u001dE1OQHIklC", - "origin": [ - 429.3999938964844, - 150.4500732421875 - ], - "bbox": [ - 429.3999938964844, - 143.9500732421875, - 455.5999755859375, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.3999938964844, - 143.9500732421875, - 455.5999755859375, - 162.85006713867188 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 460.79998779296875, - 143.75006103515625, - 466.0999755859375, - 162.65005493164062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 460.79998779296875, - 150.25006103515625 - ], - "bbox": [ - 460.79998779296875, - 143.75006103515625, - 460.79998779296875, - 162.65005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*;", - "origin": [ - 460.79998779296875, - 150.25006103515625 - ], - "bbox": [ - 460.79998779296875, - 147.55006408691406, - 466.0999755859375, - 159.65005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 460.79998779296875, - 143.75006103515625, - 466.0999755859375, - 162.65005493164062 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 470.5999755859375, - 135.55007934570312, - 522.4999389648438, - 172.2500762939453 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 470.5999755859375, - 150.4500732421875 - ], - "bbox": [ - 470.5999755859375, - 147.7500762939453, - 470.5999755859375, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em", - "origin": [ - 470.5999755859375, - 150.4500732421875 - ], - "bbox": [ - 470.5999755859375, - 143.9500732421875, - 475.1999816894531, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 475.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 475.1999816894531, - 147.7500762939453, - 479.6999816894531, - 159.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 470.5999755859375, - 143.9500732421875, - 479.6999816894531, - 162.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 484.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 484.1999816894531, - 137.55007934570312, - 484.1999816894531, - 172.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 484.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 484.1999816894531, - 143.9500732421875, - 488.8999938964844, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 488.8999938964844, - 150.4500732421875 - ], - "bbox": [ - 488.8999938964844, - 147.7500762939453, - 497.8999938964844, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 497.8999938964844, - 150.4500732421875 - ], - "bbox": [ - 497.8999938964844, - 137.55007934570312, - 502.6000061035156, - 172.2500762939453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 484.1999816894531, - 137.55007934570312, - 502.6000061035156, - 172.2500762939453 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "[", - "origin": [ - 506.4999694824219, - 150.4500732421875 - ], - "bbox": [ - 506.4999694824219, - 137.55007934570312, - 506.4999694824219, - 172.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0017XbIwd", - "origin": [ - 506.4999694824219, - 150.4500732421875 - ], - "bbox": [ - 506.4999694824219, - 135.55007934570312, - 522.4999389648438, - 160.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 506.4999694824219, - 135.55007934570312, - 522.4999389648438, - 172.2500762939453 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 100.5999755859375, - 146.55007934570312, - 361.6999816894531, - 183.2500762939453 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 100.5999755859375, - 161.4500732421875 - ], - "bbox": [ - 100.5999755859375, - 154.9500732421875, - 100.5999755859375, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 100.5999755859375, - 161.4500732421875 - ], - "bbox": [ - 100.5999755859375, - 158.7500762939453, - 109.5999755859375, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 109.5999755859375, - 161.4500732421875 - ], - "bbox": [ - 109.5999755859375, - 154.9500732421875, - 114.29997253417969, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001cx,B#25|jd", - "origin": [ - 114.29997253417969, - 161.4500732421875 - ], - "bbox": [ - 114.29997253417969, - 146.55007934570312, - 140.8999786376953, - 171.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "N2", - "origin": [ - 140.8999786376953, - 161.4500732421875 - ], - "bbox": [ - 140.8999786376953, - 158.7500762939453, - 146.99998474121094, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad;€W?vuNSGd", - "origin": [ - 146.99998474121094, - 161.4500732421875 - ], - "bbox": [ - 146.99998474121094, - 146.55007934570312, - 177.19998168945312, - 171.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")(", - "origin": [ - 177.19998168945312, - 161.4500732421875 - ], - "bbox": [ - 177.19998168945312, - 158.7500762939453, - 182.5999755859375, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 182.5999755859375, - 161.4500732421875 - ], - "bbox": [ - 182.5999755859375, - 161.2500762939453, - 187.7999725341797, - 169.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.5999755859375, - 146.55007934570312, - 187.7999725341797, - 173.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 195.99996948242188, - 161.4500732421875 - ], - "bbox": [ - 195.99996948242188, - 148.55007934570312, - 195.99996948242188, - 183.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "<\u0018", - "origin": [ - 195.99996948242188, - 161.4500732421875 - ], - "bbox": [ - 195.99996948242188, - 158.7500762939453, - 200.69996643066406, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/qZk=m", - "origin": [ - 200.69996643066406, - 161.4500732421875 - ], - "bbox": [ - 200.69996643066406, - 154.9500732421875, - 212.9999542236328, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 212.9999542236328, - 161.4500732421875 - ], - "bbox": [ - 212.9999542236328, - 158.7500762939453, - 217.4999542236328, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 217.4999542236328, - 161.4500732421875 - ], - "bbox": [ - 217.4999542236328, - 154.9500732421875, - 222.199951171875, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": " [", - "origin": [ - 222.199951171875, - 161.4500732421875 - ], - "bbox": [ - 222.199951171875, - 148.55007934570312, - 226.9999542236328, - 183.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "cX>Iwd", - "origin": [ - 226.9999542236328, - 161.4500732421875 - ], - "bbox": [ - 226.9999542236328, - 146.55007934570312, - 242.59996032714844, - 171.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0018p", - "origin": [ - 242.59996032714844, - 161.4500732421875 - ], - "bbox": [ - 242.59996032714844, - 154.9500732421875, - 247.79995727539062, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010", - "origin": [ - 247.79995727539062, - 161.4500732421875 - ], - "bbox": [ - 247.79995727539062, - 158.7500762939453, - 256.89996337890625, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em", - "origin": [ - 256.89996337890625, - 161.4500732421875 - ], - "bbox": [ - 256.89996337890625, - 154.9500732421875, - 261.4999694824219, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c€L?vuNSPd", - "origin": [ - 261.4999694824219, - 161.4500732421875 - ], - "bbox": [ - 261.4999694824219, - 146.55007934570312, - 289.0999450683594, - 171.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u000e\r", - "origin": [ - 289.0999450683594, - 161.4500732421875 - ], - "bbox": [ - 289.0999450683594, - 161.2500762939453, - 294.699951171875, - 169.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.99996948242188, - 146.55007934570312, - 294.699951171875, - 183.2500762939453 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ":DM7d", - "origin": [ - 301.4999694824219, - 161.4500732421875 - ], - "bbox": [ - 301.4999694824219, - 146.55007934570312, - 309.89996337890625, - 171.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 309.89996337890625, - 161.4500732421875 - ], - "bbox": [ - 309.89996337890625, - 161.2500762939453, - 315.199951171875, - 169.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.4999694824219, - 146.55007934570312, - 315.199951171875, - 171.4500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 338.7999572753906, - 161.4500732421875 - ], - "bbox": [ - 338.7999572753906, - 158.7500762939453, - 338.7999572753906, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m1pem", - "origin": [ - 338.7999572753906, - 161.4500732421875 - ], - "bbox": [ - 338.7999572753906, - 154.9500732421875, - 352.5999755859375, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 352.5999755859375, - 161.4500732421875 - ], - "bbox": [ - 352.5999755859375, - 158.7500762939453, - 357.0999755859375, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eq", - "origin": [ - 357.0999755859375, - 161.4500732421875 - ], - "bbox": [ - 357.0999755859375, - 154.9500732421875, - 361.6999816894531, - 173.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.7999572753906, - 154.9500732421875, - 361.6999816894531, - 173.85006713867188 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 78.29995727539062, - 157.55007934570312, - 510.9000549316406, - 194.2500762939453 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "+", - "origin": [ - 78.29995727539062, - 172.4500732421875 - ], - "bbox": [ - 78.29995727539062, - 169.7500762939453, - 78.29995727539062, - 181.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29995727539062, - 172.4500732421875 - ], - "bbox": [ - 78.29995727539062, - 165.4500732421875, - 82.69995880126953, - 183.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u000f�", - "origin": [ - 82.69995880126953, - 172.4500732421875 - ], - "bbox": [ - 82.69995880126953, - 172.2500762939453, - 90.49996185302734, - 180.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BSatLM]F", - "origin": [ - 90.49996185302734, - 172.4500732421875 - ], - "bbox": [ - 90.49996185302734, - 165.9500732421875, - 109.09996032714844, - 184.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "s+", - "origin": [ - 109.09996032714844, - 172.4500732421875 - ], - "bbox": [ - 109.09996032714844, - 157.55007934570312, - 115.99996185302734, - 182.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "»b�p", - "origin": [ - 115.99996185302734, - 172.4500732421875 - ], - "bbox": [ - 115.99996185302734, - 165.9500732421875, - 132.99996948242188, - 184.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 132.99996948242188, - 172.4500732421875 - ], - "bbox": [ - 132.99996948242188, - 169.7500762939453, - 141.99996948242188, - 181.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 141.99996948242188, - 172.4500732421875 - ], - "bbox": [ - 141.99996948242188, - 165.9500732421875, - 146.69996643066406, - 184.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.29995727539062, - 157.55007934570312, - 146.69996643066406, - 184.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ">", - "origin": [ - 155.39996337890625, - 172.4500732421875 - ], - "bbox": [ - 155.39996337890625, - 169.7500762939453, - 155.39996337890625, - 181.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ[*278*CE[v0", - "origin": [ - 155.39996337890625, - 172.4500732421875 - ], - "bbox": [ - 155.39996337890625, - 157.55007934570312, - 184.49996948242188, - 182.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 155.39996337890625, - 157.55007934570312, - 184.49996948242188, - 182.4500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "_`:-=1?A278f6V=PS'2NS„278", - "origin": [ - 195.29995727539062, - 172.4500732421875 - ], - "bbox": [ - 195.29995727539062, - 157.55007934570312, - 256.89996337890625, - 182.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0011\u0010", - "origin": [ - 256.89996337890625, - 172.4500732421875 - ], - "bbox": [ - 256.89996337890625, - 172.2500762939453, - 264.9999694824219, - 180.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ0\u001c:DBV4w:D8*CW€L?*:D8I703:D8I78", - "origin": [ - 264.9999694824219, - 172.4500732421875 - ], - "bbox": [ - 264.9999694824219, - 157.55007934570312, - 353.39990234375, - 182.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0019V", - "origin": [ - 353.39990234375, - 172.4500732421875 - ], - "bbox": [ - 353.39990234375, - 159.55007934570312, - 361.7998962402344, - 194.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "l«EGK\u001b£TFJA´STdeMe`", - "origin": [ - 361.7998962402344, - 172.4500732421875 - ], - "bbox": [ - 361.7998962402344, - 165.9500732421875, - 409.0999450683594, - 184.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0013\u0012", - "origin": [ - 409.0999450683594, - 172.4500732421875 - ], - "bbox": [ - 409.0999450683594, - 172.2500762939453, - 414.199951171875, - 180.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/\u0015", - "origin": [ - 414.199951171875, - 172.4500732421875 - ], - "bbox": [ - 414.199951171875, - 169.7500762939453, - 421.199951171875, - 181.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010v\u0018«EGK\u001b£aFJADSTdeM", - "origin": [ - 421.199951171875, - 172.4500732421875 - ], - "bbox": [ - 421.199951171875, - 165.9500732421875, - 473.6000061035156, - 184.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0014\u0012", - "origin": [ - 473.6000061035156, - 172.4500732421875 - ], - "bbox": [ - 473.6000061035156, - 172.2500762939453, - 480.8000183105469, - 180.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"š\u0018fuFJMPXIX", - "origin": [ - 480.8000183105469, - 172.4500732421875 - ], - "bbox": [ - 480.8000183105469, - 165.9500732421875, - 510.9000549316406, - 184.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.29995727539062, - 157.55007934570312, - 510.9000549316406, - 194.2500762939453 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 78.29995727539062, - 168.45010375976562, - 416.5999450683594, - 205.1501007080078 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0018", - "origin": [ - 78.29995727539062, - 183.35009765625 - ], - "bbox": [ - 78.29995727539062, - 180.6501007080078, - 78.29995727539062, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29995727539062, - 183.35009765625 - ], - "bbox": [ - 78.29995727539062, - 176.35009765625, - 82.69995880126953, - 194.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\f\u000b", - "origin": [ - 82.69995880126953, - 183.35009765625 - ], - "bbox": [ - 82.69995880126953, - 183.1501007080078, - 90.59996032714844, - 191.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“EGF", - "origin": [ - 90.59996032714844, - 183.35009765625 - ], - "bbox": [ - 90.59996032714844, - 176.85009765625, - 103.29996490478516, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 103.29996490478516, - 183.35009765625 - ], - "bbox": [ - 103.29996490478516, - 168.45010375976562, - 106.99996185302734, - 193.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/R1CrRe•\u0018tLR1•;U¥E1O\u001dS", - "origin": [ - 106.99996185302734, - 183.35009765625 - ], - "bbox": [ - 106.99996185302734, - 176.85009765625, - 165.69996643066406, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "g+", - "origin": [ - 165.69996643066406, - 183.35009765625 - ], - "bbox": [ - 165.69996643066406, - 168.45010375976562, - 173.89996337890625, - 193.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TKNR1tDALO\u0016b�p", - "origin": [ - 173.89996337890625, - 183.35009765625 - ], - "bbox": [ - 173.89996337890625, - 176.85009765625, - 213.49996948242188, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 213.49996948242188, - 183.35009765625 - ], - "bbox": [ - 213.49996948242188, - 180.6501007080078, - 222.49996948242188, - 192.75009155273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.29995727539062, - 168.45010375976562, - 222.49996948242188, - 195.75009155273438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 226.9999542236328, - 183.35009765625 - ], - "bbox": [ - 226.9999542236328, - 170.45010375976562, - 226.9999542236328, - 205.1501007080078 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "J€W?vu7SPd", - "origin": [ - 226.9999542236328, - 183.35009765625 - ], - "bbox": [ - 226.9999542236328, - 168.45010375976562, - 254.699951171875, - 193.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0015\r", - "origin": [ - 254.699951171875, - 183.35009765625 - ], - "bbox": [ - 254.699951171875, - 183.1501007080078, - 260.39996337890625, - 191.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 226.9999542236328, - 168.45010375976562, - 260.39996337890625, - 205.1501007080078 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ":DM7d", - "origin": [ - 267.199951171875, - 183.35009765625 - ], - "bbox": [ - 267.199951171875, - 168.45010375976562, - 275.5999450683594, - 193.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "T@", - "origin": [ - 275.5999450683594, - 183.35009765625 - ], - "bbox": [ - 275.5999450683594, - 176.85009765625, - 280.5999450683594, - 195.75009155273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.199951171875, - 168.45010375976562, - 280.5999450683594, - 195.75009155273438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\"", - "origin": [ - 291.0999450683594, - 183.35009765625 - ], - "bbox": [ - 291.0999450683594, - 180.6501007080078, - 291.0999450683594, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0013�", - "origin": [ - 291.0999450683594, - 183.35009765625 - ], - "bbox": [ - 291.0999450683594, - 183.1501007080078, - 296.199951171875, - 191.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&ocp", - "origin": [ - 296.199951171875, - 183.35009765625 - ], - "bbox": [ - 296.199951171875, - 176.85009765625, - 309.2999267578125, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "2Y", - "origin": [ - 309.2999267578125, - 183.35009765625 - ], - "bbox": [ - 309.2999267578125, - 170.45010375976562, - 313.59991455078125, - 205.1501007080078 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "<0", - "origin": [ - 313.59991455078125, - 183.35009765625 - ], - "bbox": [ - 313.59991455078125, - 180.6501007080078, - 318.2999267578125, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 318.2999267578125, - 183.35009765625 - ], - "bbox": [ - 318.2999267578125, - 176.85009765625, - 322.99993896484375, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",\u0018", - "origin": [ - 322.99993896484375, - 183.35009765625 - ], - "bbox": [ - 322.99993896484375, - 180.6501007080078, - 327.3999328613281, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0019V", - "origin": [ - 327.3999328613281, - 183.35009765625 - ], - "bbox": [ - 327.3999328613281, - 170.45010375976562, - 335.7999267578125, - 205.1501007080078 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€\u0017B<:\u0018@‡BD698fC", - "origin": [ - 335.7999267578125, - 183.35009765625 - ], - "bbox": [ - 335.7999267578125, - 168.45010375976562, - 369.6999206542969, - 193.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "©EGF", - "origin": [ - 369.6999206542969, - 183.35009765625 - ], - "bbox": [ - 369.6999206542969, - 176.85009765625, - 379.7999267578125, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 379.7999267578125, - 183.35009765625 - ], - "bbox": [ - 379.7999267578125, - 180.6501007080078, - 383.49993896484375, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADhrv", - "origin": [ - 383.49993896484375, - 183.35009765625 - ], - "bbox": [ - 383.49993896484375, - 176.85009765625, - 398.3999328613281, - 195.75009155273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 291.0999450683594, - 168.45010375976562, - 398.3999328613281, - 205.1501007080078 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "d1FIk™”QY", - "origin": [ - 400.39996337890625, - 183.35009765625 - ], - "bbox": [ - 400.39996337890625, - 176.85009765625, - 416.5999450683594, - 195.75009155273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.39996337890625, - 176.85009765625, - 416.5999450683594, - 195.75009155273438 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 425.2999572753906, - 170.45010375976562, - 457.3999938964844, - 205.1501007080078 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 425.2999572753906, - 183.35009765625 - ], - "bbox": [ - 425.2999572753906, - 180.6501007080078, - 425.2999572753906, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eiTo1o", - "origin": [ - 425.2999572753906, - 183.35009765625 - ], - "bbox": [ - 425.2999572753906, - 176.85009765625, - 439.39996337890625, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0", - "origin": [ - 439.39996337890625, - 183.35009765625 - ], - "bbox": [ - 439.39996337890625, - 180.6501007080078, - 443.5999755859375, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em", - "origin": [ - 443.5999755859375, - 183.35009765625 - ], - "bbox": [ - 443.5999755859375, - 176.85009765625, - 448.1999816894531, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-\u0018", - "origin": [ - 448.1999816894531, - 183.35009765625 - ], - "bbox": [ - 448.1999816894531, - 180.6501007080078, - 452.6999816894531, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 452.6999816894531, - 183.35009765625 - ], - "bbox": [ - 452.6999816894531, - 170.45010375976562, - 457.3999938964844, - 205.1501007080078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 425.2999572753906, - 170.45010375976562, - 457.3999938964844, - 205.1501007080078 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 71.699951171875, - 179.35012817382812, - 427.2999572753906, - 216.0501251220703 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.699951171875, - 194.2501220703125 - ], - "bbox": [ - 71.699951171875, - 187.2501220703125, - 71.699951171875, - 205.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žo", - "origin": [ - 71.699951171875, - 194.2501220703125 - ], - "bbox": [ - 71.699951171875, - 187.7501220703125, - 74.0999526977539, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0", - "origin": [ - 74.0999526977539, - 194.2501220703125 - ], - "bbox": [ - 74.0999526977539, - 191.5501251220703, - 78.2999496459961, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.2999496459961, - 194.2501220703125 - ], - "bbox": [ - 78.2999496459961, - 187.2501220703125, - 82.699951171875, - 205.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N¼6tDE1XIReOaM", - "origin": [ - 82.699951171875, - 194.2501220703125 - ], - "bbox": [ - 82.699951171875, - 187.7501220703125, - 117.2999496459961, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0016\u000b", - "origin": [ - 117.2999496459961, - 194.2501220703125 - ], - "bbox": [ - 117.2999496459961, - 194.0501251220703, - 124.7999496459961, - 202.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019`", - "origin": [ - 124.7999496459961, - 194.2501220703125 - ], - "bbox": [ - 124.7999496459961, - 187.7501220703125, - 133.4999542236328, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*$", - "origin": [ - 133.4999542236328, - 194.2501220703125 - ], - "bbox": [ - 133.4999542236328, - 191.5501251220703, - 138.79995727539062, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eAL§P£\u0018ENf\u001fEGO\u001dS", - "origin": [ - 138.79995727539062, - 194.2501220703125 - ], - "bbox": [ - 138.79995727539062, - 187.7501220703125, - 182.09996032714844, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0011\u0017", - "origin": [ - 182.09996032714844, - 194.2501220703125 - ], - "bbox": [ - 182.09996032714844, - 194.0501251220703, - 190.19996643066406, - 202.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-AžHJADM]tDtLR", - "origin": [ - 190.19996643066406, - 194.2501220703125 - ], - "bbox": [ - 190.19996643066406, - 187.7501220703125, - 214.89996337890625, - 206.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.699951171875, - 187.2501220703125, - 214.89996337890625, - 206.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 233.199951171875, - 194.2501220703125 - ], - "bbox": [ - 233.199951171875, - 187.7501220703125, - 233.199951171875, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 233.199951171875, - 194.2501220703125 - ], - "bbox": [ - 233.199951171875, - 191.5501251220703, - 242.199951171875, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "To", - "origin": [ - 242.199951171875, - 194.2501220703125 - ], - "bbox": [ - 242.199951171875, - 187.7501220703125, - 247.199951171875, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "q€W?vuNSGd\u000ezr:DCEC\u0018d", - "origin": [ - 247.199951171875, - 194.2501220703125 - ], - "bbox": [ - 247.199951171875, - 179.35012817382812, - 296.09991455078125, - 204.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�\u0018��\u0019", - "origin": [ - 296.09991455078125, - 194.2501220703125 - ], - "bbox": [ - 296.09991455078125, - 194.0501251220703, - 316.69989013671875, - 202.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")\"", - "origin": [ - 316.69989013671875, - 194.2501220703125 - ], - "bbox": [ - 316.69989013671875, - 191.5501251220703, - 322.0998840332031, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";p", - "origin": [ - 322.0998840332031, - 194.2501220703125 - ], - "bbox": [ - 322.0998840332031, - 187.7501220703125, - 330.4998779296875, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 330.4998779296875, - 194.2501220703125 - ], - "bbox": [ - 330.4998779296875, - 191.5501251220703, - 334.9998779296875, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "emck=pgo", - "origin": [ - 334.9998779296875, - 194.2501220703125 - ], - "bbox": [ - 334.9998779296875, - 187.7501220703125, - 352.1998596191406, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u00190", - "origin": [ - 352.1998596191406, - 194.2501220703125 - ], - "bbox": [ - 352.1998596191406, - 191.5501251220703, - 356.29986572265625, - 203.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.199951171875, - 179.35012817382812, - 356.29986572265625, - 206.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 364.5999755859375, - 194.2501220703125 - ], - "bbox": [ - 364.5999755859375, - 181.35012817382812, - 364.5999755859375, - 216.0501251220703 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€\u0017B<:\u0018@‡BD698fC", - "origin": [ - 364.5999755859375, - 194.2501220703125 - ], - "bbox": [ - 364.5999755859375, - 179.35012817382812, - 398.4999694824219, - 204.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 398.4999694824219, - 194.2501220703125 - ], - "bbox": [ - 398.4999694824219, - 187.7501220703125, - 408.699951171875, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 408.699951171875, - 194.2501220703125 - ], - "bbox": [ - 408.699951171875, - 191.5501251220703, - 412.39996337890625, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 412.39996337890625, - 194.2501220703125 - ], - "bbox": [ - 412.39996337890625, - 187.7501220703125, - 427.2999572753906, - 206.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.5999755859375, - 179.35012817382812, - 427.2999572753906, - 216.0501251220703 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 434.5, - 187.7501220703125, - 446.70001220703125, - 206.65011596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPCTkÖH", - "origin": [ - 434.5, - 194.2501220703125 - ], - "bbox": [ - 434.5, - 187.7501220703125, - 446.70001220703125, - 206.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 434.5, - 187.7501220703125, - 446.70001220703125, - 206.65011596679688 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 450.3999938964844, - 187.55010986328125, - 455.79998779296875, - 206.45010375976562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 450.3999938964844, - 194.05010986328125 - ], - "bbox": [ - 450.3999938964844, - 187.55010986328125, - 450.3999938964844, - 206.45010375976562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ");", - "origin": [ - 450.3999938964844, - 194.05010986328125 - ], - "bbox": [ - 450.3999938964844, - 191.35011291503906, - 455.79998779296875, - 203.45010375976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 450.3999938964844, - 187.55010986328125, - 455.79998779296875, - 206.45010375976562 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 460.29998779296875, - 181.35012817382812, - 492.3000183105469, - 216.0501251220703 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-010", - "origin": [ - 460.29998779296875, - 194.2501220703125 - ], - "bbox": [ - 460.29998779296875, - 191.5501251220703, - 469.3999938964844, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eqgoZi", - "origin": [ - 469.3999938964844, - 194.2501220703125 - ], - "bbox": [ - 469.3999938964844, - 187.7501220703125, - 483.1000061035156, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-+", - "origin": [ - 483.1000061035156, - 194.2501220703125 - ], - "bbox": [ - 483.1000061035156, - 191.5501251220703, - 487.6000061035156, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 487.6000061035156, - 194.2501220703125 - ], - "bbox": [ - 487.6000061035156, - 181.35012817382812, - 492.3000183105469, - 216.0501251220703 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 460.29998779296875, - 181.35012817382812, - 492.3000183105469, - 216.0501251220703 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 71.69998168945312, - 190.35012817382812, - 332.4999694824219, - 217.65011596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.69998168945312, - 205.2501220703125 - ], - "bbox": [ - 71.69998168945312, - 198.2501220703125, - 71.69998168945312, - 216.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žoeo", - "origin": [ - 71.69998168945312, - 205.2501220703125 - ], - "bbox": [ - 71.69998168945312, - 198.7501220703125, - 78.69998168945312, - 217.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69998168945312, - 198.2501220703125, - 78.69998168945312, - 217.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ">", - "origin": [ - 82.69998168945312, - 205.2501220703125 - ], - "bbox": [ - 82.69998168945312, - 198.2501220703125, - 82.69998168945312, - 216.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N¼6tDE1XIReOaM", - "origin": [ - 82.69998168945312, - 205.2501220703125 - ], - "bbox": [ - 82.69998168945312, - 198.7501220703125, - 117.29998016357422, - 217.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\f\u000b", - "origin": [ - 117.29998016357422, - 205.2501220703125 - ], - "bbox": [ - 117.29998016357422, - 205.0501251220703, - 125.19998168945312, - 213.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019`", - "origin": [ - 125.19998168945312, - 205.2501220703125 - ], - "bbox": [ - 125.19998168945312, - 198.7501220703125, - 133.8999786376953, - 217.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u001e$", - "origin": [ - 133.8999786376953, - 205.2501220703125 - ], - "bbox": [ - 133.8999786376953, - 202.5501251220703, - 139.49998474121094, - 214.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eAL§P£\u0018E\u0016f—E1O\u0018S", - "origin": [ - 139.49998474121094, - 205.2501220703125 - ], - "bbox": [ - 139.49998474121094, - 198.7501220703125, - 183.39999389648438, - 217.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "e+", - "origin": [ - 183.39999389648438, - 205.2501220703125 - ], - "bbox": [ - 183.39999389648438, - 190.35012817382812, - 192.1999969482422, - 215.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gYZEGFsSTALdetLA+U\rp", - "origin": [ - 192.1999969482422, - 205.2501220703125 - ], - "bbox": [ - 192.1999969482422, - 198.7501220703125, - 239.79998779296875, - 217.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01\u0018", - "origin": [ - 239.79998779296875, - 205.2501220703125 - ], - "bbox": [ - 239.79998779296875, - 202.5501251220703, - 253.39999389648438, - 214.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016«E1O\u0019”g•\u0018E1OQHJ•\u0018K", - "origin": [ - 253.39999389648438, - 205.2501220703125 - ], - "bbox": [ - 253.39999389648438, - 198.7501220703125, - 309.60003662109375, - 217.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69998168945312, - 190.35012817382812, - 309.60003662109375, - 217.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNMPY", - "origin": [ - 320.5999755859375, - 205.2501220703125 - ], - "bbox": [ - 320.5999755859375, - 198.7501220703125, - 332.4999694824219, - 217.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.5999755859375, - 198.7501220703125, - 332.4999694824219, - 217.65011596679688 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 341.5999755859375, - 198.7501220703125, - 430.8999938964844, - 217.65011596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u0018ALYPXB£rM\"E1O³MPKNM]FJd1MPOQH·C", - "origin": [ - 341.5999755859375, - 205.2501220703125 - ], - "bbox": [ - 341.5999755859375, - 198.7501220703125, - 430.8999938964844, - 217.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.5999755859375, - 198.7501220703125, - 430.8999938964844, - 217.65011596679688 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 441.1999816894531, - 190.35012817382812, - 522.0, - 217.65011596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPOaReKNMPOaReOr±", - "origin": [ - 441.1999816894531, - 205.2501220703125 - ], - "bbox": [ - 441.1999816894531, - 198.7501220703125, - 482.0, - 217.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 441.1999816894531, - 198.7501220703125, - 482.0, - 217.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "€\u0017B<:\u0018@‡B16^8fC", - "origin": [ - 491.29998779296875, - 205.2501220703125 - ], - "bbox": [ - 491.29998779296875, - 190.35012817382812, - 522.0, - 215.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 491.29998779296875, - 190.35012817382812, - 522.0, - 215.2501220703125 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 100.49996948242188, - 209.2501220703125, - 253.9999542236328, - 228.65011596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGF", - "origin": [ - 100.49996948242188, - 216.2501220703125 - ], - "bbox": [ - 100.49996948242188, - 209.7501220703125, - 104.89997100830078, - 228.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 104.89997100830078, - 216.2501220703125 - ], - "bbox": [ - 104.89997100830078, - 213.5501251220703, - 108.59996795654297, - 225.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 108.59996795654297, - 216.2501220703125 - ], - "bbox": [ - 108.59996795654297, - 209.7501220703125, - 123.49996948242188, - 228.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.49996948242188, - 209.7501220703125, - 123.49996948242188, - 228.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-\u001810", - "origin": [ - 125.59996795654297, - 216.2501220703125 - ], - "bbox": [ - 125.59996795654297, - 213.5501251220703, - 134.69998168945312, - 225.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "To1š", - "origin": [ - 134.69998168945312, - 216.2501220703125 - ], - "bbox": [ - 134.69998168945312, - 209.7501220703125, - 144.19998168945312, - 228.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 125.59996795654297, - 209.7501220703125, - 144.19998168945312, - 228.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i", - "origin": [ - 146.2999725341797, - 216.2501220703125 - ], - "bbox": [ - 146.2999725341797, - 209.7501220703125, - 146.2999725341797, - 228.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1\u001810", - "origin": [ - 146.2999725341797, - 216.2501220703125 - ], - "bbox": [ - 146.2999725341797, - 213.5501251220703, - 155.49998474121094, - 225.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eqg`rHJRNEGC\u0018CrMZEcF4ADO", - "origin": [ - 155.49998474121094, - 216.2501220703125 - ], - "bbox": [ - 155.49998474121094, - 209.7501220703125, - 214.7999725341797, - 228.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.2999725341797, - 209.7501220703125, - 214.7999725341797, - 228.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 222.99996948242188, - 216.2501220703125 - ], - "bbox": [ - 222.99996948242188, - 209.2501220703125, - 222.99996948242188, - 227.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-M] ™š", - "origin": [ - 222.99996948242188, - 216.2501220703125 - ], - "bbox": [ - 222.99996948242188, - 209.7501220703125, - 237.19996643066406, - 228.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.99996948242188, - 209.2501220703125, - 237.19996643066406, - 228.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 242.99996948242188, - 216.2501220703125 - ], - "bbox": [ - 242.99996948242188, - 209.2501220703125, - 242.99996948242188, - 227.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žoZp", - "origin": [ - 242.99996948242188, - 216.2501220703125 - ], - "bbox": [ - 242.99996948242188, - 209.7501220703125, - 249.59996032714844, - 228.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 249.59996032714844, - 216.2501220703125 - ], - "bbox": [ - 249.59996032714844, - 209.2501220703125, - 253.9999542236328, - 227.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.99996948242188, - 209.2501220703125, - 253.9999542236328, - 228.65011596679688 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 71.69996643066406, - 220.150146484375, - 117.6999740600586, - 239.55014038085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.69996643066406, - 227.150146484375 - ], - "bbox": [ - 71.69996643066406, - 220.150146484375, - 71.69996643066406, - 238.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocp", - "origin": [ - 71.69996643066406, - 227.150146484375 - ], - "bbox": [ - 71.69996643066406, - 220.650146484375, - 78.39997100830078, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39997100830078, - 227.150146484375 - ], - "bbox": [ - 78.39997100830078, - 220.150146484375, - 82.6999740600586, - 238.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tL§PM\"À-k", - "origin": [ - 82.6999740600586, - 227.150146484375 - ], - "bbox": [ - 82.6999740600586, - 220.650146484375, - 117.6999740600586, - 239.55014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69996643066406, - 220.150146484375, - 117.6999740600586, - 239.55014038085938 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 127.99996948242188, - 214.25015258789062, - 433.29998779296875, - 248.9501495361328 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "`?@·A", - "origin": [ - 127.99996948242188, - 227.150146484375 - ], - "bbox": [ - 127.99996948242188, - 220.650146484375, - 140.5999755859375, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001b\u001a", - "origin": [ - 140.5999755859375, - 227.150146484375 - ], - "bbox": [ - 140.5999755859375, - 226.9501495361328, - 144.5999755859375, - 235.650146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.99996948242188, - 220.650146484375, - 144.5999755859375, - 239.55014038085938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ReXIA8b8`ªUaFJReOa§PReOaA8b+`?À·EGtLtDAž‘6MPtLt", - "origin": [ - 143.0999755859375, - 227.150146484375 - ], - "bbox": [ - 143.0999755859375, - 220.650146484375, - 251.20004272460938, - 239.55014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 143.0999755859375, - 220.650146484375, - 251.20004272460938, - 239.55014038085938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "$%$", - "origin": [ - 257.5999755859375, - 227.150146484375 - ], - "bbox": [ - 257.5999755859375, - 224.4501495361328, - 265.6999816894531, - 236.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016E1O\u0018S", - "origin": [ - 265.6999816894531, - 227.150146484375 - ], - "bbox": [ - 265.6999816894531, - 220.650146484375, - 283.6000061035156, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001c\u0017", - "origin": [ - 283.6000061035156, - 227.150146484375 - ], - "bbox": [ - 283.6000061035156, - 226.9501495361328, - 292.0, - 235.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BAžHJALMPtLtDR", - "origin": [ - 292.0, - 227.150146484375 - ], - "bbox": [ - 292.0, - 220.650146484375, - 316.8000183105469, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\r.", - "origin": [ - 316.8000183105469, - 227.150146484375 - ], - "bbox": [ - 316.8000183105469, - 224.4501495361328, - 325.1000061035156, - 236.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�V", - "origin": [ - 325.1000061035156, - 227.150146484375 - ], - "bbox": [ - 325.1000061035156, - 214.25015258789062, - 336.20001220703125, - 248.9501495361328 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "wMZS", - "origin": [ - 336.20001220703125, - 227.150146484375 - ], - "bbox": [ - 336.20001220703125, - 220.650146484375, - 343.4000244140625, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".W", - "origin": [ - 343.4000244140625, - 227.150146484375 - ], - "bbox": [ - 343.4000244140625, - 214.25015258789062, - 348.60003662109375, - 248.9501495361328 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Bp", - "origin": [ - 348.60003662109375, - 227.150146484375 - ], - "bbox": [ - 348.60003662109375, - 220.650146484375, - 355.60003662109375, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01\u0018", - "origin": [ - 355.60003662109375, - 227.150146484375 - ], - "bbox": [ - 355.60003662109375, - 224.4501495361328, - 369.2000427246094, - 236.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¢f8FJRQYPM]MZSaALO\u0018d1X", - "origin": [ - 369.2000427246094, - 227.150146484375 - ], - "bbox": [ - 369.2000427246094, - 220.650146484375, - 421.5000915527344, - 239.55014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 257.5999755859375, - 214.25015258789062, - 421.5000915527344, - 248.9501495361328 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 428.79998779296875, - 227.150146484375 - ], - "bbox": [ - 428.79998779296875, - 214.25015258789062, - 428.79998779296875, - 248.9501495361328 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1H", - "origin": [ - 428.79998779296875, - 227.150146484375 - ], - "bbox": [ - 428.79998779296875, - 220.650146484375, - 433.29998779296875, - 239.55014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 428.79998779296875, - 214.25015258789062, - 433.29998779296875, - 248.9501495361328 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 445.5, - 220.650146484375, - 518.5, - 239.55014038085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "j=OQHJM]FJOªšª«6ReOT =šª@·jI«\\", - "origin": [ - 445.5, - 227.150146484375 - ], - "bbox": [ - 445.5, - 220.650146484375, - 518.5, - 239.55014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.5, - 220.650146484375, - 518.5, - 239.55014038085938 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 100.60000610351562, - 223.15017700195312, - 431.4000244140625, - 259.85015869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 100.60000610351562, - 238.0501708984375 - ], - "bbox": [ - 100.60000610351562, - 231.5501708984375, - 100.60000610351562, - 250.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01+", - "origin": [ - 100.60000610351562, - 238.0501708984375 - ], - "bbox": [ - 100.60000610351562, - 235.3501739501953, - 114.20000457763672, - 247.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "g`?«E1X’HJALd1tDALR1O\u0018YPMPtLtLR", - "origin": [ - 114.20000457763672, - 238.0501708984375 - ], - "bbox": [ - 114.20000457763672, - 231.5501708984375, - 177.80001831054688, - 250.45016479492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.60000610351562, - 231.5501708984375, - 177.80001831054688, - 250.45016479492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 186.40000915527344, - 238.0501708984375 - ], - "bbox": [ - 186.40000915527344, - 225.15017700195312, - 186.40000915527344, - 259.85015869140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "wj™HsE1tž", - "origin": [ - 186.40000915527344, - 238.0501708984375 - ], - "bbox": [ - 186.40000915527344, - 231.5501708984375, - 203.40000915527344, - 250.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".W", - "origin": [ - 203.40000915527344, - 238.0501708984375 - ], - "bbox": [ - 203.40000915527344, - 225.15017700195312, - 208.60000610351562, - 259.85015869140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¯`", - "origin": [ - 208.60000610351562, - 238.0501708984375 - ], - "bbox": [ - 208.60000610351562, - 231.5501708984375, - 212.5, - 250.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "‡+", - "origin": [ - 212.5, - 238.0501708984375 - ], - "bbox": [ - 212.5, - 223.15017700195312, - 217.8000030517578, - 248.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TMPCTHJMPK\u001b£rM]F¬pepck=pGnT`?p", - "origin": [ - 217.8000030517578, - 238.0501708984375 - ], - "bbox": [ - 217.8000030517578, - 231.5501708984375, - 290.6000061035156, - 250.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010-+\r2", - "origin": [ - 290.6000061035156, - 238.0501708984375 - ], - "bbox": [ - 290.6000061035156, - 235.3501739501953, - 312.3999938964844, - 247.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad\u000e€W?vuNSPd", - "origin": [ - 312.3999938964844, - 238.0501708984375 - ], - "bbox": [ - 312.3999938964844, - 223.15017700195312, - 342.5999755859375, - 248.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "54!6", - "origin": [ - 342.5999755859375, - 238.0501708984375 - ], - "bbox": [ - 342.5999755859375, - 235.3501739501953, - 352.9999694824219, - 247.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI785hGd", - "origin": [ - 352.9999694824219, - 238.0501708984375 - ], - "bbox": [ - 352.9999694824219, - 223.15017700195312, - 372.0, - 248.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "P\u001b", - "origin": [ - 372.0, - 238.0501708984375 - ], - "bbox": [ - 372.0, - 235.3501739501953, - 377.70001220703125, - 247.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ";:DBGd", - "origin": [ - 377.70001220703125, - 238.0501708984375 - ], - "bbox": [ - 377.70001220703125, - 223.15017700195312, - 391.20001220703125, - 248.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aHJRNE1CaCrMZEGF", - "origin": [ - 391.20001220703125, - 238.0501708984375 - ], - "bbox": [ - 391.20001220703125, - 231.5501708984375, - 431.4000244140625, - 250.45016479492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.40000915527344, - 223.15017700195312, - 431.4000244140625, - 259.85015869140625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 71.70000457763672, - 234.25015258789062, - 384.9000549316406, - 261.5501403808594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.70000457763672, - 249.150146484375 - ], - "bbox": [ - 71.70000457763672, - 242.150146484375, - 71.70000457763672, - 260.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žoZi", - "origin": [ - 71.70000457763672, - 249.150146484375 - ], - "bbox": [ - 71.70000457763672, - 242.650146484375, - 78.30000305175781, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.30000305175781, - 249.150146484375 - ], - "bbox": [ - 78.30000305175781, - 242.150146484375, - 82.70000457763672, - 260.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010j=XIADSTFJR", - "origin": [ - 82.70000457763672, - 249.150146484375 - ], - "bbox": [ - 82.70000457763672, - 242.650146484375, - 108.69999694824219, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/$", - "origin": [ - 108.69999694824219, - 249.150146484375 - ], - "bbox": [ - 108.69999694824219, - 246.4501495361328, - 115.69999694824219, - 258.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001d\u000b", - "origin": [ - 115.69999694824219, - 249.150146484375 - ], - "bbox": [ - 115.69999694824219, - 248.9501495361328, - 123.0, - 257.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019`", - "origin": [ - 123.0, - 249.150146484375 - ], - "bbox": [ - 123.0, - 242.650146484375, - 131.6999969482422, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "v+", - "origin": [ - 131.6999969482422, - 249.150146484375 - ], - "bbox": [ - 131.6999969482422, - 234.25015258789062, - 136.59999084472656, - 259.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aEGOQHsE1O\u001dSTM]F", - "origin": [ - 136.59999084472656, - 249.150146484375 - ], - "bbox": [ - 136.59999084472656, - 242.650146484375, - 173.5, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "N$", - "origin": [ - 173.5, - 249.150146484375 - ], - "bbox": [ - 173.5, - 246.4501495361328, - 179.60000610351562, - 258.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡b", - "origin": [ - 179.60000610351562, - 249.150146484375 - ], - "bbox": [ - 179.60000610351562, - 242.650146484375, - 186.8000030517578, - 261.5501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.70000457763672, - 234.25015258789062, - 186.8000030517578, - 261.5501403808594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ".", - "origin": [ - 195.20001220703125, - 249.150146484375 - ], - "bbox": [ - 195.20001220703125, - 246.4501495361328, - 195.20001220703125, - 258.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "—EGO\u001dS\u001bUaM]FJO\u001dEGO\u001dSaM]§°SaM¬«6RGFsSaR1£\u001dE¡f\u0019p", - "origin": [ - 195.20001220703125, - 249.150146484375 - ], - "bbox": [ - 195.20001220703125, - 242.650146484375, - 322.800048828125, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010-+", - "origin": [ - 322.800048828125, - 249.150146484375 - ], - "bbox": [ - 322.800048828125, - 246.4501495361328, - 336.4000549316406, - 258.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001d�", - "origin": [ - 336.4000549316406, - 249.150146484375 - ], - "bbox": [ - 336.4000549316406, - 248.9501495361328, - 343.7000427246094, - 257.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œO\u0018RGHJMReO\"H", - "origin": [ - 343.7000427246094, - 249.150146484375 - ], - "bbox": [ - 343.7000427246094, - 242.650146484375, - 384.9000549316406, - 261.5501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.20001220703125, - 242.650146484375, - 384.9000549316406, - 261.5501403808594 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 393.800048828125, - 242.650146484375, - 451.4000549316406, - 261.5501403808594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M°”Q•\u001dEGOQHJ•\u0018K\u0010klKNMPY", - "origin": [ - 393.800048828125, - 249.150146484375 - ], - "bbox": [ - 393.800048828125, - 242.650146484375, - 451.4000549316406, - 261.5501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 393.800048828125, - 242.650146484375, - 451.4000549316406, - 261.5501403808594 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 460.5000305175781, - 242.150146484375, - 517.9000854492188, - 261.5501403808594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaALYZE1t", - "origin": [ - 460.5000305175781, - 249.150146484375 - ], - "bbox": [ - 460.5000305175781, - 242.650146484375, - 481.300048828125, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�<", - "origin": [ - 481.300048828125, - 249.150146484375 - ], - "bbox": [ - 481.300048828125, - 242.150146484375, - 486.00006103515625, - 260.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4ALYPYPAg®\u001dRZ‘", - "origin": [ - 486.00006103515625, - 249.150146484375 - ], - "bbox": [ - 486.00006103515625, - 242.650146484375, - 517.9000854492188, - 261.5501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 460.5000305175781, - 242.150146484375, - 517.9000854492188, - 261.5501403808594 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 100.60003662109375, - 245.15017700195312, - 339.7000427246094, - 281.85015869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 100.60003662109375, - 260.0501708984375 - ], - "bbox": [ - 100.60003662109375, - 245.15017700195312, - 131.300048828125, - 270.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 131.300048828125, - 260.0501708984375 - ], - "bbox": [ - 131.300048828125, - 253.5501708984375, - 141.5000457763672, - 272.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 141.5000457763672, - 260.0501708984375 - ], - "bbox": [ - 141.5000457763672, - 257.35015869140625, - 145.20004272460938, - 269.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 145.20004272460938, - 260.0501708984375 - ], - "bbox": [ - 145.20004272460938, - 253.5501708984375, - 160.10003662109375, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.60003662109375, - 245.15017700195312, - 160.10003662109375, - 272.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-+101+", - "origin": [ - 162.20004272460938, - 260.0501708984375 - ], - "bbox": [ - 162.20004272460938, - 257.35015869140625, - 175.90005493164062, - 269.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gš", - "origin": [ - 175.90005493164062, - 260.0501708984375 - ], - "bbox": [ - 175.90005493164062, - 253.5501708984375, - 180.800048828125, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.20004272460938, - 253.5501708984375, - 180.800048828125, - 272.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "peqgoZq", - "origin": [ - 183.0000457763672, - 260.0501708984375 - ], - "bbox": [ - 183.0000457763672, - 253.5501708984375, - 196.70004272460938, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 183.0000457763672, - 253.5501708984375, - 196.70004272460938, - 272.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "[", - "origin": [ - 201.6000518798828, - 260.0501708984375 - ], - "bbox": [ - 201.6000518798828, - 247.15017700195312, - 201.6000518798828, - 281.85015869140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆX>I>d", - "origin": [ - 201.6000518798828, - 260.0501708984375 - ], - "bbox": [ - 201.6000518798828, - 245.15017700195312, - 217.20004272460938, - 270.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rp", - "origin": [ - 217.20004272460938, - 260.0501708984375 - ], - "bbox": [ - 217.20004272460938, - 253.5501708984375, - 222.60003662109375, - 272.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010-+", - "origin": [ - 222.60003662109375, - 260.0501708984375 - ], - "bbox": [ - 222.60003662109375, - 257.35015869140625, - 236.20004272460938, - 269.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": " <", - "origin": [ - 236.20004272460938, - 260.0501708984375 - ], - "bbox": [ - 236.20004272460938, - 253.0501708984375, - 243.90003967285156, - 271.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALYPY]Aª®\u0018Rc‘¡`\u0018”Q•\u001dEGOgHJ•aK\u000bKNMPY", - "origin": [ - 243.90003967285156, - 260.0501708984375 - ], - "bbox": [ - 243.90003967285156, - 253.5501708984375, - 339.7000427246094, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 201.6000518798828, - 245.15017700195312, - 339.7000427246094, - 281.85015869140625 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 348.800048828125, - 245.15017700195312, - 517.4000244140625, - 272.4501647949219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u0018ALYPX¬E1O\u0018S¢dGFsEchgAžH=", - "origin": [ - 348.800048828125, - 260.0501708984375 - ], - "bbox": [ - 348.800048828125, - 253.5501708984375, - 412.7000427246094, - 272.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Z€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 412.7000427246094, - 260.0501708984375 - ], - "bbox": [ - 412.7000427246094, - 245.15017700195312, - 451.70001220703125, - 270.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 451.70001220703125, - 260.0501708984375 - ], - "bbox": [ - 451.70001220703125, - 253.5501708984375, - 461.8999938964844, - 272.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 461.8999938964844, - 260.0501708984375 - ], - "bbox": [ - 461.8999938964844, - 257.35015869140625, - 465.6000061035156, - 269.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 465.6000061035156, - 260.0501708984375 - ], - "bbox": [ - 465.6000061035156, - 253.5501708984375, - 480.5, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.800048828125, - 245.15017700195312, - 480.5, - 272.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-+101+", - "origin": [ - 482.60003662109375, - 260.0501708984375 - ], - "bbox": [ - 482.60003662109375, - 257.35015869140625, - 496.300048828125, - 269.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gš", - "origin": [ - 496.300048828125, - 260.0501708984375 - ], - "bbox": [ - 496.300048828125, - 253.5501708984375, - 501.2000427246094, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 482.60003662109375, - 253.5501708984375, - 501.2000427246094, - 272.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p1i/mQo", - "origin": [ - 503.4000244140625, - 260.0501708984375 - ], - "bbox": [ - 503.4000244140625, - 253.5501708984375, - 517.4000244140625, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 503.4000244140625, - 253.5501708984375, - 517.4000244140625, - 272.4501647949219 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 71.70001220703125, - 258.0502014160156, - 120.70000457763672, - 292.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.70001220703125, - 270.9501953125 - ], - "bbox": [ - 71.70001220703125, - 263.9501953125, - 71.70001220703125, - 282.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žo", - "origin": [ - 71.70001220703125, - 270.9501953125 - ], - "bbox": [ - 71.70001220703125, - 264.4501953125, - 74.10001373291016, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.70001220703125, - 263.9501953125, - 74.10001373291016, - 283.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 78.20001220703125, - 270.9501953125 - ], - "bbox": [ - 78.20001220703125, - 258.0502014160156, - 78.20001220703125, - 292.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 78.20001220703125, - 270.9501953125 - ], - "bbox": [ - 78.20001220703125, - 263.9501953125, - 82.70001220703125, - 282.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001b²\u0014M]HIHJM]FJALY", - "origin": [ - 82.70001220703125, - 270.9501953125 - ], - "bbox": [ - 82.70001220703125, - 264.4501953125, - 120.70000457763672, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.20001220703125, - 258.0502014160156, - 120.70000457763672, - 292.75018310546875 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 133.70001220703125, - 264.4501953125, - 276.8000183105469, - 283.3501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "«¾p", - "origin": [ - 133.70001220703125, - 270.9501953125 - ], - "bbox": [ - 133.70001220703125, - 264.4501953125, - 144.20001220703125, - 283.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010-+", - "origin": [ - 144.20001220703125, - 270.9501953125 - ], - "bbox": [ - 144.20001220703125, - 268.25018310546875, - 157.70001220703125, - 280.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019\\8KNM]FJdeM]O\u0018YPM»R1 -”Q•\u001dEGOgHJ•aK", - "origin": [ - 157.70001220703125, - 270.9501953125 - ], - "bbox": [ - 157.70001220703125, - 264.4501953125, - 253.50001525878906, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.70001220703125, - 264.4501953125, - 253.50001525878906, - 283.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNMPY", - "origin": [ - 264.9000244140625, - 270.9501953125 - ], - "bbox": [ - 264.9000244140625, - 264.4501953125, - 276.8000183105469, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.9000244140625, - 264.4501953125, - 276.8000183105469, - 283.3501892089844 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 285.9000244140625, - 256.0502014160156, - 520.0000610351562, - 283.3501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaALYPX½ ´FJReK", - "origin": [ - 285.9000244140625, - 270.9501953125 - ], - "bbox": [ - 285.9000244140625, - 264.4501953125, - 320.50006103515625, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 285.9000244140625, - 264.4501953125, - 320.50006103515625, - 283.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "YPtDE1XIXIALYZE1t¬X’HsEcHJADX’HJALYPX", - "origin": [ - 332.20001220703125, - 270.9501953125 - ], - "bbox": [ - 332.20001220703125, - 264.4501953125, - 400.2000732421875, - 283.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "3€\u0017B<:\u0018@‡BD698fC", - "origin": [ - 400.2000732421875, - 270.9501953125 - ], - "bbox": [ - 400.2000732421875, - 256.0502014160156, - 438.7000427246094, - 280.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬EcF", - "origin": [ - 438.7000427246094, - 270.9501953125 - ], - "bbox": [ - 438.7000427246094, - 264.4501953125, - 449.7000427246094, - 283.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 449.7000427246094, - 270.9501953125 - ], - "bbox": [ - 449.7000427246094, - 268.25018310546875, - 453.4000549316406, - 280.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 453.4000549316406, - 270.9501953125 - ], - "bbox": [ - 453.4000549316406, - 264.4501953125, - 468.300048828125, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.20001220703125, - 256.0502014160156, - 468.300048828125, - 283.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-+", - "origin": [ - 470.5, - 270.9501953125 - ], - "bbox": [ - 470.5, - 268.25018310546875, - 475.0, - 280.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "To1oeš", - "origin": [ - 475.0, - 270.9501953125 - ], - "bbox": [ - 475.0, - 264.4501953125, - 489.1000061035156, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 470.5, - 264.4501953125, - 489.1000061035156, - 283.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "01\u0018", - "origin": [ - 491.20001220703125, - 270.9501953125 - ], - "bbox": [ - 491.20001220703125, - 268.25018310546875, - 495.8000183105469, - 280.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "epeqg`6HJR", - "origin": [ - 495.8000183105469, - 270.9501953125 - ], - "bbox": [ - 495.8000183105469, - 264.4501953125, - 520.0000610351562, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 491.20001220703125, - 264.4501953125, - 520.0000610351562, - 283.3501892089844 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 100.5, - 267.1501770019531, - 484.00018310546875, - 303.85015869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1CaCrMZEGF»ALO", - "origin": [ - 100.5, - 282.0501708984375 - ], - "bbox": [ - 100.5, - 275.5501708984375, - 134.60000610351562, - 294.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.5, - 275.5501708984375, - 134.60000610351562, - 294.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 144.10000610351562, - 282.0501708984375 - ], - "bbox": [ - 144.10000610351562, - 275.0501708984375, - 144.10000610351562, - 293.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4M] =š", - "origin": [ - 144.10000610351562, - 282.0501708984375 - ], - "bbox": [ - 144.10000610351562, - 275.5501708984375, - 158.3000030517578, - 294.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 144.10000610351562, - 275.0501708984375, - 158.3000030517578, - 294.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 165.3000030517578, - 282.0501708984375 - ], - "bbox": [ - 165.3000030517578, - 275.0501708984375, - 165.3000030517578, - 293.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocp", - "origin": [ - 165.3000030517578, - 282.0501708984375 - ], - "bbox": [ - 165.3000030517578, - 275.5501708984375, - 172.0, - 294.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 172.0, - 282.0501708984375 - ], - "bbox": [ - 172.0, - 275.0501708984375, - 176.39999389648438, - 293.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\\[", - "origin": [ - 176.39999389648438, - 282.0501708984375 - ], - "bbox": [ - 176.39999389648438, - 269.1501770019531, - 179.5, - 303.85015869140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "3XbIwd", - "origin": [ - 179.5, - 282.0501708984375 - ], - "bbox": [ - 179.5, - 267.1501770019531, - 196.70001220703125, - 292.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "°p", - "origin": [ - 196.70001220703125, - 282.0501708984375 - ], - "bbox": [ - 196.70001220703125, - 275.5501708984375, - 203.30001831054688, - 294.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01+", - "origin": [ - 203.30001831054688, - 282.0501708984375 - ], - "bbox": [ - 203.30001831054688, - 279.35015869140625, - 216.9000244140625, - 291.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥f8FJR1£\u001dEG£\u0018ALtLADX’HJALY³Re£aXIM]FJheEG£\u0018tLMPXP`¬YPR1O\u001dSTALHJALR1O\u001dE1tBYPR1FIFJMPtDEcHJADR1O\u0018XP`BE1O\u0018S\r”Q•\u001dE1OQHJ•aK", - "origin": [ - 216.9000244140625, - 282.0501708984375 - ], - "bbox": [ - 216.9000244140625, - 275.5501708984375, - 484.00018310546875, - 294.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.3000030517578, - 267.1501770019531, - 484.00018310546875, - 303.85015869140625 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 505.79998779296875, - 275.5501708984375, - 520.9999389648438, - 294.4501647949219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TXIALYPX", - "origin": [ - 505.79998779296875, - 282.0501708984375 - ], - "bbox": [ - 505.79998779296875, - 275.5501708984375, - 520.9999389648438, - 294.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 505.79998779296875, - 275.5501708984375, - 520.9999389648438, - 294.4501647949219 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 100.5999755859375, - 278.0502014160156, - 520.7999877929688, - 314.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 100.5999755859375, - 292.9501953125 - ], - "bbox": [ - 100.5999755859375, - 278.0502014160156, - 131.29998779296875, - 302.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NEGF", - "origin": [ - 131.29998779296875, - 292.9501953125 - ], - "bbox": [ - 131.29998779296875, - 286.4501953125, - 143.49998474121094, - 305.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 143.49998474121094, - 292.9501953125 - ], - "bbox": [ - 143.49998474121094, - 290.25018310546875, - 147.19998168945312, - 302.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 147.19998168945312, - 292.9501953125 - ], - "bbox": [ - 147.19998168945312, - 286.4501953125, - 162.0999755859375, - 305.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.5999755859375, - 278.0502014160156, - 162.0999755859375, - 305.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "01+", - "origin": [ - 164.19998168945312, - 292.9501953125 - ], - "bbox": [ - 164.19998168945312, - 290.25018310546875, - 168.79998779296875, - 302.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "go", - "origin": [ - 168.79998779296875, - 292.9501953125 - ], - "bbox": [ - 168.79998779296875, - 286.4501953125, - 173.69998168945312, - 305.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0", - "origin": [ - 173.69998168945312, - 292.9501953125 - ], - "bbox": [ - 173.69998168945312, - 290.25018310546875, - 177.8999786376953, - 302.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Tš", - "origin": [ - 177.8999786376953, - 292.9501953125 - ], - "bbox": [ - 177.8999786376953, - 286.4501953125, - 182.8999786376953, - 305.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 164.19998168945312, - 286.4501953125, - 182.8999786376953, - 305.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-\u00181+", - "origin": [ - 184.99998474121094, - 292.9501953125 - ], - "bbox": [ - 184.99998474121094, - 290.25018310546875, - 194.09999084472656, - 302.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 194.09999084472656, - 292.9501953125 - ], - "bbox": [ - 194.09999084472656, - 286.4501953125, - 198.79998779296875, - 305.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": " [", - "origin": [ - 198.79998779296875, - 292.9501953125 - ], - "bbox": [ - 198.79998779296875, - 280.0502014160156, - 203.59999084472656, - 314.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 184.99998474121094, - 280.0502014160156, - 203.59999084472656, - 314.75018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "X>I>d", - "origin": [ - 213.19998168945312, - 292.9501953125 - ], - "bbox": [ - 213.19998168945312, - 278.0502014160156, - 222.5999755859375, - 302.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"p", - "origin": [ - 222.5999755859375, - 292.9501953125 - ], - "bbox": [ - 222.5999755859375, - 286.4501953125, - 230.0999755859375, - 305.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0101+", - "origin": [ - 230.0999755859375, - 292.9501953125 - ], - "bbox": [ - 230.0999755859375, - 290.25018310546875, - 243.69998168945312, - 302.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0018\u001e", - "origin": [ - 243.69998168945312, - 292.9501953125 - ], - "bbox": [ - 243.69998168945312, - 292.75018310546875, - 253.69998168945312, - 301.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "B•\u001dEGOgHJ•aK", - "origin": [ - 253.69998168945312, - 292.9501953125 - ], - "bbox": [ - 253.69998168945312, - 286.4501953125, - 284.0999755859375, - 305.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 213.19998168945312, - 278.0502014160156, - 284.0999755859375, - 305.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPOQHsE1O\u0018d1tLMPKNMPOQH\u0014EGO\u001dS�ALOQHJM]FI ¸M]FJM]O\u0018YPM  ºFJReK", - "origin": [ - 296.79998779296875, - 292.9501953125 - ], - "bbox": [ - 296.79998779296875, - 286.4501953125, - 438.6000061035156, - 305.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 296.79998779296875, - 286.4501953125, - 438.6000061035156, - 305.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "YPtDE1XIXIALYZEGt¢X’HsEcHJADX’HJALYPX", - "origin": [ - 451.5, - 292.9501953125 - ], - "bbox": [ - 451.5, - 286.4501953125, - 520.7999877929688, - 305.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 451.5, - 286.4501953125, - 520.7999877929688, - 305.3501892089844 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 100.60000610351562, - 288.9502258300781, - 197.00001525878906, - 316.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 100.60000610351562, - 303.8502197265625 - ], - "bbox": [ - 100.60000610351562, - 288.9502258300781, - 131.30001831054688, - 313.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 131.30001831054688, - 303.8502197265625 - ], - "bbox": [ - 131.30001831054688, - 297.3502197265625, - 141.50001525878906, - 316.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 141.50001525878906, - 303.8502197265625 - ], - "bbox": [ - 141.50001525878906, - 301.15020751953125, - 145.20001220703125, - 313.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 145.20001220703125, - 303.8502197265625 - ], - "bbox": [ - 145.20001220703125, - 297.3502197265625, - 160.10000610351562, - 316.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.60000610351562, - 288.9502258300781, - 160.10000610351562, - 316.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-+101\u0018", - "origin": [ - 162.20001220703125, - 303.8502197265625 - ], - "bbox": [ - 162.20001220703125, - 301.15020751953125, - 175.9000244140625, - 313.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gš", - "origin": [ - 175.9000244140625, - 303.8502197265625 - ], - "bbox": [ - 175.9000244140625, - 297.3502197265625, - 180.80001831054688, - 316.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.20001220703125, - 297.3502197265625, - 180.80001831054688, - 316.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p1n/qQo", - "origin": [ - 183.00001525878906, - 303.8502197265625 - ], - "bbox": [ - 183.00001525878906, - 297.3502197265625, - 197.00001525878906, - 316.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 183.00001525878906, - 297.3502197265625, - 197.00001525878906, - 316.2502136230469 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 71.70001220703125, - 307.8502197265625, - 90.60002136230469, - 327.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.70001220703125, - 314.8502197265625 - ], - "bbox": [ - 71.70001220703125, - 307.8502197265625, - 71.70001220703125, - 326.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocm", - "origin": [ - 71.70001220703125, - 314.8502197265625 - ], - "bbox": [ - 71.70001220703125, - 308.3502197265625, - 78.40001678466797, - 327.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.40001678466797, - 314.8502197265625 - ], - "bbox": [ - 78.40001678466797, - 307.8502197265625, - 82.70001983642578, - 326.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "'.", - "origin": [ - 82.70001983642578, - 314.8502197265625 - ], - "bbox": [ - 82.70001983642578, - 312.15020751953125, - 90.60002136230469, - 324.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.70001220703125, - 307.8502197265625, - 90.60002136230469, - 327.2502136230469 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 102.80001068115234, - 308.3502197265625, - 158.00001525878906, - 327.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "AžFsEGFsSTA", - "origin": [ - 102.80001068115234, - 314.8502197265625 - ], - "bbox": [ - 102.80001068115234, - 308.3502197265625, - 122.20001983642578, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.80001068115234, - 308.3502197265625, - 122.20001983642578, - 327.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ".", - "origin": [ - 127.70001220703125, - 314.8502197265625 - ], - "bbox": [ - 127.70001220703125, - 312.15020751953125, - 127.70001220703125, - 324.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡«\rp", - "origin": [ - 127.70001220703125, - 314.8502197265625 - ], - "bbox": [ - 127.70001220703125, - 308.3502197265625, - 144.40000915527344, - 327.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01\u0018", - "origin": [ - 144.40000915527344, - 314.8502197265625 - ], - "bbox": [ - 144.40000915527344, - 312.15020751953125, - 158.00001525878906, - 324.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.70001220703125, - 308.3502197265625, - 158.00001525878906, - 327.2502136230469 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 165.50001525878906, - 308.15020751953125, - 172.00001525878906, - 327.0502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 165.50001525878906, - 314.65020751953125 - ], - "bbox": [ - 165.50001525878906, - 308.15020751953125, - 172.00001525878906, - 327.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.50001525878906, - 308.15020751953125, - 172.00001525878906, - 327.0502014160156 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 177.20001220703125, - 308.3502197265625, - 303.20001220703125, - 327.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MBALOQHJM]FJCTFJM]HsEGHJALReO^RG W”Q•\u001dEGOQHJ•\u0018K", - "origin": [ - 177.20001220703125, - 314.8502197265625 - ], - "bbox": [ - 177.20001220703125, - 308.3502197265625, - 280.9999694824219, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 177.20001220703125, - 308.3502197265625, - 280.9999694824219, - 327.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNMPY", - "origin": [ - 291.3000183105469, - 314.8502197265625 - ], - "bbox": [ - 291.3000183105469, - 308.3502197265625, - 303.20001220703125, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 291.3000183105469, - 308.3502197265625, - 303.20001220703125, - 327.2502136230469 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 312.3000183105469, - 308.3502197265625, - 338.5000305175781, - 327.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaALYPXPvW‘", - "origin": [ - 312.3000183105469, - 314.8502197265625 - ], - "bbox": [ - 312.3000183105469, - 308.3502197265625, - 338.5000305175781, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.3000183105469, - 308.3502197265625, - 338.5000305175781, - 327.2502136230469 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 350.4000244140625, - 299.9502258300781, - 522.1000366210938, - 336.65020751953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M¯FJM·SaR¡‘6MBX’HsE1O\u0018S\u001d±", - "origin": [ - 350.4000244140625, - 314.8502197265625 - ], - "bbox": [ - 350.4000244140625, - 308.3502197265625, - 413.10003662109375, - 327.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Z€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 413.10003662109375, - 314.8502197265625 - ], - "bbox": [ - 413.10003662109375, - 299.9502258300781, - 452.0000305175781, - 324.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ªEGF", - "origin": [ - 452.0000305175781, - 314.8502197265625 - ], - "bbox": [ - 452.0000305175781, - 308.3502197265625, - 462.0000305175781, - 327.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 462.0000305175781, - 314.8502197265625 - ], - "bbox": [ - 462.0000305175781, - 312.15020751953125, - 465.7000427246094, - 324.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADhrv", - "origin": [ - 465.7000427246094, - 314.8502197265625 - ], - "bbox": [ - 465.7000427246094, - 308.3502197265625, - 480.60003662109375, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.4000244140625, - 299.9502258300781, - 480.60003662109375, - 327.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "01\u0018-0", - "origin": [ - 482.70001220703125, - 314.8502197265625 - ], - "bbox": [ - 482.70001220703125, - 312.15020751953125, - 491.8000183105469, - 324.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 482.70001220703125, - 312.15020751953125, - 491.8000183105469, - 324.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 496.3000183105469, - 314.8502197265625 - ], - "bbox": [ - 496.3000183105469, - 301.9502258300781, - 496.3000183105469, - 336.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Tš", - "origin": [ - 496.3000183105469, - 314.8502197265625 - ], - "bbox": [ - 496.3000183105469, - 308.3502197265625, - 501.3000183105469, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 496.3000183105469, - 301.9502258300781, - 501.3000183105469, - 336.65020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-\u0018", - "origin": [ - 503.5000305175781, - 314.8502197265625 - ], - "bbox": [ - 503.5000305175781, - 312.15020751953125, - 508.0000305175781, - 324.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 508.0000305175781, - 314.8502197265625 - ], - "bbox": [ - 508.0000305175781, - 308.3502197265625, - 512.7000122070312, - 327.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",+", - "origin": [ - 512.7000122070312, - 314.8502197265625 - ], - "bbox": [ - 512.7000122070312, - 312.15020751953125, - 517.1000366210938, - 324.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "T`", - "origin": [ - 517.1000366210938, - 314.8502197265625 - ], - "bbox": [ - 517.1000366210938, - 308.3502197265625, - 522.1000366210938, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 503.5000305175781, - 308.3502197265625, - 522.1000366210938, - 327.2502136230469 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 100.30001831054688, - 318.8502197265625, - 183.8000030517578, - 338.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "HJR\u0010EGC\u0018CrMZEcF4ADO", - "origin": [ - 100.30001831054688, - 325.8502197265625 - ], - "bbox": [ - 100.30001831054688, - 319.3502197265625, - 144.6000213623047, - 338.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.30001831054688, - 319.3502197265625, - 144.6000213623047, - 338.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 152.80001831054688, - 325.8502197265625 - ], - "bbox": [ - 152.80001831054688, - 318.8502197265625, - 152.80001831054688, - 337.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-M] ™š", - "origin": [ - 152.80001831054688, - 325.8502197265625 - ], - "bbox": [ - 152.80001831054688, - 319.3502197265625, - 167.00001525878906, - 338.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.80001831054688, - 318.8502197265625, - 167.00001525878906, - 338.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 172.80001831054688, - 325.8502197265625 - ], - "bbox": [ - 172.80001831054688, - 318.8502197265625, - 172.80001831054688, - 337.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žoZp", - "origin": [ - 172.80001831054688, - 325.8502197265625 - ], - "bbox": [ - 172.80001831054688, - 319.3502197265625, - 179.40000915527344, - 338.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 179.40000915527344, - 325.8502197265625 - ], - "bbox": [ - 179.40000915527344, - 318.8502197265625, - 183.8000030517578, - 337.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 172.80001831054688, - 318.8502197265625, - 183.8000030517578, - 338.2502136230469 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 71.70001983642578, - 329.7502136230469, - 142.50001525878906, - 349.15020751953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.70001983642578, - 336.7502136230469 - ], - "bbox": [ - 71.70001983642578, - 329.7502136230469, - 71.70001983642578, - 348.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žoZn", - "origin": [ - 71.70001983642578, - 336.7502136230469 - ], - "bbox": [ - 71.70001983642578, - 330.2502136230469, - 78.30001831054688, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.30001831054688, - 336.7502136230469 - ], - "bbox": [ - 78.30001831054688, - 329.7502136230469, - 82.70001983642578, - 348.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N¼E1XIXIA", - "origin": [ - 82.70001983642578, - 336.7502136230469 - ], - "bbox": [ - 82.70001983642578, - 330.2502136230469, - 108.70001983642578, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001f�", - "origin": [ - 108.70001983642578, - 336.7502136230469 - ], - "bbox": [ - 108.70001983642578, - 336.5502014160156, - 114.5000228881836, - 345.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.70001983642578, - 329.7502136230469, - 114.5000228881836, - 349.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1O\u0018S", - "origin": [ - 124.50001525878906, - 336.7502136230469 - ], - "bbox": [ - 124.50001525878906, - 330.2502136230469, - 134.20001220703125, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\r.", - "origin": [ - 134.20001220703125, - 336.7502136230469 - ], - "bbox": [ - 134.20001220703125, - 334.0502014160156, - 142.50001525878906, - 346.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.50001525878906, - 330.2502136230469, - 142.50001525878906, - 349.15020751953125 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 154.6000213623047, - 321.8502197265625, - 392.10003662109375, - 358.5502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALFsEcFsSaA", - "origin": [ - 154.6000213623047, - 336.7502136230469 - ], - "bbox": [ - 154.6000213623047, - 330.2502136230469, - 174.10003662109375, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "I.", - "origin": [ - 174.10003662109375, - 336.7502136230469 - ], - "bbox": [ - 174.10003662109375, - 334.0502014160156, - 180.00003051757812, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡«!p", - "origin": [ - 180.00003051757812, - 336.7502136230469 - ], - "bbox": [ - 180.00003051757812, - 330.2502136230469, - 197.00003051757812, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010", - "origin": [ - 197.00003051757812, - 336.7502136230469 - ], - "bbox": [ - 197.00003051757812, - 334.0502014160156, - 206.00003051757812, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1i", - "origin": [ - 206.00003051757812, - 336.7502136230469 - ], - "bbox": [ - 206.00003051757812, - 330.2502136230469, - 210.50003051757812, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c€L?vuNSPd", - "origin": [ - 210.50003051757812, - 336.7502136230469 - ], - "bbox": [ - 210.50003051757812, - 321.8502197265625, - 238.10000610351562, - 346.7502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001f\r", - "origin": [ - 238.10000610351562, - 336.7502136230469 - ], - "bbox": [ - 238.10000610351562, - 336.5502014160156, - 243.90000915527344, - 345.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ",:\u0018@\u000ed", - "origin": [ - 243.90000915527344, - 336.7502136230469 - ], - "bbox": [ - 243.90000915527344, - 321.8502197265625, - 259.5, - 346.7502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")()\"", - "origin": [ - 259.5, - 336.7502136230469 - ], - "bbox": [ - 259.5, - 334.0502014160156, - 270.29998779296875, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0013 ", - "origin": [ - 270.29998779296875, - 336.7502136230469 - ], - "bbox": [ - 270.29998779296875, - 336.5502014160156, - 275.3999938964844, - 345.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";pemeq", - "origin": [ - 275.3999938964844, - 336.7502136230469 - ], - "bbox": [ - 275.3999938964844, - 330.2502136230469, - 293.0, - 349.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.6000213623047, - 321.8502197265625, - 293.0, - 349.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 301.20001220703125, - 336.7502136230469 - ], - "bbox": [ - 301.20001220703125, - 323.8502197265625, - 301.20001220703125, - 358.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 301.20001220703125, - 336.7502136230469 - ], - "bbox": [ - 301.20001220703125, - 321.8502197265625, - 335.0000305175781, - 346.7502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WEcF", - "origin": [ - 335.0000305175781, - 336.7502136230469 - ], - "bbox": [ - 335.0000305175781, - 330.2502136230469, - 345.20001220703125, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 345.20001220703125, - 336.7502136230469 - ], - "bbox": [ - 345.20001220703125, - 334.0502014160156, - 348.9000244140625, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 348.9000244140625, - 336.7502136230469 - ], - "bbox": [ - 348.9000244140625, - 330.2502136230469, - 363.8000183105469, - 349.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.20001220703125, - 321.8502197265625, - 363.8000183105469, - 358.5502014160156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”g•\u0018E1OQHIklC", - "origin": [ - 365.9000244140625, - 336.7502136230469 - ], - "bbox": [ - 365.9000244140625, - 330.2502136230469, - 392.10003662109375, - 349.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.9000244140625, - 330.2502136230469, - 392.10003662109375, - 349.15020751953125 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 397.3000183105469, - 330.0502014160156, - 402.6000061035156, - 348.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 397.3000183105469, - 336.5502014160156 - ], - "bbox": [ - 397.3000183105469, - 330.0502014160156, - 397.3000183105469, - 348.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*;", - "origin": [ - 397.3000183105469, - 336.5502014160156 - ], - "bbox": [ - 397.3000183105469, - 333.8501892089844, - 402.6000061035156, - 345.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.3000183105469, - 330.0502014160156, - 402.6000061035156, - 348.9501953125 - ] - } - ] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 407.1000061035156, - 323.8502197265625, - 439.1000061035156, - 358.5502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 407.1000061035156, - 336.7502136230469 - ], - "bbox": [ - 407.1000061035156, - 334.0502014160156, - 407.1000061035156, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ei", - "origin": [ - 407.1000061035156, - 336.7502136230469 - ], - "bbox": [ - 407.1000061035156, - 330.2502136230469, - 411.70001220703125, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 411.70001220703125, - 336.7502136230469 - ], - "bbox": [ - 411.70001220703125, - 334.0502014160156, - 416.20001220703125, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/pQoZn", - "origin": [ - 416.20001220703125, - 336.7502136230469 - ], - "bbox": [ - 416.20001220703125, - 330.2502136230469, - 429.9000244140625, - 349.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 407.1000061035156, - 330.2502136230469, - 429.9000244140625, - 349.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y�W", - "origin": [ - 434.3999938964844, - 336.7502136230469 - ], - "bbox": [ - 434.3999938964844, - 323.8502197265625, - 439.1000061035156, - 358.5502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 434.3999938964844, - 323.8502197265625, - 439.1000061035156, - 358.5502014160156 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 71.69998168945312, - 332.8502197265625, - 382.3999938964844, - 369.5502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.69998168945312, - 347.7502136230469 - ], - "bbox": [ - 71.69998168945312, - 340.7502136230469, - 71.69998168945312, - 359.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocq", - "origin": [ - 71.69998168945312, - 347.7502136230469 - ], - "bbox": [ - 71.69998168945312, - 341.2502136230469, - 78.39998626708984, - 360.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39998626708984, - 347.7502136230469 - ], - "bbox": [ - 78.39998626708984, - 340.7502136230469, - 82.69998931884766, - 359.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016¨", - "origin": [ - 82.69998931884766, - 347.7502136230469 - ], - "bbox": [ - 82.69998931884766, - 341.2502136230469, - 90.89999389648438, - 360.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69998168945312, - 340.7502136230469, - 90.89999389648438, - 360.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "H\u0018ÀBRQRG ºH", - "origin": [ - 92.89997863769531, - 347.7502136230469 - ], - "bbox": [ - 92.89997863769531, - 341.2502136230469, - 117.09998321533203, - 360.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/.", - "origin": [ - 117.09998321533203, - 347.7502136230469 - ], - "bbox": [ - 117.09998321533203, - 345.0502014160156, - 124.09998321533203, - 357.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.89997863769531, - 341.2502136230469, - 124.09998321533203, - 360.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 134.3999786376953, - 347.7502136230469 - ], - "bbox": [ - 134.3999786376953, - 341.2502136230469, - 134.3999786376953, - 360.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010", - "origin": [ - 134.3999786376953, - 347.7502136230469 - ], - "bbox": [ - 134.3999786376953, - 345.0502014160156, - 143.49998474121094, - 357.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eq", - "origin": [ - 143.49998474121094, - 347.7502136230469 - ], - "bbox": [ - 143.49998474121094, - 341.2502136230469, - 148.09999084472656, - 360.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "'\u001a", - "origin": [ - 148.09999084472656, - 347.7502136230469 - ], - "bbox": [ - 148.09999084472656, - 345.0502014160156, - 155.99998474121094, - 357.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "s.#€", - "origin": [ - 155.99998474121094, - 347.7502136230469 - ], - "bbox": [ - 155.99998474121094, - 332.8502197265625, - 166.3999786376953, - 357.7502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.3999786376953, - 332.8502197265625, - 166.3999786376953, - 360.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "6", - "origin": [ - 176.69998168945312, - 347.7502136230469 - ], - "bbox": [ - 176.69998168945312, - 345.0502014160156, - 176.69998168945312, - 357.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI785h5d;€ƒB", - "origin": [ - 78.29998016357422, - 358.65020751953125 - ], - "bbox": [ - 78.29998016357422, - 351.65020751953125, - 82.69998168945312, - 370.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tL§PM¡À4k", - "origin": [ - 82.69998168945312, - 358.65020751953125 - ], - "bbox": [ - 82.69998168945312, - 352.15020751953125, - 117.29998016357422, - 371.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69998168945312, - 351.65020751953125, - 117.29998016357422, - 371.0502014160156 - ] - } - ] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 130.3999786376953, - 343.7502136230469, - 405.2999572753906, - 380.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 130.3999786376953, - 358.65020751953125 - ], - "bbox": [ - 130.3999786376953, - 352.15020751953125, - 130.3999786376953, - 371.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010-+\r2", - "origin": [ - 130.3999786376953, - 358.65020751953125 - ], - "bbox": [ - 130.3999786376953, - 355.9501953125, - 152.19998168945312, - 368.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ado€W?vuNSGd", - "origin": [ - 152.19998168945312, - 358.65020751953125 - ], - "bbox": [ - 152.19998168945312, - 343.7502136230469, - 182.5999755859375, - 368.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u001e\u001a", - "origin": [ - 182.5999755859375, - 358.65020751953125 - ], - "bbox": [ - 182.5999755859375, - 355.9501953125, - 188.19998168945312, - 368.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "„d", - "origin": [ - 188.19998168945312, - 358.65020751953125 - ], - "bbox": [ - 188.19998168945312, - 343.7502136230469, - 195.49998474121094, - 368.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "54", - "origin": [ - 195.49998474121094, - 358.65020751953125 - ], - "bbox": [ - 195.49998474121094, - 355.9501953125, - 198.3999786376953, - 368.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0017_`2NC9?fdƒmo?f:", - "origin": [ - 78.2999496459961, - 369.65020751953125 - ], - "bbox": [ - 78.2999496459961, - 362.65020751953125, - 82.699951171875, - 381.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.699951171875, - 362.65020751953125, - 82.699951171875, - 382.0502014160156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "$", - "origin": [ - 90.49995422363281, - 369.65020751953125 - ], - "bbox": [ - 90.49995422363281, - 366.9501953125, - 90.49995422363281, - 379.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/E1KNKNM]F", - "origin": [ - 90.49995422363281, - 369.65020751953125 - ], - "bbox": [ - 90.49995422363281, - 363.15020751953125, - 119.29995727539062, - 382.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u000f\u000b", - "origin": [ - 119.29995727539062, - 369.65020751953125 - ], - "bbox": [ - 119.29995727539062, - 369.4501953125, - 127.09996032714844, - 378.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÿo", - "origin": [ - 127.09996032714844, - 369.65020751953125 - ], - "bbox": [ - 127.09996032714844, - 363.15020751953125, - 139.89996337890625, - 382.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&\u0018", - "origin": [ - 139.89996337890625, - 369.65020751953125 - ], - "bbox": [ - 139.89996337890625, - 366.9501953125, - 144.09996032714844, - 379.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em", - "origin": [ - 144.09996032714844, - 369.65020751953125 - ], - "bbox": [ - 144.09996032714844, - 363.15020751953125, - 148.69996643066406, - 382.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 148.69996643066406, - 369.65020751953125 - ], - "bbox": [ - 148.69996643066406, - 356.7502136230469, - 153.09996032714844, - 391.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 90.49995422363281, - 356.7502136230469, - 153.09996032714844, - 391.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "6", - "origin": [ - 163.09994506835938, - 369.65020751953125 - ], - "bbox": [ - 163.09994506835938, - 366.9501953125, - 163.09994506835938, - 379.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆIN8=1:\u0018@‡CESaI\u001eh", - "origin": [ - 163.09994506835938, - 369.65020751953125 - ], - "bbox": [ - 163.09994506835938, - 354.7502136230469, - 206.2999267578125, - 379.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "%\u001b", - "origin": [ - 206.2999267578125, - 369.65020751953125 - ], - "bbox": [ - 206.2999267578125, - 366.9501953125, - 214.39993286132812, - 379.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "b@A2>=1:", - "origin": [ - 214.39993286132812, - 369.65020751953125 - ], - "bbox": [ - 214.39993286132812, - 354.7502136230469, - 232.49993896484375, - 379.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&4", - "origin": [ - 232.49993896484375, - 369.65020751953125 - ], - "bbox": [ - 232.49993896484375, - 366.9501953125, - 236.69993591308594, - 379.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.09994506835938, - 354.7502136230469, - 236.69993591308594, - 379.65020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "mo?f:J‚y6^S-C\u0015I7B1u", - "origin": [ - 246.09994506835938, - 369.65020751953125 - ], - "bbox": [ - 246.09994506835938, - 354.7502136230469, - 290.0999450683594, - 379.65020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.09994506835938, - 354.7502136230469, - 290.0999450683594, - 379.65020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "I#hemo?*:-INBD6\u0015:DSgI#h", - "origin": [ - 299.0999450683594, - 369.65020751953125 - ], - "bbox": [ - 299.0999450683594, - 354.7502136230469, - 352.9999694824219, - 379.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "%\u001b", - "origin": [ - 352.9999694824219, - 369.65020751953125 - ], - "bbox": [ - 352.9999694824219, - 366.9501953125, - 361.0999755859375, - 379.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "7@A2>=1:g6^8�€W?vuNS16E=PS", - "origin": [ - 361.0999755859375, - 369.65020751953125 - ], - "bbox": [ - 361.0999755859375, - 354.7502136230469, - 425.699951171875, - 379.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\rV", - "origin": [ - 425.699951171875, - 369.65020751953125 - ], - "bbox": [ - 425.699951171875, - 356.7502136230469, - 433.7999572753906, - 391.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "wÀBEGFJh1EGFsS?v\u0016ÀBEGFJh1EGFsS", - "origin": [ - 433.7999572753906, - 369.65020751953125 - ], - "bbox": [ - 433.7999572753906, - 363.15020751953125, - 506.0999450683594, - 382.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "!\u0012", - "origin": [ - 506.0999450683594, - 369.65020751953125 - ], - "bbox": [ - 506.0999450683594, - 369.4501953125, - 515.0999755859375, - 378.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"š", - "origin": [ - 515.0999755859375, - 369.65020751953125 - ], - "bbox": [ - 515.0999755859375, - 363.15020751953125, - 522.5999755859375, - 382.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 299.0999450683594, - 354.7502136230469, - 522.5999755859375, - 391.4501953125 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 100.49993896484375, - 374.15020751953125, - 117.89993286132812, - 393.0502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "fuFJMPXIX", - "origin": [ - 100.49993896484375, - 380.65020751953125 - ], - "bbox": [ - 100.49993896484375, - 374.15020751953125, - 117.89993286132812, - 393.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.49993896484375, - 374.15020751953125, - 117.89993286132812, - 393.0502014160156 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 73.79993438720703, - 376.65020751953125, - 521.4999389648438, - 403.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 73.79993438720703, - 391.5502014160156 - ], - "bbox": [ - 73.79993438720703, - 385.0502014160156, - 73.79993438720703, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 73.79993438720703, - 391.5502014160156 - ], - "bbox": [ - 73.79993438720703, - 388.8501892089844, - 78.29993438720703, - 400.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29993438720703, - 391.5502014160156 - ], - "bbox": [ - 78.29993438720703, - 384.5502014160156, - 82.69993591308594, - 402.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c+", - "origin": [ - 82.69993591308594, - 391.5502014160156 - ], - "bbox": [ - 82.69993591308594, - 376.65020751953125, - 90.59993743896484, - 401.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TR1F", - "origin": [ - 90.59993743896484, - 391.5502014160156 - ], - "bbox": [ - 90.59993743896484, - 385.0502014160156, - 100.09993743896484, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 100.09993743896484, - 391.5502014160156 - ], - "bbox": [ - 100.09993743896484, - 376.65020751953125, - 103.79993438720703, - 401.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO", - "origin": [ - 103.79993438720703, - 391.5502014160156 - ], - "bbox": [ - 103.79993438720703, - 385.0502014160156, - 111.19993591308594, - 403.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79993438720703, - 376.65020751953125, - 111.19993591308594, - 403.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 119.39993286132812, - 391.5502014160156 - ], - "bbox": [ - 119.39993286132812, - 384.5502014160156, - 119.39993286132812, - 402.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "µ@", - "origin": [ - 119.39993286132812, - 391.5502014160156 - ], - "bbox": [ - 119.39993286132812, - 385.0502014160156, - 129.2999267578125, - 403.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.39993286132812, - 384.5502014160156, - 129.2999267578125, - 403.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 139.5999298095703, - 391.5502014160156 - ], - "bbox": [ - 139.5999298095703, - 385.0502014160156, - 139.5999298095703, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 139.5999298095703, - 391.5502014160156 - ], - "bbox": [ - 139.5999298095703, - 388.8501892089844, - 148.5999298095703, - 400.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m^«E1•aXJE1tWXIM¯HJXPvSTADXIY¯FJM]HJM¡d1FsEZhgAžH=", - "origin": [ - 148.5999298095703, - 391.5502014160156 - ], - "bbox": [ - 148.5999298095703, - 385.0502014160156, - 270.09991455078125, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Zzr:<=PCE[AB<:DSpIN8", - "origin": [ - 270.09991455078125, - 391.5502014160156 - ], - "bbox": [ - 270.09991455078125, - 376.65020751953125, - 319.4999084472656, - 401.5502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.5999298095703, - 376.65020751953125, - 319.4999084472656, - 403.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ">", - "origin": [ - 328.699951171875, - 391.5502014160156 - ], - "bbox": [ - 328.699951171875, - 388.8501892089844, - 328.699951171875, - 400.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "L[f2N8fCE[v0", - "origin": [ - 328.699951171875, - 391.5502014160156 - ], - "bbox": [ - 328.699951171875, - 376.65020751953125, - 357.7999572753906, - 401.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\"�", - "origin": [ - 357.7999572753906, - 391.5502014160156 - ], - "bbox": [ - 357.7999572753906, - 391.3501892089844, - 369.2999572753906, - 400.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒB<27M569CEu", - "origin": [ - 369.2999572753906, - 391.5502014160156 - ], - "bbox": [ - 369.2999572753906, - 376.65020751953125, - 393.89996337890625, - 401.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¢MPS", - "origin": [ - 393.89996337890625, - 391.5502014160156 - ], - "bbox": [ - 393.89996337890625, - 385.0502014160156, - 406.0999755859375, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "#�", - "origin": [ - 406.0999755859375, - 391.5502014160156 - ], - "bbox": [ - 406.0999755859375, - 391.3501892089844, - 414.39996337890625, - 400.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 328.699951171875, - 376.65020751953125, - 414.39996337890625, - 403.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ".", - "origin": [ - 424.5999450683594, - 391.5502014160156 - ], - "bbox": [ - 424.5999450683594, - 388.8501892089844, - 424.5999450683594, - 400.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BReK\"£rM]FJR1¿\u0019EGO\u001dS¢@", - "origin": [ - 424.5999450683594, - 391.5502014160156 - ], - "bbox": [ - 424.5999450683594, - 385.0502014160156, - 487.7999572753906, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "$\u000b", - "origin": [ - 487.7999572753906, - 391.5502014160156 - ], - "bbox": [ - 487.7999572753906, - 391.3501892089844, - 498.199951171875, - 400.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“EcFJRetž ", - "origin": [ - 498.199951171875, - 391.5502014160156 - ], - "bbox": [ - 498.199951171875, - 385.0502014160156, - 521.4999389648438, - 403.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.5999450683594, - 385.0502014160156, - 521.4999389648438, - 403.9501953125 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 100.99993896484375, - 387.5502014160156, - 272.49993896484375, - 424.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 100.99993896484375, - 402.4501953125 - ], - "bbox": [ - 100.99993896484375, - 389.5502014160156, - 100.99993896484375, - 424.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "w¶BM¯‘—˜6RGF", - "origin": [ - 100.99993896484375, - 402.4501953125 - ], - "bbox": [ - 100.99993896484375, - 395.9501953125, - 135.2999267578125, - 414.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 135.2999267578125, - 402.4501953125 - ], - "bbox": [ - 135.2999267578125, - 387.5502014160156, - 138.9999237060547, - 412.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "?v", - "origin": [ - 138.9999237060547, - 402.4501953125 - ], - "bbox": [ - 138.9999237060547, - 395.9501953125, - 144.4999237060547, - 414.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "W+", - "origin": [ - 144.4999237060547, - 402.4501953125 - ], - "bbox": [ - 144.4999237060547, - 387.5502014160156, - 150.7999267578125, - 412.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gCaFJALO\u0018d1M]F", - "origin": [ - 150.7999267578125, - 402.4501953125 - ], - "bbox": [ - 150.7999267578125, - 395.9501953125, - 180.69992065429688, - 414.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.99993896484375, - 387.5502014160156, - 180.69992065429688, - 424.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 191.59994506835938, - 402.4501953125 - ], - "bbox": [ - 191.59994506835938, - 389.5502014160156, - 191.59994506835938, - 424.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 191.59994506835938, - 402.4501953125 - ], - "bbox": [ - 191.59994506835938, - 387.5502014160156, - 225.49993896484375, - 412.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 225.49993896484375, - 402.4501953125 - ], - "bbox": [ - 225.49993896484375, - 395.9501953125, - 235.69993591308594, - 414.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 235.69993591308594, - 402.4501953125 - ], - "bbox": [ - 235.69993591308594, - 399.75018310546875, - 239.39993286132812, - 411.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 239.39993286132812, - 402.4501953125 - ], - "bbox": [ - 239.39993286132812, - 395.9501953125, - 254.2999267578125, - 414.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.59994506835938, - 387.5502014160156, - 254.2999267578125, - 424.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "dGFIk=”QY", - "origin": [ - 256.2999572753906, - 402.4501953125 - ], - "bbox": [ - 256.2999572753906, - 395.9501953125, - 272.49993896484375, - 414.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 256.2999572753906, - 395.9501953125, - 272.49993896484375, - 414.8501892089844 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 281.199951171875, - 389.5502014160156, - 313.1999816894531, - 424.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 281.199951171875, - 402.4501953125 - ], - "bbox": [ - 281.199951171875, - 399.75018310546875, - 281.199951171875, - 411.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ei", - "origin": [ - 281.199951171875, - 402.4501953125 - ], - "bbox": [ - 281.199951171875, - 395.9501953125, - 285.7999572753906, - 414.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-01\u001810-01\u0018", - "origin": [ - 285.7999572753906, - 402.4501953125 - ], - "bbox": [ - 285.7999572753906, - 399.75018310546875, - 308.5999755859375, - 411.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "XW", - "origin": [ - 308.5999755859375, - 402.4501953125 - ], - "bbox": [ - 308.5999755859375, - 389.5502014160156, - 313.1999816894531, - 424.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 281.199951171875, - 389.5502014160156, - 313.1999816894531, - 424.25018310546875 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 73.7999496459961, - 398.65020751953125, - 230.49993896484375, - 425.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "pgo", - "origin": [ - 73.7999496459961, - 413.5502014160156 - ], - "bbox": [ - 73.7999496459961, - 407.0502014160156, - 78.699951171875, - 425.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.7999496459961, - 407.0502014160156, - 78.699951171875, - 425.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ">", - "origin": [ - 82.699951171875, - 413.5502014160156 - ], - "bbox": [ - 82.699951171875, - 406.5502014160156, - 82.699951171875, - 424.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010@·RZ‘", - "origin": [ - 82.699951171875, - 413.5502014160156 - ], - "bbox": [ - 82.699951171875, - 407.0502014160156, - 101.69994354248047, - 425.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ",)", - "origin": [ - 101.69994354248047, - 413.5502014160156 - ], - "bbox": [ - 101.69994354248047, - 398.65020751953125, - 108.39994049072266, - 423.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/M]F%U\u0012p", - "origin": [ - 108.39994049072266, - 413.5502014160156 - ], - "bbox": [ - 108.39994049072266, - 407.0502014160156, - 136.39993286132812, - 425.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010", - "origin": [ - 136.39993286132812, - 413.5502014160156 - ], - "bbox": [ - 136.39993286132812, - 410.8501892089844, - 145.39993286132812, - 422.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em\r«E1•aXJE1t½XIM]HJX%E1O\u0018S!H", - "origin": [ - 145.39993286132812, - 413.5502014160156 - ], - "bbox": [ - 145.39993286132812, - 407.0502014160156, - 230.49993896484375, - 425.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.699951171875, - 398.65020751953125, - 230.49993896484375, - 425.9501953125 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 239.3999481201172, - 398.65020751953125, - 521.0999755859375, - 425.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M&SaMPM]CµX’HIFJ•aY]HJ•aFJM\u0019R1 \u0010XIC\u0018E1YPM¯HJADKNM", - "origin": [ - 239.3999481201172, - 413.5502014160156 - ], - "bbox": [ - 239.3999481201172, - 407.0502014160156, - 360.00006103515625, - 425.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 239.3999481201172, - 407.0502014160156, - 360.00006103515625, - 425.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "J=1:PO1mr6^0\u001c:", - "origin": [ - 478.49993896484375, - 413.5502014160156 - ], - "bbox": [ - 478.49993896484375, - 398.65020751953125, - 521.0999755859375, - 423.5502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.49993896484375, - 398.65020751953125, - 521.0999755859375, - 423.5502014160156 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 100.89993286132812, - 409.5502014160156, - 279.2998962402344, - 436.8501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u001b", - "origin": [ - 100.89993286132812, - 424.4501953125 - ], - "bbox": [ - 100.89993286132812, - 421.75018310546875, - 100.89993286132812, - 433.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "fCEB1[*=PCE[vB-:", - "origin": [ - 100.89993286132812, - 424.4501953125 - ], - "bbox": [ - 100.89993286132812, - 409.5502014160156, - 133.5999298095703, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&4", - "origin": [ - 133.5999298095703, - 424.4501953125 - ], - "bbox": [ - 133.5999298095703, - 421.75018310546875, - 137.7999267578125, - 433.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "(\u0010", - "origin": [ - 137.7999267578125, - 424.4501953125 - ], - "bbox": [ - 137.7999267578125, - 424.25018310546875, - 149.5999298095703, - 432.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ6^8*S1C\u0018:D698", - "origin": [ - 149.5999298095703, - 424.4501953125 - ], - "bbox": [ - 149.5999298095703, - 409.5502014160156, - 177.89993286132812, - 434.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.89993286132812, - 409.5502014160156, - 177.89993286132812, - 434.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "278‡X", - "origin": [ - 189.2999267578125, - 424.4501953125 - ], - "bbox": [ - 189.2999267578125, - 409.5502014160156, - 199.0999298095703, - 434.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 189.2999267578125, - 409.5502014160156, - 199.0999298095703, - 434.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "xy:DubI78X", - "origin": [ - 209.2999267578125, - 424.4501953125 - ], - "bbox": [ - 209.2999267578125, - 409.5502014160156, - 234.69992065429688, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "!MZS", - "origin": [ - 234.69992065429688, - 424.4501953125 - ], - "bbox": [ - 234.69992065429688, - 417.9501953125, - 248.69992065429688, - 436.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": ")�*�", - "origin": [ - 248.69992065429688, - 424.4501953125 - ], - "bbox": [ - 248.69992065429688, - 424.25018310546875, - 272.4999084472656, - 432.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4X", - "origin": [ - 272.4999084472656, - 424.4501953125 - ], - "bbox": [ - 272.4999084472656, - 417.9501953125, - 279.2998962402344, - 436.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 209.2999267578125, - 409.5502014160156, - 279.2998962402344, - 436.8501892089844 - ] - } - ] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 287.6999206542969, - 409.5502014160156, - 521.39990234375, - 446.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "HJM", - "origin": [ - 287.6999206542969, - 424.4501953125 - ], - "bbox": [ - 287.6999206542969, - 417.9501953125, - 291.3999328613281, - 436.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "G)", - "origin": [ - 291.3999328613281, - 424.4501953125 - ], - "bbox": [ - 291.3999328613281, - 409.5502014160156, - 295.49993896484375, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eEcF", - "origin": [ - 295.49993896484375, - 424.4501953125 - ], - "bbox": [ - 295.49993896484375, - 417.9501953125, - 304.3999328613281, - 436.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 287.6999206542969, - 409.5502014160156, - 304.3999328613281, - 436.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 314.4999084472656, - 424.4501953125 - ], - "bbox": [ - 314.4999084472656, - 411.5502014160156, - 314.4999084472656, - 446.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015+", - "origin": [ - 314.4999084472656, - 424.4501953125 - ], - "bbox": [ - 314.4999084472656, - 409.5502014160156, - 317.6999206542969, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gADOad/EGCrR1FJMevŸ²\u0014RGFJt´S", - "origin": [ - 317.6999206542969, - 424.4501953125 - ], - "bbox": [ - 317.6999206542969, - 417.9501953125, - 388.89996337890625, - 436.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\f+", - "origin": [ - 388.89996337890625, - 424.4501953125 - ], - "bbox": [ - 388.89996337890625, - 409.5502014160156, - 399.9999694824219, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TY]ADM]OgHJAž¤\u0018Y", - "origin": [ - 399.9999694824219, - 424.4501953125 - ], - "bbox": [ - 399.9999694824219, - 417.9501953125, - 431.79998779296875, - 436.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "2W", - "origin": [ - 431.79998779296875, - 424.4501953125 - ], - "bbox": [ - 431.79998779296875, - 411.5502014160156, - 436.0999755859375, - 446.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.4999084472656, - 409.5502014160156, - 436.0999755859375, - 446.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 445.89990234375, - 424.4501953125 - ], - "bbox": [ - 445.89990234375, - 411.5502014160156, - 445.89990234375, - 446.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@‡B16^8*C", - "origin": [ - 445.89990234375, - 424.4501953125 - ], - "bbox": [ - 445.89990234375, - 409.5502014160156, - 479.69989013671875, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "³EGF", - "origin": [ - 479.69989013671875, - 424.4501953125 - ], - "bbox": [ - 479.69989013671875, - 417.9501953125, - 492.69989013671875, - 436.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 492.69989013671875, - 424.4501953125 - ], - "bbox": [ - 492.69989013671875, - 421.75018310546875, - 496.39990234375, - 433.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 496.39990234375, - 424.4501953125 - ], - "bbox": [ - 496.39990234375, - 417.9501953125, - 511.2998962402344, - 436.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.89990234375, - 409.5502014160156, - 511.2998962402344, - 446.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "d1FIk", - "origin": [ - 513.2999267578125, - 424.4501953125 - ], - "bbox": [ - 513.2999267578125, - 417.9501953125, - 521.39990234375, - 436.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 513.2999267578125, - 417.9501953125, - 521.39990234375, - 436.8501892089844 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 100.49990844726562, - 428.8501892089844, - 105.29991149902344, - 447.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”QY", - "origin": [ - 100.49990844726562, - 435.3501892089844 - ], - "bbox": [ - 100.49990844726562, - 428.8501892089844, - 105.29991149902344, - 447.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.49990844726562, - 428.8501892089844, - 105.29991149902344, - 447.75018310546875 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 114.09990692138672, - 422.4501953125, - 146.0998992919922, - 457.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 114.09990692138672, - 435.3501892089844 - ], - "bbox": [ - 114.09990692138672, - 432.6501770019531, - 114.09990692138672, - 444.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em", - "origin": [ - 114.09990692138672, - 435.3501892089844 - ], - "bbox": [ - 114.09990692138672, - 428.8501892089844, - 118.69990539550781, - 447.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-+", - "origin": [ - 118.69990539550781, - 435.3501892089844 - ], - "bbox": [ - 118.69990539550781, - 432.6501770019531, - 127.69990539550781, - 444.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "To", - "origin": [ - 127.69990539550781, - 435.3501892089844 - ], - "bbox": [ - 127.69990539550781, - 428.8501892089844, - 132.6999053955078, - 447.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0-\u0018", - "origin": [ - 132.6999053955078, - 435.3501892089844 - ], - "bbox": [ - 132.6999053955078, - 432.6501770019531, - 141.39990234375, - 444.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 141.39990234375, - 435.3501892089844 - ], - "bbox": [ - 141.39990234375, - 422.4501953125, - 146.0998992919922, - 457.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.09990692138672, - 422.4501953125, - 146.0998992919922, - 457.1501770019531 - ] - } - ] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 73.7999038696289, - 431.5502014160156, - 414.9998779296875, - 468.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "pep", - "origin": [ - 73.7999038696289, - 446.4501953125 - ], - "bbox": [ - 73.7999038696289, - 439.9501953125, - 78.39990234375, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�> <", - "origin": [ - 78.39990234375, - 446.4501953125 - ], - "bbox": [ - 78.39990234375, - 439.4501953125, - 90.39990234375, - 457.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADSaM]Re•aH¬@\u000ff\u001fE1O\u0018S", - "origin": [ - 90.39990234375, - 446.4501953125 - ], - "bbox": [ - 90.39990234375, - 439.9501953125, - 154.59988403320312, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Z+", - "origin": [ - 154.59988403320312, - 446.4501953125 - ], - "bbox": [ - 154.59988403320312, - 431.5502014160156, - 162.89988708496094, - 456.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gR1F", - "origin": [ - 162.89988708496094, - 446.4501953125 - ], - "bbox": [ - 162.89988708496094, - 439.9501953125, - 172.2998809814453, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 172.2998809814453, - 446.4501953125 - ], - "bbox": [ - 172.2998809814453, - 431.5502014160156, - 175.9998779296875, - 456.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO", - "origin": [ - 175.9998779296875, - 446.4501953125 - ], - "bbox": [ - 175.9998779296875, - 439.9501953125, - 183.39987182617188, - 458.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.7999038696289, - 431.5502014160156, - 183.39987182617188, - 458.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "@�p", - "origin": [ - 201.59991455078125, - 446.4501953125 - ], - "bbox": [ - 201.59991455078125, - 439.9501953125, - 211.79991149902344, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010-0", - "origin": [ - 211.79991149902344, - 446.4501953125 - ], - "bbox": [ - 211.79991149902344, - 443.75018310546875, - 225.39991760253906, - 455.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c€L?wu7SPd", - "origin": [ - 225.39991760253906, - 446.4501953125 - ], - "bbox": [ - 225.39991760253906, - 431.5502014160156, - 252.99990844726562, - 456.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0015\r", - "origin": [ - 252.99990844726562, - 446.4501953125 - ], - "bbox": [ - 252.99990844726562, - 446.25018310546875, - 258.6999206542969, - 454.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 201.59991455078125, - 431.5502014160156, - 258.6999206542969, - 458.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ":DM7d", - "origin": [ - 265.4999084472656, - 446.4501953125 - ], - "bbox": [ - 265.4999084472656, - 431.5502014160156, - 273.89990234375, - 456.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "a@", - "origin": [ - 273.89990234375, - 446.4501953125 - ], - "bbox": [ - 273.89990234375, - 439.9501953125, - 278.9999084472656, - 458.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 265.4999084472656, - 431.5502014160156, - 278.9999084472656, - 458.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 302.89990234375, - 446.4501953125 - ], - "bbox": [ - 302.89990234375, - 443.75018310546875, - 302.89990234375, - 455.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 302.89990234375, - 446.4501953125 - ], - "bbox": [ - 302.89990234375, - 439.9501953125, - 307.59991455078125, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 307.59991455078125, - 446.4501953125 - ], - "bbox": [ - 307.59991455078125, - 433.5502014160156, - 311.9999084472656, - 468.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1010", - "origin": [ - 311.9999084472656, - 446.4501953125 - ], - "bbox": [ - 311.9999084472656, - 443.75018310546875, - 321.1999206542969, - 455.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ep", - "origin": [ - 321.1999206542969, - 446.4501953125 - ], - "bbox": [ - 321.1999206542969, - 439.9501953125, - 325.7999267578125, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0019V", - "origin": [ - 325.7999267578125, - 446.4501953125 - ], - "bbox": [ - 325.7999267578125, - 433.5502014160156, - 334.1999206542969, - 468.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 334.1999206542969, - 446.4501953125 - ], - "bbox": [ - 334.1999206542969, - 431.5502014160156, - 367.99993896484375, - 456.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WEcF", - "origin": [ - 367.99993896484375, - 446.4501953125 - ], - "bbox": [ - 367.99993896484375, - 439.9501953125, - 378.1999206542969, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 378.1999206542969, - 446.4501953125 - ], - "bbox": [ - 378.1999206542969, - 443.75018310546875, - 381.8999328613281, - 455.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 381.8999328613281, - 446.4501953125 - ], - "bbox": [ - 381.8999328613281, - 439.9501953125, - 396.7999267578125, - 458.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 302.89990234375, - 431.5502014160156, - 396.7999267578125, - 468.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "d1FIk™”QY", - "origin": [ - 398.7998962402344, - 446.4501953125 - ], - "bbox": [ - 398.7998962402344, - 439.9501953125, - 414.9998779296875, - 458.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.7998962402344, - 439.9501953125, - 414.9998779296875, - 458.8501892089844 - ] - } - ] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 423.7998962402344, - 433.5502014160156, - 455.7999267578125, - 468.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0018-\u001810", - "origin": [ - 423.7998962402344, - 446.4501953125 - ], - "bbox": [ - 423.7998962402344, - 443.75018310546875, - 432.89990234375, - 455.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.7998962402344, - 443.75018310546875, - 432.89990234375, - 455.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 437.39990234375, - 446.4501953125 - ], - "bbox": [ - 437.39990234375, - 433.5502014160156, - 437.39990234375, - 468.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "10", - "origin": [ - 437.39990234375, - 446.4501953125 - ], - "bbox": [ - 437.39990234375, - 443.75018310546875, - 441.9999084472656, - 455.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "enep", - "origin": [ - 441.9999084472656, - 446.4501953125 - ], - "bbox": [ - 441.9999084472656, - 439.9501953125, - 451.1999206542969, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "XW", - "origin": [ - 451.1999206542969, - 446.4501953125 - ], - "bbox": [ - 451.1999206542969, - 433.5502014160156, - 455.7999267578125, - 468.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 437.39990234375, - 433.5502014160156, - 455.7999267578125, - 468.25018310546875 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 73.79988861083984, - 450.3501892089844, - 117.29988861083984, - 469.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p1i", - "origin": [ - 73.79988861083984, - 457.3501892089844 - ], - "bbox": [ - 73.79988861083984, - 450.8501892089844, - 78.29988861083984, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29988861083984, - 457.3501892089844 - ], - "bbox": [ - 78.29988861083984, - 450.3501892089844, - 82.69989013671875, - 468.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tL§PM¡À4k", - "origin": [ - 82.69989013671875, - 457.3501892089844 - ], - "bbox": [ - 82.69989013671875, - 450.8501892089844, - 117.29988861083984, - 469.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79988861083984, - 450.3501892089844, - 117.29988861083984, - 469.75018310546875 - ] - } - ] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 130.39988708496094, - 442.4501953125, - 377.59991455078125, - 479.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 130.39988708496094, - 457.3501892089844 - ], - "bbox": [ - 130.39988708496094, - 450.8501892089844, - 130.39988708496094, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010", - "origin": [ - 130.39988708496094, - 457.3501892089844 - ], - "bbox": [ - 130.39988708496094, - 454.6501770019531, - 139.39988708496094, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eq", - "origin": [ - 139.39988708496094, - 457.3501892089844 - ], - "bbox": [ - 139.39988708496094, - 450.8501892089844, - 143.99989318847656, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c.18fC\u0018d", - "origin": [ - 143.99989318847656, - 457.3501892089844 - ], - "bbox": [ - 143.99989318847656, - 442.4501953125, - 164.19989013671875, - 467.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 130.39988708496094, - 442.4501953125, - 164.19989013671875, - 469.75018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "2", - "origin": [ - 170.19989013671875, - 457.3501892089844 - ], - "bbox": [ - 170.19989013671875, - 454.6501770019531, - 170.19989013671875, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad\u0017mo?*:-INB5d\u000e€L?wu7SPd", - "origin": [ - 170.19989013671875, - 457.3501892089844 - ], - "bbox": [ - 170.19989013671875, - 442.4501953125, - 230.19989013671875, - 467.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 230.19989013671875, - 457.3501892089844 - ], - "bbox": [ - 230.19989013671875, - 457.1501770019531, - 235.39988708496094, - 465.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.19989013671875, - 442.4501953125, - 235.39988708496094, - 467.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "8", - "origin": [ - 240.89990234375, - 457.3501892089844 - ], - "bbox": [ - 240.89990234375, - 454.6501770019531, - 240.89990234375, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016¶-R", - "origin": [ - 240.89990234375, - 457.3501892089844 - ], - "bbox": [ - 240.89990234375, - 450.8501892089844, - 255.99989318847656, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�+", - "origin": [ - 255.99989318847656, - 457.3501892089844 - ], - "bbox": [ - 255.99989318847656, - 454.6501770019531, - 263.69989013671875, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Np", - "origin": [ - 263.69989013671875, - 457.3501892089844 - ], - "bbox": [ - 263.69989013671875, - 450.8501892089844, - 271.4998779296875, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0", - "origin": [ - 271.4998779296875, - 457.3501892089844 - ], - "bbox": [ - 271.4998779296875, - 454.6501770019531, - 275.8998718261719, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eneick=p", - "origin": [ - 275.8998718261719, - 457.3501892089844 - ], - "bbox": [ - 275.8998718261719, - 450.8501892089844, - 292.79986572265625, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-01+", - "origin": [ - 292.79986572265625, - 457.3501892089844 - ], - "bbox": [ - 292.79986572265625, - 454.6501770019531, - 301.8998718261719, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "go", - "origin": [ - 301.8998718261719, - 457.3501892089844 - ], - "bbox": [ - 301.8998718261719, - 450.8501892089844, - 306.79986572265625, - 469.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.89990234375, - 450.8501892089844, - 306.79986572265625, - 469.75018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 314.9999084472656, - 457.3501892089844 - ], - "bbox": [ - 314.9999084472656, - 444.4501953125, - 314.9999084472656, - 479.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 314.9999084472656, - 457.3501892089844 - ], - "bbox": [ - 314.9999084472656, - 442.4501953125, - 348.7999267578125, - 467.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WEcF", - "origin": [ - 348.7999267578125, - 457.3501892089844 - ], - "bbox": [ - 348.7999267578125, - 450.8501892089844, - 358.9999084472656, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 358.9999084472656, - 457.3501892089844 - ], - "bbox": [ - 358.9999084472656, - 454.6501770019531, - 362.6999206542969, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 362.6999206542969, - 457.3501892089844 - ], - "bbox": [ - 362.6999206542969, - 450.8501892089844, - 377.59991455078125, - 469.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.9999084472656, - 442.4501953125, - 377.59991455078125, - 479.1501770019531 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 384.7999267578125, - 450.8501892089844, - 397.0999450683594, - 469.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPCTklH", - "origin": [ - 384.7999267578125, - 457.3501892089844 - ], - "bbox": [ - 384.7999267578125, - 450.8501892089844, - 397.0999450683594, - 469.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 384.7999267578125, - 450.8501892089844, - 397.0999450683594, - 469.75018310546875 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 400.7999267578125, - 450.6501770019531, - 406.09991455078125, - 469.5501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 400.7999267578125, - 457.1501770019531 - ], - "bbox": [ - 400.7999267578125, - 450.6501770019531, - 400.7999267578125, - 469.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*;", - "origin": [ - 400.7999267578125, - 457.1501770019531 - ], - "bbox": [ - 400.7999267578125, - 454.4501647949219, - 406.09991455078125, - 466.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.7999267578125, - 450.6501770019531, - 406.09991455078125, - 469.5501708984375 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 410.59991455078125, - 444.4501953125, - 442.5999450683594, - 479.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 410.59991455078125, - 457.3501892089844 - ], - "bbox": [ - 410.59991455078125, - 454.6501770019531, - 410.59991455078125, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "emgo", - "origin": [ - 410.59991455078125, - 457.3501892089844 - ], - "bbox": [ - 410.59991455078125, - 450.8501892089844, - 420.09991455078125, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0", - "origin": [ - 420.09991455078125, - 457.3501892089844 - ], - "bbox": [ - 420.09991455078125, - 454.6501770019531, - 424.2999267578125, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ep1neq", - "origin": [ - 424.2999267578125, - 457.3501892089844 - ], - "bbox": [ - 424.2999267578125, - 450.8501892089844, - 437.99993896484375, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "XW", - "origin": [ - 437.99993896484375, - 457.3501892089844 - ], - "bbox": [ - 437.99993896484375, - 444.4501953125, - 442.5999450683594, - 479.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 410.59991455078125, - 444.4501953125, - 442.5999450683594, - 479.1501770019531 - ] - } - ] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 73.79991912841797, - 453.3501892089844, - 522.4999389648438, - 490.0501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 73.79991912841797, - 468.25018310546875 - ], - "bbox": [ - 73.79991912841797, - 461.75018310546875, - 73.79991912841797, - 480.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 73.79991912841797, - 468.25018310546875 - ], - "bbox": [ - 73.79991912841797, - 455.3501892089844, - 78.19992065429688, - 490.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 78.19992065429688, - 468.25018310546875 - ], - "bbox": [ - 78.19992065429688, - 461.25018310546875, - 82.69992065429688, - 479.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010@·A", - "origin": [ - 82.69992065429688, - 468.25018310546875 - ], - "bbox": [ - 82.69992065429688, - 461.75018310546875, - 97.49991607666016, - 480.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001b\u001a", - "origin": [ - 97.49991607666016, - 468.25018310546875 - ], - "bbox": [ - 97.49991607666016, - 468.0501708984375, - 101.49991607666016, - 476.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79991912841797, - 455.3501892089844, - 101.49991607666016, - 490.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ReXIA½b\u000bp", - "origin": [ - 99.99992370605469, - 468.25018310546875 - ], - "bbox": [ - 99.99992370605469, - 461.75018310546875, - 126.2999267578125, - 480.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010", - "origin": [ - 126.2999267578125, - 468.25018310546875 - ], - "bbox": [ - 126.2999267578125, - 465.5501708984375, - 135.2999267578125, - 477.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/q", - "origin": [ - 135.2999267578125, - 468.25018310546875 - ], - "bbox": [ - 135.2999267578125, - 461.75018310546875, - 139.9999237060547, - 480.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.99992370605469, - 461.75018310546875, - 139.9999237060547, - 480.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u001b", - "origin": [ - 161.39991760253906, - 468.25018310546875 - ], - "bbox": [ - 161.39991760253906, - 465.5501708984375, - 161.39991760253906, - 477.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "v?*I7B1C", - "origin": [ - 161.39991760253906, - 468.25018310546875 - ], - "bbox": [ - 161.39991760253906, - 453.3501892089844, - 179.69992065429688, - 478.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.39991760253906, - 453.3501892089844, - 179.69992065429688, - 478.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "6", - "origin": [ - 188.39991760253906, - 468.25018310546875 - ], - "bbox": [ - 188.39991760253906, - 465.5501708984375, - 188.39991760253906, - 477.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI7[vB1SP:", - "origin": [ - 188.39991760253906, - 468.25018310546875 - ], - "bbox": [ - 188.39991760253906, - 453.3501892089844, - 211.79991149902344, - 478.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.39991760253906, - 453.3501892089844, - 211.79991149902344, - 478.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "6^8", - "origin": [ - 220.7999267578125, - 468.25018310546875 - ], - "bbox": [ - 220.7999267578125, - 453.3501892089844, - 223.69992065429688, - 478.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.7999267578125, - 453.3501892089844, - 223.69992065429688, - 478.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ">", - "origin": [ - 234.19992065429688, - 468.25018310546875 - ], - "bbox": [ - 234.19992065429688, - 465.5501708984375, - 234.19992065429688, - 477.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ[*278fCE[v0\u0013.18GhGI7B10327CE6EI78", - "origin": [ - 234.19992065429688, - 468.25018310546875 - ], - "bbox": [ - 234.19992065429688, - 453.3501892089844, - 318.7998962402344, - 478.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.19992065429688, - 453.3501892089844, - 318.7998962402344, - 478.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "mo?f:", - "origin": [ - 78.39991760253906, - 490.25018310546875 - ], - "bbox": [ - 78.39991760253906, - 483.25018310546875, - 82.69992065429688, - 501.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c+", - "origin": [ - 82.69992065429688, - 490.25018310546875 - ], - "bbox": [ - 82.69992065429688, - 475.3501892089844, - 90.59992218017578, - 500.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TR1F", - "origin": [ - 90.59992218017578, - 490.25018310546875 - ], - "bbox": [ - 90.59992218017578, - 483.75018310546875, - 100.09992218017578, - 502.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 100.09992218017578, - 490.25018310546875 - ], - "bbox": [ - 100.09992218017578, - 475.3501892089844, - 103.79991912841797, - 500.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO", - "origin": [ - 103.79991912841797, - 490.25018310546875 - ], - "bbox": [ - 103.79991912841797, - 483.75018310546875, - 111.19992065429688, - 502.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79991912841797, - 475.3501892089844, - 111.19992065429688, - 502.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 118.99992370605469, - 490.25018310546875 - ], - "bbox": [ - 118.99992370605469, - 483.25018310546875, - 118.99992370605469, - 501.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\r@µp", - "origin": [ - 118.99992370605469, - 490.25018310546875 - ], - "bbox": [ - 118.99992370605469, - 483.75018310546875, - 138.39991760253906, - 502.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 138.39991760253906, - 490.25018310546875 - ], - "bbox": [ - 138.39991760253906, - 487.5501708984375, - 147.39991760253906, - 499.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/q", - "origin": [ - 147.39991760253906, - 490.25018310546875 - ], - "bbox": [ - 147.39991760253906, - 483.75018310546875, - 152.09991455078125, - 502.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "!\u001a", - "origin": [ - 152.09991455078125, - 490.25018310546875 - ], - "bbox": [ - 152.09991455078125, - 487.5501708984375, - 159.59991455078125, - 499.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ@b@‡B=1?*:DSyC\u0015I", - "origin": [ - 159.59991455078125, - 490.25018310546875 - ], - "bbox": [ - 159.59991455078125, - 475.3501892089844, - 211.4999237060547, - 500.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "%>", - "origin": [ - 211.4999237060547, - 490.25018310546875 - ], - "bbox": [ - 211.4999237060547, - 487.5501708984375, - 219.5999298095703, - 499.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ[*278*CE[v0", - "origin": [ - 219.5999298095703, - 490.25018310546875 - ], - "bbox": [ - 219.5999298095703, - 475.3501892089844, - 248.69993591308594, - 500.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "+�", - "origin": [ - 248.69993591308594, - 490.25018310546875 - ], - "bbox": [ - 248.69993591308594, - 490.0501708984375, - 259.99993896484375, - 498.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒB<2NM56^CEu", - "origin": [ - 259.99993896484375, - 490.25018310546875 - ], - "bbox": [ - 259.99993896484375, - 475.3501892089844, - 284.5999450683594, - 500.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.99992370605469, - 475.3501892089844, - 284.5999450683594, - 502.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "4", - "origin": [ - 289.3999328613281, - 490.25018310546875 - ], - "bbox": [ - 289.3999328613281, - 487.5501708984375, - 289.3999328613281, - 499.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "'mI7KW27B=1:Di,mr6^0\u001c:s278X'_`2NCEC\u0018:DB", - "origin": [ - 428.2998962402344, - 490.25018310546875 - ], - "bbox": [ - 428.2998962402344, - 475.3501892089844, - 521.0999145507812, - 500.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.5999450683594, - 475.3501892089844, - 521.0999145507812, - 500.25018310546875 - ] - } - ] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 100.39993286132812, - 486.25018310546875, - 386.7999267578125, - 522.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MZS»@", - "origin": [ - 100.39993286132812, - 501.1501770019531 - ], - "bbox": [ - 100.39993286132812, - 494.6501770019531, - 112.59992980957031, - 513.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.39993286132812, - 494.6501770019531, - 112.59992980957031, - 513.5501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0016", - "origin": [ - 122.89993286132812, - 501.1501770019531 - ], - "bbox": [ - 122.89993286132812, - 498.4501647949219, - 122.89993286132812, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-FJAžHJA", - "origin": [ - 122.89993286132812, - 501.1501770019531 - ], - "bbox": [ - 122.89993286132812, - 494.6501770019531, - 139.59991455078125, - 513.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 122.89993286132812, - 494.6501770019531, - 139.59991455078125, - 513.5501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 145.89993286132812, - 501.1501770019531 - ], - "bbox": [ - 145.89993286132812, - 488.25018310546875, - 145.89993286132812, - 522.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "l«EGK\u001b£aFJADSTdeMe`", - "origin": [ - 145.89993286132812, - 501.1501770019531 - ], - "bbox": [ - 145.89993286132812, - 494.6501770019531, - 193.199951171875, - 513.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0013\u0012", - "origin": [ - 193.199951171875, - 501.1501770019531 - ], - "bbox": [ - 193.199951171875, - 500.9501647949219, - 198.29995727539062, - 509.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/\u0015", - "origin": [ - 198.29995727539062, - 501.1501770019531 - ], - "bbox": [ - 198.29995727539062, - 498.4501647949219, - 205.29995727539062, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010v\u0018«E1K\"£aFJADSad1M", - "origin": [ - 205.29995727539062, - 501.1501770019531 - ], - "bbox": [ - 205.29995727539062, - 494.6501770019531, - 257.6999816894531, - 513.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0014\u0012", - "origin": [ - 257.6999816894531, - 501.1501770019531 - ], - "bbox": [ - 257.6999816894531, - 500.9501647949219, - 264.8999938964844, - 509.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"šafuFJMPXIX", - "origin": [ - 264.8999938964844, - 501.1501770019531 - ], - "bbox": [ - 264.8999938964844, - 494.6501770019531, - 294.9000244140625, - 513.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 145.89993286132812, - 488.25018310546875, - 294.9000244140625, - 522.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 305.99993896484375, - 501.1501770019531 - ], - "bbox": [ - 305.99993896484375, - 488.25018310546875, - 305.99993896484375, - 522.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 305.99993896484375, - 501.1501770019531 - ], - "bbox": [ - 305.99993896484375, - 486.25018310546875, - 339.7999572753906, - 511.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WEcF", - "origin": [ - 339.7999572753906, - 501.1501770019531 - ], - "bbox": [ - 339.7999572753906, - 494.6501770019531, - 349.99993896484375, - 513.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 349.99993896484375, - 501.1501770019531 - ], - "bbox": [ - 349.99993896484375, - 498.4501647949219, - 353.699951171875, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 353.699951171875, - 501.1501770019531 - ], - "bbox": [ - 353.699951171875, - 494.6501770019531, - 368.5999450683594, - 513.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 305.99993896484375, - 486.25018310546875, - 368.5999450683594, - 522.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "d1FIk™”QY", - "origin": [ - 370.5999450683594, - 501.1501770019531 - ], - "bbox": [ - 370.5999450683594, - 494.6501770019531, - 386.7999267578125, - 513.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 370.5999450683594, - 494.6501770019531, - 386.7999267578125, - 513.5501708984375 - ] - } - ] - }, - { - "number": 99, - "type": 0, - "bbox": [ - 395.5999450683594, - 488.25018310546875, - 427.5999755859375, - 522.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 395.5999450683594, - 501.1501770019531 - ], - "bbox": [ - 395.5999450683594, - 498.4501647949219, - 395.5999450683594, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eq", - "origin": [ - 395.5999450683594, - 501.1501770019531 - ], - "bbox": [ - 395.5999450683594, - 494.6501770019531, - 400.199951171875, - 513.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 400.199951171875, - 501.1501770019531 - ], - "bbox": [ - 400.199951171875, - 498.4501647949219, - 404.699951171875, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ei", - "origin": [ - 404.699951171875, - 501.1501770019531 - ], - "bbox": [ - 404.699951171875, - 494.6501770019531, - 409.2999572753906, - 513.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-01\u0018-\u0018", - "origin": [ - 409.2999572753906, - 501.1501770019531 - ], - "bbox": [ - 409.2999572753906, - 498.4501647949219, - 422.89996337890625, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 422.89996337890625, - 501.1501770019531 - ], - "bbox": [ - 422.89996337890625, - 488.25018310546875, - 427.5999755859375, - 522.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.5999450683594, - 488.25018310546875, - 427.5999755859375, - 522.9501953125 - ] - } - ] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 73.7999496459961, - 497.2501525878906, - 168.99996948242188, - 524.5501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p1n", - "origin": [ - 73.7999496459961, - 512.150146484375 - ], - "bbox": [ - 73.7999496459961, - 505.650146484375, - 78.2999496459961, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.2999496459961, - 512.150146484375 - ], - "bbox": [ - 78.2999496459961, - 505.150146484375, - 82.699951171875, - 523.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c+", - "origin": [ - 82.699951171875, - 512.150146484375 - ], - "bbox": [ - 82.699951171875, - 497.2501525878906, - 90.5999526977539, - 522.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TR1F", - "origin": [ - 90.5999526977539, - 512.150146484375 - ], - "bbox": [ - 90.5999526977539, - 505.650146484375, - 100.0999526977539, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 100.0999526977539, - 512.150146484375 - ], - "bbox": [ - 100.0999526977539, - 497.2501525878906, - 103.7999496459961, - 522.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO", - "origin": [ - 103.7999496459961, - 512.150146484375 - ], - "bbox": [ - 103.7999496459961, - 505.650146484375, - 111.199951171875, - 524.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.7999496459961, - 497.2501525878906, - 111.199951171875, - 524.5501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 119.39994812011719, - 512.150146484375 - ], - "bbox": [ - 119.39994812011719, - 505.150146484375, - 119.39994812011719, - 523.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "!@", - "origin": [ - 119.39994812011719, - 512.150146484375 - ], - "bbox": [ - 119.39994812011719, - 505.650146484375, - 129.199951171875, - 524.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.39994812011719, - 505.150146484375, - 129.199951171875, - 524.5501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 139.4999542236328, - 512.150146484375 - ], - "bbox": [ - 139.4999542236328, - 505.650146484375, - 139.4999542236328, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0101\u0018", - "origin": [ - 139.4999542236328, - 512.150146484375 - ], - "bbox": [ - 139.4999542236328, - 509.45013427734375, - 153.09996032714844, - 521.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NbªALd", - "origin": [ - 153.09996032714844, - 512.150146484375 - ], - "bbox": [ - 153.09996032714844, - 505.650146484375, - 168.99996948242188, - 524.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.4999542236328, - 505.650146484375, - 168.99996948242188, - 524.5501708984375 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 178.39996337890625, - 497.2501525878906, - 395.99993896484375, - 524.5501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "HZ`\u0018tLALO", - "origin": [ - 178.39996337890625, - 512.150146484375 - ], - "bbox": [ - 178.39996337890625, - 505.650146484375, - 192.79995727539062, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "f)", - "origin": [ - 192.79995727539062, - 512.150146484375 - ], - "bbox": [ - 192.79995727539062, - 497.2501525878906, - 197.9999542236328, - 522.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gX4E1O\u0018S¢YZEG•\u0018XJEGtVXIM]HJX", - "origin": [ - 197.9999542236328, - 512.150146484375 - ], - "bbox": [ - 197.9999542236328, - 505.650146484375, - 266.49993896484375, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "s€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 266.49993896484375, - 512.150146484375 - ], - "bbox": [ - 266.49993896484375, - 497.2501525878906, - 304.09991455078125, - 522.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "w`\u0018HJRNE1CaCrMZEGF4ALO", - "origin": [ - 304.09991455078125, - 512.150146484375 - ], - "bbox": [ - 304.09991455078125, - 505.650146484375, - 356.6999206542969, - 524.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.39996337890625, - 497.2501525878906, - 356.6999206542969, - 524.5501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 364.89996337890625, - 512.150146484375 - ], - "bbox": [ - 364.89996337890625, - 505.150146484375, - 364.89996337890625, - 523.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4M] =š", - "origin": [ - 364.89996337890625, - 512.150146484375 - ], - "bbox": [ - 364.89996337890625, - 505.650146484375, - 379.0999450683594, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+=", - "origin": [ - 379.0999450683594, - 512.150146484375 - ], - "bbox": [ - 379.0999450683594, - 505.150146484375, - 384.7999572753906, - 523.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocp", - "origin": [ - 384.7999572753906, - 512.150146484375 - ], - "bbox": [ - 384.7999572753906, - 505.650146484375, - 391.49993896484375, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 391.49993896484375, - 512.150146484375 - ], - "bbox": [ - 391.49993896484375, - 505.150146484375, - 395.99993896484375, - 523.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.89996337890625, - 505.150146484375, - 395.99993896484375, - 524.5501708984375 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 73.7999496459961, - 516.0501708984375, - 90.49995422363281, - 535.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "peq", - "origin": [ - 73.7999496459961, - 523.0501708984375 - ], - "bbox": [ - 73.7999496459961, - 516.5501708984375, - 78.39994812011719, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39994812011719, - 523.0501708984375 - ], - "bbox": [ - 78.39994812011719, - 516.0501708984375, - 82.699951171875, - 534.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Nf", - "origin": [ - 82.699951171875, - 523.0501708984375 - ], - "bbox": [ - 82.699951171875, - 516.5501708984375, - 90.49995422363281, - 535.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.7999496459961, - 516.0501708984375, - 90.49995422363281, - 535.4501953125 - ] - } - ] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 101.7999496459961, - 508.1501770019531, - 522.0000610351562, - 535.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ADtLCrRGHIHBb8`T@·RZ‘", - "origin": [ - 101.7999496459961, - 523.0501708984375 - ], - "bbox": [ - 101.7999496459961, - 516.5501708984375, - 149.699951171875, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ",)", - "origin": [ - 149.699951171875, - 523.0501708984375 - ], - "bbox": [ - 149.699951171875, - 508.1501770019531, - 156.3999481201172, - 533.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/M]F-U¥E1O\u001dS", - "origin": [ - 156.3999481201172, - 523.0501708984375 - ], - "bbox": [ - 156.3999481201172, - 516.5501708984375, - 190.8999481201172, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "g+", - "origin": [ - 190.8999481201172, - 523.0501708984375 - ], - "bbox": [ - 190.8999481201172, - 508.1501770019531, - 199.09994506835938, - 533.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TRGF", - "origin": [ - 199.09994506835938, - 523.0501708984375 - ], - "bbox": [ - 199.09994506835938, - 516.5501708984375, - 208.49993896484375, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 208.49993896484375, - 523.0501708984375 - ], - "bbox": [ - 208.49993896484375, - 508.1501770019531, - 212.19993591308594, - 533.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TALO", - "origin": [ - 212.19993591308594, - 523.0501708984375 - ], - "bbox": [ - 212.19993591308594, - 516.5501708984375, - 219.69993591308594, - 535.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.7999496459961, - 508.1501770019531, - 219.69993591308594, - 535.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 227.79995727539062, - 523.0501708984375 - ], - "bbox": [ - 227.79995727539062, - 516.0501708984375, - 227.79995727539062, - 534.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u000fp", - "origin": [ - 227.79995727539062, - 523.0501708984375 - ], - "bbox": [ - 227.79995727539062, - 516.5501708984375, - 237.89996337890625, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0101+", - "origin": [ - 237.89996337890625, - 523.0501708984375 - ], - "bbox": [ - 237.89996337890625, - 520.3501586914062, - 251.49996948242188, - 532.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\8O\u0018M¯FJd1gklKNReKNMPOQHJ•\u0018K¾SaAž¿?•aXIADR1O\u0016 ºFJR1K\u0012XIC\u001dEGYPM]HJALKNM­SaALXIY]FJM]HJM]O\u0018MPXIX", - "origin": [ - 251.49996948242188, - 523.0501708984375 - ], - "bbox": [ - 251.49996948242188, - 516.5501708984375, - 484.300048828125, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "y€\u0017B<:\u0018@‡B16^8fC", - "origin": [ - 484.300048828125, - 523.0501708984375 - ], - "bbox": [ - 484.300048828125, - 508.1501770019531, - 522.0000610351562, - 533.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.79995727539062, - 508.1501770019531, - 522.0000610351562, - 535.4501953125 - ] - } - ] - }, - { - "number": 106, - "type": 0, - "bbox": [ - 100.49995422363281, - 527.5501708984375, - 169.59996032714844, - 546.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGF", - "origin": [ - 100.49995422363281, - 534.0501708984375 - ], - "bbox": [ - 100.49995422363281, - 527.5501708984375, - 104.89995574951172, - 546.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 104.89995574951172, - 534.0501708984375 - ], - "bbox": [ - 104.89995574951172, - 531.3501586914062, - 108.5999526977539, - 543.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 108.5999526977539, - 534.0501708984375 - ], - "bbox": [ - 108.5999526977539, - 527.5501708984375, - 123.49995422363281, - 546.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.49995422363281, - 527.5501708984375, - 123.49995422363281, - 546.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-+", - "origin": [ - 125.5999526977539, - 534.0501708984375 - ], - "bbox": [ - 125.5999526977539, - 531.3501586914062, - 130.09996032714844, - 543.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "To", - "origin": [ - 130.09996032714844, - 534.0501708984375 - ], - "bbox": [ - 130.09996032714844, - 527.5501708984375, - 135.09996032714844, - 546.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0", - "origin": [ - 135.09996032714844, - 534.0501708984375 - ], - "bbox": [ - 135.09996032714844, - 531.3501586914062, - 139.29995727539062, - 543.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gš", - "origin": [ - 139.29995727539062, - 534.0501708984375 - ], - "bbox": [ - 139.29995727539062, - 527.5501708984375, - 144.199951171875, - 546.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 125.5999526977539, - 527.5501708984375, - 144.199951171875, - 546.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "mem", - "origin": [ - 146.3999481201172, - 534.0501708984375 - ], - "bbox": [ - 146.3999481201172, - 527.5501708984375, - 150.9999542236328, - 546.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-\u0018", - "origin": [ - 150.9999542236328, - 534.0501708984375 - ], - "bbox": [ - 150.9999542236328, - 531.3501586914062, - 155.4999542236328, - 543.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "goPhap", - "origin": [ - 155.4999542236328, - 534.0501708984375 - ], - "bbox": [ - 155.4999542236328, - 527.5501708984375, - 169.59996032714844, - 546.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.3999481201172, - 527.5501708984375, - 169.59996032714844, - 546.4501953125 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 73.79994201660156, - 530.150146484375, - 229.29994201660156, - 566.8501586914062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 73.79994201660156, - 545.0501708984375 - ], - "bbox": [ - 73.79994201660156, - 538.5501708984375, - 73.79994201660156, - 557.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-+", - "origin": [ - 73.79994201660156, - 545.0501708984375 - ], - "bbox": [ - 73.79994201660156, - 542.3501586914062, - 78.29994201660156, - 554.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29994201660156, - 545.0501708984375 - ], - "bbox": [ - 78.29994201660156, - 538.0501708984375, - 82.69994354248047, - 556.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010@·A", - "origin": [ - 82.69994354248047, - 545.0501708984375 - ], - "bbox": [ - 82.69994354248047, - 538.5501708984375, - 97.49993896484375, - 557.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001b\u001a", - "origin": [ - 97.49993896484375, - 545.0501708984375 - ], - "bbox": [ - 97.49993896484375, - 544.8501586914062, - 101.49993896484375, - 553.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79994201660156, - 538.0501708984375, - 101.49993896484375, - 557.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ReXIA©bœo", - "origin": [ - 99.99993896484375, - 545.0501708984375 - ], - "bbox": [ - 99.99993896484375, - 538.5501708984375, - 123.19993591308594, - 557.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&\u0018-+", - "origin": [ - 123.19993591308594, - 545.0501708984375 - ], - "bbox": [ - 123.19993591308594, - 542.3501586914062, - 131.89993286132812, - 554.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.99993896484375, - 538.5501708984375, - 131.89993286132812, - 557.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 136.39993286132812, - 545.0501708984375 - ], - "bbox": [ - 136.39993286132812, - 532.150146484375, - 136.39993286132812, - 566.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "J€W?vu7SPd\u000ezr:DCEC\u0018d", - "origin": [ - 136.39993286132812, - 545.0501708984375 - ], - "bbox": [ - 136.39993286132812, - 530.150146484375, - 185.7999267578125, - 555.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 185.7999267578125, - 545.0501708984375 - ], - "bbox": [ - 185.7999267578125, - 544.8501586914062, - 191.0999298095703, - 553.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.39993286132812, - 530.150146484375, - 191.0999298095703, - 566.8501586914062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": " ", - "origin": [ - 201.49993896484375, - 545.0501708984375 - ], - "bbox": [ - 201.49993896484375, - 542.3501586914062, - 201.49993896484375, - 554.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": ",��", - "origin": [ - 201.49993896484375, - 545.0501708984375 - ], - "bbox": [ - 201.49993896484375, - 544.8501586914062, - 211.69993591308594, - 553.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&o", - "origin": [ - 211.69993591308594, - 545.0501708984375 - ], - "bbox": [ - 211.69993591308594, - 538.5501708984375, - 220.49993896484375, - 557.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&\u00181\u0018", - "origin": [ - 220.49993896484375, - 545.0501708984375 - ], - "bbox": [ - 220.49993896484375, - 542.3501586914062, - 229.29994201660156, - 554.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 201.49993896484375, - 538.5501708984375, - 229.29994201660156, - 557.4501953125 - ] - } - ] - }, - { - "number": 108, - "type": 0, - "bbox": [ - 73.79993438720703, - 541.0501708984375, - 343.7998962402344, - 577.7501831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 73.79993438720703, - 555.9501953125 - ], - "bbox": [ - 73.79993438720703, - 549.4501953125, - 73.79993438720703, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-\u0018", - "origin": [ - 73.79993438720703, - 555.9501953125 - ], - "bbox": [ - 73.79993438720703, - 553.2501831054688, - 78.29993438720703, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29993438720703, - 555.9501953125 - ], - "bbox": [ - 78.29993438720703, - 548.9501953125, - 82.69993591308594, - 567.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010@·A", - "origin": [ - 82.69993591308594, - 555.9501953125 - ], - "bbox": [ - 82.69993591308594, - 549.4501953125, - 97.49993133544922, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001b\u001a", - "origin": [ - 97.49993133544922, - 555.9501953125 - ], - "bbox": [ - 97.49993133544922, - 555.7501831054688, - 101.49993133544922, - 564.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79993438720703, - 548.9501953125, - 101.49993133544922, - 568.3502197265625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ReXIA©b�p", - "origin": [ - 99.99993896484375, - 555.9501953125 - ], - "bbox": [ - 99.99993896484375, - 549.4501953125, - 122.89993286132812, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 122.89993286132812, - 555.9501953125 - ], - "bbox": [ - 122.89993286132812, - 553.2501831054688, - 131.89993286132812, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 131.89993286132812, - 555.9501953125 - ], - "bbox": [ - 131.89993286132812, - 549.4501953125, - 136.5999298095703, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001cx,B#25|jd", - "origin": [ - 136.5999298095703, - 555.9501953125 - ], - "bbox": [ - 136.5999298095703, - 541.0501708984375, - 163.19992065429688, - 565.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "N2", - "origin": [ - 163.19992065429688, - 555.9501953125 - ], - "bbox": [ - 163.19992065429688, - 553.2501831054688, - 169.2999267578125, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad;€W?vu7SPd", - "origin": [ - 169.2999267578125, - 555.9501953125 - ], - "bbox": [ - 169.2999267578125, - 541.0501708984375, - 199.4999237060547, - 565.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")(", - "origin": [ - 199.4999237060547, - 555.9501953125 - ], - "bbox": [ - 199.4999237060547, - 553.2501831054688, - 204.89991760253906, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 204.89991760253906, - 555.9501953125 - ], - "bbox": [ - 204.89991760253906, - 555.7501831054688, - 210.19992065429688, - 564.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";pGn", - "origin": [ - 210.19992065429688, - 555.9501953125 - ], - "bbox": [ - 210.19992065429688, - 549.4501953125, - 222.99990844726562, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "10", - "origin": [ - 222.99990844726562, - 555.9501953125 - ], - "bbox": [ - 222.99990844726562, - 553.2501831054688, - 227.59991455078125, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ck’pGn/m", - "origin": [ - 227.59991455078125, - 555.9501953125 - ], - "bbox": [ - 227.59991455078125, - 549.4501953125, - 244.49990844726562, - 568.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.99993896484375, - 541.0501708984375, - 244.49990844726562, - 568.3502197265625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 252.79994201660156, - 555.9501953125 - ], - "bbox": [ - 252.79994201660156, - 543.0501708984375, - 252.79994201660156, - 577.7501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 252.79994201660156, - 555.9501953125 - ], - "bbox": [ - 252.79994201660156, - 541.0501708984375, - 286.6999206542969, - 565.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 286.6999206542969, - 555.9501953125 - ], - "bbox": [ - 286.6999206542969, - 549.4501953125, - 296.89990234375, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 296.89990234375, - 555.9501953125 - ], - "bbox": [ - 296.89990234375, - 553.2501831054688, - 300.59991455078125, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 300.59991455078125, - 555.9501953125 - ], - "bbox": [ - 300.59991455078125, - 549.4501953125, - 315.4999084472656, - 568.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.79994201660156, - 541.0501708984375, - 315.4999084472656, - 577.7501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u001dEGOQHIk™C", - "origin": [ - 317.5999450683594, - 555.9501953125 - ], - "bbox": [ - 317.5999450683594, - 549.4501953125, - 343.7998962402344, - 568.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.5999450683594, - 549.4501953125, - 343.7998962402344, - 568.3502197265625 - ] - } - ] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 348.8999328613281, - 549.2501220703125, - 354.2999267578125, - 568.150146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 348.8999328613281, - 555.7501220703125 - ], - "bbox": [ - 348.8999328613281, - 549.2501220703125, - 348.8999328613281, - 568.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ");", - "origin": [ - 348.8999328613281, - 555.7501220703125 - ], - "bbox": [ - 348.8999328613281, - 553.0501098632812, - 354.2999267578125, - 565.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.8999328613281, - 549.2501220703125, - 354.2999267578125, - 568.150146484375 - ] - } - ] - }, - { - "number": 110, - "type": 0, - "bbox": [ - 363.1999206542969, - 543.0501708984375, - 395.699951171875, - 577.7501831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 363.1999206542969, - 555.9501953125 - ], - "bbox": [ - 363.1999206542969, - 543.0501708984375, - 363.1999206542969, - 577.7501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aoZpgoZm", - "origin": [ - 363.1999206542969, - 555.9501953125 - ], - "bbox": [ - 363.1999206542969, - 549.4501953125, - 381.5999450683594, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 381.5999450683594, - 555.9501953125 - ], - "bbox": [ - 381.5999450683594, - 543.0501708984375, - 385.99993896484375, - 577.7501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ehap", - "origin": [ - 385.99993896484375, - 555.9501953125 - ], - "bbox": [ - 385.99993896484375, - 549.4501953125, - 395.699951171875, - 568.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.1999206542969, - 543.0501708984375, - 395.699951171875, - 577.7501831054688 - ] - } - ] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 73.69992065429688, - 551.9501342773438, - 272.5999450683594, - 579.2501831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i", - "origin": [ - 73.69992065429688, - 566.8501586914062 - ], - "bbox": [ - 73.69992065429688, - 560.3501586914062, - 73.69992065429688, - 579.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "10", - "origin": [ - 73.69992065429688, - 566.8501586914062 - ], - "bbox": [ - 73.69992065429688, - 564.150146484375, - 78.29991912841797, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29991912841797, - 566.8501586914062 - ], - "bbox": [ - 78.29991912841797, - 559.8501586914062, - 82.69992065429688, - 578.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NfWMPOaFJR1XIM", - "origin": [ - 82.69992065429688, - 566.8501586914062 - ], - "bbox": [ - 82.69992065429688, - 560.3501586914062, - 117.39991760253906, - 579.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e<", - "origin": [ - 117.39991760253906, - 566.8501586914062 - ], - "bbox": [ - 117.39991760253906, - 559.8501586914062, - 124.59991455078125, - 578.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "7o", - "origin": [ - 124.59991455078125, - 566.8501586914062 - ], - "bbox": [ - 124.59991455078125, - 560.3501586914062, - 134.99990844726562, - 579.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u00181\u00181+", - "origin": [ - 134.99990844726562, - 566.8501586914062 - ], - "bbox": [ - 134.99990844726562, - 564.150146484375, - 148.2999267578125, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c€W?v6EFHdƒmfB#278fSPd", - "origin": [ - 148.2999267578125, - 566.8501586914062 - ], - "bbox": [ - 148.2999267578125, - 551.9501342773438, - 201.89991760253906, - 576.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0015\r", - "origin": [ - 201.89991760253906, - 566.8501586914062 - ], - "bbox": [ - 201.89991760253906, - 566.650146484375, - 207.59991455078125, - 575.3501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Rd", - "origin": [ - 207.59991455078125, - 566.8501586914062 - ], - "bbox": [ - 207.59991455078125, - 551.9501342773438, - 214.79991149902344, - 576.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "I\u001b", - "origin": [ - 214.79991149902344, - 566.8501586914062 - ], - "bbox": [ - 214.79991149902344, - 564.150146484375, - 220.6999053955078, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "‡I5=jd", - "origin": [ - 220.6999053955078, - 566.8501586914062 - ], - "bbox": [ - 220.6999053955078, - 551.9501342773438, - 234.49990844726562, - 576.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*(", - "origin": [ - 234.49990844726562, - 566.8501586914062 - ], - "bbox": [ - 234.49990844726562, - 564.150146484375, - 239.79991149902344, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 239.79991149902344, - 566.8501586914062 - ], - "bbox": [ - 239.79991149902344, - 566.650146484375, - 245.09991455078125, - 575.3501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*8", - "origin": [ - 245.09991455078125, - 566.8501586914062 - ], - "bbox": [ - 245.09991455078125, - 564.150146484375, - 250.39991760253906, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&o", - "origin": [ - 250.39991760253906, - 566.8501586914062 - ], - "bbox": [ - 250.39991760253906, - 560.3501586914062, - 259.1999206542969, - 579.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u0018", - "origin": [ - 259.1999206542969, - 566.8501586914062 - ], - "bbox": [ - 259.1999206542969, - 564.150146484375, - 263.2999267578125, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/peq", - "origin": [ - 263.2999267578125, - 566.8501586914062 - ], - "bbox": [ - 263.2999267578125, - 560.3501586914062, - 272.5999450683594, - 579.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69992065429688, - 551.9501342773438, - 272.5999450683594, - 579.2501831054688 - ] - } - ] - }, - { - "number": 112, - "type": 0, - "bbox": [ - 73.69992065429688, - 563.0501708984375, - 302.89990234375, - 590.3502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "iTo", - "origin": [ - 73.69992065429688, - 577.9501953125 - ], - "bbox": [ - 73.69992065429688, - 571.4501953125, - 78.69992065429688, - 590.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69992065429688, - 571.4501953125, - 78.69992065429688, - 590.3502197265625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ">", - "origin": [ - 82.69992065429688, - 577.9501953125 - ], - "bbox": [ - 82.69992065429688, - 570.9501953125, - 82.69992065429688, - 589.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u000f�", - "origin": [ - 82.69992065429688, - 577.9501953125 - ], - "bbox": [ - 82.69992065429688, - 577.7501831054688, - 90.49992370605469, - 586.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BSatLM]F", - "origin": [ - 90.49992370605469, - 577.9501953125 - ], - "bbox": [ - 90.49992370605469, - 571.4501953125, - 109.09992218017578, - 590.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "s+", - "origin": [ - 109.09992218017578, - 577.9501953125 - ], - "bbox": [ - 109.09992218017578, - 563.0501708984375, - 115.99992370605469, - 587.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "»b�p", - "origin": [ - 115.99992370605469, - 577.9501953125 - ], - "bbox": [ - 115.99992370605469, - 571.4501953125, - 132.9999237060547, - 590.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 132.9999237060547, - 577.9501953125 - ], - "bbox": [ - 132.9999237060547, - 575.2501831054688, - 141.9999237060547, - 587.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ei", - "origin": [ - 141.9999237060547, - 577.9501953125 - ], - "bbox": [ - 141.9999237060547, - 571.4501953125, - 146.5999298095703, - 590.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "3\u001b", - "origin": [ - 146.5999298095703, - 577.9501953125 - ], - "bbox": [ - 146.5999298095703, - 575.2501831054688, - 154.7999267578125, - 587.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "*CE[fX>d{‚y6^S-C\u0018d;€L?v6^FYI7SPdo_I5Xwd;€L?vuNSPd", - "origin": [ - 154.7999267578125, - 577.9501953125 - ], - "bbox": [ - 154.7999267578125, - 563.0501708984375, - 274.69989013671875, - 587.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")(", - "origin": [ - 274.69989013671875, - 577.9501953125 - ], - "bbox": [ - 274.69989013671875, - 575.2501831054688, - 280.0998840332031, - 587.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0013�", - "origin": [ - 280.0998840332031, - 577.9501953125 - ], - "bbox": [ - 280.0998840332031, - 577.7501831054688, - 285.19989013671875, - 586.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014oZiem", - "origin": [ - 285.19989013671875, - 577.9501953125 - ], - "bbox": [ - 285.19989013671875, - 571.4501953125, - 302.89990234375, - 590.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69992065429688, - 563.0501708984375, - 302.89990234375, - 590.3502197265625 - ] - } - ] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 73.69992065429688, - 573.9501342773438, - 505.199951171875, - 610.650146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i/p", - "origin": [ - 73.69992065429688, - 588.8501586914062 - ], - "bbox": [ - 73.69992065429688, - 582.3501586914062, - 78.39991760253906, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39991760253906, - 588.8501586914062 - ], - "bbox": [ - 78.39991760253906, - 581.8501586914062, - 82.69992065429688, - 600.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tLtLALX", - "origin": [ - 82.69992065429688, - 588.8501586914062 - ], - "bbox": [ - 82.69992065429688, - 582.3501586914062, - 104.19992065429688, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69992065429688, - 581.8501586914062, - 104.19992065429688, - 601.2501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "$", - "origin": [ - 113.59992218017578, - 588.8501586914062 - ], - "bbox": [ - 113.59992218017578, - 586.150146484375, - 113.59992218017578, - 598.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "a`", - "origin": [ - 113.59992218017578, - 588.8501586914062 - ], - "bbox": [ - 113.59992218017578, - 582.3501586914062, - 118.69992065429688, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "-\u000b", - "origin": [ - 118.69992065429688, - 588.8501586914062 - ], - "bbox": [ - 118.69992065429688, - 588.650146484375, - 126.39991760253906, - 597.3501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“EZhQFJReK^EGHJR1X¥¶ö\\", - "origin": [ - 126.39991760253906, - 588.8501586914062 - ], - "bbox": [ - 126.39991760253906, - 582.3501586914062, - 194.19992065429688, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.59992218017578, - 582.3501586914062, - 194.19992065429688, - 601.2501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u001dS¾¶BE1OaReCrRe•atLReX @", - "origin": [ - 205.9999237060547, - 588.8501586914062 - ], - "bbox": [ - 205.9999237060547, - 582.3501586914062, - 278.7999572753906, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": ".\u0017", - "origin": [ - 278.7999572753906, - 588.8501586914062 - ], - "bbox": [ - 278.7999572753906, - 588.650146484375, - 291.2999572753906, - 597.3501586914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.9999237060547, - 582.3501586914062, - 291.2999572753906, - 601.2501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "o", - "origin": [ - 304.1999206542969, - 588.8501586914062 - ], - "bbox": [ - 304.1999206542969, - 582.3501586914062, - 304.1999206542969, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u00181\u0018", - "origin": [ - 304.1999206542969, - 588.8501586914062 - ], - "bbox": [ - 304.1999206542969, - 586.150146484375, - 312.8999328613281, - 598.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 312.8999328613281, - 588.8501586914062 - ], - "bbox": [ - 312.8999328613281, - 582.3501586914062, - 317.5999450683594, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.1999206542969, - 582.3501586914062, - 317.5999450683594, - 601.2501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "€W?vuNSGd3z{:DCEC\u0018d", - "origin": [ - 327.8999328613281, - 588.8501586914062 - ], - "bbox": [ - 327.8999328613281, - 573.9501342773438, - 371.3998718261719, - 598.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "^¼", - "origin": [ - 371.3998718261719, - 588.8501586914062 - ], - "bbox": [ - 371.3998718261719, - 582.3501586914062, - 379.29986572265625, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "/�� ", - "origin": [ - 379.29986572265625, - 588.8501586914062 - ], - "bbox": [ - 379.29986572265625, - 588.650146484375, - 396.5998840332031, - 597.3501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*(", - "origin": [ - 396.5998840332031, - 588.8501586914062 - ], - "bbox": [ - 396.5998840332031, - 586.150146484375, - 401.8998718261719, - 598.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u000bi/qZk", - "origin": [ - 401.8998718261719, - 588.8501586914062 - ], - "bbox": [ - 401.8998718261719, - 582.3501586914062, - 421.4999084472656, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.8999328613281, - 573.9501342773438, - 421.4999084472656, - 601.2501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 424.7999267578125, - 588.8501586914062 - ], - "bbox": [ - 424.7999267578125, - 575.9501342773438, - 424.7999267578125, - 610.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1+", - "origin": [ - 424.7999267578125, - 588.8501586914062 - ], - "bbox": [ - 424.7999267578125, - 586.150146484375, - 429.3999328613281, - 598.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "CV", - "origin": [ - 429.3999328613281, - 588.8501586914062 - ], - "bbox": [ - 429.3999328613281, - 575.9501342773438, - 440.0999450683594, - 610.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€\u0017B<:\u0018@‡B16^8fC", - "origin": [ - 440.0999450683594, - 588.8501586914062 - ], - "bbox": [ - 440.0999450683594, - 573.9501342773438, - 473.99993896484375, - 598.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016EGF", - "origin": [ - 473.99993896484375, - 588.8501586914062 - ], - "bbox": [ - 473.99993896484375, - 582.3501586914062, - 486.5999450683594, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 486.5999450683594, - 588.8501586914062 - ], - "bbox": [ - 486.5999450683594, - 586.150146484375, - 490.2999572753906, - 598.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADhrv", - "origin": [ - 490.2999572753906, - 588.8501586914062 - ], - "bbox": [ - 490.2999572753906, - 582.3501586914062, - 505.199951171875, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.7999267578125, - 573.9501342773438, - 505.199951171875, - 610.650146484375 - ] - } - ] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 512.39990234375, - 582.3501586914062, - 521.4998779296875, - 601.2501831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]Cak", - "origin": [ - 512.39990234375, - 588.8501586914062 - ], - "bbox": [ - 512.39990234375, - 582.3501586914062, - 521.4998779296875, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 512.39990234375, - 582.3501586914062, - 521.4998779296875, - 601.2501831054688 - ] - } - ] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 103.99989318847656, - 593.0501708984375, - 109.39989471435547, - 611.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 103.99989318847656, - 599.5501708984375 - ], - "bbox": [ - 103.99989318847656, - 593.0501708984375, - 103.99989318847656, - 611.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ");", - "origin": [ - 103.99989318847656, - 599.5501708984375 - ], - "bbox": [ - 103.99989318847656, - 596.8501586914062, - 109.39989471435547, - 608.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.99989318847656, - 593.0501708984375, - 109.39989471435547, - 611.9501953125 - ] - } - ] - }, - { - "number": 118, - "type": 0, - "bbox": [ - 113.79989624023438, - 593.2501220703125, - 150.79989624023438, - 612.150146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0018", - "origin": [ - 113.79989624023438, - 599.7501220703125 - ], - "bbox": [ - 113.79989624023438, - 597.0501098632812, - 113.79989624023438, - 609.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 113.79989624023438, - 599.7501220703125 - ], - "bbox": [ - 113.79989624023438, - 593.2501220703125, - 118.49989318847656, - 612.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0", - "origin": [ - 118.49989318847656, - 599.7501220703125 - ], - "bbox": [ - 118.49989318847656, - 597.0501098632812, - 122.89989471435547, - 609.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/qgo", - "origin": [ - 122.89989471435547, - 599.7501220703125 - ], - "bbox": [ - 122.89989471435547, - 593.2501220703125, - 132.49989318847656, - 612.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u00190", - "origin": [ - 132.49989318847656, - 599.7501220703125 - ], - "bbox": [ - 132.49989318847656, - 597.0501098632812, - 136.5998992919922, - 609.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eiGh\u0018p", - "origin": [ - 136.5998992919922, - 599.7501220703125 - ], - "bbox": [ - 136.5998992919922, - 593.2501220703125, - 150.79989624023438, - 612.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.79989624023438, - 593.2501220703125, - 150.79989624023438, - 612.150146484375 - ] - } - ] - }, - { - "number": 119, - "type": 0, - "bbox": [ - 73.69989776611328, - 595.7501220703125, - 488.5999450683594, - 632.4501342773438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "iei", - "origin": [ - 73.69989776611328, - 610.650146484375 - ], - "bbox": [ - 73.69989776611328, - 604.150146484375, - 78.29989624023438, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29989624023438, - 610.650146484375 - ], - "bbox": [ - 78.29989624023438, - 603.650146484375, - 82.69989776611328, - 622.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "'.", - "origin": [ - 82.69989776611328, - 610.650146484375 - ], - "bbox": [ - 82.69989776611328, - 607.9501342773438, - 90.59989929199219, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "·E1K\u001b£aALO\u0018A", - "origin": [ - 90.59989929199219, - 610.650146484375 - ], - "bbox": [ - 90.59989929199219, - 604.150146484375, - 122.59989166259766, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011<", - "origin": [ - 122.59989166259766, - 610.650146484375 - ], - "bbox": [ - 122.59989166259766, - 603.650146484375, - 128.0998992919922, - 622.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½`afWRGFIHJR", - "origin": [ - 128.0998992919922, - 610.650146484375 - ], - "bbox": [ - 128.0998992919922, - 604.150146484375, - 158.19989013671875, - 623.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69989776611328, - 603.650146484375, - 158.19989013671875, - 623.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 165.99990844726562, - 610.650146484375 - ], - "bbox": [ - 165.99990844726562, - 603.650146484375, - 165.99990844726562, - 622.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0018�", - "origin": [ - 165.99990844726562, - 610.650146484375 - ], - "bbox": [ - 165.99990844726562, - 610.4501342773438, - 175.99990844726562, - 619.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "µE1O\u001dS¢f+•atLtDALO", - "origin": [ - 175.99990844726562, - 610.650146484375 - ], - "bbox": [ - 175.99990844726562, - 604.150146484375, - 222.69992065429688, - 623.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.99990844726562, - 603.650146484375, - 222.69992065429688, - 623.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "$", - "origin": [ - 231.09991455078125, - 610.650146484375 - ], - "bbox": [ - 231.09991455078125, - 607.9501342773438, - 231.09991455078125, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "^p", - "origin": [ - 231.09991455078125, - 610.650146484375 - ], - "bbox": [ - 231.09991455078125, - 604.150146484375, - 238.99990844726562, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010-+", - "origin": [ - 238.99990844726562, - 610.650146484375 - ], - "bbox": [ - 238.99990844726562, - 607.9501342773438, - 252.49990844726562, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "/€W?vuNSPd\u000ez{:DCEC\u0018d", - "origin": [ - 252.49990844726562, - 610.650146484375 - ], - "bbox": [ - 252.49990844726562, - 595.7501220703125, - 301.79986572265625, - 620.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "0�", - "origin": [ - 301.79986572265625, - 610.650146484375 - ], - "bbox": [ - 301.79986572265625, - 610.4501342773438, - 307.29986572265625, - 619.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 231.09991455078125, - 595.7501220703125, - 307.29986572265625, - 623.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "()\"", - "origin": [ - 317.2999267578125, - 610.650146484375 - ], - "bbox": [ - 317.2999267578125, - 607.9501342773438, - 322.6999206542969, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 322.6999206542969, - 610.650146484375 - ], - "bbox": [ - 322.6999206542969, - 610.4501342773438, - 327.8999328613281, - 619.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019oZpgoZickJocpgo", - "origin": [ - 327.8999328613281, - 610.650146484375 - ], - "bbox": [ - 327.8999328613281, - 604.150146484375, - 367.0999450683594, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019+", - "origin": [ - 367.0999450683594, - 610.650146484375 - ], - "bbox": [ - 367.0999450683594, - 607.9501342773438, - 371.199951171875, - 620.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.2999267578125, - 604.150146484375, - 371.199951171875, - 623.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 379.7999267578125, - 610.650146484375 - ], - "bbox": [ - 379.7999267578125, - 597.7501220703125, - 379.7999267578125, - 632.4501342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 379.7999267578125, - 610.650146484375 - ], - "bbox": [ - 379.7999267578125, - 595.7501220703125, - 413.5999450683594, - 620.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WEcF", - "origin": [ - 413.5999450683594, - 610.650146484375 - ], - "bbox": [ - 413.5999450683594, - 604.150146484375, - 423.7999267578125, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 423.7999267578125, - 610.650146484375 - ], - "bbox": [ - 423.7999267578125, - 607.9501342773438, - 427.49993896484375, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 427.49993896484375, - 610.650146484375 - ], - "bbox": [ - 427.49993896484375, - 604.150146484375, - 442.3999328613281, - 623.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 379.7999267578125, - 595.7501220703125, - 442.3999328613281, - 632.4501342773438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 444.49993896484375, - 610.650146484375 - ], - "bbox": [ - 444.49993896484375, - 607.9501342773438, - 444.49993896484375, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/q", - "origin": [ - 444.49993896484375, - 610.650146484375 - ], - "bbox": [ - 444.49993896484375, - 604.150146484375, - 449.199951171875, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-+", - "origin": [ - 449.199951171875, - 610.650146484375 - ], - "bbox": [ - 449.199951171875, - 607.9501342773438, - 458.199951171875, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Tš", - "origin": [ - 458.199951171875, - 610.650146484375 - ], - "bbox": [ - 458.199951171875, - 604.150146484375, - 463.199951171875, - 623.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.49993896484375, - 604.150146484375, - 463.199951171875, - 623.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 465.3999328613281, - 610.650146484375 - ], - "bbox": [ - 465.3999328613281, - 604.150146484375, - 465.3999328613281, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-\u0018", - "origin": [ - 465.3999328613281, - 610.650146484375 - ], - "bbox": [ - 465.3999328613281, - 607.9501342773438, - 469.8999328613281, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1i/mch\u0018p", - "origin": [ - 469.8999328613281, - 610.650146484375 - ], - "bbox": [ - 469.8999328613281, - 604.150146484375, - 488.5999450683594, - 623.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 465.3999328613281, - 604.150146484375, - 488.5999450683594, - 623.0501708984375 - ] - } - ] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 78.199951171875, - 608.85009765625, - 179.49996948242188, - 643.5501098632812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 78.199951171875, - 621.7501220703125 - ], - "bbox": [ - 78.199951171875, - 608.85009765625, - 78.199951171875, - 643.5501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 78.199951171875, - 621.7501220703125 - ], - "bbox": [ - 78.199951171875, - 614.7501220703125, - 82.699951171875, - 633.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010ÀB•N¼yk™b³p", - "origin": [ - 82.699951171875, - 621.7501220703125 - ], - "bbox": [ - 82.699951171875, - 615.2501220703125, - 123.39995574951172, - 634.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01\u0018", - "origin": [ - 123.39995574951172, - 621.7501220703125 - ], - "bbox": [ - 123.39995574951172, - 619.0501098632812, - 136.99996948242188, - 631.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½\\+KNM¯FJdeMPOQH", - "origin": [ - 136.99996948242188, - 621.7501220703125 - ], - "bbox": [ - 136.99996948242188, - 615.2501220703125, - 179.49996948242188, - 634.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.199951171875, - 608.85009765625, - 179.49996948242188, - 643.5501098632812 - ] - } - ] - }, - { - "number": 122, - "type": 0, - "bbox": [ - 187.89996337890625, - 615.2501220703125, - 280.89996337890625, - 634.150146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u0018E1OQHJ•\u0018K\u000fdGFsEZhTAžH™ªvWK^E1Y]FJR", - "origin": [ - 187.89996337890625, - 621.7501220703125 - ], - "bbox": [ - 187.89996337890625, - 615.2501220703125, - 280.89996337890625, - 634.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.89996337890625, - 615.2501220703125, - 280.89996337890625, - 634.150146484375 - ] - } - ] - }, - { - "number": 124, - "type": 0, - "bbox": [ - 289.9999694824219, - 606.85009765625, - 520.0, - 634.150146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNALY]FJR­X’HIFJ•\u0018Y]HJ•TFJMPX+R1 ªXIC\u001dEGYPM]HJALKNM", - "origin": [ - 289.9999694824219, - 621.7501220703125 - ], - "bbox": [ - 289.9999694824219, - 615.2501220703125, - 403.5000305175781, - 634.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "n€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 403.5000305175781, - 621.7501220703125 - ], - "bbox": [ - 403.5000305175781, - 606.85009765625, - 441.2000427246094, - 631.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "?EGF", - "origin": [ - 441.2000427246094, - 621.7501220703125 - ], - "bbox": [ - 441.2000427246094, - 615.2501220703125, - 451.10003662109375, - 634.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 451.10003662109375, - 621.7501220703125 - ], - "bbox": [ - 451.10003662109375, - 619.0501098632812, - 454.800048828125, - 631.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 454.800048828125, - 621.7501220703125 - ], - "bbox": [ - 454.800048828125, - 615.2501220703125, - 469.7000427246094, - 634.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.9999694824219, - 606.85009765625, - 469.7000427246094, - 634.150146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-\u001810", - "origin": [ - 471.79998779296875, - 621.7501220703125 - ], - "bbox": [ - 471.79998779296875, - 619.0501098632812, - 480.8999938964844, - 631.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eigš", - "origin": [ - 480.8999938964844, - 621.7501220703125 - ], - "bbox": [ - 480.8999938964844, - 615.2501220703125, - 490.3999938964844, - 634.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 471.79998779296875, - 615.2501220703125, - 490.3999938964844, - 634.150146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "01+", - "origin": [ - 492.5, - 621.7501220703125 - ], - "bbox": [ - 492.5, - 619.0501098632812, - 497.1000061035156, - 631.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/q", - "origin": [ - 497.1000061035156, - 621.7501220703125 - ], - "bbox": [ - 497.1000061035156, - 615.2501220703125, - 501.8000183105469, - 634.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",+", - "origin": [ - 501.8000183105469, - 621.7501220703125 - ], - "bbox": [ - 501.8000183105469, - 619.0501098632812, - 506.20001220703125, - 631.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "T`aHJR", - "origin": [ - 506.20001220703125, - 621.7501220703125 - ], - "bbox": [ - 506.20001220703125, - 615.2501220703125, - 520.0, - 634.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.5, - 615.2501220703125, - 520.0, - 634.150146484375 - ] - } - ] - }, - { - "number": 125, - "type": 0, - "bbox": [ - 100.5, - 625.650146484375, - 172.5, - 645.0501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1CaCrMZEGF4ALO", - "origin": [ - 100.5, - 632.650146484375 - ], - "bbox": [ - 100.5, - 626.150146484375, - 133.39999389648438, - 645.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.5, - 626.150146484375, - 133.39999389648438, - 645.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 141.60000610351562, - 632.650146484375 - ], - "bbox": [ - 141.60000610351562, - 625.650146484375, - 141.60000610351562, - 644.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4M] ™š", - "origin": [ - 141.60000610351562, - 632.650146484375 - ], - "bbox": [ - 141.60000610351562, - 626.150146484375, - 155.70001220703125, - 645.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.60000610351562, - 625.650146484375, - 155.70001220703125, - 645.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 161.5, - 632.650146484375 - ], - "bbox": [ - 161.5, - 625.650146484375, - 161.5, - 644.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocp", - "origin": [ - 161.5, - 632.650146484375 - ], - "bbox": [ - 161.5, - 626.150146484375, - 168.1999969482422, - 645.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 168.1999969482422, - 632.650146484375 - ], - "bbox": [ - 168.1999969482422, - 625.650146484375, - 172.5, - 644.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.5, - 625.650146484375, - 172.5, - 645.0501708984375 - ] - } - ] - }, - { - "number": 126, - "type": 0, - "bbox": [ - 73.69999694824219, - 628.650146484375, - 295.3999938964844, - 655.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i/m", - "origin": [ - 73.69999694824219, - 643.5501708984375 - ], - "bbox": [ - 73.69999694824219, - 637.0501708984375, - 78.39999389648438, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39999389648438, - 643.5501708984375 - ], - "bbox": [ - 78.39999389648438, - 636.5501708984375, - 82.69999694824219, - 654.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Nb©ALO\u001dST£\u0018tDEeS", - "origin": [ - 82.69999694824219, - 643.5501708984375 - ], - "bbox": [ - 82.69999694824219, - 637.0501708984375, - 121.39999389648438, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "3.", - "origin": [ - 121.39999389648438, - 643.5501708984375 - ], - "bbox": [ - 121.39999389648438, - 640.8501586914062, - 129.59999084472656, - 652.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u000bo", - "origin": [ - 129.59999084472656, - 643.5501708984375 - ], - "bbox": [ - 129.59999084472656, - 637.0501708984375, - 140.29998779296875, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u0018", - "origin": [ - 140.29998779296875, - 643.5501708984375 - ], - "bbox": [ - 140.29998779296875, - 640.8501586914062, - 144.39999389648438, - 652.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/qGn", - "origin": [ - 144.39999389648438, - 643.5501708984375 - ], - "bbox": [ - 144.39999389648438, - 637.0501708984375, - 153.49998474121094, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "@6", - "origin": [ - 153.49998474121094, - 643.5501708984375 - ], - "bbox": [ - 153.49998474121094, - 640.8501586914062, - 162.29998779296875, - 652.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI70\u00120q[A8d\u000e_`27C9?fd;€W?vu7SPd", - "origin": [ - 162.29998779296875, - 643.5501708984375 - ], - "bbox": [ - 162.29998779296875, - 628.650146484375, - 250.49998474121094, - 653.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�0\u0019", - "origin": [ - 250.49998474121094, - 643.5501708984375 - ], - "bbox": [ - 250.49998474121094, - 643.3501586914062, - 261.1999816894531, - 652.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019o1o", - "origin": [ - 261.1999816894531, - 643.5501708984375 - ], - "bbox": [ - 261.1999816894531, - 637.0501708984375, - 274.3999938964844, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&\u0018", - "origin": [ - 274.3999938964844, - 643.5501708984375 - ], - "bbox": [ - 274.3999938964844, - 640.8501586914062, - 278.6000061035156, - 652.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "cksoPi", - "origin": [ - 278.6000061035156, - 643.5501708984375 - ], - "bbox": [ - 278.6000061035156, - 637.0501708984375, - 290.79998779296875, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "10", - "origin": [ - 290.79998779296875, - 643.5501708984375 - ], - "bbox": [ - 290.79998779296875, - 640.8501586914062, - 295.3999938964844, - 652.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69999694824219, - 628.650146484375, - 295.3999938964844, - 655.9501953125 - ] - } - ] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 73.69999694824219, - 639.7501220703125, - 236.59999084472656, - 667.0501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ien", - "origin": [ - 73.69999694824219, - 654.650146484375 - ], - "bbox": [ - 73.69999694824219, - 648.150146484375, - 78.29999542236328, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29999542236328, - 654.650146484375 - ], - "bbox": [ - 78.29999542236328, - 647.650146484375, - 82.69999694824219, - 666.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "'.", - "origin": [ - 82.69999694824219, - 654.650146484375 - ], - "bbox": [ - 82.69999694824219, - 651.9501342773438, - 90.5999984741211, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BR1FJALO\u0018A", - "origin": [ - 90.5999984741211, - 654.650146484375 - ], - "bbox": [ - 90.5999984741211, - 648.150146484375, - 113.49999237060547, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u000e\u0017", - "origin": [ - 113.49999237060547, - 654.650146484375 - ], - "bbox": [ - 113.49999237060547, - 654.4501342773438, - 119.09999084472656, - 663.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"`", - "origin": [ - 119.09999084472656, - 654.650146484375 - ], - "bbox": [ - 119.09999084472656, - 648.150146484375, - 126.59999084472656, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "#\u0015", - "origin": [ - 126.59999084472656, - 654.650146484375 - ], - "bbox": [ - 126.59999084472656, - 651.9501342773438, - 131.6999969482422, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡ReXIXJE", - "origin": [ - 131.6999969482422, - 654.650146484375 - ], - "bbox": [ - 131.6999969482422, - 648.150146484375, - 150.8000030517578, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "N)", - "origin": [ - 150.8000030517578, - 654.650146484375 - ], - "bbox": [ - 150.8000030517578, - 639.7501220703125, - 155.1999969482422, - 664.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/RZ‘¬X", - "origin": [ - 155.1999969482422, - 654.650146484375 - ], - "bbox": [ - 155.1999969482422, - 648.150146484375, - 170.79998779296875, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "<)", - "origin": [ - 170.79998779296875, - 654.650146484375 - ], - "bbox": [ - 170.79998779296875, - 639.7501220703125, - 174.39999389648438, - 664.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TA", - "origin": [ - 174.39999389648438, - 654.650146484375 - ], - "bbox": [ - 174.39999389648438, - 648.150146484375, - 179.39999389648438, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001f�", - "origin": [ - 179.39999389648438, - 654.650146484375 - ], - "bbox": [ - 179.39999389648438, - 654.4501342773438, - 185.1999969482422, - 663.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69999694824219, - 639.7501220703125, - 185.1999969482422, - 667.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u001dS", - "origin": [ - 195.1999969482422, - 654.650146484375 - ], - "bbox": [ - 195.1999969482422, - 648.150146484375, - 204.89999389648438, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Z+", - "origin": [ - 204.89999389648438, - 654.650146484375 - ], - "bbox": [ - 204.89999389648438, - 639.7501220703125, - 213.1999969482422, - 664.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "g•\u001dSaEGFJX", - "origin": [ - 213.1999969482422, - 654.650146484375 - ], - "bbox": [ - 213.1999969482422, - 648.150146484375, - 236.59999084472656, - 667.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.1999969482422, - 639.7501220703125, - 236.59999084472656, - 667.0501708984375 - ] - } - ] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 245.5, - 639.7501220703125, - 411.60003662109375, - 667.0501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO“\\\\u001f«", - "origin": [ - 245.5, - 654.650146484375 - ], - "bbox": [ - 245.5, - 648.150146484375, - 267.5999755859375, - 667.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.5, - 648.150146484375, - 267.5999755859375, - 667.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "o", - "origin": [ - 288.0, - 654.650146484375 - ], - "bbox": [ - 288.0, - 648.150146484375, - 288.0, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u0018", - "origin": [ - 288.0, - 654.650146484375 - ], - "bbox": [ - 288.0, - 651.9501342773438, - 292.1000061035156, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/q1n", - "origin": [ - 292.1000061035156, - 654.650146484375 - ], - "bbox": [ - 292.1000061035156, - 648.150146484375, - 301.3000183105469, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\r2", - "origin": [ - 301.3000183105469, - 654.650146484375 - ], - "bbox": [ - 301.3000183105469, - 651.9501342773438, - 309.6000061035156, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad\u000e_`2NC9?fdo€W?vuNSPd", - "origin": [ - 309.6000061035156, - 654.650146484375 - ], - "bbox": [ - 309.6000061035156, - 639.7501220703125, - 366.6000061035156, - 664.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "P #\"3+", - "origin": [ - 366.6000061035156, - 654.650146484375 - ], - "bbox": [ - 366.6000061035156, - 651.9501342773438, - 385.60003662109375, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/pQo]k", - "origin": [ - 385.60003662109375, - 654.650146484375 - ], - "bbox": [ - 385.60003662109375, - 648.150146484375, - 399.10003662109375, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "A+", - "origin": [ - 399.10003662109375, - 654.650146484375 - ], - "bbox": [ - 399.10003662109375, - 651.9501342773438, - 402.4000244140625, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p1m", - "origin": [ - 402.4000244140625, - 654.650146484375 - ], - "bbox": [ - 402.4000244140625, - 648.150146484375, - 411.60003662109375, - 667.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.0, - 639.7501220703125, - 411.60003662109375, - 667.0501708984375 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 308.80580177276386, - 655.1863247863248, - 317.450443190975, - 663.8324786324786 - ], - "image_path": "equations_inline/9_308_655_317_663.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 71.9962158203125, - 595.5, - 800.5619506835938 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 78.4000015258789, - 102.7500228881836, - 458.8000183105469, - 139.4500274658203 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "m", - "origin": [ - 78.4000015258789, - 117.6500244140625 - ], - "bbox": [ - 78.4000015258789, - 111.1500244140625, - 78.4000015258789, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.4000015258789, - 117.6500244140625 - ], - "bbox": [ - 78.4000015258789, - 110.6500244140625, - 82.70000457763672, - 129.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016¨", - "origin": [ - 82.70000457763672, - 117.6500244140625 - ], - "bbox": [ - 82.70000457763672, - 111.1500244140625, - 90.90000915527344, - 130.05001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.4000015258789, - 110.6500244140625, - 90.90000915527344, - 130.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "H\u0018ÀBRQRG ºH", - "origin": [ - 92.9000015258789, - 117.6500244140625 - ], - "bbox": [ - 92.9000015258789, - 111.1500244140625, - 117.10000610351562, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/.", - "origin": [ - 117.10000610351562, - 117.6500244140625 - ], - "bbox": [ - 117.10000610351562, - 114.95002746582031, - 124.10000610351562, - 127.0500259399414 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.9000015258789, - 111.1500244140625, - 124.10000610351562, - 130.05001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 134.39999389648438, - 117.6500244140625 - ], - "bbox": [ - 134.39999389648438, - 111.1500244140625, - 134.39999389648438, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010", - "origin": [ - 134.39999389648438, - 117.6500244140625 - ], - "bbox": [ - 134.39999389648438, - 114.95002746582031, - 143.5, - 127.0500259399414 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1i", - "origin": [ - 143.5, - 117.6500244140625 - ], - "bbox": [ - 143.5, - 111.1500244140625, - 148.0, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "J.18fC\u0018d", - "origin": [ - 148.0, - 117.6500244140625 - ], - "bbox": [ - 148.0, - 102.7500228881836, - 168.3000030517578, - 127.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "I2", - "origin": [ - 168.3000030517578, - 117.6500244140625 - ], - "bbox": [ - 168.3000030517578, - 114.95002746582031, - 174.1999969482422, - 127.0500259399414 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Adƒmo?f:Iwd", - "origin": [ - 284.0, - 117.6500244140625 - ], - "bbox": [ - 284.0, - 102.7500228881836, - 299.6000061035156, - 127.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "©o", - "origin": [ - 299.6000061035156, - 117.6500244140625 - ], - "bbox": [ - 299.6000061035156, - 111.1500244140625, - 305.3000183105469, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u00181\u0018-\u0018@6", - "origin": [ - 305.3000183105469, - 117.6500244140625 - ], - "bbox": [ - 305.3000183105469, - 114.95002746582031, - 327.3000183105469, - 127.0500259399414 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "cFY27S-SGd", - "origin": [ - 327.3000183105469, - 117.6500244140625 - ], - "bbox": [ - 327.3000183105469, - 102.7500228881836, - 348.2000427246094, - 127.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 284.0, - 102.7500228881836, - 348.2000427246094, - 139.4500274658203 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ">", - "origin": [ - 354.6000061035156, - 117.6500244140625 - ], - "bbox": [ - 354.6000061035156, - 114.95002746582031, - 354.6000061035156, - 127.0500259399414 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ[*278*C\u0018d", - "origin": [ - 354.6000061035156, - 117.6500244140625 - ], - "bbox": [ - 354.6000061035156, - 102.7500228881836, - 379.1000061035156, - 127.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 379.1000061035156, - 117.6500244140625 - ], - "bbox": [ - 379.1000061035156, - 117.45002746582031, - 385.70001220703125, - 126.1500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "LB<27M7d", - "origin": [ - 385.70001220703125, - 117.6500244140625 - ], - "bbox": [ - 385.70001220703125, - 102.7500228881836, - 404.70001220703125, - 127.6500244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "P \u001f8", - "origin": [ - 404.70001220703125, - 117.6500244140625 - ], - "bbox": [ - 404.70001220703125, - 114.95002746582031, - 415.4000244140625, - 127.0500259399414 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";iep1neick™i/peq", - "origin": [ - 415.4000244140625, - 117.6500244140625 - ], - "bbox": [ - 415.4000244140625, - 111.1500244140625, - 454.4000244140625, - 130.05001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",\u0018", - "origin": [ - 454.4000244140625, - 117.6500244140625 - ], - "bbox": [ - 454.4000244140625, - 114.95002746582031, - 458.8000183105469, - 127.0500259399414 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.6000061035156, - 102.7500228881836, - 458.8000183105469, - 130.05001831054688 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 78.29998779296875, - 121.550048828125, - 117.49999237060547, - 140.95004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "n", - "origin": [ - 78.29998779296875, - 128.550048828125 - ], - "bbox": [ - 78.29998779296875, - 122.050048828125, - 78.29998779296875, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29998779296875, - 128.550048828125 - ], - "bbox": [ - 78.29998779296875, - 121.550048828125, - 82.69998931884766, - 139.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tL§PM­À-k", - "origin": [ - 82.69998931884766, - 128.550048828125 - ], - "bbox": [ - 82.69998931884766, - 122.050048828125, - 117.49999237060547, - 140.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.29998779296875, - 121.550048828125, - 117.49999237060547, - 140.95004272460938 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 130.59999084472656, - 113.6500473022461, - 366.1000061035156, - 150.3500518798828 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 130.59999084472656, - 128.550048828125 - ], - "bbox": [ - 130.59999084472656, - 122.050048828125, - 130.59999084472656, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 130.59999084472656, - 128.550048828125 - ], - "bbox": [ - 130.59999084472656, - 125.85005187988281, - 139.59999084472656, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "en", - "origin": [ - 139.59999084472656, - 128.550048828125 - ], - "bbox": [ - 139.59999084472656, - 122.050048828125, - 144.1999969482422, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\r2", - "origin": [ - 144.1999969482422, - 128.550048828125 - ], - "bbox": [ - 144.1999969482422, - 125.85005187988281, - 152.5, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad\u000e€L?wu7SPd", - "origin": [ - 152.5, - 128.550048828125 - ], - "bbox": [ - 152.5, - 113.6500473022461, - 182.8000030517578, - 138.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "54", - "origin": [ - 182.8000030517578, - 128.550048828125 - ], - "bbox": [ - 182.8000030517578, - 125.85005187988281, - 185.6999969482422, - 137.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 130.59999084472656, - 113.6500473022461, - 185.6999969482422, - 140.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "6", - "origin": [ - 193.29998779296875, - 128.550048828125 - ], - "bbox": [ - 193.29998779296875, - 125.85005187988281, - 193.29998779296875, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI78Gh5d", - "origin": [ - 193.29998779296875, - 128.550048828125 - ], - "bbox": [ - 193.29998779296875, - 113.6500473022461, - 212.29998779296875, - 138.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�\u001b", - "origin": [ - 212.29998779296875, - 128.550048828125 - ], - "bbox": [ - 212.29998779296875, - 125.85005187988281, - 218.09999084472656, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ";:DBGd", - "origin": [ - 218.09999084472656, - 128.550048828125 - ], - "bbox": [ - 218.09999084472656, - 113.6500473022461, - 231.59999084472656, - 138.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")(*(", - "origin": [ - 231.59999084472656, - 128.550048828125 - ], - "bbox": [ - 231.59999084472656, - 125.85005187988281, - 242.29998779296875, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";i", - "origin": [ - 242.29998779296875, - 128.550048828125 - ], - "bbox": [ - 242.29998779296875, - 122.050048828125, - 250.69998168945312, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1\u00181\u0018", - "origin": [ - 250.69998168945312, - 128.550048828125 - ], - "bbox": [ - 250.69998168945312, - 125.85005187988281, - 259.8999938964844, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ck", - "origin": [ - 259.8999938964844, - 128.550048828125 - ], - "bbox": [ - 259.8999938964844, - 122.050048828125, - 264.1999816894531, - 140.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.29998779296875, - 113.6500473022461, - 264.1999816894531, - 140.95004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 267.3999938964844, - 128.550048828125 - ], - "bbox": [ - 267.3999938964844, - 115.6500473022461, - 267.3999938964844, - 150.3500518798828 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "<0", - "origin": [ - 267.3999938964844, - 128.550048828125 - ], - "bbox": [ - 267.3999938964844, - 125.85005187988281, - 272.1000061035156, - 137.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.3999938964844, - 115.6500473022461, - 272.1000061035156, - 150.3500518798828 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "YOV", - "origin": [ - 276.6000061035156, - 128.550048828125 - ], - "bbox": [ - 276.6000061035156, - 115.6500473022461, - 285.1000061035156, - 150.3500518798828 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@‡B16^8*C", - "origin": [ - 285.1000061035156, - 128.550048828125 - ], - "bbox": [ - 285.1000061035156, - 113.6500473022461, - 318.8999938964844, - 138.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "uEGF", - "origin": [ - 318.8999938964844, - 128.550048828125 - ], - "bbox": [ - 318.8999938964844, - 122.050048828125, - 329.29998779296875, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 329.29998779296875, - 128.550048828125 - ], - "bbox": [ - 329.29998779296875, - 125.85005187988281, - 333.0, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 333.0, - 128.550048828125 - ], - "bbox": [ - 333.0, - 122.050048828125, - 347.8999938964844, - 140.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.6000061035156, - 113.6500473022461, - 347.8999938964844, - 150.3500518798828 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "dGFIk=”QY", - "origin": [ - 349.9000244140625, - 128.550048828125 - ], - "bbox": [ - 349.9000244140625, - 122.050048828125, - 366.1000061035156, - 140.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.9000244140625, - 122.050048828125, - 366.1000061035156, - 140.95004272460938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 374.8000183105469, - 113.6500473022461, - 519.5, - 150.3500518798828 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 374.8000183105469, - 128.550048828125 - ], - "bbox": [ - 374.8000183105469, - 125.85005187988281, - 374.8000183105469, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/mQocp", - "origin": [ - 374.8000183105469, - 128.550048828125 - ], - "bbox": [ - 374.8000183105469, - 122.050048828125, - 388.6000061035156, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 388.6000061035156, - 128.550048828125 - ], - "bbox": [ - 388.6000061035156, - 125.85005187988281, - 393.1000061035156, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "goZn", - "origin": [ - 393.1000061035156, - 128.550048828125 - ], - "bbox": [ - 393.1000061035156, - 122.050048828125, - 402.20001220703125, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "XW", - "origin": [ - 402.20001220703125, - 128.550048828125 - ], - "bbox": [ - 402.20001220703125, - 115.6500473022461, - 406.8000183105469, - 150.3500518798828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 374.8000183105469, - 115.6500473022461, - 406.8000183105469, - 150.3500518798828 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "[", - "origin": [ - 410.70001220703125, - 128.550048828125 - ], - "bbox": [ - 410.70001220703125, - 115.6500473022461, - 410.70001220703125, - 150.3500518798828 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "LXbIwd", - "origin": [ - 410.70001220703125, - 128.550048828125 - ], - "bbox": [ - 410.70001220703125, - 113.6500473022461, - 426.5, - 138.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rp", - "origin": [ - 426.5, - 128.550048828125 - ], - "bbox": [ - 426.5, - 122.050048828125, - 431.8999938964844, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 431.8999938964844, - 128.550048828125 - ], - "bbox": [ - 431.8999938964844, - 125.85005187988281, - 440.8999938964844, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 440.8999938964844, - 128.550048828125 - ], - "bbox": [ - 440.8999938964844, - 122.050048828125, - 445.6000061035156, - 140.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Jx,B<2G|Nd", - "origin": [ - 445.6000061035156, - 128.550048828125 - ], - "bbox": [ - 445.6000061035156, - 113.6500473022461, - 472.4000244140625, - 138.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 410.70001220703125, - 113.6500473022461, - 472.4000244140625, - 150.3500518798828 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "2", - "origin": [ - 478.4000244140625, - 128.550048828125 - ], - "bbox": [ - 478.4000244140625, - 125.85005187988281, - 478.4000244140625, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad\u000e€L?vuNSPd", - "origin": [ - 478.4000244140625, - 128.550048828125 - ], - "bbox": [ - 478.4000244140625, - 113.6500473022461, - 508.70001220703125, - 138.550048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.4000244140625, - 113.6500473022461, - 508.70001220703125, - 138.550048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "(", - "origin": [ - 514.2000122070312, - 128.550048828125 - ], - "bbox": [ - 514.2000122070312, - 125.85005187988281, - 514.2000122070312, - 137.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 514.2000122070312, - 128.550048828125 - ], - "bbox": [ - 514.2000122070312, - 128.3500518798828, - 519.5, - 137.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.2000122070312, - 125.85005187988281, - 519.5, - 137.95004272460938 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 105.0, - 124.6500473022461, - 275.3000183105469, - 161.3500518798828 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 105.0, - 139.550048828125 - ], - "bbox": [ - 105.0, - 126.6500473022461, - 105.0, - 161.3500518798828 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eiGk™i/m", - "origin": [ - 105.0, - 139.550048828125 - ], - "bbox": [ - 105.0, - 133.050048828125, - 122.0, - 151.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0", - "origin": [ - 122.0, - 139.550048828125 - ], - "bbox": [ - 122.0, - 136.8500518798828, - 126.4000015258789, - 148.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0016[", - "origin": [ - 126.4000015258789, - 139.550048828125 - ], - "bbox": [ - 126.4000015258789, - 126.6500473022461, - 131.40000915527344, - 161.3500518798828 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "rX>Iwd", - "origin": [ - 131.40000915527344, - 139.550048828125 - ], - "bbox": [ - 131.40000915527344, - 124.6500473022461, - 146.8000030517578, - 149.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rp", - "origin": [ - 146.8000030517578, - 139.550048828125 - ], - "bbox": [ - 146.8000030517578, - 133.050048828125, - 152.1999969482422, - 151.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 152.1999969482422, - 139.550048828125 - ], - "bbox": [ - 152.1999969482422, - 136.8500518798828, - 161.1999969482422, - 148.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ei", - "origin": [ - 161.1999969482422, - 139.550048828125 - ], - "bbox": [ - 161.1999969482422, - 133.050048828125, - 165.8000030517578, - 151.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c€W?vuNSGd\u000ezr:DCEC\u0018d", - "origin": [ - 165.8000030517578, - 139.550048828125 - ], - "bbox": [ - 165.8000030517578, - 124.6500473022461, - 215.09999084472656, - 149.550048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 215.09999084472656, - 139.550048828125 - ], - "bbox": [ - 215.09999084472656, - 139.3500518798828, - 220.49998474121094, - 148.050048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.0, - 124.6500473022461, - 220.49998474121094, - 161.3500518798828 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": " ", - "origin": [ - 236.10000610351562, - 139.550048828125 - ], - "bbox": [ - 236.10000610351562, - 136.8500518798828, - 236.10000610351562, - 148.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\n�", - "origin": [ - 236.10000610351562, - 139.550048828125 - ], - "bbox": [ - 236.10000610351562, - 139.3500518798828, - 241.0, - 148.050048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&oeo", - "origin": [ - 241.0, - 139.550048828125 - ], - "bbox": [ - 241.0, - 133.050048828125, - 254.40000915527344, - 151.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u00190", - "origin": [ - 254.40000915527344, - 139.550048828125 - ], - "bbox": [ - 254.40000915527344, - 136.8500518798828, - 258.5, - 148.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "GkJoeo", - "origin": [ - 258.5, - 139.550048828125 - ], - "bbox": [ - 258.5, - 133.050048828125, - 271.20001220703125, - 151.95004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019+", - "origin": [ - 271.20001220703125, - 139.550048828125 - ], - "bbox": [ - 271.20001220703125, - 136.8500518798828, - 275.3000183105469, - 148.95004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 236.10000610351562, - 133.050048828125, - 275.3000183105469, - 151.95004272460938 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 78.4000015258789, - 135.55007934570312, - 455.5999755859375, - 172.2500762939453 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "q", - "origin": [ - 78.4000015258789, - 150.4500732421875 - ], - "bbox": [ - 78.4000015258789, - 143.9500732421875, - 78.4000015258789, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.4000015258789, - 150.4500732421875 - ], - "bbox": [ - 78.4000015258789, - 143.4500732421875, - 82.70000457763672, - 161.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N¼6tDE1XIReOaM", - "origin": [ - 82.70000457763672, - 150.4500732421875 - ], - "bbox": [ - 82.70000457763672, - 143.9500732421875, - 117.30000305175781, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\f\u000b", - "origin": [ - 117.30000305175781, - 150.4500732421875 - ], - "bbox": [ - 117.30000305175781, - 150.2500762939453, - 125.20000457763672, - 158.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019`", - "origin": [ - 125.20000457763672, - 150.4500732421875 - ], - "bbox": [ - 125.20000457763672, - 143.9500732421875, - 133.90000915527344, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "P$", - "origin": [ - 133.90000915527344, - 150.4500732421875 - ], - "bbox": [ - 133.90000915527344, - 147.7500762939453, - 139.60000610351562, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eAL§P£\u001dE¢fµEGO\u001dS", - "origin": [ - 139.60000610351562, - 150.4500732421875 - ], - "bbox": [ - 139.60000610351562, - 143.9500732421875, - 183.80001831054688, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.4000015258789, - 143.4500732421875, - 183.80001831054688, - 162.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0015", - "origin": [ - 192.3000030517578, - 150.4500732421875 - ], - "bbox": [ - 192.3000030517578, - 147.7500762939453, - 192.3000030517578, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡tLMPALO\u0018M]FIH¡À", - "origin": [ - 192.3000030517578, - 150.4500732421875 - ], - "bbox": [ - 192.3000030517578, - 143.9500732421875, - 228.60000610351562, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.3000030517578, - 143.9500732421875, - 228.60000610351562, - 162.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 239.20001220703125, - 150.4500732421875 - ], - "bbox": [ - 239.20001220703125, - 143.9500732421875, - 239.20001220703125, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 239.20001220703125, - 150.4500732421875 - ], - "bbox": [ - 239.20001220703125, - 147.7500762939453, - 248.20001220703125, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 248.20001220703125, - 150.4500732421875 - ], - "bbox": [ - 248.20001220703125, - 143.9500732421875, - 252.90000915527344, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 239.20001220703125, - 143.9500732421875, - 252.90000915527344, - 162.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "8*8;d\u001a€W?vuNSGd", - "origin": [ - 268.1000061035156, - 150.4500732421875 - ], - "bbox": [ - 268.1000061035156, - 135.55007934570312, - 304.3999938964844, - 160.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "P(", - "origin": [ - 304.3999938964844, - 150.4500732421875 - ], - "bbox": [ - 304.3999938964844, - 147.7500762939453, - 310.1000061035156, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "��", - "origin": [ - 310.1000061035156, - 150.4500732421875 - ], - "bbox": [ - 310.1000061035156, - 150.2500762939453, - 320.6000061035156, - 158.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 268.1000061035156, - 135.55007934570312, - 320.6000061035156, - 160.4500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 329.3999938964844, - 150.4500732421875 - ], - "bbox": [ - 329.3999938964844, - 137.55007934570312, - 329.3999938964844, - 172.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "en", - "origin": [ - 329.3999938964844, - 150.4500732421875 - ], - "bbox": [ - 329.3999938964844, - 143.9500732421875, - 334.0, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1+", - "origin": [ - 334.0, - 150.4500732421875 - ], - "bbox": [ - 334.0, - 147.7500762939453, - 338.6000061035156, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ck", - "origin": [ - 338.6000061035156, - 150.4500732421875 - ], - "bbox": [ - 338.6000061035156, - 143.9500732421875, - 342.8999938964844, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.3999938964844, - 137.55007934570312, - 342.8999938964844, - 172.2500762939453 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 346.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 346.1999816894531, - 137.55007934570312, - 346.1999816894531, - 172.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1+", - "origin": [ - 346.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 346.1999816894531, - 147.7500762939453, - 350.79998779296875, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "en", - "origin": [ - 350.79998779296875, - 150.4500732421875 - ], - "bbox": [ - 350.79998779296875, - 143.9500732421875, - 355.3999938964844, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.1999816894531, - 137.55007934570312, - 355.3999938964844, - 172.2500762939453 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 364.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 364.1999816894531, - 137.55007934570312, - 364.1999816894531, - 172.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 364.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 364.1999816894531, - 135.55007934570312, - 398.0, - 160.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "yEGF", - "origin": [ - 398.0, - 150.4500732421875 - ], - "bbox": [ - 398.0, - 143.9500732421875, - 408.6999816894531, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 408.6999816894531, - 150.4500732421875 - ], - "bbox": [ - 408.6999816894531, - 147.7500762939453, - 412.3999938964844, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 412.3999938964844, - 150.4500732421875 - ], - "bbox": [ - 412.3999938964844, - 143.9500732421875, - 427.29998779296875, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.1999816894531, - 135.55007934570312, - 427.29998779296875, - 172.2500762939453 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u001dE1OQHIklC", - "origin": [ - 429.3999938964844, - 150.4500732421875 - ], - "bbox": [ - 429.3999938964844, - 143.9500732421875, - 455.5999755859375, - 162.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.3999938964844, - 143.9500732421875, - 455.5999755859375, - 162.85006713867188 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 460.79998779296875, - 143.75006103515625, - 466.0999755859375, - 162.65005493164062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 460.79998779296875, - 150.25006103515625 - ], - "bbox": [ - 460.79998779296875, - 143.75006103515625, - 460.79998779296875, - 162.65005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*;", - "origin": [ - 460.79998779296875, - 150.25006103515625 - ], - "bbox": [ - 460.79998779296875, - 147.55006408691406, - 466.0999755859375, - 159.65005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 460.79998779296875, - 143.75006103515625, - 466.0999755859375, - 162.65005493164062 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 470.5999755859375, - 135.55007934570312, - 522.4999389648438, - 172.2500762939453 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 470.5999755859375, - 150.4500732421875 - ], - "bbox": [ - 470.5999755859375, - 147.7500762939453, - 470.5999755859375, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em", - "origin": [ - 470.5999755859375, - 150.4500732421875 - ], - "bbox": [ - 470.5999755859375, - 143.9500732421875, - 475.1999816894531, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 475.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 475.1999816894531, - 147.7500762939453, - 479.6999816894531, - 159.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 470.5999755859375, - 143.9500732421875, - 479.6999816894531, - 162.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 484.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 484.1999816894531, - 137.55007934570312, - 484.1999816894531, - 172.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 484.1999816894531, - 150.4500732421875 - ], - "bbox": [ - 484.1999816894531, - 143.9500732421875, - 488.8999938964844, - 162.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 488.8999938964844, - 150.4500732421875 - ], - "bbox": [ - 488.8999938964844, - 147.7500762939453, - 497.8999938964844, - 159.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 497.8999938964844, - 150.4500732421875 - ], - "bbox": [ - 497.8999938964844, - 137.55007934570312, - 502.6000061035156, - 172.2500762939453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 484.1999816894531, - 137.55007934570312, - 502.6000061035156, - 172.2500762939453 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "[", - "origin": [ - 506.4999694824219, - 150.4500732421875 - ], - "bbox": [ - 506.4999694824219, - 137.55007934570312, - 506.4999694824219, - 172.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0017XbIwd", - "origin": [ - 506.4999694824219, - 150.4500732421875 - ], - "bbox": [ - 506.4999694824219, - 135.55007934570312, - 522.4999389648438, - 160.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 506.4999694824219, - 135.55007934570312, - 522.4999389648438, - 172.2500762939453 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 100.5999755859375, - 146.55007934570312, - 361.6999816894531, - 183.2500762939453 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 100.5999755859375, - 161.4500732421875 - ], - "bbox": [ - 100.5999755859375, - 154.9500732421875, - 100.5999755859375, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 100.5999755859375, - 161.4500732421875 - ], - "bbox": [ - 100.5999755859375, - 158.7500762939453, - 109.5999755859375, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 109.5999755859375, - 161.4500732421875 - ], - "bbox": [ - 109.5999755859375, - 154.9500732421875, - 114.29997253417969, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001cx,B#25|jd", - "origin": [ - 114.29997253417969, - 161.4500732421875 - ], - "bbox": [ - 114.29997253417969, - 146.55007934570312, - 140.8999786376953, - 171.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "N2", - "origin": [ - 140.8999786376953, - 161.4500732421875 - ], - "bbox": [ - 140.8999786376953, - 158.7500762939453, - 146.99998474121094, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad;€W?vuNSGd", - "origin": [ - 146.99998474121094, - 161.4500732421875 - ], - "bbox": [ - 146.99998474121094, - 146.55007934570312, - 177.19998168945312, - 171.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")(", - "origin": [ - 177.19998168945312, - 161.4500732421875 - ], - "bbox": [ - 177.19998168945312, - 158.7500762939453, - 182.5999755859375, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 182.5999755859375, - 161.4500732421875 - ], - "bbox": [ - 182.5999755859375, - 161.2500762939453, - 187.7999725341797, - 169.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.5999755859375, - 146.55007934570312, - 187.7999725341797, - 173.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 195.99996948242188, - 161.4500732421875 - ], - "bbox": [ - 195.99996948242188, - 148.55007934570312, - 195.99996948242188, - 183.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "<\u0018", - "origin": [ - 195.99996948242188, - 161.4500732421875 - ], - "bbox": [ - 195.99996948242188, - 158.7500762939453, - 200.69996643066406, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/qZk=m", - "origin": [ - 200.69996643066406, - 161.4500732421875 - ], - "bbox": [ - 200.69996643066406, - 154.9500732421875, - 212.9999542236328, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 212.9999542236328, - 161.4500732421875 - ], - "bbox": [ - 212.9999542236328, - 158.7500762939453, - 217.4999542236328, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 217.4999542236328, - 161.4500732421875 - ], - "bbox": [ - 217.4999542236328, - 154.9500732421875, - 222.199951171875, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": " [", - "origin": [ - 222.199951171875, - 161.4500732421875 - ], - "bbox": [ - 222.199951171875, - 148.55007934570312, - 226.9999542236328, - 183.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "cX>Iwd", - "origin": [ - 226.9999542236328, - 161.4500732421875 - ], - "bbox": [ - 226.9999542236328, - 146.55007934570312, - 242.59996032714844, - 171.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0018p", - "origin": [ - 242.59996032714844, - 161.4500732421875 - ], - "bbox": [ - 242.59996032714844, - 154.9500732421875, - 247.79995727539062, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010", - "origin": [ - 247.79995727539062, - 161.4500732421875 - ], - "bbox": [ - 247.79995727539062, - 158.7500762939453, - 256.89996337890625, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em", - "origin": [ - 256.89996337890625, - 161.4500732421875 - ], - "bbox": [ - 256.89996337890625, - 154.9500732421875, - 261.4999694824219, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c€L?vuNSPd", - "origin": [ - 261.4999694824219, - 161.4500732421875 - ], - "bbox": [ - 261.4999694824219, - 146.55007934570312, - 289.0999450683594, - 171.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u000e\r", - "origin": [ - 289.0999450683594, - 161.4500732421875 - ], - "bbox": [ - 289.0999450683594, - 161.2500762939453, - 294.699951171875, - 169.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.99996948242188, - 146.55007934570312, - 294.699951171875, - 183.2500762939453 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ":DM7d", - "origin": [ - 301.4999694824219, - 161.4500732421875 - ], - "bbox": [ - 301.4999694824219, - 146.55007934570312, - 309.89996337890625, - 171.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 309.89996337890625, - 161.4500732421875 - ], - "bbox": [ - 309.89996337890625, - 161.2500762939453, - 315.199951171875, - 169.9500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.4999694824219, - 146.55007934570312, - 315.199951171875, - 171.4500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 338.7999572753906, - 161.4500732421875 - ], - "bbox": [ - 338.7999572753906, - 158.7500762939453, - 338.7999572753906, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m1pem", - "origin": [ - 338.7999572753906, - 161.4500732421875 - ], - "bbox": [ - 338.7999572753906, - 154.9500732421875, - 352.5999755859375, - 173.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 352.5999755859375, - 161.4500732421875 - ], - "bbox": [ - 352.5999755859375, - 158.7500762939453, - 357.0999755859375, - 170.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eq", - "origin": [ - 357.0999755859375, - 161.4500732421875 - ], - "bbox": [ - 357.0999755859375, - 154.9500732421875, - 361.6999816894531, - 173.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.7999572753906, - 154.9500732421875, - 361.6999816894531, - 173.85006713867188 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 78.29995727539062, - 157.55007934570312, - 510.9000549316406, - 194.2500762939453 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "+", - "origin": [ - 78.29995727539062, - 172.4500732421875 - ], - "bbox": [ - 78.29995727539062, - 169.7500762939453, - 78.29995727539062, - 181.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29995727539062, - 172.4500732421875 - ], - "bbox": [ - 78.29995727539062, - 165.4500732421875, - 82.69995880126953, - 183.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u000f�", - "origin": [ - 82.69995880126953, - 172.4500732421875 - ], - "bbox": [ - 82.69995880126953, - 172.2500762939453, - 90.49996185302734, - 180.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BSatLM]F", - "origin": [ - 90.49996185302734, - 172.4500732421875 - ], - "bbox": [ - 90.49996185302734, - 165.9500732421875, - 109.09996032714844, - 184.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "s+", - "origin": [ - 109.09996032714844, - 172.4500732421875 - ], - "bbox": [ - 109.09996032714844, - 157.55007934570312, - 115.99996185302734, - 182.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "»b�p", - "origin": [ - 115.99996185302734, - 172.4500732421875 - ], - "bbox": [ - 115.99996185302734, - 165.9500732421875, - 132.99996948242188, - 184.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 132.99996948242188, - 172.4500732421875 - ], - "bbox": [ - 132.99996948242188, - 169.7500762939453, - 141.99996948242188, - 181.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 141.99996948242188, - 172.4500732421875 - ], - "bbox": [ - 141.99996948242188, - 165.9500732421875, - 146.69996643066406, - 184.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.29995727539062, - 157.55007934570312, - 146.69996643066406, - 184.85006713867188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ">", - "origin": [ - 155.39996337890625, - 172.4500732421875 - ], - "bbox": [ - 155.39996337890625, - 169.7500762939453, - 155.39996337890625, - 181.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ[*278*CE[v0", - "origin": [ - 155.39996337890625, - 172.4500732421875 - ], - "bbox": [ - 155.39996337890625, - 157.55007934570312, - 184.49996948242188, - 182.4500732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 155.39996337890625, - 157.55007934570312, - 184.49996948242188, - 182.4500732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "_`:-=1?A278f6V=PS'2NS„278", - "origin": [ - 195.29995727539062, - 172.4500732421875 - ], - "bbox": [ - 195.29995727539062, - 157.55007934570312, - 256.89996337890625, - 182.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0011\u0010", - "origin": [ - 256.89996337890625, - 172.4500732421875 - ], - "bbox": [ - 256.89996337890625, - 172.2500762939453, - 264.9999694824219, - 180.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ0\u001c:DBV4w:D8*CW€L?*:D8I703:D8I78", - "origin": [ - 264.9999694824219, - 172.4500732421875 - ], - "bbox": [ - 264.9999694824219, - 157.55007934570312, - 353.39990234375, - 182.4500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0019V", - "origin": [ - 353.39990234375, - 172.4500732421875 - ], - "bbox": [ - 353.39990234375, - 159.55007934570312, - 361.7998962402344, - 194.2500762939453 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "l«EGK\u001b£TFJA´STdeMe`", - "origin": [ - 361.7998962402344, - 172.4500732421875 - ], - "bbox": [ - 361.7998962402344, - 165.9500732421875, - 409.0999450683594, - 184.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0013\u0012", - "origin": [ - 409.0999450683594, - 172.4500732421875 - ], - "bbox": [ - 409.0999450683594, - 172.2500762939453, - 414.199951171875, - 180.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/\u0015", - "origin": [ - 414.199951171875, - 172.4500732421875 - ], - "bbox": [ - 414.199951171875, - 169.7500762939453, - 421.199951171875, - 181.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010v\u0018«EGK\u001b£aFJADSTdeM", - "origin": [ - 421.199951171875, - 172.4500732421875 - ], - "bbox": [ - 421.199951171875, - 165.9500732421875, - 473.6000061035156, - 184.85006713867188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0014\u0012", - "origin": [ - 473.6000061035156, - 172.4500732421875 - ], - "bbox": [ - 473.6000061035156, - 172.2500762939453, - 480.8000183105469, - 180.9500732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"š\u0018fuFJMPXIX", - "origin": [ - 480.8000183105469, - 172.4500732421875 - ], - "bbox": [ - 480.8000183105469, - 165.9500732421875, - 510.9000549316406, - 184.85006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.29995727539062, - 157.55007934570312, - 510.9000549316406, - 194.2500762939453 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 78.29995727539062, - 168.45010375976562, - 416.5999450683594, - 205.1501007080078 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0018", - "origin": [ - 78.29995727539062, - 183.35009765625 - ], - "bbox": [ - 78.29995727539062, - 180.6501007080078, - 78.29995727539062, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29995727539062, - 183.35009765625 - ], - "bbox": [ - 78.29995727539062, - 176.35009765625, - 82.69995880126953, - 194.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\f\u000b", - "origin": [ - 82.69995880126953, - 183.35009765625 - ], - "bbox": [ - 82.69995880126953, - 183.1501007080078, - 90.59996032714844, - 191.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“EGF", - "origin": [ - 90.59996032714844, - 183.35009765625 - ], - "bbox": [ - 90.59996032714844, - 176.85009765625, - 103.29996490478516, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 103.29996490478516, - 183.35009765625 - ], - "bbox": [ - 103.29996490478516, - 168.45010375976562, - 106.99996185302734, - 193.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/R1CrRe•\u0018tLR1•;U¥E1O\u001dS", - "origin": [ - 106.99996185302734, - 183.35009765625 - ], - "bbox": [ - 106.99996185302734, - 176.85009765625, - 165.69996643066406, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "g+", - "origin": [ - 165.69996643066406, - 183.35009765625 - ], - "bbox": [ - 165.69996643066406, - 168.45010375976562, - 173.89996337890625, - 193.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TKNR1tDALO\u0016b�p", - "origin": [ - 173.89996337890625, - 183.35009765625 - ], - "bbox": [ - 173.89996337890625, - 176.85009765625, - 213.49996948242188, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 213.49996948242188, - 183.35009765625 - ], - "bbox": [ - 213.49996948242188, - 180.6501007080078, - 222.49996948242188, - 192.75009155273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.29995727539062, - 168.45010375976562, - 222.49996948242188, - 195.75009155273438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 226.9999542236328, - 183.35009765625 - ], - "bbox": [ - 226.9999542236328, - 170.45010375976562, - 226.9999542236328, - 205.1501007080078 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "J€W?vu7SPd", - "origin": [ - 226.9999542236328, - 183.35009765625 - ], - "bbox": [ - 226.9999542236328, - 168.45010375976562, - 254.699951171875, - 193.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0015\r", - "origin": [ - 254.699951171875, - 183.35009765625 - ], - "bbox": [ - 254.699951171875, - 183.1501007080078, - 260.39996337890625, - 191.85009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 226.9999542236328, - 168.45010375976562, - 260.39996337890625, - 205.1501007080078 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ":DM7d", - "origin": [ - 267.199951171875, - 183.35009765625 - ], - "bbox": [ - 267.199951171875, - 168.45010375976562, - 275.5999450683594, - 193.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "T@", - "origin": [ - 275.5999450683594, - 183.35009765625 - ], - "bbox": [ - 275.5999450683594, - 176.85009765625, - 280.5999450683594, - 195.75009155273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.199951171875, - 168.45010375976562, - 280.5999450683594, - 195.75009155273438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\"", - "origin": [ - 291.0999450683594, - 183.35009765625 - ], - "bbox": [ - 291.0999450683594, - 180.6501007080078, - 291.0999450683594, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0013�", - "origin": [ - 291.0999450683594, - 183.35009765625 - ], - "bbox": [ - 291.0999450683594, - 183.1501007080078, - 296.199951171875, - 191.85009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&ocp", - "origin": [ - 296.199951171875, - 183.35009765625 - ], - "bbox": [ - 296.199951171875, - 176.85009765625, - 309.2999267578125, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "2Y", - "origin": [ - 309.2999267578125, - 183.35009765625 - ], - "bbox": [ - 309.2999267578125, - 170.45010375976562, - 313.59991455078125, - 205.1501007080078 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "<0", - "origin": [ - 313.59991455078125, - 183.35009765625 - ], - "bbox": [ - 313.59991455078125, - 180.6501007080078, - 318.2999267578125, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 318.2999267578125, - 183.35009765625 - ], - "bbox": [ - 318.2999267578125, - 176.85009765625, - 322.99993896484375, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",\u0018", - "origin": [ - 322.99993896484375, - 183.35009765625 - ], - "bbox": [ - 322.99993896484375, - 180.6501007080078, - 327.3999328613281, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0019V", - "origin": [ - 327.3999328613281, - 183.35009765625 - ], - "bbox": [ - 327.3999328613281, - 170.45010375976562, - 335.7999267578125, - 205.1501007080078 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€\u0017B<:\u0018@‡BD698fC", - "origin": [ - 335.7999267578125, - 183.35009765625 - ], - "bbox": [ - 335.7999267578125, - 168.45010375976562, - 369.6999206542969, - 193.35009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "©EGF", - "origin": [ - 369.6999206542969, - 183.35009765625 - ], - "bbox": [ - 369.6999206542969, - 176.85009765625, - 379.7999267578125, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 379.7999267578125, - 183.35009765625 - ], - "bbox": [ - 379.7999267578125, - 180.6501007080078, - 383.49993896484375, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADhrv", - "origin": [ - 383.49993896484375, - 183.35009765625 - ], - "bbox": [ - 383.49993896484375, - 176.85009765625, - 398.3999328613281, - 195.75009155273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 291.0999450683594, - 168.45010375976562, - 398.3999328613281, - 205.1501007080078 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "d1FIk™”QY", - "origin": [ - 400.39996337890625, - 183.35009765625 - ], - "bbox": [ - 400.39996337890625, - 176.85009765625, - 416.5999450683594, - 195.75009155273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.39996337890625, - 176.85009765625, - 416.5999450683594, - 195.75009155273438 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 425.2999572753906, - 170.45010375976562, - 457.3999938964844, - 205.1501007080078 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 425.2999572753906, - 183.35009765625 - ], - "bbox": [ - 425.2999572753906, - 180.6501007080078, - 425.2999572753906, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eiTo1o", - "origin": [ - 425.2999572753906, - 183.35009765625 - ], - "bbox": [ - 425.2999572753906, - 176.85009765625, - 439.39996337890625, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0", - "origin": [ - 439.39996337890625, - 183.35009765625 - ], - "bbox": [ - 439.39996337890625, - 180.6501007080078, - 443.5999755859375, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em", - "origin": [ - 443.5999755859375, - 183.35009765625 - ], - "bbox": [ - 443.5999755859375, - 176.85009765625, - 448.1999816894531, - 195.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-\u0018", - "origin": [ - 448.1999816894531, - 183.35009765625 - ], - "bbox": [ - 448.1999816894531, - 180.6501007080078, - 452.6999816894531, - 192.75009155273438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 452.6999816894531, - 183.35009765625 - ], - "bbox": [ - 452.6999816894531, - 170.45010375976562, - 457.3999938964844, - 205.1501007080078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 425.2999572753906, - 170.45010375976562, - 457.3999938964844, - 205.1501007080078 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 71.699951171875, - 179.35012817382812, - 427.2999572753906, - 216.0501251220703 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.699951171875, - 194.2501220703125 - ], - "bbox": [ - 71.699951171875, - 187.2501220703125, - 71.699951171875, - 205.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žo", - "origin": [ - 71.699951171875, - 194.2501220703125 - ], - "bbox": [ - 71.699951171875, - 187.7501220703125, - 74.0999526977539, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0", - "origin": [ - 74.0999526977539, - 194.2501220703125 - ], - "bbox": [ - 74.0999526977539, - 191.5501251220703, - 78.2999496459961, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.2999496459961, - 194.2501220703125 - ], - "bbox": [ - 78.2999496459961, - 187.2501220703125, - 82.699951171875, - 205.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N¼6tDE1XIReOaM", - "origin": [ - 82.699951171875, - 194.2501220703125 - ], - "bbox": [ - 82.699951171875, - 187.7501220703125, - 117.2999496459961, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0016\u000b", - "origin": [ - 117.2999496459961, - 194.2501220703125 - ], - "bbox": [ - 117.2999496459961, - 194.0501251220703, - 124.7999496459961, - 202.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019`", - "origin": [ - 124.7999496459961, - 194.2501220703125 - ], - "bbox": [ - 124.7999496459961, - 187.7501220703125, - 133.4999542236328, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*$", - "origin": [ - 133.4999542236328, - 194.2501220703125 - ], - "bbox": [ - 133.4999542236328, - 191.5501251220703, - 138.79995727539062, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eAL§P£\u0018ENf\u001fEGO\u001dS", - "origin": [ - 138.79995727539062, - 194.2501220703125 - ], - "bbox": [ - 138.79995727539062, - 187.7501220703125, - 182.09996032714844, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0011\u0017", - "origin": [ - 182.09996032714844, - 194.2501220703125 - ], - "bbox": [ - 182.09996032714844, - 194.0501251220703, - 190.19996643066406, - 202.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-AžHJADM]tDtLR", - "origin": [ - 190.19996643066406, - 194.2501220703125 - ], - "bbox": [ - 190.19996643066406, - 187.7501220703125, - 214.89996337890625, - 206.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.699951171875, - 187.2501220703125, - 214.89996337890625, - 206.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 233.199951171875, - 194.2501220703125 - ], - "bbox": [ - 233.199951171875, - 187.7501220703125, - 233.199951171875, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 233.199951171875, - 194.2501220703125 - ], - "bbox": [ - 233.199951171875, - 191.5501251220703, - 242.199951171875, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "To", - "origin": [ - 242.199951171875, - 194.2501220703125 - ], - "bbox": [ - 242.199951171875, - 187.7501220703125, - 247.199951171875, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "q€W?vuNSGd\u000ezr:DCEC\u0018d", - "origin": [ - 247.199951171875, - 194.2501220703125 - ], - "bbox": [ - 247.199951171875, - 179.35012817382812, - 296.09991455078125, - 204.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�\u0018��\u0019", - "origin": [ - 296.09991455078125, - 194.2501220703125 - ], - "bbox": [ - 296.09991455078125, - 194.0501251220703, - 316.69989013671875, - 202.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")\"", - "origin": [ - 316.69989013671875, - 194.2501220703125 - ], - "bbox": [ - 316.69989013671875, - 191.5501251220703, - 322.0998840332031, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";p", - "origin": [ - 322.0998840332031, - 194.2501220703125 - ], - "bbox": [ - 322.0998840332031, - 187.7501220703125, - 330.4998779296875, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 330.4998779296875, - 194.2501220703125 - ], - "bbox": [ - 330.4998779296875, - 191.5501251220703, - 334.9998779296875, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "emck=pgo", - "origin": [ - 334.9998779296875, - 194.2501220703125 - ], - "bbox": [ - 334.9998779296875, - 187.7501220703125, - 352.1998596191406, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u00190", - "origin": [ - 352.1998596191406, - 194.2501220703125 - ], - "bbox": [ - 352.1998596191406, - 191.5501251220703, - 356.29986572265625, - 203.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.199951171875, - 179.35012817382812, - 356.29986572265625, - 206.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 364.5999755859375, - 194.2501220703125 - ], - "bbox": [ - 364.5999755859375, - 181.35012817382812, - 364.5999755859375, - 216.0501251220703 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€\u0017B<:\u0018@‡BD698fC", - "origin": [ - 364.5999755859375, - 194.2501220703125 - ], - "bbox": [ - 364.5999755859375, - 179.35012817382812, - 398.4999694824219, - 204.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 398.4999694824219, - 194.2501220703125 - ], - "bbox": [ - 398.4999694824219, - 187.7501220703125, - 408.699951171875, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 408.699951171875, - 194.2501220703125 - ], - "bbox": [ - 408.699951171875, - 191.5501251220703, - 412.39996337890625, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 412.39996337890625, - 194.2501220703125 - ], - "bbox": [ - 412.39996337890625, - 187.7501220703125, - 427.2999572753906, - 206.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.5999755859375, - 179.35012817382812, - 427.2999572753906, - 216.0501251220703 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 434.5, - 187.7501220703125, - 446.70001220703125, - 206.65011596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPCTkÖH", - "origin": [ - 434.5, - 194.2501220703125 - ], - "bbox": [ - 434.5, - 187.7501220703125, - 446.70001220703125, - 206.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 434.5, - 187.7501220703125, - 446.70001220703125, - 206.65011596679688 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 450.3999938964844, - 187.55010986328125, - 455.79998779296875, - 206.45010375976562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 450.3999938964844, - 194.05010986328125 - ], - "bbox": [ - 450.3999938964844, - 187.55010986328125, - 450.3999938964844, - 206.45010375976562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ");", - "origin": [ - 450.3999938964844, - 194.05010986328125 - ], - "bbox": [ - 450.3999938964844, - 191.35011291503906, - 455.79998779296875, - 203.45010375976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 450.3999938964844, - 187.55010986328125, - 455.79998779296875, - 206.45010375976562 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 460.29998779296875, - 181.35012817382812, - 492.3000183105469, - 216.0501251220703 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-010", - "origin": [ - 460.29998779296875, - 194.2501220703125 - ], - "bbox": [ - 460.29998779296875, - 191.5501251220703, - 469.3999938964844, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eqgoZi", - "origin": [ - 469.3999938964844, - 194.2501220703125 - ], - "bbox": [ - 469.3999938964844, - 187.7501220703125, - 483.1000061035156, - 206.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-+", - "origin": [ - 483.1000061035156, - 194.2501220703125 - ], - "bbox": [ - 483.1000061035156, - 191.5501251220703, - 487.6000061035156, - 203.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 487.6000061035156, - 194.2501220703125 - ], - "bbox": [ - 487.6000061035156, - 181.35012817382812, - 492.3000183105469, - 216.0501251220703 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 460.29998779296875, - 181.35012817382812, - 492.3000183105469, - 216.0501251220703 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 71.69998168945312, - 190.35012817382812, - 332.4999694824219, - 217.65011596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.69998168945312, - 205.2501220703125 - ], - "bbox": [ - 71.69998168945312, - 198.2501220703125, - 71.69998168945312, - 216.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žoeo", - "origin": [ - 71.69998168945312, - 205.2501220703125 - ], - "bbox": [ - 71.69998168945312, - 198.7501220703125, - 78.69998168945312, - 217.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69998168945312, - 198.2501220703125, - 78.69998168945312, - 217.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ">", - "origin": [ - 82.69998168945312, - 205.2501220703125 - ], - "bbox": [ - 82.69998168945312, - 198.2501220703125, - 82.69998168945312, - 216.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N¼6tDE1XIReOaM", - "origin": [ - 82.69998168945312, - 205.2501220703125 - ], - "bbox": [ - 82.69998168945312, - 198.7501220703125, - 117.29998016357422, - 217.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\f\u000b", - "origin": [ - 117.29998016357422, - 205.2501220703125 - ], - "bbox": [ - 117.29998016357422, - 205.0501251220703, - 125.19998168945312, - 213.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019`", - "origin": [ - 125.19998168945312, - 205.2501220703125 - ], - "bbox": [ - 125.19998168945312, - 198.7501220703125, - 133.8999786376953, - 217.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u001e$", - "origin": [ - 133.8999786376953, - 205.2501220703125 - ], - "bbox": [ - 133.8999786376953, - 202.5501251220703, - 139.49998474121094, - 214.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eAL§P£\u0018E\u0016f—E1O\u0018S", - "origin": [ - 139.49998474121094, - 205.2501220703125 - ], - "bbox": [ - 139.49998474121094, - 198.7501220703125, - 183.39999389648438, - 217.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "e+", - "origin": [ - 183.39999389648438, - 205.2501220703125 - ], - "bbox": [ - 183.39999389648438, - 190.35012817382812, - 192.1999969482422, - 215.2501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gYZEGFsSTALdetLA+U\rp", - "origin": [ - 192.1999969482422, - 205.2501220703125 - ], - "bbox": [ - 192.1999969482422, - 198.7501220703125, - 239.79998779296875, - 217.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01\u0018", - "origin": [ - 239.79998779296875, - 205.2501220703125 - ], - "bbox": [ - 239.79998779296875, - 202.5501251220703, - 253.39999389648438, - 214.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016«E1O\u0019”g•\u0018E1OQHJ•\u0018K", - "origin": [ - 253.39999389648438, - 205.2501220703125 - ], - "bbox": [ - 253.39999389648438, - 198.7501220703125, - 309.60003662109375, - 217.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69998168945312, - 190.35012817382812, - 309.60003662109375, - 217.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNMPY", - "origin": [ - 320.5999755859375, - 205.2501220703125 - ], - "bbox": [ - 320.5999755859375, - 198.7501220703125, - 332.4999694824219, - 217.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.5999755859375, - 198.7501220703125, - 332.4999694824219, - 217.65011596679688 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 341.5999755859375, - 198.7501220703125, - 430.8999938964844, - 217.65011596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u0018ALYPXB£rM\"E1O³MPKNM]FJd1MPOQH·C", - "origin": [ - 341.5999755859375, - 205.2501220703125 - ], - "bbox": [ - 341.5999755859375, - 198.7501220703125, - 430.8999938964844, - 217.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.5999755859375, - 198.7501220703125, - 430.8999938964844, - 217.65011596679688 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 441.1999816894531, - 190.35012817382812, - 522.0, - 217.65011596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPOaReKNMPOaReOr±", - "origin": [ - 441.1999816894531, - 205.2501220703125 - ], - "bbox": [ - 441.1999816894531, - 198.7501220703125, - 482.0, - 217.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 441.1999816894531, - 198.7501220703125, - 482.0, - 217.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "€\u0017B<:\u0018@‡B16^8fC", - "origin": [ - 491.29998779296875, - 205.2501220703125 - ], - "bbox": [ - 491.29998779296875, - 190.35012817382812, - 522.0, - 215.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 491.29998779296875, - 190.35012817382812, - 522.0, - 215.2501220703125 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 100.49996948242188, - 209.2501220703125, - 253.9999542236328, - 228.65011596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGF", - "origin": [ - 100.49996948242188, - 216.2501220703125 - ], - "bbox": [ - 100.49996948242188, - 209.7501220703125, - 104.89997100830078, - 228.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 104.89997100830078, - 216.2501220703125 - ], - "bbox": [ - 104.89997100830078, - 213.5501251220703, - 108.59996795654297, - 225.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 108.59996795654297, - 216.2501220703125 - ], - "bbox": [ - 108.59996795654297, - 209.7501220703125, - 123.49996948242188, - 228.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.49996948242188, - 209.7501220703125, - 123.49996948242188, - 228.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-\u001810", - "origin": [ - 125.59996795654297, - 216.2501220703125 - ], - "bbox": [ - 125.59996795654297, - 213.5501251220703, - 134.69998168945312, - 225.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "To1š", - "origin": [ - 134.69998168945312, - 216.2501220703125 - ], - "bbox": [ - 134.69998168945312, - 209.7501220703125, - 144.19998168945312, - 228.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 125.59996795654297, - 209.7501220703125, - 144.19998168945312, - 228.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i", - "origin": [ - 146.2999725341797, - 216.2501220703125 - ], - "bbox": [ - 146.2999725341797, - 209.7501220703125, - 146.2999725341797, - 228.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1\u001810", - "origin": [ - 146.2999725341797, - 216.2501220703125 - ], - "bbox": [ - 146.2999725341797, - 213.5501251220703, - 155.49998474121094, - 225.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eqg`rHJRNEGC\u0018CrMZEcF4ADO", - "origin": [ - 155.49998474121094, - 216.2501220703125 - ], - "bbox": [ - 155.49998474121094, - 209.7501220703125, - 214.7999725341797, - 228.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.2999725341797, - 209.7501220703125, - 214.7999725341797, - 228.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 222.99996948242188, - 216.2501220703125 - ], - "bbox": [ - 222.99996948242188, - 209.2501220703125, - 222.99996948242188, - 227.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-M] ™š", - "origin": [ - 222.99996948242188, - 216.2501220703125 - ], - "bbox": [ - 222.99996948242188, - 209.7501220703125, - 237.19996643066406, - 228.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.99996948242188, - 209.2501220703125, - 237.19996643066406, - 228.65011596679688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 242.99996948242188, - 216.2501220703125 - ], - "bbox": [ - 242.99996948242188, - 209.2501220703125, - 242.99996948242188, - 227.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žoZp", - "origin": [ - 242.99996948242188, - 216.2501220703125 - ], - "bbox": [ - 242.99996948242188, - 209.7501220703125, - 249.59996032714844, - 228.65011596679688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 249.59996032714844, - 216.2501220703125 - ], - "bbox": [ - 249.59996032714844, - 209.2501220703125, - 253.9999542236328, - 227.65011596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.99996948242188, - 209.2501220703125, - 253.9999542236328, - 228.65011596679688 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 71.69996643066406, - 220.150146484375, - 117.6999740600586, - 239.55014038085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.69996643066406, - 227.150146484375 - ], - "bbox": [ - 71.69996643066406, - 220.150146484375, - 71.69996643066406, - 238.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocp", - "origin": [ - 71.69996643066406, - 227.150146484375 - ], - "bbox": [ - 71.69996643066406, - 220.650146484375, - 78.39997100830078, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39997100830078, - 227.150146484375 - ], - "bbox": [ - 78.39997100830078, - 220.150146484375, - 82.6999740600586, - 238.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tL§PM\"À-k", - "origin": [ - 82.6999740600586, - 227.150146484375 - ], - "bbox": [ - 82.6999740600586, - 220.650146484375, - 117.6999740600586, - 239.55014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69996643066406, - 220.150146484375, - 117.6999740600586, - 239.55014038085938 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 127.99996948242188, - 214.25015258789062, - 433.29998779296875, - 248.9501495361328 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "`?@·A", - "origin": [ - 127.99996948242188, - 227.150146484375 - ], - "bbox": [ - 127.99996948242188, - 220.650146484375, - 140.5999755859375, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001b\u001a", - "origin": [ - 140.5999755859375, - 227.150146484375 - ], - "bbox": [ - 140.5999755859375, - 226.9501495361328, - 144.5999755859375, - 235.650146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.99996948242188, - 220.650146484375, - 144.5999755859375, - 239.55014038085938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ReXIA8b8`ªUaFJReOa§PReOaA8b+`?À·EGtLtDAž‘6MPtLt", - "origin": [ - 143.0999755859375, - 227.150146484375 - ], - "bbox": [ - 143.0999755859375, - 220.650146484375, - 251.20004272460938, - 239.55014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 143.0999755859375, - 220.650146484375, - 251.20004272460938, - 239.55014038085938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "$%$", - "origin": [ - 257.5999755859375, - 227.150146484375 - ], - "bbox": [ - 257.5999755859375, - 224.4501495361328, - 265.6999816894531, - 236.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016E1O\u0018S", - "origin": [ - 265.6999816894531, - 227.150146484375 - ], - "bbox": [ - 265.6999816894531, - 220.650146484375, - 283.6000061035156, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001c\u0017", - "origin": [ - 283.6000061035156, - 227.150146484375 - ], - "bbox": [ - 283.6000061035156, - 226.9501495361328, - 292.0, - 235.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BAžHJALMPtLtDR", - "origin": [ - 292.0, - 227.150146484375 - ], - "bbox": [ - 292.0, - 220.650146484375, - 316.8000183105469, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\r.", - "origin": [ - 316.8000183105469, - 227.150146484375 - ], - "bbox": [ - 316.8000183105469, - 224.4501495361328, - 325.1000061035156, - 236.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�V", - "origin": [ - 325.1000061035156, - 227.150146484375 - ], - "bbox": [ - 325.1000061035156, - 214.25015258789062, - 336.20001220703125, - 248.9501495361328 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "wMZS", - "origin": [ - 336.20001220703125, - 227.150146484375 - ], - "bbox": [ - 336.20001220703125, - 220.650146484375, - 343.4000244140625, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".W", - "origin": [ - 343.4000244140625, - 227.150146484375 - ], - "bbox": [ - 343.4000244140625, - 214.25015258789062, - 348.60003662109375, - 248.9501495361328 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Bp", - "origin": [ - 348.60003662109375, - 227.150146484375 - ], - "bbox": [ - 348.60003662109375, - 220.650146484375, - 355.60003662109375, - 239.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01\u0018", - "origin": [ - 355.60003662109375, - 227.150146484375 - ], - "bbox": [ - 355.60003662109375, - 224.4501495361328, - 369.2000427246094, - 236.55014038085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¢f8FJRQYPM]MZSaALO\u0018d1X", - "origin": [ - 369.2000427246094, - 227.150146484375 - ], - "bbox": [ - 369.2000427246094, - 220.650146484375, - 421.5000915527344, - 239.55014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 257.5999755859375, - 214.25015258789062, - 421.5000915527344, - 248.9501495361328 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 428.79998779296875, - 227.150146484375 - ], - "bbox": [ - 428.79998779296875, - 214.25015258789062, - 428.79998779296875, - 248.9501495361328 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1H", - "origin": [ - 428.79998779296875, - 227.150146484375 - ], - "bbox": [ - 428.79998779296875, - 220.650146484375, - 433.29998779296875, - 239.55014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 428.79998779296875, - 214.25015258789062, - 433.29998779296875, - 248.9501495361328 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 445.5, - 220.650146484375, - 518.5, - 239.55014038085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "j=OQHJM]FJOªšª«6ReOT =šª@·jI«\\", - "origin": [ - 445.5, - 227.150146484375 - ], - "bbox": [ - 445.5, - 220.650146484375, - 518.5, - 239.55014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.5, - 220.650146484375, - 518.5, - 239.55014038085938 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 100.60000610351562, - 223.15017700195312, - 431.4000244140625, - 259.85015869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 100.60000610351562, - 238.0501708984375 - ], - "bbox": [ - 100.60000610351562, - 231.5501708984375, - 100.60000610351562, - 250.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01+", - "origin": [ - 100.60000610351562, - 238.0501708984375 - ], - "bbox": [ - 100.60000610351562, - 235.3501739501953, - 114.20000457763672, - 247.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "g`?«E1X’HJALd1tDALR1O\u0018YPMPtLtLR", - "origin": [ - 114.20000457763672, - 238.0501708984375 - ], - "bbox": [ - 114.20000457763672, - 231.5501708984375, - 177.80001831054688, - 250.45016479492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.60000610351562, - 231.5501708984375, - 177.80001831054688, - 250.45016479492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 186.40000915527344, - 238.0501708984375 - ], - "bbox": [ - 186.40000915527344, - 225.15017700195312, - 186.40000915527344, - 259.85015869140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "wj™HsE1tž", - "origin": [ - 186.40000915527344, - 238.0501708984375 - ], - "bbox": [ - 186.40000915527344, - 231.5501708984375, - 203.40000915527344, - 250.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": ".W", - "origin": [ - 203.40000915527344, - 238.0501708984375 - ], - "bbox": [ - 203.40000915527344, - 225.15017700195312, - 208.60000610351562, - 259.85015869140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¯`", - "origin": [ - 208.60000610351562, - 238.0501708984375 - ], - "bbox": [ - 208.60000610351562, - 231.5501708984375, - 212.5, - 250.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "‡+", - "origin": [ - 212.5, - 238.0501708984375 - ], - "bbox": [ - 212.5, - 223.15017700195312, - 217.8000030517578, - 248.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TMPCTHJMPK\u001b£rM]F¬pepck=pGnT`?p", - "origin": [ - 217.8000030517578, - 238.0501708984375 - ], - "bbox": [ - 217.8000030517578, - 231.5501708984375, - 290.6000061035156, - 250.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010-+\r2", - "origin": [ - 290.6000061035156, - 238.0501708984375 - ], - "bbox": [ - 290.6000061035156, - 235.3501739501953, - 312.3999938964844, - 247.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad\u000e€W?vuNSPd", - "origin": [ - 312.3999938964844, - 238.0501708984375 - ], - "bbox": [ - 312.3999938964844, - 223.15017700195312, - 342.5999755859375, - 248.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "54!6", - "origin": [ - 342.5999755859375, - 238.0501708984375 - ], - "bbox": [ - 342.5999755859375, - 235.3501739501953, - 352.9999694824219, - 247.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI785hGd", - "origin": [ - 352.9999694824219, - 238.0501708984375 - ], - "bbox": [ - 352.9999694824219, - 223.15017700195312, - 372.0, - 248.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "P\u001b", - "origin": [ - 372.0, - 238.0501708984375 - ], - "bbox": [ - 372.0, - 235.3501739501953, - 377.70001220703125, - 247.45016479492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ";:DBGd", - "origin": [ - 377.70001220703125, - 238.0501708984375 - ], - "bbox": [ - 377.70001220703125, - 223.15017700195312, - 391.20001220703125, - 248.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aHJRNE1CaCrMZEGF", - "origin": [ - 391.20001220703125, - 238.0501708984375 - ], - "bbox": [ - 391.20001220703125, - 231.5501708984375, - 431.4000244140625, - 250.45016479492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.40000915527344, - 223.15017700195312, - 431.4000244140625, - 259.85015869140625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 71.70000457763672, - 234.25015258789062, - 384.9000549316406, - 261.5501403808594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.70000457763672, - 249.150146484375 - ], - "bbox": [ - 71.70000457763672, - 242.150146484375, - 71.70000457763672, - 260.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žoZi", - "origin": [ - 71.70000457763672, - 249.150146484375 - ], - "bbox": [ - 71.70000457763672, - 242.650146484375, - 78.30000305175781, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.30000305175781, - 249.150146484375 - ], - "bbox": [ - 78.30000305175781, - 242.150146484375, - 82.70000457763672, - 260.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010j=XIADSTFJR", - "origin": [ - 82.70000457763672, - 249.150146484375 - ], - "bbox": [ - 82.70000457763672, - 242.650146484375, - 108.69999694824219, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/$", - "origin": [ - 108.69999694824219, - 249.150146484375 - ], - "bbox": [ - 108.69999694824219, - 246.4501495361328, - 115.69999694824219, - 258.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001d\u000b", - "origin": [ - 115.69999694824219, - 249.150146484375 - ], - "bbox": [ - 115.69999694824219, - 248.9501495361328, - 123.0, - 257.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019`", - "origin": [ - 123.0, - 249.150146484375 - ], - "bbox": [ - 123.0, - 242.650146484375, - 131.6999969482422, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "v+", - "origin": [ - 131.6999969482422, - 249.150146484375 - ], - "bbox": [ - 131.6999969482422, - 234.25015258789062, - 136.59999084472656, - 259.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aEGOQHsE1O\u001dSTM]F", - "origin": [ - 136.59999084472656, - 249.150146484375 - ], - "bbox": [ - 136.59999084472656, - 242.650146484375, - 173.5, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "N$", - "origin": [ - 173.5, - 249.150146484375 - ], - "bbox": [ - 173.5, - 246.4501495361328, - 179.60000610351562, - 258.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡b", - "origin": [ - 179.60000610351562, - 249.150146484375 - ], - "bbox": [ - 179.60000610351562, - 242.650146484375, - 186.8000030517578, - 261.5501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.70000457763672, - 234.25015258789062, - 186.8000030517578, - 261.5501403808594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ".", - "origin": [ - 195.20001220703125, - 249.150146484375 - ], - "bbox": [ - 195.20001220703125, - 246.4501495361328, - 195.20001220703125, - 258.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "—EGO\u001dS\u001bUaM]FJO\u001dEGO\u001dSaM]§°SaM¬«6RGFsSaR1£\u001dE¡f\u0019p", - "origin": [ - 195.20001220703125, - 249.150146484375 - ], - "bbox": [ - 195.20001220703125, - 242.650146484375, - 322.800048828125, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010-+", - "origin": [ - 322.800048828125, - 249.150146484375 - ], - "bbox": [ - 322.800048828125, - 246.4501495361328, - 336.4000549316406, - 258.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001d�", - "origin": [ - 336.4000549316406, - 249.150146484375 - ], - "bbox": [ - 336.4000549316406, - 248.9501495361328, - 343.7000427246094, - 257.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "œO\u0018RGHJMReO\"H", - "origin": [ - 343.7000427246094, - 249.150146484375 - ], - "bbox": [ - 343.7000427246094, - 242.650146484375, - 384.9000549316406, - 261.5501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.20001220703125, - 242.650146484375, - 384.9000549316406, - 261.5501403808594 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 393.800048828125, - 242.650146484375, - 451.4000549316406, - 261.5501403808594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M°”Q•\u001dEGOQHJ•\u0018K\u0010klKNMPY", - "origin": [ - 393.800048828125, - 249.150146484375 - ], - "bbox": [ - 393.800048828125, - 242.650146484375, - 451.4000549316406, - 261.5501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 393.800048828125, - 242.650146484375, - 451.4000549316406, - 261.5501403808594 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 460.5000305175781, - 242.150146484375, - 517.9000854492188, - 261.5501403808594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaALYZE1t", - "origin": [ - 460.5000305175781, - 249.150146484375 - ], - "bbox": [ - 460.5000305175781, - 242.650146484375, - 481.300048828125, - 261.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�<", - "origin": [ - 481.300048828125, - 249.150146484375 - ], - "bbox": [ - 481.300048828125, - 242.150146484375, - 486.00006103515625, - 260.5501403808594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4ALYPYPAg®\u001dRZ‘", - "origin": [ - 486.00006103515625, - 249.150146484375 - ], - "bbox": [ - 486.00006103515625, - 242.650146484375, - 517.9000854492188, - 261.5501403808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 460.5000305175781, - 242.150146484375, - 517.9000854492188, - 261.5501403808594 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 100.60003662109375, - 245.15017700195312, - 339.7000427246094, - 281.85015869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 100.60003662109375, - 260.0501708984375 - ], - "bbox": [ - 100.60003662109375, - 245.15017700195312, - 131.300048828125, - 270.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 131.300048828125, - 260.0501708984375 - ], - "bbox": [ - 131.300048828125, - 253.5501708984375, - 141.5000457763672, - 272.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 141.5000457763672, - 260.0501708984375 - ], - "bbox": [ - 141.5000457763672, - 257.35015869140625, - 145.20004272460938, - 269.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 145.20004272460938, - 260.0501708984375 - ], - "bbox": [ - 145.20004272460938, - 253.5501708984375, - 160.10003662109375, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.60003662109375, - 245.15017700195312, - 160.10003662109375, - 272.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-+101+", - "origin": [ - 162.20004272460938, - 260.0501708984375 - ], - "bbox": [ - 162.20004272460938, - 257.35015869140625, - 175.90005493164062, - 269.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gš", - "origin": [ - 175.90005493164062, - 260.0501708984375 - ], - "bbox": [ - 175.90005493164062, - 253.5501708984375, - 180.800048828125, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.20004272460938, - 253.5501708984375, - 180.800048828125, - 272.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "peqgoZq", - "origin": [ - 183.0000457763672, - 260.0501708984375 - ], - "bbox": [ - 183.0000457763672, - 253.5501708984375, - 196.70004272460938, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 183.0000457763672, - 253.5501708984375, - 196.70004272460938, - 272.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "[", - "origin": [ - 201.6000518798828, - 260.0501708984375 - ], - "bbox": [ - 201.6000518798828, - 247.15017700195312, - 201.6000518798828, - 281.85015869140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆX>I>d", - "origin": [ - 201.6000518798828, - 260.0501708984375 - ], - "bbox": [ - 201.6000518798828, - 245.15017700195312, - 217.20004272460938, - 270.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "rp", - "origin": [ - 217.20004272460938, - 260.0501708984375 - ], - "bbox": [ - 217.20004272460938, - 253.5501708984375, - 222.60003662109375, - 272.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010-+", - "origin": [ - 222.60003662109375, - 260.0501708984375 - ], - "bbox": [ - 222.60003662109375, - 257.35015869140625, - 236.20004272460938, - 269.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": " <", - "origin": [ - 236.20004272460938, - 260.0501708984375 - ], - "bbox": [ - 236.20004272460938, - 253.0501708984375, - 243.90003967285156, - 271.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALYPY]Aª®\u0018Rc‘¡`\u0018”Q•\u001dEGOgHJ•aK\u000bKNMPY", - "origin": [ - 243.90003967285156, - 260.0501708984375 - ], - "bbox": [ - 243.90003967285156, - 253.5501708984375, - 339.7000427246094, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 201.6000518798828, - 245.15017700195312, - 339.7000427246094, - 281.85015869140625 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 348.800048828125, - 245.15017700195312, - 517.4000244140625, - 272.4501647949219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u0018ALYPX¬E1O\u0018S¢dGFsEchgAžH=", - "origin": [ - 348.800048828125, - 260.0501708984375 - ], - "bbox": [ - 348.800048828125, - 253.5501708984375, - 412.7000427246094, - 272.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Z€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 412.7000427246094, - 260.0501708984375 - ], - "bbox": [ - 412.7000427246094, - 245.15017700195312, - 451.70001220703125, - 270.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 451.70001220703125, - 260.0501708984375 - ], - "bbox": [ - 451.70001220703125, - 253.5501708984375, - 461.8999938964844, - 272.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 461.8999938964844, - 260.0501708984375 - ], - "bbox": [ - 461.8999938964844, - 257.35015869140625, - 465.6000061035156, - 269.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 465.6000061035156, - 260.0501708984375 - ], - "bbox": [ - 465.6000061035156, - 253.5501708984375, - 480.5, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.800048828125, - 245.15017700195312, - 480.5, - 272.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-+101+", - "origin": [ - 482.60003662109375, - 260.0501708984375 - ], - "bbox": [ - 482.60003662109375, - 257.35015869140625, - 496.300048828125, - 269.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gš", - "origin": [ - 496.300048828125, - 260.0501708984375 - ], - "bbox": [ - 496.300048828125, - 253.5501708984375, - 501.2000427246094, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 482.60003662109375, - 253.5501708984375, - 501.2000427246094, - 272.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p1i/mQo", - "origin": [ - 503.4000244140625, - 260.0501708984375 - ], - "bbox": [ - 503.4000244140625, - 253.5501708984375, - 517.4000244140625, - 272.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 503.4000244140625, - 253.5501708984375, - 517.4000244140625, - 272.4501647949219 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 71.70001220703125, - 258.0502014160156, - 120.70000457763672, - 292.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.70001220703125, - 270.9501953125 - ], - "bbox": [ - 71.70001220703125, - 263.9501953125, - 71.70001220703125, - 282.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žo", - "origin": [ - 71.70001220703125, - 270.9501953125 - ], - "bbox": [ - 71.70001220703125, - 264.4501953125, - 74.10001373291016, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.70001220703125, - 263.9501953125, - 74.10001373291016, - 283.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 78.20001220703125, - 270.9501953125 - ], - "bbox": [ - 78.20001220703125, - 258.0502014160156, - 78.20001220703125, - 292.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 78.20001220703125, - 270.9501953125 - ], - "bbox": [ - 78.20001220703125, - 263.9501953125, - 82.70001220703125, - 282.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u001b²\u0014M]HIHJM]FJALY", - "origin": [ - 82.70001220703125, - 270.9501953125 - ], - "bbox": [ - 82.70001220703125, - 264.4501953125, - 120.70000457763672, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.20001220703125, - 258.0502014160156, - 120.70000457763672, - 292.75018310546875 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 133.70001220703125, - 264.4501953125, - 276.8000183105469, - 283.3501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "«¾p", - "origin": [ - 133.70001220703125, - 270.9501953125 - ], - "bbox": [ - 133.70001220703125, - 264.4501953125, - 144.20001220703125, - 283.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010-+", - "origin": [ - 144.20001220703125, - 270.9501953125 - ], - "bbox": [ - 144.20001220703125, - 268.25018310546875, - 157.70001220703125, - 280.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019\\8KNM]FJdeM]O\u0018YPM»R1 -”Q•\u001dEGOgHJ•aK", - "origin": [ - 157.70001220703125, - 270.9501953125 - ], - "bbox": [ - 157.70001220703125, - 264.4501953125, - 253.50001525878906, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.70001220703125, - 264.4501953125, - 253.50001525878906, - 283.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNMPY", - "origin": [ - 264.9000244140625, - 270.9501953125 - ], - "bbox": [ - 264.9000244140625, - 264.4501953125, - 276.8000183105469, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.9000244140625, - 264.4501953125, - 276.8000183105469, - 283.3501892089844 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 285.9000244140625, - 256.0502014160156, - 520.0000610351562, - 283.3501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaALYPX½ ´FJReK", - "origin": [ - 285.9000244140625, - 270.9501953125 - ], - "bbox": [ - 285.9000244140625, - 264.4501953125, - 320.50006103515625, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 285.9000244140625, - 264.4501953125, - 320.50006103515625, - 283.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "YPtDE1XIXIALYZE1t¬X’HsEcHJADX’HJALYPX", - "origin": [ - 332.20001220703125, - 270.9501953125 - ], - "bbox": [ - 332.20001220703125, - 264.4501953125, - 400.2000732421875, - 283.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "3€\u0017B<:\u0018@‡BD698fC", - "origin": [ - 400.2000732421875, - 270.9501953125 - ], - "bbox": [ - 400.2000732421875, - 256.0502014160156, - 438.7000427246094, - 280.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¬EcF", - "origin": [ - 438.7000427246094, - 270.9501953125 - ], - "bbox": [ - 438.7000427246094, - 264.4501953125, - 449.7000427246094, - 283.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 449.7000427246094, - 270.9501953125 - ], - "bbox": [ - 449.7000427246094, - 268.25018310546875, - 453.4000549316406, - 280.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 453.4000549316406, - 270.9501953125 - ], - "bbox": [ - 453.4000549316406, - 264.4501953125, - 468.300048828125, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.20001220703125, - 256.0502014160156, - 468.300048828125, - 283.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-+", - "origin": [ - 470.5, - 270.9501953125 - ], - "bbox": [ - 470.5, - 268.25018310546875, - 475.0, - 280.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "To1oeš", - "origin": [ - 475.0, - 270.9501953125 - ], - "bbox": [ - 475.0, - 264.4501953125, - 489.1000061035156, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 470.5, - 264.4501953125, - 489.1000061035156, - 283.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "01\u0018", - "origin": [ - 491.20001220703125, - 270.9501953125 - ], - "bbox": [ - 491.20001220703125, - 268.25018310546875, - 495.8000183105469, - 280.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "epeqg`6HJR", - "origin": [ - 495.8000183105469, - 270.9501953125 - ], - "bbox": [ - 495.8000183105469, - 264.4501953125, - 520.0000610351562, - 283.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 491.20001220703125, - 264.4501953125, - 520.0000610351562, - 283.3501892089844 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 100.5, - 267.1501770019531, - 484.00018310546875, - 303.85015869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1CaCrMZEGF»ALO", - "origin": [ - 100.5, - 282.0501708984375 - ], - "bbox": [ - 100.5, - 275.5501708984375, - 134.60000610351562, - 294.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.5, - 275.5501708984375, - 134.60000610351562, - 294.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 144.10000610351562, - 282.0501708984375 - ], - "bbox": [ - 144.10000610351562, - 275.0501708984375, - 144.10000610351562, - 293.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4M] =š", - "origin": [ - 144.10000610351562, - 282.0501708984375 - ], - "bbox": [ - 144.10000610351562, - 275.5501708984375, - 158.3000030517578, - 294.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 144.10000610351562, - 275.0501708984375, - 158.3000030517578, - 294.4501647949219 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 165.3000030517578, - 282.0501708984375 - ], - "bbox": [ - 165.3000030517578, - 275.0501708984375, - 165.3000030517578, - 293.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocp", - "origin": [ - 165.3000030517578, - 282.0501708984375 - ], - "bbox": [ - 165.3000030517578, - 275.5501708984375, - 172.0, - 294.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 172.0, - 282.0501708984375 - ], - "bbox": [ - 172.0, - 275.0501708984375, - 176.39999389648438, - 293.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\\[", - "origin": [ - 176.39999389648438, - 282.0501708984375 - ], - "bbox": [ - 176.39999389648438, - 269.1501770019531, - 179.5, - 303.85015869140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "3XbIwd", - "origin": [ - 179.5, - 282.0501708984375 - ], - "bbox": [ - 179.5, - 267.1501770019531, - 196.70001220703125, - 292.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "°p", - "origin": [ - 196.70001220703125, - 282.0501708984375 - ], - "bbox": [ - 196.70001220703125, - 275.5501708984375, - 203.30001831054688, - 294.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01+", - "origin": [ - 203.30001831054688, - 282.0501708984375 - ], - "bbox": [ - 203.30001831054688, - 279.35015869140625, - 216.9000244140625, - 291.4501647949219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¥f8FJR1£\u001dEG£\u0018ALtLADX’HJALY³Re£aXIM]FJheEG£\u0018tLMPXP`¬YPR1O\u001dSTALHJALR1O\u001dE1tBYPR1FIFJMPtDEcHJADR1O\u0018XP`BE1O\u0018S\r”Q•\u001dE1OQHJ•aK", - "origin": [ - 216.9000244140625, - 282.0501708984375 - ], - "bbox": [ - 216.9000244140625, - 275.5501708984375, - 484.00018310546875, - 294.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.3000030517578, - 267.1501770019531, - 484.00018310546875, - 303.85015869140625 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 505.79998779296875, - 275.5501708984375, - 520.9999389648438, - 294.4501647949219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TXIALYPX", - "origin": [ - 505.79998779296875, - 282.0501708984375 - ], - "bbox": [ - 505.79998779296875, - 275.5501708984375, - 520.9999389648438, - 294.4501647949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 505.79998779296875, - 275.5501708984375, - 520.9999389648438, - 294.4501647949219 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 100.5999755859375, - 278.0502014160156, - 520.7999877929688, - 314.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 100.5999755859375, - 292.9501953125 - ], - "bbox": [ - 100.5999755859375, - 278.0502014160156, - 131.29998779296875, - 302.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NEGF", - "origin": [ - 131.29998779296875, - 292.9501953125 - ], - "bbox": [ - 131.29998779296875, - 286.4501953125, - 143.49998474121094, - 305.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 143.49998474121094, - 292.9501953125 - ], - "bbox": [ - 143.49998474121094, - 290.25018310546875, - 147.19998168945312, - 302.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 147.19998168945312, - 292.9501953125 - ], - "bbox": [ - 147.19998168945312, - 286.4501953125, - 162.0999755859375, - 305.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.5999755859375, - 278.0502014160156, - 162.0999755859375, - 305.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "01+", - "origin": [ - 164.19998168945312, - 292.9501953125 - ], - "bbox": [ - 164.19998168945312, - 290.25018310546875, - 168.79998779296875, - 302.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "go", - "origin": [ - 168.79998779296875, - 292.9501953125 - ], - "bbox": [ - 168.79998779296875, - 286.4501953125, - 173.69998168945312, - 305.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0", - "origin": [ - 173.69998168945312, - 292.9501953125 - ], - "bbox": [ - 173.69998168945312, - 290.25018310546875, - 177.8999786376953, - 302.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Tš", - "origin": [ - 177.8999786376953, - 292.9501953125 - ], - "bbox": [ - 177.8999786376953, - 286.4501953125, - 182.8999786376953, - 305.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 164.19998168945312, - 286.4501953125, - 182.8999786376953, - 305.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-\u00181+", - "origin": [ - 184.99998474121094, - 292.9501953125 - ], - "bbox": [ - 184.99998474121094, - 290.25018310546875, - 194.09999084472656, - 302.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 194.09999084472656, - 292.9501953125 - ], - "bbox": [ - 194.09999084472656, - 286.4501953125, - 198.79998779296875, - 305.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": " [", - "origin": [ - 198.79998779296875, - 292.9501953125 - ], - "bbox": [ - 198.79998779296875, - 280.0502014160156, - 203.59999084472656, - 314.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 184.99998474121094, - 280.0502014160156, - 203.59999084472656, - 314.75018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "X>I>d", - "origin": [ - 213.19998168945312, - 292.9501953125 - ], - "bbox": [ - 213.19998168945312, - 278.0502014160156, - 222.5999755859375, - 302.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"p", - "origin": [ - 222.5999755859375, - 292.9501953125 - ], - "bbox": [ - 222.5999755859375, - 286.4501953125, - 230.0999755859375, - 305.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0101+", - "origin": [ - 230.0999755859375, - 292.9501953125 - ], - "bbox": [ - 230.0999755859375, - 290.25018310546875, - 243.69998168945312, - 302.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0018\u001e", - "origin": [ - 243.69998168945312, - 292.9501953125 - ], - "bbox": [ - 243.69998168945312, - 292.75018310546875, - 253.69998168945312, - 301.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "B•\u001dEGOgHJ•aK", - "origin": [ - 253.69998168945312, - 292.9501953125 - ], - "bbox": [ - 253.69998168945312, - 286.4501953125, - 284.0999755859375, - 305.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 213.19998168945312, - 278.0502014160156, - 284.0999755859375, - 305.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPOQHsE1O\u0018d1tLMPKNMPOQH\u0014EGO\u001dS�ALOQHJM]FI ¸M]FJM]O\u0018YPM  ºFJReK", - "origin": [ - 296.79998779296875, - 292.9501953125 - ], - "bbox": [ - 296.79998779296875, - 286.4501953125, - 438.6000061035156, - 305.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 296.79998779296875, - 286.4501953125, - 438.6000061035156, - 305.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "YPtDE1XIXIALYZEGt¢X’HsEcHJADX’HJALYPX", - "origin": [ - 451.5, - 292.9501953125 - ], - "bbox": [ - 451.5, - 286.4501953125, - 520.7999877929688, - 305.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 451.5, - 286.4501953125, - 520.7999877929688, - 305.3501892089844 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 100.60000610351562, - 288.9502258300781, - 197.00001525878906, - 316.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 100.60000610351562, - 303.8502197265625 - ], - "bbox": [ - 100.60000610351562, - 288.9502258300781, - 131.30001831054688, - 313.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 131.30001831054688, - 303.8502197265625 - ], - "bbox": [ - 131.30001831054688, - 297.3502197265625, - 141.50001525878906, - 316.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 141.50001525878906, - 303.8502197265625 - ], - "bbox": [ - 141.50001525878906, - 301.15020751953125, - 145.20001220703125, - 313.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 145.20001220703125, - 303.8502197265625 - ], - "bbox": [ - 145.20001220703125, - 297.3502197265625, - 160.10000610351562, - 316.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.60000610351562, - 288.9502258300781, - 160.10000610351562, - 316.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-+101\u0018", - "origin": [ - 162.20001220703125, - 303.8502197265625 - ], - "bbox": [ - 162.20001220703125, - 301.15020751953125, - 175.9000244140625, - 313.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gš", - "origin": [ - 175.9000244140625, - 303.8502197265625 - ], - "bbox": [ - 175.9000244140625, - 297.3502197265625, - 180.80001831054688, - 316.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.20001220703125, - 297.3502197265625, - 180.80001831054688, - 316.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p1n/qQo", - "origin": [ - 183.00001525878906, - 303.8502197265625 - ], - "bbox": [ - 183.00001525878906, - 297.3502197265625, - 197.00001525878906, - 316.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 183.00001525878906, - 297.3502197265625, - 197.00001525878906, - 316.2502136230469 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 71.70001220703125, - 307.8502197265625, - 90.60002136230469, - 327.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.70001220703125, - 314.8502197265625 - ], - "bbox": [ - 71.70001220703125, - 307.8502197265625, - 71.70001220703125, - 326.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocm", - "origin": [ - 71.70001220703125, - 314.8502197265625 - ], - "bbox": [ - 71.70001220703125, - 308.3502197265625, - 78.40001678466797, - 327.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.40001678466797, - 314.8502197265625 - ], - "bbox": [ - 78.40001678466797, - 307.8502197265625, - 82.70001983642578, - 326.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "'.", - "origin": [ - 82.70001983642578, - 314.8502197265625 - ], - "bbox": [ - 82.70001983642578, - 312.15020751953125, - 90.60002136230469, - 324.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.70001220703125, - 307.8502197265625, - 90.60002136230469, - 327.2502136230469 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 102.80001068115234, - 308.3502197265625, - 158.00001525878906, - 327.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "AžFsEGFsSTA", - "origin": [ - 102.80001068115234, - 314.8502197265625 - ], - "bbox": [ - 102.80001068115234, - 308.3502197265625, - 122.20001983642578, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.80001068115234, - 308.3502197265625, - 122.20001983642578, - 327.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ".", - "origin": [ - 127.70001220703125, - 314.8502197265625 - ], - "bbox": [ - 127.70001220703125, - 312.15020751953125, - 127.70001220703125, - 324.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡«\rp", - "origin": [ - 127.70001220703125, - 314.8502197265625 - ], - "bbox": [ - 127.70001220703125, - 308.3502197265625, - 144.40000915527344, - 327.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01\u0018", - "origin": [ - 144.40000915527344, - 314.8502197265625 - ], - "bbox": [ - 144.40000915527344, - 312.15020751953125, - 158.00001525878906, - 324.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.70001220703125, - 308.3502197265625, - 158.00001525878906, - 327.2502136230469 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 165.50001525878906, - 308.15020751953125, - 172.00001525878906, - 327.0502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 165.50001525878906, - 314.65020751953125 - ], - "bbox": [ - 165.50001525878906, - 308.15020751953125, - 172.00001525878906, - 327.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.50001525878906, - 308.15020751953125, - 172.00001525878906, - 327.0502014160156 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 177.20001220703125, - 308.3502197265625, - 303.20001220703125, - 327.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MBALOQHJM]FJCTFJM]HsEGHJALReO^RG W”Q•\u001dEGOQHJ•\u0018K", - "origin": [ - 177.20001220703125, - 314.8502197265625 - ], - "bbox": [ - 177.20001220703125, - 308.3502197265625, - 280.9999694824219, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 177.20001220703125, - 308.3502197265625, - 280.9999694824219, - 327.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNMPY", - "origin": [ - 291.3000183105469, - 314.8502197265625 - ], - "bbox": [ - 291.3000183105469, - 308.3502197265625, - 303.20001220703125, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 291.3000183105469, - 308.3502197265625, - 303.20001220703125, - 327.2502136230469 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 312.3000183105469, - 308.3502197265625, - 338.5000305175781, - 327.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1OaALYPXPvW‘", - "origin": [ - 312.3000183105469, - 314.8502197265625 - ], - "bbox": [ - 312.3000183105469, - 308.3502197265625, - 338.5000305175781, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.3000183105469, - 308.3502197265625, - 338.5000305175781, - 327.2502136230469 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 350.4000244140625, - 299.9502258300781, - 522.1000366210938, - 336.65020751953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M¯FJM·SaR¡‘6MBX’HsE1O\u0018S\u001d±", - "origin": [ - 350.4000244140625, - 314.8502197265625 - ], - "bbox": [ - 350.4000244140625, - 308.3502197265625, - 413.10003662109375, - 327.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Z€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 413.10003662109375, - 314.8502197265625 - ], - "bbox": [ - 413.10003662109375, - 299.9502258300781, - 452.0000305175781, - 324.8502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ªEGF", - "origin": [ - 452.0000305175781, - 314.8502197265625 - ], - "bbox": [ - 452.0000305175781, - 308.3502197265625, - 462.0000305175781, - 327.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 462.0000305175781, - 314.8502197265625 - ], - "bbox": [ - 462.0000305175781, - 312.15020751953125, - 465.7000427246094, - 324.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADhrv", - "origin": [ - 465.7000427246094, - 314.8502197265625 - ], - "bbox": [ - 465.7000427246094, - 308.3502197265625, - 480.60003662109375, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.4000244140625, - 299.9502258300781, - 480.60003662109375, - 327.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "01\u0018-0", - "origin": [ - 482.70001220703125, - 314.8502197265625 - ], - "bbox": [ - 482.70001220703125, - 312.15020751953125, - 491.8000183105469, - 324.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 482.70001220703125, - 312.15020751953125, - 491.8000183105469, - 324.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 496.3000183105469, - 314.8502197265625 - ], - "bbox": [ - 496.3000183105469, - 301.9502258300781, - 496.3000183105469, - 336.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Tš", - "origin": [ - 496.3000183105469, - 314.8502197265625 - ], - "bbox": [ - 496.3000183105469, - 308.3502197265625, - 501.3000183105469, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 496.3000183105469, - 301.9502258300781, - 501.3000183105469, - 336.65020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-\u0018", - "origin": [ - 503.5000305175781, - 314.8502197265625 - ], - "bbox": [ - 503.5000305175781, - 312.15020751953125, - 508.0000305175781, - 324.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 508.0000305175781, - 314.8502197265625 - ], - "bbox": [ - 508.0000305175781, - 308.3502197265625, - 512.7000122070312, - 327.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",+", - "origin": [ - 512.7000122070312, - 314.8502197265625 - ], - "bbox": [ - 512.7000122070312, - 312.15020751953125, - 517.1000366210938, - 324.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "T`", - "origin": [ - 517.1000366210938, - 314.8502197265625 - ], - "bbox": [ - 517.1000366210938, - 308.3502197265625, - 522.1000366210938, - 327.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 503.5000305175781, - 308.3502197265625, - 522.1000366210938, - 327.2502136230469 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 100.30001831054688, - 318.8502197265625, - 183.8000030517578, - 338.2502136230469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "HJR\u0010EGC\u0018CrMZEcF4ADO", - "origin": [ - 100.30001831054688, - 325.8502197265625 - ], - "bbox": [ - 100.30001831054688, - 319.3502197265625, - 144.6000213623047, - 338.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.30001831054688, - 319.3502197265625, - 144.6000213623047, - 338.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 152.80001831054688, - 325.8502197265625 - ], - "bbox": [ - 152.80001831054688, - 318.8502197265625, - 152.80001831054688, - 337.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-M] ™š", - "origin": [ - 152.80001831054688, - 325.8502197265625 - ], - "bbox": [ - 152.80001831054688, - 319.3502197265625, - 167.00001525878906, - 338.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.80001831054688, - 318.8502197265625, - 167.00001525878906, - 338.2502136230469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 172.80001831054688, - 325.8502197265625 - ], - "bbox": [ - 172.80001831054688, - 318.8502197265625, - 172.80001831054688, - 337.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žoZp", - "origin": [ - 172.80001831054688, - 325.8502197265625 - ], - "bbox": [ - 172.80001831054688, - 319.3502197265625, - 179.40000915527344, - 338.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 179.40000915527344, - 325.8502197265625 - ], - "bbox": [ - 179.40000915527344, - 318.8502197265625, - 183.8000030517578, - 337.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 172.80001831054688, - 318.8502197265625, - 183.8000030517578, - 338.2502136230469 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 71.70001983642578, - 329.7502136230469, - 142.50001525878906, - 349.15020751953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.70001983642578, - 336.7502136230469 - ], - "bbox": [ - 71.70001983642578, - 329.7502136230469, - 71.70001983642578, - 348.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žoZn", - "origin": [ - 71.70001983642578, - 336.7502136230469 - ], - "bbox": [ - 71.70001983642578, - 330.2502136230469, - 78.30001831054688, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.30001831054688, - 336.7502136230469 - ], - "bbox": [ - 78.30001831054688, - 329.7502136230469, - 82.70001983642578, - 348.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N¼E1XIXIA", - "origin": [ - 82.70001983642578, - 336.7502136230469 - ], - "bbox": [ - 82.70001983642578, - 330.2502136230469, - 108.70001983642578, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001f�", - "origin": [ - 108.70001983642578, - 336.7502136230469 - ], - "bbox": [ - 108.70001983642578, - 336.5502014160156, - 114.5000228881836, - 345.2502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.70001983642578, - 329.7502136230469, - 114.5000228881836, - 349.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1O\u0018S", - "origin": [ - 124.50001525878906, - 336.7502136230469 - ], - "bbox": [ - 124.50001525878906, - 330.2502136230469, - 134.20001220703125, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\r.", - "origin": [ - 134.20001220703125, - 336.7502136230469 - ], - "bbox": [ - 134.20001220703125, - 334.0502014160156, - 142.50001525878906, - 346.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.50001525878906, - 330.2502136230469, - 142.50001525878906, - 349.15020751953125 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 154.6000213623047, - 321.8502197265625, - 392.10003662109375, - 358.5502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ALFsEcFsSaA", - "origin": [ - 154.6000213623047, - 336.7502136230469 - ], - "bbox": [ - 154.6000213623047, - 330.2502136230469, - 174.10003662109375, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "I.", - "origin": [ - 174.10003662109375, - 336.7502136230469 - ], - "bbox": [ - 174.10003662109375, - 334.0502014160156, - 180.00003051757812, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡«!p", - "origin": [ - 180.00003051757812, - 336.7502136230469 - ], - "bbox": [ - 180.00003051757812, - 330.2502136230469, - 197.00003051757812, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010", - "origin": [ - 197.00003051757812, - 336.7502136230469 - ], - "bbox": [ - 197.00003051757812, - 334.0502014160156, - 206.00003051757812, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1i", - "origin": [ - 206.00003051757812, - 336.7502136230469 - ], - "bbox": [ - 206.00003051757812, - 330.2502136230469, - 210.50003051757812, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c€L?vuNSPd", - "origin": [ - 210.50003051757812, - 336.7502136230469 - ], - "bbox": [ - 210.50003051757812, - 321.8502197265625, - 238.10000610351562, - 346.7502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001f\r", - "origin": [ - 238.10000610351562, - 336.7502136230469 - ], - "bbox": [ - 238.10000610351562, - 336.5502014160156, - 243.90000915527344, - 345.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ",:\u0018@\u000ed", - "origin": [ - 243.90000915527344, - 336.7502136230469 - ], - "bbox": [ - 243.90000915527344, - 321.8502197265625, - 259.5, - 346.7502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")()\"", - "origin": [ - 259.5, - 336.7502136230469 - ], - "bbox": [ - 259.5, - 334.0502014160156, - 270.29998779296875, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0013 ", - "origin": [ - 270.29998779296875, - 336.7502136230469 - ], - "bbox": [ - 270.29998779296875, - 336.5502014160156, - 275.3999938964844, - 345.2502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";pemeq", - "origin": [ - 275.3999938964844, - 336.7502136230469 - ], - "bbox": [ - 275.3999938964844, - 330.2502136230469, - 293.0, - 349.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.6000213623047, - 321.8502197265625, - 293.0, - 349.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 301.20001220703125, - 336.7502136230469 - ], - "bbox": [ - 301.20001220703125, - 323.8502197265625, - 301.20001220703125, - 358.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 301.20001220703125, - 336.7502136230469 - ], - "bbox": [ - 301.20001220703125, - 321.8502197265625, - 335.0000305175781, - 346.7502136230469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WEcF", - "origin": [ - 335.0000305175781, - 336.7502136230469 - ], - "bbox": [ - 335.0000305175781, - 330.2502136230469, - 345.20001220703125, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 345.20001220703125, - 336.7502136230469 - ], - "bbox": [ - 345.20001220703125, - 334.0502014160156, - 348.9000244140625, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 348.9000244140625, - 336.7502136230469 - ], - "bbox": [ - 348.9000244140625, - 330.2502136230469, - 363.8000183105469, - 349.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.20001220703125, - 321.8502197265625, - 363.8000183105469, - 358.5502014160156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”g•\u0018E1OQHIklC", - "origin": [ - 365.9000244140625, - 336.7502136230469 - ], - "bbox": [ - 365.9000244140625, - 330.2502136230469, - 392.10003662109375, - 349.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.9000244140625, - 330.2502136230469, - 392.10003662109375, - 349.15020751953125 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 397.3000183105469, - 330.0502014160156, - 402.6000061035156, - 348.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 397.3000183105469, - 336.5502014160156 - ], - "bbox": [ - 397.3000183105469, - 330.0502014160156, - 397.3000183105469, - 348.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*;", - "origin": [ - 397.3000183105469, - 336.5502014160156 - ], - "bbox": [ - 397.3000183105469, - 333.8501892089844, - 402.6000061035156, - 345.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.3000183105469, - 330.0502014160156, - 402.6000061035156, - 348.9501953125 - ] - } - ] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 407.1000061035156, - 323.8502197265625, - 439.1000061035156, - 358.5502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 407.1000061035156, - 336.7502136230469 - ], - "bbox": [ - 407.1000061035156, - 334.0502014160156, - 407.1000061035156, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ei", - "origin": [ - 407.1000061035156, - 336.7502136230469 - ], - "bbox": [ - 407.1000061035156, - 330.2502136230469, - 411.70001220703125, - 349.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 411.70001220703125, - 336.7502136230469 - ], - "bbox": [ - 411.70001220703125, - 334.0502014160156, - 416.20001220703125, - 346.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/pQoZn", - "origin": [ - 416.20001220703125, - 336.7502136230469 - ], - "bbox": [ - 416.20001220703125, - 330.2502136230469, - 429.9000244140625, - 349.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 407.1000061035156, - 330.2502136230469, - 429.9000244140625, - 349.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y�W", - "origin": [ - 434.3999938964844, - 336.7502136230469 - ], - "bbox": [ - 434.3999938964844, - 323.8502197265625, - 439.1000061035156, - 358.5502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 434.3999938964844, - 323.8502197265625, - 439.1000061035156, - 358.5502014160156 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 71.69998168945312, - 332.8502197265625, - 382.3999938964844, - 369.5502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 71.69998168945312, - 347.7502136230469 - ], - "bbox": [ - 71.69998168945312, - 340.7502136230469, - 71.69998168945312, - 359.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocq", - "origin": [ - 71.69998168945312, - 347.7502136230469 - ], - "bbox": [ - 71.69998168945312, - 341.2502136230469, - 78.39998626708984, - 360.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39998626708984, - 347.7502136230469 - ], - "bbox": [ - 78.39998626708984, - 340.7502136230469, - 82.69998931884766, - 359.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016¨", - "origin": [ - 82.69998931884766, - 347.7502136230469 - ], - "bbox": [ - 82.69998931884766, - 341.2502136230469, - 90.89999389648438, - 360.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69998168945312, - 340.7502136230469, - 90.89999389648438, - 360.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "H\u0018ÀBRQRG ºH", - "origin": [ - 92.89997863769531, - 347.7502136230469 - ], - "bbox": [ - 92.89997863769531, - 341.2502136230469, - 117.09998321533203, - 360.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/.", - "origin": [ - 117.09998321533203, - 347.7502136230469 - ], - "bbox": [ - 117.09998321533203, - 345.0502014160156, - 124.09998321533203, - 357.15020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.89997863769531, - 341.2502136230469, - 124.09998321533203, - 360.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 134.3999786376953, - 347.7502136230469 - ], - "bbox": [ - 134.3999786376953, - 341.2502136230469, - 134.3999786376953, - 360.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010", - "origin": [ - 134.3999786376953, - 347.7502136230469 - ], - "bbox": [ - 134.3999786376953, - 345.0502014160156, - 143.49998474121094, - 357.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eq", - "origin": [ - 143.49998474121094, - 347.7502136230469 - ], - "bbox": [ - 143.49998474121094, - 341.2502136230469, - 148.09999084472656, - 360.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "'\u001a", - "origin": [ - 148.09999084472656, - 347.7502136230469 - ], - "bbox": [ - 148.09999084472656, - 345.0502014160156, - 155.99998474121094, - 357.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "s.#€", - "origin": [ - 155.99998474121094, - 347.7502136230469 - ], - "bbox": [ - 155.99998474121094, - 332.8502197265625, - 166.3999786376953, - 357.7502136230469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.3999786376953, - 332.8502197265625, - 166.3999786376953, - 360.15020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "6", - "origin": [ - 176.69998168945312, - 347.7502136230469 - ], - "bbox": [ - 176.69998168945312, - 345.0502014160156, - 176.69998168945312, - 357.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI785h5d;€ƒB", - "origin": [ - 78.29998016357422, - 358.65020751953125 - ], - "bbox": [ - 78.29998016357422, - 351.65020751953125, - 82.69998168945312, - 370.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tL§PM¡À4k", - "origin": [ - 82.69998168945312, - 358.65020751953125 - ], - "bbox": [ - 82.69998168945312, - 352.15020751953125, - 117.29998016357422, - 371.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.69998168945312, - 351.65020751953125, - 117.29998016357422, - 371.0502014160156 - ] - } - ] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 130.3999786376953, - 343.7502136230469, - 405.2999572753906, - 380.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 130.3999786376953, - 358.65020751953125 - ], - "bbox": [ - 130.3999786376953, - 352.15020751953125, - 130.3999786376953, - 371.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010-+\r2", - "origin": [ - 130.3999786376953, - 358.65020751953125 - ], - "bbox": [ - 130.3999786376953, - 355.9501953125, - 152.19998168945312, - 368.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ado€W?vuNSGd", - "origin": [ - 152.19998168945312, - 358.65020751953125 - ], - "bbox": [ - 152.19998168945312, - 343.7502136230469, - 182.5999755859375, - 368.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u001e\u001a", - "origin": [ - 182.5999755859375, - 358.65020751953125 - ], - "bbox": [ - 182.5999755859375, - 355.9501953125, - 188.19998168945312, - 368.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "„d", - "origin": [ - 188.19998168945312, - 358.65020751953125 - ], - "bbox": [ - 188.19998168945312, - 343.7502136230469, - 195.49998474121094, - 368.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "54", - "origin": [ - 195.49998474121094, - 358.65020751953125 - ], - "bbox": [ - 195.49998474121094, - 355.9501953125, - 198.3999786376953, - 368.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0017_`2NC9?fdƒmo?f:", - "origin": [ - 78.2999496459961, - 369.65020751953125 - ], - "bbox": [ - 78.2999496459961, - 362.65020751953125, - 82.699951171875, - 381.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.699951171875, - 362.65020751953125, - 82.699951171875, - 382.0502014160156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "$", - "origin": [ - 90.49995422363281, - 369.65020751953125 - ], - "bbox": [ - 90.49995422363281, - 366.9501953125, - 90.49995422363281, - 379.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/E1KNKNM]F", - "origin": [ - 90.49995422363281, - 369.65020751953125 - ], - "bbox": [ - 90.49995422363281, - 363.15020751953125, - 119.29995727539062, - 382.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u000f\u000b", - "origin": [ - 119.29995727539062, - 369.65020751953125 - ], - "bbox": [ - 119.29995727539062, - 369.4501953125, - 127.09996032714844, - 378.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ÿo", - "origin": [ - 127.09996032714844, - 369.65020751953125 - ], - "bbox": [ - 127.09996032714844, - 363.15020751953125, - 139.89996337890625, - 382.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&\u0018", - "origin": [ - 139.89996337890625, - 369.65020751953125 - ], - "bbox": [ - 139.89996337890625, - 366.9501953125, - 144.09996032714844, - 379.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em", - "origin": [ - 144.09996032714844, - 369.65020751953125 - ], - "bbox": [ - 144.09996032714844, - 363.15020751953125, - 148.69996643066406, - 382.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 148.69996643066406, - 369.65020751953125 - ], - "bbox": [ - 148.69996643066406, - 356.7502136230469, - 153.09996032714844, - 391.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 90.49995422363281, - 356.7502136230469, - 153.09996032714844, - 391.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "6", - "origin": [ - 163.09994506835938, - 369.65020751953125 - ], - "bbox": [ - 163.09994506835938, - 366.9501953125, - 163.09994506835938, - 379.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆIN8=1:\u0018@‡CESaI\u001eh", - "origin": [ - 163.09994506835938, - 369.65020751953125 - ], - "bbox": [ - 163.09994506835938, - 354.7502136230469, - 206.2999267578125, - 379.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "%\u001b", - "origin": [ - 206.2999267578125, - 369.65020751953125 - ], - "bbox": [ - 206.2999267578125, - 366.9501953125, - 214.39993286132812, - 379.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "b@A2>=1:", - "origin": [ - 214.39993286132812, - 369.65020751953125 - ], - "bbox": [ - 214.39993286132812, - 354.7502136230469, - 232.49993896484375, - 379.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&4", - "origin": [ - 232.49993896484375, - 369.65020751953125 - ], - "bbox": [ - 232.49993896484375, - 366.9501953125, - 236.69993591308594, - 379.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.09994506835938, - 354.7502136230469, - 236.69993591308594, - 379.65020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "mo?f:J‚y6^S-C\u0015I7B1u", - "origin": [ - 246.09994506835938, - 369.65020751953125 - ], - "bbox": [ - 246.09994506835938, - 354.7502136230469, - 290.0999450683594, - 379.65020751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.09994506835938, - 354.7502136230469, - 290.0999450683594, - 379.65020751953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "I#hemo?*:-INBD6\u0015:DSgI#h", - "origin": [ - 299.0999450683594, - 369.65020751953125 - ], - "bbox": [ - 299.0999450683594, - 354.7502136230469, - 352.9999694824219, - 379.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "%\u001b", - "origin": [ - 352.9999694824219, - 369.65020751953125 - ], - "bbox": [ - 352.9999694824219, - 366.9501953125, - 361.0999755859375, - 379.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "7@A2>=1:g6^8�€W?vuNS16E=PS", - "origin": [ - 361.0999755859375, - 369.65020751953125 - ], - "bbox": [ - 361.0999755859375, - 354.7502136230469, - 425.699951171875, - 379.65020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\rV", - "origin": [ - 425.699951171875, - 369.65020751953125 - ], - "bbox": [ - 425.699951171875, - 356.7502136230469, - 433.7999572753906, - 391.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "wÀBEGFJh1EGFsS?v\u0016ÀBEGFJh1EGFsS", - "origin": [ - 433.7999572753906, - 369.65020751953125 - ], - "bbox": [ - 433.7999572753906, - 363.15020751953125, - 506.0999450683594, - 382.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "!\u0012", - "origin": [ - 506.0999450683594, - 369.65020751953125 - ], - "bbox": [ - 506.0999450683594, - 369.4501953125, - 515.0999755859375, - 378.15020751953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"š", - "origin": [ - 515.0999755859375, - 369.65020751953125 - ], - "bbox": [ - 515.0999755859375, - 363.15020751953125, - 522.5999755859375, - 382.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 299.0999450683594, - 354.7502136230469, - 522.5999755859375, - 391.4501953125 - ] - } - ] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 100.49993896484375, - 374.15020751953125, - 117.89993286132812, - 393.0502014160156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "fuFJMPXIX", - "origin": [ - 100.49993896484375, - 380.65020751953125 - ], - "bbox": [ - 100.49993896484375, - 374.15020751953125, - 117.89993286132812, - 393.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.49993896484375, - 374.15020751953125, - 117.89993286132812, - 393.0502014160156 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 73.79993438720703, - 376.65020751953125, - 521.4999389648438, - 403.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 73.79993438720703, - 391.5502014160156 - ], - "bbox": [ - 73.79993438720703, - 385.0502014160156, - 73.79993438720703, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 73.79993438720703, - 391.5502014160156 - ], - "bbox": [ - 73.79993438720703, - 388.8501892089844, - 78.29993438720703, - 400.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29993438720703, - 391.5502014160156 - ], - "bbox": [ - 78.29993438720703, - 384.5502014160156, - 82.69993591308594, - 402.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c+", - "origin": [ - 82.69993591308594, - 391.5502014160156 - ], - "bbox": [ - 82.69993591308594, - 376.65020751953125, - 90.59993743896484, - 401.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TR1F", - "origin": [ - 90.59993743896484, - 391.5502014160156 - ], - "bbox": [ - 90.59993743896484, - 385.0502014160156, - 100.09993743896484, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 100.09993743896484, - 391.5502014160156 - ], - "bbox": [ - 100.09993743896484, - 376.65020751953125, - 103.79993438720703, - 401.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO", - "origin": [ - 103.79993438720703, - 391.5502014160156 - ], - "bbox": [ - 103.79993438720703, - 385.0502014160156, - 111.19993591308594, - 403.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79993438720703, - 376.65020751953125, - 111.19993591308594, - 403.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 119.39993286132812, - 391.5502014160156 - ], - "bbox": [ - 119.39993286132812, - 384.5502014160156, - 119.39993286132812, - 402.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "µ@", - "origin": [ - 119.39993286132812, - 391.5502014160156 - ], - "bbox": [ - 119.39993286132812, - 385.0502014160156, - 129.2999267578125, - 403.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.39993286132812, - 384.5502014160156, - 129.2999267578125, - 403.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 139.5999298095703, - 391.5502014160156 - ], - "bbox": [ - 139.5999298095703, - 385.0502014160156, - 139.5999298095703, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 139.5999298095703, - 391.5502014160156 - ], - "bbox": [ - 139.5999298095703, - 388.8501892089844, - 148.5999298095703, - 400.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m^«E1•aXJE1tWXIM¯HJXPvSTADXIY¯FJM]HJM¡d1FsEZhgAžH=", - "origin": [ - 148.5999298095703, - 391.5502014160156 - ], - "bbox": [ - 148.5999298095703, - 385.0502014160156, - 270.09991455078125, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Zzr:<=PCE[AB<:DSpIN8", - "origin": [ - 270.09991455078125, - 391.5502014160156 - ], - "bbox": [ - 270.09991455078125, - 376.65020751953125, - 319.4999084472656, - 401.5502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.5999298095703, - 376.65020751953125, - 319.4999084472656, - 403.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ">", - "origin": [ - 328.699951171875, - 391.5502014160156 - ], - "bbox": [ - 328.699951171875, - 388.8501892089844, - 328.699951171875, - 400.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "L[f2N8fCE[v0", - "origin": [ - 328.699951171875, - 391.5502014160156 - ], - "bbox": [ - 328.699951171875, - 376.65020751953125, - 357.7999572753906, - 401.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\"�", - "origin": [ - 357.7999572753906, - 391.5502014160156 - ], - "bbox": [ - 357.7999572753906, - 391.3501892089844, - 369.2999572753906, - 400.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒB<27M569CEu", - "origin": [ - 369.2999572753906, - 391.5502014160156 - ], - "bbox": [ - 369.2999572753906, - 376.65020751953125, - 393.89996337890625, - 401.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¢MPS", - "origin": [ - 393.89996337890625, - 391.5502014160156 - ], - "bbox": [ - 393.89996337890625, - 385.0502014160156, - 406.0999755859375, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "#�", - "origin": [ - 406.0999755859375, - 391.5502014160156 - ], - "bbox": [ - 406.0999755859375, - 391.3501892089844, - 414.39996337890625, - 400.0502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 328.699951171875, - 376.65020751953125, - 414.39996337890625, - 403.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ".", - "origin": [ - 424.5999450683594, - 391.5502014160156 - ], - "bbox": [ - 424.5999450683594, - 388.8501892089844, - 424.5999450683594, - 400.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BReK\"£rM]FJR1¿\u0019EGO\u001dS¢@", - "origin": [ - 424.5999450683594, - 391.5502014160156 - ], - "bbox": [ - 424.5999450683594, - 385.0502014160156, - 487.7999572753906, - 403.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "$\u000b", - "origin": [ - 487.7999572753906, - 391.5502014160156 - ], - "bbox": [ - 487.7999572753906, - 391.3501892089844, - 498.199951171875, - 400.0502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“EcFJRetž ", - "origin": [ - 498.199951171875, - 391.5502014160156 - ], - "bbox": [ - 498.199951171875, - 385.0502014160156, - 521.4999389648438, - 403.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.5999450683594, - 385.0502014160156, - 521.4999389648438, - 403.9501953125 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 100.99993896484375, - 387.5502014160156, - 272.49993896484375, - 424.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 100.99993896484375, - 402.4501953125 - ], - "bbox": [ - 100.99993896484375, - 389.5502014160156, - 100.99993896484375, - 424.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "w¶BM¯‘—˜6RGF", - "origin": [ - 100.99993896484375, - 402.4501953125 - ], - "bbox": [ - 100.99993896484375, - 395.9501953125, - 135.2999267578125, - 414.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 135.2999267578125, - 402.4501953125 - ], - "bbox": [ - 135.2999267578125, - 387.5502014160156, - 138.9999237060547, - 412.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "?v", - "origin": [ - 138.9999237060547, - 402.4501953125 - ], - "bbox": [ - 138.9999237060547, - 395.9501953125, - 144.4999237060547, - 414.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "W+", - "origin": [ - 144.4999237060547, - 402.4501953125 - ], - "bbox": [ - 144.4999237060547, - 387.5502014160156, - 150.7999267578125, - 412.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gCaFJALO\u0018d1M]F", - "origin": [ - 150.7999267578125, - 402.4501953125 - ], - "bbox": [ - 150.7999267578125, - 395.9501953125, - 180.69992065429688, - 414.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.99993896484375, - 387.5502014160156, - 180.69992065429688, - 424.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 191.59994506835938, - 402.4501953125 - ], - "bbox": [ - 191.59994506835938, - 389.5502014160156, - 191.59994506835938, - 424.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 191.59994506835938, - 402.4501953125 - ], - "bbox": [ - 191.59994506835938, - 387.5502014160156, - 225.49993896484375, - 412.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 225.49993896484375, - 402.4501953125 - ], - "bbox": [ - 225.49993896484375, - 395.9501953125, - 235.69993591308594, - 414.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 235.69993591308594, - 402.4501953125 - ], - "bbox": [ - 235.69993591308594, - 399.75018310546875, - 239.39993286132812, - 411.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 239.39993286132812, - 402.4501953125 - ], - "bbox": [ - 239.39993286132812, - 395.9501953125, - 254.2999267578125, - 414.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.59994506835938, - 387.5502014160156, - 254.2999267578125, - 424.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "dGFIk=”QY", - "origin": [ - 256.2999572753906, - 402.4501953125 - ], - "bbox": [ - 256.2999572753906, - 395.9501953125, - 272.49993896484375, - 414.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 256.2999572753906, - 395.9501953125, - 272.49993896484375, - 414.8501892089844 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 281.199951171875, - 389.5502014160156, - 313.1999816894531, - 424.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 281.199951171875, - 402.4501953125 - ], - "bbox": [ - 281.199951171875, - 399.75018310546875, - 281.199951171875, - 411.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ei", - "origin": [ - 281.199951171875, - 402.4501953125 - ], - "bbox": [ - 281.199951171875, - 395.9501953125, - 285.7999572753906, - 414.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-01\u001810-01\u0018", - "origin": [ - 285.7999572753906, - 402.4501953125 - ], - "bbox": [ - 285.7999572753906, - 399.75018310546875, - 308.5999755859375, - 411.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "XW", - "origin": [ - 308.5999755859375, - 402.4501953125 - ], - "bbox": [ - 308.5999755859375, - 389.5502014160156, - 313.1999816894531, - 424.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 281.199951171875, - 389.5502014160156, - 313.1999816894531, - 424.25018310546875 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 73.7999496459961, - 398.65020751953125, - 230.49993896484375, - 425.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "pgo", - "origin": [ - 73.7999496459961, - 413.5502014160156 - ], - "bbox": [ - 73.7999496459961, - 407.0502014160156, - 78.699951171875, - 425.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.7999496459961, - 407.0502014160156, - 78.699951171875, - 425.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ">", - "origin": [ - 82.699951171875, - 413.5502014160156 - ], - "bbox": [ - 82.699951171875, - 406.5502014160156, - 82.699951171875, - 424.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010@·RZ‘", - "origin": [ - 82.699951171875, - 413.5502014160156 - ], - "bbox": [ - 82.699951171875, - 407.0502014160156, - 101.69994354248047, - 425.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ",)", - "origin": [ - 101.69994354248047, - 413.5502014160156 - ], - "bbox": [ - 101.69994354248047, - 398.65020751953125, - 108.39994049072266, - 423.5502014160156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/M]F%U\u0012p", - "origin": [ - 108.39994049072266, - 413.5502014160156 - ], - "bbox": [ - 108.39994049072266, - 407.0502014160156, - 136.39993286132812, - 425.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010", - "origin": [ - 136.39993286132812, - 413.5502014160156 - ], - "bbox": [ - 136.39993286132812, - 410.8501892089844, - 145.39993286132812, - 422.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em\r«E1•aXJE1t½XIM]HJX%E1O\u0018S!H", - "origin": [ - 145.39993286132812, - 413.5502014160156 - ], - "bbox": [ - 145.39993286132812, - 407.0502014160156, - 230.49993896484375, - 425.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.699951171875, - 398.65020751953125, - 230.49993896484375, - 425.9501953125 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 239.3999481201172, - 398.65020751953125, - 521.0999755859375, - 425.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M&SaMPM]CµX’HIFJ•aY]HJ•aFJM\u0019R1 \u0010XIC\u0018E1YPM¯HJADKNM", - "origin": [ - 239.3999481201172, - 413.5502014160156 - ], - "bbox": [ - 239.3999481201172, - 407.0502014160156, - 360.00006103515625, - 425.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 239.3999481201172, - 407.0502014160156, - 360.00006103515625, - 425.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "J=1:PO1mr6^0\u001c:", - "origin": [ - 478.49993896484375, - 413.5502014160156 - ], - "bbox": [ - 478.49993896484375, - 398.65020751953125, - 521.0999755859375, - 423.5502014160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.49993896484375, - 398.65020751953125, - 521.0999755859375, - 423.5502014160156 - ] - } - ] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 100.89993286132812, - 409.5502014160156, - 279.2998962402344, - 436.8501892089844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u001b", - "origin": [ - 100.89993286132812, - 424.4501953125 - ], - "bbox": [ - 100.89993286132812, - 421.75018310546875, - 100.89993286132812, - 433.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "fCEB1[*=PCE[vB-:", - "origin": [ - 100.89993286132812, - 424.4501953125 - ], - "bbox": [ - 100.89993286132812, - 409.5502014160156, - 133.5999298095703, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&4", - "origin": [ - 133.5999298095703, - 424.4501953125 - ], - "bbox": [ - 133.5999298095703, - 421.75018310546875, - 137.7999267578125, - 433.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "(\u0010", - "origin": [ - 137.7999267578125, - 424.4501953125 - ], - "bbox": [ - 137.7999267578125, - 424.25018310546875, - 149.5999298095703, - 432.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ6^8*S1C\u0018:D698", - "origin": [ - 149.5999298095703, - 424.4501953125 - ], - "bbox": [ - 149.5999298095703, - 409.5502014160156, - 177.89993286132812, - 434.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.89993286132812, - 409.5502014160156, - 177.89993286132812, - 434.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "278‡X", - "origin": [ - 189.2999267578125, - 424.4501953125 - ], - "bbox": [ - 189.2999267578125, - 409.5502014160156, - 199.0999298095703, - 434.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 189.2999267578125, - 409.5502014160156, - 199.0999298095703, - 434.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "xy:DubI78X", - "origin": [ - 209.2999267578125, - 424.4501953125 - ], - "bbox": [ - 209.2999267578125, - 409.5502014160156, - 234.69992065429688, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "!MZS", - "origin": [ - 234.69992065429688, - 424.4501953125 - ], - "bbox": [ - 234.69992065429688, - 417.9501953125, - 248.69992065429688, - 436.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": ")�*�", - "origin": [ - 248.69992065429688, - 424.4501953125 - ], - "bbox": [ - 248.69992065429688, - 424.25018310546875, - 272.4999084472656, - 432.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4X", - "origin": [ - 272.4999084472656, - 424.4501953125 - ], - "bbox": [ - 272.4999084472656, - 417.9501953125, - 279.2998962402344, - 436.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 209.2999267578125, - 409.5502014160156, - 279.2998962402344, - 436.8501892089844 - ] - } - ] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 287.6999206542969, - 409.5502014160156, - 521.39990234375, - 446.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "HJM", - "origin": [ - 287.6999206542969, - 424.4501953125 - ], - "bbox": [ - 287.6999206542969, - 417.9501953125, - 291.3999328613281, - 436.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "G)", - "origin": [ - 291.3999328613281, - 424.4501953125 - ], - "bbox": [ - 291.3999328613281, - 409.5502014160156, - 295.49993896484375, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eEcF", - "origin": [ - 295.49993896484375, - 424.4501953125 - ], - "bbox": [ - 295.49993896484375, - 417.9501953125, - 304.3999328613281, - 436.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 287.6999206542969, - 409.5502014160156, - 304.3999328613281, - 436.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 314.4999084472656, - 424.4501953125 - ], - "bbox": [ - 314.4999084472656, - 411.5502014160156, - 314.4999084472656, - 446.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015+", - "origin": [ - 314.4999084472656, - 424.4501953125 - ], - "bbox": [ - 314.4999084472656, - 409.5502014160156, - 317.6999206542969, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gADOad/EGCrR1FJMevŸ²\u0014RGFJt´S", - "origin": [ - 317.6999206542969, - 424.4501953125 - ], - "bbox": [ - 317.6999206542969, - 417.9501953125, - 388.89996337890625, - 436.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\f+", - "origin": [ - 388.89996337890625, - 424.4501953125 - ], - "bbox": [ - 388.89996337890625, - 409.5502014160156, - 399.9999694824219, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TY]ADM]OgHJAž¤\u0018Y", - "origin": [ - 399.9999694824219, - 424.4501953125 - ], - "bbox": [ - 399.9999694824219, - 417.9501953125, - 431.79998779296875, - 436.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "2W", - "origin": [ - 431.79998779296875, - 424.4501953125 - ], - "bbox": [ - 431.79998779296875, - 411.5502014160156, - 436.0999755859375, - 446.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.4999084472656, - 409.5502014160156, - 436.0999755859375, - 446.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 445.89990234375, - 424.4501953125 - ], - "bbox": [ - 445.89990234375, - 411.5502014160156, - 445.89990234375, - 446.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@‡B16^8*C", - "origin": [ - 445.89990234375, - 424.4501953125 - ], - "bbox": [ - 445.89990234375, - 409.5502014160156, - 479.69989013671875, - 434.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "³EGF", - "origin": [ - 479.69989013671875, - 424.4501953125 - ], - "bbox": [ - 479.69989013671875, - 417.9501953125, - 492.69989013671875, - 436.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 492.69989013671875, - 424.4501953125 - ], - "bbox": [ - 492.69989013671875, - 421.75018310546875, - 496.39990234375, - 433.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 496.39990234375, - 424.4501953125 - ], - "bbox": [ - 496.39990234375, - 417.9501953125, - 511.2998962402344, - 436.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.89990234375, - 409.5502014160156, - 511.2998962402344, - 446.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "d1FIk", - "origin": [ - 513.2999267578125, - 424.4501953125 - ], - "bbox": [ - 513.2999267578125, - 417.9501953125, - 521.39990234375, - 436.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 513.2999267578125, - 417.9501953125, - 521.39990234375, - 436.8501892089844 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 100.49990844726562, - 428.8501892089844, - 105.29991149902344, - 447.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”QY", - "origin": [ - 100.49990844726562, - 435.3501892089844 - ], - "bbox": [ - 100.49990844726562, - 428.8501892089844, - 105.29991149902344, - 447.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.49990844726562, - 428.8501892089844, - 105.29991149902344, - 447.75018310546875 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 114.09990692138672, - 422.4501953125, - 146.0998992919922, - 457.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 114.09990692138672, - 435.3501892089844 - ], - "bbox": [ - 114.09990692138672, - 432.6501770019531, - 114.09990692138672, - 444.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "em", - "origin": [ - 114.09990692138672, - 435.3501892089844 - ], - "bbox": [ - 114.09990692138672, - 428.8501892089844, - 118.69990539550781, - 447.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-+", - "origin": [ - 118.69990539550781, - 435.3501892089844 - ], - "bbox": [ - 118.69990539550781, - 432.6501770019531, - 127.69990539550781, - 444.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "To", - "origin": [ - 127.69990539550781, - 435.3501892089844 - ], - "bbox": [ - 127.69990539550781, - 428.8501892089844, - 132.6999053955078, - 447.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0-\u0018", - "origin": [ - 132.6999053955078, - 435.3501892089844 - ], - "bbox": [ - 132.6999053955078, - 432.6501770019531, - 141.39990234375, - 444.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 141.39990234375, - 435.3501892089844 - ], - "bbox": [ - 141.39990234375, - 422.4501953125, - 146.0998992919922, - 457.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.09990692138672, - 422.4501953125, - 146.0998992919922, - 457.1501770019531 - ] - } - ] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 73.7999038696289, - 431.5502014160156, - 414.9998779296875, - 468.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "pep", - "origin": [ - 73.7999038696289, - 446.4501953125 - ], - "bbox": [ - 73.7999038696289, - 439.9501953125, - 78.39990234375, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�> <", - "origin": [ - 78.39990234375, - 446.4501953125 - ], - "bbox": [ - 78.39990234375, - 439.4501953125, - 90.39990234375, - 457.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADSaM]Re•aH¬@\u000ff\u001fE1O\u0018S", - "origin": [ - 90.39990234375, - 446.4501953125 - ], - "bbox": [ - 90.39990234375, - 439.9501953125, - 154.59988403320312, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Z+", - "origin": [ - 154.59988403320312, - 446.4501953125 - ], - "bbox": [ - 154.59988403320312, - 431.5502014160156, - 162.89988708496094, - 456.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gR1F", - "origin": [ - 162.89988708496094, - 446.4501953125 - ], - "bbox": [ - 162.89988708496094, - 439.9501953125, - 172.2998809814453, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 172.2998809814453, - 446.4501953125 - ], - "bbox": [ - 172.2998809814453, - 431.5502014160156, - 175.9998779296875, - 456.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO", - "origin": [ - 175.9998779296875, - 446.4501953125 - ], - "bbox": [ - 175.9998779296875, - 439.9501953125, - 183.39987182617188, - 458.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.7999038696289, - 431.5502014160156, - 183.39987182617188, - 458.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "@�p", - "origin": [ - 201.59991455078125, - 446.4501953125 - ], - "bbox": [ - 201.59991455078125, - 439.9501953125, - 211.79991149902344, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-010-0", - "origin": [ - 211.79991149902344, - 446.4501953125 - ], - "bbox": [ - 211.79991149902344, - 443.75018310546875, - 225.39991760253906, - 455.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c€L?wu7SPd", - "origin": [ - 225.39991760253906, - 446.4501953125 - ], - "bbox": [ - 225.39991760253906, - 431.5502014160156, - 252.99990844726562, - 456.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0015\r", - "origin": [ - 252.99990844726562, - 446.4501953125 - ], - "bbox": [ - 252.99990844726562, - 446.25018310546875, - 258.6999206542969, - 454.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 201.59991455078125, - 431.5502014160156, - 258.6999206542969, - 458.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ":DM7d", - "origin": [ - 265.4999084472656, - 446.4501953125 - ], - "bbox": [ - 265.4999084472656, - 431.5502014160156, - 273.89990234375, - 456.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "a@", - "origin": [ - 273.89990234375, - 446.4501953125 - ], - "bbox": [ - 273.89990234375, - 439.9501953125, - 278.9999084472656, - 458.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 265.4999084472656, - 431.5502014160156, - 278.9999084472656, - 458.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 302.89990234375, - 446.4501953125 - ], - "bbox": [ - 302.89990234375, - 443.75018310546875, - 302.89990234375, - 455.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 302.89990234375, - 446.4501953125 - ], - "bbox": [ - 302.89990234375, - 439.9501953125, - 307.59991455078125, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 307.59991455078125, - 446.4501953125 - ], - "bbox": [ - 307.59991455078125, - 433.5502014160156, - 311.9999084472656, - 468.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1010", - "origin": [ - 311.9999084472656, - 446.4501953125 - ], - "bbox": [ - 311.9999084472656, - 443.75018310546875, - 321.1999206542969, - 455.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ep", - "origin": [ - 321.1999206542969, - 446.4501953125 - ], - "bbox": [ - 321.1999206542969, - 439.9501953125, - 325.7999267578125, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "\u0019V", - "origin": [ - 325.7999267578125, - 446.4501953125 - ], - "bbox": [ - 325.7999267578125, - 433.5502014160156, - 334.1999206542969, - 468.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 334.1999206542969, - 446.4501953125 - ], - "bbox": [ - 334.1999206542969, - 431.5502014160156, - 367.99993896484375, - 456.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WEcF", - "origin": [ - 367.99993896484375, - 446.4501953125 - ], - "bbox": [ - 367.99993896484375, - 439.9501953125, - 378.1999206542969, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 378.1999206542969, - 446.4501953125 - ], - "bbox": [ - 378.1999206542969, - 443.75018310546875, - 381.8999328613281, - 455.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 381.8999328613281, - 446.4501953125 - ], - "bbox": [ - 381.8999328613281, - 439.9501953125, - 396.7999267578125, - 458.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 302.89990234375, - 431.5502014160156, - 396.7999267578125, - 468.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "d1FIk™”QY", - "origin": [ - 398.7998962402344, - 446.4501953125 - ], - "bbox": [ - 398.7998962402344, - 439.9501953125, - 414.9998779296875, - 458.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.7998962402344, - 439.9501953125, - 414.9998779296875, - 458.8501892089844 - ] - } - ] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 423.7998962402344, - 433.5502014160156, - 455.7999267578125, - 468.25018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0018-\u001810", - "origin": [ - 423.7998962402344, - 446.4501953125 - ], - "bbox": [ - 423.7998962402344, - 443.75018310546875, - 432.89990234375, - 455.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.7998962402344, - 443.75018310546875, - 432.89990234375, - 455.8501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 437.39990234375, - 446.4501953125 - ], - "bbox": [ - 437.39990234375, - 433.5502014160156, - 437.39990234375, - 468.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "10", - "origin": [ - 437.39990234375, - 446.4501953125 - ], - "bbox": [ - 437.39990234375, - 443.75018310546875, - 441.9999084472656, - 455.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "enep", - "origin": [ - 441.9999084472656, - 446.4501953125 - ], - "bbox": [ - 441.9999084472656, - 439.9501953125, - 451.1999206542969, - 458.8501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "XW", - "origin": [ - 451.1999206542969, - 446.4501953125 - ], - "bbox": [ - 451.1999206542969, - 433.5502014160156, - 455.7999267578125, - 468.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 437.39990234375, - 433.5502014160156, - 455.7999267578125, - 468.25018310546875 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 73.79988861083984, - 450.3501892089844, - 117.29988861083984, - 469.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p1i", - "origin": [ - 73.79988861083984, - 457.3501892089844 - ], - "bbox": [ - 73.79988861083984, - 450.8501892089844, - 78.29988861083984, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29988861083984, - 457.3501892089844 - ], - "bbox": [ - 78.29988861083984, - 450.3501892089844, - 82.69989013671875, - 468.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tL§PM¡À4k", - "origin": [ - 82.69989013671875, - 457.3501892089844 - ], - "bbox": [ - 82.69989013671875, - 450.8501892089844, - 117.29988861083984, - 469.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79988861083984, - 450.3501892089844, - 117.29988861083984, - 469.75018310546875 - ] - } - ] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 130.39988708496094, - 442.4501953125, - 377.59991455078125, - 479.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 130.39988708496094, - 457.3501892089844 - ], - "bbox": [ - 130.39988708496094, - 450.8501892089844, - 130.39988708496094, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010", - "origin": [ - 130.39988708496094, - 457.3501892089844 - ], - "bbox": [ - 130.39988708496094, - 454.6501770019531, - 139.39988708496094, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eq", - "origin": [ - 139.39988708496094, - 457.3501892089844 - ], - "bbox": [ - 139.39988708496094, - 450.8501892089844, - 143.99989318847656, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c.18fC\u0018d", - "origin": [ - 143.99989318847656, - 457.3501892089844 - ], - "bbox": [ - 143.99989318847656, - 442.4501953125, - 164.19989013671875, - 467.3501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 130.39988708496094, - 442.4501953125, - 164.19989013671875, - 469.75018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "2", - "origin": [ - 170.19989013671875, - 457.3501892089844 - ], - "bbox": [ - 170.19989013671875, - 454.6501770019531, - 170.19989013671875, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad\u0017mo?*:-INB5d\u000e€L?wu7SPd", - "origin": [ - 170.19989013671875, - 457.3501892089844 - ], - "bbox": [ - 170.19989013671875, - 442.4501953125, - 230.19989013671875, - 467.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 230.19989013671875, - 457.3501892089844 - ], - "bbox": [ - 230.19989013671875, - 457.1501770019531, - 235.39988708496094, - 465.8501892089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.19989013671875, - 442.4501953125, - 235.39988708496094, - 467.3501892089844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "8", - "origin": [ - 240.89990234375, - 457.3501892089844 - ], - "bbox": [ - 240.89990234375, - 454.6501770019531, - 240.89990234375, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016¶-R", - "origin": [ - 240.89990234375, - 457.3501892089844 - ], - "bbox": [ - 240.89990234375, - 450.8501892089844, - 255.99989318847656, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "�+", - "origin": [ - 255.99989318847656, - 457.3501892089844 - ], - "bbox": [ - 255.99989318847656, - 454.6501770019531, - 263.69989013671875, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Np", - "origin": [ - 263.69989013671875, - 457.3501892089844 - ], - "bbox": [ - 263.69989013671875, - 450.8501892089844, - 271.4998779296875, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0", - "origin": [ - 271.4998779296875, - 457.3501892089844 - ], - "bbox": [ - 271.4998779296875, - 454.6501770019531, - 275.8998718261719, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eneick=p", - "origin": [ - 275.8998718261719, - 457.3501892089844 - ], - "bbox": [ - 275.8998718261719, - 450.8501892089844, - 292.79986572265625, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-01+", - "origin": [ - 292.79986572265625, - 457.3501892089844 - ], - "bbox": [ - 292.79986572265625, - 454.6501770019531, - 301.8998718261719, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "go", - "origin": [ - 301.8998718261719, - 457.3501892089844 - ], - "bbox": [ - 301.8998718261719, - 450.8501892089844, - 306.79986572265625, - 469.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.89990234375, - 450.8501892089844, - 306.79986572265625, - 469.75018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 314.9999084472656, - 457.3501892089844 - ], - "bbox": [ - 314.9999084472656, - 444.4501953125, - 314.9999084472656, - 479.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 314.9999084472656, - 457.3501892089844 - ], - "bbox": [ - 314.9999084472656, - 442.4501953125, - 348.7999267578125, - 467.3501892089844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WEcF", - "origin": [ - 348.7999267578125, - 457.3501892089844 - ], - "bbox": [ - 348.7999267578125, - 450.8501892089844, - 358.9999084472656, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 358.9999084472656, - 457.3501892089844 - ], - "bbox": [ - 358.9999084472656, - 454.6501770019531, - 362.6999206542969, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 362.6999206542969, - 457.3501892089844 - ], - "bbox": [ - 362.6999206542969, - 450.8501892089844, - 377.59991455078125, - 469.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.9999084472656, - 442.4501953125, - 377.59991455078125, - 479.1501770019531 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 384.7999267578125, - 450.8501892089844, - 397.0999450683594, - 469.75018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MPCTklH", - "origin": [ - 384.7999267578125, - 457.3501892089844 - ], - "bbox": [ - 384.7999267578125, - 450.8501892089844, - 397.0999450683594, - 469.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 384.7999267578125, - 450.8501892089844, - 397.0999450683594, - 469.75018310546875 - ] - } - ] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 400.7999267578125, - 450.6501770019531, - 406.09991455078125, - 469.5501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 400.7999267578125, - 457.1501770019531 - ], - "bbox": [ - 400.7999267578125, - 450.6501770019531, - 400.7999267578125, - 469.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*;", - "origin": [ - 400.7999267578125, - 457.1501770019531 - ], - "bbox": [ - 400.7999267578125, - 454.4501647949219, - 406.09991455078125, - 466.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.7999267578125, - 450.6501770019531, - 406.09991455078125, - 469.5501708984375 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 410.59991455078125, - 444.4501953125, - 442.5999450683594, - 479.1501770019531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 410.59991455078125, - 457.3501892089844 - ], - "bbox": [ - 410.59991455078125, - 454.6501770019531, - 410.59991455078125, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "emgo", - "origin": [ - 410.59991455078125, - 457.3501892089844 - ], - "bbox": [ - 410.59991455078125, - 450.8501892089844, - 420.09991455078125, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0", - "origin": [ - 420.09991455078125, - 457.3501892089844 - ], - "bbox": [ - 420.09991455078125, - 454.6501770019531, - 424.2999267578125, - 466.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ep1neq", - "origin": [ - 424.2999267578125, - 457.3501892089844 - ], - "bbox": [ - 424.2999267578125, - 450.8501892089844, - 437.99993896484375, - 469.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "XW", - "origin": [ - 437.99993896484375, - 457.3501892089844 - ], - "bbox": [ - 437.99993896484375, - 444.4501953125, - 442.5999450683594, - 479.1501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 410.59991455078125, - 444.4501953125, - 442.5999450683594, - 479.1501770019531 - ] - } - ] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 73.79991912841797, - 453.3501892089844, - 522.4999389648438, - 490.0501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 73.79991912841797, - 468.25018310546875 - ], - "bbox": [ - 73.79991912841797, - 461.75018310546875, - 73.79991912841797, - 480.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 73.79991912841797, - 468.25018310546875 - ], - "bbox": [ - 73.79991912841797, - 455.3501892089844, - 78.19992065429688, - 490.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 78.19992065429688, - 468.25018310546875 - ], - "bbox": [ - 78.19992065429688, - 461.25018310546875, - 82.69992065429688, - 479.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010@·A", - "origin": [ - 82.69992065429688, - 468.25018310546875 - ], - "bbox": [ - 82.69992065429688, - 461.75018310546875, - 97.49991607666016, - 480.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001b\u001a", - "origin": [ - 97.49991607666016, - 468.25018310546875 - ], - "bbox": [ - 97.49991607666016, - 468.0501708984375, - 101.49991607666016, - 476.75018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79991912841797, - 455.3501892089844, - 101.49991607666016, - 490.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ReXIA½b\u000bp", - "origin": [ - 99.99992370605469, - 468.25018310546875 - ], - "bbox": [ - 99.99992370605469, - 461.75018310546875, - 126.2999267578125, - 480.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010", - "origin": [ - 126.2999267578125, - 468.25018310546875 - ], - "bbox": [ - 126.2999267578125, - 465.5501708984375, - 135.2999267578125, - 477.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/q", - "origin": [ - 135.2999267578125, - 468.25018310546875 - ], - "bbox": [ - 135.2999267578125, - 461.75018310546875, - 139.9999237060547, - 480.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.99992370605469, - 461.75018310546875, - 139.9999237060547, - 480.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u001b", - "origin": [ - 161.39991760253906, - 468.25018310546875 - ], - "bbox": [ - 161.39991760253906, - 465.5501708984375, - 161.39991760253906, - 477.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "v?*I7B1C", - "origin": [ - 161.39991760253906, - 468.25018310546875 - ], - "bbox": [ - 161.39991760253906, - 453.3501892089844, - 179.69992065429688, - 478.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.39991760253906, - 453.3501892089844, - 179.69992065429688, - 478.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "6", - "origin": [ - 188.39991760253906, - 468.25018310546875 - ], - "bbox": [ - 188.39991760253906, - 465.5501708984375, - 188.39991760253906, - 477.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI7[vB1SP:", - "origin": [ - 188.39991760253906, - 468.25018310546875 - ], - "bbox": [ - 188.39991760253906, - 453.3501892089844, - 211.79991149902344, - 478.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.39991760253906, - 453.3501892089844, - 211.79991149902344, - 478.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "6^8", - "origin": [ - 220.7999267578125, - 468.25018310546875 - ], - "bbox": [ - 220.7999267578125, - 453.3501892089844, - 223.69992065429688, - 478.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.7999267578125, - 453.3501892089844, - 223.69992065429688, - 478.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ">", - "origin": [ - 234.19992065429688, - 468.25018310546875 - ], - "bbox": [ - 234.19992065429688, - 465.5501708984375, - 234.19992065429688, - 477.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ[*278fCE[v0\u0013.18GhGI7B10327CE6EI78", - "origin": [ - 234.19992065429688, - 468.25018310546875 - ], - "bbox": [ - 234.19992065429688, - 453.3501892089844, - 318.7998962402344, - 478.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.19992065429688, - 453.3501892089844, - 318.7998962402344, - 478.25018310546875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "mo?f:", - "origin": [ - 78.39991760253906, - 490.25018310546875 - ], - "bbox": [ - 78.39991760253906, - 483.25018310546875, - 82.69992065429688, - 501.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c+", - "origin": [ - 82.69992065429688, - 490.25018310546875 - ], - "bbox": [ - 82.69992065429688, - 475.3501892089844, - 90.59992218017578, - 500.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TR1F", - "origin": [ - 90.59992218017578, - 490.25018310546875 - ], - "bbox": [ - 90.59992218017578, - 483.75018310546875, - 100.09992218017578, - 502.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 100.09992218017578, - 490.25018310546875 - ], - "bbox": [ - 100.09992218017578, - 475.3501892089844, - 103.79991912841797, - 500.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO", - "origin": [ - 103.79991912841797, - 490.25018310546875 - ], - "bbox": [ - 103.79991912841797, - 483.75018310546875, - 111.19992065429688, - 502.6501770019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79991912841797, - 475.3501892089844, - 111.19992065429688, - 502.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 118.99992370605469, - 490.25018310546875 - ], - "bbox": [ - 118.99992370605469, - 483.25018310546875, - 118.99992370605469, - 501.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\r@µp", - "origin": [ - 118.99992370605469, - 490.25018310546875 - ], - "bbox": [ - 118.99992370605469, - 483.75018310546875, - 138.39991760253906, - 502.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 138.39991760253906, - 490.25018310546875 - ], - "bbox": [ - 138.39991760253906, - 487.5501708984375, - 147.39991760253906, - 499.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/q", - "origin": [ - 147.39991760253906, - 490.25018310546875 - ], - "bbox": [ - 147.39991760253906, - 483.75018310546875, - 152.09991455078125, - 502.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "!\u001a", - "origin": [ - 152.09991455078125, - 490.25018310546875 - ], - "bbox": [ - 152.09991455078125, - 487.5501708984375, - 159.59991455078125, - 499.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ@b@‡B=1?*:DSyC\u0015I", - "origin": [ - 159.59991455078125, - 490.25018310546875 - ], - "bbox": [ - 159.59991455078125, - 475.3501892089844, - 211.4999237060547, - 500.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "%>", - "origin": [ - 211.4999237060547, - 490.25018310546875 - ], - "bbox": [ - 211.4999237060547, - 487.5501708984375, - 219.5999298095703, - 499.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒ[*278*CE[v0", - "origin": [ - 219.5999298095703, - 490.25018310546875 - ], - "bbox": [ - 219.5999298095703, - 475.3501892089844, - 248.69993591308594, - 500.25018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "+�", - "origin": [ - 248.69993591308594, - 490.25018310546875 - ], - "bbox": [ - 248.69993591308594, - 490.0501708984375, - 259.99993896484375, - 498.75018310546875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ƒB<2NM56^CEu", - "origin": [ - 259.99993896484375, - 490.25018310546875 - ], - "bbox": [ - 259.99993896484375, - 475.3501892089844, - 284.5999450683594, - 500.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.99992370605469, - 475.3501892089844, - 284.5999450683594, - 502.6501770019531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "4", - "origin": [ - 289.3999328613281, - 490.25018310546875 - ], - "bbox": [ - 289.3999328613281, - 487.5501708984375, - 289.3999328613281, - 499.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "'mI7KW27B=1:Di,mr6^0\u001c:s278X'_`2NCEC\u0018:DB", - "origin": [ - 428.2998962402344, - 490.25018310546875 - ], - "bbox": [ - 428.2998962402344, - 475.3501892089844, - 521.0999145507812, - 500.25018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 357.5999450683594, - 475.3501892089844, - 521.0999145507812, - 500.25018310546875 - ] - } - ] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 100.39993286132812, - 486.25018310546875, - 386.7999267578125, - 522.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "MZS»@", - "origin": [ - 100.39993286132812, - 501.1501770019531 - ], - "bbox": [ - 100.39993286132812, - 494.6501770019531, - 112.59992980957031, - 513.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.39993286132812, - 494.6501770019531, - 112.59992980957031, - 513.5501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0016", - "origin": [ - 122.89993286132812, - 501.1501770019531 - ], - "bbox": [ - 122.89993286132812, - 498.4501647949219, - 122.89993286132812, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-FJAžHJA", - "origin": [ - 122.89993286132812, - 501.1501770019531 - ], - "bbox": [ - 122.89993286132812, - 494.6501770019531, - 139.59991455078125, - 513.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 122.89993286132812, - 494.6501770019531, - 139.59991455078125, - 513.5501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 145.89993286132812, - 501.1501770019531 - ], - "bbox": [ - 145.89993286132812, - 488.25018310546875, - 145.89993286132812, - 522.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "l«EGK\u001b£aFJADSTdeMe`", - "origin": [ - 145.89993286132812, - 501.1501770019531 - ], - "bbox": [ - 145.89993286132812, - 494.6501770019531, - 193.199951171875, - 513.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0013\u0012", - "origin": [ - 193.199951171875, - 501.1501770019531 - ], - "bbox": [ - 193.199951171875, - 500.9501647949219, - 198.29995727539062, - 509.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "/\u0015", - "origin": [ - 198.29995727539062, - 501.1501770019531 - ], - "bbox": [ - 198.29995727539062, - 498.4501647949219, - 205.29995727539062, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010v\u0018«E1K\"£aFJADSad1M", - "origin": [ - 205.29995727539062, - 501.1501770019531 - ], - "bbox": [ - 205.29995727539062, - 494.6501770019531, - 257.6999816894531, - 513.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0014\u0012", - "origin": [ - 257.6999816894531, - 501.1501770019531 - ], - "bbox": [ - 257.6999816894531, - 500.9501647949219, - 264.8999938964844, - 509.6501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"šafuFJMPXIX", - "origin": [ - 264.8999938964844, - 501.1501770019531 - ], - "bbox": [ - 264.8999938964844, - 494.6501770019531, - 294.9000244140625, - 513.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 145.89993286132812, - 488.25018310546875, - 294.9000244140625, - 522.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 305.99993896484375, - 501.1501770019531 - ], - "bbox": [ - 305.99993896484375, - 488.25018310546875, - 305.99993896484375, - 522.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 305.99993896484375, - 501.1501770019531 - ], - "bbox": [ - 305.99993896484375, - 486.25018310546875, - 339.7999572753906, - 511.1501770019531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WEcF", - "origin": [ - 339.7999572753906, - 501.1501770019531 - ], - "bbox": [ - 339.7999572753906, - 494.6501770019531, - 349.99993896484375, - 513.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 349.99993896484375, - 501.1501770019531 - ], - "bbox": [ - 349.99993896484375, - 498.4501647949219, - 353.699951171875, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 353.699951171875, - 501.1501770019531 - ], - "bbox": [ - 353.699951171875, - 494.6501770019531, - 368.5999450683594, - 513.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 305.99993896484375, - 486.25018310546875, - 368.5999450683594, - 522.9501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "d1FIk™”QY", - "origin": [ - 370.5999450683594, - 501.1501770019531 - ], - "bbox": [ - 370.5999450683594, - 494.6501770019531, - 386.7999267578125, - 513.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 370.5999450683594, - 494.6501770019531, - 386.7999267578125, - 513.5501708984375 - ] - } - ] - }, - { - "number": 99, - "type": 0, - "bbox": [ - 395.5999450683594, - 488.25018310546875, - 427.5999755859375, - 522.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 395.5999450683594, - 501.1501770019531 - ], - "bbox": [ - 395.5999450683594, - 498.4501647949219, - 395.5999450683594, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eq", - "origin": [ - 395.5999450683594, - 501.1501770019531 - ], - "bbox": [ - 395.5999450683594, - 494.6501770019531, - 400.199951171875, - 513.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0", - "origin": [ - 400.199951171875, - 501.1501770019531 - ], - "bbox": [ - 400.199951171875, - 498.4501647949219, - 404.699951171875, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ei", - "origin": [ - 404.699951171875, - 501.1501770019531 - ], - "bbox": [ - 404.699951171875, - 494.6501770019531, - 409.2999572753906, - 513.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-01\u0018-\u0018", - "origin": [ - 409.2999572753906, - 501.1501770019531 - ], - "bbox": [ - 409.2999572753906, - 498.4501647949219, - 422.89996337890625, - 510.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "�W", - "origin": [ - 422.89996337890625, - 501.1501770019531 - ], - "bbox": [ - 422.89996337890625, - 488.25018310546875, - 427.5999755859375, - 522.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.5999450683594, - 488.25018310546875, - 427.5999755859375, - 522.9501953125 - ] - } - ] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 73.7999496459961, - 497.2501525878906, - 168.99996948242188, - 524.5501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p1n", - "origin": [ - 73.7999496459961, - 512.150146484375 - ], - "bbox": [ - 73.7999496459961, - 505.650146484375, - 78.2999496459961, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.2999496459961, - 512.150146484375 - ], - "bbox": [ - 78.2999496459961, - 505.150146484375, - 82.699951171875, - 523.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c+", - "origin": [ - 82.699951171875, - 512.150146484375 - ], - "bbox": [ - 82.699951171875, - 497.2501525878906, - 90.5999526977539, - 522.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TR1F", - "origin": [ - 90.5999526977539, - 512.150146484375 - ], - "bbox": [ - 90.5999526977539, - 505.650146484375, - 100.0999526977539, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 100.0999526977539, - 512.150146484375 - ], - "bbox": [ - 100.0999526977539, - 497.2501525878906, - 103.7999496459961, - 522.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gALO", - "origin": [ - 103.7999496459961, - 512.150146484375 - ], - "bbox": [ - 103.7999496459961, - 505.650146484375, - 111.199951171875, - 524.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.7999496459961, - 497.2501525878906, - 111.199951171875, - 524.5501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 119.39994812011719, - 512.150146484375 - ], - "bbox": [ - 119.39994812011719, - 505.150146484375, - 119.39994812011719, - 523.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "!@", - "origin": [ - 119.39994812011719, - 512.150146484375 - ], - "bbox": [ - 119.39994812011719, - 505.650146484375, - 129.199951171875, - 524.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.39994812011719, - 505.150146484375, - 129.199951171875, - 524.5501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 139.4999542236328, - 512.150146484375 - ], - "bbox": [ - 139.4999542236328, - 505.650146484375, - 139.4999542236328, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0101\u0018", - "origin": [ - 139.4999542236328, - 512.150146484375 - ], - "bbox": [ - 139.4999542236328, - 509.45013427734375, - 153.09996032714844, - 521.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NbªALd", - "origin": [ - 153.09996032714844, - 512.150146484375 - ], - "bbox": [ - 153.09996032714844, - 505.650146484375, - 168.99996948242188, - 524.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.4999542236328, - 505.650146484375, - 168.99996948242188, - 524.5501708984375 - ] - } - ] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 178.39996337890625, - 497.2501525878906, - 395.99993896484375, - 524.5501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "HZ`\u0018tLALO", - "origin": [ - 178.39996337890625, - 512.150146484375 - ], - "bbox": [ - 178.39996337890625, - 505.650146484375, - 192.79995727539062, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "f)", - "origin": [ - 192.79995727539062, - 512.150146484375 - ], - "bbox": [ - 192.79995727539062, - 497.2501525878906, - 197.9999542236328, - 522.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gX4E1O\u0018S¢YZEG•\u0018XJEGtVXIM]HJX", - "origin": [ - 197.9999542236328, - 512.150146484375 - ], - "bbox": [ - 197.9999542236328, - 505.650146484375, - 266.49993896484375, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "s€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 266.49993896484375, - 512.150146484375 - ], - "bbox": [ - 266.49993896484375, - 497.2501525878906, - 304.09991455078125, - 522.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "w`\u0018HJRNE1CaCrMZEGF4ALO", - "origin": [ - 304.09991455078125, - 512.150146484375 - ], - "bbox": [ - 304.09991455078125, - 505.650146484375, - 356.6999206542969, - 524.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.39996337890625, - 497.2501525878906, - 356.6999206542969, - 524.5501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 364.89996337890625, - 512.150146484375 - ], - "bbox": [ - 364.89996337890625, - 505.150146484375, - 364.89996337890625, - 523.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4M] =š", - "origin": [ - 364.89996337890625, - 512.150146484375 - ], - "bbox": [ - 364.89996337890625, - 505.650146484375, - 379.0999450683594, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "+=", - "origin": [ - 379.0999450683594, - 512.150146484375 - ], - "bbox": [ - 379.0999450683594, - 505.150146484375, - 384.7999572753906, - 523.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocp", - "origin": [ - 384.7999572753906, - 512.150146484375 - ], - "bbox": [ - 384.7999572753906, - 505.650146484375, - 391.49993896484375, - 524.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 391.49993896484375, - 512.150146484375 - ], - "bbox": [ - 391.49993896484375, - 505.150146484375, - 395.99993896484375, - 523.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.89996337890625, - 505.150146484375, - 395.99993896484375, - 524.5501708984375 - ] - } - ] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 73.7999496459961, - 516.0501708984375, - 90.49995422363281, - 535.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "peq", - "origin": [ - 73.7999496459961, - 523.0501708984375 - ], - "bbox": [ - 73.7999496459961, - 516.5501708984375, - 78.39994812011719, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39994812011719, - 523.0501708984375 - ], - "bbox": [ - 78.39994812011719, - 516.0501708984375, - 82.699951171875, - 534.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Nf", - "origin": [ - 82.699951171875, - 523.0501708984375 - ], - "bbox": [ - 82.699951171875, - 516.5501708984375, - 90.49995422363281, - 535.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.7999496459961, - 516.0501708984375, - 90.49995422363281, - 535.4501953125 - ] - } - ] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 101.7999496459961, - 508.1501770019531, - 522.0000610351562, - 535.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ADtLCrRGHIHBb8`T@·RZ‘", - "origin": [ - 101.7999496459961, - 523.0501708984375 - ], - "bbox": [ - 101.7999496459961, - 516.5501708984375, - 149.699951171875, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": ",)", - "origin": [ - 149.699951171875, - 523.0501708984375 - ], - "bbox": [ - 149.699951171875, - 508.1501770019531, - 156.3999481201172, - 533.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/M]F-U¥E1O\u001dS", - "origin": [ - 156.3999481201172, - 523.0501708984375 - ], - "bbox": [ - 156.3999481201172, - 516.5501708984375, - 190.8999481201172, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "g+", - "origin": [ - 190.8999481201172, - 523.0501708984375 - ], - "bbox": [ - 190.8999481201172, - 508.1501770019531, - 199.09994506835938, - 533.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TRGF", - "origin": [ - 199.09994506835938, - 523.0501708984375 - ], - "bbox": [ - 199.09994506835938, - 516.5501708984375, - 208.49993896484375, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "-)", - "origin": [ - 208.49993896484375, - 523.0501708984375 - ], - "bbox": [ - 208.49993896484375, - 508.1501770019531, - 212.19993591308594, - 533.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TALO", - "origin": [ - 212.19993591308594, - 523.0501708984375 - ], - "bbox": [ - 212.19993591308594, - 516.5501708984375, - 219.69993591308594, - 535.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.7999496459961, - 508.1501770019531, - 219.69993591308594, - 535.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 227.79995727539062, - 523.0501708984375 - ], - "bbox": [ - 227.79995727539062, - 516.0501708984375, - 227.79995727539062, - 534.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u000fp", - "origin": [ - 227.79995727539062, - 523.0501708984375 - ], - "bbox": [ - 227.79995727539062, - 516.5501708984375, - 237.89996337890625, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0101+", - "origin": [ - 237.89996337890625, - 523.0501708984375 - ], - "bbox": [ - 237.89996337890625, - 520.3501586914062, - 251.49996948242188, - 532.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\8O\u0018M¯FJd1gklKNReKNMPOQHJ•\u0018K¾SaAž¿?•aXIADR1O\u0016 ºFJR1K\u0012XIC\u001dEGYPM]HJALKNM­SaALXIY]FJM]HJM]O\u0018MPXIX", - "origin": [ - 251.49996948242188, - 523.0501708984375 - ], - "bbox": [ - 251.49996948242188, - 516.5501708984375, - 484.300048828125, - 535.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "y€\u0017B<:\u0018@‡B16^8fC", - "origin": [ - 484.300048828125, - 523.0501708984375 - ], - "bbox": [ - 484.300048828125, - 508.1501770019531, - 522.0000610351562, - 533.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.79995727539062, - 508.1501770019531, - 522.0000610351562, - 535.4501953125 - ] - } - ] - }, - { - "number": 106, - "type": 0, - "bbox": [ - 100.49995422363281, - 527.5501708984375, - 169.59996032714844, - 546.4501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGF", - "origin": [ - 100.49995422363281, - 534.0501708984375 - ], - "bbox": [ - 100.49995422363281, - 527.5501708984375, - 104.89995574951172, - 546.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 104.89995574951172, - 534.0501708984375 - ], - "bbox": [ - 104.89995574951172, - 531.3501586914062, - 108.5999526977539, - 543.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 108.5999526977539, - 534.0501708984375 - ], - "bbox": [ - 108.5999526977539, - 527.5501708984375, - 123.49995422363281, - 546.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.49995422363281, - 527.5501708984375, - 123.49995422363281, - 546.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-+", - "origin": [ - 125.5999526977539, - 534.0501708984375 - ], - "bbox": [ - 125.5999526977539, - 531.3501586914062, - 130.09996032714844, - 543.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "To", - "origin": [ - 130.09996032714844, - 534.0501708984375 - ], - "bbox": [ - 130.09996032714844, - 527.5501708984375, - 135.09996032714844, - 546.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&0", - "origin": [ - 135.09996032714844, - 534.0501708984375 - ], - "bbox": [ - 135.09996032714844, - 531.3501586914062, - 139.29995727539062, - 543.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "gš", - "origin": [ - 139.29995727539062, - 534.0501708984375 - ], - "bbox": [ - 139.29995727539062, - 527.5501708984375, - 144.199951171875, - 546.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 125.5999526977539, - 527.5501708984375, - 144.199951171875, - 546.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "mem", - "origin": [ - 146.3999481201172, - 534.0501708984375 - ], - "bbox": [ - 146.3999481201172, - 527.5501708984375, - 150.9999542236328, - 546.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-\u0018", - "origin": [ - 150.9999542236328, - 534.0501708984375 - ], - "bbox": [ - 150.9999542236328, - 531.3501586914062, - 155.4999542236328, - 543.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "goPhap", - "origin": [ - 155.4999542236328, - 534.0501708984375 - ], - "bbox": [ - 155.4999542236328, - 527.5501708984375, - 169.59996032714844, - 546.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.3999481201172, - 527.5501708984375, - 169.59996032714844, - 546.4501953125 - ] - } - ] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 73.79994201660156, - 530.150146484375, - 229.29994201660156, - 566.8501586914062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 73.79994201660156, - 545.0501708984375 - ], - "bbox": [ - 73.79994201660156, - 538.5501708984375, - 73.79994201660156, - 557.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-+", - "origin": [ - 73.79994201660156, - 545.0501708984375 - ], - "bbox": [ - 73.79994201660156, - 542.3501586914062, - 78.29994201660156, - 554.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29994201660156, - 545.0501708984375 - ], - "bbox": [ - 78.29994201660156, - 538.0501708984375, - 82.69994354248047, - 556.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010@·A", - "origin": [ - 82.69994354248047, - 545.0501708984375 - ], - "bbox": [ - 82.69994354248047, - 538.5501708984375, - 97.49993896484375, - 557.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001b\u001a", - "origin": [ - 97.49993896484375, - 545.0501708984375 - ], - "bbox": [ - 97.49993896484375, - 544.8501586914062, - 101.49993896484375, - 553.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79994201660156, - 538.0501708984375, - 101.49993896484375, - 557.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ReXIA©bœo", - "origin": [ - 99.99993896484375, - 545.0501708984375 - ], - "bbox": [ - 99.99993896484375, - 538.5501708984375, - 123.19993591308594, - 557.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&\u0018-+", - "origin": [ - 123.19993591308594, - 545.0501708984375 - ], - "bbox": [ - 123.19993591308594, - 542.3501586914062, - 131.89993286132812, - 554.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.99993896484375, - 538.5501708984375, - 131.89993286132812, - 557.4501953125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 136.39993286132812, - 545.0501708984375 - ], - "bbox": [ - 136.39993286132812, - 532.150146484375, - 136.39993286132812, - 566.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "J€W?vu7SPd\u000ezr:DCEC\u0018d", - "origin": [ - 136.39993286132812, - 545.0501708984375 - ], - "bbox": [ - 136.39993286132812, - 530.150146484375, - 185.7999267578125, - 555.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 185.7999267578125, - 545.0501708984375 - ], - "bbox": [ - 185.7999267578125, - 544.8501586914062, - 191.0999298095703, - 553.5501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.39993286132812, - 530.150146484375, - 191.0999298095703, - 566.8501586914062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": " ", - "origin": [ - 201.49993896484375, - 545.0501708984375 - ], - "bbox": [ - 201.49993896484375, - 542.3501586914062, - 201.49993896484375, - 554.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": ",��", - "origin": [ - 201.49993896484375, - 545.0501708984375 - ], - "bbox": [ - 201.49993896484375, - 544.8501586914062, - 211.69993591308594, - 553.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&o", - "origin": [ - 211.69993591308594, - 545.0501708984375 - ], - "bbox": [ - 211.69993591308594, - 538.5501708984375, - 220.49993896484375, - 557.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&\u00181\u0018", - "origin": [ - 220.49993896484375, - 545.0501708984375 - ], - "bbox": [ - 220.49993896484375, - 542.3501586914062, - 229.29994201660156, - 554.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 201.49993896484375, - 538.5501708984375, - 229.29994201660156, - 557.4501953125 - ] - } - ] - }, - { - "number": 108, - "type": 0, - "bbox": [ - 73.79993438720703, - 541.0501708984375, - 343.7998962402344, - 577.7501831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 73.79993438720703, - 555.9501953125 - ], - "bbox": [ - 73.79993438720703, - 549.4501953125, - 73.79993438720703, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-\u0018", - "origin": [ - 73.79993438720703, - 555.9501953125 - ], - "bbox": [ - 73.79993438720703, - 553.2501831054688, - 78.29993438720703, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29993438720703, - 555.9501953125 - ], - "bbox": [ - 78.29993438720703, - 548.9501953125, - 82.69993591308594, - 567.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010@·A", - "origin": [ - 82.69993591308594, - 555.9501953125 - ], - "bbox": [ - 82.69993591308594, - 549.4501953125, - 97.49993133544922, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001b\u001a", - "origin": [ - 97.49993133544922, - 555.9501953125 - ], - "bbox": [ - 97.49993133544922, - 555.7501831054688, - 101.49993133544922, - 564.4501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.79993438720703, - 548.9501953125, - 101.49993133544922, - 568.3502197265625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ReXIA©b�p", - "origin": [ - 99.99993896484375, - 555.9501953125 - ], - "bbox": [ - 99.99993896484375, - 549.4501953125, - 122.89993286132812, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 122.89993286132812, - 555.9501953125 - ], - "bbox": [ - 122.89993286132812, - 553.2501831054688, - 131.89993286132812, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/m", - "origin": [ - 131.89993286132812, - 555.9501953125 - ], - "bbox": [ - 131.89993286132812, - 549.4501953125, - 136.5999298095703, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001cx,B#25|jd", - "origin": [ - 136.5999298095703, - 555.9501953125 - ], - "bbox": [ - 136.5999298095703, - 541.0501708984375, - 163.19992065429688, - 565.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "N2", - "origin": [ - 163.19992065429688, - 555.9501953125 - ], - "bbox": [ - 163.19992065429688, - 553.2501831054688, - 169.2999267578125, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad;€W?vu7SPd", - "origin": [ - 169.2999267578125, - 555.9501953125 - ], - "bbox": [ - 169.2999267578125, - 541.0501708984375, - 199.4999237060547, - 565.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")(", - "origin": [ - 199.4999237060547, - 555.9501953125 - ], - "bbox": [ - 199.4999237060547, - 553.2501831054688, - 204.89991760253906, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 204.89991760253906, - 555.9501953125 - ], - "bbox": [ - 204.89991760253906, - 555.7501831054688, - 210.19992065429688, - 564.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": ";pGn", - "origin": [ - 210.19992065429688, - 555.9501953125 - ], - "bbox": [ - 210.19992065429688, - 549.4501953125, - 222.99990844726562, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "10", - "origin": [ - 222.99990844726562, - 555.9501953125 - ], - "bbox": [ - 222.99990844726562, - 553.2501831054688, - 227.59991455078125, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ck’pGn/m", - "origin": [ - 227.59991455078125, - 555.9501953125 - ], - "bbox": [ - 227.59991455078125, - 549.4501953125, - 244.49990844726562, - 568.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.99993896484375, - 541.0501708984375, - 244.49990844726562, - 568.3502197265625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 252.79994201660156, - 555.9501953125 - ], - "bbox": [ - 252.79994201660156, - 543.0501708984375, - 252.79994201660156, - 577.7501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@‡B16^8fC", - "origin": [ - 252.79994201660156, - 555.9501953125 - ], - "bbox": [ - 252.79994201660156, - 541.0501708984375, - 286.6999206542969, - 565.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "VEGF", - "origin": [ - 286.6999206542969, - 555.9501953125 - ], - "bbox": [ - 286.6999206542969, - 549.4501953125, - 296.89990234375, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 296.89990234375, - 555.9501953125 - ], - "bbox": [ - 296.89990234375, - 553.2501831054688, - 300.59991455078125, - 565.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 300.59991455078125, - 555.9501953125 - ], - "bbox": [ - 300.59991455078125, - 549.4501953125, - 315.4999084472656, - 568.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.79994201660156, - 541.0501708984375, - 315.4999084472656, - 577.7501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u001dEGOQHIk™C", - "origin": [ - 317.5999450683594, - 555.9501953125 - ], - "bbox": [ - 317.5999450683594, - 549.4501953125, - 343.7998962402344, - 568.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.5999450683594, - 549.4501953125, - 343.7998962402344, - 568.3502197265625 - ] - } - ] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 348.8999328613281, - 549.2501220703125, - 354.2999267578125, - 568.150146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 348.8999328613281, - 555.7501220703125 - ], - "bbox": [ - 348.8999328613281, - 549.2501220703125, - 348.8999328613281, - 568.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ");", - "origin": [ - 348.8999328613281, - 555.7501220703125 - ], - "bbox": [ - 348.8999328613281, - 553.0501098632812, - 354.2999267578125, - 565.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 348.8999328613281, - 549.2501220703125, - 354.2999267578125, - 568.150146484375 - ] - } - ] - }, - { - "number": 110, - "type": 0, - "bbox": [ - 363.1999206542969, - 543.0501708984375, - 395.699951171875, - 577.7501831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 363.1999206542969, - 555.9501953125 - ], - "bbox": [ - 363.1999206542969, - 543.0501708984375, - 363.1999206542969, - 577.7501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "aoZpgoZm", - "origin": [ - 363.1999206542969, - 555.9501953125 - ], - "bbox": [ - 363.1999206542969, - 549.4501953125, - 381.5999450683594, - 568.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "ZY", - "origin": [ - 381.5999450683594, - 555.9501953125 - ], - "bbox": [ - 381.5999450683594, - 543.0501708984375, - 385.99993896484375, - 577.7501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ehap", - "origin": [ - 385.99993896484375, - 555.9501953125 - ], - "bbox": [ - 385.99993896484375, - 549.4501953125, - 395.699951171875, - 568.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.1999206542969, - 543.0501708984375, - 395.699951171875, - 577.7501831054688 - ] - } - ] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 73.69992065429688, - 551.9501342773438, - 272.5999450683594, - 579.2501831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i", - "origin": [ - 73.69992065429688, - 566.8501586914062 - ], - "bbox": [ - 73.69992065429688, - 560.3501586914062, - 73.69992065429688, - 579.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "10", - "origin": [ - 73.69992065429688, - 566.8501586914062 - ], - "bbox": [ - 73.69992065429688, - 564.150146484375, - 78.29991912841797, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29991912841797, - 566.8501586914062 - ], - "bbox": [ - 78.29991912841797, - 559.8501586914062, - 82.69992065429688, - 578.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "NfWMPOaFJR1XIM", - "origin": [ - 82.69992065429688, - 566.8501586914062 - ], - "bbox": [ - 82.69992065429688, - 560.3501586914062, - 117.39991760253906, - 579.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u000e<", - "origin": [ - 117.39991760253906, - 566.8501586914062 - ], - "bbox": [ - 117.39991760253906, - 559.8501586914062, - 124.59991455078125, - 578.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "7o", - "origin": [ - 124.59991455078125, - 566.8501586914062 - ], - "bbox": [ - 124.59991455078125, - 560.3501586914062, - 134.99990844726562, - 579.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u00181\u00181+", - "origin": [ - 134.99990844726562, - 566.8501586914062 - ], - "bbox": [ - 134.99990844726562, - 564.150146484375, - 148.2999267578125, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u001c€W?v6EFHdƒmfB#278fSPd", - "origin": [ - 148.2999267578125, - 566.8501586914062 - ], - "bbox": [ - 148.2999267578125, - 551.9501342773438, - 201.89991760253906, - 576.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0015\r", - "origin": [ - 201.89991760253906, - 566.8501586914062 - ], - "bbox": [ - 201.89991760253906, - 566.650146484375, - 207.59991455078125, - 575.3501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Rd", - "origin": [ - 207.59991455078125, - 566.8501586914062 - ], - "bbox": [ - 207.59991455078125, - 551.9501342773438, - 214.79991149902344, - 576.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "I\u001b", - "origin": [ - 214.79991149902344, - 566.8501586914062 - ], - "bbox": [ - 214.79991149902344, - 564.150146484375, - 220.6999053955078, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "‡I5=jd", - "origin": [ - 220.6999053955078, - 566.8501586914062 - ], - "bbox": [ - 220.6999053955078, - 551.9501342773438, - 234.49990844726562, - 576.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*(", - "origin": [ - 234.49990844726562, - 566.8501586914062 - ], - "bbox": [ - 234.49990844726562, - 564.150146484375, - 239.79991149902344, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 239.79991149902344, - 566.8501586914062 - ], - "bbox": [ - 239.79991149902344, - 566.650146484375, - 245.09991455078125, - 575.3501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*8", - "origin": [ - 245.09991455078125, - 566.8501586914062 - ], - "bbox": [ - 245.09991455078125, - 564.150146484375, - 250.39991760253906, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "&o", - "origin": [ - 250.39991760253906, - 566.8501586914062 - ], - "bbox": [ - 250.39991760253906, - 560.3501586914062, - 259.1999206542969, - 579.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u0018", - "origin": [ - 259.1999206542969, - 566.8501586914062 - ], - "bbox": [ - 259.1999206542969, - 564.150146484375, - 263.2999267578125, - 576.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/peq", - "origin": [ - 263.2999267578125, - 566.8501586914062 - ], - "bbox": [ - 263.2999267578125, - 560.3501586914062, - 272.5999450683594, - 579.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69992065429688, - 551.9501342773438, - 272.5999450683594, - 579.2501831054688 - ] - } - ] - }, - { - "number": 112, - "type": 0, - "bbox": [ - 73.69992065429688, - 563.0501708984375, - 302.89990234375, - 590.3502197265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "iTo", - "origin": [ - 73.69992065429688, - 577.9501953125 - ], - "bbox": [ - 73.69992065429688, - 571.4501953125, - 78.69992065429688, - 590.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69992065429688, - 571.4501953125, - 78.69992065429688, - 590.3502197265625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": ">", - "origin": [ - 82.69992065429688, - 577.9501953125 - ], - "bbox": [ - 82.69992065429688, - 570.9501953125, - 82.69992065429688, - 589.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u000f�", - "origin": [ - 82.69992065429688, - 577.9501953125 - ], - "bbox": [ - 82.69992065429688, - 577.7501831054688, - 90.49992370605469, - 586.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BSatLM]F", - "origin": [ - 90.49992370605469, - 577.9501953125 - ], - "bbox": [ - 90.49992370605469, - 571.4501953125, - 109.09992218017578, - 590.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "s+", - "origin": [ - 109.09992218017578, - 577.9501953125 - ], - "bbox": [ - 109.09992218017578, - 563.0501708984375, - 115.99992370605469, - 587.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "»b�p", - "origin": [ - 115.99992370605469, - 577.9501953125 - ], - "bbox": [ - 115.99992370605469, - 571.4501953125, - 132.9999237060547, - 590.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-0", - "origin": [ - 132.9999237060547, - 577.9501953125 - ], - "bbox": [ - 132.9999237060547, - 575.2501831054688, - 141.9999237060547, - 587.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ei", - "origin": [ - 141.9999237060547, - 577.9501953125 - ], - "bbox": [ - 141.9999237060547, - 571.4501953125, - 146.5999298095703, - 590.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "3\u001b", - "origin": [ - 146.5999298095703, - 577.9501953125 - ], - "bbox": [ - 146.5999298095703, - 575.2501831054688, - 154.7999267578125, - 587.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "*CE[fX>d{‚y6^S-C\u0018d;€L?v6^FYI7SPdo_I5Xwd;€L?vuNSPd", - "origin": [ - 154.7999267578125, - 577.9501953125 - ], - "bbox": [ - 154.7999267578125, - 563.0501708984375, - 274.69989013671875, - 587.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ")(", - "origin": [ - 274.69989013671875, - 577.9501953125 - ], - "bbox": [ - 274.69989013671875, - 575.2501831054688, - 280.0998840332031, - 587.3502197265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0013�", - "origin": [ - 280.0998840332031, - 577.9501953125 - ], - "bbox": [ - 280.0998840332031, - 577.7501831054688, - 285.19989013671875, - 586.4501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0014oZiem", - "origin": [ - 285.19989013671875, - 577.9501953125 - ], - "bbox": [ - 285.19989013671875, - 571.4501953125, - 302.89990234375, - 590.3502197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69992065429688, - 563.0501708984375, - 302.89990234375, - 590.3502197265625 - ] - } - ] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 73.69992065429688, - 573.9501342773438, - 505.199951171875, - 610.650146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i/p", - "origin": [ - 73.69992065429688, - 588.8501586914062 - ], - "bbox": [ - 73.69992065429688, - 582.3501586914062, - 78.39991760253906, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39991760253906, - 588.8501586914062 - ], - "bbox": [ - 78.39991760253906, - 581.8501586914062, - 82.69992065429688, - 600.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "N\\+tLtLALX", - "origin": [ - 82.69992065429688, - 588.8501586914062 - ], - "bbox": [ - 82.69992065429688, - 582.3501586914062, - 104.19992065429688, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69992065429688, - 581.8501586914062, - 104.19992065429688, - 601.2501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "$", - "origin": [ - 113.59992218017578, - 588.8501586914062 - ], - "bbox": [ - 113.59992218017578, - 586.150146484375, - 113.59992218017578, - 598.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "a`", - "origin": [ - 113.59992218017578, - 588.8501586914062 - ], - "bbox": [ - 113.59992218017578, - 582.3501586914062, - 118.69992065429688, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "-\u000b", - "origin": [ - 118.69992065429688, - 588.8501586914062 - ], - "bbox": [ - 118.69992065429688, - 588.650146484375, - 126.39991760253906, - 597.3501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "“EZhQFJReK^EGHJR1X¥¶ö\\", - "origin": [ - 126.39991760253906, - 588.8501586914062 - ], - "bbox": [ - 126.39991760253906, - 582.3501586914062, - 194.19992065429688, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.59992218017578, - 582.3501586914062, - 194.19992065429688, - 601.2501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u001dS¾¶BE1OaReCrRe•atLReX @", - "origin": [ - 205.9999237060547, - 588.8501586914062 - ], - "bbox": [ - 205.9999237060547, - 582.3501586914062, - 278.7999572753906, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": ".\u0017", - "origin": [ - 278.7999572753906, - 588.8501586914062 - ], - "bbox": [ - 278.7999572753906, - 588.650146484375, - 291.2999572753906, - 597.3501586914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.9999237060547, - 582.3501586914062, - 291.2999572753906, - 601.2501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "o", - "origin": [ - 304.1999206542969, - 588.8501586914062 - ], - "bbox": [ - 304.1999206542969, - 582.3501586914062, - 304.1999206542969, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u00181\u0018", - "origin": [ - 304.1999206542969, - 588.8501586914062 - ], - "bbox": [ - 304.1999206542969, - 586.150146484375, - 312.8999328613281, - 598.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 312.8999328613281, - 588.8501586914062 - ], - "bbox": [ - 312.8999328613281, - 582.3501586914062, - 317.5999450683594, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.1999206542969, - 582.3501586914062, - 317.5999450683594, - 601.2501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "€W?vuNSGd3z{:DCEC\u0018d", - "origin": [ - 327.8999328613281, - 588.8501586914062 - ], - "bbox": [ - 327.8999328613281, - 573.9501342773438, - 371.3998718261719, - 598.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "^¼", - "origin": [ - 371.3998718261719, - 588.8501586914062 - ], - "bbox": [ - 371.3998718261719, - 582.3501586914062, - 379.29986572265625, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "/�� ", - "origin": [ - 379.29986572265625, - 588.8501586914062 - ], - "bbox": [ - 379.29986572265625, - 588.650146484375, - 396.5998840332031, - 597.3501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "*(", - "origin": [ - 396.5998840332031, - 588.8501586914062 - ], - "bbox": [ - 396.5998840332031, - 586.150146484375, - 401.8998718261719, - 598.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u000bi/qZk", - "origin": [ - 401.8998718261719, - 588.8501586914062 - ], - "bbox": [ - 401.8998718261719, - 582.3501586914062, - 421.4999084472656, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.8999328613281, - 573.9501342773438, - 421.4999084472656, - 601.2501831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 424.7999267578125, - 588.8501586914062 - ], - "bbox": [ - 424.7999267578125, - 575.9501342773438, - 424.7999267578125, - 610.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "1+", - "origin": [ - 424.7999267578125, - 588.8501586914062 - ], - "bbox": [ - 424.7999267578125, - 586.150146484375, - 429.3999328613281, - 598.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "CV", - "origin": [ - 429.3999328613281, - 588.8501586914062 - ], - "bbox": [ - 429.3999328613281, - 575.9501342773438, - 440.0999450683594, - 610.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€\u0017B<:\u0018@‡B16^8fC", - "origin": [ - 440.0999450683594, - 588.8501586914062 - ], - "bbox": [ - 440.0999450683594, - 573.9501342773438, - 473.99993896484375, - 598.8501586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0016EGF", - "origin": [ - 473.99993896484375, - 588.8501586914062 - ], - "bbox": [ - 473.99993896484375, - 582.3501586914062, - 486.5999450683594, - 601.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 486.5999450683594, - 588.8501586914062 - ], - "bbox": [ - 486.5999450683594, - 586.150146484375, - 490.2999572753906, - 598.2501831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ADhrv", - "origin": [ - 490.2999572753906, - 588.8501586914062 - ], - "bbox": [ - 490.2999572753906, - 582.3501586914062, - 505.199951171875, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.7999267578125, - 573.9501342773438, - 505.199951171875, - 610.650146484375 - ] - } - ] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 512.39990234375, - 582.3501586914062, - 521.4998779296875, - 601.2501831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "M]Cak", - "origin": [ - 512.39990234375, - 588.8501586914062 - ], - "bbox": [ - 512.39990234375, - 582.3501586914062, - 521.4998779296875, - 601.2501831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 512.39990234375, - 582.3501586914062, - 521.4998779296875, - 601.2501831054688 - ] - } - ] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 103.99989318847656, - 593.0501708984375, - 109.39989471435547, - 611.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "", - "origin": [ - 103.99989318847656, - 599.5501708984375 - ], - "bbox": [ - 103.99989318847656, - 593.0501708984375, - 103.99989318847656, - 611.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ");", - "origin": [ - 103.99989318847656, - 599.5501708984375 - ], - "bbox": [ - 103.99989318847656, - 596.8501586914062, - 109.39989471435547, - 608.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.99989318847656, - 593.0501708984375, - 109.39989471435547, - 611.9501953125 - ] - } - ] - }, - { - "number": 118, - "type": 0, - "bbox": [ - 113.79989624023438, - 593.2501220703125, - 150.79989624023438, - 612.150146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0018", - "origin": [ - 113.79989624023438, - 599.7501220703125 - ], - "bbox": [ - 113.79989624023438, - 597.0501098632812, - 113.79989624023438, - 609.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p", - "origin": [ - 113.79989624023438, - 599.7501220703125 - ], - "bbox": [ - 113.79989624023438, - 593.2501220703125, - 118.49989318847656, - 612.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",0", - "origin": [ - 118.49989318847656, - 599.7501220703125 - ], - "bbox": [ - 118.49989318847656, - 597.0501098632812, - 122.89989471435547, - 609.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/qgo", - "origin": [ - 122.89989471435547, - 599.7501220703125 - ], - "bbox": [ - 122.89989471435547, - 593.2501220703125, - 132.49989318847656, - 612.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u00190", - "origin": [ - 132.49989318847656, - 599.7501220703125 - ], - "bbox": [ - 132.49989318847656, - 597.0501098632812, - 136.5998992919922, - 609.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eiGh\u0018p", - "origin": [ - 136.5998992919922, - 599.7501220703125 - ], - "bbox": [ - 136.5998992919922, - 593.2501220703125, - 150.79989624023438, - 612.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.79989624023438, - 593.2501220703125, - 150.79989624023438, - 612.150146484375 - ] - } - ] - }, - { - "number": 119, - "type": 0, - "bbox": [ - 73.69989776611328, - 595.7501220703125, - 488.5999450683594, - 632.4501342773438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "iei", - "origin": [ - 73.69989776611328, - 610.650146484375 - ], - "bbox": [ - 73.69989776611328, - 604.150146484375, - 78.29989624023438, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29989624023438, - 610.650146484375 - ], - "bbox": [ - 78.29989624023438, - 603.650146484375, - 82.69989776611328, - 622.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "'.", - "origin": [ - 82.69989776611328, - 610.650146484375 - ], - "bbox": [ - 82.69989776611328, - 607.9501342773438, - 90.59989929199219, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "·E1K\u001b£aALO\u0018A", - "origin": [ - 90.59989929199219, - 610.650146484375 - ], - "bbox": [ - 90.59989929199219, - 604.150146484375, - 122.59989166259766, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\u0011<", - "origin": [ - 122.59989166259766, - 610.650146484375 - ], - "bbox": [ - 122.59989166259766, - 603.650146484375, - 128.0998992919922, - 622.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½`afWRGFIHJR", - "origin": [ - 128.0998992919922, - 610.650146484375 - ], - "bbox": [ - 128.0998992919922, - 604.150146484375, - 158.19989013671875, - 623.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69989776611328, - 603.650146484375, - 158.19989013671875, - 623.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 165.99990844726562, - 610.650146484375 - ], - "bbox": [ - 165.99990844726562, - 603.650146484375, - 165.99990844726562, - 622.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u0018�", - "origin": [ - 165.99990844726562, - 610.650146484375 - ], - "bbox": [ - 165.99990844726562, - 610.4501342773438, - 175.99990844726562, - 619.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "µE1O\u001dS¢f+•atLtDALO", - "origin": [ - 175.99990844726562, - 610.650146484375 - ], - "bbox": [ - 175.99990844726562, - 604.150146484375, - 222.69992065429688, - 623.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.99990844726562, - 603.650146484375, - 222.69992065429688, - 623.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "$", - "origin": [ - 231.09991455078125, - 610.650146484375 - ], - "bbox": [ - 231.09991455078125, - 607.9501342773438, - 231.09991455078125, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "^p", - "origin": [ - 231.09991455078125, - 610.650146484375 - ], - "bbox": [ - 231.09991455078125, - 604.150146484375, - 238.99990844726562, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",010-+", - "origin": [ - 238.99990844726562, - 610.650146484375 - ], - "bbox": [ - 238.99990844726562, - 607.9501342773438, - 252.49990844726562, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "/€W?vuNSPd\u000ez{:DCEC\u0018d", - "origin": [ - 252.49990844726562, - 610.650146484375 - ], - "bbox": [ - 252.49990844726562, - 595.7501220703125, - 301.79986572265625, - 620.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "0�", - "origin": [ - 301.79986572265625, - 610.650146484375 - ], - "bbox": [ - 301.79986572265625, - 610.4501342773438, - 307.29986572265625, - 619.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 231.09991455078125, - 595.7501220703125, - 307.29986572265625, - 623.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "()\"", - "origin": [ - 317.2999267578125, - 610.650146484375 - ], - "bbox": [ - 317.2999267578125, - 607.9501342773438, - 322.6999206542969, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�", - "origin": [ - 322.6999206542969, - 610.650146484375 - ], - "bbox": [ - 322.6999206542969, - 610.4501342773438, - 327.8999328613281, - 619.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019oZpgoZickJocpgo", - "origin": [ - 327.8999328613281, - 610.650146484375 - ], - "bbox": [ - 327.8999328613281, - 604.150146484375, - 367.0999450683594, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019+", - "origin": [ - 367.0999450683594, - 610.650146484375 - ], - "bbox": [ - 367.0999450683594, - 607.9501342773438, - 371.199951171875, - 620.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.2999267578125, - 604.150146484375, - 371.199951171875, - 623.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "V", - "origin": [ - 379.7999267578125, - 610.650146484375 - ], - "bbox": [ - 379.7999267578125, - 597.7501220703125, - 379.7999267578125, - 632.4501342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "\u0015€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 379.7999267578125, - 610.650146484375 - ], - "bbox": [ - 379.7999267578125, - 595.7501220703125, - 413.5999450683594, - 620.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "WEcF", - "origin": [ - 413.5999450683594, - 610.650146484375 - ], - "bbox": [ - 413.5999450683594, - 604.150146484375, - 423.7999267578125, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 423.7999267578125, - 610.650146484375 - ], - "bbox": [ - 423.7999267578125, - 607.9501342773438, - 427.49993896484375, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BALhrv", - "origin": [ - 427.49993896484375, - 610.650146484375 - ], - "bbox": [ - 427.49993896484375, - 604.150146484375, - 442.3999328613281, - 623.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 379.7999267578125, - 595.7501220703125, - 442.3999328613281, - 632.4501342773438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0", - "origin": [ - 444.49993896484375, - 610.650146484375 - ], - "bbox": [ - 444.49993896484375, - 607.9501342773438, - 444.49993896484375, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/q", - "origin": [ - 444.49993896484375, - 610.650146484375 - ], - "bbox": [ - 444.49993896484375, - 604.150146484375, - 449.199951171875, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-+", - "origin": [ - 449.199951171875, - 610.650146484375 - ], - "bbox": [ - 449.199951171875, - 607.9501342773438, - 458.199951171875, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Tš", - "origin": [ - 458.199951171875, - 610.650146484375 - ], - "bbox": [ - 458.199951171875, - 604.150146484375, - 463.199951171875, - 623.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.49993896484375, - 604.150146484375, - 463.199951171875, - 623.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "p", - "origin": [ - 465.3999328613281, - 610.650146484375 - ], - "bbox": [ - 465.3999328613281, - 604.150146484375, - 465.3999328613281, - 623.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-\u0018", - "origin": [ - 465.3999328613281, - 610.650146484375 - ], - "bbox": [ - 465.3999328613281, - 607.9501342773438, - 469.8999328613281, - 620.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "1i/mch\u0018p", - "origin": [ - 469.8999328613281, - 610.650146484375 - ], - "bbox": [ - 469.8999328613281, - 604.150146484375, - 488.5999450683594, - 623.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 465.3999328613281, - 604.150146484375, - 488.5999450683594, - 623.0501708984375 - ] - } - ] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 78.199951171875, - 608.85009765625, - 179.49996948242188, - 643.5501098632812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "D", - "color": 0, - "ascender": 218.0, - "descender": -129.0, - "text": "Y", - "origin": [ - 78.199951171875, - 621.7501220703125 - ], - "bbox": [ - 78.199951171875, - 608.85009765625, - 78.199951171875, - 643.5501098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "?>", - "origin": [ - 78.199951171875, - 621.7501220703125 - ], - "bbox": [ - 78.199951171875, - 614.7501220703125, - 82.699951171875, - 633.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0010ÀB•N¼yk™b³p", - "origin": [ - 82.699951171875, - 621.7501220703125 - ], - "bbox": [ - 82.699951171875, - 615.2501220703125, - 123.39995574951172, - 634.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "-0-01\u0018", - "origin": [ - 123.39995574951172, - 621.7501220703125 - ], - "bbox": [ - 123.39995574951172, - 619.0501098632812, - 136.99996948242188, - 631.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "½\\+KNM¯FJdeMPOQH", - "origin": [ - 136.99996948242188, - 621.7501220703125 - ], - "bbox": [ - 136.99996948242188, - 615.2501220703125, - 179.49996948242188, - 634.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.199951171875, - 608.85009765625, - 179.49996948242188, - 643.5501098632812 - ] - } - ] - }, - { - "number": 122, - "type": 0, - "bbox": [ - 187.89996337890625, - 615.2501220703125, - 280.89996337890625, - 634.150146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "”Q•\u0018E1OQHJ•\u0018K\u000fdGFsEZhTAžH™ªvWK^E1Y]FJR", - "origin": [ - 187.89996337890625, - 621.7501220703125 - ], - "bbox": [ - 187.89996337890625, - 615.2501220703125, - 280.89996337890625, - 634.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.89996337890625, - 615.2501220703125, - 280.89996337890625, - 634.150146484375 - ] - } - ] - }, - { - "number": 124, - "type": 0, - "bbox": [ - 289.9999694824219, - 606.85009765625, - 520.0, - 634.150146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "KNALY]FJR­X’HIFJ•\u0018Y]HJ•TFJMPX+R1 ªXIC\u001dEGYPM]HJALKNM", - "origin": [ - 289.9999694824219, - 621.7501220703125 - ], - "bbox": [ - 289.9999694824219, - 615.2501220703125, - 403.5000305175781, - 634.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "n€ƒB-:\u0018@fBD6^8*C", - "origin": [ - 403.5000305175781, - 621.7501220703125 - ], - "bbox": [ - 403.5000305175781, - 606.85009765625, - 441.2000427246094, - 631.7501220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "?EGF", - "origin": [ - 441.2000427246094, - 621.7501220703125 - ], - "bbox": [ - 441.2000427246094, - 615.2501220703125, - 451.10003662109375, - 634.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ":9", - "origin": [ - 451.10003662109375, - 621.7501220703125 - ], - "bbox": [ - 451.10003662109375, - 619.0501098632812, - 454.800048828125, - 631.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "-ALh?v", - "origin": [ - 454.800048828125, - 621.7501220703125 - ], - "bbox": [ - 454.800048828125, - 615.2501220703125, - 469.7000427246094, - 634.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.9999694824219, - 606.85009765625, - 469.7000427246094, - 634.150146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "0-\u001810", - "origin": [ - 471.79998779296875, - 621.7501220703125 - ], - "bbox": [ - 471.79998779296875, - 619.0501098632812, - 480.8999938964844, - 631.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "eigš", - "origin": [ - 480.8999938964844, - 621.7501220703125 - ], - "bbox": [ - 480.8999938964844, - 615.2501220703125, - 490.3999938964844, - 634.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 471.79998779296875, - 615.2501220703125, - 490.3999938964844, - 634.150146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "01+", - "origin": [ - 492.5, - 621.7501220703125 - ], - "bbox": [ - 492.5, - 619.0501098632812, - 497.1000061035156, - 631.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/q", - "origin": [ - 497.1000061035156, - 621.7501220703125 - ], - "bbox": [ - 497.1000061035156, - 615.2501220703125, - 501.8000183105469, - 634.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": ",+", - "origin": [ - 501.8000183105469, - 621.7501220703125 - ], - "bbox": [ - 501.8000183105469, - 619.0501098632812, - 506.20001220703125, - 631.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "T`aHJR", - "origin": [ - 506.20001220703125, - 621.7501220703125 - ], - "bbox": [ - 506.20001220703125, - 615.2501220703125, - 520.0, - 634.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.5, - 615.2501220703125, - 520.0, - 634.150146484375 - ] - } - ] - }, - { - "number": 125, - "type": 0, - "bbox": [ - 100.5, - 625.650146484375, - 172.5, - 645.0501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "E1CaCrMZEGF4ALO", - "origin": [ - 100.5, - 632.650146484375 - ], - "bbox": [ - 100.5, - 626.150146484375, - 133.39999389648438, - 645.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.5, - 626.150146484375, - 133.39999389648438, - 645.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "<", - "origin": [ - 141.60000610351562, - 632.650146484375 - ], - "bbox": [ - 141.60000610351562, - 625.650146484375, - 141.60000610351562, - 644.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "4M] ™š", - "origin": [ - 141.60000610351562, - 632.650146484375 - ], - "bbox": [ - 141.60000610351562, - 626.150146484375, - 155.70001220703125, - 645.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.60000610351562, - 625.650146484375, - 155.70001220703125, - 645.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "=", - "origin": [ - 161.5, - 632.650146484375 - ], - "bbox": [ - 161.5, - 625.650146484375, - 161.5, - 644.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "žocp", - "origin": [ - 161.5, - 632.650146484375 - ], - "bbox": [ - 161.5, - 626.150146484375, - 168.1999969482422, - 645.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 168.1999969482422, - 632.650146484375 - ], - "bbox": [ - 168.1999969482422, - 625.650146484375, - 172.5, - 644.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.5, - 625.650146484375, - 172.5, - 645.0501708984375 - ] - } - ] - }, - { - "number": 126, - "type": 0, - "bbox": [ - 73.69999694824219, - 628.650146484375, - 295.3999938964844, - 655.9501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "i/m", - "origin": [ - 73.69999694824219, - 643.5501708984375 - ], - "bbox": [ - 73.69999694824219, - 637.0501708984375, - 78.39999389648438, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "�>", - "origin": [ - 78.39999389648438, - 643.5501708984375 - ], - "bbox": [ - 78.39999389648438, - 636.5501708984375, - 82.69999694824219, - 654.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "Nb©ALO\u001dST£\u0018tDEeS", - "origin": [ - 82.69999694824219, - 643.5501708984375 - ], - "bbox": [ - 82.69999694824219, - 637.0501708984375, - 121.39999389648438, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "3.", - "origin": [ - 121.39999389648438, - 643.5501708984375 - ], - "bbox": [ - 121.39999389648438, - 640.8501586914062, - 129.59999084472656, - 652.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u000bo", - "origin": [ - 129.59999084472656, - 643.5501708984375 - ], - "bbox": [ - 129.59999084472656, - 637.0501708984375, - 140.29998779296875, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u0018", - "origin": [ - 140.29998779296875, - 643.5501708984375 - ], - "bbox": [ - 140.29998779296875, - 640.8501586914062, - 144.39999389648438, - 652.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/qGn", - "origin": [ - 144.39999389648438, - 643.5501708984375 - ], - "bbox": [ - 144.39999389648438, - 637.0501708984375, - 153.49998474121094, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "@6", - "origin": [ - 153.49998474121094, - 643.5501708984375 - ], - "bbox": [ - 153.49998474121094, - 640.8501586914062, - 162.29998779296875, - 652.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "ˆI70\u00120q[A8d\u000e_`27C9?fd;€W?vu7SPd", - "origin": [ - 162.29998779296875, - 643.5501708984375 - ], - "bbox": [ - 162.29998779296875, - 628.650146484375, - 250.49998474121094, - 653.5501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "�0\u0019", - "origin": [ - 250.49998474121094, - 643.5501708984375 - ], - "bbox": [ - 250.49998474121094, - 643.3501586914062, - 261.1999816894531, - 652.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\u0019o1o", - "origin": [ - 261.1999816894531, - 643.5501708984375 - ], - "bbox": [ - 261.1999816894531, - 637.0501708984375, - 274.3999938964844, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "&\u0018", - "origin": [ - 274.3999938964844, - 643.5501708984375 - ], - "bbox": [ - 274.3999938964844, - 640.8501586914062, - 278.6000061035156, - 652.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "cksoPi", - "origin": [ - 278.6000061035156, - 643.5501708984375 - ], - "bbox": [ - 278.6000061035156, - 637.0501708984375, - 290.79998779296875, - 655.9501953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "10", - "origin": [ - 290.79998779296875, - 643.5501708984375 - ], - "bbox": [ - 290.79998779296875, - 640.8501586914062, - 295.3999938964844, - 652.9501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69999694824219, - 628.650146484375, - 295.3999938964844, - 655.9501953125 - ] - } - ] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 73.69999694824219, - 639.7501220703125, - 236.59999084472656, - 667.0501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "ien", - "origin": [ - 73.69999694824219, - 654.650146484375 - ], - "bbox": [ - 73.69999694824219, - 648.150146484375, - 78.29999542236328, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 114.0, - "descender": -70.0, - "text": "\r>", - "origin": [ - 78.29999542236328, - 654.650146484375 - ], - "bbox": [ - 78.29999542236328, - 647.650146484375, - 82.69999694824219, - 666.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "'.", - "origin": [ - 82.69999694824219, - 654.650146484375 - ], - "bbox": [ - 82.69999694824219, - 651.9501342773438, - 90.5999984741211, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "BR1FJALO\u0018A", - "origin": [ - 90.5999984741211, - 654.650146484375 - ], - "bbox": [ - 90.5999984741211, - 648.150146484375, - 113.49999237060547, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u000e\u0017", - "origin": [ - 113.49999237060547, - 654.650146484375 - ], - "bbox": [ - 113.49999237060547, - 654.4501342773438, - 119.09999084472656, - 663.150146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "\"`", - "origin": [ - 119.09999084472656, - 654.650146484375 - ], - "bbox": [ - 119.09999084472656, - 648.150146484375, - 126.59999084472656, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "#\u0015", - "origin": [ - 126.59999084472656, - 654.650146484375 - ], - "bbox": [ - 126.59999084472656, - 651.9501342773438, - 131.6999969482422, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "¡ReXIXJE", - "origin": [ - 131.6999969482422, - 654.650146484375 - ], - "bbox": [ - 131.6999969482422, - 648.150146484375, - 150.8000030517578, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "N)", - "origin": [ - 150.8000030517578, - 654.650146484375 - ], - "bbox": [ - 150.8000030517578, - 639.7501220703125, - 155.1999969482422, - 664.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/RZ‘¬X", - "origin": [ - 155.1999969482422, - 654.650146484375 - ], - "bbox": [ - 155.1999969482422, - 648.150146484375, - 170.79998779296875, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "<)", - "origin": [ - 170.79998779296875, - 654.650146484375 - ], - "bbox": [ - 170.79998779296875, - 639.7501220703125, - 174.39999389648438, - 664.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "TA", - "origin": [ - 174.39999389648438, - 654.650146484375 - ], - "bbox": [ - 174.39999389648438, - 648.150146484375, - 179.39999389648438, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "J", - "color": 0, - "ascender": 85.0, - "descender": -2.0, - "text": "\u001f�", - "origin": [ - 179.39999389648438, - 654.650146484375 - ], - "bbox": [ - 179.39999389648438, - 654.4501342773438, - 185.1999969482422, - 663.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.69999694824219, - 639.7501220703125, - 185.1999969482422, - 667.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO\u001dS", - "origin": [ - 195.1999969482422, - 654.650146484375 - ], - "bbox": [ - 195.1999969482422, - 648.150146484375, - 204.89999389648438, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Z+", - "origin": [ - 204.89999389648438, - 654.650146484375 - ], - "bbox": [ - 204.89999389648438, - 639.7501220703125, - 213.1999969482422, - 664.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "g•\u001dSaEGFJX", - "origin": [ - 213.1999969482422, - 654.650146484375 - ], - "bbox": [ - 213.1999969482422, - 648.150146484375, - 236.59999084472656, - 667.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 195.1999969482422, - 639.7501220703125, - 236.59999084472656, - 667.0501708984375 - ] - } - ] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 245.5, - 639.7501220703125, - 411.60003662109375, - 667.0501708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "EGO“\\\\u001f«", - "origin": [ - 245.5, - 654.650146484375 - ], - "bbox": [ - 245.5, - 648.150146484375, - 267.5999755859375, - 667.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.5, - 648.150146484375, - 267.5999755859375, - 667.0501708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "o", - "origin": [ - 288.0, - 654.650146484375 - ], - "bbox": [ - 288.0, - 648.150146484375, - 288.0, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\u0019\u0018", - "origin": [ - 288.0, - 654.650146484375 - ], - "bbox": [ - 288.0, - 651.9501342773438, - 292.1000061035156, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/q1n", - "origin": [ - 292.1000061035156, - 654.650146484375 - ], - "bbox": [ - 292.1000061035156, - 648.150146484375, - 301.3000183105469, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "\r2", - "origin": [ - 301.3000183105469, - 654.650146484375 - ], - "bbox": [ - 301.3000183105469, - 651.9501342773438, - 309.6000061035156, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "E", - "color": 0, - "ascender": 100.0, - "descender": -149.0, - "text": "Ad\u000e_`2NC9?fdo€W?vuNSPd", - "origin": [ - 309.6000061035156, - 654.650146484375 - ], - "bbox": [ - 309.6000061035156, - 639.7501220703125, - 366.6000061035156, - 664.650146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "P #\"3+", - "origin": [ - 366.6000061035156, - 654.650146484375 - ], - "bbox": [ - 366.6000061035156, - 651.9501342773438, - 385.60003662109375, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/pQo]k", - "origin": [ - 385.60003662109375, - 654.650146484375 - ], - "bbox": [ - 385.60003662109375, - 648.150146484375, - 399.10003662109375, - 667.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "I", - "color": 0, - "ascender": 94.0, - "descender": -27.0, - "text": "A+", - "origin": [ - 399.10003662109375, - 654.650146484375 - ], - "bbox": [ - 399.10003662109375, - 651.9501342773438, - 402.4000244140625, - 664.0501708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 124.0, - "descender": -65.0, - "text": "/p1m", - "origin": [ - 402.4000244140625, - 654.650146484375 - ], - "bbox": [ - 402.4000244140625, - 648.150146484375, - 411.60003662109375, - 667.0501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.0, - 639.7501220703125, - 411.60003662109375, - 667.0501708984375 - ] - } - ] - }, - { - "number": 130, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ] - }, - { - "number": 131, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ] - }, - { - "number": 132, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "9", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 130, - "type": 0, - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Fourth International Workshop DICE2008", - "origin": [ - 71.11609649658203, - 80.942626953125 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 71.9962158203125, - 239.79278564453125, - 83.11447143554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "IOP Publishing", - "origin": [ - 463.48309326171875, - 80.942626953125 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.48309326171875, - 71.9962158203125, - 524.6535034179688, - 83.11447143554688 - ] - } - ], - "tag": "header" - }, - { - "number": 131, - "type": 0, - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 524.6533203125, - 96.58395385742188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "Journal of Physics: Conference Series", - "origin": [ - 71.11609649658203, - 94.412109375 - ], - "bbox": [ - 71.11609649658203, - 85.4656982421875, - 223.22108459472656, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "Times-Bold", - "color": 0, - "ascender": 0.9350000023841858, - "descender": -0.21799999475479126, - "text": " 174", - "origin": [ - 223.22108459472656, - 94.412109375 - ], - "bbox": [ - 223.22108459472656, - 85.09707641601562, - 240.6695556640625, - 96.58395385742188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": " (2009) 012009", - "origin": [ - 240.6695556640625, - 94.412109375 - ], - "bbox": [ - 240.6695556640625, - 85.4656982421875, - 302.0989074707031, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.11609649658203, - 85.09707641601562, - 302.0989074707031, - 96.58395385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 0.8980000019073486, - "descender": -0.21799999475479126, - "text": "doi:10.1088/1742-6596/174/1/012009", - "origin": [ - 372.7138671875, - 94.412109375 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.7138671875, - 85.4656982421875, - 524.6533203125, - 96.58395385742188 - ] - } - ], - "tag": "header" - }, - { - "number": 132, - "type": 0, - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "9", - "origin": [ - 295.75, - 798.8314819335938 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.75, - 791.7025756835938, - 299.75, - 800.5619506835938 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 9, - "page_size": [ - 595.5, - 842.25 - ] - } -} \ No newline at end of file diff --git a/tests/assets/pre_proc_results/scihub_60900000/preproc_out.json b/tests/assets/pre_proc_results/scihub_60900000/preproc_out.json deleted file mode 100644 index 85c12242b..000000000 --- a/tests/assets/pre_proc_results/scihub_60900000/preproc_out.json +++ /dev/null @@ -1,64818 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [ - { - "size": 6.0, - "flags": 4, - "font": "Geneva", - "color": 2236191, - "ascender": 3.8095703125, - "descender": 3.8095703125, - "text": "Motor Control, 2003, 77777, 304-320", - "origin": [ - 54.0, - 70.3798828125 - ], - "bbox": [ - NaN, - NaN, - NaN, - NaN - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 53.99970245361328, - 557.5230102539062, - 378.0717468261719, - 602.529296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "D.A. Nowak and H. Topka are with the Department of Neurology and Clinical Neu-", - "origin": [ - 78.0, - 567.0 - ], - "bbox": [ - 78.0, - 557.5230102539062, - 378.0717468261719, - 569.5289916992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 557.5230102539062, - 378.0717468261719, - 569.5289916992188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rophysiology, and J. Hermsdörfer is with the Clinical Neuropsychology Research Group in", - "origin": [ - 53.99970245361328, - 577.97998046875 - ], - "bbox": [ - 53.99970245361328, - 568.5029907226562, - 378.04742431640625, - 580.5089721679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99970245361328, - 568.5029907226562, - 378.04742431640625, - 580.5089721679688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the Department of Neuropsychology—all in the Academic Hospital Bogenhausen at the", - "origin": [ - 53.99970245361328, - 589.0203247070312 - ], - "bbox": [ - 53.99970245361328, - 579.5433349609375, - 378.0186767578125, - 591.54931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99970245361328, - 579.5433349609375, - 378.0186767578125, - 591.54931640625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Technical University of Munich, Englschalkingerstrasse 77, D-81925 Munich, Germany.", - "origin": [ - 53.99970245361328, - 600.0003051757812 - ], - "bbox": [ - 53.99970245361328, - 590.5233154296875, - 373.2396545410156, - 602.529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99970245361328, - 590.5233154296875, - 373.2396545410156, - 602.529296875 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "Geneva", - "color": 2236191, - "ascender": 3.8095703125, - "descender": 3.8095703125, - "text": "Dennis A. Nowak, Joachim Hermsdörfer,", - "origin": [ - 66.95999908447266, - 207.3599853515625 - ], - "bbox": [ - NaN, - NaN, - NaN, - NaN - ] - }, - { - "size": 7.0, - "flags": 5, - "font": "Geneva", - "color": 2236191, - "ascender": 3.8095703125, - "descender": 3.8095703125, - "text": " ", - "origin": [ - 276.7799987792969, - 203.33999633789062 - ], - "bbox": [ - NaN, - NaN, - NaN, - NaN - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "Geneva", - "color": 2236191, - "ascender": 3.8095703125, - "descender": 3.8095703125, - "text": "and Helge Topka", - "origin": [ - 277.67999267578125, - 207.3599853515625 - ], - "bbox": [ - NaN, - NaN, - NaN, - NaN - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 78.0, - 220.8629913330078, - 354.0697021484375, - 463.8712158203125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Amyotrophic lateral sclerosis is a degenerative motor neuron disorder with", - "origin": [ - 78.0, - 230.33999633789062 - ], - "bbox": [ - 78.0, - 220.8629913330078, - 354.0364685058594, - 232.86900329589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 220.8629913330078, - 354.0364685058594, - 232.86900329589844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "progressive and exclusive loss of motor neurons in the spinal cord, brainstem,", - "origin": [ - 78.0, - 241.38031005859375 - ], - "bbox": [ - 78.0, - 231.90330505371094, - 354.0103759765625, - 243.90931701660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 231.90330505371094, - 354.0103759765625, - 243.90931701660156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and motor cortex. Five patients with amyotrophic lateral sclerosis, and 5 age-", - "origin": [ - 78.0, - 252.36032104492188 - ], - "bbox": [ - 78.0, - 242.88331604003906, - 354.054443359375, - 254.8893280029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 242.88331604003906, - 354.054443359375, - 254.8893280029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "matched, healthy control subjects performed vertical point-to-point arm move-", - "origin": [ - 78.0, - 263.34033203125 - ], - "bbox": [ - 78.0, - 253.8633270263672, - 354.0246276855469, - 265.86932373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 253.8633270263672, - 354.0246276855469, - 265.86932373046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments with an instrumented hand-held object. In between the movements, the", - "origin": [ - 78.0, - 274.3806457519531 - ], - "bbox": [ - 78.0, - 264.9036560058594, - 354.06243896484375, - 276.9096374511719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 264.9036560058594, - 354.06243896484375, - 276.9096374511719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "object was held stationary. Compared with healthy controls, all patients gen-", - "origin": [ - 78.0, - 285.36065673828125 - ], - "bbox": [ - 78.0, - 275.8836669921875, - 354.0166320800781, - 287.8896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 275.8836669921875, - 354.0166320800781, - 287.8896484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "erated greater grip forces during the phase of stationary holding of the object", - "origin": [ - 78.0, - 296.3406677246094 - ], - "bbox": [ - 78.0, - 286.8636779785156, - 354.06793212890625, - 298.8696594238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 286.8636779785156, - 354.06793212890625, - 298.8696594238281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and greater ratios between grip and load force maximums during the arm", - "origin": [ - 78.0, - 307.3809814453125 - ], - "bbox": [ - 78.0, - 297.90399169921875, - 354.0607604980469, - 309.90997314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 297.90399169921875, - 354.0607604980469, - 309.90997314453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements. We conclude that in amyotrophic lateral sclerosis, the ability to", - "origin": [ - 78.0, - 318.3609924316406 - ], - "bbox": [ - 78.0, - 308.8840026855469, - 354.0688781738281, - 320.8899841308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 308.8840026855469, - 354.0688781738281, - 320.8899841308594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "scale the grip force magnitude efficiently according to the actual loading re-", - "origin": [ - 78.0, - 329.34100341796875 - ], - "bbox": [ - 78.0, - 319.864013671875, - 354.0364990234375, - 331.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 319.864013671875, - 354.0364990234375, - 331.8699951171875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "quirements is impaired. When performing upward movements, controls in-", - "origin": [ - 78.0, - 340.3210144042969 - ], - "bbox": [ - 78.0, - 330.8440246582031, - 354.0301208496094, - 342.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 330.8440246582031, - 354.0301208496094, - 342.8500061035156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "creased grip force in parallel with load force right from the movement onset;", - "origin": [ - 78.0, - 351.361328125 - ], - "bbox": [ - 78.0, - 341.88433837890625, - 354.0697021484375, - 353.89031982421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 341.88433837890625, - 354.0697021484375, - 353.89031982421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "during downward movements, controls anticipated an early decrease of load", - "origin": [ - 78.0, - 362.3413391113281 - ], - "bbox": [ - 78.0, - 352.8643493652344, - 354.0643310546875, - 364.8703308105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 352.8643493652344, - 354.0643310546875, - 364.8703308105469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force by constant or decreasing grip forces. In contrast, 3 of 5 patients showed", - "origin": [ - 78.0, - 373.32135009765625 - ], - "bbox": [ - 78.0, - 363.8443603515625, - 354.008544921875, - 375.850341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 363.8443603515625, - 354.008544921875, - 375.850341796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "an early increase of grip force during both upward and downward movements,", - "origin": [ - 78.0, - 384.3616638183594 - ], - "bbox": [ - 78.0, - 374.8846740722656, - 354.03094482421875, - 386.8906555175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 374.8846740722656, - 354.03094482421875, - 386.8906555175781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "indicating that in amyotrophic lateral sclerosis, the differential regulation of", - "origin": [ - 78.0, - 395.3416748046875 - ], - "bbox": [ - 78.0, - 385.86468505859375, - 353.9860534667969, - 397.87066650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 385.86468505859375, - 353.9860534667969, - 397.87066650390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the grip force output according to the direction-dependent load force profile", - "origin": [ - 78.0, - 406.3216552734375 - ], - "bbox": [ - 78.0, - 396.84466552734375, - 354.0058288574219, - 408.85064697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 396.84466552734375, - 354.0058288574219, - 408.85064697265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "may be impaired. In motor neuron disease, the inaccurate grip force scaling", - "origin": [ - 78.0, - 417.3619384765625 - ], - "bbox": [ - 78.0, - 407.88494873046875, - 354.0588684082031, - 419.89093017578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 407.88494873046875, - 354.0588684082031, - 419.89093017578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and the impaired temporal coupling between grip and load force profiles may", - "origin": [ - 78.0, - 428.3419494628906 - ], - "bbox": [ - 78.0, - 418.8649597167969, - 354.03546142578125, - 430.8709411621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 418.8649597167969, - 354.03546142578125, - 430.8709411621094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "either directly result from deficient motor execution or be secondary to ac-", - "origin": [ - 78.0, - 439.32196044921875 - ], - "bbox": [ - 78.0, - 429.844970703125, - 354.0625305175781, - 441.8509521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 429.844970703125, - 354.0625305175781, - 441.8509521484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "companying symptoms, such as dyscoordination of hand and finger muscles", - "origin": [ - 78.0, - 450.36224365234375 - ], - "bbox": [ - 78.0, - 440.88525390625, - 354.0435791015625, - 452.8912353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 440.88525390625, - 354.0435791015625, - 452.8912353515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "due to spasticity.", - "origin": [ - 78.0, - 461.34222412109375 - ], - "bbox": [ - 78.0, - 451.865234375, - 138.15240478515625, - 463.8712158203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 451.865234375, - 138.15240478515625, - 463.8712158203125 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 78.0, - 468.8455505371094, - 353.9968566894531, - 491.891845703125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 22, - "font": "Times-BoldItalic", - "color": 2236191, - "ascender": 0.972000002861023, - "descender": -0.3240000009536743, - "text": "Key Words:", - "origin": [ - 78.0, - 478.3225402832031 - ], - "bbox": [ - 78.0, - 469.5745544433594, - 119.92020416259766, - 481.238525390625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " amyotrophic lateral sclerosis, grip force, forward control, motor", - "origin": [ - 119.88059997558594, - 478.3225402832031 - ], - "bbox": [ - 119.88059997558594, - 468.8455505371094, - 353.9968566894531, - 480.8515319824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 468.8455505371094, - 353.9968566894531, - 481.238525390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "prediction, internal models", - "origin": [ - 78.00090026855469, - 489.36285400390625 - ], - "bbox": [ - 78.00090026855469, - 479.8858642578125, - 174.72390747070312, - 491.891845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00090026855469, - 479.8858642578125, - 174.72390747070312, - 491.891845703125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 54.0, - 520.8299560546875, - 378.05401611328125, - 545.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "There is a large body of evidence that grip force adjustments occur in anticipation", - "origin": [ - 54.0, - 531.3599853515625 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.051025390625, - 534.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.051025390625, - 534.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of environmental demands. The coordination between grip and load forces when", - "origin": [ - 54.0, - 542.3400268554688 - ], - "bbox": [ - 54.0, - 531.8099975585938, - 378.05401611328125, - 545.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 531.8099975585938, - 378.05401611328125, - 545.1500244140625 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 256.32, - 593.28, - 267.35999999999996, - 601.92 - ], - "image_path": "equations_inline/0_256_593_267_601.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 220.8629913330078, - 432.0, - 602.529296875 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [ - { - "size": 6.0, - "flags": 4, - "font": "Geneva", - "color": 2236191, - "ascender": 3.8095703125, - "descender": 3.8095703125, - "text": "Motor Control, 2003, 77777, 304-320", - "origin": [ - 54.0, - 70.3798828125 - ], - "bbox": [ - NaN, - NaN, - NaN, - NaN - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 53.99970245361328, - 557.5230102539062, - 378.0717468261719, - 602.529296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "D.A. Nowak and H. Topka are with the Department of Neurology and Clinical Neu-", - "origin": [ - 78.0, - 567.0 - ], - "bbox": [ - 78.0, - 557.5230102539062, - 378.0717468261719, - 569.5289916992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 557.5230102539062, - 378.0717468261719, - 569.5289916992188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rophysiology, and J. Hermsdörfer is with the Clinical Neuropsychology Research Group in", - "origin": [ - 53.99970245361328, - 577.97998046875 - ], - "bbox": [ - 53.99970245361328, - 568.5029907226562, - 378.04742431640625, - 580.5089721679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99970245361328, - 568.5029907226562, - 378.04742431640625, - 580.5089721679688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the Department of Neuropsychology—all in the Academic Hospital Bogenhausen at the", - "origin": [ - 53.99970245361328, - 589.0203247070312 - ], - "bbox": [ - 53.99970245361328, - 579.5433349609375, - 378.0186767578125, - 591.54931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99970245361328, - 579.5433349609375, - 378.0186767578125, - 591.54931640625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Technical University of Munich, Englschalkingerstrasse 77, D-81925 Munich, Germany.", - "origin": [ - 53.99970245361328, - 600.0003051757812 - ], - "bbox": [ - 53.99970245361328, - 590.5233154296875, - 373.2396545410156, - 602.529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99970245361328, - 590.5233154296875, - 373.2396545410156, - 602.529296875 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "Geneva", - "color": 2236191, - "ascender": 3.8095703125, - "descender": 3.8095703125, - "text": "Dennis A. Nowak, Joachim Hermsdörfer,", - "origin": [ - 66.95999908447266, - 207.3599853515625 - ], - "bbox": [ - NaN, - NaN, - NaN, - NaN - ] - }, - { - "size": 7.0, - "flags": 5, - "font": "Geneva", - "color": 2236191, - "ascender": 3.8095703125, - "descender": 3.8095703125, - "text": " ", - "origin": [ - 276.7799987792969, - 203.33999633789062 - ], - "bbox": [ - NaN, - NaN, - NaN, - NaN - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "Geneva", - "color": 2236191, - "ascender": 3.8095703125, - "descender": 3.8095703125, - "text": "and Helge Topka", - "origin": [ - 277.67999267578125, - 207.3599853515625 - ], - "bbox": [ - NaN, - NaN, - NaN, - NaN - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 78.0, - 220.8629913330078, - 354.0697021484375, - 463.8712158203125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Amyotrophic lateral sclerosis is a degenerative motor neuron disorder with", - "origin": [ - 78.0, - 230.33999633789062 - ], - "bbox": [ - 78.0, - 220.8629913330078, - 354.0364685058594, - 232.86900329589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 220.8629913330078, - 354.0364685058594, - 232.86900329589844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "progressive and exclusive loss of motor neurons in the spinal cord, brainstem,", - "origin": [ - 78.0, - 241.38031005859375 - ], - "bbox": [ - 78.0, - 231.90330505371094, - 354.0103759765625, - 243.90931701660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 231.90330505371094, - 354.0103759765625, - 243.90931701660156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and motor cortex. Five patients with amyotrophic lateral sclerosis, and 5 age-", - "origin": [ - 78.0, - 252.36032104492188 - ], - "bbox": [ - 78.0, - 242.88331604003906, - 354.054443359375, - 254.8893280029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 242.88331604003906, - 354.054443359375, - 254.8893280029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "matched, healthy control subjects performed vertical point-to-point arm move-", - "origin": [ - 78.0, - 263.34033203125 - ], - "bbox": [ - 78.0, - 253.8633270263672, - 354.0246276855469, - 265.86932373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 253.8633270263672, - 354.0246276855469, - 265.86932373046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments with an instrumented hand-held object. In between the movements, the", - "origin": [ - 78.0, - 274.3806457519531 - ], - "bbox": [ - 78.0, - 264.9036560058594, - 354.06243896484375, - 276.9096374511719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 264.9036560058594, - 354.06243896484375, - 276.9096374511719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "object was held stationary. Compared with healthy controls, all patients gen-", - "origin": [ - 78.0, - 285.36065673828125 - ], - "bbox": [ - 78.0, - 275.8836669921875, - 354.0166320800781, - 287.8896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 275.8836669921875, - 354.0166320800781, - 287.8896484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "erated greater grip forces during the phase of stationary holding of the object", - "origin": [ - 78.0, - 296.3406677246094 - ], - "bbox": [ - 78.0, - 286.8636779785156, - 354.06793212890625, - 298.8696594238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 286.8636779785156, - 354.06793212890625, - 298.8696594238281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and greater ratios between grip and load force maximums during the arm", - "origin": [ - 78.0, - 307.3809814453125 - ], - "bbox": [ - 78.0, - 297.90399169921875, - 354.0607604980469, - 309.90997314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 297.90399169921875, - 354.0607604980469, - 309.90997314453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements. We conclude that in amyotrophic lateral sclerosis, the ability to", - "origin": [ - 78.0, - 318.3609924316406 - ], - "bbox": [ - 78.0, - 308.8840026855469, - 354.0688781738281, - 320.8899841308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 308.8840026855469, - 354.0688781738281, - 320.8899841308594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "scale the grip force magnitude efficiently according to the actual loading re-", - "origin": [ - 78.0, - 329.34100341796875 - ], - "bbox": [ - 78.0, - 319.864013671875, - 354.0364990234375, - 331.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 319.864013671875, - 354.0364990234375, - 331.8699951171875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "quirements is impaired. When performing upward movements, controls in-", - "origin": [ - 78.0, - 340.3210144042969 - ], - "bbox": [ - 78.0, - 330.8440246582031, - 354.0301208496094, - 342.8500061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 330.8440246582031, - 354.0301208496094, - 342.8500061035156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "creased grip force in parallel with load force right from the movement onset;", - "origin": [ - 78.0, - 351.361328125 - ], - "bbox": [ - 78.0, - 341.88433837890625, - 354.0697021484375, - 353.89031982421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 341.88433837890625, - 354.0697021484375, - 353.89031982421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "during downward movements, controls anticipated an early decrease of load", - "origin": [ - 78.0, - 362.3413391113281 - ], - "bbox": [ - 78.0, - 352.8643493652344, - 354.0643310546875, - 364.8703308105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 352.8643493652344, - 354.0643310546875, - 364.8703308105469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force by constant or decreasing grip forces. In contrast, 3 of 5 patients showed", - "origin": [ - 78.0, - 373.32135009765625 - ], - "bbox": [ - 78.0, - 363.8443603515625, - 354.008544921875, - 375.850341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 363.8443603515625, - 354.008544921875, - 375.850341796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "an early increase of grip force during both upward and downward movements,", - "origin": [ - 78.0, - 384.3616638183594 - ], - "bbox": [ - 78.0, - 374.8846740722656, - 354.03094482421875, - 386.8906555175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 374.8846740722656, - 354.03094482421875, - 386.8906555175781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "indicating that in amyotrophic lateral sclerosis, the differential regulation of", - "origin": [ - 78.0, - 395.3416748046875 - ], - "bbox": [ - 78.0, - 385.86468505859375, - 353.9860534667969, - 397.87066650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 385.86468505859375, - 353.9860534667969, - 397.87066650390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the grip force output according to the direction-dependent load force profile", - "origin": [ - 78.0, - 406.3216552734375 - ], - "bbox": [ - 78.0, - 396.84466552734375, - 354.0058288574219, - 408.85064697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 396.84466552734375, - 354.0058288574219, - 408.85064697265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "may be impaired. In motor neuron disease, the inaccurate grip force scaling", - "origin": [ - 78.0, - 417.3619384765625 - ], - "bbox": [ - 78.0, - 407.88494873046875, - 354.0588684082031, - 419.89093017578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 407.88494873046875, - 354.0588684082031, - 419.89093017578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and the impaired temporal coupling between grip and load force profiles may", - "origin": [ - 78.0, - 428.3419494628906 - ], - "bbox": [ - 78.0, - 418.8649597167969, - 354.03546142578125, - 430.8709411621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 418.8649597167969, - 354.03546142578125, - 430.8709411621094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "either directly result from deficient motor execution or be secondary to ac-", - "origin": [ - 78.0, - 439.32196044921875 - ], - "bbox": [ - 78.0, - 429.844970703125, - 354.0625305175781, - 441.8509521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 429.844970703125, - 354.0625305175781, - 441.8509521484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "companying symptoms, such as dyscoordination of hand and finger muscles", - "origin": [ - 78.0, - 450.36224365234375 - ], - "bbox": [ - 78.0, - 440.88525390625, - 354.0435791015625, - 452.8912353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 440.88525390625, - 354.0435791015625, - 452.8912353515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "due to spasticity.", - "origin": [ - 78.0, - 461.34222412109375 - ], - "bbox": [ - 78.0, - 451.865234375, - 138.15240478515625, - 463.8712158203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 451.865234375, - 138.15240478515625, - 463.8712158203125 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 78.0, - 468.8455505371094, - 353.9968566894531, - 491.891845703125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 22, - "font": "Times-BoldItalic", - "color": 2236191, - "ascender": 0.972000002861023, - "descender": -0.3240000009536743, - "text": "Key Words:", - "origin": [ - 78.0, - 478.3225402832031 - ], - "bbox": [ - 78.0, - 469.5745544433594, - 119.92020416259766, - 481.238525390625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " amyotrophic lateral sclerosis, grip force, forward control, motor", - "origin": [ - 119.88059997558594, - 478.3225402832031 - ], - "bbox": [ - 119.88059997558594, - 468.8455505371094, - 353.9968566894531, - 480.8515319824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 468.8455505371094, - 353.9968566894531, - 481.238525390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "prediction, internal models", - "origin": [ - 78.00090026855469, - 489.36285400390625 - ], - "bbox": [ - 78.00090026855469, - 479.8858642578125, - 174.72390747070312, - 491.891845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00090026855469, - 479.8858642578125, - 174.72390747070312, - 491.891845703125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 54.0, - 520.8299560546875, - 378.05401611328125, - 545.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "There is a large body of evidence that grip force adjustments occur in anticipation", - "origin": [ - 54.0, - 531.3599853515625 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.051025390625, - 534.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.051025390625, - 534.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of environmental demands. The coordination between grip and load forces when", - "origin": [ - 54.0, - 542.3400268554688 - ], - "bbox": [ - 54.0, - 531.8099975585938, - 378.05401611328125, - 545.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 531.8099975585938, - 378.05401611328125, - 545.1500244140625 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_1": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.0780944824219, - 604.1299438476562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grasping, lifting and holding objects has been described in detail by Johansson,", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0600891113281, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0600891113281, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Westling and their co-workers (Johansson, 1996; Johansson & Westling, 1984,", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 377.9831237792969, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 377.9831237792969, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1988). These researchers have demonstrated that lifting and holding of objects is", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.04608154296875, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.04608154296875, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "achieved by a complex interplay between forward mechanisms that adjust grip", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0710144042969, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0710144042969, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forces in anticipation of external object properties and feedback mechanisms that", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.031982421875, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.031982421875, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "modify finger forces when a change in object loading has been encountered", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.02801513671875, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.02801513671875, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(Johansson, 1996, 1998). Feedforward regulation requires the use of sensorimotor", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.06402587890625, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.06402587890625, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "memory, as grip force parameters, such as object weight and friction between skin", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.0380859375, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.0380859375, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and object surface, are recalled from previous lifts on a predictive basis (Johansson", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.03485107421875, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.03485107421875, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "& Westling, 1984, 1988).", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 155.09201049804688, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 155.09201049804688, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "When a hand-held object is vertically moved in a point-to-point fashion, it is", - "origin": [ - 78.0, - 183.35983276367188 - ], - "bbox": [ - 78.0, - 172.829833984375, - 378.0179748535156, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 172.829833984375, - 378.0179748535156, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "first accelerated from rest and then decelerated to be held stationary again at the", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0230407714844, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0230407714844, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "desired end position. In this situation, grip force has to overcome acceleration-", - "origin": [ - 54.0, - 205.37985229492188 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.0369873046875, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.0369873046875, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "induced inertial loads of the grasped object. During vertical point-to-point move-", - "origin": [ - 54.0, - 216.35986328125 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.04693603515625, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.04693603515625, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments with a hand-held object, load force fluctuates, reaching a maximum early in", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0760803222656, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0760803222656, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "upward and late in downward movements. In healthy adults, grip force increases", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.02703857421875, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.02703857421875, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in parallel with load force during the acceleratory phase of an upward movement", - "origin": [ - 54.0, - 249.35989379882812 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 377.9700622558594, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 377.9700622558594, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and during the deceleratory phase of downward movement (Flanagan & Wing,", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 377.9979553222656, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 377.9979553222656, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1993; Wing, 1996). A grip force maximum coincides with maximum load force", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0310363769531, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0310363769531, - 274.1899108886719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "early in upward and late in downward movements. When the object is held in the", - "origin": [ - 54.0, - 282.35992431640625 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0491027832031, - 285.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0491027832031, - 285.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "air at rest in between single movements, only its weight has to be counteracted by", - "origin": [ - 54.0, - 293.3399353027344 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 377.9990234375, - 296.1499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 377.9990234375, - 296.1499328613281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "adequate grip forces. The close temporal coupling between grip and load forces", - "origin": [ - 54.0, - 304.37994384765625 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.01507568359375, - 307.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.01507568359375, - 307.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "during vertical point-to-point movements indicates acquired knowledge about the", - "origin": [ - 54.0, - 315.3599548339844 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.0300598144531, - 318.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.0300598144531, - 318.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "environmental effects of arm movements on a hand-held load. An internal model", - "origin": [ - 54.0, - 326.3399658203125 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0130310058594, - 329.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0130310058594, - 329.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of feedforward grip force regulation based on an internal sensorimotor representa-", - "origin": [ - 54.0, - 337.3199768066406 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0699768066406, - 340.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0699768066406, - 340.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tion of both the limb dynamics and the physical object properties has been sug-", - "origin": [ - 54.0, - 348.3599853515625 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.0109558105469, - 351.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.0109558105469, - 351.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "gested (Blakemore et al., 1998; Flanagan & Wing, 1997).", - "origin": [ - 54.0, - 359.3399963378906 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 283.1239013671875, - 362.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 283.1239013671875, - 362.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Amyotrophic lateral sclerosis (ALS) is a progressive degenerative disorder", - "origin": [ - 78.0, - 370.32000732421875 - ], - "bbox": [ - 78.0, - 359.7900085449219, - 378.0270080566406, - 373.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 359.7900085449219, - 378.0270080566406, - 373.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of motor neurons in the spinal cord, brainstem, and motor cortex (Lawyer & Netsky,", - "origin": [ - 54.0, - 381.3600158691406 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 377.96795654296875, - 384.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 377.96795654296875, - 384.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1953; World Federation of Neurology, 1994). The disease manifests clinically with", - "origin": [ - 54.0, - 392.34002685546875 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.0260314941406, - 395.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.0260314941406, - 395.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "progressive muscular weakness, atrophy, and corticospinal tract signs in various", - "origin": [ - 54.0, - 403.32000732421875 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 377.96075439453125, - 406.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 377.96075439453125, - 406.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "combinations. In its most typical form, awkwardness in tasks requiring fine finger", - "origin": [ - 54.0, - 414.3599853515625 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 377.9900207519531, - 417.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 377.9900207519531, - 417.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements (e.g., difficulties with buttons), stiffness of the fingers, and weakness", - "origin": [ - 54.0, - 425.3399963378906 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0250549316406, - 428.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0250549316406, - 428.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "or wasting of the hand muscles are first indications of the disease. In its later stages,", - "origin": [ - 54.0, - 436.32000732421875 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0429382324219, - 439.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0429382324219, - 439.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the disease presents the characteristic triad of atrophic weakness of the hands and", - "origin": [ - 54.0, - 447.3599853515625 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0780944824219, - 450.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0780944824219, - 450.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forearms, spasticity of the arms and legs, and generalized hyperreflexia, all in the", - "origin": [ - 54.0, - 458.3399658203125 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 378.0250244140625, - 461.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 378.0250244140625, - 461.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "absence of sensory deficits. Abductors, adductors, and extensors of fingers and", - "origin": [ - 54.0, - 469.3199768066406 - ], - "bbox": [ - 54.0, - 458.78997802734375, - 378.03704833984375, - 472.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 458.78997802734375, - 378.03704833984375, - 472.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "thumb tend to become weak before the long flexors, on which the hand grip de-", - "origin": [ - 54.0, - 480.3599853515625 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0159912109375, - 483.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0159912109375, - 483.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pends, and the dorsal interosseous spaces become hollowed.", - "origin": [ - 54.0, - 491.3399658203125 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 294.5110168457031, - 494.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 294.5110168457031, - 494.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "In a variety of disorders, impairments of anticipatory grip force adjustments", - "origin": [ - 78.0, - 502.3199462890625 - ], - "bbox": [ - 78.0, - 491.7899475097656, - 378.0480041503906, - 505.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 491.7899475097656, - 378.0480041503906, - 505.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "have been reported. In particular, deficits of efficient grip force scaling and re-", - "origin": [ - 54.0, - 513.3599853515625 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0500183105469, - 516.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0500183105469, - 516.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duced temporal precision of the grip and load force coupling were observed in", - "origin": [ - 54.0, - 524.3399658203125 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0129699707031, - 527.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0129699707031, - 527.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "disorders of the basal ganglia (Fellows et al., 1998), cerebellum (Babin-Ratté et", - "origin": [ - 54.0, - 535.3199462890625 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.06195068359375, - 538.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.06195068359375, - 538.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "al., 1999; Fellows et al., 2001; Nowak et al., 2002), in children with cerebral palsy", - "origin": [ - 54.0, - 546.3599853515625 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.00396728515625, - 549.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.00396728515625, - 549.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(Eliasson et al., 1995), when finger sensibility was impaired due to digital anaes-", - "origin": [ - 54.0, - 557.3399658203125 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.01702880859375, - 560.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.01702880859375, - 560.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "thesia (Johansson & Westling, 1984; Nowak et al., 2001) or due to polyneuropathy", - "origin": [ - 54.0, - 568.3199462890625 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.01580810546875, - 571.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.01580810546875, - 571.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(Nowak et al., 2003), during development (Paré & Dugas, 1999) and in the phase", - "origin": [ - 54.0, - 579.3599853515625 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.05206298828125, - 582.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.05206298828125, - 582.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of aging (Cole et al., 1999). Consequently, the precision grip paradigm provides a", - "origin": [ - 54.0, - 590.3399658203125 - ], - "bbox": [ - 54.0, - 579.8099365234375, - 378.0270080566406, - 593.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 579.8099365234375, - 378.0270080566406, - 593.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "useful tool in the understanding of normal sensorimotor processing and its dys-", - "origin": [ - 54.0, - 601.3199462890625 - ], - "bbox": [ - 54.0, - 590.7899169921875, - 378.0589904785156, - 604.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 590.7899169921875, - 378.0589904785156, - 604.1299438476562 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 301.44, - 77.75999999999999, - 311.03999999999996, - 86.39999999999999 - ], - "image_path": "equations_inline/1_301_77_311_86.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 0, - 432.0, - 648.0 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.0780944824219, - 604.1299438476562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grasping, lifting and holding objects has been described in detail by Johansson,", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0600891113281, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0600891113281, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Westling and their co-workers (Johansson, 1996; Johansson & Westling, 1984,", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 377.9831237792969, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 377.9831237792969, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1988). These researchers have demonstrated that lifting and holding of objects is", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.04608154296875, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.04608154296875, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "achieved by a complex interplay between forward mechanisms that adjust grip", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0710144042969, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0710144042969, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forces in anticipation of external object properties and feedback mechanisms that", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.031982421875, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.031982421875, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "modify finger forces when a change in object loading has been encountered", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.02801513671875, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.02801513671875, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(Johansson, 1996, 1998). Feedforward regulation requires the use of sensorimotor", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.06402587890625, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.06402587890625, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "memory, as grip force parameters, such as object weight and friction between skin", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.0380859375, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.0380859375, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and object surface, are recalled from previous lifts on a predictive basis (Johansson", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.03485107421875, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.03485107421875, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "& Westling, 1984, 1988).", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 155.09201049804688, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 155.09201049804688, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "When a hand-held object is vertically moved in a point-to-point fashion, it is", - "origin": [ - 78.0, - 183.35983276367188 - ], - "bbox": [ - 78.0, - 172.829833984375, - 378.0179748535156, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 172.829833984375, - 378.0179748535156, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "first accelerated from rest and then decelerated to be held stationary again at the", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0230407714844, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0230407714844, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "desired end position. In this situation, grip force has to overcome acceleration-", - "origin": [ - 54.0, - 205.37985229492188 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.0369873046875, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.0369873046875, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "induced inertial loads of the grasped object. During vertical point-to-point move-", - "origin": [ - 54.0, - 216.35986328125 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.04693603515625, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.04693603515625, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments with a hand-held object, load force fluctuates, reaching a maximum early in", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0760803222656, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0760803222656, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "upward and late in downward movements. In healthy adults, grip force increases", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.02703857421875, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.02703857421875, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in parallel with load force during the acceleratory phase of an upward movement", - "origin": [ - 54.0, - 249.35989379882812 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 377.9700622558594, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 377.9700622558594, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and during the deceleratory phase of downward movement (Flanagan & Wing,", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 377.9979553222656, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 377.9979553222656, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1993; Wing, 1996). A grip force maximum coincides with maximum load force", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0310363769531, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0310363769531, - 274.1899108886719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "early in upward and late in downward movements. When the object is held in the", - "origin": [ - 54.0, - 282.35992431640625 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0491027832031, - 285.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0491027832031, - 285.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "air at rest in between single movements, only its weight has to be counteracted by", - "origin": [ - 54.0, - 293.3399353027344 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 377.9990234375, - 296.1499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 377.9990234375, - 296.1499328613281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "adequate grip forces. The close temporal coupling between grip and load forces", - "origin": [ - 54.0, - 304.37994384765625 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.01507568359375, - 307.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.01507568359375, - 307.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "during vertical point-to-point movements indicates acquired knowledge about the", - "origin": [ - 54.0, - 315.3599548339844 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.0300598144531, - 318.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.0300598144531, - 318.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "environmental effects of arm movements on a hand-held load. An internal model", - "origin": [ - 54.0, - 326.3399658203125 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0130310058594, - 329.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0130310058594, - 329.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of feedforward grip force regulation based on an internal sensorimotor representa-", - "origin": [ - 54.0, - 337.3199768066406 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0699768066406, - 340.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0699768066406, - 340.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tion of both the limb dynamics and the physical object properties has been sug-", - "origin": [ - 54.0, - 348.3599853515625 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.0109558105469, - 351.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.0109558105469, - 351.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "gested (Blakemore et al., 1998; Flanagan & Wing, 1997).", - "origin": [ - 54.0, - 359.3399963378906 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 283.1239013671875, - 362.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 283.1239013671875, - 362.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Amyotrophic lateral sclerosis (ALS) is a progressive degenerative disorder", - "origin": [ - 78.0, - 370.32000732421875 - ], - "bbox": [ - 78.0, - 359.7900085449219, - 378.0270080566406, - 373.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 359.7900085449219, - 378.0270080566406, - 373.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of motor neurons in the spinal cord, brainstem, and motor cortex (Lawyer & Netsky,", - "origin": [ - 54.0, - 381.3600158691406 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 377.96795654296875, - 384.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 377.96795654296875, - 384.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1953; World Federation of Neurology, 1994). The disease manifests clinically with", - "origin": [ - 54.0, - 392.34002685546875 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.0260314941406, - 395.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.0260314941406, - 395.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "progressive muscular weakness, atrophy, and corticospinal tract signs in various", - "origin": [ - 54.0, - 403.32000732421875 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 377.96075439453125, - 406.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 377.96075439453125, - 406.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "combinations. In its most typical form, awkwardness in tasks requiring fine finger", - "origin": [ - 54.0, - 414.3599853515625 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 377.9900207519531, - 417.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 377.9900207519531, - 417.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements (e.g., difficulties with buttons), stiffness of the fingers, and weakness", - "origin": [ - 54.0, - 425.3399963378906 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0250549316406, - 428.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0250549316406, - 428.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "or wasting of the hand muscles are first indications of the disease. In its later stages,", - "origin": [ - 54.0, - 436.32000732421875 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0429382324219, - 439.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0429382324219, - 439.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the disease presents the characteristic triad of atrophic weakness of the hands and", - "origin": [ - 54.0, - 447.3599853515625 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0780944824219, - 450.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0780944824219, - 450.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forearms, spasticity of the arms and legs, and generalized hyperreflexia, all in the", - "origin": [ - 54.0, - 458.3399658203125 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 378.0250244140625, - 461.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 378.0250244140625, - 461.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "absence of sensory deficits. Abductors, adductors, and extensors of fingers and", - "origin": [ - 54.0, - 469.3199768066406 - ], - "bbox": [ - 54.0, - 458.78997802734375, - 378.03704833984375, - 472.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 458.78997802734375, - 378.03704833984375, - 472.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "thumb tend to become weak before the long flexors, on which the hand grip de-", - "origin": [ - 54.0, - 480.3599853515625 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0159912109375, - 483.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0159912109375, - 483.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pends, and the dorsal interosseous spaces become hollowed.", - "origin": [ - 54.0, - 491.3399658203125 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 294.5110168457031, - 494.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 294.5110168457031, - 494.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "In a variety of disorders, impairments of anticipatory grip force adjustments", - "origin": [ - 78.0, - 502.3199462890625 - ], - "bbox": [ - 78.0, - 491.7899475097656, - 378.0480041503906, - 505.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 491.7899475097656, - 378.0480041503906, - 505.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "have been reported. In particular, deficits of efficient grip force scaling and re-", - "origin": [ - 54.0, - 513.3599853515625 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0500183105469, - 516.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0500183105469, - 516.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duced temporal precision of the grip and load force coupling were observed in", - "origin": [ - 54.0, - 524.3399658203125 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0129699707031, - 527.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0129699707031, - 527.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "disorders of the basal ganglia (Fellows et al., 1998), cerebellum (Babin-Ratté et", - "origin": [ - 54.0, - 535.3199462890625 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.06195068359375, - 538.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.06195068359375, - 538.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "al., 1999; Fellows et al., 2001; Nowak et al., 2002), in children with cerebral palsy", - "origin": [ - 54.0, - 546.3599853515625 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.00396728515625, - 549.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.00396728515625, - 549.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(Eliasson et al., 1995), when finger sensibility was impaired due to digital anaes-", - "origin": [ - 54.0, - 557.3399658203125 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.01702880859375, - 560.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.01702880859375, - 560.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "thesia (Johansson & Westling, 1984; Nowak et al., 2001) or due to polyneuropathy", - "origin": [ - 54.0, - 568.3199462890625 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.01580810546875, - 571.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.01580810546875, - 571.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(Nowak et al., 2003), during development (Paré & Dugas, 1999) and in the phase", - "origin": [ - 54.0, - 579.3599853515625 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.05206298828125, - 582.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.05206298828125, - 582.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of aging (Cole et al., 1999). Consequently, the precision grip paradigm provides a", - "origin": [ - 54.0, - 590.3399658203125 - ], - "bbox": [ - 54.0, - 579.8099365234375, - 378.0270080566406, - 593.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 579.8099365234375, - 378.0270080566406, - 593.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "useful tool in the understanding of normal sensorimotor processing and its dys-", - "origin": [ - 54.0, - 601.3199462890625 - ], - "bbox": [ - 54.0, - 590.7899169921875, - 378.0589904785156, - 604.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 590.7899169921875, - 378.0589904785156, - 604.1299438476562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 1, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_2": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.0920715332031, - 274.1899108886719 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "function. Recently, we investigated the coordination between grip and load forces", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0228271484375, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0228271484375, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in a single case of ALS (Nowak & Hermsdörfer, 2003). This patient established", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.010986328125, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.010986328125, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "inefficiently elevated grip forces against the hand-held object, and the temporal", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.0200500488281, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.0200500488281, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "regulation of the grip force profile was similar for upward and downward move-", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0368347167969, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0368347167969, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments. Thus, the grip force profile was not adequately processed to match the", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0920715332031, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0920715332031, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "differential loading requirements of upward and downward movements. Given the", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0379943847656, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0379943847656, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "variability of clinical symptoms resulting in a wide span of disability, we extend", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.030029296875, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.030029296875, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "our previous study to investigate grip force regulation in ALS patients during per-", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 377.96868896484375, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 377.96868896484375, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "formance of vertical point-to-point arm movements with a hand-held instrumented", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.0548095703125, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.0548095703125, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "test object.", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 97.31200408935547, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 97.31200408935547, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS is an unique model with solitary impairment of descending motor path-", - "origin": [ - 78.0, - 183.35983276367188 - ], - "bbox": [ - 78.0, - 172.829833984375, - 378.0670166015625, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 172.829833984375, - 378.0670166015625, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ways without additional lesions of peripheral or central afferent systems. We hy-", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0350646972656, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0350646972656, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pothesize that deficient grip force adjustments during vertical point-to-point arm", - "origin": [ - 54.0, - 205.37985229492188 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.0339660644531, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.0339660644531, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements with a hand-held object in ALS primarily result from less effective and", - "origin": [ - 54.0, - 216.35986328125 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 377.98297119140625, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 377.98297119140625, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "uncoordinated force execution, rather than from impaired afferent sensory pro-", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0570068359375, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0570068359375, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cessing. As demonstrated in our previous study, deficits in the control of grip force", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.03289794921875, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.03289794921875, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "may affect the temporal coordination between grip and load force profiles and/or", - "origin": [ - 54.0, - 249.35989379882812 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.04296875, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.04296875, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the efficient scaling of the grip force magnitude according to the actual loading", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.02105712890625, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.02105712890625, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "requirements.", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 108.71000671386719, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 108.71000671386719, - 274.1899108886719 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 54.0, - 326.7900085449219, - 378.08306884765625, - 604.1300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Five patients (3 female, 2 male) with ALS participated in the present study. The", - "origin": [ - 54.0, - 337.32000732421875 - ], - "bbox": [ - 54.0, - 326.7900085449219, - 378.0199890136719, - 340.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.7900085449219, - 378.0199890136719, - 340.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mean age of patients was 73.8 years. The duration of symptoms varied between 1", - "origin": [ - 54.0, - 348.3600158691406 - ], - "bbox": [ - 54.0, - 337.83001708984375, - 378.02301025390625, - 351.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 337.83001708984375, - 378.02301025390625, - 351.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and 3 years (mean, 1.6 years). Clinical details of the ALS patients are summarized", - "origin": [ - 54.0, - 359.34002685546875 - ], - "bbox": [ - 54.0, - 348.8100280761719, - 378.0810546875, - 362.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.8100280761719, - 378.0810546875, - 362.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in Table 1. Patients were diagnosed during hospitalization at the Department of", - "origin": [ - 54.0, - 370.3200378417969 - ], - "bbox": [ - 54.0, - 359.7900390625, - 378.04400634765625, - 373.1300354003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 359.7900390625, - 378.04400634765625, - 373.1300354003906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Neurology and Clinical Neurophysiology, Academic Hospital München-", - "origin": [ - 54.0, - 381.36004638671875 - ], - "bbox": [ - 54.0, - 370.8300476074219, - 378.01812744140625, - 384.1700439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.8300476074219, - 378.01812744140625, - 384.1700439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Bogenhausen. The performance of patient E.E. had been described before in a", - "origin": [ - 54.0, - 392.34002685546875 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.08306884765625, - 395.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.08306884765625, - 395.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "single case-control observation. Usually, patients presented with a history of one", - "origin": [ - 54.0, - 403.3200378417969 - ], - "bbox": [ - 54.0, - 392.7900390625, - 378.0370178222656, - 406.1300354003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 392.7900390625, - 378.0370178222656, - 406.1300354003906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "or more of the following symptoms: progressive dysarthrophonia, dysphagia, weak-", - "origin": [ - 54.0, - 414.36004638671875 - ], - "bbox": [ - 54.0, - 403.8300476074219, - 378.0809631347656, - 417.1700439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 403.8300476074219, - 378.0809631347656, - 417.1700439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ness of arm, hand and leg muscles. Neurological examination usually revealed", - "origin": [ - 54.0, - 425.34002685546875 - ], - "bbox": [ - 54.0, - 414.8100280761719, - 377.9960021972656, - 428.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 414.8100280761719, - 377.9960021972656, - 428.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "dysarthrophonia; dysphagia; generalized muscle fasciculations; weakness of arm,", - "origin": [ - 54.0, - 436.32000732421875 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0290832519531, - 439.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0290832519531, - 439.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "shoulder, leg, and hip muscles; weakness and wasting of the small hand muscles.", - "origin": [ - 54.0, - 447.3600158691406 - ], - "bbox": [ - 54.0, - 436.83001708984375, - 378.0020751953125, - 450.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 436.83001708984375, - 378.0020751953125, - 450.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "There was commonly mild to moderate spasticity in all muscle groups of the upper", - "origin": [ - 54.0, - 458.34002685546875 - ], - "bbox": [ - 54.0, - 447.8100280761719, - 378.0589904785156, - 461.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 447.8100280761719, - 378.0589904785156, - 461.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and lower extremities, tendon reflexes were brisk on both upper and lower ex-", - "origin": [ - 54.0, - 469.32000732421875 - ], - "bbox": [ - 54.0, - 458.7900085449219, - 378.00506591796875, - 472.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 458.7900085449219, - 378.00506591796875, - 472.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tremities, and the Babinski signs were positive on one or both sides. There were", - "origin": [ - 54.0, - 480.3599853515625 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0519714355469, - 483.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0519714355469, - 483.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "generally no sensory deficits. Patients were able to perform all motor activities of", - "origin": [ - 54.0, - 491.3399963378906 - ], - "bbox": [ - 54.0, - 480.80999755859375, - 378.0189514160156, - 494.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.80999755859375, - 378.0189514160156, - 494.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "daily life but noticed early fatigue during prolonged manual activities and when", - "origin": [ - 54.0, - 502.32000732421875 - ], - "bbox": [ - 54.0, - 491.7900085449219, - 378.0589599609375, - 505.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 491.7900085449219, - 378.0589599609375, - 505.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "walking longer distances. The electromyography was consistent with a general-", - "origin": [ - 54.0, - 513.3599853515625 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.080078125, - 516.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.080078125, - 516.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ized lesion of the spinal motor neurons, and affection of the cortical motor neurons", - "origin": [ - 54.0, - 524.3399658203125 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0419616699219, - 527.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0419616699219, - 527.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was demonstrated by delays of the central motor conduction times as demonstrated", - "origin": [ - 54.0, - 535.3200073242188 - ], - "bbox": [ - 54.0, - 524.7899780273438, - 378.03076171875, - 538.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 524.7899780273438, - 378.03076171875, - 538.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by corbical magnetic stimulation to both upper and lower extremities. Further clini-", - "origin": [ - 54.0, - 546.3599853515625 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.0582275390625, - 549.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.0582275390625, - 549.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cal and apparative investigations excluded cervical myelopathy, paraneoplastic syn-", - "origin": [ - 54.0, - 557.3399658203125 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.05908203125, - 560.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.05908203125, - 560.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drome, cerebral and spinal cord lesions, such as syringomyelia, motor neuropathy,", - "origin": [ - 54.0, - 568.3200073242188 - ], - "bbox": [ - 54.0, - 557.7899780273438, - 377.9950256347656, - 571.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 557.7899780273438, - 377.9950256347656, - 571.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "chronic inflammatory demyelinating polyneuropathy, and neuronal ganglioside", - "origin": [ - 54.0, - 579.3599853515625 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.0270690917969, - 582.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.0270690917969, - 582.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GM 1 antibodies in all patients. Patients’ family and previous medical history was", - "origin": [ - 54.0, - 590.3400268554688 - ], - "bbox": [ - 54.0, - 579.8099975585938, - 378.0109558105469, - 593.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 579.8099975585938, - 378.0109558105469, - 593.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "unremarkable. In particular, there was no history of spinal trauma or irradiation.", - "origin": [ - 54.0, - 601.3200073242188 - ], - "bbox": [ - 54.0, - 590.7899780273438, - 378.0709533691406, - 604.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 590.7899780273438, - 378.0709533691406, - 604.1300048828125 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 62.849884033203125, - 432.0, - 604.1300048828125 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.0920715332031, - 274.1899108886719 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "function. Recently, we investigated the coordination between grip and load forces", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0228271484375, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0228271484375, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in a single case of ALS (Nowak & Hermsdörfer, 2003). This patient established", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.010986328125, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.010986328125, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "inefficiently elevated grip forces against the hand-held object, and the temporal", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.0200500488281, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.0200500488281, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "regulation of the grip force profile was similar for upward and downward move-", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0368347167969, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0368347167969, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments. Thus, the grip force profile was not adequately processed to match the", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0920715332031, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0920715332031, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "differential loading requirements of upward and downward movements. Given the", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0379943847656, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0379943847656, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "variability of clinical symptoms resulting in a wide span of disability, we extend", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.030029296875, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.030029296875, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "our previous study to investigate grip force regulation in ALS patients during per-", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 377.96868896484375, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 377.96868896484375, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "formance of vertical point-to-point arm movements with a hand-held instrumented", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.0548095703125, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.0548095703125, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "test object.", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 97.31200408935547, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 97.31200408935547, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS is an unique model with solitary impairment of descending motor path-", - "origin": [ - 78.0, - 183.35983276367188 - ], - "bbox": [ - 78.0, - 172.829833984375, - 378.0670166015625, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 172.829833984375, - 378.0670166015625, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ways without additional lesions of peripheral or central afferent systems. We hy-", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0350646972656, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0350646972656, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pothesize that deficient grip force adjustments during vertical point-to-point arm", - "origin": [ - 54.0, - 205.37985229492188 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.0339660644531, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.0339660644531, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements with a hand-held object in ALS primarily result from less effective and", - "origin": [ - 54.0, - 216.35986328125 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 377.98297119140625, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 377.98297119140625, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "uncoordinated force execution, rather than from impaired afferent sensory pro-", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0570068359375, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0570068359375, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cessing. As demonstrated in our previous study, deficits in the control of grip force", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.03289794921875, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.03289794921875, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "may affect the temporal coordination between grip and load force profiles and/or", - "origin": [ - 54.0, - 249.35989379882812 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.04296875, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.04296875, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the efficient scaling of the grip force magnitude according to the actual loading", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.02105712890625, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.02105712890625, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "requirements.", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 108.71000671386719, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 108.71000671386719, - 274.1899108886719 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 54.0, - 326.7900085449219, - 378.08306884765625, - 604.1300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Five patients (3 female, 2 male) with ALS participated in the present study. The", - "origin": [ - 54.0, - 337.32000732421875 - ], - "bbox": [ - 54.0, - 326.7900085449219, - 378.0199890136719, - 340.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.7900085449219, - 378.0199890136719, - 340.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mean age of patients was 73.8 years. The duration of symptoms varied between 1", - "origin": [ - 54.0, - 348.3600158691406 - ], - "bbox": [ - 54.0, - 337.83001708984375, - 378.02301025390625, - 351.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 337.83001708984375, - 378.02301025390625, - 351.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and 3 years (mean, 1.6 years). Clinical details of the ALS patients are summarized", - "origin": [ - 54.0, - 359.34002685546875 - ], - "bbox": [ - 54.0, - 348.8100280761719, - 378.0810546875, - 362.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.8100280761719, - 378.0810546875, - 362.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in Table 1. Patients were diagnosed during hospitalization at the Department of", - "origin": [ - 54.0, - 370.3200378417969 - ], - "bbox": [ - 54.0, - 359.7900390625, - 378.04400634765625, - 373.1300354003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 359.7900390625, - 378.04400634765625, - 373.1300354003906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Neurology and Clinical Neurophysiology, Academic Hospital München-", - "origin": [ - 54.0, - 381.36004638671875 - ], - "bbox": [ - 54.0, - 370.8300476074219, - 378.01812744140625, - 384.1700439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.8300476074219, - 378.01812744140625, - 384.1700439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Bogenhausen. The performance of patient E.E. had been described before in a", - "origin": [ - 54.0, - 392.34002685546875 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.08306884765625, - 395.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.08306884765625, - 395.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "single case-control observation. Usually, patients presented with a history of one", - "origin": [ - 54.0, - 403.3200378417969 - ], - "bbox": [ - 54.0, - 392.7900390625, - 378.0370178222656, - 406.1300354003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 392.7900390625, - 378.0370178222656, - 406.1300354003906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "or more of the following symptoms: progressive dysarthrophonia, dysphagia, weak-", - "origin": [ - 54.0, - 414.36004638671875 - ], - "bbox": [ - 54.0, - 403.8300476074219, - 378.0809631347656, - 417.1700439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 403.8300476074219, - 378.0809631347656, - 417.1700439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ness of arm, hand and leg muscles. Neurological examination usually revealed", - "origin": [ - 54.0, - 425.34002685546875 - ], - "bbox": [ - 54.0, - 414.8100280761719, - 377.9960021972656, - 428.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 414.8100280761719, - 377.9960021972656, - 428.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "dysarthrophonia; dysphagia; generalized muscle fasciculations; weakness of arm,", - "origin": [ - 54.0, - 436.32000732421875 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0290832519531, - 439.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0290832519531, - 439.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "shoulder, leg, and hip muscles; weakness and wasting of the small hand muscles.", - "origin": [ - 54.0, - 447.3600158691406 - ], - "bbox": [ - 54.0, - 436.83001708984375, - 378.0020751953125, - 450.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 436.83001708984375, - 378.0020751953125, - 450.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "There was commonly mild to moderate spasticity in all muscle groups of the upper", - "origin": [ - 54.0, - 458.34002685546875 - ], - "bbox": [ - 54.0, - 447.8100280761719, - 378.0589904785156, - 461.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 447.8100280761719, - 378.0589904785156, - 461.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and lower extremities, tendon reflexes were brisk on both upper and lower ex-", - "origin": [ - 54.0, - 469.32000732421875 - ], - "bbox": [ - 54.0, - 458.7900085449219, - 378.00506591796875, - 472.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 458.7900085449219, - 378.00506591796875, - 472.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tremities, and the Babinski signs were positive on one or both sides. There were", - "origin": [ - 54.0, - 480.3599853515625 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0519714355469, - 483.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0519714355469, - 483.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "generally no sensory deficits. Patients were able to perform all motor activities of", - "origin": [ - 54.0, - 491.3399963378906 - ], - "bbox": [ - 54.0, - 480.80999755859375, - 378.0189514160156, - 494.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.80999755859375, - 378.0189514160156, - 494.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "daily life but noticed early fatigue during prolonged manual activities and when", - "origin": [ - 54.0, - 502.32000732421875 - ], - "bbox": [ - 54.0, - 491.7900085449219, - 378.0589599609375, - 505.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 491.7900085449219, - 378.0589599609375, - 505.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "walking longer distances. The electromyography was consistent with a general-", - "origin": [ - 54.0, - 513.3599853515625 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.080078125, - 516.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.080078125, - 516.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ized lesion of the spinal motor neurons, and affection of the cortical motor neurons", - "origin": [ - 54.0, - 524.3399658203125 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0419616699219, - 527.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0419616699219, - 527.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was demonstrated by delays of the central motor conduction times as demonstrated", - "origin": [ - 54.0, - 535.3200073242188 - ], - "bbox": [ - 54.0, - 524.7899780273438, - 378.03076171875, - 538.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 524.7899780273438, - 378.03076171875, - 538.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by corbical magnetic stimulation to both upper and lower extremities. Further clini-", - "origin": [ - 54.0, - 546.3599853515625 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.0582275390625, - 549.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.0582275390625, - 549.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cal and apparative investigations excluded cervical myelopathy, paraneoplastic syn-", - "origin": [ - 54.0, - 557.3399658203125 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.05908203125, - 560.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.05908203125, - 560.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drome, cerebral and spinal cord lesions, such as syringomyelia, motor neuropathy,", - "origin": [ - 54.0, - 568.3200073242188 - ], - "bbox": [ - 54.0, - 557.7899780273438, - 377.9950256347656, - 571.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 557.7899780273438, - 377.9950256347656, - 571.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "chronic inflammatory demyelinating polyneuropathy, and neuronal ganglioside", - "origin": [ - 54.0, - 579.3599853515625 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.0270690917969, - 582.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.0270690917969, - 582.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GM 1 antibodies in all patients. Patients’ family and previous medical history was", - "origin": [ - 54.0, - 590.3400268554688 - ], - "bbox": [ - 54.0, - 579.8099975585938, - 378.0109558105469, - 593.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 579.8099975585938, - 378.0109558105469, - 593.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "unremarkable. In particular, there was no history of spinal trauma or irradiation.", - "origin": [ - 54.0, - 601.3200073242188 - ], - "bbox": [ - 54.0, - 590.7899780273438, - 378.0709533691406, - 604.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 590.7899780273438, - 378.0709533691406, - 604.1300048828125 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 5, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 2, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_3": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 253.82998657226562, - 378.02581787109375, - 344.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The motor function of the patients was assessed by the Amyotrophic Lateral Scle-", - "origin": [ - 54.0, - 264.3599853515625 - ], - "bbox": [ - 54.0, - 253.82998657226562, - 377.9949951171875, - 267.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 253.82998657226562, - 377.9949951171875, - 267.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rosis Severity Scale (ALSSS; Hillel et al., 1989).", - "origin": [ - 54.0, - 275.3399963378906 - ], - "bbox": [ - 54.0, - 264.80999755859375, - 249.15496826171875, - 278.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 264.80999755859375, - 249.15496826171875, - 278.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Five age- and sex-matched healthy subjects served as controls (mean age,", - "origin": [ - 78.0, - 286.3800048828125 - ], - "bbox": [ - 78.0, - 275.8500061035156, - 378.0198974609375, - 289.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 275.8500061035156, - 378.0198974609375, - 289.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "73.6 years). All participants used their dominant right hand to perform the experi-", - "origin": [ - 54.0, - 297.3600158691406 - ], - "bbox": [ - 54.0, - 286.83001708984375, - 378.014892578125, - 300.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 286.83001708984375, - 378.014892578125, - 300.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments. The patients were tested without medication and had no difficulties in per-", - "origin": [ - 54.0, - 308.34002685546875 - ], - "bbox": [ - 54.0, - 297.8100280761719, - 377.98699951171875, - 311.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 297.8100280761719, - 377.98699951171875, - 311.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forming the entire set of motor tasks. Informed consent was obtained from all", - "origin": [ - 54.0, - 319.3800354003906 - ], - "bbox": [ - 54.0, - 308.85003662109375, - 377.9919738769531, - 322.1900329589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 308.85003662109375, - 377.9919738769531, - 322.1900329589844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "participants. The study was conducted in accordance with the Declaration of", - "origin": [ - 54.0, - 330.36004638671875 - ], - "bbox": [ - 54.0, - 319.8300476074219, - 378.02581787109375, - 333.1700439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 319.8300476074219, - 378.02581787109375, - 333.1700439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Helsinki and was approved by the local ethics committee.", - "origin": [ - 54.0, - 341.3400573730469 - ], - "bbox": [ - 54.0, - 330.81005859375, - 284.40997314453125, - 344.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 330.81005859375, - 284.40997314453125, - 344.1500549316406 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 54.0, - 372.80999755859375, - 378.0840148925781, - 551.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Participants grasped a cylindrical and cordless instrumented object between the", - "origin": [ - 54.0, - 383.3399963378906 - ], - "bbox": [ - 54.0, - 372.80999755859375, - 378.0840148925781, - 386.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 372.80999755859375, - 378.0840148925781, - 386.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tips of the thumb and other fingers on either side. The manipulandum and the", - "origin": [ - 54.0, - 394.32000732421875 - ], - "bbox": [ - 54.0, - 383.7900085449219, - 378.03204345703125, - 397.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 383.7900085449219, - 378.03204345703125, - 397.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "configuration of the hand and fingers used to grasp it are illustrated in Figure 1A.", - "origin": [ - 54.0, - 405.3599853515625 - ], - "bbox": [ - 54.0, - 394.8299865722656, - 378.0201110839844, - 408.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 394.8299865722656, - 378.0201110839844, - 408.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The mass of the object was 0.350 kg. The object had a diameter of 9.0 cm and a", - "origin": [ - 54.0, - 416.3399658203125 - ], - "bbox": [ - 54.0, - 405.8099670410156, - 378.034912109375, - 419.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 405.8099670410156, - 378.034912109375, - 419.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "depth of 4.0 cm. Grip surfaces were of polished aluminum in all trials performed.", - "origin": [ - 54.0, - 427.3199768066406 - ], - "bbox": [ - 54.0, - 416.78997802734375, - 378.041015625, - 430.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 416.78997802734375, - 378.041015625, - 430.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The object incorporated a force sensor for grip force registration and linear accel-", - "origin": [ - 54.0, - 438.3599853515625 - ], - "bbox": [ - 54.0, - 427.8299865722656, - 378.02996826171875, - 441.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 427.8299865722656, - 378.02996826171875, - 441.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "eration sensors for registration of kinematic acceleration signals in three dimen-", - "origin": [ - 54.0, - 449.3399658203125 - ], - "bbox": [ - 54.0, - 438.8099670410156, - 378.0179443359375, - 452.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 438.8099670410156, - 378.0179443359375, - 452.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sions (see Figure 1A; Nowak et al. 2001, 2002, 2003; Nowak & Hermsdörfer,", - "origin": [ - 54.0, - 460.3199462890625 - ], - "bbox": [ - 54.0, - 449.7899475097656, - 378.00006103515625, - 463.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 449.7899475097656, - 378.00006103515625, - 463.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2003). The force sensor registered grip forces at two different sensitivities be-", - "origin": [ - 54.0, - 471.3599548339844 - ], - "bbox": [ - 54.0, - 460.8299560546875, - 378.0180358886719, - 474.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 460.8299560546875, - 378.0180358886719, - 474.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tween 0–10 N (0.0025 N/bit) and 0–50 N (0.0125 N/bit). The linear acceleration", - "origin": [ - 54.0, - 482.3399658203125 - ], - "bbox": [ - 54.0, - 471.8099670410156, - 378.0260009765625, - 485.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 471.8099670410156, - 378.0260009765625, - 485.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sensors measured linear acceleration within a range of ", - "origin": [ - 54.0, - 493.3199462890625 - ], - "bbox": [ - 54.0, - 482.7899475097656, - 277.9930114746094, - 496.12994384765625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 278.58001708984375, - 493.3199462890625 - ], - "bbox": [ - 278.58001708984375, - 483.2199401855469, - 284.07000732421875, - 496.24993896484375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 50 m/s", - "origin": [ - 284.22003173828125, - 493.3199462890625 - ], - "bbox": [ - 284.22003173828125, - 482.7899475097656, - 314.988037109375, - 496.12994384765625 - ] - }, - { - "size": 5.800000190734863, - "flags": 5, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 315.0, - 490.02001953125 - ], - "bbox": [ - 315.0, - 483.9126281738281, - 317.8999938964844, - 491.6498107910156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". The center of", - "origin": [ - 317.8800048828125, - 493.32000732421875 - ], - "bbox": [ - 317.8800048828125, - 482.7900085449219, - 378.0279541015625, - 496.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 482.7899475097656, - 378.0279541015625, - 496.24993896484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mass of the force transducer was halfway between the points at which the fingers", - "origin": [ - 54.0, - 504.3599853515625 - ], - "bbox": [ - 54.0, - 493.8299865722656, - 377.9608154296875, - 507.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 493.8299865722656, - 377.9608154296875, - 507.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "contacted its surfaces. Recorded grip force and acceleration data were A-to-D con-", - "origin": [ - 54.0, - 515.3399658203125 - ], - "bbox": [ - 54.0, - 504.8099670410156, - 378.0579528808594, - 518.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 504.8099670410156, - 378.0579528808594, - 518.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "verted, with a sampling rate of 100 Hz and stored within the manipulandum. Data", - "origin": [ - 54.0, - 526.3200073242188 - ], - "bbox": [ - 54.0, - 515.7899780273438, - 378.0690002441406, - 529.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 515.7899780273438, - 378.0690002441406, - 529.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "were transferred to a personal computer for analysis following each experimental", - "origin": [ - 54.0, - 537.3599853515625 - ], - "bbox": [ - 54.0, - 526.8299560546875, - 378.0250244140625, - 540.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 526.8299560546875, - 378.0250244140625, - 540.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "setting with a single subject.", - "origin": [ - 54.0, - 548.3400268554688 - ], - "bbox": [ - 54.0, - 537.8099975585938, - 167.62599182128906, - 551.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 537.8099975585938, - 167.62599182128906, - 551.1500244140625 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 54.0, - 579.8099975585938, - 378.0269470214844, - 604.1300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Prior to the experiments, the subjects washed their hands with soap and water to", - "origin": [ - 54.0, - 590.3400268554688 - ], - "bbox": [ - 54.0, - 579.8099975585938, - 378.0240173339844, - 593.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 579.8099975585938, - 378.0240173339844, - 593.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "remove excess oils, and dried them. The subjects sat in a chair in front of a table", - "origin": [ - 54.0, - 601.3200073242188 - ], - "bbox": [ - 54.0, - 590.7899780273438, - 378.0269470214844, - 604.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 590.7899780273438, - 378.0269470214844, - 604.1300048828125 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 54.0, - 206.22300720214844, - 378.0919189453125, - 229.2090301513672 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Note.", - "origin": [ - 54.0, - 215.70001220703125 - ], - "bbox": [ - 54.0, - 207.14100646972656, - 73.2509994506836, - 218.1300048828125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " The Amyotrophic Lateral Sclerosis Severity Scale (ALSSS) assesses speech and motor", - "origin": [ - 73.26000213623047, - 215.70001220703125 - ], - "bbox": [ - 73.26000213623047, - 206.22300720214844, - 378.0919189453125, - 218.22901916503906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 206.22300720214844, - 378.0919189453125, - 218.22901916503906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "function in activities of daily living; maximum score is 40 points. F = female; M = male.", - "origin": [ - 54.00090408325195, - 226.68002319335938 - ], - "bbox": [ - 54.00090408325195, - 217.20301818847656, - 373.1643371582031, - 229.2090301513672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00090408325195, - 217.20301818847656, - 373.1643371582031, - 229.2090301513672 - ] - } - ] - } - ], - "images": [], - "tables": [ - { - "bbox": [ - 54, - 63.983882904052734, - 378, - 199 - ], - "image_path": "tables/3_54_63_378_199.jpg" - } - ], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 63.983882904052734, - 432.0, - 604.1300048828125 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 253.82998657226562, - 378.02581787109375, - 344.1500549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The motor function of the patients was assessed by the Amyotrophic Lateral Scle-", - "origin": [ - 54.0, - 264.3599853515625 - ], - "bbox": [ - 54.0, - 253.82998657226562, - 377.9949951171875, - 267.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 253.82998657226562, - 377.9949951171875, - 267.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rosis Severity Scale (ALSSS; Hillel et al., 1989).", - "origin": [ - 54.0, - 275.3399963378906 - ], - "bbox": [ - 54.0, - 264.80999755859375, - 249.15496826171875, - 278.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 264.80999755859375, - 249.15496826171875, - 278.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Five age- and sex-matched healthy subjects served as controls (mean age,", - "origin": [ - 78.0, - 286.3800048828125 - ], - "bbox": [ - 78.0, - 275.8500061035156, - 378.0198974609375, - 289.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 275.8500061035156, - 378.0198974609375, - 289.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "73.6 years). All participants used their dominant right hand to perform the experi-", - "origin": [ - 54.0, - 297.3600158691406 - ], - "bbox": [ - 54.0, - 286.83001708984375, - 378.014892578125, - 300.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 286.83001708984375, - 378.014892578125, - 300.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments. The patients were tested without medication and had no difficulties in per-", - "origin": [ - 54.0, - 308.34002685546875 - ], - "bbox": [ - 54.0, - 297.8100280761719, - 377.98699951171875, - 311.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 297.8100280761719, - 377.98699951171875, - 311.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forming the entire set of motor tasks. Informed consent was obtained from all", - "origin": [ - 54.0, - 319.3800354003906 - ], - "bbox": [ - 54.0, - 308.85003662109375, - 377.9919738769531, - 322.1900329589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 308.85003662109375, - 377.9919738769531, - 322.1900329589844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "participants. The study was conducted in accordance with the Declaration of", - "origin": [ - 54.0, - 330.36004638671875 - ], - "bbox": [ - 54.0, - 319.8300476074219, - 378.02581787109375, - 333.1700439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 319.8300476074219, - 378.02581787109375, - 333.1700439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Helsinki and was approved by the local ethics committee.", - "origin": [ - 54.0, - 341.3400573730469 - ], - "bbox": [ - 54.0, - 330.81005859375, - 284.40997314453125, - 344.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 330.81005859375, - 284.40997314453125, - 344.1500549316406 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 54.0, - 372.80999755859375, - 378.0840148925781, - 551.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Participants grasped a cylindrical and cordless instrumented object between the", - "origin": [ - 54.0, - 383.3399963378906 - ], - "bbox": [ - 54.0, - 372.80999755859375, - 378.0840148925781, - 386.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 372.80999755859375, - 378.0840148925781, - 386.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tips of the thumb and other fingers on either side. The manipulandum and the", - "origin": [ - 54.0, - 394.32000732421875 - ], - "bbox": [ - 54.0, - 383.7900085449219, - 378.03204345703125, - 397.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 383.7900085449219, - 378.03204345703125, - 397.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "configuration of the hand and fingers used to grasp it are illustrated in Figure 1A.", - "origin": [ - 54.0, - 405.3599853515625 - ], - "bbox": [ - 54.0, - 394.8299865722656, - 378.0201110839844, - 408.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 394.8299865722656, - 378.0201110839844, - 408.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The mass of the object was 0.350 kg. The object had a diameter of 9.0 cm and a", - "origin": [ - 54.0, - 416.3399658203125 - ], - "bbox": [ - 54.0, - 405.8099670410156, - 378.034912109375, - 419.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 405.8099670410156, - 378.034912109375, - 419.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "depth of 4.0 cm. Grip surfaces were of polished aluminum in all trials performed.", - "origin": [ - 54.0, - 427.3199768066406 - ], - "bbox": [ - 54.0, - 416.78997802734375, - 378.041015625, - 430.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 416.78997802734375, - 378.041015625, - 430.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The object incorporated a force sensor for grip force registration and linear accel-", - "origin": [ - 54.0, - 438.3599853515625 - ], - "bbox": [ - 54.0, - 427.8299865722656, - 378.02996826171875, - 441.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 427.8299865722656, - 378.02996826171875, - 441.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "eration sensors for registration of kinematic acceleration signals in three dimen-", - "origin": [ - 54.0, - 449.3399658203125 - ], - "bbox": [ - 54.0, - 438.8099670410156, - 378.0179443359375, - 452.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 438.8099670410156, - 378.0179443359375, - 452.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sions (see Figure 1A; Nowak et al. 2001, 2002, 2003; Nowak & Hermsdörfer,", - "origin": [ - 54.0, - 460.3199462890625 - ], - "bbox": [ - 54.0, - 449.7899475097656, - 378.00006103515625, - 463.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 449.7899475097656, - 378.00006103515625, - 463.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2003). The force sensor registered grip forces at two different sensitivities be-", - "origin": [ - 54.0, - 471.3599548339844 - ], - "bbox": [ - 54.0, - 460.8299560546875, - 378.0180358886719, - 474.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 460.8299560546875, - 378.0180358886719, - 474.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tween 0–10 N (0.0025 N/bit) and 0–50 N (0.0125 N/bit). The linear acceleration", - "origin": [ - 54.0, - 482.3399658203125 - ], - "bbox": [ - 54.0, - 471.8099670410156, - 378.0260009765625, - 485.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 471.8099670410156, - 378.0260009765625, - 485.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sensors measured linear acceleration within a range of ", - "origin": [ - 54.0, - 493.3199462890625 - ], - "bbox": [ - 54.0, - 482.7899475097656, - 277.9930114746094, - 496.12994384765625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 278.58001708984375, - 493.3199462890625 - ], - "bbox": [ - 278.58001708984375, - 483.2199401855469, - 284.07000732421875, - 496.24993896484375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 50 m/s", - "origin": [ - 284.22003173828125, - 493.3199462890625 - ], - "bbox": [ - 284.22003173828125, - 482.7899475097656, - 314.988037109375, - 496.12994384765625 - ] - }, - { - "size": 5.800000190734863, - "flags": 5, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 315.0, - 490.02001953125 - ], - "bbox": [ - 315.0, - 483.9126281738281, - 317.8999938964844, - 491.6498107910156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". The center of", - "origin": [ - 317.8800048828125, - 493.32000732421875 - ], - "bbox": [ - 317.8800048828125, - 482.7900085449219, - 378.0279541015625, - 496.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 482.7899475097656, - 378.0279541015625, - 496.24993896484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mass of the force transducer was halfway between the points at which the fingers", - "origin": [ - 54.0, - 504.3599853515625 - ], - "bbox": [ - 54.0, - 493.8299865722656, - 377.9608154296875, - 507.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 493.8299865722656, - 377.9608154296875, - 507.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "contacted its surfaces. Recorded grip force and acceleration data were A-to-D con-", - "origin": [ - 54.0, - 515.3399658203125 - ], - "bbox": [ - 54.0, - 504.8099670410156, - 378.0579528808594, - 518.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 504.8099670410156, - 378.0579528808594, - 518.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "verted, with a sampling rate of 100 Hz and stored within the manipulandum. Data", - "origin": [ - 54.0, - 526.3200073242188 - ], - "bbox": [ - 54.0, - 515.7899780273438, - 378.0690002441406, - 529.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 515.7899780273438, - 378.0690002441406, - 529.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "were transferred to a personal computer for analysis following each experimental", - "origin": [ - 54.0, - 537.3599853515625 - ], - "bbox": [ - 54.0, - 526.8299560546875, - 378.0250244140625, - 540.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 526.8299560546875, - 378.0250244140625, - 540.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "setting with a single subject.", - "origin": [ - 54.0, - 548.3400268554688 - ], - "bbox": [ - 54.0, - 537.8099975585938, - 167.62599182128906, - 551.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 537.8099975585938, - 167.62599182128906, - 551.1500244140625 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 54.0, - 579.8099975585938, - 378.0269470214844, - 604.1300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Prior to the experiments, the subjects washed their hands with soap and water to", - "origin": [ - 54.0, - 590.3400268554688 - ], - "bbox": [ - 54.0, - 579.8099975585938, - 378.0240173339844, - 593.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 579.8099975585938, - 378.0240173339844, - 593.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "remove excess oils, and dried them. The subjects sat in a chair in front of a table", - "origin": [ - 54.0, - 601.3200073242188 - ], - "bbox": [ - 54.0, - 590.7899780273438, - 378.0269470214844, - 604.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 590.7899780273438, - 378.0269470214844, - 604.1300048828125 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 54.0, - 63.983882904052734, - 349.387939453125, - 76.44888305664062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Table 1", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 63.983882904052734, - 83.73150634765625, - 76.44888305664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 63.983882904052734, - 83.73150634765625, - 76.44888305664062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Clinical Details of Patients With Amyotrophic Lateral Sclerosis", - "origin": [ - 92.82061004638672, - 73.3798828125 - ], - "bbox": [ - 92.82061004638672, - 63.983882904052734, - 349.387939453125, - 76.44888305664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.82061004638672, - 63.983882904052734, - 349.387939453125, - 76.44888305664062 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 249.1199951171875, - 93.24291229248047, - 366.604248046875, - 105.24890899658203 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Years since", - "origin": [ - 249.1199951171875, - 102.71990966796875 - ], - "bbox": [ - 249.1199951171875, - 93.24291229248047, - 290.84942626953125, - 105.24890899658203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 249.1199951171875, - 93.24291229248047, - 290.84942626953125, - 105.24890899658203 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS Severity", - "origin": [ - 317.3598327636719, - 102.71990966796875 - ], - "bbox": [ - 317.3598327636719, - 93.24291229248047, - 366.604248046875, - 105.24890899658203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.3598327636719, - 93.24291229248047, - 366.604248046875, - 105.24890899658203 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 54.0, - 104.22301483154297, - 351.7244873046875, - 116.22901153564453 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Patient ID", - "origin": [ - 54.0, - 113.70001220703125 - ], - "bbox": [ - 54.0, - 104.22301483154297, - 90.76590728759766, - 116.22901153564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 104.22301483154297, - 90.76590728759766, - 116.22901153564453 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Gender", - "origin": [ - 118.74600982666016, - 113.70001220703125 - ], - "bbox": [ - 118.74600982666016, - 104.22301483154297, - 145.2375030517578, - 116.22901153564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.74600982666016, - 104.22301483154297, - 145.2375030517578, - 116.22901153564453 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Age in years", - "origin": [ - 175.25250244140625, - 113.70001220703125 - ], - "bbox": [ - 175.25250244140625, - 104.22301483154297, - 220.77001953125, - 116.22901153564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.25250244140625, - 104.22301483154297, - 220.77001953125, - 116.22901153564453 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "diagnosis", - "origin": [ - 253.02243041992188, - 113.70001220703125 - ], - "bbox": [ - 253.02243041992188, - 104.22301483154297, - 287.0316162109375, - 116.22901153564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.02243041992188, - 104.22301483154297, - 287.0316162109375, - 116.22901153564453 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Scale", - "origin": [ - 332.2268981933594, - 113.70001220703125 - ], - "bbox": [ - 332.2268981933594, - 104.22301483154297, - 351.7244873046875, - 116.22901153564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.2268981933594, - 104.22301483154297, - 351.7244873046875, - 116.22901153564453 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 54.0, - 133.56300354003906, - 346.5018310546875, - 189.6096649169922 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "I.B.", - "origin": [ - 54.0, - 143.04000854492188 - ], - "bbox": [ - 54.0, - 133.56300354003906, - 67.50270080566406, - 145.5690155029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 133.56300354003906, - 67.50270080566406, - 145.5690155029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "F", - "origin": [ - 129.481201171875, - 143.04000854492188 - ], - "bbox": [ - 129.481201171875, - 133.56300354003906, - 134.48519897460938, - 145.5690155029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.481201171875, - 133.56300354003906, - 134.48519897460938, - 145.5690155029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "73", - "origin": [ - 193.5009002685547, - 143.04000854492188 - ], - "bbox": [ - 193.5009002685547, - 133.56300354003906, - 202.5009002685547, - 145.5690155029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.5009002685547, - 133.56300354003906, - 202.5009002685547, - 145.5690155029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 267.72119140625, - 143.04000854492188 - ], - "bbox": [ - 267.72119140625, - 133.56300354003906, - 272.22119140625, - 145.5690155029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.72119140625, - 133.56300354003906, - 272.22119140625, - 145.5690155029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "22", - "origin": [ - 337.50091552734375, - 143.04000854492188 - ], - "bbox": [ - 337.50091552734375, - 133.56300354003906, - 346.5018310546875, - 145.5690155029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.50091552734375, - 133.56300354003906, - 346.5018310546875, - 145.5690155029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "E.E.", - "origin": [ - 54.0, - 154.080322265625 - ], - "bbox": [ - 54.0, - 144.6033172607422, - 69.50070190429688, - 156.6093292236328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 144.6033172607422, - 69.50070190429688, - 156.6093292236328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "F", - "origin": [ - 129.478515625, - 154.080322265625 - ], - "bbox": [ - 129.478515625, - 144.6033172607422, - 134.48251342773438, - 156.6093292236328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.478515625, - 144.6033172607422, - 134.48251342773438, - 156.6093292236328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "76", - "origin": [ - 193.4982147216797, - 154.080322265625 - ], - "bbox": [ - 193.4982147216797, - 144.6033172607422, - 202.4982147216797, - 156.6093292236328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.4982147216797, - 144.6033172607422, - 202.4982147216797, - 156.6093292236328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "3", - "origin": [ - 267.718505859375, - 154.080322265625 - ], - "bbox": [ - 267.718505859375, - 144.6033172607422, - 272.218505859375, - 156.6093292236328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.718505859375, - 144.6033172607422, - 272.218505859375, - 156.6093292236328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "27", - "origin": [ - 337.49822998046875, - 154.080322265625 - ], - "bbox": [ - 337.49822998046875, - 144.6033172607422, - 346.4991455078125, - 156.6093292236328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.49822998046875, - 144.6033172607422, - 346.4991455078125, - 156.6093292236328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "J.V.", - "origin": [ - 54.0, - 165.06033325195312 - ], - "bbox": [ - 54.0, - 155.5833282470703, - 68.50170135498047, - 167.58934020996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 155.5833282470703, - 68.50170135498047, - 167.58934020996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "M", - "origin": [ - 127.98090362548828, - 165.06033325195312 - ], - "bbox": [ - 127.98090362548828, - 155.5833282470703, - 135.98190307617188, - 167.58934020996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.98090362548828, - 155.5833282470703, - 135.98190307617188, - 167.58934020996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "50", - "origin": [ - 193.5009002685547, - 165.06033325195312 - ], - "bbox": [ - 193.5009002685547, - 155.5833282470703, - 202.5009002685547, - 167.58934020996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.5009002685547, - 155.5833282470703, - 202.5009002685547, - 167.58934020996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 267.72119140625, - 165.06033325195312 - ], - "bbox": [ - 267.72119140625, - 155.5833282470703, - 272.22119140625, - 167.58934020996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.72119140625, - 155.5833282470703, - 272.22119140625, - 167.58934020996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "30", - "origin": [ - 337.50091552734375, - 165.06033325195312 - ], - "bbox": [ - 337.50091552734375, - 155.5833282470703, - 346.5018310546875, - 167.58934020996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.50091552734375, - 155.5833282470703, - 346.5018310546875, - 167.58934020996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "A.K.", - "origin": [ - 54.0, - 176.04034423828125 - ], - "bbox": [ - 54.0, - 166.56333923339844, - 71.49870300292969, - 178.56935119628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 166.56333923339844, - 71.49870300292969, - 178.56935119628906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "M", - "origin": [ - 127.97820281982422, - 176.04034423828125 - ], - "bbox": [ - 127.97820281982422, - 166.56333923339844, - 135.9792022705078, - 178.56935119628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.97820281982422, - 166.56333923339844, - 135.9792022705078, - 178.56935119628906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "93", - "origin": [ - 193.49819946289062, - 176.04034423828125 - ], - "bbox": [ - 193.49819946289062, - 166.56333923339844, - 202.49819946289062, - 178.56935119628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.49819946289062, - 166.56333923339844, - 202.49819946289062, - 178.56935119628906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 267.718505859375, - 176.04034423828125 - ], - "bbox": [ - 267.718505859375, - 166.56333923339844, - 272.218505859375, - 178.56935119628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.718505859375, - 166.56333923339844, - 272.218505859375, - 178.56935119628906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "25", - "origin": [ - 337.49822998046875, - 176.04034423828125 - ], - "bbox": [ - 337.49822998046875, - 166.56333923339844, - 346.4991455078125, - 178.56935119628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.49822998046875, - 166.56333923339844, - 346.4991455078125, - 178.56935119628906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "G.A.", - "origin": [ - 54.0, - 187.08065795898438 - ], - "bbox": [ - 54.0, - 177.60365295410156, - 71.49870300292969, - 189.6096649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 177.60365295410156, - 71.49870300292969, - 189.6096649169922 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "F", - "origin": [ - 129.47760009765625, - 187.08065795898438 - ], - "bbox": [ - 129.47760009765625, - 177.60365295410156, - 134.48159790039062, - 189.6096649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.47760009765625, - 177.60365295410156, - 134.48159790039062, - 189.6096649169922 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "77", - "origin": [ - 193.49729919433594, - 187.08065795898438 - ], - "bbox": [ - 193.49729919433594, - 177.60365295410156, - 202.49729919433594, - 189.6096649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.49729919433594, - 177.60365295410156, - 202.49729919433594, - 189.6096649169922 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 267.71759033203125, - 187.08065795898438 - ], - "bbox": [ - 267.71759033203125, - 177.60365295410156, - 272.21759033203125, - 189.6096649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.71759033203125, - 177.60365295410156, - 272.21759033203125, - 189.6096649169922 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "24", - "origin": [ - 337.497314453125, - 187.08065795898438 - ], - "bbox": [ - 337.497314453125, - 177.60365295410156, - 346.49822998046875, - 189.6096649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.497314453125, - 177.60365295410156, - 346.49822998046875, - 189.6096649169922 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 54.0, - 206.22300720214844, - 378.0919189453125, - 229.2090301513672 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Note.", - "origin": [ - 54.0, - 215.70001220703125 - ], - "bbox": [ - 54.0, - 207.14100646972656, - 73.2509994506836, - 218.1300048828125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " The Amyotrophic Lateral Sclerosis Severity Scale (ALSSS) assesses speech and motor", - "origin": [ - 73.26000213623047, - 215.70001220703125 - ], - "bbox": [ - 73.26000213623047, - 206.22300720214844, - 378.0919189453125, - 218.22901916503906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 206.22300720214844, - 378.0919189453125, - 218.22901916503906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "function in activities of daily living; maximum score is 40 points. F = female; M = male.", - "origin": [ - 54.00090408325195, - 226.68002319335938 - ], - "bbox": [ - 54.00090408325195, - 217.20301818847656, - 373.1643371582031, - 229.2090301513672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00090408325195, - 217.20301818847656, - 373.1643371582031, - 229.2090301513672 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 6, - "type": 0, - "bbox": [ - 54.0, - 63.983882904052734, - 349.387939453125, - 76.44888305664062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Table 1", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 63.983882904052734, - 83.73150634765625, - 76.44888305664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 63.983882904052734, - 83.73150634765625, - 76.44888305664062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Clinical Details of Patients With Amyotrophic Lateral Sclerosis", - "origin": [ - 92.82061004638672, - 73.3798828125 - ], - "bbox": [ - 92.82061004638672, - 63.983882904052734, - 349.387939453125, - 76.44888305664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.82061004638672, - 63.983882904052734, - 349.387939453125, - 76.44888305664062 - ] - } - ], - "tag": "on-table" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 249.1199951171875, - 93.24291229248047, - 366.604248046875, - 105.24890899658203 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Years since", - "origin": [ - 249.1199951171875, - 102.71990966796875 - ], - "bbox": [ - 249.1199951171875, - 93.24291229248047, - 290.84942626953125, - 105.24890899658203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 249.1199951171875, - 93.24291229248047, - 290.84942626953125, - 105.24890899658203 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS Severity", - "origin": [ - 317.3598327636719, - 102.71990966796875 - ], - "bbox": [ - 317.3598327636719, - 93.24291229248047, - 366.604248046875, - 105.24890899658203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.3598327636719, - 93.24291229248047, - 366.604248046875, - 105.24890899658203 - ] - } - ], - "tag": "on-table" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 54.0, - 104.22301483154297, - 351.7244873046875, - 116.22901153564453 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Patient ID", - "origin": [ - 54.0, - 113.70001220703125 - ], - "bbox": [ - 54.0, - 104.22301483154297, - 90.76590728759766, - 116.22901153564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 104.22301483154297, - 90.76590728759766, - 116.22901153564453 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Gender", - "origin": [ - 118.74600982666016, - 113.70001220703125 - ], - "bbox": [ - 118.74600982666016, - 104.22301483154297, - 145.2375030517578, - 116.22901153564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.74600982666016, - 104.22301483154297, - 145.2375030517578, - 116.22901153564453 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Age in years", - "origin": [ - 175.25250244140625, - 113.70001220703125 - ], - "bbox": [ - 175.25250244140625, - 104.22301483154297, - 220.77001953125, - 116.22901153564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.25250244140625, - 104.22301483154297, - 220.77001953125, - 116.22901153564453 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "diagnosis", - "origin": [ - 253.02243041992188, - 113.70001220703125 - ], - "bbox": [ - 253.02243041992188, - 104.22301483154297, - 287.0316162109375, - 116.22901153564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.02243041992188, - 104.22301483154297, - 287.0316162109375, - 116.22901153564453 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Scale", - "origin": [ - 332.2268981933594, - 113.70001220703125 - ], - "bbox": [ - 332.2268981933594, - 104.22301483154297, - 351.7244873046875, - 116.22901153564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.2268981933594, - 104.22301483154297, - 351.7244873046875, - 116.22901153564453 - ] - } - ], - "tag": "on-table" - }, - { - "number": 9, - "type": 0, - "bbox": [ - 54.0, - 133.56300354003906, - 346.5018310546875, - 189.6096649169922 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "I.B.", - "origin": [ - 54.0, - 143.04000854492188 - ], - "bbox": [ - 54.0, - 133.56300354003906, - 67.50270080566406, - 145.5690155029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 133.56300354003906, - 67.50270080566406, - 145.5690155029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "F", - "origin": [ - 129.481201171875, - 143.04000854492188 - ], - "bbox": [ - 129.481201171875, - 133.56300354003906, - 134.48519897460938, - 145.5690155029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.481201171875, - 133.56300354003906, - 134.48519897460938, - 145.5690155029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "73", - "origin": [ - 193.5009002685547, - 143.04000854492188 - ], - "bbox": [ - 193.5009002685547, - 133.56300354003906, - 202.5009002685547, - 145.5690155029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.5009002685547, - 133.56300354003906, - 202.5009002685547, - 145.5690155029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 267.72119140625, - 143.04000854492188 - ], - "bbox": [ - 267.72119140625, - 133.56300354003906, - 272.22119140625, - 145.5690155029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.72119140625, - 133.56300354003906, - 272.22119140625, - 145.5690155029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "22", - "origin": [ - 337.50091552734375, - 143.04000854492188 - ], - "bbox": [ - 337.50091552734375, - 133.56300354003906, - 346.5018310546875, - 145.5690155029297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.50091552734375, - 133.56300354003906, - 346.5018310546875, - 145.5690155029297 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "E.E.", - "origin": [ - 54.0, - 154.080322265625 - ], - "bbox": [ - 54.0, - 144.6033172607422, - 69.50070190429688, - 156.6093292236328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 144.6033172607422, - 69.50070190429688, - 156.6093292236328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "F", - "origin": [ - 129.478515625, - 154.080322265625 - ], - "bbox": [ - 129.478515625, - 144.6033172607422, - 134.48251342773438, - 156.6093292236328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.478515625, - 144.6033172607422, - 134.48251342773438, - 156.6093292236328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "76", - "origin": [ - 193.4982147216797, - 154.080322265625 - ], - "bbox": [ - 193.4982147216797, - 144.6033172607422, - 202.4982147216797, - 156.6093292236328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.4982147216797, - 144.6033172607422, - 202.4982147216797, - 156.6093292236328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "3", - "origin": [ - 267.718505859375, - 154.080322265625 - ], - "bbox": [ - 267.718505859375, - 144.6033172607422, - 272.218505859375, - 156.6093292236328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.718505859375, - 144.6033172607422, - 272.218505859375, - 156.6093292236328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "27", - "origin": [ - 337.49822998046875, - 154.080322265625 - ], - "bbox": [ - 337.49822998046875, - 144.6033172607422, - 346.4991455078125, - 156.6093292236328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.49822998046875, - 144.6033172607422, - 346.4991455078125, - 156.6093292236328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "J.V.", - "origin": [ - 54.0, - 165.06033325195312 - ], - "bbox": [ - 54.0, - 155.5833282470703, - 68.50170135498047, - 167.58934020996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 155.5833282470703, - 68.50170135498047, - 167.58934020996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "M", - "origin": [ - 127.98090362548828, - 165.06033325195312 - ], - "bbox": [ - 127.98090362548828, - 155.5833282470703, - 135.98190307617188, - 167.58934020996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.98090362548828, - 155.5833282470703, - 135.98190307617188, - 167.58934020996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "50", - "origin": [ - 193.5009002685547, - 165.06033325195312 - ], - "bbox": [ - 193.5009002685547, - 155.5833282470703, - 202.5009002685547, - 167.58934020996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.5009002685547, - 155.5833282470703, - 202.5009002685547, - 167.58934020996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 267.72119140625, - 165.06033325195312 - ], - "bbox": [ - 267.72119140625, - 155.5833282470703, - 272.22119140625, - 167.58934020996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.72119140625, - 155.5833282470703, - 272.22119140625, - 167.58934020996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "30", - "origin": [ - 337.50091552734375, - 165.06033325195312 - ], - "bbox": [ - 337.50091552734375, - 155.5833282470703, - 346.5018310546875, - 167.58934020996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.50091552734375, - 155.5833282470703, - 346.5018310546875, - 167.58934020996094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "A.K.", - "origin": [ - 54.0, - 176.04034423828125 - ], - "bbox": [ - 54.0, - 166.56333923339844, - 71.49870300292969, - 178.56935119628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 166.56333923339844, - 71.49870300292969, - 178.56935119628906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "M", - "origin": [ - 127.97820281982422, - 176.04034423828125 - ], - "bbox": [ - 127.97820281982422, - 166.56333923339844, - 135.9792022705078, - 178.56935119628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.97820281982422, - 166.56333923339844, - 135.9792022705078, - 178.56935119628906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "93", - "origin": [ - 193.49819946289062, - 176.04034423828125 - ], - "bbox": [ - 193.49819946289062, - 166.56333923339844, - 202.49819946289062, - 178.56935119628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.49819946289062, - 166.56333923339844, - 202.49819946289062, - 178.56935119628906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 267.718505859375, - 176.04034423828125 - ], - "bbox": [ - 267.718505859375, - 166.56333923339844, - 272.218505859375, - 178.56935119628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.718505859375, - 166.56333923339844, - 272.218505859375, - 178.56935119628906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "25", - "origin": [ - 337.49822998046875, - 176.04034423828125 - ], - "bbox": [ - 337.49822998046875, - 166.56333923339844, - 346.4991455078125, - 178.56935119628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.49822998046875, - 166.56333923339844, - 346.4991455078125, - 178.56935119628906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "G.A.", - "origin": [ - 54.0, - 187.08065795898438 - ], - "bbox": [ - 54.0, - 177.60365295410156, - 71.49870300292969, - 189.6096649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 177.60365295410156, - 71.49870300292969, - 189.6096649169922 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "F", - "origin": [ - 129.47760009765625, - 187.08065795898438 - ], - "bbox": [ - 129.47760009765625, - 177.60365295410156, - 134.48159790039062, - 189.6096649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.47760009765625, - 177.60365295410156, - 134.48159790039062, - 189.6096649169922 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "77", - "origin": [ - 193.49729919433594, - 187.08065795898438 - ], - "bbox": [ - 193.49729919433594, - 177.60365295410156, - 202.49729919433594, - 189.6096649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.49729919433594, - 177.60365295410156, - 202.49729919433594, - 189.6096649169922 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 267.71759033203125, - 187.08065795898438 - ], - "bbox": [ - 267.71759033203125, - 177.60365295410156, - 272.21759033203125, - 189.6096649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.71759033203125, - 177.60365295410156, - 272.21759033203125, - 189.6096649169922 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "24", - "origin": [ - 337.497314453125, - 187.08065795898438 - ], - "bbox": [ - 337.497314453125, - 177.60365295410156, - 346.49822998046875, - 189.6096649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.497314453125, - 177.60365295410156, - 346.49822998046875, - 189.6096649169922 - ] - } - ], - "tag": "on-table" - }, - { - "number": 11, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 3, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_4": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 480.2640075683594, - 378.0733337402344, - 602.7083740234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Figure 1 — (A) The instrumented object and the configuration of the hand and fingers", - "origin": [ - 54.0, - 489.6600036621094 - ], - "bbox": [ - 54.0, - 480.2640075683594, - 377.9847717285156, - 492.72900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.2640075683594, - 377.9847717285156, - 492.72900390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "used to grasp it. The forces produced during vertical point-to-point arm movements", - "origin": [ - 54.0, - 499.62030029296875 - ], - "bbox": [ - 54.0, - 490.22430419921875, - 378.00457763671875, - 502.6893005371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 490.22430419921875, - 378.00457763671875, - 502.6893005371094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "are illustrated. The object incorporated a force sensor to register grip force and three", - "origin": [ - 54.0, - 509.6400146484375 - ], - "bbox": [ - 54.0, - 500.2440185546875, - 378.0235290527344, - 512.708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 500.2440185546875, - 378.0235290527344, - 512.708984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "linear acceleration sensors to measure accelerations in three dimensions. m = mass", - "origin": [ - 54.0, - 519.65966796875 - ], - "bbox": [ - 54.0, - 510.263671875, - 378.0072937011719, - 522.7286376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 510.263671875, - 378.0072937011719, - 522.7286376953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "(0.35 kg), G = gravity, ACC = kinematic acceleration in the direction of movement, F", - "origin": [ - 54.0, - 529.6199951171875 - ], - "bbox": [ - 54.0, - 520.2239990234375, - 373.95001220703125, - 532.68896484375 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "G", - "origin": [ - 373.9800109863281, - 531.4199829101562 - ], - "bbox": [ - 373.9800109863281, - 525.9912109375, - 378.0256042480469, - 533.1931762695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 520.2239990234375, - 378.0256042480469, - 533.1931762695312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "= grip force, Load Force = m ", - "origin": [ - 54.0, - 539.6400146484375 - ], - "bbox": [ - 54.0, - 530.2440185546875, - 160.35214233398438, - 542.708984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Universal-GreekwithMathP", - "color": 2236191, - "ascender": 0.8149999976158142, - "descender": -0.23999999463558197, - "text": "�", - "origin": [ - 159.72030639648438, - 539.6400146484375 - ], - "bbox": [ - 159.72030639648438, - 532.3049926757812, - 167.21730041503906, - 541.7999877929688 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": " (ACC", - "origin": [ - 167.04000854492188, - 539.6400146484375 - ], - "bbox": [ - 167.04000854492188, - 530.2440185546875, - 190.37791442871094, - 542.708984375 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "y", - "origin": [ - 190.25999450683594, - 541.4400024414062 - ], - "bbox": [ - 190.25999450683594, - 536.01123046875, - 192.86000061035156, - 543.2131958007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 530.2440185546875, - 192.86000061035156, - 543.2131958007812 - ] - }, - { - "spans": [ - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "2", - "origin": [ - 192.7799072265625, - 536.639892578125 - ], - "bbox": [ - 192.7799072265625, - 531.2111206054688, - 195.37991333007812, - 538.4130859375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": " + [ACC", - "origin": [ - 195.36000061035156, - 539.6400146484375 - ], - "bbox": [ - 195.36000061035156, - 530.2440185546875, - 225.2382049560547, - 542.708984375 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "z", - "origin": [ - 225.17999267578125, - 541.4400024414062 - ], - "bbox": [ - 225.17999267578125, - 536.01123046875, - 227.48880004882812, - 543.2131958007812 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": " + G]", - "origin": [ - 227.39999389648438, - 539.6400146484375 - ], - "bbox": [ - 227.39999389648438, - 530.2440185546875, - 245.51339721679688, - 542.708984375 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "2", - "origin": [ - 245.39999389648438, - 536.6400146484375 - ], - "bbox": [ - 245.39999389648438, - 531.2112426757812, - 248.0, - 538.4132080078125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ")", - "origin": [ - 247.97999572753906, - 539.6400146484375 - ], - "bbox": [ - 247.97999572753906, - 530.2440185546875, - 250.97698974609375, - 542.708984375 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "1/2", - "origin": [ - 250.86000061035156, - 536.6400146484375 - ], - "bbox": [ - 250.86000061035156, - 531.2112426757812, - 257.3932800292969, - 538.4132080078125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ". (B) Pure kinematic acceleration", - "origin": [ - 257.3399963378906, - 539.6400146484375 - ], - "bbox": [ - 257.3399963378906, - 530.2440185546875, - 378.04705810546875, - 542.708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.7799072265625, - 530.2440185546875, - 378.04705810546875, - 543.2131958007812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "(ACC) and grip force signals obtained from single upward and downward movements", - "origin": [ - 54.00030517578125, - 549.65966796875 - ], - "bbox": [ - 54.00030517578125, - 540.263671875, - 378.00030517578125, - 552.7286376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 540.263671875, - 378.00030517578125, - 552.7286376953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "performed by a control subject. The four time points within the movement course on", - "origin": [ - 54.00030517578125, - 559.6199951171875 - ], - "bbox": [ - 54.00030517578125, - 550.2239990234375, - 378.0733337402344, - 562.68896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 550.2239990234375, - 378.0733337402344, - 562.68896484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "which data analysis was focused are indicated within acceleration and grip force traces", - "origin": [ - 54.00030517578125, - 569.6397094726562 - ], - "bbox": [ - 54.00030517578125, - 560.2437133789062, - 378.0235900878906, - 572.7086791992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 560.2437133789062, - 378.0235900878906, - 572.7086791992188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "of the upward and downward movement (see Methods). The dashed vertical lines", - "origin": [ - 54.00030517578125, - 579.659423828125 - ], - "bbox": [ - 54.00030517578125, - 570.263427734375, - 378.0328369140625, - 582.7283935546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 570.263427734375, - 378.0328369140625, - 582.7283935546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "indicate the onset of vertical movements. The solid vertical lines indicate the maximum", - "origin": [ - 54.00030517578125, - 589.6196899414062 - ], - "bbox": [ - 54.00030517578125, - 580.2236938476562, - 378.00299072265625, - 592.6886596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 580.2236938476562, - 378.00299072265625, - 592.6886596679688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "of kinematic acceleration.", - "origin": [ - 54.00030517578125, - 599.639404296875 - ], - "bbox": [ - 54.00030517578125, - 590.243408203125, - 152.72669982910156, - 602.7083740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 590.243408203125, - 152.72669982910156, - 602.7083740234375 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 88, - 66, - 342, - 468 - ], - "image_path": "images/4_88_66_342_468.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 367.67999999999995, - 523.1999999999999, - 379.67999999999995, - 533.28 - ], - "image_path": "equations_inline/4_367_523_379_533.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 66, - 432.0, - 602.7083740234375 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 480.2640075683594, - 378.0733337402344, - 602.7083740234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Figure 1 — (A) The instrumented object and the configuration of the hand and fingers", - "origin": [ - 54.0, - 489.6600036621094 - ], - "bbox": [ - 54.0, - 480.2640075683594, - 377.9847717285156, - 492.72900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.2640075683594, - 377.9847717285156, - 492.72900390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "used to grasp it. The forces produced during vertical point-to-point arm movements", - "origin": [ - 54.0, - 499.62030029296875 - ], - "bbox": [ - 54.0, - 490.22430419921875, - 378.00457763671875, - 502.6893005371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 490.22430419921875, - 378.00457763671875, - 502.6893005371094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "are illustrated. The object incorporated a force sensor to register grip force and three", - "origin": [ - 54.0, - 509.6400146484375 - ], - "bbox": [ - 54.0, - 500.2440185546875, - 378.0235290527344, - 512.708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 500.2440185546875, - 378.0235290527344, - 512.708984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "linear acceleration sensors to measure accelerations in three dimensions. m = mass", - "origin": [ - 54.0, - 519.65966796875 - ], - "bbox": [ - 54.0, - 510.263671875, - 378.0072937011719, - 522.7286376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 510.263671875, - 378.0072937011719, - 522.7286376953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "(0.35 kg), G = gravity, ACC = kinematic acceleration in the direction of movement, F", - "origin": [ - 54.0, - 529.6199951171875 - ], - "bbox": [ - 54.0, - 520.2239990234375, - 373.95001220703125, - 532.68896484375 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "G", - "origin": [ - 373.9800109863281, - 531.4199829101562 - ], - "bbox": [ - 373.9800109863281, - 525.9912109375, - 378.0256042480469, - 533.1931762695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 520.2239990234375, - 378.0256042480469, - 533.1931762695312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "= grip force, Load Force = m ", - "origin": [ - 54.0, - 539.6400146484375 - ], - "bbox": [ - 54.0, - 530.2440185546875, - 160.35214233398438, - 542.708984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Universal-GreekwithMathP", - "color": 2236191, - "ascender": 0.8149999976158142, - "descender": -0.23999999463558197, - "text": "�", - "origin": [ - 159.72030639648438, - 539.6400146484375 - ], - "bbox": [ - 159.72030639648438, - 532.3049926757812, - 167.21730041503906, - 541.7999877929688 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": " (ACC", - "origin": [ - 167.04000854492188, - 539.6400146484375 - ], - "bbox": [ - 167.04000854492188, - 530.2440185546875, - 190.37791442871094, - 542.708984375 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "y", - "origin": [ - 190.25999450683594, - 541.4400024414062 - ], - "bbox": [ - 190.25999450683594, - 536.01123046875, - 192.86000061035156, - 543.2131958007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 530.2440185546875, - 192.86000061035156, - 543.2131958007812 - ] - }, - { - "spans": [ - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "2", - "origin": [ - 192.7799072265625, - 536.639892578125 - ], - "bbox": [ - 192.7799072265625, - 531.2111206054688, - 195.37991333007812, - 538.4130859375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": " + [ACC", - "origin": [ - 195.36000061035156, - 539.6400146484375 - ], - "bbox": [ - 195.36000061035156, - 530.2440185546875, - 225.2382049560547, - 542.708984375 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "z", - "origin": [ - 225.17999267578125, - 541.4400024414062 - ], - "bbox": [ - 225.17999267578125, - 536.01123046875, - 227.48880004882812, - 543.2131958007812 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": " + G]", - "origin": [ - 227.39999389648438, - 539.6400146484375 - ], - "bbox": [ - 227.39999389648438, - 530.2440185546875, - 245.51339721679688, - 542.708984375 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "2", - "origin": [ - 245.39999389648438, - 536.6400146484375 - ], - "bbox": [ - 245.39999389648438, - 531.2112426757812, - 248.0, - 538.4132080078125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ")", - "origin": [ - 247.97999572753906, - 539.6400146484375 - ], - "bbox": [ - 247.97999572753906, - 530.2440185546875, - 250.97698974609375, - 542.708984375 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "1/2", - "origin": [ - 250.86000061035156, - 536.6400146484375 - ], - "bbox": [ - 250.86000061035156, - 531.2112426757812, - 257.3932800292969, - 538.4132080078125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ". (B) Pure kinematic acceleration", - "origin": [ - 257.3399963378906, - 539.6400146484375 - ], - "bbox": [ - 257.3399963378906, - 530.2440185546875, - 378.04705810546875, - 542.708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.7799072265625, - 530.2440185546875, - 378.04705810546875, - 543.2131958007812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "(ACC) and grip force signals obtained from single upward and downward movements", - "origin": [ - 54.00030517578125, - 549.65966796875 - ], - "bbox": [ - 54.00030517578125, - 540.263671875, - 378.00030517578125, - 552.7286376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 540.263671875, - 378.00030517578125, - 552.7286376953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "performed by a control subject. The four time points within the movement course on", - "origin": [ - 54.00030517578125, - 559.6199951171875 - ], - "bbox": [ - 54.00030517578125, - 550.2239990234375, - 378.0733337402344, - 562.68896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 550.2239990234375, - 378.0733337402344, - 562.68896484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "which data analysis was focused are indicated within acceleration and grip force traces", - "origin": [ - 54.00030517578125, - 569.6397094726562 - ], - "bbox": [ - 54.00030517578125, - 560.2437133789062, - 378.0235900878906, - 572.7086791992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 560.2437133789062, - 378.0235900878906, - 572.7086791992188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "of the upward and downward movement (see Methods). The dashed vertical lines", - "origin": [ - 54.00030517578125, - 579.659423828125 - ], - "bbox": [ - 54.00030517578125, - 570.263427734375, - 378.0328369140625, - 582.7283935546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 570.263427734375, - 378.0328369140625, - 582.7283935546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "indicate the onset of vertical movements. The solid vertical lines indicate the maximum", - "origin": [ - 54.00030517578125, - 589.6196899414062 - ], - "bbox": [ - 54.00030517578125, - 580.2236938476562, - 378.00299072265625, - 592.6886596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 580.2236938476562, - 378.00299072265625, - 592.6886596679688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "of kinematic acceleration.", - "origin": [ - 54.00030517578125, - 599.639404296875 - ], - "bbox": [ - 54.00030517578125, - 590.243408203125, - 152.72669982910156, - 602.7083740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 590.243408203125, - 152.72669982910156, - 602.7083740234375 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 4, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_5": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.10992431640625, - 417.16998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "with their dominant upper arm parallel to the trunk, and with their unsupported", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0679626464844, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0679626464844, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forearm extending anteriorly. In this position, they were ask to lift the", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 377.9831848144531, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 377.9831848144531, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "manipulandum, which was placed on the table before them. The manipulandum", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.010009765625, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.010009765625, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was grasped between the tips of the thumb and other fingers on either side (Figure", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.01495361328125, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.01495361328125, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1A). Subjects were not prevented from seeing their moving arm and hand during", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0080261230469, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0080261230469, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "performance of the tasks. Prior to the experiments, all subjects were asked to grasp", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0411071777344, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0411071777344, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the manipulandum and to squeeze it as much as possible. All subjects performed", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.0369873046875, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.0369873046875, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "this procedure twice. It was carried out to detect any differences in maximum force", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.0090637207031, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.0090637207031, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "generation between patients and control subjects. Before the experiments, the sub-", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.02099609375, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.02099609375, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "jects received verbal instructions from an experimenter, who also performed dem-", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.02496337890625, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.02496337890625, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "onstration trials. Before the vertical movements started, the arm was rotated in", - "origin": [ - 54.0, - 183.35983276367188 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.0250549316406, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.0250549316406, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "front of the trunk. The grip surfaces of the object were always oriented in parallel", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0410461425781, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0410461425781, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to the frontal aspect of the trunk. Subjects were instructed to move the object on a", - "origin": [ - 54.0, - 205.37985229492188 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.00299072265625, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.00299072265625, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "straight vertical line and to keep its orientation constant during movement. Sub-", - "origin": [ - 54.0, - 216.35986328125 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.033935546875, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.033935546875, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "jects were instructed to move the object fast but were not paced to move it at a", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0050964355469, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0050964355469, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "certain speed. The amplitude of movement should be approximately 30 cm and", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.0599365234375, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.0599365234375, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was specified by simply holding a ruler beside the moving hand during the first", - "origin": [ - 54.0, - 249.35989379882812 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0099792480469, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0099792480469, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements of each trial. Short breaks (approximately 1 s) were introduced in be-", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.10992431640625, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.10992431640625, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tween single up and down (point-to-point) movements. The vertical movements", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0240478515625, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0240478515625, - 274.1899108886719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "were achieved largely by rotations of the upper arm about the shoulder joint, and", - "origin": [ - 54.0, - 282.35992431640625 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.048095703125, - 285.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.048095703125, - 285.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "small movements of the forearm and wrist assured the motion of the object along", - "origin": [ - 54.0, - 293.3399353027344 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0240783691406, - 296.1499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0240783691406, - 296.1499328613281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "a straight vertical line. Movements in the wrist contained medial and lateral devia-", - "origin": [ - 54.0, - 304.37994384765625 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.02105712890625, - 307.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.02105712890625, - 307.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tions, but not flexion and extension. An experimenter instructed subjects and ob-", - "origin": [ - 54.0, - 315.3599548339844 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 377.9880676269531, - 318.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 377.9880676269531, - 318.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "served them during performance. Five trials of 30 to 45 s in duration with 10 to 15", - "origin": [ - 54.0, - 326.3399658203125 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.06011962890625, - 329.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.06011962890625, - 329.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements were performed for each participant.", - "origin": [ - 54.0, - 337.3199768066406 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 248.68505859375, - 340.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 248.68505859375, - 340.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "At the end of the fourth and fifth trial, subjects were asked to slowly separate", - "origin": [ - 78.0, - 348.3599853515625 - ], - "bbox": [ - 78.0, - 337.8299865722656, - 378.02313232421875, - 351.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 337.8299865722656, - 378.02313232421875, - 351.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the thumb and other fingers until the manipulandum was dropped. This procedure", - "origin": [ - 54.0, - 359.3399963378906 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.030029296875, - 362.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.030029296875, - 362.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was carried out to obtain an estimate of the minimal grip force (", - "origin": [ - 54.0, - 370.32000732421875 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 309.513916015625, - 373.1300048828125 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "slip force", - "origin": [ - 309.47998046875, - 370.32000732421875 - ], - "bbox": [ - 309.47998046875, - 360.80999755859375, - 346.6210021972656, - 373.02001953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") neces-", - "origin": [ - 346.6199951171875, - 370.32000732421875 - ], - "bbox": [ - 346.6199951171875, - 359.7900085449219, - 378.0019836425781, - 373.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 378.0019836425781, - 373.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sary to prevent the manipulandum from slipping. The slip point was defined as the", - "origin": [ - 54.0, - 381.3600158691406 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 378.0141296386719, - 384.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 378.0141296386719, - 384.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "first detectable change in acceleration along the object’s Z-axis, and the ", - "origin": [ - 54.0, - 392.34002685546875 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 340.9460144042969, - 395.1500244140625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "minimum", - "origin": [ - 340.79998779296875, - 392.34002685546875 - ], - "bbox": [ - 340.79998779296875, - 382.83001708984375, - 378.0199890136719, - 395.0400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.0199890136719, - 395.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "grip force", - "origin": [ - 54.0, - 403.32000732421875 - ], - "bbox": [ - 54.0, - 393.80999755859375, - 93.0009994506836, - 406.02001953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " was determined at this time point (Johansson & Westling, 1984; Nowak", - "origin": [ - 93.0, - 403.32000732421875 - ], - "bbox": [ - 93.0, - 392.7900085449219, - 377.97003173828125, - 406.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 377.97003173828125, - 406.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "et al., 2002, 2003).", - "origin": [ - 54.0, - 414.3599853515625 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 129.25799560546875, - 417.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 129.25799560546875, - 417.16998291015625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 53.99998474121094, - 445.8299865722656, - 378.0749816894531, - 602.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Following one individual experimental session, the measured data were transferred", - "origin": [ - 54.0, - 456.3599853515625 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.0361633300781, - 459.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.0361633300781, - 459.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to a personal computer and stored. The total acceleration measured along the ob-", - "origin": [ - 54.0, - 467.3399963378906 - ], - "bbox": [ - 54.0, - 456.80999755859375, - 378.0749816894531, - 470.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 456.80999755859375, - 378.0749816894531, - 470.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "jects Z-axis was a combination of gravity (9.81 m/s", - "origin": [ - 54.0, - 478.32000732421875 - ], - "bbox": [ - 54.0, - 467.7900085449219, - 261.40606689453125, - 481.1300048828125 - ] - }, - { - "size": 5.800000190734863, - "flags": 5, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 261.4200134277344, - 475.02001953125 - ], - "bbox": [ - 261.4200134277344, - 468.9126281738281, - 264.32000732421875, - 476.6498107910156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") and kinematic acceleration", - "origin": [ - 264.29998779296875, - 478.32000732421875 - ], - "bbox": [ - 264.29998779296875, - 467.7900085449219, - 378.0399475097656, - 481.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 467.7900085449219, - 378.0399475097656, - 481.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "due to movement. Positive kinematic acceleration of the object (along the object’s", - "origin": [ - 53.99998474121094, - 489.3599853515625 - ], - "bbox": [ - 53.99998474121094, - 478.8299865722656, - 378.00592041015625, - 492.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 478.8299865722656, - 378.00592041015625, - 492.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Z-axis, see Figure 1A) was directed upward during the discrete vertical move-", - "origin": [ - 53.99998474121094, - 500.3399963378906 - ], - "bbox": [ - 53.99998474121094, - 489.80999755859375, - 378.0419921875, - 503.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 489.80999755859375, - 378.0419921875, - 503.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments. When the object was held stationary, only gravitational acceleration was", - "origin": [ - 53.99998474121094, - 511.32000732421875 - ], - "bbox": [ - 53.99998474121094, - 500.7900085449219, - 378.0039978027344, - 514.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 500.7900085449219, - 378.0039978027344, - 514.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "measured. Pure kinematic acceleration (ACC) was calculated by subtracting gravi-", - "origin": [ - 53.99998474121094, - 522.3599853515625 - ], - "bbox": [ - 53.99998474121094, - 511.8299865722656, - 378.00921630859375, - 525.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 511.8299865722656, - 378.00921630859375, - 525.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tational acceleration from the total acceleration measured along the object’s Z-", - "origin": [ - 53.99998474121094, - 533.3399658203125 - ], - "bbox": [ - 53.99998474121094, - 522.8099365234375, - 378.0219421386719, - 536.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 522.8099365234375, - 378.0219421386719, - 536.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "axis. The net load force (F", - "origin": [ - 53.99998474121094, - 544.3200073242188 - ], - "bbox": [ - 53.99998474121094, - 533.7899780273438, - 157.8489990234375, - 547.1300048828125 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "L", - "origin": [ - 157.8000030517578, - 546.3599853515625 - ], - "bbox": [ - 157.8000030517578, - 540.2525634765625, - 161.3437957763672, - 547.9898071289062 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") was calculated from the object mass and the vectorial", - "origin": [ - 161.33999633789062, - 544.3200073242188 - ], - "bbox": [ - 161.33999633789062, - 533.7899780273438, - 377.9980163574219, - 547.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 533.7899780273438, - 377.9980163574219, - 547.9898071289062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "summation of accelerations parallel to the grip surface, including gravitational", - "origin": [ - 53.99999237060547, - 555.3599853515625 - ], - "bbox": [ - 53.99999237060547, - 544.8299560546875, - 378.05596923828125, - 558.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 544.8299560546875, - 378.05596923828125, - 558.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(9.81 m/s", - "origin": [ - 53.99999237060547, - 566.3400268554688 - ], - "bbox": [ - 53.99999237060547, - 555.8099975585938, - 92.57398986816406, - 569.1500244140625 - ] - }, - { - "size": 5.800000190734863, - "flags": 5, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 92.5199966430664, - 562.97998046875 - ], - "bbox": [ - 92.5199966430664, - 556.87255859375, - 95.41999816894531, - 564.6098022460938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") acceleration (along the object’s Y- and Z-axis; see Figure 1A). This", - "origin": [ - 95.45999908447266, - 566.3399658203125 - ], - "bbox": [ - 95.45999908447266, - 555.8099365234375, - 377.97308349609375, - 569.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 555.8099365234375, - 377.97308349609375, - 569.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "method included additional inertial loads, which arose from eventual movement", - "origin": [ - 54.0, - 577.3200073242188 - ], - "bbox": [ - 54.0, - 566.7899780273438, - 377.9769287109375, - 580.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 566.7899780273438, - 377.9769287109375, - 580.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "components in the transversal (Y-axis) direction. Loading components acting in", - "origin": [ - 54.0, - 588.3599853515625 - ], - "bbox": [ - 54.0, - 577.8299560546875, - 378.0550231933594, - 591.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 577.8299560546875, - 378.0550231933594, - 591.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the direction of the applied grip forces (X-axis; compare Figure 1A) were not", - "origin": [ - 54.0, - 599.3400268554688 - ], - "bbox": [ - 54.0, - 588.8099975585938, - 378.07000732421875, - 602.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 588.8099975585938, - 378.07000732421875, - 602.1500244140625 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 62.849884033203125, - 432.0, - 602.1500244140625 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.10992431640625, - 417.16998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "with their dominant upper arm parallel to the trunk, and with their unsupported", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0679626464844, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0679626464844, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forearm extending anteriorly. In this position, they were ask to lift the", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 377.9831848144531, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 377.9831848144531, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "manipulandum, which was placed on the table before them. The manipulandum", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.010009765625, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.010009765625, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was grasped between the tips of the thumb and other fingers on either side (Figure", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.01495361328125, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.01495361328125, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1A). Subjects were not prevented from seeing their moving arm and hand during", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0080261230469, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0080261230469, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "performance of the tasks. Prior to the experiments, all subjects were asked to grasp", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0411071777344, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0411071777344, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the manipulandum and to squeeze it as much as possible. All subjects performed", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.0369873046875, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.0369873046875, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "this procedure twice. It was carried out to detect any differences in maximum force", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.0090637207031, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.0090637207031, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "generation between patients and control subjects. Before the experiments, the sub-", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.02099609375, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.02099609375, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "jects received verbal instructions from an experimenter, who also performed dem-", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.02496337890625, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.02496337890625, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "onstration trials. Before the vertical movements started, the arm was rotated in", - "origin": [ - 54.0, - 183.35983276367188 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.0250549316406, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.0250549316406, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "front of the trunk. The grip surfaces of the object were always oriented in parallel", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0410461425781, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0410461425781, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to the frontal aspect of the trunk. Subjects were instructed to move the object on a", - "origin": [ - 54.0, - 205.37985229492188 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.00299072265625, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.00299072265625, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "straight vertical line and to keep its orientation constant during movement. Sub-", - "origin": [ - 54.0, - 216.35986328125 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.033935546875, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.033935546875, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "jects were instructed to move the object fast but were not paced to move it at a", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0050964355469, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0050964355469, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "certain speed. The amplitude of movement should be approximately 30 cm and", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.0599365234375, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.0599365234375, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was specified by simply holding a ruler beside the moving hand during the first", - "origin": [ - 54.0, - 249.35989379882812 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0099792480469, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0099792480469, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements of each trial. Short breaks (approximately 1 s) were introduced in be-", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.10992431640625, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.10992431640625, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tween single up and down (point-to-point) movements. The vertical movements", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0240478515625, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0240478515625, - 274.1899108886719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "were achieved largely by rotations of the upper arm about the shoulder joint, and", - "origin": [ - 54.0, - 282.35992431640625 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.048095703125, - 285.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.048095703125, - 285.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "small movements of the forearm and wrist assured the motion of the object along", - "origin": [ - 54.0, - 293.3399353027344 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0240783691406, - 296.1499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0240783691406, - 296.1499328613281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "a straight vertical line. Movements in the wrist contained medial and lateral devia-", - "origin": [ - 54.0, - 304.37994384765625 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.02105712890625, - 307.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.02105712890625, - 307.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tions, but not flexion and extension. An experimenter instructed subjects and ob-", - "origin": [ - 54.0, - 315.3599548339844 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 377.9880676269531, - 318.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 377.9880676269531, - 318.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "served them during performance. Five trials of 30 to 45 s in duration with 10 to 15", - "origin": [ - 54.0, - 326.3399658203125 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.06011962890625, - 329.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.06011962890625, - 329.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements were performed for each participant.", - "origin": [ - 54.0, - 337.3199768066406 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 248.68505859375, - 340.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 248.68505859375, - 340.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "At the end of the fourth and fifth trial, subjects were asked to slowly separate", - "origin": [ - 78.0, - 348.3599853515625 - ], - "bbox": [ - 78.0, - 337.8299865722656, - 378.02313232421875, - 351.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 337.8299865722656, - 378.02313232421875, - 351.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the thumb and other fingers until the manipulandum was dropped. This procedure", - "origin": [ - 54.0, - 359.3399963378906 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.030029296875, - 362.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.030029296875, - 362.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was carried out to obtain an estimate of the minimal grip force (", - "origin": [ - 54.0, - 370.32000732421875 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 309.513916015625, - 373.1300048828125 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "slip force", - "origin": [ - 309.47998046875, - 370.32000732421875 - ], - "bbox": [ - 309.47998046875, - 360.80999755859375, - 346.6210021972656, - 373.02001953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") neces-", - "origin": [ - 346.6199951171875, - 370.32000732421875 - ], - "bbox": [ - 346.6199951171875, - 359.7900085449219, - 378.0019836425781, - 373.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 378.0019836425781, - 373.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sary to prevent the manipulandum from slipping. The slip point was defined as the", - "origin": [ - 54.0, - 381.3600158691406 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 378.0141296386719, - 384.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 378.0141296386719, - 384.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "first detectable change in acceleration along the object’s Z-axis, and the ", - "origin": [ - 54.0, - 392.34002685546875 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 340.9460144042969, - 395.1500244140625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "minimum", - "origin": [ - 340.79998779296875, - 392.34002685546875 - ], - "bbox": [ - 340.79998779296875, - 382.83001708984375, - 378.0199890136719, - 395.0400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.0199890136719, - 395.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "grip force", - "origin": [ - 54.0, - 403.32000732421875 - ], - "bbox": [ - 54.0, - 393.80999755859375, - 93.0009994506836, - 406.02001953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " was determined at this time point (Johansson & Westling, 1984; Nowak", - "origin": [ - 93.0, - 403.32000732421875 - ], - "bbox": [ - 93.0, - 392.7900085449219, - 377.97003173828125, - 406.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 377.97003173828125, - 406.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "et al., 2002, 2003).", - "origin": [ - 54.0, - 414.3599853515625 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 129.25799560546875, - 417.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 129.25799560546875, - 417.16998291015625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 53.99998474121094, - 445.8299865722656, - 378.0749816894531, - 602.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Following one individual experimental session, the measured data were transferred", - "origin": [ - 54.0, - 456.3599853515625 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.0361633300781, - 459.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.0361633300781, - 459.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to a personal computer and stored. The total acceleration measured along the ob-", - "origin": [ - 54.0, - 467.3399963378906 - ], - "bbox": [ - 54.0, - 456.80999755859375, - 378.0749816894531, - 470.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 456.80999755859375, - 378.0749816894531, - 470.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "jects Z-axis was a combination of gravity (9.81 m/s", - "origin": [ - 54.0, - 478.32000732421875 - ], - "bbox": [ - 54.0, - 467.7900085449219, - 261.40606689453125, - 481.1300048828125 - ] - }, - { - "size": 5.800000190734863, - "flags": 5, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 261.4200134277344, - 475.02001953125 - ], - "bbox": [ - 261.4200134277344, - 468.9126281738281, - 264.32000732421875, - 476.6498107910156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") and kinematic acceleration", - "origin": [ - 264.29998779296875, - 478.32000732421875 - ], - "bbox": [ - 264.29998779296875, - 467.7900085449219, - 378.0399475097656, - 481.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 467.7900085449219, - 378.0399475097656, - 481.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "due to movement. Positive kinematic acceleration of the object (along the object’s", - "origin": [ - 53.99998474121094, - 489.3599853515625 - ], - "bbox": [ - 53.99998474121094, - 478.8299865722656, - 378.00592041015625, - 492.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 478.8299865722656, - 378.00592041015625, - 492.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Z-axis, see Figure 1A) was directed upward during the discrete vertical move-", - "origin": [ - 53.99998474121094, - 500.3399963378906 - ], - "bbox": [ - 53.99998474121094, - 489.80999755859375, - 378.0419921875, - 503.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 489.80999755859375, - 378.0419921875, - 503.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments. When the object was held stationary, only gravitational acceleration was", - "origin": [ - 53.99998474121094, - 511.32000732421875 - ], - "bbox": [ - 53.99998474121094, - 500.7900085449219, - 378.0039978027344, - 514.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 500.7900085449219, - 378.0039978027344, - 514.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "measured. Pure kinematic acceleration (ACC) was calculated by subtracting gravi-", - "origin": [ - 53.99998474121094, - 522.3599853515625 - ], - "bbox": [ - 53.99998474121094, - 511.8299865722656, - 378.00921630859375, - 525.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 511.8299865722656, - 378.00921630859375, - 525.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tational acceleration from the total acceleration measured along the object’s Z-", - "origin": [ - 53.99998474121094, - 533.3399658203125 - ], - "bbox": [ - 53.99998474121094, - 522.8099365234375, - 378.0219421386719, - 536.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 522.8099365234375, - 378.0219421386719, - 536.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "axis. The net load force (F", - "origin": [ - 53.99998474121094, - 544.3200073242188 - ], - "bbox": [ - 53.99998474121094, - 533.7899780273438, - 157.8489990234375, - 547.1300048828125 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "L", - "origin": [ - 157.8000030517578, - 546.3599853515625 - ], - "bbox": [ - 157.8000030517578, - 540.2525634765625, - 161.3437957763672, - 547.9898071289062 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") was calculated from the object mass and the vectorial", - "origin": [ - 161.33999633789062, - 544.3200073242188 - ], - "bbox": [ - 161.33999633789062, - 533.7899780273438, - 377.9980163574219, - 547.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 533.7899780273438, - 377.9980163574219, - 547.9898071289062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "summation of accelerations parallel to the grip surface, including gravitational", - "origin": [ - 53.99999237060547, - 555.3599853515625 - ], - "bbox": [ - 53.99999237060547, - 544.8299560546875, - 378.05596923828125, - 558.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 544.8299560546875, - 378.05596923828125, - 558.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(9.81 m/s", - "origin": [ - 53.99999237060547, - 566.3400268554688 - ], - "bbox": [ - 53.99999237060547, - 555.8099975585938, - 92.57398986816406, - 569.1500244140625 - ] - }, - { - "size": 5.800000190734863, - "flags": 5, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 92.5199966430664, - 562.97998046875 - ], - "bbox": [ - 92.5199966430664, - 556.87255859375, - 95.41999816894531, - 564.6098022460938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") acceleration (along the object’s Y- and Z-axis; see Figure 1A). This", - "origin": [ - 95.45999908447266, - 566.3399658203125 - ], - "bbox": [ - 95.45999908447266, - 555.8099365234375, - 377.97308349609375, - 569.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 555.8099365234375, - 377.97308349609375, - 569.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "method included additional inertial loads, which arose from eventual movement", - "origin": [ - 54.0, - 577.3200073242188 - ], - "bbox": [ - 54.0, - 566.7899780273438, - 377.9769287109375, - 580.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 566.7899780273438, - 377.9769287109375, - 580.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "components in the transversal (Y-axis) direction. Loading components acting in", - "origin": [ - 54.0, - 588.3599853515625 - ], - "bbox": [ - 54.0, - 577.8299560546875, - 378.0550231933594, - 591.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 577.8299560546875, - 378.0550231933594, - 591.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the direction of the applied grip forces (X-axis; compare Figure 1A) were not", - "origin": [ - 54.0, - 599.3400268554688 - ], - "bbox": [ - 54.0, - 588.8099975585938, - 378.07000732421875, - 602.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 588.8099975585938, - 378.07000732421875, - 602.1500244140625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 4, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 5, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_6": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 53.99998474121094, - 62.849884033203125, - 378.0879211425781, - 351.1700134277344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "included in the calculation of the object’s net load. These loads, acting orthogonal", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.05206298828125, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.05206298828125, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to gravity and kinematic acceleration of the object, were small and did not need to", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0830383300781, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0830383300781, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "be compensated by prehensile finger forces to prevent the object from slipping.", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 370.51800537109375, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 370.51800537109375, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The kinematic acceleration, load force, and grip force data acquired during", - "origin": [ - 78.0, - 106.37982177734375 - ], - "bbox": [ - 78.0, - 95.84982299804688, - 378.0699768066406, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 95.84982299804688, - 378.0699768066406, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "discrete vertical arm movements are illustrated in Figure 1B. Four time points", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.06298828125, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.06298828125, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "within the movement course were determined: (a) movement start, (b) maximum", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0019226074219, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0019226074219, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "kinematic acceleration (ACC", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 171.92601013183594, - 142.18978881835938 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max", - "origin": [ - 171.89999389648438, - 141.3599853515625 - ], - "bbox": [ - 171.89999389648438, - 135.25257873535156, - 182.5325469970703, - 142.9897918701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", maximum upward acceleration, and maximum", - "origin": [ - 182.5800018310547, - 139.37991333007812 - ], - "bbox": [ - 182.5800018310547, - 128.84991455078125, - 378.0479736328125, - 142.18991088867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.0479736328125, - 142.9897918701172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "downward deceleration), (c) grip force onset, and (d) maximum grip force (F", - "origin": [ - 54.0, - 150.35992431640625 - ], - "bbox": [ - 54.0, - 139.82992553710938, - 357.43994140625, - 153.169921875 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GMax", - "origin": [ - 357.3599853515625, - 152.33999633789062 - ], - "bbox": [ - 357.3599853515625, - 146.2325897216797, - 372.1806945800781, - 153.9698028564453 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ").", - "origin": [ - 372.17999267578125, - 150.3599853515625 - ], - "bbox": [ - 372.17999267578125, - 139.82998657226562, - 378.0099792480469, - 153.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82992553710938, - 378.0099792480469, - 153.9698028564453 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "At these time points, grip force and acceleration signals, as well as calculated load", - "origin": [ - 54.0, - 161.33999633789062 - ], - "bbox": [ - 54.0, - 150.80999755859375, - 378.0821533203125, - 164.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.80999755859375, - 378.0821533203125, - 164.14999389648438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force, were determined. The maximum load force (F", - "origin": [ - 54.0, - 172.3800048828125 - ], - "bbox": [ - 54.0, - 161.85000610351562, - 270.342041015625, - 175.19000244140625 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "LMax", - "origin": [ - 270.29998779296875, - 174.3599853515625 - ], - "bbox": [ - 270.29998779296875, - 168.25257873535156, - 284.4768981933594, - 175.9897918701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") coincided with maxi-", - "origin": [ - 284.5199890136719, - 172.37991333007812 - ], - "bbox": [ - 284.5199890136719, - 161.84991455078125, - 378.05194091796875, - 175.18991088867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84991455078125, - 378.05194091796875, - 175.9897918701172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mum upward acceleration and with maximum downward deceleration. The four", - "origin": [ - 53.99998474121094, - 183.35992431640625 - ], - "bbox": [ - 53.99998474121094, - 172.82992553710938, - 378.03594970703125, - 186.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 172.82992553710938, - 378.03594970703125, - 186.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "time points are indicated for an upward and a downward movement of a control", - "origin": [ - 53.99998474121094, - 194.33993530273438 - ], - "bbox": [ - 53.99998474121094, - 183.8099365234375, - 378.0309143066406, - 197.14993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 183.8099365234375, - 378.0309143066406, - 197.14993286132812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "subject in Figure 1B. The grip force at the start of each movement (F", - "origin": [ - 53.99998474121094, - 205.37994384765625 - ], - "bbox": [ - 53.99998474121094, - 194.84994506835938, - 322.1769714355469, - 208.18994140625 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GStart", - "origin": [ - 322.1400146484375, - 207.3599853515625 - ], - "bbox": [ - 322.1400146484375, - 201.25257873535156, - 337.28668212890625, - 208.9897918701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") provided", - "origin": [ - 337.32000732421875, - 205.3800048828125 - ], - "bbox": [ - 337.32000732421875, - 194.85000610351562, - 378.02099609375, - 208.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 194.84994506835938, - 378.02099609375, - 208.9897918701172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "a measure of grip force established during stationary holding of the object in be-", - "origin": [ - 54.0, - 216.36001586914062 - ], - "bbox": [ - 54.0, - 205.83001708984375, - 378.0729675292969, - 219.17001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.83001708984375, - 378.0729675292969, - 219.17001342773438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tween single movements. The ratio of maximum grip force to maximum load force", - "origin": [ - 54.0, - 227.34002685546875 - ], - "bbox": [ - 54.0, - 216.81002807617188, - 378.0879211425781, - 230.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.81002807617188, - 378.0879211425781, - 230.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(F", - "origin": [ - 54.0, - 238.38003540039062 - ], - "bbox": [ - 54.0, - 227.85003662109375, - 62.8900032043457, - 241.19003295898438 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GMax", - "origin": [ - 62.880001068115234, - 240.3599853515625 - ], - "bbox": [ - 62.880001068115234, - 234.25257873535156, - 77.70075225830078, - 241.9897918701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "/F", - "origin": [ - 77.69999694824219, - 238.3800048828125 - ], - "bbox": [ - 77.69999694824219, - 227.85000610351562, - 86.03999328613281, - 241.19000244140625 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "LMax", - "origin": [ - 86.04000091552734, - 240.3599853515625 - ], - "bbox": [ - 86.04000091552734, - 234.25257873535156, - 100.21694946289062, - 241.9897918701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") was used to relate the magnitudes of the two forces directly. This", - "origin": [ - 100.19999694824219, - 238.3800048828125 - ], - "bbox": [ - 100.19999694824219, - 227.85000610351562, - 377.9700622558594, - 241.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.85000610351562, - 377.9700622558594, - 241.9897918701172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force ratio is considered to be a highly sensitive measure of the efficiency of grip", - "origin": [ - 54.0, - 249.36001586914062 - ], - "bbox": [ - 54.0, - 238.83001708984375, - 378.0563049316406, - 252.17001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.83001708984375, - 378.0563049316406, - 252.17001342773438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forces produced in relation to the load forces.", - "origin": [ - 54.0, - 260.34002685546875 - ], - "bbox": [ - 54.0, - 249.81002807617188, - 235.64105224609375, - 263.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.81002807617188, - 235.64105224609375, - 263.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The time from the onset of grip force change to the movement initiation", - "origin": [ - 78.0, - 271.3800354003906 - ], - "bbox": [ - 78.0, - 260.85003662109375, - 378.0530090332031, - 274.1900329589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 260.85003662109375, - 378.0530090332031, - 274.1900329589844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(TF", - "origin": [ - 54.0, - 282.36004638671875 - ], - "bbox": [ - 54.0, - 271.8300476074219, - 69.0, - 285.1700439453125 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GStart", - "origin": [ - 69.0, - 284.3399963378906 - ], - "bbox": [ - 69.0, - 278.23260498046875, - 84.14669799804688, - 285.96978759765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–TACC", - "origin": [ - 84.18000030517578, - 282.3599853515625 - ], - "bbox": [ - 84.18000030517578, - 271.8299865722656, - 114.5, - 285.16998291015625 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Start", - "origin": [ - 114.4800033569336, - 284.3399963378906 - ], - "bbox": [ - 114.4800033569336, - 278.23260498046875, - 125.43852233886719, - 285.96978759765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") were determined for each movement. The temporal coupling", - "origin": [ - 125.45999908447266, - 282.3599853515625 - ], - "bbox": [ - 125.45999908447266, - 271.8299865722656, - 378.02496337890625, - 285.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299865722656, - 378.02496337890625, - 285.96978759765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of maximum grip and load forces was analyzed by calculating the time lag be-", - "origin": [ - 54.0, - 293.3399963378906 - ], - "bbox": [ - 54.0, - 282.80999755859375, - 378.0370178222656, - 296.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.80999755859375, - 378.0370178222656, - 296.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tween the time to maximum grip force and the time to maximum kinematic accel-", - "origin": [ - 54.0, - 304.3800048828125 - ], - "bbox": [ - 54.0, - 293.8500061035156, - 378.0799865722656, - 307.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8500061035156, - 378.0799865722656, - 307.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "eration (TF", - "origin": [ - 54.0, - 315.3600158691406 - ], - "bbox": [ - 54.0, - 304.83001708984375, - 99.29700469970703, - 318.1700134277344 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GMax", - "origin": [ - 99.30000305175781, - 317.3399963378906 - ], - "bbox": [ - 99.30000305175781, - 311.23260498046875, - 114.1207504272461, - 318.96978759765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " – TACC", - "origin": [ - 114.12000274658203, - 315.3599853515625 - ], - "bbox": [ - 114.12000274658203, - 304.8299865722656, - 149.37001037597656, - 318.16998291015625 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max", - "origin": [ - 149.27999877929688, - 317.3399963378906 - ], - "bbox": [ - 149.27999877929688, - 311.23260498046875, - 159.9125518798828, - 318.96978759765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "). Means and standard deviations are reported. Paired ", - "origin": [ - 159.9600067138672, - 315.3599853515625 - ], - "bbox": [ - 159.9600067138672, - 304.8299865722656, - 375.1789855957031, - 318.16998291015625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "t", - "origin": [ - 375.17999267578125, - 315.3599853515625 - ], - "bbox": [ - 375.17999267578125, - 305.8499755859375, - 377.9599914550781, - 318.05999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299865722656, - 377.9599914550781, - 318.96978759765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tests were carried out to compare the individual means of each parameter for each", - "origin": [ - 54.0, - 326.3399963378906 - ], - "bbox": [ - 54.0, - 315.80999755859375, - 378.0740661621094, - 329.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.80999755859375, - 378.0740661621094, - 329.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "patient and her/his control subject. A ", - "origin": [ - 54.0, - 337.32000732421875 - ], - "bbox": [ - 54.0, - 326.7900085449219, - 206.9490203857422, - 340.1300048828125 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 207.54000854492188, - 337.32000732421875 - ], - "bbox": [ - 207.54000854492188, - 327.80999755859375, - 212.54000854492188, - 340.02001953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " value of .05 was considered statistically", - "origin": [ - 212.5800018310547, - 337.32000732421875 - ], - "bbox": [ - 212.5800018310547, - 326.7900085449219, - 378.01104736328125, - 340.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.7900085449219, - 378.01104736328125, - 340.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "significant.", - "origin": [ - 54.00001525878906, - 348.3600158691406 - ], - "bbox": [ - 54.00001525878906, - 337.83001708984375, - 98.49502563476562, - 351.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 337.83001708984375, - 98.49502563476562, - 351.1700134277344 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 54.0, - 379.8299865722656, - 378.1029968261719, - 459.1699523925781 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "All subjects complied with the instructions and performed the vertical arm move-", - "origin": [ - 54.0, - 390.3599853515625 - ], - "bbox": [ - 54.0, - 379.8299865722656, - 378.04693603515625, - 393.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 379.8299865722656, - 378.04693603515625, - 393.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments without dropping the object. The means of maximum forces obtained from", - "origin": [ - 54.0, - 401.3399658203125 - ], - "bbox": [ - 54.0, - 390.8099670410156, - 378.1029968261719, - 404.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 390.8099670410156, - 378.1029968261719, - 404.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the squeezing experiments were 46.2 N (range, ", - "origin": [ - 54.0, - 412.3199768066406 - ], - "bbox": [ - 54.0, - 401.78997802734375, - 245.02203369140625, - 415.1299743652344 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 245.04000854492188, - 412.3199768066406 - ], - "bbox": [ - 245.04000854492188, - 402.219970703125, - 250.53001403808594, - 415.2499694824219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "9.7 N) for the patient group and", - "origin": [ - 250.6800079345703, - 412.3199768066406 - ], - "bbox": [ - 250.6800079345703, - 401.78997802734375, - 378.0018615722656, - 415.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 401.78997802734375, - 378.0018615722656, - 415.2499694824219 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "47.7 N (range, ", - "origin": [ - 54.00001525878906, - 423.3599853515625 - ], - "bbox": [ - 54.00001525878906, - 412.8299865722656, - 116.02803039550781, - 426.16998291015625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 116.88002014160156, - 423.3599853515625 - ], - "bbox": [ - 116.88002014160156, - 413.2599792480469, - 122.3700180053711, - 426.28997802734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "12.0 N) for the control group (", - "origin": [ - 122.58001708984375, - 423.3599853515625 - ], - "bbox": [ - 122.58001708984375, - 412.8299865722656, - 249.80404663085938, - 426.16998291015625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 249.780029296875, - 423.3599853515625 - ], - "bbox": [ - 249.780029296875, - 413.8499755859375, - 254.780029296875, - 426.05999755859375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .57). Thus, patients did not", - "origin": [ - 254.76002502441406, - 423.3599853515625 - ], - "bbox": [ - 254.76002502441406, - 412.8299865722656, - 378.04302978515625, - 426.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 412.8299865722656, - 378.04302978515625, - 426.28997802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "reveal deficits in maximum force production when compared to the controls. The", - "origin": [ - 54.00001525878906, - 434.3399658203125 - ], - "bbox": [ - 54.00001525878906, - 423.8099670410156, - 378.02301025390625, - 437.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 423.8099670410156, - 378.02301025390625, - 437.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mean slip forces were 2.4 N (range, ", - "origin": [ - 54.00001525878906, - 445.3199462890625 - ], - "bbox": [ - 54.00001525878906, - 434.7899475097656, - 196.34402465820312, - 448.12994384765625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 195.8400115966797, - 445.3199462890625 - ], - "bbox": [ - 195.8400115966797, - 435.2199401855469, - 201.33001708984375, - 448.24993896484375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.4 N) for the patients and 2.3 N (range, ", - "origin": [ - 201.48001098632812, - 445.3199462890625 - ], - "bbox": [ - 201.48001098632812, - 434.7899475097656, - 360.3720703125, - 448.12994384765625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 359.8800048828125, - 445.3199462890625 - ], - "bbox": [ - 359.8800048828125, - 435.2199401855469, - 365.3699951171875, - 448.24993896484375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.5", - "origin": [ - 365.52001953125, - 445.3199462890625 - ], - "bbox": [ - 365.52001953125, - 434.7899475097656, - 378.02001953125, - 448.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 434.7899475097656, - 378.02001953125, - 448.24993896484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "N) for the control subjects (", - "origin": [ - 54.0, - 456.3599548339844 - ], - "bbox": [ - 54.0, - 445.8299560546875, - 164.8100128173828, - 459.1699523925781 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 164.82000732421875, - 456.3599548339844 - ], - "bbox": [ - 164.82000732421875, - 446.8499450683594, - 169.82000732421875, - 459.0599670410156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .85).", - "origin": [ - 169.8000030517578, - 456.3599548339844 - ], - "bbox": [ - 169.8000030517578, - 445.8299560546875, - 198.77000427246094, - 459.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 445.8299560546875, - 198.77000427246094, - 459.1699523925781 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 54.0, - 487.8299865722656, - 378.0829162597656, - 611.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "In Figure 2, waveforms of signaled kinematic acceleration (ACC) and grip forces", - "origin": [ - 54.0, - 498.3599853515625 - ], - "bbox": [ - 54.0, - 487.8299865722656, - 377.9900207519531, - 501.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 487.8299865722656, - 377.9900207519531, - 501.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "are illustrates for three superimposed upward and downward movements performed", - "origin": [ - 54.0, - 509.3399963378906 - ], - "bbox": [ - 54.0, - 498.80999755859375, - 378.00592041015625, - 512.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 498.80999755859375, - 378.00592041015625, - 512.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by patient E.E. and her age- and sex-matched control subject. The kinematic accel-", - "origin": [ - 54.0, - 520.3200073242188 - ], - "bbox": [ - 54.0, - 509.7900085449219, - 378.0050048828125, - 523.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 509.7900085449219, - 378.0050048828125, - 523.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "eration and grip force traces were shifted (without changing the scaling in time,", - "origin": [ - 54.0, - 531.3599853515625 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.07403564453125, - 534.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.07403564453125, - 534.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "acceleration, and grip force) to coincide in the time point of signaled maximum", - "origin": [ - 54.0, - 542.3400268554688 - ], - "bbox": [ - 54.0, - 531.8099975585938, - 378.0740661621094, - 545.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 531.8099975585938, - 378.0740661621094, - 545.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "kinematic acceleration (maximum upward acceleration and maximum downward", - "origin": [ - 54.0, - 553.3200073242188 - ], - "bbox": [ - 54.0, - 542.7899780273438, - 378.06597900390625, - 556.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 542.7899780273438, - 378.06597900390625, - 556.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "deceleration). In general, the patient produced smaller kinematic accelerations but", - "origin": [ - 54.0, - 564.3599853515625 - ], - "bbox": [ - 54.0, - 553.8299560546875, - 377.9949951171875, - 567.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 553.8299560546875, - 377.9949951171875, - 567.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "greater grip forces when compared to the control subject. During upward move-", - "origin": [ - 54.0, - 575.3400268554688 - ], - "bbox": [ - 54.0, - 564.8099975585938, - 378.0459289550781, - 578.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 564.8099975585938, - 378.0459289550781, - 578.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments, the patient and the control subject increased grip forces right from the onset", - "origin": [ - 54.0, - 586.3200073242188 - ], - "bbox": [ - 54.0, - 575.7899780273438, - 378.0829162597656, - 589.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 575.7899780273438, - 378.0829162597656, - 589.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of movement (dashed vertical line). A maximum of grip force occurred closely in", - "origin": [ - 54.0, - 597.3599853515625 - ], - "bbox": [ - 54.0, - 586.8299560546875, - 378.0289306640625, - 600.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 586.8299560546875, - 378.0289306640625, - 600.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "time with maximum kinematic acceleration (and thus maximum load force) for", - "origin": [ - 54.0, - 608.3400268554688 - ], - "bbox": [ - 54.0, - 597.8099975585938, - 378.0799865722656, - 611.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 597.8099975585938, - 378.0799865722656, - 611.1500244140625 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 347.03999999999996, - 142.56, - 377.28, - 154.56 - ], - "image_path": "equations_inline/6_347_142_377_154.jpg" - }, - { - "bbox": [ - 312.0, - 197.76, - 341.28, - 209.76 - ], - "image_path": "equations_inline/6_312_197_341_209.jpg" - }, - { - "bbox": [ - 52.8, - 230.88, - 105.11999999999999, - 243.35999999999999 - ], - "image_path": "equations_inline/6_52_230_105_243.jpg" - }, - { - "bbox": [ - 52.8, - 274.08, - 130.56, - 287.03999999999996 - ], - "image_path": "equations_inline/6_52_274_130_287.jpg" - }, - { - "bbox": [ - 85.44, - 307.2, - 164.16, - 320.15999999999997 - ], - "image_path": "equations_inline/6_85_307_164_320.jpg" - }, - { - "bbox": [ - 205.92, - 332.15999999999997, - 214.07999999999998, - 342.23999999999995 - ], - "image_path": "equations_inline/6_205_332_214_342.jpg" - }, - { - "bbox": [ - 248.15999999999997, - 415.67999999999995, - 282.23999999999995, - 427.67999999999995 - ], - "image_path": "equations_inline/6_248_415_282_427.jpg" - }, - { - "bbox": [ - 163.2, - 448.32, - 194.39999999999998, - 460.79999999999995 - ], - "image_path": "equations_inline/6_163_448_194_460.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 62.849884033203125, - 432.0, - 611.1500244140625 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 53.99998474121094, - 62.849884033203125, - 378.0879211425781, - 351.1700134277344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "included in the calculation of the object’s net load. These loads, acting orthogonal", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.05206298828125, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.05206298828125, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to gravity and kinematic acceleration of the object, were small and did not need to", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0830383300781, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0830383300781, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "be compensated by prehensile finger forces to prevent the object from slipping.", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 370.51800537109375, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 370.51800537109375, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The kinematic acceleration, load force, and grip force data acquired during", - "origin": [ - 78.0, - 106.37982177734375 - ], - "bbox": [ - 78.0, - 95.84982299804688, - 378.0699768066406, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 95.84982299804688, - 378.0699768066406, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "discrete vertical arm movements are illustrated in Figure 1B. Four time points", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.06298828125, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.06298828125, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "within the movement course were determined: (a) movement start, (b) maximum", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0019226074219, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0019226074219, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "kinematic acceleration (ACC", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 171.92601013183594, - 142.18978881835938 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max", - "origin": [ - 171.89999389648438, - 141.3599853515625 - ], - "bbox": [ - 171.89999389648438, - 135.25257873535156, - 182.5325469970703, - 142.9897918701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", maximum upward acceleration, and maximum", - "origin": [ - 182.5800018310547, - 139.37991333007812 - ], - "bbox": [ - 182.5800018310547, - 128.84991455078125, - 378.0479736328125, - 142.18991088867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.0479736328125, - 142.9897918701172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "downward deceleration), (c) grip force onset, and (d) maximum grip force (F", - "origin": [ - 54.0, - 150.35992431640625 - ], - "bbox": [ - 54.0, - 139.82992553710938, - 357.43994140625, - 153.169921875 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GMax", - "origin": [ - 357.3599853515625, - 152.33999633789062 - ], - "bbox": [ - 357.3599853515625, - 146.2325897216797, - 372.1806945800781, - 153.9698028564453 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ").", - "origin": [ - 372.17999267578125, - 150.3599853515625 - ], - "bbox": [ - 372.17999267578125, - 139.82998657226562, - 378.0099792480469, - 153.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82992553710938, - 378.0099792480469, - 153.9698028564453 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "At these time points, grip force and acceleration signals, as well as calculated load", - "origin": [ - 54.0, - 161.33999633789062 - ], - "bbox": [ - 54.0, - 150.80999755859375, - 378.0821533203125, - 164.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.80999755859375, - 378.0821533203125, - 164.14999389648438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force, were determined. The maximum load force (F", - "origin": [ - 54.0, - 172.3800048828125 - ], - "bbox": [ - 54.0, - 161.85000610351562, - 270.342041015625, - 175.19000244140625 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "LMax", - "origin": [ - 270.29998779296875, - 174.3599853515625 - ], - "bbox": [ - 270.29998779296875, - 168.25257873535156, - 284.4768981933594, - 175.9897918701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") coincided with maxi-", - "origin": [ - 284.5199890136719, - 172.37991333007812 - ], - "bbox": [ - 284.5199890136719, - 161.84991455078125, - 378.05194091796875, - 175.18991088867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84991455078125, - 378.05194091796875, - 175.9897918701172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mum upward acceleration and with maximum downward deceleration. The four", - "origin": [ - 53.99998474121094, - 183.35992431640625 - ], - "bbox": [ - 53.99998474121094, - 172.82992553710938, - 378.03594970703125, - 186.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 172.82992553710938, - 378.03594970703125, - 186.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "time points are indicated for an upward and a downward movement of a control", - "origin": [ - 53.99998474121094, - 194.33993530273438 - ], - "bbox": [ - 53.99998474121094, - 183.8099365234375, - 378.0309143066406, - 197.14993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 183.8099365234375, - 378.0309143066406, - 197.14993286132812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "subject in Figure 1B. The grip force at the start of each movement (F", - "origin": [ - 53.99998474121094, - 205.37994384765625 - ], - "bbox": [ - 53.99998474121094, - 194.84994506835938, - 322.1769714355469, - 208.18994140625 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GStart", - "origin": [ - 322.1400146484375, - 207.3599853515625 - ], - "bbox": [ - 322.1400146484375, - 201.25257873535156, - 337.28668212890625, - 208.9897918701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") provided", - "origin": [ - 337.32000732421875, - 205.3800048828125 - ], - "bbox": [ - 337.32000732421875, - 194.85000610351562, - 378.02099609375, - 208.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 194.84994506835938, - 378.02099609375, - 208.9897918701172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "a measure of grip force established during stationary holding of the object in be-", - "origin": [ - 54.0, - 216.36001586914062 - ], - "bbox": [ - 54.0, - 205.83001708984375, - 378.0729675292969, - 219.17001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.83001708984375, - 378.0729675292969, - 219.17001342773438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tween single movements. The ratio of maximum grip force to maximum load force", - "origin": [ - 54.0, - 227.34002685546875 - ], - "bbox": [ - 54.0, - 216.81002807617188, - 378.0879211425781, - 230.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.81002807617188, - 378.0879211425781, - 230.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(F", - "origin": [ - 54.0, - 238.38003540039062 - ], - "bbox": [ - 54.0, - 227.85003662109375, - 62.8900032043457, - 241.19003295898438 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GMax", - "origin": [ - 62.880001068115234, - 240.3599853515625 - ], - "bbox": [ - 62.880001068115234, - 234.25257873535156, - 77.70075225830078, - 241.9897918701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "/F", - "origin": [ - 77.69999694824219, - 238.3800048828125 - ], - "bbox": [ - 77.69999694824219, - 227.85000610351562, - 86.03999328613281, - 241.19000244140625 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "LMax", - "origin": [ - 86.04000091552734, - 240.3599853515625 - ], - "bbox": [ - 86.04000091552734, - 234.25257873535156, - 100.21694946289062, - 241.9897918701172 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") was used to relate the magnitudes of the two forces directly. This", - "origin": [ - 100.19999694824219, - 238.3800048828125 - ], - "bbox": [ - 100.19999694824219, - 227.85000610351562, - 377.9700622558594, - 241.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.85000610351562, - 377.9700622558594, - 241.9897918701172 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force ratio is considered to be a highly sensitive measure of the efficiency of grip", - "origin": [ - 54.0, - 249.36001586914062 - ], - "bbox": [ - 54.0, - 238.83001708984375, - 378.0563049316406, - 252.17001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.83001708984375, - 378.0563049316406, - 252.17001342773438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forces produced in relation to the load forces.", - "origin": [ - 54.0, - 260.34002685546875 - ], - "bbox": [ - 54.0, - 249.81002807617188, - 235.64105224609375, - 263.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.81002807617188, - 235.64105224609375, - 263.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The time from the onset of grip force change to the movement initiation", - "origin": [ - 78.0, - 271.3800354003906 - ], - "bbox": [ - 78.0, - 260.85003662109375, - 378.0530090332031, - 274.1900329589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 260.85003662109375, - 378.0530090332031, - 274.1900329589844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(TF", - "origin": [ - 54.0, - 282.36004638671875 - ], - "bbox": [ - 54.0, - 271.8300476074219, - 69.0, - 285.1700439453125 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GStart", - "origin": [ - 69.0, - 284.3399963378906 - ], - "bbox": [ - 69.0, - 278.23260498046875, - 84.14669799804688, - 285.96978759765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–TACC", - "origin": [ - 84.18000030517578, - 282.3599853515625 - ], - "bbox": [ - 84.18000030517578, - 271.8299865722656, - 114.5, - 285.16998291015625 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Start", - "origin": [ - 114.4800033569336, - 284.3399963378906 - ], - "bbox": [ - 114.4800033569336, - 278.23260498046875, - 125.43852233886719, - 285.96978759765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") were determined for each movement. The temporal coupling", - "origin": [ - 125.45999908447266, - 282.3599853515625 - ], - "bbox": [ - 125.45999908447266, - 271.8299865722656, - 378.02496337890625, - 285.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299865722656, - 378.02496337890625, - 285.96978759765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of maximum grip and load forces was analyzed by calculating the time lag be-", - "origin": [ - 54.0, - 293.3399963378906 - ], - "bbox": [ - 54.0, - 282.80999755859375, - 378.0370178222656, - 296.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.80999755859375, - 378.0370178222656, - 296.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tween the time to maximum grip force and the time to maximum kinematic accel-", - "origin": [ - 54.0, - 304.3800048828125 - ], - "bbox": [ - 54.0, - 293.8500061035156, - 378.0799865722656, - 307.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8500061035156, - 378.0799865722656, - 307.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "eration (TF", - "origin": [ - 54.0, - 315.3600158691406 - ], - "bbox": [ - 54.0, - 304.83001708984375, - 99.29700469970703, - 318.1700134277344 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GMax", - "origin": [ - 99.30000305175781, - 317.3399963378906 - ], - "bbox": [ - 99.30000305175781, - 311.23260498046875, - 114.1207504272461, - 318.96978759765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " – TACC", - "origin": [ - 114.12000274658203, - 315.3599853515625 - ], - "bbox": [ - 114.12000274658203, - 304.8299865722656, - 149.37001037597656, - 318.16998291015625 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max", - "origin": [ - 149.27999877929688, - 317.3399963378906 - ], - "bbox": [ - 149.27999877929688, - 311.23260498046875, - 159.9125518798828, - 318.96978759765625 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "). Means and standard deviations are reported. Paired ", - "origin": [ - 159.9600067138672, - 315.3599853515625 - ], - "bbox": [ - 159.9600067138672, - 304.8299865722656, - 375.1789855957031, - 318.16998291015625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "t", - "origin": [ - 375.17999267578125, - 315.3599853515625 - ], - "bbox": [ - 375.17999267578125, - 305.8499755859375, - 377.9599914550781, - 318.05999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299865722656, - 377.9599914550781, - 318.96978759765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tests were carried out to compare the individual means of each parameter for each", - "origin": [ - 54.0, - 326.3399963378906 - ], - "bbox": [ - 54.0, - 315.80999755859375, - 378.0740661621094, - 329.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.80999755859375, - 378.0740661621094, - 329.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "patient and her/his control subject. A ", - "origin": [ - 54.0, - 337.32000732421875 - ], - "bbox": [ - 54.0, - 326.7900085449219, - 206.9490203857422, - 340.1300048828125 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 207.54000854492188, - 337.32000732421875 - ], - "bbox": [ - 207.54000854492188, - 327.80999755859375, - 212.54000854492188, - 340.02001953125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " value of .05 was considered statistically", - "origin": [ - 212.5800018310547, - 337.32000732421875 - ], - "bbox": [ - 212.5800018310547, - 326.7900085449219, - 378.01104736328125, - 340.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.7900085449219, - 378.01104736328125, - 340.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "significant.", - "origin": [ - 54.00001525878906, - 348.3600158691406 - ], - "bbox": [ - 54.00001525878906, - 337.83001708984375, - 98.49502563476562, - 351.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 337.83001708984375, - 98.49502563476562, - 351.1700134277344 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 54.0, - 379.8299865722656, - 378.1029968261719, - 459.1699523925781 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "All subjects complied with the instructions and performed the vertical arm move-", - "origin": [ - 54.0, - 390.3599853515625 - ], - "bbox": [ - 54.0, - 379.8299865722656, - 378.04693603515625, - 393.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 379.8299865722656, - 378.04693603515625, - 393.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments without dropping the object. The means of maximum forces obtained from", - "origin": [ - 54.0, - 401.3399658203125 - ], - "bbox": [ - 54.0, - 390.8099670410156, - 378.1029968261719, - 404.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 390.8099670410156, - 378.1029968261719, - 404.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the squeezing experiments were 46.2 N (range, ", - "origin": [ - 54.0, - 412.3199768066406 - ], - "bbox": [ - 54.0, - 401.78997802734375, - 245.02203369140625, - 415.1299743652344 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 245.04000854492188, - 412.3199768066406 - ], - "bbox": [ - 245.04000854492188, - 402.219970703125, - 250.53001403808594, - 415.2499694824219 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "9.7 N) for the patient group and", - "origin": [ - 250.6800079345703, - 412.3199768066406 - ], - "bbox": [ - 250.6800079345703, - 401.78997802734375, - 378.0018615722656, - 415.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 401.78997802734375, - 378.0018615722656, - 415.2499694824219 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "47.7 N (range, ", - "origin": [ - 54.00001525878906, - 423.3599853515625 - ], - "bbox": [ - 54.00001525878906, - 412.8299865722656, - 116.02803039550781, - 426.16998291015625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 116.88002014160156, - 423.3599853515625 - ], - "bbox": [ - 116.88002014160156, - 413.2599792480469, - 122.3700180053711, - 426.28997802734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "12.0 N) for the control group (", - "origin": [ - 122.58001708984375, - 423.3599853515625 - ], - "bbox": [ - 122.58001708984375, - 412.8299865722656, - 249.80404663085938, - 426.16998291015625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 249.780029296875, - 423.3599853515625 - ], - "bbox": [ - 249.780029296875, - 413.8499755859375, - 254.780029296875, - 426.05999755859375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .57). Thus, patients did not", - "origin": [ - 254.76002502441406, - 423.3599853515625 - ], - "bbox": [ - 254.76002502441406, - 412.8299865722656, - 378.04302978515625, - 426.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 412.8299865722656, - 378.04302978515625, - 426.28997802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "reveal deficits in maximum force production when compared to the controls. The", - "origin": [ - 54.00001525878906, - 434.3399658203125 - ], - "bbox": [ - 54.00001525878906, - 423.8099670410156, - 378.02301025390625, - 437.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 423.8099670410156, - 378.02301025390625, - 437.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mean slip forces were 2.4 N (range, ", - "origin": [ - 54.00001525878906, - 445.3199462890625 - ], - "bbox": [ - 54.00001525878906, - 434.7899475097656, - 196.34402465820312, - 448.12994384765625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 195.8400115966797, - 445.3199462890625 - ], - "bbox": [ - 195.8400115966797, - 435.2199401855469, - 201.33001708984375, - 448.24993896484375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.4 N) for the patients and 2.3 N (range, ", - "origin": [ - 201.48001098632812, - 445.3199462890625 - ], - "bbox": [ - 201.48001098632812, - 434.7899475097656, - 360.3720703125, - 448.12994384765625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 359.8800048828125, - 445.3199462890625 - ], - "bbox": [ - 359.8800048828125, - 435.2199401855469, - 365.3699951171875, - 448.24993896484375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.5", - "origin": [ - 365.52001953125, - 445.3199462890625 - ], - "bbox": [ - 365.52001953125, - 434.7899475097656, - 378.02001953125, - 448.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 434.7899475097656, - 378.02001953125, - 448.24993896484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "N) for the control subjects (", - "origin": [ - 54.0, - 456.3599548339844 - ], - "bbox": [ - 54.0, - 445.8299560546875, - 164.8100128173828, - 459.1699523925781 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 164.82000732421875, - 456.3599548339844 - ], - "bbox": [ - 164.82000732421875, - 446.8499450683594, - 169.82000732421875, - 459.0599670410156 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .85).", - "origin": [ - 169.8000030517578, - 456.3599548339844 - ], - "bbox": [ - 169.8000030517578, - 445.8299560546875, - 198.77000427246094, - 459.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 445.8299560546875, - 198.77000427246094, - 459.1699523925781 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 54.0, - 487.8299865722656, - 378.0829162597656, - 611.1500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "In Figure 2, waveforms of signaled kinematic acceleration (ACC) and grip forces", - "origin": [ - 54.0, - 498.3599853515625 - ], - "bbox": [ - 54.0, - 487.8299865722656, - 377.9900207519531, - 501.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 487.8299865722656, - 377.9900207519531, - 501.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "are illustrates for three superimposed upward and downward movements performed", - "origin": [ - 54.0, - 509.3399963378906 - ], - "bbox": [ - 54.0, - 498.80999755859375, - 378.00592041015625, - 512.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 498.80999755859375, - 378.00592041015625, - 512.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by patient E.E. and her age- and sex-matched control subject. The kinematic accel-", - "origin": [ - 54.0, - 520.3200073242188 - ], - "bbox": [ - 54.0, - 509.7900085449219, - 378.0050048828125, - 523.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 509.7900085449219, - 378.0050048828125, - 523.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "eration and grip force traces were shifted (without changing the scaling in time,", - "origin": [ - 54.0, - 531.3599853515625 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.07403564453125, - 534.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.07403564453125, - 534.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "acceleration, and grip force) to coincide in the time point of signaled maximum", - "origin": [ - 54.0, - 542.3400268554688 - ], - "bbox": [ - 54.0, - 531.8099975585938, - 378.0740661621094, - 545.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 531.8099975585938, - 378.0740661621094, - 545.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "kinematic acceleration (maximum upward acceleration and maximum downward", - "origin": [ - 54.0, - 553.3200073242188 - ], - "bbox": [ - 54.0, - 542.7899780273438, - 378.06597900390625, - 556.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 542.7899780273438, - 378.06597900390625, - 556.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "deceleration). In general, the patient produced smaller kinematic accelerations but", - "origin": [ - 54.0, - 564.3599853515625 - ], - "bbox": [ - 54.0, - 553.8299560546875, - 377.9949951171875, - 567.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 553.8299560546875, - 377.9949951171875, - 567.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "greater grip forces when compared to the control subject. During upward move-", - "origin": [ - 54.0, - 575.3400268554688 - ], - "bbox": [ - 54.0, - 564.8099975585938, - 378.0459289550781, - 578.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 564.8099975585938, - 378.0459289550781, - 578.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments, the patient and the control subject increased grip forces right from the onset", - "origin": [ - 54.0, - 586.3200073242188 - ], - "bbox": [ - 54.0, - 575.7899780273438, - 378.0829162597656, - 589.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 575.7899780273438, - 378.0829162597656, - 589.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of movement (dashed vertical line). A maximum of grip force occurred closely in", - "origin": [ - 54.0, - 597.3599853515625 - ], - "bbox": [ - 54.0, - 586.8299560546875, - 378.0289306640625, - 600.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 586.8299560546875, - 378.0289306640625, - 600.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "time with maximum kinematic acceleration (and thus maximum load force) for", - "origin": [ - 54.0, - 608.3400268554688 - ], - "bbox": [ - 54.0, - 597.8099975585938, - 378.0799865722656, - 611.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 597.8099975585938, - 378.0799865722656, - 611.1500244140625 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 6, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 6, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_7": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 399.80999755859375, - 378.1200256347656, - 611.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "upward movements of the patient and control. However, during upward move-", - "origin": [ - 54.0, - 410.3399963378906 - ], - "bbox": [ - 54.0, - 399.80999755859375, - 378.02978515625, - 413.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 399.80999755859375, - 378.02978515625, - 413.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments performed by the patient, several peaks of kinematic acceleration occurred", - "origin": [ - 54.0, - 421.32000732421875 - ], - "bbox": [ - 54.0, - 410.7900085449219, - 378.052978515625, - 424.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 410.7900085449219, - 378.052978515625, - 424.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "due to additional oscillations that were accompanied by additional grip force peaks", - "origin": [ - 54.0, - 432.3599853515625 - ], - "bbox": [ - 54.0, - 421.8299865722656, - 378.03118896484375, - 435.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 421.8299865722656, - 378.03118896484375, - 435.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "occurring closely in time. The control subject exhibited a second grip force peak", - "origin": [ - 54.0, - 443.3399658203125 - ], - "bbox": [ - 54.0, - 432.8099670410156, - 378.0419921875, - 446.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 432.8099670410156, - 378.0419921875, - 446.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "coinciding with minimum kinematic acceleration during the deceleratory phase of", - "origin": [ - 54.0, - 454.3199768066406 - ], - "bbox": [ - 54.0, - 443.78997802734375, - 378.0759582519531, - 457.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 443.78997802734375, - 378.0759582519531, - 457.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the upward movements.", - "origin": [ - 54.0, - 465.3599853515625 - ], - "bbox": [ - 54.0, - 454.8299865722656, - 149.4520263671875, - 468.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 454.8299865722656, - 149.4520263671875, - 468.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "During downward movements, the grip force of the control subject started to", - "origin": [ - 78.0, - 476.3399658203125 - ], - "bbox": [ - 78.0, - 465.8099670410156, - 378.07196044921875, - 479.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 465.8099670410156, - 378.07196044921875, - 479.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rise later during the movement course following minimum kinematic acceleration.", - "origin": [ - 54.0, - 487.3199462890625 - ], - "bbox": [ - 54.0, - 476.7899475097656, - 378.0910339355469, - 490.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 476.7899475097656, - 378.0910339355469, - 490.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(See the arrowhead in the grip force panel for downward movements of the control", - "origin": [ - 54.0, - 498.3599548339844 - ], - "bbox": [ - 54.0, - 487.8299560546875, - 378.0360412597656, - 501.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 487.8299560546875, - 378.0360412597656, - 501.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "subject in Figure 2.) The grip force maximum of the control subject coincided", - "origin": [ - 54.0, - 509.3399658203125 - ], - "bbox": [ - 54.0, - 498.8099670410156, - 378.02703857421875, - 512.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 498.8099670410156, - 378.02703857421875, - 512.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "closely in time with signaled maximum kinematic acceleration at the deceleratory", - "origin": [ - 54.0, - 520.3199462890625 - ], - "bbox": [ - 54.0, - 509.7899475097656, - 378.0799865722656, - 523.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 509.7899475097656, - 378.0799865722656, - 523.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "phase of the movement. Similar patterns of grip force modulation with the move-", - "origin": [ - 54.0, - 531.3599853515625 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.0419616699219, - 534.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.0419616699219, - 534.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ment-related kinematic acceleration during vertical point-to-point movements were", - "origin": [ - 54.0, - 542.3399658203125 - ], - "bbox": [ - 54.0, - 531.8099365234375, - 378.0602722167969, - 545.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 531.8099365234375, - 378.0602722167969, - 545.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "observed for all control subjects and were described in detail for healthy subjects", - "origin": [ - 54.0, - 553.3199462890625 - ], - "bbox": [ - 54.0, - 542.7899169921875, - 377.9949951171875, - 556.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 542.7899169921875, - 377.9949951171875, - 556.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by Flanagan and Wing (1995). In contrast, the grip force of the patient started to", - "origin": [ - 54.0, - 564.3599853515625 - ], - "bbox": [ - 54.0, - 553.8299560546875, - 378.1200256347656, - 567.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 553.8299560546875, - 378.1200256347656, - 567.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rise close to the onset of the downward movement (see the arrowhead in the grip", - "origin": [ - 54.0, - 575.3399658203125 - ], - "bbox": [ - 54.0, - 564.8099365234375, - 378.009033203125, - 578.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 564.8099365234375, - 378.009033203125, - 578.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force panel for downward movements of the patient in Figure 2) and reached its", - "origin": [ - 54.0, - 586.3199462890625 - ], - "bbox": [ - 54.0, - 575.7899169921875, - 378.0450744628906, - 589.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 575.7899169921875, - 378.0450744628906, - 589.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "maximum close to or slightly before the maximum of signaled kinematic accelera-", - "origin": [ - 54.0, - 597.3599853515625 - ], - "bbox": [ - 54.0, - 586.8299560546875, - 378.08099365234375, - 600.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 586.8299560546875, - 378.08099365234375, - 600.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tion during the deceleratory phase of the movement.", - "origin": [ - 54.0, - 608.3399658203125 - ], - "bbox": [ - 54.0, - 597.8099365234375, - 262.5119934082031, - 611.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 597.8099365234375, - 262.5119934082031, - 611.1499633789062 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 54.0, - 316.7640075683594, - 378.0199279785156, - 389.22845458984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Figure 2 — Illustrative data of pure kinematic acceleration (ACC) and grip force during", - "origin": [ - 54.0, - 326.1600036621094 - ], - "bbox": [ - 54.0, - 316.7640075683594, - 377.9675598144531, - 329.22900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 316.7640075683594, - 377.9675598144531, - 329.22900390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "three consecutive upward (left) and downward movements (right) for patient E.E.", - "origin": [ - 54.0, - 336.12030029296875 - ], - "bbox": [ - 54.0, - 326.72430419921875, - 378.0199279785156, - 339.1893005371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.72430419921875, - 378.0199279785156, - 339.1893005371094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "(top) and her healthy age-matched female control subject (bottom). During upward", - "origin": [ - 54.0, - 346.1400146484375 - ], - "bbox": [ - 54.0, - 336.7440185546875, - 378.01263427734375, - 349.2090148925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 336.7440185546875, - 378.01263427734375, - 349.2090148925781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "movements, both subjects’ grip force increased right from the movement start. In", - "origin": [ - 54.0, - 356.15972900390625 - ], - "bbox": [ - 54.0, - 346.76373291015625, - 377.99072265625, - 359.2287292480469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 346.76373291015625, - 377.99072265625, - 359.2287292480469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "contrast, during downward movements, the patient’s grip force rose earlier in the", - "origin": [ - 54.0, - 366.1200256347656 - ], - "bbox": [ - 54.0, - 356.7240295410156, - 378.0046081542969, - 369.18902587890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 356.7240295410156, - 378.0046081542969, - 369.18902587890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "movement course. (See the arrowheads in the grip force panels of the patient and", - "origin": [ - 54.0, - 376.1397399902344 - ], - "bbox": [ - 54.0, - 366.7437438964844, - 378.01983642578125, - 379.208740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 366.7437438964844, - 378.01983642578125, - 379.208740234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "control subject.)", - "origin": [ - 54.0, - 386.1594543457031 - ], - "bbox": [ - 54.0, - 376.7634582519531, - 116.3268051147461, - 389.22845458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 376.7634582519531, - 116.3268051147461, - 389.22845458984375 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 129, - 65, - 299, - 308 - ], - "image_path": "images/7_129_65_299_308.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 65, - 432.0, - 611.1499633789062 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 399.80999755859375, - 378.1200256347656, - 611.1499633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "upward movements of the patient and control. However, during upward move-", - "origin": [ - 54.0, - 410.3399963378906 - ], - "bbox": [ - 54.0, - 399.80999755859375, - 378.02978515625, - 413.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 399.80999755859375, - 378.02978515625, - 413.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments performed by the patient, several peaks of kinematic acceleration occurred", - "origin": [ - 54.0, - 421.32000732421875 - ], - "bbox": [ - 54.0, - 410.7900085449219, - 378.052978515625, - 424.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 410.7900085449219, - 378.052978515625, - 424.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "due to additional oscillations that were accompanied by additional grip force peaks", - "origin": [ - 54.0, - 432.3599853515625 - ], - "bbox": [ - 54.0, - 421.8299865722656, - 378.03118896484375, - 435.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 421.8299865722656, - 378.03118896484375, - 435.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "occurring closely in time. The control subject exhibited a second grip force peak", - "origin": [ - 54.0, - 443.3399658203125 - ], - "bbox": [ - 54.0, - 432.8099670410156, - 378.0419921875, - 446.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 432.8099670410156, - 378.0419921875, - 446.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "coinciding with minimum kinematic acceleration during the deceleratory phase of", - "origin": [ - 54.0, - 454.3199768066406 - ], - "bbox": [ - 54.0, - 443.78997802734375, - 378.0759582519531, - 457.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 443.78997802734375, - 378.0759582519531, - 457.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the upward movements.", - "origin": [ - 54.0, - 465.3599853515625 - ], - "bbox": [ - 54.0, - 454.8299865722656, - 149.4520263671875, - 468.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 454.8299865722656, - 149.4520263671875, - 468.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "During downward movements, the grip force of the control subject started to", - "origin": [ - 78.0, - 476.3399658203125 - ], - "bbox": [ - 78.0, - 465.8099670410156, - 378.07196044921875, - 479.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 465.8099670410156, - 378.07196044921875, - 479.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rise later during the movement course following minimum kinematic acceleration.", - "origin": [ - 54.0, - 487.3199462890625 - ], - "bbox": [ - 54.0, - 476.7899475097656, - 378.0910339355469, - 490.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 476.7899475097656, - 378.0910339355469, - 490.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(See the arrowhead in the grip force panel for downward movements of the control", - "origin": [ - 54.0, - 498.3599548339844 - ], - "bbox": [ - 54.0, - 487.8299560546875, - 378.0360412597656, - 501.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 487.8299560546875, - 378.0360412597656, - 501.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "subject in Figure 2.) The grip force maximum of the control subject coincided", - "origin": [ - 54.0, - 509.3399658203125 - ], - "bbox": [ - 54.0, - 498.8099670410156, - 378.02703857421875, - 512.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 498.8099670410156, - 378.02703857421875, - 512.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "closely in time with signaled maximum kinematic acceleration at the deceleratory", - "origin": [ - 54.0, - 520.3199462890625 - ], - "bbox": [ - 54.0, - 509.7899475097656, - 378.0799865722656, - 523.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 509.7899475097656, - 378.0799865722656, - 523.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "phase of the movement. Similar patterns of grip force modulation with the move-", - "origin": [ - 54.0, - 531.3599853515625 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.0419616699219, - 534.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 520.8299560546875, - 378.0419616699219, - 534.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ment-related kinematic acceleration during vertical point-to-point movements were", - "origin": [ - 54.0, - 542.3399658203125 - ], - "bbox": [ - 54.0, - 531.8099365234375, - 378.0602722167969, - 545.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 531.8099365234375, - 378.0602722167969, - 545.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "observed for all control subjects and were described in detail for healthy subjects", - "origin": [ - 54.0, - 553.3199462890625 - ], - "bbox": [ - 54.0, - 542.7899169921875, - 377.9949951171875, - 556.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 542.7899169921875, - 377.9949951171875, - 556.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by Flanagan and Wing (1995). In contrast, the grip force of the patient started to", - "origin": [ - 54.0, - 564.3599853515625 - ], - "bbox": [ - 54.0, - 553.8299560546875, - 378.1200256347656, - 567.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 553.8299560546875, - 378.1200256347656, - 567.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rise close to the onset of the downward movement (see the arrowhead in the grip", - "origin": [ - 54.0, - 575.3399658203125 - ], - "bbox": [ - 54.0, - 564.8099365234375, - 378.009033203125, - 578.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 564.8099365234375, - 378.009033203125, - 578.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force panel for downward movements of the patient in Figure 2) and reached its", - "origin": [ - 54.0, - 586.3199462890625 - ], - "bbox": [ - 54.0, - 575.7899169921875, - 378.0450744628906, - 589.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 575.7899169921875, - 378.0450744628906, - 589.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "maximum close to or slightly before the maximum of signaled kinematic accelera-", - "origin": [ - 54.0, - 597.3599853515625 - ], - "bbox": [ - 54.0, - 586.8299560546875, - 378.08099365234375, - 600.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 586.8299560546875, - 378.08099365234375, - 600.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tion during the deceleratory phase of the movement.", - "origin": [ - 54.0, - 608.3399658203125 - ], - "bbox": [ - 54.0, - 597.8099365234375, - 262.5119934082031, - 611.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 597.8099365234375, - 262.5119934082031, - 611.1499633789062 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 54.0, - 316.7640075683594, - 378.0199279785156, - 389.22845458984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Figure 2 — Illustrative data of pure kinematic acceleration (ACC) and grip force during", - "origin": [ - 54.0, - 326.1600036621094 - ], - "bbox": [ - 54.0, - 316.7640075683594, - 377.9675598144531, - 329.22900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 316.7640075683594, - 377.9675598144531, - 329.22900390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "three consecutive upward (left) and downward movements (right) for patient E.E.", - "origin": [ - 54.0, - 336.12030029296875 - ], - "bbox": [ - 54.0, - 326.72430419921875, - 378.0199279785156, - 339.1893005371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.72430419921875, - 378.0199279785156, - 339.1893005371094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "(top) and her healthy age-matched female control subject (bottom). During upward", - "origin": [ - 54.0, - 346.1400146484375 - ], - "bbox": [ - 54.0, - 336.7440185546875, - 378.01263427734375, - 349.2090148925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 336.7440185546875, - 378.01263427734375, - 349.2090148925781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "movements, both subjects’ grip force increased right from the movement start. In", - "origin": [ - 54.0, - 356.15972900390625 - ], - "bbox": [ - 54.0, - 346.76373291015625, - 377.99072265625, - 359.2287292480469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 346.76373291015625, - 377.99072265625, - 359.2287292480469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "contrast, during downward movements, the patient’s grip force rose earlier in the", - "origin": [ - 54.0, - 366.1200256347656 - ], - "bbox": [ - 54.0, - 356.7240295410156, - 378.0046081542969, - 369.18902587890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 356.7240295410156, - 378.0046081542969, - 369.18902587890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "movement course. (See the arrowheads in the grip force panels of the patient and", - "origin": [ - 54.0, - 376.1397399902344 - ], - "bbox": [ - 54.0, - 366.7437438964844, - 378.01983642578125, - 379.208740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 366.7437438964844, - 378.01983642578125, - 379.208740234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "control subject.)", - "origin": [ - 54.0, - 386.1594543457031 - ], - "bbox": [ - 54.0, - 376.7634582519531, - 116.3268051147461, - 389.22845458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 376.7634582519531, - 116.3268051147461, - 389.22845458984375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 3, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 7, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_8": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 53.999969482421875, - 82.82998657226562, - 378.1150207519531, - 613.1299438476562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The parameters on which data analysis was focused are summarized in Table 2.", - "origin": [ - 54.0, - 93.3599853515625 - ], - "bbox": [ - 54.0, - 82.82998657226562, - 378.04498291015625, - 96.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 82.82998657226562, - 378.04498291015625, - 96.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The grip force at the start of each movement provides a measure of the grip force", - "origin": [ - 54.0, - 104.3399658203125 - ], - "bbox": [ - 54.0, - 93.80996704101562, - 378.05804443359375, - 107.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 93.80996704101562, - 378.05804443359375, - 107.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "established during stationary holding by the subject in between single arm move-", - "origin": [ - 54.0, - 115.37994384765625 - ], - "bbox": [ - 54.0, - 104.84994506835938, - 378.0450134277344, - 118.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 104.84994506835938, - 378.0450134277344, - 118.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments. Compared with controls, ALS patients generated greater grip forces at the", - "origin": [ - 54.0, - 126.35992431640625 - ], - "bbox": [ - 54.0, - 115.82992553710938, - 378.0569763183594, - 129.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 115.82992553710938, - 378.0569763183594, - 129.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "start of each arm movement (", - "origin": [ - 54.0, - 137.33993530273438 - ], - "bbox": [ - 54.0, - 126.8099365234375, - 170.70602416992188, - 140.14993286132812 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 170.6999969482422, - 137.33993530273438 - ], - "bbox": [ - 170.6999969482422, - 127.8299331665039, - 175.6999969482422, - 140.03993225097656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " < .05). In Figure 3, means and standard deviations", - "origin": [ - 175.67999267578125, - 137.33993530273438 - ], - "bbox": [ - 175.67999267578125, - 126.8099365234375, - 378.06103515625, - 140.14993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 126.8099365234375, - 378.06103515625, - 140.14993286132812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of maximum kinematic acceleration, maximum grip force, and the ratio between", - "origin": [ - 53.99999237060547, - 148.37994384765625 - ], - "bbox": [ - 53.99999237060547, - 137.84994506835938, - 378.0799255371094, - 151.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 137.84994506835938, - 378.0799255371094, - 151.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grip and load force maxima are illustrated for upward and downward movements", - "origin": [ - 53.99999237060547, - 159.35995483398438 - ], - "bbox": [ - 53.99999237060547, - 148.8299560546875, - 378.030029296875, - 162.16995239257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 148.8299560546875, - 378.030029296875, - 162.16995239257812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of controls and patients. Maximum kinematic accelerations were similar for up-", - "origin": [ - 53.99999237060547, - 170.3399658203125 - ], - "bbox": [ - 53.99999237060547, - 159.80996704101562, - 378.0799865722656, - 173.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 159.80996704101562, - 378.0799865722656, - 173.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ward and downward movements performed by patients (", - "origin": [ - 53.99999237060547, - 181.37997436523438 - ], - "bbox": [ - 53.99999237060547, - 170.8499755859375, - 277.6240234375, - 184.18997192382812 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 277.6199951171875, - 181.37997436523438 - ], - "bbox": [ - 277.6199951171875, - 171.86997985839844, - 285.1199951171875, - 184.07997131347656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "= .54) and controls (", - "origin": [ - 284.82000732421875, - 181.37997436523438 - ], - "bbox": [ - 284.82000732421875, - 170.8499755859375, - 365.1600036621094, - 184.18997192382812 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 365.1600036621094, - 181.37997436523438 - ], - "bbox": [ - 365.1600036621094, - 171.86997985839844, - 372.6600036621094, - 184.07997131347656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "=", - "origin": [ - 372.3600158691406, - 181.37997436523438 - ], - "bbox": [ - 372.3600158691406, - 170.8499755859375, - 378.0000305175781, - 184.18997192382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 170.8499755859375, - 378.0000305175781, - 184.18997192382812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".34). Compared to healthy controls, patients produced maximum kinematic accel-", - "origin": [ - 54.0, - 192.3599853515625 - ], - "bbox": [ - 54.0, - 181.82998657226562, - 378.04974365234375, - 195.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 181.82998657226562, - 378.04974365234375, - 195.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "erations of similar magnitude for upward (", - "origin": [ - 54.0, - 203.33999633789062 - ], - "bbox": [ - 54.0, - 192.80999755859375, - 222.2870330810547, - 206.14999389648438 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 222.239990234375, - 203.33999633789062 - ], - "bbox": [ - 222.239990234375, - 193.8300018310547, - 229.739990234375, - 206.0399932861328 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "= .56) and downward (", - "origin": [ - 229.49998474121094, - 203.33999633789062 - ], - "bbox": [ - 229.49998474121094, - 192.80999755859375, - 319.60296630859375, - 206.14999389648438 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 319.55999755859375, - 203.33999633789062 - ], - "bbox": [ - 319.55999755859375, - 193.8300018310547, - 327.05999755859375, - 206.0399932861328 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "= .19) move-", - "origin": [ - 326.82000732421875, - 203.33999633789062 - ], - "bbox": [ - 326.82000732421875, - 192.80999755859375, - 378.0309753417969, - 206.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 192.80999755859375, - 378.0309753417969, - 206.14999389648438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments. The means and standard deviations of the maximum load forces are not", - "origin": [ - 54.0, - 214.3800048828125 - ], - "bbox": [ - 54.0, - 203.85000610351562, - 378.0719299316406, - 217.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 203.85000610351562, - 378.0719299316406, - 217.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "illustrated in Figure 3 but reflected the observations for the kinematic accelera-", - "origin": [ - 54.0, - 225.36001586914062 - ], - "bbox": [ - 54.0, - 214.83001708984375, - 378.031005859375, - 228.17001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 214.83001708984375, - 378.031005859375, - 228.17001342773438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tions on which they depended.", - "origin": [ - 54.0, - 236.34002685546875 - ], - "bbox": [ - 54.0, - 225.81002807617188, - 175.760009765625, - 239.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 225.81002807617188, - 175.760009765625, - 239.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS patients established significantly greater maximum grip forces than", - "origin": [ - 78.0, - 247.38003540039062 - ], - "bbox": [ - 78.0, - 236.85003662109375, - 378.0629577636719, - 250.19003295898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 236.85003662109375, - 378.0629577636719, - 250.19003295898438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "healthy controls against the hand-held object regardless of the movement direction", - "origin": [ - 54.0, - 258.36004638671875 - ], - "bbox": [ - 54.0, - 247.83004760742188, - 378.041015625, - 261.1700439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 247.83004760742188, - 378.041015625, - 261.1700439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 54.0, - 269.3400573730469 - ], - "bbox": [ - 54.0, - 258.81005859375, - 57.33000183105469, - 272.1500549316406 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 57.36000061035156, - 269.3400573730469 - ], - "bbox": [ - 57.36000061035156, - 259.8300476074219, - 62.36000061035156, - 272.0400695800781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " < .01). We found no significant differences between maximum grip forces gen-", - "origin": [ - 62.34000015258789, - 269.3400573730469 - ], - "bbox": [ - 62.34000015258789, - 258.81005859375, - 378.0530090332031, - 272.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 258.81005859375, - 378.0530090332031, - 272.1500549316406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "erated during upward and downward movements performed by patients (", - "origin": [ - 54.0, - 280.38006591796875 - ], - "bbox": [ - 54.0, - 269.8500671386719, - 346.2959899902344, - 283.1900634765625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 346.260009765625, - 280.38006591796875 - ], - "bbox": [ - 346.260009765625, - 270.87005615234375, - 353.760009765625, - 283.080078125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "= .06)", - "origin": [ - 353.8800048828125, - 280.38006591796875 - ], - "bbox": [ - 353.8800048828125, - 269.8500671386719, - 377.98199462890625, - 283.1900634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 269.8500671386719, - 377.98199462890625, - 283.1900634765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and controls (", - "origin": [ - 54.0, - 291.3600769042969 - ], - "bbox": [ - 54.0, - 280.830078125, - 108.71800231933594, - 294.1700744628906 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 108.72000122070312, - 291.3600769042969 - ], - "bbox": [ - 108.72000122070312, - 281.8500671386719, - 116.22000122070312, - 294.0600891113281 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "= .09). The ratio between maximum grip and load force is consid-", - "origin": [ - 116.04000091552734, - 291.3600769042969 - ], - "bbox": [ - 116.04000091552734, - 280.830078125, - 378.0570983886719, - 294.1700744628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 280.830078125, - 378.0570983886719, - 294.1700744628906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ered a sensitive measure for the efficiency of grip force scaling in relation to the", - "origin": [ - 54.0, - 302.340087890625 - ], - "bbox": [ - 54.0, - 291.8100891113281, - 378.0380554199219, - 305.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 291.8100891113281, - 378.0380554199219, - 305.15008544921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movement-induced loads. Patients (", - "origin": [ - 54.0, - 313.3800964355469 - ], - "bbox": [ - 54.0, - 302.85009765625, - 199.5220184326172, - 316.1900939941406 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 199.55999755859375, - 313.3800964355469 - ], - "bbox": [ - 199.55999755859375, - 303.8700866699219, - 204.55999755859375, - 316.0801086425781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .22) and control subjects (", - "origin": [ - 204.5399932861328, - 313.3800964355469 - ], - "bbox": [ - 204.5399932861328, - 302.85009765625, - 324.7120056152344, - 316.1900939941406 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 324.7200012207031, - 313.3800964355469 - ], - "bbox": [ - 324.7200012207031, - 303.8700866699219, - 329.7200012207031, - 316.0801086425781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .92) pro-", - "origin": [ - 329.70001220703125, - 313.3800964355469 - ], - "bbox": [ - 329.70001220703125, - 302.85009765625, - 378.02099609375, - 316.1900939941406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 302.85009765625, - 378.02099609375, - 316.1900939941406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duced very similar force ratios during upward and downward movements, indicat-", - "origin": [ - 54.0, - 324.360107421875 - ], - "bbox": [ - 54.0, - 313.8301086425781, - 378.05999755859375, - 327.17010498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 313.8301086425781, - 378.05999755859375, - 327.17010498046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing a similar coupling between grip and load force magnitudes during movements", - "origin": [ - 54.0, - 335.3401184082031 - ], - "bbox": [ - 54.0, - 324.81011962890625, - 378.02301025390625, - 338.1501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 324.81011962890625, - 378.02301025390625, - 338.1501159667969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in both vertical directions. However, patients generated significantly greater force", - "origin": [ - 54.0, - 346.32012939453125 - ], - "bbox": [ - 54.0, - 335.7901306152344, - 378.0599365234375, - 349.130126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 335.7901306152344, - 378.0599365234375, - 349.130126953125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ratios than control subjects during upward (", - "origin": [ - 54.0, - 357.3601379394531 - ], - "bbox": [ - 54.0, - 346.83013916015625, - 227.22499084472656, - 360.1701354980469 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 227.22000122070312, - 357.3601379394531 - ], - "bbox": [ - 227.22000122070312, - 347.8501281738281, - 232.22000122070312, - 360.0601501464844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " < .02) and downward movements (", - "origin": [ - 232.1999969482422, - 357.3601379394531 - ], - "bbox": [ - 232.1999969482422, - 346.83013916015625, - 373.04193115234375, - 360.1701354980469 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 373.0199890136719, - 357.3601379394531 - ], - "bbox": [ - 373.0199890136719, - 347.8501281738281, - 378.0199890136719, - 360.0601501464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 346.83013916015625, - 378.0199890136719, - 360.1701354980469 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "< .04), indicating an inefficient regulation of the grip force magnitude in relation", - "origin": [ - 53.999969482421875, - 368.34014892578125 - ], - "bbox": [ - 53.999969482421875, - 357.8101501464844, - 378.0609436035156, - 371.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 357.8101501464844, - 378.0609436035156, - 371.150146484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to the actual loading requirements (compare Table 2).", - "origin": [ - 53.999969482421875, - 379.3201599121094 - ], - "bbox": [ - 53.999969482421875, - 368.7901611328125, - 267.8979797363281, - 382.1301574707031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 368.7901611328125, - 267.8979797363281, - 382.1301574707031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "In Table 2, means and standard deviations of the time intervals between grip", - "origin": [ - 77.99996948242188, - 390.36016845703125 - ], - "bbox": [ - 77.99996948242188, - 379.8301696777344, - 378.0490417480469, - 393.170166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.99996948242188, - 379.8301696777344, - 378.0490417480469, - 393.170166015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force onset and acceleration onset (TF", - "origin": [ - 53.999969482421875, - 401.34014892578125 - ], - "bbox": [ - 53.999969482421875, - 390.8101501464844, - 208.57501220703125, - 404.150146484375 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GStart ", - "origin": [ - 208.55999755859375, - 403.32000732421875 - ], - "bbox": [ - 208.55999755859375, - 397.2126159667969, - 225.15379333496094, - 404.9497985839844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "– TACC", - "origin": [ - 225.3000030517578, - 401.3399963378906 - ], - "bbox": [ - 225.3000030517578, - 390.80999755859375, - 258.32000732421875, - 404.1499938964844 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Start", - "origin": [ - 258.29998779296875, - 403.32000732421875 - ], - "bbox": [ - 258.29998779296875, - 397.2126159667969, - 269.25848388671875, - 404.9497985839844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") and the time intervals be-", - "origin": [ - 269.2799987792969, - 401.3399963378906 - ], - "bbox": [ - 269.2799987792969, - 390.80999755859375, - 377.9979248046875, - 404.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 390.80999755859375, - 377.9979248046875, - 404.9497985839844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tween maximum grip force and maximum acceleration (TF", - "origin": [ - 54.0, - 412.32000732421875 - ], - "bbox": [ - 54.0, - 401.7900085449219, - 296.85699462890625, - 415.1300048828125 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GMax", - "origin": [ - 296.82000732421875, - 414.3599853515625 - ], - "bbox": [ - 296.82000732421875, - 408.2525939941406, - 311.6407165527344, - 415.9897766113281 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " – TACC", - "origin": [ - 311.5799865722656, - 412.32000732421875 - ], - "bbox": [ - 311.5799865722656, - 401.7900085449219, - 348.5, - 415.1300048828125 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max", - "origin": [ - 348.4800109863281, - 414.3599853515625 - ], - "bbox": [ - 348.4800109863281, - 408.2525939941406, - 359.112548828125, - 415.9897766113281 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") are", - "origin": [ - 359.1000061035156, - 412.32000732421875 - ], - "bbox": [ - 359.1000061035156, - 401.7900085449219, - 377.9909973144531, - 415.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 401.7900085449219, - 377.9909973144531, - 415.9897766113281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "figured for the group of patients and control subjects. In Figure 4, individual means", - "origin": [ - 54.0, - 423.3599853515625 - ], - "bbox": [ - 54.0, - 412.8299865722656, - 378.0052490234375, - 426.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 412.8299865722656, - 378.0052490234375, - 426.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of the time lags between grip force onset and the onset of acceleration are illus-", - "origin": [ - 54.0, - 434.3399963378906 - ], - "bbox": [ - 54.0, - 423.80999755859375, - 378.0839538574219, - 437.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 423.80999755859375, - 378.0839538574219, - 437.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "trated for upward and downward movements of each control subject and patient.", - "origin": [ - 54.0, - 445.32000732421875 - ], - "bbox": [ - 54.0, - 434.7900085449219, - 378.0509948730469, - 448.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 434.7900085449219, - 378.0509948730469, - 448.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The time intervals between the start of grip force rise and the onset of acceleration", - "origin": [ - 54.0, - 456.3599853515625 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.1150207519531, - 459.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.1150207519531, - 459.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "is a sensitive parameter for the coordination between finger muscles stabilizing the", - "origin": [ - 54.0, - 467.3399658203125 - ], - "bbox": [ - 54.0, - 456.8099670410156, - 378.03302001953125, - 470.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 456.8099670410156, - 378.03302001953125, - 470.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grasp and arm muscles performing the vertical movement. Healthy subjects in-", - "origin": [ - 54.0, - 478.3199768066406 - ], - "bbox": [ - 54.0, - 467.78997802734375, - 378.05902099609375, - 481.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 467.78997802734375, - 378.05902099609375, - 481.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "crease grip force together with load force close to the onset of acceleration during", - "origin": [ - 54.0, - 489.3599853515625 - ], - "bbox": [ - 54.0, - 478.8299865722656, - 378.08099365234375, - 492.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 478.8299865722656, - 378.08099365234375, - 492.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "upward movements and late during the course of downward movements when", - "origin": [ - 54.0, - 500.3399658203125 - ], - "bbox": [ - 54.0, - 489.8099670410156, - 378.0379943847656, - 503.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 489.8099670410156, - 378.0379943847656, - 503.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "acceleration and load force increased after an initial trough due to differential ef-", - "origin": [ - 54.0, - 511.3199462890625 - ], - "bbox": [ - 54.0, - 500.7899475097656, - 378.0419921875, - 514.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 500.7899475097656, - 378.0419921875, - 514.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fects of gravity (Flanagan & Wing, 1995). Thus, small time lags between grip", - "origin": [ - 54.0, - 522.3599853515625 - ], - "bbox": [ - 54.0, - 511.8299865722656, - 378.1040954589844, - 525.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 511.8299865722656, - 378.1040954589844, - 525.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force onset and the onset of acceleration resulted for upward movements, but large", - "origin": [ - 54.0, - 533.3399658203125 - ], - "bbox": [ - 54.0, - 522.8099365234375, - 378.0359802246094, - 536.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 522.8099365234375, - 378.0359802246094, - 536.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "time lags resulted from downward directed movements.", - "origin": [ - 54.0, - 544.3199462890625 - ], - "bbox": [ - 54.0, - 533.7899169921875, - 276.3610534667969, - 547.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 533.7899169921875, - 276.3610534667969, - 547.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The time lags between grip force and acceleration onset were significantly", - "origin": [ - 78.0, - 555.3599853515625 - ], - "bbox": [ - 78.0, - 544.8299560546875, - 378.0530090332031, - 558.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 544.8299560546875, - 378.0530090332031, - 558.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "longer for downward than for upward movements performed by healthy controls", - "origin": [ - 54.0, - 566.3399658203125 - ], - "bbox": [ - 54.0, - 555.8099365234375, - 377.9849548339844, - 569.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 555.8099365234375, - 377.9849548339844, - 569.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 54.0, - 577.3199462890625 - ], - "bbox": [ - 54.0, - 566.7899169921875, - 57.33000183105469, - 580.1299438476562 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 57.36000061035156, - 577.3199462890625 - ], - "bbox": [ - 57.36000061035156, - 567.8099365234375, - 62.36000061035156, - 580.0199584960938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 62.34000015258789, - 577.3199462890625 - ], - "bbox": [ - 62.34000015258789, - 566.7899169921875, - 64.83999633789062, - 580.1299438476562 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "≤", - "origin": [ - 64.62000274658203, - 577.3199462890625 - ], - "bbox": [ - 64.62000274658203, - 567.219970703125, - 70.11000061035156, - 580.2499389648438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " .001). However, 3 of the 5 ALS patients increased their grip forces right from", - "origin": [ - 70.08000183105469, - 577.3199462890625 - ], - "bbox": [ - 70.08000183105469, - 566.7899169921875, - 378.06292724609375, - 580.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 566.7899169921875, - 378.06292724609375, - 580.2499389648438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the movement onset during both upward and downward movements, resulting in", - "origin": [ - 54.00000762939453, - 588.3599853515625 - ], - "bbox": [ - 54.00000762939453, - 577.8299560546875, - 378.0639953613281, - 591.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00000762939453, - 577.8299560546875, - 378.0639953613281, - 591.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "similar time lags for movements in both vertical directions (", - "origin": [ - 54.00000762939453, - 599.3399658203125 - ], - "bbox": [ - 54.00000762939453, - 588.8099365234375, - 293.4360046386719, - 602.1499633789062 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 293.4599914550781, - 599.3399658203125 - ], - "bbox": [ - 293.4599914550781, - 589.8299560546875, - 298.4599914550781, - 602.0399780273438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 298.44000244140625, - 599.3399658203125 - ], - "bbox": [ - 298.44000244140625, - 588.8099365234375, - 300.94000244140625, - 602.1499633789062 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "≥", - "origin": [ - 300.8999938964844, - 599.3399658203125 - ], - "bbox": [ - 300.8999938964844, - 589.239990234375, - 306.3899841308594, - 602.2699584960938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " .61). These pecu-", - "origin": [ - 306.41998291015625, - 599.3399658203125 - ], - "bbox": [ - 306.41998291015625, - 588.8099365234375, - 377.9867858886719, - 602.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00000762939453, - 588.8099365234375, - 377.9867858886719, - 602.2699584960938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "liarities in the temporal coupling between movement kinematics and grip force", - "origin": [ - 53.999969482421875, - 610.3199462890625 - ], - "bbox": [ - 53.999969482421875, - 599.7899169921875, - 378.05291748046875, - 613.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 599.7899169921875, - 378.05291748046875, - 613.1299438476562 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 276.47999999999996, - 174.23999999999998, - 307.2, - 185.76 - ], - "image_path": "equations_inline/8_276_174_307_185.jpg" - }, - { - "bbox": [ - 363.84, - 174.72, - 381.59999999999997, - 185.76 - ], - "image_path": "equations_inline/8_363_174_381_185.jpg" - }, - { - "bbox": [ - 53.279999999999994, - 261.59999999999997, - 86.88, - 273.59999999999997 - ], - "image_path": "equations_inline/8_53_261_86_273.jpg" - }, - { - "bbox": [ - 344.15999999999997, - 272.64, - 378.23999999999995, - 284.64 - ], - "image_path": "equations_inline/8_344_272_378_284.jpg" - }, - { - "bbox": [ - 197.76, - 305.28, - 232.32, - 317.76 - ], - "image_path": "equations_inline/8_197_305_232_317.jpg" - }, - { - "bbox": [ - 322.08, - 305.76, - 357.59999999999997, - 317.76 - ], - "image_path": "equations_inline/8_322_305_357_317.jpg" - }, - { - "bbox": [ - 222.71999999999997, - 349.91999999999996, - 257.76, - 361.91999999999996 - ], - "image_path": "equations_inline/8_222_349_257_361.jpg" - }, - { - "bbox": [ - 368.64, - 349.91999999999996, - 379.2, - 361.91999999999996 - ], - "image_path": "equations_inline/8_368_349_379_361.jpg" - }, - { - "bbox": [ - 192.0, - 393.11999999999995, - 273.59999999999997, - 406.08 - ], - "image_path": "equations_inline/8_192_393_273_406.jpg" - }, - { - "bbox": [ - 280.32, - 404.15999999999997, - 363.84, - 416.64 - ], - "image_path": "equations_inline/8_280_404_363_416.jpg" - }, - { - "bbox": [ - 288.47999999999996, - 591.36, - 325.44, - 603.8399999999999 - ], - "image_path": "equations_inline/8_288_591_325_603.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 0, - 432.0, - 648.0 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 53.999969482421875, - 82.82998657226562, - 378.1150207519531, - 613.1299438476562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The parameters on which data analysis was focused are summarized in Table 2.", - "origin": [ - 54.0, - 93.3599853515625 - ], - "bbox": [ - 54.0, - 82.82998657226562, - 378.04498291015625, - 96.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 82.82998657226562, - 378.04498291015625, - 96.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The grip force at the start of each movement provides a measure of the grip force", - "origin": [ - 54.0, - 104.3399658203125 - ], - "bbox": [ - 54.0, - 93.80996704101562, - 378.05804443359375, - 107.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 93.80996704101562, - 378.05804443359375, - 107.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "established during stationary holding by the subject in between single arm move-", - "origin": [ - 54.0, - 115.37994384765625 - ], - "bbox": [ - 54.0, - 104.84994506835938, - 378.0450134277344, - 118.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 104.84994506835938, - 378.0450134277344, - 118.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments. Compared with controls, ALS patients generated greater grip forces at the", - "origin": [ - 54.0, - 126.35992431640625 - ], - "bbox": [ - 54.0, - 115.82992553710938, - 378.0569763183594, - 129.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 115.82992553710938, - 378.0569763183594, - 129.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "start of each arm movement (", - "origin": [ - 54.0, - 137.33993530273438 - ], - "bbox": [ - 54.0, - 126.8099365234375, - 170.70602416992188, - 140.14993286132812 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 170.6999969482422, - 137.33993530273438 - ], - "bbox": [ - 170.6999969482422, - 127.8299331665039, - 175.6999969482422, - 140.03993225097656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " < .05). In Figure 3, means and standard deviations", - "origin": [ - 175.67999267578125, - 137.33993530273438 - ], - "bbox": [ - 175.67999267578125, - 126.8099365234375, - 378.06103515625, - 140.14993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 126.8099365234375, - 378.06103515625, - 140.14993286132812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of maximum kinematic acceleration, maximum grip force, and the ratio between", - "origin": [ - 53.99999237060547, - 148.37994384765625 - ], - "bbox": [ - 53.99999237060547, - 137.84994506835938, - 378.0799255371094, - 151.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 137.84994506835938, - 378.0799255371094, - 151.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grip and load force maxima are illustrated for upward and downward movements", - "origin": [ - 53.99999237060547, - 159.35995483398438 - ], - "bbox": [ - 53.99999237060547, - 148.8299560546875, - 378.030029296875, - 162.16995239257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 148.8299560546875, - 378.030029296875, - 162.16995239257812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of controls and patients. Maximum kinematic accelerations were similar for up-", - "origin": [ - 53.99999237060547, - 170.3399658203125 - ], - "bbox": [ - 53.99999237060547, - 159.80996704101562, - 378.0799865722656, - 173.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 159.80996704101562, - 378.0799865722656, - 173.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ward and downward movements performed by patients (", - "origin": [ - 53.99999237060547, - 181.37997436523438 - ], - "bbox": [ - 53.99999237060547, - 170.8499755859375, - 277.6240234375, - 184.18997192382812 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 277.6199951171875, - 181.37997436523438 - ], - "bbox": [ - 277.6199951171875, - 171.86997985839844, - 285.1199951171875, - 184.07997131347656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "= .54) and controls (", - "origin": [ - 284.82000732421875, - 181.37997436523438 - ], - "bbox": [ - 284.82000732421875, - 170.8499755859375, - 365.1600036621094, - 184.18997192382812 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 365.1600036621094, - 181.37997436523438 - ], - "bbox": [ - 365.1600036621094, - 171.86997985839844, - 372.6600036621094, - 184.07997131347656 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "=", - "origin": [ - 372.3600158691406, - 181.37997436523438 - ], - "bbox": [ - 372.3600158691406, - 170.8499755859375, - 378.0000305175781, - 184.18997192382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 170.8499755859375, - 378.0000305175781, - 184.18997192382812 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".34). Compared to healthy controls, patients produced maximum kinematic accel-", - "origin": [ - 54.0, - 192.3599853515625 - ], - "bbox": [ - 54.0, - 181.82998657226562, - 378.04974365234375, - 195.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 181.82998657226562, - 378.04974365234375, - 195.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "erations of similar magnitude for upward (", - "origin": [ - 54.0, - 203.33999633789062 - ], - "bbox": [ - 54.0, - 192.80999755859375, - 222.2870330810547, - 206.14999389648438 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 222.239990234375, - 203.33999633789062 - ], - "bbox": [ - 222.239990234375, - 193.8300018310547, - 229.739990234375, - 206.0399932861328 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "= .56) and downward (", - "origin": [ - 229.49998474121094, - 203.33999633789062 - ], - "bbox": [ - 229.49998474121094, - 192.80999755859375, - 319.60296630859375, - 206.14999389648438 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 319.55999755859375, - 203.33999633789062 - ], - "bbox": [ - 319.55999755859375, - 193.8300018310547, - 327.05999755859375, - 206.0399932861328 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "= .19) move-", - "origin": [ - 326.82000732421875, - 203.33999633789062 - ], - "bbox": [ - 326.82000732421875, - 192.80999755859375, - 378.0309753417969, - 206.14999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 192.80999755859375, - 378.0309753417969, - 206.14999389648438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments. The means and standard deviations of the maximum load forces are not", - "origin": [ - 54.0, - 214.3800048828125 - ], - "bbox": [ - 54.0, - 203.85000610351562, - 378.0719299316406, - 217.19000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 203.85000610351562, - 378.0719299316406, - 217.19000244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "illustrated in Figure 3 but reflected the observations for the kinematic accelera-", - "origin": [ - 54.0, - 225.36001586914062 - ], - "bbox": [ - 54.0, - 214.83001708984375, - 378.031005859375, - 228.17001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 214.83001708984375, - 378.031005859375, - 228.17001342773438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tions on which they depended.", - "origin": [ - 54.0, - 236.34002685546875 - ], - "bbox": [ - 54.0, - 225.81002807617188, - 175.760009765625, - 239.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 225.81002807617188, - 175.760009765625, - 239.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS patients established significantly greater maximum grip forces than", - "origin": [ - 78.0, - 247.38003540039062 - ], - "bbox": [ - 78.0, - 236.85003662109375, - 378.0629577636719, - 250.19003295898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 236.85003662109375, - 378.0629577636719, - 250.19003295898438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "healthy controls against the hand-held object regardless of the movement direction", - "origin": [ - 54.0, - 258.36004638671875 - ], - "bbox": [ - 54.0, - 247.83004760742188, - 378.041015625, - 261.1700439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 247.83004760742188, - 378.041015625, - 261.1700439453125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 54.0, - 269.3400573730469 - ], - "bbox": [ - 54.0, - 258.81005859375, - 57.33000183105469, - 272.1500549316406 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 57.36000061035156, - 269.3400573730469 - ], - "bbox": [ - 57.36000061035156, - 259.8300476074219, - 62.36000061035156, - 272.0400695800781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " < .01). We found no significant differences between maximum grip forces gen-", - "origin": [ - 62.34000015258789, - 269.3400573730469 - ], - "bbox": [ - 62.34000015258789, - 258.81005859375, - 378.0530090332031, - 272.1500549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 258.81005859375, - 378.0530090332031, - 272.1500549316406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "erated during upward and downward movements performed by patients (", - "origin": [ - 54.0, - 280.38006591796875 - ], - "bbox": [ - 54.0, - 269.8500671386719, - 346.2959899902344, - 283.1900634765625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 346.260009765625, - 280.38006591796875 - ], - "bbox": [ - 346.260009765625, - 270.87005615234375, - 353.760009765625, - 283.080078125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "= .06)", - "origin": [ - 353.8800048828125, - 280.38006591796875 - ], - "bbox": [ - 353.8800048828125, - 269.8500671386719, - 377.98199462890625, - 283.1900634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 269.8500671386719, - 377.98199462890625, - 283.1900634765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and controls (", - "origin": [ - 54.0, - 291.3600769042969 - ], - "bbox": [ - 54.0, - 280.830078125, - 108.71800231933594, - 294.1700744628906 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p ", - "origin": [ - 108.72000122070312, - 291.3600769042969 - ], - "bbox": [ - 108.72000122070312, - 281.8500671386719, - 116.22000122070312, - 294.0600891113281 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "= .09). The ratio between maximum grip and load force is consid-", - "origin": [ - 116.04000091552734, - 291.3600769042969 - ], - "bbox": [ - 116.04000091552734, - 280.830078125, - 378.0570983886719, - 294.1700744628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 280.830078125, - 378.0570983886719, - 294.1700744628906 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ered a sensitive measure for the efficiency of grip force scaling in relation to the", - "origin": [ - 54.0, - 302.340087890625 - ], - "bbox": [ - 54.0, - 291.8100891113281, - 378.0380554199219, - 305.15008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 291.8100891113281, - 378.0380554199219, - 305.15008544921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movement-induced loads. Patients (", - "origin": [ - 54.0, - 313.3800964355469 - ], - "bbox": [ - 54.0, - 302.85009765625, - 199.5220184326172, - 316.1900939941406 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 199.55999755859375, - 313.3800964355469 - ], - "bbox": [ - 199.55999755859375, - 303.8700866699219, - 204.55999755859375, - 316.0801086425781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .22) and control subjects (", - "origin": [ - 204.5399932861328, - 313.3800964355469 - ], - "bbox": [ - 204.5399932861328, - 302.85009765625, - 324.7120056152344, - 316.1900939941406 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 324.7200012207031, - 313.3800964355469 - ], - "bbox": [ - 324.7200012207031, - 303.8700866699219, - 329.7200012207031, - 316.0801086425781 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .92) pro-", - "origin": [ - 329.70001220703125, - 313.3800964355469 - ], - "bbox": [ - 329.70001220703125, - 302.85009765625, - 378.02099609375, - 316.1900939941406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 302.85009765625, - 378.02099609375, - 316.1900939941406 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duced very similar force ratios during upward and downward movements, indicat-", - "origin": [ - 54.0, - 324.360107421875 - ], - "bbox": [ - 54.0, - 313.8301086425781, - 378.05999755859375, - 327.17010498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 313.8301086425781, - 378.05999755859375, - 327.17010498046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing a similar coupling between grip and load force magnitudes during movements", - "origin": [ - 54.0, - 335.3401184082031 - ], - "bbox": [ - 54.0, - 324.81011962890625, - 378.02301025390625, - 338.1501159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 324.81011962890625, - 378.02301025390625, - 338.1501159667969 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in both vertical directions. However, patients generated significantly greater force", - "origin": [ - 54.0, - 346.32012939453125 - ], - "bbox": [ - 54.0, - 335.7901306152344, - 378.0599365234375, - 349.130126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 335.7901306152344, - 378.0599365234375, - 349.130126953125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ratios than control subjects during upward (", - "origin": [ - 54.0, - 357.3601379394531 - ], - "bbox": [ - 54.0, - 346.83013916015625, - 227.22499084472656, - 360.1701354980469 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 227.22000122070312, - 357.3601379394531 - ], - "bbox": [ - 227.22000122070312, - 347.8501281738281, - 232.22000122070312, - 360.0601501464844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " < .02) and downward movements (", - "origin": [ - 232.1999969482422, - 357.3601379394531 - ], - "bbox": [ - 232.1999969482422, - 346.83013916015625, - 373.04193115234375, - 360.1701354980469 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 373.0199890136719, - 357.3601379394531 - ], - "bbox": [ - 373.0199890136719, - 347.8501281738281, - 378.0199890136719, - 360.0601501464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 346.83013916015625, - 378.0199890136719, - 360.1701354980469 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "< .04), indicating an inefficient regulation of the grip force magnitude in relation", - "origin": [ - 53.999969482421875, - 368.34014892578125 - ], - "bbox": [ - 53.999969482421875, - 357.8101501464844, - 378.0609436035156, - 371.150146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 357.8101501464844, - 378.0609436035156, - 371.150146484375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to the actual loading requirements (compare Table 2).", - "origin": [ - 53.999969482421875, - 379.3201599121094 - ], - "bbox": [ - 53.999969482421875, - 368.7901611328125, - 267.8979797363281, - 382.1301574707031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 368.7901611328125, - 267.8979797363281, - 382.1301574707031 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "In Table 2, means and standard deviations of the time intervals between grip", - "origin": [ - 77.99996948242188, - 390.36016845703125 - ], - "bbox": [ - 77.99996948242188, - 379.8301696777344, - 378.0490417480469, - 393.170166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.99996948242188, - 379.8301696777344, - 378.0490417480469, - 393.170166015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force onset and acceleration onset (TF", - "origin": [ - 53.999969482421875, - 401.34014892578125 - ], - "bbox": [ - 53.999969482421875, - 390.8101501464844, - 208.57501220703125, - 404.150146484375 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GStart ", - "origin": [ - 208.55999755859375, - 403.32000732421875 - ], - "bbox": [ - 208.55999755859375, - 397.2126159667969, - 225.15379333496094, - 404.9497985839844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "– TACC", - "origin": [ - 225.3000030517578, - 401.3399963378906 - ], - "bbox": [ - 225.3000030517578, - 390.80999755859375, - 258.32000732421875, - 404.1499938964844 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Start", - "origin": [ - 258.29998779296875, - 403.32000732421875 - ], - "bbox": [ - 258.29998779296875, - 397.2126159667969, - 269.25848388671875, - 404.9497985839844 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") and the time intervals be-", - "origin": [ - 269.2799987792969, - 401.3399963378906 - ], - "bbox": [ - 269.2799987792969, - 390.80999755859375, - 377.9979248046875, - 404.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 390.80999755859375, - 377.9979248046875, - 404.9497985839844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tween maximum grip force and maximum acceleration (TF", - "origin": [ - 54.0, - 412.32000732421875 - ], - "bbox": [ - 54.0, - 401.7900085449219, - 296.85699462890625, - 415.1300048828125 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GMax", - "origin": [ - 296.82000732421875, - 414.3599853515625 - ], - "bbox": [ - 296.82000732421875, - 408.2525939941406, - 311.6407165527344, - 415.9897766113281 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " – TACC", - "origin": [ - 311.5799865722656, - 412.32000732421875 - ], - "bbox": [ - 311.5799865722656, - 401.7900085449219, - 348.5, - 415.1300048828125 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max", - "origin": [ - 348.4800109863281, - 414.3599853515625 - ], - "bbox": [ - 348.4800109863281, - 408.2525939941406, - 359.112548828125, - 415.9897766113281 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") are", - "origin": [ - 359.1000061035156, - 412.32000732421875 - ], - "bbox": [ - 359.1000061035156, - 401.7900085449219, - 377.9909973144531, - 415.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 401.7900085449219, - 377.9909973144531, - 415.9897766113281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "figured for the group of patients and control subjects. In Figure 4, individual means", - "origin": [ - 54.0, - 423.3599853515625 - ], - "bbox": [ - 54.0, - 412.8299865722656, - 378.0052490234375, - 426.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 412.8299865722656, - 378.0052490234375, - 426.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of the time lags between grip force onset and the onset of acceleration are illus-", - "origin": [ - 54.0, - 434.3399963378906 - ], - "bbox": [ - 54.0, - 423.80999755859375, - 378.0839538574219, - 437.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 423.80999755859375, - 378.0839538574219, - 437.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "trated for upward and downward movements of each control subject and patient.", - "origin": [ - 54.0, - 445.32000732421875 - ], - "bbox": [ - 54.0, - 434.7900085449219, - 378.0509948730469, - 448.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 434.7900085449219, - 378.0509948730469, - 448.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The time intervals between the start of grip force rise and the onset of acceleration", - "origin": [ - 54.0, - 456.3599853515625 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.1150207519531, - 459.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.1150207519531, - 459.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "is a sensitive parameter for the coordination between finger muscles stabilizing the", - "origin": [ - 54.0, - 467.3399658203125 - ], - "bbox": [ - 54.0, - 456.8099670410156, - 378.03302001953125, - 470.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 456.8099670410156, - 378.03302001953125, - 470.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grasp and arm muscles performing the vertical movement. Healthy subjects in-", - "origin": [ - 54.0, - 478.3199768066406 - ], - "bbox": [ - 54.0, - 467.78997802734375, - 378.05902099609375, - 481.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 467.78997802734375, - 378.05902099609375, - 481.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "crease grip force together with load force close to the onset of acceleration during", - "origin": [ - 54.0, - 489.3599853515625 - ], - "bbox": [ - 54.0, - 478.8299865722656, - 378.08099365234375, - 492.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 478.8299865722656, - 378.08099365234375, - 492.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "upward movements and late during the course of downward movements when", - "origin": [ - 54.0, - 500.3399658203125 - ], - "bbox": [ - 54.0, - 489.8099670410156, - 378.0379943847656, - 503.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 489.8099670410156, - 378.0379943847656, - 503.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "acceleration and load force increased after an initial trough due to differential ef-", - "origin": [ - 54.0, - 511.3199462890625 - ], - "bbox": [ - 54.0, - 500.7899475097656, - 378.0419921875, - 514.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 500.7899475097656, - 378.0419921875, - 514.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fects of gravity (Flanagan & Wing, 1995). Thus, small time lags between grip", - "origin": [ - 54.0, - 522.3599853515625 - ], - "bbox": [ - 54.0, - 511.8299865722656, - 378.1040954589844, - 525.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 511.8299865722656, - 378.1040954589844, - 525.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force onset and the onset of acceleration resulted for upward movements, but large", - "origin": [ - 54.0, - 533.3399658203125 - ], - "bbox": [ - 54.0, - 522.8099365234375, - 378.0359802246094, - 536.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 522.8099365234375, - 378.0359802246094, - 536.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "time lags resulted from downward directed movements.", - "origin": [ - 54.0, - 544.3199462890625 - ], - "bbox": [ - 54.0, - 533.7899169921875, - 276.3610534667969, - 547.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 533.7899169921875, - 276.3610534667969, - 547.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The time lags between grip force and acceleration onset were significantly", - "origin": [ - 78.0, - 555.3599853515625 - ], - "bbox": [ - 78.0, - 544.8299560546875, - 378.0530090332031, - 558.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 544.8299560546875, - 378.0530090332031, - 558.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "longer for downward than for upward movements performed by healthy controls", - "origin": [ - 54.0, - 566.3399658203125 - ], - "bbox": [ - 54.0, - 555.8099365234375, - 377.9849548339844, - 569.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 555.8099365234375, - 377.9849548339844, - 569.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 54.0, - 577.3199462890625 - ], - "bbox": [ - 54.0, - 566.7899169921875, - 57.33000183105469, - 580.1299438476562 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 57.36000061035156, - 577.3199462890625 - ], - "bbox": [ - 57.36000061035156, - 567.8099365234375, - 62.36000061035156, - 580.0199584960938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 62.34000015258789, - 577.3199462890625 - ], - "bbox": [ - 62.34000015258789, - 566.7899169921875, - 64.83999633789062, - 580.1299438476562 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "≤", - "origin": [ - 64.62000274658203, - 577.3199462890625 - ], - "bbox": [ - 64.62000274658203, - 567.219970703125, - 70.11000061035156, - 580.2499389648438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " .001). However, 3 of the 5 ALS patients increased their grip forces right from", - "origin": [ - 70.08000183105469, - 577.3199462890625 - ], - "bbox": [ - 70.08000183105469, - 566.7899169921875, - 378.06292724609375, - 580.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 566.7899169921875, - 378.06292724609375, - 580.2499389648438 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the movement onset during both upward and downward movements, resulting in", - "origin": [ - 54.00000762939453, - 588.3599853515625 - ], - "bbox": [ - 54.00000762939453, - 577.8299560546875, - 378.0639953613281, - 591.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00000762939453, - 577.8299560546875, - 378.0639953613281, - 591.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "similar time lags for movements in both vertical directions (", - "origin": [ - 54.00000762939453, - 599.3399658203125 - ], - "bbox": [ - 54.00000762939453, - 588.8099365234375, - 293.4360046386719, - 602.1499633789062 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 293.4599914550781, - 599.3399658203125 - ], - "bbox": [ - 293.4599914550781, - 589.8299560546875, - 298.4599914550781, - 602.0399780273438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 298.44000244140625, - 599.3399658203125 - ], - "bbox": [ - 298.44000244140625, - 588.8099365234375, - 300.94000244140625, - 602.1499633789062 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "≥", - "origin": [ - 300.8999938964844, - 599.3399658203125 - ], - "bbox": [ - 300.8999938964844, - 589.239990234375, - 306.3899841308594, - 602.2699584960938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " .61). These pecu-", - "origin": [ - 306.41998291015625, - 599.3399658203125 - ], - "bbox": [ - 306.41998291015625, - 588.8099365234375, - 377.9867858886719, - 602.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00000762939453, - 588.8099365234375, - 377.9867858886719, - 602.2699584960938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "liarities in the temporal coupling between movement kinematics and grip force", - "origin": [ - 53.999969482421875, - 610.3199462890625 - ], - "bbox": [ - 53.999969482421875, - 599.7899169921875, - 378.05291748046875, - 613.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 599.7899169921875, - 378.05291748046875, - 613.1299438476562 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 3, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 8, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_9": { - "para_blocks": {}, - "preproc_blocks": [], - "images": [], - "tables": [ - { - "bbox": [ - 97.27980041503906, - 47.04, - 329.21221923828125, - 624.9599999999999 - ], - "image_path": "tables/9_97_47_329_624.jpg" - }, - { - "bbox": [ - 97.27980041503906, - 68.16, - 132.4138946533203, - 606.0000610351562 - ], - "image_path": "tables/9_97_68_132_606.jpg" - } - ], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 68.16, - 432.0, - 606.0000610351562 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 97.27980041503906, - 77.67961120605469, - 132.4138946533203, - 606.0000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Table 2", - "origin": [ - 107.37870025634766, - 606.0 - ], - "bbox": [ - 97.98269653320312, - 576.2728881835938, - 110.44803619384766, - 606.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 97.98269653320312, - 576.2728881835938, - 110.44803619384766, - 606.0000610351562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Mean (", - "origin": [ - 107.37913513183594, - 567.1190795898438 - ], - "bbox": [ - 97.98313903808594, - 538.1812744140625, - 110.44845581054688, - 567.119140625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 107.37979888916016, - 538.0800170898438 - ], - "bbox": [ - 97.27980041503906, - 532.58984375, - 110.30990600585938, - 538.080078125 - ] - }, - { - "size": 9.0, - "flags": 22, - "font": "Times-BoldItalic", - "color": 2236191, - "ascender": 0.972000002861023, - "descender": -0.3240000009536743, - "text": "SD", - "origin": [ - 107.37979888916016, - 532.8599853515625 - ], - "bbox": [ - 98.63179779052734, - 521.2454223632812, - 110.2959213256836, - 532.8600463867188 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ") of Static Grip Force, Maximum (Max) and Minimum (Min) of Kinematic Acceleration, Maximum Grip", - "origin": [ - 107.37992858886719, - 521.1600341796875 - ], - "bbox": [ - 97.98393249511719, - 93.76982116699219, - 110.45368957519531, - 521.1600952148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 97.27980041503906, - 93.76982116699219, - 110.45368957519531, - 567.119140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Force, Ratio Between Grip and Load Forces, Time Lags Between Grip Force and Acceleration Onset and Time Lags Between", - "origin": [ - 118.35899353027344, - 605.99951171875 - ], - "bbox": [ - 108.96299743652344, - 93.91288757324219, - 121.43370056152344, - 605.9995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 108.96299743652344, - 93.91288757324219, - 121.43370056152344, - 605.9995727539062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Maximum Grip Force and Maximum Acceleration During Vertical Point-to-Point Movements Performed By Healthy Controls and", - "origin": [ - 129.33900451660156, - 605.9996337890625 - ], - "bbox": [ - 119.94300842285156, - 77.67961120605469, - 132.4138946533203, - 605.9996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 119.94300842285156, - 77.67961120605469, - 132.4138946533203, - 605.9996948242188 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 130.98269653320312, - 552.9481201171875, - 143.4482879638672, - 606.0005493164062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "ALS Patients", - "origin": [ - 140.37869262695312, - 606.00048828125 - ], - "bbox": [ - 130.98269653320312, - 552.9481201171875, - 143.4482879638672, - 606.0005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 130.98269653320312, - 552.9481201171875, - 143.4482879638672, - 606.0005493164062 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 160.2470245361328, - 72.74006652832031, - 216.23374938964844, - 528.0018920898438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Time lag", - "origin": [ - 169.72402954101562, - 126.0010986328125 - ], - "bbox": [ - 160.2470245361328, - 93.74226379394531, - 172.25340270996094, - 126.00112915039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 160.2470245361328, - 93.74226379394531, - 172.25340270996094, - 126.00112915039062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Time lag", - "origin": [ - 180.70323181152344, - 198.001220703125 - ], - "bbox": [ - 171.22622680664062, - 165.7361602783203, - 183.23260498046875, - 198.00125122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 171.22622680664062, - 165.7361602783203, - 183.23260498046875, - 198.00125122070312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "between", - "origin": [ - 180.70404052734375, - 125.9940185546875 - ], - "bbox": [ - 171.22703552246094, - 96.00050354003906, - 183.23338317871094, - 125.99404907226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 171.22703552246094, - 96.00050354003906, - 183.23338317871094, - 125.99404907226562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Ratio of max", - "origin": [ - 191.68252563476562, - 261.0013427734375 - ], - "bbox": [ - 182.2055206298828, - 213.98341369628906, - 194.21205139160156, - 261.0013732910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 182.2055206298828, - 213.98341369628906, - 194.21205139160156, - 261.0013732910156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "between grip", - "origin": [ - 191.6832275390625, - 197.99142456054688 - ], - "bbox": [ - 182.2062225341797, - 151.24440002441406, - 194.21275329589844, - 197.991455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 182.2062225341797, - 151.24440002441406, - 194.21275329589844, - 197.991455078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "maximum grip", - "origin": [ - 191.68402099609375, - 126.00311279296875 - ], - "bbox": [ - 182.20701599121094, - 72.74006652832031, - 194.21360778808594, - 126.00314331054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 182.20701599121094, - 72.74006652832031, - 194.21360778808594, - 126.00314331054688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max", - "origin": [ - 202.72055053710938, - 465.00177001953125 - ], - "bbox": [ - 193.24354553222656, - 448.5046691894531, - 205.24974060058594, - 465.0018005371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 193.24354553222656, - 448.5046691894531, - 205.24974060058594, - 465.0018005371094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Min", - "origin": [ - 202.72128295898438, - 399.0065612792969 - ], - "bbox": [ - 193.24427795410156, - 384.0034484863281, - 205.25045776367188, - 399.006591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 193.24427795410156, - 384.0034484863281, - 205.25045776367188, - 399.006591796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grip force to", - "origin": [ - 202.7228240966797, - 261.0050354003906 - ], - "bbox": [ - 193.24581909179688, - 216.5538787841797, - 205.2523193359375, - 261.00506591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 193.24581909179688, - 216.5538787841797, - 205.2523193359375, - 261.00506591796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force and", - "origin": [ - 202.7235107421875, - 198.014892578125 - ], - "bbox": [ - 193.2465057373047, - 164.30076599121094, - 205.2528839111328, - 198.01492309570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 193.2465057373047, - 164.30076599121094, - 205.2528839111328, - 198.01492309570312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force and", - "origin": [ - 202.72430419921875, - 126.0076904296875 - ], - "bbox": [ - 193.24729919433594, - 92.29365539550781, - 205.25367736816406, - 126.00772094726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 193.24729919433594, - 92.29365539550781, - 205.25367736816406, - 126.00772094726562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Static grip", - "origin": [ - 213.69984436035156, - 528.0018920898438 - ], - "bbox": [ - 204.22283935546875, - 490.7489929199219, - 216.22927856445312, - 528.0018920898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.22283935546875, - 490.7489929199219, - 216.22927856445312, - 528.0018920898438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "acceleration", - "origin": [ - 213.7005615234375, - 465.00909423828125 - ], - "bbox": [ - 204.2235565185547, - 421.5398864746094, - 216.2300567626953, - 465.0091247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.2235565185547, - 421.5398864746094, - 216.2300567626953, - 465.0091247558594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "accerlation", - "origin": [ - 213.7012939453125, - 399.00311279296875 - ], - "bbox": [ - 204.2242889404297, - 359.529052734375, - 216.23074340820312, - 399.0031433105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.2242889404297, - 359.529052734375, - 216.23074340820312, - 399.0031433105469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max grip", - "origin": [ - 213.7021026611328, - 326.9914245605469 - ], - "bbox": [ - 204.22509765625, - 293.7408142089844, - 216.23147583007812, - 326.991455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.22509765625, - 293.7408142089844, - 216.23147583007812, - 326.991455078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "max load", - "origin": [ - 213.7028350830078, - 260.99530029296875 - ], - "bbox": [ - 204.225830078125, - 227.7446746826172, - 216.23220825195312, - 260.9953308105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.225830078125, - 227.7446746826172, - 216.23220825195312, - 260.9953308105469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "acceleration", - "origin": [ - 213.7035369873047, - 197.999755859375 - ], - "bbox": [ - 204.22653198242188, - 154.53062438964844, - 216.2330322265625, - 197.99978637695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.22653198242188, - 154.53062438964844, - 216.2330322265625, - 197.99978637695312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "maximum", - "origin": [ - 213.704345703125, - 125.994384765625 - ], - "bbox": [ - 204.2273406982422, - 89.49569702148438, - 216.23374938964844, - 125.99441528320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.2273406982422, - 89.49569702148438, - 216.23374938964844, - 125.99441528320312 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 215.20169067382812, - 70.77828216552734, - 227.2145538330078, - 606.0018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Subject", - "origin": [ - 224.67869567871094, - 606.0018310546875 - ], - "bbox": [ - 215.20169067382812, - 578.9962768554688, - 227.2080078125, - 606.0018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.20169067382812, - 578.9962768554688, - 227.2080078125, - 606.0018310546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Direction", - "origin": [ - 224.67910766601562, - 570.0018310546875 - ], - "bbox": [ - 215.2021026611328, - 536.00146484375, - 227.20849609375, - 570.0018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.2021026611328, - 536.00146484375, - 227.20849609375, - 570.0018310546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force (N)", - "origin": [ - 224.67958068847656, - 528.010498046875 - ], - "bbox": [ - 215.20257568359375, - 494.79229736328125, - 227.20895385742188, - 528.010498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.20257568359375, - 494.79229736328125, - 227.20895385742188, - 528.010498046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(m/s", - "origin": [ - 224.68028259277344, - 465.0032958984375 - ], - "bbox": [ - 215.20327758789062, - 448.9985046386719, - 227.20947265625, - 465.0033264160156 - ] - }, - { - "size": 5.199999809265137, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 221.6811065673828, - 448.9818115234375 - ], - "bbox": [ - 216.20550537109375, - 446.3817138671875, - 223.14234924316406, - 448.9818420410156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ")", - "origin": [ - 224.6811065673828, - 446.40179443359375 - ], - "bbox": [ - 215.2041015625, - 443.4046936035156, - 227.21014404296875, - 446.4018249511719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.20327758789062, - 443.4046936035156, - 227.21014404296875, - 465.0033264160156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(m/s", - "origin": [ - 224.681640625, - 399.0014953613281 - ], - "bbox": [ - 215.2046356201172, - 382.9939880371094, - 227.21083068847656, - 399.00152587890625 - ] - }, - { - "size": 5.199999809265137, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 221.68209838867188, - 382.9818115234375 - ], - "bbox": [ - 216.2064971923828, - 380.3817138671875, - 223.14334106445312, - 382.9818420410156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ")", - "origin": [ - 224.68209838867188, - 380.40179443359375 - ], - "bbox": [ - 215.20509338378906, - 377.4046936035156, - 227.2111358642578, - 380.4018249511719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.2046356201172, - 377.4046936035156, - 227.2111358642578, - 399.00152587890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force (N)", - "origin": [ - 224.6826934814453, - 327.0021057128906 - ], - "bbox": [ - 215.2056884765625, - 293.77764892578125, - 227.21206665039062, - 327.00213623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.2056884765625, - 293.77764892578125, - 227.21206665039062, - 327.00213623046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force", - "origin": [ - 224.6834259033203, - 260.988037109375 - ], - "bbox": [ - 215.2064208984375, - 242.4983673095703, - 227.21263122558594, - 260.9880676269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.2064208984375, - 242.4983673095703, - 227.21263122558594, - 260.9880676269531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "onset", - "origin": [ - 224.68411254882812, - 198.00518798828125 - ], - "bbox": [ - 215.2071075439453, - 179.00247192382812, - 227.2133331298828, - 198.00521850585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.2071075439453, - 179.00247192382812, - 227.2133331298828, - 198.00521850585938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "acceleration (s)", - "origin": [ - 224.68492126464844, - 126.00518798828125 - ], - "bbox": [ - 215.20791625976562, - 70.77828216552734, - 227.2145538330078, - 126.00521850585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.20791625976562, - 70.77828216552734, - 227.2145538330078, - 126.00521850585938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 244.54258728027344, - 71.97352600097656, - 289.66253662109375, - 606.00244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Healthy", - "origin": [ - 254.01959228515625, - 606.00244140625 - ], - "bbox": [ - 244.54258728027344, - 577.5029296875, - 256.5489196777344, - 606.00244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54258728027344, - 577.5029296875, - 256.5489196777344, - 606.00244140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "up", - "origin": [ - 254.01998901367188, - 570.0087280273438 - ], - "bbox": [ - 244.54298400878906, - 561.0076904296875, - 256.549072265625, - 570.0087280273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54298400878906, - 561.0076904296875, - 256.549072265625, - 570.0087280273438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "7.03 ", - "origin": [ - 254.0204620361328, - 527.1075439453125 - ], - "bbox": [ - 244.54345703125, - 509.1038513183594, - 256.5496520996094, - 527.1075439453125 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.0206756591797, - 509.1021423339844 - ], - "bbox": [ - 244.93067932128906, - 504.1610412597656, - 256.6577453613281, - 509.1021728515625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.33", - "origin": [ - 254.02073669433594, - 504.0018310546875 - ], - "bbox": [ - 244.54373168945312, - 485.9873352050781, - 256.5499267578125, - 504.0018615722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54345703125, - 485.9873352050781, - 256.6577453613281, - 527.1075439453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "12.22 ", - "origin": [ - 254.0211639404297, - 465.5988464355469 - ], - "bbox": [ - 244.54415893554688, - 443.0942687988281, - 256.5504150390625, - 465.598876953125 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.0214080810547, - 443.1015625 - ], - "bbox": [ - 244.93141174316406, - 438.16046142578125, - 256.6584777832031, - 443.1015930175781 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.31", - "origin": [ - 254.02146911621094, - 438.0012512207031 - ], - "bbox": [ - 244.54446411132812, - 419.98675537109375, - 256.5506591796875, - 438.00128173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54415893554688, - 419.98675537109375, - 256.6584777832031, - 465.598876953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–12.74 ", - "origin": [ - 254.02191162109375, - 398.0988464355469 - ], - "bbox": [ - 244.54490661621094, - 371.0933532714844, - 256.55120849609375, - 398.098876953125 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.022216796875, - 371.1015625 - ], - "bbox": [ - 244.93222045898438, - 366.16046142578125, - 256.6592712402344, - 371.1015930175781 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 2.12", - "origin": [ - 254.02227783203125, - 366.0012512207031 - ], - "bbox": [ - 244.54527282714844, - 347.9867858886719, - 256.5514831542969, - 366.00128173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54490661621094, - 347.9867858886719, - 256.6592712402344, - 398.098876953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "13.04 ", - "origin": [ - 254.022705078125, - 327.5982666015625 - ], - "bbox": [ - 244.5457000732422, - 305.0936584472656, - 256.55194091796875, - 327.5982971191406 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.02294921875, - 305.1009521484375 - ], - "bbox": [ - 244.93295288085938, - 300.15985107421875, - 256.6600036621094, - 305.1009826660156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.81", - "origin": [ - 254.02301025390625, - 300.0006408691406 - ], - "bbox": [ - 244.54600524902344, - 281.9861755371094, - 256.5522155761719, - 300.00067138671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.5457000732422, - 281.9861755371094, - 256.6600036621094, - 327.5982971191406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1.60 ", - "origin": [ - 254.02345275878906, - 260.0982666015625 - ], - "bbox": [ - 244.54644775390625, - 242.0945587158203, - 256.5526428222656, - 260.0982971191406 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.02365112304688, - 242.1009521484375 - ], - "bbox": [ - 244.93365478515625, - 237.15985107421875, - 256.66070556640625, - 242.10098266601562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.04", - "origin": [ - 254.02371215820312, - 237.00064086914062 - ], - "bbox": [ - 244.5467071533203, - 218.9861602783203, - 256.55291748046875, - 237.00067138671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54644775390625, - 218.9861602783203, - 256.66070556640625, - 260.0982971191406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.016 ", - "origin": [ - 254.02415466308594, - 197.0982666015625 - ], - "bbox": [ - 244.54714965820312, - 174.59364318847656, - 256.55340576171875, - 197.09829711914062 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.02439880371094, - 174.6009521484375 - ], - "bbox": [ - 244.9344024658203, - 169.65985107421875, - 256.6614685058594, - 174.60098266601562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.021", - "origin": [ - 254.0244598388672, - 169.50064086914062 - ], - "bbox": [ - 244.54745483398438, - 146.98524475097656, - 256.5537109375, - 169.50067138671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54714965820312, - 146.98524475097656, - 256.6614685058594, - 197.09829711914062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.027 ", - "origin": [ - 254.0249786376953, - 122.09674072265625 - ], - "bbox": [ - 244.5479736328125, - 99.59205627441406, - 256.5542297363281, - 122.09677124023438 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.02523803710938, - 99.600341796875 - ], - "bbox": [ - 244.93524169921875, - 94.65924072265625, - 256.66229248046875, - 99.60037231445312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.025", - "origin": [ - 254.02529907226562, - 94.50006103515625 - ], - "bbox": [ - 244.5482940673828, - 71.98121643066406, - 256.5545349121094, - 94.50009155273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.5479736328125, - 71.98121643066406, - 256.66229248046875, - 122.09677124023438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "controls down", - "origin": [ - 265.0599060058594, - 605.9998779296875 - ], - "bbox": [ - 255.58290100097656, - 550.0008544921875, - 267.5895690917969, - 605.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.58290100097656, - 550.0008544921875, - 267.5895690917969, - 605.9998779296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "6.89 ", - "origin": [ - 265.0608215332031, - 527.1014404296875 - ], - "bbox": [ - 255.5838165283203, - 509.09771728515625, - 267.5900573730469, - 527.1014404296875 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.06097412109375, - 509.099609375 - ], - "bbox": [ - 255.97097778320312, - 504.15850830078125, - 267.6980285644531, - 509.0996398925781 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.51", - "origin": [ - 265.06103515625, - 503.99932861328125 - ], - "bbox": [ - 255.5840301513672, - 485.9848327636719, - 267.59027099609375, - 503.9993591308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.5838165283203, - 485.9848327636719, - 267.6980285644531, - 527.1014404296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "12.81 ", - "origin": [ - 265.0614929199219, - 465.5963134765625 - ], - "bbox": [ - 255.58448791503906, - 443.0917053222656, - 267.5907897949219, - 465.5963439941406 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.06170654296875, - 443.0989990234375 - ], - "bbox": [ - 255.97171020507812, - 438.15789794921875, - 267.6987609863281, - 443.0990295410156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.29", - "origin": [ - 265.061767578125, - 437.99871826171875 - ], - "bbox": [ - 255.5847625732422, - 419.9842224121094, - 267.59100341796875, - 437.9987487792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.58448791503906, - 419.9842224121094, - 267.6987609863281, - 465.5963439941406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–11.87 ", - "origin": [ - 265.062255859375, - 398.0963134765625 - ], - "bbox": [ - 255.5852508544922, - 371.0908508300781, - 267.59161376953125, - 398.0963439941406 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.0625, - 371.0989990234375 - ], - "bbox": [ - 255.97250366210938, - 366.15789794921875, - 267.6995544433594, - 371.0990295410156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.10", - "origin": [ - 265.06256103515625, - 365.9986877441406 - ], - "bbox": [ - 255.58555603027344, - 347.9842224121094, - 267.591796875, - 365.99871826171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.5852508544922, - 347.9842224121094, - 267.6995544433594, - 398.0963439941406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "14.07 ", - "origin": [ - 265.0630187988281, - 327.595703125 - ], - "bbox": [ - 255.5860137939453, - 305.0910949707031, - 267.5923156738281, - 327.5957336425781 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.063232421875, - 305.098388671875 - ], - "bbox": [ - 255.97323608398438, - 300.15728759765625, - 267.7002868652344, - 305.0984191894531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.04", - "origin": [ - 265.06329345703125, - 299.9980773925781 - ], - "bbox": [ - 255.58628845214844, - 281.9836120605469, - 267.592529296875, - 299.99810791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.5860137939453, - 281.9836120605469, - 267.7002868652344, - 327.5957336425781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1.58 ", - "origin": [ - 265.06378173828125, - 260.095703125 - ], - "bbox": [ - 255.58677673339844, - 242.0919952392578, - 267.593017578125, - 260.0957336425781 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.0639343261719, - 242.098388671875 - ], - "bbox": [ - 255.97393798828125, - 237.15728759765625, - 267.70098876953125, - 242.09841918945312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.09", - "origin": [ - 265.0639953613281, - 236.99807739257812 - ], - "bbox": [ - 255.5869903564453, - 218.9835968017578, - 267.5932312011719, - 236.99810791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.58677673339844, - 218.9835968017578, - 267.70098876953125, - 260.0957336425781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.253 ", - "origin": [ - 265.0644836425781, - 197.095703125 - ], - "bbox": [ - 255.5874786376953, - 174.59107971191406, - 267.5937805175781, - 197.09573364257812 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.064697265625, - 174.598388671875 - ], - "bbox": [ - 255.97470092773438, - 169.65728759765625, - 267.7017517089844, - 174.59841918945312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.036", - "origin": [ - 265.06475830078125, - 169.49807739257812 - ], - "bbox": [ - 255.58775329589844, - 146.98268127441406, - 267.59405517578125, - 169.49810791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.5874786376953, - 146.98268127441406, - 267.7017517089844, - 197.09573364257812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.004 ", - "origin": [ - 265.0653381347656, - 122.09417724609375 - ], - "bbox": [ - 255.5883331298828, - 99.58949279785156, - 267.5946350097656, - 122.09420776367188 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.0655212402344, - 99.5977783203125 - ], - "bbox": [ - 255.97552490234375, - 94.65667724609375, - 267.70257568359375, - 99.59780883789062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.011", - "origin": [ - 265.0655822753906, - 94.49749755859375 - ], - "bbox": [ - 255.5885772705078, - 71.97865295410156, - 267.5948791503906, - 94.49752807617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.5883331298828, - 71.97865295410156, - 267.70257568359375, - 122.09420776367188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS", - "origin": [ - 276.0398864746094, - 605.997314453125 - ], - "bbox": [ - 266.5628967285156, - 588.9962158203125, - 278.5690612792969, - 605.997314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5628967285156, - 588.9962158203125, - 278.5690612792969, - 605.997314453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "up", - "origin": [ - 276.040283203125, - 569.9991455078125 - ], - "bbox": [ - 266.56329345703125, - 560.9990234375, - 278.56939697265625, - 569.9991455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.56329345703125, - 560.9990234375, - 278.56939697265625, - 569.9991455078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "9.80 ", - "origin": [ - 276.040771484375, - 527.0988159179688 - ], - "bbox": [ - 266.56378173828125, - 509.0987548828125, - 278.57000732421875, - 527.0988159179688 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.04095458984375, - 509.0970458984375 - ], - "bbox": [ - 266.9509582519531, - 504.15594482421875, - 278.6780090332031, - 509.0970764160156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.89", - "origin": [ - 276.041015625, - 503.99676513671875 - ], - "bbox": [ - 266.56402587890625, - 485.9822692871094, - 278.57025146484375, - 503.9967956542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.56378173828125, - 485.9822692871094, - 278.6780090332031, - 527.0988159179688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "11.10 ", - "origin": [ - 276.0414733886719, - 465.59375 - ], - "bbox": [ - 266.5644836425781, - 443.0891418457031, - 278.5707702636719, - 465.5937805175781 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.04168701171875, - 443.096435546875 - ], - "bbox": [ - 266.9516906738281, - 438.15533447265625, - 278.6787414550781, - 443.0964660644531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.32", - "origin": [ - 276.041748046875, - 437.99615478515625 - ], - "bbox": [ - 266.56475830078125, - 419.9816589355469, - 278.57098388671875, - 437.9961853027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5644836425781, - 419.9816589355469, - 278.6787414550781, - 465.5937805175781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–10.09 ", - "origin": [ - 276.042236328125, - 398.09375 - ], - "bbox": [ - 266.56524658203125, - 371.0882873535156, - 278.57159423828125, - 398.0937805175781 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.04248046875, - 371.096435546875 - ], - "bbox": [ - 266.9524841308594, - 366.15533447265625, - 278.6795349121094, - 371.0964660644531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.42", - "origin": [ - 276.04254150390625, - 365.9961242675781 - ], - "bbox": [ - 266.5655517578125, - 347.9816589355469, - 278.57177734375, - 365.99615478515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.56524658203125, - 347.9816589355469, - 278.6795349121094, - 398.0937805175781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "17.30 ", - "origin": [ - 276.0429992675781, - 327.5931396484375 - ], - "bbox": [ - 266.5660095214844, - 305.0885314941406, - 278.5722961425781, - 327.5931701660156 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.043212890625, - 305.0958251953125 - ], - "bbox": [ - 266.9532165527344, - 300.15472412109375, - 278.6802673339844, - 305.0958557128906 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 2.20", - "origin": [ - 276.04327392578125, - 299.9955139160156 - ], - "bbox": [ - 266.5662841796875, - 281.9810485839844, - 278.572509765625, - 299.99554443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5660095214844, - 281.9810485839844, - 278.6802673339844, - 327.5931701660156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2.19 ", - "origin": [ - 276.04376220703125, - 260.0931396484375 - ], - "bbox": [ - 266.5667724609375, - 242.0894317626953, - 278.572998046875, - 260.0931701660156 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.0439147949219, - 242.0958251953125 - ], - "bbox": [ - 266.95391845703125, - 237.15472412109375, - 278.68096923828125, - 242.09585571289062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.35", - "origin": [ - 276.0439758300781, - 236.99551391601562 - ], - "bbox": [ - 266.5669860839844, - 218.9810333251953, - 278.5732116699219, - 236.99554443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5667724609375, - 218.9810333251953, - 278.68096923828125, - 260.0931701660156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–0.001 ", - "origin": [ - 276.0444030761719, - 201.59310913085938 - ], - "bbox": [ - 266.5674133300781, - 174.5876007080078, - 278.5737609863281, - 201.5931396484375 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.044677734375, - 174.5958251953125 - ], - "bbox": [ - 266.9546813964844, - 169.65472412109375, - 278.6817321777344, - 174.59585571289062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.022", - "origin": [ - 276.04473876953125, - 169.49551391601562 - ], - "bbox": [ - 266.5677490234375, - 146.98011779785156, - 278.57403564453125, - 169.49554443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5674133300781, - 146.98011779785156, - 278.6817321777344, - 201.5931396484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.056 ", - "origin": [ - 276.0453186035156, - 122.09161376953125 - ], - "bbox": [ - 266.5683288574219, - 99.58692932128906, - 278.5746154785156, - 122.09164428710938 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.0455017089844, - 99.59521484375 - ], - "bbox": [ - 266.95550537109375, - 94.65411376953125, - 278.68255615234375, - 99.59524536132812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.057", - "origin": [ - 276.0455627441406, - 94.49493408203125 - ], - "bbox": [ - 266.5685729980469, - 71.97608947753906, - 278.5748596191406, - 94.49496459960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5683288574219, - 71.97608947753906, - 278.68255615234375, - 122.09164428710938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "patients", - "origin": [ - 287.0198669433594, - 605.9947509765625 - ], - "bbox": [ - 277.5428771972656, - 577.9893798828125, - 289.5491638183594, - 605.9947509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5428771972656, - 577.9893798828125, - 289.5491638183594, - 605.9947509765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "down", - "origin": [ - 287.020263671875, - 569.99658203125 - ], - "bbox": [ - 277.54327392578125, - 549.9957275390625, - 289.54949951171875, - 569.99658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.54327392578125, - 549.9957275390625, - 289.54949951171875, - 569.99658203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "10.48 ", - "origin": [ - 287.0207214355469, - 531.5963134765625 - ], - "bbox": [ - 277.5437316894531, - 509.0917053222656, - 289.5500183105469, - 531.5963134765625 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.02093505859375, - 509.094482421875 - ], - "bbox": [ - 277.9309387207031, - 504.15338134765625, - 289.6579895019531, - 509.0945129394531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.48", - "origin": [ - 287.02099609375, - 503.99420166015625 - ], - "bbox": [ - 277.54400634765625, - 485.9797058105469, - 289.55023193359375, - 503.9942321777344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5437316894531, - 485.9797058105469, - 289.6579895019531, - 531.5963134765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "9.85 ", - "origin": [ - 287.0215148925781, - 461.0911865234375 - ], - "bbox": [ - 277.5445251464844, - 443.0874938964844, - 289.5507507324219, - 461.0912170410156 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.02166748046875, - 443.0938720703125 - ], - "bbox": [ - 277.9316711425781, - 438.15277099609375, - 289.6587219238281, - 443.0939025878906 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.40", - "origin": [ - 287.021728515625, - 437.99359130859375 - ], - "bbox": [ - 277.54473876953125, - 419.9790954589844, - 289.55096435546875, - 437.9936218261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5445251464844, - 419.9790954589844, - 289.6587219238281, - 461.0912170410156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–9.95 ", - "origin": [ - 287.02227783203125, - 393.5911865234375 - ], - "bbox": [ - 277.5452880859375, - 371.0865783691406, - 289.55157470703125, - 393.5912170410156 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.0224609375, - 371.0938720703125 - ], - "bbox": [ - 277.9324645996094, - 366.15277099609375, - 289.6595153808594, - 371.0939025878906 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.83", - "origin": [ - 287.02252197265625, - 365.9935607910156 - ], - "bbox": [ - 277.5455322265625, - 347.9790954589844, - 289.5517578125, - 365.99359130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5452880859375, - 347.9790954589844, - 289.6595153808594, - 393.5912170410156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "21.24 ", - "origin": [ - 287.0229797363281, - 327.590576171875 - ], - "bbox": [ - 277.5459899902344, - 305.0859680175781, - 289.5522766113281, - 327.5906066894531 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.023193359375, - 305.09326171875 - ], - "bbox": [ - 277.9331970214844, - 300.15216064453125, - 289.6602478027344, - 305.0932922363281 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.93", - "origin": [ - 287.02325439453125, - 299.9929504394531 - ], - "bbox": [ - 277.5462646484375, - 281.9784851074219, - 289.552490234375, - 299.99298095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5459899902344, - 281.9784851074219, - 289.6602478027344, - 327.5906066894531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2.61 ", - "origin": [ - 287.02374267578125, - 260.090576171875 - ], - "bbox": [ - 277.5467529296875, - 242.0868682861328, - 289.552978515625, - 260.0906066894531 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.0238952636719, - 242.09326171875 - ], - "bbox": [ - 277.93389892578125, - 237.15216064453125, - 289.66094970703125, - 242.09329223632812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.17", - "origin": [ - 287.0239562988281, - 236.99295043945312 - ], - "bbox": [ - 277.5469665527344, - 218.9784698486328, - 289.5531921386719, - 236.99298095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5467529296875, - 218.9784698486328, - 289.66094970703125, - 260.0906066894531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.103 ", - "origin": [ - 287.0244445800781, - 197.090576171875 - ], - "bbox": [ - 277.5474548339844, - 174.58595275878906, - 289.5537414550781, - 197.09060668945312 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.024658203125, - 174.59326171875 - ], - "bbox": [ - 277.9346618652344, - 169.65216064453125, - 289.6617126464844, - 174.59329223632812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.043", - "origin": [ - 287.02471923828125, - 169.49295043945312 - ], - "bbox": [ - 277.5477294921875, - 146.97755432128906, - 289.55401611328125, - 169.49298095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5474548339844, - 146.97755432128906, - 289.6617126464844, - 197.09060668945312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–0.026 ", - "origin": [ - 287.0252380371094, - 126.58905029296875 - ], - "bbox": [ - 277.5482482910156, - 99.58345031738281, - 289.5545959472656, - 126.58908081054688 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.0254821777344, - 99.5926513671875 - ], - "bbox": [ - 277.93548583984375, - 94.65155029296875, - 289.66253662109375, - 99.59268188476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.016", - "origin": [ - 287.0255432128906, - 94.49237060546875 - ], - "bbox": [ - 277.5485534667969, - 71.97352600097656, - 289.5548400878906, - 94.49240112304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5482482910156, - 71.97352600097656, - 289.66253662109375, - 126.58908081054688 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 306.2198181152344, - 65.88880920410156, - 329.21221923828125, - 606.0042724609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Note.", - "origin": [ - 315.6986999511719, - 606.003173828125 - ], - "bbox": [ - 307.13970947265625, - 586.7520751953125, - 318.12890625, - 606.003173828125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " A positive time lag indicates that grip force onset or maximum lagged behind the onset or maximum of kinematic acceleration; a negative time lag", - "origin": [ - 315.69891357421875, - 586.7432250976562 - ], - "bbox": [ - 306.2198181152344, - 65.88880920410156, - 318.2333068847656, - 586.7432250976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 306.2198181152344, - 65.88880920410156, - 318.2333068847656, - 606.003173828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "indicates that the grip force rose or reached its maximum before the kinematic acceleration onset or maximum.", - "origin": [ - 326.6787109375, - 606.0042724609375 - ], - "bbox": [ - 317.20172119140625, - 206.8501739501953, - 329.21221923828125, - 606.0042724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 317.20172119140625, - 206.8501739501953, - 329.21221923828125, - 606.0042724609375 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 1, - "type": 0, - "bbox": [ - 97.27980041503906, - 77.67961120605469, - 132.4138946533203, - 606.0000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Table 2", - "origin": [ - 107.37870025634766, - 606.0 - ], - "bbox": [ - 97.98269653320312, - 576.2728881835938, - 110.44803619384766, - 606.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 97.98269653320312, - 576.2728881835938, - 110.44803619384766, - 606.0000610351562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Mean (", - "origin": [ - 107.37913513183594, - 567.1190795898438 - ], - "bbox": [ - 97.98313903808594, - 538.1812744140625, - 110.44845581054688, - 567.119140625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 107.37979888916016, - 538.0800170898438 - ], - "bbox": [ - 97.27980041503906, - 532.58984375, - 110.30990600585938, - 538.080078125 - ] - }, - { - "size": 9.0, - "flags": 22, - "font": "Times-BoldItalic", - "color": 2236191, - "ascender": 0.972000002861023, - "descender": -0.3240000009536743, - "text": "SD", - "origin": [ - 107.37979888916016, - 532.8599853515625 - ], - "bbox": [ - 98.63179779052734, - 521.2454223632812, - 110.2959213256836, - 532.8600463867188 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ") of Static Grip Force, Maximum (Max) and Minimum (Min) of Kinematic Acceleration, Maximum Grip", - "origin": [ - 107.37992858886719, - 521.1600341796875 - ], - "bbox": [ - 97.98393249511719, - 93.76982116699219, - 110.45368957519531, - 521.1600952148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 97.27980041503906, - 93.76982116699219, - 110.45368957519531, - 567.119140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Force, Ratio Between Grip and Load Forces, Time Lags Between Grip Force and Acceleration Onset and Time Lags Between", - "origin": [ - 118.35899353027344, - 605.99951171875 - ], - "bbox": [ - 108.96299743652344, - 93.91288757324219, - 121.43370056152344, - 605.9995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 108.96299743652344, - 93.91288757324219, - 121.43370056152344, - 605.9995727539062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Maximum Grip Force and Maximum Acceleration During Vertical Point-to-Point Movements Performed By Healthy Controls and", - "origin": [ - 129.33900451660156, - 605.9996337890625 - ], - "bbox": [ - 119.94300842285156, - 77.67961120605469, - 132.4138946533203, - 605.9996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 119.94300842285156, - 77.67961120605469, - 132.4138946533203, - 605.9996948242188 - ] - } - ], - "tag": "rotate" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 130.98269653320312, - 552.9481201171875, - 143.4482879638672, - 606.0005493164062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "ALS Patients", - "origin": [ - 140.37869262695312, - 606.00048828125 - ], - "bbox": [ - 130.98269653320312, - 552.9481201171875, - 143.4482879638672, - 606.0005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 130.98269653320312, - 552.9481201171875, - 143.4482879638672, - 606.0005493164062 - ] - } - ], - "tag": "rotate" - }, - { - "number": 3, - "type": 0, - "bbox": [ - 160.2470245361328, - 72.74006652832031, - 216.23374938964844, - 528.0018920898438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Time lag", - "origin": [ - 169.72402954101562, - 126.0010986328125 - ], - "bbox": [ - 160.2470245361328, - 93.74226379394531, - 172.25340270996094, - 126.00112915039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 160.2470245361328, - 93.74226379394531, - 172.25340270996094, - 126.00112915039062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Time lag", - "origin": [ - 180.70323181152344, - 198.001220703125 - ], - "bbox": [ - 171.22622680664062, - 165.7361602783203, - 183.23260498046875, - 198.00125122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 171.22622680664062, - 165.7361602783203, - 183.23260498046875, - 198.00125122070312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "between", - "origin": [ - 180.70404052734375, - 125.9940185546875 - ], - "bbox": [ - 171.22703552246094, - 96.00050354003906, - 183.23338317871094, - 125.99404907226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 171.22703552246094, - 96.00050354003906, - 183.23338317871094, - 125.99404907226562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Ratio of max", - "origin": [ - 191.68252563476562, - 261.0013427734375 - ], - "bbox": [ - 182.2055206298828, - 213.98341369628906, - 194.21205139160156, - 261.0013732910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 182.2055206298828, - 213.98341369628906, - 194.21205139160156, - 261.0013732910156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "between grip", - "origin": [ - 191.6832275390625, - 197.99142456054688 - ], - "bbox": [ - 182.2062225341797, - 151.24440002441406, - 194.21275329589844, - 197.991455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 182.2062225341797, - 151.24440002441406, - 194.21275329589844, - 197.991455078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "maximum grip", - "origin": [ - 191.68402099609375, - 126.00311279296875 - ], - "bbox": [ - 182.20701599121094, - 72.74006652832031, - 194.21360778808594, - 126.00314331054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 182.20701599121094, - 72.74006652832031, - 194.21360778808594, - 126.00314331054688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max", - "origin": [ - 202.72055053710938, - 465.00177001953125 - ], - "bbox": [ - 193.24354553222656, - 448.5046691894531, - 205.24974060058594, - 465.0018005371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 193.24354553222656, - 448.5046691894531, - 205.24974060058594, - 465.0018005371094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Min", - "origin": [ - 202.72128295898438, - 399.0065612792969 - ], - "bbox": [ - 193.24427795410156, - 384.0034484863281, - 205.25045776367188, - 399.006591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 193.24427795410156, - 384.0034484863281, - 205.25045776367188, - 399.006591796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grip force to", - "origin": [ - 202.7228240966797, - 261.0050354003906 - ], - "bbox": [ - 193.24581909179688, - 216.5538787841797, - 205.2523193359375, - 261.00506591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 193.24581909179688, - 216.5538787841797, - 205.2523193359375, - 261.00506591796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force and", - "origin": [ - 202.7235107421875, - 198.014892578125 - ], - "bbox": [ - 193.2465057373047, - 164.30076599121094, - 205.2528839111328, - 198.01492309570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 193.2465057373047, - 164.30076599121094, - 205.2528839111328, - 198.01492309570312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force and", - "origin": [ - 202.72430419921875, - 126.0076904296875 - ], - "bbox": [ - 193.24729919433594, - 92.29365539550781, - 205.25367736816406, - 126.00772094726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 193.24729919433594, - 92.29365539550781, - 205.25367736816406, - 126.00772094726562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Static grip", - "origin": [ - 213.69984436035156, - 528.0018920898438 - ], - "bbox": [ - 204.22283935546875, - 490.7489929199219, - 216.22927856445312, - 528.0018920898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.22283935546875, - 490.7489929199219, - 216.22927856445312, - 528.0018920898438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "acceleration", - "origin": [ - 213.7005615234375, - 465.00909423828125 - ], - "bbox": [ - 204.2235565185547, - 421.5398864746094, - 216.2300567626953, - 465.0091247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.2235565185547, - 421.5398864746094, - 216.2300567626953, - 465.0091247558594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "accerlation", - "origin": [ - 213.7012939453125, - 399.00311279296875 - ], - "bbox": [ - 204.2242889404297, - 359.529052734375, - 216.23074340820312, - 399.0031433105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.2242889404297, - 359.529052734375, - 216.23074340820312, - 399.0031433105469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max grip", - "origin": [ - 213.7021026611328, - 326.9914245605469 - ], - "bbox": [ - 204.22509765625, - 293.7408142089844, - 216.23147583007812, - 326.991455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.22509765625, - 293.7408142089844, - 216.23147583007812, - 326.991455078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "max load", - "origin": [ - 213.7028350830078, - 260.99530029296875 - ], - "bbox": [ - 204.225830078125, - 227.7446746826172, - 216.23220825195312, - 260.9953308105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.225830078125, - 227.7446746826172, - 216.23220825195312, - 260.9953308105469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "acceleration", - "origin": [ - 213.7035369873047, - 197.999755859375 - ], - "bbox": [ - 204.22653198242188, - 154.53062438964844, - 216.2330322265625, - 197.99978637695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.22653198242188, - 154.53062438964844, - 216.2330322265625, - 197.99978637695312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "maximum", - "origin": [ - 213.704345703125, - 125.994384765625 - ], - "bbox": [ - 204.2273406982422, - 89.49569702148438, - 216.23374938964844, - 125.99441528320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 204.2273406982422, - 89.49569702148438, - 216.23374938964844, - 125.99441528320312 - ] - } - ], - "tag": "rotate" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 215.20169067382812, - 70.77828216552734, - 227.2145538330078, - 606.0018310546875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Subject", - "origin": [ - 224.67869567871094, - 606.0018310546875 - ], - "bbox": [ - 215.20169067382812, - 578.9962768554688, - 227.2080078125, - 606.0018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.20169067382812, - 578.9962768554688, - 227.2080078125, - 606.0018310546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Direction", - "origin": [ - 224.67910766601562, - 570.0018310546875 - ], - "bbox": [ - 215.2021026611328, - 536.00146484375, - 227.20849609375, - 570.0018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.2021026611328, - 536.00146484375, - 227.20849609375, - 570.0018310546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force (N)", - "origin": [ - 224.67958068847656, - 528.010498046875 - ], - "bbox": [ - 215.20257568359375, - 494.79229736328125, - 227.20895385742188, - 528.010498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.20257568359375, - 494.79229736328125, - 227.20895385742188, - 528.010498046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(m/s", - "origin": [ - 224.68028259277344, - 465.0032958984375 - ], - "bbox": [ - 215.20327758789062, - 448.9985046386719, - 227.20947265625, - 465.0033264160156 - ] - }, - { - "size": 5.199999809265137, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 221.6811065673828, - 448.9818115234375 - ], - "bbox": [ - 216.20550537109375, - 446.3817138671875, - 223.14234924316406, - 448.9818420410156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ")", - "origin": [ - 224.6811065673828, - 446.40179443359375 - ], - "bbox": [ - 215.2041015625, - 443.4046936035156, - 227.21014404296875, - 446.4018249511719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.20327758789062, - 443.4046936035156, - 227.21014404296875, - 465.0033264160156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(m/s", - "origin": [ - 224.681640625, - 399.0014953613281 - ], - "bbox": [ - 215.2046356201172, - 382.9939880371094, - 227.21083068847656, - 399.00152587890625 - ] - }, - { - "size": 5.199999809265137, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 221.68209838867188, - 382.9818115234375 - ], - "bbox": [ - 216.2064971923828, - 380.3817138671875, - 223.14334106445312, - 382.9818420410156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ")", - "origin": [ - 224.68209838867188, - 380.40179443359375 - ], - "bbox": [ - 215.20509338378906, - 377.4046936035156, - 227.2111358642578, - 380.4018249511719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.2046356201172, - 377.4046936035156, - 227.2111358642578, - 399.00152587890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force (N)", - "origin": [ - 224.6826934814453, - 327.0021057128906 - ], - "bbox": [ - 215.2056884765625, - 293.77764892578125, - 227.21206665039062, - 327.00213623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.2056884765625, - 293.77764892578125, - 227.21206665039062, - 327.00213623046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force", - "origin": [ - 224.6834259033203, - 260.988037109375 - ], - "bbox": [ - 215.2064208984375, - 242.4983673095703, - 227.21263122558594, - 260.9880676269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.2064208984375, - 242.4983673095703, - 227.21263122558594, - 260.9880676269531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "onset", - "origin": [ - 224.68411254882812, - 198.00518798828125 - ], - "bbox": [ - 215.2071075439453, - 179.00247192382812, - 227.2133331298828, - 198.00521850585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.2071075439453, - 179.00247192382812, - 227.2133331298828, - 198.00521850585938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "acceleration (s)", - "origin": [ - 224.68492126464844, - 126.00518798828125 - ], - "bbox": [ - 215.20791625976562, - 70.77828216552734, - 227.2145538330078, - 126.00521850585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 215.20791625976562, - 70.77828216552734, - 227.2145538330078, - 126.00521850585938 - ] - } - ], - "tag": "rotate" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 244.54258728027344, - 71.97352600097656, - 289.66253662109375, - 606.00244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Healthy", - "origin": [ - 254.01959228515625, - 606.00244140625 - ], - "bbox": [ - 244.54258728027344, - 577.5029296875, - 256.5489196777344, - 606.00244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54258728027344, - 577.5029296875, - 256.5489196777344, - 606.00244140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "up", - "origin": [ - 254.01998901367188, - 570.0087280273438 - ], - "bbox": [ - 244.54298400878906, - 561.0076904296875, - 256.549072265625, - 570.0087280273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54298400878906, - 561.0076904296875, - 256.549072265625, - 570.0087280273438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "7.03 ", - "origin": [ - 254.0204620361328, - 527.1075439453125 - ], - "bbox": [ - 244.54345703125, - 509.1038513183594, - 256.5496520996094, - 527.1075439453125 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.0206756591797, - 509.1021423339844 - ], - "bbox": [ - 244.93067932128906, - 504.1610412597656, - 256.6577453613281, - 509.1021728515625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.33", - "origin": [ - 254.02073669433594, - 504.0018310546875 - ], - "bbox": [ - 244.54373168945312, - 485.9873352050781, - 256.5499267578125, - 504.0018615722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54345703125, - 485.9873352050781, - 256.6577453613281, - 527.1075439453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "12.22 ", - "origin": [ - 254.0211639404297, - 465.5988464355469 - ], - "bbox": [ - 244.54415893554688, - 443.0942687988281, - 256.5504150390625, - 465.598876953125 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.0214080810547, - 443.1015625 - ], - "bbox": [ - 244.93141174316406, - 438.16046142578125, - 256.6584777832031, - 443.1015930175781 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.31", - "origin": [ - 254.02146911621094, - 438.0012512207031 - ], - "bbox": [ - 244.54446411132812, - 419.98675537109375, - 256.5506591796875, - 438.00128173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54415893554688, - 419.98675537109375, - 256.6584777832031, - 465.598876953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–12.74 ", - "origin": [ - 254.02191162109375, - 398.0988464355469 - ], - "bbox": [ - 244.54490661621094, - 371.0933532714844, - 256.55120849609375, - 398.098876953125 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.022216796875, - 371.1015625 - ], - "bbox": [ - 244.93222045898438, - 366.16046142578125, - 256.6592712402344, - 371.1015930175781 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 2.12", - "origin": [ - 254.02227783203125, - 366.0012512207031 - ], - "bbox": [ - 244.54527282714844, - 347.9867858886719, - 256.5514831542969, - 366.00128173828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54490661621094, - 347.9867858886719, - 256.6592712402344, - 398.098876953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "13.04 ", - "origin": [ - 254.022705078125, - 327.5982666015625 - ], - "bbox": [ - 244.5457000732422, - 305.0936584472656, - 256.55194091796875, - 327.5982971191406 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.02294921875, - 305.1009521484375 - ], - "bbox": [ - 244.93295288085938, - 300.15985107421875, - 256.6600036621094, - 305.1009826660156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.81", - "origin": [ - 254.02301025390625, - 300.0006408691406 - ], - "bbox": [ - 244.54600524902344, - 281.9861755371094, - 256.5522155761719, - 300.00067138671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.5457000732422, - 281.9861755371094, - 256.6600036621094, - 327.5982971191406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1.60 ", - "origin": [ - 254.02345275878906, - 260.0982666015625 - ], - "bbox": [ - 244.54644775390625, - 242.0945587158203, - 256.5526428222656, - 260.0982971191406 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.02365112304688, - 242.1009521484375 - ], - "bbox": [ - 244.93365478515625, - 237.15985107421875, - 256.66070556640625, - 242.10098266601562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.04", - "origin": [ - 254.02371215820312, - 237.00064086914062 - ], - "bbox": [ - 244.5467071533203, - 218.9861602783203, - 256.55291748046875, - 237.00067138671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54644775390625, - 218.9861602783203, - 256.66070556640625, - 260.0982971191406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.016 ", - "origin": [ - 254.02415466308594, - 197.0982666015625 - ], - "bbox": [ - 244.54714965820312, - 174.59364318847656, - 256.55340576171875, - 197.09829711914062 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.02439880371094, - 174.6009521484375 - ], - "bbox": [ - 244.9344024658203, - 169.65985107421875, - 256.6614685058594, - 174.60098266601562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.021", - "origin": [ - 254.0244598388672, - 169.50064086914062 - ], - "bbox": [ - 244.54745483398438, - 146.98524475097656, - 256.5537109375, - 169.50067138671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.54714965820312, - 146.98524475097656, - 256.6614685058594, - 197.09829711914062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.027 ", - "origin": [ - 254.0249786376953, - 122.09674072265625 - ], - "bbox": [ - 244.5479736328125, - 99.59205627441406, - 256.5542297363281, - 122.09677124023438 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 254.02523803710938, - 99.600341796875 - ], - "bbox": [ - 244.93524169921875, - 94.65924072265625, - 256.66229248046875, - 99.60037231445312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.025", - "origin": [ - 254.02529907226562, - 94.50006103515625 - ], - "bbox": [ - 244.5482940673828, - 71.98121643066406, - 256.5545349121094, - 94.50009155273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 244.5479736328125, - 71.98121643066406, - 256.66229248046875, - 122.09677124023438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "controls down", - "origin": [ - 265.0599060058594, - 605.9998779296875 - ], - "bbox": [ - 255.58290100097656, - 550.0008544921875, - 267.5895690917969, - 605.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.58290100097656, - 550.0008544921875, - 267.5895690917969, - 605.9998779296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "6.89 ", - "origin": [ - 265.0608215332031, - 527.1014404296875 - ], - "bbox": [ - 255.5838165283203, - 509.09771728515625, - 267.5900573730469, - 527.1014404296875 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.06097412109375, - 509.099609375 - ], - "bbox": [ - 255.97097778320312, - 504.15850830078125, - 267.6980285644531, - 509.0996398925781 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.51", - "origin": [ - 265.06103515625, - 503.99932861328125 - ], - "bbox": [ - 255.5840301513672, - 485.9848327636719, - 267.59027099609375, - 503.9993591308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.5838165283203, - 485.9848327636719, - 267.6980285644531, - 527.1014404296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "12.81 ", - "origin": [ - 265.0614929199219, - 465.5963134765625 - ], - "bbox": [ - 255.58448791503906, - 443.0917053222656, - 267.5907897949219, - 465.5963439941406 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.06170654296875, - 443.0989990234375 - ], - "bbox": [ - 255.97171020507812, - 438.15789794921875, - 267.6987609863281, - 443.0990295410156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.29", - "origin": [ - 265.061767578125, - 437.99871826171875 - ], - "bbox": [ - 255.5847625732422, - 419.9842224121094, - 267.59100341796875, - 437.9987487792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.58448791503906, - 419.9842224121094, - 267.6987609863281, - 465.5963439941406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–11.87 ", - "origin": [ - 265.062255859375, - 398.0963134765625 - ], - "bbox": [ - 255.5852508544922, - 371.0908508300781, - 267.59161376953125, - 398.0963439941406 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.0625, - 371.0989990234375 - ], - "bbox": [ - 255.97250366210938, - 366.15789794921875, - 267.6995544433594, - 371.0990295410156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.10", - "origin": [ - 265.06256103515625, - 365.9986877441406 - ], - "bbox": [ - 255.58555603027344, - 347.9842224121094, - 267.591796875, - 365.99871826171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.5852508544922, - 347.9842224121094, - 267.6995544433594, - 398.0963439941406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "14.07 ", - "origin": [ - 265.0630187988281, - 327.595703125 - ], - "bbox": [ - 255.5860137939453, - 305.0910949707031, - 267.5923156738281, - 327.5957336425781 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.063232421875, - 305.098388671875 - ], - "bbox": [ - 255.97323608398438, - 300.15728759765625, - 267.7002868652344, - 305.0984191894531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.04", - "origin": [ - 265.06329345703125, - 299.9980773925781 - ], - "bbox": [ - 255.58628845214844, - 281.9836120605469, - 267.592529296875, - 299.99810791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.5860137939453, - 281.9836120605469, - 267.7002868652344, - 327.5957336425781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1.58 ", - "origin": [ - 265.06378173828125, - 260.095703125 - ], - "bbox": [ - 255.58677673339844, - 242.0919952392578, - 267.593017578125, - 260.0957336425781 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.0639343261719, - 242.098388671875 - ], - "bbox": [ - 255.97393798828125, - 237.15728759765625, - 267.70098876953125, - 242.09841918945312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.09", - "origin": [ - 265.0639953613281, - 236.99807739257812 - ], - "bbox": [ - 255.5869903564453, - 218.9835968017578, - 267.5932312011719, - 236.99810791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.58677673339844, - 218.9835968017578, - 267.70098876953125, - 260.0957336425781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.253 ", - "origin": [ - 265.0644836425781, - 197.095703125 - ], - "bbox": [ - 255.5874786376953, - 174.59107971191406, - 267.5937805175781, - 197.09573364257812 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.064697265625, - 174.598388671875 - ], - "bbox": [ - 255.97470092773438, - 169.65728759765625, - 267.7017517089844, - 174.59841918945312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.036", - "origin": [ - 265.06475830078125, - 169.49807739257812 - ], - "bbox": [ - 255.58775329589844, - 146.98268127441406, - 267.59405517578125, - 169.49810791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.5874786376953, - 146.98268127441406, - 267.7017517089844, - 197.09573364257812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.004 ", - "origin": [ - 265.0653381347656, - 122.09417724609375 - ], - "bbox": [ - 255.5883331298828, - 99.58949279785156, - 267.5946350097656, - 122.09420776367188 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 265.0655212402344, - 99.5977783203125 - ], - "bbox": [ - 255.97552490234375, - 94.65667724609375, - 267.70257568359375, - 99.59780883789062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.011", - "origin": [ - 265.0655822753906, - 94.49749755859375 - ], - "bbox": [ - 255.5885772705078, - 71.97865295410156, - 267.5948791503906, - 94.49752807617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 255.5883331298828, - 71.97865295410156, - 267.70257568359375, - 122.09420776367188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS", - "origin": [ - 276.0398864746094, - 605.997314453125 - ], - "bbox": [ - 266.5628967285156, - 588.9962158203125, - 278.5690612792969, - 605.997314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5628967285156, - 588.9962158203125, - 278.5690612792969, - 605.997314453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "up", - "origin": [ - 276.040283203125, - 569.9991455078125 - ], - "bbox": [ - 266.56329345703125, - 560.9990234375, - 278.56939697265625, - 569.9991455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.56329345703125, - 560.9990234375, - 278.56939697265625, - 569.9991455078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "9.80 ", - "origin": [ - 276.040771484375, - 527.0988159179688 - ], - "bbox": [ - 266.56378173828125, - 509.0987548828125, - 278.57000732421875, - 527.0988159179688 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.04095458984375, - 509.0970458984375 - ], - "bbox": [ - 266.9509582519531, - 504.15594482421875, - 278.6780090332031, - 509.0970764160156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.89", - "origin": [ - 276.041015625, - 503.99676513671875 - ], - "bbox": [ - 266.56402587890625, - 485.9822692871094, - 278.57025146484375, - 503.9967956542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.56378173828125, - 485.9822692871094, - 278.6780090332031, - 527.0988159179688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "11.10 ", - "origin": [ - 276.0414733886719, - 465.59375 - ], - "bbox": [ - 266.5644836425781, - 443.0891418457031, - 278.5707702636719, - 465.5937805175781 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.04168701171875, - 443.096435546875 - ], - "bbox": [ - 266.9516906738281, - 438.15533447265625, - 278.6787414550781, - 443.0964660644531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.32", - "origin": [ - 276.041748046875, - 437.99615478515625 - ], - "bbox": [ - 266.56475830078125, - 419.9816589355469, - 278.57098388671875, - 437.9961853027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5644836425781, - 419.9816589355469, - 278.6787414550781, - 465.5937805175781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–10.09 ", - "origin": [ - 276.042236328125, - 398.09375 - ], - "bbox": [ - 266.56524658203125, - 371.0882873535156, - 278.57159423828125, - 398.0937805175781 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.04248046875, - 371.096435546875 - ], - "bbox": [ - 266.9524841308594, - 366.15533447265625, - 278.6795349121094, - 371.0964660644531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.42", - "origin": [ - 276.04254150390625, - 365.9961242675781 - ], - "bbox": [ - 266.5655517578125, - 347.9816589355469, - 278.57177734375, - 365.99615478515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.56524658203125, - 347.9816589355469, - 278.6795349121094, - 398.0937805175781 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "17.30 ", - "origin": [ - 276.0429992675781, - 327.5931396484375 - ], - "bbox": [ - 266.5660095214844, - 305.0885314941406, - 278.5722961425781, - 327.5931701660156 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.043212890625, - 305.0958251953125 - ], - "bbox": [ - 266.9532165527344, - 300.15472412109375, - 278.6802673339844, - 305.0958557128906 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 2.20", - "origin": [ - 276.04327392578125, - 299.9955139160156 - ], - "bbox": [ - 266.5662841796875, - 281.9810485839844, - 278.572509765625, - 299.99554443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5660095214844, - 281.9810485839844, - 278.6802673339844, - 327.5931701660156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2.19 ", - "origin": [ - 276.04376220703125, - 260.0931396484375 - ], - "bbox": [ - 266.5667724609375, - 242.0894317626953, - 278.572998046875, - 260.0931701660156 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.0439147949219, - 242.0958251953125 - ], - "bbox": [ - 266.95391845703125, - 237.15472412109375, - 278.68096923828125, - 242.09585571289062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.35", - "origin": [ - 276.0439758300781, - 236.99551391601562 - ], - "bbox": [ - 266.5669860839844, - 218.9810333251953, - 278.5732116699219, - 236.99554443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5667724609375, - 218.9810333251953, - 278.68096923828125, - 260.0931701660156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–0.001 ", - "origin": [ - 276.0444030761719, - 201.59310913085938 - ], - "bbox": [ - 266.5674133300781, - 174.5876007080078, - 278.5737609863281, - 201.5931396484375 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.044677734375, - 174.5958251953125 - ], - "bbox": [ - 266.9546813964844, - 169.65472412109375, - 278.6817321777344, - 174.59585571289062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.022", - "origin": [ - 276.04473876953125, - 169.49551391601562 - ], - "bbox": [ - 266.5677490234375, - 146.98011779785156, - 278.57403564453125, - 169.49554443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5674133300781, - 146.98011779785156, - 278.6817321777344, - 201.5931396484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.056 ", - "origin": [ - 276.0453186035156, - 122.09161376953125 - ], - "bbox": [ - 266.5683288574219, - 99.58692932128906, - 278.5746154785156, - 122.09164428710938 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 276.0455017089844, - 99.59521484375 - ], - "bbox": [ - 266.95550537109375, - 94.65411376953125, - 278.68255615234375, - 99.59524536132812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.057", - "origin": [ - 276.0455627441406, - 94.49493408203125 - ], - "bbox": [ - 266.5685729980469, - 71.97608947753906, - 278.5748596191406, - 94.49496459960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 266.5683288574219, - 71.97608947753906, - 278.68255615234375, - 122.09164428710938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "patients", - "origin": [ - 287.0198669433594, - 605.9947509765625 - ], - "bbox": [ - 277.5428771972656, - 577.9893798828125, - 289.5491638183594, - 605.9947509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5428771972656, - 577.9893798828125, - 289.5491638183594, - 605.9947509765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "down", - "origin": [ - 287.020263671875, - 569.99658203125 - ], - "bbox": [ - 277.54327392578125, - 549.9957275390625, - 289.54949951171875, - 569.99658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.54327392578125, - 549.9957275390625, - 289.54949951171875, - 569.99658203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "10.48 ", - "origin": [ - 287.0207214355469, - 531.5963134765625 - ], - "bbox": [ - 277.5437316894531, - 509.0917053222656, - 289.5500183105469, - 531.5963134765625 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.02093505859375, - 509.094482421875 - ], - "bbox": [ - 277.9309387207031, - 504.15338134765625, - 289.6579895019531, - 509.0945129394531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.48", - "origin": [ - 287.02099609375, - 503.99420166015625 - ], - "bbox": [ - 277.54400634765625, - 485.9797058105469, - 289.55023193359375, - 503.9942321777344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5437316894531, - 485.9797058105469, - 289.6579895019531, - 531.5963134765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "9.85 ", - "origin": [ - 287.0215148925781, - 461.0911865234375 - ], - "bbox": [ - 277.5445251464844, - 443.0874938964844, - 289.5507507324219, - 461.0912170410156 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.02166748046875, - 443.0938720703125 - ], - "bbox": [ - 277.9316711425781, - 438.15277099609375, - 289.6587219238281, - 443.0939025878906 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.40", - "origin": [ - 287.021728515625, - 437.99359130859375 - ], - "bbox": [ - 277.54473876953125, - 419.9790954589844, - 289.55096435546875, - 437.9936218261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5445251464844, - 419.9790954589844, - 289.6587219238281, - 461.0912170410156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–9.95 ", - "origin": [ - 287.02227783203125, - 393.5911865234375 - ], - "bbox": [ - 277.5452880859375, - 371.0865783691406, - 289.55157470703125, - 393.5912170410156 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.0224609375, - 371.0938720703125 - ], - "bbox": [ - 277.9324645996094, - 366.15277099609375, - 289.6595153808594, - 371.0939025878906 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.83", - "origin": [ - 287.02252197265625, - 365.9935607910156 - ], - "bbox": [ - 277.5455322265625, - 347.9790954589844, - 289.5517578125, - 365.99359130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5452880859375, - 347.9790954589844, - 289.6595153808594, - 393.5912170410156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "21.24 ", - "origin": [ - 287.0229797363281, - 327.590576171875 - ], - "bbox": [ - 277.5459899902344, - 305.0859680175781, - 289.5522766113281, - 327.5906066894531 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.023193359375, - 305.09326171875 - ], - "bbox": [ - 277.9331970214844, - 300.15216064453125, - 289.6602478027344, - 305.0932922363281 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 1.93", - "origin": [ - 287.02325439453125, - 299.9929504394531 - ], - "bbox": [ - 277.5462646484375, - 281.9784851074219, - 289.552490234375, - 299.99298095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5459899902344, - 281.9784851074219, - 289.6602478027344, - 327.5906066894531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2.61 ", - "origin": [ - 287.02374267578125, - 260.090576171875 - ], - "bbox": [ - 277.5467529296875, - 242.0868682861328, - 289.552978515625, - 260.0906066894531 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.0238952636719, - 242.09326171875 - ], - "bbox": [ - 277.93389892578125, - 237.15216064453125, - 289.66094970703125, - 242.09329223632812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.17", - "origin": [ - 287.0239562988281, - 236.99295043945312 - ], - "bbox": [ - 277.5469665527344, - 218.9784698486328, - 289.5531921386719, - 236.99298095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5467529296875, - 218.9784698486328, - 289.66094970703125, - 260.0906066894531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "0.103 ", - "origin": [ - 287.0244445800781, - 197.090576171875 - ], - "bbox": [ - 277.5474548339844, - 174.58595275878906, - 289.5537414550781, - 197.09060668945312 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.024658203125, - 174.59326171875 - ], - "bbox": [ - 277.9346618652344, - 169.65216064453125, - 289.6617126464844, - 174.59329223632812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.043", - "origin": [ - 287.02471923828125, - 169.49295043945312 - ], - "bbox": [ - 277.5477294921875, - 146.97755432128906, - 289.55401611328125, - 169.49298095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5474548339844, - 146.97755432128906, - 289.6617126464844, - 197.09060668945312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "–0.026 ", - "origin": [ - 287.0252380371094, - 126.58905029296875 - ], - "bbox": [ - 277.5482482910156, - 99.58345031738281, - 289.5545959472656, - 126.58908081054688 - ] - }, - { - "size": 9.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "±", - "origin": [ - 287.0254821777344, - 99.5926513671875 - ], - "bbox": [ - 277.93548583984375, - 94.65155029296875, - 289.66253662109375, - 99.59268188476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " 0.016", - "origin": [ - 287.0255432128906, - 94.49237060546875 - ], - "bbox": [ - 277.5485534667969, - 71.97352600097656, - 289.5548400878906, - 94.49240112304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 277.5482482910156, - 71.97352600097656, - 289.66253662109375, - 126.58908081054688 - ] - } - ], - "tag": "rotate" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 306.2198181152344, - 65.88880920410156, - 329.21221923828125, - 606.0042724609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Note.", - "origin": [ - 315.6986999511719, - 606.003173828125 - ], - "bbox": [ - 307.13970947265625, - 586.7520751953125, - 318.12890625, - 606.003173828125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " A positive time lag indicates that grip force onset or maximum lagged behind the onset or maximum of kinematic acceleration; a negative time lag", - "origin": [ - 315.69891357421875, - 586.7432250976562 - ], - "bbox": [ - 306.2198181152344, - 65.88880920410156, - 318.2333068847656, - 586.7432250976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 306.2198181152344, - 65.88880920410156, - 318.2333068847656, - 606.003173828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "indicates that the grip force rose or reached its maximum before the kinematic acceleration onset or maximum.", - "origin": [ - 326.6787109375, - 606.0042724609375 - ], - "bbox": [ - 317.20172119140625, - 206.8501739501953, - 329.21221923828125, - 606.0042724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.1111111234640703e-05, - -1.0 - ], - "bbox": [ - 317.20172119140625, - 206.8501739501953, - 329.21221923828125, - 606.0042724609375 - ] - } - ], - "tag": "rotate" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 9, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_10": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 442.2900085449219, - 378.1050109863281, - 609.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "profiles can be inferred from the acceleration and grip force curves exemplary", - "origin": [ - 54.0, - 452.82000732421875 - ], - "bbox": [ - 54.0, - 442.2900085449219, - 378.0199890136719, - 455.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 442.2900085449219, - 378.0199890136719, - 455.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "illustrated for patient E.E. and the age-matched control subject in Figure 2. The", - "origin": [ - 54.0, - 463.8599853515625 - ], - "bbox": [ - 54.0, - 453.3299865722656, - 378.0289306640625, - 466.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 453.3299865722656, - 378.0289306640625, - 466.66998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "remaining two patients (A.K. and G.A.) regulated their grip force profile very similar", - "origin": [ - 54.0, - 474.8399963378906 - ], - "bbox": [ - 54.0, - 464.30999755859375, - 378.011962890625, - 477.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 464.30999755859375, - 378.011962890625, - 477.6499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to the controls, resulting in significantly larger time lags for downward when com-", - "origin": [ - 54.0, - 485.82000732421875 - ], - "bbox": [ - 54.0, - 475.2900085449219, - 378.0790100097656, - 488.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 475.2900085449219, - 378.0790100097656, - 488.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pared to upward movements (", - "origin": [ - 54.0, - 496.8599853515625 - ], - "bbox": [ - 54.0, - 486.3299865722656, - 170.82801818847656, - 499.66998291015625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 170.82000732421875, - 496.8599853515625 - ], - "bbox": [ - 170.82000732421875, - 487.3499755859375, - 175.82000732421875, - 499.55999755859375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 175.8000030517578, - 496.8599853515625 - ], - "bbox": [ - 175.8000030517578, - 486.3299865722656, - 178.3000030517578, - 499.66998291015625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "≤", - "origin": [ - 177.72000122070312, - 496.8599853515625 - ], - "bbox": [ - 177.72000122070312, - 486.7599792480469, - 183.2100067138672, - 499.78997802734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " .001). For the whole group of ALS patients, there", - "origin": [ - 183.1800079345703, - 496.8599853515625 - ], - "bbox": [ - 183.1800079345703, - 486.3299865722656, - 378.0649719238281, - 499.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 486.3299865722656, - 378.0649719238281, - 499.78997802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was no significant difference in the time lags between grip force onset and accel-", - "origin": [ - 54.00001525878906, - 507.8399658203125 - ], - "bbox": [ - 54.00001525878906, - 497.3099670410156, - 378.1050109863281, - 510.64996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 497.3099670410156, - 378.1050109863281, - 510.64996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "eration onset for upward and downward movements (", - "origin": [ - 54.00001525878906, - 518.8199462890625 - ], - "bbox": [ - 54.00001525878906, - 508.2899475097656, - 275.9380187988281, - 521.6299438476562 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 275.8800048828125, - 518.8199462890625 - ], - "bbox": [ - 275.8800048828125, - 509.3099365234375, - 280.8800048828125, - 521.5199584960938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .06). During upward", - "origin": [ - 280.9200134277344, - 518.8199462890625 - ], - "bbox": [ - 280.9200134277344, - 508.2899475097656, - 378.0560302734375, - 521.6299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 508.2899475097656, - 378.0560302734375, - 521.6299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements, the groups of patients and controls produced similar time intervals", - "origin": [ - 54.00102233886719, - 529.8599853515625 - ], - "bbox": [ - 54.00102233886719, - 519.3299560546875, - 378.0299987792969, - 532.6699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00102233886719, - 519.3299560546875, - 378.0299987792969, - 532.6699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "between onset of grip force and onset of acceleration (", - "origin": [ - 54.00102233886719, - 540.8399658203125 - ], - "bbox": [ - 54.00102233886719, - 530.3099365234375, - 269.541015625, - 543.6499633789062 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 269.5210266113281, - 540.8399658203125 - ], - "bbox": [ - 269.5210266113281, - 531.3299560546875, - 274.5210266113281, - 543.5399780273438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .16). However, the time", - "origin": [ - 274.50103759765625, - 540.8399658203125 - ], - "bbox": [ - 274.50103759765625, - 530.3099365234375, - 378.06207275390625, - 543.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00102233886719, - 530.3099365234375, - 378.06207275390625, - 543.6499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "intervals between the onset of grip force rise and the onset of acceleration that", - "origin": [ - 54.00105285644531, - 551.8200073242188 - ], - "bbox": [ - 54.00105285644531, - 541.2899780273438, - 378.0400085449219, - 554.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00105285644531, - 541.2899780273438, - 378.0400085449219, - 554.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "were calculated for downward movements were significantly smaller for the group", - "origin": [ - 54.00105285644531, - 562.8599853515625 - ], - "bbox": [ - 54.00105285644531, - 552.3299560546875, - 378.0171203613281, - 565.6699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00105285644531, - 552.3299560546875, - 378.0171203613281, - 565.6699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of patients than the group of controls (", - "origin": [ - 54.00105285644531, - 573.8399658203125 - ], - "bbox": [ - 54.00105285644531, - 563.3099365234375, - 207.57003784179688, - 576.6499633789062 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 207.5410614013672, - 573.8399658203125 - ], - "bbox": [ - 207.5410614013672, - 564.3299560546875, - 212.5410614013672, - 576.5399780273438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " < .01).", - "origin": [ - 212.5810546875, - 573.8399658203125 - ], - "bbox": [ - 212.5810546875, - 563.3099365234375, - 241.5450439453125, - 576.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00105285644531, - 563.3099365234375, - 241.5450439453125, - 576.6499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The time between maximum grip force and maximum acceleration (TF", - "origin": [ - 78.00105285644531, - 584.8200073242188 - ], - "bbox": [ - 78.00105285644531, - 574.2899780273438, - 363.24700927734375, - 587.6300048828125 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GMax", - "origin": [ - 363.17999267578125, - 586.8599853515625 - ], - "bbox": [ - 363.17999267578125, - 580.7525634765625, - 378.0007019042969, - 588.4898071289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00105285644531, - 574.2899780273438, - 378.0007019042969, - 588.4898071289062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "– TACC", - "origin": [ - 54.0, - 595.8599853515625 - ], - "bbox": [ - 54.0, - 585.3299560546875, - 87.20000457763672, - 598.6699829101562 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max", - "origin": [ - 87.18000030517578, - 597.8400268554688 - ], - "bbox": [ - 87.18000030517578, - 591.7326049804688, - 97.81256866455078, - 599.4698486328125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") is a sensitive parameter to assess the precision of the temporal cou-", - "origin": [ - 97.80000305175781, - 595.8599853515625 - ], - "bbox": [ - 97.80000305175781, - 585.3299560546875, - 378.031005859375, - 598.6699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 585.3299560546875, - 378.031005859375, - 599.4698486328125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pling between the acceleration (and thus load force) and grip force profiles. A", - "origin": [ - 54.0, - 606.8400268554688 - ], - "bbox": [ - 54.0, - 596.3099975585938, - 378.0410461425781, - 609.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 596.3099975585938, - 378.0410461425781, - 609.6500244140625 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 53.999698638916016, - 383.7239990234375, - 378.0224609375, - 426.1893005371094 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Figure 3 — Means and standard deviations of maximum kinematic accelerations", - "origin": [ - 54.0, - 393.1199951171875 - ], - "bbox": [ - 54.0, - 383.7239990234375, - 378.0224609375, - 396.1889953613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 383.7239990234375, - 378.0224609375, - 396.1889953613281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "(ACC", - "origin": [ - 54.0, - 403.13970947265625 - ], - "bbox": [ - 54.0, - 393.74371337890625, - 75.99600219726562, - 406.2087097167969 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Max", - "origin": [ - 76.0199966430664, - 404.94000244140625 - ], - "bbox": [ - 76.0199966430664, - 399.5111999511719, - 86.12879180908203, - 406.71319580078125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ") along the object’s Z-axis (total acceleration minus gravity), maximum grip", - "origin": [ - 86.0999984741211, - 403.1400146484375 - ], - "bbox": [ - 86.0999984741211, - 393.7440185546875, - 377.9962158203125, - 406.2090148925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 393.74371337890625, - 377.9962158203125, - 406.71319580078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "force (F", - "origin": [ - 53.999698638916016, - 413.1596984863281 - ], - "bbox": [ - 53.999698638916016, - 403.7637023925781, - 84.66810607910156, - 416.22869873046875 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "GMax", - "origin": [ - 84.66000366210938, - 414.96002197265625 - ], - "bbox": [ - 84.66000366210938, - 409.5312194824219, - 98.81439971923828, - 416.73321533203125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "), and the ratio between maximum grip and load force (F", - "origin": [ - 98.81999969482422, - 413.1600036621094 - ], - "bbox": [ - 98.81999969482422, - 403.7640075683594, - 324.9125671386719, - 416.22900390625 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "GMax", - "origin": [ - 324.9599914550781, - 414.96002197265625 - ], - "bbox": [ - 324.9599914550781, - 409.5312194824219, - 339.1144104003906, - 416.73321533203125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "/F", - "origin": [ - 339.1199951171875, - 413.1600036621094 - ], - "bbox": [ - 339.1199951171875, - 403.7640075683594, - 347.1210021972656, - 416.22900390625 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "LMax", - "origin": [ - 347.1000061035156, - 414.96002197265625 - ], - "bbox": [ - 347.1000061035156, - 409.5312194824219, - 360.67724609375, - 416.73321533203125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ") for", - "origin": [ - 360.6600036621094, - 413.1600036621094 - ], - "bbox": [ - 360.6600036621094, - 403.7640075683594, - 377.97601318359375, - 416.22900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999698638916016, - 403.7637023925781, - 377.97601318359375, - 416.73321533203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "upward and downward movements of control subjects and patients.", - "origin": [ - 54.00030517578125, - 423.12030029296875 - ], - "bbox": [ - 54.00030517578125, - 413.72430419921875, - 313.8402099609375, - 426.1893005371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 413.72430419921875, - 313.8402099609375, - 426.1893005371094 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 107, - 65, - 301, - 383 - ], - "image_path": "images/10_107_65_301_383.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 52.8, - 396.0, - 90.24, - 407.03999999999996 - ], - "image_path": "equations_inline/10_52_396_90_407.jpg" - }, - { - "bbox": [ - 74.39999999999999, - 406.08, - 103.19999999999999, - 418.08 - ], - "image_path": "equations_inline/10_74_406_103_418.jpg" - }, - { - "bbox": [ - 314.88, - 406.08, - 365.28, - 418.08 - ], - "image_path": "equations_inline/10_314_406_365_418.jpg" - }, - { - "bbox": [ - 168.95999999999998, - 488.64, - 203.99999999999997, - 501.11999999999995 - ], - "image_path": "equations_inline/10_168_488_203_501.jpg" - }, - { - "bbox": [ - 274.08, - 511.2, - 308.64, - 523.1999999999999 - ], - "image_path": "equations_inline/10_274_511_308_523.jpg" - }, - { - "bbox": [ - 264.96, - 532.8, - 299.52, - 545.76 - ], - "image_path": "equations_inline/10_264_532_299_545.jpg" - }, - { - "bbox": [ - 202.07999999999998, - 565.92, - 238.07999999999998, - 578.88 - ], - "image_path": "equations_inline/10_202_565_238_578.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 65, - 432.0, - 609.6500244140625 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 442.2900085449219, - 378.1050109863281, - 609.6500244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "profiles can be inferred from the acceleration and grip force curves exemplary", - "origin": [ - 54.0, - 452.82000732421875 - ], - "bbox": [ - 54.0, - 442.2900085449219, - 378.0199890136719, - 455.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 442.2900085449219, - 378.0199890136719, - 455.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "illustrated for patient E.E. and the age-matched control subject in Figure 2. The", - "origin": [ - 54.0, - 463.8599853515625 - ], - "bbox": [ - 54.0, - 453.3299865722656, - 378.0289306640625, - 466.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 453.3299865722656, - 378.0289306640625, - 466.66998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "remaining two patients (A.K. and G.A.) regulated their grip force profile very similar", - "origin": [ - 54.0, - 474.8399963378906 - ], - "bbox": [ - 54.0, - 464.30999755859375, - 378.011962890625, - 477.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 464.30999755859375, - 378.011962890625, - 477.6499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to the controls, resulting in significantly larger time lags for downward when com-", - "origin": [ - 54.0, - 485.82000732421875 - ], - "bbox": [ - 54.0, - 475.2900085449219, - 378.0790100097656, - 488.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 475.2900085449219, - 378.0790100097656, - 488.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pared to upward movements (", - "origin": [ - 54.0, - 496.8599853515625 - ], - "bbox": [ - 54.0, - 486.3299865722656, - 170.82801818847656, - 499.66998291015625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 170.82000732421875, - 496.8599853515625 - ], - "bbox": [ - 170.82000732421875, - 487.3499755859375, - 175.82000732421875, - 499.55999755859375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 175.8000030517578, - 496.8599853515625 - ], - "bbox": [ - 175.8000030517578, - 486.3299865722656, - 178.3000030517578, - 499.66998291015625 - ] - }, - { - "size": 10.0, - "flags": 0, - "font": "Symbol", - "color": 2236191, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "≤", - "origin": [ - 177.72000122070312, - 496.8599853515625 - ], - "bbox": [ - 177.72000122070312, - 486.7599792480469, - 183.2100067138672, - 499.78997802734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " .001). For the whole group of ALS patients, there", - "origin": [ - 183.1800079345703, - 496.8599853515625 - ], - "bbox": [ - 183.1800079345703, - 486.3299865722656, - 378.0649719238281, - 499.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 486.3299865722656, - 378.0649719238281, - 499.78997802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was no significant difference in the time lags between grip force onset and accel-", - "origin": [ - 54.00001525878906, - 507.8399658203125 - ], - "bbox": [ - 54.00001525878906, - 497.3099670410156, - 378.1050109863281, - 510.64996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 497.3099670410156, - 378.1050109863281, - 510.64996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "eration onset for upward and downward movements (", - "origin": [ - 54.00001525878906, - 518.8199462890625 - ], - "bbox": [ - 54.00001525878906, - 508.2899475097656, - 275.9380187988281, - 521.6299438476562 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 275.8800048828125, - 518.8199462890625 - ], - "bbox": [ - 275.8800048828125, - 509.3099365234375, - 280.8800048828125, - 521.5199584960938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .06). During upward", - "origin": [ - 280.9200134277344, - 518.8199462890625 - ], - "bbox": [ - 280.9200134277344, - 508.2899475097656, - 378.0560302734375, - 521.6299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 508.2899475097656, - 378.0560302734375, - 521.6299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements, the groups of patients and controls produced similar time intervals", - "origin": [ - 54.00102233886719, - 529.8599853515625 - ], - "bbox": [ - 54.00102233886719, - 519.3299560546875, - 378.0299987792969, - 532.6699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00102233886719, - 519.3299560546875, - 378.0299987792969, - 532.6699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "between onset of grip force and onset of acceleration (", - "origin": [ - 54.00102233886719, - 540.8399658203125 - ], - "bbox": [ - 54.00102233886719, - 530.3099365234375, - 269.541015625, - 543.6499633789062 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 269.5210266113281, - 540.8399658203125 - ], - "bbox": [ - 269.5210266113281, - 531.3299560546875, - 274.5210266113281, - 543.5399780273438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .16). However, the time", - "origin": [ - 274.50103759765625, - 540.8399658203125 - ], - "bbox": [ - 274.50103759765625, - 530.3099365234375, - 378.06207275390625, - 543.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00102233886719, - 530.3099365234375, - 378.06207275390625, - 543.6499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "intervals between the onset of grip force rise and the onset of acceleration that", - "origin": [ - 54.00105285644531, - 551.8200073242188 - ], - "bbox": [ - 54.00105285644531, - 541.2899780273438, - 378.0400085449219, - 554.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00105285644531, - 541.2899780273438, - 378.0400085449219, - 554.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "were calculated for downward movements were significantly smaller for the group", - "origin": [ - 54.00105285644531, - 562.8599853515625 - ], - "bbox": [ - 54.00105285644531, - 552.3299560546875, - 378.0171203613281, - 565.6699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00105285644531, - 552.3299560546875, - 378.0171203613281, - 565.6699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of patients than the group of controls (", - "origin": [ - 54.00105285644531, - 573.8399658203125 - ], - "bbox": [ - 54.00105285644531, - 563.3099365234375, - 207.57003784179688, - 576.6499633789062 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 207.5410614013672, - 573.8399658203125 - ], - "bbox": [ - 207.5410614013672, - 564.3299560546875, - 212.5410614013672, - 576.5399780273438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " < .01).", - "origin": [ - 212.5810546875, - 573.8399658203125 - ], - "bbox": [ - 212.5810546875, - 563.3099365234375, - 241.5450439453125, - 576.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00105285644531, - 563.3099365234375, - 241.5450439453125, - 576.6499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The time between maximum grip force and maximum acceleration (TF", - "origin": [ - 78.00105285644531, - 584.8200073242188 - ], - "bbox": [ - 78.00105285644531, - 574.2899780273438, - 363.24700927734375, - 587.6300048828125 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "GMax", - "origin": [ - 363.17999267578125, - 586.8599853515625 - ], - "bbox": [ - 363.17999267578125, - 580.7525634765625, - 378.0007019042969, - 588.4898071289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00105285644531, - 574.2899780273438, - 378.0007019042969, - 588.4898071289062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "– TACC", - "origin": [ - 54.0, - 595.8599853515625 - ], - "bbox": [ - 54.0, - 585.3299560546875, - 87.20000457763672, - 598.6699829101562 - ] - }, - { - "size": 5.800000190734863, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Max", - "origin": [ - 87.18000030517578, - 597.8400268554688 - ], - "bbox": [ - 87.18000030517578, - 591.7326049804688, - 97.81256866455078, - 599.4698486328125 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") is a sensitive parameter to assess the precision of the temporal cou-", - "origin": [ - 97.80000305175781, - 595.8599853515625 - ], - "bbox": [ - 97.80000305175781, - 585.3299560546875, - 378.031005859375, - 598.6699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 585.3299560546875, - 378.031005859375, - 599.4698486328125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pling between the acceleration (and thus load force) and grip force profiles. A", - "origin": [ - 54.0, - 606.8400268554688 - ], - "bbox": [ - 54.0, - 596.3099975585938, - 378.0410461425781, - 609.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 596.3099975585938, - 378.0410461425781, - 609.6500244140625 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 53.999698638916016, - 383.7239990234375, - 378.0224609375, - 426.1893005371094 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Figure 3 — Means and standard deviations of maximum kinematic accelerations", - "origin": [ - 54.0, - 393.1199951171875 - ], - "bbox": [ - 54.0, - 383.7239990234375, - 378.0224609375, - 396.1889953613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 383.7239990234375, - 378.0224609375, - 396.1889953613281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "(ACC", - "origin": [ - 54.0, - 403.13970947265625 - ], - "bbox": [ - 54.0, - 393.74371337890625, - 75.99600219726562, - 406.2087097167969 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Max", - "origin": [ - 76.0199966430664, - 404.94000244140625 - ], - "bbox": [ - 76.0199966430664, - 399.5111999511719, - 86.12879180908203, - 406.71319580078125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ") along the object’s Z-axis (total acceleration minus gravity), maximum grip", - "origin": [ - 86.0999984741211, - 403.1400146484375 - ], - "bbox": [ - 86.0999984741211, - 393.7440185546875, - 377.9962158203125, - 406.2090148925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 393.74371337890625, - 377.9962158203125, - 406.71319580078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "force (F", - "origin": [ - 53.999698638916016, - 413.1596984863281 - ], - "bbox": [ - 53.999698638916016, - 403.7637023925781, - 84.66810607910156, - 416.22869873046875 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "GMax", - "origin": [ - 84.66000366210938, - 414.96002197265625 - ], - "bbox": [ - 84.66000366210938, - 409.5312194824219, - 98.81439971923828, - 416.73321533203125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "), and the ratio between maximum grip and load force (F", - "origin": [ - 98.81999969482422, - 413.1600036621094 - ], - "bbox": [ - 98.81999969482422, - 403.7640075683594, - 324.9125671386719, - 416.22900390625 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "GMax", - "origin": [ - 324.9599914550781, - 414.96002197265625 - ], - "bbox": [ - 324.9599914550781, - 409.5312194824219, - 339.1144104003906, - 416.73321533203125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "/F", - "origin": [ - 339.1199951171875, - 413.1600036621094 - ], - "bbox": [ - 339.1199951171875, - 403.7640075683594, - 347.1210021972656, - 416.22900390625 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "LMax", - "origin": [ - 347.1000061035156, - 414.96002197265625 - ], - "bbox": [ - 347.1000061035156, - 409.5312194824219, - 360.67724609375, - 416.73321533203125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ") for", - "origin": [ - 360.6600036621094, - 413.1600036621094 - ], - "bbox": [ - 360.6600036621094, - 403.7640075683594, - 377.97601318359375, - 416.22900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999698638916016, - 403.7637023925781, - 377.97601318359375, - 416.73321533203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "upward and downward movements of control subjects and patients.", - "origin": [ - 54.00030517578125, - 423.12030029296875 - ], - "bbox": [ - 54.00030517578125, - 413.72430419921875, - 313.8402099609375, - 426.1893005371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00030517578125, - 413.72430419921875, - 313.8402099609375, - 426.1893005371094 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 3, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 10, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_11": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 53.999961853027344, - 443.30999755859375, - 378.0287780761719, - 533.6299438476562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "negative time lag indicates that the grip force maximum occurs prior to the maxi-", - "origin": [ - 54.0, - 453.8399963378906 - ], - "bbox": [ - 54.0, - 443.30999755859375, - 378.0287780761719, - 456.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 443.30999755859375, - 378.0287780761719, - 456.6499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mum acceleration; a positive time lag indicates that the grip force maximum lags", - "origin": [ - 54.0, - 464.82000732421875 - ], - "bbox": [ - 54.0, - 454.2900085449219, - 378.02301025390625, - 467.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 454.2900085449219, - 378.02301025390625, - 467.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "behind maximum acceleration. We found significant longer time lags for upward", - "origin": [ - 54.0, - 475.8599853515625 - ], - "bbox": [ - 54.0, - 465.3299865722656, - 378.0040283203125, - 478.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 465.3299865722656, - 378.0040283203125, - 478.66998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements when compared to downward movements performed by controls (", - "origin": [ - 54.0, - 486.8399658203125 - ], - "bbox": [ - 54.0, - 476.3099670410156, - 365.02191162109375, - 489.64996337890625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 364.91998291015625, - 486.8399658203125 - ], - "bbox": [ - 364.91998291015625, - 477.3299560546875, - 369.91998291015625, - 489.53997802734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " <", - "origin": [ - 369.9599914550781, - 486.8399658203125 - ], - "bbox": [ - 369.9599914550781, - 476.3099670410156, - 377.9859924316406, - 489.64996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 476.3099670410156, - 377.9859924316406, - 489.64996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".01) and patients (", - "origin": [ - 53.999969482421875, - 497.8199768066406 - ], - "bbox": [ - 53.999969482421875, - 487.28997802734375, - 125.19298553466797, - 500.6299743652344 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 125.219970703125, - 497.8199768066406 - ], - "bbox": [ - 125.219970703125, - 488.3099670410156, - 130.219970703125, - 500.5199890136719 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " < .01), indicative of an early anticipation of maximum load by", - "origin": [ - 130.19996643066406, - 497.8199768066406 - ], - "bbox": [ - 130.19996643066406, - 487.28997802734375, - 378.0009765625, - 500.6299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 487.28997802734375, - 378.0009765625, - 500.6299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "maximum grip force during downward movements (see Table 2). The time inter-", - "origin": [ - 53.999961853027344, - 508.8599853515625 - ], - "bbox": [ - 53.999961853027344, - 498.3299865722656, - 377.9819641113281, - 511.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999961853027344, - 498.3299865722656, - 377.9819641113281, - 511.66998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "vals were similar for controls and patients during upward movements (", - "origin": [ - 53.999961853027344, - 519.8399658203125 - ], - "bbox": [ - 53.999961853027344, - 509.3099670410156, - 331.23101806640625, - 522.6499633789062 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 331.199951171875, - 519.8399658203125 - ], - "bbox": [ - 331.199951171875, - 510.3299560546875, - 336.199951171875, - 522.5399780273438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .21) and", - "origin": [ - 336.1799621582031, - 519.8399658203125 - ], - "bbox": [ - 336.1799621582031, - 509.3099670410156, - 377.9759826660156, - 522.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999961853027344, - 509.3099670410156, - 377.9759826660156, - 522.6499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "downward movements (", - "origin": [ - 53.999969482421875, - 530.8199462890625 - ], - "bbox": [ - 53.999969482421875, - 520.2899169921875, - 150.01998901367188, - 533.6299438476562 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 149.99996948242188, - 530.8199462890625 - ], - "bbox": [ - 149.99996948242188, - 521.3099365234375, - 154.99996948242188, - 533.5199584960938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " > .05).", - "origin": [ - 154.97996520996094, - 530.8199462890625 - ], - "bbox": [ - 154.97996520996094, - 520.2899169921875, - 183.9459686279297, - 533.6299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 520.2899169921875, - 183.9459686279297, - 533.6299438476562 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 54.0, - 562.2899780273438, - 378.0710144042969, - 608.6300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "When we move a grasped object around in space, load fluctuations that arise from", - "origin": [ - 54.0, - 572.8200073242188 - ], - "bbox": [ - 54.0, - 562.2899780273438, - 378.06201171875, - 575.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 562.2899780273438, - 378.06201171875, - 575.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the accelerations of the hand are counteracted by simultaneous grip force adjust-", - "origin": [ - 54.0, - 583.8599853515625 - ], - "bbox": [ - 54.0, - 573.3299560546875, - 378.0710144042969, - 586.6699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 573.3299560546875, - 378.0710144042969, - 586.6699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments in such a way that grip force is only a slightly higher than the minimum", - "origin": [ - 54.0, - 594.8400268554688 - ], - "bbox": [ - 54.0, - 584.3099975585938, - 378.0529479980469, - 597.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 584.3099975585938, - 378.0529479980469, - 597.6500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "required to prevent it from slipping (Flanagan & Wing, 1993, 1997; Johansson &", - "origin": [ - 54.0, - 605.8200073242188 - ], - "bbox": [ - 54.0, - 595.2899780273438, - 378.0381164550781, - 608.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 595.2899780273438, - 378.0381164550781, - 608.6300048828125 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 53.99999237060547, - 354.2640075683594, - 378.0350646972656, - 426.7281188964844 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Figure 4 — Individual means of the time lag between grip force onset and the onset of", - "origin": [ - 54.0, - 363.6600036621094 - ], - "bbox": [ - 54.0, - 354.2640075683594, - 378.0350646972656, - 366.72900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 354.2640075683594, - 378.0350646972656, - 366.72900390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "acceleration (TF", - "origin": [ - 54.0, - 373.62030029296875 - ], - "bbox": [ - 54.0, - 364.22430419921875, - 115.98302459716797, - 376.6893005371094 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "GStart", - "origin": [ - 115.91999816894531, - 375.4200134277344 - ], - "bbox": [ - 115.91999816894531, - 369.9912109375, - 131.09619140625, - 377.1932067871094 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": " – TACC", - "origin": [ - 131.0399932861328, - 373.6199951171875 - ], - "bbox": [ - 131.0399932861328, - 364.2239990234375, - 162.5895233154297, - 376.6889953613281 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Start", - "origin": [ - 162.5399932861328, - 375.4200134277344 - ], - "bbox": [ - 162.5399932861328, - 369.9912109375, - 173.69711303710938, - 377.1932067871094 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ") are illustrated for upward and downward movements", - "origin": [ - 173.6999969482422, - 373.6199951171875 - ], - "bbox": [ - 173.6999969482422, - 364.2239990234375, - 378.00091552734375, - 376.6889953613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 364.2239990234375, - 378.00091552734375, - 377.1932067871094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "of each healthy control subject and patient. Healthy subjects typically increase grip", - "origin": [ - 53.99999237060547, - 383.63970947265625 - ], - "bbox": [ - 53.99999237060547, - 374.24371337890625, - 378.0343017578125, - 386.7087097167969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 374.24371337890625, - 378.0343017578125, - 386.7087097167969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "force early in upward and late in downward movements, resulting in a time lag close", - "origin": [ - 53.99999237060547, - 393.659423828125 - ], - "bbox": [ - 53.99999237060547, - 384.263427734375, - 377.98114013671875, - 396.7284240722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 384.263427734375, - 377.98114013671875, - 396.7284240722656 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "to zero for upward and a larger time lag for downward movements. Three of 5 ALS", - "origin": [ - 53.99999237060547, - 403.61968994140625 - ], - "bbox": [ - 53.99999237060547, - 394.22369384765625, - 377.9945983886719, - 406.6886901855469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 394.22369384765625, - 377.9945983886719, - 406.6886901855469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "patients increased grip force right from the movement start regardless of movement", - "origin": [ - 53.99999237060547, - 413.639404296875 - ], - "bbox": [ - 53.99999237060547, - 404.243408203125, - 377.9829406738281, - 416.7084045410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 404.243408203125, - 377.9829406738281, - 416.7084045410156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "direction, resulting in a similar small time lag for upward and downward movements.", - "origin": [ - 53.99999237060547, - 423.65911865234375 - ], - "bbox": [ - 53.99999237060547, - 414.26312255859375, - 377.9729309082031, - 426.7281188964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 414.26312255859375, - 377.9729309082031, - 426.7281188964844 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 134, - 66, - 306, - 347 - ], - "image_path": "images/11_134_66_306_347.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 120.47999999999999, - 489.59999999999997, - 155.04, - 502.08 - ], - "image_path": "equations_inline/11_120_489_155_502.jpg" - }, - { - "bbox": [ - 144.95999999999998, - 522.7199999999999, - 180.0, - 535.1999999999999 - ], - "image_path": "equations_inline/11_144_522_180_535.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 66, - 432.0, - 608.6300048828125 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 53.999961853027344, - 443.30999755859375, - 378.0287780761719, - 533.6299438476562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "negative time lag indicates that the grip force maximum occurs prior to the maxi-", - "origin": [ - 54.0, - 453.8399963378906 - ], - "bbox": [ - 54.0, - 443.30999755859375, - 378.0287780761719, - 456.6499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 443.30999755859375, - 378.0287780761719, - 456.6499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mum acceleration; a positive time lag indicates that the grip force maximum lags", - "origin": [ - 54.0, - 464.82000732421875 - ], - "bbox": [ - 54.0, - 454.2900085449219, - 378.02301025390625, - 467.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 454.2900085449219, - 378.02301025390625, - 467.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "behind maximum acceleration. We found significant longer time lags for upward", - "origin": [ - 54.0, - 475.8599853515625 - ], - "bbox": [ - 54.0, - 465.3299865722656, - 378.0040283203125, - 478.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 465.3299865722656, - 378.0040283203125, - 478.66998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements when compared to downward movements performed by controls (", - "origin": [ - 54.0, - 486.8399658203125 - ], - "bbox": [ - 54.0, - 476.3099670410156, - 365.02191162109375, - 489.64996337890625 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 364.91998291015625, - 486.8399658203125 - ], - "bbox": [ - 364.91998291015625, - 477.3299560546875, - 369.91998291015625, - 489.53997802734375 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " <", - "origin": [ - 369.9599914550781, - 486.8399658203125 - ], - "bbox": [ - 369.9599914550781, - 476.3099670410156, - 377.9859924316406, - 489.64996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 476.3099670410156, - 377.9859924316406, - 489.64996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".01) and patients (", - "origin": [ - 53.999969482421875, - 497.8199768066406 - ], - "bbox": [ - 53.999969482421875, - 487.28997802734375, - 125.19298553466797, - 500.6299743652344 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 125.219970703125, - 497.8199768066406 - ], - "bbox": [ - 125.219970703125, - 488.3099670410156, - 130.219970703125, - 500.5199890136719 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " < .01), indicative of an early anticipation of maximum load by", - "origin": [ - 130.19996643066406, - 497.8199768066406 - ], - "bbox": [ - 130.19996643066406, - 487.28997802734375, - 378.0009765625, - 500.6299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 487.28997802734375, - 378.0009765625, - 500.6299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "maximum grip force during downward movements (see Table 2). The time inter-", - "origin": [ - 53.999961853027344, - 508.8599853515625 - ], - "bbox": [ - 53.999961853027344, - 498.3299865722656, - 377.9819641113281, - 511.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999961853027344, - 498.3299865722656, - 377.9819641113281, - 511.66998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "vals were similar for controls and patients during upward movements (", - "origin": [ - 53.999961853027344, - 519.8399658203125 - ], - "bbox": [ - 53.999961853027344, - 509.3099670410156, - 331.23101806640625, - 522.6499633789062 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 331.199951171875, - 519.8399658203125 - ], - "bbox": [ - 331.199951171875, - 510.3299560546875, - 336.199951171875, - 522.5399780273438 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " = .21) and", - "origin": [ - 336.1799621582031, - 519.8399658203125 - ], - "bbox": [ - 336.1799621582031, - 509.3099670410156, - 377.9759826660156, - 522.6499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999961853027344, - 509.3099670410156, - 377.9759826660156, - 522.6499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "downward movements (", - "origin": [ - 53.999969482421875, - 530.8199462890625 - ], - "bbox": [ - 53.999969482421875, - 520.2899169921875, - 150.01998901367188, - 533.6299438476562 - ] - }, - { - "size": 10.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "p", - "origin": [ - 149.99996948242188, - 530.8199462890625 - ], - "bbox": [ - 149.99996948242188, - 521.3099365234375, - 154.99996948242188, - 533.5199584960938 - ] - }, - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " > .05).", - "origin": [ - 154.97996520996094, - 530.8199462890625 - ], - "bbox": [ - 154.97996520996094, - 520.2899169921875, - 183.9459686279297, - 533.6299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999969482421875, - 520.2899169921875, - 183.9459686279297, - 533.6299438476562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 54.0, - 562.2899780273438, - 378.0710144042969, - 608.6300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "When we move a grasped object around in space, load fluctuations that arise from", - "origin": [ - 54.0, - 572.8200073242188 - ], - "bbox": [ - 54.0, - 562.2899780273438, - 378.06201171875, - 575.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 562.2899780273438, - 378.06201171875, - 575.6300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the accelerations of the hand are counteracted by simultaneous grip force adjust-", - "origin": [ - 54.0, - 583.8599853515625 - ], - "bbox": [ - 54.0, - 573.3299560546875, - 378.0710144042969, - 586.6699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 573.3299560546875, - 378.0710144042969, - 586.6699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments in such a way that grip force is only a slightly higher than the minimum", - "origin": [ - 54.0, - 594.8400268554688 - ], - "bbox": [ - 54.0, - 584.3099975585938, - 378.0529479980469, - 597.6500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 584.3099975585938, - 378.0529479980469, - 597.6500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "required to prevent it from slipping (Flanagan & Wing, 1993, 1997; Johansson &", - "origin": [ - 54.0, - 605.8200073242188 - ], - "bbox": [ - 54.0, - 595.2899780273438, - 378.0381164550781, - 608.6300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 595.2899780273438, - 378.0381164550781, - 608.6300048828125 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 53.99999237060547, - 354.2640075683594, - 378.0350646972656, - 426.7281188964844 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Figure 4 — Individual means of the time lag between grip force onset and the onset of", - "origin": [ - 54.0, - 363.6600036621094 - ], - "bbox": [ - 54.0, - 354.2640075683594, - 378.0350646972656, - 366.72900390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 354.2640075683594, - 378.0350646972656, - 366.72900390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "acceleration (TF", - "origin": [ - 54.0, - 373.62030029296875 - ], - "bbox": [ - 54.0, - 364.22430419921875, - 115.98302459716797, - 376.6893005371094 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "GStart", - "origin": [ - 115.91999816894531, - 375.4200134277344 - ], - "bbox": [ - 115.91999816894531, - 369.9912109375, - 131.09619140625, - 377.1932067871094 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": " – TACC", - "origin": [ - 131.0399932861328, - 373.6199951171875 - ], - "bbox": [ - 131.0399932861328, - 364.2239990234375, - 162.5895233154297, - 376.6889953613281 - ] - }, - { - "size": 5.199999809265137, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "Start", - "origin": [ - 162.5399932861328, - 375.4200134277344 - ], - "bbox": [ - 162.5399932861328, - 369.9912109375, - 173.69711303710938, - 377.1932067871094 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": ") are illustrated for upward and downward movements", - "origin": [ - 173.6999969482422, - 373.6199951171875 - ], - "bbox": [ - 173.6999969482422, - 364.2239990234375, - 378.00091552734375, - 376.6889953613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 364.2239990234375, - 378.00091552734375, - 377.1932067871094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "of each healthy control subject and patient. Healthy subjects typically increase grip", - "origin": [ - 53.99999237060547, - 383.63970947265625 - ], - "bbox": [ - 53.99999237060547, - 374.24371337890625, - 378.0343017578125, - 386.7087097167969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 374.24371337890625, - 378.0343017578125, - 386.7087097167969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "force early in upward and late in downward movements, resulting in a time lag close", - "origin": [ - 53.99999237060547, - 393.659423828125 - ], - "bbox": [ - 53.99999237060547, - 384.263427734375, - 377.98114013671875, - 396.7284240722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 384.263427734375, - 377.98114013671875, - 396.7284240722656 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "to zero for upward and a larger time lag for downward movements. Three of 5 ALS", - "origin": [ - 53.99999237060547, - 403.61968994140625 - ], - "bbox": [ - 53.99999237060547, - 394.22369384765625, - 377.9945983886719, - 406.6886901855469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 394.22369384765625, - 377.9945983886719, - 406.6886901855469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "patients increased grip force right from the movement start regardless of movement", - "origin": [ - 53.99999237060547, - 413.639404296875 - ], - "bbox": [ - 53.99999237060547, - 404.243408203125, - 377.9829406738281, - 416.7084045410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 404.243408203125, - 377.9829406738281, - 416.7084045410156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "direction, resulting in a similar small time lag for upward and downward movements.", - "origin": [ - 53.99999237060547, - 423.65911865234375 - ], - "bbox": [ - 53.99999237060547, - 414.26312255859375, - 377.9729309082031, - 426.7281188964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 414.26312255859375, - 377.9729309082031, - 426.7281188964844 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 11, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_12": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.09295654296875, - 615.1699829101562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Westling, 1984). The lack of significant time lags between grip and load force", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.06597900390625, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.06597900390625, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "profiles suggests that load fluctuations are predicted from sensorimotor memories", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0620422363281, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0620422363281, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "about previous object manipulations and that grip force adjustments are planned", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.071044921875, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.071044921875, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "several steps ahead (Blakemore et al., 1998; Flanagan & Wing, 1997; Wing, 1996).", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.041748046875, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.041748046875, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Thus, when we manipulate objects, we rely more on a forward force control policy", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0389709472656, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0389709472656, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in which grip force control parameters are derived from internal neural representa-", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.03900146484375, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.03900146484375, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tions of the intended movement and its implication on the object loading rather", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.02496337890625, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.02496337890625, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "than on feedback information from the grasping digits, which impose time lags", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.06610107421875, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.06610107421875, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "due to central loop processing. However, feedback signals from mechanoreceptors", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.0510559082031, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.0510559082031, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of the grasping digits play a major role in the adequate scaling of grip forces in", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.07501220703125, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.07501220703125, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "relation to the actual loading requirements (Johansson, 1996, 1998; Johansson &", - "origin": [ - 54.0, - 183.35983276367188 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.06011962890625, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.06011962890625, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Westling, 1984, 1988; Nowak et al., 2001, 2003).", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 250.88397216796875, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 250.88397216796875, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The motor cortex plays a crucial role in the regulation of grip force during", - "origin": [ - 78.0, - 205.37985229492188 - ], - "bbox": [ - 78.0, - 194.849853515625, - 378.04901123046875, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 194.849853515625, - 378.04901123046875, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "object manipulation. The primary motor cortex directly influences distal arm, hand,", - "origin": [ - 54.0, - 216.35986328125 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 377.9991455078125, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 377.9991455078125, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and finger muscles engaged in grasping through its direct connections with motor-", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 377.9869689941406, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 377.9869689941406, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "neurons in the spinal cord (Buys et al., 1986; Hepp-Reymond & Wiesendanger,", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 377.99896240234375, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 377.99896240234375, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1972; Lemon et al., 1986). The hand area of the motor cortex receives propriocep-", - "origin": [ - 54.0, - 249.35989379882812 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0289611816406, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0289611816406, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tive and cutaneous afferent input from the arm and hand (Strick & Preston, 1982),", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.052978515625, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.052978515625, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and interruption of the spinal dorsal columns or disconnection between the first", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.08001708984375, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.08001708984375, - 274.1899108886719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "somatosensory and motor cortices result in deficits of the fine motor control of the", - "origin": [ - 54.0, - 282.35992431640625 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0470275878906, - 285.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0470275878906, - 285.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "hand (Asanuma & Arissian, 1984) similar to those observed in pyramidal tract", - "origin": [ - 54.0, - 293.3399353027344 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0140686035156, - 296.1499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0140686035156, - 296.1499328613281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lesions (Hepp-Reymond & Wiesendanger, 1972). It has been demonstrated that", - "origin": [ - 54.0, - 304.37994384765625 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.0650329589844, - 307.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.0650329589844, - 307.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "proprioceptive and cutaneous afferent information significantly modulates motor", - "origin": [ - 54.0, - 315.3599548339844 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.00408935546875, - 318.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.00408935546875, - 318.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cortical activity and that physical object properties, such as weight and surface", - "origin": [ - 54.0, - 326.3399658203125 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0130310058594, - 329.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0130310058594, - 329.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "friction, are well represented in the discharge of cortical motor neurons (Picard &", - "origin": [ - 54.0, - 337.3199768066406 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0509948730469, - 340.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0509948730469, - 340.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Smith, 1992). ALS is a degenerative disorder that affects solitarily the cortical and", - "origin": [ - 54.0, - 348.3599853515625 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.07196044921875, - 351.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.07196044921875, - 351.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "spinal motor neurons without additional sensory dysfunction, and it seems fruitful", - "origin": [ - 54.0, - 359.3399963378906 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.0699462890625, - 362.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.0699462890625, - 362.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to study grip force regulation in a condition of exclusive dysfunction of the execu-", - "origin": [ - 54.0, - 370.32000732421875 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 378.0009765625, - 373.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 378.0009765625, - 373.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tive system of descending motor commands.", - "origin": [ - 54.0, - 381.3600158691406 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 231.91000366210938, - 384.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 231.91000366210938, - 384.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The central nervous system uses visual, tactile, and proprioceptive feedback", - "origin": [ - 78.0, - 392.34002685546875 - ], - "bbox": [ - 78.0, - 381.8100280761719, - 378.0, - 395.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 381.8100280761719, - 378.0, - 395.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "information obtained from manipulation of hand-held objects to effectively select", - "origin": [ - 54.0, - 403.32000732421875 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 378.0790100097656, - 406.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 378.0790100097656, - 406.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "appropriate internal models of grip force control. Somatosensory memories about", - "origin": [ - 54.0, - 414.3599853515625 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 378.0710754394531, - 417.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 378.0710754394531, - 417.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "previous object manipulations play a crucial role in the prediction of the conse-", - "origin": [ - 54.0, - 425.3399963378906 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0320129394531, - 428.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0320129394531, - 428.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "quences of our own motor actions and their implications on the loading of hand-", - "origin": [ - 54.0, - 436.32000732421875 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0449523925781, - 439.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0449523925781, - 439.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "held objects (Blakemore et al., 1998; Flanagan & Wing, 1997; Wing, 1996). The", - "origin": [ - 54.0, - 447.3599853515625 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0037841796875, - 450.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0037841796875, - 450.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "finding that patients with ALS employed greater grip forces and consequently a", - "origin": [ - 54.0, - 458.3399658203125 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 378.037841796875, - 461.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 378.037841796875, - 461.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "greater ratio between grip and load forces than healthy controls indicates that the", - "origin": [ - 54.0, - 469.3199768066406 - ], - "bbox": [ - 54.0, - 458.78997802734375, - 378.06805419921875, - 472.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 458.78997802734375, - 378.06805419921875, - 472.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "descending motor commands for the regulation of the grip force magnitude were", - "origin": [ - 54.0, - 480.3599853515625 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.09295654296875, - 483.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.09295654296875, - 483.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "processed with impaired force economy. The predictive grip force scaling seems", - "origin": [ - 54.0, - 491.3399658203125 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 378.02398681640625, - 494.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 378.02398681640625, - 494.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to involve the sensory cortex (Asanuma & Arissian, 1984; Kinoshita et al., 2000;", - "origin": [ - 54.0, - 502.3199462890625 - ], - "bbox": [ - 54.0, - 491.7899475097656, - 378.0290832519531, - 505.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 491.7899475097656, - 378.0290832519531, - 505.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Strick & Preston, 1982) and the cerebellum (Espinoza & Smith, 1990), which", - "origin": [ - 54.0, - 513.3599853515625 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0600280761719, - 516.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0600280761719, - 516.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "project to the primary and other motor cortices (supplementary motor area, premotor", - "origin": [ - 54.0, - 524.3399658203125 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0729064941406, - 527.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0729064941406, - 527.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cortex, and cingulate motor cortex; Hoover & Strick, 1999; Kinoshita et al., 2000;", - "origin": [ - 54.0, - 535.3199462890625 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.0000305175781, - 538.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.0000305175781, - 538.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Middleton & Strick, 2000; Rao et al., 1997). The cerebellum and sensory motor", - "origin": [ - 54.0, - 546.3599853515625 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.08197021484375, - 549.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.08197021484375, - 549.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cortex are intact in ALS. Consequently, the increase of grip forces cannot be as-", - "origin": [ - 54.0, - 557.3399658203125 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.0450134277344, - 560.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.0450134277344, - 560.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sumed a strategy to compensate for deficient cerebellar or sensory processing. We", - "origin": [ - 54.0, - 568.3199462890625 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.01800537109375, - 571.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.01800537109375, - 571.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "suggest that impairments of efficient grip force scaling primarily result from defi-", - "origin": [ - 54.0, - 579.3599853515625 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.0028991699219, - 582.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.0028991699219, - 582.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cient motor cortex and corticospinal tract motor function.", - "origin": [ - 54.0, - 590.3399658203125 - ], - "bbox": [ - 54.0, - 579.8099365234375, - 283.24798583984375, - 593.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 579.8099365234375, - 283.24798583984375, - 593.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "However, in ALS there is also an abnormal drive of descending motor com-", - "origin": [ - 78.0, - 601.3199462890625 - ], - "bbox": [ - 78.0, - 590.7899169921875, - 378.0469970703125, - 604.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 590.7899169921875, - 378.0469970703125, - 604.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mands to gamma motor neurons, necessary for the precise tuning and coordination", - "origin": [ - 54.0, - 612.3599853515625 - ], - "bbox": [ - 54.0, - 601.8299560546875, - 378.04205322265625, - 615.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 601.8299560546875, - 378.04205322265625, - 615.1699829101562 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 368.64, - 176.64, - 378.23999999999995, - 185.27999999999997 - ], - "image_path": "equations_inline/12_368_176_378_185.jpg" - }, - { - "bbox": [ - 307.2, - 232.32, - 316.79999999999995, - 240.48 - ], - "image_path": "equations_inline/12_307_232_316_240.jpg" - }, - { - "bbox": [ - 154.07999999999998, - 297.59999999999997, - 163.2, - 306.23999999999995 - ], - "image_path": "equations_inline/12_154_297_163_306.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 0, - 432.0, - 648.0 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.09295654296875, - 615.1699829101562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Westling, 1984). The lack of significant time lags between grip and load force", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.06597900390625, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.06597900390625, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "profiles suggests that load fluctuations are predicted from sensorimotor memories", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0620422363281, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0620422363281, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "about previous object manipulations and that grip force adjustments are planned", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.071044921875, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.071044921875, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "several steps ahead (Blakemore et al., 1998; Flanagan & Wing, 1997; Wing, 1996).", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.041748046875, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.041748046875, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Thus, when we manipulate objects, we rely more on a forward force control policy", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0389709472656, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0389709472656, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in which grip force control parameters are derived from internal neural representa-", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.03900146484375, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.03900146484375, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tions of the intended movement and its implication on the object loading rather", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.02496337890625, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.02496337890625, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "than on feedback information from the grasping digits, which impose time lags", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.06610107421875, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.06610107421875, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "due to central loop processing. However, feedback signals from mechanoreceptors", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.0510559082031, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.0510559082031, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of the grasping digits play a major role in the adequate scaling of grip forces in", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.07501220703125, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.07501220703125, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "relation to the actual loading requirements (Johansson, 1996, 1998; Johansson &", - "origin": [ - 54.0, - 183.35983276367188 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.06011962890625, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.06011962890625, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Westling, 1984, 1988; Nowak et al., 2001, 2003).", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 250.88397216796875, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 250.88397216796875, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The motor cortex plays a crucial role in the regulation of grip force during", - "origin": [ - 78.0, - 205.37985229492188 - ], - "bbox": [ - 78.0, - 194.849853515625, - 378.04901123046875, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 194.849853515625, - 378.04901123046875, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "object manipulation. The primary motor cortex directly influences distal arm, hand,", - "origin": [ - 54.0, - 216.35986328125 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 377.9991455078125, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 377.9991455078125, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and finger muscles engaged in grasping through its direct connections with motor-", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 377.9869689941406, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 377.9869689941406, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "neurons in the spinal cord (Buys et al., 1986; Hepp-Reymond & Wiesendanger,", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 377.99896240234375, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 377.99896240234375, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1972; Lemon et al., 1986). The hand area of the motor cortex receives propriocep-", - "origin": [ - 54.0, - 249.35989379882812 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0289611816406, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0289611816406, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tive and cutaneous afferent input from the arm and hand (Strick & Preston, 1982),", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.052978515625, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.052978515625, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and interruption of the spinal dorsal columns or disconnection between the first", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.08001708984375, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.08001708984375, - 274.1899108886719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "somatosensory and motor cortices result in deficits of the fine motor control of the", - "origin": [ - 54.0, - 282.35992431640625 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0470275878906, - 285.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0470275878906, - 285.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "hand (Asanuma & Arissian, 1984) similar to those observed in pyramidal tract", - "origin": [ - 54.0, - 293.3399353027344 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0140686035156, - 296.1499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0140686035156, - 296.1499328613281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lesions (Hepp-Reymond & Wiesendanger, 1972). It has been demonstrated that", - "origin": [ - 54.0, - 304.37994384765625 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.0650329589844, - 307.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.0650329589844, - 307.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "proprioceptive and cutaneous afferent information significantly modulates motor", - "origin": [ - 54.0, - 315.3599548339844 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.00408935546875, - 318.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.00408935546875, - 318.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cortical activity and that physical object properties, such as weight and surface", - "origin": [ - 54.0, - 326.3399658203125 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0130310058594, - 329.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0130310058594, - 329.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "friction, are well represented in the discharge of cortical motor neurons (Picard &", - "origin": [ - 54.0, - 337.3199768066406 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0509948730469, - 340.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0509948730469, - 340.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Smith, 1992). ALS is a degenerative disorder that affects solitarily the cortical and", - "origin": [ - 54.0, - 348.3599853515625 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.07196044921875, - 351.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.07196044921875, - 351.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "spinal motor neurons without additional sensory dysfunction, and it seems fruitful", - "origin": [ - 54.0, - 359.3399963378906 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.0699462890625, - 362.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.0699462890625, - 362.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to study grip force regulation in a condition of exclusive dysfunction of the execu-", - "origin": [ - 54.0, - 370.32000732421875 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 378.0009765625, - 373.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 378.0009765625, - 373.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tive system of descending motor commands.", - "origin": [ - 54.0, - 381.3600158691406 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 231.91000366210938, - 384.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 231.91000366210938, - 384.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The central nervous system uses visual, tactile, and proprioceptive feedback", - "origin": [ - 78.0, - 392.34002685546875 - ], - "bbox": [ - 78.0, - 381.8100280761719, - 378.0, - 395.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 381.8100280761719, - 378.0, - 395.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "information obtained from manipulation of hand-held objects to effectively select", - "origin": [ - 54.0, - 403.32000732421875 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 378.0790100097656, - 406.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 378.0790100097656, - 406.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "appropriate internal models of grip force control. Somatosensory memories about", - "origin": [ - 54.0, - 414.3599853515625 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 378.0710754394531, - 417.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 378.0710754394531, - 417.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "previous object manipulations play a crucial role in the prediction of the conse-", - "origin": [ - 54.0, - 425.3399963378906 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0320129394531, - 428.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0320129394531, - 428.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "quences of our own motor actions and their implications on the loading of hand-", - "origin": [ - 54.0, - 436.32000732421875 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0449523925781, - 439.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0449523925781, - 439.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "held objects (Blakemore et al., 1998; Flanagan & Wing, 1997; Wing, 1996). The", - "origin": [ - 54.0, - 447.3599853515625 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0037841796875, - 450.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0037841796875, - 450.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "finding that patients with ALS employed greater grip forces and consequently a", - "origin": [ - 54.0, - 458.3399658203125 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 378.037841796875, - 461.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 378.037841796875, - 461.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "greater ratio between grip and load forces than healthy controls indicates that the", - "origin": [ - 54.0, - 469.3199768066406 - ], - "bbox": [ - 54.0, - 458.78997802734375, - 378.06805419921875, - 472.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 458.78997802734375, - 378.06805419921875, - 472.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "descending motor commands for the regulation of the grip force magnitude were", - "origin": [ - 54.0, - 480.3599853515625 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.09295654296875, - 483.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.09295654296875, - 483.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "processed with impaired force economy. The predictive grip force scaling seems", - "origin": [ - 54.0, - 491.3399658203125 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 378.02398681640625, - 494.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 378.02398681640625, - 494.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to involve the sensory cortex (Asanuma & Arissian, 1984; Kinoshita et al., 2000;", - "origin": [ - 54.0, - 502.3199462890625 - ], - "bbox": [ - 54.0, - 491.7899475097656, - 378.0290832519531, - 505.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 491.7899475097656, - 378.0290832519531, - 505.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Strick & Preston, 1982) and the cerebellum (Espinoza & Smith, 1990), which", - "origin": [ - 54.0, - 513.3599853515625 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0600280761719, - 516.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0600280761719, - 516.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "project to the primary and other motor cortices (supplementary motor area, premotor", - "origin": [ - 54.0, - 524.3399658203125 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0729064941406, - 527.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 378.0729064941406, - 527.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cortex, and cingulate motor cortex; Hoover & Strick, 1999; Kinoshita et al., 2000;", - "origin": [ - 54.0, - 535.3199462890625 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.0000305175781, - 538.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.0000305175781, - 538.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Middleton & Strick, 2000; Rao et al., 1997). The cerebellum and sensory motor", - "origin": [ - 54.0, - 546.3599853515625 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.08197021484375, - 549.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.08197021484375, - 549.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cortex are intact in ALS. Consequently, the increase of grip forces cannot be as-", - "origin": [ - 54.0, - 557.3399658203125 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.0450134277344, - 560.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.0450134277344, - 560.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sumed a strategy to compensate for deficient cerebellar or sensory processing. We", - "origin": [ - 54.0, - 568.3199462890625 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.01800537109375, - 571.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.01800537109375, - 571.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "suggest that impairments of efficient grip force scaling primarily result from defi-", - "origin": [ - 54.0, - 579.3599853515625 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.0028991699219, - 582.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 378.0028991699219, - 582.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cient motor cortex and corticospinal tract motor function.", - "origin": [ - 54.0, - 590.3399658203125 - ], - "bbox": [ - 54.0, - 579.8099365234375, - 283.24798583984375, - 593.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 579.8099365234375, - 283.24798583984375, - 593.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "However, in ALS there is also an abnormal drive of descending motor com-", - "origin": [ - 78.0, - 601.3199462890625 - ], - "bbox": [ - 78.0, - 590.7899169921875, - 378.0469970703125, - 604.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 590.7899169921875, - 378.0469970703125, - 604.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mands to gamma motor neurons, necessary for the precise tuning and coordination", - "origin": [ - 54.0, - 612.3599853515625 - ], - "bbox": [ - 54.0, - 601.8299560546875, - 378.04205322265625, - 615.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 601.8299560546875, - 378.04205322265625, - 615.1699829101562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 12, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_13": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.0869445800781, - 615.1699829101562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of limb movements, which may indirectly affect proprioceptive feedback process-", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0210266113281, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0210266113281, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing. Thus, ALS may also result in disturbances of the subtle interplay between", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0220031738281, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0220031738281, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "feedforward and feedback mechanisms essential for the anticipatory regulation of", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.02801513671875, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.02801513671875, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "prehensile finger forces. Our ALS patients uniformly reported problems of fine", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.054931640625, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.054931640625, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "motor performance during everyday manual activities, such as rigidity and clumsi-", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.03912353515625, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.03912353515625, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ness of the fingers, resulting in dyscoordination of fine finger movements prob-", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0049133300781, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0049133300781, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ably related to symptoms of spasticity. Consequently, it seems not surprising that", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.0469970703125, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.0469970703125, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the experience of moving objects with clumsy fingers may result in a strategic", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.05694580078125, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.05694580078125, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "increase in finger forces to prevent accidental loss of a hand-held object. Indeed,", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.04205322265625, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.04205322265625, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "an inefficient increase in finger forces had repeatedly been reported in several patho-", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.06390380859375, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.06390380859375, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "logical conditions resulting in impaired sensorimotor processing (Babin-Ratté et", - "origin": [ - 54.0, - 183.35983276367188 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.073974609375, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.073974609375, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "al., 1999; Eliasson et al., 1995; Fellows et al., 2001; Forssberg et al., 1999; Hill &", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0379943847656, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0379943847656, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Wing, 1999; Nowak et al., 2002, 2003; Paré & Dugas, 1999).", - "origin": [ - 54.0, - 205.37985229492188 - ], - "bbox": [ - 54.0, - 194.849853515625, - 298.56793212890625, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 194.849853515625, - 298.56793212890625, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "An important observation in the present study was that in 3 of 5 ALS pa-", - "origin": [ - 78.0, - 216.35986328125 - ], - "bbox": [ - 78.0, - 205.82986450195312, - 378.0390319824219, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 205.82986450195312, - 378.0390319824219, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tients, the grip force profile was similar for upward and downward movements. In", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0159912109375, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0159912109375, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "other words, the grip force profile was not processed to match the differential ef-", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.06298828125, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.06298828125, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fects of movement direction on the loading of the hand-held object. The internal", - "origin": [ - 54.0, - 249.35989379882812 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0319519042969, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0319519042969, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "model of grip force control, probably implemented in the cerebellum (Espinoza &", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.0780334472656, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.0780334472656, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Smith, 1990; Miall et al., 1993; Wing, 1996; Wolpert & Flanagan, 2001), is not", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0869445800781, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0869445800781, - 274.1899108886719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "affected by motor neuron disease. Indeed, it is surprising that similar deficits of", - "origin": [ - 54.0, - 282.35992431640625 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 377.9980163574219, - 285.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 377.9980163574219, - 285.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grip force control during vertical arm movements with a hand-held object were", - "origin": [ - 54.0, - 293.3399353027344 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0409851074219, - 296.1499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0409851074219, - 296.1499328613281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "found in patients with cerebellar degeneration (Babin Ratté et al., 1999; Nowak et", - "origin": [ - 54.0, - 304.37994384765625 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.01202392578125, - 307.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.01202392578125, - 307.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "al., 2002) and in children with developmental coordination disorder that affects", - "origin": [ - 54.0, - 315.3599548339844 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.05999755859375, - 318.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.05999755859375, - 318.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the ontogenetical maturation of the cerebellum (Hill & Wing, 1999). Patients with", - "origin": [ - 54.0, - 326.3399658203125 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 377.9900207519531, - 329.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 377.9900207519531, - 329.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cerebellar lesions show difficulties to select appropriate grip force levels and dis-", - "origin": [ - 54.0, - 337.3199768066406 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 377.9980163574219, - 340.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 377.9980163574219, - 340.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "turbances of the precise temporal grip force coupling with the loads (Babin Ratté", - "origin": [ - 54.0, - 348.3599853515625 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.07000732421875, - 351.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.07000732421875, - 351.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "et al., 1999; Fellows et al., 2001; Nowak et al., 2002). However, the investigation", - "origin": [ - 54.0, - 359.3399963378906 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.0813293457031, - 362.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.0813293457031, - 362.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of children with perinatal motor cortical lesions also demonstrated disruption of", - "origin": [ - 54.0, - 370.32000732421875 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 378.0800476074219, - 373.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 378.0800476074219, - 373.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the temporal coupling between grip and load forces similar to that observed in", - "origin": [ - 54.0, - 381.3600158691406 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 378.0510559082031, - 384.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 378.0510559082031, - 384.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "patients with cerebellar disorders (Eliasson et al., 1995; Forssberg et al., 1999).", - "origin": [ - 54.0, - 392.34002685546875 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.02301025390625, - 395.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.02301025390625, - 395.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The functional anatomical connections between the cerebellum and the motor cor-", - "origin": [ - 54.0, - 403.32000732421875 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 377.9859313964844, - 406.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 377.9859313964844, - 406.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tices give one possible explanation for the similar impairments of the temporal", - "origin": [ - 54.0, - 414.3599853515625 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 378.0650329589844, - 417.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 378.0650329589844, - 417.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "regulation of the grip force profile observed in patients with cerebellar and motor", - "origin": [ - 54.0, - 425.3399963378906 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0460205078125, - 428.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0460205078125, - 428.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cortical lesions. The cerebellum provides efferent projections to the motor cortices", - "origin": [ - 54.0, - 436.32000732421875 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0230712890625, - 439.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0230712890625, - 439.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(Hoover & Strick, 1999) and basal ganglia (Middleton & Strick, 2000) from which", - "origin": [ - 54.0, - 447.3599853515625 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0530090332031, - 450.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0530090332031, - 450.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "it in turn receives afferent connections.", - "origin": [ - 54.0, - 458.3399658203125 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 209.4190216064453, - 461.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 209.4190216064453, - 461.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "We demonstrate that functional impairment of motor execution, caused by", - "origin": [ - 78.0, - 469.3199768066406 - ], - "bbox": [ - 78.0, - 458.78997802734375, - 378.0420227050781, - 472.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 458.78997802734375, - 378.0420227050781, - 472.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lesions of the primary motor cortex and the spinal motor neurons that directly", - "origin": [ - 54.0, - 480.3599853515625 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0419921875, - 483.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0419921875, - 483.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "control the finger forces (Cole et al., 1999; Lemon et al., 1986), results in timing", - "origin": [ - 54.0, - 491.3399658203125 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 378.0680236816406, - 494.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 378.0680236816406, - 494.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "deficits of prehensile finger forces despite a probably intact internal model possi-", - "origin": [ - 54.0, - 502.3199462890625 - ], - "bbox": [ - 54.0, - 491.7899475097656, - 378.05804443359375, - 505.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 491.7899475097656, - 378.05804443359375, - 505.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "bly implemented within the cerebellum (Miall et al., 1993; Wolpert & Flanagan,", - "origin": [ - 54.0, - 513.3599853515625 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0150451660156, - 516.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0150451660156, - 516.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2001). As the cerebellum is unaffected by motor neuron disease, the problems of", - "origin": [ - 54.0, - 524.3399658203125 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 377.9989929199219, - 527.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 377.9989929199219, - 527.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "timing the grip force profile observed in 3 of 5 ALS patients may result either", - "origin": [ - 54.0, - 535.3199462890625 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.0140075683594, - 538.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.0140075683594, - 538.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "directly from deficient execution of descending motor commands or be secondary", - "origin": [ - 54.0, - 546.3599853515625 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.0390625, - 549.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.0390625, - 549.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to impairments of movement coordination. The latter may be caused by alterations", - "origin": [ - 54.0, - 557.3399658203125 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.02703857421875, - 560.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.02703857421875, - 560.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in gamma motor neuron activity, also affecting proprioceptive feedback, and/or", - "origin": [ - 54.0, - 568.3199462890625 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.0609436035156, - 571.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.0609436035156, - 571.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "hampered agonist-antagonist muscle activation due to spasticity.", - "origin": [ - 54.0, - 579.3599853515625 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 310.7950744628906, - 582.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 310.7950744628906, - 582.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The uncoordinated grip force output observed in our ALS patients may also", - "origin": [ - 78.0, - 590.3399658203125 - ], - "bbox": [ - 78.0, - 579.8099365234375, - 378.0470886230469, - 593.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 579.8099365234375, - 378.0470886230469, - 593.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "result from reorganization processes within a well-documented network of mul-", - "origin": [ - 54.0, - 601.3199462890625 - ], - "bbox": [ - 54.0, - 590.7899169921875, - 378.0009765625, - 604.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 590.7899169921875, - 378.0009765625, - 604.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tiple hand representations. Several cerebral motor cortices (primary motor, supple-", - "origin": [ - 54.0, - 612.3599853515625 - ], - "bbox": [ - 54.0, - 601.8299560546875, - 378.0320129394531, - 615.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 601.8299560546875, - 378.0320129394531, - 615.1699829101562 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 242.39999999999998, - 528.48, - 249.6, - 537.5999999999999 - ], - "image_path": "equations_inline/13_242_528_249_537.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 0, - 432.0, - 648.0 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.0869445800781, - 615.1699829101562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of limb movements, which may indirectly affect proprioceptive feedback process-", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0210266113281, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.0210266113281, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing. Thus, ALS may also result in disturbances of the subtle interplay between", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0220031738281, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.0220031738281, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "feedforward and feedback mechanisms essential for the anticipatory regulation of", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.02801513671875, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.02801513671875, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "prehensile finger forces. Our ALS patients uniformly reported problems of fine", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.054931640625, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.054931640625, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "motor performance during everyday manual activities, such as rigidity and clumsi-", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.03912353515625, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.03912353515625, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ness of the fingers, resulting in dyscoordination of fine finger movements prob-", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0049133300781, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0049133300781, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ably related to symptoms of spasticity. Consequently, it seems not surprising that", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.0469970703125, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.0469970703125, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the experience of moving objects with clumsy fingers may result in a strategic", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.05694580078125, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 378.05694580078125, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "increase in finger forces to prevent accidental loss of a hand-held object. Indeed,", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.04205322265625, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.04205322265625, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "an inefficient increase in finger forces had repeatedly been reported in several patho-", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.06390380859375, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.06390380859375, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "logical conditions resulting in impaired sensorimotor processing (Babin-Ratté et", - "origin": [ - 54.0, - 183.35983276367188 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.073974609375, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.073974609375, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "al., 1999; Eliasson et al., 1995; Fellows et al., 2001; Forssberg et al., 1999; Hill &", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0379943847656, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.0379943847656, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Wing, 1999; Nowak et al., 2002, 2003; Paré & Dugas, 1999).", - "origin": [ - 54.0, - 205.37985229492188 - ], - "bbox": [ - 54.0, - 194.849853515625, - 298.56793212890625, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 194.849853515625, - 298.56793212890625, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "An important observation in the present study was that in 3 of 5 ALS pa-", - "origin": [ - 78.0, - 216.35986328125 - ], - "bbox": [ - 78.0, - 205.82986450195312, - 378.0390319824219, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 205.82986450195312, - 378.0390319824219, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tients, the grip force profile was similar for upward and downward movements. In", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0159912109375, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0159912109375, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "other words, the grip force profile was not processed to match the differential ef-", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.06298828125, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 378.06298828125, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fects of movement direction on the loading of the hand-held object. The internal", - "origin": [ - 54.0, - 249.35989379882812 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0319519042969, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 238.82989501953125, - 378.0319519042969, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "model of grip force control, probably implemented in the cerebellum (Espinoza &", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.0780334472656, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.0780334472656, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Smith, 1990; Miall et al., 1993; Wing, 1996; Wolpert & Flanagan, 2001), is not", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0869445800781, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.0869445800781, - 274.1899108886719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "affected by motor neuron disease. Indeed, it is surprising that similar deficits of", - "origin": [ - 54.0, - 282.35992431640625 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 377.9980163574219, - 285.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 377.9980163574219, - 285.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grip force control during vertical arm movements with a hand-held object were", - "origin": [ - 54.0, - 293.3399353027344 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0409851074219, - 296.1499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 378.0409851074219, - 296.1499328613281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "found in patients with cerebellar degeneration (Babin Ratté et al., 1999; Nowak et", - "origin": [ - 54.0, - 304.37994384765625 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.01202392578125, - 307.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.01202392578125, - 307.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "al., 2002) and in children with developmental coordination disorder that affects", - "origin": [ - 54.0, - 315.3599548339844 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.05999755859375, - 318.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.05999755859375, - 318.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the ontogenetical maturation of the cerebellum (Hill & Wing, 1999). Patients with", - "origin": [ - 54.0, - 326.3399658203125 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 377.9900207519531, - 329.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 377.9900207519531, - 329.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cerebellar lesions show difficulties to select appropriate grip force levels and dis-", - "origin": [ - 54.0, - 337.3199768066406 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 377.9980163574219, - 340.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 377.9980163574219, - 340.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "turbances of the precise temporal grip force coupling with the loads (Babin Ratté", - "origin": [ - 54.0, - 348.3599853515625 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.07000732421875, - 351.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.07000732421875, - 351.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "et al., 1999; Fellows et al., 2001; Nowak et al., 2002). However, the investigation", - "origin": [ - 54.0, - 359.3399963378906 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.0813293457031, - 362.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 378.0813293457031, - 362.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of children with perinatal motor cortical lesions also demonstrated disruption of", - "origin": [ - 54.0, - 370.32000732421875 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 378.0800476074219, - 373.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 359.7900085449219, - 378.0800476074219, - 373.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the temporal coupling between grip and load forces similar to that observed in", - "origin": [ - 54.0, - 381.3600158691406 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 378.0510559082031, - 384.1700134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.83001708984375, - 378.0510559082031, - 384.1700134277344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "patients with cerebellar disorders (Eliasson et al., 1995; Forssberg et al., 1999).", - "origin": [ - 54.0, - 392.34002685546875 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.02301025390625, - 395.1500244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 381.8100280761719, - 378.02301025390625, - 395.1500244140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The functional anatomical connections between the cerebellum and the motor cor-", - "origin": [ - 54.0, - 403.32000732421875 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 377.9859313964844, - 406.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 392.7900085449219, - 377.9859313964844, - 406.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tices give one possible explanation for the similar impairments of the temporal", - "origin": [ - 54.0, - 414.3599853515625 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 378.0650329589844, - 417.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 403.8299865722656, - 378.0650329589844, - 417.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "regulation of the grip force profile observed in patients with cerebellar and motor", - "origin": [ - 54.0, - 425.3399963378906 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0460205078125, - 428.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 414.80999755859375, - 378.0460205078125, - 428.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cortical lesions. The cerebellum provides efferent projections to the motor cortices", - "origin": [ - 54.0, - 436.32000732421875 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0230712890625, - 439.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 425.7900085449219, - 378.0230712890625, - 439.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(Hoover & Strick, 1999) and basal ganglia (Middleton & Strick, 2000) from which", - "origin": [ - 54.0, - 447.3599853515625 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0530090332031, - 450.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 436.8299865722656, - 378.0530090332031, - 450.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "it in turn receives afferent connections.", - "origin": [ - 54.0, - 458.3399658203125 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 209.4190216064453, - 461.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 447.8099670410156, - 209.4190216064453, - 461.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "We demonstrate that functional impairment of motor execution, caused by", - "origin": [ - 78.0, - 469.3199768066406 - ], - "bbox": [ - 78.0, - 458.78997802734375, - 378.0420227050781, - 472.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 458.78997802734375, - 378.0420227050781, - 472.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lesions of the primary motor cortex and the spinal motor neurons that directly", - "origin": [ - 54.0, - 480.3599853515625 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0419921875, - 483.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 469.8299865722656, - 378.0419921875, - 483.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "control the finger forces (Cole et al., 1999; Lemon et al., 1986), results in timing", - "origin": [ - 54.0, - 491.3399658203125 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 378.0680236816406, - 494.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.8099670410156, - 378.0680236816406, - 494.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "deficits of prehensile finger forces despite a probably intact internal model possi-", - "origin": [ - 54.0, - 502.3199462890625 - ], - "bbox": [ - 54.0, - 491.7899475097656, - 378.05804443359375, - 505.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 491.7899475097656, - 378.05804443359375, - 505.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "bly implemented within the cerebellum (Miall et al., 1993; Wolpert & Flanagan,", - "origin": [ - 54.0, - 513.3599853515625 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0150451660156, - 516.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 502.8299865722656, - 378.0150451660156, - 516.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2001). As the cerebellum is unaffected by motor neuron disease, the problems of", - "origin": [ - 54.0, - 524.3399658203125 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 377.9989929199219, - 527.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 513.8099365234375, - 377.9989929199219, - 527.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "timing the grip force profile observed in 3 of 5 ALS patients may result either", - "origin": [ - 54.0, - 535.3199462890625 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.0140075683594, - 538.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 524.7899169921875, - 378.0140075683594, - 538.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "directly from deficient execution of descending motor commands or be secondary", - "origin": [ - 54.0, - 546.3599853515625 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.0390625, - 549.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 535.8299560546875, - 378.0390625, - 549.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to impairments of movement coordination. The latter may be caused by alterations", - "origin": [ - 54.0, - 557.3399658203125 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.02703857421875, - 560.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 546.8099365234375, - 378.02703857421875, - 560.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in gamma motor neuron activity, also affecting proprioceptive feedback, and/or", - "origin": [ - 54.0, - 568.3199462890625 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.0609436035156, - 571.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 557.7899169921875, - 378.0609436035156, - 571.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "hampered agonist-antagonist muscle activation due to spasticity.", - "origin": [ - 54.0, - 579.3599853515625 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 310.7950744628906, - 582.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 568.8299560546875, - 310.7950744628906, - 582.1699829101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The uncoordinated grip force output observed in our ALS patients may also", - "origin": [ - 78.0, - 590.3399658203125 - ], - "bbox": [ - 78.0, - 579.8099365234375, - 378.0470886230469, - 593.1499633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 579.8099365234375, - 378.0470886230469, - 593.1499633789062 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "result from reorganization processes within a well-documented network of mul-", - "origin": [ - 54.0, - 601.3199462890625 - ], - "bbox": [ - 54.0, - 590.7899169921875, - 378.0009765625, - 604.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 590.7899169921875, - 378.0009765625, - 604.1299438476562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tiple hand representations. Several cerebral motor cortices (primary motor, supple-", - "origin": [ - 54.0, - 612.3599853515625 - ], - "bbox": [ - 54.0, - 601.8299560546875, - 378.0320129394531, - 615.1699829101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 601.8299560546875, - 378.0320129394531, - 615.1699829101562 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 13, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_14": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.0859375, - 362.1499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mentary motor, premotor, and cingulate motor cortices) and the cerebellum coop-", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.06097412109375, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.06097412109375, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "erate when controlling human hand and finger movements. Studies on humans", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.007080078125, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.007080078125, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "performing manual tasks using positron emission tomography and functional mag-", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.03387451171875, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.03387451171875, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "netic resonance imaging demonstrated that several motor cortices are organized in", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0689697265625, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0689697265625, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "distributed and parallel patterns through basal ganglia-thalamo-cortical and", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0418395996094, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0418395996094, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cerebello-thalamo-cortical projections (Hoover & Strick, 1999; Kinoshita et al.,", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0419921875, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0419921875, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2000; Kuhtz-Buschbeck et al., 2001; Middleton & Strick, 2000). In simple motor", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.031005859375, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.031005859375, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tasks involving movements of the hand, all other motor cortices were active in", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 377.9929504394531, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 377.9929504394531, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "concert with the primary motor cortex (Kinoshita et al., 2000; Kuhtz-Buschbeck et", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.01904296875, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.01904296875, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "al., 2001; Roland et al., 1980). More complex sequential finger movements acti-", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.0489196777344, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.0489196777344, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "vated the supplementary motor area and also these cortical motor areas, which", - "origin": [ - 54.0, - 183.35983276367188 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.0660400390625, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.0660400390625, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "were active in simple motor tasks of the fingers (Rao et al., 1997). The undifferen-", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.06695556640625, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.06695556640625, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tiated grip force output generated in at least 3 of 5 ALS patients may have resulted", - "origin": [ - 54.0, - 205.37985229492188 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.044921875, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.044921875, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "from the impaired cortical processing of the descending motor commands overrid-", - "origin": [ - 54.0, - 216.35986328125 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.02392578125, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.02392578125, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing the anticipatory grip force planning provided by an intact internal model prob-", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0709533691406, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0709533691406, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ably implemented within the cerebellum.", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 218.13800048828125, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 218.13800048828125, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "It is difficult to speculate on the reasons why two ALS patients (A.K. and", - "origin": [ - 78.0, - 249.35989379882812 - ], - "bbox": [ - 78.0, - 238.82989501953125, - 377.99005126953125, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 238.82989501953125, - 377.99005126953125, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "G.A.) were able to adequately adjust the grip force profile to the differential load-", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.04803466796875, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.04803466796875, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing requirements resulting from upward and downward movements. One possible", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.03704833984375, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.03704833984375, - 274.1899108886719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "explanation is that the functional motor impairment was less severe in these 2", - "origin": [ - 54.0, - 282.35992431640625 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0221252441406, - 285.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0221252441406, - 285.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "patients, resulting in a similar precise temporal regulation of the grip force profile", - "origin": [ - 54.0, - 293.3399353027344 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 377.9909973144531, - 296.1499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 377.9909973144531, - 296.1499328613281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "as observed in healthy subjects. However, the clinical disability, as assessed by the", - "origin": [ - 54.0, - 304.37994384765625 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.0078125, - 307.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.0078125, - 307.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS severity scale (Hillel et al., 1989), was not significantly different in these 2", - "origin": [ - 54.0, - 315.3599548339844 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.0439453125, - 318.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.0439453125, - 318.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "patients compared to the other ALS patients (compare Table 1), indicating that", - "origin": [ - 54.0, - 326.3399658203125 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0859375, - 329.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0859375, - 329.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "clinical disability measures are not sufficiently correlated with impairments of grip", - "origin": [ - 54.0, - 337.3199768066406 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0289611816406, - 340.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0289611816406, - 340.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force regulation. Follow-up investigations are required to study how manipulative", - "origin": [ - 54.0, - 348.3599853515625 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.0039367675781, - 351.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.0039367675781, - 351.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forces are affected by progressive motor deficits during the clinical course of ALS.", - "origin": [ - 54.0, - 359.3399963378906 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 377.9849548339844, - 362.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 377.9849548339844, - 362.1499938964844 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 54.0, - 390.80999755859375, - 378.0790100097656, - 514.1299438476562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Impairments of fine finger movements leading to profound disability in the activi-", - "origin": [ - 54.0, - 401.3399963378906 - ], - "bbox": [ - 54.0, - 390.80999755859375, - 378.02197265625, - 404.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 390.80999755859375, - 378.02197265625, - 404.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ties of daily living are frequent during the natural course of ALS. We observed that", - "origin": [ - 54.0, - 412.32000732421875 - ], - "bbox": [ - 54.0, - 401.7900085449219, - 378.00506591796875, - 415.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 401.7900085449219, - 378.00506591796875, - 415.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS patients produced inefficiently elevated grip forces when holding and mov-", - "origin": [ - 54.0, - 423.3599853515625 - ], - "bbox": [ - 54.0, - 412.8299865722656, - 378.0059814453125, - 426.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 412.8299865722656, - 378.0059814453125, - 426.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing a hand-held object. In 3 of 5 patients, the grip and load force profiles were not", - "origin": [ - 54.0, - 434.3399658203125 - ], - "bbox": [ - 54.0, - 423.8099670410156, - 378.0500183105469, - 437.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 423.8099670410156, - 378.0500183105469, - 437.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "adequately processed to match the differential effects of movement direction on", - "origin": [ - 54.0, - 445.3199768066406 - ], - "bbox": [ - 54.0, - 434.78997802734375, - 378.0790100097656, - 448.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 434.78997802734375, - 378.0790100097656, - 448.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the object loading. The undifferentiated grip force output in ALS should result", - "origin": [ - 54.0, - 456.3599853515625 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.0120544433594, - 459.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.0120544433594, - 459.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "from deficient motor execution and/or impaired movement coordination overrid-", - "origin": [ - 54.0, - 467.3399658203125 - ], - "bbox": [ - 54.0, - 456.8099670410156, - 378.0259094238281, - 470.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 456.8099670410156, - 378.0259094238281, - 470.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing the precise anticipatory motor planning provided by an intact internal model.", - "origin": [ - 54.0, - 478.3199462890625 - ], - "bbox": [ - 54.0, - 467.7899475097656, - 378.0490417480469, - 481.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 467.7899475097656, - 378.0490417480469, - 481.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The analysis of grip force in motor neuron disease is sufficient to demonstrate", - "origin": [ - 54.0, - 489.3599548339844 - ], - "bbox": [ - 54.0, - 478.8299560546875, - 378.0280456542969, - 492.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 478.8299560546875, - 378.0280456542969, - 492.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "deficits of automatic manual motor control and offers unique insights into the dis-", - "origin": [ - 54.0, - 500.3399658203125 - ], - "bbox": [ - 54.0, - 489.8099670410156, - 378.0160217285156, - 503.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 489.8099670410156, - 378.0160217285156, - 503.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tinct processes of movement planning and movement execution.", - "origin": [ - 54.0, - 511.3199462890625 - ], - "bbox": [ - 54.0, - 500.7899475097656, - 310.22900390625, - 514.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 500.7899475097656, - 310.22900390625, - 514.1299438476562 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 54.0, - 543.843017578125, - 378.0811767578125, - 611.4095458984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Asanuma, H., & Arissian, K. (1984). Experiments on functional role of peripheral input to", - "origin": [ - 54.0, - 553.3200073242188 - ], - "bbox": [ - 54.0, - 543.843017578125, - 378.0811767578125, - 555.8489990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 543.843017578125, - 378.0811767578125, - 555.8489990234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "motor cortex during voluntary movements in the monkey. ", - "origin": [ - 78.00029754638672, - 564.3602905273438 - ], - "bbox": [ - 78.00029754638672, - 554.88330078125, - 287.58685302734375, - 566.8892822265625 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neurophysiol-", - "origin": [ - 287.5805969238281, - 564.3602905273438 - ], - "bbox": [ - 287.5805969238281, - 555.80126953125, - 378.0207824707031, - 566.790283203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00029754638672, - 554.88330078125, - 378.0207824707031, - 566.8892822265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "ogy,", - "origin": [ - 78.00030517578125, - 575.34033203125 - ], - "bbox": [ - 78.00030517578125, - 566.7813110351562, - 92.67120361328125, - 577.7703247070312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 92.64060974121094, - 575.34033203125 - ], - "bbox": [ - 92.64060974121094, - 565.8633422851562, - 94.89060974121094, - 577.8693237304688 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "52", - "origin": [ - 94.9203109741211, - 575.34033203125 - ], - "bbox": [ - 94.9203109741211, - 565.9443359375, - 103.9203109741211, - 578.4093017578125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 212-227.", - "origin": [ - 103.9203109741211, - 575.34033203125 - ], - "bbox": [ - 103.9203109741211, - 565.8633422851562, - 140.66371154785156, - 577.8693237304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00030517578125, - 565.8633422851562, - 140.66371154785156, - 578.4093017578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Babin-Ratté, S., Sirigu, A., Gilles, M., & Wing, A.M. (1999). Impaired anticipatory finger", - "origin": [ - 54.0000114440918, - 586.3203125 - ], - "bbox": [ - 54.0000114440918, - 576.8433227539062, - 378.02813720703125, - 588.8493041992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0000114440918, - 576.8433227539062, - 378.02813720703125, - 588.8493041992188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grip-force adjustments in a case of cerebellar degeneration. ", - "origin": [ - 78.00031280517578, - 597.360595703125 - ], - "bbox": [ - 78.00031280517578, - 587.8836059570312, - 292.45782470703125, - 599.8895874023438 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Re-", - "origin": [ - 292.38031005859375, - 597.360595703125 - ], - "bbox": [ - 292.38031005859375, - 588.8015747070312, - 378.0045471191406, - 599.7905883789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00031280517578, - 587.8836059570312, - 378.0045471191406, - 599.8895874023438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "search,", - "origin": [ - 78.00030517578125, - 608.340576171875 - ], - "bbox": [ - 78.00030517578125, - 599.7815551757812, - 103.77090454101562, - 610.7705688476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 103.74030303955078, - 608.340576171875 - ], - "bbox": [ - 103.74030303955078, - 598.8635864257812, - 105.99030303955078, - 610.8695678710938 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "128", - "origin": [ - 106.02000427246094, - 608.340576171875 - ], - "bbox": [ - 106.02000427246094, - 598.944580078125, - 119.52000427246094, - 611.4095458984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 81-85.", - "origin": [ - 119.52000427246094, - 608.340576171875 - ], - "bbox": [ - 119.52000427246094, - 598.8635864257812, - 147.25709533691406, - 610.8695678710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00030517578125, - 598.8635864257812, - 147.25709533691406, - 611.4095458984375 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 245.27999999999997, - 121.91999999999999, - 254.88, - 130.56 - ], - "image_path": "equations_inline/14_245_121_254_130.jpg" - }, - { - "bbox": [ - 90.72, - 547.1999999999999, - 112.8, - 557.28 - ], - "image_path": "equations_inline/14_90_547_112_557.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 62.849884033203125, - 432.0, - 611.4095458984375 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 62.849884033203125, - 378.0859375, - 362.1499938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mentary motor, premotor, and cingulate motor cortices) and the cerebellum coop-", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.06097412109375, - 76.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 62.849884033203125, - 378.06097412109375, - 76.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "erate when controlling human hand and finger movements. Studies on humans", - "origin": [ - 54.0, - 84.35986328125 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.007080078125, - 87.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 73.82986450195312, - 378.007080078125, - 87.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "performing manual tasks using positron emission tomography and functional mag-", - "origin": [ - 54.0, - 95.33984375 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.03387451171875, - 98.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 84.80984497070312, - 378.03387451171875, - 98.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "netic resonance imaging demonstrated that several motor cortices are organized in", - "origin": [ - 54.0, - 106.37982177734375 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0689697265625, - 109.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 95.84982299804688, - 378.0689697265625, - 109.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "distributed and parallel patterns through basal ganglia-thalamo-cortical and", - "origin": [ - 54.0, - 117.35980224609375 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0418395996094, - 120.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 106.82980346679688, - 378.0418395996094, - 120.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cerebello-thalamo-cortical projections (Hoover & Strick, 1999; Kinoshita et al.,", - "origin": [ - 54.0, - 128.33978271484375 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0419921875, - 131.1497802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 117.80978393554688, - 378.0419921875, - 131.1497802734375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2000; Kuhtz-Buschbeck et al., 2001; Middleton & Strick, 2000). In simple motor", - "origin": [ - 54.0, - 139.37979125976562 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.031005859375, - 142.18978881835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 128.84979248046875, - 378.031005859375, - 142.18978881835938 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tasks involving movements of the hand, all other motor cortices were active in", - "origin": [ - 54.0, - 150.35980224609375 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 377.9929504394531, - 153.1697998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 139.82980346679688, - 377.9929504394531, - 153.1697998046875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "concert with the primary motor cortex (Kinoshita et al., 2000; Kuhtz-Buschbeck et", - "origin": [ - 54.0, - 161.33981323242188 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.01904296875, - 164.14981079101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 150.809814453125, - 378.01904296875, - 164.14981079101562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "al., 2001; Roland et al., 1980). More complex sequential finger movements acti-", - "origin": [ - 54.0, - 172.37982177734375 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.0489196777344, - 175.1898193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 161.84982299804688, - 378.0489196777344, - 175.1898193359375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "vated the supplementary motor area and also these cortical motor areas, which", - "origin": [ - 54.0, - 183.35983276367188 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.0660400390625, - 186.16983032226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 172.829833984375, - 378.0660400390625, - 186.16983032226562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "were active in simple motor tasks of the fingers (Rao et al., 1997). The undifferen-", - "origin": [ - 54.0, - 194.33984375 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.06695556640625, - 197.14984130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 183.80984497070312, - 378.06695556640625, - 197.14984130859375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tiated grip force output generated in at least 3 of 5 ALS patients may have resulted", - "origin": [ - 54.0, - 205.37985229492188 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.044921875, - 208.18984985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 194.849853515625, - 378.044921875, - 208.18984985351562 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "from the impaired cortical processing of the descending motor commands overrid-", - "origin": [ - 54.0, - 216.35986328125 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.02392578125, - 219.16986083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 205.82986450195312, - 378.02392578125, - 219.16986083984375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing the anticipatory grip force planning provided by an intact internal model prob-", - "origin": [ - 54.0, - 227.33987426757812 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0709533691406, - 230.14987182617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 216.80987548828125, - 378.0709533691406, - 230.14987182617188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ably implemented within the cerebellum.", - "origin": [ - 54.0, - 238.3798828125 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 218.13800048828125, - 241.18988037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 227.84988403320312, - 218.13800048828125, - 241.18988037109375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "It is difficult to speculate on the reasons why two ALS patients (A.K. and", - "origin": [ - 78.0, - 249.35989379882812 - ], - "bbox": [ - 78.0, - 238.82989501953125, - 377.99005126953125, - 252.16989135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0, - 238.82989501953125, - 377.99005126953125, - 252.16989135742188 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "G.A.) were able to adequately adjust the grip force profile to the differential load-", - "origin": [ - 54.0, - 260.33990478515625 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.04803466796875, - 263.14990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 249.80990600585938, - 378.04803466796875, - 263.14990234375 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing requirements resulting from upward and downward movements. One possible", - "origin": [ - 54.0, - 271.3799133300781 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.03704833984375, - 274.1899108886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 260.84991455078125, - 378.03704833984375, - 274.1899108886719 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "explanation is that the functional motor impairment was less severe in these 2", - "origin": [ - 54.0, - 282.35992431640625 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0221252441406, - 285.169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 271.8299255371094, - 378.0221252441406, - 285.169921875 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "patients, resulting in a similar precise temporal regulation of the grip force profile", - "origin": [ - 54.0, - 293.3399353027344 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 377.9909973144531, - 296.1499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 282.8099365234375, - 377.9909973144531, - 296.1499328613281 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "as observed in healthy subjects. However, the clinical disability, as assessed by the", - "origin": [ - 54.0, - 304.37994384765625 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.0078125, - 307.18994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 293.8499450683594, - 378.0078125, - 307.18994140625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS severity scale (Hillel et al., 1989), was not significantly different in these 2", - "origin": [ - 54.0, - 315.3599548339844 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.0439453125, - 318.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 304.8299560546875, - 378.0439453125, - 318.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "patients compared to the other ALS patients (compare Table 1), indicating that", - "origin": [ - 54.0, - 326.3399658203125 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0859375, - 329.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 315.8099670410156, - 378.0859375, - 329.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "clinical disability measures are not sufficiently correlated with impairments of grip", - "origin": [ - 54.0, - 337.3199768066406 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0289611816406, - 340.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 326.78997802734375, - 378.0289611816406, - 340.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "force regulation. Follow-up investigations are required to study how manipulative", - "origin": [ - 54.0, - 348.3599853515625 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.0039367675781, - 351.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 337.8299865722656, - 378.0039367675781, - 351.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forces are affected by progressive motor deficits during the clinical course of ALS.", - "origin": [ - 54.0, - 359.3399963378906 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 377.9849548339844, - 362.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 348.80999755859375, - 377.9849548339844, - 362.1499938964844 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 54.0, - 390.80999755859375, - 378.0790100097656, - 514.1299438476562 - ], - "lines": [ - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Impairments of fine finger movements leading to profound disability in the activi-", - "origin": [ - 54.0, - 401.3399963378906 - ], - "bbox": [ - 54.0, - 390.80999755859375, - 378.02197265625, - 404.1499938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 390.80999755859375, - 378.02197265625, - 404.1499938964844 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ties of daily living are frequent during the natural course of ALS. We observed that", - "origin": [ - 54.0, - 412.32000732421875 - ], - "bbox": [ - 54.0, - 401.7900085449219, - 378.00506591796875, - 415.1300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 401.7900085449219, - 378.00506591796875, - 415.1300048828125 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ALS patients produced inefficiently elevated grip forces when holding and mov-", - "origin": [ - 54.0, - 423.3599853515625 - ], - "bbox": [ - 54.0, - 412.8299865722656, - 378.0059814453125, - 426.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 412.8299865722656, - 378.0059814453125, - 426.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing a hand-held object. In 3 of 5 patients, the grip and load force profiles were not", - "origin": [ - 54.0, - 434.3399658203125 - ], - "bbox": [ - 54.0, - 423.8099670410156, - 378.0500183105469, - 437.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 423.8099670410156, - 378.0500183105469, - 437.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "adequately processed to match the differential effects of movement direction on", - "origin": [ - 54.0, - 445.3199768066406 - ], - "bbox": [ - 54.0, - 434.78997802734375, - 378.0790100097656, - 448.1299743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 434.78997802734375, - 378.0790100097656, - 448.1299743652344 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the object loading. The undifferentiated grip force output in ALS should result", - "origin": [ - 54.0, - 456.3599853515625 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.0120544433594, - 459.16998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 445.8299865722656, - 378.0120544433594, - 459.16998291015625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "from deficient motor execution and/or impaired movement coordination overrid-", - "origin": [ - 54.0, - 467.3399658203125 - ], - "bbox": [ - 54.0, - 456.8099670410156, - 378.0259094238281, - 470.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 456.8099670410156, - 378.0259094238281, - 470.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ing the precise anticipatory motor planning provided by an intact internal model.", - "origin": [ - 54.0, - 478.3199462890625 - ], - "bbox": [ - 54.0, - 467.7899475097656, - 378.0490417480469, - 481.12994384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 467.7899475097656, - 378.0490417480469, - 481.12994384765625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The analysis of grip force in motor neuron disease is sufficient to demonstrate", - "origin": [ - 54.0, - 489.3599548339844 - ], - "bbox": [ - 54.0, - 478.8299560546875, - 378.0280456542969, - 492.1699523925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 478.8299560546875, - 378.0280456542969, - 492.1699523925781 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "deficits of automatic manual motor control and offers unique insights into the dis-", - "origin": [ - 54.0, - 500.3399658203125 - ], - "bbox": [ - 54.0, - 489.8099670410156, - 378.0160217285156, - 503.14996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 489.8099670410156, - 378.0160217285156, - 503.14996337890625 - ] - }, - { - "spans": [ - { - "size": 10.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tinct processes of movement planning and movement execution.", - "origin": [ - 54.0, - 511.3199462890625 - ], - "bbox": [ - 54.0, - 500.7899475097656, - 310.22900390625, - 514.1299438476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 500.7899475097656, - 310.22900390625, - 514.1299438476562 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 54.0, - 543.843017578125, - 378.0811767578125, - 611.4095458984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Asanuma, H., & Arissian, K. (1984). Experiments on functional role of peripheral input to", - "origin": [ - 54.0, - 553.3200073242188 - ], - "bbox": [ - 54.0, - 543.843017578125, - 378.0811767578125, - 555.8489990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 543.843017578125, - 378.0811767578125, - 555.8489990234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "motor cortex during voluntary movements in the monkey. ", - "origin": [ - 78.00029754638672, - 564.3602905273438 - ], - "bbox": [ - 78.00029754638672, - 554.88330078125, - 287.58685302734375, - 566.8892822265625 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neurophysiol-", - "origin": [ - 287.5805969238281, - 564.3602905273438 - ], - "bbox": [ - 287.5805969238281, - 555.80126953125, - 378.0207824707031, - 566.790283203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00029754638672, - 554.88330078125, - 378.0207824707031, - 566.8892822265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "ogy,", - "origin": [ - 78.00030517578125, - 575.34033203125 - ], - "bbox": [ - 78.00030517578125, - 566.7813110351562, - 92.67120361328125, - 577.7703247070312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 92.64060974121094, - 575.34033203125 - ], - "bbox": [ - 92.64060974121094, - 565.8633422851562, - 94.89060974121094, - 577.8693237304688 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "52", - "origin": [ - 94.9203109741211, - 575.34033203125 - ], - "bbox": [ - 94.9203109741211, - 565.9443359375, - 103.9203109741211, - 578.4093017578125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 212-227.", - "origin": [ - 103.9203109741211, - 575.34033203125 - ], - "bbox": [ - 103.9203109741211, - 565.8633422851562, - 140.66371154785156, - 577.8693237304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00030517578125, - 565.8633422851562, - 140.66371154785156, - 578.4093017578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Babin-Ratté, S., Sirigu, A., Gilles, M., & Wing, A.M. (1999). Impaired anticipatory finger", - "origin": [ - 54.0000114440918, - 586.3203125 - ], - "bbox": [ - 54.0000114440918, - 576.8433227539062, - 378.02813720703125, - 588.8493041992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0000114440918, - 576.8433227539062, - 378.02813720703125, - 588.8493041992188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "grip-force adjustments in a case of cerebellar degeneration. ", - "origin": [ - 78.00031280517578, - 597.360595703125 - ], - "bbox": [ - 78.00031280517578, - 587.8836059570312, - 292.45782470703125, - 599.8895874023438 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Re-", - "origin": [ - 292.38031005859375, - 597.360595703125 - ], - "bbox": [ - 292.38031005859375, - 588.8015747070312, - 378.0045471191406, - 599.7905883789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00031280517578, - 587.8836059570312, - 378.0045471191406, - 599.8895874023438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "search,", - "origin": [ - 78.00030517578125, - 608.340576171875 - ], - "bbox": [ - 78.00030517578125, - 599.7815551757812, - 103.77090454101562, - 610.7705688476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 103.74030303955078, - 608.340576171875 - ], - "bbox": [ - 103.74030303955078, - 598.8635864257812, - 105.99030303955078, - 610.8695678710938 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "128", - "origin": [ - 106.02000427246094, - 608.340576171875 - ], - "bbox": [ - 106.02000427246094, - 598.944580078125, - 119.52000427246094, - 611.4095458984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 81-85.", - "origin": [ - 119.52000427246094, - 608.340576171875 - ], - "bbox": [ - 119.52000427246094, - 598.8635864257812, - 147.25709533691406, - 610.8695678710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00030517578125, - 598.8635864257812, - 147.25709533691406, - 611.4095458984375 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 6, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 14, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_15": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 63.90288543701172, - 378.0649719238281, - 614.8910522460938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Blakemore, S.J., Goodbody, S.J., & Wolpert, D.M. (1998). Predicting the consequences of", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 63.90288543701172, - 378.0361328125, - 75.90888214111328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 63.90288543701172, - 378.0361328125, - 75.90888214111328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "our own actions: The role of sensorimotor context estimation. ", - "origin": [ - 78.00029754638672, - 84.35986328125 - ], - "bbox": [ - 78.00029754638672, - 74.88286590576172, - 310.4496765136719, - 86.88886260986328 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neuro-", - "origin": [ - 311.5205993652344, - 84.35986328125 - ], - "bbox": [ - 311.5205993652344, - 75.80086517333984, - 378.0000305175781, - 86.78986358642578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00029754638672, - 74.88286590576172, - 378.0000305175781, - 86.88886260986328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "science,", - "origin": [ - 78.00030517578125, - 95.33984375 - ], - "bbox": [ - 78.00030517578125, - 86.78084564208984, - 106.65090942382812, - 97.76984405517578 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 106.62030792236328, - 95.33984375 - ], - "bbox": [ - 106.62030792236328, - 85.86284637451172, - 108.87030792236328, - 97.86884307861328 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "18", - "origin": [ - 108.90000915527344, - 95.33984375 - ], - "bbox": [ - 108.90000915527344, - 85.94384765625, - 117.90000915527344, - 98.40884399414062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 7511-7518.", - "origin": [ - 117.90000915527344, - 95.33984375 - ], - "bbox": [ - 117.90000915527344, - 85.86284637451172, - 163.65420532226562, - 97.86884307861328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00030517578125, - 85.86284637451172, - 163.65420532226562, - 98.40884399414062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Buys, E.J., Lemon, R.N., Mantel, G.W.H., & Muir, R.B. (1986). Selective facilitation of", - "origin": [ - 54.0000114440918, - 106.380126953125 - ], - "bbox": [ - 54.0000114440918, - 96.90312957763672, - 377.9957275390625, - 108.90912628173828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0000114440918, - 96.90312957763672, - 377.9957275390625, - 108.90912628173828 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "different hand muscles by single corticospinal neurones in the conscious monkey.", - "origin": [ - 78.00031280517578, - 117.360107421875 - ], - "bbox": [ - 78.00031280517578, - 107.88311004638672, - 377.978515625, - 119.88910675048828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00031280517578, - 107.88311004638672, - 377.978515625, - 119.88910675048828 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Physiology (London),", - "origin": [ - 78.00031280517578, - 128.340087890625 - ], - "bbox": [ - 78.00031280517578, - 119.78108978271484, - 195.11460876464844, - 130.77008056640625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 195.12002563476562, - 128.340087890625 - ], - "bbox": [ - 195.12002563476562, - 118.86309051513672, - 197.37002563476562, - 130.8690948486328 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "381", - "origin": [ - 197.39971923828125, - 128.340087890625 - ], - "bbox": [ - 197.39971923828125, - 118.944091796875, - 210.89971923828125, - 131.40908813476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 529-549.", - "origin": [ - 210.89971923828125, - 128.340087890625 - ], - "bbox": [ - 210.89971923828125, - 118.86309051513672, - 247.64491271972656, - 130.8690948486328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00031280517578, - 118.86309051513672, - 247.64491271972656, - 131.40908813476562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Cole, K.J., Rotella, D.L., & Harper, J.G. (1999). Mechanisms for age-related changes of", - "origin": [ - 54.00001525878906, - 139.38040161132812 - ], - "bbox": [ - 54.00001525878906, - 129.9033966064453, - 378.0352783203125, - 141.90940856933594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 129.9033966064453, - 378.0352783203125, - 141.90940856933594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fingertip forces during precision gripping and lifting in adults. ", - "origin": [ - 78.00031280517578, - 150.36041259765625 - ], - "bbox": [ - 78.00031280517578, - 140.88340759277344, - 310.99688720703125, - 152.88941955566406 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neuro-", - "origin": [ - 311.8203125, - 150.36041259765625 - ], - "bbox": [ - 311.8203125, - 141.80140686035156, - 378.00006103515625, - 152.7904052734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00031280517578, - 140.88340759277344, - 378.00006103515625, - 152.88941955566406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "science,", - "origin": [ - 78.00032043457031, - 161.34042358398438 - ], - "bbox": [ - 78.00032043457031, - 152.7814178466797, - 106.65092468261719, - 163.77041625976562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 106.62032318115234, - 161.34042358398438 - ], - "bbox": [ - 106.62032318115234, - 151.86341857910156, - 108.87032318115234, - 163.8694305419922 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "19", - "origin": [ - 108.9000244140625, - 161.34042358398438 - ], - "bbox": [ - 108.9000244140625, - 151.94442749023438, - 117.9000244140625, - 164.409423828125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 3238-3247.", - "origin": [ - 117.9000244140625, - 161.34042358398438 - ], - "bbox": [ - 117.9000244140625, - 151.86341857910156, - 163.6542205810547, - 163.8694305419922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032043457031, - 151.86341857910156, - 163.6542205810547, - 164.409423828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Eliasson, A.C., Gordon, A.M., & Forssberg, H. (1995). Tactile control of fingertip forces", - "origin": [ - 54.00002670288086, - 172.3807373046875 - ], - "bbox": [ - 54.00002670288086, - 162.9037322998047, - 378.0362548828125, - 174.9097442626953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00002670288086, - 162.9037322998047, - 378.0362548828125, - 174.9097442626953 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "during grasping in children with cerebral palsy. ", - "origin": [ - 78.00032806396484, - 183.36074829101562 - ], - "bbox": [ - 78.00032806396484, - 173.8837432861328, - 250.08753967285156, - 185.88975524902344 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Developmental Medicine and Child", - "origin": [ - 250.02001953125, - 183.36074829101562 - ], - "bbox": [ - 250.02001953125, - 174.80174255371094, - 378.0118103027344, - 185.79074096679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032806396484, - 173.8837432861328, - 378.0118103027344, - 185.88975524902344 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Neurology,", - "origin": [ - 78.00032043457031, - 194.34075927734375 - ], - "bbox": [ - 78.00032043457031, - 185.78175354003906, - 117.27182006835938, - 196.770751953125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 117.24032592773438, - 194.34075927734375 - ], - "bbox": [ - 117.24032592773438, - 184.86375427246094, - 119.49032592773438, - 196.86976623535156 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "37", - "origin": [ - 119.52002716064453, - 194.34075927734375 - ], - "bbox": [ - 119.52002716064453, - 184.94476318359375, - 128.52001953125, - 197.40975952148438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 72-84.", - "origin": [ - 128.52001953125, - 194.34075927734375 - ], - "bbox": [ - 128.52001953125, - 184.86375427246094, - 156.26611328125, - 196.86976623535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032043457031, - 184.86375427246094, - 156.26611328125, - 197.40975952148438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Espinoza, E., & Smith, A.M. (1990). Purkinje cell simple spike activity during grasping and", - "origin": [ - 54.000022888183594, - 205.38107299804688 - ], - "bbox": [ - 54.000022888183594, - 195.90406799316406, - 378.0244445800781, - 207.9100799560547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000022888183594, - 195.90406799316406, - 378.0244445800781, - 207.9100799560547 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lifting objects of different textures and weights. ", - "origin": [ - 78.00032043457031, - 216.361083984375 - ], - "bbox": [ - 78.00032043457031, - 206.8840789794922, - 247.07066345214844, - 218.8900909423828 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neurophysiology,", - "origin": [ - 246.42002868652344, - 216.361083984375 - ], - "bbox": [ - 246.42002868652344, - 207.8020782470703, - 347.0113525390625, - 218.79107666015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 346.979736328125, - 216.361083984375 - ], - "bbox": [ - 346.979736328125, - 206.8840789794922, - 349.229736328125, - 218.8900909423828 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "64", - "origin": [ - 348.6600341796875, - 216.361083984375 - ], - "bbox": [ - 348.6600341796875, - 206.965087890625, - 357.64654541015625, - 219.43008422851562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 698-", - "origin": [ - 357.6600341796875, - 216.361083984375 - ], - "bbox": [ - 357.6600341796875, - 206.8840789794922, - 378.027099609375, - 218.8900909423828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032043457031, - 206.8840789794922, - 378.027099609375, - 219.43008422851562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "714.", - "origin": [ - 78.00033569335938, - 227.34109497070312 - ], - "bbox": [ - 78.00033569335938, - 217.8640899658203, - 93.75033569335938, - 229.87010192871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00033569335938, - 217.8640899658203, - 93.75033569335938, - 229.87010192871094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Fellows, S.J., Ernst, J., Schwarz, J.M., Töpper, R., & Noth J. (2001). Precision grip deficits", - "origin": [ - 54.000038146972656, - 238.38140869140625 - ], - "bbox": [ - 54.000038146972656, - 228.90440368652344, - 378.0119934082031, - 240.91041564941406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000038146972656, - 228.90440368652344, - 378.0119934082031, - 240.91041564941406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in cerebellar disorders in man. ", - "origin": [ - 78.00033569335938, - 249.36141967773438 - ], - "bbox": [ - 78.00033569335938, - 239.88441467285156, - 189.4779510498047, - 251.8904266357422 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Clinical Neurophysiology,", - "origin": [ - 189.4203338623047, - 249.36141967773438 - ], - "bbox": [ - 189.4203338623047, - 240.8024139404297, - 283.4739685058594, - 251.79141235351562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 283.4406433105469, - 249.36141967773438 - ], - "bbox": [ - 283.4406433105469, - 239.88441467285156, - 285.6906433105469, - 251.8904266357422 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "112", - "origin": [ - 285.7203369140625, - 249.36141967773438 - ], - "bbox": [ - 285.7203369140625, - 239.96542358398438, - 299.2203369140625, - 252.430419921875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1793-1802.", - "origin": [ - 299.2203369140625, - 249.36141967773438 - ], - "bbox": [ - 299.2203369140625, - 239.88441467285156, - 344.9682312011719, - 251.8904266357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00033569335938, - 239.88441467285156, - 344.9682312011719, - 252.430419921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Fellows, S.J., Noth, J., & Schwarz, J.M. (1998). Precision grip and Parkinson’s disease.", - "origin": [ - 54.000030517578125, - 260.3414306640625 - ], - "bbox": [ - 54.000030517578125, - 250.8644256591797, - 377.990234375, - 262.87042236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000030517578125, - 250.8644256591797, - 377.990234375, - 262.87042236328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Brain,", - "origin": [ - 78.00032806396484, - 271.3817443847656 - ], - "bbox": [ - 78.00032806396484, - 262.82275390625, - 100.57232666015625, - 273.8117370605469 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 100.62002563476562, - 271.3817443847656 - ], - "bbox": [ - 100.62002563476562, - 261.9047546386719, - 102.87002563476562, - 273.9107360839844 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "121", - "origin": [ - 102.84032440185547, - 271.3817443847656 - ], - "bbox": [ - 102.84032440185547, - 261.9857482910156, - 116.34032440185547, - 274.45074462890625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1771-1784.", - "origin": [ - 116.34032440185547, - 271.3817443847656 - ], - "bbox": [ - 116.34032440185547, - 261.9047546386719, - 162.0828094482422, - 273.9107360839844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032806396484, - 261.9047546386719, - 162.0828094482422, - 274.45074462890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Flanagan, J.R., & Wing, A.M. (1993). Modulation of grip force with load force during", - "origin": [ - 54.000022888183594, - 282.36175537109375 - ], - "bbox": [ - 54.000022888183594, - 272.884765625, - 378.04156494140625, - 284.8907470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000022888183594, - 272.884765625, - 378.04156494140625, - 284.8907470703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "point-to-point movements. ", - "origin": [ - 78.00032043457031, - 293.3417663574219 - ], - "bbox": [ - 78.00032043457031, - 283.8647766113281, - 175.91943359375, - 295.8707580566406 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Research,", - "origin": [ - 175.92031860351562, - 293.3417663574219 - ], - "bbox": [ - 175.92031860351562, - 284.78277587890625, - 284.5539245605469, - 295.7717590332031 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 284.5206298828125, - 293.3417663574219 - ], - "bbox": [ - 284.5206298828125, - 283.8647766113281, - 286.7706298828125, - 295.8707580566406 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "95", - "origin": [ - 286.8003234863281, - 293.3417663574219 - ], - "bbox": [ - 286.8003234863281, - 283.9457702636719, - 295.8003234863281, - 296.4107666015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 131-143.", - "origin": [ - 295.8003234863281, - 293.3417663574219 - ], - "bbox": [ - 295.8003234863281, - 283.8647766113281, - 332.5437316894531, - 295.8707580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032043457031, - 283.8647766113281, - 332.5437316894531, - 296.4107666015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Flanagan, J.R., & Wing, A.M. (1997). The role of internal models in motion planning and", - "origin": [ - 54.000030517578125, - 304.382080078125 - ], - "bbox": [ - 54.000030517578125, - 294.90509033203125, - 378.0396728515625, - 306.91107177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000030517578125, - 294.90509033203125, - 378.0396728515625, - 306.91107177734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "control: Evidence from grip force adjustments during movements of hand-held loads.", - "origin": [ - 78.00032806396484, - 315.3620910644531 - ], - "bbox": [ - 78.00032806396484, - 305.8851013183594, - 378.00823974609375, - 317.8910827636719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032806396484, - 305.8851013183594, - 378.00823974609375, - 317.8910827636719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neuroscience,", - "origin": [ - 78.00032806396484, - 326.34210205078125 - ], - "bbox": [ - 78.00032806396484, - 317.7831115722656, - 167.97425842285156, - 328.7720947265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 168.00033569335938, - 326.34210205078125 - ], - "bbox": [ - 168.00033569335938, - 316.8651123046875, - 170.25033569335938, - 328.87109375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "17", - "origin": [ - 170.22064208984375, - 326.34210205078125 - ], - "bbox": [ - 170.22064208984375, - 316.94610595703125, - 179.22064208984375, - 329.4111022949219 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1519-1528.", - "origin": [ - 179.22064208984375, - 326.34210205078125 - ], - "bbox": [ - 179.22064208984375, - 316.8651123046875, - 224.96763610839844, - 328.87109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032806396484, - 316.8651123046875, - 224.96763610839844, - 329.4111022949219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Forssberg, H., Eliasson, A.C., Redon-Zouitenn, C., Mercuri, E., & Dubowitz, L. (1999).", - "origin": [ - 54.000946044921875, - 337.3221130371094 - ], - "bbox": [ - 54.000946044921875, - 327.8451232910156, - 378.0180969238281, - 339.8511047363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000946044921875, - 327.8451232910156, - 378.0180969238281, - 339.8511047363281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Impaired grip-lift synergy in children with unilateral brain lesions. ", - "origin": [ - 78.0012435913086, - 348.3624267578125 - ], - "bbox": [ - 78.0012435913086, - 338.88543701171875, - 315.5446472167969, - 350.89141845703125 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Brain,", - "origin": [ - 315.0612487792969, - 348.3624267578125 - ], - "bbox": [ - 315.0612487792969, - 339.8034362792969, - 337.6935729980469, - 350.79241943359375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 337.6809387207031, - 348.3624267578125 - ], - "bbox": [ - 337.6809387207031, - 338.88543701171875, - 339.9309387207031, - 350.89141845703125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "122", - "origin": [ - 339.4206237792969, - 348.3624267578125 - ], - "bbox": [ - 339.4206237792969, - 338.9664306640625, - 352.9206237792969, - 351.4314270019531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1157-", - "origin": [ - 352.9206237792969, - 348.3624267578125 - ], - "bbox": [ - 352.9206237792969, - 338.88543701171875, - 377.9532470703125, - 350.89141845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0012435913086, - 338.88543701171875, - 377.9532470703125, - 351.4314270019531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1168.", - "origin": [ - 78.00033569335938, - 359.3424377441406 - ], - "bbox": [ - 78.00033569335938, - 349.8654479980469, - 98.25033569335938, - 361.8714294433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00033569335938, - 349.8654479980469, - 98.25033569335938, - 361.8714294433594 - ] - }, - { - "spans": [ - { - "size": 8.899438858032227, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Hepp-Reymond, M.C., & Wiesendanger, M. (1972). Unilateral pyramidotomy in monkeys:", - "origin": [ - 54.0, - 370.32000732421875 - ], - "bbox": [ - 54.0, - 360.843017578125, - 377.94989013671875, - 372.8489990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 360.843017578125, - 377.94989013671875, - 372.8489990234375 - ] - }, - { - "spans": [ - { - "size": 8.899438858032227, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Effect on force and speed of a conditional precision grip. ", - "origin": [ - 78.000244140625, - 381.3603210449219 - ], - "bbox": [ - 78.000244140625, - 371.8833312988281, - 275.8487548828125, - 383.8893127441406 - ] - }, - { - "size": 8.899438858032227, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Brain Research,", - "origin": [ - 275.760009765625, - 381.3603210449219 - ], - "bbox": [ - 275.760009765625, - 372.80133056640625, - 331.9189453125, - 383.7903137207031 - ] - }, - { - "size": 8.899438858032227, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 331.91986083984375, - 381.3603210449219 - ], - "bbox": [ - 331.91986083984375, - 371.8833312988281, - 334.119873046875, - 383.8893127441406 - ] - }, - { - "size": 8.899438858032227, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "36", - "origin": [ - 333.65960693359375, - 381.3603210449219 - ], - "bbox": [ - 333.65960693359375, - 371.9643249511719, - 342.4595947265625, - 384.4293212890625 - ] - }, - { - "size": 8.899438858032227, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 117-131.", - "origin": [ - 342.4798583984375, - 381.3603210449219 - ], - "bbox": [ - 342.4798583984375, - 371.8833312988281, - 377.906005859375, - 383.8893127441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.000244140625, - 371.8833312988281, - 377.906005859375, - 384.4293212890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Hill, E.L., & Wing, A.M. (1999). Coordination of grip force and load force in developmen-", - "origin": [ - 54.0, - 392.3399963378906 - ], - "bbox": [ - 54.0, - 382.8630065917969, - 377.9812316894531, - 394.8689880371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 382.8630065917969, - 377.9812316894531, - 394.8689880371094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tal coordination disorder: A case study. ", - "origin": [ - 78.00029754638672, - 403.32000732421875 - ], - "bbox": [ - 78.00029754638672, - 393.843017578125, - 220.62330627441406, - 405.8489990234375 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Neurocase,", - "origin": [ - 220.62060546875, - 403.32000732421875 - ], - "bbox": [ - 220.62060546875, - 394.7610168457031, - 260.85150146484375, - 405.75 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 260.8209228515625, - 403.32000732421875 - ], - "bbox": [ - 260.8209228515625, - 393.843017578125, - 263.0709228515625, - 405.8489990234375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "5", - "origin": [ - 263.1006164550781, - 403.32000732421875 - ], - "bbox": [ - 263.1006164550781, - 393.92401123046875, - 267.6006164550781, - 406.3890075683594 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 537-544.", - "origin": [ - 267.6006164550781, - 403.32000732421875 - ], - "bbox": [ - 267.6006164550781, - 393.843017578125, - 304.34674072265625, - 405.8489990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00029754638672, - 393.843017578125, - 304.34674072265625, - 406.3890075683594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Hillel, A.D., Miller, R.M., Yorkston, K., McDonald, E., Norris, F.H. & Konikow, N. (1989).", - "origin": [ - 54.00091552734375, - 414.36029052734375 - ], - "bbox": [ - 54.00091552734375, - 404.88330078125, - 377.98663330078125, - 416.8892822265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00091552734375, - 404.88330078125, - 377.98663330078125, - 416.8892822265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Amyotrophic lateral sclerosis severity scale. ", - "origin": [ - 78.00121307373047, - 425.34027099609375 - ], - "bbox": [ - 78.00121307373047, - 415.86328125, - 239.0625457763672, - 427.8692626953125 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Neuroepidemiology,", - "origin": [ - 239.0408935546875, - 425.34027099609375 - ], - "bbox": [ - 239.0408935546875, - 416.7812805175781, - 311.3135986328125, - 427.770263671875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 311.28118896484375, - 425.34027099609375 - ], - "bbox": [ - 311.28118896484375, - 415.86328125, - 313.53118896484375, - 427.8692626953125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "8", - "origin": [ - 313.5608825683594, - 425.34027099609375 - ], - "bbox": [ - 313.5608825683594, - 415.94427490234375, - 318.0608825683594, - 428.4092712402344 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 142-150.", - "origin": [ - 318.0608825683594, - 425.34027099609375 - ], - "bbox": [ - 318.0608825683594, - 415.86328125, - 354.8070068359375, - 427.8692626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00121307373047, - 415.86328125, - 354.8070068359375, - 428.4092712402344 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Hoover, J., & Strick, P. (1999). The organization of cerebellar and basal ganglia outputs to", - "origin": [ - 54.000885009765625, - 436.3202819824219 - ], - "bbox": [ - 54.000885009765625, - 426.8432922363281, - 377.96136474609375, - 438.8492736816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000885009765625, - 426.8432922363281, - 377.96136474609375, - 438.8492736816406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "primary motor cortex as revealed by retrograde transport of herpes simplex virus", - "origin": [ - 78.00118255615234, - 447.360595703125 - ], - "bbox": [ - 78.00118255615234, - 437.88360595703125, - 377.99560546875, - 449.88958740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 437.88360595703125, - 377.99560546875, - 449.88958740234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "type 1. ", - "origin": [ - 78.00118255615234, - 458.340576171875 - ], - "bbox": [ - 78.00118255615234, - 448.86358642578125, - 104.75008392333984, - 460.86956787109375 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neuroscience,", - "origin": [ - 104.76087951660156, - 458.340576171875 - ], - "bbox": [ - 104.76087951660156, - 449.7815856933594, - 194.7348175048828, - 460.77056884765625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 194.76089477539062, - 458.340576171875 - ], - "bbox": [ - 194.76089477539062, - 448.86358642578125, - 197.01089477539062, - 460.86956787109375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "19", - "origin": [ - 196.981201171875, - 458.340576171875 - ], - "bbox": [ - 196.981201171875, - 448.944580078125, - 205.981201171875, - 461.4095764160156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1446-1463.", - "origin": [ - 205.981201171875, - 458.340576171875 - ], - "bbox": [ - 205.981201171875, - 448.86358642578125, - 251.72909545898438, - 460.86956787109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 448.86358642578125, - 251.72909545898438, - 461.4095764160156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Johansson, R.S., & Westling, G. (1984). Roles of glabrous skin receptors and sensorimotor", - "origin": [ - 54.00090026855469, - 469.320556640625 - ], - "bbox": [ - 54.00090026855469, - 459.84356689453125, - 378.04779052734375, - 471.84954833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00090026855469, - 459.84356689453125, - 378.04779052734375, - 471.84954833984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "memory in automatic control of precision grip when lifting rougher and more slip-", - "origin": [ - 78.0011978149414, - 480.3608703613281 - ], - "bbox": [ - 78.0011978149414, - 470.8838806152344, - 378.0649719238281, - 482.8898620605469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0011978149414, - 470.8838806152344, - 378.0649719238281, - 482.8898620605469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pery objects. ", - "origin": [ - 78.0011978149414, - 491.34088134765625 - ], - "bbox": [ - 78.0011978149414, - 481.8638916015625, - 126.24390411376953, - 493.869873046875 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Research,", - "origin": [ - 126.24119567871094, - 491.34088134765625 - ], - "bbox": [ - 126.24119567871094, - 482.7818908691406, - 234.87571716308594, - 493.7708740234375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 234.84149169921875, - 491.34088134765625 - ], - "bbox": [ - 234.84149169921875, - 481.8638916015625, - 237.09149169921875, - 493.869873046875 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "56", - "origin": [ - 237.12118530273438, - 491.34088134765625 - ], - "bbox": [ - 237.12118530273438, - 481.94488525390625, - 246.12118530273438, - 494.4098815917969 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 550-564.", - "origin": [ - 246.12118530273438, - 491.34088134765625 - ], - "bbox": [ - 246.12118530273438, - 481.8638916015625, - 282.87091064453125, - 493.869873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0011978149414, - 481.8638916015625, - 282.87091064453125, - 494.4098815917969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Johansson, R.S., & Westling, G. (1988). Coordination of isometric muscle commands ad-", - "origin": [ - 54.000885009765625, - 502.32086181640625 - ], - "bbox": [ - 54.000885009765625, - 492.8438720703125, - 378.010009765625, - 504.849853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000885009765625, - 492.8438720703125, - 378.010009765625, - 504.849853515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "equately and erroneously programmed for the weight during lifting tasks with preci-", - "origin": [ - 78.00118255615234, - 513.3611450195312 - ], - "bbox": [ - 78.00118255615234, - 503.8841552734375, - 378.06402587890625, - 515.89013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 503.8841552734375, - 378.06402587890625, - 515.89013671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sion grip. ", - "origin": [ - 78.00118255615234, - 524.3411865234375 - ], - "bbox": [ - 78.00118255615234, - 514.8641967773438, - 114.25318145751953, - 526.8701782226562 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Research,", - "origin": [ - 114.24148559570312, - 524.3411865234375 - ], - "bbox": [ - 114.24148559570312, - 515.7821655273438, - 222.87600708007812, - 526.7711791992188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 222.84178161621094, - 524.3411865234375 - ], - "bbox": [ - 222.84178161621094, - 514.8641967773438, - 225.09178161621094, - 526.8701782226562 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "71", - "origin": [ - 225.12147521972656, - 524.3411865234375 - ], - "bbox": [ - 225.12147521972656, - 514.9451904296875, - 234.12147521972656, - 527.41015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 59-71.", - "origin": [ - 234.12147521972656, - 524.3411865234375 - ], - "bbox": [ - 234.12147521972656, - 514.8641967773438, - 261.86846923828125, - 526.8701782226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 514.8641967773438, - 261.86846923828125, - 527.41015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Johansson, R.S. (1996). Sensory control of dexterous manipulation in humans. In: A.M.", - "origin": [ - 54.00177001953125, - 535.3211669921875 - ], - "bbox": [ - 54.00177001953125, - 525.8441772460938, - 377.9874267578125, - 537.8501586914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00177001953125, - 525.8441772460938, - 377.9874267578125, - 537.8501586914062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Wing, P. Haggard, & J.R. Flanagan (Eds.), ", - "origin": [ - 78.00206756591797, - 546.3614501953125 - ], - "bbox": [ - 78.00206756591797, - 536.8844604492188, - 234.73973083496094, - 548.8904418945312 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Hand and brain", - "origin": [ - 235.0223846435547, - 546.3614501953125 - ], - "bbox": [ - 235.0223846435547, - 537.8024291992188, - 292.905029296875, - 548.7914428710938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " (pp. 381-414). San Di-", - "origin": [ - 292.9220886230469, - 546.3614501953125 - ], - "bbox": [ - 292.9220886230469, - 536.8844604492188, - 378.0332946777344, - 548.8904418945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00206756591797, - 536.8844604492188, - 378.0332946777344, - 548.8904418945312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ego, CA: Academic Press.", - "origin": [ - 78.00209045410156, - 557.3414916992188 - ], - "bbox": [ - 78.00209045410156, - 547.864501953125, - 172.13311767578125, - 559.8704833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00209045410156, - 547.864501953125, - 172.13311767578125, - 559.8704833984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Johansson, R.S. (1998). Sensory input and control of grip. In: ", - "origin": [ - 54.00269317626953, - 568.3214721679688 - ], - "bbox": [ - 54.00269317626953, - 558.844482421875, - 276.12274169921875, - 570.8504638671875 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Novartis Foundation sympo-", - "origin": [ - 275.88238525390625, - 568.3214721679688 - ], - "bbox": [ - 275.88238525390625, - 559.762451171875, - 378.0090637207031, - 570.75146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00269317626953, - 558.844482421875, - 378.0090637207031, - 570.8504638671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "sium 218, Sensory guidance of movement", - "origin": [ - 78.00209045410156, - 579.3617553710938 - ], - "bbox": [ - 78.00209045410156, - 570.802734375, - 226.8549041748047, - 581.791748046875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " (pp. 45-63). Chichester: Wiley.", - "origin": [ - 226.8621063232422, - 579.3617553710938 - ], - "bbox": [ - 226.8621063232422, - 569.884765625, - 340.1758117675781, - 581.8907470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00209045410156, - 569.884765625, - 340.1758117675781, - 581.8907470703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Kinoshita, H., Oku, N., Hashikawa, K., & Nishimura, T. (2000). Functional brain areas for", - "origin": [ - 54.00181579589844, - 590.341796875 - ], - "bbox": [ - 54.00181579589844, - 580.8648071289062, - 378.0190124511719, - 592.8707885742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00181579589844, - 580.8648071289062, - 378.0190124511719, - 592.8707885742188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the lifting of objects using a precision grip: A PET study. ", - "origin": [ - 78.00211334228516, - 601.32177734375 - ], - "bbox": [ - 78.00211334228516, - 591.8447875976562, - 283.92578125, - 603.8507690429688 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Brain Research,", - "origin": [ - 283.8023986816406, - 601.32177734375 - ], - "bbox": [ - 283.8023986816406, - 592.7627563476562, - 341.55364990234375, - 603.7517700195312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 341.5220947265625, - 601.32177734375 - ], - "bbox": [ - 341.5220947265625, - 591.8447875976562, - 343.7720947265625, - 603.8507690429688 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "857", - "origin": [ - 343.6217956542969, - 601.32177734375 - ], - "bbox": [ - 343.6217956542969, - 591.92578125, - 357.1217956542969, - 604.3907470703125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 119-", - "origin": [ - 357.1217956542969, - 601.32177734375 - ], - "bbox": [ - 357.1217956542969, - 591.8447875976562, - 377.9757080078125, - 603.8507690429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00211334228516, - 591.8447875976562, - 377.9757080078125, - 604.3907470703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "130.", - "origin": [ - 78.00210571289062, - 612.362060546875 - ], - "bbox": [ - 78.00210571289062, - 602.8850708007812, - 93.75210571289062, - 614.8910522460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00210571289062, - 602.8850708007812, - 93.75210571289062, - 614.8910522460938 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 0, - 432.0, - 648.0 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 63.90288543701172, - 378.0649719238281, - 614.8910522460938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Blakemore, S.J., Goodbody, S.J., & Wolpert, D.M. (1998). Predicting the consequences of", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 63.90288543701172, - 378.0361328125, - 75.90888214111328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 63.90288543701172, - 378.0361328125, - 75.90888214111328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "our own actions: The role of sensorimotor context estimation. ", - "origin": [ - 78.00029754638672, - 84.35986328125 - ], - "bbox": [ - 78.00029754638672, - 74.88286590576172, - 310.4496765136719, - 86.88886260986328 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neuro-", - "origin": [ - 311.5205993652344, - 84.35986328125 - ], - "bbox": [ - 311.5205993652344, - 75.80086517333984, - 378.0000305175781, - 86.78986358642578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00029754638672, - 74.88286590576172, - 378.0000305175781, - 86.88886260986328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "science,", - "origin": [ - 78.00030517578125, - 95.33984375 - ], - "bbox": [ - 78.00030517578125, - 86.78084564208984, - 106.65090942382812, - 97.76984405517578 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 106.62030792236328, - 95.33984375 - ], - "bbox": [ - 106.62030792236328, - 85.86284637451172, - 108.87030792236328, - 97.86884307861328 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "18", - "origin": [ - 108.90000915527344, - 95.33984375 - ], - "bbox": [ - 108.90000915527344, - 85.94384765625, - 117.90000915527344, - 98.40884399414062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 7511-7518.", - "origin": [ - 117.90000915527344, - 95.33984375 - ], - "bbox": [ - 117.90000915527344, - 85.86284637451172, - 163.65420532226562, - 97.86884307861328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00030517578125, - 85.86284637451172, - 163.65420532226562, - 98.40884399414062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Buys, E.J., Lemon, R.N., Mantel, G.W.H., & Muir, R.B. (1986). Selective facilitation of", - "origin": [ - 54.0000114440918, - 106.380126953125 - ], - "bbox": [ - 54.0000114440918, - 96.90312957763672, - 377.9957275390625, - 108.90912628173828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0000114440918, - 96.90312957763672, - 377.9957275390625, - 108.90912628173828 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "different hand muscles by single corticospinal neurones in the conscious monkey.", - "origin": [ - 78.00031280517578, - 117.360107421875 - ], - "bbox": [ - 78.00031280517578, - 107.88311004638672, - 377.978515625, - 119.88910675048828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00031280517578, - 107.88311004638672, - 377.978515625, - 119.88910675048828 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Physiology (London),", - "origin": [ - 78.00031280517578, - 128.340087890625 - ], - "bbox": [ - 78.00031280517578, - 119.78108978271484, - 195.11460876464844, - 130.77008056640625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 195.12002563476562, - 128.340087890625 - ], - "bbox": [ - 195.12002563476562, - 118.86309051513672, - 197.37002563476562, - 130.8690948486328 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "381", - "origin": [ - 197.39971923828125, - 128.340087890625 - ], - "bbox": [ - 197.39971923828125, - 118.944091796875, - 210.89971923828125, - 131.40908813476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 529-549.", - "origin": [ - 210.89971923828125, - 128.340087890625 - ], - "bbox": [ - 210.89971923828125, - 118.86309051513672, - 247.64491271972656, - 130.8690948486328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00031280517578, - 118.86309051513672, - 247.64491271972656, - 131.40908813476562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Cole, K.J., Rotella, D.L., & Harper, J.G. (1999). Mechanisms for age-related changes of", - "origin": [ - 54.00001525878906, - 139.38040161132812 - ], - "bbox": [ - 54.00001525878906, - 129.9033966064453, - 378.0352783203125, - 141.90940856933594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00001525878906, - 129.9033966064453, - 378.0352783203125, - 141.90940856933594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fingertip forces during precision gripping and lifting in adults. ", - "origin": [ - 78.00031280517578, - 150.36041259765625 - ], - "bbox": [ - 78.00031280517578, - 140.88340759277344, - 310.99688720703125, - 152.88941955566406 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neuro-", - "origin": [ - 311.8203125, - 150.36041259765625 - ], - "bbox": [ - 311.8203125, - 141.80140686035156, - 378.00006103515625, - 152.7904052734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00031280517578, - 140.88340759277344, - 378.00006103515625, - 152.88941955566406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "science,", - "origin": [ - 78.00032043457031, - 161.34042358398438 - ], - "bbox": [ - 78.00032043457031, - 152.7814178466797, - 106.65092468261719, - 163.77041625976562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 106.62032318115234, - 161.34042358398438 - ], - "bbox": [ - 106.62032318115234, - 151.86341857910156, - 108.87032318115234, - 163.8694305419922 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "19", - "origin": [ - 108.9000244140625, - 161.34042358398438 - ], - "bbox": [ - 108.9000244140625, - 151.94442749023438, - 117.9000244140625, - 164.409423828125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 3238-3247.", - "origin": [ - 117.9000244140625, - 161.34042358398438 - ], - "bbox": [ - 117.9000244140625, - 151.86341857910156, - 163.6542205810547, - 163.8694305419922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032043457031, - 151.86341857910156, - 163.6542205810547, - 164.409423828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Eliasson, A.C., Gordon, A.M., & Forssberg, H. (1995). Tactile control of fingertip forces", - "origin": [ - 54.00002670288086, - 172.3807373046875 - ], - "bbox": [ - 54.00002670288086, - 162.9037322998047, - 378.0362548828125, - 174.9097442626953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00002670288086, - 162.9037322998047, - 378.0362548828125, - 174.9097442626953 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "during grasping in children with cerebral palsy. ", - "origin": [ - 78.00032806396484, - 183.36074829101562 - ], - "bbox": [ - 78.00032806396484, - 173.8837432861328, - 250.08753967285156, - 185.88975524902344 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Developmental Medicine and Child", - "origin": [ - 250.02001953125, - 183.36074829101562 - ], - "bbox": [ - 250.02001953125, - 174.80174255371094, - 378.0118103027344, - 185.79074096679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032806396484, - 173.8837432861328, - 378.0118103027344, - 185.88975524902344 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Neurology,", - "origin": [ - 78.00032043457031, - 194.34075927734375 - ], - "bbox": [ - 78.00032043457031, - 185.78175354003906, - 117.27182006835938, - 196.770751953125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 117.24032592773438, - 194.34075927734375 - ], - "bbox": [ - 117.24032592773438, - 184.86375427246094, - 119.49032592773438, - 196.86976623535156 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "37", - "origin": [ - 119.52002716064453, - 194.34075927734375 - ], - "bbox": [ - 119.52002716064453, - 184.94476318359375, - 128.52001953125, - 197.40975952148438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 72-84.", - "origin": [ - 128.52001953125, - 194.34075927734375 - ], - "bbox": [ - 128.52001953125, - 184.86375427246094, - 156.26611328125, - 196.86976623535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032043457031, - 184.86375427246094, - 156.26611328125, - 197.40975952148438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Espinoza, E., & Smith, A.M. (1990). Purkinje cell simple spike activity during grasping and", - "origin": [ - 54.000022888183594, - 205.38107299804688 - ], - "bbox": [ - 54.000022888183594, - 195.90406799316406, - 378.0244445800781, - 207.9100799560547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000022888183594, - 195.90406799316406, - 378.0244445800781, - 207.9100799560547 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lifting objects of different textures and weights. ", - "origin": [ - 78.00032043457031, - 216.361083984375 - ], - "bbox": [ - 78.00032043457031, - 206.8840789794922, - 247.07066345214844, - 218.8900909423828 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neurophysiology,", - "origin": [ - 246.42002868652344, - 216.361083984375 - ], - "bbox": [ - 246.42002868652344, - 207.8020782470703, - 347.0113525390625, - 218.79107666015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 346.979736328125, - 216.361083984375 - ], - "bbox": [ - 346.979736328125, - 206.8840789794922, - 349.229736328125, - 218.8900909423828 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "64", - "origin": [ - 348.6600341796875, - 216.361083984375 - ], - "bbox": [ - 348.6600341796875, - 206.965087890625, - 357.64654541015625, - 219.43008422851562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 698-", - "origin": [ - 357.6600341796875, - 216.361083984375 - ], - "bbox": [ - 357.6600341796875, - 206.8840789794922, - 378.027099609375, - 218.8900909423828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032043457031, - 206.8840789794922, - 378.027099609375, - 219.43008422851562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "714.", - "origin": [ - 78.00033569335938, - 227.34109497070312 - ], - "bbox": [ - 78.00033569335938, - 217.8640899658203, - 93.75033569335938, - 229.87010192871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00033569335938, - 217.8640899658203, - 93.75033569335938, - 229.87010192871094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Fellows, S.J., Ernst, J., Schwarz, J.M., Töpper, R., & Noth J. (2001). Precision grip deficits", - "origin": [ - 54.000038146972656, - 238.38140869140625 - ], - "bbox": [ - 54.000038146972656, - 228.90440368652344, - 378.0119934082031, - 240.91041564941406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000038146972656, - 228.90440368652344, - 378.0119934082031, - 240.91041564941406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in cerebellar disorders in man. ", - "origin": [ - 78.00033569335938, - 249.36141967773438 - ], - "bbox": [ - 78.00033569335938, - 239.88441467285156, - 189.4779510498047, - 251.8904266357422 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Clinical Neurophysiology,", - "origin": [ - 189.4203338623047, - 249.36141967773438 - ], - "bbox": [ - 189.4203338623047, - 240.8024139404297, - 283.4739685058594, - 251.79141235351562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 283.4406433105469, - 249.36141967773438 - ], - "bbox": [ - 283.4406433105469, - 239.88441467285156, - 285.6906433105469, - 251.8904266357422 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "112", - "origin": [ - 285.7203369140625, - 249.36141967773438 - ], - "bbox": [ - 285.7203369140625, - 239.96542358398438, - 299.2203369140625, - 252.430419921875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1793-1802.", - "origin": [ - 299.2203369140625, - 249.36141967773438 - ], - "bbox": [ - 299.2203369140625, - 239.88441467285156, - 344.9682312011719, - 251.8904266357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00033569335938, - 239.88441467285156, - 344.9682312011719, - 252.430419921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Fellows, S.J., Noth, J., & Schwarz, J.M. (1998). Precision grip and Parkinson’s disease.", - "origin": [ - 54.000030517578125, - 260.3414306640625 - ], - "bbox": [ - 54.000030517578125, - 250.8644256591797, - 377.990234375, - 262.87042236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000030517578125, - 250.8644256591797, - 377.990234375, - 262.87042236328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Brain,", - "origin": [ - 78.00032806396484, - 271.3817443847656 - ], - "bbox": [ - 78.00032806396484, - 262.82275390625, - 100.57232666015625, - 273.8117370605469 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 100.62002563476562, - 271.3817443847656 - ], - "bbox": [ - 100.62002563476562, - 261.9047546386719, - 102.87002563476562, - 273.9107360839844 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "121", - "origin": [ - 102.84032440185547, - 271.3817443847656 - ], - "bbox": [ - 102.84032440185547, - 261.9857482910156, - 116.34032440185547, - 274.45074462890625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1771-1784.", - "origin": [ - 116.34032440185547, - 271.3817443847656 - ], - "bbox": [ - 116.34032440185547, - 261.9047546386719, - 162.0828094482422, - 273.9107360839844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032806396484, - 261.9047546386719, - 162.0828094482422, - 274.45074462890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Flanagan, J.R., & Wing, A.M. (1993). Modulation of grip force with load force during", - "origin": [ - 54.000022888183594, - 282.36175537109375 - ], - "bbox": [ - 54.000022888183594, - 272.884765625, - 378.04156494140625, - 284.8907470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000022888183594, - 272.884765625, - 378.04156494140625, - 284.8907470703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "point-to-point movements. ", - "origin": [ - 78.00032043457031, - 293.3417663574219 - ], - "bbox": [ - 78.00032043457031, - 283.8647766113281, - 175.91943359375, - 295.8707580566406 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Research,", - "origin": [ - 175.92031860351562, - 293.3417663574219 - ], - "bbox": [ - 175.92031860351562, - 284.78277587890625, - 284.5539245605469, - 295.7717590332031 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 284.5206298828125, - 293.3417663574219 - ], - "bbox": [ - 284.5206298828125, - 283.8647766113281, - 286.7706298828125, - 295.8707580566406 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "95", - "origin": [ - 286.8003234863281, - 293.3417663574219 - ], - "bbox": [ - 286.8003234863281, - 283.9457702636719, - 295.8003234863281, - 296.4107666015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 131-143.", - "origin": [ - 295.8003234863281, - 293.3417663574219 - ], - "bbox": [ - 295.8003234863281, - 283.8647766113281, - 332.5437316894531, - 295.8707580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032043457031, - 283.8647766113281, - 332.5437316894531, - 296.4107666015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Flanagan, J.R., & Wing, A.M. (1997). The role of internal models in motion planning and", - "origin": [ - 54.000030517578125, - 304.382080078125 - ], - "bbox": [ - 54.000030517578125, - 294.90509033203125, - 378.0396728515625, - 306.91107177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000030517578125, - 294.90509033203125, - 378.0396728515625, - 306.91107177734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "control: Evidence from grip force adjustments during movements of hand-held loads.", - "origin": [ - 78.00032806396484, - 315.3620910644531 - ], - "bbox": [ - 78.00032806396484, - 305.8851013183594, - 378.00823974609375, - 317.8910827636719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032806396484, - 305.8851013183594, - 378.00823974609375, - 317.8910827636719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neuroscience,", - "origin": [ - 78.00032806396484, - 326.34210205078125 - ], - "bbox": [ - 78.00032806396484, - 317.7831115722656, - 167.97425842285156, - 328.7720947265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 168.00033569335938, - 326.34210205078125 - ], - "bbox": [ - 168.00033569335938, - 316.8651123046875, - 170.25033569335938, - 328.87109375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "17", - "origin": [ - 170.22064208984375, - 326.34210205078125 - ], - "bbox": [ - 170.22064208984375, - 316.94610595703125, - 179.22064208984375, - 329.4111022949219 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1519-1528.", - "origin": [ - 179.22064208984375, - 326.34210205078125 - ], - "bbox": [ - 179.22064208984375, - 316.8651123046875, - 224.96763610839844, - 328.87109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00032806396484, - 316.8651123046875, - 224.96763610839844, - 329.4111022949219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Forssberg, H., Eliasson, A.C., Redon-Zouitenn, C., Mercuri, E., & Dubowitz, L. (1999).", - "origin": [ - 54.000946044921875, - 337.3221130371094 - ], - "bbox": [ - 54.000946044921875, - 327.8451232910156, - 378.0180969238281, - 339.8511047363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000946044921875, - 327.8451232910156, - 378.0180969238281, - 339.8511047363281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Impaired grip-lift synergy in children with unilateral brain lesions. ", - "origin": [ - 78.0012435913086, - 348.3624267578125 - ], - "bbox": [ - 78.0012435913086, - 338.88543701171875, - 315.5446472167969, - 350.89141845703125 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Brain,", - "origin": [ - 315.0612487792969, - 348.3624267578125 - ], - "bbox": [ - 315.0612487792969, - 339.8034362792969, - 337.6935729980469, - 350.79241943359375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 337.6809387207031, - 348.3624267578125 - ], - "bbox": [ - 337.6809387207031, - 338.88543701171875, - 339.9309387207031, - 350.89141845703125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "122", - "origin": [ - 339.4206237792969, - 348.3624267578125 - ], - "bbox": [ - 339.4206237792969, - 338.9664306640625, - 352.9206237792969, - 351.4314270019531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1157-", - "origin": [ - 352.9206237792969, - 348.3624267578125 - ], - "bbox": [ - 352.9206237792969, - 338.88543701171875, - 377.9532470703125, - 350.89141845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0012435913086, - 338.88543701171875, - 377.9532470703125, - 351.4314270019531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1168.", - "origin": [ - 78.00033569335938, - 359.3424377441406 - ], - "bbox": [ - 78.00033569335938, - 349.8654479980469, - 98.25033569335938, - 361.8714294433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00033569335938, - 349.8654479980469, - 98.25033569335938, - 361.8714294433594 - ] - }, - { - "spans": [ - { - "size": 8.899438858032227, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Hepp-Reymond, M.C., & Wiesendanger, M. (1972). Unilateral pyramidotomy in monkeys:", - "origin": [ - 54.0, - 370.32000732421875 - ], - "bbox": [ - 54.0, - 360.843017578125, - 377.94989013671875, - 372.8489990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 360.843017578125, - 377.94989013671875, - 372.8489990234375 - ] - }, - { - "spans": [ - { - "size": 8.899438858032227, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Effect on force and speed of a conditional precision grip. ", - "origin": [ - 78.000244140625, - 381.3603210449219 - ], - "bbox": [ - 78.000244140625, - 371.8833312988281, - 275.8487548828125, - 383.8893127441406 - ] - }, - { - "size": 8.899438858032227, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Brain Research,", - "origin": [ - 275.760009765625, - 381.3603210449219 - ], - "bbox": [ - 275.760009765625, - 372.80133056640625, - 331.9189453125, - 383.7903137207031 - ] - }, - { - "size": 8.899438858032227, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 331.91986083984375, - 381.3603210449219 - ], - "bbox": [ - 331.91986083984375, - 371.8833312988281, - 334.119873046875, - 383.8893127441406 - ] - }, - { - "size": 8.899438858032227, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "36", - "origin": [ - 333.65960693359375, - 381.3603210449219 - ], - "bbox": [ - 333.65960693359375, - 371.9643249511719, - 342.4595947265625, - 384.4293212890625 - ] - }, - { - "size": 8.899438858032227, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 117-131.", - "origin": [ - 342.4798583984375, - 381.3603210449219 - ], - "bbox": [ - 342.4798583984375, - 371.8833312988281, - 377.906005859375, - 383.8893127441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.000244140625, - 371.8833312988281, - 377.906005859375, - 384.4293212890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Hill, E.L., & Wing, A.M. (1999). Coordination of grip force and load force in developmen-", - "origin": [ - 54.0, - 392.3399963378906 - ], - "bbox": [ - 54.0, - 382.8630065917969, - 377.9812316894531, - 394.8689880371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 382.8630065917969, - 377.9812316894531, - 394.8689880371094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tal coordination disorder: A case study. ", - "origin": [ - 78.00029754638672, - 403.32000732421875 - ], - "bbox": [ - 78.00029754638672, - 393.843017578125, - 220.62330627441406, - 405.8489990234375 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Neurocase,", - "origin": [ - 220.62060546875, - 403.32000732421875 - ], - "bbox": [ - 220.62060546875, - 394.7610168457031, - 260.85150146484375, - 405.75 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 260.8209228515625, - 403.32000732421875 - ], - "bbox": [ - 260.8209228515625, - 393.843017578125, - 263.0709228515625, - 405.8489990234375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "5", - "origin": [ - 263.1006164550781, - 403.32000732421875 - ], - "bbox": [ - 263.1006164550781, - 393.92401123046875, - 267.6006164550781, - 406.3890075683594 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 537-544.", - "origin": [ - 267.6006164550781, - 403.32000732421875 - ], - "bbox": [ - 267.6006164550781, - 393.843017578125, - 304.34674072265625, - 405.8489990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00029754638672, - 393.843017578125, - 304.34674072265625, - 406.3890075683594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Hillel, A.D., Miller, R.M., Yorkston, K., McDonald, E., Norris, F.H. & Konikow, N. (1989).", - "origin": [ - 54.00091552734375, - 414.36029052734375 - ], - "bbox": [ - 54.00091552734375, - 404.88330078125, - 377.98663330078125, - 416.8892822265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00091552734375, - 404.88330078125, - 377.98663330078125, - 416.8892822265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Amyotrophic lateral sclerosis severity scale. ", - "origin": [ - 78.00121307373047, - 425.34027099609375 - ], - "bbox": [ - 78.00121307373047, - 415.86328125, - 239.0625457763672, - 427.8692626953125 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Neuroepidemiology,", - "origin": [ - 239.0408935546875, - 425.34027099609375 - ], - "bbox": [ - 239.0408935546875, - 416.7812805175781, - 311.3135986328125, - 427.770263671875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 311.28118896484375, - 425.34027099609375 - ], - "bbox": [ - 311.28118896484375, - 415.86328125, - 313.53118896484375, - 427.8692626953125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "8", - "origin": [ - 313.5608825683594, - 425.34027099609375 - ], - "bbox": [ - 313.5608825683594, - 415.94427490234375, - 318.0608825683594, - 428.4092712402344 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 142-150.", - "origin": [ - 318.0608825683594, - 425.34027099609375 - ], - "bbox": [ - 318.0608825683594, - 415.86328125, - 354.8070068359375, - 427.8692626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00121307373047, - 415.86328125, - 354.8070068359375, - 428.4092712402344 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Hoover, J., & Strick, P. (1999). The organization of cerebellar and basal ganglia outputs to", - "origin": [ - 54.000885009765625, - 436.3202819824219 - ], - "bbox": [ - 54.000885009765625, - 426.8432922363281, - 377.96136474609375, - 438.8492736816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000885009765625, - 426.8432922363281, - 377.96136474609375, - 438.8492736816406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "primary motor cortex as revealed by retrograde transport of herpes simplex virus", - "origin": [ - 78.00118255615234, - 447.360595703125 - ], - "bbox": [ - 78.00118255615234, - 437.88360595703125, - 377.99560546875, - 449.88958740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 437.88360595703125, - 377.99560546875, - 449.88958740234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "type 1. ", - "origin": [ - 78.00118255615234, - 458.340576171875 - ], - "bbox": [ - 78.00118255615234, - 448.86358642578125, - 104.75008392333984, - 460.86956787109375 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neuroscience,", - "origin": [ - 104.76087951660156, - 458.340576171875 - ], - "bbox": [ - 104.76087951660156, - 449.7815856933594, - 194.7348175048828, - 460.77056884765625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 194.76089477539062, - 458.340576171875 - ], - "bbox": [ - 194.76089477539062, - 448.86358642578125, - 197.01089477539062, - 460.86956787109375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "19", - "origin": [ - 196.981201171875, - 458.340576171875 - ], - "bbox": [ - 196.981201171875, - 448.944580078125, - 205.981201171875, - 461.4095764160156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1446-1463.", - "origin": [ - 205.981201171875, - 458.340576171875 - ], - "bbox": [ - 205.981201171875, - 448.86358642578125, - 251.72909545898438, - 460.86956787109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 448.86358642578125, - 251.72909545898438, - 461.4095764160156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Johansson, R.S., & Westling, G. (1984). Roles of glabrous skin receptors and sensorimotor", - "origin": [ - 54.00090026855469, - 469.320556640625 - ], - "bbox": [ - 54.00090026855469, - 459.84356689453125, - 378.04779052734375, - 471.84954833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00090026855469, - 459.84356689453125, - 378.04779052734375, - 471.84954833984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "memory in automatic control of precision grip when lifting rougher and more slip-", - "origin": [ - 78.0011978149414, - 480.3608703613281 - ], - "bbox": [ - 78.0011978149414, - 470.8838806152344, - 378.0649719238281, - 482.8898620605469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0011978149414, - 470.8838806152344, - 378.0649719238281, - 482.8898620605469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pery objects. ", - "origin": [ - 78.0011978149414, - 491.34088134765625 - ], - "bbox": [ - 78.0011978149414, - 481.8638916015625, - 126.24390411376953, - 493.869873046875 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Research,", - "origin": [ - 126.24119567871094, - 491.34088134765625 - ], - "bbox": [ - 126.24119567871094, - 482.7818908691406, - 234.87571716308594, - 493.7708740234375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 234.84149169921875, - 491.34088134765625 - ], - "bbox": [ - 234.84149169921875, - 481.8638916015625, - 237.09149169921875, - 493.869873046875 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "56", - "origin": [ - 237.12118530273438, - 491.34088134765625 - ], - "bbox": [ - 237.12118530273438, - 481.94488525390625, - 246.12118530273438, - 494.4098815917969 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 550-564.", - "origin": [ - 246.12118530273438, - 491.34088134765625 - ], - "bbox": [ - 246.12118530273438, - 481.8638916015625, - 282.87091064453125, - 493.869873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0011978149414, - 481.8638916015625, - 282.87091064453125, - 494.4098815917969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Johansson, R.S., & Westling, G. (1988). Coordination of isometric muscle commands ad-", - "origin": [ - 54.000885009765625, - 502.32086181640625 - ], - "bbox": [ - 54.000885009765625, - 492.8438720703125, - 378.010009765625, - 504.849853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000885009765625, - 492.8438720703125, - 378.010009765625, - 504.849853515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "equately and erroneously programmed for the weight during lifting tasks with preci-", - "origin": [ - 78.00118255615234, - 513.3611450195312 - ], - "bbox": [ - 78.00118255615234, - 503.8841552734375, - 378.06402587890625, - 515.89013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 503.8841552734375, - 378.06402587890625, - 515.89013671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sion grip. ", - "origin": [ - 78.00118255615234, - 524.3411865234375 - ], - "bbox": [ - 78.00118255615234, - 514.8641967773438, - 114.25318145751953, - 526.8701782226562 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Research,", - "origin": [ - 114.24148559570312, - 524.3411865234375 - ], - "bbox": [ - 114.24148559570312, - 515.7821655273438, - 222.87600708007812, - 526.7711791992188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 222.84178161621094, - 524.3411865234375 - ], - "bbox": [ - 222.84178161621094, - 514.8641967773438, - 225.09178161621094, - 526.8701782226562 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "71", - "origin": [ - 225.12147521972656, - 524.3411865234375 - ], - "bbox": [ - 225.12147521972656, - 514.9451904296875, - 234.12147521972656, - 527.41015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 59-71.", - "origin": [ - 234.12147521972656, - 524.3411865234375 - ], - "bbox": [ - 234.12147521972656, - 514.8641967773438, - 261.86846923828125, - 526.8701782226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 514.8641967773438, - 261.86846923828125, - 527.41015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Johansson, R.S. (1996). Sensory control of dexterous manipulation in humans. In: A.M.", - "origin": [ - 54.00177001953125, - 535.3211669921875 - ], - "bbox": [ - 54.00177001953125, - 525.8441772460938, - 377.9874267578125, - 537.8501586914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00177001953125, - 525.8441772460938, - 377.9874267578125, - 537.8501586914062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Wing, P. Haggard, & J.R. Flanagan (Eds.), ", - "origin": [ - 78.00206756591797, - 546.3614501953125 - ], - "bbox": [ - 78.00206756591797, - 536.8844604492188, - 234.73973083496094, - 548.8904418945312 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Hand and brain", - "origin": [ - 235.0223846435547, - 546.3614501953125 - ], - "bbox": [ - 235.0223846435547, - 537.8024291992188, - 292.905029296875, - 548.7914428710938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " (pp. 381-414). San Di-", - "origin": [ - 292.9220886230469, - 546.3614501953125 - ], - "bbox": [ - 292.9220886230469, - 536.8844604492188, - 378.0332946777344, - 548.8904418945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00206756591797, - 536.8844604492188, - 378.0332946777344, - 548.8904418945312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ego, CA: Academic Press.", - "origin": [ - 78.00209045410156, - 557.3414916992188 - ], - "bbox": [ - 78.00209045410156, - 547.864501953125, - 172.13311767578125, - 559.8704833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00209045410156, - 547.864501953125, - 172.13311767578125, - 559.8704833984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Johansson, R.S. (1998). Sensory input and control of grip. In: ", - "origin": [ - 54.00269317626953, - 568.3214721679688 - ], - "bbox": [ - 54.00269317626953, - 558.844482421875, - 276.12274169921875, - 570.8504638671875 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Novartis Foundation sympo-", - "origin": [ - 275.88238525390625, - 568.3214721679688 - ], - "bbox": [ - 275.88238525390625, - 559.762451171875, - 378.0090637207031, - 570.75146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00269317626953, - 558.844482421875, - 378.0090637207031, - 570.8504638671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "sium 218, Sensory guidance of movement", - "origin": [ - 78.00209045410156, - 579.3617553710938 - ], - "bbox": [ - 78.00209045410156, - 570.802734375, - 226.8549041748047, - 581.791748046875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " (pp. 45-63). Chichester: Wiley.", - "origin": [ - 226.8621063232422, - 579.3617553710938 - ], - "bbox": [ - 226.8621063232422, - 569.884765625, - 340.1758117675781, - 581.8907470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00209045410156, - 569.884765625, - 340.1758117675781, - 581.8907470703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Kinoshita, H., Oku, N., Hashikawa, K., & Nishimura, T. (2000). Functional brain areas for", - "origin": [ - 54.00181579589844, - 590.341796875 - ], - "bbox": [ - 54.00181579589844, - 580.8648071289062, - 378.0190124511719, - 592.8707885742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00181579589844, - 580.8648071289062, - 378.0190124511719, - 592.8707885742188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the lifting of objects using a precision grip: A PET study. ", - "origin": [ - 78.00211334228516, - 601.32177734375 - ], - "bbox": [ - 78.00211334228516, - 591.8447875976562, - 283.92578125, - 603.8507690429688 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Brain Research,", - "origin": [ - 283.8023986816406, - 601.32177734375 - ], - "bbox": [ - 283.8023986816406, - 592.7627563476562, - 341.55364990234375, - 603.7517700195312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 341.5220947265625, - 601.32177734375 - ], - "bbox": [ - 341.5220947265625, - 591.8447875976562, - 343.7720947265625, - 603.8507690429688 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "857", - "origin": [ - 343.6217956542969, - 601.32177734375 - ], - "bbox": [ - 343.6217956542969, - 591.92578125, - 357.1217956542969, - 604.3907470703125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 119-", - "origin": [ - 357.1217956542969, - 601.32177734375 - ], - "bbox": [ - 357.1217956542969, - 591.8447875976562, - 377.9757080078125, - 603.8507690429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00211334228516, - 591.8447875976562, - 377.9757080078125, - 604.3907470703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "130.", - "origin": [ - 78.00210571289062, - 612.362060546875 - ], - "bbox": [ - 78.00210571289062, - 602.8850708007812, - 93.75210571289062, - 614.8910522460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00210571289062, - 602.8850708007812, - 93.75210571289062, - 614.8910522460938 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 15, - "page_size": [ - 432.0, - 648.0 - ] - }, - "page_16": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 53.999977111816406, - 63.90288543701172, - 378.0998840332031, - 538.3928833007812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Kuhtz-Buschbeck, J.P., Ehrsson, H.H., & Forssberg, H. (2001). Human brain activity in the", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 63.90288543701172, - 378.0299377441406, - 75.90888214111328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 63.90288543701172, - 378.0299377441406, - 75.90888214111328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "control of fine static precision grip forces: An fMRI study. ", - "origin": [ - 78.00029754638672, - 84.35986328125 - ], - "bbox": [ - 78.00029754638672, - 74.88286590576172, - 285.78875732421875, - 86.88886260986328 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "European Journal of Neu-", - "origin": [ - 285.29998779296875, - 84.35986328125 - ], - "bbox": [ - 285.29998779296875, - 75.80086517333984, - 378.05767822265625, - 86.78986358642578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00029754638672, - 74.88286590576172, - 378.05767822265625, - 86.88886260986328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "roscience, ", - "origin": [ - 78.00028991699219, - 95.33984375 - ], - "bbox": [ - 78.00028991699219, - 86.78084564208984, - 116.5220947265625, - 97.76984405517578 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "14", - "origin": [ - 116.52029418945312, - 95.33984375 - ], - "bbox": [ - 116.52029418945312, - 85.94384765625, - 125.52029418945312, - 98.40884399414062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 82-390.", - "origin": [ - 125.52029418945312, - 95.33984375 - ], - "bbox": [ - 125.52029418945312, - 85.86284637451172, - 157.7762908935547, - 97.86884307861328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00028991699219, - 85.86284637451172, - 157.7762908935547, - 98.40884399414062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Lawyer, T. Jr., & Netsky, M.G. (1953). Amyotrophic lateral sclerosis: Clinico-anatomic", - "origin": [ - 53.99999237060547, - 106.380126953125 - ], - "bbox": [ - 53.99999237060547, - 96.90312957763672, - 378.028076171875, - 108.90912628173828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 96.90312957763672, - 378.028076171875, - 108.90912628173828 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "study of 53 cases. ", - "origin": [ - 78.00028991699219, - 117.360107421875 - ], - "bbox": [ - 78.00028991699219, - 107.88311004638672, - 144.19711303710938, - 119.88910675048828 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Archives of Neurology and Psychiatry,", - "origin": [ - 144.17999267578125, - 117.360107421875 - ], - "bbox": [ - 144.17999267578125, - 108.80110931396484, - 282.27606201171875, - 119.79010772705078 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 282.239990234375, - 117.360107421875 - ], - "bbox": [ - 282.239990234375, - 107.88311004638672, - 284.489990234375, - 119.88910675048828 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "69", - "origin": [ - 284.4602966308594, - 117.360107421875 - ], - "bbox": [ - 284.4602966308594, - 107.964111328125, - 293.4602966308594, - 120.42910766601562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 171-192.", - "origin": [ - 293.4602966308594, - 117.360107421875 - ], - "bbox": [ - 293.4602966308594, - 107.88311004638672, - 330.1929016113281, - 119.88910675048828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00028991699219, - 107.88311004638672, - 330.1929016113281, - 120.42910766601562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Lemon, R.N., Mantel, G.H.W., & Muir, R.B. (1986). Corticospinal facilitation of hand", - "origin": [ - 53.99998474121094, - 128.340087890625 - ], - "bbox": [ - 53.99998474121094, - 118.86309051513672, - 377.97119140625, - 130.8690948486328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 118.86309051513672, - 377.97119140625, - 130.8690948486328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "muscles during voluntary movement in the conscious monkey. ", - "origin": [ - 78.00028228759766, - 139.38040161132812 - ], - "bbox": [ - 78.00028228759766, - 129.9033966064453, - 300.4902038574219, - 141.90940856933594 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Physiology", - "origin": [ - 299.9402770996094, - 139.38040161132812 - ], - "bbox": [ - 299.9402770996094, - 130.82139587402344, - 377.97930908203125, - 141.81039428710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00028228759766, - 129.9033966064453, - 377.97930908203125, - 141.90940856933594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "(London),", - "origin": [ - 78.00027465820312, - 150.36041259765625 - ], - "bbox": [ - 78.00027465820312, - 141.80140686035156, - 113.74827575683594, - 152.7904052734375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 113.75997924804688, - 150.36041259765625 - ], - "bbox": [ - 113.75997924804688, - 140.88340759277344, - 116.00997924804688, - 152.88941955566406 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "381", - "origin": [ - 115.98027801513672, - 150.36041259765625 - ], - "bbox": [ - 115.98027801513672, - 140.96441650390625, - 129.48028564453125, - 153.42941284179688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 497-527.", - "origin": [ - 129.48028564453125, - 150.36041259765625 - ], - "bbox": [ - 129.48028564453125, - 140.88340759277344, - 166.23358154296875, - 152.88941955566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00027465820312, - 140.88340759277344, - 166.23358154296875, - 153.42941284179688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Miall, R.C., Weir, D.J., & Wolpert, D.M. (1993). Is the cerebellum a Smith predictor? ", - "origin": [ - 53.99998474121094, - 161.34042358398438 - ], - "bbox": [ - 53.99998474121094, - 151.86341857910156, - 359.35479736328125, - 163.8694305419922 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Jour-", - "origin": [ - 358.91998291015625, - 161.34042358398438 - ], - "bbox": [ - 358.91998291015625, - 152.7814178466797, - 377.9972839355469, - 163.77041625976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 151.86341857910156, - 377.9972839355469, - 163.8694305419922 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "nal of Motor Behavior,", - "origin": [ - 78.00027465820312, - 172.3807373046875 - ], - "bbox": [ - 78.00027465820312, - 163.8217315673828, - 159.99298095703125, - 174.81072998046875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 160.0199737548828, - 172.3807373046875 - ], - "bbox": [ - 160.0199737548828, - 162.9037322998047, - 162.2699737548828, - 174.9097442626953 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "25", - "origin": [ - 162.2402801513672, - 172.3807373046875 - ], - "bbox": [ - 162.2402801513672, - 162.9847412109375, - 171.2402801513672, - 175.44973754882812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 203-216.", - "origin": [ - 171.2402801513672, - 172.3807373046875 - ], - "bbox": [ - 171.2402801513672, - 162.9037322998047, - 207.99087524414062, - 174.9097442626953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00027465820312, - 162.9037322998047, - 207.99087524414062, - 175.44973754882812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Middleton, F., & Strick, P. (2000). Basal ganglia and cerebellar loops: Motor and cognitive", - "origin": [ - 53.999977111816406, - 183.36074829101562 - ], - "bbox": [ - 53.999977111816406, - 173.8837432861328, - 377.9911193847656, - 185.88975524902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999977111816406, - 173.8837432861328, - 377.9911193847656, - 185.88975524902344 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "circuits. ", - "origin": [ - 78.00027465820312, - 194.34075927734375 - ], - "bbox": [ - 78.00027465820312, - 184.86375427246094, - 108.99627685546875, - 196.86976623535156 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Brain Research Reviews,", - "origin": [ - 109.02057647705078, - 194.34075927734375 - ], - "bbox": [ - 109.02057647705078, - 185.78175354003906, - 198.3572998046875, - 196.770751953125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 198.36087036132812, - 194.34075927734375 - ], - "bbox": [ - 198.36087036132812, - 184.86375427246094, - 200.61087036132812, - 196.86976623535156 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "31", - "origin": [ - 200.5811767578125, - 194.34075927734375 - ], - "bbox": [ - 200.5811767578125, - 184.94476318359375, - 209.5811767578125, - 197.40975952148438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 236-250.", - "origin": [ - 209.5811767578125, - 194.34075927734375 - ], - "bbox": [ - 209.5811767578125, - 184.86375427246094, - 246.33267211914062, - 196.86976623535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00027465820312, - 184.86375427246094, - 246.33267211914062, - 197.40975952148438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Nowak, D.A., Hermsdörfer, J., Marquardt, C., & Fuchs, H.H. (2002). Grip and load force", - "origin": [ - 54.000885009765625, - 205.38107299804688 - ], - "bbox": [ - 54.000885009765625, - 195.90406799316406, - 378.04327392578125, - 207.9100799560547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000885009765625, - 195.90406799316406, - 378.04327392578125, - 207.9100799560547 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "coupling during discrete vertical arm movements with a grasped object in cerebellar", - "origin": [ - 78.00118255615234, - 216.361083984375 - ], - "bbox": [ - 78.00118255615234, - 206.8840789794922, - 378.07574462890625, - 218.8900909423828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 206.8840789794922, - 378.07574462890625, - 218.8900909423828 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "atrophy. ", - "origin": [ - 78.00118255615234, - 227.34109497070312 - ], - "bbox": [ - 78.00118255615234, - 217.8640899658203, - 109.37967681884766, - 229.87010192871094 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Research,", - "origin": [ - 109.38148498535156, - 227.34109497070312 - ], - "bbox": [ - 109.38148498535156, - 218.78208923339844, - 217.95480346679688, - 229.77108764648438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 217.98178100585938, - 227.34109497070312 - ], - "bbox": [ - 217.98178100585938, - 217.8640899658203, - 220.23178100585938, - 229.87010192871094 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "145", - "origin": [ - 220.20208740234375, - 227.34109497070312 - ], - "bbox": [ - 220.20208740234375, - 217.94509887695312, - 233.70208740234375, - 230.41009521484375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 28-39.", - "origin": [ - 233.70208740234375, - 227.34109497070312 - ], - "bbox": [ - 233.70208740234375, - 217.8640899658203, - 261.44549560546875, - 229.87010192871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 217.8640899658203, - 261.44549560546875, - 230.41009521484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Nowak, D.A., Hermsdörfer, J., Glasauer, S., Philipp, J., Meyer, L., & Mai, N. (2001). The", - "origin": [ - 54.00178527832031, - 238.38140869140625 - ], - "bbox": [ - 54.00178527832031, - 228.90440368652344, - 378.04595947265625, - 240.91041564941406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00178527832031, - 228.90440368652344, - 378.04595947265625, - 240.91041564941406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "effects of digital anaesthesia on predictive grip force adjustments during vertical", - "origin": [ - 78.00208282470703, - 249.36141967773438 - ], - "bbox": [ - 78.00208282470703, - 239.88441467285156, - 377.9827880859375, - 251.8904266357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00208282470703, - 239.88441467285156, - 377.9827880859375, - 251.8904266357422 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements of a grasped object. ", - "origin": [ - 78.00208282470703, - 260.3414306640625 - ], - "bbox": [ - 78.00208282470703, - 250.8644256591797, - 194.26498413085938, - 262.87042236328125 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "European Journal of Neuroscience,", - "origin": [ - 194.22177124023438, - 260.3414306640625 - ], - "bbox": [ - 194.22177124023438, - 251.7824249267578, - 321.5754089355469, - 262.77142333984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 321.54205322265625, - 260.3414306640625 - ], - "bbox": [ - 321.54205322265625, - 250.8644256591797, - 323.79205322265625, - 262.87042236328125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "14", - "origin": [ - 323.8217468261719, - 260.3414306640625 - ], - "bbox": [ - 323.8217468261719, - 250.9454345703125, - 332.8217468261719, - 263.4104309082031 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 756-762.", - "origin": [ - 332.8217468261719, - 260.3414306640625 - ], - "bbox": [ - 332.8217468261719, - 250.8644256591797, - 369.570556640625, - 262.87042236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00208282470703, - 250.8644256591797, - 369.570556640625, - 263.4104309082031 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Nowak, D.A., Hermsdörfer, J., Marquardt, C., & Topka, H. (2003). Moving objects with", - "origin": [ - 54.001739501953125, - 271.3817443847656 - ], - "bbox": [ - 54.001739501953125, - 261.9047546386719, - 378.0026550292969, - 273.9107360839844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.001739501953125, - 261.9047546386719, - 378.0026550292969, - 273.9107360839844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "clumsy fingers: How predictive is grip force control in patients with impaired manual", - "origin": [ - 78.00203704833984, - 282.36175537109375 - ], - "bbox": [ - 78.00203704833984, - 272.884765625, - 378.0809326171875, - 284.8907470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00203704833984, - 272.884765625, - 378.0809326171875, - 284.8907470703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sensibility? ", - "origin": [ - 78.00203704833984, - 293.3417663574219 - ], - "bbox": [ - 78.00203704833984, - 283.8647766113281, - 121.25603485107422, - 295.8707580566406 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Clinical Neurophysiology,", - "origin": [ - 121.26234436035156, - 293.3417663574219 - ], - "bbox": [ - 121.26234436035156, - 284.78277587890625, - 215.25477600097656, - 295.7717590332031 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 215.28265380859375, - 293.3417663574219 - ], - "bbox": [ - 215.28265380859375, - 283.8647766113281, - 217.53265380859375, - 295.8707580566406 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "114", - "origin": [ - 217.50296020507812, - 293.3417663574219 - ], - "bbox": [ - 217.50296020507812, - 283.9457702636719, - 231.00296020507812, - 296.4107666015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 472-487.", - "origin": [ - 231.00296020507812, - 293.3417663574219 - ], - "bbox": [ - 231.00296020507812, - 283.8647766113281, - 267.7526550292969, - 295.8707580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00203704833984, - 283.8647766113281, - 267.7526550292969, - 296.4107666015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Nowak, D.A., & Hermsdörfer, J. (2002). Impaired coordination between grip and load forces", - "origin": [ - 54.002655029296875, - 304.382080078125 - ], - "bbox": [ - 54.002655029296875, - 294.90509033203125, - 378.03875732421875, - 306.91107177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.002655029296875, - 294.90509033203125, - 378.03875732421875, - 306.91107177734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in amyotrophic lateral sclerosis: A case-control study. ", - "origin": [ - 78.0029525756836, - 315.3620910644531 - ], - "bbox": [ - 78.0029525756836, - 305.8851013183594, - 270.4905090332031, - 317.8910827636719 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Amyotrophic Lateral Sclerosis", - "origin": [ - 269.9432678222656, - 315.3620910644531 - ], - "bbox": [ - 269.9432678222656, - 306.8031005859375, - 378.03070068359375, - 317.7920837402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0029525756836, - 305.8851013183594, - 378.03070068359375, - 317.8910827636719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "and Other Motor Neuron Disorders,", - "origin": [ - 78.00296020507812, - 326.34210205078125 - ], - "bbox": [ - 78.00296020507812, - 317.7831115722656, - 208.43910217285156, - 328.7720947265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 208.3832550048828, - 326.34210205078125 - ], - "bbox": [ - 208.3832550048828, - 316.8651123046875, - 210.6332550048828, - 328.87109375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "3", - "origin": [ - 210.66294860839844, - 326.34210205078125 - ], - "bbox": [ - 210.66294860839844, - 316.94610595703125, - 215.16294860839844, - 329.4111022949219 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 199-207.", - "origin": [ - 215.16294860839844, - 326.34210205078125 - ], - "bbox": [ - 215.16294860839844, - 316.8651123046875, - 251.90994262695312, - 328.87109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00296020507812, - 316.8651123046875, - 251.90994262695312, - 329.4111022949219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Paré, M., & Dugas, C. (1999). Developmental changes in prehension during childhood.", - "origin": [ - 54.00263977050781, - 337.3221130371094 - ], - "bbox": [ - 54.00263977050781, - 327.8451232910156, - 378.0998840332031, - 339.8511047363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00263977050781, - 327.8451232910156, - 378.0998840332031, - 339.8511047363281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Research,", - "origin": [ - 78.00293731689453, - 348.3624267578125 - ], - "bbox": [ - 78.00293731689453, - 339.8034362792969, - 186.63565063476562, - 350.79241943359375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 186.60324096679688, - 348.3624267578125 - ], - "bbox": [ - 186.60324096679688, - 338.88543701171875, - 188.85324096679688, - 350.89141845703125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "125", - "origin": [ - 188.8829345703125, - 348.3624267578125 - ], - "bbox": [ - 188.8829345703125, - 338.9664306640625, - 202.3829345703125, - 351.4314270019531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 239-247.", - "origin": [ - 202.3829345703125, - 348.3624267578125 - ], - "bbox": [ - 202.3829345703125, - 338.88543701171875, - 239.1281280517578, - 350.89141845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00293731689453, - 338.88543701171875, - 239.1281280517578, - 351.4314270019531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Picard, N., & Smith, A.M. (1992). Primary motor cortical activity related to the weight and", - "origin": [ - 54.00263977050781, - 359.3424377441406 - ], - "bbox": [ - 54.00263977050781, - 349.8654479980469, - 378.04412841796875, - 361.8714294433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00263977050781, - 349.8654479980469, - 378.04412841796875, - 361.8714294433594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "texture of grasped objects in the monkey. ", - "origin": [ - 78.00293731689453, - 370.32244873046875 - ], - "bbox": [ - 78.00293731689453, - 360.845458984375, - 234.18896484375, - 372.8514404296875 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neurophysiology,", - "origin": [ - 235.14291381835938, - 370.32244873046875 - ], - "bbox": [ - 235.14291381835938, - 361.7634582519531, - 339.2162780761719, - 372.75244140625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 339.18292236328125, - 370.32244873046875 - ], - "bbox": [ - 339.18292236328125, - 360.845458984375, - 341.43292236328125, - 372.8514404296875 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "68", - "origin": [ - 342.48321533203125, - 370.32244873046875 - ], - "bbox": [ - 342.48321533203125, - 360.92645263671875, - 351.48321533203125, - 373.3914489746094 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1867-", - "origin": [ - 351.48321533203125, - 370.32244873046875 - ], - "bbox": [ - 351.48321533203125, - 360.845458984375, - 378.0008239746094, - 372.8514404296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00293731689453, - 360.845458984375, - 378.0008239746094, - 373.3914489746094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1881.", - "origin": [ - 78.0029296875, - 381.3627624511719 - ], - "bbox": [ - 78.0029296875, - 371.8857727050781, - 98.2529296875, - 383.8917541503906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0029296875, - 371.8857727050781, - 98.2529296875, - 383.8917541503906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Rao, S., Harrington, D., Haaland, K., Bobholz, J., Cox, R., & Binder, J. (1997). Distributed", - "origin": [ - 54.00263214111328, - 392.3427734375 - ], - "bbox": [ - 54.00263214111328, - 382.86578369140625, - 378.0270690917969, - 394.87176513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00263214111328, - 382.86578369140625, - 378.0270690917969, - 394.87176513671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "neural systems underlying the timing of movements. ", - "origin": [ - 78.0029296875, - 403.32275390625 - ], - "bbox": [ - 78.0029296875, - 393.84576416015625, - 272.4083557128906, - 405.85174560546875 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neuroscience,", - "origin": [ - 272.88262939453125, - 403.32275390625 - ], - "bbox": [ - 272.88262939453125, - 394.7637634277344, - 363.93658447265625, - 405.75274658203125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 363.9626159667969, - 403.32275390625 - ], - "bbox": [ - 363.9626159667969, - 393.84576416015625, - 366.2126159667969, - 405.85174560546875 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "17", - "origin": [ - 366.7823181152344, - 403.32275390625 - ], - "bbox": [ - 366.7823181152344, - 393.9267578125, - 375.7823181152344, - 406.3917541503906 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 375.7823181152344, - 403.32275390625 - ], - "bbox": [ - 375.7823181152344, - 393.84576416015625, - 378.0323181152344, - 405.85174560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0029296875, - 393.84576416015625, - 378.0323181152344, - 406.3917541503906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "5528-5535.", - "origin": [ - 78.00201416015625, - 414.363037109375 - ], - "bbox": [ - 78.00201416015625, - 404.88604736328125, - 119.24901580810547, - 416.89202880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00201416015625, - 404.88604736328125, - 119.24901580810547, - 416.89202880859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Roland, P.E., Larsen, B., Lassen, N.A., & Skinhoij, E. (1980). Supplementary motor area", - "origin": [ - 54.00171661376953, - 425.3430480957031 - ], - "bbox": [ - 54.00171661376953, - 415.8660583496094, - 378.0450744628906, - 427.8720397949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00171661376953, - 415.8660583496094, - 378.0450744628906, - 427.8720397949219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and other cortical areas in organization of voluntary movements in man. ", - "origin": [ - 78.00201416015625, - 436.32305908203125 - ], - "bbox": [ - 78.00201416015625, - 426.8460693359375, - 340.671630859375, - 438.85205078125 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of", - "origin": [ - 340.8623046875, - 436.32305908203125 - ], - "bbox": [ - 340.8623046875, - 427.7640686035156, - 377.9810485839844, - 438.7530517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00201416015625, - 426.8460693359375, - 377.9810485839844, - 438.85205078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Neurophysiology,", - "origin": [ - 78.00198364257812, - 447.36334228515625 - ], - "bbox": [ - 78.00198364257812, - 438.8043518066406, - 140.73379516601562, - 449.7933349609375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 140.76168823242188, - 447.36334228515625 - ], - "bbox": [ - 140.76168823242188, - 437.8863525390625, - 143.01168823242188, - 449.892333984375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "43", - "origin": [ - 142.98199462890625, - 447.36334228515625 - ], - "bbox": [ - 142.98199462890625, - 437.96734619140625, - 151.98199462890625, - 450.4323425292969 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 118-136.", - "origin": [ - 151.98199462890625, - 447.36334228515625 - ], - "bbox": [ - 151.98199462890625, - 437.8863525390625, - 188.7307891845703, - 449.892333984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00198364257812, - 437.8863525390625, - 188.7307891845703, - 450.4323425292969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Strick, P.L., & Preston, J.B. (1982). Two representations of the hand area 4 of primate. II.", - "origin": [ - 54.00169372558594, - 458.34332275390625 - ], - "bbox": [ - 54.00169372558594, - 448.8663330078125, - 378.0467834472656, - 460.872314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00169372558594, - 448.8663330078125, - 378.0467834472656, - 460.872314453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Somatosensory input organization. ", - "origin": [ - 78.00199127197266, - 469.3233337402344 - ], - "bbox": [ - 78.00199127197266, - 459.8463439941406, - 205.25927734375, - 471.8523254394531 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neurophysiology,", - "origin": [ - 205.26199340820312, - 469.3233337402344 - ], - "bbox": [ - 205.26199340820312, - 460.76434326171875, - 307.2356262207031, - 471.7533264160156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 307.2616882324219, - 469.3233337402344 - ], - "bbox": [ - 307.2616882324219, - 459.8463439941406, - 309.5116882324219, - 471.8523254394531 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "48", - "origin": [ - 309.48199462890625, - 469.3233337402344 - ], - "bbox": [ - 309.48199462890625, - 459.9273376464844, - 318.48199462890625, - 472.392333984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 150-159.", - "origin": [ - 318.48199462890625, - 469.3233337402344 - ], - "bbox": [ - 318.48199462890625, - 459.8463439941406, - 355.2245178222656, - 471.8523254394531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00199127197266, - 459.8463439941406, - 355.2245178222656, - 472.392333984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Wing, A.M. (1996). Anticipatory control of grip force in rapid arm movement. In: A.M.", - "origin": [ - 54.001708984375, - 480.3636474609375 - ], - "bbox": [ - 54.001708984375, - 470.88665771484375, - 377.9936828613281, - 482.89263916015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.001708984375, - 470.88665771484375, - 377.9936828613281, - 482.89263916015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Wing, P. Haggard, and J.R. Flanagan (Eds.), ", - "origin": [ - 78.00201416015625, - 491.3436279296875 - ], - "bbox": [ - 78.00201416015625, - 481.86663818359375, - 238.79241943359375, - 493.87261962890625 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Hand and brain: Neurophysiology and", - "origin": [ - 238.80230712890625, - 491.3436279296875 - ], - "bbox": [ - 238.80230712890625, - 482.7846374511719, - 378.0386657714844, - 493.77362060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00201416015625, - 481.86663818359375, - 378.0386657714844, - 493.87261962890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "psychology of hand movements", - "origin": [ - 78.00201416015625, - 502.3236083984375 - ], - "bbox": [ - 78.00201416015625, - 493.7646179199219, - 189.91522216796875, - 504.75360107421875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " (pp. 301-324). San Diego, CA: Academic Press.", - "origin": [ - 189.90171813964844, - 502.3236083984375 - ], - "bbox": [ - 189.90171813964844, - 492.84661865234375, - 364.9715270996094, - 504.85260009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00201416015625, - 492.84661865234375, - 364.9715270996094, - 504.85260009765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Wolpert, D.M., & Flanagan, J.R. (2001). Motor prediction. ", - "origin": [ - 54.001708984375, - 513.3638916015625 - ], - "bbox": [ - 54.001708984375, - 503.88690185546875, - 267.98748779296875, - 515.8928833007812 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Current Biology,", - "origin": [ - 267.9623107910156, - 513.3638916015625 - ], - "bbox": [ - 267.9623107910156, - 504.8049011230469, - 328.0535888671875, - 515.7938842773438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 328.0823059082031, - 513.3638916015625 - ], - "bbox": [ - 328.0823059082031, - 503.88690185546875, - 330.3323059082031, - 515.8928833007812 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "11", - "origin": [ - 330.3026123046875, - 513.3638916015625 - ], - "bbox": [ - 330.3026123046875, - 503.9678955078125, - 339.3026123046875, - 516.432861328125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 729-723.", - "origin": [ - 339.3026123046875, - 513.3638916015625 - ], - "bbox": [ - 339.3026123046875, - 503.88690185546875, - 376.05322265625, - 515.8928833007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.001708984375, - 503.88690185546875, - 376.05322265625, - 516.432861328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "World federation of Neurology. (1994). El Escorial criteria for the diagnosis of amyotrophic", - "origin": [ - 54.002593994140625, - 524.3439331054688 - ], - "bbox": [ - 54.002593994140625, - 514.866943359375, - 378.00537109375, - 526.8729248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.002593994140625, - 514.866943359375, - 378.00537109375, - 526.8729248046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lateral sclerosis. ", - "origin": [ - 78.00289916992188, - 535.3239135742188 - ], - "bbox": [ - 78.00289916992188, - 525.846923828125, - 138.2381134033203, - 537.8529052734375 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neurological Sciences,", - "origin": [ - 138.18319702148438, - 535.3239135742188 - ], - "bbox": [ - 138.18319702148438, - 526.764892578125, - 260.02880859375, - 537.75390625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 259.9837951660156, - 535.3239135742188 - ], - "bbox": [ - 259.9837951660156, - 525.846923828125, - 262.2337951660156, - 537.8529052734375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "124", - "origin": [ - 262.2041015625, - 535.3239135742188 - ], - "bbox": [ - 262.2041015625, - 525.9279174804688, - 275.7041015625, - 538.3928833007812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 96-107.", - "origin": [ - 275.7041015625, - 535.3239135742188 - ], - "bbox": [ - 275.7041015625, - 525.846923828125, - 307.9493103027344, - 537.8529052734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00289916992188, - 525.846923828125, - 307.9493103027344, - 538.3928833007812 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 0, - 432.0, - 648.0 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 53.999977111816406, - 63.90288543701172, - 378.0998840332031, - 538.3928833007812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Kuhtz-Buschbeck, J.P., Ehrsson, H.H., & Forssberg, H. (2001). Human brain activity in the", - "origin": [ - 54.0, - 73.3798828125 - ], - "bbox": [ - 54.0, - 63.90288543701172, - 378.0299377441406, - 75.90888214111328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 63.90288543701172, - 378.0299377441406, - 75.90888214111328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "control of fine static precision grip forces: An fMRI study. ", - "origin": [ - 78.00029754638672, - 84.35986328125 - ], - "bbox": [ - 78.00029754638672, - 74.88286590576172, - 285.78875732421875, - 86.88886260986328 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "European Journal of Neu-", - "origin": [ - 285.29998779296875, - 84.35986328125 - ], - "bbox": [ - 285.29998779296875, - 75.80086517333984, - 378.05767822265625, - 86.78986358642578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00029754638672, - 74.88286590576172, - 378.05767822265625, - 86.88886260986328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "roscience, ", - "origin": [ - 78.00028991699219, - 95.33984375 - ], - "bbox": [ - 78.00028991699219, - 86.78084564208984, - 116.5220947265625, - 97.76984405517578 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "14", - "origin": [ - 116.52029418945312, - 95.33984375 - ], - "bbox": [ - 116.52029418945312, - 85.94384765625, - 125.52029418945312, - 98.40884399414062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 82-390.", - "origin": [ - 125.52029418945312, - 95.33984375 - ], - "bbox": [ - 125.52029418945312, - 85.86284637451172, - 157.7762908935547, - 97.86884307861328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00028991699219, - 85.86284637451172, - 157.7762908935547, - 98.40884399414062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Lawyer, T. Jr., & Netsky, M.G. (1953). Amyotrophic lateral sclerosis: Clinico-anatomic", - "origin": [ - 53.99999237060547, - 106.380126953125 - ], - "bbox": [ - 53.99999237060547, - 96.90312957763672, - 378.028076171875, - 108.90912628173828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99999237060547, - 96.90312957763672, - 378.028076171875, - 108.90912628173828 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "study of 53 cases. ", - "origin": [ - 78.00028991699219, - 117.360107421875 - ], - "bbox": [ - 78.00028991699219, - 107.88311004638672, - 144.19711303710938, - 119.88910675048828 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Archives of Neurology and Psychiatry,", - "origin": [ - 144.17999267578125, - 117.360107421875 - ], - "bbox": [ - 144.17999267578125, - 108.80110931396484, - 282.27606201171875, - 119.79010772705078 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 282.239990234375, - 117.360107421875 - ], - "bbox": [ - 282.239990234375, - 107.88311004638672, - 284.489990234375, - 119.88910675048828 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "69", - "origin": [ - 284.4602966308594, - 117.360107421875 - ], - "bbox": [ - 284.4602966308594, - 107.964111328125, - 293.4602966308594, - 120.42910766601562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 171-192.", - "origin": [ - 293.4602966308594, - 117.360107421875 - ], - "bbox": [ - 293.4602966308594, - 107.88311004638672, - 330.1929016113281, - 119.88910675048828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00028991699219, - 107.88311004638672, - 330.1929016113281, - 120.42910766601562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Lemon, R.N., Mantel, G.H.W., & Muir, R.B. (1986). Corticospinal facilitation of hand", - "origin": [ - 53.99998474121094, - 128.340087890625 - ], - "bbox": [ - 53.99998474121094, - 118.86309051513672, - 377.97119140625, - 130.8690948486328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 118.86309051513672, - 377.97119140625, - 130.8690948486328 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "muscles during voluntary movement in the conscious monkey. ", - "origin": [ - 78.00028228759766, - 139.38040161132812 - ], - "bbox": [ - 78.00028228759766, - 129.9033966064453, - 300.4902038574219, - 141.90940856933594 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Physiology", - "origin": [ - 299.9402770996094, - 139.38040161132812 - ], - "bbox": [ - 299.9402770996094, - 130.82139587402344, - 377.97930908203125, - 141.81039428710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00028228759766, - 129.9033966064453, - 377.97930908203125, - 141.90940856933594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "(London),", - "origin": [ - 78.00027465820312, - 150.36041259765625 - ], - "bbox": [ - 78.00027465820312, - 141.80140686035156, - 113.74827575683594, - 152.7904052734375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 113.75997924804688, - 150.36041259765625 - ], - "bbox": [ - 113.75997924804688, - 140.88340759277344, - 116.00997924804688, - 152.88941955566406 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "381", - "origin": [ - 115.98027801513672, - 150.36041259765625 - ], - "bbox": [ - 115.98027801513672, - 140.96441650390625, - 129.48028564453125, - 153.42941284179688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 497-527.", - "origin": [ - 129.48028564453125, - 150.36041259765625 - ], - "bbox": [ - 129.48028564453125, - 140.88340759277344, - 166.23358154296875, - 152.88941955566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00027465820312, - 140.88340759277344, - 166.23358154296875, - 153.42941284179688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Miall, R.C., Weir, D.J., & Wolpert, D.M. (1993). Is the cerebellum a Smith predictor? ", - "origin": [ - 53.99998474121094, - 161.34042358398438 - ], - "bbox": [ - 53.99998474121094, - 151.86341857910156, - 359.35479736328125, - 163.8694305419922 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Jour-", - "origin": [ - 358.91998291015625, - 161.34042358398438 - ], - "bbox": [ - 358.91998291015625, - 152.7814178466797, - 377.9972839355469, - 163.77041625976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.99998474121094, - 151.86341857910156, - 377.9972839355469, - 163.8694305419922 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "nal of Motor Behavior,", - "origin": [ - 78.00027465820312, - 172.3807373046875 - ], - "bbox": [ - 78.00027465820312, - 163.8217315673828, - 159.99298095703125, - 174.81072998046875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 160.0199737548828, - 172.3807373046875 - ], - "bbox": [ - 160.0199737548828, - 162.9037322998047, - 162.2699737548828, - 174.9097442626953 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "25", - "origin": [ - 162.2402801513672, - 172.3807373046875 - ], - "bbox": [ - 162.2402801513672, - 162.9847412109375, - 171.2402801513672, - 175.44973754882812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 203-216.", - "origin": [ - 171.2402801513672, - 172.3807373046875 - ], - "bbox": [ - 171.2402801513672, - 162.9037322998047, - 207.99087524414062, - 174.9097442626953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00027465820312, - 162.9037322998047, - 207.99087524414062, - 175.44973754882812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Middleton, F., & Strick, P. (2000). Basal ganglia and cerebellar loops: Motor and cognitive", - "origin": [ - 53.999977111816406, - 183.36074829101562 - ], - "bbox": [ - 53.999977111816406, - 173.8837432861328, - 377.9911193847656, - 185.88975524902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 53.999977111816406, - 173.8837432861328, - 377.9911193847656, - 185.88975524902344 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "circuits. ", - "origin": [ - 78.00027465820312, - 194.34075927734375 - ], - "bbox": [ - 78.00027465820312, - 184.86375427246094, - 108.99627685546875, - 196.86976623535156 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Brain Research Reviews,", - "origin": [ - 109.02057647705078, - 194.34075927734375 - ], - "bbox": [ - 109.02057647705078, - 185.78175354003906, - 198.3572998046875, - 196.770751953125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 198.36087036132812, - 194.34075927734375 - ], - "bbox": [ - 198.36087036132812, - 184.86375427246094, - 200.61087036132812, - 196.86976623535156 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "31", - "origin": [ - 200.5811767578125, - 194.34075927734375 - ], - "bbox": [ - 200.5811767578125, - 184.94476318359375, - 209.5811767578125, - 197.40975952148438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 236-250.", - "origin": [ - 209.5811767578125, - 194.34075927734375 - ], - "bbox": [ - 209.5811767578125, - 184.86375427246094, - 246.33267211914062, - 196.86976623535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00027465820312, - 184.86375427246094, - 246.33267211914062, - 197.40975952148438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Nowak, D.A., Hermsdörfer, J., Marquardt, C., & Fuchs, H.H. (2002). Grip and load force", - "origin": [ - 54.000885009765625, - 205.38107299804688 - ], - "bbox": [ - 54.000885009765625, - 195.90406799316406, - 378.04327392578125, - 207.9100799560547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.000885009765625, - 195.90406799316406, - 378.04327392578125, - 207.9100799560547 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "coupling during discrete vertical arm movements with a grasped object in cerebellar", - "origin": [ - 78.00118255615234, - 216.361083984375 - ], - "bbox": [ - 78.00118255615234, - 206.8840789794922, - 378.07574462890625, - 218.8900909423828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 206.8840789794922, - 378.07574462890625, - 218.8900909423828 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "atrophy. ", - "origin": [ - 78.00118255615234, - 227.34109497070312 - ], - "bbox": [ - 78.00118255615234, - 217.8640899658203, - 109.37967681884766, - 229.87010192871094 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Research,", - "origin": [ - 109.38148498535156, - 227.34109497070312 - ], - "bbox": [ - 109.38148498535156, - 218.78208923339844, - 217.95480346679688, - 229.77108764648438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 217.98178100585938, - 227.34109497070312 - ], - "bbox": [ - 217.98178100585938, - 217.8640899658203, - 220.23178100585938, - 229.87010192871094 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "145", - "origin": [ - 220.20208740234375, - 227.34109497070312 - ], - "bbox": [ - 220.20208740234375, - 217.94509887695312, - 233.70208740234375, - 230.41009521484375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 28-39.", - "origin": [ - 233.70208740234375, - 227.34109497070312 - ], - "bbox": [ - 233.70208740234375, - 217.8640899658203, - 261.44549560546875, - 229.87010192871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00118255615234, - 217.8640899658203, - 261.44549560546875, - 230.41009521484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Nowak, D.A., Hermsdörfer, J., Glasauer, S., Philipp, J., Meyer, L., & Mai, N. (2001). The", - "origin": [ - 54.00178527832031, - 238.38140869140625 - ], - "bbox": [ - 54.00178527832031, - 228.90440368652344, - 378.04595947265625, - 240.91041564941406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00178527832031, - 228.90440368652344, - 378.04595947265625, - 240.91041564941406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "effects of digital anaesthesia on predictive grip force adjustments during vertical", - "origin": [ - 78.00208282470703, - 249.36141967773438 - ], - "bbox": [ - 78.00208282470703, - 239.88441467285156, - 377.9827880859375, - 251.8904266357422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00208282470703, - 239.88441467285156, - 377.9827880859375, - 251.8904266357422 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "movements of a grasped object. ", - "origin": [ - 78.00208282470703, - 260.3414306640625 - ], - "bbox": [ - 78.00208282470703, - 250.8644256591797, - 194.26498413085938, - 262.87042236328125 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "European Journal of Neuroscience,", - "origin": [ - 194.22177124023438, - 260.3414306640625 - ], - "bbox": [ - 194.22177124023438, - 251.7824249267578, - 321.5754089355469, - 262.77142333984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 321.54205322265625, - 260.3414306640625 - ], - "bbox": [ - 321.54205322265625, - 250.8644256591797, - 323.79205322265625, - 262.87042236328125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "14", - "origin": [ - 323.8217468261719, - 260.3414306640625 - ], - "bbox": [ - 323.8217468261719, - 250.9454345703125, - 332.8217468261719, - 263.4104309082031 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 756-762.", - "origin": [ - 332.8217468261719, - 260.3414306640625 - ], - "bbox": [ - 332.8217468261719, - 250.8644256591797, - 369.570556640625, - 262.87042236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00208282470703, - 250.8644256591797, - 369.570556640625, - 263.4104309082031 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Nowak, D.A., Hermsdörfer, J., Marquardt, C., & Topka, H. (2003). Moving objects with", - "origin": [ - 54.001739501953125, - 271.3817443847656 - ], - "bbox": [ - 54.001739501953125, - 261.9047546386719, - 378.0026550292969, - 273.9107360839844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.001739501953125, - 261.9047546386719, - 378.0026550292969, - 273.9107360839844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "clumsy fingers: How predictive is grip force control in patients with impaired manual", - "origin": [ - 78.00203704833984, - 282.36175537109375 - ], - "bbox": [ - 78.00203704833984, - 272.884765625, - 378.0809326171875, - 284.8907470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00203704833984, - 272.884765625, - 378.0809326171875, - 284.8907470703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sensibility? ", - "origin": [ - 78.00203704833984, - 293.3417663574219 - ], - "bbox": [ - 78.00203704833984, - 283.8647766113281, - 121.25603485107422, - 295.8707580566406 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Clinical Neurophysiology,", - "origin": [ - 121.26234436035156, - 293.3417663574219 - ], - "bbox": [ - 121.26234436035156, - 284.78277587890625, - 215.25477600097656, - 295.7717590332031 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 215.28265380859375, - 293.3417663574219 - ], - "bbox": [ - 215.28265380859375, - 283.8647766113281, - 217.53265380859375, - 295.8707580566406 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "114", - "origin": [ - 217.50296020507812, - 293.3417663574219 - ], - "bbox": [ - 217.50296020507812, - 283.9457702636719, - 231.00296020507812, - 296.4107666015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 472-487.", - "origin": [ - 231.00296020507812, - 293.3417663574219 - ], - "bbox": [ - 231.00296020507812, - 283.8647766113281, - 267.7526550292969, - 295.8707580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00203704833984, - 283.8647766113281, - 267.7526550292969, - 296.4107666015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Nowak, D.A., & Hermsdörfer, J. (2002). Impaired coordination between grip and load forces", - "origin": [ - 54.002655029296875, - 304.382080078125 - ], - "bbox": [ - 54.002655029296875, - 294.90509033203125, - 378.03875732421875, - 306.91107177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.002655029296875, - 294.90509033203125, - 378.03875732421875, - 306.91107177734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in amyotrophic lateral sclerosis: A case-control study. ", - "origin": [ - 78.0029525756836, - 315.3620910644531 - ], - "bbox": [ - 78.0029525756836, - 305.8851013183594, - 270.4905090332031, - 317.8910827636719 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Amyotrophic Lateral Sclerosis", - "origin": [ - 269.9432678222656, - 315.3620910644531 - ], - "bbox": [ - 269.9432678222656, - 306.8031005859375, - 378.03070068359375, - 317.7920837402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0029525756836, - 305.8851013183594, - 378.03070068359375, - 317.8910827636719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "and Other Motor Neuron Disorders,", - "origin": [ - 78.00296020507812, - 326.34210205078125 - ], - "bbox": [ - 78.00296020507812, - 317.7831115722656, - 208.43910217285156, - 328.7720947265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 208.3832550048828, - 326.34210205078125 - ], - "bbox": [ - 208.3832550048828, - 316.8651123046875, - 210.6332550048828, - 328.87109375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "3", - "origin": [ - 210.66294860839844, - 326.34210205078125 - ], - "bbox": [ - 210.66294860839844, - 316.94610595703125, - 215.16294860839844, - 329.4111022949219 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 199-207.", - "origin": [ - 215.16294860839844, - 326.34210205078125 - ], - "bbox": [ - 215.16294860839844, - 316.8651123046875, - 251.90994262695312, - 328.87109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00296020507812, - 316.8651123046875, - 251.90994262695312, - 329.4111022949219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Paré, M., & Dugas, C. (1999). Developmental changes in prehension during childhood.", - "origin": [ - 54.00263977050781, - 337.3221130371094 - ], - "bbox": [ - 54.00263977050781, - 327.8451232910156, - 378.0998840332031, - 339.8511047363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00263977050781, - 327.8451232910156, - 378.0998840332031, - 339.8511047363281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Experimental Brain Research,", - "origin": [ - 78.00293731689453, - 348.3624267578125 - ], - "bbox": [ - 78.00293731689453, - 339.8034362792969, - 186.63565063476562, - 350.79241943359375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 186.60324096679688, - 348.3624267578125 - ], - "bbox": [ - 186.60324096679688, - 338.88543701171875, - 188.85324096679688, - 350.89141845703125 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "125", - "origin": [ - 188.8829345703125, - 348.3624267578125 - ], - "bbox": [ - 188.8829345703125, - 338.9664306640625, - 202.3829345703125, - 351.4314270019531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 239-247.", - "origin": [ - 202.3829345703125, - 348.3624267578125 - ], - "bbox": [ - 202.3829345703125, - 338.88543701171875, - 239.1281280517578, - 350.89141845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00293731689453, - 338.88543701171875, - 239.1281280517578, - 351.4314270019531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Picard, N., & Smith, A.M. (1992). Primary motor cortical activity related to the weight and", - "origin": [ - 54.00263977050781, - 359.3424377441406 - ], - "bbox": [ - 54.00263977050781, - 349.8654479980469, - 378.04412841796875, - 361.8714294433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00263977050781, - 349.8654479980469, - 378.04412841796875, - 361.8714294433594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "texture of grasped objects in the monkey. ", - "origin": [ - 78.00293731689453, - 370.32244873046875 - ], - "bbox": [ - 78.00293731689453, - 360.845458984375, - 234.18896484375, - 372.8514404296875 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neurophysiology,", - "origin": [ - 235.14291381835938, - 370.32244873046875 - ], - "bbox": [ - 235.14291381835938, - 361.7634582519531, - 339.2162780761719, - 372.75244140625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 339.18292236328125, - 370.32244873046875 - ], - "bbox": [ - 339.18292236328125, - 360.845458984375, - 341.43292236328125, - 372.8514404296875 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "68", - "origin": [ - 342.48321533203125, - 370.32244873046875 - ], - "bbox": [ - 342.48321533203125, - 360.92645263671875, - 351.48321533203125, - 373.3914489746094 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 1867-", - "origin": [ - 351.48321533203125, - 370.32244873046875 - ], - "bbox": [ - 351.48321533203125, - 360.845458984375, - 378.0008239746094, - 372.8514404296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00293731689453, - 360.845458984375, - 378.0008239746094, - 373.3914489746094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1881.", - "origin": [ - 78.0029296875, - 381.3627624511719 - ], - "bbox": [ - 78.0029296875, - 371.8857727050781, - 98.2529296875, - 383.8917541503906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0029296875, - 371.8857727050781, - 98.2529296875, - 383.8917541503906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Rao, S., Harrington, D., Haaland, K., Bobholz, J., Cox, R., & Binder, J. (1997). Distributed", - "origin": [ - 54.00263214111328, - 392.3427734375 - ], - "bbox": [ - 54.00263214111328, - 382.86578369140625, - 378.0270690917969, - 394.87176513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00263214111328, - 382.86578369140625, - 378.0270690917969, - 394.87176513671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "neural systems underlying the timing of movements. ", - "origin": [ - 78.0029296875, - 403.32275390625 - ], - "bbox": [ - 78.0029296875, - 393.84576416015625, - 272.4083557128906, - 405.85174560546875 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neuroscience,", - "origin": [ - 272.88262939453125, - 403.32275390625 - ], - "bbox": [ - 272.88262939453125, - 394.7637634277344, - 363.93658447265625, - 405.75274658203125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 363.9626159667969, - 403.32275390625 - ], - "bbox": [ - 363.9626159667969, - 393.84576416015625, - 366.2126159667969, - 405.85174560546875 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "17", - "origin": [ - 366.7823181152344, - 403.32275390625 - ], - "bbox": [ - 366.7823181152344, - 393.9267578125, - 375.7823181152344, - 406.3917541503906 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 375.7823181152344, - 403.32275390625 - ], - "bbox": [ - 375.7823181152344, - 393.84576416015625, - 378.0323181152344, - 405.85174560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.0029296875, - 393.84576416015625, - 378.0323181152344, - 406.3917541503906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "5528-5535.", - "origin": [ - 78.00201416015625, - 414.363037109375 - ], - "bbox": [ - 78.00201416015625, - 404.88604736328125, - 119.24901580810547, - 416.89202880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00201416015625, - 404.88604736328125, - 119.24901580810547, - 416.89202880859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Roland, P.E., Larsen, B., Lassen, N.A., & Skinhoij, E. (1980). Supplementary motor area", - "origin": [ - 54.00171661376953, - 425.3430480957031 - ], - "bbox": [ - 54.00171661376953, - 415.8660583496094, - 378.0450744628906, - 427.8720397949219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00171661376953, - 415.8660583496094, - 378.0450744628906, - 427.8720397949219 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and other cortical areas in organization of voluntary movements in man. ", - "origin": [ - 78.00201416015625, - 436.32305908203125 - ], - "bbox": [ - 78.00201416015625, - 426.8460693359375, - 340.671630859375, - 438.85205078125 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of", - "origin": [ - 340.8623046875, - 436.32305908203125 - ], - "bbox": [ - 340.8623046875, - 427.7640686035156, - 377.9810485839844, - 438.7530517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00201416015625, - 426.8460693359375, - 377.9810485839844, - 438.85205078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Neurophysiology,", - "origin": [ - 78.00198364257812, - 447.36334228515625 - ], - "bbox": [ - 78.00198364257812, - 438.8043518066406, - 140.73379516601562, - 449.7933349609375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 140.76168823242188, - 447.36334228515625 - ], - "bbox": [ - 140.76168823242188, - 437.8863525390625, - 143.01168823242188, - 449.892333984375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "43", - "origin": [ - 142.98199462890625, - 447.36334228515625 - ], - "bbox": [ - 142.98199462890625, - 437.96734619140625, - 151.98199462890625, - 450.4323425292969 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 118-136.", - "origin": [ - 151.98199462890625, - 447.36334228515625 - ], - "bbox": [ - 151.98199462890625, - 437.8863525390625, - 188.7307891845703, - 449.892333984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00198364257812, - 437.8863525390625, - 188.7307891845703, - 450.4323425292969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Strick, P.L., & Preston, J.B. (1982). Two representations of the hand area 4 of primate. II.", - "origin": [ - 54.00169372558594, - 458.34332275390625 - ], - "bbox": [ - 54.00169372558594, - 448.8663330078125, - 378.0467834472656, - 460.872314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.00169372558594, - 448.8663330078125, - 378.0467834472656, - 460.872314453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Somatosensory input organization. ", - "origin": [ - 78.00199127197266, - 469.3233337402344 - ], - "bbox": [ - 78.00199127197266, - 459.8463439941406, - 205.25927734375, - 471.8523254394531 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neurophysiology,", - "origin": [ - 205.26199340820312, - 469.3233337402344 - ], - "bbox": [ - 205.26199340820312, - 460.76434326171875, - 307.2356262207031, - 471.7533264160156 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 307.2616882324219, - 469.3233337402344 - ], - "bbox": [ - 307.2616882324219, - 459.8463439941406, - 309.5116882324219, - 471.8523254394531 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "48", - "origin": [ - 309.48199462890625, - 469.3233337402344 - ], - "bbox": [ - 309.48199462890625, - 459.9273376464844, - 318.48199462890625, - 472.392333984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 150-159.", - "origin": [ - 318.48199462890625, - 469.3233337402344 - ], - "bbox": [ - 318.48199462890625, - 459.8463439941406, - 355.2245178222656, - 471.8523254394531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00199127197266, - 459.8463439941406, - 355.2245178222656, - 472.392333984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Wing, A.M. (1996). Anticipatory control of grip force in rapid arm movement. In: A.M.", - "origin": [ - 54.001708984375, - 480.3636474609375 - ], - "bbox": [ - 54.001708984375, - 470.88665771484375, - 377.9936828613281, - 482.89263916015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.001708984375, - 470.88665771484375, - 377.9936828613281, - 482.89263916015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Wing, P. Haggard, and J.R. Flanagan (Eds.), ", - "origin": [ - 78.00201416015625, - 491.3436279296875 - ], - "bbox": [ - 78.00201416015625, - 481.86663818359375, - 238.79241943359375, - 493.87261962890625 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Hand and brain: Neurophysiology and", - "origin": [ - 238.80230712890625, - 491.3436279296875 - ], - "bbox": [ - 238.80230712890625, - 482.7846374511719, - 378.0386657714844, - 493.77362060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00201416015625, - 481.86663818359375, - 378.0386657714844, - 493.87261962890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "psychology of hand movements", - "origin": [ - 78.00201416015625, - 502.3236083984375 - ], - "bbox": [ - 78.00201416015625, - 493.7646179199219, - 189.91522216796875, - 504.75360107421875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " (pp. 301-324). San Diego, CA: Academic Press.", - "origin": [ - 189.90171813964844, - 502.3236083984375 - ], - "bbox": [ - 189.90171813964844, - 492.84661865234375, - 364.9715270996094, - 504.85260009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00201416015625, - 492.84661865234375, - 364.9715270996094, - 504.85260009765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Wolpert, D.M., & Flanagan, J.R. (2001). Motor prediction. ", - "origin": [ - 54.001708984375, - 513.3638916015625 - ], - "bbox": [ - 54.001708984375, - 503.88690185546875, - 267.98748779296875, - 515.8928833007812 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Current Biology,", - "origin": [ - 267.9623107910156, - 513.3638916015625 - ], - "bbox": [ - 267.9623107910156, - 504.8049011230469, - 328.0535888671875, - 515.7938842773438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 328.0823059082031, - 513.3638916015625 - ], - "bbox": [ - 328.0823059082031, - 503.88690185546875, - 330.3323059082031, - 515.8928833007812 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "11", - "origin": [ - 330.3026123046875, - 513.3638916015625 - ], - "bbox": [ - 330.3026123046875, - 503.9678955078125, - 339.3026123046875, - 516.432861328125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 729-723.", - "origin": [ - 339.3026123046875, - 513.3638916015625 - ], - "bbox": [ - 339.3026123046875, - 503.88690185546875, - 376.05322265625, - 515.8928833007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.001708984375, - 503.88690185546875, - 376.05322265625, - 516.432861328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "World federation of Neurology. (1994). El Escorial criteria for the diagnosis of amyotrophic", - "origin": [ - 54.002593994140625, - 524.3439331054688 - ], - "bbox": [ - 54.002593994140625, - 514.866943359375, - 378.00537109375, - 526.8729248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.002593994140625, - 514.866943359375, - 378.00537109375, - 526.8729248046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lateral sclerosis. ", - "origin": [ - 78.00289916992188, - 535.3239135742188 - ], - "bbox": [ - 78.00289916992188, - 525.846923828125, - 138.2381134033203, - 537.8529052734375 - ] - }, - { - "size": 9.0, - "flags": 6, - "font": "Times-Italic", - "color": 2236191, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Journal of Neurological Sciences,", - "origin": [ - 138.18319702148438, - 535.3239135742188 - ], - "bbox": [ - 138.18319702148438, - 526.764892578125, - 260.02880859375, - 537.75390625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 259.9837951660156, - 535.3239135742188 - ], - "bbox": [ - 259.9837951660156, - 525.846923828125, - 262.2337951660156, - 537.8529052734375 - ] - }, - { - "size": 9.0, - "flags": 20, - "font": "Times-Bold", - "color": 2236191, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "124", - "origin": [ - 262.2041015625, - 535.3239135742188 - ], - "bbox": [ - 262.2041015625, - 525.9279174804688, - 275.7041015625, - 538.3928833007812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "Times-Roman", - "color": 2236191, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", 96-107.", - "origin": [ - 275.7041015625, - 535.3239135742188 - ], - "bbox": [ - 275.7041015625, - 525.846923828125, - 307.9493103027344, - 537.8529052734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.00289916992188, - 525.846923828125, - 307.9493103027344, - 538.3928833007812 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 2, - "type": 0, - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.0, - "flags": 4, - "font": "Times-Roman", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Downloaded by The University of Calgary on 09/17/16, Volume 7, Article Number 3", - "origin": [ - 11.0, - 460.8699951171875 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 2.576000213623047, - 187.1259765625, - 13.248000144958496, - 460.8699951171875 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 16, - "page_size": [ - 432.0, - 648.0 - ] - } -} \ No newline at end of file diff --git a/tests/assets/pre_proc_results/scihub_76800000/preproc_out.json b/tests/assets/pre_proc_results/scihub_76800000/preproc_out.json deleted file mode 100644 index 18ee53a65..000000000 --- a/tests/assets/pre_proc_results/scihub_76800000/preproc_out.json +++ /dev/null @@ -1,24951 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 106, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 108, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 112, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 118, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 126, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 141, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 148, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 150, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 157, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 159, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 160, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 161, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 163, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 178, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 181, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 183, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 185, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 187, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 188, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 190, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 193, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 194, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 196, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 197, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 199, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 201, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 202, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 205, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 207, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 208, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 209, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 210, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 212, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 214, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 215, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 217, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 219, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 221, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 225, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 226, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 227, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 228, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 229, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 230, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 232, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 234, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 236, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 238, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 239, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 240, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 241, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 242, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 244, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 246, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 248, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 250, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 252, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 254, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 257, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 260, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 261, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 262, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 263, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 264, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 265, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 266, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 268, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 270, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 271, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 273, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 274, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 275, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 277, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 279, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 280, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 281, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 283, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 286, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 288, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 289, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 295, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 296, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 297, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 298, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 301, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 302, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 303, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 305, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 307, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 309, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 311, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 312, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 0, - 440.0, - 667.0 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 84, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 106, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 108, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 112, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 118, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 126, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 141, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 148, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 150, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 157, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 159, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 160, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 161, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 163, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 178, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 181, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 183, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 185, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 187, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 188, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 190, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 193, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 194, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 196, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 197, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 199, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 201, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 202, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 205, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 207, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 208, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 209, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 210, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 212, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 214, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 215, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 217, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 219, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 221, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 225, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 226, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 227, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 228, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 229, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 230, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 232, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 234, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 236, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 238, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 239, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 240, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 241, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 242, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 244, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 246, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 248, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 250, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 252, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 254, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 257, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 260, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 261, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 262, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 263, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 264, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 265, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 266, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 268, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 270, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 271, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 273, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 274, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 275, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 277, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 279, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 280, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 281, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 283, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 286, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 288, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 289, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 295, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 296, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 297, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 298, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 301, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 302, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 303, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 305, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 307, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 309, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 311, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 312, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "global_statistic": {}, - "droped_text_block": [], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 440.0, - 667.0 - ] - }, - "page_1": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 114, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 118, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 122, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 131, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 132, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 136, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 141, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 149, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 151, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 159, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 163, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 165, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 167, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 169, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 171, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 177, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 181, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 184, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 185, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 187, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 188, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 191, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 196, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 198, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 199, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 201, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 202, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 204, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 205, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 206, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 208, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 213, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 215, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 217, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 219, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 222, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 224, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 226, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 227, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 230, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 232, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 234, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 235, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 237, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 239, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 240, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 241, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 243, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 245, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 247, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 248, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 250, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 253, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 255, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 257, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 259, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 260, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 264, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 266, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 268, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 271, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 273, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 275, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 276, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 278, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 280, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 281, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 282, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 284, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 286, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 287, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 288, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 289, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 291, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 294, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 296, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 298, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 300, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 302, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 304, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 306, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 307, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 310, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 312, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 314, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 316, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 318, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 320, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 321, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 323, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 325, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 327, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 330, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 331, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 332, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 334, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 336, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 338, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 339, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 341, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 343, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 345, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 346, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 347, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 349, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 351, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 353, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 355, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 356, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 358, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 359, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 360, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 361, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 364, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 366, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 368, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 370, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 372, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 374, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 375, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 376, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 380, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 382, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 384, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 386, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 388, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 390, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 392, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 393, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 395, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 397, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 398, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 399, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 400, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 402, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 404, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 405, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 407, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 409, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 411, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 413, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 415, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 417, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 419, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 421, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 423, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 424, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 426, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 428, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 430, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 431, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 434, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 435, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 0, - 440.0, - 667.0 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 70, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 100, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 107, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 109, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 114, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 118, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 122, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 131, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 132, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 136, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 141, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 149, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 151, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 159, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 163, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 165, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 167, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 169, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 171, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 177, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 181, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 184, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 185, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 187, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 188, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 191, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 196, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 198, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 199, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 201, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 202, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 204, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 205, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 206, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 208, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 213, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 215, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 217, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 219, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 222, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 224, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 226, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 227, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 230, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 232, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 234, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 235, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 237, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 239, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 240, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 241, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 243, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 245, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 247, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 248, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 250, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 253, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 255, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 257, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 259, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 260, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 264, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 266, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 268, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 271, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 273, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 275, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 276, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 278, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 280, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 281, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 282, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 284, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 286, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 287, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 288, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 289, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 291, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 294, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 296, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 298, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 300, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 302, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 304, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 306, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 307, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 310, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 312, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 314, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 316, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 318, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 320, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 321, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 323, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 325, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 327, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 330, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 331, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 332, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 334, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 336, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 338, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 339, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 341, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 343, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 345, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 346, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 347, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 349, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 351, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 353, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 355, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 356, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 358, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 359, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 360, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 361, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 364, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 366, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 368, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 370, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 372, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 374, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 375, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 376, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 380, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 382, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 384, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 386, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 388, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 390, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 392, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 393, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 395, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 397, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 398, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 399, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 400, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 402, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 404, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 405, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 407, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 409, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 411, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 413, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 415, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 417, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 419, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 421, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 423, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 424, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 426, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 428, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 430, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 431, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 434, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 435, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "global_statistic": {}, - "droped_text_block": [], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 1, - "page_size": [ - 440.0, - 667.0 - ] - }, - "page_2": { - "para_blocks": {}, - "preproc_blocks": [], - "images": [ - { - "bbox": [ - 69, - 63, - 385, - 294 - ], - "image_path": "images/2_69_63_385_294.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 53, - 440.0, - 294 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 80, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 94, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 106, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 108, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 110, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 114, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 115, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 116, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 118, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 119, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 120, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 122, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 124, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 126, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 128, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 131, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 133, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 137, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 142, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 144, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 147, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 149, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 151, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 153, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 155, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 160, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 164, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 165, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 171, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 174, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 176, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 177, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 178, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 184, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 186, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 188, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 190, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 194, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 197, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 199, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 201, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 203, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 205, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 206, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 208, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 210, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 211, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 214, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 216, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 218, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 220, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 222, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 224, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 227, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 232, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 234, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 236, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 238, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 240, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 242, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 243, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 244, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 245, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 247, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 249, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 251, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 253, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 255, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 258, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 259, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 261, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 263, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 265, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 269, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 270, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 273, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 275, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 276, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 277, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 278, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 280, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 282, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 283, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 286, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 288, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 290, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 292, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 294, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 296, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 298, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 299, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 301, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 303, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 304, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 307, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 309, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 311, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 312, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 314, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 315, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 316, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 317, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 318, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 320, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 321, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 323, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 325, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 327, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 328, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 329, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 334, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 336, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 338, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 340, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 345, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 350, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 351, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 354, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 355, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 357, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 359, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 360, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 363, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 365, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 367, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 17, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 37, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 40, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 46, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 56, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 59, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 62, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 63, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 64, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 67, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 71, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 75, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 80, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 81, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 82, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 94, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 97, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 103, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 106, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 108, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 110, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 113, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 114, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 115, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 116, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 118, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 119, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 120, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 122, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 124, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 126, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 128, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 129, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 131, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 133, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 137, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 142, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 144, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 147, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 149, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 151, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 153, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 155, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 160, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 164, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 165, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 171, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 174, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 176, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 177, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 178, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 184, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 186, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 188, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 190, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 194, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 197, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 199, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 201, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 203, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 205, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 206, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 208, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 210, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 211, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 214, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 216, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 218, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 220, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 222, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 224, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 227, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 232, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 234, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 236, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 238, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 240, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 242, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 243, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 244, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 245, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 247, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 249, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 251, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 253, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 255, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 258, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 259, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 261, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 263, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 265, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 269, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 270, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 273, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 275, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 276, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 277, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 278, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 280, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 282, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 283, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 286, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 288, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 290, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 292, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 294, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 296, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 298, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 299, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 301, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 303, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 304, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 307, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 309, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 311, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 312, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 314, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 315, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 316, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 317, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 318, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 320, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 321, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 323, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 325, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 327, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 328, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 329, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 334, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 336, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 338, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 340, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 345, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 350, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 351, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 354, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 355, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 357, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 359, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 360, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 363, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 365, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 367, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 17, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 37, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 40, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 46, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 56, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 59, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 62, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 63, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 64, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 67, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 71, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 75, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 80, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 81, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 82, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 94, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 97, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 103, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 106, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 108, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 110, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 113, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 114, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 115, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 116, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 118, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 119, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 120, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 122, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 124, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 126, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 128, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 129, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 131, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 133, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 137, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 142, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 144, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 147, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 149, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 151, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 153, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 155, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 160, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 164, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 165, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 171, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 174, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 176, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 177, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 178, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 184, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 186, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 188, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 190, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 194, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 197, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 199, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 201, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 203, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 205, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 206, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 208, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 210, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 211, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 214, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 216, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 218, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 220, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 222, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 224, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 227, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 232, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 234, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 236, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 238, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 240, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 242, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 243, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 244, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 245, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 247, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 249, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 251, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 253, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 255, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 258, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 259, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 261, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 263, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 265, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 269, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 270, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 273, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 275, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 276, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 277, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 278, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 280, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 282, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 283, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 286, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 288, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 290, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 292, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 294, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 296, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 298, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 299, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 301, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 303, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 304, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 307, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 309, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 311, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 312, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 314, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 315, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 316, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 317, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 318, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 320, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 321, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 323, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 325, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 327, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 328, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 329, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 334, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 336, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 338, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 340, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 345, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 350, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 351, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 354, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 355, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 357, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 359, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 360, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 363, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 365, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 367, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - } - ], - "droped_image_block": [ - { - "bbox": [ - 52, - 53, - 384, - 54 - ], - "image_path": "images/2_52_53_384_54.jpg", - "tag": "header" - } - ], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 2, - "page_size": [ - 440.0, - 667.0 - ] - }, - "page_3": { - "para_blocks": {}, - "preproc_blocks": [], - "images": [ - { - "bbox": [ - 176, - 135, - 322, - 247 - ], - "image_path": "images/3_176_135_322_247.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 145.8669574700109, - 70.53884892086332, - 167.45910577971648, - 82.05539568345324 - ], - "image_path": "equations_inline/3_145_70_167_82.jpg" - }, - { - "bbox": [ - 145.8669574700109, - 84.4546762589928, - 168.41875681570338, - 95.97122302158273 - ], - "image_path": "equations_inline/3_145_84_168_95.jpg" - }, - { - "bbox": [ - 166.49945474372956, - 108.44748201438848, - 206.3249727371865, - 120.44388489208633 - ], - "image_path": "equations_inline/3_166_108_206_120.jpg" - }, - { - "bbox": [ - 306.608505997819, - 109.40719424460431, - 350.752453653217, - 121.40359712230216 - ], - "image_path": "equations_inline/3_306_109_350_121.jpg" - }, - { - "bbox": [ - 166.49945474372956, - 121.88345323741008, - 211.6030534351145, - 134.83956834532376 - ], - "image_path": "equations_inline/3_166_121_211_134.jpg" - }, - { - "bbox": [ - 170.33805888767722, - 248.08561151079138, - 210.16357688113413, - 261.041726618705 - ], - "image_path": "equations_inline/3_170_248_210_261.jpg" - }, - { - "bbox": [ - 306.1286804798255, - 248.5654676258993, - 350.27262813522356, - 260.0820143884892 - ], - "image_path": "equations_inline/3_306_248_350_260.jpg" - }, - { - "bbox": [ - 170.33805888767722, - 262.0014388489209, - 211.6030534351145, - 274.95755395683454 - ], - "image_path": "equations_inline/3_170_262_211_274.jpg" - }, - { - "bbox": [ - 306.1286804798255, - 262.0014388489209, - 346.4340239912759, - 273.99784172661873 - ], - "image_path": "equations_inline/3_306_262_346_273.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 53, - 440.0, - 247 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 82, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 86, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 92, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 97, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 99, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 113, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 119, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 123, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 124, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 127, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 136, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 141, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 142, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 144, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 147, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 149, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 150, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 151, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 155, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 159, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 160, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 161, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 164, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 171, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 183, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 184, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 186, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 188, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 189, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 190, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 194, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 195, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 197, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 199, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 200, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 202, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 203, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 206, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 208, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 210, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 212, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 213, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 216, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 217, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 219, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 220, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 222, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 223, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 224, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 226, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 227, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 229, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 230, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 234, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 236, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 237, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 239, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 242, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 244, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 246, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 247, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 248, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 250, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 252, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 253, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 255, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 256, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 257, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 259, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 9, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 14, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 16, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 20, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 29, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 35, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 36, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 39, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 40, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 44, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 48, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 51, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 52, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 55, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 56, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 59, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 60, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 62, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 64, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 66, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 74, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 75, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 76, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 81, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 82, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 83, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 86, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 89, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 90, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 92, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 93, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 97, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 98, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 99, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 113, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 117, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 119, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 121, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 123, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 124, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 127, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 136, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 141, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 142, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 144, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 147, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 149, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 150, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 151, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 152, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 154, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 155, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 159, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 160, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 161, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 164, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 171, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 183, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 184, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 186, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 188, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 189, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 190, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 194, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 195, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 197, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 199, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 200, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 202, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 203, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 206, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 208, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 210, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 212, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 213, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 216, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 217, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 219, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 220, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 222, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 223, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 224, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 226, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 227, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 229, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 230, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 234, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 236, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 237, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 239, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 242, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 244, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 246, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 247, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 248, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 250, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 252, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 253, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 255, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 256, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 257, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 259, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 9, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 14, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 16, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 20, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 29, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 35, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 36, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 39, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 40, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 44, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 48, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 51, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 52, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 55, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 56, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 59, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 60, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 62, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 64, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 66, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 74, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 75, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 76, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 81, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 82, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 83, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 86, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 89, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 90, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 91, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 92, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 93, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 97, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 98, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 99, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 113, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 117, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 119, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 121, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 123, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 124, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 127, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 135, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 136, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 141, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 142, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 144, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 147, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 149, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 150, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 151, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 152, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 154, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 155, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 159, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 160, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 161, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 164, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 171, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 179, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 182, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 183, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 184, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 186, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 188, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 189, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 190, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 192, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 194, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 195, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 197, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 199, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 200, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 202, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 203, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 206, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 208, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 210, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 212, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 213, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 216, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 217, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 219, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 220, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 222, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 223, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 224, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 226, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 227, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 229, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 230, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 234, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 236, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 237, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 239, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 242, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 244, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 246, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 247, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 248, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 250, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 252, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 253, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 255, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 256, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 257, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 259, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - } - ], - "droped_image_block": [ - { - "bbox": [ - 80, - 53, - 358, - 54 - ], - "image_path": "images/3_80_53_358_54.jpg", - "tag": "header" - } - ], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 3, - "page_size": [ - 440.0, - 667.0 - ] - }, - "page_4": { - "para_blocks": {}, - "preproc_blocks": [], - "images": [ - { - "bbox": [ - 157, - 145, - 329, - 264 - ], - "image_path": "images/4_157_145_329_264.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 124.27480916030535, - 73.41798561151079, - 146.82660850599783, - 85.41438848920863 - ], - "image_path": "equations_inline/4_124_73_146_85.jpg" - }, - { - "bbox": [ - 124.27480916030535, - 95.49136690647482, - 146.34678298800438, - 107.00791366906475 - ], - "image_path": "equations_inline/4_124_95_146_107.jpg" - }, - { - "bbox": [ - 312.3664122137405, - 116.60503597122302, - 352.1919302071974, - 129.08129496402879 - ], - "image_path": "equations_inline/4_312_116_352_129.jpg" - }, - { - "bbox": [ - 153.06434023991275, - 119.0043165467626, - 197.2082878953108, - 130.5208633093525 - ], - "image_path": "equations_inline/4_153_119_197_130.jpg" - }, - { - "bbox": [ - 312.84623773173394, - 131.48057553956835, - 352.1919302071974, - 143.4769784172662 - ], - "image_path": "equations_inline/4_312_131_352_143.jpg" - }, - { - "bbox": [ - 308.5278080697928, - 267.2798561151079, - 347.87350054525626, - 279.27625899280577 - ], - "image_path": "equations_inline/4_308_267_347_279.jpg" - }, - { - "bbox": [ - 151.14503816793894, - 267.7597122302158, - 196.24863685932388, - 280.7158273381295 - ], - "image_path": "equations_inline/4_151_267_196_280.jpg" - }, - { - "bbox": [ - 308.5278080697928, - 281.6755395683453, - 352.67175572519085, - 293.67194244604315 - ], - "image_path": "equations_inline/4_308_281_352_293.jpg" - }, - { - "bbox": [ - 151.62486368593238, - 282.63525179856117, - 195.76881134133043, - 295.1115107913669 - ], - "image_path": "equations_inline/4_151_282_195_295.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 53, - 440.0, - 264 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 76, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 88, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 90, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 98, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 99, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 103, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 117, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 118, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 119, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 121, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 123, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 126, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 128, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 129, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 130, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 132, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 133, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 136, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 141, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 142, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 148, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 150, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 152, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 153, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 154, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 159, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 161, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 164, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 167, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 172, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 176, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 177, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 178, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 180, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 10, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 18, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 33, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 36, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 39, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 42, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 44, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 45, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 46, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 48, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 49, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 50, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 51, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 52, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 53, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 55, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 58, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 61, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 74, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 76, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 81, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 83, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 88, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 89, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 90, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 98, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 99, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 103, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 117, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 118, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 119, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 121, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 123, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 126, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 128, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 129, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 130, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 132, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 133, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 136, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 141, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 142, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 148, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 150, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 152, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 153, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 154, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 159, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 161, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 164, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 167, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 172, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 176, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 177, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 178, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 180, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 10, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 18, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 33, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 36, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 39, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 42, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 43, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 44, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 45, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 46, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 47, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 48, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 49, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 50, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 51, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 52, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 53, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 55, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 58, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 61, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 68, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 72, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 74, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 76, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 78, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 79, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 81, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 83, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 85, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 87, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 88, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 89, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 90, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 96, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 98, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 99, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 102, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 103, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 104, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 105, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 111, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 117, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 118, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 119, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 121, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 123, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 125, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 126, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 128, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 129, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 130, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 132, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 133, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 134, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 136, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 138, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 140, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 141, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 142, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 143, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 145, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 146, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 148, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 150, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 152, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 153, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 154, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 156, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 158, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 159, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 161, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 162, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 164, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 166, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 167, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 168, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 170, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 172, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 173, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 175, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 176, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 177, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 178, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 180, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - } - ], - "droped_image_block": [ - { - "bbox": [ - 74, - 53, - 363, - 54 - ], - "image_path": "images/4_74_53_363_54.jpg", - "tag": "header" - } - ], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 4, - "page_size": [ - 440.0, - 667.0 - ] - }, - "page_5": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 0, - 440.0, - 667.0 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - } - ], - "global_statistic": {}, - "droped_text_block": [], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 5, - "page_size": [ - 440.0, - 667.0 - ] - } -} \ No newline at end of file diff --git a/tests/assets/pre_proc_results/the_eye_cdn_00412782/preproc_out.json b/tests/assets/pre_proc_results/the_eye_cdn_00412782/preproc_out.json deleted file mode 100644 index fd040ce6b..000000000 --- a/tests/assets/pre_proc_results/the_eye_cdn_00412782/preproc_out.json +++ /dev/null @@ -1,187979 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 74.0, - 75.19999694824219, - 233.59999084472656, - 95.5999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "����", - "origin": [ - 74.0, - 81.5 - ], - "bbox": [ - 74.0, - 75.19999694824219, - 100.80000305175781, - 95.5999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.0, - 75.19999694824219, - 100.80000305175781, - 95.5999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "���\n�\f\u000b\u000e\r\u000f�\u0010��\u0011", - "origin": [ - 115.9000015258789, - 81.5 - ], - "bbox": [ - 115.9000015258789, - 75.19999694824219, - 190.5, - 95.5999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 115.9000015258789, - 75.19999694824219, - 190.5, - 95.5999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0012\u0014\u0013\u0016\u0015", - "origin": [ - 207.0, - 81.5 - ], - "bbox": [ - 207.0, - 75.19999694824219, - 233.59999084472656, - 95.5999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 207.0, - 75.19999694824219, - 233.59999084472656, - 95.5999984741211 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 72.19999694824219, - 112.10002136230469, - 535.5, - 132.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001c\u001b\u001e\u001d \u001f!\u001f#\"%$�&\u001a')(+*,(-')&/.10", - "origin": [ - 72.19999694824219, - 118.4000244140625 - ], - "bbox": [ - 72.19999694824219, - 112.10002136230469, - 163.49998474121094, - 132.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 112.10002136230469, - 163.49998474121094, - 132.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "243\u001e\u0019457698;:=<\u001c<94@\u001c\u001cA4@B@\nC\n8ED4@F8", - "origin": [ - 411.70001220703125, - 118.4000244140625 - ], - "bbox": [ - 411.70001220703125, - 112.10002136230469, - 520.0, - 132.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.70001220703125, - 112.10002136230469, - 520.0, - 132.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "GF:H2", - "origin": [ - 522.2999877929688, - 118.4000244140625 - ], - "bbox": [ - 522.2999877929688, - 112.10002136230469, - 535.5, - 132.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 522.2999877929688, - 112.10002136230469, - 535.5, - 132.50003051757812 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.49996948242188, - 146.1000213623047, - 538.2999877929688, - 166.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "IKJML\u001cN/O%P?QRJ\u001cS=TVU4WYX[Z�J\u001cS=T\\J^]", - "origin": [ - 72.49996948242188, - 152.4000244140625 - ], - "bbox": [ - 72.49996948242188, - 146.1000213623047, - 168.79995727539062, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49996948242188, - 146.1000213623047, - 168.79995727539062, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J=ZH_a`aZ7J[ZbL\u001aPc]", - "origin": [ - 170.69998168945312, - 152.4000244140625 - ], - "bbox": [ - 170.69998168945312, - 146.1000213623047, - 221.99996948242188, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.69998168945312, - 146.1000213623047, - 221.99996948242188, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "`?Sed?`ad\u001cJgfihbj\u000fkFlmk%J[ZHWYn[d\u001a]", - "origin": [ - 223.99998474121094, - 152.4000244140625 - ], - "bbox": [ - 223.99998474121094, - 146.1000213623047, - 320.89996337890625, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 223.99998474121094, - 146.1000213623047, - 320.89996337890625, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J[ZoL\u001cJBZ�p9SeT�`=q%J9r;]", - "origin": [ - 322.79998779296875, - 152.4000244140625 - ], - "bbox": [ - 322.79998779296875, - 146.1000213623047, - 384.89996337890625, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 322.79998779296875, - 146.1000213623047, - 384.89996337890625, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J=ZHW-n=dF]", - "origin": [ - 386.79998779296875, - 152.4000244140625 - ], - "bbox": [ - 386.79998779296875, - 146.1000213623047, - 411.79998779296875, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.79998779296875, - 146.1000213623047, - 411.79998779296875, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J=ZsL9JMO%WYX=`eTut", - "origin": [ - 413.6999816894531, - 152.4000244140625 - ], - "bbox": [ - 413.6999816894531, - 146.1000213623047, - 459.0999755859375, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 413.6999816894531, - 146.1000213623047, - 459.0999755859375, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "N\u001aS!LwvxP?S!L9N\nO4P9Q\u001eJ4SeT[r", - "origin": [ - 461.1999816894531, - 152.4000244140625 - ], - "bbox": [ - 461.1999816894531, - 146.1000213623047, - 538.2999877929688, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.1999816894531, - 146.1000213623047, - 538.2999877929688, - 166.50003051757812 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 74.59998321533203, - 159.6000213623047, - 468.8999938964844, - 180.00003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J[ZVU4WytzS%OetzU%`?]", - "origin": [ - 74.59998321533203, - 165.9000244140625 - ], - "bbox": [ - 74.59998321533203, - 159.6000213623047, - 119.29998016357422, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.59998321533203, - 159.6000213623047, - 119.29998016357422, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J[ZV_a`?]", - "origin": [ - 121.19998168945312, - 165.9000244140625 - ], - "bbox": [ - 121.19998168945312, - 159.6000213623047, - 143.0999755859375, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 121.19998168945312, - 159.6000213623047, - 143.0999755859375, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Z7J[Z J)TV]", - "origin": [ - 147.39999389648438, - 165.9000244140625 - ], - "bbox": [ - 147.39999389648438, - 159.6000213623047, - 174.59999084472656, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.39999389648438, - 159.6000213623047, - 174.59999084472656, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J4P?W-ZVU%`4W{`?QRn[T1W-J=Z=rw]", - "origin": [ - 176.5, - 165.9000244140625 - ], - "bbox": [ - 176.5, - 159.6000213623047, - 248.49998474121094, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.5, - 159.6000213623047, - 248.49998474121094, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J[ZH_%`?]", - "origin": [ - 250.39999389648438, - 165.9000244140625 - ], - "bbox": [ - 250.39999389648438, - 159.6000213623047, - 272.5, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 250.39999389648438, - 159.6000213623047, - 272.5, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Z�J=Z `e|%`?S%O)X[J=ZH}\\]", - "origin": [ - 276.79998779296875, - 165.9000244140625 - ], - "bbox": [ - 276.79998779296875, - 159.6000213623047, - 336.0999755859375, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.79998779296875, - 159.6000213623047, - 336.0999755859375, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J4SaZ=rwtzQ\u001e`ad\u001cJ=Z=r�]", - "origin": [ - 340.3999938964844, - 165.9000244140625 - ], - "bbox": [ - 340.3999938964844, - 159.6000213623047, - 394.8000183105469, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.3999938964844, - 159.6000213623047, - 394.8000183105469, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Z\\T\\J=Z J[T~T�`?_?]", - "origin": [ - 399.1000061035156, - 165.9000244140625 - ], - "bbox": [ - 399.1000061035156, - 159.6000213623047, - 443.5000305175781, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.1000061035156, - 159.6000213623047, - 443.5000305175781, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J=`?P=q\u001c)l", - "origin": [ - 445.3999938964844, - 165.9000244140625 - ], - "bbox": [ - 445.3999938964844, - 159.6000213623047, - 468.8999938964844, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.3999938964844, - 159.6000213623047, - 468.8999938964844, - 180.00003051757812 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.5, - 197.80003356933594, - 195.30001831054688, - 218.20004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "€‚Bƒ…„)†ˆ‡‰†oŠŒ‹Hސ)‘s’i†oŠ", - "origin": [ - 72.5, - 204.10003662109375 - ], - "bbox": [ - 72.5, - 197.80003356933594, - 195.30001831054688, - 218.20004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 197.80003356933594, - 195.30001831054688, - 218.20004272460938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 72.80000305175781, - 229.70005798339844, - 144.10000610351562, - 250.10006713867188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "“•”)–+—=˜a™mš›œ4—ežy™w–", - "origin": [ - 72.80000305175781, - 236.00006103515625 - ], - "bbox": [ - 72.80000305175781, - 229.70005798339844, - 144.10000610351562, - 250.10006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.80000305175781, - 229.70005798339844, - 144.10000610351562, - 250.10006713867188 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 87.80001831054688, - 250.4000701904297, - 516.8999633789062, - 270.8000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":\u001c -:•¡¢\u0018F\u001bu£\u001c\u0018w£9¤o¥/6B¦[6)5�5u6M¥/£/¦)§F¨g6=©95ª\u0019%5u«¬£9©­ B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.80001831054688, - 256.7000732421875 - ], - "bbox": [ - 87.80001831054688, - 250.4000701904297, - 516.8999633789062, - 270.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.80001831054688, - 250.4000701904297, - 516.8999633789062, - 270.8000793457031 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 87.80001831054688, - 269.30010986328125, - 516.8999633789062, - 289.7001037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":\u001c EA", - "origin": [ - 87.80001831054688, - 275.60009765625 - ], - "bbox": [ - 87.80001831054688, - 269.30010986328125, - 95.20001983642578, - 289.7001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.80001831054688, - 269.30010986328125, - 95.20001983642578, - 289.7001037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "®\u001e§K¯", - "origin": [ - 110.30001831054688, - 275.60009765625 - ], - "bbox": [ - 110.30001831054688, - 269.30010986328125, - 123.90001678466797, - 289.7001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.30001831054688, - 269.30010986328125, - 123.90001678466797, - 289.7001037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5�°±¦)6B²?§F6M³R´oµ\u000e¶¸·¹ B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 126.10002136230469, - 275.60009765625 - ], - "bbox": [ - 126.10002136230469, - 269.30010986328125, - 516.8999633789062, - 289.7001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.10002136230469, - 269.30010986328125, - 516.8999633789062, - 289.7001037597656 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.50003051757812, - 295.90008544921875, - 192.70001220703125, - 316.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ÿ»º!™�¼½¼¿¾\n–+—MÀ\u001cÁ‚¼¿Á/˜%œa¾RÃ", - "origin": [ - 72.50003051757812, - 302.2000732421875 - ], - "bbox": [ - 72.50003051757812, - 295.90008544921875, - 192.70001220703125, - 316.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50003051757812, - 295.90008544921875, - 192.70001220703125, - 316.3000793457031 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 87.4000244140625, - 316.80010986328125, - 516.8999633789062, - 337.2001037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "A/ -:•Åb©\u001a6BÆa\u0019\u001cÇ\u001c§F6H«Y¥/È[6M¥F§É\u0018\u001a\u001b7£\u001c57£/¦)£9ʬ6H³R´o´sËÌ H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.4000244140625, - 323.10009765625 - ], - "bbox": [ - 87.4000244140625, - 316.80010986328125, - 516.8999633789062, - 337.2001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.4000244140625, - 316.80010986328125, - 516.8999633789062, - 337.2001037597656 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 87.40005493164062, - 335.5001220703125, - 516.8999633789062, - 355.9001159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "A/ EA\f¶K6B¨g£\u001c576[§\u001a\u001bb¥/6B\u001b76=©\u001a¥/§…³R´oµÍ¶Î H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.40005493164062, - 341.80010986328125 - ], - "bbox": [ - 87.40005493164062, - 335.5001220703125, - 516.8999633789062, - 355.9001159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 335.5001220703125, - 516.8999633789062, - 355.9001159667969 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 87.40005493164062, - 354.30010986328125, - 516.8999633789062, - 374.7001037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "A/ ", - "origin": [ - 87.40005493164062, - 360.60009765625 - ], - "bbox": [ - 87.40005493164062, - 354.30010986328125, - 92.80005645751953, - 374.7001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 354.30010986328125, - 92.80005645751953, - 374.7001037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "G»¶K6e¤b¤76[\u001buÆ\u001c6[§\u001a\u001bu¤~Ï�6=ÐÑ B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 95.10005187988281, - 360.60009765625 - ], - "bbox": [ - 95.10005187988281, - 354.30010986328125, - 516.8999633789062, - 374.7001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.10005187988281, - 354.30010986328125, - 516.8999633789062, - 374.7001037597656 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 87.40005493164062, - 373.10009765625, - 516.9000244140625, - 393.5000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "A/ ", - "origin": [ - 87.40005493164062, - 379.40008544921875 - ], - "bbox": [ - 87.40005493164062, - 373.10009765625, - 92.80005645751953, - 393.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 373.10009765625, - 92.80005645751953, - 393.5000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~£\u001c¨g¨g6[©?5oÔy\u0019\u001c«¬\u001bu6B¤7\u0019^\u0018\u001a\u0019\u001cÇ\u001c6·Õ V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 110.30005645751953, - 379.40008544921875 - ], - "bbox": [ - 110.30005645751953, - 373.10009765625, - 516.9000244140625, - 393.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.30005645751953, - 373.10009765625, - 516.9000244140625, - 393.5000915527344 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 87.40005493164062, - 391.90008544921875, - 516.8999633789062, - 412.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "A/ ED", - "origin": [ - 87.40005493164062, - 398.2000732421875 - ], - "bbox": [ - 87.40005493164062, - 391.90008544921875, - 95.20005798339844, - 412.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 391.90008544921875, - 95.20005798339844, - 412.3000793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6M²?§K¯", - "origin": [ - 110.30005645751953, - 398.2000732421875 - ], - "bbox": [ - 110.30005645751953, - 391.90008544921875, - 136.4000701904297, - 412.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.30005645751953, - 391.90008544921875, - 136.4000701904297, - 412.3000793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬Ê;Ôy\u0019\u001c§/5R\u0019aÆ%\u00194©?5o¥/6M¦)£9¨^¨g6=©\u001a¦)6=\u001b¸ B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 138.6000518798828, - 398.2000732421875 - ], - "bbox": [ - 138.6000518798828, - 391.90008544921875, - 516.8999633789062, - 412.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 138.6000518798828, - 391.90008544921875, - 516.8999633789062, - 412.3000793457031 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.40005493164062, - 418.60009765625, - 177.2000732421875, - 439.0000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ä\fÖ×ÁÙØ=ÚK–+—=Á/ÛK¾�š¾ÝÜiÁFØe¾", - "origin": [ - 72.40005493164062, - 424.90008544921875 - ], - "bbox": [ - 72.40005493164062, - 418.60009765625, - 177.2000732421875, - 439.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.40005493164062, - 418.60009765625, - 177.2000732421875, - 439.0000915527344 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 87.300048828125, - 439.40008544921875, - 516.8999633789062, - 459.8000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "GF -:•¶K6e¤oÊY\u00194©FÇ?\u00194Ç\u001c6e¤~ß^Ð\u001a\u0019\u001cʬ«Y¤76à B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.300048828125, - 445.7000732421875 - ], - "bbox": [ - 87.300048828125, - 439.40008544921875, - 516.8999633789062, - 459.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.300048828125, - 439.40008544921875, - 516.8999633789062, - 459.8000793457031 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 87.30007934570312, - 458.10009765625, - 516.9000244140625, - 478.5000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "GF EA\f¶K6e¤o\u001buá[Ç\u001cÊ-6=¤s¥/6BÐ�\u0019\u001c¤76M B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.30007934570312, - 464.40008544921875 - ], - "bbox": [ - 87.30007934570312, - 458.10009765625, - 516.9000244140625, - 478.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.30007934570312, - 458.10009765625, - 516.9000244140625, - 478.5000915527344 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.30007934570312, - 484.90008544921875, - 224.10008239746094, - 505.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Þ»Ö×ÁÙØ=—[˜%›œ\u001c—=›˜%¾\u000eš~⬛–㚝™Kœ9›¼¿¾\n–+—", - "origin": [ - 72.30007934570312, - 491.2000732421875 - ], - "bbox": [ - 72.30007934570312, - 484.90008544921875, - 224.10008239746094, - 505.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30007934570312, - 484.90008544921875, - 224.10008239746094, - 505.3000793457031 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 87.2000732421875, - 505.7000732421875, - 516.9000244140625, - 526.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò\u001a -:•¶,¯", - "origin": [ - 87.2000732421875, - 512.0000610351562 - ], - "bbox": [ - 87.2000732421875, - 505.7000732421875, - 116.8000717163086, - 526.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.2000732421875, - 505.7000732421875, - 116.8000717163086, - 526.1000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[©?5uå)576æ B B H B H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 119.00007629394531, - 512.0000610351562 - ], - "bbox": [ - 119.00007629394531, - 505.7000732421875, - 516.9000244140625, - 526.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.00007629394531, - 505.7000732421875, - 516.9000244140625, - 526.1000366210938 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 110.00009155273438, - 524.5000610351562, - 516.9000244140625, - 544.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò\u001a -:\u001c -:", - "origin": [ - 110.00009155273438, - 530.800048828125 - ], - "bbox": [ - 110.00009155273438, - 524.5000610351562, - 126.2000961303711, - 544.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.00009155273438, - 524.5000610351562, - 126.2000961303711, - 544.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè+éaè/ê9ë+ìí B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 142.50009155273438, - 530.800048828125 - ], - "bbox": [ - 142.50009155273438, - 524.5000610351562, - 516.9000244140625, - 544.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.50009155273438, - 524.5000610351562, - 516.9000244140625, - 544.9000244140625 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 110.00009155273438, - 543.2000732421875, - 516.9000244140625, - 563.6000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò\u001a -:\u001c EA", - "origin": [ - 110.00009155273438, - 549.5000610351562 - ], - "bbox": [ - 110.00009155273438, - 543.2000732421875, - 125.80009460449219, - 563.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.00009155273438, - 543.2000732421875, - 125.80009460449219, - 563.6000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoï\në\nè\nðwìñ H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 142.50009155273438, - 549.5000610351562 - ], - "bbox": [ - 142.50009155273438, - 543.2000732421875, - 516.9000244140625, - 563.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.50009155273438, - 543.2000732421875, - 516.9000244140625, - 563.6000366210938 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 87.20010375976562, - 561.9000854492188, - 516.9000854492188, - 582.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò\u001a EA\f¶K6M¦[£\u001c\u001bu\u0018\u001a¤ò B B H B H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.20010375976562, - 568.2000732421875 - ], - "bbox": [ - 87.20010375976562, - 561.9000854492188, - 516.9000854492188, - 582.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.20010375976562, - 561.9000854492188, - 516.9000854492188, - 582.300048828125 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 72.50009155273438, - 588.7000732421875, - 193.50010681152344, - 609.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "äíÖ×¾\nØ^ó˜ažô–œ9žõóiÁFöy¾\nØ^ÜiÁFöyžôØ=¾\nØ", - "origin": [ - 72.50009155273438, - 595.0000610351562 - ], - "bbox": [ - 72.50009155273438, - 588.7000732421875, - 193.50010681152344, - 609.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50009155273438, - 588.7000732421875, - 193.50010681152344, - 609.1000366210938 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 87.40005493164062, - 609.5000610351562, - 516.9000244140625, - 629.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "D/ -:•¶m\u0019^¨g«Y¤�6B6=©É\u0018�\u00194Ç\u001c6V H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.40005493164062, - 615.800048828125 - ], - "bbox": [ - 87.40005493164062, - 609.5000610351562, - 516.9000244140625, - 629.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 609.5000610351562, - 516.9000244140625, - 629.9000244140625 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 87.40005493164062, - 628.3001098632812, - 516.9000244140625, - 648.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "D/ EA\f¶K6e¤b¤�5\\ø?Ê-6=¤ñ B H B H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.40005493164062, - 634.60009765625 - ], - "bbox": [ - 87.40005493164062, - 628.3001098632812, - 516.9000244140625, - 648.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 628.3001098632812, - 516.9000244140625, - 648.7000732421875 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 87.40005493164062, - 647.0000610351562, - 516.9000244140625, - 667.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "D/ ", - "origin": [ - 87.40005493164062, - 653.300048828125 - ], - "bbox": [ - 87.40005493164062, - 647.0000610351562, - 92.80005645751953, - 667.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 647.0000610351562, - 92.80005645751953, - 667.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "G»¶K6e¤o6[©\nÆ\n«-\u001b7£9©F©F6[¨g6=©95ª¤s H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 95.10005187988281, - 653.300048828125 - ], - "bbox": [ - 95.10005187988281, - 647.0000610351562, - 516.9000244140625, - 667.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.10005187988281, - 647.0000610351562, - 516.9000244140625, - 667.4000244140625 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 72.40005493164062, - 673.8001098632812, - 182.10006713867188, - 694.2000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú\fÖ×¾\nØ^ÜiÁFöyžôØ=¾\nØ^Á\u001cûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 72.40005493164062, - 680.10009765625 - ], - "bbox": [ - 72.40005493164062, - 673.8001098632812, - 182.10006713867188, - 694.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.40005493164062, - 673.8001098632812, - 182.10006713867188, - 694.2000732421875 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 87.30007934570312, - 694.5000610351562, - 516.9000244140625, - 714.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF -:•¶K6e¤oÊ-«¬6=©\u001a¤sþ\nø?\u0018w6[\u001b7576[ÿ\n576=¤¿ B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.30007934570312, - 700.800048828125 - ], - "bbox": [ - 87.30007934570312, - 694.5000610351562, - 516.9000244140625, - 714.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.30007934570312, - 694.5000610351562, - 516.9000244140625, - 714.9000244140625 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 110.10003662109375, - 713.4000854492188, - 516.8999633789062, - 733.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF -:\u001c -:", - "origin": [ - 110.10003662109375, - 719.7000732421875 - ], - "bbox": [ - 110.10003662109375, - 713.4000854492188, - 126.20004272460938, - 733.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10003662109375, - 713.4000854492188, - 126.20004272460938, - 733.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m6=¤oÅ", - "origin": [ - 142.00003051757812, - 719.7000732421875 - ], - "bbox": [ - 142.00003051757812, - 713.4000854492188, - 159.9000244140625, - 733.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 159.9000244140625, - 719.7000732421875 - ], - "bbox": [ - 159.9000244140625, - 713.7000732421875, - 167.30001831054688, - 732.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R¶", - "origin": [ - 167.30001831054688, - 719.7000732421875 - ], - "bbox": [ - 167.30001831054688, - 713.4000854492188, - 174.70001220703125, - 733.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.00003051757812, - 713.4000854492188, - 174.70001220703125, - 733.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 191.50003051757812, - 719.7000732421875 - ], - "bbox": [ - 191.50003051757812, - 713.4000854492188, - 516.8999633789062, - 733.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.50003051757812, - 713.4000854492188, - 516.8999633789062, - 733.800048828125 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 75.19999694824219, - 595.0, - 733.800048828125 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 74.0, - 75.19999694824219, - 233.59999084472656, - 95.5999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "����", - "origin": [ - 74.0, - 81.5 - ], - "bbox": [ - 74.0, - 75.19999694824219, - 100.80000305175781, - 95.5999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.0, - 75.19999694824219, - 100.80000305175781, - 95.5999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "���\n�\f\u000b\u000e\r\u000f�\u0010��\u0011", - "origin": [ - 115.9000015258789, - 81.5 - ], - "bbox": [ - 115.9000015258789, - 75.19999694824219, - 190.5, - 95.5999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 115.9000015258789, - 75.19999694824219, - 190.5, - 95.5999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0012\u0014\u0013\u0016\u0015", - "origin": [ - 207.0, - 81.5 - ], - "bbox": [ - 207.0, - 75.19999694824219, - 233.59999084472656, - 95.5999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 207.0, - 75.19999694824219, - 233.59999084472656, - 95.5999984741211 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 72.19999694824219, - 112.10002136230469, - 535.5, - 132.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001c\u001b\u001e\u001d \u001f!\u001f#\"%$�&\u001a')(+*,(-')&/.10", - "origin": [ - 72.19999694824219, - 118.4000244140625 - ], - "bbox": [ - 72.19999694824219, - 112.10002136230469, - 163.49998474121094, - 132.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 112.10002136230469, - 163.49998474121094, - 132.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "243\u001e\u0019457698;:=<\u001c<94@\u001c\u001cA4@B@\nC\n8ED4@F8", - "origin": [ - 411.70001220703125, - 118.4000244140625 - ], - "bbox": [ - 411.70001220703125, - 112.10002136230469, - 520.0, - 132.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.70001220703125, - 112.10002136230469, - 520.0, - 132.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "GF:H2", - "origin": [ - 522.2999877929688, - 118.4000244140625 - ], - "bbox": [ - 522.2999877929688, - 112.10002136230469, - 535.5, - 132.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 522.2999877929688, - 112.10002136230469, - 535.5, - 132.50003051757812 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.49996948242188, - 146.1000213623047, - 538.2999877929688, - 166.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "IKJML\u001cN/O%P?QRJ\u001cS=TVU4WYX[Z�J\u001cS=T\\J^]", - "origin": [ - 72.49996948242188, - 152.4000244140625 - ], - "bbox": [ - 72.49996948242188, - 146.1000213623047, - 168.79995727539062, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49996948242188, - 146.1000213623047, - 168.79995727539062, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J=ZH_a`aZ7J[ZbL\u001aPc]", - "origin": [ - 170.69998168945312, - 152.4000244140625 - ], - "bbox": [ - 170.69998168945312, - 146.1000213623047, - 221.99996948242188, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.69998168945312, - 146.1000213623047, - 221.99996948242188, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "`?Sed?`ad\u001cJgfihbj\u000fkFlmk%J[ZHWYn[d\u001a]", - "origin": [ - 223.99998474121094, - 152.4000244140625 - ], - "bbox": [ - 223.99998474121094, - 146.1000213623047, - 320.89996337890625, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 223.99998474121094, - 146.1000213623047, - 320.89996337890625, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J[ZoL\u001cJBZ�p9SeT�`=q%J9r;]", - "origin": [ - 322.79998779296875, - 152.4000244140625 - ], - "bbox": [ - 322.79998779296875, - 146.1000213623047, - 384.89996337890625, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 322.79998779296875, - 146.1000213623047, - 384.89996337890625, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J=ZHW-n=dF]", - "origin": [ - 386.79998779296875, - 152.4000244140625 - ], - "bbox": [ - 386.79998779296875, - 146.1000213623047, - 411.79998779296875, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.79998779296875, - 146.1000213623047, - 411.79998779296875, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J=ZsL9JMO%WYX=`eTut", - "origin": [ - 413.6999816894531, - 152.4000244140625 - ], - "bbox": [ - 413.6999816894531, - 146.1000213623047, - 459.0999755859375, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 413.6999816894531, - 146.1000213623047, - 459.0999755859375, - 166.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "N\u001aS!LwvxP?S!L9N\nO4P9Q\u001eJ4SeT[r", - "origin": [ - 461.1999816894531, - 152.4000244140625 - ], - "bbox": [ - 461.1999816894531, - 146.1000213623047, - 538.2999877929688, - 166.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.1999816894531, - 146.1000213623047, - 538.2999877929688, - 166.50003051757812 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 74.59998321533203, - 159.6000213623047, - 468.8999938964844, - 180.00003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J[ZVU4WytzS%OetzU%`?]", - "origin": [ - 74.59998321533203, - 165.9000244140625 - ], - "bbox": [ - 74.59998321533203, - 159.6000213623047, - 119.29998016357422, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 74.59998321533203, - 159.6000213623047, - 119.29998016357422, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J[ZV_a`?]", - "origin": [ - 121.19998168945312, - 165.9000244140625 - ], - "bbox": [ - 121.19998168945312, - 159.6000213623047, - 143.0999755859375, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 121.19998168945312, - 159.6000213623047, - 143.0999755859375, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Z7J[Z J)TV]", - "origin": [ - 147.39999389648438, - 165.9000244140625 - ], - "bbox": [ - 147.39999389648438, - 159.6000213623047, - 174.59999084472656, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.39999389648438, - 159.6000213623047, - 174.59999084472656, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J4P?W-ZVU%`4W{`?QRn[T1W-J=Z=rw]", - "origin": [ - 176.5, - 165.9000244140625 - ], - "bbox": [ - 176.5, - 159.6000213623047, - 248.49998474121094, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.5, - 159.6000213623047, - 248.49998474121094, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J[ZH_%`?]", - "origin": [ - 250.39999389648438, - 165.9000244140625 - ], - "bbox": [ - 250.39999389648438, - 159.6000213623047, - 272.5, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 250.39999389648438, - 159.6000213623047, - 272.5, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Z�J=Z `e|%`?S%O)X[J=ZH}\\]", - "origin": [ - 276.79998779296875, - 165.9000244140625 - ], - "bbox": [ - 276.79998779296875, - 159.6000213623047, - 336.0999755859375, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.79998779296875, - 159.6000213623047, - 336.0999755859375, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J4SaZ=rwtzQ\u001e`ad\u001cJ=Z=r�]", - "origin": [ - 340.3999938964844, - 165.9000244140625 - ], - "bbox": [ - 340.3999938964844, - 159.6000213623047, - 394.8000183105469, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.3999938964844, - 159.6000213623047, - 394.8000183105469, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Z\\T\\J=Z J[T~T�`?_?]", - "origin": [ - 399.1000061035156, - 165.9000244140625 - ], - "bbox": [ - 399.1000061035156, - 159.6000213623047, - 443.5000305175781, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.1000061035156, - 159.6000213623047, - 443.5000305175781, - 180.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "J=`?P=q\u001c)l", - "origin": [ - 445.3999938964844, - 165.9000244140625 - ], - "bbox": [ - 445.3999938964844, - 159.6000213623047, - 468.8999938964844, - 180.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 445.3999938964844, - 159.6000213623047, - 468.8999938964844, - 180.00003051757812 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.5, - 197.80003356933594, - 195.30001831054688, - 218.20004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "€‚Bƒ…„)†ˆ‡‰†oŠŒ‹Hސ)‘s’i†oŠ", - "origin": [ - 72.5, - 204.10003662109375 - ], - "bbox": [ - 72.5, - 197.80003356933594, - 195.30001831054688, - 218.20004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 197.80003356933594, - 195.30001831054688, - 218.20004272460938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 72.80000305175781, - 229.70005798339844, - 144.10000610351562, - 250.10006713867188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "“•”)–+—=˜a™mš›œ4—ežy™w–", - "origin": [ - 72.80000305175781, - 236.00006103515625 - ], - "bbox": [ - 72.80000305175781, - 229.70005798339844, - 144.10000610351562, - 250.10006713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.80000305175781, - 229.70005798339844, - 144.10000610351562, - 250.10006713867188 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 87.80001831054688, - 250.4000701904297, - 516.8999633789062, - 270.8000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":\u001c -:•¡¢\u0018F\u001bu£\u001c\u0018w£9¤o¥/6B¦[6)5�5u6M¥/£/¦)§F¨g6=©95ª\u0019%5u«¬£9©­ B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.80001831054688, - 256.7000732421875 - ], - "bbox": [ - 87.80001831054688, - 250.4000701904297, - 516.8999633789062, - 270.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.80001831054688, - 250.4000701904297, - 516.8999633789062, - 270.8000793457031 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 87.80001831054688, - 269.30010986328125, - 516.8999633789062, - 289.7001037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":\u001c EA", - "origin": [ - 87.80001831054688, - 275.60009765625 - ], - "bbox": [ - 87.80001831054688, - 269.30010986328125, - 95.20001983642578, - 289.7001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.80001831054688, - 269.30010986328125, - 95.20001983642578, - 289.7001037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "®\u001e§K¯", - "origin": [ - 110.30001831054688, - 275.60009765625 - ], - "bbox": [ - 110.30001831054688, - 269.30010986328125, - 123.90001678466797, - 289.7001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.30001831054688, - 269.30010986328125, - 123.90001678466797, - 289.7001037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5�°±¦)6B²?§F6M³R´oµ\u000e¶¸·¹ B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 126.10002136230469, - 275.60009765625 - ], - "bbox": [ - 126.10002136230469, - 269.30010986328125, - 516.8999633789062, - 289.7001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.10002136230469, - 269.30010986328125, - 516.8999633789062, - 289.7001037597656 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.50003051757812, - 295.90008544921875, - 192.70001220703125, - 316.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ÿ»º!™�¼½¼¿¾\n–+—MÀ\u001cÁ‚¼¿Á/˜%œa¾RÃ", - "origin": [ - 72.50003051757812, - 302.2000732421875 - ], - "bbox": [ - 72.50003051757812, - 295.90008544921875, - 192.70001220703125, - 316.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50003051757812, - 295.90008544921875, - 192.70001220703125, - 316.3000793457031 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 87.4000244140625, - 316.80010986328125, - 516.8999633789062, - 337.2001037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "A/ -:•Åb©\u001a6BÆa\u0019\u001cÇ\u001c§F6H«Y¥/È[6M¥F§É\u0018\u001a\u001b7£\u001c57£/¦)£9ʬ6H³R´o´sËÌ H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.4000244140625, - 323.10009765625 - ], - "bbox": [ - 87.4000244140625, - 316.80010986328125, - 516.8999633789062, - 337.2001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.4000244140625, - 316.80010986328125, - 516.8999633789062, - 337.2001037597656 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 87.40005493164062, - 335.5001220703125, - 516.8999633789062, - 355.9001159667969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "A/ EA\f¶K6B¨g£\u001c576[§\u001a\u001bb¥/6B\u001b76=©\u001a¥/§…³R´oµÍ¶Î H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.40005493164062, - 341.80010986328125 - ], - "bbox": [ - 87.40005493164062, - 335.5001220703125, - 516.8999633789062, - 355.9001159667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 335.5001220703125, - 516.8999633789062, - 355.9001159667969 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 87.40005493164062, - 354.30010986328125, - 516.8999633789062, - 374.7001037597656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "A/ ", - "origin": [ - 87.40005493164062, - 360.60009765625 - ], - "bbox": [ - 87.40005493164062, - 354.30010986328125, - 92.80005645751953, - 374.7001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 354.30010986328125, - 92.80005645751953, - 374.7001037597656 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "G»¶K6e¤b¤76[\u001buÆ\u001c6[§\u001a\u001bu¤~Ï�6=ÐÑ B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 95.10005187988281, - 360.60009765625 - ], - "bbox": [ - 95.10005187988281, - 354.30010986328125, - 516.8999633789062, - 374.7001037597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.10005187988281, - 354.30010986328125, - 516.8999633789062, - 374.7001037597656 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 87.40005493164062, - 373.10009765625, - 516.9000244140625, - 393.5000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "A/ ", - "origin": [ - 87.40005493164062, - 379.40008544921875 - ], - "bbox": [ - 87.40005493164062, - 373.10009765625, - 92.80005645751953, - 393.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 373.10009765625, - 92.80005645751953, - 393.5000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~£\u001c¨g¨g6[©?5oÔy\u0019\u001c«¬\u001bu6B¤7\u0019^\u0018\u001a\u0019\u001cÇ\u001c6·Õ V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 110.30005645751953, - 379.40008544921875 - ], - "bbox": [ - 110.30005645751953, - 373.10009765625, - 516.9000244140625, - 393.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.30005645751953, - 373.10009765625, - 516.9000244140625, - 393.5000915527344 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 87.40005493164062, - 391.90008544921875, - 516.8999633789062, - 412.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "A/ ED", - "origin": [ - 87.40005493164062, - 398.2000732421875 - ], - "bbox": [ - 87.40005493164062, - 391.90008544921875, - 95.20005798339844, - 412.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 391.90008544921875, - 95.20005798339844, - 412.3000793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6M²?§K¯", - "origin": [ - 110.30005645751953, - 398.2000732421875 - ], - "bbox": [ - 110.30005645751953, - 391.90008544921875, - 136.4000701904297, - 412.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.30005645751953, - 391.90008544921875, - 136.4000701904297, - 412.3000793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬Ê;Ôy\u0019\u001c§/5R\u0019aÆ%\u00194©?5o¥/6M¦)£9¨^¨g6=©\u001a¦)6=\u001b¸ B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 138.6000518798828, - 398.2000732421875 - ], - "bbox": [ - 138.6000518798828, - 391.90008544921875, - 516.8999633789062, - 412.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 138.6000518798828, - 391.90008544921875, - 516.8999633789062, - 412.3000793457031 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.40005493164062, - 418.60009765625, - 177.2000732421875, - 439.0000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ä\fÖ×ÁÙØ=ÚK–+—=Á/ÛK¾�š¾ÝÜiÁFØe¾", - "origin": [ - 72.40005493164062, - 424.90008544921875 - ], - "bbox": [ - 72.40005493164062, - 418.60009765625, - 177.2000732421875, - 439.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.40005493164062, - 418.60009765625, - 177.2000732421875, - 439.0000915527344 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 87.300048828125, - 439.40008544921875, - 516.8999633789062, - 459.8000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "GF -:•¶K6e¤oÊY\u00194©FÇ?\u00194Ç\u001c6e¤~ß^Ð\u001a\u0019\u001cʬ«Y¤76à B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.300048828125, - 445.7000732421875 - ], - "bbox": [ - 87.300048828125, - 439.40008544921875, - 516.8999633789062, - 459.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.300048828125, - 439.40008544921875, - 516.8999633789062, - 459.8000793457031 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 87.30007934570312, - 458.10009765625, - 516.9000244140625, - 478.5000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "GF EA\f¶K6e¤o\u001buá[Ç\u001cÊ-6=¤s¥/6BÐ�\u0019\u001c¤76M B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.30007934570312, - 464.40008544921875 - ], - "bbox": [ - 87.30007934570312, - 458.10009765625, - 516.9000244140625, - 478.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.30007934570312, - 458.10009765625, - 516.9000244140625, - 478.5000915527344 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.30007934570312, - 484.90008544921875, - 224.10008239746094, - 505.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Þ»Ö×ÁÙØ=—[˜%›œ\u001c—=›˜%¾\u000eš~⬛–㚝™Kœ9›¼¿¾\n–+—", - "origin": [ - 72.30007934570312, - 491.2000732421875 - ], - "bbox": [ - 72.30007934570312, - 484.90008544921875, - 224.10008239746094, - 505.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30007934570312, - 484.90008544921875, - 224.10008239746094, - 505.3000793457031 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 87.2000732421875, - 505.7000732421875, - 516.9000244140625, - 526.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò\u001a -:•¶,¯", - "origin": [ - 87.2000732421875, - 512.0000610351562 - ], - "bbox": [ - 87.2000732421875, - 505.7000732421875, - 116.8000717163086, - 526.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.2000732421875, - 505.7000732421875, - 116.8000717163086, - 526.1000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[©?5uå)576æ B B H B H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 119.00007629394531, - 512.0000610351562 - ], - "bbox": [ - 119.00007629394531, - 505.7000732421875, - 516.9000244140625, - 526.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.00007629394531, - 505.7000732421875, - 516.9000244140625, - 526.1000366210938 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 110.00009155273438, - 524.5000610351562, - 516.9000244140625, - 544.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò\u001a -:\u001c -:", - "origin": [ - 110.00009155273438, - 530.800048828125 - ], - "bbox": [ - 110.00009155273438, - 524.5000610351562, - 126.2000961303711, - 544.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.00009155273438, - 524.5000610351562, - 126.2000961303711, - 544.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè+éaè/ê9ë+ìí B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 142.50009155273438, - 530.800048828125 - ], - "bbox": [ - 142.50009155273438, - 524.5000610351562, - 516.9000244140625, - 544.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.50009155273438, - 524.5000610351562, - 516.9000244140625, - 544.9000244140625 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 110.00009155273438, - 543.2000732421875, - 516.9000244140625, - 563.6000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò\u001a -:\u001c EA", - "origin": [ - 110.00009155273438, - 549.5000610351562 - ], - "bbox": [ - 110.00009155273438, - 543.2000732421875, - 125.80009460449219, - 563.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.00009155273438, - 543.2000732421875, - 125.80009460449219, - 563.6000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoï\në\nè\nðwìñ H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 142.50009155273438, - 549.5000610351562 - ], - "bbox": [ - 142.50009155273438, - 543.2000732421875, - 516.9000244140625, - 563.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.50009155273438, - 543.2000732421875, - 516.9000244140625, - 563.6000366210938 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 87.20010375976562, - 561.9000854492188, - 516.9000854492188, - 582.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò\u001a EA\f¶K6M¦[£\u001c\u001bu\u0018\u001a¤ò B B H B H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.20010375976562, - 568.2000732421875 - ], - "bbox": [ - 87.20010375976562, - 561.9000854492188, - 516.9000854492188, - 582.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.20010375976562, - 561.9000854492188, - 516.9000854492188, - 582.300048828125 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 72.50009155273438, - 588.7000732421875, - 193.50010681152344, - 609.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "äíÖ×¾\nØ^ó˜ažô–œ9žõóiÁFöy¾\nØ^ÜiÁFöyžôØ=¾\nØ", - "origin": [ - 72.50009155273438, - 595.0000610351562 - ], - "bbox": [ - 72.50009155273438, - 588.7000732421875, - 193.50010681152344, - 609.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50009155273438, - 588.7000732421875, - 193.50010681152344, - 609.1000366210938 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 87.40005493164062, - 609.5000610351562, - 516.9000244140625, - 629.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "D/ -:•¶m\u0019^¨g«Y¤�6B6=©É\u0018�\u00194Ç\u001c6V H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.40005493164062, - 615.800048828125 - ], - "bbox": [ - 87.40005493164062, - 609.5000610351562, - 516.9000244140625, - 629.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 609.5000610351562, - 516.9000244140625, - 629.9000244140625 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 87.40005493164062, - 628.3001098632812, - 516.9000244140625, - 648.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "D/ EA\f¶K6e¤b¤�5\\ø?Ê-6=¤ñ B H B H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.40005493164062, - 634.60009765625 - ], - "bbox": [ - 87.40005493164062, - 628.3001098632812, - 516.9000244140625, - 648.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 628.3001098632812, - 516.9000244140625, - 648.7000732421875 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 87.40005493164062, - 647.0000610351562, - 516.9000244140625, - 667.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "D/ ", - "origin": [ - 87.40005493164062, - 653.300048828125 - ], - "bbox": [ - 87.40005493164062, - 647.0000610351562, - 92.80005645751953, - 667.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.40005493164062, - 647.0000610351562, - 92.80005645751953, - 667.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "G»¶K6e¤o6[©\nÆ\n«-\u001b7£9©F©F6[¨g6=©95ª¤s H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 95.10005187988281, - 653.300048828125 - ], - "bbox": [ - 95.10005187988281, - 647.0000610351562, - 516.9000244140625, - 667.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.10005187988281, - 647.0000610351562, - 516.9000244140625, - 667.4000244140625 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 72.40005493164062, - 673.8001098632812, - 182.10006713867188, - 694.2000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú\fÖ×¾\nØ^ÜiÁFöyžôØ=¾\nØ^Á\u001cûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 72.40005493164062, - 680.10009765625 - ], - "bbox": [ - 72.40005493164062, - 673.8001098632812, - 182.10006713867188, - 694.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.40005493164062, - 673.8001098632812, - 182.10006713867188, - 694.2000732421875 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 87.30007934570312, - 694.5000610351562, - 516.9000244140625, - 714.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF -:•¶K6e¤oÊ-«¬6=©\u001a¤sþ\nø?\u0018w6[\u001b7576[ÿ\n576=¤¿ B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.30007934570312, - 700.800048828125 - ], - "bbox": [ - 87.30007934570312, - 694.5000610351562, - 516.9000244140625, - 714.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.30007934570312, - 694.5000610351562, - 516.9000244140625, - 714.9000244140625 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 110.10003662109375, - 713.4000854492188, - 516.8999633789062, - 733.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF -:\u001c -:", - "origin": [ - 110.10003662109375, - 719.7000732421875 - ], - "bbox": [ - 110.10003662109375, - 713.4000854492188, - 126.20004272460938, - 733.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10003662109375, - 713.4000854492188, - 126.20004272460938, - 733.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m6=¤oÅ", - "origin": [ - 142.00003051757812, - 719.7000732421875 - ], - "bbox": [ - 142.00003051757812, - 713.4000854492188, - 159.9000244140625, - 733.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 159.9000244140625, - 719.7000732421875 - ], - "bbox": [ - 159.9000244140625, - 713.7000732421875, - 167.30001831054688, - 732.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R¶", - "origin": [ - 167.30001831054688, - 719.7000732421875 - ], - "bbox": [ - 167.30001831054688, - 713.4000854492188, - 174.70001220703125, - 733.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.00003051757812, - 713.4000854492188, - 174.70001220703125, - 733.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 191.50003051757812, - 719.7000732421875 - ], - "bbox": [ - 191.50003051757812, - 713.4000854492188, - 516.8999633789062, - 733.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.50003051757812, - 713.4000854492188, - 516.8999633789062, - 733.800048828125 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 110.10003662109375, - 732.10009765625, - 535.4000244140625, - 752.5000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF -:\u001c EA", - "origin": [ - 110.10003662109375, - 738.4000854492188 - ], - "bbox": [ - 110.10003662109375, - 732.10009765625, - 125.80004119873047, - 752.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10003662109375, - 732.10009765625, - 125.80004119873047, - 752.5000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶×¯", - "origin": [ - 142.00003051757812, - 738.4000854492188 - ], - "bbox": [ - 142.00003051757812, - 732.10009765625, - 148.80003356933594, - 752.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.00003051757812, - 732.10009765625, - 148.80003356933594, - 752.5000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00199¥/\u001b76e¤7¤76H¥;¯", - "origin": [ - 151.00003051757812, - 738.4000854492188 - ], - "bbox": [ - 151.00003051757812, - 732.10009765625, - 191.50001525878906, - 752.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 151.00003051757812, - 732.10009765625, - 191.50001525878906, - 752.5000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§\u001a©…\u0019\u001c§/57\u001bu6B¤�«¬576… H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 193.60003662109375, - 738.4000854492188 - ], - "bbox": [ - 193.60003662109375, - 732.10009765625, - 516.8999633789062, - 752.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.60003662109375, - 732.10009765625, - 516.8999633789062, - 752.5000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":e@", - "origin": [ - 530.800048828125, - 738.4000854492188 - ], - "bbox": [ - 530.800048828125, - 732.10009765625, - 535.4000244140625, - 752.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 732.10009765625, - 535.4000244140625, - 752.5000610351562 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 110.10003662109375, - 750.9000854492188, - 535.4000244140625, - 771.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF -:\u001c ", - "origin": [ - 110.10003662109375, - 757.2000732421875 - ], - "bbox": [ - 110.10003662109375, - 750.9000854492188, - 123.40003967285156, - 771.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10003662109375, - 750.9000854492188, - 123.40003967285156, - 771.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m6=¤o\u0019\u001c¥F\u001b76e¤7¤76=¤s¥/6", - "origin": [ - 142.00003051757812, - 757.2000732421875 - ], - "bbox": [ - 142.00003051757812, - 750.9000854492188, - 203.70001220703125, - 771.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 203.70001220703125, - 757.2000732421875 - ], - "bbox": [ - 203.70001220703125, - 751.2000732421875, - 211.40000915527344, - 770.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþ\u001a«¬6=\u001bu¤H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 211.40000915527344, - 757.2000732421875 - ], - "bbox": [ - 211.40000915527344, - 750.9000854492188, - 516.8999633789062, - 771.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.00003051757812, - 750.9000854492188, - 516.8999633789062, - 771.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":e@", - "origin": [ - 530.800048828125, - 757.2000732421875 - ], - "bbox": [ - 530.800048828125, - 750.9000854492188, - 535.4000244140625, - 771.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 750.9000854492188, - 535.4000244140625, - 771.300048828125 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 29, - "type": 0, - "bbox": [ - 110.10003662109375, - 732.10009765625, - 535.4000244140625, - 752.5000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF -:\u001c EA", - "origin": [ - 110.10003662109375, - 738.4000854492188 - ], - "bbox": [ - 110.10003662109375, - 732.10009765625, - 125.80004119873047, - 752.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10003662109375, - 732.10009765625, - 125.80004119873047, - 752.5000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶×¯", - "origin": [ - 142.00003051757812, - 738.4000854492188 - ], - "bbox": [ - 142.00003051757812, - 732.10009765625, - 148.80003356933594, - 752.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.00003051757812, - 732.10009765625, - 148.80003356933594, - 752.5000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00199¥/\u001b76e¤7¤76H¥;¯", - "origin": [ - 151.00003051757812, - 738.4000854492188 - ], - "bbox": [ - 151.00003051757812, - 732.10009765625, - 191.50001525878906, - 752.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 151.00003051757812, - 732.10009765625, - 191.50001525878906, - 752.5000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§\u001a©…\u0019\u001c§/57\u001bu6B¤�«¬576… H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 193.60003662109375, - 738.4000854492188 - ], - "bbox": [ - 193.60003662109375, - 732.10009765625, - 516.8999633789062, - 752.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.60003662109375, - 732.10009765625, - 516.8999633789062, - 752.5000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":e@", - "origin": [ - 530.800048828125, - 738.4000854492188 - ], - "bbox": [ - 530.800048828125, - 732.10009765625, - 535.4000244140625, - 752.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 732.10009765625, - 535.4000244140625, - 752.5000610351562 - ] - } - ], - "tag": "footer" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 110.10003662109375, - 750.9000854492188, - 535.4000244140625, - 771.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF -:\u001c ", - "origin": [ - 110.10003662109375, - 757.2000732421875 - ], - "bbox": [ - 110.10003662109375, - 750.9000854492188, - 123.40003967285156, - 771.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10003662109375, - 750.9000854492188, - 123.40003967285156, - 771.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m6=¤o\u0019\u001c¥F\u001b76e¤7¤76=¤s¥/6", - "origin": [ - 142.00003051757812, - 757.2000732421875 - ], - "bbox": [ - 142.00003051757812, - 750.9000854492188, - 203.70001220703125, - 771.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 203.70001220703125, - 757.2000732421875 - ], - "bbox": [ - 203.70001220703125, - 751.2000732421875, - 211.40000915527344, - 770.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþ\u001a«¬6=\u001bu¤H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 211.40000915527344, - 757.2000732421875 - ], - "bbox": [ - 211.40000915527344, - 750.9000854492188, - 516.8999633789062, - 771.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.00003051757812, - 750.9000854492188, - 516.8999633789062, - 771.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":e@", - "origin": [ - 530.800048828125, - 757.2000732421875 - ], - "bbox": [ - 530.800048828125, - 750.9000854492188, - 535.4000244140625, - 771.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 750.9000854492188, - 535.4000244140625, - 771.300048828125 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_1": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 110.10000610351562, - 80.69999694824219, - 535.4000244140625, - 101.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF -:\u001c ", - "origin": [ - 110.10000610351562, - 87.0 - ], - "bbox": [ - 110.10000610351562, - 80.69999694824219, - 123.40000915527344, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10000610351562, - 80.69999694824219, - 123.40000915527344, - 101.0999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÅR©F6M\u0019\u001c¥/\u001bu6=¤u¤76V¥F\u0019\u001c©\u001a¤sÊY\u0019!\u0018�\u00194Ç\u001c6\u0010 B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 142.0, - 87.0 - ], - "bbox": [ - 142.0, - 80.69999694824219, - 516.89990234375, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.0, - 80.69999694824219, - 516.89990234375, - 101.0999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":e@", - "origin": [ - 530.800048828125, - 87.0 - ], - "bbox": [ - 530.800048828125, - 80.69999694824219, - 535.4000244140625, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 80.69999694824219, - 535.4000244140625, - 101.0999984741211 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 87.300048828125, - 99.49998474121094, - 535.9000244140625, - 119.89998626708984 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF EA\f¶K6e¤o«-¨g\u0019\u001cÇ\u001c6e¤× B H B H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 87.300048828125, - 105.79998779296875 - ], - "bbox": [ - 87.300048828125, - 99.49998474121094, - 516.9000244140625, - 119.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.300048828125, - 99.49998474121094, - 516.9000244140625, - 119.89998626708984 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9:", - "origin": [ - 530.800048828125, - 105.79998779296875 - ], - "bbox": [ - 530.800048828125, - 99.49998474121094, - 535.9000244140625, - 119.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 99.49998474121094, - 535.9000244140625, - 119.89998626708984 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 87.300048828125, - 118.29997253417969, - 535.9000244140625, - 138.69998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF ", - "origin": [ - 87.300048828125, - 124.5999755859375 - ], - "bbox": [ - 87.300048828125, - 118.29997253417969, - 92.800048828125, - 138.69998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.300048828125, - 118.29997253417969, - 92.800048828125, - 138.69998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "G»¶K6e¤oÊ-«-¤�576e¤× B B H B H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 95.10005187988281, - 124.5999755859375 - ], - "bbox": [ - 95.10005187988281, - 118.29997253417969, - 516.9000244140625, - 138.69998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.10005187988281, - 118.29997253417969, - 516.9000244140625, - 138.69998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9:", - "origin": [ - 530.800048828125, - 124.5999755859375 - ], - "bbox": [ - 530.800048828125, - 118.29997253417969, - 535.9000244140625, - 138.69998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 118.29997253417969, - 535.9000244140625, - 138.69998168945312 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 110.10003662109375, - 136.99998474121094, - 535.9000244140625, - 157.39999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF ", - "origin": [ - 110.10003662109375, - 143.29998779296875 - ], - "bbox": [ - 110.10003662109375, - 136.99998474121094, - 115.60003662109375, - 157.39999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10003662109375, - 136.99998474121094, - 115.60003662109375, - 157.39999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "GF -:", - "origin": [ - 117.90003967285156, - 143.29998779296875 - ], - "bbox": [ - 117.90003967285156, - 136.99998474121094, - 126.20004272460938, - 157.39999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 117.90003967285156, - 136.99998474121094, - 126.20004272460938, - 157.39999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m6=¤sÊ-«-¤�576e¤b¤�«-¨g\u0018FÊ-6=¤", - "origin": [ - 142.0000457763672, - 143.29998779296875 - ], - "bbox": [ - 142.0000457763672, - 136.99998474121094, - 212.7000732421875, - 157.39999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.0000457763672, - 136.99998474121094, - 212.7000732421875, - 157.39999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 222.60003662109375, - 143.29998779296875 - ], - "bbox": [ - 222.60003662109375, - 136.99998474121094, - 516.8999633789062, - 157.39999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.60003662109375, - 136.99998474121094, - 516.8999633789062, - 157.39999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9:", - "origin": [ - 530.800048828125, - 143.29998779296875 - ], - "bbox": [ - 530.800048828125, - 136.99998474121094, - 535.9000244140625, - 157.39999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 136.99998474121094, - 535.9000244140625, - 157.39999389648438 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 110.10003662109375, - 155.90000915527344, - 535.9000244140625, - 176.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF ", - "origin": [ - 110.10003662109375, - 162.20001220703125 - ], - "bbox": [ - 110.10003662109375, - 155.90000915527344, - 115.60003662109375, - 176.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10003662109375, - 155.90000915527344, - 115.60003662109375, - 176.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "GF EA", - "origin": [ - 117.90003967285156, - 162.20001220703125 - ], - "bbox": [ - 117.90003967285156, - 155.90000915527344, - 125.80004119873047, - 176.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 117.90003967285156, - 155.90000915527344, - 125.80004119873047, - 176.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m6=¤sÊ-«-¤�576e¤o£\u001c\u001bª¥/£\u001c©\u001a©FÈ[6e¤", - "origin": [ - 142.0000457763672, - 162.20001220703125 - ], - "bbox": [ - 142.0000457763672, - 155.90000915527344, - 224.50006103515625, - 176.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.0000457763672, - 155.90000915527344, - 224.50006103515625, - 176.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 238.0000457763672, - 162.20001220703125 - ], - "bbox": [ - 238.0000457763672, - 155.90000915527344, - 516.8999633789062, - 176.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 238.0000457763672, - 155.90000915527344, - 516.8999633789062, - 176.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9:", - "origin": [ - 530.800048828125, - 162.20001220703125 - ], - "bbox": [ - 530.800048828125, - 155.90000915527344, - 535.9000244140625, - 176.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 155.90000915527344, - 535.9000244140625, - 176.30001831054688 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 110.10003662109375, - 174.6000213623047, - 535.5000610351562, - 195.00003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF ", - "origin": [ - 110.10003662109375, - 180.9000244140625 - ], - "bbox": [ - 110.10003662109375, - 174.6000213623047, - 115.60003662109375, - 195.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10003662109375, - 174.6000213623047, - 115.60003662109375, - 195.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "GF ", - "origin": [ - 117.90003967285156, - 180.9000244140625 - ], - "bbox": [ - 117.90003967285156, - 174.6000213623047, - 123.40003967285156, - 195.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 117.90003967285156, - 174.6000213623047, - 123.40003967285156, - 195.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m6=¤sÊ-«-¤�576e¤b¥/6B¥/È", - "origin": [ - 142.0000457763672, - 180.9000244140625 - ], - "bbox": [ - 142.0000457763672, - 174.6000213623047, - 203.6000518798828, - 195.00003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 203.6000518798828, - 180.9000244140625 - ], - "bbox": [ - 203.6000518798828, - 174.9000244140625, - 207.90005493164062, - 194.1000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©F«z5u«¬£9©\u001a¤\u0016 H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 207.90005493164062, - 180.9000244140625 - ], - "bbox": [ - 207.90005493164062, - 174.6000213623047, - 516.9000244140625, - 195.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.0000457763672, - 174.6000213623047, - 516.9000244140625, - 195.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":aA", - "origin": [ - 530.800048828125, - 180.9000244140625 - ], - "bbox": [ - 530.800048828125, - 174.6000213623047, - 535.5000610351562, - 195.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 174.6000213623047, - 535.5000610351562, - 195.00003051757812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 87.300048828125, - 193.40000915527344, - 535.5000610351562, - 213.80001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "îF ", - "origin": [ - 87.300048828125, - 199.70001220703125 - ], - "bbox": [ - 87.300048828125, - 193.40000915527344, - 92.800048828125, - 213.80001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.300048828125, - 193.40000915527344, - 92.800048828125, - 213.80001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤s5u\u0019\u001cÐFÊ-6=\u00194§Fÿ", - "origin": [ - 110.10004425048828, - 199.70001220703125 - ], - "bbox": [ - 110.10004425048828, - 193.40000915527344, - 160.10003662109375, - 213.80001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.10004425048828, - 193.40000915527344, - 160.10003662109375, - 213.80001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " B H B H B B V B H B H B H B B H B V B H B B H B H B H B B V B H B H B H B B H B V B H B ", - "origin": [ - 176.0000457763672, - 199.70001220703125 - ], - "bbox": [ - 176.0000457763672, - 193.40000915527344, - 516.9000244140625, - 213.80001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.0000457763672, - 193.40000915527344, - 516.9000244140625, - 213.80001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":aA", - "origin": [ - 530.800048828125, - 199.70001220703125 - ], - "bbox": [ - 530.800048828125, - 193.40000915527344, - 535.5000610351562, - 213.80001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.800048828125, - 193.40000915527344, - 535.5000610351562, - 213.80001831054688 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.50003051757812, - 220.1000213623047, - 534.7000122070312, - 240.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "÷", - "origin": [ - 72.50003051757812, - 226.4000244140625 - ], - "bbox": [ - 72.50003051757812, - 220.1000213623047, - 72.50003051757812, - 240.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 72.50003051757812, - 226.4000244140625 - ], - "bbox": [ - 72.50003051757812, - 220.4000244140625, - 87.30003356933594, - 239.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000fü", - "origin": [ - 87.30003356933594, - 226.4000244140625 - ], - "bbox": [ - 87.30003356933594, - 220.1000213623047, - 95.90003204345703, - 240.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n�", - "origin": [ - 95.90003204345703, - 226.4000244140625 - ], - "bbox": [ - 95.90003204345703, - 220.4000244140625, - 101.20003509521484, - 239.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50003051757812, - 220.1000213623047, - 101.20003509521484, - 240.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ü?˜%¾?–œ\u001c¾\nØ", - "origin": [ - 104.70002746582031, - 226.4000244140625 - ], - "bbox": [ - 104.70002746582031, - 220.1000213623047, - 136.60003662109375, - 240.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 104.70002746582031, - 220.1000213623047, - 136.60003662109375, - 240.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "“\nÞ", - "origin": [ - 529.4000244140625, - 226.4000244140625 - ], - "bbox": [ - 529.4000244140625, - 220.1000213623047, - 534.7000122070312, - 240.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 529.4000244140625, - 220.1000213623047, - 534.7000122070312, - 240.50003051757812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 87.5000228881836, - 248.80003356933594, - 534.7000122070312, - 269.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "º!™\u001aó;Ú;˜%ž", - "origin": [ - 87.5000228881836, - 255.10003662109375 - ], - "bbox": [ - 87.5000228881836, - 248.80003356933594, - 118.0000228881836, - 269.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\r\f", - "origin": [ - 118.0000228881836, - 255.10003662109375 - ], - "bbox": [ - 118.0000228881836, - 249.10003662109375, - 121.3000259399414, - 268.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�Â+—", - "origin": [ - 121.3000259399414, - 255.10003662109375 - ], - "bbox": [ - 121.3000259399414, - 248.80003356933594, - 132.9000244140625, - 269.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 87.5000228881836, - 248.80003356933594, - 132.9000244140625, - 269.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "“\nÞ", - "origin": [ - 529.4000244140625, - 255.10003662109375 - ], - "bbox": [ - 529.4000244140625, - 248.80003356933594, - 534.7000122070312, - 269.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 529.4000244140625, - 248.80003356933594, - 534.7000122070312, - 269.2000427246094 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 95.90000915527344, - 286.9000244140625, - 101.80001068115234, - 306.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u000f\u0011\u0010", - "origin": [ - 95.90000915527344, - 292.9000244140625 - ], - "bbox": [ - 95.90000915527344, - 286.9000244140625, - 101.80001068115234, - 306.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 95.90000915527344, - 286.9000244140625, - 101.80001068115234, - 306.10003662109375 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 109.90000915527344, - 286.300048828125, - 165.89999389648438, - 306.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Žm’", - "origin": [ - 109.90000915527344, - 292.60003662109375 - ], - "bbox": [ - 109.90000915527344, - 286.300048828125, - 116.10000610351562, - 306.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0013\u0012", - "origin": [ - 116.10000610351562, - 292.60003662109375 - ], - "bbox": [ - 116.10000610351562, - 286.60003662109375, - 122.60000610351562, - 305.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#‡", - "origin": [ - 122.60000610351562, - 292.60003662109375 - ], - "bbox": [ - 122.60000610351562, - 286.300048828125, - 131.0, - 306.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015\u0014\u0017\u0016", - "origin": [ - 131.0, - 292.60003662109375 - ], - "bbox": [ - 131.0, - 286.60003662109375, - 148.5, - 305.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",Ž", - "origin": [ - 148.5, - 292.60003662109375 - ], - "bbox": [ - 148.5, - 286.300048828125, - 161.59999084472656, - 306.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�\u0012", - "origin": [ - 161.59999084472656, - 292.60003662109375 - ], - "bbox": [ - 161.59999084472656, - 286.60003662109375, - 165.89999389648438, - 305.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.90000915527344, - 286.300048828125, - 165.89999389648438, - 306.7000427246094 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 73.00001525878906, - 319.300048828125, - 293.0, - 338.50006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0018\u001a\u0019\u001b\u0018", - "origin": [ - 73.00001525878906, - 325.300048828125 - ], - "bbox": [ - 73.00001525878906, - 319.300048828125, - 83.40001678466797, - 338.50006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.00001525878906, - 319.300048828125, - 83.40001678466797, - 338.50006103515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001c\u001e\u001d \u001f\"!#\u001d$!&%('*),+\u0011).-\n-/)0'�!1+.2 34)657-\n89-\":;!75", - "origin": [ - 103.00001525878906, - 325.300048828125 - ], - "bbox": [ - 103.00001525878906, - 319.300048828125, - 293.0, - 338.50006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00001525878906, - 319.300048828125, - 293.0, - 338.50006103515625 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 72.50001525878906, - 347.50006103515625, - 536.699951171875, - 367.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6)57576#¥/£/¦)§\u001a¨^6=©?5u\u0019%5u«¬£9©\u000e©K¯", - "origin": [ - 72.50001525878906, - 353.800048828125 - ], - "bbox": [ - 72.50001525878906, - 347.50006103515625, - 174.40003967285156, - 367.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 347.50006103515625, - 174.40003967285156, - 367.9000549316406 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019‰\u0018\u001a\u0019\u001c¤\u001eÆ\u001c£/¦[\u0019457«-£\u001c©\u000e߉å)5u\u001b76^6)ÿ/þ\u001a\u0019\u001c§\u001a¤�57«-Æ\u001c6\u001c ", - "origin": [ - 176.70001220703125, - 353.800048828125 - ], - "bbox": [ - 176.70001220703125, - 347.50006103515625, - 319.5999450683594, - 367.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=<", - "origin": [ - 319.5999450683594, - 353.800048828125 - ], - "bbox": [ - 319.5999450683594, - 347.800048828125, - 325.699951171875, - 367.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n£9©\u000eÐF§F5H6e¤\\5B¥/6g¥/£\u001c©\u001a©F6[\u001bBßɦ)6[§Fÿ\u000e²9§\u001a«i¥FÈ[ÐF§/5u6[©?5M¤�§", - "origin": [ - 325.699951171875, - 353.800048828125 - ], - "bbox": [ - 325.699951171875, - 347.50006103515625, - 522.9999389648438, - 367.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\">", - "origin": [ - 522.9999389648438, - 353.800048828125 - ], - "bbox": [ - 522.9999389648438, - 347.800048828125, - 528.4999389648438, - 367.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^°", - "origin": [ - 528.4999389648438, - 353.800048828125 - ], - "bbox": [ - 528.4999389648438, - 347.50006103515625, - 536.699951171875, - 367.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.70001220703125, - 347.50006103515625, - 536.699951171875, - 367.9000549316406 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.30001068115234, - 361.2000732421875, - 535.2999877929688, - 381.6000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤u\u00194¨g¨g6[©?5b¥;¯", - "origin": [ - 72.30001068115234, - 367.50006103515625 - ], - "bbox": [ - 72.30001068115234, - 361.2000732421875, - 120.70001983642578, - 381.6000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001068115234, - 361.2000732421875, - 120.70001983642578, - 381.6000671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©\u001a¥/«Y¦[\u0019457«-£\u001c©\u001a¤b\u0018�£9§F\u001boå)5u\u001b76H«-©\u001a¥/È[\u0018w6[©�¥F\u00194©?5u¤b6[©Ý³R´oµÍ¶× \u001aÅb©\u001a6Bʬ«Y¤\\5u6M¥/6M¤7«z5u6=¤sÏÙ6[ÐÝ6)5R¥F6VÊ-«-Æ?\u001bu6=¤s6e¤\\5b\u0018\u001aÊ-\u00199¦)È[6Bß^ÊY\u0019", - "origin": [ - 122.80001068115234, - 367.50006103515625 - ], - "bbox": [ - 122.80001068115234, - 361.2000732421875, - 535.2999877929688, - 381.6000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 122.80001068115234, - 361.2000732421875, - 535.2999877929688, - 381.6000671386719 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.10000610351562, - 374.90008544921875, - 283.300048828125, - 395.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 72.10000610351562, - 381.2000732421875 - ], - "bbox": [ - 72.10000610351562, - 375.2000732421875, - 72.10000610351562, - 394.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©Ý¥/6M¦[6H¥F£\n¦[§F¨g6[©?5b\u0018w£\u001c§F\u001bo\u0018FÊ-§\u001a¤b\u0019\u001c¨g\u0018Fʬ6H«-©/Ôõ£\u001c\u001bu¨#\u0019%5u«¬£9©K ", - "origin": [ - 72.10000610351562, - 381.2000732421875 - ], - "bbox": [ - 72.10000610351562, - 374.90008544921875, - 283.300048828125, - 395.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.10000610351562, - 374.90008544921875, - 283.300048828125, - 395.3000793457031 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 73.00000762939453, - 406.8000793457031, - 230.5, - 426.0000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0018\u001a\u0019\r?", - "origin": [ - 73.00000762939453, - 412.8000793457031 - ], - "bbox": [ - 73.00000762939453, - 406.8000793457031, - 82.90000915527344, - 426.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.00000762939453, - 406.8000793457031, - 82.90000915527344, - 426.0000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "@A2CBD)E%F-HGI+\u0011)KJ12�)KLNMPORQNS", - "origin": [ - 103.30001068115234, - 412.8000793457031 - ], - "bbox": [ - 103.30001068115234, - 406.8000793457031, - 230.5, - 426.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.30001068115234, - 406.8000793457031, - 230.5, - 426.0000915527344 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 72.30001068115234, - 435.0000915527344, - 538.199951171875, - 455.40008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6HÊY\u00194©FÇ?\u00194Ç96\u001e³R´oµ\u000e¶", - "origin": [ - 72.30001068115234, - 441.3000793457031 - ], - "bbox": [ - 72.30001068115234, - 435.0000915527344, - 145.89999389648438, - 455.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "UT", - "origin": [ - 145.89999389648438, - 441.3000793457031 - ], - "bbox": [ - 145.89999389648438, - 435.3000793457031, - 155.89999389648438, - 454.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô³bø\n\u0018w6[\u001bb´6)ÿ\n5sµ\u000e\u00194\u001b", - "origin": [ - 155.89999389648438, - 441.3000793457031 - ], - "bbox": [ - 155.89999389648438, - 435.0000915527344, - 226.40000915527344, - 455.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WV", - "origin": [ - 226.40000915527344, - 441.3000793457031 - ], - "bbox": [ - 226.40000915527344, - 435.3000793457031, - 230.40000915527344, - 454.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?§\u001a\u0018‰¶m\u0019\u001c©FÇ\u001c§�\u00194Ç\u001c6", - "origin": [ - 230.40000915527344, - 441.3000793457031 - ], - "bbox": [ - 230.40000915527344, - 435.0000915527344, - 287.20001220703125, - 455.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YX", - "origin": [ - 287.20001220703125, - 441.3000793457031 - ], - "bbox": [ - 287.20001220703125, - 435.3000793457031, - 291.9000244140625, - 454.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001068115234, - 435.0000915527344, - 291.9000244140625, - 455.40008544921875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5o§F©ÉÊ-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6V¥/6VÔõ£\u001c\u001bu¨g\u001945u\u0019\u001cÇ\u001c6\u001e¥F6H¥F£\n¦[§F¨g6[©?5u¤sþ\nø\n\u0018w6[\u001b7576)ÿ\n5u6=¤= ", - "origin": [ - 298.5, - 441.3000793457031 - ], - "bbox": [ - 298.5, - 435.0000915527344, - 538.199951171875, - 455.40008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 298.5, - 435.0000915527344, - 538.199951171875, - 455.40008544921875 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 79.60000610351562, - 448.7001037597656, - 385.7999267578125, - 469.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F57\u001bu6[¨g6[©?5R¥/«¬5", - "origin": [ - 79.60000610351562, - 455.0000915527344 - ], - "bbox": [ - 79.60000610351562, - 448.7001037597656, - 130.8000030517578, - 469.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 130.8000030517578, - 455.0000915527344 - ], - "bbox": [ - 130.8000030517578, - 449.0000915527344, - 135.3000030517578, - 468.2001037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F«-Êm¤76[\u001b75bß^¥FÈ", - "origin": [ - 135.3000030517578, - 455.0000915527344 - ], - "bbox": [ - 135.3000030517578, - 448.7001037597656, - 182.99998474121094, - 469.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 182.99998474121094, - 455.0000915527344 - ], - "bbox": [ - 182.99998474121094, - 449.0000915527344, - 187.29998779296875, - 468.2001037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«-\u001bbÊY\u0019g¤\\5u\u001b7§\u001a¦)57§F\u001bu6H6)5bÊ-6B¦)£\u001c©?5u6[©\n§É¥F6=¤o\u0018\u001a\u0019\u001cÇ\u001c6e¤~ÏÙ6[Ðm ", - "origin": [ - 187.29998779296875, - 455.0000915527344 - ], - "bbox": [ - 187.29998779296875, - 448.7001037597656, - 385.7999267578125, - 469.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.60000610351562, - 448.7001037597656, - 385.7999267578125, - 469.10009765625 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 72.30000305175781, - 467.4001159667969, - 537.9999389648438, - 487.80010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6!Ê-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6B6=©Íʬ§\u001a«z°", - "origin": [ - 72.30000305175781, - 473.7001037597656 - ], - "bbox": [ - 72.30000305175781, - 467.4001159667969, - 147.20001220703125, - 487.80010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 467.4001159667969, - 147.20001220703125, - 487.80010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨gå[¨g6MÔõ§/5H¥/È[Æ96[Ê-£\u001c\u0018F\u0018wȸ6=©¿:=<9<\u001c@g\u0018\u001a\u0019\u001c\u001b\u001e´s«-¨", - "origin": [ - 150.70001220703125, - 473.7001037597656 - ], - "bbox": [ - 150.70001220703125, - 467.4001159667969, - 307.29998779296875, - 487.80010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "^]", - "origin": [ - 307.29998779296875, - 473.7001037597656 - ], - "bbox": [ - 307.29998779296875, - 467.7001037597656, - 319.29998779296875, - 486.9001159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "~6=\u001b7©\u001a6[\u001bª¤\\°±¶K6=6B\u0018�6=©\u001a¥F\u00194©?5H¤7\u0019g5uþFá=¤76!\u0019\u001c§�Ó", - "origin": [ - 319.29998779296875, - 473.7001037597656 - ], - "bbox": [ - 319.29998779296875, - 467.4001159667969, - 466.0, - 487.80010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "7_&�*`aT\rb", - "origin": [ - 466.0, - 473.7001037597656 - ], - "bbox": [ - 466.0, - 467.7001037597656, - 502.0999450683594, - 486.9001159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V6=©Fá[Æ96", - "origin": [ - 502.0999450683594, - 473.7001037597656 - ], - "bbox": [ - 502.0999450683594, - 467.4001159667969, - 529.199951171875, - 487.80010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 529.199951171875, - 473.7001037597656 - ], - "bbox": [ - 529.199951171875, - 467.7001037597656, - 533.7999267578125, - 486.9001159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 533.7999267578125, - 473.7001037597656 - ], - "bbox": [ - 533.7999267578125, - 467.4001159667969, - 537.9999389648438, - 487.80010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 150.70001220703125, - 467.4001159667969, - 537.9999389648438, - 487.80010986328125 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 75.80001068115234, - 481.10009765625, - 536.5000610351562, - 501.5000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʝÔõ§/5B\u001bu\u0019\u001c\u0018F«Y¥/6[¨g6[©?5H\u0018�£9\u0018F§FÊY\u00194\u001bu«-¤7ȸ\u0018�\u00194\u001bBµÝ£9¤u\u00194«Y¦", - "origin": [ - 75.80001068115234, - 487.40008544921875 - ], - "bbox": [ - 75.80001068115234, - 481.10009765625, - 243.8999786376953, - 501.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "eT", - "origin": [ - 243.8999786376953, - 487.40008544921875 - ], - "bbox": [ - 243.8999786376953, - 481.40008544921875, - 252.49998474121094, - 500.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yʬ6g\u0018F\u001bu6[¨g«-6[\u001bV©\u001a\u0019aÆ\n«¬Ç?\u0019%5u6[§F\u001b\u001eÏ�6=Ð", - "origin": [ - 252.49998474121094, - 487.40008544921875 - ], - "bbox": [ - 252.49998474121094, - 481.10009765625, - 367.199951171875, - 501.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fX", - "origin": [ - 367.199951171875, - 487.40008544921875 - ], - "bbox": [ - 367.199951171875, - 481.40008544921875, - 372.89996337890625, - 500.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 K3\u001eá=¤HÊY\u0019\u000fÆ96[\u001bª¤�«-£\u001c©\u000eAF ", - "origin": [ - 372.89996337890625, - 487.40008544921875 - ], - "bbox": [ - 372.89996337890625, - 481.10009765625, - 454.29998779296875, - 501.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.80001068115234, - 481.10009765625, - 454.29998779296875, - 501.5000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "@", - "origin": [ - 456.5000305175781, - 487.40008544921875 - ], - "bbox": [ - 456.5000305175781, - 481.10009765625, - 456.5000305175781, - 501.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g[", - "origin": [ - 456.5000305175781, - 487.40008544921875 - ], - "bbox": [ - 456.5000305175781, - 481.40008544921875, - 462.10003662109375, - 500.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ʬ6e¤V¤7\u0018wÈ=¦)«", - "origin": [ - 462.10003662109375, - 487.40008544921875 - ], - "bbox": [ - 462.10003662109375, - 481.10009765625, - 501.4000244140625, - 501.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h�", - "origin": [ - 501.4000244140625, - 487.40008544921875 - ], - "bbox": [ - 501.4000244140625, - 481.40008544921875, - 504.10003662109375, - 500.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦=\u0019%57«-£\u001c©�¤", - "origin": [ - 504.10003662109375, - 487.40008544921875 - ], - "bbox": [ - 504.10003662109375, - 481.10009765625, - 536.5000610351562, - 501.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 456.5000305175781, - 481.10009765625, - 536.5000610351562, - 501.5000915527344 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 72.30001831054688, - 494.60009765625, - 534.900146484375, - 515.0000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6^¦)6MÊY\u00194©FÇ?\u00194Ç96B£\u001c©?5\u001eÈ[57È!¦[£\u001c©", - "origin": [ - 72.30001831054688, - 500.90008544921875 - ], - "bbox": [ - 72.30001831054688, - 494.60009765625, - 177.90000915527344, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/�", - "origin": [ - 177.90000915527344, - 500.90008544921875 - ], - "bbox": [ - 177.90000915527344, - 494.90008544921875, - 183.3000030517578, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�È[6=¤\u001eß#§F©ÍÇ9\u001b7£9§F\u0018w6M«¬©?5u6[\u001bu©\u001a\u0019%5u«¬£9©\u001a\u00194ÊK«-©\u001a¥/È=\u0018�6=©\u001a¥F\u0019\u001c©95", - "origin": [ - 183.3000030517578, - 500.90008544921875 - ], - "bbox": [ - 183.3000030517578, - 494.60009765625, - 370.50006103515625, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 370.50006103515625, - 500.90008544921875 - ], - "bbox": [ - 370.50006103515625, - 494.90008544921875, - 375.1000671386719, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�Ê-6", - "origin": [ - 375.1000671386719, - 500.90008544921875 - ], - "bbox": [ - 375.1000671386719, - 494.60009765625, - 383.6000671386719, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017ikjml", - "origin": [ - 383.6000671386719, - 500.90008544921875 - ], - "bbox": [ - 383.6000671386719, - 494.90008544921875, - 410.8000793457031, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%.1(", - "origin": [ - 410.8000793457031, - 500.90008544921875 - ], - "bbox": [ - 410.8000793457031, - 494.60009765625, - 419.8000793457031, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "onAj\u0017pqn", - "origin": [ - 419.8000793457031, - 500.90008544921875 - ], - "bbox": [ - 419.8000793457031, - 494.90008544921875, - 444.4000549316406, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c'", - "origin": [ - 444.4000549316406, - 500.90008544921875 - ], - "bbox": [ - 444.4000549316406, - 494.60009765625, - 449.4000549316406, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "rj", - "origin": [ - 449.4000549316406, - 500.90008544921875 - ], - "bbox": [ - 449.4000549316406, - 494.90008544921875, - 459.00006103515625, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^'", - "origin": [ - 459.00006103515625, - 500.90008544921875 - ], - "bbox": [ - 459.00006103515625, - 494.60009765625, - 467.2000732421875, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cset#l", - "origin": [ - 467.2000732421875, - 500.90008544921875 - ], - "bbox": [ - 467.2000732421875, - 494.90008544921875, - 487.10009765625, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4$", - "origin": [ - 487.10009765625, - 500.90008544921875 - ], - "bbox": [ - 487.10009765625, - 494.60009765625, - 492.0000915527344, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"uvl", - "origin": [ - 492.0000915527344, - 500.90008544921875 - ], - "bbox": [ - 492.0000915527344, - 494.90008544921875, - 501.90008544921875, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%.", - "origin": [ - 501.90008544921875, - 500.90008544921875 - ], - "bbox": [ - 501.90008544921875, - 494.60009765625, - 506.7000732421875, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xwyp", - "origin": [ - 506.7000732421875, - 500.90008544921875 - ], - "bbox": [ - 506.7000732421875, - 494.90008544921875, - 514.3001098632812, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "{&/\u001f", - "origin": [ - 514.3001098632812, - 500.90008544921875 - ], - "bbox": [ - 514.3001098632812, - 494.60009765625, - 522.7001342773438, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "{z", - "origin": [ - 522.7001342773438, - 500.90008544921875 - ], - "bbox": [ - 522.7001342773438, - 494.90008544921875, - 534.900146484375, - 514.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 494.60009765625, - 534.900146484375, - 515.0000610351562 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 72.90001678466797, - 508.30010986328125, - 536.4999389648438, - 528.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T|j~}\"t=X", - "origin": [ - 72.90001678466797, - 514.60009765625 - ], - "bbox": [ - 72.90001678466797, - 508.60009765625, - 98.30001831054688, - 527.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") FÓ~6\u001e¦)£\u001c©�¤�£9\u001b�5u«¬§F¨", - "origin": [ - 98.30001831054688, - 514.60009765625 - ], - "bbox": [ - 98.30001831054688, - 508.30010986328125, - 162.40003967285156, - 528.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.90001678466797, - 508.30010986328125, - 162.40003967285156, - 528.7000732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu\u00199¤7¤76[¨!ÐFÊ-6b¥/6=¤×§F©F«-Æ\u001c6[\u001bª¤7«z5uÈ=¤", - "origin": [ - 173.50001525878906, - 514.60009765625 - ], - "bbox": [ - 173.50001525878906, - 508.30010986328125, - 277.5000305175781, - 528.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 277.5000305175781, - 514.60009765625 - ], - "bbox": [ - 277.5000305175781, - 508.60009765625, - 282.0000305175781, - 527.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c¥/6=¤×6[©?57\u001bu6[\u0018\u001a\u001b7«Y¤�6e¤", - "origin": [ - 282.0000305175781, - 514.60009765625 - ], - "bbox": [ - 282.0000305175781, - 508.30010986328125, - 346.3999938964844, - 528.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.50001525878906, - 508.30010986328125, - 346.3999938964844, - 528.7000732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6)5 ¥/6=¤×£\u001c\u001buÇ9\u00194©\u001a«-¤7¨g6=¤i\u0018F§FÐ\u001aʬ«Y¦[¤ ¥/6R¥/«", - "origin": [ - 353.0, - 514.60009765625 - ], - "bbox": [ - 353.0, - 508.30010986328125, - 483.3999328613281, - 528.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h", - "origin": [ - 483.3999328613281, - 514.60009765625 - ], - "bbox": [ - 483.3999328613281, - 508.60009765625, - 486.0999450683594, - 527.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+È[\u001bu6[©?5u¤×\u0018\u001a\u0019aø/¤", - "origin": [ - 486.0999450683594, - 514.60009765625 - ], - "bbox": [ - 486.0999450683594, - 508.30010986328125, - 536.4999389648438, - 528.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.0, - 508.30010986328125, - 536.4999389648438, - 528.7000732421875 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 72.89999389648438, - 522.0001220703125, - 76.09999084472656, - 542.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T", - "origin": [ - 72.89999389648438, - 528.3001098632812 - ], - "bbox": [ - 72.89999389648438, - 522.3001098632812, - 72.89999389648438, - 541.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y3", - "origin": [ - 72.89999389648438, - 528.3001098632812 - ], - "bbox": [ - 72.89999389648438, - 522.0001220703125, - 76.09999084472656, - 542.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.89999389648438, - 522.0001220703125, - 76.09999084472656, - 542.4000854492188 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 90.89999389648438, - 522.0001220703125, - 98.09999084472656, - 542.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 90.89999389648438, - 528.3001098632812 - ], - "bbox": [ - 90.89999389648438, - 522.3001098632812, - 90.89999389648438, - 541.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oË", - "origin": [ - 90.89999389648438, - 528.3001098632812 - ], - "bbox": [ - 90.89999389648438, - 522.0001220703125, - 98.09999084472656, - 542.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 90.89999389648438, - 522.0001220703125, - 98.09999084472656, - 542.4000854492188 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 111.99999237060547, - 522.0001220703125, - 117.79999542236328, - 542.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "[", - "origin": [ - 111.99999237060547, - 528.3001098632812 - ], - "bbox": [ - 111.99999237060547, - 522.3001098632812, - 111.99999237060547, - 541.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wµ", - "origin": [ - 111.99999237060547, - 528.3001098632812 - ], - "bbox": [ - 111.99999237060547, - 522.0001220703125, - 117.79999542236328, - 542.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.99999237060547, - 522.0001220703125, - 117.79999542236328, - 542.4000854492188 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 130.5, - 522.0001220703125, - 138.1999969482422, - 542.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "´", - "origin": [ - 130.5, - 528.3001098632812 - ], - "bbox": [ - 130.5, - 522.0001220703125, - 130.5, - 542.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�[", - "origin": [ - 130.5, - 528.3001098632812 - ], - "bbox": [ - 130.5, - 522.3001098632812, - 138.1999969482422, - 541.5001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 130.5, - 522.0001220703125, - 138.1999969482422, - 542.4000854492188 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 147.39999389648438, - 522.3001098632812, - 154.89999389648438, - 541.5001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "` �", - "origin": [ - 147.39999389648438, - 528.3001098632812 - ], - "bbox": [ - 147.39999389648438, - 522.3001098632812, - 154.89999389648438, - 541.5001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.39999389648438, - 522.3001098632812, - 154.89999389648438, - 541.5001220703125 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 173.69998168945312, - 522.0001831054688, - 191.99998474121094, - 542.400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "[", - "origin": [ - 173.69998168945312, - 528.3001708984375 - ], - "bbox": [ - 173.69998168945312, - 522.3001708984375, - 173.69998168945312, - 541.5001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K - - ", - "origin": [ - 173.69998168945312, - 528.3001708984375 - ], - "bbox": [ - 173.69998168945312, - 522.0001831054688, - 185.39999389648438, - 542.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.69998168945312, - 522.0001831054688, - 185.39999389648438, - 542.400146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "X", - "origin": [ - 187.69998168945312, - 528.3001708984375 - ], - "bbox": [ - 187.69998168945312, - 522.3001708984375, - 187.69998168945312, - 541.5001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 187.69998168945312, - 528.3001708984375 - ], - "bbox": [ - 187.69998168945312, - 522.0001831054688, - 191.99998474121094, - 542.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.69998168945312, - 522.0001831054688, - 191.99998474121094, - 542.400146484375 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 72.29998016357422, - 540.7001342773438, - 534.6998901367188, - 561.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶,¯", - "origin": [ - 72.29998016357422, - 547.0001220703125 - ], - "bbox": [ - 72.29998016357422, - 540.7001342773438, - 78.9999771118164, - 561.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998016357422, - 540.7001342773438, - 78.9999771118164, - 561.10009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©\u001a¥/È[\u0018w6[©�¥F\u00194©\u001a¦[6\u001e¥/§‰ÏÕG?Óã\u0019¸\u0018�6=\u001b7¨g«Y¤~¥/6\u001e¨g6)5�5u\u001b76V¤�§\u001a\u001b~§F©‰\u0018F«-6=¥c¥;¯", - "origin": [ - 81.19998168945312, - 547.0001220703125 - ], - "bbox": [ - 81.19998168945312, - 540.7001342773438, - 325.5999450683594, - 561.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.19998168945312, - 540.7001342773438, - 325.5999450683594, - 561.10009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "È[Ç?\u00194Ê-«z5uÈb5u£\u001c§/5u6=¤~ʬ6e¤×6=©95u\u001b76=\u0018F\u001bu«-¤76=¤×6)5~Ê-6=¤~§/5u«¬Ê-«-¤u\u0019%5u6[§F\u001bª¤ ¥/§", - "origin": [ - 327.79998779296875, - 547.0001220703125 - ], - "bbox": [ - 327.79998779296875, - 540.7001342773438, - 534.6998901367188, - 561.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.79998779296875, - 540.7001342773438, - 534.6998901367188, - 561.10009765625 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 72.69998168945312, - 554.4002075195312, - 535.89990234375, - 574.8001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "uxw", - "origin": [ - 72.69998168945312, - 560.7001953125 - ], - "bbox": [ - 72.69998168945312, - 554.7001953125, - 76.89997863769531, - 573.9002075195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.69998168945312, - 554.7001953125, - 76.89997863769531, - 573.9002075195312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\"4$", - "origin": [ - 80.39997863769531, - 560.7001953125 - ], - "bbox": [ - 80.39997863769531, - 554.4002075195312, - 85.29998016357422, - 574.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�n", - "origin": [ - 85.29998016357422, - 560.7001953125 - ], - "bbox": [ - 85.29998016357422, - 554.7001953125, - 91.09998321533203, - 573.9002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9\"%.", - "origin": [ - 91.09998321533203, - 560.7001953125 - ], - "bbox": [ - 91.09998321533203, - 554.4002075195312, - 100.99998474121094, - 574.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "€n", - "origin": [ - 100.99998474121094, - 560.7001953125 - ], - "bbox": [ - 100.99998474121094, - 554.7001953125, - 104.89998626708984, - 573.9002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�³R´oµÍ¶× Ó~6)57576#¤\\5u\u001b7§�¦157§\u001a\u001b76^\u0018�6=\u001b7¨g6[5H¥;¯", - "origin": [ - 104.89998626708984, - 560.7001953125 - ], - "bbox": [ - 104.89998626708984, - 554.4002075195312, - 261.99993896484375, - 574.8001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.39997863769531, - 554.4002075195312, - 261.99993896484375, - 574.8001708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "È[Æ\n«¬576=\u001bH57£\u001c§F576^\u0018F\u001b7«Y¤76^¥/6g¨g£\u001c©\u001a£\u001c\u0018w£\u001cÊ-6!\u0018\u001a\u0019\u001c\u001b\u001eÊ", - "origin": [ - 264.1999816894531, - 560.7001953125 - ], - "bbox": [ - 264.1999816894531, - 554.4002075195312, - 420.99993896484375, - 574.8001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.1999816894531, - 554.4002075195312, - 420.99993896484375, - 574.8001708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©Ù¥F6=¤B\u0019\u001c¦)576=§F\u001bu¤V¥/§Ù¨#\u00194\u001bª¦ªþFÈ", - "origin": [ - 426.5999755859375, - 560.7001953125 - ], - "bbox": [ - 426.5999755859375, - 554.4002075195312, - 535.89990234375, - 574.8001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 426.5999755859375, - 554.4002075195312, - 535.89990234375, - 574.8001708984375 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 72.89996337890625, - 567.9002075195312, - 263.0, - 588.3001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T", - "origin": [ - 72.89996337890625, - 574.2001953125 - ], - "bbox": [ - 72.89996337890625, - 568.2001953125, - 72.89996337890625, - 587.4002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y¦[£\u001c¨g¨g6צ4¯", - "origin": [ - 72.89996337890625, - 574.2001953125 - ], - "bbox": [ - 72.89996337890625, - 567.9002075195312, - 113.79997253417969, - 588.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.89996337890625, - 567.9002075195312, - 113.79997253417969, - 588.3001708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5¤7£\u001c§FÆ96[©?5KÊ-6צ[\u00199¤;6[©B«-©/Ôõ£\u001c\u001bu¨#\u0019%5u«-²?§F6", - "origin": [ - 115.99996948242188, - 574.2001953125 - ], - "bbox": [ - 115.99996948242188, - 567.9002075195312, - 254.0999755859375, - 588.3001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YX", - "origin": [ - 254.0999755859375, - 574.2001953125 - ], - "bbox": [ - 254.0999755859375, - 568.2001953125, - 258.79998779296875, - 587.4002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 258.79998779296875, - 574.2001953125 - ], - "bbox": [ - 258.79998779296875, - 567.9002075195312, - 263.0, - 588.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 115.99996948242188, - 567.9002075195312, - 263.0, - 588.3001708984375 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 274.89996337890625, - 567.9002075195312, - 536.5000610351562, - 588.3001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬©�¤�«", - "origin": [ - 274.89996337890625, - 574.2001953125 - ], - "bbox": [ - 274.89996337890625, - 567.9002075195312, - 287.0999755859375, - 588.3001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "y[", - "origin": [ - 287.0999755859375, - 574.2001953125 - ], - "bbox": [ - 287.0999755859375, - 568.2001953125, - 290.4999694824219, - 587.4002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=Ê-6=¤¤�£/¦[«¬È[57È=¤K\u001b7«-Æ%\u00194Ê-«-¤76[©?5K\u0018w£\u001c§F\u001b6=¤u¤7\u0019aø96[\u001bK¥/6", - "origin": [ - 290.4999694824219, - 574.2001953125 - ], - "bbox": [ - 290.4999694824219, - 567.9002075195312, - 446.099853515625, - 588.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.89996337890625, - 567.9002075195312, - 446.099853515625, - 588.3001708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ôõ£9§F\u001bu©F«¬\u001bmʬ6,©�\u0019aÆ?«-Ç9\u00194576=§F\u001b", - "origin": [ - 452.699951171875, - 574.2001953125 - ], - "bbox": [ - 452.699951171875, - 567.9002075195312, - 536.5000610351562, - 588.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.699951171875, - 567.9002075195312, - 536.5000610351562, - 588.3001708984375 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 72.199951171875, - 581.6001586914062, - 439.99993896484375, - 602.0001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-6B\u0018Fʬ§�¤o¦)£\u001c¨g\u0018\u001a\u0019457«-ÐFÊ-6B\u0018�£?¤7¤7«¬Ð\u001aʬ6B\u0019aÆ\u001c6e¦RÊY\u0019^©F£\u001c\u001bu¨g6B³R´oµÍ¶‚6=©‰\u0018F\u001buÈ=¤76[\u001buÆ%\u00194©?5oʬ6B¤�5u\u0019\u001c©\u001a¥F\u00194\u001bª¥É¦)£\u001c¨g¨!§F©K ", - "origin": [ - 72.199951171875, - 587.900146484375 - ], - "bbox": [ - 72.199951171875, - 581.6001586914062, - 439.99993896484375, - 602.0001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 581.6001586914062, - 439.99993896484375, - 602.0001220703125 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 72.2999496459961, - 600.3001708984375, - 535.9999389648438, - 620.7001342773438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6#ÊY\u00194©\u001aÇ9\u00194Ç96!³\u001e´oµÍ¶Ìʬ§\u001a«z°", - "origin": [ - 72.2999496459961, - 606.6001586914062 - ], - "bbox": [ - 72.2999496459961, - 600.3001708984375, - 168.19996643066406, - 620.7001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.2999496459961, - 600.3001708984375, - 168.19996643066406, - 620.7001342773438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨gå[¨g6#6=¤�5¸¤�\u0018wÈ=¦[«", - "origin": [ - 171.699951171875, - 606.6001586914062 - ], - "bbox": [ - 171.699951171875, - 600.3001708984375, - 235.8999481201172, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 235.8999481201172, - 606.6001586914062 - ], - "bbox": [ - 235.8999481201172, - 600.6001586914062, - 238.4999542236328, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�È#6[©", - "origin": [ - 238.4999542236328, - 606.6001586914062 - ], - "bbox": [ - 238.4999542236328, - 600.3001708984375, - 256.99993896484375, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "U‚Eƒ…„\u0015†NT\r<", - "origin": [ - 256.99993896484375, - 606.6001586914062 - ], - "bbox": [ - 256.99993896484375, - 600.6001586914062, - 302.8999328613281, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?5ª\u00194©\u001a¥\u001a\u00194\u001bª¥", - "origin": [ - 302.8999328613281, - 606.6001586914062 - ], - "bbox": [ - 302.8999328613281, - 600.3001708984375, - 337.2999572753906, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Pb", - "origin": [ - 337.2999572753906, - 606.6001586914062 - ], - "bbox": [ - 337.2999572753906, - 600.6001586914062, - 346.699951171875, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V6=©F6[\u001bª\u00194Ê-«", - "origin": [ - 346.699951171875, - 606.6001586914062 - ], - "bbox": [ - 346.699951171875, - 600.3001708984375, - 380.49993896484375, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h‡", - "origin": [ - 380.49993896484375, - 606.6001586914062 - ], - "bbox": [ - 380.49993896484375, - 600.6001586914062, - 383.199951171875, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=6=¥ÙµÍ\u00194\u001b", - "origin": [ - 383.199951171875, - 606.6001586914062 - ], - "bbox": [ - 383.199951171875, - 600.3001708984375, - 415.5999450683594, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WV", - "origin": [ - 415.5999450683594, - 606.6001586914062 - ], - "bbox": [ - 415.5999450683594, - 600.6001586914062, - 419.5999450683594, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n§F\u0018‚¶m\u00194©\u001aÇ\u001c§\u001a\u0019\u001cÇ\u001c6", - "origin": [ - 419.5999450683594, - 606.6001586914062 - ], - "bbox": [ - 419.5999450683594, - 600.3001708984375, - 477.199951171875, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 477.199951171875, - 606.6001586914062 - ], - "bbox": [ - 477.199951171875, - 600.6001586914062, - 481.7999572753906, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") mÓ~6#Ê-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6", - "origin": [ - 481.7999572753906, - 606.6001586914062 - ], - "bbox": [ - 481.7999572753906, - 600.3001708984375, - 535.9999389648438, - 620.7001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 171.699951171875, - 600.3001708984375, - 535.9999389648438, - 620.7001342773438 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 72.199951171875, - 614.0001831054688, - 536.3999633789062, - 634.400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018w6[\u001bu¨^6[5~¥/6R¥FÈ=¦)\u001bu«-\u001b76b¥;¯", - "origin": [ - 72.199951171875, - 620.3001708984375 - ], - "bbox": [ - 72.199951171875, - 614.0001831054688, - 156.99996948242188, - 634.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 614.0001831054688, - 156.99996948242188, - 634.400146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§F57\u001bu6=¤", - "origin": [ - 159.29995727539062, - 620.3001708984375 - ], - "bbox": [ - 159.29995727539062, - 614.0001831054688, - 182.09994506835938, - 634.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 159.29995727539062, - 614.0001831054688, - 182.09994506835938, - 634.400146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊY\u00194©FÇ?\u00194Ç96=¤", - "origin": [ - 188.699951171875, - 620.3001708984375 - ], - "bbox": [ - 188.699951171875, - 614.0001831054688, - 221.69993591308594, - 634.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.699951171875, - 614.0001831054688, - 221.69993591308594, - 634.400146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/§g5\\ø\n\u0018w6R¥/6R³\u001e´oµÍ¶, ", - "origin": [ - 228.29995727539062, - 620.3001708984375 - ], - "bbox": [ - 228.29995727539062, - 614.0001831054688, - 307.4999694824219, - 634.400146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/<\"b", - "origin": [ - 307.4999694824219, - 620.3001708984375 - ], - "bbox": [ - 307.4999694824219, - 614.3001708984375, - 318.39996337890625, - 633.5001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "HµÍ¶Ý6e¤\\5 ¦)£\u001c¨g\u0018FÊ-«Y²9§\u001aÈ", - "origin": [ - 318.39996337890625, - 620.3001708984375 - ], - "bbox": [ - 318.39996337890625, - 614.0001831054688, - 398.9999694824219, - 634.400146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 398.9999694824219, - 620.3001708984375 - ], - "bbox": [ - 398.9999694824219, - 614.3001708984375, - 403.9999694824219, - 633.5001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4¨#\u00194«Y¤,«-Ê�\u0019HÊ", - "origin": [ - 403.9999694824219, - 620.3001708984375 - ], - "bbox": [ - 403.9999694824219, - 614.0001831054688, - 447.9999694824219, - 634.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.29995727539062, - 614.0001831054688, - 447.9999694824219, - 634.400146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019aÆa\u0019\u001c©?5u\u00194Ç96o¥/6b\u0018w£\u001c§FÆ9£\u001c«-\u001b", - "origin": [ - 453.699951171875, - 620.3001708984375 - ], - "bbox": [ - 453.699951171875, - 614.0001831054688, - 536.3999633789062, - 634.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.699951171875, - 614.0001831054688, - 536.3999633789062, - 634.400146484375 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 72.199951171875, - 627.6001586914062, - 342.8000183105469, - 648.0001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "å)5u\u001b76×57\u001bª\u0019\u001c¥/§\u001a«z5Ôy\u0019\u001c¦)«-Ê-6[¨g6[©?5m6=©¸\u0018FÊ-§\u001a¤7«¬6=§F\u001bu¤KÔõ£\u001c\u001bu¨#\u0019%5u¤", - "origin": [ - 72.199951171875, - 633.900146484375 - ], - "bbox": [ - 72.199951171875, - 627.6001586914062, - 253.09996032714844, - 648.0001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "7T", - "origin": [ - 253.09996032714844, - 633.900146484375 - ], - "bbox": [ - 253.09996032714844, - 627.900146484375, - 259.9999694824219, - 647.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y³\u001e´oµÍ¶", - "origin": [ - 259.9999694824219, - 633.900146484375 - ], - "bbox": [ - 259.9999694824219, - 627.6001586914062, - 287.0, - 648.0001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "#[", - "origin": [ - 287.0, - 633.900146484375 - ], - "bbox": [ - 287.0, - 627.900146484375, - 293.70001220703125, - 647.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "aËi£9¤�5u¤u¦)\u001bu«¬\u0018F5", - "origin": [ - 293.70001220703125, - 633.900146484375 - ], - "bbox": [ - 293.70001220703125, - 627.6001586914062, - 338.3000183105469, - 648.0001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 338.3000183105469, - 633.900146484375 - ], - "bbox": [ - 338.3000183105469, - 627.900146484375, - 342.8000183105469, - 647.1001586914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 627.6001586914062, - 342.8000183105469, - 648.0001220703125 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 354.89996337890625, - 627.6001586914062, - 360.4999694824219, - 648.0001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "<", - "origin": [ - 354.89996337890625, - 633.900146484375 - ], - "bbox": [ - 354.89996337890625, - 627.900146484375, - 354.89996337890625, - 647.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aÓ", - "origin": [ - 354.89996337890625, - 633.900146484375 - ], - "bbox": [ - 354.89996337890625, - 627.6001586914062, - 360.4999694824219, - 648.0001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.89996337890625, - 627.6001586914062, - 360.4999694824219, - 648.0001220703125 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 367.39996337890625, - 625.5001831054688, - 371.199951171875, - 644.7001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "d\u001bd", - "origin": [ - 367.39996337890625, - 631.5001831054688 - ], - "bbox": [ - 367.39996337890625, - 625.5001831054688, - 371.199951171875, - 644.7001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.39996337890625, - 625.5001831054688, - 371.199951171875, - 644.7001953125 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 375.39996337890625, - 627.6001586914062, - 535.7999267578125, - 648.0001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "[I�", - "origin": [ - 375.39996337890625, - 633.900146484375 - ], - "bbox": [ - 375.39996337890625, - 627.900146484375, - 380.199951171875, - 647.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "i´", - "origin": [ - 380.199951171875, - 633.900146484375 - ], - "bbox": [ - 380.199951171875, - 627.6001586914062, - 386.699951171875, - 648.0001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰ˆ\u001aX", - "origin": [ - 386.699951171875, - 633.900146484375 - ], - "bbox": [ - 386.699951171875, - 627.900146484375, - 400.4999694824219, - 647.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 4Ó~6[ÊY\u0019b\u0018w6[\u001bu¨g6)5¥F6שK¯", - "origin": [ - 400.4999694824219, - 633.900146484375 - ], - "bbox": [ - 400.4999694824219, - 627.6001586914062, - 482.69989013671875, - 648.0001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 375.39996337890625, - 627.6001586914062, - 482.69989013671875, - 648.0001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "È=¦[\u001b7«-\u001b76~²9§m¯", - "origin": [ - 484.89996337890625, - 633.900146484375 - ], - "bbox": [ - 484.89996337890625, - 627.6001586914062, - 522.5999145507812, - 648.0001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 484.89996337890625, - 627.6001586914062, - 522.5999145507812, - 648.0001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©\u001a6", - "origin": [ - 524.699951171875, - 633.900146484375 - ], - "bbox": [ - 524.699951171875, - 627.6001586914062, - 535.7999267578125, - 648.0001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 524.699951171875, - 627.6001586914062, - 535.7999267578125, - 648.0001220703125 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 72.29995727539062, - 641.3001708984375, - 538.199951171875, - 661.7001342773438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤76[§FÊ-6MÔõ£9«-¤Rʬ6^¥/£/¦)§F¨g6[©?5V6)5\u001e©\u001a6¸\u0018\u001a\u00199¤\u001e\u0019aÆ9£\u001c«-\u001bbßcÊ-6¸\u001bu6)57£9§\u001a¦ªþF6=\u001bR¤�§\u001a«¬Æ%\u00194©?5Vʬ6¸Ôõ£\u001c\u001bu¨g\u001945\u001e¥/Èe¤�«-\u001b7È", - "origin": [ - 72.29995727539062, - 647.6001586914062 - ], - "bbox": [ - 72.29995727539062, - 641.3001708984375, - 402.9999694824219, - 661.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015T", - "origin": [ - 402.9999694824219, - 647.6001586914062 - ], - "bbox": [ - 402.9999694824219, - 641.6001586914062, - 411.6999816894531, - 660.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ\u0018\u001a\u0019\u001cÇ\u001c6MÏÙ6[Ð", - "origin": [ - 411.6999816894531, - 647.6001586914062 - ], - "bbox": [ - 411.6999816894531, - 641.3001708984375, - 452.0999755859375, - 661.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 452.0999755859375, - 647.6001586914062 - ], - "bbox": [ - 452.0999755859375, - 641.6001586914062, - 458.1999816894531, - 660.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";¥/£/¦[§F¨g6[©?5\u001e\u0018\u001a\u0019\u001c\u0018F«-6[\u001b", - "origin": [ - 458.1999816894531, - 647.6001586914062 - ], - "bbox": [ - 458.1999816894531, - 641.3001708984375, - 533.5999755859375, - 661.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 533.5999755859375, - 647.6001586914062 - ], - "bbox": [ - 533.5999755859375, - 641.6001586914062, - 538.199951171875, - 660.8001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29995727539062, - 641.3001708984375, - 538.199951171875, - 661.7001342773438 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 72.19995880126953, - 654.9002075195312, - 227.5999298095703, - 675.3001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-6=¦15u§F\u001bu6H¤7§F\u001bo£9\u001bu¥/«-©\u001a\u00194576[§\u001a\u001bb¥/6H\u0018�£/¦ªþF6", - "origin": [ - 72.19995880126953, - 661.2001953125 - ], - "bbox": [ - 72.19995880126953, - 654.9002075195312, - 204.2999267578125, - 675.3001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 204.2999267578125, - 661.2001953125 - ], - "bbox": [ - 204.2999267578125, - 655.2001953125, - 209.39993286132812, - 674.4002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K ¬ - ", - "origin": [ - 209.39993286132812, - 661.2001953125 - ], - "bbox": [ - 209.39993286132812, - 654.9002075195312, - 220.99993896484375, - 675.3001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹X", - "origin": [ - 220.99993896484375, - 661.2001953125 - ], - "bbox": [ - 220.99993896484375, - 655.2001953125, - 223.39993286132812, - 674.4002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 223.39993286132812, - 661.2001953125 - ], - "bbox": [ - 223.39993286132812, - 654.9002075195312, - 227.5999298095703, - 675.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19995880126953, - 654.9002075195312, - 227.5999298095703, - 675.3001708984375 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 72.49996185302734, - 673.7001953125, - 536.2999267578125, - 694.1001586914062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6[\u0018w6[©�¥F\u00194©?5", - "origin": [ - 72.49996185302734, - 680.0001831054688 - ], - "bbox": [ - 72.49996185302734, - 673.7001953125, - 115.29996490478516, - 694.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 115.29996490478516, - 680.0001831054688 - ], - "bbox": [ - 115.29996490478516, - 674.0001831054688, - 119.79996490478516, - 693.2001953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�\u00194§", - "origin": [ - 119.79996490478516, - 680.0001831054688 - ], - "bbox": [ - 119.79996490478516, - 673.7001953125, - 130.39996337890625, - 694.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015�", - "origin": [ - 130.39996337890625, - 680.0001831054688 - ], - "bbox": [ - 130.39996337890625, - 674.0001831054688, - 139.09996032714844, - 693.2001953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aÊm¥/§‰576=¨^\u0018�¤", - "origin": [ - 139.09996032714844, - 680.0001831054688 - ], - "bbox": [ - 139.09996032714844, - 673.7001953125, - 187.29994201660156, - 694.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[f", - "origin": [ - 522.9999389648438, - 353.800048828125 - ], - "bbox": [ - 522.9999389648438, - 347.800048828125, - 528.4999389648438, - 367.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^°", - "origin": [ - 528.4999389648438, - 353.800048828125 - ], - "bbox": [ - 528.4999389648438, - 347.50006103515625, - 536.699951171875, - 367.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.70001220703125, - 347.50006103515625, - 536.699951171875, - 367.9000549316406 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.30001068115234, - 361.2000732421875, - 535.2999877929688, - 381.6000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤u\u00194¨g¨g6[©?5b¥;¯", - "origin": [ - 72.30001068115234, - 367.50006103515625 - ], - "bbox": [ - 72.30001068115234, - 361.2000732421875, - 120.70001983642578, - 381.6000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001068115234, - 361.2000732421875, - 120.70001983642578, - 381.6000671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©\u001a¥/«Y¦[\u0019457«-£\u001c©\u001a¤b\u0018�£9§F\u001boå)5u\u001b76H«-©\u001a¥/È[\u0018w6[©�¥F\u00194©?5u¤b6[©Ý³R´oµÍ¶× \u001aÅb©\u001a6Bʬ«Y¤\\5u6M¥/6M¤7«z5u6=¤sÏÙ6[ÐÝ6)5R¥F6VÊ-«-Æ?\u001bu6=¤s6e¤\\5b\u0018\u001aÊ-\u00199¦)È[6Bß^ÊY\u0019", - "origin": [ - 122.80001068115234, - 367.50006103515625 - ], - "bbox": [ - 122.80001068115234, - 361.2000732421875, - 535.2999877929688, - 381.6000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 122.80001068115234, - 361.2000732421875, - 535.2999877929688, - 381.6000671386719 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.10000610351562, - 374.90008544921875, - 283.300048828125, - 395.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 72.10000610351562, - 381.2000732421875 - ], - "bbox": [ - 72.10000610351562, - 375.2000732421875, - 72.10000610351562, - 394.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©Ý¥/6M¦[6H¥F£\n¦[§F¨g6[©?5b\u0018w£\u001c§F\u001bo\u0018FÊ-§\u001a¤b\u0019\u001c¨g\u0018Fʬ6H«-©/Ôõ£\u001c\u001bu¨#\u0019%5u«¬£9©K ", - "origin": [ - 72.10000610351562, - 381.2000732421875 - ], - "bbox": [ - 72.10000610351562, - 374.90008544921875, - 283.300048828125, - 395.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.10000610351562, - 374.90008544921875, - 283.300048828125, - 395.3000793457031 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 73.00000762939453, - 406.8000793457031, - 230.5, - 426.0000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0018\u001a\u0019\r?", - "origin": [ - 73.00000762939453, - 412.8000793457031 - ], - "bbox": [ - 73.00000762939453, - 406.8000793457031, - 82.90000915527344, - 426.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.00000762939453, - 406.8000793457031, - 82.90000915527344, - 426.0000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "@A2CBD)E%F-HGI+\u0011)KJ12�)KLNMPORQNS", - "origin": [ - 103.30001068115234, - 412.8000793457031 - ], - "bbox": [ - 103.30001068115234, - 406.8000793457031, - 230.5, - 426.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.30001068115234, - 406.8000793457031, - 230.5, - 426.0000915527344 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 72.30001068115234, - 435.0000915527344, - 538.199951171875, - 455.40008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6HÊY\u00194©FÇ?\u00194Ç96\u001e³R´oµ\u000e¶", - "origin": [ - 72.30001068115234, - 441.3000793457031 - ], - "bbox": [ - 72.30001068115234, - 435.0000915527344, - 145.89999389648438, - 455.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "UT", - "origin": [ - 145.89999389648438, - 441.3000793457031 - ], - "bbox": [ - 145.89999389648438, - 435.3000793457031, - 155.89999389648438, - 454.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô³bø\n\u0018w6[\u001bb´6)ÿ\n5sµ\u000e\u00194\u001b", - "origin": [ - 155.89999389648438, - 441.3000793457031 - ], - "bbox": [ - 155.89999389648438, - 435.0000915527344, - 226.40000915527344, - 455.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WV", - "origin": [ - 226.40000915527344, - 441.3000793457031 - ], - "bbox": [ - 226.40000915527344, - 435.3000793457031, - 230.40000915527344, - 454.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?§\u001a\u0018‰¶m\u0019\u001c©FÇ\u001c§�\u00194Ç\u001c6", - "origin": [ - 230.40000915527344, - 441.3000793457031 - ], - "bbox": [ - 230.40000915527344, - 435.0000915527344, - 287.20001220703125, - 455.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YX", - "origin": [ - 287.20001220703125, - 441.3000793457031 - ], - "bbox": [ - 287.20001220703125, - 435.3000793457031, - 291.9000244140625, - 454.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001068115234, - 435.0000915527344, - 291.9000244140625, - 455.40008544921875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5o§F©ÉÊ-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6V¥/6VÔõ£\u001c\u001bu¨g\u001945u\u0019\u001cÇ\u001c6\u001e¥F6H¥F£\n¦[§F¨g6[©?5u¤sþ\nø\n\u0018w6[\u001b7576)ÿ\n5u6=¤= ", - "origin": [ - 298.5, - 441.3000793457031 - ], - "bbox": [ - 298.5, - 435.0000915527344, - 538.199951171875, - 455.40008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 298.5, - 435.0000915527344, - 538.199951171875, - 455.40008544921875 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 79.60000610351562, - 448.7001037597656, - 385.7999267578125, - 469.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F57\u001bu6[¨g6[©?5R¥/«¬5", - "origin": [ - 79.60000610351562, - 455.0000915527344 - ], - "bbox": [ - 79.60000610351562, - 448.7001037597656, - 130.8000030517578, - 469.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 130.8000030517578, - 455.0000915527344 - ], - "bbox": [ - 130.8000030517578, - 449.0000915527344, - 135.3000030517578, - 468.2001037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F«-Êm¤76[\u001b75bß^¥FÈ", - "origin": [ - 135.3000030517578, - 455.0000915527344 - ], - "bbox": [ - 135.3000030517578, - 448.7001037597656, - 182.99998474121094, - 469.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 182.99998474121094, - 455.0000915527344 - ], - "bbox": [ - 182.99998474121094, - 449.0000915527344, - 187.29998779296875, - 468.2001037597656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«-\u001bbÊY\u0019g¤\\5u\u001b7§\u001a¦)57§F\u001bu6H6)5bÊ-6B¦)£\u001c©?5u6[©\n§É¥F6=¤o\u0018\u001a\u0019\u001cÇ\u001c6e¤~ÏÙ6[Ðm ", - "origin": [ - 187.29998779296875, - 455.0000915527344 - ], - "bbox": [ - 187.29998779296875, - 448.7001037597656, - 385.7999267578125, - 469.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.60000610351562, - 448.7001037597656, - 385.7999267578125, - 469.10009765625 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 72.30000305175781, - 467.4001159667969, - 537.9999389648438, - 487.80010986328125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6!Ê-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6B6=©Íʬ§\u001a«z°", - "origin": [ - 72.30000305175781, - 473.7001037597656 - ], - "bbox": [ - 72.30000305175781, - 467.4001159667969, - 147.20001220703125, - 487.80010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 467.4001159667969, - 147.20001220703125, - 487.80010986328125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨gå[¨g6MÔõ§/5H¥/È[Æ96[Ê-£\u001c\u0018F\u0018wȸ6=©¿:=<9<\u001c@g\u0018\u001a\u0019\u001c\u001b\u001e´s«-¨", - "origin": [ - 150.70001220703125, - 473.7001037597656 - ], - "bbox": [ - 150.70001220703125, - 467.4001159667969, - 307.29998779296875, - 487.80010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "^]", - "origin": [ - 307.29998779296875, - 473.7001037597656 - ], - "bbox": [ - 307.29998779296875, - 467.7001037597656, - 319.29998779296875, - 486.9001159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "~6=\u001b7©\u001a6[\u001bª¤\\°±¶K6=6B\u0018�6=©\u001a¥F\u00194©?5H¤7\u0019g5uþFá=¤76!\u0019\u001c§�Ó", - "origin": [ - 319.29998779296875, - 473.7001037597656 - ], - "bbox": [ - 319.29998779296875, - 467.4001159667969, - 466.0, - 487.80010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "7_&�*`aT\rb", - "origin": [ - 466.0, - 473.7001037597656 - ], - "bbox": [ - 466.0, - 467.7001037597656, - 502.0999450683594, - 486.9001159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V6=©Fá[Æ96", - "origin": [ - 502.0999450683594, - 473.7001037597656 - ], - "bbox": [ - 502.0999450683594, - 467.4001159667969, - 529.199951171875, - 487.80010986328125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 529.199951171875, - 473.7001037597656 - ], - "bbox": [ - 529.199951171875, - 467.7001037597656, - 533.7999267578125, - 486.9001159667969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 533.7999267578125, - 473.7001037597656 - ], - "bbox": [ - 533.7999267578125, - 467.4001159667969, - 537.9999389648438, - 487.80010986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 150.70001220703125, - 467.4001159667969, - 537.9999389648438, - 487.80010986328125 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 75.80001068115234, - 481.10009765625, - 536.5000610351562, - 501.5000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʝÔõ§/5B\u001bu\u0019\u001c\u0018F«Y¥/6[¨g6[©?5H\u0018�£9\u0018F§FÊY\u00194\u001bu«-¤7ȸ\u0018�\u00194\u001bBµÝ£9¤u\u00194«Y¦", - "origin": [ - 75.80001068115234, - 487.40008544921875 - ], - "bbox": [ - 75.80001068115234, - 481.10009765625, - 243.8999786376953, - 501.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "eT", - "origin": [ - 243.8999786376953, - 487.40008544921875 - ], - "bbox": [ - 243.8999786376953, - 481.40008544921875, - 252.49998474121094, - 500.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yʬ6g\u0018F\u001bu6[¨g«-6[\u001bV©\u001a\u0019aÆ\n«¬Ç?\u0019%5u6[§F\u001b\u001eÏ�6=Ð", - "origin": [ - 252.49998474121094, - 487.40008544921875 - ], - "bbox": [ - 252.49998474121094, - 481.10009765625, - 367.199951171875, - 501.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fX", - "origin": [ - 367.199951171875, - 487.40008544921875 - ], - "bbox": [ - 367.199951171875, - 481.40008544921875, - 372.89996337890625, - 500.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 K3\u001eá=¤HÊY\u0019\u000fÆ96[\u001bª¤�«-£\u001c©\u000eAF ", - "origin": [ - 372.89996337890625, - 487.40008544921875 - ], - "bbox": [ - 372.89996337890625, - 481.10009765625, - 454.29998779296875, - 501.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.80001068115234, - 481.10009765625, - 454.29998779296875, - 501.5000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "@", - "origin": [ - 456.5000305175781, - 487.40008544921875 - ], - "bbox": [ - 456.5000305175781, - 481.10009765625, - 456.5000305175781, - 501.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g[", - "origin": [ - 456.5000305175781, - 487.40008544921875 - ], - "bbox": [ - 456.5000305175781, - 481.40008544921875, - 462.10003662109375, - 500.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ʬ6e¤V¤7\u0018wÈ=¦)«", - "origin": [ - 462.10003662109375, - 487.40008544921875 - ], - "bbox": [ - 462.10003662109375, - 481.10009765625, - 501.4000244140625, - 501.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h�", - "origin": [ - 501.4000244140625, - 487.40008544921875 - ], - "bbox": [ - 501.4000244140625, - 481.40008544921875, - 504.10003662109375, - 500.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦=\u0019%57«-£\u001c©�¤", - "origin": [ - 504.10003662109375, - 487.40008544921875 - ], - "bbox": [ - 504.10003662109375, - 481.10009765625, - 536.5000610351562, - 501.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 456.5000305175781, - 481.10009765625, - 536.5000610351562, - 501.5000915527344 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 72.30001831054688, - 494.60009765625, - 534.900146484375, - 515.0000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6^¦)6MÊY\u00194©FÇ?\u00194Ç96B£\u001c©?5\u001eÈ[57È!¦[£\u001c©", - "origin": [ - 72.30001831054688, - 500.90008544921875 - ], - "bbox": [ - 72.30001831054688, - 494.60009765625, - 177.90000915527344, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/�", - "origin": [ - 177.90000915527344, - 500.90008544921875 - ], - "bbox": [ - 177.90000915527344, - 494.90008544921875, - 183.3000030517578, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�È[6=¤\u001eß#§F©ÍÇ9\u001b7£9§F\u0018w6M«¬©?5u6[\u001bu©\u001a\u0019%5u«¬£9©\u001a\u00194ÊK«-©\u001a¥/È=\u0018�6=©\u001a¥F\u0019\u001c©95", - "origin": [ - 183.3000030517578, - 500.90008544921875 - ], - "bbox": [ - 183.3000030517578, - 494.60009765625, - 370.50006103515625, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 370.50006103515625, - 500.90008544921875 - ], - "bbox": [ - 370.50006103515625, - 494.90008544921875, - 375.1000671386719, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�Ê-6", - "origin": [ - 375.1000671386719, - 500.90008544921875 - ], - "bbox": [ - 375.1000671386719, - 494.60009765625, - 383.6000671386719, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017ikjml", - "origin": [ - 383.6000671386719, - 500.90008544921875 - ], - "bbox": [ - 383.6000671386719, - 494.90008544921875, - 410.8000793457031, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%.1(", - "origin": [ - 410.8000793457031, - 500.90008544921875 - ], - "bbox": [ - 410.8000793457031, - 494.60009765625, - 419.8000793457031, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "onAj\u0017pqn", - "origin": [ - 419.8000793457031, - 500.90008544921875 - ], - "bbox": [ - 419.8000793457031, - 494.90008544921875, - 444.4000549316406, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c'", - "origin": [ - 444.4000549316406, - 500.90008544921875 - ], - "bbox": [ - 444.4000549316406, - 494.60009765625, - 449.4000549316406, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "rj", - "origin": [ - 449.4000549316406, - 500.90008544921875 - ], - "bbox": [ - 449.4000549316406, - 494.90008544921875, - 459.00006103515625, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^'", - "origin": [ - 459.00006103515625, - 500.90008544921875 - ], - "bbox": [ - 459.00006103515625, - 494.60009765625, - 467.2000732421875, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cset#l", - "origin": [ - 467.2000732421875, - 500.90008544921875 - ], - "bbox": [ - 467.2000732421875, - 494.90008544921875, - 487.10009765625, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4$", - "origin": [ - 487.10009765625, - 500.90008544921875 - ], - "bbox": [ - 487.10009765625, - 494.60009765625, - 492.0000915527344, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"uvl", - "origin": [ - 492.0000915527344, - 500.90008544921875 - ], - "bbox": [ - 492.0000915527344, - 494.90008544921875, - 501.90008544921875, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%.", - "origin": [ - 501.90008544921875, - 500.90008544921875 - ], - "bbox": [ - 501.90008544921875, - 494.60009765625, - 506.7000732421875, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xwyp", - "origin": [ - 506.7000732421875, - 500.90008544921875 - ], - "bbox": [ - 506.7000732421875, - 494.90008544921875, - 514.3001098632812, - 514.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "{&/\u001f", - "origin": [ - 514.3001098632812, - 500.90008544921875 - ], - "bbox": [ - 514.3001098632812, - 494.60009765625, - 522.7001342773438, - 515.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "{z", - "origin": [ - 522.7001342773438, - 500.90008544921875 - ], - "bbox": [ - 522.7001342773438, - 494.90008544921875, - 534.900146484375, - 514.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 494.60009765625, - 534.900146484375, - 515.0000610351562 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 72.90001678466797, - 508.30010986328125, - 536.4999389648438, - 528.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T|j~}\"t=X", - "origin": [ - 72.90001678466797, - 514.60009765625 - ], - "bbox": [ - 72.90001678466797, - 508.60009765625, - 98.30001831054688, - 527.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") FÓ~6\u001e¦)£\u001c©�¤�£9\u001b�5u«¬§F¨", - "origin": [ - 98.30001831054688, - 514.60009765625 - ], - "bbox": [ - 98.30001831054688, - 508.30010986328125, - 162.40003967285156, - 528.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.90001678466797, - 508.30010986328125, - 162.40003967285156, - 528.7000732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu\u00199¤7¤76[¨!ÐFÊ-6b¥/6=¤×§F©F«-Æ\u001c6[\u001bª¤7«z5uÈ=¤", - "origin": [ - 173.50001525878906, - 514.60009765625 - ], - "bbox": [ - 173.50001525878906, - 508.30010986328125, - 277.5000305175781, - 528.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 277.5000305175781, - 514.60009765625 - ], - "bbox": [ - 277.5000305175781, - 508.60009765625, - 282.0000305175781, - 527.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c¥/6=¤×6[©?57\u001bu6[\u0018\u001a\u001b7«Y¤�6e¤", - "origin": [ - 282.0000305175781, - 514.60009765625 - ], - "bbox": [ - 282.0000305175781, - 508.30010986328125, - 346.3999938964844, - 528.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.50001525878906, - 508.30010986328125, - 346.3999938964844, - 528.7000732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6)5 ¥/6=¤×£\u001c\u001buÇ9\u00194©\u001a«-¤7¨g6=¤i\u0018F§FÐ\u001aʬ«Y¦[¤ ¥/6R¥/«", - "origin": [ - 353.0, - 514.60009765625 - ], - "bbox": [ - 353.0, - 508.30010986328125, - 483.3999328613281, - 528.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h", - "origin": [ - 483.3999328613281, - 514.60009765625 - ], - "bbox": [ - 483.3999328613281, - 508.60009765625, - 486.0999450683594, - 527.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+È[\u001bu6[©?5u¤×\u0018\u001a\u0019aø/¤", - "origin": [ - 486.0999450683594, - 514.60009765625 - ], - "bbox": [ - 486.0999450683594, - 508.30010986328125, - 536.4999389648438, - 528.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.0, - 508.30010986328125, - 536.4999389648438, - 528.7000732421875 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 72.89999389648438, - 522.0001220703125, - 76.09999084472656, - 542.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T", - "origin": [ - 72.89999389648438, - 528.3001098632812 - ], - "bbox": [ - 72.89999389648438, - 522.3001098632812, - 72.89999389648438, - 541.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y3", - "origin": [ - 72.89999389648438, - 528.3001098632812 - ], - "bbox": [ - 72.89999389648438, - 522.0001220703125, - 76.09999084472656, - 542.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.89999389648438, - 522.0001220703125, - 76.09999084472656, - 542.4000854492188 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 90.89999389648438, - 522.0001220703125, - 98.09999084472656, - 542.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 90.89999389648438, - 528.3001098632812 - ], - "bbox": [ - 90.89999389648438, - 522.3001098632812, - 90.89999389648438, - 541.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oË", - "origin": [ - 90.89999389648438, - 528.3001098632812 - ], - "bbox": [ - 90.89999389648438, - 522.0001220703125, - 98.09999084472656, - 542.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 90.89999389648438, - 522.0001220703125, - 98.09999084472656, - 542.4000854492188 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 111.99999237060547, - 522.0001220703125, - 117.79999542236328, - 542.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "[", - "origin": [ - 111.99999237060547, - 528.3001098632812 - ], - "bbox": [ - 111.99999237060547, - 522.3001098632812, - 111.99999237060547, - 541.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wµ", - "origin": [ - 111.99999237060547, - 528.3001098632812 - ], - "bbox": [ - 111.99999237060547, - 522.0001220703125, - 117.79999542236328, - 542.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.99999237060547, - 522.0001220703125, - 117.79999542236328, - 542.4000854492188 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 130.5, - 522.0001220703125, - 138.1999969482422, - 542.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "´", - "origin": [ - 130.5, - 528.3001098632812 - ], - "bbox": [ - 130.5, - 522.0001220703125, - 130.5, - 542.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�[", - "origin": [ - 130.5, - 528.3001098632812 - ], - "bbox": [ - 130.5, - 522.3001098632812, - 138.1999969482422, - 541.5001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 130.5, - 522.0001220703125, - 138.1999969482422, - 542.4000854492188 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 147.39999389648438, - 522.3001098632812, - 154.89999389648438, - 541.5001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "` �", - "origin": [ - 147.39999389648438, - 528.3001098632812 - ], - "bbox": [ - 147.39999389648438, - 522.3001098632812, - 154.89999389648438, - 541.5001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.39999389648438, - 522.3001098632812, - 154.89999389648438, - 541.5001220703125 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 173.69998168945312, - 522.0001831054688, - 191.99998474121094, - 542.400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "[", - "origin": [ - 173.69998168945312, - 528.3001708984375 - ], - "bbox": [ - 173.69998168945312, - 522.3001708984375, - 173.69998168945312, - 541.5001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K - - ", - "origin": [ - 173.69998168945312, - 528.3001708984375 - ], - "bbox": [ - 173.69998168945312, - 522.0001831054688, - 185.39999389648438, - 542.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.69998168945312, - 522.0001831054688, - 185.39999389648438, - 542.400146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "X", - "origin": [ - 187.69998168945312, - 528.3001708984375 - ], - "bbox": [ - 187.69998168945312, - 522.3001708984375, - 187.69998168945312, - 541.5001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 187.69998168945312, - 528.3001708984375 - ], - "bbox": [ - 187.69998168945312, - 522.0001831054688, - 191.99998474121094, - 542.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.69998168945312, - 522.0001831054688, - 191.99998474121094, - 542.400146484375 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 72.29998016357422, - 540.7001342773438, - 534.6998901367188, - 561.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶,¯", - "origin": [ - 72.29998016357422, - 547.0001220703125 - ], - "bbox": [ - 72.29998016357422, - 540.7001342773438, - 78.9999771118164, - 561.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998016357422, - 540.7001342773438, - 78.9999771118164, - 561.10009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©\u001a¥/È[\u0018w6[©�¥F\u00194©\u001a¦[6\u001e¥/§‰ÏÕG?Óã\u0019¸\u0018�6=\u001b7¨g«Y¤~¥/6\u001e¨g6)5�5u\u001b76V¤�§\u001a\u001b~§F©‰\u0018F«-6=¥c¥;¯", - "origin": [ - 81.19998168945312, - 547.0001220703125 - ], - "bbox": [ - 81.19998168945312, - 540.7001342773438, - 325.5999450683594, - 561.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.19998168945312, - 540.7001342773438, - 325.5999450683594, - 561.10009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "È[Ç?\u00194Ê-«z5uÈb5u£\u001c§/5u6=¤~ʬ6e¤×6=©95u\u001b76=\u0018F\u001bu«-¤76=¤×6)5~Ê-6=¤~§/5u«¬Ê-«-¤u\u0019%5u6[§F\u001bª¤ ¥/§", - "origin": [ - 327.79998779296875, - 547.0001220703125 - ], - "bbox": [ - 327.79998779296875, - 540.7001342773438, - 534.6998901367188, - 561.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 327.79998779296875, - 540.7001342773438, - 534.6998901367188, - 561.10009765625 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 72.69998168945312, - 554.4002075195312, - 535.89990234375, - 574.8001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "uxw", - "origin": [ - 72.69998168945312, - 560.7001953125 - ], - "bbox": [ - 72.69998168945312, - 554.7001953125, - 76.89997863769531, - 573.9002075195312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.69998168945312, - 554.7001953125, - 76.89997863769531, - 573.9002075195312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\"4$", - "origin": [ - 80.39997863769531, - 560.7001953125 - ], - "bbox": [ - 80.39997863769531, - 554.4002075195312, - 85.29998016357422, - 574.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�n", - "origin": [ - 85.29998016357422, - 560.7001953125 - ], - "bbox": [ - 85.29998016357422, - 554.7001953125, - 91.09998321533203, - 573.9002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9\"%.", - "origin": [ - 91.09998321533203, - 560.7001953125 - ], - "bbox": [ - 91.09998321533203, - 554.4002075195312, - 100.99998474121094, - 574.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "€n", - "origin": [ - 100.99998474121094, - 560.7001953125 - ], - "bbox": [ - 100.99998474121094, - 554.7001953125, - 104.89998626708984, - 573.9002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�³R´oµÍ¶× Ó~6)57576#¤\\5u\u001b7§�¦157§\u001a\u001b76^\u0018�6=\u001b7¨g6[5H¥;¯", - "origin": [ - 104.89998626708984, - 560.7001953125 - ], - "bbox": [ - 104.89998626708984, - 554.4002075195312, - 261.99993896484375, - 574.8001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.39997863769531, - 554.4002075195312, - 261.99993896484375, - 574.8001708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "È[Æ\n«¬576=\u001bH57£\u001c§F576^\u0018F\u001b7«Y¤76^¥/6g¨g£\u001c©\u001a£\u001c\u0018w£\u001cÊ-6!\u0018\u001a\u0019\u001c\u001b\u001eÊ", - "origin": [ - 264.1999816894531, - 560.7001953125 - ], - "bbox": [ - 264.1999816894531, - 554.4002075195312, - 420.99993896484375, - 574.8001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.1999816894531, - 554.4002075195312, - 420.99993896484375, - 574.8001708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©Ù¥F6=¤B\u0019\u001c¦)576=§F\u001bu¤V¥/§Ù¨#\u00194\u001bª¦ªþFÈ", - "origin": [ - 426.5999755859375, - 560.7001953125 - ], - "bbox": [ - 426.5999755859375, - 554.4002075195312, - 535.89990234375, - 574.8001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 426.5999755859375, - 554.4002075195312, - 535.89990234375, - 574.8001708984375 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 72.89996337890625, - 567.9002075195312, - 263.0, - 588.3001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T", - "origin": [ - 72.89996337890625, - 574.2001953125 - ], - "bbox": [ - 72.89996337890625, - 568.2001953125, - 72.89996337890625, - 587.4002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y¦[£\u001c¨g¨g6צ4¯", - "origin": [ - 72.89996337890625, - 574.2001953125 - ], - "bbox": [ - 72.89996337890625, - 567.9002075195312, - 113.79997253417969, - 588.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.89996337890625, - 567.9002075195312, - 113.79997253417969, - 588.3001708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5¤7£\u001c§FÆ96[©?5KÊ-6צ[\u00199¤;6[©B«-©/Ôõ£\u001c\u001bu¨#\u0019%5u«-²?§F6", - "origin": [ - 115.99996948242188, - 574.2001953125 - ], - "bbox": [ - 115.99996948242188, - 567.9002075195312, - 254.0999755859375, - 588.3001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YX", - "origin": [ - 254.0999755859375, - 574.2001953125 - ], - "bbox": [ - 254.0999755859375, - 568.2001953125, - 258.79998779296875, - 587.4002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 258.79998779296875, - 574.2001953125 - ], - "bbox": [ - 258.79998779296875, - 567.9002075195312, - 263.0, - 588.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 115.99996948242188, - 567.9002075195312, - 263.0, - 588.3001708984375 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 274.89996337890625, - 567.9002075195312, - 536.5000610351562, - 588.3001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬©�¤�«", - "origin": [ - 274.89996337890625, - 574.2001953125 - ], - "bbox": [ - 274.89996337890625, - 567.9002075195312, - 287.0999755859375, - 588.3001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "y[", - "origin": [ - 287.0999755859375, - 574.2001953125 - ], - "bbox": [ - 287.0999755859375, - 568.2001953125, - 290.4999694824219, - 587.4002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=Ê-6=¤¤�£/¦[«¬È[57È=¤K\u001b7«-Æ%\u00194Ê-«-¤76[©?5K\u0018w£\u001c§F\u001b6=¤u¤7\u0019aø96[\u001bK¥/6", - "origin": [ - 290.4999694824219, - 574.2001953125 - ], - "bbox": [ - 290.4999694824219, - 567.9002075195312, - 446.099853515625, - 588.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.89996337890625, - 567.9002075195312, - 446.099853515625, - 588.3001708984375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ôõ£9§F\u001bu©F«¬\u001bmʬ6,©�\u0019aÆ?«-Ç9\u00194576=§F\u001b", - "origin": [ - 452.699951171875, - 574.2001953125 - ], - "bbox": [ - 452.699951171875, - 567.9002075195312, - 536.5000610351562, - 588.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.699951171875, - 567.9002075195312, - 536.5000610351562, - 588.3001708984375 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 72.199951171875, - 581.6001586914062, - 439.99993896484375, - 602.0001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-6B\u0018Fʬ§�¤o¦)£\u001c¨g\u0018\u001a\u0019457«-ÐFÊ-6B\u0018�£?¤7¤7«¬Ð\u001aʬ6B\u0019aÆ\u001c6e¦RÊY\u0019^©F£\u001c\u001bu¨g6B³R´oµÍ¶‚6=©‰\u0018F\u001buÈ=¤76[\u001buÆ%\u00194©?5oʬ6B¤�5u\u0019\u001c©\u001a¥F\u00194\u001bª¥É¦)£\u001c¨g¨!§F©K ", - "origin": [ - 72.199951171875, - 587.900146484375 - ], - "bbox": [ - 72.199951171875, - 581.6001586914062, - 439.99993896484375, - 602.0001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 581.6001586914062, - 439.99993896484375, - 602.0001220703125 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 72.2999496459961, - 600.3001708984375, - 535.9999389648438, - 620.7001342773438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6#ÊY\u00194©\u001aÇ9\u00194Ç96!³\u001e´oµÍ¶Ìʬ§\u001a«z°", - "origin": [ - 72.2999496459961, - 606.6001586914062 - ], - "bbox": [ - 72.2999496459961, - 600.3001708984375, - 168.19996643066406, - 620.7001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.2999496459961, - 600.3001708984375, - 168.19996643066406, - 620.7001342773438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨gå[¨g6#6=¤�5¸¤�\u0018wÈ=¦[«", - "origin": [ - 171.699951171875, - 606.6001586914062 - ], - "bbox": [ - 171.699951171875, - 600.3001708984375, - 235.8999481201172, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 235.8999481201172, - 606.6001586914062 - ], - "bbox": [ - 235.8999481201172, - 600.6001586914062, - 238.4999542236328, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�È#6[©", - "origin": [ - 238.4999542236328, - 606.6001586914062 - ], - "bbox": [ - 238.4999542236328, - 600.3001708984375, - 256.99993896484375, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "U‚Eƒ…„\u0015†NT\r<", - "origin": [ - 256.99993896484375, - 606.6001586914062 - ], - "bbox": [ - 256.99993896484375, - 600.6001586914062, - 302.8999328613281, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?5ª\u00194©\u001a¥\u001a\u00194\u001bª¥", - "origin": [ - 302.8999328613281, - 606.6001586914062 - ], - "bbox": [ - 302.8999328613281, - 600.3001708984375, - 337.2999572753906, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Pb", - "origin": [ - 337.2999572753906, - 606.6001586914062 - ], - "bbox": [ - 337.2999572753906, - 600.6001586914062, - 346.699951171875, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V6=©F6[\u001bª\u00194Ê-«", - "origin": [ - 346.699951171875, - 606.6001586914062 - ], - "bbox": [ - 346.699951171875, - 600.3001708984375, - 380.49993896484375, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h‡", - "origin": [ - 380.49993896484375, - 606.6001586914062 - ], - "bbox": [ - 380.49993896484375, - 600.6001586914062, - 383.199951171875, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=6=¥ÙµÍ\u00194\u001b", - "origin": [ - 383.199951171875, - 606.6001586914062 - ], - "bbox": [ - 383.199951171875, - 600.3001708984375, - 415.5999450683594, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WV", - "origin": [ - 415.5999450683594, - 606.6001586914062 - ], - "bbox": [ - 415.5999450683594, - 600.6001586914062, - 419.5999450683594, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n§F\u0018‚¶m\u00194©\u001aÇ\u001c§\u001a\u0019\u001cÇ\u001c6", - "origin": [ - 419.5999450683594, - 606.6001586914062 - ], - "bbox": [ - 419.5999450683594, - 600.3001708984375, - 477.199951171875, - 620.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 477.199951171875, - 606.6001586914062 - ], - "bbox": [ - 477.199951171875, - 600.6001586914062, - 481.7999572753906, - 619.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") mÓ~6#Ê-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6", - "origin": [ - 481.7999572753906, - 606.6001586914062 - ], - "bbox": [ - 481.7999572753906, - 600.3001708984375, - 535.9999389648438, - 620.7001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 171.699951171875, - 600.3001708984375, - 535.9999389648438, - 620.7001342773438 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 72.199951171875, - 614.0001831054688, - 536.3999633789062, - 634.400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018w6[\u001bu¨^6[5~¥/6R¥FÈ=¦)\u001bu«-\u001b76b¥;¯", - "origin": [ - 72.199951171875, - 620.3001708984375 - ], - "bbox": [ - 72.199951171875, - 614.0001831054688, - 156.99996948242188, - 634.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 614.0001831054688, - 156.99996948242188, - 634.400146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§F57\u001bu6=¤", - "origin": [ - 159.29995727539062, - 620.3001708984375 - ], - "bbox": [ - 159.29995727539062, - 614.0001831054688, - 182.09994506835938, - 634.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 159.29995727539062, - 614.0001831054688, - 182.09994506835938, - 634.400146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊY\u00194©FÇ?\u00194Ç96=¤", - "origin": [ - 188.699951171875, - 620.3001708984375 - ], - "bbox": [ - 188.699951171875, - 614.0001831054688, - 221.69993591308594, - 634.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.699951171875, - 614.0001831054688, - 221.69993591308594, - 634.400146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/§g5\\ø\n\u0018w6R¥/6R³\u001e´oµÍ¶, ", - "origin": [ - 228.29995727539062, - 620.3001708984375 - ], - "bbox": [ - 228.29995727539062, - 614.0001831054688, - 307.4999694824219, - 634.400146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/<\"b", - "origin": [ - 307.4999694824219, - 620.3001708984375 - ], - "bbox": [ - 307.4999694824219, - 614.3001708984375, - 318.39996337890625, - 633.5001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "HµÍ¶Ý6e¤\\5 ¦)£\u001c¨g\u0018FÊ-«Y²9§\u001aÈ", - "origin": [ - 318.39996337890625, - 620.3001708984375 - ], - "bbox": [ - 318.39996337890625, - 614.0001831054688, - 398.9999694824219, - 634.400146484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 398.9999694824219, - 620.3001708984375 - ], - "bbox": [ - 398.9999694824219, - 614.3001708984375, - 403.9999694824219, - 633.5001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4¨#\u00194«Y¤,«-Ê�\u0019HÊ", - "origin": [ - 403.9999694824219, - 620.3001708984375 - ], - "bbox": [ - 403.9999694824219, - 614.0001831054688, - 447.9999694824219, - 634.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.29995727539062, - 614.0001831054688, - 447.9999694824219, - 634.400146484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019aÆa\u0019\u001c©?5u\u00194Ç96o¥/6b\u0018w£\u001c§FÆ9£\u001c«-\u001b", - "origin": [ - 453.699951171875, - 620.3001708984375 - ], - "bbox": [ - 453.699951171875, - 614.0001831054688, - 536.3999633789062, - 634.400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.699951171875, - 614.0001831054688, - 536.3999633789062, - 634.400146484375 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 72.199951171875, - 627.6001586914062, - 342.8000183105469, - 648.0001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "å)5u\u001b76×57\u001bª\u0019\u001c¥/§\u001a«z5Ôy\u0019\u001c¦)«-Ê-6[¨g6[©?5m6=©¸\u0018FÊ-§\u001a¤7«¬6=§F\u001bu¤KÔõ£\u001c\u001bu¨#\u0019%5u¤", - "origin": [ - 72.199951171875, - 633.900146484375 - ], - "bbox": [ - 72.199951171875, - 627.6001586914062, - 253.09996032714844, - 648.0001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "7T", - "origin": [ - 253.09996032714844, - 633.900146484375 - ], - "bbox": [ - 253.09996032714844, - 627.900146484375, - 259.9999694824219, - 647.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y³\u001e´oµÍ¶", - "origin": [ - 259.9999694824219, - 633.900146484375 - ], - "bbox": [ - 259.9999694824219, - 627.6001586914062, - 287.0, - 648.0001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "#[", - "origin": [ - 287.0, - 633.900146484375 - ], - "bbox": [ - 287.0, - 627.900146484375, - 293.70001220703125, - 647.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "aËi£9¤�5u¤u¦)\u001bu«¬\u0018F5", - "origin": [ - 293.70001220703125, - 633.900146484375 - ], - "bbox": [ - 293.70001220703125, - 627.6001586914062, - 338.3000183105469, - 648.0001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 338.3000183105469, - 633.900146484375 - ], - "bbox": [ - 338.3000183105469, - 627.900146484375, - 342.8000183105469, - 647.1001586914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 627.6001586914062, - 342.8000183105469, - 648.0001220703125 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 354.89996337890625, - 627.6001586914062, - 360.4999694824219, - 648.0001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "<", - "origin": [ - 354.89996337890625, - 633.900146484375 - ], - "bbox": [ - 354.89996337890625, - 627.900146484375, - 354.89996337890625, - 647.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aÓ", - "origin": [ - 354.89996337890625, - 633.900146484375 - ], - "bbox": [ - 354.89996337890625, - 627.6001586914062, - 360.4999694824219, - 648.0001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.89996337890625, - 627.6001586914062, - 360.4999694824219, - 648.0001220703125 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 367.39996337890625, - 625.5001831054688, - 371.199951171875, - 644.7001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "d\u001bd", - "origin": [ - 367.39996337890625, - 631.5001831054688 - ], - "bbox": [ - 367.39996337890625, - 625.5001831054688, - 371.199951171875, - 644.7001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.39996337890625, - 625.5001831054688, - 371.199951171875, - 644.7001953125 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 375.39996337890625, - 627.6001586914062, - 535.7999267578125, - 648.0001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "[I�", - "origin": [ - 375.39996337890625, - 633.900146484375 - ], - "bbox": [ - 375.39996337890625, - 627.900146484375, - 380.199951171875, - 647.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "i´", - "origin": [ - 380.199951171875, - 633.900146484375 - ], - "bbox": [ - 380.199951171875, - 627.6001586914062, - 386.699951171875, - 648.0001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰ˆ\u001aX", - "origin": [ - 386.699951171875, - 633.900146484375 - ], - "bbox": [ - 386.699951171875, - 627.900146484375, - 400.4999694824219, - 647.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 4Ó~6[ÊY\u0019b\u0018w6[\u001bu¨g6)5¥F6שK¯", - "origin": [ - 400.4999694824219, - 633.900146484375 - ], - "bbox": [ - 400.4999694824219, - 627.6001586914062, - 482.69989013671875, - 648.0001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 375.39996337890625, - 627.6001586914062, - 482.69989013671875, - 648.0001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "È=¦[\u001b7«-\u001b76~²9§m¯", - "origin": [ - 484.89996337890625, - 633.900146484375 - ], - "bbox": [ - 484.89996337890625, - 627.6001586914062, - 522.5999145507812, - 648.0001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 484.89996337890625, - 627.6001586914062, - 522.5999145507812, - 648.0001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©\u001a6", - "origin": [ - 524.699951171875, - 633.900146484375 - ], - "bbox": [ - 524.699951171875, - 627.6001586914062, - 535.7999267578125, - 648.0001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 524.699951171875, - 627.6001586914062, - 535.7999267578125, - 648.0001220703125 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 72.29995727539062, - 641.3001708984375, - 538.199951171875, - 661.7001342773438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤76[§FÊ-6MÔõ£9«-¤Rʬ6^¥/£/¦)§F¨g6[©?5V6)5\u001e©\u001a6¸\u0018\u001a\u00199¤\u001e\u0019aÆ9£\u001c«-\u001bbßcÊ-6¸\u001bu6)57£9§\u001a¦ªþF6=\u001bR¤�§\u001a«¬Æ%\u00194©?5Vʬ6¸Ôõ£\u001c\u001bu¨g\u001945\u001e¥/Èe¤�«-\u001b7È", - "origin": [ - 72.29995727539062, - 647.6001586914062 - ], - "bbox": [ - 72.29995727539062, - 641.3001708984375, - 402.9999694824219, - 661.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015T", - "origin": [ - 402.9999694824219, - 647.6001586914062 - ], - "bbox": [ - 402.9999694824219, - 641.6001586914062, - 411.6999816894531, - 660.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ\u0018\u001a\u0019\u001cÇ\u001c6MÏÙ6[Ð", - "origin": [ - 411.6999816894531, - 647.6001586914062 - ], - "bbox": [ - 411.6999816894531, - 641.3001708984375, - 452.0999755859375, - 661.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 452.0999755859375, - 647.6001586914062 - ], - "bbox": [ - 452.0999755859375, - 641.6001586914062, - 458.1999816894531, - 660.8001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";¥/£/¦[§F¨g6[©?5\u001e\u0018\u001a\u0019\u001c\u0018F«-6[\u001b", - "origin": [ - 458.1999816894531, - 647.6001586914062 - ], - "bbox": [ - 458.1999816894531, - 641.3001708984375, - 533.5999755859375, - 661.7001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 533.5999755859375, - 647.6001586914062 - ], - "bbox": [ - 533.5999755859375, - 641.6001586914062, - 538.199951171875, - 660.8001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29995727539062, - 641.3001708984375, - 538.199951171875, - 661.7001342773438 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 72.19995880126953, - 654.9002075195312, - 227.5999298095703, - 675.3001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-6=¦15u§F\u001bu6H¤7§F\u001bo£9\u001bu¥/«-©\u001a\u00194576[§\u001a\u001bb¥/6H\u0018�£/¦ªþF6", - "origin": [ - 72.19995880126953, - 661.2001953125 - ], - "bbox": [ - 72.19995880126953, - 654.9002075195312, - 204.2999267578125, - 675.3001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 204.2999267578125, - 661.2001953125 - ], - "bbox": [ - 204.2999267578125, - 655.2001953125, - 209.39993286132812, - 674.4002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K ¬ - ", - "origin": [ - 209.39993286132812, - 661.2001953125 - ], - "bbox": [ - 209.39993286132812, - 654.9002075195312, - 220.99993896484375, - 675.3001708984375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹X", - "origin": [ - 220.99993896484375, - 661.2001953125 - ], - "bbox": [ - 220.99993896484375, - 655.2001953125, - 223.39993286132812, - 674.4002075195312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 223.39993286132812, - 661.2001953125 - ], - "bbox": [ - 223.39993286132812, - 654.9002075195312, - 227.5999298095703, - 675.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19995880126953, - 654.9002075195312, - 227.5999298095703, - 675.3001708984375 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 72.49996185302734, - 673.7001953125, - 536.2999267578125, - 694.1001586914062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6[\u0018w6[©�¥F\u00194©?5", - "origin": [ - 72.49996185302734, - 680.0001831054688 - ], - "bbox": [ - 72.49996185302734, - 673.7001953125, - 115.29996490478516, - 694.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 115.29996490478516, - 680.0001831054688 - ], - "bbox": [ - 115.29996490478516, - 674.0001831054688, - 119.79996490478516, - 693.2001953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�\u00194§", - "origin": [ - 119.79996490478516, - 680.0001831054688 - ], - "bbox": [ - 119.79996490478516, - 673.7001953125, - 130.39996337890625, - 694.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015�", - "origin": [ - 130.39996337890625, - 680.0001831054688 - ], - "bbox": [ - 130.39996337890625, - 674.0001831054688, - 139.09996032714844, - 693.2001953125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aÊm¥/§‰576=¨^\u0018�¤", - "origin": [ - 139.09996032714844, - 680.0001831054688 - ], - "bbox": [ - 139.09996032714844, - 673.7001953125, - 187.29994201660156, - 694.1001586914062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[f", - "origin": [ - 339.4000244140625, - 207.60003662109375 - ], - "bbox": [ - 339.4000244140625, - 201.60003662109375, - 344.3000183105469, - 220.80003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#¦ªþ\u001a6[\u001b", - "origin": [ - 344.3000183105469, - 207.60003662109375 - ], - "bbox": [ - 344.3000183105469, - 201.30003356933594, - 366.8000183105469, - 221.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 339.4000244140625, - 201.30003356933594, - 366.8000183105469, - 221.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6à\u0018�\u00194Ç\u001c6", - "origin": [ - 377.0000305175781, - 207.60003662109375 - ], - "bbox": [ - 377.0000305175781, - 201.30003356933594, - 414.4000244140625, - 221.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 414.4000244140625, - 207.60003662109375 - ], - "bbox": [ - 414.4000244140625, - 201.60003662109375, - 419.5000305175781, - 220.80003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#6[©�5u\u0019\u001c\u0018\u001a\u00194©?5", - "origin": [ - 419.5000305175781, - 207.60003662109375 - ], - "bbox": [ - 419.5000305175781, - 201.30003356933594, - 468.8000183105469, - 221.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.0000305175781, - 201.30003356933594, - 468.8000183105469, - 221.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7£\u001c©æ\u0019\u001c¥/\u001bu6=¤u¤76", - "origin": [ - 479.2000427246094, - 207.60003662109375 - ], - "bbox": [ - 479.2000427246094, - 201.30003356933594, - 526.800048828125, - 221.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 479.2000427246094, - 201.30003356933594, - 526.800048828125, - 221.70004272460938 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 97.10006713867188, - 215.0000457763672, - 323.2000732421875, - 235.40005493164062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\nŸ\nŸH´^µ€£\n£I¶\n¶\n¶1·¸¶\"¹&·\u001bºŠ»\n¼\"£", - "origin": [ - 97.10006713867188, - 221.300048828125 - ], - "bbox": [ - 97.10006713867188, - 215.300048828125, - 192.10009765625, - 234.5000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 192.10009765625, - 221.300048828125 - ], - "bbox": [ - 192.10009765625, - 215.0000457763672, - 197.10009765625, - 235.40005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½g£I½", - "origin": [ - 197.10009765625, - 221.300048828125 - ], - "bbox": [ - 197.10009765625, - 215.300048828125, - 212.80010986328125, - 234.5000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 212.80010986328125, - 221.300048828125 - ], - "bbox": [ - 212.80010986328125, - 215.0000457763672, - 218.10011291503906, - 235.40005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n¾�¿\\¡\nŸ|À�ÁFÂ/Ã/£ŠÄ|ÅgºIÆ/Ÿ7·¸¡\nŸIÀ.Á", - "origin": [ - 218.10011291503906, - 221.300048828125 - ], - "bbox": [ - 218.10011291503906, - 215.300048828125, - 317.8000793457031, - 234.5000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ ", - "origin": [ - 317.8000793457031, - 221.300048828125 - ], - "bbox": [ - 317.8000793457031, - 215.0000457763672, - 323.2000732421875, - 235.40005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.10006713867188, - 215.0000457763672, - 323.2000732421875, - 235.40005493164062 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 84.50006866455078, - 232.1000213623047, - 282.4000549316406, - 252.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "AF ", - "origin": [ - 84.50006866455078, - 238.4000244140625 - ], - "bbox": [ - 84.50006866455078, - 232.1000213623047, - 90.00006866455078, - 252.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰Ç", - "origin": [ - 90.00006866455078, - 238.4000244140625 - ], - "bbox": [ - 90.00006866455078, - 232.4000244140625, - 97.20006561279297, - 251.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.50006866455078, - 232.1000213623047, - 97.20006561279297, - 252.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£457\u001bu6H©\u001a\u0019aÆ\n«¬Ç?\u0019%5u6[§F\u001b 6=¤u¤7\u0019aø96V¥F6M¦)£\u001c©?5ª\u0019\u001c¦15u6[\u001b", - "origin": [ - 103.8000717163086, - 238.4000244140625 - ], - "bbox": [ - 103.8000717163086, - 232.1000213623047, - 252.90005493164062, - 252.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 252.90005493164062, - 238.4000244140625 - ], - "bbox": [ - 252.90005493164062, - 232.4000244140625, - 257.50006103515625, - 251.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nÆ?«Y\u0019^Êô¯", - "origin": [ - 257.50006103515625, - 238.4000244140625 - ], - "bbox": [ - 257.50006103515625, - 232.1000213623047, - 282.4000549316406, - 252.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.8000717163086, - 232.1000213623047, - 282.4000549316406, - 252.50003051757812 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 288.2000732421875, - 232.1000213623047, - 474.1999816894531, - 252.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©?576=\u001b7©F6[5", - "origin": [ - 288.2000732421875, - 238.4000244140625 - ], - "bbox": [ - 288.2000732421875, - 232.1000213623047, - 315.6000671386719, - 252.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 315.6000671386719, - 238.4000244140625 - ], - "bbox": [ - 315.6000671386719, - 232.4000244140625, - 320.1000671386719, - 251.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "FÊ", - "origin": [ - 320.1000671386719, - 238.4000244140625 - ], - "bbox": [ - 320.1000671386719, - 232.1000213623047, - 325.6000671386719, - 252.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.2000732421875, - 232.1000213623047, - 325.6000671386719, - 252.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c\u001bª¥/«¬©�\u0019%576=§F\u001bs©F£\u001c¨g¨gÈg8", - "origin": [ - 331.2000732421875, - 238.4000244140625 - ], - "bbox": [ - 331.2000732421875, - 232.1000213623047, - 415.300048828125, - 252.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¶\n¶\n¶…·¸¶g¹&·\u001bºF»\n¼", - "origin": [ - 415.300048828125, - 238.4000244140625 - ], - "bbox": [ - 415.300048828125, - 232.4000244140625, - 468.29998779296875, - 251.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ ", - "origin": [ - 468.29998779296875, - 238.4000244140625 - ], - "bbox": [ - 468.29998779296875, - 232.1000213623047, - 474.1999816894531, - 252.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.2000732421875, - 232.1000213623047, - 474.1999816894531, - 252.50003051757812 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 84.40007019042969, - 249.1000213623047, - 537.0000610351562, - 269.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "G\u001a ", - "origin": [ - 84.40007019042969, - 255.4000244140625 - ], - "bbox": [ - 84.40007019042969, - 249.1000213623047, - 90.00006866455078, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�<", - "origin": [ - 90.00006866455078, - 255.4000244140625 - ], - "bbox": [ - 90.00006866455078, - 249.4000244140625, - 97.40007019042969, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n§F\u001b", - "origin": [ - 97.40007019042969, - 255.4000244140625 - ], - "bbox": [ - 97.40007019042969, - 249.1000213623047, - 108.2000732421875, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "…¶\n¶H¶1·¸¶g¹&·;ºŠ»\n¼\u0011[", - "origin": [ - 108.2000732421875, - 255.4000244140625 - ], - "bbox": [ - 108.2000732421875, - 249.4000244140625, - 168.70008850097656, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%§F©Éʬ£9Ç\u001c«Y¦)«-6[Ê+Æ\u001c6=«¬Ê-ʬ6", - "origin": [ - 168.70008850097656, - 255.4000244140625 - ], - "bbox": [ - 168.70008850097656, - 249.1000213623047, - 238.60008239746094, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 238.60008239746094, - 255.4000244140625 - ], - "bbox": [ - 238.60008239746094, - 249.4000244140625, - 243.70008850097656, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/¦4¯", - "origin": [ - 243.70008850097656, - 255.4000244140625 - ], - "bbox": [ - 243.70008850097656, - 249.1000213623047, - 254.0000762939453, - 269.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.40007019042969, - 249.1000213623047, - 254.0000762939453, - 269.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5 §F©", - "origin": [ - 256.2000732421875, - 255.4000244140625 - ], - "bbox": [ - 256.2000732421875, - 249.1000213623047, - 277.00006103515625, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Èu", - "origin": [ - 277.00006103515625, - 255.4000244140625 - ], - "bbox": [ - 277.00006103515625, - 249.4000244140625, - 286.300048828125, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[').", - "origin": [ - 286.300048828125, - 255.4000244140625 - ], - "bbox": [ - 286.300048828125, - 249.1000213623047, - 295.0000305175781, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xÉ", - "origin": [ - 295.0000305175781, - 255.4000244140625 - ], - "bbox": [ - 295.0000305175781, - 249.4000244140625, - 299.2000427246094, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%'[&/.", - "origin": [ - 299.2000427246094, - 255.4000244140625 - ], - "bbox": [ - 299.2000427246094, - 249.1000213623047, - 313.8000183105469, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017j", - "origin": [ - 313.8000183105469, - 255.4000244140625 - ], - "bbox": [ - 313.8000183105469, - 249.4000244140625, - 322.6000061035156, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "g'", - "origin": [ - 322.6000061035156, - 255.4000244140625 - ], - "bbox": [ - 322.6000061035156, - 249.1000213623047, - 330.8999938964844, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\s", - "origin": [ - 330.8999938964844, - 255.4000244140625 - ], - "bbox": [ - 330.8999938964844, - 249.4000244140625, - 335.3999938964844, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c F3\u001eá=¤s²?§K¯", - "origin": [ - 335.3999938964844, - 255.4000244140625 - ], - "bbox": [ - 335.3999938964844, - 249.1000213623047, - 376.3000183105469, - 269.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 256.2000732421875, - 249.1000213623047, - 376.3000183105469, - 269.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-Ê;\u001bu6[\u0018wá[\u001bu6\u001eÊY\u0019!¥F6[¨#\u00194©\u001a¥F6V¥/6HÆ9£457\u001bu6R©�\u0019aÆ?«-Ç9\u00194°", - "origin": [ - 378.40008544921875, - 255.4000244140625 - ], - "bbox": [ - 378.40008544921875, - 249.1000213623047, - 537.0000610351562, - 269.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 378.40008544921875, - 249.1000213623047, - 537.0000610351562, - 269.5000305175781 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 97.10006713867188, - 262.800048828125, - 538.0000610351562, - 283.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "576[§\u001a\u001b", - "origin": [ - 97.10006713867188, - 269.10003662109375 - ], - "bbox": [ - 97.10006713867188, - 262.800048828125, - 111.00006866455078, - 283.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 111.00006866455078, - 269.10003662109375 - ], - "bbox": [ - 111.00006866455078, - 263.10003662109375, - 115.50006866455078, - 282.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n«-Ê;6[©\nÆ\u001c£9«w§\u001a©F6B¦)£\u001c©", - "origin": [ - 115.50006866455078, - 269.10003662109375 - ], - "bbox": [ - 115.50006866455078, - 262.800048828125, - 183.4001007080078, - 283.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"�", - "origin": [ - 183.4001007080078, - 269.10003662109375 - ], - "bbox": [ - 183.4001007080078, - 263.10003662109375, - 188.9001007080078, - 282.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a\u001b7¨#\u0019457«-£\u001c©\u000f²?§F«;\u0018F\u001buÈ=¦[«-¤76H²9§m¯", - "origin": [ - 188.9001007080078, - 269.10003662109375 - ], - "bbox": [ - 188.9001007080078, - 262.800048828125, - 292.8000793457031, - 283.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.10006713867188, - 262.800048828125, - 292.8000793457031, - 283.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-Ê;6=¤�5 Ð\u001a«¬6=©‰Æ\n«-Æa\u0019\u001c©?5s6[5b²9§m¯", - "origin": [ - 294.90008544921875, - 269.10003662109375 - ], - "bbox": [ - 294.90008544921875, - 262.800048828125, - 393.60009765625, - 283.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 294.90008544921875, - 262.800048828125, - 393.60009765625, - 283.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-Ê;6=¤�5 \u0018\u001a\u001b7å[5o߸57\u001bª\u00194«¬576=\u001bs§F©F6B¥/6[¨#\u0019\u001c©\u001a¥/6\u001c ", - "origin": [ - 395.7000732421875, - 269.10003662109375 - ], - "bbox": [ - 395.7000732421875, - 262.800048828125, - 538.0000610351562, - 283.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.7000732421875, - 262.800048828125, - 538.0000610351562, - 283.2000427246094 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 84.30007934570312, - 279.800048828125, - 460.3000793457031, - 300.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò� ", - "origin": [ - 84.30007934570312, - 286.10003662109375 - ], - "bbox": [ - 84.30007934570312, - 279.800048828125, - 90.00007629394531, - 300.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰Ç", - "origin": [ - 90.00007629394531, - 286.10003662109375 - ], - "bbox": [ - 90.00007629394531, - 280.10003662109375, - 97.2000732421875, - 299.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.30007934570312, - 279.800048828125, - 97.2000732421875, - 300.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£457\u001bu6H©\u001a\u0019aÆ\n«¬Ç?\u0019%5u6[§F\u001b 6[©\nÆ\u001c£9«¬6H§F©\u001a6H¥F6[¨#\u00194©\u001a¥F6B\u0018�£9§F\u001boʬ6", - "origin": [ - 103.80007934570312, - 286.10003662109375 - ], - "bbox": [ - 103.80007934570312, - 279.800048828125, - 290.80010986328125, - 300.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 290.80010986328125, - 286.10003662109375 - ], - "bbox": [ - 290.80010986328125, - 280.10003662109375, - 298.5001220703125, - 299.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001b", - "origin": [ - 298.5001220703125, - 286.10003662109375 - ], - "bbox": [ - 298.5001220703125, - 279.800048828125, - 321.1001281738281, - 300.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £", - "origin": [ - 321.1001281738281, - 286.10003662109375 - ], - "bbox": [ - 321.1001281738281, - 280.10003662109375, - 328.6001281738281, - 299.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 328.6001281738281, - 286.10003662109375 - ], - "bbox": [ - 328.6001281738281, - 279.800048828125, - 333.6001281738281, - 300.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½g£F½", - "origin": [ - 333.6001281738281, - 286.10003662109375 - ], - "bbox": [ - 333.6001281738281, - 280.10003662109375, - 349.400146484375, - 299.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 349.400146484375, - 286.10003662109375 - ], - "bbox": [ - 349.400146484375, - 279.800048828125, - 354.70013427734375, - 300.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¾f¿c¡/Ÿ|À.Á|Â\"Ã/£ŠÄ|Å\"ºFÆ/Ÿ&·¸¡\nŸIÀ\u0011Á", - "origin": [ - 354.70013427734375, - 286.10003662109375 - ], - "bbox": [ - 354.70013427734375, - 280.10003662109375, - 454.7000732421875, - 299.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a ", - "origin": [ - 454.7000732421875, - 286.10003662109375 - ], - "bbox": [ - 454.7000732421875, - 279.800048828125, - 460.3000793457031, - 300.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.80007934570312, - 279.800048828125, - 460.3000793457031, - 300.2000427246094 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 84.50007629394531, - 296.9000244140625, - 361.2001037597656, - 317.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "DF b¶K6B¤�6=\u001b7Æ96[§F\u001bsÏÙ6[Ѕ6[©\nÆ9£\u001c«-6\u001eÊ-6", - "origin": [ - 84.50007629394531, - 303.20001220703125 - ], - "bbox": [ - 84.50007629394531, - 296.9000244140625, - 201.10008239746094, - 317.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 201.10008239746094, - 303.20001220703125 - ], - "bbox": [ - 201.10008239746094, - 297.20001220703125, - 208.80007934570312, - 316.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001bb¥/6=¨#\u00194©\u001a¥/ÈBß^Æ\u001c£\u001c57\u001bu6H©\u001a\u0019aÆ\n«¬Ç?\u0019%576=§F\u001be ", - "origin": [ - 208.80007934570312, - 303.20001220703125 - ], - "bbox": [ - 208.80007934570312, - 296.9000244140625, - 361.2001037597656, - 317.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.50007629394531, - 296.9000244140625, - 361.2001037597656, - 317.3000183105469 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 84.40007781982422, - 313.9000244140625, - 536.2000732421875, - 334.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "î\u001a bÅb©F6…Ôõ£9«-¤c¦[6", - "origin": [ - 84.40007781982422, - 320.20001220703125 - ], - "bbox": [ - 84.40007781982422, - 313.9000244140625, - 142.9000701904297, - 334.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~�", - "origin": [ - 142.9000701904297, - 320.20001220703125 - ], - "bbox": [ - 142.9000701904297, - 314.20001220703125, - 151.80006408691406, - 333.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001b#\u001bu6", - "origin": [ - 151.80006408691406, - 320.20001220703125 - ], - "bbox": [ - 151.80006408691406, - 313.9000244140625, - 186.70005798339844, - 334.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\³", - "origin": [ - 186.70005798339844, - 320.20001220703125 - ], - "bbox": [ - 186.70005798339844, - 314.20001220703125, - 191.20005798339844, - 333.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[§", - "origin": [ - 191.20005798339844, - 320.20001220703125 - ], - "bbox": [ - 191.20005798339844, - 313.9000244140625, - 195.6000518798828, - 334.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 195.6000518798828, - 320.20001220703125 - ], - "bbox": [ - 195.6000518798828, - 314.20001220703125, - 201.70005798339844, - 333.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",Æ\u001c£\u001c57\u001bu6…©\u001a\u0019aÆ\n«¬Ç?\u0019%576=§F\u001bg§/57«-Ê-«-¤76Ýʬ6Ý\u0018\u001a\u001b7£9Ç\u001c\u001bª\u00194¨g¨g6ɳ\u001e´oµÍ¶", - "origin": [ - 201.70005798339844, - 320.20001220703125 - ], - "bbox": [ - 201.70005798339844, - 313.9000244140625, - 405.7999572753906, - 334.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.40007781982422, - 313.9000244140625, - 405.7999572753906, - 334.3000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/§", - "origin": [ - 416.7001037597656, - 320.20001220703125 - ], - "bbox": [ - 416.7001037597656, - 313.9000244140625, - 422.10009765625, - 334.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "U�", - "origin": [ - 422.10009765625, - 320.20001220703125 - ], - "bbox": [ - 422.10009765625, - 314.20001220703125, - 432.10009765625, - 333.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001b", - "origin": [ - 432.10009765625, - 320.20001220703125 - ], - "bbox": [ - 432.10009765625, - 313.9000244140625, - 454.60009765625, - 334.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017Ä|ÅgºFÆ/Ÿ…·y¡/Ÿ|À.Á", - "origin": [ - 454.60009765625, - 320.20001220703125 - ], - "bbox": [ - 454.60009765625, - 314.20001220703125, - 511.00006103515625, - 333.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…\u0018w£\u001c§F\u001b", - "origin": [ - 511.00006103515625, - 320.20001220703125 - ], - "bbox": [ - 511.00006103515625, - 313.9000244140625, - 536.2000732421875, - 334.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 416.7001037597656, - 313.9000244140625, - 536.2000732421875, - 334.3000183105469 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 97.30010986328125, - 327.60003662109375, - 197.40011596679688, - 348.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)£\u001c©�¤\\5u\u001b7§F«-\u001bu6\u001eÊ-6B¥/£/¦)§F¨g6[©?5e ", - "origin": [ - 97.30010986328125, - 333.9000244140625 - ], - "bbox": [ - 97.30010986328125, - 327.60003662109375, - 197.40011596679688, - 348.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.30010986328125, - 327.60003662109375, - 197.40011596679688, - 348.0000305175781 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 84.60011291503906, - 344.60003662109375, - 327.1001281738281, - 365.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "C/ b¶K6H©\u001a\u0019aÆ\n«¬Ç?\u0019%5u6[§F\u001bsÏÙ6[ÐÝ\u0019", - "origin": [ - 84.60011291503906, - 350.9000244140625 - ], - "bbox": [ - 84.60011291503906, - 344.60003662109375, - 183.20010375976562, - 365.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 183.20010375976562, - 350.9000244140625 - ], - "bbox": [ - 183.20010375976562, - 344.9000244140625, - 188.00010681152344, - 364.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6HÊ-6V\u001buÈ=¤7§Fʬ5u\u001945o¤7§F\u001boÆ9£457\u001bu6HÈ=¦[\u001bu\u0019\u001c©K ", - "origin": [ - 188.00010681152344, - 350.9000244140625 - ], - "bbox": [ - 188.00010681152344, - 344.60003662109375, - 327.1001281738281, - 365.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.60011291503906, - 344.60003662109375, - 327.1001281738281, - 365.0000305175781 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 72.50011444091797, - 376.5000305175781, - 257.7001037597656, - 395.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "?1\u0019\r?", - "origin": [ - 72.50011444091797, - 382.5000305175781 - ], - "bbox": [ - 72.50011444091797, - 376.5000305175781, - 82.90011596679688, - 395.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50011444091797, - 376.5000305175781, - 82.90011596679688, - 395.7000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC),34!\u001a-/)62�\u001fU'�)0\u001f\")E5�'�2^LNMPORQ", - "origin": [ - 103.00011444091797, - 382.5000305175781 - ], - "bbox": [ - 103.00011444091797, - 376.5000305175781, - 257.7001037597656, - 395.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00011444091797, - 376.5000305175781, - 257.7001037597656, - 395.7000427246094 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 75.80010986328125, - 404.7000427246094, - 538.0001831054688, - 425.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊK6e¤\\5b«-¨g\u0018�£9\u001b�5ª\u00194©?5b¥/6M¦)£9¨^\u0018\u001a\u001b76=©\u001a¥/\u001bu6H²?§F6B¦ªþ\u001a\u00199²?§F6H©\u001a\u0019aÆ\n«¬Ç?\u0019%576=§F\u001bs\u0018�£?¤7¤7á=¥F6H¤u\u0019^\u0018F\u001bu£\u001c\u0018F\u001bu6H«¬©?576=\u001b7\u0018\u001a\u001b7È[5u\u0019%5u«¬£9©É¥F§ÉÊY\u00194©\u001aÇ9\u00194Ç96V³\u001e´oµÍ¶, ", - "origin": [ - 75.80010986328125, - 411.0000305175781 - ], - "bbox": [ - 75.80010986328125, - 404.7000427246094, - 538.0001831054688, - 425.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.80010986328125, - 404.7000427246094, - 538.0001831054688, - 425.10003662109375 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 72.30010986328125, - 418.4000549316406, - 536.9000244140625, - 438.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m\u0019\u000e57\u001bª\u00194©�¤\\Ôõ£9\u001b7¨#\u0019%5u«¬£9©¿¥/§Ì¥/£/¦)§F¨g6[©?5c³R´oµ\u000e¶", - "origin": [ - 72.30010986328125, - 424.7000427246094 - ], - "bbox": [ - 72.30010986328125, - 418.4000549316406, - 243.10006713867188, - 438.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30010986328125, - 418.4000549316406, - 243.10006713867188, - 438.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=©", - "origin": [ - 253.50010681152344, - 424.7000427246094 - ], - "bbox": [ - 253.50010681152344, - 418.4000549316406, - 258.0001220703125, - 438.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.50010681152344, - 418.4000549316406, - 258.0001220703125, - 438.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊY\u0019\u000e\u0018�\u00194Ç\u001c6ɲ?§F6…Æ\u001c£\u001c§�¤¸Æ9£%ø\u001c6", - "origin": [ - 267.9001159667969, - 424.7000427246094 - ], - "bbox": [ - 267.9001159667969, - 418.4000549316406, - 362.6001281738281, - 438.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v‡", - "origin": [ - 362.6001281738281, - 424.7000427246094 - ], - "bbox": [ - 362.6001281738281, - 418.7000427246094, - 367.0001220703125, - 437.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰¤�§F\u001bgÆ9£457\u001bu6\u000fÈe¦)\u001bª\u00194©", - "origin": [ - 367.0001220703125, - 424.7000427246094 - ], - "bbox": [ - 367.0001220703125, - 418.4000549316406, - 437.7001037597656, - 438.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.9001159667969, - 418.4000549316406, - 437.7001037597656, - 438.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5^Ê-6ÉÔy\u00194«¬5g¥;¯", - "origin": [ - 447.60009765625, - 424.7000427246094 - ], - "bbox": [ - 447.60009765625, - 418.4000549316406, - 500.8000793457031, - 438.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 447.60009765625, - 418.4000549316406, - 500.8000793457031, - 438.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©Ì¤�£9§\u001a¤�°", - "origin": [ - 503.0000915527344, - 424.7000427246094 - ], - "bbox": [ - 503.0000915527344, - 418.4000549316406, - 536.9000244140625, - 438.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 503.0000915527344, - 418.4000549316406, - 536.9000244140625, - 438.800048828125 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 72.2000732421875, - 432.1000671386719, - 536.300048828125, - 452.50006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018F\u001bu£\u001cÇ9\u001bu\u0019\u001c¨^¨g6#\u00194\u0018\u001a\u0018�6=ʬÈÝ\u001f", - "origin": [ - 72.2000732421875, - 438.4000549316406 - ], - "bbox": [ - 72.2000732421875, - 432.1000671386719, - 158.10008239746094, - 452.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÊlIw", - "origin": [ - 158.10008239746094, - 438.4000549316406 - ], - "bbox": [ - 158.10008239746094, - 432.4000549316406, - 171.30007934570312, - 451.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±')&/.", - "origin": [ - 171.30007934570312, - 438.4000549316406 - ], - "bbox": [ - 171.30007934570312, - 432.1000671386719, - 184.60008239746094, - 452.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "en", - "origin": [ - 184.60008239746094, - 438.4000549316406 - ], - "bbox": [ - 184.60008239746094, - 432.4000549316406, - 193.20008850097656, - 451.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9'‰.7')$", - "origin": [ - 193.20008850097656, - 438.4000549316406 - ], - "bbox": [ - 193.20008850097656, - 432.1000671386719, - 215.20008850097656, - 452.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011n", - "origin": [ - 215.20008850097656, - 438.4000549316406 - ], - "bbox": [ - 215.20008850097656, - 432.4000549316406, - 221.10008239746094, - 451.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%&", - "origin": [ - 221.10008239746094, - 438.4000549316406 - ], - "bbox": [ - 221.10008239746094, - 432.1000671386719, - 225.90008544921875, - 452.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "²‘\u0017’.„\u0015†", - "origin": [ - 225.90008544921875, - 438.4000549316406 - ], - "bbox": [ - 225.90008544921875, - 432.4000549316406, - 258.60009765625, - 451.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "̲?§F«~6=¤�5M\u0018F\u001bu£\u001c\u0018F\u001bu6c\u00194§‚©\u001a\u0019aÆ\n«-Ç9\u0019%5u6[§F\u001be Ó~þ\u001a\u00199²9§\u001a6#¨^£\u001c576=§F\u001bMÈ)5ª\u00194©?5", - "origin": [ - 258.60009765625, - 438.4000549316406 - ], - "bbox": [ - 258.60009765625, - 432.1000671386719, - 492.7000732421875, - 452.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 492.7000732421875, - 438.4000549316406 - ], - "bbox": [ - 492.7000732421875, - 432.4000549316406, - 497.2000732421875, - 451.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤�6=ʬ£9©ÙÊ-6=¤", - "origin": [ - 497.2000732421875, - 438.4000549316406 - ], - "bbox": [ - 497.2000732421875, - 432.1000671386719, - 536.300048828125, - 452.50006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.2000732421875, - 432.1000671386719, - 536.300048828125, - 452.50006103515625 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.3000717163086, - 445.7000732421875, - 536.4999389648438, - 466.1000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦[\u00199¤", - "origin": [ - 72.3000717163086, - 452.00006103515625 - ], - "bbox": [ - 72.3000717163086, - 445.7000732421875, - 81.8000717163086, - 466.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 81.8000717163086, - 452.00006103515625 - ], - "bbox": [ - 81.8000717163086, - 446.00006103515625, - 86.2000732421875, - 465.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/\u0018\u001aʬ§\u001a¤b£\u001c§É¨^£9«¬©�¤oß", - "origin": [ - 86.2000732421875, - 452.00006103515625 - ], - "bbox": [ - 86.2000732421875, - 445.7000732421875, - 155.5000762939453, - 466.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Ë", - "origin": [ - 155.5000762939453, - 452.00006103515625 - ], - "bbox": [ - 155.5000762939453, - 446.00006103515625, - 162.9000701904297, - 465.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\£9§F\u001bR¤7§F\u001boÊ-6=¤s©F£9\u001b7¨g6=¤o¥F§ÉÏÕG\nÓ", - "origin": [ - 162.9000701904297, - 452.00006103515625 - ], - "bbox": [ - 162.9000701904297, - 445.7000732421875, - 280.0000305175781, - 466.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " [", - "origin": [ - 280.0000305175781, - 452.00006103515625 - ], - "bbox": [ - 280.0000305175781, - 446.00006103515625, - 287.5000305175781, - 465.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/£\u001c§…\u0018FÊ-§\u001a¤s£\u001c§…¨g£\u001c«-©\u001a¤sÐw£\u001cÇ9§FÈ\u001c /Ë", - "origin": [ - 287.5000305175781, - 452.00006103515625 - ], - "bbox": [ - 287.5000305175781, - 445.7000732421875, - 402.29998779296875, - 466.1000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.3000717163086, - 445.7000732421875, - 402.29998779296875, - 466.1000671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ/6[¨g\u0018FÊ-6", - "origin": [ - 408.90008544921875, - 452.00006103515625 - ], - "bbox": [ - 408.90008544921875, - 445.7000732421875, - 451.800048828125, - 466.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 451.800048828125, - 452.00006103515625 - ], - "bbox": [ - 451.800048828125, - 446.00006103515625, - 456.800048828125, - 465.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F«-Ê;6)ÿ/«Y¤\\5u6M¥/6=¤s\u0018\u001a\u0019\u001cÇ\u001c6e¤", - "origin": [ - 456.800048828125, - 452.00006103515625 - ], - "bbox": [ - 456.800048828125, - 445.7000732421875, - 536.4999389648438, - 466.1000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 408.90008544921875, - 445.7000732421875, - 536.4999389648438, - 466.1000671386719 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 72.30007934570312, - 459.3000793457031, - 451.90008544921875, - 479.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "²?§F«K©F6B¥/£9©F©F6=\u001b7£9©95o\u0018\u001a\u00199¤sÊ-\u0019^¨gå[¨g6M¦ªþF£?¤�6H¤76[Ê-£\u001c©…²9§\u001a6BÆ\u001c£\u001c§�¤~ÊY\u0019g\u001bu6[Ç9\u0019\u001c\u001bu¥F6[\u001bu6", - "origin": [ - 72.30007934570312, - 465.6000671386719 - ], - "bbox": [ - 72.30007934570312, - 459.3000793457031, - 347.40008544921875, - 479.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v‡", - "origin": [ - 347.40008544921875, - 465.6000671386719 - ], - "bbox": [ - 347.40008544921875, - 459.6000671386719, - 351.8000793457031, - 478.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R\u0019aÆ96=¦", - "origin": [ - 351.8000793457031, - 465.6000671386719 - ], - "bbox": [ - 351.8000793457031, - 459.3000793457031, - 373.5000915527344, - 479.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�`", - "origin": [ - 373.5000915527344, - 465.6000671386719 - ], - "bbox": [ - 373.5000915527344, - 459.6000671386719, - 381.2001037597656, - 478.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b6[5u¤u¦[\u00194\u0018w6H£\u001c§…\u0019aÆ\u001c6e¦", - "origin": [ - 381.2001037597656, - 465.6000671386719 - ], - "bbox": [ - 381.2001037597656, - 459.3000793457031, - 451.90008544921875, - 479.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30007934570312, - 459.3000793457031, - 451.90008544921875, - 479.7000732421875 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 462.90008544921875, - 459.3000793457031, - 535.9000854492188, - 479.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©?576=\u001b7©\u001a6)5", - "origin": [ - 462.90008544921875, - 465.6000671386719 - ], - "bbox": [ - 462.90008544921875, - 459.3000793457031, - 490.3000793457031, - 479.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*_", - "origin": [ - 490.3000793457031, - 465.6000671386719 - ], - "bbox": [ - 490.3000793457031, - 459.6000671386719, - 497.6000671386719, - 478.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 462.90008544921875, - 459.3000793457031, - 497.6000671386719, - 479.7000732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÿ/\u0018FÊ-£\u001c\u001bu6[\u001be ", - "origin": [ - 504.2000732421875, - 465.6000671386719 - ], - "bbox": [ - 504.2000732421875, - 459.3000793457031, - 535.9000854492188, - 479.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 504.2000732421875, - 459.3000793457031, - 535.9000854492188, - 479.7000732421875 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 72.50006103515625, - 491.3000793457031, - 198.40008544921875, - 510.5000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "?1\u0019\rÌ", - "origin": [ - 72.50006103515625, - 497.3000793457031 - ], - "bbox": [ - 72.50006103515625, - 491.3000793457031, - 82.90006256103516, - 510.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50006103515625, - 491.3000793457031, - 82.90006256103516, - 510.5000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A%H)=\u001f/¬&)E2*\u001fg%•ÍÎ)=Ï", - "origin": [ - 103.00006103515625, - 497.3000793457031 - ], - "bbox": [ - 103.00006103515625, - 491.3000793457031, - 198.40008544921875, - 510.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00006103515625, - 491.3000793457031, - 198.40008544921875, - 510.5000915527344 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 72.30006408691406, - 519.5000610351562, - 445.0000305175781, - 539.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Åb©…¤76[\u001buÆ\u001c6[§\u001a\u001b~ÏÙ6[ÐÉ6=¤�5 Ê-6Hʬ£9Ç\u001c«Y¦)«-6[Ê+²?§F«;\u0018�6=\u001b7¨g6[5o\u0019\u001c§/ÿc§/5u«¬Ê-«-¤u\u0019%5u6[§F\u001bª¤s¥/6H¦)£\u001c©�¤�§Fʬ576=\u001bo¥/6=¤ \u0018\u001a\u0019\u001cÇ\u001c6=¤ ÏÙ6[ÐK ", - "origin": [ - 72.30006408691406, - 525.800048828125 - ], - "bbox": [ - 72.30006408691406, - 519.5000610351562, - 445.0000305175781, - 539.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30006408691406, - 519.5000610351562, - 445.0000305175781, - 539.9000244140625 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 454.0000915527344, - 519.5000610351562, - 534.9000244140625, - 539.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê;6=©\u000f6[ÿ\n«Y¤�576V§F©‰Ç9\u001bu\u0019\u001c©\u001a¥", - "origin": [ - 454.0000915527344, - 525.800048828125 - ], - "bbox": [ - 454.0000915527344, - 519.5000610351562, - 534.9000244140625, - 539.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.0000915527344, - 519.5000610351562, - 534.9000244140625, - 539.9000244140625 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 72.2000732421875, - 533.10009765625, - 536.4000244140625, - 553.5000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©F£9¨¸ÐF\u001bu6\u001c bÓ~6[\u0018w6[©\u001a¥\u001a\u00194©?5", - "origin": [ - 72.2000732421875, - 539.4000854492188 - ], - "bbox": [ - 72.2000732421875, - 533.10009765625, - 155.4000701904297, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 155.4000701904297, - 539.4000854492188 - ], - "bbox": [ - 155.4000701904297, - 533.4000854492188, - 159.9000701904297, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "sÊ-6=¤‰\u0018Fʬ§�¤É¦[£\u001c©F©\n§\u001a¤É¤7£\u001c©?5", - "origin": [ - 159.9000701904297, - 539.4000854492188 - ], - "bbox": [ - 159.9000701904297, - 533.10009765625, - 254.4000701904297, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÑЅÒ", - "origin": [ - 254.4000701904297, - 539.4000854492188 - ], - "bbox": [ - 254.4000701904297, - 533.4000854492188, - 270.40008544921875, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\"", - "origin": [ - 270.40008544921875, - 539.4000854492188 - ], - "bbox": [ - 270.40008544921875, - 533.10009765625, - 275.90008544921875, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÓWÔ", - "origin": [ - 275.90008544921875, - 539.4000854492188 - ], - "bbox": [ - 275.90008544921875, - 533.4000854492188, - 285.0000915527344, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a'", - "origin": [ - 285.0000915527344, - 539.4000854492188 - ], - "bbox": [ - 285.0000915527344, - 533.10009765625, - 290.60009765625, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÕT", - "origin": [ - 290.60009765625, - 539.4000854492188 - ], - "bbox": [ - 290.60009765625, - 533.4000854492188, - 300.10009765625, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õÊ-£\u001cÇ\u001c«Y¦)«-6[ÊVÊ-«¬ÐF\u001bu6", - "origin": [ - 300.10009765625, - 539.4000854492188 - ], - "bbox": [ - 300.10009765625, - 533.10009765625, - 353.00006103515625, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX�[*Ö\u001bÖׂKT", - "origin": [ - 353.00006103515625, - 539.4000854492188 - ], - "bbox": [ - 353.00006103515625, - 533.4000854492188, - 387.800048828125, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yµÝ«Y¦)\u001bu£9¤7£4Ô{5", - "origin": [ - 387.800048828125, - 539.4000854492188 - ], - "bbox": [ - 387.800048828125, - 533.10009765625, - 428.10003662109375, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xX", - "origin": [ - 428.10003662109375, - 539.4000854492188 - ], - "bbox": [ - 428.10003662109375, - 533.4000854492188, - 432.300048828125, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c6[5", - "origin": [ - 432.300048828125, - 539.4000854492188 - ], - "bbox": [ - 432.300048828125, - 533.10009765625, - 445.2000427246094, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÑØ", - "origin": [ - 445.2000427246094, - 539.4000854492188 - ], - "bbox": [ - 445.2000427246094, - 533.4000854492188, - 454.2000427246094, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!'", - "origin": [ - 454.2000427246094, - 539.4000854492188 - ], - "bbox": [ - 454.2000427246094, - 533.10009765625, - 462.300048828125, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�w\ruvÓ", - "origin": [ - 462.300048828125, - 539.4000854492188 - ], - "bbox": [ - 462.300048828125, - 533.4000854492188, - 474.3000183105469, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ª\"", - "origin": [ - 474.3000183105469, - 539.4000854492188 - ], - "bbox": [ - 474.3000183105469, - 533.10009765625, - 478.4000244140625, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WÒ", - "origin": [ - 478.4000244140625, - 539.4000854492188 - ], - "bbox": [ - 478.4000244140625, - 533.4000854492188, - 482.4000244140625, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a'", - "origin": [ - 482.4000244140625, - 539.4000854492188 - ], - "bbox": [ - 482.4000244140625, - 533.10009765625, - 488.0000305175781, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Ù", - "origin": [ - 488.0000305175781, - 539.4000854492188 - ], - "bbox": [ - 488.0000305175781, - 533.4000854492188, - 492.3000183105469, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô\u001d $", - "origin": [ - 492.3000183105469, - 539.4000854492188 - ], - "bbox": [ - 492.3000183105469, - 533.10009765625, - 502.6000061035156, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fw", - "origin": [ - 502.6000061035156, - 539.4000854492188 - ], - "bbox": [ - 502.6000061035156, - 533.4000854492188, - 508.3000183105469, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô.u'", - "origin": [ - 508.3000183105469, - 539.4000854492188 - ], - "bbox": [ - 508.3000183105469, - 533.10009765625, - 515.5999755859375, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¸Ò", - "origin": [ - 515.5999755859375, - 539.4000854492188 - ], - "bbox": [ - 515.5999755859375, - 533.4000854492188, - 519.0999755859375, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+.", - "origin": [ - 519.0999755859375, - 539.4000854492188 - ], - "bbox": [ - 519.0999755859375, - 533.10009765625, - 525.0, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xpÚu", - "origin": [ - 525.0, - 539.4000854492188 - ], - "bbox": [ - 525.0, - 533.4000854492188, - 532.1000366210938, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ")'", - "origin": [ - 532.1000366210938, - 539.4000854492188 - ], - "bbox": [ - 532.1000366210938, - 533.10009765625, - 536.4000244140625, - 553.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.2000732421875, - 533.10009765625, - 536.4000244140625, - 553.5000610351562 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 72.90007019042969, - 546.7001342773438, - 265.40008544921875, - 567.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Tq`", - "origin": [ - 72.90007019042969, - 553.0001220703125 - ], - "bbox": [ - 72.90007019042969, - 547.0001220703125, - 76.10006713867188, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R6)5ª¤7¦=\u00194\u0018w6", - "origin": [ - 76.10006713867188, - 553.0001220703125 - ], - "bbox": [ - 76.10006713867188, - 546.7001342773438, - 111.00007629394531, - 567.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 111.00007629394531, - 553.0001220703125 - ], - "bbox": [ - 111.00007629394531, - 547.0001220703125, - 115.6000747680664, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 �¶K6B¤�6=\u001b7Æ96[§F\u001b ÏÙ6[Ѕʬ6B\u0018\u001aʬ§\u001a¤s§F57«-ʬ«Y¤�ÈH6e¤\\5", - "origin": [ - 115.6000747680664, - 553.0001220703125 - ], - "bbox": [ - 115.6000747680664, - 546.7001342773438, - 265.40008544921875, - 567.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.90007019042969, - 546.7001342773438, - 265.40008544921875, - 567.10009765625 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 280.2000732421875, - 546.7001342773438, - 538.7999877929688, - 567.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001c¦ªþF6", - "origin": [ - 280.2000732421875, - 553.0001220703125 - ], - "bbox": [ - 280.2000732421875, - 546.7001342773438, - 300.40008544921875, - 567.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÊT", - "origin": [ - 300.40008544921875, - 553.0001220703125 - ], - "bbox": [ - 300.40008544921875, - 547.0001220703125, - 308.8000793457031, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô¦1Ô", - "origin": [ - 308.8000793457031, - 553.0001220703125 - ], - "bbox": [ - 308.8000793457031, - 546.7001342773438, - 316.3000793457031, - 567.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0013Ø", - "origin": [ - 316.3000793457031, - 553.0001220703125 - ], - "bbox": [ - 316.3000793457031, - 547.0001220703125, - 322.8000793457031, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!'", - "origin": [ - 322.8000793457031, - 553.0001220703125 - ], - "bbox": [ - 322.8000793457031, - 546.7001342773438, - 330.90008544921875, - 567.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�wÛÓ", - "origin": [ - 330.90008544921875, - 553.0001220703125 - ], - "bbox": [ - 330.90008544921875, - 547.0001220703125, - 338.8000793457031, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[.7\"", - "origin": [ - 338.8000793457031, - 553.0001220703125 - ], - "bbox": [ - 338.8000793457031, - 546.7001342773438, - 347.1000671386719, - 567.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ";Ü×w9Ý|¡/Ÿ\nŸH´…µ€£\n£|¶\n¶H¶1·¸ÞgߊŸg I»/ĊàHŸ7·× IºYÀ\u0011£/áYÆ\n»\nâ\nߊãg£ŠäHX", - "origin": [ - 347.1000671386719, - 553.0001220703125 - ], - "bbox": [ - 347.1000671386719, - 547.0001220703125, - 534.5, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 534.5, - 553.0001220703125 - ], - "bbox": [ - 534.5, - 546.7001342773438, - 538.7999877929688, - 567.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.2000732421875, - 546.7001342773438, - 538.7999877929688, - 567.10009765625 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 72.30006408691406, - 565.5000610351562, - 536.4999389648438, - 585.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6^¤�6=\u001b7Æ\n«Y¦)6M¥/6!Ð\u001a\u0019\u001c¤76¸¥;¯", - "origin": [ - 72.30006408691406, - 571.800048828125 - ], - "bbox": [ - 72.30006408691406, - 565.5000610351562, - 161.20008850097656, - 585.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30006408691406, - 565.5000610351562, - 161.20008850097656, - 585.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©\u000e¤76[\u001buÆ\u001c6=§F\u001bbÏÙ6[ÐÍ6e¤\\5H¥;¯", - "origin": [ - 163.40005493164062, - 571.800048828125 - ], - "bbox": [ - 163.40005493164062, - 565.5000610351562, - 257.60003662109375, - 585.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.40005493164062, - 565.5000610351562, - 257.60003662109375, - 585.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[©\nÆ\u001c£%ø96[\u001boÊ-6=¤", - "origin": [ - 259.800048828125, - 571.800048828125 - ], - "bbox": [ - 259.800048828125, - 565.5000610351562, - 303.3000183105469, - 585.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰�", - "origin": [ - 303.3000183105469, - 571.800048828125 - ], - "bbox": [ - 303.3000183105469, - 565.800048828125, - 310.5000305175781, - 585.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001bu¤\u001e²?§F«¥FÈ=¦)\u001bu«-Æ\u001c6[©?5R¥/6e¤R\u0018�\u00194Ç\u001c6e¤oÏÙ6[Ð�\u0019\u001c§/ÿ…§/57«-ʬ«Y¤u\u0019%576=§F\u001bª¤", - "origin": [ - 310.5000305175781, - 571.800048828125 - ], - "bbox": [ - 310.5000305175781, - 565.5000610351562, - 536.4999389648438, - 585.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 259.800048828125, - 565.5000610351562, - 536.4999389648438, - 585.9000244140625 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 72.300048828125, - 579.10009765625, - 166.40003967285156, - 599.5000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "²?§F«K6=©\u000fÔõ£9©95bÊY\u0019^\u001b76e²?§Få)5u6\u001c ", - "origin": [ - 72.300048828125, - 585.4000854492188 - ], - "bbox": [ - 72.300048828125, - 579.10009765625, - 166.40003967285156, - 599.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.300048828125, - 579.10009765625, - 166.40003967285156, - 599.5000610351562 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 72.300048828125, - 597.9000854492188, - 239.20004272460938, - 618.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "µÍ\u0019\u001c«-¤s«-ÊK\u0018w6[§/5oÔy\u0019\u001c«¬\u001bu6HÐF«¬6=©…¨^«-6[§Fÿɲ?§F6B¦)6=Ê-\u0019", - "origin": [ - 72.300048828125, - 604.2000732421875 - ], - "bbox": [ - 72.300048828125, - 597.9000854492188, - 232.0000457763672, - 618.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰å", - "origin": [ - 232.0000457763672, - 604.2000732421875 - ], - "bbox": [ - 232.0000457763672, - 598.2000732421875, - 239.20004272460938, - 617.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.300048828125, - 597.9000854492188, - 239.20004272460938, - 618.300048828125 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 72.300048828125, - 616.7001342773438, - 416.6000671386719, - 637.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶,¯", - "origin": [ - 72.300048828125, - 623.0001220703125 - ], - "bbox": [ - 72.300048828125, - 616.7001342773438, - 79.00004577636719, - 637.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.300048828125, - 616.7001342773438, - 79.00004577636719, - 637.10009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6)ÿ/6=¨^\u0018\u001aʬ6,Ê-6,\u0018FÊ-§\u001a¤", - "origin": [ - 81.2000503540039, - 623.0001220703125 - ], - "bbox": [ - 81.2000503540039, - 616.7001342773438, - 142.00006103515625, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=Œ", - "origin": [ - 142.00006103515625, - 623.0001220703125 - ], - "bbox": [ - 142.00006103515625, - 617.0001220703125, - 148.10006713867188, - 636.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�\u00194Ç9\u001bu\u0019\u001c©95m¤7£\u001c©?5mÊ-6=¤K¨^£\u001c576=§F\u001bu¤¥/6,\u001bu6=¦ªþF6=\u001bu¦ªþ\u001a6=¤;¦)£9©\u001a¤7§FÊz5ª\u00194ÐFÊ-6=¤m¤�§F\u001bÊ¬6×Ï�6=Ð", - "origin": [ - 148.10006713867188, - 623.0001220703125 - ], - "bbox": [ - 148.10006713867188, - 616.7001342773438, - 408.00006103515625, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "eT", - "origin": [ - 408.00006103515625, - 623.0001220703125 - ], - "bbox": [ - 408.00006103515625, - 617.0001220703125, - 416.6000671386719, - 636.2001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.2000503540039, - 616.7001342773438, - 416.6000671386719, - 637.10009765625 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 423.300048828125, - 616.7001342773438, - 455.60003662109375, - 637.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©/Ôõ£?¤�6=6", - "origin": [ - 423.300048828125, - 623.0001220703125 - ], - "bbox": [ - 423.300048828125, - 616.7001342773438, - 445.300048828125, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "vV\u0011[", - "origin": [ - 445.300048828125, - 623.0001220703125 - ], - "bbox": [ - 445.300048828125, - 617.0001220703125, - 455.60003662109375, - 636.2001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.300048828125, - 616.7001342773438, - 455.60003662109375, - 637.10009765625 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 467.5000305175781, - 616.7001342773438, - 538.199951171875, - 637.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Êz5ª\u0019", - "origin": [ - 467.5000305175781, - 623.0001220703125 - ], - "bbox": [ - 467.5000305175781, - 616.7001342773438, - 474.2000427246094, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Ç", - "origin": [ - 474.2000427246094, - 623.0001220703125 - ], - "bbox": [ - 474.2000427246094, - 617.0001220703125, - 479.10003662109375, - 636.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e«-¤�5u\u0019", - "origin": [ - 479.10003662109375, - 623.0001220703125 - ], - "bbox": [ - 479.10003662109375, - 616.7001342773438, - 497.20001220703125, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g[cb", - "origin": [ - 497.20001220703125, - 623.0001220703125 - ], - "bbox": [ - 497.20001220703125, - 617.0001220703125, - 507.4000244140625, - 636.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V£\n£\u001cÇ9ʬ6", - "origin": [ - 507.4000244140625, - 623.0001220703125 - ], - "bbox": [ - 507.4000244140625, - 616.7001342773438, - 533.0999755859375, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 533.0999755859375, - 623.0001220703125 - ], - "bbox": [ - 533.0999755859375, - 617.0001220703125, - 538.199951171875, - 636.2001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 467.5000305175781, - 616.7001342773438, - 538.199951171875, - 637.10009765625 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 72.80001831054688, - 630.3001098632812, - 84.90001678466797, - 650.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " - ¬ ", - "origin": [ - 72.80001831054688, - 636.60009765625 - ], - "bbox": [ - 72.80001831054688, - 630.3001098632812, - 78.30001831054688, - 650.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹X", - "origin": [ - 78.30001831054688, - 636.60009765625 - ], - "bbox": [ - 78.30001831054688, - 630.60009765625, - 80.70001983642578, - 649.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 80.70001983642578, - 636.60009765625 - ], - "bbox": [ - 80.70001983642578, - 630.3001098632812, - 84.90001678466797, - 650.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.80001831054688, - 630.3001098632812, - 84.90001678466797, - 650.7000732421875 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 94.30001831054688, - 630.3001098632812, - 390.60003662109375, - 650.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʐ6e¤\\5H\u00194Ð\u001a¤7£\u001cÊ-§F¨g6[©?5R«-¨g\u0018�£?¤7¤7«-ÐFʬ6!¥/6!¤�57£/¦", - "origin": [ - 94.30001831054688, - 636.60009765625 - ], - "bbox": [ - 94.30001831054688, - 630.3001098632812, - 245.09999084472656, - 650.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×V", - "origin": [ - 245.09999084472656, - 636.60009765625 - ], - "bbox": [ - 245.09999084472656, - 630.60009765625, - 249.1999969482422, - 649.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c6=\u001b", - "origin": [ - 249.1999969482422, - 636.60009765625 - ], - "bbox": [ - 249.1999969482422, - 630.3001098632812, - 258.70001220703125, - 650.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 258.70001220703125, - 636.60009765625 - ], - "bbox": [ - 258.70001220703125, - 630.60009765625, - 263.20001220703125, - 649.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¤�£9§\u001a¤oÔõ£9\u001b7¨g6¸¥/6!\u0018\u001a\u00194Ç96=¤\u001e³R´oµÍ¶", - "origin": [ - 263.20001220703125, - 636.60009765625 - ], - "bbox": [ - 263.20001220703125, - 630.3001098632812, - 383.800048828125, - 650.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&[", - "origin": [ - 383.800048828125, - 636.60009765625 - ], - "bbox": [ - 383.800048828125, - 630.60009765625, - 390.60003662109375, - 649.8001098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 94.30001831054688, - 630.3001098632812, - 390.60003662109375, - 650.7000732421875 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 396.3000183105469, - 628.3001098632812, - 422.70001220703125, - 648.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "—e™�›—=¾\nØ", - "origin": [ - 396.3000183105469, - 634.60009765625 - ], - "bbox": [ - 396.3000183105469, - 628.3001098632812, - 422.70001220703125, - 648.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.3000183105469, - 628.3001098632812, - 422.70001220703125, - 648.7000732421875 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 430.6000061035156, - 630.3001098632812, - 536.2999877929688, - 650.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-6=¤R\u001b76e²?§Få)5u6=¤b\u0018w£9¤u¤7«¬ÐFÊ-6=¤\u001e¥/6=¤", - "origin": [ - 430.6000061035156, - 636.60009765625 - ], - "bbox": [ - 430.6000061035156, - 630.3001098632812, - 536.2999877929688, - 650.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.6000061035156, - 630.3001098632812, - 536.2999877929688, - 650.7000732421875 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 72.20001220703125, - 644.0001220703125, - 121.20001983642578, - 664.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§/5u«¬Ê-«-¤u\u0019%5u6[§F\u001bª¤= ", - "origin": [ - 72.20001220703125, - 650.3001098632812 - ], - "bbox": [ - 72.20001220703125, - 644.0001220703125, - 121.20001983642578, - 664.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 644.0001220703125, - 121.20001983642578, - 664.4000854492188 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 72.20001220703125, - 662.7001342773438, - 535.7999877929688, - 683.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "_", - "origin": [ - 72.20001220703125, - 669.0001220703125 - ], - "bbox": [ - 72.20001220703125, - 663.0001220703125, - 72.20001220703125, - 682.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",©òÔy\u0019\u001c«z5", - "origin": [ - 72.20001220703125, - 669.0001220703125 - ], - "bbox": [ - 72.20001220703125, - 662.7001342773438, - 99.30000305175781, - 683.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 99.30000305175781, - 669.0001220703125 - ], - "bbox": [ - 99.30000305175781, - 663.0001220703125, - 103.9000015258789, - 682.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "m§F©ò\u0018w6)5u«z5^\u0018F\u001bu£\u001cÇ\u001c\u001bª\u00194¨g¨g6gÆ%\u0019ݤ�6=\u001b7Æ\n«-\u001b¸¥;¯", - "origin": [ - 103.9000015258789, - 669.0001220703125 - ], - "bbox": [ - 103.9000015258789, - 662.7001342773438, - 251.6000213623047, - 683.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 662.7001342773438, - 251.6000213623047, - 683.10009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬©?576=\u001b�Ôy\u00199¦)6#6=©95u\u001b76\u000fÊô¯", - "origin": [ - 253.80001831054688, - 669.0001220703125 - ], - "bbox": [ - 253.80001831054688, - 662.7001342773438, - 324.3000183105469, - 683.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.80001831054688, - 662.7001342773438, - 324.3000183105469, - 683.10009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§/57«-Ê-«-¤u\u0019%5u6[§F\u001bM6[5¸§F©¿Ê-£\u001cÇ9«-¦[«¬6=Ê×¥/6cÐ�\u0019\u001c¤76c¥/6\u000f¥/£9©F©FÈ[6e¤[ iÓ~6", - "origin": [ - 326.5000305175781, - 669.0001220703125 - ], - "bbox": [ - 326.5000305175781, - 662.7001342773438, - 535.7999877929688, - 683.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.5000305175781, - 662.7001342773438, - 535.7999877929688, - 683.10009765625 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 72.20002746582031, - 676.4000854492188, - 536.5000610351562, - 696.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018F\u001bu£\u001cÇ9\u001bu\u0019\u001c¨^¨g6\u001eÆa\u0019¸57\u001bª\u0019\u001c¥F§F«¬\u001bu6VÆ\u001c£45u\u001b76\u001e\u001b76e²?§Få)5u6\u001e\u0018w£\u001c§F\u001bo«-©?576=\u001b7\u001bu£\u001cÇ96[\u001b×ÊY\u0019!Ð\u001a\u0019\u001c¤76V¥F6H¥F£\u001c©F©FÈ=6H6)5s«¬©\u001a¤7È[\u001bu6[\u001bsÊ-6=¤ \u001buÈ=¤7§FÊz5ª\u0019%5ª¤~£9Ð/576=©\n§\u001a¤o¥F\u00194©�¤", - "origin": [ - 72.20002746582031, - 682.7000732421875 - ], - "bbox": [ - 72.20002746582031, - 676.4000854492188, - 536.5000610351562, - 696.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20002746582031, - 676.4000854492188, - 536.5000610351562, - 696.800048828125 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 72.20002746582031, - 690.0001220703125, - 535.800048828125, - 710.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©‚¤7²?§F6=ʬ6[5�5u6!\u0018F\u001buÈ=¥FÈ", - "origin": [ - 72.20002746582031, - 696.3001098632812 - ], - "bbox": [ - 72.20002746582031, - 690.0001220703125, - 148.80003356933594, - 710.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 148.80003356933594, - 696.3001098632812 - ], - "bbox": [ - 148.80003356933594, - 690.3001098632812, - 153.10003662109375, - 709.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«Y¤H¥/6^\u0018\u001a\u00194Ç96!ÏÙ6[ÐK K¶m6=¤V\u0018\u001a\u0019\u001cÇ\u001c6=¤V¤7£\u001c©?5V¥/£9©\u001a¦^¦)£\u001c©�¤\\5u\u001b7§F«¬576e¤", - "origin": [ - 153.10003662109375, - 696.3001098632812 - ], - "bbox": [ - 153.10003662109375, - 690.0001220703125, - 373.40008544921875, - 710.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Êæ", - "origin": [ - 373.40008544921875, - 696.3001098632812 - ], - "bbox": [ - 373.40008544921875, - 690.3001098632812, - 381.8000793457031, - 709.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…(¬\"", - "origin": [ - 381.8000793457031, - 696.3001098632812 - ], - "bbox": [ - 381.8000793457031, - 690.0001220703125, - 393.40008544921875, - 710.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017ÉIl", - "origin": [ - 393.40008544921875, - 696.3001098632812 - ], - "bbox": [ - 393.40008544921875, - 690.3001098632812, - 407.00006103515625, - 709.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%(", - "origin": [ - 407.00006103515625, - 696.3001098632812 - ], - "bbox": [ - 407.00006103515625, - 690.0001220703125, - 411.800048828125, - 710.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "hç", - "origin": [ - 411.800048828125, - 696.3001098632812 - ], - "bbox": [ - 411.800048828125, - 690.3001098632812, - 414.50006103515625, - 709.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ª'#6[5B©F£\u001c©�\u0018\u001a\u0019\u001c¤V¤\\5u£/¦", - "origin": [ - 414.50006103515625, - 696.3001098632812 - ], - "bbox": [ - 414.50006103515625, - 690.0001220703125, - 490.300048828125, - 710.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×V", - "origin": [ - 490.300048828125, - 696.3001098632812 - ], - "bbox": [ - 490.300048828125, - 690.3001098632812, - 494.4000549316406, - 709.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cÈ[6e¤\u001e¤7§F\u001bHÊ-6", - "origin": [ - 494.4000549316406, - 696.3001098632812 - ], - "bbox": [ - 494.4000549316406, - 690.0001220703125, - 535.800048828125, - 710.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20002746582031, - 690.0001220703125, - 535.800048828125, - 710.4000854492188 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 72.3000259399414, - 703.7001342773438, - 104.10002899169922, - 724.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤76[\u001buÆ\u001c6[§\u001a\u001b= ", - "origin": [ - 72.3000259399414, - 710.0001220703125 - ], - "bbox": [ - 72.3000259399414, - 703.7001342773438, - 104.10002899169922, - 724.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.3000259399414, - 703.7001342773438, - 104.10002899169922, - 724.10009765625 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 35.29997634887695, - 595.0, - 101.0999984741211 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 72.20002746582031, - 116.10002136230469, - 323.60003662109375, - 197.90005493164062 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 334.5000305175781, - 116.10002136230469, - 476.59991455078125, - 197.90005493164062 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 201.30003356933594, - 595.0, - 724.10009765625 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.5, - 35.29997634887695, - 194.3000030517578, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ÿ", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 72.5, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=�", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¹º¸™w¼¿¼¿¾\n–+—¸À9Á�¼½Á/˜%œe¾RÃ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 194.3000030517578, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 194.3000030517578, - 55.699974060058594 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.50003051757812, - 80.69999694824219, - 500.6000671386719, - 101.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6M¥/£/¦)§\u001a¨^6=©?5 5u\u001bu\u0019\u001c«z5u6B¥/§", - "origin": [ - 72.50003051757812, - 87.0 - ], - "bbox": [ - 72.50003051757812, - 80.69999694824219, - 165.70004272460938, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“‘\u0015’=„\u0015†•”�–˜—F™", - "origin": [ - 165.70004272460938, - 87.0 - ], - "bbox": [ - 165.70004272460938, - 81.0, - 221.800048828125, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "% ", - "origin": [ - 221.800048828125, - 87.0 - ], - "bbox": [ - 221.800048828125, - 80.69999694824219, - 226.6000518798828, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ".š", - "origin": [ - 226.6000518798828, - 87.0 - ], - "bbox": [ - 226.6000518798828, - 81.0, - 232.6000518798828, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©‰©\u001a£4576=\u001bu\u0019^Ê-6=¤s6[ÿ\n\u0018\u001a\u001b76e¤7¤7«¬£9©\u001a¤s³R´oµÍ¶Ì8;ç", - "origin": [ - 232.6000518798828, - 87.0 - ], - "bbox": [ - 232.6000518798828, - 80.69999694824219, - 386.2000732421875, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 386.2000732421875, - 87.0 - ], - "bbox": [ - 386.2000732421875, - 81.0, - 393.3000793457031, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fêwé", - "origin": [ - 393.3000793457031, - 87.0 - ], - "bbox": [ - 393.3000793457031, - 80.69999694824219, - 404.6000671386719, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Yœ\n", - "origin": [ - 404.6000671386719, - 87.0 - ], - "bbox": [ - 404.6000671386719, - 81.0, - 414.6000671386719, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wì", - "origin": [ - 414.6000671386719, - 87.0 - ], - "bbox": [ - 414.6000671386719, - 80.69999694824219, - 420.4000549316406, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰\u0011žYŸ� Y¡m¢", - "origin": [ - 420.4000549316406, - 87.0 - ], - "bbox": [ - 420.4000549316406, - 81.0, - 456.90008544921875, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1ç", - "origin": [ - 456.90008544921875, - 87.0 - ], - "bbox": [ - 456.90008544921875, - 80.69999694824219, - 461.10009765625, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £|›", - "origin": [ - 461.10009765625, - 87.0 - ], - "bbox": [ - 461.10009765625, - 81.0, - 473.5000915527344, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fêwé", - "origin": [ - 473.5000915527344, - 87.0 - ], - "bbox": [ - 473.5000915527344, - 80.69999694824219, - 484.8000793457031, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cœ\n", - "origin": [ - 484.8000793457031, - 87.0 - ], - "bbox": [ - 484.8000793457031, - 81.0, - 494.7000732421875, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 494.7000732421875, - 87.0 - ], - "bbox": [ - 494.7000732421875, - 80.69999694824219, - 500.6000671386719, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50003051757812, - 80.69999694824219, - 500.6000671386719, - 101.0999984741211 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 107.4000244140625, - 116.10002136230469, - 141.80003356933594, - 136.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0012", - "origin": [ - 107.4000244140625, - 122.4000244140625 - ], - "bbox": [ - 107.4000244140625, - 116.4000244140625, - 107.4000244140625, - 135.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!‹", - "origin": [ - 107.4000244140625, - 122.4000244140625 - ], - "bbox": [ - 107.4000244140625, - 116.10002136230469, - 115.5000228881836, - 136.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.4000244140625, - 116.10002136230469, - 115.5000228881836, - 136.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‹†", - "origin": [ - 128.7000274658203, - 122.4000244140625 - ], - "bbox": [ - 128.7000274658203, - 116.10002136230469, - 141.80003356933594, - 136.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.7000274658203, - 116.10002136230469, - 141.80003356933594, - 136.50003051757812 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 157.00003051757812, - 116.10002136230469, - 241.60003662109375, - 136.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ž", - "origin": [ - 157.00003051757812, - 122.4000244140625 - ], - "bbox": [ - 157.00003051757812, - 116.10002136230469, - 157.00003051757812, - 136.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "§¦", - "origin": [ - 157.00003051757812, - 122.4000244140625 - ], - "bbox": [ - 157.00003051757812, - 116.4000244140625, - 168.50003051757812, - 135.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " ", - "origin": [ - 168.50003051757812, - 122.4000244140625 - ], - "bbox": [ - 168.50003051757812, - 116.10002136230469, - 175.50003051757812, - 136.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.00003051757812, - 116.10002136230469, - 175.50003051757812, - 136.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‹B’", - "origin": [ - 188.80003356933594, - 122.4000244140625 - ], - "bbox": [ - 188.80003356933594, - 116.10002136230469, - 209.70004272460938, - 136.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0013\u00169¨", - "origin": [ - 209.70004272460938, - 122.4000244140625 - ], - "bbox": [ - 209.70004272460938, - 116.4000244140625, - 222.60003662109375, - 135.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ɇ", - "origin": [ - 222.60003662109375, - 122.4000244140625 - ], - "bbox": [ - 222.60003662109375, - 116.10002136230469, - 231.40003967285156, - 136.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "k©", - "origin": [ - 231.40003967285156, - 122.4000244140625 - ], - "bbox": [ - 231.40003967285156, - 116.4000244140625, - 241.60003662109375, - 135.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 188.80003356933594, - 116.10002136230469, - 241.60003662109375, - 136.50003051757812 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.50003051757812, - 149.300048828125, - 304.7000427246094, - 168.5000457763672 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "?1\u0019\u001b\u0018", - "origin": [ - 72.50003051757812, - 155.300048828125 - ], - "bbox": [ - 72.50003051757812, - 149.300048828125, - 83.40003204345703, - 168.5000457763672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50003051757812, - 149.300048828125, - 83.40003204345703, - 168.5000457763672 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ª«5�)0¬\u00138\u0013­&2*),:€'*®=)K'�2¯\u001d \u001f\"!\u001a-/!‰+\u0011!&°;)NL0MPM²±", - "origin": [ - 103.00003051757812, - 155.300048828125 - ], - "bbox": [ - 103.00003051757812, - 149.300048828125, - 304.7000427246094, - 168.5000457763672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00003051757812, - 149.300048828125, - 304.7000427246094, - 168.5000457763672 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.20002746582031, - 177.5000457763672, - 323.60003662109375, - 197.90005493164062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi£\u001c§F\u001bsÔy\u0019\u001c«¬\u001bu6B¤�«-¨g\u0018FÊ-6", - "origin": [ - 72.20002746582031, - 183.800048828125 - ], - "bbox": [ - 72.20002746582031, - 177.5000457763672, - 142.2000274658203, - 197.90005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 142.2000274658203, - 183.800048828125 - ], - "bbox": [ - 142.2000274658203, - 177.800048828125, - 147.2000274658203, - 197.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "FÊ-£\u001c\u001bª¤7²?§F6VÆ\u001c£9§\u001a¤s\u001bu6[Ç9\u0019\u001c\u001bu¥F6", - "origin": [ - 147.2000274658203, - 183.800048828125 - ], - "bbox": [ - 147.2000274658203, - 177.5000457763672, - 237.6000518798828, - 197.90005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v‡", - "origin": [ - 237.6000518798828, - 183.800048828125 - ], - "bbox": [ - 237.6000518798828, - 177.800048828125, - 242.0000457763672, - 197.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R§\u001a©F6B\u0018\u001a\u00194Ç96\u001eÏÙ6[Ðݤ7§F\u001b", - "origin": [ - 242.0000457763672, - 183.800048828125 - ], - "bbox": [ - 242.0000457763672, - 177.5000457763672, - 323.60003662109375, - 197.90005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20002746582031, - 177.5000457763672, - 323.60003662109375, - 197.90005493164062 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 334.5000305175781, - 177.5000457763672, - 476.59991455078125, - 197.90005493164062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©?576=\u001b7©\u001a6)5", - "origin": [ - 334.5000305175781, - 183.800048828125 - ], - "bbox": [ - 334.5000305175781, - 177.5000457763672, - 361.9000244140625, - 197.90005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 361.9000244140625, - 183.800048828125 - ], - "bbox": [ - 361.9000244140625, - 177.800048828125, - 366.4000244140625, - 197.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F¦[6[ÊY\u0019g¤�6H\u0018\u001a\u00199¤7¤76B¦)£\u001c¨g¨g6", - "origin": [ - 366.4000244140625, - 183.800048828125 - ], - "bbox": [ - 366.4000244140625, - 177.5000457763672, - 455.5999450683594, - 197.90005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$³", - "origin": [ - 455.5999450683594, - 183.800048828125 - ], - "bbox": [ - 455.5999450683594, - 177.800048828125, - 463.3999328613281, - 197.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[\u0019É8", - "origin": [ - 463.3999328613281, - 183.800048828125 - ], - "bbox": [ - 463.3999328613281, - 177.5000457763672, - 476.59991455078125, - 197.90005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.5000305175781, - 177.5000457763672, - 476.59991455078125, - 197.90005493164062 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 84.9000244140625, - 201.30003356933594, - 526.800048828125, - 221.70004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9 b¶K£\u001c\u001bª¤u²9§\u001a6¹Æ9£\u001c§\u001a¤", - "origin": [ - 84.9000244140625, - 207.60003662109375 - ], - "bbox": [ - 84.9000244140625, - 201.30003356933594, - 153.40003967285156, - 221.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.9000244140625, - 201.30003356933594, - 153.40003967285156, - 221.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6=¨#\u00194©\u001a¥/6", - "origin": [ - 163.60003662109375, - 207.60003662109375 - ], - "bbox": [ - 163.60003662109375, - 201.30003356933594, - 197.80001831054688, - 221.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\‡", - "origin": [ - 197.80001831054688, - 207.60003662109375 - ], - "bbox": [ - 197.80001831054688, - 201.60003662109375, - 202.30001831054688, - 220.80003356933594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.60003662109375, - 201.30003356933594, - 202.30001831054688, - 221.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ\u001c£45u\u001b76¢©\u001a\u0019aÆ\n«-Ç9\u00194576[§\u001a\u001bãÏÙ6[Ð", - "origin": [ - 224.40003967285156, - 207.60003662109375 - ], - "bbox": [ - 224.40003967285156, - 201.30003356933594, - 319.0, - 221.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.40003967285156, - 201.30003356933594, - 319.0, - 221.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥K¯", - "origin": [ - 331.10003662109375, - 207.60003662109375 - ], - "bbox": [ - 331.10003662109375, - 201.30003356933594, - 337.2000427246094, - 221.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.10003662109375, - 201.30003356933594, - 337.2000427246094, - 221.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019", - "origin": [ - 339.4000244140625, - 207.60003662109375 - ], - "bbox": [ - 339.4000244140625, - 201.30003356933594, - 339.4000244140625, - 221.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|>", - "origin": [ - 339.4000244140625, - 207.60003662109375 - ], - "bbox": [ - 339.4000244140625, - 201.60003662109375, - 344.3000183105469, - 220.80003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#¦ªþ\u001a6[\u001b", - "origin": [ - 344.3000183105469, - 207.60003662109375 - ], - "bbox": [ - 344.3000183105469, - 201.30003356933594, - 366.8000183105469, - 221.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 339.4000244140625, - 201.30003356933594, - 366.8000183105469, - 221.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6à\u0018�\u00194Ç\u001c6", - "origin": [ - 377.0000305175781, - 207.60003662109375 - ], - "bbox": [ - 377.0000305175781, - 201.30003356933594, - 414.4000244140625, - 221.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 414.4000244140625, - 207.60003662109375 - ], - "bbox": [ - 414.4000244140625, - 201.60003662109375, - 419.5000305175781, - 220.80003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#6[©�5u\u0019\u001c\u0018\u001a\u00194©?5", - "origin": [ - 419.5000305175781, - 207.60003662109375 - ], - "bbox": [ - 419.5000305175781, - 201.30003356933594, - 468.8000183105469, - 221.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.0000305175781, - 201.30003356933594, - 468.8000183105469, - 221.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7£\u001c©æ\u0019\u001c¥/\u001bu6=¤u¤76", - "origin": [ - 479.2000427246094, - 207.60003662109375 - ], - "bbox": [ - 479.2000427246094, - 201.30003356933594, - 526.800048828125, - 221.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 479.2000427246094, - 201.30003356933594, - 526.800048828125, - 221.70004272460938 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 97.10006713867188, - 215.0000457763672, - 323.2000732421875, - 235.40005493164062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\nŸ\nŸH´^µ€£\n£I¶\n¶\n¶1·¸¶\"¹&·\u001bºŠ»\n¼\"£", - "origin": [ - 97.10006713867188, - 221.300048828125 - ], - "bbox": [ - 97.10006713867188, - 215.300048828125, - 192.10009765625, - 234.5000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 192.10009765625, - 221.300048828125 - ], - "bbox": [ - 192.10009765625, - 215.0000457763672, - 197.10009765625, - 235.40005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½g£I½", - "origin": [ - 197.10009765625, - 221.300048828125 - ], - "bbox": [ - 197.10009765625, - 215.300048828125, - 212.80010986328125, - 234.5000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 212.80010986328125, - 221.300048828125 - ], - "bbox": [ - 212.80010986328125, - 215.0000457763672, - 218.10011291503906, - 235.40005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n¾�¿\\¡\nŸ|À�ÁFÂ/Ã/£ŠÄ|ÅgºIÆ/Ÿ7·¸¡\nŸIÀ.Á", - "origin": [ - 218.10011291503906, - 221.300048828125 - ], - "bbox": [ - 218.10011291503906, - 215.300048828125, - 317.8000793457031, - 234.5000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ ", - "origin": [ - 317.8000793457031, - 221.300048828125 - ], - "bbox": [ - 317.8000793457031, - 215.0000457763672, - 323.2000732421875, - 235.40005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.10006713867188, - 215.0000457763672, - 323.2000732421875, - 235.40005493164062 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 84.50006866455078, - 232.1000213623047, - 282.4000549316406, - 252.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "AF ", - "origin": [ - 84.50006866455078, - 238.4000244140625 - ], - "bbox": [ - 84.50006866455078, - 232.1000213623047, - 90.00006866455078, - 252.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰Ç", - "origin": [ - 90.00006866455078, - 238.4000244140625 - ], - "bbox": [ - 90.00006866455078, - 232.4000244140625, - 97.20006561279297, - 251.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.50006866455078, - 232.1000213623047, - 97.20006561279297, - 252.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£457\u001bu6H©\u001a\u0019aÆ\n«¬Ç?\u0019%5u6[§F\u001b 6=¤u¤7\u0019aø96V¥F6M¦)£\u001c©?5ª\u0019\u001c¦15u6[\u001b", - "origin": [ - 103.8000717163086, - 238.4000244140625 - ], - "bbox": [ - 103.8000717163086, - 232.1000213623047, - 252.90005493164062, - 252.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 252.90005493164062, - 238.4000244140625 - ], - "bbox": [ - 252.90005493164062, - 232.4000244140625, - 257.50006103515625, - 251.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nÆ?«Y\u0019^Êô¯", - "origin": [ - 257.50006103515625, - 238.4000244140625 - ], - "bbox": [ - 257.50006103515625, - 232.1000213623047, - 282.4000549316406, - 252.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.8000717163086, - 232.1000213623047, - 282.4000549316406, - 252.50003051757812 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 288.2000732421875, - 232.1000213623047, - 474.1999816894531, - 252.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©?576=\u001b7©F6[5", - "origin": [ - 288.2000732421875, - 238.4000244140625 - ], - "bbox": [ - 288.2000732421875, - 232.1000213623047, - 315.6000671386719, - 252.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 315.6000671386719, - 238.4000244140625 - ], - "bbox": [ - 315.6000671386719, - 232.4000244140625, - 320.1000671386719, - 251.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "FÊ", - "origin": [ - 320.1000671386719, - 238.4000244140625 - ], - "bbox": [ - 320.1000671386719, - 232.1000213623047, - 325.6000671386719, - 252.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.2000732421875, - 232.1000213623047, - 325.6000671386719, - 252.50003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c\u001bª¥/«¬©�\u0019%576=§F\u001bs©F£\u001c¨g¨gÈg8", - "origin": [ - 331.2000732421875, - 238.4000244140625 - ], - "bbox": [ - 331.2000732421875, - 232.1000213623047, - 415.300048828125, - 252.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¶\n¶\n¶…·¸¶g¹&·\u001bºF»\n¼", - "origin": [ - 415.300048828125, - 238.4000244140625 - ], - "bbox": [ - 415.300048828125, - 232.4000244140625, - 468.29998779296875, - 251.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ ", - "origin": [ - 468.29998779296875, - 238.4000244140625 - ], - "bbox": [ - 468.29998779296875, - 232.1000213623047, - 474.1999816894531, - 252.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.2000732421875, - 232.1000213623047, - 474.1999816894531, - 252.50003051757812 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 84.40007019042969, - 249.1000213623047, - 537.0000610351562, - 269.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "G\u001a ", - "origin": [ - 84.40007019042969, - 255.4000244140625 - ], - "bbox": [ - 84.40007019042969, - 249.1000213623047, - 90.00006866455078, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�<", - "origin": [ - 90.00006866455078, - 255.4000244140625 - ], - "bbox": [ - 90.00006866455078, - 249.4000244140625, - 97.40007019042969, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n§F\u001b", - "origin": [ - 97.40007019042969, - 255.4000244140625 - ], - "bbox": [ - 97.40007019042969, - 249.1000213623047, - 108.2000732421875, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "…¶\n¶H¶1·¸¶g¹&·;ºŠ»\n¼\u0011[", - "origin": [ - 108.2000732421875, - 255.4000244140625 - ], - "bbox": [ - 108.2000732421875, - 249.4000244140625, - 168.70008850097656, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%§F©Éʬ£9Ç\u001c«Y¦)«-6[Ê+Æ\u001c6=«¬Ê-ʬ6", - "origin": [ - 168.70008850097656, - 255.4000244140625 - ], - "bbox": [ - 168.70008850097656, - 249.1000213623047, - 238.60008239746094, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 238.60008239746094, - 255.4000244140625 - ], - "bbox": [ - 238.60008239746094, - 249.4000244140625, - 243.70008850097656, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/¦4¯", - "origin": [ - 243.70008850097656, - 255.4000244140625 - ], - "bbox": [ - 243.70008850097656, - 249.1000213623047, - 254.0000762939453, - 269.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.40007019042969, - 249.1000213623047, - 254.0000762939453, - 269.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5 §F©", - "origin": [ - 256.2000732421875, - 255.4000244140625 - ], - "bbox": [ - 256.2000732421875, - 249.1000213623047, - 277.00006103515625, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Èu", - "origin": [ - 277.00006103515625, - 255.4000244140625 - ], - "bbox": [ - 277.00006103515625, - 249.4000244140625, - 286.300048828125, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[').", - "origin": [ - 286.300048828125, - 255.4000244140625 - ], - "bbox": [ - 286.300048828125, - 249.1000213623047, - 295.0000305175781, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xÉ", - "origin": [ - 295.0000305175781, - 255.4000244140625 - ], - "bbox": [ - 295.0000305175781, - 249.4000244140625, - 299.2000427246094, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%'[&/.", - "origin": [ - 299.2000427246094, - 255.4000244140625 - ], - "bbox": [ - 299.2000427246094, - 249.1000213623047, - 313.8000183105469, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017j", - "origin": [ - 313.8000183105469, - 255.4000244140625 - ], - "bbox": [ - 313.8000183105469, - 249.4000244140625, - 322.6000061035156, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "g'", - "origin": [ - 322.6000061035156, - 255.4000244140625 - ], - "bbox": [ - 322.6000061035156, - 249.1000213623047, - 330.8999938964844, - 269.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\s", - "origin": [ - 330.8999938964844, - 255.4000244140625 - ], - "bbox": [ - 330.8999938964844, - 249.4000244140625, - 335.3999938964844, - 268.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c F3\u001eá=¤s²?§K¯", - "origin": [ - 335.3999938964844, - 255.4000244140625 - ], - "bbox": [ - 335.3999938964844, - 249.1000213623047, - 376.3000183105469, - 269.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 256.2000732421875, - 249.1000213623047, - 376.3000183105469, - 269.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-Ê;\u001bu6[\u0018wá[\u001bu6\u001eÊY\u0019!¥F6[¨#\u00194©\u001a¥F6V¥/6HÆ9£457\u001bu6R©�\u0019aÆ?«-Ç9\u00194°", - "origin": [ - 378.40008544921875, - 255.4000244140625 - ], - "bbox": [ - 378.40008544921875, - 249.1000213623047, - 537.0000610351562, - 269.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 378.40008544921875, - 249.1000213623047, - 537.0000610351562, - 269.5000305175781 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 97.10006713867188, - 262.800048828125, - 538.0000610351562, - 283.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "576[§\u001a\u001b", - "origin": [ - 97.10006713867188, - 269.10003662109375 - ], - "bbox": [ - 97.10006713867188, - 262.800048828125, - 111.00006866455078, - 283.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 111.00006866455078, - 269.10003662109375 - ], - "bbox": [ - 111.00006866455078, - 263.10003662109375, - 115.50006866455078, - 282.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n«-Ê;6[©\nÆ\u001c£9«w§\u001a©F6B¦)£\u001c©", - "origin": [ - 115.50006866455078, - 269.10003662109375 - ], - "bbox": [ - 115.50006866455078, - 262.800048828125, - 183.4001007080078, - 283.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"�", - "origin": [ - 183.4001007080078, - 269.10003662109375 - ], - "bbox": [ - 183.4001007080078, - 263.10003662109375, - 188.9001007080078, - 282.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a\u001b7¨#\u0019457«-£\u001c©\u000f²?§F«;\u0018F\u001buÈ=¦[«-¤76H²9§m¯", - "origin": [ - 188.9001007080078, - 269.10003662109375 - ], - "bbox": [ - 188.9001007080078, - 262.800048828125, - 292.8000793457031, - 283.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.10006713867188, - 262.800048828125, - 292.8000793457031, - 283.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-Ê;6=¤�5 Ð\u001a«¬6=©‰Æ\n«-Æa\u0019\u001c©?5s6[5b²9§m¯", - "origin": [ - 294.90008544921875, - 269.10003662109375 - ], - "bbox": [ - 294.90008544921875, - 262.800048828125, - 393.60009765625, - 283.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 294.90008544921875, - 262.800048828125, - 393.60009765625, - 283.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-Ê;6=¤�5 \u0018\u001a\u001b7å[5o߸57\u001bª\u00194«¬576=\u001bs§F©F6B¥/6[¨#\u0019\u001c©\u001a¥/6\u001c ", - "origin": [ - 395.7000732421875, - 269.10003662109375 - ], - "bbox": [ - 395.7000732421875, - 262.800048828125, - 538.0000610351562, - 283.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.7000732421875, - 262.800048828125, - 538.0000610351562, - 283.2000427246094 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 84.30007934570312, - 279.800048828125, - 460.3000793457031, - 300.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò� ", - "origin": [ - 84.30007934570312, - 286.10003662109375 - ], - "bbox": [ - 84.30007934570312, - 279.800048828125, - 90.00007629394531, - 300.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰Ç", - "origin": [ - 90.00007629394531, - 286.10003662109375 - ], - "bbox": [ - 90.00007629394531, - 280.10003662109375, - 97.2000732421875, - 299.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.30007934570312, - 279.800048828125, - 97.2000732421875, - 300.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£457\u001bu6H©\u001a\u0019aÆ\n«¬Ç?\u0019%5u6[§F\u001b 6[©\nÆ\u001c£9«¬6H§F©\u001a6H¥F6[¨#\u00194©\u001a¥F6B\u0018�£9§F\u001boʬ6", - "origin": [ - 103.80007934570312, - 286.10003662109375 - ], - "bbox": [ - 103.80007934570312, - 279.800048828125, - 290.80010986328125, - 300.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 290.80010986328125, - 286.10003662109375 - ], - "bbox": [ - 290.80010986328125, - 280.10003662109375, - 298.5001220703125, - 299.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001b", - "origin": [ - 298.5001220703125, - 286.10003662109375 - ], - "bbox": [ - 298.5001220703125, - 279.800048828125, - 321.1001281738281, - 300.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £", - "origin": [ - 321.1001281738281, - 286.10003662109375 - ], - "bbox": [ - 321.1001281738281, - 280.10003662109375, - 328.6001281738281, - 299.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 328.6001281738281, - 286.10003662109375 - ], - "bbox": [ - 328.6001281738281, - 279.800048828125, - 333.6001281738281, - 300.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½g£F½", - "origin": [ - 333.6001281738281, - 286.10003662109375 - ], - "bbox": [ - 333.6001281738281, - 280.10003662109375, - 349.400146484375, - 299.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 349.400146484375, - 286.10003662109375 - ], - "bbox": [ - 349.400146484375, - 279.800048828125, - 354.70013427734375, - 300.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¾f¿c¡/Ÿ|À.Á|Â\"Ã/£ŠÄ|Å\"ºFÆ/Ÿ&·¸¡\nŸIÀ\u0011Á", - "origin": [ - 354.70013427734375, - 286.10003662109375 - ], - "bbox": [ - 354.70013427734375, - 280.10003662109375, - 454.7000732421875, - 299.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a ", - "origin": [ - 454.7000732421875, - 286.10003662109375 - ], - "bbox": [ - 454.7000732421875, - 279.800048828125, - 460.3000793457031, - 300.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.80007934570312, - 279.800048828125, - 460.3000793457031, - 300.2000427246094 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 84.50007629394531, - 296.9000244140625, - 361.2001037597656, - 317.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "DF b¶K6B¤�6=\u001b7Æ96[§F\u001bsÏÙ6[Ѕ6[©\nÆ9£\u001c«-6\u001eÊ-6", - "origin": [ - 84.50007629394531, - 303.20001220703125 - ], - "bbox": [ - 84.50007629394531, - 296.9000244140625, - 201.10008239746094, - 317.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 201.10008239746094, - 303.20001220703125 - ], - "bbox": [ - 201.10008239746094, - 297.20001220703125, - 208.80007934570312, - 316.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001bb¥/6=¨#\u00194©\u001a¥/ÈBß^Æ\u001c£\u001c57\u001bu6H©\u001a\u0019aÆ\n«¬Ç?\u0019%576=§F\u001be ", - "origin": [ - 208.80007934570312, - 303.20001220703125 - ], - "bbox": [ - 208.80007934570312, - 296.9000244140625, - 361.2001037597656, - 317.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.50007629394531, - 296.9000244140625, - 361.2001037597656, - 317.3000183105469 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 84.40007781982422, - 313.9000244140625, - 536.2000732421875, - 334.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "î\u001a bÅb©F6…Ôõ£9«-¤c¦[6", - "origin": [ - 84.40007781982422, - 320.20001220703125 - ], - "bbox": [ - 84.40007781982422, - 313.9000244140625, - 142.9000701904297, - 334.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~�", - "origin": [ - 142.9000701904297, - 320.20001220703125 - ], - "bbox": [ - 142.9000701904297, - 314.20001220703125, - 151.80006408691406, - 333.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001b#\u001bu6", - "origin": [ - 151.80006408691406, - 320.20001220703125 - ], - "bbox": [ - 151.80006408691406, - 313.9000244140625, - 186.70005798339844, - 334.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\³", - "origin": [ - 186.70005798339844, - 320.20001220703125 - ], - "bbox": [ - 186.70005798339844, - 314.20001220703125, - 191.20005798339844, - 333.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[§", - "origin": [ - 191.20005798339844, - 320.20001220703125 - ], - "bbox": [ - 191.20005798339844, - 313.9000244140625, - 195.6000518798828, - 334.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 195.6000518798828, - 320.20001220703125 - ], - "bbox": [ - 195.6000518798828, - 314.20001220703125, - 201.70005798339844, - 333.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",Æ\u001c£\u001c57\u001bu6…©\u001a\u0019aÆ\n«¬Ç?\u0019%576=§F\u001bg§/57«-Ê-«-¤76Ýʬ6Ý\u0018\u001a\u001b7£9Ç\u001c\u001bª\u00194¨g¨g6ɳ\u001e´oµÍ¶", - "origin": [ - 201.70005798339844, - 320.20001220703125 - ], - "bbox": [ - 201.70005798339844, - 313.9000244140625, - 405.7999572753906, - 334.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.40007781982422, - 313.9000244140625, - 405.7999572753906, - 334.3000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/§", - "origin": [ - 416.7001037597656, - 320.20001220703125 - ], - "bbox": [ - 416.7001037597656, - 313.9000244140625, - 422.10009765625, - 334.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "U�", - "origin": [ - 422.10009765625, - 320.20001220703125 - ], - "bbox": [ - 422.10009765625, - 314.20001220703125, - 432.10009765625, - 333.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001b", - "origin": [ - 432.10009765625, - 320.20001220703125 - ], - "bbox": [ - 432.10009765625, - 313.9000244140625, - 454.60009765625, - 334.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017Ä|ÅgºFÆ/Ÿ…·y¡/Ÿ|À.Á", - "origin": [ - 454.60009765625, - 320.20001220703125 - ], - "bbox": [ - 454.60009765625, - 314.20001220703125, - 511.00006103515625, - 333.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…\u0018w£\u001c§F\u001b", - "origin": [ - 511.00006103515625, - 320.20001220703125 - ], - "bbox": [ - 511.00006103515625, - 313.9000244140625, - 536.2000732421875, - 334.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 416.7001037597656, - 313.9000244140625, - 536.2000732421875, - 334.3000183105469 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 97.30010986328125, - 327.60003662109375, - 197.40011596679688, - 348.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)£\u001c©�¤\\5u\u001b7§F«-\u001bu6\u001eÊ-6B¥/£/¦)§F¨g6[©?5e ", - "origin": [ - 97.30010986328125, - 333.9000244140625 - ], - "bbox": [ - 97.30010986328125, - 327.60003662109375, - 197.40011596679688, - 348.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.30010986328125, - 327.60003662109375, - 197.40011596679688, - 348.0000305175781 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 84.60011291503906, - 344.60003662109375, - 327.1001281738281, - 365.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "C/ b¶K6H©\u001a\u0019aÆ\n«¬Ç?\u0019%5u6[§F\u001bsÏÙ6[ÐÝ\u0019", - "origin": [ - 84.60011291503906, - 350.9000244140625 - ], - "bbox": [ - 84.60011291503906, - 344.60003662109375, - 183.20010375976562, - 365.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 183.20010375976562, - 350.9000244140625 - ], - "bbox": [ - 183.20010375976562, - 344.9000244140625, - 188.00010681152344, - 364.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6HÊ-6V\u001buÈ=¤7§Fʬ5u\u001945o¤7§F\u001boÆ9£457\u001bu6HÈ=¦[\u001bu\u0019\u001c©K ", - "origin": [ - 188.00010681152344, - 350.9000244140625 - ], - "bbox": [ - 188.00010681152344, - 344.60003662109375, - 327.1001281738281, - 365.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.60011291503906, - 344.60003662109375, - 327.1001281738281, - 365.0000305175781 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 72.50011444091797, - 376.5000305175781, - 257.7001037597656, - 395.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "?1\u0019\r?", - "origin": [ - 72.50011444091797, - 382.5000305175781 - ], - "bbox": [ - 72.50011444091797, - 376.5000305175781, - 82.90011596679688, - 395.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50011444091797, - 376.5000305175781, - 82.90011596679688, - 395.7000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC),34!\u001a-/)62�\u001fU'�)0\u001f\")E5�'�2^LNMPORQ", - "origin": [ - 103.00011444091797, - 382.5000305175781 - ], - "bbox": [ - 103.00011444091797, - 376.5000305175781, - 257.7001037597656, - 395.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00011444091797, - 376.5000305175781, - 257.7001037597656, - 395.7000427246094 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 75.80010986328125, - 404.7000427246094, - 538.0001831054688, - 425.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊK6e¤\\5b«-¨g\u0018�£9\u001b�5ª\u00194©?5b¥/6M¦)£9¨^\u0018\u001a\u001b76=©\u001a¥/\u001bu6H²?§F6B¦ªþ\u001a\u00199²?§F6H©\u001a\u0019aÆ\n«¬Ç?\u0019%576=§F\u001bs\u0018�£?¤7¤7á=¥F6H¤u\u0019^\u0018F\u001bu£\u001c\u0018F\u001bu6H«¬©?576=\u001b7\u0018\u001a\u001b7È[5u\u0019%5u«¬£9©É¥F§ÉÊY\u00194©\u001aÇ9\u00194Ç96V³\u001e´oµÍ¶, ", - "origin": [ - 75.80010986328125, - 411.0000305175781 - ], - "bbox": [ - 75.80010986328125, - 404.7000427246094, - 538.0001831054688, - 425.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.80010986328125, - 404.7000427246094, - 538.0001831054688, - 425.10003662109375 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 72.30010986328125, - 418.4000549316406, - 536.9000244140625, - 438.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m\u0019\u000e57\u001bª\u00194©�¤\\Ôõ£9\u001b7¨#\u0019%5u«¬£9©¿¥/§Ì¥/£/¦)§F¨g6[©?5c³R´oµ\u000e¶", - "origin": [ - 72.30010986328125, - 424.7000427246094 - ], - "bbox": [ - 72.30010986328125, - 418.4000549316406, - 243.10006713867188, - 438.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30010986328125, - 418.4000549316406, - 243.10006713867188, - 438.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=©", - "origin": [ - 253.50010681152344, - 424.7000427246094 - ], - "bbox": [ - 253.50010681152344, - 418.4000549316406, - 258.0001220703125, - 438.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.50010681152344, - 418.4000549316406, - 258.0001220703125, - 438.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊY\u0019\u000e\u0018�\u00194Ç\u001c6ɲ?§F6…Æ\u001c£\u001c§�¤¸Æ9£%ø\u001c6", - "origin": [ - 267.9001159667969, - 424.7000427246094 - ], - "bbox": [ - 267.9001159667969, - 418.4000549316406, - 362.6001281738281, - 438.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v‡", - "origin": [ - 362.6001281738281, - 424.7000427246094 - ], - "bbox": [ - 362.6001281738281, - 418.7000427246094, - 367.0001220703125, - 437.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰¤�§F\u001bgÆ9£457\u001bu6\u000fÈe¦)\u001bª\u00194©", - "origin": [ - 367.0001220703125, - 424.7000427246094 - ], - "bbox": [ - 367.0001220703125, - 418.4000549316406, - 437.7001037597656, - 438.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.9001159667969, - 418.4000549316406, - 437.7001037597656, - 438.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5^Ê-6ÉÔy\u00194«¬5g¥;¯", - "origin": [ - 447.60009765625, - 424.7000427246094 - ], - "bbox": [ - 447.60009765625, - 418.4000549316406, - 500.8000793457031, - 438.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 447.60009765625, - 418.4000549316406, - 500.8000793457031, - 438.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©Ì¤�£9§\u001a¤�°", - "origin": [ - 503.0000915527344, - 424.7000427246094 - ], - "bbox": [ - 503.0000915527344, - 418.4000549316406, - 536.9000244140625, - 438.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 503.0000915527344, - 418.4000549316406, - 536.9000244140625, - 438.800048828125 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 72.2000732421875, - 432.1000671386719, - 536.300048828125, - 452.50006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018F\u001bu£\u001cÇ9\u001bu\u0019\u001c¨^¨g6#\u00194\u0018\u001a\u0018�6=ʬÈÝ\u001f", - "origin": [ - 72.2000732421875, - 438.4000549316406 - ], - "bbox": [ - 72.2000732421875, - 432.1000671386719, - 158.10008239746094, - 452.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÊlIw", - "origin": [ - 158.10008239746094, - 438.4000549316406 - ], - "bbox": [ - 158.10008239746094, - 432.4000549316406, - 171.30007934570312, - 451.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±')&/.", - "origin": [ - 171.30007934570312, - 438.4000549316406 - ], - "bbox": [ - 171.30007934570312, - 432.1000671386719, - 184.60008239746094, - 452.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "en", - "origin": [ - 184.60008239746094, - 438.4000549316406 - ], - "bbox": [ - 184.60008239746094, - 432.4000549316406, - 193.20008850097656, - 451.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9'‰.7')$", - "origin": [ - 193.20008850097656, - 438.4000549316406 - ], - "bbox": [ - 193.20008850097656, - 432.1000671386719, - 215.20008850097656, - 452.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011n", - "origin": [ - 215.20008850097656, - 438.4000549316406 - ], - "bbox": [ - 215.20008850097656, - 432.4000549316406, - 221.10008239746094, - 451.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%&", - "origin": [ - 221.10008239746094, - 438.4000549316406 - ], - "bbox": [ - 221.10008239746094, - 432.1000671386719, - 225.90008544921875, - 452.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "²‘\u0017’.„\u0015†", - "origin": [ - 225.90008544921875, - 438.4000549316406 - ], - "bbox": [ - 225.90008544921875, - 432.4000549316406, - 258.60009765625, - 451.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "̲?§F«~6=¤�5M\u0018F\u001bu£\u001c\u0018F\u001bu6c\u00194§‚©\u001a\u0019aÆ\n«-Ç9\u0019%5u6[§F\u001be Ó~þ\u001a\u00199²9§\u001a6#¨^£\u001c576=§F\u001bMÈ)5ª\u00194©?5", - "origin": [ - 258.60009765625, - 438.4000549316406 - ], - "bbox": [ - 258.60009765625, - 432.1000671386719, - 492.7000732421875, - 452.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 492.7000732421875, - 438.4000549316406 - ], - "bbox": [ - 492.7000732421875, - 432.4000549316406, - 497.2000732421875, - 451.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤�6=ʬ£9©ÙÊ-6=¤", - "origin": [ - 497.2000732421875, - 438.4000549316406 - ], - "bbox": [ - 497.2000732421875, - 432.1000671386719, - 536.300048828125, - 452.50006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.2000732421875, - 432.1000671386719, - 536.300048828125, - 452.50006103515625 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.3000717163086, - 445.7000732421875, - 536.4999389648438, - 466.1000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦[\u00199¤", - "origin": [ - 72.3000717163086, - 452.00006103515625 - ], - "bbox": [ - 72.3000717163086, - 445.7000732421875, - 81.8000717163086, - 466.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 81.8000717163086, - 452.00006103515625 - ], - "bbox": [ - 81.8000717163086, - 446.00006103515625, - 86.2000732421875, - 465.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/\u0018\u001aʬ§\u001a¤b£\u001c§É¨^£9«¬©�¤oß", - "origin": [ - 86.2000732421875, - 452.00006103515625 - ], - "bbox": [ - 86.2000732421875, - 445.7000732421875, - 155.5000762939453, - 466.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Ë", - "origin": [ - 155.5000762939453, - 452.00006103515625 - ], - "bbox": [ - 155.5000762939453, - 446.00006103515625, - 162.9000701904297, - 465.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\£9§F\u001bR¤7§F\u001boÊ-6=¤s©F£9\u001b7¨g6=¤o¥F§ÉÏÕG\nÓ", - "origin": [ - 162.9000701904297, - 452.00006103515625 - ], - "bbox": [ - 162.9000701904297, - 445.7000732421875, - 280.0000305175781, - 466.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " [", - "origin": [ - 280.0000305175781, - 452.00006103515625 - ], - "bbox": [ - 280.0000305175781, - 446.00006103515625, - 287.5000305175781, - 465.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/£\u001c§…\u0018FÊ-§\u001a¤s£\u001c§…¨g£\u001c«-©\u001a¤sÐw£\u001cÇ9§FÈ\u001c /Ë", - "origin": [ - 287.5000305175781, - 452.00006103515625 - ], - "bbox": [ - 287.5000305175781, - 445.7000732421875, - 402.29998779296875, - 466.1000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.3000717163086, - 445.7000732421875, - 402.29998779296875, - 466.1000671386719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ/6[¨g\u0018FÊ-6", - "origin": [ - 408.90008544921875, - 452.00006103515625 - ], - "bbox": [ - 408.90008544921875, - 445.7000732421875, - 451.800048828125, - 466.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 451.800048828125, - 452.00006103515625 - ], - "bbox": [ - 451.800048828125, - 446.00006103515625, - 456.800048828125, - 465.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F«-Ê;6)ÿ/«Y¤\\5u6M¥/6=¤s\u0018\u001a\u0019\u001cÇ\u001c6e¤", - "origin": [ - 456.800048828125, - 452.00006103515625 - ], - "bbox": [ - 456.800048828125, - 445.7000732421875, - 536.4999389648438, - 466.1000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 408.90008544921875, - 445.7000732421875, - 536.4999389648438, - 466.1000671386719 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 72.30007934570312, - 459.3000793457031, - 451.90008544921875, - 479.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "²?§F«K©F6B¥/£9©F©F6=\u001b7£9©95o\u0018\u001a\u00199¤sÊ-\u0019^¨gå[¨g6M¦ªþF£?¤�6H¤76[Ê-£\u001c©…²9§\u001a6BÆ\u001c£\u001c§�¤~ÊY\u0019g\u001bu6[Ç9\u0019\u001c\u001bu¥F6[\u001bu6", - "origin": [ - 72.30007934570312, - 465.6000671386719 - ], - "bbox": [ - 72.30007934570312, - 459.3000793457031, - 347.40008544921875, - 479.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v‡", - "origin": [ - 347.40008544921875, - 465.6000671386719 - ], - "bbox": [ - 347.40008544921875, - 459.6000671386719, - 351.8000793457031, - 478.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R\u0019aÆ96=¦", - "origin": [ - 351.8000793457031, - 465.6000671386719 - ], - "bbox": [ - 351.8000793457031, - 459.3000793457031, - 373.5000915527344, - 479.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�`", - "origin": [ - 373.5000915527344, - 465.6000671386719 - ], - "bbox": [ - 373.5000915527344, - 459.6000671386719, - 381.2001037597656, - 478.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b6[5u¤u¦[\u00194\u0018w6H£\u001c§…\u0019aÆ\u001c6e¦", - "origin": [ - 381.2001037597656, - 465.6000671386719 - ], - "bbox": [ - 381.2001037597656, - 459.3000793457031, - 451.90008544921875, - 479.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30007934570312, - 459.3000793457031, - 451.90008544921875, - 479.7000732421875 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 462.90008544921875, - 459.3000793457031, - 535.9000854492188, - 479.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©?576=\u001b7©\u001a6)5", - "origin": [ - 462.90008544921875, - 465.6000671386719 - ], - "bbox": [ - 462.90008544921875, - 459.3000793457031, - 490.3000793457031, - 479.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*_", - "origin": [ - 490.3000793457031, - 465.6000671386719 - ], - "bbox": [ - 490.3000793457031, - 459.6000671386719, - 497.6000671386719, - 478.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 462.90008544921875, - 459.3000793457031, - 497.6000671386719, - 479.7000732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÿ/\u0018FÊ-£\u001c\u001bu6[\u001be ", - "origin": [ - 504.2000732421875, - 465.6000671386719 - ], - "bbox": [ - 504.2000732421875, - 459.3000793457031, - 535.9000854492188, - 479.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 504.2000732421875, - 459.3000793457031, - 535.9000854492188, - 479.7000732421875 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 72.50006103515625, - 491.3000793457031, - 198.40008544921875, - 510.5000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "?1\u0019\rÌ", - "origin": [ - 72.50006103515625, - 497.3000793457031 - ], - "bbox": [ - 72.50006103515625, - 491.3000793457031, - 82.90006256103516, - 510.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50006103515625, - 491.3000793457031, - 82.90006256103516, - 510.5000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A%H)=\u001f/¬&)E2*\u001fg%•ÍÎ)=Ï", - "origin": [ - 103.00006103515625, - 497.3000793457031 - ], - "bbox": [ - 103.00006103515625, - 491.3000793457031, - 198.40008544921875, - 510.5000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00006103515625, - 491.3000793457031, - 198.40008544921875, - 510.5000915527344 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 72.30006408691406, - 519.5000610351562, - 445.0000305175781, - 539.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Åb©…¤76[\u001buÆ\u001c6[§\u001a\u001b~ÏÙ6[ÐÉ6=¤�5 Ê-6Hʬ£9Ç\u001c«Y¦)«-6[Ê+²?§F«;\u0018�6=\u001b7¨g6[5o\u0019\u001c§/ÿc§/5u«¬Ê-«-¤u\u0019%5u6[§F\u001bª¤s¥/6H¦)£\u001c©�¤�§Fʬ576=\u001bo¥/6=¤ \u0018\u001a\u0019\u001cÇ\u001c6=¤ ÏÙ6[ÐK ", - "origin": [ - 72.30006408691406, - 525.800048828125 - ], - "bbox": [ - 72.30006408691406, - 519.5000610351562, - 445.0000305175781, - 539.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30006408691406, - 519.5000610351562, - 445.0000305175781, - 539.9000244140625 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 454.0000915527344, - 519.5000610351562, - 534.9000244140625, - 539.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê;6=©\u000f6[ÿ\n«Y¤�576V§F©‰Ç9\u001bu\u0019\u001c©\u001a¥", - "origin": [ - 454.0000915527344, - 525.800048828125 - ], - "bbox": [ - 454.0000915527344, - 519.5000610351562, - 534.9000244140625, - 539.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.0000915527344, - 519.5000610351562, - 534.9000244140625, - 539.9000244140625 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 72.2000732421875, - 533.10009765625, - 536.4000244140625, - 553.5000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©F£9¨¸ÐF\u001bu6\u001c bÓ~6[\u0018w6[©\u001a¥\u001a\u00194©?5", - "origin": [ - 72.2000732421875, - 539.4000854492188 - ], - "bbox": [ - 72.2000732421875, - 533.10009765625, - 155.4000701904297, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 155.4000701904297, - 539.4000854492188 - ], - "bbox": [ - 155.4000701904297, - 533.4000854492188, - 159.9000701904297, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "sÊ-6=¤‰\u0018Fʬ§�¤É¦[£\u001c©F©\n§\u001a¤É¤7£\u001c©?5", - "origin": [ - 159.9000701904297, - 539.4000854492188 - ], - "bbox": [ - 159.9000701904297, - 533.10009765625, - 254.4000701904297, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÑЅÒ", - "origin": [ - 254.4000701904297, - 539.4000854492188 - ], - "bbox": [ - 254.4000701904297, - 533.4000854492188, - 270.40008544921875, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\"", - "origin": [ - 270.40008544921875, - 539.4000854492188 - ], - "bbox": [ - 270.40008544921875, - 533.10009765625, - 275.90008544921875, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÓWÔ", - "origin": [ - 275.90008544921875, - 539.4000854492188 - ], - "bbox": [ - 275.90008544921875, - 533.4000854492188, - 285.0000915527344, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a'", - "origin": [ - 285.0000915527344, - 539.4000854492188 - ], - "bbox": [ - 285.0000915527344, - 533.10009765625, - 290.60009765625, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÕT", - "origin": [ - 290.60009765625, - 539.4000854492188 - ], - "bbox": [ - 290.60009765625, - 533.4000854492188, - 300.10009765625, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õÊ-£\u001cÇ\u001c«Y¦)«-6[ÊVÊ-«¬ÐF\u001bu6", - "origin": [ - 300.10009765625, - 539.4000854492188 - ], - "bbox": [ - 300.10009765625, - 533.10009765625, - 353.00006103515625, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX�[*Ö\u001bÖׂKT", - "origin": [ - 353.00006103515625, - 539.4000854492188 - ], - "bbox": [ - 353.00006103515625, - 533.4000854492188, - 387.800048828125, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yµÝ«Y¦)\u001bu£9¤7£4Ô{5", - "origin": [ - 387.800048828125, - 539.4000854492188 - ], - "bbox": [ - 387.800048828125, - 533.10009765625, - 428.10003662109375, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xX", - "origin": [ - 428.10003662109375, - 539.4000854492188 - ], - "bbox": [ - 428.10003662109375, - 533.4000854492188, - 432.300048828125, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c6[5", - "origin": [ - 432.300048828125, - 539.4000854492188 - ], - "bbox": [ - 432.300048828125, - 533.10009765625, - 445.2000427246094, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÑØ", - "origin": [ - 445.2000427246094, - 539.4000854492188 - ], - "bbox": [ - 445.2000427246094, - 533.4000854492188, - 454.2000427246094, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!'", - "origin": [ - 454.2000427246094, - 539.4000854492188 - ], - "bbox": [ - 454.2000427246094, - 533.10009765625, - 462.300048828125, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�w\ruvÓ", - "origin": [ - 462.300048828125, - 539.4000854492188 - ], - "bbox": [ - 462.300048828125, - 533.4000854492188, - 474.3000183105469, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ª\"", - "origin": [ - 474.3000183105469, - 539.4000854492188 - ], - "bbox": [ - 474.3000183105469, - 533.10009765625, - 478.4000244140625, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WÒ", - "origin": [ - 478.4000244140625, - 539.4000854492188 - ], - "bbox": [ - 478.4000244140625, - 533.4000854492188, - 482.4000244140625, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a'", - "origin": [ - 482.4000244140625, - 539.4000854492188 - ], - "bbox": [ - 482.4000244140625, - 533.10009765625, - 488.0000305175781, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Ù", - "origin": [ - 488.0000305175781, - 539.4000854492188 - ], - "bbox": [ - 488.0000305175781, - 533.4000854492188, - 492.3000183105469, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô\u001d $", - "origin": [ - 492.3000183105469, - 539.4000854492188 - ], - "bbox": [ - 492.3000183105469, - 533.10009765625, - 502.6000061035156, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fw", - "origin": [ - 502.6000061035156, - 539.4000854492188 - ], - "bbox": [ - 502.6000061035156, - 533.4000854492188, - 508.3000183105469, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô.u'", - "origin": [ - 508.3000183105469, - 539.4000854492188 - ], - "bbox": [ - 508.3000183105469, - 533.10009765625, - 515.5999755859375, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¸Ò", - "origin": [ - 515.5999755859375, - 539.4000854492188 - ], - "bbox": [ - 515.5999755859375, - 533.4000854492188, - 519.0999755859375, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+.", - "origin": [ - 519.0999755859375, - 539.4000854492188 - ], - "bbox": [ - 519.0999755859375, - 533.10009765625, - 525.0, - 553.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xpÚu", - "origin": [ - 525.0, - 539.4000854492188 - ], - "bbox": [ - 525.0, - 533.4000854492188, - 532.1000366210938, - 552.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ")'", - "origin": [ - 532.1000366210938, - 539.4000854492188 - ], - "bbox": [ - 532.1000366210938, - 533.10009765625, - 536.4000244140625, - 553.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.2000732421875, - 533.10009765625, - 536.4000244140625, - 553.5000610351562 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 72.90007019042969, - 546.7001342773438, - 265.40008544921875, - 567.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Tq`", - "origin": [ - 72.90007019042969, - 553.0001220703125 - ], - "bbox": [ - 72.90007019042969, - 547.0001220703125, - 76.10006713867188, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R6)5ª¤7¦=\u00194\u0018w6", - "origin": [ - 76.10006713867188, - 553.0001220703125 - ], - "bbox": [ - 76.10006713867188, - 546.7001342773438, - 111.00007629394531, - 567.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 111.00007629394531, - 553.0001220703125 - ], - "bbox": [ - 111.00007629394531, - 547.0001220703125, - 115.6000747680664, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 �¶K6B¤�6=\u001b7Æ96[§F\u001b ÏÙ6[Ѕʬ6B\u0018\u001aʬ§\u001a¤s§F57«-ʬ«Y¤�ÈH6e¤\\5", - "origin": [ - 115.6000747680664, - 553.0001220703125 - ], - "bbox": [ - 115.6000747680664, - 546.7001342773438, - 265.40008544921875, - 567.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.90007019042969, - 546.7001342773438, - 265.40008544921875, - 567.10009765625 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 280.2000732421875, - 546.7001342773438, - 538.7999877929688, - 567.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001c¦ªþF6", - "origin": [ - 280.2000732421875, - 553.0001220703125 - ], - "bbox": [ - 280.2000732421875, - 546.7001342773438, - 300.40008544921875, - 567.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÊT", - "origin": [ - 300.40008544921875, - 553.0001220703125 - ], - "bbox": [ - 300.40008544921875, - 547.0001220703125, - 308.8000793457031, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô¦1Ô", - "origin": [ - 308.8000793457031, - 553.0001220703125 - ], - "bbox": [ - 308.8000793457031, - 546.7001342773438, - 316.3000793457031, - 567.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0013Ø", - "origin": [ - 316.3000793457031, - 553.0001220703125 - ], - "bbox": [ - 316.3000793457031, - 547.0001220703125, - 322.8000793457031, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!'", - "origin": [ - 322.8000793457031, - 553.0001220703125 - ], - "bbox": [ - 322.8000793457031, - 546.7001342773438, - 330.90008544921875, - 567.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�wÛÓ", - "origin": [ - 330.90008544921875, - 553.0001220703125 - ], - "bbox": [ - 330.90008544921875, - 547.0001220703125, - 338.8000793457031, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[.7\"", - "origin": [ - 338.8000793457031, - 553.0001220703125 - ], - "bbox": [ - 338.8000793457031, - 546.7001342773438, - 347.1000671386719, - 567.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ";Ü×w9Ý|¡/Ÿ\nŸH´…µ€£\n£|¶\n¶H¶1·¸ÞgߊŸg I»/ĊàHŸ7·× IºYÀ\u0011£/áYÆ\n»\nâ\nߊãg£ŠäHX", - "origin": [ - 347.1000671386719, - 553.0001220703125 - ], - "bbox": [ - 347.1000671386719, - 547.0001220703125, - 534.5, - 566.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 534.5, - 553.0001220703125 - ], - "bbox": [ - 534.5, - 546.7001342773438, - 538.7999877929688, - 567.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.2000732421875, - 546.7001342773438, - 538.7999877929688, - 567.10009765625 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 72.30006408691406, - 565.5000610351562, - 536.4999389648438, - 585.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6^¤�6=\u001b7Æ\n«Y¦)6M¥/6!Ð\u001a\u0019\u001c¤76¸¥;¯", - "origin": [ - 72.30006408691406, - 571.800048828125 - ], - "bbox": [ - 72.30006408691406, - 565.5000610351562, - 161.20008850097656, - 585.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30006408691406, - 565.5000610351562, - 161.20008850097656, - 585.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©\u000e¤76[\u001buÆ\u001c6=§F\u001bbÏÙ6[ÐÍ6e¤\\5H¥;¯", - "origin": [ - 163.40005493164062, - 571.800048828125 - ], - "bbox": [ - 163.40005493164062, - 565.5000610351562, - 257.60003662109375, - 585.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.40005493164062, - 565.5000610351562, - 257.60003662109375, - 585.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[©\nÆ\u001c£%ø96[\u001boÊ-6=¤", - "origin": [ - 259.800048828125, - 571.800048828125 - ], - "bbox": [ - 259.800048828125, - 565.5000610351562, - 303.3000183105469, - 585.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰�", - "origin": [ - 303.3000183105469, - 571.800048828125 - ], - "bbox": [ - 303.3000183105469, - 565.800048828125, - 310.5000305175781, - 585.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001bu¤\u001e²?§F«¥FÈ=¦)\u001bu«-Æ\u001c6[©?5R¥/6e¤R\u0018�\u00194Ç\u001c6e¤oÏÙ6[Ð�\u0019\u001c§/ÿ…§/57«-ʬ«Y¤u\u0019%576=§F\u001bª¤", - "origin": [ - 310.5000305175781, - 571.800048828125 - ], - "bbox": [ - 310.5000305175781, - 565.5000610351562, - 536.4999389648438, - 585.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 259.800048828125, - 565.5000610351562, - 536.4999389648438, - 585.9000244140625 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 72.300048828125, - 579.10009765625, - 166.40003967285156, - 599.5000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "²?§F«K6=©\u000fÔõ£9©95bÊY\u0019^\u001b76e²?§Få)5u6\u001c ", - "origin": [ - 72.300048828125, - 585.4000854492188 - ], - "bbox": [ - 72.300048828125, - 579.10009765625, - 166.40003967285156, - 599.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.300048828125, - 579.10009765625, - 166.40003967285156, - 599.5000610351562 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 72.300048828125, - 597.9000854492188, - 239.20004272460938, - 618.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "µÍ\u0019\u001c«-¤s«-ÊK\u0018w6[§/5oÔy\u0019\u001c«¬\u001bu6HÐF«¬6=©…¨^«-6[§Fÿɲ?§F6B¦)6=Ê-\u0019", - "origin": [ - 72.300048828125, - 604.2000732421875 - ], - "bbox": [ - 72.300048828125, - 597.9000854492188, - 232.0000457763672, - 618.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰å", - "origin": [ - 232.0000457763672, - 604.2000732421875 - ], - "bbox": [ - 232.0000457763672, - 598.2000732421875, - 239.20004272460938, - 617.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.300048828125, - 597.9000854492188, - 239.20004272460938, - 618.300048828125 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 72.300048828125, - 616.7001342773438, - 416.6000671386719, - 637.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶,¯", - "origin": [ - 72.300048828125, - 623.0001220703125 - ], - "bbox": [ - 72.300048828125, - 616.7001342773438, - 79.00004577636719, - 637.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.300048828125, - 616.7001342773438, - 79.00004577636719, - 637.10009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6)ÿ/6=¨^\u0018\u001aʬ6,Ê-6,\u0018FÊ-§\u001a¤", - "origin": [ - 81.2000503540039, - 623.0001220703125 - ], - "bbox": [ - 81.2000503540039, - 616.7001342773438, - 142.00006103515625, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=Œ", - "origin": [ - 142.00006103515625, - 623.0001220703125 - ], - "bbox": [ - 142.00006103515625, - 617.0001220703125, - 148.10006713867188, - 636.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�\u00194Ç9\u001bu\u0019\u001c©95m¤7£\u001c©?5mÊ-6=¤K¨^£\u001c576=§F\u001bu¤¥/6,\u001bu6=¦ªþF6=\u001bu¦ªþ\u001a6=¤;¦)£9©\u001a¤7§FÊz5ª\u00194ÐFÊ-6=¤m¤�§F\u001bÊ¬6×Ï�6=Ð", - "origin": [ - 148.10006713867188, - 623.0001220703125 - ], - "bbox": [ - 148.10006713867188, - 616.7001342773438, - 408.00006103515625, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "eT", - "origin": [ - 408.00006103515625, - 623.0001220703125 - ], - "bbox": [ - 408.00006103515625, - 617.0001220703125, - 416.6000671386719, - 636.2001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.2000503540039, - 616.7001342773438, - 416.6000671386719, - 637.10009765625 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 423.300048828125, - 616.7001342773438, - 455.60003662109375, - 637.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©/Ôõ£?¤�6=6", - "origin": [ - 423.300048828125, - 623.0001220703125 - ], - "bbox": [ - 423.300048828125, - 616.7001342773438, - 445.300048828125, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "vV\u0011[", - "origin": [ - 445.300048828125, - 623.0001220703125 - ], - "bbox": [ - 445.300048828125, - 617.0001220703125, - 455.60003662109375, - 636.2001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.300048828125, - 616.7001342773438, - 455.60003662109375, - 637.10009765625 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 467.5000305175781, - 616.7001342773438, - 538.199951171875, - 637.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Êz5ª\u0019", - "origin": [ - 467.5000305175781, - 623.0001220703125 - ], - "bbox": [ - 467.5000305175781, - 616.7001342773438, - 474.2000427246094, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Ç", - "origin": [ - 474.2000427246094, - 623.0001220703125 - ], - "bbox": [ - 474.2000427246094, - 617.0001220703125, - 479.10003662109375, - 636.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e«-¤�5u\u0019", - "origin": [ - 479.10003662109375, - 623.0001220703125 - ], - "bbox": [ - 479.10003662109375, - 616.7001342773438, - 497.20001220703125, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g[cb", - "origin": [ - 497.20001220703125, - 623.0001220703125 - ], - "bbox": [ - 497.20001220703125, - 617.0001220703125, - 507.4000244140625, - 636.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V£\n£\u001cÇ9ʬ6", - "origin": [ - 507.4000244140625, - 623.0001220703125 - ], - "bbox": [ - 507.4000244140625, - 616.7001342773438, - 533.0999755859375, - 637.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 533.0999755859375, - 623.0001220703125 - ], - "bbox": [ - 533.0999755859375, - 617.0001220703125, - 538.199951171875, - 636.2001342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 467.5000305175781, - 616.7001342773438, - 538.199951171875, - 637.10009765625 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 72.80001831054688, - 630.3001098632812, - 84.90001678466797, - 650.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " - ¬ ", - "origin": [ - 72.80001831054688, - 636.60009765625 - ], - "bbox": [ - 72.80001831054688, - 630.3001098632812, - 78.30001831054688, - 650.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹X", - "origin": [ - 78.30001831054688, - 636.60009765625 - ], - "bbox": [ - 78.30001831054688, - 630.60009765625, - 80.70001983642578, - 649.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 80.70001983642578, - 636.60009765625 - ], - "bbox": [ - 80.70001983642578, - 630.3001098632812, - 84.90001678466797, - 650.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.80001831054688, - 630.3001098632812, - 84.90001678466797, - 650.7000732421875 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 94.30001831054688, - 630.3001098632812, - 390.60003662109375, - 650.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʐ6e¤\\5H\u00194Ð\u001a¤7£\u001cÊ-§F¨g6[©?5R«-¨g\u0018�£?¤7¤7«-ÐFʬ6!¥/6!¤�57£/¦", - "origin": [ - 94.30001831054688, - 636.60009765625 - ], - "bbox": [ - 94.30001831054688, - 630.3001098632812, - 245.09999084472656, - 650.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×V", - "origin": [ - 245.09999084472656, - 636.60009765625 - ], - "bbox": [ - 245.09999084472656, - 630.60009765625, - 249.1999969482422, - 649.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c6=\u001b", - "origin": [ - 249.1999969482422, - 636.60009765625 - ], - "bbox": [ - 249.1999969482422, - 630.3001098632812, - 258.70001220703125, - 650.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 258.70001220703125, - 636.60009765625 - ], - "bbox": [ - 258.70001220703125, - 630.60009765625, - 263.20001220703125, - 649.8001098632812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¤�£9§\u001a¤oÔõ£9\u001b7¨g6¸¥/6!\u0018\u001a\u00194Ç96=¤\u001e³R´oµÍ¶", - "origin": [ - 263.20001220703125, - 636.60009765625 - ], - "bbox": [ - 263.20001220703125, - 630.3001098632812, - 383.800048828125, - 650.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&[", - "origin": [ - 383.800048828125, - 636.60009765625 - ], - "bbox": [ - 383.800048828125, - 630.60009765625, - 390.60003662109375, - 649.8001098632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 94.30001831054688, - 630.3001098632812, - 390.60003662109375, - 650.7000732421875 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 396.3000183105469, - 628.3001098632812, - 422.70001220703125, - 648.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "—e™�›—=¾\nØ", - "origin": [ - 396.3000183105469, - 634.60009765625 - ], - "bbox": [ - 396.3000183105469, - 628.3001098632812, - 422.70001220703125, - 648.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.3000183105469, - 628.3001098632812, - 422.70001220703125, - 648.7000732421875 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 430.6000061035156, - 630.3001098632812, - 536.2999877929688, - 650.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-6=¤R\u001b76e²?§Få)5u6=¤b\u0018w£9¤u¤7«¬ÐFÊ-6=¤\u001e¥/6=¤", - "origin": [ - 430.6000061035156, - 636.60009765625 - ], - "bbox": [ - 430.6000061035156, - 630.3001098632812, - 536.2999877929688, - 650.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.6000061035156, - 630.3001098632812, - 536.2999877929688, - 650.7000732421875 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 72.20001220703125, - 644.0001220703125, - 121.20001983642578, - 664.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§/5u«¬Ê-«-¤u\u0019%5u6[§F\u001bª¤= ", - "origin": [ - 72.20001220703125, - 650.3001098632812 - ], - "bbox": [ - 72.20001220703125, - 644.0001220703125, - 121.20001983642578, - 664.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 644.0001220703125, - 121.20001983642578, - 664.4000854492188 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 72.20001220703125, - 662.7001342773438, - 535.7999877929688, - 683.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "_", - "origin": [ - 72.20001220703125, - 669.0001220703125 - ], - "bbox": [ - 72.20001220703125, - 663.0001220703125, - 72.20001220703125, - 682.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",©òÔy\u0019\u001c«z5", - "origin": [ - 72.20001220703125, - 669.0001220703125 - ], - "bbox": [ - 72.20001220703125, - 662.7001342773438, - 99.30000305175781, - 683.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 99.30000305175781, - 669.0001220703125 - ], - "bbox": [ - 99.30000305175781, - 663.0001220703125, - 103.9000015258789, - 682.2001342773438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "m§F©ò\u0018w6)5u«z5^\u0018F\u001bu£\u001cÇ\u001c\u001bª\u00194¨g¨g6gÆ%\u0019ݤ�6=\u001b7Æ\n«-\u001b¸¥;¯", - "origin": [ - 103.9000015258789, - 669.0001220703125 - ], - "bbox": [ - 103.9000015258789, - 662.7001342773438, - 251.6000213623047, - 683.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 662.7001342773438, - 251.6000213623047, - 683.10009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬©?576=\u001b�Ôy\u00199¦)6#6=©95u\u001b76\u000fÊô¯", - "origin": [ - 253.80001831054688, - 669.0001220703125 - ], - "bbox": [ - 253.80001831054688, - 662.7001342773438, - 324.3000183105469, - 683.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.80001831054688, - 662.7001342773438, - 324.3000183105469, - 683.10009765625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§/57«-Ê-«-¤u\u0019%5u6[§F\u001bM6[5¸§F©¿Ê-£\u001cÇ9«-¦[«¬6=Ê×¥/6cÐ�\u0019\u001c¤76c¥/6\u000f¥/£9©F©FÈ[6e¤[ iÓ~6", - "origin": [ - 326.5000305175781, - 669.0001220703125 - ], - "bbox": [ - 326.5000305175781, - 662.7001342773438, - 535.7999877929688, - 683.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.5000305175781, - 662.7001342773438, - 535.7999877929688, - 683.10009765625 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 72.20002746582031, - 676.4000854492188, - 536.5000610351562, - 696.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018F\u001bu£\u001cÇ9\u001bu\u0019\u001c¨^¨g6\u001eÆa\u0019¸57\u001bª\u0019\u001c¥F§F«¬\u001bu6VÆ\u001c£45u\u001b76\u001e\u001b76e²?§Få)5u6\u001e\u0018w£\u001c§F\u001bo«-©?576=\u001b7\u001bu£\u001cÇ96[\u001b×ÊY\u0019!Ð\u001a\u0019\u001c¤76V¥F6H¥F£\u001c©F©FÈ=6H6)5s«¬©\u001a¤7È[\u001bu6[\u001bsÊ-6=¤ \u001buÈ=¤7§FÊz5ª\u0019%5ª¤~£9Ð/576=©\n§\u001a¤o¥F\u00194©�¤", - "origin": [ - 72.20002746582031, - 682.7000732421875 - ], - "bbox": [ - 72.20002746582031, - 676.4000854492188, - 536.5000610351562, - 696.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20002746582031, - 676.4000854492188, - 536.5000610351562, - 696.800048828125 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 72.20002746582031, - 690.0001220703125, - 535.800048828125, - 710.4000854492188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©‚¤7²?§F6=ʬ6[5�5u6!\u0018F\u001buÈ=¥FÈ", - "origin": [ - 72.20002746582031, - 696.3001098632812 - ], - "bbox": [ - 72.20002746582031, - 690.0001220703125, - 148.80003356933594, - 710.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 148.80003356933594, - 696.3001098632812 - ], - "bbox": [ - 148.80003356933594, - 690.3001098632812, - 153.10003662109375, - 709.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«Y¤H¥/6^\u0018\u001a\u00194Ç96!ÏÙ6[ÐK K¶m6=¤V\u0018\u001a\u0019\u001cÇ\u001c6=¤V¤7£\u001c©?5V¥/£9©\u001a¦^¦)£\u001c©�¤\\5u\u001b7§F«¬576e¤", - "origin": [ - 153.10003662109375, - 696.3001098632812 - ], - "bbox": [ - 153.10003662109375, - 690.0001220703125, - 373.40008544921875, - 710.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Êæ", - "origin": [ - 373.40008544921875, - 696.3001098632812 - ], - "bbox": [ - 373.40008544921875, - 690.3001098632812, - 381.8000793457031, - 709.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…(¬\"", - "origin": [ - 381.8000793457031, - 696.3001098632812 - ], - "bbox": [ - 381.8000793457031, - 690.0001220703125, - 393.40008544921875, - 710.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017ÉIl", - "origin": [ - 393.40008544921875, - 696.3001098632812 - ], - "bbox": [ - 393.40008544921875, - 690.3001098632812, - 407.00006103515625, - 709.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%(", - "origin": [ - 407.00006103515625, - 696.3001098632812 - ], - "bbox": [ - 407.00006103515625, - 690.0001220703125, - 411.800048828125, - 710.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "hç", - "origin": [ - 411.800048828125, - 696.3001098632812 - ], - "bbox": [ - 411.800048828125, - 690.3001098632812, - 414.50006103515625, - 709.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ª'#6[5B©F£\u001c©�\u0018\u001a\u0019\u001c¤V¤\\5u£/¦", - "origin": [ - 414.50006103515625, - 696.3001098632812 - ], - "bbox": [ - 414.50006103515625, - 690.0001220703125, - 490.300048828125, - 710.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×V", - "origin": [ - 490.300048828125, - 696.3001098632812 - ], - "bbox": [ - 490.300048828125, - 690.3001098632812, - 494.4000549316406, - 709.5001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cÈ[6e¤\u001e¤7§F\u001bHÊ-6", - "origin": [ - 494.4000549316406, - 696.3001098632812 - ], - "bbox": [ - 494.4000549316406, - 690.0001220703125, - 535.800048828125, - 710.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20002746582031, - 690.0001220703125, - 535.800048828125, - 710.4000854492188 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 72.3000259399414, - 703.7001342773438, - 104.10002899169922, - 724.10009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤76[\u001buÆ\u001c6[§\u001a\u001b= ", - "origin": [ - 72.3000259399414, - 710.0001220703125 - ], - "bbox": [ - 72.3000259399414, - 703.7001342773438, - 104.10002899169922, - 724.10009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.3000259399414, - 703.7001342773438, - 104.10002899169922, - 724.10009765625 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.5, - 35.29997634887695, - 194.3000030517578, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ÿ", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 72.5, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=�", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¹º¸™w¼¿¼¿¾\n–+—¸À9Á�¼½Á/˜%œe¾RÃ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 194.3000030517578, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 194.3000030517578, - 55.699974060058594 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 2, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_3": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 72.5, - 77.699951171875, - 241.09999084472656, - 96.89994812011719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "?1\u0019Dè", - "origin": [ - 72.5, - 83.699951171875 - ], - "bbox": [ - 72.5, - 77.699951171875, - 82.69999694824219, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 77.699951171875, - 82.69999694824219, - 96.89994812011719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "éÈ!&3ê34)657-•ë×8\u001a:;\u001f\")K%H8ì\u001d�8\u0013­#)ÑS", - "origin": [ - 103.30000305175781, - 83.699951171875 - ], - "bbox": [ - 103.30000305175781, - 77.699951171875, - 241.09999084472656, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.30000305175781, - 77.699951171875, - 241.09999084472656, - 96.89994812011719 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 72.20000457763672, - 105.89994812011719, - 538.0000610351562, - 126.2999496459961 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi£\u001c§F\u001b ¦)6=Ê-\u0019", - "origin": [ - 72.20000457763672, - 112.199951171875 - ], - "bbox": [ - 72.20000457763672, - 105.89994812011719, - 107.80001068115234, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g[", - "origin": [ - 107.80001068115234, - 112.199951171875 - ], - "bbox": [ - 107.80001068115234, - 106.199951171875, - 113.40000915527344, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4«¬ÊwÆ\u001c£9§\u001a¤iÔy\u0019\u001c§/5×§F©c£9\u001bu¥F«¬©\u001a\u00194576=§F\u001b,6)5~§F©cÈ=¥F«z5u6[§F\u001b ¥/6o576[ÿ\n576\u001c ?Ëi6[\u001bª¤�£9©F©F6=ʬÊ-6[¨g6[©?5", - "origin": [ - 113.40000915527344, - 112.199951171875 - ], - "bbox": [ - 113.40000915527344, - 105.89994812011719, - 398.0, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[xË", - "origin": [ - 398.0, - 112.199951171875 - ], - "bbox": [ - 398.0, - 106.199951171875, - 406.8000183105469, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6R¦)£9©\u001a¤76[«-ʬÊ-6", - "origin": [ - 406.8000183105469, - 112.199951171875 - ], - "bbox": [ - 406.8000183105469, - 105.89994812011719, - 449.5, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*_", - "origin": [ - 449.5, - 112.199951171875 - ], - "bbox": [ - 449.5, - 106.199951171875, - 456.79998779296875, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",¨#\u0019\u001c¦=¤,£9§", - "origin": [ - 456.79998779296875, - 112.199951171875 - ], - "bbox": [ - 456.79998779296875, - 105.89994812011719, - 493.20001220703125, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ʐ�_", - "origin": [ - 493.20001220703125, - 112.199951171875 - ], - "bbox": [ - 493.20001220703125, - 106.199951171875, - 509.0, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",¨#\u0019\u001c¦=¤", - "origin": [ - 509.0, - 112.199951171875 - ], - "bbox": [ - 509.0, - 105.89994812011719, - 533.6000366210938, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 533.6000366210938, - 112.199951171875 - ], - "bbox": [ - 533.6000366210938, - 106.199951171875, - 538.0000610351562, - 125.39994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20000457763672, - 105.89994812011719, - 538.0000610351562, - 126.2999496459961 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.20000457763672, - 119.49992370605469, - 505.29998779296875, - 139.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨#\u00194«Y¤sʬ6", - "origin": [ - 72.20000457763672, - 125.7999267578125 - ], - "bbox": [ - 72.20000457763672, - 119.49992370605469, - 98.20000457763672, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "C`", - "origin": [ - 98.20000457763672, - 125.7999267578125 - ], - "bbox": [ - 98.20000457763672, - 119.7999267578125, - 106.10000610351562, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R£45u6[\u0018\u001a\u00199¥‰¥/6BÏ", - "origin": [ - 106.10000610351562, - 125.7999267578125 - ], - "bbox": [ - 106.10000610351562, - 119.49992370605469, - 159.40000915527344, - 139.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20000457763672, - 119.49992370605469, - 159.40000915527344, - 139.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©\u001a¥/£", - "origin": [ - 169.60000610351562, - 125.7999267578125 - ], - "bbox": [ - 169.60000610351562, - 119.49992370605469, - 183.40000915527344, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ií", - "origin": [ - 183.40000915527344, - 125.7999267578125 - ], - "bbox": [ - 183.40000915527344, - 119.7999267578125, - 188.20001220703125, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b¤s\u0018w6[§F5o57£\u001c§F5R\u00194§\u001a¤u¤�«;Ð\u001a«¬6=©‰Ôy\u0019\u001c«¬\u001bu6HÊô¯", - "origin": [ - 188.20001220703125, - 125.7999267578125 - ], - "bbox": [ - 188.20001220703125, - 119.49992370605469, - 319.0000305175781, - 139.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.60000610351562, - 119.49992370605469, - 319.0000305175781, - 139.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019", - "origin": [ - 321.29998779296875, - 125.7999267578125 - ], - "bbox": [ - 321.29998779296875, - 119.49992370605469, - 321.29998779296875, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I", - "origin": [ - 321.29998779296875, - 125.7999267578125 - ], - "bbox": [ - 321.29998779296875, - 119.7999267578125, - 326.0999755859375, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";\u00194«-\u001bu6", - "origin": [ - 326.0999755859375, - 125.7999267578125 - ], - "bbox": [ - 326.0999755859375, - 119.49992370605469, - 343.7999572753906, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "mT", - "origin": [ - 343.7999572753906, - 125.7999267578125 - ], - "bbox": [ - 343.7999572753906, - 119.7999267578125, - 351.9999694824219, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yÐF«¬6=©Ý²9§m¯", - "origin": [ - 351.9999694824219, - 125.7999267578125 - ], - "bbox": [ - 351.9999694824219, - 119.49992370605469, - 388.20001220703125, - 139.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.29998779296875, - 119.49992370605469, - 388.20001220703125, - 139.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-ÊK©F6M¤7£\u001c«¬5o\u0018\u001a\u0019\u001c¤o\u0019\u001c§\u001a¤7¤7«;È[Æ9£\u001cÊ-§FÈ", - "origin": [ - 390.29998779296875, - 125.7999267578125 - ], - "bbox": [ - 390.29998779296875, - 119.49992370605469, - 496.3999938964844, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 496.3999938964844, - 125.7999267578125 - ], - "bbox": [ - 496.3999938964844, - 119.7999267578125, - 501.0, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 501.0, - 125.7999267578125 - ], - "bbox": [ - 501.0, - 119.49992370605469, - 505.29998779296875, - 139.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.29998779296875, - 119.49992370605469, - 505.29998779296875, - 139.89993286132812 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 78.89997863769531, - 138.29991149902344, - 536.4998779296875, - 158.69992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ\n«Y¥/6[¨g¨g6[©?5", - "origin": [ - 78.89997863769531, - 144.59991455078125 - ], - "bbox": [ - 78.89997863769531, - 138.29991149902344, - 123.09999084472656, - 158.69992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 123.09999084472656, - 144.59991455078125 - ], - "bbox": [ - 123.09999084472656, - 138.59991455078125, - 127.59999084472656, - 157.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬Ê~6)ÿ/«Y¤\\5u6c¥/6=¤H5ª\u0019\u001c¤M¥F6#ʬ£9Ç\u001c«Y¦)«-6[ÊY¤V57\u001buá=¤M¤7£\u001c\u0018Fþ\u001a«-¤�57«Y²?§FÈ=¤M²?§F«×\u0018�6=\u001b7¨g6)57576=©95^¥/6gÔy\u00194«-\u001b76c¥F6=¤B\u0018\u001a\u0019\u001cÇ\u001c6e¤B³R´oµÍ¶Õ¤u\u00194©�¤", - "origin": [ - 127.59999084472656, - 144.59991455078125 - ], - "bbox": [ - 127.59999084472656, - 138.29991149902344, - 536.4998779296875, - 158.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.89997863769531, - 138.29991149902344, - 536.4998779296875, - 158.69992065429688 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.0999755859375, - 151.89988708496094, - 535.7999877929688, - 172.29989624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "57£9§\u001a¦ªþF6=\u001bb\u00194§ÉÊ-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6H³R´oµÍ¶", - "origin": [ - 72.0999755859375, - 158.19989013671875 - ], - "bbox": [ - 72.0999755859375, - 151.89988708496094, - 181.59999084472656, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&[", - "origin": [ - 181.59999084472656, - 158.19989013671875 - ], - "bbox": [ - 181.59999084472656, - 152.19989013671875, - 188.39999389648438, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a¨#\u00194«Y¤s«¬ÊY¤oÇ9È[©Fá=\u001b76=©95s\u001bª\u00194\u001bu6[¨g6[©?5b¥/§Ý¦)£/¥/6B\u0018F\u001bu£\u001c\u0018\u001a\u001b76", - "origin": [ - 188.39999389648438, - 158.19989013671875 - ], - "bbox": [ - 188.39999389648438, - 151.89988708496094, - 374.09991455078125, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T", - "origin": [ - 374.09991455078125, - 158.19989013671875 - ], - "bbox": [ - 374.09991455078125, - 152.19989013671875, - 382.39990234375, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y¤7£\u001c§FÆ96[©?5oʬ£9§F\u001bª¥", - "origin": [ - 382.39990234375, - 158.19989013671875 - ], - "bbox": [ - 382.39990234375, - 151.89988708496094, - 439.2999572753906, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ".[", - "origin": [ - 439.2999572753906, - 158.19989013671875 - ], - "bbox": [ - 439.2999572753906, - 152.19989013671875, - 445.2999572753906, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\u001bu6=¥/£9©\u001a¥F\u00194©?5", - "origin": [ - 445.2999572753906, - 158.19989013671875 - ], - "bbox": [ - 445.2999572753906, - 151.89988708496094, - 490.9999694824219, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 490.9999694824219, - 158.19989013671875 - ], - "bbox": [ - 490.9999694824219, - 152.19989013671875, - 495.5999755859375, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?£9§…¨^å=¨g6", - "origin": [ - 495.5999755859375, - 158.19989013671875 - ], - "bbox": [ - 495.5999755859375, - 151.89988708496094, - 535.7999877929688, - 172.29989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.0999755859375, - 151.89988708496094, - 535.7999877929688, - 172.29989624023438 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.1999740600586, - 165.5998992919922, - 535.7999877929688, - 185.99990844726562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©?§F57«-ʬ6", - "origin": [ - 72.1999740600586, - 171.89990234375 - ], - "bbox": [ - 72.1999740600586, - 165.5998992919922, - 95.0999755859375, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YX", - "origin": [ - 95.0999755859375, - 171.89990234375 - ], - "bbox": [ - 95.0999755859375, - 165.89990234375, - 99.79997253417969, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ®\u001e§F«", - "origin": [ - 99.79997253417969, - 171.89990234375 - ], - "bbox": [ - 99.79997253417969, - 165.5998992919922, - 123.29997253417969, - 185.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1999740600586, - 165.5998992919922, - 123.29997253417969, - 185.99990844726562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018FÊ-§\u001a¤H6e¤\\5", - "origin": [ - 129.8999786376953, - 171.89990234375 - ], - "bbox": [ - 129.8999786376953, - 165.5998992919922, - 159.79998779296875, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 159.79998779296875, - 171.89990234375 - ], - "bbox": [ - 159.79998779296875, - 165.89990234375, - 164.39999389648438, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";Æ\u001c£9¤\u001e\u0018w£9¤u¤�«-ÐF«-ʬ«¬57Èe¤B¤�£9©95H\u001bu6=¤�57\u001bu6[«-©95u6=¤V\u00194§/ÿ\u000e¦=\u00194\u0018\u001a\u00199¦)«¬57Èe¤V¥F§�Ê-£\u001cÇ9«-¦[«¬6=Êi²?§F«", - "origin": [ - 164.39999389648438, - 171.89990234375 - ], - "bbox": [ - 164.39999389648438, - 165.5998992919922, - 431.8000183105469, - 185.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.8999786376953, - 165.5998992919922, - 431.8000183105469, - 185.99990844726562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£", - "origin": [ - 438.39996337890625, - 171.89990234375 - ], - "bbox": [ - 438.39996337890625, - 165.5998992919922, - 438.39996337890625, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F", - "origin": [ - 438.39996337890625, - 171.89990234375 - ], - "bbox": [ - 438.39996337890625, - 165.89990234375, - 443.39996337890625, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w\u001bu6!57£\u001c§", - "origin": [ - 443.39996337890625, - 171.89990234375 - ], - "bbox": [ - 443.39996337890625, - 165.5998992919922, - 470.199951171875, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Ë", - "origin": [ - 470.199951171875, - 171.89990234375 - ], - "bbox": [ - 470.199951171875, - 165.89990234375, - 475.0999450683594, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\£\u001c§F\u001bª¤V¨^£9«¬©�¤V¥F6", - "origin": [ - 475.0999450683594, - 171.89990234375 - ], - "bbox": [ - 475.0999450683594, - 165.5998992919922, - 535.7999877929688, - 185.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.39996337890625, - 165.5998992919922, - 535.7999877929688, - 185.99990844726562 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.199951171875, - 179.29991149902344, - 257.7999572753906, - 199.69992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018w£9¤u¤�«-ÐF«-ʬ«¬57ÈM²?§F6HÊ-6BÊ-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6\u001e³\u001e´oµÍ¶‚Ê-§F«z°", - "origin": [ - 72.199951171875, - 185.59991455078125 - ], - "bbox": [ - 72.199951171875, - 179.29991149902344, - 228.29998779296875, - 199.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 179.29991149902344, - 228.29998779296875, - 199.69992065429688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨gå[¨g6\u001c ", - "origin": [ - 231.79995727539062, - 185.59991455078125 - ], - "bbox": [ - 231.79995727539062, - 179.29991149902344, - 257.7999572753906, - 199.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 231.79995727539062, - 179.29991149902344, - 257.7999572753906, - 199.69992065429688 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 72.49995422363281, - 211.19989013671875, - 296.1999206542969, - 230.39988708496094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "?1\u0019\rï", - "origin": [ - 72.49995422363281, - 217.19989013671875 - ], - "bbox": [ - 72.49995422363281, - 211.19989013671875, - 82.89995574951172, - 230.39988708496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49995422363281, - 211.19989013671875, - 82.89995574951172, - 230.39988708496094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "éÈ),J12CBq:€°ðë×8\u001a2‰-U8.¬\u00138\u001357-('�),+\u0011!&3ê3ñ)E5�+\u0011)=\u001f", - "origin": [ - 103.29995727539062, - 217.19989013671875 - ], - "bbox": [ - 103.29995727539062, - 211.19989013671875, - 296.1999206542969, - 230.39988708496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.29995727539062, - 211.19989013671875, - 296.1999206542969, - 230.39988708496094 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 78.59996032714844, - 239.39988708496094, - 410.5999450683594, - 259.7998962402344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æa\u0019\u001c©?5o¥F6BÆ\u001c£\u001c§�¤sÊ-\u0019\u001c©\u001a¦)6=\u001bs¥\u001a\u00194©\u001a¤sÊY\u0019#¦)£9©\u001a¦)6=\u0018/57«-£\u001c©…¥;¯", - "origin": [ - 78.59996032714844, - 245.69989013671875 - ], - "bbox": [ - 78.59996032714844, - 239.39988708496094, - 256.3999938964844, - 259.7998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.59996032714844, - 239.39988708496094, - 256.3999938964844, - 259.7998962402344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6B\u0018\u001a\u0019\u001cÇ\u001c6VÏ�6=Ð", - "origin": [ - 258.5999755859375, - 245.69989013671875 - ], - "bbox": [ - 258.5999755859375, - 239.39988708496094, - 314.39996337890625, - 259.7998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 314.39996337890625, - 245.69989013671875 - ], - "bbox": [ - 314.39996337890625, - 239.69989013671875, - 320.4999694824219, - 258.89990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F«-Ê;Ôy\u00194§/5R¥F6[§/ÿ…¦ªþF£9¤76=¤V8", - "origin": [ - 320.4999694824219, - 245.69989013671875 - ], - "bbox": [ - 320.4999694824219, - 239.39988708496094, - 410.5999450683594, - 259.7998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.5999755859375, - 239.39988708496094, - 410.5999450683594, - 259.7998962402344 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 84.89997863769531, - 256.39990234375, - 89.9999771118164, - 276.7998962402344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9 ", - "origin": [ - 84.89997863769531, - 262.69989013671875 - ], - "bbox": [ - 84.89997863769531, - 256.39990234375, - 89.9999771118164, - 276.7998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.89997863769531, - 256.39990234375, - 89.9999771118164, - 276.7998962402344 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 103.4999771118164, - 256.39990234375, - 216.39999389648438, - 276.7998962402344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ9£\u001c«-\u001b §\u001a©É£9\u001bu¥F«¬©\u001a\u00194576=§F\u001bs\u001b76=ʬ«-ÈBß!Ê", - "origin": [ - 103.4999771118164, - 262.69989013671875 - ], - "bbox": [ - 103.4999771118164, - 256.39990234375, - 216.39999389648438, - 276.7998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.4999771118164, - 256.39990234375, - 216.39999389648438, - 276.7998962402344 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 225.59999084472656, - 256.39990234375, - 394.2998962402344, - 276.7998962402344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©95u6[\u001bu©F6)5", - "origin": [ - 225.59999084472656, - 262.69989013671875 - ], - "bbox": [ - 225.59999084472656, - 256.39990234375, - 252.89999389648438, - 276.7998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ðT", - "origin": [ - 252.89999389648438, - 262.69989013671875 - ], - "bbox": [ - 252.89999389648438, - 256.69989013671875, - 260.8999938964844, - 275.89990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô¥/6B\u0018F\u001buÈ)ÔõÈ=\u001b76=©\u001a¦)6V6[©…\u0018w6[\u001bu¨g\u0019\u001c©F6[©�¦)6", - "origin": [ - 260.8999938964844, - 262.69989013671875 - ], - "bbox": [ - 260.8999938964844, - 256.39990234375, - 385.39990234375, - 276.7998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 385.39990234375, - 262.69989013671875 - ], - "bbox": [ - 385.39990234375, - 256.69989013671875, - 389.9999084472656, - 275.89990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 389.9999084472656, - 262.69989013671875 - ], - "bbox": [ - 389.9999084472656, - 256.39990234375, - 394.2998962402344, - 276.7998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.59999084472656, - 256.39990234375, - 394.2998962402344, - 276.7998962402344 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 84.49998474121094, - 273.4998779296875, - 89.99998474121094, - 293.8998718261719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "AF ", - "origin": [ - 84.49998474121094, - 279.79986572265625 - ], - "bbox": [ - 84.49998474121094, - 273.4998779296875, - 89.99998474121094, - 293.8998718261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.49998474121094, - 273.4998779296875, - 89.99998474121094, - 293.8998718261719 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 103.49998474121094, - 273.4998779296875, - 363.6999816894531, - 293.8998718261719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ9£\u001c«-\u001b §\u001a©ÉÊ-£\u001cÇ9«-¦[«¬6=Ê;¥/6M¤�6=\u001b7Æ96[§F\u001bsÏÙ6[Ðݲ?§F«;Ôõ£9©\u001a¦15u«¬£9©F©F6B¦)£9\u001b7\u001bu6=¦)576[¨g6=©95e ", - "origin": [ - 103.49998474121094, - 279.79986572265625 - ], - "bbox": [ - 103.49998474121094, - 273.4998779296875, - 363.6999816894531, - 293.8998718261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.49998474121094, - 273.4998779296875, - 363.6999816894531, - 293.8998718261719 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 72.29998779296875, - 290.599853515625, - 536.2998657226562, - 310.9998474121094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 72.29998779296875, - 296.89984130859375 - ], - "bbox": [ - 72.29998779296875, - 290.89984130859375, - 72.29998779296875, - 310.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "o6=¨^\u0018\u001aʬ«-\u001b\u001e¦[6=¤R¥F6[§/ÿݦ)£9©\u001a¥/«¬57«-£\u001c©\u001a¤b¥F6[¨#\u00194©\u001a¥F6[©?5\u001eß#ÊY\u0019gÔõ£\u001c«Y¤b§\u001a©Ý¨g\u0019457È=\u001b7«-6[ʐ6[©\u001a¦[£\u001c\u001bu6B«¬©\u001a\u0019\u001cÐ�£9\u001bu¥\u001a\u00194ÐFÊ-6B\u0018�£9§F\u001bb§F©\u000e\u0018\u001a\u00194\u001b757«Y¦)§FÊ-«-6[\u001bb6[5\u001e¥/6=¤", - "origin": [ - 72.29998779296875, - 296.89984130859375 - ], - "bbox": [ - 72.29998779296875, - 290.599853515625, - 536.2998657226562, - 310.9998474121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 290.599853515625, - 536.2998657226562, - 310.9998474121094 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 72.29998779296875, - 304.1998291015625, - 236.50001525878906, - 324.5998229980469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)£9©F©\u001a\u0019\u001c«-¤u¤7\u0019\u001c©\u001a¦)6e¤,5u6=¦ªþF©\u001a«-²?§F6e¤o«¬¨g\u0018w£\u001c\u001b75u\u0019\u001c©95u6=¤= ", - "origin": [ - 72.29998779296875, - 310.49981689453125 - ], - "bbox": [ - 72.29998779296875, - 304.1998291015625, - 236.50001525878906, - 324.5998229980469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 304.1998291015625, - 236.50001525878906, - 324.5998229980469 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 75.79998779296875, - 322.9998779296875, - 409.29998779296875, - 343.3998718261719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Êb6[ÿ\n«Y¤�576ݦ)6=\u0018�6=©\u001a¥F\u00194©?5#§F©ÌÇ\u001c\u001bª\u00194©�¥½©F£9¨¸ÐF\u001bu6…¥/6", - "origin": [ - 75.79998779296875, - 329.29986572265625 - ], - "bbox": [ - 75.79998779296875, - 322.9998779296875, - 248.5, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "òÜ�l", - "origin": [ - 248.5, - 329.29986572265625 - ], - "bbox": [ - 248.5, - 323.29986572265625, - 261.29998779296875, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%&/.1$", - "origin": [ - 261.29998779296875, - 329.29986572265625 - ], - "bbox": [ - 261.29998779296875, - 322.9998779296875, - 275.6999816894531, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fpÚuWu", - "origin": [ - 275.6999816894531, - 329.29986572265625 - ], - "bbox": [ - 275.6999816894531, - 323.29986572265625, - 288.29998779296875, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "['[&/.", - "origin": [ - 288.29998779296875, - 329.29986572265625 - ], - "bbox": [ - 288.29998779296875, - 322.9998779296875, - 302.4999694824219, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×uÑn6ó", - "origin": [ - 302.4999694824219, - 329.29986572265625 - ], - "bbox": [ - 302.4999694824219, - 323.29986572265625, - 321.79998779296875, - 342.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.79998779296875, - 322.9998779296875, - 321.79998779296875, - 343.3998718261719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\"", - "origin": [ - 323.70001220703125, - 329.29986572265625 - ], - "bbox": [ - 323.70001220703125, - 322.9998779296875, - 323.70001220703125, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÓ×Ó×ôxu²æ", - "origin": [ - 323.70001220703125, - 329.29986572265625 - ], - "bbox": [ - 323.70001220703125, - 323.29986572265625, - 350.300048828125, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‚(", - "origin": [ - 350.300048828125, - 329.29986572265625 - ], - "bbox": [ - 350.300048828125, - 322.9998779296875, - 359.800048828125, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "€ó", - "origin": [ - 359.800048828125, - 329.29986572265625 - ], - "bbox": [ - 359.800048828125, - 323.29986572265625, - 363.7000427246094, - 342.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.70001220703125, - 322.9998779296875, - 363.7000427246094, - 343.3998718261719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ö", - "origin": [ - 365.0, - 329.29986572265625 - ], - "bbox": [ - 365.0, - 323.29986572265625, - 365.0, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1$", - "origin": [ - 365.0, - 329.29986572265625 - ], - "bbox": [ - 365.0, - 322.9998779296875, - 369.20001220703125, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gw", - "origin": [ - 369.20001220703125, - 329.29986572265625 - ], - "bbox": [ - 369.20001220703125, - 323.29986572265625, - 374.8000183105469, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±'[.1$w'", - "origin": [ - 374.8000183105469, - 329.29986572265625 - ], - "bbox": [ - 374.8000183105469, - 322.9998779296875, - 392.8000183105469, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "vw\u0017T\rˆ", - "origin": [ - 392.8000183105469, - 329.29986572265625 - ], - "bbox": [ - 392.8000183105469, - 323.29986572265625, - 409.29998779296875, - 342.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.0, - 322.9998779296875, - 409.29998779296875, - 343.3998718261719 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 425.79998779296875, - 322.9998779296875, - 534.7000122070312, - 343.3998718261719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "X", - "origin": [ - 425.79998779296875, - 329.29986572265625 - ], - "bbox": [ - 425.79998779296875, - 323.29986572265625, - 425.79998779296875, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#²?§F«oÆ9£\u001c§\u001a¤g£", - "origin": [ - 425.79998779296875, - 329.29986572265625 - ], - "bbox": [ - 425.79998779296875, - 322.9998779296875, - 476.1000061035156, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F", - "origin": [ - 476.1000061035156, - 329.29986572265625 - ], - "bbox": [ - 476.1000061035156, - 323.29986572265625, - 481.1000061035156, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w\u001bu6[©?5#§F©Ì\u0018�6=§", - "origin": [ - 481.1000061035156, - 329.29986572265625 - ], - "bbox": [ - 481.1000061035156, - 322.9998779296875, - 534.7000122070312, - 343.3998718261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 425.79998779296875, - 322.9998779296875, - 534.7000122070312, - 343.3998718261719 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.29998779296875, - 336.5998840332031, - 282.89996337890625, - 356.9998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥;¯", - "origin": [ - 72.29998779296875, - 342.8998718261719 - ], - "bbox": [ - 72.29998779296875, - 336.5998840332031, - 78.29998779296875, - 356.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 336.5998840332031, - 78.29998779296875, - 356.9998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤7\u0018\u001a\u0019\u001c¦[6#¥/«-¤u²?§F6c¤7§F\u001bB§F©F6#¨#\u0019\u001c¦ªþ\u001a«¬©F6c\u0019aø?\u00194©?5B\u0019\u001c¦[¦[á=¤B߅Ê", - "origin": [ - 80.49998474121094, - 342.8998718261719 - ], - "bbox": [ - 80.49998474121094, - 336.5998840332031, - 282.89996337890625, - 356.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.49998474121094, - 336.5998840332031, - 282.89996337890625, - 356.9998779296875 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 292.0, - 336.5998840332031, - 536.8998413085938, - 356.9998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©?5u6[\u001bu©F6)5M6[5Mʬ6e¤B¦)£\u001c¨g\u0018wÈ)5u6[©\u001a¦[6=¤M¥/6#Ê-6[§\u001a\u001bu¤B\u00199¥/¨g«¬©F«Y¤�57\u001bª\u0019%576=§F\u001bª¤B¤�ø/¤�°", - "origin": [ - 292.0, - 342.8998718261719 - ], - "bbox": [ - 292.0, - 336.5998840332031, - 536.8998413085938, - 356.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 292.0, - 336.5998840332031, - 536.8998413085938, - 356.9998779296875 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 72.09999084472656, - 350.2998962402344, - 535.7999877929688, - 370.69989013671875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "57á=¨g6\u001c +Ó~6e¤o£\u001c\u001buÇ9\u0019\u001c©F«Y¤�¨g6=¤s\u0018w6[§\u001aÆ\u001c6[©?5bå[57\u001bu6M¥/6=¤R6[©?57\u001bu6[\u0018F\u001bu«Y¤�6e¤s\u0018F\u001b7«-Æ\u001cÈ=6=¤s£9§Í¥/6=¤o£9\u001b7Ç?\u00194©F«Y¤7¨^6e¤ \u0018F§FÐFÊ-«-¦=¤", - "origin": [ - 72.09999084472656, - 356.5998840332031 - ], - "bbox": [ - 72.09999084472656, - 350.2998962402344, - 436.99993896484375, - 370.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ðT", - "origin": [ - 436.99993896484375, - 356.5998840332031 - ], - "bbox": [ - 436.99993896484375, - 350.5998840332031, - 444.99993896484375, - 369.7998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y§F©F«-Æ\u001c6[\u001bª¤7«z5uÈ=¤", - "origin": [ - 444.99993896484375, - 356.5998840332031 - ], - "bbox": [ - 444.99993896484375, - 350.2998962402344, - 490.49993896484375, - 370.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 490.49993896484375, - 356.5998840332031 - ], - "bbox": [ - 490.49993896484375, - 350.5998840332031, - 494.99993896484375, - 369.7998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a¦)6=©95u\u001b76M¥F6", - "origin": [ - 494.99993896484375, - 356.5998840332031 - ], - "bbox": [ - 494.99993896484375, - 350.2998962402344, - 535.7999877929688, - 370.69989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.09999084472656, - 350.2998962402344, - 535.7999877929688, - 370.69989013671875 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 72.19998931884766, - 363.7998962402344, - 135.89999389648438, - 384.19989013671875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu6=¦ªþF6=\u001bu¦ªþF6", - "origin": [ - 72.19998931884766, - 370.0998840332031 - ], - "bbox": [ - 72.19998931884766, - 363.7998962402344, - 108.39998626708984, - 384.19989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 108.39998626708984, - 370.0998840332031 - ], - "bbox": [ - 108.39998626708984, - 364.0998840332031, - 113.49998474121094, - 383.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n6)5u¦", - "origin": [ - 113.49998474121094, - 370.0998840332031 - ], - "bbox": [ - 113.49998474121094, - 363.7998962402344, - 127.09999084472656, - 384.19989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 127.09999084472656, - 370.0998840332031 - ], - "bbox": [ - 127.09999084472656, - 364.0998840332031, - 131.6999969482422, - 383.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 131.6999969482422, - 370.0998840332031 - ], - "bbox": [ - 131.6999969482422, - 363.7998962402344, - 135.89999389648438, - 384.19989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19998931884766, - 363.7998962402344, - 135.89999389648438, - 384.19989013671875 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 72.29998779296875, - 382.69989013671875, - 535.8999633789062, - 403.0998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ˆ", - "origin": [ - 72.29998779296875, - 388.9998779296875 - ], - "bbox": [ - 72.29998779296875, - 382.9998779296875, - 72.29998779296875, - 402.19989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a\u0019\u001c«z5u6=¤b\u001945�5u6[©?57«-£\u001c©Ýß^ÐF«-6[©Ý\u001bu6=¤7\u0018�6e¦1576=\u001boÊ-\u0019#¦ªþ�\u00194\u001b7576B²?§F6BÆ\u001c£\u001c57\u001bu6V\u0018\u001a\u001b76e¤\\5ª\u0019%5u\u0019\u001c«¬\u001bu6VÆ\u001c£\u001c§�¤s\u0018F\u001b7Èe¤�6=©?576[\u001bª\u0019!ʬ£9\u001bu¤o¥/6¸Ê-\u0019g¦)\u001buÈ=\u0019457«-£\u001c©…¥/6BÆ\u001c£\u001c57\u001bu6", - "origin": [ - 72.29998779296875, - 388.9998779296875 - ], - "bbox": [ - 72.29998779296875, - 382.69989013671875, - 535.8999633789062, - 403.0998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 382.69989013671875, - 535.8999633789062, - 403.0998840332031 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 72.29998779296875, - 396.19989013671875, - 535.300048828125, - 416.5998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7«z5u6\u001c ", - "origin": [ - 72.29998779296875, - 402.4998779296875 - ], - "bbox": [ - 72.29998779296875, - 396.19989013671875, - 87.79998779296875, - 416.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "9_", - "origin": [ - 87.79998779296875, - 402.4998779296875 - ], - "bbox": [ - 87.79998779296875, - 396.4998779296875, - 94.19998931884766, - 415.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",ʬÊ-6\u000fÆ9£\u001c§\u001a¤¸¤�6=¨¸ÐFÊ-6[\u001bª\u0019ݤ", - "origin": [ - 94.19998931884766, - 402.4998779296875 - ], - "bbox": [ - 94.19998931884766, - 396.19989013671875, - 180.79998779296875, - 416.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001bõ", - "origin": [ - 180.79998779296875, - 402.4998779296875 - ], - "bbox": [ - 180.79998779296875, - 396.4998779296875, - 184.59999084472656, - 415.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a\u001b76=¨^6=©?5¸\u001b76e¤\\5u\u001b7«Y¦15u«¬Æ96#6)5g\u00194Ê-«¬È=©\u001a\u00194©?576", - "origin": [ - 184.59999084472656, - 402.4998779296875 - ], - "bbox": [ - 184.59999084472656, - 396.19989013671875, - 318.99993896484375, - 416.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 318.99993896484375, - 402.4998779296875 - ], - "bbox": [ - 318.99993896484375, - 396.4998779296875, - 324.0999450683594, - 415.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K¨#\u00194«Y¤¸¤u\u0019\u001c¦ªþF6", - "origin": [ - 324.0999450683594, - 402.4998779296875 - ], - "bbox": [ - 324.0999450683594, - 396.19989013671875, - 372.99993896484375, - 416.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\‡", - "origin": [ - 372.99993896484375, - 402.4998779296875 - ], - "bbox": [ - 372.99993896484375, - 396.4998779296875, - 377.49993896484375, - 415.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f²?§K¯", - "origin": [ - 377.49993896484375, - 402.4998779296875 - ], - "bbox": [ - 377.49993896484375, - 396.19989013671875, - 397.39996337890625, - 416.5998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 396.19989013671875, - 397.39996337890625, - 416.5998840332031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[Ê-ʬ6c6e¤\\5^¤�§F\u001b757£9§/5¸ÊYßÝ\u0018w£\u001c§F\u001b^È[Æ\n«¬576[\u001b!ß", - "origin": [ - 399.6000061035156, - 402.4998779296875 - ], - "bbox": [ - 399.6000061035156, - 396.19989013671875, - 535.300048828125, - 416.5998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.6000061035156, - 396.19989013671875, - 535.300048828125, - 416.5998840332031 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 72.20001220703125, - 409.89990234375, - 534.9999389648438, - 430.2998962402344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ\u001c£\u001c57\u001bu6R\u0018F\u001bu6=¤�5u\u001945u\u0019\u001c«¬\u001bu6R¥/6V57£9§F\u001bu©F6[\u001bs¦)£9§F\u001b�5sß!¦=\u00194§\u001a¤76H¥/6=¤ «-\u001b7\u001buÈ[Ç9§FÊ-\u0019\u001c\u001b7«¬57Èe¤,¥/6HÊ", - "origin": [ - 72.20001220703125, - 416.19989013671875 - ], - "bbox": [ - 72.20001220703125, - 409.89990234375, - 341.6000061035156, - 430.2998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 409.89990234375, - 341.6000061035156, - 430.2998962402344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©É¥/6B¤�6e¤~¦[ʬ«-6[©?5", - "origin": [ - 347.10003662109375, - 416.19989013671875 - ], - "bbox": [ - 347.10003662109375, - 409.89990234375, - 409.3999938964844, - 430.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$T", - "origin": [ - 409.3999938964844, - 416.19989013671875 - ], - "bbox": [ - 409.3999938964844, - 410.19989013671875, - 417.1999816894531, - 429.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y¦)Ô", - "origin": [ - 417.1999816894531, - 416.19989013671875 - ], - "bbox": [ - 417.1999816894531, - 409.89990234375, - 424.6999816894531, - 430.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001a†$ó", - "origin": [ - 424.6999816894531, - 416.19989013671875 - ], - "bbox": [ - 424.6999816894531, - 410.19989013671875, - 439.0999755859375, - 429.39990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.10003662109375, - 409.89990234375, - 439.0999755859375, - 430.2998962402344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\"", - "origin": [ - 441.0000305175781, - 416.19989013671875 - ], - "bbox": [ - 441.0000305175781, - 409.89990234375, - 441.0000305175781, - 430.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001bö", - "origin": [ - 441.0000305175781, - 416.19989013671875 - ], - "bbox": [ - 441.0000305175781, - 410.19989013671875, - 444.8000183105469, - 429.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R\"", - "origin": [ - 444.8000183105469, - 416.19989013671875 - ], - "bbox": [ - 444.8000183105469, - 409.89990234375, - 452.20001220703125, - 430.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ip", - "origin": [ - 452.20001220703125, - 416.19989013671875 - ], - "bbox": [ - 452.20001220703125, - 410.19989013671875, - 457.0, - 429.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "{.u'", - "origin": [ - 457.0, - 416.19989013671875 - ], - "bbox": [ - 457.0, - 409.89990234375, - 464.0, - 430.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$_", - "origin": [ - 464.0, - 416.19989013671875 - ], - "bbox": [ - 464.0, - 410.19989013671875, - 471.79998779296875, - 429.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ�576=ʬÊ-6B³R\u00194Ê-Ê-«-¥F\u0019aø", - "origin": [ - 471.79998779296875, - 416.19989013671875 - ], - "bbox": [ - 471.79998779296875, - 409.89990234375, - 534.9999389648438, - 430.2998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 441.0000305175781, - 409.89990234375, - 534.9999389648438, - 430.2998962402344 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 72.30001831054688, - 423.59991455078125, - 159.7000274658203, - 443.9999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)£9©?57\u001bu6Vð", - "origin": [ - 72.30001831054688, - 429.89990234375 - ], - "bbox": [ - 72.30001831054688, - 423.59991455078125, - 102.40001678466797, - 443.9999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gÁFŸ\"ߊ»ŠÞ1·\u001bºŠ»\n¼/X", - "origin": [ - 102.40001678466797, - 429.89990234375 - ], - "bbox": [ - 102.40001678466797, - 423.89990234375, - 155.4000244140625, - 443.09991455078125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 155.4000244140625, - 429.89990234375 - ], - "bbox": [ - 155.4000244140625, - 423.59991455078125, - 159.7000274658203, - 443.9999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 423.59991455078125, - 159.7000274658203, - 443.9999084472656 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 72.20001983642578, - 442.2999267578125, - 534.7999877929688, - 462.6999206542969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "_", - "origin": [ - 72.20001983642578, - 448.59991455078125 - ], - "bbox": [ - 72.20001983642578, - 442.59991455078125, - 72.20001983642578, - 461.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",©", - "origin": [ - 72.20001983642578, - 448.59991455078125 - ], - "bbox": [ - 72.20001983642578, - 442.2999267578125, - 78.90001678466797, - 462.6999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/�", - "origin": [ - 78.90001678466797, - 448.59991455078125 - ], - "bbox": [ - 78.90001678466797, - 442.59991455078125, - 84.30001831054688, - 461.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©", - "origin": [ - 84.30001831054688, - 448.59991455078125 - ], - "bbox": [ - 84.30001831054688, - 442.2999267578125, - 90.00001525878906, - 462.6999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 90.00001525878906, - 448.59991455078125 - ], - "bbox": [ - 90.00001525878906, - 442.59991455078125, - 96.10001373291016, - 461.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n§F©F6bÔõ£9«-¤×ʬ6V¤�«¬576\u001e\u0018F\u001buå)5", - "origin": [ - 96.10001373291016, - 448.59991455078125 - ], - "bbox": [ - 96.10001373291016, - 442.2999267578125, - 179.50001525878906, - 462.6999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 179.50001525878906, - 448.59991455078125 - ], - "bbox": [ - 179.50001525878906, - 442.59991455078125, - 184.00001525878906, - 461.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?Æ\u001c£\u001c57\u001bu6b\u0018F\u001bu6=¤�5u\u001945u\u00194«-\u001bu6oÆ\u001c£\u001c§�¤×¦)£9¨g¨¸§F©F«Y²?§F6[\u001bª\u0019V57£9§\u001a¤~ʬ6e¤×¥/È[5u\u00194«-ÊY¤,5u6=¦ªþF©F«Y²?§F6=¤×©FÈ=¦[6=¤u¤7\u0019\u001c«¬\u001bu6=¤×߸¤7£\u001c©", - "origin": [ - 184.00001525878906, - 448.59991455078125 - ], - "bbox": [ - 184.00001525878906, - 442.2999267578125, - 534.7999877929688, - 462.6999206542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001983642578, - 442.2999267578125, - 534.7999877929688, - 462.6999206542969 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 72.20001983642578, - 455.99993896484375, - 334.4999694824219, - 476.3999328613281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©\u001a¤\\5ª\u00194Ê-Ê-\u0019457«-£\u001c©K �Ó~£9¨g¨^6H«-Ê-¤R¥/«", - "origin": [ - 72.20001983642578, - 462.2999267578125 - ], - "bbox": [ - 72.20001983642578, - 455.99993896484375, - 181.9000244140625, - 476.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "", - "origin": [ - 181.9000244140625, - 462.2999267578125 - ], - "bbox": [ - 181.9000244140625, - 456.2999267578125, - 184.50003051757812, - 475.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+á[\u001bu6[©?5s57£9§\u001a¤", - "origin": [ - 184.50003051757812, - 462.2999267578125 - ], - "bbox": [ - 184.50003051757812, - 455.99993896484375, - 230.1000213623047, - 476.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0013Ë", - "origin": [ - 230.1000213623047, - 462.2999267578125 - ], - "bbox": [ - 230.1000213623047, - 456.2999267578125, - 236.6000213623047, - 475.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6B©K¯", - "origin": [ - 236.6000213623047, - 462.2999267578125 - ], - "bbox": [ - 236.6000213623047, - 455.99993896484375, - 254.2000274658203, - 476.3999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001983642578, - 455.99993896484375, - 254.2000274658203, - 476.3999328613281 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[©…\u0018\u001a\u0019\u001c\u001b7Ê-6[\u001bª\u00194«w\u0018\u001a\u00199¤s«-¦[«ô ", - "origin": [ - 256.4000244140625, - 462.2999267578125 - ], - "bbox": [ - 256.4000244140625, - 455.99993896484375, - 334.4999694824219, - 476.3999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 256.4000244140625, - 455.99993896484375, - 334.4999694824219, - 476.3999328613281 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 118.70001220703125, - 491.2999572753906, - 124.90000915527344, - 511.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Š", - "origin": [ - 118.70001220703125, - 497.5999450683594 - ], - "bbox": [ - 118.70001220703125, - 491.2999572753906, - 118.70001220703125, - 511.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6ù", - "origin": [ - 118.70001220703125, - 497.5999450683594 - ], - "bbox": [ - 118.70001220703125, - 491.5999450683594, - 124.90000915527344, - 510.7999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.70001220703125, - 491.2999572753906, - 124.90000915527344, - 511.699951171875 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 141.30001831054688, - 491.2999572753906, - 220.50001525878906, - 511.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ސ", - "origin": [ - 141.30001831054688, - 497.5999450683594 - ], - "bbox": [ - 141.30001831054688, - 491.2999572753906, - 147.6000213623047, - 511.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$ú", - "origin": [ - 147.6000213623047, - 497.5999450683594 - ], - "bbox": [ - 147.6000213623047, - 491.5999450683594, - 155.4000244140625, - 510.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#†ˆ‡É†ñƒÉMА†", - "origin": [ - 155.4000244140625, - 497.5999450683594 - ], - "bbox": [ - 155.4000244140625, - 491.2999572753906, - 220.50001525878906, - 511.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.30001831054688, - 491.2999572753906, - 220.50001525878906, - 511.699951171875 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 72.30001831054688, - 525.199951171875, - 269.0, - 545.5999145507812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m\u0019^¤7ø?©?5ª\u0019%ÿ/6\u001e¥/§ÉÊY\u00194©FÇ?\u00194Ç\u001c6\u001e³R´oµÍ¶Ù6=¤�5 57\u001buá=¤s¤�«-¨g\u0018FÊ-6\u001c ", - "origin": [ - 72.30001831054688, - 531.4999389648438 - ], - "bbox": [ - 72.30001831054688, - 525.199951171875, - 269.0, - 545.5999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 525.199951171875, - 269.0, - 545.5999145507812 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 278.0000305175781, - 525.199951171875, - 536.8999633789062, - 545.5999145507812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊwÔy\u00194«¬5o\u0018\u001a\u00194\u001b757«;¥;¯", - "origin": [ - 278.0000305175781, - 531.4999389648438 - ], - "bbox": [ - 278.0000305175781, - 525.199951171875, - 332.10003662109375, - 545.5999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.0000305175781, - 525.199951171875, - 332.10003662109375, - 545.5999145507812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6\u001eÔy\u00194¨g«-ʬÊ-6B¥/6\u001eÊY\u00194©\u001aÇ9\u00194Ç96\u001e²?§F6VÊô¯", - "origin": [ - 334.3000183105469, - 531.4999389648438 - ], - "bbox": [ - 334.3000183105469, - 525.199951171875, - 455.79998779296875, - 545.5999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.3000183105469, - 525.199951171875, - 455.79998779296875, - 545.5999145507812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©É\u00194\u0018F\u0018w6[Ê-Ê-6H¦[£\u001c¨g¨¸§F°", - "origin": [ - 458.0000305175781, - 531.4999389648438 - ], - "bbox": [ - 458.0000305175781, - 525.199951171875, - 536.8999633789062, - 545.5999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.0000305175781, - 525.199951171875, - 536.8999633789062, - 545.5999145507812 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 72.20001220703125, - 538.7999877929688, - 482.7000427246094, - 559.199951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©FÈ=¨^6=©?5M(¬\"%$", - "origin": [ - 72.20001220703125, - 545.0999755859375 - ], - "bbox": [ - 72.20001220703125, - 538.7999877929688, - 115.50000762939453, - 559.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nû", - "origin": [ - 115.50000762939453, - 545.0999755859375 - ], - "bbox": [ - 115.50000762939453, - 539.0999755859375, - 120.80001068115234, - 558.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9\"", - "origin": [ - 120.80001068115234, - 545.0999755859375 - ], - "bbox": [ - 120.80001068115234, - 538.7999877929688, - 125.90000915527344, - 559.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\û", - "origin": [ - 125.90000915527344, - 545.0999755859375 - ], - "bbox": [ - 125.90000915527344, - 539.0999755859375, - 130.40000915527344, - 558.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9'", - "origin": [ - 130.40000915527344, - 545.0999755859375 - ], - "bbox": [ - 130.40000915527344, - 538.7999877929688, - 135.50001525878906, - 559.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�uüæes", - "origin": [ - 135.50001525878906, - 545.0999755859375 - ], - "bbox": [ - 135.50001525878906, - 539.0999755859375, - 156.50003051757812, - 558.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ª\"%(", - "origin": [ - 156.50003051757812, - 545.0999755859375 - ], - "bbox": [ - 156.50003051757812, - 538.7999877929688, - 165.40003967285156, - 559.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "pÚu", - "origin": [ - 165.40003967285156, - 545.0999755859375 - ], - "bbox": [ - 165.40003967285156, - 539.0999755859375, - 170.90003967285156, - 558.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ")'", - "origin": [ - 170.90003967285156, - 545.0999755859375 - ], - "bbox": [ - 170.90003967285156, - 538.7999877929688, - 175.20004272460938, - 559.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�u", - "origin": [ - 175.20004272460938, - 545.0999755859375 - ], - "bbox": [ - 175.20004272460938, - 539.0999755859375, - 179.5000457763672, - 558.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c \u001a¶\u0019g¤�ø\n©?5u\u00194ÿ\n6B¥/6M¦[6HÊ-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6V\u0018�6=§/5R¤�6H\u001buÈ=¤7§F¨g6[\u001bo6=©…¤7«¬ÿ\u000f\u001b7á=Ç\u001cÊ-6=¤~57\u001buá=¤o¤7«-¨^\u0018\u001aʬ6e¤[ ", - "origin": [ - 179.5000457763672, - 545.0999755859375 - ], - "bbox": [ - 179.5000457763672, - 538.7999877929688, - 482.7000427246094, - 559.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 538.7999877929688, - 482.7000427246094, - 559.199951171875 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 72.50001525878906, - 570.7999267578125, - 218.50001525878906, - 589.9999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ì1\u0019\u001b\u0018", - "origin": [ - 72.50001525878906, - 576.7999267578125 - ], - "bbox": [ - 72.50001525878906, - 570.7999267578125, - 83.40001678466797, - 589.9999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 570.7999267578125, - 83.40001678466797, - 589.9999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A°;8\u001a5�­#8\u0013­#)6%•ýñÏ�8\u001a°\u001b:€%H)", - "origin": [ - 103.00001525878906, - 576.7999267578125 - ], - "bbox": [ - 103.00001525878906, - 570.7999267578125, - 218.50001525878906, - 589.9999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00001525878906, - 570.7999267578125, - 218.50001525878906, - 589.9999389648438 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 72.30001831054688, - 598.9999389648438, - 536.2999877929688, - 619.39990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "³R´oµ\u000e¶ò6=¤�5\u001e\u0019aÆ%\u00194©?5o57£9§/5\u001e§\u001a©ÝÊ-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6Bß#Ð\u001a\u0019\u001cʬ«Y¤�6e¤[ +Ó\u001e¯", - "origin": [ - 72.30001831054688, - 605.2999267578125 - ], - "bbox": [ - 72.30001831054688, - 598.9999389648438, - 271.8000183105469, - 619.39990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 598.9999389648438, - 271.8000183105469, - 619.39990234375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5\u001eß\u000f¥/«¬\u001bu6B§F©ÍÊY\u00194©\u001aÇ9\u00194Ç96B²9§\u001a«m\u0018w6[\u001bu¨^6[5\u001e¥/6¸¥FÈ", - "origin": [ - 273.9000244140625, - 605.2999267578125 - ], - "bbox": [ - 273.9000244140625, - 598.9999389648438, - 439.2000427246094, - 619.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 439.2000427246094, - 605.2999267578125 - ], - "bbox": [ - 439.2000427246094, - 599.2999267578125, - 443.5000305175781, - 618.4999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«-\u001b\u001e¥F6=¤", - "origin": [ - 443.5000305175781, - 605.2999267578125 - ], - "bbox": [ - 443.5000305175781, - 598.9999389648438, - 474.9000244140625, - 619.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*‡", - "origin": [ - 474.9000244140625, - 605.2999267578125 - ], - "bbox": [ - 474.9000244140625, - 599.2999267578125, - 482.20001220703125, - 618.4999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=£\u001c©F6e¤b²?§F«m£9©?5", - "origin": [ - 482.20001220703125, - 605.2999267578125 - ], - "bbox": [ - 482.20001220703125, - 598.9999389648438, - 536.2999877929688, - 619.39990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 273.9000244140625, - 598.9999389648438, - 536.2999877929688, - 619.39990234375 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 72.30001831054688, - 612.5999755859375, - 157.9000244140625, - 632.9999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)6=\u001b�5ª\u00194«-©F6=¤s\u0018\u001a\u001b7£9\u0018F\u001b7«-È)5uÈ=¤= ", - "origin": [ - 72.30001831054688, - 618.8999633789062 - ], - "bbox": [ - 72.30001831054688, - 612.5999755859375, - 157.9000244140625, - 632.9999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 612.5999755859375, - 157.9000244140625, - 632.9999389648438 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 78.80001831054688, - 631.3999633789062, - 434.7000427246094, - 651.7999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6", - "origin": [ - 78.80001831054688, - 637.699951171875 - ], - "bbox": [ - 78.80001831054688, - 631.3999633789062, - 121.60002136230469, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 121.60002136230469, - 637.699951171875 - ], - "bbox": [ - 121.60002136230469, - 631.699951171875, - 126.70001983642578, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F¤�«", - "origin": [ - 126.70001983642578, - 637.699951171875 - ], - "bbox": [ - 126.70001983642578, - 631.3999633789062, - 136.00003051757812, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ë", - "origin": [ - 136.00003051757812, - 637.699951171875 - ], - "bbox": [ - 136.00003051757812, - 631.699951171875, - 141.50003051757812, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6BÆ\u001c6[§Fÿ\u000fÈ=¦[\u001b7«-\u001b76V6[©…Ç9\u001bu\u00199¤", - "origin": [ - 141.50003051757812, - 637.699951171875 - ], - "bbox": [ - 141.50003051757812, - 631.3999633789062, - 231.1000213623047, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[cË", - "origin": [ - 231.1000213623047, - 637.699951171875 - ], - "bbox": [ - 231.1000213623047, - 631.699951171875, - 240.1000213623047, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6BÆ%\u00194«Y¤o¥/È", - "origin": [ - 240.1000213623047, - 637.699951171875 - ], - "bbox": [ - 240.1000213623047, - 631.3999633789062, - 276.8000183105469, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 276.8000183105469, - 637.699951171875 - ], - "bbox": [ - 276.8000183105469, - 631.699951171875, - 281.1000061035156, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©F«¬\u001bo§\u001a©F6", - "origin": [ - 281.1000061035156, - 637.699951171875 - ], - "bbox": [ - 281.1000061035156, - 631.3999633789062, - 313.300048828125, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$‡", - "origin": [ - 313.300048828125, - 637.699951171875 - ], - "bbox": [ - 313.300048828125, - 631.699951171875, - 321.10003662109375, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£9©F6H£", - "origin": [ - 321.10003662109375, - 637.699951171875 - ], - "bbox": [ - 321.10003662109375, - 631.3999633789062, - 343.800048828125, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fþ", - "origin": [ - 343.800048828125, - 637.699951171875 - ], - "bbox": [ - 343.800048828125, - 631.699951171875, - 348.800048828125, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰57£\u001c§F5R¤�6=\u001bu\u0019^6[©ÉÇ\u001c\u001bª\u0019\u001c¤V8", - "origin": [ - 348.800048828125, - 637.699951171875 - ], - "bbox": [ - 348.800048828125, - 631.3999633789062, - 434.7000427246094, - 651.7999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80001831054688, - 631.3999633789062, - 434.7000427246094, - 651.7999267578125 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 97.70001983642578, - 648.199951171875, - 274.20001220703125, - 667.3999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÿ", - "origin": [ - 97.70001983642578, - 654.199951171875 - ], - "bbox": [ - 97.70001983642578, - 648.199951171875, - 97.70001983642578, - 667.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "������\n\f\u000b\u000e\r\f\r�\u000b\u0010\u000f\f\u0011�\u0012�\u0013�\u0014\u000e\u000b\u0015\u000b�\u0014\u0016\r\u0015\u000b�\u0017\u0015\u0018\u0019\u0012�\u0013�\u0014", - "origin": [ - 97.70001983642578, - 654.199951171875 - ], - "bbox": [ - 97.70001983642578, - 649.4999389648438, - 238.7000274658203, - 667.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|ÿ", - "origin": [ - 238.7000274658203, - 654.199951171875 - ], - "bbox": [ - 238.7000274658203, - 648.199951171875, - 243.6000213623047, - 667.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001b\u001a\u0019�����", - "origin": [ - 243.6000213623047, - 654.199951171875 - ], - "bbox": [ - 243.6000213623047, - 649.4999389648438, - 274.20001220703125, - 667.2999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.70001983642578, - 648.199951171875, - 274.20001220703125, - 667.3999633789062 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 72.50001525878906, - 665.5, - 142.9000244140625, - 685.8999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6M²?§F«K¥/£9©F©F6[\u001bª\u0019É8", - "origin": [ - 72.50001525878906, - 671.7999877929688 - ], - "bbox": [ - 72.50001525878906, - 665.5, - 142.9000244140625, - 685.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 665.5, - 142.9000244140625, - 685.8999633789062 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 112.30001831054688, - 680.5, - 229.6000213623047, - 700.8999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "º!¾?—[—e¾ÝóiÂm˜%ÁFØe¾Í¾\nØ[—g¾\n–", - "origin": [ - 112.30001831054688, - 686.7999877929688 - ], - "bbox": [ - 112.30001831054688, - 680.5, - 203.60003662109375, - 700.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.30001831054688, - 680.5, - 203.60003662109375, - 700.8999633789062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\f", - "origin": [ - 213.70001220703125, - 686.7999877929688 - ], - "bbox": [ - 213.70001220703125, - 680.7999877929688, - 213.70001220703125, - 700.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a˜%ÁFØ", - "origin": [ - 213.70001220703125, - 686.7999877929688 - ], - "bbox": [ - 213.70001220703125, - 680.5, - 229.6000213623047, - 700.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 213.70001220703125, - 680.5, - 229.6000213623047, - 700.8999633789062 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 72.30000305175781, - 699.7000122070312, - 534.10009765625, - 720.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6#ÊY\u00194©\u001aÇ9\u00194Ç96#³R´oµÍ¶", - "origin": [ - 72.30000305175781, - 706.0 - ], - "bbox": [ - 72.30000305175781, - 699.7000122070312, - 147.40000915527344, - 720.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 699.7000122070312, - 147.40000915527344, - 720.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5¸ß…\u0018w6[«-©F6c\u0018\u001aʬ§\u001a¤¸¦)£\u001c¨g\u0018FÊ-«Y²9§\u001aÈ", - "origin": [ - 157.60000610351562, - 706.0 - ], - "bbox": [ - 157.60000610351562, - 699.7000122070312, - 271.20001220703125, - 720.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "²T", - "origin": [ - 271.20001220703125, - 706.0 - ], - "bbox": [ - 271.20001220703125, - 700.0, - 280.4000244140625, - 719.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õÆ9£\u001c«-\u001bB\u0018Fʬ§�¤MÊ-£\u001c«-©", - "origin": [ - 280.4000244140625, - 706.0 - ], - "bbox": [ - 280.4000244140625, - 699.7000122070312, - 336.6000061035156, - 720.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fX", - "origin": [ - 336.6000061035156, - 706.0 - ], - "bbox": [ - 336.6000061035156, - 700.0, - 342.3000183105469, - 719.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 m3\u001eá=¤¸Ê¬£9\u001bu¤", - "origin": [ - 342.3000183105469, - 706.0 - ], - "bbox": [ - 342.3000183105469, - 699.7000122070312, - 384.50006103515625, - 720.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 384.50006103515625, - 706.0 - ], - "bbox": [ - 384.50006103515625, - 700.0, - 389.00006103515625, - 719.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";ÊY\u0019…\u0018F\u001b7«-©\u001a¦[«¬\u0018\u001a\u0019\u001cʬ6c¥F«", - "origin": [ - 389.00006103515625, - 706.0 - ], - "bbox": [ - 389.00006103515625, - 699.7000122070312, - 459.00006103515625, - 720.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ">", - "origin": [ - 459.00006103515625, - 706.0 - ], - "bbox": [ - 459.00006103515625, - 700.0, - 461.6000671386719, - 719.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦)§\u001aÊz5uÈ\u000f¥/§¿³R´oµ\u000e¶", - "origin": [ - 461.6000671386719, - 706.0 - ], - "bbox": [ - 461.6000671386719, - 699.7000122070312, - 534.10009765625, - 720.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.60000610351562, - 699.7000122070312, - 534.10009765625, - 720.0999755859375 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 72.20000457763672, - 713.2999877929688, - 381.6999816894531, - 733.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu6[Æ\n«¬6=©?5oßg¦[£\u001c©F©\u001a\u0019", - "origin": [ - 72.20000457763672, - 719.5999755859375 - ], - "bbox": [ - 72.20000457763672, - 713.2999877929688, - 134.30001831054688, - 733.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001c", - "origin": [ - 134.30001831054688, - 719.5999755859375 - ], - "bbox": [ - 134.30001831054688, - 714.8999633789062, - 139.1000213623047, - 732.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-5u\u001b76H6[5o¤u\u0019aÆ\u001c£9«¬\u001bo¦[£\u001c\u001bu\u001b76e¦1576=¨g6[©?5 §F57«-ʬ«Y¤�6=\u001boʬ6e¤o¥/«", - "origin": [ - 139.1000213623047, - 719.5999755859375 - ], - "bbox": [ - 139.1000213623047, - 713.2999877929688, - 310.3999938964844, - 733.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h", - "origin": [ - 310.3999938964844, - 719.5999755859375 - ], - "bbox": [ - 310.3999938964844, - 713.5999755859375, - 313.1000061035156, - 732.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wÈ=\u001b76=©95u6=¤oÐ�\u00194Ê-«-¤76=¤= ", - "origin": [ - 313.1000061035156, - 719.5999755859375 - ], - "bbox": [ - 313.1000061035156, - 713.2999877929688, - 381.6999816894531, - 733.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20000457763672, - 713.2999877929688, - 381.6999816894531, - 733.699951171875 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 35.29997634887695, - 595.0, - 476.3999328613281 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 118.70001220703125, - 491.2999572753906, - 124.90000915527344, - 511.699951171875 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 141.30001831054688, - 491.2999572753906, - 220.50001525878906, - 511.699951171875 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 525.199951171875, - 595.0, - 733.699951171875 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 178.70001220703125, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ä", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×Á‚Ø[ÚK–+—eÁ/ÛK¾Íš¾ÝÜiÁFØ=¾", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 178.70001220703125, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 178.70001220703125, - 55.699974060058594 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.5, - 77.699951171875, - 241.09999084472656, - 96.89994812011719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "?1\u0019Dè", - "origin": [ - 72.5, - 83.699951171875 - ], - "bbox": [ - 72.5, - 77.699951171875, - 82.69999694824219, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 77.699951171875, - 82.69999694824219, - 96.89994812011719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "éÈ!&3ê34)657-•ë×8\u001a:;\u001f\")K%H8ì\u001d�8\u0013­#)ÑS", - "origin": [ - 103.30000305175781, - 83.699951171875 - ], - "bbox": [ - 103.30000305175781, - 77.699951171875, - 241.09999084472656, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.30000305175781, - 77.699951171875, - 241.09999084472656, - 96.89994812011719 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 72.20000457763672, - 105.89994812011719, - 538.0000610351562, - 126.2999496459961 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi£\u001c§F\u001b ¦)6=Ê-\u0019", - "origin": [ - 72.20000457763672, - 112.199951171875 - ], - "bbox": [ - 72.20000457763672, - 105.89994812011719, - 107.80001068115234, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g[", - "origin": [ - 107.80001068115234, - 112.199951171875 - ], - "bbox": [ - 107.80001068115234, - 106.199951171875, - 113.40000915527344, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4«¬ÊwÆ\u001c£9§\u001a¤iÔy\u0019\u001c§/5×§F©c£9\u001bu¥F«¬©\u001a\u00194576=§F\u001b,6)5~§F©cÈ=¥F«z5u6[§F\u001b ¥/6o576[ÿ\n576\u001c ?Ëi6[\u001bª¤�£9©F©F6=ʬÊ-6[¨g6[©?5", - "origin": [ - 113.40000915527344, - 112.199951171875 - ], - "bbox": [ - 113.40000915527344, - 105.89994812011719, - 398.0, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[xË", - "origin": [ - 398.0, - 112.199951171875 - ], - "bbox": [ - 398.0, - 106.199951171875, - 406.8000183105469, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6R¦)£9©\u001a¤76[«-ʬÊ-6", - "origin": [ - 406.8000183105469, - 112.199951171875 - ], - "bbox": [ - 406.8000183105469, - 105.89994812011719, - 449.5, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*_", - "origin": [ - 449.5, - 112.199951171875 - ], - "bbox": [ - 449.5, - 106.199951171875, - 456.79998779296875, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",¨#\u0019\u001c¦=¤,£9§", - "origin": [ - 456.79998779296875, - 112.199951171875 - ], - "bbox": [ - 456.79998779296875, - 105.89994812011719, - 493.20001220703125, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ʐ�_", - "origin": [ - 493.20001220703125, - 112.199951171875 - ], - "bbox": [ - 493.20001220703125, - 106.199951171875, - 509.0, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",¨#\u0019\u001c¦=¤", - "origin": [ - 509.0, - 112.199951171875 - ], - "bbox": [ - 509.0, - 105.89994812011719, - 533.6000366210938, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 533.6000366210938, - 112.199951171875 - ], - "bbox": [ - 533.6000366210938, - 106.199951171875, - 538.0000610351562, - 125.39994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20000457763672, - 105.89994812011719, - 538.0000610351562, - 126.2999496459961 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.20000457763672, - 119.49992370605469, - 505.29998779296875, - 139.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨#\u00194«Y¤sʬ6", - "origin": [ - 72.20000457763672, - 125.7999267578125 - ], - "bbox": [ - 72.20000457763672, - 119.49992370605469, - 98.20000457763672, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "C`", - "origin": [ - 98.20000457763672, - 125.7999267578125 - ], - "bbox": [ - 98.20000457763672, - 119.7999267578125, - 106.10000610351562, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R£45u6[\u0018\u001a\u00199¥‰¥/6BÏ", - "origin": [ - 106.10000610351562, - 125.7999267578125 - ], - "bbox": [ - 106.10000610351562, - 119.49992370605469, - 159.40000915527344, - 139.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20000457763672, - 119.49992370605469, - 159.40000915527344, - 139.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©\u001a¥/£", - "origin": [ - 169.60000610351562, - 125.7999267578125 - ], - "bbox": [ - 169.60000610351562, - 119.49992370605469, - 183.40000915527344, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ií", - "origin": [ - 183.40000915527344, - 125.7999267578125 - ], - "bbox": [ - 183.40000915527344, - 119.7999267578125, - 188.20001220703125, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b¤s\u0018w6[§F5o57£\u001c§F5R\u00194§\u001a¤u¤�«;Ð\u001a«¬6=©‰Ôy\u0019\u001c«¬\u001bu6HÊô¯", - "origin": [ - 188.20001220703125, - 125.7999267578125 - ], - "bbox": [ - 188.20001220703125, - 119.49992370605469, - 319.0000305175781, - 139.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.60000610351562, - 119.49992370605469, - 319.0000305175781, - 139.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019", - "origin": [ - 321.29998779296875, - 125.7999267578125 - ], - "bbox": [ - 321.29998779296875, - 119.49992370605469, - 321.29998779296875, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I", - "origin": [ - 321.29998779296875, - 125.7999267578125 - ], - "bbox": [ - 321.29998779296875, - 119.7999267578125, - 326.0999755859375, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";\u00194«-\u001bu6", - "origin": [ - 326.0999755859375, - 125.7999267578125 - ], - "bbox": [ - 326.0999755859375, - 119.49992370605469, - 343.7999572753906, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "mT", - "origin": [ - 343.7999572753906, - 125.7999267578125 - ], - "bbox": [ - 343.7999572753906, - 119.7999267578125, - 351.9999694824219, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yÐF«¬6=©Ý²9§m¯", - "origin": [ - 351.9999694824219, - 125.7999267578125 - ], - "bbox": [ - 351.9999694824219, - 119.49992370605469, - 388.20001220703125, - 139.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.29998779296875, - 119.49992370605469, - 388.20001220703125, - 139.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-ÊK©F6M¤7£\u001c«¬5o\u0018\u001a\u0019\u001c¤o\u0019\u001c§\u001a¤7¤7«;È[Æ9£\u001cÊ-§FÈ", - "origin": [ - 390.29998779296875, - 125.7999267578125 - ], - "bbox": [ - 390.29998779296875, - 119.49992370605469, - 496.3999938964844, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 496.3999938964844, - 125.7999267578125 - ], - "bbox": [ - 496.3999938964844, - 119.7999267578125, - 501.0, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 501.0, - 125.7999267578125 - ], - "bbox": [ - 501.0, - 119.49992370605469, - 505.29998779296875, - 139.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.29998779296875, - 119.49992370605469, - 505.29998779296875, - 139.89993286132812 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 78.89997863769531, - 138.29991149902344, - 536.4998779296875, - 158.69992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ\n«Y¥/6[¨g¨g6[©?5", - "origin": [ - 78.89997863769531, - 144.59991455078125 - ], - "bbox": [ - 78.89997863769531, - 138.29991149902344, - 123.09999084472656, - 158.69992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 123.09999084472656, - 144.59991455078125 - ], - "bbox": [ - 123.09999084472656, - 138.59991455078125, - 127.59999084472656, - 157.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬Ê~6)ÿ/«Y¤\\5u6c¥/6=¤H5ª\u0019\u001c¤M¥F6#ʬ£9Ç\u001c«Y¦)«-6[ÊY¤V57\u001buá=¤M¤7£\u001c\u0018Fþ\u001a«-¤�57«Y²?§FÈ=¤M²?§F«×\u0018�6=\u001b7¨g6)57576=©95^¥/6gÔy\u00194«-\u001b76c¥F6=¤B\u0018\u001a\u0019\u001cÇ\u001c6e¤B³R´oµÍ¶Õ¤u\u00194©�¤", - "origin": [ - 127.59999084472656, - 144.59991455078125 - ], - "bbox": [ - 127.59999084472656, - 138.29991149902344, - 536.4998779296875, - 158.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.89997863769531, - 138.29991149902344, - 536.4998779296875, - 158.69992065429688 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.0999755859375, - 151.89988708496094, - 535.7999877929688, - 172.29989624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "57£9§\u001a¦ªþF6=\u001bb\u00194§ÉÊ-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6H³R´oµÍ¶", - "origin": [ - 72.0999755859375, - 158.19989013671875 - ], - "bbox": [ - 72.0999755859375, - 151.89988708496094, - 181.59999084472656, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&[", - "origin": [ - 181.59999084472656, - 158.19989013671875 - ], - "bbox": [ - 181.59999084472656, - 152.19989013671875, - 188.39999389648438, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a¨#\u00194«Y¤s«¬ÊY¤oÇ9È[©Fá=\u001b76=©95s\u001bª\u00194\u001bu6[¨g6[©?5b¥/§Ý¦)£/¥/6B\u0018F\u001bu£\u001c\u0018\u001a\u001b76", - "origin": [ - 188.39999389648438, - 158.19989013671875 - ], - "bbox": [ - 188.39999389648438, - 151.89988708496094, - 374.09991455078125, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T", - "origin": [ - 374.09991455078125, - 158.19989013671875 - ], - "bbox": [ - 374.09991455078125, - 152.19989013671875, - 382.39990234375, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y¤7£\u001c§FÆ96[©?5oʬ£9§F\u001bª¥", - "origin": [ - 382.39990234375, - 158.19989013671875 - ], - "bbox": [ - 382.39990234375, - 151.89988708496094, - 439.2999572753906, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ".[", - "origin": [ - 439.2999572753906, - 158.19989013671875 - ], - "bbox": [ - 439.2999572753906, - 152.19989013671875, - 445.2999572753906, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\u001bu6=¥/£9©\u001a¥F\u00194©?5", - "origin": [ - 445.2999572753906, - 158.19989013671875 - ], - "bbox": [ - 445.2999572753906, - 151.89988708496094, - 490.9999694824219, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 490.9999694824219, - 158.19989013671875 - ], - "bbox": [ - 490.9999694824219, - 152.19989013671875, - 495.5999755859375, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?£9§…¨^å=¨g6", - "origin": [ - 495.5999755859375, - 158.19989013671875 - ], - "bbox": [ - 495.5999755859375, - 151.89988708496094, - 535.7999877929688, - 172.29989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.0999755859375, - 151.89988708496094, - 535.7999877929688, - 172.29989624023438 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.1999740600586, - 165.5998992919922, - 535.7999877929688, - 185.99990844726562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©?§F57«-ʬ6", - "origin": [ - 72.1999740600586, - 171.89990234375 - ], - "bbox": [ - 72.1999740600586, - 165.5998992919922, - 95.0999755859375, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YX", - "origin": [ - 95.0999755859375, - 171.89990234375 - ], - "bbox": [ - 95.0999755859375, - 165.89990234375, - 99.79997253417969, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ®\u001e§F«", - "origin": [ - 99.79997253417969, - 171.89990234375 - ], - "bbox": [ - 99.79997253417969, - 165.5998992919922, - 123.29997253417969, - 185.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.1999740600586, - 165.5998992919922, - 123.29997253417969, - 185.99990844726562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018FÊ-§\u001a¤H6e¤\\5", - "origin": [ - 129.8999786376953, - 171.89990234375 - ], - "bbox": [ - 129.8999786376953, - 165.5998992919922, - 159.79998779296875, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 159.79998779296875, - 171.89990234375 - ], - "bbox": [ - 159.79998779296875, - 165.89990234375, - 164.39999389648438, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";Æ\u001c£9¤\u001e\u0018w£9¤u¤�«-ÐF«-ʬ«¬57Èe¤B¤�£9©95H\u001bu6=¤�57\u001bu6[«-©95u6=¤V\u00194§/ÿ\u000e¦=\u00194\u0018\u001a\u00199¦)«¬57Èe¤V¥F§�Ê-£\u001cÇ9«-¦[«¬6=Êi²?§F«", - "origin": [ - 164.39999389648438, - 171.89990234375 - ], - "bbox": [ - 164.39999389648438, - 165.5998992919922, - 431.8000183105469, - 185.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.8999786376953, - 165.5998992919922, - 431.8000183105469, - 185.99990844726562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£", - "origin": [ - 438.39996337890625, - 171.89990234375 - ], - "bbox": [ - 438.39996337890625, - 165.5998992919922, - 438.39996337890625, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F", - "origin": [ - 438.39996337890625, - 171.89990234375 - ], - "bbox": [ - 438.39996337890625, - 165.89990234375, - 443.39996337890625, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w\u001bu6!57£\u001c§", - "origin": [ - 443.39996337890625, - 171.89990234375 - ], - "bbox": [ - 443.39996337890625, - 165.5998992919922, - 470.199951171875, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Ë", - "origin": [ - 470.199951171875, - 171.89990234375 - ], - "bbox": [ - 470.199951171875, - 165.89990234375, - 475.0999450683594, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\£\u001c§F\u001bª¤V¨^£9«¬©�¤V¥F6", - "origin": [ - 475.0999450683594, - 171.89990234375 - ], - "bbox": [ - 475.0999450683594, - 165.5998992919922, - 535.7999877929688, - 185.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 438.39996337890625, - 165.5998992919922, - 535.7999877929688, - 185.99990844726562 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.199951171875, - 179.29991149902344, - 257.7999572753906, - 199.69992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018w£9¤u¤�«-ÐF«-ʬ«¬57ÈM²?§F6HÊ-6BÊ-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6\u001e³\u001e´oµÍ¶‚Ê-§F«z°", - "origin": [ - 72.199951171875, - 185.59991455078125 - ], - "bbox": [ - 72.199951171875, - 179.29991149902344, - 228.29998779296875, - 199.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 179.29991149902344, - 228.29998779296875, - 199.69992065429688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨gå[¨g6\u001c ", - "origin": [ - 231.79995727539062, - 185.59991455078125 - ], - "bbox": [ - 231.79995727539062, - 179.29991149902344, - 257.7999572753906, - 199.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 231.79995727539062, - 179.29991149902344, - 257.7999572753906, - 199.69992065429688 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 72.49995422363281, - 211.19989013671875, - 296.1999206542969, - 230.39988708496094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "?1\u0019\rï", - "origin": [ - 72.49995422363281, - 217.19989013671875 - ], - "bbox": [ - 72.49995422363281, - 211.19989013671875, - 82.89995574951172, - 230.39988708496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49995422363281, - 211.19989013671875, - 82.89995574951172, - 230.39988708496094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "éÈ),J12CBq:€°ðë×8\u001a2‰-U8.¬\u00138\u001357-('�),+\u0011!&3ê3ñ)E5�+\u0011)=\u001f", - "origin": [ - 103.29995727539062, - 217.19989013671875 - ], - "bbox": [ - 103.29995727539062, - 211.19989013671875, - 296.1999206542969, - 230.39988708496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.29995727539062, - 211.19989013671875, - 296.1999206542969, - 230.39988708496094 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 78.59996032714844, - 239.39988708496094, - 410.5999450683594, - 259.7998962402344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æa\u0019\u001c©?5o¥F6BÆ\u001c£\u001c§�¤sÊ-\u0019\u001c©\u001a¦)6=\u001bs¥\u001a\u00194©\u001a¤sÊY\u0019#¦)£9©\u001a¦)6=\u0018/57«-£\u001c©…¥;¯", - "origin": [ - 78.59996032714844, - 245.69989013671875 - ], - "bbox": [ - 78.59996032714844, - 239.39988708496094, - 256.3999938964844, - 259.7998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.59996032714844, - 239.39988708496094, - 256.3999938964844, - 259.7998962402344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6B\u0018\u001a\u0019\u001cÇ\u001c6VÏ�6=Ð", - "origin": [ - 258.5999755859375, - 245.69989013671875 - ], - "bbox": [ - 258.5999755859375, - 239.39988708496094, - 314.39996337890625, - 259.7998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 314.39996337890625, - 245.69989013671875 - ], - "bbox": [ - 314.39996337890625, - 239.69989013671875, - 320.4999694824219, - 258.89990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F«-Ê;Ôy\u00194§/5R¥F6[§/ÿ…¦ªþF£9¤76=¤V8", - "origin": [ - 320.4999694824219, - 245.69989013671875 - ], - "bbox": [ - 320.4999694824219, - 239.39988708496094, - 410.5999450683594, - 259.7998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.5999755859375, - 239.39988708496094, - 410.5999450683594, - 259.7998962402344 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 84.89997863769531, - 256.39990234375, - 89.9999771118164, - 276.7998962402344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9 ", - "origin": [ - 84.89997863769531, - 262.69989013671875 - ], - "bbox": [ - 84.89997863769531, - 256.39990234375, - 89.9999771118164, - 276.7998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.89997863769531, - 256.39990234375, - 89.9999771118164, - 276.7998962402344 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 103.4999771118164, - 256.39990234375, - 216.39999389648438, - 276.7998962402344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ9£\u001c«-\u001b §\u001a©É£9\u001bu¥F«¬©\u001a\u00194576=§F\u001bs\u001b76=ʬ«-ÈBß!Ê", - "origin": [ - 103.4999771118164, - 262.69989013671875 - ], - "bbox": [ - 103.4999771118164, - 256.39990234375, - 216.39999389648438, - 276.7998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.4999771118164, - 256.39990234375, - 216.39999389648438, - 276.7998962402344 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 225.59999084472656, - 256.39990234375, - 394.2998962402344, - 276.7998962402344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©95u6[\u001bu©F6)5", - "origin": [ - 225.59999084472656, - 262.69989013671875 - ], - "bbox": [ - 225.59999084472656, - 256.39990234375, - 252.89999389648438, - 276.7998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ðT", - "origin": [ - 252.89999389648438, - 262.69989013671875 - ], - "bbox": [ - 252.89999389648438, - 256.69989013671875, - 260.8999938964844, - 275.89990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô¥/6B\u0018F\u001buÈ)ÔõÈ=\u001b76=©\u001a¦)6V6[©…\u0018w6[\u001bu¨g\u0019\u001c©F6[©�¦)6", - "origin": [ - 260.8999938964844, - 262.69989013671875 - ], - "bbox": [ - 260.8999938964844, - 256.39990234375, - 385.39990234375, - 276.7998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 385.39990234375, - 262.69989013671875 - ], - "bbox": [ - 385.39990234375, - 256.69989013671875, - 389.9999084472656, - 275.89990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 389.9999084472656, - 262.69989013671875 - ], - "bbox": [ - 389.9999084472656, - 256.39990234375, - 394.2998962402344, - 276.7998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.59999084472656, - 256.39990234375, - 394.2998962402344, - 276.7998962402344 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 84.49998474121094, - 273.4998779296875, - 89.99998474121094, - 293.8998718261719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "AF ", - "origin": [ - 84.49998474121094, - 279.79986572265625 - ], - "bbox": [ - 84.49998474121094, - 273.4998779296875, - 89.99998474121094, - 293.8998718261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.49998474121094, - 273.4998779296875, - 89.99998474121094, - 293.8998718261719 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 103.49998474121094, - 273.4998779296875, - 363.6999816894531, - 293.8998718261719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ9£\u001c«-\u001b §\u001a©ÉÊ-£\u001cÇ9«-¦[«¬6=Ê;¥/6M¤�6=\u001b7Æ96[§F\u001bsÏÙ6[Ðݲ?§F«;Ôõ£9©\u001a¦15u«¬£9©F©F6B¦)£9\u001b7\u001bu6=¦)576[¨g6=©95e ", - "origin": [ - 103.49998474121094, - 279.79986572265625 - ], - "bbox": [ - 103.49998474121094, - 273.4998779296875, - 363.6999816894531, - 293.8998718261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.49998474121094, - 273.4998779296875, - 363.6999816894531, - 293.8998718261719 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 72.29998779296875, - 290.599853515625, - 536.2998657226562, - 310.9998474121094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 72.29998779296875, - 296.89984130859375 - ], - "bbox": [ - 72.29998779296875, - 290.89984130859375, - 72.29998779296875, - 310.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "o6=¨^\u0018\u001aʬ«-\u001b\u001e¦[6=¤R¥F6[§/ÿݦ)£9©\u001a¥/«¬57«-£\u001c©\u001a¤b¥F6[¨#\u00194©\u001a¥F6[©?5\u001eß#ÊY\u0019gÔõ£\u001c«Y¤b§\u001a©Ý¨g\u0019457È=\u001b7«-6[ʐ6[©\u001a¦[£\u001c\u001bu6B«¬©\u001a\u0019\u001cÐ�£9\u001bu¥\u001a\u00194ÐFÊ-6B\u0018�£9§F\u001bb§F©\u000e\u0018\u001a\u00194\u001b757«Y¦)§FÊ-«-6[\u001bb6[5\u001e¥/6=¤", - "origin": [ - 72.29998779296875, - 296.89984130859375 - ], - "bbox": [ - 72.29998779296875, - 290.599853515625, - 536.2998657226562, - 310.9998474121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 290.599853515625, - 536.2998657226562, - 310.9998474121094 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 72.29998779296875, - 304.1998291015625, - 236.50001525878906, - 324.5998229980469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)£9©F©\u001a\u0019\u001c«-¤u¤7\u0019\u001c©\u001a¦)6e¤,5u6=¦ªþF©\u001a«-²?§F6e¤o«¬¨g\u0018w£\u001c\u001b75u\u0019\u001c©95u6=¤= ", - "origin": [ - 72.29998779296875, - 310.49981689453125 - ], - "bbox": [ - 72.29998779296875, - 304.1998291015625, - 236.50001525878906, - 324.5998229980469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 304.1998291015625, - 236.50001525878906, - 324.5998229980469 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 75.79998779296875, - 322.9998779296875, - 409.29998779296875, - 343.3998718261719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Êb6[ÿ\n«Y¤�576ݦ)6=\u0018�6=©\u001a¥F\u00194©?5#§F©ÌÇ\u001c\u001bª\u00194©�¥½©F£9¨¸ÐF\u001bu6…¥/6", - "origin": [ - 75.79998779296875, - 329.29986572265625 - ], - "bbox": [ - 75.79998779296875, - 322.9998779296875, - 248.5, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "òÜ�l", - "origin": [ - 248.5, - 329.29986572265625 - ], - "bbox": [ - 248.5, - 323.29986572265625, - 261.29998779296875, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%&/.1$", - "origin": [ - 261.29998779296875, - 329.29986572265625 - ], - "bbox": [ - 261.29998779296875, - 322.9998779296875, - 275.6999816894531, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fpÚuWu", - "origin": [ - 275.6999816894531, - 329.29986572265625 - ], - "bbox": [ - 275.6999816894531, - 323.29986572265625, - 288.29998779296875, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "['[&/.", - "origin": [ - 288.29998779296875, - 329.29986572265625 - ], - "bbox": [ - 288.29998779296875, - 322.9998779296875, - 302.4999694824219, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×uÑn6ó", - "origin": [ - 302.4999694824219, - 329.29986572265625 - ], - "bbox": [ - 302.4999694824219, - 323.29986572265625, - 321.79998779296875, - 342.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.79998779296875, - 322.9998779296875, - 321.79998779296875, - 343.3998718261719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\"", - "origin": [ - 323.70001220703125, - 329.29986572265625 - ], - "bbox": [ - 323.70001220703125, - 322.9998779296875, - 323.70001220703125, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÓ×Ó×ôxu²æ", - "origin": [ - 323.70001220703125, - 329.29986572265625 - ], - "bbox": [ - 323.70001220703125, - 323.29986572265625, - 350.300048828125, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‚(", - "origin": [ - 350.300048828125, - 329.29986572265625 - ], - "bbox": [ - 350.300048828125, - 322.9998779296875, - 359.800048828125, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "€ó", - "origin": [ - 359.800048828125, - 329.29986572265625 - ], - "bbox": [ - 359.800048828125, - 323.29986572265625, - 363.7000427246094, - 342.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.70001220703125, - 322.9998779296875, - 363.7000427246094, - 343.3998718261719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ö", - "origin": [ - 365.0, - 329.29986572265625 - ], - "bbox": [ - 365.0, - 323.29986572265625, - 365.0, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1$", - "origin": [ - 365.0, - 329.29986572265625 - ], - "bbox": [ - 365.0, - 322.9998779296875, - 369.20001220703125, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gw", - "origin": [ - 369.20001220703125, - 329.29986572265625 - ], - "bbox": [ - 369.20001220703125, - 323.29986572265625, - 374.8000183105469, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±'[.1$w'", - "origin": [ - 374.8000183105469, - 329.29986572265625 - ], - "bbox": [ - 374.8000183105469, - 322.9998779296875, - 392.8000183105469, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "vw\u0017T\rˆ", - "origin": [ - 392.8000183105469, - 329.29986572265625 - ], - "bbox": [ - 392.8000183105469, - 323.29986572265625, - 409.29998779296875, - 342.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 365.0, - 322.9998779296875, - 409.29998779296875, - 343.3998718261719 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 425.79998779296875, - 322.9998779296875, - 534.7000122070312, - 343.3998718261719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "X", - "origin": [ - 425.79998779296875, - 329.29986572265625 - ], - "bbox": [ - 425.79998779296875, - 323.29986572265625, - 425.79998779296875, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#²?§F«oÆ9£\u001c§\u001a¤g£", - "origin": [ - 425.79998779296875, - 329.29986572265625 - ], - "bbox": [ - 425.79998779296875, - 322.9998779296875, - 476.1000061035156, - 343.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F", - "origin": [ - 476.1000061035156, - 329.29986572265625 - ], - "bbox": [ - 476.1000061035156, - 323.29986572265625, - 481.1000061035156, - 342.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w\u001bu6[©?5#§F©Ì\u0018�6=§", - "origin": [ - 481.1000061035156, - 329.29986572265625 - ], - "bbox": [ - 481.1000061035156, - 322.9998779296875, - 534.7000122070312, - 343.3998718261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 425.79998779296875, - 322.9998779296875, - 534.7000122070312, - 343.3998718261719 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.29998779296875, - 336.5998840332031, - 282.89996337890625, - 356.9998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥;¯", - "origin": [ - 72.29998779296875, - 342.8998718261719 - ], - "bbox": [ - 72.29998779296875, - 336.5998840332031, - 78.29998779296875, - 356.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 336.5998840332031, - 78.29998779296875, - 356.9998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤7\u0018\u001a\u0019\u001c¦[6#¥/«-¤u²?§F6c¤7§F\u001bB§F©F6#¨#\u0019\u001c¦ªþ\u001a«¬©F6c\u0019aø?\u00194©?5B\u0019\u001c¦[¦[á=¤B߅Ê", - "origin": [ - 80.49998474121094, - 342.8998718261719 - ], - "bbox": [ - 80.49998474121094, - 336.5998840332031, - 282.89996337890625, - 356.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.49998474121094, - 336.5998840332031, - 282.89996337890625, - 356.9998779296875 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 292.0, - 336.5998840332031, - 536.8998413085938, - 356.9998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©?5u6[\u001bu©F6)5M6[5Mʬ6e¤B¦)£\u001c¨g\u0018wÈ)5u6[©\u001a¦[6=¤M¥/6#Ê-6[§\u001a\u001bu¤B\u00199¥/¨g«¬©F«Y¤�57\u001bª\u0019%576=§F\u001bª¤B¤�ø/¤�°", - "origin": [ - 292.0, - 342.8998718261719 - ], - "bbox": [ - 292.0, - 336.5998840332031, - 536.8998413085938, - 356.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 292.0, - 336.5998840332031, - 536.8998413085938, - 356.9998779296875 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 72.09999084472656, - 350.2998962402344, - 535.7999877929688, - 370.69989013671875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "57á=¨g6\u001c +Ó~6e¤o£\u001c\u001buÇ9\u0019\u001c©F«Y¤�¨g6=¤s\u0018w6[§\u001aÆ\u001c6[©?5bå[57\u001bu6M¥/6=¤R6[©?57\u001bu6[\u0018F\u001bu«Y¤�6e¤s\u0018F\u001b7«-Æ\u001cÈ=6=¤s£9§Í¥/6=¤o£9\u001b7Ç?\u00194©F«Y¤7¨^6e¤ \u0018F§FÐFÊ-«-¦=¤", - "origin": [ - 72.09999084472656, - 356.5998840332031 - ], - "bbox": [ - 72.09999084472656, - 350.2998962402344, - 436.99993896484375, - 370.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ðT", - "origin": [ - 436.99993896484375, - 356.5998840332031 - ], - "bbox": [ - 436.99993896484375, - 350.5998840332031, - 444.99993896484375, - 369.7998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y§F©F«-Æ\u001c6[\u001bª¤7«z5uÈ=¤", - "origin": [ - 444.99993896484375, - 356.5998840332031 - ], - "bbox": [ - 444.99993896484375, - 350.2998962402344, - 490.49993896484375, - 370.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 490.49993896484375, - 356.5998840332031 - ], - "bbox": [ - 490.49993896484375, - 350.5998840332031, - 494.99993896484375, - 369.7998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a¦)6=©95u\u001b76M¥F6", - "origin": [ - 494.99993896484375, - 356.5998840332031 - ], - "bbox": [ - 494.99993896484375, - 350.2998962402344, - 535.7999877929688, - 370.69989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.09999084472656, - 350.2998962402344, - 535.7999877929688, - 370.69989013671875 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 72.19998931884766, - 363.7998962402344, - 135.89999389648438, - 384.19989013671875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu6=¦ªþF6=\u001bu¦ªþF6", - "origin": [ - 72.19998931884766, - 370.0998840332031 - ], - "bbox": [ - 72.19998931884766, - 363.7998962402344, - 108.39998626708984, - 384.19989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 108.39998626708984, - 370.0998840332031 - ], - "bbox": [ - 108.39998626708984, - 364.0998840332031, - 113.49998474121094, - 383.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n6)5u¦", - "origin": [ - 113.49998474121094, - 370.0998840332031 - ], - "bbox": [ - 113.49998474121094, - 363.7998962402344, - 127.09999084472656, - 384.19989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 127.09999084472656, - 370.0998840332031 - ], - "bbox": [ - 127.09999084472656, - 364.0998840332031, - 131.6999969482422, - 383.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 131.6999969482422, - 370.0998840332031 - ], - "bbox": [ - 131.6999969482422, - 363.7998962402344, - 135.89999389648438, - 384.19989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19998931884766, - 363.7998962402344, - 135.89999389648438, - 384.19989013671875 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 72.29998779296875, - 382.69989013671875, - 535.8999633789062, - 403.0998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ˆ", - "origin": [ - 72.29998779296875, - 388.9998779296875 - ], - "bbox": [ - 72.29998779296875, - 382.9998779296875, - 72.29998779296875, - 402.19989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a\u0019\u001c«z5u6=¤b\u001945�5u6[©?57«-£\u001c©Ýß^ÐF«-6[©Ý\u001bu6=¤7\u0018�6e¦1576=\u001boÊ-\u0019#¦ªþ�\u00194\u001b7576B²?§F6BÆ\u001c£\u001c57\u001bu6V\u0018\u001a\u001b76e¤\\5ª\u0019%5u\u0019\u001c«¬\u001bu6VÆ\u001c£\u001c§�¤s\u0018F\u001b7Èe¤�6=©?576[\u001bª\u0019!ʬ£9\u001bu¤o¥/6¸Ê-\u0019g¦)\u001buÈ=\u0019457«-£\u001c©…¥/6BÆ\u001c£\u001c57\u001bu6", - "origin": [ - 72.29998779296875, - 388.9998779296875 - ], - "bbox": [ - 72.29998779296875, - 382.69989013671875, - 535.8999633789062, - 403.0998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 382.69989013671875, - 535.8999633789062, - 403.0998840332031 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 72.29998779296875, - 396.19989013671875, - 535.300048828125, - 416.5998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7«z5u6\u001c ", - "origin": [ - 72.29998779296875, - 402.4998779296875 - ], - "bbox": [ - 72.29998779296875, - 396.19989013671875, - 87.79998779296875, - 416.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "9_", - "origin": [ - 87.79998779296875, - 402.4998779296875 - ], - "bbox": [ - 87.79998779296875, - 396.4998779296875, - 94.19998931884766, - 415.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",ʬÊ-6\u000fÆ9£\u001c§\u001a¤¸¤�6=¨¸ÐFÊ-6[\u001bª\u0019ݤ", - "origin": [ - 94.19998931884766, - 402.4998779296875 - ], - "bbox": [ - 94.19998931884766, - 396.19989013671875, - 180.79998779296875, - 416.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001bõ", - "origin": [ - 180.79998779296875, - 402.4998779296875 - ], - "bbox": [ - 180.79998779296875, - 396.4998779296875, - 184.59999084472656, - 415.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a\u001b76=¨^6=©?5¸\u001b76e¤\\5u\u001b7«Y¦15u«¬Æ96#6)5g\u00194Ê-«¬È=©\u001a\u00194©?576", - "origin": [ - 184.59999084472656, - 402.4998779296875 - ], - "bbox": [ - 184.59999084472656, - 396.19989013671875, - 318.99993896484375, - 416.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 318.99993896484375, - 402.4998779296875 - ], - "bbox": [ - 318.99993896484375, - 396.4998779296875, - 324.0999450683594, - 415.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K¨#\u00194«Y¤¸¤u\u0019\u001c¦ªþF6", - "origin": [ - 324.0999450683594, - 402.4998779296875 - ], - "bbox": [ - 324.0999450683594, - 396.19989013671875, - 372.99993896484375, - 416.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\‡", - "origin": [ - 372.99993896484375, - 402.4998779296875 - ], - "bbox": [ - 372.99993896484375, - 396.4998779296875, - 377.49993896484375, - 415.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f²?§K¯", - "origin": [ - 377.49993896484375, - 402.4998779296875 - ], - "bbox": [ - 377.49993896484375, - 396.19989013671875, - 397.39996337890625, - 416.5998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 396.19989013671875, - 397.39996337890625, - 416.5998840332031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[Ê-ʬ6c6e¤\\5^¤�§F\u001b757£9§/5¸ÊYßÝ\u0018w£\u001c§F\u001b^È[Æ\n«¬576[\u001b!ß", - "origin": [ - 399.6000061035156, - 402.4998779296875 - ], - "bbox": [ - 399.6000061035156, - 396.19989013671875, - 535.300048828125, - 416.5998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.6000061035156, - 396.19989013671875, - 535.300048828125, - 416.5998840332031 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 72.20001220703125, - 409.89990234375, - 534.9999389648438, - 430.2998962402344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ\u001c£\u001c57\u001bu6R\u0018F\u001bu6=¤�5u\u001945u\u0019\u001c«¬\u001bu6R¥/6V57£9§F\u001bu©F6[\u001bs¦)£9§F\u001b�5sß!¦=\u00194§\u001a¤76H¥/6=¤ «-\u001b7\u001buÈ[Ç9§FÊ-\u0019\u001c\u001b7«¬57Èe¤,¥/6HÊ", - "origin": [ - 72.20001220703125, - 416.19989013671875 - ], - "bbox": [ - 72.20001220703125, - 409.89990234375, - 341.6000061035156, - 430.2998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 409.89990234375, - 341.6000061035156, - 430.2998962402344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©É¥/6B¤�6e¤~¦[ʬ«-6[©?5", - "origin": [ - 347.10003662109375, - 416.19989013671875 - ], - "bbox": [ - 347.10003662109375, - 409.89990234375, - 409.3999938964844, - 430.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$T", - "origin": [ - 409.3999938964844, - 416.19989013671875 - ], - "bbox": [ - 409.3999938964844, - 410.19989013671875, - 417.1999816894531, - 429.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y¦)Ô", - "origin": [ - 417.1999816894531, - 416.19989013671875 - ], - "bbox": [ - 417.1999816894531, - 409.89990234375, - 424.6999816894531, - 430.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001a†$ó", - "origin": [ - 424.6999816894531, - 416.19989013671875 - ], - "bbox": [ - 424.6999816894531, - 410.19989013671875, - 439.0999755859375, - 429.39990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.10003662109375, - 409.89990234375, - 439.0999755859375, - 430.2998962402344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\"", - "origin": [ - 441.0000305175781, - 416.19989013671875 - ], - "bbox": [ - 441.0000305175781, - 409.89990234375, - 441.0000305175781, - 430.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001bö", - "origin": [ - 441.0000305175781, - 416.19989013671875 - ], - "bbox": [ - 441.0000305175781, - 410.19989013671875, - 444.8000183105469, - 429.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "R\"", - "origin": [ - 444.8000183105469, - 416.19989013671875 - ], - "bbox": [ - 444.8000183105469, - 409.89990234375, - 452.20001220703125, - 430.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ip", - "origin": [ - 452.20001220703125, - 416.19989013671875 - ], - "bbox": [ - 452.20001220703125, - 410.19989013671875, - 457.0, - 429.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "{.u'", - "origin": [ - 457.0, - 416.19989013671875 - ], - "bbox": [ - 457.0, - 409.89990234375, - 464.0, - 430.2998962402344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$_", - "origin": [ - 464.0, - 416.19989013671875 - ], - "bbox": [ - 464.0, - 410.19989013671875, - 471.79998779296875, - 429.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ�576=ʬÊ-6B³R\u00194Ê-Ê-«-¥F\u0019aø", - "origin": [ - 471.79998779296875, - 416.19989013671875 - ], - "bbox": [ - 471.79998779296875, - 409.89990234375, - 534.9999389648438, - 430.2998962402344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 441.0000305175781, - 409.89990234375, - 534.9999389648438, - 430.2998962402344 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 72.30001831054688, - 423.59991455078125, - 159.7000274658203, - 443.9999084472656 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)£9©?57\u001bu6Vð", - "origin": [ - 72.30001831054688, - 429.89990234375 - ], - "bbox": [ - 72.30001831054688, - 423.59991455078125, - 102.40001678466797, - 443.9999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gÁFŸ\"ߊ»ŠÞ1·\u001bºŠ»\n¼/X", - "origin": [ - 102.40001678466797, - 429.89990234375 - ], - "bbox": [ - 102.40001678466797, - 423.89990234375, - 155.4000244140625, - 443.09991455078125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 155.4000244140625, - 429.89990234375 - ], - "bbox": [ - 155.4000244140625, - 423.59991455078125, - 159.7000274658203, - 443.9999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 423.59991455078125, - 159.7000274658203, - 443.9999084472656 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 72.20001983642578, - 442.2999267578125, - 534.7999877929688, - 462.6999206542969 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "_", - "origin": [ - 72.20001983642578, - 448.59991455078125 - ], - "bbox": [ - 72.20001983642578, - 442.59991455078125, - 72.20001983642578, - 461.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",©", - "origin": [ - 72.20001983642578, - 448.59991455078125 - ], - "bbox": [ - 72.20001983642578, - 442.2999267578125, - 78.90001678466797, - 462.6999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/�", - "origin": [ - 78.90001678466797, - 448.59991455078125 - ], - "bbox": [ - 78.90001678466797, - 442.59991455078125, - 84.30001831054688, - 461.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©", - "origin": [ - 84.30001831054688, - 448.59991455078125 - ], - "bbox": [ - 84.30001831054688, - 442.2999267578125, - 90.00001525878906, - 462.6999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 90.00001525878906, - 448.59991455078125 - ], - "bbox": [ - 90.00001525878906, - 442.59991455078125, - 96.10001373291016, - 461.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n§F©F6bÔõ£9«-¤×ʬ6V¤�«¬576\u001e\u0018F\u001buå)5", - "origin": [ - 96.10001373291016, - 448.59991455078125 - ], - "bbox": [ - 96.10001373291016, - 442.2999267578125, - 179.50001525878906, - 462.6999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 179.50001525878906, - 448.59991455078125 - ], - "bbox": [ - 179.50001525878906, - 442.59991455078125, - 184.00001525878906, - 461.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?Æ\u001c£\u001c57\u001bu6b\u0018F\u001bu6=¤�5u\u001945u\u00194«-\u001bu6oÆ\u001c£\u001c§�¤×¦)£9¨g¨¸§F©F«Y²?§F6[\u001bª\u0019V57£9§\u001a¤~ʬ6e¤×¥/È[5u\u00194«-ÊY¤,5u6=¦ªþF©F«Y²?§F6=¤×©FÈ=¦[6=¤u¤7\u0019\u001c«¬\u001bu6=¤×߸¤7£\u001c©", - "origin": [ - 184.00001525878906, - 448.59991455078125 - ], - "bbox": [ - 184.00001525878906, - 442.2999267578125, - 534.7999877929688, - 462.6999206542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001983642578, - 442.2999267578125, - 534.7999877929688, - 462.6999206542969 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 72.20001983642578, - 455.99993896484375, - 334.4999694824219, - 476.3999328613281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©\u001a¤\\5ª\u00194Ê-Ê-\u0019457«-£\u001c©K �Ó~£9¨g¨^6H«-Ê-¤R¥/«", - "origin": [ - 72.20001983642578, - 462.2999267578125 - ], - "bbox": [ - 72.20001983642578, - 455.99993896484375, - 181.9000244140625, - 476.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "", - "origin": [ - 181.9000244140625, - 462.2999267578125 - ], - "bbox": [ - 181.9000244140625, - 456.2999267578125, - 184.50003051757812, - 475.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+á[\u001bu6[©?5s57£9§\u001a¤", - "origin": [ - 184.50003051757812, - 462.2999267578125 - ], - "bbox": [ - 184.50003051757812, - 455.99993896484375, - 230.1000213623047, - 476.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0013Ë", - "origin": [ - 230.1000213623047, - 462.2999267578125 - ], - "bbox": [ - 230.1000213623047, - 456.2999267578125, - 236.6000213623047, - 475.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6B©K¯", - "origin": [ - 236.6000213623047, - 462.2999267578125 - ], - "bbox": [ - 236.6000213623047, - 455.99993896484375, - 254.2000274658203, - 476.3999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001983642578, - 455.99993896484375, - 254.2000274658203, - 476.3999328613281 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[©…\u0018\u001a\u0019\u001c\u001b7Ê-6[\u001bª\u00194«w\u0018\u001a\u00199¤s«-¦[«ô ", - "origin": [ - 256.4000244140625, - 462.2999267578125 - ], - "bbox": [ - 256.4000244140625, - 455.99993896484375, - 334.4999694824219, - 476.3999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 256.4000244140625, - 455.99993896484375, - 334.4999694824219, - 476.3999328613281 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 118.70001220703125, - 491.2999572753906, - 124.90000915527344, - 511.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Š", - "origin": [ - 118.70001220703125, - 497.5999450683594 - ], - "bbox": [ - 118.70001220703125, - 491.2999572753906, - 118.70001220703125, - 511.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6ù", - "origin": [ - 118.70001220703125, - 497.5999450683594 - ], - "bbox": [ - 118.70001220703125, - 491.5999450683594, - 124.90000915527344, - 510.7999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.70001220703125, - 491.2999572753906, - 124.90000915527344, - 511.699951171875 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 141.30001831054688, - 491.2999572753906, - 220.50001525878906, - 511.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ސ", - "origin": [ - 141.30001831054688, - 497.5999450683594 - ], - "bbox": [ - 141.30001831054688, - 491.2999572753906, - 147.6000213623047, - 511.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$ú", - "origin": [ - 147.6000213623047, - 497.5999450683594 - ], - "bbox": [ - 147.6000213623047, - 491.5999450683594, - 155.4000244140625, - 510.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#†ˆ‡É†ñƒÉMА†", - "origin": [ - 155.4000244140625, - 497.5999450683594 - ], - "bbox": [ - 155.4000244140625, - 491.2999572753906, - 220.50001525878906, - 511.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.30001831054688, - 491.2999572753906, - 220.50001525878906, - 511.699951171875 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 72.30001831054688, - 525.199951171875, - 269.0, - 545.5999145507812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m\u0019^¤7ø?©?5ª\u0019%ÿ/6\u001e¥/§ÉÊY\u00194©FÇ?\u00194Ç\u001c6\u001e³R´oµÍ¶Ù6=¤�5 57\u001buá=¤s¤�«-¨g\u0018FÊ-6\u001c ", - "origin": [ - 72.30001831054688, - 531.4999389648438 - ], - "bbox": [ - 72.30001831054688, - 525.199951171875, - 269.0, - 545.5999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 525.199951171875, - 269.0, - 545.5999145507812 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 278.0000305175781, - 525.199951171875, - 536.8999633789062, - 545.5999145507812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊwÔy\u00194«¬5o\u0018\u001a\u00194\u001b757«;¥;¯", - "origin": [ - 278.0000305175781, - 531.4999389648438 - ], - "bbox": [ - 278.0000305175781, - 525.199951171875, - 332.10003662109375, - 545.5999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.0000305175781, - 525.199951171875, - 332.10003662109375, - 545.5999145507812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6\u001eÔy\u00194¨g«-ʬÊ-6B¥/6\u001eÊY\u00194©\u001aÇ9\u00194Ç96\u001e²?§F6VÊô¯", - "origin": [ - 334.3000183105469, - 531.4999389648438 - ], - "bbox": [ - 334.3000183105469, - 525.199951171875, - 455.79998779296875, - 545.5999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.3000183105469, - 525.199951171875, - 455.79998779296875, - 545.5999145507812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©É\u00194\u0018F\u0018w6[Ê-Ê-6H¦[£\u001c¨g¨¸§F°", - "origin": [ - 458.0000305175781, - 531.4999389648438 - ], - "bbox": [ - 458.0000305175781, - 525.199951171875, - 536.8999633789062, - 545.5999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.0000305175781, - 525.199951171875, - 536.8999633789062, - 545.5999145507812 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 72.20001220703125, - 538.7999877929688, - 482.7000427246094, - 559.199951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©FÈ=¨^6=©?5M(¬\"%$", - "origin": [ - 72.20001220703125, - 545.0999755859375 - ], - "bbox": [ - 72.20001220703125, - 538.7999877929688, - 115.50000762939453, - 559.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nû", - "origin": [ - 115.50000762939453, - 545.0999755859375 - ], - "bbox": [ - 115.50000762939453, - 539.0999755859375, - 120.80001068115234, - 558.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9\"", - "origin": [ - 120.80001068115234, - 545.0999755859375 - ], - "bbox": [ - 120.80001068115234, - 538.7999877929688, - 125.90000915527344, - 559.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\û", - "origin": [ - 125.90000915527344, - 545.0999755859375 - ], - "bbox": [ - 125.90000915527344, - 539.0999755859375, - 130.40000915527344, - 558.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9'", - "origin": [ - 130.40000915527344, - 545.0999755859375 - ], - "bbox": [ - 130.40000915527344, - 538.7999877929688, - 135.50001525878906, - 559.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�uüæes", - "origin": [ - 135.50001525878906, - 545.0999755859375 - ], - "bbox": [ - 135.50001525878906, - 539.0999755859375, - 156.50003051757812, - 558.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ª\"%(", - "origin": [ - 156.50003051757812, - 545.0999755859375 - ], - "bbox": [ - 156.50003051757812, - 538.7999877929688, - 165.40003967285156, - 559.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "pÚu", - "origin": [ - 165.40003967285156, - 545.0999755859375 - ], - "bbox": [ - 165.40003967285156, - 539.0999755859375, - 170.90003967285156, - 558.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ")'", - "origin": [ - 170.90003967285156, - 545.0999755859375 - ], - "bbox": [ - 170.90003967285156, - 538.7999877929688, - 175.20004272460938, - 559.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�u", - "origin": [ - 175.20004272460938, - 545.0999755859375 - ], - "bbox": [ - 175.20004272460938, - 539.0999755859375, - 179.5000457763672, - 558.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c \u001a¶\u0019g¤�ø\n©?5u\u00194ÿ\n6B¥/6M¦[6HÊ-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6V\u0018�6=§/5R¤�6H\u001buÈ=¤7§F¨g6[\u001bo6=©…¤7«¬ÿ\u000f\u001b7á=Ç\u001cÊ-6=¤~57\u001buá=¤o¤7«-¨^\u0018\u001aʬ6e¤[ ", - "origin": [ - 179.5000457763672, - 545.0999755859375 - ], - "bbox": [ - 179.5000457763672, - 538.7999877929688, - 482.7000427246094, - 559.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 538.7999877929688, - 482.7000427246094, - 559.199951171875 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 72.50001525878906, - 570.7999267578125, - 218.50001525878906, - 589.9999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ì1\u0019\u001b\u0018", - "origin": [ - 72.50001525878906, - 576.7999267578125 - ], - "bbox": [ - 72.50001525878906, - 570.7999267578125, - 83.40001678466797, - 589.9999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 570.7999267578125, - 83.40001678466797, - 589.9999389648438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A°;8\u001a5�­#8\u0013­#)6%•ýñÏ�8\u001a°\u001b:€%H)", - "origin": [ - 103.00001525878906, - 576.7999267578125 - ], - "bbox": [ - 103.00001525878906, - 570.7999267578125, - 218.50001525878906, - 589.9999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00001525878906, - 570.7999267578125, - 218.50001525878906, - 589.9999389648438 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 72.30001831054688, - 598.9999389648438, - 536.2999877929688, - 619.39990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "³R´oµ\u000e¶ò6=¤�5\u001e\u0019aÆ%\u00194©?5o57£9§/5\u001e§\u001a©ÝÊ-\u0019\u001c©FÇ9\u0019\u001cÇ\u001c6Bß#Ð\u001a\u0019\u001cʬ«Y¤�6e¤[ +Ó\u001e¯", - "origin": [ - 72.30001831054688, - 605.2999267578125 - ], - "bbox": [ - 72.30001831054688, - 598.9999389648438, - 271.8000183105469, - 619.39990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 598.9999389648438, - 271.8000183105469, - 619.39990234375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5\u001eß\u000f¥/«¬\u001bu6B§F©ÍÊY\u00194©\u001aÇ9\u00194Ç96B²9§\u001a«m\u0018w6[\u001bu¨^6[5\u001e¥/6¸¥FÈ", - "origin": [ - 273.9000244140625, - 605.2999267578125 - ], - "bbox": [ - 273.9000244140625, - 598.9999389648438, - 439.2000427246094, - 619.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 439.2000427246094, - 605.2999267578125 - ], - "bbox": [ - 439.2000427246094, - 599.2999267578125, - 443.5000305175781, - 618.4999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«-\u001b\u001e¥F6=¤", - "origin": [ - 443.5000305175781, - 605.2999267578125 - ], - "bbox": [ - 443.5000305175781, - 598.9999389648438, - 474.9000244140625, - 619.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*‡", - "origin": [ - 474.9000244140625, - 605.2999267578125 - ], - "bbox": [ - 474.9000244140625, - 599.2999267578125, - 482.20001220703125, - 618.4999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=£\u001c©F6e¤b²?§F«m£9©?5", - "origin": [ - 482.20001220703125, - 605.2999267578125 - ], - "bbox": [ - 482.20001220703125, - 598.9999389648438, - 536.2999877929688, - 619.39990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 273.9000244140625, - 598.9999389648438, - 536.2999877929688, - 619.39990234375 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 72.30001831054688, - 612.5999755859375, - 157.9000244140625, - 632.9999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)6=\u001b�5ª\u00194«-©F6=¤s\u0018\u001a\u001b7£9\u0018F\u001b7«-È)5uÈ=¤= ", - "origin": [ - 72.30001831054688, - 618.8999633789062 - ], - "bbox": [ - 72.30001831054688, - 612.5999755859375, - 157.9000244140625, - 632.9999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 612.5999755859375, - 157.9000244140625, - 632.9999389648438 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 78.80001831054688, - 631.3999633789062, - 434.7000427246094, - 651.7999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6", - "origin": [ - 78.80001831054688, - 637.699951171875 - ], - "bbox": [ - 78.80001831054688, - 631.3999633789062, - 121.60002136230469, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 121.60002136230469, - 637.699951171875 - ], - "bbox": [ - 121.60002136230469, - 631.699951171875, - 126.70001983642578, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F¤�«", - "origin": [ - 126.70001983642578, - 637.699951171875 - ], - "bbox": [ - 126.70001983642578, - 631.3999633789062, - 136.00003051757812, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ë", - "origin": [ - 136.00003051757812, - 637.699951171875 - ], - "bbox": [ - 136.00003051757812, - 631.699951171875, - 141.50003051757812, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6BÆ\u001c6[§Fÿ\u000fÈ=¦[\u001b7«-\u001b76V6[©…Ç9\u001bu\u00199¤", - "origin": [ - 141.50003051757812, - 637.699951171875 - ], - "bbox": [ - 141.50003051757812, - 631.3999633789062, - 231.1000213623047, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[cË", - "origin": [ - 231.1000213623047, - 637.699951171875 - ], - "bbox": [ - 231.1000213623047, - 631.699951171875, - 240.1000213623047, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6BÆ%\u00194«Y¤o¥/È", - "origin": [ - 240.1000213623047, - 637.699951171875 - ], - "bbox": [ - 240.1000213623047, - 631.3999633789062, - 276.8000183105469, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 276.8000183105469, - 637.699951171875 - ], - "bbox": [ - 276.8000183105469, - 631.699951171875, - 281.1000061035156, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©F«¬\u001bo§\u001a©F6", - "origin": [ - 281.1000061035156, - 637.699951171875 - ], - "bbox": [ - 281.1000061035156, - 631.3999633789062, - 313.300048828125, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$‡", - "origin": [ - 313.300048828125, - 637.699951171875 - ], - "bbox": [ - 313.300048828125, - 631.699951171875, - 321.10003662109375, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£9©F6H£", - "origin": [ - 321.10003662109375, - 637.699951171875 - ], - "bbox": [ - 321.10003662109375, - 631.3999633789062, - 343.800048828125, - 651.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fþ", - "origin": [ - 343.800048828125, - 637.699951171875 - ], - "bbox": [ - 343.800048828125, - 631.699951171875, - 348.800048828125, - 650.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰57£\u001c§F5R¤�6=\u001bu\u0019^6[©ÉÇ\u001c\u001bª\u0019\u001c¤V8", - "origin": [ - 348.800048828125, - 637.699951171875 - ], - "bbox": [ - 348.800048828125, - 631.3999633789062, - 434.7000427246094, - 651.7999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80001831054688, - 631.3999633789062, - 434.7000427246094, - 651.7999267578125 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 97.70001983642578, - 648.199951171875, - 274.20001220703125, - 667.3999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÿ", - "origin": [ - 97.70001983642578, - 654.199951171875 - ], - "bbox": [ - 97.70001983642578, - 648.199951171875, - 97.70001983642578, - 667.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "������\n\f\u000b\u000e\r\f\r�\u000b\u0010\u000f\f\u0011�\u0012�\u0013�\u0014\u000e\u000b\u0015\u000b�\u0014\u0016\r\u0015\u000b�\u0017\u0015\u0018\u0019\u0012�\u0013�\u0014", - "origin": [ - 97.70001983642578, - 654.199951171875 - ], - "bbox": [ - 97.70001983642578, - 649.4999389648438, - 238.7000274658203, - 667.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|ÿ", - "origin": [ - 238.7000274658203, - 654.199951171875 - ], - "bbox": [ - 238.7000274658203, - 648.199951171875, - 243.6000213623047, - 667.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001b\u001a\u0019�����", - "origin": [ - 243.6000213623047, - 654.199951171875 - ], - "bbox": [ - 243.6000213623047, - 649.4999389648438, - 274.20001220703125, - 667.2999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.70001983642578, - 648.199951171875, - 274.20001220703125, - 667.3999633789062 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 72.50001525878906, - 665.5, - 142.9000244140625, - 685.8999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6M²?§F«K¥/£9©F©F6[\u001bª\u0019É8", - "origin": [ - 72.50001525878906, - 671.7999877929688 - ], - "bbox": [ - 72.50001525878906, - 665.5, - 142.9000244140625, - 685.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 665.5, - 142.9000244140625, - 685.8999633789062 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 112.30001831054688, - 680.5, - 229.6000213623047, - 700.8999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "º!¾?—[—e¾ÝóiÂm˜%ÁFØe¾Í¾\nØ[—g¾\n–", - "origin": [ - 112.30001831054688, - 686.7999877929688 - ], - "bbox": [ - 112.30001831054688, - 680.5, - 203.60003662109375, - 700.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.30001831054688, - 680.5, - 203.60003662109375, - 700.8999633789062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\f", - "origin": [ - 213.70001220703125, - 686.7999877929688 - ], - "bbox": [ - 213.70001220703125, - 680.7999877929688, - 213.70001220703125, - 700.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a˜%ÁFØ", - "origin": [ - 213.70001220703125, - 686.7999877929688 - ], - "bbox": [ - 213.70001220703125, - 680.5, - 229.6000213623047, - 700.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 213.70001220703125, - 680.5, - 229.6000213623047, - 700.8999633789062 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 72.30000305175781, - 699.7000122070312, - 534.10009765625, - 720.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6#ÊY\u00194©\u001aÇ9\u00194Ç96#³R´oµÍ¶", - "origin": [ - 72.30000305175781, - 706.0 - ], - "bbox": [ - 72.30000305175781, - 699.7000122070312, - 147.40000915527344, - 720.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 699.7000122070312, - 147.40000915527344, - 720.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5¸ß…\u0018w6[«-©F6c\u0018\u001aʬ§\u001a¤¸¦)£\u001c¨g\u0018FÊ-«Y²9§\u001aÈ", - "origin": [ - 157.60000610351562, - 706.0 - ], - "bbox": [ - 157.60000610351562, - 699.7000122070312, - 271.20001220703125, - 720.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "²T", - "origin": [ - 271.20001220703125, - 706.0 - ], - "bbox": [ - 271.20001220703125, - 700.0, - 280.4000244140625, - 719.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õÆ9£\u001c«-\u001bB\u0018Fʬ§�¤MÊ-£\u001c«-©", - "origin": [ - 280.4000244140625, - 706.0 - ], - "bbox": [ - 280.4000244140625, - 699.7000122070312, - 336.6000061035156, - 720.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fX", - "origin": [ - 336.6000061035156, - 706.0 - ], - "bbox": [ - 336.6000061035156, - 700.0, - 342.3000183105469, - 719.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 m3\u001eá=¤¸Ê¬£9\u001bu¤", - "origin": [ - 342.3000183105469, - 706.0 - ], - "bbox": [ - 342.3000183105469, - 699.7000122070312, - 384.50006103515625, - 720.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 384.50006103515625, - 706.0 - ], - "bbox": [ - 384.50006103515625, - 700.0, - 389.00006103515625, - 719.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";ÊY\u0019…\u0018F\u001b7«-©\u001a¦[«¬\u0018\u001a\u0019\u001cʬ6c¥F«", - "origin": [ - 389.00006103515625, - 706.0 - ], - "bbox": [ - 389.00006103515625, - 699.7000122070312, - 459.00006103515625, - 720.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ">", - "origin": [ - 459.00006103515625, - 706.0 - ], - "bbox": [ - 459.00006103515625, - 700.0, - 461.6000671386719, - 719.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦)§\u001aÊz5uÈ\u000f¥/§¿³R´oµ\u000e¶", - "origin": [ - 461.6000671386719, - 706.0 - ], - "bbox": [ - 461.6000671386719, - 699.7000122070312, - 534.10009765625, - 720.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.60000610351562, - 699.7000122070312, - 534.10009765625, - 720.0999755859375 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 72.20000457763672, - 713.2999877929688, - 381.6999816894531, - 733.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu6[Æ\n«¬6=©?5oßg¦[£\u001c©F©\u001a\u0019", - "origin": [ - 72.20000457763672, - 719.5999755859375 - ], - "bbox": [ - 72.20000457763672, - 713.2999877929688, - 134.30001831054688, - 733.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001c", - "origin": [ - 134.30001831054688, - 719.5999755859375 - ], - "bbox": [ - 134.30001831054688, - 714.8999633789062, - 139.1000213623047, - 732.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-5u\u001b76H6[5o¤u\u0019aÆ\u001c£9«¬\u001bo¦[£\u001c\u001bu\u001b76e¦1576=¨g6[©?5 §F57«-ʬ«Y¤�6=\u001boʬ6e¤o¥/«", - "origin": [ - 139.1000213623047, - 719.5999755859375 - ], - "bbox": [ - 139.1000213623047, - 713.2999877929688, - 310.3999938964844, - 733.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h", - "origin": [ - 310.3999938964844, - 719.5999755859375 - ], - "bbox": [ - 310.3999938964844, - 713.5999755859375, - 313.1000061035156, - 732.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wÈ=\u001b76=©95u6=¤oÐ�\u00194Ê-«-¤76=¤= ", - "origin": [ - 313.1000061035156, - 719.5999755859375 - ], - "bbox": [ - 313.1000061035156, - 713.2999877929688, - 381.6999816894531, - 733.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20000457763672, - 713.2999877929688, - 381.6999816894531, - 733.699951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 178.70001220703125, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ä", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×Á‚Ø[ÚK–+—eÁ/ÛK¾Íš¾ÝÜiÁFØ=¾", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 178.70001220703125, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 178.70001220703125, - 55.699974060058594 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 3, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_4": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 72.50003051757812, - 77.699951171875, - 202.30001831054688, - 96.89994812011719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ì1\u0019\r?", - "origin": [ - 72.50003051757812, - 83.699951171875 - ], - "bbox": [ - 72.50003051757812, - 77.699951171875, - 82.90003204345703, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50003051757812, - 77.699951171875, - 82.90003204345703, - 96.89994812011719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%•\u001f", - "origin": [ - 103.00003051757812, - 83.699951171875 - ], - "bbox": [ - 103.00003051757812, - 77.699951171875, - 126.90003967285156, - 96.89994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\u001d", - "origin": [ - 126.90003967285156, - 83.699951171875 - ], - "bbox": [ - 126.90003967285156, - 78.99995422363281, - 132.40003967285156, - 96.7999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=­7°;)6%•'�)KÏ�8\u001a%H)", - "origin": [ - 132.40003967285156, - 83.699951171875 - ], - "bbox": [ - 132.40003967285156, - 77.699951171875, - 202.30001831054688, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00003051757812, - 77.699951171875, - 202.30001831054688, - 96.89994812011719 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 78.8000259399414, - 105.89994812011719, - 290.4000549316406, - 126.2999496459961 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c«Y¦)«mʬ6e¤o¦)«-©\u001a²#\u001buá[Ç\u001cÊ-6=¤o¥F6VÐ�\u0019\u001c¤76V\u0018w£\u001c§\u001a\u001bsÔy\u00194«-\u001b76B¥/§Ý³R´oµ\u000e¶Ì8", - "origin": [ - 78.8000259399414, - 112.199951171875 - ], - "bbox": [ - 78.8000259399414, - 105.89994812011719, - 290.4000549316406, - 126.2999496459961 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.8000259399414, - 105.89994812011719, - 290.4000549316406, - 126.2999496459961 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 84.9000244140625, - 129.7999725341797, - 291.1999816894531, - 150.19998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9 b3RÈ", - "origin": [ - 84.9000244140625, - 136.0999755859375 - ], - "bbox": [ - 84.9000244140625, - 129.7999725341797, - 104.70002746582031, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 104.70002746582031, - 136.0999755859375 - ], - "bbox": [ - 104.70002746582031, - 130.0999755859375, - 109.10002899169922, - 149.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«-\u001bo§F©F6", - "origin": [ - 109.10002899169922, - 136.0999755859375 - ], - "bbox": [ - 109.10002899169922, - 129.7999725341797, - 141.2000274658203, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$‡", - "origin": [ - 141.2000274658203, - 136.0999755859375 - ], - "bbox": [ - 141.2000274658203, - 130.0999755859375, - 149.00003051757812, - 149.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£9©F6g8Kç", - "origin": [ - 149.00003051757812, - 136.0999755859375 - ], - "bbox": [ - 149.00003051757812, - 129.7999725341797, - 178.40003967285156, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 178.40003967285156, - 136.0999755859375 - ], - "bbox": [ - 178.40003967285156, - 130.0999755859375, - 185.5000457763672, - 149.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ð/ê�é", - "origin": [ - 185.5000457763672, - 136.0999755859375 - ], - "bbox": [ - 185.5000457763672, - 129.7999725341797, - 202.00003051757812, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001f", - "origin": [ - 202.00003051757812, - 136.0999755859375 - ], - "bbox": [ - 202.00003051757812, - 131.3999786376953, - 206.9000244140625, - 149.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ë+ì", - "origin": [ - 206.9000244140625, - 136.0999755859375 - ], - "bbox": [ - 206.9000244140625, - 129.7999725341797, - 217.9000244140625, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "! ", - "origin": [ - 217.9000244140625, - 136.0999755859375 - ], - "bbox": [ - 217.9000244140625, - 131.3999786376953, - 225.30001831054688, - 149.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nº|Þgß", - "origin": [ - 225.30001831054688, - 136.0999755859375 - ], - "bbox": [ - 225.30001831054688, - 130.0999755859375, - 241.1000213623047, - 149.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ç", - "origin": [ - 241.1000213623047, - 136.0999755859375 - ], - "bbox": [ - 241.1000213623047, - 129.7999725341797, - 246.80001831054688, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £|›", - "origin": [ - 246.80001831054688, - 136.0999755859375 - ], - "bbox": [ - 246.80001831054688, - 130.0999755859375, - 259.20001220703125, - 149.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ð/êwé", - "origin": [ - 259.20001220703125, - 136.0999755859375 - ], - "bbox": [ - 259.20001220703125, - 129.7999725341797, - 275.6000061035156, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001f", - "origin": [ - 275.6000061035156, - 136.0999755859375 - ], - "bbox": [ - 275.6000061035156, - 131.3999786376953, - 280.3999938964844, - 149.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cëwì", - "origin": [ - 280.3999938964844, - 136.0999755859375 - ], - "bbox": [ - 280.3999938964844, - 129.7999725341797, - 291.1999816894531, - 150.19998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.9000244140625, - 129.7999725341797, - 291.1999816894531, - 150.19998168945312 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 97.3000259399414, - 145.1999969482422, - 535.9000244140625, - 165.60000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K£\u001c\u001bª¤u²9§m¯", - "origin": [ - 97.3000259399414, - 151.5 - ], - "bbox": [ - 97.3000259399414, - 145.1999969482422, - 127.80001831054688, - 165.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.3000259399414, - 145.1999969482422, - 127.80001831054688, - 165.60000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£9©\u000f¥/È", - "origin": [ - 129.9000244140625, - 151.5 - ], - "bbox": [ - 129.9000244140625, - 145.1999969482422, - 149.00003051757812, - 165.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 149.00003051757812, - 151.5 - ], - "bbox": [ - 149.00003051757812, - 145.5, - 153.30003356933594, - 164.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©F«;§F©F6", - "origin": [ - 153.30003356933594, - 151.5 - ], - "bbox": [ - 153.30003356933594, - 145.1999969482422, - 181.50003051757812, - 165.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�‡", - "origin": [ - 181.50003051757812, - 151.5 - ], - "bbox": [ - 181.50003051757812, - 145.5, - 189.2000274658203, - 164.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£9©F6", - "origin": [ - 189.2000274658203, - 151.5 - ], - "bbox": [ - 189.2000274658203, - 145.1999969482422, - 204.2000274658203, - 165.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 204.2000274658203, - 151.5 - ], - "bbox": [ - 204.2000274658203, - 145.5, - 209.2000274658203, - 164.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/£9©É¤7§F\u0018F\u0018w£9¤76H²9§\u001a6\u001e5u£\u001c§\u001a¤sÊ-6=¤ £9Ð", - "origin": [ - 209.2000274658203, - 151.5 - ], - "bbox": [ - 209.2000274658203, - 145.1999969482422, - 325.2000732421875, - 165.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ë", - "origin": [ - 325.2000732421875, - 151.5 - ], - "bbox": [ - 325.2000732421875, - 145.5, - 330.6000671386719, - 164.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6)5ª¤o²9§\u001a«K¤�£9©95oß^Êô¯", - "origin": [ - 330.6000671386719, - 151.5 - ], - "bbox": [ - 330.6000671386719, - 145.1999969482422, - 399.4001159667969, - 165.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.9000244140625, - 145.1999969482422, - 399.4001159667969, - 165.60000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©95uÈ[\u001bu«¬6=§F\u001bs\u0018�£?¤7¤7á=¥F6[©?5o§F©F6B¦)6=\u001b�5ª\u00194«-©F6", - "origin": [ - 401.60003662109375, - 151.5 - ], - "bbox": [ - 401.60003662109375, - 145.1999969482422, - 535.9000244140625, - 165.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 401.60003662109375, - 145.1999969482422, - 535.9000244140625, - 165.60000610351562 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 97.20004272460938, - 158.90000915527344, - 292.4000244140625, - 179.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018F\u001b7£9\u0018F\u001bu«¬È[57È", - "origin": [ - 97.20004272460938, - 165.20001220703125 - ], - "bbox": [ - 97.20004272460938, - 158.90000915527344, - 132.2000274658203, - 179.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T", - "origin": [ - 132.2000274658203, - 165.20001220703125 - ], - "bbox": [ - 132.2000274658203, - 159.20001220703125, - 140.50003051757812, - 178.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ\u0018\u001a\u0019\u001c\u001bo6)ÿ/6[¨g\u0018FÊ-6B«¬ÊY¤o¤7£\u001c©?5oÈ=¦)\u001bu«¬5s6=©…Ç\u001c\u001bª\u0019\u001c¤", - "origin": [ - 140.50003051757812, - 165.20001220703125 - ], - "bbox": [ - 140.50003051757812, - 158.90000915527344, - 284.1000061035156, - 179.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×X", - "origin": [ - 284.1000061035156, - 165.20001220703125 - ], - "bbox": [ - 284.1000061035156, - 159.20001220703125, - 288.20001220703125, - 178.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 288.20001220703125, - 165.20001220703125 - ], - "bbox": [ - 288.20001220703125, - 158.90000915527344, - 292.4000244140625, - 179.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.20004272460938, - 158.90000915527344, - 292.4000244140625, - 179.30001831054688 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 84.50004577636719, - 175.90000915527344, - 220.40005493164062, - 196.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "AF ", - "origin": [ - 84.50004577636719, - 182.20001220703125 - ], - "bbox": [ - 84.50004577636719, - 175.90000915527344, - 90.00004577636719, - 196.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*]", - "origin": [ - 90.00004577636719, - 182.20001220703125 - ], - "bbox": [ - 90.00004577636719, - 176.20001220703125, - 97.300048828125, - 195.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " \u0019\u001cʬ«Y¤76\u001e\u0018w£\u001c©\u001a¦)57§F6=ʬÊ-6#8Kç", - "origin": [ - 97.300048828125, - 182.20001220703125 - ], - "bbox": [ - 97.300048828125, - 175.90000915527344, - 180.90005493164062, - 196.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 180.90005493164062, - 182.20001220703125 - ], - "bbox": [ - 180.90005493164062, - 176.20001220703125, - 188.00006103515625, - 195.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ð/êwé", - "origin": [ - 188.00006103515625, - 182.20001220703125 - ], - "bbox": [ - 188.00006103515625, - 175.90000915527344, - 204.6000518798828, - 196.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001f", - "origin": [ - 204.6000518798828, - 182.20001220703125 - ], - "bbox": [ - 204.6000518798828, - 177.50001525878906, - 209.40005493164062, - 195.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ë+ì", - "origin": [ - 209.40005493164062, - 182.20001220703125 - ], - "bbox": [ - 209.40005493164062, - 175.90000915527344, - 220.40005493164062, - 196.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.50004577636719, - 175.90000915527344, - 220.40005493164062, - 196.30001831054688 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 97.50004577636719, - 191.30003356933594, - 536.4000854492188, - 211.70004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6[\u001b75u\u00194«-©F6e¤bÐ\u001a\u0019\u001cʬ«Y¤�6e¤R©\u001a6¸©FÈe¦)6=¤u¤7«z5u6[©?5\u001e\u0018\u001a\u00199¤\u001e¥K¯", - "origin": [ - 97.50004577636719, - 197.60003662109375 - ], - "bbox": [ - 97.50004577636719, - 191.30003356933594, - 262.2001037597656, - 211.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.50004577636719, - 191.30003356933594, - 262.2001037597656, - 211.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "å[57\u001bu6!\u001bu6)Ôõ6=\u001b7¨gÈ[6e¤R¦=\u00194\u001bR6=ʬÊ-6^©F6!¥/È", - "origin": [ - 264.300048828125, - 197.60003662109375 - ], - "bbox": [ - 264.300048828125, - 191.30003356933594, - 383.20001220703125, - 211.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 383.20001220703125, - 197.60003662109375 - ], - "bbox": [ - 383.20001220703125, - 191.60003662109375, - 387.6000061035156, - 210.80003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«Y¤7¤76[©?5H\u0018\u001a\u0019\u001c¤V¥/6", - "origin": [ - 387.6000061035156, - 197.60003662109375 - ], - "bbox": [ - 387.6000061035156, - 191.30003356933594, - 450.3000183105469, - 211.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ü‡", - "origin": [ - 450.3000183105469, - 197.60003662109375 - ], - "bbox": [ - 450.3000183105469, - 191.60003662109375, - 458.4000244140625, - 210.80003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£\u001c©\u001a6!ßc\u0018\u001a\u001b7£9\u0018F\u001b76=¨g6[©?5", - "origin": [ - 458.4000244140625, - 197.60003662109375 - ], - "bbox": [ - 458.4000244140625, - 191.30003356933594, - 536.4000854492188, - 211.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.300048828125, - 191.30003356933594, - 536.4000854492188, - 211.70004272460938 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 97.20004272460938, - 204.80003356933594, - 510.7999267578125, - 225.20004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u00194\u001buʬ6=\u001b", - "origin": [ - 97.20004272460938, - 211.10003662109375 - ], - "bbox": [ - 97.20004272460938, - 204.80003356933594, - 118.90003967285156, - 225.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 118.90003967285156, - 211.10003662109375 - ], - "bbox": [ - 118.90003967285156, - 205.10003662109375, - 123.40003967285156, - 224.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n¨#\u00194«Y¤s§F©…6[©�¥/\u001b7£9«z5o£", - "origin": [ - 123.40003967285156, - 211.10003662109375 - ], - "bbox": [ - 123.40003967285156, - 204.80003356933594, - 200.70001220703125, - 225.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šþ", - "origin": [ - 200.70001220703125, - 211.10003662109375 - ], - "bbox": [ - 200.70001220703125, - 205.10003662109375, - 205.80001831054688, - 224.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰§F©\u001a6M\u0019\u001c¦15u«¬£9©É¥F6B\u0018F\u001b7£/¥/§\u001a«z5", - "origin": [ - 205.80001831054688, - 211.10003662109375 - ], - "bbox": [ - 205.80001831054688, - 204.80003356933594, - 305.0, - 225.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 305.0, - 211.10003662109375 - ], - "bbox": [ - 305.0, - 205.10003662109375, - 312.8999938964844, - 224.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ\u0018�\u00194\u001bo6)ÿ/6=¨^\u0018\u001aʬ6BÊY\u0019^Ð\u001a\u00194Ê-«-¤76gç", - "origin": [ - 312.8999938964844, - 211.10003662109375 - ], - "bbox": [ - 312.8999938964844, - 204.80003356933594, - 411.6999816894531, - 225.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›/½", - "origin": [ - 411.6999816894531, - 211.10003662109375 - ], - "bbox": [ - 411.6999816894531, - 205.10003662109375, - 424.1999816894531, - 224.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w칤7\u0019\u001c§/576BßgÊY\u0019!Ê-«-Ç\u001c©F6", - "origin": [ - 424.1999816894531, - 211.10003662109375 - ], - "bbox": [ - 424.1999816894531, - 204.80003356933594, - 501.89990234375, - 225.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YX", - "origin": [ - 501.89990234375, - 211.10003662109375 - ], - "bbox": [ - 501.89990234375, - 205.10003662109375, - 506.59991455078125, - 224.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 506.59991455078125, - 211.10003662109375 - ], - "bbox": [ - 506.59991455078125, - 204.80003356933594, - 510.7999267578125, - 225.20004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.20004272460938, - 204.80003356933594, - 510.7999267578125, - 225.20004272460938 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 84.40003967285156, - 221.90000915527344, - 356.4000549316406, - 242.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "G\u001a oËi\u0019\u001c\u001bu\u0019\u001c¨gÈ)57\u001bª\u00194Ç96\u001e¥;¯", - "origin": [ - 84.40003967285156, - 228.20001220703125 - ], - "bbox": [ - 84.40003967285156, - 221.90000915527344, - 161.80003356933594, - 242.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.40003967285156, - 221.90000915527344, - 161.80003356933594, - 242.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6BÐ�\u00194Ê-«-¤76g8;ç", - "origin": [ - 164.00003051757812, - 228.20001220703125 - ], - "bbox": [ - 164.00003051757812, - 221.90000915527344, - 217.2000274658203, - 242.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 217.2000274658203, - 228.20001220703125 - ], - "bbox": [ - 217.2000274658203, - 222.20001220703125, - 224.30003356933594, - 241.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nð/êwé", - "origin": [ - 224.30003356933594, - 228.20001220703125 - ], - "bbox": [ - 224.30003356933594, - 221.90000915527344, - 240.80003356933594, - 242.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001f", - "origin": [ - 240.80003356933594, - 228.20001220703125 - ], - "bbox": [ - 240.80003356933594, - 223.50001525878906, - 245.7000274658203, - 241.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ë", - "origin": [ - 245.7000274658203, - 228.20001220703125 - ], - "bbox": [ - 245.7000274658203, - 221.90000915527344, - 250.80003356933594, - 242.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 164.00003051757812, - 221.90000915527344, - 250.80003356933594, - 242.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "´\"Ċ»\"ÄYÀ\u0011ßFŸ\n»\"ß", - "origin": [ - 260.9000244140625, - 228.20001220703125 - ], - "bbox": [ - 260.9000244140625, - 222.20001220703125, - 303.4000244140625, - 241.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%$", - "origin": [ - 303.4000244140625, - 228.20001220703125 - ], - "bbox": [ - 303.4000244140625, - 223.50001525878906, - 314.60003662109375, - 241.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "vâ\"Ä/ÁHßFÆH»", - "origin": [ - 314.60003662109375, - 228.20001220703125 - ], - "bbox": [ - 314.60003662109375, - 222.20001220703125, - 345.300048828125, - 241.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 345.300048828125, - 228.20001220703125 - ], - "bbox": [ - 345.300048828125, - 223.50001525878906, - 351.4000549316406, - 241.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cì", - "origin": [ - 351.4000549316406, - 228.20001220703125 - ], - "bbox": [ - 351.4000549316406, - 221.90000915527344, - 356.4000549316406, - 242.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.9000244140625, - 221.90000915527344, - 356.4000549316406, - 242.30001831054688 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 100.8000259399414, - 237.20005798339844, - 538.2000122070312, - 257.6000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʝ6[ÿ/«-¤�576!57£9§", - "origin": [ - 100.8000259399414, - 243.50006103515625 - ], - "bbox": [ - 100.8000259399414, - 237.20005798339844, - 144.60003662109375, - 257.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "IË", - "origin": [ - 144.60003662109375, - 243.50006103515625 - ], - "bbox": [ - 144.60003662109375, - 237.50006103515625, - 149.40003967285156, - 256.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\£\u001c§F\u001bª¤V§F©ÙÇ\u001c\u001bª\u00194©\u001a¥Ý©\u001a£\u001c¨¸Ð\u001a\u001b76^¥/6g\u0018\u001a\u00194\u001bª\u00194¨gá)5u\u001b76e¤R\u0018w£\u001c§\u001a\u001bV§\u001a©F6!Ð�\u00194Ê-«-¤76", - "origin": [ - 149.40003967285156, - 243.50006103515625 - ], - "bbox": [ - 149.40003967285156, - 237.20005798339844, - 384.1000061035156, - 257.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017T", - "origin": [ - 384.1000061035156, - 243.50006103515625 - ], - "bbox": [ - 384.1000061035156, - 237.50006103515625, - 392.8999938964844, - 256.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y\u0018\u001a\u00194\u001bH6[ÿ\n6=¨g\u0018Fʬ6g¥F\u0019\u001c©\u001a¤VÊ-\u0019‰Ð\u001a\u00194Ê-«Y¤�6Éç", - "origin": [ - 392.8999938964844, - 243.50006103515625 - ], - "bbox": [ - 392.8999938964844, - 237.20005798339844, - 517.2999877929688, - 257.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "('", - "origin": [ - 517.2999877929688, - 243.50006103515625 - ], - "bbox": [ - 517.2999877929688, - 238.80006408691406, - 524.5, - 256.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 524.5, - 243.50006103515625 - ], - "bbox": [ - 524.5, - 237.20005798339844, - 530.4000244140625, - 257.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$[", - "origin": [ - 530.4000244140625, - 243.50006103515625 - ], - "bbox": [ - 530.4000244140625, - 237.50006103515625, - 538.2000122070312, - 256.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.8000259399414, - 237.20005798339844, - 538.2000122070312, - 257.6000671386719 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 97.3000259399414, - 250.9000701904297, - 537.4000244140625, - 271.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "²9§\u001a«¨#\u00194\u001bª²?§F6¸Ê-6=¤\u001e\u0018\u001a\u0019\u001c\u001bu\u0019\u001cÇ\u001c\u001bª\u00194\u0018FþF6e¤", - "origin": [ - 97.3000259399414, - 257.2000732421875 - ], - "bbox": [ - 97.3000259399414, - 250.9000701904297, - 214.40003967285156, - 271.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 214.40003967285156, - 257.2000732421875 - ], - "bbox": [ - 214.40003967285156, - 251.2000732421875, - 218.80003356933594, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a£\u001c©Í\u0018w6[§/5B\u0018F\u001buÈ=¦[«-¤76[\u001b\u001eʬ6^\u0018\u001a\u0019\u001c\u001bu\u0019\u001c¨^á[57\u001bu6", - "origin": [ - 218.80003356933594, - 257.2000732421875 - ], - "bbox": [ - 218.80003356933594, - 250.9000701904297, - 349.9000244140625, - 271.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üÄ/Ágžc¼HÞ", - "origin": [ - 349.9000244140625, - 257.2000732421875 - ], - "bbox": [ - 349.9000244140625, - 251.2000732421875, - 378.800048828125, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")\"", - "origin": [ - 378.800048828125, - 257.2000732421875 - ], - "bbox": [ - 378.800048828125, - 252.5000762939453, - 389.2000427246094, - 270.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "KÁŠßHàHŸ", - "origin": [ - 389.2000427246094, - 257.2000732421875 - ], - "bbox": [ - 389.2000427246094, - 251.2000732421875, - 415.40008544921875, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 415.40008544921875, - 257.2000732421875 - ], - "bbox": [ - 415.40008544921875, - 252.5000762939453, - 421.5000915527344, - 270.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹ FßFÞ/Ÿ\"ßF»", - "origin": [ - 421.5000915527344, - 257.2000732421875 - ], - "bbox": [ - 421.5000915527344, - 251.2000732421875, - 449.8000793457031, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 449.8000793457031, - 257.2000732421875 - ], - "bbox": [ - 449.8000793457031, - 252.5000762939453, - 455.90008544921875, - 270.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.3000259399414, - 250.9000701904297, - 455.90008544921875, - 271.3000793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»\u0011žc¼H¡/Ÿ", - "origin": [ - 457.9000244140625, - 257.2000732421875 - ], - "bbox": [ - 457.9000244140625, - 251.2000732421875, - 479.0000305175781, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 479.0000305175781, - 257.2000732421875 - ], - "bbox": [ - 479.0000305175781, - 252.5000762939453, - 485.10003662109375, - 270.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 457.9000244140625, - 251.2000732421875, - 485.10003662109375, - 270.40008544921875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 487.20001220703125, - 257.2000732421875 - ], - "bbox": [ - 487.20001220703125, - 252.5000762939453, - 487.20001220703125, - 270.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÆ�áIŸ�žYàHã", - "origin": [ - 487.20001220703125, - 257.2000732421875 - ], - "bbox": [ - 487.20001220703125, - 251.2000732421875, - 518.5, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^²?§F«", - "origin": [ - 518.5, - 257.2000732421875 - ], - "bbox": [ - 518.5, - 250.9000701904297, - 537.4000244140625, - 271.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.20001220703125, - 250.9000701904297, - 537.4000244140625, - 271.3000793457031 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 97.20001220703125, - 264.50006103515625, - 535.7999877929688, - 284.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018�6=\u001b7¨g6)5#¥/6‰\u0018FÊ-\u00199¦)6=\u001b!Ê-6‰\u0018�\u00194\u001bª\u00194Ç\u001c\u001bª\u00194\u0018\u001aþF6#6[©ã²9§\u001a6=¤�57«-£\u001c©", - "origin": [ - 97.20001220703125, - 270.800048828125 - ], - "bbox": [ - 97.20001220703125, - 264.50006103515625, - 286.3999938964844, - 284.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 286.3999938964844, - 270.800048828125 - ], - "bbox": [ - 286.3999938964844, - 264.800048828125, - 292.5, - 284.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001b76e¤�\u0018w6=¦)57«-Æ\u001c6=¨^6=©?5", - "origin": [ - 292.5, - 270.800048828125 - ], - "bbox": [ - 292.5, - 264.50006103515625, - 359.89996337890625, - 284.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 359.89996337890625, - 270.800048828125 - ], - "bbox": [ - 359.89996337890625, - 264.800048828125, - 364.39996337890625, - 284.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ißÍÇ9\u0019\u001c§\u001a¦ªþF6", - "origin": [ - 364.39996337890625, - 270.800048828125 - ], - "bbox": [ - 364.39996337890625, - 264.50006103515625, - 405.29998779296875, - 284.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 405.29998779296875, - 270.800048828125 - ], - "bbox": [ - 405.29998779296875, - 264.800048828125, - 410.3999938964844, - 284.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c§½¦)6=©95u\u001b76", - "origin": [ - 410.3999938964844, - 270.800048828125 - ], - "bbox": [ - 410.3999938964844, - 264.50006103515625, - 453.39996337890625, - 284.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 453.39996337890625, - 270.800048828125 - ], - "bbox": [ - 453.39996337890625, - 264.800048828125, - 458.4999694824219, - 284.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ßÙ¥/\u001bu£\u001c«¬576‰£\u001c§½¥/6ÉÊ-6", - "origin": [ - 458.4999694824219, - 270.800048828125 - ], - "bbox": [ - 458.4999694824219, - 264.50006103515625, - 535.7999877929688, - 284.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.20001220703125, - 264.50006103515625, - 535.7999877929688, - 284.9000549316406 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 96.50001525878906, - 278.10003662109375, - 134.60000610351562, - 298.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ë", - "origin": [ - 96.50001525878906, - 284.4000244140625 - ], - "bbox": [ - 96.50001525878906, - 278.4000244140625, - 96.50001525878906, - 297.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤\\5u«", - "origin": [ - 96.50001525878906, - 284.4000244140625 - ], - "bbox": [ - 96.50001525878906, - 278.10003662109375, - 113.50000762939453, - 298.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 113.50000762939453, - 284.4000244140625 - ], - "bbox": [ - 113.50000762939453, - 278.4000244140625, - 116.10000610351562, - 297.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�6[\u001b", - "origin": [ - 116.10000610351562, - 284.4000244140625 - ], - "bbox": [ - 116.10000610351562, - 278.10003662109375, - 126.20000457763672, - 298.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xX", - "origin": [ - 126.20000457763672, - 284.4000244140625 - ], - "bbox": [ - 126.20000457763672, - 278.4000244140625, - 130.40000915527344, - 297.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 130.40000915527344, - 284.4000244140625 - ], - "bbox": [ - 130.40000915527344, - 278.10003662109375, - 134.60000610351562, - 298.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.50001525878906, - 278.10003662109375, - 134.60000610351562, - 298.5000305175781 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 144.6000213623047, - 278.10003662109375, - 535.3001098632812, - 298.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê 6e¤\\5^«¬¨g\u0018w£\u001c\u001b75u\u0019\u001c©95g¥/6…¤7\u0019aÆ9£\u001c«-\u001bM²9§\u001a6ɦ[6[\u001b75u\u00194«-©\u001a¤¸\u0018\u001a\u00194\u001bª\u00194¨gá)5u\u001b76e¤¸¤7£\u001c©?5¸£9ÐFʬ«-Ç9\u0019457£9«¬\u001bu6=¤", - "origin": [ - 144.6000213623047, - 284.4000244140625 - ], - "bbox": [ - 144.6000213623047, - 278.10003662109375, - 438.3999938964844, - 298.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "òT", - "origin": [ - 438.3999938964844, - 284.4000244140625 - ], - "bbox": [ - 438.3999938964844, - 278.4000244140625, - 446.8999938964844, - 297.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y\u0018\u001a\u00194\u001b^6)ÿ/6=¨^\u0018\u001aʬ6…¥F\u00194©�¤MÊY\u0019", - "origin": [ - 446.8999938964844, - 284.4000244140625 - ], - "bbox": [ - 446.8999938964844, - 278.10003662109375, - 535.3001098632812, - 298.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 144.6000213623047, - 278.10003662109375, - 535.3001098632812, - 298.5000305175781 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 97.20001983642578, - 291.70001220703125, - 381.0, - 312.1000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ð\u001a\u00194Ê-«-¤76gçBéaï", - "origin": [ - 97.20001983642578, - 298.0 - ], - "bbox": [ - 97.20001983642578, - 291.70001220703125, - 138.00003051757812, - 312.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-,", - "origin": [ - 138.00003051757812, - 298.0 - ], - "bbox": [ - 138.00003051757812, - 293.29998779296875, - 143.30003356933594, - 311.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "NáI»� ", - "origin": [ - 143.30003356933594, - 298.0 - ], - "bbox": [ - 143.30003356933594, - 292.0, - 164.5000457763672, - 311.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\"%$�'", - "origin": [ - 164.5000457763672, - 298.0 - ], - "bbox": [ - 164.5000457763672, - 293.29998779296875, - 179.80003356933594, - 311.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß/ÁgžHáHáFß&·¸´\nÞ\n¼", - "origin": [ - 179.80003356933594, - 298.0 - ], - "bbox": [ - 179.80003356933594, - 292.0, - 232.60003662109375, - 311.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 232.60003662109375, - 298.0 - ], - "bbox": [ - 232.60003662109375, - 293.29998779296875, - 238.70004272460938, - 311.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cì½\u0019", - "origin": [ - 238.70004272460938, - 298.0 - ], - "bbox": [ - 238.70004272460938, - 291.70001220703125, - 253.5000457763672, - 312.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 253.5000457763672, - 298.0 - ], - "bbox": [ - 253.5000457763672, - 292.0, - 258.300048828125, - 311.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6HÊ", - "origin": [ - 258.300048828125, - 298.0 - ], - "bbox": [ - 258.300048828125, - 291.70001220703125, - 284.1000671386719, - 312.1000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.20001983642578, - 291.70001220703125, - 284.1000671386719, - 312.1000061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨#\u00194Ç96", - "origin": [ - 289.60003662109375, - 298.0 - ], - "bbox": [ - 289.60003662109375, - 291.70001220703125, - 310.8000183105469, - 312.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ".'", - "origin": [ - 310.8000183105469, - 298.0 - ], - "bbox": [ - 310.8000183105469, - 293.29998779296875, - 318.4000244140625, - 311.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß/ÁgžHáHáFß&·¸´\nÞ\n¼\"X", - "origin": [ - 318.4000244140625, - 298.0 - ], - "bbox": [ - 318.4000244140625, - 292.0, - 376.70001220703125, - 311.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 376.70001220703125, - 298.0 - ], - "bbox": [ - 376.70001220703125, - 291.70001220703125, - 381.0, - 312.1000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.60003662109375, - 291.70001220703125, - 381.0, - 312.1000061035156 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 84.30003356933594, - 308.9000244140625, - 90.00003051757812, - 329.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò� ", - "origin": [ - 84.30003356933594, - 315.20001220703125 - ], - "bbox": [ - 84.30003356933594, - 308.9000244140625, - 90.00003051757812, - 329.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.30003356933594, - 308.9000244140625, - 90.00003051757812, - 329.3000183105469 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 100.80003356933594, - 308.9000244140625, - 402.6000061035156, - 329.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨¸ÐF\u001bu«-¦=\u0019%5u«¬£9©‰¥/6e¤sÐ\u001a\u00194Ê-«-¤76=¤H8mç", - "origin": [ - 100.80003356933594, - 315.20001220703125 - ], - "bbox": [ - 100.80003356933594, - 308.9000244140625, - 206.40003967285156, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 206.40003967285156, - 315.20001220703125 - ], - "bbox": [ - 206.40003967285156, - 309.20001220703125, - 213.5000457763672, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nð/ê", - "origin": [ - 213.5000457763672, - 315.20001220703125 - ], - "bbox": [ - 213.5000457763672, - 308.9000244140625, - 224.20004272460938, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%/", - "origin": [ - 224.20004272460938, - 315.20001220703125 - ], - "bbox": [ - 224.20004272460938, - 310.5, - 230.20004272460938, - 328.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 230.20004272460938, - 315.20001220703125 - ], - "bbox": [ - 230.20004272460938, - 308.9000244140625, - 235.300048828125, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~·\n·H·", - "origin": [ - 235.300048828125, - 315.20001220703125 - ], - "bbox": [ - 235.300048828125, - 309.20001220703125, - 254.70004272460938, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1ç", - "origin": [ - 254.70004272460938, - 315.20001220703125 - ], - "bbox": [ - 254.70004272460938, - 308.9000244140625, - 258.9000549316406, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 258.9000549316406, - 315.20001220703125 - ], - "bbox": [ - 258.9000549316406, - 309.20001220703125, - 266.00006103515625, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ð/ê", - "origin": [ - 266.00006103515625, - 315.20001220703125 - ], - "bbox": [ - 266.00006103515625, - 308.9000244140625, - 276.800048828125, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "10", - "origin": [ - 276.800048828125, - 315.20001220703125 - ], - "bbox": [ - 276.800048828125, - 310.5, - 282.2000427246094, - 328.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aì", - "origin": [ - 282.2000427246094, - 315.20001220703125 - ], - "bbox": [ - 282.2000427246094, - 308.9000244140625, - 287.800048828125, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~·H·\n·", - "origin": [ - 287.800048828125, - 315.20001220703125 - ], - "bbox": [ - 287.800048828125, - 309.20001220703125, - 307.2000427246094, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "uç", - "origin": [ - 307.2000427246094, - 315.20001220703125 - ], - "bbox": [ - 307.2000427246094, - 308.9000244140625, - 311.2000427246094, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £I›", - "origin": [ - 311.2000427246094, - 315.20001220703125 - ], - "bbox": [ - 311.2000427246094, - 309.20001220703125, - 323.5000305175781, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ð/ê", - "origin": [ - 323.5000305175781, - 315.20001220703125 - ], - "bbox": [ - 323.5000305175781, - 308.9000244140625, - 334.3000183105469, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#0", - "origin": [ - 334.3000183105469, - 315.20001220703125 - ], - "bbox": [ - 334.3000183105469, - 310.5, - 339.5000305175781, - 328.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ì", - "origin": [ - 339.5000305175781, - 315.20001220703125 - ], - "bbox": [ - 339.5000305175781, - 308.9000244140625, - 345.2000427246094, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017·\n·Š·", - "origin": [ - 345.2000427246094, - 315.20001220703125 - ], - "bbox": [ - 345.2000427246094, - 309.20001220703125, - 364.4000244140625, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1ç", - "origin": [ - 364.4000244140625, - 315.20001220703125 - ], - "bbox": [ - 364.4000244140625, - 308.9000244140625, - 368.60003662109375, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £I›", - "origin": [ - 368.60003662109375, - 315.20001220703125 - ], - "bbox": [ - 368.60003662109375, - 309.20001220703125, - 380.9000244140625, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nð\nê", - "origin": [ - 380.9000244140625, - 315.20001220703125 - ], - "bbox": [ - 380.9000244140625, - 308.9000244140625, - 391.5, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%/", - "origin": [ - 391.5, - 315.20001220703125 - ], - "bbox": [ - 391.5, - 310.5, - 397.5, - 328.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 397.5, - 315.20001220703125 - ], - "bbox": [ - 397.5, - 308.9000244140625, - 402.6000061035156, - 329.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.80003356933594, - 308.9000244140625, - 402.6000061035156, - 329.3000183105469 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 97.50003051757812, - 324.20001220703125, - 535.9000854492188, - 344.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó\u001e¯", - "origin": [ - 97.50003051757812, - 330.5 - ], - "bbox": [ - 97.50003051757812, - 324.20001220703125, - 105.00003051757812, - 344.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.50003051757812, - 324.20001220703125, - 105.00003051757812, - 344.6000061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5×Ê-6b\u0018F\u001bu«-©\u001a¦)«-\u0018�6V¥/6=¤×\u0018�£9§F\u0018wÈ[6=¤×\u001b7§�¤7¤76=¤= \nÓ~\u001bu£\u001c«Y¤�6=\u001b", - "origin": [ - 107.10002899169922, - 330.5 - ], - "bbox": [ - 107.10002899169922, - 324.20001220703125, - 283.8999938964844, - 344.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.10002899169922, - 324.20001220703125, - 283.8999938964844, - 344.6000061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʬ6e¤,Ð\u001a\u0019\u001cʬ«Y¤76=¤,\u0018\u001a\u001b7£%Æ9£\n²?§F6s§F©\u001a6R6[\u001bu\u001bu6[§F\u001bײ?§F«�6=¤�5 ¤7£\u001c§FÆ96[©?5,«-©95u6[\u001bu\u0018F\u001buÈ)57È=6", - "origin": [ - 290.5000305175781, - 330.5 - ], - "bbox": [ - 290.5000305175781, - 324.20001220703125, - 535.9000854492188, - 344.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.5000305175781, - 324.20001220703125, - 535.9000854492188, - 344.6000061035156 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 97.30003356933594, - 337.8000183105469, - 260.0000305175781, - 358.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6VÔy\u0019", - "origin": [ - 97.30003356933594, - 344.1000061035156 - ], - "bbox": [ - 97.30003356933594, - 337.8000183105469, - 113.50003051757812, - 358.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F³", - "origin": [ - 113.50003051757812, - 344.1000061035156 - ], - "bbox": [ - 113.50003051757812, - 338.1000061035156, - 118.50003051757812, - 357.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ")£9©É\u0019\u001cʬÈe\u0019%5u£\u001c«-\u001b76V\u0018\u001a\u00194\u001boÊ-6=¤s©�\u0019aÆ?«-Ç9\u00194576=§F\u001bu¤= ", - "origin": [ - 118.50003051757812, - 344.1000061035156 - ], - "bbox": [ - 118.50003051757812, - 337.8000183105469, - 260.0000305175781, - 358.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.30003356933594, - 337.8000183105469, - 260.0000305175781, - 358.20001220703125 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 84.50003051757812, - 354.8000183105469, - 325.4000244140625, - 375.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "DF \u001eÓ~£\u001c¨g¨g6[©?5u\u0019\u001c«¬\u001bu6=¤V8;ç", - "origin": [ - 84.50003051757812, - 361.1000061035156 - ], - "bbox": [ - 84.50003051757812, - 354.8000183105469, - 169.40003967285156, - 375.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "N¢", - "origin": [ - 169.40003967285156, - 361.1000061035156 - ], - "bbox": [ - 169.40003967285156, - 355.1000061035156, - 180.0000457763672, - 374.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "32", - "origin": [ - 180.0000457763672, - 361.1000061035156 - ], - "bbox": [ - 180.0000457763672, - 356.3999938964844, - 184.20004272460938, - 374.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "(¾/ßg \nžUß\"áIŸkÆ\nÞñ |ºYÀ\nÀ\u0011ßFÞ\nŸ\"ÄfžY»\"ß", - "origin": [ - 184.20004272460938, - 361.1000061035156 - ], - "bbox": [ - 184.20004272460938, - 355.1000061035156, - 309.800048828125, - 374.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "42", - "origin": [ - 309.800048828125, - 361.1000061035156 - ], - "bbox": [ - 309.800048828125, - 356.3999938964844, - 320.10003662109375, - 374.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nì", - "origin": [ - 320.10003662109375, - 361.1000061035156 - ], - "bbox": [ - 320.10003662109375, - 354.8000183105469, - 325.4000244140625, - 375.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.50003051757812, - 354.8000183105469, - 325.4000244140625, - 375.20001220703125 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 100.8000259399414, - 370.20001220703125, - 342.1000061035156, - 390.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê;6=¤�5b\u0018�£?¤7¤7«¬Ð\u001aʬ6B¥/6M¤u\u00194§/5u6[\u001bo¥/6e¤oʬ«-Ç\u001c©\u001a6=¤o¥F\u0019\u001c©\u001a¤s§F©Ý¦)£9¨^¨g6=©95ª\u00194«-\u001b769 ", - "origin": [ - 100.8000259399414, - 376.5 - ], - "bbox": [ - 100.8000259399414, - 370.20001220703125, - 342.1000061035156, - 390.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.8000259399414, - 370.20001220703125, - 342.1000061035156, - 390.6000061035156 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 118.70001983642578, - 405.5000305175781, - 200.2000274658203, - 425.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ŠKŽm’", - "origin": [ - 118.70001983642578, - 411.8000183105469 - ], - "bbox": [ - 118.70001983642578, - 405.5000305175781, - 131.00001525878906, - 425.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "9\u0014\u0017\u0016", - "origin": [ - 131.00001525878906, - 411.8000183105469 - ], - "bbox": [ - 131.00001525878906, - 405.8000183105469, - 146.20001220703125, - 425.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "׎", - "origin": [ - 146.20001220703125, - 411.8000183105469 - ], - "bbox": [ - 146.20001220703125, - 405.5000305175781, - 153.00001525878906, - 425.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E\u0014", - "origin": [ - 153.00001525878906, - 411.8000183105469 - ], - "bbox": [ - 153.00001525878906, - 405.8000183105469, - 159.30001831054688, - 425.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f’i†", - "origin": [ - 159.30001831054688, - 411.8000183105469 - ], - "bbox": [ - 159.30001831054688, - 405.5000305175781, - 174.4000244140625, - 425.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.70001983642578, - 405.5000305175781, - 174.4000244140625, - 425.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‡", - "origin": [ - 187.00003051757812, - 411.8000183105469 - ], - "bbox": [ - 187.00003051757812, - 405.5000305175781, - 187.00003051757812, - 425.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "76", - "origin": [ - 187.00003051757812, - 411.8000183105469 - ], - "bbox": [ - 187.00003051757812, - 407.1000061035156, - 196.50003051757812, - 424.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ";\u0014", - "origin": [ - 196.50003051757812, - 411.8000183105469 - ], - "bbox": [ - 196.50003051757812, - 405.8000183105469, - 200.2000274658203, - 425.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.00003051757812, - 405.5000305175781, - 200.2000274658203, - 425.9000244140625 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 222.9000244140625, - 405.5000305175781, - 269.0, - 425.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‡", - "origin": [ - 222.9000244140625, - 411.8000183105469 - ], - "bbox": [ - 222.9000244140625, - 405.5000305175781, - 222.9000244140625, - 425.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015\u0012Ê\u0016…\u0014", - "origin": [ - 222.9000244140625, - 411.8000183105469 - ], - "bbox": [ - 222.9000244140625, - 405.8000183105469, - 247.00001525878906, - 425.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…‹†", - "origin": [ - 247.00001525878906, - 411.8000183105469 - ], - "bbox": [ - 247.00001525878906, - 405.5000305175781, - 269.0, - 425.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.9000244140625, - 405.5000305175781, - 269.0, - 425.9000244140625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 72.30000305175781, - 439.4000244140625, - 535.8998413085938, - 459.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "`", - "origin": [ - 72.30000305175781, - 445.70001220703125 - ], - "bbox": [ - 72.30000305175781, - 439.70001220703125, - 72.30000305175781, - 458.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b£9§\u001a¤R\u0019\u001cʬÊ-£\u001c©�¤Rß#\u0018F\u001buÈ=¤76[©?5R\u0018�\u0019\u001c¤u¤�6=\u001bRßcÊY\u0019c¦)£9©\u001a¦)6=\u0018/57«-£\u001c©Í¥K¯", - "origin": [ - 72.30000305175781, - 445.70001220703125 - ], - "bbox": [ - 72.30000305175781, - 439.4000244140625, - 276.0, - 459.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 439.4000244140625, - 276.0, - 459.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©\u001a6¸\u0018\u001a\u0019\u001cÇ\u001c6MÏÙ6[ÐK ", - "origin": [ - 278.1000061035156, - 445.70001220703125 - ], - "bbox": [ - 278.1000061035156, - 439.4000244140625, - 340.6000061035156, - 459.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011`", - "origin": [ - 340.6000061035156, - 445.70001220703125 - ], - "bbox": [ - 340.6000061035156, - 439.70001220703125, - 346.5, - 458.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b£9§\u001a¤R¦[£\u001c¨g¨g6[©\u001a¦[6[\u001bu£\u001c©\u001a¤b\u0018\u001a\u00194\u001bV¥/È=¦[\u001b7«-\u001b76BÊY\u0019\u000f¤�57\u001bu§\u001a¦)57§F\u001bu6", - "origin": [ - 346.5, - 445.70001220703125 - ], - "bbox": [ - 346.5, - 439.4000244140625, - 535.8998413085938, - 459.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.1000061035156, - 439.4000244140625, - 535.8998413085938, - 459.8000183105469 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 72.30000305175781, - 453.10003662109375, - 171.40000915527344, - 473.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥;¯", - "origin": [ - 72.30000305175781, - 459.4000244140625 - ], - "bbox": [ - 72.30000305175781, - 453.10003662109375, - 78.30000305175781, - 473.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 453.10003662109375, - 78.30000305175781, - 473.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©Ý¥/£/¦)§F¨g6=©95R³\u001e´oµÍ¶, ", - "origin": [ - 80.5, - 459.4000244140625 - ], - "bbox": [ - 80.5, - 453.10003662109375, - 171.40000915527344, - 473.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.5, - 453.10003662109375, - 171.40000915527344, - 473.5000305175781 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 72.5, - 471.800048828125, - 526.3998413085938, - 492.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.5, - 478.10003662109375 - ], - "bbox": [ - 72.5, - 472.10003662109375, - 72.5, - 491.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©…¥/È[Ê-«¬¨g«¬576M§\u001a©É¥/£/¦[§F¨g6[©?5R³R´oµÍ¶‚\u0018�\u00194\u001boÊY\u0019!Ð�\u00194Ê-«-¤76gç", - "origin": [ - 72.5, - 478.10003662109375 - ], - "bbox": [ - 72.5, - 471.800048828125, - 277.7999267578125, - 492.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(8", - "origin": [ - 277.7999267578125, - 478.10003662109375 - ], - "bbox": [ - 277.7999267578125, - 473.4000244140625, - 284.99993896484375, - 491.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è\nï/êwìB /Ó~6M¥F£\n¦[§F¨g6[©?5b¦)£9©95u«¬6=©?5R¥/6[§/ÿ‰\u0018\u001a\u00194\u001b757«-6=¤s6e¤7¤76[©?57«-6[Ê-Ê-6=¤H8", - "origin": [ - 284.99993896484375, - 478.10003662109375 - ], - "bbox": [ - 284.99993896484375, - 471.800048828125, - 526.3998413085938, - 492.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 471.800048828125, - 526.3998413085938, - 492.2000427246094 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 82.30000305175781, - 490.7000427246094, - 253.90000915527344, - 511.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶,¯", - "origin": [ - 82.30000305175781, - 497.0000305175781 - ], - "bbox": [ - 82.30000305175781, - 490.7000427246094, - 89.0, - 511.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 490.7000427246094, - 89.0, - 511.10003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[©?57å[576M¥/§Ý¥/£/¦)§\u001a¨^6=©?5", - "origin": [ - 91.20000457763672, - 497.0000305175781 - ], - "bbox": [ - 91.20000457763672, - 490.7000427246094, - 173.90000915527344, - 511.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$T", - "origin": [ - 173.90000915527344, - 497.0000305175781 - ], - "bbox": [ - 173.90000915527344, - 491.0000305175781, - 181.70001220703125, - 510.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yÐ\u001a\u00194Ê-«Y¤�6#ç", - "origin": [ - 181.70001220703125, - 497.0000305175781 - ], - "bbox": [ - 181.70001220703125, - 490.7000427246094, - 213.3000030517578, - 511.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(8", - "origin": [ - 213.3000030517578, - 497.0000305175781 - ], - "bbox": [ - 213.3000030517578, - 492.3000183105469, - 220.5, - 510.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në\nð", - "origin": [ - 220.5, - 497.0000305175781 - ], - "bbox": [ - 220.5, - 490.7000427246094, - 231.10000610351562, - 511.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 231.10000610351562, - 497.0000305175781 - ], - "bbox": [ - 231.10000610351562, - 492.3000183105469, - 236.40000915527344, - 510.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wì", - "origin": [ - 236.40000915527344, - 497.0000305175781 - ], - "bbox": [ - 236.40000915527344, - 490.7000427246094, - 242.20001220703125, - 511.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�X�[", - "origin": [ - 242.20001220703125, - 497.0000305175781 - ], - "bbox": [ - 242.20001220703125, - 491.0000305175781, - 253.90000915527344, - 510.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.20000457763672, - 490.7000427246094, - 253.90000915527344, - 511.10003662109375 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 82.30000305175781, - 504.2000427246094, - 251.0999755859375, - 524.6000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6B¦)£9\u001b7\u0018\u001a¤o¥F§…¥F£\n¦[§F¨g6[©?5", - "origin": [ - 82.30000305175781, - 510.5000305175781 - ], - "bbox": [ - 82.30000305175781, - 504.2000427246094, - 175.29998779296875, - 524.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 175.29998779296875, - 510.5000305175781 - ], - "bbox": [ - 175.29998779296875, - 504.5000305175781, - 183.19998168945312, - 523.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õÐ\u001a\u0019\u001cʬ«Y¤76#ç", - "origin": [ - 183.19998168945312, - 510.5000305175781 - ], - "bbox": [ - 183.19998168945312, - 504.2000427246094, - 214.7999725341797, - 524.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 214.7999725341797, - 510.5000305175781 - ], - "bbox": [ - 214.7999725341797, - 504.5000305175781, - 221.8999786376953, - 523.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<;�:-=", - "origin": [ - 221.8999786376953, - 510.5000305175781 - ], - "bbox": [ - 221.8999786376953, - 505.8000183105469, - 237.79998779296875, - 523.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 237.79998779296875, - 510.5000305175781 - ], - "bbox": [ - 237.79998779296875, - 504.2000427246094, - 243.69998168945312, - 524.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�X", - "origin": [ - 243.69998168945312, - 510.5000305175781 - ], - "bbox": [ - 243.69998168945312, - 504.5000305175781, - 251.0999755859375, - 523.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 504.2000427246094, - 251.0999755859375, - 524.6000366210938 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 78.80000305175781, - 523.1000366210938, - 129.90000915527344, - 543.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.80000305175781, - 529.4000244140625 - ], - "bbox": [ - 78.80000305175781, - 523.1000366210938, - 129.90000915527344, - 543.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80000305175781, - 523.1000366210938, - 129.90000915527344, - 543.5 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 77.80000305175781, - 547.7000122070312, - 104.20000457763672, - 568.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 77.80000305175781, - 554.0 - ], - "bbox": [ - 77.80000305175781, - 548.0, - 77.80000305175781, - 567.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 77.80000305175781, - 554.0 - ], - "bbox": [ - 77.80000305175781, - 549.2999877929688, - 82.80000305175781, - 567.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è\nï/ê", - "origin": [ - 82.80000305175781, - 554.0 - ], - "bbox": [ - 82.80000305175781, - 547.7000122070312, - 98.70000457763672, - 568.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 98.70000457763672, - 554.0 - ], - "bbox": [ - 98.70000457763672, - 548.0, - 104.20000457763672, - 567.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.80000305175781, - 547.7000122070312, - 104.20000457763672, - 568.0999755859375 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 93.4000015258789, - 561.2999877929688, - 119.80000305175781, - 581.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 567.5999755859375 - ], - "bbox": [ - 93.4000015258789, - 561.5999755859375, - 93.4000015258789, - 580.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 93.4000015258789, - 567.5999755859375 - ], - "bbox": [ - 93.4000015258789, - 562.8999633789062, - 98.4000015258789, - 580.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ë\nð", - "origin": [ - 98.4000015258789, - 567.5999755859375 - ], - "bbox": [ - 98.4000015258789, - 561.2999877929688, - 108.9000015258789, - 581.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 108.9000015258789, - 567.5999755859375 - ], - "bbox": [ - 108.9000015258789, - 562.8999633789062, - 114.20000457763672, - 580.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.20000457763672, - 567.5999755859375 - ], - "bbox": [ - 114.20000457763672, - 561.5999755859375, - 119.80000305175781, - 580.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 561.2999877929688, - 119.80000305175781, - 581.699951171875 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 109.0999984741211, - 575.0000610351562, - 313.5999450683594, - 595.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 109.0999984741211, - 581.300048828125 - ], - "bbox": [ - 109.0999984741211, - 575.300048828125, - 109.0999984741211, - 594.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè+éeè/ê?ë", - "origin": [ - 109.0999984741211, - 581.300048828125 - ], - "bbox": [ - 109.0999984741211, - 575.0000610351562, - 135.1999969482422, - 595.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 135.1999969482422, - 581.300048828125 - ], - "bbox": [ - 135.1999969482422, - 575.300048828125, - 140.8000030517578, - 594.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï", - "origin": [ - 140.8000030517578, - 581.300048828125 - ], - "bbox": [ - 140.8000030517578, - 575.0000610351562, - 145.8000030517578, - 595.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ºFÞU´/»/ßYÀEž|ߊ»", - "origin": [ - 145.8000030517578, - 581.300048828125 - ], - "bbox": [ - 145.8000030517578, - 575.300048828125, - 197.99998474121094, - 594.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "4>", - "origin": [ - 197.99998474121094, - 581.300048828125 - ], - "bbox": [ - 197.99998474121094, - 576.6000366210938, - 208.29998779296875, - 594.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nºg YÆFÀ\u0011ß|Þ/Ÿ", - "origin": [ - 208.29998779296875, - 581.300048828125 - ], - "bbox": [ - 208.29998779296875, - 575.300048828125, - 245.0999755859375, - 594.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "?8", - "origin": [ - 245.0999755859375, - 581.300048828125 - ], - "bbox": [ - 245.0999755859375, - 576.6000366210938, - 255.19998168945312, - 594.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè\nï\nê", - "origin": [ - 255.19998168945312, - 581.300048828125 - ], - "bbox": [ - 255.19998168945312, - 575.0000610351562, - 271.0999450683594, - 595.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ý\n£", - "origin": [ - 271.0999450683594, - 581.300048828125 - ], - "bbox": [ - 271.0999450683594, - 575.300048828125, - 281.8999328613281, - 594.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè+éeè/ê?ë", - "origin": [ - 281.8999328613281, - 581.300048828125 - ], - "bbox": [ - 281.8999328613281, - 575.0000610351562, - 307.99993896484375, - 595.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 307.99993896484375, - 581.300048828125 - ], - "bbox": [ - 307.99993896484375, - 575.300048828125, - 313.5999450683594, - 594.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.0999984741211, - 575.0000610351562, - 313.5999450683594, - 595.4000244140625 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 93.4000015258789, - 588.6000366210938, - 125.10001373291016, - 609.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.4000015258789, - 594.9000244140625 - ], - "bbox": [ - 93.4000015258789, - 588.9000244140625, - 98.70000457763672, - 608.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 98.70000457763672, - 594.9000244140625 - ], - "bbox": [ - 98.70000457763672, - 590.2000122070312, - 103.60000610351562, - 608.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në\nð", - "origin": [ - 103.60000610351562, - 594.9000244140625 - ], - "bbox": [ - 103.60000610351562, - 588.6000366210938, - 114.20001220703125, - 609.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 114.20001220703125, - 594.9000244140625 - ], - "bbox": [ - 114.20001220703125, - 590.2000122070312, - 119.50001525878906, - 608.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 119.50001525878906, - 594.9000244140625 - ], - "bbox": [ - 119.50001525878906, - 588.9000244140625, - 125.10001373291016, - 608.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 588.6000366210938, - 125.10001373291016, - 609.0 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 93.4000015258789, - 616.1000366210938, - 119.80000305175781, - 635.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý|›", - "origin": [ - 93.4000015258789, - 622.1000366210938 - ], - "bbox": [ - 93.4000015258789, - 616.1000366210938, - 98.30000305175781, - 635.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<;�:-=", - "origin": [ - 98.30000305175781, - 622.1000366210938 - ], - "bbox": [ - 98.30000305175781, - 617.4000244140625, - 114.20000457763672, - 635.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.20000457763672, - 622.1000366210938 - ], - "bbox": [ - 114.20000457763672, - 616.1000366210938, - 119.80000305175781, - 635.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 616.1000366210938, - 119.80000305175781, - 635.300048828125 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 109.0999984741211, - 629.800048828125, - 231.0999755859375, - 649.0000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 109.0999984741211, - 635.800048828125 - ], - "bbox": [ - 109.0999984741211, - 629.800048828125, - 109.0999984741211, - 649.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 109.0999984741211, - 635.800048828125 - ], - "bbox": [ - 109.0999984741211, - 631.1000366210938, - 114.0999984741211, - 648.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.0999984741211, - 635.800048828125 - ], - "bbox": [ - 114.0999984741211, - 629.800048828125, - 119.69999694824219, - 649.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\u001f", - "origin": [ - 119.69999694824219, - 635.800048828125 - ], - "bbox": [ - 119.69999694824219, - 631.1000366210938, - 124.79999542236328, - 648.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÄ/Á|Æ/ŸUŸ\"ºFÆ/ŸNÁHßAÀ\u0011ºFÞ", - "origin": [ - 124.79999542236328, - 635.800048828125 - ], - "bbox": [ - 124.79999542236328, - 629.800048828125, - 208.19996643066406, - 649.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 208.19996643066406, - 635.800048828125 - ], - "bbox": [ - 208.19996643066406, - 631.1000366210938, - 213.69996643066406, - 648.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nß&¢\n¢", - "origin": [ - 213.69996643066406, - 635.800048828125 - ], - "bbox": [ - 213.69996643066406, - 629.800048828125, - 231.0999755859375, - 649.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.0999984741211, - 629.800048828125, - 231.0999755859375, - 649.0000610351562 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 93.4000015258789, - 643.4000244140625, - 125.10000610351562, - 662.6000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£I›", - "origin": [ - 93.4000015258789, - 649.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 643.4000244140625, - 103.50000762939453, - 662.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A;�:-=", - "origin": [ - 103.50000762939453, - 649.4000244140625 - ], - "bbox": [ - 103.50000762939453, - 644.7000122070312, - 119.50000762939453, - 662.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 119.50000762939453, - 649.4000244140625 - ], - "bbox": [ - 119.50000762939453, - 643.4000244140625, - 125.10000610351562, - 662.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 643.4000244140625, - 125.10000610351562, - 662.6000366210938 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 77.80000305175781, - 656.7000122070312, - 109.50001525878906, - 677.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 77.80000305175781, - 663.0 - ], - "bbox": [ - 77.80000305175781, - 657.0, - 83.10000610351562, - 676.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 83.10000610351562, - 663.0 - ], - "bbox": [ - 83.10000610351562, - 658.2999877929688, - 88.00000762939453, - 676.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè\nï/ê", - "origin": [ - 88.00000762939453, - 663.0 - ], - "bbox": [ - 88.00000762939453, - 656.7000122070312, - 104.00001525878906, - 677.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 104.00001525878906, - 663.0 - ], - "bbox": [ - 104.00001525878906, - 657.0, - 109.50001525878906, - 676.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.80000305175781, - 656.7000122070312, - 109.50001525878906, - 677.0999755859375 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 72.30000305175781, - 687.5, - 144.5, - 706.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "è*\u0019\u001b\u0018", - "origin": [ - 72.30000305175781, - 693.5 - ], - "bbox": [ - 72.30000305175781, - 687.5, - 83.40000915527344, - 706.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 687.5, - 83.40000915527344, - 706.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QòBq)657-", - "origin": [ - 103.0, - 693.5 - ], - "bbox": [ - 103.0, - 687.5, - 127.79999542236328, - 706.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-B", - "origin": [ - 127.79999542236328, - 693.5 - ], - "bbox": [ - 127.79999542236328, - 688.7999877929688, - 133.09999084472656, - 706.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=-\n)", - "origin": [ - 133.09999084472656, - 693.5 - ], - "bbox": [ - 133.09999084472656, - 687.5, - 144.5, - 706.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.0, - 687.5, - 144.5, - 706.7000122070312 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 72.30000305175781, - 715.7000122070312, - 535.2999877929688, - 736.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶,¯", - "origin": [ - 72.30000305175781, - 722.0 - ], - "bbox": [ - 72.30000305175781, - 715.7000122070312, - 79.0, - 736.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 715.7000122070312, - 79.0, - 736.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[©?5uå)576H¤76[\u001b75sß!¥/£\u001c©F©\u001a6[\u001bo¥/6=¤ «-©/Ôõ£\u001c\u001bu¨#\u0019%5u«¬£9©\u001a¤~²?§F«+©K¯", - "origin": [ - 81.20000457763672, - 722.0 - ], - "bbox": [ - 81.20000457763672, - 715.7000122070312, - 268.6000061035156, - 736.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.20000457763672, - 715.7000122070312, - 268.6000061035156, - 736.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u0018\u001a\u0018\u001a\u00194\u001bª\u0019", - "origin": [ - 270.8999938964844, - 722.0 - ], - "bbox": [ - 270.8999938964844, - 715.7000122070312, - 296.0, - 736.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f\u001c", - "origin": [ - 296.0, - 722.0 - ], - "bbox": [ - 296.0, - 717.2999877929688, - 300.70001220703125, - 735.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Y57\u001bu£\u001c©\u001a¤×\u0018\u001a\u0019\u001c¤ ¤7§F\u001bsʬ6H¥/£/¦)§F¨g6=©95e \u001aÓ~6[ÊY\u0019¸\u0018w6[§/57°", - "origin": [ - 300.70001220703125, - 722.0 - ], - "bbox": [ - 300.70001220703125, - 715.7000122070312, - 463.7999572753906, - 736.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.8999938964844, - 715.7000122070312, - 463.7999572753906, - 736.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "å[57\u001bu6\u001eÊ-6\u001e57«¬57\u001bu6V¥/6VÊY\u0019", - "origin": [ - 467.20001220703125, - 722.0 - ], - "bbox": [ - 467.20001220703125, - 715.7000122070312, - 535.2999877929688, - 736.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 467.20001220703125, - 715.7000122070312, - 535.2999877929688, - 736.0999755859375 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 161.7056451612903, - 358.86951566951564, - 184.73790322580643, - 367.5054131054131 - ], - "image_path": "equations_inline/4_161_358_184_367.jpg" - }, - { - "bbox": [ - 318.6129032258064, - 360.3088319088319, - 333.4879032258064, - 367.9851851851852 - ], - "image_path": "equations_inline/4_318_360_333_367.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 35.29997634887695, - 595.0, - 150.19998168945312 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 175.90000915527344, - 595.0, - 196.30001831054688 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 221.90000915527344, - 595.0, - 242.30001831054688 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 84.30003356933594, - 308.9000244140625, - 90.00003051757812, - 329.3000183105469 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 337.8000183105469, - 595.0, - 375.20001220703125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 118.70001983642578, - 405.5000305175781, - 200.2000274658203, - 425.9000244140625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 222.9000244140625, - 405.5000305175781, - 269.0, - 425.9000244140625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 439.4000244140625, - 595.0, - 568.0999755859375 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 588.6000366210938, - 595.0, - 635.300048828125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 656.7000122070312, - 595.0, - 763.2999877929688 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Þ", - "origin": [ - 72.30000305175781, - 41.5999755859375 - ], - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 72.30000305175781, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E�", - "origin": [ - 72.30000305175781, - 41.5999755859375 - ], - "bbox": [ - 72.30000305175781, - 35.5999755859375, - 78.60000610351562, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×Á‚Ø[—=˜%›œ\u001c—=›˜a¾\u000eš×â-›–Ìš™Kœ\u001c›¼¿¾\n–+—", - "origin": [ - 78.60000610351562, - 41.5999755859375 - ], - "bbox": [ - 78.60000610351562, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.50003051757812, - 77.699951171875, - 202.30001831054688, - 96.89994812011719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ì1\u0019\r?", - "origin": [ - 72.50003051757812, - 83.699951171875 - ], - "bbox": [ - 72.50003051757812, - 77.699951171875, - 82.90003204345703, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50003051757812, - 77.699951171875, - 82.90003204345703, - 96.89994812011719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%•\u001f", - "origin": [ - 103.00003051757812, - 83.699951171875 - ], - "bbox": [ - 103.00003051757812, - 77.699951171875, - 126.90003967285156, - 96.89994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\u001d", - "origin": [ - 126.90003967285156, - 83.699951171875 - ], - "bbox": [ - 126.90003967285156, - 78.99995422363281, - 132.40003967285156, - 96.7999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=­7°;)6%•'�)KÏ�8\u001a%H)", - "origin": [ - 132.40003967285156, - 83.699951171875 - ], - "bbox": [ - 132.40003967285156, - 77.699951171875, - 202.30001831054688, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00003051757812, - 77.699951171875, - 202.30001831054688, - 96.89994812011719 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 78.8000259399414, - 105.89994812011719, - 290.4000549316406, - 126.2999496459961 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c«Y¦)«mʬ6e¤o¦)«-©\u001a²#\u001buá[Ç\u001cÊ-6=¤o¥F6VÐ�\u0019\u001c¤76V\u0018w£\u001c§\u001a\u001bsÔy\u00194«-\u001b76B¥/§Ý³R´oµ\u000e¶Ì8", - "origin": [ - 78.8000259399414, - 112.199951171875 - ], - "bbox": [ - 78.8000259399414, - 105.89994812011719, - 290.4000549316406, - 126.2999496459961 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.8000259399414, - 105.89994812011719, - 290.4000549316406, - 126.2999496459961 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 84.9000244140625, - 129.7999725341797, - 291.1999816894531, - 150.19998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9 b3RÈ", - "origin": [ - 84.9000244140625, - 136.0999755859375 - ], - "bbox": [ - 84.9000244140625, - 129.7999725341797, - 104.70002746582031, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 104.70002746582031, - 136.0999755859375 - ], - "bbox": [ - 104.70002746582031, - 130.0999755859375, - 109.10002899169922, - 149.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«-\u001bo§F©F6", - "origin": [ - 109.10002899169922, - 136.0999755859375 - ], - "bbox": [ - 109.10002899169922, - 129.7999725341797, - 141.2000274658203, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$‡", - "origin": [ - 141.2000274658203, - 136.0999755859375 - ], - "bbox": [ - 141.2000274658203, - 130.0999755859375, - 149.00003051757812, - 149.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£9©F6g8Kç", - "origin": [ - 149.00003051757812, - 136.0999755859375 - ], - "bbox": [ - 149.00003051757812, - 129.7999725341797, - 178.40003967285156, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 178.40003967285156, - 136.0999755859375 - ], - "bbox": [ - 178.40003967285156, - 130.0999755859375, - 185.5000457763672, - 149.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ð/ê�é", - "origin": [ - 185.5000457763672, - 136.0999755859375 - ], - "bbox": [ - 185.5000457763672, - 129.7999725341797, - 202.00003051757812, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001f", - "origin": [ - 202.00003051757812, - 136.0999755859375 - ], - "bbox": [ - 202.00003051757812, - 131.3999786376953, - 206.9000244140625, - 149.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ë+ì", - "origin": [ - 206.9000244140625, - 136.0999755859375 - ], - "bbox": [ - 206.9000244140625, - 129.7999725341797, - 217.9000244140625, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "! ", - "origin": [ - 217.9000244140625, - 136.0999755859375 - ], - "bbox": [ - 217.9000244140625, - 131.3999786376953, - 225.30001831054688, - 149.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nº|Þgß", - "origin": [ - 225.30001831054688, - 136.0999755859375 - ], - "bbox": [ - 225.30001831054688, - 130.0999755859375, - 241.1000213623047, - 149.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ç", - "origin": [ - 241.1000213623047, - 136.0999755859375 - ], - "bbox": [ - 241.1000213623047, - 129.7999725341797, - 246.80001831054688, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £|›", - "origin": [ - 246.80001831054688, - 136.0999755859375 - ], - "bbox": [ - 246.80001831054688, - 130.0999755859375, - 259.20001220703125, - 149.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ð/êwé", - "origin": [ - 259.20001220703125, - 136.0999755859375 - ], - "bbox": [ - 259.20001220703125, - 129.7999725341797, - 275.6000061035156, - 150.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001f", - "origin": [ - 275.6000061035156, - 136.0999755859375 - ], - "bbox": [ - 275.6000061035156, - 131.3999786376953, - 280.3999938964844, - 149.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cëwì", - "origin": [ - 280.3999938964844, - 136.0999755859375 - ], - "bbox": [ - 280.3999938964844, - 129.7999725341797, - 291.1999816894531, - 150.19998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.9000244140625, - 129.7999725341797, - 291.1999816894531, - 150.19998168945312 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 97.3000259399414, - 145.1999969482422, - 535.9000244140625, - 165.60000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K£\u001c\u001bª¤u²9§m¯", - "origin": [ - 97.3000259399414, - 151.5 - ], - "bbox": [ - 97.3000259399414, - 145.1999969482422, - 127.80001831054688, - 165.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.3000259399414, - 145.1999969482422, - 127.80001831054688, - 165.60000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£9©\u000f¥/È", - "origin": [ - 129.9000244140625, - 151.5 - ], - "bbox": [ - 129.9000244140625, - 145.1999969482422, - 149.00003051757812, - 165.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 149.00003051757812, - 151.5 - ], - "bbox": [ - 149.00003051757812, - 145.5, - 153.30003356933594, - 164.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©F«;§F©F6", - "origin": [ - 153.30003356933594, - 151.5 - ], - "bbox": [ - 153.30003356933594, - 145.1999969482422, - 181.50003051757812, - 165.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�‡", - "origin": [ - 181.50003051757812, - 151.5 - ], - "bbox": [ - 181.50003051757812, - 145.5, - 189.2000274658203, - 164.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£9©F6", - "origin": [ - 189.2000274658203, - 151.5 - ], - "bbox": [ - 189.2000274658203, - 145.1999969482422, - 204.2000274658203, - 165.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 204.2000274658203, - 151.5 - ], - "bbox": [ - 204.2000274658203, - 145.5, - 209.2000274658203, - 164.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/£9©É¤7§F\u0018F\u0018w£9¤76H²9§\u001a6\u001e5u£\u001c§\u001a¤sÊ-6=¤ £9Ð", - "origin": [ - 209.2000274658203, - 151.5 - ], - "bbox": [ - 209.2000274658203, - 145.1999969482422, - 325.2000732421875, - 165.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ë", - "origin": [ - 325.2000732421875, - 151.5 - ], - "bbox": [ - 325.2000732421875, - 145.5, - 330.6000671386719, - 164.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6)5ª¤o²9§\u001a«K¤�£9©95oß^Êô¯", - "origin": [ - 330.6000671386719, - 151.5 - ], - "bbox": [ - 330.6000671386719, - 145.1999969482422, - 399.4001159667969, - 165.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.9000244140625, - 145.1999969482422, - 399.4001159667969, - 165.60000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©95uÈ[\u001bu«¬6=§F\u001bs\u0018�£?¤7¤7á=¥F6[©?5o§F©F6B¦)6=\u001b�5ª\u00194«-©F6", - "origin": [ - 401.60003662109375, - 151.5 - ], - "bbox": [ - 401.60003662109375, - 145.1999969482422, - 535.9000244140625, - 165.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 401.60003662109375, - 145.1999969482422, - 535.9000244140625, - 165.60000610351562 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 97.20004272460938, - 158.90000915527344, - 292.4000244140625, - 179.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018F\u001b7£9\u0018F\u001bu«¬È[57È", - "origin": [ - 97.20004272460938, - 165.20001220703125 - ], - "bbox": [ - 97.20004272460938, - 158.90000915527344, - 132.2000274658203, - 179.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T", - "origin": [ - 132.2000274658203, - 165.20001220703125 - ], - "bbox": [ - 132.2000274658203, - 159.20001220703125, - 140.50003051757812, - 178.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ\u0018\u001a\u0019\u001c\u001bo6)ÿ/6[¨g\u0018FÊ-6B«¬ÊY¤o¤7£\u001c©?5oÈ=¦)\u001bu«¬5s6=©…Ç\u001c\u001bª\u0019\u001c¤", - "origin": [ - 140.50003051757812, - 165.20001220703125 - ], - "bbox": [ - 140.50003051757812, - 158.90000915527344, - 284.1000061035156, - 179.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×X", - "origin": [ - 284.1000061035156, - 165.20001220703125 - ], - "bbox": [ - 284.1000061035156, - 159.20001220703125, - 288.20001220703125, - 178.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 288.20001220703125, - 165.20001220703125 - ], - "bbox": [ - 288.20001220703125, - 158.90000915527344, - 292.4000244140625, - 179.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.20004272460938, - 158.90000915527344, - 292.4000244140625, - 179.30001831054688 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 84.50004577636719, - 175.90000915527344, - 220.40005493164062, - 196.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "AF ", - "origin": [ - 84.50004577636719, - 182.20001220703125 - ], - "bbox": [ - 84.50004577636719, - 175.90000915527344, - 90.00004577636719, - 196.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*]", - "origin": [ - 90.00004577636719, - 182.20001220703125 - ], - "bbox": [ - 90.00004577636719, - 176.20001220703125, - 97.300048828125, - 195.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " \u0019\u001cʬ«Y¤76\u001e\u0018w£\u001c©\u001a¦)57§F6=ʬÊ-6#8Kç", - "origin": [ - 97.300048828125, - 182.20001220703125 - ], - "bbox": [ - 97.300048828125, - 175.90000915527344, - 180.90005493164062, - 196.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 180.90005493164062, - 182.20001220703125 - ], - "bbox": [ - 180.90005493164062, - 176.20001220703125, - 188.00006103515625, - 195.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ð/êwé", - "origin": [ - 188.00006103515625, - 182.20001220703125 - ], - "bbox": [ - 188.00006103515625, - 175.90000915527344, - 204.6000518798828, - 196.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001f", - "origin": [ - 204.6000518798828, - 182.20001220703125 - ], - "bbox": [ - 204.6000518798828, - 177.50001525878906, - 209.40005493164062, - 195.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ë+ì", - "origin": [ - 209.40005493164062, - 182.20001220703125 - ], - "bbox": [ - 209.40005493164062, - 175.90000915527344, - 220.40005493164062, - 196.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.50004577636719, - 175.90000915527344, - 220.40005493164062, - 196.30001831054688 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 97.50004577636719, - 191.30003356933594, - 536.4000854492188, - 211.70004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6[\u001b75u\u00194«-©F6e¤bÐ\u001a\u0019\u001cʬ«Y¤�6e¤R©\u001a6¸©FÈe¦)6=¤u¤7«z5u6[©?5\u001e\u0018\u001a\u00199¤\u001e¥K¯", - "origin": [ - 97.50004577636719, - 197.60003662109375 - ], - "bbox": [ - 97.50004577636719, - 191.30003356933594, - 262.2001037597656, - 211.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.50004577636719, - 191.30003356933594, - 262.2001037597656, - 211.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "å[57\u001bu6!\u001bu6)Ôõ6=\u001b7¨gÈ[6e¤R¦=\u00194\u001bR6=ʬÊ-6^©F6!¥/È", - "origin": [ - 264.300048828125, - 197.60003662109375 - ], - "bbox": [ - 264.300048828125, - 191.30003356933594, - 383.20001220703125, - 211.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 383.20001220703125, - 197.60003662109375 - ], - "bbox": [ - 383.20001220703125, - 191.60003662109375, - 387.6000061035156, - 210.80003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«Y¤7¤76[©?5H\u0018\u001a\u0019\u001c¤V¥/6", - "origin": [ - 387.6000061035156, - 197.60003662109375 - ], - "bbox": [ - 387.6000061035156, - 191.30003356933594, - 450.3000183105469, - 211.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ü‡", - "origin": [ - 450.3000183105469, - 197.60003662109375 - ], - "bbox": [ - 450.3000183105469, - 191.60003662109375, - 458.4000244140625, - 210.80003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£\u001c©\u001a6!ßc\u0018\u001a\u001b7£9\u0018F\u001b76=¨g6[©?5", - "origin": [ - 458.4000244140625, - 197.60003662109375 - ], - "bbox": [ - 458.4000244140625, - 191.30003356933594, - 536.4000854492188, - 211.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.300048828125, - 191.30003356933594, - 536.4000854492188, - 211.70004272460938 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 97.20004272460938, - 204.80003356933594, - 510.7999267578125, - 225.20004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u00194\u001buʬ6=\u001b", - "origin": [ - 97.20004272460938, - 211.10003662109375 - ], - "bbox": [ - 97.20004272460938, - 204.80003356933594, - 118.90003967285156, - 225.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 118.90003967285156, - 211.10003662109375 - ], - "bbox": [ - 118.90003967285156, - 205.10003662109375, - 123.40003967285156, - 224.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n¨#\u00194«Y¤s§F©…6[©�¥/\u001b7£9«z5o£", - "origin": [ - 123.40003967285156, - 211.10003662109375 - ], - "bbox": [ - 123.40003967285156, - 204.80003356933594, - 200.70001220703125, - 225.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šþ", - "origin": [ - 200.70001220703125, - 211.10003662109375 - ], - "bbox": [ - 200.70001220703125, - 205.10003662109375, - 205.80001831054688, - 224.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰§F©\u001a6M\u0019\u001c¦15u«¬£9©É¥F6B\u0018F\u001b7£/¥/§\u001a«z5", - "origin": [ - 205.80001831054688, - 211.10003662109375 - ], - "bbox": [ - 205.80001831054688, - 204.80003356933594, - 305.0, - 225.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 305.0, - 211.10003662109375 - ], - "bbox": [ - 305.0, - 205.10003662109375, - 312.8999938964844, - 224.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ\u0018�\u00194\u001bo6)ÿ/6=¨^\u0018\u001aʬ6BÊY\u0019^Ð\u001a\u00194Ê-«-¤76gç", - "origin": [ - 312.8999938964844, - 211.10003662109375 - ], - "bbox": [ - 312.8999938964844, - 204.80003356933594, - 411.6999816894531, - 225.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›/½", - "origin": [ - 411.6999816894531, - 211.10003662109375 - ], - "bbox": [ - 411.6999816894531, - 205.10003662109375, - 424.1999816894531, - 224.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w칤7\u0019\u001c§/576BßgÊY\u0019!Ê-«-Ç\u001c©F6", - "origin": [ - 424.1999816894531, - 211.10003662109375 - ], - "bbox": [ - 424.1999816894531, - 204.80003356933594, - 501.89990234375, - 225.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YX", - "origin": [ - 501.89990234375, - 211.10003662109375 - ], - "bbox": [ - 501.89990234375, - 205.10003662109375, - 506.59991455078125, - 224.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 506.59991455078125, - 211.10003662109375 - ], - "bbox": [ - 506.59991455078125, - 204.80003356933594, - 510.7999267578125, - 225.20004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.20004272460938, - 204.80003356933594, - 510.7999267578125, - 225.20004272460938 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 84.40003967285156, - 221.90000915527344, - 356.4000549316406, - 242.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "G\u001a oËi\u0019\u001c\u001bu\u0019\u001c¨gÈ)57\u001bª\u00194Ç96\u001e¥;¯", - "origin": [ - 84.40003967285156, - 228.20001220703125 - ], - "bbox": [ - 84.40003967285156, - 221.90000915527344, - 161.80003356933594, - 242.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.40003967285156, - 221.90000915527344, - 161.80003356933594, - 242.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6BÐ�\u00194Ê-«-¤76g8;ç", - "origin": [ - 164.00003051757812, - 228.20001220703125 - ], - "bbox": [ - 164.00003051757812, - 221.90000915527344, - 217.2000274658203, - 242.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 217.2000274658203, - 228.20001220703125 - ], - "bbox": [ - 217.2000274658203, - 222.20001220703125, - 224.30003356933594, - 241.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nð/êwé", - "origin": [ - 224.30003356933594, - 228.20001220703125 - ], - "bbox": [ - 224.30003356933594, - 221.90000915527344, - 240.80003356933594, - 242.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001f", - "origin": [ - 240.80003356933594, - 228.20001220703125 - ], - "bbox": [ - 240.80003356933594, - 223.50001525878906, - 245.7000274658203, - 241.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ë", - "origin": [ - 245.7000274658203, - 228.20001220703125 - ], - "bbox": [ - 245.7000274658203, - 221.90000915527344, - 250.80003356933594, - 242.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 164.00003051757812, - 221.90000915527344, - 250.80003356933594, - 242.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "´\"Ċ»\"ÄYÀ\u0011ßFŸ\n»\"ß", - "origin": [ - 260.9000244140625, - 228.20001220703125 - ], - "bbox": [ - 260.9000244140625, - 222.20001220703125, - 303.4000244140625, - 241.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%$", - "origin": [ - 303.4000244140625, - 228.20001220703125 - ], - "bbox": [ - 303.4000244140625, - 223.50001525878906, - 314.60003662109375, - 241.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "vâ\"Ä/ÁHßFÆH»", - "origin": [ - 314.60003662109375, - 228.20001220703125 - ], - "bbox": [ - 314.60003662109375, - 222.20001220703125, - 345.300048828125, - 241.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 345.300048828125, - 228.20001220703125 - ], - "bbox": [ - 345.300048828125, - 223.50001525878906, - 351.4000549316406, - 241.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cì", - "origin": [ - 351.4000549316406, - 228.20001220703125 - ], - "bbox": [ - 351.4000549316406, - 221.90000915527344, - 356.4000549316406, - 242.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.9000244140625, - 221.90000915527344, - 356.4000549316406, - 242.30001831054688 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 100.8000259399414, - 237.20005798339844, - 538.2000122070312, - 257.6000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʝ6[ÿ/«-¤�576!57£9§", - "origin": [ - 100.8000259399414, - 243.50006103515625 - ], - "bbox": [ - 100.8000259399414, - 237.20005798339844, - 144.60003662109375, - 257.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "IË", - "origin": [ - 144.60003662109375, - 243.50006103515625 - ], - "bbox": [ - 144.60003662109375, - 237.50006103515625, - 149.40003967285156, - 256.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\£\u001c§F\u001bª¤V§F©ÙÇ\u001c\u001bª\u00194©\u001a¥Ý©\u001a£\u001c¨¸Ð\u001a\u001b76^¥/6g\u0018\u001a\u00194\u001bª\u00194¨gá)5u\u001b76e¤R\u0018w£\u001c§\u001a\u001bV§\u001a©F6!Ð�\u00194Ê-«-¤76", - "origin": [ - 149.40003967285156, - 243.50006103515625 - ], - "bbox": [ - 149.40003967285156, - 237.20005798339844, - 384.1000061035156, - 257.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017T", - "origin": [ - 384.1000061035156, - 243.50006103515625 - ], - "bbox": [ - 384.1000061035156, - 237.50006103515625, - 392.8999938964844, - 256.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y\u0018\u001a\u00194\u001bH6[ÿ\n6=¨g\u0018Fʬ6g¥F\u0019\u001c©\u001a¤VÊ-\u0019‰Ð\u001a\u00194Ê-«Y¤�6Éç", - "origin": [ - 392.8999938964844, - 243.50006103515625 - ], - "bbox": [ - 392.8999938964844, - 237.20005798339844, - 517.2999877929688, - 257.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "('", - "origin": [ - 517.2999877929688, - 243.50006103515625 - ], - "bbox": [ - 517.2999877929688, - 238.80006408691406, - 524.5, - 256.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 524.5, - 243.50006103515625 - ], - "bbox": [ - 524.5, - 237.20005798339844, - 530.4000244140625, - 257.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$[", - "origin": [ - 530.4000244140625, - 243.50006103515625 - ], - "bbox": [ - 530.4000244140625, - 237.50006103515625, - 538.2000122070312, - 256.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.8000259399414, - 237.20005798339844, - 538.2000122070312, - 257.6000671386719 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 97.3000259399414, - 250.9000701904297, - 537.4000244140625, - 271.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "²9§\u001a«¨#\u00194\u001bª²?§F6¸Ê-6=¤\u001e\u0018\u001a\u0019\u001c\u001bu\u0019\u001cÇ\u001c\u001bª\u00194\u0018FþF6e¤", - "origin": [ - 97.3000259399414, - 257.2000732421875 - ], - "bbox": [ - 97.3000259399414, - 250.9000701904297, - 214.40003967285156, - 271.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 214.40003967285156, - 257.2000732421875 - ], - "bbox": [ - 214.40003967285156, - 251.2000732421875, - 218.80003356933594, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a£\u001c©Í\u0018w6[§/5B\u0018F\u001buÈ=¦[«-¤76[\u001b\u001eʬ6^\u0018\u001a\u0019\u001c\u001bu\u0019\u001c¨^á[57\u001bu6", - "origin": [ - 218.80003356933594, - 257.2000732421875 - ], - "bbox": [ - 218.80003356933594, - 250.9000701904297, - 349.9000244140625, - 271.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üÄ/Ágžc¼HÞ", - "origin": [ - 349.9000244140625, - 257.2000732421875 - ], - "bbox": [ - 349.9000244140625, - 251.2000732421875, - 378.800048828125, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")\"", - "origin": [ - 378.800048828125, - 257.2000732421875 - ], - "bbox": [ - 378.800048828125, - 252.5000762939453, - 389.2000427246094, - 270.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "KÁŠßHàHŸ", - "origin": [ - 389.2000427246094, - 257.2000732421875 - ], - "bbox": [ - 389.2000427246094, - 251.2000732421875, - 415.40008544921875, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 415.40008544921875, - 257.2000732421875 - ], - "bbox": [ - 415.40008544921875, - 252.5000762939453, - 421.5000915527344, - 270.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹ FßFÞ/Ÿ\"ßF»", - "origin": [ - 421.5000915527344, - 257.2000732421875 - ], - "bbox": [ - 421.5000915527344, - 251.2000732421875, - 449.8000793457031, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 449.8000793457031, - 257.2000732421875 - ], - "bbox": [ - 449.8000793457031, - 252.5000762939453, - 455.90008544921875, - 270.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.3000259399414, - 250.9000701904297, - 455.90008544921875, - 271.3000793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»\u0011žc¼H¡/Ÿ", - "origin": [ - 457.9000244140625, - 257.2000732421875 - ], - "bbox": [ - 457.9000244140625, - 251.2000732421875, - 479.0000305175781, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 479.0000305175781, - 257.2000732421875 - ], - "bbox": [ - 479.0000305175781, - 252.5000762939453, - 485.10003662109375, - 270.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 457.9000244140625, - 251.2000732421875, - 485.10003662109375, - 270.40008544921875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 487.20001220703125, - 257.2000732421875 - ], - "bbox": [ - 487.20001220703125, - 252.5000762939453, - 487.20001220703125, - 270.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÆ�áIŸ�žYàHã", - "origin": [ - 487.20001220703125, - 257.2000732421875 - ], - "bbox": [ - 487.20001220703125, - 251.2000732421875, - 518.5, - 270.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^²?§F«", - "origin": [ - 518.5, - 257.2000732421875 - ], - "bbox": [ - 518.5, - 250.9000701904297, - 537.4000244140625, - 271.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.20001220703125, - 250.9000701904297, - 537.4000244140625, - 271.3000793457031 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 97.20001220703125, - 264.50006103515625, - 535.7999877929688, - 284.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018�6=\u001b7¨g6)5#¥/6‰\u0018FÊ-\u00199¦)6=\u001b!Ê-6‰\u0018�\u00194\u001bª\u00194Ç\u001c\u001bª\u00194\u0018\u001aþF6#6[©ã²9§\u001a6=¤�57«-£\u001c©", - "origin": [ - 97.20001220703125, - 270.800048828125 - ], - "bbox": [ - 97.20001220703125, - 264.50006103515625, - 286.3999938964844, - 284.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 286.3999938964844, - 270.800048828125 - ], - "bbox": [ - 286.3999938964844, - 264.800048828125, - 292.5, - 284.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001b76e¤�\u0018w6=¦)57«-Æ\u001c6=¨^6=©?5", - "origin": [ - 292.5, - 270.800048828125 - ], - "bbox": [ - 292.5, - 264.50006103515625, - 359.89996337890625, - 284.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 359.89996337890625, - 270.800048828125 - ], - "bbox": [ - 359.89996337890625, - 264.800048828125, - 364.39996337890625, - 284.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ißÍÇ9\u0019\u001c§\u001a¦ªþF6", - "origin": [ - 364.39996337890625, - 270.800048828125 - ], - "bbox": [ - 364.39996337890625, - 264.50006103515625, - 405.29998779296875, - 284.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 405.29998779296875, - 270.800048828125 - ], - "bbox": [ - 405.29998779296875, - 264.800048828125, - 410.3999938964844, - 284.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c§½¦)6=©95u\u001b76", - "origin": [ - 410.3999938964844, - 270.800048828125 - ], - "bbox": [ - 410.3999938964844, - 264.50006103515625, - 453.39996337890625, - 284.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 453.39996337890625, - 270.800048828125 - ], - "bbox": [ - 453.39996337890625, - 264.800048828125, - 458.4999694824219, - 284.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ßÙ¥/\u001bu£\u001c«¬576‰£\u001c§½¥/6ÉÊ-6", - "origin": [ - 458.4999694824219, - 270.800048828125 - ], - "bbox": [ - 458.4999694824219, - 264.50006103515625, - 535.7999877929688, - 284.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.20001220703125, - 264.50006103515625, - 535.7999877929688, - 284.9000549316406 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 96.50001525878906, - 278.10003662109375, - 134.60000610351562, - 298.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ë", - "origin": [ - 96.50001525878906, - 284.4000244140625 - ], - "bbox": [ - 96.50001525878906, - 278.4000244140625, - 96.50001525878906, - 297.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤\\5u«", - "origin": [ - 96.50001525878906, - 284.4000244140625 - ], - "bbox": [ - 96.50001525878906, - 278.10003662109375, - 113.50000762939453, - 298.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 113.50000762939453, - 284.4000244140625 - ], - "bbox": [ - 113.50000762939453, - 278.4000244140625, - 116.10000610351562, - 297.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�6[\u001b", - "origin": [ - 116.10000610351562, - 284.4000244140625 - ], - "bbox": [ - 116.10000610351562, - 278.10003662109375, - 126.20000457763672, - 298.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xX", - "origin": [ - 126.20000457763672, - 284.4000244140625 - ], - "bbox": [ - 126.20000457763672, - 278.4000244140625, - 130.40000915527344, - 297.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 130.40000915527344, - 284.4000244140625 - ], - "bbox": [ - 130.40000915527344, - 278.10003662109375, - 134.60000610351562, - 298.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.50001525878906, - 278.10003662109375, - 134.60000610351562, - 298.5000305175781 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 144.6000213623047, - 278.10003662109375, - 535.3001098632812, - 298.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê 6e¤\\5^«¬¨g\u0018w£\u001c\u001b75u\u0019\u001c©95g¥/6…¤7\u0019aÆ9£\u001c«-\u001bM²9§\u001a6ɦ[6[\u001b75u\u00194«-©\u001a¤¸\u0018\u001a\u00194\u001bª\u00194¨gá)5u\u001b76e¤¸¤7£\u001c©?5¸£9ÐFʬ«-Ç9\u0019457£9«¬\u001bu6=¤", - "origin": [ - 144.6000213623047, - 284.4000244140625 - ], - "bbox": [ - 144.6000213623047, - 278.10003662109375, - 438.3999938964844, - 298.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "òT", - "origin": [ - 438.3999938964844, - 284.4000244140625 - ], - "bbox": [ - 438.3999938964844, - 278.4000244140625, - 446.8999938964844, - 297.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y\u0018\u001a\u00194\u001b^6)ÿ/6=¨^\u0018\u001aʬ6…¥F\u00194©�¤MÊY\u0019", - "origin": [ - 446.8999938964844, - 284.4000244140625 - ], - "bbox": [ - 446.8999938964844, - 278.10003662109375, - 535.3001098632812, - 298.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 144.6000213623047, - 278.10003662109375, - 535.3001098632812, - 298.5000305175781 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 97.20001983642578, - 291.70001220703125, - 381.0, - 312.1000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ð\u001a\u00194Ê-«-¤76gçBéaï", - "origin": [ - 97.20001983642578, - 298.0 - ], - "bbox": [ - 97.20001983642578, - 291.70001220703125, - 138.00003051757812, - 312.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-,", - "origin": [ - 138.00003051757812, - 298.0 - ], - "bbox": [ - 138.00003051757812, - 293.29998779296875, - 143.30003356933594, - 311.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "NáI»� ", - "origin": [ - 143.30003356933594, - 298.0 - ], - "bbox": [ - 143.30003356933594, - 292.0, - 164.5000457763672, - 311.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\"%$�'", - "origin": [ - 164.5000457763672, - 298.0 - ], - "bbox": [ - 164.5000457763672, - 293.29998779296875, - 179.80003356933594, - 311.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß/ÁgžHáHáFß&·¸´\nÞ\n¼", - "origin": [ - 179.80003356933594, - 298.0 - ], - "bbox": [ - 179.80003356933594, - 292.0, - 232.60003662109375, - 311.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 232.60003662109375, - 298.0 - ], - "bbox": [ - 232.60003662109375, - 293.29998779296875, - 238.70004272460938, - 311.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cì½\u0019", - "origin": [ - 238.70004272460938, - 298.0 - ], - "bbox": [ - 238.70004272460938, - 291.70001220703125, - 253.5000457763672, - 312.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 253.5000457763672, - 298.0 - ], - "bbox": [ - 253.5000457763672, - 292.0, - 258.300048828125, - 311.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6HÊ", - "origin": [ - 258.300048828125, - 298.0 - ], - "bbox": [ - 258.300048828125, - 291.70001220703125, - 284.1000671386719, - 312.1000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.20001983642578, - 291.70001220703125, - 284.1000671386719, - 312.1000061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨#\u00194Ç96", - "origin": [ - 289.60003662109375, - 298.0 - ], - "bbox": [ - 289.60003662109375, - 291.70001220703125, - 310.8000183105469, - 312.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ".'", - "origin": [ - 310.8000183105469, - 298.0 - ], - "bbox": [ - 310.8000183105469, - 293.29998779296875, - 318.4000244140625, - 311.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß/ÁgžHáHáFß&·¸´\nÞ\n¼\"X", - "origin": [ - 318.4000244140625, - 298.0 - ], - "bbox": [ - 318.4000244140625, - 292.0, - 376.70001220703125, - 311.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 376.70001220703125, - 298.0 - ], - "bbox": [ - 376.70001220703125, - 291.70001220703125, - 381.0, - 312.1000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.60003662109375, - 291.70001220703125, - 381.0, - 312.1000061035156 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 84.30003356933594, - 308.9000244140625, - 90.00003051757812, - 329.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ò� ", - "origin": [ - 84.30003356933594, - 315.20001220703125 - ], - "bbox": [ - 84.30003356933594, - 308.9000244140625, - 90.00003051757812, - 329.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.30003356933594, - 308.9000244140625, - 90.00003051757812, - 329.3000183105469 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 100.80003356933594, - 308.9000244140625, - 402.6000061035156, - 329.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨¸ÐF\u001bu«-¦=\u0019%5u«¬£9©‰¥/6e¤sÐ\u001a\u00194Ê-«-¤76=¤H8mç", - "origin": [ - 100.80003356933594, - 315.20001220703125 - ], - "bbox": [ - 100.80003356933594, - 308.9000244140625, - 206.40003967285156, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 206.40003967285156, - 315.20001220703125 - ], - "bbox": [ - 206.40003967285156, - 309.20001220703125, - 213.5000457763672, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nð/ê", - "origin": [ - 213.5000457763672, - 315.20001220703125 - ], - "bbox": [ - 213.5000457763672, - 308.9000244140625, - 224.20004272460938, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%/", - "origin": [ - 224.20004272460938, - 315.20001220703125 - ], - "bbox": [ - 224.20004272460938, - 310.5, - 230.20004272460938, - 328.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 230.20004272460938, - 315.20001220703125 - ], - "bbox": [ - 230.20004272460938, - 308.9000244140625, - 235.300048828125, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~·\n·H·", - "origin": [ - 235.300048828125, - 315.20001220703125 - ], - "bbox": [ - 235.300048828125, - 309.20001220703125, - 254.70004272460938, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1ç", - "origin": [ - 254.70004272460938, - 315.20001220703125 - ], - "bbox": [ - 254.70004272460938, - 308.9000244140625, - 258.9000549316406, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 258.9000549316406, - 315.20001220703125 - ], - "bbox": [ - 258.9000549316406, - 309.20001220703125, - 266.00006103515625, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ð/ê", - "origin": [ - 266.00006103515625, - 315.20001220703125 - ], - "bbox": [ - 266.00006103515625, - 308.9000244140625, - 276.800048828125, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "10", - "origin": [ - 276.800048828125, - 315.20001220703125 - ], - "bbox": [ - 276.800048828125, - 310.5, - 282.2000427246094, - 328.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aì", - "origin": [ - 282.2000427246094, - 315.20001220703125 - ], - "bbox": [ - 282.2000427246094, - 308.9000244140625, - 287.800048828125, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~·H·\n·", - "origin": [ - 287.800048828125, - 315.20001220703125 - ], - "bbox": [ - 287.800048828125, - 309.20001220703125, - 307.2000427246094, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "uç", - "origin": [ - 307.2000427246094, - 315.20001220703125 - ], - "bbox": [ - 307.2000427246094, - 308.9000244140625, - 311.2000427246094, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £I›", - "origin": [ - 311.2000427246094, - 315.20001220703125 - ], - "bbox": [ - 311.2000427246094, - 309.20001220703125, - 323.5000305175781, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ð/ê", - "origin": [ - 323.5000305175781, - 315.20001220703125 - ], - "bbox": [ - 323.5000305175781, - 308.9000244140625, - 334.3000183105469, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#0", - "origin": [ - 334.3000183105469, - 315.20001220703125 - ], - "bbox": [ - 334.3000183105469, - 310.5, - 339.5000305175781, - 328.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ì", - "origin": [ - 339.5000305175781, - 315.20001220703125 - ], - "bbox": [ - 339.5000305175781, - 308.9000244140625, - 345.2000427246094, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017·\n·Š·", - "origin": [ - 345.2000427246094, - 315.20001220703125 - ], - "bbox": [ - 345.2000427246094, - 309.20001220703125, - 364.4000244140625, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1ç", - "origin": [ - 364.4000244140625, - 315.20001220703125 - ], - "bbox": [ - 364.4000244140625, - 308.9000244140625, - 368.60003662109375, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £I›", - "origin": [ - 368.60003662109375, - 315.20001220703125 - ], - "bbox": [ - 368.60003662109375, - 309.20001220703125, - 380.9000244140625, - 328.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nð\nê", - "origin": [ - 380.9000244140625, - 315.20001220703125 - ], - "bbox": [ - 380.9000244140625, - 308.9000244140625, - 391.5, - 329.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%/", - "origin": [ - 391.5, - 315.20001220703125 - ], - "bbox": [ - 391.5, - 310.5, - 397.5, - 328.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 397.5, - 315.20001220703125 - ], - "bbox": [ - 397.5, - 308.9000244140625, - 402.6000061035156, - 329.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.80003356933594, - 308.9000244140625, - 402.6000061035156, - 329.3000183105469 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 97.50003051757812, - 324.20001220703125, - 535.9000854492188, - 344.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó\u001e¯", - "origin": [ - 97.50003051757812, - 330.5 - ], - "bbox": [ - 97.50003051757812, - 324.20001220703125, - 105.00003051757812, - 344.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.50003051757812, - 324.20001220703125, - 105.00003051757812, - 344.6000061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5×Ê-6b\u0018F\u001bu«-©\u001a¦)«-\u0018�6V¥/6=¤×\u0018�£9§F\u0018wÈ[6=¤×\u001b7§�¤7¤76=¤= \nÓ~\u001bu£\u001c«Y¤�6=\u001b", - "origin": [ - 107.10002899169922, - 330.5 - ], - "bbox": [ - 107.10002899169922, - 324.20001220703125, - 283.8999938964844, - 344.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.10002899169922, - 324.20001220703125, - 283.8999938964844, - 344.6000061035156 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʬ6e¤,Ð\u001a\u0019\u001cʬ«Y¤76=¤,\u0018\u001a\u001b7£%Æ9£\n²?§F6s§F©\u001a6R6[\u001bu\u001bu6[§F\u001bײ?§F«�6=¤�5 ¤7£\u001c§FÆ96[©?5,«-©95u6[\u001bu\u0018F\u001buÈ)57È=6", - "origin": [ - 290.5000305175781, - 330.5 - ], - "bbox": [ - 290.5000305175781, - 324.20001220703125, - 535.9000854492188, - 344.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.5000305175781, - 324.20001220703125, - 535.9000854492188, - 344.6000061035156 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 97.30003356933594, - 337.8000183105469, - 260.0000305175781, - 358.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6VÔy\u0019", - "origin": [ - 97.30003356933594, - 344.1000061035156 - ], - "bbox": [ - 97.30003356933594, - 337.8000183105469, - 113.50003051757812, - 358.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F³", - "origin": [ - 113.50003051757812, - 344.1000061035156 - ], - "bbox": [ - 113.50003051757812, - 338.1000061035156, - 118.50003051757812, - 357.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ")£9©É\u0019\u001cʬÈe\u0019%5u£\u001c«-\u001b76V\u0018\u001a\u00194\u001boÊ-6=¤s©�\u0019aÆ?«-Ç9\u00194576=§F\u001bu¤= ", - "origin": [ - 118.50003051757812, - 344.1000061035156 - ], - "bbox": [ - 118.50003051757812, - 337.8000183105469, - 260.0000305175781, - 358.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.30003356933594, - 337.8000183105469, - 260.0000305175781, - 358.20001220703125 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 84.50003051757812, - 354.8000183105469, - 325.4000244140625, - 375.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "DF \u001eÓ~£\u001c¨g¨g6[©?5u\u0019\u001c«¬\u001bu6=¤V8;ç", - "origin": [ - 84.50003051757812, - 361.1000061035156 - ], - "bbox": [ - 84.50003051757812, - 354.8000183105469, - 169.40003967285156, - 375.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "N¢", - "origin": [ - 169.40003967285156, - 361.1000061035156 - ], - "bbox": [ - 169.40003967285156, - 355.1000061035156, - 180.0000457763672, - 374.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "32", - "origin": [ - 180.0000457763672, - 361.1000061035156 - ], - "bbox": [ - 180.0000457763672, - 356.3999938964844, - 184.20004272460938, - 374.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "(¾/ßg \nžUß\"áIŸkÆ\nÞñ |ºYÀ\nÀ\u0011ßFÞ\nŸ\"ÄfžY»\"ß", - "origin": [ - 184.20004272460938, - 361.1000061035156 - ], - "bbox": [ - 184.20004272460938, - 355.1000061035156, - 309.800048828125, - 374.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "42", - "origin": [ - 309.800048828125, - 361.1000061035156 - ], - "bbox": [ - 309.800048828125, - 356.3999938964844, - 320.10003662109375, - 374.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nì", - "origin": [ - 320.10003662109375, - 361.1000061035156 - ], - "bbox": [ - 320.10003662109375, - 354.8000183105469, - 325.4000244140625, - 375.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.50003051757812, - 354.8000183105469, - 325.4000244140625, - 375.20001220703125 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 100.8000259399414, - 370.20001220703125, - 342.1000061035156, - 390.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê;6=¤�5b\u0018�£?¤7¤7«¬Ð\u001aʬ6B¥/6M¤u\u00194§/5u6[\u001bo¥/6e¤oʬ«-Ç\u001c©\u001a6=¤o¥F\u0019\u001c©\u001a¤s§F©Ý¦)£9¨^¨g6=©95ª\u00194«-\u001b769 ", - "origin": [ - 100.8000259399414, - 376.5 - ], - "bbox": [ - 100.8000259399414, - 370.20001220703125, - 342.1000061035156, - 390.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 100.8000259399414, - 370.20001220703125, - 342.1000061035156, - 390.6000061035156 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 118.70001983642578, - 405.5000305175781, - 200.2000274658203, - 425.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ŠKŽm’", - "origin": [ - 118.70001983642578, - 411.8000183105469 - ], - "bbox": [ - 118.70001983642578, - 405.5000305175781, - 131.00001525878906, - 425.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "9\u0014\u0017\u0016", - "origin": [ - 131.00001525878906, - 411.8000183105469 - ], - "bbox": [ - 131.00001525878906, - 405.8000183105469, - 146.20001220703125, - 425.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "׎", - "origin": [ - 146.20001220703125, - 411.8000183105469 - ], - "bbox": [ - 146.20001220703125, - 405.5000305175781, - 153.00001525878906, - 425.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E\u0014", - "origin": [ - 153.00001525878906, - 411.8000183105469 - ], - "bbox": [ - 153.00001525878906, - 405.8000183105469, - 159.30001831054688, - 425.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f’i†", - "origin": [ - 159.30001831054688, - 411.8000183105469 - ], - "bbox": [ - 159.30001831054688, - 405.5000305175781, - 174.4000244140625, - 425.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.70001983642578, - 405.5000305175781, - 174.4000244140625, - 425.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‡", - "origin": [ - 187.00003051757812, - 411.8000183105469 - ], - "bbox": [ - 187.00003051757812, - 405.5000305175781, - 187.00003051757812, - 425.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "76", - "origin": [ - 187.00003051757812, - 411.8000183105469 - ], - "bbox": [ - 187.00003051757812, - 407.1000061035156, - 196.50003051757812, - 424.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ";\u0014", - "origin": [ - 196.50003051757812, - 411.8000183105469 - ], - "bbox": [ - 196.50003051757812, - 405.8000183105469, - 200.2000274658203, - 425.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.00003051757812, - 405.5000305175781, - 200.2000274658203, - 425.9000244140625 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 222.9000244140625, - 405.5000305175781, - 269.0, - 425.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‡", - "origin": [ - 222.9000244140625, - 411.8000183105469 - ], - "bbox": [ - 222.9000244140625, - 405.5000305175781, - 222.9000244140625, - 425.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015\u0012Ê\u0016…\u0014", - "origin": [ - 222.9000244140625, - 411.8000183105469 - ], - "bbox": [ - 222.9000244140625, - 405.8000183105469, - 247.00001525878906, - 425.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…‹†", - "origin": [ - 247.00001525878906, - 411.8000183105469 - ], - "bbox": [ - 247.00001525878906, - 405.5000305175781, - 269.0, - 425.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.9000244140625, - 405.5000305175781, - 269.0, - 425.9000244140625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 72.30000305175781, - 439.4000244140625, - 535.8998413085938, - 459.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "`", - "origin": [ - 72.30000305175781, - 445.70001220703125 - ], - "bbox": [ - 72.30000305175781, - 439.70001220703125, - 72.30000305175781, - 458.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b£9§\u001a¤R\u0019\u001cʬÊ-£\u001c©�¤Rß#\u0018F\u001buÈ=¤76[©?5R\u0018�\u0019\u001c¤u¤�6=\u001bRßcÊY\u0019c¦)£9©\u001a¦)6=\u0018/57«-£\u001c©Í¥K¯", - "origin": [ - 72.30000305175781, - 445.70001220703125 - ], - "bbox": [ - 72.30000305175781, - 439.4000244140625, - 276.0, - 459.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 439.4000244140625, - 276.0, - 459.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©\u001a6¸\u0018\u001a\u0019\u001cÇ\u001c6MÏÙ6[ÐK ", - "origin": [ - 278.1000061035156, - 445.70001220703125 - ], - "bbox": [ - 278.1000061035156, - 439.4000244140625, - 340.6000061035156, - 459.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011`", - "origin": [ - 340.6000061035156, - 445.70001220703125 - ], - "bbox": [ - 340.6000061035156, - 439.70001220703125, - 346.5, - 458.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b£9§\u001a¤R¦[£\u001c¨g¨g6[©\u001a¦[6[\u001bu£\u001c©\u001a¤b\u0018\u001a\u00194\u001bV¥/È=¦[\u001b7«-\u001b76BÊY\u0019\u000f¤�57\u001bu§\u001a¦)57§F\u001bu6", - "origin": [ - 346.5, - 445.70001220703125 - ], - "bbox": [ - 346.5, - 439.4000244140625, - 535.8998413085938, - 459.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.1000061035156, - 439.4000244140625, - 535.8998413085938, - 459.8000183105469 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 72.30000305175781, - 453.10003662109375, - 171.40000915527344, - 473.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥;¯", - "origin": [ - 72.30000305175781, - 459.4000244140625 - ], - "bbox": [ - 72.30000305175781, - 453.10003662109375, - 78.30000305175781, - 473.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 453.10003662109375, - 78.30000305175781, - 473.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©Ý¥/£/¦)§F¨g6=©95R³\u001e´oµÍ¶, ", - "origin": [ - 80.5, - 459.4000244140625 - ], - "bbox": [ - 80.5, - 453.10003662109375, - 171.40000915527344, - 473.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.5, - 453.10003662109375, - 171.40000915527344, - 473.5000305175781 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 72.5, - 471.800048828125, - 526.3998413085938, - 492.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.5, - 478.10003662109375 - ], - "bbox": [ - 72.5, - 472.10003662109375, - 72.5, - 491.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©…¥/È[Ê-«¬¨g«¬576M§\u001a©É¥/£/¦[§F¨g6[©?5R³R´oµÍ¶‚\u0018�\u00194\u001boÊY\u0019!Ð�\u00194Ê-«-¤76gç", - "origin": [ - 72.5, - 478.10003662109375 - ], - "bbox": [ - 72.5, - 471.800048828125, - 277.7999267578125, - 492.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(8", - "origin": [ - 277.7999267578125, - 478.10003662109375 - ], - "bbox": [ - 277.7999267578125, - 473.4000244140625, - 284.99993896484375, - 491.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è\nï/êwìB /Ó~6M¥F£\n¦[§F¨g6[©?5b¦)£9©95u«¬6=©?5R¥/6[§/ÿ‰\u0018\u001a\u00194\u001b757«-6=¤s6e¤7¤76[©?57«-6[Ê-Ê-6=¤H8", - "origin": [ - 284.99993896484375, - 478.10003662109375 - ], - "bbox": [ - 284.99993896484375, - 471.800048828125, - 526.3998413085938, - 492.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 471.800048828125, - 526.3998413085938, - 492.2000427246094 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 82.30000305175781, - 490.7000427246094, - 253.90000915527344, - 511.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶,¯", - "origin": [ - 82.30000305175781, - 497.0000305175781 - ], - "bbox": [ - 82.30000305175781, - 490.7000427246094, - 89.0, - 511.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 490.7000427246094, - 89.0, - 511.10003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[©?57å[576M¥/§Ý¥/£/¦)§\u001a¨^6=©?5", - "origin": [ - 91.20000457763672, - 497.0000305175781 - ], - "bbox": [ - 91.20000457763672, - 490.7000427246094, - 173.90000915527344, - 511.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$T", - "origin": [ - 173.90000915527344, - 497.0000305175781 - ], - "bbox": [ - 173.90000915527344, - 491.0000305175781, - 181.70001220703125, - 510.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yÐ\u001a\u00194Ê-«Y¤�6#ç", - "origin": [ - 181.70001220703125, - 497.0000305175781 - ], - "bbox": [ - 181.70001220703125, - 490.7000427246094, - 213.3000030517578, - 511.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(8", - "origin": [ - 213.3000030517578, - 497.0000305175781 - ], - "bbox": [ - 213.3000030517578, - 492.3000183105469, - 220.5, - 510.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në\nð", - "origin": [ - 220.5, - 497.0000305175781 - ], - "bbox": [ - 220.5, - 490.7000427246094, - 231.10000610351562, - 511.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 231.10000610351562, - 497.0000305175781 - ], - "bbox": [ - 231.10000610351562, - 492.3000183105469, - 236.40000915527344, - 510.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wì", - "origin": [ - 236.40000915527344, - 497.0000305175781 - ], - "bbox": [ - 236.40000915527344, - 490.7000427246094, - 242.20001220703125, - 511.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�X�[", - "origin": [ - 242.20001220703125, - 497.0000305175781 - ], - "bbox": [ - 242.20001220703125, - 491.0000305175781, - 253.90000915527344, - 510.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.20000457763672, - 490.7000427246094, - 253.90000915527344, - 511.10003662109375 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 82.30000305175781, - 504.2000427246094, - 251.0999755859375, - 524.6000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6B¦)£9\u001b7\u0018\u001a¤o¥F§…¥F£\n¦[§F¨g6[©?5", - "origin": [ - 82.30000305175781, - 510.5000305175781 - ], - "bbox": [ - 82.30000305175781, - 504.2000427246094, - 175.29998779296875, - 524.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 175.29998779296875, - 510.5000305175781 - ], - "bbox": [ - 175.29998779296875, - 504.5000305175781, - 183.19998168945312, - 523.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õÐ\u001a\u0019\u001cʬ«Y¤76#ç", - "origin": [ - 183.19998168945312, - 510.5000305175781 - ], - "bbox": [ - 183.19998168945312, - 504.2000427246094, - 214.7999725341797, - 524.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 214.7999725341797, - 510.5000305175781 - ], - "bbox": [ - 214.7999725341797, - 504.5000305175781, - 221.8999786376953, - 523.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<;�:-=", - "origin": [ - 221.8999786376953, - 510.5000305175781 - ], - "bbox": [ - 221.8999786376953, - 505.8000183105469, - 237.79998779296875, - 523.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 237.79998779296875, - 510.5000305175781 - ], - "bbox": [ - 237.79998779296875, - 504.2000427246094, - 243.69998168945312, - 524.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�X", - "origin": [ - 243.69998168945312, - 510.5000305175781 - ], - "bbox": [ - 243.69998168945312, - 504.5000305175781, - 251.0999755859375, - 523.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 504.2000427246094, - 251.0999755859375, - 524.6000366210938 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 78.80000305175781, - 523.1000366210938, - 129.90000915527344, - 543.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.80000305175781, - 529.4000244140625 - ], - "bbox": [ - 78.80000305175781, - 523.1000366210938, - 129.90000915527344, - 543.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80000305175781, - 523.1000366210938, - 129.90000915527344, - 543.5 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 77.80000305175781, - 547.7000122070312, - 104.20000457763672, - 568.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 77.80000305175781, - 554.0 - ], - "bbox": [ - 77.80000305175781, - 548.0, - 77.80000305175781, - 567.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 77.80000305175781, - 554.0 - ], - "bbox": [ - 77.80000305175781, - 549.2999877929688, - 82.80000305175781, - 567.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è\nï/ê", - "origin": [ - 82.80000305175781, - 554.0 - ], - "bbox": [ - 82.80000305175781, - 547.7000122070312, - 98.70000457763672, - 568.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 98.70000457763672, - 554.0 - ], - "bbox": [ - 98.70000457763672, - 548.0, - 104.20000457763672, - 567.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.80000305175781, - 547.7000122070312, - 104.20000457763672, - 568.0999755859375 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 93.4000015258789, - 561.2999877929688, - 119.80000305175781, - 581.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 567.5999755859375 - ], - "bbox": [ - 93.4000015258789, - 561.5999755859375, - 93.4000015258789, - 580.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 93.4000015258789, - 567.5999755859375 - ], - "bbox": [ - 93.4000015258789, - 562.8999633789062, - 98.4000015258789, - 580.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ë\nð", - "origin": [ - 98.4000015258789, - 567.5999755859375 - ], - "bbox": [ - 98.4000015258789, - 561.2999877929688, - 108.9000015258789, - 581.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 108.9000015258789, - 567.5999755859375 - ], - "bbox": [ - 108.9000015258789, - 562.8999633789062, - 114.20000457763672, - 580.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.20000457763672, - 567.5999755859375 - ], - "bbox": [ - 114.20000457763672, - 561.5999755859375, - 119.80000305175781, - 580.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 561.2999877929688, - 119.80000305175781, - 581.699951171875 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 109.0999984741211, - 575.0000610351562, - 313.5999450683594, - 595.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 109.0999984741211, - 581.300048828125 - ], - "bbox": [ - 109.0999984741211, - 575.300048828125, - 109.0999984741211, - 594.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè+éeè/ê?ë", - "origin": [ - 109.0999984741211, - 581.300048828125 - ], - "bbox": [ - 109.0999984741211, - 575.0000610351562, - 135.1999969482422, - 595.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 135.1999969482422, - 581.300048828125 - ], - "bbox": [ - 135.1999969482422, - 575.300048828125, - 140.8000030517578, - 594.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï", - "origin": [ - 140.8000030517578, - 581.300048828125 - ], - "bbox": [ - 140.8000030517578, - 575.0000610351562, - 145.8000030517578, - 595.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ºFÞU´/»/ßYÀEž|ߊ»", - "origin": [ - 145.8000030517578, - 581.300048828125 - ], - "bbox": [ - 145.8000030517578, - 575.300048828125, - 197.99998474121094, - 594.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "4>", - "origin": [ - 197.99998474121094, - 581.300048828125 - ], - "bbox": [ - 197.99998474121094, - 576.6000366210938, - 208.29998779296875, - 594.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nºg YÆFÀ\u0011ß|Þ/Ÿ", - "origin": [ - 208.29998779296875, - 581.300048828125 - ], - "bbox": [ - 208.29998779296875, - 575.300048828125, - 245.0999755859375, - 594.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "?8", - "origin": [ - 245.0999755859375, - 581.300048828125 - ], - "bbox": [ - 245.0999755859375, - 576.6000366210938, - 255.19998168945312, - 594.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè\nï\nê", - "origin": [ - 255.19998168945312, - 581.300048828125 - ], - "bbox": [ - 255.19998168945312, - 575.0000610351562, - 271.0999450683594, - 595.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ý\n£", - "origin": [ - 271.0999450683594, - 581.300048828125 - ], - "bbox": [ - 271.0999450683594, - 575.300048828125, - 281.8999328613281, - 594.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè+éeè/ê?ë", - "origin": [ - 281.8999328613281, - 581.300048828125 - ], - "bbox": [ - 281.8999328613281, - 575.0000610351562, - 307.99993896484375, - 595.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 307.99993896484375, - 581.300048828125 - ], - "bbox": [ - 307.99993896484375, - 575.300048828125, - 313.5999450683594, - 594.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.0999984741211, - 575.0000610351562, - 313.5999450683594, - 595.4000244140625 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 93.4000015258789, - 588.6000366210938, - 125.10001373291016, - 609.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.4000015258789, - 594.9000244140625 - ], - "bbox": [ - 93.4000015258789, - 588.9000244140625, - 98.70000457763672, - 608.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 98.70000457763672, - 594.9000244140625 - ], - "bbox": [ - 98.70000457763672, - 590.2000122070312, - 103.60000610351562, - 608.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në\nð", - "origin": [ - 103.60000610351562, - 594.9000244140625 - ], - "bbox": [ - 103.60000610351562, - 588.6000366210938, - 114.20001220703125, - 609.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 114.20001220703125, - 594.9000244140625 - ], - "bbox": [ - 114.20001220703125, - 590.2000122070312, - 119.50001525878906, - 608.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 119.50001525878906, - 594.9000244140625 - ], - "bbox": [ - 119.50001525878906, - 588.9000244140625, - 125.10001373291016, - 608.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 588.6000366210938, - 125.10001373291016, - 609.0 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 93.4000015258789, - 616.1000366210938, - 119.80000305175781, - 635.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý|›", - "origin": [ - 93.4000015258789, - 622.1000366210938 - ], - "bbox": [ - 93.4000015258789, - 616.1000366210938, - 98.30000305175781, - 635.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<;�:-=", - "origin": [ - 98.30000305175781, - 622.1000366210938 - ], - "bbox": [ - 98.30000305175781, - 617.4000244140625, - 114.20000457763672, - 635.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.20000457763672, - 622.1000366210938 - ], - "bbox": [ - 114.20000457763672, - 616.1000366210938, - 119.80000305175781, - 635.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 616.1000366210938, - 119.80000305175781, - 635.300048828125 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 109.0999984741211, - 629.800048828125, - 231.0999755859375, - 649.0000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 109.0999984741211, - 635.800048828125 - ], - "bbox": [ - 109.0999984741211, - 629.800048828125, - 109.0999984741211, - 649.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 109.0999984741211, - 635.800048828125 - ], - "bbox": [ - 109.0999984741211, - 631.1000366210938, - 114.0999984741211, - 648.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.0999984741211, - 635.800048828125 - ], - "bbox": [ - 114.0999984741211, - 629.800048828125, - 119.69999694824219, - 649.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\u001f", - "origin": [ - 119.69999694824219, - 635.800048828125 - ], - "bbox": [ - 119.69999694824219, - 631.1000366210938, - 124.79999542236328, - 648.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÄ/Á|Æ/ŸUŸ\"ºFÆ/ŸNÁHßAÀ\u0011ºFÞ", - "origin": [ - 124.79999542236328, - 635.800048828125 - ], - "bbox": [ - 124.79999542236328, - 629.800048828125, - 208.19996643066406, - 649.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 208.19996643066406, - 635.800048828125 - ], - "bbox": [ - 208.19996643066406, - 631.1000366210938, - 213.69996643066406, - 648.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nß&¢\n¢", - "origin": [ - 213.69996643066406, - 635.800048828125 - ], - "bbox": [ - 213.69996643066406, - 629.800048828125, - 231.0999755859375, - 649.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.0999984741211, - 629.800048828125, - 231.0999755859375, - 649.0000610351562 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 93.4000015258789, - 643.4000244140625, - 125.10000610351562, - 662.6000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£I›", - "origin": [ - 93.4000015258789, - 649.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 643.4000244140625, - 103.50000762939453, - 662.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A;�:-=", - "origin": [ - 103.50000762939453, - 649.4000244140625 - ], - "bbox": [ - 103.50000762939453, - 644.7000122070312, - 119.50000762939453, - 662.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 119.50000762939453, - 649.4000244140625 - ], - "bbox": [ - 119.50000762939453, - 643.4000244140625, - 125.10000610351562, - 662.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 643.4000244140625, - 125.10000610351562, - 662.6000366210938 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 77.80000305175781, - 656.7000122070312, - 109.50001525878906, - 677.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 77.80000305175781, - 663.0 - ], - "bbox": [ - 77.80000305175781, - 657.0, - 83.10000610351562, - 676.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 83.10000610351562, - 663.0 - ], - "bbox": [ - 83.10000610351562, - 658.2999877929688, - 88.00000762939453, - 676.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè\nï/ê", - "origin": [ - 88.00000762939453, - 663.0 - ], - "bbox": [ - 88.00000762939453, - 656.7000122070312, - 104.00001525878906, - 677.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 104.00001525878906, - 663.0 - ], - "bbox": [ - 104.00001525878906, - 657.0, - 109.50001525878906, - 676.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.80000305175781, - 656.7000122070312, - 109.50001525878906, - 677.0999755859375 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 72.30000305175781, - 687.5, - 144.5, - 706.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "è*\u0019\u001b\u0018", - "origin": [ - 72.30000305175781, - 693.5 - ], - "bbox": [ - 72.30000305175781, - 687.5, - 83.40000915527344, - 706.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 687.5, - 83.40000915527344, - 706.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QòBq)657-", - "origin": [ - 103.0, - 693.5 - ], - "bbox": [ - 103.0, - 687.5, - 127.79999542236328, - 706.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-B", - "origin": [ - 127.79999542236328, - 693.5 - ], - "bbox": [ - 127.79999542236328, - 688.7999877929688, - 133.09999084472656, - 706.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=-\n)", - "origin": [ - 133.09999084472656, - 693.5 - ], - "bbox": [ - 133.09999084472656, - 687.5, - 144.5, - 706.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.0, - 687.5, - 144.5, - 706.7000122070312 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 72.30000305175781, - 715.7000122070312, - 535.2999877929688, - 736.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶,¯", - "origin": [ - 72.30000305175781, - 722.0 - ], - "bbox": [ - 72.30000305175781, - 715.7000122070312, - 79.0, - 736.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 715.7000122070312, - 79.0, - 736.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[©?5uå)576H¤76[\u001b75sß!¥/£\u001c©F©\u001a6[\u001bo¥/6=¤ «-©/Ôõ£\u001c\u001bu¨#\u0019%5u«¬£9©\u001a¤~²?§F«+©K¯", - "origin": [ - 81.20000457763672, - 722.0 - ], - "bbox": [ - 81.20000457763672, - 715.7000122070312, - 268.6000061035156, - 736.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.20000457763672, - 715.7000122070312, - 268.6000061035156, - 736.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u0018\u001a\u0018\u001a\u00194\u001bª\u0019", - "origin": [ - 270.8999938964844, - 722.0 - ], - "bbox": [ - 270.8999938964844, - 715.7000122070312, - 296.0, - 736.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f\u001c", - "origin": [ - 296.0, - 722.0 - ], - "bbox": [ - 296.0, - 717.2999877929688, - 300.70001220703125, - 735.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Y57\u001bu£\u001c©\u001a¤×\u0018\u001a\u0019\u001c¤ ¤7§F\u001bsʬ6H¥/£/¦)§F¨g6=©95e \u001aÓ~6[ÊY\u0019¸\u0018w6[§/57°", - "origin": [ - 300.70001220703125, - 722.0 - ], - "bbox": [ - 300.70001220703125, - 715.7000122070312, - 463.7999572753906, - 736.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.8999938964844, - 715.7000122070312, - 463.7999572753906, - 736.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "å[57\u001bu6\u001eÊ-6\u001e57«¬57\u001bu6V¥/6VÊY\u0019", - "origin": [ - 467.20001220703125, - 722.0 - ], - "bbox": [ - 467.20001220703125, - 715.7000122070312, - 535.2999877929688, - 736.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 467.20001220703125, - 715.7000122070312, - 535.2999877929688, - 736.0999755859375 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 72.10000610351562, - 729.2999877929688, - 536.4000244140625, - 749.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ôõ6[©\u001aå)57\u001bu6b¥F\u0019\u001c©\u001a¤", - "origin": [ - 72.10000610351562, - 735.5999755859375 - ], - "bbox": [ - 72.10000610351562, - 729.2999877929688, - 120.80001068115234, - 749.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.10000610351562, - 729.2999877929688, - 120.80001068115234, - 749.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊY\u0019\u001c²?§F6[Ê-Ê-6o6=¤�5×\u0019", - "origin": [ - 127.40000915527344, - 735.5999755859375 - ], - "bbox": [ - 127.40000915527344, - 729.2999877929688, - 178.3000030517578, - 749.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 178.3000030517578, - 735.5999755859375 - ], - "bbox": [ - 178.3000030517578, - 729.5999755859375, - 183.10000610351562, - 748.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþFÈ[6sÊY\u0019H\u0018\u001a\u00194Ç96sÏ�6=Ð", - "origin": [ - 183.10000610351562, - 735.5999755859375 - ], - "bbox": [ - 183.10000610351562, - 729.2999877929688, - 259.8000183105469, - 749.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“T", - "origin": [ - 259.8000183105469, - 735.5999755859375 - ], - "bbox": [ - 259.8000183105469, - 729.5999755859375, - 268.9000244140625, - 748.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\çoè+éaè\nê?ë+ì", - "origin": [ - 268.9000244140625, - 735.5999755859375 - ], - "bbox": [ - 268.9000244140625, - 729.2999877929688, - 306.800048828125, - 749.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Xx[", - "origin": [ - 306.800048828125, - 735.5999755859375 - ], - "bbox": [ - 306.800048828125, - 729.5999755859375, - 318.4000549316406, - 748.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "aÊ-6o©F£\u001c¨", - "origin": [ - 318.4000549316406, - 735.5999755859375 - ], - "bbox": [ - 318.4000549316406, - 729.2999877929688, - 343.6000671386719, - 749.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.40000915527344, - 729.2999877929688, - 343.6000671386719, - 749.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6oÊ", - "origin": [ - 354.8000183105469, - 735.5999755859375 - ], - "bbox": [ - 354.8000183105469, - 729.2999877929688, - 367.4000244140625, - 749.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.8000183105469, - 729.2999877929688, - 367.4000244140625, - 749.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c§/576=§F\u001b,£\u001c§gÐF«-6[©c¥F6=¤", - "origin": [ - 373.0000305175781, - 735.5999755859375 - ], - "bbox": [ - 373.0000305175781, - 729.2999877929688, - 448.5, - 749.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 373.0000305175781, - 729.2999877929688, - 448.5, - 749.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨g£45ª¤,¦)Ê-6)Ôy¤×¥/È=¦[\u001b7«-Æ%\u00194©?5", - "origin": [ - 455.10003662109375, - 735.5999755859375 - ], - "bbox": [ - 455.10003662109375, - 729.2999877929688, - 536.4000244140625, - 749.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.10003662109375, - 729.2999877929688, - 536.4000244140625, - 749.699951171875 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 72.20004272460938, - 742.9000244140625, - 284.800048828125, - 763.2999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊY\u0019!\u0018�\u00194Ç\u001c6H\u0018w£\u001c§F\u001boÊ-6=¤s¨g£\u001c576[§\u001a\u001bu¤o¥/6B\u001bu6=¦ªþ\u001a6[\u001bª¦ªþF6", - "origin": [ - 72.20004272460938, - 749.2000122070312 - ], - "bbox": [ - 72.20004272460938, - 742.9000244140625, - 232.30006408691406, - 763.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "mT", - "origin": [ - 232.30006408691406, - 749.2000122070312 - ], - "bbox": [ - 232.30006408691406, - 743.2000122070312, - 240.50006103515625, - 762.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�çoï\në?è\nð+ì", - "origin": [ - 240.50006103515625, - 749.2000122070312 - ], - "bbox": [ - 240.50006103515625, - 742.9000244140625, - 273.2000427246094, - 763.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Xx[", - "origin": [ - 273.2000427246094, - 749.2000122070312 - ], - "bbox": [ - 273.2000427246094, - 743.2000122070312, - 284.800048828125, - 762.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20004272460938, - 742.9000244140625, - 284.800048828125, - 763.2999877929688 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Þ", - "origin": [ - 72.30000305175781, - 41.5999755859375 - ], - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 72.30000305175781, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E�", - "origin": [ - 72.30000305175781, - 41.5999755859375 - ], - "bbox": [ - 72.30000305175781, - 35.5999755859375, - 78.60000610351562, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×Á‚Ø[—=˜%›œ\u001c—=›˜a¾\u000eš×â-›–Ìš™Kœ\u001c›¼¿¾\n–+—", - "origin": [ - 78.60000610351562, - 41.5999755859375 - ], - "bbox": [ - 78.60000610351562, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 51, - "type": 0, - "bbox": [ - 72.10000610351562, - 729.2999877929688, - 536.4000244140625, - 749.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ôõ6[©\u001aå)57\u001bu6b¥F\u0019\u001c©\u001a¤", - "origin": [ - 72.10000610351562, - 735.5999755859375 - ], - "bbox": [ - 72.10000610351562, - 729.2999877929688, - 120.80001068115234, - 749.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.10000610351562, - 729.2999877929688, - 120.80001068115234, - 749.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊY\u0019\u001c²?§F6[Ê-Ê-6o6=¤�5×\u0019", - "origin": [ - 127.40000915527344, - 735.5999755859375 - ], - "bbox": [ - 127.40000915527344, - 729.2999877929688, - 178.3000030517578, - 749.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 178.3000030517578, - 735.5999755859375 - ], - "bbox": [ - 178.3000030517578, - 729.5999755859375, - 183.10000610351562, - 748.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþFÈ[6sÊY\u0019H\u0018\u001a\u00194Ç96sÏ�6=Ð", - "origin": [ - 183.10000610351562, - 735.5999755859375 - ], - "bbox": [ - 183.10000610351562, - 729.2999877929688, - 259.8000183105469, - 749.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“T", - "origin": [ - 259.8000183105469, - 735.5999755859375 - ], - "bbox": [ - 259.8000183105469, - 729.5999755859375, - 268.9000244140625, - 748.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\çoè+éaè\nê?ë+ì", - "origin": [ - 268.9000244140625, - 735.5999755859375 - ], - "bbox": [ - 268.9000244140625, - 729.2999877929688, - 306.800048828125, - 749.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Xx[", - "origin": [ - 306.800048828125, - 735.5999755859375 - ], - "bbox": [ - 306.800048828125, - 729.5999755859375, - 318.4000549316406, - 748.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "aÊ-6o©F£\u001c¨", - "origin": [ - 318.4000549316406, - 735.5999755859375 - ], - "bbox": [ - 318.4000549316406, - 729.2999877929688, - 343.6000671386719, - 749.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 127.40000915527344, - 729.2999877929688, - 343.6000671386719, - 749.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6oÊ", - "origin": [ - 354.8000183105469, - 735.5999755859375 - ], - "bbox": [ - 354.8000183105469, - 729.2999877929688, - 367.4000244140625, - 749.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.8000183105469, - 729.2999877929688, - 367.4000244140625, - 749.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c§/576=§F\u001b,£\u001c§gÐF«-6[©c¥F6=¤", - "origin": [ - 373.0000305175781, - 735.5999755859375 - ], - "bbox": [ - 373.0000305175781, - 729.2999877929688, - 448.5, - 749.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 373.0000305175781, - 729.2999877929688, - 448.5, - 749.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨g£45ª¤,¦)Ê-6)Ôy¤×¥/È=¦[\u001b7«-Æ%\u00194©?5", - "origin": [ - 455.10003662109375, - 735.5999755859375 - ], - "bbox": [ - 455.10003662109375, - 729.2999877929688, - 536.4000244140625, - 749.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 455.10003662109375, - 729.2999877929688, - 536.4000244140625, - 749.699951171875 - ] - } - ], - "tag": "footer" - }, - { - "number": 52, - "type": 0, - "bbox": [ - 72.20004272460938, - 742.9000244140625, - 284.800048828125, - 763.2999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊY\u0019!\u0018�\u00194Ç\u001c6H\u0018w£\u001c§F\u001boÊ-6=¤s¨g£\u001c576[§\u001a\u001bu¤o¥/6B\u001bu6=¦ªþ\u001a6[\u001bª¦ªþF6", - "origin": [ - 72.20004272460938, - 749.2000122070312 - ], - "bbox": [ - 72.20004272460938, - 742.9000244140625, - 232.30006408691406, - 763.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "mT", - "origin": [ - 232.30006408691406, - 749.2000122070312 - ], - "bbox": [ - 232.30006408691406, - 743.2000122070312, - 240.50006103515625, - 762.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�çoï\në?è\nð+ì", - "origin": [ - 240.50006103515625, - 749.2000122070312 - ], - "bbox": [ - 240.50006103515625, - 742.9000244140625, - 273.2000427246094, - 763.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Xx[", - "origin": [ - 273.2000427246094, - 749.2000122070312 - ], - "bbox": [ - 273.2000427246094, - 743.2000122070312, - 284.800048828125, - 762.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20004272460938, - 742.9000244140625, - 284.800048828125, - 763.2999877929688 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 4, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_5": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 90.79998779296875, - 99.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Þ", - "origin": [ - 72.29998779296875, - 85.0 - ], - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 72.29998779296875, - 99.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E�", - "origin": [ - 72.29998779296875, - 85.0 - ], - "bbox": [ - 72.29998779296875, - 79.0, - 78.59999084472656, - 98.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.59999084472656, - 85.0 - ], - "bbox": [ - 78.59999084472656, - 78.69999694824219, - 81.79998779296875, - 99.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.79998779296875, - 85.0 - ], - "bbox": [ - 81.79998779296875, - 79.0, - 87.59999084472656, - 98.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 87.59999084472656, - 85.0 - ], - "bbox": [ - 87.59999084472656, - 78.69999694824219, - 90.79998779296875, - 99.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 90.79998779296875, - 99.0999984741211 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 107.79998779296875, - 80.69999694824219, - 141.99998474121094, - 101.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè+éaè/ê?ëwì", - "origin": [ - 107.79998779296875, - 87.0 - ], - "bbox": [ - 107.79998779296875, - 80.69999694824219, - 141.99998474121094, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.79998779296875, - 80.69999694824219, - 141.99998474121094, - 101.0999984741211 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.49998474121094, - 105.90000915527344, - 536.2999877929688, - 126.30001068115234 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6צªþ\u001a\u0019\u001c¨g\u0018M¤�6=\u001b�5ßR¥/£\u001c©F©\u001a6[\u001bm§\u001a©H57«¬57\u001bu6~¦)£9þFÈ[\u001bu6[©?5mßoÆ9£45u\u001b76", - "origin": [ - 72.49998474121094, - 112.20001220703125 - ], - "bbox": [ - 72.49998474121094, - 105.90000915527344, - 273.8999328613281, - 126.30001068115234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49998474121094, - 105.90000915527344, - 273.8999328613281, - 126.30001068115234 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001cÇ\u001c6", - "origin": [ - 280.5, - 112.20001220703125 - ], - "bbox": [ - 280.5, - 105.90000915527344, - 296.1000061035156, - 126.30001068115234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�T", - "origin": [ - 296.1000061035156, - 112.20001220703125 - ], - "bbox": [ - 296.1000061035156, - 106.20001220703125, - 303.5, - 125.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô\u00194§/5u\u001b76~²9§m¯", - "origin": [ - 303.5, - 112.20001220703125 - ], - "bbox": [ - 303.5, - 105.90000915527344, - 343.1999816894531, - 126.30001068115234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.5, - 105.90000915527344, - 343.1999816894531, - 126.30001068115234 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©B©\u001a£\u001c¨à¥/6", - "origin": [ - 345.29998779296875, - 112.20001220703125 - ], - "bbox": [ - 345.29998779296875, - 105.90000915527344, - 385.39996337890625, - 126.30001068115234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001a�", - "origin": [ - 385.39996337890625, - 112.20001220703125 - ], - "bbox": [ - 385.39996337890625, - 106.20001220703125, - 391.9999694824219, - 125.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþ\u001a«¬6=\u001b", - "origin": [ - 391.9999694824219, - 112.20001220703125 - ], - "bbox": [ - 391.9999694824219, - 105.90000915527344, - 414.6000061035156, - 126.30001068115234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×X", - "origin": [ - 414.6000061035156, - 112.20001220703125 - ], - "bbox": [ - 414.6000061035156, - 106.20001220703125, - 418.70001220703125, - 125.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") aÓ~6צªþ\u001a\u0019\u001c¨g\u0018M¤�6=\u001b�5m©\u001a£45u\u0019\u001c¨g¨^6=©?5", - "origin": [ - 418.70001220703125, - 112.20001220703125 - ], - "bbox": [ - 418.70001220703125, - 105.90000915527344, - 536.2999877929688, - 126.30001068115234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 345.29998779296875, - 105.90000915527344, - 536.2999877929688, - 126.30001068115234 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 72.29998779296875, - 119.49998474121094, - 537.4000854492188, - 139.89999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ß^©F£\u001c¨g¨g6[\u001bRÊ-\u0019!Ôõ6[©\u001aå)57\u001bu6M¥/§…©\u001a\u0019aÆ\n«-Ç9\u0019%5u6[§F\u001bo¥F\u0019\u001c©\u001a¤sÊY\u0019\u001c²?§F6[Ê-Ê-6H\u0019\u001c\u0018F\u0018\u001a\u0019\u001c\u001bu\u0019", - "origin": [ - 72.29998779296875, - 125.79998779296875 - ], - "bbox": [ - 72.29998779296875, - 119.49998474121094, - 311.8000183105469, - 139.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001c", - "origin": [ - 311.8000183105469, - 125.79998779296875 - ], - "bbox": [ - 311.8000183105469, - 121.09999084472656, - 316.6000061035156, - 138.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-5oÊY\u0019!\u0018�\u00194Ç\u001c6H£9§‰6=©\u001a¦)£9\u001b76Bßg¥/£\u001c©\u001a©F6[\u001bo§F©…©F£9¨Œ\u0019\u001c§…¤7«-Ç\u001c©F6[5o²?§F«", - "origin": [ - 316.6000061035156, - 125.79998779296875 - ], - "bbox": [ - 316.6000061035156, - 119.49998474121094, - 537.4000854492188, - 139.89999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 119.49998474121094, - 537.4000854492188, - 139.89999389648438 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 72.19998931884766, - 133.1999969482422, - 233.0, - 153.60000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5R¦)\u001buÈ[6VÊ-£\u001c\u001bª¤7²?§K¯", - "origin": [ - 72.19998931884766, - 139.5 - ], - "bbox": [ - 72.19998931884766, - 133.1999969482422, - 135.3000030517578, - 153.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19998931884766, - 133.1999969482422, - 135.3000030517578, - 153.60000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©‰¨g\u0019\u001c\u001bu²?§F6HÆ9£457\u001bu6V\u0018\u001a\u00194Ç96\u001c ", - "origin": [ - 137.5, - 139.5 - ], - "bbox": [ - 137.5, - 133.1999969482422, - 233.0, - 153.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 137.5, - 133.1999969482422, - 233.0, - 153.60000610351562 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 242.0, - 133.1999969482422, - 444.3999328613281, - 153.60000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊKÆ%\u00194§F5b¨^«-6[§Fÿ‰¥/£\u001c©\u001a©F6[\u001bo§F©É5u«z5u\u001b76M¦[£\u001c§F\u001b75o6)5b6)ÿ/\u0018FÊ-«Y¦)«¬576\u001c ", - "origin": [ - 242.0, - 139.5 - ], - "bbox": [ - 242.0, - 133.1999969482422, - 444.3999328613281, - 153.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.0, - 133.1999969482422, - 444.3999328613281, - 153.60000610351562 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.30000305175781, - 163.6999969482422, - 90.50000762939453, - 184.10000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Þ", - "origin": [ - 72.30000305175781, - 170.0 - ], - "bbox": [ - 72.30000305175781, - 163.6999969482422, - 72.30000305175781, - 184.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E�", - "origin": [ - 72.30000305175781, - 170.0 - ], - "bbox": [ - 72.30000305175781, - 164.0, - 78.60000610351562, - 183.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.60000610351562, - 170.0 - ], - "bbox": [ - 78.60000610351562, - 163.6999969482422, - 81.80000305175781, - 184.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.80000305175781, - 170.0 - ], - "bbox": [ - 81.80000305175781, - 164.0, - 87.60000610351562, - 183.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "YŸ", - "origin": [ - 87.60000610351562, - 170.0 - ], - "bbox": [ - 87.60000610351562, - 163.6999969482422, - 90.50000762939453, - 184.10000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 163.6999969482422, - 90.50000762939453, - 184.10000610351562 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 107.80000305175781, - 165.6999969482422, - 136.8000030517578, - 186.10000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoï\në\nè\nð+ì", - "origin": [ - 107.80000305175781, - 172.0 - ], - "bbox": [ - 107.80000305175781, - 165.6999969482422, - 136.8000030517578, - 186.10000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.80000305175781, - 165.6999969482422, - 136.8000030517578, - 186.10000610351562 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 72.30000305175781, - 190.90000915527344, - 535.9999389648438, - 211.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6V¦ªþ\u001a\u00194¨g\u0018\u001a¤\u001eçoï\në\nè?ð+ìã\u001b76=Ç\u001c\u001bu£\u001c§F\u0018w6b¥/6e¤~«-©/Ôõ£9\u001b7¨#\u0019%5u«¬£9©\u001a¤×¤7§F\u001b Æ\u001c£\u001c57\u001bu6R¥/£/¦)§F¨g6=©95 ¨#\u00194«Y¤~²?§F«+©K¯", - "origin": [ - 72.30000305175781, - 197.20001220703125 - ], - "bbox": [ - 72.30000305175781, - 190.90000915527344, - 409.49993896484375, - 211.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 190.90000915527344, - 409.49993896484375, - 211.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ø#\u00194\u0018F\u0018\u001a\u0019\u001c\u001bu\u0019", - "origin": [ - 411.70001220703125, - 197.20001220703125 - ], - "bbox": [ - 411.70001220703125, - 190.90000915527344, - 445.1000061035156, - 211.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001c", - "origin": [ - 445.1000061035156, - 197.20001220703125 - ], - "bbox": [ - 445.1000061035156, - 192.50001525878906, - 449.8999938964844, - 210.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-5~\u0018\u001a\u0019\u001c¤= /Ó~6=Ê-\u0019¸\u001b76=Ç\u001c\u001bu£\u001c§F\u0018w6", - "origin": [ - 449.8999938964844, - 197.20001220703125 - ], - "bbox": [ - 449.8999938964844, - 190.90000915527344, - 535.9999389648438, - 211.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.70001220703125, - 190.90000915527344, - 535.9999389648438, - 211.30001831054688 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 72.10000610351562, - 204.6000213623047, - 514.5, - 225.00003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "57£9§/576e¤s«¬©FÔõ£\u001c\u001bu¨g\u0019457«-£\u001c©\u001a¤s§F57«-ʬ6e¤b\u00194§/ÿ‰¨^£\u001c576=§F\u001bu¤o¥F6V\u001bu6=¦ªþ\u001a6[\u001bª¦ªþF6=¤", - "origin": [ - 72.10000610351562, - 210.9000244140625 - ], - "bbox": [ - 72.10000610351562, - 204.6000213623047, - 298.0, - 225.00003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 298.0, - 210.9000244140625 - ], - "bbox": [ - 298.0, - 204.9000244140625, - 302.5, - 224.1000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/\u00194§/ÿ\u000f©�\u0019aÆ?«-Ç9\u00194576=§F\u001bu¤~£\u001c§Ý\u0019\u001c§/ÿ‰\u0019\u001c¥F¨^«-©F«Y¤\\5u\u001bu\u00194576=§F\u001bu¤s¥/§Ý¤7«z5u6\u001c ", - "origin": [ - 302.5, - 210.9000244140625 - ], - "bbox": [ - 302.5, - 204.6000213623047, - 514.5, - 225.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.10000610351562, - 204.6000213623047, - 514.5, - 225.00003051757812 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.50000762939453, - 223.30003356933594, - 535.7999877929688, - 243.70004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó\u001e¯", - "origin": [ - 72.50000762939453, - 229.60003662109375 - ], - "bbox": [ - 72.50000762939453, - 223.30003356933594, - 80.00000762939453, - 243.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50000762939453, - 223.30003356933594, - 80.00000762939453, - 243.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5,§F©F6oÐ\u001a\u0019\u001cʬ«Y¤�6s\u0018w£\u001c©\u001a¦)57§F6=ʬÊ-6", - "origin": [ - 82.20000457763672, - 229.60003662109375 - ], - "bbox": [ - 82.20000457763672, - 223.30003356933594, - 182.60000610351562, - 243.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "DC", - "origin": [ - 182.60000610351562, - 229.60003662109375 - ], - "bbox": [ - 182.60000610351562, - 224.90003967285156, - 189.3000030517578, - 242.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4Ê-6=¤i«-©/Ôõ£9\u001b7¨#\u0019%5u«¬£9©\u001a¤", - "origin": [ - 189.3000030517578, - 229.60003662109375 - ], - "bbox": [ - 189.3000030517578, - 223.30003356933594, - 258.8999938964844, - 243.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20000457763672, - 223.30003356933594, - 258.8999938964844, - 243.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "²?§K¯", - "origin": [ - 265.5, - 229.60003662109375 - ], - "bbox": [ - 265.5, - 223.30003356933594, - 276.8000183105469, - 243.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 265.5, - 223.30003356933594, - 276.8000183105469, - 243.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[Ê-ʬ6oÆ9È[þF«Y¦)§FÊ-6o¤�£9©?5i\u0018�\u0019\u001c¤u¤�È=6=¤6[©g\u0018\u001a\u0019\u001c\u001bu\u0019\u001c¨^á[57\u001bu6=¤= ", - "origin": [ - 279.0, - 229.60003662109375 - ], - "bbox": [ - 279.0, - 223.30003356933594, - 450.0999755859375, - 243.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Y_", - "origin": [ - 450.0999755859375, - 229.60003662109375 - ], - "bbox": [ - 450.0999755859375, - 223.60003662109375, - 454.79998779296875, - 242.80003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",ʬÊ-6R¤=¯", - "origin": [ - 454.79998779296875, - 229.60003662109375 - ], - "bbox": [ - 454.79998779296875, - 223.30003356933594, - 478.8999938964844, - 243.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 279.0, - 223.30003356933594, - 478.8999938964844, - 243.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F57«-ʬ«Y¤�6o¦[£\u001c¨g¨g6", - "origin": [ - 481.0, - 229.60003662109375 - ], - "bbox": [ - 481.0, - 223.30003356933594, - 535.7999877929688, - 243.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.0, - 223.30003356933594, - 535.7999877929688, - 243.70004272460938 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.29998779296875, - 237.0000457763672, - 336.7999572753906, - 257.4000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7§F«z5M8mçoï?ë\nè\nð", - "origin": [ - 72.29998779296875, - 243.300048828125 - ], - "bbox": [ - 72.29998779296875, - 237.0000457763672, - 121.39998626708984, - 257.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 237.0000457763672, - 121.39998626708984, - 257.4000549316406 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgÄYÀ�ß", - "origin": [ - 131.49998474121094, - 243.300048828125 - ], - "bbox": [ - 131.49998474121094, - 237.300048828125, - 147.59999084472656, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%$", - "origin": [ - 147.59999084472656, - 243.300048828125 - ], - "bbox": [ - 147.59999084472656, - 238.6000518798828, - 158.79998779296875, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "vÞgºcÀ", - "origin": [ - 158.79998779296875, - 243.300048828125 - ], - "bbox": [ - 158.79998779296875, - 237.300048828125, - 173.39999389648438, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "E$", - "origin": [ - 173.39999389648438, - 243.300048828125 - ], - "bbox": [ - 173.39999389648438, - 238.6000518798828, - 179.89999389648438, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÕÁHÄ|Þ/¼", - "origin": [ - 179.89999389648438, - 243.300048828125 - ], - "bbox": [ - 179.89999389648438, - 237.300048828125, - 204.8999786376953, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 204.8999786376953, - 243.300048828125 - ], - "bbox": [ - 204.8999786376953, - 238.6000518798828, - 216.2999725341797, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "IÁŠÄFÞ/¼HÆgß", - "origin": [ - 216.2999725341797, - 243.300048828125 - ], - "bbox": [ - 216.2999725341797, - 237.300048828125, - 247.3999786376953, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F$", - "origin": [ - 247.3999786376953, - 243.300048828125 - ], - "bbox": [ - 247.3999786376953, - 238.6000518798828, - 253.19998168945312, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "r Fº|Þ/Ÿ\"ßFÞ/Ÿ", - "origin": [ - 253.19998168945312, - 243.300048828125 - ], - "bbox": [ - 253.19998168945312, - 237.300048828125, - 293.9999694824219, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$", - "origin": [ - 293.9999694824219, - 243.300048828125 - ], - "bbox": [ - 293.9999694824219, - 238.6000518798828, - 305.2999572753906, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠžcÞ\"à\nº", - "origin": [ - 305.2999572753906, - 243.300048828125 - ], - "bbox": [ - 305.2999572753906, - 237.300048828125, - 325.7999572753906, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 325.7999572753906, - 243.300048828125 - ], - "bbox": [ - 325.7999572753906, - 238.6000518798828, - 331.699951171875, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 331.699951171875, - 243.300048828125 - ], - "bbox": [ - 331.699951171875, - 237.0000457763672, - 336.7999572753906, - 257.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.49998474121094, - 237.0000457763672, - 336.7999572753906, - 257.4000549316406 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 78.79998016357422, - 255.70005798339844, - 129.8999786376953, - 276.1000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79998016357422, - 262.00006103515625 - ], - "bbox": [ - 78.79998016357422, - 255.70005798339844, - 129.8999786376953, - 276.1000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79998016357422, - 255.70005798339844, - 129.8999786376953, - 276.1000671386719 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 77.80000305175781, - 279.60003662109375, - 104.20000457763672, - 300.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 77.80000305175781, - 285.9000244140625 - ], - "bbox": [ - 77.80000305175781, - 279.9000244140625, - 77.80000305175781, - 299.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 77.80000305175781, - 285.9000244140625 - ], - "bbox": [ - 77.80000305175781, - 281.20001220703125, - 82.80000305175781, - 299.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è\nï/ê", - "origin": [ - 82.80000305175781, - 285.9000244140625 - ], - "bbox": [ - 82.80000305175781, - 279.60003662109375, - 98.70000457763672, - 300.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 98.70000457763672, - 285.9000244140625 - ], - "bbox": [ - 98.70000457763672, - 279.9000244140625, - 104.20000457763672, - 299.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.80000305175781, - 279.60003662109375, - 104.20000457763672, - 300.0000305175781 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 93.4000015258789, - 293.10003662109375, - 119.80000305175781, - 313.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 299.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 293.4000244140625, - 93.4000015258789, - 312.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 93.4000015258789, - 299.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 294.70001220703125, - 98.4000015258789, - 312.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ë\nð", - "origin": [ - 98.4000015258789, - 299.4000244140625 - ], - "bbox": [ - 98.4000015258789, - 293.10003662109375, - 108.9000015258789, - 313.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 108.9000015258789, - 299.4000244140625 - ], - "bbox": [ - 108.9000015258789, - 294.70001220703125, - 114.20000457763672, - 312.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.20000457763672, - 299.4000244140625 - ], - "bbox": [ - 114.20000457763672, - 293.4000244140625, - 119.80000305175781, - 312.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 293.10003662109375, - 119.80000305175781, - 313.5000305175781 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 93.4000015258789, - 306.800048828125, - 308.1999816894531, - 327.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 313.10003662109375 - ], - "bbox": [ - 93.4000015258789, - 307.10003662109375, - 93.4000015258789, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï?ë\nè\nð", - "origin": [ - 93.4000015258789, - 313.10003662109375 - ], - "bbox": [ - 93.4000015258789, - 306.800048828125, - 114.20000457763672, - 327.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÞgÄYÀ\u0011ß", - "origin": [ - 114.20000457763672, - 313.10003662109375 - ], - "bbox": [ - 114.20000457763672, - 307.10003662109375, - 140.60000610351562, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$", - "origin": [ - 140.60000610351562, - 313.10003662109375 - ], - "bbox": [ - 140.60000610351562, - 308.4000244140625, - 151.70001220703125, - 326.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=ð", - "origin": [ - 151.70001220703125, - 313.10003662109375 - ], - "bbox": [ - 151.70001220703125, - 306.800048828125, - 156.20001220703125, - 327.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÆ/ŸŠ¡gºŠ»", - "origin": [ - 156.20001220703125, - 313.10003662109375 - ], - "bbox": [ - 156.20001220703125, - 307.10003662109375, - 182.6000213623047, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 182.6000213623047, - 313.10003662109375 - ], - "bbox": [ - 182.6000213623047, - 308.4000244140625, - 188.7000274658203, - 326.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Õ FºFÞ/Ÿ/ßFÞ/Ÿ", - "origin": [ - 188.7000274658203, - 313.10003662109375 - ], - "bbox": [ - 188.7000274658203, - 307.10003662109375, - 229.40000915527344, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$\fH", - "origin": [ - 229.40000915527344, - 313.10003662109375 - ], - "bbox": [ - 229.40000915527344, - 308.4000244140625, - 245.5, - 326.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hß\nÄFÞ", - "origin": [ - 245.5, - 313.10003662109375 - ], - "bbox": [ - 245.5, - 307.10003662109375, - 261.0, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "I:", - "origin": [ - 261.0, - 313.10003662109375 - ], - "bbox": [ - 261.0, - 308.4000244140625, - 270.8999938964844, - 326.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÆ\n´gº|Þ/Ÿ", - "origin": [ - 270.8999938964844, - 313.10003662109375 - ], - "bbox": [ - 270.8999938964844, - 307.10003662109375, - 297.29998779296875, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 297.29998779296875, - 313.10003662109375 - ], - "bbox": [ - 297.29998779296875, - 308.4000244140625, - 303.3999938964844, - 326.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 303.3999938964844, - 313.10003662109375 - ], - "bbox": [ - 303.3999938964844, - 307.10003662109375, - 308.1999816894531, - 326.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 306.800048828125, - 308.1999816894531, - 327.2000427246094 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 93.4000015258789, - 320.4000244140625, - 371.2999572753906, - 340.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 326.70001220703125 - ], - "bbox": [ - 93.4000015258789, - 320.70001220703125, - 93.4000015258789, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï?ë\nè\nð", - "origin": [ - 93.4000015258789, - 326.70001220703125 - ], - "bbox": [ - 93.4000015258789, - 320.4000244140625, - 114.20000457763672, - 340.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÞgÄYÀ\u0011ß", - "origin": [ - 114.20000457763672, - 326.70001220703125 - ], - "bbox": [ - 114.20000457763672, - 320.70001220703125, - 140.60000610351562, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$\u000e:", - "origin": [ - 140.60000610351562, - 326.70001220703125 - ], - "bbox": [ - 140.60000610351562, - 322.0, - 156.20001220703125, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ĊŸ/ß", - "origin": [ - 156.20001220703125, - 326.70001220703125 - ], - "bbox": [ - 156.20001220703125, - 320.70001220703125, - 172.20001220703125, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 172.20001220703125, - 326.70001220703125 - ], - "bbox": [ - 172.20001220703125, - 322.0, - 178.10000610351562, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "• Fº|Þ/Ÿ\"ßFÞ/Ÿ", - "origin": [ - 178.10000610351562, - 326.70001220703125 - ], - "bbox": [ - 178.10000610351562, - 320.70001220703125, - 218.99998474121094, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$-/\fJ-J", - "origin": [ - 218.99998474121094, - 326.70001220703125 - ], - "bbox": [ - 218.99998474121094, - 322.0, - 245.59999084472656, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÂ\u0011¿", - "origin": [ - 245.59999084472656, - 326.70001220703125 - ], - "bbox": [ - 245.59999084472656, - 320.70001220703125, - 256.5, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e/#/", - "origin": [ - 256.5, - 326.70001220703125 - ], - "bbox": [ - 256.5, - 322.0, - 267.20001220703125, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F¿IÃ", - "origin": [ - 267.20001220703125, - 326.70001220703125 - ], - "bbox": [ - 267.20001220703125, - 320.70001220703125, - 277.0, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-K", - "origin": [ - 277.0, - 326.70001220703125 - ], - "bbox": [ - 277.0, - 322.0, - 282.29998779296875, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9è", - "origin": [ - 282.29998779296875, - 326.70001220703125 - ], - "bbox": [ - 282.29998779296875, - 320.4000244140625, - 287.3999938964844, - 340.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃ", - "origin": [ - 287.3999938964844, - 326.70001220703125 - ], - "bbox": [ - 287.3999938964844, - 320.70001220703125, - 292.6999816894531, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-L", - "origin": [ - 292.6999816894531, - 326.70001220703125 - ], - "bbox": [ - 292.6999816894531, - 322.0, - 297.9999694824219, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "#µ¸Â", - "origin": [ - 297.9999694824219, - 326.70001220703125 - ], - "bbox": [ - 297.9999694824219, - 320.70001220703125, - 308.1999816894531, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1J", - "origin": [ - 308.1999816894531, - 326.70001220703125 - ], - "bbox": [ - 308.1999816894531, - 322.0, - 313.5999755859375, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&µ\u001b¹", - "origin": [ - 313.5999755859375, - 326.70001220703125 - ], - "bbox": [ - 313.5999755859375, - 320.70001220703125, - 324.199951171875, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@M#N", - "origin": [ - 324.199951171875, - 326.70001220703125 - ], - "bbox": [ - 324.199951171875, - 322.0, - 334.4999694824219, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃHÃ&µ;Ã\nÃ", - "origin": [ - 334.4999694824219, - 326.70001220703125 - ], - "bbox": [ - 334.4999694824219, - 320.70001220703125, - 360.7999572753906, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A$", - "origin": [ - 360.7999572753906, - 326.70001220703125 - ], - "bbox": [ - 360.7999572753906, - 322.0, - 366.4999694824219, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 366.4999694824219, - 326.70001220703125 - ], - "bbox": [ - 366.4999694824219, - 320.70001220703125, - 371.2999572753906, - 339.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 320.4000244140625, - 371.2999572753906, - 340.8000183105469 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 93.4000015258789, - 334.10003662109375, - 267.0000305175781, - 354.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 340.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 334.4000244140625, - 93.4000015258789, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï?ë\nè\nð", - "origin": [ - 93.4000015258789, - 340.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 334.10003662109375, - 114.20000457763672, - 354.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÞgÄYÀ\u0011ß", - "origin": [ - 114.20000457763672, - 340.4000244140625 - ], - "bbox": [ - 114.20000457763672, - 334.4000244140625, - 140.60000610351562, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$\u000eO", - "origin": [ - 140.60000610351562, - 340.4000244140625 - ], - "bbox": [ - 140.60000610351562, - 335.70001220703125, - 156.20001220703125, - 353.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ߊ㊶gºŠ»", - "origin": [ - 156.20001220703125, - 340.4000244140625 - ], - "bbox": [ - 156.20001220703125, - 334.4000244140625, - 182.60003662109375, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 182.60003662109375, - 340.4000244140625 - ], - "bbox": [ - 182.60003662109375, - 335.70001220703125, - 188.00003051757812, - 353.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fá", - "origin": [ - 188.00003051757812, - 340.4000244140625 - ], - "bbox": [ - 188.00003051757812, - 334.4000244140625, - 193.7000274658203, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e$", - "origin": [ - 193.7000274658203, - 340.4000244140625 - ], - "bbox": [ - 193.7000274658203, - 335.70001220703125, - 199.2000274658203, - 353.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÈÁŠÄFÞ/¼", - "origin": [ - 199.2000274658203, - 340.4000244140625 - ], - "bbox": [ - 199.2000274658203, - 334.4000244140625, - 224.00003051757812, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 224.00003051757812, - 340.4000244140625 - ], - "bbox": [ - 224.00003051757812, - 335.70001220703125, - 235.4000244140625, - 353.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cßFÞ.¿cÆ\u0011á", - "origin": [ - 235.4000244140625, - 340.4000244140625 - ], - "bbox": [ - 235.4000244140625, - 334.4000244140625, - 261.5000305175781, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e$", - "origin": [ - 261.5000305175781, - 340.4000244140625 - ], - "bbox": [ - 261.5000305175781, - 335.70001220703125, - 267.0000305175781, - 353.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 334.10003662109375, - 267.0000305175781, - 354.5000305175781 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 135.5, - 347.9000244140625, - 302.89996337890625, - 367.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºFÞ/Ÿ\"ßFÞ\nŸ", - "origin": [ - 135.5, - 353.9000244140625 - ], - "bbox": [ - 135.5, - 347.9000244140625, - 166.59999084472656, - 367.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 166.59999084472656, - 353.9000244140625 - ], - "bbox": [ - 166.59999084472656, - 349.20001220703125, - 177.99998474121094, - 367.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\â\"Ä\" FĊŸ\u0011ž|ºIÞ", - "origin": [ - 177.99998474121094, - 353.9000244140625 - ], - "bbox": [ - 177.99998474121094, - 347.9000244140625, - 219.19998168945312, - 367.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001bPQH", - "origin": [ - 219.19998168945312, - 353.9000244140625 - ], - "bbox": [ - 219.19998168945312, - 349.20001220703125, - 234.5999755859375, - 367.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÄF´gÄ|Þ", - "origin": [ - 234.5999755859375, - 353.9000244140625 - ], - "bbox": [ - 234.5999755859375, - 347.9000244140625, - 255.2999725341797, - 367.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001bPR;", - "origin": [ - 255.2999725341797, - 353.9000244140625 - ], - "bbox": [ - 255.2999725341797, - 349.20001220703125, - 271.1999816894531, - 367.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"áFÄ", - "origin": [ - 271.1999816894531, - 353.9000244140625 - ], - "bbox": [ - 271.1999816894531, - 347.9000244140625, - 281.6999816894531, - 367.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@O", - "origin": [ - 281.6999816894531, - 353.9000244140625 - ], - "bbox": [ - 281.6999816894531, - 349.20001220703125, - 286.79998779296875, - 367.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ä", - "origin": [ - 286.79998779296875, - 353.9000244140625 - ], - "bbox": [ - 286.79998779296875, - 347.9000244140625, - 292.1999816894531, - 367.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 292.1999816894531, - 353.9000244140625 - ], - "bbox": [ - 292.1999816894531, - 349.20001220703125, - 298.0999755859375, - 367.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 298.0999755859375, - 353.9000244140625 - ], - "bbox": [ - 298.0999755859375, - 347.9000244140625, - 302.89996337890625, - 367.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.5, - 347.9000244140625, - 302.89996337890625, - 367.10003662109375 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 93.39999389648438, - 361.300048828125, - 251.20001220703125, - 381.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.39999389648438, - 367.60003662109375 - ], - "bbox": [ - 93.39999389648438, - 361.60003662109375, - 93.39999389648438, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï?ë\nè\nð", - "origin": [ - 93.39999389648438, - 367.60003662109375 - ], - "bbox": [ - 93.39999389648438, - 361.300048828125, - 114.19999694824219, - 381.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÞgÄYÀ\u0011ß", - "origin": [ - 114.19999694824219, - 367.60003662109375 - ], - "bbox": [ - 114.19999694824219, - 361.60003662109375, - 140.59999084472656, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$\u000eO", - "origin": [ - 140.59999084472656, - 367.60003662109375 - ], - "bbox": [ - 140.59999084472656, - 362.9000244140625, - 156.1999969482422, - 380.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ߊ㊶gºŠ»", - "origin": [ - 156.1999969482422, - 367.60003662109375 - ], - "bbox": [ - 156.1999969482422, - 361.60003662109375, - 182.6000213623047, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 182.6000213623047, - 367.60003662109375 - ], - "bbox": [ - 182.6000213623047, - 362.9000244140625, - 188.00001525878906, - 380.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fá", - "origin": [ - 188.00001525878906, - 367.60003662109375 - ], - "bbox": [ - 188.00001525878906, - 361.60003662109375, - 193.70001220703125, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e$", - "origin": [ - 193.70001220703125, - 367.60003662109375 - ], - "bbox": [ - 193.70001220703125, - 362.9000244140625, - 199.20001220703125, - 380.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÈÁŠÄFÞ/¼", - "origin": [ - 199.20001220703125, - 367.60003662109375 - ], - "bbox": [ - 199.20001220703125, - 361.60003662109375, - 224.00001525878906, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 224.00001525878906, - 367.60003662109375 - ], - "bbox": [ - 224.00001525878906, - 362.9000244140625, - 235.40000915527344, - 380.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cßFÞ", - "origin": [ - 235.40000915527344, - 367.60003662109375 - ], - "bbox": [ - 235.40000915527344, - 361.60003662109375, - 245.00001525878906, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S$", - "origin": [ - 245.00001525878906, - 367.60003662109375 - ], - "bbox": [ - 245.00001525878906, - 362.9000244140625, - 251.20001220703125, - 380.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 361.300048828125, - 251.20001220703125, - 381.7000427246094 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 135.5, - 375.300048828125, - 297.5999755859375, - 394.50006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºFÞ/Ÿ\"ßFÞ\nŸ", - "origin": [ - 135.5, - 381.300048828125 - ], - "bbox": [ - 135.5, - 375.300048828125, - 166.59999084472656, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 166.59999084472656, - 381.300048828125 - ], - "bbox": [ - 166.59999084472656, - 376.60003662109375, - 177.99998474121094, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v¡gº\nÁgž", - "origin": [ - 177.99998474121094, - 381.300048828125 - ], - "bbox": [ - 177.99998474121094, - 375.300048828125, - 198.89999389648438, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 198.89999389648438, - 381.300048828125 - ], - "bbox": [ - 198.89999389648438, - 376.60003662109375, - 203.6999969482422, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ċã", - "origin": [ - 203.6999969482422, - 381.300048828125 - ], - "bbox": [ - 203.6999969482422, - 375.300048828125, - 214.1999969482422, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "TPQH", - "origin": [ - 214.1999969482422, - 381.300048828125 - ], - "bbox": [ - 214.1999969482422, - 376.60003662109375, - 229.3000030517578, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÄF´gÄFÞ", - "origin": [ - 229.3000030517578, - 381.300048828125 - ], - "bbox": [ - 229.3000030517578, - 375.300048828125, - 250.10000610351562, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�PR;", - "origin": [ - 250.10000610351562, - 381.300048828125 - ], - "bbox": [ - 250.10000610351562, - 376.60003662109375, - 265.8999938964844, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"áFÄ", - "origin": [ - 265.8999938964844, - 381.300048828125 - ], - "bbox": [ - 265.8999938964844, - 375.300048828125, - 276.3999938964844, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@O", - "origin": [ - 276.3999938964844, - 381.300048828125 - ], - "bbox": [ - 276.3999938964844, - 376.60003662109375, - 281.5, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ä", - "origin": [ - 281.5, - 381.300048828125 - ], - "bbox": [ - 281.5, - 375.300048828125, - 287.0, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F$", - "origin": [ - 287.0, - 381.300048828125 - ], - "bbox": [ - 287.0, - 376.60003662109375, - 292.79998779296875, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 292.79998779296875, - 381.300048828125 - ], - "bbox": [ - 292.79998779296875, - 375.300048828125, - 297.5999755859375, - 394.50006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.5, - 375.300048828125, - 297.5999755859375, - 394.50006103515625 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 93.39999389648438, - 388.50006103515625, - 251.20001220703125, - 408.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.39999389648438, - 394.800048828125 - ], - "bbox": [ - 93.39999389648438, - 388.800048828125, - 93.39999389648438, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï?ë\nè\nð", - "origin": [ - 93.39999389648438, - 394.800048828125 - ], - "bbox": [ - 93.39999389648438, - 388.50006103515625, - 114.19999694824219, - 408.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÞgÄYÀ\u0011ß", - "origin": [ - 114.19999694824219, - 394.800048828125 - ], - "bbox": [ - 114.19999694824219, - 388.800048828125, - 140.59999084472656, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$\u000eO", - "origin": [ - 140.59999084472656, - 394.800048828125 - ], - "bbox": [ - 140.59999084472656, - 390.10003662109375, - 156.1999969482422, - 407.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ߊ㊶gºŠ»", - "origin": [ - 156.1999969482422, - 394.800048828125 - ], - "bbox": [ - 156.1999969482422, - 388.800048828125, - 182.6000213623047, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 182.6000213623047, - 394.800048828125 - ], - "bbox": [ - 182.6000213623047, - 390.10003662109375, - 188.00001525878906, - 407.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fá", - "origin": [ - 188.00001525878906, - 394.800048828125 - ], - "bbox": [ - 188.00001525878906, - 388.800048828125, - 193.70001220703125, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e$", - "origin": [ - 193.70001220703125, - 394.800048828125 - ], - "bbox": [ - 193.70001220703125, - 390.10003662109375, - 199.20001220703125, - 407.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÈÁŠÄFÞ/¼", - "origin": [ - 199.20001220703125, - 394.800048828125 - ], - "bbox": [ - 199.20001220703125, - 388.800048828125, - 224.00001525878906, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 224.00001525878906, - 394.800048828125 - ], - "bbox": [ - 224.00001525878906, - 390.10003662109375, - 235.40000915527344, - 407.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\àH»", - "origin": [ - 235.40000915527344, - 394.800048828125 - ], - "bbox": [ - 235.40000915527344, - 388.800048828125, - 245.10000610351562, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 245.10000610351562, - 394.800048828125 - ], - "bbox": [ - 245.10000610351562, - 390.10003662109375, - 251.20001220703125, - 407.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 388.50006103515625, - 251.20001220703125, - 408.9000549316406 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 135.5, - 402.50006103515625, - 302.89996337890625, - 421.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºFÞ/Ÿ\"ßFÞ\nŸ", - "origin": [ - 135.5, - 408.50006103515625 - ], - "bbox": [ - 135.5, - 402.50006103515625, - 166.59999084472656, - 421.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 166.59999084472656, - 408.50006103515625 - ], - "bbox": [ - 166.59999084472656, - 403.800048828125, - 177.99998474121094, - 421.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\â\"Ä\" FÄFÞ\u0011 Fß/á", - "origin": [ - 177.99998474121094, - 408.50006103515625 - ], - "bbox": [ - 177.99998474121094, - 402.50006103515625, - 219.7999725341797, - 421.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "UPQH", - "origin": [ - 219.7999725341797, - 408.50006103515625 - ], - "bbox": [ - 219.7999725341797, - 403.800048828125, - 234.5999755859375, - 421.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÄF´gº|Þ", - "origin": [ - 234.5999755859375, - 408.50006103515625 - ], - "bbox": [ - 234.5999755859375, - 402.50006103515625, - 255.2999725341797, - 421.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001bPR;", - "origin": [ - 255.2999725341797, - 408.50006103515625 - ], - "bbox": [ - 255.2999725341797, - 403.800048828125, - 271.1999816894531, - 421.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"áFÄ", - "origin": [ - 271.1999816894531, - 408.50006103515625 - ], - "bbox": [ - 271.1999816894531, - 402.50006103515625, - 281.6999816894531, - 421.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@O", - "origin": [ - 281.6999816894531, - 408.50006103515625 - ], - "bbox": [ - 281.6999816894531, - 403.800048828125, - 286.79998779296875, - 421.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ä", - "origin": [ - 286.79998779296875, - 408.50006103515625 - ], - "bbox": [ - 286.79998779296875, - 402.50006103515625, - 292.1999816894531, - 421.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 292.1999816894531, - 408.50006103515625 - ], - "bbox": [ - 292.1999816894531, - 403.800048828125, - 298.0999755859375, - 421.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 298.0999755859375, - 408.50006103515625 - ], - "bbox": [ - 298.0999755859375, - 402.50006103515625, - 302.89996337890625, - 421.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.5, - 402.50006103515625, - 302.89996337890625, - 421.7000732421875 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 109.0999984741211, - 429.50006103515625, - 292.70001220703125, - 449.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 109.0999984741211, - 435.800048828125 - ], - "bbox": [ - 109.0999984741211, - 429.800048828125, - 109.0999984741211, - 449.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè+éeè/ê?ë", - "origin": [ - 109.0999984741211, - 435.800048828125 - ], - "bbox": [ - 109.0999984741211, - 429.50006103515625, - 135.1999969482422, - 449.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 135.1999969482422, - 435.800048828125 - ], - "bbox": [ - 135.1999969482422, - 429.800048828125, - 140.8000030517578, - 449.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï", - "origin": [ - 140.8000030517578, - 435.800048828125 - ], - "bbox": [ - 140.8000030517578, - 429.50006103515625, - 145.8000030517578, - 449.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßgáÕâ\"Ä\" FÄFÞ\u0011 Fß\"á(ÄFÆ", - "origin": [ - 145.8000030517578, - 435.800048828125 - ], - "bbox": [ - 145.8000030517578, - 429.800048828125, - 218.59999084472656, - 449.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "VH", - "origin": [ - 218.59999084472656, - 435.800048828125 - ], - "bbox": [ - 218.59999084472656, - 431.10003662109375, - 229.29998779296875, - 448.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÄF´gºFÞgÝ\n£", - "origin": [ - 229.29998779296875, - 435.800048828125 - ], - "bbox": [ - 229.29998779296875, - 429.800048828125, - 261.0, - 449.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè+éaè\nê?ë", - "origin": [ - 261.0, - 435.800048828125 - ], - "bbox": [ - 261.0, - 429.50006103515625, - 287.1000061035156, - 449.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 287.1000061035156, - 435.800048828125 - ], - "bbox": [ - 287.1000061035156, - 429.800048828125, - 292.70001220703125, - 449.00006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.0999984741211, - 429.50006103515625, - 292.70001220703125, - 449.9000549316406 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 93.4000015258789, - 443.00006103515625, - 125.10001373291016, - 463.4000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.4000015258789, - 449.300048828125 - ], - "bbox": [ - 93.4000015258789, - 443.300048828125, - 98.70000457763672, - 462.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 98.70000457763672, - 449.300048828125 - ], - "bbox": [ - 98.70000457763672, - 444.60003662109375, - 103.60000610351562, - 462.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në\nð", - "origin": [ - 103.60000610351562, - 449.300048828125 - ], - "bbox": [ - 103.60000610351562, - 443.00006103515625, - 114.20001220703125, - 463.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 114.20001220703125, - 449.300048828125 - ], - "bbox": [ - 114.20001220703125, - 444.60003662109375, - 119.50001525878906, - 462.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 119.50001525878906, - 449.300048828125 - ], - "bbox": [ - 119.50001525878906, - 443.300048828125, - 125.10001373291016, - 462.50006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 443.00006103515625, - 125.10001373291016, - 463.4000549316406 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 93.4000015258789, - 470.7000427246094, - 119.80000305175781, - 489.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý|›", - "origin": [ - 93.4000015258789, - 476.7000427246094 - ], - "bbox": [ - 93.4000015258789, - 470.7000427246094, - 98.30000305175781, - 489.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<;�:-=", - "origin": [ - 98.30000305175781, - 476.7000427246094 - ], - "bbox": [ - 98.30000305175781, - 472.0000305175781, - 114.20000457763672, - 489.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.20000457763672, - 476.7000427246094 - ], - "bbox": [ - 114.20000457763672, - 470.7000427246094, - 119.80000305175781, - 489.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 470.7000427246094, - 119.80000305175781, - 489.9000549316406 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 109.0999984741211, - 483.9000549316406, - 272.70001220703125, - 504.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 109.0999984741211, - 490.2000427246094 - ], - "bbox": [ - 109.0999984741211, - 484.2000427246094, - 109.0999984741211, - 503.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 109.0999984741211, - 490.2000427246094 - ], - "bbox": [ - 109.0999984741211, - 485.5000305175781, - 114.0999984741211, - 503.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.0999984741211, - 490.2000427246094 - ], - "bbox": [ - 114.0999984741211, - 484.2000427246094, - 119.69999694824219, - 503.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cê", - "origin": [ - 119.69999694824219, - 490.2000427246094 - ], - "bbox": [ - 119.69999694824219, - 483.9000549316406, - 124.69999694824219, - 504.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 124.69999694824219, - 490.2000427246094 - ], - "bbox": [ - 124.69999694824219, - 484.2000427246094, - 130.09999084472656, - 503.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "4H", - "origin": [ - 130.09999084472656, - 490.2000427246094 - ], - "bbox": [ - 130.09999084472656, - 485.5000305175781, - 140.39999389648438, - 503.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÄF´gº|ÞKß\"áIŸkÆ\nÞ0Å\"ß\nÄFÆ«´gĊã�á§·\n·H·", - "origin": [ - 140.39999389648438, - 490.2000427246094 - ], - "bbox": [ - 140.39999389648438, - 484.2000427246094, - 272.70001220703125, - 503.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.0999984741211, - 483.9000549316406, - 272.70001220703125, - 504.300048828125 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 93.4000015258789, - 497.9000549316406, - 125.10000610351562, - 517.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£I›", - "origin": [ - 93.4000015258789, - 503.9000549316406 - ], - "bbox": [ - 93.4000015258789, - 497.9000549316406, - 103.50000762939453, - 517.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A;�:-=", - "origin": [ - 103.50000762939453, - 503.9000549316406 - ], - "bbox": [ - 103.50000762939453, - 499.2000427246094, - 119.50000762939453, - 517.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 119.50000762939453, - 503.9000549316406 - ], - "bbox": [ - 119.50000762939453, - 497.9000549316406, - 125.10000610351562, - 517.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 497.9000549316406, - 125.10000610351562, - 517.1000366210938 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 77.80000305175781, - 511.2000732421875, - 109.50001525878906, - 531.6000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 77.80000305175781, - 517.5000610351562 - ], - "bbox": [ - 77.80000305175781, - 511.50006103515625, - 83.10000610351562, - 530.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 83.10000610351562, - 517.5000610351562 - ], - "bbox": [ - 83.10000610351562, - 512.800048828125, - 88.00000762939453, - 530.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè\nï/ê", - "origin": [ - 88.00000762939453, - 517.5000610351562 - ], - "bbox": [ - 88.00000762939453, - 511.2000732421875, - 104.00001525878906, - 531.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 104.00001525878906, - 517.5000610351562 - ], - "bbox": [ - 104.00001525878906, - 511.50006103515625, - 109.50001525878906, - 530.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.80000305175781, - 511.2000732421875, - 109.50001525878906, - 531.6000366210938 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 72.30000305175781, - 534.7000122070312, - 422.6999206542969, - 555.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K£9\u001bu¤u²?§K¯", - "origin": [ - 72.30000305175781, - 541.0 - ], - "bbox": [ - 72.30000305175781, - 534.7000122070312, - 102.79999542236328, - 555.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 534.7000122070312, - 102.79999542236328, - 555.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©M©\u001a\u0019aÆ\n«-Ç9\u0019%5u6[§F\u001bÊ¬«-\u001bª\u0019\u001e¦[6)5�5u6~\u0018�\u00194Ç\u001c6", - "origin": [ - 105.0, - 541.0 - ], - "bbox": [ - 105.0, - 534.7000122070312, - 223.0, - 555.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 223.0, - 541.0 - ], - "bbox": [ - 223.0, - 535.0, - 228.10000610351562, - 554.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=«-ÊF¦)£9©F©\u001a\u0019", - "origin": [ - 228.10000610351562, - 541.0 - ], - "bbox": [ - 228.10000610351562, - 534.7000122070312, - 261.4000244140625, - 555.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001c", - "origin": [ - 261.4000244140625, - 541.0 - ], - "bbox": [ - 261.4000244140625, - 536.2999877929688, - 266.20001220703125, - 554.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-5u\u001bu\u0019b¤7£\u001c©^\u00194§/5u6[§F\u001bi6[5ÊY\u0019\u001e¥\u001a\u0019%576s¥/6s¦)\u001buÈ=\u0019457«-£\u001c©K ", - "origin": [ - 266.20001220703125, - 541.0 - ], - "bbox": [ - 266.20001220703125, - 534.7000122070312, - 422.6999206542969, - 555.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.0, - 534.7000122070312, - 422.6999206542969, - 555.0999755859375 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 430.9000244140625, - 534.7000122070312, - 536.3999633789062, - 555.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê\n\u0018�£9§F\u001b7\u001bª\u0019bÊ-6=¤i¦[£\u001c¨g¨¸§F©\u001a«-²?§F6=\u001b", - "origin": [ - 430.9000244140625, - 541.0 - ], - "bbox": [ - 430.9000244140625, - 534.7000122070312, - 536.3999633789062, - 555.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.9000244140625, - 534.7000122070312, - 536.3999633789062, - 555.0999755859375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 72.30001831054688, - 548.2999877929688, - 209.6999969482422, - 568.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ß^Ê-\u0019g¥/6=¨#\u00194©\u001a¥/6M¥F6M¤�£9©‰§/5u«¬Ê-«Y¤7\u00194576[§\u001a\u001b= ", - "origin": [ - 72.30001831054688, - 554.5999755859375 - ], - "bbox": [ - 72.30001831054688, - 548.2999877929688, - 209.6999969482422, - 568.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 548.2999877929688, - 209.6999969482422, - 568.699951171875 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 72.30001831054688, - 567.1000366210938, - 536.2999267578125, - 587.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e6R¨gå[¨g6", - "origin": [ - 72.30001831054688, - 573.4000244140625 - ], - "bbox": [ - 72.30001831054688, - 567.1000366210938, - 108.20002746582031, - 587.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 108.20002746582031, - 573.4000244140625 - ], - "bbox": [ - 108.20002746582031, - 567.4000244140625, - 113.20002746582031, - 586.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?Ê-£\u001c\u001bª¤7²?§K¯", - "origin": [ - 113.20002746582031, - 573.4000244140625 - ], - "bbox": [ - 113.20002746582031, - 567.1000366210938, - 145.50003051757812, - 587.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 567.1000366210938, - 145.50003051757812, - 587.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©g¨g£4576=§F\u001b~¥F6R\u001bu6=¦ªþF6=\u001bu¦ªþF6sÆ9£\u001c§\u001a¥/\u001bª\u0019B¦[\u001945u\u0019\u001cʬ£9Ç\u001c§F6=\u001b,¦)6)57576\u001e\u0018\u001a\u00194Ç96", - "origin": [ - 147.70001220703125, - 573.4000244140625 - ], - "bbox": [ - 147.70001220703125, - 567.1000366210938, - 372.0, - 587.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 372.0, - 573.4000244140625 - ], - "bbox": [ - 372.0, - 567.4000244140625, - 377.0, - 586.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4«-Êw¤u\u00194§\u001a\u001bu\u0019H«-¨g¨^Èe¥/«Y\u0019%576=¨g6[©?5 ²?§F6bÊ-6=¤×¨g£45u¤", - "origin": [ - 377.0, - 573.4000244140625 - ], - "bbox": [ - 377.0, - 567.1000366210938, - 536.2999267578125, - 587.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.70001220703125, - 567.1000366210938, - 536.2999267578125, - 587.5 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 72.30001068115234, - 580.7000122070312, - 538.2000732421875, - 601.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)Ê-6)Ôy¤", - "origin": [ - 72.30001068115234, - 587.0 - ], - "bbox": [ - 72.30001068115234, - 580.7000122070312, - 86.90001678466797, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[/�", - "origin": [ - 86.90001678466797, - 587.0 - ], - "bbox": [ - 86.90001678466797, - 581.0, - 96.80001831054688, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/ÈH\u0018\u001a\u0019\u001c\u001boÊô¯", - "origin": [ - 96.80001831054688, - 587.0 - ], - "bbox": [ - 96.80001831054688, - 580.7000122070312, - 136.50001525878906, - 601.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001068115234, - 580.7000122070312, - 136.50001525878906, - 601.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§/5u6[§F\u001boÊ-§F«K¨gå=¨^6", - "origin": [ - 138.80001831054688, - 587.0 - ], - "bbox": [ - 138.80001831054688, - 580.7000122070312, - 205.60000610351562, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 205.60000610351562, - 587.0 - ], - "bbox": [ - 205.60000610351562, - 581.0, - 210.70001220703125, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a¤7£\u001c©?5b¤�6=ʬ£9©‰Ê-6=¤sÊY\u00194©FÇ9§F6=¤s§F57«-ʬ«Y¤�È=6=¤H8FÆ%\u00199¦[\u0019%5u«¬£9©", - "origin": [ - 210.70001220703125, - 587.0 - ], - "bbox": [ - 210.70001220703125, - 580.7000122070312, - 387.1000061035156, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 387.1000061035156, - 587.0 - ], - "bbox": [ - 387.1000061035156, - 581.0, - 393.20001220703125, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/þF£9ʬ«Y¥F\u0019aø", - "origin": [ - 393.20001220703125, - 587.0 - ], - "bbox": [ - 393.20001220703125, - 580.7000122070312, - 425.0000305175781, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 425.0000305175781, - 587.0 - ], - "bbox": [ - 425.0000305175781, - 581.0, - 430.0000305175781, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1W", - "origin": [ - 430.0000305175781, - 587.0 - ], - "bbox": [ - 430.0000305175781, - 582.2999877929688, - 435.4000244140625, - 600.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?\u00194\u0018\u001a\u0019\u001c©", - "origin": [ - 435.4000244140625, - 587.0 - ], - "bbox": [ - 435.4000244140625, - 580.7000122070312, - 456.10003662109375, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[fš", - "origin": [ - 456.10003662109375, - 587.0 - ], - "bbox": [ - 456.10003662109375, - 581.0, - 467.9000549316406, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V¤u\u0019", - "origin": [ - 467.9000549316406, - 587.0 - ], - "bbox": [ - 467.9000549316406, - 580.7000122070312, - 479.50006103515625, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|V", - "origin": [ - 479.50006103515625, - 587.0 - ], - "bbox": [ - 479.50006103515625, - 581.0, - 484.4000549316406, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%\u0019", - "origin": [ - 484.4000549316406, - 587.0 - ], - "bbox": [ - 484.4000549316406, - 580.7000122070312, - 489.2000427246094, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"[", - "origin": [ - 489.2000427246094, - 587.0 - ], - "bbox": [ - 489.2000427246094, - 581.0, - 494.7000427246094, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nÆ%\u0019\u001c¦=\u00194©\u001a¦[6=¤", - "origin": [ - 494.7000427246094, - 587.0 - ], - "bbox": [ - 494.7000427246094, - 580.7000122070312, - 533.7000732421875, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 533.7000732421875, - 587.0 - ], - "bbox": [ - 533.7000732421875, - 581.0, - 538.2000732421875, - 600.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 138.80001831054688, - 580.7000122070312, - 538.2000732421875, - 601.0999755859375 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 72.30001831054688, - 594.2999877929688, - 99.30001831054688, - 614.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "W", - "origin": [ - 72.30001831054688, - 600.5999755859375 - ], - "bbox": [ - 72.30001831054688, - 595.8999633789062, - 72.30001831054688, - 613.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?\u00194\u0018w£\u001c©K ", - "origin": [ - 72.30001831054688, - 600.5999755859375 - ], - "bbox": [ - 72.30001831054688, - 594.2999877929688, - 99.30001831054688, - 614.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 594.2999877929688, - 99.30001831054688, - 614.699951171875 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 72.30001831054688, - 613.1000366210938, - 536.3999633789062, - 633.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤\u001e¦ªþ�\u00194¨g\u0018\u001a¤bï\në\nè\nð‰¤7£\u001c©?5RÊ-£\u001c«-©\u000e¥;¯", - "origin": [ - 72.30001831054688, - 619.4000244140625 - ], - "bbox": [ - 72.30001831054688, - 613.1000366210938, - 198.3000030517578, - 633.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 613.1000366210938, - 198.3000030517578, - 633.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "å)5u\u001b76^¤\\5ª\u00194©\u001a¥F\u0019\u001c\u001bu¥\u001a¤b6)5", - "origin": [ - 200.50001525878906, - 619.4000244140625 - ], - "bbox": [ - 200.50001525878906, - 613.1000366210938, - 270.8999938964844, - 633.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 270.8999938964844, - 619.4000244140625 - ], - "bbox": [ - 270.8999938964844, - 613.4000244140625, - 275.5, - 632.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¥F£\u001c©\u001a¦", - "origin": [ - 275.5, - 619.4000244140625 - ], - "bbox": [ - 275.5, - 613.1000366210938, - 297.3999938964844, - 633.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 297.3999938964844, - 619.4000244140625 - ], - "bbox": [ - 297.3999938964844, - 613.4000244140625, - 302.3999938964844, - 632.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¤7£\u001c©?5R5u£\u001c§/5Hß#Ôy\u00194«¬5\u001e£9\u0018/57«-£\u001c©\u001a©F6[ÊY¤", - "origin": [ - 302.3999938964844, - 619.4000244140625 - ], - "bbox": [ - 302.3999938964844, - 613.1000366210938, - 419.0, - 633.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 419.0, - 619.4000244140625 - ], - "bbox": [ - 419.0, - 613.4000244140625, - 423.3999938964844, - 632.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¨#\u00194«Y¤\u001e¦[6[ÊY\u0019#\u0018�6=\u001b7¨g6[5V¤7£\u001c§FÆ96[©?5", - "origin": [ - 423.3999938964844, - 619.4000244140625 - ], - "bbox": [ - 423.3999938964844, - 613.1000366210938, - 536.3999633789062, - 633.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.50001525878906, - 613.1000366210938, - 536.3999633789062, - 633.5 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 72.30001831054688, - 626.7000122070312, - 538.199951171875, - 647.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§Fÿ\u000f©\u001a\u0019aÆ\n«¬Ç?\u0019%5u6[§F\u001bª¤×¥/6M¥F«-¤7\u0018�£?¤�6=\u001bo¥/6H\u0018Fʬ§�¤o¥;¯", - "origin": [ - 72.30001831054688, - 633.0 - ], - "bbox": [ - 72.30001831054688, - 626.7000122070312, - 236.49998474121094, - 647.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 626.7000122070312, - 236.49998474121094, - 647.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©/Ôõ£9\u001b7¨#\u0019%5u«¬£9©\u001a¤ 6)5R\u0019\u001c§/ÿc¨g£4576=§F\u001bª¤o¥/6H\u001b76e¦ªþF6[\u001bª¦ªþF6\u001e¥F6V¨g«-6[§/ÿɦ)«-ÐFʬ6=\u001boÆ\u001c£\u001c57\u001bu6\u001e\u0018\u001a\u0019\u001cÇ\u001c69 ", - "origin": [ - 238.6000213623047, - 633.0 - ], - "bbox": [ - 238.6000213623047, - 626.7000122070312, - 538.199951171875, - 647.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 238.6000213623047, - 626.7000122070312, - 538.199951171875, - 647.0999755859375 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 72.30001831054688, - 658.5, - 147.4000244140625, - 677.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "è*\u0019\r?", - "origin": [ - 72.30001831054688, - 664.5 - ], - "bbox": [ - 72.30001831054688, - 658.5, - 82.9000244140625, - 677.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 658.5, - 82.9000244140625, - 677.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC),+\u0011!#\u001fg\u001d %", - "origin": [ - 103.00001525878906, - 664.5 - ], - "bbox": [ - 103.00001525878906, - 658.5, - 147.4000244140625, - 677.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00001525878906, - 658.5, - 147.4000244140625, - 677.7000122070312 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 72.30001831054688, - 686.7000122070312, - 536.2999877929688, - 707.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6B¦[£\u001c\u001bu\u0018\u001a¤o¥/§…¥/£/¦)§F¨g6[©?5R³\u001e´oµÍ¶ò¤�6=\u001b�5b\u0019g¥/È", - "origin": [ - 72.30001831054688, - 693.0 - ], - "bbox": [ - 72.30001831054688, - 686.7000122070312, - 239.1000213623047, - 707.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 239.1000213623047, - 693.0 - ], - "bbox": [ - 239.1000213623047, - 687.0, - 243.50001525878906, - 706.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«-\u001boÊ-\u0019", - "origin": [ - 243.50001525878906, - 693.0 - ], - "bbox": [ - 243.50001525878906, - 686.7000122070312, - 267.4000244140625, - 707.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "m‡", - "origin": [ - 267.4000244140625, - 693.0 - ], - "bbox": [ - 267.4000244140625, - 687.0, - 275.60003662109375, - 706.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£9©F6B²?§F«K¦)£9©95u«¬6=©?5sÊY\u0019g¥/6=¤u¦)\u001bu«-\u0018/57«-£\u001c©…¥/§Ý¥/£/¦)§F¨g6=©95bÆ\n«Y¤�§�\u00194Ê-«-¤7È\u001c \u001aÓ\u001e¯", - "origin": [ - 275.60003662109375, - 693.0 - ], - "bbox": [ - 275.60003662109375, - 686.7000122070312, - 525.7998657226562, - 707.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 686.7000122070312, - 525.7998657226562, - 707.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5", - "origin": [ - 528.0, - 693.0 - ], - "bbox": [ - 528.0, - 686.7000122070312, - 536.2999877929688, - 707.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 528.0, - 686.7000122070312, - 536.2999877929688, - 707.0999755859375 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 72.19998168945312, - 700.4000244140625, - 519.699951171875, - 720.7999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«Y¦)«m²?§F6HÊ", - "origin": [ - 72.19998168945312, - 706.7000122070312 - ], - "bbox": [ - 72.19998168945312, - 700.4000244140625, - 103.9999771118164, - 720.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19998168945312, - 700.4000244140625, - 103.9999771118164, - 720.7999877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£9©…¥FÈ", - "origin": [ - 109.4999771118164, - 706.7000122070312 - ], - "bbox": [ - 109.4999771118164, - 700.4000244140625, - 128.99998474121094, - 720.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 128.99998474121094, - 706.7000122070312 - ], - "bbox": [ - 128.99998474121094, - 700.7000122070312, - 133.29998779296875, - 719.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«¬5bÊ-6H¦[£\u001c©?576=©\n§‰6[5bÊ-\u0019^\u0018F\u001buÈ=¤76[©?5u\u0019457«-£\u001c©…¥/§Ý¥/£/¦)§F¨g6=©95e /Ë,Ê-§\u001a¤�«-6[§\u001a\u001bu¤o\u0018�\u00194\u001bª\u00194¨gá)5u\u001b76e¤~\u0018w6[§\u001aÆ\u001c6[©?5oå)5u\u001b76", - "origin": [ - 133.29998779296875, - 706.7000122070312 - ], - "bbox": [ - 133.29998779296875, - 700.4000244140625, - 488.79986572265625, - 720.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.4999771118164, - 700.4000244140625, - 488.79986572265625, - 720.7999877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 496.39996337890625, - 706.7000122070312 - ], - "bbox": [ - 496.39996337890625, - 700.7000122070312, - 496.39996337890625, - 719.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/Èe¤B8", - "origin": [ - 496.39996337890625, - 706.7000122070312 - ], - "bbox": [ - 496.39996337890625, - 700.4000244140625, - 519.699951171875, - 720.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 496.39996337890625, - 700.4000244140625, - 519.699951171875, - 720.7999877929688 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 82.09996795654297, - 719.1000366210938, - 538.1998901367188, - 739.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\"Äg ", - "origin": [ - 82.09996795654297, - 725.4000244140625 - ], - "bbox": [ - 82.09996795654297, - 719.4000244140625, - 93.19996643066406, - 738.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�O", - "origin": [ - 93.19996643066406, - 725.4000244140625 - ], - "bbox": [ - 93.19996643066406, - 720.7000122070312, - 97.99996948242188, - 738.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n¼\n»/ºFÆ\nÞ", - "origin": [ - 97.99996948242188, - 725.4000244140625 - ], - "bbox": [ - 97.99996948242188, - 719.4000244140625, - 124.29998016357422, - 738.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 124.29998016357422, - 725.4000244140625 - ], - "bbox": [ - 124.29998016357422, - 720.7000122070312, - 129.79998779296875, - 738.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ò8×Ó~6\u000f\u0018\u001a\u0019\u001c\u001bu\u0019\u001c¨gá)57\u001bu6\u000f\u0018w6[\u001bu¨g6)5#¥/6…¥/£\u001c©F©\u001a6[\u001b^Êô¯", - "origin": [ - 129.79998779296875, - 725.4000244140625 - ], - "bbox": [ - 129.79998779296875, - 719.1000366210938, - 297.29998779296875, - 739.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09996795654297, - 719.1000366210938, - 297.29998779296875, - 739.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c¥/\u001bu6=¤u¤76\u000f¥;¯", - "origin": [ - 299.5999755859375, - 725.4000244140625 - ], - "bbox": [ - 299.5999755859375, - 719.1000366210938, - 340.9999694824219, - 739.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 299.5999755859375, - 719.1000366210938, - 340.9999694824219, - 739.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6É«¬¨#\u00194Ç96‰²?§F«o¤76[\u001buÆ?«-\u001bª\u0019Í¥/6‰Ôõ£\u001c©\u001a¥", - "origin": [ - 343.1999816894531, - 725.4000244140625 - ], - "bbox": [ - 343.1999816894531, - 719.1000366210938, - 472.0000305175781, - 739.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 343.1999816894531, - 719.1000366210938, - 472.0000305175781, - 739.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ßÍÆ\u001c£\u001c57\u001bu6\u000f\u0018\u001a\u0019\u001cÇ\u001c69 ", - "origin": [ - 481.89996337890625, - 725.4000244140625 - ], - "bbox": [ - 481.89996337890625, - 719.1000366210938, - 538.1998901367188, - 739.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.89996337890625, - 719.1000366210938, - 538.1998901367188, - 739.5 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 35.29997634887695, - 595.0, - 55.699974060058594 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 72.29998779296875, - 78.69999694824219, - 90.79998779296875, - 101.0999984741211 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 107.79998779296875, - 78.69999694824219, - 141.99998474121094, - 101.0999984741211 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 105.90000915527344, - 595.0, - 153.60000610351562 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 72.30000305175781, - 163.6999969482422, - 90.50000762939453, - 186.10000610351562 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 107.80000305175781, - 163.6999969482422, - 136.8000030517578, - 186.10000610351562 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 190.90000915527344, - 595.0, - 300.0000305175781 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 443.00006103515625, - 595.0, - 489.9000549316406 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 511.2000732421875, - 595.0, - 780.5 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Þ", - "origin": [ - 72.30000305175781, - 41.5999755859375 - ], - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 72.30000305175781, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E�", - "origin": [ - 72.30000305175781, - 41.5999755859375 - ], - "bbox": [ - 72.30000305175781, - 35.5999755859375, - 78.60000610351562, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×Á‚Ø[—=˜%›œ\u001c—=›˜a¾\u000eš×â-›–Ìš™Kœ\u001c›¼¿¾\n–+—", - "origin": [ - 78.60000610351562, - 41.5999755859375 - ], - "bbox": [ - 78.60000610351562, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 90.79998779296875, - 99.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Þ", - "origin": [ - 72.29998779296875, - 85.0 - ], - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 72.29998779296875, - 99.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E�", - "origin": [ - 72.29998779296875, - 85.0 - ], - "bbox": [ - 72.29998779296875, - 79.0, - 78.59999084472656, - 98.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.59999084472656, - 85.0 - ], - "bbox": [ - 78.59999084472656, - 78.69999694824219, - 81.79998779296875, - 99.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.79998779296875, - 85.0 - ], - "bbox": [ - 81.79998779296875, - 79.0, - 87.59999084472656, - 98.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 87.59999084472656, - 85.0 - ], - "bbox": [ - 87.59999084472656, - 78.69999694824219, - 90.79998779296875, - 99.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 90.79998779296875, - 99.0999984741211 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 107.79998779296875, - 80.69999694824219, - 141.99998474121094, - 101.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè+éaè/ê?ëwì", - "origin": [ - 107.79998779296875, - 87.0 - ], - "bbox": [ - 107.79998779296875, - 80.69999694824219, - 141.99998474121094, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.79998779296875, - 80.69999694824219, - 141.99998474121094, - 101.0999984741211 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.49998474121094, - 105.90000915527344, - 536.2999877929688, - 126.30001068115234 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6צªþ\u001a\u0019\u001c¨g\u0018M¤�6=\u001b�5ßR¥/£\u001c©F©\u001a6[\u001bm§\u001a©H57«¬57\u001bu6~¦)£9þFÈ[\u001bu6[©?5mßoÆ9£45u\u001b76", - "origin": [ - 72.49998474121094, - 112.20001220703125 - ], - "bbox": [ - 72.49998474121094, - 105.90000915527344, - 273.8999328613281, - 126.30001068115234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49998474121094, - 105.90000915527344, - 273.8999328613281, - 126.30001068115234 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001cÇ\u001c6", - "origin": [ - 280.5, - 112.20001220703125 - ], - "bbox": [ - 280.5, - 105.90000915527344, - 296.1000061035156, - 126.30001068115234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�T", - "origin": [ - 296.1000061035156, - 112.20001220703125 - ], - "bbox": [ - 296.1000061035156, - 106.20001220703125, - 303.5, - 125.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô\u00194§/5u\u001b76~²9§m¯", - "origin": [ - 303.5, - 112.20001220703125 - ], - "bbox": [ - 303.5, - 105.90000915527344, - 343.1999816894531, - 126.30001068115234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.5, - 105.90000915527344, - 343.1999816894531, - 126.30001068115234 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©B©\u001a£\u001c¨à¥/6", - "origin": [ - 345.29998779296875, - 112.20001220703125 - ], - "bbox": [ - 345.29998779296875, - 105.90000915527344, - 385.39996337890625, - 126.30001068115234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001a�", - "origin": [ - 385.39996337890625, - 112.20001220703125 - ], - "bbox": [ - 385.39996337890625, - 106.20001220703125, - 391.9999694824219, - 125.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþ\u001a«¬6=\u001b", - "origin": [ - 391.9999694824219, - 112.20001220703125 - ], - "bbox": [ - 391.9999694824219, - 105.90000915527344, - 414.6000061035156, - 126.30001068115234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×X", - "origin": [ - 414.6000061035156, - 112.20001220703125 - ], - "bbox": [ - 414.6000061035156, - 106.20001220703125, - 418.70001220703125, - 125.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") aÓ~6צªþ\u001a\u0019\u001c¨g\u0018M¤�6=\u001b�5m©\u001a£45u\u0019\u001c¨g¨^6=©?5", - "origin": [ - 418.70001220703125, - 112.20001220703125 - ], - "bbox": [ - 418.70001220703125, - 105.90000915527344, - 536.2999877929688, - 126.30001068115234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 345.29998779296875, - 105.90000915527344, - 536.2999877929688, - 126.30001068115234 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 72.29998779296875, - 119.49998474121094, - 537.4000854492188, - 139.89999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ß^©F£\u001c¨g¨g6[\u001bRÊ-\u0019!Ôõ6[©\u001aå)57\u001bu6M¥/§…©\u001a\u0019aÆ\n«-Ç9\u0019%5u6[§F\u001bo¥F\u0019\u001c©\u001a¤sÊY\u0019\u001c²?§F6[Ê-Ê-6H\u0019\u001c\u0018F\u0018\u001a\u0019\u001c\u001bu\u0019", - "origin": [ - 72.29998779296875, - 125.79998779296875 - ], - "bbox": [ - 72.29998779296875, - 119.49998474121094, - 311.8000183105469, - 139.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001c", - "origin": [ - 311.8000183105469, - 125.79998779296875 - ], - "bbox": [ - 311.8000183105469, - 121.09999084472656, - 316.6000061035156, - 138.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-5oÊY\u0019!\u0018�\u00194Ç\u001c6H£9§‰6=©\u001a¦)£9\u001b76Bßg¥/£\u001c©\u001a©F6[\u001bo§F©…©F£9¨Œ\u0019\u001c§…¤7«-Ç\u001c©F6[5o²?§F«", - "origin": [ - 316.6000061035156, - 125.79998779296875 - ], - "bbox": [ - 316.6000061035156, - 119.49998474121094, - 537.4000854492188, - 139.89999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 119.49998474121094, - 537.4000854492188, - 139.89999389648438 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 72.19998931884766, - 133.1999969482422, - 233.0, - 153.60000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5R¦)\u001buÈ[6VÊ-£\u001c\u001bª¤7²?§K¯", - "origin": [ - 72.19998931884766, - 139.5 - ], - "bbox": [ - 72.19998931884766, - 133.1999969482422, - 135.3000030517578, - 153.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19998931884766, - 133.1999969482422, - 135.3000030517578, - 153.60000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©‰¨g\u0019\u001c\u001bu²?§F6HÆ9£457\u001bu6V\u0018\u001a\u00194Ç96\u001c ", - "origin": [ - 137.5, - 139.5 - ], - "bbox": [ - 137.5, - 133.1999969482422, - 233.0, - 153.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 137.5, - 133.1999969482422, - 233.0, - 153.60000610351562 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 242.0, - 133.1999969482422, - 444.3999328613281, - 153.60000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊKÆ%\u00194§F5b¨^«-6[§Fÿ‰¥/£\u001c©\u001a©F6[\u001bo§F©É5u«z5u\u001b76M¦[£\u001c§F\u001b75o6)5b6)ÿ/\u0018FÊ-«Y¦)«¬576\u001c ", - "origin": [ - 242.0, - 139.5 - ], - "bbox": [ - 242.0, - 133.1999969482422, - 444.3999328613281, - 153.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 242.0, - 133.1999969482422, - 444.3999328613281, - 153.60000610351562 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.30000305175781, - 163.6999969482422, - 90.50000762939453, - 184.10000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Þ", - "origin": [ - 72.30000305175781, - 170.0 - ], - "bbox": [ - 72.30000305175781, - 163.6999969482422, - 72.30000305175781, - 184.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E�", - "origin": [ - 72.30000305175781, - 170.0 - ], - "bbox": [ - 72.30000305175781, - 164.0, - 78.60000610351562, - 183.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.60000610351562, - 170.0 - ], - "bbox": [ - 78.60000610351562, - 163.6999969482422, - 81.80000305175781, - 184.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.80000305175781, - 170.0 - ], - "bbox": [ - 81.80000305175781, - 164.0, - 87.60000610351562, - 183.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "YŸ", - "origin": [ - 87.60000610351562, - 170.0 - ], - "bbox": [ - 87.60000610351562, - 163.6999969482422, - 90.50000762939453, - 184.10000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 163.6999969482422, - 90.50000762939453, - 184.10000610351562 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 107.80000305175781, - 165.6999969482422, - 136.8000030517578, - 186.10000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoï\në\nè\nð+ì", - "origin": [ - 107.80000305175781, - 172.0 - ], - "bbox": [ - 107.80000305175781, - 165.6999969482422, - 136.8000030517578, - 186.10000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.80000305175781, - 165.6999969482422, - 136.8000030517578, - 186.10000610351562 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 72.30000305175781, - 190.90000915527344, - 535.9999389648438, - 211.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6V¦ªþ\u001a\u00194¨g\u0018\u001a¤\u001eçoï\në\nè?ð+ìã\u001b76=Ç\u001c\u001bu£\u001c§F\u0018w6b¥/6e¤~«-©/Ôõ£9\u001b7¨#\u0019%5u«¬£9©\u001a¤×¤7§F\u001b Æ\u001c£\u001c57\u001bu6R¥/£/¦)§F¨g6=©95 ¨#\u00194«Y¤~²?§F«+©K¯", - "origin": [ - 72.30000305175781, - 197.20001220703125 - ], - "bbox": [ - 72.30000305175781, - 190.90000915527344, - 409.49993896484375, - 211.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 190.90000915527344, - 409.49993896484375, - 211.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ø#\u00194\u0018F\u0018\u001a\u0019\u001c\u001bu\u0019", - "origin": [ - 411.70001220703125, - 197.20001220703125 - ], - "bbox": [ - 411.70001220703125, - 190.90000915527344, - 445.1000061035156, - 211.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001c", - "origin": [ - 445.1000061035156, - 197.20001220703125 - ], - "bbox": [ - 445.1000061035156, - 192.50001525878906, - 449.8999938964844, - 210.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-5~\u0018\u001a\u0019\u001c¤= /Ó~6=Ê-\u0019¸\u001b76=Ç\u001c\u001bu£\u001c§F\u0018w6", - "origin": [ - 449.8999938964844, - 197.20001220703125 - ], - "bbox": [ - 449.8999938964844, - 190.90000915527344, - 535.9999389648438, - 211.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.70001220703125, - 190.90000915527344, - 535.9999389648438, - 211.30001831054688 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 72.10000610351562, - 204.6000213623047, - 514.5, - 225.00003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "57£9§/576e¤s«¬©FÔõ£\u001c\u001bu¨g\u0019457«-£\u001c©\u001a¤s§F57«-ʬ6e¤b\u00194§/ÿ‰¨^£\u001c576=§F\u001bu¤o¥F6V\u001bu6=¦ªþ\u001a6[\u001bª¦ªþF6=¤", - "origin": [ - 72.10000610351562, - 210.9000244140625 - ], - "bbox": [ - 72.10000610351562, - 204.6000213623047, - 298.0, - 225.00003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 298.0, - 210.9000244140625 - ], - "bbox": [ - 298.0, - 204.9000244140625, - 302.5, - 224.1000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/\u00194§/ÿ\u000f©�\u0019aÆ?«-Ç9\u00194576=§F\u001bu¤~£\u001c§Ý\u0019\u001c§/ÿ‰\u0019\u001c¥F¨^«-©F«Y¤\\5u\u001bu\u00194576=§F\u001bu¤s¥/§Ý¤7«z5u6\u001c ", - "origin": [ - 302.5, - 210.9000244140625 - ], - "bbox": [ - 302.5, - 204.6000213623047, - 514.5, - 225.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.10000610351562, - 204.6000213623047, - 514.5, - 225.00003051757812 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.50000762939453, - 223.30003356933594, - 535.7999877929688, - 243.70004272460938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó\u001e¯", - "origin": [ - 72.50000762939453, - 229.60003662109375 - ], - "bbox": [ - 72.50000762939453, - 223.30003356933594, - 80.00000762939453, - 243.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50000762939453, - 223.30003356933594, - 80.00000762939453, - 243.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5,§F©F6oÐ\u001a\u0019\u001cʬ«Y¤�6s\u0018w£\u001c©\u001a¦)57§F6=ʬÊ-6", - "origin": [ - 82.20000457763672, - 229.60003662109375 - ], - "bbox": [ - 82.20000457763672, - 223.30003356933594, - 182.60000610351562, - 243.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "DC", - "origin": [ - 182.60000610351562, - 229.60003662109375 - ], - "bbox": [ - 182.60000610351562, - 224.90003967285156, - 189.3000030517578, - 242.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4Ê-6=¤i«-©/Ôõ£9\u001b7¨#\u0019%5u«¬£9©\u001a¤", - "origin": [ - 189.3000030517578, - 229.60003662109375 - ], - "bbox": [ - 189.3000030517578, - 223.30003356933594, - 258.8999938964844, - 243.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20000457763672, - 223.30003356933594, - 258.8999938964844, - 243.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "²?§K¯", - "origin": [ - 265.5, - 229.60003662109375 - ], - "bbox": [ - 265.5, - 223.30003356933594, - 276.8000183105469, - 243.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 265.5, - 223.30003356933594, - 276.8000183105469, - 243.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[Ê-ʬ6oÆ9È[þF«Y¦)§FÊ-6o¤�£9©?5i\u0018�\u0019\u001c¤u¤�È=6=¤6[©g\u0018\u001a\u0019\u001c\u001bu\u0019\u001c¨^á[57\u001bu6=¤= ", - "origin": [ - 279.0, - 229.60003662109375 - ], - "bbox": [ - 279.0, - 223.30003356933594, - 450.0999755859375, - 243.70004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Y_", - "origin": [ - 450.0999755859375, - 229.60003662109375 - ], - "bbox": [ - 450.0999755859375, - 223.60003662109375, - 454.79998779296875, - 242.80003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",ʬÊ-6R¤=¯", - "origin": [ - 454.79998779296875, - 229.60003662109375 - ], - "bbox": [ - 454.79998779296875, - 223.30003356933594, - 478.8999938964844, - 243.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 279.0, - 223.30003356933594, - 478.8999938964844, - 243.70004272460938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F57«-ʬ«Y¤�6o¦[£\u001c¨g¨g6", - "origin": [ - 481.0, - 229.60003662109375 - ], - "bbox": [ - 481.0, - 223.30003356933594, - 535.7999877929688, - 243.70004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.0, - 223.30003356933594, - 535.7999877929688, - 243.70004272460938 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.29998779296875, - 237.0000457763672, - 336.7999572753906, - 257.4000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7§F«z5M8mçoï?ë\nè\nð", - "origin": [ - 72.29998779296875, - 243.300048828125 - ], - "bbox": [ - 72.29998779296875, - 237.0000457763672, - 121.39998626708984, - 257.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 237.0000457763672, - 121.39998626708984, - 257.4000549316406 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgÄYÀ�ß", - "origin": [ - 131.49998474121094, - 243.300048828125 - ], - "bbox": [ - 131.49998474121094, - 237.300048828125, - 147.59999084472656, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%$", - "origin": [ - 147.59999084472656, - 243.300048828125 - ], - "bbox": [ - 147.59999084472656, - 238.6000518798828, - 158.79998779296875, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "vÞgºcÀ", - "origin": [ - 158.79998779296875, - 243.300048828125 - ], - "bbox": [ - 158.79998779296875, - 237.300048828125, - 173.39999389648438, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "E$", - "origin": [ - 173.39999389648438, - 243.300048828125 - ], - "bbox": [ - 173.39999389648438, - 238.6000518798828, - 179.89999389648438, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÕÁHÄ|Þ/¼", - "origin": [ - 179.89999389648438, - 243.300048828125 - ], - "bbox": [ - 179.89999389648438, - 237.300048828125, - 204.8999786376953, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 204.8999786376953, - 243.300048828125 - ], - "bbox": [ - 204.8999786376953, - 238.6000518798828, - 216.2999725341797, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "IÁŠÄFÞ/¼HÆgß", - "origin": [ - 216.2999725341797, - 243.300048828125 - ], - "bbox": [ - 216.2999725341797, - 237.300048828125, - 247.3999786376953, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F$", - "origin": [ - 247.3999786376953, - 243.300048828125 - ], - "bbox": [ - 247.3999786376953, - 238.6000518798828, - 253.19998168945312, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "r Fº|Þ/Ÿ\"ßFÞ/Ÿ", - "origin": [ - 253.19998168945312, - 243.300048828125 - ], - "bbox": [ - 253.19998168945312, - 237.300048828125, - 293.9999694824219, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$", - "origin": [ - 293.9999694824219, - 243.300048828125 - ], - "bbox": [ - 293.9999694824219, - 238.6000518798828, - 305.2999572753906, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠžcÞ\"à\nº", - "origin": [ - 305.2999572753906, - 243.300048828125 - ], - "bbox": [ - 305.2999572753906, - 237.300048828125, - 325.7999572753906, - 256.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 325.7999572753906, - 243.300048828125 - ], - "bbox": [ - 325.7999572753906, - 238.6000518798828, - 331.699951171875, - 256.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 331.699951171875, - 243.300048828125 - ], - "bbox": [ - 331.699951171875, - 237.0000457763672, - 336.7999572753906, - 257.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.49998474121094, - 237.0000457763672, - 336.7999572753906, - 257.4000549316406 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 78.79998016357422, - 255.70005798339844, - 129.8999786376953, - 276.1000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79998016357422, - 262.00006103515625 - ], - "bbox": [ - 78.79998016357422, - 255.70005798339844, - 129.8999786376953, - 276.1000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79998016357422, - 255.70005798339844, - 129.8999786376953, - 276.1000671386719 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 77.80000305175781, - 279.60003662109375, - 104.20000457763672, - 300.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 77.80000305175781, - 285.9000244140625 - ], - "bbox": [ - 77.80000305175781, - 279.9000244140625, - 77.80000305175781, - 299.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 77.80000305175781, - 285.9000244140625 - ], - "bbox": [ - 77.80000305175781, - 281.20001220703125, - 82.80000305175781, - 299.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è\nï/ê", - "origin": [ - 82.80000305175781, - 285.9000244140625 - ], - "bbox": [ - 82.80000305175781, - 279.60003662109375, - 98.70000457763672, - 300.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 98.70000457763672, - 285.9000244140625 - ], - "bbox": [ - 98.70000457763672, - 279.9000244140625, - 104.20000457763672, - 299.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.80000305175781, - 279.60003662109375, - 104.20000457763672, - 300.0000305175781 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 93.4000015258789, - 293.10003662109375, - 119.80000305175781, - 313.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 299.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 293.4000244140625, - 93.4000015258789, - 312.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 93.4000015258789, - 299.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 294.70001220703125, - 98.4000015258789, - 312.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ë\nð", - "origin": [ - 98.4000015258789, - 299.4000244140625 - ], - "bbox": [ - 98.4000015258789, - 293.10003662109375, - 108.9000015258789, - 313.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 108.9000015258789, - 299.4000244140625 - ], - "bbox": [ - 108.9000015258789, - 294.70001220703125, - 114.20000457763672, - 312.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.20000457763672, - 299.4000244140625 - ], - "bbox": [ - 114.20000457763672, - 293.4000244140625, - 119.80000305175781, - 312.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 293.10003662109375, - 119.80000305175781, - 313.5000305175781 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 93.4000015258789, - 306.800048828125, - 308.1999816894531, - 327.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 313.10003662109375 - ], - "bbox": [ - 93.4000015258789, - 307.10003662109375, - 93.4000015258789, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï?ë\nè\nð", - "origin": [ - 93.4000015258789, - 313.10003662109375 - ], - "bbox": [ - 93.4000015258789, - 306.800048828125, - 114.20000457763672, - 327.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÞgÄYÀ\u0011ß", - "origin": [ - 114.20000457763672, - 313.10003662109375 - ], - "bbox": [ - 114.20000457763672, - 307.10003662109375, - 140.60000610351562, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$", - "origin": [ - 140.60000610351562, - 313.10003662109375 - ], - "bbox": [ - 140.60000610351562, - 308.4000244140625, - 151.70001220703125, - 326.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=ð", - "origin": [ - 151.70001220703125, - 313.10003662109375 - ], - "bbox": [ - 151.70001220703125, - 306.800048828125, - 156.20001220703125, - 327.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÆ/ŸŠ¡gºŠ»", - "origin": [ - 156.20001220703125, - 313.10003662109375 - ], - "bbox": [ - 156.20001220703125, - 307.10003662109375, - 182.6000213623047, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 182.6000213623047, - 313.10003662109375 - ], - "bbox": [ - 182.6000213623047, - 308.4000244140625, - 188.7000274658203, - 326.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Õ FºFÞ/Ÿ/ßFÞ/Ÿ", - "origin": [ - 188.7000274658203, - 313.10003662109375 - ], - "bbox": [ - 188.7000274658203, - 307.10003662109375, - 229.40000915527344, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$\fH", - "origin": [ - 229.40000915527344, - 313.10003662109375 - ], - "bbox": [ - 229.40000915527344, - 308.4000244140625, - 245.5, - 326.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hß\nÄFÞ", - "origin": [ - 245.5, - 313.10003662109375 - ], - "bbox": [ - 245.5, - 307.10003662109375, - 261.0, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "I:", - "origin": [ - 261.0, - 313.10003662109375 - ], - "bbox": [ - 261.0, - 308.4000244140625, - 270.8999938964844, - 326.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÆ\n´gº|Þ/Ÿ", - "origin": [ - 270.8999938964844, - 313.10003662109375 - ], - "bbox": [ - 270.8999938964844, - 307.10003662109375, - 297.29998779296875, - 326.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 297.29998779296875, - 313.10003662109375 - ], - "bbox": [ - 297.29998779296875, - 308.4000244140625, - 303.3999938964844, - 326.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 303.3999938964844, - 313.10003662109375 - ], - "bbox": [ - 303.3999938964844, - 307.10003662109375, - 308.1999816894531, - 326.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 306.800048828125, - 308.1999816894531, - 327.2000427246094 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 93.4000015258789, - 320.4000244140625, - 371.2999572753906, - 340.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 326.70001220703125 - ], - "bbox": [ - 93.4000015258789, - 320.70001220703125, - 93.4000015258789, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï?ë\nè\nð", - "origin": [ - 93.4000015258789, - 326.70001220703125 - ], - "bbox": [ - 93.4000015258789, - 320.4000244140625, - 114.20000457763672, - 340.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÞgÄYÀ\u0011ß", - "origin": [ - 114.20000457763672, - 326.70001220703125 - ], - "bbox": [ - 114.20000457763672, - 320.70001220703125, - 140.60000610351562, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$\u000e:", - "origin": [ - 140.60000610351562, - 326.70001220703125 - ], - "bbox": [ - 140.60000610351562, - 322.0, - 156.20001220703125, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ĊŸ/ß", - "origin": [ - 156.20001220703125, - 326.70001220703125 - ], - "bbox": [ - 156.20001220703125, - 320.70001220703125, - 172.20001220703125, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 172.20001220703125, - 326.70001220703125 - ], - "bbox": [ - 172.20001220703125, - 322.0, - 178.10000610351562, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "• Fº|Þ/Ÿ\"ßFÞ/Ÿ", - "origin": [ - 178.10000610351562, - 326.70001220703125 - ], - "bbox": [ - 178.10000610351562, - 320.70001220703125, - 218.99998474121094, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$-/\fJ-J", - "origin": [ - 218.99998474121094, - 326.70001220703125 - ], - "bbox": [ - 218.99998474121094, - 322.0, - 245.59999084472656, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÂ\u0011¿", - "origin": [ - 245.59999084472656, - 326.70001220703125 - ], - "bbox": [ - 245.59999084472656, - 320.70001220703125, - 256.5, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e/#/", - "origin": [ - 256.5, - 326.70001220703125 - ], - "bbox": [ - 256.5, - 322.0, - 267.20001220703125, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F¿IÃ", - "origin": [ - 267.20001220703125, - 326.70001220703125 - ], - "bbox": [ - 267.20001220703125, - 320.70001220703125, - 277.0, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-K", - "origin": [ - 277.0, - 326.70001220703125 - ], - "bbox": [ - 277.0, - 322.0, - 282.29998779296875, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9è", - "origin": [ - 282.29998779296875, - 326.70001220703125 - ], - "bbox": [ - 282.29998779296875, - 320.4000244140625, - 287.3999938964844, - 340.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃ", - "origin": [ - 287.3999938964844, - 326.70001220703125 - ], - "bbox": [ - 287.3999938964844, - 320.70001220703125, - 292.6999816894531, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-L", - "origin": [ - 292.6999816894531, - 326.70001220703125 - ], - "bbox": [ - 292.6999816894531, - 322.0, - 297.9999694824219, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "#µ¸Â", - "origin": [ - 297.9999694824219, - 326.70001220703125 - ], - "bbox": [ - 297.9999694824219, - 320.70001220703125, - 308.1999816894531, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1J", - "origin": [ - 308.1999816894531, - 326.70001220703125 - ], - "bbox": [ - 308.1999816894531, - 322.0, - 313.5999755859375, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&µ\u001b¹", - "origin": [ - 313.5999755859375, - 326.70001220703125 - ], - "bbox": [ - 313.5999755859375, - 320.70001220703125, - 324.199951171875, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@M#N", - "origin": [ - 324.199951171875, - 326.70001220703125 - ], - "bbox": [ - 324.199951171875, - 322.0, - 334.4999694824219, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃHÃ&µ;Ã\nÃ", - "origin": [ - 334.4999694824219, - 326.70001220703125 - ], - "bbox": [ - 334.4999694824219, - 320.70001220703125, - 360.7999572753906, - 339.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A$", - "origin": [ - 360.7999572753906, - 326.70001220703125 - ], - "bbox": [ - 360.7999572753906, - 322.0, - 366.4999694824219, - 339.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 366.4999694824219, - 326.70001220703125 - ], - "bbox": [ - 366.4999694824219, - 320.70001220703125, - 371.2999572753906, - 339.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 320.4000244140625, - 371.2999572753906, - 340.8000183105469 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 93.4000015258789, - 334.10003662109375, - 267.0000305175781, - 354.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 340.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 334.4000244140625, - 93.4000015258789, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï?ë\nè\nð", - "origin": [ - 93.4000015258789, - 340.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 334.10003662109375, - 114.20000457763672, - 354.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÞgÄYÀ\u0011ß", - "origin": [ - 114.20000457763672, - 340.4000244140625 - ], - "bbox": [ - 114.20000457763672, - 334.4000244140625, - 140.60000610351562, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$\u000eO", - "origin": [ - 140.60000610351562, - 340.4000244140625 - ], - "bbox": [ - 140.60000610351562, - 335.70001220703125, - 156.20001220703125, - 353.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ߊ㊶gºŠ»", - "origin": [ - 156.20001220703125, - 340.4000244140625 - ], - "bbox": [ - 156.20001220703125, - 334.4000244140625, - 182.60003662109375, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 182.60003662109375, - 340.4000244140625 - ], - "bbox": [ - 182.60003662109375, - 335.70001220703125, - 188.00003051757812, - 353.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fá", - "origin": [ - 188.00003051757812, - 340.4000244140625 - ], - "bbox": [ - 188.00003051757812, - 334.4000244140625, - 193.7000274658203, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e$", - "origin": [ - 193.7000274658203, - 340.4000244140625 - ], - "bbox": [ - 193.7000274658203, - 335.70001220703125, - 199.2000274658203, - 353.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÈÁŠÄFÞ/¼", - "origin": [ - 199.2000274658203, - 340.4000244140625 - ], - "bbox": [ - 199.2000274658203, - 334.4000244140625, - 224.00003051757812, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 224.00003051757812, - 340.4000244140625 - ], - "bbox": [ - 224.00003051757812, - 335.70001220703125, - 235.4000244140625, - 353.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cßFÞ.¿cÆ\u0011á", - "origin": [ - 235.4000244140625, - 340.4000244140625 - ], - "bbox": [ - 235.4000244140625, - 334.4000244140625, - 261.5000305175781, - 353.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e$", - "origin": [ - 261.5000305175781, - 340.4000244140625 - ], - "bbox": [ - 261.5000305175781, - 335.70001220703125, - 267.0000305175781, - 353.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 334.10003662109375, - 267.0000305175781, - 354.5000305175781 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 135.5, - 347.9000244140625, - 302.89996337890625, - 367.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºFÞ/Ÿ\"ßFÞ\nŸ", - "origin": [ - 135.5, - 353.9000244140625 - ], - "bbox": [ - 135.5, - 347.9000244140625, - 166.59999084472656, - 367.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 166.59999084472656, - 353.9000244140625 - ], - "bbox": [ - 166.59999084472656, - 349.20001220703125, - 177.99998474121094, - 367.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\â\"Ä\" FĊŸ\u0011ž|ºIÞ", - "origin": [ - 177.99998474121094, - 353.9000244140625 - ], - "bbox": [ - 177.99998474121094, - 347.9000244140625, - 219.19998168945312, - 367.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001bPQH", - "origin": [ - 219.19998168945312, - 353.9000244140625 - ], - "bbox": [ - 219.19998168945312, - 349.20001220703125, - 234.5999755859375, - 367.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÄF´gÄ|Þ", - "origin": [ - 234.5999755859375, - 353.9000244140625 - ], - "bbox": [ - 234.5999755859375, - 347.9000244140625, - 255.2999725341797, - 367.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001bPR;", - "origin": [ - 255.2999725341797, - 353.9000244140625 - ], - "bbox": [ - 255.2999725341797, - 349.20001220703125, - 271.1999816894531, - 367.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"áFÄ", - "origin": [ - 271.1999816894531, - 353.9000244140625 - ], - "bbox": [ - 271.1999816894531, - 347.9000244140625, - 281.6999816894531, - 367.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@O", - "origin": [ - 281.6999816894531, - 353.9000244140625 - ], - "bbox": [ - 281.6999816894531, - 349.20001220703125, - 286.79998779296875, - 367.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ä", - "origin": [ - 286.79998779296875, - 353.9000244140625 - ], - "bbox": [ - 286.79998779296875, - 347.9000244140625, - 292.1999816894531, - 367.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 292.1999816894531, - 353.9000244140625 - ], - "bbox": [ - 292.1999816894531, - 349.20001220703125, - 298.0999755859375, - 367.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 298.0999755859375, - 353.9000244140625 - ], - "bbox": [ - 298.0999755859375, - 347.9000244140625, - 302.89996337890625, - 367.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.5, - 347.9000244140625, - 302.89996337890625, - 367.10003662109375 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 93.39999389648438, - 361.300048828125, - 251.20001220703125, - 381.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.39999389648438, - 367.60003662109375 - ], - "bbox": [ - 93.39999389648438, - 361.60003662109375, - 93.39999389648438, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï?ë\nè\nð", - "origin": [ - 93.39999389648438, - 367.60003662109375 - ], - "bbox": [ - 93.39999389648438, - 361.300048828125, - 114.19999694824219, - 381.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÞgÄYÀ\u0011ß", - "origin": [ - 114.19999694824219, - 367.60003662109375 - ], - "bbox": [ - 114.19999694824219, - 361.60003662109375, - 140.59999084472656, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$\u000eO", - "origin": [ - 140.59999084472656, - 367.60003662109375 - ], - "bbox": [ - 140.59999084472656, - 362.9000244140625, - 156.1999969482422, - 380.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ߊ㊶gºŠ»", - "origin": [ - 156.1999969482422, - 367.60003662109375 - ], - "bbox": [ - 156.1999969482422, - 361.60003662109375, - 182.6000213623047, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 182.6000213623047, - 367.60003662109375 - ], - "bbox": [ - 182.6000213623047, - 362.9000244140625, - 188.00001525878906, - 380.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fá", - "origin": [ - 188.00001525878906, - 367.60003662109375 - ], - "bbox": [ - 188.00001525878906, - 361.60003662109375, - 193.70001220703125, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e$", - "origin": [ - 193.70001220703125, - 367.60003662109375 - ], - "bbox": [ - 193.70001220703125, - 362.9000244140625, - 199.20001220703125, - 380.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÈÁŠÄFÞ/¼", - "origin": [ - 199.20001220703125, - 367.60003662109375 - ], - "bbox": [ - 199.20001220703125, - 361.60003662109375, - 224.00001525878906, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 224.00001525878906, - 367.60003662109375 - ], - "bbox": [ - 224.00001525878906, - 362.9000244140625, - 235.40000915527344, - 380.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cßFÞ", - "origin": [ - 235.40000915527344, - 367.60003662109375 - ], - "bbox": [ - 235.40000915527344, - 361.60003662109375, - 245.00001525878906, - 380.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S$", - "origin": [ - 245.00001525878906, - 367.60003662109375 - ], - "bbox": [ - 245.00001525878906, - 362.9000244140625, - 251.20001220703125, - 380.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 361.300048828125, - 251.20001220703125, - 381.7000427246094 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 135.5, - 375.300048828125, - 297.5999755859375, - 394.50006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºFÞ/Ÿ\"ßFÞ\nŸ", - "origin": [ - 135.5, - 381.300048828125 - ], - "bbox": [ - 135.5, - 375.300048828125, - 166.59999084472656, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 166.59999084472656, - 381.300048828125 - ], - "bbox": [ - 166.59999084472656, - 376.60003662109375, - 177.99998474121094, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v¡gº\nÁgž", - "origin": [ - 177.99998474121094, - 381.300048828125 - ], - "bbox": [ - 177.99998474121094, - 375.300048828125, - 198.89999389648438, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 198.89999389648438, - 381.300048828125 - ], - "bbox": [ - 198.89999389648438, - 376.60003662109375, - 203.6999969482422, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ċã", - "origin": [ - 203.6999969482422, - 381.300048828125 - ], - "bbox": [ - 203.6999969482422, - 375.300048828125, - 214.1999969482422, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "TPQH", - "origin": [ - 214.1999969482422, - 381.300048828125 - ], - "bbox": [ - 214.1999969482422, - 376.60003662109375, - 229.3000030517578, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÄF´gÄFÞ", - "origin": [ - 229.3000030517578, - 381.300048828125 - ], - "bbox": [ - 229.3000030517578, - 375.300048828125, - 250.10000610351562, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�PR;", - "origin": [ - 250.10000610351562, - 381.300048828125 - ], - "bbox": [ - 250.10000610351562, - 376.60003662109375, - 265.8999938964844, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"áFÄ", - "origin": [ - 265.8999938964844, - 381.300048828125 - ], - "bbox": [ - 265.8999938964844, - 375.300048828125, - 276.3999938964844, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@O", - "origin": [ - 276.3999938964844, - 381.300048828125 - ], - "bbox": [ - 276.3999938964844, - 376.60003662109375, - 281.5, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ä", - "origin": [ - 281.5, - 381.300048828125 - ], - "bbox": [ - 281.5, - 375.300048828125, - 287.0, - 394.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F$", - "origin": [ - 287.0, - 381.300048828125 - ], - "bbox": [ - 287.0, - 376.60003662109375, - 292.79998779296875, - 394.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 292.79998779296875, - 381.300048828125 - ], - "bbox": [ - 292.79998779296875, - 375.300048828125, - 297.5999755859375, - 394.50006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.5, - 375.300048828125, - 297.5999755859375, - 394.50006103515625 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 93.39999389648438, - 388.50006103515625, - 251.20001220703125, - 408.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.39999389648438, - 394.800048828125 - ], - "bbox": [ - 93.39999389648438, - 388.800048828125, - 93.39999389648438, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï?ë\nè\nð", - "origin": [ - 93.39999389648438, - 394.800048828125 - ], - "bbox": [ - 93.39999389648438, - 388.50006103515625, - 114.19999694824219, - 408.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÞgÄYÀ\u0011ß", - "origin": [ - 114.19999694824219, - 394.800048828125 - ], - "bbox": [ - 114.19999694824219, - 388.800048828125, - 140.59999084472656, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$\u000eO", - "origin": [ - 140.59999084472656, - 394.800048828125 - ], - "bbox": [ - 140.59999084472656, - 390.10003662109375, - 156.1999969482422, - 407.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ߊ㊶gºŠ»", - "origin": [ - 156.1999969482422, - 394.800048828125 - ], - "bbox": [ - 156.1999969482422, - 388.800048828125, - 182.6000213623047, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 182.6000213623047, - 394.800048828125 - ], - "bbox": [ - 182.6000213623047, - 390.10003662109375, - 188.00001525878906, - 407.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fá", - "origin": [ - 188.00001525878906, - 394.800048828125 - ], - "bbox": [ - 188.00001525878906, - 388.800048828125, - 193.70001220703125, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e$", - "origin": [ - 193.70001220703125, - 394.800048828125 - ], - "bbox": [ - 193.70001220703125, - 390.10003662109375, - 199.20001220703125, - 407.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÈÁŠÄFÞ/¼", - "origin": [ - 199.20001220703125, - 394.800048828125 - ], - "bbox": [ - 199.20001220703125, - 388.800048828125, - 224.00001525878906, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 224.00001525878906, - 394.800048828125 - ], - "bbox": [ - 224.00001525878906, - 390.10003662109375, - 235.40000915527344, - 407.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\àH»", - "origin": [ - 235.40000915527344, - 394.800048828125 - ], - "bbox": [ - 235.40000915527344, - 388.800048828125, - 245.10000610351562, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 245.10000610351562, - 394.800048828125 - ], - "bbox": [ - 245.10000610351562, - 390.10003662109375, - 251.20001220703125, - 407.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 388.50006103515625, - 251.20001220703125, - 408.9000549316406 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 135.5, - 402.50006103515625, - 302.89996337890625, - 421.7000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºFÞ/Ÿ\"ßFÞ\nŸ", - "origin": [ - 135.5, - 408.50006103515625 - ], - "bbox": [ - 135.5, - 402.50006103515625, - 166.59999084472656, - 421.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 166.59999084472656, - 408.50006103515625 - ], - "bbox": [ - 166.59999084472656, - 403.800048828125, - 177.99998474121094, - 421.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\â\"Ä\" FÄFÞ\u0011 Fß/á", - "origin": [ - 177.99998474121094, - 408.50006103515625 - ], - "bbox": [ - 177.99998474121094, - 402.50006103515625, - 219.7999725341797, - 421.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "UPQH", - "origin": [ - 219.7999725341797, - 408.50006103515625 - ], - "bbox": [ - 219.7999725341797, - 403.800048828125, - 234.5999755859375, - 421.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÄF´gº|Þ", - "origin": [ - 234.5999755859375, - 408.50006103515625 - ], - "bbox": [ - 234.5999755859375, - 402.50006103515625, - 255.2999725341797, - 421.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001bPR;", - "origin": [ - 255.2999725341797, - 408.50006103515625 - ], - "bbox": [ - 255.2999725341797, - 403.800048828125, - 271.1999816894531, - 421.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"áFÄ", - "origin": [ - 271.1999816894531, - 408.50006103515625 - ], - "bbox": [ - 271.1999816894531, - 402.50006103515625, - 281.6999816894531, - 421.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@O", - "origin": [ - 281.6999816894531, - 408.50006103515625 - ], - "bbox": [ - 281.6999816894531, - 403.800048828125, - 286.79998779296875, - 421.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ä", - "origin": [ - 286.79998779296875, - 408.50006103515625 - ], - "bbox": [ - 286.79998779296875, - 402.50006103515625, - 292.1999816894531, - 421.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 292.1999816894531, - 408.50006103515625 - ], - "bbox": [ - 292.1999816894531, - 403.800048828125, - 298.0999755859375, - 421.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 298.0999755859375, - 408.50006103515625 - ], - "bbox": [ - 298.0999755859375, - 402.50006103515625, - 302.89996337890625, - 421.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.5, - 402.50006103515625, - 302.89996337890625, - 421.7000732421875 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 109.0999984741211, - 429.50006103515625, - 292.70001220703125, - 449.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 109.0999984741211, - 435.800048828125 - ], - "bbox": [ - 109.0999984741211, - 429.800048828125, - 109.0999984741211, - 449.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè+éeè/ê?ë", - "origin": [ - 109.0999984741211, - 435.800048828125 - ], - "bbox": [ - 109.0999984741211, - 429.50006103515625, - 135.1999969482422, - 449.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 135.1999969482422, - 435.800048828125 - ], - "bbox": [ - 135.1999969482422, - 429.800048828125, - 140.8000030517578, - 449.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï", - "origin": [ - 140.8000030517578, - 435.800048828125 - ], - "bbox": [ - 140.8000030517578, - 429.50006103515625, - 145.8000030517578, - 449.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßgáÕâ\"Ä\" FÄFÞ\u0011 Fß\"á(ÄFÆ", - "origin": [ - 145.8000030517578, - 435.800048828125 - ], - "bbox": [ - 145.8000030517578, - 429.800048828125, - 218.59999084472656, - 449.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "VH", - "origin": [ - 218.59999084472656, - 435.800048828125 - ], - "bbox": [ - 218.59999084472656, - 431.10003662109375, - 229.29998779296875, - 448.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÄF´gºFÞgÝ\n£", - "origin": [ - 229.29998779296875, - 435.800048828125 - ], - "bbox": [ - 229.29998779296875, - 429.800048828125, - 261.0, - 449.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè+éaè\nê?ë", - "origin": [ - 261.0, - 435.800048828125 - ], - "bbox": [ - 261.0, - 429.50006103515625, - 287.1000061035156, - 449.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 287.1000061035156, - 435.800048828125 - ], - "bbox": [ - 287.1000061035156, - 429.800048828125, - 292.70001220703125, - 449.00006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.0999984741211, - 429.50006103515625, - 292.70001220703125, - 449.9000549316406 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 93.4000015258789, - 443.00006103515625, - 125.10001373291016, - 463.4000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.4000015258789, - 449.300048828125 - ], - "bbox": [ - 93.4000015258789, - 443.300048828125, - 98.70000457763672, - 462.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 98.70000457763672, - 449.300048828125 - ], - "bbox": [ - 98.70000457763672, - 444.60003662109375, - 103.60000610351562, - 462.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në\nð", - "origin": [ - 103.60000610351562, - 449.300048828125 - ], - "bbox": [ - 103.60000610351562, - 443.00006103515625, - 114.20001220703125, - 463.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 114.20001220703125, - 449.300048828125 - ], - "bbox": [ - 114.20001220703125, - 444.60003662109375, - 119.50001525878906, - 462.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 119.50001525878906, - 449.300048828125 - ], - "bbox": [ - 119.50001525878906, - 443.300048828125, - 125.10001373291016, - 462.50006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 443.00006103515625, - 125.10001373291016, - 463.4000549316406 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 93.4000015258789, - 470.7000427246094, - 119.80000305175781, - 489.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý|›", - "origin": [ - 93.4000015258789, - 476.7000427246094 - ], - "bbox": [ - 93.4000015258789, - 470.7000427246094, - 98.30000305175781, - 489.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<;�:-=", - "origin": [ - 98.30000305175781, - 476.7000427246094 - ], - "bbox": [ - 98.30000305175781, - 472.0000305175781, - 114.20000457763672, - 489.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.20000457763672, - 476.7000427246094 - ], - "bbox": [ - 114.20000457763672, - 470.7000427246094, - 119.80000305175781, - 489.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 470.7000427246094, - 119.80000305175781, - 489.9000549316406 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 109.0999984741211, - 483.9000549316406, - 272.70001220703125, - 504.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 109.0999984741211, - 490.2000427246094 - ], - "bbox": [ - 109.0999984741211, - 484.2000427246094, - 109.0999984741211, - 503.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 109.0999984741211, - 490.2000427246094 - ], - "bbox": [ - 109.0999984741211, - 485.5000305175781, - 114.0999984741211, - 503.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 114.0999984741211, - 490.2000427246094 - ], - "bbox": [ - 114.0999984741211, - 484.2000427246094, - 119.69999694824219, - 503.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cê", - "origin": [ - 119.69999694824219, - 490.2000427246094 - ], - "bbox": [ - 119.69999694824219, - 483.9000549316406, - 124.69999694824219, - 504.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 124.69999694824219, - 490.2000427246094 - ], - "bbox": [ - 124.69999694824219, - 484.2000427246094, - 130.09999084472656, - 503.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "4H", - "origin": [ - 130.09999084472656, - 490.2000427246094 - ], - "bbox": [ - 130.09999084472656, - 485.5000305175781, - 140.39999389648438, - 503.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÄF´gº|ÞKß\"áIŸkÆ\nÞ0Å\"ß\nÄFÆ«´gĊã�á§·\n·H·", - "origin": [ - 140.39999389648438, - 490.2000427246094 - ], - "bbox": [ - 140.39999389648438, - 484.2000427246094, - 272.70001220703125, - 503.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.0999984741211, - 483.9000549316406, - 272.70001220703125, - 504.300048828125 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 93.4000015258789, - 497.9000549316406, - 125.10000610351562, - 517.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£I›", - "origin": [ - 93.4000015258789, - 503.9000549316406 - ], - "bbox": [ - 93.4000015258789, - 497.9000549316406, - 103.50000762939453, - 517.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A;�:-=", - "origin": [ - 103.50000762939453, - 503.9000549316406 - ], - "bbox": [ - 103.50000762939453, - 499.2000427246094, - 119.50000762939453, - 517.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 119.50000762939453, - 503.9000549316406 - ], - "bbox": [ - 119.50000762939453, - 497.9000549316406, - 125.10000610351562, - 517.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 497.9000549316406, - 125.10000610351562, - 517.1000366210938 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 77.80000305175781, - 511.2000732421875, - 109.50001525878906, - 531.6000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 77.80000305175781, - 517.5000610351562 - ], - "bbox": [ - 77.80000305175781, - 511.50006103515625, - 83.10000610351562, - 530.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 83.10000610351562, - 517.5000610351562 - ], - "bbox": [ - 83.10000610351562, - 512.800048828125, - 88.00000762939453, - 530.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè\nï/ê", - "origin": [ - 88.00000762939453, - 517.5000610351562 - ], - "bbox": [ - 88.00000762939453, - 511.2000732421875, - 104.00001525878906, - 531.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 104.00001525878906, - 517.5000610351562 - ], - "bbox": [ - 104.00001525878906, - 511.50006103515625, - 109.50001525878906, - 530.7000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.80000305175781, - 511.2000732421875, - 109.50001525878906, - 531.6000366210938 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 72.30000305175781, - 534.7000122070312, - 422.6999206542969, - 555.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K£9\u001bu¤u²?§K¯", - "origin": [ - 72.30000305175781, - 541.0 - ], - "bbox": [ - 72.30000305175781, - 534.7000122070312, - 102.79999542236328, - 555.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 534.7000122070312, - 102.79999542236328, - 555.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©M©\u001a\u0019aÆ\n«-Ç9\u0019%5u6[§F\u001bÊ¬«-\u001bª\u0019\u001e¦[6)5�5u6~\u0018�\u00194Ç\u001c6", - "origin": [ - 105.0, - 541.0 - ], - "bbox": [ - 105.0, - 534.7000122070312, - 223.0, - 555.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 223.0, - 541.0 - ], - "bbox": [ - 223.0, - 535.0, - 228.10000610351562, - 554.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=«-ÊF¦)£9©F©\u001a\u0019", - "origin": [ - 228.10000610351562, - 541.0 - ], - "bbox": [ - 228.10000610351562, - 534.7000122070312, - 261.4000244140625, - 555.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\u001c", - "origin": [ - 261.4000244140625, - 541.0 - ], - "bbox": [ - 261.4000244140625, - 536.2999877929688, - 266.20001220703125, - 554.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-5u\u001bu\u0019b¤7£\u001c©^\u00194§/5u6[§F\u001bi6[5ÊY\u0019\u001e¥\u001a\u0019%576s¥/6s¦)\u001buÈ=\u0019457«-£\u001c©K ", - "origin": [ - 266.20001220703125, - 541.0 - ], - "bbox": [ - 266.20001220703125, - 534.7000122070312, - 422.6999206542969, - 555.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.0, - 534.7000122070312, - 422.6999206542969, - 555.0999755859375 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 430.9000244140625, - 534.7000122070312, - 536.3999633789062, - 555.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê\n\u0018�£9§F\u001b7\u001bª\u0019bÊ-6=¤i¦[£\u001c¨g¨¸§F©\u001a«-²?§F6=\u001b", - "origin": [ - 430.9000244140625, - 541.0 - ], - "bbox": [ - 430.9000244140625, - 534.7000122070312, - 536.3999633789062, - 555.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.9000244140625, - 534.7000122070312, - 536.3999633789062, - 555.0999755859375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 72.30001831054688, - 548.2999877929688, - 209.6999969482422, - 568.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ß^Ê-\u0019g¥/6=¨#\u00194©\u001a¥/6M¥F6M¤�£9©‰§/5u«¬Ê-«Y¤7\u00194576[§\u001a\u001b= ", - "origin": [ - 72.30001831054688, - 554.5999755859375 - ], - "bbox": [ - 72.30001831054688, - 548.2999877929688, - 209.6999969482422, - 568.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 548.2999877929688, - 209.6999969482422, - 568.699951171875 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 72.30001831054688, - 567.1000366210938, - 536.2999267578125, - 587.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e6R¨gå[¨g6", - "origin": [ - 72.30001831054688, - 573.4000244140625 - ], - "bbox": [ - 72.30001831054688, - 567.1000366210938, - 108.20002746582031, - 587.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 108.20002746582031, - 573.4000244140625 - ], - "bbox": [ - 108.20002746582031, - 567.4000244140625, - 113.20002746582031, - 586.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?Ê-£\u001c\u001bª¤7²?§K¯", - "origin": [ - 113.20002746582031, - 573.4000244140625 - ], - "bbox": [ - 113.20002746582031, - 567.1000366210938, - 145.50003051757812, - 587.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 567.1000366210938, - 145.50003051757812, - 587.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©g¨g£4576=§F\u001b~¥F6R\u001bu6=¦ªþF6=\u001bu¦ªþF6sÆ9£\u001c§\u001a¥/\u001bª\u0019B¦[\u001945u\u0019\u001cʬ£9Ç\u001c§F6=\u001b,¦)6)57576\u001e\u0018\u001a\u00194Ç96", - "origin": [ - 147.70001220703125, - 573.4000244140625 - ], - "bbox": [ - 147.70001220703125, - 567.1000366210938, - 372.0, - 587.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 372.0, - 573.4000244140625 - ], - "bbox": [ - 372.0, - 567.4000244140625, - 377.0, - 586.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4«-Êw¤u\u00194§\u001a\u001bu\u0019H«-¨g¨^Èe¥/«Y\u0019%576=¨g6[©?5 ²?§F6bÊ-6=¤×¨g£45u¤", - "origin": [ - 377.0, - 573.4000244140625 - ], - "bbox": [ - 377.0, - 567.1000366210938, - 536.2999267578125, - 587.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.70001220703125, - 567.1000366210938, - 536.2999267578125, - 587.5 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 72.30001068115234, - 580.7000122070312, - 538.2000732421875, - 601.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)Ê-6)Ôy¤", - "origin": [ - 72.30001068115234, - 587.0 - ], - "bbox": [ - 72.30001068115234, - 580.7000122070312, - 86.90001678466797, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[/�", - "origin": [ - 86.90001678466797, - 587.0 - ], - "bbox": [ - 86.90001678466797, - 581.0, - 96.80001831054688, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/ÈH\u0018\u001a\u0019\u001c\u001boÊô¯", - "origin": [ - 96.80001831054688, - 587.0 - ], - "bbox": [ - 96.80001831054688, - 580.7000122070312, - 136.50001525878906, - 601.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001068115234, - 580.7000122070312, - 136.50001525878906, - 601.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§/5u6[§F\u001boÊ-§F«K¨gå=¨^6", - "origin": [ - 138.80001831054688, - 587.0 - ], - "bbox": [ - 138.80001831054688, - 580.7000122070312, - 205.60000610351562, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 205.60000610351562, - 587.0 - ], - "bbox": [ - 205.60000610351562, - 581.0, - 210.70001220703125, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a¤7£\u001c©?5b¤�6=ʬ£9©‰Ê-6=¤sÊY\u00194©FÇ9§F6=¤s§F57«-ʬ«Y¤�È=6=¤H8FÆ%\u00199¦[\u0019%5u«¬£9©", - "origin": [ - 210.70001220703125, - 587.0 - ], - "bbox": [ - 210.70001220703125, - 580.7000122070312, - 387.1000061035156, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 387.1000061035156, - 587.0 - ], - "bbox": [ - 387.1000061035156, - 581.0, - 393.20001220703125, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/þF£9ʬ«Y¥F\u0019aø", - "origin": [ - 393.20001220703125, - 587.0 - ], - "bbox": [ - 393.20001220703125, - 580.7000122070312, - 425.0000305175781, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 425.0000305175781, - 587.0 - ], - "bbox": [ - 425.0000305175781, - 581.0, - 430.0000305175781, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1W", - "origin": [ - 430.0000305175781, - 587.0 - ], - "bbox": [ - 430.0000305175781, - 582.2999877929688, - 435.4000244140625, - 600.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?\u00194\u0018\u001a\u0019\u001c©", - "origin": [ - 435.4000244140625, - 587.0 - ], - "bbox": [ - 435.4000244140625, - 580.7000122070312, - 456.10003662109375, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[fš", - "origin": [ - 456.10003662109375, - 587.0 - ], - "bbox": [ - 456.10003662109375, - 581.0, - 467.9000549316406, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V¤u\u0019", - "origin": [ - 467.9000549316406, - 587.0 - ], - "bbox": [ - 467.9000549316406, - 580.7000122070312, - 479.50006103515625, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|V", - "origin": [ - 479.50006103515625, - 587.0 - ], - "bbox": [ - 479.50006103515625, - 581.0, - 484.4000549316406, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%\u0019", - "origin": [ - 484.4000549316406, - 587.0 - ], - "bbox": [ - 484.4000549316406, - 580.7000122070312, - 489.2000427246094, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"[", - "origin": [ - 489.2000427246094, - 587.0 - ], - "bbox": [ - 489.2000427246094, - 581.0, - 494.7000427246094, - 600.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nÆ%\u0019\u001c¦=\u00194©\u001a¦[6=¤", - "origin": [ - 494.7000427246094, - 587.0 - ], - "bbox": [ - 494.7000427246094, - 580.7000122070312, - 533.7000732421875, - 601.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 533.7000732421875, - 587.0 - ], - "bbox": [ - 533.7000732421875, - 581.0, - 538.2000732421875, - 600.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 138.80001831054688, - 580.7000122070312, - 538.2000732421875, - 601.0999755859375 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 72.30001831054688, - 594.2999877929688, - 99.30001831054688, - 614.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "W", - "origin": [ - 72.30001831054688, - 600.5999755859375 - ], - "bbox": [ - 72.30001831054688, - 595.8999633789062, - 72.30001831054688, - 613.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?\u00194\u0018w£\u001c©K ", - "origin": [ - 72.30001831054688, - 600.5999755859375 - ], - "bbox": [ - 72.30001831054688, - 594.2999877929688, - 99.30001831054688, - 614.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 594.2999877929688, - 99.30001831054688, - 614.699951171875 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 72.30001831054688, - 613.1000366210938, - 536.3999633789062, - 633.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤\u001e¦ªþ�\u00194¨g\u0018\u001a¤bï\në\nè\nð‰¤7£\u001c©?5RÊ-£\u001c«-©\u000e¥;¯", - "origin": [ - 72.30001831054688, - 619.4000244140625 - ], - "bbox": [ - 72.30001831054688, - 613.1000366210938, - 198.3000030517578, - 633.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 613.1000366210938, - 198.3000030517578, - 633.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "å)5u\u001b76^¤\\5ª\u00194©\u001a¥F\u0019\u001c\u001bu¥\u001a¤b6)5", - "origin": [ - 200.50001525878906, - 619.4000244140625 - ], - "bbox": [ - 200.50001525878906, - 613.1000366210938, - 270.8999938964844, - 633.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 270.8999938964844, - 619.4000244140625 - ], - "bbox": [ - 270.8999938964844, - 613.4000244140625, - 275.5, - 632.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¥F£\u001c©\u001a¦", - "origin": [ - 275.5, - 619.4000244140625 - ], - "bbox": [ - 275.5, - 613.1000366210938, - 297.3999938964844, - 633.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 297.3999938964844, - 619.4000244140625 - ], - "bbox": [ - 297.3999938964844, - 613.4000244140625, - 302.3999938964844, - 632.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¤7£\u001c©?5R5u£\u001c§/5Hß#Ôy\u00194«¬5\u001e£9\u0018/57«-£\u001c©\u001a©F6[ÊY¤", - "origin": [ - 302.3999938964844, - 619.4000244140625 - ], - "bbox": [ - 302.3999938964844, - 613.1000366210938, - 419.0, - 633.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 419.0, - 619.4000244140625 - ], - "bbox": [ - 419.0, - 613.4000244140625, - 423.3999938964844, - 632.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¨#\u00194«Y¤\u001e¦[6[ÊY\u0019#\u0018�6=\u001b7¨g6[5V¤7£\u001c§FÆ96[©?5", - "origin": [ - 423.3999938964844, - 619.4000244140625 - ], - "bbox": [ - 423.3999938964844, - 613.1000366210938, - 536.3999633789062, - 633.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.50001525878906, - 613.1000366210938, - 536.3999633789062, - 633.5 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 72.30001831054688, - 626.7000122070312, - 538.199951171875, - 647.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§Fÿ\u000f©\u001a\u0019aÆ\n«¬Ç?\u0019%5u6[§F\u001bª¤×¥/6M¥F«-¤7\u0018�£?¤�6=\u001bo¥/6H\u0018Fʬ§�¤o¥;¯", - "origin": [ - 72.30001831054688, - 633.0 - ], - "bbox": [ - 72.30001831054688, - 626.7000122070312, - 236.49998474121094, - 647.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 626.7000122070312, - 236.49998474121094, - 647.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©/Ôõ£9\u001b7¨#\u0019%5u«¬£9©\u001a¤ 6)5R\u0019\u001c§/ÿc¨g£4576=§F\u001bª¤o¥/6H\u001b76e¦ªþF6[\u001bª¦ªþF6\u001e¥F6V¨g«-6[§/ÿɦ)«-ÐFʬ6=\u001boÆ\u001c£\u001c57\u001bu6\u001e\u0018\u001a\u0019\u001cÇ\u001c69 ", - "origin": [ - 238.6000213623047, - 633.0 - ], - "bbox": [ - 238.6000213623047, - 626.7000122070312, - 538.199951171875, - 647.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 238.6000213623047, - 626.7000122070312, - 538.199951171875, - 647.0999755859375 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 72.30001831054688, - 658.5, - 147.4000244140625, - 677.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "è*\u0019\r?", - "origin": [ - 72.30001831054688, - 664.5 - ], - "bbox": [ - 72.30001831054688, - 658.5, - 82.9000244140625, - 677.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 658.5, - 82.9000244140625, - 677.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC),+\u0011!#\u001fg\u001d %", - "origin": [ - 103.00001525878906, - 664.5 - ], - "bbox": [ - 103.00001525878906, - 658.5, - 147.4000244140625, - 677.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00001525878906, - 658.5, - 147.4000244140625, - 677.7000122070312 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 72.30001831054688, - 686.7000122070312, - 536.2999877929688, - 707.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6B¦[£\u001c\u001bu\u0018\u001a¤o¥/§…¥/£/¦)§F¨g6[©?5R³\u001e´oµÍ¶ò¤�6=\u001b�5b\u0019g¥/È", - "origin": [ - 72.30001831054688, - 693.0 - ], - "bbox": [ - 72.30001831054688, - 686.7000122070312, - 239.1000213623047, - 707.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 239.1000213623047, - 693.0 - ], - "bbox": [ - 239.1000213623047, - 687.0, - 243.50001525878906, - 706.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«-\u001boÊ-\u0019", - "origin": [ - 243.50001525878906, - 693.0 - ], - "bbox": [ - 243.50001525878906, - 686.7000122070312, - 267.4000244140625, - 707.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "m‡", - "origin": [ - 267.4000244140625, - 693.0 - ], - "bbox": [ - 267.4000244140625, - 687.0, - 275.60003662109375, - 706.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£9©F6B²?§F«K¦)£9©95u«¬6=©?5sÊY\u0019g¥/6=¤u¦)\u001bu«-\u0018/57«-£\u001c©…¥/§Ý¥/£/¦)§F¨g6=©95bÆ\n«Y¤�§�\u00194Ê-«-¤7È\u001c \u001aÓ\u001e¯", - "origin": [ - 275.60003662109375, - 693.0 - ], - "bbox": [ - 275.60003662109375, - 686.7000122070312, - 525.7998657226562, - 707.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 686.7000122070312, - 525.7998657226562, - 707.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5", - "origin": [ - 528.0, - 693.0 - ], - "bbox": [ - 528.0, - 686.7000122070312, - 536.2999877929688, - 707.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 528.0, - 686.7000122070312, - 536.2999877929688, - 707.0999755859375 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 72.19998168945312, - 700.4000244140625, - 519.699951171875, - 720.7999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«Y¦)«m²?§F6HÊ", - "origin": [ - 72.19998168945312, - 706.7000122070312 - ], - "bbox": [ - 72.19998168945312, - 700.4000244140625, - 103.9999771118164, - 720.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19998168945312, - 700.4000244140625, - 103.9999771118164, - 720.7999877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£9©…¥FÈ", - "origin": [ - 109.4999771118164, - 706.7000122070312 - ], - "bbox": [ - 109.4999771118164, - 700.4000244140625, - 128.99998474121094, - 720.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 128.99998474121094, - 706.7000122070312 - ], - "bbox": [ - 128.99998474121094, - 700.7000122070312, - 133.29998779296875, - 719.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«¬5bÊ-6H¦[£\u001c©?576=©\n§‰6[5bÊ-\u0019^\u0018F\u001buÈ=¤76[©?5u\u0019457«-£\u001c©…¥/§Ý¥/£/¦)§F¨g6=©95e /Ë,Ê-§\u001a¤�«-6[§\u001a\u001bu¤o\u0018�\u00194\u001bª\u00194¨gá)5u\u001b76e¤~\u0018w6[§\u001aÆ\u001c6[©?5oå)5u\u001b76", - "origin": [ - 133.29998779296875, - 706.7000122070312 - ], - "bbox": [ - 133.29998779296875, - 700.4000244140625, - 488.79986572265625, - 720.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.4999771118164, - 700.4000244140625, - 488.79986572265625, - 720.7999877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 496.39996337890625, - 706.7000122070312 - ], - "bbox": [ - 496.39996337890625, - 700.7000122070312, - 496.39996337890625, - 719.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/Èe¤B8", - "origin": [ - 496.39996337890625, - 706.7000122070312 - ], - "bbox": [ - 496.39996337890625, - 700.4000244140625, - 519.699951171875, - 720.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 496.39996337890625, - 700.4000244140625, - 519.699951171875, - 720.7999877929688 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 82.09996795654297, - 719.1000366210938, - 538.1998901367188, - 739.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\"Äg ", - "origin": [ - 82.09996795654297, - 725.4000244140625 - ], - "bbox": [ - 82.09996795654297, - 719.4000244140625, - 93.19996643066406, - 738.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�O", - "origin": [ - 93.19996643066406, - 725.4000244140625 - ], - "bbox": [ - 93.19996643066406, - 720.7000122070312, - 97.99996948242188, - 738.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n¼\n»/ºFÆ\nÞ", - "origin": [ - 97.99996948242188, - 725.4000244140625 - ], - "bbox": [ - 97.99996948242188, - 719.4000244140625, - 124.29998016357422, - 738.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 124.29998016357422, - 725.4000244140625 - ], - "bbox": [ - 124.29998016357422, - 720.7000122070312, - 129.79998779296875, - 738.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ò8×Ó~6\u000f\u0018\u001a\u0019\u001c\u001bu\u0019\u001c¨gá)57\u001bu6\u000f\u0018w6[\u001bu¨g6)5#¥/6…¥/£\u001c©F©\u001a6[\u001b^Êô¯", - "origin": [ - 129.79998779296875, - 725.4000244140625 - ], - "bbox": [ - 129.79998779296875, - 719.1000366210938, - 297.29998779296875, - 739.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09996795654297, - 719.1000366210938, - 297.29998779296875, - 739.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c¥/\u001bu6=¤u¤76\u000f¥;¯", - "origin": [ - 299.5999755859375, - 725.4000244140625 - ], - "bbox": [ - 299.5999755859375, - 719.1000366210938, - 340.9999694824219, - 739.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 299.5999755859375, - 719.1000366210938, - 340.9999694824219, - 739.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6É«¬¨#\u00194Ç96‰²?§F«o¤76[\u001buÆ?«-\u001bª\u0019Í¥/6‰Ôõ£\u001c©\u001a¥", - "origin": [ - 343.1999816894531, - 725.4000244140625 - ], - "bbox": [ - 343.1999816894531, - 719.1000366210938, - 472.0000305175781, - 739.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 343.1999816894531, - 719.1000366210938, - 472.0000305175781, - 739.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ßÍÆ\u001c£\u001c57\u001bu6\u000f\u0018\u001a\u0019\u001cÇ\u001c69 ", - "origin": [ - 481.89996337890625, - 725.4000244140625 - ], - "bbox": [ - 481.89996337890625, - 719.1000366210938, - 538.1998901367188, - 739.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.89996337890625, - 719.1000366210938, - 538.1998901367188, - 739.5 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 88.7999496459961, - 732.800048828125, - 360.2999267578125, - 753.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÿ/6[¨g\u0018FÊ-6#8Kç", - "origin": [ - 88.7999496459961, - 739.1000366210938 - ], - "bbox": [ - 88.7999496459961, - 732.800048828125, - 129.69996643066406, - 753.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 129.69996643066406, - 739.1000366210938 - ], - "bbox": [ - 129.69996643066406, - 733.1000366210938, - 136.7999725341797, - 752.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A;�:-=", - "origin": [ - 136.7999725341797, - 739.1000366210938 - ], - "bbox": [ - 136.7999725341797, - 734.4000244140625, - 152.69996643066406, - 752.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.7999496459961, - 732.800048828125, - 152.69996643066406, - 753.2000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgÄg ", - "origin": [ - 162.79995727539062, - 739.1000366210938 - ], - "bbox": [ - 162.79995727539062, - 733.1000366210938, - 173.99996948242188, - 752.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�O", - "origin": [ - 173.99996948242188, - 739.1000366210938 - ], - "bbox": [ - 173.99996948242188, - 734.4000244140625, - 178.7999725341797, - 752.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H¼\n»\"ºFÆ\nÞ", - "origin": [ - 178.7999725341797, - 739.1000366210938 - ], - "bbox": [ - 178.7999725341797, - 733.1000366210938, - 205.0999755859375, - 752.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>-\"%$", - "origin": [ - 205.0999755859375, - 739.1000366210938 - ], - "bbox": [ - 205.0999755859375, - 734.4000244140625, - 221.7999725341797, - 752.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I£|´\u0011žH YŸHÆ\n»/ßgá|£|´/»�žxÀ�Ċâ\nߊ»\"Ä#·y´HÞ/¼", - "origin": [ - 221.7999725341797, - 739.1000366210938 - ], - "bbox": [ - 221.7999725341797, - 733.1000366210938, - 341.49993896484375, - 752.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 341.49993896484375, - 739.1000366210938 - ], - "bbox": [ - 341.49993896484375, - 734.4000244140625, - 347.3999328613281, - 752.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 347.3999328613281, - 739.1000366210938 - ], - "bbox": [ - 347.3999328613281, - 732.800048828125, - 352.49993896484375, - 753.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$[", - "origin": [ - 352.49993896484375, - 739.1000366210938 - ], - "bbox": [ - 352.49993896484375, - 733.1000366210938, - 360.2999267578125, - 752.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.79995727539062, - 732.800048828125, - 360.2999267578125, - 753.2000122070312 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 82.199951171875, - 746.4000244140625, - 367.29986572265625, - 766.7999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ÿ/ß", - "origin": [ - 82.199951171875, - 752.7000122070312 - ], - "bbox": [ - 82.199951171875, - 746.7000122070312, - 87.5999526977539, - 765.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 87.5999526977539, - 752.7000122070312 - ], - "bbox": [ - 87.5999526977539, - 748.0, - 92.699951171875, - 765.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ", - "origin": [ - 92.699951171875, - 752.7000122070312 - ], - "bbox": [ - 92.699951171875, - 746.7000122070312, - 97.99995422363281, - 765.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8FËi6[\u001bu¨g6)5b¥/6", - "origin": [ - 97.99995422363281, - 752.7000122070312 - ], - "bbox": [ - 97.99995422363281, - 746.4000244140625, - 152.699951171875, - 766.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 152.699951171875, - 752.7000122070312 - ], - "bbox": [ - 152.699951171875, - 746.7000122070312, - 160.3999481201172, - 765.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6=\u001boÊ-\u0019g¦)£9§FÊ-6[§F\u001bb¥/§É5u6)ÿ\n576B\u0018w£\u001c§F\u001bs5u£\u001c§/5bÊ-6B¥/£/¦)§F¨g6=©95", - "origin": [ - 160.3999481201172, - 752.7000122070312 - ], - "bbox": [ - 160.3999481201172, - 746.4000244140625, - 362.6998596191406, - 766.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 362.6998596191406, - 752.7000122070312 - ], - "bbox": [ - 362.6998596191406, - 746.7000122070312, - 367.29986572265625, - 765.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.199951171875, - 746.4000244140625, - 367.29986572265625, - 766.7999877929688 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 82.49995422363281, - 760.1000366210938, - 315.7999267578125, - 780.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Á\"žcÞ", - "origin": [ - 82.49995422363281, - 766.4000244140625 - ], - "bbox": [ - 82.49995422363281, - 760.4000244140625, - 92.5999526977539, - 779.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O", - "origin": [ - 92.5999526977539, - 766.4000244140625 - ], - "bbox": [ - 92.5999526977539, - 761.7000122070312, - 97.99995422363281, - 779.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8FËi6[\u001bu¨g6)5b¥/6", - "origin": [ - 97.99995422363281, - 766.4000244140625 - ], - "bbox": [ - 97.99995422363281, - 760.1000366210938, - 152.699951171875, - 780.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 152.699951171875, - 766.4000244140625 - ], - "bbox": [ - 152.699951171875, - 760.4000244140625, - 160.3999481201172, - 779.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6=\u001boÊ-\u0019g¦)£9§FÊ-6[§F\u001bb¥/6e¤sʬ«-6[©�¤o©F£\u001c©ÉÆ\n«-¤7«¬57È=¤", - "origin": [ - 160.3999481201172, - 766.4000244140625 - ], - "bbox": [ - 160.3999481201172, - 760.1000366210938, - 311.2999267578125, - 780.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 311.2999267578125, - 766.4000244140625 - ], - "bbox": [ - 311.2999267578125, - 760.4000244140625, - 315.7999267578125, - 779.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.49995422363281, - 760.1000366210938, - 315.7999267578125, - 780.5 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Þ", - "origin": [ - 72.30000305175781, - 41.5999755859375 - ], - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 72.30000305175781, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E�", - "origin": [ - 72.30000305175781, - 41.5999755859375 - ], - "bbox": [ - 72.30000305175781, - 35.5999755859375, - 78.60000610351562, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×Á‚Ø[—=˜%›œ\u001c—=›˜a¾\u000eš×â-›–Ìš™Kœ\u001c›¼¿¾\n–+—", - "origin": [ - 78.60000610351562, - 41.5999755859375 - ], - "bbox": [ - 78.60000610351562, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 35.29997634887695, - 225.7000274658203, - 55.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 46, - "type": 0, - "bbox": [ - 88.7999496459961, - 732.800048828125, - 360.2999267578125, - 753.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÿ/6[¨g\u0018FÊ-6#8Kç", - "origin": [ - 88.7999496459961, - 739.1000366210938 - ], - "bbox": [ - 88.7999496459961, - 732.800048828125, - 129.69996643066406, - 753.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 129.69996643066406, - 739.1000366210938 - ], - "bbox": [ - 129.69996643066406, - 733.1000366210938, - 136.7999725341797, - 752.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A;�:-=", - "origin": [ - 136.7999725341797, - 739.1000366210938 - ], - "bbox": [ - 136.7999725341797, - 734.4000244140625, - 152.69996643066406, - 752.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.7999496459961, - 732.800048828125, - 152.69996643066406, - 753.2000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgÄg ", - "origin": [ - 162.79995727539062, - 739.1000366210938 - ], - "bbox": [ - 162.79995727539062, - 733.1000366210938, - 173.99996948242188, - 752.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�O", - "origin": [ - 173.99996948242188, - 739.1000366210938 - ], - "bbox": [ - 173.99996948242188, - 734.4000244140625, - 178.7999725341797, - 752.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H¼\n»\"ºFÆ\nÞ", - "origin": [ - 178.7999725341797, - 739.1000366210938 - ], - "bbox": [ - 178.7999725341797, - 733.1000366210938, - 205.0999755859375, - 752.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>-\"%$", - "origin": [ - 205.0999755859375, - 739.1000366210938 - ], - "bbox": [ - 205.0999755859375, - 734.4000244140625, - 221.7999725341797, - 752.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I£|´\u0011žH YŸHÆ\n»/ßgá|£|´/»�žxÀ�Ċâ\nߊ»\"Ä#·y´HÞ/¼", - "origin": [ - 221.7999725341797, - 739.1000366210938 - ], - "bbox": [ - 221.7999725341797, - 733.1000366210938, - 341.49993896484375, - 752.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 341.49993896484375, - 739.1000366210938 - ], - "bbox": [ - 341.49993896484375, - 734.4000244140625, - 347.3999328613281, - 752.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 347.3999328613281, - 739.1000366210938 - ], - "bbox": [ - 347.3999328613281, - 732.800048828125, - 352.49993896484375, - 753.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$[", - "origin": [ - 352.49993896484375, - 739.1000366210938 - ], - "bbox": [ - 352.49993896484375, - 733.1000366210938, - 360.2999267578125, - 752.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.79995727539062, - 732.800048828125, - 360.2999267578125, - 753.2000122070312 - ] - } - ], - "tag": "footer" - }, - { - "number": 48, - "type": 0, - "bbox": [ - 82.199951171875, - 746.4000244140625, - 367.29986572265625, - 766.7999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ÿ/ß", - "origin": [ - 82.199951171875, - 752.7000122070312 - ], - "bbox": [ - 82.199951171875, - 746.7000122070312, - 87.5999526977539, - 765.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 87.5999526977539, - 752.7000122070312 - ], - "bbox": [ - 87.5999526977539, - 748.0, - 92.699951171875, - 765.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ", - "origin": [ - 92.699951171875, - 752.7000122070312 - ], - "bbox": [ - 92.699951171875, - 746.7000122070312, - 97.99995422363281, - 765.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8FËi6[\u001bu¨g6)5b¥/6", - "origin": [ - 97.99995422363281, - 752.7000122070312 - ], - "bbox": [ - 97.99995422363281, - 746.4000244140625, - 152.699951171875, - 766.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 152.699951171875, - 752.7000122070312 - ], - "bbox": [ - 152.699951171875, - 746.7000122070312, - 160.3999481201172, - 765.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6=\u001boÊ-\u0019g¦)£9§FÊ-6[§F\u001bb¥/§É5u6)ÿ\n576B\u0018w£\u001c§F\u001bs5u£\u001c§/5bÊ-6B¥/£/¦)§F¨g6=©95", - "origin": [ - 160.3999481201172, - 752.7000122070312 - ], - "bbox": [ - 160.3999481201172, - 746.4000244140625, - 362.6998596191406, - 766.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 362.6998596191406, - 752.7000122070312 - ], - "bbox": [ - 362.6998596191406, - 746.7000122070312, - 367.29986572265625, - 765.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.199951171875, - 746.4000244140625, - 367.29986572265625, - 766.7999877929688 - ] - } - ], - "tag": "footer" - }, - { - "number": 50, - "type": 0, - "bbox": [ - 82.49995422363281, - 760.1000366210938, - 315.7999267578125, - 780.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Á\"žcÞ", - "origin": [ - 82.49995422363281, - 766.4000244140625 - ], - "bbox": [ - 82.49995422363281, - 760.4000244140625, - 92.5999526977539, - 779.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O", - "origin": [ - 92.5999526977539, - 766.4000244140625 - ], - "bbox": [ - 92.5999526977539, - 761.7000122070312, - 97.99995422363281, - 779.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8FËi6[\u001bu¨g6)5b¥/6", - "origin": [ - 97.99995422363281, - 766.4000244140625 - ], - "bbox": [ - 97.99995422363281, - 760.1000366210938, - 152.699951171875, - 780.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 152.699951171875, - 766.4000244140625 - ], - "bbox": [ - 152.699951171875, - 760.4000244140625, - 160.3999481201172, - 779.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6=\u001boÊ-\u0019g¦)£9§FÊ-6[§F\u001bb¥/6e¤sʬ«-6[©�¤o©F£\u001c©ÉÆ\n«-¤7«¬57È=¤", - "origin": [ - 160.3999481201172, - 766.4000244140625 - ], - "bbox": [ - 160.3999481201172, - 760.1000366210938, - 311.2999267578125, - 780.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 311.2999267578125, - 766.4000244140625 - ], - "bbox": [ - 311.2999267578125, - 760.4000244140625, - 315.7999267578125, - 779.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.49995422363281, - 760.1000366210938, - 315.7999267578125, - 780.5 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 5, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_6": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 3, - "type": 0, - "bbox": [ - 82.19999694824219, - 80.69993591308594, - 301.59991455078125, - 101.09993743896484 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â\"ÁgžcÞ", - "origin": [ - 82.19999694824219, - 86.99993896484375 - ], - "bbox": [ - 82.19999694824219, - 80.99993896484375, - 97.89999389648438, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O", - "origin": [ - 97.89999389648438, - 86.99993896484375 - ], - "bbox": [ - 97.89999389648438, - 82.29994201660156, - 103.29999542236328, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8/Ëi6[\u001bu¨^6[5R¥/6", - "origin": [ - 103.29999542236328, - 86.99993896484375 - ], - "bbox": [ - 103.29999542236328, - 80.69993591308594, - 157.99996948242188, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 157.99996948242188, - 86.99993896484375 - ], - "bbox": [ - 157.99996948242188, - 80.99993896484375, - 165.69996643066406, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6[\u001boÊY\u0019g¦)£9§Fʬ6=§F\u001bo¥/6=¤bʬ«-6[©\u001a¤sÆ\n«Y¤�«¬57Èe¤", - "origin": [ - 165.69996643066406, - 86.99993896484375 - ], - "bbox": [ - 165.69996643066406, - 80.69993591308594, - 297.1999206542969, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 297.1999206542969, - 86.99993896484375 - ], - "bbox": [ - 297.1999206542969, - 80.99993896484375, - 301.59991455078125, - 100.19993591308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19999694824219, - 80.69993591308594, - 301.59991455078125, - 101.09993743896484 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 82.4000015258789, - 94.29991149902344, - 396.699951171875, - 114.69991302490234 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä\nÁgžcÞ", - "origin": [ - 82.4000015258789, - 100.59991455078125 - ], - "bbox": [ - 82.4000015258789, - 94.59991455078125, - 97.9000015258789, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O", - "origin": [ - 97.9000015258789, - 100.59991455078125 - ], - "bbox": [ - 97.9000015258789, - 95.89991760253906, - 103.30000305175781, - 113.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8/Ëi6[\u001bu¨^6[5R¥/6", - "origin": [ - 103.30000305175781, - 100.59991455078125 - ], - "bbox": [ - 103.30000305175781, - 94.29991149902344, - 157.99998474121094, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 157.99998474121094, - 100.59991455078125 - ], - "bbox": [ - 157.99998474121094, - 94.59991455078125, - 165.69998168945312, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6[\u001boÊY\u0019g¦)£9§Fʬ6=§F\u001bo¥/6=¤bʬ«-6[©\u001a¤o¤7È[Ê-6=¦)57«-£\u001c©F©\u001aÈ=¤s\u0018\u001a\u0019\u001c\u001boÊô¯", - "origin": [ - 165.69998168945312, - 100.59991455078125 - ], - "bbox": [ - 165.69998168945312, - 94.29991149902344, - 349.49993896484375, - 114.69991302490234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.4000015258789, - 94.29991149902344, - 349.49993896484375, - 114.69991302490234 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§/57«-Ê-«-¤u\u0019%5u6[§F\u001b", - "origin": [ - 351.70001220703125, - 100.59991455078125 - ], - "bbox": [ - 351.70001220703125, - 94.29991149902344, - 392.0999450683594, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 392.0999450683594, - 100.59991455078125 - ], - "bbox": [ - 392.0999450683594, - 94.59991455078125, - 396.699951171875, - 113.79991149902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.70001220703125, - 94.29991149902344, - 396.699951171875, - 114.69991302490234 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 82.0999984741211, - 107.99992370605469, - 326.3999938964844, - 128.39993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\n¼� Fº/ÁHºF»", - "origin": [ - 82.0999984741211, - 114.2999267578125 - ], - "bbox": [ - 82.0999984741211, - 108.2999267578125, - 113.80000305175781, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8/Ëi6[\u001bu¨g6)5R¥/6", - "origin": [ - 113.80000305175781, - 114.2999267578125 - ], - "bbox": [ - 113.80000305175781, - 107.99992370605469, - 168.39999389648438, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 168.39999389648438, - 114.2999267578125 - ], - "bbox": [ - 168.39999389648438, - 108.2999267578125, - 176.09999084472656, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aÿ\n6=\u001boÊ-\u0019g¦[£\u001c§FÊ-6[§F\u001bb¥F§‰Ôõ£9©\u001a¥É¥/6BÊ-\u0019^\u0018\u001a\u0019\u001cÇ\u001c69 ", - "origin": [ - 176.09999084472656, - 114.2999267578125 - ], - "bbox": [ - 176.09999084472656, - 107.99992370605469, - 326.3999938964844, - 128.39993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.0999984741211, - 107.99992370605469, - 326.3999938964844, - 128.39993286132812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.5, - 126.69993591308594, - 154.5, - 147.09994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "®\u001e§F6=Ê-²?§F6e¤o¦)£\u001c§\u001aʬ6=§F\u001bu¤V8", - "origin": [ - 72.5, - 132.99993896484375 - ], - "bbox": [ - 72.5, - 126.69993591308594, - 154.5, - 147.09994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 126.69993591308594, - 154.5, - 147.09994506835938 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.19999694824219, - 145.4999237060547, - 538.5, - 165.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÐFÊY\u0019\u001c¦", - "origin": [ - 72.19999694824219, - 151.7999267578125 - ], - "bbox": [ - 72.19999694824219, - 145.4999237060547, - 85.5999984741211, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×V", - "origin": [ - 85.5999984741211, - 151.7999267578125 - ], - "bbox": [ - 85.5999984741211, - 145.7999267578125, - 89.69999694824219, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ZY\\[\u000e]", - "origin": [ - 89.69999694824219, - 151.7999267578125 - ], - "bbox": [ - 89.69999694824219, - 147.0999298095703, - 116.39999389648438, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@\u001c@9@\u001c@9@\u001c@", - "origin": [ - 116.39999389648438, - 151.7999267578125 - ], - "bbox": [ - 116.39999389648438, - 145.4999237060547, - 149.70001220703125, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 149.70001220703125, - 151.7999267578125 - ], - "bbox": [ - 149.70001220703125, - 147.0999298095703, - 155.40000915527344, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[", - "origin": [ - 155.40000915527344, - 151.7999267578125 - ], - "bbox": [ - 155.40000915527344, - 145.7999267578125, - 160.3000030517578, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";Ç\u001c\u001bu6[6=©", - "origin": [ - 160.3000030517578, - 151.7999267578125 - ], - "bbox": [ - 160.3000030517578, - 145.4999237060547, - 184.1999969482422, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "IY\\[\u000e]", - "origin": [ - 184.1999969482422, - 151.7999267578125 - ], - "bbox": [ - 184.1999969482422, - 147.0999298095703, - 211.09999084472656, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@\u001c@9ù\u001c@\u001c@9@", - "origin": [ - 211.09999084472656, - 151.7999267578125 - ], - "bbox": [ - 211.09999084472656, - 145.4999237060547, - 244.40000915527344, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 244.40000915527344, - 151.7999267578125 - ], - "bbox": [ - 244.40000915527344, - 147.0999298095703, - 250.10000610351562, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[", - "origin": [ - 250.10000610351562, - 151.7999267578125 - ], - "bbox": [ - 250.10000610351562, - 145.7999267578125, - 255.0, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+¤7«-ʬÆ96[\u001b", - "origin": [ - 255.0, - 151.7999267578125 - ], - "bbox": [ - 255.0, - 145.4999237060547, - 279.79998779296875, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "^Y\\[\u0019]", - "origin": [ - 279.79998779296875, - 151.7999267578125 - ], - "bbox": [ - 279.79998779296875, - 147.0999298095703, - 305.1999816894531, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "gÓ @?Ó @?Ó @", - "origin": [ - 305.1999816894531, - 151.7999267578125 - ], - "bbox": [ - 305.1999816894531, - 145.4999237060547, - 344.8999938964844, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F[", - "origin": [ - 344.8999938964844, - 151.7999267578125 - ], - "bbox": [ - 344.8999938964844, - 147.0999298095703, - 350.6999816894531, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 350.6999816894531, - 151.7999267578125 - ], - "bbox": [ - 350.6999816894531, - 145.7999267578125, - 355.4999694824219, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "KÊ-«-¨^6", - "origin": [ - 355.4999694824219, - 151.7999267578125 - ], - "bbox": [ - 355.4999694824219, - 145.4999237060547, - 375.39996337890625, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "RY\\[\u000e]", - "origin": [ - 375.39996337890625, - 151.7999267578125 - ], - "bbox": [ - 375.39996337890625, - 147.0999298095703, - 401.39996337890625, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@\u001c@", - "origin": [ - 401.39996337890625, - 151.7999267578125 - ], - "bbox": [ - 401.39996337890625, - 145.4999237060547, - 414.4999694824219, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šˆ\u0013ˆ", - "origin": [ - 414.4999694824219, - 151.7999267578125 - ], - "bbox": [ - 414.4999694824219, - 145.7999267578125, - 426.0999755859375, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "@9@", - "origin": [ - 426.0999755859375, - 151.7999267578125 - ], - "bbox": [ - 426.0999755859375, - 145.4999237060547, - 437.5999755859375, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 437.5999755859375, - 151.7999267578125 - ], - "bbox": [ - 437.5999755859375, - 147.0999298095703, - 443.29998779296875, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[", - "origin": [ - 443.29998779296875, - 151.7999267578125 - ], - "bbox": [ - 443.29998779296875, - 145.7999267578125, - 448.1999816894531, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "KÇ\u001c\u001bª\u0019aø", - "origin": [ - 448.1999816894531, - 151.7999267578125 - ], - "bbox": [ - 448.1999816894531, - 145.4999237060547, - 468.1000061035156, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "7Y\\[\u0019]", - "origin": [ - 468.1000061035156, - 151.7999267578125 - ], - "bbox": [ - 468.1000061035156, - 147.0999298095703, - 494.70001220703125, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸ù9@\u001cù9@\u001cù\u001c@", - "origin": [ - 494.70001220703125, - 151.7999267578125 - ], - "bbox": [ - 494.70001220703125, - 145.4999237060547, - 527.9000244140625, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F[", - "origin": [ - 527.9000244140625, - 151.7999267578125 - ], - "bbox": [ - 527.9000244140625, - 147.0999298095703, - 533.7000122070312, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 533.7000122070312, - 151.7999267578125 - ], - "bbox": [ - 533.7000122070312, - 145.7999267578125, - 538.5, - 164.9999237060547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 145.4999237060547, - 538.5, - 165.89993286132812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 72.19999694824219, - 159.0998992919922, - 538.4999389648438, - 179.49990844726562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001cÊ-«-Æ\u001c6", - "origin": [ - 72.19999694824219, - 165.39990234375 - ], - "bbox": [ - 72.19999694824219, - 159.0998992919922, - 87.80000305175781, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "_Y`[\u000e]", - "origin": [ - 87.80000305175781, - 165.39990234375 - ], - "bbox": [ - 87.80000305175781, - 160.6999053955078, - 110.30000305175781, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!ù\u001c@9ù\u001c@\u001c@9@", - "origin": [ - 110.30000305175781, - 165.39990234375 - ], - "bbox": [ - 110.30000305175781, - 159.0998992919922, - 143.60000610351562, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 143.60000610351562, - 165.39990234375 - ], - "bbox": [ - 143.60000610351562, - 160.6999053955078, - 149.3000030517578, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[xí", - "origin": [ - 149.3000030517578, - 165.39990234375 - ], - "bbox": [ - 149.3000030517578, - 159.39990234375, - 158.39999389648438, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oþF«z5u6", - "origin": [ - 158.39999389648438, - 165.39990234375 - ], - "bbox": [ - 158.39999389648438, - 159.0998992919922, - 177.6999969482422, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(Y`[\u000e]", - "origin": [ - 177.6999969482422, - 165.39990234375 - ], - "bbox": [ - 177.6999969482422, - 160.6999053955078, - 200.29998779296875, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üˆ\u0013ˆ9ˆ\u0013ˆ\u0013ˆ\u0013ˆ", - "origin": [ - 200.29998779296875, - 165.39990234375 - ], - "bbox": [ - 200.29998779296875, - 159.39990234375, - 240.79998779296875, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "([", - "origin": [ - 240.79998779296875, - 165.39990234375 - ], - "bbox": [ - 240.79998779296875, - 160.6999053955078, - 247.99998474121094, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 247.99998474121094, - 165.39990234375 - ], - "bbox": [ - 247.99998474121094, - 159.39990234375, - 252.79998779296875, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "aø\u001c6=ʬÊ-£", - "origin": [ - 252.79998779296875, - 165.39990234375 - ], - "bbox": [ - 252.79998779296875, - 159.0998992919922, - 272.5, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ií", - "origin": [ - 272.5, - 165.39990234375 - ], - "bbox": [ - 272.5, - 159.39990234375, - 277.29998779296875, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "aYb[\u000e]", - "origin": [ - 277.29998779296875, - 165.39990234375 - ], - "bbox": [ - 277.29998779296875, - 160.6999053955078, - 302.39996337890625, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üˆ\u0013ˆ\u0013ˆ9ˆ", - "origin": [ - 302.39996337890625, - 165.39990234375 - ], - "bbox": [ - 302.39996337890625, - 159.39990234375, - 329.89996337890625, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "i@9@", - "origin": [ - 329.89996337890625, - 165.39990234375 - ], - "bbox": [ - 329.89996337890625, - 159.0998992919922, - 341.4999694824219, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 341.4999694824219, - 165.39990234375 - ], - "bbox": [ - 341.4999694824219, - 160.6999053955078, - 347.1999816894531, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 347.1999816894531, - 165.39990234375 - ], - "bbox": [ - 347.1999816894531, - 159.39990234375, - 351.9999694824219, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "e¨#\u00194\u001bu£\n£\u001c©", - "origin": [ - 351.9999694824219, - 165.39990234375 - ], - "bbox": [ - 351.9999694824219, - 159.0998992919922, - 384.199951171875, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "cYV[\u0019]", - "origin": [ - 384.199951171875, - 165.39990234375 - ], - "bbox": [ - 384.199951171875, - 160.6999053955078, - 407.6999816894531, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸ù9@\u001c@9@\u001c@\u001c@", - "origin": [ - 407.6999816894531, - 165.39990234375 - ], - "bbox": [ - 407.6999816894531, - 159.0998992919922, - 440.8999938964844, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F[", - "origin": [ - 440.8999938964844, - 165.39990234375 - ], - "bbox": [ - 440.8999938964844, - 160.6999053955078, - 446.6999816894531, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 446.6999816894531, - 165.39990234375 - ], - "bbox": [ - 446.6999816894531, - 159.39990234375, - 451.4999694824219, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1©\u001a\u0019aÆ\nø", - "origin": [ - 451.4999694824219, - 165.39990234375 - ], - "bbox": [ - 451.4999694824219, - 159.0998992919922, - 471.29998779296875, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "dYb[\u0019]", - "origin": [ - 471.29998779296875, - 165.39990234375 - ], - "bbox": [ - 471.29998779296875, - 160.6999053955078, - 494.6999816894531, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸@9@\u001c@9@\u001cù\u001c@", - "origin": [ - 494.6999816894531, - 165.39990234375 - ], - "bbox": [ - 494.6999816894531, - 159.0998992919922, - 527.8999633789062, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F[", - "origin": [ - 527.8999633789062, - 165.39990234375 - ], - "bbox": [ - 527.8999633789062, - 160.6999053955078, - 533.699951171875, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 533.699951171875, - 165.39990234375 - ], - "bbox": [ - 533.699951171875, - 159.39990234375, - 538.4999389648438, - 178.5998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 159.0998992919922, - 538.4999389648438, - 179.49990844726562 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 72.19999694824219, - 172.79991149902344, - 538.2000732421875, - 193.19992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu6=¥", - "origin": [ - 72.19999694824219, - 179.09991455078125 - ], - "bbox": [ - 72.19999694824219, - 172.79991149902344, - 80.69999694824219, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ZYe[\u000e]", - "origin": [ - 80.69999694824219, - 179.09991455078125 - ], - "bbox": [ - 80.69999694824219, - 174.39991760253906, - 107.29999542236328, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üˆ\u0013ˆ", - "origin": [ - 107.29999542236328, - 179.09991455078125 - ], - "bbox": [ - 107.29999542236328, - 173.09991455078125, - 121.89999389648438, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "@9@\u001c@9@", - "origin": [ - 121.89999389648438, - 179.09991455078125 - ], - "bbox": [ - 121.89999389648438, - 172.79991149902344, - 143.5, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 143.5, - 179.09991455078125 - ], - "bbox": [ - 143.5, - 174.39991760253906, - 149.1999969482422, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 149.1999969482422, - 179.09991455078125 - ], - "bbox": [ - 149.1999969482422, - 173.09991455078125, - 154.0, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ÐFÊ-§F6", - "origin": [ - 154.0, - 179.09991455078125 - ], - "bbox": [ - 154.0, - 172.79991149902344, - 173.6999969482422, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "fYg[\u000e]", - "origin": [ - 173.6999969482422, - 179.09991455078125 - ], - "bbox": [ - 173.6999969482422, - 174.39991760253906, - 199.3000030517578, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@9@\u001c@\u001c@", - "origin": [ - 199.3000030517578, - 179.09991455078125 - ], - "bbox": [ - 199.3000030517578, - 172.79991149902344, - 222.50001525878906, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šˆ\u0013ˆ", - "origin": [ - 222.50001525878906, - 179.09991455078125 - ], - "bbox": [ - 222.50001525878906, - 173.09991455078125, - 234.1000213623047, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "_[", - "origin": [ - 234.1000213623047, - 179.09991455078125 - ], - "bbox": [ - 234.1000213623047, - 174.39991760253906, - 241.2000274658203, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[", - "origin": [ - 241.2000274658203, - 179.09991455078125 - ], - "bbox": [ - 241.2000274658203, - 173.09991455078125, - 246.1000213623047, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";\u0018F§F\u001bu\u0018FÊ-6", - "origin": [ - 246.1000213623047, - 179.09991455078125 - ], - "bbox": [ - 246.1000213623047, - 172.79991149902344, - 275.4000244140625, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "hYg[\u0019]", - "origin": [ - 275.4000244140625, - 179.09991455078125 - ], - "bbox": [ - 275.4000244140625, - 174.39991760253906, - 301.0000305175781, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!ù\u001c@\u001c@9@\u001cù9@", - "origin": [ - 301.0000305175781, - 179.09991455078125 - ], - "bbox": [ - 301.0000305175781, - 172.79991149902344, - 334.300048828125, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 334.300048828125, - 179.09991455078125 - ], - "bbox": [ - 334.300048828125, - 174.39991760253906, - 340.00006103515625, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 340.00006103515625, - 179.09991455078125 - ], - "bbox": [ - 340.00006103515625, - 173.09991455078125, - 344.800048828125, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�576e\u00194Ê", - "origin": [ - 344.800048828125, - 179.09991455078125 - ], - "bbox": [ - 344.800048828125, - 172.79991149902344, - 363.9000549316406, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "iYg[\u000e]", - "origin": [ - 363.9000549316406, - 179.09991455078125 - ], - "bbox": [ - 363.9000549316406, - 174.39991760253906, - 387.7000427246094, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@9@\u001cù\u001c@9ù\u001c@", - "origin": [ - 387.7000427246094, - 179.09991455078125 - ], - "bbox": [ - 387.7000427246094, - 172.79991149902344, - 421.00006103515625, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F[", - "origin": [ - 421.00006103515625, - 179.09991455078125 - ], - "bbox": [ - 421.00006103515625, - 174.39991760253906, - 426.800048828125, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 426.800048828125, - 179.09991455078125 - ], - "bbox": [ - 426.800048828125, - 173.09991455078125, - 431.60003662109375, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�Ôõ§\u001a¦ªþ\u001a¤7«-\u0019", - "origin": [ - 431.60003662109375, - 179.09991455078125 - ], - "bbox": [ - 431.60003662109375, - 172.79991149902344, - 462.4000549316406, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "jYg[\u000e]", - "origin": [ - 462.4000549316406, - 179.09991455078125 - ], - "bbox": [ - 462.4000549316406, - 174.39991760253906, - 488.5000305175781, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üˆ\u0013ˆ", - "origin": [ - 488.5000305175781, - 179.09991455078125 - ], - "bbox": [ - 488.5000305175781, - 173.09991455078125, - 503.10003662109375, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "i@\u001c@", - "origin": [ - 503.10003662109375, - 179.09991455078125 - ], - "bbox": [ - 503.10003662109375, - 172.79991149902344, - 514.6000366210938, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šˆ9ˆ", - "origin": [ - 514.6000366210938, - 179.09991455078125 - ], - "bbox": [ - 514.6000366210938, - 173.09991455078125, - 526.1000366210938, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "([", - "origin": [ - 526.1000366210938, - 179.09991455078125 - ], - "bbox": [ - 526.1000366210938, - 174.39991760253906, - 533.300048828125, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[", - "origin": [ - 533.300048828125, - 179.09991455078125 - ], - "bbox": [ - 533.300048828125, - 173.09991455078125, - 538.2000732421875, - 192.29991149902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 172.79991149902344, - 538.2000732421875, - 193.19992065429688 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 72.29999542236328, - 186.4999237060547, - 157.49998474121094, - 206.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c²?§\u001a\u0019", - "origin": [ - 72.29999542236328, - 192.7999267578125 - ], - "bbox": [ - 72.29999542236328, - 186.4999237060547, - 88.09999084472656, - 206.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "QYk[\u000e]", - "origin": [ - 88.09999084472656, - 192.7999267578125 - ], - "bbox": [ - 88.09999084472656, - 188.0999298095703, - 112.69998931884766, - 205.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@\u001c@", - "origin": [ - 112.69998931884766, - 192.7999267578125 - ], - "bbox": [ - 112.69998931884766, - 186.4999237060547, - 125.79998779296875, - 206.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šˆ9ˆ\u0013ˆ\u0013ˆ", - "origin": [ - 125.79998779296875, - 192.7999267578125 - ], - "bbox": [ - 125.79998779296875, - 186.7999267578125, - 150.29998779296875, - 205.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "([", - "origin": [ - 150.29998779296875, - 192.7999267578125 - ], - "bbox": [ - 150.29998779296875, - 188.0999298095703, - 157.49998474121094, - 205.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29999542236328, - 186.4999237060547, - 157.49998474121094, - 206.89993286132812 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.29999542236328, - 205.19993591308594, - 538.0, - 225.59994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Åb©\u001a6g¦[£\u001c§FÊ-6[§\u001a\u001bH²?§F«×©K¯", - "origin": [ - 72.29999542236328, - 211.49993896484375 - ], - "bbox": [ - 72.29999542236328, - 205.19993591308594, - 152.50001525878906, - 225.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29999542236328, - 205.19993591308594, - 152.50001525878906, - 225.59994506835938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5B\u0018\u001a\u00199¤H¥F\u00194©\u001a¤B¦[6)57576gʬ«Y¤�576#¤[¯", - "origin": [ - 154.60000610351562, - 211.49993896484375 - ], - "bbox": [ - 154.60000610351562, - 205.19993591308594, - 263.79998779296875, - 225.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.60000610351562, - 205.19993591308594, - 263.79998779296875, - 225.59994506835938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "È=¦[\u001b7«¬5V57£\u001c§", - "origin": [ - 266.0, - 211.49993896484375 - ], - "bbox": [ - 266.0, - 205.19993591308594, - 298.0, - 225.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Ë", - "origin": [ - 298.0, - 211.49993896484375 - ], - "bbox": [ - 298.0, - 205.49993896484375, - 302.8999938964844, - 224.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\£\u001c§F\u001bª¤H6[©‚¦)£/¥/6", - "origin": [ - 302.8999938964844, - 211.49993896484375 - ], - "bbox": [ - 302.8999938964844, - 205.19993591308594, - 357.8999938964844, - 225.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ê�‰b�]", - "origin": [ - 357.8999938964844, - 211.49993896484375 - ], - "bbox": [ - 357.8999938964844, - 205.49993896484375, - 381.20001220703125, - 224.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¢6)5M6=©�þF6[ÿF\u0019\u001c¥/Èe¦)«-¨g\u0019\u001cÊ", - "origin": [ - 381.20001220703125, - 211.49993896484375 - ], - "bbox": [ - 381.20001220703125, - 205.19993591308594, - 468.699951171875, - 225.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.0, - 205.19993591308594, - 468.699951171875, - 225.59994506835938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤�£9§\u001a¤VÊ-\u0019\u000fÔõ£\u001c\u001bu¨g6É8", - "origin": [ - 475.29998779296875, - 211.49993896484375 - ], - "bbox": [ - 475.29998779296875, - 205.19993591308594, - 538.0, - 225.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 475.29998779296875, - 205.19993591308594, - 538.0, - 225.59994506835938 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.99996948242188, - 218.8999481201172, - 90.69996643066406, - 239.29995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "[\u000e]", - "origin": [ - 72.99996948242188, - 225.199951171875 - ], - "bbox": [ - 72.99996948242188, - 220.4999542236328, - 77.49996948242188, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!ù", - "origin": [ - 77.49996948242188, - 225.199951171875 - ], - "bbox": [ - 77.49996948242188, - 218.8999481201172, - 85.59996795654297, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šˆ", - "origin": [ - 85.59996795654297, - 225.199951171875 - ], - "bbox": [ - 85.59996795654297, - 219.199951171875, - 90.69996643066406, - 238.3999481201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.99996948242188, - 218.8999481201172, - 90.69996643066406, - 239.29995727539062 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 103.59996795654297, - 218.8999481201172, - 301.9999694824219, - 239.29995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "D4î?D", - "origin": [ - 103.59996795654297, - 225.199951171875 - ], - "bbox": [ - 103.59996795654297, - 218.8999481201172, - 113.69996643066406, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<[", - "origin": [ - 113.69996643066406, - 225.199951171875 - ], - "bbox": [ - 113.69996643066406, - 220.4999542236328, - 119.29996490478516, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4 ", - "origin": [ - 119.29996490478516, - 225.199951171875 - ], - "bbox": [ - 119.29996490478516, - 218.8999481201172, - 124.19996643066406, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G[", - "origin": [ - 124.19996643066406, - 225.199951171875 - ], - "bbox": [ - 124.19996643066406, - 220.4999542236328, - 130.09996032714844, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[ù", - "origin": [ - 130.09996032714844, - 225.199951171875 - ], - "bbox": [ - 130.09996032714844, - 218.8999481201172, - 134.4999542236328, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fˆ", - "origin": [ - 134.4999542236328, - 225.199951171875 - ], - "bbox": [ - 134.4999542236328, - 219.199951171875, - 139.4999542236328, - 238.3999481201172 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "([", - "origin": [ - 139.4999542236328, - 225.199951171875 - ], - "bbox": [ - 139.4999542236328, - 220.4999542236328, - 146.699951171875, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b\u001bu6[\u0018\u001a\u001b7Èe¤�6=©95ª\u00194©?5sÊô¯", - "origin": [ - 146.699951171875, - 225.199951171875 - ], - "bbox": [ - 146.699951171875, - 218.8999481201172, - 214.49996948242188, - 239.29995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.59996795654297, - 218.8999481201172, - 214.49996948242188, - 239.29995727539062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬©?5u6[©\u001a¤7«z5uÈM¥/§…\u001b7£9§FÇ\u001c6", - "origin": [ - 216.69996643066406, - 225.199951171875 - ], - "bbox": [ - 216.69996643066406, - 218.8999481201172, - 290.7999572753906, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 290.7999572753906, - 225.199951171875 - ], - "bbox": [ - 290.7999572753906, - 219.199951171875, - 295.89996337890625, - 238.3999481201172 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&[", - "origin": [ - 295.89996337890625, - 225.199951171875 - ], - "bbox": [ - 295.89996337890625, - 220.4999542236328, - 301.9999694824219, - 238.29995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 216.69996643066406, - 218.8999481201172, - 301.9999694824219, - 239.29995727539062 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 313.7999572753906, - 218.8999481201172, - 521.3999633789062, - 239.29995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "D", - "origin": [ - 313.7999572753906, - 225.199951171875 - ], - "bbox": [ - 313.7999572753906, - 218.8999481201172, - 313.7999572753906, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 313.7999572753906, - 225.199951171875 - ], - "bbox": [ - 313.7999572753906, - 220.4999542236328, - 319.4999694824219, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001eÊô¯", - "origin": [ - 319.4999694824219, - 225.199951171875 - ], - "bbox": [ - 319.4999694824219, - 218.8999481201172, - 330.2999572753906, - 239.29995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.7999572753906, - 218.8999481201172, - 330.2999572753906, - 239.29995727539062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬©?5u6[©\u001a¤7«z5uÈM¥/§…Æ\u001c6=\u001b�5s6)5", - "origin": [ - 332.4999694824219, - 225.199951171875 - ], - "bbox": [ - 332.4999694824219, - 218.8999481201172, - 411.7999572753906, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "l[", - "origin": [ - 411.7999572753906, - 225.199951171875 - ], - "bbox": [ - 411.7999572753906, - 220.4999542236328, - 419.89996337890625, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[î9D", - "origin": [ - 419.89996337890625, - 225.199951171875 - ], - "bbox": [ - 419.89996337890625, - 218.8999481201172, - 429.39996337890625, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<[", - "origin": [ - 429.39996337890625, - 225.199951171875 - ], - "bbox": [ - 429.39996337890625, - 220.4999542236328, - 434.9999694824219, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "RÊ", - "origin": [ - 434.9999694824219, - 225.199951171875 - ], - "bbox": [ - 434.9999694824219, - 218.8999481201172, - 442.39996337890625, - 239.29995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.4999694824219, - 218.8999481201172, - 442.39996337890625, - 239.29995727539062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©?576[©�¤�«¬57ÈM¥/§…ÐFÊ-6[§m ", - "origin": [ - 447.8999938964844, - 225.199951171875 - ], - "bbox": [ - 447.8999938964844, - 218.8999481201172, - 521.3999633789062, - 239.29995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 447.8999938964844, - 218.8999481201172, - 521.3999633789062, - 239.29995727539062 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 78.79998016357422, - 237.59996032714844, - 129.8999786376953, - 257.9999694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79998016357422, - 243.89996337890625 - ], - "bbox": [ - 78.79998016357422, - 237.59996032714844, - 129.8999786376953, - 257.9999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79998016357422, - 237.59996032714844, - 129.8999786376953, - 257.9999694824219 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 72.5, - 262.29998779296875, - 98.9000015258789, - 282.6999816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 268.5999755859375 - ], - "bbox": [ - 72.5, - 262.5999755859375, - 72.5, - 281.79998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 72.5, - 268.5999755859375 - ], - "bbox": [ - 72.5, - 263.89996337890625, - 77.5, - 281.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè?ï/ê", - "origin": [ - 77.5, - 268.5999755859375 - ], - "bbox": [ - 77.5, - 262.29998779296875, - 93.4000015258789, - 282.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 93.4000015258789, - 268.5999755859375 - ], - "bbox": [ - 93.4000015258789, - 262.5999755859375, - 98.9000015258789, - 281.79998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 262.29998779296875, - 98.9000015258789, - 282.6999816894531 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 82.9000015258789, - 275.89996337890625, - 109.30001068115234, - 296.2999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.9000015258789, - 282.199951171875 - ], - "bbox": [ - 82.9000015258789, - 276.199951171875, - 82.9000015258789, - 295.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 82.9000015258789, - 282.199951171875 - ], - "bbox": [ - 82.9000015258789, - 277.49993896484375, - 87.9000015258789, - 295.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në\nð", - "origin": [ - 87.9000015258789, - 282.199951171875 - ], - "bbox": [ - 87.9000015258789, - 275.89996337890625, - 98.50000762939453, - 296.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 98.50000762939453, - 282.199951171875 - ], - "bbox": [ - 98.50000762939453, - 277.49993896484375, - 103.80001068115234, - 295.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 103.80001068115234, - 282.199951171875 - ], - "bbox": [ - 103.80001068115234, - 276.199951171875, - 109.30001068115234, - 295.39996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.9000015258789, - 275.89996337890625, - 109.30001068115234, - 296.2999572753906 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 98.70000457763672, - 289.49993896484375, - 308.3999938964844, - 309.8999328613281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 98.70000457763672, - 295.7999267578125 - ], - "bbox": [ - 98.70000457763672, - 289.7999267578125, - 98.70000457763672, - 308.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è+éaè/ê?ë", - "origin": [ - 98.70000457763672, - 295.7999267578125 - ], - "bbox": [ - 98.70000457763672, - 289.49993896484375, - 124.80000305175781, - 309.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 124.80000305175781, - 295.7999267578125 - ], - "bbox": [ - 124.80000305175781, - 289.7999267578125, - 130.3000030517578, - 308.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�m", - "origin": [ - 130.3000030517578, - 295.7999267578125 - ], - "bbox": [ - 130.3000030517578, - 291.09991455078125, - 135.10000610351562, - 308.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ÞgßUÁHß", - "origin": [ - 135.10000610351562, - 295.7999267578125 - ], - "bbox": [ - 135.10000610351562, - 289.7999267578125, - 161.3000030517578, - 308.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 176.90000915527344, - 295.7999267578125 - ], - "bbox": [ - 176.90000915527344, - 291.09991455078125, - 187.40000915527344, - 308.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߕÀ\u0011Ä|Æ/â\"ÄfžHᕼ/º", - "origin": [ - 187.40000915527344, - 295.7999267578125 - ], - "bbox": [ - 187.40000915527344, - 289.7999267578125, - 250.19996643066406, - 308.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�p", - "origin": [ - 250.19996643066406, - 295.7999267578125 - ], - "bbox": [ - 250.19996643066406, - 291.09991455078125, - 255.19996643066406, - 308.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ÿ…¢€ÝH£", - "origin": [ - 255.19996643066406, - 295.7999267578125 - ], - "bbox": [ - 255.19996643066406, - 289.7999267578125, - 276.6999816894531, - 308.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè+éaè/ê9ë", - "origin": [ - 276.6999816894531, - 295.7999267578125 - ], - "bbox": [ - 276.6999816894531, - 289.49993896484375, - 302.79998779296875, - 309.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 302.79998779296875, - 295.7999267578125 - ], - "bbox": [ - 302.79998779296875, - 289.7999267578125, - 308.3999938964844, - 308.99993896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.70000457763672, - 289.49993896484375, - 308.3999938964844, - 309.8999328613281 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 82.9000015258789, - 303.199951171875, - 114.60000610351562, - 323.5999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 82.9000015258789, - 309.49993896484375 - ], - "bbox": [ - 82.9000015258789, - 303.49993896484375, - 88.20000457763672, - 322.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 88.20000457763672, - 309.49993896484375 - ], - "bbox": [ - 88.20000457763672, - 304.7999267578125, - 93.20000457763672, - 322.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në\nð", - "origin": [ - 93.20000457763672, - 309.49993896484375 - ], - "bbox": [ - 93.20000457763672, - 303.199951171875, - 103.80001068115234, - 323.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 103.80001068115234, - 309.49993896484375 - ], - "bbox": [ - 103.80001068115234, - 304.7999267578125, - 109.00000762939453, - 322.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 109.00000762939453, - 309.49993896484375 - ], - "bbox": [ - 109.00000762939453, - 303.49993896484375, - 114.60000610351562, - 322.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.9000015258789, - 303.199951171875, - 114.60000610351562, - 323.5999450683594 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 82.9000015258789, - 317.09991455078125, - 240.79998779296875, - 336.2999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý|›", - "origin": [ - 82.9000015258789, - 323.09991455078125 - ], - "bbox": [ - 82.9000015258789, - 317.09991455078125, - 87.80000305175781, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A;�:-=", - "origin": [ - 87.80000305175781, - 323.09991455078125 - ], - "bbox": [ - 87.80000305175781, - 318.39990234375, - 103.80000305175781, - 336.1999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÅ/¼f Fº/ÁHºŠ»", - "origin": [ - 103.80000305175781, - 323.09991455078125 - ], - "bbox": [ - 103.80000305175781, - 317.09991455078125, - 145.8000030517578, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$", - "origin": [ - 145.8000030517578, - 323.09991455078125 - ], - "bbox": [ - 145.8000030517578, - 318.39990234375, - 157.10000610351562, - 336.1999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F Iã\"Ä|Þ", - "origin": [ - 157.10000610351562, - 323.09991455078125 - ], - "bbox": [ - 157.10000610351562, - 317.09991455078125, - 177.3000030517578, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S$", - "origin": [ - 177.3000030517578, - 323.09991455078125 - ], - "bbox": [ - 177.3000030517578, - 318.39990234375, - 183.5, - 336.1999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~Ÿ\"ß", - "origin": [ - 183.5, - 323.09991455078125 - ], - "bbox": [ - 183.5, - 317.09991455078125, - 197.89999389648438, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 197.89999389648438, - 323.09991455078125 - ], - "bbox": [ - 197.89999389648438, - 318.39990234375, - 203.0, - 336.1999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ", - "origin": [ - 203.0, - 323.09991455078125 - ], - "bbox": [ - 203.0, - 317.09991455078125, - 208.3000030517578, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"G$", - "origin": [ - 208.3000030517578, - 323.09991455078125 - ], - "bbox": [ - 208.3000030517578, - 318.39990234375, - 219.59999084472656, - 336.1999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\»\"ß", - "origin": [ - 219.59999084472656, - 323.09991455078125 - ], - "bbox": [ - 219.59999084472656, - 317.09991455078125, - 229.59999084472656, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>%$", - "origin": [ - 229.59999084472656, - 323.09991455078125 - ], - "bbox": [ - 229.59999084472656, - 318.39990234375, - 240.79998779296875, - 336.1999206542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.9000015258789, - 317.09991455078125, - 240.79998779296875, - 336.2999267578125 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 114.4000015258789, - 330.7999267578125, - 329.39996337890625, - 349.99993896484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ágž\\Þ", - "origin": [ - 114.4000015258789, - 336.7999267578125 - ], - "bbox": [ - 114.4000015258789, - 330.7999267578125, - 124.5, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O1\"%$", - "origin": [ - 124.5, - 336.7999267578125 - ], - "bbox": [ - 124.5, - 332.09991455078125, - 141.29998779296875, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\»/ß", - "origin": [ - 141.29998779296875, - 336.7999267578125 - ], - "bbox": [ - 141.29998779296875, - 330.7999267578125, - 151.19998168945312, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>%$", - "origin": [ - 151.19998168945312, - 336.7999267578125 - ], - "bbox": [ - 151.19998168945312, - 332.09991455078125, - 162.3999786376953, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "PÄ\nÁgžcÞ", - "origin": [ - 162.3999786376953, - 336.7999267578125 - ], - "bbox": [ - 162.3999786376953, - 330.7999267578125, - 187.29998779296875, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O1\"G$\u0019q#r-r", - "origin": [ - 187.29998779296875, - 336.7999267578125 - ], - "bbox": [ - 187.29998779296875, - 332.09991455078125, - 219.0999755859375, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÃHÃ", - "origin": [ - 219.0999755859375, - 336.7999267578125 - ], - "bbox": [ - 219.0999755859375, - 330.7999267578125, - 229.7999725341797, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@r-r&$", - "origin": [ - 229.7999725341797, - 336.7999267578125 - ], - "bbox": [ - 229.7999725341797, - 332.09991455078125, - 246.29998779296875, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~âgÁgž\\Þ", - "origin": [ - 246.29998779296875, - 336.7999267578125 - ], - "bbox": [ - 246.29998779296875, - 330.7999267578125, - 270.8999938964844, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O1\"%$", - "origin": [ - 270.8999938964844, - 336.7999267578125 - ], - "bbox": [ - 270.8999938964844, - 332.09991455078125, - 287.6999816894531, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×À�Ċ»\"º\nºFÞ", - "origin": [ - 287.6999816894531, - 336.7999267578125 - ], - "bbox": [ - 287.6999816894531, - 330.7999267578125, - 318.4999694824219, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 318.4999694824219, - 336.7999267578125 - ], - "bbox": [ - 318.4999694824219, - 332.09991455078125, - 324.5999755859375, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 324.5999755859375, - 336.7999267578125 - ], - "bbox": [ - 324.5999755859375, - 330.7999267578125, - 329.39996337890625, - 349.99993896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.4000015258789, - 330.7999267578125, - 329.39996337890625, - 349.99993896484375 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 105.20000457763672, - 344.2999267578125, - 226.1000213623047, - 363.49993896484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "·\n·\n·² FºŠ»H´�á", - "origin": [ - 105.20000457763672, - 350.2999267578125 - ], - "bbox": [ - 105.20000457763672, - 344.2999267578125, - 146.1000213623047, - 363.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "a>", - "origin": [ - 146.1000213623047, - 350.2999267578125 - ], - "bbox": [ - 146.1000213623047, - 345.59991455078125, - 155.9000244140625, - 363.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆ", - "origin": [ - 155.9000244140625, - 350.2999267578125 - ], - "bbox": [ - 155.9000244140625, - 344.2999267578125, - 161.00003051757812, - 363.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "V>", - "origin": [ - 161.00003051757812, - 350.2999267578125 - ], - "bbox": [ - 161.00003051757812, - 345.59991455078125, - 171.7000274658203, - 363.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nºg YÆFÀ\u0011ß|Þ/Ÿ…·\n·\n·", - "origin": [ - 171.7000274658203, - 350.2999267578125 - ], - "bbox": [ - 171.7000274658203, - 344.2999267578125, - 226.1000213623047, - 363.49993896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.20000457763672, - 344.2999267578125, - 226.1000213623047, - 363.49993896484375 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 82.9000015258789, - 357.99993896484375, - 114.5999984741211, - 377.199951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£|›", - "origin": [ - 82.9000015258789, - 363.99993896484375 - ], - "bbox": [ - 82.9000015258789, - 357.99993896484375, - 93.10000610351562, - 377.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A;�:#=", - "origin": [ - 93.10000610351562, - 363.99993896484375 - ], - "bbox": [ - 93.10000610351562, - 359.2999267578125, - 109.0, - 377.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 109.0, - 363.99993896484375 - ], - "bbox": [ - 109.0, - 357.99993896484375, - 114.5999984741211, - 377.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.9000015258789, - 357.99993896484375, - 114.5999984741211, - 377.199951171875 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.5, - 371.2999572753906, - 104.20000457763672, - 391.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 72.5, - 377.5999450683594 - ], - "bbox": [ - 72.5, - 371.5999450683594, - 77.80000305175781, - 390.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 77.80000305175781, - 377.5999450683594 - ], - "bbox": [ - 77.80000305175781, - 372.8999328613281, - 82.80000305175781, - 390.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è\nï/ê", - "origin": [ - 82.80000305175781, - 377.5999450683594 - ], - "bbox": [ - 82.80000305175781, - 371.2999572753906, - 98.70000457763672, - 391.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 98.70000457763672, - 377.5999450683594 - ], - "bbox": [ - 98.70000457763672, - 371.5999450683594, - 104.20000457763672, - 390.7999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 371.2999572753906, - 104.20000457763672, - 391.699951171875 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 105.5, - 402.5000305175781, - 139.39999389648438, - 422.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "†oŠ", - "origin": [ - 105.5, - 408.8000183105469 - ], - "bbox": [ - 105.5, - 402.5000305175781, - 112.69999694824219, - 422.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ut", - "origin": [ - 112.69999694824219, - 408.8000183105469 - ], - "bbox": [ - 112.69999694824219, - 404.1000061035156, - 124.0999984741211, - 421.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ɒi", - "origin": [ - 124.0999984741211, - 408.8000183105469 - ], - "bbox": [ - 124.0999984741211, - 402.5000305175781, - 139.39999389648438, - 422.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.5, - 402.5000305175781, - 139.39999389648438, - 422.9000244140625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 152.39999389648438, - 402.5000305175781, - 242.29998779296875, - 422.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0016", - "origin": [ - 152.39999389648438, - 408.8000183105469 - ], - "bbox": [ - 152.39999389648438, - 402.8000183105469, - 152.39999389648438, - 422.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " ", - "origin": [ - 152.39999389648438, - 408.8000183105469 - ], - "bbox": [ - 152.39999389648438, - 402.5000305175781, - 159.39999389648438, - 422.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "3t", - "origin": [ - 159.39999389648438, - 408.8000183105469 - ], - "bbox": [ - 159.39999389648438, - 404.1000061035156, - 163.59999084472656, - 421.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…M„)†oŠ", - "origin": [ - 163.59999084472656, - 408.8000183105469 - ], - "bbox": [ - 163.59999084472656, - 402.5000305175781, - 191.8999786376953, - 422.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.39999389648438, - 402.5000305175781, - 191.8999786376953, - 422.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ƒÉM„[)Šm†oŠ", - "origin": [ - 203.5, - 408.8000183105469 - ], - "bbox": [ - 203.5, - 402.5000305175781, - 242.29998779296875, - 422.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.5, - 402.5000305175781, - 242.29998779296875, - 422.9000244140625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 78.79999542236328, - 436.4000244140625, - 266.20001220703125, - 456.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c¤u¤�£9©\u001a¤", - "origin": [ - 78.79999542236328, - 442.70001220703125 - ], - "bbox": [ - 78.79999542236328, - 436.4000244140625, - 102.29999542236328, - 456.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 102.29999542236328, - 442.70001220703125 - ], - "bbox": [ - 102.29999542236328, - 436.70001220703125, - 106.79999542236328, - 455.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nß^\u0018F\u001buÈ=¤76[©?5", - "origin": [ - 106.79999542236328, - 442.70001220703125 - ], - "bbox": [ - 106.79999542236328, - 436.4000244140625, - 147.79998779296875, - 456.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 147.79998779296875, - 442.70001220703125 - ], - "bbox": [ - 147.79998779296875, - 436.70001220703125, - 152.39999389648438, - 455.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\u00194§Ý¦)£9©95u6[©\n§…¥/§É¥F£\n¦[§F¨g6[©?5= ", - "origin": [ - 152.39999389648438, - 442.70001220703125 - ], - "bbox": [ - 152.39999389648438, - 436.4000244140625, - 266.20001220703125, - 456.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79999542236328, - 436.4000244140625, - 266.20001220703125, - 456.8000183105469 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 72.49999237060547, - 468.3000183105469, - 191.59999084472656, - 487.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ï1\u0019\u001b\u0018", - "origin": [ - 72.49999237060547, - 474.3000183105469 - ], - "bbox": [ - 72.49999237060547, - 468.3000183105469, - 83.39999389648438, - 487.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49999237060547, - 468.3000183105469, - 83.39999389648438, - 487.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC843ê:\u001b%H)0)E5", - "origin": [ - 102.99999237060547, - 474.3000183105469 - ], - "bbox": [ - 102.99999237060547, - 468.3000183105469, - 159.1999969482422, - 487.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.99999237060547, - 468.3000183105469, - 159.1999969482422, - 487.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001d 8\u0013­#)", - "origin": [ - 170.89999389648438, - 474.3000183105469 - ], - "bbox": [ - 170.89999389648438, - 468.3000183105469, - 191.59999084472656, - 487.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.89999389648438, - 468.3000183105469, - 191.59999084472656, - 487.5000305175781 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 72.29999542236328, - 496.5000305175781, - 538.39990234375, - 516.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m\u0019b¨^«Y¤76,6[©M\u0018�\u00194Ç\u001c6", - "origin": [ - 72.29999542236328, - 502.8000183105469 - ], - "bbox": [ - 72.29999542236328, - 496.5000305175781, - 135.39999389648438, - 516.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29999542236328, - 496.5000305175781, - 135.39999389648438, - 516.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu6[Ç9\u001b7£9§F\u0018w6i57£\u001c§F5¦)6~²9§\u001a«?¤76[\u001b75mßsÔõ£\u001c\u001bu¨#\u0019%5u6[\u001bmÊ-6×¥/£/¦[§F¨g6[©?5= a¡¿¤u\u0019aÆ\u001c£\u001c«-\u001b;Ê-6=¤¤7\u0019\u001c§/5u¤ßoÊ-\u0019bʬ«-Ç\u001c©F6", - "origin": [ - 142.0, - 502.8000183105469 - ], - "bbox": [ - 142.0, - 496.5000305175781, - 461.7998962402344, - 516.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 461.7998962402344, - 502.8000183105469 - ], - "bbox": [ - 461.7998962402344, - 496.8000183105469, - 466.89990234375, - 516.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[Ê-6=¤m\u0018\u001a\u00194\u001bª\u00194Ç9\u001bu\u0019\u001c\u0018FþF6=¤", - "origin": [ - 466.89990234375, - 502.8000183105469 - ], - "bbox": [ - 466.89990234375, - 496.5000305175781, - 533.89990234375, - 516.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 533.89990234375, - 502.8000183105469 - ], - "bbox": [ - 533.89990234375, - 496.8000183105469, - 538.39990234375, - 516.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.0, - 496.5000305175781, - 538.39990234375, - 516.9000244140625 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 72.19999694824219, - 510.20001220703125, - 85.5, - 530.5999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6)5ª¦4 ", - "origin": [ - 72.19999694824219, - 516.5 - ], - "bbox": [ - 72.19999694824219, - 510.20001220703125, - 85.5, - 530.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 510.20001220703125, - 85.5, - 530.5999755859375 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 82.80000305175781, - 528.9000244140625, - 101.10000610351562, - 549.2999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 535.2000122070312 - ], - "bbox": [ - 82.80000305175781, - 528.9000244140625, - 82.80000305175781, - 549.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›\n½", - "origin": [ - 82.80000305175781, - 535.2000122070312 - ], - "bbox": [ - 82.80000305175781, - 529.2000122070312, - 95.20000457763672, - 548.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 95.20000457763672, - 535.2000122070312 - ], - "bbox": [ - 95.20000457763672, - 528.9000244140625, - 101.10000610351562, - 549.2999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 528.9000244140625, - 101.10000610351562, - 549.2999877929688 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 82.5, - 542.6000366210938, - 536.300048828125, - 563.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6)5�5u6MÐ\u001a\u0019\u001cʬ«Y¤�6¸\u0018�£9©\u001a¦15u§F6[Ê-ʬ6", - "origin": [ - 82.5, - 548.9000244140625 - ], - "bbox": [ - 82.5, - 542.6000366210938, - 177.40000915527344, - 563.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015T", - "origin": [ - 177.40000915527344, - 548.9000244140625 - ], - "bbox": [ - 177.40000915527344, - 542.9000244140625, - 186.10000610351562, - 562.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ£\u001c©Í\u0019c\u0018\u001a\u0019\u001c¤RÐ�6e¤�£9«¬©Ý¥/6!Ê-\u0019^Ôõ6=\u001b7¨g6[\u001b", - "origin": [ - 186.10000610351562, - 548.9000244140625 - ], - "bbox": [ - 186.10000610351562, - 542.6000366210938, - 309.4000244140625, - 563.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xX", - "origin": [ - 309.4000244140625, - 548.9000244140625 - ], - "bbox": [ - 309.4000244140625, - 542.9000244140625, - 313.60003662109375, - 562.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "o¤76[\u001b75\u001eß^Ôõ£\u001c\u001bª¦)6=\u001bbÊ-6¸¤7\u0019\u001c§/5\u001eß#ÊY\u0019gÊ-«¬Ç9©F6", - "origin": [ - 313.60003662109375, - 548.9000244140625 - ], - "bbox": [ - 313.60003662109375, - 542.6000366210938, - 445.29998779296875, - 563.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "eT˜›/½\"ß\nÄ", - "origin": [ - 445.29998779296875, - 548.9000244140625 - ], - "bbox": [ - 445.29998779296875, - 542.9000244140625, - 473.0999755859375, - 562.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@O", - "origin": [ - 473.0999755859375, - 548.9000244140625 - ], - "bbox": [ - 473.0999755859375, - 544.2000122070312, - 478.1999816894531, - 562.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/X", - "origin": [ - 478.1999816894531, - 548.9000244140625 - ], - "bbox": [ - 478.1999816894531, - 542.9000244140625, - 483.5999755859375, - 562.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") \u001a¶m\u0019g\u0018\u001aʬ§F\u0018�\u00194\u001b75", - "origin": [ - 483.5999755859375, - 548.9000244140625 - ], - "bbox": [ - 483.5999755859375, - 542.6000366210938, - 536.300048828125, - 563.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.5, - 542.6000366210938, - 536.300048828125, - 563.0 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 82.30000305175781, - 556.2000122070312, - 536.4999389648438, - 576.5999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6=¤V¨g£45u6[§F\u001bM¥/6^\u001bu6[©\u001a¥/§‚³R´oµ\u000e¶ã\u0019", - "origin": [ - 82.30000305175781, - 562.5 - ], - "bbox": [ - 82.30000305175781, - 556.2000122070312, - 211.0999755859375, - 576.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Ë", - "origin": [ - 211.0999755859375, - 562.5 - ], - "bbox": [ - 211.0999755859375, - 556.5, - 215.99996948242188, - 575.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤�576[©?5HÊ-\u0019‰Ê-£\u001c©FÇ9§F6[§F\u001bB¥/6e¤Vʬ«-Ç\u001c©F6e¤V6[©�Ôõ£\u001c©\u001a¦)57«-£\u001c©�¥F6^ÊY\u0019‰Ê-\u0019\u001c\u001b7Ç96[§F\u001bH¥/6gÊ-\u0019\u000fÔõ6[©\u001aå)57\u001bu6#¥F\u00194©�¤", - "origin": [ - 215.99996948242188, - 562.5 - ], - "bbox": [ - 215.99996948242188, - 556.2000122070312, - 536.4999389648438, - 576.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 556.2000122070312, - 536.4999389648438, - 576.5999755859375 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 82.20000457763672, - 569.9000854492188, - 503.3999328613281, - 590.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-\u00199²9§\u001a6[Ê-ʬ6H£\u001c©ÉÆ\n«-¤7§\u001a\u0019\u001cʬ«Y¤�6HÊY\u0019^\u0018\u001a\u00194Ç96H³\u001e´oµÍ¶, �µÍ\u00194«Y¤s«¬Ê\u00194\u001bu\u001b7«-Æ\u001c6\u001e\u0018\u001a\u00194\u001b7Ôõ£\u001c«Y¤o²?§F6HÊô¯", - "origin": [ - 82.20000457763672, - 576.2000732421875 - ], - "bbox": [ - 82.20000457763672, - 569.9000854492188, - 357.8999938964844, - 590.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20000457763672, - 569.9000854492188, - 357.8999938964844, - 590.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©…Æ\u001c6=§F«-ʬÊ-6VÔõ£\u001c\u001bª¦)6[\u001bs§F©Ý¤u\u00194§/5b¥/6BÊ-«-Ç\u001c©F69 ", - "origin": [ - 360.1000061035156, - 576.2000732421875 - ], - "bbox": [ - 360.1000061035156, - 569.9000854492188, - 503.3999328613281, - 590.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 360.1000061035156, - 569.9000854492188, - 503.3999328613281, - 590.300048828125 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 82.80000305175781, - 583.5000610351562, - 106.80000305175781, - 603.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 589.800048828125 - ], - "bbox": [ - 82.80000305175781, - 583.5000610351562, - 82.80000305175781, - 603.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "('", - "origin": [ - 82.80000305175781, - 589.800048828125 - ], - "bbox": [ - 82.80000305175781, - 585.1000366210938, - 90.0, - 602.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wì­8", - "origin": [ - 90.0, - 589.800048828125 - ], - "bbox": [ - 90.0, - 583.5000610351562, - 106.80000305175781, - 603.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 583.5000610351562, - 106.80000305175781, - 603.9000244140625 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 82.5, - 597.1000366210938, - 536.0, - 617.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6)5�5u6", - "origin": [ - 82.5, - 603.4000244140625 - ], - "bbox": [ - 82.5, - 597.1000366210938, - 101.50000762939453, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.5, - 597.1000366210938, - 101.50000762939453, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ð�\u00194Ê-«-¤76", - "origin": [ - 111.4000015258789, - 603.4000244140625 - ], - "bbox": [ - 111.4000015258789, - 597.1000366210938, - 131.5, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.4000015258789, - 597.1000366210938, - 131.5, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤76[\u001b75Ùß¹©F£45u«", - "origin": [ - 141.39999389648438, - 603.4000244140625 - ], - "bbox": [ - 141.39999389648438, - 597.1000366210938, - 187.89996337890625, - 617.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 187.89996337890625, - 603.4000244140625 - ], - "bbox": [ - 187.89996337890625, - 597.4000244140625, - 190.49996948242188, - 616.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�6[\u001bÙ§F©", - "origin": [ - 190.49996948242188, - 603.4000244140625 - ], - "bbox": [ - 190.49996948242188, - 597.1000366210938, - 215.4999542236328, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.39999389648438, - 597.1000366210938, - 215.4999542236328, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/È=ÐF§/5ò¥/6ã\u0018\u001a\u00194\u001bª\u00194Ç9\u001bu\u0019\u001c\u0018FþF6", - "origin": [ - 226.60000610351562, - 603.4000244140625 - ], - "bbox": [ - 226.60000610351562, - 597.1000366210938, - 317.0, - 617.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«T", - "origin": [ - 317.0, - 603.4000244140625 - ], - "bbox": [ - 317.0, - 597.4000244140625, - 327.29998779296875, - 616.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "v'", - "origin": [ - 327.29998779296875, - 603.4000244140625 - ], - "bbox": [ - 327.29998779296875, - 598.7000122070312, - 330.3999938964844, - 616.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ċ»\"Ċ¼H»\"ÄF´\n¡gX", - "origin": [ - 330.3999938964844, - 603.4000244140625 - ], - "bbox": [ - 330.3999938964844, - 597.4000244140625, - 378.20001220703125, - 616.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 378.20001220703125, - 603.4000244140625 - ], - "bbox": [ - 378.20001220703125, - 597.1000366210938, - 382.4000244140625, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 226.60000610351562, - 597.1000366210938, - 382.4000244140625, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 390.0, - 603.4000244140625 - ], - "bbox": [ - 390.0, - 597.4000244140625, - 390.0, - 616.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©", - "origin": [ - 390.0, - 603.4000244140625 - ], - "bbox": [ - 390.0, - 597.1000366210938, - 397.5, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.0, - 597.1000366210938, - 397.5, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018w6[§F5‚ø¢\u0018F\u001buÈ=¦[«-¤76[\u001bÙÊ-6", - "origin": [ - 408.3999938964844, - 603.4000244140625 - ], - "bbox": [ - 408.3999938964844, - 597.1000366210938, - 485.99993896484375, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 408.3999938964844, - 597.1000366210938, - 485.99993896484375, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001c\u001bu\u0019\u001c¨gá)57\u001bu6", - "origin": [ - 495.8999938964844, - 603.4000244140625 - ], - "bbox": [ - 495.8999938964844, - 597.1000366210938, - 536.0, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 495.8999938964844, - 597.1000366210938, - 536.0, - 617.5 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 82.39999389648438, - 610.800048828125, - 535.8999633789062, - 631.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä\nÁgžY¼HÞ", - "origin": [ - 82.39999389648438, - 617.1000366210938 - ], - "bbox": [ - 82.39999389648438, - 611.1000366210938, - 103.19998931884766, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")\"", - "origin": [ - 103.19998931884766, - 617.1000366210938 - ], - "bbox": [ - 103.19998931884766, - 612.4000244140625, - 113.59999084472656, - 630.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "KÁHßHàHŸ", - "origin": [ - 113.59999084472656, - 617.1000366210938 - ], - "bbox": [ - 113.59999084472656, - 611.1000366210938, - 139.8999786376953, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 139.8999786376953, - 617.1000366210938 - ], - "bbox": [ - 139.8999786376953, - 612.4000244140625, - 145.99998474121094, - 630.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹ FßFÞ/Ÿ/ߊ»", - "origin": [ - 145.99998474121094, - 617.1000366210938 - ], - "bbox": [ - 145.99998474121094, - 611.1000366210938, - 174.2999725341797, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 174.2999725341797, - 617.1000366210938 - ], - "bbox": [ - 174.2999725341797, - 612.4000244140625, - 180.3999786376953, - 630.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.39999389648438, - 611.1000366210938, - 180.3999786376953, - 630.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»�žY¼H¡/Ÿ", - "origin": [ - 182.39999389648438, - 617.1000366210938 - ], - "bbox": [ - 182.39999389648438, - 611.1000366210938, - 203.49998474121094, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 203.49998474121094, - 617.1000366210938 - ], - "bbox": [ - 203.49998474121094, - 612.4000244140625, - 209.3999786376953, - 630.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.39999389648438, - 611.1000366210938, - 209.3999786376953, - 630.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 211.59999084472656, - 617.1000366210938 - ], - "bbox": [ - 211.59999084472656, - 612.4000244140625, - 211.59999084472656, - 630.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÆ\u0011ácŸ\u0011žYàŠã", - "origin": [ - 211.59999084472656, - 617.1000366210938 - ], - "bbox": [ - 211.59999084472656, - 611.1000366210938, - 242.79998779296875, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ù²?§F«\u001e\u0018w6[\u001bu¨g6)5", - "origin": [ - 242.79998779296875, - 617.1000366210938 - ], - "bbox": [ - 242.79998779296875, - 610.800048828125, - 297.199951171875, - 631.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 297.199951171875, - 617.1000366210938 - ], - "bbox": [ - 297.199951171875, - 611.1000366210938, - 301.7999572753906, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " \u001bu6=¤7\u0018w6=¦15u«¬Æ96[¨g6[©?5", - "origin": [ - 301.7999572753906, - 617.1000366210938 - ], - "bbox": [ - 301.7999572753906, - 610.800048828125, - 369.7999572753906, - 631.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 369.7999572753906, - 617.1000366210938 - ], - "bbox": [ - 369.7999572753906, - 611.1000366210938, - 374.39996337890625, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "~¥/6�\u0018�£?¤�«¬57«-£\u001c©F©\u001a6[\u001b\u000fÊ-6\u000e\u0018�\u00194\u001bª\u00194Ç\u001c\u001bª\u00194\u0018\u001aþF6Ý\u00194Ê-«¬Ç9©FÈ", - "origin": [ - 374.39996337890625, - 617.1000366210938 - ], - "bbox": [ - 374.39996337890625, - 610.800048828125, - 535.8999633789062, - 631.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.59999084472656, - 610.800048828125, - 535.8999633789062, - 631.2000122070312 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 82.29998779296875, - 624.300048828125, - 267.89996337890625, - 644.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ß!Ç?\u00194§\u001a¦ªþ\u001a6", - "origin": [ - 82.29998779296875, - 630.6000366210938 - ], - "bbox": [ - 82.29998779296875, - 624.300048828125, - 115.79998016357422, - 644.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 115.79998016357422, - 630.6000366210938 - ], - "bbox": [ - 115.79998016357422, - 624.6000366210938, - 120.79998016357422, - 643.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F¦)6=©?57\u001buÈ", - "origin": [ - 120.79998016357422, - 630.6000366210938 - ], - "bbox": [ - 120.79998016357422, - 624.300048828125, - 148.19996643066406, - 644.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 148.19996643066406, - 630.6000366210938 - ], - "bbox": [ - 148.19996643066406, - 624.6000366210938, - 153.19996643066406, - 643.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\u00194Ê-«-Ç\u001c©FÈHß#¥/\u001bu£\u001c«¬576H£\u001c§", - "origin": [ - 153.19996643066406, - 630.6000366210938 - ], - "bbox": [ - 153.19996643066406, - 624.300048828125, - 229.49993896484375, - 644.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üË", - "origin": [ - 229.49993896484375, - 630.6000366210938 - ], - "bbox": [ - 229.49993896484375, - 624.6000366210938, - 237.59994506835938, - 643.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤�57«", - "origin": [ - 237.59994506835938, - 630.6000366210938 - ], - "bbox": [ - 237.59994506835938, - 624.300048828125, - 254.59994506835938, - 644.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h�", - "origin": [ - 254.59994506835938, - 630.6000366210938 - ], - "bbox": [ - 254.59994506835938, - 624.6000366210938, - 257.2999572753906, - 643.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aÈ\u001c ", - "origin": [ - 257.2999572753906, - 630.6000366210938 - ], - "bbox": [ - 257.2999572753906, - 624.300048828125, - 267.89996337890625, - 644.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29998779296875, - 624.300048828125, - 267.89996337890625, - 644.7000122070312 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 82.79998779296875, - 638.0000610351562, - 138.69998168945312, - 658.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.79998779296875, - 644.300048828125 - ], - "bbox": [ - 82.79998779296875, - 638.0000610351562, - 82.79998779296875, - 658.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(8%/", - "origin": [ - 82.79998779296875, - 644.300048828125 - ], - "bbox": [ - 82.79998779296875, - 639.6000366210938, - 95.99998474121094, - 657.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 95.99998474121094, - 644.300048828125 - ], - "bbox": [ - 95.99998474121094, - 638.0000610351562, - 101.09998321533203, - 658.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.79998779296875, - 638.0000610351562, - 101.09998321533203, - 658.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ßÉç", - "origin": [ - 111.49998474121094, - 644.300048828125 - ], - "bbox": [ - 111.49998474121094, - 638.0000610351562, - 120.29998779296875, - 658.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(8\u001eK", - "origin": [ - 120.29998779296875, - 644.300048828125 - ], - "bbox": [ - 120.29998779296875, - 639.6000366210938, - 132.99998474121094, - 657.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ì", - "origin": [ - 132.99998474121094, - 644.300048828125 - ], - "bbox": [ - 132.99998474121094, - 638.0000610351562, - 138.69998168945312, - 658.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.49998474121094, - 638.0000610351562, - 138.69998168945312, - 658.4000244140625 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 82.49999237060547, - 651.6000366210938, - 536.4000244140625, - 672.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6=¤~Ð\u001a\u00194Ê-«-¤76=¤~\u0018w6[\u001bu¨^6[5�5u6[©?5s¥F6RÔy\u0019\u001c«¬\u001bu6\u001e\u0019\u001c\u0018F\u0018\u001a\u00194\u001bª\u0019", - "origin": [ - 82.49999237060547, - 657.9000244140625 - ], - "bbox": [ - 82.49999237060547, - 651.6000366210938, - 243.8999786376953, - 672.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f\u001c", - "origin": [ - 243.8999786376953, - 657.9000244140625 - ], - "bbox": [ - 243.8999786376953, - 653.2000122070312, - 248.5999755859375, - 671.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Y57\u001bu6b§F©\u001a6V¦[6[\u001b75u\u00194«-©F6\u001eþF«¬È=\u001bu\u0019\u001c\u001bu¦ªþ\u001a«¬6R¥\u001a\u00194©\u001a¤~ʬ6e¤,5u«z5u\u001b76e¤s¥/6V¥F£\n¦[§F¨g6[©?5u¤= \n¶K6", - "origin": [ - 248.5999755859375, - 657.9000244140625 - ], - "bbox": [ - 248.5999755859375, - 651.6000366210938, - 502.9999694824219, - 672.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ".8%/", - "origin": [ - 502.9999694824219, - 657.9000244140625 - ], - "bbox": [ - 502.9999694824219, - 653.2000122070312, - 516.5999755859375, - 671.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V¤76[\u001b75", - "origin": [ - 516.5999755859375, - 657.9000244140625 - ], - "bbox": [ - 516.5999755859375, - 651.6000366210938, - 536.4000244140625, - 672.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.49999237060547, - 651.6000366210938, - 536.4000244140625, - 672.0 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 82.29999542236328, - 665.300048828125, - 535.7999877929688, - 685.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§/ÿÍÇ9\u001b7£?¤R5u«z5u\u001b76e¤", - "origin": [ - 82.29999542236328, - 671.6000366210938 - ], - "bbox": [ - 82.29999542236328, - 665.300048828125, - 142.39999389648438, - 685.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 142.39999389648438, - 671.6000366210938 - ], - "bbox": [ - 142.39999389648438, - 665.6000366210938, - 146.79998779296875, - 684.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+Ê-6", - "origin": [ - 146.79998779296875, - 671.6000366210938 - ], - "bbox": [ - 146.79998779296875, - 665.300048828125, - 155.49998474121094, - 685.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "^8", - "origin": [ - 155.49998474121094, - 671.6000366210938 - ], - "bbox": [ - 155.49998474121094, - 666.9000244140625, - 163.79998779296875, - 684.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¹", - "origin": [ - 163.79998779296875, - 671.6000366210938 - ], - "bbox": [ - 163.79998779296875, - 665.6000366210938, - 169.19998168945312, - 684.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É6e¤\\5BÊY\u0019‰5u\u00194«-Ê-ʬ6#¥/6gÊY\u0019\u000f\u0018w£\u001cÊ-«-¦[6#¤\\5ª\u00194©\u001a¥F\u0019\u001c\u001bu¥\u000e6)5BÊ-6", - "origin": [ - 169.19998168945312, - 671.6000366210938 - ], - "bbox": [ - 169.19998168945312, - 665.300048828125, - 342.59991455078125, - 685.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "c8\u001eK", - "origin": [ - 342.59991455078125, - 671.6000366210938 - ], - "bbox": [ - 342.59991455078125, - 666.9000244140625, - 356.2999267578125, - 684.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É6e¤\\5BÊY\u0019‰\u0018\u001aʬ§\u001a¤H\u0018w6)5u«z5u6\u001c ", - "origin": [ - 356.2999267578125, - 671.6000366210938 - ], - "bbox": [ - 356.2999267578125, - 665.300048828125, - 440.0999450683594, - 685.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Eš", - "origin": [ - 440.0999450683594, - 671.6000366210938 - ], - "bbox": [ - 440.0999450683594, - 665.6000366210938, - 446.3999328613281, - 684.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©Ù\u0018�6=§/5MøÝ\u0018F\u001buÈ=¦[«-¤76[\u001bHÊ-6", - "origin": [ - 446.3999328613281, - 671.6000366210938 - ], - "bbox": [ - 446.3999328613281, - 665.300048828125, - 535.7999877929688, - 685.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29999542236328, - 665.300048828125, - 535.7999877929688, - 685.7000122070312 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 82.19999694824219, - 678.9000854492188, - 156.8000030517578, - 699.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u00194\u001bª\u00194¨gá)5u\u001b76", - "origin": [ - 82.19999694824219, - 685.2000732421875 - ], - "bbox": [ - 82.19999694824219, - 678.9000854492188, - 122.20000457763672, - 699.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$Ä/Ágžc¼HÞ", - "origin": [ - 122.20000457763672, - 685.2000732421875 - ], - "bbox": [ - 122.20000457763672, - 679.2000732421875, - 150.8000030517578, - 698.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "; ", - "origin": [ - 150.8000030517578, - 685.2000732421875 - ], - "bbox": [ - 150.8000030517578, - 678.9000854492188, - 156.8000030517578, - 699.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19999694824219, - 678.9000854492188, - 156.8000030517578, - 699.300048828125 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 82.80000305175781, - 692.5000610351562, - 101.0999984741211, - 712.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 698.800048828125 - ], - "bbox": [ - 82.80000305175781, - 692.5000610351562, - 82.80000305175781, - 712.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(8", - "origin": [ - 82.80000305175781, - 698.800048828125 - ], - "bbox": [ - 82.80000305175781, - 694.1000366210938, - 90.0, - 711.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½", - "origin": [ - 90.0, - 698.800048828125 - ], - "bbox": [ - 90.0, - 692.800048828125, - 95.19999694824219, - 712.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 95.19999694824219, - 698.800048828125 - ], - "bbox": [ - 95.19999694824219, - 692.5000610351562, - 101.0999984741211, - 712.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 692.5000610351562, - 101.0999984741211, - 712.9000244140625 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 82.5, - 706.2000732421875, - 536.2999877929688, - 726.6000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6)5�5u6cÐ\u001a\u0019\u001cʬ«Y¤�6g\u0018w£\u001c©\u001a¦)57§F6=ʬÊ-6c\u0018w6[\u001bu¨g6)5¸¥;¯", - "origin": [ - 82.5, - 712.5000610351562 - ], - "bbox": [ - 82.5, - 706.2000732421875, - 227.70001220703125, - 726.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.5, - 706.2000732421875, - 227.70001220703125, - 726.6000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019", - "origin": [ - 230.0, - 712.5000610351562 - ], - "bbox": [ - 230.0, - 706.2000732421875, - 230.0, - 726.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 230.0, - 712.5000610351562 - ], - "bbox": [ - 230.0, - 706.5000610351562, - 234.8000030517578, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6=\u001bM§F©F6#Ê-«¬Ç9©F6c¥/6c¤7È[\u0018\u001a\u0019\u001c\u001bu\u0019457«-£\u001c©", - "origin": [ - 234.8000030517578, - 712.5000610351562 - ], - "bbox": [ - 234.8000030517578, - 706.2000732421875, - 362.6999816894531, - 726.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.0, - 706.2000732421875, - 362.6999816894531, - 726.6000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T", - "origin": [ - 372.79998779296875, - 712.5000610351562 - ], - "bbox": [ - 372.79998779296875, - 706.5000610351562, - 372.79998779296875, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "v8", - "origin": [ - 372.79998779296875, - 712.5000610351562 - ], - "bbox": [ - 372.79998779296875, - 707.800048828125, - 375.8999938964844, - 725.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ºŠ»\u0011ž", - "origin": [ - 375.8999938964844, - 712.5000610351562 - ], - "bbox": [ - 375.8999938964844, - 706.5000610351562, - 392.3999938964844, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\fw", - "origin": [ - 392.3999938964844, - 712.5000610351562 - ], - "bbox": [ - 392.3999938964844, - 707.800048828125, - 397.1000061035156, - 725.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ºFÞ/Ÿ\"Ä\nÁA½HÆfÁHßHX", - "origin": [ - 397.1000061035156, - 712.5000610351562 - ], - "bbox": [ - 397.1000061035156, - 706.5000610351562, - 454.8000183105469, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 454.8000183105469, - 712.5000610351562 - ], - "bbox": [ - 454.8000183105469, - 706.2000732421875, - 459.1000061035156, - 726.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Eš", - "origin": [ - 459.1000061035156, - 712.5000610351562 - ], - "bbox": [ - 459.1000061035156, - 706.5000610351562, - 465.3999938964844, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©‚\u0018�6=§/5", - "origin": [ - 465.3999938964844, - 712.5000610351562 - ], - "bbox": [ - 465.3999938964844, - 706.2000732421875, - 498.0, - 726.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "C�", - "origin": [ - 498.0, - 712.5000610351562 - ], - "bbox": [ - 498.0, - 706.5000610351562, - 505.8999938964844, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6[\u001bBÊ-6=¤", - "origin": [ - 505.8999938964844, - 712.5000610351562 - ], - "bbox": [ - 505.8999938964844, - 706.2000732421875, - 536.2999877929688, - 726.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.79998779296875, - 706.2000732421875, - 536.2999877929688, - 726.6000366210938 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 82.19998168945312, - 719.7000732421875, - 134.39999389648438, - 740.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u00194\u001bª\u00194¨gá)5u\u001b76e¤V8", - "origin": [ - 82.19998168945312, - 726.0000610351562 - ], - "bbox": [ - 82.19998168945312, - 719.7000732421875, - 134.39999389648438, - 740.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19998168945312, - 719.7000732421875, - 134.39999389648438, - 740.1000366210938 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 485.1169354838709, - 670.7213675213675, - 493.2741935483871, - 678.8774928774928 - ], - "image_path": "equations_inline/6_485_670_493_678.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 35.29997634887695, - 595.0, - 282.6999816894531 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 303.199951171875, - 595.0, - 336.2999267578125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 105.20000457763672, - 344.2999267578125, - 226.1000213623047, - 363.49993896484375 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 371.2999572753906, - 595.0, - 391.699951171875 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 105.5, - 402.5000305175781, - 139.39999389648438, - 422.9000244140625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 152.39999389648438, - 402.5000305175781, - 242.29998779296875, - 422.9000244140625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 436.4000244140625, - 595.0, - 767.4000244140625 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.5, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ä", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 72.5, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=�", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgó˜%žô–œ9žõóiÁFöy¾\nØ!ܝÁFöôžyØe¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 82.19999694824219, - 80.69993591308594, - 301.59991455078125, - 101.09993743896484 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â\"ÁgžcÞ", - "origin": [ - 82.19999694824219, - 86.99993896484375 - ], - "bbox": [ - 82.19999694824219, - 80.99993896484375, - 97.89999389648438, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O", - "origin": [ - 97.89999389648438, - 86.99993896484375 - ], - "bbox": [ - 97.89999389648438, - 82.29994201660156, - 103.29999542236328, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8/Ëi6[\u001bu¨^6[5R¥/6", - "origin": [ - 103.29999542236328, - 86.99993896484375 - ], - "bbox": [ - 103.29999542236328, - 80.69993591308594, - 157.99996948242188, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 157.99996948242188, - 86.99993896484375 - ], - "bbox": [ - 157.99996948242188, - 80.99993896484375, - 165.69996643066406, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6[\u001boÊY\u0019g¦)£9§Fʬ6=§F\u001bo¥/6=¤bʬ«-6[©\u001a¤sÆ\n«Y¤�«¬57Èe¤", - "origin": [ - 165.69996643066406, - 86.99993896484375 - ], - "bbox": [ - 165.69996643066406, - 80.69993591308594, - 297.1999206542969, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 297.1999206542969, - 86.99993896484375 - ], - "bbox": [ - 297.1999206542969, - 80.99993896484375, - 301.59991455078125, - 100.19993591308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19999694824219, - 80.69993591308594, - 301.59991455078125, - 101.09993743896484 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 82.4000015258789, - 94.29991149902344, - 396.699951171875, - 114.69991302490234 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä\nÁgžcÞ", - "origin": [ - 82.4000015258789, - 100.59991455078125 - ], - "bbox": [ - 82.4000015258789, - 94.59991455078125, - 97.9000015258789, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O", - "origin": [ - 97.9000015258789, - 100.59991455078125 - ], - "bbox": [ - 97.9000015258789, - 95.89991760253906, - 103.30000305175781, - 113.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8/Ëi6[\u001bu¨^6[5R¥/6", - "origin": [ - 103.30000305175781, - 100.59991455078125 - ], - "bbox": [ - 103.30000305175781, - 94.29991149902344, - 157.99998474121094, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 157.99998474121094, - 100.59991455078125 - ], - "bbox": [ - 157.99998474121094, - 94.59991455078125, - 165.69998168945312, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6[\u001boÊY\u0019g¦)£9§Fʬ6=§F\u001bo¥/6=¤bʬ«-6[©\u001a¤o¤7È[Ê-6=¦)57«-£\u001c©F©\u001aÈ=¤s\u0018\u001a\u0019\u001c\u001boÊô¯", - "origin": [ - 165.69998168945312, - 100.59991455078125 - ], - "bbox": [ - 165.69998168945312, - 94.29991149902344, - 349.49993896484375, - 114.69991302490234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.4000015258789, - 94.29991149902344, - 349.49993896484375, - 114.69991302490234 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§/57«-Ê-«-¤u\u0019%5u6[§F\u001b", - "origin": [ - 351.70001220703125, - 100.59991455078125 - ], - "bbox": [ - 351.70001220703125, - 94.29991149902344, - 392.0999450683594, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 392.0999450683594, - 100.59991455078125 - ], - "bbox": [ - 392.0999450683594, - 94.59991455078125, - 396.699951171875, - 113.79991149902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.70001220703125, - 94.29991149902344, - 396.699951171875, - 114.69991302490234 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 82.0999984741211, - 107.99992370605469, - 326.3999938964844, - 128.39993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\n¼� Fº/ÁHºF»", - "origin": [ - 82.0999984741211, - 114.2999267578125 - ], - "bbox": [ - 82.0999984741211, - 108.2999267578125, - 113.80000305175781, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8/Ëi6[\u001bu¨g6)5R¥/6", - "origin": [ - 113.80000305175781, - 114.2999267578125 - ], - "bbox": [ - 113.80000305175781, - 107.99992370605469, - 168.39999389648438, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 168.39999389648438, - 114.2999267578125 - ], - "bbox": [ - 168.39999389648438, - 108.2999267578125, - 176.09999084472656, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aÿ\n6=\u001boÊ-\u0019g¦[£\u001c§FÊ-6[§F\u001bb¥F§‰Ôõ£9©\u001a¥É¥/6BÊ-\u0019^\u0018\u001a\u0019\u001cÇ\u001c69 ", - "origin": [ - 176.09999084472656, - 114.2999267578125 - ], - "bbox": [ - 176.09999084472656, - 107.99992370605469, - 326.3999938964844, - 128.39993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.0999984741211, - 107.99992370605469, - 326.3999938964844, - 128.39993286132812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.5, - 126.69993591308594, - 154.5, - 147.09994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "®\u001e§F6=Ê-²?§F6e¤o¦)£\u001c§\u001aʬ6=§F\u001bu¤V8", - "origin": [ - 72.5, - 132.99993896484375 - ], - "bbox": [ - 72.5, - 126.69993591308594, - 154.5, - 147.09994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 126.69993591308594, - 154.5, - 147.09994506835938 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.19999694824219, - 145.4999237060547, - 538.5, - 165.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÐFÊY\u0019\u001c¦", - "origin": [ - 72.19999694824219, - 151.7999267578125 - ], - "bbox": [ - 72.19999694824219, - 145.4999237060547, - 85.5999984741211, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×V", - "origin": [ - 85.5999984741211, - 151.7999267578125 - ], - "bbox": [ - 85.5999984741211, - 145.7999267578125, - 89.69999694824219, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ZY\\[\u000e]", - "origin": [ - 89.69999694824219, - 151.7999267578125 - ], - "bbox": [ - 89.69999694824219, - 147.0999298095703, - 116.39999389648438, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@\u001c@9@\u001c@9@\u001c@", - "origin": [ - 116.39999389648438, - 151.7999267578125 - ], - "bbox": [ - 116.39999389648438, - 145.4999237060547, - 149.70001220703125, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 149.70001220703125, - 151.7999267578125 - ], - "bbox": [ - 149.70001220703125, - 147.0999298095703, - 155.40000915527344, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[", - "origin": [ - 155.40000915527344, - 151.7999267578125 - ], - "bbox": [ - 155.40000915527344, - 145.7999267578125, - 160.3000030517578, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";Ç\u001c\u001bu6[6=©", - "origin": [ - 160.3000030517578, - 151.7999267578125 - ], - "bbox": [ - 160.3000030517578, - 145.4999237060547, - 184.1999969482422, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "IY\\[\u000e]", - "origin": [ - 184.1999969482422, - 151.7999267578125 - ], - "bbox": [ - 184.1999969482422, - 147.0999298095703, - 211.09999084472656, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@\u001c@9ù\u001c@\u001c@9@", - "origin": [ - 211.09999084472656, - 151.7999267578125 - ], - "bbox": [ - 211.09999084472656, - 145.4999237060547, - 244.40000915527344, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 244.40000915527344, - 151.7999267578125 - ], - "bbox": [ - 244.40000915527344, - 147.0999298095703, - 250.10000610351562, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[", - "origin": [ - 250.10000610351562, - 151.7999267578125 - ], - "bbox": [ - 250.10000610351562, - 145.7999267578125, - 255.0, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+¤7«-ʬÆ96[\u001b", - "origin": [ - 255.0, - 151.7999267578125 - ], - "bbox": [ - 255.0, - 145.4999237060547, - 279.79998779296875, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "^Y\\[\u0019]", - "origin": [ - 279.79998779296875, - 151.7999267578125 - ], - "bbox": [ - 279.79998779296875, - 147.0999298095703, - 305.1999816894531, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "gÓ @?Ó @?Ó @", - "origin": [ - 305.1999816894531, - 151.7999267578125 - ], - "bbox": [ - 305.1999816894531, - 145.4999237060547, - 344.8999938964844, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F[", - "origin": [ - 344.8999938964844, - 151.7999267578125 - ], - "bbox": [ - 344.8999938964844, - 147.0999298095703, - 350.6999816894531, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 350.6999816894531, - 151.7999267578125 - ], - "bbox": [ - 350.6999816894531, - 145.7999267578125, - 355.4999694824219, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "KÊ-«-¨^6", - "origin": [ - 355.4999694824219, - 151.7999267578125 - ], - "bbox": [ - 355.4999694824219, - 145.4999237060547, - 375.39996337890625, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "RY\\[\u000e]", - "origin": [ - 375.39996337890625, - 151.7999267578125 - ], - "bbox": [ - 375.39996337890625, - 147.0999298095703, - 401.39996337890625, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@\u001c@", - "origin": [ - 401.39996337890625, - 151.7999267578125 - ], - "bbox": [ - 401.39996337890625, - 145.4999237060547, - 414.4999694824219, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šˆ\u0013ˆ", - "origin": [ - 414.4999694824219, - 151.7999267578125 - ], - "bbox": [ - 414.4999694824219, - 145.7999267578125, - 426.0999755859375, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "@9@", - "origin": [ - 426.0999755859375, - 151.7999267578125 - ], - "bbox": [ - 426.0999755859375, - 145.4999237060547, - 437.5999755859375, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 437.5999755859375, - 151.7999267578125 - ], - "bbox": [ - 437.5999755859375, - 147.0999298095703, - 443.29998779296875, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[", - "origin": [ - 443.29998779296875, - 151.7999267578125 - ], - "bbox": [ - 443.29998779296875, - 145.7999267578125, - 448.1999816894531, - 164.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "KÇ\u001c\u001bª\u0019aø", - "origin": [ - 448.1999816894531, - 151.7999267578125 - ], - "bbox": [ - 448.1999816894531, - 145.4999237060547, - 468.1000061035156, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "7Y\\[\u0019]", - "origin": [ - 468.1000061035156, - 151.7999267578125 - ], - "bbox": [ - 468.1000061035156, - 147.0999298095703, - 494.70001220703125, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸ù9@\u001cù9@\u001cù\u001c@", - "origin": [ - 494.70001220703125, - 151.7999267578125 - ], - "bbox": [ - 494.70001220703125, - 145.4999237060547, - 527.9000244140625, - 165.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F[", - "origin": [ - 527.9000244140625, - 151.7999267578125 - ], - "bbox": [ - 527.9000244140625, - 147.0999298095703, - 533.7000122070312, - 164.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 533.7000122070312, - 151.7999267578125 - ], - "bbox": [ - 533.7000122070312, - 145.7999267578125, - 538.5, - 164.9999237060547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 145.4999237060547, - 538.5, - 165.89993286132812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 72.19999694824219, - 159.0998992919922, - 538.4999389648438, - 179.49990844726562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001cÊ-«-Æ\u001c6", - "origin": [ - 72.19999694824219, - 165.39990234375 - ], - "bbox": [ - 72.19999694824219, - 159.0998992919922, - 87.80000305175781, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "_Y`[\u000e]", - "origin": [ - 87.80000305175781, - 165.39990234375 - ], - "bbox": [ - 87.80000305175781, - 160.6999053955078, - 110.30000305175781, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!ù\u001c@9ù\u001c@\u001c@9@", - "origin": [ - 110.30000305175781, - 165.39990234375 - ], - "bbox": [ - 110.30000305175781, - 159.0998992919922, - 143.60000610351562, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 143.60000610351562, - 165.39990234375 - ], - "bbox": [ - 143.60000610351562, - 160.6999053955078, - 149.3000030517578, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[xí", - "origin": [ - 149.3000030517578, - 165.39990234375 - ], - "bbox": [ - 149.3000030517578, - 159.39990234375, - 158.39999389648438, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oþF«z5u6", - "origin": [ - 158.39999389648438, - 165.39990234375 - ], - "bbox": [ - 158.39999389648438, - 159.0998992919922, - 177.6999969482422, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(Y`[\u000e]", - "origin": [ - 177.6999969482422, - 165.39990234375 - ], - "bbox": [ - 177.6999969482422, - 160.6999053955078, - 200.29998779296875, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üˆ\u0013ˆ9ˆ\u0013ˆ\u0013ˆ\u0013ˆ", - "origin": [ - 200.29998779296875, - 165.39990234375 - ], - "bbox": [ - 200.29998779296875, - 159.39990234375, - 240.79998779296875, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "([", - "origin": [ - 240.79998779296875, - 165.39990234375 - ], - "bbox": [ - 240.79998779296875, - 160.6999053955078, - 247.99998474121094, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 247.99998474121094, - 165.39990234375 - ], - "bbox": [ - 247.99998474121094, - 159.39990234375, - 252.79998779296875, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "aø\u001c6=ʬÊ-£", - "origin": [ - 252.79998779296875, - 165.39990234375 - ], - "bbox": [ - 252.79998779296875, - 159.0998992919922, - 272.5, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ií", - "origin": [ - 272.5, - 165.39990234375 - ], - "bbox": [ - 272.5, - 159.39990234375, - 277.29998779296875, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "aYb[\u000e]", - "origin": [ - 277.29998779296875, - 165.39990234375 - ], - "bbox": [ - 277.29998779296875, - 160.6999053955078, - 302.39996337890625, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üˆ\u0013ˆ\u0013ˆ9ˆ", - "origin": [ - 302.39996337890625, - 165.39990234375 - ], - "bbox": [ - 302.39996337890625, - 159.39990234375, - 329.89996337890625, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "i@9@", - "origin": [ - 329.89996337890625, - 165.39990234375 - ], - "bbox": [ - 329.89996337890625, - 159.0998992919922, - 341.4999694824219, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 341.4999694824219, - 165.39990234375 - ], - "bbox": [ - 341.4999694824219, - 160.6999053955078, - 347.1999816894531, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 347.1999816894531, - 165.39990234375 - ], - "bbox": [ - 347.1999816894531, - 159.39990234375, - 351.9999694824219, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "e¨#\u00194\u001bu£\n£\u001c©", - "origin": [ - 351.9999694824219, - 165.39990234375 - ], - "bbox": [ - 351.9999694824219, - 159.0998992919922, - 384.199951171875, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "cYV[\u0019]", - "origin": [ - 384.199951171875, - 165.39990234375 - ], - "bbox": [ - 384.199951171875, - 160.6999053955078, - 407.6999816894531, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸ù9@\u001c@9@\u001c@\u001c@", - "origin": [ - 407.6999816894531, - 165.39990234375 - ], - "bbox": [ - 407.6999816894531, - 159.0998992919922, - 440.8999938964844, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F[", - "origin": [ - 440.8999938964844, - 165.39990234375 - ], - "bbox": [ - 440.8999938964844, - 160.6999053955078, - 446.6999816894531, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 446.6999816894531, - 165.39990234375 - ], - "bbox": [ - 446.6999816894531, - 159.39990234375, - 451.4999694824219, - 178.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1©\u001a\u0019aÆ\nø", - "origin": [ - 451.4999694824219, - 165.39990234375 - ], - "bbox": [ - 451.4999694824219, - 159.0998992919922, - 471.29998779296875, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "dYb[\u0019]", - "origin": [ - 471.29998779296875, - 165.39990234375 - ], - "bbox": [ - 471.29998779296875, - 160.6999053955078, - 494.6999816894531, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸@9@\u001c@9@\u001cù\u001c@", - "origin": [ - 494.6999816894531, - 165.39990234375 - ], - "bbox": [ - 494.6999816894531, - 159.0998992919922, - 527.8999633789062, - 179.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F[", - "origin": [ - 527.8999633789062, - 165.39990234375 - ], - "bbox": [ - 527.8999633789062, - 160.6999053955078, - 533.699951171875, - 178.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 533.699951171875, - 165.39990234375 - ], - "bbox": [ - 533.699951171875, - 159.39990234375, - 538.4999389648438, - 178.5998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 159.0998992919922, - 538.4999389648438, - 179.49990844726562 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 72.19999694824219, - 172.79991149902344, - 538.2000732421875, - 193.19992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu6=¥", - "origin": [ - 72.19999694824219, - 179.09991455078125 - ], - "bbox": [ - 72.19999694824219, - 172.79991149902344, - 80.69999694824219, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ZYe[\u000e]", - "origin": [ - 80.69999694824219, - 179.09991455078125 - ], - "bbox": [ - 80.69999694824219, - 174.39991760253906, - 107.29999542236328, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üˆ\u0013ˆ", - "origin": [ - 107.29999542236328, - 179.09991455078125 - ], - "bbox": [ - 107.29999542236328, - 173.09991455078125, - 121.89999389648438, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "@9@\u001c@9@", - "origin": [ - 121.89999389648438, - 179.09991455078125 - ], - "bbox": [ - 121.89999389648438, - 172.79991149902344, - 143.5, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 143.5, - 179.09991455078125 - ], - "bbox": [ - 143.5, - 174.39991760253906, - 149.1999969482422, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 149.1999969482422, - 179.09991455078125 - ], - "bbox": [ - 149.1999969482422, - 173.09991455078125, - 154.0, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ÐFÊ-§F6", - "origin": [ - 154.0, - 179.09991455078125 - ], - "bbox": [ - 154.0, - 172.79991149902344, - 173.6999969482422, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "fYg[\u000e]", - "origin": [ - 173.6999969482422, - 179.09991455078125 - ], - "bbox": [ - 173.6999969482422, - 174.39991760253906, - 199.3000030517578, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@9@\u001c@\u001c@", - "origin": [ - 199.3000030517578, - 179.09991455078125 - ], - "bbox": [ - 199.3000030517578, - 172.79991149902344, - 222.50001525878906, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šˆ\u0013ˆ", - "origin": [ - 222.50001525878906, - 179.09991455078125 - ], - "bbox": [ - 222.50001525878906, - 173.09991455078125, - 234.1000213623047, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "_[", - "origin": [ - 234.1000213623047, - 179.09991455078125 - ], - "bbox": [ - 234.1000213623047, - 174.39991760253906, - 241.2000274658203, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[", - "origin": [ - 241.2000274658203, - 179.09991455078125 - ], - "bbox": [ - 241.2000274658203, - 173.09991455078125, - 246.1000213623047, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";\u0018F§F\u001bu\u0018FÊ-6", - "origin": [ - 246.1000213623047, - 179.09991455078125 - ], - "bbox": [ - 246.1000213623047, - 172.79991149902344, - 275.4000244140625, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "hYg[\u0019]", - "origin": [ - 275.4000244140625, - 179.09991455078125 - ], - "bbox": [ - 275.4000244140625, - 174.39991760253906, - 301.0000305175781, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!ù\u001c@\u001c@9@\u001cù9@", - "origin": [ - 301.0000305175781, - 179.09991455078125 - ], - "bbox": [ - 301.0000305175781, - 172.79991149902344, - 334.300048828125, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 334.300048828125, - 179.09991455078125 - ], - "bbox": [ - 334.300048828125, - 174.39991760253906, - 340.00006103515625, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 340.00006103515625, - 179.09991455078125 - ], - "bbox": [ - 340.00006103515625, - 173.09991455078125, - 344.800048828125, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�576e\u00194Ê", - "origin": [ - 344.800048828125, - 179.09991455078125 - ], - "bbox": [ - 344.800048828125, - 172.79991149902344, - 363.9000549316406, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "iYg[\u000e]", - "origin": [ - 363.9000549316406, - 179.09991455078125 - ], - "bbox": [ - 363.9000549316406, - 174.39991760253906, - 387.7000427246094, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@9@\u001cù\u001c@9ù\u001c@", - "origin": [ - 387.7000427246094, - 179.09991455078125 - ], - "bbox": [ - 387.7000427246094, - 172.79991149902344, - 421.00006103515625, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F[", - "origin": [ - 421.00006103515625, - 179.09991455078125 - ], - "bbox": [ - 421.00006103515625, - 174.39991760253906, - 426.800048828125, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I[", - "origin": [ - 426.800048828125, - 179.09991455078125 - ], - "bbox": [ - 426.800048828125, - 173.09991455078125, - 431.60003662109375, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�Ôõ§\u001a¦ªþ\u001a¤7«-\u0019", - "origin": [ - 431.60003662109375, - 179.09991455078125 - ], - "bbox": [ - 431.60003662109375, - 172.79991149902344, - 462.4000549316406, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "jYg[\u000e]", - "origin": [ - 462.4000549316406, - 179.09991455078125 - ], - "bbox": [ - 462.4000549316406, - 174.39991760253906, - 488.5000305175781, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üˆ\u0013ˆ", - "origin": [ - 488.5000305175781, - 179.09991455078125 - ], - "bbox": [ - 488.5000305175781, - 173.09991455078125, - 503.10003662109375, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "i@\u001c@", - "origin": [ - 503.10003662109375, - 179.09991455078125 - ], - "bbox": [ - 503.10003662109375, - 172.79991149902344, - 514.6000366210938, - 193.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šˆ9ˆ", - "origin": [ - 514.6000366210938, - 179.09991455078125 - ], - "bbox": [ - 514.6000366210938, - 173.09991455078125, - 526.1000366210938, - 192.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "([", - "origin": [ - 526.1000366210938, - 179.09991455078125 - ], - "bbox": [ - 526.1000366210938, - 174.39991760253906, - 533.300048828125, - 192.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|[", - "origin": [ - 533.300048828125, - 179.09991455078125 - ], - "bbox": [ - 533.300048828125, - 173.09991455078125, - 538.2000732421875, - 192.29991149902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 172.79991149902344, - 538.2000732421875, - 193.19992065429688 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 72.29999542236328, - 186.4999237060547, - 157.49998474121094, - 206.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c²?§\u001a\u0019", - "origin": [ - 72.29999542236328, - 192.7999267578125 - ], - "bbox": [ - 72.29999542236328, - 186.4999237060547, - 88.09999084472656, - 206.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "QYk[\u000e]", - "origin": [ - 88.09999084472656, - 192.7999267578125 - ], - "bbox": [ - 88.09999084472656, - 188.0999298095703, - 112.69998931884766, - 205.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!@\u001c@", - "origin": [ - 112.69998931884766, - 192.7999267578125 - ], - "bbox": [ - 112.69998931884766, - 186.4999237060547, - 125.79998779296875, - 206.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šˆ9ˆ\u0013ˆ\u0013ˆ", - "origin": [ - 125.79998779296875, - 192.7999267578125 - ], - "bbox": [ - 125.79998779296875, - 186.7999267578125, - 150.29998779296875, - 205.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "([", - "origin": [ - 150.29998779296875, - 192.7999267578125 - ], - "bbox": [ - 150.29998779296875, - 188.0999298095703, - 157.49998474121094, - 205.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29999542236328, - 186.4999237060547, - 157.49998474121094, - 206.89993286132812 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.29999542236328, - 205.19993591308594, - 538.0, - 225.59994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Åb©\u001a6g¦[£\u001c§FÊ-6[§\u001a\u001bH²?§F«×©K¯", - "origin": [ - 72.29999542236328, - 211.49993896484375 - ], - "bbox": [ - 72.29999542236328, - 205.19993591308594, - 152.50001525878906, - 225.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29999542236328, - 205.19993591308594, - 152.50001525878906, - 225.59994506835938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5B\u0018\u001a\u00199¤H¥F\u00194©\u001a¤B¦[6)57576gʬ«Y¤�576#¤[¯", - "origin": [ - 154.60000610351562, - 211.49993896484375 - ], - "bbox": [ - 154.60000610351562, - 205.19993591308594, - 263.79998779296875, - 225.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 154.60000610351562, - 205.19993591308594, - 263.79998779296875, - 225.59994506835938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "È=¦[\u001b7«¬5V57£\u001c§", - "origin": [ - 266.0, - 211.49993896484375 - ], - "bbox": [ - 266.0, - 205.19993591308594, - 298.0, - 225.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Ë", - "origin": [ - 298.0, - 211.49993896484375 - ], - "bbox": [ - 298.0, - 205.49993896484375, - 302.8999938964844, - 224.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\£\u001c§F\u001bª¤H6[©‚¦)£/¥/6", - "origin": [ - 302.8999938964844, - 211.49993896484375 - ], - "bbox": [ - 302.8999938964844, - 205.19993591308594, - 357.8999938964844, - 225.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ê�‰b�]", - "origin": [ - 357.8999938964844, - 211.49993896484375 - ], - "bbox": [ - 357.8999938964844, - 205.49993896484375, - 381.20001220703125, - 224.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¢6)5M6=©�þF6[ÿF\u0019\u001c¥/Èe¦)«-¨g\u0019\u001cÊ", - "origin": [ - 381.20001220703125, - 211.49993896484375 - ], - "bbox": [ - 381.20001220703125, - 205.19993591308594, - 468.699951171875, - 225.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.0, - 205.19993591308594, - 468.699951171875, - 225.59994506835938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤�£9§\u001a¤VÊ-\u0019\u000fÔõ£\u001c\u001bu¨g6É8", - "origin": [ - 475.29998779296875, - 211.49993896484375 - ], - "bbox": [ - 475.29998779296875, - 205.19993591308594, - 538.0, - 225.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 475.29998779296875, - 205.19993591308594, - 538.0, - 225.59994506835938 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.99996948242188, - 218.8999481201172, - 90.69996643066406, - 239.29995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "[\u000e]", - "origin": [ - 72.99996948242188, - 225.199951171875 - ], - "bbox": [ - 72.99996948242188, - 220.4999542236328, - 77.49996948242188, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!ù", - "origin": [ - 77.49996948242188, - 225.199951171875 - ], - "bbox": [ - 77.49996948242188, - 218.8999481201172, - 85.59996795654297, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šˆ", - "origin": [ - 85.59996795654297, - 225.199951171875 - ], - "bbox": [ - 85.59996795654297, - 219.199951171875, - 90.69996643066406, - 238.3999481201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.99996948242188, - 218.8999481201172, - 90.69996643066406, - 239.29995727539062 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 103.59996795654297, - 218.8999481201172, - 301.9999694824219, - 239.29995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "D4î?D", - "origin": [ - 103.59996795654297, - 225.199951171875 - ], - "bbox": [ - 103.59996795654297, - 218.8999481201172, - 113.69996643066406, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<[", - "origin": [ - 113.69996643066406, - 225.199951171875 - ], - "bbox": [ - 113.69996643066406, - 220.4999542236328, - 119.29996490478516, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4 ", - "origin": [ - 119.29996490478516, - 225.199951171875 - ], - "bbox": [ - 119.29996490478516, - 218.8999481201172, - 124.19996643066406, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G[", - "origin": [ - 124.19996643066406, - 225.199951171875 - ], - "bbox": [ - 124.19996643066406, - 220.4999542236328, - 130.09996032714844, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[ù", - "origin": [ - 130.09996032714844, - 225.199951171875 - ], - "bbox": [ - 130.09996032714844, - 218.8999481201172, - 134.4999542236328, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fˆ", - "origin": [ - 134.4999542236328, - 225.199951171875 - ], - "bbox": [ - 134.4999542236328, - 219.199951171875, - 139.4999542236328, - 238.3999481201172 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "([", - "origin": [ - 139.4999542236328, - 225.199951171875 - ], - "bbox": [ - 139.4999542236328, - 220.4999542236328, - 146.699951171875, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b\u001bu6[\u0018\u001a\u001b7Èe¤�6=©95ª\u00194©?5sÊô¯", - "origin": [ - 146.699951171875, - 225.199951171875 - ], - "bbox": [ - 146.699951171875, - 218.8999481201172, - 214.49996948242188, - 239.29995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.59996795654297, - 218.8999481201172, - 214.49996948242188, - 239.29995727539062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬©?5u6[©\u001a¤7«z5uÈM¥/§…\u001b7£9§FÇ\u001c6", - "origin": [ - 216.69996643066406, - 225.199951171875 - ], - "bbox": [ - 216.69996643066406, - 218.8999481201172, - 290.7999572753906, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 290.7999572753906, - 225.199951171875 - ], - "bbox": [ - 290.7999572753906, - 219.199951171875, - 295.89996337890625, - 238.3999481201172 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&[", - "origin": [ - 295.89996337890625, - 225.199951171875 - ], - "bbox": [ - 295.89996337890625, - 220.4999542236328, - 301.9999694824219, - 238.29995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 216.69996643066406, - 218.8999481201172, - 301.9999694824219, - 239.29995727539062 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 313.7999572753906, - 218.8999481201172, - 521.3999633789062, - 239.29995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "D", - "origin": [ - 313.7999572753906, - 225.199951171875 - ], - "bbox": [ - 313.7999572753906, - 218.8999481201172, - 313.7999572753906, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A[", - "origin": [ - 313.7999572753906, - 225.199951171875 - ], - "bbox": [ - 313.7999572753906, - 220.4999542236328, - 319.4999694824219, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001eÊô¯", - "origin": [ - 319.4999694824219, - 225.199951171875 - ], - "bbox": [ - 319.4999694824219, - 218.8999481201172, - 330.2999572753906, - 239.29995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.7999572753906, - 218.8999481201172, - 330.2999572753906, - 239.29995727539062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬©?5u6[©\u001a¤7«z5uÈM¥/§…Æ\u001c6=\u001b�5s6)5", - "origin": [ - 332.4999694824219, - 225.199951171875 - ], - "bbox": [ - 332.4999694824219, - 218.8999481201172, - 411.7999572753906, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "l[", - "origin": [ - 411.7999572753906, - 225.199951171875 - ], - "bbox": [ - 411.7999572753906, - 220.4999542236328, - 419.89996337890625, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[î9D", - "origin": [ - 419.89996337890625, - 225.199951171875 - ], - "bbox": [ - 419.89996337890625, - 218.8999481201172, - 429.39996337890625, - 239.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<[", - "origin": [ - 429.39996337890625, - 225.199951171875 - ], - "bbox": [ - 429.39996337890625, - 220.4999542236328, - 434.9999694824219, - 238.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "RÊ", - "origin": [ - 434.9999694824219, - 225.199951171875 - ], - "bbox": [ - 434.9999694824219, - 218.8999481201172, - 442.39996337890625, - 239.29995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 332.4999694824219, - 218.8999481201172, - 442.39996337890625, - 239.29995727539062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-©?576[©�¤�«¬57ÈM¥/§…ÐFÊ-6[§m ", - "origin": [ - 447.8999938964844, - 225.199951171875 - ], - "bbox": [ - 447.8999938964844, - 218.8999481201172, - 521.3999633789062, - 239.29995727539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 447.8999938964844, - 218.8999481201172, - 521.3999633789062, - 239.29995727539062 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 78.79998016357422, - 237.59996032714844, - 129.8999786376953, - 257.9999694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79998016357422, - 243.89996337890625 - ], - "bbox": [ - 78.79998016357422, - 237.59996032714844, - 129.8999786376953, - 257.9999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79998016357422, - 237.59996032714844, - 129.8999786376953, - 257.9999694824219 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 72.5, - 262.29998779296875, - 98.9000015258789, - 282.6999816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 268.5999755859375 - ], - "bbox": [ - 72.5, - 262.5999755859375, - 72.5, - 281.79998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 72.5, - 268.5999755859375 - ], - "bbox": [ - 72.5, - 263.89996337890625, - 77.5, - 281.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè?ï/ê", - "origin": [ - 77.5, - 268.5999755859375 - ], - "bbox": [ - 77.5, - 262.29998779296875, - 93.4000015258789, - 282.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 93.4000015258789, - 268.5999755859375 - ], - "bbox": [ - 93.4000015258789, - 262.5999755859375, - 98.9000015258789, - 281.79998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 262.29998779296875, - 98.9000015258789, - 282.6999816894531 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 82.9000015258789, - 275.89996337890625, - 109.30001068115234, - 296.2999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.9000015258789, - 282.199951171875 - ], - "bbox": [ - 82.9000015258789, - 276.199951171875, - 82.9000015258789, - 295.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 82.9000015258789, - 282.199951171875 - ], - "bbox": [ - 82.9000015258789, - 277.49993896484375, - 87.9000015258789, - 295.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në\nð", - "origin": [ - 87.9000015258789, - 282.199951171875 - ], - "bbox": [ - 87.9000015258789, - 275.89996337890625, - 98.50000762939453, - 296.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 98.50000762939453, - 282.199951171875 - ], - "bbox": [ - 98.50000762939453, - 277.49993896484375, - 103.80001068115234, - 295.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 103.80001068115234, - 282.199951171875 - ], - "bbox": [ - 103.80001068115234, - 276.199951171875, - 109.30001068115234, - 295.39996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.9000015258789, - 275.89996337890625, - 109.30001068115234, - 296.2999572753906 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 98.70000457763672, - 289.49993896484375, - 308.3999938964844, - 309.8999328613281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 98.70000457763672, - 295.7999267578125 - ], - "bbox": [ - 98.70000457763672, - 289.7999267578125, - 98.70000457763672, - 308.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è+éaè/ê?ë", - "origin": [ - 98.70000457763672, - 295.7999267578125 - ], - "bbox": [ - 98.70000457763672, - 289.49993896484375, - 124.80000305175781, - 309.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 124.80000305175781, - 295.7999267578125 - ], - "bbox": [ - 124.80000305175781, - 289.7999267578125, - 130.3000030517578, - 308.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�m", - "origin": [ - 130.3000030517578, - 295.7999267578125 - ], - "bbox": [ - 130.3000030517578, - 291.09991455078125, - 135.10000610351562, - 308.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ÞgßUÁHß", - "origin": [ - 135.10000610351562, - 295.7999267578125 - ], - "bbox": [ - 135.10000610351562, - 289.7999267578125, - 161.3000030517578, - 308.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 176.90000915527344, - 295.7999267578125 - ], - "bbox": [ - 176.90000915527344, - 291.09991455078125, - 187.40000915527344, - 308.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߕÀ\u0011Ä|Æ/â\"ÄfžHᕼ/º", - "origin": [ - 187.40000915527344, - 295.7999267578125 - ], - "bbox": [ - 187.40000915527344, - 289.7999267578125, - 250.19996643066406, - 308.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�p", - "origin": [ - 250.19996643066406, - 295.7999267578125 - ], - "bbox": [ - 250.19996643066406, - 291.09991455078125, - 255.19996643066406, - 308.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ÿ…¢€ÝH£", - "origin": [ - 255.19996643066406, - 295.7999267578125 - ], - "bbox": [ - 255.19996643066406, - 289.7999267578125, - 276.6999816894531, - 308.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè+éaè/ê9ë", - "origin": [ - 276.6999816894531, - 295.7999267578125 - ], - "bbox": [ - 276.6999816894531, - 289.49993896484375, - 302.79998779296875, - 309.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 302.79998779296875, - 295.7999267578125 - ], - "bbox": [ - 302.79998779296875, - 289.7999267578125, - 308.3999938964844, - 308.99993896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.70000457763672, - 289.49993896484375, - 308.3999938964844, - 309.8999328613281 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 82.9000015258789, - 303.199951171875, - 114.60000610351562, - 323.5999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 82.9000015258789, - 309.49993896484375 - ], - "bbox": [ - 82.9000015258789, - 303.49993896484375, - 88.20000457763672, - 322.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 88.20000457763672, - 309.49993896484375 - ], - "bbox": [ - 88.20000457763672, - 304.7999267578125, - 93.20000457763672, - 322.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në\nð", - "origin": [ - 93.20000457763672, - 309.49993896484375 - ], - "bbox": [ - 93.20000457763672, - 303.199951171875, - 103.80001068115234, - 323.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 103.80001068115234, - 309.49993896484375 - ], - "bbox": [ - 103.80001068115234, - 304.7999267578125, - 109.00000762939453, - 322.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 109.00000762939453, - 309.49993896484375 - ], - "bbox": [ - 109.00000762939453, - 303.49993896484375, - 114.60000610351562, - 322.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.9000015258789, - 303.199951171875, - 114.60000610351562, - 323.5999450683594 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 82.9000015258789, - 317.09991455078125, - 240.79998779296875, - 336.2999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý|›", - "origin": [ - 82.9000015258789, - 323.09991455078125 - ], - "bbox": [ - 82.9000015258789, - 317.09991455078125, - 87.80000305175781, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A;�:-=", - "origin": [ - 87.80000305175781, - 323.09991455078125 - ], - "bbox": [ - 87.80000305175781, - 318.39990234375, - 103.80000305175781, - 336.1999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "kÅ/¼f Fº/ÁHºŠ»", - "origin": [ - 103.80000305175781, - 323.09991455078125 - ], - "bbox": [ - 103.80000305175781, - 317.09991455078125, - 145.8000030517578, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$", - "origin": [ - 145.8000030517578, - 323.09991455078125 - ], - "bbox": [ - 145.8000030517578, - 318.39990234375, - 157.10000610351562, - 336.1999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F Iã\"Ä|Þ", - "origin": [ - 157.10000610351562, - 323.09991455078125 - ], - "bbox": [ - 157.10000610351562, - 317.09991455078125, - 177.3000030517578, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S$", - "origin": [ - 177.3000030517578, - 323.09991455078125 - ], - "bbox": [ - 177.3000030517578, - 318.39990234375, - 183.5, - 336.1999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~Ÿ\"ß", - "origin": [ - 183.5, - 323.09991455078125 - ], - "bbox": [ - 183.5, - 317.09991455078125, - 197.89999389648438, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 197.89999389648438, - 323.09991455078125 - ], - "bbox": [ - 197.89999389648438, - 318.39990234375, - 203.0, - 336.1999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ", - "origin": [ - 203.0, - 323.09991455078125 - ], - "bbox": [ - 203.0, - 317.09991455078125, - 208.3000030517578, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"G$", - "origin": [ - 208.3000030517578, - 323.09991455078125 - ], - "bbox": [ - 208.3000030517578, - 318.39990234375, - 219.59999084472656, - 336.1999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\»\"ß", - "origin": [ - 219.59999084472656, - 323.09991455078125 - ], - "bbox": [ - 219.59999084472656, - 317.09991455078125, - 229.59999084472656, - 336.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>%$", - "origin": [ - 229.59999084472656, - 323.09991455078125 - ], - "bbox": [ - 229.59999084472656, - 318.39990234375, - 240.79998779296875, - 336.1999206542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.9000015258789, - 317.09991455078125, - 240.79998779296875, - 336.2999267578125 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 114.4000015258789, - 330.7999267578125, - 329.39996337890625, - 349.99993896484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ágž\\Þ", - "origin": [ - 114.4000015258789, - 336.7999267578125 - ], - "bbox": [ - 114.4000015258789, - 330.7999267578125, - 124.5, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O1\"%$", - "origin": [ - 124.5, - 336.7999267578125 - ], - "bbox": [ - 124.5, - 332.09991455078125, - 141.29998779296875, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\»/ß", - "origin": [ - 141.29998779296875, - 336.7999267578125 - ], - "bbox": [ - 141.29998779296875, - 330.7999267578125, - 151.19998168945312, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>%$", - "origin": [ - 151.19998168945312, - 336.7999267578125 - ], - "bbox": [ - 151.19998168945312, - 332.09991455078125, - 162.3999786376953, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "PÄ\nÁgžcÞ", - "origin": [ - 162.3999786376953, - 336.7999267578125 - ], - "bbox": [ - 162.3999786376953, - 330.7999267578125, - 187.29998779296875, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O1\"G$\u0019q#r-r", - "origin": [ - 187.29998779296875, - 336.7999267578125 - ], - "bbox": [ - 187.29998779296875, - 332.09991455078125, - 219.0999755859375, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÃHÃ", - "origin": [ - 219.0999755859375, - 336.7999267578125 - ], - "bbox": [ - 219.0999755859375, - 330.7999267578125, - 229.7999725341797, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@r-r&$", - "origin": [ - 229.7999725341797, - 336.7999267578125 - ], - "bbox": [ - 229.7999725341797, - 332.09991455078125, - 246.29998779296875, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~âgÁgž\\Þ", - "origin": [ - 246.29998779296875, - 336.7999267578125 - ], - "bbox": [ - 246.29998779296875, - 330.7999267578125, - 270.8999938964844, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1O1\"%$", - "origin": [ - 270.8999938964844, - 336.7999267578125 - ], - "bbox": [ - 270.8999938964844, - 332.09991455078125, - 287.6999816894531, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×À�Ċ»\"º\nºFÞ", - "origin": [ - 287.6999816894531, - 336.7999267578125 - ], - "bbox": [ - 287.6999816894531, - 330.7999267578125, - 318.4999694824219, - 349.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 318.4999694824219, - 336.7999267578125 - ], - "bbox": [ - 318.4999694824219, - 332.09991455078125, - 324.5999755859375, - 349.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 324.5999755859375, - 336.7999267578125 - ], - "bbox": [ - 324.5999755859375, - 330.7999267578125, - 329.39996337890625, - 349.99993896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.4000015258789, - 330.7999267578125, - 329.39996337890625, - 349.99993896484375 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 105.20000457763672, - 344.2999267578125, - 226.1000213623047, - 363.49993896484375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "·\n·\n·² FºŠ»H´�á", - "origin": [ - 105.20000457763672, - 350.2999267578125 - ], - "bbox": [ - 105.20000457763672, - 344.2999267578125, - 146.1000213623047, - 363.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "a>", - "origin": [ - 146.1000213623047, - 350.2999267578125 - ], - "bbox": [ - 146.1000213623047, - 345.59991455078125, - 155.9000244140625, - 363.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆ", - "origin": [ - 155.9000244140625, - 350.2999267578125 - ], - "bbox": [ - 155.9000244140625, - 344.2999267578125, - 161.00003051757812, - 363.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "V>", - "origin": [ - 161.00003051757812, - 350.2999267578125 - ], - "bbox": [ - 161.00003051757812, - 345.59991455078125, - 171.7000274658203, - 363.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nºg YÆFÀ\u0011ß|Þ/Ÿ…·\n·\n·", - "origin": [ - 171.7000274658203, - 350.2999267578125 - ], - "bbox": [ - 171.7000274658203, - 344.2999267578125, - 226.1000213623047, - 363.49993896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.20000457763672, - 344.2999267578125, - 226.1000213623047, - 363.49993896484375 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 82.9000015258789, - 357.99993896484375, - 114.5999984741211, - 377.199951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£|›", - "origin": [ - 82.9000015258789, - 363.99993896484375 - ], - "bbox": [ - 82.9000015258789, - 357.99993896484375, - 93.10000610351562, - 377.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A;�:#=", - "origin": [ - 93.10000610351562, - 363.99993896484375 - ], - "bbox": [ - 93.10000610351562, - 359.2999267578125, - 109.0, - 377.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 109.0, - 363.99993896484375 - ], - "bbox": [ - 109.0, - 357.99993896484375, - 114.5999984741211, - 377.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.9000015258789, - 357.99993896484375, - 114.5999984741211, - 377.199951171875 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.5, - 371.2999572753906, - 104.20000457763672, - 391.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 72.5, - 377.5999450683594 - ], - "bbox": [ - 72.5, - 371.5999450683594, - 77.80000305175781, - 390.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 77.80000305175781, - 377.5999450683594 - ], - "bbox": [ - 77.80000305175781, - 372.8999328613281, - 82.80000305175781, - 390.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è\nï/ê", - "origin": [ - 82.80000305175781, - 377.5999450683594 - ], - "bbox": [ - 82.80000305175781, - 371.2999572753906, - 98.70000457763672, - 391.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 98.70000457763672, - 377.5999450683594 - ], - "bbox": [ - 98.70000457763672, - 371.5999450683594, - 104.20000457763672, - 390.7999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 371.2999572753906, - 104.20000457763672, - 391.699951171875 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 105.5, - 402.5000305175781, - 139.39999389648438, - 422.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "†oŠ", - "origin": [ - 105.5, - 408.8000183105469 - ], - "bbox": [ - 105.5, - 402.5000305175781, - 112.69999694824219, - 422.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ut", - "origin": [ - 112.69999694824219, - 408.8000183105469 - ], - "bbox": [ - 112.69999694824219, - 404.1000061035156, - 124.0999984741211, - 421.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ɒi", - "origin": [ - 124.0999984741211, - 408.8000183105469 - ], - "bbox": [ - 124.0999984741211, - 402.5000305175781, - 139.39999389648438, - 422.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.5, - 402.5000305175781, - 139.39999389648438, - 422.9000244140625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 152.39999389648438, - 402.5000305175781, - 242.29998779296875, - 422.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0016", - "origin": [ - 152.39999389648438, - 408.8000183105469 - ], - "bbox": [ - 152.39999389648438, - 402.8000183105469, - 152.39999389648438, - 422.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " ", - "origin": [ - 152.39999389648438, - 408.8000183105469 - ], - "bbox": [ - 152.39999389648438, - 402.5000305175781, - 159.39999389648438, - 422.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "3t", - "origin": [ - 159.39999389648438, - 408.8000183105469 - ], - "bbox": [ - 159.39999389648438, - 404.1000061035156, - 163.59999084472656, - 421.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…M„)†oŠ", - "origin": [ - 163.59999084472656, - 408.8000183105469 - ], - "bbox": [ - 163.59999084472656, - 402.5000305175781, - 191.8999786376953, - 422.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.39999389648438, - 402.5000305175781, - 191.8999786376953, - 422.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ƒÉM„[)Šm†oŠ", - "origin": [ - 203.5, - 408.8000183105469 - ], - "bbox": [ - 203.5, - 402.5000305175781, - 242.29998779296875, - 422.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.5, - 402.5000305175781, - 242.29998779296875, - 422.9000244140625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 78.79999542236328, - 436.4000244140625, - 266.20001220703125, - 456.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c¤u¤�£9©\u001a¤", - "origin": [ - 78.79999542236328, - 442.70001220703125 - ], - "bbox": [ - 78.79999542236328, - 436.4000244140625, - 102.29999542236328, - 456.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 102.29999542236328, - 442.70001220703125 - ], - "bbox": [ - 102.29999542236328, - 436.70001220703125, - 106.79999542236328, - 455.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nß^\u0018F\u001buÈ=¤76[©?5", - "origin": [ - 106.79999542236328, - 442.70001220703125 - ], - "bbox": [ - 106.79999542236328, - 436.4000244140625, - 147.79998779296875, - 456.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 147.79998779296875, - 442.70001220703125 - ], - "bbox": [ - 147.79998779296875, - 436.70001220703125, - 152.39999389648438, - 455.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\u00194§Ý¦)£9©95u6[©\n§…¥/§É¥F£\n¦[§F¨g6[©?5= ", - "origin": [ - 152.39999389648438, - 442.70001220703125 - ], - "bbox": [ - 152.39999389648438, - 436.4000244140625, - 266.20001220703125, - 456.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79999542236328, - 436.4000244140625, - 266.20001220703125, - 456.8000183105469 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 72.49999237060547, - 468.3000183105469, - 191.59999084472656, - 487.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ï1\u0019\u001b\u0018", - "origin": [ - 72.49999237060547, - 474.3000183105469 - ], - "bbox": [ - 72.49999237060547, - 468.3000183105469, - 83.39999389648438, - 487.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49999237060547, - 468.3000183105469, - 83.39999389648438, - 487.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC843ê:\u001b%H)0)E5", - "origin": [ - 102.99999237060547, - 474.3000183105469 - ], - "bbox": [ - 102.99999237060547, - 468.3000183105469, - 159.1999969482422, - 487.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.99999237060547, - 468.3000183105469, - 159.1999969482422, - 487.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001d 8\u0013­#)", - "origin": [ - 170.89999389648438, - 474.3000183105469 - ], - "bbox": [ - 170.89999389648438, - 468.3000183105469, - 191.59999084472656, - 487.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.89999389648438, - 468.3000183105469, - 191.59999084472656, - 487.5000305175781 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 72.29999542236328, - 496.5000305175781, - 538.39990234375, - 516.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶m\u0019b¨^«Y¤76,6[©M\u0018�\u00194Ç\u001c6", - "origin": [ - 72.29999542236328, - 502.8000183105469 - ], - "bbox": [ - 72.29999542236328, - 496.5000305175781, - 135.39999389648438, - 516.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29999542236328, - 496.5000305175781, - 135.39999389648438, - 516.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu6[Ç9\u001b7£9§F\u0018w6i57£\u001c§F5¦)6~²9§\u001a«?¤76[\u001b75mßsÔõ£\u001c\u001bu¨#\u0019%5u6[\u001bmÊ-6×¥/£/¦[§F¨g6[©?5= a¡¿¤u\u0019aÆ\u001c£\u001c«-\u001b;Ê-6=¤¤7\u0019\u001c§/5u¤ßoÊ-\u0019bʬ«-Ç\u001c©F6", - "origin": [ - 142.0, - 502.8000183105469 - ], - "bbox": [ - 142.0, - 496.5000305175781, - 461.7998962402344, - 516.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 461.7998962402344, - 502.8000183105469 - ], - "bbox": [ - 461.7998962402344, - 496.8000183105469, - 466.89990234375, - 516.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[Ê-6=¤m\u0018\u001a\u00194\u001bª\u00194Ç9\u001bu\u0019\u001c\u0018FþF6=¤", - "origin": [ - 466.89990234375, - 502.8000183105469 - ], - "bbox": [ - 466.89990234375, - 496.5000305175781, - 533.89990234375, - 516.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 533.89990234375, - 502.8000183105469 - ], - "bbox": [ - 533.89990234375, - 496.8000183105469, - 538.39990234375, - 516.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.0, - 496.5000305175781, - 538.39990234375, - 516.9000244140625 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 72.19999694824219, - 510.20001220703125, - 85.5, - 530.5999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6)5ª¦4 ", - "origin": [ - 72.19999694824219, - 516.5 - ], - "bbox": [ - 72.19999694824219, - 510.20001220703125, - 85.5, - 530.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 510.20001220703125, - 85.5, - 530.5999755859375 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 82.80000305175781, - 528.9000244140625, - 101.10000610351562, - 549.2999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 535.2000122070312 - ], - "bbox": [ - 82.80000305175781, - 528.9000244140625, - 82.80000305175781, - 549.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›\n½", - "origin": [ - 82.80000305175781, - 535.2000122070312 - ], - "bbox": [ - 82.80000305175781, - 529.2000122070312, - 95.20000457763672, - 548.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 95.20000457763672, - 535.2000122070312 - ], - "bbox": [ - 95.20000457763672, - 528.9000244140625, - 101.10000610351562, - 549.2999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 528.9000244140625, - 101.10000610351562, - 549.2999877929688 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 82.5, - 542.6000366210938, - 536.300048828125, - 563.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6)5�5u6MÐ\u001a\u0019\u001cʬ«Y¤�6¸\u0018�£9©\u001a¦15u§F6[Ê-ʬ6", - "origin": [ - 82.5, - 548.9000244140625 - ], - "bbox": [ - 82.5, - 542.6000366210938, - 177.40000915527344, - 563.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015T", - "origin": [ - 177.40000915527344, - 548.9000244140625 - ], - "bbox": [ - 177.40000915527344, - 542.9000244140625, - 186.10000610351562, - 562.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ£\u001c©Í\u0019c\u0018\u001a\u0019\u001c¤RÐ�6e¤�£9«¬©Ý¥/6!Ê-\u0019^Ôõ6=\u001b7¨g6[\u001b", - "origin": [ - 186.10000610351562, - 548.9000244140625 - ], - "bbox": [ - 186.10000610351562, - 542.6000366210938, - 309.4000244140625, - 563.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xX", - "origin": [ - 309.4000244140625, - 548.9000244140625 - ], - "bbox": [ - 309.4000244140625, - 542.9000244140625, - 313.60003662109375, - 562.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "o¤76[\u001b75\u001eß^Ôõ£\u001c\u001bª¦)6=\u001bbÊ-6¸¤7\u0019\u001c§/5\u001eß#ÊY\u0019gÊ-«¬Ç9©F6", - "origin": [ - 313.60003662109375, - 548.9000244140625 - ], - "bbox": [ - 313.60003662109375, - 542.6000366210938, - 445.29998779296875, - 563.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "eT˜›/½\"ß\nÄ", - "origin": [ - 445.29998779296875, - 548.9000244140625 - ], - "bbox": [ - 445.29998779296875, - 542.9000244140625, - 473.0999755859375, - 562.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@O", - "origin": [ - 473.0999755859375, - 548.9000244140625 - ], - "bbox": [ - 473.0999755859375, - 544.2000122070312, - 478.1999816894531, - 562.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/X", - "origin": [ - 478.1999816894531, - 548.9000244140625 - ], - "bbox": [ - 478.1999816894531, - 542.9000244140625, - 483.5999755859375, - 562.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") \u001a¶m\u0019g\u0018\u001aʬ§F\u0018�\u00194\u001b75", - "origin": [ - 483.5999755859375, - 548.9000244140625 - ], - "bbox": [ - 483.5999755859375, - 542.6000366210938, - 536.300048828125, - 563.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.5, - 542.6000366210938, - 536.300048828125, - 563.0 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 82.30000305175781, - 556.2000122070312, - 536.4999389648438, - 576.5999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6=¤V¨g£45u6[§F\u001bM¥/6^\u001bu6[©\u001a¥/§‚³R´oµ\u000e¶ã\u0019", - "origin": [ - 82.30000305175781, - 562.5 - ], - "bbox": [ - 82.30000305175781, - 556.2000122070312, - 211.0999755859375, - 576.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Ë", - "origin": [ - 211.0999755859375, - 562.5 - ], - "bbox": [ - 211.0999755859375, - 556.5, - 215.99996948242188, - 575.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤�576[©?5HÊ-\u0019‰Ê-£\u001c©FÇ9§F6[§F\u001bB¥/6e¤Vʬ«-Ç\u001c©F6e¤V6[©�Ôõ£\u001c©\u001a¦)57«-£\u001c©�¥F6^ÊY\u0019‰Ê-\u0019\u001c\u001b7Ç96[§F\u001bH¥/6gÊ-\u0019\u000fÔõ6[©\u001aå)57\u001bu6#¥F\u00194©�¤", - "origin": [ - 215.99996948242188, - 562.5 - ], - "bbox": [ - 215.99996948242188, - 556.2000122070312, - 536.4999389648438, - 576.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 556.2000122070312, - 536.4999389648438, - 576.5999755859375 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 82.20000457763672, - 569.9000854492188, - 503.3999328613281, - 590.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-\u00199²9§\u001a6[Ê-ʬ6H£\u001c©ÉÆ\n«-¤7§\u001a\u0019\u001cʬ«Y¤�6HÊY\u0019^\u0018\u001a\u00194Ç96H³\u001e´oµÍ¶, �µÍ\u00194«Y¤s«¬Ê\u00194\u001bu\u001b7«-Æ\u001c6\u001e\u0018\u001a\u00194\u001b7Ôõ£\u001c«Y¤o²?§F6HÊô¯", - "origin": [ - 82.20000457763672, - 576.2000732421875 - ], - "bbox": [ - 82.20000457763672, - 569.9000854492188, - 357.8999938964844, - 590.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20000457763672, - 569.9000854492188, - 357.8999938964844, - 590.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©…Æ\u001c6=§F«-ʬÊ-6VÔõ£\u001c\u001bª¦)6[\u001bs§F©Ý¤u\u00194§/5b¥/6BÊ-«-Ç\u001c©F69 ", - "origin": [ - 360.1000061035156, - 576.2000732421875 - ], - "bbox": [ - 360.1000061035156, - 569.9000854492188, - 503.3999328613281, - 590.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 360.1000061035156, - 569.9000854492188, - 503.3999328613281, - 590.300048828125 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 82.80000305175781, - 583.5000610351562, - 106.80000305175781, - 603.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 589.800048828125 - ], - "bbox": [ - 82.80000305175781, - 583.5000610351562, - 82.80000305175781, - 603.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "('", - "origin": [ - 82.80000305175781, - 589.800048828125 - ], - "bbox": [ - 82.80000305175781, - 585.1000366210938, - 90.0, - 602.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wì­8", - "origin": [ - 90.0, - 589.800048828125 - ], - "bbox": [ - 90.0, - 583.5000610351562, - 106.80000305175781, - 603.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 583.5000610351562, - 106.80000305175781, - 603.9000244140625 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 82.5, - 597.1000366210938, - 536.0, - 617.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6)5�5u6", - "origin": [ - 82.5, - 603.4000244140625 - ], - "bbox": [ - 82.5, - 597.1000366210938, - 101.50000762939453, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.5, - 597.1000366210938, - 101.50000762939453, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ð�\u00194Ê-«-¤76", - "origin": [ - 111.4000015258789, - 603.4000244140625 - ], - "bbox": [ - 111.4000015258789, - 597.1000366210938, - 131.5, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.4000015258789, - 597.1000366210938, - 131.5, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤76[\u001b75Ùß¹©F£45u«", - "origin": [ - 141.39999389648438, - 603.4000244140625 - ], - "bbox": [ - 141.39999389648438, - 597.1000366210938, - 187.89996337890625, - 617.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 187.89996337890625, - 603.4000244140625 - ], - "bbox": [ - 187.89996337890625, - 597.4000244140625, - 190.49996948242188, - 616.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�6[\u001bÙ§F©", - "origin": [ - 190.49996948242188, - 603.4000244140625 - ], - "bbox": [ - 190.49996948242188, - 597.1000366210938, - 215.4999542236328, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.39999389648438, - 597.1000366210938, - 215.4999542236328, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/È=ÐF§/5ò¥/6ã\u0018\u001a\u00194\u001bª\u00194Ç9\u001bu\u0019\u001c\u0018FþF6", - "origin": [ - 226.60000610351562, - 603.4000244140625 - ], - "bbox": [ - 226.60000610351562, - 597.1000366210938, - 317.0, - 617.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«T", - "origin": [ - 317.0, - 603.4000244140625 - ], - "bbox": [ - 317.0, - 597.4000244140625, - 327.29998779296875, - 616.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "v'", - "origin": [ - 327.29998779296875, - 603.4000244140625 - ], - "bbox": [ - 327.29998779296875, - 598.7000122070312, - 330.3999938964844, - 616.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ċ»\"Ċ¼H»\"ÄF´\n¡gX", - "origin": [ - 330.3999938964844, - 603.4000244140625 - ], - "bbox": [ - 330.3999938964844, - 597.4000244140625, - 378.20001220703125, - 616.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 378.20001220703125, - 603.4000244140625 - ], - "bbox": [ - 378.20001220703125, - 597.1000366210938, - 382.4000244140625, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 226.60000610351562, - 597.1000366210938, - 382.4000244140625, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 390.0, - 603.4000244140625 - ], - "bbox": [ - 390.0, - 597.4000244140625, - 390.0, - 616.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©", - "origin": [ - 390.0, - 603.4000244140625 - ], - "bbox": [ - 390.0, - 597.1000366210938, - 397.5, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.0, - 597.1000366210938, - 397.5, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018w6[§F5‚ø¢\u0018F\u001buÈ=¦[«-¤76[\u001bÙÊ-6", - "origin": [ - 408.3999938964844, - 603.4000244140625 - ], - "bbox": [ - 408.3999938964844, - 597.1000366210938, - 485.99993896484375, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 408.3999938964844, - 597.1000366210938, - 485.99993896484375, - 617.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001c\u001bu\u0019\u001c¨gá)57\u001bu6", - "origin": [ - 495.8999938964844, - 603.4000244140625 - ], - "bbox": [ - 495.8999938964844, - 597.1000366210938, - 536.0, - 617.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 495.8999938964844, - 597.1000366210938, - 536.0, - 617.5 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 82.39999389648438, - 610.800048828125, - 535.8999633789062, - 631.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä\nÁgžY¼HÞ", - "origin": [ - 82.39999389648438, - 617.1000366210938 - ], - "bbox": [ - 82.39999389648438, - 611.1000366210938, - 103.19998931884766, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")\"", - "origin": [ - 103.19998931884766, - 617.1000366210938 - ], - "bbox": [ - 103.19998931884766, - 612.4000244140625, - 113.59999084472656, - 630.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "KÁHßHàHŸ", - "origin": [ - 113.59999084472656, - 617.1000366210938 - ], - "bbox": [ - 113.59999084472656, - 611.1000366210938, - 139.8999786376953, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 139.8999786376953, - 617.1000366210938 - ], - "bbox": [ - 139.8999786376953, - 612.4000244140625, - 145.99998474121094, - 630.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹ FßFÞ/Ÿ/ߊ»", - "origin": [ - 145.99998474121094, - 617.1000366210938 - ], - "bbox": [ - 145.99998474121094, - 611.1000366210938, - 174.2999725341797, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 174.2999725341797, - 617.1000366210938 - ], - "bbox": [ - 174.2999725341797, - 612.4000244140625, - 180.3999786376953, - 630.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.39999389648438, - 611.1000366210938, - 180.3999786376953, - 630.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»�žY¼H¡/Ÿ", - "origin": [ - 182.39999389648438, - 617.1000366210938 - ], - "bbox": [ - 182.39999389648438, - 611.1000366210938, - 203.49998474121094, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 203.49998474121094, - 617.1000366210938 - ], - "bbox": [ - 203.49998474121094, - 612.4000244140625, - 209.3999786376953, - 630.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.39999389648438, - 611.1000366210938, - 209.3999786376953, - 630.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 211.59999084472656, - 617.1000366210938 - ], - "bbox": [ - 211.59999084472656, - 612.4000244140625, - 211.59999084472656, - 630.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÆ\u0011ácŸ\u0011žYàŠã", - "origin": [ - 211.59999084472656, - 617.1000366210938 - ], - "bbox": [ - 211.59999084472656, - 611.1000366210938, - 242.79998779296875, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ù²?§F«\u001e\u0018w6[\u001bu¨g6)5", - "origin": [ - 242.79998779296875, - 617.1000366210938 - ], - "bbox": [ - 242.79998779296875, - 610.800048828125, - 297.199951171875, - 631.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 297.199951171875, - 617.1000366210938 - ], - "bbox": [ - 297.199951171875, - 611.1000366210938, - 301.7999572753906, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " \u001bu6=¤7\u0018w6=¦15u«¬Æ96[¨g6[©?5", - "origin": [ - 301.7999572753906, - 617.1000366210938 - ], - "bbox": [ - 301.7999572753906, - 610.800048828125, - 369.7999572753906, - 631.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 369.7999572753906, - 617.1000366210938 - ], - "bbox": [ - 369.7999572753906, - 611.1000366210938, - 374.39996337890625, - 630.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "~¥/6�\u0018�£?¤�«¬57«-£\u001c©F©\u001a6[\u001b\u000fÊ-6\u000e\u0018�\u00194\u001bª\u00194Ç\u001c\u001bª\u00194\u0018\u001aþF6Ý\u00194Ê-«¬Ç9©FÈ", - "origin": [ - 374.39996337890625, - 617.1000366210938 - ], - "bbox": [ - 374.39996337890625, - 610.800048828125, - 535.8999633789062, - 631.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.59999084472656, - 610.800048828125, - 535.8999633789062, - 631.2000122070312 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 82.29998779296875, - 624.300048828125, - 267.89996337890625, - 644.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ß!Ç?\u00194§\u001a¦ªþ\u001a6", - "origin": [ - 82.29998779296875, - 630.6000366210938 - ], - "bbox": [ - 82.29998779296875, - 624.300048828125, - 115.79998016357422, - 644.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 115.79998016357422, - 630.6000366210938 - ], - "bbox": [ - 115.79998016357422, - 624.6000366210938, - 120.79998016357422, - 643.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F¦)6=©?57\u001buÈ", - "origin": [ - 120.79998016357422, - 630.6000366210938 - ], - "bbox": [ - 120.79998016357422, - 624.300048828125, - 148.19996643066406, - 644.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 148.19996643066406, - 630.6000366210938 - ], - "bbox": [ - 148.19996643066406, - 624.6000366210938, - 153.19996643066406, - 643.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\u00194Ê-«-Ç\u001c©FÈHß#¥/\u001bu£\u001c«¬576H£\u001c§", - "origin": [ - 153.19996643066406, - 630.6000366210938 - ], - "bbox": [ - 153.19996643066406, - 624.300048828125, - 229.49993896484375, - 644.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üË", - "origin": [ - 229.49993896484375, - 630.6000366210938 - ], - "bbox": [ - 229.49993896484375, - 624.6000366210938, - 237.59994506835938, - 643.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤�57«", - "origin": [ - 237.59994506835938, - 630.6000366210938 - ], - "bbox": [ - 237.59994506835938, - 624.300048828125, - 254.59994506835938, - 644.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h�", - "origin": [ - 254.59994506835938, - 630.6000366210938 - ], - "bbox": [ - 254.59994506835938, - 624.6000366210938, - 257.2999572753906, - 643.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aÈ\u001c ", - "origin": [ - 257.2999572753906, - 630.6000366210938 - ], - "bbox": [ - 257.2999572753906, - 624.300048828125, - 267.89996337890625, - 644.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29998779296875, - 624.300048828125, - 267.89996337890625, - 644.7000122070312 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 82.79998779296875, - 638.0000610351562, - 138.69998168945312, - 658.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.79998779296875, - 644.300048828125 - ], - "bbox": [ - 82.79998779296875, - 638.0000610351562, - 82.79998779296875, - 658.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(8%/", - "origin": [ - 82.79998779296875, - 644.300048828125 - ], - "bbox": [ - 82.79998779296875, - 639.6000366210938, - 95.99998474121094, - 657.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 95.99998474121094, - 644.300048828125 - ], - "bbox": [ - 95.99998474121094, - 638.0000610351562, - 101.09998321533203, - 658.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.79998779296875, - 638.0000610351562, - 101.09998321533203, - 658.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ßÉç", - "origin": [ - 111.49998474121094, - 644.300048828125 - ], - "bbox": [ - 111.49998474121094, - 638.0000610351562, - 120.29998779296875, - 658.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(8\u001eK", - "origin": [ - 120.29998779296875, - 644.300048828125 - ], - "bbox": [ - 120.29998779296875, - 639.6000366210938, - 132.99998474121094, - 657.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ì", - "origin": [ - 132.99998474121094, - 644.300048828125 - ], - "bbox": [ - 132.99998474121094, - 638.0000610351562, - 138.69998168945312, - 658.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.49998474121094, - 638.0000610351562, - 138.69998168945312, - 658.4000244140625 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 82.49999237060547, - 651.6000366210938, - 536.4000244140625, - 672.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6=¤~Ð\u001a\u00194Ê-«-¤76=¤~\u0018w6[\u001bu¨^6[5�5u6[©?5s¥F6RÔy\u0019\u001c«¬\u001bu6\u001e\u0019\u001c\u0018F\u0018\u001a\u00194\u001bª\u0019", - "origin": [ - 82.49999237060547, - 657.9000244140625 - ], - "bbox": [ - 82.49999237060547, - 651.6000366210938, - 243.8999786376953, - 672.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f\u001c", - "origin": [ - 243.8999786376953, - 657.9000244140625 - ], - "bbox": [ - 243.8999786376953, - 653.2000122070312, - 248.5999755859375, - 671.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Y57\u001bu6b§F©\u001a6V¦[6[\u001b75u\u00194«-©F6\u001eþF«¬È=\u001bu\u0019\u001c\u001bu¦ªþ\u001a«¬6R¥\u001a\u00194©\u001a¤~ʬ6e¤,5u«z5u\u001b76e¤s¥/6V¥F£\n¦[§F¨g6[©?5u¤= \n¶K6", - "origin": [ - 248.5999755859375, - 657.9000244140625 - ], - "bbox": [ - 248.5999755859375, - 651.6000366210938, - 502.9999694824219, - 672.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ".8%/", - "origin": [ - 502.9999694824219, - 657.9000244140625 - ], - "bbox": [ - 502.9999694824219, - 653.2000122070312, - 516.5999755859375, - 671.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V¤76[\u001b75", - "origin": [ - 516.5999755859375, - 657.9000244140625 - ], - "bbox": [ - 516.5999755859375, - 651.6000366210938, - 536.4000244140625, - 672.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.49999237060547, - 651.6000366210938, - 536.4000244140625, - 672.0 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 82.29999542236328, - 665.300048828125, - 535.7999877929688, - 685.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§/ÿÍÇ9\u001b7£?¤R5u«z5u\u001b76e¤", - "origin": [ - 82.29999542236328, - 671.6000366210938 - ], - "bbox": [ - 82.29999542236328, - 665.300048828125, - 142.39999389648438, - 685.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 142.39999389648438, - 671.6000366210938 - ], - "bbox": [ - 142.39999389648438, - 665.6000366210938, - 146.79998779296875, - 684.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+Ê-6", - "origin": [ - 146.79998779296875, - 671.6000366210938 - ], - "bbox": [ - 146.79998779296875, - 665.300048828125, - 155.49998474121094, - 685.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "^8", - "origin": [ - 155.49998474121094, - 671.6000366210938 - ], - "bbox": [ - 155.49998474121094, - 666.9000244140625, - 163.79998779296875, - 684.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¹", - "origin": [ - 163.79998779296875, - 671.6000366210938 - ], - "bbox": [ - 163.79998779296875, - 665.6000366210938, - 169.19998168945312, - 684.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É6e¤\\5BÊY\u0019‰5u\u00194«-Ê-ʬ6#¥/6gÊY\u0019\u000f\u0018w£\u001cÊ-«-¦[6#¤\\5ª\u00194©\u001a¥F\u0019\u001c\u001bu¥\u000e6)5BÊ-6", - "origin": [ - 169.19998168945312, - 671.6000366210938 - ], - "bbox": [ - 169.19998168945312, - 665.300048828125, - 342.59991455078125, - 685.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "c8\u001eK", - "origin": [ - 342.59991455078125, - 671.6000366210938 - ], - "bbox": [ - 342.59991455078125, - 666.9000244140625, - 356.2999267578125, - 684.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É6e¤\\5BÊY\u0019‰\u0018\u001aʬ§\u001a¤H\u0018w6)5u«z5u6\u001c ", - "origin": [ - 356.2999267578125, - 671.6000366210938 - ], - "bbox": [ - 356.2999267578125, - 665.300048828125, - 440.0999450683594, - 685.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Eš", - "origin": [ - 440.0999450683594, - 671.6000366210938 - ], - "bbox": [ - 440.0999450683594, - 665.6000366210938, - 446.3999328613281, - 684.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©Ù\u0018�6=§/5MøÝ\u0018F\u001buÈ=¦[«-¤76[\u001bHÊ-6", - "origin": [ - 446.3999328613281, - 671.6000366210938 - ], - "bbox": [ - 446.3999328613281, - 665.300048828125, - 535.7999877929688, - 685.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29999542236328, - 665.300048828125, - 535.7999877929688, - 685.7000122070312 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 82.19999694824219, - 678.9000854492188, - 156.8000030517578, - 699.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u00194\u001bª\u00194¨gá)5u\u001b76", - "origin": [ - 82.19999694824219, - 685.2000732421875 - ], - "bbox": [ - 82.19999694824219, - 678.9000854492188, - 122.20000457763672, - 699.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$Ä/Ágžc¼HÞ", - "origin": [ - 122.20000457763672, - 685.2000732421875 - ], - "bbox": [ - 122.20000457763672, - 679.2000732421875, - 150.8000030517578, - 698.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "; ", - "origin": [ - 150.8000030517578, - 685.2000732421875 - ], - "bbox": [ - 150.8000030517578, - 678.9000854492188, - 156.8000030517578, - 699.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19999694824219, - 678.9000854492188, - 156.8000030517578, - 699.300048828125 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 82.80000305175781, - 692.5000610351562, - 101.0999984741211, - 712.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 698.800048828125 - ], - "bbox": [ - 82.80000305175781, - 692.5000610351562, - 82.80000305175781, - 712.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(8", - "origin": [ - 82.80000305175781, - 698.800048828125 - ], - "bbox": [ - 82.80000305175781, - 694.1000366210938, - 90.0, - 711.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½", - "origin": [ - 90.0, - 698.800048828125 - ], - "bbox": [ - 90.0, - 692.800048828125, - 95.19999694824219, - 712.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 95.19999694824219, - 698.800048828125 - ], - "bbox": [ - 95.19999694824219, - 692.5000610351562, - 101.0999984741211, - 712.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 692.5000610351562, - 101.0999984741211, - 712.9000244140625 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 82.5, - 706.2000732421875, - 536.2999877929688, - 726.6000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6)5�5u6cÐ\u001a\u0019\u001cʬ«Y¤�6g\u0018w£\u001c©\u001a¦)57§F6=ʬÊ-6c\u0018w6[\u001bu¨g6)5¸¥;¯", - "origin": [ - 82.5, - 712.5000610351562 - ], - "bbox": [ - 82.5, - 706.2000732421875, - 227.70001220703125, - 726.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.5, - 706.2000732421875, - 227.70001220703125, - 726.6000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019", - "origin": [ - 230.0, - 712.5000610351562 - ], - "bbox": [ - 230.0, - 706.2000732421875, - 230.0, - 726.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 230.0, - 712.5000610351562 - ], - "bbox": [ - 230.0, - 706.5000610351562, - 234.8000030517578, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6=\u001bM§F©F6#Ê-«¬Ç9©F6c¥/6c¤7È[\u0018\u001a\u0019\u001c\u001bu\u0019457«-£\u001c©", - "origin": [ - 234.8000030517578, - 712.5000610351562 - ], - "bbox": [ - 234.8000030517578, - 706.2000732421875, - 362.6999816894531, - 726.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.0, - 706.2000732421875, - 362.6999816894531, - 726.6000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T", - "origin": [ - 372.79998779296875, - 712.5000610351562 - ], - "bbox": [ - 372.79998779296875, - 706.5000610351562, - 372.79998779296875, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "v8", - "origin": [ - 372.79998779296875, - 712.5000610351562 - ], - "bbox": [ - 372.79998779296875, - 707.800048828125, - 375.8999938964844, - 725.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ºŠ»\u0011ž", - "origin": [ - 375.8999938964844, - 712.5000610351562 - ], - "bbox": [ - 375.8999938964844, - 706.5000610351562, - 392.3999938964844, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\fw", - "origin": [ - 392.3999938964844, - 712.5000610351562 - ], - "bbox": [ - 392.3999938964844, - 707.800048828125, - 397.1000061035156, - 725.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ºFÞ/Ÿ\"Ä\nÁA½HÆfÁHßHX", - "origin": [ - 397.1000061035156, - 712.5000610351562 - ], - "bbox": [ - 397.1000061035156, - 706.5000610351562, - 454.8000183105469, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 454.8000183105469, - 712.5000610351562 - ], - "bbox": [ - 454.8000183105469, - 706.2000732421875, - 459.1000061035156, - 726.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Eš", - "origin": [ - 459.1000061035156, - 712.5000610351562 - ], - "bbox": [ - 459.1000061035156, - 706.5000610351562, - 465.3999938964844, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©‚\u0018�6=§/5", - "origin": [ - 465.3999938964844, - 712.5000610351562 - ], - "bbox": [ - 465.3999938964844, - 706.2000732421875, - 498.0, - 726.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "C�", - "origin": [ - 498.0, - 712.5000610351562 - ], - "bbox": [ - 498.0, - 706.5000610351562, - 505.8999938964844, - 725.7000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6[\u001bBÊ-6=¤", - "origin": [ - 505.8999938964844, - 712.5000610351562 - ], - "bbox": [ - 505.8999938964844, - 706.2000732421875, - 536.2999877929688, - 726.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.79998779296875, - 706.2000732421875, - 536.2999877929688, - 726.6000366210938 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 82.19998168945312, - 719.7000732421875, - 134.39999389648438, - 740.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u00194\u001bª\u00194¨gá)5u\u001b76e¤V8", - "origin": [ - 82.19998168945312, - 726.0000610351562 - ], - "bbox": [ - 82.19998168945312, - 719.7000732421875, - 134.39999389648438, - 740.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19998168945312, - 719.7000732421875, - 134.39999389648438, - 740.1000366210938 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 92.29998779296875, - 733.4000854492188, - 532.39990234375, - 753.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä/ÁgžY¼ŠÞ", - "origin": [ - 92.29998779296875, - 739.7000732421875 - ], - "bbox": [ - 92.29998779296875, - 733.7000732421875, - 113.09998321533203, - 752.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")\"", - "origin": [ - 113.09998321533203, - 739.7000732421875 - ], - "bbox": [ - 113.09998321533203, - 735.0000610351562, - 123.49998474121094, - 752.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ",ÁHßHàŠŸ", - "origin": [ - 123.49998474121094, - 739.7000732421875 - ], - "bbox": [ - 123.49998474121094, - 733.7000732421875, - 149.79998779296875, - 752.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 149.79998779296875, - 739.7000732421875 - ], - "bbox": [ - 149.79998779296875, - 735.0000610351562, - 155.89999389648438, - 752.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.29998779296875, - 733.7000732421875, - 155.89999389648438, - 752.9000854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fß|Þ/Ÿ\"ߊ»", - "origin": [ - 158.39999389648438, - 739.7000732421875 - ], - "bbox": [ - 158.39999389648438, - 733.7000732421875, - 184.29998779296875, - 752.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 184.29998779296875, - 739.7000732421875 - ], - "bbox": [ - 184.29998779296875, - 735.0000610351562, - 190.39999389648438, - 752.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.39999389648438, - 733.7000732421875, - 190.39999389648438, - 752.9000854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»\u0011žY¼H¡\nŸ", - "origin": [ - 192.29998779296875, - 739.7000732421875 - ], - "bbox": [ - 192.29998779296875, - 733.7000732421875, - 213.3999786376953, - 752.9000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.29998779296875, - 733.7000732421875, - 213.3999786376953, - 752.9000854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi6[\u001bu¨g6)5b¥;¯", - "origin": [ - 224.59999084472656, - 739.7000732421875 - ], - "bbox": [ - 224.59999084472656, - 733.4000854492188, - 265.3999938964844, - 753.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.59999084472656, - 733.4000854492188, - 265.3999938964844, - 753.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194Ê-«¬Ç9©F6[\u001boÊY\u0019^ʬ«-Ç\u001c©F6B¥/6M¤7È[\u0018�\u00194\u001bª\u0019%57«-£\u001c©Éß^Ç9\u00194§�¦ªþF6", - "origin": [ - 267.6999816894531, - 739.7000732421875 - ], - "bbox": [ - 267.6999816894531, - 733.4000854492188, - 430.2999572753906, - 753.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 430.2999572753906, - 739.7000732421875 - ], - "bbox": [ - 430.2999572753906, - 733.7000732421875, - 435.2999572753906, - 752.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/\u00194§Ý¦[6[©?57\u001bu6H£\u001c§…ß^¥F\u001b7£9«z5u6\u001c ", - "origin": [ - 435.2999572753906, - 739.7000732421875 - ], - "bbox": [ - 435.2999572753906, - 733.4000854492188, - 532.39990234375, - 753.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.6999816894531, - 733.4000854492188, - 532.39990234375, - 753.800048828125 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 91.99998474121094, - 747.0000610351562, - 460.5, - 767.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgºgáY¡\"Ä", - "origin": [ - 91.99998474121094, - 753.300048828125 - ], - "bbox": [ - 91.99998474121094, - 747.300048828125, - 113.39997863769531, - 766.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 113.39997863769531, - 753.300048828125 - ], - "bbox": [ - 113.39997863769531, - 748.6000366210938, - 118.5999755859375, - 766.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 118.5999755859375, - 753.300048828125 - ], - "bbox": [ - 118.5999755859375, - 747.300048828125, - 123.9999771118164, - 766.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰8", - "origin": [ - 123.9999771118164, - 753.300048828125 - ], - "bbox": [ - 123.9999771118164, - 747.0000610351562, - 132.69998168945312, - 767.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/_", - "origin": [ - 132.69998168945312, - 753.300048828125 - ], - "bbox": [ - 132.69998168945312, - 747.300048828125, - 138.0999755859375, - 766.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ�5R§F©…\u0018\u001a\u00194\u001bª\u00194¨gá[57\u001bu6\u001eÐw£\n£\u001cÊ-È[6[©…²?§F«K6=©Fʬá=Æ\u001c6HÊ", - "origin": [ - 138.0999755859375, - 753.300048828125 - ], - "bbox": [ - 138.0999755859375, - 747.0000610351562, - 301.3999938964844, - 767.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.99998474121094, - 747.0000610351562, - 301.3999938964844, - 767.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£9¨¸ÐF\u001bª\u00194Ç96\u001e¥/6BÊY\u0019^Ð\u001a\u00194\u001bu\u001b76H¤=¯", - "origin": [ - 306.8999938964844, - 753.300048828125 - ], - "bbox": [ - 306.8999938964844, - 747.0000610351562, - 402.0, - 767.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.8999938964844, - 747.0000610351562, - 402.0, - 767.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-ÊK6=¤�5o\u0018F\u001buÈ=¤76[©?5= ", - "origin": [ - 404.1000061035156, - 753.300048828125 - ], - "bbox": [ - 404.1000061035156, - 747.0000610351562, - 460.5, - 767.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 404.1000061035156, - 747.0000610351562, - 460.5, - 767.4000244140625 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.5, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ä", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 72.5, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=�", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgó˜%žô–œ9žõóiÁFöy¾\nØ!ܝÁFöôžyØe¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 57, - "type": 0, - "bbox": [ - 92.29998779296875, - 733.4000854492188, - 532.39990234375, - 753.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä/ÁgžY¼ŠÞ", - "origin": [ - 92.29998779296875, - 739.7000732421875 - ], - "bbox": [ - 92.29998779296875, - 733.7000732421875, - 113.09998321533203, - 752.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")\"", - "origin": [ - 113.09998321533203, - 739.7000732421875 - ], - "bbox": [ - 113.09998321533203, - 735.0000610351562, - 123.49998474121094, - 752.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ",ÁHßHàŠŸ", - "origin": [ - 123.49998474121094, - 739.7000732421875 - ], - "bbox": [ - 123.49998474121094, - 733.7000732421875, - 149.79998779296875, - 752.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 149.79998779296875, - 739.7000732421875 - ], - "bbox": [ - 149.79998779296875, - 735.0000610351562, - 155.89999389648438, - 752.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.29998779296875, - 733.7000732421875, - 155.89999389648438, - 752.9000854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fß|Þ/Ÿ\"ߊ»", - "origin": [ - 158.39999389648438, - 739.7000732421875 - ], - "bbox": [ - 158.39999389648438, - 733.7000732421875, - 184.29998779296875, - 752.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 184.29998779296875, - 739.7000732421875 - ], - "bbox": [ - 184.29998779296875, - 735.0000610351562, - 190.39999389648438, - 752.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.39999389648438, - 733.7000732421875, - 190.39999389648438, - 752.9000854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»\u0011žY¼H¡\nŸ", - "origin": [ - 192.29998779296875, - 739.7000732421875 - ], - "bbox": [ - 192.29998779296875, - 733.7000732421875, - 213.3999786376953, - 752.9000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.29998779296875, - 733.7000732421875, - 213.3999786376953, - 752.9000854492188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi6[\u001bu¨g6)5b¥;¯", - "origin": [ - 224.59999084472656, - 739.7000732421875 - ], - "bbox": [ - 224.59999084472656, - 733.4000854492188, - 265.3999938964844, - 753.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.59999084472656, - 733.4000854492188, - 265.3999938964844, - 753.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194Ê-«¬Ç9©F6[\u001boÊY\u0019^ʬ«-Ç\u001c©F6B¥/6M¤7È[\u0018�\u00194\u001bª\u0019%57«-£\u001c©Éß^Ç9\u00194§�¦ªþF6", - "origin": [ - 267.6999816894531, - 739.7000732421875 - ], - "bbox": [ - 267.6999816894531, - 733.4000854492188, - 430.2999572753906, - 753.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 430.2999572753906, - 739.7000732421875 - ], - "bbox": [ - 430.2999572753906, - 733.7000732421875, - 435.2999572753906, - 752.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/\u00194§Ý¦[6[©?57\u001bu6H£\u001c§…ß^¥F\u001b7£9«z5u6\u001c ", - "origin": [ - 435.2999572753906, - 739.7000732421875 - ], - "bbox": [ - 435.2999572753906, - 733.4000854492188, - 532.39990234375, - 753.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 267.6999816894531, - 733.4000854492188, - 532.39990234375, - 753.800048828125 - ] - } - ], - "tag": "footer" - }, - { - "number": 59, - "type": 0, - "bbox": [ - 91.99998474121094, - 747.0000610351562, - 460.5, - 767.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgºgáY¡\"Ä", - "origin": [ - 91.99998474121094, - 753.300048828125 - ], - "bbox": [ - 91.99998474121094, - 747.300048828125, - 113.39997863769531, - 766.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 113.39997863769531, - 753.300048828125 - ], - "bbox": [ - 113.39997863769531, - 748.6000366210938, - 118.5999755859375, - 766.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 118.5999755859375, - 753.300048828125 - ], - "bbox": [ - 118.5999755859375, - 747.300048828125, - 123.9999771118164, - 766.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰8", - "origin": [ - 123.9999771118164, - 753.300048828125 - ], - "bbox": [ - 123.9999771118164, - 747.0000610351562, - 132.69998168945312, - 767.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/_", - "origin": [ - 132.69998168945312, - 753.300048828125 - ], - "bbox": [ - 132.69998168945312, - 747.300048828125, - 138.0999755859375, - 766.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ�5R§F©…\u0018\u001a\u00194\u001bª\u00194¨gá[57\u001bu6\u001eÐw£\n£\u001cÊ-È[6[©…²?§F«K6=©Fʬá=Æ\u001c6HÊ", - "origin": [ - 138.0999755859375, - 753.300048828125 - ], - "bbox": [ - 138.0999755859375, - 747.0000610351562, - 301.3999938964844, - 767.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.99998474121094, - 747.0000610351562, - 301.3999938964844, - 767.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£9¨¸ÐF\u001bª\u00194Ç96\u001e¥/6BÊY\u0019^Ð\u001a\u00194\u001bu\u001b76H¤=¯", - "origin": [ - 306.8999938964844, - 753.300048828125 - ], - "bbox": [ - 306.8999938964844, - 747.0000610351562, - 402.0, - 767.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.8999938964844, - 747.0000610351562, - 402.0, - 767.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-ÊK6=¤�5o\u0018F\u001buÈ=¤76[©?5= ", - "origin": [ - 404.1000061035156, - 753.300048828125 - ], - "bbox": [ - 404.1000061035156, - 747.0000610351562, - 460.5, - 767.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 404.1000061035156, - 747.0000610351562, - 460.5, - 767.4000244140625 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 6, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_7": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 3, - "type": 0, - "bbox": [ - 92.60002899169922, - 80.69993591308594, - 117.30003356933594, - 101.09993743896484 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "á/ž", - "origin": [ - 92.60002899169922, - 86.99993896484375 - ], - "bbox": [ - 92.60002899169922, - 80.99993896484375, - 98.00003051757812, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 98.00003051757812, - 86.99993896484375 - ], - "bbox": [ - 98.00003051757812, - 82.29994201660156, - 102.80003356933594, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 102.80003356933594, - 86.99993896484375 - ], - "bbox": [ - 102.80003356933594, - 80.99993896484375, - 108.20003509521484, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 108.20003509521484, - 86.99993896484375 - ], - "bbox": [ - 108.20003509521484, - 80.69993591308594, - 117.30003356933594, - 101.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.60002899169922, - 80.69993591308594, - 117.30003356933594, - 101.09993743896484 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 130.10003662109375, - 80.69993591308594, - 538.2000122070312, - 101.09993743896484 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ë", - "origin": [ - 130.10003662109375, - 86.99993896484375 - ], - "bbox": [ - 130.10003662109375, - 80.99993896484375, - 130.10003662109375, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤\\5u6!ÊY\u0019\u000f5u\u00194«-Ê-ʬ6g¥/6^Ê-\u0019‰Ê¬«-Ç\u001c©\u001a6^¥/6g¤7È[\u0018\u001a\u0019\u001c\u001bu\u0019457«-£\u001c©K ", - "origin": [ - 130.10003662109375, - 86.99993896484375 - ], - "bbox": [ - 130.10003662109375, - 80.69993591308594, - 300.9000244140625, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ".š", - "origin": [ - 300.9000244140625, - 86.99993896484375 - ], - "bbox": [ - 300.9000244140625, - 80.99993896484375, - 306.9000244140625, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©\u000e\u0018w6[§/5M\u0019aÆ\u001c£9«¬\u001bV¥/6[§FÿͧF©F«¬57È=¤H¥/6^¨g6=¤7§F\u001bu6\u001c ;¶,¯", - "origin": [ - 306.9000244140625, - 86.99993896484375 - ], - "bbox": [ - 306.9000244140625, - 80.69993591308594, - 483.9000549316406, - 101.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 130.10003662109375, - 80.69993591308594, - 483.9000549316406, - 101.09993743896484 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6g\u00194Ð\u001a¤7£\u001cÊ-§F6", - "origin": [ - 486.10003662109375, - 86.99993896484375 - ], - "bbox": [ - 486.10003662109375, - 80.69993591308594, - 533.1000366210938, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 533.1000366210938, - 86.99993896484375 - ], - "bbox": [ - 533.1000366210938, - 80.99993896484375, - 538.2000122070312, - 100.19993591308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.10003662109375, - 80.69993591308594, - 538.2000122070312, - 101.09993743896484 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 92.10003662109375, - 94.29991149902344, - 534.7000122070312, - 114.69991302490234 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=©", - "origin": [ - 92.10003662109375, - 100.59991455078125 - ], - "bbox": [ - 92.10003662109375, - 94.29991149902344, - 96.60003662109375, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~Ò�p", - "origin": [ - 96.60003662109375, - 100.59991455078125 - ], - "bbox": [ - 96.60003662109375, - 94.59991455078125, - 111.30004119873047, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "yx", - "origin": [ - 111.30004119873047, - 100.59991455078125 - ], - "bbox": [ - 111.30004119873047, - 95.89991760253906, - 113.90003967285156, - 113.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n'[(", - "origin": [ - 113.90003967285156, - 100.59991455078125 - ], - "bbox": [ - 113.90003967285156, - 94.29991149902344, - 123.60004425048828, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Û[", - "origin": [ - 123.60004425048828, - 100.59991455078125 - ], - "bbox": [ - 123.60004425048828, - 94.59991455078125, - 127.20004272460938, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�«-ʝ¤7§", - "origin": [ - 127.20004272460938, - 100.59991455078125 - ], - "bbox": [ - 127.20004272460938, - 94.29991149902344, - 146.00003051757812, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/>", - "origin": [ - 146.00003051757812, - 100.59991455078125 - ], - "bbox": [ - 146.00003051757812, - 94.59991455078125, - 151.4000244140625, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "g5V¥F6¸©F6M¨g6[5�57\u001bu6!²?§K¯", - "origin": [ - 151.4000244140625, - 100.59991455078125 - ], - "bbox": [ - 151.4000244140625, - 94.29991149902344, - 238.00003051757812, - 114.69991302490234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.10003662109375, - 94.29991149902344, - 238.00003051757812, - 114.69991302490234 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©\u000e¦ªþ\u001a«", - "origin": [ - 240.20004272460938, - 100.59991455078125 - ], - "bbox": [ - 240.20004272460938, - 94.29991149902344, - 264.60003662109375, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "", - "origin": [ - 264.60003662109375, - 100.59991455078125 - ], - "bbox": [ - 264.60003662109375, - 94.59991455078125, - 267.2000427246094, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+\u001b76", - "origin": [ - 267.2000427246094, - 100.59991455078125 - ], - "bbox": [ - 267.2000427246094, - 94.29991149902344, - 277.0000305175781, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017TÛá/ž", - "origin": [ - 277.0000305175781, - 100.59991455078125 - ], - "bbox": [ - 277.0000305175781, - 94.59991455078125, - 294.8000183105469, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 294.8000183105469, - 100.59991455078125 - ], - "bbox": [ - 294.8000183105469, - 95.89991760253906, - 299.6000061035156, - 113.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 299.6000061035156, - 100.59991455078125 - ], - "bbox": [ - 299.6000061035156, - 94.59991455078125, - 305.0, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$", - "origin": [ - 305.0, - 100.59991455078125 - ], - "bbox": [ - 305.0, - 95.89991760253906, - 316.1000061035156, - 113.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\Â", - "origin": [ - 316.1000061035156, - 100.59991455078125 - ], - "bbox": [ - 316.1000061035156, - 94.59991455078125, - 320.6000061035156, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001eJG$", - "origin": [ - 320.6000061035156, - 100.59991455078125 - ], - "bbox": [ - 320.6000061035156, - 95.89991760253906, - 332.0, - 113.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 332.0, - 100.59991455078125 - ], - "bbox": [ - 332.0, - 94.59991455078125, - 336.6000061035156, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") /¶,¯", - "origin": [ - 336.6000061035156, - 100.59991455078125 - ], - "bbox": [ - 336.6000061035156, - 94.29991149902344, - 353.0, - 114.69991302490234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.20004272460938, - 94.29991149902344, - 353.0, - 114.69991302490234 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§/5u\u001b76M\u001bu6[ÊY\u0019%5u«¬Æ96¸ß#ÊY\u0019#ÊY\u00194\u001buÇ\u001c6[§\u001a\u001bR¥/6¸ÊY\u0019gÔõ6=©Få)5u\u001b76^¥/§", - "origin": [ - 355.300048828125, - 100.59991455078125 - ], - "bbox": [ - 355.300048828125, - 94.29991149902344, - 534.7000122070312, - 114.69991302490234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 355.300048828125, - 94.29991149902344, - 534.7000122070312, - 114.69991302490234 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 92.10003662109375, - 107.99992370605469, - 349.9000244140625, - 128.39993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©\u001a\u0019aÆ\n«-Ç9\u00194576[§\u001a\u001bs²?§F«;Æ\n«Y¤�§�\u00194Ê-«-¤76HÊ-\u0019^\u0018\u001a\u0019\u001cÇ\u001c6", - "origin": [ - 92.10003662109375, - 114.2999267578125 - ], - "bbox": [ - 92.10003662109375, - 107.99992370605469, - 224.60003662109375, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 224.60003662109375, - 114.2999267578125 - ], - "bbox": [ - 224.60003662109375, - 108.2999267578125, - 229.60003662109375, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/6=©", - "origin": [ - 229.60003662109375, - 114.2999267578125 - ], - "bbox": [ - 229.60003662109375, - 107.99992370605469, - 239.50003051757812, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015Ò\"l", - "origin": [ - 239.50003051757812, - 114.2999267578125 - ], - "bbox": [ - 239.50003051757812, - 108.2999267578125, - 253.7000274658203, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4&/.", - "origin": [ - 253.7000274658203, - 114.2999267578125 - ], - "bbox": [ - 253.7000274658203, - 107.99992370605469, - 264.0000305175781, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "€Ó", - "origin": [ - 264.0000305175781, - 114.2999267578125 - ], - "bbox": [ - 264.0000305175781, - 108.2999267578125, - 267.9000244140625, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ª')$", - "origin": [ - 267.9000244140625, - 114.2999267578125 - ], - "bbox": [ - 267.9000244140625, - 107.99992370605469, - 276.3000183105469, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fw TÛá/ž", - "origin": [ - 276.3000183105469, - 114.2999267578125 - ], - "bbox": [ - 276.3000183105469, - 108.2999267578125, - 298.5000305175781, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 298.5000305175781, - 114.2999267578125 - ], - "bbox": [ - 298.5000305175781, - 109.59992980957031, - 303.3000183105469, - 127.3999252319336 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 303.3000183105469, - 114.2999267578125 - ], - "bbox": [ - 303.3000183105469, - 108.2999267578125, - 308.70001220703125, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"G$\fz", - "origin": [ - 308.70001220703125, - 114.2999267578125 - ], - "bbox": [ - 308.70001220703125, - 109.59992980957031, - 324.5000305175781, - 127.3999252319336 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃ", - "origin": [ - 324.5000305175781, - 114.2999267578125 - ], - "bbox": [ - 324.5000305175781, - 108.2999267578125, - 329.8000183105469, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#{%$", - "origin": [ - 329.8000183105469, - 114.2999267578125 - ], - "bbox": [ - 329.8000183105469, - 109.59992980957031, - 341.0000305175781, - 127.3999252319336 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 341.0000305175781, - 114.2999267578125 - ], - "bbox": [ - 341.0000305175781, - 108.2999267578125, - 345.60003662109375, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 345.60003662109375, - 114.2999267578125 - ], - "bbox": [ - 345.60003662109375, - 107.99992370605469, - 349.9000244140625, - 128.39993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.10003662109375, - 107.99992370605469, - 349.9000244140625, - 128.39993286132812 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 92.00003814697266, - 121.49992370605469, - 121.50003814697266, - 141.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶.ž", - "origin": [ - 92.00003814697266, - 127.7999267578125 - ], - "bbox": [ - 92.00003814697266, - 121.7999267578125, - 98.00003814697266, - 140.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 98.00003814697266, - 127.7999267578125 - ], - "bbox": [ - 98.00003814697266, - 123.09992980957031, - 102.80004119873047, - 140.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸŠ¡", - "origin": [ - 102.80004119873047, - 127.7999267578125 - ], - "bbox": [ - 102.80004119873047, - 121.7999267578125, - 113.10003662109375, - 140.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#8", - "origin": [ - 113.10003662109375, - 127.7999267578125 - ], - "bbox": [ - 113.10003662109375, - 121.49992370605469, - 121.50003814697266, - 141.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.00003814697266, - 121.49992370605469, - 121.50003814697266, - 141.89993286132812 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 133.10003662109375, - 121.49992370605469, - 538.2999877929688, - 141.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ë", - "origin": [ - 133.10003662109375, - 127.7999267578125 - ], - "bbox": [ - 133.10003662109375, - 121.7999267578125, - 133.10003662109375, - 140.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤\\5u6sÊ-\u0019Vþ\u001a\u0019\u001c§/576=§F\u001b", - "origin": [ - 133.10003662109375, - 127.7999267578125 - ], - "bbox": [ - 133.10003662109375, - 121.49992370605469, - 197.5000457763672, - 141.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.10003662109375, - 121.49992370605469, - 197.5000457763672, - 141.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6sÊ-\u0019\u001eʬ«-Ç\u001c©\u001a6s¥F6s¤7È[\u0018�\u00194\u001bª\u0019%57«-£\u001c©m ", - "origin": [ - 204.10003662109375, - 127.7999267578125 - ], - "bbox": [ - 204.10003662109375, - 121.49992370605469, - 308.4000244140625, - 141.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iš", - "origin": [ - 308.4000244140625, - 127.7999267578125 - ], - "bbox": [ - 308.4000244140625, - 121.7999267578125, - 313.20001220703125, - 140.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©!\u0018�6=§/5×\u00194§\u001a¤u¤7«?§F57«-ʬ«Y¤�6=\u001b,¥/6=¤\u0018F«¬ÿ/6[ÊY¤i£\u001c§^¥/6=¤i\u0018w£\u001c§F\u001bª¦)6=©?5u\u00194Ç96=¤= ", - "origin": [ - 313.20001220703125, - 127.7999267578125 - ], - "bbox": [ - 313.20001220703125, - 121.49992370605469, - 538.2999877929688, - 141.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 204.10003662109375, - 121.49992370605469, - 538.2999877929688, - 141.89993286132812 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 82.50003814697266, - 135.19993591308594, - 268.9000549316406, - 155.59994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "®\u001e§F6[ÊY²?§F6=¤s6[ÿ\n6=¨g\u0018Fʬ6e¤o¥/6BÐ\u001a\u0019\u001c\u001b7\u001bu6V¥F6M¤�È=\u0018\u001a\u00194\u001bª\u0019%5u«¬£9©Í8", - "origin": [ - 82.50003814697266, - 141.49993896484375 - ], - "bbox": [ - 82.50003814697266, - 135.19993591308594, - 268.9000549316406, - 155.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.50003814697266, - 135.19993591308594, - 268.9000549316406, - 155.59994506835938 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 103.30000305175781, - 157.5, - 255.6999969482422, - 176.6999969482422 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 103.30000305175781, - 163.5 - ], - "bbox": [ - 103.30000305175781, - 157.5, - 103.30000305175781, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 103.30000305175781, - 163.5 - ], - "bbox": [ - 103.30000305175781, - 158.8000030517578, - 108.30000305175781, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½«¶.ž", - "origin": [ - 108.30000305175781, - 163.5 - ], - "bbox": [ - 108.30000305175781, - 157.5, - 129.90000915527344, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 129.90000915527344, - 163.5 - ], - "bbox": [ - 129.90000915527344, - 158.8000030517578, - 134.70001220703125, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸH¡", - "origin": [ - 134.70001220703125, - 163.5 - ], - "bbox": [ - 134.70001220703125, - 157.5, - 145.10000610351562, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$\fz", - "origin": [ - 145.10000610351562, - 163.5 - ], - "bbox": [ - 145.10000610351562, - 158.8000030517578, - 161.1999969482422, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃ", - "origin": [ - 161.1999969482422, - 163.5 - ], - "bbox": [ - 161.1999969482422, - 157.5, - 166.5, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 166.5, - 163.5 - ], - "bbox": [ - 166.5, - 158.8000030517578, - 172.39999389648438, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÈÄ/ÁgžY¼ŠÞ", - "origin": [ - 172.39999389648438, - 163.5 - ], - "bbox": [ - 172.39999389648438, - 157.5, - 202.5, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"%$", - "origin": [ - 202.5, - 163.5 - ], - "bbox": [ - 202.5, - 158.8000030517578, - 214.0, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F Fß|Þ/Ÿ\"ߊ»", - "origin": [ - 214.0, - 163.5 - ], - "bbox": [ - 214.0, - 157.5, - 244.89999389648438, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 244.89999389648438, - 163.5 - ], - "bbox": [ - 244.89999389648438, - 158.8000030517578, - 251.0, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Yä", - "origin": [ - 251.0, - 163.5 - ], - "bbox": [ - 251.0, - 157.5, - 255.6999969482422, - 176.6999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.30000305175781, - 157.5, - 255.6999969482422, - 176.6999969482422 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 103.30000305175781, - 171.0, - 308.0999755859375, - 190.1999969482422 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 103.30000305175781, - 177.0 - ], - "bbox": [ - 103.30000305175781, - 171.0, - 103.30000305175781, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 103.30000305175781, - 177.0 - ], - "bbox": [ - 103.30000305175781, - 172.3000030517578, - 108.30000305175781, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½á/ž", - "origin": [ - 108.30000305175781, - 177.0 - ], - "bbox": [ - 108.30000305175781, - 171.0, - 129.90000915527344, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 129.90000915527344, - 177.0 - ], - "bbox": [ - 129.90000915527344, - 172.3000030517578, - 134.70001220703125, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 134.70001220703125, - 177.0 - ], - "bbox": [ - 134.70001220703125, - 171.0, - 140.10000610351562, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"G$\fzG$", - "origin": [ - 140.10000610351562, - 177.0 - ], - "bbox": [ - 140.10000610351562, - 172.3000030517578, - 161.79998779296875, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "²¶.ž", - "origin": [ - 161.79998779296875, - 177.0 - ], - "bbox": [ - 161.79998779296875, - 171.0, - 176.99998474121094, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>", - "origin": [ - 176.99998474121094, - 177.0 - ], - "bbox": [ - 176.99998474121094, - 172.3000030517578, - 181.69998168945312, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸH¡", - "origin": [ - 181.69998168945312, - 177.0 - ], - "bbox": [ - 181.69998168945312, - 171.0, - 192.0999755859375, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"%$\u0019z", - "origin": [ - 192.0999755859375, - 177.0 - ], - "bbox": [ - 192.0999755859375, - 172.3000030517578, - 208.19998168945312, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃ", - "origin": [ - 208.19998168945312, - 177.0 - ], - "bbox": [ - 208.19998168945312, - 171.0, - 213.49998474121094, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#{%$", - "origin": [ - 213.49998474121094, - 177.0 - ], - "bbox": [ - 213.49998474121094, - 172.3000030517578, - 224.69998168945312, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÈÄ/ÁgžY¼HÞ", - "origin": [ - 224.69998168945312, - 177.0 - ], - "bbox": [ - 224.69998168945312, - 171.0, - 254.8999786376953, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 254.8999786376953, - 177.0 - ], - "bbox": [ - 254.8999786376953, - 172.3000030517578, - 266.29998779296875, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F FßFÞ\nŸ\"ߊ»", - "origin": [ - 266.29998779296875, - 177.0 - ], - "bbox": [ - 266.29998779296875, - 171.0, - 297.1999816894531, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 297.1999816894531, - 177.0 - ], - "bbox": [ - 297.1999816894531, - 172.3000030517578, - 303.29998779296875, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 303.29998779296875, - 177.0 - ], - "bbox": [ - 303.29998779296875, - 171.0, - 308.0999755859375, - 190.1999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.30000305175781, - 171.0, - 308.0999755859375, - 190.1999969482422 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 103.30000305175781, - 184.70001220703125, - 349.79998779296875, - 203.90000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 103.30000305175781, - 190.70001220703125 - ], - "bbox": [ - 103.30000305175781, - 184.70001220703125, - 103.30000305175781, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 103.30000305175781, - 190.70001220703125 - ], - "bbox": [ - 103.30000305175781, - 186.00001525878906, - 108.30000305175781, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½«ÞgºgáY¡gÄ", - "origin": [ - 108.30000305175781, - 190.70001220703125 - ], - "bbox": [ - 108.30000305175781, - 184.70001220703125, - 145.4000244140625, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 145.4000244140625, - 190.70001220703125 - ], - "bbox": [ - 145.4000244140625, - 186.00001525878906, - 150.50003051757812, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 150.50003051757812, - 190.70001220703125 - ], - "bbox": [ - 150.50003051757812, - 184.70001220703125, - 155.9000244140625, - 203.90000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.30000305175781, - 184.70001220703125, - 155.9000244140625, - 203.90000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "á/ž", - "origin": [ - 166.3000030517578, - 190.70001220703125 - ], - "bbox": [ - 166.3000030517578, - 184.70001220703125, - 171.6999969482422, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 171.6999969482422, - 190.70001220703125 - ], - "bbox": [ - 171.6999969482422, - 186.00001525878906, - 176.5, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nß", - "origin": [ - 176.5, - 190.70001220703125 - ], - "bbox": [ - 176.5, - 184.70001220703125, - 181.8000030517578, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%$\fzG$", - "origin": [ - 181.8000030517578, - 190.70001220703125 - ], - "bbox": [ - 181.8000030517578, - 186.00001525878906, - 203.59999084472656, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“¶.ž", - "origin": [ - 203.59999084472656, - 190.70001220703125 - ], - "bbox": [ - 203.59999084472656, - 184.70001220703125, - 218.6999969482422, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 218.6999969482422, - 190.70001220703125 - ], - "bbox": [ - 218.6999969482422, - 186.00001525878906, - 223.5, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸH¡", - "origin": [ - 223.5, - 190.70001220703125 - ], - "bbox": [ - 223.5, - 184.70001220703125, - 233.89999389648438, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$\fz", - "origin": [ - 233.89999389648438, - 190.70001220703125 - ], - "bbox": [ - 233.89999389648438, - 186.00001525878906, - 249.99998474121094, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃ", - "origin": [ - 249.99998474121094, - 190.70001220703125 - ], - "bbox": [ - 249.99998474121094, - 184.70001220703125, - 255.29998779296875, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#{G$", - "origin": [ - 255.29998779296875, - 190.70001220703125 - ], - "bbox": [ - 255.29998779296875, - 186.00001525878906, - 266.3999938964844, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "PÄ/Ágžc¼HÞ", - "origin": [ - 266.3999938964844, - 190.70001220703125 - ], - "bbox": [ - 266.3999938964844, - 184.70001220703125, - 296.6000061035156, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"%$", - "origin": [ - 296.6000061035156, - 190.70001220703125 - ], - "bbox": [ - 296.6000061035156, - 186.00001525878906, - 308.1000061035156, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F |ßFÞ/Ÿ\"ߊ»", - "origin": [ - 308.1000061035156, - 190.70001220703125 - ], - "bbox": [ - 308.1000061035156, - 184.70001220703125, - 339.0, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%$", - "origin": [ - 339.0, - 190.70001220703125 - ], - "bbox": [ - 339.0, - 186.00001525878906, - 345.0, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 345.0, - 190.70001220703125 - ], - "bbox": [ - 345.0, - 184.70001220703125, - 349.79998779296875, - 203.90000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 166.3000030517578, - 184.70001220703125, - 349.79998779296875, - 203.90000915527344 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.5, - 211.4000244140625, - 154.1999969482422, - 230.6000213623047 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ï1\u0019\r?", - "origin": [ - 72.5, - 217.4000244140625 - ], - "bbox": [ - 72.5, - 211.4000244140625, - 82.9000015258789, - 230.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 211.4000244140625, - 82.9000015258789, - 230.6000213623047 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A%Š-", - "origin": [ - 103.0, - 217.4000244140625 - ], - "bbox": [ - 103.0, - 211.4000244140625, - 132.10000610351562, - 230.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�|", - "origin": [ - 132.10000610351562, - 217.4000244140625 - ], - "bbox": [ - 132.10000610351562, - 212.7000274658203, - 137.0, - 230.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*°;)6%", - "origin": [ - 137.0, - 217.4000244140625 - ], - "bbox": [ - 137.0, - 211.4000244140625, - 154.1999969482422, - 230.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.0, - 211.4000244140625, - 154.1999969482422, - 230.6000213623047 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.30000305175781, - 239.6000213623047, - 511.2000427246094, - 260.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6V¤\\5\\ø\nÊ-6R6e¤\\5s¦)6\u001e²?§F«w\u0018w6[\u001bu¨^6[5 ¥/6RÔy\u00194«-\u001b76\u001e\u001b76e¤7¤7£\u001c\u001b757«-\u001bצ[6[\u001b75u\u00194«-©\u001a¤×¨^£\u001c5u¤ ¥/§#5u6)ÿ\n576", - "origin": [ - 72.30000305175781, - 245.9000244140625 - ], - "bbox": [ - 72.30000305175781, - 239.6000213623047, - 352.4998474121094, - 260.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 352.4998474121094, - 245.9000244140625 - ], - "bbox": [ - 352.4998474121094, - 239.9000244140625, - 357.599853515625, - 259.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "96=©\u000fÊ-6R¨g6)575u\u00194©?5 6[©", - "origin": [ - 357.599853515625, - 245.9000244140625 - ], - "bbox": [ - 357.599853515625, - 239.6000213623047, - 427.99981689453125, - 260.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“p˜w", - "origin": [ - 427.99981689453125, - 245.9000244140625 - ], - "bbox": [ - 427.99981689453125, - 239.9000244140625, - 440.0998229980469, - 259.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±\"%(", - "origin": [ - 440.0998229980469, - 245.9000244140625 - ], - "bbox": [ - 440.0998229980469, - 239.6000213623047, - 448.49981689453125, - 260.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 239.6000213623047, - 448.49981689453125, - 260.0000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "p", - "origin": [ - 451.0, - 245.9000244140625 - ], - "bbox": [ - 451.0, - 239.9000244140625, - 451.0, - 259.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "~}", - "origin": [ - 451.0, - 245.9000244140625 - ], - "bbox": [ - 451.0, - 241.2000274658203, - 454.20001220703125, - 259.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[&\u001a'H£9§#ÐF«¬6=©\u000f6=©", - "origin": [ - 454.20001220703125, - 245.9000244140625 - ], - "bbox": [ - 454.20001220703125, - 239.6000213623047, - 511.2000427246094, - 260.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 451.0, - 239.6000213623047, - 511.2000427246094, - 260.0000305175781 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 519.7999877929688, - 237.6000213623047, - 535.699951171875, - 258.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\f", - "origin": [ - 519.7999877929688, - 243.9000244140625 - ], - "bbox": [ - 519.7999877929688, - 237.9000244140625, - 519.7999877929688, - 257.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a˜%ÁFØ", - "origin": [ - 519.7999877929688, - 243.9000244140625 - ], - "bbox": [ - 519.7999877929688, - 237.6000213623047, - 535.699951171875, - 258.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 519.7999877929688, - 237.6000213623047, - 535.699951171875, - 258.0000305175781 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 72.19998168945312, - 253.1999969482422, - 125.69998931884766, - 273.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001c\u001bo6)ÿ/6[¨g\u0018FÊ-6\u001c ", - "origin": [ - 72.19998168945312, - 259.5 - ], - "bbox": [ - 72.19998168945312, - 253.1999969482422, - 125.69998931884766, - 273.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19998168945312, - 253.1999969482422, - 125.69998931884766, - 273.6000061035156 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 82.79998779296875, - 272.0, - 446.99993896484375, - 292.3999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoë?ï+ì", - "origin": [ - 82.79998779296875, - 278.29998779296875 - ], - "bbox": [ - 82.79998779296875, - 272.0, - 101.09998321533203, - 292.3999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.79998779296875, - 272.0, - 101.09998321533203, - 292.3999938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8", - "origin": [ - 111.99998474121094, - 278.29998779296875 - ], - "bbox": [ - 111.99998474121094, - 272.0, - 111.99998474121094, - 292.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g_", - "origin": [ - 111.99998474121094, - 278.29998779296875 - ], - "bbox": [ - 111.99998474121094, - 272.29998779296875, - 117.59998321533203, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ\\5bÊY\u0019^Ð\u001a\u00194Ê-«Y¤�6B²?§F«K\u0018w6[\u001bu¨g6)5R¥/6H¨g6)5757\u001bu6B6[©", - "origin": [ - 117.59998321533203, - 278.29998779296875 - ], - "bbox": [ - 117.59998321533203, - 272.0, - 274.9999694824219, - 292.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÕÉ", - "origin": [ - 274.9999694824219, - 278.29998779296875 - ], - "bbox": [ - 274.9999694824219, - 272.29998779296875, - 284.4999694824219, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "a\"4(¬'[&/.¸§F©F6B\u0018�\u00194\u001b757«-6H¥F§\u000f5u6)ÿ\n576", - "origin": [ - 284.4999694824219, - 278.29998779296875 - ], - "bbox": [ - 284.4999694824219, - 272.0, - 393.8999328613281, - 292.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "òT", - "origin": [ - 393.8999328613281, - 278.29998779296875 - ], - "bbox": [ - 393.8999328613281, - 272.29998779296875, - 402.3999328613281, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yë?ï", - "origin": [ - 402.3999328613281, - 278.29998779296875 - ], - "bbox": [ - 402.3999328613281, - 272.0, - 410.7999572753906, - 292.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H´\n¡gÄgá|ß\nX�[", - "origin": [ - 410.7999572753906, - 278.29998779296875 - ], - "bbox": [ - 410.7999572753906, - 272.29998779296875, - 446.99993896484375, - 291.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.99998474121094, - 272.0, - 446.99993896484375, - 292.3999938964844 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 82.79998779296875, - 285.5999755859375, - 284.0999755859375, - 305.9999694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.79998779296875, - 291.89996337890625 - ], - "bbox": [ - 82.79998779296875, - 285.5999755859375, - 82.79998779296875, - 305.9999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 82.79998779296875, - 291.89996337890625 - ], - "bbox": [ - 82.79998779296875, - 285.89996337890625, - 89.89998626708984, - 305.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì­8FËi6[\u001bu¨^6[5R¥/6H¨g6)5�5u\u001b76B§\u001a©F6B\u0018\u001a\u00194\u001b757«-6B¥/§É576[ÿ?5u6B6[©", - "origin": [ - 89.89998626708984, - 291.89996337890625 - ], - "bbox": [ - 89.89998626708984, - 285.5999755859375, - 284.0999755859375, - 305.9999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.79998779296875, - 285.5999755859375, - 284.0999755859375, - 305.9999694824219 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 293.0, - 283.5999755859375, - 308.8999938964844, - 303.9999694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\f", - "origin": [ - 293.0, - 289.89996337890625 - ], - "bbox": [ - 293.0, - 283.89996337890625, - 293.0, - 303.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a˜%ÁFØ", - "origin": [ - 293.0, - 289.89996337890625 - ], - "bbox": [ - 293.0, - 283.5999755859375, - 308.8999938964844, - 303.9999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.0, - 283.5999755859375, - 308.8999938964844, - 303.9999694824219 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 317.5, - 285.89996337890625, - 346.1999816894531, - 305.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T˜›gº/Á", - "origin": [ - 317.5, - 291.89996337890625 - ], - "bbox": [ - 317.5, - 285.89996337890625, - 331.5, - 305.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 331.5, - 291.89996337890625 - ], - "bbox": [ - 331.5, - 287.199951171875, - 336.5, - 304.9999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/X�[", - "origin": [ - 336.5, - 291.89996337890625 - ], - "bbox": [ - 336.5, - 285.89996337890625, - 346.1999816894531, - 305.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.5, - 285.89996337890625, - 346.1999816894531, - 305.0999755859375 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 82.80000305175781, - 299.29998779296875, - 151.1999969482422, - 319.6999816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çBéeè+ì", - "origin": [ - 82.80000305175781, - 305.5999755859375 - ], - "bbox": [ - 82.80000305175781, - 299.29998779296875, - 101.10000610351562, - 319.6999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 299.29998779296875, - 101.10000610351562, - 319.6999816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8", - "origin": [ - 112.0, - 305.5999755859375 - ], - "bbox": [ - 112.0, - 299.29998779296875, - 112.0, - 319.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Öxw", - "origin": [ - 112.0, - 305.5999755859375 - ], - "bbox": [ - 112.0, - 299.5999755859375, - 122.0, - 318.79998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±\"%(", - "origin": [ - 122.0, - 305.5999755859375 - ], - "bbox": [ - 122.0, - 299.29998779296875, - 130.39999389648438, - 319.6999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.0, - 299.29998779296875, - 130.39999389648438, - 319.6999816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "p", - "origin": [ - 132.89999389648438, - 305.5999755859375 - ], - "bbox": [ - 132.89999389648438, - 299.5999755859375, - 132.89999389648438, - 318.79998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "~}", - "origin": [ - 132.89999389648438, - 305.5999755859375 - ], - "bbox": [ - 132.89999389648438, - 300.89996337890625, - 136.09999084472656, - 318.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[&\u001a'", - "origin": [ - 136.09999084472656, - 305.5999755859375 - ], - "bbox": [ - 136.09999084472656, - 299.29998779296875, - 146.09999084472656, - 319.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 146.09999084472656, - 305.5999755859375 - ], - "bbox": [ - 146.09999084472656, - 299.5999755859375, - 151.1999969482422, - 318.79998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 132.89999389648438, - 299.29998779296875, - 151.1999969482422, - 319.6999816894531 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 82.79999542236328, - 312.79998779296875, - 421.5000305175781, - 333.1999816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè?è+ì", - "origin": [ - 82.79999542236328, - 319.0999755859375 - ], - "bbox": [ - 82.79999542236328, - 312.79998779296875, - 101.09999084472656, - 333.1999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.79999542236328, - 312.79998779296875, - 101.09999084472656, - 333.1999816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8\u001a˝6=\u001b7¨g6[5o¥K¯", - "origin": [ - 112.0, - 319.0999755859375 - ], - "bbox": [ - 112.0, - 312.79998779296875, - 158.39999389648438, - 333.1999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.0, - 312.79998779296875, - 158.39999389648438, - 333.1999816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Èe¦)\u001bu«¬\u001bu6H6[©Ý¦[\u0019\u001c\u001bu\u00199¦157á=\u001b76e¤", - "origin": [ - 160.5, - 319.0999755859375 - ], - "bbox": [ - 160.5, - 312.79998779296875, - 240.79998779296875, - 333.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "9À\u0011Äg Y¡.ž\\Þgß", - "origin": [ - 240.79998779296875, - 319.0999755859375 - ], - "bbox": [ - 240.79998779296875, - 313.0999755859375, - 279.5, - 332.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "?€", - "origin": [ - 279.5, - 319.0999755859375 - ], - "bbox": [ - 279.5, - 314.39996337890625, - 300.20001220703125, - 332.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\" I»\u0011žY»\"ß\u0015T", - "origin": [ - 300.20001220703125, - 319.0999755859375 - ], - "bbox": [ - 300.20001220703125, - 313.0999755859375, - 335.3000183105469, - 332.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yè", - "origin": [ - 335.3000183105469, - 319.0999755859375 - ], - "bbox": [ - 335.3000183105469, - 312.79998779296875, - 338.5000305175781, - 333.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n㊴gßF¶/»\u0011žcŸ\"ߊ»", - "origin": [ - 338.5000305175781, - 319.0999755859375 - ], - "bbox": [ - 338.5000305175781, - 313.0999755859375, - 386.0000305175781, - 332.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ãè", - "origin": [ - 386.0000305175781, - 319.0999755859375 - ], - "bbox": [ - 386.0000305175781, - 312.79998779296875, - 396.0000305175781, - 333.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 396.0000305175781, - 319.0999755859375 - ], - "bbox": [ - 396.0000305175781, - 313.0999755859375, - 401.4000244140625, - 332.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 401.4000244140625, - 319.0999755859375 - ], - "bbox": [ - 401.4000244140625, - 314.39996337890625, - 406.5000305175781, - 332.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ\"Xx[", - "origin": [ - 406.5000305175781, - 319.0999755859375 - ], - "bbox": [ - 406.5000305175781, - 313.0999755859375, - 421.5000305175781, - 332.29998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 160.5, - 312.79998779296875, - 421.5000305175781, - 333.1999816894531 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 82.80000305175781, - 326.4999694824219, - 215.1999969482422, - 346.89996337890625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 332.7999572753906 - ], - "bbox": [ - 82.80000305175781, - 326.4999694824219, - 82.80000305175781, - 346.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "!\u001f", - "origin": [ - 82.80000305175781, - 332.7999572753906 - ], - "bbox": [ - 82.80000305175781, - 328.0999450683594, - 90.20000457763672, - 345.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 90.20000457763672, - 332.7999572753906 - ], - "bbox": [ - 90.20000457763672, - 326.4999694824219, - 95.20000457763672, - 346.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½", - "origin": [ - 95.20000457763672, - 332.7999572753906 - ], - "bbox": [ - 95.20000457763672, - 326.7999572753906, - 100.50000762939453, - 345.9999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+é", - "origin": [ - 100.50000762939453, - 332.7999572753906 - ], - "bbox": [ - 100.50000762939453, - 326.4999694824219, - 106.40000915527344, - 346.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Y", - "origin": [ - 106.40000915527344, - 332.7999572753906 - ], - "bbox": [ - 106.40000915527344, - 326.7999572753906, - 111.10000610351562, - 345.9999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nëwì¢8wÓ \u0019\u001c\u001bu\u00199¦15uá[\u001bu6=¤~Ð\u001a\u00194\u001bu\u001b7Èe¤", - "origin": [ - 111.10000610351562, - 332.7999572753906 - ], - "bbox": [ - 111.10000610351562, - 326.4999694824219, - 210.8000030517578, - 346.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 210.8000030517578, - 332.7999572753906 - ], - "bbox": [ - 210.8000030517578, - 326.7999572753906, - 215.1999969482422, - 345.9999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 326.4999694824219, - 215.1999969482422, - 346.89996337890625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 82.80000305175781, - 340.199951171875, - 366.8998718261719, - 360.5999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 346.49993896484375 - ], - "bbox": [ - 82.80000305175781, - 340.199951171875, - 82.80000305175781, - 360.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 82.80000305175781, - 346.49993896484375 - ], - "bbox": [ - 82.80000305175781, - 340.49993896484375, - 89.9000015258789, - 359.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/êwé", - "origin": [ - 89.9000015258789, - 346.49993896484375 - ], - "bbox": [ - 89.9000015258789, - 340.199951171875, - 101.10000610351562, - 360.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Yœ\n", - "origin": [ - 101.10000610351562, - 346.49993896484375 - ], - "bbox": [ - 101.10000610351562, - 340.49993896484375, - 111.10000610351562, - 359.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ìà8/˝6=\u001b7¨g6[5R¥/6HÔy\u00194«-\u001b76B¦[ʬ«-Ç\u001c©F£\u001c576=\u001b ÊY\u0019^\u0018\u001a\u00194\u001b757«-6B¥/§É576[ÿ?5u6M¦)£9©\u001a¦)6=\u001b7©FÈ=6", - "origin": [ - 111.10000610351562, - 346.49993896484375 - ], - "bbox": [ - 111.10000610351562, - 340.199951171875, - 361.8998718261719, - 360.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 361.8998718261719, - 346.49993896484375 - ], - "bbox": [ - 361.8998718261719, - 340.49993896484375, - 366.8998718261719, - 359.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 340.199951171875, - 366.8998718261719, - 360.5999450683594 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 82.80000305175781, - 353.699951171875, - 106.40000915527344, - 374.0999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 359.99993896484375 - ], - "bbox": [ - 82.80000305175781, - 353.699951171875, - 82.80000305175781, - 374.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 82.80000305175781, - 359.99993896484375 - ], - "bbox": [ - 82.80000305175781, - 353.99993896484375, - 89.9000015258789, - 373.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+é", - "origin": [ - 89.9000015258789, - 359.99993896484375 - ], - "bbox": [ - 89.9000015258789, - 353.699951171875, - 95.80000305175781, - 374.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�,", - "origin": [ - 95.80000305175781, - 359.99993896484375 - ], - "bbox": [ - 95.80000305175781, - 355.2999267578125, - 100.60000610351562, - 373.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wì", - "origin": [ - 100.60000610351562, - 359.99993896484375 - ], - "bbox": [ - 100.60000610351562, - 353.699951171875, - 106.40000915527344, - 374.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 353.699951171875, - 106.40000915527344, - 374.0999450683594 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 129.5, - 353.699951171875, - 186.79998779296875, - 374.0999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦[\u001b7«Y¤o6=©‰Ç9\u001bu\u0019\u001c©\u001a¥", - "origin": [ - 129.5, - 359.99993896484375 - ], - "bbox": [ - 129.5, - 353.699951171875, - 180.79998779296875, - 374.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ".[", - "origin": [ - 180.79998779296875, - 359.99993896484375 - ], - "bbox": [ - 180.79998779296875, - 353.99993896484375, - 186.79998779296875, - 373.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.5, - 353.699951171875, - 186.79998779296875, - 374.0999450683594 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 82.80000305175781, - 367.3999328613281, - 127.80001831054688, - 387.7999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 373.6999206542969 - ], - "bbox": [ - 82.80000305175781, - 367.3999328613281, - 82.80000305175781, - 387.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "!\u001f", - "origin": [ - 82.80000305175781, - 373.6999206542969 - ], - "bbox": [ - 82.80000305175781, - 368.9999084472656, - 90.20000457763672, - 386.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï\nð/ê\nêwìà8", - "origin": [ - 90.20000457763672, - 373.6999206542969 - ], - "bbox": [ - 90.20000457763672, - 367.3999328613281, - 127.80001831054688, - 387.7999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 367.3999328613281, - 127.80001831054688, - 387.7999267578125 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 140.00001525878906, - 367.3999328613281, - 192.8000030517578, - 387.7999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)\u001bu«-¤b6[©É\u0018�6[57«¬5", - "origin": [ - 140.00001525878906, - 373.6999206542969 - ], - "bbox": [ - 140.00001525878906, - 367.3999328613281, - 188.3000030517578, - 387.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 188.3000030517578, - 373.6999206542969 - ], - "bbox": [ - 188.3000030517578, - 367.6999206542969, - 192.8000030517578, - 386.8999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.00001525878906, - 367.3999328613281, - 192.8000030517578, - 387.7999267578125 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 82.80001831054688, - 380.9999084472656, - 207.4000244140625, - 401.39990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80001831054688, - 387.2998962402344 - ], - "bbox": [ - 82.80001831054688, - 380.9999084472656, - 82.80001831054688, - 401.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ƒ‚", - "origin": [ - 82.80001831054688, - 387.2998962402344 - ], - "bbox": [ - 82.80001831054688, - 382.5998840332031, - 90.30001831054688, - 400.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fì­8wÓ~«z5ª\u0019%5u«¬£9©", - "origin": [ - 90.30001831054688, - 387.2998962402344 - ], - "bbox": [ - 90.30001831054688, - 380.9999084472656, - 142.80001831054688, - 401.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÕT", - "origin": [ - 142.80001831054688, - 387.2998962402344 - ], - "bbox": [ - 142.80001831054688, - 381.2998962402344, - 152.30001831054688, - 400.4999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "„‚", - "origin": [ - 152.30001831054688, - 387.2998962402344 - ], - "bbox": [ - 152.30001831054688, - 382.5998840332031, - 155.80001831054688, - 400.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Æ\"ºŠŸ\"ĊŸ\u0011žIºFÞgXx[", - "origin": [ - 155.80001831054688, - 387.2998962402344 - ], - "bbox": [ - 155.80001831054688, - 381.2998962402344, - 207.4000244140625, - 400.4999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001831054688, - 380.9999084472656, - 207.4000244140625, - 401.39990234375 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 82.80001831054688, - 394.69989013671875, - 164.20001220703125, - 415.0998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80001831054688, - 400.9998779296875 - ], - "bbox": [ - 82.80001831054688, - 394.69989013671875, - 82.80001831054688, - 415.0998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "!\u001f�m\u001e'", - "origin": [ - 82.80001831054688, - 400.9998779296875 - ], - "bbox": [ - 82.80001831054688, - 396.29986572265625, - 100.5000228881836, - 414.0998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 100.5000228881836, - 400.9998779296875 - ], - "bbox": [ - 100.5000228881836, - 394.69989013671875, - 106.4000244140625, - 415.0998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001831054688, - 394.69989013671875, - 106.4000244140625, - 415.0998840332031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8", - "origin": [ - 117.30001831054688, - 400.9998779296875 - ], - "bbox": [ - 117.30001831054688, - 394.69989013671875, - 117.30001831054688, - 415.0998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/_", - "origin": [ - 117.30001831054688, - 400.9998779296875 - ], - "bbox": [ - 117.30001831054688, - 394.9998779296875, - 122.70001983642578, - 414.19989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 117.30001831054688, - 394.69989013671875, - 122.70001983642578, - 415.0998840332031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÿ/\u0018w£9¤u\u00194©?5", - "origin": [ - 129.30001831054688, - 400.9998779296875 - ], - "bbox": [ - 129.30001831054688, - 394.69989013671875, - 159.70001220703125, - 415.0998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 159.70001220703125, - 400.9998779296875 - ], - "bbox": [ - 159.70001220703125, - 394.9998779296875, - 164.20001220703125, - 414.19989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.30001831054688, - 394.69989013671875, - 164.20001220703125, - 415.0998840332031 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 82.80001831054688, - 408.19989013671875, - 106.4000244140625, - 428.5998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80001831054688, - 414.4998779296875 - ], - "bbox": [ - 82.80001831054688, - 408.19989013671875, - 82.80001831054688, - 428.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "!\u001f�m", - "origin": [ - 82.80001831054688, - 414.4998779296875 - ], - "bbox": [ - 82.80001831054688, - 409.79986572265625, - 95.0000228881836, - 427.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/›", - "origin": [ - 95.0000228881836, - 414.4998779296875 - ], - "bbox": [ - 95.0000228881836, - 408.4998779296875, - 100.4000244140625, - 427.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";ì", - "origin": [ - 100.4000244140625, - 414.4998779296875 - ], - "bbox": [ - 100.4000244140625, - 408.19989013671875, - 106.4000244140625, - 428.5998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001831054688, - 408.19989013671875, - 106.4000244140625, - 428.5998840332031 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 126.30001831054688, - 408.19989013671875, - 149.6000213623047, - 428.5998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©\u001a¥F«-¦[6", - "origin": [ - 126.30001831054688, - 414.4998779296875 - ], - "bbox": [ - 126.30001831054688, - 408.19989013671875, - 144.6000213623047, - 428.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 144.6000213623047, - 414.4998779296875 - ], - "bbox": [ - 144.6000213623047, - 408.4998779296875, - 149.6000213623047, - 427.69989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.30001831054688, - 408.19989013671875, - 149.6000213623047, - 428.5998840332031 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 82.80001831054688, - 421.8998718261719, - 174.80001831054688, - 442.29986572265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80001831054688, - 428.1998596191406 - ], - "bbox": [ - 82.80001831054688, - 421.8998718261719, - 82.80001831054688, - 442.29986572265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(r\u001e;", - "origin": [ - 82.80001831054688, - 428.1998596191406 - ], - "bbox": [ - 82.80001831054688, - 423.4998474121094, - 95.50001525878906, - 441.29986572265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fœ", - "origin": [ - 95.50001525878906, - 428.1998596191406 - ], - "bbox": [ - 95.50001525878906, - 422.1998596191406, - 100.50001525878906, - 441.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè", - "origin": [ - 100.50001525878906, - 428.1998596191406 - ], - "bbox": [ - 100.50001525878906, - 421.8998718261719, - 105.80001831054688, - 442.29986572265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ká/ž", - "origin": [ - 105.80001831054688, - 428.1998596191406 - ], - "bbox": [ - 105.80001831054688, - 422.1998596191406, - 121.90001678466797, - 441.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 121.90001678466797, - 428.1998596191406 - ], - "bbox": [ - 121.90001678466797, - 423.4998474121094, - 126.70001983642578, - 441.29986572265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nß", - "origin": [ - 126.70001983642578, - 428.1998596191406 - ], - "bbox": [ - 126.70001983642578, - 422.1998596191406, - 132.00001525878906, - 441.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%$\u0019N%/#$", - "origin": [ - 132.00001525878906, - 428.1998596191406 - ], - "bbox": [ - 132.00001525878906, - 423.4998474121094, - 159.00001525878906, - 441.29986572265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì¢8", - "origin": [ - 159.00001525878906, - 428.1998596191406 - ], - "bbox": [ - 159.00001525878906, - 421.8998718261719, - 174.80001831054688, - 442.29986572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001831054688, - 421.8998718261719, - 174.80001831054688, - 442.29986572265625 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 187.80001831054688, - 421.8998718261719, - 339.89996337890625, - 442.29986572265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ç\u001c\u001bª\u00194©\u001a¥/«¬5o£\u001c§É\u001b7Èe¥/§F«¬5bʬ6V5u6)ÿ\n576M¦[£\u001c©\u001a¦[6[\u001bu©FÈ\u001c ", - "origin": [ - 187.80001831054688, - 428.1998596191406 - ], - "bbox": [ - 187.80001831054688, - 421.8998718261719, - 339.89996337890625, - 442.29986572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.80001831054688, - 421.8998718261719, - 339.89996337890625, - 442.29986572265625 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 72.50001525878906, - 453.8998718261719, - 214.1000213623047, - 473.0998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ï1\u0019\rÌ", - "origin": [ - 72.50001525878906, - 459.8998718261719 - ], - "bbox": [ - 72.50001525878906, - 453.8998718261719, - 82.90001678466797, - 473.0998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 453.8998718261719, - 82.90001678466797, - 473.0998840332031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%•)657¬*:;\u001f\"!75�5*)E3ñ)E5&-\"%", - "origin": [ - 103.00001525878906, - 459.8998718261719 - ], - "bbox": [ - 103.00001525878906, - 453.8998718261719, - 214.1000213623047, - 473.0998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00001525878906, - 453.8998718261719, - 214.1000213623047, - 473.0998840332031 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 72.30001831054688, - 482.0998840332031, - 536.300048828125, - 502.4998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤^6[©\nÆ\n«¬\u001bu£\u001c©F©\u001a6[¨g6[©?5u¤^\u0018w6[\u001bu¨g6)5�5u6[©?5c¥/6ÉÔõ£\u001c\u001bu¨#\u0019%576=\u001bgʬ6É576[ÿ\n576Ý¥;¯", - "origin": [ - 72.30001831054688, - 488.3998718261719 - ], - "bbox": [ - 72.30001831054688, - 482.0998840332031, - 316.39996337890625, - 502.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 482.0998840332031, - 316.39996337890625, - 502.4998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6ݦ)6=\u001b�5ª\u00194«-©F6‰¨#\u0019\u001c©F«¬á=\u001b769 iËi\u0019\u001c\u001bg6)ÿ/6[¨g\u0018FÊ-6…\u0018�£9§F\u001b^Ôy\u00194«-\u001b76…¥/6=¤", - "origin": [ - 318.60003662109375, - 488.3998718261719 - ], - "bbox": [ - 318.60003662109375, - 482.0998840332031, - 536.300048828125, - 502.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.60003662109375, - 482.0998840332031, - 536.300048828125, - 502.4998779296875 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 72.30003356933594, - 495.69989013671875, - 348.800048828125, - 516.099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)«¬5u\u0019457«-£\u001c©\u001a¤s£9§‰\u0018w£\u001c§\u001a\u001bR\u0019", - "origin": [ - 72.30003356933594, - 501.9998779296875 - ], - "bbox": [ - 72.30003356933594, - 495.69989013671875, - 150.20004272460938, - 516.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 150.20004272460938, - 501.9998779296875 - ], - "bbox": [ - 150.20004272460938, - 495.9998779296875, - 155.0000457763672, - 515.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6=\u001b Ê-6BÊ-«-¤�57«-©FÇ#¥;¯", - "origin": [ - 155.0000457763672, - 501.9998779296875 - ], - "bbox": [ - 155.0000457763672, - 495.69989013671875, - 231.20005798339844, - 516.099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30003356933594, - 495.69989013671875, - 231.20005798339844, - 516.099853515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©…\u0018F\u001b7£9Ç\u001c\u001bª\u00194¨g¨g6V¤7§F\u001boÊY\u0019^\u0018\u001a\u00194Ç96\u001c ", - "origin": [ - 233.40003967285156, - 501.9998779296875 - ], - "bbox": [ - 233.40003967285156, - 495.69989013671875, - 348.800048828125, - 516.099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.40003967285156, - 495.69989013671875, - 348.800048828125, - 516.099853515625 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 82.80003356933594, - 514.4998779296875, - 240.30001831054688, - 534.8998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80003356933594, - 520.7998657226562 - ], - "bbox": [ - 82.80003356933594, - 514.4998779296875, - 82.80003356933594, - 534.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*¾", - "origin": [ - 82.80003356933594, - 520.7998657226562 - ], - "bbox": [ - 82.80003356933594, - 514.7998657226562, - 90.10003662109375, - 533.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1;�:", - "origin": [ - 90.10003662109375, - 520.7998657226562 - ], - "bbox": [ - 90.10003662109375, - 516.099853515625, - 100.50003814697266, - 533.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në+ìà8FËi6[\u001bu¨g6)5b¥;¯", - "origin": [ - 100.50003814697266, - 520.7998657226562 - ], - "bbox": [ - 100.50003814697266, - 514.4998779296875, - 168.800048828125, - 534.8998413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80003356933594, - 514.4998779296875, - 168.800048828125, - 534.8998413085938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019", - "origin": [ - 171.10003662109375, - 520.7998657226562 - ], - "bbox": [ - 171.10003662109375, - 514.4998779296875, - 171.10003662109375, - 534.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 171.10003662109375, - 520.7998657226562 - ], - "bbox": [ - 171.10003662109375, - 514.7998657226562, - 175.90003967285156, - 533.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6[\u001bb¥F§…¦[£/¥/6", - "origin": [ - 175.90003967285156, - 520.7998657226562 - ], - "bbox": [ - 175.90003967285156, - 514.4998779296875, - 235.30001831054688, - 534.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 235.30001831054688, - 520.7998657226562 - ], - "bbox": [ - 235.30001831054688, - 514.7998657226562, - 240.30001831054688, - 533.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 171.10003662109375, - 514.4998779296875, - 240.30001831054688, - 534.8998413085938 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 82.20003509521484, - 528.0999145507812, - 139.90005493164062, - 548.4998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi\u0019\u001c\u001bo6)ÿ/6[¨g\u0018FÊ-6g8", - "origin": [ - 82.20003509521484, - 534.39990234375 - ], - "bbox": [ - 82.20003509521484, - 528.0999145507812, - 139.90005493164062, - 548.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20003509521484, - 528.0999145507812, - 139.90005493164062, - 548.4998779296875 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 82.5, - 550.1000366210938, - 108.9000015258789, - 570.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÝF¾", - "origin": [ - 82.5, - 556.4000244140625 - ], - "bbox": [ - 82.5, - 550.4000244140625, - 87.5, - 569.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e;�:", - "origin": [ - 87.5, - 556.4000244140625 - ], - "bbox": [ - 87.5, - 551.7000122070312, - 98.0, - 569.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 98.0, - 556.4000244140625 - ], - "bbox": [ - 98.0, - 550.1000366210938, - 103.30000305175781, - 570.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 103.30000305175781, - 556.4000244140625 - ], - "bbox": [ - 103.30000305175781, - 550.4000244140625, - 108.9000015258789, - 569.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.5, - 550.1000366210938, - 108.9000015258789, - 570.5 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 82.30000305175781, - 564.0, - 171.70001220703125, - 583.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "q", - "origin": [ - 82.30000305175781, - 570.0 - ], - "bbox": [ - 82.30000305175781, - 565.2999877929688, - 82.30000305175781, - 583.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fžcÞ\u0011 ŠÁ|Æ", - "origin": [ - 82.30000305175781, - 570.0 - ], - "bbox": [ - 82.30000305175781, - 564.0, - 108.5, - 583.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 108.5, - 570.0 - ], - "bbox": [ - 108.5, - 565.2999877929688, - 113.9000015258789, - 583.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßkÝ\"áIŸ", - "origin": [ - 113.9000015258789, - 570.0 - ], - "bbox": [ - 113.9000015258789, - 564.0, - 139.8000030517578, - 583.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "->", - "origin": [ - 139.8000030517578, - 570.0 - ], - "bbox": [ - 139.8000030517578, - 565.2999877929688, - 145.10000610351562, - 583.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�ž|º&·¸¡gä", - "origin": [ - 145.10000610351562, - 570.0 - ], - "bbox": [ - 145.10000610351562, - 564.0, - 171.70001220703125, - 583.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 564.0, - 171.70001220703125, - 583.2000122070312 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 82.20000457763672, - 591.2999877929688, - 145.1999969482422, - 610.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â/ºfž", - "origin": [ - 82.20000457763672, - 597.2999877929688 - ], - "bbox": [ - 82.20000457763672, - 591.2999877929688, - 93.30000305175781, - 610.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 93.30000305175781, - 597.2999877929688 - ], - "bbox": [ - 93.30000305175781, - 592.5999755859375, - 98.10000610351562, - 610.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "AÀ\u0011ÄfžcÞ", - "origin": [ - 98.10000610351562, - 597.2999877929688 - ], - "bbox": [ - 98.10000610351562, - 591.2999877929688, - 124.10000610351562, - 610.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "D…\u000e†I‡", - "origin": [ - 124.10000610351562, - 597.2999877929688 - ], - "bbox": [ - 124.10000610351562, - 592.5999755859375, - 145.1999969482422, - 610.3999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20000457763672, - 591.2999877929688, - 145.1999969482422, - 610.5 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 102.90000915527344, - 604.7999877929688, - 230.5000457763672, - 624.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "´/»\u0011žcÞ/Ÿ\nà", - "origin": [ - 102.90000915527344, - 610.7999877929688 - ], - "bbox": [ - 102.90000915527344, - 604.7999877929688, - 129.50001525878906, - 624.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "T…\f$\u000e8", - "origin": [ - 129.50001525878906, - 610.7999877929688 - ], - "bbox": [ - 129.50001525878906, - 606.0999755859375, - 145.30001831054688, - 623.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß\nÁ\nÁHº", - "origin": [ - 145.30001831054688, - 610.7999877929688 - ], - "bbox": [ - 145.30001831054688, - 604.7999877929688, - 166.6000213623047, - 624.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "7ˆ", - "origin": [ - 166.6000213623047, - 610.7999877929688 - ], - "bbox": [ - 166.6000213623047, - 606.0999755859375, - 176.1000213623047, - 623.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gºŠ»gÁ", - "origin": [ - 176.1000213623047, - 610.7999877929688 - ], - "bbox": [ - 176.1000213623047, - 604.7999877929688, - 192.40003967285156, - 624.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 192.40003967285156, - 610.7999877929688 - ], - "bbox": [ - 192.40003967285156, - 606.0999755859375, - 197.5000457763672, - 623.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&¢", - "origin": [ - 197.5000457763672, - 610.7999877929688 - ], - "bbox": [ - 197.5000457763672, - 604.7999877929688, - 204.300048828125, - 624.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "Љ", - "origin": [ - 204.300048828125, - 610.7999877929688 - ], - "bbox": [ - 204.300048828125, - 606.0999755859375, - 208.20004272460938, - 623.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Þ", - "origin": [ - 208.20004272460938, - 610.7999877929688 - ], - "bbox": [ - 208.20004272460938, - 604.7999877929688, - 213.10003662109375, - 624.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S$@†&‹", - "origin": [ - 213.10003662109375, - 610.7999877929688 - ], - "bbox": [ - 213.10003662109375, - 606.0999755859375, - 230.5000457763672, - 623.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.90000915527344, - 604.7999877929688, - 230.5000457763672, - 624.0 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 82.50000762939453, - 631.7999877929688, - 114.10000610351562, - 652.199951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.50000762939453, - 638.0999755859375 - ], - "bbox": [ - 82.50000762939453, - 632.0999755859375, - 82.50000762939453, - 651.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#‰", - "origin": [ - 82.50000762939453, - 638.0999755859375 - ], - "bbox": [ - 82.50000762939453, - 633.3999633789062, - 87.70000457763672, - 651.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "о", - "origin": [ - 87.70000457763672, - 638.0999755859375 - ], - "bbox": [ - 87.70000457763672, - 632.0999755859375, - 92.80000305175781, - 651.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e;�:", - "origin": [ - 92.80000305175781, - 638.0999755859375 - ], - "bbox": [ - 92.80000305175781, - 633.3999633789062, - 103.30000305175781, - 651.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 103.30000305175781, - 638.0999755859375 - ], - "bbox": [ - 103.30000305175781, - 631.7999877929688, - 108.60000610351562, - 652.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 108.60000610351562, - 638.0999755859375 - ], - "bbox": [ - 108.60000610351562, - 632.0999755859375, - 114.10000610351562, - 651.2999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.50000762939453, - 631.7999877929688, - 114.10000610351562, - 652.199951171875 - ] - } - ] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 82.30000305175781, - 645.9000244140625, - 114.20000457763672, - 666.2999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3R£9©F©F6#8", - "origin": [ - 82.30000305175781, - 652.2000122070312 - ], - "bbox": [ - 82.30000305175781, - 645.9000244140625, - 114.20000457763672, - 666.2999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 645.9000244140625, - 114.20000457763672, - 666.2999877929688 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 82.30000305175781, - 666.2000122070312, - 171.70001220703125, - 685.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "q", - "origin": [ - 82.30000305175781, - 672.2000122070312 - ], - "bbox": [ - 82.30000305175781, - 667.5, - 82.30000305175781, - 685.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fžcÞ\u0011 ŠÁ|Æ", - "origin": [ - 82.30000305175781, - 672.2000122070312 - ], - "bbox": [ - 82.30000305175781, - 666.2000122070312, - 108.5, - 685.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 108.5, - 672.2000122070312 - ], - "bbox": [ - 108.5, - 667.5, - 113.9000015258789, - 685.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßkÝ\"áIŸ", - "origin": [ - 113.9000015258789, - 672.2000122070312 - ], - "bbox": [ - 113.9000015258789, - 666.2000122070312, - 139.8000030517578, - 685.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "->", - "origin": [ - 139.8000030517578, - 672.2000122070312 - ], - "bbox": [ - 139.8000030517578, - 667.5, - 145.10000610351562, - 685.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�ž|º&·¸¡gä", - "origin": [ - 145.10000610351562, - 672.2000122070312 - ], - "bbox": [ - 145.10000610351562, - 666.2000122070312, - 171.70001220703125, - 685.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 666.2000122070312, - 171.70001220703125, - 685.4000244140625 - ] - } - ] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 82.20000457763672, - 693.5, - 145.1999969482422, - 712.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â/ºfž", - "origin": [ - 82.20000457763672, - 699.5 - ], - "bbox": [ - 82.20000457763672, - 693.5, - 93.30000305175781, - 712.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 93.30000305175781, - 699.5 - ], - "bbox": [ - 93.30000305175781, - 694.7999877929688, - 98.10000610351562, - 712.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "AÀ\u0011ÄfžcÞ", - "origin": [ - 98.10000610351562, - 699.5 - ], - "bbox": [ - 98.10000610351562, - 693.5, - 124.10000610351562, - 712.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "D…\u000e†I‡", - "origin": [ - 124.10000610351562, - 699.5 - ], - "bbox": [ - 124.10000610351562, - 694.7999877929688, - 145.1999969482422, - 712.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20000457763672, - 693.5, - 145.1999969482422, - 712.7000122070312 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 102.90000915527344, - 707.0999755859375, - 230.5000457763672, - 726.2999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "´/»\u0011žcÞ/Ÿ\nà", - "origin": [ - 102.90000915527344, - 713.0999755859375 - ], - "bbox": [ - 102.90000915527344, - 707.0999755859375, - 129.50001525878906, - 726.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "T…\f$\u000e8", - "origin": [ - 129.50001525878906, - 713.0999755859375 - ], - "bbox": [ - 129.50001525878906, - 708.3999633789062, - 145.30001831054688, - 726.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß\nÁ\nÁHº", - "origin": [ - 145.30001831054688, - 713.0999755859375 - ], - "bbox": [ - 145.30001831054688, - 707.0999755859375, - 166.6000213623047, - 726.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "7ˆ", - "origin": [ - 166.6000213623047, - 713.0999755859375 - ], - "bbox": [ - 166.6000213623047, - 708.3999633789062, - 176.1000213623047, - 726.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gºŠ»gÁ", - "origin": [ - 176.1000213623047, - 713.0999755859375 - ], - "bbox": [ - 176.1000213623047, - 707.0999755859375, - 192.40003967285156, - 726.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 192.40003967285156, - 713.0999755859375 - ], - "bbox": [ - 192.40003967285156, - 708.3999633789062, - 197.5000457763672, - 726.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&¢", - "origin": [ - 197.5000457763672, - 713.0999755859375 - ], - "bbox": [ - 197.5000457763672, - 707.0999755859375, - 204.300048828125, - 726.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "Љ", - "origin": [ - 204.300048828125, - 713.0999755859375 - ], - "bbox": [ - 204.300048828125, - 708.3999633789062, - 208.20004272460938, - 726.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Þ", - "origin": [ - 208.20004272460938, - 713.0999755859375 - ], - "bbox": [ - 208.20004272460938, - 707.0999755859375, - 213.10003662109375, - 726.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S$@†&‹", - "origin": [ - 213.10003662109375, - 713.0999755859375 - ], - "bbox": [ - 213.10003662109375, - 708.3999633789062, - 230.5000457763672, - 726.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.90000915527344, - 707.0999755859375, - 230.5000457763672, - 726.2999877929688 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 35.29997634887695, - 595.0, - 55.699974060058594 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 130.10003662109375, - 80.69993591308594, - 538.2000122070312, - 101.09993743896484 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 135.19993591308594, - 595.0, - 230.6000213623047 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 72.19998168945312, - 237.6000213623047, - 511.2000427246094, - 442.29986572265625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 519.7999877929688, - 237.6000213623047, - 535.699951171875, - 442.29986572265625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 453.8998718261719, - 595.0, - 610.5 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 631.7999877929688, - 595.0, - 712.7000122070312 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 735.1000366210938, - 595.0, - 769.199951171875 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.5, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ä", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 72.5, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=�", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgó˜%žô–œ9žõóiÁFöy¾\nØ!ܝÁFöôžyØe¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 92.60002899169922, - 80.69993591308594, - 117.30003356933594, - 101.09993743896484 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "á/ž", - "origin": [ - 92.60002899169922, - 86.99993896484375 - ], - "bbox": [ - 92.60002899169922, - 80.99993896484375, - 98.00003051757812, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 98.00003051757812, - 86.99993896484375 - ], - "bbox": [ - 98.00003051757812, - 82.29994201660156, - 102.80003356933594, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 102.80003356933594, - 86.99993896484375 - ], - "bbox": [ - 102.80003356933594, - 80.99993896484375, - 108.20003509521484, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 108.20003509521484, - 86.99993896484375 - ], - "bbox": [ - 108.20003509521484, - 80.69993591308594, - 117.30003356933594, - 101.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.60002899169922, - 80.69993591308594, - 117.30003356933594, - 101.09993743896484 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 130.10003662109375, - 80.69993591308594, - 538.2000122070312, - 101.09993743896484 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ë", - "origin": [ - 130.10003662109375, - 86.99993896484375 - ], - "bbox": [ - 130.10003662109375, - 80.99993896484375, - 130.10003662109375, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤\\5u6!ÊY\u0019\u000f5u\u00194«-Ê-ʬ6g¥/6^Ê-\u0019‰Ê¬«-Ç\u001c©\u001a6^¥/6g¤7È[\u0018\u001a\u0019\u001c\u001bu\u0019457«-£\u001c©K ", - "origin": [ - 130.10003662109375, - 86.99993896484375 - ], - "bbox": [ - 130.10003662109375, - 80.69993591308594, - 300.9000244140625, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ".š", - "origin": [ - 300.9000244140625, - 86.99993896484375 - ], - "bbox": [ - 300.9000244140625, - 80.99993896484375, - 306.9000244140625, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©\u000e\u0018w6[§/5M\u0019aÆ\u001c£9«¬\u001bV¥/6[§FÿͧF©F«¬57È=¤H¥/6^¨g6=¤7§F\u001bu6\u001c ;¶,¯", - "origin": [ - 306.9000244140625, - 86.99993896484375 - ], - "bbox": [ - 306.9000244140625, - 80.69993591308594, - 483.9000549316406, - 101.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 130.10003662109375, - 80.69993591308594, - 483.9000549316406, - 101.09993743896484 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6g\u00194Ð\u001a¤7£\u001cÊ-§F6", - "origin": [ - 486.10003662109375, - 86.99993896484375 - ], - "bbox": [ - 486.10003662109375, - 80.69993591308594, - 533.1000366210938, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 533.1000366210938, - 86.99993896484375 - ], - "bbox": [ - 533.1000366210938, - 80.99993896484375, - 538.2000122070312, - 100.19993591308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.10003662109375, - 80.69993591308594, - 538.2000122070312, - 101.09993743896484 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 92.10003662109375, - 94.29991149902344, - 534.7000122070312, - 114.69991302490234 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=©", - "origin": [ - 92.10003662109375, - 100.59991455078125 - ], - "bbox": [ - 92.10003662109375, - 94.29991149902344, - 96.60003662109375, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~Ò�p", - "origin": [ - 96.60003662109375, - 100.59991455078125 - ], - "bbox": [ - 96.60003662109375, - 94.59991455078125, - 111.30004119873047, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "yx", - "origin": [ - 111.30004119873047, - 100.59991455078125 - ], - "bbox": [ - 111.30004119873047, - 95.89991760253906, - 113.90003967285156, - 113.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n'[(", - "origin": [ - 113.90003967285156, - 100.59991455078125 - ], - "bbox": [ - 113.90003967285156, - 94.29991149902344, - 123.60004425048828, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Û[", - "origin": [ - 123.60004425048828, - 100.59991455078125 - ], - "bbox": [ - 123.60004425048828, - 94.59991455078125, - 127.20004272460938, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�«-ʝ¤7§", - "origin": [ - 127.20004272460938, - 100.59991455078125 - ], - "bbox": [ - 127.20004272460938, - 94.29991149902344, - 146.00003051757812, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/>", - "origin": [ - 146.00003051757812, - 100.59991455078125 - ], - "bbox": [ - 146.00003051757812, - 94.59991455078125, - 151.4000244140625, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "g5V¥F6¸©F6M¨g6[5�57\u001bu6!²?§K¯", - "origin": [ - 151.4000244140625, - 100.59991455078125 - ], - "bbox": [ - 151.4000244140625, - 94.29991149902344, - 238.00003051757812, - 114.69991302490234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.10003662109375, - 94.29991149902344, - 238.00003051757812, - 114.69991302490234 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©\u000e¦ªþ\u001a«", - "origin": [ - 240.20004272460938, - 100.59991455078125 - ], - "bbox": [ - 240.20004272460938, - 94.29991149902344, - 264.60003662109375, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "", - "origin": [ - 264.60003662109375, - 100.59991455078125 - ], - "bbox": [ - 264.60003662109375, - 94.59991455078125, - 267.2000427246094, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+\u001b76", - "origin": [ - 267.2000427246094, - 100.59991455078125 - ], - "bbox": [ - 267.2000427246094, - 94.29991149902344, - 277.0000305175781, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017TÛá/ž", - "origin": [ - 277.0000305175781, - 100.59991455078125 - ], - "bbox": [ - 277.0000305175781, - 94.59991455078125, - 294.8000183105469, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 294.8000183105469, - 100.59991455078125 - ], - "bbox": [ - 294.8000183105469, - 95.89991760253906, - 299.6000061035156, - 113.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 299.6000061035156, - 100.59991455078125 - ], - "bbox": [ - 299.6000061035156, - 94.59991455078125, - 305.0, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@\"%$", - "origin": [ - 305.0, - 100.59991455078125 - ], - "bbox": [ - 305.0, - 95.89991760253906, - 316.1000061035156, - 113.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\Â", - "origin": [ - 316.1000061035156, - 100.59991455078125 - ], - "bbox": [ - 316.1000061035156, - 94.59991455078125, - 320.6000061035156, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001eJG$", - "origin": [ - 320.6000061035156, - 100.59991455078125 - ], - "bbox": [ - 320.6000061035156, - 95.89991760253906, - 332.0, - 113.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 332.0, - 100.59991455078125 - ], - "bbox": [ - 332.0, - 94.59991455078125, - 336.6000061035156, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") /¶,¯", - "origin": [ - 336.6000061035156, - 100.59991455078125 - ], - "bbox": [ - 336.6000061035156, - 94.29991149902344, - 353.0, - 114.69991302490234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.20004272460938, - 94.29991149902344, - 353.0, - 114.69991302490234 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§/5u\u001b76M\u001bu6[ÊY\u0019%5u«¬Æ96¸ß#ÊY\u0019#ÊY\u00194\u001buÇ\u001c6[§\u001a\u001bR¥/6¸ÊY\u0019gÔõ6=©Få)5u\u001b76^¥/§", - "origin": [ - 355.300048828125, - 100.59991455078125 - ], - "bbox": [ - 355.300048828125, - 94.29991149902344, - 534.7000122070312, - 114.69991302490234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 355.300048828125, - 94.29991149902344, - 534.7000122070312, - 114.69991302490234 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 92.10003662109375, - 107.99992370605469, - 349.9000244140625, - 128.39993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©\u001a\u0019aÆ\n«-Ç9\u00194576[§\u001a\u001bs²?§F«;Æ\n«Y¤�§�\u00194Ê-«-¤76HÊ-\u0019^\u0018\u001a\u0019\u001cÇ\u001c6", - "origin": [ - 92.10003662109375, - 114.2999267578125 - ], - "bbox": [ - 92.10003662109375, - 107.99992370605469, - 224.60003662109375, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 224.60003662109375, - 114.2999267578125 - ], - "bbox": [ - 224.60003662109375, - 108.2999267578125, - 229.60003662109375, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/6=©", - "origin": [ - 229.60003662109375, - 114.2999267578125 - ], - "bbox": [ - 229.60003662109375, - 107.99992370605469, - 239.50003051757812, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0015Ò\"l", - "origin": [ - 239.50003051757812, - 114.2999267578125 - ], - "bbox": [ - 239.50003051757812, - 108.2999267578125, - 253.7000274658203, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4&/.", - "origin": [ - 253.7000274658203, - 114.2999267578125 - ], - "bbox": [ - 253.7000274658203, - 107.99992370605469, - 264.0000305175781, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "€Ó", - "origin": [ - 264.0000305175781, - 114.2999267578125 - ], - "bbox": [ - 264.0000305175781, - 108.2999267578125, - 267.9000244140625, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ª')$", - "origin": [ - 267.9000244140625, - 114.2999267578125 - ], - "bbox": [ - 267.9000244140625, - 107.99992370605469, - 276.3000183105469, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fw TÛá/ž", - "origin": [ - 276.3000183105469, - 114.2999267578125 - ], - "bbox": [ - 276.3000183105469, - 108.2999267578125, - 298.5000305175781, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 298.5000305175781, - 114.2999267578125 - ], - "bbox": [ - 298.5000305175781, - 109.59992980957031, - 303.3000183105469, - 127.3999252319336 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 303.3000183105469, - 114.2999267578125 - ], - "bbox": [ - 303.3000183105469, - 108.2999267578125, - 308.70001220703125, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"G$\fz", - "origin": [ - 308.70001220703125, - 114.2999267578125 - ], - "bbox": [ - 308.70001220703125, - 109.59992980957031, - 324.5000305175781, - 127.3999252319336 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃ", - "origin": [ - 324.5000305175781, - 114.2999267578125 - ], - "bbox": [ - 324.5000305175781, - 108.2999267578125, - 329.8000183105469, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#{%$", - "origin": [ - 329.8000183105469, - 114.2999267578125 - ], - "bbox": [ - 329.8000183105469, - 109.59992980957031, - 341.0000305175781, - 127.3999252319336 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 341.0000305175781, - 114.2999267578125 - ], - "bbox": [ - 341.0000305175781, - 108.2999267578125, - 345.60003662109375, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 345.60003662109375, - 114.2999267578125 - ], - "bbox": [ - 345.60003662109375, - 107.99992370605469, - 349.9000244140625, - 128.39993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.10003662109375, - 107.99992370605469, - 349.9000244140625, - 128.39993286132812 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 92.00003814697266, - 121.49992370605469, - 121.50003814697266, - 141.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶.ž", - "origin": [ - 92.00003814697266, - 127.7999267578125 - ], - "bbox": [ - 92.00003814697266, - 121.7999267578125, - 98.00003814697266, - 140.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 98.00003814697266, - 127.7999267578125 - ], - "bbox": [ - 98.00003814697266, - 123.09992980957031, - 102.80004119873047, - 140.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸŠ¡", - "origin": [ - 102.80004119873047, - 127.7999267578125 - ], - "bbox": [ - 102.80004119873047, - 121.7999267578125, - 113.10003662109375, - 140.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#8", - "origin": [ - 113.10003662109375, - 127.7999267578125 - ], - "bbox": [ - 113.10003662109375, - 121.49992370605469, - 121.50003814697266, - 141.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.00003814697266, - 121.49992370605469, - 121.50003814697266, - 141.89993286132812 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 133.10003662109375, - 121.49992370605469, - 538.2999877929688, - 141.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ë", - "origin": [ - 133.10003662109375, - 127.7999267578125 - ], - "bbox": [ - 133.10003662109375, - 121.7999267578125, - 133.10003662109375, - 140.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤\\5u6sÊ-\u0019Vþ\u001a\u0019\u001c§/576=§F\u001b", - "origin": [ - 133.10003662109375, - 127.7999267578125 - ], - "bbox": [ - 133.10003662109375, - 121.49992370605469, - 197.5000457763672, - 141.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.10003662109375, - 121.49992370605469, - 197.5000457763672, - 141.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6sÊ-\u0019\u001eʬ«-Ç\u001c©\u001a6s¥F6s¤7È[\u0018�\u00194\u001bª\u0019%57«-£\u001c©m ", - "origin": [ - 204.10003662109375, - 127.7999267578125 - ], - "bbox": [ - 204.10003662109375, - 121.49992370605469, - 308.4000244140625, - 141.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iš", - "origin": [ - 308.4000244140625, - 127.7999267578125 - ], - "bbox": [ - 308.4000244140625, - 121.7999267578125, - 313.20001220703125, - 140.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©!\u0018�6=§/5×\u00194§\u001a¤u¤7«?§F57«-ʬ«Y¤�6=\u001b,¥/6=¤\u0018F«¬ÿ/6[ÊY¤i£\u001c§^¥/6=¤i\u0018w£\u001c§F\u001bª¦)6=©?5u\u00194Ç96=¤= ", - "origin": [ - 313.20001220703125, - 127.7999267578125 - ], - "bbox": [ - 313.20001220703125, - 121.49992370605469, - 538.2999877929688, - 141.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 204.10003662109375, - 121.49992370605469, - 538.2999877929688, - 141.89993286132812 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 82.50003814697266, - 135.19993591308594, - 268.9000549316406, - 155.59994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "®\u001e§F6[ÊY²?§F6=¤s6[ÿ\n6=¨g\u0018Fʬ6e¤o¥/6BÐ\u001a\u0019\u001c\u001b7\u001bu6V¥F6M¤�È=\u0018\u001a\u00194\u001bª\u0019%5u«¬£9©Í8", - "origin": [ - 82.50003814697266, - 141.49993896484375 - ], - "bbox": [ - 82.50003814697266, - 135.19993591308594, - 268.9000549316406, - 155.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.50003814697266, - 135.19993591308594, - 268.9000549316406, - 155.59994506835938 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 103.30000305175781, - 157.5, - 255.6999969482422, - 176.6999969482422 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 103.30000305175781, - 163.5 - ], - "bbox": [ - 103.30000305175781, - 157.5, - 103.30000305175781, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 103.30000305175781, - 163.5 - ], - "bbox": [ - 103.30000305175781, - 158.8000030517578, - 108.30000305175781, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½«¶.ž", - "origin": [ - 108.30000305175781, - 163.5 - ], - "bbox": [ - 108.30000305175781, - 157.5, - 129.90000915527344, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 129.90000915527344, - 163.5 - ], - "bbox": [ - 129.90000915527344, - 158.8000030517578, - 134.70001220703125, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸH¡", - "origin": [ - 134.70001220703125, - 163.5 - ], - "bbox": [ - 134.70001220703125, - 157.5, - 145.10000610351562, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$\fz", - "origin": [ - 145.10000610351562, - 163.5 - ], - "bbox": [ - 145.10000610351562, - 158.8000030517578, - 161.1999969482422, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃ", - "origin": [ - 161.1999969482422, - 163.5 - ], - "bbox": [ - 161.1999969482422, - 157.5, - 166.5, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 166.5, - 163.5 - ], - "bbox": [ - 166.5, - 158.8000030517578, - 172.39999389648438, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÈÄ/ÁgžY¼ŠÞ", - "origin": [ - 172.39999389648438, - 163.5 - ], - "bbox": [ - 172.39999389648438, - 157.5, - 202.5, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"%$", - "origin": [ - 202.5, - 163.5 - ], - "bbox": [ - 202.5, - 158.8000030517578, - 214.0, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F Fß|Þ/Ÿ\"ߊ»", - "origin": [ - 214.0, - 163.5 - ], - "bbox": [ - 214.0, - 157.5, - 244.89999389648438, - 176.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 244.89999389648438, - 163.5 - ], - "bbox": [ - 244.89999389648438, - 158.8000030517578, - 251.0, - 176.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Yä", - "origin": [ - 251.0, - 163.5 - ], - "bbox": [ - 251.0, - 157.5, - 255.6999969482422, - 176.6999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.30000305175781, - 157.5, - 255.6999969482422, - 176.6999969482422 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 103.30000305175781, - 171.0, - 308.0999755859375, - 190.1999969482422 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 103.30000305175781, - 177.0 - ], - "bbox": [ - 103.30000305175781, - 171.0, - 103.30000305175781, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 103.30000305175781, - 177.0 - ], - "bbox": [ - 103.30000305175781, - 172.3000030517578, - 108.30000305175781, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½á/ž", - "origin": [ - 108.30000305175781, - 177.0 - ], - "bbox": [ - 108.30000305175781, - 171.0, - 129.90000915527344, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 129.90000915527344, - 177.0 - ], - "bbox": [ - 129.90000915527344, - 172.3000030517578, - 134.70001220703125, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 134.70001220703125, - 177.0 - ], - "bbox": [ - 134.70001220703125, - 171.0, - 140.10000610351562, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"G$\fzG$", - "origin": [ - 140.10000610351562, - 177.0 - ], - "bbox": [ - 140.10000610351562, - 172.3000030517578, - 161.79998779296875, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "²¶.ž", - "origin": [ - 161.79998779296875, - 177.0 - ], - "bbox": [ - 161.79998779296875, - 171.0, - 176.99998474121094, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>", - "origin": [ - 176.99998474121094, - 177.0 - ], - "bbox": [ - 176.99998474121094, - 172.3000030517578, - 181.69998168945312, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸH¡", - "origin": [ - 181.69998168945312, - 177.0 - ], - "bbox": [ - 181.69998168945312, - 171.0, - 192.0999755859375, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"%$\u0019z", - "origin": [ - 192.0999755859375, - 177.0 - ], - "bbox": [ - 192.0999755859375, - 172.3000030517578, - 208.19998168945312, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃ", - "origin": [ - 208.19998168945312, - 177.0 - ], - "bbox": [ - 208.19998168945312, - 171.0, - 213.49998474121094, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#{%$", - "origin": [ - 213.49998474121094, - 177.0 - ], - "bbox": [ - 213.49998474121094, - 172.3000030517578, - 224.69998168945312, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÈÄ/ÁgžY¼HÞ", - "origin": [ - 224.69998168945312, - 177.0 - ], - "bbox": [ - 224.69998168945312, - 171.0, - 254.8999786376953, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 254.8999786376953, - 177.0 - ], - "bbox": [ - 254.8999786376953, - 172.3000030517578, - 266.29998779296875, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F FßFÞ\nŸ\"ߊ»", - "origin": [ - 266.29998779296875, - 177.0 - ], - "bbox": [ - 266.29998779296875, - 171.0, - 297.1999816894531, - 190.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 297.1999816894531, - 177.0 - ], - "bbox": [ - 297.1999816894531, - 172.3000030517578, - 303.29998779296875, - 190.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 303.29998779296875, - 177.0 - ], - "bbox": [ - 303.29998779296875, - 171.0, - 308.0999755859375, - 190.1999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.30000305175781, - 171.0, - 308.0999755859375, - 190.1999969482422 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 103.30000305175781, - 184.70001220703125, - 349.79998779296875, - 203.90000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 103.30000305175781, - 190.70001220703125 - ], - "bbox": [ - 103.30000305175781, - 184.70001220703125, - 103.30000305175781, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 103.30000305175781, - 190.70001220703125 - ], - "bbox": [ - 103.30000305175781, - 186.00001525878906, - 108.30000305175781, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½«ÞgºgáY¡gÄ", - "origin": [ - 108.30000305175781, - 190.70001220703125 - ], - "bbox": [ - 108.30000305175781, - 184.70001220703125, - 145.4000244140625, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 145.4000244140625, - 190.70001220703125 - ], - "bbox": [ - 145.4000244140625, - 186.00001525878906, - 150.50003051757812, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 150.50003051757812, - 190.70001220703125 - ], - "bbox": [ - 150.50003051757812, - 184.70001220703125, - 155.9000244140625, - 203.90000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.30000305175781, - 184.70001220703125, - 155.9000244140625, - 203.90000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "á/ž", - "origin": [ - 166.3000030517578, - 190.70001220703125 - ], - "bbox": [ - 166.3000030517578, - 184.70001220703125, - 171.6999969482422, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 171.6999969482422, - 190.70001220703125 - ], - "bbox": [ - 171.6999969482422, - 186.00001525878906, - 176.5, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nß", - "origin": [ - 176.5, - 190.70001220703125 - ], - "bbox": [ - 176.5, - 184.70001220703125, - 181.8000030517578, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%$\fzG$", - "origin": [ - 181.8000030517578, - 190.70001220703125 - ], - "bbox": [ - 181.8000030517578, - 186.00001525878906, - 203.59999084472656, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“¶.ž", - "origin": [ - 203.59999084472656, - 190.70001220703125 - ], - "bbox": [ - 203.59999084472656, - 184.70001220703125, - 218.6999969482422, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 218.6999969482422, - 190.70001220703125 - ], - "bbox": [ - 218.6999969482422, - 186.00001525878906, - 223.5, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸH¡", - "origin": [ - 223.5, - 190.70001220703125 - ], - "bbox": [ - 223.5, - 184.70001220703125, - 233.89999389648438, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$\fz", - "origin": [ - 233.89999389648438, - 190.70001220703125 - ], - "bbox": [ - 233.89999389648438, - 186.00001525878906, - 249.99998474121094, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÃ", - "origin": [ - 249.99998474121094, - 190.70001220703125 - ], - "bbox": [ - 249.99998474121094, - 184.70001220703125, - 255.29998779296875, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#{G$", - "origin": [ - 255.29998779296875, - 190.70001220703125 - ], - "bbox": [ - 255.29998779296875, - 186.00001525878906, - 266.3999938964844, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "PÄ/Ágžc¼HÞ", - "origin": [ - 266.3999938964844, - 190.70001220703125 - ], - "bbox": [ - 266.3999938964844, - 184.70001220703125, - 296.6000061035156, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"%$", - "origin": [ - 296.6000061035156, - 190.70001220703125 - ], - "bbox": [ - 296.6000061035156, - 186.00001525878906, - 308.1000061035156, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F |ßFÞ/Ÿ\"ߊ»", - "origin": [ - 308.1000061035156, - 190.70001220703125 - ], - "bbox": [ - 308.1000061035156, - 184.70001220703125, - 339.0, - 203.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%$", - "origin": [ - 339.0, - 190.70001220703125 - ], - "bbox": [ - 339.0, - 186.00001525878906, - 345.0, - 203.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 345.0, - 190.70001220703125 - ], - "bbox": [ - 345.0, - 184.70001220703125, - 349.79998779296875, - 203.90000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 166.3000030517578, - 184.70001220703125, - 349.79998779296875, - 203.90000915527344 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.5, - 211.4000244140625, - 154.1999969482422, - 230.6000213623047 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ï1\u0019\r?", - "origin": [ - 72.5, - 217.4000244140625 - ], - "bbox": [ - 72.5, - 211.4000244140625, - 82.9000015258789, - 230.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 211.4000244140625, - 82.9000015258789, - 230.6000213623047 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A%Š-", - "origin": [ - 103.0, - 217.4000244140625 - ], - "bbox": [ - 103.0, - 211.4000244140625, - 132.10000610351562, - 230.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�|", - "origin": [ - 132.10000610351562, - 217.4000244140625 - ], - "bbox": [ - 132.10000610351562, - 212.7000274658203, - 137.0, - 230.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*°;)6%", - "origin": [ - 137.0, - 217.4000244140625 - ], - "bbox": [ - 137.0, - 211.4000244140625, - 154.1999969482422, - 230.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.0, - 211.4000244140625, - 154.1999969482422, - 230.6000213623047 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.30000305175781, - 239.6000213623047, - 511.2000427246094, - 260.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6V¤\\5\\ø\nÊ-6R6e¤\\5s¦)6\u001e²?§F«w\u0018w6[\u001bu¨^6[5 ¥/6RÔy\u00194«-\u001b76\u001e\u001b76e¤7¤7£\u001c\u001b757«-\u001bצ[6[\u001b75u\u00194«-©\u001a¤×¨^£\u001c5u¤ ¥/§#5u6)ÿ\n576", - "origin": [ - 72.30000305175781, - 245.9000244140625 - ], - "bbox": [ - 72.30000305175781, - 239.6000213623047, - 352.4998474121094, - 260.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 352.4998474121094, - 245.9000244140625 - ], - "bbox": [ - 352.4998474121094, - 239.9000244140625, - 357.599853515625, - 259.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "96=©\u000fÊ-6R¨g6)575u\u00194©?5 6[©", - "origin": [ - 357.599853515625, - 245.9000244140625 - ], - "bbox": [ - 357.599853515625, - 239.6000213623047, - 427.99981689453125, - 260.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“p˜w", - "origin": [ - 427.99981689453125, - 245.9000244140625 - ], - "bbox": [ - 427.99981689453125, - 239.9000244140625, - 440.0998229980469, - 259.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±\"%(", - "origin": [ - 440.0998229980469, - 245.9000244140625 - ], - "bbox": [ - 440.0998229980469, - 239.6000213623047, - 448.49981689453125, - 260.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 239.6000213623047, - 448.49981689453125, - 260.0000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "p", - "origin": [ - 451.0, - 245.9000244140625 - ], - "bbox": [ - 451.0, - 239.9000244140625, - 451.0, - 259.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "~}", - "origin": [ - 451.0, - 245.9000244140625 - ], - "bbox": [ - 451.0, - 241.2000274658203, - 454.20001220703125, - 259.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[&\u001a'H£9§#ÐF«¬6=©\u000f6=©", - "origin": [ - 454.20001220703125, - 245.9000244140625 - ], - "bbox": [ - 454.20001220703125, - 239.6000213623047, - 511.2000427246094, - 260.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 451.0, - 239.6000213623047, - 511.2000427246094, - 260.0000305175781 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 519.7999877929688, - 237.6000213623047, - 535.699951171875, - 258.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\f", - "origin": [ - 519.7999877929688, - 243.9000244140625 - ], - "bbox": [ - 519.7999877929688, - 237.9000244140625, - 519.7999877929688, - 257.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a˜%ÁFØ", - "origin": [ - 519.7999877929688, - 243.9000244140625 - ], - "bbox": [ - 519.7999877929688, - 237.6000213623047, - 535.699951171875, - 258.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 519.7999877929688, - 237.6000213623047, - 535.699951171875, - 258.0000305175781 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 72.19998168945312, - 253.1999969482422, - 125.69998931884766, - 273.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001c\u001bo6)ÿ/6[¨g\u0018FÊ-6\u001c ", - "origin": [ - 72.19998168945312, - 259.5 - ], - "bbox": [ - 72.19998168945312, - 253.1999969482422, - 125.69998931884766, - 273.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19998168945312, - 253.1999969482422, - 125.69998931884766, - 273.6000061035156 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 82.79998779296875, - 272.0, - 446.99993896484375, - 292.3999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoë?ï+ì", - "origin": [ - 82.79998779296875, - 278.29998779296875 - ], - "bbox": [ - 82.79998779296875, - 272.0, - 101.09998321533203, - 292.3999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.79998779296875, - 272.0, - 101.09998321533203, - 292.3999938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8", - "origin": [ - 111.99998474121094, - 278.29998779296875 - ], - "bbox": [ - 111.99998474121094, - 272.0, - 111.99998474121094, - 292.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g_", - "origin": [ - 111.99998474121094, - 278.29998779296875 - ], - "bbox": [ - 111.99998474121094, - 272.29998779296875, - 117.59998321533203, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ\\5bÊY\u0019^Ð\u001a\u00194Ê-«Y¤�6B²?§F«K\u0018w6[\u001bu¨g6)5R¥/6H¨g6)5757\u001bu6B6[©", - "origin": [ - 117.59998321533203, - 278.29998779296875 - ], - "bbox": [ - 117.59998321533203, - 272.0, - 274.9999694824219, - 292.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÕÉ", - "origin": [ - 274.9999694824219, - 278.29998779296875 - ], - "bbox": [ - 274.9999694824219, - 272.29998779296875, - 284.4999694824219, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "a\"4(¬'[&/.¸§F©F6B\u0018�\u00194\u001b757«-6H¥F§\u000f5u6)ÿ\n576", - "origin": [ - 284.4999694824219, - 278.29998779296875 - ], - "bbox": [ - 284.4999694824219, - 272.0, - 393.8999328613281, - 292.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "òT", - "origin": [ - 393.8999328613281, - 278.29998779296875 - ], - "bbox": [ - 393.8999328613281, - 272.29998779296875, - 402.3999328613281, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yë?ï", - "origin": [ - 402.3999328613281, - 278.29998779296875 - ], - "bbox": [ - 402.3999328613281, - 272.0, - 410.7999572753906, - 292.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H´\n¡gÄgá|ß\nX�[", - "origin": [ - 410.7999572753906, - 278.29998779296875 - ], - "bbox": [ - 410.7999572753906, - 272.29998779296875, - 446.99993896484375, - 291.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.99998474121094, - 272.0, - 446.99993896484375, - 292.3999938964844 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 82.79998779296875, - 285.5999755859375, - 284.0999755859375, - 305.9999694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.79998779296875, - 291.89996337890625 - ], - "bbox": [ - 82.79998779296875, - 285.5999755859375, - 82.79998779296875, - 305.9999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 82.79998779296875, - 291.89996337890625 - ], - "bbox": [ - 82.79998779296875, - 285.89996337890625, - 89.89998626708984, - 305.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì­8FËi6[\u001bu¨^6[5R¥/6H¨g6)5�5u\u001b76B§\u001a©F6B\u0018\u001a\u00194\u001b757«-6B¥/§É576[ÿ?5u6B6[©", - "origin": [ - 89.89998626708984, - 291.89996337890625 - ], - "bbox": [ - 89.89998626708984, - 285.5999755859375, - 284.0999755859375, - 305.9999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.79998779296875, - 285.5999755859375, - 284.0999755859375, - 305.9999694824219 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 293.0, - 283.5999755859375, - 308.8999938964844, - 303.9999694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\f", - "origin": [ - 293.0, - 289.89996337890625 - ], - "bbox": [ - 293.0, - 283.89996337890625, - 293.0, - 303.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a˜%ÁFØ", - "origin": [ - 293.0, - 289.89996337890625 - ], - "bbox": [ - 293.0, - 283.5999755859375, - 308.8999938964844, - 303.9999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.0, - 283.5999755859375, - 308.8999938964844, - 303.9999694824219 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 317.5, - 285.89996337890625, - 346.1999816894531, - 305.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "T˜›gº/Á", - "origin": [ - 317.5, - 291.89996337890625 - ], - "bbox": [ - 317.5, - 285.89996337890625, - 331.5, - 305.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 331.5, - 291.89996337890625 - ], - "bbox": [ - 331.5, - 287.199951171875, - 336.5, - 304.9999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/X�[", - "origin": [ - 336.5, - 291.89996337890625 - ], - "bbox": [ - 336.5, - 285.89996337890625, - 346.1999816894531, - 305.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.5, - 285.89996337890625, - 346.1999816894531, - 305.0999755859375 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 82.80000305175781, - 299.29998779296875, - 151.1999969482422, - 319.6999816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çBéeè+ì", - "origin": [ - 82.80000305175781, - 305.5999755859375 - ], - "bbox": [ - 82.80000305175781, - 299.29998779296875, - 101.10000610351562, - 319.6999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 299.29998779296875, - 101.10000610351562, - 319.6999816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8", - "origin": [ - 112.0, - 305.5999755859375 - ], - "bbox": [ - 112.0, - 299.29998779296875, - 112.0, - 319.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Öxw", - "origin": [ - 112.0, - 305.5999755859375 - ], - "bbox": [ - 112.0, - 299.5999755859375, - 122.0, - 318.79998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±\"%(", - "origin": [ - 122.0, - 305.5999755859375 - ], - "bbox": [ - 122.0, - 299.29998779296875, - 130.39999389648438, - 319.6999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.0, - 299.29998779296875, - 130.39999389648438, - 319.6999816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "p", - "origin": [ - 132.89999389648438, - 305.5999755859375 - ], - "bbox": [ - 132.89999389648438, - 299.5999755859375, - 132.89999389648438, - 318.79998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "~}", - "origin": [ - 132.89999389648438, - 305.5999755859375 - ], - "bbox": [ - 132.89999389648438, - 300.89996337890625, - 136.09999084472656, - 318.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[&\u001a'", - "origin": [ - 136.09999084472656, - 305.5999755859375 - ], - "bbox": [ - 136.09999084472656, - 299.29998779296875, - 146.09999084472656, - 319.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 146.09999084472656, - 305.5999755859375 - ], - "bbox": [ - 146.09999084472656, - 299.5999755859375, - 151.1999969482422, - 318.79998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 132.89999389648438, - 299.29998779296875, - 151.1999969482422, - 319.6999816894531 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 82.79999542236328, - 312.79998779296875, - 421.5000305175781, - 333.1999816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè?è+ì", - "origin": [ - 82.79999542236328, - 319.0999755859375 - ], - "bbox": [ - 82.79999542236328, - 312.79998779296875, - 101.09999084472656, - 333.1999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.79999542236328, - 312.79998779296875, - 101.09999084472656, - 333.1999816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8\u001a˝6=\u001b7¨g6[5o¥K¯", - "origin": [ - 112.0, - 319.0999755859375 - ], - "bbox": [ - 112.0, - 312.79998779296875, - 158.39999389648438, - 333.1999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 112.0, - 312.79998779296875, - 158.39999389648438, - 333.1999816894531 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Èe¦)\u001bu«¬\u001bu6H6[©Ý¦[\u0019\u001c\u001bu\u00199¦157á=\u001b76e¤", - "origin": [ - 160.5, - 319.0999755859375 - ], - "bbox": [ - 160.5, - 312.79998779296875, - 240.79998779296875, - 333.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "9À\u0011Äg Y¡.ž\\Þgß", - "origin": [ - 240.79998779296875, - 319.0999755859375 - ], - "bbox": [ - 240.79998779296875, - 313.0999755859375, - 279.5, - 332.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "?€", - "origin": [ - 279.5, - 319.0999755859375 - ], - "bbox": [ - 279.5, - 314.39996337890625, - 300.20001220703125, - 332.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\" I»\u0011žY»\"ß\u0015T", - "origin": [ - 300.20001220703125, - 319.0999755859375 - ], - "bbox": [ - 300.20001220703125, - 313.0999755859375, - 335.3000183105469, - 332.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yè", - "origin": [ - 335.3000183105469, - 319.0999755859375 - ], - "bbox": [ - 335.3000183105469, - 312.79998779296875, - 338.5000305175781, - 333.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n㊴gßF¶/»\u0011žcŸ\"ߊ»", - "origin": [ - 338.5000305175781, - 319.0999755859375 - ], - "bbox": [ - 338.5000305175781, - 313.0999755859375, - 386.0000305175781, - 332.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ãè", - "origin": [ - 386.0000305175781, - 319.0999755859375 - ], - "bbox": [ - 386.0000305175781, - 312.79998779296875, - 396.0000305175781, - 333.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 396.0000305175781, - 319.0999755859375 - ], - "bbox": [ - 396.0000305175781, - 313.0999755859375, - 401.4000244140625, - 332.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 401.4000244140625, - 319.0999755859375 - ], - "bbox": [ - 401.4000244140625, - 314.39996337890625, - 406.5000305175781, - 332.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ\"Xx[", - "origin": [ - 406.5000305175781, - 319.0999755859375 - ], - "bbox": [ - 406.5000305175781, - 313.0999755859375, - 421.5000305175781, - 332.29998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 160.5, - 312.79998779296875, - 421.5000305175781, - 333.1999816894531 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 82.80000305175781, - 326.4999694824219, - 215.1999969482422, - 346.89996337890625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 332.7999572753906 - ], - "bbox": [ - 82.80000305175781, - 326.4999694824219, - 82.80000305175781, - 346.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "!\u001f", - "origin": [ - 82.80000305175781, - 332.7999572753906 - ], - "bbox": [ - 82.80000305175781, - 328.0999450683594, - 90.20000457763672, - 345.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 90.20000457763672, - 332.7999572753906 - ], - "bbox": [ - 90.20000457763672, - 326.4999694824219, - 95.20000457763672, - 346.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½", - "origin": [ - 95.20000457763672, - 332.7999572753906 - ], - "bbox": [ - 95.20000457763672, - 326.7999572753906, - 100.50000762939453, - 345.9999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+é", - "origin": [ - 100.50000762939453, - 332.7999572753906 - ], - "bbox": [ - 100.50000762939453, - 326.4999694824219, - 106.40000915527344, - 346.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Y", - "origin": [ - 106.40000915527344, - 332.7999572753906 - ], - "bbox": [ - 106.40000915527344, - 326.7999572753906, - 111.10000610351562, - 345.9999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nëwì¢8wÓ \u0019\u001c\u001bu\u00199¦15uá[\u001bu6=¤~Ð\u001a\u00194\u001bu\u001b7Èe¤", - "origin": [ - 111.10000610351562, - 332.7999572753906 - ], - "bbox": [ - 111.10000610351562, - 326.4999694824219, - 210.8000030517578, - 346.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 210.8000030517578, - 332.7999572753906 - ], - "bbox": [ - 210.8000030517578, - 326.7999572753906, - 215.1999969482422, - 345.9999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 326.4999694824219, - 215.1999969482422, - 346.89996337890625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 82.80000305175781, - 340.199951171875, - 366.8998718261719, - 360.5999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 346.49993896484375 - ], - "bbox": [ - 82.80000305175781, - 340.199951171875, - 82.80000305175781, - 360.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 82.80000305175781, - 346.49993896484375 - ], - "bbox": [ - 82.80000305175781, - 340.49993896484375, - 89.9000015258789, - 359.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/êwé", - "origin": [ - 89.9000015258789, - 346.49993896484375 - ], - "bbox": [ - 89.9000015258789, - 340.199951171875, - 101.10000610351562, - 360.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Yœ\n", - "origin": [ - 101.10000610351562, - 346.49993896484375 - ], - "bbox": [ - 101.10000610351562, - 340.49993896484375, - 111.10000610351562, - 359.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ìà8/˝6=\u001b7¨g6[5R¥/6HÔy\u00194«-\u001b76B¦[ʬ«-Ç\u001c©F£\u001c576=\u001b ÊY\u0019^\u0018\u001a\u00194\u001b757«-6B¥/§É576[ÿ?5u6M¦)£9©\u001a¦)6=\u001b7©FÈ=6", - "origin": [ - 111.10000610351562, - 346.49993896484375 - ], - "bbox": [ - 111.10000610351562, - 340.199951171875, - 361.8998718261719, - 360.5999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 361.8998718261719, - 346.49993896484375 - ], - "bbox": [ - 361.8998718261719, - 340.49993896484375, - 366.8998718261719, - 359.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 340.199951171875, - 366.8998718261719, - 360.5999450683594 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 82.80000305175781, - 353.699951171875, - 106.40000915527344, - 374.0999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 359.99993896484375 - ], - "bbox": [ - 82.80000305175781, - 353.699951171875, - 82.80000305175781, - 374.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 82.80000305175781, - 359.99993896484375 - ], - "bbox": [ - 82.80000305175781, - 353.99993896484375, - 89.9000015258789, - 373.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+é", - "origin": [ - 89.9000015258789, - 359.99993896484375 - ], - "bbox": [ - 89.9000015258789, - 353.699951171875, - 95.80000305175781, - 374.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�,", - "origin": [ - 95.80000305175781, - 359.99993896484375 - ], - "bbox": [ - 95.80000305175781, - 355.2999267578125, - 100.60000610351562, - 373.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wì", - "origin": [ - 100.60000610351562, - 359.99993896484375 - ], - "bbox": [ - 100.60000610351562, - 353.699951171875, - 106.40000915527344, - 374.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 353.699951171875, - 106.40000915527344, - 374.0999450683594 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 129.5, - 353.699951171875, - 186.79998779296875, - 374.0999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦[\u001b7«Y¤o6=©‰Ç9\u001bu\u0019\u001c©\u001a¥", - "origin": [ - 129.5, - 359.99993896484375 - ], - "bbox": [ - 129.5, - 353.699951171875, - 180.79998779296875, - 374.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ".[", - "origin": [ - 180.79998779296875, - 359.99993896484375 - ], - "bbox": [ - 180.79998779296875, - 353.99993896484375, - 186.79998779296875, - 373.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.5, - 353.699951171875, - 186.79998779296875, - 374.0999450683594 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 82.80000305175781, - 367.3999328613281, - 127.80001831054688, - 387.7999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 373.6999206542969 - ], - "bbox": [ - 82.80000305175781, - 367.3999328613281, - 82.80000305175781, - 387.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "!\u001f", - "origin": [ - 82.80000305175781, - 373.6999206542969 - ], - "bbox": [ - 82.80000305175781, - 368.9999084472656, - 90.20000457763672, - 386.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cï\nð/ê\nêwìà8", - "origin": [ - 90.20000457763672, - 373.6999206542969 - ], - "bbox": [ - 90.20000457763672, - 367.3999328613281, - 127.80001831054688, - 387.7999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 367.3999328613281, - 127.80001831054688, - 387.7999267578125 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 140.00001525878906, - 367.3999328613281, - 192.8000030517578, - 387.7999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)\u001bu«-¤b6[©É\u0018�6[57«¬5", - "origin": [ - 140.00001525878906, - 373.6999206542969 - ], - "bbox": [ - 140.00001525878906, - 367.3999328613281, - 188.3000030517578, - 387.7999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 188.3000030517578, - 373.6999206542969 - ], - "bbox": [ - 188.3000030517578, - 367.6999206542969, - 192.8000030517578, - 386.8999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.00001525878906, - 367.3999328613281, - 192.8000030517578, - 387.7999267578125 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 82.80001831054688, - 380.9999084472656, - 207.4000244140625, - 401.39990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80001831054688, - 387.2998962402344 - ], - "bbox": [ - 82.80001831054688, - 380.9999084472656, - 82.80001831054688, - 401.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ƒ‚", - "origin": [ - 82.80001831054688, - 387.2998962402344 - ], - "bbox": [ - 82.80001831054688, - 382.5998840332031, - 90.30001831054688, - 400.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fì­8wÓ~«z5ª\u0019%5u«¬£9©", - "origin": [ - 90.30001831054688, - 387.2998962402344 - ], - "bbox": [ - 90.30001831054688, - 380.9999084472656, - 142.80001831054688, - 401.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÕT", - "origin": [ - 142.80001831054688, - 387.2998962402344 - ], - "bbox": [ - 142.80001831054688, - 381.2998962402344, - 152.30001831054688, - 400.4999084472656 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "„‚", - "origin": [ - 152.30001831054688, - 387.2998962402344 - ], - "bbox": [ - 152.30001831054688, - 382.5998840332031, - 155.80001831054688, - 400.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Æ\"ºŠŸ\"ĊŸ\u0011žIºFÞgXx[", - "origin": [ - 155.80001831054688, - 387.2998962402344 - ], - "bbox": [ - 155.80001831054688, - 381.2998962402344, - 207.4000244140625, - 400.4999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001831054688, - 380.9999084472656, - 207.4000244140625, - 401.39990234375 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 82.80001831054688, - 394.69989013671875, - 164.20001220703125, - 415.0998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80001831054688, - 400.9998779296875 - ], - "bbox": [ - 82.80001831054688, - 394.69989013671875, - 82.80001831054688, - 415.0998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "!\u001f�m\u001e'", - "origin": [ - 82.80001831054688, - 400.9998779296875 - ], - "bbox": [ - 82.80001831054688, - 396.29986572265625, - 100.5000228881836, - 414.0998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 100.5000228881836, - 400.9998779296875 - ], - "bbox": [ - 100.5000228881836, - 394.69989013671875, - 106.4000244140625, - 415.0998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001831054688, - 394.69989013671875, - 106.4000244140625, - 415.0998840332031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8", - "origin": [ - 117.30001831054688, - 400.9998779296875 - ], - "bbox": [ - 117.30001831054688, - 394.69989013671875, - 117.30001831054688, - 415.0998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/_", - "origin": [ - 117.30001831054688, - 400.9998779296875 - ], - "bbox": [ - 117.30001831054688, - 394.9998779296875, - 122.70001983642578, - 414.19989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 117.30001831054688, - 394.69989013671875, - 122.70001983642578, - 415.0998840332031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÿ/\u0018w£9¤u\u00194©?5", - "origin": [ - 129.30001831054688, - 400.9998779296875 - ], - "bbox": [ - 129.30001831054688, - 394.69989013671875, - 159.70001220703125, - 415.0998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 159.70001220703125, - 400.9998779296875 - ], - "bbox": [ - 159.70001220703125, - 394.9998779296875, - 164.20001220703125, - 414.19989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.30001831054688, - 394.69989013671875, - 164.20001220703125, - 415.0998840332031 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 82.80001831054688, - 408.19989013671875, - 106.4000244140625, - 428.5998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80001831054688, - 414.4998779296875 - ], - "bbox": [ - 82.80001831054688, - 408.19989013671875, - 82.80001831054688, - 428.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "!\u001f�m", - "origin": [ - 82.80001831054688, - 414.4998779296875 - ], - "bbox": [ - 82.80001831054688, - 409.79986572265625, - 95.0000228881836, - 427.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/›", - "origin": [ - 95.0000228881836, - 414.4998779296875 - ], - "bbox": [ - 95.0000228881836, - 408.4998779296875, - 100.4000244140625, - 427.69989013671875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";ì", - "origin": [ - 100.4000244140625, - 414.4998779296875 - ], - "bbox": [ - 100.4000244140625, - 408.19989013671875, - 106.4000244140625, - 428.5998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001831054688, - 408.19989013671875, - 106.4000244140625, - 428.5998840332031 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 126.30001831054688, - 408.19989013671875, - 149.6000213623047, - 428.5998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©\u001a¥F«-¦[6", - "origin": [ - 126.30001831054688, - 414.4998779296875 - ], - "bbox": [ - 126.30001831054688, - 408.19989013671875, - 144.6000213623047, - 428.5998840332031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 144.6000213623047, - 414.4998779296875 - ], - "bbox": [ - 144.6000213623047, - 408.4998779296875, - 149.6000213623047, - 427.69989013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.30001831054688, - 408.19989013671875, - 149.6000213623047, - 428.5998840332031 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 82.80001831054688, - 421.8998718261719, - 174.80001831054688, - 442.29986572265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80001831054688, - 428.1998596191406 - ], - "bbox": [ - 82.80001831054688, - 421.8998718261719, - 82.80001831054688, - 442.29986572265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(r\u001e;", - "origin": [ - 82.80001831054688, - 428.1998596191406 - ], - "bbox": [ - 82.80001831054688, - 423.4998474121094, - 95.50001525878906, - 441.29986572265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fœ", - "origin": [ - 95.50001525878906, - 428.1998596191406 - ], - "bbox": [ - 95.50001525878906, - 422.1998596191406, - 100.50001525878906, - 441.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè", - "origin": [ - 100.50001525878906, - 428.1998596191406 - ], - "bbox": [ - 100.50001525878906, - 421.8998718261719, - 105.80001831054688, - 442.29986572265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ká/ž", - "origin": [ - 105.80001831054688, - 428.1998596191406 - ], - "bbox": [ - 105.80001831054688, - 422.1998596191406, - 121.90001678466797, - 441.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�w", - "origin": [ - 121.90001678466797, - 428.1998596191406 - ], - "bbox": [ - 121.90001678466797, - 423.4998474121094, - 126.70001983642578, - 441.29986572265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nß", - "origin": [ - 126.70001983642578, - 428.1998596191406 - ], - "bbox": [ - 126.70001983642578, - 422.1998596191406, - 132.00001525878906, - 441.3998718261719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%$\u0019N%/#$", - "origin": [ - 132.00001525878906, - 428.1998596191406 - ], - "bbox": [ - 132.00001525878906, - 423.4998474121094, - 159.00001525878906, - 441.29986572265625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì¢8", - "origin": [ - 159.00001525878906, - 428.1998596191406 - ], - "bbox": [ - 159.00001525878906, - 421.8998718261719, - 174.80001831054688, - 442.29986572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001831054688, - 421.8998718261719, - 174.80001831054688, - 442.29986572265625 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 187.80001831054688, - 421.8998718261719, - 339.89996337890625, - 442.29986572265625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ç\u001c\u001bª\u00194©\u001a¥/«¬5o£\u001c§É\u001b7Èe¥/§F«¬5bʬ6V5u6)ÿ\n576M¦[£\u001c©\u001a¦[6[\u001bu©FÈ\u001c ", - "origin": [ - 187.80001831054688, - 428.1998596191406 - ], - "bbox": [ - 187.80001831054688, - 421.8998718261719, - 339.89996337890625, - 442.29986572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.80001831054688, - 421.8998718261719, - 339.89996337890625, - 442.29986572265625 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 72.50001525878906, - 453.8998718261719, - 214.1000213623047, - 473.0998840332031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ï1\u0019\rÌ", - "origin": [ - 72.50001525878906, - 459.8998718261719 - ], - "bbox": [ - 72.50001525878906, - 453.8998718261719, - 82.90001678466797, - 473.0998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 453.8998718261719, - 82.90001678466797, - 473.0998840332031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%•)657¬*:;\u001f\"!75�5*)E3ñ)E5&-\"%", - "origin": [ - 103.00001525878906, - 459.8998718261719 - ], - "bbox": [ - 103.00001525878906, - 453.8998718261719, - 214.1000213623047, - 473.0998840332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.00001525878906, - 453.8998718261719, - 214.1000213623047, - 473.0998840332031 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 72.30001831054688, - 482.0998840332031, - 536.300048828125, - 502.4998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤^6[©\nÆ\n«¬\u001bu£\u001c©F©\u001a6[¨g6[©?5u¤^\u0018w6[\u001bu¨g6)5�5u6[©?5c¥/6ÉÔõ£\u001c\u001bu¨#\u0019%576=\u001bgʬ6É576[ÿ\n576Ý¥;¯", - "origin": [ - 72.30001831054688, - 488.3998718261719 - ], - "bbox": [ - 72.30001831054688, - 482.0998840332031, - 316.39996337890625, - 502.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 482.0998840332031, - 316.39996337890625, - 502.4998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6ݦ)6=\u001b�5ª\u00194«-©F6‰¨#\u0019\u001c©F«¬á=\u001b769 iËi\u0019\u001c\u001bg6)ÿ/6[¨g\u0018FÊ-6…\u0018�£9§F\u001b^Ôy\u00194«-\u001b76…¥/6=¤", - "origin": [ - 318.60003662109375, - 488.3998718261719 - ], - "bbox": [ - 318.60003662109375, - 482.0998840332031, - 536.300048828125, - 502.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 318.60003662109375, - 482.0998840332031, - 536.300048828125, - 502.4998779296875 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 72.30003356933594, - 495.69989013671875, - 348.800048828125, - 516.099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)«¬5u\u0019457«-£\u001c©\u001a¤s£9§‰\u0018w£\u001c§\u001a\u001bR\u0019", - "origin": [ - 72.30003356933594, - 501.9998779296875 - ], - "bbox": [ - 72.30003356933594, - 495.69989013671875, - 150.20004272460938, - 516.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 150.20004272460938, - 501.9998779296875 - ], - "bbox": [ - 150.20004272460938, - 495.9998779296875, - 155.0000457763672, - 515.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6=\u001b Ê-6BÊ-«-¤�57«-©FÇ#¥;¯", - "origin": [ - 155.0000457763672, - 501.9998779296875 - ], - "bbox": [ - 155.0000457763672, - 495.69989013671875, - 231.20005798339844, - 516.099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30003356933594, - 495.69989013671875, - 231.20005798339844, - 516.099853515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©…\u0018F\u001b7£9Ç\u001c\u001bª\u00194¨g¨g6V¤7§F\u001boÊY\u0019^\u0018\u001a\u00194Ç96\u001c ", - "origin": [ - 233.40003967285156, - 501.9998779296875 - ], - "bbox": [ - 233.40003967285156, - 495.69989013671875, - 348.800048828125, - 516.099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 233.40003967285156, - 495.69989013671875, - 348.800048828125, - 516.099853515625 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 82.80003356933594, - 514.4998779296875, - 240.30001831054688, - 534.8998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80003356933594, - 520.7998657226562 - ], - "bbox": [ - 82.80003356933594, - 514.4998779296875, - 82.80003356933594, - 534.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*¾", - "origin": [ - 82.80003356933594, - 520.7998657226562 - ], - "bbox": [ - 82.80003356933594, - 514.7998657226562, - 90.10003662109375, - 533.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1;�:", - "origin": [ - 90.10003662109375, - 520.7998657226562 - ], - "bbox": [ - 90.10003662109375, - 516.099853515625, - 100.50003814697266, - 533.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në+ìà8FËi6[\u001bu¨g6)5b¥;¯", - "origin": [ - 100.50003814697266, - 520.7998657226562 - ], - "bbox": [ - 100.50003814697266, - 514.4998779296875, - 168.800048828125, - 534.8998413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80003356933594, - 514.4998779296875, - 168.800048828125, - 534.8998413085938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019", - "origin": [ - 171.10003662109375, - 520.7998657226562 - ], - "bbox": [ - 171.10003662109375, - 514.4998779296875, - 171.10003662109375, - 534.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 171.10003662109375, - 520.7998657226562 - ], - "bbox": [ - 171.10003662109375, - 514.7998657226562, - 175.90003967285156, - 533.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6[\u001bb¥F§…¦[£/¥/6", - "origin": [ - 175.90003967285156, - 520.7998657226562 - ], - "bbox": [ - 175.90003967285156, - 514.4998779296875, - 235.30001831054688, - 534.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 235.30001831054688, - 520.7998657226562 - ], - "bbox": [ - 235.30001831054688, - 514.7998657226562, - 240.30001831054688, - 533.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 171.10003662109375, - 514.4998779296875, - 240.30001831054688, - 534.8998413085938 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 82.20003509521484, - 528.0999145507812, - 139.90005493164062, - 548.4998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi\u0019\u001c\u001bo6)ÿ/6[¨g\u0018FÊ-6g8", - "origin": [ - 82.20003509521484, - 534.39990234375 - ], - "bbox": [ - 82.20003509521484, - 528.0999145507812, - 139.90005493164062, - 548.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20003509521484, - 528.0999145507812, - 139.90005493164062, - 548.4998779296875 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 82.5, - 550.1000366210938, - 108.9000015258789, - 570.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÝF¾", - "origin": [ - 82.5, - 556.4000244140625 - ], - "bbox": [ - 82.5, - 550.4000244140625, - 87.5, - 569.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e;�:", - "origin": [ - 87.5, - 556.4000244140625 - ], - "bbox": [ - 87.5, - 551.7000122070312, - 98.0, - 569.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 98.0, - 556.4000244140625 - ], - "bbox": [ - 98.0, - 550.1000366210938, - 103.30000305175781, - 570.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 103.30000305175781, - 556.4000244140625 - ], - "bbox": [ - 103.30000305175781, - 550.4000244140625, - 108.9000015258789, - 569.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.5, - 550.1000366210938, - 108.9000015258789, - 570.5 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 82.30000305175781, - 564.0, - 171.70001220703125, - 583.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "q", - "origin": [ - 82.30000305175781, - 570.0 - ], - "bbox": [ - 82.30000305175781, - 565.2999877929688, - 82.30000305175781, - 583.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fžcÞ\u0011 ŠÁ|Æ", - "origin": [ - 82.30000305175781, - 570.0 - ], - "bbox": [ - 82.30000305175781, - 564.0, - 108.5, - 583.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 108.5, - 570.0 - ], - "bbox": [ - 108.5, - 565.2999877929688, - 113.9000015258789, - 583.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßkÝ\"áIŸ", - "origin": [ - 113.9000015258789, - 570.0 - ], - "bbox": [ - 113.9000015258789, - 564.0, - 139.8000030517578, - 583.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "->", - "origin": [ - 139.8000030517578, - 570.0 - ], - "bbox": [ - 139.8000030517578, - 565.2999877929688, - 145.10000610351562, - 583.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�ž|º&·¸¡gä", - "origin": [ - 145.10000610351562, - 570.0 - ], - "bbox": [ - 145.10000610351562, - 564.0, - 171.70001220703125, - 583.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 564.0, - 171.70001220703125, - 583.2000122070312 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 82.20000457763672, - 591.2999877929688, - 145.1999969482422, - 610.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â/ºfž", - "origin": [ - 82.20000457763672, - 597.2999877929688 - ], - "bbox": [ - 82.20000457763672, - 591.2999877929688, - 93.30000305175781, - 610.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 93.30000305175781, - 597.2999877929688 - ], - "bbox": [ - 93.30000305175781, - 592.5999755859375, - 98.10000610351562, - 610.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "AÀ\u0011ÄfžcÞ", - "origin": [ - 98.10000610351562, - 597.2999877929688 - ], - "bbox": [ - 98.10000610351562, - 591.2999877929688, - 124.10000610351562, - 610.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "D…\u000e†I‡", - "origin": [ - 124.10000610351562, - 597.2999877929688 - ], - "bbox": [ - 124.10000610351562, - 592.5999755859375, - 145.1999969482422, - 610.3999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20000457763672, - 591.2999877929688, - 145.1999969482422, - 610.5 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 102.90000915527344, - 604.7999877929688, - 230.5000457763672, - 624.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "´/»\u0011žcÞ/Ÿ\nà", - "origin": [ - 102.90000915527344, - 610.7999877929688 - ], - "bbox": [ - 102.90000915527344, - 604.7999877929688, - 129.50001525878906, - 624.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "T…\f$\u000e8", - "origin": [ - 129.50001525878906, - 610.7999877929688 - ], - "bbox": [ - 129.50001525878906, - 606.0999755859375, - 145.30001831054688, - 623.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß\nÁ\nÁHº", - "origin": [ - 145.30001831054688, - 610.7999877929688 - ], - "bbox": [ - 145.30001831054688, - 604.7999877929688, - 166.6000213623047, - 624.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "7ˆ", - "origin": [ - 166.6000213623047, - 610.7999877929688 - ], - "bbox": [ - 166.6000213623047, - 606.0999755859375, - 176.1000213623047, - 623.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gºŠ»gÁ", - "origin": [ - 176.1000213623047, - 610.7999877929688 - ], - "bbox": [ - 176.1000213623047, - 604.7999877929688, - 192.40003967285156, - 624.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 192.40003967285156, - 610.7999877929688 - ], - "bbox": [ - 192.40003967285156, - 606.0999755859375, - 197.5000457763672, - 623.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&¢", - "origin": [ - 197.5000457763672, - 610.7999877929688 - ], - "bbox": [ - 197.5000457763672, - 604.7999877929688, - 204.300048828125, - 624.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "Љ", - "origin": [ - 204.300048828125, - 610.7999877929688 - ], - "bbox": [ - 204.300048828125, - 606.0999755859375, - 208.20004272460938, - 623.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Þ", - "origin": [ - 208.20004272460938, - 610.7999877929688 - ], - "bbox": [ - 208.20004272460938, - 604.7999877929688, - 213.10003662109375, - 624.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S$@†&‹", - "origin": [ - 213.10003662109375, - 610.7999877929688 - ], - "bbox": [ - 213.10003662109375, - 606.0999755859375, - 230.5000457763672, - 623.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.90000915527344, - 604.7999877929688, - 230.5000457763672, - 624.0 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 82.50000762939453, - 631.7999877929688, - 114.10000610351562, - 652.199951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.50000762939453, - 638.0999755859375 - ], - "bbox": [ - 82.50000762939453, - 632.0999755859375, - 82.50000762939453, - 651.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#‰", - "origin": [ - 82.50000762939453, - 638.0999755859375 - ], - "bbox": [ - 82.50000762939453, - 633.3999633789062, - 87.70000457763672, - 651.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "о", - "origin": [ - 87.70000457763672, - 638.0999755859375 - ], - "bbox": [ - 87.70000457763672, - 632.0999755859375, - 92.80000305175781, - 651.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e;�:", - "origin": [ - 92.80000305175781, - 638.0999755859375 - ], - "bbox": [ - 92.80000305175781, - 633.3999633789062, - 103.30000305175781, - 651.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 103.30000305175781, - 638.0999755859375 - ], - "bbox": [ - 103.30000305175781, - 631.7999877929688, - 108.60000610351562, - 652.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 108.60000610351562, - 638.0999755859375 - ], - "bbox": [ - 108.60000610351562, - 632.0999755859375, - 114.10000610351562, - 651.2999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.50000762939453, - 631.7999877929688, - 114.10000610351562, - 652.199951171875 - ] - } - ] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 82.30000305175781, - 645.9000244140625, - 114.20000457763672, - 666.2999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3R£9©F©F6#8", - "origin": [ - 82.30000305175781, - 652.2000122070312 - ], - "bbox": [ - 82.30000305175781, - 645.9000244140625, - 114.20000457763672, - 666.2999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 645.9000244140625, - 114.20000457763672, - 666.2999877929688 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 82.30000305175781, - 666.2000122070312, - 171.70001220703125, - 685.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "q", - "origin": [ - 82.30000305175781, - 672.2000122070312 - ], - "bbox": [ - 82.30000305175781, - 667.5, - 82.30000305175781, - 685.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fžcÞ\u0011 ŠÁ|Æ", - "origin": [ - 82.30000305175781, - 672.2000122070312 - ], - "bbox": [ - 82.30000305175781, - 666.2000122070312, - 108.5, - 685.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 108.5, - 672.2000122070312 - ], - "bbox": [ - 108.5, - 667.5, - 113.9000015258789, - 685.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßkÝ\"áIŸ", - "origin": [ - 113.9000015258789, - 672.2000122070312 - ], - "bbox": [ - 113.9000015258789, - 666.2000122070312, - 139.8000030517578, - 685.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "->", - "origin": [ - 139.8000030517578, - 672.2000122070312 - ], - "bbox": [ - 139.8000030517578, - 667.5, - 145.10000610351562, - 685.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�ž|º&·¸¡gä", - "origin": [ - 145.10000610351562, - 672.2000122070312 - ], - "bbox": [ - 145.10000610351562, - 666.2000122070312, - 171.70001220703125, - 685.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30000305175781, - 666.2000122070312, - 171.70001220703125, - 685.4000244140625 - ] - } - ] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 82.20000457763672, - 693.5, - 145.1999969482422, - 712.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â/ºfž", - "origin": [ - 82.20000457763672, - 699.5 - ], - "bbox": [ - 82.20000457763672, - 693.5, - 93.30000305175781, - 712.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 93.30000305175781, - 699.5 - ], - "bbox": [ - 93.30000305175781, - 694.7999877929688, - 98.10000610351562, - 712.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "AÀ\u0011ÄfžcÞ", - "origin": [ - 98.10000610351562, - 699.5 - ], - "bbox": [ - 98.10000610351562, - 693.5, - 124.10000610351562, - 712.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "D…\u000e†I‡", - "origin": [ - 124.10000610351562, - 699.5 - ], - "bbox": [ - 124.10000610351562, - 694.7999877929688, - 145.1999969482422, - 712.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20000457763672, - 693.5, - 145.1999969482422, - 712.7000122070312 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 102.90000915527344, - 707.0999755859375, - 230.5000457763672, - 726.2999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "´/»\u0011žcÞ/Ÿ\nà", - "origin": [ - 102.90000915527344, - 713.0999755859375 - ], - "bbox": [ - 102.90000915527344, - 707.0999755859375, - 129.50001525878906, - 726.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "T…\f$\u000e8", - "origin": [ - 129.50001525878906, - 713.0999755859375 - ], - "bbox": [ - 129.50001525878906, - 708.3999633789062, - 145.30001831054688, - 726.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß\nÁ\nÁHº", - "origin": [ - 145.30001831054688, - 713.0999755859375 - ], - "bbox": [ - 145.30001831054688, - 707.0999755859375, - 166.6000213623047, - 726.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "7ˆ", - "origin": [ - 166.6000213623047, - 713.0999755859375 - ], - "bbox": [ - 166.6000213623047, - 708.3999633789062, - 176.1000213623047, - 726.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gºŠ»gÁ", - "origin": [ - 176.1000213623047, - 713.0999755859375 - ], - "bbox": [ - 176.1000213623047, - 707.0999755859375, - 192.40003967285156, - 726.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 192.40003967285156, - 713.0999755859375 - ], - "bbox": [ - 192.40003967285156, - 708.3999633789062, - 197.5000457763672, - 726.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&¢", - "origin": [ - 197.5000457763672, - 713.0999755859375 - ], - "bbox": [ - 197.5000457763672, - 707.0999755859375, - 204.300048828125, - 726.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "Љ", - "origin": [ - 204.300048828125, - 713.0999755859375 - ], - "bbox": [ - 204.300048828125, - 708.3999633789062, - 208.20004272460938, - 726.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Þ", - "origin": [ - 208.20004272460938, - 713.0999755859375 - ], - "bbox": [ - 208.20004272460938, - 707.0999755859375, - 213.10003662109375, - 726.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S$@†&‹", - "origin": [ - 213.10003662109375, - 713.0999755859375 - ], - "bbox": [ - 213.10003662109375, - 708.3999633789062, - 230.5000457763672, - 726.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.90000915527344, - 707.0999755859375, - 230.5000457763672, - 726.2999877929688 - ] - } - ] - }, - { - "number": 72, - "type": 0, - "bbox": [ - 82.80000305175781, - 735.1000366210938, - 422.0999755859375, - 755.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 741.4000244140625 - ], - "bbox": [ - 82.80000305175781, - 735.1000366210938, - 82.80000305175781, - 755.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "('", - "origin": [ - 82.80000305175781, - 741.4000244140625 - ], - "bbox": [ - 82.80000305175781, - 736.7000122070312, - 90.0, - 754.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½", - "origin": [ - 90.0, - 741.4000244140625 - ], - "bbox": [ - 90.0, - 735.4000244140625, - 95.19999694824219, - 754.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në+ì", - "origin": [ - 95.19999694824219, - 741.4000244140625 - ], - "bbox": [ - 95.19999694824219, - 735.1000366210938, - 106.4000015258789, - 755.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 735.1000366210938, - 106.4000015258789, - 755.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8/Ëi6[\u001bu¨g6)5R¦[£\u001c©\u001a¤76[\u001buÆ\u001c6=\u001b~Ê-6HÔõ£\u001c\u001bu¨#\u0019%5u\u0019\u001cÇ\u001c6H¥/§‰576)ÿ\n5u6H576[ʐ²9§m¯", - "origin": [ - 117.30000305175781, - 741.4000244140625 - ], - "bbox": [ - 117.30000305175781, - 735.1000366210938, - 323.9999694824219, - 755.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 117.30000305175781, - 735.1000366210938, - 323.9999694824219, - 755.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-ÊK6=¤�5", - "origin": [ - 326.1000061035156, - 741.4000244140625 - ], - "bbox": [ - 326.1000061035156, - 735.1000366210938, - 343.29998779296875, - 755.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 343.29998779296875, - 741.4000244140625 - ], - "bbox": [ - 343.29998779296875, - 735.4000244140625, - 351.1999816894531, - 754.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "v'", - "origin": [ - 351.1999816894531, - 741.4000244140625 - ], - "bbox": [ - 351.1999816894531, - 736.7000122070312, - 354.29998779296875, - 754.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½", - "origin": [ - 354.29998779296875, - 741.4000244140625 - ], - "bbox": [ - 354.29998779296875, - 735.4000244140625, - 359.5999755859375, - 754.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 359.5999755859375, - 741.4000244140625 - ], - "bbox": [ - 359.5999755859375, - 735.1000366210938, - 364.89996337890625, - 755.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/à\nºŠ»|À\u0011ĊŸHŸ\"ß", - "origin": [ - 364.89996337890625, - 741.4000244140625 - ], - "bbox": [ - 364.89996337890625, - 735.4000244140625, - 407.2999572753906, - 754.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 407.2999572753906, - 741.4000244140625 - ], - "bbox": [ - 407.2999572753906, - 736.7000122070312, - 412.4999694824219, - 754.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Xx[", - "origin": [ - 412.4999694824219, - 741.4000244140625 - ], - "bbox": [ - 412.4999694824219, - 735.4000244140625, - 422.0999755859375, - 754.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.1000061035156, - 735.1000366210938, - 422.0999755859375, - 755.5 - ] - } - ] - }, - { - "number": 74, - "type": 0, - "bbox": [ - 82.80000305175781, - 748.7999877929688, - 379.89990234375, - 769.199951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 755.0999755859375 - ], - "bbox": [ - 82.80000305175781, - 748.7999877929688, - 82.80000305175781, - 769.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 82.80000305175781, - 755.0999755859375 - ], - "bbox": [ - 82.80000305175781, - 749.0999755859375, - 89.9000015258789, - 768.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ê", - "origin": [ - 89.9000015258789, - 755.0999755859375 - ], - "bbox": [ - 89.9000015258789, - 748.7999877929688, - 95.30000305175781, - 769.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e;", - "origin": [ - 95.30000305175781, - 755.0999755859375 - ], - "bbox": [ - 95.30000305175781, - 750.3999633789062, - 100.80000305175781, - 768.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "оH", - "origin": [ - 100.80000305175781, - 755.0999755859375 - ], - "bbox": [ - 100.80000305175781, - 749.0999755859375, - 111.0999984741211, - 768.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<‚\fmF;", - "origin": [ - 111.0999984741211, - 755.0999755859375 - ], - "bbox": [ - 111.0999984741211, - 750.3999633789062, - 127.19999694824219, - 768.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè\në+ì¹8/Ëi6[\u001bu¨g6)5R¥/6HÔy\u0019\u001c«¬\u001bu6H§F©F6B¦)«¬5u\u0019457«-£\u001c©Ý¥F\u0019\u001c©\u001a¤s§F©…ÐFÊ-£\n¦H¥/6H5u6)ÿ\n5769 ", - "origin": [ - 127.19999694824219, - 755.0999755859375 - ], - "bbox": [ - 127.19999694824219, - 748.7999877929688, - 379.89990234375, - 769.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 748.7999877929688, - 379.89990234375, - 769.199951171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.5, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ä", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 72.5, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=�", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgó˜%žô–œ9žõóiÁFöy¾\nØ!ܝÁFöôžyØe¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 195.10003662109375, - 55.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 72, - "type": 0, - "bbox": [ - 82.80000305175781, - 735.1000366210938, - 422.0999755859375, - 755.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 741.4000244140625 - ], - "bbox": [ - 82.80000305175781, - 735.1000366210938, - 82.80000305175781, - 755.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "('", - "origin": [ - 82.80000305175781, - 741.4000244140625 - ], - "bbox": [ - 82.80000305175781, - 736.7000122070312, - 90.0, - 754.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½", - "origin": [ - 90.0, - 741.4000244140625 - ], - "bbox": [ - 90.0, - 735.4000244140625, - 95.19999694824219, - 754.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në+ì", - "origin": [ - 95.19999694824219, - 741.4000244140625 - ], - "bbox": [ - 95.19999694824219, - 735.1000366210938, - 106.4000015258789, - 755.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 735.1000366210938, - 106.4000015258789, - 755.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8/Ëi6[\u001bu¨g6)5R¦[£\u001c©\u001a¤76[\u001buÆ\u001c6=\u001b~Ê-6HÔõ£\u001c\u001bu¨#\u0019%5u\u0019\u001cÇ\u001c6H¥/§‰576)ÿ\n5u6H576[ʐ²9§m¯", - "origin": [ - 117.30000305175781, - 741.4000244140625 - ], - "bbox": [ - 117.30000305175781, - 735.1000366210938, - 323.9999694824219, - 755.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 117.30000305175781, - 735.1000366210938, - 323.9999694824219, - 755.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-ÊK6=¤�5", - "origin": [ - 326.1000061035156, - 741.4000244140625 - ], - "bbox": [ - 326.1000061035156, - 735.1000366210938, - 343.29998779296875, - 755.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 343.29998779296875, - 741.4000244140625 - ], - "bbox": [ - 343.29998779296875, - 735.4000244140625, - 351.1999816894531, - 754.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "v'", - "origin": [ - 351.1999816894531, - 741.4000244140625 - ], - "bbox": [ - 351.1999816894531, - 736.7000122070312, - 354.29998779296875, - 754.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½", - "origin": [ - 354.29998779296875, - 741.4000244140625 - ], - "bbox": [ - 354.29998779296875, - 735.4000244140625, - 359.5999755859375, - 754.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 359.5999755859375, - 741.4000244140625 - ], - "bbox": [ - 359.5999755859375, - 735.1000366210938, - 364.89996337890625, - 755.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/à\nºŠ»|À\u0011ĊŸHŸ\"ß", - "origin": [ - 364.89996337890625, - 741.4000244140625 - ], - "bbox": [ - 364.89996337890625, - 735.4000244140625, - 407.2999572753906, - 754.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 407.2999572753906, - 741.4000244140625 - ], - "bbox": [ - 407.2999572753906, - 736.7000122070312, - 412.4999694824219, - 754.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Xx[", - "origin": [ - 412.4999694824219, - 741.4000244140625 - ], - "bbox": [ - 412.4999694824219, - 735.4000244140625, - 422.0999755859375, - 754.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.1000061035156, - 735.1000366210938, - 422.0999755859375, - 755.5 - ] - } - ], - "tag": "footer" - }, - { - "number": 74, - "type": 0, - "bbox": [ - 82.80000305175781, - 748.7999877929688, - 379.89990234375, - 769.199951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80000305175781, - 755.0999755859375 - ], - "bbox": [ - 82.80000305175781, - 748.7999877929688, - 82.80000305175781, - 769.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1›", - "origin": [ - 82.80000305175781, - 755.0999755859375 - ], - "bbox": [ - 82.80000305175781, - 749.0999755859375, - 89.9000015258789, - 768.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ê", - "origin": [ - 89.9000015258789, - 755.0999755859375 - ], - "bbox": [ - 89.9000015258789, - 748.7999877929688, - 95.30000305175781, - 769.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e;", - "origin": [ - 95.30000305175781, - 755.0999755859375 - ], - "bbox": [ - 95.30000305175781, - 750.3999633789062, - 100.80000305175781, - 768.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "оH", - "origin": [ - 100.80000305175781, - 755.0999755859375 - ], - "bbox": [ - 100.80000305175781, - 749.0999755859375, - 111.0999984741211, - 768.2999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<‚\fmF;", - "origin": [ - 111.0999984741211, - 755.0999755859375 - ], - "bbox": [ - 111.0999984741211, - 750.3999633789062, - 127.19999694824219, - 768.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè\në+ì¹8/Ëi6[\u001bu¨g6)5R¥/6HÔy\u0019\u001c«¬\u001bu6H§F©F6B¦)«¬5u\u0019457«-£\u001c©Ý¥F\u0019\u001c©\u001a¤s§F©…ÐFÊ-£\n¦H¥/6H5u6)ÿ\n5769 ", - "origin": [ - 127.19999694824219, - 755.0999755859375 - ], - "bbox": [ - 127.19999694824219, - 748.7999877929688, - 379.89990234375, - 769.199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80000305175781, - 748.7999877929688, - 379.89990234375, - 769.199951171875 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 7, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_8": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 105.49996948242188, - 75.49998474121094, - 189.39996337890625, - 95.89998626708984 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "†oŠÑƒ…M„)[Šm†oŠ", - "origin": [ - 105.49996948242188, - 81.79998779296875 - ], - "bbox": [ - 105.49996948242188, - 75.49998474121094, - 162.9999542236328, - 95.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.49996948242188, - 75.49998474121094, - 162.9999542236328, - 95.89998626708984 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "", - "origin": [ - 174.49996948242188, - 81.79998779296875 - ], - "bbox": [ - 174.49996948242188, - 75.49998474121094, - 174.49996948242188, - 95.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "!Ž", - "origin": [ - 174.49996948242188, - 81.79998779296875 - ], - "bbox": [ - 174.49996948242188, - 77.09999084472656, - 181.89996337890625, - 94.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e", - "origin": [ - 181.89996337890625, - 81.79998779296875 - ], - "bbox": [ - 181.89996337890625, - 75.49998474121094, - 189.39996337890625, - 95.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 174.49996948242188, - 75.49998474121094, - 189.39996337890625, - 95.89998626708984 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 206.0999755859375, - 75.49998474121094, - 227.39996337890625, - 95.89998626708984 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0016", - "origin": [ - 206.0999755859375, - 81.79998779296875 - ], - "bbox": [ - 206.0999755859375, - 75.79998779296875, - 206.0999755859375, - 94.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001b", - "origin": [ - 206.0999755859375, - 81.79998779296875 - ], - "bbox": [ - 206.0999755859375, - 77.09999084472656, - 212.99996948242188, - 94.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "o†oŠ", - "origin": [ - 212.99996948242188, - 81.79998779296875 - ], - "bbox": [ - 212.99996948242188, - 75.49998474121094, - 227.39996337890625, - 95.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 206.0999755859375, - 75.49998474121094, - 227.39996337890625, - 95.89998626708984 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 72.29997253417969, - 109.29997253417969, - 536.2999267578125, - 129.69998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤HÐ\u001a\u00194Ê-«Y¤�6e¤V\u0019aÆ%\u0019\u001c©\u001a¦)È=6=¤H¤�£9©?5H¦[6[Ê-ʬ6e¤B²9§\u001a«", - "origin": [ - 72.29997253417969, - 115.5999755859375 - ], - "bbox": [ - 72.29997253417969, - 109.29997253417969, - 223.19998168945312, - 129.69998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29997253417969, - 109.29997253417969, - 223.19998168945312, - 129.69998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©?5", - "origin": [ - 229.7999725341797, - 115.5999755859375 - ], - "bbox": [ - 229.7999725341797, - 109.29997253417969, - 239.99996948242188, - 129.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 239.99996948242188, - 115.5999755859375 - ], - "bbox": [ - 239.99996948242188, - 109.5999755859375, - 244.49996948242188, - 128.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K\u0019\u001c§�¨g£\u001c«-©\u001a¤", - "origin": [ - 244.49996948242188, - 115.5999755859375 - ], - "bbox": [ - 244.49996948242188, - 109.29997253417969, - 286.5999450683594, - 129.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 286.5999450683594, - 115.5999755859375 - ], - "bbox": [ - 286.5999450683594, - 109.5999755859375, - 291.0999450683594, - 128.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";§F©Ù\u0018\u001a\u00194\u001bª\u00194¨gá)5u\u001b76^£\u001cÐ\u001aʬ«-Ç9\u0019457£\u001c«-\u001bu6¸£\u001c§‚²?§F«", - "origin": [ - 291.0999450683594, - 115.5999755859375 - ], - "bbox": [ - 291.0999450683594, - 109.29997253417969, - 435.1999206542969, - 129.69998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.7999725341797, - 109.29997253417969, - 435.1999206542969, - 129.69998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©?5B§F©F6#¤�57\u001bu§\u001a¦15u§F\u001bu6^\u0018\u001aʬ§\u001a¤", - "origin": [ - 441.79998779296875, - 115.5999755859375 - ], - "bbox": [ - 441.79998779296875, - 109.29997253417969, - 536.2999267578125, - 129.69998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 441.79998779296875, - 109.29997253417969, - 536.2999267578125, - 129.69998168945312 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.29998779296875, - 122.99998474121094, - 112.99999237060547, - 143.39999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)£9¨g\u0018Fʬ6[ÿ/6\u001c ", - "origin": [ - 72.29998779296875, - 129.29998779296875 - ], - "bbox": [ - 72.29998779296875, - 122.99998474121094, - 112.99999237060547, - 143.39999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 122.99998474121094, - 112.99999237060547, - 143.39999389648438 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.49998474121094, - 154.89996337890625, - 221.2999725341797, - 174.09996032714844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 72.49998474121094, - 160.89996337890625 - ], - "bbox": [ - 72.49998474121094, - 156.19996643066406, - 72.49998474121094, - 173.99996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1\u0019\u001b\u0018", - "origin": [ - 72.49998474121094, - 160.89996337890625 - ], - "bbox": [ - 72.49998474121094, - 154.89996337890625, - 83.39998626708984, - 174.09996032714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49998474121094, - 154.89996337890625, - 83.39998626708984, - 174.09996032714844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A°\u001b:\u001b)65�%", - "origin": [ - 102.99998474121094, - 160.89996337890625 - ], - "bbox": [ - 102.99998474121094, - 154.89996337890625, - 148.19998168945312, - 174.09996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u0015‘\u001b|", - "origin": [ - 148.19998168945312, - 160.89996337890625 - ], - "bbox": [ - 148.19998168945312, - 156.19996643066406, - 164.69998168945312, - 173.99996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰\u001d$)=\u001f/-/)", - "origin": [ - 164.69998168945312, - 160.89996337890625 - ], - "bbox": [ - 164.69998168945312, - 154.89996337890625, - 196.5999755859375, - 174.09996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%’", - "origin": [ - 196.5999755859375, - 160.89996337890625 - ], - "bbox": [ - 196.5999755859375, - 156.19996643066406, - 202.5999755859375, - 173.99996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1-/)6%", - "origin": [ - 202.5999755859375, - 160.89996337890625 - ], - "bbox": [ - 202.5999755859375, - 154.89996337890625, - 221.2999725341797, - 174.09996032714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.99998474121094, - 154.89996337890625, - 221.2999725341797, - 174.09996032714844 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.29998779296875, - 183.19993591308594, - 534.7000122070312, - 203.59994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤ ʬ«-6[©\u001a¤ þ\nø\n\u0018�6=\u001b�5u6)ÿ\n576e¤×\u0018w6[\u001bu¨g6)57576[©?5b¥/6V\u001b76=ʬ«-6[\u001b §F©F6V\u0018\u001a\u0019\u001c\u001b�5u«¬6H¥/§c5u6)ÿ\n576Hß!§F©É\u0019\u001c§/57\u001bu6R6=©\u001a¥/\u001bu£\u001c«¬5s¥F§\u000fÏÙ6[ÐK �Ó~6=Ê-\u0019¸\u0018�6=§/5oå)57\u001bu6V§F©", - "origin": [ - 72.29998779296875, - 189.49993896484375 - ], - "bbox": [ - 72.29998779296875, - 183.19993591308594, - 534.7000122070312, - 203.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 183.19993591308594, - 534.7000122070312, - 203.59994506835938 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 72.29998779296875, - 196.79991149902344, - 535.9000244140625, - 217.19992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§F57\u001bu6R6[©�¥/\u001b7£9«z5o¤7§F\u001b ¦[6)57576V¨^å=¨g6V\u0018�\u00194Ç\u001c6", - "origin": [ - 72.29998779296875, - 203.09991455078125 - ], - "bbox": [ - 72.29998779296875, - 196.79991149902344, - 216.99996948242188, - 217.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 216.99996948242188, - 203.09991455078125 - ], - "bbox": [ - 216.99996948242188, - 197.09991455078125, - 222.0999755859375, - 216.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9§\u001a©‰\u00194§F57\u001bu6R6[©�¥/\u001b7£9«z5o¤7§F\u001b~Ê-6V¨^å=¨g6V¤7«z5u6", - "origin": [ - 222.0999755859375, - 203.09991455078125 - ], - "bbox": [ - 222.0999755859375, - 196.79991149902344, - 367.29998779296875, - 217.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 367.29998779296875, - 203.09991455078125 - ], - "bbox": [ - 367.29998779296875, - 197.09991455078125, - 372.29998779296875, - 216.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n£\u001c§‰ÐF«-6[©\u000f§\u001a©‰\u00194§F57\u001bu6\u001e6=©\u001a¥/\u001bu£\u001c«¬5 ¤7§F\u001b~§\u001a©É\u0019\u001c§/57\u001bu6", - "origin": [ - 372.29998779296875, - 203.09991455078125 - ], - "bbox": [ - 372.29998779296875, - 196.79991149902344, - 535.9000244140625, - 217.19992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 196.79991149902344, - 535.9000244140625, - 217.19992065429688 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 72.29998779296875, - 210.4999237060547, - 519.5999755859375, - 230.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7«z5u6\u001c ", - "origin": [ - 72.29998779296875, - 216.7999267578125 - ], - "bbox": [ - 72.29998779296875, - 210.4999237060547, - 87.79998779296875, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�š", - "origin": [ - 87.79998779296875, - 216.7999267578125 - ], - "bbox": [ - 87.79998779296875, - 210.7999267578125, - 93.59999084472656, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©‰Ôy\u00194«¬5b\u001b7È[ÔõÈ[\u001bu6[©\u001a¦[6Vß#¦[6)5b\u00194§F57\u001bu6V6=©\u001a¥/\u001bu£\u001c«¬5oÇ\u001c\u001b", - "origin": [ - 93.59999084472656, - 216.7999267578125 - ], - "bbox": [ - 93.59999084472656, - 210.4999237060547, - 259.39996337890625, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "”“", - "origin": [ - 259.39996337890625, - 216.7999267578125 - ], - "bbox": [ - 259.39996337890625, - 212.0999298095703, - 263.4999694824219, - 229.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c¦)6Hßg§F©F6B\u00199¥/\u001b76e¤7¤76VÏ�6=Ð", - "origin": [ - 263.4999694824219, - 216.7999267578125 - ], - "bbox": [ - 263.4999694824219, - 210.4999237060547, - 355.7999267578125, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÕT", - "origin": [ - 355.7999267578125, - 216.7999267578125 - ], - "bbox": [ - 355.7999267578125, - 210.7999267578125, - 365.2999267578125, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ôÅ", - "origin": [ - 365.2999267578125, - 216.7999267578125 - ], - "bbox": [ - 365.2999267578125, - 210.4999237060547, - 368.59991455078125, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 368.59991455078125, - 216.7999267578125 - ], - "bbox": [ - 368.59991455078125, - 210.7999267578125, - 375.9999084472656, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b¶", - "origin": [ - 375.9999084472656, - 216.7999267578125 - ], - "bbox": [ - 375.9999084472656, - 210.4999237060547, - 383.2998962402344, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&[", - "origin": [ - 383.2998962402344, - 216.7999267578125 - ], - "bbox": [ - 383.2998962402344, - 210.7999267578125, - 390.0998840332031, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ÅR©F«zÔõ£9\u001b7¨", - "origin": [ - 390.0998840332031, - 216.7999267578125 - ], - "bbox": [ - 390.0998840332031, - 210.4999237060547, - 423.39990234375, - 230.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 210.4999237060547, - 423.39990234375, - 230.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 435.1000061035156, - 216.7999267578125 - ], - "bbox": [ - 435.1000061035156, - 210.7999267578125, - 435.1000061035156, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "o6=¤7£\u001c§F\u001bª¦)6B¶m£\n¦=\u0019%5u£\u001c\u001bª¤", - "origin": [ - 435.1000061035156, - 216.7999267578125 - ], - "bbox": [ - 435.1000061035156, - 210.4999237060547, - 511.29998779296875, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WX", - "origin": [ - 511.29998779296875, - 216.7999267578125 - ], - "bbox": [ - 511.29998779296875, - 210.7999267578125, - 515.2999877929688, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 515.2999877929688, - 216.7999267578125 - ], - "bbox": [ - 515.2999877929688, - 210.4999237060547, - 519.5999755859375, - 230.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.1000061035156, - 210.4999237060547, - 519.5999755859375, - 230.89993286132812 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 72.29998779296875, - 229.19993591308594, - 376.5999755859375, - 249.59994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Åb©…Ê-«¬6=©…þ?ø\n\u0018w6[\u001b7576[ÿ?5u6B¤�6H\u0018F\u001buÈ=¤76[©?576B\u0019\u001c«¬©\u001a¤7«", - "origin": [ - 72.29998779296875, - 235.49993896484375 - ], - "bbox": [ - 72.29998779296875, - 229.19993591308594, - 225.199951171875, - 249.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 229.19993591308594, - 225.199951171875, - 249.59994506835938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8Kçoð", - "origin": [ - 231.79998779296875, - 235.49993896484375 - ], - "bbox": [ - 231.79998779296875, - 229.19993591308594, - 245.09999084472656, - 249.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 231.79998779296875, - 229.19993591308594, - 245.09999084472656, - 249.59994506835938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\n»\"ßHà", - "origin": [ - 255.49998474121094, - 235.49993896484375 - ], - "bbox": [ - 255.49998474121094, - 229.49993896484375, - 271.5, - 248.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$3m", - "origin": [ - 271.5, - 235.49993896484375 - ], - "bbox": [ - 271.5, - 230.79994201660156, - 287.0, - 248.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"½", - "origin": [ - 287.0, - 235.49993896484375 - ], - "bbox": [ - 287.0, - 229.49993896484375, - 292.5, - 248.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ê", - "origin": [ - 292.5, - 235.49993896484375 - ], - "bbox": [ - 292.5, - 229.19993591308594, - 297.8999938964844, - 249.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%$", - "origin": [ - 297.8999938964844, - 235.49993896484375 - ], - "bbox": [ - 297.8999938964844, - 230.79994201660156, - 303.8999938964844, - 248.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 303.8999938964844, - 235.49993896484375 - ], - "bbox": [ - 303.8999938964844, - 229.19993591308594, - 309.0, - 249.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "im", - "origin": [ - 309.0, - 235.49993896484375 - ], - "bbox": [ - 309.0, - 230.79994201660156, - 316.0, - 248.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÞUŸ\"ß", - "origin": [ - 316.0, - 235.49993896484375 - ], - "bbox": [ - 316.0, - 229.49993896484375, - 336.79998779296875, - 248.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�X", - "origin": [ - 336.79998779296875, - 235.49993896484375 - ], - "bbox": [ - 336.79998779296875, - 230.79994201660156, - 341.79998779296875, - 248.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ\"ß", - "origin": [ - 341.79998779296875, - 235.49993896484375 - ], - "bbox": [ - 341.79998779296875, - 229.49993896484375, - 352.5999755859375, - 248.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ç", - "origin": [ - 352.5999755859375, - 235.49993896484375 - ], - "bbox": [ - 352.5999755859375, - 229.19993591308594, - 358.29998779296875, - 249.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £", - "origin": [ - 358.29998779296875, - 235.49993896484375 - ], - "bbox": [ - 358.29998779296875, - 229.49993896484375, - 365.79998779296875, - 248.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cðwì", - "origin": [ - 365.79998779296875, - 235.49993896484375 - ], - "bbox": [ - 365.79998779296875, - 229.19993591308594, - 376.5999755859375, - 249.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 255.49998474121094, - 229.19993591308594, - 376.5999755859375, - 249.59994506835938 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.29998779296875, - 247.9999237060547, - 229.1999969482422, - 268.3999328613281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6Hð\u000fÔy\u00194«¬5b\u001b7È[ÔõÈ[\u001bu6[©\u001a¦[6Vß^ð", - "origin": [ - 72.29998779296875, - 254.2999267578125 - ], - "bbox": [ - 72.29998779296875, - 247.9999237060547, - 162.7999725341797, - 268.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÞ\u0011 c¡gºŠ»ÑT", - "origin": [ - 162.7999725341797, - 254.2999267578125 - ], - "bbox": [ - 162.7999725341797, - 248.2999267578125, - 198.19998168945312, - 267.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y\u0019\u001c©\u001a¦)\u001bu6", - "origin": [ - 198.19998168945312, - 254.2999267578125 - ], - "bbox": [ - 198.19998168945312, - 247.9999237060547, - 220.29998779296875, - 268.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 220.29998779296875, - 254.2999267578125 - ], - "bbox": [ - 220.29998779296875, - 248.2999267578125, - 224.89999389648438, - 267.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 224.89999389648438, - 254.2999267578125 - ], - "bbox": [ - 224.89999389648438, - 247.9999237060547, - 229.1999969482422, - 268.3999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 247.9999237060547, - 229.1999969482422, - 268.3999328613281 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.39998626708984, - 278.699951171875, - 145.10000610351562, - 299.0999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.39998626708984, - 284.99993896484375 - ], - "bbox": [ - 72.39998626708984, - 278.699951171875, - 72.39998626708984, - 299.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.39998626708984, - 284.99993896484375 - ], - "bbox": [ - 72.39998626708984, - 278.99993896484375, - 78.59998321533203, - 298.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.59998321533203, - 284.99993896484375 - ], - "bbox": [ - 78.59998321533203, - 278.699951171875, - 81.79998016357422, - 299.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.79998016357422, - 284.99993896484375 - ], - "bbox": [ - 81.79998016357422, - 278.99993896484375, - 87.59998321533203, - 298.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 87.59998321533203, - 284.99993896484375 - ], - "bbox": [ - 87.59998321533203, - 278.699951171875, - 90.79998016357422, - 299.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.39998626708984, - 278.699951171875, - 90.79998016357422, - 299.0999450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö~¾\nØ", - "origin": [ - 107.29998779296875, - 284.99993896484375 - ], - "bbox": [ - 107.29998779296875, - 278.699951171875, - 119.49999237060547, - 299.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "c•", - "origin": [ - 119.49999237060547, - 284.99993896484375 - ], - "bbox": [ - 119.49999237060547, - 280.2999267578125, - 127.69999694824219, - 298.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017�", - "origin": [ - 127.69999694824219, - 284.99993896484375 - ], - "bbox": [ - 127.69999694824219, - 278.99993896484375, - 136.5, - 298.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000fÖ", - "origin": [ - 136.5, - 284.99993896484375 - ], - "bbox": [ - 136.5, - 278.699951171875, - 145.10000610351562, - 299.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.29998779296875, - 278.699951171875, - 145.10000610351562, - 299.0999450683594 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 72.29998779296875, - 305.89996337890625, - 188.6999969482422, - 326.2999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤oÅ", - "origin": [ - 72.29998779296875, - 312.199951171875 - ], - "bbox": [ - 72.29998779296875, - 305.89996337890625, - 90.19998168945312, - 326.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 90.19998168945312, - 312.199951171875 - ], - "bbox": [ - 90.19998168945312, - 306.199951171875, - 97.59998321533203, - 325.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b¶ò¤7£\u001c©?5b¥/6BÊY\u0019!Ôõ£\u001c\u001bu¨^6g8", - "origin": [ - 97.59998321533203, - 312.199951171875 - ], - "bbox": [ - 97.59998321533203, - 305.89996337890625, - 188.6999969482422, - 326.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 305.89996337890625, - 188.6999969482422, - 326.2999572753906 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.69999694824219, - 329.79998779296875, - 235.00001525878906, - 349.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "áFߊ»Hâ\u0011žH Fß&µ\u001b£\n£\"áFߊ»Hâ\"ßFÆ\n»\"£/ Y¡gß\\ÀEž\\Þg£Fà�žH \\¡.žIßF»", - "origin": [ - 72.69999694824219, - 335.79998779296875 - ], - "bbox": [ - 72.69999694824219, - 329.79998779296875, - 235.00001525878906, - 349.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.69999694824219, - 329.79998779296875, - 235.00001525878906, - 349.0 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.30000305175781, - 359.8000183105469, - 183.00001525878906, - 380.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö×¾\nØ#Øe¾?˜eûKžôœ\u001c¾\nØ^ó˜%™�óיwØ=ü\nØ", - "origin": [ - 72.30000305175781, - 366.1000061035156 - ], - "bbox": [ - 72.30000305175781, - 359.8000183105469, - 174.30001831054688, - 380.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "h–", - "origin": [ - 174.30001831054688, - 366.1000061035156 - ], - "bbox": [ - 174.30001831054688, - 361.3999938964844, - 183.00001525878906, - 379.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 359.8000183105469, - 183.00001525878906, - 380.20001220703125 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 82.0999984741211, - 375.5, - 327.70001220703125, - 395.8999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\nŸ\nŸH´", - "origin": [ - 82.0999984741211, - 381.79998779296875 - ], - "bbox": [ - 82.0999984741211, - 375.79998779296875, - 97.9000015258789, - 395.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 97.9000015258789, - 381.79998779296875 - ], - "bbox": [ - 97.9000015258789, - 375.5, - 107.0, - 395.8999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g�", - "origin": [ - 107.0, - 381.79998779296875 - ], - "bbox": [ - 107.0, - 375.79998779296875, - 112.5999984741211, - 395.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oÈ[ÔõÈ[\u001bu6[©\u001a¦[6H§F©Ý¤�6=\u001b7Æ96[§F\u001bsÏÙ6[Ð", - "origin": [ - 112.5999984741211, - 381.79998779296875 - ], - "bbox": [ - 112.5999984741211, - 375.5, - 220.3999786376953, - 395.8999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "rT", - "origin": [ - 220.3999786376953, - 381.79998779296875 - ], - "bbox": [ - 220.3999786376953, - 375.79998779296875, - 229.99998474121094, - 395.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y¦\u001c¯", - "origin": [ - 229.99998474121094, - 381.79998779296875 - ], - "bbox": [ - 229.99998474121094, - 375.5, - 238.19998168945312, - 395.8999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.0999984741211, - 375.5, - 238.19998168945312, - 395.8999938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5oÊ-6B\u0018Fʬ§�¤sÔõ\u001b7Èe²?§F6[©?5", - "origin": [ - 240.29998779296875, - 381.79998779296875 - ], - "bbox": [ - 240.29998779296875, - 375.5, - 319.3000183105469, - 395.8999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×X�[", - "origin": [ - 319.3000183105469, - 381.79998779296875 - ], - "bbox": [ - 319.3000183105469, - 375.79998779296875, - 327.70001220703125, - 395.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.29998779296875, - 375.5, - 327.70001220703125, - 395.8999938964844 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 82.29998779296875, - 389.0, - 245.5999755859375, - 409.3999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "àŠŸH´", - "origin": [ - 82.29998779296875, - 395.29998779296875 - ], - "bbox": [ - 82.29998779296875, - 389.29998779296875, - 92.59998321533203, - 408.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 92.59998321533203, - 395.29998779296875 - ], - "bbox": [ - 92.59998321533203, - 389.0, - 101.69998168945312, - 409.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g�", - "origin": [ - 101.69998168945312, - 395.29998779296875 - ], - "bbox": [ - 101.69998168945312, - 389.29998779296875, - 107.29998016357422, - 408.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "bÈ)ÔõÈ[\u001bu6[©�¦)6H§F©Ý¤�6=\u001b7Æ96[§F\u001bo¥/6", - "origin": [ - 107.29998016357422, - 395.29998779296875 - ], - "bbox": [ - 107.29998016357422, - 389.0, - 206.7999725341797, - 409.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 206.7999725341797, - 395.29998779296875 - ], - "bbox": [ - 206.7999725341797, - 389.29998779296875, - 214.49996948242188, - 408.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001bu¤", - "origin": [ - 214.49996948242188, - 395.29998779296875 - ], - "bbox": [ - 214.49996948242188, - 389.0, - 241.0999755859375, - 409.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 241.0999755859375, - 395.29998779296875 - ], - "bbox": [ - 241.0999755859375, - 389.29998779296875, - 245.5999755859375, - 408.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29998779296875, - 389.0, - 245.5999755859375, - 409.3999938964844 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 82.09998321533203, - 402.6999816894531, - 310.199951171875, - 423.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Þ\"ßF¶\u0011á", - "origin": [ - 82.09998321533203, - 408.9999694824219 - ], - "bbox": [ - 82.09998321533203, - 402.9999694824219, - 98.49998474121094, - 422.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c8", - "origin": [ - 98.49998474121094, - 408.9999694824219 - ], - "bbox": [ - 98.49998474121094, - 402.6999816894531, - 106.99998474121094, - 423.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g�", - "origin": [ - 106.99998474121094, - 408.9999694824219 - ], - "bbox": [ - 106.99998474121094, - 402.9999694824219, - 112.59998321533203, - 422.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oÈ[ÔõÈ[\u001bu6[©\u001a¦[6H§F©Ý¤�6=\u001b7Æ96[§F\u001bo¥/6VÔõ£\u001c\u001bu§F¨�¥/6B¥/«-¤u¦)§�¤7¤7«¬£9©\u001a¤", - "origin": [ - 112.59998321533203, - 408.9999694824219 - ], - "bbox": [ - 112.59998321533203, - 402.6999816894531, - 305.699951171875, - 423.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 305.699951171875, - 408.9999694824219 - ], - "bbox": [ - 305.699951171875, - 402.9999694824219, - 310.199951171875, - 422.1999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09998321533203, - 402.6999816894531, - 310.199951171875, - 423.0999755859375 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 81.79998779296875, - 416.39996337890625, - 250.0, - 436.7999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "À�ÄfžFÁFŸ\"º", - "origin": [ - 81.79998779296875, - 422.699951171875 - ], - "bbox": [ - 81.79998779296875, - 416.699951171875, - 108.79998779296875, - 435.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f8", - "origin": [ - 108.79998779296875, - 422.699951171875 - ], - "bbox": [ - 108.79998779296875, - 416.39996337890625, - 117.39998626708984, - 436.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f�", - "origin": [ - 117.39998626708984, - 422.699951171875 - ], - "bbox": [ - 117.39998626708984, - 416.699951171875, - 123.09998321533203, - 435.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oÈ)ÔõÈ=\u001b76=©\u001a¦)6H§F©F6M\u00199¥/\u001bu6=¤u¤�6#'", - "origin": [ - 123.09998321533203, - 422.699951171875 - ], - "bbox": [ - 123.09998321533203, - 416.39996337890625, - 222.29998779296875, - 436.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Ù", - "origin": [ - 222.29998779296875, - 422.699951171875 - ], - "bbox": [ - 222.29998779296875, - 416.699951171875, - 226.59999084472656, - 435.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±\u001f#\"", - "origin": [ - 226.59999084472656, - 422.699951171875 - ], - "bbox": [ - 226.59999084472656, - 416.39996337890625, - 238.59999084472656, - 436.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ip", - "origin": [ - 238.59999084472656, - 422.699951171875 - ], - "bbox": [ - 238.59999084472656, - 416.699951171875, - 243.39999389648438, - 435.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "{(", - "origin": [ - 243.39999389648438, - 422.699951171875 - ], - "bbox": [ - 243.39999389648438, - 416.39996337890625, - 246.39999389648438, - 436.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Û[", - "origin": [ - 246.39999389648438, - 422.699951171875 - ], - "bbox": [ - 246.39999389648438, - 416.699951171875, - 250.0, - 435.89996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.79998779296875, - 416.39996337890625, - 250.0, - 436.7999572753906 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 82.29998779296875, - 429.89996337890625, - 290.0999450683594, - 450.2999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "àfžFÁHß", - "origin": [ - 82.29998779296875, - 436.199951171875 - ], - "bbox": [ - 82.29998779296875, - 430.199951171875, - 98.19998168945312, - 449.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É8", - "origin": [ - 98.19998168945312, - 436.199951171875 - ], - "bbox": [ - 98.19998168945312, - 429.89996337890625, - 106.99998474121094, - 450.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g�", - "origin": [ - 106.99998474121094, - 436.199951171875 - ], - "bbox": [ - 106.99998474121094, - 430.199951171875, - 112.59998321533203, - 449.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oÈ[ÔõÈ[\u001bu6[©\u001a¦[6H§F©", - "origin": [ - 112.59998321533203, - 436.199951171875 - ], - "bbox": [ - 112.59998321533203, - 429.89996337890625, - 163.2999725341797, - 450.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017�", - "origin": [ - 163.2999725341797, - 436.199951171875 - ], - "bbox": [ - 163.2999725341797, - 430.199951171875, - 172.0999755859375, - 449.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001bb¤7§F\u001boÆ\u001c£\u001c57\u001bu6\u001e£9\u001bu¥/«-©\u001a\u00194576[§\u001a\u001b= ", - "origin": [ - 172.0999755859375, - 436.199951171875 - ], - "bbox": [ - 172.0999755859375, - 429.89996337890625, - 290.0999450683594, - 450.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29998779296875, - 429.89996337890625, - 290.0999450683594, - 450.2999572753906 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.29998779296875, - 460.699951171875, - 174.19998168945312, - 481.0999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö×¾", - "origin": [ - 72.29998779296875, - 466.99993896484375 - ], - "bbox": [ - 72.29998779296875, - 460.699951171875, - 79.09999084472656, - 481.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 460.699951171875, - 79.09999084472656, - 481.0999450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "–™w¼\u0010š›", - "origin": [ - 88.99998474121094, - 466.99993896484375 - ], - "bbox": [ - 88.99998474121094, - 460.699951171875, - 121.59999084472656, - 481.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.99998474121094, - 460.699951171875, - 121.59999084472656, - 481.0999450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Øe¾?˜aû�¾\n›m˜", - "origin": [ - 132.49998474121094, - 466.99993896484375 - ], - "bbox": [ - 132.49998474121094, - 460.699951171875, - 164.19998168945312, - 481.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "—–", - "origin": [ - 164.19998168945312, - 466.99993896484375 - ], - "bbox": [ - 164.19998168945312, - 462.2999267578125, - 174.19998168945312, - 480.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 132.49998474121094, - 460.699951171875, - 174.19998168945312, - 481.0999450683594 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 186.89999389648438, - 462.699951171875, - 535.89990234375, - 483.0999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6#©\u001a£\u001c¨", - "origin": [ - 186.89999389648438, - 468.99993896484375 - ], - "bbox": [ - 186.89999389648438, - 462.699951171875, - 212.0, - 483.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.89999389648438, - 462.699951171875, - 212.0, - 483.0999450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥F§‚¤76[\u001buÆ\u001c6=§F\u001bB6=¤�5¸¦)£9¨g\u0018�£?¤�È#¥/6c\u0018\u001aʬ§\u001a¤7«-6[§F\u001bª¤H\u0018\u001a\u00194\u001b757«-6=¤= ", - "origin": [ - 224.29998779296875, - 468.99993896484375 - ], - "bbox": [ - 224.29998779296875, - 462.699951171875, - 417.7999267578125, - 483.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Eb", - "origin": [ - 417.7999267578125, - 468.99993896484375 - ], - "bbox": [ - 417.7999267578125, - 462.99993896484375, - 424.09991455078125, - 482.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "VÈ=©FÈ[\u001bª\u00194Ê-6[¨g6[©?5", - "origin": [ - 424.09991455078125, - 468.99993896484375 - ], - "bbox": [ - 424.09991455078125, - 462.699951171875, - 480.19989013671875, - 483.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 480.19989013671875, - 468.99993896484375 - ], - "bbox": [ - 480.19989013671875, - 462.99993896484375, - 484.7998962402344, - 482.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";Ê-\u0019…\u0018F\u001bu6[¨g«-á[\u001bu6", - "origin": [ - 484.7998962402344, - 468.99993896484375 - ], - "bbox": [ - 484.7998962402344, - 462.699951171875, - 535.89990234375, - 483.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.29998779296875, - 462.699951171875, - 535.89990234375, - 483.0999450683594 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 72.19998168945312, - 476.2999572753906, - 531.9000244140625, - 496.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001c\u001b�5u«¬6M«Y¥/6=©95u«", - "origin": [ - 72.19998168945312, - 482.5999450683594 - ], - "bbox": [ - 72.19998168945312, - 476.2999572753906, - 123.09998321533203, - 496.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 123.09998321533203, - 482.5999450683594 - ], - "bbox": [ - 123.09998321533203, - 476.5999450683594, - 125.69998168945312, - 495.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�6¸Ê-6!¤76[\u001buÆ?«Y¦)6!²9§m¯", - "origin": [ - 125.69998168945312, - 482.5999450683594 - ], - "bbox": [ - 125.69998168945312, - 476.2999572753906, - 194.3999786376953, - 496.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19998168945312, - 476.2999572753906, - 194.3999786376953, - 496.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-Êm\u001bu6[©\u001a¥", - "origin": [ - 196.49998474121094, - 482.5999450683594 - ], - "bbox": [ - 196.49998474121094, - 476.2999572753906, - 219.49998474121094, - 496.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "AT˜¶\n¶\n¶", - "origin": [ - 219.49998474121094, - 482.5999450683594 - ], - "bbox": [ - 219.49998474121094, - 476.5999450683594, - 242.89999389648438, - 495.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É£9§", - "origin": [ - 242.89999389648438, - 482.5999450683594 - ], - "bbox": [ - 242.89999389648438, - 476.2999572753906, - 256.79998779296875, - 496.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“àŠŸH´gX", - "origin": [ - 256.79998779296875, - 482.5999450683594 - ], - "bbox": [ - 256.79998779296875, - 476.5999450683594, - 281.8000183105469, - 495.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 �Ë,§F«Y¤", - "origin": [ - 281.8000183105469, - 482.5999450683594 - ], - "bbox": [ - 281.8000183105469, - 476.2999572753906, - 306.800048828125, - 496.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 306.800048828125, - 482.5999450683594 - ], - "bbox": [ - 306.800048828125, - 476.5999450683594, - 311.2000427246094, - 495.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wÆ\n«¬6=©?5\u001e§F©F6!ʬ£/¦=\u00194Ê-«-¤u\u0019%5u«¬£9©É\u0018\u001aʬ§\u001a¤\u001e\u0018F\u001buÈ=¦[«-¤76¸¥/§\u000e¤76[\u001buÆ\u001c6=§F\u001b", - "origin": [ - 311.2000427246094, - 482.5999450683594 - ], - "bbox": [ - 311.2000427246094, - 476.2999572753906, - 510.20001220703125, - 496.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ðT", - "origin": [ - 510.20001220703125, - 482.5999450683594 - ], - "bbox": [ - 510.20001220703125, - 476.5999450683594, - 518.2000122070312, - 495.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y©F£\u001c¨", - "origin": [ - 518.2000122070312, - 482.5999450683594 - ], - "bbox": [ - 518.2000122070312, - 476.2999572753906, - 531.9000244140625, - 496.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 196.49998474121094, - 476.2999572753906, - 531.9000244140625, - 496.699951171875 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 72.29998016357422, - 489.89996337890625, - 536.0, - 510.2999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥;¯", - "origin": [ - 72.29998016357422, - 496.199951171875 - ], - "bbox": [ - 72.29998016357422, - 489.89996337890625, - 78.29998016357422, - 510.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998016357422, - 489.89996337890625, - 78.29998016357422, - 510.2999572753906 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F«-Æ\u001c6=\u001bu¤7«z5uÈ", - "origin": [ - 80.4999771118164, - 496.199951171875 - ], - "bbox": [ - 80.4999771118164, - 489.89996337890625, - 118.29998016357422, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 118.29998016357422, - 496.199951171875 - ], - "bbox": [ - 118.29998016357422, - 490.199951171875, - 123.29998016357422, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ")©\u001a£\u001c¨¹¥K¯", - "origin": [ - 123.29998016357422, - 496.199951171875 - ], - "bbox": [ - 123.29998016357422, - 489.89996337890625, - 154.79998779296875, - 510.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.4999771118164, - 489.89996337890625, - 154.79998779296875, - 510.2999572753906 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=©95u\u001b76=\u0018F\u001bu«-¤76", - "origin": [ - 156.8999786376953, - 496.199951171875 - ], - "bbox": [ - 156.8999786376953, - 489.89996337890625, - 195.0999755859375, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 195.0999755859375, - 496.199951171875 - ], - "bbox": [ - 195.0999755859375, - 490.199951171875, - 200.0999755859375, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ")6[5u¦", - "origin": [ - 200.0999755859375, - 496.199951171875 - ], - "bbox": [ - 200.0999755859375, - 489.89996337890625, - 212.7999725341797, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 212.7999725341797, - 496.199951171875 - ], - "bbox": [ - 212.7999725341797, - 490.199951171875, - 217.3999786376953, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 217.3999786376953, - 496.199951171875 - ], - "bbox": [ - 217.3999786376953, - 489.89996337890625, - 221.5999755859375, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v_", - "origin": [ - 221.5999755859375, - 496.199951171875 - ], - "bbox": [ - 221.5999755859375, - 490.199951171875, - 225.99996948242188, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ש", - "origin": [ - 225.99996948242188, - 496.199951171875 - ], - "bbox": [ - 225.99996948242188, - 489.89996337890625, - 232.7999725341797, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/�", - "origin": [ - 232.7999725341797, - 496.199951171875 - ], - "bbox": [ - 232.7999725341797, - 490.199951171875, - 238.19996643066406, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©", - "origin": [ - 238.19996643066406, - 496.199951171875 - ], - "bbox": [ - 238.19996643066406, - 489.89996337890625, - 243.7999725341797, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 243.7999725341797, - 496.199951171875 - ], - "bbox": [ - 243.7999725341797, - 490.199951171875, - 249.8999786376953, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=Æ?«-6[©?5K§F©B«Y¥/6=©95u«", - "origin": [ - 249.8999786376953, - 496.199951171875 - ], - "bbox": [ - 249.8999786376953, - 489.89996337890625, - 313.2999572753906, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 313.2999572753906, - 496.199951171875 - ], - "bbox": [ - 313.2999572753906, - 490.199951171875, - 315.89996337890625, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦[\u0019%5u6[§F\u001b²9§\u001a«\u001c\u0018w6[\u001bu¨^6[5m¥/6פu\u0019aÆ\u001c£9«¬\u001b;ßo²?§F6[Ê45\\ø?\u0018w6×¥;¯", - "origin": [ - 315.89996337890625, - 496.199951171875 - ], - "bbox": [ - 315.89996337890625, - 489.89996337890625, - 494.199951171875, - 510.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.8999786376953, - 489.89996337890625, - 494.199951171875, - 510.2999572753906 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c\u001buÇ9\u0019\u001c©F«Y¤�¨g6", - "origin": [ - 496.39996337890625, - 496.199951171875 - ], - "bbox": [ - 496.39996337890625, - 489.89996337890625, - 536.0, - 510.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 496.39996337890625, - 489.89996337890625, - 536.0, - 510.2999572753906 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 72.199951171875, - 503.5999755859375, - 271.199951171875, - 523.9999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©…\u0019g\u0019", - "origin": [ - 72.199951171875, - 509.89996337890625 - ], - "bbox": [ - 72.199951171875, - 503.5999755859375, - 94.39995574951172, - 523.9999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I", - "origin": [ - 94.39995574951172, - 509.89996337890625 - ], - "bbox": [ - 94.39995574951172, - 503.89996337890625, - 99.19995880126953, - 523.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";\u00194«-\u001b76H6[51>a£9§É¥\u001a\u00194©\u001a¤o²?§F6=ÊK\u0018\u001a\u0019aø/¤ «¬Êm¤76V57\u001bu£\u001c§FÆ96g8", - "origin": [ - 99.19995880126953, - 509.89996337890625 - ], - "bbox": [ - 99.19995880126953, - 503.5999755859375, - 271.199951171875, - 523.9999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 503.5999755859375, - 271.199951171875, - 523.9999389648438 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 82.39995574951172, - 522.2999877929688, - 259.5999450683594, - 542.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ºF»\n¼", - "origin": [ - 82.39995574951172, - 528.5999755859375 - ], - "bbox": [ - 82.39995574951172, - 522.5999755859375, - 92.69995880126953, - 541.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 92.69995880126953, - 528.5999755859375 - ], - "bbox": [ - 92.69995880126953, - 522.2999877929688, - 101.69995880126953, - 542.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�š", - "origin": [ - 101.69995880126953, - 528.5999755859375 - ], - "bbox": [ - 101.69995880126953, - 522.5999755859375, - 107.49996185302734, - 541.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e\u001buÇ9\u0019\u001c©F«Y¤7\u0019457«-£\u001c©c©F£9©…Ç\u001c£\u001c§\u001aÆ\u001c6[\u001bu©F6=¨^6=©?5u\u00194Ê-6", - "origin": [ - 107.49996185302734, - 528.5999755859375 - ], - "bbox": [ - 107.49996185302734, - 522.2999877929688, - 254.5999298095703, - 542.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 254.5999298095703, - 528.5999755859375 - ], - "bbox": [ - 254.5999298095703, - 522.5999755859375, - 259.5999450683594, - 541.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.39995574951172, - 522.2999877929688, - 259.5999450683594, - 542.699951171875 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 82.699951171875, - 535.9999389648438, - 217.79994201660156, - 556.39990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºYÀ", - "origin": [ - 82.699951171875, - 542.2999267578125 - ], - "bbox": [ - 82.699951171875, - 536.2999267578125, - 92.2999496459961, - 555.4999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ù8", - "origin": [ - 92.2999496459961, - 542.2999267578125 - ], - "bbox": [ - 92.2999496459961, - 535.9999389648438, - 101.699951171875, - 556.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"_", - "origin": [ - 101.699951171875, - 542.2999267578125 - ], - "bbox": [ - 101.699951171875, - 536.2999267578125, - 107.199951171875, - 555.4999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ש95u\u001b76=\u0018F\u001bu«-¤76=¤o¦[£\u001c¨g¨g6[\u001bª¦)«Y\u00194Ê-6=¤", - "origin": [ - 107.199951171875, - 542.2999267578125 - ], - "bbox": [ - 107.199951171875, - 535.9999389648438, - 213.29994201660156, - 556.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 213.29994201660156, - 542.2999267578125 - ], - "bbox": [ - 213.29994201660156, - 536.2999267578125, - 217.79994201660156, - 555.4999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.699951171875, - 535.9999389648438, - 217.79994201660156, - 556.39990234375 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 82.199951171875, - 549.5999145507812, - 216.89991760253906, - 569.9998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¼/ºŠâ", - "origin": [ - 82.199951171875, - 555.89990234375 - ], - "bbox": [ - 82.199951171875, - 549.89990234375, - 92.699951171875, - 569.0999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 92.699951171875, - 555.89990234375 - ], - "bbox": [ - 92.699951171875, - 549.5999145507812, - 101.699951171875, - 569.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fb", - "origin": [ - 101.699951171875, - 555.89990234375 - ], - "bbox": [ - 101.699951171875, - 549.89990234375, - 107.39994812011719, - 569.0999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V£9§FÆ\u001c6=\u001b7©\u001a6[¨g6[©?5b\u00194¨gÈ[\u001bu«Y¦[\u00194«-©", - "origin": [ - 107.39994812011719, - 555.89990234375 - ], - "bbox": [ - 107.39994812011719, - 549.5999145507812, - 210.79991149902344, - 569.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 210.79991149902344, - 555.89990234375 - ], - "bbox": [ - 210.79991149902344, - 549.89990234375, - 216.89991760253906, - 569.0999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.199951171875, - 549.5999145507812, - 216.89991760253906, - 569.9998779296875 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 82.39995574951172, - 563.2998657226562, - 101.699951171875, - 583.6998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ß", - "origin": [ - 82.39995574951172, - 569.599853515625 - ], - "bbox": [ - 82.39995574951172, - 563.599853515625, - 82.39995574951172, - 582.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 82.39995574951172, - 569.599853515625 - ], - "bbox": [ - 82.39995574951172, - 564.8998413085938, - 87.49995422363281, - 582.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆ", - "origin": [ - 87.49995422363281, - 569.599853515625 - ], - "bbox": [ - 87.49995422363281, - 563.599853515625, - 92.5999526977539, - 582.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 92.5999526977539, - 569.599853515625 - ], - "bbox": [ - 92.5999526977539, - 563.2998657226562, - 101.699951171875, - 583.6998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.39995574951172, - 563.2998657226562, - 101.699951171875, - 583.6998291015625 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 114.09996032714844, - 563.2998657226562, - 152.199951171875, - 583.6998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/§\u001a¦[\u0019457«-£\u001c©", - "origin": [ - 114.09996032714844, - 569.599853515625 - ], - "bbox": [ - 114.09996032714844, - 563.2998657226562, - 146.09994506835938, - 583.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 146.09994506835938, - 569.599853515625 - ], - "bbox": [ - 146.09994506835938, - 563.599853515625, - 152.199951171875, - 582.7998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.09996032714844, - 563.2998657226562, - 152.199951171875, - 583.6998291015625 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 81.79995727539062, - 576.7998657226562, - 145.29994201660156, - 597.1998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "À6žFÁ", - "origin": [ - 81.79995727539062, - 583.099853515625 - ], - "bbox": [ - 81.79995727539062, - 577.099853515625, - 92.99995422363281, - 596.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰8\u001aµÍ«¬Ê-«z5ª\u00194«-\u001b76", - "origin": [ - 92.99995422363281, - 583.099853515625 - ], - "bbox": [ - 92.99995422363281, - 576.7998657226562, - 140.19993591308594, - 597.1998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 140.19993591308594, - 583.099853515625 - ], - "bbox": [ - 140.19993591308594, - 577.099853515625, - 145.29994201660156, - 596.2998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.79995727539062, - 576.7998657226562, - 145.29994201660156, - 597.1998291015625 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 82.0999526977539, - 590.4998779296875, - 221.99998474121094, - 610.8998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Þ\"ߊŸ", - "origin": [ - 82.0999526977539, - 596.7998657226562 - ], - "bbox": [ - 82.0999526977539, - 590.7998657226562, - 92.699951171875, - 609.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 92.699951171875, - 596.7998657226562 - ], - "bbox": [ - 92.699951171875, - 590.4998779296875, - 101.699951171875, - 610.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�š", - "origin": [ - 101.699951171875, - 596.7998657226562 - ], - "bbox": [ - 101.699951171875, - 590.7998657226562, - 107.49995422363281, - 609.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e\u001buÇ9\u0019\u001c©F«Y¤�¨g6=¤~Ôõ£9§F\u001b7©\u001a«-¤u¤�6=§F\u001bª¤ ¥K¯", - "origin": [ - 107.49995422363281, - 596.7998657226562 - ], - "bbox": [ - 107.49995422363281, - 590.4998779296875, - 221.99998474121094, - 610.8998413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.0999526977539, - 590.4998779296875, - 221.99998474121094, - 610.8998413085938 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 227.699951171875, - 590.4998779296875, - 259.5999450683594, - 610.8998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©?576=\u001b7©\u001a6)5", - "origin": [ - 227.699951171875, - 596.7998657226562 - ], - "bbox": [ - 227.699951171875, - 590.4998779296875, - 255.09994506835938, - 610.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 255.09994506835938, - 596.7998657226562 - ], - "bbox": [ - 255.09994506835938, - 590.7998657226562, - 259.5999450683594, - 609.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.699951171875, - 590.4998779296875, - 259.5999450683594, - 610.8998413085938 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 82.29995727539062, - 604.0999145507812, - 131.69996643066406, - 624.4998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "àŠ»", - "origin": [ - 82.29995727539062, - 610.39990234375 - ], - "bbox": [ - 82.29995727539062, - 604.39990234375, - 87.39995574951172, - 623.5999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000e8", - "origin": [ - 87.39995574951172, - 610.39990234375 - ], - "bbox": [ - 87.39995574951172, - 604.0999145507812, - 96.59996032714844, - 624.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gˆ", - "origin": [ - 96.59996032714844, - 610.39990234375 - ], - "bbox": [ - 96.59996032714844, - 604.39990234375, - 102.19995880126953, - 623.5999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\u001bª\u00194©\u001a¦[6", - "origin": [ - 102.19995880126953, - 610.39990234375 - ], - "bbox": [ - 102.19995880126953, - 604.0999145507812, - 126.69995880126953, - 624.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 126.69995880126953, - 610.39990234375 - ], - "bbox": [ - 126.69995880126953, - 604.39990234375, - 131.69996643066406, - 623.5999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29995727539062, - 604.0999145507812, - 131.69996643066406, - 624.4998779296875 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 82.199951171875, - 617.6998901367188, - 231.8999481201172, - 638.099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¼/ºFÆ/ⅷ;àŠ»", - "origin": [ - 82.199951171875, - 623.9998779296875 - ], - "bbox": [ - 82.199951171875, - 617.9998779296875, - 113.7999496459961, - 637.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8", - "origin": [ - 113.7999496459961, - 623.9998779296875 - ], - "bbox": [ - 113.7999496459961, - 617.6998901367188, - 122.699951171875, - 638.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gb", - "origin": [ - 122.699951171875, - 623.9998779296875 - ], - "bbox": [ - 122.699951171875, - 617.9998779296875, - 128.29995727539062, - 637.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V£9§FÆ\u001c6=\u001b7©F6=¨g6[©?5", - "origin": [ - 128.29995727539062, - 623.9998779296875 - ], - "bbox": [ - 128.29995727539062, - 617.6998901367188, - 187.79995727539062, - 638.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*ˆ", - "origin": [ - 187.79995727539062, - 623.9998779296875 - ], - "bbox": [ - 187.79995727539062, - 617.9998779296875, - 195.09996032714844, - 637.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\u001bª\u00194©", - "origin": [ - 195.09996032714844, - 623.9998779296875 - ], - "bbox": [ - 195.09996032714844, - 617.6998901367188, - 209.59996032714844, - 638.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g³", - "origin": [ - 209.59996032714844, - 623.9998779296875 - ], - "bbox": [ - 209.59996032714844, - 617.9998779296875, - 215.19996643066406, - 637.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=\u00194«Y¤", - "origin": [ - 215.19996643066406, - 623.9998779296875 - ], - "bbox": [ - 215.19996643066406, - 617.6998901367188, - 227.4999542236328, - 638.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 227.4999542236328, - 623.9998779296875 - ], - "bbox": [ - 227.4999542236328, - 617.9998779296875, - 231.8999481201172, - 637.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.199951171875, - 617.6998901367188, - 231.8999481201172, - 638.099853515625 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 82.0999526977539, - 631.39990234375, - 139.99996948242188, - 651.7998657226562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\"ß", - "origin": [ - 82.0999526977539, - 637.6998901367188 - ], - "bbox": [ - 82.0999526977539, - 631.6998901367188, - 87.5999526977539, - 650.89990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 87.5999526977539, - 637.6998901367188 - ], - "bbox": [ - 87.5999526977539, - 631.39990234375, - 96.5999526977539, - 651.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g]", - "origin": [ - 96.5999526977539, - 637.6998901367188 - ], - "bbox": [ - 96.5999526977539, - 631.6998901367188, - 102.199951171875, - 650.89990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " 6[Ê-Ç\u001c«Y²9§\u001a6", - "origin": [ - 102.199951171875, - 637.6998901367188 - ], - "bbox": [ - 102.199951171875, - 631.39990234375, - 134.99996948242188, - 651.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 134.99996948242188, - 637.6998901367188 - ], - "bbox": [ - 134.99996948242188, - 631.6998901367188, - 139.99996948242188, - 650.89990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.0999526977539, - 631.39990234375, - 139.99996948242188, - 651.7998657226562 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 82.29995727539062, - 644.9999389648438, - 96.59996032714844, - 665.39990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ">", - "origin": [ - 82.29995727539062, - 651.2999267578125 - ], - "bbox": [ - 82.29995727539062, - 646.5999145507812, - 82.29995727539062, - 664.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nß", - "origin": [ - 82.29995727539062, - 651.2999267578125 - ], - "bbox": [ - 82.29995727539062, - 645.2999267578125, - 87.59996032714844, - 664.4999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 87.59996032714844, - 651.2999267578125 - ], - "bbox": [ - 87.59996032714844, - 644.9999389648438, - 96.59996032714844, - 665.39990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29995727539062, - 644.9999389648438, - 96.59996032714844, - 665.39990234375 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 109.49996185302734, - 644.9999389648438, - 148.39996337890625, - 665.39990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-ʬ6=¨#\u00194Ç\u001c©\u001a6", - "origin": [ - 109.49996185302734, - 651.2999267578125 - ], - "bbox": [ - 109.49996185302734, - 644.9999389648438, - 143.39996337890625, - 665.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 143.39996337890625, - 651.2999267578125 - ], - "bbox": [ - 143.39996337890625, - 645.2999267578125, - 148.39996337890625, - 664.4999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.49996185302734, - 644.9999389648438, - 148.39996337890625, - 665.39990234375 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 82.09996032714844, - 658.6998901367188, - 249.8999786376953, - 679.099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Æ", - "origin": [ - 82.09996032714844, - 664.9998779296875 - ], - "bbox": [ - 82.09996032714844, - 658.9998779296875, - 82.09996032714844, - 678.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-O", - "origin": [ - 82.09996032714844, - 664.9998779296875 - ], - "bbox": [ - 82.09996032714844, - 660.2998657226562, - 87.39996337890625, - 678.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000e8\u001aÅb©F«¬576e¥", - "origin": [ - 87.39996337890625, - 664.9998779296875 - ], - "bbox": [ - 87.39996337890625, - 658.6998901367188, - 126.19995880126953, - 679.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "™˜", - "origin": [ - 126.19995880126953, - 664.9998779296875 - ], - "bbox": [ - 126.19995880126953, - 660.2998657226562, - 135.09996032714844, - 678.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "H«¬©FÇ?¥/£\u001c¨", - "origin": [ - 135.09996032714844, - 664.9998779296875 - ], - "bbox": [ - 135.09996032714844, - 658.6998901367188, - 166.59994506835938, - 679.099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09996032714844, - 658.6998901367188, - 166.59994506835938, - 679.099853515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Tq�", - "origin": [ - 178.89996337890625, - 664.9998779296875 - ], - "bbox": [ - 178.89996337890625, - 658.9998779296875, - 182.09996032714844, - 678.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "o£%ø?\u00194§F¨g6)°±Åb©\u001a«-¤", - "origin": [ - 182.09996032714844, - 664.9998779296875 - ], - "bbox": [ - 182.09996032714844, - 658.6998901367188, - 241.5999755859375, - 679.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×Xx[", - "origin": [ - 241.5999755859375, - 664.9998779296875 - ], - "bbox": [ - 241.5999755859375, - 658.9998779296875, - 249.8999786376953, - 678.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.89996337890625, - 658.6998901367188, - 249.8999786376953, - 679.099853515625 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 82.69995880126953, - 672.1998901367188, - 250.19993591308594, - 692.599853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " c¡", - "origin": [ - 82.69995880126953, - 678.4998779296875 - ], - "bbox": [ - 82.69995880126953, - 672.4998779296875, - 87.29995727539062, - 691.6998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�8wÓ~£\u001c©/ÔõÈe¥/È[\u001bª\u0019%5u«¬£9©‰³R6[Ê-Æ\u001cÈ)5u«-²?§F6", - "origin": [ - 87.29995727539062, - 678.4998779296875 - ], - "bbox": [ - 87.29995727539062, - 672.1998901367188, - 207.9999542236328, - 692.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÊTy<", - "origin": [ - 207.9999542236328, - 678.4998779296875 - ], - "bbox": [ - 207.9999542236328, - 672.4998779296875, - 219.79994201660156, - 691.6998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n§F«Y¤7¤76", - "origin": [ - 219.79994201660156, - 678.4998779296875 - ], - "bbox": [ - 219.79994201660156, - 672.1998901367188, - 241.2999267578125, - 692.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX�[", - "origin": [ - 241.2999267578125, - 678.4998779296875 - ], - "bbox": [ - 241.2999267578125, - 672.4998779296875, - 250.19993591308594, - 691.6998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69995880126953, - 672.1998901367188, - 250.19993591308594, - 692.599853515625 - ] - } - ] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 82.69995880126953, - 685.89990234375, - 135.99996948242188, - 706.2998657226562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |Ä", - "origin": [ - 82.69995880126953, - 692.1998901367188 - ], - "bbox": [ - 82.69995880126953, - 686.1998901367188, - 87.59996032714844, - 705.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8wÓ \u00194©\u001a\u00199¥F\u0019", - "origin": [ - 87.59996032714844, - 692.1998901367188 - ], - "bbox": [ - 87.59996032714844, - 685.89990234375, - 130.49996948242188, - 706.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"[", - "origin": [ - 130.49996948242188, - 692.1998901367188 - ], - "bbox": [ - 130.49996948242188, - 686.1998901367188, - 135.99996948242188, - 705.39990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69995880126953, - 685.89990234375, - 135.99996948242188, - 706.2998657226562 - ] - } - ] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 88.79995727539062, - 699.4999389648438, - 158.79994201660156, - 719.89990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "5bÐF«-6[©Ý¥;¯", - "origin": [ - 88.79995727539062, - 705.7999267578125 - ], - "bbox": [ - 88.79995727539062, - 699.4999389648438, - 123.79996490478516, - 719.89990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.79995727539062, - 699.4999389648438, - 123.79996490478516, - 719.89990234375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§/5u\u001b76e¤[ - ¬ ", - "origin": [ - 126.09996032714844, - 705.7999267578125 - ], - "bbox": [ - 126.09996032714844, - 699.4999389648438, - 158.79994201660156, - 719.89990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.09996032714844, - 699.4999389648438, - 158.79994201660156, - 719.89990234375 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 220.7258064516129, - 422.19943019943014, - 227.44354838709677, - 428.4364672364672 - ], - "image_path": "equations_inline/8_220_422_227_428.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 35.29997634887695, - 595.0, - 55.699974060058594 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 105.49996948242188, - 75.49998474121094, - 189.39996337890625, - 95.89998626708984 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 206.0999755859375, - 75.49998474121094, - 227.39996337890625, - 95.89998626708984 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 109.29997253417969, - 595.0, - 380.20001220703125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 460.699951171875, - 595.0, - 766.2998657226562 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgܝÁ\u001aöyžyØe¾\nØ!Á9ûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 105.49996948242188, - 75.49998474121094, - 189.39996337890625, - 95.89998626708984 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "†oŠÑƒ…M„)[Šm†oŠ", - "origin": [ - 105.49996948242188, - 81.79998779296875 - ], - "bbox": [ - 105.49996948242188, - 75.49998474121094, - 162.9999542236328, - 95.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.49996948242188, - 75.49998474121094, - 162.9999542236328, - 95.89998626708984 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "", - "origin": [ - 174.49996948242188, - 81.79998779296875 - ], - "bbox": [ - 174.49996948242188, - 75.49998474121094, - 174.49996948242188, - 95.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "!Ž", - "origin": [ - 174.49996948242188, - 81.79998779296875 - ], - "bbox": [ - 174.49996948242188, - 77.09999084472656, - 181.89996337890625, - 94.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e", - "origin": [ - 181.89996337890625, - 81.79998779296875 - ], - "bbox": [ - 181.89996337890625, - 75.49998474121094, - 189.39996337890625, - 95.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 174.49996948242188, - 75.49998474121094, - 189.39996337890625, - 95.89998626708984 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 206.0999755859375, - 75.49998474121094, - 227.39996337890625, - 95.89998626708984 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0016", - "origin": [ - 206.0999755859375, - 81.79998779296875 - ], - "bbox": [ - 206.0999755859375, - 75.79998779296875, - 206.0999755859375, - 94.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001b", - "origin": [ - 206.0999755859375, - 81.79998779296875 - ], - "bbox": [ - 206.0999755859375, - 77.09999084472656, - 212.99996948242188, - 94.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "o†oŠ", - "origin": [ - 212.99996948242188, - 81.79998779296875 - ], - "bbox": [ - 212.99996948242188, - 75.49998474121094, - 227.39996337890625, - 95.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 206.0999755859375, - 75.49998474121094, - 227.39996337890625, - 95.89998626708984 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 72.29997253417969, - 109.29997253417969, - 536.2999267578125, - 129.69998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤HÐ\u001a\u00194Ê-«Y¤�6e¤V\u0019aÆ%\u0019\u001c©\u001a¦)È=6=¤H¤�£9©?5H¦[6[Ê-ʬ6e¤B²9§\u001a«", - "origin": [ - 72.29997253417969, - 115.5999755859375 - ], - "bbox": [ - 72.29997253417969, - 109.29997253417969, - 223.19998168945312, - 129.69998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29997253417969, - 109.29997253417969, - 223.19998168945312, - 129.69998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©?5", - "origin": [ - 229.7999725341797, - 115.5999755859375 - ], - "bbox": [ - 229.7999725341797, - 109.29997253417969, - 239.99996948242188, - 129.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 239.99996948242188, - 115.5999755859375 - ], - "bbox": [ - 239.99996948242188, - 109.5999755859375, - 244.49996948242188, - 128.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K\u0019\u001c§�¨g£\u001c«-©\u001a¤", - "origin": [ - 244.49996948242188, - 115.5999755859375 - ], - "bbox": [ - 244.49996948242188, - 109.29997253417969, - 286.5999450683594, - 129.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 286.5999450683594, - 115.5999755859375 - ], - "bbox": [ - 286.5999450683594, - 109.5999755859375, - 291.0999450683594, - 128.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";§F©Ù\u0018\u001a\u00194\u001bª\u00194¨gá)5u\u001b76^£\u001cÐ\u001aʬ«-Ç9\u0019457£\u001c«-\u001bu6¸£\u001c§‚²?§F«", - "origin": [ - 291.0999450683594, - 115.5999755859375 - ], - "bbox": [ - 291.0999450683594, - 109.29997253417969, - 435.1999206542969, - 129.69998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.7999725341797, - 109.29997253417969, - 435.1999206542969, - 129.69998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©?5B§F©F6#¤�57\u001bu§\u001a¦15u§F\u001bu6^\u0018\u001aʬ§\u001a¤", - "origin": [ - 441.79998779296875, - 115.5999755859375 - ], - "bbox": [ - 441.79998779296875, - 109.29997253417969, - 536.2999267578125, - 129.69998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 441.79998779296875, - 109.29997253417969, - 536.2999267578125, - 129.69998168945312 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.29998779296875, - 122.99998474121094, - 112.99999237060547, - 143.39999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)£9¨g\u0018Fʬ6[ÿ/6\u001c ", - "origin": [ - 72.29998779296875, - 129.29998779296875 - ], - "bbox": [ - 72.29998779296875, - 122.99998474121094, - 112.99999237060547, - 143.39999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 122.99998474121094, - 112.99999237060547, - 143.39999389648438 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.49998474121094, - 154.89996337890625, - 221.2999725341797, - 174.09996032714844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 72.49998474121094, - 160.89996337890625 - ], - "bbox": [ - 72.49998474121094, - 156.19996643066406, - 72.49998474121094, - 173.99996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1\u0019\u001b\u0018", - "origin": [ - 72.49998474121094, - 160.89996337890625 - ], - "bbox": [ - 72.49998474121094, - 154.89996337890625, - 83.39998626708984, - 174.09996032714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49998474121094, - 154.89996337890625, - 83.39998626708984, - 174.09996032714844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A°\u001b:\u001b)65�%", - "origin": [ - 102.99998474121094, - 160.89996337890625 - ], - "bbox": [ - 102.99998474121094, - 154.89996337890625, - 148.19998168945312, - 174.09996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u0015‘\u001b|", - "origin": [ - 148.19998168945312, - 160.89996337890625 - ], - "bbox": [ - 148.19998168945312, - 156.19996643066406, - 164.69998168945312, - 173.99996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰\u001d$)=\u001f/-/)", - "origin": [ - 164.69998168945312, - 160.89996337890625 - ], - "bbox": [ - 164.69998168945312, - 154.89996337890625, - 196.5999755859375, - 174.09996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%’", - "origin": [ - 196.5999755859375, - 160.89996337890625 - ], - "bbox": [ - 196.5999755859375, - 156.19996643066406, - 202.5999755859375, - 173.99996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1-/)6%", - "origin": [ - 202.5999755859375, - 160.89996337890625 - ], - "bbox": [ - 202.5999755859375, - 154.89996337890625, - 221.2999725341797, - 174.09996032714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.99998474121094, - 154.89996337890625, - 221.2999725341797, - 174.09996032714844 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.29998779296875, - 183.19993591308594, - 534.7000122070312, - 203.59994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤ ʬ«-6[©\u001a¤ þ\nø\n\u0018�6=\u001b�5u6)ÿ\n576e¤×\u0018w6[\u001bu¨g6)57576[©?5b¥/6V\u001b76=ʬ«-6[\u001b §F©F6V\u0018\u001a\u0019\u001c\u001b�5u«¬6H¥/§c5u6)ÿ\n576Hß!§F©É\u0019\u001c§/57\u001bu6R6=©\u001a¥/\u001bu£\u001c«¬5s¥F§\u000fÏÙ6[ÐK �Ó~6=Ê-\u0019¸\u0018�6=§/5oå)57\u001bu6V§F©", - "origin": [ - 72.29998779296875, - 189.49993896484375 - ], - "bbox": [ - 72.29998779296875, - 183.19993591308594, - 534.7000122070312, - 203.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 183.19993591308594, - 534.7000122070312, - 203.59994506835938 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 72.29998779296875, - 196.79991149902344, - 535.9000244140625, - 217.19992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§F57\u001bu6R6[©�¥/\u001b7£9«z5o¤7§F\u001b ¦[6)57576V¨^å=¨g6V\u0018�\u00194Ç\u001c6", - "origin": [ - 72.29998779296875, - 203.09991455078125 - ], - "bbox": [ - 72.29998779296875, - 196.79991149902344, - 216.99996948242188, - 217.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 216.99996948242188, - 203.09991455078125 - ], - "bbox": [ - 216.99996948242188, - 197.09991455078125, - 222.0999755859375, - 216.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9§\u001a©‰\u00194§F57\u001bu6R6[©�¥/\u001b7£9«z5o¤7§F\u001b~Ê-6V¨^å=¨g6V¤7«z5u6", - "origin": [ - 222.0999755859375, - 203.09991455078125 - ], - "bbox": [ - 222.0999755859375, - 196.79991149902344, - 367.29998779296875, - 217.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 367.29998779296875, - 203.09991455078125 - ], - "bbox": [ - 367.29998779296875, - 197.09991455078125, - 372.29998779296875, - 216.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n£\u001c§‰ÐF«-6[©\u000f§\u001a©‰\u00194§F57\u001bu6\u001e6=©\u001a¥/\u001bu£\u001c«¬5 ¤7§F\u001b~§\u001a©É\u0019\u001c§/57\u001bu6", - "origin": [ - 372.29998779296875, - 203.09991455078125 - ], - "bbox": [ - 372.29998779296875, - 196.79991149902344, - 535.9000244140625, - 217.19992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 196.79991149902344, - 535.9000244140625, - 217.19992065429688 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 72.29998779296875, - 210.4999237060547, - 519.5999755859375, - 230.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7«z5u6\u001c ", - "origin": [ - 72.29998779296875, - 216.7999267578125 - ], - "bbox": [ - 72.29998779296875, - 210.4999237060547, - 87.79998779296875, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�š", - "origin": [ - 87.79998779296875, - 216.7999267578125 - ], - "bbox": [ - 87.79998779296875, - 210.7999267578125, - 93.59999084472656, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©‰Ôy\u00194«¬5b\u001b7È[ÔõÈ[\u001bu6[©\u001a¦[6Vß#¦[6)5b\u00194§F57\u001bu6V6=©\u001a¥/\u001bu£\u001c«¬5oÇ\u001c\u001b", - "origin": [ - 93.59999084472656, - 216.7999267578125 - ], - "bbox": [ - 93.59999084472656, - 210.4999237060547, - 259.39996337890625, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "”“", - "origin": [ - 259.39996337890625, - 216.7999267578125 - ], - "bbox": [ - 259.39996337890625, - 212.0999298095703, - 263.4999694824219, - 229.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c¦)6Hßg§F©F6B\u00199¥/\u001b76e¤7¤76VÏ�6=Ð", - "origin": [ - 263.4999694824219, - 216.7999267578125 - ], - "bbox": [ - 263.4999694824219, - 210.4999237060547, - 355.7999267578125, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÕT", - "origin": [ - 355.7999267578125, - 216.7999267578125 - ], - "bbox": [ - 355.7999267578125, - 210.7999267578125, - 365.2999267578125, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ôÅ", - "origin": [ - 365.2999267578125, - 216.7999267578125 - ], - "bbox": [ - 365.2999267578125, - 210.4999237060547, - 368.59991455078125, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 368.59991455078125, - 216.7999267578125 - ], - "bbox": [ - 368.59991455078125, - 210.7999267578125, - 375.9999084472656, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b¶", - "origin": [ - 375.9999084472656, - 216.7999267578125 - ], - "bbox": [ - 375.9999084472656, - 210.4999237060547, - 383.2998962402344, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&[", - "origin": [ - 383.2998962402344, - 216.7999267578125 - ], - "bbox": [ - 383.2998962402344, - 210.7999267578125, - 390.0998840332031, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ÅR©F«zÔõ£9\u001b7¨", - "origin": [ - 390.0998840332031, - 216.7999267578125 - ], - "bbox": [ - 390.0998840332031, - 210.4999237060547, - 423.39990234375, - 230.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 210.4999237060547, - 423.39990234375, - 230.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 435.1000061035156, - 216.7999267578125 - ], - "bbox": [ - 435.1000061035156, - 210.7999267578125, - 435.1000061035156, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "o6=¤7£\u001c§F\u001bª¦)6B¶m£\n¦=\u0019%5u£\u001c\u001bª¤", - "origin": [ - 435.1000061035156, - 216.7999267578125 - ], - "bbox": [ - 435.1000061035156, - 210.4999237060547, - 511.29998779296875, - 230.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WX", - "origin": [ - 511.29998779296875, - 216.7999267578125 - ], - "bbox": [ - 511.29998779296875, - 210.7999267578125, - 515.2999877929688, - 229.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 515.2999877929688, - 216.7999267578125 - ], - "bbox": [ - 515.2999877929688, - 210.4999237060547, - 519.5999755859375, - 230.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.1000061035156, - 210.4999237060547, - 519.5999755859375, - 230.89993286132812 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 72.29998779296875, - 229.19993591308594, - 376.5999755859375, - 249.59994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Åb©…Ê-«¬6=©…þ?ø\n\u0018w6[\u001b7576[ÿ?5u6B¤�6H\u0018F\u001buÈ=¤76[©?576B\u0019\u001c«¬©\u001a¤7«", - "origin": [ - 72.29998779296875, - 235.49993896484375 - ], - "bbox": [ - 72.29998779296875, - 229.19993591308594, - 225.199951171875, - 249.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 229.19993591308594, - 225.199951171875, - 249.59994506835938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8Kçoð", - "origin": [ - 231.79998779296875, - 235.49993896484375 - ], - "bbox": [ - 231.79998779296875, - 229.19993591308594, - 245.09999084472656, - 249.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 231.79998779296875, - 229.19993591308594, - 245.09999084472656, - 249.59994506835938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\n»\"ßHà", - "origin": [ - 255.49998474121094, - 235.49993896484375 - ], - "bbox": [ - 255.49998474121094, - 229.49993896484375, - 271.5, - 248.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$3m", - "origin": [ - 271.5, - 235.49993896484375 - ], - "bbox": [ - 271.5, - 230.79994201660156, - 287.0, - 248.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"½", - "origin": [ - 287.0, - 235.49993896484375 - ], - "bbox": [ - 287.0, - 229.49993896484375, - 292.5, - 248.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ê", - "origin": [ - 292.5, - 235.49993896484375 - ], - "bbox": [ - 292.5, - 229.19993591308594, - 297.8999938964844, - 249.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%$", - "origin": [ - 297.8999938964844, - 235.49993896484375 - ], - "bbox": [ - 297.8999938964844, - 230.79994201660156, - 303.8999938964844, - 248.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 303.8999938964844, - 235.49993896484375 - ], - "bbox": [ - 303.8999938964844, - 229.19993591308594, - 309.0, - 249.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "im", - "origin": [ - 309.0, - 235.49993896484375 - ], - "bbox": [ - 309.0, - 230.79994201660156, - 316.0, - 248.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÞUŸ\"ß", - "origin": [ - 316.0, - 235.49993896484375 - ], - "bbox": [ - 316.0, - 229.49993896484375, - 336.79998779296875, - 248.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�X", - "origin": [ - 336.79998779296875, - 235.49993896484375 - ], - "bbox": [ - 336.79998779296875, - 230.79994201660156, - 341.79998779296875, - 248.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ\"ß", - "origin": [ - 341.79998779296875, - 235.49993896484375 - ], - "bbox": [ - 341.79998779296875, - 229.49993896484375, - 352.5999755859375, - 248.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ç", - "origin": [ - 352.5999755859375, - 235.49993896484375 - ], - "bbox": [ - 352.5999755859375, - 229.19993591308594, - 358.29998779296875, - 249.59994506835938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £", - "origin": [ - 358.29998779296875, - 235.49993896484375 - ], - "bbox": [ - 358.29998779296875, - 229.49993896484375, - 365.79998779296875, - 248.69993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cðwì", - "origin": [ - 365.79998779296875, - 235.49993896484375 - ], - "bbox": [ - 365.79998779296875, - 229.19993591308594, - 376.5999755859375, - 249.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 255.49998474121094, - 229.19993591308594, - 376.5999755859375, - 249.59994506835938 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.29998779296875, - 247.9999237060547, - 229.1999969482422, - 268.3999328613281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6Hð\u000fÔy\u00194«¬5b\u001b7È[ÔõÈ[\u001bu6[©\u001a¦[6Vß^ð", - "origin": [ - 72.29998779296875, - 254.2999267578125 - ], - "bbox": [ - 72.29998779296875, - 247.9999237060547, - 162.7999725341797, - 268.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HÞ\u0011 c¡gºŠ»ÑT", - "origin": [ - 162.7999725341797, - 254.2999267578125 - ], - "bbox": [ - 162.7999725341797, - 248.2999267578125, - 198.19998168945312, - 267.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y\u0019\u001c©\u001a¦)\u001bu6", - "origin": [ - 198.19998168945312, - 254.2999267578125 - ], - "bbox": [ - 198.19998168945312, - 247.9999237060547, - 220.29998779296875, - 268.3999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 220.29998779296875, - 254.2999267578125 - ], - "bbox": [ - 220.29998779296875, - 248.2999267578125, - 224.89999389648438, - 267.49993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 224.89999389648438, - 254.2999267578125 - ], - "bbox": [ - 224.89999389648438, - 247.9999237060547, - 229.1999969482422, - 268.3999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 247.9999237060547, - 229.1999969482422, - 268.3999328613281 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.39998626708984, - 278.699951171875, - 145.10000610351562, - 299.0999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.39998626708984, - 284.99993896484375 - ], - "bbox": [ - 72.39998626708984, - 278.699951171875, - 72.39998626708984, - 299.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.39998626708984, - 284.99993896484375 - ], - "bbox": [ - 72.39998626708984, - 278.99993896484375, - 78.59998321533203, - 298.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.59998321533203, - 284.99993896484375 - ], - "bbox": [ - 78.59998321533203, - 278.699951171875, - 81.79998016357422, - 299.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.79998016357422, - 284.99993896484375 - ], - "bbox": [ - 81.79998016357422, - 278.99993896484375, - 87.59998321533203, - 298.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 87.59998321533203, - 284.99993896484375 - ], - "bbox": [ - 87.59998321533203, - 278.699951171875, - 90.79998016357422, - 299.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.39998626708984, - 278.699951171875, - 90.79998016357422, - 299.0999450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö~¾\nØ", - "origin": [ - 107.29998779296875, - 284.99993896484375 - ], - "bbox": [ - 107.29998779296875, - 278.699951171875, - 119.49999237060547, - 299.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "c•", - "origin": [ - 119.49999237060547, - 284.99993896484375 - ], - "bbox": [ - 119.49999237060547, - 280.2999267578125, - 127.69999694824219, - 298.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017�", - "origin": [ - 127.69999694824219, - 284.99993896484375 - ], - "bbox": [ - 127.69999694824219, - 278.99993896484375, - 136.5, - 298.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000fÖ", - "origin": [ - 136.5, - 284.99993896484375 - ], - "bbox": [ - 136.5, - 278.699951171875, - 145.10000610351562, - 299.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.29998779296875, - 278.699951171875, - 145.10000610351562, - 299.0999450683594 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 72.29998779296875, - 305.89996337890625, - 188.6999969482422, - 326.2999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤oÅ", - "origin": [ - 72.29998779296875, - 312.199951171875 - ], - "bbox": [ - 72.29998779296875, - 305.89996337890625, - 90.19998168945312, - 326.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 90.19998168945312, - 312.199951171875 - ], - "bbox": [ - 90.19998168945312, - 306.199951171875, - 97.59998321533203, - 325.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b¶ò¤7£\u001c©?5b¥/6BÊY\u0019!Ôõ£\u001c\u001bu¨^6g8", - "origin": [ - 97.59998321533203, - 312.199951171875 - ], - "bbox": [ - 97.59998321533203, - 305.89996337890625, - 188.6999969482422, - 326.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 305.89996337890625, - 188.6999969482422, - 326.2999572753906 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.69999694824219, - 329.79998779296875, - 235.00001525878906, - 349.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "áFߊ»Hâ\u0011žH Fß&µ\u001b£\n£\"áFߊ»Hâ\"ßFÆ\n»\"£/ Y¡gß\\ÀEž\\Þg£Fà�žH \\¡.žIßF»", - "origin": [ - 72.69999694824219, - 335.79998779296875 - ], - "bbox": [ - 72.69999694824219, - 329.79998779296875, - 235.00001525878906, - 349.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.69999694824219, - 329.79998779296875, - 235.00001525878906, - 349.0 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.30000305175781, - 359.8000183105469, - 183.00001525878906, - 380.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö×¾\nØ#Øe¾?˜eûKžôœ\u001c¾\nØ^ó˜%™�óיwØ=ü\nØ", - "origin": [ - 72.30000305175781, - 366.1000061035156 - ], - "bbox": [ - 72.30000305175781, - 359.8000183105469, - 174.30001831054688, - 380.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "h–", - "origin": [ - 174.30001831054688, - 366.1000061035156 - ], - "bbox": [ - 174.30001831054688, - 361.3999938964844, - 183.00001525878906, - 379.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 359.8000183105469, - 183.00001525878906, - 380.20001220703125 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 82.0999984741211, - 375.5, - 327.70001220703125, - 395.8999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\nŸ\nŸH´", - "origin": [ - 82.0999984741211, - 381.79998779296875 - ], - "bbox": [ - 82.0999984741211, - 375.79998779296875, - 97.9000015258789, - 395.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 97.9000015258789, - 381.79998779296875 - ], - "bbox": [ - 97.9000015258789, - 375.5, - 107.0, - 395.8999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g�", - "origin": [ - 107.0, - 381.79998779296875 - ], - "bbox": [ - 107.0, - 375.79998779296875, - 112.5999984741211, - 395.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oÈ[ÔõÈ[\u001bu6[©\u001a¦[6H§F©Ý¤�6=\u001b7Æ96[§F\u001bsÏÙ6[Ð", - "origin": [ - 112.5999984741211, - 381.79998779296875 - ], - "bbox": [ - 112.5999984741211, - 375.5, - 220.3999786376953, - 395.8999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "rT", - "origin": [ - 220.3999786376953, - 381.79998779296875 - ], - "bbox": [ - 220.3999786376953, - 375.79998779296875, - 229.99998474121094, - 395.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y¦\u001c¯", - "origin": [ - 229.99998474121094, - 381.79998779296875 - ], - "bbox": [ - 229.99998474121094, - 375.5, - 238.19998168945312, - 395.8999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.0999984741211, - 375.5, - 238.19998168945312, - 395.8999938964844 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6e¤\\5oÊ-6B\u0018Fʬ§�¤sÔõ\u001b7Èe²?§F6[©?5", - "origin": [ - 240.29998779296875, - 381.79998779296875 - ], - "bbox": [ - 240.29998779296875, - 375.5, - 319.3000183105469, - 395.8999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×X�[", - "origin": [ - 319.3000183105469, - 381.79998779296875 - ], - "bbox": [ - 319.3000183105469, - 375.79998779296875, - 327.70001220703125, - 395.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.29998779296875, - 375.5, - 327.70001220703125, - 395.8999938964844 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 82.29998779296875, - 389.0, - 245.5999755859375, - 409.3999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "àŠŸH´", - "origin": [ - 82.29998779296875, - 395.29998779296875 - ], - "bbox": [ - 82.29998779296875, - 389.29998779296875, - 92.59998321533203, - 408.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 92.59998321533203, - 395.29998779296875 - ], - "bbox": [ - 92.59998321533203, - 389.0, - 101.69998168945312, - 409.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g�", - "origin": [ - 101.69998168945312, - 395.29998779296875 - ], - "bbox": [ - 101.69998168945312, - 389.29998779296875, - 107.29998016357422, - 408.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "bÈ)ÔõÈ[\u001bu6[©�¦)6H§F©Ý¤�6=\u001b7Æ96[§F\u001bo¥/6", - "origin": [ - 107.29998016357422, - 395.29998779296875 - ], - "bbox": [ - 107.29998016357422, - 389.0, - 206.7999725341797, - 409.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 206.7999725341797, - 395.29998779296875 - ], - "bbox": [ - 206.7999725341797, - 389.29998779296875, - 214.49996948242188, - 408.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001bu¤", - "origin": [ - 214.49996948242188, - 395.29998779296875 - ], - "bbox": [ - 214.49996948242188, - 389.0, - 241.0999755859375, - 409.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 241.0999755859375, - 395.29998779296875 - ], - "bbox": [ - 241.0999755859375, - 389.29998779296875, - 245.5999755859375, - 408.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29998779296875, - 389.0, - 245.5999755859375, - 409.3999938964844 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 82.09998321533203, - 402.6999816894531, - 310.199951171875, - 423.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Þ\"ßF¶\u0011á", - "origin": [ - 82.09998321533203, - 408.9999694824219 - ], - "bbox": [ - 82.09998321533203, - 402.9999694824219, - 98.49998474121094, - 422.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c8", - "origin": [ - 98.49998474121094, - 408.9999694824219 - ], - "bbox": [ - 98.49998474121094, - 402.6999816894531, - 106.99998474121094, - 423.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g�", - "origin": [ - 106.99998474121094, - 408.9999694824219 - ], - "bbox": [ - 106.99998474121094, - 402.9999694824219, - 112.59998321533203, - 422.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oÈ[ÔõÈ[\u001bu6[©\u001a¦[6H§F©Ý¤�6=\u001b7Æ96[§F\u001bo¥/6VÔõ£\u001c\u001bu§F¨�¥/6B¥/«-¤u¦)§�¤7¤7«¬£9©\u001a¤", - "origin": [ - 112.59998321533203, - 408.9999694824219 - ], - "bbox": [ - 112.59998321533203, - 402.6999816894531, - 305.699951171875, - 423.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 305.699951171875, - 408.9999694824219 - ], - "bbox": [ - 305.699951171875, - 402.9999694824219, - 310.199951171875, - 422.1999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09998321533203, - 402.6999816894531, - 310.199951171875, - 423.0999755859375 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 81.79998779296875, - 416.39996337890625, - 250.0, - 436.7999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "À�ÄfžFÁFŸ\"º", - "origin": [ - 81.79998779296875, - 422.699951171875 - ], - "bbox": [ - 81.79998779296875, - 416.699951171875, - 108.79998779296875, - 435.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f8", - "origin": [ - 108.79998779296875, - 422.699951171875 - ], - "bbox": [ - 108.79998779296875, - 416.39996337890625, - 117.39998626708984, - 436.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f�", - "origin": [ - 117.39998626708984, - 422.699951171875 - ], - "bbox": [ - 117.39998626708984, - 416.699951171875, - 123.09998321533203, - 435.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oÈ)ÔõÈ=\u001b76=©\u001a¦)6H§F©F6M\u00199¥/\u001bu6=¤u¤�6#'", - "origin": [ - 123.09998321533203, - 422.699951171875 - ], - "bbox": [ - 123.09998321533203, - 416.39996337890625, - 222.29998779296875, - 436.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Ù", - "origin": [ - 222.29998779296875, - 422.699951171875 - ], - "bbox": [ - 222.29998779296875, - 416.699951171875, - 226.59999084472656, - 435.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±\u001f#\"", - "origin": [ - 226.59999084472656, - 422.699951171875 - ], - "bbox": [ - 226.59999084472656, - 416.39996337890625, - 238.59999084472656, - 436.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ip", - "origin": [ - 238.59999084472656, - 422.699951171875 - ], - "bbox": [ - 238.59999084472656, - 416.699951171875, - 243.39999389648438, - 435.89996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "{(", - "origin": [ - 243.39999389648438, - 422.699951171875 - ], - "bbox": [ - 243.39999389648438, - 416.39996337890625, - 246.39999389648438, - 436.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Û[", - "origin": [ - 246.39999389648438, - 422.699951171875 - ], - "bbox": [ - 246.39999389648438, - 416.699951171875, - 250.0, - 435.89996337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.79998779296875, - 416.39996337890625, - 250.0, - 436.7999572753906 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 82.29998779296875, - 429.89996337890625, - 290.0999450683594, - 450.2999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "àfžFÁHß", - "origin": [ - 82.29998779296875, - 436.199951171875 - ], - "bbox": [ - 82.29998779296875, - 430.199951171875, - 98.19998168945312, - 449.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É8", - "origin": [ - 98.19998168945312, - 436.199951171875 - ], - "bbox": [ - 98.19998168945312, - 429.89996337890625, - 106.99998474121094, - 450.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g�", - "origin": [ - 106.99998474121094, - 436.199951171875 - ], - "bbox": [ - 106.99998474121094, - 430.199951171875, - 112.59998321533203, - 449.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oÈ[ÔõÈ[\u001bu6[©\u001a¦[6H§F©", - "origin": [ - 112.59998321533203, - 436.199951171875 - ], - "bbox": [ - 112.59998321533203, - 429.89996337890625, - 163.2999725341797, - 450.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017�", - "origin": [ - 163.2999725341797, - 436.199951171875 - ], - "bbox": [ - 163.2999725341797, - 430.199951171875, - 172.0999755859375, - 449.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001bb¤7§F\u001boÆ\u001c£\u001c57\u001bu6\u001e£9\u001bu¥/«-©\u001a\u00194576[§\u001a\u001b= ", - "origin": [ - 172.0999755859375, - 436.199951171875 - ], - "bbox": [ - 172.0999755859375, - 429.89996337890625, - 290.0999450683594, - 450.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29998779296875, - 429.89996337890625, - 290.0999450683594, - 450.2999572753906 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.29998779296875, - 460.699951171875, - 174.19998168945312, - 481.0999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö×¾", - "origin": [ - 72.29998779296875, - 466.99993896484375 - ], - "bbox": [ - 72.29998779296875, - 460.699951171875, - 79.09999084472656, - 481.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 460.699951171875, - 79.09999084472656, - 481.0999450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "–™w¼\u0010š›", - "origin": [ - 88.99998474121094, - 466.99993896484375 - ], - "bbox": [ - 88.99998474121094, - 460.699951171875, - 121.59999084472656, - 481.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.99998474121094, - 460.699951171875, - 121.59999084472656, - 481.0999450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Øe¾?˜aû�¾\n›m˜", - "origin": [ - 132.49998474121094, - 466.99993896484375 - ], - "bbox": [ - 132.49998474121094, - 460.699951171875, - 164.19998168945312, - 481.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "—–", - "origin": [ - 164.19998168945312, - 466.99993896484375 - ], - "bbox": [ - 164.19998168945312, - 462.2999267578125, - 174.19998168945312, - 480.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 132.49998474121094, - 460.699951171875, - 174.19998168945312, - 481.0999450683594 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 186.89999389648438, - 462.699951171875, - 535.89990234375, - 483.0999450683594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6#©\u001a£\u001c¨", - "origin": [ - 186.89999389648438, - 468.99993896484375 - ], - "bbox": [ - 186.89999389648438, - 462.699951171875, - 212.0, - 483.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.89999389648438, - 462.699951171875, - 212.0, - 483.0999450683594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥F§‚¤76[\u001buÆ\u001c6=§F\u001bB6=¤�5¸¦)£9¨g\u0018�£?¤�È#¥/6c\u0018\u001aʬ§\u001a¤7«-6[§F\u001bª¤H\u0018\u001a\u00194\u001b757«-6=¤= ", - "origin": [ - 224.29998779296875, - 468.99993896484375 - ], - "bbox": [ - 224.29998779296875, - 462.699951171875, - 417.7999267578125, - 483.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Eb", - "origin": [ - 417.7999267578125, - 468.99993896484375 - ], - "bbox": [ - 417.7999267578125, - 462.99993896484375, - 424.09991455078125, - 482.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "VÈ=©FÈ[\u001bª\u00194Ê-6[¨g6[©?5", - "origin": [ - 424.09991455078125, - 468.99993896484375 - ], - "bbox": [ - 424.09991455078125, - 462.699951171875, - 480.19989013671875, - 483.0999450683594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 480.19989013671875, - 468.99993896484375 - ], - "bbox": [ - 480.19989013671875, - 462.99993896484375, - 484.7998962402344, - 482.199951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";Ê-\u0019…\u0018F\u001bu6[¨g«-á[\u001bu6", - "origin": [ - 484.7998962402344, - 468.99993896484375 - ], - "bbox": [ - 484.7998962402344, - 462.699951171875, - 535.89990234375, - 483.0999450683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.29998779296875, - 462.699951171875, - 535.89990234375, - 483.0999450683594 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 72.19998168945312, - 476.2999572753906, - 531.9000244140625, - 496.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001c\u001b�5u«¬6M«Y¥/6=©95u«", - "origin": [ - 72.19998168945312, - 482.5999450683594 - ], - "bbox": [ - 72.19998168945312, - 476.2999572753906, - 123.09998321533203, - 496.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 123.09998321533203, - 482.5999450683594 - ], - "bbox": [ - 123.09998321533203, - 476.5999450683594, - 125.69998168945312, - 495.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�6¸Ê-6!¤76[\u001buÆ?«Y¦)6!²9§m¯", - "origin": [ - 125.69998168945312, - 482.5999450683594 - ], - "bbox": [ - 125.69998168945312, - 476.2999572753906, - 194.3999786376953, - 496.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19998168945312, - 476.2999572753906, - 194.3999786376953, - 496.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-Êm\u001bu6[©\u001a¥", - "origin": [ - 196.49998474121094, - 482.5999450683594 - ], - "bbox": [ - 196.49998474121094, - 476.2999572753906, - 219.49998474121094, - 496.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "AT˜¶\n¶\n¶", - "origin": [ - 219.49998474121094, - 482.5999450683594 - ], - "bbox": [ - 219.49998474121094, - 476.5999450683594, - 242.89999389648438, - 495.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É£9§", - "origin": [ - 242.89999389648438, - 482.5999450683594 - ], - "bbox": [ - 242.89999389648438, - 476.2999572753906, - 256.79998779296875, - 496.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“àŠŸH´gX", - "origin": [ - 256.79998779296875, - 482.5999450683594 - ], - "bbox": [ - 256.79998779296875, - 476.5999450683594, - 281.8000183105469, - 495.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 �Ë,§F«Y¤", - "origin": [ - 281.8000183105469, - 482.5999450683594 - ], - "bbox": [ - 281.8000183105469, - 476.2999572753906, - 306.800048828125, - 496.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 306.800048828125, - 482.5999450683594 - ], - "bbox": [ - 306.800048828125, - 476.5999450683594, - 311.2000427246094, - 495.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wÆ\n«¬6=©?5\u001e§F©F6!ʬ£/¦=\u00194Ê-«-¤u\u0019%5u«¬£9©É\u0018\u001aʬ§\u001a¤\u001e\u0018F\u001buÈ=¦[«-¤76¸¥/§\u000e¤76[\u001buÆ\u001c6=§F\u001b", - "origin": [ - 311.2000427246094, - 482.5999450683594 - ], - "bbox": [ - 311.2000427246094, - 476.2999572753906, - 510.20001220703125, - 496.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ðT", - "origin": [ - 510.20001220703125, - 482.5999450683594 - ], - "bbox": [ - 510.20001220703125, - 476.5999450683594, - 518.2000122070312, - 495.7999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y©F£\u001c¨", - "origin": [ - 518.2000122070312, - 482.5999450683594 - ], - "bbox": [ - 518.2000122070312, - 476.2999572753906, - 531.9000244140625, - 496.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 196.49998474121094, - 476.2999572753906, - 531.9000244140625, - 496.699951171875 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 72.29998016357422, - 489.89996337890625, - 536.0, - 510.2999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥;¯", - "origin": [ - 72.29998016357422, - 496.199951171875 - ], - "bbox": [ - 72.29998016357422, - 489.89996337890625, - 78.29998016357422, - 510.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998016357422, - 489.89996337890625, - 78.29998016357422, - 510.2999572753906 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F«-Æ\u001c6=\u001bu¤7«z5uÈ", - "origin": [ - 80.4999771118164, - 496.199951171875 - ], - "bbox": [ - 80.4999771118164, - 489.89996337890625, - 118.29998016357422, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 118.29998016357422, - 496.199951171875 - ], - "bbox": [ - 118.29998016357422, - 490.199951171875, - 123.29998016357422, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ")©\u001a£\u001c¨¹¥K¯", - "origin": [ - 123.29998016357422, - 496.199951171875 - ], - "bbox": [ - 123.29998016357422, - 489.89996337890625, - 154.79998779296875, - 510.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 80.4999771118164, - 489.89996337890625, - 154.79998779296875, - 510.2999572753906 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=©95u\u001b76=\u0018F\u001bu«-¤76", - "origin": [ - 156.8999786376953, - 496.199951171875 - ], - "bbox": [ - 156.8999786376953, - 489.89996337890625, - 195.0999755859375, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 195.0999755859375, - 496.199951171875 - ], - "bbox": [ - 195.0999755859375, - 490.199951171875, - 200.0999755859375, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ")6[5u¦", - "origin": [ - 200.0999755859375, - 496.199951171875 - ], - "bbox": [ - 200.0999755859375, - 489.89996337890625, - 212.7999725341797, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX", - "origin": [ - 212.7999725341797, - 496.199951171875 - ], - "bbox": [ - 212.7999725341797, - 490.199951171875, - 217.3999786376953, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 217.3999786376953, - 496.199951171875 - ], - "bbox": [ - 217.3999786376953, - 489.89996337890625, - 221.5999755859375, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v_", - "origin": [ - 221.5999755859375, - 496.199951171875 - ], - "bbox": [ - 221.5999755859375, - 490.199951171875, - 225.99996948242188, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ש", - "origin": [ - 225.99996948242188, - 496.199951171875 - ], - "bbox": [ - 225.99996948242188, - 489.89996337890625, - 232.7999725341797, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/�", - "origin": [ - 232.7999725341797, - 496.199951171875 - ], - "bbox": [ - 232.7999725341797, - 490.199951171875, - 238.19996643066406, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©", - "origin": [ - 238.19996643066406, - 496.199951171875 - ], - "bbox": [ - 238.19996643066406, - 489.89996337890625, - 243.7999725341797, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 243.7999725341797, - 496.199951171875 - ], - "bbox": [ - 243.7999725341797, - 490.199951171875, - 249.8999786376953, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=Æ?«-6[©?5K§F©B«Y¥/6=©95u«", - "origin": [ - 249.8999786376953, - 496.199951171875 - ], - "bbox": [ - 249.8999786376953, - 489.89996337890625, - 313.2999572753906, - 510.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 313.2999572753906, - 496.199951171875 - ], - "bbox": [ - 313.2999572753906, - 490.199951171875, - 315.89996337890625, - 509.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦[\u0019%5u6[§F\u001b²9§\u001a«\u001c\u0018w6[\u001bu¨^6[5m¥/6פu\u0019aÆ\u001c£9«¬\u001b;ßo²?§F6[Ê45\\ø?\u0018w6×¥;¯", - "origin": [ - 315.89996337890625, - 496.199951171875 - ], - "bbox": [ - 315.89996337890625, - 489.89996337890625, - 494.199951171875, - 510.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.8999786376953, - 489.89996337890625, - 494.199951171875, - 510.2999572753906 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c\u001buÇ9\u0019\u001c©F«Y¤�¨g6", - "origin": [ - 496.39996337890625, - 496.199951171875 - ], - "bbox": [ - 496.39996337890625, - 489.89996337890625, - 536.0, - 510.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 496.39996337890625, - 489.89996337890625, - 536.0, - 510.2999572753906 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 72.199951171875, - 503.5999755859375, - 271.199951171875, - 523.9999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©…\u0019g\u0019", - "origin": [ - 72.199951171875, - 509.89996337890625 - ], - "bbox": [ - 72.199951171875, - 503.5999755859375, - 94.39995574951172, - 523.9999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I", - "origin": [ - 94.39995574951172, - 509.89996337890625 - ], - "bbox": [ - 94.39995574951172, - 503.89996337890625, - 99.19995880126953, - 523.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";\u00194«-\u001b76H6[51>a£9§É¥\u001a\u00194©\u001a¤o²?§F6=ÊK\u0018\u001a\u0019aø/¤ «¬Êm¤76V57\u001bu£\u001c§FÆ96g8", - "origin": [ - 99.19995880126953, - 509.89996337890625 - ], - "bbox": [ - 99.19995880126953, - 503.5999755859375, - 271.199951171875, - 523.9999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 503.5999755859375, - 271.199951171875, - 523.9999389648438 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 82.39995574951172, - 522.2999877929688, - 259.5999450683594, - 542.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ºF»\n¼", - "origin": [ - 82.39995574951172, - 528.5999755859375 - ], - "bbox": [ - 82.39995574951172, - 522.5999755859375, - 92.69995880126953, - 541.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 92.69995880126953, - 528.5999755859375 - ], - "bbox": [ - 92.69995880126953, - 522.2999877929688, - 101.69995880126953, - 542.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�š", - "origin": [ - 101.69995880126953, - 528.5999755859375 - ], - "bbox": [ - 101.69995880126953, - 522.5999755859375, - 107.49996185302734, - 541.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e\u001buÇ9\u0019\u001c©F«Y¤7\u0019457«-£\u001c©c©F£9©…Ç\u001c£\u001c§\u001aÆ\u001c6[\u001bu©F6=¨^6=©?5u\u00194Ê-6", - "origin": [ - 107.49996185302734, - 528.5999755859375 - ], - "bbox": [ - 107.49996185302734, - 522.2999877929688, - 254.5999298095703, - 542.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 254.5999298095703, - 528.5999755859375 - ], - "bbox": [ - 254.5999298095703, - 522.5999755859375, - 259.5999450683594, - 541.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.39995574951172, - 522.2999877929688, - 259.5999450683594, - 542.699951171875 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 82.699951171875, - 535.9999389648438, - 217.79994201660156, - 556.39990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºYÀ", - "origin": [ - 82.699951171875, - 542.2999267578125 - ], - "bbox": [ - 82.699951171875, - 536.2999267578125, - 92.2999496459961, - 555.4999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ù8", - "origin": [ - 92.2999496459961, - 542.2999267578125 - ], - "bbox": [ - 92.2999496459961, - 535.9999389648438, - 101.699951171875, - 556.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"_", - "origin": [ - 101.699951171875, - 542.2999267578125 - ], - "bbox": [ - 101.699951171875, - 536.2999267578125, - 107.199951171875, - 555.4999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ש95u\u001b76=\u0018F\u001bu«-¤76=¤o¦[£\u001c¨g¨g6[\u001bª¦)«Y\u00194Ê-6=¤", - "origin": [ - 107.199951171875, - 542.2999267578125 - ], - "bbox": [ - 107.199951171875, - 535.9999389648438, - 213.29994201660156, - 556.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 213.29994201660156, - 542.2999267578125 - ], - "bbox": [ - 213.29994201660156, - 536.2999267578125, - 217.79994201660156, - 555.4999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.699951171875, - 535.9999389648438, - 217.79994201660156, - 556.39990234375 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 82.199951171875, - 549.5999145507812, - 216.89991760253906, - 569.9998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¼/ºŠâ", - "origin": [ - 82.199951171875, - 555.89990234375 - ], - "bbox": [ - 82.199951171875, - 549.89990234375, - 92.699951171875, - 569.0999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 92.699951171875, - 555.89990234375 - ], - "bbox": [ - 92.699951171875, - 549.5999145507812, - 101.699951171875, - 569.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fb", - "origin": [ - 101.699951171875, - 555.89990234375 - ], - "bbox": [ - 101.699951171875, - 549.89990234375, - 107.39994812011719, - 569.0999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V£9§FÆ\u001c6=\u001b7©\u001a6[¨g6[©?5b\u00194¨gÈ[\u001bu«Y¦[\u00194«-©", - "origin": [ - 107.39994812011719, - 555.89990234375 - ], - "bbox": [ - 107.39994812011719, - 549.5999145507812, - 210.79991149902344, - 569.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 210.79991149902344, - 555.89990234375 - ], - "bbox": [ - 210.79991149902344, - 549.89990234375, - 216.89991760253906, - 569.0999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.199951171875, - 549.5999145507812, - 216.89991760253906, - 569.9998779296875 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 82.39995574951172, - 563.2998657226562, - 101.699951171875, - 583.6998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ß", - "origin": [ - 82.39995574951172, - 569.599853515625 - ], - "bbox": [ - 82.39995574951172, - 563.599853515625, - 82.39995574951172, - 582.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 82.39995574951172, - 569.599853515625 - ], - "bbox": [ - 82.39995574951172, - 564.8998413085938, - 87.49995422363281, - 582.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆ", - "origin": [ - 87.49995422363281, - 569.599853515625 - ], - "bbox": [ - 87.49995422363281, - 563.599853515625, - 92.5999526977539, - 582.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 92.5999526977539, - 569.599853515625 - ], - "bbox": [ - 92.5999526977539, - 563.2998657226562, - 101.699951171875, - 583.6998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.39995574951172, - 563.2998657226562, - 101.699951171875, - 583.6998291015625 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 114.09996032714844, - 563.2998657226562, - 152.199951171875, - 583.6998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/§\u001a¦[\u0019457«-£\u001c©", - "origin": [ - 114.09996032714844, - 569.599853515625 - ], - "bbox": [ - 114.09996032714844, - 563.2998657226562, - 146.09994506835938, - 583.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 146.09994506835938, - 569.599853515625 - ], - "bbox": [ - 146.09994506835938, - 563.599853515625, - 152.199951171875, - 582.7998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.09996032714844, - 563.2998657226562, - 152.199951171875, - 583.6998291015625 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 81.79995727539062, - 576.7998657226562, - 145.29994201660156, - 597.1998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "À6žFÁ", - "origin": [ - 81.79995727539062, - 583.099853515625 - ], - "bbox": [ - 81.79995727539062, - 577.099853515625, - 92.99995422363281, - 596.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰8\u001aµÍ«¬Ê-«z5ª\u00194«-\u001b76", - "origin": [ - 92.99995422363281, - 583.099853515625 - ], - "bbox": [ - 92.99995422363281, - 576.7998657226562, - 140.19993591308594, - 597.1998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 140.19993591308594, - 583.099853515625 - ], - "bbox": [ - 140.19993591308594, - 577.099853515625, - 145.29994201660156, - 596.2998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.79995727539062, - 576.7998657226562, - 145.29994201660156, - 597.1998291015625 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 82.0999526977539, - 590.4998779296875, - 221.99998474121094, - 610.8998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Þ\"ߊŸ", - "origin": [ - 82.0999526977539, - 596.7998657226562 - ], - "bbox": [ - 82.0999526977539, - 590.7998657226562, - 92.699951171875, - 609.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 92.699951171875, - 596.7998657226562 - ], - "bbox": [ - 92.699951171875, - 590.4998779296875, - 101.699951171875, - 610.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�š", - "origin": [ - 101.699951171875, - 596.7998657226562 - ], - "bbox": [ - 101.699951171875, - 590.7998657226562, - 107.49995422363281, - 609.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e\u001buÇ9\u0019\u001c©F«Y¤�¨g6=¤~Ôõ£9§F\u001b7©\u001a«-¤u¤�6=§F\u001bª¤ ¥K¯", - "origin": [ - 107.49995422363281, - 596.7998657226562 - ], - "bbox": [ - 107.49995422363281, - 590.4998779296875, - 221.99998474121094, - 610.8998413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.0999526977539, - 590.4998779296875, - 221.99998474121094, - 610.8998413085938 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 227.699951171875, - 590.4998779296875, - 259.5999450683594, - 610.8998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©?576=\u001b7©\u001a6)5", - "origin": [ - 227.699951171875, - 596.7998657226562 - ], - "bbox": [ - 227.699951171875, - 590.4998779296875, - 255.09994506835938, - 610.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 255.09994506835938, - 596.7998657226562 - ], - "bbox": [ - 255.09994506835938, - 590.7998657226562, - 259.5999450683594, - 609.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.699951171875, - 590.4998779296875, - 259.5999450683594, - 610.8998413085938 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 82.29995727539062, - 604.0999145507812, - 131.69996643066406, - 624.4998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "àŠ»", - "origin": [ - 82.29995727539062, - 610.39990234375 - ], - "bbox": [ - 82.29995727539062, - 604.39990234375, - 87.39995574951172, - 623.5999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000e8", - "origin": [ - 87.39995574951172, - 610.39990234375 - ], - "bbox": [ - 87.39995574951172, - 604.0999145507812, - 96.59996032714844, - 624.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gˆ", - "origin": [ - 96.59996032714844, - 610.39990234375 - ], - "bbox": [ - 96.59996032714844, - 604.39990234375, - 102.19995880126953, - 623.5999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\u001bª\u00194©\u001a¦[6", - "origin": [ - 102.19995880126953, - 610.39990234375 - ], - "bbox": [ - 102.19995880126953, - 604.0999145507812, - 126.69995880126953, - 624.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 126.69995880126953, - 610.39990234375 - ], - "bbox": [ - 126.69995880126953, - 604.39990234375, - 131.69996643066406, - 623.5999145507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29995727539062, - 604.0999145507812, - 131.69996643066406, - 624.4998779296875 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 82.199951171875, - 617.6998901367188, - 231.8999481201172, - 638.099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¼/ºFÆ/ⅷ;àŠ»", - "origin": [ - 82.199951171875, - 623.9998779296875 - ], - "bbox": [ - 82.199951171875, - 617.9998779296875, - 113.7999496459961, - 637.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8", - "origin": [ - 113.7999496459961, - 623.9998779296875 - ], - "bbox": [ - 113.7999496459961, - 617.6998901367188, - 122.699951171875, - 638.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gb", - "origin": [ - 122.699951171875, - 623.9998779296875 - ], - "bbox": [ - 122.699951171875, - 617.9998779296875, - 128.29995727539062, - 637.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "V£9§FÆ\u001c6=\u001b7©F6=¨g6[©?5", - "origin": [ - 128.29995727539062, - 623.9998779296875 - ], - "bbox": [ - 128.29995727539062, - 617.6998901367188, - 187.79995727539062, - 638.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*ˆ", - "origin": [ - 187.79995727539062, - 623.9998779296875 - ], - "bbox": [ - 187.79995727539062, - 617.9998779296875, - 195.09996032714844, - 637.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F\u001bª\u00194©", - "origin": [ - 195.09996032714844, - 623.9998779296875 - ], - "bbox": [ - 195.09996032714844, - 617.6998901367188, - 209.59996032714844, - 638.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g³", - "origin": [ - 209.59996032714844, - 623.9998779296875 - ], - "bbox": [ - 209.59996032714844, - 617.9998779296875, - 215.19996643066406, - 637.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=\u00194«Y¤", - "origin": [ - 215.19996643066406, - 623.9998779296875 - ], - "bbox": [ - 215.19996643066406, - 617.6998901367188, - 227.4999542236328, - 638.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 227.4999542236328, - 623.9998779296875 - ], - "bbox": [ - 227.4999542236328, - 617.9998779296875, - 231.8999481201172, - 637.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.199951171875, - 617.6998901367188, - 231.8999481201172, - 638.099853515625 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 82.0999526977539, - 631.39990234375, - 139.99996948242188, - 651.7998657226562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\"ß", - "origin": [ - 82.0999526977539, - 637.6998901367188 - ], - "bbox": [ - 82.0999526977539, - 631.6998901367188, - 87.5999526977539, - 650.89990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 87.5999526977539, - 637.6998901367188 - ], - "bbox": [ - 87.5999526977539, - 631.39990234375, - 96.5999526977539, - 651.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g]", - "origin": [ - 96.5999526977539, - 637.6998901367188 - ], - "bbox": [ - 96.5999526977539, - 631.6998901367188, - 102.199951171875, - 650.89990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " 6[Ê-Ç\u001c«Y²9§\u001a6", - "origin": [ - 102.199951171875, - 637.6998901367188 - ], - "bbox": [ - 102.199951171875, - 631.39990234375, - 134.99996948242188, - 651.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 134.99996948242188, - 637.6998901367188 - ], - "bbox": [ - 134.99996948242188, - 631.6998901367188, - 139.99996948242188, - 650.89990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.0999526977539, - 631.39990234375, - 139.99996948242188, - 651.7998657226562 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 82.29995727539062, - 644.9999389648438, - 96.59996032714844, - 665.39990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ">", - "origin": [ - 82.29995727539062, - 651.2999267578125 - ], - "bbox": [ - 82.29995727539062, - 646.5999145507812, - 82.29995727539062, - 664.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nß", - "origin": [ - 82.29995727539062, - 651.2999267578125 - ], - "bbox": [ - 82.29995727539062, - 645.2999267578125, - 87.59996032714844, - 664.4999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 87.59996032714844, - 651.2999267578125 - ], - "bbox": [ - 87.59996032714844, - 644.9999389648438, - 96.59996032714844, - 665.39990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29995727539062, - 644.9999389648438, - 96.59996032714844, - 665.39990234375 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 109.49996185302734, - 644.9999389648438, - 148.39996337890625, - 665.39990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-ʬ6=¨#\u00194Ç\u001c©\u001a6", - "origin": [ - 109.49996185302734, - 651.2999267578125 - ], - "bbox": [ - 109.49996185302734, - 644.9999389648438, - 143.39996337890625, - 665.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 143.39996337890625, - 651.2999267578125 - ], - "bbox": [ - 143.39996337890625, - 645.2999267578125, - 148.39996337890625, - 664.4999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.49996185302734, - 644.9999389648438, - 148.39996337890625, - 665.39990234375 - ] - } - ] - }, - { - "number": 60, - "type": 0, - "bbox": [ - 82.09996032714844, - 658.6998901367188, - 249.8999786376953, - 679.099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Æ", - "origin": [ - 82.09996032714844, - 664.9998779296875 - ], - "bbox": [ - 82.09996032714844, - 658.9998779296875, - 82.09996032714844, - 678.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-O", - "origin": [ - 82.09996032714844, - 664.9998779296875 - ], - "bbox": [ - 82.09996032714844, - 660.2998657226562, - 87.39996337890625, - 678.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000e8\u001aÅb©F«¬576e¥", - "origin": [ - 87.39996337890625, - 664.9998779296875 - ], - "bbox": [ - 87.39996337890625, - 658.6998901367188, - 126.19995880126953, - 679.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "™˜", - "origin": [ - 126.19995880126953, - 664.9998779296875 - ], - "bbox": [ - 126.19995880126953, - 660.2998657226562, - 135.09996032714844, - 678.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "H«¬©FÇ?¥/£\u001c¨", - "origin": [ - 135.09996032714844, - 664.9998779296875 - ], - "bbox": [ - 135.09996032714844, - 658.6998901367188, - 166.59994506835938, - 679.099853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09996032714844, - 658.6998901367188, - 166.59994506835938, - 679.099853515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Tq�", - "origin": [ - 178.89996337890625, - 664.9998779296875 - ], - "bbox": [ - 178.89996337890625, - 658.9998779296875, - 182.09996032714844, - 678.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "o£%ø?\u00194§F¨g6)°±Åb©\u001a«-¤", - "origin": [ - 182.09996032714844, - 664.9998779296875 - ], - "bbox": [ - 182.09996032714844, - 658.6998901367188, - 241.5999755859375, - 679.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×Xx[", - "origin": [ - 241.5999755859375, - 664.9998779296875 - ], - "bbox": [ - 241.5999755859375, - 658.9998779296875, - 249.8999786376953, - 678.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 178.89996337890625, - 658.6998901367188, - 249.8999786376953, - 679.099853515625 - ] - } - ] - }, - { - "number": 62, - "type": 0, - "bbox": [ - 82.69995880126953, - 672.1998901367188, - 250.19993591308594, - 692.599853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " c¡", - "origin": [ - 82.69995880126953, - 678.4998779296875 - ], - "bbox": [ - 82.69995880126953, - 672.4998779296875, - 87.29995727539062, - 691.6998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�8wÓ~£\u001c©/ÔõÈe¥/È[\u001bª\u0019%5u«¬£9©‰³R6[Ê-Æ\u001cÈ)5u«-²?§F6", - "origin": [ - 87.29995727539062, - 678.4998779296875 - ], - "bbox": [ - 87.29995727539062, - 672.1998901367188, - 207.9999542236328, - 692.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÊTy<", - "origin": [ - 207.9999542236328, - 678.4998779296875 - ], - "bbox": [ - 207.9999542236328, - 672.4998779296875, - 219.79994201660156, - 691.6998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n§F«Y¤7¤76", - "origin": [ - 219.79994201660156, - 678.4998779296875 - ], - "bbox": [ - 219.79994201660156, - 672.1998901367188, - 241.2999267578125, - 692.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cX�[", - "origin": [ - 241.2999267578125, - 678.4998779296875 - ], - "bbox": [ - 241.2999267578125, - 672.4998779296875, - 250.19993591308594, - 691.6998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69995880126953, - 672.1998901367188, - 250.19993591308594, - 692.599853515625 - ] - } - ] - }, - { - "number": 64, - "type": 0, - "bbox": [ - 82.69995880126953, - 685.89990234375, - 135.99996948242188, - 706.2998657226562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |Ä", - "origin": [ - 82.69995880126953, - 692.1998901367188 - ], - "bbox": [ - 82.69995880126953, - 686.1998901367188, - 87.59996032714844, - 705.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8wÓ \u00194©\u001a\u00199¥F\u0019", - "origin": [ - 87.59996032714844, - 692.1998901367188 - ], - "bbox": [ - 87.59996032714844, - 685.89990234375, - 130.49996948242188, - 706.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"[", - "origin": [ - 130.49996948242188, - 692.1998901367188 - ], - "bbox": [ - 130.49996948242188, - 686.1998901367188, - 135.99996948242188, - 705.39990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69995880126953, - 685.89990234375, - 135.99996948242188, - 706.2998657226562 - ] - } - ] - }, - { - "number": 66, - "type": 0, - "bbox": [ - 88.79995727539062, - 699.4999389648438, - 158.79994201660156, - 719.89990234375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "5bÐF«-6[©Ý¥;¯", - "origin": [ - 88.79995727539062, - 705.7999267578125 - ], - "bbox": [ - 88.79995727539062, - 699.4999389648438, - 123.79996490478516, - 719.89990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.79995727539062, - 699.4999389648438, - 123.79996490478516, - 719.89990234375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194§/5u\u001b76e¤[ - ¬ ", - "origin": [ - 126.09996032714844, - 705.7999267578125 - ], - "bbox": [ - 126.09996032714844, - 699.4999389648438, - 158.79994201660156, - 719.89990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.09996032714844, - 699.4999389648438, - 158.79994201660156, - 719.89990234375 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 72.49995422363281, - 730.1998901367188, - 202.19993591308594, - 750.599853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "º!¾\n¼¿žô–\u000e¾?—H–™w¼", - "origin": [ - 72.49995422363281, - 736.4998779296875 - ], - "bbox": [ - 72.49995422363281, - 730.1998901367188, - 139.39996337890625, - 750.599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49995422363281, - 730.1998901367188, - 139.39996337890625, - 750.599853515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "š›", - "origin": [ - 152.09994506835938, - 736.4998779296875 - ], - "bbox": [ - 152.09994506835938, - 730.1998901367188, - 158.49993896484375, - 750.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "jš", - "origin": [ - 158.49993896484375, - 736.4998779296875 - ], - "bbox": [ - 158.49993896484375, - 731.7998657226562, - 167.79994201660156, - 749.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "iœažô¾?˜", - "origin": [ - 167.79994201660156, - 736.4998779296875 - ], - "bbox": [ - 167.79994201660156, - 730.1998901367188, - 193.79994201660156, - 750.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "›–", - "origin": [ - 193.79994201660156, - 736.4998779296875 - ], - "bbox": [ - 193.79994201660156, - 731.7998657226562, - 202.19993591308594, - 749.599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.09994506835938, - 730.1998901367188, - 202.19993591308594, - 750.599853515625 - ] - } - ] - }, - { - "number": 68, - "type": 0, - "bbox": [ - 214.8999481201172, - 732.1998901367188, - 536.4998779296875, - 752.599853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6o¦ªþF6[¨g«-©#¥/£\u001c©F©\u001a6oÊ-\u0019V\u0018w£9¤7«z5u«¬£9©!6[ÿ/\u00199¦15u6s¥F§", - "origin": [ - 214.8999481201172, - 738.4998779296875 - ], - "bbox": [ - 214.8999481201172, - 732.1998901367188, - 373.79998779296875, - 752.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ü�", - "origin": [ - 373.79998779296875, - 738.4998779296875 - ], - "bbox": [ - 373.79998779296875, - 732.4998779296875, - 381.8999938964844, - 751.6998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001b,¥F\u00194©�¤", - "origin": [ - 381.8999938964844, - 738.4998779296875 - ], - "bbox": [ - 381.8999938964844, - 732.1998901367188, - 427.3000183105469, - 752.599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.8999481201172, - 732.1998901367188, - 427.3000183105469, - 752.599853515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Êô¯", - "origin": [ - 433.89996337890625, - 738.4998779296875 - ], - "bbox": [ - 433.89996337890625, - 732.1998901367188, - 437.199951171875, - 752.599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 433.89996337890625, - 732.1998901367188, - 437.199951171875, - 752.599853515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001buÐw£\u001c\u001bu6=¤u¦)6[©�¦)6~¥F6", - "origin": [ - 439.4999694824219, - 738.4998779296875 - ], - "bbox": [ - 439.4999694824219, - 732.1998901367188, - 502.7999267578125, - 752.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1�", - "origin": [ - 502.7999267578125, - 738.4998779296875 - ], - "bbox": [ - 502.7999267578125, - 732.4998779296875, - 509.8999328613281, - 751.6998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001bª¤", - "origin": [ - 509.8999328613281, - 738.4998779296875 - ], - "bbox": [ - 509.8999328613281, - 732.1998901367188, - 536.4998779296875, - 752.599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 439.4999694824219, - 732.1998901367188, - 536.4998779296875, - 752.599853515625 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 72.29995727539062, - 745.89990234375, - 389.0998840332031, - 766.2998657226562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6BÊY\u0019^¨g\u00199¦ªþF«-©F6B²9§\u001a«m¦)£9©95u«¬6=©?5sÊ-6B¤�«¬576BÏÙ6[Ѕ6[5bʬ6B©F£9¨", - "origin": [ - 72.29995727539062, - 752.1998901367188 - ], - "bbox": [ - 72.29995727539062, - 745.89990234375, - 274.89996337890625, - 766.2998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29995727539062, - 745.89990234375, - 274.89996337890625, - 766.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/§", - "origin": [ - 286.49993896484375, - 752.1998901367188 - ], - "bbox": [ - 286.49993896484375, - 745.89990234375, - 291.8999328613281, - 766.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017�", - "origin": [ - 291.8999328613281, - 752.1998901367188 - ], - "bbox": [ - 291.8999328613281, - 746.1998901367188, - 300.6999206542969, - 765.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001bb²?§F«;Æ%\u0019gå[57\u001bu6VÊ-§K ", - "origin": [ - 300.6999206542969, - 752.1998901367188 - ], - "bbox": [ - 300.6999206542969, - 745.89990234375, - 389.0998840332031, - 766.2998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.49993896484375, - 745.89990234375, - 389.0998840332031, - 766.2998657226562 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgܝÁ\u001aöyžyØe¾\nØ!Á9ûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 67, - "type": 0, - "bbox": [ - 72.49995422363281, - 730.1998901367188, - 202.19993591308594, - 750.599853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "º!¾\n¼¿žô–\u000e¾?—H–™w¼", - "origin": [ - 72.49995422363281, - 736.4998779296875 - ], - "bbox": [ - 72.49995422363281, - 730.1998901367188, - 139.39996337890625, - 750.599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49995422363281, - 730.1998901367188, - 139.39996337890625, - 750.599853515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "š›", - "origin": [ - 152.09994506835938, - 736.4998779296875 - ], - "bbox": [ - 152.09994506835938, - 730.1998901367188, - 158.49993896484375, - 750.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "jš", - "origin": [ - 158.49993896484375, - 736.4998779296875 - ], - "bbox": [ - 158.49993896484375, - 731.7998657226562, - 167.79994201660156, - 749.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "iœažô¾?˜", - "origin": [ - 167.79994201660156, - 736.4998779296875 - ], - "bbox": [ - 167.79994201660156, - 730.1998901367188, - 193.79994201660156, - 750.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "›–", - "origin": [ - 193.79994201660156, - 736.4998779296875 - ], - "bbox": [ - 193.79994201660156, - 731.7998657226562, - 202.19993591308594, - 749.599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.09994506835938, - 730.1998901367188, - 202.19993591308594, - 750.599853515625 - ] - } - ], - "tag": "footer" - }, - { - "number": 68, - "type": 0, - "bbox": [ - 214.8999481201172, - 732.1998901367188, - 536.4998779296875, - 752.599853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6o¦ªþF6[¨g«-©#¥/£\u001c©F©\u001a6oÊ-\u0019V\u0018w£9¤7«z5u«¬£9©!6[ÿ/\u00199¦15u6s¥F§", - "origin": [ - 214.8999481201172, - 738.4998779296875 - ], - "bbox": [ - 214.8999481201172, - 732.1998901367188, - 373.79998779296875, - 752.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ü�", - "origin": [ - 373.79998779296875, - 738.4998779296875 - ], - "bbox": [ - 373.79998779296875, - 732.4998779296875, - 381.8999938964844, - 751.6998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001b,¥F\u00194©�¤", - "origin": [ - 381.8999938964844, - 738.4998779296875 - ], - "bbox": [ - 381.8999938964844, - 732.1998901367188, - 427.3000183105469, - 752.599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.8999481201172, - 732.1998901367188, - 427.3000183105469, - 752.599853515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Êô¯", - "origin": [ - 433.89996337890625, - 738.4998779296875 - ], - "bbox": [ - 433.89996337890625, - 732.1998901367188, - 437.199951171875, - 752.599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 433.89996337890625, - 732.1998901367188, - 437.199951171875, - 752.599853515625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001buÐw£\u001c\u001bu6=¤u¦)6[©�¦)6~¥F6", - "origin": [ - 439.4999694824219, - 738.4998779296875 - ], - "bbox": [ - 439.4999694824219, - 732.1998901367188, - 502.7999267578125, - 752.599853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1�", - "origin": [ - 502.7999267578125, - 738.4998779296875 - ], - "bbox": [ - 502.7999267578125, - 732.4998779296875, - 509.8999328613281, - 751.6998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001bª¤", - "origin": [ - 509.8999328613281, - 738.4998779296875 - ], - "bbox": [ - 509.8999328613281, - 732.1998901367188, - 536.4998779296875, - 752.599853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 439.4999694824219, - 732.1998901367188, - 536.4998779296875, - 752.599853515625 - ] - } - ], - "tag": "footer" - }, - { - "number": 69, - "type": 0, - "bbox": [ - 72.29995727539062, - 745.89990234375, - 389.0998840332031, - 766.2998657226562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6BÊY\u0019^¨g\u00199¦ªþF«-©F6B²9§\u001a«m¦)£9©95u«¬6=©?5sÊ-6B¤�«¬576BÏÙ6[Ѕ6[5bʬ6B©F£9¨", - "origin": [ - 72.29995727539062, - 752.1998901367188 - ], - "bbox": [ - 72.29995727539062, - 745.89990234375, - 274.89996337890625, - 766.2998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29995727539062, - 745.89990234375, - 274.89996337890625, - 766.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/§", - "origin": [ - 286.49993896484375, - 752.1998901367188 - ], - "bbox": [ - 286.49993896484375, - 745.89990234375, - 291.8999328613281, - 766.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017�", - "origin": [ - 291.8999328613281, - 752.1998901367188 - ], - "bbox": [ - 291.8999328613281, - 746.1998901367188, - 300.6999206542969, - 765.39990234375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001bb²?§F«;Æ%\u0019gå[57\u001bu6VÊ-§K ", - "origin": [ - 300.6999206542969, - 752.1998901367188 - ], - "bbox": [ - 300.6999206542969, - 745.89990234375, - 389.0998840332031, - 766.2998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.49993896484375, - 745.89990234375, - 389.0998840332031, - 766.2998657226562 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 8, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_9": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 136.49998474121094, - 99.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "•", - "origin": [ - 72.29998779296875, - 85.0 - ], - "bbox": [ - 72.29998779296875, - 80.30000305175781, - 72.29998779296875, - 98.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ɖ", - "origin": [ - 72.29998779296875, - 85.0 - ], - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 81.09999084472656, - 99.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 81.09999084472656, - 99.0999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¾9ÛK¾\n¼òóiöy¾", - "origin": [ - 91.29998779296875, - 85.0 - ], - "bbox": [ - 91.29998779296875, - 78.69999694824219, - 127.09998321533203, - 99.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "œ–", - "origin": [ - 127.09998321533203, - 85.0 - ], - "bbox": [ - 127.09998321533203, - 80.30000305175781, - 136.49998474121094, - 98.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.29998779296875, - 78.69999694824219, - 136.49998474121094, - 99.0999984741211 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 148.99998474121094, - 80.69999694824219, - 414.0999755859375, - 101.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ë,\u001bu6[©F£9©\u001a¤H8", - "origin": [ - 148.99998474121094, - 87.0 - ], - "bbox": [ - 148.99998474121094, - 80.69999694824219, - 187.99998474121094, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¡/Ÿ\nŸH´", - "origin": [ - 187.99998474121094, - 87.0 - ], - "bbox": [ - 187.99998474121094, - 81.0, - 209.2999725341797, - 100.19999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 148.99998474121094, - 80.69999694824219, - 209.2999725341797, - 101.0999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "µ€£H£|¶\n¶\n¶1·y¶g¹&·\u001bºŠ»H¼g£", - "origin": [ - 221.39999389648438, - 87.0 - ], - "bbox": [ - 221.39999389648438, - 81.0, - 288.6000061035156, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 288.6000061035156, - 87.0 - ], - "bbox": [ - 288.6000061035156, - 80.69999694824219, - 293.6000061035156, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½/£F½", - "origin": [ - 293.6000061035156, - 87.0 - ], - "bbox": [ - 293.6000061035156, - 81.0, - 309.29998779296875, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ë", - "origin": [ - 309.29998779296875, - 87.0 - ], - "bbox": [ - 309.29998779296875, - 80.69999694824219, - 314.5, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¾g¿c¡/ŸYÀ.Á|Â\"ÃH£HÄFÅ/ºFÆ\nŸ…·y¡\nŸ|À�Á", - "origin": [ - 314.5, - 87.0 - ], - "bbox": [ - 314.5, - 81.0, - 414.0999755859375, - 100.19999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.39999389648438, - 80.69999694824219, - 414.0999755859375, - 101.0999984741211 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.49998474121094, - 99.49998474121094, - 534.7000122070312, - 119.89998626708984 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.49998474121094, - 105.79998779296875 - ], - "bbox": [ - 72.49998474121094, - 99.79998779296875, - 72.49998474121094, - 118.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©‚Æ\u001c£9«z5¸²?§F6cÊ-6c¤76[\u001buÆ?«Y¦)6c¤76[\u001bª\u0019ɧF©¿¤76[\u001buÆ\u001c6[§\u001a\u001bBÏ�6=Ð", - "origin": [ - 72.49998474121094, - 105.79998779296875 - ], - "bbox": [ - 72.49998474121094, - 99.49998474121094, - 259.199951171875, - 119.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«T˜¡/Ÿ\nŸŠ´gX�[", - "origin": [ - 259.199951171875, - 105.79998779296875 - ], - "bbox": [ - 259.199951171875, - 99.79998779296875, - 298.1999206542969, - 118.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K²9§\u001a«~¤76#©F£\u001c¨g¨g6", - "origin": [ - 298.1999206542969, - 105.79998779296875 - ], - "bbox": [ - 298.1999206542969, - 99.49998474121094, - 361.2998962402344, - 119.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶\n¶H¶1·¸¶g¹&·;ºŠ»\n¼", - "origin": [ - 361.2998962402344, - 105.79998779296875 - ], - "bbox": [ - 361.2998962402344, - 99.79998779296875, - 417.19989013671875, - 118.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…6)5!²?§F6#Ê-6\u000f¦ªþF6=¨g«¬©", - "origin": [ - 417.19989013671875, - 105.79998779296875 - ], - "bbox": [ - 417.19989013671875, - 99.49998474121094, - 494.0998840332031, - 119.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017Ë", - "origin": [ - 494.0998840332031, - 105.79998779296875 - ], - "bbox": [ - 494.0998840332031, - 99.79998779296875, - 502.8998718261719, - 118.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤u²?§K¯", - "origin": [ - 502.8998718261719, - 105.79998779296875 - ], - "bbox": [ - 502.8998718261719, - 99.49998474121094, - 527.4998779296875, - 119.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49998474121094, - 99.49998474121094, - 527.4998779296875, - 119.89998626708984 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c§", - "origin": [ - 529.7000122070312, - 105.79998779296875 - ], - "bbox": [ - 529.7000122070312, - 99.49998474121094, - 534.7000122070312, - 119.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 529.7000122070312, - 99.49998474121094, - 534.7000122070312, - 119.89998626708984 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 72.10000610351562, - 113.09996032714844, - 252.8000030517578, - 133.49996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 72.10000610351562, - 119.39996337890625 - ], - "bbox": [ - 72.10000610351562, - 113.39996337890625, - 72.10000610351562, - 132.59996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001b", - "origin": [ - 72.10000610351562, - 119.39996337890625 - ], - "bbox": [ - 72.10000610351562, - 113.09996032714844, - 94.60000610351562, - 133.49996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�ÄFÅgºFÆ/Ÿ7·¸¡/Ÿ|À.Á", - "origin": [ - 94.60000610351562, - 119.39996337890625 - ], - "bbox": [ - 94.60000610351562, - 113.39996337890625, - 149.6999969482422, - 132.59996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "H6=¤�5", - "origin": [ - 149.6999969482422, - 119.39996337890625 - ], - "bbox": [ - 149.6999969482422, - 113.09996032714844, - 165.6999969482422, - 133.49996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.10000610351562, - 113.09996032714844, - 165.6999969482422, - 133.49996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "£", - "origin": [ - 173.30001831054688, - 119.39996337890625 - ], - "bbox": [ - 173.30001831054688, - 113.39996337890625, - 173.30001831054688, - 132.59996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 173.30001831054688, - 119.39996337890625 - ], - "bbox": [ - 173.30001831054688, - 113.09996032714844, - 178.30001831054688, - 133.49996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½\"£F½", - "origin": [ - 178.30001831054688, - 119.39996337890625 - ], - "bbox": [ - 178.30001831054688, - 113.39996337890625, - 194.1000213623047, - 132.59996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 194.1000213623047, - 119.39996337890625 - ], - "bbox": [ - 194.1000213623047, - 113.09996032714844, - 199.4000244140625, - 133.49996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¾�¿\\¡/Ÿ|À.ÁFÂ/Ã/£", - "origin": [ - 199.4000244140625, - 119.39996337890625 - ], - "bbox": [ - 199.4000244140625, - 113.39996337890625, - 247.1999969482422, - 132.59996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a ", - "origin": [ - 247.1999969482422, - 119.39996337890625 - ], - "bbox": [ - 247.1999969482422, - 113.09996032714844, - 252.8000030517578, - 133.49996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.30001831054688, - 113.09996032714844, - 252.8000030517578, - 133.49996948242188 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 72.40001678466797, - 143.7999725341797, - 225.90003967285156, - 164.19998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.40001678466797, - 150.0999755859375 - ], - "bbox": [ - 72.40001678466797, - 143.7999725341797, - 72.40001678466797, - 164.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.40001678466797, - 150.0999755859375 - ], - "bbox": [ - 72.40001678466797, - 144.0999755859375, - 78.60001373291016, - 163.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.60001373291016, - 150.0999755859375 - ], - "bbox": [ - 78.60001373291016, - 143.7999725341797, - 81.80001068115234, - 164.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.80001068115234, - 150.0999755859375 - ], - "bbox": [ - 81.80001068115234, - 144.0999755859375, - 87.60001373291016, - 163.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "YŸ", - "origin": [ - 87.60001373291016, - 150.0999755859375 - ], - "bbox": [ - 87.60001373291016, - 143.7999725341797, - 90.50001525878906, - 164.19998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.40001678466797, - 143.7999725341797, - 90.50001525878906, - 164.19998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÖRâ¬ÁFš˜%¾\nØ=Øe¾Ýš×â-›–ÌÁF›—[˜%¾�Ø=žy—=¾", - "origin": [ - 107.30001831054688, - 150.0999755859375 - ], - "bbox": [ - 107.30001831054688, - 143.7999725341797, - 225.90003967285156, - 164.19998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.30001831054688, - 143.7999725341797, - 225.90003967285156, - 164.19998168945312 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.20001220703125, - 170.99998474121094, - 430.4999084472656, - 191.39999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi£\u001c§F\u001bo\u0018w£\u001c«-©?576=\u001boÆ\u001c6[\u001bª¤ §F©Ý\u00194§/5u\u001b76B¤7«z5u6M²?§F6Hʬ6M¤7«¬6=©\u001a¤", - "origin": [ - 72.20001220703125, - 177.29998779296875 - ], - "bbox": [ - 72.20001220703125, - 170.99998474121094, - 255.8999786376953, - 191.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 255.8999786376953, - 177.29998779296875 - ], - "bbox": [ - 255.8999786376953, - 171.29998779296875, - 260.3999938964844, - 190.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/«¬Êm¤7§", - "origin": [ - 260.3999938964844, - 177.29998779296875 - ], - "bbox": [ - 260.3999938964844, - 170.99998474121094, - 278.6000061035156, - 191.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/>", - "origin": [ - 278.6000061035156, - 177.29998779296875 - ], - "bbox": [ - 278.6000061035156, - 171.29998779296875, - 284.0, - 190.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "g5b\u0018FÊY\u0019\u001c¦[6[\u001bb¤7£\u001c©…Å", - "origin": [ - 284.0, - 177.29998779296875 - ], - "bbox": [ - 284.0, - 170.99998474121094, - 346.8999328613281, - 191.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 346.8999328613281, - 177.29998779296875 - ], - "bbox": [ - 346.8999328613281, - 171.29998779296875, - 354.2999267578125, - 190.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b¶ò¥F\u0019\u001c©\u001a¤sÊY\u0019!Ð�\u00194Ê-«-¤76\u001c ", - "origin": [ - 354.2999267578125, - 177.29998779296875 - ], - "bbox": [ - 354.2999267578125, - 170.99998474121094, - 430.4999084472656, - 191.39999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 170.99998474121094, - 430.4999084472656, - 191.39999389648438 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 78.80001068115234, - 189.7999725341797, - 129.90000915527344, - 210.19998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.80001068115234, - 196.0999755859375 - ], - "bbox": [ - 78.80001068115234, - 189.7999725341797, - 129.90000915527344, - 210.19998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80001068115234, - 189.7999725341797, - 129.90000915527344, - 210.19998168945312 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.5, - 215.40000915527344, - 256.20001220703125, - 235.80001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 221.70001220703125 - ], - "bbox": [ - 72.5, - 215.70001220703125, - 72.5, - 234.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 72.5, - 221.70001220703125 - ], - "bbox": [ - 72.5, - 215.40000915527344, - 77.5, - 235.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«¡/»\"ßHà", - "origin": [ - 77.5, - 221.70001220703125 - ], - "bbox": [ - 77.5, - 215.70001220703125, - 103.9000015258789, - 234.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%$", - "origin": [ - 103.9000015258789, - 221.70001220703125 - ], - "bbox": [ - 103.9000015258789, - 217.00001525878906, - 115.0999984741211, - 234.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v¡/Ÿ\nŸŠ´1µ€£\n£|¶H¶H¶1·¸¶/¹&·;ºF»H¼g£", - "origin": [ - 115.0999984741211, - 221.70001220703125 - ], - "bbox": [ - 115.0999984741211, - 215.70001220703125, - 209.1999969482422, - 234.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F$", - "origin": [ - 209.1999969482422, - 221.70001220703125 - ], - "bbox": [ - 209.1999969482422, - 217.00001525878906, - 215.0, - 234.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cä", - "origin": [ - 215.0, - 221.70001220703125 - ], - "bbox": [ - 215.0, - 215.70001220703125, - 219.60000610351562, - 234.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�ˆ", - "origin": [ - 219.60000610351562, - 221.70001220703125 - ], - "bbox": [ - 219.60000610351562, - 217.00001525878906, - 224.5, - 234.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"¹Š¾/Ý\n£", - "origin": [ - 224.5, - 221.70001220703125 - ], - "bbox": [ - 224.5, - 215.70001220703125, - 245.8000030517578, - 234.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 245.8000030517578, - 221.70001220703125 - ], - "bbox": [ - 245.8000030517578, - 215.40000915527344, - 250.8000030517578, - 235.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä", - "origin": [ - 250.8000030517578, - 221.70001220703125 - ], - "bbox": [ - 250.8000030517578, - 215.70001220703125, - 256.20001220703125, - 234.90000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 215.40000915527344, - 256.20001220703125, - 235.80001831054688 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 72.30000305175781, - 241.1000213623047, - 125.80000305175781, - 261.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 247.4000244140625 - ], - "bbox": [ - 72.30000305175781, - 241.1000213623047, - 104.20000457763672, - 261.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰j~}\"t", - "origin": [ - 104.20000457763672, - 247.4000244140625 - ], - "bbox": [ - 104.20000457763672, - 241.4000244140625, - 125.80000305175781, - 260.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 241.1000213623047, - 125.80000305175781, - 261.5000305175781 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 72.4000015258789, - 271.800048828125, - 218.30003356933594, - 292.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 278.10003662109375 - ], - "bbox": [ - 72.4000015258789, - 271.800048828125, - 72.4000015258789, - 292.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 278.10003662109375 - ], - "bbox": [ - 72.4000015258789, - 272.10003662109375, - 78.5999984741211, - 291.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.5999984741211, - 278.10003662109375 - ], - "bbox": [ - 78.5999984741211, - 271.800048828125, - 81.79999542236328, - 292.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.79999542236328, - 278.10003662109375 - ], - "bbox": [ - 81.79999542236328, - 272.10003662109375, - 87.5999984741211, - 291.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-Ä", - "origin": [ - 87.5999984741211, - 278.10003662109375 - ], - "bbox": [ - 87.5999984741211, - 271.800048828125, - 90.4000015258789, - 292.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 271.800048828125, - 90.4000015258789, - 292.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö~¾\nØ^Á\u001ašm˜%¾\nØ=Øe¾\nØgš¾", - "origin": [ - 107.30000305175781, - 278.10003662109375 - ], - "bbox": [ - 107.30000305175781, - 271.800048828125, - 178.60003662109375, - 292.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "Rš", - "origin": [ - 178.60003662109375, - 278.10003662109375 - ], - "bbox": [ - 178.60003662109375, - 273.4000244140625, - 187.60003662109375, - 291.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "iœažô¾?˜aØ", - "origin": [ - 187.60003662109375, - 278.10003662109375 - ], - "bbox": [ - 187.60003662109375, - 271.800048828125, - 218.30003356933594, - 292.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.30000305175781, - 271.800048828125, - 218.30003356933594, - 292.2000427246094 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 72.5, - 299.00006103515625, - 536.300048828125, - 319.4000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.5, - 305.300048828125 - ], - "bbox": [ - 72.5, - 299.300048828125, - 72.5, - 318.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©\u000f\u0018w6[§F5o\u0019\u001c§\u001a¤u¤�«+\u0018w£\u001c«-©95u6[\u001bo¤7§F\u001bs§F©", - "origin": [ - 72.5, - 305.300048828125 - ], - "bbox": [ - 72.5, - 299.00006103515625, - 192.09999084472656, - 319.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ò�", - "origin": [ - 192.09999084472656, - 305.300048828125 - ], - "bbox": [ - 192.09999084472656, - 299.300048828125, - 200.59999084472656, - 318.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþ\u001a«¬6=\u001bs²?§F«;6e¤\\5s\u0018F\u001buÈ=¤76[©?5o¤�§F\u001bsÊ", - "origin": [ - 200.59999084472656, - 305.300048828125 - ], - "bbox": [ - 200.59999084472656, - 299.00006103515625, - 313.5, - 319.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 299.00006103515625, - 313.5, - 319.4000549316406 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£9\u001bu¥F«¬©\u001a\u00194576=§F\u001b ²?§F«;\u00199¦[¦)§\u001a6[«-ʬÊ-6\u001eÊ-6H¤�«¬576", - "origin": [ - 319.0000305175781, - 305.300048828125 - ], - "bbox": [ - 319.0000305175781, - 299.00006103515625, - 444.9000244140625, - 319.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÊT", - "origin": [ - 444.9000244140625, - 305.300048828125 - ], - "bbox": [ - 444.9000244140625, - 299.300048828125, - 453.3000183105469, - 318.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y¦[6[ÊY\u0019!¤76[\u001b75o߸\u001bu6[Ê-«¬6=\u001b~Ê-6=¤", - "origin": [ - 453.3000183105469, - 305.300048828125 - ], - "bbox": [ - 453.3000183105469, - 299.00006103515625, - 536.300048828125, - 319.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 319.0000305175781, - 299.00006103515625, - 536.300048828125, - 319.4000549316406 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.20002746582031, - 312.60003662109375, - 180.2000274658203, - 333.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001cÇ\u001c6=¤s¥/§Ý¤7«z5u6B6[©?57\u001bu6)°", - "origin": [ - 72.20002746582031, - 318.9000244140625 - ], - "bbox": [ - 72.20002746582031, - 312.60003662109375, - 153.90000915527344, - 333.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20002746582031, - 312.60003662109375, - 153.90000915527344, - 333.0000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[Ê-Ê-6=¤", - "origin": [ - 157.4000244140625, - 318.9000244140625 - ], - "bbox": [ - 157.4000244140625, - 312.60003662109375, - 171.9000244140625, - 333.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×X", - "origin": [ - 171.9000244140625, - 318.9000244140625 - ], - "bbox": [ - 171.9000244140625, - 312.9000244140625, - 176.00003051757812, - 332.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 176.00003051757812, - 318.9000244140625 - ], - "bbox": [ - 176.00003051757812, - 312.60003662109375, - 180.2000274658203, - 333.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.4000244140625, - 312.60003662109375, - 180.2000274658203, - 333.0000305175781 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.3000259399414, - 331.4000244140625, - 535.400146484375, - 351.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶,¯", - "origin": [ - 72.3000259399414, - 337.70001220703125 - ], - "bbox": [ - 72.3000259399414, - 331.4000244140625, - 79.0000228881836, - 351.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.3000259399414, - 331.4000244140625, - 79.0000228881836, - 351.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6Ù¥/6=¤É¤7£\u001cÊ-§/57«-£\u001c©\u001a¤\u000f6=¤�5‰¥/6\u000eÔy\u00194«-\u001b76Ù¤�ø/¤�57È[¨#\u0019457«Y²9§\u001a6[¨g6[©?5\u000f§F©\u001a6\u000e\u001buÈ)ÔõÈ[\u001bu6[©�¦)6\u000eßòÊ", - "origin": [ - 81.20002746582031, - 337.70001220703125 - ], - "bbox": [ - 81.20002746582031, - 331.4000244140625, - 375.4000244140625, - 351.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.20002746582031, - 331.4000244140625, - 375.4000244140625, - 351.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c¥/\u001bu6=¤u¤�6�¦)£\u001c¨g\u0018FÊ-á)5u6\u000e¥/§", - "origin": [ - 381.10003662109375, - 337.70001220703125 - ], - "bbox": [ - 381.10003662109375, - 331.4000244140625, - 465.89996337890625, - 351.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 381.10003662109375, - 331.4000244140625, - 465.89996337890625, - 351.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7«¬576", - "origin": [ - 476.300048828125, - 337.70001220703125 - ], - "bbox": [ - 476.300048828125, - 331.4000244140625, - 486.800048828125, - 351.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 486.800048828125, - 337.70001220703125 - ], - "bbox": [ - 486.800048828125, - 331.70001220703125, - 491.800048828125, - 350.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " ¨#\u00194«Y¤‰¦[6[ÊY\u0019", - "origin": [ - 491.800048828125, - 337.70001220703125 - ], - "bbox": [ - 491.800048828125, - 331.4000244140625, - 535.400146484375, - 351.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 476.300048828125, - 331.4000244140625, - 535.400146484375, - 351.8000183105469 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 72.300048828125, - 345.0000305175781, - 534.699951171875, - 365.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6=Æ?«-6[©?5MÆ\n«¬576g\u0018�È=©F«-ÐFʬ69 ¶×¯", - "origin": [ - 72.300048828125, - 351.3000183105469 - ], - "bbox": [ - 72.300048828125, - 345.0000305175781, - 172.80006408691406, - 365.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.300048828125, - 345.0000305175781, - 172.80006408691406, - 365.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c§/57\u001bu6#¤�£9ʬ§/5u«¬£9©", - "origin": [ - 175.00006103515625, - 351.3000183105469 - ], - "bbox": [ - 175.00006103515625, - 345.0000305175781, - 230.5000457763672, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 230.5000457763672, - 351.3000183105469 - ], - "bbox": [ - 230.5000457763672, - 345.3000183105469, - 236.6000518798828, - 364.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";6=¤�5M¥/6c¥/£9©F©F6[\u001bBÊ-6c¦ªþF6=¨^«-©ÙÆ\u001c6[\u001bª¤HÊ-6", - "origin": [ - 236.6000518798828, - 351.3000183105469 - ], - "bbox": [ - 236.6000518798828, - 345.0000305175781, - 376.20001220703125, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ü�", - "origin": [ - 376.20001220703125, - 351.3000183105469 - ], - "bbox": [ - 376.20001220703125, - 345.3000183105469, - 384.3000183105469, - 364.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001bB\u0018\u001a\u00194\u001bB\u001bª\u00194\u0018\u001a\u0018�£9\u001b�5MßÉÊ-\u0019É\u0018w£9¤7«z5u«¬£9©ò¥/§", - "origin": [ - 384.3000183105469, - 351.3000183105469 - ], - "bbox": [ - 384.3000183105469, - 345.0000305175781, - 534.699951171875, - 365.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.00006103515625, - 345.0000305175781, - 534.699951171875, - 365.4000244140625 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.10005950927734, - 358.7000427246094, - 169.00006103515625, - 379.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 72.10005950927734, - 365.0000305175781 - ], - "bbox": [ - 72.10005950927734, - 359.0000305175781, - 72.10005950927734, - 378.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001bb\u00199¦15u§F6[Ê-ʬ6=¨g6[©?5oʬ§K ", - "origin": [ - 72.10005950927734, - 365.0000305175781 - ], - "bbox": [ - 72.10005950927734, - 358.7000427246094, - 169.00006103515625, - 379.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.10005950927734, - 358.7000427246094, - 169.00006103515625, - 379.10003662109375 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 78.80005645751953, - 377.4000549316406, - 534.7000122070312, - 397.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bH6)ÿ/6=¨^\u0018\u001aʬ6", - "origin": [ - 78.80005645751953, - 383.7000427246094 - ], - "bbox": [ - 78.80005645751953, - 377.4000549316406, - 122.10005950927734, - 397.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 122.10005950927734, - 383.7000427246094 - ], - "bbox": [ - 122.10005950927734, - 377.7000427246094, - 127.20005798339844, - 396.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+¤7«iÆ\u001c£9§\u001a¤Rå[576e¤\u001e6=©\u000e5u\u001bu\u0019\u001c«¬©�¥/6#¦)£\u001c©�¤�§Fʬ576=\u001b7Ê-6", - "origin": [ - 127.20005798339844, - 383.7000427246094 - ], - "bbox": [ - 127.20005798339844, - 377.4000549316406, - 281.6000061035156, - 397.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "C�", - "origin": [ - 281.6000061035156, - 383.7000427246094 - ], - "bbox": [ - 281.6000061035156, - 377.7000427246094, - 289.5, - 396.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001b", - "origin": [ - 289.5, - 383.7000427246094 - ], - "bbox": [ - 289.5, - 377.4000549316406, - 312.1000061035156, - 397.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ð£\\ÀgÆ\u0011á/žH F£FŸ\"ºg \u0013·y¡/Ÿ|À.Á", - "origin": [ - 312.1000061035156, - 383.7000427246094 - ], - "bbox": [ - 312.1000061035156, - 377.7000427246094, - 394.0, - 396.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸6)5B²9§\u001a6!Æ9£\u001c§\u001a¤\u001eÆ\u001c£9§Fʬ6", - "origin": [ - 394.0, - 383.7000427246094 - ], - "bbox": [ - 394.0, - 377.4000549316406, - 474.4000244140625, - 397.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\‡", - "origin": [ - 474.4000244140625, - 383.7000427246094 - ], - "bbox": [ - 474.4000244140625, - 377.7000427246094, - 478.9000244140625, - 396.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸Ôy\u0019\u001c«¬\u001bu6¸§\u001a©�Ê-«¬6=©", - "origin": [ - 478.9000244140625, - 383.7000427246094 - ], - "bbox": [ - 478.9000244140625, - 377.4000549316406, - 534.7000122070312, - 397.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80005645751953, - 377.4000549316406, - 534.7000122070312, - 397.800048828125 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 72.20005798339844, - 391.1000671386719, - 513.300048828125, - 411.50006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ\u001c6=\u001bu¤", - "origin": [ - 72.20005798339844, - 397.4000549316406 - ], - "bbox": [ - 72.20005798339844, - 391.1000671386719, - 85.70005798339844, - 411.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*£cÀgÆ\u0011á\nžH Š£FŸ� c¡gÄfž", - "origin": [ - 85.70005798339844, - 397.4000549316406 - ], - "bbox": [ - 85.70005798339844, - 391.4000549316406, - 151.4000701904297, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\fO", - "origin": [ - 151.4000701904297, - 397.4000549316406 - ], - "bbox": [ - 151.4000701904297, - 392.7000427246094, - 156.10006713867188, - 410.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ºFâ�á", - "origin": [ - 156.10006713867188, - 397.4000549316406 - ], - "bbox": [ - 156.10006713867188, - 391.4000549316406, - 172.4000701904297, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�O", - "origin": [ - 172.4000701904297, - 397.4000549316406 - ], - "bbox": [ - 172.4000701904297, - 392.7000427246094, - 177.2000732421875, - 410.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hã\"£IÅ.žYºŠ¼\n»/Ä|´H¡/ã&·¸¡/ŸIÀ\u0011Á\"[", - "origin": [ - 177.2000732421875, - 397.4000549316406 - ], - "bbox": [ - 177.2000732421875, - 391.4000549316406, - 266.6000671386719, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%«-Êm¤�§", - "origin": [ - 266.6000671386719, - 397.4000549316406 - ], - "bbox": [ - 266.6000671386719, - 391.1000671386719, - 284.2000427246094, - 411.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\">", - "origin": [ - 284.2000427246094, - 397.4000549316406 - ], - "bbox": [ - 284.2000427246094, - 391.4000549316406, - 289.7000427246094, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^5R¥F6\u001eÔy\u0019\u001c«¬\u001bu6B\u00194\u0018F\u0018w6[ʐß", - "origin": [ - 289.7000427246094, - 397.4000549316406 - ], - "bbox": [ - 289.7000427246094, - 391.1000671386719, - 367.9000244140625, - 411.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üŸ� Y¡gÄfž", - "origin": [ - 367.9000244140625, - 397.4000549316406 - ], - "bbox": [ - 367.9000244140625, - 391.4000549316406, - 397.800048828125, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u0019O", - "origin": [ - 397.800048828125, - 397.4000549316406 - ], - "bbox": [ - 397.800048828125, - 392.7000427246094, - 402.4000549316406, - 410.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ºŠâ�á", - "origin": [ - 402.4000549316406, - 397.4000549316406 - ], - "bbox": [ - 402.4000549316406, - 391.4000549316406, - 418.800048828125, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�O", - "origin": [ - 418.800048828125, - 397.4000549316406 - ], - "bbox": [ - 418.800048828125, - 392.7000427246094, - 423.60003662109375, - 410.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hãg£|Å.ž|ºF¼H»\"ÄF´Š¡/ã7·y¡\nŸ|À.Á", - "origin": [ - 423.60003662109375, - 397.4000549316406 - ], - "bbox": [ - 423.60003662109375, - 391.4000549316406, - 507.9000244140625, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ ", - "origin": [ - 507.9000244140625, - 397.4000549316406 - ], - "bbox": [ - 507.9000244140625, - 391.1000671386719, - 513.300048828125, - 411.50006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20005798339844, - 391.1000671386719, - 513.300048828125, - 411.50006103515625 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 72.40005493164062, - 421.8000793457031, - 228.40005493164062, - 442.2000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.40005493164062, - 428.1000671386719 - ], - "bbox": [ - 72.40005493164062, - 421.8000793457031, - 72.40005493164062, - 442.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.40005493164062, - 428.1000671386719 - ], - "bbox": [ - 72.40005493164062, - 422.1000671386719, - 78.60005187988281, - 441.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.60005187988281, - 428.1000671386719 - ], - "bbox": [ - 78.60005187988281, - 421.8000793457031, - 81.800048828125, - 442.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.800048828125, - 428.1000671386719 - ], - "bbox": [ - 81.800048828125, - 422.1000671386719, - 87.60005187988281, - 441.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¬Þ", - "origin": [ - 87.60005187988281, - 428.1000671386719 - ], - "bbox": [ - 87.60005187988281, - 421.8000793457031, - 90.300048828125, - 442.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.40005493164062, - 421.8000793457031, - 90.300048828125, - 442.2000732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "•", - "origin": [ - 107.30005645751953, - 428.1000671386719 - ], - "bbox": [ - 107.30005645751953, - 423.4000549316406, - 107.30005645751953, - 441.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ɖ¾ÍÁFš˜a¾\nØeØ=¾ÝšÁF–Ø#öyÁ�óÁ", - "origin": [ - 107.30005645751953, - 428.1000671386719 - ], - "bbox": [ - 107.30005645751953, - 421.8000793457031, - 217.1000518798828, - 442.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g\f", - "origin": [ - 217.1000518798828, - 428.1000671386719 - ], - "bbox": [ - 217.1000518798828, - 422.1000671386719, - 222.70005798339844, - 441.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¾", - "origin": [ - 222.70005798339844, - 428.1000671386719 - ], - "bbox": [ - 222.70005798339844, - 421.8000793457031, - 228.40005493164062, - 442.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.30005645751953, - 421.8000793457031, - 228.40005493164062, - 442.2000732421875 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 72.50006103515625, - 449.0000915527344, - 536.2000122070312, - 469.40008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.50006103515625, - 455.3000793457031 - ], - "bbox": [ - 72.50006103515625, - 449.3000793457031, - 72.50006103515625, - 468.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©#\u0018w6[§/5s\u00194§\u001a¤u¤�«FÔy\u00194«-\u001b76b\u001buÈ)ÔõÈ=\u001b76=©\u001a¦)6bßM§F©#\u0018�£9«¬©?5 \u0018F\u001b7Èe¦)«Y¤,¥F\u0019\u001c©\u001a¤,ÊY\u0019B\u0018\u001a\u0019\u001cÇ\u001c6", - "origin": [ - 72.50006103515625, - 455.3000793457031 - ], - "bbox": [ - 72.50006103515625, - 449.0000915527344, - 323.00006103515625, - 469.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 323.00006103515625, - 455.3000793457031 - ], - "bbox": [ - 323.00006103515625, - 449.3000793457031, - 328.00006103515625, - 468.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c\u0018\u001a\u00194\u001b~6)ÿ/6[¨g\u0018FÊ-6R¥F\u0019\u001c©\u001a¤", - "origin": [ - 328.00006103515625, - 455.3000793457031 - ], - "bbox": [ - 328.00006103515625, - 449.0000915527344, - 404.6000061035156, - 469.40008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50006103515625, - 449.0000915527344, - 404.6000061035156, - 469.40008544921875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6R5u\u0019\u001cÐFʬ6\u001e¥/6=¤×¨g\u0019457«-á[\u001bu6b£\u001c§g\u0018w£\u001c§F\u001b", - "origin": [ - 411.2000732421875, - 455.3000793457031 - ], - "bbox": [ - 411.2000732421875, - 449.0000915527344, - 536.2000122070312, - 469.40008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.2000732421875, - 449.0000915527344, - 536.2000122070312, - 469.40008544921875 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 72.2000732421875, - 462.60009765625, - 518.60009765625, - 483.0000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu6[Æ\u001c6=©F«-\u001b 6=©…þ\u001a\u00194§/5b¥;¯", - "origin": [ - 72.2000732421875, - 468.90008544921875 - ], - "bbox": [ - 72.2000732421875, - 462.60009765625, - 148.0000762939453, - 483.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.2000732421875, - 462.60009765625, - 148.0000762939453, - 483.0000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6B\u0018�\u00194Ç\u001c6V5u\u001b7áe¤sʬ£9©FÇ\u001c§F69 /Ëi£\u001c§F\u001bb¦[6[ÊY\u0019", - "origin": [ - 150.2000732421875, - 468.90008544921875 - ], - "bbox": [ - 150.2000732421875, - 462.60009765625, - 282.1000671386719, - 483.0000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"[", - "origin": [ - 282.1000671386719, - 468.90008544921875 - ], - "bbox": [ - 282.1000671386719, - 462.90008544921875, - 287.6000671386719, - 482.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/«-Ê;Ôy\u00194§/5R\u0019aÆ9£\u001c«-\u001b ¥FÈ", - "origin": [ - 287.6000671386719, - 468.90008544921875 - ], - "bbox": [ - 287.6000671386719, - 462.60009765625, - 352.800048828125, - 483.0000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 352.800048828125, - 468.90008544921875 - ], - "bbox": [ - 352.800048828125, - 462.90008544921875, - 357.10003662109375, - 482.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«¬5R¥/6e¤o\u0018�£9«¬©?5ª¤o¥;¯", - "origin": [ - 357.10003662109375, - 468.90008544921875 - ], - "bbox": [ - 357.10003662109375, - 462.60009765625, - 431.5001220703125, - 483.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 150.2000732421875, - 462.60009765625, - 431.5001220703125, - 483.0000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c©\u001a¦)\u001bª\u00194Ç96V¤7§F\u001boÊY\u0019^\u0018\u001a\u00194Ç96\u001c ", - "origin": [ - 433.7000732421875, - 468.90008544921875 - ], - "bbox": [ - 433.7000732421875, - 462.60009765625, - 518.60009765625, - 483.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 433.7000732421875, - 462.60009765625, - 518.60009765625, - 483.0000915527344 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 72.30007934570312, - 481.40008544921875, - 418.0000915527344, - 501.8000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Åb©…\u0018w£\u001c«-©?5R¥;¯", - "origin": [ - 72.30007934570312, - 487.7000732421875 - ], - "bbox": [ - 72.30007934570312, - 481.40008544921875, - 120.70008850097656, - 501.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30007934570312, - 481.40008544921875, - 120.70008850097656, - 501.8000793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c©\u001a¦)\u001bª\u00194Ç96\u001e¤76M¥/È", - "origin": [ - 122.90008544921875, - 487.7000732421875 - ], - "bbox": [ - 122.90008544921875, - 481.40008544921875, - 176.60008239746094, - 501.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 176.60008239746094, - 487.7000732421875 - ], - "bbox": [ - 176.60008239746094, - 481.7000732421875, - 180.90008544921875, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©F«z5R\u0019\u001c«¬©�¤�«", - "origin": [ - 180.90008544921875, - 487.7000732421875 - ], - "bbox": [ - 180.90008544921875, - 481.40008544921875, - 219.30007934570312, - 501.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 122.90008544921875, - 481.40008544921875, - 219.30007934570312, - 501.8000793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8Kçoð", - "origin": [ - 225.90008544921875, - 487.7000732421875 - ], - "bbox": [ - 225.90008544921875, - 481.40008544921875, - 239.20008850097656, - 501.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "0œ", - "origin": [ - 239.20008850097656, - 487.7000732421875 - ], - "bbox": [ - 239.20008850097656, - 481.7000732421875, - 249.70008850097656, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nð?ï\në", - "origin": [ - 249.70008850097656, - 487.7000732421875 - ], - "bbox": [ - 249.70008850097656, - 481.40008544921875, - 265.5000915527344, - 501.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 265.5000915527344, - 487.7000732421875 - ], - "bbox": [ - 265.5000915527344, - 483.00006103515625, - 276.90008544921875, - 500.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "IÁŠÄFÅgß/Á", - "origin": [ - 276.90008544921875, - 487.7000732421875 - ], - "bbox": [ - 276.90008544921875, - 481.7000732421875, - 302.8000793457031, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F$", - "origin": [ - 302.8000793457031, - 487.7000732421875 - ], - "bbox": [ - 302.8000793457031, - 483.00006103515625, - 308.6000671386719, - 500.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cì", - "origin": [ - 308.6000671386719, - 487.7000732421875 - ], - "bbox": [ - 308.6000671386719, - 481.40008544921875, - 313.6000671386719, - 501.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "('", - "origin": [ - 313.6000671386719, - 487.7000732421875 - ], - "bbox": [ - 313.6000671386719, - 483.00006103515625, - 320.8000793457031, - 500.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ºgžcÞHŸ", - "origin": [ - 320.8000793457031, - 487.7000732421875 - ], - "bbox": [ - 320.8000793457031, - 481.7000732421875, - 341.7001037597656, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "—>T", - "origin": [ - 341.7001037597656, - 487.7000732421875 - ], - "bbox": [ - 341.7001037597656, - 483.00006103515625, - 358.30010986328125, - 500.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WÄFÞ\u0011 I»/Ċ¼\"ß", - "origin": [ - 358.30010986328125, - 487.7000732421875 - ], - "bbox": [ - 358.30010986328125, - 481.7000732421875, - 394.0000915527344, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ç", - "origin": [ - 394.0000915527344, - 487.7000732421875 - ], - "bbox": [ - 394.0000915527344, - 481.40008544921875, - 399.7001037597656, - 501.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £", - "origin": [ - 399.7001037597656, - 487.7000732421875 - ], - "bbox": [ - 399.7001037597656, - 481.7000732421875, - 407.2001037597656, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cðwì", - "origin": [ - 407.2001037597656, - 487.7000732421875 - ], - "bbox": [ - 407.2001037597656, - 481.40008544921875, - 418.0000915527344, - 501.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.90008544921875, - 481.40008544921875, - 418.0000915527344, - 501.8000793457031 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 78.80008697509766, - 500.10009765625, - 533.7000732421875, - 520.5000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "5oÊY\u0019¸\u001buÈ)ÔõÈ=\u001b76=©\u001a¦)6Vß!¦[6\u001e\u0018w£\u001c«-©?5s¥;¯", - "origin": [ - 78.80008697509766, - 506.40008544921875 - ], - "bbox": [ - 78.80008697509766, - 500.10009765625, - 190.60009765625, - 520.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80008697509766, - 500.10009765625, - 190.60009765625, - 520.5000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194©�¦)\u001bª\u00194Ç\u001c6\u001e\u00194«-©\u001a¤�«i8+çoð", - "origin": [ - 192.90008544921875, - 506.40008544921875 - ], - "bbox": [ - 192.90008544921875, - 500.10009765625, - 266.0000915527344, - 520.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")8", - "origin": [ - 266.0000915527344, - 506.40008544921875 - ], - "bbox": [ - 266.0000915527344, - 501.7000732421875, - 276.40008544921875, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½", - "origin": [ - 276.40008544921875, - 506.40008544921875 - ], - "bbox": [ - 276.40008544921875, - 500.40008544921875, - 281.7000732421875, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 281.7000732421875, - 506.40008544921875 - ], - "bbox": [ - 281.7000732421875, - 500.10009765625, - 287.00006103515625, - 520.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-r1\"G$\u0019q", - "origin": [ - 287.00006103515625, - 506.40008544921875 - ], - "bbox": [ - 287.00006103515625, - 501.7000732421875, - 308.2000427246094, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHÄFÅ\"ß/Á", - "origin": [ - 308.2000427246094, - 506.40008544921875 - ], - "bbox": [ - 308.2000427246094, - 500.40008544921875, - 334.800048828125, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F$", - "origin": [ - 334.800048828125, - 506.40008544921875 - ], - "bbox": [ - 334.800048828125, - 501.7000732421875, - 340.60003662109375, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 340.60003662109375, - 506.40008544921875 - ], - "bbox": [ - 340.60003662109375, - 500.10009765625, - 345.7000427246094, - 520.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰½", - "origin": [ - 345.7000427246094, - 506.40008544921875 - ], - "bbox": [ - 345.7000427246094, - 500.40008544921875, - 352.9000549316406, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-€", - "origin": [ - 352.9000549316406, - 506.40008544921875 - ], - "bbox": [ - 352.9000549316406, - 501.7000732421875, - 358.2000427246094, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hà", - "origin": [ - 358.2000427246094, - 506.40008544921875 - ], - "bbox": [ - 358.2000427246094, - 500.40008544921875, - 363.4000549316406, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1€", - "origin": [ - 363.4000549316406, - 506.40008544921875 - ], - "bbox": [ - 363.4000549316406, - 501.7000732421875, - 368.800048828125, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F»/ß|Þ\u0011 Iß", - "origin": [ - 368.800048828125, - 506.40008544921875 - ], - "bbox": [ - 368.800048828125, - 500.40008544921875, - 394.8000183105469, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "I", - "origin": [ - 394.8000183105469, - 506.40008544921875 - ], - "bbox": [ - 394.8000183105469, - 501.7000732421875, - 404.70001220703125, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "AÀ\u0011ºFÞ«´gºfž\\Þ/Ÿ", - "origin": [ - 404.70001220703125, - 506.40008544921875 - ], - "bbox": [ - 404.70001220703125, - 500.40008544921875, - 456.8999938964844, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")>D", - "origin": [ - 456.8999938964844, - 506.40008544921875 - ], - "bbox": [ - 456.8999938964844, - 501.7000732421875, - 474.0, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WÄFÞ\u0011 Y»\"Ċ¼\"ß", - "origin": [ - 474.0, - 506.40008544921875 - ], - "bbox": [ - 474.0, - 500.40008544921875, - 509.70001220703125, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ç", - "origin": [ - 509.70001220703125, - 506.40008544921875 - ], - "bbox": [ - 509.70001220703125, - 500.10009765625, - 515.4000244140625, - 520.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £", - "origin": [ - 515.4000244140625, - 506.40008544921875 - ], - "bbox": [ - 515.4000244140625, - 500.40008544921875, - 522.9000244140625, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð+ì", - "origin": [ - 522.9000244140625, - 506.40008544921875 - ], - "bbox": [ - 522.9000244140625, - 500.10009765625, - 533.7000732421875, - 520.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.90008544921875, - 500.10009765625, - 533.7000732421875, - 520.5000610351562 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 78.80007934570312, - 519.0000610351562, - 129.90008544921875, - 539.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.80007934570312, - 525.300048828125 - ], - "bbox": [ - 78.80007934570312, - 519.0000610351562, - 129.90008544921875, - 539.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80007934570312, - 519.0000610351562, - 129.90008544921875, - 539.4000244140625 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 83.39999389648438, - 694.4000244140625, - 393.0, - 714.7999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "$", - "origin": [ - 83.39999389648438, - 700.7000122070312 - ], - "bbox": [ - 83.39999389648438, - 696.0, - 83.39999389648438, - 713.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=è", - "origin": [ - 83.39999389648438, - 700.7000122070312 - ], - "bbox": [ - 83.39999389648438, - 694.4000244140625, - 87.89999389648438, - 714.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H¡gßkà�žY»fáIŸkŸH¡.žcÞ\n¼", - "origin": [ - 87.89999389648438, - 700.7000122070312 - ], - "bbox": [ - 87.89999389648438, - 694.7000122070312, - 161.1999969482422, - 713.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "­é", - "origin": [ - 161.1999969482422, - 700.7000122070312 - ], - "bbox": [ - 161.1999969482422, - 694.4000244140625, - 172.1999969482422, - 714.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&", - "origin": [ - 172.1999969482422, - 700.7000122070312 - ], - "bbox": [ - 172.1999969482422, - 696.0, - 178.3000030517578, - 713.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001bâ\"ß", - "origin": [ - 178.3000030517578, - 700.7000122070312 - ], - "bbox": [ - 178.3000030517578, - 694.7000122070312, - 187.60000610351562, - 713.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.39999389648438, - 694.4000244140625, - 187.60000610351562, - 714.7999877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¼\"ºŠŸ«Ÿ\"º", - "origin": [ - 197.6999969482422, - 700.7000122070312 - ], - "bbox": [ - 197.6999969482422, - 694.7000122070312, - 224.10000610351562, - 713.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "4>", - "origin": [ - 224.10000610351562, - 700.7000122070312 - ], - "bbox": [ - 224.10000610351562, - 696.0, - 234.40000915527344, - 713.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/º", - "origin": [ - 234.40000915527344, - 700.7000122070312 - ], - "bbox": [ - 234.40000915527344, - 694.7000122070312, - 239.8000030517578, - 713.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "TP\u0019$", - "origin": [ - 239.8000030517578, - 700.7000122070312 - ], - "bbox": [ - 239.8000030517578, - 696.0, - 251.00001525878906, - 713.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "UáFÄgž", - "origin": [ - 251.00001525878906, - 700.7000122070312 - ], - "bbox": [ - 251.00001525878906, - 694.7000122070312, - 271.60003662109375, - 713.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 271.60003662109375, - 700.7000122070312 - ], - "bbox": [ - 271.60003662109375, - 696.0, - 276.4000244140625, - 713.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 197.6999969482422, - 694.7000122070312, - 276.4000244140625, - 713.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ð", - "origin": [ - 286.6000061035156, - 700.7000122070312 - ], - "bbox": [ - 286.6000061035156, - 694.4000244140625, - 286.6000061035156, - 714.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gÁgžH FßUŸ/ºk¡gßF»�áFß/ÁŠà", - "origin": [ - 286.6000061035156, - 700.7000122070312 - ], - "bbox": [ - 286.6000061035156, - 694.7000122070312, - 365.5000305175781, - 713.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "TP", - "origin": [ - 365.5000305175781, - 700.7000122070312 - ], - "bbox": [ - 365.5000305175781, - 696.0, - 372.10003662109375, - 713.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«·\n·\n·", - "origin": [ - 372.10003662109375, - 700.7000122070312 - ], - "bbox": [ - 372.10003662109375, - 694.7000122070312, - 393.0, - 713.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.6000061035156, - 694.4000244140625, - 393.0, - 714.7999877929688 - ] - } - ] - } - ], - "images": [], - "tables": [ - { - "bbox": [ - 68.61693548387096, - 544.4000244140625, - 541.258064516129, - 701.0999755859375 - ], - "image_path": "tables/9_68_544_541_701.jpg" - } - ], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 57.699974060058594 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 530.7999877929688, - 35.29997634887695, - 535.3999633789062, - 57.699974060058594 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 78.69999694824219, - 595.0, - 539.4000244140625 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 68.61693548387096, - 544.4000244140625, - 541.258064516129, - 714.7999877929688 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgܝÁ\u001aöyžyØe¾\nØ!Á9ûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":e@", - "origin": [ - 530.7999877929688, - 43.5999755859375 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 136.49998474121094, - 99.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "•", - "origin": [ - 72.29998779296875, - 85.0 - ], - "bbox": [ - 72.29998779296875, - 80.30000305175781, - 72.29998779296875, - 98.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ɖ", - "origin": [ - 72.29998779296875, - 85.0 - ], - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 81.09999084472656, - 99.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 78.69999694824219, - 81.09999084472656, - 99.0999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¾9ÛK¾\n¼òóiöy¾", - "origin": [ - 91.29998779296875, - 85.0 - ], - "bbox": [ - 91.29998779296875, - 78.69999694824219, - 127.09998321533203, - 99.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "œ–", - "origin": [ - 127.09998321533203, - 85.0 - ], - "bbox": [ - 127.09998321533203, - 80.30000305175781, - 136.49998474121094, - 98.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.29998779296875, - 78.69999694824219, - 136.49998474121094, - 99.0999984741211 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 148.99998474121094, - 80.69999694824219, - 414.0999755859375, - 101.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ë,\u001bu6[©F£9©\u001a¤H8", - "origin": [ - 148.99998474121094, - 87.0 - ], - "bbox": [ - 148.99998474121094, - 80.69999694824219, - 187.99998474121094, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¡/Ÿ\nŸH´", - "origin": [ - 187.99998474121094, - 87.0 - ], - "bbox": [ - 187.99998474121094, - 81.0, - 209.2999725341797, - 100.19999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 148.99998474121094, - 80.69999694824219, - 209.2999725341797, - 101.0999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "µ€£H£|¶\n¶\n¶1·y¶g¹&·\u001bºŠ»H¼g£", - "origin": [ - 221.39999389648438, - 87.0 - ], - "bbox": [ - 221.39999389648438, - 81.0, - 288.6000061035156, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 288.6000061035156, - 87.0 - ], - "bbox": [ - 288.6000061035156, - 80.69999694824219, - 293.6000061035156, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½/£F½", - "origin": [ - 293.6000061035156, - 87.0 - ], - "bbox": [ - 293.6000061035156, - 81.0, - 309.29998779296875, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ë", - "origin": [ - 309.29998779296875, - 87.0 - ], - "bbox": [ - 309.29998779296875, - 80.69999694824219, - 314.5, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¾g¿c¡/ŸYÀ.Á|Â\"ÃH£HÄFÅ/ºFÆ\nŸ…·y¡\nŸ|À�Á", - "origin": [ - 314.5, - 87.0 - ], - "bbox": [ - 314.5, - 81.0, - 414.0999755859375, - 100.19999694824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.39999389648438, - 80.69999694824219, - 414.0999755859375, - 101.0999984741211 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.49998474121094, - 99.49998474121094, - 534.7000122070312, - 119.89998626708984 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.49998474121094, - 105.79998779296875 - ], - "bbox": [ - 72.49998474121094, - 99.79998779296875, - 72.49998474121094, - 118.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©‚Æ\u001c£9«z5¸²?§F6cÊ-6c¤76[\u001buÆ?«Y¦)6c¤76[\u001bª\u0019ɧF©¿¤76[\u001buÆ\u001c6[§\u001a\u001bBÏ�6=Ð", - "origin": [ - 72.49998474121094, - 105.79998779296875 - ], - "bbox": [ - 72.49998474121094, - 99.49998474121094, - 259.199951171875, - 119.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«T˜¡/Ÿ\nŸŠ´gX�[", - "origin": [ - 259.199951171875, - 105.79998779296875 - ], - "bbox": [ - 259.199951171875, - 99.79998779296875, - 298.1999206542969, - 118.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K²9§\u001a«~¤76#©F£\u001c¨g¨g6", - "origin": [ - 298.1999206542969, - 105.79998779296875 - ], - "bbox": [ - 298.1999206542969, - 99.49998474121094, - 361.2998962402344, - 119.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶\n¶H¶1·¸¶g¹&·;ºŠ»\n¼", - "origin": [ - 361.2998962402344, - 105.79998779296875 - ], - "bbox": [ - 361.2998962402344, - 99.79998779296875, - 417.19989013671875, - 118.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…6)5!²?§F6#Ê-6\u000f¦ªþF6=¨g«¬©", - "origin": [ - 417.19989013671875, - 105.79998779296875 - ], - "bbox": [ - 417.19989013671875, - 99.49998474121094, - 494.0998840332031, - 119.89998626708984 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0017Ë", - "origin": [ - 494.0998840332031, - 105.79998779296875 - ], - "bbox": [ - 494.0998840332031, - 99.79998779296875, - 502.8998718261719, - 118.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\§\u001a¤u²?§K¯", - "origin": [ - 502.8998718261719, - 105.79998779296875 - ], - "bbox": [ - 502.8998718261719, - 99.49998474121094, - 527.4998779296875, - 119.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49998474121094, - 99.49998474121094, - 527.4998779296875, - 119.89998626708984 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c§", - "origin": [ - 529.7000122070312, - 105.79998779296875 - ], - "bbox": [ - 529.7000122070312, - 99.49998474121094, - 534.7000122070312, - 119.89998626708984 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 529.7000122070312, - 99.49998474121094, - 534.7000122070312, - 119.89998626708984 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 72.10000610351562, - 113.09996032714844, - 252.8000030517578, - 133.49996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 72.10000610351562, - 119.39996337890625 - ], - "bbox": [ - 72.10000610351562, - 113.39996337890625, - 72.10000610351562, - 132.59996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001b", - "origin": [ - 72.10000610351562, - 119.39996337890625 - ], - "bbox": [ - 72.10000610351562, - 113.09996032714844, - 94.60000610351562, - 133.49996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�ÄFÅgºFÆ/Ÿ7·¸¡/Ÿ|À.Á", - "origin": [ - 94.60000610351562, - 119.39996337890625 - ], - "bbox": [ - 94.60000610351562, - 113.39996337890625, - 149.6999969482422, - 132.59996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "H6=¤�5", - "origin": [ - 149.6999969482422, - 119.39996337890625 - ], - "bbox": [ - 149.6999969482422, - 113.09996032714844, - 165.6999969482422, - 133.49996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.10000610351562, - 113.09996032714844, - 165.6999969482422, - 133.49996948242188 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "£", - "origin": [ - 173.30001831054688, - 119.39996337890625 - ], - "bbox": [ - 173.30001831054688, - 113.39996337890625, - 173.30001831054688, - 132.59996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 173.30001831054688, - 119.39996337890625 - ], - "bbox": [ - 173.30001831054688, - 113.09996032714844, - 178.30001831054688, - 133.49996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½\"£F½", - "origin": [ - 178.30001831054688, - 119.39996337890625 - ], - "bbox": [ - 178.30001831054688, - 113.39996337890625, - 194.1000213623047, - 132.59996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 194.1000213623047, - 119.39996337890625 - ], - "bbox": [ - 194.1000213623047, - 113.09996032714844, - 199.4000244140625, - 133.49996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/¾�¿\\¡/Ÿ|À.ÁFÂ/Ã/£", - "origin": [ - 199.4000244140625, - 119.39996337890625 - ], - "bbox": [ - 199.4000244140625, - 113.39996337890625, - 247.1999969482422, - 132.59996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a ", - "origin": [ - 247.1999969482422, - 119.39996337890625 - ], - "bbox": [ - 247.1999969482422, - 113.09996032714844, - 252.8000030517578, - 133.49996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.30001831054688, - 113.09996032714844, - 252.8000030517578, - 133.49996948242188 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 72.40001678466797, - 143.7999725341797, - 225.90003967285156, - 164.19998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.40001678466797, - 150.0999755859375 - ], - "bbox": [ - 72.40001678466797, - 143.7999725341797, - 72.40001678466797, - 164.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.40001678466797, - 150.0999755859375 - ], - "bbox": [ - 72.40001678466797, - 144.0999755859375, - 78.60001373291016, - 163.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.60001373291016, - 150.0999755859375 - ], - "bbox": [ - 78.60001373291016, - 143.7999725341797, - 81.80001068115234, - 164.19998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.80001068115234, - 150.0999755859375 - ], - "bbox": [ - 81.80001068115234, - 144.0999755859375, - 87.60001373291016, - 163.2999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "YŸ", - "origin": [ - 87.60001373291016, - 150.0999755859375 - ], - "bbox": [ - 87.60001373291016, - 143.7999725341797, - 90.50001525878906, - 164.19998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.40001678466797, - 143.7999725341797, - 90.50001525878906, - 164.19998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÖRâ¬ÁFš˜%¾\nØ=Øe¾Ýš×â-›–ÌÁF›—[˜%¾�Ø=žy—=¾", - "origin": [ - 107.30001831054688, - 150.0999755859375 - ], - "bbox": [ - 107.30001831054688, - 143.7999725341797, - 225.90003967285156, - 164.19998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.30001831054688, - 143.7999725341797, - 225.90003967285156, - 164.19998168945312 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.20001220703125, - 170.99998474121094, - 430.4999084472656, - 191.39999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi£\u001c§F\u001bo\u0018w£\u001c«-©?576=\u001boÆ\u001c6[\u001bª¤ §F©Ý\u00194§/5u\u001b76B¤7«z5u6M²?§F6Hʬ6M¤7«¬6=©\u001a¤", - "origin": [ - 72.20001220703125, - 177.29998779296875 - ], - "bbox": [ - 72.20001220703125, - 170.99998474121094, - 255.8999786376953, - 191.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 255.8999786376953, - 177.29998779296875 - ], - "bbox": [ - 255.8999786376953, - 171.29998779296875, - 260.3999938964844, - 190.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/«¬Êm¤7§", - "origin": [ - 260.3999938964844, - 177.29998779296875 - ], - "bbox": [ - 260.3999938964844, - 170.99998474121094, - 278.6000061035156, - 191.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/>", - "origin": [ - 278.6000061035156, - 177.29998779296875 - ], - "bbox": [ - 278.6000061035156, - 171.29998779296875, - 284.0, - 190.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "g5b\u0018FÊY\u0019\u001c¦[6[\u001bb¤7£\u001c©…Å", - "origin": [ - 284.0, - 177.29998779296875 - ], - "bbox": [ - 284.0, - 170.99998474121094, - 346.8999328613281, - 191.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 346.8999328613281, - 177.29998779296875 - ], - "bbox": [ - 346.8999328613281, - 171.29998779296875, - 354.2999267578125, - 190.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "b¶ò¥F\u0019\u001c©\u001a¤sÊY\u0019!Ð�\u00194Ê-«-¤76\u001c ", - "origin": [ - 354.2999267578125, - 177.29998779296875 - ], - "bbox": [ - 354.2999267578125, - 170.99998474121094, - 430.4999084472656, - 191.39999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 170.99998474121094, - 430.4999084472656, - 191.39999389648438 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 78.80001068115234, - 189.7999725341797, - 129.90000915527344, - 210.19998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.80001068115234, - 196.0999755859375 - ], - "bbox": [ - 78.80001068115234, - 189.7999725341797, - 129.90000915527344, - 210.19998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80001068115234, - 189.7999725341797, - 129.90000915527344, - 210.19998168945312 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.5, - 215.40000915527344, - 256.20001220703125, - 235.80001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 221.70001220703125 - ], - "bbox": [ - 72.5, - 215.70001220703125, - 72.5, - 234.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 72.5, - 221.70001220703125 - ], - "bbox": [ - 72.5, - 215.40000915527344, - 77.5, - 235.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«¡/»\"ßHà", - "origin": [ - 77.5, - 221.70001220703125 - ], - "bbox": [ - 77.5, - 215.70001220703125, - 103.9000015258789, - 234.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%$", - "origin": [ - 103.9000015258789, - 221.70001220703125 - ], - "bbox": [ - 103.9000015258789, - 217.00001525878906, - 115.0999984741211, - 234.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v¡/Ÿ\nŸŠ´1µ€£\n£|¶H¶H¶1·¸¶/¹&·;ºF»H¼g£", - "origin": [ - 115.0999984741211, - 221.70001220703125 - ], - "bbox": [ - 115.0999984741211, - 215.70001220703125, - 209.1999969482422, - 234.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F$", - "origin": [ - 209.1999969482422, - 221.70001220703125 - ], - "bbox": [ - 209.1999969482422, - 217.00001525878906, - 215.0, - 234.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cä", - "origin": [ - 215.0, - 221.70001220703125 - ], - "bbox": [ - 215.0, - 215.70001220703125, - 219.60000610351562, - 234.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�ˆ", - "origin": [ - 219.60000610351562, - 221.70001220703125 - ], - "bbox": [ - 219.60000610351562, - 217.00001525878906, - 224.5, - 234.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"¹Š¾/Ý\n£", - "origin": [ - 224.5, - 221.70001220703125 - ], - "bbox": [ - 224.5, - 215.70001220703125, - 245.8000030517578, - 234.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 245.8000030517578, - 221.70001220703125 - ], - "bbox": [ - 245.8000030517578, - 215.40000915527344, - 250.8000030517578, - 235.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä", - "origin": [ - 250.8000030517578, - 221.70001220703125 - ], - "bbox": [ - 250.8000030517578, - 215.70001220703125, - 256.20001220703125, - 234.90000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 215.40000915527344, - 256.20001220703125, - 235.80001831054688 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 72.30000305175781, - 241.1000213623047, - 125.80000305175781, - 261.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 247.4000244140625 - ], - "bbox": [ - 72.30000305175781, - 241.1000213623047, - 104.20000457763672, - 261.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰j~}\"t", - "origin": [ - 104.20000457763672, - 247.4000244140625 - ], - "bbox": [ - 104.20000457763672, - 241.4000244140625, - 125.80000305175781, - 260.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 241.1000213623047, - 125.80000305175781, - 261.5000305175781 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 72.4000015258789, - 271.800048828125, - 218.30003356933594, - 292.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 278.10003662109375 - ], - "bbox": [ - 72.4000015258789, - 271.800048828125, - 72.4000015258789, - 292.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 278.10003662109375 - ], - "bbox": [ - 72.4000015258789, - 272.10003662109375, - 78.5999984741211, - 291.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.5999984741211, - 278.10003662109375 - ], - "bbox": [ - 78.5999984741211, - 271.800048828125, - 81.79999542236328, - 292.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.79999542236328, - 278.10003662109375 - ], - "bbox": [ - 81.79999542236328, - 272.10003662109375, - 87.5999984741211, - 291.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-Ä", - "origin": [ - 87.5999984741211, - 278.10003662109375 - ], - "bbox": [ - 87.5999984741211, - 271.800048828125, - 90.4000015258789, - 292.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 271.800048828125, - 90.4000015258789, - 292.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö~¾\nØ^Á\u001ašm˜%¾\nØ=Øe¾\nØgš¾", - "origin": [ - 107.30000305175781, - 278.10003662109375 - ], - "bbox": [ - 107.30000305175781, - 271.800048828125, - 178.60003662109375, - 292.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "Rš", - "origin": [ - 178.60003662109375, - 278.10003662109375 - ], - "bbox": [ - 178.60003662109375, - 273.4000244140625, - 187.60003662109375, - 291.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "iœažô¾?˜aØ", - "origin": [ - 187.60003662109375, - 278.10003662109375 - ], - "bbox": [ - 187.60003662109375, - 271.800048828125, - 218.30003356933594, - 292.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.30000305175781, - 271.800048828125, - 218.30003356933594, - 292.2000427246094 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 72.5, - 299.00006103515625, - 536.300048828125, - 319.4000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.5, - 305.300048828125 - ], - "bbox": [ - 72.5, - 299.300048828125, - 72.5, - 318.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©\u000f\u0018w6[§F5o\u0019\u001c§\u001a¤u¤�«+\u0018w£\u001c«-©95u6[\u001bo¤7§F\u001bs§F©", - "origin": [ - 72.5, - 305.300048828125 - ], - "bbox": [ - 72.5, - 299.00006103515625, - 192.09999084472656, - 319.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ò�", - "origin": [ - 192.09999084472656, - 305.300048828125 - ], - "bbox": [ - 192.09999084472656, - 299.300048828125, - 200.59999084472656, - 318.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþ\u001a«¬6=\u001bs²?§F«;6e¤\\5s\u0018F\u001buÈ=¤76[©?5o¤�§F\u001bsÊ", - "origin": [ - 200.59999084472656, - 305.300048828125 - ], - "bbox": [ - 200.59999084472656, - 299.00006103515625, - 313.5, - 319.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 299.00006103515625, - 313.5, - 319.4000549316406 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£9\u001bu¥F«¬©\u001a\u00194576=§F\u001b ²?§F«;\u00199¦[¦)§\u001a6[«-ʬÊ-6\u001eÊ-6H¤�«¬576", - "origin": [ - 319.0000305175781, - 305.300048828125 - ], - "bbox": [ - 319.0000305175781, - 299.00006103515625, - 444.9000244140625, - 319.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÊT", - "origin": [ - 444.9000244140625, - 305.300048828125 - ], - "bbox": [ - 444.9000244140625, - 299.300048828125, - 453.3000183105469, - 318.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y¦[6[ÊY\u0019!¤76[\u001b75o߸\u001bu6[Ê-«¬6=\u001b~Ê-6=¤", - "origin": [ - 453.3000183105469, - 305.300048828125 - ], - "bbox": [ - 453.3000183105469, - 299.00006103515625, - 536.300048828125, - 319.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 319.0000305175781, - 299.00006103515625, - 536.300048828125, - 319.4000549316406 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.20002746582031, - 312.60003662109375, - 180.2000274658203, - 333.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u0019\u001cÇ\u001c6=¤s¥/§Ý¤7«z5u6B6[©?57\u001bu6)°", - "origin": [ - 72.20002746582031, - 318.9000244140625 - ], - "bbox": [ - 72.20002746582031, - 312.60003662109375, - 153.90000915527344, - 333.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20002746582031, - 312.60003662109375, - 153.90000915527344, - 333.0000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[Ê-Ê-6=¤", - "origin": [ - 157.4000244140625, - 318.9000244140625 - ], - "bbox": [ - 157.4000244140625, - 312.60003662109375, - 171.9000244140625, - 333.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "×X", - "origin": [ - 171.9000244140625, - 318.9000244140625 - ], - "bbox": [ - 171.9000244140625, - 312.9000244140625, - 176.00003051757812, - 332.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 176.00003051757812, - 318.9000244140625 - ], - "bbox": [ - 176.00003051757812, - 312.60003662109375, - 180.2000274658203, - 333.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 157.4000244140625, - 312.60003662109375, - 180.2000274658203, - 333.0000305175781 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.3000259399414, - 331.4000244140625, - 535.400146484375, - 351.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶,¯", - "origin": [ - 72.3000259399414, - 337.70001220703125 - ], - "bbox": [ - 72.3000259399414, - 331.4000244140625, - 79.0000228881836, - 351.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.3000259399414, - 331.4000244140625, - 79.0000228881836, - 351.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6Ù¥/6=¤É¤7£\u001cÊ-§/57«-£\u001c©\u001a¤\u000f6=¤�5‰¥/6\u000eÔy\u00194«-\u001b76Ù¤�ø/¤�57È[¨#\u0019457«Y²9§\u001a6[¨g6[©?5\u000f§F©\u001a6\u000e\u001buÈ)ÔõÈ[\u001bu6[©�¦)6\u000eßòÊ", - "origin": [ - 81.20002746582031, - 337.70001220703125 - ], - "bbox": [ - 81.20002746582031, - 331.4000244140625, - 375.4000244140625, - 351.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.20002746582031, - 331.4000244140625, - 375.4000244140625, - 351.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c¥/\u001bu6=¤u¤�6�¦)£\u001c¨g\u0018FÊ-á)5u6\u000e¥/§", - "origin": [ - 381.10003662109375, - 337.70001220703125 - ], - "bbox": [ - 381.10003662109375, - 331.4000244140625, - 465.89996337890625, - 351.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 381.10003662109375, - 331.4000244140625, - 465.89996337890625, - 351.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7«¬576", - "origin": [ - 476.300048828125, - 337.70001220703125 - ], - "bbox": [ - 476.300048828125, - 331.4000244140625, - 486.800048828125, - 351.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 486.800048828125, - 337.70001220703125 - ], - "bbox": [ - 486.800048828125, - 331.70001220703125, - 491.800048828125, - 350.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " ¨#\u00194«Y¤‰¦[6[ÊY\u0019", - "origin": [ - 491.800048828125, - 337.70001220703125 - ], - "bbox": [ - 491.800048828125, - 331.4000244140625, - 535.400146484375, - 351.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 476.300048828125, - 331.4000244140625, - 535.400146484375, - 351.8000183105469 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 72.300048828125, - 345.0000305175781, - 534.699951171875, - 365.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/6=Æ?«-6[©?5MÆ\n«¬576g\u0018�È=©F«-ÐFʬ69 ¶×¯", - "origin": [ - 72.300048828125, - 351.3000183105469 - ], - "bbox": [ - 72.300048828125, - 345.0000305175781, - 172.80006408691406, - 365.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.300048828125, - 345.0000305175781, - 172.80006408691406, - 365.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c§/57\u001bu6#¤�£9ʬ§/5u«¬£9©", - "origin": [ - 175.00006103515625, - 351.3000183105469 - ], - "bbox": [ - 175.00006103515625, - 345.0000305175781, - 230.5000457763672, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 230.5000457763672, - 351.3000183105469 - ], - "bbox": [ - 230.5000457763672, - 345.3000183105469, - 236.6000518798828, - 364.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ";6=¤�5M¥/6c¥/£9©F©F6[\u001bBÊ-6c¦ªþF6=¨^«-©ÙÆ\u001c6[\u001bª¤HÊ-6", - "origin": [ - 236.6000518798828, - 351.3000183105469 - ], - "bbox": [ - 236.6000518798828, - 345.0000305175781, - 376.20001220703125, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ü�", - "origin": [ - 376.20001220703125, - 351.3000183105469 - ], - "bbox": [ - 376.20001220703125, - 345.3000183105469, - 384.3000183105469, - 364.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001bB\u0018\u001a\u00194\u001bB\u001bª\u00194\u0018\u001a\u0018�£9\u001b�5MßÉÊ-\u0019É\u0018w£9¤7«z5u«¬£9©ò¥/§", - "origin": [ - 384.3000183105469, - 351.3000183105469 - ], - "bbox": [ - 384.3000183105469, - 345.0000305175781, - 534.699951171875, - 365.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.00006103515625, - 345.0000305175781, - 534.699951171875, - 365.4000244140625 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.10005950927734, - 358.7000427246094, - 169.00006103515625, - 379.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 72.10005950927734, - 365.0000305175781 - ], - "bbox": [ - 72.10005950927734, - 359.0000305175781, - 72.10005950927734, - 378.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¦ªþF«-6[\u001bb\u00199¦15u§F6[Ê-ʬ6=¨g6[©?5oʬ§K ", - "origin": [ - 72.10005950927734, - 365.0000305175781 - ], - "bbox": [ - 72.10005950927734, - 358.7000427246094, - 169.00006103515625, - 379.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.10005950927734, - 358.7000427246094, - 169.00006103515625, - 379.10003662109375 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 78.80005645751953, - 377.4000549316406, - 534.7000122070312, - 397.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bH6)ÿ/6=¨^\u0018\u001aʬ6", - "origin": [ - 78.80005645751953, - 383.7000427246094 - ], - "bbox": [ - 78.80005645751953, - 377.4000549316406, - 122.10005950927734, - 397.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 122.10005950927734, - 383.7000427246094 - ], - "bbox": [ - 122.10005950927734, - 377.7000427246094, - 127.20005798339844, - 396.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+¤7«iÆ\u001c£9§\u001a¤Rå[576e¤\u001e6=©\u000e5u\u001bu\u0019\u001c«¬©�¥/6#¦)£\u001c©�¤�§Fʬ576=\u001b7Ê-6", - "origin": [ - 127.20005798339844, - 383.7000427246094 - ], - "bbox": [ - 127.20005798339844, - 377.4000549316406, - 281.6000061035156, - 397.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "C�", - "origin": [ - 281.6000061035156, - 383.7000427246094 - ], - "bbox": [ - 281.6000061035156, - 377.7000427246094, - 289.5, - 396.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w¦ªþF«¬6=\u001b", - "origin": [ - 289.5, - 383.7000427246094 - ], - "bbox": [ - 289.5, - 377.4000549316406, - 312.1000061035156, - 397.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ð£\\ÀgÆ\u0011á/žH F£FŸ\"ºg \u0013·y¡/Ÿ|À.Á", - "origin": [ - 312.1000061035156, - 383.7000427246094 - ], - "bbox": [ - 312.1000061035156, - 377.7000427246094, - 394.0, - 396.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸6)5B²9§\u001a6!Æ9£\u001c§\u001a¤\u001eÆ\u001c£9§Fʬ6", - "origin": [ - 394.0, - 383.7000427246094 - ], - "bbox": [ - 394.0, - 377.4000549316406, - 474.4000244140625, - 397.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\‡", - "origin": [ - 474.4000244140625, - 383.7000427246094 - ], - "bbox": [ - 474.4000244140625, - 377.7000427246094, - 478.9000244140625, - 396.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸Ôy\u0019\u001c«¬\u001bu6¸§\u001a©�Ê-«¬6=©", - "origin": [ - 478.9000244140625, - 383.7000427246094 - ], - "bbox": [ - 478.9000244140625, - 377.4000549316406, - 534.7000122070312, - 397.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80005645751953, - 377.4000549316406, - 534.7000122070312, - 397.800048828125 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 72.20005798339844, - 391.1000671386719, - 513.300048828125, - 411.50006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Æ\u001c6=\u001bu¤", - "origin": [ - 72.20005798339844, - 397.4000549316406 - ], - "bbox": [ - 72.20005798339844, - 391.1000671386719, - 85.70005798339844, - 411.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*£cÀgÆ\u0011á\nžH Š£FŸ� c¡gÄfž", - "origin": [ - 85.70005798339844, - 397.4000549316406 - ], - "bbox": [ - 85.70005798339844, - 391.4000549316406, - 151.4000701904297, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\fO", - "origin": [ - 151.4000701904297, - 397.4000549316406 - ], - "bbox": [ - 151.4000701904297, - 392.7000427246094, - 156.10006713867188, - 410.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ºFâ�á", - "origin": [ - 156.10006713867188, - 397.4000549316406 - ], - "bbox": [ - 156.10006713867188, - 391.4000549316406, - 172.4000701904297, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�O", - "origin": [ - 172.4000701904297, - 397.4000549316406 - ], - "bbox": [ - 172.4000701904297, - 392.7000427246094, - 177.2000732421875, - 410.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hã\"£IÅ.žYºŠ¼\n»/Ä|´H¡/ã&·¸¡/ŸIÀ\u0011Á\"[", - "origin": [ - 177.2000732421875, - 397.4000549316406 - ], - "bbox": [ - 177.2000732421875, - 391.4000549316406, - 266.6000671386719, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%«-Êm¤�§", - "origin": [ - 266.6000671386719, - 397.4000549316406 - ], - "bbox": [ - 266.6000671386719, - 391.1000671386719, - 284.2000427246094, - 411.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\">", - "origin": [ - 284.2000427246094, - 397.4000549316406 - ], - "bbox": [ - 284.2000427246094, - 391.4000549316406, - 289.7000427246094, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^5R¥F6\u001eÔy\u0019\u001c«¬\u001bu6B\u00194\u0018F\u0018w6[ʐß", - "origin": [ - 289.7000427246094, - 397.4000549316406 - ], - "bbox": [ - 289.7000427246094, - 391.1000671386719, - 367.9000244140625, - 411.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "üŸ� Y¡gÄfž", - "origin": [ - 367.9000244140625, - 397.4000549316406 - ], - "bbox": [ - 367.9000244140625, - 391.4000549316406, - 397.800048828125, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u0019O", - "origin": [ - 397.800048828125, - 397.4000549316406 - ], - "bbox": [ - 397.800048828125, - 392.7000427246094, - 402.4000549316406, - 410.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ºŠâ�á", - "origin": [ - 402.4000549316406, - 397.4000549316406 - ], - "bbox": [ - 402.4000549316406, - 391.4000549316406, - 418.800048828125, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�O", - "origin": [ - 418.800048828125, - 397.4000549316406 - ], - "bbox": [ - 418.800048828125, - 392.7000427246094, - 423.60003662109375, - 410.50006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hãg£|Å.ž|ºF¼H»\"ÄF´Š¡/ã7·y¡\nŸ|À.Á", - "origin": [ - 423.60003662109375, - 397.4000549316406 - ], - "bbox": [ - 423.60003662109375, - 391.4000549316406, - 507.9000244140625, - 410.6000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ ", - "origin": [ - 507.9000244140625, - 397.4000549316406 - ], - "bbox": [ - 507.9000244140625, - 391.1000671386719, - 513.300048828125, - 411.50006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20005798339844, - 391.1000671386719, - 513.300048828125, - 411.50006103515625 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 72.40005493164062, - 421.8000793457031, - 228.40005493164062, - 442.2000732421875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.40005493164062, - 428.1000671386719 - ], - "bbox": [ - 72.40005493164062, - 421.8000793457031, - 72.40005493164062, - 442.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.40005493164062, - 428.1000671386719 - ], - "bbox": [ - 72.40005493164062, - 422.1000671386719, - 78.60005187988281, - 441.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 78.60005187988281, - 428.1000671386719 - ], - "bbox": [ - 78.60005187988281, - 421.8000793457031, - 81.800048828125, - 442.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 81.800048828125, - 428.1000671386719 - ], - "bbox": [ - 81.800048828125, - 422.1000671386719, - 87.60005187988281, - 441.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¬Þ", - "origin": [ - 87.60005187988281, - 428.1000671386719 - ], - "bbox": [ - 87.60005187988281, - 421.8000793457031, - 90.300048828125, - 442.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.40005493164062, - 421.8000793457031, - 90.300048828125, - 442.2000732421875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "•", - "origin": [ - 107.30005645751953, - 428.1000671386719 - ], - "bbox": [ - 107.30005645751953, - 423.4000549316406, - 107.30005645751953, - 441.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ɖ¾ÍÁFš˜a¾\nØeØ=¾ÝšÁF–Ø#öyÁ�óÁ", - "origin": [ - 107.30005645751953, - 428.1000671386719 - ], - "bbox": [ - 107.30005645751953, - 421.8000793457031, - 217.1000518798828, - 442.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g\f", - "origin": [ - 217.1000518798828, - 428.1000671386719 - ], - "bbox": [ - 217.1000518798828, - 422.1000671386719, - 222.70005798339844, - 441.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�¾", - "origin": [ - 222.70005798339844, - 428.1000671386719 - ], - "bbox": [ - 222.70005798339844, - 421.8000793457031, - 228.40005493164062, - 442.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.30005645751953, - 421.8000793457031, - 228.40005493164062, - 442.2000732421875 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 72.50006103515625, - 449.0000915527344, - 536.2000122070312, - 469.40008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.50006103515625, - 455.3000793457031 - ], - "bbox": [ - 72.50006103515625, - 449.3000793457031, - 72.50006103515625, - 468.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©#\u0018w6[§/5s\u00194§\u001a¤u¤�«FÔy\u00194«-\u001b76b\u001buÈ)ÔõÈ=\u001b76=©\u001a¦)6bßM§F©#\u0018�£9«¬©?5 \u0018F\u001b7Èe¦)«Y¤,¥F\u0019\u001c©\u001a¤,ÊY\u0019B\u0018\u001a\u0019\u001cÇ\u001c6", - "origin": [ - 72.50006103515625, - 455.3000793457031 - ], - "bbox": [ - 72.50006103515625, - 449.0000915527344, - 323.00006103515625, - 469.40008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 323.00006103515625, - 455.3000793457031 - ], - "bbox": [ - 323.00006103515625, - 449.3000793457031, - 328.00006103515625, - 468.5000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001c\u0018\u001a\u00194\u001b~6)ÿ/6[¨g\u0018FÊ-6R¥F\u0019\u001c©\u001a¤", - "origin": [ - 328.00006103515625, - 455.3000793457031 - ], - "bbox": [ - 328.00006103515625, - 449.0000915527344, - 404.6000061035156, - 469.40008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50006103515625, - 449.0000915527344, - 404.6000061035156, - 469.40008544921875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6R5u\u0019\u001cÐFʬ6\u001e¥/6=¤×¨g\u0019457«-á[\u001bu6b£\u001c§g\u0018w£\u001c§F\u001b", - "origin": [ - 411.2000732421875, - 455.3000793457031 - ], - "bbox": [ - 411.2000732421875, - 449.0000915527344, - 536.2000122070312, - 469.40008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.2000732421875, - 449.0000915527344, - 536.2000122070312, - 469.40008544921875 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 72.2000732421875, - 462.60009765625, - 518.60009765625, - 483.0000915527344 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001bu6[Æ\u001c6=©F«-\u001b 6=©…þ\u001a\u00194§/5b¥;¯", - "origin": [ - 72.2000732421875, - 468.90008544921875 - ], - "bbox": [ - 72.2000732421875, - 462.60009765625, - 148.0000762939453, - 483.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.2000732421875, - 462.60009765625, - 148.0000762939453, - 483.0000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6B\u0018�\u00194Ç\u001c6V5u\u001b7áe¤sʬ£9©FÇ\u001c§F69 /Ëi£\u001c§F\u001bb¦[6[ÊY\u0019", - "origin": [ - 150.2000732421875, - 468.90008544921875 - ], - "bbox": [ - 150.2000732421875, - 462.60009765625, - 282.1000671386719, - 483.0000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"[", - "origin": [ - 282.1000671386719, - 468.90008544921875 - ], - "bbox": [ - 282.1000671386719, - 462.90008544921875, - 287.6000671386719, - 482.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/«-Ê;Ôy\u00194§/5R\u0019aÆ9£\u001c«-\u001b ¥FÈ", - "origin": [ - 287.6000671386719, - 468.90008544921875 - ], - "bbox": [ - 287.6000671386719, - 462.60009765625, - 352.800048828125, - 483.0000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 352.800048828125, - 468.90008544921875 - ], - "bbox": [ - 352.800048828125, - 462.90008544921875, - 357.10003662109375, - 482.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«¬5R¥/6e¤o\u0018�£9«¬©?5ª¤o¥;¯", - "origin": [ - 357.10003662109375, - 468.90008544921875 - ], - "bbox": [ - 357.10003662109375, - 462.60009765625, - 431.5001220703125, - 483.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 150.2000732421875, - 462.60009765625, - 431.5001220703125, - 483.0000915527344 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c©\u001a¦)\u001bª\u00194Ç96V¤7§F\u001boÊY\u0019^\u0018\u001a\u00194Ç96\u001c ", - "origin": [ - 433.7000732421875, - 468.90008544921875 - ], - "bbox": [ - 433.7000732421875, - 462.60009765625, - 518.60009765625, - 483.0000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 433.7000732421875, - 462.60009765625, - 518.60009765625, - 483.0000915527344 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 72.30007934570312, - 481.40008544921875, - 418.0000915527344, - 501.8000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Åb©…\u0018w£\u001c«-©?5R¥;¯", - "origin": [ - 72.30007934570312, - 487.7000732421875 - ], - "bbox": [ - 72.30007934570312, - 481.40008544921875, - 120.70008850097656, - 501.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30007934570312, - 481.40008544921875, - 120.70008850097656, - 501.8000793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c©\u001a¦)\u001bª\u00194Ç96\u001e¤76M¥/È", - "origin": [ - 122.90008544921875, - 487.7000732421875 - ], - "bbox": [ - 122.90008544921875, - 481.40008544921875, - 176.60008239746094, - 501.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 176.60008239746094, - 487.7000732421875 - ], - "bbox": [ - 176.60008239746094, - 481.7000732421875, - 180.90008544921875, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©F«z5R\u0019\u001c«¬©�¤�«", - "origin": [ - 180.90008544921875, - 487.7000732421875 - ], - "bbox": [ - 180.90008544921875, - 481.40008544921875, - 219.30007934570312, - 501.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 122.90008544921875, - 481.40008544921875, - 219.30007934570312, - 501.8000793457031 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "8Kçoð", - "origin": [ - 225.90008544921875, - 487.7000732421875 - ], - "bbox": [ - 225.90008544921875, - 481.40008544921875, - 239.20008850097656, - 501.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "0œ", - "origin": [ - 239.20008850097656, - 487.7000732421875 - ], - "bbox": [ - 239.20008850097656, - 481.7000732421875, - 249.70008850097656, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nð?ï\në", - "origin": [ - 249.70008850097656, - 487.7000732421875 - ], - "bbox": [ - 249.70008850097656, - 481.40008544921875, - 265.5000915527344, - 501.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 265.5000915527344, - 487.7000732421875 - ], - "bbox": [ - 265.5000915527344, - 483.00006103515625, - 276.90008544921875, - 500.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "IÁŠÄFÅgß/Á", - "origin": [ - 276.90008544921875, - 487.7000732421875 - ], - "bbox": [ - 276.90008544921875, - 481.7000732421875, - 302.8000793457031, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F$", - "origin": [ - 302.8000793457031, - 487.7000732421875 - ], - "bbox": [ - 302.8000793457031, - 483.00006103515625, - 308.6000671386719, - 500.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cì", - "origin": [ - 308.6000671386719, - 487.7000732421875 - ], - "bbox": [ - 308.6000671386719, - 481.40008544921875, - 313.6000671386719, - 501.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "('", - "origin": [ - 313.6000671386719, - 487.7000732421875 - ], - "bbox": [ - 313.6000671386719, - 483.00006103515625, - 320.8000793457031, - 500.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ºgžcÞHŸ", - "origin": [ - 320.8000793457031, - 487.7000732421875 - ], - "bbox": [ - 320.8000793457031, - 481.7000732421875, - 341.7001037597656, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "—>T", - "origin": [ - 341.7001037597656, - 487.7000732421875 - ], - "bbox": [ - 341.7001037597656, - 483.00006103515625, - 358.30010986328125, - 500.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WÄFÞ\u0011 I»/Ċ¼\"ß", - "origin": [ - 358.30010986328125, - 487.7000732421875 - ], - "bbox": [ - 358.30010986328125, - 481.7000732421875, - 394.0000915527344, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ç", - "origin": [ - 394.0000915527344, - 487.7000732421875 - ], - "bbox": [ - 394.0000915527344, - 481.40008544921875, - 399.7001037597656, - 501.8000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £", - "origin": [ - 399.7001037597656, - 487.7000732421875 - ], - "bbox": [ - 399.7001037597656, - 481.7000732421875, - 407.2001037597656, - 500.90008544921875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cðwì", - "origin": [ - 407.2001037597656, - 487.7000732421875 - ], - "bbox": [ - 407.2001037597656, - 481.40008544921875, - 418.0000915527344, - 501.8000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.90008544921875, - 481.40008544921875, - 418.0000915527344, - 501.8000793457031 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 78.80008697509766, - 500.10009765625, - 533.7000732421875, - 520.5000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "5oÊY\u0019¸\u001buÈ)ÔõÈ=\u001b76=©\u001a¦)6Vß!¦[6\u001e\u0018w£\u001c«-©?5s¥;¯", - "origin": [ - 78.80008697509766, - 506.40008544921875 - ], - "bbox": [ - 78.80008697509766, - 500.10009765625, - 190.60009765625, - 520.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80008697509766, - 500.10009765625, - 190.60009765625, - 520.5000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194©�¦)\u001bª\u00194Ç\u001c6\u001e\u00194«-©\u001a¤�«i8+çoð", - "origin": [ - 192.90008544921875, - 506.40008544921875 - ], - "bbox": [ - 192.90008544921875, - 500.10009765625, - 266.0000915527344, - 520.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")8", - "origin": [ - 266.0000915527344, - 506.40008544921875 - ], - "bbox": [ - 266.0000915527344, - 501.7000732421875, - 276.40008544921875, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½", - "origin": [ - 276.40008544921875, - 506.40008544921875 - ], - "bbox": [ - 276.40008544921875, - 500.40008544921875, - 281.7000732421875, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\në", - "origin": [ - 281.7000732421875, - 506.40008544921875 - ], - "bbox": [ - 281.7000732421875, - 500.10009765625, - 287.00006103515625, - 520.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-r1\"G$\u0019q", - "origin": [ - 287.00006103515625, - 506.40008544921875 - ], - "bbox": [ - 287.00006103515625, - 501.7000732421875, - 308.2000427246094, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHÄFÅ\"ß/Á", - "origin": [ - 308.2000427246094, - 506.40008544921875 - ], - "bbox": [ - 308.2000427246094, - 500.40008544921875, - 334.800048828125, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F$", - "origin": [ - 334.800048828125, - 506.40008544921875 - ], - "bbox": [ - 334.800048828125, - 501.7000732421875, - 340.60003662109375, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ì", - "origin": [ - 340.60003662109375, - 506.40008544921875 - ], - "bbox": [ - 340.60003662109375, - 500.10009765625, - 345.7000427246094, - 520.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰½", - "origin": [ - 345.7000427246094, - 506.40008544921875 - ], - "bbox": [ - 345.7000427246094, - 500.40008544921875, - 352.9000549316406, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-€", - "origin": [ - 352.9000549316406, - 506.40008544921875 - ], - "bbox": [ - 352.9000549316406, - 501.7000732421875, - 358.2000427246094, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hà", - "origin": [ - 358.2000427246094, - 506.40008544921875 - ], - "bbox": [ - 358.2000427246094, - 500.40008544921875, - 363.4000549316406, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1€", - "origin": [ - 363.4000549316406, - 506.40008544921875 - ], - "bbox": [ - 363.4000549316406, - 501.7000732421875, - 368.800048828125, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F»/ß|Þ\u0011 Iß", - "origin": [ - 368.800048828125, - 506.40008544921875 - ], - "bbox": [ - 368.800048828125, - 500.40008544921875, - 394.8000183105469, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "I", - "origin": [ - 394.8000183105469, - 506.40008544921875 - ], - "bbox": [ - 394.8000183105469, - 501.7000732421875, - 404.70001220703125, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "AÀ\u0011ºFÞ«´gºfž\\Þ/Ÿ", - "origin": [ - 404.70001220703125, - 506.40008544921875 - ], - "bbox": [ - 404.70001220703125, - 500.40008544921875, - 456.8999938964844, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")>D", - "origin": [ - 456.8999938964844, - 506.40008544921875 - ], - "bbox": [ - 456.8999938964844, - 501.7000732421875, - 474.0, - 519.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "WÄFÞ\u0011 Y»\"Ċ¼\"ß", - "origin": [ - 474.0, - 506.40008544921875 - ], - "bbox": [ - 474.0, - 500.40008544921875, - 509.70001220703125, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�ç", - "origin": [ - 509.70001220703125, - 506.40008544921875 - ], - "bbox": [ - 509.70001220703125, - 500.10009765625, - 515.4000244140625, - 520.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " £", - "origin": [ - 515.4000244140625, - 506.40008544921875 - ], - "bbox": [ - 515.4000244140625, - 500.40008544921875, - 522.9000244140625, - 519.60009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð+ì", - "origin": [ - 522.9000244140625, - 506.40008544921875 - ], - "bbox": [ - 522.9000244140625, - 500.10009765625, - 533.7000732421875, - 520.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.90008544921875, - 500.10009765625, - 533.7000732421875, - 520.5000610351562 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 78.80007934570312, - 519.0000610351562, - 129.90008544921875, - 539.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.80007934570312, - 525.300048828125 - ], - "bbox": [ - 78.80007934570312, - 519.0000610351562, - 129.90008544921875, - 539.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80007934570312, - 519.0000610351562, - 129.90008544921875, - 539.4000244140625 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 72.5, - 544.4000244140625, - 344.89996337890625, - 564.7999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 550.7000122070312 - ], - "bbox": [ - 72.5, - 544.7000122070312, - 72.5, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8&/", - "origin": [ - 72.5, - 550.7000122070312 - ], - "bbox": [ - 72.5, - 546.0, - 83.5999984741211, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "•Ä/Á\"žY¼HÞ", - "origin": [ - 83.5999984741211, - 550.7000122070312 - ], - "bbox": [ - 83.5999984741211, - 544.7000122070312, - 114.0999984741211, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 114.0999984741211, - 550.7000122070312 - ], - "bbox": [ - 114.0999984741211, - 546.0, - 119.5999984741211, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f |ßFÞ/Ÿ\"ߊ»\"ä", - "origin": [ - 119.5999984741211, - 550.7000122070312 - ], - "bbox": [ - 119.5999984741211, - 544.7000122070312, - 156.6999969482422, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 156.6999969482422, - 550.7000122070312 - ], - "bbox": [ - 156.6999969482422, - 544.4000244140625, - 161.6999969482422, - 564.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gÁgžH Iß", - "origin": [ - 161.6999969482422, - 550.7000122070312 - ], - "bbox": [ - 161.6999969482422, - 544.7000122070312, - 182.90000915527344, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "T", - "origin": [ - 182.90000915527344, - 550.7000122070312 - ], - "bbox": [ - 182.90000915527344, - 546.0, - 189.50001525878906, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xá", - "origin": [ - 189.50001525878906, - 550.7000122070312 - ], - "bbox": [ - 189.50001525878906, - 544.7000122070312, - 193.70001220703125, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000eð", - "origin": [ - 193.70001220703125, - 550.7000122070312 - ], - "bbox": [ - 193.70001220703125, - 544.4000244140625, - 202.90000915527344, - 564.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 202.90000915527344, - 550.7000122070312 - ], - "bbox": [ - 202.90000915527344, - 546.0, - 208.3000030517578, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šâ\"ßFÞ/ŸHÆ\n»\"ßgáÕÆ\nÞ", - "origin": [ - 208.3000030517578, - 550.7000122070312 - ], - "bbox": [ - 208.3000030517578, - 544.7000122070312, - 265.70001220703125, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 265.70001220703125, - 550.7000122070312 - ], - "bbox": [ - 265.70001220703125, - 546.0, - 271.1000061035156, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 271.1000061035156, - 550.7000122070312 - ], - "bbox": [ - 271.1000061035156, - 544.7000122070312, - 281.6000061035156, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "4,", - "origin": [ - 281.6000061035156, - 550.7000122070312 - ], - "bbox": [ - 281.6000061035156, - 546.0, - 291.8999938964844, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H»\"º|Æ\nÞ", - "origin": [ - 291.8999938964844, - 550.7000122070312 - ], - "bbox": [ - 291.8999938964844, - 544.7000122070312, - 312.79998779296875, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 312.79998779296875, - 550.7000122070312 - ], - "bbox": [ - 312.79998779296875, - 546.0, - 318.29998779296875, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ý\n£", - "origin": [ - 318.29998779296875, - 550.7000122070312 - ], - "bbox": [ - 318.29998779296875, - 544.7000122070312, - 329.0999755859375, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8&/", - "origin": [ - 329.0999755859375, - 550.7000122070312 - ], - "bbox": [ - 329.0999755859375, - 546.0, - 340.0999755859375, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 340.0999755859375, - 550.7000122070312 - ], - "bbox": [ - 340.0999755859375, - 544.7000122070312, - 344.89996337890625, - 563.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 544.4000244140625, - 344.89996337890625, - 564.7999877929688 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 72.5, - 558.1000366210938, - 261.29998779296875, - 578.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 564.4000244140625 - ], - "bbox": [ - 72.5, - 558.4000244140625, - 72.5, - 577.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 72.5, - 564.4000244140625 - ], - "bbox": [ - 72.5, - 559.7000122070312, - 77.5, - 577.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÂ0Ä/Á\"žY¼HÞ", - "origin": [ - 77.5, - 564.4000244140625 - ], - "bbox": [ - 77.5, - 558.4000244140625, - 114.0999984741211, - 577.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 114.0999984741211, - 564.4000244140625 - ], - "bbox": [ - 114.0999984741211, - 559.7000122070312, - 119.5999984741211, - 577.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f |ßFÞ/Ÿ\"ߊ»\"ä|›/ã", - "origin": [ - 119.5999984741211, - 564.4000244140625 - ], - "bbox": [ - 119.5999984741211, - 558.4000244140625, - 166.99998474121094, - 577.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 558.4000244140625, - 166.99998474121094, - 577.6000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ê", - "origin": [ - 176.89999389648438, - 564.4000244140625 - ], - "bbox": [ - 176.89999389648438, - 558.1000366210938, - 176.89999389648438, - 578.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßF¶.žHáA¾\nĊ»\"º/Á\nÁHÝ\n£", - "origin": [ - 176.89999389648438, - 564.4000244140625 - ], - "bbox": [ - 176.89999389648438, - 558.4000244140625, - 245.39999389648438, - 577.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 245.39999389648438, - 564.4000244140625 - ], - "bbox": [ - 245.39999389648438, - 559.7000122070312, - 250.39999389648438, - 577.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÂgä", - "origin": [ - 250.39999389648438, - 564.4000244140625 - ], - "bbox": [ - 250.39999389648438, - 558.4000244140625, - 261.29998779296875, - 577.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.89999389648438, - 558.1000366210938, - 261.29998779296875, - 578.5 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 82.89999389648438, - 571.800048828125, - 287.3000183105469, - 592.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 578.1000366210938 - ], - "bbox": [ - 82.89999389648438, - 572.1000366210938, - 82.89999389648438, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 82.89999389648438, - 578.1000366210938 - ], - "bbox": [ - 82.89999389648438, - 573.4000244140625, - 87.89999389648438, - 591.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä\nÝ", - "origin": [ - 87.89999389648438, - 578.1000366210938 - ], - "bbox": [ - 87.89999389648438, - 572.1000366210938, - 98.79999542236328, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 98.79999542236328, - 578.1000366210938 - ], - "bbox": [ - 98.79999542236328, - 571.800048828125, - 103.79999542236328, - 592.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "k¡/»/ßHà", - "origin": [ - 103.79999542236328, - 578.1000366210938 - ], - "bbox": [ - 103.79999542236328, - 572.1000366210938, - 130.0, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$\u0019q", - "origin": [ - 130.0, - 578.1000366210938 - ], - "bbox": [ - 130.0, - 573.4000244140625, - 145.90000915527344, - 591.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g Y¡gÄF´/Ÿ/ߊ»", - "origin": [ - 145.90000915527344, - 578.1000366210938 - ], - "bbox": [ - 145.90000915527344, - 572.1000366210938, - 182.70001220703125, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&/#$", - "origin": [ - 182.70001220703125, - 578.1000366210938 - ], - "bbox": [ - 182.70001220703125, - 573.4000244140625, - 194.00001525878906, - 591.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YäF¾Š¡gÄI´/Ÿ/ßF»", - "origin": [ - 194.00001525878906, - 578.1000366210938 - ], - "bbox": [ - 194.00001525878906, - 572.1000366210938, - 235.00001525878906, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "/", - "origin": [ - 235.00001525878906, - 578.1000366210938 - ], - "bbox": [ - 235.00001525878906, - 573.4000244140625, - 245.6000213623047, - 591.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÝ\n£", - "origin": [ - 245.6000213623047, - 578.1000366210938 - ], - "bbox": [ - 245.6000213623047, - 572.1000366210938, - 255.6000213623047, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 255.6000213623047, - 578.1000366210938 - ], - "bbox": [ - 255.6000213623047, - 571.800048828125, - 260.60003662109375, - 592.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä\nÝI›/½gä", - "origin": [ - 260.60003662109375, - 578.1000366210938 - ], - "bbox": [ - 260.60003662109375, - 572.1000366210938, - 287.3000183105469, - 591.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 571.800048828125, - 287.3000183105469, - 592.2000122070312 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 82.89999389648438, - 585.300048828125, - 271.6000061035156, - 605.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 591.6000366210938 - ], - "bbox": [ - 82.89999389648438, - 585.6000366210938, - 82.89999389648438, - 604.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 82.89999389648438, - 591.6000366210938 - ], - "bbox": [ - 82.89999389648438, - 585.300048828125, - 87.89999389648438, - 605.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 585.300048828125, - 87.89999389648438, - 605.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\n»\"ßHà", - "origin": [ - 98.29999542236328, - 591.6000366210938 - ], - "bbox": [ - 98.29999542236328, - 585.6000366210938, - 114.29999542236328, - 604.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$\u000eq", - "origin": [ - 114.29999542236328, - 591.6000366210938 - ], - "bbox": [ - 114.29999542236328, - 586.9000244140625, - 130.10000610351562, - 604.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f Y¡gÄF´\nŸ\"ߊ»", - "origin": [ - 130.10000610351562, - 591.6000366210938 - ], - "bbox": [ - 130.10000610351562, - 585.6000366210938, - 167.00001525878906, - 604.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e0G$", - "origin": [ - 167.00001525878906, - 591.6000366210938 - ], - "bbox": [ - 167.00001525878906, - 586.9000244140625, - 178.40000915527344, - 604.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c䊾F¡\"Ä|´/Ÿ\"ß|»", - "origin": [ - 178.40000915527344, - 591.6000366210938 - ], - "bbox": [ - 178.40000915527344, - 585.6000366210938, - 219.3000030517578, - 604.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "I0", - "origin": [ - 219.3000030517578, - 591.6000366210938 - ], - "bbox": [ - 219.3000030517578, - 586.9000244140625, - 229.1999969482422, - 604.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ý\n£", - "origin": [ - 229.1999969482422, - 591.6000366210938 - ], - "bbox": [ - 229.1999969482422, - 585.6000366210938, - 239.89999389648438, - 604.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 239.89999389648438, - 591.6000366210938 - ], - "bbox": [ - 239.89999389648438, - 585.300048828125, - 244.89999389648438, - 605.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gäHÝ|›/½gä", - "origin": [ - 244.89999389648438, - 591.6000366210938 - ], - "bbox": [ - 244.89999389648438, - 585.6000366210938, - 271.6000061035156, - 604.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.29999542236328, - 585.300048828125, - 271.6000061035156, - 605.7000122070312 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 82.89999389648438, - 599.0000610351562, - 271.6000061035156, - 619.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 605.300048828125 - ], - "bbox": [ - 82.89999389648438, - 599.300048828125, - 82.89999389648438, - 618.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 82.89999389648438, - 605.300048828125 - ], - "bbox": [ - 82.89999389648438, - 599.0000610351562, - 87.89999389648438, - 619.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 599.0000610351562, - 87.89999389648438, - 619.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\n»\"ßHà", - "origin": [ - 98.29999542236328, - 605.300048828125 - ], - "bbox": [ - 98.29999542236328, - 599.300048828125, - 114.29999542236328, - 618.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$\u000eq", - "origin": [ - 114.29999542236328, - 605.300048828125 - ], - "bbox": [ - 114.29999542236328, - 600.6000366210938, - 130.10000610351562, - 618.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f Y¡gÄF´\nŸ\"ߊ»\"¹", - "origin": [ - 130.10000610351562, - 605.300048828125 - ], - "bbox": [ - 130.10000610351562, - 599.300048828125, - 172.50001525878906, - 618.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 172.50001525878906, - 605.300048828125 - ], - "bbox": [ - 172.50001525878906, - 600.6000366210938, - 178.40000915527344, - 618.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c䊾F¡\"Ä|´/Ÿ\"ß|»(¹/Ý\n£", - "origin": [ - 178.40000915527344, - 605.300048828125 - ], - "bbox": [ - 178.40000915527344, - 599.300048828125, - 239.89999389648438, - 618.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 239.89999389648438, - 605.300048828125 - ], - "bbox": [ - 239.89999389648438, - 599.0000610351562, - 244.89999389648438, - 619.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gäHÝ|›/½gä", - "origin": [ - 244.89999389648438, - 605.300048828125 - ], - "bbox": [ - 244.89999389648438, - 599.300048828125, - 271.6000061035156, - 618.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.29999542236328, - 599.0000610351562, - 271.6000061035156, - 619.4000244140625 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 84.29999542236328, - 612.9000244140625, - 94.9000015258789, - 632.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "·\n·\n·", - "origin": [ - 84.29999542236328, - 618.9000244140625 - ], - "bbox": [ - 84.29999542236328, - 612.9000244140625, - 94.9000015258789, - 632.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.29999542236328, - 612.9000244140625, - 94.9000015258789, - 632.1000366210938 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 82.89999389648438, - 626.300048828125, - 292.6000061035156, - 646.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 632.6000366210938 - ], - "bbox": [ - 82.89999389648438, - 626.6000366210938, - 82.89999389648438, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8\u001e0", - "origin": [ - 82.89999389648438, - 632.6000366210938 - ], - "bbox": [ - 82.89999389648438, - 627.9000244140625, - 93.39999389648438, - 645.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä\nÝ", - "origin": [ - 93.39999389648438, - 632.6000366210938 - ], - "bbox": [ - 93.39999389648438, - 626.6000366210938, - 104.0999984741211, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð", - "origin": [ - 104.0999984741211, - 632.6000366210938 - ], - "bbox": [ - 104.0999984741211, - 626.300048828125, - 109.0, - 646.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 626.300048828125, - 109.0, - 646.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgÄYÀ\u0011ß", - "origin": [ - 119.09999084472656, - 632.6000366210938 - ], - "bbox": [ - 119.09999084472656, - 626.6000366210938, - 135.29998779296875, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"G$", - "origin": [ - 135.29998779296875, - 632.6000366210938 - ], - "bbox": [ - 135.29998779296875, - 627.9000244140625, - 146.3999786376953, - 645.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F Y¡gÄF´\nŸ\"ߊ»", - "origin": [ - 146.3999786376953, - 632.6000366210938 - ], - "bbox": [ - 146.3999786376953, - 626.6000366210938, - 182.59999084472656, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&/-$", - "origin": [ - 182.59999084472656, - 632.6000366210938 - ], - "bbox": [ - 182.59999084472656, - 627.9000244140625, - 194.0, - 645.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YäF¾Š¡gÄI´/Ÿ/ßF»", - "origin": [ - 194.0, - 632.6000366210938 - ], - "bbox": [ - 194.0, - 626.6000366210938, - 235.0, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "/", - "origin": [ - 235.0, - 632.6000366210938 - ], - "bbox": [ - 235.0, - 627.9000244140625, - 245.60000610351562, - 645.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÝ\n£", - "origin": [ - 245.60000610351562, - 632.6000366210938 - ], - "bbox": [ - 245.60000610351562, - 626.6000366210938, - 255.60000610351562, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 255.60000610351562, - 632.6000366210938 - ], - "bbox": [ - 255.60000610351562, - 626.300048828125, - 260.6000061035156, - 646.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä\nÝH£", - "origin": [ - 260.6000061035156, - 632.6000366210938 - ], - "bbox": [ - 260.6000061035156, - 626.6000366210938, - 276.70001220703125, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8\u001e0", - "origin": [ - 276.70001220703125, - 632.6000366210938 - ], - "bbox": [ - 276.70001220703125, - 627.9000244140625, - 287.20001220703125, - 645.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä", - "origin": [ - 287.20001220703125, - 632.6000366210938 - ], - "bbox": [ - 287.20001220703125, - 626.6000366210938, - 292.6000061035156, - 645.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.09999084472656, - 626.300048828125, - 292.6000061035156, - 646.7000122070312 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 82.59999084472656, - 639.800048828125, - 351.0999755859375, - 660.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ð", - "origin": [ - 82.59999084472656, - 646.1000366210938 - ], - "bbox": [ - 82.59999084472656, - 639.800048828125, - 82.59999084472656, - 660.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gÁgžH FßU¶gÄ\"áAÅ\"ߊ¼\u0011žcÞ\nÞ\u0011žcÞ/¼", - "origin": [ - 82.59999084472656, - 646.1000366210938 - ], - "bbox": [ - 82.59999084472656, - 640.1000366210938, - 177.19998168945312, - 659.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.59999084472656, - 639.800048828125, - 177.19998168945312, - 660.2000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ÿ\"º", - "origin": [ - 187.29998779296875, - 646.1000366210938 - ], - "bbox": [ - 187.29998779296875, - 640.1000366210938, - 192.79998779296875, - 659.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.29998779296875, - 640.1000366210938, - 192.79998779296875, - 659.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¼\"ßFŸ0â\"ßF»\n㫟\u0011žY»\"ß", - "origin": [ - 202.89999389648438, - 646.1000366210938 - ], - "bbox": [ - 202.89999389648438, - 640.1000366210938, - 266.1000061035156, - 659.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 266.1000061035156, - 646.1000366210938 - ], - "bbox": [ - 266.1000061035156, - 641.4000244140625, - 271.3000183105469, - 659.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«ºŠàá/žcŸ\nŸ\u0011žcÞ/¼", - "origin": [ - 271.3000183105469, - 646.1000366210938 - ], - "bbox": [ - 271.3000183105469, - 640.1000366210938, - 328.79998779296875, - 659.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.89999389648438, - 640.1000366210938, - 328.79998779296875, - 659.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "·\n·\n·", - "origin": [ - 340.5, - 646.1000366210938 - ], - "bbox": [ - 340.5, - 640.1000366210938, - 351.0999755859375, - 659.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.5, - 640.1000366210938, - 351.0999755859375, - 659.300048828125 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 82.89999389648438, - 653.5000610351562, - 287.6999816894531, - 673.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 659.800048828125 - ], - "bbox": [ - 82.89999389648438, - 653.800048828125, - 82.89999389648438, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8\u001e0", - "origin": [ - 82.89999389648438, - 659.800048828125 - ], - "bbox": [ - 82.89999389648438, - 655.1000366210938, - 93.39999389648438, - 672.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä\nÝ", - "origin": [ - 93.39999389648438, - 659.800048828125 - ], - "bbox": [ - 93.39999389648438, - 653.800048828125, - 104.0999984741211, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð", - "origin": [ - 104.0999984741211, - 659.800048828125 - ], - "bbox": [ - 104.0999984741211, - 653.5000610351562, - 109.0, - 673.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 653.5000610351562, - 109.0, - 673.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgÄYÀ\u0011ß", - "origin": [ - 119.09999084472656, - 659.800048828125 - ], - "bbox": [ - 119.09999084472656, - 653.800048828125, - 135.29998779296875, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"G$", - "origin": [ - 135.29998779296875, - 659.800048828125 - ], - "bbox": [ - 135.29998779296875, - 655.1000366210938, - 146.3999786376953, - 672.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F Y¡gÄF´\nŸ\"ߊ»", - "origin": [ - 146.3999786376953, - 659.800048828125 - ], - "bbox": [ - 146.3999786376953, - 653.800048828125, - 182.59999084472656, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e0G$", - "origin": [ - 182.59999084472656, - 659.800048828125 - ], - "bbox": [ - 182.59999084472656, - 655.1000366210938, - 193.99998474121094, - 672.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YäF¾Š¡gÄI´/Ÿ/ßF»", - "origin": [ - 193.99998474121094, - 659.800048828125 - ], - "bbox": [ - 193.99998474121094, - 653.800048828125, - 234.99998474121094, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "10", - "origin": [ - 234.99998474121094, - 659.800048828125 - ], - "bbox": [ - 234.99998474121094, - 655.1000366210938, - 240.3999786376953, - 672.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ý\n£", - "origin": [ - 240.3999786376953, - 659.800048828125 - ], - "bbox": [ - 240.3999786376953, - 653.800048828125, - 251.0999755859375, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%ð", - "origin": [ - 251.0999755859375, - 659.800048828125 - ], - "bbox": [ - 251.0999755859375, - 653.5000610351562, - 255.8999786376953, - 673.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gäHÝH£", - "origin": [ - 255.8999786376953, - 659.800048828125 - ], - "bbox": [ - 255.8999786376953, - 653.800048828125, - 271.8999938964844, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8\u001e0", - "origin": [ - 271.8999938964844, - 659.800048828125 - ], - "bbox": [ - 271.8999938964844, - 655.1000366210938, - 282.29998779296875, - 672.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä", - "origin": [ - 282.29998779296875, - 659.800048828125 - ], - "bbox": [ - 282.29998779296875, - 653.800048828125, - 287.6999816894531, - 673.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.09999084472656, - 653.5000610351562, - 287.6999816894531, - 673.9000244140625 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 82.59999084472656, - 667.2000122070312, - 387.699951171875, - 687.5999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 82.59999084472656, - 673.5 - ], - "bbox": [ - 82.59999084472656, - 667.2000122070312, - 82.59999084472656, - 687.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H¡gߊãk¶gߊ»/ß,ž\\Þ", - "origin": [ - 82.59999084472656, - 673.5 - ], - "bbox": [ - 82.59999084472656, - 667.5, - 140.0999755859375, - 686.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 140.0999755859375, - 673.5 - ], - "bbox": [ - 140.0999755859375, - 668.7999877929688, - 145.5999755859375, - 686.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß\nß", - "origin": [ - 145.5999755859375, - 673.5 - ], - "bbox": [ - 145.5999755859375, - 667.5, - 156.2999725341797, - 686.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 156.2999725341797, - 673.5 - ], - "bbox": [ - 156.2999725341797, - 668.7999877929688, - 161.49996948242188, - 686.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«ÄK YÆ/»�ž|ºFÆ\u0011áUÁHºHº", - "origin": [ - 161.49996948242188, - 673.5 - ], - "bbox": [ - 161.49996948242188, - 667.5, - 234.59994506835938, - 686.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@O", - "origin": [ - 234.59994506835938, - 673.5 - ], - "bbox": [ - 234.59994506835938, - 668.7999877929688, - 239.699951171875, - 686.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011žcÞ/¼(´gĊ»\nŸ\n㫟H¡\"ĊŸ0Ägá\náFßYÀ\"ÅfÁHß", - "origin": [ - 239.699951171875, - 673.5 - ], - "bbox": [ - 239.699951171875, - 667.5, - 360.39996337890625, - 686.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 360.39996337890625, - 673.5 - ], - "bbox": [ - 360.39996337890625, - 668.7999877929688, - 365.5999755859375, - 686.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "§·\n·\n·", - "origin": [ - 365.5999755859375, - 673.5 - ], - "bbox": [ - 365.5999755859375, - 667.5, - 387.699951171875, - 686.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.59999084472656, - 667.2000122070312, - 387.699951171875, - 687.5999755859375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 82.89999389648438, - 680.7000122070312, - 302.99993896484375, - 701.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 687.0 - ], - "bbox": [ - 82.89999389648438, - 681.0, - 82.89999389648438, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8\u001e0", - "origin": [ - 82.89999389648438, - 687.0 - ], - "bbox": [ - 82.89999389648438, - 682.2999877929688, - 93.39999389648438, - 700.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä\nÝ", - "origin": [ - 93.39999389648438, - 687.0 - ], - "bbox": [ - 93.39999389648438, - 681.0, - 104.0999984741211, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð", - "origin": [ - 104.0999984741211, - 687.0 - ], - "bbox": [ - 104.0999984741211, - 680.7000122070312, - 109.0, - 701.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 680.7000122070312, - 109.0, - 701.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgÄYÀ\u0011ß", - "origin": [ - 119.09999084472656, - 687.0 - ], - "bbox": [ - 119.09999084472656, - 681.0, - 135.29998779296875, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"G$", - "origin": [ - 135.29998779296875, - 687.0 - ], - "bbox": [ - 135.29998779296875, - 682.2999877929688, - 146.3999786376953, - 700.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FáFßg IŸ�ž|ºFÞ", - "origin": [ - 146.3999786376953, - 687.0 - ], - "bbox": [ - 146.3999786376953, - 681.0, - 182.49998474121094, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<0", - "origin": [ - 182.49998474121094, - 687.0 - ], - "bbox": [ - 182.49998474121094, - 682.2999877929688, - 188.09999084472656, - 700.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&·", - "origin": [ - 188.09999084472656, - 687.0 - ], - "bbox": [ - 188.09999084472656, - 681.0, - 194.89999389648438, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u0016/#$", - "origin": [ - 194.89999389648438, - 687.0 - ], - "bbox": [ - 194.89999389648438, - 682.2999877929688, - 204.39999389648438, - 700.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I䊾|¡gÄ|´\nŸ/ߊ»(¹/Ý\n£", - "origin": [ - 204.39999389648438, - 687.0 - ], - "bbox": [ - 204.39999389648438, - 681.0, - 266.0999755859375, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð", - "origin": [ - 266.0999755859375, - 687.0 - ], - "bbox": [ - 266.0999755859375, - 680.7000122070312, - 270.9999694824219, - 701.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä\nÝ\n£", - "origin": [ - 270.9999694824219, - 687.0 - ], - "bbox": [ - 270.9999694824219, - 681.0, - 287.199951171875, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�810", - "origin": [ - 287.199951171875, - 687.0 - ], - "bbox": [ - 287.199951171875, - 682.2999877929688, - 297.5999450683594, - 700.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä", - "origin": [ - 297.5999450683594, - 687.0 - ], - "bbox": [ - 297.5999450683594, - 681.0, - 302.99993896484375, - 700.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.09999084472656, - 680.7000122070312, - 302.99993896484375, - 701.0999755859375 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 83.39999389648438, - 694.4000244140625, - 393.0, - 714.7999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "$", - "origin": [ - 83.39999389648438, - 700.7000122070312 - ], - "bbox": [ - 83.39999389648438, - 696.0, - 83.39999389648438, - 713.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=è", - "origin": [ - 83.39999389648438, - 700.7000122070312 - ], - "bbox": [ - 83.39999389648438, - 694.4000244140625, - 87.89999389648438, - 714.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H¡gßkà�žY»fáIŸkŸH¡.žcÞ\n¼", - "origin": [ - 87.89999389648438, - 700.7000122070312 - ], - "bbox": [ - 87.89999389648438, - 694.7000122070312, - 161.1999969482422, - 713.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "­é", - "origin": [ - 161.1999969482422, - 700.7000122070312 - ], - "bbox": [ - 161.1999969482422, - 694.4000244140625, - 172.1999969482422, - 714.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&", - "origin": [ - 172.1999969482422, - 700.7000122070312 - ], - "bbox": [ - 172.1999969482422, - 696.0, - 178.3000030517578, - 713.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u001bâ\"ß", - "origin": [ - 178.3000030517578, - 700.7000122070312 - ], - "bbox": [ - 178.3000030517578, - 694.7000122070312, - 187.60000610351562, - 713.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.39999389648438, - 694.4000244140625, - 187.60000610351562, - 714.7999877929688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¼\"ºŠŸ«Ÿ\"º", - "origin": [ - 197.6999969482422, - 700.7000122070312 - ], - "bbox": [ - 197.6999969482422, - 694.7000122070312, - 224.10000610351562, - 713.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "4>", - "origin": [ - 224.10000610351562, - 700.7000122070312 - ], - "bbox": [ - 224.10000610351562, - 696.0, - 234.40000915527344, - 713.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/º", - "origin": [ - 234.40000915527344, - 700.7000122070312 - ], - "bbox": [ - 234.40000915527344, - 694.7000122070312, - 239.8000030517578, - 713.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "TP\u0019$", - "origin": [ - 239.8000030517578, - 700.7000122070312 - ], - "bbox": [ - 239.8000030517578, - 696.0, - 251.00001525878906, - 713.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "UáFÄgž", - "origin": [ - 251.00001525878906, - 700.7000122070312 - ], - "bbox": [ - 251.00001525878906, - 694.7000122070312, - 271.60003662109375, - 713.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 271.60003662109375, - 700.7000122070312 - ], - "bbox": [ - 271.60003662109375, - 696.0, - 276.4000244140625, - 713.7999877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 197.6999969482422, - 694.7000122070312, - 276.4000244140625, - 713.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ð", - "origin": [ - 286.6000061035156, - 700.7000122070312 - ], - "bbox": [ - 286.6000061035156, - 694.4000244140625, - 286.6000061035156, - 714.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gÁgžH FßUŸ/ºk¡gßF»�áFß/ÁŠà", - "origin": [ - 286.6000061035156, - 700.7000122070312 - ], - "bbox": [ - 286.6000061035156, - 694.7000122070312, - 365.5000305175781, - 713.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "TP", - "origin": [ - 365.5000305175781, - 700.7000122070312 - ], - "bbox": [ - 365.5000305175781, - 696.0, - 372.10003662109375, - 713.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«·\n·\n·", - "origin": [ - 372.10003662109375, - 700.7000122070312 - ], - "bbox": [ - 372.10003662109375, - 694.7000122070312, - 393.0, - 713.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.6000061035156, - 694.4000244140625, - 393.0, - 714.7999877929688 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 25, - "type": 0, - "bbox": [ - 72.5, - 544.4000244140625, - 344.89996337890625, - 564.7999877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 550.7000122070312 - ], - "bbox": [ - 72.5, - 544.7000122070312, - 72.5, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8&/", - "origin": [ - 72.5, - 550.7000122070312 - ], - "bbox": [ - 72.5, - 546.0, - 83.5999984741211, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "•Ä/Á\"žY¼HÞ", - "origin": [ - 83.5999984741211, - 550.7000122070312 - ], - "bbox": [ - 83.5999984741211, - 544.7000122070312, - 114.0999984741211, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 114.0999984741211, - 550.7000122070312 - ], - "bbox": [ - 114.0999984741211, - 546.0, - 119.5999984741211, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f |ßFÞ/Ÿ\"ߊ»\"ä", - "origin": [ - 119.5999984741211, - 550.7000122070312 - ], - "bbox": [ - 119.5999984741211, - 544.7000122070312, - 156.6999969482422, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 156.6999969482422, - 550.7000122070312 - ], - "bbox": [ - 156.6999969482422, - 544.4000244140625, - 161.6999969482422, - 564.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gÁgžH Iß", - "origin": [ - 161.6999969482422, - 550.7000122070312 - ], - "bbox": [ - 161.6999969482422, - 544.7000122070312, - 182.90000915527344, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "T", - "origin": [ - 182.90000915527344, - 550.7000122070312 - ], - "bbox": [ - 182.90000915527344, - 546.0, - 189.50001525878906, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xá", - "origin": [ - 189.50001525878906, - 550.7000122070312 - ], - "bbox": [ - 189.50001525878906, - 544.7000122070312, - 193.70001220703125, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000eð", - "origin": [ - 193.70001220703125, - 550.7000122070312 - ], - "bbox": [ - 193.70001220703125, - 544.4000244140625, - 202.90000915527344, - 564.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 202.90000915527344, - 550.7000122070312 - ], - "bbox": [ - 202.90000915527344, - 546.0, - 208.3000030517578, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Šâ\"ßFÞ/ŸHÆ\n»\"ßgáÕÆ\nÞ", - "origin": [ - 208.3000030517578, - 550.7000122070312 - ], - "bbox": [ - 208.3000030517578, - 544.7000122070312, - 265.70001220703125, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 265.70001220703125, - 550.7000122070312 - ], - "bbox": [ - 265.70001220703125, - 546.0, - 271.1000061035156, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 271.1000061035156, - 550.7000122070312 - ], - "bbox": [ - 271.1000061035156, - 544.7000122070312, - 281.6000061035156, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "4,", - "origin": [ - 281.6000061035156, - 550.7000122070312 - ], - "bbox": [ - 281.6000061035156, - 546.0, - 291.8999938964844, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H»\"º|Æ\nÞ", - "origin": [ - 291.8999938964844, - 550.7000122070312 - ], - "bbox": [ - 291.8999938964844, - 544.7000122070312, - 312.79998779296875, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 312.79998779296875, - 550.7000122070312 - ], - "bbox": [ - 312.79998779296875, - 546.0, - 318.29998779296875, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ý\n£", - "origin": [ - 318.29998779296875, - 550.7000122070312 - ], - "bbox": [ - 318.29998779296875, - 544.7000122070312, - 329.0999755859375, - 563.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8&/", - "origin": [ - 329.0999755859375, - 550.7000122070312 - ], - "bbox": [ - 329.0999755859375, - 546.0, - 340.0999755859375, - 563.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 340.0999755859375, - 550.7000122070312 - ], - "bbox": [ - 340.0999755859375, - 544.7000122070312, - 344.89996337890625, - 563.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 544.4000244140625, - 344.89996337890625, - 564.7999877929688 - ] - } - ], - "tag": "on-table" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 72.5, - 558.1000366210938, - 261.29998779296875, - 578.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 564.4000244140625 - ], - "bbox": [ - 72.5, - 558.4000244140625, - 72.5, - 577.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 72.5, - 564.4000244140625 - ], - "bbox": [ - 72.5, - 559.7000122070312, - 77.5, - 577.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÂ0Ä/Á\"žY¼HÞ", - "origin": [ - 77.5, - 564.4000244140625 - ], - "bbox": [ - 77.5, - 558.4000244140625, - 114.0999984741211, - 577.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 114.0999984741211, - 564.4000244140625 - ], - "bbox": [ - 114.0999984741211, - 559.7000122070312, - 119.5999984741211, - 577.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f |ßFÞ/Ÿ\"ߊ»\"ä|›/ã", - "origin": [ - 119.5999984741211, - 564.4000244140625 - ], - "bbox": [ - 119.5999984741211, - 558.4000244140625, - 166.99998474121094, - 577.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 558.4000244140625, - 166.99998474121094, - 577.6000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ê", - "origin": [ - 176.89999389648438, - 564.4000244140625 - ], - "bbox": [ - 176.89999389648438, - 558.1000366210938, - 176.89999389648438, - 578.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßF¶.žHáA¾\nĊ»\"º/Á\nÁHÝ\n£", - "origin": [ - 176.89999389648438, - 564.4000244140625 - ], - "bbox": [ - 176.89999389648438, - 558.4000244140625, - 245.39999389648438, - 577.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8", - "origin": [ - 245.39999389648438, - 564.4000244140625 - ], - "bbox": [ - 245.39999389648438, - 559.7000122070312, - 250.39999389648438, - 577.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÂgä", - "origin": [ - 250.39999389648438, - 564.4000244140625 - ], - "bbox": [ - 250.39999389648438, - 558.4000244140625, - 261.29998779296875, - 577.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.89999389648438, - 558.1000366210938, - 261.29998779296875, - 578.5 - ] - } - ], - "tag": "on-table" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 82.89999389648438, - 571.800048828125, - 287.3000183105469, - 592.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 578.1000366210938 - ], - "bbox": [ - 82.89999389648438, - 572.1000366210938, - 82.89999389648438, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 82.89999389648438, - 578.1000366210938 - ], - "bbox": [ - 82.89999389648438, - 573.4000244140625, - 87.89999389648438, - 591.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä\nÝ", - "origin": [ - 87.89999389648438, - 578.1000366210938 - ], - "bbox": [ - 87.89999389648438, - 572.1000366210938, - 98.79999542236328, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 98.79999542236328, - 578.1000366210938 - ], - "bbox": [ - 98.79999542236328, - 571.800048828125, - 103.79999542236328, - 592.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "k¡/»/ßHà", - "origin": [ - 103.79999542236328, - 578.1000366210938 - ], - "bbox": [ - 103.79999542236328, - 572.1000366210938, - 130.0, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$\u0019q", - "origin": [ - 130.0, - 578.1000366210938 - ], - "bbox": [ - 130.0, - 573.4000244140625, - 145.90000915527344, - 591.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g Y¡gÄF´/Ÿ/ߊ»", - "origin": [ - 145.90000915527344, - 578.1000366210938 - ], - "bbox": [ - 145.90000915527344, - 572.1000366210938, - 182.70001220703125, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&/#$", - "origin": [ - 182.70001220703125, - 578.1000366210938 - ], - "bbox": [ - 182.70001220703125, - 573.4000244140625, - 194.00001525878906, - 591.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YäF¾Š¡gÄI´/Ÿ/ßF»", - "origin": [ - 194.00001525878906, - 578.1000366210938 - ], - "bbox": [ - 194.00001525878906, - 572.1000366210938, - 235.00001525878906, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "/", - "origin": [ - 235.00001525878906, - 578.1000366210938 - ], - "bbox": [ - 235.00001525878906, - 573.4000244140625, - 245.6000213623047, - 591.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÝ\n£", - "origin": [ - 245.6000213623047, - 578.1000366210938 - ], - "bbox": [ - 245.6000213623047, - 572.1000366210938, - 255.6000213623047, - 591.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 255.6000213623047, - 578.1000366210938 - ], - "bbox": [ - 255.6000213623047, - 571.800048828125, - 260.60003662109375, - 592.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä\nÝI›/½gä", - "origin": [ - 260.60003662109375, - 578.1000366210938 - ], - "bbox": [ - 260.60003662109375, - 572.1000366210938, - 287.3000183105469, - 591.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 571.800048828125, - 287.3000183105469, - 592.2000122070312 - ] - } - ], - "tag": "on-table" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 82.89999389648438, - 585.300048828125, - 271.6000061035156, - 605.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 591.6000366210938 - ], - "bbox": [ - 82.89999389648438, - 585.6000366210938, - 82.89999389648438, - 604.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 82.89999389648438, - 591.6000366210938 - ], - "bbox": [ - 82.89999389648438, - 585.300048828125, - 87.89999389648438, - 605.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 585.300048828125, - 87.89999389648438, - 605.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\n»\"ßHà", - "origin": [ - 98.29999542236328, - 591.6000366210938 - ], - "bbox": [ - 98.29999542236328, - 585.6000366210938, - 114.29999542236328, - 604.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$\u000eq", - "origin": [ - 114.29999542236328, - 591.6000366210938 - ], - "bbox": [ - 114.29999542236328, - 586.9000244140625, - 130.10000610351562, - 604.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f Y¡gÄF´\nŸ\"ߊ»", - "origin": [ - 130.10000610351562, - 591.6000366210938 - ], - "bbox": [ - 130.10000610351562, - 585.6000366210938, - 167.00001525878906, - 604.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e0G$", - "origin": [ - 167.00001525878906, - 591.6000366210938 - ], - "bbox": [ - 167.00001525878906, - 586.9000244140625, - 178.40000915527344, - 604.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c䊾F¡\"Ä|´/Ÿ\"ß|»", - "origin": [ - 178.40000915527344, - 591.6000366210938 - ], - "bbox": [ - 178.40000915527344, - 585.6000366210938, - 219.3000030517578, - 604.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "I0", - "origin": [ - 219.3000030517578, - 591.6000366210938 - ], - "bbox": [ - 219.3000030517578, - 586.9000244140625, - 229.1999969482422, - 604.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ý\n£", - "origin": [ - 229.1999969482422, - 591.6000366210938 - ], - "bbox": [ - 229.1999969482422, - 585.6000366210938, - 239.89999389648438, - 604.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 239.89999389648438, - 591.6000366210938 - ], - "bbox": [ - 239.89999389648438, - 585.300048828125, - 244.89999389648438, - 605.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gäHÝ|›/½gä", - "origin": [ - 244.89999389648438, - 591.6000366210938 - ], - "bbox": [ - 244.89999389648438, - 585.6000366210938, - 271.6000061035156, - 604.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.29999542236328, - 585.300048828125, - 271.6000061035156, - 605.7000122070312 - ] - } - ], - "tag": "on-table" - }, - { - "number": 29, - "type": 0, - "bbox": [ - 82.89999389648438, - 599.0000610351562, - 271.6000061035156, - 619.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 605.300048828125 - ], - "bbox": [ - 82.89999389648438, - 599.300048828125, - 82.89999389648438, - 618.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 82.89999389648438, - 605.300048828125 - ], - "bbox": [ - 82.89999389648438, - 599.0000610351562, - 87.89999389648438, - 619.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 599.0000610351562, - 87.89999389648438, - 619.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\n»\"ßHà", - "origin": [ - 98.29999542236328, - 605.300048828125 - ], - "bbox": [ - 98.29999542236328, - 599.300048828125, - 114.29999542236328, - 618.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$\u000eq", - "origin": [ - 114.29999542236328, - 605.300048828125 - ], - "bbox": [ - 114.29999542236328, - 600.6000366210938, - 130.10000610351562, - 618.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f Y¡gÄF´\nŸ\"ߊ»\"¹", - "origin": [ - 130.10000610351562, - 605.300048828125 - ], - "bbox": [ - 130.10000610351562, - 599.300048828125, - 172.50001525878906, - 618.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 172.50001525878906, - 605.300048828125 - ], - "bbox": [ - 172.50001525878906, - 600.6000366210938, - 178.40000915527344, - 618.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c䊾F¡\"Ä|´/Ÿ\"ß|»(¹/Ý\n£", - "origin": [ - 178.40000915527344, - 605.300048828125 - ], - "bbox": [ - 178.40000915527344, - 599.300048828125, - 239.89999389648438, - 618.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 239.89999389648438, - 605.300048828125 - ], - "bbox": [ - 239.89999389648438, - 599.0000610351562, - 244.89999389648438, - 619.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gäHÝ|›/½gä", - "origin": [ - 244.89999389648438, - 605.300048828125 - ], - "bbox": [ - 244.89999389648438, - 599.300048828125, - 271.6000061035156, - 618.5000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 98.29999542236328, - 599.0000610351562, - 271.6000061035156, - 619.4000244140625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 84.29999542236328, - 612.9000244140625, - 94.9000015258789, - 632.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "·\n·\n·", - "origin": [ - 84.29999542236328, - 618.9000244140625 - ], - "bbox": [ - 84.29999542236328, - 612.9000244140625, - 94.9000015258789, - 632.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.29999542236328, - 612.9000244140625, - 94.9000015258789, - 632.1000366210938 - ] - } - ], - "tag": "on-table" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 82.89999389648438, - 626.300048828125, - 292.6000061035156, - 646.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 632.6000366210938 - ], - "bbox": [ - 82.89999389648438, - 626.6000366210938, - 82.89999389648438, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8\u001e0", - "origin": [ - 82.89999389648438, - 632.6000366210938 - ], - "bbox": [ - 82.89999389648438, - 627.9000244140625, - 93.39999389648438, - 645.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä\nÝ", - "origin": [ - 93.39999389648438, - 632.6000366210938 - ], - "bbox": [ - 93.39999389648438, - 626.6000366210938, - 104.0999984741211, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð", - "origin": [ - 104.0999984741211, - 632.6000366210938 - ], - "bbox": [ - 104.0999984741211, - 626.300048828125, - 109.0, - 646.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 626.300048828125, - 109.0, - 646.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgÄYÀ\u0011ß", - "origin": [ - 119.09999084472656, - 632.6000366210938 - ], - "bbox": [ - 119.09999084472656, - 626.6000366210938, - 135.29998779296875, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"G$", - "origin": [ - 135.29998779296875, - 632.6000366210938 - ], - "bbox": [ - 135.29998779296875, - 627.9000244140625, - 146.3999786376953, - 645.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F Y¡gÄF´\nŸ\"ߊ»", - "origin": [ - 146.3999786376953, - 632.6000366210938 - ], - "bbox": [ - 146.3999786376953, - 626.6000366210938, - 182.59999084472656, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&/-$", - "origin": [ - 182.59999084472656, - 632.6000366210938 - ], - "bbox": [ - 182.59999084472656, - 627.9000244140625, - 194.0, - 645.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YäF¾Š¡gÄI´/Ÿ/ßF»", - "origin": [ - 194.0, - 632.6000366210938 - ], - "bbox": [ - 194.0, - 626.6000366210938, - 235.0, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "/", - "origin": [ - 235.0, - 632.6000366210938 - ], - "bbox": [ - 235.0, - 627.9000244140625, - 245.60000610351562, - 645.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÝ\n£", - "origin": [ - 245.60000610351562, - 632.6000366210938 - ], - "bbox": [ - 245.60000610351562, - 626.6000366210938, - 255.60000610351562, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 255.60000610351562, - 632.6000366210938 - ], - "bbox": [ - 255.60000610351562, - 626.300048828125, - 260.6000061035156, - 646.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä\nÝH£", - "origin": [ - 260.6000061035156, - 632.6000366210938 - ], - "bbox": [ - 260.6000061035156, - 626.6000366210938, - 276.70001220703125, - 645.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8\u001e0", - "origin": [ - 276.70001220703125, - 632.6000366210938 - ], - "bbox": [ - 276.70001220703125, - 627.9000244140625, - 287.20001220703125, - 645.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä", - "origin": [ - 287.20001220703125, - 632.6000366210938 - ], - "bbox": [ - 287.20001220703125, - 626.6000366210938, - 292.6000061035156, - 645.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.09999084472656, - 626.300048828125, - 292.6000061035156, - 646.7000122070312 - ] - } - ], - "tag": "on-table" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 82.59999084472656, - 639.800048828125, - 351.0999755859375, - 660.2000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ð", - "origin": [ - 82.59999084472656, - 646.1000366210938 - ], - "bbox": [ - 82.59999084472656, - 639.800048828125, - 82.59999084472656, - 660.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gÁgžH FßU¶gÄ\"áAÅ\"ߊ¼\u0011žcÞ\nÞ\u0011žcÞ/¼", - "origin": [ - 82.59999084472656, - 646.1000366210938 - ], - "bbox": [ - 82.59999084472656, - 640.1000366210938, - 177.19998168945312, - 659.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.59999084472656, - 639.800048828125, - 177.19998168945312, - 660.2000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ÿ\"º", - "origin": [ - 187.29998779296875, - 646.1000366210938 - ], - "bbox": [ - 187.29998779296875, - 640.1000366210938, - 192.79998779296875, - 659.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.29998779296875, - 640.1000366210938, - 192.79998779296875, - 659.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¼\"ßFŸ0â\"ßF»\n㫟\u0011žY»\"ß", - "origin": [ - 202.89999389648438, - 646.1000366210938 - ], - "bbox": [ - 202.89999389648438, - 640.1000366210938, - 266.1000061035156, - 659.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 266.1000061035156, - 646.1000366210938 - ], - "bbox": [ - 266.1000061035156, - 641.4000244140625, - 271.3000183105469, - 659.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«ºŠàá/žcŸ\nŸ\u0011žcÞ/¼", - "origin": [ - 271.3000183105469, - 646.1000366210938 - ], - "bbox": [ - 271.3000183105469, - 640.1000366210938, - 328.79998779296875, - 659.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.89999389648438, - 640.1000366210938, - 328.79998779296875, - 659.300048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "·\n·\n·", - "origin": [ - 340.5, - 646.1000366210938 - ], - "bbox": [ - 340.5, - 640.1000366210938, - 351.0999755859375, - 659.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 340.5, - 640.1000366210938, - 351.0999755859375, - 659.300048828125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 33, - "type": 0, - "bbox": [ - 82.89999389648438, - 653.5000610351562, - 287.6999816894531, - 673.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 659.800048828125 - ], - "bbox": [ - 82.89999389648438, - 653.800048828125, - 82.89999389648438, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8\u001e0", - "origin": [ - 82.89999389648438, - 659.800048828125 - ], - "bbox": [ - 82.89999389648438, - 655.1000366210938, - 93.39999389648438, - 672.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä\nÝ", - "origin": [ - 93.39999389648438, - 659.800048828125 - ], - "bbox": [ - 93.39999389648438, - 653.800048828125, - 104.0999984741211, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð", - "origin": [ - 104.0999984741211, - 659.800048828125 - ], - "bbox": [ - 104.0999984741211, - 653.5000610351562, - 109.0, - 673.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 653.5000610351562, - 109.0, - 673.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgÄYÀ\u0011ß", - "origin": [ - 119.09999084472656, - 659.800048828125 - ], - "bbox": [ - 119.09999084472656, - 653.800048828125, - 135.29998779296875, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"G$", - "origin": [ - 135.29998779296875, - 659.800048828125 - ], - "bbox": [ - 135.29998779296875, - 655.1000366210938, - 146.3999786376953, - 672.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F Y¡gÄF´\nŸ\"ߊ»", - "origin": [ - 146.3999786376953, - 659.800048828125 - ], - "bbox": [ - 146.3999786376953, - 653.800048828125, - 182.59999084472656, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e0G$", - "origin": [ - 182.59999084472656, - 659.800048828125 - ], - "bbox": [ - 182.59999084472656, - 655.1000366210938, - 193.99998474121094, - 672.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YäF¾Š¡gÄI´/Ÿ/ßF»", - "origin": [ - 193.99998474121094, - 659.800048828125 - ], - "bbox": [ - 193.99998474121094, - 653.800048828125, - 234.99998474121094, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "10", - "origin": [ - 234.99998474121094, - 659.800048828125 - ], - "bbox": [ - 234.99998474121094, - 655.1000366210938, - 240.3999786376953, - 672.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ý\n£", - "origin": [ - 240.3999786376953, - 659.800048828125 - ], - "bbox": [ - 240.3999786376953, - 653.800048828125, - 251.0999755859375, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%ð", - "origin": [ - 251.0999755859375, - 659.800048828125 - ], - "bbox": [ - 251.0999755859375, - 653.5000610351562, - 255.8999786376953, - 673.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gäHÝH£", - "origin": [ - 255.8999786376953, - 659.800048828125 - ], - "bbox": [ - 255.8999786376953, - 653.800048828125, - 271.8999938964844, - 673.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8\u001e0", - "origin": [ - 271.8999938964844, - 659.800048828125 - ], - "bbox": [ - 271.8999938964844, - 655.1000366210938, - 282.29998779296875, - 672.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä", - "origin": [ - 282.29998779296875, - 659.800048828125 - ], - "bbox": [ - 282.29998779296875, - 653.800048828125, - 287.6999816894531, - 673.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.09999084472656, - 653.5000610351562, - 287.6999816894531, - 673.9000244140625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 34, - "type": 0, - "bbox": [ - 82.59999084472656, - 667.2000122070312, - 387.699951171875, - 687.5999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 82.59999084472656, - 673.5 - ], - "bbox": [ - 82.59999084472656, - 667.2000122070312, - 82.59999084472656, - 687.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H¡gߊãk¶gߊ»/ß,ž\\Þ", - "origin": [ - 82.59999084472656, - 673.5 - ], - "bbox": [ - 82.59999084472656, - 667.5, - 140.0999755859375, - 686.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 140.0999755859375, - 673.5 - ], - "bbox": [ - 140.0999755859375, - 668.7999877929688, - 145.5999755859375, - 686.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß\nß", - "origin": [ - 145.5999755859375, - 673.5 - ], - "bbox": [ - 145.5999755859375, - 667.5, - 156.2999725341797, - 686.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 156.2999725341797, - 673.5 - ], - "bbox": [ - 156.2999725341797, - 668.7999877929688, - 161.49996948242188, - 686.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«ÄK YÆ/»�ž|ºFÆ\u0011áUÁHºHº", - "origin": [ - 161.49996948242188, - 673.5 - ], - "bbox": [ - 161.49996948242188, - 667.5, - 234.59994506835938, - 686.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@O", - "origin": [ - 234.59994506835938, - 673.5 - ], - "bbox": [ - 234.59994506835938, - 668.7999877929688, - 239.699951171875, - 686.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011žcÞ/¼(´gĊ»\nŸ\n㫟H¡\"ĊŸ0Ägá\náFßYÀ\"ÅfÁHß", - "origin": [ - 239.699951171875, - 673.5 - ], - "bbox": [ - 239.699951171875, - 667.5, - 360.39996337890625, - 686.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 360.39996337890625, - 673.5 - ], - "bbox": [ - 360.39996337890625, - 668.7999877929688, - 365.5999755859375, - 686.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "§·\n·\n·", - "origin": [ - 365.5999755859375, - 673.5 - ], - "bbox": [ - 365.5999755859375, - 667.5, - 387.699951171875, - 686.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.59999084472656, - 667.2000122070312, - 387.699951171875, - 687.5999755859375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 35, - "type": 0, - "bbox": [ - 82.89999389648438, - 680.7000122070312, - 302.99993896484375, - 701.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 687.0 - ], - "bbox": [ - 82.89999389648438, - 681.0, - 82.89999389648438, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�8\u001e0", - "origin": [ - 82.89999389648438, - 687.0 - ], - "bbox": [ - 82.89999389648438, - 682.2999877929688, - 93.39999389648438, - 700.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä\nÝ", - "origin": [ - 93.39999389648438, - 687.0 - ], - "bbox": [ - 93.39999389648438, - 681.0, - 104.0999984741211, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð", - "origin": [ - 104.0999984741211, - 687.0 - ], - "bbox": [ - 104.0999984741211, - 680.7000122070312, - 109.0, - 701.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 680.7000122070312, - 109.0, - 701.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgÄYÀ\u0011ß", - "origin": [ - 119.09999084472656, - 687.0 - ], - "bbox": [ - 119.09999084472656, - 681.0, - 135.29998779296875, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"G$", - "origin": [ - 135.29998779296875, - 687.0 - ], - "bbox": [ - 135.29998779296875, - 682.2999877929688, - 146.3999786376953, - 700.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FáFßg IŸ�ž|ºFÞ", - "origin": [ - 146.3999786376953, - 687.0 - ], - "bbox": [ - 146.3999786376953, - 681.0, - 182.49998474121094, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<0", - "origin": [ - 182.49998474121094, - 687.0 - ], - "bbox": [ - 182.49998474121094, - 682.2999877929688, - 188.09999084472656, - 700.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&·", - "origin": [ - 188.09999084472656, - 687.0 - ], - "bbox": [ - 188.09999084472656, - 681.0, - 194.89999389648438, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u0016/#$", - "origin": [ - 194.89999389648438, - 687.0 - ], - "bbox": [ - 194.89999389648438, - 682.2999877929688, - 204.39999389648438, - 700.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I䊾|¡gÄ|´\nŸ/ߊ»(¹/Ý\n£", - "origin": [ - 204.39999389648438, - 687.0 - ], - "bbox": [ - 204.39999389648438, - 681.0, - 266.0999755859375, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð", - "origin": [ - 266.0999755859375, - 687.0 - ], - "bbox": [ - 266.0999755859375, - 680.7000122070312, - 270.9999694824219, - 701.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä\nÝ\n£", - "origin": [ - 270.9999694824219, - 687.0 - ], - "bbox": [ - 270.9999694824219, - 681.0, - 287.199951171875, - 700.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�810", - "origin": [ - 287.199951171875, - 687.0 - ], - "bbox": [ - 287.199951171875, - 682.2999877929688, - 297.5999450683594, - 700.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä", - "origin": [ - 297.5999450683594, - 687.0 - ], - "bbox": [ - 297.5999450683594, - 681.0, - 302.99993896484375, - 700.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.09999084472656, - 680.7000122070312, - 302.99993896484375, - 701.0999755859375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgܝÁ\u001aöyžyØe¾\nØ!Á9ûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":e@", - "origin": [ - 530.7999877929688, - 43.5999755859375 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 9, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_10": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 72.49996948242188, - 77.699951171875, - 161.39996337890625, - 96.89994812011719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 72.49996948242188, - 83.699951171875 - ], - "bbox": [ - 72.49996948242188, - 78.99995422363281, - 72.49996948242188, - 96.7999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1\u0019\r?", - "origin": [ - 72.49996948242188, - 83.699951171875 - ], - "bbox": [ - 72.49996948242188, - 77.699951171875, - 82.89997100830078, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49996948242188, - 77.699951171875, - 82.89997100830078, - 96.89994812011719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A:\u001b348\u0013­#)6%", - "origin": [ - 102.99996948242188, - 83.699951171875 - ], - "bbox": [ - 102.99996948242188, - 77.699951171875, - 161.39996337890625, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.99996948242188, - 77.699951171875, - 161.39996337890625, - 96.89994812011719 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 72.49996948242188, - 105.89994812011719, - 537.9999389648438, - 126.2999496459961 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.49996948242188, - 112.199951171875 - ], - "bbox": [ - 72.49996948242188, - 106.199951171875, - 72.49996948242188, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©‚\u0018�6=§/5M«-©\u001a¦)Ê-§F\u001bu6!Ôy\u00199¦)«-ʬ6=¨g6[©?5M§F©F6#«-¨#\u00194Ç\u001c6#¥F\u0019\u001c©\u001a¤H§F©ò¥/£/¦)§\u001a¨^6=©?5¸³R´oµÍ¶ÌÇ9\u001b", - "origin": [ - 72.49996948242188, - 112.199951171875 - ], - "bbox": [ - 72.49996948242188, - 105.89994812011719, - 367.79998779296875, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ž“", - "origin": [ - 367.79998779296875, - 112.199951171875 - ], - "bbox": [ - 367.79998779296875, - 107.49995422363281, - 371.79998779296875, - 125.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9¦)6g߅Ê-\u0019ÉÐ\u001a\u0019\u001cʬ«Y¤�6…éaï", - "origin": [ - 371.79998779296875, - 112.199951171875 - ], - "bbox": [ - 371.79998779296875, - 105.89994812011719, - 443.5999450683594, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1,", - "origin": [ - 443.5999450683594, - 112.199951171875 - ], - "bbox": [ - 443.5999450683594, - 107.49995422363281, - 448.99993896484375, - 125.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w ", - "origin": [ - 448.99993896484375, - 112.199951171875 - ], - "bbox": [ - 448.99993896484375, - 105.89994812011719, - 454.7999267578125, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Eš", - "origin": [ - 454.7999267578125, - 112.199951171875 - ], - "bbox": [ - 454.7999267578125, - 106.199951171875, - 461.09991455078125, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©ÙÊ", - "origin": [ - 461.09991455078125, - 112.199951171875 - ], - "bbox": [ - 461.09991455078125, - 105.89994812011719, - 477.9999084472656, - 126.2999496459961 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49996948242188, - 105.89994812011719, - 477.9999084472656, - 126.2999496459961 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§/57«-ʬ«Y¤76c\u00194«-©\u001a¤�«o8", - "origin": [ - 483.5999755859375, - 112.199951171875 - ], - "bbox": [ - 483.5999755859375, - 105.89994812011719, - 537.9999389648438, - 126.2999496459961 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.5999755859375, - 105.89994812011719, - 537.9999389648438, - 126.2999496459961 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.79995727539062, - 119.49992370605469, - 214.30001831054688, - 139.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çBéaï", - "origin": [ - 72.79995727539062, - 125.7999267578125 - ], - "bbox": [ - 72.79995727539062, - 119.49992370605469, - 85.29995727539062, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1,)\u001f", - "origin": [ - 85.29995727539062, - 125.7999267578125 - ], - "bbox": [ - 85.29995727539062, - 121.09992980957031, - 101.09996032714844, - 138.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "н\n¾", - "origin": [ - 101.09996032714844, - 125.7999267578125 - ], - "bbox": [ - 101.09996032714844, - 119.7999267578125, - 111.49996185302734, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$", - "origin": [ - 111.49996185302734, - 125.7999267578125 - ], - "bbox": [ - 111.49996185302734, - 121.09992980957031, - 122.79996490478516, - 138.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "vÞgºcÀ", - "origin": [ - 122.79996490478516, - 125.7999267578125 - ], - "bbox": [ - 122.79996490478516, - 119.7999267578125, - 137.3999786376953, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ">", - "origin": [ - 137.3999786376953, - 125.7999267578125 - ], - "bbox": [ - 137.3999786376953, - 121.09992980957031, - 147.99998474121094, - 138.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆNà�žH Y¡.žIߊ»", - "origin": [ - 147.99998474121094, - 125.7999267578125 - ], - "bbox": [ - 147.99998474121094, - 119.7999267578125, - 195.3000030517578, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 195.3000030517578, - 125.7999267578125 - ], - "bbox": [ - 195.3000030517578, - 121.09992980957031, - 201.40000915527344, - 138.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ìB ", - "origin": [ - 201.40000915527344, - 125.7999267578125 - ], - "bbox": [ - 201.40000915527344, - 119.49992370605469, - 214.30001831054688, - 139.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.79995727539062, - 119.49992370605469, - 214.30001831054688, - 139.89993286132812 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 72.29995727539062, - 138.29991149902344, - 263.4999084472656, - 158.69992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤s\u0018\u001a\u00194\u001bª\u00194¨gá[57\u001bu6=¤s²?§F6HÊô¯", - "origin": [ - 72.29995727539062, - 144.59991455078125 - ], - "bbox": [ - 72.29995727539062, - 138.29991149902344, - 163.4999542236328, - 158.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29995727539062, - 138.29991149902344, - 163.4999542236328, - 158.69992065429688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©…\u0018w6[§/5b¨g£/¥/«", - "origin": [ - 165.699951171875, - 144.59991455078125 - ], - "bbox": [ - 165.699951171875, - 138.29991149902344, - 221.5999298095703, - 158.69992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h�", - "origin": [ - 221.5999298095703, - 144.59991455078125 - ], - "bbox": [ - 221.5999298095703, - 138.59991455078125, - 224.2999267578125, - 157.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a6[\u001bb¤7£\u001c©?5B8", - "origin": [ - 224.2999267578125, - 144.59991455078125 - ], - "bbox": [ - 224.2999267578125, - 138.29991149902344, - 263.4999084472656, - 158.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.699951171875, - 138.29991149902344, - 263.4999084472656, - 158.69992065429688 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 82.39994812011719, - 151.89988708496094, - 518.7999877929688, - 172.29989624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä\nÁFŸ", - "origin": [ - 82.39994812011719, - 158.19989013671875 - ], - "bbox": [ - 82.39994812011719, - 152.19989013671875, - 92.699951171875, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8FËi6=\u001b7¨g6)5R¥F6H¥F£\u001c©F©F6=\u001bo§F©F6M\u0019\u001cÊz5u6[\u001bu©\u001a\u0019%5u«¬Æ96Vß^Ê", - "origin": [ - 92.699951171875, - 158.19989013671875 - ], - "bbox": [ - 92.699951171875, - 151.89988708496094, - 265.39996337890625, - 172.29989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.39994812011719, - 151.89988708496094, - 265.39996337890625, - 172.29989624023438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨#\u00194Ç\u001c6HÊ-£\u001c\u001bª¤7²?§F6HÊ-6H©\u001a\u0019aÆ\n«¬Ç?\u0019%576=§F\u001bsÏ�6=Ѕ©F6B\u0018�6=§/5R\u0019", - "origin": [ - 270.89996337890625, - 158.19989013671875 - ], - "bbox": [ - 270.89996337890625, - 151.89988708496094, - 452.699951171875, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 452.699951171875, - 158.19989013671875 - ], - "bbox": [ - 452.699951171875, - 152.19989013671875, - 457.49993896484375, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6=\u001bsÊô¯", - "origin": [ - 457.49993896484375, - 158.19989013671875 - ], - "bbox": [ - 457.49993896484375, - 151.89988708496094, - 490.49993896484375, - 172.29989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.89996337890625, - 151.89988708496094, - 490.49993896484375, - 172.29989624023438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬¨#\u0019\u001cÇ\u001c6", - "origin": [ - 492.699951171875, - 158.19989013671875 - ], - "bbox": [ - 492.699951171875, - 151.89988708496094, - 513.7999877929688, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 513.7999877929688, - 158.19989013671875 - ], - "bbox": [ - 513.7999877929688, - 152.19989013671875, - 518.7999877929688, - 171.39988708496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.699951171875, - 151.89988708496094, - 518.7999877929688, - 172.29989624023438 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 82.39994049072266, - 165.5998992919922, - 477.2998962402344, - 185.99990844726562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä\nÁgžY¼HÞ", - "origin": [ - 82.39994049072266, - 171.89990234375 - ], - "bbox": [ - 82.39994049072266, - 165.89990234375, - 103.19993591308594, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 103.19993591308594, - 171.89990234375 - ], - "bbox": [ - 103.19993591308594, - 165.5998992919922, - 112.29993438720703, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fš", - "origin": [ - 112.29993438720703, - 171.89990234375 - ], - "bbox": [ - 112.29993438720703, - 165.89990234375, - 117.99993133544922, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e\u0018/57«-£\u001c©�¤o¥;¯", - "origin": [ - 117.99993133544922, - 171.89990234375 - ], - "bbox": [ - 117.99993133544922, - 165.5998992919922, - 161.4999237060547, - 185.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.39994049072266, - 165.5998992919922, - 161.4999237060547, - 185.99990844726562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001cʬ«-Ç\u001c©\u001a6[¨g6[©?5", - "origin": [ - 163.699951171875, - 171.89990234375 - ], - "bbox": [ - 163.699951171875, - 165.5998992919922, - 207.09994506835938, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Ä/Á\"žY¼HÞ", - "origin": [ - 207.09994506835938, - 171.89990234375 - ], - "bbox": [ - 207.09994506835938, - 165.89990234375, - 235.2999267578125, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 235.2999267578125, - 171.89990234375 - ], - "bbox": [ - 235.2999267578125, - 167.1999053955078, - 240.7999267578125, - 184.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁŠßHàHŸ", - "origin": [ - 240.7999267578125, - 171.89990234375 - ], - "bbox": [ - 240.7999267578125, - 165.89990234375, - 261.7999572753906, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 261.7999572753906, - 171.89990234375 - ], - "bbox": [ - 261.7999572753906, - 167.1999053955078, - 267.89996337890625, - 184.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹ FßFÞ/Ÿ\"ßF»", - "origin": [ - 267.89996337890625, - 171.89990234375 - ], - "bbox": [ - 267.89996337890625, - 165.89990234375, - 296.199951171875, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 296.199951171875, - 171.89990234375 - ], - "bbox": [ - 296.199951171875, - 167.1999053955078, - 302.2999572753906, - 184.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.699951171875, - 165.5998992919922, - 302.2999572753906, - 185.99990844726562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»fžY¼Š¡/Ÿ", - "origin": [ - 304.2999572753906, - 171.89990234375 - ], - "bbox": [ - 304.2999572753906, - 165.89990234375, - 325.1999816894531, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%*", - "origin": [ - 325.1999816894531, - 171.89990234375 - ], - "bbox": [ - 325.1999816894531, - 167.1999053955078, - 331.1999816894531, - 184.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.2999572753906, - 165.89990234375, - 331.1999816894531, - 185.0998992919922 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 333.39996337890625, - 171.89990234375 - ], - "bbox": [ - 333.39996337890625, - 167.1999053955078, - 333.39996337890625, - 184.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Æ�áYŸ\u0011žIàFãòT", - "origin": [ - 333.39996337890625, - 171.89990234375 - ], - "bbox": [ - 333.39996337890625, - 165.89990234375, - 372.99993896484375, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô¦)£\u001c¨g¨g6B\u0018F\u001buÈ=¦[È=¥/6=¨^¨g6=©95", - "origin": [ - 372.99993896484375, - 171.89990234375 - ], - "bbox": [ - 372.99993896484375, - 165.5998992919922, - 468.8998718261719, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xXx[", - "origin": [ - 468.8998718261719, - 171.89990234375 - ], - "bbox": [ - 468.8998718261719, - 165.89990234375, - 477.2998962402344, - 185.0998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.39996337890625, - 165.5998992919922, - 477.2998962402344, - 185.99990844726562 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 82.09996795654297, - 179.29991149902344, - 199.99996948242188, - 199.69992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶\u0011ž", - "origin": [ - 82.09996795654297, - 185.59991455078125 - ], - "bbox": [ - 82.09996795654297, - 179.59991455078125, - 87.99996948242188, - 198.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 87.99996948242188, - 185.59991455078125 - ], - "bbox": [ - 87.99996948242188, - 180.89991760253906, - 92.79997253417969, - 198.69992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸH¡", - "origin": [ - 92.79997253417969, - 185.59991455078125 - ], - "bbox": [ - 92.79997253417969, - 179.59991455078125, - 103.19996643066406, - 198.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8F¶m\u0019\u001c\u001b7Ç96[§F\u001bo¥/6BÊ", - "origin": [ - 103.19996643066406, - 185.59991455078125 - ], - "bbox": [ - 103.19996643066406, - 179.29991149902344, - 168.29995727539062, - 199.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09996795654297, - 179.29991149902344, - 168.29995727539062, - 199.69992065429688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨#\u00194Ç96", - "origin": [ - 173.7999725341797, - 185.59991455078125 - ], - "bbox": [ - 173.7999725341797, - 179.29991149902344, - 194.99996948242188, - 199.69992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 194.99996948242188, - 185.59991455078125 - ], - "bbox": [ - 194.99996948242188, - 179.59991455078125, - 199.99996948242188, - 198.79991149902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.7999725341797, - 179.29991149902344, - 199.99996948242188, - 199.69992065429688 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 82.09996795654297, - 192.79991149902344, - 206.99998474121094, - 213.19992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\"ßfžY¼H¡/Ÿ", - "origin": [ - 82.09996795654297, - 199.09991455078125 - ], - "bbox": [ - 82.09996795654297, - 193.09991455078125, - 108.59996032714844, - 212.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É8�³R\u00194§F576[§\u001a\u001bb¥/6BÊô¯", - "origin": [ - 108.59996032714844, - 199.09991455078125 - ], - "bbox": [ - 108.59996032714844, - 192.79991149902344, - 178.59994506835938, - 213.19992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09996795654297, - 192.79991149902344, - 178.59994506835938, - 213.19992065429688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨g\u0019\u001cÇ\u001c6", - "origin": [ - 180.7999725341797, - 199.09991455078125 - ], - "bbox": [ - 180.7999725341797, - 192.79991149902344, - 201.8999786376953, - 213.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 201.8999786376953, - 199.09991455078125 - ], - "bbox": [ - 201.8999786376953, - 193.09991455078125, - 206.99998474121094, - 212.29991149902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 180.7999725341797, - 192.79991149902344, - 206.99998474121094, - 213.19992065429688 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 82.09996795654297, - 206.4999237060547, - 117.39997100830078, - 226.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\"ºŠ»", - "origin": [ - 82.09996795654297, - 212.7999267578125 - ], - "bbox": [ - 82.09996795654297, - 206.7999267578125, - 92.69996643066406, - 225.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 92.69996643066406, - 212.7999267578125 - ], - "bbox": [ - 92.69996643066406, - 208.0999298095703, - 98.09996795654297, - 225.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 98.09996795654297, - 212.7999267578125 - ], - "bbox": [ - 98.09996795654297, - 206.7999267578125, - 108.59996795654297, - 225.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É8", - "origin": [ - 108.59996795654297, - 212.7999267578125 - ], - "bbox": [ - 108.59996795654297, - 206.4999237060547, - 117.39997100830078, - 226.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09996795654297, - 206.4999237060547, - 117.39997100830078, - 226.89993286132812 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 129.69996643066406, - 206.4999237060547, - 250.8999786376953, - 226.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u00194«Y¤u¤�6=§F\u001bb¥/§…Ð�£9\u001bu¥É¥/6HÊ", - "origin": [ - 129.69996643066406, - 212.7999267578125 - ], - "bbox": [ - 129.69996643066406, - 206.4999237060547, - 219.199951171875, - 226.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.69996643066406, - 206.4999237060547, - 219.199951171875, - 226.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨#\u00194Ç\u001c6", - "origin": [ - 224.69998168945312, - 212.7999267578125 - ], - "bbox": [ - 224.69998168945312, - 206.4999237060547, - 245.7999725341797, - 226.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 245.7999725341797, - 212.7999267578125 - ], - "bbox": [ - 245.7999725341797, - 206.7999267578125, - 250.8999786376953, - 225.9999237060547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.69998168945312, - 206.4999237060547, - 250.8999786376953, - 226.89993286132812 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 82.19998168945312, - 220.0998992919922, - 490.7999267578125, - 240.49990844726562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "âfáY´gÄg Fß", - "origin": [ - 82.19998168945312, - 226.39990234375 - ], - "bbox": [ - 82.19998168945312, - 220.39990234375, - 108.79997253417969, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f8", - "origin": [ - 108.79997253417969, - 226.39990234375 - ], - "bbox": [ - 108.79997253417969, - 220.0998992919922, - 117.39997100830078, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g_", - "origin": [ - 117.39997100830078, - 226.39990234375 - ], - "bbox": [ - 117.39997100830078, - 220.39990234375, - 122.99996948242188, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ�\u0018�\u0019\u001c¦)6HÆ96[\u001b757«Y¦[\u00194Ê+6=©95u\u001b76BÊ-6=¤sÐw£\u001c\u001bª¥F¤o¥/6BÊ", - "origin": [ - 122.99996948242188, - 226.39990234375 - ], - "bbox": [ - 122.99996948242188, - 220.0998992919922, - 272.199951171875, - 240.49990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19998168945312, - 220.0998992919922, - 272.199951171875, - 240.49990844726562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬¨#\u00194Ç96\u001e6[5b§F©Ý\u00194§/5u\u001b76H£9Ð", - "origin": [ - 277.79998779296875, - 226.39990234375 - ], - "bbox": [ - 277.79998779296875, - 220.0998992919922, - 363.5999755859375, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ë", - "origin": [ - 363.5999755859375, - 226.39990234375 - ], - "bbox": [ - 363.5999755859375, - 220.39990234375, - 368.9999694824219, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6)5", - "origin": [ - 368.9999694824219, - 226.39990234375 - ], - "bbox": [ - 368.9999694824219, - 220.0998992919922, - 376.9999694824219, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ðT", - "origin": [ - 376.9999694824219, - 226.39990234375 - ], - "bbox": [ - 376.9999694824219, - 220.39990234375, - 384.9999694824219, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ576)ÿ\n5u6", - "origin": [ - 384.9999694824219, - 226.39990234375 - ], - "bbox": [ - 384.9999694824219, - 220.0998992919922, - 405.5999450683594, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 405.5999450683594, - 226.39990234375 - ], - "bbox": [ - 405.5999450683594, - 220.39990234375, - 410.5999450683594, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a\u0019\u001c§/57\u001bu6H«¬¨#\u00194Ç96", - "origin": [ - 410.5999450683594, - 226.39990234375 - ], - "bbox": [ - 410.5999450683594, - 220.0998992919922, - 463.2999572753906, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 463.2999572753906, - 226.39990234375 - ], - "bbox": [ - 463.2999572753906, - 220.39990234375, - 468.2999572753906, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n6)5ª¦", - "origin": [ - 468.2999572753906, - 226.39990234375 - ], - "bbox": [ - 468.2999572753906, - 220.0998992919922, - 481.99993896484375, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\X�[", - "origin": [ - 481.99993896484375, - 226.39990234375 - ], - "bbox": [ - 481.99993896484375, - 220.39990234375, - 490.7999267578125, - 239.5998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.79998779296875, - 220.0998992919922, - 490.7999267578125, - 240.49990844726562 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 82.09998321533203, - 233.6998748779297, - 502.19989013671875, - 254.09988403320312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡�áY´gÄg Fß", - "origin": [ - 82.09998321533203, - 239.9998779296875 - ], - "bbox": [ - 82.09998321533203, - 233.9998779296875, - 108.79998016357422, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f8", - "origin": [ - 108.79998016357422, - 239.9998779296875 - ], - "bbox": [ - 108.79998016357422, - 233.6998748779297, - 117.39997863769531, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g_", - "origin": [ - 117.39997863769531, - 239.9998779296875 - ], - "bbox": [ - 117.39997863769531, - 233.9998779296875, - 122.9999771118164, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ�\u0018�\u0019\u001c¦)6HþF£9\u001b7«", - "origin": [ - 122.9999771118164, - 239.9998779296875 - ], - "bbox": [ - 122.9999771118164, - 233.6998748779297, - 170.7999725341797, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "o‡", - "origin": [ - 170.7999725341797, - 239.9998779296875 - ], - "bbox": [ - 170.7999725341797, - 233.9998779296875, - 173.5999755859375, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£9©?5u\u00194Ê+6=©95u\u001b76HÊ-6=¤sÐw£\u001c\u001bª¥F¤o¥/6BÊ", - "origin": [ - 173.5999755859375, - 239.9998779296875 - ], - "bbox": [ - 173.5999755859375, - 233.6998748779297, - 283.4999694824219, - 254.09988403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09998321533203, - 233.6998748779297, - 283.4999694824219, - 254.09988403320312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨#\u00194Ç96V6[5b§F©Ý\u00194§/5u\u001b76H£9Ð", - "origin": [ - 289.0, - 239.9998779296875 - ], - "bbox": [ - 289.0, - 233.6998748779297, - 374.9999694824219, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ë", - "origin": [ - 374.9999694824219, - 239.9998779296875 - ], - "bbox": [ - 374.9999694824219, - 233.9998779296875, - 380.39996337890625, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6)5", - "origin": [ - 380.39996337890625, - 239.9998779296875 - ], - "bbox": [ - 380.39996337890625, - 233.6998748779297, - 388.39996337890625, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 388.39996337890625, - 239.9998779296875 - ], - "bbox": [ - 388.39996337890625, - 233.9998779296875, - 396.2999572753906, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "{5u6)ÿ\n576", - "origin": [ - 396.2999572753906, - 239.9998779296875 - ], - "bbox": [ - 396.2999572753906, - 233.6998748779297, - 416.7999267578125, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 416.7999267578125, - 239.9998779296875 - ], - "bbox": [ - 416.7999267578125, - 233.9998779296875, - 421.8999328613281, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a\u00194§F57\u001bu6V«-¨#\u00194Ç96", - "origin": [ - 421.8999328613281, - 239.9998779296875 - ], - "bbox": [ - 421.8999328613281, - 233.6998748779297, - 474.59991455078125, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 474.59991455078125, - 239.9998779296875 - ], - "bbox": [ - 474.59991455078125, - 233.9998779296875, - 479.59991455078125, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/6)5ª¦", - "origin": [ - 479.59991455078125, - 239.9998779296875 - ], - "bbox": [ - 479.59991455078125, - 233.6998748779297, - 493.39990234375, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\X�[", - "origin": [ - 493.39990234375, - 239.9998779296875 - ], - "bbox": [ - 493.39990234375, - 233.9998779296875, - 502.19989013671875, - 253.1998748779297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.0, - 233.6998748779297, - 502.19989013671875, - 254.09988403320312 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 78.79999542236328, - 247.2998504638672, - 129.89999389648438, - 267.6998596191406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79999542236328, - 253.599853515625 - ], - "bbox": [ - 78.79999542236328, - 247.2998504638672, - 129.89999389648438, - 267.6998596191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79999542236328, - 247.2998504638672, - 129.89999389648438, - 267.6998596191406 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 72.5, - 272.0, - 480.8999938964844, - 292.3999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 278.29998779296875 - ], - "bbox": [ - 72.5, - 272.29998779296875, - 72.5, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aéaï", - "origin": [ - 72.5, - 278.29998779296875 - ], - "bbox": [ - 72.5, - 272.0, - 82.79999542236328, - 292.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-,", - "origin": [ - 82.79999542236328, - 278.29998779296875 - ], - "bbox": [ - 82.79999542236328, - 273.5999755859375, - 88.0999984741211, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ",áY»� ", - "origin": [ - 88.0999984741211, - 278.29998779296875 - ], - "bbox": [ - 88.0999984741211, - 272.29998779296875, - 109.4000015258789, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\"%$", - "origin": [ - 109.4000015258789, - 278.29998779296875 - ], - "bbox": [ - 109.4000015258789, - 273.5999755859375, - 120.30000305175781, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v›\"ºŠŸ\nŸ\u0011žH |ß/Á\nÁgž", - "origin": [ - 120.30000305175781, - 278.29998779296875 - ], - "bbox": [ - 120.30000305175781, - 272.29998779296875, - 172.90000915527344, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e/\u000e0", - "origin": [ - 172.90000915527344, - 278.29998779296875 - ], - "bbox": [ - 172.90000915527344, - 273.5999755859375, - 182.90000915527344, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&·y´HÞ\n¼", - "origin": [ - 182.90000915527344, - 278.29998779296875 - ], - "bbox": [ - 182.90000915527344, - 272.29998779296875, - 203.60000610351562, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 203.60000610351562, - 278.29998779296875 - ], - "bbox": [ - 203.60000610351562, - 273.5999755859375, - 209.70001220703125, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“Ä/ÁFŸ", - "origin": [ - 209.70001220703125, - 278.29998779296875 - ], - "bbox": [ - 209.70001220703125, - 272.29998779296875, - 229.20001220703125, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$\u000eŸ", - "origin": [ - 229.20001220703125, - 278.29998779296875 - ], - "bbox": [ - 229.20001220703125, - 273.5999755859375, - 245.00001525878906, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßFÞHÆ\u0011áUáFºF»\nŸ\"ÄFÞ/Ÿ", - "origin": [ - 245.00001525878906, - 278.29998779296875 - ], - "bbox": [ - 245.00001525878906, - 272.29998779296875, - 307.79998779296875, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "4>", - "origin": [ - 307.79998779296875, - 278.29998779296875 - ], - "bbox": [ - 307.79998779296875, - 273.5999755859375, - 318.0999755859375, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nßgáUß\nÄFÆ", - "origin": [ - 318.0999755859375, - 278.29998779296875 - ], - "bbox": [ - 318.0999755859375, - 272.29998779296875, - 349.2999572753906, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1X&$", - "origin": [ - 349.2999572753906, - 278.29998779296875 - ], - "bbox": [ - 349.2999572753906, - 273.5999755859375, - 360.7999572753906, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "•Ä/Á\"žY¼HÞ", - "origin": [ - 360.7999572753906, - 278.29998779296875 - ], - "bbox": [ - 360.7999572753906, - 272.29998779296875, - 391.29998779296875, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 391.29998779296875, - 278.29998779296875 - ], - "bbox": [ - 391.29998779296875, - 273.5999755859375, - 396.79998779296875, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁŠßHàHŸ(Å\"ºŠ»", - "origin": [ - 396.79998779296875, - 278.29998779296875 - ], - "bbox": [ - 396.79998779296875, - 272.29998779296875, - 438.3000183105469, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 438.3000183105469, - 278.29998779296875 - ], - "bbox": [ - 438.3000183105469, - 273.5999755859375, - 443.70001220703125, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 443.70001220703125, - 278.29998779296875 - ], - "bbox": [ - 443.70001220703125, - 272.29998779296875, - 454.20001220703125, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$", - "origin": [ - 454.20001220703125, - 278.29998779296875 - ], - "bbox": [ - 454.20001220703125, - 273.5999755859375, - 465.5, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÃ", - "origin": [ - 465.5, - 278.29998779296875 - ], - "bbox": [ - 465.5, - 272.29998779296875, - 470.20001220703125, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 470.20001220703125, - 278.29998779296875 - ], - "bbox": [ - 470.20001220703125, - 273.5999755859375, - 476.1000061035156, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 476.1000061035156, - 278.29998779296875 - ], - "bbox": [ - 476.1000061035156, - 272.29998779296875, - 480.8999938964844, - 291.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 272.0, - 480.8999938964844, - 292.3999938964844 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 72.5, - 304.20001220703125, - 151.40000915527344, - 323.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 72.5, - 310.20001220703125 - ], - "bbox": [ - 72.5, - 305.5, - 72.5, - 323.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1\u0019\rÌ", - "origin": [ - 72.5, - 310.20001220703125 - ], - "bbox": [ - 72.5, - 304.20001220703125, - 82.9000015258789, - 323.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 304.20001220703125, - 82.9000015258789, - 323.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A°\u001b:€%Š-\n)E%", - "origin": [ - 103.0, - 310.20001220703125 - ], - "bbox": [ - 103.0, - 304.20001220703125, - 151.40000915527344, - 323.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.0, - 304.20001220703125, - 151.40000915527344, - 323.4000244140625 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 75.79999542236328, - 332.4000244140625, - 538.2000122070312, - 352.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê\u001a6[ÿ/«-¤�576s5u\u001b7£9«-¤i5\\ø\n\u0018w6=¤,¥F6bʬ«Y¤�576=¤×6[©#³R´oµ\u000e¶", - "origin": [ - 75.79999542236328, - 338.70001220703125 - ], - "bbox": [ - 75.79999542236328, - 332.4000244140625, - 231.0999755859375, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "#[", - "origin": [ - 231.0999755859375, - 338.70001220703125 - ], - "bbox": [ - 231.0999755859375, - 332.70001220703125, - 237.7999725341797, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cÊ-6=¤×ʬ«Y¤�576=¤,£\u001c\u001bª¥/£\u001c©F©\u001aÈ[6=¤", - "origin": [ - 237.7999725341797, - 338.70001220703125 - ], - "bbox": [ - 237.7999725341797, - 332.4000244140625, - 320.89996337890625, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰T", - "origin": [ - 320.89996337890625, - 338.70001220703125 - ], - "bbox": [ - 320.89996337890625, - 332.70001220703125, - 328.0999755859375, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "„;", - "origin": [ - 328.0999755859375, - 338.70001220703125 - ], - "bbox": [ - 328.0999755859375, - 334.0, - 331.5999755859375, - 351.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ê", - "origin": [ - 331.5999755859375, - 338.70001220703125 - ], - "bbox": [ - 331.5999755859375, - 332.4000244140625, - 336.6999816894531, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f[", - "origin": [ - 336.6999816894531, - 338.70001220703125 - ], - "bbox": [ - 336.6999816894531, - 332.70001220703125, - 342.3999938964844, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-;", - "origin": [ - 342.3999938964844, - 338.70001220703125 - ], - "bbox": [ - 342.3999938964844, - 334.0, - 347.6999816894531, - 351.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|»", - "origin": [ - 347.6999816894531, - 338.70001220703125 - ], - "bbox": [ - 347.6999816894531, - 332.70001220703125, - 352.5999755859375, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 352.5999755859375, - 338.70001220703125 - ], - "bbox": [ - 352.5999755859375, - 334.0, - 357.9999694824219, - 351.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»\"ß", - "origin": [ - 357.9999694824219, - 338.70001220703125 - ], - "bbox": [ - 357.9999694824219, - 332.70001220703125, - 373.9999694824219, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 373.9999694824219, - 338.70001220703125 - ], - "bbox": [ - 373.9999694824219, - 334.0, - 379.0999755859375, - 351.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.79999542236328, - 332.4000244140625, - 379.0999755859375, - 352.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ê", - "origin": [ - 389.29998779296875, - 338.70001220703125 - ], - "bbox": [ - 389.29998779296875, - 332.4000244140625, - 389.29998779296875, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ\"Xx[", - "origin": [ - 389.29998779296875, - 338.70001220703125 - ], - "bbox": [ - 389.29998779296875, - 332.70001220703125, - 414.79998779296875, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%Ê-6=¤,Ê-«Y¤\\5u6=¤", - "origin": [ - 414.79998779296875, - 338.70001220703125 - ], - "bbox": [ - 414.79998779296875, - 332.4000244140625, - 451.4999694824219, - 352.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.29998779296875, - 332.4000244140625, - 451.4999694824219, - 352.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©F£9©g£\u001c\u001bª¥/£\u001c©F©\u001aÈ[6=¤", - "origin": [ - 458.0999755859375, - 338.70001220703125 - ], - "bbox": [ - 458.0999755859375, - 332.4000244140625, - 516.5, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�T", - "origin": [ - 516.5, - 338.70001220703125 - ], - "bbox": [ - 516.5, - 332.70001220703125, - 523.9000244140625, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": " m", - "origin": [ - 523.9000244140625, - 338.70001220703125 - ], - "bbox": [ - 523.9000244140625, - 334.0, - 526.800048828125, - 351.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aê", - "origin": [ - 526.800048828125, - 338.70001220703125 - ], - "bbox": [ - 526.800048828125, - 332.4000244140625, - 532.4000244140625, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�[", - "origin": [ - 532.4000244140625, - 338.70001220703125 - ], - "bbox": [ - 532.4000244140625, - 332.70001220703125, - 538.2000122070312, - 351.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.0999755859375, - 332.4000244140625, - 538.2000122070312, - 352.8000183105469 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 71.99996948242188, - 345.9000244140625, - 368.5999450683594, - 366.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "m", - "origin": [ - 71.99996948242188, - 352.20001220703125 - ], - "bbox": [ - 71.99996948242188, - 347.5, - 71.99996948242188, - 365.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ÞgºF»", - "origin": [ - 71.99996948242188, - 352.20001220703125 - ], - "bbox": [ - 71.99996948242188, - 346.20001220703125, - 87.99996948242188, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 87.99996948242188, - 352.20001220703125 - ], - "bbox": [ - 87.99996948242188, - 347.5, - 93.39997100830078, - 365.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»\"ß", - "origin": [ - 93.39997100830078, - 352.20001220703125 - ], - "bbox": [ - 93.39997100830078, - 346.20001220703125, - 109.39997100830078, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 109.39997100830078, - 352.20001220703125 - ], - "bbox": [ - 109.39997100830078, - 347.5, - 114.49996948242188, - 365.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ìê", - "origin": [ - 114.49996948242188, - 352.20001220703125 - ], - "bbox": [ - 114.49996948242188, - 345.9000244140625, - 124.59996795654297, - 366.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ/X", - "origin": [ - 124.59996795654297, - 352.20001220703125 - ], - "bbox": [ - 124.59996795654297, - 346.20001220703125, - 145.79995727539062, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "×6)5bÊ-6=¤sÊ-«Y¤\\5u6=¤b¥/6B¥/È", - "origin": [ - 145.79995727539062, - 352.20001220703125 - ], - "bbox": [ - 145.79995727539062, - 345.9000244140625, - 222.39996337890625, - 366.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 222.39996337890625, - 352.20001220703125 - ], - "bbox": [ - 222.39996337890625, - 346.20001220703125, - 226.79995727539062, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«¬57«-£\u001c©\u001a¤", - "origin": [ - 226.79995727539062, - 352.20001220703125 - ], - "bbox": [ - 226.79995727539062, - 345.9000244140625, - 257.89996337890625, - 366.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ðT", - "origin": [ - 257.89996337890625, - 352.20001220703125 - ], - "bbox": [ - 257.89996337890625, - 346.20001220703125, - 265.89996337890625, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "v:", - "origin": [ - 265.89996337890625, - 352.20001220703125 - ], - "bbox": [ - 265.89996337890625, - 347.5, - 268.9999694824219, - 365.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ê", - "origin": [ - 268.9999694824219, - 352.20001220703125 - ], - "bbox": [ - 268.9999694824219, - 345.9000244140625, - 274.39996337890625, - 366.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�[", - "origin": [ - 274.39996337890625, - 352.20001220703125 - ], - "bbox": [ - 274.39996337890625, - 346.20001220703125, - 280.199951171875, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1:", - "origin": [ - 280.199951171875, - 352.20001220703125 - ], - "bbox": [ - 280.199951171875, - 347.5, - 285.5999450683594, - 365.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßHà�žcÞ.žcŸ\u0011ž|ºFÞ", - "origin": [ - 285.5999450683594, - 352.20001220703125 - ], - "bbox": [ - 285.5999450683594, - 346.20001220703125, - 332.99993896484375, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ìê", - "origin": [ - 332.99993896484375, - 352.20001220703125 - ], - "bbox": [ - 332.99993896484375, - 345.9000244140625, - 343.0999450683594, - 366.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ\"X", - "origin": [ - 343.0999450683594, - 352.20001220703125 - ], - "bbox": [ - 343.0999450683594, - 346.20001220703125, - 364.3999328613281, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 364.3999328613281, - 352.20001220703125 - ], - "bbox": [ - 364.3999328613281, - 345.9000244140625, - 368.5999450683594, - 366.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.99996948242188, - 345.9000244140625, - 368.5999450683594, - 366.3000183105469 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.19996643066406, - 364.8000183105469, - 535.7999267578125, - 385.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "_", - "origin": [ - 72.19996643066406, - 371.1000061035156 - ], - "bbox": [ - 72.19996643066406, - 365.1000061035156, - 72.19996643066406, - 384.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",©É³R´oµÍ¶", - "origin": [ - 72.19996643066406, - 371.1000061035156 - ], - "bbox": [ - 72.19996643066406, - 364.8000183105469, - 111.39996337890625, - 385.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&[", - "origin": [ - 111.39996337890625, - 371.1000061035156 - ], - "bbox": [ - 111.39996337890625, - 365.1000061035156, - 118.19996643066406, - 384.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9§F©\u001a6RÊ-«-¤�576\u001e6=¤�5 ¦)£9¨g\u0018�£?¤�È=6\u001e¥;¯", - "origin": [ - 118.19996643066406, - 371.1000061035156 - ], - "bbox": [ - 118.19996643066406, - 364.8000183105469, - 228.29998779296875, - 385.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19996643066406, - 364.8000183105469, - 228.29998779296875, - 385.20001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6\u001eÐ\u001a\u00194Ê-«-¤76R²?§F«w«¬©�¥/«-²?§F6H²?§F6RÊ", - "origin": [ - 230.49996948242188, - 371.1000061035156 - ], - "bbox": [ - 230.49996948242188, - 364.8000183105469, - 345.9999694824219, - 385.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.49996948242188, - 364.8000183105469, - 345.9999694824219, - 385.20001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©#6=¤�5 ¥\u001a\u00194©\u001a¤~§F©c6=©?Æ\n«-\u001b7£9©F©F6=¨^6=©?5×ʬ«Y¤�576R6[5s¥K¯", - "origin": [ - 351.5999755859375, - 371.1000061035156 - ], - "bbox": [ - 351.5999755859375, - 364.8000183105469, - 522.5999145507812, - 385.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.5999755859375, - 364.8000183105469, - 522.5999145507812, - 385.20001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©\u001a6", - "origin": [ - 524.699951171875, - 371.1000061035156 - ], - "bbox": [ - 524.699951171875, - 364.8000183105469, - 535.7999267578125, - 385.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 524.699951171875, - 364.8000183105469, - 535.7999267578125, - 385.20001220703125 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 72.199951171875, - 378.3000183105469, - 305.49993896484375, - 398.70001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ð\u001a\u0019\u001cʬ«Y¤�6H\u0018w£\u001c©\u001a¦)57§F6=ʬÊ-6M²?§F«K¨#\u00194\u001bª²?§F6Vʬ6M¥/È=ÐF§/5R¥/6M¦ªþ�\u0019\u001c²?§F6V«z5u6[¨… ", - "origin": [ - 72.199951171875, - 384.6000061035156 - ], - "bbox": [ - 72.199951171875, - 378.3000183105469, - 305.49993896484375, - 398.70001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 378.3000183105469, - 305.49993896484375, - 398.70001220703125 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 78.7999496459961, - 397.20001220703125, - 129.8999481201172, - 417.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.7999496459961, - 403.5 - ], - "bbox": [ - 78.7999496459961, - 397.20001220703125, - 129.8999481201172, - 417.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.7999496459961, - 397.20001220703125, - 129.8999481201172, - 417.6000061035156 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 72.5, - 421.9000244140625, - 88.30000305175781, - 442.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 428.20001220703125 - ], - "bbox": [ - 72.5, - 422.20001220703125, - 72.5, - 441.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-;", - "origin": [ - 72.5, - 428.20001220703125 - ], - "bbox": [ - 72.5, - 423.5, - 77.80000305175781, - 441.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ê", - "origin": [ - 77.80000305175781, - 428.20001220703125 - ], - "bbox": [ - 77.80000305175781, - 421.9000244140625, - 82.9000015258789, - 442.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä", - "origin": [ - 82.9000015258789, - 428.20001220703125 - ], - "bbox": [ - 82.9000015258789, - 422.20001220703125, - 88.30000305175781, - 441.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 421.9000244140625, - 88.30000305175781, - 442.3000183105469 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 82.9000015258789, - 435.5000305175781, - 241.49998474121094, - 455.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.9000015258789, - 441.8000183105469 - ], - "bbox": [ - 82.9000015258789, - 435.8000183105469, - 82.9000015258789, - 455.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aéaè\në\nï", - "origin": [ - 82.9000015258789, - 441.8000183105469 - ], - "bbox": [ - 82.9000015258789, - 435.5000305175781, - 103.80000305175781, - 455.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 103.80000305175781, - 441.8000183105469 - ], - "bbox": [ - 103.80000305175781, - 435.8000183105469, - 109.30000305175781, - 455.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 109.30000305175781, - 441.8000183105469 - ], - "bbox": [ - 109.30000305175781, - 437.1000061035156, - 114.30000305175781, - 454.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»\"ßYÀ6ž|ߊ»", - "origin": [ - 114.30000305175781, - 441.8000183105469 - ], - "bbox": [ - 114.30000305175781, - 435.8000183105469, - 146.0, - 455.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.9000015258789, - 435.5000305175781, - 146.0, - 455.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "žYŸ\"ßYÀ", - "origin": [ - 156.39999389648438, - 441.8000183105469 - ], - "bbox": [ - 156.39999389648438, - 435.8000183105469, - 171.29998779296875, - 455.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "b>", - "origin": [ - 171.29998779296875, - 441.8000183105469 - ], - "bbox": [ - 171.29998779296875, - 437.1000061035156, - 182.09999084472656, - 454.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß0ÁHÄ0ÁgžHáIŸ\"ß#·", - "origin": [ - 182.09999084472656, - 441.8000183105469 - ], - "bbox": [ - 182.09999084472656, - 435.8000183105469, - 241.49998474121094, - 455.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.39999389648438, - 435.8000183105469, - 241.49998474121094, - 455.0000305175781 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 82.89999389648438, - 449.10003662109375, - 246.6999969482422, - 469.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 455.4000244140625 - ], - "bbox": [ - 82.89999389648438, - 449.4000244140625, - 82.89999389648438, - 468.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aéaè\në\nï", - "origin": [ - 82.89999389648438, - 455.4000244140625 - ], - "bbox": [ - 82.89999389648438, - 449.10003662109375, - 103.79999542236328, - 469.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 103.79999542236328, - 455.4000244140625 - ], - "bbox": [ - 103.79999542236328, - 449.4000244140625, - 109.29999542236328, - 468.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 109.29999542236328, - 455.4000244140625 - ], - "bbox": [ - 109.29999542236328, - 450.70001220703125, - 114.29999542236328, - 468.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßFÆ", - "origin": [ - 114.29999542236328, - 455.4000244140625 - ], - "bbox": [ - 114.29999542236328, - 449.4000244140625, - 124.79999542236328, - 468.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1X", - "origin": [ - 124.79999542236328, - 455.4000244140625 - ], - "bbox": [ - 124.79999542236328, - 450.70001220703125, - 130.1999969482422, - 468.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�ž", - "origin": [ - 130.1999969482422, - 455.4000244140625 - ], - "bbox": [ - 130.1999969482422, - 449.4000244140625, - 136.0, - 468.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 136.0, - 455.4000244140625 - ], - "bbox": [ - 136.0, - 450.70001220703125, - 140.89999389648438, - 468.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÀ\u0011ßkžYŸ\"ßYÀ", - "origin": [ - 140.89999389648438, - 455.4000244140625 - ], - "bbox": [ - 140.89999389648438, - 449.4000244140625, - 176.5999755859375, - 468.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "b>", - "origin": [ - 176.5999755859375, - 455.4000244140625 - ], - "bbox": [ - 176.5999755859375, - 450.70001220703125, - 187.3999786376953, - 468.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 187.3999786376953, - 455.4000244140625 - ], - "bbox": [ - 187.3999786376953, - 449.4000244140625, - 192.7999725341797, - 468.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 449.10003662109375, - 192.7999725341797, - 469.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÁHÄ0ÁgžHáYŸ\"ß&·", - "origin": [ - 203.1999969482422, - 455.4000244140625 - ], - "bbox": [ - 203.1999969482422, - 449.4000244140625, - 246.6999969482422, - 468.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.1999969482422, - 449.4000244140625, - 246.6999969482422, - 468.60003662109375 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 93.39999389648438, - 462.7000427246094, - 109.19999694824219, - 483.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.39999389648438, - 469.0000305175781 - ], - "bbox": [ - 93.39999389648438, - 463.0000305175781, - 93.39999389648438, - 482.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�m", - "origin": [ - 93.39999389648438, - 469.0000305175781 - ], - "bbox": [ - 93.39999389648438, - 464.3000183105469, - 98.19999694824219, - 482.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê", - "origin": [ - 98.19999694824219, - 469.0000305175781 - ], - "bbox": [ - 98.19999694824219, - 462.7000427246094, - 103.69999694824219, - 483.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 103.69999694824219, - 469.0000305175781 - ], - "bbox": [ - 103.69999694824219, - 463.0000305175781, - 109.19999694824219, - 482.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 462.7000427246094, - 109.19999694824219, - 483.10003662109375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 109.09999084472656, - 476.4000549316406, - 356.5000305175781, - 496.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 109.09999084472656, - 482.7000427246094 - ], - "bbox": [ - 109.09999084472656, - 476.7000427246094, - 109.09999084472656, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aéaè?ë\nï", - "origin": [ - 109.09999084472656, - 482.7000427246094 - ], - "bbox": [ - 109.09999084472656, - 476.4000549316406, - 129.8999786376953, - 496.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 129.8999786376953, - 482.7000427246094 - ], - "bbox": [ - 129.8999786376953, - 476.7000427246094, - 135.49998474121094, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 135.49998474121094, - 482.7000427246094 - ], - "bbox": [ - 135.49998474121094, - 478.0000305175781, - 140.49998474121094, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»/ßYÀEž|ߊ»", - "origin": [ - 140.49998474121094, - 482.7000427246094 - ], - "bbox": [ - 140.49998474121094, - 476.7000427246094, - 172.19998168945312, - 495.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.09999084472656, - 476.4000549316406, - 172.19998168945312, - 496.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "žYŸ\"ßcÀ", - "origin": [ - 182.59999084472656, - 482.7000427246094 - ], - "bbox": [ - 182.59999084472656, - 476.7000427246094, - 197.39999389648438, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "`>", - "origin": [ - 197.39999389648438, - 482.7000427246094 - ], - "bbox": [ - 197.39999389648438, - 478.0000305175781, - 208.29998779296875, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nßNÁHÄ", - "origin": [ - 208.29998779296875, - 482.7000427246094 - ], - "bbox": [ - 208.29998779296875, - 476.7000427246094, - 229.39999389648438, - 495.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.59999084472656, - 476.7000427246094, - 229.39999389648438, - 495.9000549316406 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÁgžŠáIŸ\"ß", - "origin": [ - 239.79998779296875, - 482.7000427246094 - ], - "bbox": [ - 239.79998779296875, - 476.7000427246094, - 260.8000183105469, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¢>", - "origin": [ - 260.8000183105469, - 482.7000427246094 - ], - "bbox": [ - 260.8000183105469, - 478.0000305175781, - 271.0000305175781, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆ", - "origin": [ - 271.0000305175781, - 482.7000427246094 - ], - "bbox": [ - 271.0000305175781, - 476.7000427246094, - 276.10003662109375, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ">", - "origin": [ - 276.10003662109375, - 482.7000427246094 - ], - "bbox": [ - 276.10003662109375, - 478.0000305175781, - 286.7000427246094, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßFÆ", - "origin": [ - 286.7000427246094, - 482.7000427246094 - ], - "bbox": [ - 286.7000427246094, - 476.7000427246094, - 297.10003662109375, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1X", - "origin": [ - 297.10003662109375, - 482.7000427246094 - ], - "bbox": [ - 297.10003662109375, - 478.0000305175781, - 302.5000305175781, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011ž", - "origin": [ - 302.5000305175781, - 482.7000427246094 - ], - "bbox": [ - 302.5000305175781, - 476.7000427246094, - 308.4000244140625, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 308.4000244140625, - 482.7000427246094 - ], - "bbox": [ - 308.4000244140625, - 478.0000305175781, - 313.20001220703125, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÀ\u0011ß0žYŸ/ßYÀ�¢", - "origin": [ - 313.20001220703125, - 482.7000427246094 - ], - "bbox": [ - 313.20001220703125, - 476.7000427246094, - 356.5000305175781, - 495.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 239.79998779296875, - 476.7000427246094, - 356.5000305175781, - 495.9000549316406 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 93.39997863769531, - 489.9000549316406, - 114.4999771118164, - 510.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.39997863769531, - 496.2000427246094 - ], - "bbox": [ - 93.39997863769531, - 490.2000427246094, - 98.69998168945312, - 509.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\fm", - "origin": [ - 98.69998168945312, - 496.2000427246094 - ], - "bbox": [ - 98.69998168945312, - 491.5000305175781, - 103.39997863769531, - 509.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aê", - "origin": [ - 103.39997863769531, - 496.2000427246094 - ], - "bbox": [ - 103.39997863769531, - 489.9000549316406, - 108.9999771118164, - 510.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 108.9999771118164, - 496.2000427246094 - ], - "bbox": [ - 108.9999771118164, - 490.2000427246094, - 114.4999771118164, - 509.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39997863769531, - 489.9000549316406, - 114.4999771118164, - 510.300048828125 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 72.4999771118164, - 503.6000671386719, - 93.59998321533203, - 524.0000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 72.4999771118164, - 509.9000549316406 - ], - "bbox": [ - 72.4999771118164, - 503.9000549316406, - 77.79998016357422, - 523.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-;", - "origin": [ - 77.79998016357422, - 509.9000549316406 - ], - "bbox": [ - 77.79998016357422, - 505.2000427246094, - 83.09998321533203, - 523.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cê", - "origin": [ - 83.09998321533203, - 509.9000549316406 - ], - "bbox": [ - 83.09998321533203, - 503.6000671386719, - 88.09998321533203, - 524.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 88.09998321533203, - 509.9000549316406 - ], - "bbox": [ - 88.09998321533203, - 503.9000549316406, - 93.59998321533203, - 523.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4999771118164, - 503.6000671386719, - 93.59998321533203, - 524.0000610351562 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 72.30000305175781, - 528.0, - 104.20000457763672, - 548.3999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 534.2999877929688 - ], - "bbox": [ - 72.30000305175781, - 528.0, - 104.20000457763672, - 548.3999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 528.0, - 104.20000457763672, - 548.3999633789062 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 84.9000015258789, - 545.0, - 200.40000915527344, - 565.3999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9 oË,\u001b76=¨g«¬6=\u001bo«z5u6[¨Œ¥F6VÊY\u0019gÊ-«-¤�5769 ", - "origin": [ - 84.9000015258789, - 551.2999877929688 - ], - "bbox": [ - 84.9000015258789, - 545.0, - 200.40000915527344, - 565.3999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.9000015258789, - 545.0, - 200.40000915527344, - 565.3999633789062 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 84.5, - 562.1000366210938, - 208.49996948242188, - 582.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "AF b3R6=§/ÿ/«¬á=¨^6H«¬576=¨Œ¥/6BÊY\u0019^ʬ«Y¤\\5u6\u001c ", - "origin": [ - 84.5, - 568.4000244140625 - ], - "bbox": [ - 84.5, - 562.1000366210938, - 208.49996948242188, - 582.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.5, - 562.1000366210938, - 208.49996948242188, - 582.5 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 107.0999984741211, - 575.7000122070312, - 292.9999084472656, - 596.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ë,\u001bu6[¨g«-6[\u001bo«¬576=¨Œ¥/6HÊY\u0019gʬ«Y¤\\5u6B¥/§Ý¥/6[§/ÿ/«-á[¨g6B«¬576[¨", - "origin": [ - 107.0999984741211, - 582.0 - ], - "bbox": [ - 107.0999984741211, - 575.7000122070312, - 282.39990234375, - 596.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Nå", - "origin": [ - 282.39990234375, - 582.0 - ], - "bbox": [ - 282.39990234375, - 576.0, - 292.9999084472656, - 595.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.0999984741211, - 575.7000122070312, - 292.9999084472656, - 596.0999755859375 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 72.39999389648438, - 606.5, - 189.10000610351562, - 626.8999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.39999389648438, - 612.7999877929688 - ], - "bbox": [ - 72.39999389648438, - 606.5, - 72.39999389648438, - 626.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.39999389648438, - 612.7999877929688 - ], - "bbox": [ - 72.39999389648438, - 606.7999877929688, - 78.59999084472656, - 626.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-Ä", - "origin": [ - 78.59999084472656, - 612.7999877929688 - ], - "bbox": [ - 78.59999084472656, - 606.5, - 81.39999389648438, - 626.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 81.39999389648438, - 612.7999877929688 - ], - "bbox": [ - 81.39999389648438, - 606.7999877929688, - 87.59999084472656, - 626.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 87.59999084472656, - 612.7999877929688 - ], - "bbox": [ - 87.59999084472656, - 606.5, - 90.79998779296875, - 626.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.39999389648438, - 606.5, - 90.79998779296875, - 626.8999633789062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö~¾\nØ^öôžyØ=—=¾\nØ^Ø=žô¼òóöô¾\nØ", - "origin": [ - 107.29999542236328, - 612.7999877929688 - ], - "bbox": [ - 107.29999542236328, - 606.5, - 189.10000610351562, - 626.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.29999542236328, - 606.5, - 189.10000610351562, - 626.8999633789062 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 72.5, - 633.7000122070312, - 538.2999267578125, - 654.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.5, - 640.0 - ], - "bbox": [ - 72.5, - 634.0, - 72.5, - 653.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©^Ê-\u0019\u001e¨#\u00194\u001bª²9§\u001a6 \u0019aÆ96=¦,ÊY\u0019VÐ\u001a\u00194Ê-«Y¤�6Vç", - "origin": [ - 72.5, - 640.0 - ], - "bbox": [ - 72.5, - 633.7000122070312, - 192.70001220703125, - 654.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "im", - "origin": [ - 192.70001220703125, - 640.0 - ], - "bbox": [ - 192.70001220703125, - 635.2999877929688, - 199.70001220703125, - 653.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aê�ì", - "origin": [ - 199.70001220703125, - 640.0 - ], - "bbox": [ - 199.70001220703125, - 633.7000122070312, - 211.00001525878906, - 654.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "0T", - "origin": [ - 211.00001525878906, - 640.0 - ], - "bbox": [ - 211.00001525878906, - 634.0, - 221.50001525878906, - 653.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": " m", - "origin": [ - 221.50001525878906, - 640.0 - ], - "bbox": [ - 221.50001525878906, - 635.2999877929688, - 224.40000915527344, - 653.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ÞgºF»", - "origin": [ - 224.40000915527344, - 640.0 - ], - "bbox": [ - 224.40000915527344, - 634.0, - 240.40000915527344, - 653.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 240.40000915527344, - 640.0 - ], - "bbox": [ - 240.40000915527344, - 635.2999877929688, - 245.8000030517578, - 653.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»\"ß", - "origin": [ - 245.8000030517578, - 640.0 - ], - "bbox": [ - 245.8000030517578, - 634.0, - 261.79998779296875, - 653.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 261.79998779296875, - 640.0 - ], - "bbox": [ - 261.79998779296875, - 635.2999877929688, - 266.8999938964844, - 653.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ìê", - "origin": [ - 266.8999938964844, - 640.0 - ], - "bbox": [ - 266.8999938964844, - 633.7000122070312, - 277.0, - 654.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ/X", - "origin": [ - 277.0, - 640.0 - ], - "bbox": [ - 277.0, - 634.0, - 298.1999816894531, - 653.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") e¶m6=¤i«¬576=¨g¤", - "origin": [ - 298.1999816894531, - 640.0 - ], - "bbox": [ - 298.1999816894531, - 633.7000122070312, - 343.6999816894531, - 654.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 633.7000122070312, - 343.6999816894531, - 654.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7£\u001c©?5i¨#\u00194\u001bª²9§\u001aÈ=¤\u0018\u001a\u00194\u001biÊY\u0019RÐ�\u00194Ê-«-¤76~\u0018w£\u001c©�¦157§\u001a6[Ê-ʬ6Bçbêwé\nìB ", - "origin": [ - 350.3000183105469, - 640.0 - ], - "bbox": [ - 350.3000183105469, - 633.7000122070312, - 538.2999267578125, - 654.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.3000183105469, - 633.7000122070312, - 538.2999267578125, - 654.0999755859375 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 72.30001831054688, - 647.2999877929688, - 163.6000213623047, - 667.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤s\u0018\u001a\u00194\u001bª\u00194¨gá[57\u001bu6=¤s¤�£9©?5H8", - "origin": [ - 72.30001831054688, - 653.5999755859375 - ], - "bbox": [ - 72.30001831054688, - 647.2999877929688, - 163.6000213623047, - 667.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 647.2999877929688, - 163.6000213623047, - 667.699951171875 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 82.20001220703125, - 660.8999633789062, - 472.29998779296875, - 681.2999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŸHãH´gß", - "origin": [ - 82.20001220703125, - 667.199951171875 - ], - "bbox": [ - 82.20001220703125, - 661.199951171875, - 98.20000457763672, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"->", - "origin": [ - 98.20000457763672, - 667.199951171875 - ], - "bbox": [ - 98.20000457763672, - 662.4999389648438, - 108.70000457763672, - 680.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fžHá\n ", - "origin": [ - 108.70000457763672, - 667.199951171875 - ], - "bbox": [ - 108.70000457763672, - 661.199951171875, - 124.9000015258789, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<*", - "origin": [ - 124.9000015258789, - 667.199951171875 - ], - "bbox": [ - 124.9000015258789, - 662.4999389648438, - 130.5, - 680.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹ /žY»� ŠÁŠß", - "origin": [ - 130.5, - 667.199951171875 - ], - "bbox": [ - 130.5, - 661.199951171875, - 159.0, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 159.0, - 667.199951171875 - ], - "bbox": [ - 159.0, - 662.4999389648438, - 164.89999389648438, - 680.2999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20001220703125, - 661.199951171875, - 164.89999389648438, - 680.3999633789062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "á", - "origin": [ - 167.4000244140625, - 667.199951171875 - ], - "bbox": [ - 167.4000244140625, - 661.199951171875, - 167.4000244140625, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f£", - "origin": [ - 167.4000244140625, - 667.199951171875 - ], - "bbox": [ - 167.4000244140625, - 662.4999389648438, - 172.1000213623047, - 680.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆgÄF»/ß", - "origin": [ - 172.1000213623047, - 667.199951171875 - ], - "bbox": [ - 172.1000213623047, - 661.199951171875, - 193.2000274658203, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^8+®\u001e§F«;\u0018�6=\u001b7¨g6[5R¥/6", - "origin": [ - 193.2000274658203, - 667.199951171875 - ], - "bbox": [ - 193.2000274658203, - 660.8999633789062, - 265.8999938964844, - 681.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 265.8999938964844, - 667.199951171875 - ], - "bbox": [ - 265.8999938964844, - 661.199951171875, - 273.6000061035156, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6[\u001bsÊ-6M¤�ø\n¨¸Ðw£\u001cÊ-6B²?§F«m\u00194\u0018\u001a\u0018\u001a\u00194\u001bª\u0019", - "origin": [ - 273.6000061035156, - 667.199951171875 - ], - "bbox": [ - 273.6000061035156, - 660.8999633789062, - 387.199951171875, - 681.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f\u001c", - "origin": [ - 387.199951171875, - 667.199951171875 - ], - "bbox": [ - 387.199951171875, - 662.4999389648438, - 391.89996337890625, - 680.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Y5s¥F6[Æ%\u00194©?5oʬ6e¤o«¬576[¨#¤", - "origin": [ - 391.89996337890625, - 667.199951171875 - ], - "bbox": [ - 391.89996337890625, - 660.8999633789062, - 467.79998779296875, - 681.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 467.79998779296875, - 667.199951171875 - ], - "bbox": [ - 467.79998779296875, - 661.199951171875, - 472.29998779296875, - 680.3999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.4000244140625, - 660.8999633789062, - 472.29998779296875, - 681.2999267578125 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 82.70001983642578, - 674.5, - 286.199951171875, - 694.8999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºYÀg´gÄg YŸ", - "origin": [ - 82.70001983642578, - 680.7999877929688 - ], - "bbox": [ - 82.70001983642578, - 674.7999877929688, - 113.80001068115234, - 694.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8�®\u001e§F«m\u0018�6=\u001b7¨g6)5R¥F6\u001e5ª\u0019\u001c¤u¤�6=\u001bo§F©…\u0018�6=§…Ê-\u0019^Ê-«-¤�5769 ", - "origin": [ - 113.80001068115234, - 680.7999877929688 - ], - "bbox": [ - 113.80001068115234, - 674.5, - 286.199951171875, - 694.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.70001983642578, - 674.5, - 286.199951171875, - 694.8999633789062 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 72.40001678466797, - 705.2999877929688, - 202.50003051757812, - 725.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.40001678466797, - 711.5999755859375 - ], - "bbox": [ - 72.40001678466797, - 705.2999877929688, - 72.40001678466797, - 725.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.40001678466797, - 711.5999755859375 - ], - "bbox": [ - 72.40001678466797, - 705.5999755859375, - 78.60001373291016, - 724.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-Ä", - "origin": [ - 78.60001373291016, - 711.5999755859375 - ], - "bbox": [ - 78.60001373291016, - 705.2999877929688, - 81.40001678466797, - 725.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 81.40001678466797, - 711.5999755859375 - ], - "bbox": [ - 81.40001678466797, - 705.5999755859375, - 87.60001373291016, - 724.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "YŸ", - "origin": [ - 87.60001373291016, - 711.5999755859375 - ], - "bbox": [ - 87.60001373291016, - 705.2999877929688, - 90.50001525878906, - 725.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.40001678466797, - 705.2999877929688, - 90.50001525878906, - 725.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö~¾\nØ^öôžyØ=—=¾\nØ^™\u001a˜%š™�––ü\n¾\nØ", - "origin": [ - 107.30001831054688, - 711.5999755859375 - ], - "bbox": [ - 107.30001831054688, - 705.2999877929688, - 202.50003051757812, - 725.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.30001831054688, - 705.2999877929688, - 202.50003051757812, - 725.699951171875 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 57.699974060058594 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 530.7999877929688, - 35.29997634887695, - 535.8999633789062, - 57.699974060058594 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 77.699951171875, - 595.0, - 323.4000244140625 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 345.9000244140625, - 595.0, - 442.3000183105469 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 109.09999084472656, - 476.4000549316406, - 356.5000305175781, - 496.800048828125 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 503.6000671386719, - 595.0, - 548.3999633789062 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 107.0999984741211, - 575.7000122070312, - 292.9999084472656, - 596.0999755859375 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 606.5, - 595.0, - 766.4999389648438 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgܝÁ\u001aöyžyØe¾\nØ!Á9ûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.8999633789062, - 57.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9:", - "origin": [ - 530.7999877929688, - 43.5999755859375 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.8999633789062, - 57.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.8999633789062, - 57.699974060058594 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.49996948242188, - 77.699951171875, - 161.39996337890625, - 96.89994812011719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 72.49996948242188, - 83.699951171875 - ], - "bbox": [ - 72.49996948242188, - 78.99995422363281, - 72.49996948242188, - 96.7999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1\u0019\r?", - "origin": [ - 72.49996948242188, - 83.699951171875 - ], - "bbox": [ - 72.49996948242188, - 77.699951171875, - 82.89997100830078, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49996948242188, - 77.699951171875, - 82.89997100830078, - 96.89994812011719 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A:\u001b348\u0013­#)6%", - "origin": [ - 102.99996948242188, - 83.699951171875 - ], - "bbox": [ - 102.99996948242188, - 77.699951171875, - 161.39996337890625, - 96.89994812011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.99996948242188, - 77.699951171875, - 161.39996337890625, - 96.89994812011719 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 72.49996948242188, - 105.89994812011719, - 537.9999389648438, - 126.2999496459961 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.49996948242188, - 112.199951171875 - ], - "bbox": [ - 72.49996948242188, - 106.199951171875, - 72.49996948242188, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©‚\u0018�6=§/5M«-©\u001a¦)Ê-§F\u001bu6!Ôy\u00199¦)«-ʬ6=¨g6[©?5M§F©F6#«-¨#\u00194Ç\u001c6#¥F\u0019\u001c©\u001a¤H§F©ò¥/£/¦)§\u001a¨^6=©?5¸³R´oµÍ¶ÌÇ9\u001b", - "origin": [ - 72.49996948242188, - 112.199951171875 - ], - "bbox": [ - 72.49996948242188, - 105.89994812011719, - 367.79998779296875, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ž“", - "origin": [ - 367.79998779296875, - 112.199951171875 - ], - "bbox": [ - 367.79998779296875, - 107.49995422363281, - 371.79998779296875, - 125.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9¦)6g߅Ê-\u0019ÉÐ\u001a\u0019\u001cʬ«Y¤�6…éaï", - "origin": [ - 371.79998779296875, - 112.199951171875 - ], - "bbox": [ - 371.79998779296875, - 105.89994812011719, - 443.5999450683594, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1,", - "origin": [ - 443.5999450683594, - 112.199951171875 - ], - "bbox": [ - 443.5999450683594, - 107.49995422363281, - 448.99993896484375, - 125.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "w ", - "origin": [ - 448.99993896484375, - 112.199951171875 - ], - "bbox": [ - 448.99993896484375, - 105.89994812011719, - 454.7999267578125, - 126.2999496459961 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Eš", - "origin": [ - 454.7999267578125, - 112.199951171875 - ], - "bbox": [ - 454.7999267578125, - 106.199951171875, - 461.09991455078125, - 125.39994812011719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©ÙÊ", - "origin": [ - 461.09991455078125, - 112.199951171875 - ], - "bbox": [ - 461.09991455078125, - 105.89994812011719, - 477.9999084472656, - 126.2999496459961 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49996948242188, - 105.89994812011719, - 477.9999084472656, - 126.2999496459961 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§/57«-ʬ«Y¤76c\u00194«-©\u001a¤�«o8", - "origin": [ - 483.5999755859375, - 112.199951171875 - ], - "bbox": [ - 483.5999755859375, - 105.89994812011719, - 537.9999389648438, - 126.2999496459961 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.5999755859375, - 105.89994812011719, - 537.9999389648438, - 126.2999496459961 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.79995727539062, - 119.49992370605469, - 214.30001831054688, - 139.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çBéaï", - "origin": [ - 72.79995727539062, - 125.7999267578125 - ], - "bbox": [ - 72.79995727539062, - 119.49992370605469, - 85.29995727539062, - 139.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1,)\u001f", - "origin": [ - 85.29995727539062, - 125.7999267578125 - ], - "bbox": [ - 85.29995727539062, - 121.09992980957031, - 101.09996032714844, - 138.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "н\n¾", - "origin": [ - 101.09996032714844, - 125.7999267578125 - ], - "bbox": [ - 101.09996032714844, - 119.7999267578125, - 111.49996185302734, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$", - "origin": [ - 111.49996185302734, - 125.7999267578125 - ], - "bbox": [ - 111.49996185302734, - 121.09992980957031, - 122.79996490478516, - 138.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "vÞgºcÀ", - "origin": [ - 122.79996490478516, - 125.7999267578125 - ], - "bbox": [ - 122.79996490478516, - 119.7999267578125, - 137.3999786376953, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ">", - "origin": [ - 137.3999786376953, - 125.7999267578125 - ], - "bbox": [ - 137.3999786376953, - 121.09992980957031, - 147.99998474121094, - 138.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆNà�žH Y¡.žIߊ»", - "origin": [ - 147.99998474121094, - 125.7999267578125 - ], - "bbox": [ - 147.99998474121094, - 119.7999267578125, - 195.3000030517578, - 138.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 195.3000030517578, - 125.7999267578125 - ], - "bbox": [ - 195.3000030517578, - 121.09992980957031, - 201.40000915527344, - 138.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ìB ", - "origin": [ - 201.40000915527344, - 125.7999267578125 - ], - "bbox": [ - 201.40000915527344, - 119.49992370605469, - 214.30001831054688, - 139.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.79995727539062, - 119.49992370605469, - 214.30001831054688, - 139.89993286132812 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 72.29995727539062, - 138.29991149902344, - 263.4999084472656, - 158.69992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤s\u0018\u001a\u00194\u001bª\u00194¨gá[57\u001bu6=¤s²?§F6HÊô¯", - "origin": [ - 72.29995727539062, - 144.59991455078125 - ], - "bbox": [ - 72.29995727539062, - 138.29991149902344, - 163.4999542236328, - 158.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29995727539062, - 138.29991149902344, - 163.4999542236328, - 158.69992065429688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©…\u0018w6[§/5b¨g£/¥/«", - "origin": [ - 165.699951171875, - 144.59991455078125 - ], - "bbox": [ - 165.699951171875, - 138.29991149902344, - 221.5999298095703, - 158.69992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h�", - "origin": [ - 221.5999298095703, - 144.59991455078125 - ], - "bbox": [ - 221.5999298095703, - 138.59991455078125, - 224.2999267578125, - 157.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a6[\u001bb¤7£\u001c©?5B8", - "origin": [ - 224.2999267578125, - 144.59991455078125 - ], - "bbox": [ - 224.2999267578125, - 138.29991149902344, - 263.4999084472656, - 158.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.699951171875, - 138.29991149902344, - 263.4999084472656, - 158.69992065429688 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 82.39994812011719, - 151.89988708496094, - 518.7999877929688, - 172.29989624023438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä\nÁFŸ", - "origin": [ - 82.39994812011719, - 158.19989013671875 - ], - "bbox": [ - 82.39994812011719, - 152.19989013671875, - 92.699951171875, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8FËi6=\u001b7¨g6)5R¥F6H¥F£\u001c©F©F6=\u001bo§F©F6M\u0019\u001cÊz5u6[\u001bu©\u001a\u0019%5u«¬Æ96Vß^Ê", - "origin": [ - 92.699951171875, - 158.19989013671875 - ], - "bbox": [ - 92.699951171875, - 151.89988708496094, - 265.39996337890625, - 172.29989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.39994812011719, - 151.89988708496094, - 265.39996337890625, - 172.29989624023438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨#\u00194Ç\u001c6HÊ-£\u001c\u001bª¤7²?§F6HÊ-6H©\u001a\u0019aÆ\n«¬Ç?\u0019%576=§F\u001bsÏ�6=Ѕ©F6B\u0018�6=§/5R\u0019", - "origin": [ - 270.89996337890625, - 158.19989013671875 - ], - "bbox": [ - 270.89996337890625, - 151.89988708496094, - 452.699951171875, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "I>", - "origin": [ - 452.699951171875, - 158.19989013671875 - ], - "bbox": [ - 452.699951171875, - 152.19989013671875, - 457.49993896484375, - 171.39988708496094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c¦ªþF6=\u001bsÊô¯", - "origin": [ - 457.49993896484375, - 158.19989013671875 - ], - "bbox": [ - 457.49993896484375, - 151.89988708496094, - 490.49993896484375, - 172.29989624023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.89996337890625, - 151.89988708496094, - 490.49993896484375, - 172.29989624023438 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬¨#\u0019\u001cÇ\u001c6", - "origin": [ - 492.699951171875, - 158.19989013671875 - ], - "bbox": [ - 492.699951171875, - 151.89988708496094, - 513.7999877929688, - 172.29989624023438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 513.7999877929688, - 158.19989013671875 - ], - "bbox": [ - 513.7999877929688, - 152.19989013671875, - 518.7999877929688, - 171.39988708496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.699951171875, - 151.89988708496094, - 518.7999877929688, - 172.29989624023438 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 82.39994049072266, - 165.5998992919922, - 477.2998962402344, - 185.99990844726562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä\nÁgžY¼HÞ", - "origin": [ - 82.39994049072266, - 171.89990234375 - ], - "bbox": [ - 82.39994049072266, - 165.89990234375, - 103.19993591308594, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 103.19993591308594, - 171.89990234375 - ], - "bbox": [ - 103.19993591308594, - 165.5998992919922, - 112.29993438720703, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fš", - "origin": [ - 112.29993438720703, - 171.89990234375 - ], - "bbox": [ - 112.29993438720703, - 165.89990234375, - 117.99993133544922, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e\u0018/57«-£\u001c©�¤o¥;¯", - "origin": [ - 117.99993133544922, - 171.89990234375 - ], - "bbox": [ - 117.99993133544922, - 165.5998992919922, - 161.4999237060547, - 185.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.39994049072266, - 165.5998992919922, - 161.4999237060547, - 185.99990844726562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001cʬ«-Ç\u001c©\u001a6[¨g6[©?5", - "origin": [ - 163.699951171875, - 171.89990234375 - ], - "bbox": [ - 163.699951171875, - 165.5998992919922, - 207.09994506835938, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�Ä/Á\"žY¼HÞ", - "origin": [ - 207.09994506835938, - 171.89990234375 - ], - "bbox": [ - 207.09994506835938, - 165.89990234375, - 235.2999267578125, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 235.2999267578125, - 171.89990234375 - ], - "bbox": [ - 235.2999267578125, - 167.1999053955078, - 240.7999267578125, - 184.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁŠßHàHŸ", - "origin": [ - 240.7999267578125, - 171.89990234375 - ], - "bbox": [ - 240.7999267578125, - 165.89990234375, - 261.7999572753906, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 261.7999572753906, - 171.89990234375 - ], - "bbox": [ - 261.7999572753906, - 167.1999053955078, - 267.89996337890625, - 184.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹ FßFÞ/Ÿ\"ßF»", - "origin": [ - 267.89996337890625, - 171.89990234375 - ], - "bbox": [ - 267.89996337890625, - 165.89990234375, - 296.199951171875, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 296.199951171875, - 171.89990234375 - ], - "bbox": [ - 296.199951171875, - 167.1999053955078, - 302.2999572753906, - 184.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.699951171875, - 165.5998992919922, - 302.2999572753906, - 185.99990844726562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»fžY¼Š¡/Ÿ", - "origin": [ - 304.2999572753906, - 171.89990234375 - ], - "bbox": [ - 304.2999572753906, - 165.89990234375, - 325.1999816894531, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%*", - "origin": [ - 325.1999816894531, - 171.89990234375 - ], - "bbox": [ - 325.1999816894531, - 167.1999053955078, - 331.1999816894531, - 184.99990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.2999572753906, - 165.89990234375, - 331.1999816894531, - 185.0998992919922 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 333.39996337890625, - 171.89990234375 - ], - "bbox": [ - 333.39996337890625, - 167.1999053955078, - 333.39996337890625, - 184.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Æ�áYŸ\u0011žIàFãòT", - "origin": [ - 333.39996337890625, - 171.89990234375 - ], - "bbox": [ - 333.39996337890625, - 165.89990234375, - 372.99993896484375, - 185.0998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ô¦)£\u001c¨g¨g6B\u0018F\u001buÈ=¦[È=¥/6=¨^¨g6=©95", - "origin": [ - 372.99993896484375, - 171.89990234375 - ], - "bbox": [ - 372.99993896484375, - 165.5998992919922, - 468.8998718261719, - 185.99990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xXx[", - "origin": [ - 468.8998718261719, - 171.89990234375 - ], - "bbox": [ - 468.8998718261719, - 165.89990234375, - 477.2998962402344, - 185.0998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.39996337890625, - 165.5998992919922, - 477.2998962402344, - 185.99990844726562 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 82.09996795654297, - 179.29991149902344, - 199.99996948242188, - 199.69992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶\u0011ž", - "origin": [ - 82.09996795654297, - 185.59991455078125 - ], - "bbox": [ - 82.09996795654297, - 179.59991455078125, - 87.99996948242188, - 198.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 87.99996948242188, - 185.59991455078125 - ], - "bbox": [ - 87.99996948242188, - 180.89991760253906, - 92.79997253417969, - 198.69992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸH¡", - "origin": [ - 92.79997253417969, - 185.59991455078125 - ], - "bbox": [ - 92.79997253417969, - 179.59991455078125, - 103.19996643066406, - 198.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8F¶m\u0019\u001c\u001b7Ç96[§F\u001bo¥/6BÊ", - "origin": [ - 103.19996643066406, - 185.59991455078125 - ], - "bbox": [ - 103.19996643066406, - 179.29991149902344, - 168.29995727539062, - 199.69992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09996795654297, - 179.29991149902344, - 168.29995727539062, - 199.69992065429688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨#\u00194Ç96", - "origin": [ - 173.7999725341797, - 185.59991455078125 - ], - "bbox": [ - 173.7999725341797, - 179.29991149902344, - 194.99996948242188, - 199.69992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 194.99996948242188, - 185.59991455078125 - ], - "bbox": [ - 194.99996948242188, - 179.59991455078125, - 199.99996948242188, - 198.79991149902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.7999725341797, - 179.29991149902344, - 199.99996948242188, - 199.69992065429688 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 82.09996795654297, - 192.79991149902344, - 206.99998474121094, - 213.19992065429688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\"ßfžY¼H¡/Ÿ", - "origin": [ - 82.09996795654297, - 199.09991455078125 - ], - "bbox": [ - 82.09996795654297, - 193.09991455078125, - 108.59996032714844, - 212.29991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É8�³R\u00194§F576[§\u001a\u001bb¥/6BÊô¯", - "origin": [ - 108.59996032714844, - 199.09991455078125 - ], - "bbox": [ - 108.59996032714844, - 192.79991149902344, - 178.59994506835938, - 213.19992065429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09996795654297, - 192.79991149902344, - 178.59994506835938, - 213.19992065429688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨g\u0019\u001cÇ\u001c6", - "origin": [ - 180.7999725341797, - 199.09991455078125 - ], - "bbox": [ - 180.7999725341797, - 192.79991149902344, - 201.8999786376953, - 213.19992065429688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 201.8999786376953, - 199.09991455078125 - ], - "bbox": [ - 201.8999786376953, - 193.09991455078125, - 206.99998474121094, - 212.29991149902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 180.7999725341797, - 192.79991149902344, - 206.99998474121094, - 213.19992065429688 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 82.09996795654297, - 206.4999237060547, - 117.39997100830078, - 226.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\"ºŠ»", - "origin": [ - 82.09996795654297, - 212.7999267578125 - ], - "bbox": [ - 82.09996795654297, - 206.7999267578125, - 92.69996643066406, - 225.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 92.69996643066406, - 212.7999267578125 - ], - "bbox": [ - 92.69996643066406, - 208.0999298095703, - 98.09996795654297, - 225.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 98.09996795654297, - 212.7999267578125 - ], - "bbox": [ - 98.09996795654297, - 206.7999267578125, - 108.59996795654297, - 225.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É8", - "origin": [ - 108.59996795654297, - 212.7999267578125 - ], - "bbox": [ - 108.59996795654297, - 206.4999237060547, - 117.39997100830078, - 226.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09996795654297, - 206.4999237060547, - 117.39997100830078, - 226.89993286132812 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 129.69996643066406, - 206.4999237060547, - 250.8999786376953, - 226.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018\u001a\u00194«Y¤u¤�6=§F\u001bb¥/§…Ð�£9\u001bu¥É¥/6HÊ", - "origin": [ - 129.69996643066406, - 212.7999267578125 - ], - "bbox": [ - 129.69996643066406, - 206.4999237060547, - 219.199951171875, - 226.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.69996643066406, - 206.4999237060547, - 219.199951171875, - 226.89993286132812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨#\u00194Ç\u001c6", - "origin": [ - 224.69998168945312, - 212.7999267578125 - ], - "bbox": [ - 224.69998168945312, - 206.4999237060547, - 245.7999725341797, - 226.89993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 245.7999725341797, - 212.7999267578125 - ], - "bbox": [ - 245.7999725341797, - 206.7999267578125, - 250.8999786376953, - 225.9999237060547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.69998168945312, - 206.4999237060547, - 250.8999786376953, - 226.89993286132812 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 82.19998168945312, - 220.0998992919922, - 490.7999267578125, - 240.49990844726562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "âfáY´gÄg Fß", - "origin": [ - 82.19998168945312, - 226.39990234375 - ], - "bbox": [ - 82.19998168945312, - 220.39990234375, - 108.79997253417969, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f8", - "origin": [ - 108.79997253417969, - 226.39990234375 - ], - "bbox": [ - 108.79997253417969, - 220.0998992919922, - 117.39997100830078, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g_", - "origin": [ - 117.39997100830078, - 226.39990234375 - ], - "bbox": [ - 117.39997100830078, - 220.39990234375, - 122.99996948242188, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ�\u0018�\u0019\u001c¦)6HÆ96[\u001b757«Y¦[\u00194Ê+6=©95u\u001b76BÊ-6=¤sÐw£\u001c\u001bª¥F¤o¥/6BÊ", - "origin": [ - 122.99996948242188, - 226.39990234375 - ], - "bbox": [ - 122.99996948242188, - 220.0998992919922, - 272.199951171875, - 240.49990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19998168945312, - 220.0998992919922, - 272.199951171875, - 240.49990844726562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«¬¨#\u00194Ç96\u001e6[5b§F©Ý\u00194§/5u\u001b76H£9Ð", - "origin": [ - 277.79998779296875, - 226.39990234375 - ], - "bbox": [ - 277.79998779296875, - 220.0998992919922, - 363.5999755859375, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ë", - "origin": [ - 363.5999755859375, - 226.39990234375 - ], - "bbox": [ - 363.5999755859375, - 220.39990234375, - 368.9999694824219, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6)5", - "origin": [ - 368.9999694824219, - 226.39990234375 - ], - "bbox": [ - 368.9999694824219, - 220.0998992919922, - 376.9999694824219, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ðT", - "origin": [ - 376.9999694824219, - 226.39990234375 - ], - "bbox": [ - 376.9999694824219, - 220.39990234375, - 384.9999694824219, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ576)ÿ\n5u6", - "origin": [ - 384.9999694824219, - 226.39990234375 - ], - "bbox": [ - 384.9999694824219, - 220.0998992919922, - 405.5999450683594, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 405.5999450683594, - 226.39990234375 - ], - "bbox": [ - 405.5999450683594, - 220.39990234375, - 410.5999450683594, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a\u0019\u001c§/57\u001bu6H«¬¨#\u00194Ç96", - "origin": [ - 410.5999450683594, - 226.39990234375 - ], - "bbox": [ - 410.5999450683594, - 220.0998992919922, - 463.2999572753906, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 463.2999572753906, - 226.39990234375 - ], - "bbox": [ - 463.2999572753906, - 220.39990234375, - 468.2999572753906, - 239.5998992919922 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\n6)5ª¦", - "origin": [ - 468.2999572753906, - 226.39990234375 - ], - "bbox": [ - 468.2999572753906, - 220.0998992919922, - 481.99993896484375, - 240.49990844726562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\X�[", - "origin": [ - 481.99993896484375, - 226.39990234375 - ], - "bbox": [ - 481.99993896484375, - 220.39990234375, - 490.7999267578125, - 239.5998992919922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.79998779296875, - 220.0998992919922, - 490.7999267578125, - 240.49990844726562 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 82.09998321533203, - 233.6998748779297, - 502.19989013671875, - 254.09988403320312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡�áY´gÄg Fß", - "origin": [ - 82.09998321533203, - 239.9998779296875 - ], - "bbox": [ - 82.09998321533203, - 233.9998779296875, - 108.79998016357422, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f8", - "origin": [ - 108.79998016357422, - 239.9998779296875 - ], - "bbox": [ - 108.79998016357422, - 233.6998748779297, - 117.39997863769531, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g_", - "origin": [ - 117.39997863769531, - 239.9998779296875 - ], - "bbox": [ - 117.39997863769531, - 233.9998779296875, - 122.9999771118164, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ�\u0018�\u0019\u001c¦)6HþF£9\u001b7«", - "origin": [ - 122.9999771118164, - 239.9998779296875 - ], - "bbox": [ - 122.9999771118164, - 233.6998748779297, - 170.7999725341797, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "o‡", - "origin": [ - 170.7999725341797, - 239.9998779296875 - ], - "bbox": [ - 170.7999725341797, - 233.9998779296875, - 173.5999755859375, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[£9©?5u\u00194Ê+6=©95u\u001b76HÊ-6=¤sÐw£\u001c\u001bª¥F¤o¥/6BÊ", - "origin": [ - 173.5999755859375, - 239.9998779296875 - ], - "bbox": [ - 173.5999755859375, - 233.6998748779297, - 283.4999694824219, - 254.09988403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.09998321533203, - 233.6998748779297, - 283.4999694824219, - 254.09988403320312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨#\u00194Ç96V6[5b§F©Ý\u00194§/5u\u001b76H£9Ð", - "origin": [ - 289.0, - 239.9998779296875 - ], - "bbox": [ - 289.0, - 233.6998748779297, - 374.9999694824219, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ë", - "origin": [ - 374.9999694824219, - 239.9998779296875 - ], - "bbox": [ - 374.9999694824219, - 233.9998779296875, - 380.39996337890625, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6)5", - "origin": [ - 380.39996337890625, - 239.9998779296875 - ], - "bbox": [ - 380.39996337890625, - 233.6998748779297, - 388.39996337890625, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 388.39996337890625, - 239.9998779296875 - ], - "bbox": [ - 388.39996337890625, - 233.9998779296875, - 396.2999572753906, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "{5u6)ÿ\n576", - "origin": [ - 396.2999572753906, - 239.9998779296875 - ], - "bbox": [ - 396.2999572753906, - 233.6998748779297, - 416.7999267578125, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 416.7999267578125, - 239.9998779296875 - ], - "bbox": [ - 416.7999267578125, - 233.9998779296875, - 421.8999328613281, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a\u00194§F57\u001bu6V«-¨#\u00194Ç96", - "origin": [ - 421.8999328613281, - 239.9998779296875 - ], - "bbox": [ - 421.8999328613281, - 233.6998748779297, - 474.59991455078125, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 474.59991455078125, - 239.9998779296875 - ], - "bbox": [ - 474.59991455078125, - 233.9998779296875, - 479.59991455078125, - 253.1998748779297 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/6)5ª¦", - "origin": [ - 479.59991455078125, - 239.9998779296875 - ], - "bbox": [ - 479.59991455078125, - 233.6998748779297, - 493.39990234375, - 254.09988403320312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\X�[", - "origin": [ - 493.39990234375, - 239.9998779296875 - ], - "bbox": [ - 493.39990234375, - 233.9998779296875, - 502.19989013671875, - 253.1998748779297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.0, - 233.6998748779297, - 502.19989013671875, - 254.09988403320312 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 78.79999542236328, - 247.2998504638672, - 129.89999389648438, - 267.6998596191406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79999542236328, - 253.599853515625 - ], - "bbox": [ - 78.79999542236328, - 247.2998504638672, - 129.89999389648438, - 267.6998596191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79999542236328, - 247.2998504638672, - 129.89999389648438, - 267.6998596191406 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 72.5, - 272.0, - 480.8999938964844, - 292.3999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 278.29998779296875 - ], - "bbox": [ - 72.5, - 272.29998779296875, - 72.5, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aéaï", - "origin": [ - 72.5, - 278.29998779296875 - ], - "bbox": [ - 72.5, - 272.0, - 82.79999542236328, - 292.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-,", - "origin": [ - 82.79999542236328, - 278.29998779296875 - ], - "bbox": [ - 82.79999542236328, - 273.5999755859375, - 88.0999984741211, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": ",áY»� ", - "origin": [ - 88.0999984741211, - 278.29998779296875 - ], - "bbox": [ - 88.0999984741211, - 272.29998779296875, - 109.4000015258789, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�\"%$", - "origin": [ - 109.4000015258789, - 278.29998779296875 - ], - "bbox": [ - 109.4000015258789, - 273.5999755859375, - 120.30000305175781, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v›\"ºŠŸ\nŸ\u0011žH |ß/Á\nÁgž", - "origin": [ - 120.30000305175781, - 278.29998779296875 - ], - "bbox": [ - 120.30000305175781, - 272.29998779296875, - 172.90000915527344, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e/\u000e0", - "origin": [ - 172.90000915527344, - 278.29998779296875 - ], - "bbox": [ - 172.90000915527344, - 273.5999755859375, - 182.90000915527344, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&·y´HÞ\n¼", - "origin": [ - 182.90000915527344, - 278.29998779296875 - ], - "bbox": [ - 182.90000915527344, - 272.29998779296875, - 203.60000610351562, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&$", - "origin": [ - 203.60000610351562, - 278.29998779296875 - ], - "bbox": [ - 203.60000610351562, - 273.5999755859375, - 209.70001220703125, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "“Ä/ÁFŸ", - "origin": [ - 209.70001220703125, - 278.29998779296875 - ], - "bbox": [ - 209.70001220703125, - 272.29998779296875, - 229.20001220703125, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$\u000eŸ", - "origin": [ - 229.20001220703125, - 278.29998779296875 - ], - "bbox": [ - 229.20001220703125, - 273.5999755859375, - 245.00001525878906, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßFÞHÆ\u0011áUáFºF»\nŸ\"ÄFÞ/Ÿ", - "origin": [ - 245.00001525878906, - 278.29998779296875 - ], - "bbox": [ - 245.00001525878906, - 272.29998779296875, - 307.79998779296875, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "4>", - "origin": [ - 307.79998779296875, - 278.29998779296875 - ], - "bbox": [ - 307.79998779296875, - 273.5999755859375, - 318.0999755859375, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nßgáUß\nÄFÆ", - "origin": [ - 318.0999755859375, - 278.29998779296875 - ], - "bbox": [ - 318.0999755859375, - 272.29998779296875, - 349.2999572753906, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1X&$", - "origin": [ - 349.2999572753906, - 278.29998779296875 - ], - "bbox": [ - 349.2999572753906, - 273.5999755859375, - 360.7999572753906, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "•Ä/Á\"žY¼HÞ", - "origin": [ - 360.7999572753906, - 278.29998779296875 - ], - "bbox": [ - 360.7999572753906, - 272.29998779296875, - 391.29998779296875, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 391.29998779296875, - 278.29998779296875 - ], - "bbox": [ - 391.29998779296875, - 273.5999755859375, - 396.79998779296875, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁŠßHàHŸ(Å\"ºŠ»", - "origin": [ - 396.79998779296875, - 278.29998779296875 - ], - "bbox": [ - 396.79998779296875, - 272.29998779296875, - 438.3000183105469, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 438.3000183105469, - 278.29998779296875 - ], - "bbox": [ - 438.3000183105469, - 273.5999755859375, - 443.70001220703125, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 443.70001220703125, - 278.29998779296875 - ], - "bbox": [ - 443.70001220703125, - 272.29998779296875, - 454.20001220703125, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-\"%$", - "origin": [ - 454.20001220703125, - 278.29998779296875 - ], - "bbox": [ - 454.20001220703125, - 273.5999755859375, - 465.5, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÃ", - "origin": [ - 465.5, - 278.29998779296875 - ], - "bbox": [ - 465.5, - 272.29998779296875, - 470.20001220703125, - 291.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G$", - "origin": [ - 470.20001220703125, - 278.29998779296875 - ], - "bbox": [ - 470.20001220703125, - 273.5999755859375, - 476.1000061035156, - 291.3999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 476.1000061035156, - 278.29998779296875 - ], - "bbox": [ - 476.1000061035156, - 272.29998779296875, - 480.8999938964844, - 291.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 272.0, - 480.8999938964844, - 292.3999938964844 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 72.5, - 304.20001220703125, - 151.40000915527344, - 323.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 72.5, - 310.20001220703125 - ], - "bbox": [ - 72.5, - 305.5, - 72.5, - 323.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1\u0019\rÌ", - "origin": [ - 72.5, - 310.20001220703125 - ], - "bbox": [ - 72.5, - 304.20001220703125, - 82.9000015258789, - 323.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 304.20001220703125, - 82.9000015258789, - 323.4000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%A°\u001b:€%Š-\n)E%", - "origin": [ - 103.0, - 310.20001220703125 - ], - "bbox": [ - 103.0, - 304.20001220703125, - 151.40000915527344, - 323.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.0, - 304.20001220703125, - 151.40000915527344, - 323.4000244140625 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 75.79999542236328, - 332.4000244140625, - 538.2000122070312, - 352.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê\u001a6[ÿ/«-¤�576s5u\u001b7£9«-¤i5\\ø\n\u0018w6=¤,¥F6bʬ«Y¤�576=¤×6[©#³R´oµ\u000e¶", - "origin": [ - 75.79999542236328, - 338.70001220703125 - ], - "bbox": [ - 75.79999542236328, - 332.4000244140625, - 231.0999755859375, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "#[", - "origin": [ - 231.0999755859375, - 338.70001220703125 - ], - "bbox": [ - 231.0999755859375, - 332.70001220703125, - 237.7999725341797, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cÊ-6=¤×ʬ«Y¤�576=¤,£\u001c\u001bª¥/£\u001c©F©\u001aÈ[6=¤", - "origin": [ - 237.7999725341797, - 338.70001220703125 - ], - "bbox": [ - 237.7999725341797, - 332.4000244140625, - 320.89996337890625, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‰T", - "origin": [ - 320.89996337890625, - 338.70001220703125 - ], - "bbox": [ - 320.89996337890625, - 332.70001220703125, - 328.0999755859375, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "„;", - "origin": [ - 328.0999755859375, - 338.70001220703125 - ], - "bbox": [ - 328.0999755859375, - 334.0, - 331.5999755859375, - 351.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ê", - "origin": [ - 331.5999755859375, - 338.70001220703125 - ], - "bbox": [ - 331.5999755859375, - 332.4000244140625, - 336.6999816894531, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "f[", - "origin": [ - 336.6999816894531, - 338.70001220703125 - ], - "bbox": [ - 336.6999816894531, - 332.70001220703125, - 342.3999938964844, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-;", - "origin": [ - 342.3999938964844, - 338.70001220703125 - ], - "bbox": [ - 342.3999938964844, - 334.0, - 347.6999816894531, - 351.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|»", - "origin": [ - 347.6999816894531, - 338.70001220703125 - ], - "bbox": [ - 347.6999816894531, - 332.70001220703125, - 352.5999755859375, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 352.5999755859375, - 338.70001220703125 - ], - "bbox": [ - 352.5999755859375, - 334.0, - 357.9999694824219, - 351.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»\"ß", - "origin": [ - 357.9999694824219, - 338.70001220703125 - ], - "bbox": [ - 357.9999694824219, - 332.70001220703125, - 373.9999694824219, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 373.9999694824219, - 338.70001220703125 - ], - "bbox": [ - 373.9999694824219, - 334.0, - 379.0999755859375, - 351.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.79999542236328, - 332.4000244140625, - 379.0999755859375, - 352.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ê", - "origin": [ - 389.29998779296875, - 338.70001220703125 - ], - "bbox": [ - 389.29998779296875, - 332.4000244140625, - 389.29998779296875, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ\"Xx[", - "origin": [ - 389.29998779296875, - 338.70001220703125 - ], - "bbox": [ - 389.29998779296875, - 332.70001220703125, - 414.79998779296875, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%Ê-6=¤,Ê-«Y¤\\5u6=¤", - "origin": [ - 414.79998779296875, - 338.70001220703125 - ], - "bbox": [ - 414.79998779296875, - 332.4000244140625, - 451.4999694824219, - 352.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.29998779296875, - 332.4000244140625, - 451.4999694824219, - 352.8000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "©F£9©g£\u001c\u001bª¥/£\u001c©F©\u001aÈ[6=¤", - "origin": [ - 458.0999755859375, - 338.70001220703125 - ], - "bbox": [ - 458.0999755859375, - 332.4000244140625, - 516.5, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�T", - "origin": [ - 516.5, - 338.70001220703125 - ], - "bbox": [ - 516.5, - 332.70001220703125, - 523.9000244140625, - 351.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": " m", - "origin": [ - 523.9000244140625, - 338.70001220703125 - ], - "bbox": [ - 523.9000244140625, - 334.0, - 526.800048828125, - 351.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aê", - "origin": [ - 526.800048828125, - 338.70001220703125 - ], - "bbox": [ - 526.800048828125, - 332.4000244140625, - 532.4000244140625, - 352.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�[", - "origin": [ - 532.4000244140625, - 338.70001220703125 - ], - "bbox": [ - 532.4000244140625, - 332.70001220703125, - 538.2000122070312, - 351.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.0999755859375, - 332.4000244140625, - 538.2000122070312, - 352.8000183105469 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 71.99996948242188, - 345.9000244140625, - 368.5999450683594, - 366.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "m", - "origin": [ - 71.99996948242188, - 352.20001220703125 - ], - "bbox": [ - 71.99996948242188, - 347.5, - 71.99996948242188, - 365.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ÞgºF»", - "origin": [ - 71.99996948242188, - 352.20001220703125 - ], - "bbox": [ - 71.99996948242188, - 346.20001220703125, - 87.99996948242188, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 87.99996948242188, - 352.20001220703125 - ], - "bbox": [ - 87.99996948242188, - 347.5, - 93.39997100830078, - 365.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»\"ß", - "origin": [ - 93.39997100830078, - 352.20001220703125 - ], - "bbox": [ - 93.39997100830078, - 346.20001220703125, - 109.39997100830078, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 109.39997100830078, - 352.20001220703125 - ], - "bbox": [ - 109.39997100830078, - 347.5, - 114.49996948242188, - 365.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ìê", - "origin": [ - 114.49996948242188, - 352.20001220703125 - ], - "bbox": [ - 114.49996948242188, - 345.9000244140625, - 124.59996795654297, - 366.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ/X", - "origin": [ - 124.59996795654297, - 352.20001220703125 - ], - "bbox": [ - 124.59996795654297, - 346.20001220703125, - 145.79995727539062, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "×6)5bÊ-6=¤sÊ-«Y¤\\5u6=¤b¥/6B¥/È", - "origin": [ - 145.79995727539062, - 352.20001220703125 - ], - "bbox": [ - 145.79995727539062, - 345.9000244140625, - 222.39996337890625, - 366.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 222.39996337890625, - 352.20001220703125 - ], - "bbox": [ - 222.39996337890625, - 346.20001220703125, - 226.79995727539062, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«¬57«-£\u001c©\u001a¤", - "origin": [ - 226.79995727539062, - 352.20001220703125 - ], - "bbox": [ - 226.79995727539062, - 345.9000244140625, - 257.89996337890625, - 366.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ðT", - "origin": [ - 257.89996337890625, - 352.20001220703125 - ], - "bbox": [ - 257.89996337890625, - 346.20001220703125, - 265.89996337890625, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "v:", - "origin": [ - 265.89996337890625, - 352.20001220703125 - ], - "bbox": [ - 265.89996337890625, - 347.5, - 268.9999694824219, - 365.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ê", - "origin": [ - 268.9999694824219, - 352.20001220703125 - ], - "bbox": [ - 268.9999694824219, - 345.9000244140625, - 274.39996337890625, - 366.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�[", - "origin": [ - 274.39996337890625, - 352.20001220703125 - ], - "bbox": [ - 274.39996337890625, - 346.20001220703125, - 280.199951171875, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1:", - "origin": [ - 280.199951171875, - 352.20001220703125 - ], - "bbox": [ - 280.199951171875, - 347.5, - 285.5999450683594, - 365.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßHà�žcÞ.žcŸ\u0011ž|ºFÞ", - "origin": [ - 285.5999450683594, - 352.20001220703125 - ], - "bbox": [ - 285.5999450683594, - 346.20001220703125, - 332.99993896484375, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ìê", - "origin": [ - 332.99993896484375, - 352.20001220703125 - ], - "bbox": [ - 332.99993896484375, - 345.9000244140625, - 343.0999450683594, - 366.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ\"X", - "origin": [ - 343.0999450683594, - 352.20001220703125 - ], - "bbox": [ - 343.0999450683594, - 346.20001220703125, - 364.3999328613281, - 365.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 ", - "origin": [ - 364.3999328613281, - 352.20001220703125 - ], - "bbox": [ - 364.3999328613281, - 345.9000244140625, - 368.5999450683594, - 366.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 71.99996948242188, - 345.9000244140625, - 368.5999450683594, - 366.3000183105469 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.19996643066406, - 364.8000183105469, - 535.7999267578125, - 385.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "_", - "origin": [ - 72.19996643066406, - 371.1000061035156 - ], - "bbox": [ - 72.19996643066406, - 365.1000061035156, - 72.19996643066406, - 384.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",©É³R´oµÍ¶", - "origin": [ - 72.19996643066406, - 371.1000061035156 - ], - "bbox": [ - 72.19996643066406, - 364.8000183105469, - 111.39996337890625, - 385.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "&[", - "origin": [ - 111.39996337890625, - 371.1000061035156 - ], - "bbox": [ - 111.39996337890625, - 365.1000061035156, - 118.19996643066406, - 384.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9§F©\u001a6RÊ-«-¤�576\u001e6=¤�5 ¦)£9¨g\u0018�£?¤�È=6\u001e¥;¯", - "origin": [ - 118.19996643066406, - 371.1000061035156 - ], - "bbox": [ - 118.19996643066406, - 364.8000183105469, - 228.29998779296875, - 385.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19996643066406, - 364.8000183105469, - 228.29998779296875, - 385.20001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©F6\u001eÐ\u001a\u00194Ê-«-¤76R²?§F«w«¬©�¥/«-²?§F6H²?§F6RÊ", - "origin": [ - 230.49996948242188, - 371.1000061035156 - ], - "bbox": [ - 230.49996948242188, - 364.8000183105469, - 345.9999694824219, - 385.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.49996948242188, - 364.8000183105469, - 345.9999694824219, - 385.20001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c©#6=¤�5 ¥\u001a\u00194©\u001a¤~§F©c6=©?Æ\n«-\u001b7£9©F©F6=¨^6=©?5×ʬ«Y¤�576R6[5s¥K¯", - "origin": [ - 351.5999755859375, - 371.1000061035156 - ], - "bbox": [ - 351.5999755859375, - 364.8000183105469, - 522.5999145507812, - 385.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 351.5999755859375, - 364.8000183105469, - 522.5999145507812, - 385.20001220703125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§F©\u001a6", - "origin": [ - 524.699951171875, - 371.1000061035156 - ], - "bbox": [ - 524.699951171875, - 364.8000183105469, - 535.7999267578125, - 385.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 524.699951171875, - 364.8000183105469, - 535.7999267578125, - 385.20001220703125 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 72.199951171875, - 378.3000183105469, - 305.49993896484375, - 398.70001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ð\u001a\u0019\u001cʬ«Y¤�6H\u0018w£\u001c©\u001a¦)57§F6=ʬÊ-6M²?§F«K¨#\u00194\u001bª²?§F6Vʬ6M¥/È=ÐF§/5R¥/6M¦ªþ�\u0019\u001c²?§F6V«z5u6[¨… ", - "origin": [ - 72.199951171875, - 384.6000061035156 - ], - "bbox": [ - 72.199951171875, - 378.3000183105469, - 305.49993896484375, - 398.70001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.199951171875, - 378.3000183105469, - 305.49993896484375, - 398.70001220703125 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 78.7999496459961, - 397.20001220703125, - 129.8999481201172, - 417.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.7999496459961, - 403.5 - ], - "bbox": [ - 78.7999496459961, - 397.20001220703125, - 129.8999481201172, - 417.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.7999496459961, - 397.20001220703125, - 129.8999481201172, - 417.6000061035156 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 72.5, - 421.9000244140625, - 88.30000305175781, - 442.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 428.20001220703125 - ], - "bbox": [ - 72.5, - 422.20001220703125, - 72.5, - 441.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-;", - "origin": [ - 72.5, - 428.20001220703125 - ], - "bbox": [ - 72.5, - 423.5, - 77.80000305175781, - 441.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ê", - "origin": [ - 77.80000305175781, - 428.20001220703125 - ], - "bbox": [ - 77.80000305175781, - 421.9000244140625, - 82.9000015258789, - 442.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ä", - "origin": [ - 82.9000015258789, - 428.20001220703125 - ], - "bbox": [ - 82.9000015258789, - 422.20001220703125, - 88.30000305175781, - 441.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 421.9000244140625, - 88.30000305175781, - 442.3000183105469 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 82.9000015258789, - 435.5000305175781, - 241.49998474121094, - 455.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.9000015258789, - 441.8000183105469 - ], - "bbox": [ - 82.9000015258789, - 435.8000183105469, - 82.9000015258789, - 455.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aéaè\në\nï", - "origin": [ - 82.9000015258789, - 441.8000183105469 - ], - "bbox": [ - 82.9000015258789, - 435.5000305175781, - 103.80000305175781, - 455.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 103.80000305175781, - 441.8000183105469 - ], - "bbox": [ - 103.80000305175781, - 435.8000183105469, - 109.30000305175781, - 455.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 109.30000305175781, - 441.8000183105469 - ], - "bbox": [ - 109.30000305175781, - 437.1000061035156, - 114.30000305175781, - 454.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»\"ßYÀ6ž|ߊ»", - "origin": [ - 114.30000305175781, - 441.8000183105469 - ], - "bbox": [ - 114.30000305175781, - 435.8000183105469, - 146.0, - 455.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.9000015258789, - 435.5000305175781, - 146.0, - 455.9000244140625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "žYŸ\"ßYÀ", - "origin": [ - 156.39999389648438, - 441.8000183105469 - ], - "bbox": [ - 156.39999389648438, - 435.8000183105469, - 171.29998779296875, - 455.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "b>", - "origin": [ - 171.29998779296875, - 441.8000183105469 - ], - "bbox": [ - 171.29998779296875, - 437.1000061035156, - 182.09999084472656, - 454.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß0ÁHÄ0ÁgžHáIŸ\"ß#·", - "origin": [ - 182.09999084472656, - 441.8000183105469 - ], - "bbox": [ - 182.09999084472656, - 435.8000183105469, - 241.49998474121094, - 455.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.39999389648438, - 435.8000183105469, - 241.49998474121094, - 455.0000305175781 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 82.89999389648438, - 449.10003662109375, - 246.6999969482422, - 469.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 82.89999389648438, - 455.4000244140625 - ], - "bbox": [ - 82.89999389648438, - 449.4000244140625, - 82.89999389648438, - 468.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aéaè\në\nï", - "origin": [ - 82.89999389648438, - 455.4000244140625 - ], - "bbox": [ - 82.89999389648438, - 449.10003662109375, - 103.79999542236328, - 469.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 103.79999542236328, - 455.4000244140625 - ], - "bbox": [ - 103.79999542236328, - 449.4000244140625, - 109.29999542236328, - 468.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 109.29999542236328, - 455.4000244140625 - ], - "bbox": [ - 109.29999542236328, - 450.70001220703125, - 114.29999542236328, - 468.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßFÆ", - "origin": [ - 114.29999542236328, - 455.4000244140625 - ], - "bbox": [ - 114.29999542236328, - 449.4000244140625, - 124.79999542236328, - 468.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1X", - "origin": [ - 124.79999542236328, - 455.4000244140625 - ], - "bbox": [ - 124.79999542236328, - 450.70001220703125, - 130.1999969482422, - 468.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�ž", - "origin": [ - 130.1999969482422, - 455.4000244140625 - ], - "bbox": [ - 130.1999969482422, - 449.4000244140625, - 136.0, - 468.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 136.0, - 455.4000244140625 - ], - "bbox": [ - 136.0, - 450.70001220703125, - 140.89999389648438, - 468.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÀ\u0011ßkžYŸ\"ßYÀ", - "origin": [ - 140.89999389648438, - 455.4000244140625 - ], - "bbox": [ - 140.89999389648438, - 449.4000244140625, - 176.5999755859375, - 468.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "b>", - "origin": [ - 176.5999755859375, - 455.4000244140625 - ], - "bbox": [ - 176.5999755859375, - 450.70001220703125, - 187.3999786376953, - 468.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 187.3999786376953, - 455.4000244140625 - ], - "bbox": [ - 187.3999786376953, - 449.4000244140625, - 192.7999725341797, - 468.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.89999389648438, - 449.10003662109375, - 192.7999725341797, - 469.5000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÁHÄ0ÁgžHáYŸ\"ß&·", - "origin": [ - 203.1999969482422, - 455.4000244140625 - ], - "bbox": [ - 203.1999969482422, - 449.4000244140625, - 246.6999969482422, - 468.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.1999969482422, - 449.4000244140625, - 246.6999969482422, - 468.60003662109375 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 93.39999389648438, - 462.7000427246094, - 109.19999694824219, - 483.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.39999389648438, - 469.0000305175781 - ], - "bbox": [ - 93.39999389648438, - 463.0000305175781, - 93.39999389648438, - 482.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�m", - "origin": [ - 93.39999389648438, - 469.0000305175781 - ], - "bbox": [ - 93.39999389648438, - 464.3000183105469, - 98.19999694824219, - 482.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê", - "origin": [ - 98.19999694824219, - 469.0000305175781 - ], - "bbox": [ - 98.19999694824219, - 462.7000427246094, - 103.69999694824219, - 483.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 103.69999694824219, - 469.0000305175781 - ], - "bbox": [ - 103.69999694824219, - 463.0000305175781, - 109.19999694824219, - 482.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 462.7000427246094, - 109.19999694824219, - 483.10003662109375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 109.09999084472656, - 476.4000549316406, - 356.5000305175781, - 496.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 109.09999084472656, - 482.7000427246094 - ], - "bbox": [ - 109.09999084472656, - 476.7000427246094, - 109.09999084472656, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aéaè?ë\nï", - "origin": [ - 109.09999084472656, - 482.7000427246094 - ], - "bbox": [ - 109.09999084472656, - 476.4000549316406, - 129.8999786376953, - 496.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 129.8999786376953, - 482.7000427246094 - ], - "bbox": [ - 129.8999786376953, - 476.7000427246094, - 135.49998474121094, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 135.49998474121094, - 482.7000427246094 - ], - "bbox": [ - 135.49998474121094, - 478.0000305175781, - 140.49998474121094, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»/ßYÀEž|ߊ»", - "origin": [ - 140.49998474121094, - 482.7000427246094 - ], - "bbox": [ - 140.49998474121094, - 476.7000427246094, - 172.19998168945312, - 495.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.09999084472656, - 476.4000549316406, - 172.19998168945312, - 496.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "žYŸ\"ßcÀ", - "origin": [ - 182.59999084472656, - 482.7000427246094 - ], - "bbox": [ - 182.59999084472656, - 476.7000427246094, - 197.39999389648438, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "`>", - "origin": [ - 197.39999389648438, - 482.7000427246094 - ], - "bbox": [ - 197.39999389648438, - 478.0000305175781, - 208.29998779296875, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nßNÁHÄ", - "origin": [ - 208.29998779296875, - 482.7000427246094 - ], - "bbox": [ - 208.29998779296875, - 476.7000427246094, - 229.39999389648438, - 495.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.59999084472656, - 476.7000427246094, - 229.39999389648438, - 495.9000549316406 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÁgžŠáIŸ\"ß", - "origin": [ - 239.79998779296875, - 482.7000427246094 - ], - "bbox": [ - 239.79998779296875, - 476.7000427246094, - 260.8000183105469, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¢>", - "origin": [ - 260.8000183105469, - 482.7000427246094 - ], - "bbox": [ - 260.8000183105469, - 478.0000305175781, - 271.0000305175781, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆ", - "origin": [ - 271.0000305175781, - 482.7000427246094 - ], - "bbox": [ - 271.0000305175781, - 476.7000427246094, - 276.10003662109375, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ">", - "origin": [ - 276.10003662109375, - 482.7000427246094 - ], - "bbox": [ - 276.10003662109375, - 478.0000305175781, - 286.7000427246094, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßFÆ", - "origin": [ - 286.7000427246094, - 482.7000427246094 - ], - "bbox": [ - 286.7000427246094, - 476.7000427246094, - 297.10003662109375, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1X", - "origin": [ - 297.10003662109375, - 482.7000427246094 - ], - "bbox": [ - 297.10003662109375, - 478.0000305175781, - 302.5000305175781, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011ž", - "origin": [ - 302.5000305175781, - 482.7000427246094 - ], - "bbox": [ - 302.5000305175781, - 476.7000427246094, - 308.4000244140625, - 495.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 308.4000244140625, - 482.7000427246094 - ], - "bbox": [ - 308.4000244140625, - 478.0000305175781, - 313.20001220703125, - 495.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÀ\u0011ß0žYŸ/ßYÀ�¢", - "origin": [ - 313.20001220703125, - 482.7000427246094 - ], - "bbox": [ - 313.20001220703125, - 476.7000427246094, - 356.5000305175781, - 495.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 239.79998779296875, - 476.7000427246094, - 356.5000305175781, - 495.9000549316406 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 93.39997863769531, - 489.9000549316406, - 114.4999771118164, - 510.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.39997863769531, - 496.2000427246094 - ], - "bbox": [ - 93.39997863769531, - 490.2000427246094, - 98.69998168945312, - 509.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\fm", - "origin": [ - 98.69998168945312, - 496.2000427246094 - ], - "bbox": [ - 98.69998168945312, - 491.5000305175781, - 103.39997863769531, - 509.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aê", - "origin": [ - 103.39997863769531, - 496.2000427246094 - ], - "bbox": [ - 103.39997863769531, - 489.9000549316406, - 108.9999771118164, - 510.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 108.9999771118164, - 496.2000427246094 - ], - "bbox": [ - 108.9999771118164, - 490.2000427246094, - 114.4999771118164, - 509.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39997863769531, - 489.9000549316406, - 114.4999771118164, - 510.300048828125 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 72.4999771118164, - 503.6000671386719, - 93.59998321533203, - 524.0000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 72.4999771118164, - 509.9000549316406 - ], - "bbox": [ - 72.4999771118164, - 503.9000549316406, - 77.79998016357422, - 523.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-;", - "origin": [ - 77.79998016357422, - 509.9000549316406 - ], - "bbox": [ - 77.79998016357422, - 505.2000427246094, - 83.09998321533203, - 523.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cê", - "origin": [ - 83.09998321533203, - 509.9000549316406 - ], - "bbox": [ - 83.09998321533203, - 503.6000671386719, - 88.09998321533203, - 524.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 88.09998321533203, - 509.9000549316406 - ], - "bbox": [ - 88.09998321533203, - 503.9000549316406, - 93.59998321533203, - 523.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4999771118164, - 503.6000671386719, - 93.59998321533203, - 524.0000610351562 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 72.30000305175781, - 528.0, - 104.20000457763672, - 548.3999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 534.2999877929688 - ], - "bbox": [ - 72.30000305175781, - 528.0, - 104.20000457763672, - 548.3999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 528.0, - 104.20000457763672, - 548.3999633789062 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 84.9000015258789, - 545.0, - 200.40000915527344, - 565.3999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9 oË,\u001b76=¨g«¬6=\u001bo«z5u6[¨Œ¥F6VÊY\u0019gÊ-«-¤�5769 ", - "origin": [ - 84.9000015258789, - 551.2999877929688 - ], - "bbox": [ - 84.9000015258789, - 545.0, - 200.40000915527344, - 565.3999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.9000015258789, - 545.0, - 200.40000915527344, - 565.3999633789062 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 84.5, - 562.1000366210938, - 208.49996948242188, - 582.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "AF b3R6=§/ÿ/«¬á=¨^6H«¬576=¨Œ¥/6BÊY\u0019^ʬ«Y¤\\5u6\u001c ", - "origin": [ - 84.5, - 568.4000244140625 - ], - "bbox": [ - 84.5, - 562.1000366210938, - 208.49996948242188, - 582.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.5, - 562.1000366210938, - 208.49996948242188, - 582.5 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 107.0999984741211, - 575.7000122070312, - 292.9999084472656, - 596.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ë,\u001bu6[¨g«-6[\u001bo«¬576=¨Œ¥/6HÊY\u0019gʬ«Y¤\\5u6B¥/§Ý¥/6[§/ÿ/«-á[¨g6B«¬576[¨", - "origin": [ - 107.0999984741211, - 582.0 - ], - "bbox": [ - 107.0999984741211, - 575.7000122070312, - 282.39990234375, - 596.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Nå", - "origin": [ - 282.39990234375, - 582.0 - ], - "bbox": [ - 282.39990234375, - 576.0, - 292.9999084472656, - 595.2000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.0999984741211, - 575.7000122070312, - 292.9999084472656, - 596.0999755859375 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 72.39999389648438, - 606.5, - 189.10000610351562, - 626.8999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.39999389648438, - 612.7999877929688 - ], - "bbox": [ - 72.39999389648438, - 606.5, - 72.39999389648438, - 626.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.39999389648438, - 612.7999877929688 - ], - "bbox": [ - 72.39999389648438, - 606.7999877929688, - 78.59999084472656, - 626.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-Ä", - "origin": [ - 78.59999084472656, - 612.7999877929688 - ], - "bbox": [ - 78.59999084472656, - 606.5, - 81.39999389648438, - 626.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 81.39999389648438, - 612.7999877929688 - ], - "bbox": [ - 81.39999389648438, - 606.7999877929688, - 87.59999084472656, - 626.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y“", - "origin": [ - 87.59999084472656, - 612.7999877929688 - ], - "bbox": [ - 87.59999084472656, - 606.5, - 90.79998779296875, - 626.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.39999389648438, - 606.5, - 90.79998779296875, - 626.8999633789062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö~¾\nØ^öôžyØ=—=¾\nØ^Ø=žô¼òóöô¾\nØ", - "origin": [ - 107.29999542236328, - 612.7999877929688 - ], - "bbox": [ - 107.29999542236328, - 606.5, - 189.10000610351562, - 626.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.29999542236328, - 606.5, - 189.10000610351562, - 626.8999633789062 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 72.5, - 633.7000122070312, - 538.2999267578125, - 654.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.5, - 640.0 - ], - "bbox": [ - 72.5, - 634.0, - 72.5, - 653.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©^Ê-\u0019\u001e¨#\u00194\u001bª²9§\u001a6 \u0019aÆ96=¦,ÊY\u0019VÐ\u001a\u00194Ê-«Y¤�6Vç", - "origin": [ - 72.5, - 640.0 - ], - "bbox": [ - 72.5, - 633.7000122070312, - 192.70001220703125, - 654.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "im", - "origin": [ - 192.70001220703125, - 640.0 - ], - "bbox": [ - 192.70001220703125, - 635.2999877929688, - 199.70001220703125, - 653.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aê�ì", - "origin": [ - 199.70001220703125, - 640.0 - ], - "bbox": [ - 199.70001220703125, - 633.7000122070312, - 211.00001525878906, - 654.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "0T", - "origin": [ - 211.00001525878906, - 640.0 - ], - "bbox": [ - 211.00001525878906, - 634.0, - 221.50001525878906, - 653.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": " m", - "origin": [ - 221.50001525878906, - 640.0 - ], - "bbox": [ - 221.50001525878906, - 635.2999877929688, - 224.40000915527344, - 653.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ÞgºF»", - "origin": [ - 224.40000915527344, - 640.0 - ], - "bbox": [ - 224.40000915527344, - 634.0, - 240.40000915527344, - 653.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 240.40000915527344, - 640.0 - ], - "bbox": [ - 240.40000915527344, - 635.2999877929688, - 245.8000030517578, - 653.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»\"ß", - "origin": [ - 245.8000030517578, - 640.0 - ], - "bbox": [ - 245.8000030517578, - 634.0, - 261.79998779296875, - 653.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 261.79998779296875, - 640.0 - ], - "bbox": [ - 261.79998779296875, - 635.2999877929688, - 266.8999938964844, - 653.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ìê", - "origin": [ - 266.8999938964844, - 640.0 - ], - "bbox": [ - 266.8999938964844, - 633.7000122070312, - 277.0, - 654.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ/X", - "origin": [ - 277.0, - 640.0 - ], - "bbox": [ - 277.0, - 634.0, - 298.1999816894531, - 653.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") e¶m6=¤i«¬576=¨g¤", - "origin": [ - 298.1999816894531, - 640.0 - ], - "bbox": [ - 298.1999816894531, - 633.7000122070312, - 343.6999816894531, - 654.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 633.7000122070312, - 343.6999816894531, - 654.0999755859375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7£\u001c©?5i¨#\u00194\u001bª²9§\u001aÈ=¤\u0018\u001a\u00194\u001biÊY\u0019RÐ�\u00194Ê-«-¤76~\u0018w£\u001c©�¦157§\u001a6[Ê-ʬ6Bçbêwé\nìB ", - "origin": [ - 350.3000183105469, - 640.0 - ], - "bbox": [ - 350.3000183105469, - 633.7000122070312, - 538.2999267578125, - 654.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.3000183105469, - 633.7000122070312, - 538.2999267578125, - 654.0999755859375 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 72.30001831054688, - 647.2999877929688, - 163.6000213623047, - 667.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤s\u0018\u001a\u00194\u001bª\u00194¨gá[57\u001bu6=¤s¤�£9©?5H8", - "origin": [ - 72.30001831054688, - 653.5999755859375 - ], - "bbox": [ - 72.30001831054688, - 647.2999877929688, - 163.6000213623047, - 667.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001831054688, - 647.2999877929688, - 163.6000213623047, - 667.699951171875 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 82.20001220703125, - 660.8999633789062, - 472.29998779296875, - 681.2999267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŸHãH´gß", - "origin": [ - 82.20001220703125, - 667.199951171875 - ], - "bbox": [ - 82.20001220703125, - 661.199951171875, - 98.20000457763672, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"->", - "origin": [ - 98.20000457763672, - 667.199951171875 - ], - "bbox": [ - 98.20000457763672, - 662.4999389648438, - 108.70000457763672, - 680.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "fžHá\n ", - "origin": [ - 108.70000457763672, - 667.199951171875 - ], - "bbox": [ - 108.70000457763672, - 661.199951171875, - 124.9000015258789, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<*", - "origin": [ - 124.9000015258789, - 667.199951171875 - ], - "bbox": [ - 124.9000015258789, - 662.4999389648438, - 130.5, - 680.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹ /žY»� ŠÁŠß", - "origin": [ - 130.5, - 667.199951171875 - ], - "bbox": [ - 130.5, - 661.199951171875, - 159.0, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 159.0, - 667.199951171875 - ], - "bbox": [ - 159.0, - 662.4999389648438, - 164.89999389648438, - 680.2999267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20001220703125, - 661.199951171875, - 164.89999389648438, - 680.3999633789062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "á", - "origin": [ - 167.4000244140625, - 667.199951171875 - ], - "bbox": [ - 167.4000244140625, - 661.199951171875, - 167.4000244140625, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f£", - "origin": [ - 167.4000244140625, - 667.199951171875 - ], - "bbox": [ - 167.4000244140625, - 662.4999389648438, - 172.1000213623047, - 680.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆgÄF»/ß", - "origin": [ - 172.1000213623047, - 667.199951171875 - ], - "bbox": [ - 172.1000213623047, - 661.199951171875, - 193.2000274658203, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^8+®\u001e§F«;\u0018�6=\u001b7¨g6[5R¥/6", - "origin": [ - 193.2000274658203, - 667.199951171875 - ], - "bbox": [ - 193.2000274658203, - 660.8999633789062, - 265.8999938964844, - 681.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 265.8999938964844, - 667.199951171875 - ], - "bbox": [ - 265.8999938964844, - 661.199951171875, - 273.6000061035156, - 680.3999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6[\u001bsÊ-6M¤�ø\n¨¸Ðw£\u001cÊ-6B²?§F«m\u00194\u0018\u001a\u0018\u001a\u00194\u001bª\u0019", - "origin": [ - 273.6000061035156, - 667.199951171875 - ], - "bbox": [ - 273.6000061035156, - 660.8999633789062, - 387.199951171875, - 681.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f\u001c", - "origin": [ - 387.199951171875, - 667.199951171875 - ], - "bbox": [ - 387.199951171875, - 662.4999389648438, - 391.89996337890625, - 680.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Y5s¥F6[Æ%\u00194©?5oʬ6e¤o«¬576[¨#¤", - "origin": [ - 391.89996337890625, - 667.199951171875 - ], - "bbox": [ - 391.89996337890625, - 660.8999633789062, - 467.79998779296875, - 681.2999267578125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 467.79998779296875, - 667.199951171875 - ], - "bbox": [ - 467.79998779296875, - 661.199951171875, - 472.29998779296875, - 680.3999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.4000244140625, - 660.8999633789062, - 472.29998779296875, - 681.2999267578125 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 82.70001983642578, - 674.5, - 286.199951171875, - 694.8999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºYÀg´gÄg YŸ", - "origin": [ - 82.70001983642578, - 680.7999877929688 - ], - "bbox": [ - 82.70001983642578, - 674.7999877929688, - 113.80001068115234, - 694.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8�®\u001e§F«m\u0018�6=\u001b7¨g6)5R¥F6\u001e5ª\u0019\u001c¤u¤�6=\u001bo§F©…\u0018�6=§…Ê-\u0019^Ê-«-¤�5769 ", - "origin": [ - 113.80001068115234, - 680.7999877929688 - ], - "bbox": [ - 113.80001068115234, - 674.5, - 286.199951171875, - 694.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.70001983642578, - 674.5, - 286.199951171875, - 694.8999633789062 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 72.40001678466797, - 705.2999877929688, - 202.50003051757812, - 725.699951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.40001678466797, - 711.5999755859375 - ], - "bbox": [ - 72.40001678466797, - 705.2999877929688, - 72.40001678466797, - 725.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.40001678466797, - 711.5999755859375 - ], - "bbox": [ - 72.40001678466797, - 705.5999755859375, - 78.60001373291016, - 724.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-Ä", - "origin": [ - 78.60001373291016, - 711.5999755859375 - ], - "bbox": [ - 78.60001373291016, - 705.2999877929688, - 81.40001678466797, - 725.699951171875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 81.40001678466797, - 711.5999755859375 - ], - "bbox": [ - 81.40001678466797, - 705.5999755859375, - 87.60001373291016, - 724.7999877929688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "YŸ", - "origin": [ - 87.60001373291016, - 711.5999755859375 - ], - "bbox": [ - 87.60001373291016, - 705.2999877929688, - 90.50001525878906, - 725.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.40001678466797, - 705.2999877929688, - 90.50001525878906, - 725.699951171875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö~¾\nØ^öôžyØ=—=¾\nØ^™\u001a˜%š™�––ü\n¾\nØ", - "origin": [ - 107.30001831054688, - 711.5999755859375 - ], - "bbox": [ - 107.30001831054688, - 705.2999877929688, - 202.50003051757812, - 725.699951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.30001831054688, - 705.2999877929688, - 202.50003051757812, - 725.699951171875 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 72.50001525878906, - 732.5, - 538.300048828125, - 752.8999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.50001525878906, - 738.7999877929688 - ], - "bbox": [ - 72.50001525878906, - 732.7999877929688, - 72.50001525878906, - 752.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©ÉÊ-\u0019^¨#\u00194\u001bª²?§F6V\u0019aÆ96=¦\u001eÊ-\u0019^Ð\u001a\u0019\u001cʬ«Y¤76^ç", - "origin": [ - 72.50001525878906, - 738.7999877929688 - ], - "bbox": [ - 72.50001525878906, - 732.5, - 196.60000610351562, - 752.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ƒ;", - "origin": [ - 196.60000610351562, - 738.7999877929688 - ], - "bbox": [ - 196.60000610351562, - 734.0999755859375, - 204.10000610351562, - 751.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9êwì", - "origin": [ - 204.10000610351562, - 738.7999877929688 - ], - "bbox": [ - 204.10000610351562, - 732.5, - 215.00001525878906, - 752.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ìT", - "origin": [ - 215.00001525878906, - 738.7999877929688 - ], - "bbox": [ - 215.00001525878906, - 732.7999877929688, - 226.00001525878906, - 752.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "„;", - "origin": [ - 226.00001525878906, - 738.7999877929688 - ], - "bbox": [ - 226.00001525878906, - 734.0999755859375, - 229.50001525878906, - 751.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|»", - "origin": [ - 229.50001525878906, - 738.7999877929688 - ], - "bbox": [ - 229.50001525878906, - 732.7999877929688, - 234.40000915527344, - 752.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 234.40000915527344, - 738.7999877929688 - ], - "bbox": [ - 234.40000915527344, - 734.0999755859375, - 239.8000030517578, - 751.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»\"ß", - "origin": [ - 239.8000030517578, - 738.7999877929688 - ], - "bbox": [ - 239.8000030517578, - 732.7999877929688, - 255.8000030517578, - 752.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 255.8000030517578, - 738.7999877929688 - ], - "bbox": [ - 255.8000030517578, - 734.0999755859375, - 260.8999938964844, - 751.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 732.5, - 260.8999938964844, - 752.8999633789062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ê", - "origin": [ - 271.10003662109375, - 738.7999877929688 - ], - "bbox": [ - 271.10003662109375, - 732.5, - 271.10003662109375, - 752.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ\"X", - "origin": [ - 271.10003662109375, - 738.7999877929688 - ], - "bbox": [ - 271.10003662109375, - 732.7999877929688, - 292.4000244140625, - 752.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 /¶K6e¤~«¬576=¨#¤b¤�£9©?5s¨#\u0019\u001c\u001bu²?§FÈe¤~\u0018�\u00194\u001bsÊ-\u0019^Ð\u001a\u0019\u001cʬ«Y¤76V\u0018w£\u001c©�¦157§\u001a6[Ê-ʬ6#çbêwé\nìB ", - "origin": [ - 292.4000244140625, - 738.7999877929688 - ], - "bbox": [ - 292.4000244140625, - 732.5, - 538.300048828125, - 752.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.10003662109375, - 732.5, - 538.300048828125, - 752.8999633789062 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 72.30003356933594, - 746.0999755859375, - 163.6000518798828, - 766.4999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤s\u0018\u001a\u00194\u001bª\u00194¨gá[57\u001bu6=¤s¤�£9©?5H8", - "origin": [ - 72.30003356933594, - 752.3999633789062 - ], - "bbox": [ - 72.30003356933594, - 746.0999755859375, - 163.6000518798828, - 766.4999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30003356933594, - 746.0999755859375, - 163.6000518798828, - 766.4999389648438 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgܝÁ\u001aöyžyØe¾\nØ!Á9ûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.8999633789062, - 57.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9:", - "origin": [ - 530.7999877929688, - 43.5999755859375 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.8999633789062, - 57.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.8999633789062, - 57.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 51, - "type": 0, - "bbox": [ - 72.50001525878906, - 732.5, - 538.300048828125, - 752.8999633789062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.50001525878906, - 738.7999877929688 - ], - "bbox": [ - 72.50001525878906, - 732.7999877929688, - 72.50001525878906, - 752.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©ÉÊ-\u0019^¨#\u00194\u001bª²?§F6V\u0019aÆ96=¦\u001eÊ-\u0019^Ð\u001a\u0019\u001cʬ«Y¤76^ç", - "origin": [ - 72.50001525878906, - 738.7999877929688 - ], - "bbox": [ - 72.50001525878906, - 732.5, - 196.60000610351562, - 752.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "ƒ;", - "origin": [ - 196.60000610351562, - 738.7999877929688 - ], - "bbox": [ - 196.60000610351562, - 734.0999755859375, - 204.10000610351562, - 751.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9êwì", - "origin": [ - 204.10000610351562, - 738.7999877929688 - ], - "bbox": [ - 204.10000610351562, - 732.5, - 215.00001525878906, - 752.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ìT", - "origin": [ - 215.00001525878906, - 738.7999877929688 - ], - "bbox": [ - 215.00001525878906, - 732.7999877929688, - 226.00001525878906, - 752.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "„;", - "origin": [ - 226.00001525878906, - 738.7999877929688 - ], - "bbox": [ - 226.00001525878906, - 734.0999755859375, - 229.50001525878906, - 751.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|»", - "origin": [ - 229.50001525878906, - 738.7999877929688 - ], - "bbox": [ - 229.50001525878906, - 732.7999877929688, - 234.40000915527344, - 752.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 234.40000915527344, - 738.7999877929688 - ], - "bbox": [ - 234.40000915527344, - 734.0999755859375, - 239.8000030517578, - 751.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»\"ß", - "origin": [ - 239.8000030517578, - 738.7999877929688 - ], - "bbox": [ - 239.8000030517578, - 732.7999877929688, - 255.8000030517578, - 752.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 255.8000030517578, - 738.7999877929688 - ], - "bbox": [ - 255.8000030517578, - 734.0999755859375, - 260.8999938964844, - 751.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 732.5, - 260.8999938964844, - 752.8999633789062 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ê", - "origin": [ - 271.10003662109375, - 738.7999877929688 - ], - "bbox": [ - 271.10003662109375, - 732.5, - 271.10003662109375, - 752.8999633789062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ\"X", - "origin": [ - 271.10003662109375, - 738.7999877929688 - ], - "bbox": [ - 271.10003662109375, - 732.7999877929688, - 292.4000244140625, - 752.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "1 /¶K6e¤~«¬576=¨#¤b¤�£9©?5s¨#\u0019\u001c\u001bu²?§FÈe¤~\u0018�\u00194\u001bsÊ-\u0019^Ð\u001a\u0019\u001cʬ«Y¤76V\u0018w£\u001c©�¦157§\u001a6[Ê-ʬ6#çbêwé\nìB ", - "origin": [ - 292.4000244140625, - 738.7999877929688 - ], - "bbox": [ - 292.4000244140625, - 732.5, - 538.300048828125, - 752.8999633789062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.10003662109375, - 732.5, - 538.300048828125, - 752.8999633789062 - ] - } - ], - "tag": "footer" - }, - { - "number": 52, - "type": 0, - "bbox": [ - 72.30003356933594, - 746.0999755859375, - 163.6000518798828, - 766.4999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤s\u0018\u001a\u00194\u001bª\u00194¨gá[57\u001bu6=¤s¤�£9©?5H8", - "origin": [ - 72.30003356933594, - 752.3999633789062 - ], - "bbox": [ - 72.30003356933594, - 746.0999755859375, - 163.6000518798828, - 766.4999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30003356933594, - 746.0999755859375, - 163.6000518798828, - 766.4999389648438 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 10, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_11": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 3, - "type": 0, - "bbox": [ - 82.19996643066406, - 80.69993591308594, - 534.800048828125, - 101.09993743896484 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŸHãH´gß", - "origin": [ - 82.19996643066406, - 86.99993896484375 - ], - "bbox": [ - 82.19996643066406, - 80.99993896484375, - 98.19995880126953, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%/#*", - "origin": [ - 98.19995880126953, - 86.99993896484375 - ], - "bbox": [ - 98.19995880126953, - 82.29994201660156, - 114.5999526977539, - 100.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19996643066406, - 80.99993896484375, - 114.5999526977539, - 100.19993591308594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä", - "origin": [ - 116.79997253417969, - 86.99993896484375 - ], - "bbox": [ - 116.79997253417969, - 80.99993896484375, - 116.79997253417969, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 116.79997253417969, - 86.99993896484375 - ], - "bbox": [ - 116.79997253417969, - 82.29994201660156, - 122.6999740600586, - 100.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 116.79997253417969, - 80.99993896484375, - 122.6999740600586, - 100.19993591308594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ð", - "origin": [ - 124.5999755859375, - 86.99993896484375 - ], - "bbox": [ - 124.5999755859375, - 80.69993591308594, - 124.5999755859375, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 124.5999755859375, - 86.99993896484375 - ], - "bbox": [ - 124.5999755859375, - 82.29994201660156, - 130.69998168945312, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ž", - "origin": [ - 130.69998168945312, - 86.99993896484375 - ], - "bbox": [ - 130.69998168945312, - 80.99993896484375, - 133.29998779296875, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e*", - "origin": [ - 133.29998779296875, - 86.99993896484375 - ], - "bbox": [ - 133.29998779296875, - 82.29994201660156, - 138.79998779296875, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "xé#8m®\u001e§F«\u0018�6=\u001b7¨g6[5V¥/6", - "origin": [ - 138.79998779296875, - 86.99993896484375 - ], - "bbox": [ - 138.79998779296875, - 80.69993591308594, - 215.09996032714844, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ü�", - "origin": [ - 215.09996032714844, - 86.99993896484375 - ], - "bbox": [ - 215.09996032714844, - 80.99993896484375, - 223.19996643066406, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6[\u001b\u001eʬ6g¤�ø\n¨!Ð�£9ʬ6¸²?§F«i\u00194\u0018\u001a\u0018\u001a\u00194\u001bª\u0019", - "origin": [ - 223.19996643066406, - 86.99993896484375 - ], - "bbox": [ - 223.19996643066406, - 80.69993591308594, - 337.9999694824219, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f\u001c", - "origin": [ - 337.9999694824219, - 86.99993896484375 - ], - "bbox": [ - 337.9999694824219, - 82.29994201660156, - 342.6999816894531, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Y5\u001e¥/6=Æa\u0019\u001c©?5VÊ-6=¤\u001e«z5u6[¨#¤= ", - "origin": [ - 342.6999816894531, - 86.99993896484375 - ], - "bbox": [ - 342.6999816894531, - 80.69993591308594, - 424.1999816894531, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "E/", - "origin": [ - 424.1999816894531, - 86.99993896484375 - ], - "bbox": [ - 424.1999816894531, - 82.29994201660156, - 430.6999816894531, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!\u0018w£\u001c§F\u001bV§F©F6!©?§\u001a¨^È=\u001b7£\u001c5u\u0019457«-£\u001c©", - "origin": [ - 430.6999816894531, - 86.99993896484375 - ], - "bbox": [ - 430.6999816894531, - 80.69993591308594, - 534.800048828125, - 101.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.5999755859375, - 80.69993591308594, - 534.800048828125, - 101.09993743896484 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 82.29997253417969, - 94.29991149902344, - 534.8001098632812, - 114.69991302490234 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)ÊY\u0019\u001c¤u¤�«Y²?§F6", - "origin": [ - 82.29997253417969, - 100.59991455078125 - ], - "bbox": [ - 82.29997253417969, - 94.29991149902344, - 115.89997863769531, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 115.89997863769531, - 100.59991455078125 - ], - "bbox": [ - 115.89997863769531, - 94.59991455078125, - 123.79998016357422, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\:", - "origin": [ - 123.79998016357422, - 100.59991455078125 - ], - "bbox": [ - 123.79998016357422, - 94.29991149902344, - 127.4999771118164, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 127.4999771118164, - 100.59991455078125 - ], - "bbox": [ - 127.4999771118164, - 94.59991455078125, - 132.5999755859375, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9A", - "origin": [ - 132.5999755859375, - 100.59991455078125 - ], - "bbox": [ - 132.5999755859375, - 94.29991149902344, - 137.69998168945312, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/[", - "origin": [ - 137.69998168945312, - 100.59991455078125 - ], - "bbox": [ - 137.69998168945312, - 94.59991455078125, - 143.0999755859375, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cG", - "origin": [ - 143.0999755859375, - 100.59991455078125 - ], - "bbox": [ - 143.0999755859375, - 94.29991149902344, - 148.0999755859375, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g[", - "origin": [ - 148.0999755859375, - 100.59991455078125 - ], - "bbox": [ - 148.0999755859375, - 94.59991455078125, - 153.69998168945312, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a - ¬ ", - "origin": [ - 153.69998168945312, - 100.59991455078125 - ], - "bbox": [ - 153.69998168945312, - 94.29991149902344, - 164.79998779296875, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹Xx[\nÄ", - "origin": [ - 164.79998779296875, - 100.59991455078125 - ], - "bbox": [ - 164.79998779296875, - 94.59991455078125, - 176.69998168945312, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "B£9§#ð¸\u0018w£\u001c§F\u001b,§\u001a©F6b©\n§F¨gÈ[\u001bu£45ª\u0019%57«-£\u001c©#\u0019\u001cʬ\u0018Fþ�\u00194ÐwÈ)57«Y²?§F6", - "origin": [ - 176.69998168945312, - 100.59991455078125 - ], - "bbox": [ - 176.69998168945312, - 94.29991149902344, - 360.199951171875, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 360.199951171875, - 100.59991455078125 - ], - "bbox": [ - 360.199951171875, - 94.59991455078125, - 368.0999450683594, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y\u0019", - "origin": [ - 368.0999450683594, - 100.59991455078125 - ], - "bbox": [ - 368.0999450683594, - 94.29991149902344, - 371.2999572753906, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g[", - "origin": [ - 371.2999572753906, - 100.59991455078125 - ], - "bbox": [ - 371.2999572753906, - 94.59991455078125, - 376.89996337890625, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cÐ", - "origin": [ - 376.89996337890625, - 100.59991455078125 - ], - "bbox": [ - 376.89996337890625, - 94.29991149902344, - 381.89996337890625, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 381.89996337890625, - 100.59991455078125 - ], - "bbox": [ - 381.89996337890625, - 94.59991455078125, - 387.9999694824219, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "� ¬ - ", - "origin": [ - 387.9999694824219, - 100.59991455078125 - ], - "bbox": [ - 387.9999694824219, - 94.29991149902344, - 399.1999816894531, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹Xx[gž", - "origin": [ - 399.1999816894531, - 100.59991455078125 - ], - "bbox": [ - 399.1999816894531, - 94.59991455078125, - 411.3999938964844, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e£\u001c§Ýé\u001e\u0018�£9§F\u001b,§F©F6R©?§\u001a¨^È=\u001b7£\u001c5u\u0019457«-£\u001c©", - "origin": [ - 411.3999938964844, - 100.59991455078125 - ], - "bbox": [ - 411.3999938964844, - 94.29991149902344, - 534.8001098632812, - 114.69991302490234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29997253417969, - 94.29991149902344, - 534.8001098632812, - 114.69991302490234 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 82.1999740600586, - 107.99992370605469, - 161.19996643066406, - 128.39993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-\u0019457«-©F6", - "origin": [ - 82.1999740600586, - 114.2999267578125 - ], - "bbox": [ - 82.1999740600586, - 107.99992370605469, - 102.09998321533203, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "òT", - "origin": [ - 102.09998321533203, - 114.2999267578125 - ], - "bbox": [ - 102.09998321533203, - 108.2999267578125, - 110.59998321533203, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ«", - "origin": [ - 110.59998321533203, - 114.2999267578125 - ], - "bbox": [ - 110.59998321533203, - 107.99992370605469, - 113.69998168945312, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "y[", - "origin": [ - 113.69998168945312, - 114.2999267578125 - ], - "bbox": [ - 113.69998168945312, - 108.2999267578125, - 117.09998321533203, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F«-«", - "origin": [ - 117.09998321533203, - 114.2999267578125 - ], - "bbox": [ - 117.09998321533203, - 107.99992370605469, - 125.39998626708984, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\r[", - "origin": [ - 125.39998626708984, - 114.2999267578125 - ], - "bbox": [ - 125.39998626708984, - 108.2999267578125, - 128.69998168945312, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/«-«¬«", - "origin": [ - 128.69998168945312, - 114.2999267578125 - ], - "bbox": [ - 128.69998168945312, - 107.99992370605469, - 139.5999755859375, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "y[", - "origin": [ - 139.5999755859375, - 114.2999267578125 - ], - "bbox": [ - 139.5999755859375, - 108.2999267578125, - 142.99996948242188, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K - ¬ ", - "origin": [ - 142.99996948242188, - 114.2999267578125 - ], - "bbox": [ - 142.99996948242188, - 107.99992370605469, - 154.5999755859375, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹Xx[", - "origin": [ - 154.5999755859375, - 114.2999267578125 - ], - "bbox": [ - 154.5999755859375, - 108.2999267578125, - 161.19996643066406, - 127.49992370605469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.1999740600586, - 107.99992370605469, - 161.19996643066406, - 128.39993286132812 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 82.6999740600586, - 121.49992370605469, - 286.1999206542969, - 141.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºYÀg´gÄg YŸ", - "origin": [ - 82.6999740600586, - 127.7999267578125 - ], - "bbox": [ - 82.6999740600586, - 121.7999267578125, - 113.79996490478516, - 140.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8�®\u001e§F«m\u0018�6=\u001b7¨g6)5R¥F6\u001e5ª\u0019\u001c¤u¤�6=\u001bo§F©…\u0018�6=§…Ê-\u0019^Ê-«-¤�5769 ", - "origin": [ - 113.79996490478516, - 127.7999267578125 - ], - "bbox": [ - 113.79996490478516, - 121.49992370605469, - 286.1999206542969, - 141.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.6999740600586, - 121.49992370605469, - 286.1999206542969, - 141.89993286132812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 78.79997253417969, - 135.19993591308594, - 129.8999786376953, - 155.59994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79997253417969, - 141.49993896484375 - ], - "bbox": [ - 78.79997253417969, - 135.19993591308594, - 129.8999786376953, - 155.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79997253417969, - 135.19993591308594, - 129.8999786376953, - 155.59994506835938 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 93.4000015258789, - 159.90000915527344, - 187.9000244140625, - 180.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 166.20001220703125 - ], - "bbox": [ - 93.4000015258789, - 160.20001220703125, - 93.4000015258789, - 179.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-;", - "origin": [ - 93.4000015258789, - 166.20001220703125 - ], - "bbox": [ - 93.4000015258789, - 161.50001525878906, - 98.70000457763672, - 179.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cê", - "origin": [ - 98.70000457763672, - 166.20001220703125 - ], - "bbox": [ - 98.70000457763672, - 159.90000915527344, - 103.70000457763672, - 180.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 159.90000915527344, - 103.70000457763672, - 180.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ÿ\n㊴gß", - "origin": [ - 114.10000610351562, - 166.20001220703125 - ], - "bbox": [ - 114.10000610351562, - 160.20001220703125, - 130.10000610351562, - 179.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%/", - "origin": [ - 130.10000610351562, - 166.20001220703125 - ], - "bbox": [ - 130.10000610351562, - 161.50001525878906, - 141.3000030517578, - 179.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "( FºcÀg´gÄg IŸ\"ä", - "origin": [ - 141.3000030517578, - 166.20001220703125 - ], - "bbox": [ - 141.3000030517578, - 160.20001220703125, - 187.9000244140625, - 179.40000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.10000610351562, - 160.20001220703125, - 187.9000244140625, - 179.40000915527344 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 114.40000915527344, - 173.49998474121094, - 172.40000915527344, - 193.89999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.40000915527344, - 179.79998779296875 - ], - "bbox": [ - 114.40000915527344, - 173.79998779296875, - 114.40000915527344, - 192.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ê�é", - "origin": [ - 114.40000915527344, - 179.79998779296875 - ], - "bbox": [ - 114.40000915527344, - 173.49998474121094, - 125.20000457763672, - 193.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fä(Ÿ\"ß", - "origin": [ - 125.20000457763672, - 179.79998779296875 - ], - "bbox": [ - 125.20000457763672, - 173.79998779296875, - 145.60000610351562, - 192.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 145.60000610351562, - 179.79998779296875 - ], - "bbox": [ - 145.60000610351562, - 175.09999084472656, - 150.70001220703125, - 192.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ/ß", - "origin": [ - 150.70001220703125, - 179.79998779296875 - ], - "bbox": [ - 150.70001220703125, - 173.79998779296875, - 161.40000915527344, - 192.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¤/", - "origin": [ - 161.40000915527344, - 179.79998779296875 - ], - "bbox": [ - 161.40000915527344, - 175.09999084472656, - 172.40000915527344, - 192.89999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.40000915527344, - 173.49998474121094, - 172.40000915527344, - 193.89999389648438 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 114.40000915527344, - 187.1999969482422, - 171.8000030517578, - 207.60000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.40000915527344, - 193.5 - ], - "bbox": [ - 114.40000915527344, - 187.5, - 114.40000915527344, - 206.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ê�é", - "origin": [ - 114.40000915527344, - 193.5 - ], - "bbox": [ - 114.40000915527344, - 187.1999969482422, - 125.20000457763672, - 207.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fä(Ÿ\"ß", - "origin": [ - 125.20000457763672, - 193.5 - ], - "bbox": [ - 125.20000457763672, - 187.5, - 145.60000610351562, - 206.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 145.60000610351562, - 193.5 - ], - "bbox": [ - 145.60000610351562, - 188.8000030517578, - 150.70001220703125, - 206.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ/ß", - "origin": [ - 150.70001220703125, - 193.5 - ], - "bbox": [ - 150.70001220703125, - 187.5, - 161.40000915527344, - 206.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")0", - "origin": [ - 161.40000915527344, - 193.5 - ], - "bbox": [ - 161.40000915527344, - 188.8000030517578, - 171.8000030517578, - 206.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.40000915527344, - 187.1999969482422, - 171.8000030517578, - 207.60000610351562 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 93.40000915527344, - 200.6999969482422, - 114.50000762939453, - 221.10000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.40000915527344, - 207.0 - ], - "bbox": [ - 93.40000915527344, - 201.0, - 98.70001220703125, - 220.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#;", - "origin": [ - 98.70001220703125, - 207.0 - ], - "bbox": [ - 98.70001220703125, - 202.3000030517578, - 103.90000915527344, - 220.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ê", - "origin": [ - 103.90000915527344, - 207.0 - ], - "bbox": [ - 103.90000915527344, - 200.6999969482422, - 109.00000762939453, - 221.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 109.00000762939453, - 207.0 - ], - "bbox": [ - 109.00000762939453, - 201.0, - 114.50000762939453, - 220.1999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.40000915527344, - 200.6999969482422, - 114.50000762939453, - 221.10000610351562 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.30000305175781, - 225.1000213623047, - 104.20000457763672, - 245.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 231.4000244140625 - ], - "bbox": [ - 72.30000305175781, - 225.1000213623047, - 104.20000457763672, - 245.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 225.1000213623047, - 104.20000457763672, - 245.50003051757812 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 84.9000015258789, - 242.30003356933594, - 122.80000305175781, - 262.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9 s576)ÿ\n5u6^:", - "origin": [ - 84.9000015258789, - 248.60003662109375 - ], - "bbox": [ - 84.9000015258789, - 242.30003356933594, - 122.80000305175781, - 262.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.9000015258789, - 242.30003356933594, - 122.80000305175781, - 262.7000427246094 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 84.5, - 259.300048828125, - 122.40000915527344, - 279.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "AF s576)ÿ\n5u6BA", - "origin": [ - 84.5, - 265.60003662109375 - ], - "bbox": [ - 84.5, - 259.300048828125, - 122.40000915527344, - 279.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.5, - 259.300048828125, - 122.40000915527344, - 279.7000427246094 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.4000015258789, - 289.9000244140625, - 219.50001525878906, - 310.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 296.20001220703125 - ], - "bbox": [ - 72.4000015258789, - 289.9000244140625, - 72.4000015258789, - 310.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 296.20001220703125 - ], - "bbox": [ - 72.4000015258789, - 290.20001220703125, - 78.5999984741211, - 309.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-Ä", - "origin": [ - 78.5999984741211, - 296.20001220703125 - ], - "bbox": [ - 78.5999984741211, - 289.9000244140625, - 81.4000015258789, - 310.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 81.4000015258789, - 296.20001220703125 - ], - "bbox": [ - 81.4000015258789, - 290.20001220703125, - 87.5999984741211, - 309.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-Ä", - "origin": [ - 87.5999984741211, - 296.20001220703125 - ], - "bbox": [ - 87.5999984741211, - 289.9000244140625, - 90.4000015258789, - 310.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 289.9000244140625, - 90.4000015258789, - 310.3000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö~¾\nØ^öôžyØ=—=¾\nØ^š¾Íšü", - "origin": [ - 107.30000305175781, - 296.20001220703125 - ], - "bbox": [ - 107.30000305175781, - 289.9000244140625, - 178.50001525878906, - 310.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#š", - "origin": [ - 178.50001525878906, - 296.20001220703125 - ], - "bbox": [ - 178.50001525878906, - 291.5, - 183.70001220703125, - 309.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "–žõ—ežy™w–Ø", - "origin": [ - 183.70001220703125, - 296.20001220703125 - ], - "bbox": [ - 183.70001220703125, - 289.9000244140625, - 219.50001525878906, - 310.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.30000305175781, - 289.9000244140625, - 219.50001525878906, - 310.3000183105469 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 79.30000305175781, - 521.2000122070312, - 154.3000030517578, - 541.5999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¾9˜%¼¿¾\u000eŸ", - "origin": [ - 79.30000305175781, - 527.5 - ], - "bbox": [ - 79.30000305175781, - 521.2000122070312, - 108.10000610351562, - 541.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "j¦", - "origin": [ - 108.10000610351562, - 527.5 - ], - "bbox": [ - 108.10000610351562, - 522.7999877929688, - 117.40000915527344, - 540.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ٚü", - "origin": [ - 117.40000915527344, - 527.5 - ], - "bbox": [ - 117.40000915527344, - 521.2000122070312, - 133.10000610351562, - 541.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#š", - "origin": [ - 133.10000610351562, - 527.5 - ], - "bbox": [ - 133.10000610351562, - 522.7999877929688, - 138.3000030517578, - 540.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "i–žy˜", - "origin": [ - 138.3000030517578, - 527.5 - ], - "bbox": [ - 138.3000030517578, - 521.2000122070312, - 154.3000030517578, - 541.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.30000305175781, - 521.2000122070312, - 154.3000030517578, - 541.5999755859375 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 97.30000305175781, - 538.4000854492188, - 186.29998779296875, - 558.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3RÈ", - "origin": [ - 97.30000305175781, - 544.7000732421875 - ], - "bbox": [ - 97.30000305175781, - 538.4000854492188, - 104.70000457763672, - 558.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 104.70000457763672, - 544.7000732421875 - ], - "bbox": [ - 104.70000457763672, - 538.7000732421875, - 109.10000610351562, - 557.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«¬57«-£\u001c©Ý¥/§É576=\u001b7¨g6MA", - "origin": [ - 109.10000610351562, - 544.7000732421875 - ], - "bbox": [ - 109.10000610351562, - 538.4000854492188, - 186.29998779296875, - 558.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.30000305175781, - 538.4000854492188, - 186.29998779296875, - 558.800048828125 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 72.5, - 570.5, - 169.89999389648438, - 589.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 72.5, - 576.5 - ], - "bbox": [ - 72.5, - 571.7999877929688, - 72.5, - 589.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1\u0019Dè", - "origin": [ - 72.5, - 576.5 - ], - "bbox": [ - 72.5, - 570.5, - 82.69999694824219, - 589.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 570.5, - 82.69999694824219, - 589.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%r-/8\u0013Ï °;)68\u00132", - "origin": [ - 103.0, - 576.5 - ], - "bbox": [ - 103.0, - 570.5, - 162.59999084472656, - 589.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¨’", - "origin": [ - 162.59999084472656, - 576.5 - ], - "bbox": [ - 162.59999084472656, - 571.7999877929688, - 169.89999389648438, - 589.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.0, - 570.5, - 169.89999389648438, - 589.7000122070312 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 72.30000305175781, - 598.7000122070312, - 534.9000244140625, - 619.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤H5u\u0019\u001cÐFÊ-6=\u00194§FÿÙ¤7£\u001c©?5M¥/6=¤!¤\\5u\u001b7§\u001a¦)57§F\u001bu6=¤H«-¨g\u0018�£9\u001b�5ª\u00194©?576e¤B6[©ò³\u001e´oµÍ¶, ", - "origin": [ - 72.30000305175781, - 605.0 - ], - "bbox": [ - 72.30000305175781, - 598.7000122070312, - 320.1000061035156, - 619.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E_", - "origin": [ - 320.1000061035156, - 605.0 - ], - "bbox": [ - 320.1000061035156, - 599.0, - 326.3999938964844, - 618.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",ʬÊ-6=¤¸¤�6=\u001b7Æ96[©?5B©F£\u001c©¿¤76[§FÊ-6[¨g6=©95¸ßÉÔy\u0019\u001c«¬\u001bu6c¥/6e¤H5u\u0019\u001cÐFʬ6e\u00194§/ÿ", - "origin": [ - 326.3999938964844, - 605.0 - ], - "bbox": [ - 326.3999938964844, - 598.7000122070312, - 534.9000244140625, - 619.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 598.7000122070312, - 534.9000244140625, - 619.0999755859375 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 72.30000305175781, - 612.300048828125, - 398.5999755859375, - 632.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)£9¨g¨^6H£9©…\u0019^Ê", - "origin": [ - 72.30000305175781, - 618.6000366210938 - ], - "bbox": [ - 72.30000305175781, - 612.300048828125, - 128.10000610351562, - 632.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 612.300048828125, - 128.10000610351562, - 632.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "þ�\u00194ÐF«¬57§\u001a¥F6M¥;¯", - "origin": [ - 133.60000610351562, - 618.6000366210938 - ], - "bbox": [ - 133.60000610351562, - 612.300048828125, - 181.29998779296875, - 632.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.60000610351562, - 612.300048828125, - 181.29998779296875, - 632.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=©…Æ\u001c£\u001c«-\u001b", - "origin": [ - 183.40000915527344, - 618.6000366210938 - ], - "bbox": [ - 183.40000915527344, - 612.300048828125, - 209.60000610351562, - 632.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 209.60000610351562, - 618.6000366210938 - ], - "bbox": [ - 209.60000610351562, - 612.6000366210938, - 214.20001220703125, - 631.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?¨#\u0019\u001c«-¤o\u0019\u001c§\u001a¤7¤7«Kß^Ç\u001cÈ=\u001b76=\u001b ÊY\u0019^¨g«-¤76M¥/6=¤o¥F£\n¦[§F¨g6[©?5u¤= ", - "origin": [ - 214.20001220703125, - 618.6000366210938 - ], - "bbox": [ - 214.20001220703125, - 612.300048828125, - 398.5999755859375, - 632.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 183.40000915527344, - 612.300048828125, - 398.5999755859375, - 632.7000122070312 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 78.80000305175781, - 631.1000366210938, - 536.2999877929688, - 651.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c§�¤#Æ\u001c£9§Fʬ6", - "origin": [ - 78.80000305175781, - 637.4000244140625 - ], - "bbox": [ - 78.80000305175781, - 631.1000366210938, - 116.19999694824219, - 651.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\‡", - "origin": [ - 116.19999694824219, - 637.4000244140625 - ], - "bbox": [ - 116.19999694824219, - 631.4000244140625, - 120.69999694824219, - 650.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…¨^6[5�5u\u001b76…§F©F6ݨ#\u0019\u001c\u001b7Ç96…ßÙÆ9£457\u001bu6Ý¥/£/¦)§F¨g6=©95+·", - "origin": [ - 120.69999694824219, - 637.4000244140625 - ], - "bbox": [ - 120.69999694824219, - 631.1000366210938, - 294.7999267578125, - 651.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÑÇ", - "origin": [ - 294.7999267578125, - 637.4000244140625 - ], - "bbox": [ - 294.7999267578125, - 631.4000244140625, - 303.7999267578125, - 650.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80000305175781, - 631.1000366210938, - 303.7999267578125, - 651.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c§�¤#Æ\u001c£9§Fʬ6", - "origin": [ - 310.4000244140625, - 637.4000244140625 - ], - "bbox": [ - 310.4000244140625, - 631.1000366210938, - 347.800048828125, - 651.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\‡", - "origin": [ - 347.800048828125, - 637.4000244140625 - ], - "bbox": [ - 347.800048828125, - 631.4000244140625, - 352.300048828125, - 650.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…§F©", - "origin": [ - 352.300048828125, - 637.4000244140625 - ], - "bbox": [ - 352.300048828125, - 631.1000366210938, - 366.7000427246094, - 651.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 310.4000244140625, - 631.1000366210938, - 366.7000427246094, - 651.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194Ç\u001c6=©\u001a¦)6=¨g6[©?5#\u0018\u001a\u00194\u001b757«Y¦)§FÊ-«-6[\u001b#¥/6Í¥/«", - "origin": [ - 376.9000244140625, - 637.4000244140625 - ], - "bbox": [ - 376.9000244140625, - 631.1000366210938, - 501.2999267578125, - 651.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h", - "origin": [ - 501.2999267578125, - 637.4000244140625 - ], - "bbox": [ - 501.2999267578125, - 631.4000244140625, - 503.99993896484375, - 650.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wÈ=\u001b76=©?576=¤", - "origin": [ - 503.99993896484375, - 637.4000244140625 - ], - "bbox": [ - 503.99993896484375, - 631.1000366210938, - 536.2999877929688, - 651.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.9000244140625, - 631.1000366210938, - 536.2999877929688, - 651.5 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 72.20001220703125, - 644.7000732421875, - 198.90000915527344, - 665.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨g\u0019\u001cÇ\u001c6e¤�·", - "origin": [ - 72.20001220703125, - 651.0000610351562 - ], - "bbox": [ - 72.20001220703125, - 644.7000732421875, - 103.60001373291016, - 665.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "œ©", - "origin": [ - 103.60001373291016, - 651.0000610351562 - ], - "bbox": [ - 103.60001373291016, - 646.300048828125, - 113.00001525878906, - 664.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "9w\rp", - "origin": [ - 113.00001525878906, - 651.0000610351562 - ], - "bbox": [ - 113.00001525878906, - 645.0000610351562, - 122.70001983642578, - 664.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "{(", - "origin": [ - 122.70001983642578, - 651.0000610351562 - ], - "bbox": [ - 122.70001983642578, - 644.7000732421875, - 125.70001983642578, - 665.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 644.7000732421875, - 125.70001983642578, - 665.1000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "pÚu", - "origin": [ - 128.20001220703125, - 651.0000610351562 - ], - "bbox": [ - 128.20001220703125, - 645.0000610351562, - 131.10000610351562, - 664.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "['", - "origin": [ - 131.10000610351562, - 651.0000610351562 - ], - "bbox": [ - 131.10000610351562, - 644.7000732421875, - 135.5, - 665.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "”ª", - "origin": [ - 135.5, - 651.0000610351562 - ], - "bbox": [ - 135.5, - 646.300048828125, - 139.60000610351562, - 664.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸(¬'", - "origin": [ - 139.60000610351562, - 651.0000610351562 - ], - "bbox": [ - 139.60000610351562, - 644.7000732421875, - 150.3000030517578, - 665.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xu$w", - "origin": [ - 150.3000030517578, - 651.0000610351562 - ], - "bbox": [ - 150.3000030517578, - 645.0000610351562, - 162.3000030517578, - 664.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±\"", - "origin": [ - 162.3000030517578, - 651.0000610351562 - ], - "bbox": [ - 162.3000030517578, - 644.7000732421875, - 165.90000915527344, - 665.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fs", - "origin": [ - 165.90000915527344, - 651.0000610351562 - ], - "bbox": [ - 165.90000915527344, - 645.0000610351562, - 170.90000915527344, - 664.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[(¬'ª\"%&", - "origin": [ - 170.90000915527344, - 651.0000610351562 - ], - "bbox": [ - 170.90000915527344, - 644.7000732421875, - 186.90000915527344, - 665.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�xi«", - "origin": [ - 186.90000915527344, - 651.0000610351562 - ], - "bbox": [ - 186.90000915527344, - 646.300048828125, - 198.90000915527344, - 664.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.20001220703125, - 644.7000732421875, - 198.90000915527344, - 665.1000366210938 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 72.30001068115234, - 663.5000610351562, - 369.39996337890625, - 683.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤o¥/«", - "origin": [ - 72.30001068115234, - 669.800048828125 - ], - "bbox": [ - 72.30001068115234, - 663.5000610351562, - 95.60000610351562, - 683.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h", - "origin": [ - 95.60000610351562, - 669.800048828125 - ], - "bbox": [ - 95.60000610351562, - 663.800048828125, - 98.30000305175781, - 683.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wÈ=\u001b76=©95u6=¤sÐ\u001a\u0019\u001cʬ«Y¤76=¤o²?§F«K\u0018w6[\u001bu¨g6)5�5u6[©?5R¥/6M¦[£\u001c©\u001a¤�57\u001bu§F«-\u001b76V§F©É5u\u0019\u001cÐFʬ6e\u00194§…¤�£9©?5H8", - "origin": [ - 98.30000305175781, - 669.800048828125 - ], - "bbox": [ - 98.30000305175781, - 663.5000610351562, - 369.39996337890625, - 683.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001068115234, - 663.5000610351562, - 369.39996337890625, - 683.9000244140625 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 82.80001068115234, - 677.1000366210938, - 410.5000305175781, - 697.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè?ð", - "origin": [ - 82.80001068115234, - 683.4000244140625 - ], - "bbox": [ - 82.80001068115234, - 677.1000366210938, - 95.20000457763672, - 697.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H›", - "origin": [ - 95.20000457763672, - 683.4000244140625 - ], - "bbox": [ - 95.20000457763672, - 677.4000244140625, - 100.4000015258789, - 696.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ë+ìÕ3RÈ", - "origin": [ - 100.4000015258789, - 683.4000244140625 - ], - "bbox": [ - 100.4000015258789, - 677.1000366210938, - 134.6999969482422, - 697.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 134.6999969482422, - 683.4000244140625 - ], - "bbox": [ - 134.6999969482422, - 677.4000244140625, - 139.09999084472656, - 696.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«Y¤oÊ-\u0019", - "origin": [ - 139.09999084472656, - 683.4000244140625 - ], - "bbox": [ - 139.09999084472656, - 677.1000366210938, - 163.09999084472656, - 697.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "m‡", - "origin": [ - 163.09999084472656, - 683.4000244140625 - ], - "bbox": [ - 163.09999084472656, - 677.4000244140625, - 171.29998779296875, - 696.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=£\u001c©F6B²?§F«m¦[£\u001c©?57«-6[©\u001a¥F\u001bu\u0019!ʬ6e¤s£\u001cÐ", - "origin": [ - 171.29998779296875, - 683.4000244140625 - ], - "bbox": [ - 171.29998779296875, - 677.1000366210938, - 279.29998779296875, - 697.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ë", - "origin": [ - 279.29998779296875, - 683.4000244140625 - ], - "bbox": [ - 279.29998779296875, - 677.4000244140625, - 284.6999816894531, - 696.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6[5u¤o²?§F«;Ôõ£9\u001b7¨g6=\u001b7£9©\u001a¤ ʬ6H5ª\u00194ÐFÊ-6=\u0019\u001c§", - "origin": [ - 284.6999816894531, - 683.4000244140625 - ], - "bbox": [ - 284.6999816894531, - 677.1000366210938, - 404.4000244140625, - 697.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 404.4000244140625, - 683.4000244140625 - ], - "bbox": [ - 404.4000244140625, - 677.4000244140625, - 410.5000305175781, - 696.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001068115234, - 677.1000366210938, - 410.5000305175781, - 697.5 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 82.80001068115234, - 690.7000732421875, - 264.29998779296875, - 711.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80001068115234, - 697.0000610351562 - ], - "bbox": [ - 82.80001068115234, - 690.7000732421875, - 82.80001068115234, - 711.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*¾", - "origin": [ - 82.80001068115234, - 697.0000610351562 - ], - "bbox": [ - 82.80001068115234, - 691.0000610351562, - 90.10001373291016, - 710.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ð", - "origin": [ - 90.10001373291016, - 697.0000610351562 - ], - "bbox": [ - 90.10001373291016, - 690.7000732421875, - 95.20001220703125, - 711.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-'", - "origin": [ - 95.20001220703125, - 697.0000610351562 - ], - "bbox": [ - 95.20001220703125, - 692.300048828125, - 100.50001525878906, - 710.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè+é", - "origin": [ - 100.50001525878906, - 697.0000610351562 - ], - "bbox": [ - 100.50001525878906, - 690.7000732421875, - 111.70001983642578, - 711.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�;", - "origin": [ - 111.70001983642578, - 697.0000610351562 - ], - "bbox": [ - 111.70001983642578, - 692.300048828125, - 116.70001983642578, - 710.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|œ", - "origin": [ - 116.70001983642578, - 697.0000610351562 - ], - "bbox": [ - 116.70001983642578, - 691.0000610351562, - 121.60002136230469, - 710.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 121.60002136230469, - 697.0000610351562 - ], - "bbox": [ - 121.60002136230469, - 690.7000732421875, - 127.5000228881836, - 711.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001068115234, - 690.7000732421875, - 127.5000228881836, - 711.1000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001eÈ", - "origin": [ - 137.70001220703125, - 697.0000610351562 - ], - "bbox": [ - 137.70001220703125, - 690.7000732421875, - 145.20001220703125, - 711.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 145.20001220703125, - 697.0000610351562 - ], - "bbox": [ - 145.20001220703125, - 691.0000610351562, - 149.50001525878906, - 710.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«Y¤oÊY\u0019^ʬÈ=Ç\u001c6[©�¥/6B¥/§É5u\u00194Ð\u001aʬ6e\u00194§", - "origin": [ - 149.50001525878906, - 697.0000610351562 - ], - "bbox": [ - 149.50001525878906, - 690.7000732421875, - 258.1999816894531, - 711.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 258.1999816894531, - 697.0000610351562 - ], - "bbox": [ - 258.1999816894531, - 691.0000610351562, - 264.29998779296875, - 710.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 137.70001220703125, - 690.7000732421875, - 264.29998779296875, - 711.1000366210938 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 82.80001068115234, - 704.4000854492188, - 292.4000549316406, - 724.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè", - "origin": [ - 82.80001068115234, - 710.7000732421875 - ], - "bbox": [ - 82.80001068115234, - 704.4000854492188, - 90.00000762939453, - 724.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½", - "origin": [ - 90.00000762939453, - 710.7000732421875 - ], - "bbox": [ - 90.00000762939453, - 704.7000732421875, - 95.20000457763672, - 723.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 95.20000457763672, - 710.7000732421875 - ], - "bbox": [ - 95.20000457763672, - 704.4000854492188, - 101.10000610351562, - 724.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ìT", - "origin": [ - 101.10000610351562, - 710.7000732421875 - ], - "bbox": [ - 101.10000610351562, - 704.7000732421875, - 112.10000610351562, - 723.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yè", - "origin": [ - 112.10000610351562, - 710.7000732421875 - ], - "bbox": [ - 112.10000610351562, - 704.4000854492188, - 115.30000305175781, - 724.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ä|ÅfÁHß", - "origin": [ - 115.30000305175781, - 710.7000732421875 - ], - "bbox": [ - 115.30000305175781, - 704.7000732421875, - 136.60000610351562, - 723.9000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001068115234, - 704.4000854492188, - 136.60000610351562, - 724.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "½\"ºF¶gX", - "origin": [ - 146.70001220703125, - 710.7000732421875 - ], - "bbox": [ - 146.70001220703125, - 704.7000732421875, - 162.80001831054688, - 723.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "×3\u001eÈ", - "origin": [ - 162.80001831054688, - 710.7000732421875 - ], - "bbox": [ - 162.80001831054688, - 704.4000854492188, - 177.1000213623047, - 724.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 177.1000213623047, - 710.7000732421875 - ], - "bbox": [ - 177.1000213623047, - 704.7000732421875, - 181.4000244140625, - 723.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©\u001a«-¤o§\u001a©F6Bʬ«-Ç\u001c©\u001a6H¥F§‰5ª\u00194ÐFÊ-6=\u0019\u001c§", - "origin": [ - 181.4000244140625, - 710.7000732421875 - ], - "bbox": [ - 181.4000244140625, - 704.4000854492188, - 286.300048828125, - 724.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 286.300048828125, - 710.7000732421875 - ], - "bbox": [ - 286.300048828125, - 704.7000732421875, - 292.4000549316406, - 723.9000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.70001220703125, - 704.4000854492188, - 292.4000549316406, - 724.800048828125 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 82.80001068115234, - 717.9000854492188, - 330.39996337890625, - 738.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè", - "origin": [ - 82.80001068115234, - 724.2000732421875 - ], - "bbox": [ - 82.80001068115234, - 717.9000854492188, - 90.00000762939453, - 738.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 90.00000762939453, - 724.2000732421875 - ], - "bbox": [ - 90.00000762939453, - 719.5000610351562, - 95.20000457763672, - 737.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 95.20000457763672, - 724.2000732421875 - ], - "bbox": [ - 95.20000457763672, - 717.9000854492188, - 101.10000610351562, - 738.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ìT", - "origin": [ - 101.10000610351562, - 724.2000732421875 - ], - "bbox": [ - 101.10000610351562, - 718.2000732421875, - 112.10000610351562, - 737.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yè", - "origin": [ - 112.10000610351562, - 724.2000732421875 - ], - "bbox": [ - 112.10000610351562, - 717.9000854492188, - 115.30000305175781, - 738.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ä|ÅfÁHß", - "origin": [ - 115.30000305175781, - 724.2000732421875 - ], - "bbox": [ - 115.30000305175781, - 718.2000732421875, - 136.60000610351562, - 737.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "?:", - "origin": [ - 136.60000610351562, - 724.2000732421875 - ], - "bbox": [ - 136.60000610351562, - 719.5000610351562, - 146.70001220703125, - 737.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ĊŸ\"ÄN Fß\nÁ\nÁHX", - "origin": [ - 146.70001220703125, - 724.2000732421875 - ], - "bbox": [ - 146.70001220703125, - 718.2000732421875, - 194.2000274658203, - 737.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "~3RÈ", - "origin": [ - 194.2000274658203, - 724.2000732421875 - ], - "bbox": [ - 194.2000274658203, - 717.9000854492188, - 208.50001525878906, - 738.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 208.50001525878906, - 724.2000732421875 - ], - "bbox": [ - 208.50001525878906, - 718.2000732421875, - 212.90000915527344, - 737.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«Y¤o§F©F6M¦[6[Ê-ʬ§FÊ-6B¥/§É5u\u0019\u001cÐFʬ6e\u00194§", - "origin": [ - 212.90000915527344, - 724.2000732421875 - ], - "bbox": [ - 212.90000915527344, - 717.9000854492188, - 324.2999572753906, - 738.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 324.2999572753906, - 724.2000732421875 - ], - "bbox": [ - 324.2999572753906, - 718.2000732421875, - 330.39996337890625, - 737.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001068115234, - 717.9000854492188, - 330.39996337890625, - 738.300048828125 - ] - } - ] - } - ], - "images": [], - "tables": [ - { - "bbox": [ - 69.57661290322581, - 317.300048828125, - 540.2983870967741, - 526.4000244140625 - ], - "image_path": "tables/11_69_317_540_526.jpg" - } - ], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 122.35887096774192, - 96.9139601139601, - 172.26209677419354, - 109.38803418803418 - ], - "image_path": "equations_inline/11_122_96_172_109.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 57.699974060058594 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 530.7999877929688, - 35.29997634887695, - 535.5, - 57.699974060058594 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 135.19993591308594, - 595.0, - 245.50003051757812 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 289.9000244140625, - 595.0, - 310.3000183105469 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 69.57661290322581, - 317.300048828125, - 540.2983870967741, - 558.800048828125 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 570.5, - 595.0, - 765.7000122070312 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgܝÁ\u001aöyžyØe¾\nØ!Á9ûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.5, - 57.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":aA", - "origin": [ - 530.7999877929688, - 43.5999755859375 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.5, - 57.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.5, - 57.699974060058594 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 82.19996643066406, - 80.69993591308594, - 534.800048828125, - 101.09993743896484 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŸHãH´gß", - "origin": [ - 82.19996643066406, - 86.99993896484375 - ], - "bbox": [ - 82.19996643066406, - 80.99993896484375, - 98.19995880126953, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%/#*", - "origin": [ - 98.19995880126953, - 86.99993896484375 - ], - "bbox": [ - 98.19995880126953, - 82.29994201660156, - 114.5999526977539, - 100.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19996643066406, - 80.99993896484375, - 114.5999526977539, - 100.19993591308594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä", - "origin": [ - 116.79997253417969, - 86.99993896484375 - ], - "bbox": [ - 116.79997253417969, - 80.99993896484375, - 116.79997253417969, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 116.79997253417969, - 86.99993896484375 - ], - "bbox": [ - 116.79997253417969, - 82.29994201660156, - 122.6999740600586, - 100.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 116.79997253417969, - 80.99993896484375, - 122.6999740600586, - 100.19993591308594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ð", - "origin": [ - 124.5999755859375, - 86.99993896484375 - ], - "bbox": [ - 124.5999755859375, - 80.69993591308594, - 124.5999755859375, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 124.5999755859375, - 86.99993896484375 - ], - "bbox": [ - 124.5999755859375, - 82.29994201660156, - 130.69998168945312, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ž", - "origin": [ - 130.69998168945312, - 86.99993896484375 - ], - "bbox": [ - 130.69998168945312, - 80.99993896484375, - 133.29998779296875, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e*", - "origin": [ - 133.29998779296875, - 86.99993896484375 - ], - "bbox": [ - 133.29998779296875, - 82.29994201660156, - 138.79998779296875, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "xé#8m®\u001e§F«\u0018�6=\u001b7¨g6[5V¥/6", - "origin": [ - 138.79998779296875, - 86.99993896484375 - ], - "bbox": [ - 138.79998779296875, - 80.69993591308594, - 215.09996032714844, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ü�", - "origin": [ - 215.09996032714844, - 86.99993896484375 - ], - "bbox": [ - 215.09996032714844, - 80.99993896484375, - 223.19996643066406, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fÿ/6[\u001b\u001eʬ6g¤�ø\n¨!Ð�£9ʬ6¸²?§F«i\u00194\u0018\u001a\u0018\u001a\u00194\u001bª\u0019", - "origin": [ - 223.19996643066406, - 86.99993896484375 - ], - "bbox": [ - 223.19996643066406, - 80.69993591308594, - 337.9999694824219, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f\u001c", - "origin": [ - 337.9999694824219, - 86.99993896484375 - ], - "bbox": [ - 337.9999694824219, - 82.29994201660156, - 342.6999816894531, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Y5\u001e¥/6=Æa\u0019\u001c©?5VÊ-6=¤\u001e«z5u6[¨#¤= ", - "origin": [ - 342.6999816894531, - 86.99993896484375 - ], - "bbox": [ - 342.6999816894531, - 80.69993591308594, - 424.1999816894531, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "E/", - "origin": [ - 424.1999816894531, - 86.99993896484375 - ], - "bbox": [ - 424.1999816894531, - 82.29994201660156, - 430.6999816894531, - 100.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "!\u0018w£\u001c§F\u001bV§F©F6!©?§\u001a¨^È=\u001b7£\u001c5u\u0019457«-£\u001c©", - "origin": [ - 430.6999816894531, - 86.99993896484375 - ], - "bbox": [ - 430.6999816894531, - 80.69993591308594, - 534.800048828125, - 101.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.5999755859375, - 80.69993591308594, - 534.800048828125, - 101.09993743896484 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 82.29997253417969, - 94.29991149902344, - 534.8001098632812, - 114.69991302490234 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)ÊY\u0019\u001c¤u¤�«Y²?§F6", - "origin": [ - 82.29997253417969, - 100.59991455078125 - ], - "bbox": [ - 82.29997253417969, - 94.29991149902344, - 115.89997863769531, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 115.89997863769531, - 100.59991455078125 - ], - "bbox": [ - 115.89997863769531, - 94.59991455078125, - 123.79998016357422, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\:", - "origin": [ - 123.79998016357422, - 100.59991455078125 - ], - "bbox": [ - 123.79998016357422, - 94.29991149902344, - 127.4999771118164, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 127.4999771118164, - 100.59991455078125 - ], - "bbox": [ - 127.4999771118164, - 94.59991455078125, - 132.5999755859375, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9A", - "origin": [ - 132.5999755859375, - 100.59991455078125 - ], - "bbox": [ - 132.5999755859375, - 94.29991149902344, - 137.69998168945312, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/[", - "origin": [ - 137.69998168945312, - 100.59991455078125 - ], - "bbox": [ - 137.69998168945312, - 94.59991455078125, - 143.0999755859375, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cG", - "origin": [ - 143.0999755859375, - 100.59991455078125 - ], - "bbox": [ - 143.0999755859375, - 94.29991149902344, - 148.0999755859375, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g[", - "origin": [ - 148.0999755859375, - 100.59991455078125 - ], - "bbox": [ - 148.0999755859375, - 94.59991455078125, - 153.69998168945312, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a - ¬ ", - "origin": [ - 153.69998168945312, - 100.59991455078125 - ], - "bbox": [ - 153.69998168945312, - 94.29991149902344, - 164.79998779296875, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹Xx[\nÄ", - "origin": [ - 164.79998779296875, - 100.59991455078125 - ], - "bbox": [ - 164.79998779296875, - 94.59991455078125, - 176.69998168945312, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "B£9§#ð¸\u0018w£\u001c§F\u001b,§\u001a©F6b©\n§F¨gÈ[\u001bu£45ª\u0019%57«-£\u001c©#\u0019\u001cʬ\u0018Fþ�\u00194ÐwÈ)57«Y²?§F6", - "origin": [ - 176.69998168945312, - 100.59991455078125 - ], - "bbox": [ - 176.69998168945312, - 94.29991149902344, - 360.199951171875, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "CT", - "origin": [ - 360.199951171875, - 100.59991455078125 - ], - "bbox": [ - 360.199951171875, - 94.59991455078125, - 368.0999450683594, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "y\u0019", - "origin": [ - 368.0999450683594, - 100.59991455078125 - ], - "bbox": [ - 368.0999450683594, - 94.29991149902344, - 371.2999572753906, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g[", - "origin": [ - 371.2999572753906, - 100.59991455078125 - ], - "bbox": [ - 371.2999572753906, - 94.59991455078125, - 376.89996337890625, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cÐ", - "origin": [ - 376.89996337890625, - 100.59991455078125 - ], - "bbox": [ - 376.89996337890625, - 94.29991149902344, - 381.89996337890625, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 381.89996337890625, - 100.59991455078125 - ], - "bbox": [ - 381.89996337890625, - 94.59991455078125, - 387.9999694824219, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "� ¬ - ", - "origin": [ - 387.9999694824219, - 100.59991455078125 - ], - "bbox": [ - 387.9999694824219, - 94.29991149902344, - 399.1999816894531, - 114.69991302490234 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹Xx[gž", - "origin": [ - 399.1999816894531, - 100.59991455078125 - ], - "bbox": [ - 399.1999816894531, - 94.59991455078125, - 411.3999938964844, - 113.79991149902344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e£\u001c§Ýé\u001e\u0018�£9§F\u001b,§F©F6R©?§\u001a¨^È=\u001b7£\u001c5u\u0019457«-£\u001c©", - "origin": [ - 411.3999938964844, - 100.59991455078125 - ], - "bbox": [ - 411.3999938964844, - 94.29991149902344, - 534.8001098632812, - 114.69991302490234 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.29997253417969, - 94.29991149902344, - 534.8001098632812, - 114.69991302490234 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 82.1999740600586, - 107.99992370605469, - 161.19996643066406, - 128.39993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-\u0019457«-©F6", - "origin": [ - 82.1999740600586, - 114.2999267578125 - ], - "bbox": [ - 82.1999740600586, - 107.99992370605469, - 102.09998321533203, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "òT", - "origin": [ - 102.09998321533203, - 114.2999267578125 - ], - "bbox": [ - 102.09998321533203, - 108.2999267578125, - 110.59998321533203, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "õ«", - "origin": [ - 110.59998321533203, - 114.2999267578125 - ], - "bbox": [ - 110.59998321533203, - 107.99992370605469, - 113.69998168945312, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "y[", - "origin": [ - 113.69998168945312, - 114.2999267578125 - ], - "bbox": [ - 113.69998168945312, - 108.2999267578125, - 117.09998321533203, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F«-«", - "origin": [ - 117.09998321533203, - 114.2999267578125 - ], - "bbox": [ - 117.09998321533203, - 107.99992370605469, - 125.39998626708984, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\r[", - "origin": [ - 125.39998626708984, - 114.2999267578125 - ], - "bbox": [ - 125.39998626708984, - 108.2999267578125, - 128.69998168945312, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/«-«¬«", - "origin": [ - 128.69998168945312, - 114.2999267578125 - ], - "bbox": [ - 128.69998168945312, - 107.99992370605469, - 139.5999755859375, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "y[", - "origin": [ - 139.5999755859375, - 114.2999267578125 - ], - "bbox": [ - 139.5999755859375, - 108.2999267578125, - 142.99996948242188, - 127.49992370605469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K - ¬ ", - "origin": [ - 142.99996948242188, - 114.2999267578125 - ], - "bbox": [ - 142.99996948242188, - 107.99992370605469, - 154.5999755859375, - 128.39993286132812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‹Xx[", - "origin": [ - 154.5999755859375, - 114.2999267578125 - ], - "bbox": [ - 154.5999755859375, - 108.2999267578125, - 161.19996643066406, - 127.49992370605469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.1999740600586, - 107.99992370605469, - 161.19996643066406, - 128.39993286132812 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 82.6999740600586, - 121.49992370605469, - 286.1999206542969, - 141.89993286132812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " |ºYÀg´gÄg YŸ", - "origin": [ - 82.6999740600586, - 127.7999267578125 - ], - "bbox": [ - 82.6999740600586, - 121.7999267578125, - 113.79996490478516, - 140.9999237060547 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8�®\u001e§F«m\u0018�6=\u001b7¨g6)5R¥F6\u001e5ª\u0019\u001c¤u¤�6=\u001bo§F©…\u0018�6=§…Ê-\u0019^Ê-«-¤�5769 ", - "origin": [ - 113.79996490478516, - 127.7999267578125 - ], - "bbox": [ - 113.79996490478516, - 121.49992370605469, - 286.1999206542969, - 141.89993286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.6999740600586, - 121.49992370605469, - 286.1999206542969, - 141.89993286132812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 78.79997253417969, - 135.19993591308594, - 129.8999786376953, - 155.59994506835938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79997253417969, - 141.49993896484375 - ], - "bbox": [ - 78.79997253417969, - 135.19993591308594, - 129.8999786376953, - 155.59994506835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79997253417969, - 135.19993591308594, - 129.8999786376953, - 155.59994506835938 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 93.4000015258789, - 159.90000915527344, - 187.9000244140625, - 180.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 166.20001220703125 - ], - "bbox": [ - 93.4000015258789, - 160.20001220703125, - 93.4000015258789, - 179.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-;", - "origin": [ - 93.4000015258789, - 166.20001220703125 - ], - "bbox": [ - 93.4000015258789, - 161.50001525878906, - 98.70000457763672, - 179.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cê", - "origin": [ - 98.70000457763672, - 166.20001220703125 - ], - "bbox": [ - 98.70000457763672, - 159.90000915527344, - 103.70000457763672, - 180.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 159.90000915527344, - 103.70000457763672, - 180.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ÿ\n㊴gß", - "origin": [ - 114.10000610351562, - 166.20001220703125 - ], - "bbox": [ - 114.10000610351562, - 160.20001220703125, - 130.10000610351562, - 179.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"%/", - "origin": [ - 130.10000610351562, - 166.20001220703125 - ], - "bbox": [ - 130.10000610351562, - 161.50001525878906, - 141.3000030517578, - 179.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "( FºcÀg´gÄg IŸ\"ä", - "origin": [ - 141.3000030517578, - 166.20001220703125 - ], - "bbox": [ - 141.3000030517578, - 160.20001220703125, - 187.9000244140625, - 179.40000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.10000610351562, - 160.20001220703125, - 187.9000244140625, - 179.40000915527344 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 114.40000915527344, - 173.49998474121094, - 172.40000915527344, - 193.89999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.40000915527344, - 179.79998779296875 - ], - "bbox": [ - 114.40000915527344, - 173.79998779296875, - 114.40000915527344, - 192.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ê�é", - "origin": [ - 114.40000915527344, - 179.79998779296875 - ], - "bbox": [ - 114.40000915527344, - 173.49998474121094, - 125.20000457763672, - 193.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fä(Ÿ\"ß", - "origin": [ - 125.20000457763672, - 179.79998779296875 - ], - "bbox": [ - 125.20000457763672, - 173.79998779296875, - 145.60000610351562, - 192.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 145.60000610351562, - 179.79998779296875 - ], - "bbox": [ - 145.60000610351562, - 175.09999084472656, - 150.70001220703125, - 192.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ/ß", - "origin": [ - 150.70001220703125, - 179.79998779296875 - ], - "bbox": [ - 150.70001220703125, - 173.79998779296875, - 161.40000915527344, - 192.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¤/", - "origin": [ - 161.40000915527344, - 179.79998779296875 - ], - "bbox": [ - 161.40000915527344, - 175.09999084472656, - 172.40000915527344, - 192.89999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.40000915527344, - 173.49998474121094, - 172.40000915527344, - 193.89999389648438 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 114.40000915527344, - 187.1999969482422, - 171.8000030517578, - 207.60000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.40000915527344, - 193.5 - ], - "bbox": [ - 114.40000915527344, - 187.5, - 114.40000915527344, - 206.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ê�é", - "origin": [ - 114.40000915527344, - 193.5 - ], - "bbox": [ - 114.40000915527344, - 187.1999969482422, - 125.20000457763672, - 207.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fä(Ÿ\"ß", - "origin": [ - 125.20000457763672, - 193.5 - ], - "bbox": [ - 125.20000457763672, - 187.5, - 145.60000610351562, - 206.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 145.60000610351562, - 193.5 - ], - "bbox": [ - 145.60000610351562, - 188.8000030517578, - 150.70001220703125, - 206.60000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nŸ/ß", - "origin": [ - 150.70001220703125, - 193.5 - ], - "bbox": [ - 150.70001220703125, - 187.5, - 161.40000915527344, - 206.6999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")0", - "origin": [ - 161.40000915527344, - 193.5 - ], - "bbox": [ - 161.40000915527344, - 188.8000030517578, - 171.8000030517578, - 206.60000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.40000915527344, - 187.1999969482422, - 171.8000030517578, - 207.60000610351562 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 93.40000915527344, - 200.6999969482422, - 114.50000762939453, - 221.10000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.40000915527344, - 207.0 - ], - "bbox": [ - 93.40000915527344, - 201.0, - 98.70001220703125, - 220.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#;", - "origin": [ - 98.70001220703125, - 207.0 - ], - "bbox": [ - 98.70001220703125, - 202.3000030517578, - 103.90000915527344, - 220.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ê", - "origin": [ - 103.90000915527344, - 207.0 - ], - "bbox": [ - 103.90000915527344, - 200.6999969482422, - 109.00000762939453, - 221.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 109.00000762939453, - 207.0 - ], - "bbox": [ - 109.00000762939453, - 201.0, - 114.50000762939453, - 220.1999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.40000915527344, - 200.6999969482422, - 114.50000762939453, - 221.10000610351562 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.30000305175781, - 225.1000213623047, - 104.20000457763672, - 245.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 231.4000244140625 - ], - "bbox": [ - 72.30000305175781, - 225.1000213623047, - 104.20000457763672, - 245.50003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 225.1000213623047, - 104.20000457763672, - 245.50003051757812 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 84.9000015258789, - 242.30003356933594, - 122.80000305175781, - 262.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":9 s576)ÿ\n5u6^:", - "origin": [ - 84.9000015258789, - 248.60003662109375 - ], - "bbox": [ - 84.9000015258789, - 242.30003356933594, - 122.80000305175781, - 262.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.9000015258789, - 242.30003356933594, - 122.80000305175781, - 262.7000427246094 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 84.5, - 259.300048828125, - 122.40000915527344, - 279.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "AF s576)ÿ\n5u6BA", - "origin": [ - 84.5, - 265.60003662109375 - ], - "bbox": [ - 84.5, - 259.300048828125, - 122.40000915527344, - 279.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.5, - 259.300048828125, - 122.40000915527344, - 279.7000427246094 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.4000015258789, - 289.9000244140625, - 219.50001525878906, - 310.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 296.20001220703125 - ], - "bbox": [ - 72.4000015258789, - 289.9000244140625, - 72.4000015258789, - 310.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 296.20001220703125 - ], - "bbox": [ - 72.4000015258789, - 290.20001220703125, - 78.5999984741211, - 309.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-Ä", - "origin": [ - 78.5999984741211, - 296.20001220703125 - ], - "bbox": [ - 78.5999984741211, - 289.9000244140625, - 81.4000015258789, - 310.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 81.4000015258789, - 296.20001220703125 - ], - "bbox": [ - 81.4000015258789, - 290.20001220703125, - 87.5999984741211, - 309.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "-Ä", - "origin": [ - 87.5999984741211, - 296.20001220703125 - ], - "bbox": [ - 87.5999984741211, - 289.9000244140625, - 90.4000015258789, - 310.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 289.9000244140625, - 90.4000015258789, - 310.3000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ö~¾\nØ^öôžyØ=—=¾\nØ^š¾Íšü", - "origin": [ - 107.30000305175781, - 296.20001220703125 - ], - "bbox": [ - 107.30000305175781, - 289.9000244140625, - 178.50001525878906, - 310.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#š", - "origin": [ - 178.50001525878906, - 296.20001220703125 - ], - "bbox": [ - 178.50001525878906, - 291.5, - 183.70001220703125, - 309.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "–žõ—ežy™w–Ø", - "origin": [ - 183.70001220703125, - 296.20001220703125 - ], - "bbox": [ - 183.70001220703125, - 289.9000244140625, - 219.50001525878906, - 310.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.30000305175781, - 289.9000244140625, - 219.50001525878906, - 310.3000183105469 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.5, - 317.300048828125, - 309.0999755859375, - 337.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.5, - 323.60003662109375 - ], - "bbox": [ - 72.5, - 317.60003662109375, - 72.5, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©gÊ-\u0019M¨g\u0019\u001c\u001bu²?§F6o\u0019aÆ96=¦ Ê-\u0019MÐ\u001a\u00194Ê-«-¤76Bç", - "origin": [ - 72.5, - 323.60003662109375 - ], - "bbox": [ - 72.5, - 317.300048828125, - 194.00001525878906, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(:", - "origin": [ - 194.00001525878906, - 323.60003662109375 - ], - "bbox": [ - 194.00001525878906, - 318.9000244140625, - 201.20001220703125, - 336.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/êwì", - "origin": [ - 201.20001220703125, - 323.60003662109375 - ], - "bbox": [ - 201.20001220703125, - 317.300048828125, - 212.40000915527344, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "0T", - "origin": [ - 212.40000915527344, - 323.60003662109375 - ], - "bbox": [ - 212.40000915527344, - 317.60003662109375, - 222.90000915527344, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "v:", - "origin": [ - 222.90000915527344, - 323.60003662109375 - ], - "bbox": [ - 222.90000915527344, - 318.9000244140625, - 226.00001525878906, - 336.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßHà�žcÞ\u0011žYŸ\u0011ž|ºFÞ", - "origin": [ - 226.00001525878906, - 323.60003662109375 - ], - "bbox": [ - 226.00001525878906, - 317.60003662109375, - 273.5, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ìê", - "origin": [ - 273.5, - 323.60003662109375 - ], - "bbox": [ - 273.5, - 317.300048828125, - 283.6000061035156, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ/X", - "origin": [ - 283.6000061035156, - 323.60003662109375 - ], - "bbox": [ - 283.6000061035156, - 317.60003662109375, - 304.79998779296875, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 304.79998779296875, - 323.60003662109375 - ], - "bbox": [ - 304.79998779296875, - 317.300048828125, - 309.0999755859375, - 337.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 317.300048828125, - 309.0999755859375, - 337.7000427246094 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 317.6000061035156, - 317.300048828125, - 533.2000122070312, - 337.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊFøg\u0019B¥/6[§Fÿ^«¬576=¨g¤,\u0018�£?¤7¤7«¬Ð\u001aʬ6e¤", - "origin": [ - 317.6000061035156, - 323.60003662109375 - ], - "bbox": [ - 317.6000061035156, - 317.300048828125, - 423.10003662109375, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 423.10003662109375, - 323.60003662109375 - ], - "bbox": [ - 423.10003662109375, - 317.60003662109375, - 427.5000305175781, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4Ê-6o5u6[\u001bu¨^6b߸¥/È", - "origin": [ - 427.5000305175781, - 323.60003662109375 - ], - "bbox": [ - 427.5000305175781, - 317.300048828125, - 483.70001220703125, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 483.70001220703125, - 323.60003662109375 - ], - "bbox": [ - 483.70001220703125, - 317.60003662109375, - 488.0, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©\u001a«¬\u001bb8�ç", - "origin": [ - 488.0, - 323.60003662109375 - ], - "bbox": [ - 488.0, - 317.300048828125, - 514.9000244140625, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(:", - "origin": [ - 514.9000244140625, - 323.60003662109375 - ], - "bbox": [ - 514.9000244140625, - 318.9000244140625, - 522.1000366210938, - 336.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nèwì", - "origin": [ - 522.1000366210938, - 323.60003662109375 - ], - "bbox": [ - 522.1000366210938, - 317.300048828125, - 533.2000122070312, - 337.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.6000061035156, - 317.300048828125, - 533.2000122070312, - 337.7000427246094 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 72.19999694824219, - 330.800048828125, - 231.8000030517578, - 351.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6)5bÊY\u0019g¥/È", - "origin": [ - 72.19999694824219, - 337.10003662109375 - ], - "bbox": [ - 72.19999694824219, - 330.800048828125, - 100.40000915527344, - 351.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 100.40000915527344, - 337.10003662109375 - ], - "bbox": [ - 100.40000915527344, - 331.10003662109375, - 104.70001220703125, - 350.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©F«z5u«¬£9©…6[©…6[Ê-ʬ6[°", - "origin": [ - 104.70001220703125, - 337.10003662109375 - ], - "bbox": [ - 104.70001220703125, - 330.800048828125, - 166.7999725341797, - 351.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 330.800048828125, - 166.7999725341797, - 351.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨gå=¨^6g8Kç", - "origin": [ - 170.1999969482422, - 337.10003662109375 - ], - "bbox": [ - 170.1999969482422, - 330.800048828125, - 205.60000610351562, - 351.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(:-:", - "origin": [ - 205.60000610351562, - 337.10003662109375 - ], - "bbox": [ - 205.60000610351562, - 332.4000244140625, - 218.10000610351562, - 350.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ìB ", - "origin": [ - 218.10000610351562, - 337.10003662109375 - ], - "bbox": [ - 218.10000610351562, - 330.800048828125, - 231.8000030517578, - 351.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.1999969482422, - 330.800048828125, - 231.8000030517578, - 351.2000427246094 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 78.79999542236328, - 349.7000427246094, - 129.89999389648438, - 370.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79999542236328, - 356.0000305175781 - ], - "bbox": [ - 78.79999542236328, - 349.7000427246094, - 129.89999389648438, - 370.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79999542236328, - 349.7000427246094, - 129.89999389648438, - 370.10003662109375 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 93.4000015258789, - 374.3000183105469, - 109.20000457763672, - 394.70001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 380.6000061035156 - ], - "bbox": [ - 93.4000015258789, - 374.6000061035156, - 93.4000015258789, - 393.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 93.4000015258789, - 380.6000061035156 - ], - "bbox": [ - 93.4000015258789, - 375.8999938964844, - 98.4000015258789, - 393.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nê", - "origin": [ - 98.4000015258789, - 380.6000061035156 - ], - "bbox": [ - 98.4000015258789, - 374.3000183105469, - 103.70000457763672, - 394.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 103.70000457763672, - 380.6000061035156 - ], - "bbox": [ - 103.70000457763672, - 374.6000061035156, - 109.20000457763672, - 393.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 374.3000183105469, - 109.20000457763672, - 394.70001220703125 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 114.4000015258789, - 387.9000244140625, - 224.10000610351562, - 408.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.4000015258789, - 394.20001220703125 - ], - "bbox": [ - 114.4000015258789, - 388.20001220703125, - 114.4000015258789, - 407.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 114.4000015258789, - 394.20001220703125 - ], - "bbox": [ - 114.4000015258789, - 389.5, - 119.4000015258789, - 407.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è", - "origin": [ - 119.4000015258789, - 394.20001220703125 - ], - "bbox": [ - 119.4000015258789, - 387.9000244140625, - 124.5999984741211, - 408.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 124.5999984741211, - 394.20001220703125 - ], - "bbox": [ - 124.5999984741211, - 388.20001220703125, - 130.1999969482422, - 407.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.4000015258789, - 387.9000244140625, - 130.1999969482422, - 408.3000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 140.10000610351562, - 394.20001220703125 - ], - "bbox": [ - 140.10000610351562, - 387.9000244140625, - 140.10000610351562, - 408.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ߊ»|À�ß", - "origin": [ - 140.10000610351562, - 394.20001220703125 - ], - "bbox": [ - 140.10000610351562, - 388.20001220703125, - 161.40000915527344, - 407.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¤/a4>1€", - "origin": [ - 161.40000915527344, - 394.20001220703125 - ], - "bbox": [ - 161.40000915527344, - 389.5, - 197.90000915527344, - 407.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hà�žcÞ\u0011žY»", - "origin": [ - 197.90000915527344, - 394.20001220703125 - ], - "bbox": [ - 197.90000915527344, - 388.20001220703125, - 224.10000610351562, - 407.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.10000610351562, - 387.9000244140625, - 224.10000610351562, - 408.3000183105469 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 135.3000030517578, - 401.8000183105469, - 266.3999938964844, - 421.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 135.3000030517578, - 407.8000183105469 - ], - "bbox": [ - 135.3000030517578, - 401.8000183105469, - 135.3000030517578, - 421.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:-:", - "origin": [ - 135.3000030517578, - 407.8000183105469 - ], - "bbox": [ - 135.3000030517578, - 403.1000061035156, - 145.5, - 420.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 145.5, - 407.8000183105469 - ], - "bbox": [ - 145.5, - 401.8000183105469, - 151.10000610351562, - 421.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "—:\u001e€", - "origin": [ - 151.10000610351562, - 407.8000183105469 - ], - "bbox": [ - 151.10000610351562, - 403.1000061035156, - 166.60000610351562, - 420.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hà�ž\\Þ.žYŸ\u0011ž|º|Þ", - "origin": [ - 166.60000610351562, - 407.8000183105469 - ], - "bbox": [ - 166.60000610351562, - 401.8000183105469, - 208.49998474121094, - 421.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¢>", - "origin": [ - 208.49998474121094, - 407.8000183105469 - ], - "bbox": [ - 208.49998474121094, - 403.1000061035156, - 218.69998168945312, - 420.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆ0Ÿ\"ߊ»|À�ß", - "origin": [ - 218.69998168945312, - 407.8000183105469 - ], - "bbox": [ - 218.69998168945312, - 401.8000183105469, - 255.59999084472656, - 421.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "b/", - "origin": [ - 255.59999084472656, - 407.8000183105469 - ], - "bbox": [ - 255.59999084472656, - 403.1000061035156, - 266.3999938964844, - 420.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.3000030517578, - 401.8000183105469, - 266.3999938964844, - 421.0000305175781 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 114.4000015258789, - 415.2000427246094, - 224.09999084472656, - 435.60003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.4000015258789, - 421.5000305175781 - ], - "bbox": [ - 114.4000015258789, - 415.5000305175781, - 114.4000015258789, - 434.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 114.4000015258789, - 421.5000305175781 - ], - "bbox": [ - 114.4000015258789, - 416.8000183105469, - 119.4000015258789, - 434.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è", - "origin": [ - 119.4000015258789, - 421.5000305175781 - ], - "bbox": [ - 119.4000015258789, - 415.2000427246094, - 124.5999984741211, - 435.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 124.5999984741211, - 421.5000305175781 - ], - "bbox": [ - 124.5999984741211, - 415.5000305175781, - 130.1999969482422, - 434.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.4000015258789, - 415.2000427246094, - 130.1999969482422, - 435.60003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 140.10000610351562, - 421.5000305175781 - ], - "bbox": [ - 140.10000610351562, - 415.2000427246094, - 140.10000610351562, - 435.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ߊ»|À�ß", - "origin": [ - 140.10000610351562, - 421.5000305175781 - ], - "bbox": [ - 140.10000610351562, - 415.5000305175781, - 161.40000915527344, - 434.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")0)4>1€", - "origin": [ - 161.40000915527344, - 421.5000305175781 - ], - "bbox": [ - 161.40000915527344, - 416.8000183105469, - 197.89999389648438, - 434.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hà�žcÞ\u0011žY»", - "origin": [ - 197.89999389648438, - 421.5000305175781 - ], - "bbox": [ - 197.89999389648438, - 415.5000305175781, - 224.09999084472656, - 434.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.10000610351562, - 415.2000427246094, - 224.09999084472656, - 435.60003662109375 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 135.3000030517578, - 429.2000427246094, - 265.79998779296875, - 448.4000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 135.3000030517578, - 435.2000427246094 - ], - "bbox": [ - 135.3000030517578, - 429.2000427246094, - 135.3000030517578, - 448.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:-:", - "origin": [ - 135.3000030517578, - 435.2000427246094 - ], - "bbox": [ - 135.3000030517578, - 430.5000305175781, - 145.5, - 448.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 145.5, - 435.2000427246094 - ], - "bbox": [ - 145.5, - 429.2000427246094, - 151.10000610351562, - 448.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "—:\u001e€", - "origin": [ - 151.10000610351562, - 435.2000427246094 - ], - "bbox": [ - 151.10000610351562, - 430.5000305175781, - 166.60000610351562, - 448.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hà�ž\\Þ.žYŸ\u0011ž|º|Þ", - "origin": [ - 166.60000610351562, - 435.2000427246094 - ], - "bbox": [ - 166.60000610351562, - 429.2000427246094, - 208.49998474121094, - 448.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¢>", - "origin": [ - 208.49998474121094, - 435.2000427246094 - ], - "bbox": [ - 208.49998474121094, - 430.5000305175781, - 218.69998168945312, - 448.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆ0Ÿ\"ߊ»|À�ß", - "origin": [ - 218.69998168945312, - 435.2000427246094 - ], - "bbox": [ - 218.69998168945312, - 429.2000427246094, - 255.59999084472656, - 448.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¢0", - "origin": [ - 255.59999084472656, - 435.2000427246094 - ], - "bbox": [ - 255.59999084472656, - 430.5000305175781, - 265.79998779296875, - 448.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.3000030517578, - 429.2000427246094, - 265.79998779296875, - 448.4000549316406 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 93.4000015258789, - 442.4000549316406, - 114.50000762939453, - 462.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.4000015258789, - 448.7000427246094 - ], - "bbox": [ - 93.4000015258789, - 442.7000427246094, - 98.70000457763672, - 461.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 98.70000457763672, - 448.7000427246094 - ], - "bbox": [ - 98.70000457763672, - 444.0000305175781, - 103.60000610351562, - 461.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ê", - "origin": [ - 103.60000610351562, - 448.7000427246094 - ], - "bbox": [ - 103.60000610351562, - 442.4000549316406, - 109.00000762939453, - 462.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 109.00000762939453, - 448.7000427246094 - ], - "bbox": [ - 109.00000762939453, - 442.7000427246094, - 114.50000762939453, - 461.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 442.4000549316406, - 114.50000762939453, - 462.800048828125 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.30000305175781, - 466.8000183105469, - 104.20000457763672, - 487.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 473.1000061035156 - ], - "bbox": [ - 72.30000305175781, - 466.8000183105469, - 104.20000457763672, - 487.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 466.8000183105469, - 104.20000457763672, - 487.20001220703125 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 83.10000610351562, - 488.8000183105469, - 158.09999084472656, - 509.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¾?˜%¼¿¾Ù“", - "origin": [ - 83.10000610351562, - 495.1000061035156 - ], - "bbox": [ - 83.10000610351562, - 488.8000183105469, - 112.20000457763672, - 509.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "§¦", - "origin": [ - 112.20000457763672, - 495.1000061035156 - ], - "bbox": [ - 112.20000457763672, - 490.3999938964844, - 121.30000305175781, - 508.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�šü", - "origin": [ - 121.30000305175781, - 495.1000061035156 - ], - "bbox": [ - 121.30000305175781, - 488.8000183105469, - 137.0, - 509.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#š", - "origin": [ - 137.0, - 495.1000061035156 - ], - "bbox": [ - 137.0, - 490.3999938964844, - 142.1999969482422, - 508.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "–žõ˜", - "origin": [ - 142.1999969482422, - 495.1000061035156 - ], - "bbox": [ - 142.1999969482422, - 488.8000183105469, - 158.09999084472656, - 509.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.10000610351562, - 488.8000183105469, - 158.09999084472656, - 509.20001220703125 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 97.30000305175781, - 506.00006103515625, - 186.6999969482422, - 526.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3RÈ", - "origin": [ - 97.30000305175781, - 512.300048828125 - ], - "bbox": [ - 97.30000305175781, - 506.00006103515625, - 104.70000457763672, - 526.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 104.70000457763672, - 512.300048828125 - ], - "bbox": [ - 104.70000457763672, - 506.300048828125, - 109.10000610351562, - 525.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«¬57«-£\u001c©Ý¥/§É576=\u001b7¨g6g:", - "origin": [ - 109.10000610351562, - 512.300048828125 - ], - "bbox": [ - 109.10000610351562, - 506.00006103515625, - 186.6999969482422, - 526.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.30000305175781, - 506.00006103515625, - 186.6999969482422, - 526.4000244140625 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 79.30000305175781, - 521.2000122070312, - 154.3000030517578, - 541.5999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¾9˜%¼¿¾\u000eŸ", - "origin": [ - 79.30000305175781, - 527.5 - ], - "bbox": [ - 79.30000305175781, - 521.2000122070312, - 108.10000610351562, - 541.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "j¦", - "origin": [ - 108.10000610351562, - 527.5 - ], - "bbox": [ - 108.10000610351562, - 522.7999877929688, - 117.40000915527344, - 540.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ٚü", - "origin": [ - 117.40000915527344, - 527.5 - ], - "bbox": [ - 117.40000915527344, - 521.2000122070312, - 133.10000610351562, - 541.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#š", - "origin": [ - 133.10000610351562, - 527.5 - ], - "bbox": [ - 133.10000610351562, - 522.7999877929688, - 138.3000030517578, - 540.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "i–žy˜", - "origin": [ - 138.3000030517578, - 527.5 - ], - "bbox": [ - 138.3000030517578, - 521.2000122070312, - 154.3000030517578, - 541.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.30000305175781, - 521.2000122070312, - 154.3000030517578, - 541.5999755859375 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 97.30000305175781, - 538.4000854492188, - 186.29998779296875, - 558.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3RÈ", - "origin": [ - 97.30000305175781, - 544.7000732421875 - ], - "bbox": [ - 97.30000305175781, - 538.4000854492188, - 104.70000457763672, - 558.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 104.70000457763672, - 544.7000732421875 - ], - "bbox": [ - 104.70000457763672, - 538.7000732421875, - 109.10000610351562, - 557.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«¬57«-£\u001c©Ý¥/§É576=\u001b7¨g6MA", - "origin": [ - 109.10000610351562, - 544.7000732421875 - ], - "bbox": [ - 109.10000610351562, - 538.4000854492188, - 186.29998779296875, - 558.800048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.30000305175781, - 538.4000854492188, - 186.29998779296875, - 558.800048828125 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 72.5, - 570.5, - 169.89999389648438, - 589.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 72.5, - 576.5 - ], - "bbox": [ - 72.5, - 571.7999877929688, - 72.5, - 589.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "1\u0019Dè", - "origin": [ - 72.5, - 576.5 - ], - "bbox": [ - 72.5, - 570.5, - 82.69999694824219, - 589.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 570.5, - 82.69999694824219, - 589.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "QC)E%r-/8\u0013Ï °;)68\u00132", - "origin": [ - 103.0, - 576.5 - ], - "bbox": [ - 103.0, - 570.5, - 162.59999084472656, - 589.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¨’", - "origin": [ - 162.59999084472656, - 576.5 - ], - "bbox": [ - 162.59999084472656, - 571.7999877929688, - 169.89999389648438, - 589.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.0, - 570.5, - 169.89999389648438, - 589.7000122070312 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 72.30000305175781, - 598.7000122070312, - 534.9000244140625, - 619.0999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤H5u\u0019\u001cÐFÊ-6=\u00194§FÿÙ¤7£\u001c©?5M¥/6=¤!¤\\5u\u001b7§\u001a¦)57§F\u001bu6=¤H«-¨g\u0018�£9\u001b�5ª\u00194©?576e¤B6[©ò³\u001e´oµÍ¶, ", - "origin": [ - 72.30000305175781, - 605.0 - ], - "bbox": [ - 72.30000305175781, - 598.7000122070312, - 320.1000061035156, - 619.0999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "E_", - "origin": [ - 320.1000061035156, - 605.0 - ], - "bbox": [ - 320.1000061035156, - 599.0, - 326.3999938964844, - 618.2000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",ʬÊ-6=¤¸¤�6=\u001b7Æ96[©?5B©F£\u001c©¿¤76[§FÊ-6[¨g6=©95¸ßÉÔy\u0019\u001c«¬\u001bu6c¥/6e¤H5u\u0019\u001cÐFʬ6e\u00194§/ÿ", - "origin": [ - 326.3999938964844, - 605.0 - ], - "bbox": [ - 326.3999938964844, - 598.7000122070312, - 534.9000244140625, - 619.0999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 598.7000122070312, - 534.9000244140625, - 619.0999755859375 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 72.30000305175781, - 612.300048828125, - 398.5999755859375, - 632.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)£9¨g¨^6H£9©…\u0019^Ê", - "origin": [ - 72.30000305175781, - 618.6000366210938 - ], - "bbox": [ - 72.30000305175781, - 612.300048828125, - 128.10000610351562, - 632.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 612.300048828125, - 128.10000610351562, - 632.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "þ�\u00194ÐF«¬57§\u001a¥F6M¥;¯", - "origin": [ - 133.60000610351562, - 618.6000366210938 - ], - "bbox": [ - 133.60000610351562, - 612.300048828125, - 181.29998779296875, - 632.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.60000610351562, - 612.300048828125, - 181.29998779296875, - 632.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=©…Æ\u001c£\u001c«-\u001b", - "origin": [ - 183.40000915527344, - 618.6000366210938 - ], - "bbox": [ - 183.40000915527344, - 612.300048828125, - 209.60000610351562, - 632.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "c[", - "origin": [ - 209.60000610351562, - 618.6000366210938 - ], - "bbox": [ - 209.60000610351562, - 612.6000366210938, - 214.20001220703125, - 631.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?¨#\u0019\u001c«-¤o\u0019\u001c§\u001a¤7¤7«Kß^Ç\u001cÈ=\u001b76=\u001b ÊY\u0019^¨g«-¤76M¥/6=¤o¥F£\n¦[§F¨g6[©?5u¤= ", - "origin": [ - 214.20001220703125, - 618.6000366210938 - ], - "bbox": [ - 214.20001220703125, - 612.300048828125, - 398.5999755859375, - 632.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 183.40000915527344, - 612.300048828125, - 398.5999755859375, - 632.7000122070312 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 78.80000305175781, - 631.1000366210938, - 536.2999877929688, - 651.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c§�¤#Æ\u001c£9§Fʬ6", - "origin": [ - 78.80000305175781, - 637.4000244140625 - ], - "bbox": [ - 78.80000305175781, - 631.1000366210938, - 116.19999694824219, - 651.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\‡", - "origin": [ - 116.19999694824219, - 637.4000244140625 - ], - "bbox": [ - 116.19999694824219, - 631.4000244140625, - 120.69999694824219, - 650.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…¨^6[5�5u\u001b76…§F©F6ݨ#\u0019\u001c\u001b7Ç96…ßÙÆ9£457\u001bu6Ý¥/£/¦)§F¨g6=©95+·", - "origin": [ - 120.69999694824219, - 637.4000244140625 - ], - "bbox": [ - 120.69999694824219, - 631.1000366210938, - 294.7999267578125, - 651.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÑÇ", - "origin": [ - 294.7999267578125, - 637.4000244140625 - ], - "bbox": [ - 294.7999267578125, - 631.4000244140625, - 303.7999267578125, - 650.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.80000305175781, - 631.1000366210938, - 303.7999267578125, - 651.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c§�¤#Æ\u001c£9§Fʬ6", - "origin": [ - 310.4000244140625, - 637.4000244140625 - ], - "bbox": [ - 310.4000244140625, - 631.1000366210938, - 347.800048828125, - 651.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\‡", - "origin": [ - 347.800048828125, - 637.4000244140625 - ], - "bbox": [ - 347.800048828125, - 631.4000244140625, - 352.300048828125, - 650.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…§F©", - "origin": [ - 352.300048828125, - 637.4000244140625 - ], - "bbox": [ - 352.300048828125, - 631.1000366210938, - 366.7000427246094, - 651.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 310.4000244140625, - 631.1000366210938, - 366.7000427246094, - 651.5 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194Ç\u001c6=©\u001a¦)6=¨g6[©?5#\u0018\u001a\u00194\u001b757«Y¦)§FÊ-«-6[\u001b#¥/6Í¥/«", - "origin": [ - 376.9000244140625, - 637.4000244140625 - ], - "bbox": [ - 376.9000244140625, - 631.1000366210938, - 501.2999267578125, - 651.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h", - "origin": [ - 501.2999267578125, - 637.4000244140625 - ], - "bbox": [ - 501.2999267578125, - 631.4000244140625, - 503.99993896484375, - 650.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wÈ=\u001b76=©?576=¤", - "origin": [ - 503.99993896484375, - 637.4000244140625 - ], - "bbox": [ - 503.99993896484375, - 631.1000366210938, - 536.2999877929688, - 651.5 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.9000244140625, - 631.1000366210938, - 536.2999877929688, - 651.5 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 72.20001220703125, - 644.7000732421875, - 198.90000915527344, - 665.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "«-¨g\u0019\u001cÇ\u001c6e¤�·", - "origin": [ - 72.20001220703125, - 651.0000610351562 - ], - "bbox": [ - 72.20001220703125, - 644.7000732421875, - 103.60001373291016, - 665.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "œ©", - "origin": [ - 103.60001373291016, - 651.0000610351562 - ], - "bbox": [ - 103.60001373291016, - 646.300048828125, - 113.00001525878906, - 664.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "9w\rp", - "origin": [ - 113.00001525878906, - 651.0000610351562 - ], - "bbox": [ - 113.00001525878906, - 645.0000610351562, - 122.70001983642578, - 664.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "{(", - "origin": [ - 122.70001983642578, - 651.0000610351562 - ], - "bbox": [ - 122.70001983642578, - 644.7000732421875, - 125.70001983642578, - 665.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.20001220703125, - 644.7000732421875, - 125.70001983642578, - 665.1000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "pÚu", - "origin": [ - 128.20001220703125, - 651.0000610351562 - ], - "bbox": [ - 128.20001220703125, - 645.0000610351562, - 131.10000610351562, - 664.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "['", - "origin": [ - 131.10000610351562, - 651.0000610351562 - ], - "bbox": [ - 131.10000610351562, - 644.7000732421875, - 135.5, - 665.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "”ª", - "origin": [ - 135.5, - 651.0000610351562 - ], - "bbox": [ - 135.5, - 646.300048828125, - 139.60000610351562, - 664.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¸(¬'", - "origin": [ - 139.60000610351562, - 651.0000610351562 - ], - "bbox": [ - 139.60000610351562, - 644.7000732421875, - 150.3000030517578, - 665.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "xu$w", - "origin": [ - 150.3000030517578, - 651.0000610351562 - ], - "bbox": [ - 150.3000030517578, - 645.0000610351562, - 162.3000030517578, - 664.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "±\"", - "origin": [ - 162.3000030517578, - 651.0000610351562 - ], - "bbox": [ - 162.3000030517578, - 644.7000732421875, - 165.90000915527344, - 665.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fs", - "origin": [ - 165.90000915527344, - 651.0000610351562 - ], - "bbox": [ - 165.90000915527344, - 645.0000610351562, - 170.90000915527344, - 664.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[(¬'ª\"%&", - "origin": [ - 170.90000915527344, - 651.0000610351562 - ], - "bbox": [ - 170.90000915527344, - 644.7000732421875, - 186.90000915527344, - 665.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�xi«", - "origin": [ - 186.90000915527344, - 651.0000610351562 - ], - "bbox": [ - 186.90000915527344, - 646.300048828125, - 198.90000915527344, - 664.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.20001220703125, - 644.7000732421875, - 198.90000915527344, - 665.1000366210938 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 72.30001068115234, - 663.5000610351562, - 369.39996337890625, - 683.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤o¥/«", - "origin": [ - 72.30001068115234, - 669.800048828125 - ], - "bbox": [ - 72.30001068115234, - 663.5000610351562, - 95.60000610351562, - 683.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "h", - "origin": [ - 95.60000610351562, - 669.800048828125 - ], - "bbox": [ - 95.60000610351562, - 663.800048828125, - 98.30000305175781, - 683.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "wÈ=\u001b76=©95u6=¤sÐ\u001a\u0019\u001cʬ«Y¤76=¤o²?§F«K\u0018w6[\u001bu¨g6)5�5u6[©?5R¥/6M¦[£\u001c©\u001a¤�57\u001bu§F«-\u001b76V§F©É5u\u0019\u001cÐFʬ6e\u00194§…¤�£9©?5H8", - "origin": [ - 98.30000305175781, - 669.800048828125 - ], - "bbox": [ - 98.30000305175781, - 663.5000610351562, - 369.39996337890625, - 683.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30001068115234, - 663.5000610351562, - 369.39996337890625, - 683.9000244140625 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 82.80001068115234, - 677.1000366210938, - 410.5000305175781, - 697.5 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè?ð", - "origin": [ - 82.80001068115234, - 683.4000244140625 - ], - "bbox": [ - 82.80001068115234, - 677.1000366210938, - 95.20000457763672, - 697.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H›", - "origin": [ - 95.20000457763672, - 683.4000244140625 - ], - "bbox": [ - 95.20000457763672, - 677.4000244140625, - 100.4000015258789, - 696.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ë+ìÕ3RÈ", - "origin": [ - 100.4000015258789, - 683.4000244140625 - ], - "bbox": [ - 100.4000015258789, - 677.1000366210938, - 134.6999969482422, - 697.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 134.6999969482422, - 683.4000244140625 - ], - "bbox": [ - 134.6999969482422, - 677.4000244140625, - 139.09999084472656, - 696.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«Y¤oÊ-\u0019", - "origin": [ - 139.09999084472656, - 683.4000244140625 - ], - "bbox": [ - 139.09999084472656, - 677.1000366210938, - 163.09999084472656, - 697.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "m‡", - "origin": [ - 163.09999084472656, - 683.4000244140625 - ], - "bbox": [ - 163.09999084472656, - 677.4000244140625, - 171.29998779296875, - 696.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "=£\u001c©F6B²?§F«m¦[£\u001c©?57«-6[©\u001a¥F\u001bu\u0019!ʬ6e¤s£\u001cÐ", - "origin": [ - 171.29998779296875, - 683.4000244140625 - ], - "bbox": [ - 171.29998779296875, - 677.1000366210938, - 279.29998779296875, - 697.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ë", - "origin": [ - 279.29998779296875, - 683.4000244140625 - ], - "bbox": [ - 279.29998779296875, - 677.4000244140625, - 284.6999816894531, - 696.6000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\\6[5u¤o²?§F«;Ôõ£9\u001b7¨g6=\u001b7£9©\u001a¤ ʬ6H5ª\u00194ÐFÊ-6=\u0019\u001c§", - "origin": [ - 284.6999816894531, - 683.4000244140625 - ], - "bbox": [ - 284.6999816894531, - 677.1000366210938, - 404.4000244140625, - 697.5 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 404.4000244140625, - 683.4000244140625 - ], - "bbox": [ - 404.4000244140625, - 677.4000244140625, - 410.5000305175781, - 696.6000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001068115234, - 677.1000366210938, - 410.5000305175781, - 697.5 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 82.80001068115234, - 690.7000732421875, - 264.29998779296875, - 711.1000366210938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ç", - "origin": [ - 82.80001068115234, - 697.0000610351562 - ], - "bbox": [ - 82.80001068115234, - 690.7000732421875, - 82.80001068115234, - 711.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "*¾", - "origin": [ - 82.80001068115234, - 697.0000610351562 - ], - "bbox": [ - 82.80001068115234, - 691.0000610351562, - 90.10001373291016, - 710.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "9ð", - "origin": [ - 90.10001373291016, - 697.0000610351562 - ], - "bbox": [ - 90.10001373291016, - 690.7000732421875, - 95.20001220703125, - 711.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-'", - "origin": [ - 95.20001220703125, - 697.0000610351562 - ], - "bbox": [ - 95.20001220703125, - 692.300048828125, - 100.50001525878906, - 710.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè+é", - "origin": [ - 100.50001525878906, - 697.0000610351562 - ], - "bbox": [ - 100.50001525878906, - 690.7000732421875, - 111.70001983642578, - 711.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�;", - "origin": [ - 111.70001983642578, - 697.0000610351562 - ], - "bbox": [ - 111.70001983642578, - 692.300048828125, - 116.70001983642578, - 710.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|œ", - "origin": [ - 116.70001983642578, - 697.0000610351562 - ], - "bbox": [ - 116.70001983642578, - 691.0000610351562, - 121.60002136230469, - 710.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 121.60002136230469, - 697.0000610351562 - ], - "bbox": [ - 121.60002136230469, - 690.7000732421875, - 127.5000228881836, - 711.1000366210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001068115234, - 690.7000732421875, - 127.5000228881836, - 711.1000366210938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001eÈ", - "origin": [ - 137.70001220703125, - 697.0000610351562 - ], - "bbox": [ - 137.70001220703125, - 690.7000732421875, - 145.20001220703125, - 711.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 145.20001220703125, - 697.0000610351562 - ], - "bbox": [ - 145.20001220703125, - 691.0000610351562, - 149.50001525878906, - 710.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«Y¤oÊY\u0019^ʬÈ=Ç\u001c6[©�¥/6B¥/§É5u\u00194Ð\u001aʬ6e\u00194§", - "origin": [ - 149.50001525878906, - 697.0000610351562 - ], - "bbox": [ - 149.50001525878906, - 690.7000732421875, - 258.1999816894531, - 711.1000366210938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 258.1999816894531, - 697.0000610351562 - ], - "bbox": [ - 258.1999816894531, - 691.0000610351562, - 264.29998779296875, - 710.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 137.70001220703125, - 690.7000732421875, - 264.29998779296875, - 711.1000366210938 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 82.80001068115234, - 704.4000854492188, - 292.4000549316406, - 724.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè", - "origin": [ - 82.80001068115234, - 710.7000732421875 - ], - "bbox": [ - 82.80001068115234, - 704.4000854492188, - 90.00000762939453, - 724.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½", - "origin": [ - 90.00000762939453, - 710.7000732421875 - ], - "bbox": [ - 90.00000762939453, - 704.7000732421875, - 95.20000457763672, - 723.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 95.20000457763672, - 710.7000732421875 - ], - "bbox": [ - 95.20000457763672, - 704.4000854492188, - 101.10000610351562, - 724.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ìT", - "origin": [ - 101.10000610351562, - 710.7000732421875 - ], - "bbox": [ - 101.10000610351562, - 704.7000732421875, - 112.10000610351562, - 723.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yè", - "origin": [ - 112.10000610351562, - 710.7000732421875 - ], - "bbox": [ - 112.10000610351562, - 704.4000854492188, - 115.30000305175781, - 724.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ä|ÅfÁHß", - "origin": [ - 115.30000305175781, - 710.7000732421875 - ], - "bbox": [ - 115.30000305175781, - 704.7000732421875, - 136.60000610351562, - 723.9000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001068115234, - 704.4000854492188, - 136.60000610351562, - 724.800048828125 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "½\"ºF¶gX", - "origin": [ - 146.70001220703125, - 710.7000732421875 - ], - "bbox": [ - 146.70001220703125, - 704.7000732421875, - 162.80001831054688, - 723.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "×3\u001eÈ", - "origin": [ - 162.80001831054688, - 710.7000732421875 - ], - "bbox": [ - 162.80001831054688, - 704.4000854492188, - 177.1000213623047, - 724.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 177.1000213623047, - 710.7000732421875 - ], - "bbox": [ - 177.1000213623047, - 704.7000732421875, - 181.4000244140625, - 723.9000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©\u001a«-¤o§\u001a©F6Bʬ«-Ç\u001c©\u001a6H¥F§‰5ª\u00194ÐFÊ-6=\u0019\u001c§", - "origin": [ - 181.4000244140625, - 710.7000732421875 - ], - "bbox": [ - 181.4000244140625, - 704.4000854492188, - 286.300048828125, - 724.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 286.300048828125, - 710.7000732421875 - ], - "bbox": [ - 286.300048828125, - 704.7000732421875, - 292.4000549316406, - 723.9000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.70001220703125, - 704.4000854492188, - 292.4000549316406, - 724.800048828125 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 82.80001068115234, - 717.9000854492188, - 330.39996337890625, - 738.300048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè", - "origin": [ - 82.80001068115234, - 724.2000732421875 - ], - "bbox": [ - 82.80001068115234, - 717.9000854492188, - 90.00000762939453, - 738.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 90.00000762939453, - 724.2000732421875 - ], - "bbox": [ - 90.00000762939453, - 719.5000610351562, - 95.20000457763672, - 737.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 95.20000457763672, - 724.2000732421875 - ], - "bbox": [ - 95.20000457763672, - 717.9000854492188, - 101.10000610351562, - 738.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ìT", - "origin": [ - 101.10000610351562, - 724.2000732421875 - ], - "bbox": [ - 101.10000610351562, - 718.2000732421875, - 112.10000610351562, - 737.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yè", - "origin": [ - 112.10000610351562, - 724.2000732421875 - ], - "bbox": [ - 112.10000610351562, - 717.9000854492188, - 115.30000305175781, - 738.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ä|ÅfÁHß", - "origin": [ - 115.30000305175781, - 724.2000732421875 - ], - "bbox": [ - 115.30000305175781, - 718.2000732421875, - 136.60000610351562, - 737.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "?:", - "origin": [ - 136.60000610351562, - 724.2000732421875 - ], - "bbox": [ - 136.60000610351562, - 719.5000610351562, - 146.70001220703125, - 737.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ĊŸ\"ÄN Fß\nÁ\nÁHX", - "origin": [ - 146.70001220703125, - 724.2000732421875 - ], - "bbox": [ - 146.70001220703125, - 718.2000732421875, - 194.2000274658203, - 737.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "~3RÈ", - "origin": [ - 194.2000274658203, - 724.2000732421875 - ], - "bbox": [ - 194.2000274658203, - 717.9000854492188, - 208.50001525878906, - 738.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 208.50001525878906, - 724.2000732421875 - ], - "bbox": [ - 208.50001525878906, - 718.2000732421875, - 212.90000915527344, - 737.4000854492188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«Y¤o§F©F6M¦[6[Ê-ʬ§FÊ-6B¥/§É5u\u0019\u001cÐFʬ6e\u00194§", - "origin": [ - 212.90000915527344, - 724.2000732421875 - ], - "bbox": [ - 212.90000915527344, - 717.9000854492188, - 324.2999572753906, - 738.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 324.2999572753906, - 724.2000732421875 - ], - "bbox": [ - 324.2999572753906, - 718.2000732421875, - 330.39996337890625, - 737.4000854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001068115234, - 717.9000854492188, - 330.39996337890625, - 738.300048828125 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 82.80001068115234, - 731.60009765625, - 538.1998901367188, - 752.0000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè", - "origin": [ - 82.80001068115234, - 737.9000854492188 - ], - "bbox": [ - 82.80001068115234, - 731.60009765625, - 90.00000762939453, - 752.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#8", - "origin": [ - 90.00000762939453, - 737.9000854492188 - ], - "bbox": [ - 90.00000762939453, - 733.2000732421875, - 95.20000457763672, - 751.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 95.20000457763672, - 737.9000854492188 - ], - "bbox": [ - 95.20000457763672, - 731.60009765625, - 101.10000610351562, - 752.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«T", - "origin": [ - 101.10000610351562, - 737.9000854492188 - ], - "bbox": [ - 101.10000610351562, - 731.9000854492188, - 111.40000915527344, - 751.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yè", - "origin": [ - 111.40000915527344, - 737.9000854492188 - ], - "bbox": [ - 111.40000915527344, - 731.60009765625, - 114.60000610351562, - 752.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ÄFÅfÁHß", - "origin": [ - 114.60000610351562, - 737.9000854492188 - ], - "bbox": [ - 114.60000610351562, - 731.9000854492188, - 135.90000915527344, - 751.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "?8", - "origin": [ - 135.90000915527344, - 737.9000854492188 - ], - "bbox": [ - 135.90000915527344, - 733.2000732421875, - 146.00001525878906, - 751.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß\nÄ", - "origin": [ - 146.00001525878906, - 737.9000854492188 - ], - "bbox": [ - 146.00001525878906, - 731.9000854492188, - 156.80001831054688, - 751.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 156.80001831054688, - 737.9000854492188 - ], - "bbox": [ - 156.80001831054688, - 733.2000732421875, - 161.9000244140625, - 751.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»\"X", - "origin": [ - 161.9000244140625, - 737.9000854492188 - ], - "bbox": [ - 161.9000244140625, - 731.9000854492188, - 177.9000244140625, - 751.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K3\u001eÈ", - "origin": [ - 177.9000244140625, - 737.9000854492188 - ], - "bbox": [ - 177.9000244140625, - 731.60009765625, - 191.50003051757812, - 752.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 191.50003051757812, - 737.9000854492188 - ], - "bbox": [ - 191.50003051757812, - 731.9000854492188, - 195.80003356933594, - 751.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©\u001a«-¤iÊ-6=¤6[©?5uå)576e¤", - "origin": [ - 195.80003356933594, - 737.9000854492188 - ], - "bbox": [ - 195.80003356933594, - 731.60009765625, - 256.4000244140625, - 752.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001068115234, - 731.60009765625, - 256.4000244140625, - 752.0000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/§!5u\u00194Ð\u001aʬ6e\u00194§K 9Ó\u001e¯", - "origin": [ - 263.0, - 737.9000854492188 - ], - "bbox": [ - 263.0, - 731.60009765625, - 321.9000244140625, - 752.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 263.0, - 731.60009765625, - 321.9000244140625, - 752.0000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5�°±ß%°±¥/«-\u001b76~Ê-\u0019\u001e\u0018F\u001bu6[¨g«¬á=\u001b76 Ê-«¬Ç9©F6s£\u001c§¸ÊY\u0019V\u0018F\u001bu6[¨g«¬á=\u001b76s¦)£9ʬ£9©F©F69 ", - "origin": [ - 324.1000061035156, - 737.9000854492188 - ], - "bbox": [ - 324.1000061035156, - 731.60009765625, - 538.1998901367188, - 752.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 324.1000061035156, - 731.60009765625, - 538.1998901367188, - 752.0000610351562 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 82.19999694824219, - 745.300048828125, - 394.199951171875, - 765.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi\u0019\u001c\u001bb¥/È)Ôy\u0019\u001c§/5", - "origin": [ - 82.19999694824219, - 751.6000366210938 - ], - "bbox": [ - 82.19999694824219, - 745.300048828125, - 124.30000305175781, - 765.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 124.30000305175781, - 751.6000366210938 - ], - "bbox": [ - 124.30000305175781, - 745.6000366210938, - 128.8000030517578, - 764.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aÊô¯", - "origin": [ - 128.8000030517578, - 751.6000366210938 - ], - "bbox": [ - 128.8000030517578, - 745.300048828125, - 137.70001220703125, - 765.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19999694824219, - 745.300048828125, - 137.70001220703125, - 765.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194Ê-«¬Ç9©F6[¨g6=©95o6e¤\\5b¦)6=©?57\u001buÈV6[5bÊ-\u0019^\u0018w£\u001cÊ-«-¦[6M¥/6M¦[\u0019\u001c\u001bu\u00199¦15uá[\u001bu6=¤~6=¤�5s6=©…Ç\u001c\u001bª\u0019\u001c¤= ", - "origin": [ - 140.0, - 751.6000366210938 - ], - "bbox": [ - 140.0, - 745.300048828125, - 394.199951171875, - 765.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.0, - 745.300048828125, - 394.199951171875, - 765.7000122070312 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 17, - "type": 0, - "bbox": [ - 72.5, - 317.300048828125, - 309.0999755859375, - 337.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "š", - "origin": [ - 72.5, - 323.60003662109375 - ], - "bbox": [ - 72.5, - 317.60003662109375, - 72.5, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001e©gÊ-\u0019M¨g\u0019\u001c\u001bu²?§F6o\u0019aÆ96=¦ Ê-\u0019MÐ\u001a\u00194Ê-«-¤76Bç", - "origin": [ - 72.5, - 323.60003662109375 - ], - "bbox": [ - 72.5, - 317.300048828125, - 194.00001525878906, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(:", - "origin": [ - 194.00001525878906, - 323.60003662109375 - ], - "bbox": [ - 194.00001525878906, - 318.9000244140625, - 201.20001220703125, - 336.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/êwì", - "origin": [ - 201.20001220703125, - 323.60003662109375 - ], - "bbox": [ - 201.20001220703125, - 317.300048828125, - 212.40000915527344, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "0T", - "origin": [ - 212.40000915527344, - 323.60003662109375 - ], - "bbox": [ - 212.40000915527344, - 317.60003662109375, - 222.90000915527344, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "v:", - "origin": [ - 222.90000915527344, - 323.60003662109375 - ], - "bbox": [ - 222.90000915527344, - 318.9000244140625, - 226.00001525878906, - 336.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßHà�žcÞ\u0011žYŸ\u0011ž|ºFÞ", - "origin": [ - 226.00001525878906, - 323.60003662109375 - ], - "bbox": [ - 226.00001525878906, - 317.60003662109375, - 273.5, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ìê", - "origin": [ - 273.5, - 323.60003662109375 - ], - "bbox": [ - 273.5, - 317.300048828125, - 283.6000061035156, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�žHáIŸ/X", - "origin": [ - 283.6000061035156, - 323.60003662109375 - ], - "bbox": [ - 283.6000061035156, - 317.60003662109375, - 304.79998779296875, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ") ", - "origin": [ - 304.79998779296875, - 323.60003662109375 - ], - "bbox": [ - 304.79998779296875, - 317.300048828125, - 309.0999755859375, - 337.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 317.300048828125, - 309.0999755859375, - 337.7000427246094 - ] - } - ], - "tag": "on-table" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 317.6000061035156, - 317.300048828125, - 533.2000122070312, - 337.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÊFøg\u0019B¥/6[§Fÿ^«¬576=¨g¤,\u0018�£?¤7¤7«¬Ð\u001aʬ6e¤", - "origin": [ - 317.6000061035156, - 323.60003662109375 - ], - "bbox": [ - 317.6000061035156, - 317.300048828125, - 423.10003662109375, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 423.10003662109375, - 323.60003662109375 - ], - "bbox": [ - 423.10003662109375, - 317.60003662109375, - 427.5000305175781, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4Ê-6o5u6[\u001bu¨^6b߸¥/È", - "origin": [ - 427.5000305175781, - 323.60003662109375 - ], - "bbox": [ - 427.5000305175781, - 317.300048828125, - 483.70001220703125, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 483.70001220703125, - 323.60003662109375 - ], - "bbox": [ - 483.70001220703125, - 317.60003662109375, - 488.0, - 336.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©\u001a«¬\u001bb8�ç", - "origin": [ - 488.0, - 323.60003662109375 - ], - "bbox": [ - 488.0, - 317.300048828125, - 514.9000244140625, - 337.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(:", - "origin": [ - 514.9000244140625, - 323.60003662109375 - ], - "bbox": [ - 514.9000244140625, - 318.9000244140625, - 522.1000366210938, - 336.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nèwì", - "origin": [ - 522.1000366210938, - 323.60003662109375 - ], - "bbox": [ - 522.1000366210938, - 317.300048828125, - 533.2000122070312, - 337.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 317.6000061035156, - 317.300048828125, - 533.2000122070312, - 337.7000427246094 - ] - } - ], - "tag": "on-table" - }, - { - "number": 20, - "type": 0, - "bbox": [ - 72.19999694824219, - 330.800048828125, - 231.8000030517578, - 351.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6)5bÊY\u0019g¥/È", - "origin": [ - 72.19999694824219, - 337.10003662109375 - ], - "bbox": [ - 72.19999694824219, - 330.800048828125, - 100.40000915527344, - 351.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 100.40000915527344, - 337.10003662109375 - ], - "bbox": [ - 100.40000915527344, - 331.10003662109375, - 104.70001220703125, - 350.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�©F«z5u«¬£9©…6[©…6[Ê-ʬ6[°", - "origin": [ - 104.70001220703125, - 337.10003662109375 - ], - "bbox": [ - 104.70001220703125, - 330.800048828125, - 166.7999725341797, - 351.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.19999694824219, - 330.800048828125, - 166.7999725341797, - 351.2000427246094 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¨gå=¨^6g8Kç", - "origin": [ - 170.1999969482422, - 337.10003662109375 - ], - "bbox": [ - 170.1999969482422, - 330.800048828125, - 205.60000610351562, - 351.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "(:-:", - "origin": [ - 205.60000610351562, - 337.10003662109375 - ], - "bbox": [ - 205.60000610351562, - 332.4000244140625, - 218.10000610351562, - 350.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ìB ", - "origin": [ - 218.10000610351562, - 337.10003662109375 - ], - "bbox": [ - 218.10000610351562, - 330.800048828125, - 231.8000030517578, - 351.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.1999969482422, - 330.800048828125, - 231.8000030517578, - 351.2000427246094 - ] - } - ], - "tag": "on-table" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 78.79999542236328, - 349.7000427246094, - 129.89999389648438, - 370.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79999542236328, - 356.0000305175781 - ], - "bbox": [ - 78.79999542236328, - 349.7000427246094, - 129.89999389648438, - 370.10003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79999542236328, - 349.7000427246094, - 129.89999389648438, - 370.10003662109375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 93.4000015258789, - 374.3000183105469, - 109.20000457763672, - 394.70001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 380.6000061035156 - ], - "bbox": [ - 93.4000015258789, - 374.6000061035156, - 93.4000015258789, - 393.8000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 93.4000015258789, - 380.6000061035156 - ], - "bbox": [ - 93.4000015258789, - 375.8999938964844, - 98.4000015258789, - 393.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nê", - "origin": [ - 98.4000015258789, - 380.6000061035156 - ], - "bbox": [ - 98.4000015258789, - 374.3000183105469, - 103.70000457763672, - 394.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 103.70000457763672, - 380.6000061035156 - ], - "bbox": [ - 103.70000457763672, - 374.6000061035156, - 109.20000457763672, - 393.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 374.3000183105469, - 109.20000457763672, - 394.70001220703125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 114.4000015258789, - 387.9000244140625, - 224.10000610351562, - 408.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.4000015258789, - 394.20001220703125 - ], - "bbox": [ - 114.4000015258789, - 388.20001220703125, - 114.4000015258789, - 407.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 114.4000015258789, - 394.20001220703125 - ], - "bbox": [ - 114.4000015258789, - 389.5, - 119.4000015258789, - 407.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è", - "origin": [ - 119.4000015258789, - 394.20001220703125 - ], - "bbox": [ - 119.4000015258789, - 387.9000244140625, - 124.5999984741211, - 408.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 124.5999984741211, - 394.20001220703125 - ], - "bbox": [ - 124.5999984741211, - 388.20001220703125, - 130.1999969482422, - 407.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.4000015258789, - 387.9000244140625, - 130.1999969482422, - 408.3000183105469 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 140.10000610351562, - 394.20001220703125 - ], - "bbox": [ - 140.10000610351562, - 387.9000244140625, - 140.10000610351562, - 408.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ߊ»|À�ß", - "origin": [ - 140.10000610351562, - 394.20001220703125 - ], - "bbox": [ - 140.10000610351562, - 388.20001220703125, - 161.40000915527344, - 407.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¤/a4>1€", - "origin": [ - 161.40000915527344, - 394.20001220703125 - ], - "bbox": [ - 161.40000915527344, - 389.5, - 197.90000915527344, - 407.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hà�žcÞ\u0011žY»", - "origin": [ - 197.90000915527344, - 394.20001220703125 - ], - "bbox": [ - 197.90000915527344, - 388.20001220703125, - 224.10000610351562, - 407.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.10000610351562, - 387.9000244140625, - 224.10000610351562, - 408.3000183105469 - ] - } - ], - "tag": "on-table" - }, - { - "number": 24, - "type": 0, - "bbox": [ - 135.3000030517578, - 401.8000183105469, - 266.3999938964844, - 421.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 135.3000030517578, - 407.8000183105469 - ], - "bbox": [ - 135.3000030517578, - 401.8000183105469, - 135.3000030517578, - 421.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:-:", - "origin": [ - 135.3000030517578, - 407.8000183105469 - ], - "bbox": [ - 135.3000030517578, - 403.1000061035156, - 145.5, - 420.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 145.5, - 407.8000183105469 - ], - "bbox": [ - 145.5, - 401.8000183105469, - 151.10000610351562, - 421.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "—:\u001e€", - "origin": [ - 151.10000610351562, - 407.8000183105469 - ], - "bbox": [ - 151.10000610351562, - 403.1000061035156, - 166.60000610351562, - 420.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hà�ž\\Þ.žYŸ\u0011ž|º|Þ", - "origin": [ - 166.60000610351562, - 407.8000183105469 - ], - "bbox": [ - 166.60000610351562, - 401.8000183105469, - 208.49998474121094, - 421.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¢>", - "origin": [ - 208.49998474121094, - 407.8000183105469 - ], - "bbox": [ - 208.49998474121094, - 403.1000061035156, - 218.69998168945312, - 420.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆ0Ÿ\"ߊ»|À�ß", - "origin": [ - 218.69998168945312, - 407.8000183105469 - ], - "bbox": [ - 218.69998168945312, - 401.8000183105469, - 255.59999084472656, - 421.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "b/", - "origin": [ - 255.59999084472656, - 407.8000183105469 - ], - "bbox": [ - 255.59999084472656, - 403.1000061035156, - 266.3999938964844, - 420.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.3000030517578, - 401.8000183105469, - 266.3999938964844, - 421.0000305175781 - ] - } - ], - "tag": "on-table" - }, - { - "number": 25, - "type": 0, - "bbox": [ - 114.4000015258789, - 415.2000427246094, - 224.09999084472656, - 435.60003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.4000015258789, - 421.5000305175781 - ], - "bbox": [ - 114.4000015258789, - 415.5000305175781, - 114.4000015258789, - 434.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 114.4000015258789, - 421.5000305175781 - ], - "bbox": [ - 114.4000015258789, - 416.8000183105469, - 119.4000015258789, - 434.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?è", - "origin": [ - 119.4000015258789, - 421.5000305175781 - ], - "bbox": [ - 119.4000015258789, - 415.2000427246094, - 124.5999984741211, - 435.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 124.5999984741211, - 421.5000305175781 - ], - "bbox": [ - 124.5999984741211, - 415.5000305175781, - 130.1999969482422, - 434.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.4000015258789, - 415.2000427246094, - 130.1999969482422, - 435.60003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 140.10000610351562, - 421.5000305175781 - ], - "bbox": [ - 140.10000610351562, - 415.2000427246094, - 140.10000610351562, - 435.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ߊ»|À�ß", - "origin": [ - 140.10000610351562, - 421.5000305175781 - ], - "bbox": [ - 140.10000610351562, - 415.5000305175781, - 161.40000915527344, - 434.7000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ")0)4>1€", - "origin": [ - 161.40000915527344, - 421.5000305175781 - ], - "bbox": [ - 161.40000915527344, - 416.8000183105469, - 197.89999389648438, - 434.60003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hà�žcÞ\u0011žY»", - "origin": [ - 197.89999389648438, - 421.5000305175781 - ], - "bbox": [ - 197.89999389648438, - 415.5000305175781, - 224.09999084472656, - 434.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.10000610351562, - 415.2000427246094, - 224.09999084472656, - 435.60003662109375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 135.3000030517578, - 429.2000427246094, - 265.79998779296875, - 448.4000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 135.3000030517578, - 435.2000427246094 - ], - "bbox": [ - 135.3000030517578, - 429.2000427246094, - 135.3000030517578, - 448.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:-:", - "origin": [ - 135.3000030517578, - 435.2000427246094 - ], - "bbox": [ - 135.3000030517578, - 430.5000305175781, - 145.5, - 448.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 145.5, - 435.2000427246094 - ], - "bbox": [ - 145.5, - 429.2000427246094, - 151.10000610351562, - 448.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "—:\u001e€", - "origin": [ - 151.10000610351562, - 435.2000427246094 - ], - "bbox": [ - 151.10000610351562, - 430.5000305175781, - 166.60000610351562, - 448.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hà�ž\\Þ.žYŸ\u0011ž|º|Þ", - "origin": [ - 166.60000610351562, - 435.2000427246094 - ], - "bbox": [ - 166.60000610351562, - 429.2000427246094, - 208.49998474121094, - 448.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¢>", - "origin": [ - 208.49998474121094, - 435.2000427246094 - ], - "bbox": [ - 208.49998474121094, - 430.5000305175781, - 218.69998168945312, - 448.300048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ŠÆ0Ÿ\"ߊ»|À�ß", - "origin": [ - 218.69998168945312, - 435.2000427246094 - ], - "bbox": [ - 218.69998168945312, - 429.2000427246094, - 255.59999084472656, - 448.4000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¢0", - "origin": [ - 255.59999084472656, - 435.2000427246094 - ], - "bbox": [ - 255.59999084472656, - 430.5000305175781, - 265.79998779296875, - 448.300048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 135.3000030517578, - 429.2000427246094, - 265.79998779296875, - 448.4000549316406 - ] - } - ], - "tag": "on-table" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 93.4000015258789, - 442.4000549316406, - 114.50000762939453, - 462.800048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.4000015258789, - 448.7000427246094 - ], - "bbox": [ - 93.4000015258789, - 442.7000427246094, - 98.70000457763672, - 461.9000549316406 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 98.70000457763672, - 448.7000427246094 - ], - "bbox": [ - 98.70000457763672, - 444.0000305175781, - 103.60000610351562, - 461.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/ê", - "origin": [ - 103.60000610351562, - 448.7000427246094 - ], - "bbox": [ - 103.60000610351562, - 442.4000549316406, - 109.00000762939453, - 462.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 109.00000762939453, - 448.7000427246094 - ], - "bbox": [ - 109.00000762939453, - 442.7000427246094, - 114.50000762939453, - 461.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 442.4000549316406, - 114.50000762939453, - 462.800048828125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 72.30000305175781, - 466.8000183105469, - 104.20000457763672, - 487.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 473.1000061035156 - ], - "bbox": [ - 72.30000305175781, - 466.8000183105469, - 104.20000457763672, - 487.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 466.8000183105469, - 104.20000457763672, - 487.20001220703125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 83.10000610351562, - 488.8000183105469, - 158.09999084472656, - 509.20001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¾?˜%¼¿¾Ù“", - "origin": [ - 83.10000610351562, - 495.1000061035156 - ], - "bbox": [ - 83.10000610351562, - 488.8000183105469, - 112.20000457763672, - 509.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "§¦", - "origin": [ - 112.20000457763672, - 495.1000061035156 - ], - "bbox": [ - 112.20000457763672, - 490.3999938964844, - 121.30000305175781, - 508.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "�šü", - "origin": [ - 121.30000305175781, - 495.1000061035156 - ], - "bbox": [ - 121.30000305175781, - 488.8000183105469, - 137.0, - 509.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#š", - "origin": [ - 137.0, - 495.1000061035156 - ], - "bbox": [ - 137.0, - 490.3999938964844, - 142.1999969482422, - 508.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "–žõ˜", - "origin": [ - 142.1999969482422, - 495.1000061035156 - ], - "bbox": [ - 142.1999969482422, - 488.8000183105469, - 158.09999084472656, - 509.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.10000610351562, - 488.8000183105469, - 158.09999084472656, - 509.20001220703125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 97.30000305175781, - 506.00006103515625, - 186.6999969482422, - 526.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3RÈ", - "origin": [ - 97.30000305175781, - 512.300048828125 - ], - "bbox": [ - 97.30000305175781, - 506.00006103515625, - 104.70000457763672, - 526.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v�", - "origin": [ - 104.70000457763672, - 512.300048828125 - ], - "bbox": [ - 104.70000457763672, - 506.300048828125, - 109.10000610351562, - 525.5000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©F«¬57«-£\u001c©Ý¥/§É576=\u001b7¨g6g:", - "origin": [ - 109.10000610351562, - 512.300048828125 - ], - "bbox": [ - 109.10000610351562, - 506.00006103515625, - 186.6999969482422, - 526.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 97.30000305175781, - 506.00006103515625, - 186.6999969482422, - 526.4000244140625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgܝÁ\u001aöyžyØe¾\nØ!Á9ûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.5, - 57.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":aA", - "origin": [ - 530.7999877929688, - 43.5999755859375 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.5, - 57.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.5, - 57.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 50, - "type": 0, - "bbox": [ - 82.80001068115234, - 731.60009765625, - 538.1998901367188, - 752.0000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "çoè", - "origin": [ - 82.80001068115234, - 737.9000854492188 - ], - "bbox": [ - 82.80001068115234, - 731.60009765625, - 90.00000762939453, - 752.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#8", - "origin": [ - 90.00000762939453, - 737.9000854492188 - ], - "bbox": [ - 90.00000762939453, - 733.2000732421875, - 95.20000457763672, - 751.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 95.20000457763672, - 737.9000854492188 - ], - "bbox": [ - 95.20000457763672, - 731.60009765625, - 101.10000610351562, - 752.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "«T", - "origin": [ - 101.10000610351562, - 737.9000854492188 - ], - "bbox": [ - 101.10000610351562, - 731.9000854492188, - 111.40000915527344, - 751.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "yè", - "origin": [ - 111.40000915527344, - 737.9000854492188 - ], - "bbox": [ - 111.40000915527344, - 731.60009765625, - 114.60000610351562, - 752.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ÄFÅfÁHß", - "origin": [ - 114.60000610351562, - 737.9000854492188 - ], - "bbox": [ - 114.60000610351562, - 731.9000854492188, - 135.90000915527344, - 751.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "?8", - "origin": [ - 135.90000915527344, - 737.9000854492188 - ], - "bbox": [ - 135.90000915527344, - 733.2000732421875, - 146.00001525878906, - 751.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß\nÄ", - "origin": [ - 146.00001525878906, - 737.9000854492188 - ], - "bbox": [ - 146.00001525878906, - 731.9000854492188, - 156.80001831054688, - 751.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 156.80001831054688, - 737.9000854492188 - ], - "bbox": [ - 156.80001831054688, - 733.2000732421875, - 161.9000244140625, - 751.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»\"X", - "origin": [ - 161.9000244140625, - 737.9000854492188 - ], - "bbox": [ - 161.9000244140625, - 731.9000854492188, - 177.9000244140625, - 751.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "K3\u001eÈ", - "origin": [ - 177.9000244140625, - 737.9000854492188 - ], - "bbox": [ - 177.9000244140625, - 731.60009765625, - 191.50003051757812, - 752.0000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "�", - "origin": [ - 191.50003051757812, - 737.9000854492188 - ], - "bbox": [ - 191.50003051757812, - 731.9000854492188, - 195.80003356933594, - 751.10009765625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©\u001a«-¤iÊ-6=¤6[©?5uå)576e¤", - "origin": [ - 195.80003356933594, - 737.9000854492188 - ], - "bbox": [ - 195.80003356933594, - 731.60009765625, - 256.4000244140625, - 752.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.80001068115234, - 731.60009765625, - 256.4000244140625, - 752.0000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¥/§!5u\u00194Ð\u001aʬ6e\u00194§K 9Ó\u001e¯", - "origin": [ - 263.0, - 737.9000854492188 - ], - "bbox": [ - 263.0, - 731.60009765625, - 321.9000244140625, - 752.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 263.0, - 731.60009765625, - 321.9000244140625, - 752.0000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5�°±ß%°±¥/«-\u001b76~Ê-\u0019\u001e\u0018F\u001bu6[¨g«¬á=\u001b76 Ê-«¬Ç9©F6s£\u001c§¸ÊY\u0019V\u0018F\u001bu6[¨g«¬á=\u001b76s¦)£9ʬ£9©F©F69 ", - "origin": [ - 324.1000061035156, - 737.9000854492188 - ], - "bbox": [ - 324.1000061035156, - 731.60009765625, - 538.1998901367188, - 752.0000610351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 324.1000061035156, - 731.60009765625, - 538.1998901367188, - 752.0000610351562 - ] - } - ], - "tag": "footer" - }, - { - "number": 51, - "type": 0, - "bbox": [ - 82.19999694824219, - 745.300048828125, - 394.199951171875, - 765.7000122070312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ëi\u0019\u001c\u001bb¥/È)Ôy\u0019\u001c§/5", - "origin": [ - 82.19999694824219, - 751.6000366210938 - ], - "bbox": [ - 82.19999694824219, - 745.300048828125, - 124.30000305175781, - 765.7000122070312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 124.30000305175781, - 751.6000366210938 - ], - "bbox": [ - 124.30000305175781, - 745.6000366210938, - 128.8000030517578, - 764.800048828125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001aÊô¯", - "origin": [ - 128.8000030517578, - 751.6000366210938 - ], - "bbox": [ - 128.8000030517578, - 745.300048828125, - 137.70001220703125, - 765.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19999694824219, - 745.300048828125, - 137.70001220703125, - 765.7000122070312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194Ê-«¬Ç9©F6[¨g6=©95o6e¤\\5b¦)6=©?57\u001buÈV6[5bÊ-\u0019^\u0018w£\u001cÊ-«-¦[6M¥/6M¦[\u0019\u001c\u001bu\u00199¦15uá[\u001bu6=¤~6=¤�5s6=©…Ç\u001c\u001bª\u0019\u001c¤= ", - "origin": [ - 140.0, - 751.6000366210938 - ], - "bbox": [ - 140.0, - 745.300048828125, - 394.199951171875, - 765.7000122070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.0, - 745.300048828125, - 394.199951171875, - 765.7000122070312 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 11, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_12": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 72.49996948242188, - 80.69999694824219, - 536.2999877929688, - 101.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6[\u001b75u\u0019\u001c«¬©�¤b©\u001a\u0019aÆ\n«-Ç9\u0019%5u6[§F\u001bª¤oÊY\u0019%ÿ/«Y¤\\5u6=¤b\u0018w6[\u001bu¨g6)57576[©?5HÊô¯", - "origin": [ - 72.49996948242188, - 87.0 - ], - "bbox": [ - 72.49996948242188, - 80.69999694824219, - 256.5999450683594, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49996948242188, - 80.69999694824219, - 256.5999450683594, - 101.0999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c¨g«Y¤7¤7«-£\u001c©Í¥/6e¤RÐ\u001a\u0019\u001cʬ«Y¤76=¤V¥/6", - "origin": [ - 258.79998779296875, - 87.0 - ], - "bbox": [ - 258.79998779296875, - 80.69999694824219, - 354.699951171875, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "C�", - "origin": [ - 354.699951171875, - 87.0 - ], - "bbox": [ - 354.699951171875, - 81.0, - 362.5999450683594, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©�¥/6\u000fçoè", - "origin": [ - 362.5999450683594, - 87.0 - ], - "bbox": [ - 362.5999450683594, - 80.69999694824219, - 398.699951171875, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½", - "origin": [ - 398.699951171875, - 87.0 - ], - "bbox": [ - 398.699951171875, - 81.0, - 403.99993896484375, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 403.99993896484375, - 87.0 - ], - "bbox": [ - 403.99993896484375, - 80.69999694824219, - 409.8999328613281, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$[", - "origin": [ - 409.8999328613281, - 87.0 - ], - "bbox": [ - 409.8999328613281, - 81.0, - 417.6999206542969, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "mçoè", - "origin": [ - 417.6999206542969, - 87.0 - ], - "bbox": [ - 417.6999206542969, - 80.69999694824219, - 431.0999450683594, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 431.0999450683594, - 87.0 - ], - "bbox": [ - 431.0999450683594, - 82.30000305175781, - 436.3999328613281, - 100.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì¢6)5!çoè", - "origin": [ - 436.3999328613281, - 87.0 - ], - "bbox": [ - 436.3999328613281, - 80.69999694824219, - 472.5999450683594, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 472.5999450683594, - 87.0 - ], - "bbox": [ - 472.5999450683594, - 82.30000305175781, - 477.8999328613281, - 100.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 477.8999328613281, - 87.0 - ], - "bbox": [ - 477.8999328613281, - 80.69999694824219, - 483.7999267578125, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$[", - "origin": [ - 483.7999267578125, - 87.0 - ], - "bbox": [ - 483.7999267578125, - 81.0, - 491.59991455078125, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F¨#\u00194«Y¤V¦4¯", - "origin": [ - 491.59991455078125, - 87.0 - ], - "bbox": [ - 491.59991455078125, - 80.69999694824219, - 525.7999267578125, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.79998779296875, - 80.69999694824219, - 525.7999267578125, - 101.0999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5", - "origin": [ - 528.0, - 87.0 - ], - "bbox": [ - 528.0, - 80.69999694824219, - 536.2999877929688, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 528.0, - 80.69999694824219, - 536.2999877929688, - 101.0999984741211 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 72.29998779296875, - 94.29997253417969, - 282.3999938964844, - 114.6999740600586 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7£\u001c§FÆ96[©?5 §\u001a©F6M¤�£9§F\u001bª¦)6B¥;¯", - "origin": [ - 72.29998779296875, - 100.5999755859375 - ], - "bbox": [ - 72.29998779296875, - 94.29997253417969, - 164.0, - 114.6999740600586 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 94.29997253417969, - 164.0, - 114.6999740600586 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[\u001bu\u001b76=§F\u001bu¤ 6[51>a£9§É¥K¯", - "origin": [ - 166.19998168945312, - 100.5999755859375 - ], - "bbox": [ - 166.19998168945312, - 94.29997253417969, - 232.7999725341797, - 114.6999740600586 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 166.19998168945312, - 94.29997253417969, - 232.7999725341797, - 114.6999740600586 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c¨¸ÐF«-Ç\u001c§F«¬57Èe¤[ ", - "origin": [ - 234.99998474121094, - 100.5999755859375 - ], - "bbox": [ - 234.99998474121094, - 94.29997253417969, - 282.3999938964844, - 114.6999740600586 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.99998474121094, - 94.29997253417969, - 282.3999938964844, - 114.6999740600586 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 291.3999938964844, - 94.29997253417969, - 458.0998840332031, - 114.6999740600586 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê;Æ%\u0019\u001c§/5R¥/£\u001c©�¦\u001e¨g«-6[§/ÿÉ\u001b76[Ôõ6[\u001bu¨g6[\u001bo¦)6e¤oÐ\u001a\u00194Ê-«Y¤�6e¤[ ", - "origin": [ - 291.3999938964844, - 100.5999755859375 - ], - "bbox": [ - 291.3999938964844, - 94.29997253417969, - 458.0998840332031, - 114.6999740600586 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 291.3999938964844, - 94.29997253417969, - 458.0998840332031, - 114.6999740600586 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 78.79999542236328, - 113.09996032714844, - 129.89999389648438, - 133.49996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79999542236328, - 119.39996337890625 - ], - "bbox": [ - 78.79999542236328, - 113.09996032714844, - 129.89999389648438, - 133.49996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79999542236328, - 113.09996032714844, - 129.89999389648438, - 133.49996948242188 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.5, - 137.90000915527344, - 161.89999389648438, - 158.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 144.20001220703125 - ], - "bbox": [ - 72.5, - 138.20001220703125, - 72.5, - 157.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè\nð", - "origin": [ - 72.5, - 144.20001220703125 - ], - "bbox": [ - 72.5, - 137.90000915527344, - 82.80000305175781, - 158.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š›", - "origin": [ - 82.80000305175781, - 144.20001220703125 - ], - "bbox": [ - 82.80000305175781, - 138.20001220703125, - 87.9000015258789, - 157.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ë", - "origin": [ - 87.9000015258789, - 144.20001220703125 - ], - "bbox": [ - 87.9000015258789, - 137.90000915527344, - 98.5999984741211, - 158.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 137.90000915527344, - 98.5999984741211, - 158.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgºŠ»", - "origin": [ - 108.69999694824219, - 144.20001220703125 - ], - "bbox": [ - 108.69999694824219, - 138.20001220703125, - 119.39999389648438, - 157.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "->", - "origin": [ - 119.39999389648438, - 144.20001220703125 - ], - "bbox": [ - 119.39999389648438, - 139.50001525878906, - 124.69999694824219, - 157.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 124.69999694824219, - 144.20001220703125 - ], - "bbox": [ - 124.69999694824219, - 138.20001220703125, - 135.1999969482422, - 157.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$#/-$", - "origin": [ - 135.1999969482422, - 144.20001220703125 - ], - "bbox": [ - 135.1999969482422, - 139.50001525878906, - 157.09999084472656, - 157.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 157.09999084472656, - 144.20001220703125 - ], - "bbox": [ - 157.09999084472656, - 138.20001220703125, - 161.89999389648438, - 157.40000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.69999694824219, - 138.20001220703125, - 161.89999389648438, - 157.40000915527344 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.5, - 151.40000915527344, - 266.70001220703125, - 171.80001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "݊¾", - "origin": [ - 72.5, - 157.70001220703125 - ], - "bbox": [ - 72.5, - 151.70001220703125, - 77.5999984741211, - 170.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ð", - "origin": [ - 77.5999984741211, - 157.70001220703125 - ], - "bbox": [ - 77.5999984741211, - 151.40000915527344, - 82.79999542236328, - 171.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#'", - "origin": [ - 82.79999542236328, - 157.70001220703125 - ], - "bbox": [ - 82.79999542236328, - 153.00001525878906, - 87.99999237060547, - 170.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè+é", - "origin": [ - 87.99999237060547, - 157.70001220703125 - ], - "bbox": [ - 87.99999237060547, - 151.40000915527344, - 99.19999694824219, - 171.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�;", - "origin": [ - 99.19999694824219, - 157.70001220703125 - ], - "bbox": [ - 99.19999694824219, - 153.00001525878906, - 104.19999694824219, - 170.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fœ\"䊾/ßg /žPßgáIŸkÆ\nÞKß", - "origin": [ - 104.19999694824219, - 157.70001220703125 - ], - "bbox": [ - 104.19999694824219, - 151.70001220703125, - 182.1999969482422, - 170.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 182.1999969482422, - 157.70001220703125 - ], - "bbox": [ - 182.1999969482422, - 153.00001525878906, - 187.3000030517578, - 170.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßcÀg´fÁHß/ÝH£Š¾", - "origin": [ - 187.3000030517578, - 157.70001220703125 - ], - "bbox": [ - 187.3000030517578, - 151.70001220703125, - 229.60000610351562, - 170.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ð", - "origin": [ - 229.60000610351562, - 157.70001220703125 - ], - "bbox": [ - 229.60000610351562, - 151.40000915527344, - 234.8000030517578, - 171.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-'", - "origin": [ - 234.8000030517578, - 157.70001220703125 - ], - "bbox": [ - 234.8000030517578, - 153.00001525878906, - 240.10000610351562, - 170.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nèwé", - "origin": [ - 240.10000610351562, - 157.70001220703125 - ], - "bbox": [ - 240.10000610351562, - 151.40000915527344, - 251.20001220703125, - 171.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�;", - "origin": [ - 251.20001220703125, - 157.70001220703125 - ], - "bbox": [ - 251.20001220703125, - 153.00001525878906, - 256.20001220703125, - 170.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fœ\"ä", - "origin": [ - 256.20001220703125, - 157.70001220703125 - ], - "bbox": [ - 256.20001220703125, - 151.70001220703125, - 266.70001220703125, - 170.90000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 151.40000915527344, - 266.70001220703125, - 171.80001831054688 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 93.4000015258789, - 165.1000213623047, - 109.19999694824219, - 185.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 171.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 165.4000244140625, - 93.4000015258789, - 184.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.4000015258789, - 171.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 165.1000213623047, - 98.4000015258789, - 185.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½gä", - "origin": [ - 98.4000015258789, - 171.4000244140625 - ], - "bbox": [ - 98.4000015258789, - 165.4000244140625, - 109.19999694824219, - 184.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 165.1000213623047, - 109.19999694824219, - 185.50003051757812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 114.4000015258789, - 178.6999969482422, - 292.6000061035156, - 199.10000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.4000015258789, - 185.0 - ], - "bbox": [ - 114.4000015258789, - 179.0, - 114.4000015258789, - 198.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 114.4000015258789, - 185.0 - ], - "bbox": [ - 114.4000015258789, - 178.6999969482422, - 119.4000015258789, - 199.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 119.4000015258789, - 185.0 - ], - "bbox": [ - 119.4000015258789, - 180.3000030517578, - 124.5999984741211, - 198.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "NÄ\nÁgžY¼HÞ", - "origin": [ - 124.5999984741211, - 185.0 - ], - "bbox": [ - 124.5999984741211, - 179.0, - 156.0, - 198.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 156.0, - 185.0 - ], - "bbox": [ - 156.0, - 180.3000030517578, - 161.5, - 198.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g FßFÞ/Ÿ\"ßF»gä", - "origin": [ - 161.5, - 185.0 - ], - "bbox": [ - 161.5, - 179.0, - 198.60000610351562, - 198.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 198.60000610351562, - 185.0 - ], - "bbox": [ - 198.60000610351562, - 180.3000030517578, - 203.60000610351562, - 198.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»\"ß\\ÀEž", - "origin": [ - 203.60000610351562, - 185.0 - ], - "bbox": [ - 203.60000610351562, - 179.0, - 225.20001220703125, - 198.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 225.20001220703125, - 185.0 - ], - "bbox": [ - 225.20001220703125, - 180.3000030517578, - 230.00001525878906, - 198.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F»/ß", - "origin": [ - 230.00001525878906, - 185.0 - ], - "bbox": [ - 230.00001525878906, - 179.0, - 240.40000915527344, - 198.1999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.4000015258789, - 178.6999969482422, - 240.40000915527344, - 199.10000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " FÄgáFß/ÝH£", - "origin": [ - 250.5, - 185.0 - ], - "bbox": [ - 250.5, - 179.0, - 276.70001220703125, - 198.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 276.70001220703125, - 185.0 - ], - "bbox": [ - 276.70001220703125, - 178.6999969482422, - 281.70001220703125, - 199.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 281.70001220703125, - 185.0 - ], - "bbox": [ - 281.70001220703125, - 180.3000030517578, - 287.0, - 198.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 287.0, - 185.0 - ], - "bbox": [ - 287.0, - 179.0, - 292.6000061035156, - 198.1999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 250.5, - 178.6999969482422, - 292.6000061035156, - 199.10000610351562 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 114.39999389648438, - 192.2999725341797, - 292.6000061035156, - 212.69998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.39999389648438, - 198.5999755859375 - ], - "bbox": [ - 114.39999389648438, - 192.5999755859375, - 114.39999389648438, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 114.39999389648438, - 198.5999755859375 - ], - "bbox": [ - 114.39999389648438, - 192.2999725341797, - 119.39999389648438, - 212.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 119.39999389648438, - 198.5999755859375 - ], - "bbox": [ - 119.39999389648438, - 193.8999786376953, - 124.59999084472656, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "NÄ\nÁgžY¼HÞ", - "origin": [ - 124.59999084472656, - 198.5999755859375 - ], - "bbox": [ - 124.59999084472656, - 192.5999755859375, - 156.0, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 156.0, - 198.5999755859375 - ], - "bbox": [ - 156.0, - 193.8999786376953, - 161.5, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g FßFÞ/Ÿ\"ßF»gä", - "origin": [ - 161.5, - 198.5999755859375 - ], - "bbox": [ - 161.5, - 192.5999755859375, - 198.60000610351562, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 198.60000610351562, - 198.5999755859375 - ], - "bbox": [ - 198.60000610351562, - 193.8999786376953, - 203.60000610351562, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßFÆ", - "origin": [ - 203.60000610351562, - 198.5999755859375 - ], - "bbox": [ - 203.60000610351562, - 192.5999755859375, - 214.10000610351562, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#X", - "origin": [ - 214.10000610351562, - 198.5999755859375 - ], - "bbox": [ - 214.10000610351562, - 193.8999786376953, - 219.3000030517578, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011ž", - "origin": [ - 219.3000030517578, - 198.5999755859375 - ], - "bbox": [ - 219.3000030517578, - 192.5999755859375, - 225.1999969482422, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 225.1999969482422, - 198.5999755859375 - ], - "bbox": [ - 225.1999969482422, - 193.8999786376953, - 230.0, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cÀ�ß", - "origin": [ - 230.0, - 198.5999755859375 - ], - "bbox": [ - 230.0, - 192.5999755859375, - 240.40000915527344, - 211.7999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.39999389648438, - 192.2999725341797, - 240.40000915527344, - 212.69998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " FÄgáFß/ÝH£", - "origin": [ - 250.5, - 198.5999755859375 - ], - "bbox": [ - 250.5, - 192.5999755859375, - 276.70001220703125, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 276.70001220703125, - 198.5999755859375 - ], - "bbox": [ - 276.70001220703125, - 192.2999725341797, - 281.70001220703125, - 212.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 281.70001220703125, - 198.5999755859375 - ], - "bbox": [ - 281.70001220703125, - 193.8999786376953, - 287.0, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 287.0, - 198.5999755859375 - ], - "bbox": [ - 287.0, - 192.5999755859375, - 292.6000061035156, - 211.7999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 250.5, - 192.2999725341797, - 292.6000061035156, - 212.69998168945312 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 93.39999389648438, - 205.8999481201172, - 114.5, - 226.29995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.39999389648438, - 212.199951171875 - ], - "bbox": [ - 93.39999389648438, - 206.199951171875, - 98.69999694824219, - 225.3999481201172 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 98.69999694824219, - 212.199951171875 - ], - "bbox": [ - 98.69999694824219, - 205.8999481201172, - 103.5999984741211, - 226.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½gä", - "origin": [ - 103.5999984741211, - 212.199951171875 - ], - "bbox": [ - 103.5999984741211, - 206.199951171875, - 114.5, - 225.3999481201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 205.8999481201172, - 114.5, - 226.29995727539062 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 93.39999389648438, - 219.59996032714844, - 109.19998931884766, - 239.99996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.39999389648438, - 225.89996337890625 - ], - "bbox": [ - 93.39999389648438, - 219.89996337890625, - 93.39999389648438, - 239.09996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.39999389648438, - 225.89996337890625 - ], - "bbox": [ - 93.39999389648438, - 219.59996032714844, - 98.39999389648438, - 239.99996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½gä", - "origin": [ - 98.39999389648438, - 225.89996337890625 - ], - "bbox": [ - 98.39999389648438, - 219.89996337890625, - 109.19998931884766, - 239.09996032714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 219.59996032714844, - 109.19998931884766, - 239.99996948242188 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 114.39999389648438, - 233.2999725341797, - 297.6999816894531, - 253.69998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.39999389648438, - 239.5999755859375 - ], - "bbox": [ - 114.39999389648438, - 233.5999755859375, - 114.39999389648438, - 252.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 114.39999389648438, - 239.5999755859375 - ], - "bbox": [ - 114.39999389648438, - 233.2999725341797, - 119.39999389648438, - 253.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 119.39999389648438, - 239.5999755859375 - ], - "bbox": [ - 119.39999389648438, - 234.8999786376953, - 124.59999084472656, - 252.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "NÄ\nÁgžY¼HÞ", - "origin": [ - 124.59999084472656, - 239.5999755859375 - ], - "bbox": [ - 124.59999084472656, - 233.5999755859375, - 156.0, - 252.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 156.0, - 239.5999755859375 - ], - "bbox": [ - 156.0, - 234.8999786376953, - 161.5, - 252.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g FßFÞ/Ÿ\"ßF»gä", - "origin": [ - 161.5, - 239.5999755859375 - ], - "bbox": [ - 161.5, - 233.5999755859375, - 198.60000610351562, - 252.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 198.60000610351562, - 239.5999755859375 - ], - "bbox": [ - 198.60000610351562, - 233.2999725341797, - 203.60000610351562, - 253.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»\"º\"žHá\nž", - "origin": [ - 203.60000610351562, - 239.5999755859375 - ], - "bbox": [ - 203.60000610351562, - 233.5999755859375, - 230.40000915527344, - 252.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 230.40000915527344, - 239.5999755859375 - ], - "bbox": [ - 230.40000915527344, - 234.8999786376953, - 235.20001220703125, - 252.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cÀ\u0011ßU FÄgá|ß/Ý\n£", - "origin": [ - 235.20001220703125, - 239.5999755859375 - ], - "bbox": [ - 235.20001220703125, - 233.5999755859375, - 281.8999938964844, - 252.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 281.8999938964844, - 239.5999755859375 - ], - "bbox": [ - 281.8999938964844, - 233.2999725341797, - 286.8999938964844, - 253.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 286.8999938964844, - 239.5999755859375 - ], - "bbox": [ - 286.8999938964844, - 234.8999786376953, - 292.1999816894531, - 252.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 292.1999816894531, - 239.5999755859375 - ], - "bbox": [ - 292.1999816894531, - 233.5999755859375, - 297.6999816894531, - 252.7999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.39999389648438, - 233.2999725341797, - 297.6999816894531, - 253.69998168945312 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 114.39999389648438, - 246.7999725341797, - 297.6999816894531, - 267.1999816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.39999389648438, - 253.0999755859375 - ], - "bbox": [ - 114.39999389648438, - 247.0999755859375, - 114.39999389648438, - 266.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 114.39999389648438, - 253.0999755859375 - ], - "bbox": [ - 114.39999389648438, - 246.7999725341797, - 119.39999389648438, - 267.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 119.39999389648438, - 253.0999755859375 - ], - "bbox": [ - 119.39999389648438, - 248.3999786376953, - 124.59999084472656, - 266.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "NÄ\nÁgžY¼HÞ", - "origin": [ - 124.59999084472656, - 253.0999755859375 - ], - "bbox": [ - 124.59999084472656, - 247.0999755859375, - 156.0, - 266.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 156.0, - 253.0999755859375 - ], - "bbox": [ - 156.0, - 248.3999786376953, - 161.5, - 266.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g FßFÞ/Ÿ\"ßF»gä", - "origin": [ - 161.5, - 253.0999755859375 - ], - "bbox": [ - 161.5, - 247.0999755859375, - 198.60000610351562, - 266.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-‚", - "origin": [ - 198.60000610351562, - 253.0999755859375 - ], - "bbox": [ - 198.60000610351562, - 248.3999786376953, - 203.90000915527344, - 266.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|ÆgÄ|Ÿ\n»�ž", - "origin": [ - 203.90000915527344, - 253.0999755859375 - ], - "bbox": [ - 203.90000915527344, - 247.0999755859375, - 230.40000915527344, - 266.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 230.40000915527344, - 253.0999755859375 - ], - "bbox": [ - 230.40000915527344, - 248.3999786376953, - 235.20001220703125, - 266.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cÀ\u0011ßU FÄgá|ß/Ý\n£", - "origin": [ - 235.20001220703125, - 253.0999755859375 - ], - "bbox": [ - 235.20001220703125, - 247.0999755859375, - 281.8999938964844, - 266.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 281.8999938964844, - 253.0999755859375 - ], - "bbox": [ - 281.8999938964844, - 246.7999725341797, - 286.8999938964844, - 267.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 286.8999938964844, - 253.0999755859375 - ], - "bbox": [ - 286.8999938964844, - 248.3999786376953, - 292.1999816894531, - 266.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 292.1999816894531, - 253.0999755859375 - ], - "bbox": [ - 292.1999816894531, - 247.0999755859375, - 297.6999816894531, - 266.29998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.39999389648438, - 246.7999725341797, - 297.6999816894531, - 267.1999816894531 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 93.39999389648438, - 260.5, - 114.5, - 280.8999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.39999389648438, - 266.79998779296875 - ], - "bbox": [ - 93.39999389648438, - 260.79998779296875, - 98.69999694824219, - 280.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 98.69999694824219, - 266.79998779296875 - ], - "bbox": [ - 98.69999694824219, - 260.5, - 103.5999984741211, - 280.8999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½gä", - "origin": [ - 103.5999984741211, - 266.79998779296875 - ], - "bbox": [ - 103.5999984741211, - 260.79998779296875, - 114.5, - 280.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 260.5, - 114.5, - 280.8999938964844 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.49999237060547, - 274.0999755859375, - 109.49998474121094, - 294.4999694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 72.49999237060547, - 280.39996337890625 - ], - "bbox": [ - 72.49999237060547, - 274.39996337890625, - 77.79999542236328, - 293.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè?ð", - "origin": [ - 77.79999542236328, - 280.39996337890625 - ], - "bbox": [ - 77.79999542236328, - 274.0999755859375, - 87.99999237060547, - 294.4999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H›", - "origin": [ - 87.99999237060547, - 280.39996337890625 - ], - "bbox": [ - 87.99999237060547, - 274.39996337890625, - 93.19998931884766, - 293.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ë", - "origin": [ - 93.19998931884766, - 280.39996337890625 - ], - "bbox": [ - 93.19998931884766, - 274.0999755859375, - 103.89998626708984, - 294.4999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 103.89998626708984, - 280.39996337890625 - ], - "bbox": [ - 103.89998626708984, - 274.39996337890625, - 109.49998474121094, - 293.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49999237060547, - 274.0999755859375, - 109.49998474121094, - 294.4999694824219 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 72.30000305175781, - 412.9000244140625, - 227.6000213623047, - 433.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤o¥/È)5ª\u00194«-Ê-¤o¥F6M²9§\u001a6[ÊY²9§\u001a6=¤s\u0018\u001a\u0019\u001c\u001bu\u0019\u001c¨^á[57\u001bu6=¤V8", - "origin": [ - 72.30000305175781, - 419.20001220703125 - ], - "bbox": [ - 72.30000305175781, - 412.9000244140625, - 227.6000213623047, - 433.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 412.9000244140625, - 227.6000213623047, - 433.3000183105469 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 82.19999694824219, - 431.6000061035156, - 112.29998779296875, - 452.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è?ð", - "origin": [ - 82.19999694824219, - 437.8999938964844 - ], - "bbox": [ - 82.19999694824219, - 431.6000061035156, - 87.39999389648438, - 452.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H›", - "origin": [ - 87.39999389648438, - 437.8999938964844 - ], - "bbox": [ - 87.39999389648438, - 431.8999938964844, - 92.59999084472656, - 451.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ëÝ8", - "origin": [ - 92.59999084472656, - 437.8999938964844 - ], - "bbox": [ - 92.59999084472656, - 431.6000061035156, - 112.29998779296875, - 452.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19999694824219, - 431.6000061035156, - 112.29998779296875, - 452.0 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 92.5999984741211, - 445.29998779296875, - 290.7999267578125, - 465.6999816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "áYÆFÀ\nÀ�Ċ»\nã", - "origin": [ - 92.5999984741211, - 451.5999755859375 - ], - "bbox": [ - 92.5999984741211, - 445.5999755859375, - 123.80000305175781, - 464.79998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8", - "origin": [ - 123.80000305175781, - 451.5999755859375 - ], - "bbox": [ - 123.80000305175781, - 445.29998779296875, - 132.6999969482422, - 465.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"�", - "origin": [ - 132.6999969482422, - 451.5999755859375 - ], - "bbox": [ - 132.6999969482422, - 445.5999755859375, - 138.1999969482422, - 464.79998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oÈ=¤7§F¨gÈM¥/6M¦[6H²?§F6M¦[£\u001c©?57«-6[©?5oÊY\u0019¸5ª\u00194ÐFÊ-6\u001c ", - "origin": [ - 138.1999969482422, - 451.5999755859375 - ], - "bbox": [ - 138.1999969482422, - 445.29998779296875, - 290.7999267578125, - 465.6999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.5999984741211, - 445.29998779296875, - 290.7999267578125, - 465.6999816894531 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 92.0, - 458.89996337890625, - 373.29998779296875, - 479.2999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶.ž", - "origin": [ - 92.0, - 465.199951171875 - ], - "bbox": [ - 92.0, - 459.199951171875, - 98.0, - 478.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 98.0, - 465.199951171875 - ], - "bbox": [ - 98.0, - 460.49993896484375, - 102.80000305175781, - 478.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸŠ¡", - "origin": [ - 102.80000305175781, - 465.199951171875 - ], - "bbox": [ - 102.80000305175781, - 459.199951171875, - 113.0999984741211, - 478.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8F¶\u00194\u001buÇ\u001c6=§F\u001bo¥/§É5u\u00194Ð\u001aʬ6e\u00194§", - "origin": [ - 113.0999984741211, - 465.199951171875 - ], - "bbox": [ - 113.0999984741211, - 458.89996337890625, - 205.99998474121094, - 479.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 205.99998474121094, - 465.199951171875 - ], - "bbox": [ - 205.99998474121094, - 459.199951171875, - 212.09999084472656, - 478.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/6[ÿ\n\u0018\u001a\u001b7«-¨gÈV6=©…\u0018F«zÿ/6=Ê;£\u001c§…6[©É\u0018�£9§F\u001bª¦)6[©?5ª\u00194Ç\u001c69 ", - "origin": [ - 212.09999084472656, - 465.199951171875 - ], - "bbox": [ - 212.09999084472656, - 458.89996337890625, - 373.29998779296875, - 479.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.0, - 458.89996337890625, - 373.29998779296875, - 479.2999572753906 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 92.30000305175781, - 472.49993896484375, - 390.39990234375, - 492.8999328613281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä/ÁgžY¼ŠÞ", - "origin": [ - 92.30000305175781, - 478.7999267578125 - ], - "bbox": [ - 92.30000305175781, - 472.7999267578125, - 113.0999984741211, - 491.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 113.0999984741211, - 478.7999267578125 - ], - "bbox": [ - 113.0999984741211, - 474.09991455078125, - 118.5999984741211, - 491.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHßHàŠŸ", - "origin": [ - 118.5999984741211, - 478.7999267578125 - ], - "bbox": [ - 118.5999984741211, - 472.7999267578125, - 139.60000610351562, - 491.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 139.60000610351562, - 478.7999267578125 - ], - "bbox": [ - 139.60000610351562, - 474.09991455078125, - 145.70001220703125, - 491.8999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.30000305175781, - 472.7999267578125, - 145.70001220703125, - 491.99993896484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fß|Þ/Ÿ\"ߊ»", - "origin": [ - 148.20001220703125, - 478.7999267578125 - ], - "bbox": [ - 148.20001220703125, - 472.7999267578125, - 174.10000610351562, - 491.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 174.10000610351562, - 478.7999267578125 - ], - "bbox": [ - 174.10000610351562, - 474.09991455078125, - 180.0, - 491.8999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 148.20001220703125, - 472.7999267578125, - 180.0, - 491.99993896484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»\u0011žY¼F¡/Ÿ", - "origin": [ - 182.00001525878906, - 478.7999267578125 - ], - "bbox": [ - 182.00001525878906, - 472.7999267578125, - 203.0, - 491.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%*", - "origin": [ - 203.0, - 478.7999267578125 - ], - "bbox": [ - 203.0, - 474.09991455078125, - 209.0, - 491.8999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.00001525878906, - 472.7999267578125, - 209.0, - 491.99993896484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 211.1000213623047, - 478.7999267578125 - ], - "bbox": [ - 211.1000213623047, - 474.09991455078125, - 211.1000213623047, - 491.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÆ�áYŸ\u0011žYàHã", - "origin": [ - 211.1000213623047, - 478.7999267578125 - ], - "bbox": [ - 211.1000213623047, - 472.7999267578125, - 242.40000915527344, - 491.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "B˝£?¤�«¬57«-£\u001c©…¥/§É576[ÿ\n576M¥F\u0019\u001c©\u001a¤sÊ-\u0019g¦[6[Ê-ʬ§FÊ-6\u001c ", - "origin": [ - 242.40000915527344, - 478.7999267578125 - ], - "bbox": [ - 242.40000915527344, - 472.49993896484375, - 390.39990234375, - 492.8999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.1000213623047, - 472.49993896484375, - 390.39990234375, - 492.8999328613281 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 92.00001525878906, - 486.1999206542969, - 127.40001678466797, - 506.59991455078125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgºŠ»", - "origin": [ - 92.00001525878906, - 492.4999084472656 - ], - "bbox": [ - 92.00001525878906, - 486.4999084472656, - 102.70001220703125, - 505.6999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 102.70001220703125, - 492.4999084472656 - ], - "bbox": [ - 102.70001220703125, - 487.7998962402344, - 108.10001373291016, - 505.59991455078125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nߊ»", - "origin": [ - 108.10001373291016, - 492.4999084472656 - ], - "bbox": [ - 108.10001373291016, - 486.4999084472656, - 118.50001525878906, - 505.6999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8", - "origin": [ - 118.50001525878906, - 492.4999084472656 - ], - "bbox": [ - 118.50001525878906, - 486.1999206542969, - 127.40001678466797, - 506.59991455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.00001525878906, - 486.1999206542969, - 127.40001678466797, - 506.59991455078125 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 139.6000213623047, - 486.1999206542969, - 246.39999389648438, - 506.59991455078125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018�\u00194«Y¤7¤76[§F\u001bb¥F§‰5u\u001bu\u0019\u001c«z5o6=©É\u0018\u001a«zÿ/6[Ê", - "origin": [ - 139.6000213623047, - 492.4999084472656 - ], - "bbox": [ - 139.6000213623047, - 486.1999206542969, - 246.39999389648438, - 506.59991455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.6000213623047, - 486.1999206542969, - 246.39999389648438, - 506.59991455078125 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 92.20001220703125, - 499.7998962402344, - 532.4000244140625, - 520.1998901367188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "àH»\"ÄYÀ�ß", - "origin": [ - 92.20001220703125, - 506.0998840332031 - ], - "bbox": [ - 92.20001220703125, - 500.0998840332031, - 113.40000915527344, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"", - "origin": [ - 113.40000915527344, - 506.0998840332031 - ], - "bbox": [ - 113.40000915527344, - 501.3998718261719, - 118.60000610351562, - 519.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hâ\"ºfž", - "origin": [ - 118.60000610351562, - 506.0998840332031 - ], - "bbox": [ - 118.60000610351562, - 500.0998840332031, - 135.0, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>%*", - "origin": [ - 135.0, - 506.0998840332031 - ], - "bbox": [ - 135.0, - 501.3998718261719, - 145.6999969482422, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.20001220703125, - 500.0998840332031, - 145.6999969482422, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÄFÅ\"ºŠâ\"ß", - "origin": [ - 147.90000915527344, - 506.0998840332031 - ], - "bbox": [ - 147.90000915527344, - 500.0998840332031, - 169.00001525878906, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 169.00001525878906, - 506.0998840332031 - ], - "bbox": [ - 169.00001525878906, - 501.3998718261719, - 174.90000915527344, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.90000915527344, - 500.0998840332031, - 174.90000915527344, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\"ß/ÁHºI¶", - "origin": [ - 176.70001220703125, - 506.0998840332031 - ], - "bbox": [ - 176.70001220703125, - 500.0998840332031, - 197.60000610351562, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S*", - "origin": [ - 197.60000610351562, - 506.0998840332031 - ], - "bbox": [ - 197.60000610351562, - 501.3998718261719, - 203.8000030517578, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.70001220703125, - 500.0998840332031, - 203.8000030517578, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡fá/ž", - "origin": [ - 205.70001220703125, - 506.0998840332031 - ], - "bbox": [ - 205.70001220703125, - 500.0998840332031, - 216.8000030517578, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>", - "origin": [ - 216.8000030517578, - 506.0998840332031 - ], - "bbox": [ - 216.8000030517578, - 501.3998718261719, - 221.5, - 519.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nßgá", - "origin": [ - 221.5, - 506.0998840332031 - ], - "bbox": [ - 221.5, - 500.0998840332031, - 232.40000915527344, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e*", - "origin": [ - 232.40000915527344, - 506.0998840332031 - ], - "bbox": [ - 232.40000915527344, - 501.3998718261719, - 237.90000915527344, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.70001220703125, - 500.0998840332031, - 237.90000915527344, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Á|¡�á", - "origin": [ - 240.10000610351562, - 506.0998840332031 - ], - "bbox": [ - 240.10000610351562, - 500.0998840332031, - 250.8000030517578, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<*", - "origin": [ - 250.8000030517578, - 506.0998840332031 - ], - "bbox": [ - 250.8000030517578, - 501.3998718261719, - 256.3999938964844, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.10000610351562, - 500.0998840332031, - 256.3999938964844, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»H¡�á", - "origin": [ - 258.3000183105469, - 506.0998840332031 - ], - "bbox": [ - 258.3000183105469, - 500.0998840332031, - 269.3000183105469, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e*", - "origin": [ - 269.3000183105469, - 506.0998840332031 - ], - "bbox": [ - 269.3000183105469, - 501.3998718261719, - 274.8000183105469, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.3000183105469, - 500.0998840332031, - 274.8000183105469, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "âfá\nž", - "origin": [ - 276.8000183105469, - 506.0998840332031 - ], - "bbox": [ - 276.8000183105469, - 500.0998840332031, - 287.8000183105469, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 287.8000183105469, - 506.0998840332031 - ], - "bbox": [ - 287.8000183105469, - 501.3998718261719, - 292.6000061035156, - 519.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nßgá", - "origin": [ - 292.6000061035156, - 506.0998840332031 - ], - "bbox": [ - 292.6000061035156, - 500.0998840332031, - 303.5, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1*", - "origin": [ - 303.5, - 506.0998840332031 - ], - "bbox": [ - 303.5, - 501.3998718261719, - 308.8999938964844, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.8000183105469, - 500.0998840332031, - 308.8999938964844, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ågº", - "origin": [ - 310.8000183105469, - 506.0998840332031 - ], - "bbox": [ - 310.8000183105469, - 500.0998840332031, - 316.4000244140625, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�X&*", - "origin": [ - 316.4000244140625, - 506.0998840332031 - ], - "bbox": [ - 316.4000244140625, - 501.3998718261719, - 327.4000244140625, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 310.8000183105469, - 500.0998840332031, - 327.4000244140625, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\"ºF»", - "origin": [ - 329.3000183105469, - 506.0998840332031 - ], - "bbox": [ - 329.3000183105469, - 500.0998840332031, - 339.8000183105469, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 339.8000183105469, - 506.0998840332031 - ], - "bbox": [ - 339.8000183105469, - 501.3998718261719, - 345.20001220703125, - 519.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hߊ»", - "origin": [ - 345.20001220703125, - 506.0998840332031 - ], - "bbox": [ - 345.20001220703125, - 500.0998840332031, - 355.5000305175781, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#8\u001a3\u001eÈ)5u6[\u001bu¨g«¬©F6M²?§F6=Ê-¤sÐw£\u001c\u001bª¥F¤o¤76[\u001bu£\u001c©?5sÆ?«Y¤7«¬ÐFÊ-6=¤= ", - "origin": [ - 355.5000305175781, - 506.0998840332031 - ], - "bbox": [ - 355.5000305175781, - 499.7998962402344, - 532.4000244140625, - 520.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.3000183105469, - 499.7998962402344, - 532.4000244140625, - 520.1998901367188 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 102.10000610351562, - 513.4998779296875, - 213.300048828125, - 533.8998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â\"ºgž", - "origin": [ - 102.10000610351562, - 519.7998657226562 - ], - "bbox": [ - 102.10000610351562, - 513.7998657226562, - 113.20000457763672, - 532.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 113.20000457763672, - 519.7998657226562 - ], - "bbox": [ - 113.20000457763672, - 515.099853515625, - 118.00000762939453, - 532.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8\u001a\u0019\u001c§\u001a¦)§\u001a©‰Ðw£\u001c\u001bª¥\u000fÆ\n«Y¤�«-ÐFÊ-6", - "origin": [ - 118.00000762939453, - 519.7998657226562 - ], - "bbox": [ - 118.00000762939453, - 513.4998779296875, - 208.300048828125, - 533.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 208.300048828125, - 519.7998657226562 - ], - "bbox": [ - 208.300048828125, - 513.7998657226562, - 213.300048828125, - 532.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.10000610351562, - 513.4998779296875, - 213.300048828125, - 533.8998413085938 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 102.30001068115234, - 526.9998779296875, - 222.90000915527344, - 547.3998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÄFÅ\"ºŠâ\"ß", - "origin": [ - 102.30001068115234, - 533.2998657226562 - ], - "bbox": [ - 102.30001068115234, - 527.2998657226562, - 123.40000915527344, - 546.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É8/Ê-6Bþ\u001a\u00194§/5b§\u001a©F«-²?§F6=¨g6[©?5", - "origin": [ - 123.40000915527344, - 533.2998657226562 - ], - "bbox": [ - 123.40000915527344, - 526.9998779296875, - 218.40000915527344, - 547.3998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 218.40000915527344, - 533.2998657226562 - ], - "bbox": [ - 218.40000915527344, - 527.2998657226562, - 222.90000915527344, - 546.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.30001068115234, - 526.9998779296875, - 222.90000915527344, - 547.3998413085938 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 102.00000762939453, - 540.6998901367188, - 217.4000244140625, - 561.099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ågß\nÁHºF¶", - "origin": [ - 102.00000762939453, - 546.9998779296875 - ], - "bbox": [ - 102.00000762939453, - 540.9998779296875, - 123.10000610351562, - 560.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8/Ê-6BÐ\u001a\u0019\u001c¤s§F©\u001a«-²?§F6=¨^6=©?5", - "origin": [ - 123.10000610351562, - 546.9998779296875 - ], - "bbox": [ - 123.10000610351562, - 540.6998901367188, - 212.9000244140625, - 561.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 212.9000244140625, - 546.9998779296875 - ], - "bbox": [ - 212.9000244140625, - 540.9998779296875, - 217.4000244140625, - 560.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.00000762939453, - 540.6998901367188, - 217.4000244140625, - 561.099853515625 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 102.00000762939453, - 554.2998657226562, - 208.60000610351562, - 574.6998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\u0011á\nž", - "origin": [ - 102.00000762939453, - 560.599853515625 - ], - "bbox": [ - 102.00000762939453, - 554.599853515625, - 113.20001220703125, - 573.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 113.20001220703125, - 560.599853515625 - ], - "bbox": [ - 113.20001220703125, - 555.8998413085938, - 118.00001525878906, - 573.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 118.00001525878906, - 560.599853515625 - ], - "bbox": [ - 118.00001525878906, - 554.599853515625, - 123.40001678466797, - 573.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É8/Ê-6Bþ\u001a\u00194§/5b6[5oʬ6BÐ\u001a\u00199¤", - "origin": [ - 123.40001678466797, - 560.599853515625 - ], - "bbox": [ - 123.40001678466797, - 554.2998657226562, - 204.20001220703125, - 574.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 204.20001220703125, - 560.599853515625 - ], - "bbox": [ - 204.20001220703125, - 554.599853515625, - 208.60000610351562, - 573.7998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.00000762939453, - 554.2998657226562, - 208.60000610351562, - 574.6998291015625 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 102.40000915527344, - 567.8998413085938, - 189.09999084472656, - 588.2998046875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Á|¡�á", - "origin": [ - 102.40000915527344, - 574.1998291015625 - ], - "bbox": [ - 102.40000915527344, - 568.1998291015625, - 113.10001373291016, - 587.3998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c8\u001aʬ6M¦[£457ÈHÇ?\u00194§\u001a¦ªþF6", - "origin": [ - 113.10001373291016, - 574.1998291015625 - ], - "bbox": [ - 113.10001373291016, - 567.8998413085938, - 183.99998474121094, - 588.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 183.99998474121094, - 574.1998291015625 - ], - "bbox": [ - 183.99998474121094, - 568.1998291015625, - 189.09999084472656, - 587.3998413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.40000915527344, - 567.8998413085938, - 189.09999084472656, - 588.2998046875 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 102.10000610351562, - 581.5997924804688, - 180.3999786376953, - 601.999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»H¡�á", - "origin": [ - 102.10000610351562, - 587.8997802734375 - ], - "bbox": [ - 102.10000610351562, - 581.8997802734375, - 113.10000610351562, - 601.0997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c8\u001aʬ6M¦[£457ÈB¥/\u001bu£\u001c«¬5", - "origin": [ - 113.10000610351562, - 587.8997802734375 - ], - "bbox": [ - 113.10000610351562, - 581.5997924804688, - 175.8999786376953, - 601.999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 175.8999786376953, - 587.8997802734375 - ], - "bbox": [ - 175.8999786376953, - 581.8997802734375, - 180.3999786376953, - 601.0997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.10000610351562, - 581.5997924804688, - 180.3999786376953, - 601.999755859375 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 102.10000610351562, - 595.1998291015625, - 272.1999816894531, - 615.5997924804688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â�á\nž", - "origin": [ - 102.10000610351562, - 601.4998168945312 - ], - "bbox": [ - 102.10000610351562, - 595.4998168945312, - 113.20001220703125, - 614.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 113.20001220703125, - 601.4998168945312 - ], - "bbox": [ - 113.20001220703125, - 596.7998046875, - 118.00001525878906, - 614.5997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßgá", - "origin": [ - 118.00001525878906, - 601.4998168945312 - ], - "bbox": [ - 118.00001525878906, - 595.4998168945312, - 129.00001525878906, - 614.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#8Fʬ6B¦[£457ÈBÇ?\u00194§\u001a¦ªþ\u001a6\u001e6[5bʬ6M¦[£457ÈB¥/\u001bu£\u001c«¬5", - "origin": [ - 129.00001525878906, - 601.4998168945312 - ], - "bbox": [ - 129.00001525878906, - 595.1998291015625, - 267.6999816894531, - 615.5997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 267.6999816894531, - 601.4998168945312 - ], - "bbox": [ - 267.6999816894531, - 595.4998168945312, - 272.1999816894531, - 614.6998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.10000610351562, - 595.1998291015625, - 272.1999816894531, - 615.5997924804688 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 102.00000762939453, - 608.8998413085938, - 213.40000915527344, - 629.2998046875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgºF»", - "origin": [ - 102.00000762939453, - 615.1998291015625 - ], - "bbox": [ - 102.00000762939453, - 609.1998291015625, - 112.60000610351562, - 628.3998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 112.60000610351562, - 615.1998291015625 - ], - "bbox": [ - 112.60000610351562, - 610.4998168945312, - 118.00000762939453, - 628.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 118.00000762939453, - 615.1998291015625 - ], - "bbox": [ - 118.00000762939453, - 609.1998291015625, - 128.50001525878906, - 628.3998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8Fʬ6e¤o²?§\u001a\u0019%5u\u001b76HÐw£\u001c\u001bª¥F¤[ ", - "origin": [ - 128.50001525878906, - 615.1998291015625 - ], - "bbox": [ - 128.50001525878906, - 608.8998413085938, - 213.40000915527344, - 629.2998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.00000762939453, - 608.8998413085938, - 213.40000915527344, - 629.2998046875 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 92.60000610351562, - 622.3998413085938, - 263.6999816894531, - 642.7998046875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fß/Á\nÁ/áY´gÄg /ž\\Þ/¼", - "origin": [ - 92.60000610351562, - 628.6998291015625 - ], - "bbox": [ - 92.60000610351562, - 622.6998291015625, - 144.89999389648438, - 641.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰8", - "origin": [ - 144.89999389648438, - 628.6998291015625 - ], - "bbox": [ - 144.89999389648438, - 622.3998413085938, - 153.59999084472656, - 642.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"_", - "origin": [ - 153.59999084472656, - 628.6998291015625 - ], - "bbox": [ - 153.59999084472656, - 622.6998291015625, - 159.09999084472656, - 641.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ7\u0018\u001a\u0019\u001c¦[6V6=©?57\u001bu6VÊ-6=¤o¦[6[Ê-ʬ§\u001aʬ6e¤[ ", - "origin": [ - 159.09999084472656, - 628.6998291015625 - ], - "bbox": [ - 159.09999084472656, - 622.3998413085938, - 263.6999816894531, - 642.7998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.60000610351562, - 622.3998413085938, - 263.6999816894531, - 642.7998046875 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 82.20000457763672, - 636.0997924804688, - 96.60000610351562, - 656.499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 82.20000457763672, - 642.3997802734375 - ], - "bbox": [ - 82.20000457763672, - 636.0997924804688, - 82.20000457763672, - 656.499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½", - "origin": [ - 82.20000457763672, - 642.3997802734375 - ], - "bbox": [ - 82.20000457763672, - 636.3997802734375, - 87.4000015258789, - 655.5997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000e8", - "origin": [ - 87.4000015258789, - 642.3997802734375 - ], - "bbox": [ - 87.4000015258789, - 636.0997924804688, - 96.60000610351562, - 656.499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20000457763672, - 636.0997924804688, - 96.60000610351562, - 656.499755859375 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 92.30001068115234, - 649.7998046875, - 396.6000061035156, - 670.1997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä/ÁgžY¼ŠÞ", - "origin": [ - 92.30001068115234, - 656.0997924804688 - ], - "bbox": [ - 92.30001068115234, - 650.0997924804688, - 113.10000610351562, - 669.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 113.10000610351562, - 656.0997924804688 - ], - "bbox": [ - 113.10000610351562, - 651.3997802734375, - 118.60000610351562, - 669.1997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHßHàŠŸ", - "origin": [ - 118.60000610351562, - 656.0997924804688 - ], - "bbox": [ - 118.60000610351562, - 650.0997924804688, - 139.60000610351562, - 669.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 139.60000610351562, - 656.0997924804688 - ], - "bbox": [ - 139.60000610351562, - 651.3997802734375, - 145.70001220703125, - 669.1997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.30001068115234, - 650.0997924804688, - 145.70001220703125, - 669.2998046875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fß|Þ/Ÿ\"ߊ»", - "origin": [ - 148.20001220703125, - 656.0997924804688 - ], - "bbox": [ - 148.20001220703125, - 650.0997924804688, - 174.10000610351562, - 669.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 174.10000610351562, - 656.0997924804688 - ], - "bbox": [ - 174.10000610351562, - 651.3997802734375, - 180.0, - 669.1997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 148.20001220703125, - 650.0997924804688, - 180.0, - 669.2998046875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»\u0011žY¼F¡/Ÿ", - "origin": [ - 182.00001525878906, - 656.0997924804688 - ], - "bbox": [ - 182.00001525878906, - 650.0997924804688, - 203.0, - 669.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%*", - "origin": [ - 203.0, - 656.0997924804688 - ], - "bbox": [ - 203.0, - 651.3997802734375, - 209.0, - 669.1997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.00001525878906, - 650.0997924804688, - 209.0, - 669.2998046875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 211.1000213623047, - 656.0997924804688 - ], - "bbox": [ - 211.1000213623047, - 651.3997802734375, - 211.1000213623047, - 669.1997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÆ�áYŸ\u0011žYàHã", - "origin": [ - 211.1000213623047, - 656.0997924804688 - ], - "bbox": [ - 211.1000213623047, - 650.0997924804688, - 242.40000915527344, - 669.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#8FËi£9¤7«z5u«¬£9©É¥/§É5u6)ÿ\n576M¥F\u0019\u001c©\u001a¤sÊY\u0019^¦[6[Ê-ʬ§\u001aʬ69 ", - "origin": [ - 242.40000915527344, - 656.0997924804688 - ], - "bbox": [ - 242.40000915527344, - 649.7998046875, - 396.6000061035156, - 670.1997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.1000213623047, - 649.7998046875, - 396.6000061035156, - 670.1997680664062 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 92.10001373291016, - 663.2998046875, - 242.7000274658203, - 683.6997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â\"Ä/Ágžc¼HÞ", - "origin": [ - 92.10001373291016, - 669.5997924804688 - ], - "bbox": [ - 92.10001373291016, - 663.5997924804688, - 118.40000915527344, - 682.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 118.40000915527344, - 669.5997924804688 - ], - "bbox": [ - 118.40000915527344, - 664.8997802734375, - 123.90000915527344, - 682.6997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸ\"º|´", - "origin": [ - 123.90000915527344, - 669.5997924804688 - ], - "bbox": [ - 123.90000915527344, - 663.5997924804688, - 139.5, - 682.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S*", - "origin": [ - 139.5, - 669.5997924804688 - ], - "bbox": [ - 139.5, - 664.8997802734375, - 145.6999969482422, - 682.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.10001373291016, - 663.5997924804688, - 145.6999969482422, - 682.7998046875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÀEž", - "origin": [ - 147.30001831054688, - 669.5997924804688 - ], - "bbox": [ - 147.30001831054688, - 663.5997924804688, - 153.6000213623047, - 682.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>->", - "origin": [ - 153.6000213623047, - 669.5997924804688 - ], - "bbox": [ - 153.6000213623047, - 664.8997802734375, - 163.6000213623047, - 682.6997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHß|Ÿ\"º|´", - "origin": [ - 163.6000213623047, - 669.5997924804688 - ], - "bbox": [ - 163.6000213623047, - 663.5997924804688, - 189.60000610351562, - 682.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S*", - "origin": [ - 189.60000610351562, - 669.5997924804688 - ], - "bbox": [ - 189.60000610351562, - 664.8997802734375, - 195.8000030517578, - 682.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.30001831054688, - 663.5997924804688, - 195.8000030517578, - 682.7998046875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgÄ\"á|ß\nÁgžcÞ/ß", - "origin": [ - 197.6000213623047, - 669.5997924804688 - ], - "bbox": [ - 197.6000213623047, - 663.5997924804688, - 234.50003051757812, - 682.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^8", - "origin": [ - 234.50003051757812, - 669.5997924804688 - ], - "bbox": [ - 234.50003051757812, - 663.2998046875, - 242.7000274658203, - 683.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 197.6000213623047, - 663.2998046875, - 242.7000274658203, - 683.6997680664062 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 255.70001220703125, - 663.2998046875, - 422.6998596191406, - 683.6997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʬ«-Ç\u001c©\u001a6[¨g6[©?5bÆ\u001c6=\u001b�5u«-¦=\u00194Ê;\u00194§…¤76[«-©…¥F6BÊ-\u0019g¦)6=ʬÊ-§FÊ-6\u001c ", - "origin": [ - 255.70001220703125, - 669.5997924804688 - ], - "bbox": [ - 255.70001220703125, - 663.2998046875, - 422.6998596191406, - 683.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 255.70001220703125, - 663.2998046875, - 422.6998596191406, - 683.6997680664062 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 102.10000610351562, - 676.9998168945312, - 121.60000610351562, - 697.3997802734375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ÿ\"º|´", - "origin": [ - 102.10000610351562, - 683.2998046875 - ], - "bbox": [ - 102.10000610351562, - 677.2998046875, - 112.50000762939453, - 696.4998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 112.50000762939453, - 683.2998046875 - ], - "bbox": [ - 112.50000762939453, - 676.9998168945312, - 121.60000610351562, - 697.3997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.10000610351562, - 676.9998168945312, - 121.60000610351562, - 697.3997802734375 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 134.60000610351562, - 676.9998168945312, - 192.20001220703125, - 697.3997802734375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-«¬Ç9©FÈB6[©Éþ\u001a\u00194§F5", - "origin": [ - 134.60000610351562, - 683.2998046875 - ], - "bbox": [ - 134.60000610351562, - 676.9998168945312, - 187.70001220703125, - 697.3997802734375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 187.70001220703125, - 683.2998046875 - ], - "bbox": [ - 187.70001220703125, - 677.2998046875, - 192.20001220703125, - 696.4998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.60000610351562, - 676.9998168945312, - 192.20001220703125, - 697.3997802734375 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 101.70001220703125, - 690.5997924804688, - 153.10000610351562, - 710.999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÀEž", - "origin": [ - 101.70001220703125, - 696.8997802734375 - ], - "bbox": [ - 101.70001220703125, - 690.8997802734375, - 108.00001525878906, - 710.0997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>->", - "origin": [ - 108.00001525878906, - 696.8997802734375 - ], - "bbox": [ - 108.00001525878906, - 692.1997680664062, - 118.00001525878906, - 709.999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHߊŸ/ºF´", - "origin": [ - 118.00001525878906, - 696.8997802734375 - ], - "bbox": [ - 118.00001525878906, - 690.8997802734375, - 144.20001220703125, - 710.0997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8", - "origin": [ - 144.20001220703125, - 696.8997802734375 - ], - "bbox": [ - 144.20001220703125, - 690.5997924804688, - 153.10000610351562, - 710.999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.70001220703125, - 690.5997924804688, - 153.10000610351562, - 710.999755859375 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 166.00001525878906, - 690.5997924804688, - 201.89999389648438, - 710.999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§Ý¦[6[©?57\u001bu6", - "origin": [ - 166.00001525878906, - 696.8997802734375 - ], - "bbox": [ - 166.00001525878906, - 690.5997924804688, - 196.89999389648438, - 710.999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 196.89999389648438, - 696.8997802734375 - ], - "bbox": [ - 196.89999389648438, - 690.8997802734375, - 201.89999389648438, - 710.0997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 166.00001525878906, - 690.5997924804688, - 201.89999389648438, - 710.999755859375 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 102.00001525878906, - 704.2998046875, - 147.80003356933594, - 724.6997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgÄ\"áFß/ÁgžcÞ\"ß", - "origin": [ - 102.00001525878906, - 710.5997924804688 - ], - "bbox": [ - 102.00001525878906, - 704.5997924804688, - 139.2000274658203, - 723.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f8", - "origin": [ - 139.2000274658203, - 710.5997924804688 - ], - "bbox": [ - 139.2000274658203, - 704.2998046875, - 147.80003356933594, - 724.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.00001525878906, - 704.2998046875, - 147.80003356933594, - 724.6997680664062 - ] - } - ] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 160.80001831054688, - 704.2998046875, - 213.00001525878906, - 724.6997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʬ«-Ç\u001c©FÈB6=©‰Ð�\u0019\u001c¤= ", - "origin": [ - 160.80001831054688, - 710.5997924804688 - ], - "bbox": [ - 160.80001831054688, - 704.2998046875, - 213.00001525878906, - 724.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 160.80001831054688, - 704.2998046875, - 213.00001525878906, - 724.6997680664062 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 82.20001220703125, - 717.7998046875, - 96.60000610351562, - 738.1997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 82.20001220703125, - 724.0997924804688 - ], - "bbox": [ - 82.20001220703125, - 717.7998046875, - 82.20001220703125, - 738.1997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#8", - "origin": [ - 82.20001220703125, - 724.0997924804688 - ], - "bbox": [ - 82.20001220703125, - 719.3997802734375, - 87.40000915527344, - 737.1997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000e8", - "origin": [ - 87.40000915527344, - 724.0997924804688 - ], - "bbox": [ - 87.40000915527344, - 717.7998046875, - 96.60000610351562, - 738.1997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20001220703125, - 717.7998046875, - 96.60000610351562, - 738.1997680664062 - ] - } - ] - } - ], - "images": [], - "tables": [ - { - "bbox": [ - 70.53629032258064, - 298.4000244140625, - 538.858870967742, - 408.9000549316406 - ], - "image_path": "tables/12_70_298_538_408.jpg" - } - ], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 80.13306451612902, - 639.0564102564102, - 94.5282258064516, - 648.6518518518518 - ], - "image_path": "equations_inline/12_80_639_94_648.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 57.699974060058594 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 530.7999877929688, - 35.29997634887695, - 535.3999633789062, - 57.699974060058594 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 80.69999694824219, - 595.0, - 185.50003051757812 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 205.8999481201172, - 595.0, - 239.99996948242188 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 274.0999755859375, - 595.0, - 452.0 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 636.0997924804688, - 595.0, - 656.499755859375 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 255.70001220703125, - 663.2998046875, - 422.6998596191406, - 683.6997680664062 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 717.7998046875, - 595.0, - 738.1997680664062 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgܝÁ\u001aöyžyØe¾\nØ!Á9ûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":eG", - "origin": [ - 530.7999877929688, - 43.5999755859375 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 72.49996948242188, - 80.69999694824219, - 536.2999877929688, - 101.0999984741211 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ó~6[\u001b75u\u0019\u001c«¬©�¤b©\u001a\u0019aÆ\n«-Ç9\u0019%5u6[§F\u001bª¤oÊY\u0019%ÿ/«Y¤\\5u6=¤b\u0018w6[\u001bu¨g6)57576[©?5HÊô¯", - "origin": [ - 72.49996948242188, - 87.0 - ], - "bbox": [ - 72.49996948242188, - 80.69999694824219, - 256.5999450683594, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49996948242188, - 80.69999694824219, - 256.5999450683594, - 101.0999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c¨g«Y¤7¤7«-£\u001c©Í¥/6e¤RÐ\u001a\u0019\u001cʬ«Y¤76=¤V¥/6", - "origin": [ - 258.79998779296875, - 87.0 - ], - "bbox": [ - 258.79998779296875, - 80.69999694824219, - 354.699951171875, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "C�", - "origin": [ - 354.699951171875, - 87.0 - ], - "bbox": [ - 354.699951171875, - 81.0, - 362.5999450683594, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001a©�¥/6\u000fçoè", - "origin": [ - 362.5999450683594, - 87.0 - ], - "bbox": [ - 362.5999450683594, - 80.69999694824219, - 398.699951171875, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½", - "origin": [ - 398.699951171875, - 87.0 - ], - "bbox": [ - 398.699951171875, - 81.0, - 403.99993896484375, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 403.99993896484375, - 87.0 - ], - "bbox": [ - 403.99993896484375, - 80.69999694824219, - 409.8999328613281, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$[", - "origin": [ - 409.8999328613281, - 87.0 - ], - "bbox": [ - 409.8999328613281, - 81.0, - 417.6999206542969, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "mçoè", - "origin": [ - 417.6999206542969, - 87.0 - ], - "bbox": [ - 417.6999206542969, - 80.69999694824219, - 431.0999450683594, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 431.0999450683594, - 87.0 - ], - "bbox": [ - 431.0999450683594, - 82.30000305175781, - 436.3999328613281, - 100.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì¢6)5!çoè", - "origin": [ - 436.3999328613281, - 87.0 - ], - "bbox": [ - 436.3999328613281, - 80.69999694824219, - 472.5999450683594, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 472.5999450683594, - 87.0 - ], - "bbox": [ - 472.5999450683594, - 82.30000305175781, - 477.8999328613281, - 100.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "+ì", - "origin": [ - 477.8999328613281, - 87.0 - ], - "bbox": [ - 477.8999328613281, - 80.69999694824219, - 483.7999267578125, - 101.0999984741211 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "$[", - "origin": [ - 483.7999267578125, - 87.0 - ], - "bbox": [ - 483.7999267578125, - 81.0, - 491.59991455078125, - 100.19999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "F¨#\u00194«Y¤V¦4¯", - "origin": [ - 491.59991455078125, - 87.0 - ], - "bbox": [ - 491.59991455078125, - 80.69999694824219, - 525.7999267578125, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.79998779296875, - 80.69999694824219, - 525.7999267578125, - 101.0999984741211 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6=¤�5", - "origin": [ - 528.0, - 87.0 - ], - "bbox": [ - 528.0, - 80.69999694824219, - 536.2999877929688, - 101.0999984741211 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 528.0, - 80.69999694824219, - 536.2999877929688, - 101.0999984741211 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 72.29998779296875, - 94.29997253417969, - 282.3999938964844, - 114.6999740600586 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¤7£\u001c§FÆ96[©?5 §\u001a©F6M¤�£9§F\u001bª¦)6B¥;¯", - "origin": [ - 72.29998779296875, - 100.5999755859375 - ], - "bbox": [ - 72.29998779296875, - 94.29997253417969, - 164.0, - 114.6999740600586 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29998779296875, - 94.29997253417969, - 164.0, - 114.6999740600586 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "6[\u001bu\u001b76=§F\u001bu¤ 6[51>a£9§É¥K¯", - "origin": [ - 166.19998168945312, - 100.5999755859375 - ], - "bbox": [ - 166.19998168945312, - 94.29997253417969, - 232.7999725341797, - 114.6999740600586 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 166.19998168945312, - 94.29997253417969, - 232.7999725341797, - 114.6999740600586 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0019\u001c¨¸ÐF«-Ç\u001c§F«¬57Èe¤[ ", - "origin": [ - 234.99998474121094, - 100.5999755859375 - ], - "bbox": [ - 234.99998474121094, - 94.29997253417969, - 282.3999938964844, - 114.6999740600586 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.99998474121094, - 94.29997253417969, - 282.3999938964844, - 114.6999740600586 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 291.3999938964844, - 94.29997253417969, - 458.0998840332031, - 114.6999740600586 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê;Æ%\u0019\u001c§/5R¥/£\u001c©�¦\u001e¨g«-6[§/ÿÉ\u001b76[Ôõ6[\u001bu¨g6[\u001bo¦)6e¤oÐ\u001a\u00194Ê-«Y¤�6e¤[ ", - "origin": [ - 291.3999938964844, - 100.5999755859375 - ], - "bbox": [ - 291.3999938964844, - 94.29997253417969, - 458.0998840332031, - 114.6999740600586 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 291.3999938964844, - 94.29997253417969, - 458.0998840332031, - 114.6999740600586 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 78.79999542236328, - 113.09996032714844, - 129.89999389648438, - 133.49996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u00194\u001bo6[ÿ\n6=¨g\u0018Fʬ6g8", - "origin": [ - 78.79999542236328, - 119.39996337890625 - ], - "bbox": [ - 78.79999542236328, - 113.09996032714844, - 129.89999389648438, - 133.49996948242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.79999542236328, - 113.09996032714844, - 129.89999389648438, - 133.49996948242188 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.5, - 137.90000915527344, - 161.89999389648438, - 158.30001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 144.20001220703125 - ], - "bbox": [ - 72.5, - 138.20001220703125, - 72.5, - 157.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè\nð", - "origin": [ - 72.5, - 144.20001220703125 - ], - "bbox": [ - 72.5, - 137.90000915527344, - 82.80000305175781, - 158.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š›", - "origin": [ - 82.80000305175781, - 144.20001220703125 - ], - "bbox": [ - 82.80000305175781, - 138.20001220703125, - 87.9000015258789, - 157.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ë", - "origin": [ - 87.9000015258789, - 144.20001220703125 - ], - "bbox": [ - 87.9000015258789, - 137.90000915527344, - 98.5999984741211, - 158.30001831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 137.90000915527344, - 98.5999984741211, - 158.30001831054688 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgºŠ»", - "origin": [ - 108.69999694824219, - 144.20001220703125 - ], - "bbox": [ - 108.69999694824219, - 138.20001220703125, - 119.39999389648438, - 157.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "->", - "origin": [ - 119.39999389648438, - 144.20001220703125 - ], - "bbox": [ - 119.39999389648438, - 139.50001525878906, - 124.69999694824219, - 157.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 124.69999694824219, - 144.20001220703125 - ], - "bbox": [ - 124.69999694824219, - 138.20001220703125, - 135.1999969482422, - 157.40000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$#/-$", - "origin": [ - 135.1999969482422, - 144.20001220703125 - ], - "bbox": [ - 135.1999969482422, - 139.50001525878906, - 157.09999084472656, - 157.30001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 157.09999084472656, - 144.20001220703125 - ], - "bbox": [ - 157.09999084472656, - 138.20001220703125, - 161.89999389648438, - 157.40000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.69999694824219, - 138.20001220703125, - 161.89999389648438, - 157.40000915527344 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 72.5, - 151.40000915527344, - 266.70001220703125, - 171.80001831054688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "݊¾", - "origin": [ - 72.5, - 157.70001220703125 - ], - "bbox": [ - 72.5, - 151.70001220703125, - 77.5999984741211, - 170.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ð", - "origin": [ - 77.5999984741211, - 157.70001220703125 - ], - "bbox": [ - 77.5999984741211, - 151.40000915527344, - 82.79999542236328, - 171.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#'", - "origin": [ - 82.79999542236328, - 157.70001220703125 - ], - "bbox": [ - 82.79999542236328, - 153.00001525878906, - 87.99999237060547, - 170.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè+é", - "origin": [ - 87.99999237060547, - 157.70001220703125 - ], - "bbox": [ - 87.99999237060547, - 151.40000915527344, - 99.19999694824219, - 171.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�;", - "origin": [ - 99.19999694824219, - 157.70001220703125 - ], - "bbox": [ - 99.19999694824219, - 153.00001525878906, - 104.19999694824219, - 170.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fœ\"䊾/ßg /žPßgáIŸkÆ\nÞKß", - "origin": [ - 104.19999694824219, - 157.70001220703125 - ], - "bbox": [ - 104.19999694824219, - 151.70001220703125, - 182.1999969482422, - 170.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 182.1999969482422, - 157.70001220703125 - ], - "bbox": [ - 182.1999969482422, - 153.00001525878906, - 187.3000030517578, - 170.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßcÀg´fÁHß/ÝH£Š¾", - "origin": [ - 187.3000030517578, - 157.70001220703125 - ], - "bbox": [ - 187.3000030517578, - 151.70001220703125, - 229.60000610351562, - 170.90000915527344 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ð", - "origin": [ - 229.60000610351562, - 157.70001220703125 - ], - "bbox": [ - 229.60000610351562, - 151.40000915527344, - 234.8000030517578, - 171.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-'", - "origin": [ - 234.8000030517578, - 157.70001220703125 - ], - "bbox": [ - 234.8000030517578, - 153.00001525878906, - 240.10000610351562, - 170.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nèwé", - "origin": [ - 240.10000610351562, - 157.70001220703125 - ], - "bbox": [ - 240.10000610351562, - 151.40000915527344, - 251.20001220703125, - 171.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�;", - "origin": [ - 251.20001220703125, - 157.70001220703125 - ], - "bbox": [ - 251.20001220703125, - 153.00001525878906, - 256.20001220703125, - 170.80001831054688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fœ\"ä", - "origin": [ - 256.20001220703125, - 157.70001220703125 - ], - "bbox": [ - 256.20001220703125, - 151.70001220703125, - 266.70001220703125, - 170.90000915527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 151.40000915527344, - 266.70001220703125, - 171.80001831054688 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 93.4000015258789, - 165.1000213623047, - 109.19999694824219, - 185.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.4000015258789, - 171.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 165.4000244140625, - 93.4000015258789, - 184.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.4000015258789, - 171.4000244140625 - ], - "bbox": [ - 93.4000015258789, - 165.1000213623047, - 98.4000015258789, - 185.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½gä", - "origin": [ - 98.4000015258789, - 171.4000244140625 - ], - "bbox": [ - 98.4000015258789, - 165.4000244140625, - 109.19999694824219, - 184.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.4000015258789, - 165.1000213623047, - 109.19999694824219, - 185.50003051757812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 114.4000015258789, - 178.6999969482422, - 292.6000061035156, - 199.10000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.4000015258789, - 185.0 - ], - "bbox": [ - 114.4000015258789, - 179.0, - 114.4000015258789, - 198.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 114.4000015258789, - 185.0 - ], - "bbox": [ - 114.4000015258789, - 178.6999969482422, - 119.4000015258789, - 199.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 119.4000015258789, - 185.0 - ], - "bbox": [ - 119.4000015258789, - 180.3000030517578, - 124.5999984741211, - 198.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "NÄ\nÁgžY¼HÞ", - "origin": [ - 124.5999984741211, - 185.0 - ], - "bbox": [ - 124.5999984741211, - 179.0, - 156.0, - 198.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 156.0, - 185.0 - ], - "bbox": [ - 156.0, - 180.3000030517578, - 161.5, - 198.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g FßFÞ/Ÿ\"ßF»gä", - "origin": [ - 161.5, - 185.0 - ], - "bbox": [ - 161.5, - 179.0, - 198.60000610351562, - 198.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�'", - "origin": [ - 198.60000610351562, - 185.0 - ], - "bbox": [ - 198.60000610351562, - 180.3000030517578, - 203.60000610351562, - 198.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»\"ß\\ÀEž", - "origin": [ - 203.60000610351562, - 185.0 - ], - "bbox": [ - 203.60000610351562, - 179.0, - 225.20001220703125, - 198.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 225.20001220703125, - 185.0 - ], - "bbox": [ - 225.20001220703125, - 180.3000030517578, - 230.00001525878906, - 198.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F»/ß", - "origin": [ - 230.00001525878906, - 185.0 - ], - "bbox": [ - 230.00001525878906, - 179.0, - 240.40000915527344, - 198.1999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.4000015258789, - 178.6999969482422, - 240.40000915527344, - 199.10000610351562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " FÄgáFß/ÝH£", - "origin": [ - 250.5, - 185.0 - ], - "bbox": [ - 250.5, - 179.0, - 276.70001220703125, - 198.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 276.70001220703125, - 185.0 - ], - "bbox": [ - 276.70001220703125, - 178.6999969482422, - 281.70001220703125, - 199.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 281.70001220703125, - 185.0 - ], - "bbox": [ - 281.70001220703125, - 180.3000030517578, - 287.0, - 198.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 287.0, - 185.0 - ], - "bbox": [ - 287.0, - 179.0, - 292.6000061035156, - 198.1999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 250.5, - 178.6999969482422, - 292.6000061035156, - 199.10000610351562 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 114.39999389648438, - 192.2999725341797, - 292.6000061035156, - 212.69998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.39999389648438, - 198.5999755859375 - ], - "bbox": [ - 114.39999389648438, - 192.5999755859375, - 114.39999389648438, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 114.39999389648438, - 198.5999755859375 - ], - "bbox": [ - 114.39999389648438, - 192.2999725341797, - 119.39999389648438, - 212.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 119.39999389648438, - 198.5999755859375 - ], - "bbox": [ - 119.39999389648438, - 193.8999786376953, - 124.59999084472656, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "NÄ\nÁgžY¼HÞ", - "origin": [ - 124.59999084472656, - 198.5999755859375 - ], - "bbox": [ - 124.59999084472656, - 192.5999755859375, - 156.0, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 156.0, - 198.5999755859375 - ], - "bbox": [ - 156.0, - 193.8999786376953, - 161.5, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g FßFÞ/Ÿ\"ßF»gä", - "origin": [ - 161.5, - 198.5999755859375 - ], - "bbox": [ - 161.5, - 192.5999755859375, - 198.60000610351562, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�:", - "origin": [ - 198.60000610351562, - 198.5999755859375 - ], - "bbox": [ - 198.60000610351562, - 193.8999786376953, - 203.60000610351562, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßFÆ", - "origin": [ - 203.60000610351562, - 198.5999755859375 - ], - "bbox": [ - 203.60000610351562, - 192.5999755859375, - 214.10000610351562, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#X", - "origin": [ - 214.10000610351562, - 198.5999755859375 - ], - "bbox": [ - 214.10000610351562, - 193.8999786376953, - 219.3000030517578, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011ž", - "origin": [ - 219.3000030517578, - 198.5999755859375 - ], - "bbox": [ - 219.3000030517578, - 192.5999755859375, - 225.1999969482422, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 225.1999969482422, - 198.5999755859375 - ], - "bbox": [ - 225.1999969482422, - 193.8999786376953, - 230.0, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cÀ�ß", - "origin": [ - 230.0, - 198.5999755859375 - ], - "bbox": [ - 230.0, - 192.5999755859375, - 240.40000915527344, - 211.7999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.39999389648438, - 192.2999725341797, - 240.40000915527344, - 212.69998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " FÄgáFß/ÝH£", - "origin": [ - 250.5, - 198.5999755859375 - ], - "bbox": [ - 250.5, - 192.5999755859375, - 276.70001220703125, - 211.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 276.70001220703125, - 198.5999755859375 - ], - "bbox": [ - 276.70001220703125, - 192.2999725341797, - 281.70001220703125, - 212.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 281.70001220703125, - 198.5999755859375 - ], - "bbox": [ - 281.70001220703125, - 193.8999786376953, - 287.0, - 211.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 287.0, - 198.5999755859375 - ], - "bbox": [ - 287.0, - 192.5999755859375, - 292.6000061035156, - 211.7999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 250.5, - 192.2999725341797, - 292.6000061035156, - 212.69998168945312 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 93.39999389648438, - 205.8999481201172, - 114.5, - 226.29995727539062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.39999389648438, - 212.199951171875 - ], - "bbox": [ - 93.39999389648438, - 206.199951171875, - 98.69999694824219, - 225.3999481201172 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 98.69999694824219, - 212.199951171875 - ], - "bbox": [ - 98.69999694824219, - 205.8999481201172, - 103.5999984741211, - 226.29995727539062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½gä", - "origin": [ - 103.5999984741211, - 212.199951171875 - ], - "bbox": [ - 103.5999984741211, - 206.199951171875, - 114.5, - 225.3999481201172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 205.8999481201172, - 114.5, - 226.29995727539062 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 93.39999389648438, - 219.59996032714844, - 109.19998931884766, - 239.99996948242188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.39999389648438, - 225.89996337890625 - ], - "bbox": [ - 93.39999389648438, - 219.89996337890625, - 93.39999389648438, - 239.09996032714844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.39999389648438, - 225.89996337890625 - ], - "bbox": [ - 93.39999389648438, - 219.59996032714844, - 98.39999389648438, - 239.99996948242188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½gä", - "origin": [ - 98.39999389648438, - 225.89996337890625 - ], - "bbox": [ - 98.39999389648438, - 219.89996337890625, - 109.19998931884766, - 239.09996032714844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 219.59996032714844, - 109.19998931884766, - 239.99996948242188 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 114.39999389648438, - 233.2999725341797, - 297.6999816894531, - 253.69998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.39999389648438, - 239.5999755859375 - ], - "bbox": [ - 114.39999389648438, - 233.5999755859375, - 114.39999389648438, - 252.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 114.39999389648438, - 239.5999755859375 - ], - "bbox": [ - 114.39999389648438, - 233.2999725341797, - 119.39999389648438, - 253.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 119.39999389648438, - 239.5999755859375 - ], - "bbox": [ - 119.39999389648438, - 234.8999786376953, - 124.59999084472656, - 252.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "NÄ\nÁgžY¼HÞ", - "origin": [ - 124.59999084472656, - 239.5999755859375 - ], - "bbox": [ - 124.59999084472656, - 233.5999755859375, - 156.0, - 252.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 156.0, - 239.5999755859375 - ], - "bbox": [ - 156.0, - 234.8999786376953, - 161.5, - 252.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g FßFÞ/Ÿ\"ßF»gä", - "origin": [ - 161.5, - 239.5999755859375 - ], - "bbox": [ - 161.5, - 233.5999755859375, - 198.60000610351562, - 252.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 198.60000610351562, - 239.5999755859375 - ], - "bbox": [ - 198.60000610351562, - 233.2999725341797, - 203.60000610351562, - 253.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»\"º\"žHá\nž", - "origin": [ - 203.60000610351562, - 239.5999755859375 - ], - "bbox": [ - 203.60000610351562, - 233.5999755859375, - 230.40000915527344, - 252.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 230.40000915527344, - 239.5999755859375 - ], - "bbox": [ - 230.40000915527344, - 234.8999786376953, - 235.20001220703125, - 252.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cÀ\u0011ßU FÄgá|ß/Ý\n£", - "origin": [ - 235.20001220703125, - 239.5999755859375 - ], - "bbox": [ - 235.20001220703125, - 233.5999755859375, - 281.8999938964844, - 252.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 281.8999938964844, - 239.5999755859375 - ], - "bbox": [ - 281.8999938964844, - 233.2999725341797, - 286.8999938964844, - 253.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 286.8999938964844, - 239.5999755859375 - ], - "bbox": [ - 286.8999938964844, - 234.8999786376953, - 292.1999816894531, - 252.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 292.1999816894531, - 239.5999755859375 - ], - "bbox": [ - 292.1999816894531, - 233.5999755859375, - 297.6999816894531, - 252.7999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.39999389648438, - 233.2999725341797, - 297.6999816894531, - 253.69998168945312 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 114.39999389648438, - 246.7999725341797, - 297.6999816894531, - 267.1999816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 114.39999389648438, - 253.0999755859375 - ], - "bbox": [ - 114.39999389648438, - 247.0999755859375, - 114.39999389648438, - 266.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 114.39999389648438, - 253.0999755859375 - ], - "bbox": [ - 114.39999389648438, - 246.7999725341797, - 119.39999389648438, - 267.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 119.39999389648438, - 253.0999755859375 - ], - "bbox": [ - 119.39999389648438, - 248.3999786376953, - 124.59999084472656, - 266.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "NÄ\nÁgžY¼HÞ", - "origin": [ - 124.59999084472656, - 253.0999755859375 - ], - "bbox": [ - 124.59999084472656, - 247.0999755859375, - 156.0, - 266.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 156.0, - 253.0999755859375 - ], - "bbox": [ - 156.0, - 248.3999786376953, - 161.5, - 266.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "g FßFÞ/Ÿ\"ßF»gä", - "origin": [ - 161.5, - 253.0999755859375 - ], - "bbox": [ - 161.5, - 247.0999755859375, - 198.60000610351562, - 266.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-‚", - "origin": [ - 198.60000610351562, - 253.0999755859375 - ], - "bbox": [ - 198.60000610351562, - 248.3999786376953, - 203.90000915527344, - 266.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|ÆgÄ|Ÿ\n»�ž", - "origin": [ - 203.90000915527344, - 253.0999755859375 - ], - "bbox": [ - 203.90000915527344, - 247.0999755859375, - 230.40000915527344, - 266.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 230.40000915527344, - 253.0999755859375 - ], - "bbox": [ - 230.40000915527344, - 248.3999786376953, - 235.20001220703125, - 266.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cÀ\u0011ßU FÄgá|ß/Ý\n£", - "origin": [ - 235.20001220703125, - 253.0999755859375 - ], - "bbox": [ - 235.20001220703125, - 247.0999755859375, - 281.8999938964844, - 266.29998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 281.8999938964844, - 253.0999755859375 - ], - "bbox": [ - 281.8999938964844, - 246.7999725341797, - 286.8999938964844, - 267.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 286.8999938964844, - 253.0999755859375 - ], - "bbox": [ - 286.8999938964844, - 248.3999786376953, - 292.1999816894531, - 266.1999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 292.1999816894531, - 253.0999755859375 - ], - "bbox": [ - 292.1999816894531, - 247.0999755859375, - 297.6999816894531, - 266.29998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.39999389648438, - 246.7999725341797, - 297.6999816894531, - 267.1999816894531 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 93.39999389648438, - 260.5, - 114.5, - 280.8999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 93.39999389648438, - 266.79998779296875 - ], - "bbox": [ - 93.39999389648438, - 260.79998779296875, - 98.69999694824219, - 280.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 98.69999694824219, - 266.79998779296875 - ], - "bbox": [ - 98.69999694824219, - 260.5, - 103.5999984741211, - 280.8999938964844 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½gä", - "origin": [ - 103.5999984741211, - 266.79998779296875 - ], - "bbox": [ - 103.5999984741211, - 260.79998779296875, - 114.5, - 280.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.39999389648438, - 260.5, - 114.5, - 280.8999938964844 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 72.49999237060547, - 274.0999755859375, - 109.49998474121094, - 294.4999694824219 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 72.49999237060547, - 280.39996337890625 - ], - "bbox": [ - 72.49999237060547, - 274.39996337890625, - 77.79999542236328, - 293.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè?ð", - "origin": [ - 77.79999542236328, - 280.39996337890625 - ], - "bbox": [ - 77.79999542236328, - 274.0999755859375, - 87.99999237060547, - 294.4999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H›", - "origin": [ - 87.99999237060547, - 280.39996337890625 - ], - "bbox": [ - 87.99999237060547, - 274.39996337890625, - 93.19998931884766, - 293.5999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ë", - "origin": [ - 93.19998931884766, - 280.39996337890625 - ], - "bbox": [ - 93.19998931884766, - 274.0999755859375, - 103.89998626708984, - 294.4999694824219 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 103.89998626708984, - 280.39996337890625 - ], - "bbox": [ - 103.89998626708984, - 274.39996337890625, - 109.49998474121094, - 293.5999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.49999237060547, - 274.0999755859375, - 109.49998474121094, - 294.4999694824219 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 72.30000305175781, - 298.4000244140625, - 104.20000457763672, - 318.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 304.70001220703125 - ], - "bbox": [ - 72.30000305175781, - 298.4000244140625, - 104.20000457763672, - 318.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 298.4000244140625, - 104.20000457763672, - 318.8000183105469 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 124.5999984741211, - 321.5, - 219.1999969482422, - 340.70001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¾/ßg /ž(ßgáYŸ«ÆHÞ,ß", - "origin": [ - 124.5999984741211, - 327.5 - ], - "bbox": [ - 124.5999984741211, - 321.5, - 187.5, - 340.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 187.5, - 327.5 - ], - "bbox": [ - 187.5, - 322.79998779296875, - 192.60000610351562, - 340.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßYÀg´fÁHß", - "origin": [ - 192.60000610351562, - 327.5 - ], - "bbox": [ - 192.60000610351562, - 321.5, - 219.1999969482422, - 340.70001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.5999984741211, - 321.5, - 219.1999969482422, - 340.70001220703125 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 83.19999694824219, - 335.1000061035156, - 267.0000305175781, - 354.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿", - "origin": [ - 83.19999694824219, - 341.1000061035156 - ], - "bbox": [ - 83.19999694824219, - 335.1000061035156, - 267.0000305175781, - 354.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.19999694824219, - 335.1000061035156, - 267.0000305175781, - 354.3000183105469 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 93.0999984741211, - 348.8000183105469, - 156.20001220703125, - 368.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "'", - "origin": [ - 93.0999984741211, - 354.8000183105469 - ], - "bbox": [ - 93.0999984741211, - 350.1000061035156, - 93.0999984741211, - 367.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»/ßYÀEž", - "origin": [ - 93.0999984741211, - 354.8000183105469 - ], - "bbox": [ - 93.0999984741211, - 348.8000183105469, - 114.80000305175781, - 368.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 114.80000305175781, - 354.8000183105469 - ], - "bbox": [ - 114.80000305175781, - 350.1000061035156, - 119.70000457763672, - 367.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š»/ß", - "origin": [ - 119.70000457763672, - 354.8000183105469 - ], - "bbox": [ - 119.70000457763672, - 348.8000183105469, - 130.1999969482422, - 368.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.0999984741211, - 348.8000183105469, - 130.1999969482422, - 368.0000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " FÄgáFß", - "origin": [ - 140.60000610351562, - 354.8000183105469 - ], - "bbox": [ - 140.60000610351562, - 348.8000183105469, - 156.20001220703125, - 368.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.60000610351562, - 348.8000183105469, - 156.20001220703125, - 368.0000305175781 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 187.3000030517578, - 348.8000183105469, - 250.40000915527344, - 368.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ":", - "origin": [ - 187.3000030517578, - 354.8000183105469 - ], - "bbox": [ - 187.3000030517578, - 350.1000061035156, - 187.3000030517578, - 367.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß|Æ", - "origin": [ - 187.3000030517578, - 354.8000183105469 - ], - "bbox": [ - 187.3000030517578, - 348.8000183105469, - 197.6999969482422, - 368.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1X", - "origin": [ - 197.6999969482422, - 354.8000183105469 - ], - "bbox": [ - 197.6999969482422, - 350.1000061035156, - 203.09999084472656, - 367.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011ž", - "origin": [ - 203.09999084472656, - 354.8000183105469 - ], - "bbox": [ - 203.09999084472656, - 348.8000183105469, - 208.99998474121094, - 368.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 208.99998474121094, - 354.8000183105469 - ], - "bbox": [ - 208.99998474121094, - 350.1000061035156, - 213.8999786376953, - 367.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÀ�ß", - "origin": [ - 213.8999786376953, - 354.8000183105469 - ], - "bbox": [ - 213.8999786376953, - 348.8000183105469, - 224.3999786376953, - 368.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.3000030517578, - 348.8000183105469, - 224.3999786376953, - 368.0000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " FÄgáFß", - "origin": [ - 234.8000030517578, - 354.8000183105469 - ], - "bbox": [ - 234.8000030517578, - 348.8000183105469, - 250.40000915527344, - 368.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.8000030517578, - 348.8000183105469, - 250.40000915527344, - 368.0000305175781 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 83.19999694824219, - 362.4000244140625, - 267.0000305175781, - 381.60003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿", - "origin": [ - 83.19999694824219, - 368.4000244140625 - ], - "bbox": [ - 83.19999694824219, - 362.4000244140625, - 267.0000305175781, - 381.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.19999694824219, - 362.4000244140625, - 267.0000305175781, - 381.60003662109375 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 93.0999984741211, - 375.7000427246094, - 161.39999389648438, - 396.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 93.0999984741211, - 382.0000305175781 - ], - "bbox": [ - 93.0999984741211, - 375.7000427246094, - 93.0999984741211, - 396.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»/ºfžHá/ž", - "origin": [ - 93.0999984741211, - 382.0000305175781 - ], - "bbox": [ - 93.0999984741211, - 376.0000305175781, - 120.0999984741211, - 395.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 120.0999984741211, - 382.0000305175781 - ], - "bbox": [ - 120.0999984741211, - 377.3000183105469, - 125.0, - 395.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cÀ\u0011ß", - "origin": [ - 125.0, - 382.0000305175781 - ], - "bbox": [ - 125.0, - 376.0000305175781, - 135.5, - 395.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.0999984741211, - 375.7000427246094, - 135.5, - 396.10003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " FÄgá|ß", - "origin": [ - 145.89999389648438, - 382.0000305175781 - ], - "bbox": [ - 145.89999389648438, - 376.0000305175781, - 161.39999389648438, - 395.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 145.89999389648438, - 376.0000305175781, - 161.39999389648438, - 395.2000427246094 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 187.59999084472656, - 376.0000305175781, - 255.49998474121094, - 395.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "‚", - "origin": [ - 187.59999084472656, - 382.0000305175781 - ], - "bbox": [ - 187.59999084472656, - 377.3000183105469, - 187.59999084472656, - 395.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Æ\"ĊŸ\n»\u0011ž", - "origin": [ - 187.59999084472656, - 382.0000305175781 - ], - "bbox": [ - 187.59999084472656, - 376.0000305175781, - 214.29998779296875, - 395.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 214.29998779296875, - 382.0000305175781 - ], - "bbox": [ - 214.29998779296875, - 377.3000183105469, - 219.19998168945312, - 395.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cÀ\u0011ß« FÄ\"áFß", - "origin": [ - 219.19998168945312, - 382.0000305175781 - ], - "bbox": [ - 219.19998168945312, - 376.0000305175781, - 255.49998474121094, - 395.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.59999084472656, - 376.0000305175781, - 255.49998474121094, - 395.2000427246094 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 83.19996643066406, - 389.7000427246094, - 267.0, - 408.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿", - "origin": [ - 83.19996643066406, - 395.7000427246094 - ], - "bbox": [ - 83.19996643066406, - 389.7000427246094, - 267.0, - 408.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.19996643066406, - 389.7000427246094, - 267.0, - 408.9000549316406 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 72.30000305175781, - 412.9000244140625, - 227.6000213623047, - 433.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¶K6e¤o¥/È)5ª\u00194«-Ê-¤o¥F6M²9§\u001a6[ÊY²9§\u001a6=¤s\u0018\u001a\u0019\u001c\u001bu\u0019\u001c¨^á[57\u001bu6=¤V8", - "origin": [ - 72.30000305175781, - 419.20001220703125 - ], - "bbox": [ - 72.30000305175781, - 412.9000244140625, - 227.6000213623047, - 433.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 412.9000244140625, - 227.6000213623047, - 433.3000183105469 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 82.19999694824219, - 431.6000061035156, - 112.29998779296875, - 452.0 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è?ð", - "origin": [ - 82.19999694824219, - 437.8999938964844 - ], - "bbox": [ - 82.19999694824219, - 431.6000061035156, - 87.39999389648438, - 452.0 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H›", - "origin": [ - 87.39999389648438, - 437.8999938964844 - ], - "bbox": [ - 87.39999389648438, - 431.8999938964844, - 92.59999084472656, - 451.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ëÝ8", - "origin": [ - 92.59999084472656, - 437.8999938964844 - ], - "bbox": [ - 92.59999084472656, - 431.6000061035156, - 112.29998779296875, - 452.0 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.19999694824219, - 431.6000061035156, - 112.29998779296875, - 452.0 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 92.5999984741211, - 445.29998779296875, - 290.7999267578125, - 465.6999816894531 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "áYÆFÀ\nÀ�Ċ»\nã", - "origin": [ - 92.5999984741211, - 451.5999755859375 - ], - "bbox": [ - 92.5999984741211, - 445.5999755859375, - 123.80000305175781, - 464.79998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8", - "origin": [ - 123.80000305175781, - 451.5999755859375 - ], - "bbox": [ - 123.80000305175781, - 445.29998779296875, - 132.6999969482422, - 465.6999816894531 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"�", - "origin": [ - 132.6999969482422, - 451.5999755859375 - ], - "bbox": [ - 132.6999969482422, - 445.5999755859375, - 138.1999969482422, - 464.79998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "oÈ=¤7§F¨gÈM¥/6M¦[6H²?§F6M¦[£\u001c©?57«-6[©?5oÊY\u0019¸5ª\u00194ÐFÊ-6\u001c ", - "origin": [ - 138.1999969482422, - 451.5999755859375 - ], - "bbox": [ - 138.1999969482422, - 445.29998779296875, - 290.7999267578125, - 465.6999816894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.5999984741211, - 445.29998779296875, - 290.7999267578125, - 465.6999816894531 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 92.0, - 458.89996337890625, - 373.29998779296875, - 479.2999572753906 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶.ž", - "origin": [ - 92.0, - 465.199951171875 - ], - "bbox": [ - 92.0, - 459.199951171875, - 98.0, - 478.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 98.0, - 465.199951171875 - ], - "bbox": [ - 98.0, - 460.49993896484375, - 102.80000305175781, - 478.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸŠ¡", - "origin": [ - 102.80000305175781, - 465.199951171875 - ], - "bbox": [ - 102.80000305175781, - 459.199951171875, - 113.0999984741211, - 478.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8F¶\u00194\u001buÇ\u001c6=§F\u001bo¥/§É5u\u00194Ð\u001aʬ6e\u00194§", - "origin": [ - 113.0999984741211, - 465.199951171875 - ], - "bbox": [ - 113.0999984741211, - 458.89996337890625, - 205.99998474121094, - 479.2999572753906 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=[", - "origin": [ - 205.99998474121094, - 465.199951171875 - ], - "bbox": [ - 205.99998474121094, - 459.199951171875, - 212.09999084472656, - 478.39996337890625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "/6[ÿ\n\u0018\u001a\u001b7«-¨gÈV6=©…\u0018F«zÿ/6=Ê;£\u001c§…6[©É\u0018�£9§F\u001bª¦)6[©?5ª\u00194Ç\u001c69 ", - "origin": [ - 212.09999084472656, - 465.199951171875 - ], - "bbox": [ - 212.09999084472656, - 458.89996337890625, - 373.29998779296875, - 479.2999572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.0, - 458.89996337890625, - 373.29998779296875, - 479.2999572753906 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 92.30000305175781, - 472.49993896484375, - 390.39990234375, - 492.8999328613281 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä/ÁgžY¼ŠÞ", - "origin": [ - 92.30000305175781, - 478.7999267578125 - ], - "bbox": [ - 92.30000305175781, - 472.7999267578125, - 113.0999984741211, - 491.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 113.0999984741211, - 478.7999267578125 - ], - "bbox": [ - 113.0999984741211, - 474.09991455078125, - 118.5999984741211, - 491.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHßHàŠŸ", - "origin": [ - 118.5999984741211, - 478.7999267578125 - ], - "bbox": [ - 118.5999984741211, - 472.7999267578125, - 139.60000610351562, - 491.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 139.60000610351562, - 478.7999267578125 - ], - "bbox": [ - 139.60000610351562, - 474.09991455078125, - 145.70001220703125, - 491.8999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.30000305175781, - 472.7999267578125, - 145.70001220703125, - 491.99993896484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fß|Þ/Ÿ\"ߊ»", - "origin": [ - 148.20001220703125, - 478.7999267578125 - ], - "bbox": [ - 148.20001220703125, - 472.7999267578125, - 174.10000610351562, - 491.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 174.10000610351562, - 478.7999267578125 - ], - "bbox": [ - 174.10000610351562, - 474.09991455078125, - 180.0, - 491.8999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 148.20001220703125, - 472.7999267578125, - 180.0, - 491.99993896484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»\u0011žY¼F¡/Ÿ", - "origin": [ - 182.00001525878906, - 478.7999267578125 - ], - "bbox": [ - 182.00001525878906, - 472.7999267578125, - 203.0, - 491.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%*", - "origin": [ - 203.0, - 478.7999267578125 - ], - "bbox": [ - 203.0, - 474.09991455078125, - 209.0, - 491.8999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.00001525878906, - 472.7999267578125, - 209.0, - 491.99993896484375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 211.1000213623047, - 478.7999267578125 - ], - "bbox": [ - 211.1000213623047, - 474.09991455078125, - 211.1000213623047, - 491.8999328613281 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÆ�áYŸ\u0011žYàHã", - "origin": [ - 211.1000213623047, - 478.7999267578125 - ], - "bbox": [ - 211.1000213623047, - 472.7999267578125, - 242.40000915527344, - 491.99993896484375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "B˝£?¤�«¬57«-£\u001c©…¥/§É576[ÿ\n576M¥F\u0019\u001c©\u001a¤sÊ-\u0019g¦[6[Ê-ʬ§FÊ-6\u001c ", - "origin": [ - 242.40000915527344, - 478.7999267578125 - ], - "bbox": [ - 242.40000915527344, - 472.49993896484375, - 390.39990234375, - 492.8999328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.1000213623047, - 472.49993896484375, - 390.39990234375, - 492.8999328613281 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 92.00001525878906, - 486.1999206542969, - 127.40001678466797, - 506.59991455078125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgºŠ»", - "origin": [ - 92.00001525878906, - 492.4999084472656 - ], - "bbox": [ - 92.00001525878906, - 486.4999084472656, - 102.70001220703125, - 505.6999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 102.70001220703125, - 492.4999084472656 - ], - "bbox": [ - 102.70001220703125, - 487.7998962402344, - 108.10001373291016, - 505.59991455078125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nߊ»", - "origin": [ - 108.10001373291016, - 492.4999084472656 - ], - "bbox": [ - 108.10001373291016, - 486.4999084472656, - 118.50001525878906, - 505.6999206542969 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8", - "origin": [ - 118.50001525878906, - 492.4999084472656 - ], - "bbox": [ - 118.50001525878906, - 486.1999206542969, - 127.40001678466797, - 506.59991455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.00001525878906, - 486.1999206542969, - 127.40001678466797, - 506.59991455078125 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 139.6000213623047, - 486.1999206542969, - 246.39999389648438, - 506.59991455078125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u0018�\u00194«Y¤7¤76[§F\u001bb¥F§‰5u\u001bu\u0019\u001c«z5o6=©É\u0018\u001a«zÿ/6[Ê", - "origin": [ - 139.6000213623047, - 492.4999084472656 - ], - "bbox": [ - 139.6000213623047, - 486.1999206542969, - 246.39999389648438, - 506.59991455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.6000213623047, - 486.1999206542969, - 246.39999389648438, - 506.59991455078125 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 92.20001220703125, - 499.7998962402344, - 532.4000244140625, - 520.1998901367188 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "àH»\"ÄYÀ�ß", - "origin": [ - 92.20001220703125, - 506.0998840332031 - ], - "bbox": [ - 92.20001220703125, - 500.0998840332031, - 113.40000915527344, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#\"", - "origin": [ - 113.40000915527344, - 506.0998840332031 - ], - "bbox": [ - 113.40000915527344, - 501.3998718261719, - 118.60000610351562, - 519.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hâ\"ºfž", - "origin": [ - 118.60000610351562, - 506.0998840332031 - ], - "bbox": [ - 118.60000610351562, - 500.0998840332031, - 135.0, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>%*", - "origin": [ - 135.0, - 506.0998840332031 - ], - "bbox": [ - 135.0, - 501.3998718261719, - 145.6999969482422, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.20001220703125, - 500.0998840332031, - 145.6999969482422, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÄFÅ\"ºŠâ\"ß", - "origin": [ - 147.90000915527344, - 506.0998840332031 - ], - "bbox": [ - 147.90000915527344, - 500.0998840332031, - 169.00001525878906, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 169.00001525878906, - 506.0998840332031 - ], - "bbox": [ - 169.00001525878906, - 501.3998718261719, - 174.90000915527344, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.90000915527344, - 500.0998840332031, - 174.90000915527344, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\"ß/ÁHºI¶", - "origin": [ - 176.70001220703125, - 506.0998840332031 - ], - "bbox": [ - 176.70001220703125, - 500.0998840332031, - 197.60000610351562, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S*", - "origin": [ - 197.60000610351562, - 506.0998840332031 - ], - "bbox": [ - 197.60000610351562, - 501.3998718261719, - 203.8000030517578, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 176.70001220703125, - 500.0998840332031, - 203.8000030517578, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡fá/ž", - "origin": [ - 205.70001220703125, - 506.0998840332031 - ], - "bbox": [ - 205.70001220703125, - 500.0998840332031, - 216.8000030517578, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>", - "origin": [ - 216.8000030517578, - 506.0998840332031 - ], - "bbox": [ - 216.8000030517578, - 501.3998718261719, - 221.5, - 519.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nßgá", - "origin": [ - 221.5, - 506.0998840332031 - ], - "bbox": [ - 221.5, - 500.0998840332031, - 232.40000915527344, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e*", - "origin": [ - 232.40000915527344, - 506.0998840332031 - ], - "bbox": [ - 232.40000915527344, - 501.3998718261719, - 237.90000915527344, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 205.70001220703125, - 500.0998840332031, - 237.90000915527344, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Á|¡�á", - "origin": [ - 240.10000610351562, - 506.0998840332031 - ], - "bbox": [ - 240.10000610351562, - 500.0998840332031, - 250.8000030517578, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "<*", - "origin": [ - 250.8000030517578, - 506.0998840332031 - ], - "bbox": [ - 250.8000030517578, - 501.3998718261719, - 256.3999938964844, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 240.10000610351562, - 500.0998840332031, - 256.3999938964844, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»H¡�á", - "origin": [ - 258.3000183105469, - 506.0998840332031 - ], - "bbox": [ - 258.3000183105469, - 500.0998840332031, - 269.3000183105469, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e*", - "origin": [ - 269.3000183105469, - 506.0998840332031 - ], - "bbox": [ - 269.3000183105469, - 501.3998718261719, - 274.8000183105469, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.3000183105469, - 500.0998840332031, - 274.8000183105469, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "âfá\nž", - "origin": [ - 276.8000183105469, - 506.0998840332031 - ], - "bbox": [ - 276.8000183105469, - 500.0998840332031, - 287.8000183105469, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 287.8000183105469, - 506.0998840332031 - ], - "bbox": [ - 287.8000183105469, - 501.3998718261719, - 292.6000061035156, - 519.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nßgá", - "origin": [ - 292.6000061035156, - 506.0998840332031 - ], - "bbox": [ - 292.6000061035156, - 500.0998840332031, - 303.5, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1*", - "origin": [ - 303.5, - 506.0998840332031 - ], - "bbox": [ - 303.5, - 501.3998718261719, - 308.8999938964844, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.8000183105469, - 500.0998840332031, - 308.8999938964844, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ågº", - "origin": [ - 310.8000183105469, - 506.0998840332031 - ], - "bbox": [ - 310.8000183105469, - 500.0998840332031, - 316.4000244140625, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�X&*", - "origin": [ - 316.4000244140625, - 506.0998840332031 - ], - "bbox": [ - 316.4000244140625, - 501.3998718261719, - 327.4000244140625, - 519.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 310.8000183105469, - 500.0998840332031, - 327.4000244140625, - 519.2998657226562 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Å\"ºF»", - "origin": [ - 329.3000183105469, - 506.0998840332031 - ], - "bbox": [ - 329.3000183105469, - 500.0998840332031, - 339.8000183105469, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 339.8000183105469, - 506.0998840332031 - ], - "bbox": [ - 339.8000183105469, - 501.3998718261719, - 345.20001220703125, - 519.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Hߊ»", - "origin": [ - 345.20001220703125, - 506.0998840332031 - ], - "bbox": [ - 345.20001220703125, - 500.0998840332031, - 355.5000305175781, - 519.2998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#8\u001a3\u001eÈ)5u6[\u001bu¨g«¬©F6M²?§F6=Ê-¤sÐw£\u001c\u001bª¥F¤o¤76[\u001bu£\u001c©?5sÆ?«Y¤7«¬ÐFÊ-6=¤= ", - "origin": [ - 355.5000305175781, - 506.0998840332031 - ], - "bbox": [ - 355.5000305175781, - 499.7998962402344, - 532.4000244140625, - 520.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.3000183105469, - 499.7998962402344, - 532.4000244140625, - 520.1998901367188 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 102.10000610351562, - 513.4998779296875, - 213.300048828125, - 533.8998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â\"ºgž", - "origin": [ - 102.10000610351562, - 519.7998657226562 - ], - "bbox": [ - 102.10000610351562, - 513.7998657226562, - 113.20000457763672, - 532.9998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 113.20000457763672, - 519.7998657226562 - ], - "bbox": [ - 113.20000457763672, - 515.099853515625, - 118.00000762939453, - 532.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8\u001a\u0019\u001c§\u001a¦)§\u001a©‰Ðw£\u001c\u001bª¥\u000fÆ\n«Y¤�«-ÐFÊ-6", - "origin": [ - 118.00000762939453, - 519.7998657226562 - ], - "bbox": [ - 118.00000762939453, - 513.4998779296875, - 208.300048828125, - 533.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 208.300048828125, - 519.7998657226562 - ], - "bbox": [ - 208.300048828125, - 513.7998657226562, - 213.300048828125, - 532.9998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.10000610351562, - 513.4998779296875, - 213.300048828125, - 533.8998413085938 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 102.30001068115234, - 526.9998779296875, - 222.90000915527344, - 547.3998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÄFÅ\"ºŠâ\"ß", - "origin": [ - 102.30001068115234, - 533.2998657226562 - ], - "bbox": [ - 102.30001068115234, - 527.2998657226562, - 123.40000915527344, - 546.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É8/Ê-6Bþ\u001a\u00194§/5b§\u001a©F«-²?§F6=¨g6[©?5", - "origin": [ - 123.40000915527344, - 533.2998657226562 - ], - "bbox": [ - 123.40000915527344, - 526.9998779296875, - 218.40000915527344, - 547.3998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 218.40000915527344, - 533.2998657226562 - ], - "bbox": [ - 218.40000915527344, - 527.2998657226562, - 222.90000915527344, - 546.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.30001068115234, - 526.9998779296875, - 222.90000915527344, - 547.3998413085938 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 102.00000762939453, - 540.6998901367188, - 217.4000244140625, - 561.099853515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ågß\nÁHºF¶", - "origin": [ - 102.00000762939453, - 546.9998779296875 - ], - "bbox": [ - 102.00000762939453, - 540.9998779296875, - 123.10000610351562, - 560.1998901367188 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8/Ê-6BÐ\u001a\u0019\u001c¤s§F©\u001a«-²?§F6=¨^6=©?5", - "origin": [ - 123.10000610351562, - 546.9998779296875 - ], - "bbox": [ - 123.10000610351562, - 540.6998901367188, - 212.9000244140625, - 561.099853515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 212.9000244140625, - 546.9998779296875 - ], - "bbox": [ - 212.9000244140625, - 540.9998779296875, - 217.4000244140625, - 560.1998901367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.00000762939453, - 540.6998901367188, - 217.4000244140625, - 561.099853515625 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 102.00000762939453, - 554.2998657226562, - 208.60000610351562, - 574.6998291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡\u0011á\nž", - "origin": [ - 102.00000762939453, - 560.599853515625 - ], - "bbox": [ - 102.00000762939453, - 554.599853515625, - 113.20001220703125, - 573.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 113.20001220703125, - 560.599853515625 - ], - "bbox": [ - 113.20001220703125, - 555.8998413085938, - 118.00001525878906, - 573.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ß", - "origin": [ - 118.00001525878906, - 560.599853515625 - ], - "bbox": [ - 118.00001525878906, - 554.599853515625, - 123.40001678466797, - 573.7998657226562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "É8/Ê-6Bþ\u001a\u00194§/5b6[5oʬ6BÐ\u001a\u00199¤", - "origin": [ - 123.40001678466797, - 560.599853515625 - ], - "bbox": [ - 123.40001678466797, - 554.2998657226562, - 204.20001220703125, - 574.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "v[", - "origin": [ - 204.20001220703125, - 560.599853515625 - ], - "bbox": [ - 204.20001220703125, - 554.599853515625, - 208.60000610351562, - 573.7998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.00000762939453, - 554.2998657226562, - 208.60000610351562, - 574.6998291015625 - ] - } - ] - }, - { - "number": 57, - "type": 0, - "bbox": [ - 102.40000915527344, - 567.8998413085938, - 189.09999084472656, - 588.2998046875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Á|¡�á", - "origin": [ - 102.40000915527344, - 574.1998291015625 - ], - "bbox": [ - 102.40000915527344, - 568.1998291015625, - 113.10001373291016, - 587.3998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c8\u001aʬ6M¦[£457ÈHÇ?\u00194§\u001a¦ªþF6", - "origin": [ - 113.10001373291016, - 574.1998291015625 - ], - "bbox": [ - 113.10001373291016, - 567.8998413085938, - 183.99998474121094, - 588.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š[", - "origin": [ - 183.99998474121094, - 574.1998291015625 - ], - "bbox": [ - 183.99998474121094, - 568.1998291015625, - 189.09999084472656, - 587.3998413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.40000915527344, - 567.8998413085938, - 189.09999084472656, - 588.2998046875 - ] - } - ] - }, - { - "number": 59, - "type": 0, - "bbox": [ - 102.10000610351562, - 581.5997924804688, - 180.3999786376953, - 601.999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»H¡�á", - "origin": [ - 102.10000610351562, - 587.8997802734375 - ], - "bbox": [ - 102.10000610351562, - 581.8997802734375, - 113.10000610351562, - 601.0997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "c8\u001aʬ6M¦[£457ÈB¥/\u001bu£\u001c«¬5", - "origin": [ - 113.10000610351562, - 587.8997802734375 - ], - "bbox": [ - 113.10000610351562, - 581.5997924804688, - 175.8999786376953, - 601.999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 175.8999786376953, - 587.8997802734375 - ], - "bbox": [ - 175.8999786376953, - 581.8997802734375, - 180.3999786376953, - 601.0997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.10000610351562, - 581.5997924804688, - 180.3999786376953, - 601.999755859375 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 102.10000610351562, - 595.1998291015625, - 272.1999816894531, - 615.5997924804688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â�á\nž", - "origin": [ - 102.10000610351562, - 601.4998168945312 - ], - "bbox": [ - 102.10000610351562, - 595.4998168945312, - 113.20001220703125, - 614.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�>", - "origin": [ - 113.20001220703125, - 601.4998168945312 - ], - "bbox": [ - 113.20001220703125, - 596.7998046875, - 118.00001525878906, - 614.5997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßgá", - "origin": [ - 118.00001525878906, - 601.4998168945312 - ], - "bbox": [ - 118.00001525878906, - 595.4998168945312, - 129.00001525878906, - 614.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#8Fʬ6B¦[£457ÈBÇ?\u00194§\u001a¦ªþ\u001a6\u001e6[5bʬ6M¦[£457ÈB¥/\u001bu£\u001c«¬5", - "origin": [ - 129.00001525878906, - 601.4998168945312 - ], - "bbox": [ - 129.00001525878906, - 595.1998291015625, - 267.6999816894531, - 615.5997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 267.6999816894531, - 601.4998168945312 - ], - "bbox": [ - 267.6999816894531, - 595.4998168945312, - 272.1999816894531, - 614.6998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.10000610351562, - 595.1998291015625, - 272.1999816894531, - 615.5997924804688 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 102.00000762939453, - 608.8998413085938, - 213.40000915527344, - 629.2998046875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgºF»", - "origin": [ - 102.00000762939453, - 615.1998291015625 - ], - "bbox": [ - 102.00000762939453, - 609.1998291015625, - 112.60000610351562, - 628.3998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 112.60000610351562, - 615.1998291015625 - ], - "bbox": [ - 112.60000610351562, - 610.4998168945312, - 118.00000762939453, - 628.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 118.00000762939453, - 615.1998291015625 - ], - "bbox": [ - 118.00000762939453, - 609.1998291015625, - 128.50001525878906, - 628.3998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8Fʬ6e¤o²?§\u001a\u0019%5u\u001b76HÐw£\u001c\u001bª¥F¤[ ", - "origin": [ - 128.50001525878906, - 615.1998291015625 - ], - "bbox": [ - 128.50001525878906, - 608.8998413085938, - 213.40000915527344, - 629.2998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.00000762939453, - 608.8998413085938, - 213.40000915527344, - 629.2998046875 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 92.60000610351562, - 622.3998413085938, - 263.6999816894531, - 642.7998046875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fß/Á\nÁ/áY´gÄg /ž\\Þ/¼", - "origin": [ - 92.60000610351562, - 628.6998291015625 - ], - "bbox": [ - 92.60000610351562, - 622.6998291015625, - 144.89999389648438, - 641.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "‰8", - "origin": [ - 144.89999389648438, - 628.6998291015625 - ], - "bbox": [ - 144.89999389648438, - 622.3998413085938, - 153.59999084472656, - 642.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"_", - "origin": [ - 153.59999084472656, - 628.6998291015625 - ], - "bbox": [ - 153.59999084472656, - 622.6998291015625, - 159.09999084472656, - 641.8998413085938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "פ7\u0018\u001a\u0019\u001c¦[6V6=©?57\u001bu6VÊ-6=¤o¦[6[Ê-ʬ§\u001aʬ6e¤[ ", - "origin": [ - 159.09999084472656, - 628.6998291015625 - ], - "bbox": [ - 159.09999084472656, - 622.3998413085938, - 263.6999816894531, - 642.7998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.60000610351562, - 622.3998413085938, - 263.6999816894531, - 642.7998046875 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 82.20000457763672, - 636.0997924804688, - 96.60000610351562, - 656.499755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 82.20000457763672, - 642.3997802734375 - ], - "bbox": [ - 82.20000457763672, - 636.0997924804688, - 82.20000457763672, - 656.499755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H½", - "origin": [ - 82.20000457763672, - 642.3997802734375 - ], - "bbox": [ - 82.20000457763672, - 636.3997802734375, - 87.4000015258789, - 655.5997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000e8", - "origin": [ - 87.4000015258789, - 642.3997802734375 - ], - "bbox": [ - 87.4000015258789, - 636.0997924804688, - 96.60000610351562, - 656.499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20000457763672, - 636.0997924804688, - 96.60000610351562, - 656.499755859375 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 92.30001068115234, - 649.7998046875, - 396.6000061035156, - 670.1997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä/ÁgžY¼ŠÞ", - "origin": [ - 92.30001068115234, - 656.0997924804688 - ], - "bbox": [ - 92.30001068115234, - 650.0997924804688, - 113.10000610351562, - 669.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 113.10000610351562, - 656.0997924804688 - ], - "bbox": [ - 113.10000610351562, - 651.3997802734375, - 118.60000610351562, - 669.1997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHßHàŠŸ", - "origin": [ - 118.60000610351562, - 656.0997924804688 - ], - "bbox": [ - 118.60000610351562, - 650.0997924804688, - 139.60000610351562, - 669.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 139.60000610351562, - 656.0997924804688 - ], - "bbox": [ - 139.60000610351562, - 651.3997802734375, - 145.70001220703125, - 669.1997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.30001068115234, - 650.0997924804688, - 145.70001220703125, - 669.2998046875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fß|Þ/Ÿ\"ߊ»", - "origin": [ - 148.20001220703125, - 656.0997924804688 - ], - "bbox": [ - 148.20001220703125, - 650.0997924804688, - 174.10000610351562, - 669.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 174.10000610351562, - 656.0997924804688 - ], - "bbox": [ - 174.10000610351562, - 651.3997802734375, - 180.0, - 669.1997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 148.20001220703125, - 650.0997924804688, - 180.0, - 669.2998046875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»\u0011žY¼F¡/Ÿ", - "origin": [ - 182.00001525878906, - 656.0997924804688 - ], - "bbox": [ - 182.00001525878906, - 650.0997924804688, - 203.0, - 669.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%*", - "origin": [ - 203.0, - 656.0997924804688 - ], - "bbox": [ - 203.0, - 651.3997802734375, - 209.0, - 669.1997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.00001525878906, - 650.0997924804688, - 209.0, - 669.2998046875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 211.1000213623047, - 656.0997924804688 - ], - "bbox": [ - 211.1000213623047, - 651.3997802734375, - 211.1000213623047, - 669.1997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÆ�áYŸ\u0011žYàHã", - "origin": [ - 211.1000213623047, - 656.0997924804688 - ], - "bbox": [ - 211.1000213623047, - 650.0997924804688, - 242.40000915527344, - 669.2998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#8FËi£9¤7«z5u«¬£9©É¥/§É5u6)ÿ\n576M¥F\u0019\u001c©\u001a¤sÊY\u0019^¦[6[Ê-ʬ§\u001aʬ69 ", - "origin": [ - 242.40000915527344, - 656.0997924804688 - ], - "bbox": [ - 242.40000915527344, - 649.7998046875, - 396.6000061035156, - 670.1997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.1000213623047, - 649.7998046875, - 396.6000061035156, - 670.1997680664062 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 92.10001373291016, - 663.2998046875, - 242.7000274658203, - 683.6997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â\"Ä/Ágžc¼HÞ", - "origin": [ - 92.10001373291016, - 669.5997924804688 - ], - "bbox": [ - 92.10001373291016, - 663.5997924804688, - 118.40000915527344, - 682.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 118.40000915527344, - 669.5997924804688 - ], - "bbox": [ - 118.40000915527344, - 664.8997802734375, - 123.90000915527344, - 682.6997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸ\"º|´", - "origin": [ - 123.90000915527344, - 669.5997924804688 - ], - "bbox": [ - 123.90000915527344, - 663.5997924804688, - 139.5, - 682.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S*", - "origin": [ - 139.5, - 669.5997924804688 - ], - "bbox": [ - 139.5, - 664.8997802734375, - 145.6999969482422, - 682.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.10001373291016, - 663.5997924804688, - 145.6999969482422, - 682.7998046875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÀEž", - "origin": [ - 147.30001831054688, - 669.5997924804688 - ], - "bbox": [ - 147.30001831054688, - 663.5997924804688, - 153.6000213623047, - 682.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>->", - "origin": [ - 153.6000213623047, - 669.5997924804688 - ], - "bbox": [ - 153.6000213623047, - 664.8997802734375, - 163.6000213623047, - 682.6997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHß|Ÿ\"º|´", - "origin": [ - 163.6000213623047, - 669.5997924804688 - ], - "bbox": [ - 163.6000213623047, - 663.5997924804688, - 189.60000610351562, - 682.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S*", - "origin": [ - 189.60000610351562, - 669.5997924804688 - ], - "bbox": [ - 189.60000610351562, - 664.8997802734375, - 195.8000030517578, - 682.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.30001831054688, - 663.5997924804688, - 195.8000030517578, - 682.7998046875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgÄ\"á|ß\nÁgžcÞ/ß", - "origin": [ - 197.6000213623047, - 669.5997924804688 - ], - "bbox": [ - 197.6000213623047, - 663.5997924804688, - 234.50003051757812, - 682.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^8", - "origin": [ - 234.50003051757812, - 669.5997924804688 - ], - "bbox": [ - 234.50003051757812, - 663.2998046875, - 242.7000274658203, - 683.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 197.6000213623047, - 663.2998046875, - 242.7000274658203, - 683.6997680664062 - ] - } - ] - }, - { - "number": 73, - "type": 0, - "bbox": [ - 255.70001220703125, - 663.2998046875, - 422.6998596191406, - 683.6997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʬ«-Ç\u001c©\u001a6[¨g6[©?5bÆ\u001c6=\u001b�5u«-¦=\u00194Ê;\u00194§…¤76[«-©…¥F6BÊ-\u0019g¦)6=ʬÊ-§FÊ-6\u001c ", - "origin": [ - 255.70001220703125, - 669.5997924804688 - ], - "bbox": [ - 255.70001220703125, - 663.2998046875, - 422.6998596191406, - 683.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 255.70001220703125, - 663.2998046875, - 422.6998596191406, - 683.6997680664062 - ] - } - ] - }, - { - "number": 75, - "type": 0, - "bbox": [ - 102.10000610351562, - 676.9998168945312, - 121.60000610351562, - 697.3997802734375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ÿ\"º|´", - "origin": [ - 102.10000610351562, - 683.2998046875 - ], - "bbox": [ - 102.10000610351562, - 677.2998046875, - 112.50000762939453, - 696.4998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Í8", - "origin": [ - 112.50000762939453, - 683.2998046875 - ], - "bbox": [ - 112.50000762939453, - 676.9998168945312, - 121.60000610351562, - 697.3997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.10000610351562, - 676.9998168945312, - 121.60000610351562, - 697.3997802734375 - ] - } - ] - }, - { - "number": 77, - "type": 0, - "bbox": [ - 134.60000610351562, - 676.9998168945312, - 192.20001220703125, - 697.3997802734375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ê-«¬Ç9©FÈB6[©Éþ\u001a\u00194§F5", - "origin": [ - 134.60000610351562, - 683.2998046875 - ], - "bbox": [ - 134.60000610351562, - 676.9998168945312, - 187.70001220703125, - 697.3997802734375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\\[", - "origin": [ - 187.70001220703125, - 683.2998046875 - ], - "bbox": [ - 187.70001220703125, - 677.2998046875, - 192.20001220703125, - 696.4998168945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.60000610351562, - 676.9998168945312, - 192.20001220703125, - 697.3997802734375 - ] - } - ] - }, - { - "number": 79, - "type": 0, - "bbox": [ - 101.70001220703125, - 690.5997924804688, - 153.10000610351562, - 710.999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÀEž", - "origin": [ - 101.70001220703125, - 696.8997802734375 - ], - "bbox": [ - 101.70001220703125, - 690.8997802734375, - 108.00001525878906, - 710.0997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>->", - "origin": [ - 108.00001525878906, - 696.8997802734375 - ], - "bbox": [ - 108.00001525878906, - 692.1997680664062, - 118.00001525878906, - 709.999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHߊŸ/ºF´", - "origin": [ - 118.00001525878906, - 696.8997802734375 - ], - "bbox": [ - 118.00001525878906, - 690.8997802734375, - 144.20001220703125, - 710.0997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "…8", - "origin": [ - 144.20001220703125, - 696.8997802734375 - ], - "bbox": [ - 144.20001220703125, - 690.5997924804688, - 153.10000610351562, - 710.999755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 101.70001220703125, - 690.5997924804688, - 153.10000610351562, - 710.999755859375 - ] - } - ] - }, - { - "number": 81, - "type": 0, - "bbox": [ - 166.00001525878906, - 690.5997924804688, - 201.89999389648438, - 710.999755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§Ý¦[6[©?57\u001bu6", - "origin": [ - 166.00001525878906, - 696.8997802734375 - ], - "bbox": [ - 166.00001525878906, - 690.5997924804688, - 196.89999389648438, - 710.999755859375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F[", - "origin": [ - 196.89999389648438, - 696.8997802734375 - ], - "bbox": [ - 196.89999389648438, - 690.8997802734375, - 201.89999389648438, - 710.0997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 166.00001525878906, - 690.5997924804688, - 201.89999389648438, - 710.999755859375 - ] - } - ] - }, - { - "number": 83, - "type": 0, - "bbox": [ - 102.00001525878906, - 704.2998046875, - 147.80003356933594, - 724.6997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgÄ\"áFß/ÁgžcÞ\"ß", - "origin": [ - 102.00001525878906, - 710.5997924804688 - ], - "bbox": [ - 102.00001525878906, - 704.5997924804688, - 139.2000274658203, - 723.7998046875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000f8", - "origin": [ - 139.2000274658203, - 710.5997924804688 - ], - "bbox": [ - 139.2000274658203, - 704.2998046875, - 147.80003356933594, - 724.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 102.00001525878906, - 704.2998046875, - 147.80003356933594, - 724.6997680664062 - ] - } - ] - }, - { - "number": 85, - "type": 0, - "bbox": [ - 160.80001831054688, - 704.2998046875, - 213.00001525878906, - 724.6997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʬ«-Ç\u001c©FÈB6=©‰Ð�\u0019\u001c¤= ", - "origin": [ - 160.80001831054688, - 710.5997924804688 - ], - "bbox": [ - 160.80001831054688, - 704.2998046875, - 213.00001525878906, - 724.6997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 160.80001831054688, - 704.2998046875, - 213.00001525878906, - 724.6997680664062 - ] - } - ] - }, - { - "number": 87, - "type": 0, - "bbox": [ - 82.20001220703125, - 717.7998046875, - 96.60000610351562, - 738.1997680664062 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 82.20001220703125, - 724.0997924804688 - ], - "bbox": [ - 82.20001220703125, - 717.7998046875, - 82.20001220703125, - 738.1997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#8", - "origin": [ - 82.20001220703125, - 724.0997924804688 - ], - "bbox": [ - 82.20001220703125, - 719.3997802734375, - 87.40000915527344, - 737.1997680664062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000e8", - "origin": [ - 87.40000915527344, - 724.0997924804688 - ], - "bbox": [ - 87.40000915527344, - 717.7998046875, - 96.60000610351562, - 738.1997680664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20001220703125, - 717.7998046875, - 96.60000610351562, - 738.1997680664062 - ] - } - ] - }, - { - "number": 89, - "type": 0, - "bbox": [ - 92.30001831054688, - 731.4998168945312, - 396.6000061035156, - 751.8997802734375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä/ÁgžY¼ŠÞ", - "origin": [ - 92.30001831054688, - 737.7998046875 - ], - "bbox": [ - 92.30001831054688, - 731.7998046875, - 113.10001373291016, - 750.9998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 113.10001373291016, - 737.7998046875 - ], - "bbox": [ - 113.10001373291016, - 733.0997924804688, - 118.60001373291016, - 750.8997802734375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHßHàŠŸ", - "origin": [ - 118.60001373291016, - 737.7998046875 - ], - "bbox": [ - 118.60001373291016, - 731.7998046875, - 139.6000213623047, - 750.9998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 139.6000213623047, - 737.7998046875 - ], - "bbox": [ - 139.6000213623047, - 733.0997924804688, - 145.7000274658203, - 750.8997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.30001831054688, - 731.7998046875, - 145.7000274658203, - 750.9998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fß|Þ/Ÿ\"ߊ»", - "origin": [ - 148.20001220703125, - 737.7998046875 - ], - "bbox": [ - 148.20001220703125, - 731.7998046875, - 174.10000610351562, - 750.9998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 174.10000610351562, - 737.7998046875 - ], - "bbox": [ - 174.10000610351562, - 733.0997924804688, - 180.0, - 750.8997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 148.20001220703125, - 731.7998046875, - 180.0, - 750.9998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»\u0011žY¼F¡/Ÿ", - "origin": [ - 182.00001525878906, - 737.7998046875 - ], - "bbox": [ - 182.00001525878906, - 731.7998046875, - 203.0, - 750.9998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%*", - "origin": [ - 203.0, - 737.7998046875 - ], - "bbox": [ - 203.0, - 733.0997924804688, - 209.0, - 750.8997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.00001525878906, - 731.7998046875, - 209.0, - 750.9998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 211.1000213623047, - 737.7998046875 - ], - "bbox": [ - 211.1000213623047, - 733.0997924804688, - 211.1000213623047, - 750.8997802734375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÆ�áYŸ\u0011žYàHã", - "origin": [ - 211.1000213623047, - 737.7998046875 - ], - "bbox": [ - 211.1000213623047, - 731.7998046875, - 242.40000915527344, - 750.9998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#8FËi£9¤7«z5u«¬£9©É¥/§É5u6)ÿ\n576M¥F\u0019\u001c©\u001a¤sÊY\u0019^¦[6[Ê-ʬ§\u001aʬ69 ", - "origin": [ - 242.40000915527344, - 737.7998046875 - ], - "bbox": [ - 242.40000915527344, - 731.4998168945312, - 396.6000061035156, - 751.8997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.1000213623047, - 731.4998168945312, - 396.6000061035156, - 751.8997802734375 - ] - } - ] - }, - { - "number": 91, - "type": 0, - "bbox": [ - 92.10001373291016, - 745.1998291015625, - 242.7000274658203, - 765.5997924804688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â\"Ä/Ágžc¼HÞ", - "origin": [ - 92.10001373291016, - 751.4998168945312 - ], - "bbox": [ - 92.10001373291016, - 745.4998168945312, - 118.40000915527344, - 764.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 118.40000915527344, - 751.4998168945312 - ], - "bbox": [ - 118.40000915527344, - 746.7998046875, - 123.90000915527344, - 764.5997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸ\"º|´", - "origin": [ - 123.90000915527344, - 751.4998168945312 - ], - "bbox": [ - 123.90000915527344, - 745.4998168945312, - 139.5, - 764.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S*", - "origin": [ - 139.5, - 751.4998168945312 - ], - "bbox": [ - 139.5, - 746.7998046875, - 145.6999969482422, - 764.5997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.10001373291016, - 745.4998168945312, - 145.6999969482422, - 764.6998291015625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÀEž", - "origin": [ - 147.30001831054688, - 751.4998168945312 - ], - "bbox": [ - 147.30001831054688, - 745.4998168945312, - 153.6000213623047, - 764.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>->", - "origin": [ - 153.6000213623047, - 751.4998168945312 - ], - "bbox": [ - 153.6000213623047, - 746.7998046875, - 163.6000213623047, - 764.5997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHß|Ÿ\"º|´", - "origin": [ - 163.6000213623047, - 751.4998168945312 - ], - "bbox": [ - 163.6000213623047, - 745.4998168945312, - 189.60000610351562, - 764.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S*", - "origin": [ - 189.60000610351562, - 751.4998168945312 - ], - "bbox": [ - 189.60000610351562, - 746.7998046875, - 195.8000030517578, - 764.5997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.30001831054688, - 745.4998168945312, - 195.8000030517578, - 764.6998291015625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgÄ\"á|ß\nÁgžcÞ/ß", - "origin": [ - 197.6000213623047, - 751.4998168945312 - ], - "bbox": [ - 197.6000213623047, - 745.4998168945312, - 234.50003051757812, - 764.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^8", - "origin": [ - 234.50003051757812, - 751.4998168945312 - ], - "bbox": [ - 234.50003051757812, - 745.1998291015625, - 242.7000274658203, - 765.5997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 197.6000213623047, - 745.1998291015625, - 242.7000274658203, - 765.5997924804688 - ] - } - ] - }, - { - "number": 93, - "type": 0, - "bbox": [ - 255.70001220703125, - 745.1998291015625, - 330.89996337890625, - 765.5997924804688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʬ«-Ç\u001c©\u001a6[¨g6[©?5bÆ\u001c6=\u001b�5u«-¦=\u00194Ê", - "origin": [ - 255.70001220703125, - 751.4998168945312 - ], - "bbox": [ - 255.70001220703125, - 745.1998291015625, - 330.89996337890625, - 765.5997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 255.70001220703125, - 745.1998291015625, - 330.89996337890625, - 765.5997924804688 - ] - } - ] - }, - { - "number": 95, - "type": 0, - "bbox": [ - 92.60001373291016, - 758.6998291015625, - 402.9000244140625, - 779.0997924804688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fº/Á\"ác´gÄFÞ", - "origin": [ - 92.60001373291016, - 764.9998168945312 - ], - "bbox": [ - 92.60001373291016, - 758.9998168945312, - 123.70001220703125, - 778.1998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8/Ëi6[\u001bu¨^6[5R¥/6B\u001bu6=¦)£9§FÆ\n\u001b7«-\u001b \u0018Fʬ§�¤�«-6[§F\u001bª¤o¦)£9ʬ£9©F©F6e¤o\u0019aÆ\u001c6=¦\u001e§F©F6M¤76[§\u001aʬ6B¦)6=ʬÊ-§FÊ-6\u001c ", - "origin": [ - 123.70001220703125, - 764.9998168945312 - ], - "bbox": [ - 123.70001220703125, - 758.6998291015625, - 402.9000244140625, - 779.0997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.60001373291016, - 758.6998291015625, - 402.9000244140625, - 779.0997924804688 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 18, - "type": 0, - "bbox": [ - 72.30000305175781, - 298.4000244140625, - 104.20000457763672, - 318.8000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 304.70001220703125 - ], - "bbox": [ - 72.30000305175781, - 298.4000244140625, - 104.20000457763672, - 318.8000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 298.4000244140625, - 104.20000457763672, - 318.8000183105469 - ] - } - ], - "tag": "on-table" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 124.5999984741211, - 321.5, - 219.1999969482422, - 340.70001220703125 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¾/ßg /ž(ßgáYŸ«ÆHÞ,ß", - "origin": [ - 124.5999984741211, - 327.5 - ], - "bbox": [ - 124.5999984741211, - 321.5, - 187.5, - 340.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@X", - "origin": [ - 187.5, - 327.5 - ], - "bbox": [ - 187.5, - 322.79998779296875, - 192.60000610351562, - 340.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ßYÀg´fÁHß", - "origin": [ - 192.60000610351562, - 327.5 - ], - "bbox": [ - 192.60000610351562, - 321.5, - 219.1999969482422, - 340.70001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.5999984741211, - 321.5, - 219.1999969482422, - 340.70001220703125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 20, - "type": 0, - "bbox": [ - 83.19999694824219, - 335.1000061035156, - 267.0000305175781, - 354.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿", - "origin": [ - 83.19999694824219, - 341.1000061035156 - ], - "bbox": [ - 83.19999694824219, - 335.1000061035156, - 267.0000305175781, - 354.3000183105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.19999694824219, - 335.1000061035156, - 267.0000305175781, - 354.3000183105469 - ] - } - ], - "tag": "on-table" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 93.0999984741211, - 348.8000183105469, - 156.20001220703125, - 368.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "'", - "origin": [ - 93.0999984741211, - 354.8000183105469 - ], - "bbox": [ - 93.0999984741211, - 350.1000061035156, - 93.0999984741211, - 367.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»/ßYÀEž", - "origin": [ - 93.0999984741211, - 354.8000183105469 - ], - "bbox": [ - 93.0999984741211, - 348.8000183105469, - 114.80000305175781, - 368.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 114.80000305175781, - 354.8000183105469 - ], - "bbox": [ - 114.80000305175781, - 350.1000061035156, - 119.70000457763672, - 367.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š»/ß", - "origin": [ - 119.70000457763672, - 354.8000183105469 - ], - "bbox": [ - 119.70000457763672, - 348.8000183105469, - 130.1999969482422, - 368.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.0999984741211, - 348.8000183105469, - 130.1999969482422, - 368.0000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " FÄgáFß", - "origin": [ - 140.60000610351562, - 354.8000183105469 - ], - "bbox": [ - 140.60000610351562, - 348.8000183105469, - 156.20001220703125, - 368.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.60000610351562, - 348.8000183105469, - 156.20001220703125, - 368.0000305175781 - ] - } - ], - "tag": "on-table" - }, - { - "number": 24, - "type": 0, - "bbox": [ - 187.3000030517578, - 348.8000183105469, - 250.40000915527344, - 368.0000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": ":", - "origin": [ - 187.3000030517578, - 354.8000183105469 - ], - "bbox": [ - 187.3000030517578, - 350.1000061035156, - 187.3000030517578, - 367.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ß|Æ", - "origin": [ - 187.3000030517578, - 354.8000183105469 - ], - "bbox": [ - 187.3000030517578, - 348.8000183105469, - 197.6999969482422, - 368.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1X", - "origin": [ - 197.6999969482422, - 354.8000183105469 - ], - "bbox": [ - 197.6999969482422, - 350.1000061035156, - 203.09999084472656, - 367.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0011ž", - "origin": [ - 203.09999084472656, - 354.8000183105469 - ], - "bbox": [ - 203.09999084472656, - 348.8000183105469, - 208.99998474121094, - 368.0000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 208.99998474121094, - 354.8000183105469 - ], - "bbox": [ - 208.99998474121094, - 350.1000061035156, - 213.8999786376953, - 367.9000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "YÀ�ß", - "origin": [ - 213.8999786376953, - 354.8000183105469 - ], - "bbox": [ - 213.8999786376953, - 348.8000183105469, - 224.3999786376953, - 368.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.3000030517578, - 348.8000183105469, - 224.3999786376953, - 368.0000305175781 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " FÄgáFß", - "origin": [ - 234.8000030517578, - 354.8000183105469 - ], - "bbox": [ - 234.8000030517578, - 348.8000183105469, - 250.40000915527344, - 368.0000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.8000030517578, - 348.8000183105469, - 250.40000915527344, - 368.0000305175781 - ] - } - ], - "tag": "on-table" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 83.19999694824219, - 362.4000244140625, - 267.0000305175781, - 381.60003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿", - "origin": [ - 83.19999694824219, - 368.4000244140625 - ], - "bbox": [ - 83.19999694824219, - 362.4000244140625, - 267.0000305175781, - 381.60003662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.19999694824219, - 362.4000244140625, - 267.0000305175781, - 381.60003662109375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 28, - "type": 0, - "bbox": [ - 93.0999984741211, - 375.7000427246094, - 161.39999389648438, - 396.10003662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "è", - "origin": [ - 93.0999984741211, - 382.0000305175781 - ], - "bbox": [ - 93.0999984741211, - 375.7000427246094, - 93.0999984741211, - 396.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n»/ºfžHá/ž", - "origin": [ - 93.0999984741211, - 382.0000305175781 - ], - "bbox": [ - 93.0999984741211, - 376.0000305175781, - 120.0999984741211, - 395.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 120.0999984741211, - 382.0000305175781 - ], - "bbox": [ - 120.0999984741211, - 377.3000183105469, - 125.0, - 395.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cÀ\u0011ß", - "origin": [ - 125.0, - 382.0000305175781 - ], - "bbox": [ - 125.0, - 376.0000305175781, - 135.5, - 395.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.0999984741211, - 375.7000427246094, - 135.5, - 396.10003662109375 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " FÄgá|ß", - "origin": [ - 145.89999389648438, - 382.0000305175781 - ], - "bbox": [ - 145.89999389648438, - 376.0000305175781, - 161.39999389648438, - 395.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 145.89999389648438, - 376.0000305175781, - 161.39999389648438, - 395.2000427246094 - ] - } - ], - "tag": "on-table" - }, - { - "number": 30, - "type": 0, - "bbox": [ - 187.59999084472656, - 376.0000305175781, - 255.49998474121094, - 395.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "‚", - "origin": [ - 187.59999084472656, - 382.0000305175781 - ], - "bbox": [ - 187.59999084472656, - 377.3000183105469, - 187.59999084472656, - 395.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "|Æ\"ĊŸ\n»\u0011ž", - "origin": [ - 187.59999084472656, - 382.0000305175781 - ], - "bbox": [ - 187.59999084472656, - 376.0000305175781, - 214.29998779296875, - 395.2000427246094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�¡", - "origin": [ - 214.29998779296875, - 382.0000305175781 - ], - "bbox": [ - 214.29998779296875, - 377.3000183105469, - 219.19998168945312, - 395.10003662109375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "cÀ\u0011ß« FÄ\"áFß", - "origin": [ - 219.19998168945312, - 382.0000305175781 - ], - "bbox": [ - 219.19998168945312, - 376.0000305175781, - 255.49998474121094, - 395.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.59999084472656, - 376.0000305175781, - 255.49998474121094, - 395.2000427246094 - ] - } - ], - "tag": "on-table" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 83.19996643066406, - 389.7000427246094, - 267.0, - 408.9000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿", - "origin": [ - 83.19996643066406, - 395.7000427246094 - ], - "bbox": [ - 83.19996643066406, - 389.7000427246094, - 267.0, - 408.9000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.19996643066406, - 389.7000427246094, - 267.0, - 408.9000549316406 - ] - } - ], - "tag": "on-table" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ú", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 72.4000015258789, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6�", - "origin": [ - 72.4000015258789, - 41.5999755859375 - ], - "bbox": [ - 72.4000015258789, - 35.5999755859375, - 78.5999984741211, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ÕÖ×¾\nØgܝÁ\u001aöyžyØe¾\nØ!Á9ûFÁF–œ\u001cü\n¾\nØ", - "origin": [ - 78.5999984741211, - 41.5999755859375 - ], - "bbox": [ - 78.5999984741211, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.4000015258789, - 35.29997634887695, - 183.80001831054688, - 55.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":eG", - "origin": [ - 530.7999877929688, - 43.5999755859375 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.3999633789062, - 57.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 89, - "type": 0, - "bbox": [ - 92.30001831054688, - 731.4998168945312, - 396.6000061035156, - 751.8997802734375 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ä/ÁgžY¼ŠÞ", - "origin": [ - 92.30001831054688, - 737.7998046875 - ], - "bbox": [ - 92.30001831054688, - 731.7998046875, - 113.10001373291016, - 750.9998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 113.10001373291016, - 737.7998046875 - ], - "bbox": [ - 113.10001373291016, - 733.0997924804688, - 118.60001373291016, - 750.8997802734375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHßHàŠŸ", - "origin": [ - 118.60001373291016, - 737.7998046875 - ], - "bbox": [ - 118.60001373291016, - 731.7998046875, - 139.6000213623047, - 750.9998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "&*", - "origin": [ - 139.6000213623047, - 737.7998046875 - ], - "bbox": [ - 139.6000213623047, - 733.0997924804688, - 145.7000274658203, - 750.8997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.30001831054688, - 731.7998046875, - 145.7000274658203, - 750.9998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fß|Þ/Ÿ\"ߊ»", - "origin": [ - 148.20001220703125, - 737.7998046875 - ], - "bbox": [ - 148.20001220703125, - 731.7998046875, - 174.10000610351562, - 750.9998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "G*", - "origin": [ - 174.10000610351562, - 737.7998046875 - ], - "bbox": [ - 174.10000610351562, - 733.0997924804688, - 180.0, - 750.8997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 148.20001220703125, - 731.7998046875, - 180.0, - 750.9998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "»\u0011žY¼F¡/Ÿ", - "origin": [ - 182.00001525878906, - 737.7998046875 - ], - "bbox": [ - 182.00001525878906, - 731.7998046875, - 203.0, - 750.9998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "%*", - "origin": [ - 203.0, - 737.7998046875 - ], - "bbox": [ - 203.0, - 733.0997924804688, - 209.0, - 750.8997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.00001525878906, - 731.7998046875, - 209.0, - 750.9998168945312 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "+", - "origin": [ - 211.1000213623047, - 737.7998046875 - ], - "bbox": [ - 211.1000213623047, - 733.0997924804688, - 211.1000213623047, - 750.8997802734375 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "FÆ�áYŸ\u0011žYàHã", - "origin": [ - 211.1000213623047, - 737.7998046875 - ], - "bbox": [ - 211.1000213623047, - 731.7998046875, - 242.40000915527344, - 750.9998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "#8FËi£9¤7«z5u«¬£9©É¥/§É5u6)ÿ\n576M¥F\u0019\u001c©\u001a¤sÊY\u0019^¦[6[Ê-ʬ§\u001aʬ69 ", - "origin": [ - 242.40000915527344, - 737.7998046875 - ], - "bbox": [ - 242.40000915527344, - 731.4998168945312, - 396.6000061035156, - 751.8997802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 211.1000213623047, - 731.4998168945312, - 396.6000061035156, - 751.8997802734375 - ] - } - ], - "tag": "footer" - }, - { - "number": 91, - "type": 0, - "bbox": [ - 92.10001373291016, - 745.1998291015625, - 242.7000274658203, - 765.5997924804688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "â\"Ä/Ágžc¼HÞ", - "origin": [ - 92.10001373291016, - 751.4998168945312 - ], - "bbox": [ - 92.10001373291016, - 745.4998168945312, - 118.40000915527344, - 764.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"", - "origin": [ - 118.40000915527344, - 751.4998168945312 - ], - "bbox": [ - 118.40000915527344, - 746.7998046875, - 123.90000915527344, - 764.5997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "HŸ\"º|´", - "origin": [ - 123.90000915527344, - 751.4998168945312 - ], - "bbox": [ - 123.90000915527344, - 745.4998168945312, - 139.5, - 764.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S*", - "origin": [ - 139.5, - 751.4998168945312 - ], - "bbox": [ - 139.5, - 746.7998046875, - 145.6999969482422, - 764.5997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.10001373291016, - 745.4998168945312, - 145.6999969482422, - 764.6998291015625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÀEž", - "origin": [ - 147.30001831054688, - 751.4998168945312 - ], - "bbox": [ - 147.30001831054688, - 745.4998168945312, - 153.6000213623047, - 764.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\f>->", - "origin": [ - 153.6000213623047, - 751.4998168945312 - ], - "bbox": [ - 153.6000213623047, - 746.7998046875, - 163.6000213623047, - 764.5997924804688 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ÁHß|Ÿ\"º|´", - "origin": [ - 163.6000213623047, - 751.4998168945312 - ], - "bbox": [ - 163.6000213623047, - 745.4998168945312, - 189.60000610351562, - 764.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "S*", - "origin": [ - 189.60000610351562, - 751.4998168945312 - ], - "bbox": [ - 189.60000610351562, - 746.7998046875, - 195.8000030517578, - 764.5997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.30001831054688, - 745.4998168945312, - 195.8000030517578, - 764.6998291015625 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgÄ\"á|ß\nÁgžcÞ/ß", - "origin": [ - 197.6000213623047, - 751.4998168945312 - ], - "bbox": [ - 197.6000213623047, - 745.4998168945312, - 234.50003051757812, - 764.6998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "^8", - "origin": [ - 234.50003051757812, - 751.4998168945312 - ], - "bbox": [ - 234.50003051757812, - 745.1998291015625, - 242.7000274658203, - 765.5997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 197.6000213623047, - 745.1998291015625, - 242.7000274658203, - 765.5997924804688 - ] - } - ], - "tag": "footer" - }, - { - "number": 93, - "type": 0, - "bbox": [ - 255.70001220703125, - 745.1998291015625, - 330.89996337890625, - 765.5997924804688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ʬ«-Ç\u001c©\u001a6[¨g6[©?5bÆ\u001c6=\u001b�5u«-¦=\u00194Ê", - "origin": [ - 255.70001220703125, - 751.4998168945312 - ], - "bbox": [ - 255.70001220703125, - 745.1998291015625, - 330.89996337890625, - 765.5997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 255.70001220703125, - 745.1998291015625, - 330.89996337890625, - 765.5997924804688 - ] - } - ], - "tag": "footer" - }, - { - "number": 95, - "type": 0, - "bbox": [ - 92.60001373291016, - 758.6998291015625, - 402.9000244140625, - 779.0997924804688 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": " Fº/Á\"ác´gÄFÞ", - "origin": [ - 92.60001373291016, - 764.9998168945312 - ], - "bbox": [ - 92.60001373291016, - 758.9998168945312, - 123.70001220703125, - 778.1998291015625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8/Ëi6[\u001bu¨^6[5R¥/6B\u001bu6=¦)£9§FÆ\n\u001b7«-\u001b \u0018Fʬ§�¤�«-6[§F\u001bª¤o¦)£9ʬ£9©F©F6e¤o\u0019aÆ\u001c6=¦\u001e§F©F6M¤76[§\u001aʬ6B¦)6=ʬÊ-§FÊ-6\u001c ", - "origin": [ - 123.70001220703125, - 764.9998168945312 - ], - "bbox": [ - 123.70001220703125, - 758.6998291015625, - 402.9000244140625, - 779.0997924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 92.60001373291016, - 758.6998291015625, - 402.9000244140625, - 779.0997924804688 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 12, - "page_size": [ - 595.0, - 842.0 - ] - }, - "page_13": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 3, - "type": 0, - "bbox": [ - 91.99996948242188, - 80.69993591308594, - 335.1999816894531, - 101.09993743896484 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÞgºF¶/»/ÄF´", - "origin": [ - 91.99996948242188, - 86.99993896484375 - ], - "bbox": [ - 91.99996948242188, - 80.99993896484375, - 118.39997100830078, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Ý8", - "origin": [ - 118.39997100830078, - 86.99993896484375 - ], - "bbox": [ - 118.39997100830078, - 80.69993591308594, - 127.39997100830078, - 101.09993743896484 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"_", - "origin": [ - 127.39997100830078, - 86.99993896484375 - ], - "bbox": [ - 127.39997100830078, - 80.99993896484375, - 132.8999786376953, - 100.19993591308594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ",¨g\u0018wå=¦ªþF6BÊ-6B\u0018\u001a\u00199¤7¤u\u00194Ç96\u001eßgÊY\u0019!Ê-«-Ç\u001c©F6B¥F\u0019\u001c©\u001a¤s§F©F6M¦[6[Ê-ʬ§FÊ-6\u001c ", - "origin": [ - 132.8999786376953, - 86.99993896484375 - ], - "bbox": [ - 132.8999786376953, - 80.69993591308594, - 335.1999816894531, - 101.09993743896484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.99996948242188, - 80.69993591308594, - 335.1999816894531, - 101.09993743896484 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 72.29997253417969, - 99.49992370605469, - 195.89999389648438, - 119.8999252319336 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Åb©…6[ÿ\n6=¨g\u0018Fʬ6B\u0018\u001aʬ§\u001a¤o¦[£\u001c¨g\u0018FÊ-«-²?§FÈg8", - "origin": [ - 72.29997253417969, - 105.7999267578125 - ], - "bbox": [ - 72.29997253417969, - 99.49992370605469, - 195.89999389648438, - 119.8999252319336 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.29997253417969, - 99.49992370605469, - 195.89999389648438, - 119.8999252319336 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 72.5, - 123.60002136230469, - 157.09999084472656, - 144.00003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.5, - 129.9000244140625 - ], - "bbox": [ - 72.5, - 123.9000244140625, - 72.5, - 143.1000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè\nð", - "origin": [ - 72.5, - 129.9000244140625 - ], - "bbox": [ - 72.5, - 123.60002136230469, - 82.80000305175781, - 144.00003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Š›", - "origin": [ - 82.80000305175781, - 129.9000244140625 - ], - "bbox": [ - 82.80000305175781, - 123.9000244140625, - 87.9000015258789, - 143.1000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ë", - "origin": [ - 87.9000015258789, - 129.9000244140625 - ], - "bbox": [ - 87.9000015258789, - 123.60002136230469, - 98.5999984741211, - 144.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 123.60002136230469, - 98.5999984741211, - 144.00003051757812 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÅgºŠ»", - "origin": [ - 108.69999694824219, - 129.9000244140625 - ], - "bbox": [ - 108.69999694824219, - 123.9000244140625, - 119.39999389648438, - 143.1000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "->", - "origin": [ - 119.39999389648438, - 129.9000244140625 - ], - "bbox": [ - 119.39999389648438, - 125.20002746582031, - 124.69999694824219, - 143.00003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 124.69999694824219, - 129.9000244140625 - ], - "bbox": [ - 124.69999694824219, - 123.9000244140625, - 135.1999969482422, - 143.1000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$#/-$", - "origin": [ - 135.1999969482422, - 129.9000244140625 - ], - "bbox": [ - 135.1999969482422, - 125.20002746582031, - 157.09999084472656, - 143.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.69999694824219, - 123.9000244140625, - 157.09999084472656, - 143.1000213623047 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 125.0, - 137.1000213623047, - 396.6000061035156, - 157.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "áYÆFÀ\nÀ�Ċ»\nã", - "origin": [ - 125.0, - 143.4000244140625 - ], - "bbox": [ - 125.0, - 137.4000244140625, - 156.20001220703125, - 156.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 156.20001220703125, - 143.4000244140625 - ], - "bbox": [ - 156.20001220703125, - 138.7000274658203, - 167.60000610351562, - 156.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[è", - "origin": [ - 167.60000610351562, - 143.4000244140625 - ], - "bbox": [ - 167.60000610351562, - 137.1000213623047, - 172.0, - 157.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H¡.žHáȟ\"ÄFÅfÁŠßU¼\u0011žYâ\"ßgá«áFºcÀ\u0011ßNáIŸ\"ĊŸ\u0011žŠáIŸ\u0011žH \nárÄFÅgºFÆ\nŸ«àH»HÆ.žYŸ", - "origin": [ - 172.0, - 143.4000244140625 - ], - "bbox": [ - 172.0, - 137.4000244140625, - 396.6000061035156, - 156.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 125.0, - 137.1000213623047, - 396.6000061035156, - 157.50003051757812 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 108.9000015258789, - 151.10003662109375, - 355.20001220703125, - 170.30003356933594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "à\"ÁgžIßgá\u0013µ\u0015Ċâ\"ßF»\"Ċ¼\"ß(¡gßgžY¼H¡/Ÿ", - "origin": [ - 108.9000015258789, - 157.10003662109375 - ], - "bbox": [ - 108.9000015258789, - 151.10003662109375, - 213.70001220703125, - 170.30003356933594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.9000015258789, - 151.10003662109375, - 213.70001220703125, - 170.30003356933594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÄFÞ", - "origin": [ - 224.10000610351562, - 157.10003662109375 - ], - "bbox": [ - 224.10000610351562, - 151.10003662109375, - 229.10000610351562, - 170.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 229.10000610351562, - 157.10003662109375 - ], - "bbox": [ - 229.10000610351562, - 152.40003967285156, - 234.5, - 170.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "k¶\"ßfžY¼H¡/Ÿ", - "origin": [ - 234.5, - 157.10003662109375 - ], - "bbox": [ - 234.5, - 151.10003662109375, - 271.20001220703125, - 170.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "DP", - "origin": [ - 271.20001220703125, - 157.10003662109375 - ], - "bbox": [ - 271.20001220703125, - 152.40003967285156, - 277.9000244140625, - 170.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~ÄFÞ", - "origin": [ - 277.9000244140625, - 157.10003662109375 - ], - "bbox": [ - 277.9000244140625, - 151.10003662109375, - 291.8000183105469, - 170.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 291.8000183105469, - 157.10003662109375 - ], - "bbox": [ - 291.8000183105469, - 152.40003967285156, - 297.3000183105469, - 170.20004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.10000610351562, - 151.10003662109375, - 297.3000183105469, - 170.30003356933594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "´gߊ»� |ßFÞ/Ÿ\"Ċ¼/ß", - "origin": [ - 307.4000244140625, - 157.10003662109375 - ], - "bbox": [ - 307.4000244140625, - 151.10003662109375, - 355.20001220703125, - 170.30003356933594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.4000244140625, - 151.10003662109375, - 355.20001220703125, - 170.30003356933594 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 108.70002746582031, - 164.800048828125, - 339.70001220703125, - 184.0000457763672 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶.žYŸŠ¡0»/ß", - "origin": [ - 108.70002746582031, - 170.800048828125 - ], - "bbox": [ - 108.70002746582031, - 164.800048828125, - 140.4000244140625, - 184.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 140.4000244140625, - 170.800048828125 - ], - "bbox": [ - 140.4000244140625, - 166.1000518798828, - 145.6000213623047, - 183.90005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.70002746582031, - 164.800048828125, - 145.6000213623047, - 184.0000457763672 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ߊã\"ßgá", - "origin": [ - 156.00003051757812, - 170.800048828125 - ], - "bbox": [ - 156.00003051757812, - 164.800048828125, - 172.20004272460938, - 184.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "­…", - "origin": [ - 172.20004272460938, - 170.800048828125 - ], - "bbox": [ - 172.20004272460938, - 166.1000518798828, - 183.40003967285156, - 183.90005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Wà/ºF»«Å\"ºŠŸH¡UÀ\u0011Ä/ÁHß\"á(ÄFÞ", - "origin": [ - 183.40003967285156, - 170.800048828125 - ], - "bbox": [ - 183.40003967285156, - 164.800048828125, - 270.8000183105469, - 184.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 270.8000183105469, - 170.800048828125 - ], - "bbox": [ - 270.8000183105469, - 166.1000518798828, - 276.3000183105469, - 183.90005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.00003051757812, - 164.800048828125, - 276.3000183105469, - 184.0000457763672 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "à/ßYÀ\u0011Ä/ÁŠßgá", - "origin": [ - 286.70001220703125, - 170.800048828125 - ], - "bbox": [ - 286.70001220703125, - 164.800048828125, - 318.8000183105469, - 184.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1†", - "origin": [ - 318.8000183105469, - 170.800048828125 - ], - "bbox": [ - 318.8000183105469, - 166.1000518798828, - 324.20001220703125, - 183.90005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "9·", - "origin": [ - 324.20001220703125, - 170.800048828125 - ], - "bbox": [ - 324.20001220703125, - 164.800048828125, - 330.6000061035156, - 184.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�$", - "origin": [ - 330.6000061035156, - 170.800048828125 - ], - "bbox": [ - 330.6000061035156, - 166.1000518798828, - 335.0, - 183.90005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Yä", - "origin": [ - 335.0, - 170.800048828125 - ], - "bbox": [ - 335.0, - 164.800048828125, - 339.70001220703125, - 184.0000457763672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.70001220703125, - 164.800048828125, - 339.70001220703125, - 184.0000457763672 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.50001525878906, - 178.1000213623047, - 371.2999267578125, - 198.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "݊¾", - "origin": [ - 72.50001525878906, - 184.4000244140625 - ], - "bbox": [ - 72.50001525878906, - 178.4000244140625, - 77.60001373291016, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ð", - "origin": [ - 77.60001373291016, - 184.4000244140625 - ], - "bbox": [ - 77.60001373291016, - 178.1000213623047, - 82.80001068115234, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#'", - "origin": [ - 82.80001068115234, - 184.4000244140625 - ], - "bbox": [ - 82.80001068115234, - 179.7000274658203, - 88.00000762939453, - 197.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè+é", - "origin": [ - 88.00000762939453, - 184.4000244140625 - ], - "bbox": [ - 88.00000762939453, - 178.1000213623047, - 99.20001220703125, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�;", - "origin": [ - 99.20001220703125, - 184.4000244140625 - ], - "bbox": [ - 99.20001220703125, - 179.7000274658203, - 104.20001220703125, - 197.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fœ\"ä\nÝ", - "origin": [ - 104.20001220703125, - 184.4000244140625 - ], - "bbox": [ - 104.20001220703125, - 178.4000244140625, - 120.00001525878906, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cë\nï", - "origin": [ - 120.00001525878906, - 184.4000244140625 - ], - "bbox": [ - 120.00001525878906, - 178.1000213623047, - 130.30001831054688, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 130.30001831054688, - 184.4000244140625 - ], - "bbox": [ - 130.30001831054688, - 178.4000244140625, - 135.9000244140625, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð", - "origin": [ - 135.9000244140625, - 184.4000244140625 - ], - "bbox": [ - 135.9000244140625, - 178.1000213623047, - 140.80001831054688, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "(Ÿ\"ß\"áIŸ«Ÿ\"ÄFÅfÁHß(¶\u0011žYŸH¡UÀ\u0011ߊ»\n¼/ß", - "origin": [ - 140.80001831054688, - 184.4000244140625 - ], - "bbox": [ - 140.80001831054688, - 178.4000244140625, - 255.59999084472656, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 255.59999084472656, - 184.4000244140625 - ], - "bbox": [ - 255.59999084472656, - 179.7000274658203, - 260.79998779296875, - 197.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "N Fß/Á\nÁ/áŠÝ\n£", - "origin": [ - 260.79998779296875, - 184.4000244140625 - ], - "bbox": [ - 260.79998779296875, - 178.4000244140625, - 302.89996337890625, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cë\nï", - "origin": [ - 302.89996337890625, - 184.4000244140625 - ], - "bbox": [ - 302.89996337890625, - 178.1000213623047, - 313.199951171875, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä\nÝ\n£Š¾", - "origin": [ - 313.199951171875, - 184.4000244140625 - ], - "bbox": [ - 313.199951171875, - 178.4000244140625, - 334.3999328613281, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ð", - "origin": [ - 334.3999328613281, - 184.4000244140625 - ], - "bbox": [ - 334.3999328613281, - 178.1000213623047, - 339.5999450683594, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#'", - "origin": [ - 339.5999450683594, - 184.4000244140625 - ], - "bbox": [ - 339.5999450683594, - 179.7000274658203, - 344.7999572753906, - 197.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nèwé", - "origin": [ - 344.7999572753906, - 184.4000244140625 - ], - "bbox": [ - 344.7999572753906, - 178.1000213623047, - 355.8999328613281, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�;", - "origin": [ - 355.8999328613281, - 184.4000244140625 - ], - "bbox": [ - 355.8999328613281, - 179.7000274658203, - 360.8999328613281, - 197.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iœgä", - "origin": [ - 360.8999328613281, - 184.4000244140625 - ], - "bbox": [ - 360.8999328613281, - 178.4000244140625, - 371.2999267578125, - 197.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 178.1000213623047, - 371.2999267578125, - 198.50003051757812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 72.50001525878906, - 191.6999969482422, - 292.6999816894531, - 212.10000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.50001525878906, - 198.0 - ], - "bbox": [ - 72.50001525878906, - 192.0, - 72.50001525878906, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 72.50001525878906, - 198.0 - ], - "bbox": [ - 72.50001525878906, - 191.6999969482422, - 77.50001525878906, - 212.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½\"ä\nÝ", - "origin": [ - 77.50001525878906, - 198.0 - ], - "bbox": [ - 77.50001525878906, - 192.0, - 93.60002136230469, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.60002136230469, - 198.0 - ], - "bbox": [ - 93.60002136230469, - 191.6999969482422, - 98.60002136230469, - 212.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 98.60002136230469, - 198.0 - ], - "bbox": [ - 98.60002136230469, - 193.3000030517578, - 103.9000244140625, - 211.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "k»\"º|¶\u0011áY´gÄFÞ", - "origin": [ - 103.9000244140625, - 198.0 - ], - "bbox": [ - 103.9000244140625, - 192.0, - 145.7000274658203, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$\f0G$", - "origin": [ - 145.7000274658203, - 198.0 - ], - "bbox": [ - 145.7000274658203, - 193.3000030517578, - 167.70001220703125, - 211.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "IäHÝ", - "origin": [ - 167.70001220703125, - 198.0 - ], - "bbox": [ - 167.70001220703125, - 192.0, - 177.70001220703125, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 177.70001220703125, - 198.0 - ], - "bbox": [ - 177.70001220703125, - 191.6999969482422, - 182.70001220703125, - 212.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 182.70001220703125, - 198.0 - ], - "bbox": [ - 182.70001220703125, - 193.3000030517578, - 188.00001525878906, - 211.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "k Fº/Á\"ác´gÄFÞ", - "origin": [ - 188.00001525878906, - 198.0 - ], - "bbox": [ - 188.00001525878906, - 192.0, - 229.30001831054688, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"%$\u00190G$", - "origin": [ - 229.30001831054688, - 198.0 - ], - "bbox": [ - 229.30001831054688, - 193.3000030517578, - 251.30001831054688, - 211.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 251.30001831054688, - 198.0 - ], - "bbox": [ - 251.30001831054688, - 192.0, - 256.1000061035156, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 256.1000061035156, - 198.0 - ], - "bbox": [ - 256.1000061035156, - 191.6999969482422, - 261.1000061035156, - 212.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nâ/ßF»\"Ċ¼\nß", - "origin": [ - 261.1000061035156, - 198.0 - ], - "bbox": [ - 261.1000061035156, - 192.0, - 292.6999816894531, - 211.1999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 191.6999969482422, - 292.6999816894531, - 212.10000610351562 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 93.40001678466797, - 205.2999725341797, - 230.29998779296875, - 225.69998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.40001678466797, - 211.5999755859375 - ], - "bbox": [ - 93.40001678466797, - 205.5999755859375, - 93.40001678466797, - 224.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.40001678466797, - 211.5999755859375 - ], - "bbox": [ - 93.40001678466797, - 205.2999725341797, - 98.40001678466797, - 225.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#8", - "origin": [ - 98.40001678466797, - 211.5999755859375 - ], - "bbox": [ - 98.40001678466797, - 206.8999786376953, - 103.60001373291016, - 224.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "0»\"º|¶\u0011áY´gÄFÞ", - "origin": [ - 103.60001373291016, - 211.5999755859375 - ], - "bbox": [ - 103.60001373291016, - 205.5999755859375, - 145.70001220703125, - 224.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$\f0G$", - "origin": [ - 145.70001220703125, - 211.5999755859375 - ], - "bbox": [ - 145.70001220703125, - 206.8999786376953, - 167.6999969482422, - 224.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä|½\"ß", - "origin": [ - 167.6999969482422, - 211.5999755859375 - ], - "bbox": [ - 167.6999969482422, - 205.5999755859375, - 182.89999389648438, - 224.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 182.89999389648438, - 211.5999755859375 - ], - "bbox": [ - 182.89999389648438, - 206.8999786376953, - 188.09999084472656, - 224.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ÝI›\n½gäHß|ã\"ß\"á", - "origin": [ - 188.09999084472656, - 211.5999755859375 - ], - "bbox": [ - 188.09999084472656, - 205.5999755859375, - 230.29998779296875, - 224.7999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.40001678466797, - 205.2999725341797, - 230.29998779296875, - 225.69998168945312 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 72.50001525878906, - 218.99998474121094, - 193.2000274658203, - 239.39999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.50001525878906, - 225.29998779296875 - ], - "bbox": [ - 72.50001525878906, - 219.29998779296875, - 72.50001525878906, - 238.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 72.50001525878906, - 225.29998779296875 - ], - "bbox": [ - 72.50001525878906, - 218.99998474121094, - 77.50001525878906, - 239.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½\"ä\nÝ", - "origin": [ - 77.50001525878906, - 225.29998779296875 - ], - "bbox": [ - 77.50001525878906, - 219.29998779296875, - 93.60002136230469, - 238.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.60002136230469, - 225.29998779296875 - ], - "bbox": [ - 93.60002136230469, - 218.99998474121094, - 98.60002136230469, - 239.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 98.60002136230469, - 225.29998779296875 - ], - "bbox": [ - 98.60002136230469, - 220.59999084472656, - 103.9000244140625, - 238.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gäI¡gßfžY¼H¡\nŸgÝ", - "origin": [ - 103.9000244140625, - 225.29998779296875 - ], - "bbox": [ - 103.9000244140625, - 219.29998779296875, - 146.4000244140625, - 238.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 146.4000244140625, - 225.29998779296875 - ], - "bbox": [ - 146.4000244140625, - 218.99998474121094, - 151.4000244140625, - 239.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#8", - "origin": [ - 151.4000244140625, - 225.29998779296875 - ], - "bbox": [ - 151.4000244140625, - 220.59999084472656, - 156.6000213623047, - 238.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"äI¶gßfž\\¼H¡\nŸ", - "origin": [ - 156.6000213623047, - 225.29998779296875 - ], - "bbox": [ - 156.6000213623047, - 219.29998779296875, - 193.2000274658203, - 238.49998474121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 218.99998474121094, - 193.2000274658203, - 239.39999389648438 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.50001525878906, - 232.49998474121094, - 256.00006103515625, - 252.89999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.50001525878906, - 238.79998779296875 - ], - "bbox": [ - 72.50001525878906, - 232.79998779296875, - 72.50001525878906, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 72.50001525878906, - 238.79998779296875 - ], - "bbox": [ - 72.50001525878906, - 232.49998474121094, - 77.50001525878906, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½\"ä\nÝ", - "origin": [ - 77.50001525878906, - 238.79998779296875 - ], - "bbox": [ - 77.50001525878906, - 232.79998779296875, - 93.60002136230469, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.60002136230469, - 238.79998779296875 - ], - "bbox": [ - 93.60002136230469, - 232.49998474121094, - 98.60002136230469, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 98.60002136230469, - 238.79998779296875 - ], - "bbox": [ - 98.60002136230469, - 234.09999084472656, - 103.9000244140625, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 103.9000244140625, - 238.79998779296875 - ], - "bbox": [ - 103.9000244140625, - 232.79998779296875, - 109.5000228881836, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ï", - "origin": [ - 109.5000228881836, - 238.79998779296875 - ], - "bbox": [ - 109.5000228881836, - 232.49998474121094, - 114.4000244140625, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ä/ÁHßgáFÝ", - "origin": [ - 114.4000244140625, - 238.79998779296875 - ], - "bbox": [ - 114.4000244140625, - 232.79998779296875, - 141.10003662109375, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 141.10003662109375, - 238.79998779296875 - ], - "bbox": [ - 141.10003662109375, - 232.49998474121094, - 146.10003662109375, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 146.10003662109375, - 238.79998779296875 - ], - "bbox": [ - 146.10003662109375, - 234.09999084472656, - 151.40003967285156, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 151.40003967285156, - 238.79998779296875 - ], - "bbox": [ - 151.40003967285156, - 232.79998779296875, - 156.90003967285156, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A/", - "origin": [ - 156.90003967285156, - 238.79998779296875 - ], - "bbox": [ - 156.90003967285156, - 234.09999084472656, - 162.60003662109375, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=·", - "origin": [ - 162.60003662109375, - 238.79998779296875 - ], - "bbox": [ - 162.60003662109375, - 232.79998779296875, - 168.70004272460938, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "®J", - "origin": [ - 168.70004272460938, - 238.79998779296875 - ], - "bbox": [ - 168.70004272460938, - 234.09999084472656, - 172.5000457763672, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ý", - "origin": [ - 172.5000457763672, - 238.79998779296875 - ], - "bbox": [ - 172.5000457763672, - 232.79998779296875, - 177.90003967285156, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%è", - "origin": [ - 177.90003967285156, - 238.79998779296875 - ], - "bbox": [ - 177.90003967285156, - 232.49998474121094, - 182.70004272460938, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 182.70004272460938, - 238.79998779296875 - ], - "bbox": [ - 182.70004272460938, - 234.09999084472656, - 188.0000457763672, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"äŠÃ#·\u001bÃ\nʹ/Ý", - "origin": [ - 188.0000457763672, - 238.79998779296875 - ], - "bbox": [ - 188.0000457763672, - 232.79998779296875, - 224.90005493164062, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 224.90005493164062, - 238.79998779296875 - ], - "bbox": [ - 224.90005493164062, - 232.49998474121094, - 229.800048828125, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 229.800048828125, - 238.79998779296875 - ], - "bbox": [ - 229.800048828125, - 234.09999084472656, - 235.0000457763672, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"äFÂ\"Ã", - "origin": [ - 235.0000457763672, - 238.79998779296875 - ], - "bbox": [ - 235.0000457763672, - 232.79998779296875, - 251.0000457763672, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�{", - "origin": [ - 251.0000457763672, - 238.79998779296875 - ], - "bbox": [ - 251.0000457763672, - 234.09999084472656, - 256.00006103515625, - 251.89999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 232.49998474121094, - 256.00006103515625, - 252.89999389648438 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.50001525878906, - 246.1999969482422, - 266.5000305175781, - 266.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.50001525878906, - 252.5 - ], - "bbox": [ - 72.50001525878906, - 246.5, - 72.50001525878906, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 72.50001525878906, - 252.5 - ], - "bbox": [ - 72.50001525878906, - 246.1999969482422, - 77.50001525878906, - 266.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½\"ä\nÝ", - "origin": [ - 77.50001525878906, - 252.5 - ], - "bbox": [ - 77.50001525878906, - 246.5, - 93.60002136230469, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.60002136230469, - 252.5 - ], - "bbox": [ - 93.60002136230469, - 246.1999969482422, - 98.60002136230469, - 266.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 98.60002136230469, - 252.5 - ], - "bbox": [ - 98.60002136230469, - 247.8000030517578, - 103.9000244140625, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 103.9000244140625, - 252.5 - ], - "bbox": [ - 103.9000244140625, - 246.5, - 109.5000228881836, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�r", - "origin": [ - 109.5000228881836, - 252.5 - ], - "bbox": [ - 109.5000228881836, - 247.8000030517578, - 114.4000244140625, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßYÀ\u0011Ä/ÁŠßgáŠÝ", - "origin": [ - 114.4000244140625, - 252.5 - ], - "bbox": [ - 114.4000244140625, - 246.5, - 151.7000274658203, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 151.7000274658203, - 252.5 - ], - "bbox": [ - 151.7000274658203, - 246.1999969482422, - 156.6000213623047, - 266.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 156.6000213623047, - 252.5 - ], - "bbox": [ - 156.6000213623047, - 247.8000030517578, - 161.80001831054688, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 161.80001831054688, - 252.5 - ], - "bbox": [ - 161.80001831054688, - 246.5, - 167.30001831054688, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F/", - "origin": [ - 167.30001831054688, - 252.5 - ], - "bbox": [ - 167.30001831054688, - 247.8000030517578, - 173.1000213623047, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6·", - "origin": [ - 173.1000213623047, - 252.5 - ], - "bbox": [ - 173.1000213623047, - 246.5, - 179.30001831054688, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¯M", - "origin": [ - 179.30001831054688, - 252.5 - ], - "bbox": [ - 179.30001831054688, - 247.8000030517578, - 182.9000244140625, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ý", - "origin": [ - 182.9000244140625, - 252.5 - ], - "bbox": [ - 182.9000244140625, - 246.5, - 188.30001831054688, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 188.30001831054688, - 252.5 - ], - "bbox": [ - 188.30001831054688, - 246.1999969482422, - 193.20001220703125, - 266.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 193.20001220703125, - 252.5 - ], - "bbox": [ - 193.20001220703125, - 247.8000030517578, - 198.40000915527344, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"äHÃ&·ÛÃ\nÃ", - "origin": [ - 198.40000915527344, - 252.5 - ], - "bbox": [ - 198.40000915527344, - 246.5, - 224.80001831054688, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#0", - "origin": [ - 224.80001831054688, - 252.5 - ], - "bbox": [ - 224.80001831054688, - 247.8000030517578, - 230.00001525878906, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÝ", - "origin": [ - 230.00001525878906, - 252.5 - ], - "bbox": [ - 230.00001525878906, - 246.5, - 235.30001831054688, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 235.30001831054688, - 252.5 - ], - "bbox": [ - 235.30001831054688, - 246.1999969482422, - 240.20001220703125, - 266.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 240.20001220703125, - 252.5 - ], - "bbox": [ - 240.20001220703125, - 247.8000030517578, - 245.50001525878906, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gäIÂ\"¹", - "origin": [ - 245.50001525878906, - 252.5 - ], - "bbox": [ - 245.50001525878906, - 246.5, - 261.4000244140625, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@{", - "origin": [ - 261.4000244140625, - 252.5 - ], - "bbox": [ - 261.4000244140625, - 247.8000030517578, - 266.5000305175781, - 265.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 246.1999969482422, - 266.5000305175781, - 266.6000061035156 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 72.50001525878906, - 259.9000244140625, - 109.50000762939453, - 280.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 72.50001525878906, - 266.20001220703125 - ], - "bbox": [ - 72.50001525878906, - 260.20001220703125, - 77.80001831054688, - 279.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè?ð", - "origin": [ - 77.80001831054688, - 266.20001220703125 - ], - "bbox": [ - 77.80001831054688, - 259.9000244140625, - 88.00001525878906, - 280.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H›", - "origin": [ - 88.00001525878906, - 266.20001220703125 - ], - "bbox": [ - 88.00001525878906, - 260.20001220703125, - 93.20001220703125, - 279.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ë", - "origin": [ - 93.20001220703125, - 266.20001220703125 - ], - "bbox": [ - 93.20001220703125, - 259.9000244140625, - 103.90000915527344, - 280.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 103.90000915527344, - 266.20001220703125 - ], - "bbox": [ - 103.90000915527344, - 260.20001220703125, - 109.50000762939453, - 279.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 259.9000244140625, - 109.50000762939453, - 280.3000183105469 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.30000305175781, - 283.70001220703125, - 104.20000457763672, - 304.1000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 290.0 - ], - "bbox": [ - 72.30000305175781, - 283.70001220703125, - 104.20000457763672, - 304.1000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 283.70001220703125, - 104.20000457763672, - 304.1000061035156 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 96.0, - 459.20001220703125, - 133.39999389648438, - 479.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "±²(³�", - "origin": [ - 96.0, - 465.5 - ], - "bbox": [ - 96.0, - 460.79998779296875, - 119.80000305175781, - 478.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "s’i†", - "origin": [ - 119.80000305175781, - 465.5 - ], - "bbox": [ - 119.80000305175781, - 459.20001220703125, - 133.39999389648438, - 479.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.0, - 459.20001220703125, - 133.39999389648438, - 479.6000061035156 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 149.3000030517578, - 459.20001220703125, - 163.5, - 479.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0016", - "origin": [ - 149.3000030517578, - 465.5 - ], - "bbox": [ - 149.3000030517578, - 459.5, - 149.3000030517578, - 478.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " †oŠ", - "origin": [ - 149.3000030517578, - 465.5 - ], - "bbox": [ - 149.3000030517578, - 459.20001220703125, - 163.5, - 479.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 149.3000030517578, - 459.20001220703125, - 163.5, - 479.6000061035156 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 84.0, - 488.1999816894531, - 208.0000457763672, - 507.3999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "j\u0017}gtÕÝ|¡/ŸHŸH´1µ€£\n£I¶\n¶\n¶1·¸¶\"¹&·\u001bºŠ»Š¼g£Hä", - "origin": [ - 84.0, - 494.1999816894531 - ], - "bbox": [ - 84.0, - 488.1999816894531, - 208.0000457763672, - 507.3999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.0, - 488.1999816894531, - 208.0000457763672, - 507.3999938964844 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 82.69999694824219, - 501.7999572753906, - 224.80001831054688, - 520.9999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‚Eƒ…„\u0015†rÝI¡/Ÿ\nŸH´1µ\u001b£\n£|¶\n¶\n¶…·×áI¼|À.Á\u0013·\u001bºF»H¼g£Hä", - "origin": [ - 82.69999694824219, - 507.7999572753906 - ], - "bbox": [ - 82.69999694824219, - 501.7999572753906, - 224.80001831054688, - 520.9999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69999694824219, - 501.7999572753906, - 224.80001831054688, - 520.9999389648438 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 82.4000015258789, - 515.0999145507812, - 260.8000183105469, - 535.4998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ž�„\u0015†rÝ|¡\nŸ\nŸH´1µ€£H£|¶\n¶\n¶1·y¶g¹&·\u001bº|»\n¼\"£", - "origin": [ - 82.4000015258789, - 521.39990234375 - ], - "bbox": [ - 82.4000015258789, - 515.39990234375, - 203.20001220703125, - 534.5999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 203.20001220703125, - 521.39990234375 - ], - "bbox": [ - 203.20001220703125, - 515.0999145507812, - 208.20001220703125, - 535.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "нg£", - "origin": [ - 208.20001220703125, - 521.39990234375 - ], - "bbox": [ - 208.20001220703125, - 515.39990234375, - 218.9000244140625, - 534.5999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�X", - "origin": [ - 218.9000244140625, - 521.39990234375 - ], - "bbox": [ - 218.9000244140625, - 516.6998901367188, - 223.9000244140625, - 534.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F¡/ŸIÀ.Á", - "origin": [ - 223.9000244140625, - 521.39990234375 - ], - "bbox": [ - 223.9000244140625, - 515.39990234375, - 245.1000213623047, - 534.5999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 119.39999389648438, - 129.9000244140625 - ], - "bbox": [ - 119.39999389648438, - 125.20002746582031, - 124.69999694824219, - 143.00003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ߊ»", - "origin": [ - 124.69999694824219, - 129.9000244140625 - ], - "bbox": [ - 124.69999694824219, - 123.9000244140625, - 135.1999969482422, - 143.1000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$#/-$", - "origin": [ - 135.1999969482422, - 129.9000244140625 - ], - "bbox": [ - 135.1999969482422, - 125.20002746582031, - 157.09999084472656, - 143.00003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.69999694824219, - 123.9000244140625, - 157.09999084472656, - 143.1000213623047 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 125.0, - 137.1000213623047, - 396.6000061035156, - 157.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "áYÆFÀ\nÀ�Ċ»\nã", - "origin": [ - 125.0, - 143.4000244140625 - ], - "bbox": [ - 125.0, - 137.4000244140625, - 156.20001220703125, - 156.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$", - "origin": [ - 156.20001220703125, - 143.4000244140625 - ], - "bbox": [ - 156.20001220703125, - 138.7000274658203, - 167.60000610351562, - 156.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "[è", - "origin": [ - 167.60000610351562, - 143.4000244140625 - ], - "bbox": [ - 167.60000610351562, - 137.1000213623047, - 172.0, - 157.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H¡.žHáȟ\"ÄFÅfÁŠßU¼\u0011žYâ\"ßgá«áFºcÀ\u0011ßNáIŸ\"ĊŸ\u0011žŠáIŸ\u0011žH \nárÄFÅgºFÆ\nŸ«àH»HÆ.žYŸ", - "origin": [ - 172.0, - 143.4000244140625 - ], - "bbox": [ - 172.0, - 137.4000244140625, - 396.6000061035156, - 156.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 125.0, - 137.1000213623047, - 396.6000061035156, - 157.50003051757812 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 108.9000015258789, - 151.10003662109375, - 355.20001220703125, - 170.30003356933594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "à\"ÁgžIßgá\u0013µ\u0015Ċâ\"ßF»\"Ċ¼\"ß(¡gßgžY¼H¡/Ÿ", - "origin": [ - 108.9000015258789, - 157.10003662109375 - ], - "bbox": [ - 108.9000015258789, - 151.10003662109375, - 213.70001220703125, - 170.30003356933594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.9000015258789, - 151.10003662109375, - 213.70001220703125, - 170.30003356933594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ÄFÞ", - "origin": [ - 224.10000610351562, - 157.10003662109375 - ], - "bbox": [ - 224.10000610351562, - 151.10003662109375, - 229.10000610351562, - 170.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1>", - "origin": [ - 229.10000610351562, - 157.10003662109375 - ], - "bbox": [ - 229.10000610351562, - 152.40003967285156, - 234.5, - 170.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "k¶\"ßfžY¼H¡/Ÿ", - "origin": [ - 234.5, - 157.10003662109375 - ], - "bbox": [ - 234.5, - 151.10003662109375, - 271.20001220703125, - 170.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "DP", - "origin": [ - 271.20001220703125, - 157.10003662109375 - ], - "bbox": [ - 271.20001220703125, - 152.40003967285156, - 277.9000244140625, - 170.20004272460938 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "~ÄFÞ", - "origin": [ - 277.9000244140625, - 157.10003662109375 - ], - "bbox": [ - 277.9000244140625, - 151.10003662109375, - 291.8000183105469, - 170.30003356933594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 291.8000183105469, - 157.10003662109375 - ], - "bbox": [ - 291.8000183105469, - 152.40003967285156, - 297.3000183105469, - 170.20004272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 224.10000610351562, - 151.10003662109375, - 297.3000183105469, - 170.30003356933594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "´gߊ»� |ßFÞ/Ÿ\"Ċ¼/ß", - "origin": [ - 307.4000244140625, - 157.10003662109375 - ], - "bbox": [ - 307.4000244140625, - 151.10003662109375, - 355.20001220703125, - 170.30003356933594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.4000244140625, - 151.10003662109375, - 355.20001220703125, - 170.30003356933594 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 108.70002746582031, - 164.800048828125, - 339.70001220703125, - 184.0000457763672 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶.žYŸŠ¡0»/ß", - "origin": [ - 108.70002746582031, - 170.800048828125 - ], - "bbox": [ - 108.70002746582031, - 164.800048828125, - 140.4000244140625, - 184.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 140.4000244140625, - 170.800048828125 - ], - "bbox": [ - 140.4000244140625, - 166.1000518798828, - 145.6000213623047, - 183.90005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.70002746582031, - 164.800048828125, - 145.6000213623047, - 184.0000457763672 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ߊã\"ßgá", - "origin": [ - 156.00003051757812, - 170.800048828125 - ], - "bbox": [ - 156.00003051757812, - 164.800048828125, - 172.20004272460938, - 184.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "­…", - "origin": [ - 172.20004272460938, - 170.800048828125 - ], - "bbox": [ - 172.20004272460938, - 166.1000518798828, - 183.40003967285156, - 183.90005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Wà/ºF»«Å\"ºŠŸH¡UÀ\u0011Ä/ÁHß\"á(ÄFÞ", - "origin": [ - 183.40003967285156, - 170.800048828125 - ], - "bbox": [ - 183.40003967285156, - 164.800048828125, - 270.8000183105469, - 184.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e>", - "origin": [ - 270.8000183105469, - 170.800048828125 - ], - "bbox": [ - 270.8000183105469, - 166.1000518798828, - 276.3000183105469, - 183.90005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.00003051757812, - 164.800048828125, - 276.3000183105469, - 184.0000457763672 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "à/ßYÀ\u0011Ä/ÁŠßgá", - "origin": [ - 286.70001220703125, - 170.800048828125 - ], - "bbox": [ - 286.70001220703125, - 164.800048828125, - 318.8000183105469, - 184.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1†", - "origin": [ - 318.8000183105469, - 170.800048828125 - ], - "bbox": [ - 318.8000183105469, - 166.1000518798828, - 324.20001220703125, - 183.90005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "9·", - "origin": [ - 324.20001220703125, - 170.800048828125 - ], - "bbox": [ - 324.20001220703125, - 164.800048828125, - 330.6000061035156, - 184.0000457763672 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�$", - "origin": [ - 330.6000061035156, - 170.800048828125 - ], - "bbox": [ - 330.6000061035156, - 166.1000518798828, - 335.0, - 183.90005493164062 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Yä", - "origin": [ - 335.0, - 170.800048828125 - ], - "bbox": [ - 335.0, - 164.800048828125, - 339.70001220703125, - 184.0000457763672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 286.70001220703125, - 164.800048828125, - 339.70001220703125, - 184.0000457763672 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 72.50001525878906, - 178.1000213623047, - 371.2999267578125, - 198.50003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "݊¾", - "origin": [ - 72.50001525878906, - 184.4000244140625 - ], - "bbox": [ - 72.50001525878906, - 178.4000244140625, - 77.60001373291016, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ð", - "origin": [ - 77.60001373291016, - 184.4000244140625 - ], - "bbox": [ - 77.60001373291016, - 178.1000213623047, - 82.80001068115234, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#'", - "origin": [ - 82.80001068115234, - 184.4000244140625 - ], - "bbox": [ - 82.80001068115234, - 179.7000274658203, - 88.00000762939453, - 197.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nè+é", - "origin": [ - 88.00000762939453, - 184.4000244140625 - ], - "bbox": [ - 88.00000762939453, - 178.1000213623047, - 99.20001220703125, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�;", - "origin": [ - 99.20001220703125, - 184.4000244140625 - ], - "bbox": [ - 99.20001220703125, - 179.7000274658203, - 104.20001220703125, - 197.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Fœ\"ä\nÝ", - "origin": [ - 104.20001220703125, - 184.4000244140625 - ], - "bbox": [ - 104.20001220703125, - 178.4000244140625, - 120.00001525878906, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cë\nï", - "origin": [ - 120.00001525878906, - 184.4000244140625 - ], - "bbox": [ - 120.00001525878906, - 178.1000213623047, - 130.30001831054688, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 130.30001831054688, - 184.4000244140625 - ], - "bbox": [ - 130.30001831054688, - 178.4000244140625, - 135.9000244140625, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ð", - "origin": [ - 135.9000244140625, - 184.4000244140625 - ], - "bbox": [ - 135.9000244140625, - 178.1000213623047, - 140.80001831054688, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "(Ÿ\"ß\"áIŸ«Ÿ\"ÄFÅfÁHß(¶\u0011žYŸH¡UÀ\u0011ߊ»\n¼/ß", - "origin": [ - 140.80001831054688, - 184.4000244140625 - ], - "bbox": [ - 140.80001831054688, - 178.4000244140625, - 255.59999084472656, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 255.59999084472656, - 184.4000244140625 - ], - "bbox": [ - 255.59999084472656, - 179.7000274658203, - 260.79998779296875, - 197.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "N Fß/Á\nÁ/áŠÝ\n£", - "origin": [ - 260.79998779296875, - 184.4000244140625 - ], - "bbox": [ - 260.79998779296875, - 178.4000244140625, - 302.89996337890625, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cë\nï", - "origin": [ - 302.89996337890625, - 184.4000244140625 - ], - "bbox": [ - 302.89996337890625, - 178.1000213623047, - 313.199951171875, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä\nÝ\n£Š¾", - "origin": [ - 313.199951171875, - 184.4000244140625 - ], - "bbox": [ - 313.199951171875, - 178.4000244140625, - 334.3999328613281, - 197.6000213623047 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "?ð", - "origin": [ - 334.3999328613281, - 184.4000244140625 - ], - "bbox": [ - 334.3999328613281, - 178.1000213623047, - 339.5999450683594, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#'", - "origin": [ - 339.5999450683594, - 184.4000244140625 - ], - "bbox": [ - 339.5999450683594, - 179.7000274658203, - 344.7999572753906, - 197.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\nèwé", - "origin": [ - 344.7999572753906, - 184.4000244140625 - ], - "bbox": [ - 344.7999572753906, - 178.1000213623047, - 355.8999328613281, - 198.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�;", - "origin": [ - 355.8999328613281, - 184.4000244140625 - ], - "bbox": [ - 355.8999328613281, - 179.7000274658203, - 360.8999328613281, - 197.50003051757812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iœgä", - "origin": [ - 360.8999328613281, - 184.4000244140625 - ], - "bbox": [ - 360.8999328613281, - 178.4000244140625, - 371.2999267578125, - 197.6000213623047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 178.1000213623047, - 371.2999267578125, - 198.50003051757812 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 72.50001525878906, - 191.6999969482422, - 292.6999816894531, - 212.10000610351562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.50001525878906, - 198.0 - ], - "bbox": [ - 72.50001525878906, - 192.0, - 72.50001525878906, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 72.50001525878906, - 198.0 - ], - "bbox": [ - 72.50001525878906, - 191.6999969482422, - 77.50001525878906, - 212.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½\"ä\nÝ", - "origin": [ - 77.50001525878906, - 198.0 - ], - "bbox": [ - 77.50001525878906, - 192.0, - 93.60002136230469, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.60002136230469, - 198.0 - ], - "bbox": [ - 93.60002136230469, - 191.6999969482422, - 98.60002136230469, - 212.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 98.60002136230469, - 198.0 - ], - "bbox": [ - 98.60002136230469, - 193.3000030517578, - 103.9000244140625, - 211.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "k»\"º|¶\u0011áY´gÄFÞ", - "origin": [ - 103.9000244140625, - 198.0 - ], - "bbox": [ - 103.9000244140625, - 192.0, - 145.7000274658203, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$\f0G$", - "origin": [ - 145.7000274658203, - 198.0 - ], - "bbox": [ - 145.7000274658203, - 193.3000030517578, - 167.70001220703125, - 211.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "IäHÝ", - "origin": [ - 167.70001220703125, - 198.0 - ], - "bbox": [ - 167.70001220703125, - 192.0, - 177.70001220703125, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 177.70001220703125, - 198.0 - ], - "bbox": [ - 177.70001220703125, - 191.6999969482422, - 182.70001220703125, - 212.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 182.70001220703125, - 198.0 - ], - "bbox": [ - 182.70001220703125, - 193.3000030517578, - 188.00001525878906, - 211.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "k Fº/Á\"ác´gÄFÞ", - "origin": [ - 188.00001525878906, - 198.0 - ], - "bbox": [ - 188.00001525878906, - 192.0, - 229.30001831054688, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "\u001e\"%$\u00190G$", - "origin": [ - 229.30001831054688, - 198.0 - ], - "bbox": [ - 229.30001831054688, - 193.3000030517578, - 251.30001831054688, - 211.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä", - "origin": [ - 251.30001831054688, - 198.0 - ], - "bbox": [ - 251.30001831054688, - 192.0, - 256.1000061035156, - 211.1999969482422 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cð", - "origin": [ - 256.1000061035156, - 198.0 - ], - "bbox": [ - 256.1000061035156, - 191.6999969482422, - 261.1000061035156, - 212.10000610351562 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nâ/ßF»\"Ċ¼\nß", - "origin": [ - 261.1000061035156, - 198.0 - ], - "bbox": [ - 261.1000061035156, - 192.0, - 292.6999816894531, - 211.1999969482422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 191.6999969482422, - 292.6999816894531, - 212.10000610351562 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 93.40001678466797, - 205.2999725341797, - 230.29998779296875, - 225.69998168945312 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 93.40001678466797, - 211.5999755859375 - ], - "bbox": [ - 93.40001678466797, - 205.5999755859375, - 93.40001678466797, - 224.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.40001678466797, - 211.5999755859375 - ], - "bbox": [ - 93.40001678466797, - 205.2999725341797, - 98.40001678466797, - 225.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#8", - "origin": [ - 98.40001678466797, - 211.5999755859375 - ], - "bbox": [ - 98.40001678466797, - 206.8999786376953, - 103.60001373291016, - 224.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "0»\"º|¶\u0011áY´gÄFÞ", - "origin": [ - 103.60001373291016, - 211.5999755859375 - ], - "bbox": [ - 103.60001373291016, - 205.5999755859375, - 145.70001220703125, - 224.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "1\"%$\f0G$", - "origin": [ - 145.70001220703125, - 211.5999755859375 - ], - "bbox": [ - 145.70001220703125, - 206.8999786376953, - 167.6999969482422, - 224.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Iä|½\"ß", - "origin": [ - 167.6999969482422, - 211.5999755859375 - ], - "bbox": [ - 167.6999969482422, - 205.5999755859375, - 182.89999389648438, - 224.7999725341797 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 182.89999389648438, - 211.5999755859375 - ], - "bbox": [ - 182.89999389648438, - 206.8999786376953, - 188.09999084472656, - 224.69998168945312 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/ÝI›\n½gäHß|ã\"ß\"á", - "origin": [ - 188.09999084472656, - 211.5999755859375 - ], - "bbox": [ - 188.09999084472656, - 205.5999755859375, - 230.29998779296875, - 224.7999725341797 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.40001678466797, - 205.2999725341797, - 230.29998779296875, - 225.69998168945312 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 72.50001525878906, - 218.99998474121094, - 193.2000274658203, - 239.39999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.50001525878906, - 225.29998779296875 - ], - "bbox": [ - 72.50001525878906, - 219.29998779296875, - 72.50001525878906, - 238.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 72.50001525878906, - 225.29998779296875 - ], - "bbox": [ - 72.50001525878906, - 218.99998474121094, - 77.50001525878906, - 239.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½\"ä\nÝ", - "origin": [ - 77.50001525878906, - 225.29998779296875 - ], - "bbox": [ - 77.50001525878906, - 219.29998779296875, - 93.60002136230469, - 238.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.60002136230469, - 225.29998779296875 - ], - "bbox": [ - 93.60002136230469, - 218.99998474121094, - 98.60002136230469, - 239.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 98.60002136230469, - 225.29998779296875 - ], - "bbox": [ - 98.60002136230469, - 220.59999084472656, - 103.9000244140625, - 238.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gäI¡gßfžY¼H¡\nŸgÝ", - "origin": [ - 103.9000244140625, - 225.29998779296875 - ], - "bbox": [ - 103.9000244140625, - 219.29998779296875, - 146.4000244140625, - 238.49998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 146.4000244140625, - 225.29998779296875 - ], - "bbox": [ - 146.4000244140625, - 218.99998474121094, - 151.4000244140625, - 239.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#8", - "origin": [ - 151.4000244140625, - 225.29998779296875 - ], - "bbox": [ - 151.4000244140625, - 220.59999084472656, - 156.6000213623047, - 238.39999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"äI¶gßfž\\¼H¡\nŸ", - "origin": [ - 156.6000213623047, - 225.29998779296875 - ], - "bbox": [ - 156.6000213623047, - 219.29998779296875, - 193.2000274658203, - 238.49998474121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 218.99998474121094, - 193.2000274658203, - 239.39999389648438 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 72.50001525878906, - 232.49998474121094, - 256.00006103515625, - 252.89999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.50001525878906, - 238.79998779296875 - ], - "bbox": [ - 72.50001525878906, - 232.79998779296875, - 72.50001525878906, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 72.50001525878906, - 238.79998779296875 - ], - "bbox": [ - 72.50001525878906, - 232.49998474121094, - 77.50001525878906, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½\"ä\nÝ", - "origin": [ - 77.50001525878906, - 238.79998779296875 - ], - "bbox": [ - 77.50001525878906, - 232.79998779296875, - 93.60002136230469, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.60002136230469, - 238.79998779296875 - ], - "bbox": [ - 93.60002136230469, - 232.49998474121094, - 98.60002136230469, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 98.60002136230469, - 238.79998779296875 - ], - "bbox": [ - 98.60002136230469, - 234.09999084472656, - 103.9000244140625, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 103.9000244140625, - 238.79998779296875 - ], - "bbox": [ - 103.9000244140625, - 232.79998779296875, - 109.5000228881836, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4ï", - "origin": [ - 109.5000228881836, - 238.79998779296875 - ], - "bbox": [ - 109.5000228881836, - 232.49998474121094, - 114.4000244140625, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ä/ÁHßgáFÝ", - "origin": [ - 114.4000244140625, - 238.79998779296875 - ], - "bbox": [ - 114.4000244140625, - 232.79998779296875, - 141.10003662109375, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 141.10003662109375, - 238.79998779296875 - ], - "bbox": [ - 141.10003662109375, - 232.49998474121094, - 146.10003662109375, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 146.10003662109375, - 238.79998779296875 - ], - "bbox": [ - 146.10003662109375, - 234.09999084472656, - 151.40003967285156, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 151.40003967285156, - 238.79998779296875 - ], - "bbox": [ - 151.40003967285156, - 232.79998779296875, - 156.90003967285156, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "A/", - "origin": [ - 156.90003967285156, - 238.79998779296875 - ], - "bbox": [ - 156.90003967285156, - 234.09999084472656, - 162.60003662109375, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=·", - "origin": [ - 162.60003662109375, - 238.79998779296875 - ], - "bbox": [ - 162.60003662109375, - 232.79998779296875, - 168.70004272460938, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "®J", - "origin": [ - 168.70004272460938, - 238.79998779296875 - ], - "bbox": [ - 168.70004272460938, - 234.09999084472656, - 172.5000457763672, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ý", - "origin": [ - 172.5000457763672, - 238.79998779296875 - ], - "bbox": [ - 172.5000457763672, - 232.79998779296875, - 177.90003967285156, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "%è", - "origin": [ - 177.90003967285156, - 238.79998779296875 - ], - "bbox": [ - 177.90003967285156, - 232.49998474121094, - 182.70004272460938, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 182.70004272460938, - 238.79998779296875 - ], - "bbox": [ - 182.70004272460938, - 234.09999084472656, - 188.0000457763672, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"äŠÃ#·\u001bÃ\nʹ/Ý", - "origin": [ - 188.0000457763672, - 238.79998779296875 - ], - "bbox": [ - 188.0000457763672, - 232.79998779296875, - 224.90005493164062, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 224.90005493164062, - 238.79998779296875 - ], - "bbox": [ - 224.90005493164062, - 232.49998474121094, - 229.800048828125, - 252.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 229.800048828125, - 238.79998779296875 - ], - "bbox": [ - 229.800048828125, - 234.09999084472656, - 235.0000457763672, - 251.89999389648438 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"äFÂ\"Ã", - "origin": [ - 235.0000457763672, - 238.79998779296875 - ], - "bbox": [ - 235.0000457763672, - 232.79998779296875, - 251.0000457763672, - 251.99998474121094 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�{", - "origin": [ - 251.0000457763672, - 238.79998779296875 - ], - "bbox": [ - 251.0000457763672, - 234.09999084472656, - 256.00006103515625, - 251.89999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 232.49998474121094, - 256.00006103515625, - 252.89999389648438 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 72.50001525878906, - 246.1999969482422, - 266.5000305175781, - 266.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý", - "origin": [ - 72.50001525878906, - 252.5 - ], - "bbox": [ - 72.50001525878906, - 246.5, - 72.50001525878906, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 72.50001525878906, - 252.5 - ], - "bbox": [ - 72.50001525878906, - 246.1999969482422, - 77.50001525878906, - 266.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n½\"ä\nÝ", - "origin": [ - 77.50001525878906, - 252.5 - ], - "bbox": [ - 77.50001525878906, - 246.5, - 93.60002136230469, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 93.60002136230469, - 252.5 - ], - "bbox": [ - 93.60002136230469, - 246.1999969482422, - 98.60002136230469, - 266.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-8", - "origin": [ - 98.60002136230469, - 252.5 - ], - "bbox": [ - 98.60002136230469, - 247.8000030517578, - 103.9000244140625, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 103.9000244140625, - 252.5 - ], - "bbox": [ - 103.9000244140625, - 246.5, - 109.5000228881836, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�r", - "origin": [ - 109.5000228881836, - 252.5 - ], - "bbox": [ - 109.5000228881836, - 247.8000030517578, - 114.4000244140625, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßYÀ\u0011Ä/ÁŠßgáŠÝ", - "origin": [ - 114.4000244140625, - 252.5 - ], - "bbox": [ - 114.4000244140625, - 246.5, - 151.7000274658203, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 151.7000274658203, - 252.5 - ], - "bbox": [ - 151.7000274658203, - 246.1999969482422, - 156.6000213623047, - 266.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 156.6000213623047, - 252.5 - ], - "bbox": [ - 156.6000213623047, - 247.8000030517578, - 161.80001831054688, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ä", - "origin": [ - 161.80001831054688, - 252.5 - ], - "bbox": [ - 161.80001831054688, - 246.5, - 167.30001831054688, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "F/", - "origin": [ - 167.30001831054688, - 252.5 - ], - "bbox": [ - 167.30001831054688, - 247.8000030517578, - 173.1000213623047, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6·", - "origin": [ - 173.1000213623047, - 252.5 - ], - "bbox": [ - 173.1000213623047, - 246.5, - 179.30001831054688, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "¯M", - "origin": [ - 179.30001831054688, - 252.5 - ], - "bbox": [ - 179.30001831054688, - 247.8000030517578, - 182.9000244140625, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "/Ý", - "origin": [ - 182.9000244140625, - 252.5 - ], - "bbox": [ - 182.9000244140625, - 246.5, - 188.30001831054688, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 188.30001831054688, - 252.5 - ], - "bbox": [ - 188.30001831054688, - 246.1999969482422, - 193.20001220703125, - 266.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#:", - "origin": [ - 193.20001220703125, - 252.5 - ], - "bbox": [ - 193.20001220703125, - 247.8000030517578, - 198.40000915527344, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"äHÃ&·ÛÃ\nÃ", - "origin": [ - 198.40000915527344, - 252.5 - ], - "bbox": [ - 198.40000915527344, - 246.5, - 224.80001831054688, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#0", - "origin": [ - 224.80001831054688, - 252.5 - ], - "bbox": [ - 224.80001831054688, - 247.8000030517578, - 230.00001525878906, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nÝ", - "origin": [ - 230.00001525878906, - 252.5 - ], - "bbox": [ - 230.00001525878906, - 246.5, - 235.30001831054688, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "4è", - "origin": [ - 235.30001831054688, - 252.5 - ], - "bbox": [ - 235.30001831054688, - 246.1999969482422, - 240.20001220703125, - 266.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-:", - "origin": [ - 240.20001220703125, - 252.5 - ], - "bbox": [ - 240.20001220703125, - 247.8000030517578, - 245.50001525878906, - 265.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gäIÂ\"¹", - "origin": [ - 245.50001525878906, - 252.5 - ], - "bbox": [ - 245.50001525878906, - 246.5, - 261.4000244140625, - 265.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@{", - "origin": [ - 261.4000244140625, - 252.5 - ], - "bbox": [ - 261.4000244140625, - 247.8000030517578, - 266.5000305175781, - 265.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 246.1999969482422, - 266.5000305175781, - 266.6000061035156 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 72.50001525878906, - 259.9000244140625, - 109.50000762939453, - 280.3000183105469 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ý\n£", - "origin": [ - 72.50001525878906, - 266.20001220703125 - ], - "bbox": [ - 72.50001525878906, - 260.20001220703125, - 77.80001831054688, - 279.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè?ð", - "origin": [ - 77.80001831054688, - 266.20001220703125 - ], - "bbox": [ - 77.80001831054688, - 259.9000244140625, - 88.00001525878906, - 280.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "H›", - "origin": [ - 88.00001525878906, - 266.20001220703125 - ], - "bbox": [ - 88.00001525878906, - 260.20001220703125, - 93.20001220703125, - 279.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "Fê?ë", - "origin": [ - 93.20001220703125, - 266.20001220703125 - ], - "bbox": [ - 93.20001220703125, - 259.9000244140625, - 103.90000915527344, - 280.3000183105469 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "gä", - "origin": [ - 103.90000915527344, - 266.20001220703125 - ], - "bbox": [ - 103.90000915527344, - 260.20001220703125, - 109.50000762939453, - 279.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50001525878906, - 259.9000244140625, - 109.50000762939453, - 280.3000183105469 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 72.30000305175781, - 283.70001220703125, - 104.20000457763672, - 304.1000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3\u001e£\u001c©F©F6#8", - "origin": [ - 72.30000305175781, - 290.0 - ], - "bbox": [ - 72.30000305175781, - 283.70001220703125, - 104.20000457763672, - 304.1000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.30000305175781, - 283.70001220703125, - 104.20000457763672, - 304.1000061035156 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 124.5, - 305.70001220703125, - 276.8000183105469, - 326.1000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ð", - "origin": [ - 124.5, - 312.0 - ], - "bbox": [ - 124.5, - 305.70001220703125, - 124.5, - 326.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "0Ÿ/ßgáIŸ«Ÿ\"ÄFÅfÁŠß(¶.žYŸH¡UÀ\u0011ߊ»H¼\"ß", - "origin": [ - 124.5, - 312.0 - ], - "bbox": [ - 124.5, - 306.0, - 239.89999389648438, - 325.20001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "#>", - "origin": [ - 239.89999389648438, - 312.0 - ], - "bbox": [ - 239.89999389648438, - 307.29998779296875, - 245.09999084472656, - 325.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "N Fß/ÁHÁ\"á", - "origin": [ - 245.09999084472656, - 312.0 - ], - "bbox": [ - 245.09999084472656, - 306.0, - 276.8000183105469, - 325.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.5, - 305.70001220703125, - 276.8000183105469, - 326.1000061035156 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 99.0, - 319.70001220703125, - 308.800048828125, - 338.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿", - "origin": [ - 99.0, - 325.70001220703125 - ], - "bbox": [ - 99.0, - 319.70001220703125, - 308.800048828125, - 338.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.0, - 319.70001220703125, - 308.800048828125, - 338.9000244140625 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 187.30003356933594, - 333.0000305175781, - 219.20004272460938, - 353.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ð", - "origin": [ - 187.30003356933594, - 339.3000183105469 - ], - "bbox": [ - 187.30003356933594, - 333.0000305175781, - 187.30003356933594, - 353.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nâ/ߊ»\"Ċ¼\"ß", - "origin": [ - 187.30003356933594, - 339.3000183105469 - ], - "bbox": [ - 187.30003356933594, - 333.3000183105469, - 219.20004272460938, - 352.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.30003356933594, - 333.0000305175781, - 219.20004272460938, - 353.4000244140625 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 276.10003662109375, - 333.3000183105469, - 286.7000427246094, - 352.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "½\"ß", - "origin": [ - 276.10003662109375, - 339.3000183105469 - ], - "bbox": [ - 276.10003662109375, - 333.3000183105469, - 281.60003662109375, - 352.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 281.60003662109375, - 339.3000183105469 - ], - "bbox": [ - 281.60003662109375, - 334.6000061035156, - 286.7000427246094, - 352.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.10003662109375, - 333.3000183105469, - 286.7000427246094, - 352.5000305175781 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 156.60003662109375, - 347.0000305175781, - 251.40005493164062, - 366.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿H¿H¿H¿\n¿\n¿", - "origin": [ - 156.60003662109375, - 353.0000305175781 - ], - "bbox": [ - 156.60003662109375, - 347.0000305175781, - 251.40005493164062, - 366.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.60003662109375, - 347.0000305175781, - 251.40005493164062, - 366.2000427246094 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 271.10003662109375, - 347.0000305175781, - 287.300048828125, - 366.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ߊã\"ßgá", - "origin": [ - 271.10003662109375, - 353.0000305175781 - ], - "bbox": [ - 271.10003662109375, - 347.0000305175781, - 287.300048828125, - 366.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.10003662109375, - 347.0000305175781, - 287.300048828125, - 366.2000427246094 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 166.20004272460938, - 360.5000305175781, - 192.70004272460938, - 379.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡gßgžY¼H¡/Ÿ", - "origin": [ - 166.20004272460938, - 366.5000305175781 - ], - "bbox": [ - 166.20004272460938, - 360.5000305175781, - 192.70004272460938, - 379.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 166.20004272460938, - 360.5000305175781, - 192.70004272460938, - 379.7000427246094 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 218.5000457763672, - 360.5000305175781, - 245.0000457763672, - 379.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶gßfžc¼H¡/Ÿ", - "origin": [ - 218.5000457763672, - 366.5000305175781 - ], - "bbox": [ - 218.5000457763672, - 360.5000305175781, - 245.0000457763672, - 379.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.5000457763672, - 360.5000305175781, - 245.0000457763672, - 379.7000427246094 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 99.00003814697266, - 374.2000427246094, - 308.80010986328125, - 393.4000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿", - "origin": [ - 99.00003814697266, - 380.2000427246094 - ], - "bbox": [ - 99.00003814697266, - 374.2000427246094, - 308.80010986328125, - 393.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.00003814697266, - 374.2000427246094, - 308.80010986328125, - 393.4000549316406 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 108.800048828125, - 387.6000671386719, - 130.40005493164062, - 408.00006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ï", - "origin": [ - 108.800048828125, - 393.9000549316406 - ], - "bbox": [ - 108.800048828125, - 387.6000671386719, - 108.800048828125, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ä/ÁŠßgá", - "origin": [ - 108.800048828125, - 393.9000549316406 - ], - "bbox": [ - 108.800048828125, - 387.9000549316406, - 130.40005493164062, - 407.1000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.800048828125, - 387.6000671386719, - 130.40005493164062, - 408.00006103515625 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 161.90003967285156, - 387.9000549316406, - 171.90003967285156, - 407.1000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "/", - "origin": [ - 161.90003967285156, - 393.9000549316406 - ], - "bbox": [ - 161.90003967285156, - 389.2000427246094, - 161.90003967285156, - 407.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6·", - "origin": [ - 161.90003967285156, - 393.9000549316406 - ], - "bbox": [ - 161.90003967285156, - 387.9000549316406, - 168.10003662109375, - 407.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "®J", - "origin": [ - 168.10003662109375, - 393.9000549316406 - ], - "bbox": [ - 168.10003662109375, - 389.2000427246094, - 171.90003967285156, - 407.00006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.90003967285156, - 387.9000549316406, - 171.90003967285156, - 407.1000671386719 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 213.60003662109375, - 387.9000549316406, - 234.800048828125, - 407.1000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ã&·\u001bÃ\nÃ\n¹", - "origin": [ - 213.60003662109375, - 393.9000549316406 - ], - "bbox": [ - 213.60003662109375, - 387.9000549316406, - 234.800048828125, - 407.1000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 213.60003662109375, - 387.9000549316406, - 234.800048828125, - 407.1000671386719 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 276.10003662109375, - 387.9000549316406, - 286.7000427246094, - 407.1000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Â\"Ã", - "origin": [ - 276.10003662109375, - 393.9000549316406 - ], - "bbox": [ - 276.10003662109375, - 387.9000549316406, - 281.60003662109375, - 407.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@{", - "origin": [ - 281.60003662109375, - 393.9000549316406 - ], - "bbox": [ - 281.60003662109375, - 389.2000427246094, - 286.7000427246094, - 407.00006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.10003662109375, - 387.9000549316406, - 286.7000427246094, - 407.1000671386719 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 99.00003814697266, - 401.4000549316406, - 308.80010986328125, - 420.6000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿", - "origin": [ - 99.00003814697266, - 407.4000549316406 - ], - "bbox": [ - 99.00003814697266, - 401.4000549316406, - 308.80010986328125, - 420.6000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.00003814697266, - 401.4000549316406, - 308.80010986328125, - 420.6000671386719 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 103.50005340576172, - 415.1000671386719, - 135.70005798339844, - 434.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "r", - "origin": [ - 103.50005340576172, - 421.1000671386719 - ], - "bbox": [ - 103.50005340576172, - 416.4000549316406, - 103.50005340576172, - 434.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßYÀ\u0011Ä\nÁHßgá", - "origin": [ - 103.50005340576172, - 421.1000671386719 - ], - "bbox": [ - 103.50005340576172, - 415.1000671386719, - 135.70005798339844, - 434.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.50005340576172, - 415.1000671386719, - 135.70005798339844, - 434.3000793457031 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 161.90005493164062, - 415.1000671386719, - 171.90005493164062, - 434.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "/", - "origin": [ - 161.90005493164062, - 421.1000671386719 - ], - "bbox": [ - 161.90005493164062, - 416.4000549316406, - 161.90005493164062, - 434.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6·", - "origin": [ - 161.90005493164062, - 421.1000671386719 - ], - "bbox": [ - 161.90005493164062, - 415.1000671386719, - 168.1000518798828, - 434.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "®M", - "origin": [ - 168.1000518798828, - 421.1000671386719 - ], - "bbox": [ - 168.1000518798828, - 416.4000549316406, - 171.90005493164062, - 434.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.90005493164062, - 415.1000671386719, - 171.90005493164062, - 434.3000793457031 - ] - } - ] - }, - { - "number": 56, - "type": 0, - "bbox": [ - 213.6000518798828, - 415.1000671386719, - 234.80006408691406, - 434.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ã&·\u001bÃ\nÃ", - "origin": [ - 213.6000518798828, - 421.1000671386719 - ], - "bbox": [ - 213.6000518798828, - 415.1000671386719, - 229.50006103515625, - 434.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-0", - "origin": [ - 229.50006103515625, - 421.1000671386719 - ], - "bbox": [ - 229.50006103515625, - 416.4000549316406, - 234.80006408691406, - 434.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 213.6000518798828, - 415.1000671386719, - 234.80006408691406, - 434.3000793457031 - ] - } - ] - }, - { - "number": 58, - "type": 0, - "bbox": [ - 276.10003662109375, - 415.1000671386719, - 286.7000427246094, - 434.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Â\"¹", - "origin": [ - 276.10003662109375, - 421.1000671386719 - ], - "bbox": [ - 276.10003662109375, - 415.1000671386719, - 281.60003662109375, - 434.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@{", - "origin": [ - 281.60003662109375, - 421.1000671386719 - ], - "bbox": [ - 281.60003662109375, - 416.4000549316406, - 286.7000427246094, - 434.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.10003662109375, - 415.1000671386719, - 286.7000427246094, - 434.3000793457031 - ] - } - ] - }, - { - "number": 61, - "type": 0, - "bbox": [ - 99.00003814697266, - 428.7000732421875, - 308.80010986328125, - 447.90008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿", - "origin": [ - 99.00003814697266, - 434.7000732421875 - ], - "bbox": [ - 99.00003814697266, - 428.7000732421875, - 308.80010986328125, - 447.90008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.00003814697266, - 428.7000732421875, - 308.80010986328125, - 447.90008544921875 - ] - } - ] - }, - { - "number": 63, - "type": 0, - "bbox": [ - 96.0, - 459.20001220703125, - 133.39999389648438, - 479.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "±²(³�", - "origin": [ - 96.0, - 465.5 - ], - "bbox": [ - 96.0, - 460.79998779296875, - 119.80000305175781, - 478.6000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "s’i†", - "origin": [ - 119.80000305175781, - 465.5 - ], - "bbox": [ - 119.80000305175781, - 459.20001220703125, - 133.39999389648438, - 479.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.0, - 459.20001220703125, - 133.39999389648438, - 479.6000061035156 - ] - } - ] - }, - { - "number": 65, - "type": 0, - "bbox": [ - 149.3000030517578, - 459.20001220703125, - 163.5, - 479.6000061035156 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\u0016", - "origin": [ - 149.3000030517578, - 465.5 - ], - "bbox": [ - 149.3000030517578, - 459.5, - 149.3000030517578, - 478.70001220703125 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": " †oŠ", - "origin": [ - 149.3000030517578, - 465.5 - ], - "bbox": [ - 149.3000030517578, - 459.20001220703125, - 163.5, - 479.6000061035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 149.3000030517578, - 459.20001220703125, - 163.5, - 479.6000061035156 - ] - } - ] - }, - { - "number": 67, - "type": 0, - "bbox": [ - 84.0, - 488.1999816894531, - 208.0000457763672, - 507.3999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "j\u0017}gtÕÝ|¡/ŸHŸH´1µ€£\n£I¶\n¶\n¶1·¸¶\"¹&·\u001bºŠ»Š¼g£Hä", - "origin": [ - 84.0, - 494.1999816894531 - ], - "bbox": [ - 84.0, - 488.1999816894531, - 208.0000457763672, - 507.3999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 84.0, - 488.1999816894531, - 208.0000457763672, - 507.3999938964844 - ] - } - ] - }, - { - "number": 69, - "type": 0, - "bbox": [ - 82.69999694824219, - 501.7999572753906, - 224.80001831054688, - 520.9999389648438 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "‚Eƒ…„\u0015†rÝI¡/Ÿ\nŸH´1µ\u001b£\n£|¶\n¶\n¶…·×áI¼|À.Á\u0013·\u001bºF»H¼g£Hä", - "origin": [ - 82.69999694824219, - 507.7999572753906 - ], - "bbox": [ - 82.69999694824219, - 501.7999572753906, - 224.80001831054688, - 520.9999389648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.69999694824219, - 501.7999572753906, - 224.80001831054688, - 520.9999389648438 - ] - } - ] - }, - { - "number": 71, - "type": 0, - "bbox": [ - 82.4000015258789, - 515.0999145507812, - 260.8000183105469, - 535.4998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ž�„\u0015†rÝ|¡\nŸ\nŸH´1µ€£H£|¶\n¶\n¶1·y¶g¹&·\u001bº|»\n¼\"£", - "origin": [ - 82.4000015258789, - 521.39990234375 - ], - "bbox": [ - 82.4000015258789, - 515.39990234375, - 203.20001220703125, - 534.5999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001cè", - "origin": [ - 203.20001220703125, - 521.39990234375 - ], - "bbox": [ - 203.20001220703125, - 515.0999145507812, - 208.20001220703125, - 535.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "нg£", - "origin": [ - 208.20001220703125, - 521.39990234375 - ], - "bbox": [ - 208.20001220703125, - 515.39990234375, - 218.9000244140625, - 534.5999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "�X", - "origin": [ - 218.9000244140625, - 521.39990234375 - ], - "bbox": [ - 218.9000244140625, - 516.6998901367188, - 223.9000244140625, - 534.4998779296875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "F¡/ŸIÀ.Á", - "origin": [ - 223.9000244140625, - 521.39990234375 - ], - "bbox": [ - 223.9000244140625, - 515.39990234375, - 245.1000213623047, - 534.5999145507812 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "", - "origin": [ - 239.89999389648438, - 312.0 - ], - "bbox": [ - 239.89999389648438, - 307.29998779296875, - 245.09999084472656, - 325.1000061035156 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "N Fß/ÁHÁ\"á", - "origin": [ - 245.09999084472656, - 312.0 - ], - "bbox": [ - 245.09999084472656, - 306.0, - 276.8000183105469, - 325.20001220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.5, - 305.70001220703125, - 276.8000183105469, - 326.1000061035156 - ] - } - ], - "tag": "on-image" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 99.0, - 319.70001220703125, - 308.800048828125, - 338.9000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿", - "origin": [ - 99.0, - 325.70001220703125 - ], - "bbox": [ - 99.0, - 319.70001220703125, - 308.800048828125, - 338.9000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.0, - 319.70001220703125, - 308.800048828125, - 338.9000244140625 - ] - } - ], - "tag": "on-image" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 187.30003356933594, - 333.0000305175781, - 219.20004272460938, - 353.4000244140625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ð", - "origin": [ - 187.30003356933594, - 339.3000183105469 - ], - "bbox": [ - 187.30003356933594, - 333.0000305175781, - 187.30003356933594, - 353.4000244140625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\nâ/ߊ»\"Ċ¼\"ß", - "origin": [ - 187.30003356933594, - 339.3000183105469 - ], - "bbox": [ - 187.30003356933594, - 333.3000183105469, - 219.20004272460938, - 352.5000305175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 187.30003356933594, - 333.0000305175781, - 219.20004272460938, - 353.4000244140625 - ] - } - ], - "tag": "on-image" - }, - { - "number": 24, - "type": 0, - "bbox": [ - 276.10003662109375, - 333.3000183105469, - 286.7000427246094, - 352.5000305175781 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "½\"ß", - "origin": [ - 276.10003662109375, - 339.3000183105469 - ], - "bbox": [ - 276.10003662109375, - 333.3000183105469, - 281.60003662109375, - 352.5000305175781 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@>", - "origin": [ - 281.60003662109375, - 339.3000183105469 - ], - "bbox": [ - 281.60003662109375, - 334.6000061035156, - 286.7000427246094, - 352.4000244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.10003662109375, - 333.3000183105469, - 286.7000427246094, - 352.5000305175781 - ] - } - ], - "tag": "on-image" - }, - { - "number": 26, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 27, - "type": 0, - "bbox": [ - 156.60003662109375, - 347.0000305175781, - 251.40005493164062, - 366.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿H¿H¿H¿\n¿\n¿", - "origin": [ - 156.60003662109375, - 353.0000305175781 - ], - "bbox": [ - 156.60003662109375, - 347.0000305175781, - 251.40005493164062, - 366.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.60003662109375, - 347.0000305175781, - 251.40005493164062, - 366.2000427246094 - ] - } - ], - "tag": "on-image" - }, - { - "number": 29, - "type": 0, - "bbox": [ - 271.10003662109375, - 347.0000305175781, - 287.300048828125, - 366.2000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "ߊã\"ßgá", - "origin": [ - 271.10003662109375, - 353.0000305175781 - ], - "bbox": [ - 271.10003662109375, - 347.0000305175781, - 287.300048828125, - 366.2000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.10003662109375, - 347.0000305175781, - 287.300048828125, - 366.2000427246094 - ] - } - ], - "tag": "on-image" - }, - { - "number": 31, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 32, - "type": 0, - "bbox": [ - 166.20004272460938, - 360.5000305175781, - 192.70004272460938, - 379.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¡gßgžY¼H¡/Ÿ", - "origin": [ - 166.20004272460938, - 366.5000305175781 - ], - "bbox": [ - 166.20004272460938, - 360.5000305175781, - 192.70004272460938, - 379.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 166.20004272460938, - 360.5000305175781, - 192.70004272460938, - 379.7000427246094 - ] - } - ], - "tag": "on-image" - }, - { - "number": 34, - "type": 0, - "bbox": [ - 218.5000457763672, - 360.5000305175781, - 245.0000457763672, - 379.7000427246094 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¶gßfžc¼H¡/Ÿ", - "origin": [ - 218.5000457763672, - 366.5000305175781 - ], - "bbox": [ - 218.5000457763672, - 360.5000305175781, - 245.0000457763672, - 379.7000427246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.5000457763672, - 360.5000305175781, - 245.0000457763672, - 379.7000427246094 - ] - } - ], - "tag": "on-image" - }, - { - "number": 35, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 37, - "type": 0, - "bbox": [ - 99.00003814697266, - 374.2000427246094, - 308.80010986328125, - 393.4000549316406 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿", - "origin": [ - 99.00003814697266, - 380.2000427246094 - ], - "bbox": [ - 99.00003814697266, - 374.2000427246094, - 308.80010986328125, - 393.4000549316406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.00003814697266, - 374.2000427246094, - 308.80010986328125, - 393.4000549316406 - ] - } - ], - "tag": "on-image" - }, - { - "number": 40, - "type": 0, - "bbox": [ - 108.800048828125, - 387.6000671386719, - 130.40005493164062, - 408.00006103515625 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ï", - "origin": [ - 108.800048828125, - 393.9000549316406 - ], - "bbox": [ - 108.800048828125, - 387.6000671386719, - 108.800048828125, - 408.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"Ä/ÁŠßgá", - "origin": [ - 108.800048828125, - 393.9000549316406 - ], - "bbox": [ - 108.800048828125, - 387.9000549316406, - 130.40005493164062, - 407.1000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.800048828125, - 387.6000671386719, - 130.40005493164062, - 408.00006103515625 - ] - } - ], - "tag": "on-image" - }, - { - "number": 42, - "type": 0, - "bbox": [ - 161.90003967285156, - 387.9000549316406, - 171.90003967285156, - 407.1000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "/", - "origin": [ - 161.90003967285156, - 393.9000549316406 - ], - "bbox": [ - 161.90003967285156, - 389.2000427246094, - 161.90003967285156, - 407.00006103515625 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6·", - "origin": [ - 161.90003967285156, - 393.9000549316406 - ], - "bbox": [ - 161.90003967285156, - 387.9000549316406, - 168.10003662109375, - 407.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "®J", - "origin": [ - 168.10003662109375, - 393.9000549316406 - ], - "bbox": [ - 168.10003662109375, - 389.2000427246094, - 171.90003967285156, - 407.00006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.90003967285156, - 387.9000549316406, - 171.90003967285156, - 407.1000671386719 - ] - } - ], - "tag": "on-image" - }, - { - "number": 44, - "type": 0, - "bbox": [ - 213.60003662109375, - 387.9000549316406, - 234.800048828125, - 407.1000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ã&·\u001bÃ\nÃ\n¹", - "origin": [ - 213.60003662109375, - 393.9000549316406 - ], - "bbox": [ - 213.60003662109375, - 387.9000549316406, - 234.800048828125, - 407.1000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 213.60003662109375, - 387.9000549316406, - 234.800048828125, - 407.1000671386719 - ] - } - ], - "tag": "on-image" - }, - { - "number": 46, - "type": 0, - "bbox": [ - 276.10003662109375, - 387.9000549316406, - 286.7000427246094, - 407.1000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Â\"Ã", - "origin": [ - 276.10003662109375, - 393.9000549316406 - ], - "bbox": [ - 276.10003662109375, - 387.9000549316406, - 281.60003662109375, - 407.1000671386719 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@{", - "origin": [ - 281.60003662109375, - 393.9000549316406 - ], - "bbox": [ - 281.60003662109375, - 389.2000427246094, - 286.7000427246094, - 407.00006103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.10003662109375, - 387.9000549316406, - 286.7000427246094, - 407.1000671386719 - ] - } - ], - "tag": "on-image" - }, - { - "number": 49, - "type": 0, - "bbox": [ - 99.00003814697266, - 401.4000549316406, - 308.80010986328125, - 420.6000671386719 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿", - "origin": [ - 99.00003814697266, - 407.4000549316406 - ], - "bbox": [ - 99.00003814697266, - 401.4000549316406, - 308.80010986328125, - 420.6000671386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.00003814697266, - 401.4000549316406, - 308.80010986328125, - 420.6000671386719 - ] - } - ], - "tag": "on-image" - }, - { - "number": 52, - "type": 0, - "bbox": [ - 103.50005340576172, - 415.1000671386719, - 135.70005798339844, - 434.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "r", - "origin": [ - 103.50005340576172, - 421.1000671386719 - ], - "bbox": [ - 103.50005340576172, - 416.4000549316406, - 103.50005340576172, - 434.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\"ßYÀ\u0011Ä\nÁHßgá", - "origin": [ - 103.50005340576172, - 421.1000671386719 - ], - "bbox": [ - 103.50005340576172, - 415.1000671386719, - 135.70005798339844, - 434.3000793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 103.50005340576172, - 415.1000671386719, - 135.70005798339844, - 434.3000793457031 - ] - } - ], - "tag": "on-image" - }, - { - "number": 54, - "type": 0, - "bbox": [ - 161.90005493164062, - 415.1000671386719, - 171.90005493164062, - 434.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "/", - "origin": [ - 161.90005493164062, - 421.1000671386719 - ], - "bbox": [ - 161.90005493164062, - 416.4000549316406, - 161.90005493164062, - 434.2000732421875 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "6·", - "origin": [ - 161.90005493164062, - 421.1000671386719 - ], - "bbox": [ - 161.90005493164062, - 415.1000671386719, - 168.1000518798828, - 434.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "®M", - "origin": [ - 168.1000518798828, - 421.1000671386719 - ], - "bbox": [ - 168.1000518798828, - 416.4000549316406, - 171.90005493164062, - 434.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.90005493164062, - 415.1000671386719, - 171.90005493164062, - 434.3000793457031 - ] - } - ], - "tag": "on-image" - }, - { - "number": 56, - "type": 0, - "bbox": [ - 213.6000518798828, - 415.1000671386719, - 234.80006408691406, - 434.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Ã&·\u001bÃ\nÃ", - "origin": [ - 213.6000518798828, - 421.1000671386719 - ], - "bbox": [ - 213.6000518798828, - 415.1000671386719, - 229.50006103515625, - 434.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "-0", - "origin": [ - 229.50006103515625, - 421.1000671386719 - ], - "bbox": [ - 229.50006103515625, - 416.4000549316406, - 234.80006408691406, - 434.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 213.6000518798828, - 415.1000671386719, - 234.80006408691406, - 434.3000793457031 - ] - } - ], - "tag": "on-image" - }, - { - "number": 58, - "type": 0, - "bbox": [ - 276.10003662109375, - 415.1000671386719, - 286.7000427246094, - 434.3000793457031 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "Â\"¹", - "origin": [ - 276.10003662109375, - 421.1000671386719 - ], - "bbox": [ - 276.10003662109375, - 415.1000671386719, - 281.60003662109375, - 434.3000793457031 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "C", - "color": 0, - "ascender": 131.0, - "descender": -47.0, - "text": "@{", - "origin": [ - 281.60003662109375, - 421.1000671386719 - ], - "bbox": [ - 281.60003662109375, - 416.4000549316406, - 286.7000427246094, - 434.2000732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.10003662109375, - 415.1000671386719, - 286.7000427246094, - 434.3000793457031 - ] - } - ], - "tag": "on-image" - }, - { - "number": 61, - "type": 0, - "bbox": [ - 99.00003814697266, - 428.7000732421875, - 308.80010986328125, - 447.90008544921875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿H¿\n¿\n¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿H¿\n¿\n¿Š¿\n¿H¿H¿", - "origin": [ - 99.00003814697266, - 434.7000732421875 - ], - "bbox": [ - 99.00003814697266, - 428.7000732421875, - 308.80010986328125, - 447.90008544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.00003814697266, - 428.7000732421875, - 308.80010986328125, - 447.90008544921875 - ] - } - ], - "tag": "on-image" - }, - { - "number": 80, - "type": 0, - "bbox": [ - 2147483520.0, - 2147483520.0, - -2147483648.0, - -2147483648.0 - ], - "lines": [], - "tag": "on-image" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 72.5, - 35.29997634887695, - 138.20001220703125, - 55.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "÷", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 72.5, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "=�«�", - "origin": [ - 72.5, - 41.5999755859375 - ], - "bbox": [ - 72.5, - 35.5999755859375, - 88.9000015258789, - 54.79997634887695 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u000fü", - "origin": [ - 88.9000015258789, - 41.5999755859375 - ], - "bbox": [ - 88.9000015258789, - 35.29997634887695, - 97.5, - 55.699974060058594 - ] - }, - { - "size": 0.10000000149011612, - "flags": 0, - "font": "B", - "color": 0, - "ascender": 132.0, - "descender": -60.0, - "text": "\n�", - "origin": [ - 97.5, - 41.5999755859375 - ], - "bbox": [ - 97.5, - 35.5999755859375, - 102.80000305175781, - 54.79997634887695 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.5, - 35.29997634887695, - 102.80000305175781, - 55.699974060058594 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "ü9˜%¾\n–œ\u001c¾\nØ", - "origin": [ - 106.30000305175781, - 41.5999755859375 - ], - "bbox": [ - 106.30000305175781, - 35.29997634887695, - 138.20001220703125, - 55.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.30000305175781, - 35.29997634887695, - 138.20001220703125, - 55.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.2999877929688, - 57.699974060058594 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": ":=Ò", - "origin": [ - 530.7999877929688, - 43.5999755859375 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.2999877929688, - 57.699974060058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 530.7999877929688, - 37.29997634887695, - 535.2999877929688, - 57.699974060058594 - ] - } - ], - "tag": "header" - }, - { - "number": 92, - "type": 0, - "bbox": [ - 82.30001831054688, - 730.89990234375, - 273.7000732421875, - 751.2998657226562 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦)6B¥/£/¦)§F¨g6=©95b6[5bå)5u\u001b76H6[©…¨g6=¤7§F\u001bu6B¥/6BÊ-\u0019!Ôõ£9§F\u001b7©\u001a«¬\u001be ", - "origin": [ - 82.30001831054688, - 737.1998901367188 - ], - "bbox": [ - 82.30001831054688, - 730.89990234375, - 273.7000732421875, - 751.2998657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30001831054688, - 730.89990234375, - 273.7000732421875, - 751.2998657226562 - ] - } - ], - "tag": "footer" - }, - { - "number": 94, - "type": 0, - "bbox": [ - 82.30001831054688, - 744.4998779296875, - 535.7999877929688, - 764.8998413085938 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "3R6Ù\u0018�£9\u001b�5u«¬£9©\u001a¤\u000f¥F6Ù¦[6�¥/£/¦)§\u001a¨^6=©?5É\u0018w6[§FÆ96[©?5‰å[57\u001bu6\u000e§/5u«¬Ê-«Y¤�È=6=¤…¦)£9¨^¨g6�«¬Ê-ʬ§�¤\\5u\u001bu\u0019457«-£\u001c©\u001a¤‰¥;¯", - "origin": [ - 82.30001831054688, - 750.7998657226562 - ], - "bbox": [ - 82.30001831054688, - 744.4998779296875, - 413.5, - 764.8998413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.30001831054688, - 744.4998779296875, - 413.5, - 764.8998413085938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§\u001a©F6�\u0018\u001a\u001b7Èe¤�6=©95ª\u0019%5u«¬£9©", - "origin": [ - 415.60003662109375, - 750.7998657226562 - ], - "bbox": [ - 415.60003662109375, - 744.4998779296875, - 484.2000427246094, - 764.8998413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 415.60003662109375, - 744.4998779296875, - 484.2000427246094, - 764.8998413085938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "£\u001c§", - "origin": [ - 494.4000244140625, - 750.7998657226562 - ], - "bbox": [ - 494.4000244140625, - 744.4998779296875, - 499.4000244140625, - 764.8998413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 494.4000244140625, - 744.4998779296875, - 499.4000244140625, - 764.8998413085938 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "¦[£\u001c¨g¨g6", - "origin": [ - 509.8000183105469, - 750.7998657226562 - ], - "bbox": [ - 509.8000183105469, - 744.4998779296875, - 535.7999877929688, - 764.8998413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 509.8000183105469, - 744.4998779296875, - 535.7999877929688, - 764.8998413085938 - ] - } - ], - "tag": "footer" - }, - { - "number": 95, - "type": 0, - "bbox": [ - 82.20001220703125, - 758.0999145507812, - 408.0000305175781, - 778.4998779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "\u001b76=¨g\u0019\u001c\u001bu²?§F6e¤s¤7\u0019\u001c©\u001a¤o\u00194§/5u£\u001c\u001bu«-¤u\u0019%5u«¬£9©c\u0018F\u001buÈ=\u0019\u001cÊ-\u0019\u001cÐFʬ6B¤7«;ʬ6e¤o¦)«¬5u\u0019457«-£\u001c©\u001a¤b¥K¯", - "origin": [ - 82.20001220703125, - 764.39990234375 - ], - "bbox": [ - 82.20001220703125, - 758.0999145507812, - 321.0000305175781, - 778.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 82.20001220703125, - 758.0999145507812, - 321.0000305175781, - 778.4998779296875 - ] - }, - { - "spans": [ - { - "size": 0.10000000149011612, - "flags": 0, - "font": "A", - "color": 0, - "ascender": 141.0, - "descender": -63.0, - "text": "§\u001a¤u\u00194Ç96V¤7£\u001c©?5o\u001buÈ=\u00194Ê-«Y¤�È=6=¤= ", - "origin": [ - 323.10003662109375, - 764.39990234375 - ], - "bbox": [ - 323.10003662109375, - 758.0999145507812, - 408.0000305175781, - 778.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.10003662109375, - 758.0999145507812, - 408.0000305175781, - 778.4998779296875 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [ - { - "bbox": [ - 86.8508064516129, - 303.2159544159544, - 319.5725806451613, - 448.90008544921875 - ], - "image_path": "images/13_86_303_319_448.jpg" - } - ], - "table_backup": [], - "page_idx": 13, - "page_size": [ - 595.0, - 842.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\344\270\255\346\226\207\345\215\225\345\210\227_\344\271\246\347\261\215_100247_4_\350\243\205\351\245\260\345\233\276\347\211\207.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\344\270\255\346\226\207\345\215\225\345\210\227_\344\271\246\347\261\215_100247_4_\350\243\205\351\245\260\345\233\276\347\211\207.pdf/preproc_out.json" deleted file mode 100644 index d73fd1b0d..000000000 --- "a/tests/assets/pre_proc_results/\344\270\255\346\226\207\345\215\225\345\210\227_\344\271\246\347\261\215_100247_4_\350\243\205\351\245\260\345\233\276\347\211\207.pdf/preproc_out.json" +++ /dev/null @@ -1,1279 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 133.7009735107422, - 71.23444366455078, - 241.90069580078125, - 105.01055908203125 - ], - "lines": [ - { - "spans": [ - { - "size": 25.81100082397461, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "调虎离山", - "origin": [ - 133.7009735107422, - 98.15451049804688 - ], - "bbox": [ - 133.7009735107422, - 71.23444366455078, - 241.90069580078125, - 105.01055908203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.7009735107422, - 71.23444366455078, - 241.90069580078125, - 105.01055908203125 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 45.990631103515625, - 298.78173828125, - 93.81614685058594, - 314.27288818359375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "【译文】", - "origin": [ - 45.990631103515625, - 311.12841796875 - ], - "bbox": [ - 45.990631103515625, - 298.78173828125, - 93.81614685058594, - 314.27288818359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 45.990631103515625, - 298.78173828125, - 93.81614685058594, - 314.27288818359375 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 76.05915069580078, - 323.13250732421875, - 324.24285888671875, - 338.6236572265625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "等待客观条件对敌方不利时再去围困它,用人为", - "origin": [ - 76.05915069580078, - 335.47918701171875 - ], - "bbox": [ - 76.05915069580078, - 323.13250732421875, - 324.24285888671875, - 338.6236572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.05915069580078, - 323.13250732421875, - 324.24285888671875, - 338.6236572265625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 51.968841552734375, - 347.19915771484375, - 324.2073669433594, - 362.6903076171875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "的因素去诱惑调动它。向前进攻有危险时,就想办法", - "origin": [ - 51.968841552734375, - 359.54583740234375 - ], - "bbox": [ - 51.968841552734375, - 347.19915771484375, - 324.2073669433594, - 362.6903076171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 51.968841552734375, - 347.19915771484375, - 324.2073669433594, - 362.6903076171875 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 51.933349609375, - 371.36053466796875, - 159.9906005859375, - 386.8516540527344 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "让敌人返过来攻我。", - "origin": [ - 51.933349609375, - 383.7071838378906 - ], - "bbox": [ - 51.933349609375, - 371.36053466796875, - 159.9906005859375, - 386.8516540527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 51.933349609375, - 371.36053466796875, - 159.9906005859375, - 386.8516540527344 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 45.884117126464844, - 402.60101318359375, - 93.70964050292969, - 418.0921325683594 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "【溯源】", - "origin": [ - 45.884117126464844, - 414.9476623535156 - ], - "bbox": [ - 45.884117126464844, - 402.60101318359375, - 93.70964050292969, - 418.0921325683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 45.884117126464844, - 402.60101318359375, - 93.70964050292969, - 418.0921325683594 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 75.95264434814453, - 426.9517822265625, - 324.14825439453125, - 442.4429016113281 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "调虎离山,此计用在军事上,是一种调动敌人的", - "origin": [ - 75.95264434814453, - 439.2984313964844 - ], - "bbox": [ - 75.95264434814453, - 426.9517822265625, - 324.14825439453125, - 442.4429016113281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.95264434814453, - 426.9517822265625, - 324.14825439453125, - 442.4429016113281 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 169.9068603515625, - 447.10321044921875, - 205.61537170410156, - 459.161376953125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.829999923706055, - "flags": 4, - "font": "DY2+ZJSBrL-2", - "color": 0, - "ascender": 0.800000011920929, - "descender": -0.20000000298023224, - "text": "!", - "origin": [ - 185.62425231933594, - 456.81591796875 - ], - "bbox": [ - 185.62425231933594, - 449.7519226074219, - 190.03924560546875, - 458.5819091796875 - ] - }, - { - "size": 8.829999923706055, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": " —", - "origin": [ - 190.03924560546875, - 456.81591796875 - ], - "bbox": [ - 190.03924560546875, - 447.10321044921875, - 205.61537170410156, - 459.161376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 185.62425231933594, - 447.10321044921875, - 205.61537170410156, - 459.161376953125 - ] - }, - { - "spans": [ - { - "size": 8.829999923706055, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "—", - "origin": [ - 169.9068603515625, - 456.3126220703125 - ], - "bbox": [ - 169.9068603515625, - 447.10321044921875, - 178.7368621826172, - 458.6580810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.9068603515625, - 447.10321044921875, - 178.7368621826172, - 458.6580810546875 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 53, - 127, - 321, - 268 - ], - "image_path": "images/0_53_127_321_268.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 11.284072875976562, - 368.0, - 459.161376953125 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 133.7009735107422, - 71.23444366455078, - 241.90069580078125, - 105.01055908203125 - ], - "lines": [ - { - "spans": [ - { - "size": 25.81100082397461, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "调虎离山", - "origin": [ - 133.7009735107422, - 98.15451049804688 - ], - "bbox": [ - 133.7009735107422, - 71.23444366455078, - 241.90069580078125, - 105.01055908203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 133.7009735107422, - 71.23444366455078, - 241.90069580078125, - 105.01055908203125 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 45.990631103515625, - 298.78173828125, - 93.81614685058594, - 314.27288818359375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "【译文】", - "origin": [ - 45.990631103515625, - 311.12841796875 - ], - "bbox": [ - 45.990631103515625, - 298.78173828125, - 93.81614685058594, - 314.27288818359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 45.990631103515625, - 298.78173828125, - 93.81614685058594, - 314.27288818359375 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 76.05915069580078, - 323.13250732421875, - 324.24285888671875, - 338.6236572265625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "等待客观条件对敌方不利时再去围困它,用人为", - "origin": [ - 76.05915069580078, - 335.47918701171875 - ], - "bbox": [ - 76.05915069580078, - 323.13250732421875, - 324.24285888671875, - 338.6236572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.05915069580078, - 323.13250732421875, - 324.24285888671875, - 338.6236572265625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 51.968841552734375, - 347.19915771484375, - 324.2073669433594, - 362.6903076171875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "的因素去诱惑调动它。向前进攻有危险时,就想办法", - "origin": [ - 51.968841552734375, - 359.54583740234375 - ], - "bbox": [ - 51.968841552734375, - 347.19915771484375, - 324.2073669433594, - 362.6903076171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 51.968841552734375, - 347.19915771484375, - 324.2073669433594, - 362.6903076171875 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 51.933349609375, - 371.36053466796875, - 159.9906005859375, - 386.8516540527344 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "让敌人返过来攻我。", - "origin": [ - 51.933349609375, - 383.7071838378906 - ], - "bbox": [ - 51.933349609375, - 371.36053466796875, - 159.9906005859375, - 386.8516540527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 51.933349609375, - 371.36053466796875, - 159.9906005859375, - 386.8516540527344 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 45.884117126464844, - 402.60101318359375, - 93.70964050292969, - 418.0921325683594 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "【溯源】", - "origin": [ - 45.884117126464844, - 414.9476623535156 - ], - "bbox": [ - 45.884117126464844, - 402.60101318359375, - 93.70964050292969, - 418.0921325683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 45.884117126464844, - 402.60101318359375, - 93.70964050292969, - 418.0921325683594 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 75.95264434814453, - 426.9517822265625, - 324.14825439453125, - 442.4429016113281 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "调虎离山,此计用在军事上,是一种调动敌人的", - "origin": [ - 75.95264434814453, - 439.2984313964844 - ], - "bbox": [ - 75.95264434814453, - 426.9517822265625, - 324.14825439453125, - 442.4429016113281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.95264434814453, - 426.9517822265625, - 324.14825439453125, - 442.4429016113281 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 169.9068603515625, - 447.10321044921875, - 205.61537170410156, - 459.161376953125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.829999923706055, - "flags": 4, - "font": "DY2+ZJSBrL-2", - "color": 0, - "ascender": 0.800000011920929, - "descender": -0.20000000298023224, - "text": "!", - "origin": [ - 185.62425231933594, - 456.81591796875 - ], - "bbox": [ - 185.62425231933594, - 449.7519226074219, - 190.03924560546875, - 458.5819091796875 - ] - }, - { - "size": 8.829999923706055, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": " —", - "origin": [ - 190.03924560546875, - 456.81591796875 - ], - "bbox": [ - 190.03924560546875, - 447.10321044921875, - 205.61537170410156, - 459.161376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 185.62425231933594, - 447.10321044921875, - 205.61537170410156, - 459.161376953125 - ] - }, - { - "spans": [ - { - "size": 8.829999923706055, - "flags": 0, - "font": "ËÎÌå", - "color": 0, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "—", - "origin": [ - 169.9068603515625, - 456.3126220703125 - ], - "bbox": [ - 169.9068603515625, - 447.10321044921875, - 178.7368621826172, - 458.6580810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.9068603515625, - 447.10321044921875, - 178.7368621826172, - 458.6580810546875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 106.35260009765625, - 11.284072875976562, - 238.4646453857422, - 26.775205612182617 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "图说案例本三十六计全书", - "origin": [ - 106.35260009765625, - 23.6307373046875 - ], - "bbox": [ - 106.35260009765625, - 11.284072875976562, - 238.4646453857422, - 26.775205612182617 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.35260009765625, - 11.284072875976562, - 238.4646453857422, - 26.775205612182617 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 338.5431213378906, - 231.63661193847656, - 350.3811340332031, - 283.2099609375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "第", - "origin": [ - 338.5431213378906, - 243.9832763671875 - ], - "bbox": [ - 338.5431213378906, - 231.63661193847656, - 350.3811340332031, - 247.12774658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 231.63661193847656, - 350.3811340332031, - 247.12774658203125 - ] - }, - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "十", - "origin": [ - 338.5431213378906, - 256.01068115234375 - ], - "bbox": [ - 338.5431213378906, - 243.6640167236328, - 350.3811340332031, - 259.1551513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 243.6640167236328, - 350.3811340332031, - 259.1551513671875 - ] - }, - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "五", - "origin": [ - 338.5431213378906, - 268.0380859375 - ], - "bbox": [ - 338.5431213378906, - 255.69142150878906, - 350.3811340332031, - 271.18255615234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 255.69142150878906, - 350.3811340332031, - 271.18255615234375 - ] - }, - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "计", - "origin": [ - 338.5431213378906, - 280.06549072265625 - ], - "bbox": [ - 338.5431213378906, - 267.71881103515625, - 350.3811340332031, - 283.2099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 267.71881103515625, - 350.3811340332031, - 283.2099609375 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 9, - "type": 0, - "bbox": [ - 338.5431213378906, - 231.63661193847656, - 350.3811340332031, - 283.2099609375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "第", - "origin": [ - 338.5431213378906, - 243.9832763671875 - ], - "bbox": [ - 338.5431213378906, - 231.63661193847656, - 350.3811340332031, - 247.12774658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 231.63661193847656, - 350.3811340332031, - 247.12774658203125 - ] - }, - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "十", - "origin": [ - 338.5431213378906, - 256.01068115234375 - ], - "bbox": [ - 338.5431213378906, - 243.6640167236328, - 350.3811340332031, - 259.1551513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 243.6640167236328, - 350.3811340332031, - 259.1551513671875 - ] - }, - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "五", - "origin": [ - 338.5431213378906, - 268.0380859375 - ], - "bbox": [ - 338.5431213378906, - 255.69142150878906, - 350.3811340332031, - 271.18255615234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 255.69142150878906, - 350.3811340332031, - 271.18255615234375 - ] - }, - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "计", - "origin": [ - 338.5431213378906, - 280.06549072265625 - ], - "bbox": [ - 338.5431213378906, - 267.71881103515625, - 350.3811340332031, - 283.2099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.5431213378906, - 267.71881103515625, - 350.3811340332031, - 283.2099609375 - ] - } - ], - "tag": "vertical_text" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 106.35260009765625, - 11.284072875976562, - 238.4646453857422, - 26.775205612182617 - ], - "lines": [ - { - "spans": [ - { - "size": 11.838000297546387, - "flags": 0, - "font": "ËÎÌå", - "color": 16777215, - "ascender": 1.04296875, - "descender": -0.265625, - "text": "图说案例本三十六计全书", - "origin": [ - 106.35260009765625, - 23.6307373046875 - ], - "bbox": [ - 106.35260009765625, - 11.284072875976562, - 238.4646453857422, - 26.775205612182617 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.35260009765625, - 11.284072875976562, - 238.4646453857422, - 26.775205612182617 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 368.0, - 467.20001220703125 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\344\271\246\345\217\214\345\210\227\345\233\276\346\226\207\344\272\244\351\224\231_p3_\345\233\276\346\226\207\346\267\267\346\216\222_91.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\344\271\246\345\217\214\345\210\227\345\233\276\346\226\207\344\272\244\351\224\231_p3_\345\233\276\346\226\207\346\267\267\346\216\222_91.pdf/preproc_out.json" deleted file mode 100644 index 1ae74dbfc..000000000 --- "a/tests/assets/pre_proc_results/\344\271\246\345\217\214\345\210\227\345\233\276\346\226\207\344\272\244\351\224\231_p3_\345\233\276\346\226\207\346\267\267\346\216\222_91.pdf/preproc_out.json" +++ /dev/null @@ -1,4285 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 306.6000061035156, - 792.1326904296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 89.76000213623047, - 790.1599731445312 - ], - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 92.04000091552734, - 792.1326904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 92.04000091552734, - 792.1326904296875 - ] - }, - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "106 ", - "origin": [ - 290.8800048828125, - 790.1599731445312 - ], - "bbox": [ - 290.8800048828125, - 782.0330200195312, - 306.6000061035156, - 792.1326904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.8800048828125, - 782.0330200195312, - 306.6000061035156, - 792.1326904296875 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 89.76000213623047, - 71.18001556396484, - 511.44000244140625, - 415.2677001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "位不断改变构图比例,渐次缩小人物占据的画面空间。", - "origin": [ - 89.76000213623047, - 84.08001708984375 - ], - "bbox": [ - 89.76000213623047, - 73.76751708984375, - 377.760009765625, - 85.76751708984375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 377.760009765625, - 84.08001708984375 - ], - "bbox": [ - 377.760009765625, - 71.18001556396484, - 383.760009765625, - 87.66801452636719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76000213623047, - 71.18001556396484, - 383.760009765625, - 87.66801452636719 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "这样构图的用意十分明显:在正义和良知", - "origin": [ - 291.1199951171875, - 99.67999267578125 - ], - "bbox": [ - 291.1199951171875, - 89.36749267578125, - 505.44000244140625, - 101.36749267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 291.1199951171875, - 89.36749267578125, - 505.44000244140625, - 101.36749267578125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "的挤压下,隐喻造成心理空间的挤压,人物占", - "origin": [ - 271.20001220703125, - 115.27996826171875 - ], - "bbox": [ - 271.20001220703125, - 104.96746826171875, - 505.44000244140625, - 116.96746826171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 104.96746826171875, - 505.44000244140625, - 116.96746826171875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "据的画面空间越来越小,实际表达出的是侥幸", - "origin": [ - 271.20001220703125, - 130.87994384765625 - ], - "bbox": [ - 271.20001220703125, - 120.56744384765625, - 505.44000244140625, - 132.56744384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 120.56744384765625, - 505.44000244140625, - 132.56744384765625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "心理的空间越来越小。这位老工人不得不交待", - "origin": [ - 271.20001220703125, - 146.47991943359375 - ], - "bbox": [ - 271.20001220703125, - 136.16741943359375, - 505.44000244140625, - 148.16741943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 136.16741943359375, - 505.44000244140625, - 148.16741943359375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "实情的心理过程,用这种可视的手段描画出", - "origin": [ - 271.20001220703125, - 162.07989501953125 - ], - "bbox": [ - 271.20001220703125, - 151.76739501953125, - 499.20001220703125, - 163.76739501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 151.76739501953125, - 499.20001220703125, - 163.76739501953125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "来,直接肯定了公安人员的心理攻势。通过可", - "origin": [ - 271.20001220703125, - 177.67987060546875 - ], - "bbox": [ - 271.20001220703125, - 167.36737060546875, - 505.44000244140625, - 179.36737060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 167.36737060546875, - 505.44000244140625, - 179.36737060546875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "视手段表达出来某种意向,属于看得见的暗", - "origin": [ - 271.20001220703125, - 193.27984619140625 - ], - "bbox": [ - 271.20001220703125, - 182.96734619140625, - 499.20001220703125, - 194.96734619140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 182.96734619140625, - 499.20001220703125, - 194.96734619140625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "示。", - "origin": [ - 271.20001220703125, - 208.87982177734375 - ], - "bbox": [ - 271.20001220703125, - 198.56732177734375, - 295.20001220703125, - 210.56732177734375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 295.20001220703125, - 208.87982177734375 - ], - "bbox": [ - 295.20001220703125, - 195.97982788085938, - 301.20001220703125, - 212.4678192138672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 195.97982788085938, - 301.20001220703125, - 212.4678192138672 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 295.20001220703125, - 224.47979736328125 - ], - "bbox": [ - 295.20001220703125, - 211.57980346679688, - 301.20001220703125, - 228.0677947998047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.20001220703125, - 211.57980346679688, - 301.20001220703125, - 228.0677947998047 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "SimSun,Bold", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "四、表现三个演员对话的类型", - "origin": [ - 295.20001220703125, - 240.07977294921875 - ], - "bbox": [ - 295.20001220703125, - 229.76727294921875, - 451.67999267578125, - 241.76727294921875 - ] - }, - { - "size": 12.0, - "flags": 16, - "font": "SimSun,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 451.9200134277344, - 240.07977294921875 - ], - "bbox": [ - 451.9200134277344, - 227.23977661132812, - 457.9320068359375, - 243.76377868652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.20001220703125, - 227.23977661132812, - 457.9320068359375, - 243.76377868652344 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "表现三个演员的对话,有以下几种基本的", - "origin": [ - 295.20001220703125, - 255.67974853515625 - ], - "bbox": [ - 295.20001220703125, - 245.36724853515625, - 505.44000244140625, - 257.36724853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.20001220703125, - 245.36724853515625, - 505.44000244140625, - 257.36724853515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "布局,不同的布局存在相应的视觉处理手法。", - "origin": [ - 271.20001220703125, - 271.27972412109375 - ], - "bbox": [ - 271.20001220703125, - 260.96722412109375, - 511.20001220703125, - 272.96722412109375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 505.44000244140625, - 271.27972412109375 - ], - "bbox": [ - 505.44000244140625, - 258.3797302246094, - 511.44000244140625, - 274.86773681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 258.3797302246094, - 511.44000244140625, - 274.86773681640625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "1", - "origin": [ - 295.20001220703125, - 286.87969970703125 - ], - "bbox": [ - 295.20001220703125, - 273.9797058105469, - 301.20001220703125, - 290.46771240234375 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、线形布局:如果三个演员的位置处于", - "origin": [ - 301.20001220703125, - 286.87969970703125 - ], - "bbox": [ - 301.20001220703125, - 276.56719970703125, - 505.20001220703125, - 288.56719970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.20001220703125, - 273.9797058105469, - 505.20001220703125, - 290.46771240234375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "一条直线,最简便的方法就是用两个外反拍镜", - "origin": [ - 271.20001220703125, - 302.47967529296875 - ], - "bbox": [ - 271.20001220703125, - 292.16717529296875, - 505.44000244140625, - 304.16717529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 292.16717529296875, - 505.44000244140625, - 304.16717529296875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "头,让每个演员在不同的镜头中都处于原来的位置。", - "origin": [ - 89.760009765625, - 318.07965087890625 - ], - "bbox": [ - 89.760009765625, - 307.76715087890625, - 365.760009765625, - 319.76715087890625 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 365.760009765625, - 318.07965087890625 - ], - "bbox": [ - 365.760009765625, - 305.1796569824219, - 371.760009765625, - 321.66766357421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 305.1796569824219, - 371.760009765625, - 321.66766357421875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 109.68002319335938, - 333.6796569824219 - ], - "bbox": [ - 109.68002319335938, - 320.7796630859375, - 115.68002319335938, - 337.2676696777344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.68002319335938, - 320.7796630859375, - 115.68002319335938, - 337.2676696777344 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "2", - "origin": [ - 113.76002502441406, - 349.2796630859375 - ], - "bbox": [ - 113.76002502441406, - 336.3796691894531, - 119.76002502441406, - 352.86767578125 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、", - "origin": [ - 119.76002502441406, - 349.2796630859375 - ], - "bbox": [ - 119.76002502441406, - 338.9671630859375, - 131.76002502441406, - 350.9671630859375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "C", - "origin": [ - 131.280029296875, - 349.2796630859375 - ], - "bbox": [ - 131.280029296875, - 336.3796691894531, - 137.280029296875, - 352.86767578125 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": " 形布局:如果前后两个演员面", - "origin": [ - 137.280029296875, - 349.2796630859375 - ], - "bbox": [ - 137.280029296875, - 338.9671630859375, - 295.6800537109375, - 350.9671630859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.76002502441406, - 336.3796691894531, - 295.6800537109375, - 352.86767578125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "对第三者,可以把这两个演员安排在直", - "origin": [ - 89.76004028320312, - 364.8796691894531 - ], - "bbox": [ - 89.76004028320312, - 354.5671691894531, - 293.7600402832031, - 366.5671691894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76004028320312, - 354.5671691894531, - 293.7600402832031, - 366.5671691894531 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "线的两端,全都面对中间的那个人,实", - "origin": [ - 89.76004028320312, - 380.47967529296875 - ], - "bbox": [ - 89.76004028320312, - 370.16717529296875, - 293.7600402832031, - 382.16717529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76004028320312, - 370.16717529296875, - 293.7600402832031, - 382.16717529296875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "际形成", - "origin": [ - 89.76004028320312, - 396.0796813964844 - ], - "bbox": [ - 89.76004028320312, - 385.7671813964844, - 125.76004028320312, - 397.7671813964844 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " C", - "origin": [ - 125.76004028320312, - 396.0796813964844 - ], - "bbox": [ - 125.76004028320312, - 383.1796875, - 134.64004516601562, - 399.6676940917969 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": " 形布局。", - "origin": [ - 134.64004516601562, - 396.0796813964844 - ], - "bbox": [ - 134.64004516601562, - 385.7671813964844, - 185.52005004882812, - 397.7671813964844 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 185.52005004882812, - 396.0796813964844 - ], - "bbox": [ - 185.52005004882812, - 383.1796875, - 191.52005004882812, - 399.6676940917969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76004028320312, - 383.1796875, - 191.52005004882812, - 399.6676940917969 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 110.88005065917969, - 411.6796875 - ], - "bbox": [ - 110.88005065917969, - 398.7796936035156, - 116.88005065917969, - 415.2677001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.88005065917969, - 398.7796936035156, - 116.88005065917969, - 415.2677001953125 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 89.75993347167969, - 480.1396789550781, - 511.43994140625, - 761.8277587890625 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "3", - "origin": [ - 306.72003173828125, - 493.0396728515625 - ], - "bbox": [ - 306.72003173828125, - 480.1396789550781, - 312.72003173828125, - 496.627685546875 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、", - "origin": [ - 312.72003173828125, - 493.0396728515625 - ], - "bbox": [ - 312.72003173828125, - 482.7271728515625, - 324.72003173828125, - 494.7271728515625 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "L", - "origin": [ - 324.72003173828125, - 493.0396728515625 - ], - "bbox": [ - 324.72003173828125, - 480.1396789550781, - 330.72003173828125, - 496.627685546875 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": " 形布局:演员按照“", - "origin": [ - 330.72003173828125, - 493.0396728515625 - ], - "bbox": [ - 330.72003173828125, - 482.7271728515625, - 441.60003662109375, - 494.7271728515625 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "L", - "origin": [ - 441.60003662109375, - 493.0396728515625 - ], - "bbox": [ - 441.60003662109375, - 480.1396789550781, - 447.60003662109375, - 496.627685546875 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "”形排列,", - "origin": [ - 447.60003662109375, - 493.0396728515625 - ], - "bbox": [ - 447.60003662109375, - 482.7271728515625, - 507.60003662109375, - 494.7271728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.72003173828125, - 480.1396789550781, - 507.60003662109375, - 496.627685546875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "用两个外反拍镜头表现,在两个画面中,所", - "origin": [ - 282.72003173828125, - 508.6396789550781 - ], - "bbox": [ - 282.72003173828125, - 498.3271789550781, - 505.44000244140625, - 510.3271789550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.72003173828125, - 498.3271789550781, - 505.44000244140625, - 510.3271789550781 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "有的演员都保持了同样的画面位置。这三种", - "origin": [ - 282.7200012207031, - 524.2396850585938 - ], - "bbox": [ - 282.7200012207031, - 513.9271850585938, - 505.67999267578125, - 525.9271850585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.7200012207031, - 513.9271850585938, - 505.67999267578125, - 525.9271850585938 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "布局有一个共同的特点,即保持了人物关系", - "origin": [ - 282.719970703125, - 539.8397216796875 - ], - "bbox": [ - 282.719970703125, - 529.5272216796875, - 505.6799621582031, - 541.5272216796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.719970703125, - 529.5272216796875, - 505.6799621582031, - 541.5272216796875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "的明确位置和稳定,突出了主要人物的位", - "origin": [ - 282.719970703125, - 555.439697265625 - ], - "bbox": [ - 282.719970703125, - 545.127197265625, - 498.719970703125, - 557.127197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.719970703125, - 545.127197265625, - 498.719970703125, - 557.127197265625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "置,并保持稳固不变。这种布局在拍会议时", - "origin": [ - 282.719970703125, - 571.0396728515625 - ], - "bbox": [ - 282.719970703125, - 560.7271728515625, - 505.43994140625, - 572.7271728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.719970703125, - 560.7271728515625, - 505.43994140625, - 572.7271728515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "具有明显的意义,我们曾经说过,会议是十", - "origin": [ - 282.7199401855469, - 586.6397094726562 - ], - "bbox": [ - 282.7199401855469, - 576.3272094726562, - 505.43994140625, - 588.3272094726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.7199401855469, - 576.3272094726562, - 505.43994140625, - 588.3272094726562 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "分难拍的场面,特别是围桌而坐的场面。如", - "origin": [ - 282.7199401855469, - 602.23974609375 - ], - "bbox": [ - 282.7199401855469, - 591.92724609375, - 505.43994140625, - 603.92724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.7199401855469, - 591.92724609375, - 505.43994140625, - 603.92724609375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "果按照这种布局的方式,把握住三人的关系不乱,整个的场面就不会发生混乱。", - "origin": [ - 89.75994873046875, - 617.8397216796875 - ], - "bbox": [ - 89.75994873046875, - 607.5272216796875, - 509.75994873046875, - 619.5272216796875 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 505.43994140625, - 617.8397216796875 - ], - "bbox": [ - 505.43994140625, - 604.939697265625, - 511.43994140625, - 621.427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 604.939697265625, - 511.43994140625, - 621.427734375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 113.75994873046875, - 633.439697265625 - ], - "bbox": [ - 113.75994873046875, - 620.5396728515625, - 119.75994873046875, - 637.0277099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.75994873046875, - 620.5396728515625, - 119.75994873046875, - 637.0277099609375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "4", - "origin": [ - 113.75994873046875, - 649.0397338867188 - ], - "bbox": [ - 113.75994873046875, - 636.1397094726562, - 119.75994873046875, - 652.6277465820312 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、△型布局:当演员排列成三角形布局时,", - "origin": [ - 119.75994873046875, - 649.0397338867188 - ], - "bbox": [ - 119.75994873046875, - 638.7272338867188, - 347.75994873046875, - 650.7272338867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.75994873046875, - 636.1397094726562, - 347.75994873046875, - 652.6277465820312 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "有六个机位可以架设,但是按照拍摄公式,不能围", - "origin": [ - 89.75994873046875, - 664.6397705078125 - ], - "bbox": [ - 89.75994873046875, - 654.3272705078125, - 347.99993896484375, - 666.3272705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 654.3272705078125, - 347.99993896484375, - 666.3272705078125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "绕着人群转圈拍摄,根据三角形原理,有三种合适", - "origin": [ - 89.75993347167969, - 680.23974609375 - ], - "bbox": [ - 89.75993347167969, - 669.92724609375, - 347.99993896484375, - 681.92724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75993347167969, - 669.92724609375, - 347.99993896484375, - 681.92724609375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "的拍摄方式,换言之,存在三条关系线可以利用:", - "origin": [ - 89.75993347167969, - 695.8397216796875 - ], - "bbox": [ - 89.75993347167969, - 685.5272216796875, - 353.75994873046875, - 697.5272216796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75993347167969, - 685.5272216796875, - 353.75994873046875, - 697.5272216796875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "2", - "origin": [ - 89.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 89.75994873046875, - 698.5397338867188, - 95.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "—", - "origin": [ - 95.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 95.75994873046875, - 701.1272583007812, - 107.75994873046875, - 713.1272583007812 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "4", - "origin": [ - 107.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 107.75994873046875, - 698.5397338867188, - 113.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": ";", - "origin": [ - 113.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 113.75994873046875, - 701.1272583007812, - 125.75994873046875, - 713.1272583007812 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "4", - "origin": [ - 125.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 125.75994873046875, - 698.5397338867188, - 131.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "—", - "origin": [ - 131.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 131.75994873046875, - 701.1272583007812, - 143.75994873046875, - 713.1272583007812 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "6", - "origin": [ - 143.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 143.75994873046875, - 698.5397338867188, - 149.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": ";", - "origin": [ - 149.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 149.75994873046875, - 701.1272583007812, - 161.75994873046875, - 713.1272583007812 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "6", - "origin": [ - 161.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 161.75994873046875, - 698.5397338867188, - 167.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "—", - "origin": [ - 167.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 167.75994873046875, - 701.1272583007812, - 179.75994873046875, - 713.1272583007812 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "2", - "origin": [ - 179.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 179.75994873046875, - 698.5397338867188, - 185.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": " 这三条线。正常情况下,选取", - "origin": [ - 185.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 185.75994873046875, - 701.1272583007812, - 344.63995361328125, - 713.1272583007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 698.5397338867188, - 344.63995361328125, - 715.0277709960938 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "其中的任何一条线,都可以按照三角形原理架设机", - "origin": [ - 89.75994873046875, - 727.0397338867188 - ], - "bbox": [ - 89.75994873046875, - 716.7272338867188, - 347.99993896484375, - 728.7272338867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 716.7272338867188, - 347.99993896484375, - 728.7272338867188 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "位。至于选取哪条关系线适宜,取决于趣味中心是", - "origin": [ - 89.75993347167969, - 742.6397705078125 - ], - "bbox": [ - 89.75993347167969, - 732.3272705078125, - 347.99993896484375, - 744.3272705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75993347167969, - 732.3272705078125, - 347.99993896484375, - 744.3272705078125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "哪个演员,通常情况下,假设演员", - "origin": [ - 89.75993347167969, - 758.23974609375 - ], - "bbox": [ - 89.75993347167969, - 747.92724609375, - 258.23992919921875, - 759.92724609375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " B", - "origin": [ - 258.23992919921875, - 758.23974609375 - ], - "bbox": [ - 258.23992919921875, - 745.3397216796875, - 267.11993408203125, - 761.8277587890625 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": " 是表现的重点,", - "origin": [ - 267.11993408203125, - 758.23974609375 - ], - "bbox": [ - 267.11993408203125, - 747.92724609375, - 353.99993896484375, - 759.92724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75993347167969, - 745.3397216796875, - 353.99993896484375, - 761.8277587890625 - ] - }, - { - "spans": [ - { - "size": 10.5600004196167, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 498.9599914550781, - 753.9199829101562 - ], - "bbox": [ - 498.9599914550781, - 744.5098266601562, - 501.6000061035156, - 756.2042236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 498.9599914550781, - 744.5098266601562, - 501.6000061035156, - 756.2042236328125 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 71.18001556396484, - 595.0, - 792.1326904296875 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 306.6000061035156, - 792.1326904296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 89.76000213623047, - 790.1599731445312 - ], - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 92.04000091552734, - 792.1326904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76000213623047, - 782.0330200195312, - 92.04000091552734, - 792.1326904296875 - ] - }, - { - "spans": [ - { - "size": 9.119999885559082, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": "106 ", - "origin": [ - 290.8800048828125, - 790.1599731445312 - ], - "bbox": [ - 290.8800048828125, - 782.0330200195312, - 306.6000061035156, - 792.1326904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 290.8800048828125, - 782.0330200195312, - 306.6000061035156, - 792.1326904296875 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 89.76000213623047, - 71.18001556396484, - 511.44000244140625, - 415.2677001953125 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "位不断改变构图比例,渐次缩小人物占据的画面空间。", - "origin": [ - 89.76000213623047, - 84.08001708984375 - ], - "bbox": [ - 89.76000213623047, - 73.76751708984375, - 377.760009765625, - 85.76751708984375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 377.760009765625, - 84.08001708984375 - ], - "bbox": [ - 377.760009765625, - 71.18001556396484, - 383.760009765625, - 87.66801452636719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76000213623047, - 71.18001556396484, - 383.760009765625, - 87.66801452636719 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "这样构图的用意十分明显:在正义和良知", - "origin": [ - 291.1199951171875, - 99.67999267578125 - ], - "bbox": [ - 291.1199951171875, - 89.36749267578125, - 505.44000244140625, - 101.36749267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 291.1199951171875, - 89.36749267578125, - 505.44000244140625, - 101.36749267578125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "的挤压下,隐喻造成心理空间的挤压,人物占", - "origin": [ - 271.20001220703125, - 115.27996826171875 - ], - "bbox": [ - 271.20001220703125, - 104.96746826171875, - 505.44000244140625, - 116.96746826171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 104.96746826171875, - 505.44000244140625, - 116.96746826171875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "据的画面空间越来越小,实际表达出的是侥幸", - "origin": [ - 271.20001220703125, - 130.87994384765625 - ], - "bbox": [ - 271.20001220703125, - 120.56744384765625, - 505.44000244140625, - 132.56744384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 120.56744384765625, - 505.44000244140625, - 132.56744384765625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "心理的空间越来越小。这位老工人不得不交待", - "origin": [ - 271.20001220703125, - 146.47991943359375 - ], - "bbox": [ - 271.20001220703125, - 136.16741943359375, - 505.44000244140625, - 148.16741943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 136.16741943359375, - 505.44000244140625, - 148.16741943359375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "实情的心理过程,用这种可视的手段描画出", - "origin": [ - 271.20001220703125, - 162.07989501953125 - ], - "bbox": [ - 271.20001220703125, - 151.76739501953125, - 499.20001220703125, - 163.76739501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 151.76739501953125, - 499.20001220703125, - 163.76739501953125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "来,直接肯定了公安人员的心理攻势。通过可", - "origin": [ - 271.20001220703125, - 177.67987060546875 - ], - "bbox": [ - 271.20001220703125, - 167.36737060546875, - 505.44000244140625, - 179.36737060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 167.36737060546875, - 505.44000244140625, - 179.36737060546875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "视手段表达出来某种意向,属于看得见的暗", - "origin": [ - 271.20001220703125, - 193.27984619140625 - ], - "bbox": [ - 271.20001220703125, - 182.96734619140625, - 499.20001220703125, - 194.96734619140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 182.96734619140625, - 499.20001220703125, - 194.96734619140625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "示。", - "origin": [ - 271.20001220703125, - 208.87982177734375 - ], - "bbox": [ - 271.20001220703125, - 198.56732177734375, - 295.20001220703125, - 210.56732177734375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 295.20001220703125, - 208.87982177734375 - ], - "bbox": [ - 295.20001220703125, - 195.97982788085938, - 301.20001220703125, - 212.4678192138672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 195.97982788085938, - 301.20001220703125, - 212.4678192138672 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 295.20001220703125, - 224.47979736328125 - ], - "bbox": [ - 295.20001220703125, - 211.57980346679688, - 301.20001220703125, - 228.0677947998047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.20001220703125, - 211.57980346679688, - 301.20001220703125, - 228.0677947998047 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "SimSun,Bold", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "四、表现三个演员对话的类型", - "origin": [ - 295.20001220703125, - 240.07977294921875 - ], - "bbox": [ - 295.20001220703125, - 229.76727294921875, - 451.67999267578125, - 241.76727294921875 - ] - }, - { - "size": 12.0, - "flags": 16, - "font": "SimSun,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 451.9200134277344, - 240.07977294921875 - ], - "bbox": [ - 451.9200134277344, - 227.23977661132812, - 457.9320068359375, - 243.76377868652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.20001220703125, - 227.23977661132812, - 457.9320068359375, - 243.76377868652344 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "表现三个演员的对话,有以下几种基本的", - "origin": [ - 295.20001220703125, - 255.67974853515625 - ], - "bbox": [ - 295.20001220703125, - 245.36724853515625, - 505.44000244140625, - 257.36724853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.20001220703125, - 245.36724853515625, - 505.44000244140625, - 257.36724853515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "布局,不同的布局存在相应的视觉处理手法。", - "origin": [ - 271.20001220703125, - 271.27972412109375 - ], - "bbox": [ - 271.20001220703125, - 260.96722412109375, - 511.20001220703125, - 272.96722412109375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 505.44000244140625, - 271.27972412109375 - ], - "bbox": [ - 505.44000244140625, - 258.3797302246094, - 511.44000244140625, - 274.86773681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 258.3797302246094, - 511.44000244140625, - 274.86773681640625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "1", - "origin": [ - 295.20001220703125, - 286.87969970703125 - ], - "bbox": [ - 295.20001220703125, - 273.9797058105469, - 301.20001220703125, - 290.46771240234375 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、线形布局:如果三个演员的位置处于", - "origin": [ - 301.20001220703125, - 286.87969970703125 - ], - "bbox": [ - 301.20001220703125, - 276.56719970703125, - 505.20001220703125, - 288.56719970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.20001220703125, - 273.9797058105469, - 505.20001220703125, - 290.46771240234375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "一条直线,最简便的方法就是用两个外反拍镜", - "origin": [ - 271.20001220703125, - 302.47967529296875 - ], - "bbox": [ - 271.20001220703125, - 292.16717529296875, - 505.44000244140625, - 304.16717529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 271.20001220703125, - 292.16717529296875, - 505.44000244140625, - 304.16717529296875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "头,让每个演员在不同的镜头中都处于原来的位置。", - "origin": [ - 89.760009765625, - 318.07965087890625 - ], - "bbox": [ - 89.760009765625, - 307.76715087890625, - 365.760009765625, - 319.76715087890625 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 365.760009765625, - 318.07965087890625 - ], - "bbox": [ - 365.760009765625, - 305.1796569824219, - 371.760009765625, - 321.66766357421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.760009765625, - 305.1796569824219, - 371.760009765625, - 321.66766357421875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 109.68002319335938, - 333.6796569824219 - ], - "bbox": [ - 109.68002319335938, - 320.7796630859375, - 115.68002319335938, - 337.2676696777344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 109.68002319335938, - 320.7796630859375, - 115.68002319335938, - 337.2676696777344 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "2", - "origin": [ - 113.76002502441406, - 349.2796630859375 - ], - "bbox": [ - 113.76002502441406, - 336.3796691894531, - 119.76002502441406, - 352.86767578125 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、", - "origin": [ - 119.76002502441406, - 349.2796630859375 - ], - "bbox": [ - 119.76002502441406, - 338.9671630859375, - 131.76002502441406, - 350.9671630859375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "C", - "origin": [ - 131.280029296875, - 349.2796630859375 - ], - "bbox": [ - 131.280029296875, - 336.3796691894531, - 137.280029296875, - 352.86767578125 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": " 形布局:如果前后两个演员面", - "origin": [ - 137.280029296875, - 349.2796630859375 - ], - "bbox": [ - 137.280029296875, - 338.9671630859375, - 295.6800537109375, - 350.9671630859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.76002502441406, - 336.3796691894531, - 295.6800537109375, - 352.86767578125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "对第三者,可以把这两个演员安排在直", - "origin": [ - 89.76004028320312, - 364.8796691894531 - ], - "bbox": [ - 89.76004028320312, - 354.5671691894531, - 293.7600402832031, - 366.5671691894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76004028320312, - 354.5671691894531, - 293.7600402832031, - 366.5671691894531 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "线的两端,全都面对中间的那个人,实", - "origin": [ - 89.76004028320312, - 380.47967529296875 - ], - "bbox": [ - 89.76004028320312, - 370.16717529296875, - 293.7600402832031, - 382.16717529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76004028320312, - 370.16717529296875, - 293.7600402832031, - 382.16717529296875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "际形成", - "origin": [ - 89.76004028320312, - 396.0796813964844 - ], - "bbox": [ - 89.76004028320312, - 385.7671813964844, - 125.76004028320312, - 397.7671813964844 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " C", - "origin": [ - 125.76004028320312, - 396.0796813964844 - ], - "bbox": [ - 125.76004028320312, - 383.1796875, - 134.64004516601562, - 399.6676940917969 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": " 形布局。", - "origin": [ - 134.64004516601562, - 396.0796813964844 - ], - "bbox": [ - 134.64004516601562, - 385.7671813964844, - 185.52005004882812, - 397.7671813964844 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 185.52005004882812, - 396.0796813964844 - ], - "bbox": [ - 185.52005004882812, - 383.1796875, - 191.52005004882812, - 399.6676940917969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.76004028320312, - 383.1796875, - 191.52005004882812, - 399.6676940917969 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 110.88005065917969, - 411.6796875 - ], - "bbox": [ - 110.88005065917969, - 398.7796936035156, - 116.88005065917969, - 415.2677001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.88005065917969, - 398.7796936035156, - 116.88005065917969, - 415.2677001953125 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 89.75993347167969, - 480.1396789550781, - 511.43994140625, - 761.8277587890625 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "3", - "origin": [ - 306.72003173828125, - 493.0396728515625 - ], - "bbox": [ - 306.72003173828125, - 480.1396789550781, - 312.72003173828125, - 496.627685546875 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、", - "origin": [ - 312.72003173828125, - 493.0396728515625 - ], - "bbox": [ - 312.72003173828125, - 482.7271728515625, - 324.72003173828125, - 494.7271728515625 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "L", - "origin": [ - 324.72003173828125, - 493.0396728515625 - ], - "bbox": [ - 324.72003173828125, - 480.1396789550781, - 330.72003173828125, - 496.627685546875 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": " 形布局:演员按照“", - "origin": [ - 330.72003173828125, - 493.0396728515625 - ], - "bbox": [ - 330.72003173828125, - 482.7271728515625, - 441.60003662109375, - 494.7271728515625 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "L", - "origin": [ - 441.60003662109375, - 493.0396728515625 - ], - "bbox": [ - 441.60003662109375, - 480.1396789550781, - 447.60003662109375, - 496.627685546875 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "”形排列,", - "origin": [ - 447.60003662109375, - 493.0396728515625 - ], - "bbox": [ - 447.60003662109375, - 482.7271728515625, - 507.60003662109375, - 494.7271728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.72003173828125, - 480.1396789550781, - 507.60003662109375, - 496.627685546875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "用两个外反拍镜头表现,在两个画面中,所", - "origin": [ - 282.72003173828125, - 508.6396789550781 - ], - "bbox": [ - 282.72003173828125, - 498.3271789550781, - 505.44000244140625, - 510.3271789550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.72003173828125, - 498.3271789550781, - 505.44000244140625, - 510.3271789550781 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "有的演员都保持了同样的画面位置。这三种", - "origin": [ - 282.7200012207031, - 524.2396850585938 - ], - "bbox": [ - 282.7200012207031, - 513.9271850585938, - 505.67999267578125, - 525.9271850585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.7200012207031, - 513.9271850585938, - 505.67999267578125, - 525.9271850585938 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "布局有一个共同的特点,即保持了人物关系", - "origin": [ - 282.719970703125, - 539.8397216796875 - ], - "bbox": [ - 282.719970703125, - 529.5272216796875, - 505.6799621582031, - 541.5272216796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.719970703125, - 529.5272216796875, - 505.6799621582031, - 541.5272216796875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "的明确位置和稳定,突出了主要人物的位", - "origin": [ - 282.719970703125, - 555.439697265625 - ], - "bbox": [ - 282.719970703125, - 545.127197265625, - 498.719970703125, - 557.127197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.719970703125, - 545.127197265625, - 498.719970703125, - 557.127197265625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "置,并保持稳固不变。这种布局在拍会议时", - "origin": [ - 282.719970703125, - 571.0396728515625 - ], - "bbox": [ - 282.719970703125, - 560.7271728515625, - 505.43994140625, - 572.7271728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.719970703125, - 560.7271728515625, - 505.43994140625, - 572.7271728515625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "具有明显的意义,我们曾经说过,会议是十", - "origin": [ - 282.7199401855469, - 586.6397094726562 - ], - "bbox": [ - 282.7199401855469, - 576.3272094726562, - 505.43994140625, - 588.3272094726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.7199401855469, - 576.3272094726562, - 505.43994140625, - 588.3272094726562 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "分难拍的场面,特别是围桌而坐的场面。如", - "origin": [ - 282.7199401855469, - 602.23974609375 - ], - "bbox": [ - 282.7199401855469, - 591.92724609375, - 505.43994140625, - 603.92724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.7199401855469, - 591.92724609375, - 505.43994140625, - 603.92724609375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "果按照这种布局的方式,把握住三人的关系不乱,整个的场面就不会发生混乱。", - "origin": [ - 89.75994873046875, - 617.8397216796875 - ], - "bbox": [ - 89.75994873046875, - 607.5272216796875, - 509.75994873046875, - 619.5272216796875 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 505.43994140625, - 617.8397216796875 - ], - "bbox": [ - 505.43994140625, - 604.939697265625, - 511.43994140625, - 621.427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 604.939697265625, - 511.43994140625, - 621.427734375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 113.75994873046875, - 633.439697265625 - ], - "bbox": [ - 113.75994873046875, - 620.5396728515625, - 119.75994873046875, - 637.0277099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.75994873046875, - 620.5396728515625, - 119.75994873046875, - 637.0277099609375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "4", - "origin": [ - 113.75994873046875, - 649.0397338867188 - ], - "bbox": [ - 113.75994873046875, - 636.1397094726562, - 119.75994873046875, - 652.6277465820312 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "、△型布局:当演员排列成三角形布局时,", - "origin": [ - 119.75994873046875, - 649.0397338867188 - ], - "bbox": [ - 119.75994873046875, - 638.7272338867188, - 347.75994873046875, - 650.7272338867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 113.75994873046875, - 636.1397094726562, - 347.75994873046875, - 652.6277465820312 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "有六个机位可以架设,但是按照拍摄公式,不能围", - "origin": [ - 89.75994873046875, - 664.6397705078125 - ], - "bbox": [ - 89.75994873046875, - 654.3272705078125, - 347.99993896484375, - 666.3272705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 654.3272705078125, - 347.99993896484375, - 666.3272705078125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "绕着人群转圈拍摄,根据三角形原理,有三种合适", - "origin": [ - 89.75993347167969, - 680.23974609375 - ], - "bbox": [ - 89.75993347167969, - 669.92724609375, - 347.99993896484375, - 681.92724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75993347167969, - 669.92724609375, - 347.99993896484375, - 681.92724609375 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "的拍摄方式,换言之,存在三条关系线可以利用:", - "origin": [ - 89.75993347167969, - 695.8397216796875 - ], - "bbox": [ - 89.75993347167969, - 685.5272216796875, - 353.75994873046875, - 697.5272216796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75993347167969, - 685.5272216796875, - 353.75994873046875, - 697.5272216796875 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "2", - "origin": [ - 89.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 89.75994873046875, - 698.5397338867188, - 95.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "—", - "origin": [ - 95.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 95.75994873046875, - 701.1272583007812, - 107.75994873046875, - 713.1272583007812 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "4", - "origin": [ - 107.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 107.75994873046875, - 698.5397338867188, - 113.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": ";", - "origin": [ - 113.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 113.75994873046875, - 701.1272583007812, - 125.75994873046875, - 713.1272583007812 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "4", - "origin": [ - 125.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 125.75994873046875, - 698.5397338867188, - 131.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "—", - "origin": [ - 131.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 131.75994873046875, - 701.1272583007812, - 143.75994873046875, - 713.1272583007812 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "6", - "origin": [ - 143.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 143.75994873046875, - 698.5397338867188, - 149.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": ";", - "origin": [ - 149.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 149.75994873046875, - 701.1272583007812, - 161.75994873046875, - 713.1272583007812 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "6", - "origin": [ - 161.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 161.75994873046875, - 698.5397338867188, - 167.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "—", - "origin": [ - 167.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 167.75994873046875, - 701.1272583007812, - 179.75994873046875, - 713.1272583007812 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "2", - "origin": [ - 179.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 179.75994873046875, - 698.5397338867188, - 185.75994873046875, - 715.0277709960938 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": " 这三条线。正常情况下,选取", - "origin": [ - 185.75994873046875, - 711.4397583007812 - ], - "bbox": [ - 185.75994873046875, - 701.1272583007812, - 344.63995361328125, - 713.1272583007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 698.5397338867188, - 344.63995361328125, - 715.0277709960938 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "其中的任何一条线,都可以按照三角形原理架设机", - "origin": [ - 89.75994873046875, - 727.0397338867188 - ], - "bbox": [ - 89.75994873046875, - 716.7272338867188, - 347.99993896484375, - 728.7272338867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75994873046875, - 716.7272338867188, - 347.99993896484375, - 728.7272338867188 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "位。至于选取哪条关系线适宜,取决于趣味中心是", - "origin": [ - 89.75993347167969, - 742.6397705078125 - ], - "bbox": [ - 89.75993347167969, - 732.3272705078125, - 347.99993896484375, - 744.3272705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75993347167969, - 732.3272705078125, - 347.99993896484375, - 744.3272705078125 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": "哪个演员,通常情况下,假设演员", - "origin": [ - 89.75993347167969, - 758.23974609375 - ], - "bbox": [ - 89.75993347167969, - 747.92724609375, - 258.23992919921875, - 759.92724609375 - ] - }, - { - "size": 12.0, - "flags": 0, - "font": "SimSun", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " B", - "origin": [ - 258.23992919921875, - 758.23974609375 - ], - "bbox": [ - 258.23992919921875, - 745.3397216796875, - 267.11993408203125, - 761.8277587890625 - ] - }, - { - "size": 12.0, - "flags": 4, - "font": "SimSun", - "color": 0, - "ascender": 0.859375, - "descender": -0.140625, - "text": " 是表现的重点,", - "origin": [ - 267.11993408203125, - 758.23974609375 - ], - "bbox": [ - 267.11993408203125, - 747.92724609375, - 353.99993896484375, - 759.92724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 89.75993347167969, - 745.3397216796875, - 353.99993896484375, - 761.8277587890625 - ] - }, - { - "spans": [ - { - "size": 10.5600004196167, - "flags": 4, - "font": "TimesNewRoman", - "color": 0, - "ascender": 0.89111328125, - "descender": -0.21630859375, - "text": " ", - "origin": [ - 498.9599914550781, - 753.9199829101562 - ], - "bbox": [ - 498.9599914550781, - 744.5098266601562, - 501.6000061035156, - 756.2042236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 498.9599914550781, - 744.5098266601562, - 501.6000061035156, - 756.2042236328125 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [ - { - "bbox": [ - 358.43951612903226, - 628.0216524216523, - 502.87096774193543, - 755.1612535612535 - ], - "image_path": "images/0_358_628_502_755.jpg" - }, - { - "bbox": [ - 305, - 329, - 503, - 481 - ], - "image_path": "images/0_305_329_503_481.jpg" - }, - { - "bbox": [ - 95, - 423, - 273, - 594 - ], - "image_path": "images/0_95_423_273_594.jpg" - }, - { - "bbox": [ - 105, - 87, - 262, - 290 - ], - "image_path": "images/0_105_87_262_290.jpg" - } - ], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.0, - 842.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\345\217\214\345\210\227_4\345\233\276_10.1016_j.ijheatmasstransfer.2006.10.031_7.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\345\217\214\345\210\227_4\345\233\276_10.1016_j.ijheatmasstransfer.2006.10.031_7.pdf/preproc_out.json" deleted file mode 100644 index 3fde3c6bb..000000000 --- "a/tests/assets/pre_proc_results/\345\217\214\345\210\227_4\345\233\276_10.1016_j.ijheatmasstransfer.2006.10.031_7.pdf/preproc_out.json" +++ /dev/null @@ -1,4886 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 42.51969909667969, - 490.5162353515625, - 99.22084045410156, - 500.47882080078125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "5. Conclusion", - "origin": [ - 42.51969909667969, - 497.99078369140625 - ], - "bbox": [ - 42.51969909667969, - 490.5162353515625, - 99.22084045410156, - 500.47882080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 490.5162353515625, - 99.22084045410156, - 500.47882080078125 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 42.51969909667969, - 514.1342163085938, - 293.5821838378906, - 691.6517944335938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "A quasi-three-dimensional two-phase model with modi-", - "origin": [ - 54.48179244995117, - 521.9149780273438 - ], - "bbox": [ - 54.48179244995117, - 514.1342163085938, - 293.52044677734375, - 524.2960205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.48179244995117, - 514.1342163085938, - 293.52044677734375, - 524.2960205078125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fied", - "origin": [ - 42.51969909667969, - 533.8770751953125 - ], - "bbox": [ - 42.51969909667969, - 526.0963134765625, - 57.872066497802734, - 536.2581176757812 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 57.872066497802734, - 533.8770751953125 - ], - "bbox": [ - 57.872066497802734, - 526.4025268554688, - 67.14226531982422, - 536.3651123046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 67.12432861328125, - 533.8770751953125 - ], - "bbox": [ - 67.12432861328125, - 526.0963134765625, - 72.10562896728516, - 536.2581176757812 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 72.11360168457031, - 533.8770751953125 - ], - "bbox": [ - 72.11360168457031, - 525.8870849609375, - 75.94920349121094, - 536.8858032226562 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence model is applied to simulate the fluid", - "origin": [ - 75.94920349121094, - 533.8770751953125 - ], - "bbox": [ - 75.94920349121094, - 526.0963134765625, - 293.52142333984375, - 536.2581176757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 525.8870849609375, - 293.52142333984375, - 536.8858032226562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "flow and heat transfer in the shell-side of a steam surface", - "origin": [ - 42.51969909667969, - 545.8391723632812 - ], - "bbox": [ - 42.51969909667969, - 538.0584106445312, - 293.5313720703125, - 548.22021484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 538.0584106445312, - 293.5313720703125, - 548.22021484375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "condenser and the numerical results are compared with", - "origin": [ - 42.51969909667969, - 557.7445068359375 - ], - "bbox": [ - 42.51969909667969, - 549.9637451171875, - 293.5054626464844, - 560.1255493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 549.9637451171875, - 293.5054626464844, - 560.1255493164062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the experimental data. The numerical results agree with", - "origin": [ - 42.51969909667969, - 569.70654296875 - ], - "bbox": [ - 42.51969909667969, - 561.92578125, - 293.5034484863281, - 572.0875854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 561.92578125, - 293.5034484863281, - 572.0875854492188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the experimental data. They have a better agreement", - "origin": [ - 42.51969909667969, - 581.668701171875 - ], - "bbox": [ - 42.51969909667969, - 573.887939453125, - 293.5821838378906, - 584.0497436523438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 573.887939453125, - 293.5821838378906, - 584.0497436523438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "with the experimental data than the numerical results using", - "origin": [ - 42.51969909667969, - 593.6307373046875 - ], - "bbox": [ - 42.51969909667969, - 585.8499755859375, - 293.5711975097656, - 596.0117797851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 585.8499755859375, - 293.5711975097656, - 596.0117797851562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "a constant turbulent viscosity in most regions in the con-", - "origin": [ - 42.51969909667969, - 605.5928955078125 - ], - "bbox": [ - 42.51969909667969, - 597.8121337890625, - 293.51544189453125, - 607.9739379882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 597.8121337890625, - 293.51544189453125, - 607.9739379882812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "denser. However, the proposed model over-predicts the", - "origin": [ - 42.51969909667969, - 617.554931640625 - ], - "bbox": [ - 42.51969909667969, - 609.774169921875, - 293.51348876953125, - 619.9359741210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 609.774169921875, - 293.51348876953125, - 619.9359741210938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "heat flux at the center of the tube bundles where the lowest", - "origin": [ - 42.51969909667969, - 629.51708984375 - ], - "bbox": [ - 42.51969909667969, - 621.736328125, - 293.5513610839844, - 631.8981323242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 621.736328125, - 293.5513610839844, - 631.8981323242188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "heat transfer rates occur. Therefore, future work is needed", - "origin": [ - 42.51969909667969, - 641.4791259765625 - ], - "bbox": [ - 42.51969909667969, - 633.6983642578125, - 293.5194396972656, - 643.8601684570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 633.6983642578125, - 293.5194396972656, - 643.8601684570312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "to improve the proposed model, which will involve assess-", - "origin": [ - 42.51969909667969, - 653.3844604492188 - ], - "bbox": [ - 42.51969909667969, - 645.6036987304688, - 293.562255859375, - 655.7655029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 645.6036987304688, - 293.562255859375, - 655.7655029296875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "ment of the effects of closure relationships for condensa-", - "origin": [ - 42.51969909667969, - 665.3465576171875 - ], - "bbox": [ - 42.51969909667969, - 657.5657958984375, - 293.5552978515625, - 667.7276000976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 657.5657958984375, - 293.5552978515625, - 667.7276000976562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tion, interphase friction forces, non-condensable air and", - "origin": [ - 42.51969909667969, - 677.3086547851562 - ], - "bbox": [ - 42.51969909667969, - 669.5278930664062, - 293.54638671875, - 679.689697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 669.5278930664062, - 293.54638671875, - 679.689697265625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "hydraulic resistance of the tube bundle.", - "origin": [ - 42.51969909667969, - 689.270751953125 - ], - "bbox": [ - 42.51969909667969, - 681.489990234375, - 213.00570678710938, - 691.6517944335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 681.489990234375, - 213.00570678710938, - 691.6517944335938 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 42.51969909667969, - 705.7203979492188, - 87.51378631591797, - 715.6829833984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "References", - "origin": [ - 42.51969909667969, - 713.1949462890625 - ], - "bbox": [ - 42.51969909667969, - 705.7203979492188, - 87.51378631591797, - 715.6829833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 705.7203979492188, - 87.51378631591797, - 715.6829833984375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 46.48820114135742, - 728.8557739257812, - 293.6320495605469, - 746.9633178710938 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[1] B.J. Davidson, M. Rowe, Simulation of Power Plant Condenser", - "origin": [ - 46.48820114135742, - 735.0805053710938 - ], - "bbox": [ - 46.48820114135742, - 728.8557739257812, - 293.6320495605469, - 736.9854125976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 46.48820114135742, - 728.8557739257812, - 293.6320495605469, - 736.9854125976562 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Performance by Computational Methods: An Overview, Power", - "origin": [ - 57.88319396972656, - 745.0584106445312 - ], - "bbox": [ - 57.88319396972656, - 738.8336791992188, - 293.6065979003906, - 746.9633178710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.88319396972656, - 738.8336791992188, - 293.6065979003906, - 746.9633178710938 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 315.4967956542969, - 490.40411376953125, - 562.6486206054688, - 747.5849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Condenser", - "origin": [ - 326.89178466796875, - 496.62884521484375 - ], - "bbox": [ - 326.89178466796875, - 490.40411376953125, - 363.3155212402344, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 490.40411376953125, - 363.3155212402344, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Heat", - "origin": [ - 370.2599792480469, - 496.62884521484375 - ], - "bbox": [ - 370.2599792480469, - 490.40411376953125, - 386.93365478515625, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 370.2599792480469, - 490.40411376953125, - 386.93365478515625, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Transfer", - "origin": [ - 393.9570007324219, - 496.62884521484375 - ], - "bbox": [ - 393.9570007324219, - 490.40411376953125, - 422.992431640625, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 393.9570007324219, - 490.40411376953125, - 422.992431640625, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Technology,", - "origin": [ - 430.0125732421875, - 496.62884521484375 - ], - "bbox": [ - 430.0125732421875, - 490.40411376953125, - 472.05133056640625, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.0125732421875, - 490.40411376953125, - 472.05133056640625, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Hemisphere", - "origin": [ - 479.1065673828125, - 496.62884521484375 - ], - "bbox": [ - 479.1065673828125, - 490.40411376953125, - 519.665283203125, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 479.1065673828125, - 490.40411376953125, - 519.665283203125, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Publishing", - "origin": [ - 526.7268676757812, - 496.62884521484375 - ], - "bbox": [ - 526.7268676757812, - 490.40411376953125, - 562.6486206054688, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 526.7268676757812, - 490.40411376953125, - 562.6486206054688, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Corporation, 1980, pp. 17–49.", - "origin": [ - 326.89178466796875, - 506.60675048828125 - ], - "bbox": [ - 326.89178466796875, - 500.38201904296875, - 430.60400390625, - 508.5116271972656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 500.38201904296875, - 430.60400390625, - 508.5116271972656 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[2] C. Zhang, A. Bokil, A quasi-three-dimensional approach to simulate", - "origin": [ - 315.4967956542969, - 516.5846557617188 - ], - "bbox": [ - 315.4967956542969, - 510.35992431640625, - 562.5990600585938, - 518.4895629882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 510.35992431640625, - 562.5990600585938, - 518.4895629882812 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the two-phase fluid flow and heat transfer in condensers, Int. J. Heat", - "origin": [ - 326.89178466796875, - 526.5059814453125 - ], - "bbox": [ - 326.89178466796875, - 520.28125, - 562.6190185546875, - 528.410888671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 520.28125, - 562.6190185546875, - 528.410888671875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Mass Transfer 40 (15) (1997) 3537–3546.", - "origin": [ - 326.89178466796875, - 536.48388671875 - ], - "bbox": [ - 326.89178466796875, - 530.2591552734375, - 467.40338134765625, - 538.3887939453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 530.2591552734375, - 467.40338134765625, - 538.3887939453125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[3] I.S. Ramon, M.P. Gonzalez, Numerical study of the performance of a", - "origin": [ - 315.4967956542969, - 546.4617309570312 - ], - "bbox": [ - 315.4967956542969, - 540.2369995117188, - 562.572021484375, - 548.3666381835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 540.2369995117188, - 562.572021484375, - 548.3666381835938 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "church window tube bundle condenser, Int. J. Therm. Sci. 40 (2001)", - "origin": [ - 326.89178466796875, - 556.383056640625 - ], - "bbox": [ - 326.89178466796875, - 550.1583251953125, - 562.6021728515625, - 558.2879638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 550.1583251953125, - 562.6021728515625, - 558.2879638671875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "195–204.", - "origin": [ - 326.89178466796875, - 566.3609619140625 - ], - "bbox": [ - 326.89178466796875, - 560.13623046875, - 356.9394836425781, - 568.265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 560.13623046875, - 356.9394836425781, - 568.265869140625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[4] M.M. Prieto, I.M. Suarez, E. Montanes, Analysis of the thermal", - "origin": [ - 315.4967956542969, - 576.3388671875 - ], - "bbox": [ - 315.4967956542969, - 570.1141357421875, - 562.602294921875, - 578.2437744140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 570.1141357421875, - 562.602294921875, - 578.2437744140625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "performance of a church window steam condenser for different", - "origin": [ - 326.89178466796875, - 586.3167114257812 - ], - "bbox": [ - 326.89178466796875, - 580.0919799804688, - 562.5471801757812, - 588.2216186523438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 580.0919799804688, - 562.5471801757812, - 588.2216186523438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "operational conditions using three models, Appl. Therm. Eng. 23", - "origin": [ - 326.89178466796875, - 596.238037109375 - ], - "bbox": [ - 326.89178466796875, - 590.0133056640625, - 562.5887451171875, - 598.1429443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 590.0133056640625, - 562.5887451171875, - 598.1429443359375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "(2003) 163–178.", - "origin": [ - 326.89178466796875, - 606.2159423828125 - ], - "bbox": [ - 326.89178466796875, - 599.9912109375, - 380.68914794921875, - 608.120849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 599.9912109375, - 380.68914794921875, - 608.120849609375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[5] R.P. Roy, M. Ratisher, V.K. Gokhale, A computational model of a", - "origin": [ - 315.4967956542969, - 616.19384765625 - ], - "bbox": [ - 315.4967956542969, - 609.9691162109375, - 562.5728759765625, - 618.0987548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 609.9691162109375, - 562.5728759765625, - 618.0987548828125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "power plant steam condenser, Trans. ASME J. Energy Resour.", - "origin": [ - 326.89178466796875, - 626.1716918945312 - ], - "bbox": [ - 326.89178466796875, - 619.9469604492188, - 562.6199340820312, - 628.0765991210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 619.9469604492188, - 562.6199340820312, - 628.0765991210938 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Technol. 123 (2001) 81–91.", - "origin": [ - 326.89178466796875, - 636.093017578125 - ], - "bbox": [ - 326.89178466796875, - 629.8682861328125, - 419.7757568359375, - 637.9979248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 629.8682861328125, - 419.7757568359375, - 637.9979248046875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[6] S.A.", - "origin": [ - 315.4967956542969, - 646.0709228515625 - ], - "bbox": [ - 315.4967956542969, - 639.84619140625, - 341.7322692871094, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 639.84619140625, - 341.7322692871094, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Al-Sanea,", - "origin": [ - 350.4755859375, - 646.0709228515625 - ], - "bbox": [ - 350.4755859375, - 639.84619140625, - 383.8228759765625, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.4755859375, - 639.84619140625, - 383.8228759765625, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "N.", - "origin": [ - 392.4833068847656, - 646.0709228515625 - ], - "bbox": [ - 392.4833068847656, - 639.84619140625, - 401.186767578125, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 392.4833068847656, - 639.84619140625, - 401.186767578125, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Rhodes,", - "origin": [ - 409.9444274902344, - 646.0709228515625 - ], - "bbox": [ - 409.9444274902344, - 639.84619140625, - 437.9835510253906, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 409.9444274902344, - 639.84619140625, - 437.9835510253906, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "T.S.", - "origin": [ - 446.6798400878906, - 646.0709228515625 - ], - "bbox": [ - 446.6798400878906, - 639.84619140625, - 460.6914367675781, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 446.6798400878906, - 639.84619140625, - 460.6914367675781, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Wilkinson,", - "origin": [ - 469.4698181152344, - 646.0709228515625 - ], - "bbox": [ - 469.4698181152344, - 639.84619140625, - 506.5207824707031, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 469.4698181152344, - 639.84619140625, - 506.5207824707031, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Mathematical", - "origin": [ - 515.2760620117188, - 646.0709228515625 - ], - "bbox": [ - 515.2760620117188, - 639.84619140625, - 562.5536499023438, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.2760620117188, - 639.84619140625, - 562.5536499023438, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "modeling of two-phase condenser flows, in: Second International", - "origin": [ - 326.89178466796875, - 656.048828125 - ], - "bbox": [ - 326.89178466796875, - 649.8240966796875, - 562.579833984375, - 657.9537353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 649.8240966796875, - 562.579833984375, - 657.9537353515625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Conference on Multi-phase Flow, London, England, 1985, pp. 169–", - "origin": [ - 326.89178466796875, - 666.0266723632812 - ], - "bbox": [ - 326.89178466796875, - 659.8019409179688, - 562.6214599609375, - 667.9315795898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 659.8019409179688, - 562.6214599609375, - 667.9315795898438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "182.", - "origin": [ - 326.89178466796875, - 675.947998046875 - ], - "bbox": [ - 326.89178466796875, - 669.7232666015625, - 340.9990539550781, - 677.8529052734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 669.7232666015625, - 340.9990539550781, - 677.8529052734375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[7] M.R. Malin, Modelling flow in an experimental marine condenser,", - "origin": [ - 315.4967956542969, - 685.9259033203125 - ], - "bbox": [ - 315.4967956542969, - 679.701171875, - 562.5617065429688, - 687.830810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 679.701171875, - 562.5617065429688, - 687.830810546875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Int. Commun. Heat Mass Transfer 24 (5) (1997) 597–608.", - "origin": [ - 326.89178466796875, - 695.9037475585938 - ], - "bbox": [ - 326.89178466796875, - 689.6790161132812, - 526.4409790039062, - 697.8086547851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 689.6790161132812, - 526.4409790039062, - 697.8086547851562 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[8] A.W. Bush, G.S. Marshall, T.S. Wilkinson, The prediction of", - "origin": [ - 315.4967956542969, - 705.8250732421875 - ], - "bbox": [ - 315.4967956542969, - 699.600341796875, - 562.5807495117188, - 707.72998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 699.600341796875, - 562.5807495117188, - 707.72998046875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "steam condensation using a three component solution algorithm,", - "origin": [ - 326.89178466796875, - 715.802978515625 - ], - "bbox": [ - 326.89178466796875, - 709.5782470703125, - 562.6239013671875, - 717.7078857421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 709.5782470703125, - 562.6239013671875, - 717.7078857421875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in:", - "origin": [ - 326.89178466796875, - 725.7808837890625 - ], - "bbox": [ - 326.89178466796875, - 719.55615234375, - 335.59521484375, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 719.55615234375, - 335.59521484375, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Proceedings", - "origin": [ - 342.8791809082031, - 725.7808837890625 - ], - "bbox": [ - 342.8791809082031, - 719.55615234375, - 383.61480712890625, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.8791809082031, - 719.55615234375, - 383.61480712890625, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "of", - "origin": [ - 390.783203125, - 725.7808837890625 - ], - "bbox": [ - 390.783203125, - 719.55615234375, - 397.8368225097656, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.783203125, - 719.55615234375, - 397.8368225097656, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the", - "origin": [ - 405.1263732910156, - 725.7808837890625 - ], - "bbox": [ - 405.1263732910156, - 719.55615234375, - 415.6629638671875, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 405.1263732910156, - 719.55615234375, - 415.6629638671875, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Second", - "origin": [ - 422.92779541015625, - 725.7808837890625 - ], - "bbox": [ - 422.92779541015625, - 719.55615234375, - 447.49188232421875, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.92779541015625, - 719.55615234375, - 447.49188232421875, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "International", - "origin": [ - 454.67462158203125, - 725.7808837890625 - ], - "bbox": [ - 454.67462158203125, - 719.55615234375, - 499.4750671386719, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.67462158203125, - 719.55615234375, - 499.4750671386719, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Symposium", - "origin": [ - 506.66021728515625, - 725.7808837890625 - ], - "bbox": [ - 506.66021728515625, - 719.55615234375, - 546.5670166015625, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 506.66021728515625, - 719.55615234375, - 546.5670166015625, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "on", - "origin": [ - 553.7705078125, - 725.7808837890625 - ], - "bbox": [ - 553.7705078125, - 719.55615234375, - 562.569580078125, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 553.7705078125, - 719.55615234375, - 562.569580078125, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Condensers and Condensation, University of Bath, UK, 1990,", - "origin": [ - 326.89178466796875, - 735.7587280273438 - ], - "bbox": [ - 326.89178466796875, - 729.5339965820312, - 562.6207885742188, - 737.6636352539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 729.5339965820312, - 562.6207885742188, - 737.6636352539062 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "pp. 223–234.", - "origin": [ - 326.89178466796875, - 745.6800537109375 - ], - "bbox": [ - 326.89178466796875, - 739.455322265625, - 371.452392578125, - 747.5849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 739.455322265625, - 371.452392578125, - 747.5849609375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 231.87399291992188, - 470.6196594238281, - 373.2309875488281, - 478.749267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Fig. 6. Comparison of average heat flux.", - "origin": [ - 231.87399291992188, - 476.8443908691406 - ], - "bbox": [ - 231.87399291992188, - 470.6196594238281, - 373.2309875488281, - 478.749267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 231.87399291992188, - 470.6196594238281, - 373.2309875488281, - 478.749267578125 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 87, - 70, - 514, - 461 - ], - "image_path": "images/0_87_70_514_461.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 60.51248992747784, - 526.6130592503023, - 68.19661563255438, - 535.7339782345828 - ], - "image_path": "equations_inline/0_60_526_68_535.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 47.406070709228516, - 595.2760009765625, - 478.749267578125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 42.51969909667969, - 490.40411376953125, - 293.6320495605469, - 747.5849609375 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 315.4967956542969, - 490.40411376953125, - 562.6486206054688, - 747.5849609375 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 42.51969909667969, - 490.5162353515625, - 99.22084045410156, - 500.47882080078125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "5. Conclusion", - "origin": [ - 42.51969909667969, - 497.99078369140625 - ], - "bbox": [ - 42.51969909667969, - 490.5162353515625, - 99.22084045410156, - 500.47882080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 490.5162353515625, - 99.22084045410156, - 500.47882080078125 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 42.51969909667969, - 514.1342163085938, - 293.5821838378906, - 691.6517944335938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "A quasi-three-dimensional two-phase model with modi-", - "origin": [ - 54.48179244995117, - 521.9149780273438 - ], - "bbox": [ - 54.48179244995117, - 514.1342163085938, - 293.52044677734375, - 524.2960205078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.48179244995117, - 514.1342163085938, - 293.52044677734375, - 524.2960205078125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fied", - "origin": [ - 42.51969909667969, - 533.8770751953125 - ], - "bbox": [ - 42.51969909667969, - 526.0963134765625, - 57.872066497802734, - 536.2581176757812 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 57.872066497802734, - 533.8770751953125 - ], - "bbox": [ - 57.872066497802734, - 526.4025268554688, - 67.14226531982422, - 536.3651123046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 67.12432861328125, - 533.8770751953125 - ], - "bbox": [ - 67.12432861328125, - 526.0963134765625, - 72.10562896728516, - 536.2581176757812 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 72.11360168457031, - 533.8770751953125 - ], - "bbox": [ - 72.11360168457031, - 525.8870849609375, - 75.94920349121094, - 536.8858032226562 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence model is applied to simulate the fluid", - "origin": [ - 75.94920349121094, - 533.8770751953125 - ], - "bbox": [ - 75.94920349121094, - 526.0963134765625, - 293.52142333984375, - 536.2581176757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 525.8870849609375, - 293.52142333984375, - 536.8858032226562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "flow and heat transfer in the shell-side of a steam surface", - "origin": [ - 42.51969909667969, - 545.8391723632812 - ], - "bbox": [ - 42.51969909667969, - 538.0584106445312, - 293.5313720703125, - 548.22021484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 538.0584106445312, - 293.5313720703125, - 548.22021484375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "condenser and the numerical results are compared with", - "origin": [ - 42.51969909667969, - 557.7445068359375 - ], - "bbox": [ - 42.51969909667969, - 549.9637451171875, - 293.5054626464844, - 560.1255493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 549.9637451171875, - 293.5054626464844, - 560.1255493164062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the experimental data. The numerical results agree with", - "origin": [ - 42.51969909667969, - 569.70654296875 - ], - "bbox": [ - 42.51969909667969, - 561.92578125, - 293.5034484863281, - 572.0875854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 561.92578125, - 293.5034484863281, - 572.0875854492188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the experimental data. They have a better agreement", - "origin": [ - 42.51969909667969, - 581.668701171875 - ], - "bbox": [ - 42.51969909667969, - 573.887939453125, - 293.5821838378906, - 584.0497436523438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 573.887939453125, - 293.5821838378906, - 584.0497436523438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "with the experimental data than the numerical results using", - "origin": [ - 42.51969909667969, - 593.6307373046875 - ], - "bbox": [ - 42.51969909667969, - 585.8499755859375, - 293.5711975097656, - 596.0117797851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 585.8499755859375, - 293.5711975097656, - 596.0117797851562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "a constant turbulent viscosity in most regions in the con-", - "origin": [ - 42.51969909667969, - 605.5928955078125 - ], - "bbox": [ - 42.51969909667969, - 597.8121337890625, - 293.51544189453125, - 607.9739379882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 597.8121337890625, - 293.51544189453125, - 607.9739379882812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "denser. However, the proposed model over-predicts the", - "origin": [ - 42.51969909667969, - 617.554931640625 - ], - "bbox": [ - 42.51969909667969, - 609.774169921875, - 293.51348876953125, - 619.9359741210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 609.774169921875, - 293.51348876953125, - 619.9359741210938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "heat flux at the center of the tube bundles where the lowest", - "origin": [ - 42.51969909667969, - 629.51708984375 - ], - "bbox": [ - 42.51969909667969, - 621.736328125, - 293.5513610839844, - 631.8981323242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 621.736328125, - 293.5513610839844, - 631.8981323242188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "heat transfer rates occur. Therefore, future work is needed", - "origin": [ - 42.51969909667969, - 641.4791259765625 - ], - "bbox": [ - 42.51969909667969, - 633.6983642578125, - 293.5194396972656, - 643.8601684570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 633.6983642578125, - 293.5194396972656, - 643.8601684570312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "to improve the proposed model, which will involve assess-", - "origin": [ - 42.51969909667969, - 653.3844604492188 - ], - "bbox": [ - 42.51969909667969, - 645.6036987304688, - 293.562255859375, - 655.7655029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 645.6036987304688, - 293.562255859375, - 655.7655029296875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "ment of the effects of closure relationships for condensa-", - "origin": [ - 42.51969909667969, - 665.3465576171875 - ], - "bbox": [ - 42.51969909667969, - 657.5657958984375, - 293.5552978515625, - 667.7276000976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 657.5657958984375, - 293.5552978515625, - 667.7276000976562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tion, interphase friction forces, non-condensable air and", - "origin": [ - 42.51969909667969, - 677.3086547851562 - ], - "bbox": [ - 42.51969909667969, - 669.5278930664062, - 293.54638671875, - 679.689697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 669.5278930664062, - 293.54638671875, - 679.689697265625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "hydraulic resistance of the tube bundle.", - "origin": [ - 42.51969909667969, - 689.270751953125 - ], - "bbox": [ - 42.51969909667969, - 681.489990234375, - 213.00570678710938, - 691.6517944335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 681.489990234375, - 213.00570678710938, - 691.6517944335938 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 42.51969909667969, - 705.7203979492188, - 87.51378631591797, - 715.6829833984375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "References", - "origin": [ - 42.51969909667969, - 713.1949462890625 - ], - "bbox": [ - 42.51969909667969, - 705.7203979492188, - 87.51378631591797, - 715.6829833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 705.7203979492188, - 87.51378631591797, - 715.6829833984375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 46.48820114135742, - 728.8557739257812, - 293.6320495605469, - 746.9633178710938 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[1] B.J. Davidson, M. Rowe, Simulation of Power Plant Condenser", - "origin": [ - 46.48820114135742, - 735.0805053710938 - ], - "bbox": [ - 46.48820114135742, - 728.8557739257812, - 293.6320495605469, - 736.9854125976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 46.48820114135742, - 728.8557739257812, - 293.6320495605469, - 736.9854125976562 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Performance by Computational Methods: An Overview, Power", - "origin": [ - 57.88319396972656, - 745.0584106445312 - ], - "bbox": [ - 57.88319396972656, - 738.8336791992188, - 293.6065979003906, - 746.9633178710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.88319396972656, - 738.8336791992188, - 293.6065979003906, - 746.9633178710938 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 315.4967956542969, - 490.40411376953125, - 562.6486206054688, - 747.5849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Condenser", - "origin": [ - 326.89178466796875, - 496.62884521484375 - ], - "bbox": [ - 326.89178466796875, - 490.40411376953125, - 363.3155212402344, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 490.40411376953125, - 363.3155212402344, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Heat", - "origin": [ - 370.2599792480469, - 496.62884521484375 - ], - "bbox": [ - 370.2599792480469, - 490.40411376953125, - 386.93365478515625, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 370.2599792480469, - 490.40411376953125, - 386.93365478515625, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Transfer", - "origin": [ - 393.9570007324219, - 496.62884521484375 - ], - "bbox": [ - 393.9570007324219, - 490.40411376953125, - 422.992431640625, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 393.9570007324219, - 490.40411376953125, - 422.992431640625, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Technology,", - "origin": [ - 430.0125732421875, - 496.62884521484375 - ], - "bbox": [ - 430.0125732421875, - 490.40411376953125, - 472.05133056640625, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 430.0125732421875, - 490.40411376953125, - 472.05133056640625, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Hemisphere", - "origin": [ - 479.1065673828125, - 496.62884521484375 - ], - "bbox": [ - 479.1065673828125, - 490.40411376953125, - 519.665283203125, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 479.1065673828125, - 490.40411376953125, - 519.665283203125, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Publishing", - "origin": [ - 526.7268676757812, - 496.62884521484375 - ], - "bbox": [ - 526.7268676757812, - 490.40411376953125, - 562.6486206054688, - 498.5337219238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 526.7268676757812, - 490.40411376953125, - 562.6486206054688, - 498.5337219238281 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Corporation, 1980, pp. 17–49.", - "origin": [ - 326.89178466796875, - 506.60675048828125 - ], - "bbox": [ - 326.89178466796875, - 500.38201904296875, - 430.60400390625, - 508.5116271972656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 500.38201904296875, - 430.60400390625, - 508.5116271972656 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[2] C. Zhang, A. Bokil, A quasi-three-dimensional approach to simulate", - "origin": [ - 315.4967956542969, - 516.5846557617188 - ], - "bbox": [ - 315.4967956542969, - 510.35992431640625, - 562.5990600585938, - 518.4895629882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 510.35992431640625, - 562.5990600585938, - 518.4895629882812 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the two-phase fluid flow and heat transfer in condensers, Int. J. Heat", - "origin": [ - 326.89178466796875, - 526.5059814453125 - ], - "bbox": [ - 326.89178466796875, - 520.28125, - 562.6190185546875, - 528.410888671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 520.28125, - 562.6190185546875, - 528.410888671875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Mass Transfer 40 (15) (1997) 3537–3546.", - "origin": [ - 326.89178466796875, - 536.48388671875 - ], - "bbox": [ - 326.89178466796875, - 530.2591552734375, - 467.40338134765625, - 538.3887939453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 530.2591552734375, - 467.40338134765625, - 538.3887939453125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[3] I.S. Ramon, M.P. Gonzalez, Numerical study of the performance of a", - "origin": [ - 315.4967956542969, - 546.4617309570312 - ], - "bbox": [ - 315.4967956542969, - 540.2369995117188, - 562.572021484375, - 548.3666381835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 540.2369995117188, - 562.572021484375, - 548.3666381835938 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "church window tube bundle condenser, Int. J. Therm. Sci. 40 (2001)", - "origin": [ - 326.89178466796875, - 556.383056640625 - ], - "bbox": [ - 326.89178466796875, - 550.1583251953125, - 562.6021728515625, - 558.2879638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 550.1583251953125, - 562.6021728515625, - 558.2879638671875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "195–204.", - "origin": [ - 326.89178466796875, - 566.3609619140625 - ], - "bbox": [ - 326.89178466796875, - 560.13623046875, - 356.9394836425781, - 568.265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 560.13623046875, - 356.9394836425781, - 568.265869140625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[4] M.M. Prieto, I.M. Suarez, E. Montanes, Analysis of the thermal", - "origin": [ - 315.4967956542969, - 576.3388671875 - ], - "bbox": [ - 315.4967956542969, - 570.1141357421875, - 562.602294921875, - 578.2437744140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 570.1141357421875, - 562.602294921875, - 578.2437744140625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "performance of a church window steam condenser for different", - "origin": [ - 326.89178466796875, - 586.3167114257812 - ], - "bbox": [ - 326.89178466796875, - 580.0919799804688, - 562.5471801757812, - 588.2216186523438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 580.0919799804688, - 562.5471801757812, - 588.2216186523438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "operational conditions using three models, Appl. Therm. Eng. 23", - "origin": [ - 326.89178466796875, - 596.238037109375 - ], - "bbox": [ - 326.89178466796875, - 590.0133056640625, - 562.5887451171875, - 598.1429443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 590.0133056640625, - 562.5887451171875, - 598.1429443359375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "(2003) 163–178.", - "origin": [ - 326.89178466796875, - 606.2159423828125 - ], - "bbox": [ - 326.89178466796875, - 599.9912109375, - 380.68914794921875, - 608.120849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 599.9912109375, - 380.68914794921875, - 608.120849609375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[5] R.P. Roy, M. Ratisher, V.K. Gokhale, A computational model of a", - "origin": [ - 315.4967956542969, - 616.19384765625 - ], - "bbox": [ - 315.4967956542969, - 609.9691162109375, - 562.5728759765625, - 618.0987548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 609.9691162109375, - 562.5728759765625, - 618.0987548828125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "power plant steam condenser, Trans. ASME J. Energy Resour.", - "origin": [ - 326.89178466796875, - 626.1716918945312 - ], - "bbox": [ - 326.89178466796875, - 619.9469604492188, - 562.6199340820312, - 628.0765991210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 619.9469604492188, - 562.6199340820312, - 628.0765991210938 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Technol. 123 (2001) 81–91.", - "origin": [ - 326.89178466796875, - 636.093017578125 - ], - "bbox": [ - 326.89178466796875, - 629.8682861328125, - 419.7757568359375, - 637.9979248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 629.8682861328125, - 419.7757568359375, - 637.9979248046875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[6] S.A.", - "origin": [ - 315.4967956542969, - 646.0709228515625 - ], - "bbox": [ - 315.4967956542969, - 639.84619140625, - 341.7322692871094, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 639.84619140625, - 341.7322692871094, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Al-Sanea,", - "origin": [ - 350.4755859375, - 646.0709228515625 - ], - "bbox": [ - 350.4755859375, - 639.84619140625, - 383.8228759765625, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 350.4755859375, - 639.84619140625, - 383.8228759765625, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "N.", - "origin": [ - 392.4833068847656, - 646.0709228515625 - ], - "bbox": [ - 392.4833068847656, - 639.84619140625, - 401.186767578125, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 392.4833068847656, - 639.84619140625, - 401.186767578125, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Rhodes,", - "origin": [ - 409.9444274902344, - 646.0709228515625 - ], - "bbox": [ - 409.9444274902344, - 639.84619140625, - 437.9835510253906, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 409.9444274902344, - 639.84619140625, - 437.9835510253906, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "T.S.", - "origin": [ - 446.6798400878906, - 646.0709228515625 - ], - "bbox": [ - 446.6798400878906, - 639.84619140625, - 460.6914367675781, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 446.6798400878906, - 639.84619140625, - 460.6914367675781, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Wilkinson,", - "origin": [ - 469.4698181152344, - 646.0709228515625 - ], - "bbox": [ - 469.4698181152344, - 639.84619140625, - 506.5207824707031, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 469.4698181152344, - 639.84619140625, - 506.5207824707031, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Mathematical", - "origin": [ - 515.2760620117188, - 646.0709228515625 - ], - "bbox": [ - 515.2760620117188, - 639.84619140625, - 562.5536499023438, - 647.975830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 515.2760620117188, - 639.84619140625, - 562.5536499023438, - 647.975830078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "modeling of two-phase condenser flows, in: Second International", - "origin": [ - 326.89178466796875, - 656.048828125 - ], - "bbox": [ - 326.89178466796875, - 649.8240966796875, - 562.579833984375, - 657.9537353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 649.8240966796875, - 562.579833984375, - 657.9537353515625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Conference on Multi-phase Flow, London, England, 1985, pp. 169–", - "origin": [ - 326.89178466796875, - 666.0266723632812 - ], - "bbox": [ - 326.89178466796875, - 659.8019409179688, - 562.6214599609375, - 667.9315795898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 659.8019409179688, - 562.6214599609375, - 667.9315795898438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "182.", - "origin": [ - 326.89178466796875, - 675.947998046875 - ], - "bbox": [ - 326.89178466796875, - 669.7232666015625, - 340.9990539550781, - 677.8529052734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 669.7232666015625, - 340.9990539550781, - 677.8529052734375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[7] M.R. Malin, Modelling flow in an experimental marine condenser,", - "origin": [ - 315.4967956542969, - 685.9259033203125 - ], - "bbox": [ - 315.4967956542969, - 679.701171875, - 562.5617065429688, - 687.830810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 679.701171875, - 562.5617065429688, - 687.830810546875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Int. Commun. Heat Mass Transfer 24 (5) (1997) 597–608.", - "origin": [ - 326.89178466796875, - 695.9037475585938 - ], - "bbox": [ - 326.89178466796875, - 689.6790161132812, - 526.4409790039062, - 697.8086547851562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 689.6790161132812, - 526.4409790039062, - 697.8086547851562 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "[8] A.W. Bush, G.S. Marshall, T.S. Wilkinson, The prediction of", - "origin": [ - 315.4967956542969, - 705.8250732421875 - ], - "bbox": [ - 315.4967956542969, - 699.600341796875, - 562.5807495117188, - 707.72998046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 315.4967956542969, - 699.600341796875, - 562.5807495117188, - 707.72998046875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "steam condensation using a three component solution algorithm,", - "origin": [ - 326.89178466796875, - 715.802978515625 - ], - "bbox": [ - 326.89178466796875, - 709.5782470703125, - 562.6239013671875, - 717.7078857421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 709.5782470703125, - 562.6239013671875, - 717.7078857421875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in:", - "origin": [ - 326.89178466796875, - 725.7808837890625 - ], - "bbox": [ - 326.89178466796875, - 719.55615234375, - 335.59521484375, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 719.55615234375, - 335.59521484375, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Proceedings", - "origin": [ - 342.8791809082031, - 725.7808837890625 - ], - "bbox": [ - 342.8791809082031, - 719.55615234375, - 383.61480712890625, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.8791809082031, - 719.55615234375, - 383.61480712890625, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "of", - "origin": [ - 390.783203125, - 725.7808837890625 - ], - "bbox": [ - 390.783203125, - 719.55615234375, - 397.8368225097656, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.783203125, - 719.55615234375, - 397.8368225097656, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the", - "origin": [ - 405.1263732910156, - 725.7808837890625 - ], - "bbox": [ - 405.1263732910156, - 719.55615234375, - 415.6629638671875, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 405.1263732910156, - 719.55615234375, - 415.6629638671875, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Second", - "origin": [ - 422.92779541015625, - 725.7808837890625 - ], - "bbox": [ - 422.92779541015625, - 719.55615234375, - 447.49188232421875, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.92779541015625, - 719.55615234375, - 447.49188232421875, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "International", - "origin": [ - 454.67462158203125, - 725.7808837890625 - ], - "bbox": [ - 454.67462158203125, - 719.55615234375, - 499.4750671386719, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 454.67462158203125, - 719.55615234375, - 499.4750671386719, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Symposium", - "origin": [ - 506.66021728515625, - 725.7808837890625 - ], - "bbox": [ - 506.66021728515625, - 719.55615234375, - 546.5670166015625, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 506.66021728515625, - 719.55615234375, - 546.5670166015625, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "on", - "origin": [ - 553.7705078125, - 725.7808837890625 - ], - "bbox": [ - 553.7705078125, - 719.55615234375, - 562.569580078125, - 727.685791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 553.7705078125, - 719.55615234375, - 562.569580078125, - 727.685791015625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Condensers and Condensation, University of Bath, UK, 1990,", - "origin": [ - 326.89178466796875, - 735.7587280273438 - ], - "bbox": [ - 326.89178466796875, - 729.5339965820312, - 562.6207885742188, - 737.6636352539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 729.5339965820312, - 562.6207885742188, - 737.6636352539062 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "pp. 223–234.", - "origin": [ - 326.89178466796875, - 745.6800537109375 - ], - "bbox": [ - 326.89178466796875, - 739.455322265625, - 371.452392578125, - 747.5849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 326.89178466796875, - 739.455322265625, - 371.452392578125, - 747.5849609375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 231.87399291992188, - 470.6196594238281, - 373.2309875488281, - 478.749267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Fig. 6. Comparison of average heat flux.", - "origin": [ - 231.87399291992188, - 476.8443908691406 - ], - "bbox": [ - 231.87399291992188, - 470.6196594238281, - 373.2309875488281, - 478.749267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 231.87399291992188, - 470.6196594238281, - 373.2309875488281, - 478.749267578125 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 146.09710693359375, - 47.406070709228516, - 562.6309814453125, - 55.62126541137695 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "H.G. Hu, C. Zhang / International Journal of Heat and Mass Transfer 50 (2007) 1641–1648", - "origin": [ - 146.09710693359375, - 53.63079833984375 - ], - "bbox": [ - 146.09710693359375, - 47.651065826416016, - 459.0688781738281, - 55.62126541137695 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.09710693359375, - 47.651065826416016, - 459.0688781738281, - 55.62126541137695 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1647", - "origin": [ - 546.6905517578125, - 53.63079833984375 - ], - "bbox": [ - 546.6905517578125, - 47.406070709228516, - 562.6309814453125, - 55.535675048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 546.6905517578125, - 47.406070709228516, - 562.6309814453125, - 55.535675048828125 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 6, - "type": 0, - "bbox": [ - 146.09710693359375, - 47.406070709228516, - 562.6309814453125, - 55.62126541137695 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "H.G. Hu, C. Zhang / International Journal of Heat and Mass Transfer 50 (2007) 1641–1648", - "origin": [ - 146.09710693359375, - 53.63079833984375 - ], - "bbox": [ - 146.09710693359375, - 47.651065826416016, - 459.0688781738281, - 55.62126541137695 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.09710693359375, - 47.651065826416016, - 459.0688781738281, - 55.62126541137695 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1647", - "origin": [ - 546.6905517578125, - 53.63079833984375 - ], - "bbox": [ - 546.6905517578125, - 47.406070709228516, - 562.6309814453125, - 55.535675048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 546.6905517578125, - 47.406070709228516, - 562.6309814453125, - 55.535675048828125 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.2760009765625, - 793.7009887695312 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\345\217\214\345\210\227\345\272\225\351\203\250\350\267\250\345\210\227\350\241\250_10.1016_j.ijheatmasstransfer.2006.10.031_3.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\345\217\214\345\210\227\345\272\225\351\203\250\350\267\250\345\210\227\350\241\250_10.1016_j.ijheatmasstransfer.2006.10.031_3.pdf/preproc_out.json" deleted file mode 100644 index 87caab81a..000000000 --- "a/tests/assets/pre_proc_results/\345\217\214\345\210\227\345\272\225\351\203\250\350\267\250\345\210\227\350\241\250_10.1016_j.ijheatmasstransfer.2006.10.031_3.pdf/preproc_out.json" +++ /dev/null @@ -1,27510 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 45.46770095825195, - 69.09518432617188, - 293.5812683105469, - 115.14332580566406 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 45.46770095825195, - 76.8759765625 - ], - "bbox": [ - 45.46770095825195, - 69.20477294921875, - 50.44900131225586, - 86.42015075683594 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " The turbulent diffusivity is equal to the turbulent viscos-", - "origin": [ - 50.44900131225586, - 76.8759765625 - ], - "bbox": [ - 50.44900131225586, - 69.09518432617188, - 293.5812683105469, - 79.25703430175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 45.46770095825195, - 69.09518432617188, - 293.5812683105469, - 86.42015075683594 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "ity, i.e., Schmidt number is equal to one.", - "origin": [ - 54.42507553100586, - 88.83807373046875 - ], - "bbox": [ - 54.42507553100586, - 81.05728149414062, - 231.20643615722656, - 91.21913146972656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.42507553100586, - 81.05728149414062, - 231.20643615722656, - 91.21913146972656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 45.46770095825195, - 100.8001708984375 - ], - "bbox": [ - 45.46770095825195, - 93.12896728515625, - 50.44900131225586, - 110.34434509277344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Pressure drop from inlet to vent for all sectors must be", - "origin": [ - 50.44900131225586, - 100.8001708984375 - ], - "bbox": [ - 50.44900131225586, - 93.01937866210938, - 293.5404357910156, - 103.18122863769531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 45.46770095825195, - 93.01937866210938, - 293.5404357910156, - 110.34434509277344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the same.", - "origin": [ - 54.42507553100586, - 112.76226806640625 - ], - "bbox": [ - 54.42507553100586, - 104.98147583007812, - 94.97186279296875, - 115.14332580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.42507553100586, - 104.98147583007812, - 94.97186279296875, - 115.14332580566406 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 42.51976776123047, - 131.422607421875, - 146.08197021484375, - 141.3852081298828 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2.2. Governing equations", - "origin": [ - 42.51976776123047, - 138.89715576171875 - ], - "bbox": [ - 42.51976776123047, - 131.422607421875, - 146.08197021484375, - 141.3852081298828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51976776123047, - 131.422607421875, - 146.08197021484375, - 141.3852081298828 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 42.51976776123047, - 155.04055786132812, - 293.583251953125, - 212.99403381347656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The governing equations for shell-side flow in a con-", - "origin": [ - 54.48186111450195, - 162.82135009765625 - ], - "bbox": [ - 54.48186111450195, - 155.04055786132812, - 293.583251953125, - 165.20240783691406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.48186111450195, - 155.04055786132812, - 293.583251953125, - 165.20240783691406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "denser are the equations of conservation of mass, momen-", - "origin": [ - 42.51976776123047, - 174.7266845703125 - ], - "bbox": [ - 42.51976776123047, - 166.94589233398438, - 293.5404357910156, - 177.1077423095703 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51976776123047, - 166.94589233398438, - 293.5404357910156, - 177.1077423095703 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tum for both gas-phase and liquid-phase, and air mass", - "origin": [ - 42.51976776123047, - 186.68878173828125 - ], - "bbox": [ - 42.51976776123047, - 178.90798950195312, - 293.5324401855469, - 189.06983947753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51976776123047, - 178.90798950195312, - 293.5324401855469, - 189.06983947753906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fraction. The general form of the governing equation can", - "origin": [ - 42.51976776123047, - 198.65087890625 - ], - "bbox": [ - 42.51976776123047, - 190.87008666992188, - 293.534423828125, - 201.0319366455078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51976776123047, - 190.87008666992188, - 293.534423828125, - 201.0319366455078 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "be expressed as", - "origin": [ - 42.51976776123047, - 210.61297607421875 - ], - "bbox": [ - 42.51976776123047, - 202.83218383789062, - 108.54690551757812, - 212.99403381347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51976776123047, - 202.83218383789062, - 108.54690551757812, - 212.99403381347656 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 42.52000045776367, - 219.2101287841797, - 179.3236846923828, - 250.65904235839844 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 44.7307014465332, - 227.50897216796875 - ], - "bbox": [ - 44.7307014465332, - 219.2101287841797, - 49.71200180053711, - 230.9261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 44.7307014465332, - 219.2101287841797, - 49.71200180053711, - 230.9261474609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 42.52000045776367, - 241.1148681640625 - ], - "bbox": [ - 42.52000045776367, - 232.81602478027344, - 47.50130081176758, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 47.50926971435547, - 241.1148681640625 - ], - "bbox": [ - 47.50926971435547, - 232.19833374023438, - 51.96255111694336, - 243.4959259033203 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 52.951839447021484, - 234.3114013671875 - ], - "bbox": [ - 52.951839447021484, - 226.64019775390625, - 56.78744125366211, - 243.85557556152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bq", - "origin": [ - 56.80736541748047, - 234.3114013671875 - ], - "bbox": [ - 56.80736541748047, - 226.32139587402344, - 67.80607604980469, - 237.32009887695312 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 67.86286163330078, - 234.3114013671875 - ], - "bbox": [ - 67.86286163330078, - 225.39486694335938, - 72.84416198730469, - 236.6924591064453 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 72.85213470458984, - 234.3114013671875 - ], - "bbox": [ - 72.85213470458984, - 226.32139587402344, - 79.48722839355469, - 237.32009887695312 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þþ", - "origin": [ - 79.4852294921875, - 234.3114013671875 - ], - "bbox": [ - 79.4852294921875, - 226.64019775390625, - 92.31507110595703, - 243.85557556152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " o", - "origin": [ - 92.31507110595703, - 234.3114013671875 - ], - "bbox": [ - 92.31507110595703, - 219.2101287841797, - 101.01910400390625, - 237.72857666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.52000045776367, - 219.2101287841797, - 101.01910400390625, - 244.53204345703125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 93.71353149414062, - 241.1148681640625 - ], - "bbox": [ - 93.71353149414062, - 232.81602478027344, - 98.69483184814453, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 98.70280456542969, - 241.1148681640625 - ], - "bbox": [ - 98.70280456542969, - 232.19833374023438, - 102.84724426269531, - 243.4959259033203 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 102.84724426269531, - 241.1148681640625 - ], - "bbox": [ - 102.84724426269531, - 226.64019775390625, - 104.37252044677734, - 250.65904235839844 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 104.37252044677734, - 234.3114013671875 - ], - "bbox": [ - 104.37252044677734, - 226.64019775390625, - 108.20812225341797, - 243.85557556152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bq", - "origin": [ - 108.17125701904297, - 234.3114013671875 - ], - "bbox": [ - 108.17125701904297, - 226.32139587402344, - 119.16996002197266, - 237.32009887695312 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 119.22675323486328, - 234.3114013671875 - ], - "bbox": [ - 119.22675323486328, - 225.39486694335938, - 123.58040618896484, - 236.6924591064453 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 123.59236145019531, - 234.3114013671875 - ], - "bbox": [ - 123.59236145019531, - 226.32139587402344, - 130.22744750976562, - 237.32009887695312 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ ¼", - "origin": [ - 130.2254638671875, - 234.3114013671875 - ], - "bbox": [ - 130.2254638671875, - 226.64019775390625, - 143.39602661132812, - 243.85557556152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " o", - "origin": [ - 143.39602661132812, - 234.3114013671875 - ], - "bbox": [ - 143.39602661132812, - 219.2101287841797, - 152.3260955810547, - 237.72857666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.71353149414062, - 219.2101287841797, - 152.3260955810547, - 250.65904235839844 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 145.0773162841797, - 241.1148681640625 - ], - "bbox": [ - 145.0773162841797, - 232.81602478027344, - 150.05860900878906, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 150.06658935546875, - 241.1148681640625 - ], - "bbox": [ - 150.06658935546875, - 232.19833374023438, - 154.51986694335938, - 243.4959259033203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 145.0773162841797, - 232.19833374023438, - 154.51986694335938, - 244.53204345703125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bC", - "origin": [ - 162.8227081298828, - 234.3114013671875 - ], - "bbox": [ - 162.8227081298828, - 226.32139587402344, - 174.9571533203125, - 237.32009887695312 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 175.01100158691406, - 235.78607177734375 - ], - "bbox": [ - 175.01100158691406, - 230.5927276611328, - 179.3236846923828, - 237.74166870117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.8227081298828, - 226.32139587402344, - 179.3236846923828, - 237.74166870117188 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 180.793701171875, - 219.2101287841797, - 192.47483825683594, - 244.53204345703125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 180.793701171875, - 227.50897216796875 - ], - "bbox": [ - 180.793701171875, - 219.2101287841797, - 185.77499389648438, - 230.9261474609375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 185.83975219726562, - 227.50897216796875 - ], - "bbox": [ - 185.83975219726562, - 219.5189666748047, - 192.47483825683594, - 230.51766967773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 180.793701171875, - 219.2101287841797, - 192.47483825683594, - 230.9261474609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 181.9274444580078, - 241.1148681640625 - ], - "bbox": [ - 181.9274444580078, - 232.81602478027344, - 186.9087371826172, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 186.91671752929688, - 241.1148681640625 - ], - "bbox": [ - 186.91671752929688, - 232.19833374023438, - 191.3699951171875, - 243.4959259033203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.9274444580078, - 232.19833374023438, - 191.3699951171875, - 244.53204345703125 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 155.56541442871094, - 212.58099365234375, - 244.52047729492188, - 249.72157287597656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 155.56541442871094, - 220.252197265625 - ], - "bbox": [ - 155.56541442871094, - 212.58099365234375, - 162.82815551757812, - 249.72157287597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 155.56541442871094, - 212.58099365234375, - 162.82815551757812, - 249.72157287597656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 192.47186279296875, - 220.252197265625 - ], - "bbox": [ - 192.47186279296875, - 212.58099365234375, - 199.73460388183594, - 249.72157287597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.47186279296875, - 212.58099365234375, - 199.73460388183594, - 249.72157287597656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 201.08950805664062, - 234.31243896484375 - ], - "bbox": [ - 201.08950805664062, - 226.6412353515625, - 208.76071166992188, - 243.8566131591797 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " ", - "origin": [ - 208.76071166992188, - 234.31243896484375 - ], - "bbox": [ - 208.76071166992188, - 219.2101287841797, - 212.4282989501953, - 237.7296142578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 212.4282989501953, - 227.50897216796875 - ], - "bbox": [ - 212.4282989501953, - 219.2101287841797, - 217.4095916748047, - 230.9261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 201.08950805664062, - 219.2101287841797, - 217.4095916748047, - 243.8566131591797 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 210.10401916503906, - 241.1148681640625 - ], - "bbox": [ - 210.10401916503906, - 232.81602478027344, - 215.08531188964844, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 215.09329223632812, - 241.1148681640625 - ], - "bbox": [ - 215.09329223632812, - 232.19833374023438, - 219.23773193359375, - 243.4959259033203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 210.10401916503906, - 232.19833374023438, - 219.23773193359375, - 244.53204345703125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bC", - "origin": [ - 228.01876831054688, - 234.3114013671875 - ], - "bbox": [ - 228.01876831054688, - 226.32139587402344, - 240.15321350097656, - 237.32009887695312 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 240.20779418945312, - 235.78607177734375 - ], - "bbox": [ - 240.20779418945312, - 230.5927276611328, - 244.52047729492188, - 237.74166870117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.01876831054688, - 226.32139587402344, - 244.52047729492188, - 237.74166870117188 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 245.99049377441406, - 219.2101287841797, - 257.6148681640625, - 244.53204345703125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 245.99049377441406, - 227.50897216796875 - ], - "bbox": [ - 245.99049377441406, - 219.2101287841797, - 250.97178649902344, - 230.9261474609375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 250.97976684570312, - 227.50897216796875 - ], - "bbox": [ - 250.97976684570312, - 219.5189666748047, - 257.6148681640625, - 230.51766967773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.99049377441406, - 219.2101287841797, - 257.6148681640625, - 230.9261474609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 247.01165771484375, - 241.1148681640625 - ], - "bbox": [ - 247.01165771484375, - 232.81602478027344, - 251.99295043945312, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 252.0009307861328, - 241.1148681640625 - ], - "bbox": [ - 252.0009307861328, - 232.19833374023438, - 256.1453857421875, - 243.4959259033203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.01165771484375, - 232.19833374023438, - 256.1453857421875, - 244.53204345703125 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 220.76319885253906, - 212.58099365234375, - 285.1125793457031, - 249.72157287597656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 220.76319885253906, - 220.252197265625 - ], - "bbox": [ - 220.76319885253906, - 212.58099365234375, - 228.02593994140625, - 249.72157287597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.76319885253906, - 212.58099365234375, - 228.02593994140625, - 249.72157287597656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 257.6696472167969, - 220.252197265625 - ], - "bbox": [ - 257.6696472167969, - 212.58099365234375, - 264.932373046875, - 249.72157287597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 257.6696472167969, - 212.58099365234375, - 264.932373046875, - 249.72157287597656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 266.28729248046875, - 234.31243896484375 - ], - "bbox": [ - 266.28729248046875, - 226.6412353515625, - 273.95849609375, - 243.8566131591797 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "S", - "origin": [ - 275.30145263671875, - 234.31243896484375 - ], - "bbox": [ - 275.30145263671875, - 225.39590454101562, - 280.2827453613281, - 236.69349670410156 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 280.7998962402344, - 235.78607177734375 - ], - "bbox": [ - 280.7998962402344, - 230.5927276611328, - 285.1125793457031, - 237.74166870117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.28729248046875, - 225.39590454101562, - 285.1125793457031, - 243.8566131591797 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 280.9132995605469, - 248.35812377929688, - 293.59368896484375, - 265.6830749511719 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 280.9132995605469, - 256.138916015625 - ], - "bbox": [ - 280.9132995605469, - 248.46771240234375, - 284.7489013671875, - 265.6830749511719 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 284.7120361328125, - 256.138916015625 - ], - "bbox": [ - 284.7120361328125, - 248.35812377929688, - 289.6933288574219, - 258.5199890136719 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 289.7580871582031, - 256.138916015625 - ], - "bbox": [ - 289.7580871582031, - 248.46771240234375, - 293.59368896484375, - 265.6830749511719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.9132995605469, - 248.35812377929688, - 293.59368896484375, - 265.6830749511719 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 42.520751953125, - 266.2340087890625, - 293.5752868652344, - 336.358642578125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The expressions for", - "origin": [ - 42.521240234375, - 274.2239990234375 - ], - "bbox": [ - 42.521240234375, - 266.4432067871094, - 125.58541870117188, - 276.6050720214844 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " /", - "origin": [ - 125.58541870117188, - 274.2239990234375 - ], - "bbox": [ - 125.58541870117188, - 266.2340087890625, - 134.98910522460938, - 277.2326965332031 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ",", - "origin": [ - 134.98712158203125, - 274.2239990234375 - ], - "bbox": [ - 134.98712158203125, - 266.4432067871094, - 137.67701721191406, - 276.6050720214844 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " C", - "origin": [ - 137.67701721191406, - 274.2239990234375 - ], - "bbox": [ - 137.67701721191406, - 266.2340087890625, - 147.0647735595703, - 277.2326965332031 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 147.11810302734375, - 275.86810302734375 - ], - "bbox": [ - 147.11810302734375, - 270.5420227050781, - 152.0943145751953, - 277.8736877441406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " and", - "origin": [ - 152.0943145751953, - 275.86810302734375 - ], - "bbox": [ - 152.0943145751953, - 266.4430847167969, - 170.8720703125, - 278.2491760253906 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " S", - "origin": [ - 170.8720703125, - 274.223876953125 - ], - "bbox": [ - 170.8720703125, - 266.74932861328125, - 179.6112518310547, - 276.7119140625 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 179.65980529785156, - 275.86810302734375 - ], - "bbox": [ - 179.65980529785156, - 270.5420227050781, - 184.63601684570312, - 277.8736877441406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " are given in", - "origin": [ - 184.63601684570312, - 275.86810302734375 - ], - "bbox": [ - 184.63601684570312, - 266.4430847167969, - 236.83128356933594, - 278.2491760253906 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Table 1", - "origin": [ - 236.83128356933594, - 274.223876953125 - ], - "bbox": [ - 236.83128356933594, - 266.4430847167969, - 271.6077575683594, - 276.6049499511719 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ". The", - "origin": [ - 271.61572265625, - 274.223876953125 - ], - "bbox": [ - 271.61572265625, - 266.4430847167969, - 293.5464172363281, - 276.6049499511719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.521240234375, - 266.2340087890625, - 293.5464172363281, - 278.2491760253906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "pressure correction equation is obtained from the gas-", - "origin": [ - 42.520751953125, - 286.18597412109375 - ], - "bbox": [ - 42.520751953125, - 278.4051818847656, - 293.5483703613281, - 288.5670471191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 278.4051818847656, - 293.5483703613281, - 288.5670471191406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "phase continuity equation and gas-phase momentum equa-", - "origin": [ - 42.520751953125, - 298.1480712890625 - ], - "bbox": [ - 42.520751953125, - 290.3672790527344, - 293.5752868652344, - 300.5291442871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 290.3672790527344, - 293.5752868652344, - 300.5291442871094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tions. The liquid volume fraction is obtained from the", - "origin": [ - 42.520751953125, - 310.11016845703125 - ], - "bbox": [ - 42.520751953125, - 302.3293762207031, - 293.5145263671875, - 312.4912414550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 302.3293762207031, - 293.5145263671875, - 312.4912414550781 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "liquid-phase continuity equation. The gas volume fraction", - "origin": [ - 42.520751953125, - 322.0154724121094 - ], - "bbox": [ - 42.520751953125, - 314.23468017578125, - 293.4866027832031, - 324.39654541015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 314.23468017578125, - 293.4866027832031, - 324.39654541015625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "is obtained by using an auxiliary equation.", - "origin": [ - 42.520751953125, - 333.9775695800781 - ], - "bbox": [ - 42.520751953125, - 326.19677734375, - 227.5341339111328, - 336.358642578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 326.19677734375, - 227.5341339111328, - 336.358642578125 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 42.520751953125, - 351.4473876953125, - 128.95028686523438, - 361.40997314453125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2.3. Volume fraction", - "origin": [ - 42.520751953125, - 358.92193603515625 - ], - "bbox": [ - 42.520751953125, - 351.4473876953125, - 128.95028686523438, - 361.40997314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 351.4473876953125, - 128.95028686523438, - 361.40997314453125 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 42.520751953125, - 375.008544921875, - 293.582275390625, - 492.7724914550781 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The porous medium concept is used in this study to", - "origin": [ - 54.482845306396484, - 382.7893371582031 - ], - "bbox": [ - 54.482845306396484, - 375.008544921875, - 293.5264587402344, - 385.17041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.482845306396484, - 375.008544921875, - 293.5264587402344, - 385.17041015625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "account for the effect of tube bundles on the fluid flow.", - "origin": [ - 42.520751953125, - 394.7514343261719 - ], - "bbox": [ - 42.520751953125, - 386.97064208984375, - 293.5315246582031, - 397.13250732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 386.97064208984375, - 293.5315246582031, - 397.13250732421875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The porosity,", - "origin": [ - 42.520751953125, - 406.7135314941406 - ], - "bbox": [ - 42.520751953125, - 398.9327392578125, - 99.45701599121094, - 409.0946044921875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " a", - "origin": [ - 99.45701599121094, - 406.7135314941406 - ], - "bbox": [ - 99.45701599121094, - 398.7235412597656, - 106.91600799560547, - 409.72222900390625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ", which is employed to describe the flow vol-", - "origin": [ - 106.92398071289062, - 406.7135314941406 - ], - "bbox": [ - 106.92398071289062, - 398.9327392578125, - 293.54541015625, - 409.0946044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 398.7235412597656, - 293.54541015625, - 409.72222900390625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "ume reduction due to tube bundles, is defined as the ratio of", - "origin": [ - 42.520751953125, - 418.6756286621094 - ], - "bbox": [ - 42.520751953125, - 410.89483642578125, - 293.582275390625, - 421.05670166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 410.89483642578125, - 293.582275390625, - 421.05670166015625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the volume occupied by the fluid to the total volume. The", - "origin": [ - 42.520751953125, - 430.6377258300781 - ], - "bbox": [ - 42.520751953125, - 422.85693359375, - 293.5444641113281, - 433.018798828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 422.85693359375, - 293.5444641113281, - 433.018798828125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "gas volume fraction and liquid volume fraction are defined", - "origin": [ - 42.520751953125, - 442.5998229980469 - ], - "bbox": [ - 42.520751953125, - 434.81903076171875, - 293.53045654296875, - 444.98089599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 434.81903076171875, - 293.53045654296875, - 444.98089599609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "as the ratio of the volume occupied by the gas (vapor and", - "origin": [ - 42.520751953125, - 454.5619201660156 - ], - "bbox": [ - 42.520751953125, - 446.7811279296875, - 293.54437255859375, - 456.9429931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 446.7811279296875, - 293.54437255859375, - 456.9429931640625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "air) to the total volume, and the ratio of the volume", - "origin": [ - 42.520751953125, - 466.46722412109375 - ], - "bbox": [ - 42.520751953125, - 458.6864318847656, - 293.5364685058594, - 468.8482971191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 458.6864318847656, - 293.5364685058594, - 468.8482971191406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "occupied by the liquid to the total volume, respectively.", - "origin": [ - 42.520751953125, - 478.4293212890625 - ], - "bbox": [ - 42.520751953125, - 470.6485290527344, - 293.5205383300781, - 480.8103942871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 470.6485290527344, - 293.5205383300781, - 480.8103942871094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Thus,", - "origin": [ - 42.520751953125, - 490.39141845703125 - ], - "bbox": [ - 42.520751953125, - 482.6106262207031, - 66.7537841796875, - 492.7724914550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 482.6106262207031, - 66.7537841796875, - 492.7724914550781 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 42.520751953125, - 499.18243408203125, - 293.59307861328125, - 518.9869384765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 42.520751953125, - 507.17242431640625 - ], - "bbox": [ - 42.520751953125, - 499.18243408203125, - 48.02010726928711, - 510.1811218261719 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 48.01890182495117, - 509.4427795410156 - ], - "bbox": [ - 48.01890182495117, - 504.3854064941406, - 51.25665283203125, - 510.99041748046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " þ", - "origin": [ - 51.25665283203125, - 509.4427795410156 - ], - "bbox": [ - 51.25665283203125, - 499.5038757324219, - 61.642799377441406, - 518.9869384765625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " b", - "origin": [ - 61.642799377441406, - 507.1750793457031 - ], - "bbox": [ - 61.642799377441406, - 499.1850891113281, - 69.39170837402344, - 510.18377685546875 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 69.39209747314453, - 509.4427795410156 - ], - "bbox": [ - 69.39209747314453, - 504.3854064941406, - 71.1404800415039, - 510.99041748046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 71.1404800415039, - 509.4427795410156 - ], - "bbox": [ - 71.1404800415039, - 499.5038757324219, - 82.10900115966797, - 518.9869384765625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " a", - "origin": [ - 82.10900115966797, - 507.1750793457031 - ], - "bbox": [ - 82.10900115966797, - 499.1850891113281, - 89.85093688964844, - 510.18377685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 499.18243408203125, - 89.85093688964844, - 518.9869384765625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 280.9126892089844, - 507.1750793457031 - ], - "bbox": [ - 280.9126892089844, - 499.5038757324219, - 284.748291015625, - 516.71923828125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 284.71142578125, - 507.1750793457031 - ], - "bbox": [ - 284.71142578125, - 499.394287109375, - 289.6927185058594, - 509.55615234375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 289.7574768066406, - 507.1750793457031 - ], - "bbox": [ - 289.7574768066406, - 499.5038757324219, - 293.59307861328125, - 516.71923828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.9126892089844, - 499.394287109375, - 293.59307861328125, - 516.71923828125 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 311.5277404785156, - 68.88743591308594, - 562.553466796875, - 103.18269348144531 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The porosity,", - "origin": [ - 311.5277404785156, - 76.87744140625 - ], - "bbox": [ - 311.5277404785156, - 69.09664916992188, - 369.6147155761719, - 79.25849914550781 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " a", - "origin": [ - 369.6147155761719, - 76.87744140625 - ], - "bbox": [ - 369.6147155761719, - 68.88743591308594, - 378.36083984375, - 79.88614654541016 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ", is determined by the tube bundle layout.", - "origin": [ - 378.3688049316406, - 76.87744140625 - ], - "bbox": [ - 378.3688049316406, - 69.09664916992188, - 562.5304565429688, - 79.25849914550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 68.88743591308594, - 562.5304565429688, - 79.88614654541016 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Therefore, the gas volume fraction can be obtained by", - "origin": [ - 311.5277404785156, - 88.83953857421875 - ], - "bbox": [ - 311.5277404785156, - 81.05874633789062, - 562.553466796875, - 91.22059631347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 81.05874633789062, - 562.553466796875, - 91.22059631347656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Eq.", - "origin": [ - 311.5277404785156, - 100.8016357421875 - ], - "bbox": [ - 311.5277404785156, - 93.02084350585938, - 326.35211181640625, - 103.18269348144531 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " (2)", - "origin": [ - 326.35211181640625, - 100.8016357421875 - ], - "bbox": [ - 326.35211181640625, - 93.02084350585938, - 341.3427734375, - 103.18269348144531 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ".", - "origin": [ - 341.3487854003906, - 100.8016357421875 - ], - "bbox": [ - 341.3487854003906, - 93.02084350585938, - 344.0386962890625, - 103.18269348144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 93.02084350585938, - 344.0386962890625, - 103.18269348144531 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 311.5287170410156, - 117.25128173828125, - 420.9778747558594, - 127.21387481689453 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2.4. Distributed resistance", - "origin": [ - 311.5287170410156, - 124.725830078125 - ], - "bbox": [ - 311.5287170410156, - 117.25128173828125, - 420.9778747558594, - 127.21387481689453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 117.25128173828125, - 420.9778747558594, - 127.21387481689453 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 311.5287170410156, - 140.81240844726562, - 562.5671997070312, - 186.8605499267578 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The source terms for the distributed resistance, which is", - "origin": [ - 323.4908142089844, - 148.59320068359375 - ], - "bbox": [ - 323.4908142089844, - 140.81240844726562, - 562.5671997070312, - 150.97425842285156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.4908142089844, - 140.81240844726562, - 562.5671997070312, - 150.97425842285156 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "due to tube bundles, are included in the momentum equa-", - "origin": [ - 311.5287170410156, - 160.5552978515625 - ], - "bbox": [ - 311.5287170410156, - 152.77450561523438, - 562.515625, - 162.9363555908203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 152.77450561523438, - 562.515625, - 162.9363555908203 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tions for both gas-phase and liquid-phase. They are taken", - "origin": [ - 311.5287170410156, - 172.51739501953125 - ], - "bbox": [ - 311.5287170410156, - 164.73660278320312, - 562.5134887695312, - 174.89845275878906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 164.73660278320312, - 562.5134887695312, - 174.89845275878906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the following forms", - "origin": [ - 311.5287170410156, - 184.4794921875 - ], - "bbox": [ - 311.5287170410156, - 176.69869995117188, - 396.1859130859375, - 186.8605499267578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 396.1859130859375, - 184.4794921875 - ], - "bbox": [ - 396.1859130859375, - 176.69869995117188, - 409.9333190917969, - 186.8605499267578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ":", - "origin": [ - 409.947265625, - 184.4794921875 - ], - "bbox": [ - 409.947265625, - 176.69869995117188, - 412.6371765136719, - 186.8605499267578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 176.69869995117188, - 412.6371765136719, - 186.8605499267578 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 311.52874755859375, - 193.02395629882812, - 562.5447387695312, - 214.26268005371094 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 311.52874755859375, - 201.94091796875 - ], - "bbox": [ - 311.52874755859375, - 194.26971435546875, - 315.3643493652344, - 211.48509216308594 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "R", - "origin": [ - 315.38427734375, - 201.94091796875 - ], - "bbox": [ - 315.38427734375, - 193.02438354492188, - 321.5013122558594, - 204.3219757080078 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 321.5054016113281, - 203.41448974609375 - ], - "bbox": [ - 321.5054016113281, - 197.61891174316406, - 324.39996337890625, - 204.96212768554688 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 324.9070129394531, - 201.94049072265625 - ], - "bbox": [ - 324.9070129394531, - 194.269287109375, - 328.74261474609375, - 211.4846649169922 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 328.7620849609375, - 204.718505859375 - ], - "bbox": [ - 328.7620849609375, - 198.9229278564453, - 333.4114990234375, - 206.26614379882812 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼ ð", - "origin": [ - 333.4114990234375, - 204.718505859375 - ], - "bbox": [ - 333.4114990234375, - 194.269287109375, - 350.9665222167969, - 214.26268005371094 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bn", - "origin": [ - 350.9854736328125, - 201.94049072265625 - ], - "bbox": [ - 350.9854736328125, - 193.9504852294922, - 361.46612548828125, - 204.94918823242188 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 361.4739074707031, - 203.8114013671875 - ], - "bbox": [ - 361.4739074707031, - 198.0158233642578, - 364.36846923828125, - 205.35903930664062 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 364.87548828125, - 201.94049072265625 - ], - "bbox": [ - 364.87548828125, - 193.9504852294922, - 370.3748474121094, - 204.94918823242188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "uU", - "origin": [ - 370.3748474121094, - 201.94049072265625 - ], - "bbox": [ - 370.3748474121094, - 193.02395629882812, - 382.50927734375, - 204.32154846191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 383.5842590332031, - 201.94049072265625 - ], - "bbox": [ - 383.5842590332031, - 194.269287109375, - 387.41986083984375, - 211.4846649169922 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 387.4393005371094, - 204.718505859375 - ], - "bbox": [ - 387.4393005371094, - 198.9229278564453, - 392.0887145996094, - 206.26614379882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52874755859375, - 193.02395629882812, - 392.0887145996094, - 214.26268005371094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8643798828125, - 201.94049072265625 - ], - "bbox": [ - 549.8643798828125, - 194.269287109375, - 553.699951171875, - 211.4846649169922 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "3", - "origin": [ - 553.7199096679688, - 201.94049072265625 - ], - "bbox": [ - 553.7199096679688, - 194.15969848632812, - 558.7012329101562, - 204.32154846191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7091674804688, - 201.94049072265625 - ], - "bbox": [ - 558.7091674804688, - 194.269287109375, - 562.5447387695312, - 211.4846649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8643798828125, - 194.15969848632812, - 562.5447387695312, - 211.4846649169922 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 311.52911376953125, - 210.93869018554688, - 562.5447387695312, - 232.23423767089844 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 311.52911376953125, - 219.855224609375 - ], - "bbox": [ - 311.52911376953125, - 212.18402099609375, - 315.3647155761719, - 229.39939880371094 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "R", - "origin": [ - 315.3846435546875, - 219.855224609375 - ], - "bbox": [ - 315.3846435546875, - 210.93869018554688, - 321.5016784667969, - 222.2362823486328 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 321.5054016113281, - 221.3294677734375 - ], - "bbox": [ - 321.5054016113281, - 215.5338897705078, - 324.19921875, - 222.87710571289062 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 325.0203857421875, - 219.85546875 - ], - "bbox": [ - 325.0203857421875, - 212.18426513671875, - 328.8559875488281, - 229.39964294433594 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 328.87548828125, - 222.6900634765625 - ], - "bbox": [ - 328.87548828125, - 216.8944854736328, - 333.52490234375, - 224.23770141601562 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼ ð", - "origin": [ - 333.52490234375, - 222.6900634765625 - ], - "bbox": [ - 333.52490234375, - 212.18426513671875, - 351.0799255371094, - 232.23423767089844 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bn", - "origin": [ - 351.098876953125, - 219.85546875 - ], - "bbox": [ - 351.098876953125, - 211.86546325683594, - 361.57952880859375, - 222.86416625976562 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 361.5873107910156, - 221.726318359375 - ], - "bbox": [ - 361.5873107910156, - 215.9307403564453, - 364.2811279296875, - 223.27395629882812 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 365.1589050292969, - 219.85546875 - ], - "bbox": [ - 365.1589050292969, - 211.86546325683594, - 370.65826416015625, - 222.86416625976562 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "vU", - "origin": [ - 370.65826416015625, - 219.85546875 - ], - "bbox": [ - 370.65826416015625, - 210.93893432617188, - 382.1650695800781, - 222.2365264892578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 383.2440185546875, - 219.85546875 - ], - "bbox": [ - 383.2440185546875, - 212.18426513671875, - 387.0796203613281, - 229.39964294433594 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 387.0423889160156, - 222.6900634765625 - ], - "bbox": [ - 387.0423889160156, - 216.8944854736328, - 391.6918029785156, - 224.23770141601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52911376953125, - 210.93869018554688, - 391.6918029785156, - 232.23423767089844 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8643798828125, - 219.85546875 - ], - "bbox": [ - 549.8643798828125, - 212.18426513671875, - 553.699951171875, - 229.39964294433594 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "4", - "origin": [ - 553.7199096679688, - 219.85546875 - ], - "bbox": [ - 553.7199096679688, - 212.07467651367188, - 558.7012329101562, - 222.2365264892578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7091674804688, - 219.85546875 - ], - "bbox": [ - 558.7091674804688, - 212.18426513671875, - 562.5447387695312, - 229.39964294433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8643798828125, - 212.07467651367188, - 562.5447387695312, - 229.39964294433594 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 311.5277404785156, - 230.29026794433594, - 562.5026245117188, - 252.6238555908203 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "where", - "origin": [ - 311.52911376953125, - 238.2802734375 - ], - "bbox": [ - 311.52911376953125, - 230.49948120117188, - 336.72454833984375, - 240.6613311767578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " n", - "origin": [ - 336.72454833984375, - 238.2802734375 - ], - "bbox": [ - 336.72454833984375, - 230.29026794433594, - 344.6866455078125, - 241.28897094726562 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 344.69281005859375, - 239.9248046875 - ], - "bbox": [ - 344.69281005859375, - 234.6398468017578, - 348.8172302246094, - 241.6840057373047 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " and", - "origin": [ - 348.8172302246094, - 239.9248046875 - ], - "bbox": [ - 348.8172302246094, - 230.49990844726562, - 367.7593994140625, - 242.3058624267578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " n", - "origin": [ - 367.7593994140625, - 238.28070068359375 - ], - "bbox": [ - 367.7593994140625, - 230.2906951904297, - 375.6955871582031, - 241.28939819335938 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 375.70379638671875, - 239.9248046875 - ], - "bbox": [ - 375.70379638671875, - 234.6398468017578, - 379.439697265625, - 241.6840057373047 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " are the pressure loss coefficients and given", - "origin": [ - 379.439697265625, - 239.9248046875 - ], - "bbox": [ - 379.439697265625, - 230.49990844726562, - 562.5026245117188, - 242.3058624267578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52911376953125, - 230.29026794433594, - 562.5026245117188, - 242.3058624267578 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in", - "origin": [ - 311.5277404785156, - 250.2427978515625 - ], - "bbox": [ - 311.5277404785156, - 242.46200561523438, - 319.7170104980469, - 252.6238555908203 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 319.7170104980469, - 250.2427978515625 - ], - "bbox": [ - 319.7170104980469, - 242.46200561523438, - 333.39764404296875, - 252.6238555908203 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ".", - "origin": [ - 333.4683532714844, - 250.2427978515625 - ], - "bbox": [ - 333.4683532714844, - 242.46200561523438, - 336.15826416015625, - 252.6238555908203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 242.46200561523438, - 336.15826416015625, - 252.6238555908203 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 311.5287170410156, - 266.69244384765625, - 407.2882080078125, - 276.655029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2.5. Interphase friction", - "origin": [ - 311.5287170410156, - 274.1669921875 - ], - "bbox": [ - 311.5287170410156, - 266.69244384765625, - 407.2882080078125, - 276.655029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 266.69244384765625, - 407.2882080078125, - 276.655029296875 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 311.5287170410156, - 290.25360107421875, - 562.5623168945312, - 336.3017578125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The source terms to account for the interphase friction", - "origin": [ - 323.4908142089844, - 298.0343933105469 - ], - "bbox": [ - 323.4908142089844, - 290.25360107421875, - 562.5623168945312, - 300.41546630859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.4908142089844, - 290.25360107421875, - 562.5623168945312, - 300.41546630859375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "between the gas-phase and liquid-phase are also included", - "origin": [ - 311.5287170410156, - 309.9964904785156 - ], - "bbox": [ - 311.5287170410156, - 302.2156982421875, - 562.4774169921875, - 312.3775634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 302.2156982421875, - 562.4774169921875, - 312.3775634765625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in the momentum equations for both phases, which have", - "origin": [ - 311.5287170410156, - 321.9585876464844 - ], - "bbox": [ - 311.5287170410156, - 314.17779541015625, - 562.535400390625, - 324.33966064453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 314.17779541015625, - 562.535400390625, - 324.33966064453125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the following forms", - "origin": [ - 311.5287170410156, - 333.9206848144531 - ], - "bbox": [ - 311.5287170410156, - 326.139892578125, - 396.1859130859375, - 336.3017578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 396.1859130859375, - 333.9206848144531 - ], - "bbox": [ - 396.1859130859375, - 326.139892578125, - 409.9333190917969, - 336.3017578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ":", - "origin": [ - 409.947265625, - 333.9206848144531 - ], - "bbox": [ - 409.947265625, - 326.139892578125, - 412.6371765136719, - 336.3017578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 326.139892578125, - 412.6371765136719, - 336.3017578125 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 311.52874755859375, - 348.1343078613281, - 562.5443115234375, - 368.0704345703125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "W", - "origin": [ - 311.52874755859375, - 357.05084228515625 - ], - "bbox": [ - 311.52874755859375, - 348.1343078613281, - 318.7914733886719, - 359.4319152832031 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 318.7914733886719, - 357.05084228515625 - ], - "bbox": [ - 318.7914733886719, - 351.2552795410156, - 323.83306884765625, - 360.07391357421875 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 323.8298034667969, - 358.5262756347656 - ], - "bbox": [ - 323.8298034667969, - 353.4689025878906, - 327.06756591796875, - 360.07391357421875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼ �", - "origin": [ - 327.06756591796875, - 358.5262756347656 - ], - "bbox": [ - 327.06756591796875, - 349.3810729980469, - 348.5093078613281, - 368.0704345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "W", - "origin": [ - 348.54815673828125, - 357.0522766113281 - ], - "bbox": [ - 348.54815673828125, - 348.1357421875, - 355.8108825683594, - 359.433349609375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 355.8108825683594, - 357.0522766113281 - ], - "bbox": [ - 355.8108825683594, - 351.2567138671875, - 360.85357666015625, - 360.07391357421875 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 360.8503112792969, - 358.5262756347656 - ], - "bbox": [ - 360.8503112792969, - 353.4689025878906, - 362.59869384765625, - 360.07391357421875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 362.59869384765625, - 358.5262756347656 - ], - "bbox": [ - 362.59869384765625, - 349.3810729980469, - 373.56719970703125, - 368.0704345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " C", - "origin": [ - 373.56719970703125, - 357.0522766113281 - ], - "bbox": [ - 373.56719970703125, - 348.1357421875, - 382.9629211425781, - 359.433349609375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 383.4140930175781, - 358.5262756347656 - ], - "bbox": [ - 383.4140930175781, - 353.4689025878906, - 385.5704345703125, - 360.07391357421875 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 386.0787658691406, - 358.5262756347656 - ], - "bbox": [ - 386.0787658691406, - 352.730712890625, - 388.97332763671875, - 360.07391357421875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 389.5368957519531, - 357.0522766113281 - ], - "bbox": [ - 389.5368957519531, - 349.3810729980469, - 393.37249755859375, - 366.596435546875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 393.33563232421875, - 357.0522766113281 - ], - "bbox": [ - 393.33563232421875, - 348.1357421875, - 398.3169250488281, - 359.433349609375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 398.3243103027344, - 358.5262756347656 - ], - "bbox": [ - 398.3243103027344, - 353.4689025878906, - 400.07269287109375, - 360.07391357421875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 400.07269287109375, - 358.5262756347656 - ], - "bbox": [ - 400.07269287109375, - 349.3810729980469, - 410.4742126464844, - 368.0704345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " u", - "origin": [ - 410.4742126464844, - 357.0522766113281 - ], - "bbox": [ - 410.4742126464844, - 348.1357421875, - 417.7050476074219, - 359.433349609375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 417.7132873535156, - 358.5262756347656 - ], - "bbox": [ - 417.7132873535156, - 353.4689025878906, - 420.9510498046875, - 360.07391357421875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 421.4549865722656, - 357.0522766113281 - ], - "bbox": [ - 421.4549865722656, - 349.3810729980469, - 425.29058837890625, - 366.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52874755859375, - 348.1343078613281, - 425.29058837890625, - 368.0704345703125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8639526367188, - 357.0522766113281 - ], - "bbox": [ - 549.8639526367188, - 349.3810729980469, - 553.6995239257812, - 366.596435546875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "5", - "origin": [ - 553.719482421875, - 357.0522766113281 - ], - "bbox": [ - 553.719482421875, - 349.271484375, - 558.7008056640625, - 359.433349609375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.708740234375, - 357.0522766113281 - ], - "bbox": [ - 558.708740234375, - 349.3810729980469, - 562.5443115234375, - 366.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8639526367188, - 349.271484375, - 562.5443115234375, - 366.596435546875 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 311.5286865234375, - 366.05047607421875, - 562.543701171875, - 385.9854431152344 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "W", - "origin": [ - 311.5286865234375, - 374.9670104980469 - ], - "bbox": [ - 311.5286865234375, - 366.05047607421875, - 318.7914123535156, - 377.34808349609375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 318.7914123535156, - 374.9670104980469 - ], - "bbox": [ - 318.7914123535156, - 369.17144775390625, - 323.63232421875, - 377.9889221191406 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 324.0001220703125, - 376.4412841796875 - ], - "bbox": [ - 324.0001220703125, - 371.3839111328125, - 327.2378845214844, - 377.9889221191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼ �", - "origin": [ - 327.2378845214844, - 376.4412841796875 - ], - "bbox": [ - 327.2378845214844, - 367.2959899902344, - 348.62261962890625, - 385.9854431152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "W", - "origin": [ - 348.6614990234375, - 374.9671936035156 - ], - "bbox": [ - 348.6614990234375, - 366.0506591796875, - 355.9242248535156, - 377.3482666015625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 355.9242248535156, - 374.9671936035156 - ], - "bbox": [ - 355.9242248535156, - 369.171630859375, - 360.76611328125, - 377.9889221191406 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 361.1339111328125, - 376.4412841796875 - ], - "bbox": [ - 361.1339111328125, - 371.3839111328125, - 362.8822937011719, - 377.9889221191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 362.8822937011719, - 376.4412841796875 - ], - "bbox": [ - 362.8822937011719, - 367.2959899902344, - 373.7939147949219, - 385.9854431152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " C", - "origin": [ - 373.7939147949219, - 374.9671936035156 - ], - "bbox": [ - 373.7939147949219, - 366.0506591796875, - 383.2464294433594, - 377.3482666015625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 383.64080810546875, - 376.4412841796875 - ], - "bbox": [ - 383.64080810546875, - 371.3839111328125, - 385.7971496582031, - 377.9889221191406 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 386.36181640625, - 376.4412841796875 - ], - "bbox": [ - 386.36181640625, - 370.6457214355469, - 389.0556335449219, - 377.9889221191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 389.87701416015625, - 374.9671936035156 - ], - "bbox": [ - 389.87701416015625, - 367.2959899902344, - 393.7126159667969, - 384.5113525390625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 393.7325439453125, - 374.9671936035156 - ], - "bbox": [ - 393.7325439453125, - 366.0506591796875, - 398.0862121582031, - 377.3482666015625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 398.0975036621094, - 376.4412841796875 - ], - "bbox": [ - 398.0975036621094, - 371.3839111328125, - 399.84588623046875, - 377.9889221191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 399.84588623046875, - 376.4412841796875 - ], - "bbox": [ - 399.84588623046875, - 367.2959899902344, - 410.24749755859375, - 385.9854431152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " v", - "origin": [ - 410.24749755859375, - 374.9671936035156 - ], - "bbox": [ - 410.24749755859375, - 366.0506591796875, - 416.8507080078125, - 377.3482666015625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 416.8629150390625, - 376.4412841796875 - ], - "bbox": [ - 416.8629150390625, - 371.3839111328125, - 420.1006774902344, - 377.9889221191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 420.6046142578125, - 374.9671936035156 - ], - "bbox": [ - 420.6046142578125, - 367.2959899902344, - 424.4402160644531, - 384.5113525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5286865234375, - 366.05047607421875, - 424.4402160644531, - 385.9854431152344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8643798828125, - 374.9671936035156 - ], - "bbox": [ - 549.8643798828125, - 367.2959899902344, - 553.699951171875, - 384.5113525390625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "6", - "origin": [ - 553.7188720703125, - 374.9671936035156 - ], - "bbox": [ - 553.7188720703125, - 367.1864013671875, - 558.7001953125, - 377.3482666015625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7081298828125, - 374.9671936035156 - ], - "bbox": [ - 558.7081298828125, - 367.2959899902344, - 562.543701171875, - 384.5113525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8643798828125, - 367.1864013671875, - 562.543701171875, - 384.5113525390625 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 311.528076171875, - 391.28094482421875, - 336.7235107421875, - 401.44281005859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "where", - "origin": [ - 311.528076171875, - 399.0617370605469 - ], - "bbox": [ - 311.528076171875, - 391.28094482421875, - 336.7235107421875, - 401.44281005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.528076171875, - 391.28094482421875, - 336.7235107421875, - 401.44281005859375 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 311.528076171875, - 407.21160888671875, - 562.5437622070312, - 432.8137512207031 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "C", - "origin": [ - 311.528076171875, - 421.7386169433594 - ], - "bbox": [ - 311.528076171875, - 412.82208251953125, - 318.1631774902344, - 424.11968994140625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 318.5574035644531, - 423.26959228515625 - ], - "bbox": [ - 318.5574035644531, - 418.21221923828125, - 320.7137451171875, - 424.8172302246094 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 321.2784118652344, - 423.26959228515625 - ], - "bbox": [ - 321.2784118652344, - 417.4740295410156, - 324.1729736328125, - 424.8172302246094 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 324.1729736328125, - 423.26959228515625 - ], - "bbox": [ - 324.1729736328125, - 414.0675964355469, - 335.12939453125, - 432.8137512207031 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 335.12939453125, - 421.7388000488281 - ], - "bbox": [ - 335.12939453125, - 407.21160888671875, - 337.88970947265625, - 424.119873046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 337.88970947265625, - 414.9924011230469 - ], - "bbox": [ - 337.88970947265625, - 407.21160888671875, - 342.8710021972656, - 417.37347412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.528076171875, - 407.21160888671875, - 342.8710021972656, - 432.8137512207031 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 337.88970947265625, - 428.59832763671875 - ], - "bbox": [ - 337.88970947265625, - 420.8175354003906, - 342.8710021972656, - 430.9794006347656 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " ", - "origin": [ - 342.8710021972656, - 428.59832763671875 - ], - "bbox": [ - 342.8710021972656, - 413.7480773925781, - 344.5227966308594, - 431.6070251464844 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 344.5227966308594, - 421.7380676269531 - ], - "bbox": [ - 344.5227966308594, - 413.7480773925781, - 350.02215576171875, - 424.74676513671875 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 350.07861328125, - 424.06329345703125 - ], - "bbox": [ - 350.07861328125, - 419.00592041015625, - 353.3163757324219, - 425.6109313964844 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 353.8204040527344, - 421.7388000488281 - ], - "bbox": [ - 353.8204040527344, - 412.822265625, - 358.0744323730469, - 424.119873046875 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 358.0722961425781, - 423.26959228515625 - ], - "bbox": [ - 358.0722961425781, - 418.21221923828125, - 361.6467590332031, - 424.8172302246094 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "A", - "origin": [ - 362.1542053222656, - 421.7388000488281 - ], - "bbox": [ - 362.1542053222656, - 412.822265625, - 368.271240234375, - 424.119873046875 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 368.277099609375, - 423.26959228515625 - ], - "bbox": [ - 368.277099609375, - 418.21221923828125, - 371.8515625, - 424.8172302246094 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "j", - "origin": [ - 372.35888671875, - 421.7388000488281 - ], - "bbox": [ - 372.35888671875, - 414.0675964355469, - 375.0487976074219, - 431.282958984375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 375.0796813964844, - 421.7388000488281 - ], - "bbox": [ - 375.0796813964844, - 412.822265625, - 380.06097412109375, - 424.119873046875 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 380.0692138671875, - 423.26959228515625 - ], - "bbox": [ - 380.0692138671875, - 418.21221923828125, - 383.3069763183594, - 424.8172302246094 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 383.3069763183594, - 423.26959228515625 - ], - "bbox": [ - 383.3069763183594, - 414.0675964355469, - 393.693115234375, - 432.8137512207031 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " u", - "origin": [ - 393.693115234375, - 421.7388000488281 - ], - "bbox": [ - 393.693115234375, - 412.822265625, - 400.9239501953125, - 424.119873046875 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 400.93218994140625, - 423.26959228515625 - ], - "bbox": [ - 400.93218994140625, - 418.21221923828125, - 402.6805725097656, - 424.8172302246094 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "j", - "origin": [ - 403.1431884765625, - 421.7388000488281 - ], - "bbox": [ - 403.1431884765625, - 414.0675964355469, - 405.8330993652344, - 431.282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.88970947265625, - 412.822265625, - 405.8330993652344, - 432.8137512207031 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8634033203125, - 421.7388000488281 - ], - "bbox": [ - 549.8634033203125, - 414.0675964355469, - 553.698974609375, - 431.282958984375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "7", - "origin": [ - 553.7189331054688, - 421.7388000488281 - ], - "bbox": [ - 553.7189331054688, - 413.9580078125, - 558.7002563476562, - 424.119873046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7081909179688, - 421.7388000488281 - ], - "bbox": [ - 558.7081909179688, - 414.0675964355469, - 562.5437622070312, - 431.282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8634033203125, - 413.9580078125, - 562.5437622070312, - 431.282958984375 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 311.52813720703125, - 432.723388671875, - 562.5435180664062, - 458.3255615234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "C", - "origin": [ - 311.52813720703125, - 447.30682373046875 - ], - "bbox": [ - 311.52813720703125, - 438.3902893066406, - 318.1632385253906, - 449.6878967285156 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 318.5574035644531, - 448.7814025878906 - ], - "bbox": [ - 318.5574035644531, - 443.7240295410156, - 320.7137451171875, - 450.32904052734375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 321.2784118652344, - 448.7814025878906 - ], - "bbox": [ - 321.2784118652344, - 442.98583984375, - 323.97222900390625, - 450.32904052734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 323.97222900390625, - 448.7814025878906 - ], - "bbox": [ - 323.97222900390625, - 439.6361999511719, - 335.2427978515625, - 458.3255615234375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 335.2427978515625, - 447.3074035644531 - ], - "bbox": [ - 335.2427978515625, - 432.723388671875, - 338.00311279296875, - 449.6884765625 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 338.00311279296875, - 440.5041809082031 - ], - "bbox": [ - 338.00311279296875, - 432.723388671875, - 342.9844055175781, - 442.88525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52813720703125, - 432.723388671875, - 342.9844055175781, - 458.3255615234375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 338.00311279296875, - 454.110107421875 - ], - "bbox": [ - 338.00311279296875, - 446.3293151855469, - 342.9844055175781, - 456.4911804199219 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " ", - "origin": [ - 342.9844055175781, - 454.110107421875 - ], - "bbox": [ - 342.9844055175781, - 439.316650390625, - 344.6929931640625, - 457.1188049316406 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 344.6929931640625, - 447.306640625 - ], - "bbox": [ - 344.6929931640625, - 439.316650390625, - 350.1923522949219, - 450.3153381347656 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 350.1919860839844, - 449.5751037597656 - ], - "bbox": [ - 350.1919860839844, - 444.5177307128906, - 353.42974853515625, - 451.12274169921875 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 353.9338073730469, - 447.3074035644531 - ], - "bbox": [ - 353.9338073730469, - 438.390869140625, - 358.1878356933594, - 449.6884765625 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 358.1856994628906, - 448.7814025878906 - ], - "bbox": [ - 358.1856994628906, - 443.7240295410156, - 361.7601623535156, - 450.32904052734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "A", - "origin": [ - 362.2676086425781, - 447.3074035644531 - ], - "bbox": [ - 362.2676086425781, - 438.390869140625, - 368.3846435546875, - 449.6884765625 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 368.3904113769531, - 448.7814025878906 - ], - "bbox": [ - 368.3904113769531, - 443.7240295410156, - 371.9648742675781, - 450.32904052734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "j", - "origin": [ - 372.472412109375, - 447.3074035644531 - ], - "bbox": [ - 372.472412109375, - 439.6361999511719, - 375.1623229980469, - 456.8515625 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 375.1932067871094, - 447.3074035644531 - ], - "bbox": [ - 375.1932067871094, - 438.390869140625, - 379.546875, - 449.6884765625 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 379.5589904785156, - 448.7814025878906 - ], - "bbox": [ - 379.5589904785156, - 443.7240295410156, - 382.7967529296875, - 450.32904052734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 382.7967529296875, - 448.7814025878906 - ], - "bbox": [ - 382.7967529296875, - 439.6361999511719, - 393.1828918457031, - 458.3255615234375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " v", - "origin": [ - 393.1828918457031, - 447.3074035644531 - ], - "bbox": [ - 393.1828918457031, - 438.390869140625, - 399.7861022949219, - 449.6884765625 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 399.7983093261719, - 448.7814025878906 - ], - "bbox": [ - 399.7983093261719, - 443.7240295410156, - 401.54669189453125, - 450.32904052734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "j", - "origin": [ - 402.0660095214844, - 447.3074035644531 - ], - "bbox": [ - 402.0660095214844, - 439.6361999511719, - 404.75592041015625, - 456.8515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.00311279296875, - 438.390869140625, - 404.75592041015625, - 458.3255615234375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8641357421875, - 447.3074035644531 - ], - "bbox": [ - 549.8641357421875, - 439.6361999511719, - 553.69970703125, - 456.8515625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "8", - "origin": [ - 553.7186889648438, - 447.3074035644531 - ], - "bbox": [ - 553.7186889648438, - 439.526611328125, - 558.7000122070312, - 449.6884765625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7079467773438, - 447.3074035644531 - ], - "bbox": [ - 558.7079467773438, - 439.6361999511719, - 562.5435180664062, - 456.8515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8641357421875, - 439.526611328125, - 562.5435180664062, - 456.8515625 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 311.52789306640625, - 458.19610595703125, - 562.5447387695312, - 484.0074462890625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "A", - "origin": [ - 311.52789306640625, - 472.93218994140625 - ], - "bbox": [ - 311.52789306640625, - 464.0156555175781, - 317.6449279785156, - 475.3132629394531 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 317.6502990722656, - 474.4632873535156 - ], - "bbox": [ - 317.6502990722656, - 469.4059143066406, - 321.2247619628906, - 476.01092529296875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 321.2247619628906, - 474.4632873535156 - ], - "bbox": [ - 321.2247619628906, - 465.2613830566406, - 332.181396484375, - 484.0074462890625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 332.181396484375, - 472.9325866699219 - ], - "bbox": [ - 332.181396484375, - 458.4053039550781, - 334.94171142578125, - 475.31365966796875 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 334.94171142578125, - 466.18609619140625 - ], - "bbox": [ - 334.94171142578125, - 458.4053039550781, - 339.9230041503906, - 468.5671691894531 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E51", - "color": 0, - "ascender": 0.75, - "descender": -0.23899999260902405, - "text": ":", - "origin": [ - 339.93096923828125, - 466.18609619140625 - ], - "bbox": [ - 339.93096923828125, - 458.63104248046875, - 342.6208801269531, - 468.5936279296875 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "5", - "origin": [ - 342.6517639160156, - 466.18609619140625 - ], - "bbox": [ - 342.6517639160156, - 458.4053039550781, - 347.633056640625, - 468.5671691894531 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 347.6410217285156, - 466.18609619140625 - ], - "bbox": [ - 347.6410217285156, - 458.19610595703125, - 353.140380859375, - 469.1947937011719 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 353.1400146484375, - 468.45379638671875 - ], - "bbox": [ - 353.1400146484375, - 463.39642333984375, - 354.8883972167969, - 470.0014343261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52789306640625, - 458.19610595703125, - 354.8883972167969, - 484.0074462890625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 339.5338134765625, - 479.7923889160156 - ], - "bbox": [ - 339.5338134765625, - 470.8758544921875, - 346.68695068359375, - 482.1734619140625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 346.7337951660156, - 481.2663879394531 - ], - "bbox": [ - 346.7337951660156, - 476.2090148925781, - 350.3082580566406, - 482.81402587890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 339.5338134765625, - 470.8758544921875, - 350.3082580566406, - 482.81402587890625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8643798828125, - 472.9325866699219 - ], - "bbox": [ - 549.8643798828125, - 465.2613830566406, - 553.699951171875, - 482.47674560546875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "9", - "origin": [ - 553.7199096679688, - 472.9325866699219 - ], - "bbox": [ - 553.7199096679688, - 465.15179443359375, - 558.7012329101562, - 475.31365966796875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7091674804688, - 472.9325866699219 - ], - "bbox": [ - 558.7091674804688, - 465.2613830566406, - 562.5447387695312, - 482.47674560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8643798828125, - 465.15179443359375, - 562.5447387695312, - 482.47674560546875 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 311.527099609375, - 488.5091247558594, - 562.5306396484375, - 510.6332702636719 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The friction factor,", - "origin": [ - 311.52911376953125, - 496.2899169921875 - ], - "bbox": [ - 311.52911376953125, - 488.5091247558594, - 394.9300537109375, - 498.6709899902344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " f", - "origin": [ - 394.9300537109375, - 496.2899169921875 - ], - "bbox": [ - 394.9300537109375, - 488.81536865234375, - 402.0403137207031, - 498.7779541015625 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 402.0660095214844, - 497.9341735839844 - ], - "bbox": [ - 402.0660095214844, - 492.74755859375, - 406.1904296875, - 499.5213623046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ", given by Clift et al.", - "origin": [ - 406.14788818359375, - 496.29010009765625 - ], - "bbox": [ - 406.14788818359375, - 488.5093078613281, - 498.0887756347656, - 498.6711730957031 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [10]", - "origin": [ - 498.0887756347656, - 496.29010009765625 - ], - "bbox": [ - 498.0887756347656, - 488.5093078613281, - 517.18701171875, - 498.6711730957031 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " is used in", - "origin": [ - 517.18701171875, - 496.29010009765625 - ], - "bbox": [ - 517.18701171875, - 488.5093078613281, - 562.5306396484375, - 498.6711730957031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52911376953125, - 488.5091247558594, - 562.5306396484375, - 499.5213623046875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "this study.", - "origin": [ - 311.527099609375, - 508.252197265625 - ], - "bbox": [ - 311.527099609375, - 500.4714050292969, - 356.0589294433594, - 510.6332702636719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.527099609375, - 500.4714050292969, - 356.0589294433594, - 510.6332702636719 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 42.51969909667969, - 538.36767578125, - 155.4071044921875, - 557.7791748046875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Table 1", - "origin": [ - 42.51969909667969, - 544.5924072265625 - ], - "bbox": [ - 42.51969909667969, - 538.36767578125, - 68.44436645507812, - 546.497314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 538.36767578125, - 68.44436645507812, - 546.497314453125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Expressions for", - "origin": [ - 42.51969909667969, - 554.5703125 - ], - "bbox": [ - 42.51969909667969, - 548.3455810546875, - 95.61318969726562, - 556.4752197265625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " /", - "origin": [ - 95.61318969726562, - 554.5703125 - ], - "bbox": [ - 95.61318969726562, - 548.17822265625, - 103.55708312988281, - 556.977294921875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ",", - "origin": [ - 103.5212173461914, - 554.5703125 - ], - "bbox": [ - 103.5212173461914, - 548.3455810546875, - 105.67317199707031, - 556.4752197265625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " C", - "origin": [ - 105.67317199707031, - 554.5703125 - ], - "bbox": [ - 105.67317199707031, - 548.17822265625, - 113.64815521240234, - 556.977294921875 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 113.66929626464844, - 555.874267578125 - ], - "bbox": [ - 113.66929626464844, - 551.6134643554688, - 117.6502456665039, - 557.4786987304688 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " and", - "origin": [ - 117.6502456665039, - 555.874267578125 - ], - "bbox": [ - 117.6502456665039, - 548.3455810546875, - 133.0865020751953, - 557.7791748046875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " S", - "origin": [ - 133.0865020751953, - 554.5703125 - ], - "bbox": [ - 133.0865020751953, - 548.590576171875, - 140.48045349121094, - 556.560791015625 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 140.48500061035156, - 555.874267578125 - ], - "bbox": [ - 140.48500061035156, - 551.6134643554688, - 144.4659423828125, - 557.4786987304688 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 144.4659423828125, - 555.874267578125 - ], - "bbox": [ - 144.4659423828125, - 548.3455810546875, - 155.4071044921875, - 557.7791748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 548.17822265625, - 155.4071044921875, - 557.7791748046875 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 42.51958465576172, - 562.1244506835938, - 269.19036865234375, - 571.4818115234375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Equation", - "origin": [ - 42.51958465576172, - 568.5165405273438 - ], - "bbox": [ - 42.51958465576172, - 562.2918090820312, - 74.21707153320312, - 570.4214477539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51958465576172, - 562.2918090820312, - 74.21707153320312, - 570.4214477539062 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 191.16860961914062, - 568.5165405273438 - ], - "bbox": [ - 191.16860961914062, - 562.1244506835938, - 196.4767608642578, - 570.9235229492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.16860961914062, - 562.1244506835938, - 196.4767608642578, - 570.9235229492188 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "C", - "origin": [ - 221.44261169433594, - 568.5165405273438 - ], - "bbox": [ - 221.44261169433594, - 562.1244506835938, - 226.75076293945312, - 570.9235229492188 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 226.71490478515625, - 569.8773803710938 - ], - "bbox": [ - 226.71490478515625, - 565.6165771484375, - 230.6958465576172, - 571.4818115234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44261169433594, - 562.1244506835938, - 230.6958465576172, - 571.4818115234375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "S", - "origin": [ - 260.3905029296875, - 568.5167846679688 - ], - "bbox": [ - 260.3905029296875, - 562.5370483398438, - 265.2044982910156, - 570.5072631835938 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 265.20941162109375, - 569.8773803710938 - ], - "bbox": [ - 265.20941162109375, - 565.6165771484375, - 269.19036865234375, - 571.4818115234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.3905029296875, - 562.5370483398438, - 269.19036865234375, - 571.4818115234375 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 42.51969909667969, - 575.3865966796875, - 272.29339599609375, - 594.4337158203125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Gas-phase continuity equation", - "origin": [ - 42.51969909667969, - 582.5198974609375 - ], - "bbox": [ - 42.51969909667969, - 576.295166015625, - 147.84671020507812, - 584.4248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 576.295166015625, - 147.84671020507812, - 584.4248046875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 191.16395568847656, - 582.5198974609375 - ], - "bbox": [ - 191.16395568847656, - 576.295166015625, - 195.14906311035156, - 584.4248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.16395568847656, - 576.295166015625, - 195.14906311035156, - 584.4248046875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 260.3914794921875, - 582.5198974609375 - ], - "bbox": [ - 260.3914794921875, - 576.3828735351562, - 266.5285339355469, - 590.1553344726562 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " _", - "origin": [ - 266.5285339355469, - 582.5198974609375 - ], - "bbox": [ - 266.5285339355469, - 576.485595703125, - 270.48016357421875, - 584.512451171875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 266.57080078125, - 582.5198974609375 - ], - "bbox": [ - 266.57080078125, - 575.3865966796875, - 272.29339599609375, - 584.4248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.3914794921875, - 575.3865966796875, - 272.29339599609375, - 590.1553344726562 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Liquid-phase continuity equation", - "origin": [ - 42.51971435546875, - 592.441162109375 - ], - "bbox": [ - 42.51971435546875, - 586.2164306640625, - 157.03077697753906, - 594.3460693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51971435546875, - 586.2164306640625, - 157.03077697753906, - 594.3460693359375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 191.16395568847656, - 592.441162109375 - ], - "bbox": [ - 191.16395568847656, - 586.2164306640625, - 195.14906311035156, - 594.3460693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.16395568847656, - 586.2164306640625, - 195.14906311035156, - 594.3460693359375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "_", - "origin": [ - 262.2055358886719, - 592.441162109375 - ], - "bbox": [ - 262.2055358886719, - 586.4635009765625, - 264.35748291015625, - 594.4337158203125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 260.3915100097656, - 592.441162109375 - ], - "bbox": [ - 260.3915100097656, - 585.307861328125, - 266.1141052246094, - 594.3460693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.3915100097656, - 585.307861328125, - 266.1141052246094, - 594.4337158203125 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 42.51971435546875, - 594.305908203125, - 291.7770080566406, - 614.563720703125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Gas-phase", - "origin": [ - 42.51971435546875, - 606.387451171875 - ], - "bbox": [ - 42.51971435546875, - 600.1627197265625, - 78.11463165283203, - 608.2923583984375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 78.11463165283203, - 606.387451171875 - ], - "bbox": [ - 78.11463165283203, - 600.40771484375, - 85.07341003417969, - 608.3779296875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 85.0957260131836, - 606.387451171875 - ], - "bbox": [ - 85.0957260131836, - 600.1627197265625, - 159.1867218017578, - 608.2923583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51971435546875, - 600.1627197265625, - 159.1867218017578, - 608.3779296875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 191.16873168945312, - 605.9339599609375 - ], - "bbox": [ - 191.16873168945312, - 599.9542236328125, - 195.15383911132812, - 607.9244384765625 - ] - }, - { - "size": 5.635257720947266, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 195.13690185546875, - 603.77978515625 - ], - "bbox": [ - 195.13690185546875, - 599.6305541992188, - 198.12559509277344, - 605.0494995117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.16873168945312, - 599.6305541992188, - 198.12559509277344, - 607.9244384765625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 221.44239807128906, - 605.93408203125 - ], - "bbox": [ - 221.44239807128906, - 599.5419921875, - 225.84194946289062, - 608.341064453125 - ] - }, - { - "size": 5.635257720947266, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 225.80780029296875, - 603.77978515625 - ], - "bbox": [ - 225.80780029296875, - 599.6305541992188, - 231.4086151123047, - 605.0494995117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44239807128906, - 599.5419921875, - 231.4086151123047, - 608.341064453125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 262.2047119140625, - 600.945068359375 - ], - "bbox": [ - 262.2047119140625, - 594.305908203125, - 266.1898193359375, - 603.6788330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.2047119140625, - 594.305908203125, - 266.1898193359375, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 260.39068603515625, - 611.8299560546875 - ], - "bbox": [ - 260.39068603515625, - 605.1907958984375, - 264.37579345703125, - 614.563720703125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 264.4156494140625, - 611.8299560546875 - ], - "bbox": [ - 264.4156494140625, - 604.6966552734375, - 267.97833251953125, - 613.73486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.39068603515625, - 604.6966552734375, - 267.97833251953125, - 614.563720703125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 275.0741882324219, - 606.33056640625 - ], - "bbox": [ - 275.0741882324219, - 599.9384765625, - 279.4737243652344, - 608.737548828125 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 279.4393005371094, - 608.2017822265625 - ], - "bbox": [ - 279.4393005371094, - 604.15576171875, - 282.02960205078125, - 609.43994140625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 282.5574035644531, - 606.3308715820312 - ], - "bbox": [ - 282.5574035644531, - 599.9387817382812, - 286.9569396972656, - 608.7378540039062 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 286.92279052734375, - 608.2017822265625 - ], - "bbox": [ - 286.92279052734375, - 604.15576171875, - 291.7770080566406, - 609.43994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.0741882324219, - 599.9384765625, - 291.7770080566406, - 609.43994140625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 293.61248779296875, - 593.811767578125, - 304.1398010253906, - 614.56396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 293.61248779296875, - 600.945068359375 - ], - "bbox": [ - 293.61248779296875, - 594.305908203125, - 297.59759521484375, - 603.6788330078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 297.5808410644531, - 600.945068359375 - ], - "bbox": [ - 297.5808410644531, - 593.811767578125, - 301.5659484863281, - 602.8499755859375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 301.54949951171875, - 602.1356811523438 - ], - "bbox": [ - 301.54949951171875, - 598.0896606445312, - 304.1398010253906, - 603.3738403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.61248779296875, - 593.811767578125, - 304.1398010253906, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 295.3699951171875, - 611.8302001953125 - ], - "bbox": [ - 295.3699951171875, - 605.1910400390625, - 299.3551025390625, - 614.56396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 299.3383483886719, - 611.8302001953125 - ], - "bbox": [ - 299.3383483886719, - 604.6968994140625, - 302.9010314941406, - 613.735107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.3699951171875, - 604.6968994140625, - 302.9010314941406, - 614.56396484375 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 269.29071044921875, - 588.968505859375, - 351.64471435546875, - 618.681396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 269.29071044921875, - 595.1055297851562 - ], - "bbox": [ - 269.29071044921875, - 588.968505859375, - 275.1009826660156, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.29071044921875, - 588.968505859375, - 275.1009826660156, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 304.61065673828125, - 595.1055297851562 - ], - "bbox": [ - 304.61065673828125, - 588.968505859375, - 310.4209289550781, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.61065673828125, - 588.968505859375, - 310.4209289550781, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 312.2070617675781, - 606.3307495117188 - ], - "bbox": [ - 312.2070617675781, - 600.1937255859375, - 318.3441162109375, - 613.9661865234375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " ", - "origin": [ - 318.3441162109375, - 606.3307495117188 - ], - "bbox": [ - 318.3441162109375, - 594.305908203125, - 321.9590148925781, - 609.0645141601562 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 321.9590148925781, - 600.945068359375 - ], - "bbox": [ - 321.9590148925781, - 594.305908203125, - 325.9441223144531, - 603.6788330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.2070617675781, - 594.305908203125, - 325.9441223144531, - 613.9661865234375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 320.0884094238281, - 611.8299560546875 - ], - "bbox": [ - 320.0884094238281, - 605.1907958984375, - 324.0735168457031, - 614.563720703125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 324.0567626953125, - 611.8299560546875 - ], - "bbox": [ - 324.0567626953125, - 604.6966552734375, - 327.37237548828125, - 613.73486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.0884094238281, - 604.6966552734375, - 327.37237548828125, - 614.563720703125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 334.88507080078125, - 606.33056640625 - ], - "bbox": [ - 334.88507080078125, - 599.9384765625, - 339.28460693359375, - 608.737548828125 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 339.3070068359375, - 608.2017822265625 - ], - "bbox": [ - 339.3070068359375, - 604.15576171875, - 341.8973083496094, - 609.43994140625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 342.368408203125, - 606.3308715820312 - ], - "bbox": [ - 342.368408203125, - 599.9387817382812, - 346.7679443359375, - 608.7378540039062 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 346.7904968261719, - 608.2017822265625 - ], - "bbox": [ - 346.7904968261719, - 604.15576171875, - 351.64471435546875, - 609.43994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.88507080078125, - 599.9384765625, - 351.64471435546875, - 609.43994140625 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 353.4234924316406, - 593.811767578125, - 363.497314453125, - 614.56396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 353.4234924316406, - 600.945068359375 - ], - "bbox": [ - 353.4234924316406, - 594.305908203125, - 357.4085998535156, - 603.6788330078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 357.391845703125, - 600.945068359375 - ], - "bbox": [ - 357.391845703125, - 593.811767578125, - 360.87481689453125, - 602.8499755859375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 360.9070129394531, - 602.1356811523438 - ], - "bbox": [ - 360.9070129394531, - 598.0896606445312, - 363.497314453125, - 603.3738403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.4234924316406, - 593.811767578125, - 363.497314453125, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 354.9541931152344, - 611.8302001953125 - ], - "bbox": [ - 354.9541931152344, - 605.1910400390625, - 358.9393005371094, - 614.56396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 358.92254638671875, - 611.8302001953125 - ], - "bbox": [ - 358.92254638671875, - 604.6968994140625, - 362.4852294921875, - 613.735107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.9541931152344, - 604.6968994140625, - 362.4852294921875, - 614.56396484375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 329.10205078125, - 588.968505859375, - 383.4306945800781, - 618.681396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 329.10205078125, - 595.1055297851562 - ], - "bbox": [ - 329.10205078125, - 588.968505859375, - 334.9123229980469, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.10205078125, - 588.968505859375, - 334.9123229980469, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 363.9684753417969, - 595.1055297851562 - ], - "bbox": [ - 363.9684753417969, - 588.968505859375, - 369.77874755859375, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.9684753417969, - 588.968505859375, - 369.77874755859375, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 371.50830078125, - 606.3307495117188 - ], - "bbox": [ - 371.50830078125, - 600.1937255859375, - 377.6453552246094, - 613.9661865234375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 377.6453552246094, - 606.3307495117188 - ], - "bbox": [ - 377.6453552246094, - 594.7203369140625, - 379.4455871582031, - 608.2356567382812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 379.4455871582031, - 600.945068359375 - ], - "bbox": [ - 379.4455871582031, - 594.7203369140625, - 383.4306945800781, - 602.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.50830078125, - 594.7203369140625, - 383.4306945800781, - 613.9661865234375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "3", - "origin": [ - 379.4455871582031, - 611.8299560546875 - ], - "bbox": [ - 379.4455871582031, - 605.605224609375, - 383.4306945800781, - 613.73486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 379.4455871582031, - 605.605224609375, - 383.4306945800781, - 613.73486328125 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 386.07867431640625, - 594.305908203125, - 415.7643127441406, - 614.563720703125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 387.8360900878906, - 600.945068359375 - ], - "bbox": [ - 387.8360900878906, - 594.305908203125, - 391.8211975097656, - 603.6788330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 387.8360900878906, - 594.305908203125, - 391.8211975097656, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 386.07867431640625, - 611.8299560546875 - ], - "bbox": [ - 386.07867431640625, - 605.1907958984375, - 390.06378173828125, - 614.563720703125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 390.0470275878906, - 611.8299560546875 - ], - "bbox": [ - 390.0470275878906, - 604.6966552734375, - 393.6097106933594, - 613.73486328125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " ", - "origin": [ - 393.6097106933594, - 611.8299560546875 - ], - "bbox": [ - 393.6097106933594, - 599.9384765625, - 399.0613098144531, - 614.2369384765625 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 399.0613098144531, - 606.33056640625 - ], - "bbox": [ - 399.0613098144531, - 599.9384765625, - 403.4608459472656, - 608.737548828125 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 403.42669677734375, - 608.2017822265625 - ], - "bbox": [ - 403.42669677734375, - 604.15576171875, - 406.0169982910156, - 609.43994140625 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 406.5447998046875, - 606.3308715820312 - ], - "bbox": [ - 406.5447998046875, - 599.9387817382812, - 410.9443359375, - 608.7378540039062 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 410.91009521484375, - 608.2017822265625 - ], - "bbox": [ - 410.91009521484375, - 604.15576171875, - 415.7643127441406, - 609.43994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.07867431640625, - 599.9384765625, - 415.7643127441406, - 614.563720703125 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 422.02191162109375, - 593.811767578125, - 452.7886047363281, - 619.4656372070312 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 422.02191162109375, - 600.945068359375 - ], - "bbox": [ - 422.02191162109375, - 594.305908203125, - 426.00701904296875, - 603.6788330078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 426.046875, - 600.945068359375 - ], - "bbox": [ - 426.046875, - 593.811767578125, - 430.031982421875, - 602.8499755859375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 430.0155944824219, - 602.1356811523438 - ], - "bbox": [ - 430.0155944824219, - 598.0896606445312, - 432.60589599609375, - 603.3738403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.02191162109375, - 593.811767578125, - 432.60589599609375, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 423.7793884277344, - 611.8302001953125 - ], - "bbox": [ - 423.7793884277344, - 605.1910400390625, - 427.7644958496094, - 614.56396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 427.74774169921875, - 611.8302001953125 - ], - "bbox": [ - 427.74774169921875, - 604.6968994140625, - 431.3104248046875, - 613.735107421875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 431.3104248046875, - 611.8302001953125 - ], - "bbox": [ - 431.3104248046875, - 600.1937255859375, - 434.83404541015625, - 619.4656372070312 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 434.83404541015625, - 606.3307495117188 - ], - "bbox": [ - 434.83404541015625, - 600.1937255859375, - 440.9710998535156, - 613.9661865234375 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " o", - "origin": [ - 440.9710998535156, - 606.3307495117188 - ], - "bbox": [ - 440.9710998535156, - 594.305908203125, - 446.7566223144531, - 609.0645141601562 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 446.7398681640625, - 600.945068359375 - ], - "bbox": [ - 446.7398681640625, - 593.811767578125, - 450.22283935546875, - 602.8499755859375 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 450.19830322265625, - 602.1356811523438 - ], - "bbox": [ - 450.19830322265625, - 598.0896606445312, - 452.7886047363281, - 603.3738403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.7793884277344, - 593.811767578125, - 452.7886047363281, - 619.4656372070312 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 444.1888122558594, - 611.8302001953125 - ], - "bbox": [ - 444.1888122558594, - 605.1910400390625, - 448.1739196777344, - 614.56396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 448.15716552734375, - 611.8302001953125 - ], - "bbox": [ - 448.15716552734375, - 604.6968994140625, - 451.4727783203125, - 613.735107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.1888122558594, - 604.6968994140625, - 451.4727783203125, - 614.56396484375 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 394.922607421875, - 588.968505859375, - 479.83111572265625, - 618.681396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 416.2388916015625, - 595.1055297851562 - ], - "bbox": [ - 416.2388916015625, - 588.968505859375, - 422.0491638183594, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 416.2388916015625, - 588.968505859375, - 422.0491638183594, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 453.2596740722656, - 595.1055297851562 - ], - "bbox": [ - 453.2596740722656, - 588.968505859375, - 459.0699462890625, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.2596740722656, - 588.968505859375, - 459.0699462890625, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 394.922607421875, - 595.1055297851562 - ], - "bbox": [ - 394.922607421875, - 588.968505859375, - 399.0671081542969, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 394.922607421875, - 588.968505859375, - 399.0671081542969, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 459.0994567871094, - 595.1055297851562 - ], - "bbox": [ - 459.0994567871094, - 588.968505859375, - 463.24395751953125, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.0994567871094, - 588.968505859375, - 463.24395751953125, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 464.9949951171875, - 606.3307495117188 - ], - "bbox": [ - 464.9949951171875, - 600.1937255859375, - 471.1320495605469, - 613.9661865234375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " b", - "origin": [ - 471.1320495605469, - 606.3307495117188 - ], - "bbox": [ - 471.1320495605469, - 599.9386596679688, - 477.274658203125, - 608.7377319335938 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 477.2408142089844, - 608.2017822265625 - ], - "bbox": [ - 477.2408142089844, - 604.15576171875, - 479.83111572265625, - 609.43994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 464.9949951171875, - 599.9386596679688, - 479.83111572265625, - 613.9661865234375 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 481.66290283203125, - 593.811767578125, - 554.0987548828125, - 619.4653930664062 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 481.66290283203125, - 600.945068359375 - ], - "bbox": [ - 481.66290283203125, - 594.305908203125, - 485.64801025390625, - 603.6788330078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "p", - "origin": [ - 485.6312561035156, - 600.945068359375 - ], - "bbox": [ - 485.6312561035156, - 593.811767578125, - 489.448974609375, - 602.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.66290283203125, - 593.811767578125, - 489.448974609375, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 481.8892517089844, - 611.8299560546875 - ], - "bbox": [ - 481.8892517089844, - 605.1907958984375, - 485.8743591308594, - 614.563720703125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 485.85760498046875, - 611.8299560546875 - ], - "bbox": [ - 485.85760498046875, - 604.6966552734375, - 489.4202880859375, - 613.73486328125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 489.4202880859375, - 611.8299560546875 - ], - "bbox": [ - 489.4202880859375, - 600.1935424804688, - 491.41363525390625, - 619.4653930664062 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 491.41363525390625, - 606.33056640625 - ], - "bbox": [ - 491.41363525390625, - 600.1935424804688, - 497.5506896972656, - 613.9660034179688 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " W", - "origin": [ - 497.5506896972656, - 606.33056640625 - ], - "bbox": [ - 497.5506896972656, - 599.197265625, - 505.1040344238281, - 608.2354736328125 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 505.1040344238281, - 606.33056640625 - ], - "bbox": [ - 505.1040344238281, - 601.6939086914062, - 509.1502380371094, - 608.7596435546875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 509.1590270996094, - 607.521484375 - ], - "bbox": [ - 509.1590270996094, - 603.4754638671875, - 511.74932861328125, - 608.7596435546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 511.74932861328125, - 607.521484375 - ], - "bbox": [ - 511.74932861328125, - 600.19384765625, - 520.1148071289062, - 615.1569213867188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " R", - "origin": [ - 520.1148071289062, - 606.3308715820312 - ], - "bbox": [ - 520.1148071289062, - 599.1975708007812, - 526.7515869140625, - 608.2357788085938 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 526.7904052734375, - 607.521484375 - ], - "bbox": [ - 526.7904052734375, - 602.8848266601562, - 529.1061401367188, - 608.7596435546875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 529.0579833984375, - 607.521484375 - ], - "bbox": [ - 529.0579833984375, - 603.4754638671875, - 531.6482543945312, - 608.7596435546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 531.6482543945312, - 607.521484375 - ], - "bbox": [ - 531.6482543945312, - 600.19384765625, - 540.0707397460938, - 615.1569213867188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " _", - "origin": [ - 540.0707397460938, - 606.3308715820312 - ], - "bbox": [ - 540.0707397460938, - 600.3532104492188, - 545.7798461914062, - 608.3234252929688 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "mu", - "origin": [ - 541.8138427734375, - 606.3308715820312 - ], - "bbox": [ - 541.8138427734375, - 599.1975708007812, - 551.5215454101562, - 608.2357788085938 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 551.5084838867188, - 607.521484375 - ], - "bbox": [ - 551.5084838867188, - 603.4754638671875, - 554.0987548828125, - 608.7596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.8892517089844, - 599.197265625, - 554.0987548828125, - 619.4653930664062 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 42.51969909667969, - 628.908935546875, - 231.4086151123047, - 637.9313354492188 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Gas-phase", - "origin": [ - 42.51969909667969, - 635.301025390625 - ], - "bbox": [ - 42.51969909667969, - 629.0762939453125, - 78.11461639404297, - 637.2059326171875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 78.11461639404297, - 635.301025390625 - ], - "bbox": [ - 78.11461639404297, - 629.3212890625, - 84.65894317626953, - 637.29150390625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 84.64220428466797, - 635.301025390625 - ], - "bbox": [ - 84.64220428466797, - 629.0762939453125, - 158.7332000732422, - 637.2059326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 629.0762939453125, - 158.7332000732422, - 637.29150390625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 191.168701171875, - 635.301025390625 - ], - "bbox": [ - 191.168701171875, - 629.3212890625, - 194.65167236328125, - 637.29150390625 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 194.62669372558594, - 636.66162109375 - ], - "bbox": [ - 194.62669372558594, - 632.5123901367188, - 197.61538696289062, - 637.9313354492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.168701171875, - 629.3212890625, - 197.61538696289062, - 637.9313354492188 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 221.44239807128906, - 635.301025390625 - ], - "bbox": [ - 221.44239807128906, - 628.908935546875, - 225.84194946289062, - 637.7080078125 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 225.80780029296875, - 636.66162109375 - ], - "bbox": [ - 225.80780029296875, - 632.5123901367188, - 231.4086151123047, - 637.9313354492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44239807128906, - 628.908935546875, - 231.4086151123047, - 637.9313354492188 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 260.39068603515625, - 623.2760009765625, - 291.7770080566406, - 643.5338745117188 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 262.2047119140625, - 629.9151611328125 - ], - "bbox": [ - 262.2047119140625, - 623.2760009765625, - 266.1898193359375, - 632.64892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.2047119140625, - 623.2760009765625, - 266.1898193359375, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 260.39068603515625, - 640.8001098632812 - ], - "bbox": [ - 260.39068603515625, - 634.1609497070312, - 264.37579345703125, - 643.5338745117188 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 264.4156494140625, - 640.8001098632812 - ], - "bbox": [ - 264.4156494140625, - 633.6668090820312, - 267.97833251953125, - 642.7050170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.39068603515625, - 633.6668090820312, - 267.97833251953125, - 643.5338745117188 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 275.0741882324219, - 635.3572387695312 - ], - "bbox": [ - 275.0741882324219, - 628.9651489257812, - 279.4737243652344, - 637.7642211914062 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 279.4393005371094, - 637.171875 - ], - "bbox": [ - 279.4393005371094, - 633.1258544921875, - 282.02960205078125, - 638.4100341796875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 282.5574035644531, - 635.357666015625 - ], - "bbox": [ - 282.5574035644531, - 628.965576171875, - 286.9569396972656, - 637.7646484375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 286.92279052734375, - 637.171875 - ], - "bbox": [ - 286.92279052734375, - 633.1258544921875, - 291.7770080566406, - 638.4100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.0741882324219, - 628.9651489257812, - 291.7770080566406, - 638.4100341796875 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 293.61248779296875, - 622.7818603515625, - 304.1398010253906, - 643.533935546875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 293.61248779296875, - 629.9151611328125 - ], - "bbox": [ - 293.61248779296875, - 623.2760009765625, - 297.59759521484375, - 632.64892578125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 297.5808410644531, - 629.9151611328125 - ], - "bbox": [ - 297.5808410644531, - 622.7818603515625, - 301.5659484863281, - 631.820068359375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 301.54949951171875, - 631.105712890625 - ], - "bbox": [ - 301.54949951171875, - 627.0596923828125, - 304.1398010253906, - 632.3438720703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.61248779296875, - 622.7818603515625, - 304.1398010253906, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 295.256591796875, - 640.8001708984375 - ], - "bbox": [ - 295.256591796875, - 634.1610107421875, - 299.24169921875, - 643.533935546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 299.2249450683594, - 640.8001708984375 - ], - "bbox": [ - 299.2249450683594, - 633.6668701171875, - 302.5405578613281, - 642.705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.256591796875, - 633.6668701171875, - 302.5405578613281, - 643.533935546875 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 269.291259765625, - 617.9950561523438, - 351.64471435546875, - 647.7079467773438 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 269.291259765625, - 624.132080078125 - ], - "bbox": [ - 269.291259765625, - 617.9950561523438, - 275.1015319824219, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.291259765625, - 617.9950561523438, - 275.1015319824219, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 304.6112060546875, - 624.132080078125 - ], - "bbox": [ - 304.6112060546875, - 617.9950561523438, - 310.4214782714844, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.6112060546875, - 617.9950561523438, - 310.4214782714844, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 312.2076110839844, - 635.3573608398438 - ], - "bbox": [ - 312.2076110839844, - 629.2203369140625, - 318.34466552734375, - 642.9927978515625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " ", - "origin": [ - 318.34466552734375, - 635.3573608398438 - ], - "bbox": [ - 318.34466552734375, - 623.2760009765625, - 321.9590148925781, - 638.0911254882812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 321.9590148925781, - 629.9151611328125 - ], - "bbox": [ - 321.9590148925781, - 623.2760009765625, - 325.9441223144531, - 632.64892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.2076110839844, - 623.2760009765625, - 325.9441223144531, - 642.9927978515625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 320.0884094238281, - 640.8001098632812 - ], - "bbox": [ - 320.0884094238281, - 634.1609497070312, - 324.0735168457031, - 643.5338745117188 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 324.0567626953125, - 640.8001098632812 - ], - "bbox": [ - 324.0567626953125, - 633.6668090820312, - 327.37237548828125, - 642.7050170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.0884094238281, - 633.6668090820312, - 327.37237548828125, - 643.5338745117188 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 334.88507080078125, - 635.3572387695312 - ], - "bbox": [ - 334.88507080078125, - 628.9651489257812, - 339.28460693359375, - 637.7642211914062 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 339.3070068359375, - 637.171875 - ], - "bbox": [ - 339.3070068359375, - 633.1258544921875, - 341.8973083496094, - 638.4100341796875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 342.368408203125, - 635.357666015625 - ], - "bbox": [ - 342.368408203125, - 628.965576171875, - 346.7679443359375, - 637.7646484375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 346.7904968261719, - 637.171875 - ], - "bbox": [ - 346.7904968261719, - 633.1258544921875, - 351.64471435546875, - 638.4100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.88507080078125, - 628.9651489257812, - 351.64471435546875, - 638.4100341796875 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 353.4234924316406, - 622.7818603515625, - 363.497314453125, - 643.533935546875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 353.4234924316406, - 629.9151611328125 - ], - "bbox": [ - 353.4234924316406, - 623.2760009765625, - 357.4085998535156, - 632.64892578125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 357.391845703125, - 629.9151611328125 - ], - "bbox": [ - 357.391845703125, - 622.7818603515625, - 360.87481689453125, - 631.820068359375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 360.9070129394531, - 631.105712890625 - ], - "bbox": [ - 360.9070129394531, - 627.0596923828125, - 363.497314453125, - 632.3438720703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.4234924316406, - 622.7818603515625, - 363.497314453125, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 354.8409118652344, - 640.8001708984375 - ], - "bbox": [ - 354.8409118652344, - 634.1610107421875, - 358.8260192871094, - 643.533935546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 358.80926513671875, - 640.8001708984375 - ], - "bbox": [ - 358.80926513671875, - 633.6668701171875, - 362.1248779296875, - 642.705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.8409118652344, - 633.6668701171875, - 362.1248779296875, - 643.533935546875 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 329.1019287109375, - 617.9950561523438, - 383.4306945800781, - 647.7079467773438 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 329.1019287109375, - 624.132080078125 - ], - "bbox": [ - 329.1019287109375, - 617.9950561523438, - 334.9122009277344, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.1019287109375, - 617.9950561523438, - 334.9122009277344, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 363.9683532714844, - 624.132080078125 - ], - "bbox": [ - 363.9683532714844, - 617.9950561523438, - 369.77862548828125, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.9683532714844, - 617.9950561523438, - 369.77862548828125, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 371.5081787109375, - 635.3573608398438 - ], - "bbox": [ - 371.5081787109375, - 629.2203369140625, - 377.6452331542969, - 642.9927978515625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 377.6452331542969, - 635.3573608398438 - ], - "bbox": [ - 377.6452331542969, - 623.6904296875, - 379.4455871582031, - 637.2622680664062 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 379.4455871582031, - 629.9151611328125 - ], - "bbox": [ - 379.4455871582031, - 623.6904296875, - 383.4306945800781, - 631.820068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.5081787109375, - 623.6904296875, - 383.4306945800781, - 642.9927978515625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "3", - "origin": [ - 379.4455871582031, - 640.8001098632812 - ], - "bbox": [ - 379.4455871582031, - 634.5753784179688, - 383.4306945800781, - 642.7050170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 379.4455871582031, - 634.5753784179688, - 383.4306945800781, - 642.7050170898438 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 386.0787658691406, - 623.2760009765625, - 415.9344177246094, - 643.5338745117188 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 387.8927917480469, - 629.9151611328125 - ], - "bbox": [ - 387.8927917480469, - 623.2760009765625, - 391.8778991699219, - 632.64892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 387.8927917480469, - 623.2760009765625, - 391.8778991699219, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 386.0787658691406, - 640.8001098632812 - ], - "bbox": [ - 386.0787658691406, - 634.1609497070312, - 390.0638732910156, - 643.5338745117188 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 390.047119140625, - 640.8001098632812 - ], - "bbox": [ - 390.047119140625, - 633.6668090820312, - 393.36273193359375, - 642.7050170898438 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " ", - "origin": [ - 393.36273193359375, - 640.8001098632812 - ], - "bbox": [ - 393.36273193359375, - 628.9651489257812, - 399.2311706542969, - 643.2070922851562 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 399.2311706542969, - 635.3572387695312 - ], - "bbox": [ - 399.2311706542969, - 628.9651489257812, - 403.6307067871094, - 637.7642211914062 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 403.5967102050781, - 637.171875 - ], - "bbox": [ - 403.5967102050781, - 633.1258544921875, - 406.18701171875, - 638.4100341796875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 406.7148132324219, - 635.357666015625 - ], - "bbox": [ - 406.7148132324219, - 628.965576171875, - 411.1143493652344, - 637.7646484375 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 411.0802001953125, - 637.171875 - ], - "bbox": [ - 411.0802001953125, - 633.1258544921875, - 415.9344177246094, - 638.4100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.0787658691406, - 628.9651489257812, - 415.9344177246094, - 643.5338745117188 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 422.1919860839844, - 622.7818603515625, - 452.9587097167969, - 648.4356079101562 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 422.1919860839844, - 629.9151611328125 - ], - "bbox": [ - 422.1919860839844, - 623.2760009765625, - 426.1770935058594, - 632.64892578125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 426.16033935546875, - 629.9151611328125 - ], - "bbox": [ - 426.16033935546875, - 622.7818603515625, - 430.14544677734375, - 631.820068359375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 430.1856994628906, - 631.105712890625 - ], - "bbox": [ - 430.1856994628906, - 627.0596923828125, - 432.7760009765625, - 632.3438720703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.1919860839844, - 622.7818603515625, - 432.7760009765625, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 423.9494934082031, - 640.8001708984375 - ], - "bbox": [ - 423.9494934082031, - 634.1610107421875, - 427.9346008300781, - 643.533935546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 427.9178466796875, - 640.8001708984375 - ], - "bbox": [ - 427.9178466796875, - 633.6668701171875, - 431.48052978515625, - 642.705078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 431.48052978515625, - 640.8001708984375 - ], - "bbox": [ - 431.48052978515625, - 629.2202758789062, - 435.004150390625, - 648.4356079101562 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 435.004150390625, - 635.3572998046875 - ], - "bbox": [ - 435.004150390625, - 629.2202758789062, - 441.1412048339844, - 642.9927368164062 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " o", - "origin": [ - 441.1412048339844, - 635.3572998046875 - ], - "bbox": [ - 441.1412048339844, - 623.2760009765625, - 446.8699951171875, - 638.091064453125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 446.90985107421875, - 629.9151611328125 - ], - "bbox": [ - 446.90985107421875, - 622.7818603515625, - 450.392822265625, - 631.820068359375 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 450.368408203125, - 631.105712890625 - ], - "bbox": [ - 450.368408203125, - 627.0596923828125, - 452.9587097167969, - 632.3438720703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.9494934082031, - 622.7818603515625, - 452.9587097167969, - 648.4356079101562 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 444.30218505859375, - 640.8001708984375 - ], - "bbox": [ - 444.30218505859375, - 634.1610107421875, - 448.28729248046875, - 643.533935546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 448.3271484375, - 640.8001708984375 - ], - "bbox": [ - 448.3271484375, - 633.6668701171875, - 451.64276123046875, - 642.705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.30218505859375, - 633.6668701171875, - 451.64276123046875, - 643.533935546875 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 395.09259033203125, - 617.9950561523438, - 480.0011901855469, - 647.7079467773438 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 416.40887451171875, - 624.132080078125 - ], - "bbox": [ - 416.40887451171875, - 617.9950561523438, - 422.2191467285156, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 416.40887451171875, - 617.9950561523438, - 422.2191467285156, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 453.4296569824219, - 624.132080078125 - ], - "bbox": [ - 453.4296569824219, - 617.9950561523438, - 459.23992919921875, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.4296569824219, - 617.9950561523438, - 459.23992919921875, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 395.09259033203125, - 624.132080078125 - ], - "bbox": [ - 395.09259033203125, - 617.9950561523438, - 399.2370910644531, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.09259033203125, - 617.9950561523438, - 399.2370910644531, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 459.2128601074219, - 624.132080078125 - ], - "bbox": [ - 459.2128601074219, - 617.9950561523438, - 463.35736083984375, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.2128601074219, - 617.9950561523438, - 463.35736083984375, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 465.16497802734375, - 635.3573608398438 - ], - "bbox": [ - 465.16497802734375, - 629.2203369140625, - 471.3020324707031, - 642.9927978515625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " b", - "origin": [ - 471.3020324707031, - 635.3573608398438 - ], - "bbox": [ - 471.3020324707031, - 628.9652709960938, - 477.44464111328125, - 637.7643432617188 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 477.410888671875, - 637.171875 - ], - "bbox": [ - 477.410888671875, - 633.1258544921875, - 480.0011901855469, - 638.4100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 465.16497802734375, - 628.9652709960938, - 480.0011901855469, - 642.9927978515625 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 481.8328857421875, - 622.7818603515625, - 553.9853515625, - 648.435546875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 481.8328857421875, - 629.9151611328125 - ], - "bbox": [ - 481.8328857421875, - 623.2760009765625, - 485.8179931640625, - 632.64892578125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "p", - "origin": [ - 485.8012390136719, - 629.9151611328125 - ], - "bbox": [ - 485.8012390136719, - 622.7818603515625, - 489.61895751953125, - 631.820068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.8328857421875, - 622.7818603515625, - 489.61895751953125, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 481.946044921875, - 640.8001098632812 - ], - "bbox": [ - 481.946044921875, - 634.1609497070312, - 485.93115234375, - 643.5338745117188 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 485.9143981933594, - 640.8001098632812 - ], - "bbox": [ - 485.9143981933594, - 633.6668090820312, - 489.2300109863281, - 642.7050170898438 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 489.2300109863281, - 640.8001098632812 - ], - "bbox": [ - 489.2300109863281, - 629.22021484375, - 491.5835876464844, - 648.435546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 491.5835876464844, - 635.3572387695312 - ], - "bbox": [ - 491.5835876464844, - 629.22021484375, - 497.72064208984375, - 642.99267578125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " W", - "origin": [ - 497.72064208984375, - 635.3572387695312 - ], - "bbox": [ - 497.72064208984375, - 628.2239379882812, - 505.27398681640625, - 637.2621459960938 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 505.27398681640625, - 635.3572387695312 - ], - "bbox": [ - 505.27398681640625, - 630.7205810546875, - 509.15972900390625, - 637.7864379882812 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 509.3856201171875, - 636.5482788085938 - ], - "bbox": [ - 509.3856201171875, - 632.5022583007812, - 511.9759216308594, - 637.7864379882812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 511.9759216308594, - 636.5482788085938 - ], - "bbox": [ - 511.9759216308594, - 629.2206420898438, - 520.3983154296875, - 644.1837158203125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " R", - "origin": [ - 520.3983154296875, - 635.357666015625 - ], - "bbox": [ - 520.3983154296875, - 628.224365234375, - 527.0350952148438, - 637.2625732421875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 527.0172119140625, - 636.5482788085938 - ], - "bbox": [ - 527.0172119140625, - 631.91162109375, - 529.17236328125, - 637.7864379882812 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 529.4552001953125, - 636.5482788085938 - ], - "bbox": [ - 529.4552001953125, - 632.5022583007812, - 532.0454711914062, - 637.7864379882812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 532.0454711914062, - 636.5482788085938 - ], - "bbox": [ - 532.0454711914062, - 629.2206420898438, - 540.4676513671875, - 644.1837158203125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " _", - "origin": [ - 540.4676513671875, - 635.357666015625 - ], - "bbox": [ - 540.4676513671875, - 629.3234252929688, - 546.1201782226562, - 637.3502197265625 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "mv", - "origin": [ - 542.2107543945312, - 635.357666015625 - ], - "bbox": [ - 542.2107543945312, - 628.224365234375, - 551.4163208007812, - 637.2625732421875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 551.3950805664062, - 636.5482788085938 - ], - "bbox": [ - 551.3950805664062, - 632.5022583007812, - 553.9853515625, - 637.7864379882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.946044921875, - 628.2239379882812, - 553.9853515625, - 648.435546875 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 42.51969909667969, - 662.0148315429688, - 272.33416748046875, - 676.1021728515625 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Liquid-phase", - "origin": [ - 42.51969909667969, - 668.2395629882812 - ], - "bbox": [ - 42.51969909667969, - 662.0148315429688, - 87.2237548828125, - 670.1444702148438 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 87.2237548828125, - 668.2395629882812 - ], - "bbox": [ - 87.2237548828125, - 662.2598266601562, - 94.25825500488281, - 670.2300415039062 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 94.28057098388672, - 668.2395629882812 - ], - "bbox": [ - 94.28057098388672, - 662.0148315429688, - 168.37155151367188, - 670.1444702148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 662.0148315429688, - 168.37155151367188, - 670.2300415039062 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 191.168701171875, - 668.2395629882812 - ], - "bbox": [ - 191.168701171875, - 662.2598266601562, - 195.15380859375, - 670.2300415039062 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 195.13690185546875, - 669.54345703125 - ], - "bbox": [ - 195.13690185546875, - 665.3942260742188, - 196.75079345703125, - 670.8131713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.168701171875, - 662.2598266601562, - 196.75079345703125, - 670.8131713867188 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "0", - "origin": [ - 221.44239807128906, - 668.2395629882812 - ], - "bbox": [ - 221.44239807128906, - 662.0148315429688, - 225.42750549316406, - 670.1444702148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44239807128906, - 662.0148315429688, - 225.42750549316406, - 670.1444702148438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 260.390380859375, - 668.4667358398438 - ], - "bbox": [ - 260.390380859375, - 662.3297119140625, - 266.5274353027344, - 676.1021728515625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 266.5696716308594, - 668.4667358398438 - ], - "bbox": [ - 266.5696716308594, - 662.0746459960938, - 270.9692077636719, - 670.8737182617188 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 270.9353942871094, - 670.280517578125 - ], - "bbox": [ - 270.9353942871094, - 666.2344970703125, - 272.33416748046875, - 671.5186767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.390380859375, - 662.0746459960938, - 272.33416748046875, - 676.1021728515625 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 274.16680908203125, - 655.8905029296875, - 343.0301818847656, - 681.6007080078125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 274.16680908203125, - 663.0238037109375 - ], - "bbox": [ - 274.16680908203125, - 656.3846435546875, - 278.15191650390625, - 665.757568359375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "p", - "origin": [ - 278.1351623535156, - 663.0238037109375 - ], - "bbox": [ - 278.1351623535156, - 655.8905029296875, - 281.952880859375, - 664.9287109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.16680908203125, - 655.8905029296875, - 281.952880859375, - 665.757568359375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 274.3365783691406, - 673.9652709960938 - ], - "bbox": [ - 274.3365783691406, - 667.3261108398438, - 278.3216857910156, - 676.6990356445312 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 278.3615417480469, - 673.9652709960938 - ], - "bbox": [ - 278.3615417480469, - 666.8319702148438, - 281.9242248535156, - 675.8701782226562 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 281.9242248535156, - 673.9652709960938 - ], - "bbox": [ - 281.9242248535156, - 662.3287963867188, - 283.8609924316406, - 681.6007080078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 283.8609924316406, - 668.4658203125 - ], - "bbox": [ - 283.8609924316406, - 662.3287963867188, - 289.998046875, - 676.1012573242188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " W", - "origin": [ - 289.998046875, - 668.4658203125 - ], - "bbox": [ - 289.998046875, - 661.33251953125, - 297.5513916015625, - 670.3707275390625 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 297.5513916015625, - 668.4658203125 - ], - "bbox": [ - 297.5513916015625, - 663.8291625976562, - 301.5975341796875, - 670.89501953125 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 301.6063232421875, - 669.6568603515625 - ], - "bbox": [ - 301.6063232421875, - 665.61083984375, - 303.0050964355469, - 670.89501953125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 303.0050964355469, - 669.6568603515625 - ], - "bbox": [ - 303.0050964355469, - 662.329345703125, - 311.4283447265625, - 677.2922973632812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " R", - "origin": [ - 311.4283447265625, - 668.4663696289062 - ], - "bbox": [ - 311.4283447265625, - 661.3330688476562, - 318.06512451171875, - 670.3712768554688 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 318.0470886230469, - 669.6568603515625 - ], - "bbox": [ - 318.0470886230469, - 665.0202026367188, - 320.3628234863281, - 670.89501953125 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 320.3716125488281, - 669.6568603515625 - ], - "bbox": [ - 320.3716125488281, - 665.61083984375, - 321.7703857421875, - 670.89501953125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " þ", - "origin": [ - 321.7703857421875, - 669.6568603515625 - ], - "bbox": [ - 321.7703857421875, - 662.329345703125, - 330.19366455078125, - 677.2922973632812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " _", - "origin": [ - 330.19366455078125, - 668.4663696289062 - ], - "bbox": [ - 330.19366455078125, - 662.43212890625, - 335.9027099609375, - 670.4589233398438 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "mu", - "origin": [ - 331.9367370605469, - 668.4663696289062 - ], - "bbox": [ - 331.9367370605469, - 661.3330688476562, - 341.6444396972656, - 670.3712768554688 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 341.63140869140625, - 669.6568603515625 - ], - "bbox": [ - 341.63140869140625, - 665.61083984375, - 343.0301818847656, - 670.89501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.3365783691406, - 661.33251953125, - 343.0301818847656, - 681.6007080078125 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 42.51969909667969, - 692.0645751953125, - 272.33416748046875, - 706.0921020507812 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Liquid-phase", - "origin": [ - 42.51969909667969, - 698.7969970703125 - ], - "bbox": [ - 42.51969909667969, - 692.572265625, - 87.2237548828125, - 700.701904296875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 87.2237548828125, - 698.7969970703125 - ], - "bbox": [ - 87.2237548828125, - 692.8172607421875, - 93.84380340576172, - 700.7874755859375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 93.82706451416016, - 698.7969970703125 - ], - "bbox": [ - 93.82706451416016, - 692.572265625, - 167.9180450439453, - 700.701904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 692.572265625, - 167.9180450439453, - 700.7874755859375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 191.1695098876953, - 698.7969970703125 - ], - "bbox": [ - 191.1695098876953, - 692.8172607421875, - 194.65248107910156, - 700.7874755859375 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 194.62669372558594, - 700.1010131835938 - ], - "bbox": [ - 194.62669372558594, - 695.9517822265625, - 196.24058532714844, - 701.3707275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.1695098876953, - 692.8172607421875, - 196.24058532714844, - 701.3707275390625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "0", - "origin": [ - 221.44239807128906, - 698.7969970703125 - ], - "bbox": [ - 221.44239807128906, - 692.572265625, - 225.42750549316406, - 700.701904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44239807128906, - 692.572265625, - 225.42750549316406, - 700.701904296875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 260.390380859375, - 698.4566650390625 - ], - "bbox": [ - 260.390380859375, - 692.3196411132812, - 266.5274353027344, - 706.0921020507812 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 266.5696716308594, - 698.4566650390625 - ], - "bbox": [ - 266.5696716308594, - 692.0645751953125, - 270.9692077636719, - 700.8636474609375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 270.9353942871094, - 700.2711181640625 - ], - "bbox": [ - 270.9353942871094, - 696.22509765625, - 272.33416748046875, - 701.50927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.390380859375, - 692.0645751953125, - 272.33416748046875, - 706.0921020507812 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 274.16680908203125, - 685.881103515625, - 369.4842224121094, - 711.5347290039062 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 274.16680908203125, - 693.014404296875 - ], - "bbox": [ - 274.16680908203125, - 686.375244140625, - 278.15191650390625, - 695.7481689453125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "p", - "origin": [ - 278.1351623535156, - 693.014404296875 - ], - "bbox": [ - 278.1351623535156, - 685.881103515625, - 281.952880859375, - 694.9193115234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.16680908203125, - 685.881103515625, - 281.952880859375, - 695.7481689453125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 274.27996826171875, - 703.8992919921875 - ], - "bbox": [ - 274.27996826171875, - 697.2601318359375, - 278.26507568359375, - 706.633056640625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 278.2483215332031, - 703.8992919921875 - ], - "bbox": [ - 278.2483215332031, - 696.7659912109375, - 281.5639343261719, - 705.80419921875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 281.5639343261719, - 703.8992919921875 - ], - "bbox": [ - 281.5639343261719, - 692.3193969726562, - 283.8609313964844, - 711.5347290039062 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 283.8609313964844, - 698.4564208984375 - ], - "bbox": [ - 283.8609313964844, - 692.3193969726562, - 289.99798583984375, - 706.0918579101562 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " W", - "origin": [ - 289.99798583984375, - 698.4564208984375 - ], - "bbox": [ - 289.99798583984375, - 691.3231201171875, - 297.55133056640625, - 700.361328125 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 297.55133056640625, - 698.4564208984375 - ], - "bbox": [ - 297.55133056640625, - 693.8197631835938, - 301.4369201660156, - 700.8856201171875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 301.71978759765625, - 699.6474609375 - ], - "bbox": [ - 301.71978759765625, - 695.6014404296875, - 303.1185607910156, - 700.8856201171875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 303.1185607910156, - 699.6474609375 - ], - "bbox": [ - 303.1185607910156, - 692.3198852539062, - 311.5416564941406, - 707.2828979492188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " R", - "origin": [ - 311.5416564941406, - 698.4569091796875 - ], - "bbox": [ - 311.5416564941406, - 691.3236083984375, - 318.1784362792969, - 700.36181640625 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 318.1606140136719, - 699.6474609375 - ], - "bbox": [ - 318.1606140136719, - 695.0108032226562, - 320.31573486328125, - 700.8856201171875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 320.5986022949219, - 699.6474609375 - ], - "bbox": [ - 320.5986022949219, - 695.6014404296875, - 321.99737548828125, - 700.8856201171875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " þ", - "origin": [ - 321.99737548828125, - 699.6474609375 - ], - "bbox": [ - 321.99737548828125, - 692.3198852539062, - 330.4204406738281, - 707.2828979492188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " _", - "origin": [ - 330.4204406738281, - 698.4569091796875 - ], - "bbox": [ - 330.4204406738281, - 692.422607421875, - 336.0729064941406, - 700.449462890625 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "mv", - "origin": [ - 332.1635437011719, - 698.4569091796875 - ], - "bbox": [ - 332.1635437011719, - 691.3236083984375, - 341.3691101074219, - 700.36181640625 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 341.3479919433594, - 699.6474609375 - ], - "bbox": [ - 341.3479919433594, - 695.6014404296875, - 342.74676513671875, - 700.8856201171875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " þ", - "origin": [ - 342.74676513671875, - 699.6474609375 - ], - "bbox": [ - 342.74676513671875, - 692.3198852539062, - 351.1700439453125, - 707.2828979492188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " b", - "origin": [ - 351.1700439453125, - 698.4569091796875 - ], - "bbox": [ - 351.1700439453125, - 692.0648193359375, - 357.3126525878906, - 700.8638916015625 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 357.2786865234375, - 700.2711181640625 - ], - "bbox": [ - 357.2786865234375, - 696.22509765625, - 358.6774597167969, - 701.50927734375 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 359.2062072753906, - 698.4569091796875 - ], - "bbox": [ - 359.2062072753906, - 692.0648193359375, - 363.6057434082031, - 700.8638916015625 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 363.57159423828125, - 700.2711181640625 - ], - "bbox": [ - 363.57159423828125, - 696.22509765625, - 364.9703674316406, - 701.50927734375 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 365.4991149902344, - 698.4569091796875 - ], - "bbox": [ - 365.4991149902344, - 691.3236083984375, - 369.4842224121094, - 700.36181640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.27996826171875, - 691.3231201171875, - 369.4842224121094, - 711.5347290039062 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 42.51873779296875, - 724.4931640625, - 270.5126647949219, - 744.072021484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Air mass fraction equation", - "origin": [ - 42.51873779296875, - 730.88525390625 - ], - "bbox": [ - 42.51873779296875, - 724.6605224609375, - 135.09181213378906, - 732.7901611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51873779296875, - 724.6605224609375, - 135.09181213378906, - 732.7901611328125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 191.16775512695312, - 730.88525390625 - ], - "bbox": [ - 191.16775512695312, - 724.4931640625, - 195.5673065185547, - 733.292236328125 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "a", - "origin": [ - 195.53379821777344, - 732.2459106445312 - ], - "bbox": [ - 195.53379821777344, - 728.0966796875, - 198.52249145507812, - 733.515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.16775512695312, - 724.4931640625, - 198.52249145507812, - 733.515625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 221.44239807128906, - 730.8853149414062 - ], - "bbox": [ - 221.44239807128906, - 724.4932250976562, - 225.84194946289062, - 733.2922973632812 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "a", - "origin": [ - 225.80780029296875, - 732.2459106445312 - ], - "bbox": [ - 225.80780029296875, - 728.0966796875, - 228.79649353027344, - 733.515625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 228.8125, - 730.8853149414062 - ], - "bbox": [ - 228.8125, - 724.9055786132812, - 234.94955444335938, - 732.8757934570312 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "e", - "origin": [ - 234.93539428710938, - 732.2459106445312 - ], - "bbox": [ - 234.93539428710938, - 728.0966796875, - 237.54751586914062, - 733.515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44239807128906, - 724.4932250976562, - 237.54751586914062, - 733.515625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "0.0", - "origin": [ - 260.3905029296875, - 730.8853149414062 - ], - "bbox": [ - 260.3905029296875, - 724.6605834960938, - 270.5126647949219, - 732.7902221679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.3905029296875, - 724.6605834960938, - 270.5126647949219, - 732.7902221679688 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "where", - "origin": [ - 50.5128173828125, - 740.8631591796875 - ], - "bbox": [ - 50.5128173828125, - 734.638427734375, - 70.6694564819336, - 742.76806640625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " l", - "origin": [ - 70.6694564819336, - 740.8631591796875 - ], - "bbox": [ - 70.6694564819336, - 734.4710693359375, - 77.64656829833984, - 743.2701416015625 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 77.66929626464844, - 742.1671142578125 - ], - "bbox": [ - 77.66929626464844, - 738.0178833007812, - 83.2701187133789, - 743.4368286132812 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " =", - "origin": [ - 83.2701187133789, - 742.1671142578125 - ], - "bbox": [ - 83.2701187133789, - 734.638427734375, - 91.34645080566406, - 744.072021484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " l", - "origin": [ - 91.34645080566406, - 740.8631591796875 - ], - "bbox": [ - 91.34645080566406, - 734.4710693359375, - 97.7728271484375, - 743.2701416015625 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 97.73860168457031, - 742.1671142578125 - ], - "bbox": [ - 97.73860168457031, - 737.939208984375, - 100.72730255126953, - 743.574462890625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " +", - "origin": [ - 100.72730255126953, - 742.1671142578125 - ], - "bbox": [ - 100.72730255126953, - 734.638427734375, - 108.70515441894531, - 744.072021484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " l", - "origin": [ - 108.70515441894531, - 740.8631591796875 - ], - "bbox": [ - 108.70515441894531, - 734.4710693359375, - 115.06377410888672, - 743.2701416015625 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tg", - "origin": [ - 115.08660125732422, - 742.1671142578125 - ], - "bbox": [ - 115.08660125732422, - 738.0178833007812, - 120.0657730102539, - 743.4368286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.5128173828125, - 734.4710693359375, - 120.0657730102539, - 744.072021484375 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [ - { - "bbox": [ - 310.726833199033, - 192.01934703748486, - 395.25221595487506, - 206.90084643288995 - ], - "image_path": "equation_interline/0_310_192_395_206.jpg" - }, - { - "bbox": [ - 310.726833199033, - 210.26118500604593, - 394.2917002417405, - 225.14268440145102 - ], - "image_path": "equation_interline/0_310_210_394_225.jpg" - }, - { - "bbox": [ - 39.38114423851732, - 217.46191051995163, - 288.15471394037064, - 245.30471584038693 - ], - "image_path": "equation_interline/0_39_217_288_245.jpg" - }, - { - "bbox": [ - 41.30217566478646, - 498.29020556227323, - 92.20950846091861, - 512.6916565900846 - ], - "image_path": "equation_interline/0_41_498_92_512.jpg" - } - ], - "inline_equations": [ - { - "bbox": [ - 339.0620467365028, - 230.42321644498185, - 350.5882352941176, - 242.42442563482464 - ], - "image_path": "equations_inline/0_339_230_350_242.jpg" - }, - { - "bbox": [ - 369.798549556809, - 230.90326481257554, - 380.84448025785656, - 243.38452237001206 - ], - "image_path": "equations_inline/0_369_230_380_243.jpg" - }, - { - "bbox": [ - 127.74858984689766, - 266.42684401451027, - 135.9129734085415, - 278.42805320435303 - ], - "image_path": "equations_inline/0_127_266_135_278.jpg" - }, - { - "bbox": [ - 139.2747784045125, - 266.906892382104, - 153.20225624496373, - 278.90810157194676 - ], - "image_path": "equations_inline/0_139_266_153_278.jpg" - }, - { - "bbox": [ - 172.41257050765512, - 266.906892382104, - 185.85979049153906, - 278.90810157194676 - ], - "image_path": "equations_inline/0_172_266_185_278.jpg" - }, - { - "bbox": [ - 396.21273166800967, - 489.1692865779927, - 407.7389202256245, - 500.21039903264807 - ], - "image_path": "equations_inline/0_396_489_407_500.jpg" - }, - { - "bbox": [ - 99.41337630942787, - 548.2152357920193, - 118.62369057211924, - 558.776299879081 - ], - "image_path": "equations_inline/0_99_548_118_558.jpg" - }, - { - "bbox": [ - 134.95245769540693, - 548.2152357920193, - 158.00483481063657, - 558.776299879081 - ], - "image_path": "equations_inline/0_134_548_158_558.jpg" - }, - { - "bbox": [ - 190.18211120064464, - 562.6166868198306, - 197.86623690572117, - 572.6977025392986 - ], - "image_path": "equations_inline/0_190_562_197_572.jpg" - }, - { - "bbox": [ - 220.43835616438355, - 562.6166868198306, - 231.96454472199838, - 572.6977025392986 - ], - "image_path": "equations_inline/0_220_562_231_572.jpg" - }, - { - "bbox": [ - 259.81950040290087, - 562.6166868198306, - 270.8654311039484, - 573.1777509068924 - ], - "image_path": "equations_inline/0_259_562_270_573.jpg" - }, - { - "bbox": [ - 259.81950040290087, - 577.018137847642, - 274.2272360999194, - 585.6590084643288 - ], - "image_path": "equations_inline/0_259_577_274_585.jpg" - }, - { - "bbox": [ - 189.70185334407734, - 725.3530834340991, - 199.7872683319903, - 734.9540507859733 - ], - "image_path": "equations_inline/0_189_725_199_734.jpg" - }, - { - "bbox": [ - 72.03867848509266, - 734.9540507859733, - 121.98549556809024, - 745.9951632406287 - ], - "image_path": "equations_inline/0_72_734_121_745.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 47.407169342041016, - 595.2760009765625, - 55.62236404418945 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 42.51976776123047, - 68.88743591308594, - 293.59368896484375, - 518.9869384765625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 311.527099609375, - 68.88743591308594, - 562.5671997070312, - 518.9869384765625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 538.36767578125, - 595.2760009765625, - 571.4818115234375 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 42.51969909667969, - 575.3865966796875, - 481.66290283203125, - 711.5347290039062 - ], - "layout_label": "U", - "sub_layout": [], - "bad_boxes": [ - [ - 329.1019287109375, - 588.968505859375, - 383.4306945800781, - 647.7079467773438 - ], - [ - 386.07867431640625, - 594.305908203125, - 415.7643127441406, - 614.563720703125 - ], - [ - 386.0787658691406, - 623.2760009765625, - 415.9344177246094, - 643.5338745117188 - ] - ] - }, - { - "layout_bbox": [ - 481.66290283203125, - 575.3865966796875, - 554.0987548828125, - 711.5347290039062 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 724.4931640625, - 595.2760009765625, - 744.072021484375 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 45.46770095825195, - 69.09518432617188, - 293.5812683105469, - 115.14332580566406 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 45.46770095825195, - 76.8759765625 - ], - "bbox": [ - 45.46770095825195, - 69.20477294921875, - 50.44900131225586, - 86.42015075683594 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " The turbulent diffusivity is equal to the turbulent viscos-", - "origin": [ - 50.44900131225586, - 76.8759765625 - ], - "bbox": [ - 50.44900131225586, - 69.09518432617188, - 293.5812683105469, - 79.25703430175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 45.46770095825195, - 69.09518432617188, - 293.5812683105469, - 86.42015075683594 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "ity, i.e., Schmidt number is equal to one.", - "origin": [ - 54.42507553100586, - 88.83807373046875 - ], - "bbox": [ - 54.42507553100586, - 81.05728149414062, - 231.20643615722656, - 91.21913146972656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.42507553100586, - 81.05728149414062, - 231.20643615722656, - 91.21913146972656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 45.46770095825195, - 100.8001708984375 - ], - "bbox": [ - 45.46770095825195, - 93.12896728515625, - 50.44900131225586, - 110.34434509277344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Pressure drop from inlet to vent for all sectors must be", - "origin": [ - 50.44900131225586, - 100.8001708984375 - ], - "bbox": [ - 50.44900131225586, - 93.01937866210938, - 293.5404357910156, - 103.18122863769531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 45.46770095825195, - 93.01937866210938, - 293.5404357910156, - 110.34434509277344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the same.", - "origin": [ - 54.42507553100586, - 112.76226806640625 - ], - "bbox": [ - 54.42507553100586, - 104.98147583007812, - 94.97186279296875, - 115.14332580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.42507553100586, - 104.98147583007812, - 94.97186279296875, - 115.14332580566406 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 42.51976776123047, - 131.422607421875, - 146.08197021484375, - 141.3852081298828 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2.2. Governing equations", - "origin": [ - 42.51976776123047, - 138.89715576171875 - ], - "bbox": [ - 42.51976776123047, - 131.422607421875, - 146.08197021484375, - 141.3852081298828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51976776123047, - 131.422607421875, - 146.08197021484375, - 141.3852081298828 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 42.51976776123047, - 155.04055786132812, - 293.583251953125, - 212.99403381347656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The governing equations for shell-side flow in a con-", - "origin": [ - 54.48186111450195, - 162.82135009765625 - ], - "bbox": [ - 54.48186111450195, - 155.04055786132812, - 293.583251953125, - 165.20240783691406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.48186111450195, - 155.04055786132812, - 293.583251953125, - 165.20240783691406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "denser are the equations of conservation of mass, momen-", - "origin": [ - 42.51976776123047, - 174.7266845703125 - ], - "bbox": [ - 42.51976776123047, - 166.94589233398438, - 293.5404357910156, - 177.1077423095703 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51976776123047, - 166.94589233398438, - 293.5404357910156, - 177.1077423095703 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tum for both gas-phase and liquid-phase, and air mass", - "origin": [ - 42.51976776123047, - 186.68878173828125 - ], - "bbox": [ - 42.51976776123047, - 178.90798950195312, - 293.5324401855469, - 189.06983947753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51976776123047, - 178.90798950195312, - 293.5324401855469, - 189.06983947753906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fraction. The general form of the governing equation can", - "origin": [ - 42.51976776123047, - 198.65087890625 - ], - "bbox": [ - 42.51976776123047, - 190.87008666992188, - 293.534423828125, - 201.0319366455078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51976776123047, - 190.87008666992188, - 293.534423828125, - 201.0319366455078 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "be expressed as", - "origin": [ - 42.51976776123047, - 210.61297607421875 - ], - "bbox": [ - 42.51976776123047, - 202.83218383789062, - 108.54690551757812, - 212.99403381347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51976776123047, - 202.83218383789062, - 108.54690551757812, - 212.99403381347656 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 42.52000045776367, - 219.2101287841797, - 179.3236846923828, - 250.65904235839844 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 44.7307014465332, - 227.50897216796875 - ], - "bbox": [ - 44.7307014465332, - 219.2101287841797, - 49.71200180053711, - 230.9261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 44.7307014465332, - 219.2101287841797, - 49.71200180053711, - 230.9261474609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 42.52000045776367, - 241.1148681640625 - ], - "bbox": [ - 42.52000045776367, - 232.81602478027344, - 47.50130081176758, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 47.50926971435547, - 241.1148681640625 - ], - "bbox": [ - 47.50926971435547, - 232.19833374023438, - 51.96255111694336, - 243.4959259033203 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 52.951839447021484, - 234.3114013671875 - ], - "bbox": [ - 52.951839447021484, - 226.64019775390625, - 56.78744125366211, - 243.85557556152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bq", - "origin": [ - 56.80736541748047, - 234.3114013671875 - ], - "bbox": [ - 56.80736541748047, - 226.32139587402344, - 67.80607604980469, - 237.32009887695312 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 67.86286163330078, - 234.3114013671875 - ], - "bbox": [ - 67.86286163330078, - 225.39486694335938, - 72.84416198730469, - 236.6924591064453 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 72.85213470458984, - 234.3114013671875 - ], - "bbox": [ - 72.85213470458984, - 226.32139587402344, - 79.48722839355469, - 237.32009887695312 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þþ", - "origin": [ - 79.4852294921875, - 234.3114013671875 - ], - "bbox": [ - 79.4852294921875, - 226.64019775390625, - 92.31507110595703, - 243.85557556152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " o", - "origin": [ - 92.31507110595703, - 234.3114013671875 - ], - "bbox": [ - 92.31507110595703, - 219.2101287841797, - 101.01910400390625, - 237.72857666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.52000045776367, - 219.2101287841797, - 101.01910400390625, - 244.53204345703125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 93.71353149414062, - 241.1148681640625 - ], - "bbox": [ - 93.71353149414062, - 232.81602478027344, - 98.69483184814453, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 98.70280456542969, - 241.1148681640625 - ], - "bbox": [ - 98.70280456542969, - 232.19833374023438, - 102.84724426269531, - 243.4959259033203 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 102.84724426269531, - 241.1148681640625 - ], - "bbox": [ - 102.84724426269531, - 226.64019775390625, - 104.37252044677734, - 250.65904235839844 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 104.37252044677734, - 234.3114013671875 - ], - "bbox": [ - 104.37252044677734, - 226.64019775390625, - 108.20812225341797, - 243.85557556152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bq", - "origin": [ - 108.17125701904297, - 234.3114013671875 - ], - "bbox": [ - 108.17125701904297, - 226.32139587402344, - 119.16996002197266, - 237.32009887695312 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 119.22675323486328, - 234.3114013671875 - ], - "bbox": [ - 119.22675323486328, - 225.39486694335938, - 123.58040618896484, - 236.6924591064453 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 123.59236145019531, - 234.3114013671875 - ], - "bbox": [ - 123.59236145019531, - 226.32139587402344, - 130.22744750976562, - 237.32009887695312 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ ¼", - "origin": [ - 130.2254638671875, - 234.3114013671875 - ], - "bbox": [ - 130.2254638671875, - 226.64019775390625, - 143.39602661132812, - 243.85557556152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " o", - "origin": [ - 143.39602661132812, - 234.3114013671875 - ], - "bbox": [ - 143.39602661132812, - 219.2101287841797, - 152.3260955810547, - 237.72857666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.71353149414062, - 219.2101287841797, - 152.3260955810547, - 250.65904235839844 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 145.0773162841797, - 241.1148681640625 - ], - "bbox": [ - 145.0773162841797, - 232.81602478027344, - 150.05860900878906, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 150.06658935546875, - 241.1148681640625 - ], - "bbox": [ - 150.06658935546875, - 232.19833374023438, - 154.51986694335938, - 243.4959259033203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 145.0773162841797, - 232.19833374023438, - 154.51986694335938, - 244.53204345703125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bC", - "origin": [ - 162.8227081298828, - 234.3114013671875 - ], - "bbox": [ - 162.8227081298828, - 226.32139587402344, - 174.9571533203125, - 237.32009887695312 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 175.01100158691406, - 235.78607177734375 - ], - "bbox": [ - 175.01100158691406, - 230.5927276611328, - 179.3236846923828, - 237.74166870117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 162.8227081298828, - 226.32139587402344, - 179.3236846923828, - 237.74166870117188 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 180.793701171875, - 219.2101287841797, - 192.47483825683594, - 244.53204345703125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 180.793701171875, - 227.50897216796875 - ], - "bbox": [ - 180.793701171875, - 219.2101287841797, - 185.77499389648438, - 230.9261474609375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 185.83975219726562, - 227.50897216796875 - ], - "bbox": [ - 185.83975219726562, - 219.5189666748047, - 192.47483825683594, - 230.51766967773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 180.793701171875, - 219.2101287841797, - 192.47483825683594, - 230.9261474609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 181.9274444580078, - 241.1148681640625 - ], - "bbox": [ - 181.9274444580078, - 232.81602478027344, - 186.9087371826172, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 186.91671752929688, - 241.1148681640625 - ], - "bbox": [ - 186.91671752929688, - 232.19833374023438, - 191.3699951171875, - 243.4959259033203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 181.9274444580078, - 232.19833374023438, - 191.3699951171875, - 244.53204345703125 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 155.56541442871094, - 212.58099365234375, - 244.52047729492188, - 249.72157287597656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 155.56541442871094, - 220.252197265625 - ], - "bbox": [ - 155.56541442871094, - 212.58099365234375, - 162.82815551757812, - 249.72157287597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 155.56541442871094, - 212.58099365234375, - 162.82815551757812, - 249.72157287597656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 192.47186279296875, - 220.252197265625 - ], - "bbox": [ - 192.47186279296875, - 212.58099365234375, - 199.73460388183594, - 249.72157287597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.47186279296875, - 212.58099365234375, - 199.73460388183594, - 249.72157287597656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 201.08950805664062, - 234.31243896484375 - ], - "bbox": [ - 201.08950805664062, - 226.6412353515625, - 208.76071166992188, - 243.8566131591797 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " ", - "origin": [ - 208.76071166992188, - 234.31243896484375 - ], - "bbox": [ - 208.76071166992188, - 219.2101287841797, - 212.4282989501953, - 237.7296142578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 212.4282989501953, - 227.50897216796875 - ], - "bbox": [ - 212.4282989501953, - 219.2101287841797, - 217.4095916748047, - 230.9261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 201.08950805664062, - 219.2101287841797, - 217.4095916748047, - 243.8566131591797 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 210.10401916503906, - 241.1148681640625 - ], - "bbox": [ - 210.10401916503906, - 232.81602478027344, - 215.08531188964844, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 215.09329223632812, - 241.1148681640625 - ], - "bbox": [ - 215.09329223632812, - 232.19833374023438, - 219.23773193359375, - 243.4959259033203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 210.10401916503906, - 232.19833374023438, - 219.23773193359375, - 244.53204345703125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bC", - "origin": [ - 228.01876831054688, - 234.3114013671875 - ], - "bbox": [ - 228.01876831054688, - 226.32139587402344, - 240.15321350097656, - 237.32009887695312 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 240.20779418945312, - 235.78607177734375 - ], - "bbox": [ - 240.20779418945312, - 230.5927276611328, - 244.52047729492188, - 237.74166870117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.01876831054688, - 226.32139587402344, - 244.52047729492188, - 237.74166870117188 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 245.99049377441406, - 219.2101287841797, - 257.6148681640625, - 244.53204345703125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 245.99049377441406, - 227.50897216796875 - ], - "bbox": [ - 245.99049377441406, - 219.2101287841797, - 250.97178649902344, - 230.9261474609375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 250.97976684570312, - 227.50897216796875 - ], - "bbox": [ - 250.97976684570312, - 219.5189666748047, - 257.6148681640625, - 230.51766967773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 245.99049377441406, - 219.2101287841797, - 257.6148681640625, - 230.9261474609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 247.01165771484375, - 241.1148681640625 - ], - "bbox": [ - 247.01165771484375, - 232.81602478027344, - 251.99295043945312, - 244.53204345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 252.0009307861328, - 241.1148681640625 - ], - "bbox": [ - 252.0009307861328, - 232.19833374023438, - 256.1453857421875, - 243.4959259033203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.01165771484375, - 232.19833374023438, - 256.1453857421875, - 244.53204345703125 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 220.76319885253906, - 212.58099365234375, - 285.1125793457031, - 249.72157287597656 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 220.76319885253906, - 220.252197265625 - ], - "bbox": [ - 220.76319885253906, - 212.58099365234375, - 228.02593994140625, - 249.72157287597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.76319885253906, - 212.58099365234375, - 228.02593994140625, - 249.72157287597656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 257.6696472167969, - 220.252197265625 - ], - "bbox": [ - 257.6696472167969, - 212.58099365234375, - 264.932373046875, - 249.72157287597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 257.6696472167969, - 212.58099365234375, - 264.932373046875, - 249.72157287597656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 266.28729248046875, - 234.31243896484375 - ], - "bbox": [ - 266.28729248046875, - 226.6412353515625, - 273.95849609375, - 243.8566131591797 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "S", - "origin": [ - 275.30145263671875, - 234.31243896484375 - ], - "bbox": [ - 275.30145263671875, - 225.39590454101562, - 280.2827453613281, - 236.69349670410156 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 280.7998962402344, - 235.78607177734375 - ], - "bbox": [ - 280.7998962402344, - 230.5927276611328, - 285.1125793457031, - 237.74166870117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.28729248046875, - 225.39590454101562, - 285.1125793457031, - 243.8566131591797 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 280.9132995605469, - 248.35812377929688, - 293.59368896484375, - 265.6830749511719 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 280.9132995605469, - 256.138916015625 - ], - "bbox": [ - 280.9132995605469, - 248.46771240234375, - 284.7489013671875, - 265.6830749511719 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 284.7120361328125, - 256.138916015625 - ], - "bbox": [ - 284.7120361328125, - 248.35812377929688, - 289.6933288574219, - 258.5199890136719 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 289.7580871582031, - 256.138916015625 - ], - "bbox": [ - 289.7580871582031, - 248.46771240234375, - 293.59368896484375, - 265.6830749511719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.9132995605469, - 248.35812377929688, - 293.59368896484375, - 265.6830749511719 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 42.520751953125, - 266.2340087890625, - 293.5752868652344, - 336.358642578125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The expressions for", - "origin": [ - 42.521240234375, - 274.2239990234375 - ], - "bbox": [ - 42.521240234375, - 266.4432067871094, - 125.58541870117188, - 276.6050720214844 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " /", - "origin": [ - 125.58541870117188, - 274.2239990234375 - ], - "bbox": [ - 125.58541870117188, - 266.2340087890625, - 134.98910522460938, - 277.2326965332031 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ",", - "origin": [ - 134.98712158203125, - 274.2239990234375 - ], - "bbox": [ - 134.98712158203125, - 266.4432067871094, - 137.67701721191406, - 276.6050720214844 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " C", - "origin": [ - 137.67701721191406, - 274.2239990234375 - ], - "bbox": [ - 137.67701721191406, - 266.2340087890625, - 147.0647735595703, - 277.2326965332031 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 147.11810302734375, - 275.86810302734375 - ], - "bbox": [ - 147.11810302734375, - 270.5420227050781, - 152.0943145751953, - 277.8736877441406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " and", - "origin": [ - 152.0943145751953, - 275.86810302734375 - ], - "bbox": [ - 152.0943145751953, - 266.4430847167969, - 170.8720703125, - 278.2491760253906 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " S", - "origin": [ - 170.8720703125, - 274.223876953125 - ], - "bbox": [ - 170.8720703125, - 266.74932861328125, - 179.6112518310547, - 276.7119140625 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 179.65980529785156, - 275.86810302734375 - ], - "bbox": [ - 179.65980529785156, - 270.5420227050781, - 184.63601684570312, - 277.8736877441406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " are given in", - "origin": [ - 184.63601684570312, - 275.86810302734375 - ], - "bbox": [ - 184.63601684570312, - 266.4430847167969, - 236.83128356933594, - 278.2491760253906 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Table 1", - "origin": [ - 236.83128356933594, - 274.223876953125 - ], - "bbox": [ - 236.83128356933594, - 266.4430847167969, - 271.6077575683594, - 276.6049499511719 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ". The", - "origin": [ - 271.61572265625, - 274.223876953125 - ], - "bbox": [ - 271.61572265625, - 266.4430847167969, - 293.5464172363281, - 276.6049499511719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.521240234375, - 266.2340087890625, - 293.5464172363281, - 278.2491760253906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "pressure correction equation is obtained from the gas-", - "origin": [ - 42.520751953125, - 286.18597412109375 - ], - "bbox": [ - 42.520751953125, - 278.4051818847656, - 293.5483703613281, - 288.5670471191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 278.4051818847656, - 293.5483703613281, - 288.5670471191406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "phase continuity equation and gas-phase momentum equa-", - "origin": [ - 42.520751953125, - 298.1480712890625 - ], - "bbox": [ - 42.520751953125, - 290.3672790527344, - 293.5752868652344, - 300.5291442871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 290.3672790527344, - 293.5752868652344, - 300.5291442871094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tions. The liquid volume fraction is obtained from the", - "origin": [ - 42.520751953125, - 310.11016845703125 - ], - "bbox": [ - 42.520751953125, - 302.3293762207031, - 293.5145263671875, - 312.4912414550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 302.3293762207031, - 293.5145263671875, - 312.4912414550781 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "liquid-phase continuity equation. The gas volume fraction", - "origin": [ - 42.520751953125, - 322.0154724121094 - ], - "bbox": [ - 42.520751953125, - 314.23468017578125, - 293.4866027832031, - 324.39654541015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 314.23468017578125, - 293.4866027832031, - 324.39654541015625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "is obtained by using an auxiliary equation.", - "origin": [ - 42.520751953125, - 333.9775695800781 - ], - "bbox": [ - 42.520751953125, - 326.19677734375, - 227.5341339111328, - 336.358642578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 326.19677734375, - 227.5341339111328, - 336.358642578125 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 42.520751953125, - 351.4473876953125, - 128.95028686523438, - 361.40997314453125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2.3. Volume fraction", - "origin": [ - 42.520751953125, - 358.92193603515625 - ], - "bbox": [ - 42.520751953125, - 351.4473876953125, - 128.95028686523438, - 361.40997314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 351.4473876953125, - 128.95028686523438, - 361.40997314453125 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 42.520751953125, - 375.008544921875, - 293.582275390625, - 492.7724914550781 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The porous medium concept is used in this study to", - "origin": [ - 54.482845306396484, - 382.7893371582031 - ], - "bbox": [ - 54.482845306396484, - 375.008544921875, - 293.5264587402344, - 385.17041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.482845306396484, - 375.008544921875, - 293.5264587402344, - 385.17041015625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "account for the effect of tube bundles on the fluid flow.", - "origin": [ - 42.520751953125, - 394.7514343261719 - ], - "bbox": [ - 42.520751953125, - 386.97064208984375, - 293.5315246582031, - 397.13250732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 386.97064208984375, - 293.5315246582031, - 397.13250732421875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The porosity,", - "origin": [ - 42.520751953125, - 406.7135314941406 - ], - "bbox": [ - 42.520751953125, - 398.9327392578125, - 99.45701599121094, - 409.0946044921875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " a", - "origin": [ - 99.45701599121094, - 406.7135314941406 - ], - "bbox": [ - 99.45701599121094, - 398.7235412597656, - 106.91600799560547, - 409.72222900390625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ", which is employed to describe the flow vol-", - "origin": [ - 106.92398071289062, - 406.7135314941406 - ], - "bbox": [ - 106.92398071289062, - 398.9327392578125, - 293.54541015625, - 409.0946044921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 398.7235412597656, - 293.54541015625, - 409.72222900390625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "ume reduction due to tube bundles, is defined as the ratio of", - "origin": [ - 42.520751953125, - 418.6756286621094 - ], - "bbox": [ - 42.520751953125, - 410.89483642578125, - 293.582275390625, - 421.05670166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 410.89483642578125, - 293.582275390625, - 421.05670166015625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the volume occupied by the fluid to the total volume. The", - "origin": [ - 42.520751953125, - 430.6377258300781 - ], - "bbox": [ - 42.520751953125, - 422.85693359375, - 293.5444641113281, - 433.018798828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 422.85693359375, - 293.5444641113281, - 433.018798828125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "gas volume fraction and liquid volume fraction are defined", - "origin": [ - 42.520751953125, - 442.5998229980469 - ], - "bbox": [ - 42.520751953125, - 434.81903076171875, - 293.53045654296875, - 444.98089599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 434.81903076171875, - 293.53045654296875, - 444.98089599609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "as the ratio of the volume occupied by the gas (vapor and", - "origin": [ - 42.520751953125, - 454.5619201660156 - ], - "bbox": [ - 42.520751953125, - 446.7811279296875, - 293.54437255859375, - 456.9429931640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 446.7811279296875, - 293.54437255859375, - 456.9429931640625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "air) to the total volume, and the ratio of the volume", - "origin": [ - 42.520751953125, - 466.46722412109375 - ], - "bbox": [ - 42.520751953125, - 458.6864318847656, - 293.5364685058594, - 468.8482971191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 458.6864318847656, - 293.5364685058594, - 468.8482971191406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "occupied by the liquid to the total volume, respectively.", - "origin": [ - 42.520751953125, - 478.4293212890625 - ], - "bbox": [ - 42.520751953125, - 470.6485290527344, - 293.5205383300781, - 480.8103942871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 470.6485290527344, - 293.5205383300781, - 480.8103942871094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Thus,", - "origin": [ - 42.520751953125, - 490.39141845703125 - ], - "bbox": [ - 42.520751953125, - 482.6106262207031, - 66.7537841796875, - 492.7724914550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 482.6106262207031, - 66.7537841796875, - 492.7724914550781 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 42.520751953125, - 499.18243408203125, - 293.59307861328125, - 518.9869384765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 42.520751953125, - 507.17242431640625 - ], - "bbox": [ - 42.520751953125, - 499.18243408203125, - 48.02010726928711, - 510.1811218261719 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 48.01890182495117, - 509.4427795410156 - ], - "bbox": [ - 48.01890182495117, - 504.3854064941406, - 51.25665283203125, - 510.99041748046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " þ", - "origin": [ - 51.25665283203125, - 509.4427795410156 - ], - "bbox": [ - 51.25665283203125, - 499.5038757324219, - 61.642799377441406, - 518.9869384765625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " b", - "origin": [ - 61.642799377441406, - 507.1750793457031 - ], - "bbox": [ - 61.642799377441406, - 499.1850891113281, - 69.39170837402344, - 510.18377685546875 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 69.39209747314453, - 509.4427795410156 - ], - "bbox": [ - 69.39209747314453, - 504.3854064941406, - 71.1404800415039, - 510.99041748046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 71.1404800415039, - 509.4427795410156 - ], - "bbox": [ - 71.1404800415039, - 499.5038757324219, - 82.10900115966797, - 518.9869384765625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " a", - "origin": [ - 82.10900115966797, - 507.1750793457031 - ], - "bbox": [ - 82.10900115966797, - 499.1850891113281, - 89.85093688964844, - 510.18377685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.520751953125, - 499.18243408203125, - 89.85093688964844, - 518.9869384765625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 280.9126892089844, - 507.1750793457031 - ], - "bbox": [ - 280.9126892089844, - 499.5038757324219, - 284.748291015625, - 516.71923828125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 284.71142578125, - 507.1750793457031 - ], - "bbox": [ - 284.71142578125, - 499.394287109375, - 289.6927185058594, - 509.55615234375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 289.7574768066406, - 507.1750793457031 - ], - "bbox": [ - 289.7574768066406, - 499.5038757324219, - 293.59307861328125, - 516.71923828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.9126892089844, - 499.394287109375, - 293.59307861328125, - 516.71923828125 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 311.5277404785156, - 68.88743591308594, - 562.553466796875, - 103.18269348144531 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The porosity,", - "origin": [ - 311.5277404785156, - 76.87744140625 - ], - "bbox": [ - 311.5277404785156, - 69.09664916992188, - 369.6147155761719, - 79.25849914550781 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " a", - "origin": [ - 369.6147155761719, - 76.87744140625 - ], - "bbox": [ - 369.6147155761719, - 68.88743591308594, - 378.36083984375, - 79.88614654541016 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ", is determined by the tube bundle layout.", - "origin": [ - 378.3688049316406, - 76.87744140625 - ], - "bbox": [ - 378.3688049316406, - 69.09664916992188, - 562.5304565429688, - 79.25849914550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 68.88743591308594, - 562.5304565429688, - 79.88614654541016 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Therefore, the gas volume fraction can be obtained by", - "origin": [ - 311.5277404785156, - 88.83953857421875 - ], - "bbox": [ - 311.5277404785156, - 81.05874633789062, - 562.553466796875, - 91.22059631347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 81.05874633789062, - 562.553466796875, - 91.22059631347656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Eq.", - "origin": [ - 311.5277404785156, - 100.8016357421875 - ], - "bbox": [ - 311.5277404785156, - 93.02084350585938, - 326.35211181640625, - 103.18269348144531 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " (2)", - "origin": [ - 326.35211181640625, - 100.8016357421875 - ], - "bbox": [ - 326.35211181640625, - 93.02084350585938, - 341.3427734375, - 103.18269348144531 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ".", - "origin": [ - 341.3487854003906, - 100.8016357421875 - ], - "bbox": [ - 341.3487854003906, - 93.02084350585938, - 344.0386962890625, - 103.18269348144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 93.02084350585938, - 344.0386962890625, - 103.18269348144531 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 311.5287170410156, - 117.25128173828125, - 420.9778747558594, - 127.21387481689453 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2.4. Distributed resistance", - "origin": [ - 311.5287170410156, - 124.725830078125 - ], - "bbox": [ - 311.5287170410156, - 117.25128173828125, - 420.9778747558594, - 127.21387481689453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 117.25128173828125, - 420.9778747558594, - 127.21387481689453 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 311.5287170410156, - 140.81240844726562, - 562.5671997070312, - 186.8605499267578 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The source terms for the distributed resistance, which is", - "origin": [ - 323.4908142089844, - 148.59320068359375 - ], - "bbox": [ - 323.4908142089844, - 140.81240844726562, - 562.5671997070312, - 150.97425842285156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.4908142089844, - 140.81240844726562, - 562.5671997070312, - 150.97425842285156 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "due to tube bundles, are included in the momentum equa-", - "origin": [ - 311.5287170410156, - 160.5552978515625 - ], - "bbox": [ - 311.5287170410156, - 152.77450561523438, - 562.515625, - 162.9363555908203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 152.77450561523438, - 562.515625, - 162.9363555908203 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tions for both gas-phase and liquid-phase. They are taken", - "origin": [ - 311.5287170410156, - 172.51739501953125 - ], - "bbox": [ - 311.5287170410156, - 164.73660278320312, - 562.5134887695312, - 174.89845275878906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 164.73660278320312, - 562.5134887695312, - 174.89845275878906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the following forms", - "origin": [ - 311.5287170410156, - 184.4794921875 - ], - "bbox": [ - 311.5287170410156, - 176.69869995117188, - 396.1859130859375, - 186.8605499267578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 396.1859130859375, - 184.4794921875 - ], - "bbox": [ - 396.1859130859375, - 176.69869995117188, - 409.9333190917969, - 186.8605499267578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ":", - "origin": [ - 409.947265625, - 184.4794921875 - ], - "bbox": [ - 409.947265625, - 176.69869995117188, - 412.6371765136719, - 186.8605499267578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 176.69869995117188, - 412.6371765136719, - 186.8605499267578 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 311.52874755859375, - 193.02395629882812, - 562.5447387695312, - 214.26268005371094 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 311.52874755859375, - 201.94091796875 - ], - "bbox": [ - 311.52874755859375, - 194.26971435546875, - 315.3643493652344, - 211.48509216308594 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "R", - "origin": [ - 315.38427734375, - 201.94091796875 - ], - "bbox": [ - 315.38427734375, - 193.02438354492188, - 321.5013122558594, - 204.3219757080078 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 321.5054016113281, - 203.41448974609375 - ], - "bbox": [ - 321.5054016113281, - 197.61891174316406, - 324.39996337890625, - 204.96212768554688 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 324.9070129394531, - 201.94049072265625 - ], - "bbox": [ - 324.9070129394531, - 194.269287109375, - 328.74261474609375, - 211.4846649169922 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 328.7620849609375, - 204.718505859375 - ], - "bbox": [ - 328.7620849609375, - 198.9229278564453, - 333.4114990234375, - 206.26614379882812 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼ ð", - "origin": [ - 333.4114990234375, - 204.718505859375 - ], - "bbox": [ - 333.4114990234375, - 194.269287109375, - 350.9665222167969, - 214.26268005371094 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bn", - "origin": [ - 350.9854736328125, - 201.94049072265625 - ], - "bbox": [ - 350.9854736328125, - 193.9504852294922, - 361.46612548828125, - 204.94918823242188 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 361.4739074707031, - 203.8114013671875 - ], - "bbox": [ - 361.4739074707031, - 198.0158233642578, - 364.36846923828125, - 205.35903930664062 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 364.87548828125, - 201.94049072265625 - ], - "bbox": [ - 364.87548828125, - 193.9504852294922, - 370.3748474121094, - 204.94918823242188 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "uU", - "origin": [ - 370.3748474121094, - 201.94049072265625 - ], - "bbox": [ - 370.3748474121094, - 193.02395629882812, - 382.50927734375, - 204.32154846191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 383.5842590332031, - 201.94049072265625 - ], - "bbox": [ - 383.5842590332031, - 194.269287109375, - 387.41986083984375, - 211.4846649169922 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 387.4393005371094, - 204.718505859375 - ], - "bbox": [ - 387.4393005371094, - 198.9229278564453, - 392.0887145996094, - 206.26614379882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52874755859375, - 193.02395629882812, - 392.0887145996094, - 214.26268005371094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8643798828125, - 201.94049072265625 - ], - "bbox": [ - 549.8643798828125, - 194.269287109375, - 553.699951171875, - 211.4846649169922 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "3", - "origin": [ - 553.7199096679688, - 201.94049072265625 - ], - "bbox": [ - 553.7199096679688, - 194.15969848632812, - 558.7012329101562, - 204.32154846191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7091674804688, - 201.94049072265625 - ], - "bbox": [ - 558.7091674804688, - 194.269287109375, - 562.5447387695312, - 211.4846649169922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8643798828125, - 194.15969848632812, - 562.5447387695312, - 211.4846649169922 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 311.52911376953125, - 210.93869018554688, - 562.5447387695312, - 232.23423767089844 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 311.52911376953125, - 219.855224609375 - ], - "bbox": [ - 311.52911376953125, - 212.18402099609375, - 315.3647155761719, - 229.39939880371094 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "R", - "origin": [ - 315.3846435546875, - 219.855224609375 - ], - "bbox": [ - 315.3846435546875, - 210.93869018554688, - 321.5016784667969, - 222.2362823486328 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 321.5054016113281, - 221.3294677734375 - ], - "bbox": [ - 321.5054016113281, - 215.5338897705078, - 324.19921875, - 222.87710571289062 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 325.0203857421875, - 219.85546875 - ], - "bbox": [ - 325.0203857421875, - 212.18426513671875, - 328.8559875488281, - 229.39964294433594 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 328.87548828125, - 222.6900634765625 - ], - "bbox": [ - 328.87548828125, - 216.8944854736328, - 333.52490234375, - 224.23770141601562 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼ ð", - "origin": [ - 333.52490234375, - 222.6900634765625 - ], - "bbox": [ - 333.52490234375, - 212.18426513671875, - 351.0799255371094, - 232.23423767089844 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "bn", - "origin": [ - 351.098876953125, - 219.85546875 - ], - "bbox": [ - 351.098876953125, - 211.86546325683594, - 361.57952880859375, - 222.86416625976562 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 361.5873107910156, - 221.726318359375 - ], - "bbox": [ - 361.5873107910156, - 215.9307403564453, - 364.2811279296875, - 223.27395629882812 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 365.1589050292969, - 219.85546875 - ], - "bbox": [ - 365.1589050292969, - 211.86546325683594, - 370.65826416015625, - 222.86416625976562 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "vU", - "origin": [ - 370.65826416015625, - 219.85546875 - ], - "bbox": [ - 370.65826416015625, - 210.93893432617188, - 382.1650695800781, - 222.2365264892578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 383.2440185546875, - 219.85546875 - ], - "bbox": [ - 383.2440185546875, - 212.18426513671875, - 387.0796203613281, - 229.39964294433594 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 387.0423889160156, - 222.6900634765625 - ], - "bbox": [ - 387.0423889160156, - 216.8944854736328, - 391.6918029785156, - 224.23770141601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52911376953125, - 210.93869018554688, - 391.6918029785156, - 232.23423767089844 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8643798828125, - 219.85546875 - ], - "bbox": [ - 549.8643798828125, - 212.18426513671875, - 553.699951171875, - 229.39964294433594 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "4", - "origin": [ - 553.7199096679688, - 219.85546875 - ], - "bbox": [ - 553.7199096679688, - 212.07467651367188, - 558.7012329101562, - 222.2365264892578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7091674804688, - 219.85546875 - ], - "bbox": [ - 558.7091674804688, - 212.18426513671875, - 562.5447387695312, - 229.39964294433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8643798828125, - 212.07467651367188, - 562.5447387695312, - 229.39964294433594 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 311.5277404785156, - 230.29026794433594, - 562.5026245117188, - 252.6238555908203 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "where", - "origin": [ - 311.52911376953125, - 238.2802734375 - ], - "bbox": [ - 311.52911376953125, - 230.49948120117188, - 336.72454833984375, - 240.6613311767578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " n", - "origin": [ - 336.72454833984375, - 238.2802734375 - ], - "bbox": [ - 336.72454833984375, - 230.29026794433594, - 344.6866455078125, - 241.28897094726562 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 344.69281005859375, - 239.9248046875 - ], - "bbox": [ - 344.69281005859375, - 234.6398468017578, - 348.8172302246094, - 241.6840057373047 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " and", - "origin": [ - 348.8172302246094, - 239.9248046875 - ], - "bbox": [ - 348.8172302246094, - 230.49990844726562, - 367.7593994140625, - 242.3058624267578 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " n", - "origin": [ - 367.7593994140625, - 238.28070068359375 - ], - "bbox": [ - 367.7593994140625, - 230.2906951904297, - 375.6955871582031, - 241.28939819335938 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 375.70379638671875, - 239.9248046875 - ], - "bbox": [ - 375.70379638671875, - 234.6398468017578, - 379.439697265625, - 241.6840057373047 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " are the pressure loss coefficients and given", - "origin": [ - 379.439697265625, - 239.9248046875 - ], - "bbox": [ - 379.439697265625, - 230.49990844726562, - 562.5026245117188, - 242.3058624267578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52911376953125, - 230.29026794433594, - 562.5026245117188, - 242.3058624267578 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in", - "origin": [ - 311.5277404785156, - 250.2427978515625 - ], - "bbox": [ - 311.5277404785156, - 242.46200561523438, - 319.7170104980469, - 252.6238555908203 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 319.7170104980469, - 250.2427978515625 - ], - "bbox": [ - 319.7170104980469, - 242.46200561523438, - 333.39764404296875, - 252.6238555908203 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ".", - "origin": [ - 333.4683532714844, - 250.2427978515625 - ], - "bbox": [ - 333.4683532714844, - 242.46200561523438, - 336.15826416015625, - 252.6238555908203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 242.46200561523438, - 336.15826416015625, - 252.6238555908203 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 311.5287170410156, - 266.69244384765625, - 407.2882080078125, - 276.655029296875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2.5. Interphase friction", - "origin": [ - 311.5287170410156, - 274.1669921875 - ], - "bbox": [ - 311.5287170410156, - 266.69244384765625, - 407.2882080078125, - 276.655029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 266.69244384765625, - 407.2882080078125, - 276.655029296875 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 311.5287170410156, - 290.25360107421875, - 562.5623168945312, - 336.3017578125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The source terms to account for the interphase friction", - "origin": [ - 323.4908142089844, - 298.0343933105469 - ], - "bbox": [ - 323.4908142089844, - 290.25360107421875, - 562.5623168945312, - 300.41546630859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.4908142089844, - 290.25360107421875, - 562.5623168945312, - 300.41546630859375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "between the gas-phase and liquid-phase are also included", - "origin": [ - 311.5287170410156, - 309.9964904785156 - ], - "bbox": [ - 311.5287170410156, - 302.2156982421875, - 562.4774169921875, - 312.3775634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 302.2156982421875, - 562.4774169921875, - 312.3775634765625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in the momentum equations for both phases, which have", - "origin": [ - 311.5287170410156, - 321.9585876464844 - ], - "bbox": [ - 311.5287170410156, - 314.17779541015625, - 562.535400390625, - 324.33966064453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 314.17779541015625, - 562.535400390625, - 324.33966064453125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the following forms", - "origin": [ - 311.5287170410156, - 333.9206848144531 - ], - "bbox": [ - 311.5287170410156, - 326.139892578125, - 396.1859130859375, - 336.3017578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 396.1859130859375, - 333.9206848144531 - ], - "bbox": [ - 396.1859130859375, - 326.139892578125, - 409.9333190917969, - 336.3017578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ":", - "origin": [ - 409.947265625, - 333.9206848144531 - ], - "bbox": [ - 409.947265625, - 326.139892578125, - 412.6371765136719, - 336.3017578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5287170410156, - 326.139892578125, - 412.6371765136719, - 336.3017578125 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 311.52874755859375, - 348.1343078613281, - 562.5443115234375, - 368.0704345703125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "W", - "origin": [ - 311.52874755859375, - 357.05084228515625 - ], - "bbox": [ - 311.52874755859375, - 348.1343078613281, - 318.7914733886719, - 359.4319152832031 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 318.7914733886719, - 357.05084228515625 - ], - "bbox": [ - 318.7914733886719, - 351.2552795410156, - 323.83306884765625, - 360.07391357421875 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 323.8298034667969, - 358.5262756347656 - ], - "bbox": [ - 323.8298034667969, - 353.4689025878906, - 327.06756591796875, - 360.07391357421875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼ �", - "origin": [ - 327.06756591796875, - 358.5262756347656 - ], - "bbox": [ - 327.06756591796875, - 349.3810729980469, - 348.5093078613281, - 368.0704345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "W", - "origin": [ - 348.54815673828125, - 357.0522766113281 - ], - "bbox": [ - 348.54815673828125, - 348.1357421875, - 355.8108825683594, - 359.433349609375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 355.8108825683594, - 357.0522766113281 - ], - "bbox": [ - 355.8108825683594, - 351.2567138671875, - 360.85357666015625, - 360.07391357421875 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 360.8503112792969, - 358.5262756347656 - ], - "bbox": [ - 360.8503112792969, - 353.4689025878906, - 362.59869384765625, - 360.07391357421875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 362.59869384765625, - 358.5262756347656 - ], - "bbox": [ - 362.59869384765625, - 349.3810729980469, - 373.56719970703125, - 368.0704345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " C", - "origin": [ - 373.56719970703125, - 357.0522766113281 - ], - "bbox": [ - 373.56719970703125, - 348.1357421875, - 382.9629211425781, - 359.433349609375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 383.4140930175781, - 358.5262756347656 - ], - "bbox": [ - 383.4140930175781, - 353.4689025878906, - 385.5704345703125, - 360.07391357421875 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 386.0787658691406, - 358.5262756347656 - ], - "bbox": [ - 386.0787658691406, - 352.730712890625, - 388.97332763671875, - 360.07391357421875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 389.5368957519531, - 357.0522766113281 - ], - "bbox": [ - 389.5368957519531, - 349.3810729980469, - 393.37249755859375, - 366.596435546875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 393.33563232421875, - 357.0522766113281 - ], - "bbox": [ - 393.33563232421875, - 348.1357421875, - 398.3169250488281, - 359.433349609375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 398.3243103027344, - 358.5262756347656 - ], - "bbox": [ - 398.3243103027344, - 353.4689025878906, - 400.07269287109375, - 360.07391357421875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 400.07269287109375, - 358.5262756347656 - ], - "bbox": [ - 400.07269287109375, - 349.3810729980469, - 410.4742126464844, - 368.0704345703125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " u", - "origin": [ - 410.4742126464844, - 357.0522766113281 - ], - "bbox": [ - 410.4742126464844, - 348.1357421875, - 417.7050476074219, - 359.433349609375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 417.7132873535156, - 358.5262756347656 - ], - "bbox": [ - 417.7132873535156, - 353.4689025878906, - 420.9510498046875, - 360.07391357421875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 421.4549865722656, - 357.0522766113281 - ], - "bbox": [ - 421.4549865722656, - 349.3810729980469, - 425.29058837890625, - 366.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52874755859375, - 348.1343078613281, - 425.29058837890625, - 368.0704345703125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8639526367188, - 357.0522766113281 - ], - "bbox": [ - 549.8639526367188, - 349.3810729980469, - 553.6995239257812, - 366.596435546875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "5", - "origin": [ - 553.719482421875, - 357.0522766113281 - ], - "bbox": [ - 553.719482421875, - 349.271484375, - 558.7008056640625, - 359.433349609375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.708740234375, - 357.0522766113281 - ], - "bbox": [ - 558.708740234375, - 349.3810729980469, - 562.5443115234375, - 366.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8639526367188, - 349.271484375, - 562.5443115234375, - 366.596435546875 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 311.5286865234375, - 366.05047607421875, - 562.543701171875, - 385.9854431152344 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "W", - "origin": [ - 311.5286865234375, - 374.9670104980469 - ], - "bbox": [ - 311.5286865234375, - 366.05047607421875, - 318.7914123535156, - 377.34808349609375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 318.7914123535156, - 374.9670104980469 - ], - "bbox": [ - 318.7914123535156, - 369.17144775390625, - 323.63232421875, - 377.9889221191406 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 324.0001220703125, - 376.4412841796875 - ], - "bbox": [ - 324.0001220703125, - 371.3839111328125, - 327.2378845214844, - 377.9889221191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼ �", - "origin": [ - 327.2378845214844, - 376.4412841796875 - ], - "bbox": [ - 327.2378845214844, - 367.2959899902344, - 348.62261962890625, - 385.9854431152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "W", - "origin": [ - 348.6614990234375, - 374.9671936035156 - ], - "bbox": [ - 348.6614990234375, - 366.0506591796875, - 355.9242248535156, - 377.3482666015625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 355.9242248535156, - 374.9671936035156 - ], - "bbox": [ - 355.9242248535156, - 369.171630859375, - 360.76611328125, - 377.9889221191406 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 361.1339111328125, - 376.4412841796875 - ], - "bbox": [ - 361.1339111328125, - 371.3839111328125, - 362.8822937011719, - 377.9889221191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 362.8822937011719, - 376.4412841796875 - ], - "bbox": [ - 362.8822937011719, - 367.2959899902344, - 373.7939147949219, - 385.9854431152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " C", - "origin": [ - 373.7939147949219, - 374.9671936035156 - ], - "bbox": [ - 373.7939147949219, - 366.0506591796875, - 383.2464294433594, - 377.3482666015625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 383.64080810546875, - 376.4412841796875 - ], - "bbox": [ - 383.64080810546875, - 371.3839111328125, - 385.7971496582031, - 377.9889221191406 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 386.36181640625, - 376.4412841796875 - ], - "bbox": [ - 386.36181640625, - 370.6457214355469, - 389.0556335449219, - 377.9889221191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 389.87701416015625, - 374.9671936035156 - ], - "bbox": [ - 389.87701416015625, - 367.2959899902344, - 393.7126159667969, - 384.5113525390625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 393.7325439453125, - 374.9671936035156 - ], - "bbox": [ - 393.7325439453125, - 366.0506591796875, - 398.0862121582031, - 377.3482666015625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 398.0975036621094, - 376.4412841796875 - ], - "bbox": [ - 398.0975036621094, - 371.3839111328125, - 399.84588623046875, - 377.9889221191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 399.84588623046875, - 376.4412841796875 - ], - "bbox": [ - 399.84588623046875, - 367.2959899902344, - 410.24749755859375, - 385.9854431152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " v", - "origin": [ - 410.24749755859375, - 374.9671936035156 - ], - "bbox": [ - 410.24749755859375, - 366.0506591796875, - 416.8507080078125, - 377.3482666015625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 416.8629150390625, - 376.4412841796875 - ], - "bbox": [ - 416.8629150390625, - 371.3839111328125, - 420.1006774902344, - 377.9889221191406 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 420.6046142578125, - 374.9671936035156 - ], - "bbox": [ - 420.6046142578125, - 367.2959899902344, - 424.4402160644531, - 384.5113525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5286865234375, - 366.05047607421875, - 424.4402160644531, - 385.9854431152344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8643798828125, - 374.9671936035156 - ], - "bbox": [ - 549.8643798828125, - 367.2959899902344, - 553.699951171875, - 384.5113525390625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "6", - "origin": [ - 553.7188720703125, - 374.9671936035156 - ], - "bbox": [ - 553.7188720703125, - 367.1864013671875, - 558.7001953125, - 377.3482666015625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7081298828125, - 374.9671936035156 - ], - "bbox": [ - 558.7081298828125, - 367.2959899902344, - 562.543701171875, - 384.5113525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8643798828125, - 367.1864013671875, - 562.543701171875, - 384.5113525390625 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 311.528076171875, - 391.28094482421875, - 336.7235107421875, - 401.44281005859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "where", - "origin": [ - 311.528076171875, - 399.0617370605469 - ], - "bbox": [ - 311.528076171875, - 391.28094482421875, - 336.7235107421875, - 401.44281005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.528076171875, - 391.28094482421875, - 336.7235107421875, - 401.44281005859375 - ] - } - ] - }, - { - "number": 24, - "type": 0, - "bbox": [ - 311.528076171875, - 407.21160888671875, - 562.5437622070312, - 432.8137512207031 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "C", - "origin": [ - 311.528076171875, - 421.7386169433594 - ], - "bbox": [ - 311.528076171875, - 412.82208251953125, - 318.1631774902344, - 424.11968994140625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 318.5574035644531, - 423.26959228515625 - ], - "bbox": [ - 318.5574035644531, - 418.21221923828125, - 320.7137451171875, - 424.8172302246094 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 321.2784118652344, - 423.26959228515625 - ], - "bbox": [ - 321.2784118652344, - 417.4740295410156, - 324.1729736328125, - 424.8172302246094 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 324.1729736328125, - 423.26959228515625 - ], - "bbox": [ - 324.1729736328125, - 414.0675964355469, - 335.12939453125, - 432.8137512207031 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 335.12939453125, - 421.7388000488281 - ], - "bbox": [ - 335.12939453125, - 407.21160888671875, - 337.88970947265625, - 424.119873046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 337.88970947265625, - 414.9924011230469 - ], - "bbox": [ - 337.88970947265625, - 407.21160888671875, - 342.8710021972656, - 417.37347412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.528076171875, - 407.21160888671875, - 342.8710021972656, - 432.8137512207031 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 337.88970947265625, - 428.59832763671875 - ], - "bbox": [ - 337.88970947265625, - 420.8175354003906, - 342.8710021972656, - 430.9794006347656 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " ", - "origin": [ - 342.8710021972656, - 428.59832763671875 - ], - "bbox": [ - 342.8710021972656, - 413.7480773925781, - 344.5227966308594, - 431.6070251464844 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 344.5227966308594, - 421.7380676269531 - ], - "bbox": [ - 344.5227966308594, - 413.7480773925781, - 350.02215576171875, - 424.74676513671875 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 350.07861328125, - 424.06329345703125 - ], - "bbox": [ - 350.07861328125, - 419.00592041015625, - 353.3163757324219, - 425.6109313964844 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 353.8204040527344, - 421.7388000488281 - ], - "bbox": [ - 353.8204040527344, - 412.822265625, - 358.0744323730469, - 424.119873046875 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 358.0722961425781, - 423.26959228515625 - ], - "bbox": [ - 358.0722961425781, - 418.21221923828125, - 361.6467590332031, - 424.8172302246094 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "A", - "origin": [ - 362.1542053222656, - 421.7388000488281 - ], - "bbox": [ - 362.1542053222656, - 412.822265625, - 368.271240234375, - 424.119873046875 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 368.277099609375, - 423.26959228515625 - ], - "bbox": [ - 368.277099609375, - 418.21221923828125, - 371.8515625, - 424.8172302246094 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "j", - "origin": [ - 372.35888671875, - 421.7388000488281 - ], - "bbox": [ - 372.35888671875, - 414.0675964355469, - 375.0487976074219, - 431.282958984375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 375.0796813964844, - 421.7388000488281 - ], - "bbox": [ - 375.0796813964844, - 412.822265625, - 380.06097412109375, - 424.119873046875 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 380.0692138671875, - 423.26959228515625 - ], - "bbox": [ - 380.0692138671875, - 418.21221923828125, - 383.3069763183594, - 424.8172302246094 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 383.3069763183594, - 423.26959228515625 - ], - "bbox": [ - 383.3069763183594, - 414.0675964355469, - 393.693115234375, - 432.8137512207031 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " u", - "origin": [ - 393.693115234375, - 421.7388000488281 - ], - "bbox": [ - 393.693115234375, - 412.822265625, - 400.9239501953125, - 424.119873046875 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 400.93218994140625, - 423.26959228515625 - ], - "bbox": [ - 400.93218994140625, - 418.21221923828125, - 402.6805725097656, - 424.8172302246094 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "j", - "origin": [ - 403.1431884765625, - 421.7388000488281 - ], - "bbox": [ - 403.1431884765625, - 414.0675964355469, - 405.8330993652344, - 431.282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.88970947265625, - 412.822265625, - 405.8330993652344, - 432.8137512207031 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8634033203125, - 421.7388000488281 - ], - "bbox": [ - 549.8634033203125, - 414.0675964355469, - 553.698974609375, - 431.282958984375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "7", - "origin": [ - 553.7189331054688, - 421.7388000488281 - ], - "bbox": [ - 553.7189331054688, - 413.9580078125, - 558.7002563476562, - 424.119873046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7081909179688, - 421.7388000488281 - ], - "bbox": [ - 558.7081909179688, - 414.0675964355469, - 562.5437622070312, - 431.282958984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8634033203125, - 413.9580078125, - 562.5437622070312, - 431.282958984375 - ] - } - ] - }, - { - "number": 25, - "type": 0, - "bbox": [ - 311.52813720703125, - 432.723388671875, - 562.5435180664062, - 458.3255615234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "C", - "origin": [ - 311.52813720703125, - 447.30682373046875 - ], - "bbox": [ - 311.52813720703125, - 438.3902893066406, - 318.1632385253906, - 449.6878967285156 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 318.5574035644531, - 448.7814025878906 - ], - "bbox": [ - 318.5574035644531, - 443.7240295410156, - 320.7137451171875, - 450.32904052734375 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 321.2784118652344, - 448.7814025878906 - ], - "bbox": [ - 321.2784118652344, - 442.98583984375, - 323.97222900390625, - 450.32904052734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 323.97222900390625, - 448.7814025878906 - ], - "bbox": [ - 323.97222900390625, - 439.6361999511719, - 335.2427978515625, - 458.3255615234375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 335.2427978515625, - 447.3074035644531 - ], - "bbox": [ - 335.2427978515625, - 432.723388671875, - 338.00311279296875, - 449.6884765625 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 338.00311279296875, - 440.5041809082031 - ], - "bbox": [ - 338.00311279296875, - 432.723388671875, - 342.9844055175781, - 442.88525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52813720703125, - 432.723388671875, - 342.9844055175781, - 458.3255615234375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 338.00311279296875, - 454.110107421875 - ], - "bbox": [ - 338.00311279296875, - 446.3293151855469, - 342.9844055175781, - 456.4911804199219 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " ", - "origin": [ - 342.9844055175781, - 454.110107421875 - ], - "bbox": [ - 342.9844055175781, - 439.316650390625, - 344.6929931640625, - 457.1188049316406 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 344.6929931640625, - 447.306640625 - ], - "bbox": [ - 344.6929931640625, - 439.316650390625, - 350.1923522949219, - 450.3153381347656 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 350.1919860839844, - 449.5751037597656 - ], - "bbox": [ - 350.1919860839844, - 444.5177307128906, - 353.42974853515625, - 451.12274169921875 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 353.9338073730469, - 447.3074035644531 - ], - "bbox": [ - 353.9338073730469, - 438.390869140625, - 358.1878356933594, - 449.6884765625 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 358.1856994628906, - 448.7814025878906 - ], - "bbox": [ - 358.1856994628906, - 443.7240295410156, - 361.7601623535156, - 450.32904052734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "A", - "origin": [ - 362.2676086425781, - 447.3074035644531 - ], - "bbox": [ - 362.2676086425781, - 438.390869140625, - 368.3846435546875, - 449.6884765625 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 368.3904113769531, - 448.7814025878906 - ], - "bbox": [ - 368.3904113769531, - 443.7240295410156, - 371.9648742675781, - 450.32904052734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "j", - "origin": [ - 372.472412109375, - 447.3074035644531 - ], - "bbox": [ - 372.472412109375, - 439.6361999511719, - 375.1623229980469, - 456.8515625 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 375.1932067871094, - 447.3074035644531 - ], - "bbox": [ - 375.1932067871094, - 438.390869140625, - 379.546875, - 449.6884765625 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 379.5589904785156, - 448.7814025878906 - ], - "bbox": [ - 379.5589904785156, - 443.7240295410156, - 382.7967529296875, - 450.32904052734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 382.7967529296875, - 448.7814025878906 - ], - "bbox": [ - 382.7967529296875, - 439.6361999511719, - 393.1828918457031, - 458.3255615234375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " v", - "origin": [ - 393.1828918457031, - 447.3074035644531 - ], - "bbox": [ - 393.1828918457031, - 438.390869140625, - 399.7861022949219, - 449.6884765625 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 399.7983093261719, - 448.7814025878906 - ], - "bbox": [ - 399.7983093261719, - 443.7240295410156, - 401.54669189453125, - 450.32904052734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "j", - "origin": [ - 402.0660095214844, - 447.3074035644531 - ], - "bbox": [ - 402.0660095214844, - 439.6361999511719, - 404.75592041015625, - 456.8515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.00311279296875, - 438.390869140625, - 404.75592041015625, - 458.3255615234375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8641357421875, - 447.3074035644531 - ], - "bbox": [ - 549.8641357421875, - 439.6361999511719, - 553.69970703125, - 456.8515625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "8", - "origin": [ - 553.7186889648438, - 447.3074035644531 - ], - "bbox": [ - 553.7186889648438, - 439.526611328125, - 558.7000122070312, - 449.6884765625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7079467773438, - 447.3074035644531 - ], - "bbox": [ - 558.7079467773438, - 439.6361999511719, - 562.5435180664062, - 456.8515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8641357421875, - 439.526611328125, - 562.5435180664062, - 456.8515625 - ] - } - ] - }, - { - "number": 26, - "type": 0, - "bbox": [ - 311.52789306640625, - 458.19610595703125, - 562.5447387695312, - 484.0074462890625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "A", - "origin": [ - 311.52789306640625, - 472.93218994140625 - ], - "bbox": [ - 311.52789306640625, - 464.0156555175781, - 317.6449279785156, - 475.3132629394531 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 317.6502990722656, - 474.4632873535156 - ], - "bbox": [ - 317.6502990722656, - 469.4059143066406, - 321.2247619628906, - 476.01092529296875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 321.2247619628906, - 474.4632873535156 - ], - "bbox": [ - 321.2247619628906, - 465.2613830566406, - 332.181396484375, - 484.0074462890625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 332.181396484375, - 472.9325866699219 - ], - "bbox": [ - 332.181396484375, - 458.4053039550781, - 334.94171142578125, - 475.31365966796875 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 334.94171142578125, - 466.18609619140625 - ], - "bbox": [ - 334.94171142578125, - 458.4053039550781, - 339.9230041503906, - 468.5671691894531 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvP4C4E51", - "color": 0, - "ascender": 0.75, - "descender": -0.23899999260902405, - "text": ":", - "origin": [ - 339.93096923828125, - 466.18609619140625 - ], - "bbox": [ - 339.93096923828125, - 458.63104248046875, - 342.6208801269531, - 468.5936279296875 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "5", - "origin": [ - 342.6517639160156, - 466.18609619140625 - ], - "bbox": [ - 342.6517639160156, - 458.4053039550781, - 347.633056640625, - 468.5671691894531 - ] - }, - { - "size": 9.962599754333496, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 347.6410217285156, - 466.18609619140625 - ], - "bbox": [ - 347.6410217285156, - 458.19610595703125, - 353.140380859375, - 469.1947937011719 - ] - }, - { - "size": 6.475500106811523, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 353.1400146484375, - 468.45379638671875 - ], - "bbox": [ - 353.1400146484375, - 463.39642333984375, - 354.8883972167969, - 470.0014343261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52789306640625, - 458.19610595703125, - 354.8883972167969, - 484.0074462890625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 339.5338134765625, - 479.7923889160156 - ], - "bbox": [ - 339.5338134765625, - 470.8758544921875, - 346.68695068359375, - 482.1734619140625 - ] - }, - { - "size": 6.475500106811523, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 346.7337951660156, - 481.2663879394531 - ], - "bbox": [ - 346.7337951660156, - 476.2090148925781, - 350.3082580566406, - 482.81402587890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 339.5338134765625, - 470.8758544921875, - 350.3082580566406, - 482.81402587890625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "ð", - "origin": [ - 549.8643798828125, - 472.9325866699219 - ], - "bbox": [ - 549.8643798828125, - 465.2613830566406, - 553.699951171875, - 482.47674560546875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "9", - "origin": [ - 553.7199096679688, - 472.9325866699219 - ], - "bbox": [ - 553.7199096679688, - 465.15179443359375, - 558.7012329101562, - 475.31365966796875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "Þ", - "origin": [ - 558.7091674804688, - 472.9325866699219 - ], - "bbox": [ - 558.7091674804688, - 465.2613830566406, - 562.5447387695312, - 482.47674560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 549.8643798828125, - 465.15179443359375, - 562.5447387695312, - 482.47674560546875 - ] - } - ] - }, - { - "number": 27, - "type": 0, - "bbox": [ - 311.527099609375, - 488.5091247558594, - 562.5306396484375, - 510.6332702636719 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The friction factor,", - "origin": [ - 311.52911376953125, - 496.2899169921875 - ], - "bbox": [ - 311.52911376953125, - 488.5091247558594, - 394.9300537109375, - 498.6709899902344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " f", - "origin": [ - 394.9300537109375, - 496.2899169921875 - ], - "bbox": [ - 394.9300537109375, - 488.81536865234375, - 402.0403137207031, - 498.7779541015625 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 402.0660095214844, - 497.9341735839844 - ], - "bbox": [ - 402.0660095214844, - 492.74755859375, - 406.1904296875, - 499.5213623046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ", given by Clift et al.", - "origin": [ - 406.14788818359375, - 496.29010009765625 - ], - "bbox": [ - 406.14788818359375, - 488.5093078613281, - 498.0887756347656, - 498.6711730957031 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [10]", - "origin": [ - 498.0887756347656, - 496.29010009765625 - ], - "bbox": [ - 498.0887756347656, - 488.5093078613281, - 517.18701171875, - 498.6711730957031 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " is used in", - "origin": [ - 517.18701171875, - 496.29010009765625 - ], - "bbox": [ - 517.18701171875, - 488.5093078613281, - 562.5306396484375, - 498.6711730957031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52911376953125, - 488.5091247558594, - 562.5306396484375, - 499.5213623046875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "this study.", - "origin": [ - 311.527099609375, - 508.252197265625 - ], - "bbox": [ - 311.527099609375, - 500.4714050292969, - 356.0589294433594, - 510.6332702636719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.527099609375, - 500.4714050292969, - 356.0589294433594, - 510.6332702636719 - ] - } - ] - }, - { - "number": 28, - "type": 0, - "bbox": [ - 42.51969909667969, - 538.36767578125, - 155.4071044921875, - 557.7791748046875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Table 1", - "origin": [ - 42.51969909667969, - 544.5924072265625 - ], - "bbox": [ - 42.51969909667969, - 538.36767578125, - 68.44436645507812, - 546.497314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 538.36767578125, - 68.44436645507812, - 546.497314453125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Expressions for", - "origin": [ - 42.51969909667969, - 554.5703125 - ], - "bbox": [ - 42.51969909667969, - 548.3455810546875, - 95.61318969726562, - 556.4752197265625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " /", - "origin": [ - 95.61318969726562, - 554.5703125 - ], - "bbox": [ - 95.61318969726562, - 548.17822265625, - 103.55708312988281, - 556.977294921875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ",", - "origin": [ - 103.5212173461914, - 554.5703125 - ], - "bbox": [ - 103.5212173461914, - 548.3455810546875, - 105.67317199707031, - 556.4752197265625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " C", - "origin": [ - 105.67317199707031, - 554.5703125 - ], - "bbox": [ - 105.67317199707031, - 548.17822265625, - 113.64815521240234, - 556.977294921875 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 113.66929626464844, - 555.874267578125 - ], - "bbox": [ - 113.66929626464844, - 551.6134643554688, - 117.6502456665039, - 557.4786987304688 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " and", - "origin": [ - 117.6502456665039, - 555.874267578125 - ], - "bbox": [ - 117.6502456665039, - 548.3455810546875, - 133.0865020751953, - 557.7791748046875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " S", - "origin": [ - 133.0865020751953, - 554.5703125 - ], - "bbox": [ - 133.0865020751953, - 548.590576171875, - 140.48045349121094, - 556.560791015625 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 140.48500061035156, - 555.874267578125 - ], - "bbox": [ - 140.48500061035156, - 551.6134643554688, - 144.4659423828125, - 557.4786987304688 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 144.4659423828125, - 555.874267578125 - ], - "bbox": [ - 144.4659423828125, - 548.3455810546875, - 155.4071044921875, - 557.7791748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 548.17822265625, - 155.4071044921875, - 557.7791748046875 - ] - } - ] - }, - { - "number": 29, - "type": 0, - "bbox": [ - 42.51958465576172, - 562.1244506835938, - 269.19036865234375, - 571.4818115234375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Equation", - "origin": [ - 42.51958465576172, - 568.5165405273438 - ], - "bbox": [ - 42.51958465576172, - 562.2918090820312, - 74.21707153320312, - 570.4214477539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51958465576172, - 562.2918090820312, - 74.21707153320312, - 570.4214477539062 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 191.16860961914062, - 568.5165405273438 - ], - "bbox": [ - 191.16860961914062, - 562.1244506835938, - 196.4767608642578, - 570.9235229492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.16860961914062, - 562.1244506835938, - 196.4767608642578, - 570.9235229492188 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "C", - "origin": [ - 221.44261169433594, - 568.5165405273438 - ], - "bbox": [ - 221.44261169433594, - 562.1244506835938, - 226.75076293945312, - 570.9235229492188 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 226.71490478515625, - 569.8773803710938 - ], - "bbox": [ - 226.71490478515625, - 565.6165771484375, - 230.6958465576172, - 571.4818115234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44261169433594, - 562.1244506835938, - 230.6958465576172, - 571.4818115234375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "S", - "origin": [ - 260.3905029296875, - 568.5167846679688 - ], - "bbox": [ - 260.3905029296875, - 562.5370483398438, - 265.2044982910156, - 570.5072631835938 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 265.20941162109375, - 569.8773803710938 - ], - "bbox": [ - 265.20941162109375, - 565.6165771484375, - 269.19036865234375, - 571.4818115234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.3905029296875, - 562.5370483398438, - 269.19036865234375, - 571.4818115234375 - ] - } - ] - }, - { - "number": 30, - "type": 0, - "bbox": [ - 42.51969909667969, - 575.3865966796875, - 272.29339599609375, - 594.4337158203125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Gas-phase continuity equation", - "origin": [ - 42.51969909667969, - 582.5198974609375 - ], - "bbox": [ - 42.51969909667969, - 576.295166015625, - 147.84671020507812, - 584.4248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 576.295166015625, - 147.84671020507812, - 584.4248046875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 191.16395568847656, - 582.5198974609375 - ], - "bbox": [ - 191.16395568847656, - 576.295166015625, - 195.14906311035156, - 584.4248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.16395568847656, - 576.295166015625, - 195.14906311035156, - 584.4248046875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 260.3914794921875, - 582.5198974609375 - ], - "bbox": [ - 260.3914794921875, - 576.3828735351562, - 266.5285339355469, - 590.1553344726562 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " _", - "origin": [ - 266.5285339355469, - 582.5198974609375 - ], - "bbox": [ - 266.5285339355469, - 576.485595703125, - 270.48016357421875, - 584.512451171875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 266.57080078125, - 582.5198974609375 - ], - "bbox": [ - 266.57080078125, - 575.3865966796875, - 272.29339599609375, - 584.4248046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.3914794921875, - 575.3865966796875, - 272.29339599609375, - 590.1553344726562 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Liquid-phase continuity equation", - "origin": [ - 42.51971435546875, - 592.441162109375 - ], - "bbox": [ - 42.51971435546875, - 586.2164306640625, - 157.03077697753906, - 594.3460693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51971435546875, - 586.2164306640625, - 157.03077697753906, - 594.3460693359375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 191.16395568847656, - 592.441162109375 - ], - "bbox": [ - 191.16395568847656, - 586.2164306640625, - 195.14906311035156, - 594.3460693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.16395568847656, - 586.2164306640625, - 195.14906311035156, - 594.3460693359375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "_", - "origin": [ - 262.2055358886719, - 592.441162109375 - ], - "bbox": [ - 262.2055358886719, - 586.4635009765625, - 264.35748291015625, - 594.4337158203125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 260.3915100097656, - 592.441162109375 - ], - "bbox": [ - 260.3915100097656, - 585.307861328125, - 266.1141052246094, - 594.3460693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.3915100097656, - 585.307861328125, - 266.1141052246094, - 594.4337158203125 - ] - } - ] - }, - { - "number": 31, - "type": 0, - "bbox": [ - 42.51971435546875, - 594.305908203125, - 291.7770080566406, - 614.563720703125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Gas-phase", - "origin": [ - 42.51971435546875, - 606.387451171875 - ], - "bbox": [ - 42.51971435546875, - 600.1627197265625, - 78.11463165283203, - 608.2923583984375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 78.11463165283203, - 606.387451171875 - ], - "bbox": [ - 78.11463165283203, - 600.40771484375, - 85.07341003417969, - 608.3779296875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 85.0957260131836, - 606.387451171875 - ], - "bbox": [ - 85.0957260131836, - 600.1627197265625, - 159.1867218017578, - 608.2923583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51971435546875, - 600.1627197265625, - 159.1867218017578, - 608.3779296875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 191.16873168945312, - 605.9339599609375 - ], - "bbox": [ - 191.16873168945312, - 599.9542236328125, - 195.15383911132812, - 607.9244384765625 - ] - }, - { - "size": 5.635257720947266, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 195.13690185546875, - 603.77978515625 - ], - "bbox": [ - 195.13690185546875, - 599.6305541992188, - 198.12559509277344, - 605.0494995117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.16873168945312, - 599.6305541992188, - 198.12559509277344, - 607.9244384765625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 221.44239807128906, - 605.93408203125 - ], - "bbox": [ - 221.44239807128906, - 599.5419921875, - 225.84194946289062, - 608.341064453125 - ] - }, - { - "size": 5.635257720947266, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 225.80780029296875, - 603.77978515625 - ], - "bbox": [ - 225.80780029296875, - 599.6305541992188, - 231.4086151123047, - 605.0494995117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44239807128906, - 599.5419921875, - 231.4086151123047, - 608.341064453125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 262.2047119140625, - 600.945068359375 - ], - "bbox": [ - 262.2047119140625, - 594.305908203125, - 266.1898193359375, - 603.6788330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.2047119140625, - 594.305908203125, - 266.1898193359375, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 260.39068603515625, - 611.8299560546875 - ], - "bbox": [ - 260.39068603515625, - 605.1907958984375, - 264.37579345703125, - 614.563720703125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 264.4156494140625, - 611.8299560546875 - ], - "bbox": [ - 264.4156494140625, - 604.6966552734375, - 267.97833251953125, - 613.73486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.39068603515625, - 604.6966552734375, - 267.97833251953125, - 614.563720703125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 275.0741882324219, - 606.33056640625 - ], - "bbox": [ - 275.0741882324219, - 599.9384765625, - 279.4737243652344, - 608.737548828125 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 279.4393005371094, - 608.2017822265625 - ], - "bbox": [ - 279.4393005371094, - 604.15576171875, - 282.02960205078125, - 609.43994140625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 282.5574035644531, - 606.3308715820312 - ], - "bbox": [ - 282.5574035644531, - 599.9387817382812, - 286.9569396972656, - 608.7378540039062 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 286.92279052734375, - 608.2017822265625 - ], - "bbox": [ - 286.92279052734375, - 604.15576171875, - 291.7770080566406, - 609.43994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.0741882324219, - 599.9384765625, - 291.7770080566406, - 609.43994140625 - ] - } - ] - }, - { - "number": 32, - "type": 0, - "bbox": [ - 293.61248779296875, - 593.811767578125, - 304.1398010253906, - 614.56396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 293.61248779296875, - 600.945068359375 - ], - "bbox": [ - 293.61248779296875, - 594.305908203125, - 297.59759521484375, - 603.6788330078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 297.5808410644531, - 600.945068359375 - ], - "bbox": [ - 297.5808410644531, - 593.811767578125, - 301.5659484863281, - 602.8499755859375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 301.54949951171875, - 602.1356811523438 - ], - "bbox": [ - 301.54949951171875, - 598.0896606445312, - 304.1398010253906, - 603.3738403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.61248779296875, - 593.811767578125, - 304.1398010253906, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 295.3699951171875, - 611.8302001953125 - ], - "bbox": [ - 295.3699951171875, - 605.1910400390625, - 299.3551025390625, - 614.56396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 299.3383483886719, - 611.8302001953125 - ], - "bbox": [ - 299.3383483886719, - 604.6968994140625, - 302.9010314941406, - 613.735107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.3699951171875, - 604.6968994140625, - 302.9010314941406, - 614.56396484375 - ] - } - ] - }, - { - "number": 33, - "type": 0, - "bbox": [ - 269.29071044921875, - 588.968505859375, - 351.64471435546875, - 618.681396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 269.29071044921875, - 595.1055297851562 - ], - "bbox": [ - 269.29071044921875, - 588.968505859375, - 275.1009826660156, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.29071044921875, - 588.968505859375, - 275.1009826660156, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 304.61065673828125, - 595.1055297851562 - ], - "bbox": [ - 304.61065673828125, - 588.968505859375, - 310.4209289550781, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.61065673828125, - 588.968505859375, - 310.4209289550781, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 312.2070617675781, - 606.3307495117188 - ], - "bbox": [ - 312.2070617675781, - 600.1937255859375, - 318.3441162109375, - 613.9661865234375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " ", - "origin": [ - 318.3441162109375, - 606.3307495117188 - ], - "bbox": [ - 318.3441162109375, - 594.305908203125, - 321.9590148925781, - 609.0645141601562 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 321.9590148925781, - 600.945068359375 - ], - "bbox": [ - 321.9590148925781, - 594.305908203125, - 325.9441223144531, - 603.6788330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.2070617675781, - 594.305908203125, - 325.9441223144531, - 613.9661865234375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 320.0884094238281, - 611.8299560546875 - ], - "bbox": [ - 320.0884094238281, - 605.1907958984375, - 324.0735168457031, - 614.563720703125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 324.0567626953125, - 611.8299560546875 - ], - "bbox": [ - 324.0567626953125, - 604.6966552734375, - 327.37237548828125, - 613.73486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.0884094238281, - 604.6966552734375, - 327.37237548828125, - 614.563720703125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 334.88507080078125, - 606.33056640625 - ], - "bbox": [ - 334.88507080078125, - 599.9384765625, - 339.28460693359375, - 608.737548828125 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 339.3070068359375, - 608.2017822265625 - ], - "bbox": [ - 339.3070068359375, - 604.15576171875, - 341.8973083496094, - 609.43994140625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 342.368408203125, - 606.3308715820312 - ], - "bbox": [ - 342.368408203125, - 599.9387817382812, - 346.7679443359375, - 608.7378540039062 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 346.7904968261719, - 608.2017822265625 - ], - "bbox": [ - 346.7904968261719, - 604.15576171875, - 351.64471435546875, - 609.43994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.88507080078125, - 599.9384765625, - 351.64471435546875, - 609.43994140625 - ] - } - ] - }, - { - "number": 34, - "type": 0, - "bbox": [ - 353.4234924316406, - 593.811767578125, - 363.497314453125, - 614.56396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 353.4234924316406, - 600.945068359375 - ], - "bbox": [ - 353.4234924316406, - 594.305908203125, - 357.4085998535156, - 603.6788330078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 357.391845703125, - 600.945068359375 - ], - "bbox": [ - 357.391845703125, - 593.811767578125, - 360.87481689453125, - 602.8499755859375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 360.9070129394531, - 602.1356811523438 - ], - "bbox": [ - 360.9070129394531, - 598.0896606445312, - 363.497314453125, - 603.3738403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.4234924316406, - 593.811767578125, - 363.497314453125, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 354.9541931152344, - 611.8302001953125 - ], - "bbox": [ - 354.9541931152344, - 605.1910400390625, - 358.9393005371094, - 614.56396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 358.92254638671875, - 611.8302001953125 - ], - "bbox": [ - 358.92254638671875, - 604.6968994140625, - 362.4852294921875, - 613.735107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.9541931152344, - 604.6968994140625, - 362.4852294921875, - 614.56396484375 - ] - } - ] - }, - { - "number": 35, - "type": 0, - "bbox": [ - 329.10205078125, - 588.968505859375, - 383.4306945800781, - 618.681396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 329.10205078125, - 595.1055297851562 - ], - "bbox": [ - 329.10205078125, - 588.968505859375, - 334.9123229980469, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.10205078125, - 588.968505859375, - 334.9123229980469, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 363.9684753417969, - 595.1055297851562 - ], - "bbox": [ - 363.9684753417969, - 588.968505859375, - 369.77874755859375, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.9684753417969, - 588.968505859375, - 369.77874755859375, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 371.50830078125, - 606.3307495117188 - ], - "bbox": [ - 371.50830078125, - 600.1937255859375, - 377.6453552246094, - 613.9661865234375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 377.6453552246094, - 606.3307495117188 - ], - "bbox": [ - 377.6453552246094, - 594.7203369140625, - 379.4455871582031, - 608.2356567382812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 379.4455871582031, - 600.945068359375 - ], - "bbox": [ - 379.4455871582031, - 594.7203369140625, - 383.4306945800781, - 602.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.50830078125, - 594.7203369140625, - 383.4306945800781, - 613.9661865234375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "3", - "origin": [ - 379.4455871582031, - 611.8299560546875 - ], - "bbox": [ - 379.4455871582031, - 605.605224609375, - 383.4306945800781, - 613.73486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 379.4455871582031, - 605.605224609375, - 383.4306945800781, - 613.73486328125 - ] - } - ] - }, - { - "number": 36, - "type": 0, - "bbox": [ - 386.07867431640625, - 594.305908203125, - 415.7643127441406, - 614.563720703125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 387.8360900878906, - 600.945068359375 - ], - "bbox": [ - 387.8360900878906, - 594.305908203125, - 391.8211975097656, - 603.6788330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 387.8360900878906, - 594.305908203125, - 391.8211975097656, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 386.07867431640625, - 611.8299560546875 - ], - "bbox": [ - 386.07867431640625, - 605.1907958984375, - 390.06378173828125, - 614.563720703125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 390.0470275878906, - 611.8299560546875 - ], - "bbox": [ - 390.0470275878906, - 604.6966552734375, - 393.6097106933594, - 613.73486328125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " ", - "origin": [ - 393.6097106933594, - 611.8299560546875 - ], - "bbox": [ - 393.6097106933594, - 599.9384765625, - 399.0613098144531, - 614.2369384765625 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 399.0613098144531, - 606.33056640625 - ], - "bbox": [ - 399.0613098144531, - 599.9384765625, - 403.4608459472656, - 608.737548828125 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 403.42669677734375, - 608.2017822265625 - ], - "bbox": [ - 403.42669677734375, - 604.15576171875, - 406.0169982910156, - 609.43994140625 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 406.5447998046875, - 606.3308715820312 - ], - "bbox": [ - 406.5447998046875, - 599.9387817382812, - 410.9443359375, - 608.7378540039062 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 410.91009521484375, - 608.2017822265625 - ], - "bbox": [ - 410.91009521484375, - 604.15576171875, - 415.7643127441406, - 609.43994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.07867431640625, - 599.9384765625, - 415.7643127441406, - 614.563720703125 - ] - } - ] - }, - { - "number": 37, - "type": 0, - "bbox": [ - 422.02191162109375, - 593.811767578125, - 452.7886047363281, - 619.4656372070312 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 422.02191162109375, - 600.945068359375 - ], - "bbox": [ - 422.02191162109375, - 594.305908203125, - 426.00701904296875, - 603.6788330078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 426.046875, - 600.945068359375 - ], - "bbox": [ - 426.046875, - 593.811767578125, - 430.031982421875, - 602.8499755859375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 430.0155944824219, - 602.1356811523438 - ], - "bbox": [ - 430.0155944824219, - 598.0896606445312, - 432.60589599609375, - 603.3738403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.02191162109375, - 593.811767578125, - 432.60589599609375, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 423.7793884277344, - 611.8302001953125 - ], - "bbox": [ - 423.7793884277344, - 605.1910400390625, - 427.7644958496094, - 614.56396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 427.74774169921875, - 611.8302001953125 - ], - "bbox": [ - 427.74774169921875, - 604.6968994140625, - 431.3104248046875, - 613.735107421875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 431.3104248046875, - 611.8302001953125 - ], - "bbox": [ - 431.3104248046875, - 600.1937255859375, - 434.83404541015625, - 619.4656372070312 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 434.83404541015625, - 606.3307495117188 - ], - "bbox": [ - 434.83404541015625, - 600.1937255859375, - 440.9710998535156, - 613.9661865234375 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " o", - "origin": [ - 440.9710998535156, - 606.3307495117188 - ], - "bbox": [ - 440.9710998535156, - 594.305908203125, - 446.7566223144531, - 609.0645141601562 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 446.7398681640625, - 600.945068359375 - ], - "bbox": [ - 446.7398681640625, - 593.811767578125, - 450.22283935546875, - 602.8499755859375 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 450.19830322265625, - 602.1356811523438 - ], - "bbox": [ - 450.19830322265625, - 598.0896606445312, - 452.7886047363281, - 603.3738403320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.7793884277344, - 593.811767578125, - 452.7886047363281, - 619.4656372070312 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 444.1888122558594, - 611.8302001953125 - ], - "bbox": [ - 444.1888122558594, - 605.1910400390625, - 448.1739196777344, - 614.56396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 448.15716552734375, - 611.8302001953125 - ], - "bbox": [ - 448.15716552734375, - 604.6968994140625, - 451.4727783203125, - 613.735107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.1888122558594, - 604.6968994140625, - 451.4727783203125, - 614.56396484375 - ] - } - ] - }, - { - "number": 38, - "type": 0, - "bbox": [ - 394.922607421875, - 588.968505859375, - 479.83111572265625, - 618.681396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 416.2388916015625, - 595.1055297851562 - ], - "bbox": [ - 416.2388916015625, - 588.968505859375, - 422.0491638183594, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 416.2388916015625, - 588.968505859375, - 422.0491638183594, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 453.2596740722656, - 595.1055297851562 - ], - "bbox": [ - 453.2596740722656, - 588.968505859375, - 459.0699462890625, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.2596740722656, - 588.968505859375, - 459.0699462890625, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 394.922607421875, - 595.1055297851562 - ], - "bbox": [ - 394.922607421875, - 588.968505859375, - 399.0671081542969, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 394.922607421875, - 588.968505859375, - 399.0671081542969, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 459.0994567871094, - 595.1055297851562 - ], - "bbox": [ - 459.0994567871094, - 588.968505859375, - 463.24395751953125, - 618.681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.0994567871094, - 588.968505859375, - 463.24395751953125, - 618.681396484375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 464.9949951171875, - 606.3307495117188 - ], - "bbox": [ - 464.9949951171875, - 600.1937255859375, - 471.1320495605469, - 613.9661865234375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " b", - "origin": [ - 471.1320495605469, - 606.3307495117188 - ], - "bbox": [ - 471.1320495605469, - 599.9386596679688, - 477.274658203125, - 608.7377319335938 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 477.2408142089844, - 608.2017822265625 - ], - "bbox": [ - 477.2408142089844, - 604.15576171875, - 479.83111572265625, - 609.43994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 464.9949951171875, - 599.9386596679688, - 479.83111572265625, - 613.9661865234375 - ] - } - ] - }, - { - "number": 39, - "type": 0, - "bbox": [ - 481.66290283203125, - 593.811767578125, - 554.0987548828125, - 619.4653930664062 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 481.66290283203125, - 600.945068359375 - ], - "bbox": [ - 481.66290283203125, - 594.305908203125, - 485.64801025390625, - 603.6788330078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "p", - "origin": [ - 485.6312561035156, - 600.945068359375 - ], - "bbox": [ - 485.6312561035156, - 593.811767578125, - 489.448974609375, - 602.8499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.66290283203125, - 593.811767578125, - 489.448974609375, - 603.6788330078125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 481.8892517089844, - 611.8299560546875 - ], - "bbox": [ - 481.8892517089844, - 605.1907958984375, - 485.8743591308594, - 614.563720703125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 485.85760498046875, - 611.8299560546875 - ], - "bbox": [ - 485.85760498046875, - 604.6966552734375, - 489.4202880859375, - 613.73486328125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 489.4202880859375, - 611.8299560546875 - ], - "bbox": [ - 489.4202880859375, - 600.1935424804688, - 491.41363525390625, - 619.4653930664062 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 491.41363525390625, - 606.33056640625 - ], - "bbox": [ - 491.41363525390625, - 600.1935424804688, - 497.5506896972656, - 613.9660034179688 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " W", - "origin": [ - 497.5506896972656, - 606.33056640625 - ], - "bbox": [ - 497.5506896972656, - 599.197265625, - 505.1040344238281, - 608.2354736328125 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 505.1040344238281, - 606.33056640625 - ], - "bbox": [ - 505.1040344238281, - 601.6939086914062, - 509.1502380371094, - 608.7596435546875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 509.1590270996094, - 607.521484375 - ], - "bbox": [ - 509.1590270996094, - 603.4754638671875, - 511.74932861328125, - 608.7596435546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 511.74932861328125, - 607.521484375 - ], - "bbox": [ - 511.74932861328125, - 600.19384765625, - 520.1148071289062, - 615.1569213867188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " R", - "origin": [ - 520.1148071289062, - 606.3308715820312 - ], - "bbox": [ - 520.1148071289062, - 599.1975708007812, - 526.7515869140625, - 608.2357788085938 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 526.7904052734375, - 607.521484375 - ], - "bbox": [ - 526.7904052734375, - 602.8848266601562, - 529.1061401367188, - 608.7596435546875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 529.0579833984375, - 607.521484375 - ], - "bbox": [ - 529.0579833984375, - 603.4754638671875, - 531.6482543945312, - 608.7596435546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 531.6482543945312, - 607.521484375 - ], - "bbox": [ - 531.6482543945312, - 600.19384765625, - 540.0707397460938, - 615.1569213867188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " _", - "origin": [ - 540.0707397460938, - 606.3308715820312 - ], - "bbox": [ - 540.0707397460938, - 600.3532104492188, - 545.7798461914062, - 608.3234252929688 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "mu", - "origin": [ - 541.8138427734375, - 606.3308715820312 - ], - "bbox": [ - 541.8138427734375, - 599.1975708007812, - 551.5215454101562, - 608.2357788085938 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 551.5084838867188, - 607.521484375 - ], - "bbox": [ - 551.5084838867188, - 603.4754638671875, - 554.0987548828125, - 608.7596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.8892517089844, - 599.197265625, - 554.0987548828125, - 619.4653930664062 - ] - } - ] - }, - { - "number": 40, - "type": 0, - "bbox": [ - 42.51969909667969, - 628.908935546875, - 231.4086151123047, - 637.9313354492188 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Gas-phase", - "origin": [ - 42.51969909667969, - 635.301025390625 - ], - "bbox": [ - 42.51969909667969, - 629.0762939453125, - 78.11461639404297, - 637.2059326171875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 78.11461639404297, - 635.301025390625 - ], - "bbox": [ - 78.11461639404297, - 629.3212890625, - 84.65894317626953, - 637.29150390625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 84.64220428466797, - 635.301025390625 - ], - "bbox": [ - 84.64220428466797, - 629.0762939453125, - 158.7332000732422, - 637.2059326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 629.0762939453125, - 158.7332000732422, - 637.29150390625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 191.168701171875, - 635.301025390625 - ], - "bbox": [ - 191.168701171875, - 629.3212890625, - 194.65167236328125, - 637.29150390625 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 194.62669372558594, - 636.66162109375 - ], - "bbox": [ - 194.62669372558594, - 632.5123901367188, - 197.61538696289062, - 637.9313354492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.168701171875, - 629.3212890625, - 197.61538696289062, - 637.9313354492188 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 221.44239807128906, - 635.301025390625 - ], - "bbox": [ - 221.44239807128906, - 628.908935546875, - 225.84194946289062, - 637.7080078125 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 225.80780029296875, - 636.66162109375 - ], - "bbox": [ - 225.80780029296875, - 632.5123901367188, - 231.4086151123047, - 637.9313354492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44239807128906, - 628.908935546875, - 231.4086151123047, - 637.9313354492188 - ] - } - ] - }, - { - "number": 41, - "type": 0, - "bbox": [ - 260.39068603515625, - 623.2760009765625, - 291.7770080566406, - 643.5338745117188 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 262.2047119140625, - 629.9151611328125 - ], - "bbox": [ - 262.2047119140625, - 623.2760009765625, - 266.1898193359375, - 632.64892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 262.2047119140625, - 623.2760009765625, - 266.1898193359375, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 260.39068603515625, - 640.8001098632812 - ], - "bbox": [ - 260.39068603515625, - 634.1609497070312, - 264.37579345703125, - 643.5338745117188 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 264.4156494140625, - 640.8001098632812 - ], - "bbox": [ - 264.4156494140625, - 633.6668090820312, - 267.97833251953125, - 642.7050170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.39068603515625, - 633.6668090820312, - 267.97833251953125, - 643.5338745117188 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 275.0741882324219, - 635.3572387695312 - ], - "bbox": [ - 275.0741882324219, - 628.9651489257812, - 279.4737243652344, - 637.7642211914062 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 279.4393005371094, - 637.171875 - ], - "bbox": [ - 279.4393005371094, - 633.1258544921875, - 282.02960205078125, - 638.4100341796875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 282.5574035644531, - 635.357666015625 - ], - "bbox": [ - 282.5574035644531, - 628.965576171875, - 286.9569396972656, - 637.7646484375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 286.92279052734375, - 637.171875 - ], - "bbox": [ - 286.92279052734375, - 633.1258544921875, - 291.7770080566406, - 638.4100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.0741882324219, - 628.9651489257812, - 291.7770080566406, - 638.4100341796875 - ] - } - ] - }, - { - "number": 42, - "type": 0, - "bbox": [ - 293.61248779296875, - 622.7818603515625, - 304.1398010253906, - 643.533935546875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 293.61248779296875, - 629.9151611328125 - ], - "bbox": [ - 293.61248779296875, - 623.2760009765625, - 297.59759521484375, - 632.64892578125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 297.5808410644531, - 629.9151611328125 - ], - "bbox": [ - 297.5808410644531, - 622.7818603515625, - 301.5659484863281, - 631.820068359375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 301.54949951171875, - 631.105712890625 - ], - "bbox": [ - 301.54949951171875, - 627.0596923828125, - 304.1398010253906, - 632.3438720703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 293.61248779296875, - 622.7818603515625, - 304.1398010253906, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 295.256591796875, - 640.8001708984375 - ], - "bbox": [ - 295.256591796875, - 634.1610107421875, - 299.24169921875, - 643.533935546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 299.2249450683594, - 640.8001708984375 - ], - "bbox": [ - 299.2249450683594, - 633.6668701171875, - 302.5405578613281, - 642.705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.256591796875, - 633.6668701171875, - 302.5405578613281, - 643.533935546875 - ] - } - ] - }, - { - "number": 43, - "type": 0, - "bbox": [ - 269.291259765625, - 617.9950561523438, - 351.64471435546875, - 647.7079467773438 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 269.291259765625, - 624.132080078125 - ], - "bbox": [ - 269.291259765625, - 617.9950561523438, - 275.1015319824219, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 269.291259765625, - 617.9950561523438, - 275.1015319824219, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 304.6112060546875, - 624.132080078125 - ], - "bbox": [ - 304.6112060546875, - 617.9950561523438, - 310.4214782714844, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.6112060546875, - 617.9950561523438, - 310.4214782714844, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 312.2076110839844, - 635.3573608398438 - ], - "bbox": [ - 312.2076110839844, - 629.2203369140625, - 318.34466552734375, - 642.9927978515625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " ", - "origin": [ - 318.34466552734375, - 635.3573608398438 - ], - "bbox": [ - 318.34466552734375, - 623.2760009765625, - 321.9590148925781, - 638.0911254882812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 321.9590148925781, - 629.9151611328125 - ], - "bbox": [ - 321.9590148925781, - 623.2760009765625, - 325.9441223144531, - 632.64892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.2076110839844, - 623.2760009765625, - 325.9441223144531, - 642.9927978515625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 320.0884094238281, - 640.8001098632812 - ], - "bbox": [ - 320.0884094238281, - 634.1609497070312, - 324.0735168457031, - 643.5338745117188 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 324.0567626953125, - 640.8001098632812 - ], - "bbox": [ - 324.0567626953125, - 633.6668090820312, - 327.37237548828125, - 642.7050170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.0884094238281, - 633.6668090820312, - 327.37237548828125, - 643.5338745117188 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 334.88507080078125, - 635.3572387695312 - ], - "bbox": [ - 334.88507080078125, - 628.9651489257812, - 339.28460693359375, - 637.7642211914062 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 339.3070068359375, - 637.171875 - ], - "bbox": [ - 339.3070068359375, - 633.1258544921875, - 341.8973083496094, - 638.4100341796875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 342.368408203125, - 635.357666015625 - ], - "bbox": [ - 342.368408203125, - 628.965576171875, - 346.7679443359375, - 637.7646484375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 346.7904968261719, - 637.171875 - ], - "bbox": [ - 346.7904968261719, - 633.1258544921875, - 351.64471435546875, - 638.4100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.88507080078125, - 628.9651489257812, - 351.64471435546875, - 638.4100341796875 - ] - } - ] - }, - { - "number": 44, - "type": 0, - "bbox": [ - 353.4234924316406, - 622.7818603515625, - 363.497314453125, - 643.533935546875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 353.4234924316406, - 629.9151611328125 - ], - "bbox": [ - 353.4234924316406, - 623.2760009765625, - 357.4085998535156, - 632.64892578125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 357.391845703125, - 629.9151611328125 - ], - "bbox": [ - 357.391845703125, - 622.7818603515625, - 360.87481689453125, - 631.820068359375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 360.9070129394531, - 631.105712890625 - ], - "bbox": [ - 360.9070129394531, - 627.0596923828125, - 363.497314453125, - 632.3438720703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 353.4234924316406, - 622.7818603515625, - 363.497314453125, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 354.8409118652344, - 640.8001708984375 - ], - "bbox": [ - 354.8409118652344, - 634.1610107421875, - 358.8260192871094, - 643.533935546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 358.80926513671875, - 640.8001708984375 - ], - "bbox": [ - 358.80926513671875, - 633.6668701171875, - 362.1248779296875, - 642.705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 354.8409118652344, - 633.6668701171875, - 362.1248779296875, - 643.533935546875 - ] - } - ] - }, - { - "number": 45, - "type": 0, - "bbox": [ - 329.1019287109375, - 617.9950561523438, - 383.4306945800781, - 647.7079467773438 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 329.1019287109375, - 624.132080078125 - ], - "bbox": [ - 329.1019287109375, - 617.9950561523438, - 334.9122009277344, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 329.1019287109375, - 617.9950561523438, - 334.9122009277344, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 363.9683532714844, - 624.132080078125 - ], - "bbox": [ - 363.9683532714844, - 617.9950561523438, - 369.77862548828125, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.9683532714844, - 617.9950561523438, - 369.77862548828125, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 371.5081787109375, - 635.3573608398438 - ], - "bbox": [ - 371.5081787109375, - 629.2203369140625, - 377.6452331542969, - 642.9927978515625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 377.6452331542969, - 635.3573608398438 - ], - "bbox": [ - 377.6452331542969, - 623.6904296875, - 379.4455871582031, - 637.2622680664062 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 379.4455871582031, - 629.9151611328125 - ], - "bbox": [ - 379.4455871582031, - 623.6904296875, - 383.4306945800781, - 631.820068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.5081787109375, - 623.6904296875, - 383.4306945800781, - 642.9927978515625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "3", - "origin": [ - 379.4455871582031, - 640.8001098632812 - ], - "bbox": [ - 379.4455871582031, - 634.5753784179688, - 383.4306945800781, - 642.7050170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 379.4455871582031, - 634.5753784179688, - 383.4306945800781, - 642.7050170898438 - ] - } - ] - }, - { - "number": 46, - "type": 0, - "bbox": [ - 386.0787658691406, - 623.2760009765625, - 415.9344177246094, - 643.5338745117188 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 387.8927917480469, - 629.9151611328125 - ], - "bbox": [ - 387.8927917480469, - 623.2760009765625, - 391.8778991699219, - 632.64892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 387.8927917480469, - 623.2760009765625, - 391.8778991699219, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 386.0787658691406, - 640.8001098632812 - ], - "bbox": [ - 386.0787658691406, - 634.1609497070312, - 390.0638732910156, - 643.5338745117188 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 390.047119140625, - 640.8001098632812 - ], - "bbox": [ - 390.047119140625, - 633.6668090820312, - 393.36273193359375, - 642.7050170898438 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " ", - "origin": [ - 393.36273193359375, - 640.8001098632812 - ], - "bbox": [ - 393.36273193359375, - 628.9651489257812, - 399.2311706542969, - 643.2070922851562 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 399.2311706542969, - 635.3572387695312 - ], - "bbox": [ - 399.2311706542969, - 628.9651489257812, - 403.6307067871094, - 637.7642211914062 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 403.5967102050781, - 637.171875 - ], - "bbox": [ - 403.5967102050781, - 633.1258544921875, - 406.18701171875, - 638.4100341796875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 406.7148132324219, - 635.357666015625 - ], - "bbox": [ - 406.7148132324219, - 628.965576171875, - 411.1143493652344, - 637.7646484375 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 411.0802001953125, - 637.171875 - ], - "bbox": [ - 411.0802001953125, - 633.1258544921875, - 415.9344177246094, - 638.4100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 386.0787658691406, - 628.9651489257812, - 415.9344177246094, - 643.5338745117188 - ] - } - ] - }, - { - "number": 47, - "type": 0, - "bbox": [ - 422.1919860839844, - 622.7818603515625, - 452.9587097167969, - 648.4356079101562 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 422.1919860839844, - 629.9151611328125 - ], - "bbox": [ - 422.1919860839844, - 623.2760009765625, - 426.1770935058594, - 632.64892578125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 426.16033935546875, - 629.9151611328125 - ], - "bbox": [ - 426.16033935546875, - 622.7818603515625, - 430.14544677734375, - 631.820068359375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 430.1856994628906, - 631.105712890625 - ], - "bbox": [ - 430.1856994628906, - 627.0596923828125, - 432.7760009765625, - 632.3438720703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.1919860839844, - 622.7818603515625, - 432.7760009765625, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 423.9494934082031, - 640.8001708984375 - ], - "bbox": [ - 423.9494934082031, - 634.1610107421875, - 427.9346008300781, - 643.533935546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 427.9178466796875, - 640.8001708984375 - ], - "bbox": [ - 427.9178466796875, - 633.6668701171875, - 431.48052978515625, - 642.705078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 431.48052978515625, - 640.8001708984375 - ], - "bbox": [ - 431.48052978515625, - 629.2202758789062, - 435.004150390625, - 648.4356079101562 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 435.004150390625, - 635.3572998046875 - ], - "bbox": [ - 435.004150390625, - 629.2202758789062, - 441.1412048339844, - 642.9927368164062 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": " o", - "origin": [ - 441.1412048339844, - 635.3572998046875 - ], - "bbox": [ - 441.1412048339844, - 623.2760009765625, - 446.8699951171875, - 638.091064453125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 446.90985107421875, - 629.9151611328125 - ], - "bbox": [ - 446.90985107421875, - 622.7818603515625, - 450.392822265625, - 631.820068359375 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 450.368408203125, - 631.105712890625 - ], - "bbox": [ - 450.368408203125, - 627.0596923828125, - 452.9587097167969, - 632.3438720703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.9494934082031, - 622.7818603515625, - 452.9587097167969, - 648.4356079101562 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 444.30218505859375, - 640.8001708984375 - ], - "bbox": [ - 444.30218505859375, - 634.1610107421875, - 448.28729248046875, - 643.533935546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 448.3271484375, - 640.8001708984375 - ], - "bbox": [ - 448.3271484375, - 633.6668701171875, - 451.64276123046875, - 642.705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 444.30218505859375, - 633.6668701171875, - 451.64276123046875, - 643.533935546875 - ] - } - ] - }, - { - "number": 48, - "type": 0, - "bbox": [ - 395.09259033203125, - 617.9950561523438, - 480.0011901855469, - 647.7079467773438 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 416.40887451171875, - 624.132080078125 - ], - "bbox": [ - 416.40887451171875, - 617.9950561523438, - 422.2191467285156, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 416.40887451171875, - 617.9950561523438, - 422.2191467285156, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 453.4296569824219, - 624.132080078125 - ], - "bbox": [ - 453.4296569824219, - 617.9950561523438, - 459.23992919921875, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 453.4296569824219, - 617.9950561523438, - 459.23992919921875, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 395.09259033203125, - 624.132080078125 - ], - "bbox": [ - 395.09259033203125, - 617.9950561523438, - 399.2370910644531, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.09259033203125, - 617.9950561523438, - 399.2370910644531, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E46", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -2.9579999446868896, - "text": "�", - "origin": [ - 459.2128601074219, - 624.132080078125 - ], - "bbox": [ - 459.2128601074219, - 617.9950561523438, - 463.35736083984375, - 647.7079467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.2128601074219, - 617.9950561523438, - 463.35736083984375, - 647.7079467773438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 465.16497802734375, - 635.3573608398438 - ], - "bbox": [ - 465.16497802734375, - 629.2203369140625, - 471.3020324707031, - 642.9927978515625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " b", - "origin": [ - 471.3020324707031, - 635.3573608398438 - ], - "bbox": [ - 471.3020324707031, - 628.9652709960938, - 477.44464111328125, - 637.7643432617188 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 477.410888671875, - 637.171875 - ], - "bbox": [ - 477.410888671875, - 633.1258544921875, - 480.0011901855469, - 638.4100341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 465.16497802734375, - 628.9652709960938, - 480.0011901855469, - 642.9927978515625 - ] - } - ] - }, - { - "number": 49, - "type": 0, - "bbox": [ - 481.8328857421875, - 622.7818603515625, - 553.9853515625, - 648.435546875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 481.8328857421875, - 629.9151611328125 - ], - "bbox": [ - 481.8328857421875, - 623.2760009765625, - 485.8179931640625, - 632.64892578125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "p", - "origin": [ - 485.8012390136719, - 629.9151611328125 - ], - "bbox": [ - 485.8012390136719, - 622.7818603515625, - 489.61895751953125, - 631.820068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.8328857421875, - 622.7818603515625, - 489.61895751953125, - 632.64892578125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 481.946044921875, - 640.8001098632812 - ], - "bbox": [ - 481.946044921875, - 634.1609497070312, - 485.93115234375, - 643.5338745117188 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 485.9143981933594, - 640.8001098632812 - ], - "bbox": [ - 485.9143981933594, - 633.6668090820312, - 489.2300109863281, - 642.7050170898438 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 489.2300109863281, - 640.8001098632812 - ], - "bbox": [ - 489.2300109863281, - 629.22021484375, - 491.5835876464844, - 648.435546875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 491.5835876464844, - 635.3572387695312 - ], - "bbox": [ - 491.5835876464844, - 629.22021484375, - 497.72064208984375, - 642.99267578125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " W", - "origin": [ - 497.72064208984375, - 635.3572387695312 - ], - "bbox": [ - 497.72064208984375, - 628.2239379882812, - 505.27398681640625, - 637.2621459960938 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 505.27398681640625, - 635.3572387695312 - ], - "bbox": [ - 505.27398681640625, - 630.7205810546875, - 509.15972900390625, - 637.7864379882812 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 509.3856201171875, - 636.5482788085938 - ], - "bbox": [ - 509.3856201171875, - 632.5022583007812, - 511.9759216308594, - 637.7864379882812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 511.9759216308594, - 636.5482788085938 - ], - "bbox": [ - 511.9759216308594, - 629.2206420898438, - 520.3983154296875, - 644.1837158203125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " R", - "origin": [ - 520.3983154296875, - 635.357666015625 - ], - "bbox": [ - 520.3983154296875, - 628.224365234375, - 527.0350952148438, - 637.2625732421875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 527.0172119140625, - 636.5482788085938 - ], - "bbox": [ - 527.0172119140625, - 631.91162109375, - 529.17236328125, - 637.7864379882812 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 529.4552001953125, - 636.5482788085938 - ], - "bbox": [ - 529.4552001953125, - 632.5022583007812, - 532.0454711914062, - 637.7864379882812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 532.0454711914062, - 636.5482788085938 - ], - "bbox": [ - 532.0454711914062, - 629.2206420898438, - 540.4676513671875, - 644.1837158203125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " _", - "origin": [ - 540.4676513671875, - 635.357666015625 - ], - "bbox": [ - 540.4676513671875, - 629.3234252929688, - 546.1201782226562, - 637.3502197265625 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "mv", - "origin": [ - 542.2107543945312, - 635.357666015625 - ], - "bbox": [ - 542.2107543945312, - 628.224365234375, - 551.4163208007812, - 637.2625732421875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 551.3950805664062, - 636.5482788085938 - ], - "bbox": [ - 551.3950805664062, - 632.5022583007812, - 553.9853515625, - 637.7864379882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 481.946044921875, - 628.2239379882812, - 553.9853515625, - 648.435546875 - ] - } - ] - }, - { - "number": 50, - "type": 0, - "bbox": [ - 42.51969909667969, - 662.0148315429688, - 272.33416748046875, - 676.1021728515625 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Liquid-phase", - "origin": [ - 42.51969909667969, - 668.2395629882812 - ], - "bbox": [ - 42.51969909667969, - 662.0148315429688, - 87.2237548828125, - 670.1444702148438 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 87.2237548828125, - 668.2395629882812 - ], - "bbox": [ - 87.2237548828125, - 662.2598266601562, - 94.25825500488281, - 670.2300415039062 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 94.28057098388672, - 668.2395629882812 - ], - "bbox": [ - 94.28057098388672, - 662.0148315429688, - 168.37155151367188, - 670.1444702148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 662.0148315429688, - 168.37155151367188, - 670.2300415039062 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 191.168701171875, - 668.2395629882812 - ], - "bbox": [ - 191.168701171875, - 662.2598266601562, - 195.15380859375, - 670.2300415039062 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 195.13690185546875, - 669.54345703125 - ], - "bbox": [ - 195.13690185546875, - 665.3942260742188, - 196.75079345703125, - 670.8131713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.168701171875, - 662.2598266601562, - 196.75079345703125, - 670.8131713867188 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "0", - "origin": [ - 221.44239807128906, - 668.2395629882812 - ], - "bbox": [ - 221.44239807128906, - 662.0148315429688, - 225.42750549316406, - 670.1444702148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44239807128906, - 662.0148315429688, - 225.42750549316406, - 670.1444702148438 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 260.390380859375, - 668.4667358398438 - ], - "bbox": [ - 260.390380859375, - 662.3297119140625, - 266.5274353027344, - 676.1021728515625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 266.5696716308594, - 668.4667358398438 - ], - "bbox": [ - 266.5696716308594, - 662.0746459960938, - 270.9692077636719, - 670.8737182617188 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 270.9353942871094, - 670.280517578125 - ], - "bbox": [ - 270.9353942871094, - 666.2344970703125, - 272.33416748046875, - 671.5186767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.390380859375, - 662.0746459960938, - 272.33416748046875, - 676.1021728515625 - ] - } - ] - }, - { - "number": 51, - "type": 0, - "bbox": [ - 274.16680908203125, - 655.8905029296875, - 343.0301818847656, - 681.6007080078125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 274.16680908203125, - 663.0238037109375 - ], - "bbox": [ - 274.16680908203125, - 656.3846435546875, - 278.15191650390625, - 665.757568359375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "p", - "origin": [ - 278.1351623535156, - 663.0238037109375 - ], - "bbox": [ - 278.1351623535156, - 655.8905029296875, - 281.952880859375, - 664.9287109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.16680908203125, - 655.8905029296875, - 281.952880859375, - 665.757568359375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 274.3365783691406, - 673.9652709960938 - ], - "bbox": [ - 274.3365783691406, - 667.3261108398438, - 278.3216857910156, - 676.6990356445312 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 278.3615417480469, - 673.9652709960938 - ], - "bbox": [ - 278.3615417480469, - 666.8319702148438, - 281.9242248535156, - 675.8701782226562 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 281.9242248535156, - 673.9652709960938 - ], - "bbox": [ - 281.9242248535156, - 662.3287963867188, - 283.8609924316406, - 681.6007080078125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 283.8609924316406, - 668.4658203125 - ], - "bbox": [ - 283.8609924316406, - 662.3287963867188, - 289.998046875, - 676.1012573242188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " W", - "origin": [ - 289.998046875, - 668.4658203125 - ], - "bbox": [ - 289.998046875, - 661.33251953125, - 297.5513916015625, - 670.3707275390625 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 297.5513916015625, - 668.4658203125 - ], - "bbox": [ - 297.5513916015625, - 663.8291625976562, - 301.5975341796875, - 670.89501953125 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 301.6063232421875, - 669.6568603515625 - ], - "bbox": [ - 301.6063232421875, - 665.61083984375, - 303.0050964355469, - 670.89501953125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 303.0050964355469, - 669.6568603515625 - ], - "bbox": [ - 303.0050964355469, - 662.329345703125, - 311.4283447265625, - 677.2922973632812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " R", - "origin": [ - 311.4283447265625, - 668.4663696289062 - ], - "bbox": [ - 311.4283447265625, - 661.3330688476562, - 318.06512451171875, - 670.3712768554688 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 318.0470886230469, - 669.6568603515625 - ], - "bbox": [ - 318.0470886230469, - 665.0202026367188, - 320.3628234863281, - 670.89501953125 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 320.3716125488281, - 669.6568603515625 - ], - "bbox": [ - 320.3716125488281, - 665.61083984375, - 321.7703857421875, - 670.89501953125 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " þ", - "origin": [ - 321.7703857421875, - 669.6568603515625 - ], - "bbox": [ - 321.7703857421875, - 662.329345703125, - 330.19366455078125, - 677.2922973632812 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " _", - "origin": [ - 330.19366455078125, - 668.4663696289062 - ], - "bbox": [ - 330.19366455078125, - 662.43212890625, - 335.9027099609375, - 670.4589233398438 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "mu", - "origin": [ - 331.9367370605469, - 668.4663696289062 - ], - "bbox": [ - 331.9367370605469, - 661.3330688476562, - 341.6444396972656, - 670.3712768554688 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 341.63140869140625, - 669.6568603515625 - ], - "bbox": [ - 341.63140869140625, - 665.61083984375, - 343.0301818847656, - 670.89501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.3365783691406, - 661.33251953125, - 343.0301818847656, - 681.6007080078125 - ] - } - ] - }, - { - "number": 52, - "type": 0, - "bbox": [ - 42.51969909667969, - 692.0645751953125, - 272.33416748046875, - 706.0921020507812 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Liquid-phase", - "origin": [ - 42.51969909667969, - 698.7969970703125 - ], - "bbox": [ - 42.51969909667969, - 692.572265625, - 87.2237548828125, - 700.701904296875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 87.2237548828125, - 698.7969970703125 - ], - "bbox": [ - 87.2237548828125, - 692.8172607421875, - 93.84380340576172, - 700.7874755859375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 93.82706451416016, - 698.7969970703125 - ], - "bbox": [ - 93.82706451416016, - 692.572265625, - 167.9180450439453, - 700.701904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 692.572265625, - 167.9180450439453, - 700.7874755859375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 191.1695098876953, - 698.7969970703125 - ], - "bbox": [ - 191.1695098876953, - 692.8172607421875, - 194.65248107910156, - 700.7874755859375 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 194.62669372558594, - 700.1010131835938 - ], - "bbox": [ - 194.62669372558594, - 695.9517822265625, - 196.24058532714844, - 701.3707275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.1695098876953, - 692.8172607421875, - 196.24058532714844, - 701.3707275390625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "0", - "origin": [ - 221.44239807128906, - 698.7969970703125 - ], - "bbox": [ - 221.44239807128906, - 692.572265625, - 225.42750549316406, - 700.701904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44239807128906, - 692.572265625, - 225.42750549316406, - 700.701904296875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 260.390380859375, - 698.4566650390625 - ], - "bbox": [ - 260.390380859375, - 692.3196411132812, - 266.5274353027344, - 706.0921020507812 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 266.5696716308594, - 698.4566650390625 - ], - "bbox": [ - 266.5696716308594, - 692.0645751953125, - 270.9692077636719, - 700.8636474609375 - ] - }, - { - "size": 5.180600166320801, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 270.9353942871094, - 700.2711181640625 - ], - "bbox": [ - 270.9353942871094, - 696.22509765625, - 272.33416748046875, - 701.50927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.390380859375, - 692.0645751953125, - 272.33416748046875, - 706.0921020507812 - ] - } - ] - }, - { - "number": 53, - "type": 0, - "bbox": [ - 274.16680908203125, - 685.881103515625, - 369.4842224121094, - 711.5347290039062 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 274.16680908203125, - 693.014404296875 - ], - "bbox": [ - 274.16680908203125, - 686.375244140625, - 278.15191650390625, - 695.7481689453125 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "p", - "origin": [ - 278.1351623535156, - 693.014404296875 - ], - "bbox": [ - 278.1351623535156, - 685.881103515625, - 281.952880859375, - 694.9193115234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.16680908203125, - 685.881103515625, - 281.952880859375, - 695.7481689453125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMPE2", - "color": 0, - "ascender": 0.8330000042915344, - "descender": -0.34299999475479126, - "text": "o", - "origin": [ - 274.27996826171875, - 703.8992919921875 - ], - "bbox": [ - 274.27996826171875, - 697.2601318359375, - 278.26507568359375, - 706.633056640625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 278.2483215332031, - 703.8992919921875 - ], - "bbox": [ - 278.2483215332031, - 696.7659912109375, - 281.5639343261719, - 705.80419921875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ", - "origin": [ - 281.5639343261719, - 703.8992919921875 - ], - "bbox": [ - 281.5639343261719, - 692.3193969726562, - 283.8609313964844, - 711.5347290039062 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "þ", - "origin": [ - 283.8609313964844, - 698.4564208984375 - ], - "bbox": [ - 283.8609313964844, - 692.3193969726562, - 289.99798583984375, - 706.0918579101562 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " W", - "origin": [ - 289.99798583984375, - 698.4564208984375 - ], - "bbox": [ - 289.99798583984375, - 691.3231201171875, - 297.55133056640625, - 700.361328125 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 297.55133056640625, - 698.4564208984375 - ], - "bbox": [ - 297.55133056640625, - 693.8197631835938, - 301.4369201660156, - 700.8856201171875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 301.71978759765625, - 699.6474609375 - ], - "bbox": [ - 301.71978759765625, - 695.6014404296875, - 303.1185607910156, - 700.8856201171875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 303.1185607910156, - 699.6474609375 - ], - "bbox": [ - 303.1185607910156, - 692.3198852539062, - 311.5416564941406, - 707.2828979492188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": " R", - "origin": [ - 311.5416564941406, - 698.4569091796875 - ], - "bbox": [ - 311.5416564941406, - 691.3236083984375, - 318.1784362792969, - 700.36181640625 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 318.1606140136719, - 699.6474609375 - ], - "bbox": [ - 318.1606140136719, - 695.0108032226562, - 320.31573486328125, - 700.8856201171875 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 320.5986022949219, - 699.6474609375 - ], - "bbox": [ - 320.5986022949219, - 695.6014404296875, - 321.99737548828125, - 700.8856201171875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " þ", - "origin": [ - 321.99737548828125, - 699.6474609375 - ], - "bbox": [ - 321.99737548828125, - 692.3198852539062, - 330.4204406738281, - 707.2828979492188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " _", - "origin": [ - 330.4204406738281, - 698.4569091796875 - ], - "bbox": [ - 330.4204406738281, - 692.422607421875, - 336.0729064941406, - 700.449462890625 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "mv", - "origin": [ - 332.1635437011719, - 698.4569091796875 - ], - "bbox": [ - 332.1635437011719, - 691.3236083984375, - 341.3691101074219, - 700.36181640625 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 341.3479919433594, - 699.6474609375 - ], - "bbox": [ - 341.3479919433594, - 695.6014404296875, - 342.74676513671875, - 700.8856201171875 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " þ", - "origin": [ - 342.74676513671875, - 699.6474609375 - ], - "bbox": [ - 342.74676513671875, - 692.3198852539062, - 351.1700439453125, - 707.2828979492188 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " b", - "origin": [ - 351.1700439453125, - 698.4569091796875 - ], - "bbox": [ - 351.1700439453125, - 692.0648193359375, - 357.3126525878906, - 700.8638916015625 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 357.2786865234375, - 700.2711181640625 - ], - "bbox": [ - 357.2786865234375, - 696.22509765625, - 358.6774597167969, - 701.50927734375 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 359.2062072753906, - 698.4569091796875 - ], - "bbox": [ - 359.2062072753906, - 692.0648193359375, - 363.6057434082031, - 700.8638916015625 - ] - }, - { - "size": 5.180600166320801, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 363.57159423828125, - 700.2711181640625 - ], - "bbox": [ - 363.57159423828125, - 696.22509765625, - 364.9703674316406, - 701.50927734375 - ] - }, - { - "size": 7.970200061798096, - "flags": 5, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 365.4991149902344, - 698.4569091796875 - ], - "bbox": [ - 365.4991149902344, - 691.3236083984375, - 369.4842224121094, - 700.36181640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 274.27996826171875, - 691.3231201171875, - 369.4842224121094, - 711.5347290039062 - ] - } - ] - }, - { - "number": 54, - "type": 0, - "bbox": [ - 42.51873779296875, - 724.4931640625, - 270.5126647949219, - 744.072021484375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Air mass fraction equation", - "origin": [ - 42.51873779296875, - 730.88525390625 - ], - "bbox": [ - 42.51873779296875, - 724.6605224609375, - 135.09181213378906, - 732.7901611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51873779296875, - 724.6605224609375, - 135.09181213378906, - 732.7901611328125 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 191.16775512695312, - 730.88525390625 - ], - "bbox": [ - 191.16775512695312, - 724.4931640625, - 195.5673065185547, - 733.292236328125 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "a", - "origin": [ - 195.53379821777344, - 732.2459106445312 - ], - "bbox": [ - 195.53379821777344, - 728.0966796875, - 198.52249145507812, - 733.515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.16775512695312, - 724.4931640625, - 198.52249145507812, - 733.515625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 221.44239807128906, - 730.8853149414062 - ], - "bbox": [ - 221.44239807128906, - 724.4932250976562, - 225.84194946289062, - 733.2922973632812 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "a", - "origin": [ - 225.80780029296875, - 732.2459106445312 - ], - "bbox": [ - 225.80780029296875, - 728.0966796875, - 228.79649353027344, - 733.515625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 228.8125, - 730.8853149414062 - ], - "bbox": [ - 228.8125, - 724.9055786132812, - 234.94955444335938, - 732.8757934570312 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "e", - "origin": [ - 234.93539428710938, - 732.2459106445312 - ], - "bbox": [ - 234.93539428710938, - 728.0966796875, - 237.54751586914062, - 733.515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.44239807128906, - 724.4932250976562, - 237.54751586914062, - 733.515625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "0.0", - "origin": [ - 260.3905029296875, - 730.8853149414062 - ], - "bbox": [ - 260.3905029296875, - 724.6605834960938, - 270.5126647949219, - 732.7902221679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.3905029296875, - 724.6605834960938, - 270.5126647949219, - 732.7902221679688 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "where", - "origin": [ - 50.5128173828125, - 740.8631591796875 - ], - "bbox": [ - 50.5128173828125, - 734.638427734375, - 70.6694564819336, - 742.76806640625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " l", - "origin": [ - 70.6694564819336, - 740.8631591796875 - ], - "bbox": [ - 70.6694564819336, - 734.4710693359375, - 77.64656829833984, - 743.2701416015625 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "eg", - "origin": [ - 77.66929626464844, - 742.1671142578125 - ], - "bbox": [ - 77.66929626464844, - 738.0178833007812, - 83.2701187133789, - 743.4368286132812 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " =", - "origin": [ - 83.2701187133789, - 742.1671142578125 - ], - "bbox": [ - 83.2701187133789, - 734.638427734375, - 91.34645080566406, - 744.072021484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " l", - "origin": [ - 91.34645080566406, - 740.8631591796875 - ], - "bbox": [ - 91.34645080566406, - 734.4710693359375, - 97.7728271484375, - 743.2701416015625 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 97.73860168457031, - 742.1671142578125 - ], - "bbox": [ - 97.73860168457031, - 737.939208984375, - 100.72730255126953, - 743.574462890625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " +", - "origin": [ - 100.72730255126953, - 742.1671142578125 - ], - "bbox": [ - 100.72730255126953, - 734.638427734375, - 108.70515441894531, - 744.072021484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " l", - "origin": [ - 108.70515441894531, - 740.8631591796875 - ], - "bbox": [ - 108.70515441894531, - 734.4710693359375, - 115.06377410888672, - 743.2701416015625 - ] - }, - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tg", - "origin": [ - 115.08660125732422, - 742.1671142578125 - ], - "bbox": [ - 115.08660125732422, - 738.0178833007812, - 120.0657730102539, - 743.4368286132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.5128173828125, - 734.4710693359375, - 120.0657730102539, - 744.072021484375 - ] - } - ] - }, - { - "number": 55, - "type": 0, - "bbox": [ - 146.09759521484375, - 47.407169342041016, - 562.6314697265625, - 55.62236404418945 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "H.G. Hu, C. Zhang / International Journal of Heat and Mass Transfer 50 (2007) 1641–1648", - "origin": [ - 146.09759521484375, - 53.63189697265625 - ], - "bbox": [ - 146.09759521484375, - 47.652164459228516, - 459.0693664550781, - 55.62236404418945 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.09759521484375, - 47.652164459228516, - 459.0693664550781, - 55.62236404418945 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1643", - "origin": [ - 546.6910400390625, - 53.63189697265625 - ], - "bbox": [ - 546.6910400390625, - 47.407169342041016, - 562.6314697265625, - 55.536773681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 546.6910400390625, - 47.407169342041016, - 562.6314697265625, - 55.536773681640625 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 55, - "type": 0, - "bbox": [ - 146.09759521484375, - 47.407169342041016, - 562.6314697265625, - 55.62236404418945 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "H.G. Hu, C. Zhang / International Journal of Heat and Mass Transfer 50 (2007) 1641–1648", - "origin": [ - 146.09759521484375, - 53.63189697265625 - ], - "bbox": [ - 146.09759521484375, - 47.652164459228516, - 459.0693664550781, - 55.62236404418945 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 146.09759521484375, - 47.652164459228516, - 459.0693664550781, - 55.62236404418945 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1643", - "origin": [ - 546.6910400390625, - 53.63189697265625 - ], - "bbox": [ - 546.6910400390625, - 47.407169342041016, - 562.6314697265625, - 55.536773681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 546.6910400390625, - 47.407169342041016, - 562.6314697265625, - 55.536773681640625 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.2760009765625, - 793.7009887695312 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\345\233\276\346\263\250\345\234\250\344\276\247\350\276\271\346\255\243\346\226\207_10.1002_mrm.24141 9.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\345\233\276\346\263\250\345\234\250\344\276\247\350\276\271\346\255\243\346\226\207_10.1002_mrm.24141 9.pdf/preproc_out.json" deleted file mode 100644 index 5c8747286..000000000 --- "a/tests/assets/pre_proc_results/\345\233\276\346\263\250\345\234\250\344\276\247\350\276\271\346\255\243\346\226\207_10.1002_mrm.24141 9.pdf/preproc_out.json" +++ /dev/null @@ -1,6470 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 60.49129867553711, - 601.3349609375, - 300.6086120605469, - 755.1424560546875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "and which is not surprising considering the myelin-axon", - "origin": [ - 60.49129867553711, - 608.0599365234375 - ], - "bbox": [ - 60.49129867553711, - 601.3349609375, - 300.5950622558594, - 610.3349609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 601.3349609375, - 300.5950622558594, - 610.3349609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fiber bundle structure. Second, it is often assumed in the", - "origin": [ - 60.49129867553711, - 619.0579223632812 - ], - "bbox": [ - 60.49129867553711, - 612.3329467773438, - 300.49700927734375, - 621.3329467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 612.3329467773438, - 300.49700927734375, - 621.3329467773438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "biomedical field that human tissue is incompressible,", - "origin": [ - 60.49129867553711, - 630.055908203125 - ], - "bbox": [ - 60.49129867553711, - 623.3309326171875, - 300.50872802734375, - 632.3309326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 623.3309326171875, - 300.50872802734375, - 632.3309326171875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "implying that Poisson’s ratio is on the order of 0.5, and", - "origin": [ - 60.49129867553711, - 641.0538940429688 - ], - "bbox": [ - 60.49129867553711, - 634.3289184570312, - 300.5041198730469, - 643.3289184570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 634.3289184570312, - 300.5041198730469, - 643.3289184570312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "that the longitudinal (compressional) wave velocity in", - "origin": [ - 60.49129867553711, - 652.0518798828125 - ], - "bbox": [ - 60.49129867553711, - 645.326904296875, - 300.607666015625, - 654.326904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 645.326904296875, - 300.607666015625, - 654.326904296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "such media is on the order of that of water (", - "origin": [ - 60.49129867553711, - 663.0499267578125 - ], - "bbox": [ - 60.49129867553711, - 656.324951171875, - 248.76498413085938, - 665.324951171875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 248.7119140625, - 663.0499267578125 - ], - "bbox": [ - 248.7119140625, - 656.1199340820312, - 255.64190673828125, - 671.6719360351562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 1500 m/s)", - "origin": [ - 255.64190673828125, - 663.0499267578125 - ], - "bbox": [ - 255.64190673828125, - 656.324951171875, - 300.5770263671875, - 665.324951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 656.1199340820312, - 300.5770263671875, - 671.6719360351562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "(27). While this is true for free space, this is not the situa-", - "origin": [ - 60.49220275878906, - 674.0479125976562 - ], - "bbox": [ - 60.49220275878906, - 667.3229370117188, - 300.46728515625, - 676.3229370117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 667.3229370117188, - 300.46728515625, - 676.3229370117188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tion for propagation in a waveguide wherein boundary", - "origin": [ - 60.49220275878906, - 685.0458984375 - ], - "bbox": [ - 60.49220275878906, - 678.3209228515625, - 300.5761413574219, - 687.3209228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 678.3209228515625, - 300.5761413574219, - 687.3209228515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "effects dominate. If indeed the CST acts as a waveguide,", - "origin": [ - 60.49220275878906, - 696.0439453125 - ], - "bbox": [ - 60.49220275878906, - 689.3189697265625, - 300.59149169921875, - 698.3189697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 689.3189697265625, - 300.59149169921875, - 698.3189697265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "it was questioned if there was a simple relationship", - "origin": [ - 60.49220275878906, - 707.0419311523438 - ], - "bbox": [ - 60.49220275878906, - 700.3169555664062, - 300.6086120605469, - 709.3169555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 700.3169555664062, - 300.6086120605469, - 709.3169555664062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "between the longitudinal and shear wave velocities which", - "origin": [ - 60.49220275878906, - 718.0399169921875 - ], - "bbox": [ - 60.49220275878906, - 711.31494140625, - 300.5024719238281, - 720.31494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 711.31494140625, - 300.5024719238281, - 720.31494140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "was dispersive. We investigated a relationship between", - "origin": [ - 60.49220275878906, - 729.0379028320312 - ], - "bbox": [ - 60.49220275878906, - 722.3129272460938, - 300.5032653808594, - 731.3129272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 722.3129272460938, - 300.5032653808594, - 731.3129272460938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "these quantities using the results for a thin, circular rod", - "origin": [ - 60.49220275878906, - 740.5462036132812 - ], - "bbox": [ - 60.49220275878906, - 733.8212280273438, - 300.5032958984375, - 742.8212280273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 733.8212280273438, - 300.5032958984375, - 742.8212280273438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "(32) and found that the longitudinal wave velocity,", - "origin": [ - 60.49220275878906, - 752.0545043945312 - ], - "bbox": [ - 60.49220275878906, - 745.3295288085938, - 283.3690490722656, - 754.3295288085938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " C", - "origin": [ - 283.3690490722656, - 752.0545043945312 - ], - "bbox": [ - 283.3690490722656, - 745.3968505859375, - 293.9944763183594, - 754.3968505859375 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "L", - "origin": [ - 293.89599609375, - 753.5338745117188 - ], - "bbox": [ - 293.89599609375, - 748.7789306640625, - 298.0404357910156, - 755.1424560546875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ",", - "origin": [ - 297.9779052734375, - 752.059814453125 - ], - "bbox": [ - 297.9779052734375, - 745.3348388671875, - 300.50689697265625, - 754.3348388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 745.3295288085938, - 300.50689697265625, - 755.1424560546875 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 312.4903564453125, - 600.751953125, - 552.522216796875, - 621.9105834960938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the shear wave velocity,", - "origin": [ - 312.4913024902344, - 608.059814453125 - ], - "bbox": [ - 312.4913024902344, - 601.3348388671875, - 414.6880798339844, - 610.3348388671875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " C", - "origin": [ - 414.6880798339844, - 608.059814453125 - ], - "bbox": [ - 414.6880798339844, - 601.4021606445312, - 424.6708984375, - 610.4021606445312 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "t", - "origin": [ - 424.5730895996094, - 609.533935546875 - ], - "bbox": [ - 424.5730895996094, - 604.7789916992188, - 426.82080078125, - 611.1425170898438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", and", - "origin": [ - 426.7273864746094, - 608.0599365234375 - ], - "bbox": [ - 426.7273864746094, - 601.3349609375, - 448.5811767578125, - 610.3349609375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " v", - "origin": [ - 448.5811767578125, - 608.0599365234375 - ], - "bbox": [ - 448.5811767578125, - 600.751953125, - 458.5162658691406, - 610.1209106445312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", are related to the ra-", - "origin": [ - 458.5315856933594, - 608.0599365234375 - ], - "bbox": [ - 458.5315856933594, - 601.3349609375, - 552.522216796875, - 610.3349609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 600.751953125, - 552.522216796875, - 611.1425170898438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dius, ‘‘", - "origin": [ - 312.4903564453125, - 619.5682373046875 - ], - "bbox": [ - 312.4903564453125, - 612.84326171875, - 340.0213623046875, - 621.84326171875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "a", - "origin": [ - 339.9295654296875, - 619.5682373046875 - ], - "bbox": [ - 339.9295654296875, - 612.9105834960938, - 344.8975524902344, - 621.9105834960938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ",’’ of a rod through the simple expression", - "origin": [ - 344.80487060546875, - 619.5682373046875 - ], - "bbox": [ - 344.80487060546875, - 612.84326171875, - 514.0398559570312, - 621.84326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4903564453125, - 612.84326171875, - 514.0398559570312, - 621.9105834960938 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 416.74951171875, - 633.5697631835938, - 552.5220336914062, - 656.8680419921875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "2", - "origin": [ - 417.0329895019531, - 641.5654296875 - ], - "bbox": [ - 417.0329895019531, - 634.8404541015625, - 422.0009765625, - 643.8404541015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "C", - "origin": [ - 421.9649963378906, - 641.5654296875 - ], - "bbox": [ - 421.9649963378906, - 634.9077758789062, - 427.958984375, - 643.9077758789062 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "2", - "origin": [ - 428.5982971191406, - 638.2772216796875 - ], - "bbox": [ - 428.5982971191406, - 633.5697631835938, - 432.0758972167969, - 639.8697509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 417.0329895019531, - 633.5697631835938, - 432.0758972167969, - 643.9077758789062 - ] - }, - { - "spans": [ - { - "size": 6.300000190734863, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "t", - "origin": [ - 427.974609375, - 644.0599975585938 - ], - "bbox": [ - 427.974609375, - 639.399658203125, - 430.072509765625, - 645.6996459960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.974609375, - 639.399658203125, - 430.072509765625, - 645.6996459960938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "v", - "origin": [ - 416.74951171875, - 653.86767578125 - ], - "bbox": [ - 416.74951171875, - 646.5596923828125, - 422.7434997558594, - 655.9286499023438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "C", - "origin": [ - 422.7588195800781, - 653.86767578125 - ], - "bbox": [ - 422.7588195800781, - 647.2100219726562, - 428.7528076171875, - 656.2100219726562 - ] - }, - { - "size": 6.300000190734863, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "L", - "origin": [ - 428.7684020996094, - 655.2283935546875 - ], - "bbox": [ - 428.7684020996094, - 650.5680541992188, - 432.2460021972656, - 656.8680419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 416.74951171875, - 646.5596923828125, - 432.2460021972656, - 656.8680419921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "¼", - "origin": [ - 435.34478759765625, - 647.688232421875 - ], - "bbox": [ - 435.34478759765625, - 640.7582397460938, - 442.2747802734375, - 656.3102416992188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " a", - "origin": [ - 442.2747802734375, - 647.688232421875 - ], - "bbox": [ - 442.2747802734375, - 641.0305786132812, - 449.72406005859375, - 650.0305786132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.34478759765625, - 640.7582397460938, - 449.72406005859375, - 656.3102416992188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "½", - "origin": [ - 537.6756591796875, - 647.688232421875 - ], - "bbox": [ - 537.6756591796875, - 640.7582397460938, - 540.1056518554688, - 656.3102416992188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "10", - "origin": [ - 540.11376953125, - 647.688232421875 - ], - "bbox": [ - 540.11376953125, - 640.9632568359375, - 550.0498046875, - 649.9632568359375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 550.092041015625, - 647.688232421875 - ], - "bbox": [ - 550.092041015625, - 640.7582397460938, - 552.5220336914062, - 656.3102416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 537.6756591796875, - 640.7582397460938, - 552.5220336914062, - 656.3102416992188 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 312.4908142089844, - 667.7220458984375, - 552.5145874023438, - 753.709228515625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "For a value of", - "origin": [ - 321.5064392089844, - 674.447021484375 - ], - "bbox": [ - 321.5064392089844, - 667.7220458984375, - 383.3877258300781, - 676.7220458984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " C", - "origin": [ - 383.3877258300781, - 674.447021484375 - ], - "bbox": [ - 383.3877258300781, - 667.7893676757812, - 393.7179260253906, - 676.7893676757812 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "t", - "origin": [ - 393.7322082519531, - 675.97802734375 - ], - "bbox": [ - 393.7322082519531, - 671.2230834960938, - 395.97991943359375, - 677.5866088867188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " on the order of 2.1 m/s,", - "origin": [ - 395.97991943359375, - 675.97802734375 - ], - "bbox": [ - 395.97991943359375, - 667.7222900390625, - 505.8262634277344, - 678.2530517578125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " C", - "origin": [ - 505.8262634277344, - 674.447265625 - ], - "bbox": [ - 505.8262634277344, - 667.7896118164062, - 516.173583984375, - 676.7896118164062 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "L", - "origin": [ - 516.132080078125, - 675.97802734375 - ], - "bbox": [ - 516.132080078125, - 671.2230834960938, - 520.2764892578125, - 677.5866088867188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " on the", - "origin": [ - 520.2764892578125, - 675.97802734375 - ], - "bbox": [ - 520.2764892578125, - 667.7222900390625, - 552.5127563476562, - 678.2530517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.5064392089844, - 667.7220458984375, - 552.5127563476562, - 678.2530517578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "order of 5.7 m/s, and", - "origin": [ - 312.4908142089844, - 685.4461669921875 - ], - "bbox": [ - 312.4908142089844, - 678.72119140625, - 403.84344482421875, - 687.72119140625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " v", - "origin": [ - 403.84344482421875, - 685.4461669921875 - ], - "bbox": [ - 403.84344482421875, - 678.13818359375, - 413.6723937988281, - 687.5071411132812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 413.6723937988281, - 685.4461669921875 - ], - "bbox": [ - 413.6723937988281, - 678.5161743164062, - 424.4732971191406, - 694.0681762695312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 2", - "origin": [ - 424.4732971191406, - 685.4461669921875 - ], - "bbox": [ - 424.4732971191406, - 678.72119140625, - 433.3392028808594, - 687.72119140625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 433.30322265625, - 685.4461669921875 - ], - "bbox": [ - 433.30322265625, - 678.5161743164062, - 435.73321533203125, - 694.0681762695312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "p", - "origin": [ - 435.7413330078125, - 685.4461669921875 - ], - "bbox": [ - 435.7413330078125, - 678.13818359375, - 441.7353210449219, - 687.5071411132812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 441.7506408691406, - 685.4461669921875 - ], - "bbox": [ - 441.7506408691406, - 678.5161743164062, - 444.1806335449219, - 694.0681762695312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "50, we see that the effec-", - "origin": [ - 444.1887512207031, - 685.4461669921875 - ], - "bbox": [ - 444.1887512207031, - 678.72119140625, - 552.5145874023438, - 687.72119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908142089844, - 678.13818359375, - 552.5145874023438, - 694.0681762695312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tive radius of a typical fiber bundle is predicted to be on", - "origin": [ - 312.4908447265625, - 696.4442138671875 - ], - "bbox": [ - 312.4908447265625, - 689.71923828125, - 552.48583984375, - 698.71923828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 689.71923828125, - 552.48583984375, - 698.71923828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the order of 5 mm, which is the average radius of every", - "origin": [ - 312.4908447265625, - 707.4421997070312 - ], - "bbox": [ - 312.4908447265625, - 700.7172241210938, - 552.4857788085938, - 709.7172241210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 700.7172241210938, - 552.4857788085938, - 709.7172241210938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CST in this study as discerned from the DTI data. While", - "origin": [ - 312.4908447265625, - 718.440185546875 - ], - "bbox": [ - 312.4908447265625, - 711.7152099609375, - 552.4965209960938, - 720.7152099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 711.7152099609375, - 552.4965209960938, - 720.7152099609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "this may seem to be a simple and irrelevant coincidence,", - "origin": [ - 312.4908447265625, - 729.438232421875 - ], - "bbox": [ - 312.4908447265625, - 722.7132568359375, - 552.4921264648438, - 731.7132568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 722.7132568359375, - 552.4921264648438, - 731.7132568359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "it is our opinion that it is highly unlikely that the longi-", - "origin": [ - 312.4908447265625, - 740.4362182617188 - ], - "bbox": [ - 312.4908447265625, - 733.7112426757812, - 552.4822998046875, - 742.7112426757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 733.7112426757812, - 552.4822998046875, - 742.7112426757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tudinal and transverse wave velocities would be related", - "origin": [ - 312.4908447265625, - 751.4342041015625 - ], - "bbox": [ - 312.4908447265625, - 744.709228515625, - 552.5038452148438, - 753.709228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 744.709228515625, - 552.5038452148438, - 753.709228515625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 60.49075698852539, - 255.61544799804688, - 180.63963317871094, - 403.6462707519531 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "FIG. 6. Values", - "origin": [ - 60.49129867553711, - 261.94970703125 - ], - "bbox": [ - 60.49129867553711, - 255.61544799804688, - 113.37943267822266, - 263.6153564453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 255.61544799804688, - 113.37943267822266, - 263.6153564453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "from", - "origin": [ - 120.01854705810547, - 261.94970703125 - ], - "bbox": [ - 120.01854705810547, - 255.61544799804688, - 136.30233764648438, - 263.6153564453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 120.01854705810547, - 255.61544799804688, - 136.30233764648438, - 263.6153564453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "the", - "origin": [ - 142.9230499267578, - 261.94970703125 - ], - "bbox": [ - 142.9230499267578, - 255.61544799804688, - 154.16290283203125, - 263.6153564453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.9230499267578, - 255.61544799804688, - 154.16290283203125, - 263.6153564453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "inver-", - "origin": [ - 160.78121948242188, - 261.94970703125 - ], - "bbox": [ - 160.78121948242188, - 255.61544799804688, - 180.58575439453125, - 263.6153564453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 160.78121948242188, - 255.61544799804688, - 180.58575439453125, - 263.6153564453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "sions for longitudinal parameter,", - "origin": [ - 60.49129867553711, - 271.9840087890625 - ], - "bbox": [ - 60.49129867553711, - 265.6497497558594, - 180.60337829589844, - 273.649658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 265.6497497558594, - 180.60337829589844, - 273.649658203125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 60.49129867553711, - 281.9622802734375 - ], - "bbox": [ - 60.49129867553711, - 275.6280212402344, - 66.2352294921875, - 283.6279296875 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "33", - "origin": [ - 66.21730041503906, - 283.3228759765625 - ], - "bbox": [ - 66.21730041503906, - 278.84423828125, - 72.84168243408203, - 284.5005798339844 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ",", - "origin": [ - 72.85040283203125, - 281.9622802734375 - ], - "bbox": [ - 72.85040283203125, - 275.6280212402344, - 75.09837341308594, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 275.6280212402344, - 75.09837341308594, - 284.5005798339844 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "along", - "origin": [ - 81.97828674316406, - 281.9622802734375 - ], - "bbox": [ - 81.97828674316406, - 275.6280212402344, - 101.6180419921875, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.97828674316406, - 275.6280212402344, - 101.6180419921875, - 283.6279296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "the", - "origin": [ - 108.4539566040039, - 281.9622802734375 - ], - "bbox": [ - 108.4539566040039, - 275.6280212402344, - 119.69381713867188, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.4539566040039, - 275.6280212402344, - 119.69381713867188, - 283.6279296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "right", - "origin": [ - 126.59532928466797, - 281.9622802734375 - ], - "bbox": [ - 126.59532928466797, - 275.6280212402344, - 142.49111938476562, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.59532928466797, - 275.6280212402344, - 142.49111938476562, - 283.6279296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "and", - "origin": [ - 149.32943725585938, - 281.9622802734375 - ], - "bbox": [ - 149.32943725585938, - 275.6280212402344, - 162.8172607421875, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 149.32943725585938, - 275.6280212402344, - 162.8172607421875, - 283.6279296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "left", - "origin": [ - 169.68197631835938, - 281.9622802734375 - ], - "bbox": [ - 169.68197631835938, - 275.6280212402344, - 180.5778350830078, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.68197631835938, - 275.6280212402344, - 180.5778350830078, - 283.6279296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "CSTs for all five volunteers.", - "origin": [ - 60.491355895996094, - 291.9405517578125 - ], - "bbox": [ - 60.491355895996094, - 285.6062927246094, - 162.8900604248047, - 293.606201171875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": " a,b:", - "origin": [ - 162.8900604248047, - 291.9405517578125 - ], - "bbox": [ - 162.8900604248047, - 285.5246276855469, - 180.60345458984375, - 293.6045227050781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491355895996094, - 285.5246276855469, - 180.60345458984375, - 293.606201171875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "real components of C", - "origin": [ - 60.491355895996094, - 301.9748229980469 - ], - "bbox": [ - 60.491355895996094, - 295.64056396484375, - 148.44065856933594, - 303.6404724121094 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "33", - "origin": [ - 148.4219970703125, - 303.2789001464844 - ], - "bbox": [ - 148.4219970703125, - 298.8002624511719, - 155.0457763671875, - 304.45660400390625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " along", - "origin": [ - 155.0457763671875, - 303.2789001464844 - ], - "bbox": [ - 155.0457763671875, - 295.6406555175781, - 180.59083557128906, - 304.9445495605469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491355895996094, - 295.64056396484375, - 180.59083557128906, - 304.9445495605469 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "the right and left CSTs, respec-", - "origin": [ - 60.491554260253906, - 311.95318603515625 - ], - "bbox": [ - 60.491554260253906, - 305.6189270019531, - 180.60047912597656, - 313.61883544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491554260253906, - 305.6189270019531, - 180.60047912597656, - 313.61883544921875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "tively;", - "origin": [ - 60.491554260253906, - 321.9874572753906 - ], - "bbox": [ - 60.491554260253906, - 315.6531982421875, - 81.05128479003906, - 323.6531066894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491554260253906, - 315.6531982421875, - 81.05128479003906, - 323.6531066894531 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "(", - "origin": [ - 88.04399871826172, - 321.9874572753906 - ], - "bbox": [ - 88.04399871826172, - 315.6531982421875, - 90.12397003173828, - 323.6531066894531 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "c,d", - "origin": [ - 90.08478546142578, - 321.9874572753906 - ], - "bbox": [ - 90.08478546142578, - 315.571533203125, - 101.82064056396484, - 323.65142822265625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")", - "origin": [ - 101.81983947753906, - 321.9874572753906 - ], - "bbox": [ - 101.81983947753906, - 315.6531982421875, - 103.89981079101562, - 323.6531066894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.04399871826172, - 315.571533203125, - 103.89981079101562, - 323.6531066894531 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "imaginary", - "origin": [ - 110.94772338867188, - 321.9874572753906 - ], - "bbox": [ - 110.94772338867188, - 315.6531982421875, - 145.57928466796875, - 323.6531066894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.94772338867188, - 315.6531982421875, - 145.57928466796875, - 323.6531066894531 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "compo-", - "origin": [ - 152.50399780273438, - 321.9874572753906 - ], - "bbox": [ - 152.50399780273438, - 315.6531982421875, - 180.63963317871094, - 323.6531066894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.50399780273438, - 315.6531982421875, - 180.63963317871094, - 323.6531066894531 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "nents of C", - "origin": [ - 60.49075698852539, - 331.9649353027344 - ], - "bbox": [ - 60.49075698852539, - 325.63067626953125, - 105.01260375976562, - 333.6305847167969 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "33", - "origin": [ - 104.99520111083984, - 333.2694091796875 - ], - "bbox": [ - 104.99520111083984, - 328.790771484375, - 111.61958312988281, - 334.4471130371094 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "; (", - "origin": [ - 111.57160186767578, - 331.96551513671875 - ], - "bbox": [ - 111.57160186767578, - 325.6312561035156, - 122.0418701171875, - 333.63116455078125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "e,f", - "origin": [ - 122.0594711303711, - 331.96551513671875 - ], - "bbox": [ - 122.0594711303711, - 325.5495910644531, - 131.54736328125, - 333.6294860839844 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ") longitudinal", - "origin": [ - 131.52735900878906, - 331.96551513671875 - ], - "bbox": [ - 131.52735900878906, - 325.6312561035156, - 180.5531005859375, - 333.63116455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49075698852539, - 325.5495910644531, - 180.5531005859375, - 334.4471130371094 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "wave", - "origin": [ - 60.491455078125, - 341.94378662109375 - ], - "bbox": [ - 60.491455078125, - 335.6095275878906, - 79.22721862792969, - 343.60943603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491455078125, - 335.6095275878906, - 79.22721862792969, - 343.60943603515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "velocities;", - "origin": [ - 85.88953399658203, - 341.94378662109375 - ], - "bbox": [ - 85.88953399658203, - 335.6095275878906, - 121.42508697509766, - 343.60943603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.88953399658203, - 335.6095275878906, - 121.42508697509766, - 343.60943603515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "(", - "origin": [ - 128.01220703125, - 341.94378662109375 - ], - "bbox": [ - 128.01220703125, - 335.6095275878906, - 130.09217834472656, - 343.60943603515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "g,h", - "origin": [ - 130.1097869873047, - 341.94378662109375 - ], - "bbox": [ - 130.1097869873047, - 335.5278625488281, - 142.01364135742188, - 343.6077575683594 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")", - "origin": [ - 142.01524353027344, - 341.94378662109375 - ], - "bbox": [ - 142.01524353027344, - 335.6095275878906, - 144.09521484375, - 343.60943603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.01220703125, - 335.5278625488281, - 144.09521484375, - 343.60943603515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "attenua-", - "origin": [ - 150.7455291748047, - 341.94378662109375 - ], - "bbox": [ - 150.7455291748047, - 335.6095275878906, - 180.6331329345703, - 343.60943603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 150.7455291748047, - 335.6095275878906, - 180.6331329345703, - 343.60943603515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "tion.", - "origin": [ - 60.49146270751953, - 351.9780578613281 - ], - "bbox": [ - 60.49146270751953, - 345.643798828125, - 75.97126770019531, - 353.6437072753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 345.643798828125, - 75.97126770019531, - 353.6437072753906 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Velocity", - "origin": [ - 83.50877380371094, - 351.9780578613281 - ], - "bbox": [ - 83.50877380371094, - 345.643798828125, - 111.20283508300781, - 353.6437072753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.50877380371094, - 345.643798828125, - 111.20283508300781, - 353.6437072753906 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "and", - "origin": [ - 118.77153778076172, - 351.9780578613281 - ], - "bbox": [ - 118.77153778076172, - 345.643798828125, - 132.25936889648438, - 353.6437072753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.77153778076172, - 345.643798828125, - 132.25936889648438, - 353.6437072753906 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Attenuation", - "origin": [ - 139.80487060546875, - 351.9780578613281 - ], - "bbox": [ - 139.80487060546875, - 345.643798828125, - 180.58914184570312, - 353.6437072753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.80487060546875, - 345.643798828125, - 180.58914184570312, - 353.6437072753906 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "calculated using Eqs. 8 and 9.", - "origin": [ - 60.49146270751953, - 361.9555358886719 - ], - "bbox": [ - 60.49146270751953, - 355.62127685546875, - 180.59796142578125, - 363.6211853027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 355.62127685546875, - 180.59796142578125, - 363.6211853027344 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Red, green, blue, magenta, and", - "origin": [ - 60.49146270751953, - 371.98980712890625 - ], - "bbox": [ - 60.49146270751953, - 365.6555480957031, - 180.6187286376953, - 373.65545654296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 365.6555480957031, - 180.6187286376953, - 373.65545654296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "cyan represent volunteers 1–5,", - "origin": [ - 60.49146270751953, - 381.96807861328125 - ], - "bbox": [ - 60.49146270751953, - 375.6338195800781, - 180.62355041503906, - 383.63372802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 375.6338195800781, - 180.62355041503906, - 383.63372802734375 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "respectively.", - "origin": [ - 60.49146270751953, - 391.94635009765625 - ], - "bbox": [ - 60.49146270751953, - 385.6120910644531, - 104.69170379638672, - 393.61199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 385.6120910644531, - 104.69170379638672, - 393.61199951171875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "The", - "origin": [ - 111.51481628417969, - 391.94635009765625 - ], - "bbox": [ - 111.51481628417969, - 385.6120910644531, - 124.83465576171875, - 393.61199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.51481628417969, - 385.6120910644531, - 124.83465576171875, - 393.61199951171875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "stiffness", - "origin": [ - 131.58416748046875, - 391.94635009765625 - ], - "bbox": [ - 131.58416748046875, - 385.6120910644531, - 161.09019470214844, - 393.61199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.58416748046875, - 385.6120910644531, - 161.09019470214844, - 393.61199951171875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "has", - "origin": [ - 167.86770629882812, - 391.94635009765625 - ], - "bbox": [ - 167.86770629882812, - 385.6120910644531, - 180.61154174804688, - 393.61199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.86770629882812, - 385.6120910644531, - 180.61154174804688, - 393.61199951171875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "been normalized by the density.", - "origin": [ - 60.49146270751953, - 401.9806213378906 - ], - "bbox": [ - 60.49146270751953, - 395.6463623046875, - 175.33163452148438, - 403.6462707519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 395.6463623046875, - 175.33163452148438, - 403.6462707519531 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 192, - 74, - 552, - 581 - ], - "image_path": "images/0_192_74_552_581.jpg" - } - ], - "tables": [], - "interline_equations": [ - { - "bbox": [ - 414.71999999999997, - 631.4928909952606, - 451.67999999999995, - 656.9253554502369 - ], - "image_path": "equation_interline/0_414_631_451_656.jpg" - } - ], - "inline_equations": [ - { - "bbox": [ - 418.08, - 600.781990521327, - 429.11999999999995, - 610.3791469194313 - ], - "image_path": "equations_inline/0_418_600_429_610.jpg" - }, - { - "bbox": [ - 386.88, - 667.0023696682464, - 397.44, - 677.5592417061611 - ], - "image_path": "equations_inline/0_386_667_397_677.jpg" - }, - { - "bbox": [ - 509.28, - 667.0023696682464, - 521.28, - 677.5592417061611 - ], - "image_path": "equations_inline/0_509_667_521_677.jpg" - }, - { - "bbox": [ - 406.55999999999995, - 678.5189573459714, - 455.03999999999996, - 687.1563981042653 - ], - "image_path": "equations_inline/0_406_678_455_687.jpg" - }, - { - "bbox": [ - 287.03999999999996, - 745.2191943127962, - 301.44, - 755.2962085308056 - ], - "image_path": "equations_inline/0_287_745_301_755.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 50.68699264526367, - 612.0, - 58.746726989746094 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 60.49075698852539, - 74, - 552.522216796875, - 755.1424560546875 - ], - "layout_label": "U", - "sub_layout": [], - "bad_boxes": [ - [ - 192, - 74, - 552, - 581 - ], - [ - 192, - 74, - 552, - 581 - ] - ] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 60.49129867553711, - 601.3349609375, - 300.6086120605469, - 755.1424560546875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "and which is not surprising considering the myelin-axon", - "origin": [ - 60.49129867553711, - 608.0599365234375 - ], - "bbox": [ - 60.49129867553711, - 601.3349609375, - 300.5950622558594, - 610.3349609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 601.3349609375, - 300.5950622558594, - 610.3349609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fiber bundle structure. Second, it is often assumed in the", - "origin": [ - 60.49129867553711, - 619.0579223632812 - ], - "bbox": [ - 60.49129867553711, - 612.3329467773438, - 300.49700927734375, - 621.3329467773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 612.3329467773438, - 300.49700927734375, - 621.3329467773438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "biomedical field that human tissue is incompressible,", - "origin": [ - 60.49129867553711, - 630.055908203125 - ], - "bbox": [ - 60.49129867553711, - 623.3309326171875, - 300.50872802734375, - 632.3309326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 623.3309326171875, - 300.50872802734375, - 632.3309326171875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "implying that Poisson’s ratio is on the order of 0.5, and", - "origin": [ - 60.49129867553711, - 641.0538940429688 - ], - "bbox": [ - 60.49129867553711, - 634.3289184570312, - 300.5041198730469, - 643.3289184570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 634.3289184570312, - 300.5041198730469, - 643.3289184570312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "that the longitudinal (compressional) wave velocity in", - "origin": [ - 60.49129867553711, - 652.0518798828125 - ], - "bbox": [ - 60.49129867553711, - 645.326904296875, - 300.607666015625, - 654.326904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 645.326904296875, - 300.607666015625, - 654.326904296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "such media is on the order of that of water (", - "origin": [ - 60.49129867553711, - 663.0499267578125 - ], - "bbox": [ - 60.49129867553711, - 656.324951171875, - 248.76498413085938, - 665.324951171875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 248.7119140625, - 663.0499267578125 - ], - "bbox": [ - 248.7119140625, - 656.1199340820312, - 255.64190673828125, - 671.6719360351562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 1500 m/s)", - "origin": [ - 255.64190673828125, - 663.0499267578125 - ], - "bbox": [ - 255.64190673828125, - 656.324951171875, - 300.5770263671875, - 665.324951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 656.1199340820312, - 300.5770263671875, - 671.6719360351562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "(27). While this is true for free space, this is not the situa-", - "origin": [ - 60.49220275878906, - 674.0479125976562 - ], - "bbox": [ - 60.49220275878906, - 667.3229370117188, - 300.46728515625, - 676.3229370117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 667.3229370117188, - 300.46728515625, - 676.3229370117188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tion for propagation in a waveguide wherein boundary", - "origin": [ - 60.49220275878906, - 685.0458984375 - ], - "bbox": [ - 60.49220275878906, - 678.3209228515625, - 300.5761413574219, - 687.3209228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 678.3209228515625, - 300.5761413574219, - 687.3209228515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "effects dominate. If indeed the CST acts as a waveguide,", - "origin": [ - 60.49220275878906, - 696.0439453125 - ], - "bbox": [ - 60.49220275878906, - 689.3189697265625, - 300.59149169921875, - 698.3189697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 689.3189697265625, - 300.59149169921875, - 698.3189697265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "it was questioned if there was a simple relationship", - "origin": [ - 60.49220275878906, - 707.0419311523438 - ], - "bbox": [ - 60.49220275878906, - 700.3169555664062, - 300.6086120605469, - 709.3169555664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 700.3169555664062, - 300.6086120605469, - 709.3169555664062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "between the longitudinal and shear wave velocities which", - "origin": [ - 60.49220275878906, - 718.0399169921875 - ], - "bbox": [ - 60.49220275878906, - 711.31494140625, - 300.5024719238281, - 720.31494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 711.31494140625, - 300.5024719238281, - 720.31494140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "was dispersive. We investigated a relationship between", - "origin": [ - 60.49220275878906, - 729.0379028320312 - ], - "bbox": [ - 60.49220275878906, - 722.3129272460938, - 300.5032653808594, - 731.3129272460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 722.3129272460938, - 300.5032653808594, - 731.3129272460938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "these quantities using the results for a thin, circular rod", - "origin": [ - 60.49220275878906, - 740.5462036132812 - ], - "bbox": [ - 60.49220275878906, - 733.8212280273438, - 300.5032958984375, - 742.8212280273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 733.8212280273438, - 300.5032958984375, - 742.8212280273438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "(32) and found that the longitudinal wave velocity,", - "origin": [ - 60.49220275878906, - 752.0545043945312 - ], - "bbox": [ - 60.49220275878906, - 745.3295288085938, - 283.3690490722656, - 754.3295288085938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " C", - "origin": [ - 283.3690490722656, - 752.0545043945312 - ], - "bbox": [ - 283.3690490722656, - 745.3968505859375, - 293.9944763183594, - 754.3968505859375 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "L", - "origin": [ - 293.89599609375, - 753.5338745117188 - ], - "bbox": [ - 293.89599609375, - 748.7789306640625, - 298.0404357910156, - 755.1424560546875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ",", - "origin": [ - 297.9779052734375, - 752.059814453125 - ], - "bbox": [ - 297.9779052734375, - 745.3348388671875, - 300.50689697265625, - 754.3348388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49220275878906, - 745.3295288085938, - 300.50689697265625, - 755.1424560546875 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 312.4903564453125, - 600.751953125, - 552.522216796875, - 621.9105834960938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the shear wave velocity,", - "origin": [ - 312.4913024902344, - 608.059814453125 - ], - "bbox": [ - 312.4913024902344, - 601.3348388671875, - 414.6880798339844, - 610.3348388671875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " C", - "origin": [ - 414.6880798339844, - 608.059814453125 - ], - "bbox": [ - 414.6880798339844, - 601.4021606445312, - 424.6708984375, - 610.4021606445312 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "t", - "origin": [ - 424.5730895996094, - 609.533935546875 - ], - "bbox": [ - 424.5730895996094, - 604.7789916992188, - 426.82080078125, - 611.1425170898438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", and", - "origin": [ - 426.7273864746094, - 608.0599365234375 - ], - "bbox": [ - 426.7273864746094, - 601.3349609375, - 448.5811767578125, - 610.3349609375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " v", - "origin": [ - 448.5811767578125, - 608.0599365234375 - ], - "bbox": [ - 448.5811767578125, - 600.751953125, - 458.5162658691406, - 610.1209106445312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", are related to the ra-", - "origin": [ - 458.5315856933594, - 608.0599365234375 - ], - "bbox": [ - 458.5315856933594, - 601.3349609375, - 552.522216796875, - 610.3349609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 600.751953125, - 552.522216796875, - 611.1425170898438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dius, ‘‘", - "origin": [ - 312.4903564453125, - 619.5682373046875 - ], - "bbox": [ - 312.4903564453125, - 612.84326171875, - 340.0213623046875, - 621.84326171875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "a", - "origin": [ - 339.9295654296875, - 619.5682373046875 - ], - "bbox": [ - 339.9295654296875, - 612.9105834960938, - 344.8975524902344, - 621.9105834960938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ",’’ of a rod through the simple expression", - "origin": [ - 344.80487060546875, - 619.5682373046875 - ], - "bbox": [ - 344.80487060546875, - 612.84326171875, - 514.0398559570312, - 621.84326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4903564453125, - 612.84326171875, - 514.0398559570312, - 621.9105834960938 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 416.74951171875, - 633.5697631835938, - 552.5220336914062, - 656.8680419921875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "2", - "origin": [ - 417.0329895019531, - 641.5654296875 - ], - "bbox": [ - 417.0329895019531, - 634.8404541015625, - 422.0009765625, - 643.8404541015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "C", - "origin": [ - 421.9649963378906, - 641.5654296875 - ], - "bbox": [ - 421.9649963378906, - 634.9077758789062, - 427.958984375, - 643.9077758789062 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "2", - "origin": [ - 428.5982971191406, - 638.2772216796875 - ], - "bbox": [ - 428.5982971191406, - 633.5697631835938, - 432.0758972167969, - 639.8697509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 417.0329895019531, - 633.5697631835938, - 432.0758972167969, - 643.9077758789062 - ] - }, - { - "spans": [ - { - "size": 6.300000190734863, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "t", - "origin": [ - 427.974609375, - 644.0599975585938 - ], - "bbox": [ - 427.974609375, - 639.399658203125, - 430.072509765625, - 645.6996459960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.974609375, - 639.399658203125, - 430.072509765625, - 645.6996459960938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "v", - "origin": [ - 416.74951171875, - 653.86767578125 - ], - "bbox": [ - 416.74951171875, - 646.5596923828125, - 422.7434997558594, - 655.9286499023438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "C", - "origin": [ - 422.7588195800781, - 653.86767578125 - ], - "bbox": [ - 422.7588195800781, - 647.2100219726562, - 428.7528076171875, - 656.2100219726562 - ] - }, - { - "size": 6.300000190734863, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "L", - "origin": [ - 428.7684020996094, - 655.2283935546875 - ], - "bbox": [ - 428.7684020996094, - 650.5680541992188, - 432.2460021972656, - 656.8680419921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 416.74951171875, - 646.5596923828125, - 432.2460021972656, - 656.8680419921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "¼", - "origin": [ - 435.34478759765625, - 647.688232421875 - ], - "bbox": [ - 435.34478759765625, - 640.7582397460938, - 442.2747802734375, - 656.3102416992188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " a", - "origin": [ - 442.2747802734375, - 647.688232421875 - ], - "bbox": [ - 442.2747802734375, - 641.0305786132812, - 449.72406005859375, - 650.0305786132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.34478759765625, - 640.7582397460938, - 449.72406005859375, - 656.3102416992188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "½", - "origin": [ - 537.6756591796875, - 647.688232421875 - ], - "bbox": [ - 537.6756591796875, - 640.7582397460938, - 540.1056518554688, - 656.3102416992188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "10", - "origin": [ - 540.11376953125, - 647.688232421875 - ], - "bbox": [ - 540.11376953125, - 640.9632568359375, - 550.0498046875, - 649.9632568359375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 550.092041015625, - 647.688232421875 - ], - "bbox": [ - 550.092041015625, - 640.7582397460938, - 552.5220336914062, - 656.3102416992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 537.6756591796875, - 640.7582397460938, - 552.5220336914062, - 656.3102416992188 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 312.4908142089844, - 667.7220458984375, - 552.5145874023438, - 753.709228515625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "For a value of", - "origin": [ - 321.5064392089844, - 674.447021484375 - ], - "bbox": [ - 321.5064392089844, - 667.7220458984375, - 383.3877258300781, - 676.7220458984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " C", - "origin": [ - 383.3877258300781, - 674.447021484375 - ], - "bbox": [ - 383.3877258300781, - 667.7893676757812, - 393.7179260253906, - 676.7893676757812 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "t", - "origin": [ - 393.7322082519531, - 675.97802734375 - ], - "bbox": [ - 393.7322082519531, - 671.2230834960938, - 395.97991943359375, - 677.5866088867188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " on the order of 2.1 m/s,", - "origin": [ - 395.97991943359375, - 675.97802734375 - ], - "bbox": [ - 395.97991943359375, - 667.7222900390625, - 505.8262634277344, - 678.2530517578125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " C", - "origin": [ - 505.8262634277344, - 674.447265625 - ], - "bbox": [ - 505.8262634277344, - 667.7896118164062, - 516.173583984375, - 676.7896118164062 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "L", - "origin": [ - 516.132080078125, - 675.97802734375 - ], - "bbox": [ - 516.132080078125, - 671.2230834960938, - 520.2764892578125, - 677.5866088867188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " on the", - "origin": [ - 520.2764892578125, - 675.97802734375 - ], - "bbox": [ - 520.2764892578125, - 667.7222900390625, - 552.5127563476562, - 678.2530517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.5064392089844, - 667.7220458984375, - 552.5127563476562, - 678.2530517578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "order of 5.7 m/s, and", - "origin": [ - 312.4908142089844, - 685.4461669921875 - ], - "bbox": [ - 312.4908142089844, - 678.72119140625, - 403.84344482421875, - 687.72119140625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " v", - "origin": [ - 403.84344482421875, - 685.4461669921875 - ], - "bbox": [ - 403.84344482421875, - 678.13818359375, - 413.6723937988281, - 687.5071411132812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 413.6723937988281, - 685.4461669921875 - ], - "bbox": [ - 413.6723937988281, - 678.5161743164062, - 424.4732971191406, - 694.0681762695312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 2", - "origin": [ - 424.4732971191406, - 685.4461669921875 - ], - "bbox": [ - 424.4732971191406, - 678.72119140625, - 433.3392028808594, - 687.72119140625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 433.30322265625, - 685.4461669921875 - ], - "bbox": [ - 433.30322265625, - 678.5161743164062, - 435.73321533203125, - 694.0681762695312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "p", - "origin": [ - 435.7413330078125, - 685.4461669921875 - ], - "bbox": [ - 435.7413330078125, - 678.13818359375, - 441.7353210449219, - 687.5071411132812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 441.7506408691406, - 685.4461669921875 - ], - "bbox": [ - 441.7506408691406, - 678.5161743164062, - 444.1806335449219, - 694.0681762695312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "50, we see that the effec-", - "origin": [ - 444.1887512207031, - 685.4461669921875 - ], - "bbox": [ - 444.1887512207031, - 678.72119140625, - 552.5145874023438, - 687.72119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908142089844, - 678.13818359375, - 552.5145874023438, - 694.0681762695312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tive radius of a typical fiber bundle is predicted to be on", - "origin": [ - 312.4908447265625, - 696.4442138671875 - ], - "bbox": [ - 312.4908447265625, - 689.71923828125, - 552.48583984375, - 698.71923828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 689.71923828125, - 552.48583984375, - 698.71923828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the order of 5 mm, which is the average radius of every", - "origin": [ - 312.4908447265625, - 707.4421997070312 - ], - "bbox": [ - 312.4908447265625, - 700.7172241210938, - 552.4857788085938, - 709.7172241210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 700.7172241210938, - 552.4857788085938, - 709.7172241210938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CST in this study as discerned from the DTI data. While", - "origin": [ - 312.4908447265625, - 718.440185546875 - ], - "bbox": [ - 312.4908447265625, - 711.7152099609375, - 552.4965209960938, - 720.7152099609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 711.7152099609375, - 552.4965209960938, - 720.7152099609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "this may seem to be a simple and irrelevant coincidence,", - "origin": [ - 312.4908447265625, - 729.438232421875 - ], - "bbox": [ - 312.4908447265625, - 722.7132568359375, - 552.4921264648438, - 731.7132568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 722.7132568359375, - 552.4921264648438, - 731.7132568359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "it is our opinion that it is highly unlikely that the longi-", - "origin": [ - 312.4908447265625, - 740.4362182617188 - ], - "bbox": [ - 312.4908447265625, - 733.7112426757812, - 552.4822998046875, - 742.7112426757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 733.7112426757812, - 552.4822998046875, - 742.7112426757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tudinal and transverse wave velocities would be related", - "origin": [ - 312.4908447265625, - 751.4342041015625 - ], - "bbox": [ - 312.4908447265625, - 744.709228515625, - 552.5038452148438, - 753.709228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4908447265625, - 744.709228515625, - 552.5038452148438, - 753.709228515625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 60.49075698852539, - 255.61544799804688, - 180.63963317871094, - 403.6462707519531 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "FIG. 6. Values", - "origin": [ - 60.49129867553711, - 261.94970703125 - ], - "bbox": [ - 60.49129867553711, - 255.61544799804688, - 113.37943267822266, - 263.6153564453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 255.61544799804688, - 113.37943267822266, - 263.6153564453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "from", - "origin": [ - 120.01854705810547, - 261.94970703125 - ], - "bbox": [ - 120.01854705810547, - 255.61544799804688, - 136.30233764648438, - 263.6153564453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 120.01854705810547, - 255.61544799804688, - 136.30233764648438, - 263.6153564453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "the", - "origin": [ - 142.9230499267578, - 261.94970703125 - ], - "bbox": [ - 142.9230499267578, - 255.61544799804688, - 154.16290283203125, - 263.6153564453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 142.9230499267578, - 255.61544799804688, - 154.16290283203125, - 263.6153564453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "inver-", - "origin": [ - 160.78121948242188, - 261.94970703125 - ], - "bbox": [ - 160.78121948242188, - 255.61544799804688, - 180.58575439453125, - 263.6153564453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 160.78121948242188, - 255.61544799804688, - 180.58575439453125, - 263.6153564453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "sions for longitudinal parameter,", - "origin": [ - 60.49129867553711, - 271.9840087890625 - ], - "bbox": [ - 60.49129867553711, - 265.6497497558594, - 180.60337829589844, - 273.649658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 265.6497497558594, - 180.60337829589844, - 273.649658203125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 60.49129867553711, - 281.9622802734375 - ], - "bbox": [ - 60.49129867553711, - 275.6280212402344, - 66.2352294921875, - 283.6279296875 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "33", - "origin": [ - 66.21730041503906, - 283.3228759765625 - ], - "bbox": [ - 66.21730041503906, - 278.84423828125, - 72.84168243408203, - 284.5005798339844 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ",", - "origin": [ - 72.85040283203125, - 281.9622802734375 - ], - "bbox": [ - 72.85040283203125, - 275.6280212402344, - 75.09837341308594, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 275.6280212402344, - 75.09837341308594, - 284.5005798339844 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "along", - "origin": [ - 81.97828674316406, - 281.9622802734375 - ], - "bbox": [ - 81.97828674316406, - 275.6280212402344, - 101.6180419921875, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 81.97828674316406, - 275.6280212402344, - 101.6180419921875, - 283.6279296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "the", - "origin": [ - 108.4539566040039, - 281.9622802734375 - ], - "bbox": [ - 108.4539566040039, - 275.6280212402344, - 119.69381713867188, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.4539566040039, - 275.6280212402344, - 119.69381713867188, - 283.6279296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "right", - "origin": [ - 126.59532928466797, - 281.9622802734375 - ], - "bbox": [ - 126.59532928466797, - 275.6280212402344, - 142.49111938476562, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 126.59532928466797, - 275.6280212402344, - 142.49111938476562, - 283.6279296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "and", - "origin": [ - 149.32943725585938, - 281.9622802734375 - ], - "bbox": [ - 149.32943725585938, - 275.6280212402344, - 162.8172607421875, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 149.32943725585938, - 275.6280212402344, - 162.8172607421875, - 283.6279296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "left", - "origin": [ - 169.68197631835938, - 281.9622802734375 - ], - "bbox": [ - 169.68197631835938, - 275.6280212402344, - 180.5778350830078, - 283.6279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.68197631835938, - 275.6280212402344, - 180.5778350830078, - 283.6279296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "CSTs for all five volunteers.", - "origin": [ - 60.491355895996094, - 291.9405517578125 - ], - "bbox": [ - 60.491355895996094, - 285.6062927246094, - 162.8900604248047, - 293.606201171875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": " a,b:", - "origin": [ - 162.8900604248047, - 291.9405517578125 - ], - "bbox": [ - 162.8900604248047, - 285.5246276855469, - 180.60345458984375, - 293.6045227050781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491355895996094, - 285.5246276855469, - 180.60345458984375, - 293.606201171875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "real components of C", - "origin": [ - 60.491355895996094, - 301.9748229980469 - ], - "bbox": [ - 60.491355895996094, - 295.64056396484375, - 148.44065856933594, - 303.6404724121094 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "33", - "origin": [ - 148.4219970703125, - 303.2789001464844 - ], - "bbox": [ - 148.4219970703125, - 298.8002624511719, - 155.0457763671875, - 304.45660400390625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " along", - "origin": [ - 155.0457763671875, - 303.2789001464844 - ], - "bbox": [ - 155.0457763671875, - 295.6406555175781, - 180.59083557128906, - 304.9445495605469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491355895996094, - 295.64056396484375, - 180.59083557128906, - 304.9445495605469 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "the right and left CSTs, respec-", - "origin": [ - 60.491554260253906, - 311.95318603515625 - ], - "bbox": [ - 60.491554260253906, - 305.6189270019531, - 180.60047912597656, - 313.61883544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491554260253906, - 305.6189270019531, - 180.60047912597656, - 313.61883544921875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "tively;", - "origin": [ - 60.491554260253906, - 321.9874572753906 - ], - "bbox": [ - 60.491554260253906, - 315.6531982421875, - 81.05128479003906, - 323.6531066894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491554260253906, - 315.6531982421875, - 81.05128479003906, - 323.6531066894531 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "(", - "origin": [ - 88.04399871826172, - 321.9874572753906 - ], - "bbox": [ - 88.04399871826172, - 315.6531982421875, - 90.12397003173828, - 323.6531066894531 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "c,d", - "origin": [ - 90.08478546142578, - 321.9874572753906 - ], - "bbox": [ - 90.08478546142578, - 315.571533203125, - 101.82064056396484, - 323.65142822265625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")", - "origin": [ - 101.81983947753906, - 321.9874572753906 - ], - "bbox": [ - 101.81983947753906, - 315.6531982421875, - 103.89981079101562, - 323.6531066894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.04399871826172, - 315.571533203125, - 103.89981079101562, - 323.6531066894531 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "imaginary", - "origin": [ - 110.94772338867188, - 321.9874572753906 - ], - "bbox": [ - 110.94772338867188, - 315.6531982421875, - 145.57928466796875, - 323.6531066894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.94772338867188, - 315.6531982421875, - 145.57928466796875, - 323.6531066894531 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "compo-", - "origin": [ - 152.50399780273438, - 321.9874572753906 - ], - "bbox": [ - 152.50399780273438, - 315.6531982421875, - 180.63963317871094, - 323.6531066894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.50399780273438, - 315.6531982421875, - 180.63963317871094, - 323.6531066894531 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "nents of C", - "origin": [ - 60.49075698852539, - 331.9649353027344 - ], - "bbox": [ - 60.49075698852539, - 325.63067626953125, - 105.01260375976562, - 333.6305847167969 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "33", - "origin": [ - 104.99520111083984, - 333.2694091796875 - ], - "bbox": [ - 104.99520111083984, - 328.790771484375, - 111.61958312988281, - 334.4471130371094 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "; (", - "origin": [ - 111.57160186767578, - 331.96551513671875 - ], - "bbox": [ - 111.57160186767578, - 325.6312561035156, - 122.0418701171875, - 333.63116455078125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "e,f", - "origin": [ - 122.0594711303711, - 331.96551513671875 - ], - "bbox": [ - 122.0594711303711, - 325.5495910644531, - 131.54736328125, - 333.6294860839844 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ") longitudinal", - "origin": [ - 131.52735900878906, - 331.96551513671875 - ], - "bbox": [ - 131.52735900878906, - 325.6312561035156, - 180.5531005859375, - 333.63116455078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49075698852539, - 325.5495910644531, - 180.5531005859375, - 334.4471130371094 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "wave", - "origin": [ - 60.491455078125, - 341.94378662109375 - ], - "bbox": [ - 60.491455078125, - 335.6095275878906, - 79.22721862792969, - 343.60943603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491455078125, - 335.6095275878906, - 79.22721862792969, - 343.60943603515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "velocities;", - "origin": [ - 85.88953399658203, - 341.94378662109375 - ], - "bbox": [ - 85.88953399658203, - 335.6095275878906, - 121.42508697509766, - 343.60943603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 85.88953399658203, - 335.6095275878906, - 121.42508697509766, - 343.60943603515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "(", - "origin": [ - 128.01220703125, - 341.94378662109375 - ], - "bbox": [ - 128.01220703125, - 335.6095275878906, - 130.09217834472656, - 343.60943603515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "g,h", - "origin": [ - 130.1097869873047, - 341.94378662109375 - ], - "bbox": [ - 130.1097869873047, - 335.5278625488281, - 142.01364135742188, - 343.6077575683594 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")", - "origin": [ - 142.01524353027344, - 341.94378662109375 - ], - "bbox": [ - 142.01524353027344, - 335.6095275878906, - 144.09521484375, - 343.60943603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 128.01220703125, - 335.5278625488281, - 144.09521484375, - 343.60943603515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "attenua-", - "origin": [ - 150.7455291748047, - 341.94378662109375 - ], - "bbox": [ - 150.7455291748047, - 335.6095275878906, - 180.6331329345703, - 343.60943603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 150.7455291748047, - 335.6095275878906, - 180.6331329345703, - 343.60943603515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "tion.", - "origin": [ - 60.49146270751953, - 351.9780578613281 - ], - "bbox": [ - 60.49146270751953, - 345.643798828125, - 75.97126770019531, - 353.6437072753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 345.643798828125, - 75.97126770019531, - 353.6437072753906 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Velocity", - "origin": [ - 83.50877380371094, - 351.9780578613281 - ], - "bbox": [ - 83.50877380371094, - 345.643798828125, - 111.20283508300781, - 353.6437072753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.50877380371094, - 345.643798828125, - 111.20283508300781, - 353.6437072753906 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "and", - "origin": [ - 118.77153778076172, - 351.9780578613281 - ], - "bbox": [ - 118.77153778076172, - 345.643798828125, - 132.25936889648438, - 353.6437072753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.77153778076172, - 345.643798828125, - 132.25936889648438, - 353.6437072753906 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Attenuation", - "origin": [ - 139.80487060546875, - 351.9780578613281 - ], - "bbox": [ - 139.80487060546875, - 345.643798828125, - 180.58914184570312, - 353.6437072753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.80487060546875, - 345.643798828125, - 180.58914184570312, - 353.6437072753906 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "calculated using Eqs. 8 and 9.", - "origin": [ - 60.49146270751953, - 361.9555358886719 - ], - "bbox": [ - 60.49146270751953, - 355.62127685546875, - 180.59796142578125, - 363.6211853027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 355.62127685546875, - 180.59796142578125, - 363.6211853027344 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Red, green, blue, magenta, and", - "origin": [ - 60.49146270751953, - 371.98980712890625 - ], - "bbox": [ - 60.49146270751953, - 365.6555480957031, - 180.6187286376953, - 373.65545654296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 365.6555480957031, - 180.6187286376953, - 373.65545654296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "cyan represent volunteers 1–5,", - "origin": [ - 60.49146270751953, - 381.96807861328125 - ], - "bbox": [ - 60.49146270751953, - 375.6338195800781, - 180.62355041503906, - 383.63372802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 375.6338195800781, - 180.62355041503906, - 383.63372802734375 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "respectively.", - "origin": [ - 60.49146270751953, - 391.94635009765625 - ], - "bbox": [ - 60.49146270751953, - 385.6120910644531, - 104.69170379638672, - 393.61199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 385.6120910644531, - 104.69170379638672, - 393.61199951171875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "The", - "origin": [ - 111.51481628417969, - 391.94635009765625 - ], - "bbox": [ - 111.51481628417969, - 385.6120910644531, - 124.83465576171875, - 393.61199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.51481628417969, - 385.6120910644531, - 124.83465576171875, - 393.61199951171875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "stiffness", - "origin": [ - 131.58416748046875, - 391.94635009765625 - ], - "bbox": [ - 131.58416748046875, - 385.6120910644531, - 161.09019470214844, - 393.61199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.58416748046875, - 385.6120910644531, - 161.09019470214844, - 393.61199951171875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "has", - "origin": [ - 167.86770629882812, - 391.94635009765625 - ], - "bbox": [ - 167.86770629882812, - 385.6120910644531, - 180.61154174804688, - 393.61199951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.86770629882812, - 385.6120910644531, - 180.61154174804688, - 393.61199951171875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "been normalized by the density.", - "origin": [ - 60.49146270751953, - 401.9806213378906 - ], - "bbox": [ - 60.49146270751953, - 395.6463623046875, - 175.33163452148438, - 403.6462707519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49146270751953, - 395.6463623046875, - 175.33163452148438, - 403.6462707519531 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 552.5203247070312, - 58.746726989746094 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "In Vivo Waveguide Elastography of White Matter Tracts", - "origin": [ - 60.49129867553711, - 56.6646728515625 - ], - "bbox": [ - 60.49129867553711, - 50.746829986572266, - 267.2967224121094, - 58.746726989746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 50.746829986572266, - 267.2967224121094, - 58.746726989746094 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "9", - "origin": [ - 548.1043701171875, - 56.6646728515625 - ], - "bbox": [ - 548.1043701171875, - 50.68699264526367, - 552.5203247070312, - 58.686893463134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 548.1043701171875, - 50.68699264526367, - 552.5203247070312, - 58.686893463134766 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 5, - "type": 0, - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 552.5203247070312, - 58.746726989746094 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "In Vivo Waveguide Elastography of White Matter Tracts", - "origin": [ - 60.49129867553711, - 56.6646728515625 - ], - "bbox": [ - 60.49129867553711, - 50.746829986572266, - 267.2967224121094, - 58.746726989746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 50.746829986572266, - 267.2967224121094, - 58.746726989746094 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "9", - "origin": [ - 548.1043701171875, - 56.6646728515625 - ], - "bbox": [ - 548.1043701171875, - 50.68699264526367, - 552.5203247070312, - 58.686893463134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 548.1043701171875, - 50.68699264526367, - 552.5203247070312, - 58.686893463134766 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 810.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\345\233\276\346\263\250\345\234\250\345\217\263\344\276\247\346\240\217_10.1002_mrm.24141 8.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\345\233\276\346\263\250\345\234\250\345\217\263\344\276\247\346\240\217_10.1002_mrm.24141 8.pdf/preproc_out.json" deleted file mode 100644 index 1273134ed..000000000 --- "a/tests/assets/pre_proc_results/\345\233\276\346\263\250\345\234\250\345\217\263\344\276\247\346\240\217_10.1002_mrm.24141 8.pdf/preproc_out.json" +++ /dev/null @@ -1,5747 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 60.490997314453125, - 602.3204956054688, - 300.5420227050781, - 754.504150390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "these coefficients are also", - "origin": [ - 60.49129867553711, - 609.25048828125 - ], - "bbox": [ - 60.49129867553711, - 602.5255126953125, - 170.52528381347656, - 611.5255126953125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 170.52528381347656, - 609.25048828125 - ], - "bbox": [ - 170.52528381347656, - 602.3204956054688, - 181.4305877685547, - 617.8724975585938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "C", - "origin": [ - 181.4738006591797, - 609.25048828125 - ], - "bbox": [ - 181.4738006591797, - 602.5255126953125, - 187.46780395507812, - 611.5255126953125 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "33", - "origin": [ - 187.42669677734375, - 610.7244873046875 - ], - "bbox": [ - 187.42669677734375, - 605.9695434570312, - 194.87789916992188, - 612.3330688476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " to within statistical sig-", - "origin": [ - 194.87789916992188, - 610.7244873046875 - ], - "bbox": [ - 194.87789916992188, - 602.5255126953125, - 300.4788513183594, - 612.99951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 602.3204956054688, - 300.4788513183594, - 617.8724975585938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "nificance.", - "origin": [ - 60.4910888671875, - 620.24853515625 - ], - "bbox": [ - 60.4910888671875, - 613.5235595703125, - 101.06309509277344, - 622.5235595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.4910888671875, - 613.5235595703125, - 101.06309509277344, - 622.5235595703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Additionally, although C", - "origin": [ - 110.32589721679688, - 620.24853515625 - ], - "bbox": [ - 110.32589721679688, - 613.5235595703125, - 217.63377380371094, - 622.5235595703125 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 217.58729553222656, - 621.722900390625 - ], - "bbox": [ - 217.58729553222656, - 616.9679565429688, - 225.0391845703125, - 623.3314819335938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 225.0391845703125, - 621.722900390625 - ], - "bbox": [ - 225.0391845703125, - 613.3189086914062, - 236.64959716796875, - 630.3449096679688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " C", - "origin": [ - 236.64959716796875, - 620.2489013671875 - ], - "bbox": [ - 236.64959716796875, - 613.52392578125, - 247.22190856933594, - 622.52392578125 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "55", - "origin": [ - 247.23770141601562, - 621.722900390625 - ], - "bbox": [ - 247.23770141601562, - 616.9679565429688, - 254.68960571289062, - 623.3314819335938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", these are", - "origin": [ - 254.72120666503906, - 620.2489013671875 - ], - "bbox": [ - 254.72120666503906, - 613.52392578125, - 300.522216796875, - 622.52392578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.32589721679688, - 613.3189086914062, - 300.522216796875, - 630.3449096679688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "also", - "origin": [ - 60.491302490234375, - 631.2468872070312 - ], - "bbox": [ - 60.491302490234375, - 624.5219116210938, - 76.97930908203125, - 633.5219116210938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 76.97930908203125, - 631.2468872070312 - ], - "bbox": [ - 76.97930908203125, - 624.31689453125, - 90.09860229492188, - 639.868896484375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "C", - "origin": [ - 90.08509826660156, - 631.2468872070312 - ], - "bbox": [ - 90.08509826660156, - 624.5219116210938, - 96.0791015625, - 633.5219116210938 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "66", - "origin": [ - 96.09449768066406, - 632.7213134765625 - ], - "bbox": [ - 96.09449768066406, - 627.9663696289062, - 103.54571533203125, - 634.3298950195312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ".", - "origin": [ - 103.5779037475586, - 631.247314453125 - ], - "bbox": [ - 103.5779037475586, - 624.5223388671875, - 106.10690307617188, - 633.5223388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491302490234375, - 624.31689453125, - 106.10690307617188, - 639.868896484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Even though the relationships discussed", - "origin": [ - 118.48820495605469, - 631.247314453125 - ], - "bbox": [ - 118.48820495605469, - 624.5223388671875, - 300.4718322753906, - 633.5223388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.48820495605469, - 624.5223388671875, - 300.4718322753906, - 633.5223388671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "above imply a Hexagonal model, these latter relation-", - "origin": [ - 60.49130630493164, - 642.2462158203125 - ], - "bbox": [ - 60.49130630493164, - 635.521240234375, - 300.5024108886719, - 644.521240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 635.521240234375, - 300.5024108886719, - 644.521240234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ships imply that the CST’s may only be considered to be", - "origin": [ - 60.49130630493164, - 653.2451171875 - ], - "bbox": [ - 60.49130630493164, - 646.5201416015625, - 300.5356750488281, - 655.5201416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 646.5201416015625, - 300.5356750488281, - 655.5201416015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "\"weakly\" anisotropic, as opposed to muscle which may", - "origin": [ - 60.49130630493164, - 664.2440185546875 - ], - "bbox": [ - 60.49130630493164, - 657.51904296875, - 300.50689697265625, - 666.51904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 657.51904296875, - 300.50689697265625, - 666.51904296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "be considered as \"strongly\" anisotropic where there is of-", - "origin": [ - 60.49130630493164, - 675.242919921875 - ], - "bbox": [ - 60.49130630493164, - 668.5179443359375, - 300.49969482421875, - 677.5179443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 668.5179443359375, - 300.49969482421875, - 677.5179443359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ten a large disparity between the elastic cooefficients.", - "origin": [ - 60.49130630493164, - 686.2418212890625 - ], - "bbox": [ - 60.49130630493164, - 679.516845703125, - 300.5420227050781, - 688.516845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 679.516845703125, - 300.5420227050781, - 688.516845703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "The issue of the disparity between, for example C", - "origin": [ - 60.49130630493164, - 697.24072265625 - ], - "bbox": [ - 60.49130630493164, - 690.5157470703125, - 273.87408447265625, - 699.5157470703125 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 273.8833923339844, - 698.7684936523438 - ], - "bbox": [ - 273.8833923339844, - 694.0135498046875, - 281.3346252441406, - 700.3770751953125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " and", - "origin": [ - 281.3346252441406, - 698.7684936523438 - ], - "bbox": [ - 281.3346252441406, - 690.5128173828125, - 300.4905090332031, - 701.0435180664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 690.5128173828125, - 300.4905090332031, - 701.0435180664062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "C", - "origin": [ - 60.49110412597656, - 708.2357788085938 - ], - "bbox": [ - 60.49110412597656, - 701.5108032226562, - 66.485107421875, - 710.5108032226562 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "66", - "origin": [ - 66.50080108642578, - 709.7669067382812 - ], - "bbox": [ - 66.50080108642578, - 705.011962890625, - 73.95201873779297, - 711.37548828125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", however, can be more thoroughly quantified in the", - "origin": [ - 73.98419952392578, - 708.2362060546875 - ], - "bbox": [ - 73.98419952392578, - 701.51123046875, - 300.517822265625, - 710.51123046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49110412597656, - 701.5108032226562, - 300.517822265625, - 711.37548828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "context of the elastic anisotropy factor for a Hexagonal", - "origin": [ - 60.49140167236328, - 719.2341918945312 - ], - "bbox": [ - 60.49140167236328, - 712.5092163085938, - 300.5384216308594, - 721.5092163085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49140167236328, - 712.5092163085938, - 300.5384216308594, - 721.5092163085938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "system using the relationship C", - "origin": [ - 60.49140167236328, - 730.232177734375 - ], - "bbox": [ - 60.49140167236328, - 723.5072021484375, - 196.25909423828125, - 732.5072021484375 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 196.2707977294922, - 731.7637939453125 - ], - "bbox": [ - 196.2707977294922, - 727.0088500976562, - 203.72268676757812, - 733.3723754882812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "/C", - "origin": [ - 203.69760131835938, - 730.2330932617188 - ], - "bbox": [ - 203.69760131835938, - 723.5081176757812, - 213.15660095214844, - 732.5081176757812 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "66", - "origin": [ - 213.16529846191406, - 731.7637939453125 - ], - "bbox": [ - 213.16529846191406, - 727.0088500976562, - 220.6171875, - 733.3723754882812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", and this quantity", - "origin": [ - 220.64869689941406, - 730.2330932617188 - ], - "bbox": [ - 220.64869689941406, - 723.5081176757812, - 300.48321533203125, - 732.5081176757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49140167236328, - 723.5072021484375, - 300.48321533203125, - 733.3723754882812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "is seen to be almost always less than unity. Implement-", - "origin": [ - 60.490997314453125, - 741.2310791015625 - ], - "bbox": [ - 60.490997314453125, - 734.506103515625, - 300.48681640625, - 743.506103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.490997314453125, - 734.506103515625, - 300.48681640625, - 743.506103515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ing Student’s t-test, (two-tailed, unpaired), we see that", - "origin": [ - 60.490997314453125, - 752.2291259765625 - ], - "bbox": [ - 60.490997314453125, - 745.504150390625, - 300.5110778808594, - 754.504150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.490997314453125, - 745.504150390625, - 300.5110778808594, - 754.504150390625 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 312.4909973144531, - 602.4254150390625, - 552.5612182617188, - 754.5037231445312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "C", - "origin": [ - 312.4909973144531, - 609.2496948242188 - ], - "bbox": [ - 312.4909973144531, - 602.5247192382812, - 318.4849853515625, - 611.5247192382812 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 318.5007019042969, - 610.7244873046875 - ], - "bbox": [ - 318.5007019042969, - 605.9695434570312, - 325.9526062011719, - 612.3330688476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " is about a factor of 1.14 lower than C", - "origin": [ - 325.9526062011719, - 610.7244873046875 - ], - "bbox": [ - 325.9526062011719, - 602.5255126953125, - 501.66253662109375, - 612.99951171875 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "66", - "origin": [ - 501.6755065917969, - 610.7244873046875 - ], - "bbox": [ - 501.6755065917969, - 605.9695434570312, - 509.1267395019531, - 612.3330688476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " (P", - "origin": [ - 509.1267395019531, - 610.7244873046875 - ], - "bbox": [ - 509.1267395019531, - 602.5255126953125, - 522.6141967773438, - 612.99951171875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E51", - "color": 2301727, - "ascender": 0.75, - "descender": -0.23899999260902405, - "text": "<", - "origin": [ - 522.5952758789062, - 609.25048828125 - ], - "bbox": [ - 522.5952758789062, - 602.4254150390625, - 529.5252685546875, - 611.4254150390625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "0.01).", - "origin": [ - 529.5684814453125, - 609.25048828125 - ], - "bbox": [ - 529.5684814453125, - 602.5255126953125, - 552.5275268554688, - 611.5255126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4909973144531, - 602.4254150390625, - 552.5275268554688, - 612.99951171875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Therefore, although these parameters appear to be simi-", - "origin": [ - 312.4911804199219, - 620.24853515625 - ], - "bbox": [ - 312.4911804199219, - 613.5235595703125, - 552.480712890625, - 622.5235595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 613.5235595703125, - 552.480712890625, - 622.5235595703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "lar to each other, these differences are statistically signif-", - "origin": [ - 312.4911804199219, - 631.2465209960938 - ], - "bbox": [ - 312.4911804199219, - 624.5215454101562, - 552.4935302734375, - 633.5215454101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 624.5215454101562, - 552.4935302734375, - 633.5215454101562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "icant and indicate transverse isotropy.", - "origin": [ - 312.4911804199219, - 642.2445068359375 - ], - "bbox": [ - 312.4911804199219, - 635.51953125, - 472.3564147949219, - 644.51953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 635.51953125, - 472.3564147949219, - 644.51953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "A few comments are in order concerning the values", - "origin": [ - 321.5055847167969, - 653.2424926757812 - ], - "bbox": [ - 321.5055847167969, - 646.5175170898438, - 552.5158081054688, - 655.5175170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.5055847167969, - 646.5175170898438, - 552.5158081054688, - 655.5175170898438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "we have obtained from our inversions. First, while esti-", - "origin": [ - 312.4911804199219, - 664.2413940429688 - ], - "bbox": [ - 312.4911804199219, - 657.5164184570312, - 552.4735107421875, - 666.5164184570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 657.5164184570312, - 552.4735107421875, - 666.5164184570312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "mates for the material parameters of brain tissue vary sig-", - "origin": [ - 312.4911804199219, - 675.2402954101562 - ], - "bbox": [ - 312.4911804199219, - 668.5153198242188, - 552.5384521484375, - 677.5153198242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 668.5153198242188, - 552.5384521484375, - 677.5153198242188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "nificantly in the literature, values on the order of 2–2.5", - "origin": [ - 312.4911804199219, - 686.2391967773438 - ], - "bbox": [ - 312.4911804199219, - 679.5142211914062, - 552.4853515625, - 688.5142211914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 679.5142211914062, - 552.4853515625, - 688.5142211914062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "kPa have been reported for the shear modulus of the", - "origin": [ - 312.4911804199219, - 697.2380981445312 - ], - "bbox": [ - 312.4911804199219, - 690.5131225585938, - 552.5184936523438, - 699.5131225585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 690.5131225585938, - 552.5184936523438, - 699.5131225585938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "brain including gray and white matter (12,16,31), assum-", - "origin": [ - 312.4911804199219, - 708.2369995117188 - ], - "bbox": [ - 312.4911804199219, - 701.5120239257812, - 552.4861450195312, - 710.5120239257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 701.5120239257812, - 552.4861450195312, - 710.5120239257812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ing isotropy and a density of", - "origin": [ - 312.4911804199219, - 719.2359008789062 - ], - "bbox": [ - 312.4911804199219, - 712.5109252929688, - 435.205322265625, - 721.5109252929688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " r", - "origin": [ - 435.205322265625, - 719.2359008789062 - ], - "bbox": [ - 435.205322265625, - 711.9279174804688, - 443.1891784667969, - 721.296875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 443.1891784667969, - 719.2359008789062 - ], - "bbox": [ - 443.1891784667969, - 712.305908203125, - 453.5562744140625, - 727.85791015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 1000 kg/m", - "origin": [ - 453.5562744140625, - 719.2359008789062 - ], - "bbox": [ - 453.5562744140625, - 712.5109252929688, - 501.2004089355469, - 721.5109252929688 - ] - }, - { - "size": 6.363489627838135, - "flags": 5, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "3", - "origin": [ - 501.1651916503906, - 715.2661743164062 - ], - "bbox": [ - 501.1651916503906, - 710.51123046875, - 504.8911437988281, - 716.874755859375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ". Assuming", - "origin": [ - 504.9068908691406, - 719.2346801757812 - ], - "bbox": [ - 504.9068908691406, - 712.5097045898438, - 552.5052490234375, - 721.5097045898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 710.51123046875, - 552.5052490234375, - 727.85791015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "this same value for the density, here, we observe values", - "origin": [ - 312.49139404296875, - 730.2327270507812 - ], - "bbox": [ - 312.49139404296875, - 723.5077514648438, - 552.5151977539062, - 732.5077514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 723.5077514648438, - 552.5151977539062, - 732.5077514648438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "on the order of 4–4.6 kPa for the white matter tracts,", - "origin": [ - 312.49139404296875, - 741.230712890625 - ], - "bbox": [ - 312.49139404296875, - 734.5057373046875, - 552.511474609375, - 743.5057373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 734.5057373046875, - 552.511474609375, - 743.5057373046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "which is twice as stiff as that of averaged brain matter", - "origin": [ - 312.49139404296875, - 752.2286987304688 - ], - "bbox": [ - 312.49139404296875, - 745.5037231445312, - 552.5612182617188, - 754.5037231445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 745.5037231445312, - 552.5612182617188, - 754.5037231445312 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 432.3966979980469, - 256.1824645996094, - 552.5773315429688, - 404.1576232910156 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "FIG. 5. Values", - "origin": [ - 432.3966979980469, - 262.5167236328125 - ], - "bbox": [ - 432.3966979980469, - 256.1824645996094, - 485.3409118652344, - 264.182373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3966979980469, - 256.1824645996094, - 485.3409118652344, - 264.182373046875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "from", - "origin": [ - 491.9232177734375, - 262.5167236328125 - ], - "bbox": [ - 491.9232177734375, - 256.1824645996094, - 508.2229919433594, - 264.182373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 491.9232177734375, - 256.1824645996094, - 508.2229919433594, - 264.182373046875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "the", - "origin": [ - 514.8837280273438, - 262.5167236328125 - ], - "bbox": [ - 514.8837280273438, - 256.1824645996094, - 526.1235961914062, - 264.182373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.8837280273438, - 256.1824645996094, - 526.1235961914062, - 264.182373046875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "inver-", - "origin": [ - 532.741943359375, - 262.5167236328125 - ], - "bbox": [ - 532.741943359375, - 256.1824645996094, - 552.4896240234375, - 264.182373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 532.741943359375, - 256.1824645996094, - 552.4896240234375, - 264.182373046875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "sions for shear parameters, C", - "origin": [ - 432.3966979980469, - 272.4949951171875 - ], - "bbox": [ - 432.3966979980469, - 266.1607360839844, - 543.6456909179688, - 274.16064453125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "44", - "origin": [ - 543.6281127929688, - 273.855224609375 - ], - "bbox": [ - 543.6281127929688, - 269.3765869140625, - 550.2525024414062, - 275.0329284667969 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ",", - "origin": [ - 550.26123046875, - 272.49462890625 - ], - "bbox": [ - 550.26123046875, - 266.1603698730469, - 552.5092163085938, - 274.1602783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3966979980469, - 266.1603698730469, - 552.5092163085938, - 275.0329284667969 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "along the right and left CSTs for", - "origin": [ - 432.3970947265625, - 282.5289306640625 - ], - "bbox": [ - 432.3970947265625, - 276.1946716308594, - 552.516357421875, - 284.194580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3970947265625, - 276.1946716308594, - 552.516357421875, - 284.194580078125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "all five volunteers.", - "origin": [ - 432.3970947265625, - 292.50640869140625 - ], - "bbox": [ - 432.3970947265625, - 286.1721496582031, - 497.7754821777344, - 294.17205810546875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": " a,b:", - "origin": [ - 497.7754821777344, - 292.50640869140625 - ], - "bbox": [ - 497.7754821777344, - 286.0904846191406, - 514.7520751953125, - 294.1703796386719 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " real com-", - "origin": [ - 514.7520751953125, - 292.50640869140625 - ], - "bbox": [ - 514.7520751953125, - 286.1721496582031, - 552.5219116210938, - 294.17205810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3970947265625, - 286.0904846191406, - 552.5219116210938, - 294.17205810546875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "ponents of C", - "origin": [ - 432.3970947265625, - 302.48468017578125 - ], - "bbox": [ - 432.3970947265625, - 296.1504211425781, - 484.06207275390625, - 304.15032958984375 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "44", - "origin": [ - 484.04400634765625, - 303.8457946777344 - ], - "bbox": [ - 484.04400634765625, - 299.3671569824219, - 490.66778564453125, - 305.02349853515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " along the right", - "origin": [ - 490.66778564453125, - 303.8457946777344 - ], - "bbox": [ - 490.66778564453125, - 296.15093994140625, - 552.5507202148438, - 305.5114440917969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3970947265625, - 296.1504211425781, - 552.5507202148438, - 305.5114440917969 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "and left CSTs, respectively; (", - "origin": [ - 432.3970947265625, - 312.51947021484375 - ], - "bbox": [ - 432.3970947265625, - 306.1852111816406, - 538.73486328125, - 314.18511962890625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "c,d", - "origin": [ - 538.69580078125, - 312.51947021484375 - ], - "bbox": [ - 538.69580078125, - 306.1035461425781, - 550.431640625, - 314.1834411621094 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")", - "origin": [ - 550.4308471679688, - 312.51947021484375 - ], - "bbox": [ - 550.4308471679688, - 306.1852111816406, - 552.5108032226562, - 314.18511962890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3970947265625, - 306.1035461425781, - 552.5108032226562, - 314.18511962890625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "imaginary", - "origin": [ - 432.3971252441406, - 322.49774169921875 - ], - "bbox": [ - 432.3971252441406, - 316.1634826660156, - 467.0286865234375, - 324.16339111328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3971252441406, - 316.1634826660156, - 467.0286865234375, - 324.16339111328125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "components of", - "origin": [ - 473.4429931640625, - 322.49774169921875 - ], - "bbox": [ - 473.4429931640625, - 316.1634826660156, - 531.427001953125, - 324.16339111328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.4429931640625, - 316.1634826660156, - 531.427001953125, - 324.16339111328125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 537.9028930664062, - 322.49774169921875 - ], - "bbox": [ - 537.9028930664062, - 316.1634826660156, - 543.6468505859375, - 324.16339111328125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "44", - "origin": [ - 543.6281127929688, - 323.8583984375 - ], - "bbox": [ - 543.6281127929688, - 319.3797607421875, - 550.2525024414062, - 325.0361022949219 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ";", - "origin": [ - 550.26123046875, - 322.497802734375 - ], - "bbox": [ - 550.26123046875, - 316.1635437011719, - 552.5092163085938, - 324.1634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 537.9028930664062, - 316.1634826660156, - 552.5092163085938, - 325.0361022949219 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "(", - "origin": [ - 432.3970947265625, - 332.5320739746094 - ], - "bbox": [ - 432.3970947265625, - 326.19781494140625, - 434.4770812988281, - 334.1977233886719 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "e,f", - "origin": [ - 434.4946594238281, - 332.5320739746094 - ], - "bbox": [ - 434.4946594238281, - 326.11614990234375, - 443.9825744628906, - 334.196044921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ") shear wave velocities; (", - "origin": [ - 443.9625549316406, - 332.5320739746094 - ], - "bbox": [ - 443.9625549316406, - 326.19781494140625, - 538.5645141601562, - 334.1977233886719 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "g,h", - "origin": [ - 538.5261840820312, - 332.5320739746094 - ], - "bbox": [ - 538.5261840820312, - 326.11614990234375, - 550.4300537109375, - 334.196044921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")", - "origin": [ - 550.431640625, - 332.5320739746094 - ], - "bbox": [ - 550.431640625, - 326.19781494140625, - 552.5115966796875, - 334.1977233886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3970947265625, - 326.11614990234375, - 552.5115966796875, - 334.1977233886719 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "attenuation. Velocity and attenu-", - "origin": [ - 432.3979187011719, - 342.5103454589844 - ], - "bbox": [ - 432.3979187011719, - 336.17608642578125, - 552.5773315429688, - 344.1759948730469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 336.17608642578125, - 552.5773315429688, - 344.1759948730469 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "ation calculated using the Eqs. 8", - "origin": [ - 432.3979187011719, - 352.4886169433594 - ], - "bbox": [ - 432.3979187011719, - 346.15435791015625, - 552.5252685546875, - 354.1542663574219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 346.15435791015625, - 552.5252685546875, - 354.1542663574219 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "and 9. Red, green, blue, ma-", - "origin": [ - 432.3979187011719, - 362.52288818359375 - ], - "bbox": [ - 432.3979187011719, - 356.1886291503906, - 552.5404663085938, - 364.18853759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 356.1886291503906, - 552.5404663085938, - 364.18853759765625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "genta, and cyan represent volun-", - "origin": [ - 432.3979187011719, - 372.50115966796875 - ], - "bbox": [ - 432.3979187011719, - 366.1669006347656, - 552.5380249023438, - 374.16680908203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 366.1669006347656, - 552.5380249023438, - 374.16680908203125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "teers", - "origin": [ - 432.3979187011719, - 382.47943115234375 - ], - "bbox": [ - 432.3979187011719, - 376.1451721191406, - 450.21368408203125, - 384.14508056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 376.1451721191406, - 450.21368408203125, - 384.14508056640625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "1–5,", - "origin": [ - 460.1207580566406, - 382.47943115234375 - ], - "bbox": [ - 460.1207580566406, - 376.1451721191406, - 475.2005920410156, - 384.14508056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 460.1207580566406, - 376.1451721191406, - 475.2005920410156, - 384.14508056640625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "respectively.", - "origin": [ - 485.0660705566406, - 382.47943115234375 - ], - "bbox": [ - 485.0660705566406, - 376.1451721191406, - 529.2662353515625, - 384.14508056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 485.0660705566406, - 376.1451721191406, - 529.2662353515625, - 384.14508056640625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "The", - "origin": [ - 539.2069091796875, - 382.47943115234375 - ], - "bbox": [ - 539.2069091796875, - 376.1451721191406, - 552.5267333984375, - 384.14508056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 539.2069091796875, - 376.1451721191406, - 552.5267333984375, - 384.14508056640625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "stiffness has been normalized by", - "origin": [ - 432.3979187011719, - 392.5137023925781 - ], - "bbox": [ - 432.3979187011719, - 386.179443359375, - 552.4867553710938, - 394.1793518066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 386.179443359375, - 552.4867553710938, - 394.1793518066406 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "the density.", - "origin": [ - 432.3979187011719, - 402.4919738769531 - ], - "bbox": [ - 432.3979187011719, - 396.15771484375, - 473.65020751953125, - 404.1576232910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 396.15771484375, - 473.65020751953125, - 404.1576232910156 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 60, - 74, - 420, - 582 - ], - "image_path": "images/0_60_74_420_582.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 536.64, - 265.84123222748815, - 551.52, - 275.4383886255924 - ], - "image_path": "equations_inline/0_536_265_551_275.jpg" - }, - { - "bbox": [ - 477.11999999999995, - 295.59241706161134, - 492.47999999999996, - 305.18957345971563 - ], - "image_path": "equations_inline/0_477_295_492_305.jpg" - }, - { - "bbox": [ - 173.28, - 601.7417061611374, - 196.32, - 611.8187203791468 - ], - "image_path": "equations_inline/0_173_601_196_611.jpg" - }, - { - "bbox": [ - 311.52, - 601.7417061611374, - 327.35999999999996, - 611.8187203791468 - ], - "image_path": "equations_inline/0_311_601_327_611.jpg" - }, - { - "bbox": [ - 494.4, - 601.7417061611374, - 510.71999999999997, - 611.8187203791468 - ], - "image_path": "equations_inline/0_494_601_510_611.jpg" - }, - { - "bbox": [ - 210.72, - 612.7784360189573, - 255.83999999999997, - 623.335308056872 - ], - "image_path": "equations_inline/0_210_612_255_623.jpg" - }, - { - "bbox": [ - 81.6, - 623.8151658767772, - 104.16, - 633.8921800947867 - ], - "image_path": "equations_inline/0_81_623_104_633.jpg" - }, - { - "bbox": [ - 266.4, - 690.5154028436018, - 282.71999999999997, - 701.0722748815165 - ], - "image_path": "equations_inline/0_266_690_282_701.jpg" - }, - { - "bbox": [ - 59.519999999999996, - 701.0722748815165, - 76.8, - 711.6291469194313 - ], - "image_path": "equations_inline/0_59_701_76_711.jpg" - }, - { - "bbox": [ - 188.64, - 722.6658767772511, - 223.67999999999998, - 733.702606635071 - ], - "image_path": "equations_inline/0_188_722_223_733.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 50.68906784057617, - 612.0, - 58.688968658447266 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 60, - 74, - 552.5773315429688, - 754.504150390625 - ], - "layout_label": "U", - "sub_layout": [], - "bad_boxes": [ - [ - 312.4909973144531, - 602.4254150390625, - 552.5612182617188, - 754.5037231445312 - ], - [ - 60, - 74, - 420, - 582 - ] - ] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 60.490997314453125, - 602.3204956054688, - 300.5420227050781, - 754.504150390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "these coefficients are also", - "origin": [ - 60.49129867553711, - 609.25048828125 - ], - "bbox": [ - 60.49129867553711, - 602.5255126953125, - 170.52528381347656, - 611.5255126953125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 170.52528381347656, - 609.25048828125 - ], - "bbox": [ - 170.52528381347656, - 602.3204956054688, - 181.4305877685547, - 617.8724975585938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "C", - "origin": [ - 181.4738006591797, - 609.25048828125 - ], - "bbox": [ - 181.4738006591797, - 602.5255126953125, - 187.46780395507812, - 611.5255126953125 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "33", - "origin": [ - 187.42669677734375, - 610.7244873046875 - ], - "bbox": [ - 187.42669677734375, - 605.9695434570312, - 194.87789916992188, - 612.3330688476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " to within statistical sig-", - "origin": [ - 194.87789916992188, - 610.7244873046875 - ], - "bbox": [ - 194.87789916992188, - 602.5255126953125, - 300.4788513183594, - 612.99951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 602.3204956054688, - 300.4788513183594, - 617.8724975585938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "nificance.", - "origin": [ - 60.4910888671875, - 620.24853515625 - ], - "bbox": [ - 60.4910888671875, - 613.5235595703125, - 101.06309509277344, - 622.5235595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.4910888671875, - 613.5235595703125, - 101.06309509277344, - 622.5235595703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Additionally, although C", - "origin": [ - 110.32589721679688, - 620.24853515625 - ], - "bbox": [ - 110.32589721679688, - 613.5235595703125, - 217.63377380371094, - 622.5235595703125 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 217.58729553222656, - 621.722900390625 - ], - "bbox": [ - 217.58729553222656, - 616.9679565429688, - 225.0391845703125, - 623.3314819335938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 225.0391845703125, - 621.722900390625 - ], - "bbox": [ - 225.0391845703125, - 613.3189086914062, - 236.64959716796875, - 630.3449096679688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " C", - "origin": [ - 236.64959716796875, - 620.2489013671875 - ], - "bbox": [ - 236.64959716796875, - 613.52392578125, - 247.22190856933594, - 622.52392578125 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "55", - "origin": [ - 247.23770141601562, - 621.722900390625 - ], - "bbox": [ - 247.23770141601562, - 616.9679565429688, - 254.68960571289062, - 623.3314819335938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", these are", - "origin": [ - 254.72120666503906, - 620.2489013671875 - ], - "bbox": [ - 254.72120666503906, - 613.52392578125, - 300.522216796875, - 622.52392578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.32589721679688, - 613.3189086914062, - 300.522216796875, - 630.3449096679688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "also", - "origin": [ - 60.491302490234375, - 631.2468872070312 - ], - "bbox": [ - 60.491302490234375, - 624.5219116210938, - 76.97930908203125, - 633.5219116210938 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 76.97930908203125, - 631.2468872070312 - ], - "bbox": [ - 76.97930908203125, - 624.31689453125, - 90.09860229492188, - 639.868896484375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "C", - "origin": [ - 90.08509826660156, - 631.2468872070312 - ], - "bbox": [ - 90.08509826660156, - 624.5219116210938, - 96.0791015625, - 633.5219116210938 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "66", - "origin": [ - 96.09449768066406, - 632.7213134765625 - ], - "bbox": [ - 96.09449768066406, - 627.9663696289062, - 103.54571533203125, - 634.3298950195312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ".", - "origin": [ - 103.5779037475586, - 631.247314453125 - ], - "bbox": [ - 103.5779037475586, - 624.5223388671875, - 106.10690307617188, - 633.5223388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491302490234375, - 624.31689453125, - 106.10690307617188, - 639.868896484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Even though the relationships discussed", - "origin": [ - 118.48820495605469, - 631.247314453125 - ], - "bbox": [ - 118.48820495605469, - 624.5223388671875, - 300.4718322753906, - 633.5223388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 118.48820495605469, - 624.5223388671875, - 300.4718322753906, - 633.5223388671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "above imply a Hexagonal model, these latter relation-", - "origin": [ - 60.49130630493164, - 642.2462158203125 - ], - "bbox": [ - 60.49130630493164, - 635.521240234375, - 300.5024108886719, - 644.521240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 635.521240234375, - 300.5024108886719, - 644.521240234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ships imply that the CST’s may only be considered to be", - "origin": [ - 60.49130630493164, - 653.2451171875 - ], - "bbox": [ - 60.49130630493164, - 646.5201416015625, - 300.5356750488281, - 655.5201416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 646.5201416015625, - 300.5356750488281, - 655.5201416015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "\"weakly\" anisotropic, as opposed to muscle which may", - "origin": [ - 60.49130630493164, - 664.2440185546875 - ], - "bbox": [ - 60.49130630493164, - 657.51904296875, - 300.50689697265625, - 666.51904296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 657.51904296875, - 300.50689697265625, - 666.51904296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "be considered as \"strongly\" anisotropic where there is of-", - "origin": [ - 60.49130630493164, - 675.242919921875 - ], - "bbox": [ - 60.49130630493164, - 668.5179443359375, - 300.49969482421875, - 677.5179443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 668.5179443359375, - 300.49969482421875, - 677.5179443359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ten a large disparity between the elastic cooefficients.", - "origin": [ - 60.49130630493164, - 686.2418212890625 - ], - "bbox": [ - 60.49130630493164, - 679.516845703125, - 300.5420227050781, - 688.516845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 679.516845703125, - 300.5420227050781, - 688.516845703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "The issue of the disparity between, for example C", - "origin": [ - 60.49130630493164, - 697.24072265625 - ], - "bbox": [ - 60.49130630493164, - 690.5157470703125, - 273.87408447265625, - 699.5157470703125 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 273.8833923339844, - 698.7684936523438 - ], - "bbox": [ - 273.8833923339844, - 694.0135498046875, - 281.3346252441406, - 700.3770751953125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " and", - "origin": [ - 281.3346252441406, - 698.7684936523438 - ], - "bbox": [ - 281.3346252441406, - 690.5128173828125, - 300.4905090332031, - 701.0435180664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49130630493164, - 690.5128173828125, - 300.4905090332031, - 701.0435180664062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "C", - "origin": [ - 60.49110412597656, - 708.2357788085938 - ], - "bbox": [ - 60.49110412597656, - 701.5108032226562, - 66.485107421875, - 710.5108032226562 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "66", - "origin": [ - 66.50080108642578, - 709.7669067382812 - ], - "bbox": [ - 66.50080108642578, - 705.011962890625, - 73.95201873779297, - 711.37548828125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", however, can be more thoroughly quantified in the", - "origin": [ - 73.98419952392578, - 708.2362060546875 - ], - "bbox": [ - 73.98419952392578, - 701.51123046875, - 300.517822265625, - 710.51123046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49110412597656, - 701.5108032226562, - 300.517822265625, - 711.37548828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "context of the elastic anisotropy factor for a Hexagonal", - "origin": [ - 60.49140167236328, - 719.2341918945312 - ], - "bbox": [ - 60.49140167236328, - 712.5092163085938, - 300.5384216308594, - 721.5092163085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49140167236328, - 712.5092163085938, - 300.5384216308594, - 721.5092163085938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "system using the relationship C", - "origin": [ - 60.49140167236328, - 730.232177734375 - ], - "bbox": [ - 60.49140167236328, - 723.5072021484375, - 196.25909423828125, - 732.5072021484375 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 196.2707977294922, - 731.7637939453125 - ], - "bbox": [ - 196.2707977294922, - 727.0088500976562, - 203.72268676757812, - 733.3723754882812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "/C", - "origin": [ - 203.69760131835938, - 730.2330932617188 - ], - "bbox": [ - 203.69760131835938, - 723.5081176757812, - 213.15660095214844, - 732.5081176757812 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "66", - "origin": [ - 213.16529846191406, - 731.7637939453125 - ], - "bbox": [ - 213.16529846191406, - 727.0088500976562, - 220.6171875, - 733.3723754882812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", and this quantity", - "origin": [ - 220.64869689941406, - 730.2330932617188 - ], - "bbox": [ - 220.64869689941406, - 723.5081176757812, - 300.48321533203125, - 732.5081176757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49140167236328, - 723.5072021484375, - 300.48321533203125, - 733.3723754882812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "is seen to be almost always less than unity. Implement-", - "origin": [ - 60.490997314453125, - 741.2310791015625 - ], - "bbox": [ - 60.490997314453125, - 734.506103515625, - 300.48681640625, - 743.506103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.490997314453125, - 734.506103515625, - 300.48681640625, - 743.506103515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ing Student’s t-test, (two-tailed, unpaired), we see that", - "origin": [ - 60.490997314453125, - 752.2291259765625 - ], - "bbox": [ - 60.490997314453125, - 745.504150390625, - 300.5110778808594, - 754.504150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.490997314453125, - 745.504150390625, - 300.5110778808594, - 754.504150390625 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 312.4909973144531, - 602.4254150390625, - 552.5612182617188, - 754.5037231445312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "C", - "origin": [ - 312.4909973144531, - 609.2496948242188 - ], - "bbox": [ - 312.4909973144531, - 602.5247192382812, - 318.4849853515625, - 611.5247192382812 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 318.5007019042969, - 610.7244873046875 - ], - "bbox": [ - 318.5007019042969, - 605.9695434570312, - 325.9526062011719, - 612.3330688476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " is about a factor of 1.14 lower than C", - "origin": [ - 325.9526062011719, - 610.7244873046875 - ], - "bbox": [ - 325.9526062011719, - 602.5255126953125, - 501.66253662109375, - 612.99951171875 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "66", - "origin": [ - 501.6755065917969, - 610.7244873046875 - ], - "bbox": [ - 501.6755065917969, - 605.9695434570312, - 509.1267395019531, - 612.3330688476562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " (P", - "origin": [ - 509.1267395019531, - 610.7244873046875 - ], - "bbox": [ - 509.1267395019531, - 602.5255126953125, - 522.6141967773438, - 612.99951171875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E51", - "color": 2301727, - "ascender": 0.75, - "descender": -0.23899999260902405, - "text": "<", - "origin": [ - 522.5952758789062, - 609.25048828125 - ], - "bbox": [ - 522.5952758789062, - 602.4254150390625, - 529.5252685546875, - 611.4254150390625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "0.01).", - "origin": [ - 529.5684814453125, - 609.25048828125 - ], - "bbox": [ - 529.5684814453125, - 602.5255126953125, - 552.5275268554688, - 611.5255126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4909973144531, - 602.4254150390625, - 552.5275268554688, - 612.99951171875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Therefore, although these parameters appear to be simi-", - "origin": [ - 312.4911804199219, - 620.24853515625 - ], - "bbox": [ - 312.4911804199219, - 613.5235595703125, - 552.480712890625, - 622.5235595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 613.5235595703125, - 552.480712890625, - 622.5235595703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "lar to each other, these differences are statistically signif-", - "origin": [ - 312.4911804199219, - 631.2465209960938 - ], - "bbox": [ - 312.4911804199219, - 624.5215454101562, - 552.4935302734375, - 633.5215454101562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 624.5215454101562, - 552.4935302734375, - 633.5215454101562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "icant and indicate transverse isotropy.", - "origin": [ - 312.4911804199219, - 642.2445068359375 - ], - "bbox": [ - 312.4911804199219, - 635.51953125, - 472.3564147949219, - 644.51953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 635.51953125, - 472.3564147949219, - 644.51953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "A few comments are in order concerning the values", - "origin": [ - 321.5055847167969, - 653.2424926757812 - ], - "bbox": [ - 321.5055847167969, - 646.5175170898438, - 552.5158081054688, - 655.5175170898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.5055847167969, - 646.5175170898438, - 552.5158081054688, - 655.5175170898438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "we have obtained from our inversions. First, while esti-", - "origin": [ - 312.4911804199219, - 664.2413940429688 - ], - "bbox": [ - 312.4911804199219, - 657.5164184570312, - 552.4735107421875, - 666.5164184570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 657.5164184570312, - 552.4735107421875, - 666.5164184570312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "mates for the material parameters of brain tissue vary sig-", - "origin": [ - 312.4911804199219, - 675.2402954101562 - ], - "bbox": [ - 312.4911804199219, - 668.5153198242188, - 552.5384521484375, - 677.5153198242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 668.5153198242188, - 552.5384521484375, - 677.5153198242188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "nificantly in the literature, values on the order of 2–2.5", - "origin": [ - 312.4911804199219, - 686.2391967773438 - ], - "bbox": [ - 312.4911804199219, - 679.5142211914062, - 552.4853515625, - 688.5142211914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 679.5142211914062, - 552.4853515625, - 688.5142211914062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "kPa have been reported for the shear modulus of the", - "origin": [ - 312.4911804199219, - 697.2380981445312 - ], - "bbox": [ - 312.4911804199219, - 690.5131225585938, - 552.5184936523438, - 699.5131225585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 690.5131225585938, - 552.5184936523438, - 699.5131225585938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "brain including gray and white matter (12,16,31), assum-", - "origin": [ - 312.4911804199219, - 708.2369995117188 - ], - "bbox": [ - 312.4911804199219, - 701.5120239257812, - 552.4861450195312, - 710.5120239257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 701.5120239257812, - 552.4861450195312, - 710.5120239257812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ing isotropy and a density of", - "origin": [ - 312.4911804199219, - 719.2359008789062 - ], - "bbox": [ - 312.4911804199219, - 712.5109252929688, - 435.205322265625, - 721.5109252929688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " r", - "origin": [ - 435.205322265625, - 719.2359008789062 - ], - "bbox": [ - 435.205322265625, - 711.9279174804688, - 443.1891784667969, - 721.296875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 443.1891784667969, - 719.2359008789062 - ], - "bbox": [ - 443.1891784667969, - 712.305908203125, - 453.5562744140625, - 727.85791015625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 1000 kg/m", - "origin": [ - 453.5562744140625, - 719.2359008789062 - ], - "bbox": [ - 453.5562744140625, - 712.5109252929688, - 501.2004089355469, - 721.5109252929688 - ] - }, - { - "size": 6.363489627838135, - "flags": 5, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "3", - "origin": [ - 501.1651916503906, - 715.2661743164062 - ], - "bbox": [ - 501.1651916503906, - 710.51123046875, - 504.8911437988281, - 716.874755859375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ". Assuming", - "origin": [ - 504.9068908691406, - 719.2346801757812 - ], - "bbox": [ - 504.9068908691406, - 712.5097045898438, - 552.5052490234375, - 721.5097045898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4911804199219, - 710.51123046875, - 552.5052490234375, - 727.85791015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "this same value for the density, here, we observe values", - "origin": [ - 312.49139404296875, - 730.2327270507812 - ], - "bbox": [ - 312.49139404296875, - 723.5077514648438, - 552.5151977539062, - 732.5077514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 723.5077514648438, - 552.5151977539062, - 732.5077514648438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "on the order of 4–4.6 kPa for the white matter tracts,", - "origin": [ - 312.49139404296875, - 741.230712890625 - ], - "bbox": [ - 312.49139404296875, - 734.5057373046875, - 552.511474609375, - 743.5057373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 734.5057373046875, - 552.511474609375, - 743.5057373046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "which is twice as stiff as that of averaged brain matter", - "origin": [ - 312.49139404296875, - 752.2286987304688 - ], - "bbox": [ - 312.49139404296875, - 745.5037231445312, - 552.5612182617188, - 754.5037231445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 745.5037231445312, - 552.5612182617188, - 754.5037231445312 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 432.3966979980469, - 256.1824645996094, - 552.5773315429688, - 404.1576232910156 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "FIG. 5. Values", - "origin": [ - 432.3966979980469, - 262.5167236328125 - ], - "bbox": [ - 432.3966979980469, - 256.1824645996094, - 485.3409118652344, - 264.182373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3966979980469, - 256.1824645996094, - 485.3409118652344, - 264.182373046875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "from", - "origin": [ - 491.9232177734375, - 262.5167236328125 - ], - "bbox": [ - 491.9232177734375, - 256.1824645996094, - 508.2229919433594, - 264.182373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 491.9232177734375, - 256.1824645996094, - 508.2229919433594, - 264.182373046875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "the", - "origin": [ - 514.8837280273438, - 262.5167236328125 - ], - "bbox": [ - 514.8837280273438, - 256.1824645996094, - 526.1235961914062, - 264.182373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.8837280273438, - 256.1824645996094, - 526.1235961914062, - 264.182373046875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "inver-", - "origin": [ - 532.741943359375, - 262.5167236328125 - ], - "bbox": [ - 532.741943359375, - 256.1824645996094, - 552.4896240234375, - 264.182373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 532.741943359375, - 256.1824645996094, - 552.4896240234375, - 264.182373046875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "sions for shear parameters, C", - "origin": [ - 432.3966979980469, - 272.4949951171875 - ], - "bbox": [ - 432.3966979980469, - 266.1607360839844, - 543.6456909179688, - 274.16064453125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "44", - "origin": [ - 543.6281127929688, - 273.855224609375 - ], - "bbox": [ - 543.6281127929688, - 269.3765869140625, - 550.2525024414062, - 275.0329284667969 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ",", - "origin": [ - 550.26123046875, - 272.49462890625 - ], - "bbox": [ - 550.26123046875, - 266.1603698730469, - 552.5092163085938, - 274.1602783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3966979980469, - 266.1603698730469, - 552.5092163085938, - 275.0329284667969 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "along the right and left CSTs for", - "origin": [ - 432.3970947265625, - 282.5289306640625 - ], - "bbox": [ - 432.3970947265625, - 276.1946716308594, - 552.516357421875, - 284.194580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3970947265625, - 276.1946716308594, - 552.516357421875, - 284.194580078125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "all five volunteers.", - "origin": [ - 432.3970947265625, - 292.50640869140625 - ], - "bbox": [ - 432.3970947265625, - 286.1721496582031, - 497.7754821777344, - 294.17205810546875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": " a,b:", - "origin": [ - 497.7754821777344, - 292.50640869140625 - ], - "bbox": [ - 497.7754821777344, - 286.0904846191406, - 514.7520751953125, - 294.1703796386719 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " real com-", - "origin": [ - 514.7520751953125, - 292.50640869140625 - ], - "bbox": [ - 514.7520751953125, - 286.1721496582031, - 552.5219116210938, - 294.17205810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3970947265625, - 286.0904846191406, - 552.5219116210938, - 294.17205810546875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "ponents of C", - "origin": [ - 432.3970947265625, - 302.48468017578125 - ], - "bbox": [ - 432.3970947265625, - 296.1504211425781, - 484.06207275390625, - 304.15032958984375 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "44", - "origin": [ - 484.04400634765625, - 303.8457946777344 - ], - "bbox": [ - 484.04400634765625, - 299.3671569824219, - 490.66778564453125, - 305.02349853515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " along the right", - "origin": [ - 490.66778564453125, - 303.8457946777344 - ], - "bbox": [ - 490.66778564453125, - 296.15093994140625, - 552.5507202148438, - 305.5114440917969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3970947265625, - 296.1504211425781, - 552.5507202148438, - 305.5114440917969 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "and left CSTs, respectively; (", - "origin": [ - 432.3970947265625, - 312.51947021484375 - ], - "bbox": [ - 432.3970947265625, - 306.1852111816406, - 538.73486328125, - 314.18511962890625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "c,d", - "origin": [ - 538.69580078125, - 312.51947021484375 - ], - "bbox": [ - 538.69580078125, - 306.1035461425781, - 550.431640625, - 314.1834411621094 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")", - "origin": [ - 550.4308471679688, - 312.51947021484375 - ], - "bbox": [ - 550.4308471679688, - 306.1852111816406, - 552.5108032226562, - 314.18511962890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3970947265625, - 306.1035461425781, - 552.5108032226562, - 314.18511962890625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "imaginary", - "origin": [ - 432.3971252441406, - 322.49774169921875 - ], - "bbox": [ - 432.3971252441406, - 316.1634826660156, - 467.0286865234375, - 324.16339111328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3971252441406, - 316.1634826660156, - 467.0286865234375, - 324.16339111328125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "components of", - "origin": [ - 473.4429931640625, - 322.49774169921875 - ], - "bbox": [ - 473.4429931640625, - 316.1634826660156, - 531.427001953125, - 324.16339111328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.4429931640625, - 316.1634826660156, - 531.427001953125, - 324.16339111328125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 537.9028930664062, - 322.49774169921875 - ], - "bbox": [ - 537.9028930664062, - 316.1634826660156, - 543.6468505859375, - 324.16339111328125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "44", - "origin": [ - 543.6281127929688, - 323.8583984375 - ], - "bbox": [ - 543.6281127929688, - 319.3797607421875, - 550.2525024414062, - 325.0361022949219 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ";", - "origin": [ - 550.26123046875, - 322.497802734375 - ], - "bbox": [ - 550.26123046875, - 316.1635437011719, - 552.5092163085938, - 324.1634521484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 537.9028930664062, - 316.1634826660156, - 552.5092163085938, - 325.0361022949219 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "(", - "origin": [ - 432.3970947265625, - 332.5320739746094 - ], - "bbox": [ - 432.3970947265625, - 326.19781494140625, - 434.4770812988281, - 334.1977233886719 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "e,f", - "origin": [ - 434.4946594238281, - 332.5320739746094 - ], - "bbox": [ - 434.4946594238281, - 326.11614990234375, - 443.9825744628906, - 334.196044921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ") shear wave velocities; (", - "origin": [ - 443.9625549316406, - 332.5320739746094 - ], - "bbox": [ - 443.9625549316406, - 326.19781494140625, - 538.5645141601562, - 334.1977233886719 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "g,h", - "origin": [ - 538.5261840820312, - 332.5320739746094 - ], - "bbox": [ - 538.5261840820312, - 326.11614990234375, - 550.4300537109375, - 334.196044921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")", - "origin": [ - 550.431640625, - 332.5320739746094 - ], - "bbox": [ - 550.431640625, - 326.19781494140625, - 552.5115966796875, - 334.1977233886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3970947265625, - 326.11614990234375, - 552.5115966796875, - 334.1977233886719 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "attenuation. Velocity and attenu-", - "origin": [ - 432.3979187011719, - 342.5103454589844 - ], - "bbox": [ - 432.3979187011719, - 336.17608642578125, - 552.5773315429688, - 344.1759948730469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 336.17608642578125, - 552.5773315429688, - 344.1759948730469 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "ation calculated using the Eqs. 8", - "origin": [ - 432.3979187011719, - 352.4886169433594 - ], - "bbox": [ - 432.3979187011719, - 346.15435791015625, - 552.5252685546875, - 354.1542663574219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 346.15435791015625, - 552.5252685546875, - 354.1542663574219 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "and 9. Red, green, blue, ma-", - "origin": [ - 432.3979187011719, - 362.52288818359375 - ], - "bbox": [ - 432.3979187011719, - 356.1886291503906, - 552.5404663085938, - 364.18853759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 356.1886291503906, - 552.5404663085938, - 364.18853759765625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "genta, and cyan represent volun-", - "origin": [ - 432.3979187011719, - 372.50115966796875 - ], - "bbox": [ - 432.3979187011719, - 366.1669006347656, - 552.5380249023438, - 374.16680908203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 366.1669006347656, - 552.5380249023438, - 374.16680908203125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "teers", - "origin": [ - 432.3979187011719, - 382.47943115234375 - ], - "bbox": [ - 432.3979187011719, - 376.1451721191406, - 450.21368408203125, - 384.14508056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 376.1451721191406, - 450.21368408203125, - 384.14508056640625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "1–5,", - "origin": [ - 460.1207580566406, - 382.47943115234375 - ], - "bbox": [ - 460.1207580566406, - 376.1451721191406, - 475.2005920410156, - 384.14508056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 460.1207580566406, - 376.1451721191406, - 475.2005920410156, - 384.14508056640625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "respectively.", - "origin": [ - 485.0660705566406, - 382.47943115234375 - ], - "bbox": [ - 485.0660705566406, - 376.1451721191406, - 529.2662353515625, - 384.14508056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 485.0660705566406, - 376.1451721191406, - 529.2662353515625, - 384.14508056640625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "The", - "origin": [ - 539.2069091796875, - 382.47943115234375 - ], - "bbox": [ - 539.2069091796875, - 376.1451721191406, - 552.5267333984375, - 384.14508056640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 539.2069091796875, - 376.1451721191406, - 552.5267333984375, - 384.14508056640625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "stiffness has been normalized by", - "origin": [ - 432.3979187011719, - 392.5137023925781 - ], - "bbox": [ - 432.3979187011719, - 386.179443359375, - 552.4867553710938, - 394.1793518066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 386.179443359375, - 552.4867553710938, - 394.1793518066406 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "the density.", - "origin": [ - 432.3979187011719, - 402.4919738769531 - ], - "bbox": [ - 432.3979187011719, - 396.15771484375, - 473.65020751953125, - 404.1576232910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 432.3979187011719, - 396.15771484375, - 473.65020751953125, - 404.1576232910156 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 60.4937744140625, - 50.68906784057617, - 552.5404052734375, - 58.688968658447266 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "8", - "origin": [ - 60.4937744140625, - 56.666748046875 - ], - "bbox": [ - 60.4937744140625, - 50.68906784057617, - 64.90972137451172, - 58.688968658447266 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.4937744140625, - 50.68906784057617, - 64.90972137451172, - 58.688968658447266 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Romano et al.", - "origin": [ - 501.5626525878906, - 56.666748046875 - ], - "bbox": [ - 501.5626525878906, - 50.68906784057617, - 552.5404052734375, - 58.688968658447266 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 501.5626525878906, - 50.68906784057617, - 552.5404052734375, - 58.688968658447266 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 3, - "type": 0, - "bbox": [ - 60.4937744140625, - 50.68906784057617, - 552.5404052734375, - 58.688968658447266 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "8", - "origin": [ - 60.4937744140625, - 56.666748046875 - ], - "bbox": [ - 60.4937744140625, - 50.68906784057617, - 64.90972137451172, - 58.688968658447266 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.4937744140625, - 50.68906784057617, - 64.90972137451172, - 58.688968658447266 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Romano et al.", - "origin": [ - 501.5626525878906, - 56.666748046875 - ], - "bbox": [ - 501.5626525878906, - 50.68906784057617, - 552.5404052734375, - 58.688968658447266 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 501.5626525878906, - 50.68906784057617, - 552.5404052734375, - 58.688968658447266 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 810.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\346\226\207\345\255\227\346\241\206\351\207\215\345\217\240layout.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\346\226\207\345\255\227\346\241\206\351\207\215\345\217\240layout.pdf/preproc_out.json" deleted file mode 100644 index 25f168779..000000000 --- "a/tests/assets/pre_proc_results/\346\226\207\345\255\227\346\241\206\351\207\215\345\217\240layout.pdf/preproc_out.json" +++ /dev/null @@ -1,35119 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 48.576499938964844, - 139.21075439453125, - 207.39349365234375, - 739.332275390625 - ], - "lines": [ - { - "spans": [ - { - "size": 23.989999771118164, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "T", - "origin": [ - 48.576499938964844, - 165.0 - ], - "bbox": [ - 48.576499938964844, - 139.21075439453125, - 61.914939880371094, - 172.17300415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.576499938964844, - 139.21075439453125, - 61.914939880371094, - 172.17300415039062 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "he body responds", - "origin": [ - 63.13779830932617, - 154.0 - ], - "bbox": [ - 63.13779830932617, - 145.07749938964844, - 131.5206756591797, - 156.48170471191406 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " to drugs, environ-", - "origin": [ - 131.5206756591797, - 154.0 - ], - "bbox": [ - 131.5206756591797, - 145.26010131835938, - 207.37191772460938, - 156.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 63.13779830932617, - 145.07749938964844, - 207.37191772460938, - 156.48170471191406 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mental ", - "origin": [ - 63.137794494628906, - 165.0 - ], - "bbox": [ - 63.137794494628906, - 156.26010131835938, - 92.8053207397461, - 167.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 63.137794494628906, - 156.26010131835938, - 92.8053207397461, - 167.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "chemicals, ", - "origin": [ - 105.16734313964844, - 165.0 - ], - "bbox": [ - 105.16734313964844, - 156.26010131835938, - 148.14476013183594, - 167.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.16734313964844, - 156.26010131835938, - 148.14476013183594, - 167.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "endogenous", - "origin": [ - 160.5067901611328, - 165.0 - ], - "bbox": [ - 160.5067901611328, - 156.26010131835938, - 207.38600158691406, - 167.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 160.5067901611328, - 156.26010131835938, - 207.38600158691406, - 167.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "steroids and bile acids by inducing the co-", - "origin": [ - 48.6376953125, - 176.0 - ], - "bbox": [ - 48.6376953125, - 167.26010131835938, - 207.36614990234375, - 178.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 167.26010131835938, - 207.36614990234375, - 178.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ordinated expression of a battery of drug-", - "origin": [ - 48.6376953125, - 187.0 - ], - "bbox": [ - 48.6376953125, - 178.26010131835938, - 207.34364318847656, - 189.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 178.26010131835938, - 207.34364318847656, - 189.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "detoxification genes in tissues such as", - "origin": [ - 48.6376953125, - 198.0 - ], - "bbox": [ - 48.6376953125, - 189.26010131835938, - 207.38519287109375, - 200.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 189.26010131835938, - 207.38519287109375, - 200.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "liver and intestine. These include the cy-", - "origin": [ - 48.6376953125, - 209.0 - ], - "bbox": [ - 48.6376953125, - 200.26010131835938, - 207.3893280029297, - 211.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 200.26010131835938, - 207.3893280029297, - 211.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tochromes P450 (CYPs), which are the", - "origin": [ - 48.6376953125, - 220.0 - ], - "bbox": [ - 48.6376953125, - 211.26010131835938, - 207.383544921875, - 222.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 211.26010131835938, - 207.383544921875, - 222.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "enzymes responsible for oxidative, perox-", - "origin": [ - 48.6376953125, - 231.0 - ], - "bbox": [ - 48.6376953125, - 222.26010131835938, - 207.3735809326172, - 233.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 222.26010131835938, - 207.3735809326172, - 233.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "idative and reductive metabolism of toxic", - "origin": [ - 48.6376953125, - 242.0 - ], - "bbox": [ - 48.6376953125, - 233.26010131835938, - 207.3793487548828, - 244.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 233.26010131835938, - 207.3793487548828, - 244.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "compounds. Expression of drug transport", - "origin": [ - 48.6376953125, - 253.0 - ], - "bbox": [ - 48.6376953125, - 244.26010131835938, - 207.37355041503906, - 255.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 244.26010131835938, - 207.37355041503906, - 255.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "proteins such as P-glycoprotein (encoded", - "origin": [ - 48.6376953125, - 264.0 - ], - "bbox": [ - 48.6376953125, - 255.26010131835938, - 207.38934326171875, - 266.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 255.26010131835938, - 207.38934326171875, - 266.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by ", - "origin": [ - 48.6376953125, - 275.0 - ], - "bbox": [ - 48.6376953125, - 266.2601013183594, - 60.50337600708008, - 277.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1 ", - "origin": [ - 61.26863479614258, - 275.0 - ], - "bbox": [ - 61.26863479614258, - 267.106689453125, - 87.29412078857422, - 277.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and also known as MDR1 and", - "origin": [ - 88.0577163696289, - 275.0 - ], - "bbox": [ - 88.0577163696289, - 266.2601013183594, - 207.3843231201172, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 266.2601013183594, - 207.3843231201172, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ABCB1) leads to the efficient efflux these", - "origin": [ - 48.638526916503906, - 286.0 - ], - "bbox": [ - 48.638526916503906, - 277.2601013183594, - 207.3851776123047, - 288.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 277.2601013183594, - 207.3851776123047, - 288.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drugs from the body. Activation of drug", - "origin": [ - 48.638526916503906, - 297.0 - ], - "bbox": [ - 48.638526916503906, - 288.2601013183594, - 207.36776733398438, - 299.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 288.2601013183594, - 207.36776733398438, - 299.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "transport can be beneficial in instances", - "origin": [ - 48.638526916503906, - 308.0 - ], - "bbox": [ - 48.638526916503906, - 299.2601013183594, - 207.38522338867188, - 310.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 299.2601013183594, - 207.38522338867188, - 310.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "where it is important to remove toxins", - "origin": [ - 48.638526916503906, - 319.0 - ], - "bbox": [ - 48.638526916503906, - 310.2601013183594, - 207.39015197753906, - 321.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 310.2601013183594, - 207.39015197753906, - 321.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "from the body, but detrimental in situa-", - "origin": [ - 48.638526916503906, - 330.0 - ], - "bbox": [ - 48.638526916503906, - 321.2601013183594, - 207.39349365234375, - 332.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 321.2601013183594, - 207.39349365234375, - 332.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tions where it is important for a patient", - "origin": [ - 48.638526916503906, - 341.0 - ], - "bbox": [ - 48.638526916503906, - 332.2601013183594, - 207.3910675048828, - 343.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 332.2601013183594, - 207.3910675048828, - 343.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to retain effective levels of a therapeutic", - "origin": [ - 48.638526916503906, - 352.0 - ], - "bbox": [ - 48.638526916503906, - 343.2601013183594, - 207.39271545410156, - 354.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 343.2601013183594, - 207.39271545410156, - 354.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drug. In this issue, Snyold ", - "origin": [ - 48.638526916503906, - 363.0 - ], - "bbox": [ - 48.638526916503906, - 354.2601013183594, - 152.93385314941406, - 365.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al.", - "origin": [ - 153.38784790039062, - 363.0 - ], - "bbox": [ - 153.38784790039062, - 355.106689453125, - 171.81468200683594, - 365.2409973144531 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 171.81480407714844, - 359.67999267578125 - ], - "bbox": [ - 171.81480407714844, - 354.8677978515625, - 174.43798828125, - 360.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 174.43798828125, - 359.67999267578125 - ], - "bbox": [ - 174.43798828125, - 350.9400939941406, - 177.27389526367188, - 365.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "demon-", - "origin": [ - 177.27389526367188, - 363.0 - ], - "bbox": [ - 177.27389526367188, - 354.2601013183594, - 207.3780059814453, - 365.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 350.9400939941406, - 207.3780059814453, - 365.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "strate that steroid xenobiotic receptor", - "origin": [ - 48.63800048828125, - 374.0 - ], - "bbox": [ - 48.63800048828125, - 365.2601013183594, - 207.39212036132812, - 376.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 365.2601013183594, - 207.39212036132812, - 376.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(SXR; also known as PXR), a transcription", - "origin": [ - 48.63800048828125, - 385.0 - ], - "bbox": [ - 48.63800048828125, - 376.2601013183594, - 207.37713623046875, - 387.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 376.2601013183594, - 207.37713623046875, - 387.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "factor known to mediate drug, xenobiotic", - "origin": [ - 48.63800048828125, - 396.0 - ], - "bbox": [ - 48.63800048828125, - 387.2601013183594, - 207.3780059814453, - 398.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 387.2601013183594, - 207.3780059814453, - 398.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and steroid induction of the major liver", - "origin": [ - 48.63800048828125, - 407.0 - ], - "bbox": [ - 48.63800048828125, - 398.2601013183594, - 207.36392211914062, - 409.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 398.2601013183594, - 207.36392211914062, - 409.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drug metabolizing enzyme, can also regu-", - "origin": [ - 48.63800048828125, - 418.0 - ], - "bbox": [ - 48.63800048828125, - 409.2601013183594, - 207.3780059814453, - 420.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 409.2601013183594, - 207.3780059814453, - 420.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "late the expression of a drug efflux path-", - "origin": [ - 48.63800048828125, - 429.0 - ], - "bbox": [ - 48.63800048828125, - 420.2601013183594, - 207.3896942138672, - 431.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 420.2601013183594, - 207.3896942138672, - 431.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "way, indicating a novel strategy to", - "origin": [ - 48.63800048828125, - 440.0 - ], - "bbox": [ - 48.63800048828125, - 431.2601013183594, - 207.3887939453125, - 442.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 431.2601013183594, - 207.3887939453125, - 442.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "control drug clearance.", - "origin": [ - 48.63800048828125, - 451.0 - ], - "bbox": [ - 48.63800048828125, - 442.2601013183594, - 136.88027954101562, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 442.2601013183594, - 136.88027954101562, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "CYP3A4, the most abundant drug-me-", - "origin": [ - 57.142181396484375, - 462.0 - ], - "bbox": [ - 57.142181396484375, - 453.2601013183594, - 207.38800048828125, - 464.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.142181396484375, - 453.2601013183594, - 207.38800048828125, - 464.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tabolizing enzyme in the liver and", - "origin": [ - 48.63800048828125, - 473.0 - ], - "bbox": [ - 48.63800048828125, - 464.2601013183594, - 179.47589111328125, - 475.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 464.2601013183594, - 179.47589111328125, - 475.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "intestine, is responsible for the", - "origin": [ - 48.63800048828125, - 484.0 - ], - "bbox": [ - 48.63800048828125, - 475.2601013183594, - 179.48423767089844, - 486.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 475.2601013183594, - 179.48423767089844, - 486.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "metabolism of 50% of all drugs.", - "origin": [ - 48.63800048828125, - 495.0 - ], - "bbox": [ - 48.63800048828125, - 486.2601013183594, - 179.48753356933594, - 497.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 486.2601013183594, - 179.48753356933594, - 497.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Many drugs are substrates for both", - "origin": [ - 48.63800048828125, - 506.0 - ], - "bbox": [ - 48.63800048828125, - 497.2601013183594, - 179.47755432128906, - 508.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 497.2601013183594, - 179.47755432128906, - 508.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "CYP3A4 and P-glycoprotein, a", - "origin": [ - 48.63800048828125, - 517.0 - ], - "bbox": [ - 48.63800048828125, - 508.2601013183594, - 179.4875030517578, - 519.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 508.2601013183594, - 179.4875030517578, - 519.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "broad-specificity efflux pump pro-", - "origin": [ - 48.63800048828125, - 528.0 - ], - "bbox": [ - 48.63800048828125, - 519.2600708007812, - 179.47756958007812, - 530.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 519.2600708007812, - 179.47756958007812, - 530.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tein encoded by the gene ", - "origin": [ - 48.63800048828125, - 539.0 - ], - "bbox": [ - 48.63800048828125, - 530.2600708007812, - 146.25595092773438, - 541.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 145.7230987548828, - 539.0 - ], - "bbox": [ - 145.7230987548828, - 531.106689453125, - 169.32249450683594, - 541.2410278320312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". It", - "origin": [ - 169.3067169189453, - 539.0 - ], - "bbox": [ - 169.3067169189453, - 530.2600708007812, - 179.48001098632812, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 530.2600708007812, - 179.48001098632812, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was first demonstrated in 1996", - "origin": [ - 48.63799285888672, - 550.0 - ], - "bbox": [ - 48.63799285888672, - 541.2600708007812, - 179.48667907714844, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63799285888672, - 541.2600708007812, - 179.48667907714844, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "that ", - "origin": [ - 48.63799285888672, - 560.9999389648438 - ], - "bbox": [ - 48.63799285888672, - 552.260009765625, - 66.84156036376953, - 563.3322143554688 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 68.74639892578125, - 560.9999389648438 - ], - "bbox": [ - 68.74639892578125, - 553.1066284179688, - 92.39060974121094, - 563.240966796875 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " expression is coordi-", - "origin": [ - 92.39060974121094, - 560.9999389648438 - ], - "bbox": [ - 92.39060974121094, - 552.260009765625, - 179.4866943359375, - 563.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63799285888672, - 552.260009765625, - 179.4866943359375, - 563.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "nated with expression of ", - "origin": [ - 48.63882064819336, - 571.9999389648438 - ], - "bbox": [ - 48.63882064819336, - 563.260009765625, - 146.07835388183594, - 574.3322143554688 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A4", - "origin": [ - 145.9546661376953, - 571.9999389648438 - ], - "bbox": [ - 145.9546661376953, - 564.1066284179688, - 177.10043334960938, - 574.240966796875 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 177.09957885742188, - 571.9999389648438 - ], - "bbox": [ - 177.09957885742188, - 563.260009765625, - 179.48167419433594, - 574.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63882064819336, - 563.260009765625, - 179.48167419433594, - 574.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "with both gene products being in-", - "origin": [ - 48.638824462890625, - 582.9999389648438 - ], - "bbox": [ - 48.638824462890625, - 574.260009765625, - 179.4750518798828, - 585.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638824462890625, - 574.260009765625, - 179.4750518798828, - 585.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duced by the same spectrum of", - "origin": [ - 48.638824462890625, - 593.9998779296875 - ], - "bbox": [ - 48.638824462890625, - 585.2599487304688, - 179.49000549316406, - 596.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638824462890625, - 585.2599487304688, - 179.49000549316406, - 596.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drugs", - "origin": [ - 48.638824462890625, - 604.9998779296875 - ], - "bbox": [ - 48.638824462890625, - 596.2599487304688, - 69.74738311767578, - 607.3321533203125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 69.74649810791016, - 601.6799926757812 - ], - "bbox": [ - 69.74649810791016, - 596.8677978515625, - 72.36967468261719, - 602.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". ", - "origin": [ - 72.36669921875, - 605.0 - ], - "bbox": [ - 72.36669921875, - 596.2600708007812, - 77.12924194335938, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638824462890625, - 596.2599487304688, - 77.12924194335938, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "P-glycoprotein ", - "origin": [ - 91.5330581665039, - 605.0 - ], - "bbox": [ - 91.5330581665039, - 596.2600708007812, - 150.3734130859375, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.5330581665039, - 596.2600708007812, - 150.3734130859375, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and", - "origin": [ - 164.77725219726562, - 605.0 - ], - "bbox": [ - 164.77725219726562, - 596.2600708007812, - 179.47323608398438, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 164.77725219726562, - 596.2600708007812, - 179.47323608398438, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "CYP3A4 are colocalized in liver", - "origin": [ - 48.6378288269043, - 616.0 - ], - "bbox": [ - 48.6378288269043, - 607.2600708007812, - 179.489013671875, - 618.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 607.2600708007812, - 179.489013671875, - 618.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and intestine, and serve as a coor-", - "origin": [ - 48.6378288269043, - 627.0 - ], - "bbox": [ - 48.6378288269043, - 618.2600708007812, - 179.49234008789062, - 629.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 618.2600708007812, - 179.49234008789062, - 629.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "dinated system for the absorption,", - "origin": [ - 48.6378288269043, - 637.9999389648438 - ], - "bbox": [ - 48.6378288269043, - 629.260009765625, - 179.4748992919922, - 640.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 629.260009765625, - 179.4748992919922, - 640.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "metabolism and disposition of", - "origin": [ - 48.6378288269043, - 648.9999389648438 - ], - "bbox": [ - 48.6378288269043, - 640.260009765625, - 179.49066162109375, - 651.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 640.260009765625, - 179.49066162109375, - 651.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "many drugs. Many drug–drug in-", - "origin": [ - 48.6378288269043, - 659.9999389648438 - ], - "bbox": [ - 48.6378288269043, - 651.260009765625, - 179.48983764648438, - 662.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 651.260009765625, - 179.48983764648438, - 662.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "teractions arise from concurrent", - "origin": [ - 48.6378288269043, - 670.9999389648438 - ], - "bbox": [ - 48.6378288269043, - 662.260009765625, - 179.80360412597656, - 673.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 662.260009765625, - 179.80360412597656, - 673.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "administration of drugs which are", - "origin": [ - 48.6378288269043, - 681.9998779296875 - ], - "bbox": [ - 48.6378288269043, - 673.2599487304688, - 179.804443359375, - 684.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 673.2599487304688, - 179.804443359375, - 684.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "both substrates and inducers of", - "origin": [ - 48.6378288269043, - 692.9998779296875 - ], - "bbox": [ - 48.6378288269043, - 684.2599487304688, - 179.8226776123047, - 695.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 684.2599487304688, - 179.8226776123047, - 695.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A4", - "origin": [ - 48.6378288269043, - 703.9998779296875 - ], - "bbox": [ - 48.6378288269043, - 696.1065673828125, - 79.78357696533203, - 706.2409057617188 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and ", - "origin": [ - 79.78357696533203, - 703.9998779296875 - ], - "bbox": [ - 79.78357696533203, - 695.2599487304688, - 102.12303161621094, - 706.3321533203125 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 105.00479125976562, - 703.9998779296875 - ], - "bbox": [ - 105.00479125976562, - 696.1065673828125, - 128.6490020751953, - 706.2409057617188 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " expression", - "origin": [ - 128.6490020751953, - 703.9998779296875 - ], - "bbox": [ - 128.6490020751953, - 695.2599487304688, - 174.8152618408203, - 706.3321533203125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "3", - "origin": [ - 174.8137969970703, - 700.6799926757812 - ], - "bbox": [ - 174.8137969970703, - 695.8677978515625, - 177.43698120117188, - 701.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 177.4340057373047, - 704.0 - ], - "bbox": [ - 177.4340057373047, - 695.2600708007812, - 179.81610107421875, - 706.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 695.2599487304688, - 179.81610107421875, - 706.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Long-term therapy with drugs", - "origin": [ - 48.63792419433594, - 715.0 - ], - "bbox": [ - 48.63792419433594, - 706.2600708007812, - 179.8244171142578, - 717.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63792419433594, - 706.2600708007812, - 179.8244171142578, - 717.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "that induce ", - "origin": [ - 48.63792419433594, - 726.0 - ], - "bbox": [ - 48.63792419433594, - 717.2600708007812, - 94.7668228149414, - 728.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A4", - "origin": [ - 94.23895263671875, - 726.0 - ], - "bbox": [ - 94.23895263671875, - 718.106689453125, - 125.29341125488281, - 728.2410278320312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and ", - "origin": [ - 125.29341125488281, - 726.0 - ], - "bbox": [ - 125.29341125488281, - 717.2600708007812, - 144.1534881591797, - 728.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 143.6297607421875, - 726.0 - ], - "bbox": [ - 143.6297607421875, - 718.106689453125, - 167.2191925048828, - 728.2410278320312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " in-", - "origin": [ - 167.2191925048828, - 726.0 - ], - "bbox": [ - 167.2191925048828, - 717.2600708007812, - 179.81776428222656, - 728.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63792419433594, - 717.2600708007812, - 179.81776428222656, - 728.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "crease the systemic clearance of", - "origin": [ - 48.63792419433594, - 737.0 - ], - "bbox": [ - 48.63792419433594, - 728.2600708007812, - 179.8236083984375, - 739.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63792419433594, - 728.2600708007812, - 179.8236083984375, - 739.332275390625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 218.71630859375, - 178.25979614257812, - 377.9421691894531, - 464.3323059082031 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "some antileukemic agents, and such ther-", - "origin": [ - 218.716552734375, - 186.99969482421875 - ], - "bbox": [ - 218.716552734375, - 178.25979614257812, - 377.925537109375, - 189.33200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716552734375, - 178.25979614257812, - 377.925537109375, - 189.33200073242188 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "apy has been shown to exert negative ef-", - "origin": [ - 218.716552734375, - 197.99969482421875 - ], - "bbox": [ - 218.716552734375, - 189.25979614257812, - 377.9354248046875, - 200.33200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716552734375, - 189.25979614257812, - 377.9354248046875, - 200.33200073242188 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fects on survival while increasing cancer", - "origin": [ - 218.716552734375, - 208.99969482421875 - ], - "bbox": [ - 218.716552734375, - 200.25979614257812, - 377.9395446777344, - 211.33200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716552734375, - 200.25979614257812, - 377.9395446777344, - 211.33200073242188 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "relapse", - "origin": [ - 218.716552734375, - 219.99969482421875 - ], - "bbox": [ - 218.716552734375, - 211.25979614257812, - 245.33299255371094, - 222.33200073242188 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "4", - "origin": [ - 245.33489990234375, - 216.67999267578125 - ], - "bbox": [ - 245.33489990234375, - 211.86778259277344, - 247.9580841064453, - 217.9641571044922 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". Recent studies have shown that", - "origin": [ - 247.95509338378906, - 220.0 - ], - "bbox": [ - 247.95509338378906, - 211.26010131835938, - 377.9321594238281, - 222.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716552734375, - 211.25979614257812, - 377.9321594238281, - 222.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "SXR, a member of the nuclear hormone", - "origin": [ - 218.7166748046875, - 231.0 - ], - "bbox": [ - 218.7166748046875, - 222.26010131835938, - 377.939697265625, - 233.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 222.26010131835938, - 377.939697265625, - 233.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "receptor superfamily, regulates expres-", - "origin": [ - 218.7166748046875, - 242.0 - ], - "bbox": [ - 218.7166748046875, - 233.26010131835938, - 377.9404602050781, - 244.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 233.26010131835938, - 377.9404602050781, - 244.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sion of ", - "origin": [ - 218.7166748046875, - 253.0 - ], - "bbox": [ - 218.7166748046875, - 244.26010131835938, - 247.9949188232422, - 255.33230590820312 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A", - "origin": [ - 248.39332580566406, - 253.0 - ], - "bbox": [ - 248.39332580566406, - 245.10670471191406, - 274.77569580078125, - 255.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " (ref. 5,6). SXR is activated", - "origin": [ - 274.77569580078125, - 253.0 - ], - "bbox": [ - 274.77569580078125, - 244.26010131835938, - 377.9371337890625, - 255.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 244.26010131835938, - 377.9371337890625, - 255.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by a pharmacopia of drugs, including an-", - "origin": [ - 218.7166748046875, - 264.0 - ], - "bbox": [ - 218.7166748046875, - 255.26010131835938, - 377.9412841796875, - 266.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 255.26010131835938, - 377.9412841796875, - 266.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tibiotics, ", - "origin": [ - 218.7166748046875, - 275.0 - ], - "bbox": [ - 218.7166748046875, - 266.2601013183594, - 254.5229034423828, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 266.2601013183594, - 254.5229034423828, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "statin ", - "origin": [ - 264.6788024902344, - 275.0 - ], - "bbox": [ - 264.6788024902344, - 266.2601013183594, - 288.8351135253906, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.6788024902344, - 266.2601013183594, - 288.8351135253906, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cholesterol-lowering", - "origin": [ - 298.990966796875, - 275.0 - ], - "bbox": [ - 298.990966796875, - 266.2601013183594, - 377.9413757324219, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 298.990966796875, - 266.2601013183594, - 377.9413757324219, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drugs, antiseizure medications, steroids", - "origin": [ - 218.7166748046875, - 286.0 - ], - "bbox": [ - 218.7166748046875, - 277.2601013183594, - 377.9421691894531, - 288.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 277.2601013183594, - 377.9421691894531, - 288.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "such as glucocorticoids", - "origin": [ - 218.7166748046875, - 297.0 - ], - "bbox": [ - 218.7166748046875, - 288.2601013183594, - 307.50341796875, - 299.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "5", - "origin": [ - 307.51129150390625, - 293.67999267578125 - ], - "bbox": [ - 307.51129150390625, - 288.8677978515625, - 310.13446044921875, - 294.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", some bile acids", - "origin": [ - 310.1315002441406, - 297.0 - ], - "bbox": [ - 310.1315002441406, - 288.2601013183594, - 372.92266845703125, - 299.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "7", - "origin": [ - 372.9276123046875, - 293.67999267578125 - ], - "bbox": [ - 372.9276123046875, - 288.8677978515625, - 375.55078125, - 294.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 375.54779052734375, - 297.0 - ], - "bbox": [ - 375.54779052734375, - 288.2601013183594, - 377.9299011230469, - 299.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 288.2601013183594, - 377.9299011230469, - 299.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "environmental contaminants such as", - "origin": [ - 218.716796875, - 308.0 - ], - "bbox": [ - 218.716796875, - 299.2601013183594, - 377.9356994628906, - 310.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716796875, - 299.2601013183594, - 377.9356994628906, - 310.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "organochlorine pesticides and polychlori-", - "origin": [ - 218.716796875, - 319.0 - ], - "bbox": [ - 218.716796875, - 310.2601013183594, - 377.91583251953125, - 321.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716796875, - 310.2601013183594, - 377.91583251953125, - 321.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "nated biphenyls", - "origin": [ - 218.716796875, - 330.0 - ], - "bbox": [ - 218.716796875, - 321.2601013183594, - 285.45965576171875, - 332.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "8", - "origin": [ - 285.45709228515625, - 326.67999267578125 - ], - "bbox": [ - 285.45709228515625, - 321.8677978515625, - 288.08026123046875, - 327.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", and herbal supple-", - "origin": [ - 288.0773010253906, - 330.0 - ], - "bbox": [ - 288.0773010253906, - 321.2601013183594, - 377.9346923828125, - 332.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716796875, - 321.2601013183594, - 377.9346923828125, - 332.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments such as St. John’s wort", - "origin": [ - 218.71669006347656, - 341.0 - ], - "bbox": [ - 218.71669006347656, - 332.2601013183594, - 330.273681640625, - 343.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "9", - "origin": [ - 330.2721862792969, - 337.67999267578125 - ], - "bbox": [ - 330.2721862792969, - 332.8677978515625, - 332.8953552246094, - 338.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 332.88720703125, - 341.0 - ], - "bbox": [ - 332.88720703125, - 332.2601013183594, - 335.2693176269531, - 343.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71669006347656, - 332.2601013183594, - 335.2693176269531, - 343.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Little is known about how certain drugs", - "origin": [ - 227.22073364257812, - 352.0 - ], - "bbox": [ - 227.22073364257812, - 343.2601013183594, - 377.9355163574219, - 354.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.22073364257812, - 343.2601013183594, - 377.9355163574219, - 354.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "induce ", - "origin": [ - 218.716552734375, - 363.0 - ], - "bbox": [ - 218.716552734375, - 354.2601013183594, - 247.34158325195312, - 365.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP", - "origin": [ - 248.41810607910156, - 363.0 - ], - "bbox": [ - 248.41810607910156, - 355.106689453125, - 264.35076904296875, - 365.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and ", - "origin": [ - 264.35076904296875, - 363.0 - ], - "bbox": [ - 264.35076904296875, - 354.2601013183594, - 284.8841857910156, - 365.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1 ", - "origin": [ - 285.9590148925781, - 363.0 - ], - "bbox": [ - 285.9590148925781, - 355.106689453125, - 311.9844970703125, - 365.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "gene expression.", - "origin": [ - 313.0585021972656, - 363.0 - ], - "bbox": [ - 313.0585021972656, - 354.2601013183594, - 377.9312744140625, - 365.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716552734375, - 354.2601013183594, - 377.9312744140625, - 365.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Synold ", - "origin": [ - 218.71737670898438, - 374.0 - ], - "bbox": [ - 218.71737670898438, - 365.2601013183594, - 247.82049560546875, - 376.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al.", - "origin": [ - 247.9275665283203, - 374.0 - ], - "bbox": [ - 247.9275665283203, - 366.106689453125, - 266.0066223144531, - 376.2409973144531 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 266.0060119628906, - 370.67999267578125 - ], - "bbox": [ - 266.0060119628906, - 365.8677978515625, - 268.6291809082031, - 371.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 268.6291809082031, - 370.67999267578125 - ], - "bbox": [ - 268.6291809082031, - 361.9400939941406, - 271.11669921875, - 376.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "demonstrate that SXR is ac-", - "origin": [ - 271.11669921875, - 374.0 - ], - "bbox": [ - 271.11669921875, - 365.2601013183594, - 377.9359436035156, - 376.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71737670898438, - 361.9400939941406, - 377.9359436035156, - 376.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tivated by paclitaxel (Taxol) and is re-", - "origin": [ - 218.71630859375, - 385.0 - ], - "bbox": [ - 218.71630859375, - 376.2601013183594, - 377.9136047363281, - 387.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71630859375, - 376.2601013183594, - 377.9136047363281, - 387.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sponsible for inducing expression of not", - "origin": [ - 218.71630859375, - 396.0 - ], - "bbox": [ - 218.71630859375, - 387.2601013183594, - 377.9360656738281, - 398.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71630859375, - 387.2601013183594, - 377.9360656738281, - 398.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "only ", - "origin": [ - 218.71630859375, - 407.0 - ], - "bbox": [ - 218.71630859375, - 398.2601013183594, - 238.65457153320312, - 409.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A", - "origin": [ - 239.3932647705078, - 407.0 - ], - "bbox": [ - 239.3932647705078, - 399.106689453125, - 265.775634765625, - 409.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " (previously shown to be in-", - "origin": [ - 265.775634765625, - 407.0 - ], - "bbox": [ - 265.775634765625, - 398.2601013183594, - 377.93511962890625, - 409.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71630859375, - 398.2601013183594, - 377.93511962890625, - 409.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duced by paclitaxel", - "origin": [ - 218.71630859375, - 418.0 - ], - "bbox": [ - 218.71630859375, - 409.2601013183594, - 297.290771484375, - 420.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "10", - "origin": [ - 297.29669189453125, - 414.67999267578125 - ], - "bbox": [ - 297.29669189453125, - 409.8677978515625, - 302.537109375, - 415.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") but also ", - "origin": [ - 302.5372009277344, - 418.0 - ], - "bbox": [ - 302.5372009277344, - 409.2601013183594, - 344.64642333984375, - 420.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP2C9", - "origin": [ - 346.6251525878906, - 418.0 - ], - "bbox": [ - 346.6251525878906, - 410.106689453125, - 377.9285888671875, - 420.2409973144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71630859375, - 409.2601013183594, - 377.9285888671875, - 420.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and ", - "origin": [ - 218.71633911132812, - 429.0 - ], - "bbox": [ - 218.71633911132812, - 420.2601013183594, - 235.79275512695312, - 431.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 237.2062530517578, - 429.0 - ], - "bbox": [ - 237.2062530517578, - 421.106689453125, - 260.8504638671875, - 431.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". Paclitaxel is metabolized by", - "origin": [ - 260.8496398925781, - 429.0 - ], - "bbox": [ - 260.8496398925781, - 420.2601013183594, - 377.9368591308594, - 431.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71633911132812, - 420.2601013183594, - 377.9368591308594, - 431.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "both CYP3A4 and CYP2C9 (ref. 11) and", - "origin": [ - 218.71633911132812, - 440.0 - ], - "bbox": [ - 218.71633911132812, - 431.2601013183594, - 377.9310302734375, - 442.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71633911132812, - 431.2601013183594, - 377.9310302734375, - 442.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "transported by P-glycoprotein, and in-", - "origin": [ - 218.71633911132812, - 451.0 - ], - "bbox": [ - 218.71633911132812, - 442.2601013183594, - 377.9410705566406, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71633911132812, - 442.2601013183594, - 377.9410705566406, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duction of all of these proteins leads to its", - "origin": [ - 218.71633911132812, - 462.0 - ], - "bbox": [ - 218.71633911132812, - 453.2601013183594, - 377.9270324707031, - 464.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71633911132812, - 453.2601013183594, - 377.9270324707031, - 464.3323059082031 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 388.7942810058594, - 145.26010131835938, - 547.8056030273438, - 376.3323059082031 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "enhanced clearance", - "origin": [ - 388.79498291015625, - 154.000244140625 - ], - "bbox": [ - 388.79498291015625, - 145.26034545898438, - 468.20849609375, - 156.33255004882812 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "12", - "origin": [ - 468.2026062011719, - 150.67999267578125 - ], - "bbox": [ - 468.2026062011719, - 145.86778259277344, - 473.4430236816406, - 151.9641571044922 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". This indicates a", - "origin": [ - 473.4429931640625, - 154.0 - ], - "bbox": [ - 473.4429931640625, - 145.26010131835938, - 547.795166015625, - 156.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79498291015625, - 145.26010131835938, - 547.795166015625, - 156.33255004882812 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "broad role for SXR in the coordinated in-", - "origin": [ - 388.7954406738281, - 165.0 - ], - "bbox": [ - 388.7954406738281, - 156.26010131835938, - 547.779296875, - 167.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 156.26010131835938, - 547.779296875, - 167.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duction of multiple detoxification path-", - "origin": [ - 388.7954406738281, - 176.0 - ], - "bbox": [ - 388.7954406738281, - 167.26010131835938, - 547.8043823242188, - 178.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 167.26010131835938, - 547.8043823242188, - 178.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ways.", - "origin": [ - 388.7954406738281, - 187.0 - ], - "bbox": [ - 388.7954406738281, - 178.26010131835938, - 409.9504699707031, - 189.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 178.26010131835938, - 409.9504699707031, - 189.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Because concurrent administration of", - "origin": [ - 397.29962158203125, - 198.0 - ], - "bbox": [ - 397.29962158203125, - 189.26010131835938, - 547.803466796875, - 200.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.29962158203125, - 189.26010131835938, - 547.803466796875, - 200.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "CYP3A4 and P-glycoprotein inducers", - "origin": [ - 388.7954406738281, - 209.0 - ], - "bbox": [ - 388.7954406738281, - 200.26010131835938, - 547.79931640625, - 211.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 200.26010131835938, - 547.79931640625, - 211.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(such as rifampicin) with drugs that serve", - "origin": [ - 388.7954406738281, - 220.0 - ], - "bbox": [ - 388.7954406738281, - 211.26010131835938, - 547.7877197265625, - 222.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 211.26010131835938, - 547.7877197265625, - 222.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "as substrates for these proteins is a major", - "origin": [ - 388.7954406738281, - 231.0 - ], - "bbox": [ - 388.7954406738281, - 222.26010131835938, - 547.797607421875, - 233.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 222.26010131835938, - 547.797607421875, - 233.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "basis of drug–drug interactions", - "origin": [ - 388.7954406738281, - 242.0 - ], - "bbox": [ - 388.7954406738281, - 233.26010131835938, - 507.705322265625, - 244.33230590820312 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "5", - "origin": [ - 507.6951904296875, - 238.67999267578125 - ], - "bbox": [ - 507.6951904296875, - 233.86778259277344, - 510.318359375, - 239.9641571044922 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", pharma-", - "origin": [ - 510.3153991699219, - 242.0 - ], - "bbox": [ - 510.3153991699219, - 233.26010131835938, - 547.7899169921875, - 244.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 233.26010131835938, - 547.7899169921875, - 244.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ceutical companies are now using SXR-", - "origin": [ - 388.79510498046875, - 253.0 - ], - "bbox": [ - 388.79510498046875, - 244.26010131835938, - 547.801513671875, - 255.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 244.26010131835938, - 547.801513671875, - 255.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "binding and -activation assays to screen", - "origin": [ - 388.79510498046875, - 264.0 - ], - "bbox": [ - 388.79510498046875, - 255.26010131835938, - 547.8031005859375, - 266.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 255.26010131835938, - 547.8031005859375, - 266.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and predict which compounds will in-", - "origin": [ - 388.79510498046875, - 275.0 - ], - "bbox": [ - 388.79510498046875, - 266.2601013183594, - 547.80224609375, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 266.2601013183594, - 547.80224609375, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duce CYP3A expression and potentially", - "origin": [ - 388.79510498046875, - 286.0 - ], - "bbox": [ - 388.79510498046875, - 277.2601013183594, - 547.798095703125, - 288.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 277.2601013183594, - 547.798095703125, - 288.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cause drug interactions. These types of as-", - "origin": [ - 388.79510498046875, - 297.0 - ], - "bbox": [ - 388.79510498046875, - 288.2601013183594, - 547.7868041992188, - 299.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 288.2601013183594, - 547.7868041992188, - 299.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "says may also identify compounds that", - "origin": [ - 388.79510498046875, - 308.0 - ], - "bbox": [ - 388.79510498046875, - 299.2601013183594, - 547.8015747070312, - 310.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 299.2601013183594, - 547.8015747070312, - 310.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "induce ", - "origin": [ - 388.79510498046875, - 319.0 - ], - "bbox": [ - 388.79510498046875, - 310.2601013183594, - 417.420166015625, - 321.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP2C9", - "origin": [ - 420.08612060546875, - 319.0 - ], - "bbox": [ - 420.08612060546875, - 311.106689453125, - 451.3895568847656, - 321.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and ", - "origin": [ - 451.3895568847656, - 319.0 - ], - "bbox": [ - 451.3895568847656, - 310.2601013183594, - 473.5115966796875, - 321.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 476.1758728027344, - 319.0 - ], - "bbox": [ - 476.1758728027344, - 311.106689453125, - 499.820068359375, - 321.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", and cause", - "origin": [ - 499.8192443847656, - 319.0 - ], - "bbox": [ - 499.8192443847656, - 310.2601013183594, - 547.78662109375, - 321.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 310.2601013183594, - 547.78662109375, - 321.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "auto-induction of their own clearance. It", - "origin": [ - 388.7942810058594, - 330.0 - ], - "bbox": [ - 388.7942810058594, - 321.2601013183594, - 547.8056030273438, - 332.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7942810058594, - 321.2601013183594, - 547.8056030273438, - 332.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "might be possible to someday create", - "origin": [ - 388.7942810058594, - 341.0 - ], - "bbox": [ - 388.7942810058594, - 332.2601013183594, - 547.798095703125, - 343.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7942810058594, - 332.2601013183594, - 547.798095703125, - 343.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drugs that are ‘SXR transparent’ by mini-", - "origin": [ - 388.7942810058594, - 352.0 - ], - "bbox": [ - 388.7942810058594, - 343.2601013183594, - 547.8038940429688, - 354.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7942810058594, - 343.2601013183594, - 547.8038940429688, - 354.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mizing or eliminating binding activity. In", - "origin": [ - 388.7942810058594, - 363.0 - ], - "bbox": [ - 388.7942810058594, - 354.2601013183594, - 547.78662109375, - 365.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7942810058594, - 354.2601013183594, - 547.78662109375, - 365.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "this regard, the report of Synold ", - "origin": [ - 388.7942810058594, - 374.0 - ], - "bbox": [ - 388.7942810058594, - 365.2601013183594, - 523.6666870117188, - 376.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al", - "origin": [ - 525.42724609375, - 374.0 - ], - "bbox": [ - 525.42724609375, - 366.106689453125, - 542.7891845703125, - 376.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 542.7891845703125, - 374.0 - ], - "bbox": [ - 542.7891845703125, - 365.2601013183594, - 545.1712646484375, - 376.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 545.1704711914062, - 370.67999267578125 - ], - "bbox": [ - 545.1704711914062, - 365.8677978515625, - 547.7936401367188, - 371.96417236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7942810058594, - 365.2601013183594, - 547.7936401367188, - 376.3323059082031 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 388.7952880859375, - 376.2601013183594, - 547.806640625, - 739.332275390625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "shows that docetaxel, unlike the struc-", - "origin": [ - 388.7952880859375, - 385.0 - ], - "bbox": [ - 388.7952880859375, - 376.2601013183594, - 547.7999267578125, - 387.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7952880859375, - 376.2601013183594, - 547.7999267578125, - 387.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tural analog paclitaxel, does not induce", - "origin": [ - 388.7952880859375, - 396.0 - ], - "bbox": [ - 388.7952880859375, - 387.2601013183594, - 547.7794189453125, - 398.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7952880859375, - 387.2601013183594, - 547.7794189453125, - 398.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A4", - "origin": [ - 388.7952880859375, - 407.0 - ], - "bbox": [ - 388.7952880859375, - 399.106689453125, - 419.9410095214844, - 409.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " or ", - "origin": [ - 419.9410095214844, - 407.0 - ], - "bbox": [ - 419.9410095214844, - 398.2601013183594, - 434.3822326660156, - 409.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 435.95672607421875, - 407.0 - ], - "bbox": [ - 435.95672607421875, - 399.106689453125, - 459.6009216308594, - 409.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " expression because it", - "origin": [ - 459.6009216308594, - 407.0 - ], - "bbox": [ - 459.6009216308594, - 398.2601013183594, - 547.7941284179688, - 409.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7952880859375, - 398.2601013183594, - 547.7941284179688, - 409.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "does not activate SXR. This should result", - "origin": [ - 388.7961120605469, - 418.0 - ], - "bbox": [ - 388.7961120605469, - 409.2601013183594, - 547.80078125, - 420.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7961120605469, - 409.2601013183594, - 547.80078125, - 420.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in superior pharmacokinetic properties", - "origin": [ - 388.7961120605469, - 429.0 - ], - "bbox": [ - 388.7961120605469, - 420.2601013183594, - 547.806640625, - 431.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7961120605469, - 420.2601013183594, - 547.806640625, - 431.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "relative to paclitaxel.", - "origin": [ - 388.7961120605469, - 440.0 - ], - "bbox": [ - 388.7961120605469, - 431.2601013183594, - 468.8296203613281, - 442.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7961120605469, - 431.2601013183594, - 468.8296203613281, - 442.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Synold ", - "origin": [ - 397.30029296875, - 451.0 - ], - "bbox": [ - 397.30029296875, - 442.2601013183594, - 426.4034423828125, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.30029296875, - 442.2601013183594, - 426.4034423828125, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et ", - "origin": [ - 434.35894775390625, - 451.0 - ], - "bbox": [ - 434.35894775390625, - 443.106689453125, - 443.0291442871094, - 453.2409973144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 434.35894775390625, - 443.106689453125, - 443.0291442871094, - 453.2409973144531 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "al", - "origin": [ - 450.9855041503906, - 451.0 - ], - "bbox": [ - 450.9855041503906, - 443.106689453125, - 457.9060363769531, - 453.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 457.9060363769531, - 451.0 - ], - "bbox": [ - 457.9060363769531, - 442.2601013183594, - 460.28814697265625, - 453.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 460.2854919433594, - 447.67999267578125 - ], - "bbox": [ - 460.2854919433594, - 442.8677978515625, - 462.9086608886719, - 448.96417236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 450.9855041503906, - 442.2601013183594, - 462.9086608886719, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "demonstrate ", - "origin": [ - 473.2445068359375, - 451.0 - ], - "bbox": [ - 473.2445068359375, - 442.2601013183594, - 524.0055541992188, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.2445068359375, - 442.2601013183594, - 524.0055541992188, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "that", - "origin": [ - 531.9619750976562, - 451.0 - ], - "bbox": [ - 531.9619750976562, - 442.2601013183594, - 547.7850341796875, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 531.9619750976562, - 442.2601013183594, - 547.7850341796875, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Ecteinascidin-743 (ET-743), an antineo-", - "origin": [ - 388.7953186035156, - 462.0 - ], - "bbox": [ - 388.7953186035156, - 453.2601013183594, - 547.7991943359375, - 464.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7953186035156, - 453.2601013183594, - 547.7991943359375, - 464.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "plastic agent, can antagonize SXR", - "origin": [ - 414.3070373535156, - 473.0 - ], - "bbox": [ - 414.3070373535156, - 464.2601013183594, - 547.7974243164062, - 475.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.3070373535156, - 464.2601013183594, - 547.7974243164062, - 475.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "activation and inhibit ", - "origin": [ - 414.3070373535156, - 484.0 - ], - "bbox": [ - 414.3070373535156, - 475.2601013183594, - 505.8145751953125, - 486.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 507.9733581542969, - 484.0 - ], - "bbox": [ - 507.9733581542969, - 476.106689453125, - 531.6176147460938, - 486.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ex-", - "origin": [ - 531.6176147460938, - 484.0 - ], - "bbox": [ - 531.6176147460938, - 475.2601013183594, - 547.7918090820312, - 486.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.3070373535156, - 475.2601013183594, - 547.7918090820312, - 486.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pression. The authors suggest that", - "origin": [ - 414.30706787109375, - 495.0 - ], - "bbox": [ - 414.30706787109375, - 486.2601013183594, - 547.7951049804688, - 497.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 486.2601013183594, - 547.7951049804688, - 497.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "SXR antagonists that downregu-", - "origin": [ - 414.30706787109375, - 506.0 - ], - "bbox": [ - 414.30706787109375, - 497.2601013183594, - 547.7975463867188, - 508.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 497.2601013183594, - 547.7975463867188, - 508.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "late the P-glycoprotein pathway of", - "origin": [ - 414.30706787109375, - 517.0 - ], - "bbox": [ - 414.30706787109375, - 508.2601013183594, - 547.7984008789062, - 519.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 508.2601013183594, - 547.7984008789062, - 519.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drug elimination could be ex-", - "origin": [ - 414.30706787109375, - 528.0 - ], - "bbox": [ - 414.30706787109375, - 519.2600708007812, - 547.7809448242188, - 530.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 519.2600708007812, - 547.7809448242188, - 530.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ploited to improve drug retention.", - "origin": [ - 414.30706787109375, - 539.0 - ], - "bbox": [ - 414.30706787109375, - 530.2600708007812, - 547.7808227539062, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 530.2600708007812, - 547.7808227539062, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "This approach should be under-", - "origin": [ - 414.30706787109375, - 550.0 - ], - "bbox": [ - 414.30706787109375, - 541.2600708007812, - 547.8001098632812, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 541.2600708007812, - 547.8001098632812, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "taken cautiously, because clinical", - "origin": [ - 414.30706787109375, - 560.9999389648438 - ], - "bbox": [ - 414.30706787109375, - 552.260009765625, - 547.802490234375, - 563.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 552.260009765625, - 547.802490234375, - 563.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "trials involving drugs that inhibit", - "origin": [ - 414.30706787109375, - 571.9999389648438 - ], - "bbox": [ - 414.30706787109375, - 563.260009765625, - 547.802490234375, - 574.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 563.260009765625, - 547.802490234375, - 574.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "P-glycoprotein activity, given in an", - "origin": [ - 414.30706787109375, - 582.9999389648438 - ], - "bbox": [ - 414.30706787109375, - 574.260009765625, - 547.80615234375, - 585.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 574.260009765625, - 547.80615234375, - 585.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "effort to reduce drug resistance,", - "origin": [ - 414.30706787109375, - 593.9998779296875 - ], - "bbox": [ - 414.30706787109375, - 585.2599487304688, - 547.7777099609375, - 596.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 585.2599487304688, - 547.7777099609375, - 596.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "have had limited success and led to", - "origin": [ - 414.30706787109375, - 604.9998779296875 - ], - "bbox": [ - 414.30706787109375, - 596.2599487304688, - 547.7891845703125, - 607.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 596.2599487304688, - 547.7891845703125, - 607.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "undesired pharmacokinetic side-", - "origin": [ - 414.30706787109375, - 615.9998779296875 - ], - "bbox": [ - 414.30706787109375, - 607.2599487304688, - 547.7811279296875, - 618.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 607.2599487304688, - 547.7811279296875, - 618.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "effects", - "origin": [ - 414.30706787109375, - 626.9998779296875 - ], - "bbox": [ - 414.30706787109375, - 618.2599487304688, - 438.7538757324219, - 629.3321533203125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "13", - "origin": [ - 438.7535095214844, - 623.6799926757812 - ], - "bbox": [ - 438.7535095214844, - 618.8677978515625, - 443.9939270019531, - 624.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". ", - "origin": [ - 443.993896484375, - 627.0 - ], - "bbox": [ - 443.993896484375, - 618.2600708007812, - 448.755615234375, - 629.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 449.36151123046875, - 627.0 - ], - "bbox": [ - 449.36151123046875, - 619.106689453125, - 473.0057067871094, - 629.2410278320312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " expression ‘modu-", - "origin": [ - 473.0057067871094, - 627.0 - ], - "bbox": [ - 473.0057067871094, - 618.2600708007812, - 547.7970581054688, - 629.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 618.2599487304688, - 547.7970581054688, - 629.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lators’ should be carefully screened", - "origin": [ - 414.30731201171875, - 638.0 - ], - "bbox": [ - 414.30731201171875, - 629.2600708007812, - 547.7904052734375, - 640.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 629.2600708007812, - 547.7904052734375, - 640.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "for their potential to inhibit or", - "origin": [ - 414.30731201171875, - 649.0 - ], - "bbox": [ - 414.30731201171875, - 640.2600708007812, - 547.8027954101562, - 651.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 640.2600708007812, - 547.8027954101562, - 651.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "modulate metabolism of other", - "origin": [ - 414.30731201171875, - 659.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 651.260009765625, - 547.781982421875, - 662.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 651.260009765625, - 547.781982421875, - 662.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "medications taken by a patient.", - "origin": [ - 414.30731201171875, - 670.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 662.260009765625, - 547.8012084960938, - 673.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 662.260009765625, - 547.8012084960938, - 673.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Given the knowledge that SXR has", - "origin": [ - 414.30731201171875, - 681.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 673.260009765625, - 547.8003540039062, - 684.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 673.260009765625, - 547.8003540039062, - 684.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "multiple detoxification genes as", - "origin": [ - 414.30731201171875, - 692.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 684.260009765625, - 547.8003540039062, - 695.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 684.260009765625, - 547.8003540039062, - 695.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "targets, antagonism of SXR might", - "origin": [ - 414.30731201171875, - 703.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 695.260009765625, - 547.798583984375, - 706.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 695.260009765625, - 547.798583984375, - 706.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lead to increased drug toxicity.", - "origin": [ - 414.30731201171875, - 714.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 706.260009765625, - 532.2012329101562, - 717.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 706.260009765625, - 532.2012329101562, - 717.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Synold ", - "origin": [ - 422.8114929199219, - 725.9998779296875 - ], - "bbox": [ - 422.8114929199219, - 717.2599487304688, - 451.3419189453125, - 728.3321533203125 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al", - "origin": [ - 451.5992126464844, - 725.9998779296875 - ], - "bbox": [ - 451.5992126464844, - 718.1065673828125, - 467.1641845703125, - 728.2409057617188 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 467.0662536621094, - 725.9998779296875 - ], - "bbox": [ - 467.0662536621094, - 717.2599487304688, - 469.4483642578125, - 728.3321533203125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 469.3514099121094, - 722.6799926757812 - ], - "bbox": [ - 469.3514099121094, - 717.8677978515625, - 471.9745788574219, - 723.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 471.9745788574219, - 722.6799926757812 - ], - "bbox": [ - 471.9745788574219, - 713.9400634765625, - 474.5592956542969, - 728.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "emphasize the feed", - "origin": [ - 474.5592956542969, - 726.0 - ], - "bbox": [ - 474.5592956542969, - 717.2600708007812, - 547.7918701171875, - 728.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.8114929199219, - 713.9400634765625, - 547.7918701171875, - 728.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forward pathways of drug clear-", - "origin": [ - 414.3070983886719, - 737.0 - ], - "bbox": [ - 414.3070983886719, - 728.2600708007812, - 547.7994995117188, - 739.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.3070983886719, - 728.2600708007812, - 547.7994995117188, - 739.332275390625 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 114.95989990234375, - 55.599998474121094, - 481.12640380859375, - 83.13999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 18.70828628540039, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Promiscuous regulator of xenobiotic removal", - "origin": [ - 114.95989990234375, - 77.0 - ], - "bbox": [ - 114.95989990234375, - 55.599998474121094, - 481.12640380859375, - 83.13999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.95989990234375, - 55.599998474121094, - 481.12640380859375, - 83.13999938964844 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 73.33300018310547, - 90.11900329589844, - 522.7928466796875, - 134.548095703125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "The transcription factor SXR mediates drug, xenobiotic and steroid induction of a major drug–metabolizing enzyme.", - "origin": [ - 73.33300018310547, - 99.0 - ], - "bbox": [ - 73.33300018310547, - 90.11900329589844, - 522.7928466796875, - 101.54810333251953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.33300018310547, - 90.11900329589844, - 522.7928466796875, - 101.54810333251953 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Drugs such as paclitaxel (Taxol) can bind and activate this transcription factor and therefore regulate their own", - "origin": [ - 83.50714111328125, - 110.0 - ], - "bbox": [ - 83.50714111328125, - 101.11900329589844, - 512.6170043945312, - 112.54810333251953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.50714111328125, - 101.11900329589844, - 512.6170043945312, - 112.54810333251953 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "metabolism and efflux from cells. Manipulation of this pathway might lead to new ways to improve therapeutic", - "origin": [ - 83.26229095458984, - 121.0 - ], - "bbox": [ - 83.26229095458984, - 112.11900329589844, - 512.8660888671875, - 123.54810333251953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.26229095458984, - 112.11900329589844, - 512.8660888671875, - 123.54810333251953 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "efficacy and to minimize toxicity (584-590).", - "origin": [ - 214.32427978515625, - 132.0 - ], - "bbox": [ - 214.32427978515625, - 123.11900329589844, - 381.80255126953125, - 134.548095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.32427978515625, - 123.11900329589844, - 381.80255126953125, - 134.548095703125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 219.4792022705078, - 149.01708984375, - 376.694091796875, - 168.09100341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "E", - "origin": [ - 219.4792022705078, - 165.0 - ], - "bbox": [ - 219.4792022705078, - 153.4169921875, - 225.80419921875, - 168.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "RIN", - "origin": [ - 225.8542022705078, - 165.0 - ], - "bbox": [ - 225.8542022705078, - 156.312744140625, - 240.6035614013672, - 167.31825256347656 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " S", - "origin": [ - 240.6035614013672, - 165.0 - ], - "bbox": [ - 240.6035614013672, - 153.4169921875, - 249.02609252929688, - 168.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "CHUETZ", - "origin": [ - 249.07659912109375, - 165.0 - ], - "bbox": [ - 249.07659912109375, - 156.312744140625, - 283.1160888671875, - 167.31825256347656 - ] - }, - { - "size": 6.050000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 283.1650085449219, - 160.60009765625 - ], - "bbox": [ - 283.1650085449219, - 154.2294464111328, - 286.6376953125, - 162.30014038085938 - ] - }, - { - "size": 11.0, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 286.6376953125, - 160.60009765625 - ], - "bbox": [ - 286.6376953125, - 149.01708984375, - 289.53680419921875, - 168.09100341796875 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "& S", - "origin": [ - 289.53680419921875, - 165.0 - ], - "bbox": [ - 289.53680419921875, - 153.4169921875, - 306.92340087890625, - 168.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "TEPHEN", - "origin": [ - 306.97369384765625, - 165.0 - ], - "bbox": [ - 306.97369384765625, - 156.312744140625, - 339.6354064941406, - 167.31825256347656 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " S", - "origin": [ - 339.6354064941406, - 165.0 - ], - "bbox": [ - 339.6354064941406, - 153.4169921875, - 348.0578918457031, - 168.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "TROM", - "origin": [ - 348.1083984375, - 165.0 - ], - "bbox": [ - 348.1083984375, - 156.312744140625, - 373.16943359375, - 167.31825256347656 - ] - }, - { - "size": 6.050000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 373.2214050292969, - 160.60009765625 - ], - "bbox": [ - 373.2214050292969, - 154.2294464111328, - 376.694091796875, - 162.30014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.4792022705078, - 149.01708984375, - 376.694091796875, - 168.09100341796875 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 247.2, - 356.64, - 265.91999999999996, - 364.79999999999995 - ], - "image_path": "equations_inline/0_247_356_265_364.jpg" - }, - { - "bbox": [ - 285.12, - 356.64, - 310.56, - 364.79999999999995 - ], - "image_path": "equations_inline/0_285_356_310_364.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 42.96849822998047, - 15.030278205871582, - 160.98609924316406, - 37.09199905395508 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 37.09199905395508 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 55.599998474121094, - 612.0, - 134.548095703125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 48.576499938964844, - 139.21075439453125, - 207.39349365234375, - 739.332275390625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 218.71630859375, - 139.21075439453125, - 377.9421691894531, - 739.332275390625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 388.7942810058594, - 139.21075439453125, - 547.806640625, - 739.332275390625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 750.9375, - 612.0, - 761.2424926757812 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 42.96849822998047, - 750.9375, - 553.1995239257812, - 761.2424926757812 - ], - "lines": [ - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "536", - "origin": [ - 42.96849822998047, - 759.0 - ], - "bbox": [ - 42.96849822998047, - 750.9375, - 56.46849822998047, - 761.2424926757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.96849822998047, - 750.9375, - 56.46849822998047, - 761.2424926757812 - ] - }, - { - "spans": [ - { - "size": 6.0, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "NATURE MEDICINE", - "origin": [ - 372.501708984375, - 759.0 - ], - "bbox": [ - 372.501708984375, - 752.5800170898438, - 430.0146789550781, - 760.8419799804688 - ] - }, - { - "size": 6.0, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " • VOLUME 7 • NUMBER 5 • MAY 2001", - "origin": [ - 430.0146789550781, - 759.0 - ], - "bbox": [ - 430.0146789550781, - 752.5499877929688, - 553.1995239257812, - 760.7940063476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.501708984375, - 752.5499877929688, - 553.1995239257812, - 760.8419799804688 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 42.96849822998047, - 20.472000122070312, - 160.98609924316406, - 37.09199905395508 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "StoneSerif-Bold", - "color": 0, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "NEWS & VIEWS ", - "origin": [ - 42.96849822998047, - 33.0 - ], - "bbox": [ - 42.96849822998047, - 20.472000122070312, - 160.98609924316406, - 37.09199905395508 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.96849822998047, - 20.472000122070312, - 160.98609924316406, - 37.09199905395508 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 48.576499938964844, - 139.21075439453125, - 207.39349365234375, - 739.332275390625 - ], - "lines": [ - { - "spans": [ - { - "size": 23.989999771118164, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "T", - "origin": [ - 48.576499938964844, - 165.0 - ], - "bbox": [ - 48.576499938964844, - 139.21075439453125, - 61.914939880371094, - 172.17300415039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.576499938964844, - 139.21075439453125, - 61.914939880371094, - 172.17300415039062 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "he body responds", - "origin": [ - 63.13779830932617, - 154.0 - ], - "bbox": [ - 63.13779830932617, - 145.07749938964844, - 131.5206756591797, - 156.48170471191406 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " to drugs, environ-", - "origin": [ - 131.5206756591797, - 154.0 - ], - "bbox": [ - 131.5206756591797, - 145.26010131835938, - 207.37191772460938, - 156.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 63.13779830932617, - 145.07749938964844, - 207.37191772460938, - 156.48170471191406 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mental ", - "origin": [ - 63.137794494628906, - 165.0 - ], - "bbox": [ - 63.137794494628906, - 156.26010131835938, - 92.8053207397461, - 167.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 63.137794494628906, - 156.26010131835938, - 92.8053207397461, - 167.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "chemicals, ", - "origin": [ - 105.16734313964844, - 165.0 - ], - "bbox": [ - 105.16734313964844, - 156.26010131835938, - 148.14476013183594, - 167.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 105.16734313964844, - 156.26010131835938, - 148.14476013183594, - 167.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "endogenous", - "origin": [ - 160.5067901611328, - 165.0 - ], - "bbox": [ - 160.5067901611328, - 156.26010131835938, - 207.38600158691406, - 167.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 160.5067901611328, - 156.26010131835938, - 207.38600158691406, - 167.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "steroids and bile acids by inducing the co-", - "origin": [ - 48.6376953125, - 176.0 - ], - "bbox": [ - 48.6376953125, - 167.26010131835938, - 207.36614990234375, - 178.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 167.26010131835938, - 207.36614990234375, - 178.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ordinated expression of a battery of drug-", - "origin": [ - 48.6376953125, - 187.0 - ], - "bbox": [ - 48.6376953125, - 178.26010131835938, - 207.34364318847656, - 189.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 178.26010131835938, - 207.34364318847656, - 189.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "detoxification genes in tissues such as", - "origin": [ - 48.6376953125, - 198.0 - ], - "bbox": [ - 48.6376953125, - 189.26010131835938, - 207.38519287109375, - 200.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 189.26010131835938, - 207.38519287109375, - 200.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "liver and intestine. These include the cy-", - "origin": [ - 48.6376953125, - 209.0 - ], - "bbox": [ - 48.6376953125, - 200.26010131835938, - 207.3893280029297, - 211.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 200.26010131835938, - 207.3893280029297, - 211.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tochromes P450 (CYPs), which are the", - "origin": [ - 48.6376953125, - 220.0 - ], - "bbox": [ - 48.6376953125, - 211.26010131835938, - 207.383544921875, - 222.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 211.26010131835938, - 207.383544921875, - 222.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "enzymes responsible for oxidative, perox-", - "origin": [ - 48.6376953125, - 231.0 - ], - "bbox": [ - 48.6376953125, - 222.26010131835938, - 207.3735809326172, - 233.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 222.26010131835938, - 207.3735809326172, - 233.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "idative and reductive metabolism of toxic", - "origin": [ - 48.6376953125, - 242.0 - ], - "bbox": [ - 48.6376953125, - 233.26010131835938, - 207.3793487548828, - 244.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 233.26010131835938, - 207.3793487548828, - 244.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "compounds. Expression of drug transport", - "origin": [ - 48.6376953125, - 253.0 - ], - "bbox": [ - 48.6376953125, - 244.26010131835938, - 207.37355041503906, - 255.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 244.26010131835938, - 207.37355041503906, - 255.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "proteins such as P-glycoprotein (encoded", - "origin": [ - 48.6376953125, - 264.0 - ], - "bbox": [ - 48.6376953125, - 255.26010131835938, - 207.38934326171875, - 266.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 255.26010131835938, - 207.38934326171875, - 266.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by ", - "origin": [ - 48.6376953125, - 275.0 - ], - "bbox": [ - 48.6376953125, - 266.2601013183594, - 60.50337600708008, - 277.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1 ", - "origin": [ - 61.26863479614258, - 275.0 - ], - "bbox": [ - 61.26863479614258, - 267.106689453125, - 87.29412078857422, - 277.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and also known as MDR1 and", - "origin": [ - 88.0577163696289, - 275.0 - ], - "bbox": [ - 88.0577163696289, - 266.2601013183594, - 207.3843231201172, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6376953125, - 266.2601013183594, - 207.3843231201172, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ABCB1) leads to the efficient efflux these", - "origin": [ - 48.638526916503906, - 286.0 - ], - "bbox": [ - 48.638526916503906, - 277.2601013183594, - 207.3851776123047, - 288.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 277.2601013183594, - 207.3851776123047, - 288.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drugs from the body. Activation of drug", - "origin": [ - 48.638526916503906, - 297.0 - ], - "bbox": [ - 48.638526916503906, - 288.2601013183594, - 207.36776733398438, - 299.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 288.2601013183594, - 207.36776733398438, - 299.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "transport can be beneficial in instances", - "origin": [ - 48.638526916503906, - 308.0 - ], - "bbox": [ - 48.638526916503906, - 299.2601013183594, - 207.38522338867188, - 310.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 299.2601013183594, - 207.38522338867188, - 310.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "where it is important to remove toxins", - "origin": [ - 48.638526916503906, - 319.0 - ], - "bbox": [ - 48.638526916503906, - 310.2601013183594, - 207.39015197753906, - 321.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 310.2601013183594, - 207.39015197753906, - 321.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "from the body, but detrimental in situa-", - "origin": [ - 48.638526916503906, - 330.0 - ], - "bbox": [ - 48.638526916503906, - 321.2601013183594, - 207.39349365234375, - 332.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 321.2601013183594, - 207.39349365234375, - 332.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tions where it is important for a patient", - "origin": [ - 48.638526916503906, - 341.0 - ], - "bbox": [ - 48.638526916503906, - 332.2601013183594, - 207.3910675048828, - 343.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 332.2601013183594, - 207.3910675048828, - 343.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to retain effective levels of a therapeutic", - "origin": [ - 48.638526916503906, - 352.0 - ], - "bbox": [ - 48.638526916503906, - 343.2601013183594, - 207.39271545410156, - 354.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 343.2601013183594, - 207.39271545410156, - 354.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drug. In this issue, Snyold ", - "origin": [ - 48.638526916503906, - 363.0 - ], - "bbox": [ - 48.638526916503906, - 354.2601013183594, - 152.93385314941406, - 365.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al.", - "origin": [ - 153.38784790039062, - 363.0 - ], - "bbox": [ - 153.38784790039062, - 355.106689453125, - 171.81468200683594, - 365.2409973144531 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 171.81480407714844, - 359.67999267578125 - ], - "bbox": [ - 171.81480407714844, - 354.8677978515625, - 174.43798828125, - 360.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 174.43798828125, - 359.67999267578125 - ], - "bbox": [ - 174.43798828125, - 350.9400939941406, - 177.27389526367188, - 365.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "demon-", - "origin": [ - 177.27389526367188, - 363.0 - ], - "bbox": [ - 177.27389526367188, - 354.2601013183594, - 207.3780059814453, - 365.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638526916503906, - 350.9400939941406, - 207.3780059814453, - 365.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "strate that steroid xenobiotic receptor", - "origin": [ - 48.63800048828125, - 374.0 - ], - "bbox": [ - 48.63800048828125, - 365.2601013183594, - 207.39212036132812, - 376.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 365.2601013183594, - 207.39212036132812, - 376.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(SXR; also known as PXR), a transcription", - "origin": [ - 48.63800048828125, - 385.0 - ], - "bbox": [ - 48.63800048828125, - 376.2601013183594, - 207.37713623046875, - 387.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 376.2601013183594, - 207.37713623046875, - 387.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "factor known to mediate drug, xenobiotic", - "origin": [ - 48.63800048828125, - 396.0 - ], - "bbox": [ - 48.63800048828125, - 387.2601013183594, - 207.3780059814453, - 398.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 387.2601013183594, - 207.3780059814453, - 398.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and steroid induction of the major liver", - "origin": [ - 48.63800048828125, - 407.0 - ], - "bbox": [ - 48.63800048828125, - 398.2601013183594, - 207.36392211914062, - 409.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 398.2601013183594, - 207.36392211914062, - 409.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drug metabolizing enzyme, can also regu-", - "origin": [ - 48.63800048828125, - 418.0 - ], - "bbox": [ - 48.63800048828125, - 409.2601013183594, - 207.3780059814453, - 420.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 409.2601013183594, - 207.3780059814453, - 420.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "late the expression of a drug efflux path-", - "origin": [ - 48.63800048828125, - 429.0 - ], - "bbox": [ - 48.63800048828125, - 420.2601013183594, - 207.3896942138672, - 431.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 420.2601013183594, - 207.3896942138672, - 431.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "way, indicating a novel strategy to", - "origin": [ - 48.63800048828125, - 440.0 - ], - "bbox": [ - 48.63800048828125, - 431.2601013183594, - 207.3887939453125, - 442.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 431.2601013183594, - 207.3887939453125, - 442.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "control drug clearance.", - "origin": [ - 48.63800048828125, - 451.0 - ], - "bbox": [ - 48.63800048828125, - 442.2601013183594, - 136.88027954101562, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 442.2601013183594, - 136.88027954101562, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "CYP3A4, the most abundant drug-me-", - "origin": [ - 57.142181396484375, - 462.0 - ], - "bbox": [ - 57.142181396484375, - 453.2601013183594, - 207.38800048828125, - 464.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.142181396484375, - 453.2601013183594, - 207.38800048828125, - 464.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tabolizing enzyme in the liver and", - "origin": [ - 48.63800048828125, - 473.0 - ], - "bbox": [ - 48.63800048828125, - 464.2601013183594, - 179.47589111328125, - 475.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 464.2601013183594, - 179.47589111328125, - 475.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "intestine, is responsible for the", - "origin": [ - 48.63800048828125, - 484.0 - ], - "bbox": [ - 48.63800048828125, - 475.2601013183594, - 179.48423767089844, - 486.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 475.2601013183594, - 179.48423767089844, - 486.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "metabolism of 50% of all drugs.", - "origin": [ - 48.63800048828125, - 495.0 - ], - "bbox": [ - 48.63800048828125, - 486.2601013183594, - 179.48753356933594, - 497.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 486.2601013183594, - 179.48753356933594, - 497.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Many drugs are substrates for both", - "origin": [ - 48.63800048828125, - 506.0 - ], - "bbox": [ - 48.63800048828125, - 497.2601013183594, - 179.47755432128906, - 508.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 497.2601013183594, - 179.47755432128906, - 508.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "CYP3A4 and P-glycoprotein, a", - "origin": [ - 48.63800048828125, - 517.0 - ], - "bbox": [ - 48.63800048828125, - 508.2601013183594, - 179.4875030517578, - 519.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 508.2601013183594, - 179.4875030517578, - 519.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "broad-specificity efflux pump pro-", - "origin": [ - 48.63800048828125, - 528.0 - ], - "bbox": [ - 48.63800048828125, - 519.2600708007812, - 179.47756958007812, - 530.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 519.2600708007812, - 179.47756958007812, - 530.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tein encoded by the gene ", - "origin": [ - 48.63800048828125, - 539.0 - ], - "bbox": [ - 48.63800048828125, - 530.2600708007812, - 146.25595092773438, - 541.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 145.7230987548828, - 539.0 - ], - "bbox": [ - 145.7230987548828, - 531.106689453125, - 169.32249450683594, - 541.2410278320312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". It", - "origin": [ - 169.3067169189453, - 539.0 - ], - "bbox": [ - 169.3067169189453, - 530.2600708007812, - 179.48001098632812, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63800048828125, - 530.2600708007812, - 179.48001098632812, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "was first demonstrated in 1996", - "origin": [ - 48.63799285888672, - 550.0 - ], - "bbox": [ - 48.63799285888672, - 541.2600708007812, - 179.48667907714844, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63799285888672, - 541.2600708007812, - 179.48667907714844, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "that ", - "origin": [ - 48.63799285888672, - 560.9999389648438 - ], - "bbox": [ - 48.63799285888672, - 552.260009765625, - 66.84156036376953, - 563.3322143554688 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 68.74639892578125, - 560.9999389648438 - ], - "bbox": [ - 68.74639892578125, - 553.1066284179688, - 92.39060974121094, - 563.240966796875 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " expression is coordi-", - "origin": [ - 92.39060974121094, - 560.9999389648438 - ], - "bbox": [ - 92.39060974121094, - 552.260009765625, - 179.4866943359375, - 563.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63799285888672, - 552.260009765625, - 179.4866943359375, - 563.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "nated with expression of ", - "origin": [ - 48.63882064819336, - 571.9999389648438 - ], - "bbox": [ - 48.63882064819336, - 563.260009765625, - 146.07835388183594, - 574.3322143554688 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A4", - "origin": [ - 145.9546661376953, - 571.9999389648438 - ], - "bbox": [ - 145.9546661376953, - 564.1066284179688, - 177.10043334960938, - 574.240966796875 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 177.09957885742188, - 571.9999389648438 - ], - "bbox": [ - 177.09957885742188, - 563.260009765625, - 179.48167419433594, - 574.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63882064819336, - 563.260009765625, - 179.48167419433594, - 574.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "with both gene products being in-", - "origin": [ - 48.638824462890625, - 582.9999389648438 - ], - "bbox": [ - 48.638824462890625, - 574.260009765625, - 179.4750518798828, - 585.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638824462890625, - 574.260009765625, - 179.4750518798828, - 585.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duced by the same spectrum of", - "origin": [ - 48.638824462890625, - 593.9998779296875 - ], - "bbox": [ - 48.638824462890625, - 585.2599487304688, - 179.49000549316406, - 596.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638824462890625, - 585.2599487304688, - 179.49000549316406, - 596.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drugs", - "origin": [ - 48.638824462890625, - 604.9998779296875 - ], - "bbox": [ - 48.638824462890625, - 596.2599487304688, - 69.74738311767578, - 607.3321533203125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 69.74649810791016, - 601.6799926757812 - ], - "bbox": [ - 69.74649810791016, - 596.8677978515625, - 72.36967468261719, - 602.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". ", - "origin": [ - 72.36669921875, - 605.0 - ], - "bbox": [ - 72.36669921875, - 596.2600708007812, - 77.12924194335938, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.638824462890625, - 596.2599487304688, - 77.12924194335938, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "P-glycoprotein ", - "origin": [ - 91.5330581665039, - 605.0 - ], - "bbox": [ - 91.5330581665039, - 596.2600708007812, - 150.3734130859375, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.5330581665039, - 596.2600708007812, - 150.3734130859375, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and", - "origin": [ - 164.77725219726562, - 605.0 - ], - "bbox": [ - 164.77725219726562, - 596.2600708007812, - 179.47323608398438, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 164.77725219726562, - 596.2600708007812, - 179.47323608398438, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "CYP3A4 are colocalized in liver", - "origin": [ - 48.6378288269043, - 616.0 - ], - "bbox": [ - 48.6378288269043, - 607.2600708007812, - 179.489013671875, - 618.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 607.2600708007812, - 179.489013671875, - 618.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and intestine, and serve as a coor-", - "origin": [ - 48.6378288269043, - 627.0 - ], - "bbox": [ - 48.6378288269043, - 618.2600708007812, - 179.49234008789062, - 629.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 618.2600708007812, - 179.49234008789062, - 629.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "dinated system for the absorption,", - "origin": [ - 48.6378288269043, - 637.9999389648438 - ], - "bbox": [ - 48.6378288269043, - 629.260009765625, - 179.4748992919922, - 640.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 629.260009765625, - 179.4748992919922, - 640.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "metabolism and disposition of", - "origin": [ - 48.6378288269043, - 648.9999389648438 - ], - "bbox": [ - 48.6378288269043, - 640.260009765625, - 179.49066162109375, - 651.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 640.260009765625, - 179.49066162109375, - 651.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "many drugs. Many drug–drug in-", - "origin": [ - 48.6378288269043, - 659.9999389648438 - ], - "bbox": [ - 48.6378288269043, - 651.260009765625, - 179.48983764648438, - 662.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 651.260009765625, - 179.48983764648438, - 662.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "teractions arise from concurrent", - "origin": [ - 48.6378288269043, - 670.9999389648438 - ], - "bbox": [ - 48.6378288269043, - 662.260009765625, - 179.80360412597656, - 673.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 662.260009765625, - 179.80360412597656, - 673.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "administration of drugs which are", - "origin": [ - 48.6378288269043, - 681.9998779296875 - ], - "bbox": [ - 48.6378288269043, - 673.2599487304688, - 179.804443359375, - 684.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 673.2599487304688, - 179.804443359375, - 684.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "both substrates and inducers of", - "origin": [ - 48.6378288269043, - 692.9998779296875 - ], - "bbox": [ - 48.6378288269043, - 684.2599487304688, - 179.8226776123047, - 695.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 684.2599487304688, - 179.8226776123047, - 695.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A4", - "origin": [ - 48.6378288269043, - 703.9998779296875 - ], - "bbox": [ - 48.6378288269043, - 696.1065673828125, - 79.78357696533203, - 706.2409057617188 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and ", - "origin": [ - 79.78357696533203, - 703.9998779296875 - ], - "bbox": [ - 79.78357696533203, - 695.2599487304688, - 102.12303161621094, - 706.3321533203125 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 105.00479125976562, - 703.9998779296875 - ], - "bbox": [ - 105.00479125976562, - 696.1065673828125, - 128.6490020751953, - 706.2409057617188 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " expression", - "origin": [ - 128.6490020751953, - 703.9998779296875 - ], - "bbox": [ - 128.6490020751953, - 695.2599487304688, - 174.8152618408203, - 706.3321533203125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "3", - "origin": [ - 174.8137969970703, - 700.6799926757812 - ], - "bbox": [ - 174.8137969970703, - 695.8677978515625, - 177.43698120117188, - 701.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 177.4340057373047, - 704.0 - ], - "bbox": [ - 177.4340057373047, - 695.2600708007812, - 179.81610107421875, - 706.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.6378288269043, - 695.2599487304688, - 179.81610107421875, - 706.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Long-term therapy with drugs", - "origin": [ - 48.63792419433594, - 715.0 - ], - "bbox": [ - 48.63792419433594, - 706.2600708007812, - 179.8244171142578, - 717.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63792419433594, - 706.2600708007812, - 179.8244171142578, - 717.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "that induce ", - "origin": [ - 48.63792419433594, - 726.0 - ], - "bbox": [ - 48.63792419433594, - 717.2600708007812, - 94.7668228149414, - 728.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A4", - "origin": [ - 94.23895263671875, - 726.0 - ], - "bbox": [ - 94.23895263671875, - 718.106689453125, - 125.29341125488281, - 728.2410278320312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and ", - "origin": [ - 125.29341125488281, - 726.0 - ], - "bbox": [ - 125.29341125488281, - 717.2600708007812, - 144.1534881591797, - 728.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 143.6297607421875, - 726.0 - ], - "bbox": [ - 143.6297607421875, - 718.106689453125, - 167.2191925048828, - 728.2410278320312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " in-", - "origin": [ - 167.2191925048828, - 726.0 - ], - "bbox": [ - 167.2191925048828, - 717.2600708007812, - 179.81776428222656, - 728.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63792419433594, - 717.2600708007812, - 179.81776428222656, - 728.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "crease the systemic clearance of", - "origin": [ - 48.63792419433594, - 737.0 - ], - "bbox": [ - 48.63792419433594, - 728.2600708007812, - 179.8236083984375, - 739.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.63792419433594, - 728.2600708007812, - 179.8236083984375, - 739.332275390625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 218.71630859375, - 178.25979614257812, - 377.9421691894531, - 464.3323059082031 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "some antileukemic agents, and such ther-", - "origin": [ - 218.716552734375, - 186.99969482421875 - ], - "bbox": [ - 218.716552734375, - 178.25979614257812, - 377.925537109375, - 189.33200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716552734375, - 178.25979614257812, - 377.925537109375, - 189.33200073242188 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "apy has been shown to exert negative ef-", - "origin": [ - 218.716552734375, - 197.99969482421875 - ], - "bbox": [ - 218.716552734375, - 189.25979614257812, - 377.9354248046875, - 200.33200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716552734375, - 189.25979614257812, - 377.9354248046875, - 200.33200073242188 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fects on survival while increasing cancer", - "origin": [ - 218.716552734375, - 208.99969482421875 - ], - "bbox": [ - 218.716552734375, - 200.25979614257812, - 377.9395446777344, - 211.33200073242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716552734375, - 200.25979614257812, - 377.9395446777344, - 211.33200073242188 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "relapse", - "origin": [ - 218.716552734375, - 219.99969482421875 - ], - "bbox": [ - 218.716552734375, - 211.25979614257812, - 245.33299255371094, - 222.33200073242188 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "4", - "origin": [ - 245.33489990234375, - 216.67999267578125 - ], - "bbox": [ - 245.33489990234375, - 211.86778259277344, - 247.9580841064453, - 217.9641571044922 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". Recent studies have shown that", - "origin": [ - 247.95509338378906, - 220.0 - ], - "bbox": [ - 247.95509338378906, - 211.26010131835938, - 377.9321594238281, - 222.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716552734375, - 211.25979614257812, - 377.9321594238281, - 222.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "SXR, a member of the nuclear hormone", - "origin": [ - 218.7166748046875, - 231.0 - ], - "bbox": [ - 218.7166748046875, - 222.26010131835938, - 377.939697265625, - 233.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 222.26010131835938, - 377.939697265625, - 233.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "receptor superfamily, regulates expres-", - "origin": [ - 218.7166748046875, - 242.0 - ], - "bbox": [ - 218.7166748046875, - 233.26010131835938, - 377.9404602050781, - 244.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 233.26010131835938, - 377.9404602050781, - 244.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sion of ", - "origin": [ - 218.7166748046875, - 253.0 - ], - "bbox": [ - 218.7166748046875, - 244.26010131835938, - 247.9949188232422, - 255.33230590820312 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A", - "origin": [ - 248.39332580566406, - 253.0 - ], - "bbox": [ - 248.39332580566406, - 245.10670471191406, - 274.77569580078125, - 255.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " (ref. 5,6). SXR is activated", - "origin": [ - 274.77569580078125, - 253.0 - ], - "bbox": [ - 274.77569580078125, - 244.26010131835938, - 377.9371337890625, - 255.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 244.26010131835938, - 377.9371337890625, - 255.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by a pharmacopia of drugs, including an-", - "origin": [ - 218.7166748046875, - 264.0 - ], - "bbox": [ - 218.7166748046875, - 255.26010131835938, - 377.9412841796875, - 266.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 255.26010131835938, - 377.9412841796875, - 266.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tibiotics, ", - "origin": [ - 218.7166748046875, - 275.0 - ], - "bbox": [ - 218.7166748046875, - 266.2601013183594, - 254.5229034423828, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 266.2601013183594, - 254.5229034423828, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "statin ", - "origin": [ - 264.6788024902344, - 275.0 - ], - "bbox": [ - 264.6788024902344, - 266.2601013183594, - 288.8351135253906, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 264.6788024902344, - 266.2601013183594, - 288.8351135253906, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cholesterol-lowering", - "origin": [ - 298.990966796875, - 275.0 - ], - "bbox": [ - 298.990966796875, - 266.2601013183594, - 377.9413757324219, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 298.990966796875, - 266.2601013183594, - 377.9413757324219, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drugs, antiseizure medications, steroids", - "origin": [ - 218.7166748046875, - 286.0 - ], - "bbox": [ - 218.7166748046875, - 277.2601013183594, - 377.9421691894531, - 288.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 277.2601013183594, - 377.9421691894531, - 288.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "such as glucocorticoids", - "origin": [ - 218.7166748046875, - 297.0 - ], - "bbox": [ - 218.7166748046875, - 288.2601013183594, - 307.50341796875, - 299.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "5", - "origin": [ - 307.51129150390625, - 293.67999267578125 - ], - "bbox": [ - 307.51129150390625, - 288.8677978515625, - 310.13446044921875, - 294.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", some bile acids", - "origin": [ - 310.1315002441406, - 297.0 - ], - "bbox": [ - 310.1315002441406, - 288.2601013183594, - 372.92266845703125, - 299.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "7", - "origin": [ - 372.9276123046875, - 293.67999267578125 - ], - "bbox": [ - 372.9276123046875, - 288.8677978515625, - 375.55078125, - 294.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 375.54779052734375, - 297.0 - ], - "bbox": [ - 375.54779052734375, - 288.2601013183594, - 377.9299011230469, - 299.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7166748046875, - 288.2601013183594, - 377.9299011230469, - 299.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "environmental contaminants such as", - "origin": [ - 218.716796875, - 308.0 - ], - "bbox": [ - 218.716796875, - 299.2601013183594, - 377.9356994628906, - 310.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716796875, - 299.2601013183594, - 377.9356994628906, - 310.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "organochlorine pesticides and polychlori-", - "origin": [ - 218.716796875, - 319.0 - ], - "bbox": [ - 218.716796875, - 310.2601013183594, - 377.91583251953125, - 321.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716796875, - 310.2601013183594, - 377.91583251953125, - 321.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "nated biphenyls", - "origin": [ - 218.716796875, - 330.0 - ], - "bbox": [ - 218.716796875, - 321.2601013183594, - 285.45965576171875, - 332.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "8", - "origin": [ - 285.45709228515625, - 326.67999267578125 - ], - "bbox": [ - 285.45709228515625, - 321.8677978515625, - 288.08026123046875, - 327.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", and herbal supple-", - "origin": [ - 288.0773010253906, - 330.0 - ], - "bbox": [ - 288.0773010253906, - 321.2601013183594, - 377.9346923828125, - 332.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716796875, - 321.2601013183594, - 377.9346923828125, - 332.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ments such as St. John’s wort", - "origin": [ - 218.71669006347656, - 341.0 - ], - "bbox": [ - 218.71669006347656, - 332.2601013183594, - 330.273681640625, - 343.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "9", - "origin": [ - 330.2721862792969, - 337.67999267578125 - ], - "bbox": [ - 330.2721862792969, - 332.8677978515625, - 332.8953552246094, - 338.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 332.88720703125, - 341.0 - ], - "bbox": [ - 332.88720703125, - 332.2601013183594, - 335.2693176269531, - 343.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71669006347656, - 332.2601013183594, - 335.2693176269531, - 343.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Little is known about how certain drugs", - "origin": [ - 227.22073364257812, - 352.0 - ], - "bbox": [ - 227.22073364257812, - 343.2601013183594, - 377.9355163574219, - 354.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.22073364257812, - 343.2601013183594, - 377.9355163574219, - 354.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "induce ", - "origin": [ - 218.716552734375, - 363.0 - ], - "bbox": [ - 218.716552734375, - 354.2601013183594, - 247.34158325195312, - 365.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP", - "origin": [ - 248.41810607910156, - 363.0 - ], - "bbox": [ - 248.41810607910156, - 355.106689453125, - 264.35076904296875, - 365.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and ", - "origin": [ - 264.35076904296875, - 363.0 - ], - "bbox": [ - 264.35076904296875, - 354.2601013183594, - 284.8841857910156, - 365.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1 ", - "origin": [ - 285.9590148925781, - 363.0 - ], - "bbox": [ - 285.9590148925781, - 355.106689453125, - 311.9844970703125, - 365.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "gene expression.", - "origin": [ - 313.0585021972656, - 363.0 - ], - "bbox": [ - 313.0585021972656, - 354.2601013183594, - 377.9312744140625, - 365.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.716552734375, - 354.2601013183594, - 377.9312744140625, - 365.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Synold ", - "origin": [ - 218.71737670898438, - 374.0 - ], - "bbox": [ - 218.71737670898438, - 365.2601013183594, - 247.82049560546875, - 376.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al.", - "origin": [ - 247.9275665283203, - 374.0 - ], - "bbox": [ - 247.9275665283203, - 366.106689453125, - 266.0066223144531, - 376.2409973144531 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 266.0060119628906, - 370.67999267578125 - ], - "bbox": [ - 266.0060119628906, - 365.8677978515625, - 268.6291809082031, - 371.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 268.6291809082031, - 370.67999267578125 - ], - "bbox": [ - 268.6291809082031, - 361.9400939941406, - 271.11669921875, - 376.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "demonstrate that SXR is ac-", - "origin": [ - 271.11669921875, - 374.0 - ], - "bbox": [ - 271.11669921875, - 365.2601013183594, - 377.9359436035156, - 376.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71737670898438, - 361.9400939941406, - 377.9359436035156, - 376.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tivated by paclitaxel (Taxol) and is re-", - "origin": [ - 218.71630859375, - 385.0 - ], - "bbox": [ - 218.71630859375, - 376.2601013183594, - 377.9136047363281, - 387.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71630859375, - 376.2601013183594, - 377.9136047363281, - 387.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sponsible for inducing expression of not", - "origin": [ - 218.71630859375, - 396.0 - ], - "bbox": [ - 218.71630859375, - 387.2601013183594, - 377.9360656738281, - 398.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71630859375, - 387.2601013183594, - 377.9360656738281, - 398.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "only ", - "origin": [ - 218.71630859375, - 407.0 - ], - "bbox": [ - 218.71630859375, - 398.2601013183594, - 238.65457153320312, - 409.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A", - "origin": [ - 239.3932647705078, - 407.0 - ], - "bbox": [ - 239.3932647705078, - 399.106689453125, - 265.775634765625, - 409.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " (previously shown to be in-", - "origin": [ - 265.775634765625, - 407.0 - ], - "bbox": [ - 265.775634765625, - 398.2601013183594, - 377.93511962890625, - 409.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71630859375, - 398.2601013183594, - 377.93511962890625, - 409.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duced by paclitaxel", - "origin": [ - 218.71630859375, - 418.0 - ], - "bbox": [ - 218.71630859375, - 409.2601013183594, - 297.290771484375, - 420.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "10", - "origin": [ - 297.29669189453125, - 414.67999267578125 - ], - "bbox": [ - 297.29669189453125, - 409.8677978515625, - 302.537109375, - 415.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ") but also ", - "origin": [ - 302.5372009277344, - 418.0 - ], - "bbox": [ - 302.5372009277344, - 409.2601013183594, - 344.64642333984375, - 420.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP2C9", - "origin": [ - 346.6251525878906, - 418.0 - ], - "bbox": [ - 346.6251525878906, - 410.106689453125, - 377.9285888671875, - 420.2409973144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71630859375, - 409.2601013183594, - 377.9285888671875, - 420.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and ", - "origin": [ - 218.71633911132812, - 429.0 - ], - "bbox": [ - 218.71633911132812, - 420.2601013183594, - 235.79275512695312, - 431.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 237.2062530517578, - 429.0 - ], - "bbox": [ - 237.2062530517578, - 421.106689453125, - 260.8504638671875, - 431.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". Paclitaxel is metabolized by", - "origin": [ - 260.8496398925781, - 429.0 - ], - "bbox": [ - 260.8496398925781, - 420.2601013183594, - 377.9368591308594, - 431.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71633911132812, - 420.2601013183594, - 377.9368591308594, - 431.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "both CYP3A4 and CYP2C9 (ref. 11) and", - "origin": [ - 218.71633911132812, - 440.0 - ], - "bbox": [ - 218.71633911132812, - 431.2601013183594, - 377.9310302734375, - 442.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71633911132812, - 431.2601013183594, - 377.9310302734375, - 442.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "transported by P-glycoprotein, and in-", - "origin": [ - 218.71633911132812, - 451.0 - ], - "bbox": [ - 218.71633911132812, - 442.2601013183594, - 377.9410705566406, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71633911132812, - 442.2601013183594, - 377.9410705566406, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duction of all of these proteins leads to its", - "origin": [ - 218.71633911132812, - 462.0 - ], - "bbox": [ - 218.71633911132812, - 453.2601013183594, - 377.9270324707031, - 464.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.71633911132812, - 453.2601013183594, - 377.9270324707031, - 464.3323059082031 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 388.7942810058594, - 145.26010131835938, - 547.8056030273438, - 376.3323059082031 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "enhanced clearance", - "origin": [ - 388.79498291015625, - 154.000244140625 - ], - "bbox": [ - 388.79498291015625, - 145.26034545898438, - 468.20849609375, - 156.33255004882812 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "12", - "origin": [ - 468.2026062011719, - 150.67999267578125 - ], - "bbox": [ - 468.2026062011719, - 145.86778259277344, - 473.4430236816406, - 151.9641571044922 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". This indicates a", - "origin": [ - 473.4429931640625, - 154.0 - ], - "bbox": [ - 473.4429931640625, - 145.26010131835938, - 547.795166015625, - 156.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79498291015625, - 145.26010131835938, - 547.795166015625, - 156.33255004882812 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "broad role for SXR in the coordinated in-", - "origin": [ - 388.7954406738281, - 165.0 - ], - "bbox": [ - 388.7954406738281, - 156.26010131835938, - 547.779296875, - 167.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 156.26010131835938, - 547.779296875, - 167.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duction of multiple detoxification path-", - "origin": [ - 388.7954406738281, - 176.0 - ], - "bbox": [ - 388.7954406738281, - 167.26010131835938, - 547.8043823242188, - 178.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 167.26010131835938, - 547.8043823242188, - 178.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ways.", - "origin": [ - 388.7954406738281, - 187.0 - ], - "bbox": [ - 388.7954406738281, - 178.26010131835938, - 409.9504699707031, - 189.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 178.26010131835938, - 409.9504699707031, - 189.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Because concurrent administration of", - "origin": [ - 397.29962158203125, - 198.0 - ], - "bbox": [ - 397.29962158203125, - 189.26010131835938, - 547.803466796875, - 200.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.29962158203125, - 189.26010131835938, - 547.803466796875, - 200.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "CYP3A4 and P-glycoprotein inducers", - "origin": [ - 388.7954406738281, - 209.0 - ], - "bbox": [ - 388.7954406738281, - 200.26010131835938, - 547.79931640625, - 211.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 200.26010131835938, - 547.79931640625, - 211.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "(such as rifampicin) with drugs that serve", - "origin": [ - 388.7954406738281, - 220.0 - ], - "bbox": [ - 388.7954406738281, - 211.26010131835938, - 547.7877197265625, - 222.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 211.26010131835938, - 547.7877197265625, - 222.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "as substrates for these proteins is a major", - "origin": [ - 388.7954406738281, - 231.0 - ], - "bbox": [ - 388.7954406738281, - 222.26010131835938, - 547.797607421875, - 233.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 222.26010131835938, - 547.797607421875, - 233.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "basis of drug–drug interactions", - "origin": [ - 388.7954406738281, - 242.0 - ], - "bbox": [ - 388.7954406738281, - 233.26010131835938, - 507.705322265625, - 244.33230590820312 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "5", - "origin": [ - 507.6951904296875, - 238.67999267578125 - ], - "bbox": [ - 507.6951904296875, - 233.86778259277344, - 510.318359375, - 239.9641571044922 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", pharma-", - "origin": [ - 510.3153991699219, - 242.0 - ], - "bbox": [ - 510.3153991699219, - 233.26010131835938, - 547.7899169921875, - 244.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7954406738281, - 233.26010131835938, - 547.7899169921875, - 244.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ceutical companies are now using SXR-", - "origin": [ - 388.79510498046875, - 253.0 - ], - "bbox": [ - 388.79510498046875, - 244.26010131835938, - 547.801513671875, - 255.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 244.26010131835938, - 547.801513671875, - 255.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "binding and -activation assays to screen", - "origin": [ - 388.79510498046875, - 264.0 - ], - "bbox": [ - 388.79510498046875, - 255.26010131835938, - 547.8031005859375, - 266.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 255.26010131835938, - 547.8031005859375, - 266.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and predict which compounds will in-", - "origin": [ - 388.79510498046875, - 275.0 - ], - "bbox": [ - 388.79510498046875, - 266.2601013183594, - 547.80224609375, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 266.2601013183594, - 547.80224609375, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "duce CYP3A expression and potentially", - "origin": [ - 388.79510498046875, - 286.0 - ], - "bbox": [ - 388.79510498046875, - 277.2601013183594, - 547.798095703125, - 288.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 277.2601013183594, - 547.798095703125, - 288.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cause drug interactions. These types of as-", - "origin": [ - 388.79510498046875, - 297.0 - ], - "bbox": [ - 388.79510498046875, - 288.2601013183594, - 547.7868041992188, - 299.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 288.2601013183594, - 547.7868041992188, - 299.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "says may also identify compounds that", - "origin": [ - 388.79510498046875, - 308.0 - ], - "bbox": [ - 388.79510498046875, - 299.2601013183594, - 547.8015747070312, - 310.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 299.2601013183594, - 547.8015747070312, - 310.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "induce ", - "origin": [ - 388.79510498046875, - 319.0 - ], - "bbox": [ - 388.79510498046875, - 310.2601013183594, - 417.420166015625, - 321.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP2C9", - "origin": [ - 420.08612060546875, - 319.0 - ], - "bbox": [ - 420.08612060546875, - 311.106689453125, - 451.3895568847656, - 321.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and ", - "origin": [ - 451.3895568847656, - 319.0 - ], - "bbox": [ - 451.3895568847656, - 310.2601013183594, - 473.5115966796875, - 321.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 476.1758728027344, - 319.0 - ], - "bbox": [ - 476.1758728027344, - 311.106689453125, - 499.820068359375, - 321.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", and cause", - "origin": [ - 499.8192443847656, - 319.0 - ], - "bbox": [ - 499.8192443847656, - 310.2601013183594, - 547.78662109375, - 321.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.79510498046875, - 310.2601013183594, - 547.78662109375, - 321.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "auto-induction of their own clearance. It", - "origin": [ - 388.7942810058594, - 330.0 - ], - "bbox": [ - 388.7942810058594, - 321.2601013183594, - 547.8056030273438, - 332.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7942810058594, - 321.2601013183594, - 547.8056030273438, - 332.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "might be possible to someday create", - "origin": [ - 388.7942810058594, - 341.0 - ], - "bbox": [ - 388.7942810058594, - 332.2601013183594, - 547.798095703125, - 343.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7942810058594, - 332.2601013183594, - 547.798095703125, - 343.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drugs that are ‘SXR transparent’ by mini-", - "origin": [ - 388.7942810058594, - 352.0 - ], - "bbox": [ - 388.7942810058594, - 343.2601013183594, - 547.8038940429688, - 354.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7942810058594, - 343.2601013183594, - 547.8038940429688, - 354.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mizing or eliminating binding activity. In", - "origin": [ - 388.7942810058594, - 363.0 - ], - "bbox": [ - 388.7942810058594, - 354.2601013183594, - 547.78662109375, - 365.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7942810058594, - 354.2601013183594, - 547.78662109375, - 365.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "this regard, the report of Synold ", - "origin": [ - 388.7942810058594, - 374.0 - ], - "bbox": [ - 388.7942810058594, - 365.2601013183594, - 523.6666870117188, - 376.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al", - "origin": [ - 525.42724609375, - 374.0 - ], - "bbox": [ - 525.42724609375, - 366.106689453125, - 542.7891845703125, - 376.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 542.7891845703125, - 374.0 - ], - "bbox": [ - 542.7891845703125, - 365.2601013183594, - 545.1712646484375, - 376.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 545.1704711914062, - 370.67999267578125 - ], - "bbox": [ - 545.1704711914062, - 365.8677978515625, - 547.7936401367188, - 371.96417236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7942810058594, - 365.2601013183594, - 547.7936401367188, - 376.3323059082031 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 388.7952880859375, - 376.2601013183594, - 547.806640625, - 739.332275390625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "shows that docetaxel, unlike the struc-", - "origin": [ - 388.7952880859375, - 385.0 - ], - "bbox": [ - 388.7952880859375, - 376.2601013183594, - 547.7999267578125, - 387.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7952880859375, - 376.2601013183594, - 547.7999267578125, - 387.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tural analog paclitaxel, does not induce", - "origin": [ - 388.7952880859375, - 396.0 - ], - "bbox": [ - 388.7952880859375, - 387.2601013183594, - 547.7794189453125, - 398.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7952880859375, - 387.2601013183594, - 547.7794189453125, - 398.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A4", - "origin": [ - 388.7952880859375, - 407.0 - ], - "bbox": [ - 388.7952880859375, - 399.106689453125, - 419.9410095214844, - 409.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " or ", - "origin": [ - 419.9410095214844, - 407.0 - ], - "bbox": [ - 419.9410095214844, - 398.2601013183594, - 434.3822326660156, - 409.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 435.95672607421875, - 407.0 - ], - "bbox": [ - 435.95672607421875, - 399.106689453125, - 459.6009216308594, - 409.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " expression because it", - "origin": [ - 459.6009216308594, - 407.0 - ], - "bbox": [ - 459.6009216308594, - 398.2601013183594, - 547.7941284179688, - 409.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7952880859375, - 398.2601013183594, - 547.7941284179688, - 409.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "does not activate SXR. This should result", - "origin": [ - 388.7961120605469, - 418.0 - ], - "bbox": [ - 388.7961120605469, - 409.2601013183594, - 547.80078125, - 420.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7961120605469, - 409.2601013183594, - 547.80078125, - 420.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in superior pharmacokinetic properties", - "origin": [ - 388.7961120605469, - 429.0 - ], - "bbox": [ - 388.7961120605469, - 420.2601013183594, - 547.806640625, - 431.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7961120605469, - 420.2601013183594, - 547.806640625, - 431.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "relative to paclitaxel.", - "origin": [ - 388.7961120605469, - 440.0 - ], - "bbox": [ - 388.7961120605469, - 431.2601013183594, - 468.8296203613281, - 442.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7961120605469, - 431.2601013183594, - 468.8296203613281, - 442.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Synold ", - "origin": [ - 397.30029296875, - 451.0 - ], - "bbox": [ - 397.30029296875, - 442.2601013183594, - 426.4034423828125, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.30029296875, - 442.2601013183594, - 426.4034423828125, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et ", - "origin": [ - 434.35894775390625, - 451.0 - ], - "bbox": [ - 434.35894775390625, - 443.106689453125, - 443.0291442871094, - 453.2409973144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 434.35894775390625, - 443.106689453125, - 443.0291442871094, - 453.2409973144531 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "al", - "origin": [ - 450.9855041503906, - 451.0 - ], - "bbox": [ - 450.9855041503906, - 443.106689453125, - 457.9060363769531, - 453.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 457.9060363769531, - 451.0 - ], - "bbox": [ - 457.9060363769531, - 442.2601013183594, - 460.28814697265625, - 453.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 460.2854919433594, - 447.67999267578125 - ], - "bbox": [ - 460.2854919433594, - 442.8677978515625, - 462.9086608886719, - 448.96417236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 450.9855041503906, - 442.2601013183594, - 462.9086608886719, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "demonstrate ", - "origin": [ - 473.2445068359375, - 451.0 - ], - "bbox": [ - 473.2445068359375, - 442.2601013183594, - 524.0055541992188, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 473.2445068359375, - 442.2601013183594, - 524.0055541992188, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "that", - "origin": [ - 531.9619750976562, - 451.0 - ], - "bbox": [ - 531.9619750976562, - 442.2601013183594, - 547.7850341796875, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 531.9619750976562, - 442.2601013183594, - 547.7850341796875, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Ecteinascidin-743 (ET-743), an antineo-", - "origin": [ - 388.7953186035156, - 462.0 - ], - "bbox": [ - 388.7953186035156, - 453.2601013183594, - 547.7991943359375, - 464.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 388.7953186035156, - 453.2601013183594, - 547.7991943359375, - 464.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "plastic agent, can antagonize SXR", - "origin": [ - 414.3070373535156, - 473.0 - ], - "bbox": [ - 414.3070373535156, - 464.2601013183594, - 547.7974243164062, - 475.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.3070373535156, - 464.2601013183594, - 547.7974243164062, - 475.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "activation and inhibit ", - "origin": [ - 414.3070373535156, - 484.0 - ], - "bbox": [ - 414.3070373535156, - 475.2601013183594, - 505.8145751953125, - 486.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 507.9733581542969, - 484.0 - ], - "bbox": [ - 507.9733581542969, - 476.106689453125, - 531.6176147460938, - 486.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ex-", - "origin": [ - 531.6176147460938, - 484.0 - ], - "bbox": [ - 531.6176147460938, - 475.2601013183594, - 547.7918090820312, - 486.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.3070373535156, - 475.2601013183594, - 547.7918090820312, - 486.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pression. The authors suggest that", - "origin": [ - 414.30706787109375, - 495.0 - ], - "bbox": [ - 414.30706787109375, - 486.2601013183594, - 547.7951049804688, - 497.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 486.2601013183594, - 547.7951049804688, - 497.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "SXR antagonists that downregu-", - "origin": [ - 414.30706787109375, - 506.0 - ], - "bbox": [ - 414.30706787109375, - 497.2601013183594, - 547.7975463867188, - 508.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 497.2601013183594, - 547.7975463867188, - 508.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "late the P-glycoprotein pathway of", - "origin": [ - 414.30706787109375, - 517.0 - ], - "bbox": [ - 414.30706787109375, - 508.2601013183594, - 547.7984008789062, - 519.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 508.2601013183594, - 547.7984008789062, - 519.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "drug elimination could be ex-", - "origin": [ - 414.30706787109375, - 528.0 - ], - "bbox": [ - 414.30706787109375, - 519.2600708007812, - 547.7809448242188, - 530.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 519.2600708007812, - 547.7809448242188, - 530.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ploited to improve drug retention.", - "origin": [ - 414.30706787109375, - 539.0 - ], - "bbox": [ - 414.30706787109375, - 530.2600708007812, - 547.7808227539062, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 530.2600708007812, - 547.7808227539062, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "This approach should be under-", - "origin": [ - 414.30706787109375, - 550.0 - ], - "bbox": [ - 414.30706787109375, - 541.2600708007812, - 547.8001098632812, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 541.2600708007812, - 547.8001098632812, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "taken cautiously, because clinical", - "origin": [ - 414.30706787109375, - 560.9999389648438 - ], - "bbox": [ - 414.30706787109375, - 552.260009765625, - 547.802490234375, - 563.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 552.260009765625, - 547.802490234375, - 563.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "trials involving drugs that inhibit", - "origin": [ - 414.30706787109375, - 571.9999389648438 - ], - "bbox": [ - 414.30706787109375, - 563.260009765625, - 547.802490234375, - 574.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 563.260009765625, - 547.802490234375, - 574.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "P-glycoprotein activity, given in an", - "origin": [ - 414.30706787109375, - 582.9999389648438 - ], - "bbox": [ - 414.30706787109375, - 574.260009765625, - 547.80615234375, - 585.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 574.260009765625, - 547.80615234375, - 585.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "effort to reduce drug resistance,", - "origin": [ - 414.30706787109375, - 593.9998779296875 - ], - "bbox": [ - 414.30706787109375, - 585.2599487304688, - 547.7777099609375, - 596.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 585.2599487304688, - 547.7777099609375, - 596.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "have had limited success and led to", - "origin": [ - 414.30706787109375, - 604.9998779296875 - ], - "bbox": [ - 414.30706787109375, - 596.2599487304688, - 547.7891845703125, - 607.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 596.2599487304688, - 547.7891845703125, - 607.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "undesired pharmacokinetic side-", - "origin": [ - 414.30706787109375, - 615.9998779296875 - ], - "bbox": [ - 414.30706787109375, - 607.2599487304688, - 547.7811279296875, - 618.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 607.2599487304688, - 547.7811279296875, - 618.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "effects", - "origin": [ - 414.30706787109375, - 626.9998779296875 - ], - "bbox": [ - 414.30706787109375, - 618.2599487304688, - 438.7538757324219, - 629.3321533203125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "13", - "origin": [ - 438.7535095214844, - 623.6799926757812 - ], - "bbox": [ - 438.7535095214844, - 618.8677978515625, - 443.9939270019531, - 624.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". ", - "origin": [ - 443.993896484375, - 627.0 - ], - "bbox": [ - 443.993896484375, - 618.2600708007812, - 448.755615234375, - 629.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 449.36151123046875, - 627.0 - ], - "bbox": [ - 449.36151123046875, - 619.106689453125, - 473.0057067871094, - 629.2410278320312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " expression ‘modu-", - "origin": [ - 473.0057067871094, - 627.0 - ], - "bbox": [ - 473.0057067871094, - 618.2600708007812, - 547.7970581054688, - 629.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30706787109375, - 618.2599487304688, - 547.7970581054688, - 629.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lators’ should be carefully screened", - "origin": [ - 414.30731201171875, - 638.0 - ], - "bbox": [ - 414.30731201171875, - 629.2600708007812, - 547.7904052734375, - 640.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 629.2600708007812, - 547.7904052734375, - 640.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "for their potential to inhibit or", - "origin": [ - 414.30731201171875, - 649.0 - ], - "bbox": [ - 414.30731201171875, - 640.2600708007812, - 547.8027954101562, - 651.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 640.2600708007812, - 547.8027954101562, - 651.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "modulate metabolism of other", - "origin": [ - 414.30731201171875, - 659.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 651.260009765625, - 547.781982421875, - 662.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 651.260009765625, - 547.781982421875, - 662.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "medications taken by a patient.", - "origin": [ - 414.30731201171875, - 670.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 662.260009765625, - 547.8012084960938, - 673.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 662.260009765625, - 547.8012084960938, - 673.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Given the knowledge that SXR has", - "origin": [ - 414.30731201171875, - 681.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 673.260009765625, - 547.8003540039062, - 684.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 673.260009765625, - 547.8003540039062, - 684.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "multiple detoxification genes as", - "origin": [ - 414.30731201171875, - 692.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 684.260009765625, - 547.8003540039062, - 695.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 684.260009765625, - 547.8003540039062, - 695.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "targets, antagonism of SXR might", - "origin": [ - 414.30731201171875, - 703.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 695.260009765625, - 547.798583984375, - 706.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 695.260009765625, - 547.798583984375, - 706.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "lead to increased drug toxicity.", - "origin": [ - 414.30731201171875, - 714.9999389648438 - ], - "bbox": [ - 414.30731201171875, - 706.260009765625, - 532.2012329101562, - 717.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.30731201171875, - 706.260009765625, - 532.2012329101562, - 717.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Synold ", - "origin": [ - 422.8114929199219, - 725.9998779296875 - ], - "bbox": [ - 422.8114929199219, - 717.2599487304688, - 451.3419189453125, - 728.3321533203125 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al", - "origin": [ - 451.5992126464844, - 725.9998779296875 - ], - "bbox": [ - 451.5992126464844, - 718.1065673828125, - 467.1641845703125, - 728.2409057617188 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ".", - "origin": [ - 467.0662536621094, - 725.9998779296875 - ], - "bbox": [ - 467.0662536621094, - 717.2599487304688, - 469.4483642578125, - 728.3321533203125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 469.3514099121094, - 722.6799926757812 - ], - "bbox": [ - 469.3514099121094, - 717.8677978515625, - 471.9745788574219, - 723.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 471.9745788574219, - 722.6799926757812 - ], - "bbox": [ - 471.9745788574219, - 713.9400634765625, - 474.5592956542969, - 728.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "emphasize the feed", - "origin": [ - 474.5592956542969, - 726.0 - ], - "bbox": [ - 474.5592956542969, - 717.2600708007812, - 547.7918701171875, - 728.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.8114929199219, - 713.9400634765625, - 547.7918701171875, - 728.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "forward pathways of drug clear-", - "origin": [ - 414.3070983886719, - 737.0 - ], - "bbox": [ - 414.3070983886719, - 728.2600708007812, - 547.7994995117188, - 739.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.3070983886719, - 728.2600708007812, - 547.7994995117188, - 739.332275390625 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 114.95989990234375, - 55.599998474121094, - 481.12640380859375, - 83.13999938964844 - ], - "lines": [ - { - "spans": [ - { - "size": 18.70828628540039, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Promiscuous regulator of xenobiotic removal", - "origin": [ - 114.95989990234375, - 77.0 - ], - "bbox": [ - 114.95989990234375, - 55.599998474121094, - 481.12640380859375, - 83.13999938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 114.95989990234375, - 55.599998474121094, - 481.12640380859375, - 83.13999938964844 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 73.33300018310547, - 90.11900329589844, - 522.7928466796875, - 134.548095703125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "The transcription factor SXR mediates drug, xenobiotic and steroid induction of a major drug–metabolizing enzyme.", - "origin": [ - 73.33300018310547, - 99.0 - ], - "bbox": [ - 73.33300018310547, - 90.11900329589844, - 522.7928466796875, - 101.54810333251953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 73.33300018310547, - 90.11900329589844, - 522.7928466796875, - 101.54810333251953 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Drugs such as paclitaxel (Taxol) can bind and activate this transcription factor and therefore regulate their own", - "origin": [ - 83.50714111328125, - 110.0 - ], - "bbox": [ - 83.50714111328125, - 101.11900329589844, - 512.6170043945312, - 112.54810333251953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.50714111328125, - 101.11900329589844, - 512.6170043945312, - 112.54810333251953 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "metabolism and efflux from cells. Manipulation of this pathway might lead to new ways to improve therapeutic", - "origin": [ - 83.26229095458984, - 121.0 - ], - "bbox": [ - 83.26229095458984, - 112.11900329589844, - 512.8660888671875, - 123.54810333251953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 83.26229095458984, - 112.11900329589844, - 512.8660888671875, - 123.54810333251953 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "efficacy and to minimize toxicity (584-590).", - "origin": [ - 214.32427978515625, - 132.0 - ], - "bbox": [ - 214.32427978515625, - 123.11900329589844, - 381.80255126953125, - 134.548095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.32427978515625, - 123.11900329589844, - 381.80255126953125, - 134.548095703125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 219.4792022705078, - 149.01708984375, - 376.694091796875, - 168.09100341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "E", - "origin": [ - 219.4792022705078, - 165.0 - ], - "bbox": [ - 219.4792022705078, - 153.4169921875, - 225.80419921875, - 168.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "RIN", - "origin": [ - 225.8542022705078, - 165.0 - ], - "bbox": [ - 225.8542022705078, - 156.312744140625, - 240.6035614013672, - 167.31825256347656 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " S", - "origin": [ - 240.6035614013672, - 165.0 - ], - "bbox": [ - 240.6035614013672, - 153.4169921875, - 249.02609252929688, - 168.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "CHUETZ", - "origin": [ - 249.07659912109375, - 165.0 - ], - "bbox": [ - 249.07659912109375, - 156.312744140625, - 283.1160888671875, - 167.31825256347656 - ] - }, - { - "size": 6.050000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 283.1650085449219, - 160.60009765625 - ], - "bbox": [ - 283.1650085449219, - 154.2294464111328, - 286.6376953125, - 162.30014038085938 - ] - }, - { - "size": 11.0, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 286.6376953125, - 160.60009765625 - ], - "bbox": [ - 286.6376953125, - 149.01708984375, - 289.53680419921875, - 168.09100341796875 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "& S", - "origin": [ - 289.53680419921875, - 165.0 - ], - "bbox": [ - 289.53680419921875, - 153.4169921875, - 306.92340087890625, - 168.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "TEPHEN", - "origin": [ - 306.97369384765625, - 165.0 - ], - "bbox": [ - 306.97369384765625, - 156.312744140625, - 339.6354064941406, - 167.31825256347656 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " S", - "origin": [ - 339.6354064941406, - 165.0 - ], - "bbox": [ - 339.6354064941406, - 153.4169921875, - 348.0578918457031, - 168.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "TROM", - "origin": [ - 348.1083984375, - 165.0 - ], - "bbox": [ - 348.1083984375, - 156.312744140625, - 373.16943359375, - 167.31825256347656 - ] - }, - { - "size": 6.050000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 373.2214050292969, - 160.60009765625 - ], - "bbox": [ - 373.2214050292969, - 154.2294464111328, - 376.694091796875, - 162.30014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.4792022705078, - 149.01708984375, - 376.694091796875, - 168.09100341796875 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 191.15379333496094, - 661.944091796875, - 402.9627380371094, - 740.4990844726562 - ], - "lines": [ - { - "spans": [ - { - "size": 7.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Fig. 1", - "origin": [ - 191.15379333496094, - 670.006591796875 - ], - "bbox": [ - 191.15379333496094, - 661.9815673828125, - 210.935791015625, - 672.30908203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15379333496094, - 661.9815673828125, - 210.935791015625, - 672.30908203125 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Feedforward and feedback pathways of drug metabo-", - "origin": [ - 219.6732940673828, - 670.006591796875 - ], - "bbox": [ - 219.6732940673828, - 661.944091796875, - 402.94610595703125, - 672.2490844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.6732940673828, - 661.944091796875, - 402.94610595703125, - 672.2490844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "lism. Paclitaxel is a ligand for SXR, causing this nuclear receptor", - "origin": [ - 191.15379333496094, - 679.756591796875 - ], - "bbox": [ - 191.15379333496094, - 671.694091796875, - 402.95819091796875, - 681.9990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15379333496094, - 671.694091796875, - 402.95819091796875, - 681.9990844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "to activate transcription of the P-glycoprotein efflux pump pro-", - "origin": [ - 191.15379333496094, - 689.506591796875 - ], - "bbox": [ - 191.15379333496094, - 681.444091796875, - 402.9536437988281, - 691.7490844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15379333496094, - 681.444091796875, - 402.9536437988281, - 691.7490844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "tein encoded by ", - "origin": [ - 191.15379333496094, - 699.256591796875 - ], - "bbox": [ - 191.15379333496094, - 691.194091796875, - 250.16229248046875, - 701.4990844726562 - ] - }, - { - "size": 7.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "MDR1", - "origin": [ - 251.3885498046875, - 699.256591796875 - ], - "bbox": [ - 251.3885498046875, - 691.2315673828125, - 271.592041015625, - 701.3865966796875 - ] - }, - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", and the drug metabolizing enzymes", - "origin": [ - 271.6347961425781, - 699.256591796875 - ], - "bbox": [ - 271.6347961425781, - 691.194091796875, - 402.9627380371094, - 701.4990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15379333496094, - 691.194091796875, - 402.9627380371094, - 701.4990844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "CYP3A and CYP2C9. These pathways, however, mediate drug", - "origin": [ - 191.15380859375, - 709.006591796875 - ], - "bbox": [ - 191.15380859375, - 700.944091796875, - 402.958251953125, - 711.2490844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15380859375, - 700.944091796875, - 402.958251953125, - 711.2490844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "clearance and reduce paclitaxel activation of SXR in a feedback", - "origin": [ - 191.15380859375, - 718.756591796875 - ], - "bbox": [ - 191.15380859375, - 710.694091796875, - 402.9544982910156, - 720.9990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15380859375, - 710.694091796875, - 402.9544982910156, - 720.9990844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "mechanism. Manipulation of this pathway may be used to pro-", - "origin": [ - 191.15380859375, - 728.506591796875 - ], - "bbox": [ - 191.15380859375, - 720.444091796875, - 402.9535827636719, - 730.7490844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15380859375, - 720.444091796875, - 402.9535827636719, - 730.7490844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "long or reduce drug retention.", - "origin": [ - 191.15380859375, - 738.256591796875 - ], - "bbox": [ - 191.15380859375, - 730.194091796875, - 292.45556640625, - 740.4990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15380859375, - 730.194091796875, - 292.45556640625, - 740.4990844726562 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 226.96080017089844, - 489.4344177246094, - 372.36029052734375, - 500.4972229003906 - ], - "lines": [ - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Feed forward and feed back pathways", - "origin": [ - 226.96080017089844, - 498.0307922363281 - ], - "bbox": [ - 226.96080017089844, - 489.4344177246094, - 372.36029052734375, - 500.4972229003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 226.96080017089844, - 489.4344177246094, - 372.36029052734375, - 500.4972229003906 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 272.0548400878906, - 589.5662231445312, - 327.26458740234375, - 627.1572875976562 - ], - "lines": [ - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Regulates", - "origin": [ - 281.1340637207031, - 598.16259765625 - ], - "bbox": [ - 281.1340637207031, - 589.5662231445312, - 318.18695068359375, - 600.6290283203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 281.1340637207031, - 589.5662231445312, - 318.18695068359375, - 600.6290283203125 - ] - }, - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "the expression", - "origin": [ - 272.0548400878906, - 607.0 - ], - "bbox": [ - 272.0548400878906, - 598.4036254882812, - 327.26458740234375, - 609.4664306640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.0548400878906, - 598.4036254882812, - 327.26458740234375, - 609.4664306640625 - ] - }, - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "of ", - "origin": [ - 283.1465759277344, - 615.83740234375 - ], - "bbox": [ - 283.1465759277344, - 607.2410278320312, - 293.4140319824219, - 618.3038330078125 - ] - }, - { - "size": 8.034000396728516, - "flags": 18, - "font": "Frutiger-BoldItalic", - "color": 0, - "ascender": 1.0729999542236328, - "descender": -0.3089999854564667, - "text": "MDR1", - "origin": [ - 293.4148254394531, - 615.83740234375 - ], - "bbox": [ - 293.4148254394531, - 607.2169189453125, - 316.1775817871094, - 618.3198852539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 283.1465759277344, - 607.2169189453125, - 316.1775817871094, - 618.3198852539062 - ] - }, - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "and ", - "origin": [ - 276.6671447753906, - 624.6748046875 - ], - "bbox": [ - 276.6671447753906, - 616.0784301757812, - 293.1850891113281, - 627.1412353515625 - ] - }, - { - "size": 8.034000396728516, - "flags": 18, - "font": "Frutiger-BoldItalic", - "color": 0, - "ascender": 1.0729999542236328, - "descender": -0.3089999854564667, - "text": "CYP3A4", - "origin": [ - 293.1866455078125, - 624.6748046875 - ], - "bbox": [ - 293.1866455078125, - 616.0543212890625, - 322.6553955078125, - 627.1572875976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.6671447753906, - 616.0543212890625, - 322.6553955078125, - 627.1572875976562 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 278.53582763671875, - 509.72271728515625, - 318.7138977050781, - 520.7855224609375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Black", - "color": 16777215, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Paclitaxel", - "origin": [ - 278.53582763671875, - 518.319091796875 - ], - "bbox": [ - 278.53582763671875, - 509.72271728515625, - 318.7138977050781, - 520.7855224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.53582763671875, - 509.72271728515625, - 318.7138977050781, - 520.7855224609375 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 218.84869384765625, - 622.3245239257812, - 379.1573181152344, - 643.0281372070312 - ], - "lines": [ - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Black", - "color": 16777215, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "MDR1", - "origin": [ - 218.84869384765625, - 635.5341186523438 - ], - "bbox": [ - 218.84869384765625, - 626.937744140625, - 243.41104125976562, - 638.0005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.84869384765625, - 626.937744140625, - 243.41104125976562, - 638.0005493164062 - ] - }, - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Black", - "color": 16777215, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "CYP3A", - "origin": [ - 349.9054870605469, - 630.9208984375 - ], - "bbox": [ - 349.9054870605469, - 622.3245239257812, - 377.14398193359375, - 633.3873291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.9054870605469, - 622.3245239257812, - 377.14398193359375, - 633.3873291015625 - ] - }, - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Black", - "color": 16777215, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "CYP2C9", - "origin": [ - 347.8929748535156, - 640.5617065429688 - ], - "bbox": [ - 347.8929748535156, - 631.96533203125, - 379.1573181152344, - 643.0281372070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.8929748535156, - 631.96533203125, - 379.1573181152344, - 643.0281372070312 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 288.17510986328125, - 568.5120239257812, - 304.2447204589844, - 579.5748291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Black", - "color": 16777215, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "SXR", - "origin": [ - 288.17510986328125, - 577.1083984375 - ], - "bbox": [ - 288.17510986328125, - 568.5120239257812, - 304.2447204589844, - 579.5748291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.17510986328125, - 568.5120239257812, - 304.2447204589844, - 579.5748291015625 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 194.72109985351562, - 487.2759094238281, - 203.652099609375, - 516.1131591796875 - ], - "lines": [ - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Bob Crimi", - "origin": [ - 201.70860290527344, - 516.1131591796875 - ], - "bbox": [ - 194.72109985351562, - 487.2759094238281, - 203.652099609375, - 516.1131591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 194.72109985351562, - 487.2759094238281, - 203.652099609375, - 516.1131591796875 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "Helvetica-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "© 2001 Nature Publishing Group http://medicine.nature.com", - "origin": [ - 33.34590148925781, - 426.85760498046875 - ], - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "Helvetica-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "© 2001 Nature Publishing Group http://medicine.nature.com", - "origin": [ - 235.89329528808594, - 24.6602783203125 - ], - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 9, - "type": 0, - "bbox": [ - 191.15379333496094, - 661.944091796875, - 402.9627380371094, - 740.4990844726562 - ], - "lines": [ - { - "spans": [ - { - "size": 7.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Fig. 1", - "origin": [ - 191.15379333496094, - 670.006591796875 - ], - "bbox": [ - 191.15379333496094, - 661.9815673828125, - 210.935791015625, - 672.30908203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15379333496094, - 661.9815673828125, - 210.935791015625, - 672.30908203125 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Feedforward and feedback pathways of drug metabo-", - "origin": [ - 219.6732940673828, - 670.006591796875 - ], - "bbox": [ - 219.6732940673828, - 661.944091796875, - 402.94610595703125, - 672.2490844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 219.6732940673828, - 661.944091796875, - 402.94610595703125, - 672.2490844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "lism. Paclitaxel is a ligand for SXR, causing this nuclear receptor", - "origin": [ - 191.15379333496094, - 679.756591796875 - ], - "bbox": [ - 191.15379333496094, - 671.694091796875, - 402.95819091796875, - 681.9990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15379333496094, - 671.694091796875, - 402.95819091796875, - 681.9990844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "to activate transcription of the P-glycoprotein efflux pump pro-", - "origin": [ - 191.15379333496094, - 689.506591796875 - ], - "bbox": [ - 191.15379333496094, - 681.444091796875, - 402.9536437988281, - 691.7490844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15379333496094, - 681.444091796875, - 402.9536437988281, - 691.7490844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "tein encoded by ", - "origin": [ - 191.15379333496094, - 699.256591796875 - ], - "bbox": [ - 191.15379333496094, - 691.194091796875, - 250.16229248046875, - 701.4990844726562 - ] - }, - { - "size": 7.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "MDR1", - "origin": [ - 251.3885498046875, - 699.256591796875 - ], - "bbox": [ - 251.3885498046875, - 691.2315673828125, - 271.592041015625, - 701.3865966796875 - ] - }, - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", and the drug metabolizing enzymes", - "origin": [ - 271.6347961425781, - 699.256591796875 - ], - "bbox": [ - 271.6347961425781, - 691.194091796875, - 402.9627380371094, - 701.4990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15379333496094, - 691.194091796875, - 402.9627380371094, - 701.4990844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "CYP3A and CYP2C9. These pathways, however, mediate drug", - "origin": [ - 191.15380859375, - 709.006591796875 - ], - "bbox": [ - 191.15380859375, - 700.944091796875, - 402.958251953125, - 711.2490844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15380859375, - 700.944091796875, - 402.958251953125, - 711.2490844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "clearance and reduce paclitaxel activation of SXR in a feedback", - "origin": [ - 191.15380859375, - 718.756591796875 - ], - "bbox": [ - 191.15380859375, - 710.694091796875, - 402.9544982910156, - 720.9990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15380859375, - 710.694091796875, - 402.9544982910156, - 720.9990844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "mechanism. Manipulation of this pathway may be used to pro-", - "origin": [ - 191.15380859375, - 728.506591796875 - ], - "bbox": [ - 191.15380859375, - 720.444091796875, - 402.9535827636719, - 730.7490844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15380859375, - 720.444091796875, - 402.9535827636719, - 730.7490844726562 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "long or reduce drug retention.", - "origin": [ - 191.15380859375, - 738.256591796875 - ], - "bbox": [ - 191.15380859375, - 730.194091796875, - 292.45556640625, - 740.4990844726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 191.15380859375, - 730.194091796875, - 292.45556640625, - 740.4990844726562 - ] - } - ], - "tag": "on-image" - }, - { - "number": 10, - "type": 0, - "bbox": [ - 226.96080017089844, - 489.4344177246094, - 372.36029052734375, - 500.4972229003906 - ], - "lines": [ - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Feed forward and feed back pathways", - "origin": [ - 226.96080017089844, - 498.0307922363281 - ], - "bbox": [ - 226.96080017089844, - 489.4344177246094, - 372.36029052734375, - 500.4972229003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 226.96080017089844, - 489.4344177246094, - 372.36029052734375, - 500.4972229003906 - ] - } - ], - "tag": "on-image" - }, - { - "number": 11, - "type": 0, - "bbox": [ - 272.0548400878906, - 589.5662231445312, - 327.26458740234375, - 627.1572875976562 - ], - "lines": [ - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Regulates", - "origin": [ - 281.1340637207031, - 598.16259765625 - ], - "bbox": [ - 281.1340637207031, - 589.5662231445312, - 318.18695068359375, - 600.6290283203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 281.1340637207031, - 589.5662231445312, - 318.18695068359375, - 600.6290283203125 - ] - }, - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "the expression", - "origin": [ - 272.0548400878906, - 607.0 - ], - "bbox": [ - 272.0548400878906, - 598.4036254882812, - 327.26458740234375, - 609.4664306640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.0548400878906, - 598.4036254882812, - 327.26458740234375, - 609.4664306640625 - ] - }, - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "of ", - "origin": [ - 283.1465759277344, - 615.83740234375 - ], - "bbox": [ - 283.1465759277344, - 607.2410278320312, - 293.4140319824219, - 618.3038330078125 - ] - }, - { - "size": 8.034000396728516, - "flags": 18, - "font": "Frutiger-BoldItalic", - "color": 0, - "ascender": 1.0729999542236328, - "descender": -0.3089999854564667, - "text": "MDR1", - "origin": [ - 293.4148254394531, - 615.83740234375 - ], - "bbox": [ - 293.4148254394531, - 607.2169189453125, - 316.1775817871094, - 618.3198852539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 283.1465759277344, - 607.2169189453125, - 316.1775817871094, - 618.3198852539062 - ] - }, - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "and ", - "origin": [ - 276.6671447753906, - 624.6748046875 - ], - "bbox": [ - 276.6671447753906, - 616.0784301757812, - 293.1850891113281, - 627.1412353515625 - ] - }, - { - "size": 8.034000396728516, - "flags": 18, - "font": "Frutiger-BoldItalic", - "color": 0, - "ascender": 1.0729999542236328, - "descender": -0.3089999854564667, - "text": "CYP3A4", - "origin": [ - 293.1866455078125, - 624.6748046875 - ], - "bbox": [ - 293.1866455078125, - 616.0543212890625, - 322.6553955078125, - 627.1572875976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.6671447753906, - 616.0543212890625, - 322.6553955078125, - 627.1572875976562 - ] - } - ], - "tag": "on-image" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 278.53582763671875, - 509.72271728515625, - 318.7138977050781, - 520.7855224609375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Black", - "color": 16777215, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Paclitaxel", - "origin": [ - 278.53582763671875, - 518.319091796875 - ], - "bbox": [ - 278.53582763671875, - 509.72271728515625, - 318.7138977050781, - 520.7855224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 278.53582763671875, - 509.72271728515625, - 318.7138977050781, - 520.7855224609375 - ] - } - ], - "tag": "on-image" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 218.84869384765625, - 622.3245239257812, - 379.1573181152344, - 643.0281372070312 - ], - "lines": [ - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Black", - "color": 16777215, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "MDR1", - "origin": [ - 218.84869384765625, - 635.5341186523438 - ], - "bbox": [ - 218.84869384765625, - 626.937744140625, - 243.41104125976562, - 638.0005493164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.84869384765625, - 626.937744140625, - 243.41104125976562, - 638.0005493164062 - ] - }, - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Black", - "color": 16777215, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "CYP3A", - "origin": [ - 349.9054870605469, - 630.9208984375 - ], - "bbox": [ - 349.9054870605469, - 622.3245239257812, - 377.14398193359375, - 633.3873291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.9054870605469, - 622.3245239257812, - 377.14398193359375, - 633.3873291015625 - ] - }, - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Black", - "color": 16777215, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "CYP2C9", - "origin": [ - 347.8929748535156, - 640.5617065429688 - ], - "bbox": [ - 347.8929748535156, - 631.96533203125, - 379.1573181152344, - 643.0281372070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 347.8929748535156, - 631.96533203125, - 379.1573181152344, - 643.0281372070312 - ] - } - ], - "tag": "on-image" - }, - { - "number": 14, - "type": 0, - "bbox": [ - 288.17510986328125, - 568.5120239257812, - 304.2447204589844, - 579.5748291015625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.034000396728516, - "flags": 16, - "font": "Frutiger-Black", - "color": 16777215, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "SXR", - "origin": [ - 288.17510986328125, - 577.1083984375 - ], - "bbox": [ - 288.17510986328125, - 568.5120239257812, - 304.2447204589844, - 579.5748291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.17510986328125, - 568.5120239257812, - 304.2447204589844, - 579.5748291015625 - ] - } - ], - "tag": "on-image" - }, - { - "number": 15, - "type": 0, - "bbox": [ - 194.72109985351562, - 487.2759094238281, - 203.652099609375, - 516.1131591796875 - ], - "lines": [ - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Bob Crimi", - "origin": [ - 201.70860290527344, - 516.1131591796875 - ], - "bbox": [ - 194.72109985351562, - 487.2759094238281, - 203.652099609375, - 516.1131591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 194.72109985351562, - 487.2759094238281, - 203.652099609375, - 516.1131591796875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 16, - "type": 0, - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "Helvetica-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "© 2001 Nature Publishing Group http://medicine.nature.com", - "origin": [ - 33.34590148925781, - 426.85760498046875 - ], - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 42.96849822998047, - 20.472000122070312, - 160.98609924316406, - 37.09199905395508 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "StoneSerif-Bold", - "color": 0, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "NEWS & VIEWS ", - "origin": [ - 42.96849822998047, - 33.0 - ], - "bbox": [ - 42.96849822998047, - 20.472000122070312, - 160.98609924316406, - 37.09199905395508 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.96849822998047, - 20.472000122070312, - 160.98609924316406, - 37.09199905395508 - ] - } - ], - "tag": "header" - }, - { - "number": 17, - "type": 0, - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "Helvetica-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "© 2001 Nature Publishing Group http://medicine.nature.com", - "origin": [ - 235.89329528808594, - 24.6602783203125 - ], - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ] - } - ], - "tag": "header" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 42.96849822998047, - 750.9375, - 553.1995239257812, - 761.2424926757812 - ], - "lines": [ - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "536", - "origin": [ - 42.96849822998047, - 759.0 - ], - "bbox": [ - 42.96849822998047, - 750.9375, - 56.46849822998047, - 761.2424926757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.96849822998047, - 750.9375, - 56.46849822998047, - 761.2424926757812 - ] - }, - { - "spans": [ - { - "size": 6.0, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "NATURE MEDICINE", - "origin": [ - 372.501708984375, - 759.0 - ], - "bbox": [ - 372.501708984375, - 752.5800170898438, - 430.0146789550781, - 760.8419799804688 - ] - }, - { - "size": 6.0, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " • VOLUME 7 • NUMBER 5 • MAY 2001", - "origin": [ - 430.0146789550781, - 759.0 - ], - "bbox": [ - 430.0146789550781, - 752.5499877929688, - 553.1995239257812, - 760.7940063476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 372.501708984375, - 752.5499877929688, - 553.1995239257812, - 760.8419799804688 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [ - { - "bbox": [ - 185, - 476, - 405, - 741.4990844726562 - ], - "image_path": "images/0_185_476_405_741.jpg" - } - ], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ] - }, - "page_1": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 2, - "type": 0, - "bbox": [ - 48.912574768066406, - 57.260101318359375, - 207.6666717529297, - 321.3323059082031 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ance, in which paclitaxel binds and acti-", - "origin": [ - 48.91339874267578, - 66.0 - ], - "bbox": [ - 48.91339874267578, - 57.260101318359375, - 207.65921020507812, - 68.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 57.260101318359375, - 207.65921020507812, - 68.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "vates SXR, leading to expression of", - "origin": [ - 48.91339874267578, - 77.0 - ], - "bbox": [ - 48.91339874267578, - 68.26010131835938, - 207.65591430664062, - 79.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 68.26010131835938, - 207.65591430664062, - 79.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A4", - "origin": [ - 48.91339874267578, - 88.0 - ], - "bbox": [ - 48.91339874267578, - 80.10669708251953, - 79.58190155029297, - 90.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", ", - "origin": [ - 79.4864501953125, - 88.0 - ], - "bbox": [ - 79.4864501953125, - 79.26010131835938, - 84.1527099609375, - 90.3322982788086 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP2C9", - "origin": [ - 85.39273071289062, - 88.0 - ], - "bbox": [ - 85.39273071289062, - 80.10669708251953, - 116.21892547607422, - 90.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and ", - "origin": [ - 116.21892547607422, - 88.0 - ], - "bbox": [ - 116.21892547607422, - 79.26010131835938, - 136.53732299804688, - 90.3322982788086 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1.", - "origin": [ - 137.77487182617188, - 88.0 - ], - "bbox": [ - 137.77487182617188, - 80.10669708251953, - 163.41854858398438, - 90.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " Expression", - "origin": [ - 163.41854858398438, - 88.0 - ], - "bbox": [ - 163.41854858398438, - 79.26010131835938, - 207.65171813964844, - 90.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 79.26010131835938, - 207.65171813964844, - 90.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of these enzymes leads to paclitaxel me-", - "origin": [ - 48.912574768066406, - 99.0 - ], - "bbox": [ - 48.912574768066406, - 90.26010131835938, - 207.6584014892578, - 101.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 90.26010131835938, - 207.6584014892578, - 101.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tabolism and clearance (Fig. 1). There is", - "origin": [ - 48.912574768066406, - 110.0 - ], - "bbox": [ - 48.912574768066406, - 101.26010131835938, - 207.66346740722656, - 112.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 101.26010131835938, - 207.66346740722656, - 112.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "also a feedback pathway where the gene", - "origin": [ - 48.912574768066406, - 121.0 - ], - "bbox": [ - 48.912574768066406, - 112.26010131835938, - 207.6551513671875, - 123.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 112.26010131835938, - 207.6551513671875, - 123.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "products that are expressed as a result of", - "origin": [ - 48.912574768066406, - 132.0 - ], - "bbox": [ - 48.912574768066406, - 123.26010131835938, - 207.65591430664062, - 134.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 123.26010131835938, - 207.65591430664062, - 134.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "SXR activation ultimately control the", - "origin": [ - 48.912574768066406, - 143.0 - ], - "bbox": [ - 48.912574768066406, - 134.26010131835938, - 207.6617431640625, - 145.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 134.26010131835938, - 207.6617431640625, - 145.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "strength and duration of SXR response.", - "origin": [ - 48.912574768066406, - 154.0 - ], - "bbox": [ - 48.912574768066406, - 145.26010131835938, - 207.65672302246094, - 156.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 145.26010131835938, - 207.65672302246094, - 156.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "For example, the level of CYP3A expres-", - "origin": [ - 48.912574768066406, - 165.0 - ], - "bbox": [ - 48.912574768066406, - 156.26010131835938, - 207.6550750732422, - 167.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 156.26010131835938, - 207.6550750732422, - 167.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sion in response to a drug that is both an", - "origin": [ - 48.912574768066406, - 176.0 - ], - "bbox": [ - 48.912574768066406, - 167.26010131835938, - 207.65423583984375, - 178.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 167.26010131835938, - 207.65423583984375, - 178.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "SXR ligand and P-glycoprotein substrate is", - "origin": [ - 48.912574768066406, - 187.0 - ], - "bbox": [ - 48.912574768066406, - 178.26010131835938, - 207.6501007080078, - 189.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 178.26010131835938, - 207.6501007080078, - 189.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "determined by the cellular levels of the", - "origin": [ - 48.912574768066406, - 198.0 - ], - "bbox": [ - 48.912574768066406, - 189.26010131835938, - 207.66004943847656, - 200.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 189.26010131835938, - 207.66004943847656, - 200.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 48.912574768066406, - 209.0 - ], - "bbox": [ - 48.912574768066406, - 201.10670471191406, - 72.27043151855469, - 211.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " transporter", - "origin": [ - 72.27043151855469, - 209.0 - ], - "bbox": [ - 72.27043151855469, - 200.26010131835938, - 118.25908660888672, - 211.33230590820312 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "14", - "origin": [ - 118.16069793701172, - 205.67999267578125 - ], - "bbox": [ - 118.16069793701172, - 200.86778259277344, - 123.34855651855469, - 206.9641571044922 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". Concurrently, pacli-", - "origin": [ - 123.29630279541016, - 209.0 - ], - "bbox": [ - 123.29630279541016, - 200.26010131835938, - 207.65914916992188, - 211.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 200.26010131835938, - 207.65914916992188, - 211.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "taxel activation of SXR is reduced by re-", - "origin": [ - 48.913360595703125, - 220.0 - ], - "bbox": [ - 48.913360595703125, - 211.26010131835938, - 207.66000366210938, - 222.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.913360595703125, - 211.26010131835938, - 207.66000366210938, - 222.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "moval of parent compound by CYP3A4", - "origin": [ - 48.913360595703125, - 231.0 - ], - "bbox": [ - 48.913360595703125, - 222.26010131835938, - 207.65670776367188, - 233.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.913360595703125, - 222.26010131835938, - 207.65670776367188, - 233.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and CYP2C9 metabolism, along with P-", - "origin": [ - 48.913360595703125, - 242.0 - ], - "bbox": [ - 48.913360595703125, - 233.26010131835938, - 207.65504455566406, - 244.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.913360595703125, - 233.26010131835938, - 207.65504455566406, - 244.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "glycoprotein–mediated efflux. The ", - "origin": [ - 48.913360595703125, - 253.0 - ], - "bbox": [ - 48.913360595703125, - 244.26010131835938, - 180.4982452392578, - 255.33230590820312 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "yin", - "origin": [ - 180.19778442382812, - 253.0 - ], - "bbox": [ - 180.19778442382812, - 245.10670471191406, - 191.1986083984375, - 255.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and", - "origin": [ - 191.1986083984375, - 253.0 - ], - "bbox": [ - 191.1986083984375, - 244.26010131835938, - 207.65335083007812, - 255.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.913360595703125, - 244.26010131835938, - 207.65335083007812, - 255.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the ", - "origin": [ - 48.91419982910156, - 264.0 - ], - "bbox": [ - 48.91419982910156, - 255.26010131835938, - 63.61848068237305, - 266.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "yang", - "origin": [ - 63.28647994995117, - 264.0 - ], - "bbox": [ - 63.28647994995117, - 256.106689453125, - 80.03256225585938, - 266.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " of the opposing pathways remain", - "origin": [ - 80.03256225585938, - 264.0 - ], - "bbox": [ - 80.03256225585938, - 255.26010131835938, - 207.6434326171875, - 266.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 255.26010131835938, - 207.6434326171875, - 266.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in a self-maintained balance. Further study", - "origin": [ - 48.91419982910156, - 275.0 - ], - "bbox": [ - 48.91419982910156, - 266.2601013183594, - 207.6666717529297, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 266.2601013183594, - 207.6666717529297, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of this elegant system for coordinating the", - "origin": [ - 48.91419982910156, - 286.0 - ], - "bbox": [ - 48.91419982910156, - 277.2601013183594, - 207.64678955078125, - 288.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 277.2601013183594, - 207.64678955078125, - 288.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "metabolism and excretion of compounds", - "origin": [ - 48.91419982910156, - 297.0 - ], - "bbox": [ - 48.91419982910156, - 288.2601013183594, - 207.6616973876953, - 299.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 288.2601013183594, - 207.6616973876953, - 299.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "could lead to the development of more ef-", - "origin": [ - 48.91419982910156, - 308.0 - ], - "bbox": [ - 48.91419982910156, - 299.2601013183594, - 207.6625213623047, - 310.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 299.2601013183594, - 207.6625213623047, - 310.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fective, less toxic drugs.", - "origin": [ - 48.91419982910156, - 319.0 - ], - "bbox": [ - 48.91419982910156, - 310.2601013183594, - 136.69334411621094, - 321.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 310.2601013183594, - 136.69334411621094, - 321.3323059082031 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 218.99203491210938, - 58.7339973449707, - 377.7441101074219, - 315.67083740234375 - ], - "lines": [ - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "1.", - "origin": [ - 218.99209594726562, - 65.72149658203125 - ], - "bbox": [ - 218.99209594726562, - 58.7339973449707, - 224.62498474121094, - 67.66499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99209594726562, - 58.7339973449707, - 224.62498474121094, - 67.66499328613281 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Synold, T.W., Dussault, I. & Forman, B.M. The or-", - "origin": [ - 230.33848571777344, - 65.72149658203125 - ], - "bbox": [ - 230.33848571777344, - 58.7339973449707, - 377.7323303222656, - 67.66499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33848571777344, - 58.7339973449707, - 377.7323303222656, - 67.66499328613281 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "phan nuclear receptor SXR coordinately regulates", - "origin": [ - 230.3306884765625, - 73.7216796875 - ], - "bbox": [ - 230.3306884765625, - 66.73417663574219, - 377.7227478027344, - 75.66517639160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3306884765625, - 66.73417663574219, - 377.7227478027344, - 75.66517639160156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "drug metabolism and efflux. ", - "origin": [ - 230.3306884765625, - 81.72186279296875 - ], - "bbox": [ - 230.3306884765625, - 74.73435974121094, - 316.7072448730469, - 83.66535949707031 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Nature Med.", - "origin": [ - 317.4267883300781, - 81.72186279296875 - ], - "bbox": [ - 317.4267883300781, - 74.76686096191406, - 353.39776611328125, - 83.56786346435547 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 7", - "origin": [ - 353.39776611328125, - 81.72186279296875 - ], - "bbox": [ - 353.39776611328125, - 74.76686096191406, - 359.7450256347656, - 83.71736145019531 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 584-", - "origin": [ - 359.7820739746094, - 81.72186279296875 - ], - "bbox": [ - 359.7820739746094, - 74.73435974121094, - 377.7317810058594, - 83.66535949707031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3306884765625, - 74.73435974121094, - 377.7317810058594, - 83.71736145019531 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "590 (2001).", - "origin": [ - 230.33067321777344, - 89.7220458984375 - ], - "bbox": [ - 230.33067321777344, - 82.73454284667969, - 264.849609375, - 91.66554260253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33067321777344, - 82.73454284667969, - 264.849609375, - 91.66554260253906 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "2.", - "origin": [ - 218.9920654296875, - 97.72222900390625 - ], - "bbox": [ - 218.9920654296875, - 90.73472595214844, - 224.7738037109375, - 99.66572570800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9920654296875, - 90.73472595214844, - 224.7738037109375, - 99.66572570800781 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Schuetz, E.G., Beck, W.T. & Schuetz, J.D.", - "origin": [ - 230.3378143310547, - 97.72222900390625 - ], - "bbox": [ - 230.3378143310547, - 90.73472595214844, - 377.7252197265625, - 99.66572570800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3378143310547, - 90.73472595214844, - 377.7252197265625, - 99.66572570800781 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Modulators and substrates of P-glycoprotein and", - "origin": [ - 230.33065795898438, - 105.722412109375 - ], - "bbox": [ - 230.33065795898438, - 98.73490905761719, - 377.7409362792969, - 107.66590881347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33065795898438, - 98.73490905761719, - 377.7409362792969, - 107.66590881347656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "cytochrome P4503A coordinately up-regulate", - "origin": [ - 230.33065795898438, - 113.72259521484375 - ], - "bbox": [ - 230.33065795898438, - 106.73509216308594, - 377.7325744628906, - 115.66609191894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33065795898438, - 106.73509216308594, - 377.7325744628906, - 115.66609191894531 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "these proteins in human colon carcinoma cells.", - "origin": [ - 230.33065795898438, - 121.7227783203125 - ], - "bbox": [ - 230.33065795898438, - 114.73527526855469, - 377.7339172363281, - 123.66627502441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33065795898438, - 114.73527526855469, - 377.7339172363281, - 123.66627502441406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Mol. Pharmacol.", - "origin": [ - 230.33065795898438, - 129.72296142578125 - ], - "bbox": [ - 230.33065795898438, - 122.76795959472656, - 277.67669677734375, - 131.56895446777344 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 49", - "origin": [ - 277.67669677734375, - 129.72296142578125 - ], - "bbox": [ - 277.67669677734375, - 122.76795959472656, - 287.3388671875, - 131.7184600830078 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 311–318 (1996).", - "origin": [ - 287.5182800292969, - 129.72296142578125 - ], - "bbox": [ - 287.5182800292969, - 122.73545837402344, - 342.5705871582031, - 131.6664581298828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33065795898438, - 122.73545837402344, - 342.5705871582031, - 131.7184600830078 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "3.", - "origin": [ - 218.99203491210938, - 137.72314453125 - ], - "bbox": [ - 218.99203491210938, - 130.7356414794922, - 224.77442932128906, - 139.66664123535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99203491210938, - 130.7356414794922, - 224.77442932128906, - 139.66664123535156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Borcherding, S.M., Baciewicz, A.M. & Self, T.H.", - "origin": [ - 230.33843994140625, - 137.72314453125 - ], - "bbox": [ - 230.33843994140625, - 130.7356414794922, - 377.7441101074219, - 139.66664123535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33843994140625, - 130.7356414794922, - 377.7441101074219, - 139.66664123535156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Update on rifampin drug interactions II. ", - "origin": [ - 230.33062744140625, - 145.72332763671875 - ], - "bbox": [ - 230.33062744140625, - 138.73582458496094, - 361.2536926269531, - 147.6668243408203 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Arch.", - "origin": [ - 362.90594482421875, - 145.72332763671875 - ], - "bbox": [ - 362.90594482421875, - 138.76832580566406, - 377.73504638671875, - 147.56932067871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33062744140625, - 138.73582458496094, - 377.73504638671875, - 147.6668243408203 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Intern. Med.", - "origin": [ - 230.3306427001953, - 153.7235107421875 - ], - "bbox": [ - 230.3306427001953, - 146.7685089111328, - 266.0339050292969, - 155.5695037841797 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 152", - "origin": [ - 266.0339050292969, - 153.7235107421875 - ], - "bbox": [ - 266.0339050292969, - 146.7685089111328, - 279.60711669921875, - 155.71900939941406 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 711–716 (1992).", - "origin": [ - 279.787841796875, - 153.7235107421875 - ], - "bbox": [ - 279.787841796875, - 146.7360076904297, - 334.84014892578125, - 155.66700744628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3306427001953, - 146.7360076904297, - 334.84014892578125, - 155.71900939941406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "4.", - "origin": [ - 218.99203491210938, - 161.72369384765625 - ], - "bbox": [ - 218.99203491210938, - 154.73619079589844, - 224.77313232421875, - 163.6671905517578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99203491210938, - 154.73619079589844, - 224.77313232421875, - 163.6671905517578 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Relling, M.V. ", - "origin": [ - 230.33712768554688, - 161.72369384765625 - ], - "bbox": [ - 230.33712768554688, - 154.73619079589844, - 271.5484313964844, - 163.6671905517578 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 272.1165466308594, - 161.72369384765625 - ], - "bbox": [ - 272.1165466308594, - 154.76869201660156, - 285.1646423339844, - 163.56968688964844 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". Adverse effect of anticonvul-", - "origin": [ - 285.3537902832031, - 161.72369384765625 - ], - "bbox": [ - 285.3537902832031, - 154.73619079589844, - 377.7357482910156, - 163.6671905517578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33712768554688, - 154.73619079589844, - 377.7357482910156, - 163.6671905517578 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "sants on efficacy of chemotherapy for acute lym-", - "origin": [ - 230.3306427001953, - 169.723876953125 - ], - "bbox": [ - 230.3306427001953, - 162.7363739013672, - 377.7208251953125, - 171.66737365722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3306427001953, - 162.7363739013672, - 377.7208251953125, - 171.66737365722656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "phoblastic leukaemia. ", - "origin": [ - 230.3306427001953, - 177.72406005859375 - ], - "bbox": [ - 230.3306427001953, - 170.73655700683594, - 302.0744934082031, - 179.6675567626953 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Lancet", - "origin": [ - 306.1765441894531, - 177.72406005859375 - ], - "bbox": [ - 306.1765441894531, - 170.76905822753906, - 325.0525207519531, - 179.57005310058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3306427001953, - 170.73655700683594, - 325.0525207519531, - 179.6675567626953 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "356", - "origin": [ - 331.2054443359375, - 177.72406005859375 - ], - "bbox": [ - 331.2054443359375, - 170.76905822753906, - 342.7702331542969, - 179.7195587158203 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 285–290", - "origin": [ - 342.95745849609375, - 177.72406005859375 - ], - "bbox": [ - 342.95745849609375, - 170.73655700683594, - 377.7304992675781, - 179.6675567626953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.2054443359375, - 170.73655700683594, - 377.7304992675781, - 179.7195587158203 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "(2000).", - "origin": [ - 230.33065795898438, - 185.7242431640625 - ], - "bbox": [ - 230.33065795898438, - 178.7367401123047, - 252.76475524902344, - 187.66773986816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33065795898438, - 178.7367401123047, - 252.76475524902344, - 187.66773986816406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "5.", - "origin": [ - 218.9920654296875, - 193.72442626953125 - ], - "bbox": [ - 218.9920654296875, - 186.73692321777344, - 224.77316284179688, - 195.6679229736328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9920654296875, - 186.73692321777344, - 224.77316284179688, - 195.6679229736328 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Lehmann, J.M.", - "origin": [ - 230.337158203125, - 193.72442626953125 - ], - "bbox": [ - 230.337158203125, - 186.73692321777344, - 274.8771667480469, - 195.6679229736328 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": " et al", - "origin": [ - 274.8771667480469, - 193.72442626953125 - ], - "bbox": [ - 274.8771667480469, - 186.76942443847656, - 290.07867431640625, - 195.57041931152344 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". The human orphan nuclear", - "origin": [ - 290.267822265625, - 193.72442626953125 - ], - "bbox": [ - 290.267822265625, - 186.73692321777344, - 377.73321533203125, - 195.6679229736328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.337158203125, - 186.73692321777344, - 377.73321533203125, - 195.6679229736328 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "receptor PXR is activated by compounds that", - "origin": [ - 230.33132934570312, - 201.724609375 - ], - "bbox": [ - 230.33132934570312, - 194.7371063232422, - 377.7318420410156, - 203.66810607910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33132934570312, - 194.7371063232422, - 377.7318420410156, - 203.66810607910156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "regulate CYP3A4 gene expression and cause", - "origin": [ - 230.33132934570312, - 209.72479248046875 - ], - "bbox": [ - 230.33132934570312, - 202.73728942871094, - 377.7351989746094, - 211.6682891845703 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33132934570312, - 202.73728942871094, - 377.7351989746094, - 211.6682891845703 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "drug interactions. ", - "origin": [ - 230.33132934570312, - 217.7249755859375 - ], - "bbox": [ - 230.33132934570312, - 210.7374725341797, - 285.8516845703125, - 219.66847229003906 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "J. Clin. Invest.", - "origin": [ - 285.6742858886719, - 217.7249755859375 - ], - "bbox": [ - 285.6742858886719, - 210.7699737548828, - 325.0500183105469, - 219.5709686279297 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 102", - "origin": [ - 325.0500183105469, - 217.7249755859375 - ], - "bbox": [ - 325.0500183105469, - 210.7699737548828, - 338.46075439453125, - 219.72047424316406 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 1–8 (1998).", - "origin": [ - 338.6414794921875, - 217.7249755859375 - ], - "bbox": [ - 338.6414794921875, - 210.7374725341797, - 377.728515625, - 219.66847229003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33132934570312, - 210.7374725341797, - 377.728515625, - 219.72047424316406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "6.", - "origin": [ - 218.99273681640625, - 225.72515869140625 - ], - "bbox": [ - 218.99273681640625, - 218.73765563964844, - 224.77383422851562, - 227.6686553955078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99273681640625, - 218.73765563964844, - 224.77383422851562, - 227.6686553955078 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Blumberg, B. ", - "origin": [ - 230.33782958984375, - 225.72515869140625 - ], - "bbox": [ - 230.33782958984375, - 218.73765563964844, - 273.69024658203125, - 227.6686553955078 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 275.7331848144531, - 225.72515869140625 - ], - "bbox": [ - 275.7331848144531, - 218.77015686035156, - 290.2093200683594, - 227.57115173339844 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". SXR, a novel steroid and", - "origin": [ - 290.39849853515625, - 225.72515869140625 - ], - "bbox": [ - 290.39849853515625, - 218.73765563964844, - 377.73577880859375, - 227.6686553955078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33782958984375, - 218.73765563964844, - 377.73577880859375, - 227.6686553955078 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "xenobiotic sensing nuclear receptor. ", - "origin": [ - 230.3313446044922, - 233.725341796875 - ], - "bbox": [ - 230.3313446044922, - 226.7378387451172, - 344.2284240722656, - 235.66883850097656 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Genes Dev.", - "origin": [ - 344.8048095703125, - 233.725341796875 - ], - "bbox": [ - 344.8048095703125, - 226.7703399658203, - 377.7357482910156, - 235.5713348388672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3313446044922, - 226.7378387451172, - 377.7357482910156, - 235.66883850097656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "12", - "origin": [ - 230.33135986328125, - 241.72552490234375 - ], - "bbox": [ - 230.33135986328125, - 234.77052307128906, - 237.97210693359375, - 243.7210235595703 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 3195–3205 (1998).", - "origin": [ - 238.15086364746094, - 241.72552490234375 - ], - "bbox": [ - 238.15086364746094, - 234.73802185058594, - 301.033203125, - 243.6690216064453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33135986328125, - 234.73802185058594, - 301.033203125, - 243.7210235595703 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "7.", - "origin": [ - 218.99276733398438, - 249.7257080078125 - ], - "bbox": [ - 218.99276733398438, - 242.7382049560547, - 224.76800537109375, - 251.66920471191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99276733398438, - 242.7382049560547, - 224.76800537109375, - 251.66920471191406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Staudinger, J.L. ", - "origin": [ - 230.33265686035156, - 249.7257080078125 - ], - "bbox": [ - 230.33265686035156, - 242.7382049560547, - 278.48138427734375, - 251.66920471191406 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 278.4937744140625, - 249.7257080078125 - ], - "bbox": [ - 278.4937744140625, - 242.7707061767578, - 290.995849609375, - 251.5717010498047 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". The nuclear receptor PXR is", - "origin": [ - 291.1752624511719, - 249.7257080078125 - ], - "bbox": [ - 291.1752624511719, - 242.7382049560547, - 377.70916748046875, - 251.66920471191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33265686035156, - 242.7382049560547, - 377.70916748046875, - 251.66920471191406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "a lithocholic acid sensor that protects against", - "origin": [ - 230.33135986328125, - 257.72589111328125 - ], - "bbox": [ - 230.33135986328125, - 250.73838806152344, - 377.730712890625, - 259.6694030761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33135986328125, - 250.73838806152344, - 377.730712890625, - 259.6694030761719 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "liver toxicity. ", - "origin": [ - 230.33135986328125, - 265.72607421875 - ], - "bbox": [ - 230.33135986328125, - 258.73858642578125, - 274.33966064453125, - 267.6695861816406 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Proc. Natl. Acad. Sci. USA", - "origin": [ - 277.28802490234375, - 265.72607421875 - ], - "bbox": [ - 277.28802490234375, - 258.7710876464844, - 363.0397644042969, - 267.57208251953125 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 98", - "origin": [ - 363.0397644042969, - 265.72607421875 - ], - "bbox": [ - 363.0397644042969, - 258.7710876464844, - 375.6817626953125, - 267.7215881347656 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ",", - "origin": [ - 375.8683166503906, - 265.72607421875 - ], - "bbox": [ - 375.8683166503906, - 258.73858642578125, - 377.73382568359375, - 267.6695861816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33135986328125, - 258.73858642578125, - 377.73382568359375, - 267.7215881347656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "3369–3374 (2001).", - "origin": [ - 230.33071899414062, - 273.72625732421875 - ], - "bbox": [ - 230.33071899414062, - 266.73876953125, - 289.3221435546875, - 275.6697692871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33071899414062, - 266.73876953125, - 289.3221435546875, - 275.6697692871094 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "8.", - "origin": [ - 218.99212646484375, - 281.7264709472656 - ], - "bbox": [ - 218.99212646484375, - 274.7389831542969, - 224.77386474609375, - 283.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99212646484375, - 274.7389831542969, - 224.77386474609375, - 283.66998291015625 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Schuetz, E.G., Brimer, C. & Schuetz, J.D.", - "origin": [ - 230.33787536621094, - 281.7264709472656 - ], - "bbox": [ - 230.33787536621094, - 274.7389831542969, - 377.7253112792969, - 283.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33787536621094, - 274.7389831542969, - 377.7253112792969, - 283.66998291015625 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Environmental xenobiotics and the antihor-", - "origin": [ - 230.33071899414062, - 289.7266845703125 - ], - "bbox": [ - 230.33071899414062, - 282.73919677734375, - 377.7046813964844, - 291.6701965332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33071899414062, - 282.73919677734375, - 377.7046813964844, - 291.6701965332031 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "mones cyproterone acetate and spironolactone", - "origin": [ - 230.33071899414062, - 297.7268981933594 - ], - "bbox": [ - 230.33071899414062, - 290.7394104003906, - 377.7006530761719, - 299.67041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33071899414062, - 290.7394104003906, - 377.7006530761719, - 299.67041015625 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "utilize the nuclear hormone receptor PXR to acti-", - "origin": [ - 230.33071899414062, - 305.72711181640625 - ], - "bbox": [ - 230.33071899414062, - 298.7396240234375, - 377.7207336425781, - 307.6706237792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33071899414062, - 298.7396240234375, - 377.7207336425781, - 307.6706237792969 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "vate the cytochrome P4503A23 hormone re-", - "origin": [ - 230.33071899414062, - 313.7273254394531 - ], - "bbox": [ - 230.33071899414062, - 306.7398376464844, - 377.73065185546875, - 315.67083740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33071899414062, - 306.7398376464844, - 377.73065185546875, - 315.67083740234375 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 389.0711364746094, - 58.7401008605957, - 547.8169555664062, - 251.72731018066406 - ], - "lines": [ - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "sponse element. ", - "origin": [ - 400.40972900390625, - 65.72760009765625 - ], - "bbox": [ - 400.40972900390625, - 58.7401008605957, - 451.6960754394531, - 67.67109680175781 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Mol. Pharmacol.", - "origin": [ - 451.7857360839844, - 65.72760009765625 - ], - "bbox": [ - 451.7857360839844, - 58.77259826660156, - 499.2818603515625, - 67.57360076904297 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 54", - "origin": [ - 499.2818603515625, - 65.72760009765625 - ], - "bbox": [ - 499.2818603515625, - 58.77259826660156, - 509.06695556640625, - 67.72309875488281 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 1113–1117", - "origin": [ - 509.2496337890625, - 65.72760009765625 - ], - "bbox": [ - 509.2496337890625, - 58.7401008605957, - 547.8097534179688, - 67.67109680175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.40972900390625, - 58.7401008605957, - 547.8097534179688, - 67.72309875488281 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "(1998).", - "origin": [ - 400.40972900390625, - 73.727783203125 - ], - "bbox": [ - 400.40972900390625, - 66.74028015136719, - 422.8437805175781, - 75.67127990722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.40972900390625, - 66.74028015136719, - 422.8437805175781, - 75.67127990722656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "9.", - "origin": [ - 389.0711364746094, - 81.72796630859375 - ], - "bbox": [ - 389.0711364746094, - 74.74046325683594, - 394.8457336425781, - 83.67146301269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 74.74046325683594, - 394.8457336425781, - 83.67146301269531 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Moore, L.B. ", - "origin": [ - 400.40972900390625, - 81.72796630859375 - ], - "bbox": [ - 400.40972900390625, - 74.74046325683594, - 437.4747009277344, - 83.67146301269531 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 437.5396728515625, - 81.72796630859375 - ], - "bbox": [ - 437.5396728515625, - 74.77296447753906, - 450.0840148925781, - 83.57396697998047 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". St. John’s wort induces hepatic", - "origin": [ - 450.261474609375, - 81.72796630859375 - ], - "bbox": [ - 450.261474609375, - 74.74046325683594, - 547.8023681640625, - 83.67146301269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.40972900390625, - 74.74046325683594, - 547.8023681640625, - 83.67146301269531 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "drug metabolism through activation of the preg-", - "origin": [ - 400.40972900390625, - 89.7281494140625 - ], - "bbox": [ - 400.40972900390625, - 82.74064636230469, - 547.79443359375, - 91.67164611816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.40972900390625, - 82.74064636230469, - 547.79443359375, - 91.67164611816406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "nane X receptor. ", - "origin": [ - 400.40972900390625, - 97.72833251953125 - ], - "bbox": [ - 400.40972900390625, - 90.74082946777344, - 455.15277099609375, - 99.67182922363281 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Proc. Natl. Acad. Sci. USA", - "origin": [ - 456.2765808105469, - 97.72833251953125 - ], - "bbox": [ - 456.2765808105469, - 90.77333068847656, - 534.9486694335938, - 99.57433319091797 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 97", - "origin": [ - 534.9486694335938, - 97.72833251953125 - ], - "bbox": [ - 534.9486694335938, - 90.77333068847656, - 545.7608032226562, - 99.72383117675781 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ",", - "origin": [ - 545.9473876953125, - 97.72833251953125 - ], - "bbox": [ - 545.9473876953125, - 90.74082946777344, - 547.8128662109375, - 99.67182922363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.40972900390625, - 90.74082946777344, - 547.8128662109375, - 99.72383117675781 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "7500–7502 (2000).", - "origin": [ - 400.4097900390625, - 105.728515625 - ], - "bbox": [ - 400.4097900390625, - 98.74101257324219, - 459.4012756347656, - 107.67201232910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4097900390625, - 98.74101257324219, - 459.4012756347656, - 107.67201232910156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "10. Kostrubsky, V.E. ", - "origin": [ - 389.0711975097656, - 113.72869873046875 - ], - "bbox": [ - 389.0711975097656, - 106.74119567871094, - 454.2154541015625, - 115.67219543457031 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 457.7944030761719, - 113.72869873046875 - ], - "bbox": [ - 457.7944030761719, - 106.77369689941406, - 473.760986328125, - 115.57469940185547 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". The Use of Human", - "origin": [ - 473.9494934082031, - 113.72869873046875 - ], - "bbox": [ - 473.9494934082031, - 106.74119567871094, - 547.8115844726562, - 115.67219543457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711975097656, - 106.74119567871094, - 547.8115844726562, - 115.67219543457031 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Hepatocytes to Study Induction of Cytochrome", - "origin": [ - 400.4091491699219, - 121.7288818359375 - ], - "bbox": [ - 400.4091491699219, - 114.74137878417969, - 547.808349609375, - 123.67237854003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4091491699219, - 114.74137878417969, - 547.808349609375, - 123.67237854003906 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "P-450. ", - "origin": [ - 400.4091491699219, - 129.72906494140625 - ], - "bbox": [ - 400.4091491699219, - 122.74156188964844, - 422.1035461425781, - 131.6725616455078 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Drug Metab. Dispos", - "origin": [ - 422.2556457519531, - 129.72906494140625 - ], - "bbox": [ - 422.2556457519531, - 122.77406311035156, - 480.22125244140625, - 131.57505798339844 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". ", - "origin": [ - 480.4007568359375, - 129.72906494140625 - ], - "bbox": [ - 480.4007568359375, - 122.74156188964844, - 484.3163757324219, - 131.6725616455078 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "27", - "origin": [ - 484.4697570800781, - 129.72906494140625 - ], - "bbox": [ - 484.4697570800781, - 122.77406311035156, - 492.1176452636719, - 131.7245635986328 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 887–894 (1999).", - "origin": [ - 492.30419921875, - 129.72906494140625 - ], - "bbox": [ - 492.30419921875, - 122.74156188964844, - 547.81005859375, - 131.6725616455078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4091491699219, - 122.74156188964844, - 547.81005859375, - 131.7245635986328 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "11. Sonnichsen, D.S.", - "origin": [ - 389.0711975097656, - 137.729248046875 - ], - "bbox": [ - 389.0711975097656, - 130.7417449951172, - 452.3207092285156, - 139.67274475097656 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": " et al", - "origin": [ - 452.3207092285156, - 137.729248046875 - ], - "bbox": [ - 452.3207092285156, - 130.7742462158203, - 468.52392578125, - 139.5752410888672 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". Variability in human cy-", - "origin": [ - 468.7124328613281, - 137.729248046875 - ], - "bbox": [ - 468.7124328613281, - 130.7417449951172, - 547.816162109375, - 139.67274475097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711975097656, - 130.7417449951172, - 547.816162109375, - 139.67274475097656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "tochrome ", - "origin": [ - 400.4097900390625, - 145.72943115234375 - ], - "bbox": [ - 400.4097900390625, - 138.74192810058594, - 431.75152587890625, - 147.6729278564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4097900390625, - 138.74192810058594, - 431.75152587890625, - 147.6729278564453 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "P450 ", - "origin": [ - 437.95770263671875, - 145.72943115234375 - ], - "bbox": [ - 437.95770263671875, - 138.74192810058594, - 455.25030517578125, - 147.6729278564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 437.95770263671875, - 138.74192810058594, - 455.25030517578125, - 147.6729278564453 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "paclitaxel ", - "origin": [ - 461.45648193359375, - 145.72943115234375 - ], - "bbox": [ - 461.45648193359375, - 138.74192810058594, - 492.2405700683594, - 147.6729278564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.45648193359375, - 138.74192810058594, - 492.2405700683594, - 147.6729278564453 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "metabolism. ", - "origin": [ - 498.4467468261719, - 145.72943115234375 - ], - "bbox": [ - 498.4467468261719, - 138.74192810058594, - 537.84716796875, - 147.6729278564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 498.4467468261719, - 138.74192810058594, - 537.84716796875, - 147.6729278564453 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "J.", - "origin": [ - 544.0513305664062, - 145.72943115234375 - ], - "bbox": [ - 544.0513305664062, - 138.77442932128906, - 547.812255859375, - 147.57542419433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 544.0513305664062, - 138.77442932128906, - 547.812255859375, - 147.57542419433594 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Pharmacol. Exp. Ther.", - "origin": [ - 400.4097900390625, - 153.7296142578125 - ], - "bbox": [ - 400.4097900390625, - 146.7746124267578, - 463.530029296875, - 155.5756072998047 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 275", - "origin": [ - 463.530029296875, - 153.7296142578125 - ], - "bbox": [ - 463.530029296875, - 146.7746124267578, - 477.1019592285156, - 155.72511291503906 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 566–575 (1995).", - "origin": [ - 477.2826843261719, - 153.7296142578125 - ], - "bbox": [ - 477.2826843261719, - 146.7421112060547, - 532.3351440429688, - 155.67311096191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4097900390625, - 146.7421112060547, - 532.3351440429688, - 155.72511291503906 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "12. Sparreboom, A. ", - "origin": [ - 389.0711669921875, - 161.72979736328125 - ], - "bbox": [ - 389.0711669921875, - 154.74229431152344, - 450.01190185546875, - 163.6732940673828 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 450.3083190917969, - 161.72979736328125 - ], - "bbox": [ - 450.3083190917969, - 154.77479553222656, - 463.09576416015625, - 163.57579040527344 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". Limited oral bioavailability", - "origin": [ - 463.284912109375, - 161.72979736328125 - ], - "bbox": [ - 463.284912109375, - 154.74229431152344, - 547.8150024414062, - 163.6732940673828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711669921875, - 154.74229431152344, - 547.8150024414062, - 163.6732940673828 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "and active epithelial excretion of paclitaxel", - "origin": [ - 400.410400390625, - 169.72998046875 - ], - "bbox": [ - 400.410400390625, - 162.7424774169922, - 547.8169555664062, - 171.67347717285156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 162.7424774169922, - 547.8169555664062, - 171.67347717285156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "(Taxol) caused by P-glycoprotein in the intestine.", - "origin": [ - 400.410400390625, - 177.73016357421875 - ], - "bbox": [ - 400.410400390625, - 170.74266052246094, - 547.80029296875, - 179.6736602783203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 170.74266052246094, - 547.80029296875, - 179.6736602783203 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Proc. Natl. Acad. Sci. USA", - "origin": [ - 400.410400390625, - 185.7303466796875 - ], - "bbox": [ - 400.410400390625, - 178.7753448486328, - 474.82635498046875, - 187.5763397216797 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 94", - "origin": [ - 474.82635498046875, - 185.7303466796875 - ], - "bbox": [ - 474.82635498046875, - 178.7753448486328, - 484.5782470703125, - 187.72584533691406 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 2031–2035 (1997).", - "origin": [ - 484.7576599121094, - 185.7303466796875 - ], - "bbox": [ - 484.7576599121094, - 178.7428436279297, - 547.8025512695312, - 187.67384338378906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 178.7428436279297, - 547.8025512695312, - 187.72584533691406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "13. Wandel, C.", - "origin": [ - 389.0718078613281, - 193.73052978515625 - ], - "bbox": [ - 389.0718078613281, - 186.74302673339844, - 433.6761169433594, - 195.6740264892578 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": " et al", - "origin": [ - 433.6761169433594, - 193.73052978515625 - ], - "bbox": [ - 433.6761169433594, - 186.77552795410156, - 448.17498779296875, - 195.57652282714844 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". P-glycoprotein and cytochrome", - "origin": [ - 448.3524475097656, - 193.73052978515625 - ], - "bbox": [ - 448.3524475097656, - 186.74302673339844, - 547.7998046875, - 195.6740264892578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0718078613281, - 186.74302673339844, - 547.7998046875, - 195.6740264892578 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "P-4503A Inhibition: dissociation of inhibitory po-", - "origin": [ - 400.410400390625, - 201.730712890625 - ], - "bbox": [ - 400.410400390625, - 194.7432098388672, - 547.7952270507812, - 203.67420959472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 194.7432098388672, - 547.7952270507812, - 203.67420959472656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "tencies. ", - "origin": [ - 400.410400390625, - 209.73089599609375 - ], - "bbox": [ - 400.410400390625, - 202.74339294433594, - 425.4042053222656, - 211.6743927001953 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Cancer Res.", - "origin": [ - 425.38665771484375, - 209.73089599609375 - ], - "bbox": [ - 425.38665771484375, - 202.77589416503906, - 458.6497802734375, - 211.57688903808594 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 59", - "origin": [ - 458.6497802734375, - 209.73089599609375 - ], - "bbox": [ - 458.6497802734375, - 202.77589416503906, - 468.3139343261719, - 211.7263946533203 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 3944–3948 (1999).", - "origin": [ - 468.49334716796875, - 209.73089599609375 - ], - "bbox": [ - 468.49334716796875, - 202.74339294433594, - 531.3639526367188, - 211.6743927001953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 202.74339294433594, - 531.3639526367188, - 211.7263946533203 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "14. Schuetz, E.G., Schinkel, A.H., Relling, M.V. &", - "origin": [ - 389.07177734375, - 217.7310791015625 - ], - "bbox": [ - 389.07177734375, - 210.7435760498047, - 547.8118896484375, - 219.67457580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07177734375, - 210.7435760498047, - 547.8118896484375, - 219.67457580566406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Schuetz, J.D. P-glycoprotein: a major determi-", - "origin": [ - 400.4103698730469, - 225.73126220703125 - ], - "bbox": [ - 400.4103698730469, - 218.74375915527344, - 547.7881469726562, - 227.6747589111328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4103698730469, - 218.74375915527344, - 547.7881469726562, - 227.6747589111328 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "nant of rifampicin-inducible expression of cy-", - "origin": [ - 400.4103698730469, - 233.7314453125 - ], - "bbox": [ - 400.4103698730469, - 226.7439422607422, - 547.7880249023438, - 235.67494201660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4103698730469, - 226.7439422607422, - 547.7880249023438, - 235.67494201660156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "tochrome P4503A in mice and humans. ", - "origin": [ - 400.4103698730469, - 241.73162841796875 - ], - "bbox": [ - 400.4103698730469, - 234.74412536621094, - 531.6941528320312, - 243.6751251220703 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Proc.", - "origin": [ - 533.5856323242188, - 241.73162841796875 - ], - "bbox": [ - 533.5856323242188, - 234.77662658691406, - 547.8141479492188, - 243.57762145996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4103698730469, - 234.74412536621094, - 547.8141479492188, - 243.6751251220703 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Natl. Acad. Sci. USA", - "origin": [ - 400.410400390625, - 249.7318115234375 - ], - "bbox": [ - 400.410400390625, - 242.7768096923828, - 458.317626953125, - 251.5778045654297 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 93", - "origin": [ - 458.317626953125, - 249.7318115234375 - ], - "bbox": [ - 458.317626953125, - 242.7768096923828, - 467.9837341308594, - 251.72731018066406 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 4001–4005 (1996).", - "origin": [ - 468.16314697265625, - 249.7318115234375 - ], - "bbox": [ - 468.16314697265625, - 242.7443084716797, - 531.0337524414062, - 251.67530822753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 242.7443084716797, - 531.0337524414062, - 251.72731018066406 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 389.0708923339844, - 267.86749267578125, - 517.5281982421875, - 288.0252380371094 - ], - "lines": [ - { - "spans": [ - { - "size": 4.130000114440918, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "1", - "origin": [ - 389.0708923339844, - 272.0 - ], - "bbox": [ - 389.0708923339844, - 268.0723571777344, - 391.4414978027344, - 273.1151123046875 - ] - }, - { - "size": 7.5, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "St. Jude Children’s Research Hospital", - "origin": [ - 391.55218505859375, - 275.0 - ], - "bbox": [ - 391.55218505859375, - 267.86749267578125, - 517.5281982421875, - 277.0249938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0708923339844, - 267.86749267578125, - 517.5281982421875, - 277.0249938964844 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Memphis, Tennessee, USA", - "origin": [ - 389.0711975097656, - 286.000244140625 - ], - "bbox": [ - 389.0711975097656, - 278.86773681640625, - 477.8186950683594, - 288.0252380371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711975097656, - 278.86773681640625, - 477.8186950683594, - 288.0252380371094 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 389.0708923339844, - 289.86749267578125, - 493.24176025390625, - 321.0254821777344 - ], - "lines": [ - { - "spans": [ - { - "size": 4.130000114440918, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "2", - "origin": [ - 389.0708923339844, - 294.0 - ], - "bbox": [ - 389.0708923339844, - 290.0723571777344, - 391.4414978027344, - 295.1151123046875 - ] - }, - { - "size": 7.5, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "University of Pittsburgh", - "origin": [ - 391.55218505859375, - 297.0 - ], - "bbox": [ - 391.55218505859375, - 289.86749267578125, - 472.0602111816406, - 299.0249938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0708923339844, - 289.86749267578125, - 472.0602111816406, - 299.0249938964844 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Pittsburgh, Pennsylvania, USA", - "origin": [ - 389.0711975097656, - 308.000244140625 - ], - "bbox": [ - 389.0711975097656, - 300.86773681640625, - 493.24176025390625, - 310.0252380371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711975097656, - 300.86773681640625, - 493.24176025390625, - 310.0252380371094 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Email: strom@pitt.edu", - "origin": [ - 389.0711975097656, - 319.00048828125 - ], - "bbox": [ - 389.0711975097656, - 311.86798095703125, - 465.125732421875, - 321.0254821777344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711975097656, - 311.86798095703125, - 465.125732421875, - 321.0254821777344 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 47.56480026245117, - 403.21075439453125, - 207.65908813476562, - 574.3322143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 23.989999771118164, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "R", - "origin": [ - 47.56480026245117, - 429.0 - ], - "bbox": [ - 47.56480026245117, - 403.21075439453125, - 60.90324020385742, - 436.1730041503906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 47.56480026245117, - 403.21075439453125, - 60.90324020385742, - 436.1730041503906 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "heumatoid arthritis (RA)", - "origin": [ - 62.78839874267578, - 418.0 - ], - "bbox": [ - 62.78839874267578, - 409.0775146484375, - 157.63082885742188, - 420.481689453125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " is the most", - "origin": [ - 157.63082885742188, - 418.0 - ], - "bbox": [ - 157.63082885742188, - 409.2601013183594, - 207.65493774414062, - 420.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 62.78839874267578, - 409.0775146484375, - 207.65493774414062, - 420.481689453125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "common inflammatory arthritis, af-", - "origin": [ - 62.78839874267578, - 429.0 - ], - "bbox": [ - 62.78839874267578, - 420.2601013183594, - 207.65908813476562, - 431.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 62.78839874267578, - 420.2601013183594, - 207.65908813476562, - 431.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fecting about 1% of adults", - "origin": [ - 48.91328811645508, - 440.0 - ], - "bbox": [ - 48.91328811645508, - 431.2601013183594, - 154.34652709960938, - 442.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 154.57470703125, - 436.67999267578125 - ], - "bbox": [ - 154.57470703125, - 431.8677978515625, - 157.19789123535156, - 437.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". The disease", - "origin": [ - 157.32069396972656, - 440.0 - ], - "bbox": [ - 157.32069396972656, - 431.2601013183594, - 207.65188598632812, - 442.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91328811645508, - 431.2601013183594, - 207.65188598632812, - 442.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "is usually marked by synovial inflam-", - "origin": [ - 48.91355895996094, - 451.0 - ], - "bbox": [ - 48.91355895996094, - 442.2601013183594, - 207.64280700683594, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 442.2601013183594, - 207.64280700683594, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mation and hyperplasia in the small", - "origin": [ - 48.91355895996094, - 462.0 - ], - "bbox": [ - 48.91355895996094, - 453.2601013183594, - 207.64280700683594, - 464.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 453.2601013183594, - 207.64280700683594, - 464.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "joints of the hands and feet, although", - "origin": [ - 48.91355895996094, - 473.0 - ], - "bbox": [ - 48.91355895996094, - 464.2601013183594, - 207.63363647460938, - 475.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 464.2601013183594, - 207.63363647460938, - 475.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "larger joints are frequently affected.", - "origin": [ - 48.91355895996094, - 484.0 - ], - "bbox": [ - 48.91355895996094, - 475.2601013183594, - 207.64027404785156, - 486.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 475.2601013183594, - 207.64027404785156, - 486.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Treatment of RA, though greatly im-", - "origin": [ - 48.91355895996094, - 495.0 - ], - "bbox": [ - 48.91355895996094, - 486.2601013183594, - 207.6427764892578, - 497.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 486.2601013183594, - 207.6427764892578, - 497.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "proved in the last decade, remains an", - "origin": [ - 48.91355895996094, - 506.0 - ], - "bbox": [ - 48.91355895996094, - 497.2601013183594, - 207.64276123046875, - 508.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 497.2601013183594, - 207.64276123046875, - 508.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "unmet medical need. Even with the ad-", - "origin": [ - 48.91355895996094, - 517.0 - ], - "bbox": [ - 48.91355895996094, - 508.2601013183594, - 207.6511688232422, - 519.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 508.2601013183594, - 207.6511688232422, - 519.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "vent of novel therapeutics like in-", - "origin": [ - 48.91355895996094, - 528.0 - ], - "bbox": [ - 48.91355895996094, - 519.2600708007812, - 207.6427764892578, - 530.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 519.2600708007812, - 207.6427764892578, - 530.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "hibitors ", - "origin": [ - 48.91355895996094, - 539.0 - ], - "bbox": [ - 48.91355895996094, - 530.2600708007812, - 83.22576904296875, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 530.2600708007812, - 83.22576904296875, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of ", - "origin": [ - 91.84365844726562, - 539.0 - ], - "bbox": [ - 91.84365844726562, - 530.2600708007812, - 102.49256134033203, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.84365844726562, - 530.2600708007812, - 102.49256134033203, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "TNF-", - "origin": [ - 111.1104507446289, - 539.0 - ], - "bbox": [ - 111.1104507446289, - 530.2600708007812, - 130.57810974121094, - 541.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 0, - "font": "Symbol", - "color": 0, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "α", - "origin": [ - 130.8196258544922, - 539.0 - ], - "bbox": [ - 130.8196258544922, - 530.6170043945312, - 136.0569305419922, - 541.431884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.1104507446289, - 530.2600708007812, - 136.0569305419922, - 541.431884765625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and ", - "origin": [ - 147.26358032226562, - 539.0 - ], - "bbox": [ - 147.26358032226562, - 530.2600708007812, - 165.05462646484375, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.26358032226562, - 530.2600708007812, - 165.05462646484375, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "IL-1, ", - "origin": [ - 173.67251586914062, - 539.0 - ], - "bbox": [ - 173.67251586914062, - 530.2600708007812, - 194.8084716796875, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.67251586914062, - 530.2600708007812, - 194.8084716796875, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "a", - "origin": [ - 203.42636108398438, - 539.0 - ], - "bbox": [ - 203.42636108398438, - 530.2600708007812, - 207.65106201171875, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.42636108398438, - 530.2600708007812, - 207.65106201171875, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "significant percentage of patients con-", - "origin": [ - 48.91355895996094, - 550.0 - ], - "bbox": [ - 48.91355895996094, - 541.2600708007812, - 207.63446044921875, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 541.2600708007812, - 207.63446044921875, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tinue to exhibit signs and symptoms of", - "origin": [ - 48.91355895996094, - 560.9999389648438 - ], - "bbox": [ - 48.91355895996094, - 552.260009765625, - 207.64944458007812, - 563.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 552.260009765625, - 207.64944458007812, - 563.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "synovitis. In this issue, Delgado ", - "origin": [ - 48.91355895996094, - 571.9999389648438 - ], - "bbox": [ - 48.91355895996094, - 563.260009765625, - 183.99440002441406, - 574.3322143554688 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al.", - "origin": [ - 184.92898559570312, - 571.9999389648438 - ], - "bbox": [ - 184.92898559570312, - 564.1066284179688, - 204.79917907714844, - 574.240966796875 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 205.0330047607422, - 568.6799926757812 - ], - "bbox": [ - 205.0330047607422, - 563.8677978515625, - 207.65618896484375, - 569.9641723632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 563.260009765625, - 207.65618896484375, - 574.3322143554688 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 48.91339874267578, - 574.2600708007812, - 207.6841278076172, - 739.332275390625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "describe how administration of the va-", - "origin": [ - 48.91339874267578, - 583.0 - ], - "bbox": [ - 48.91339874267578, - 574.2600708007812, - 207.6426544189453, - 585.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 574.2600708007812, - 207.6426544189453, - 585.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "soactive intestinal peptide (VIP) sup-", - "origin": [ - 48.91339874267578, - 594.0 - ], - "bbox": [ - 48.91339874267578, - 585.2600708007812, - 207.63514709472656, - 596.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 585.2600708007812, - 207.63514709472656, - 596.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "presses ", - "origin": [ - 48.91339874267578, - 605.0 - ], - "bbox": [ - 48.91339874267578, - 596.2600708007812, - 79.53623962402344, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 596.2600708007812, - 79.53623962402344, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "inflammatory ", - "origin": [ - 96.63423919677734, - 605.0 - ], - "bbox": [ - 96.63423919677734, - 596.2600708007812, - 155.29034423828125, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.63423919677734, - 596.2600708007812, - 155.29034423828125, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "arthritis,", - "origin": [ - 172.3883514404297, - 605.0 - ], - "bbox": [ - 172.3883514404297, - 596.2600708007812, - 207.64263916015625, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 172.3883514404297, - 596.2600708007812, - 207.64263916015625, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "providing new insight into the mecha-", - "origin": [ - 48.91339874267578, - 615.9999389648438 - ], - "bbox": [ - 48.91339874267578, - 607.260009765625, - 207.6343231201172, - 618.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 607.260009765625, - 207.6343231201172, - 618.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "nisms of this disease.", - "origin": [ - 48.91339874267578, - 626.9999389648438 - ], - "bbox": [ - 48.91339874267578, - 618.260009765625, - 134.1643829345703, - 629.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 618.260009765625, - 134.1643829345703, - 629.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The pathogenesis of RA is not fully", - "origin": [ - 57.417579650878906, - 637.9999389648438 - ], - "bbox": [ - 57.417579650878906, - 629.260009765625, - 207.65924072265625, - 640.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.417579650878906, - 629.260009765625, - 207.65924072265625, - 640.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "understood and many different cell", - "origin": [ - 48.91339874267578, - 648.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 640.2599487304688, - 207.67245483398438, - 651.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 640.2599487304688, - 207.67245483398438, - 651.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "types are involved in the decades-long", - "origin": [ - 48.91339874267578, - 659.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 651.2599487304688, - 207.66915893554688, - 662.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 651.2599487304688, - 207.66915893554688, - 662.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "process of synovial of inflammation", - "origin": [ - 48.91339874267578, - 670.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 662.2599487304688, - 207.6691436767578, - 673.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 662.2599487304688, - 207.6691436767578, - 673.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and ", - "origin": [ - 48.91339874267578, - 681.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 673.2599487304688, - 66.70694732666016, - 684.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 673.2599487304688, - 66.70694732666016, - 684.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "joint ", - "origin": [ - 76.34573364257812, - 681.9998779296875 - ], - "bbox": [ - 76.34573364257812, - 673.2599487304688, - 98.5482406616211, - 684.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.34573364257812, - 673.2599487304688, - 98.5482406616211, - 684.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "destruction. ", - "origin": [ - 108.18702697753906, - 681.9998779296875 - ], - "bbox": [ - 108.18702697753906, - 673.2599487304688, - 159.681884765625, - 684.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.18702697753906, - 673.2599487304688, - 159.681884765625, - 684.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Although", - "origin": [ - 169.3206787109375, - 681.9998779296875 - ], - "bbox": [ - 169.3206787109375, - 673.2599487304688, - 207.6683349609375, - 684.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.3206787109375, - 673.2599487304688, - 207.6683349609375, - 684.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "macrophages and fibroblast-like syn-", - "origin": [ - 48.91339874267578, - 692.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 684.2599487304688, - 207.67083740234375, - 695.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 684.2599487304688, - 207.67083740234375, - 695.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "oviocytes are the primary sources of", - "origin": [ - 48.91339874267578, - 703.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 695.2599487304688, - 207.67164611816406, - 706.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 695.2599487304688, - 207.67164611816406, - 706.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the pro-inflammatory cytokines and", - "origin": [ - 48.91339874267578, - 714.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 706.2599487304688, - 207.67001342773438, - 717.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 706.2599487304688, - 207.67001342773438, - 717.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "proteolytic enzymes that mediate joint", - "origin": [ - 48.91339874267578, - 725.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 717.2599487304688, - 207.6841278076172, - 728.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 717.2599487304688, - 207.6841278076172, - 728.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "damage, CD4", - "origin": [ - 48.91339874267578, - 736.9998168945312 - ], - "bbox": [ - 48.91339874267578, - 728.2598876953125, - 104.24700164794922, - 739.3320922851562 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "+", - "origin": [ - 104.47969818115234, - 733.6799926757812 - ], - "bbox": [ - 104.47969818115234, - 728.8677978515625, - 107.10287475585938, - 734.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 107.10287475585938, - 733.6799926757812 - ], - "bbox": [ - 107.10287475585938, - 724.9400634765625, - 110.72750091552734, - 739.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "T cells probably have a", - "origin": [ - 110.72750091552734, - 737.0 - ], - "bbox": [ - 110.72750091552734, - 728.2600708007812, - 207.64495849609375, - 739.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 724.9400634765625, - 207.64495849609375, - 739.332275390625 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 218.9918670654297, - 442.2603454589844, - 378.22283935546875, - 739.332275390625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "key role in the initiation and perpetua-", - "origin": [ - 218.9918670654297, - 451.000244140625 - ], - "bbox": [ - 218.9918670654297, - 442.2603454589844, - 378.2099304199219, - 453.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 442.2603454589844, - 378.2099304199219, - 453.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tion of disease. Over 10 years ago, stud-", - "origin": [ - 218.9918670654297, - 462.000244140625 - ], - "bbox": [ - 218.9918670654297, - 453.2603454589844, - 378.2024230957031, - 464.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 453.2603454589844, - 378.2024230957031, - 464.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ies of RA patients indicated that", - "origin": [ - 218.9918670654297, - 473.000244140625 - ], - "bbox": [ - 218.9918670654297, - 464.2603454589844, - 378.1942138671875, - 475.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 464.2603454589844, - 378.1942138671875, - 475.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "synovial T cells are relatively quiescent", - "origin": [ - 218.9918670654297, - 484.000244140625 - ], - "bbox": [ - 218.9918670654297, - 475.2603454589844, - 378.19012451171875, - 486.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 475.2603454589844, - 378.19012451171875, - 486.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and produce surprisingly few cytokines", - "origin": [ - 218.9918670654297, - 495.000244140625 - ], - "bbox": [ - 218.9918670654297, - 486.2603454589844, - 378.2041320800781, - 497.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 486.2603454589844, - 378.2041320800781, - 497.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "compared with other T-cell–mediated", - "origin": [ - 218.9918670654297, - 506.000244140625 - ], - "bbox": [ - 218.9918670654297, - 497.2603454589844, - 378.19586181640625, - 508.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 497.2603454589844, - 378.19586181640625, - 508.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "chronic diseases", - "origin": [ - 218.9918670654297, - 517.000244140625 - ], - "bbox": [ - 218.9918670654297, - 508.2603454589844, - 286.8917236328125, - 519.33251953125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "3", - "origin": [ - 287.1361083984375, - 513.6799926757812 - ], - "bbox": [ - 287.1361083984375, - 508.8677978515625, - 289.75927734375, - 514.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". More recently, low", - "origin": [ - 289.8872985839844, - 517.0 - ], - "bbox": [ - 289.8872985839844, - 508.2601013183594, - 378.2001647949219, - 519.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 508.2601013183594, - 378.2001647949219, - 519.33251953125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "levels of several Th1 cytokines such as", - "origin": [ - 218.99200439453125, - 528.0 - ], - "bbox": [ - 218.99200439453125, - 519.2600708007812, - 378.1810302734375, - 530.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99200439453125, - 519.2600708007812, - 378.1810302734375, - 530.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "IFN-", - "origin": [ - 218.99200439453125, - 539.0 - ], - "bbox": [ - 218.99200439453125, - 530.2600708007812, - 236.2551727294922, - 541.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 0, - "font": "Symbol", - "color": 0, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "γ", - "origin": [ - 236.4842529296875, - 539.0 - ], - "bbox": [ - 236.4842529296875, - 530.6170043945312, - 239.8955535888672, - 541.431884765625 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and IL-17 have been identified in", - "origin": [ - 239.8955535888672, - 539.0 - ], - "bbox": [ - 239.8955535888672, - 530.2600708007812, - 378.19915771484375, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99200439453125, - 530.2600708007812, - 378.19915771484375, - 541.431884765625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "RA synovium, whereas Th2 cytokines", - "origin": [ - 218.99200439453125, - 550.0 - ], - "bbox": [ - 218.99200439453125, - 541.2600708007812, - 378.2142333984375, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99200439453125, - 541.2600708007812, - 378.2142333984375, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "such as IL-4 are nearly absent", - "origin": [ - 218.99200439453125, - 560.9999389648438 - ], - "bbox": [ - 218.99200439453125, - 552.260009765625, - 337.1142272949219, - 563.3322143554688 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "4", - "origin": [ - 337.3442077636719, - 557.6799926757812 - ], - "bbox": [ - 337.3442077636719, - 552.8677978515625, - 339.9673767089844, - 558.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". The cur-", - "origin": [ - 340.0902099609375, - 561.0 - ], - "bbox": [ - 340.0902099609375, - 552.2600708007812, - 378.2054443359375, - 563.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99200439453125, - 552.260009765625, - 378.2054443359375, - 563.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rent paradigm proposes that in the", - "origin": [ - 218.99237060546875, - 572.0 - ], - "bbox": [ - 218.99237060546875, - 563.2600708007812, - 378.1946716308594, - 574.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 563.2600708007812, - 378.1946716308594, - 574.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rheumatoid synovium, a Th1 bias un-", - "origin": [ - 218.99237060546875, - 583.0 - ], - "bbox": [ - 218.99237060546875, - 574.2600708007812, - 378.194580078125, - 585.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 574.2600708007812, - 378.194580078125, - 585.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "derlies chronic synovial inflammation.", - "origin": [ - 218.99237060546875, - 593.9999389648438 - ], - "bbox": [ - 218.99237060546875, - 585.260009765625, - 378.1936950683594, - 596.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 585.260009765625, - 378.1936950683594, - 596.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Conversely, a lack of Th2 cytokines,", - "origin": [ - 218.99237060546875, - 604.9999389648438 - ], - "bbox": [ - 218.99237060546875, - 596.260009765625, - 378.1864013671875, - 607.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 596.260009765625, - 378.1864013671875, - 607.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "which antagonize many Th1 functions", - "origin": [ - 218.99237060546875, - 615.9999389648438 - ], - "bbox": [ - 218.99237060546875, - 607.260009765625, - 378.1847229003906, - 618.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 607.260009765625, - 378.1847229003906, - 618.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and can directly suppress effector mol-", - "origin": [ - 218.99237060546875, - 626.9998779296875 - ], - "bbox": [ - 218.99237060546875, - 618.2599487304688, - 378.1905212402344, - 629.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 618.2599487304688, - 378.1905212402344, - 629.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ecule ", - "origin": [ - 218.99237060546875, - 637.9998779296875 - ], - "bbox": [ - 218.99237060546875, - 629.2599487304688, - 242.4440155029297, - 640.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 629.2599487304688, - 242.4440155029297, - 640.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "production ", - "origin": [ - 249.27243041992188, - 637.9998779296875 - ], - "bbox": [ - 249.27243041992188, - 629.2599487304688, - 297.2962341308594, - 640.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 249.27243041992188, - 629.2599487304688, - 297.2962341308594, - 640.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by ", - "origin": [ - 304.1246337890625, - 637.9998779296875 - ], - "bbox": [ - 304.1246337890625, - 629.2599487304688, - 316.46673583984375, - 640.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.1246337890625, - 629.2599487304688, - 316.46673583984375, - 640.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "synoviocytes,", - "origin": [ - 323.2951354980469, - 637.9998779296875 - ], - "bbox": [ - 323.2951354980469, - 629.2599487304688, - 378.19134521484375, - 640.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.2951354980469, - 629.2599487304688, - 378.19134521484375, - 640.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "leads to uncontrolled Th1-type re-", - "origin": [ - 218.99237060546875, - 648.9998779296875 - ], - "bbox": [ - 218.99237060546875, - 640.2599487304688, - 378.1938171386719, - 651.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 640.2599487304688, - 378.1938171386719, - 651.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sponses", - "origin": [ - 218.99237060546875, - 659.9998779296875 - ], - "bbox": [ - 218.99237060546875, - 651.2599487304688, - 250.0675811767578, - 662.3321533203125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "5", - "origin": [ - 250.31089782714844, - 656.6799926757812 - ], - "bbox": [ - 250.31089782714844, - 651.8677978515625, - 252.93408203125, - 657.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". Therefore, enhancement of", - "origin": [ - 253.06210327148438, - 660.0 - ], - "bbox": [ - 253.06210327148438, - 651.2600708007812, - 378.21209716796875, - 662.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 651.2599487304688, - 378.21209716796875, - 662.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Th2 function and suppression Th1 cells", - "origin": [ - 218.9922637939453, - 671.0 - ], - "bbox": [ - 218.9922637939453, - 662.2600708007812, - 378.19708251953125, - 673.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9922637939453, - 662.2600708007812, - 378.19708251953125, - 673.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "has been proposed as a therapeutic ap-", - "origin": [ - 218.9922637939453, - 682.0 - ], - "bbox": [ - 218.9922637939453, - 673.2600708007812, - 378.2145080566406, - 684.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9922637939453, - 673.2600708007812, - 378.2145080566406, - 684.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "proach to RA.", - "origin": [ - 218.9922637939453, - 693.0 - ], - "bbox": [ - 218.9922637939453, - 684.2600708007812, - 274.1208801269531, - 695.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9922637939453, - 684.2600708007812, - 274.1208801269531, - 695.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The findings of Delgado ", - "origin": [ - 227.49644470214844, - 704.0 - ], - "bbox": [ - 227.49644470214844, - 695.2600708007812, - 332.37109375, - 706.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al.", - "origin": [ - 333.9024353027344, - 704.0 - ], - "bbox": [ - 333.9024353027344, - 696.106689453125, - 354.34869384765625, - 706.2410278320312 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 354.58648681640625, - 700.6799926757812 - ], - "bbox": [ - 354.58648681640625, - 695.8677978515625, - 357.20965576171875, - 701.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 357.20965576171875, - 700.6799926757812 - ], - "bbox": [ - 357.20965576171875, - 691.9400634765625, - 361.2427062988281, - 706.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sup-", - "origin": [ - 361.2427062988281, - 704.0 - ], - "bbox": [ - 361.2427062988281, - 695.2600708007812, - 378.20623779296875, - 706.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.49644470214844, - 691.9400634765625, - 378.20623779296875, - 706.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "port this hypothesis by demonstrating", - "origin": [ - 218.99232482910156, - 715.0 - ], - "bbox": [ - 218.99232482910156, - 706.2600708007812, - 378.2145690917969, - 717.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99232482910156, - 706.2600708007812, - 378.2145690917969, - 717.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "that VIP treatment dramatically sup-", - "origin": [ - 218.99232482910156, - 726.0 - ], - "bbox": [ - 218.99232482910156, - 717.2600708007812, - 378.22283935546875, - 728.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99232482910156, - 717.2600708007812, - 378.22283935546875, - 728.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "presses clinical joint disease in murine", - "origin": [ - 218.99232482910156, - 737.0 - ], - "bbox": [ - 218.99232482910156, - 728.2600708007812, - 378.2146301269531, - 739.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99232482910156, - 728.2600708007812, - 378.2146301269531, - 739.332275390625 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 389.0709533691406, - 409.2603454589844, - 548.087646484375, - 739.3322143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "collagen-induced arthritis (CIA). VIP", - "origin": [ - 389.0709533691406, - 418.000244140625 - ], - "bbox": [ - 389.0709533691406, - 409.2603454589844, - 548.0850219726562, - 420.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0709533691406, - 409.2603454589844, - 548.0850219726562, - 420.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "regulates adaptive and innate immune", - "origin": [ - 389.0709533691406, - 429.000244140625 - ], - "bbox": [ - 389.0709533691406, - 420.2603454589844, - 548.085693359375, - 431.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0709533691406, - 420.2603454589844, - 548.085693359375, - 431.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "responses", - "origin": [ - 389.0709533691406, - 440.000244140625 - ], - "bbox": [ - 389.0709533691406, - 431.2603454589844, - 427.797119140625, - 442.3325500488281 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "6", - "origin": [ - 428.01910400390625, - 436.67999267578125 - ], - "bbox": [ - 428.01910400390625, - 431.8677978515625, - 430.64227294921875, - 437.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", and also causes secretory di-", - "origin": [ - 430.76129150390625, - 440.0 - ], - "bbox": [ - 430.76129150390625, - 431.2601013183594, - 548.0735473632812, - 442.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0709533691406, - 431.2601013183594, - 548.0735473632812, - 442.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "arrhea in patients with VIP-producing", - "origin": [ - 389.07122802734375, - 451.0 - ], - "bbox": [ - 389.07122802734375, - 442.2601013183594, - 548.0543823242188, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 442.2601013183594, - 548.0543823242188, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tumors. Although VIP is considered to", - "origin": [ - 389.07122802734375, - 462.0 - ], - "bbox": [ - 389.07122802734375, - 453.2601013183594, - 548.0535888671875, - 464.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 453.2601013183594, - 548.0535888671875, - 464.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "be an immunosuppressant, it is now", - "origin": [ - 389.07122802734375, - 473.0 - ], - "bbox": [ - 389.07122802734375, - 464.2601013183594, - 548.0452880859375, - 475.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 464.2601013183594, - 548.0452880859375, - 475.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "clear that VIP has multiple, complex", - "origin": [ - 389.07122802734375, - 484.0 - ], - "bbox": [ - 389.07122802734375, - 475.2601013183594, - 548.0535888671875, - 486.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 475.2601013183594, - 548.0535888671875, - 486.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "functions. Its pleotropic actions have a", - "origin": [ - 389.07122802734375, - 495.0 - ], - "bbox": [ - 389.07122802734375, - 486.2601013183594, - 548.0452270507812, - 497.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 486.2601013183594, - 548.0452270507812, - 497.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "salutary effect on both inflammation", - "origin": [ - 389.07122802734375, - 506.0 - ], - "bbox": [ - 389.07122802734375, - 497.2601013183594, - 548.0552368164062, - 508.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 497.2601013183594, - 548.0552368164062, - 508.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and immunity in the CIA model. For", - "origin": [ - 389.07122802734375, - 517.0 - ], - "bbox": [ - 389.07122802734375, - 508.2601013183594, - 548.0601806640625, - 519.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 508.2601013183594, - 548.0601806640625, - 519.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "example, VIP suppresses Th1 cell func-", - "origin": [ - 389.07122802734375, - 528.0 - ], - "bbox": [ - 389.07122802734375, - 519.2600708007812, - 548.041259765625, - 530.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 519.2600708007812, - 548.041259765625, - 530.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tion and differentiation, as demon-", - "origin": [ - 389.07122802734375, - 539.0 - ], - "bbox": [ - 389.07122802734375, - 530.2600708007812, - 548.0576171875, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 530.2600708007812, - 548.0576171875, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "strated ", - "origin": [ - 389.07122802734375, - 550.0 - ], - "bbox": [ - 389.07122802734375, - 541.2600708007812, - 419.17120361328125, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 541.2600708007812, - 419.17120361328125, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by ", - "origin": [ - 428.717041015625, - 550.0 - ], - "bbox": [ - 428.717041015625, - 541.2600708007812, - 441.05914306640625, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 428.717041015625, - 541.2600708007812, - 441.05914306640625, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the ", - "origin": [ - 450.60498046875, - 550.0 - ], - "bbox": [ - 450.60498046875, - 541.2600708007812, - 466.337646484375, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 450.60498046875, - 541.2600708007812, - 466.337646484375, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "decreased ", - "origin": [ - 475.88348388671875, - 550.0 - ], - "bbox": [ - 475.88348388671875, - 541.2600708007812, - 517.5702514648438, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 475.88348388671875, - 541.2600708007812, - 517.5702514648438, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "IFN-", - "origin": [ - 527.1160888671875, - 550.0 - ], - "bbox": [ - 527.1160888671875, - 541.2600708007812, - 544.4091186523438, - 552.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 0, - "font": "Symbol", - "color": 0, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "γ", - "origin": [ - 544.6563720703125, - 550.0 - ], - "bbox": [ - 544.6563720703125, - 541.6170043945312, - 548.0676879882812, - 552.431884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 527.1160888671875, - 541.2600708007812, - 548.0676879882812, - 552.431884765625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "expression. On the other hand, Th2", - "origin": [ - 389.07122802734375, - 560.9999389648438 - ], - "bbox": [ - 389.07122802734375, - 552.260009765625, - 548.0728759765625, - 563.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 552.260009765625, - 548.0728759765625, - 563.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "function is enhanced in VIP-treated", - "origin": [ - 389.07122802734375, - 571.9999389648438 - ], - "bbox": [ - 389.07122802734375, - 563.260009765625, - 548.0759887695312, - 574.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 563.260009765625, - 548.0759887695312, - 574.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mice, as determined by the observed", - "origin": [ - 389.07122802734375, - 582.9999389648438 - ], - "bbox": [ - 389.07122802734375, - 574.260009765625, - 548.0818481445312, - 585.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 574.260009765625, - 548.0818481445312, - 585.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "increased in IL-4 production. VIP-", - "origin": [ - 389.07122802734375, - 593.9998779296875 - ], - "bbox": [ - 389.07122802734375, - 585.2599487304688, - 548.0828247070312, - 596.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 585.2599487304688, - 548.0828247070312, - 596.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "treated mice produced lower levels of", - "origin": [ - 389.07122802734375, - 604.9998779296875 - ], - "bbox": [ - 389.07122802734375, - 596.2599487304688, - 548.087646484375, - 607.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 596.2599487304688, - 548.087646484375, - 607.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "anti-type II collagen antibodies, indi-", - "origin": [ - 389.07122802734375, - 615.9998779296875 - ], - "bbox": [ - 389.07122802734375, - 607.2599487304688, - 548.0861206054688, - 618.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 607.2599487304688, - 548.0861206054688, - 618.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cating a downregulation of B-cell re-", - "origin": [ - 389.07122802734375, - 626.9998779296875 - ], - "bbox": [ - 389.07122802734375, - 618.2599487304688, - 548.087646484375, - 629.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 618.2599487304688, - 548.087646484375, - 629.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sponses.", - "origin": [ - 389.07122802734375, - 637.9998779296875 - ], - "bbox": [ - 389.07122802734375, - 629.2599487304688, - 422.7070007324219, - 640.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 629.2599487304688, - 422.7070007324219, - 640.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Delgado ", - "origin": [ - 397.5754089355469, - 648.9998168945312 - ], - "bbox": [ - 397.5754089355469, - 640.2598876953125, - 433.7584533691406, - 651.3320922851562 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al.", - "origin": [ - 435.4209289550781, - 648.9998168945312 - ], - "bbox": [ - 435.4209289550781, - 641.1065063476562, - 456.1925354003906, - 651.2408447265625 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 456.47869873046875, - 645.6799926757812 - ], - "bbox": [ - 456.47869873046875, - 640.8677978515625, - 459.10186767578125, - 646.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 459.10186767578125, - 645.6799926757812 - ], - "bbox": [ - 459.10186767578125, - 636.9400634765625, - 463.2972106933594, - 651.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "also report that VIP", - "origin": [ - 463.2972106933594, - 649.0 - ], - "bbox": [ - 463.2972106933594, - 640.2600708007812, - 548.0693359375, - 651.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.5754089355469, - 636.9400634765625, - 548.0693359375, - 651.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "treatment suppresses production of", - "origin": [ - 389.0711364746094, - 660.0 - ], - "bbox": [ - 389.0711364746094, - 651.2600708007812, - 548.067626953125, - 662.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 651.2600708007812, - 548.067626953125, - 662.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pro-inflammatory mediators, as well as", - "origin": [ - 389.0711364746094, - 671.0 - ], - "bbox": [ - 389.0711364746094, - 662.2600708007812, - 548.0618896484375, - 673.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 662.2600708007812, - 548.0618896484375, - 673.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "expression of the metalloproteinase", - "origin": [ - 389.0711364746094, - 682.0 - ], - "bbox": [ - 389.0711364746094, - 673.2600708007812, - 548.0692749023438, - 684.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 673.2600708007812, - 548.0692749023438, - 684.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "gelatinase (MMP-2). MMP-2 is believed", - "origin": [ - 389.0711364746094, - 692.9999389648438 - ], - "bbox": [ - 389.0711364746094, - 684.260009765625, - 548.054443359375, - 695.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 684.260009765625, - 548.054443359375, - 695.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to contribute to joint destruction in", - "origin": [ - 389.0711364746094, - 703.9999389648438 - ], - "bbox": [ - 389.0711364746094, - 695.260009765625, - 548.0684814453125, - 706.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 695.260009765625, - 548.0684814453125, - 706.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "paws of arthritic mice. ", - "origin": [ - 389.0711364746094, - 714.9999389648438 - ], - "bbox": [ - 389.0711364746094, - 706.260009765625, - 486.4566650390625, - 717.3322143554688 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "In vitro", - "origin": [ - 487.387939453125, - 714.9999389648438 - ], - "bbox": [ - 487.387939453125, - 707.1066284179688, - 516.1656494140625, - 717.240966796875 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " studies", - "origin": [ - 516.1656494140625, - 714.9999389648438 - ], - "bbox": [ - 516.1656494140625, - 706.260009765625, - 548.067626953125, - 717.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 706.260009765625, - 548.067626953125, - 717.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "indicate that VIP may act directly on", - "origin": [ - 389.07110595703125, - 725.9999389648438 - ], - "bbox": [ - 389.07110595703125, - 717.260009765625, - 548.07080078125, - 728.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07110595703125, - 717.260009765625, - 548.07080078125, - 728.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "synoviocytes, although an indirect ac-", - "origin": [ - 389.07110595703125, - 736.9999389648438 - ], - "bbox": [ - 389.07110595703125, - 728.260009765625, - 548.0684204101562, - 739.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07110595703125, - 728.260009765625, - 548.0684204101562, - 739.3322143554688 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 123.66940307617188, - 330.6000061035156, - 472.97113037109375, - 358.1400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 18.70828628540039, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "VIP: A very important protein in arthritis", - "origin": [ - 123.66940307617188, - 352.0 - ], - "bbox": [ - 123.66940307617188, - 330.6000061035156, - 472.97113037109375, - 358.1400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 123.66940307617188, - 330.6000061035156, - 472.97113037109375, - 358.1400146484375 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 77.16777801513672, - 365.1189880371094, - 519.5211181640625, - 398.548095703125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Many studies have shown that immune system modulation can be used to treat various forms of arthritis. A", - "origin": [ - 79.47019958496094, - 374.0 - ], - "bbox": [ - 79.47019958496094, - 365.1189880371094, - 517.215576171875, - 376.548095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.47019958496094, - 365.1189880371094, - 517.215576171875, - 376.548095703125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "vasoactive intestinal peptide has recently been shown to have potent anti-inflammatory effects, indicating a", - "origin": [ - 77.16777801513672, - 385.0 - ], - "bbox": [ - 77.16777801513672, - 376.1189880371094, - 519.5211181640625, - 387.548095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.16777801513672, - 376.1189880371094, - 519.5211181640625, - 387.548095703125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "new therapeutic approach for inflammatory arthritis (pages 563-568).", - "origin": [ - 155.35626220703125, - 396.0 - ], - "bbox": [ - 155.35626220703125, - 387.1189880371094, - 441.32440185546875, - 398.548095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 155.35626220703125, - 387.1189880371094, - 441.32440185546875, - 398.548095703125 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 257.51519775390625, - 417.4169921875, - 339.20843505859375, - 432.09100341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "G", - "origin": [ - 257.51519775390625, - 429.0 - ], - "bbox": [ - 257.51519775390625, - 417.4169921875, - 266.2712097167969, - 432.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ARY", - "origin": [ - 266.32049560546875, - 429.0 - ], - "bbox": [ - 266.32049560546875, - 420.312744140625, - 282.3601379394531, - 431.3182373046875 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " S. F", - "origin": [ - 282.3601379394531, - 429.0 - ], - "bbox": [ - 282.3601379394531, - 417.4169921875, - 302.6263122558594, - 432.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "IRESTEIN", - "origin": [ - 302.677490234375, - 429.0 - ], - "bbox": [ - 302.677490234375, - 420.312744140625, - 339.20843505859375, - 431.3182373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 257.51519775390625, - 417.4169921875, - 339.20843505859375, - 432.09100341796875 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 23, - 430, - 36, - 450 - ], - "image_path": "images/1_23_430_36_450.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 343.67999999999995, - 696.4799999999999, - 359.03999999999996, - 706.0799999999999 - ], - "image_path": "equations_inline/1_343_696_359_706.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 20.472000122070312, - 612.0, - 37.09199905395508 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 48.912574768066406, - 57.260101318359375, - 207.6666717529297, - 321.3323059082031 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 218.99203491210938, - 57.260101318359375, - 377.7441101074219, - 321.3323059082031 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 389.0708923339844, - 57.260101318359375, - 547.8169555664062, - 321.3323059082031 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 330.6000061035156, - 612.0, - 398.548095703125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 23, - 403.21075439453125, - 36, - 739.332275390625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 47.56480026245117, - 403.21075439453125, - 207.6841278076172, - 739.332275390625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 218.9918670654297, - 403.21075439453125, - 378.22283935546875, - 739.332275390625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 389.0709533691406, - 403.21075439453125, - 548.087646484375, - 739.332275390625 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 750.9375, - 612.0, - 761.2424926757812 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 43.5, - 750.9375, - 553.7387084960938, - 761.2424926757812 - ], - "lines": [ - { - "spans": [ - { - "size": 6.0, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "NATURE MEDICINE", - "origin": [ - 43.5, - 759.0 - ], - "bbox": [ - 43.5, - 752.5800170898438, - 101.01300811767578, - 760.8419799804688 - ] - }, - { - "size": 6.0, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " • VOLUME 7 • NUMBER 5 • MAY 2001", - "origin": [ - 101.01300811767578, - 759.0 - ], - "bbox": [ - 101.01300811767578, - 752.5499877929688, - 222.2921905517578, - 760.7940063476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 43.5, - 752.5499877929688, - 222.2921905517578, - 760.8419799804688 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "537", - "origin": [ - 540.23876953125, - 759.0 - ], - "bbox": [ - 540.23876953125, - 750.9375, - 553.7387084960938, - 761.2424926757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 540.23876953125, - 750.9375, - 553.7387084960938, - 761.2424926757812 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 440.2159118652344, - 20.472000122070312, - 558.233642578125, - 37.09199905395508 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "StoneSerif-Bold", - "color": 0, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "NEWS & VIEWS ", - "origin": [ - 440.2159118652344, - 33.0 - ], - "bbox": [ - 440.2159118652344, - 20.472000122070312, - 558.233642578125, - 37.09199905395508 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 440.2159118652344, - 20.472000122070312, - 558.233642578125, - 37.09199905395508 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 48.912574768066406, - 57.260101318359375, - 207.6666717529297, - 321.3323059082031 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ance, in which paclitaxel binds and acti-", - "origin": [ - 48.91339874267578, - 66.0 - ], - "bbox": [ - 48.91339874267578, - 57.260101318359375, - 207.65921020507812, - 68.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 57.260101318359375, - 207.65921020507812, - 68.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "vates SXR, leading to expression of", - "origin": [ - 48.91339874267578, - 77.0 - ], - "bbox": [ - 48.91339874267578, - 68.26010131835938, - 207.65591430664062, - 79.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 68.26010131835938, - 207.65591430664062, - 79.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP3A4", - "origin": [ - 48.91339874267578, - 88.0 - ], - "bbox": [ - 48.91339874267578, - 80.10669708251953, - 79.58190155029297, - 90.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", ", - "origin": [ - 79.4864501953125, - 88.0 - ], - "bbox": [ - 79.4864501953125, - 79.26010131835938, - 84.1527099609375, - 90.3322982788086 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "CYP2C9", - "origin": [ - 85.39273071289062, - 88.0 - ], - "bbox": [ - 85.39273071289062, - 80.10669708251953, - 116.21892547607422, - 90.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and ", - "origin": [ - 116.21892547607422, - 88.0 - ], - "bbox": [ - 116.21892547607422, - 79.26010131835938, - 136.53732299804688, - 90.3322982788086 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1.", - "origin": [ - 137.77487182617188, - 88.0 - ], - "bbox": [ - 137.77487182617188, - 80.10669708251953, - 163.41854858398438, - 90.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " Expression", - "origin": [ - 163.41854858398438, - 88.0 - ], - "bbox": [ - 163.41854858398438, - 79.26010131835938, - 207.65171813964844, - 90.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 79.26010131835938, - 207.65171813964844, - 90.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of these enzymes leads to paclitaxel me-", - "origin": [ - 48.912574768066406, - 99.0 - ], - "bbox": [ - 48.912574768066406, - 90.26010131835938, - 207.6584014892578, - 101.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 90.26010131835938, - 207.6584014892578, - 101.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tabolism and clearance (Fig. 1). There is", - "origin": [ - 48.912574768066406, - 110.0 - ], - "bbox": [ - 48.912574768066406, - 101.26010131835938, - 207.66346740722656, - 112.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 101.26010131835938, - 207.66346740722656, - 112.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "also a feedback pathway where the gene", - "origin": [ - 48.912574768066406, - 121.0 - ], - "bbox": [ - 48.912574768066406, - 112.26010131835938, - 207.6551513671875, - 123.3322982788086 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 112.26010131835938, - 207.6551513671875, - 123.3322982788086 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "products that are expressed as a result of", - "origin": [ - 48.912574768066406, - 132.0 - ], - "bbox": [ - 48.912574768066406, - 123.26010131835938, - 207.65591430664062, - 134.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 123.26010131835938, - 207.65591430664062, - 134.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "SXR activation ultimately control the", - "origin": [ - 48.912574768066406, - 143.0 - ], - "bbox": [ - 48.912574768066406, - 134.26010131835938, - 207.6617431640625, - 145.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 134.26010131835938, - 207.6617431640625, - 145.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "strength and duration of SXR response.", - "origin": [ - 48.912574768066406, - 154.0 - ], - "bbox": [ - 48.912574768066406, - 145.26010131835938, - 207.65672302246094, - 156.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 145.26010131835938, - 207.65672302246094, - 156.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "For example, the level of CYP3A expres-", - "origin": [ - 48.912574768066406, - 165.0 - ], - "bbox": [ - 48.912574768066406, - 156.26010131835938, - 207.6550750732422, - 167.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 156.26010131835938, - 207.6550750732422, - 167.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sion in response to a drug that is both an", - "origin": [ - 48.912574768066406, - 176.0 - ], - "bbox": [ - 48.912574768066406, - 167.26010131835938, - 207.65423583984375, - 178.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 167.26010131835938, - 207.65423583984375, - 178.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "SXR ligand and P-glycoprotein substrate is", - "origin": [ - 48.912574768066406, - 187.0 - ], - "bbox": [ - 48.912574768066406, - 178.26010131835938, - 207.6501007080078, - 189.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 178.26010131835938, - 207.6501007080078, - 189.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "determined by the cellular levels of the", - "origin": [ - 48.912574768066406, - 198.0 - ], - "bbox": [ - 48.912574768066406, - 189.26010131835938, - 207.66004943847656, - 200.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 189.26010131835938, - 207.66004943847656, - 200.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "MDR1", - "origin": [ - 48.912574768066406, - 209.0 - ], - "bbox": [ - 48.912574768066406, - 201.10670471191406, - 72.27043151855469, - 211.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " transporter", - "origin": [ - 72.27043151855469, - 209.0 - ], - "bbox": [ - 72.27043151855469, - 200.26010131835938, - 118.25908660888672, - 211.33230590820312 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "14", - "origin": [ - 118.16069793701172, - 205.67999267578125 - ], - "bbox": [ - 118.16069793701172, - 200.86778259277344, - 123.34855651855469, - 206.9641571044922 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". Concurrently, pacli-", - "origin": [ - 123.29630279541016, - 209.0 - ], - "bbox": [ - 123.29630279541016, - 200.26010131835938, - 207.65914916992188, - 211.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.912574768066406, - 200.26010131835938, - 207.65914916992188, - 211.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "taxel activation of SXR is reduced by re-", - "origin": [ - 48.913360595703125, - 220.0 - ], - "bbox": [ - 48.913360595703125, - 211.26010131835938, - 207.66000366210938, - 222.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.913360595703125, - 211.26010131835938, - 207.66000366210938, - 222.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "moval of parent compound by CYP3A4", - "origin": [ - 48.913360595703125, - 231.0 - ], - "bbox": [ - 48.913360595703125, - 222.26010131835938, - 207.65670776367188, - 233.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.913360595703125, - 222.26010131835938, - 207.65670776367188, - 233.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and CYP2C9 metabolism, along with P-", - "origin": [ - 48.913360595703125, - 242.0 - ], - "bbox": [ - 48.913360595703125, - 233.26010131835938, - 207.65504455566406, - 244.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.913360595703125, - 233.26010131835938, - 207.65504455566406, - 244.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "glycoprotein–mediated efflux. The ", - "origin": [ - 48.913360595703125, - 253.0 - ], - "bbox": [ - 48.913360595703125, - 244.26010131835938, - 180.4982452392578, - 255.33230590820312 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "yin", - "origin": [ - 180.19778442382812, - 253.0 - ], - "bbox": [ - 180.19778442382812, - 245.10670471191406, - 191.1986083984375, - 255.24099731445312 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and", - "origin": [ - 191.1986083984375, - 253.0 - ], - "bbox": [ - 191.1986083984375, - 244.26010131835938, - 207.65335083007812, - 255.33230590820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.913360595703125, - 244.26010131835938, - 207.65335083007812, - 255.33230590820312 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the ", - "origin": [ - 48.91419982910156, - 264.0 - ], - "bbox": [ - 48.91419982910156, - 255.26010131835938, - 63.61848068237305, - 266.3323059082031 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "yang", - "origin": [ - 63.28647994995117, - 264.0 - ], - "bbox": [ - 63.28647994995117, - 256.106689453125, - 80.03256225585938, - 266.2409973144531 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " of the opposing pathways remain", - "origin": [ - 80.03256225585938, - 264.0 - ], - "bbox": [ - 80.03256225585938, - 255.26010131835938, - 207.6434326171875, - 266.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 255.26010131835938, - 207.6434326171875, - 266.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "in a self-maintained balance. Further study", - "origin": [ - 48.91419982910156, - 275.0 - ], - "bbox": [ - 48.91419982910156, - 266.2601013183594, - 207.6666717529297, - 277.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 266.2601013183594, - 207.6666717529297, - 277.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of this elegant system for coordinating the", - "origin": [ - 48.91419982910156, - 286.0 - ], - "bbox": [ - 48.91419982910156, - 277.2601013183594, - 207.64678955078125, - 288.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 277.2601013183594, - 207.64678955078125, - 288.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "metabolism and excretion of compounds", - "origin": [ - 48.91419982910156, - 297.0 - ], - "bbox": [ - 48.91419982910156, - 288.2601013183594, - 207.6616973876953, - 299.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 288.2601013183594, - 207.6616973876953, - 299.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "could lead to the development of more ef-", - "origin": [ - 48.91419982910156, - 308.0 - ], - "bbox": [ - 48.91419982910156, - 299.2601013183594, - 207.6625213623047, - 310.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 299.2601013183594, - 207.6625213623047, - 310.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fective, less toxic drugs.", - "origin": [ - 48.91419982910156, - 319.0 - ], - "bbox": [ - 48.91419982910156, - 310.2601013183594, - 136.69334411621094, - 321.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91419982910156, - 310.2601013183594, - 136.69334411621094, - 321.3323059082031 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 218.99203491210938, - 58.7339973449707, - 377.7441101074219, - 315.67083740234375 - ], - "lines": [ - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "1.", - "origin": [ - 218.99209594726562, - 65.72149658203125 - ], - "bbox": [ - 218.99209594726562, - 58.7339973449707, - 224.62498474121094, - 67.66499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99209594726562, - 58.7339973449707, - 224.62498474121094, - 67.66499328613281 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Synold, T.W., Dussault, I. & Forman, B.M. The or-", - "origin": [ - 230.33848571777344, - 65.72149658203125 - ], - "bbox": [ - 230.33848571777344, - 58.7339973449707, - 377.7323303222656, - 67.66499328613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33848571777344, - 58.7339973449707, - 377.7323303222656, - 67.66499328613281 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "phan nuclear receptor SXR coordinately regulates", - "origin": [ - 230.3306884765625, - 73.7216796875 - ], - "bbox": [ - 230.3306884765625, - 66.73417663574219, - 377.7227478027344, - 75.66517639160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3306884765625, - 66.73417663574219, - 377.7227478027344, - 75.66517639160156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "drug metabolism and efflux. ", - "origin": [ - 230.3306884765625, - 81.72186279296875 - ], - "bbox": [ - 230.3306884765625, - 74.73435974121094, - 316.7072448730469, - 83.66535949707031 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Nature Med.", - "origin": [ - 317.4267883300781, - 81.72186279296875 - ], - "bbox": [ - 317.4267883300781, - 74.76686096191406, - 353.39776611328125, - 83.56786346435547 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 7", - "origin": [ - 353.39776611328125, - 81.72186279296875 - ], - "bbox": [ - 353.39776611328125, - 74.76686096191406, - 359.7450256347656, - 83.71736145019531 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 584-", - "origin": [ - 359.7820739746094, - 81.72186279296875 - ], - "bbox": [ - 359.7820739746094, - 74.73435974121094, - 377.7317810058594, - 83.66535949707031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3306884765625, - 74.73435974121094, - 377.7317810058594, - 83.71736145019531 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "590 (2001).", - "origin": [ - 230.33067321777344, - 89.7220458984375 - ], - "bbox": [ - 230.33067321777344, - 82.73454284667969, - 264.849609375, - 91.66554260253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33067321777344, - 82.73454284667969, - 264.849609375, - 91.66554260253906 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "2.", - "origin": [ - 218.9920654296875, - 97.72222900390625 - ], - "bbox": [ - 218.9920654296875, - 90.73472595214844, - 224.7738037109375, - 99.66572570800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9920654296875, - 90.73472595214844, - 224.7738037109375, - 99.66572570800781 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Schuetz, E.G., Beck, W.T. & Schuetz, J.D.", - "origin": [ - 230.3378143310547, - 97.72222900390625 - ], - "bbox": [ - 230.3378143310547, - 90.73472595214844, - 377.7252197265625, - 99.66572570800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3378143310547, - 90.73472595214844, - 377.7252197265625, - 99.66572570800781 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Modulators and substrates of P-glycoprotein and", - "origin": [ - 230.33065795898438, - 105.722412109375 - ], - "bbox": [ - 230.33065795898438, - 98.73490905761719, - 377.7409362792969, - 107.66590881347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33065795898438, - 98.73490905761719, - 377.7409362792969, - 107.66590881347656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "cytochrome P4503A coordinately up-regulate", - "origin": [ - 230.33065795898438, - 113.72259521484375 - ], - "bbox": [ - 230.33065795898438, - 106.73509216308594, - 377.7325744628906, - 115.66609191894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33065795898438, - 106.73509216308594, - 377.7325744628906, - 115.66609191894531 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "these proteins in human colon carcinoma cells.", - "origin": [ - 230.33065795898438, - 121.7227783203125 - ], - "bbox": [ - 230.33065795898438, - 114.73527526855469, - 377.7339172363281, - 123.66627502441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33065795898438, - 114.73527526855469, - 377.7339172363281, - 123.66627502441406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Mol. Pharmacol.", - "origin": [ - 230.33065795898438, - 129.72296142578125 - ], - "bbox": [ - 230.33065795898438, - 122.76795959472656, - 277.67669677734375, - 131.56895446777344 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 49", - "origin": [ - 277.67669677734375, - 129.72296142578125 - ], - "bbox": [ - 277.67669677734375, - 122.76795959472656, - 287.3388671875, - 131.7184600830078 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 311–318 (1996).", - "origin": [ - 287.5182800292969, - 129.72296142578125 - ], - "bbox": [ - 287.5182800292969, - 122.73545837402344, - 342.5705871582031, - 131.6664581298828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33065795898438, - 122.73545837402344, - 342.5705871582031, - 131.7184600830078 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "3.", - "origin": [ - 218.99203491210938, - 137.72314453125 - ], - "bbox": [ - 218.99203491210938, - 130.7356414794922, - 224.77442932128906, - 139.66664123535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99203491210938, - 130.7356414794922, - 224.77442932128906, - 139.66664123535156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Borcherding, S.M., Baciewicz, A.M. & Self, T.H.", - "origin": [ - 230.33843994140625, - 137.72314453125 - ], - "bbox": [ - 230.33843994140625, - 130.7356414794922, - 377.7441101074219, - 139.66664123535156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33843994140625, - 130.7356414794922, - 377.7441101074219, - 139.66664123535156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Update on rifampin drug interactions II. ", - "origin": [ - 230.33062744140625, - 145.72332763671875 - ], - "bbox": [ - 230.33062744140625, - 138.73582458496094, - 361.2536926269531, - 147.6668243408203 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Arch.", - "origin": [ - 362.90594482421875, - 145.72332763671875 - ], - "bbox": [ - 362.90594482421875, - 138.76832580566406, - 377.73504638671875, - 147.56932067871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33062744140625, - 138.73582458496094, - 377.73504638671875, - 147.6668243408203 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Intern. Med.", - "origin": [ - 230.3306427001953, - 153.7235107421875 - ], - "bbox": [ - 230.3306427001953, - 146.7685089111328, - 266.0339050292969, - 155.5695037841797 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 152", - "origin": [ - 266.0339050292969, - 153.7235107421875 - ], - "bbox": [ - 266.0339050292969, - 146.7685089111328, - 279.60711669921875, - 155.71900939941406 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 711–716 (1992).", - "origin": [ - 279.787841796875, - 153.7235107421875 - ], - "bbox": [ - 279.787841796875, - 146.7360076904297, - 334.84014892578125, - 155.66700744628906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3306427001953, - 146.7360076904297, - 334.84014892578125, - 155.71900939941406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "4.", - "origin": [ - 218.99203491210938, - 161.72369384765625 - ], - "bbox": [ - 218.99203491210938, - 154.73619079589844, - 224.77313232421875, - 163.6671905517578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99203491210938, - 154.73619079589844, - 224.77313232421875, - 163.6671905517578 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Relling, M.V. ", - "origin": [ - 230.33712768554688, - 161.72369384765625 - ], - "bbox": [ - 230.33712768554688, - 154.73619079589844, - 271.5484313964844, - 163.6671905517578 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 272.1165466308594, - 161.72369384765625 - ], - "bbox": [ - 272.1165466308594, - 154.76869201660156, - 285.1646423339844, - 163.56968688964844 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". Adverse effect of anticonvul-", - "origin": [ - 285.3537902832031, - 161.72369384765625 - ], - "bbox": [ - 285.3537902832031, - 154.73619079589844, - 377.7357482910156, - 163.6671905517578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33712768554688, - 154.73619079589844, - 377.7357482910156, - 163.6671905517578 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "sants on efficacy of chemotherapy for acute lym-", - "origin": [ - 230.3306427001953, - 169.723876953125 - ], - "bbox": [ - 230.3306427001953, - 162.7363739013672, - 377.7208251953125, - 171.66737365722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3306427001953, - 162.7363739013672, - 377.7208251953125, - 171.66737365722656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "phoblastic leukaemia. ", - "origin": [ - 230.3306427001953, - 177.72406005859375 - ], - "bbox": [ - 230.3306427001953, - 170.73655700683594, - 302.0744934082031, - 179.6675567626953 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Lancet", - "origin": [ - 306.1765441894531, - 177.72406005859375 - ], - "bbox": [ - 306.1765441894531, - 170.76905822753906, - 325.0525207519531, - 179.57005310058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3306427001953, - 170.73655700683594, - 325.0525207519531, - 179.6675567626953 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "356", - "origin": [ - 331.2054443359375, - 177.72406005859375 - ], - "bbox": [ - 331.2054443359375, - 170.76905822753906, - 342.7702331542969, - 179.7195587158203 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 285–290", - "origin": [ - 342.95745849609375, - 177.72406005859375 - ], - "bbox": [ - 342.95745849609375, - 170.73655700683594, - 377.7304992675781, - 179.6675567626953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 331.2054443359375, - 170.73655700683594, - 377.7304992675781, - 179.7195587158203 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "(2000).", - "origin": [ - 230.33065795898438, - 185.7242431640625 - ], - "bbox": [ - 230.33065795898438, - 178.7367401123047, - 252.76475524902344, - 187.66773986816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33065795898438, - 178.7367401123047, - 252.76475524902344, - 187.66773986816406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "5.", - "origin": [ - 218.9920654296875, - 193.72442626953125 - ], - "bbox": [ - 218.9920654296875, - 186.73692321777344, - 224.77316284179688, - 195.6679229736328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9920654296875, - 186.73692321777344, - 224.77316284179688, - 195.6679229736328 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Lehmann, J.M.", - "origin": [ - 230.337158203125, - 193.72442626953125 - ], - "bbox": [ - 230.337158203125, - 186.73692321777344, - 274.8771667480469, - 195.6679229736328 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": " et al", - "origin": [ - 274.8771667480469, - 193.72442626953125 - ], - "bbox": [ - 274.8771667480469, - 186.76942443847656, - 290.07867431640625, - 195.57041931152344 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". The human orphan nuclear", - "origin": [ - 290.267822265625, - 193.72442626953125 - ], - "bbox": [ - 290.267822265625, - 186.73692321777344, - 377.73321533203125, - 195.6679229736328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.337158203125, - 186.73692321777344, - 377.73321533203125, - 195.6679229736328 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "receptor PXR is activated by compounds that", - "origin": [ - 230.33132934570312, - 201.724609375 - ], - "bbox": [ - 230.33132934570312, - 194.7371063232422, - 377.7318420410156, - 203.66810607910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33132934570312, - 194.7371063232422, - 377.7318420410156, - 203.66810607910156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "regulate CYP3A4 gene expression and cause", - "origin": [ - 230.33132934570312, - 209.72479248046875 - ], - "bbox": [ - 230.33132934570312, - 202.73728942871094, - 377.7351989746094, - 211.6682891845703 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33132934570312, - 202.73728942871094, - 377.7351989746094, - 211.6682891845703 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "drug interactions. ", - "origin": [ - 230.33132934570312, - 217.7249755859375 - ], - "bbox": [ - 230.33132934570312, - 210.7374725341797, - 285.8516845703125, - 219.66847229003906 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "J. Clin. Invest.", - "origin": [ - 285.6742858886719, - 217.7249755859375 - ], - "bbox": [ - 285.6742858886719, - 210.7699737548828, - 325.0500183105469, - 219.5709686279297 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 102", - "origin": [ - 325.0500183105469, - 217.7249755859375 - ], - "bbox": [ - 325.0500183105469, - 210.7699737548828, - 338.46075439453125, - 219.72047424316406 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 1–8 (1998).", - "origin": [ - 338.6414794921875, - 217.7249755859375 - ], - "bbox": [ - 338.6414794921875, - 210.7374725341797, - 377.728515625, - 219.66847229003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33132934570312, - 210.7374725341797, - 377.728515625, - 219.72047424316406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "6.", - "origin": [ - 218.99273681640625, - 225.72515869140625 - ], - "bbox": [ - 218.99273681640625, - 218.73765563964844, - 224.77383422851562, - 227.6686553955078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99273681640625, - 218.73765563964844, - 224.77383422851562, - 227.6686553955078 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Blumberg, B. ", - "origin": [ - 230.33782958984375, - 225.72515869140625 - ], - "bbox": [ - 230.33782958984375, - 218.73765563964844, - 273.69024658203125, - 227.6686553955078 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 275.7331848144531, - 225.72515869140625 - ], - "bbox": [ - 275.7331848144531, - 218.77015686035156, - 290.2093200683594, - 227.57115173339844 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". SXR, a novel steroid and", - "origin": [ - 290.39849853515625, - 225.72515869140625 - ], - "bbox": [ - 290.39849853515625, - 218.73765563964844, - 377.73577880859375, - 227.6686553955078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33782958984375, - 218.73765563964844, - 377.73577880859375, - 227.6686553955078 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "xenobiotic sensing nuclear receptor. ", - "origin": [ - 230.3313446044922, - 233.725341796875 - ], - "bbox": [ - 230.3313446044922, - 226.7378387451172, - 344.2284240722656, - 235.66883850097656 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Genes Dev.", - "origin": [ - 344.8048095703125, - 233.725341796875 - ], - "bbox": [ - 344.8048095703125, - 226.7703399658203, - 377.7357482910156, - 235.5713348388672 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.3313446044922, - 226.7378387451172, - 377.7357482910156, - 235.66883850097656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "12", - "origin": [ - 230.33135986328125, - 241.72552490234375 - ], - "bbox": [ - 230.33135986328125, - 234.77052307128906, - 237.97210693359375, - 243.7210235595703 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 3195–3205 (1998).", - "origin": [ - 238.15086364746094, - 241.72552490234375 - ], - "bbox": [ - 238.15086364746094, - 234.73802185058594, - 301.033203125, - 243.6690216064453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33135986328125, - 234.73802185058594, - 301.033203125, - 243.7210235595703 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "7.", - "origin": [ - 218.99276733398438, - 249.7257080078125 - ], - "bbox": [ - 218.99276733398438, - 242.7382049560547, - 224.76800537109375, - 251.66920471191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99276733398438, - 242.7382049560547, - 224.76800537109375, - 251.66920471191406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Staudinger, J.L. ", - "origin": [ - 230.33265686035156, - 249.7257080078125 - ], - "bbox": [ - 230.33265686035156, - 242.7382049560547, - 278.48138427734375, - 251.66920471191406 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 278.4937744140625, - 249.7257080078125 - ], - "bbox": [ - 278.4937744140625, - 242.7707061767578, - 290.995849609375, - 251.5717010498047 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". The nuclear receptor PXR is", - "origin": [ - 291.1752624511719, - 249.7257080078125 - ], - "bbox": [ - 291.1752624511719, - 242.7382049560547, - 377.70916748046875, - 251.66920471191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33265686035156, - 242.7382049560547, - 377.70916748046875, - 251.66920471191406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "a lithocholic acid sensor that protects against", - "origin": [ - 230.33135986328125, - 257.72589111328125 - ], - "bbox": [ - 230.33135986328125, - 250.73838806152344, - 377.730712890625, - 259.6694030761719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33135986328125, - 250.73838806152344, - 377.730712890625, - 259.6694030761719 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "liver toxicity. ", - "origin": [ - 230.33135986328125, - 265.72607421875 - ], - "bbox": [ - 230.33135986328125, - 258.73858642578125, - 274.33966064453125, - 267.6695861816406 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Proc. Natl. Acad. Sci. USA", - "origin": [ - 277.28802490234375, - 265.72607421875 - ], - "bbox": [ - 277.28802490234375, - 258.7710876464844, - 363.0397644042969, - 267.57208251953125 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 98", - "origin": [ - 363.0397644042969, - 265.72607421875 - ], - "bbox": [ - 363.0397644042969, - 258.7710876464844, - 375.6817626953125, - 267.7215881347656 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ",", - "origin": [ - 375.8683166503906, - 265.72607421875 - ], - "bbox": [ - 375.8683166503906, - 258.73858642578125, - 377.73382568359375, - 267.6695861816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33135986328125, - 258.73858642578125, - 377.73382568359375, - 267.7215881347656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "3369–3374 (2001).", - "origin": [ - 230.33071899414062, - 273.72625732421875 - ], - "bbox": [ - 230.33071899414062, - 266.73876953125, - 289.3221435546875, - 275.6697692871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33071899414062, - 266.73876953125, - 289.3221435546875, - 275.6697692871094 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "8.", - "origin": [ - 218.99212646484375, - 281.7264709472656 - ], - "bbox": [ - 218.99212646484375, - 274.7389831542969, - 224.77386474609375, - 283.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99212646484375, - 274.7389831542969, - 224.77386474609375, - 283.66998291015625 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Schuetz, E.G., Brimer, C. & Schuetz, J.D.", - "origin": [ - 230.33787536621094, - 281.7264709472656 - ], - "bbox": [ - 230.33787536621094, - 274.7389831542969, - 377.7253112792969, - 283.66998291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33787536621094, - 274.7389831542969, - 377.7253112792969, - 283.66998291015625 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Environmental xenobiotics and the antihor-", - "origin": [ - 230.33071899414062, - 289.7266845703125 - ], - "bbox": [ - 230.33071899414062, - 282.73919677734375, - 377.7046813964844, - 291.6701965332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33071899414062, - 282.73919677734375, - 377.7046813964844, - 291.6701965332031 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "mones cyproterone acetate and spironolactone", - "origin": [ - 230.33071899414062, - 297.7268981933594 - ], - "bbox": [ - 230.33071899414062, - 290.7394104003906, - 377.7006530761719, - 299.67041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33071899414062, - 290.7394104003906, - 377.7006530761719, - 299.67041015625 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "utilize the nuclear hormone receptor PXR to acti-", - "origin": [ - 230.33071899414062, - 305.72711181640625 - ], - "bbox": [ - 230.33071899414062, - 298.7396240234375, - 377.7207336425781, - 307.6706237792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33071899414062, - 298.7396240234375, - 377.7207336425781, - 307.6706237792969 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "vate the cytochrome P4503A23 hormone re-", - "origin": [ - 230.33071899414062, - 313.7273254394531 - ], - "bbox": [ - 230.33071899414062, - 306.7398376464844, - 377.73065185546875, - 315.67083740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 230.33071899414062, - 306.7398376464844, - 377.73065185546875, - 315.67083740234375 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 389.0711364746094, - 58.7401008605957, - 547.8169555664062, - 251.72731018066406 - ], - "lines": [ - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "sponse element. ", - "origin": [ - 400.40972900390625, - 65.72760009765625 - ], - "bbox": [ - 400.40972900390625, - 58.7401008605957, - 451.6960754394531, - 67.67109680175781 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Mol. Pharmacol.", - "origin": [ - 451.7857360839844, - 65.72760009765625 - ], - "bbox": [ - 451.7857360839844, - 58.77259826660156, - 499.2818603515625, - 67.57360076904297 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 54", - "origin": [ - 499.2818603515625, - 65.72760009765625 - ], - "bbox": [ - 499.2818603515625, - 58.77259826660156, - 509.06695556640625, - 67.72309875488281 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 1113–1117", - "origin": [ - 509.2496337890625, - 65.72760009765625 - ], - "bbox": [ - 509.2496337890625, - 58.7401008605957, - 547.8097534179688, - 67.67109680175781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.40972900390625, - 58.7401008605957, - 547.8097534179688, - 67.72309875488281 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "(1998).", - "origin": [ - 400.40972900390625, - 73.727783203125 - ], - "bbox": [ - 400.40972900390625, - 66.74028015136719, - 422.8437805175781, - 75.67127990722656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.40972900390625, - 66.74028015136719, - 422.8437805175781, - 75.67127990722656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "9.", - "origin": [ - 389.0711364746094, - 81.72796630859375 - ], - "bbox": [ - 389.0711364746094, - 74.74046325683594, - 394.8457336425781, - 83.67146301269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 74.74046325683594, - 394.8457336425781, - 83.67146301269531 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Moore, L.B. ", - "origin": [ - 400.40972900390625, - 81.72796630859375 - ], - "bbox": [ - 400.40972900390625, - 74.74046325683594, - 437.4747009277344, - 83.67146301269531 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 437.5396728515625, - 81.72796630859375 - ], - "bbox": [ - 437.5396728515625, - 74.77296447753906, - 450.0840148925781, - 83.57396697998047 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". St. John’s wort induces hepatic", - "origin": [ - 450.261474609375, - 81.72796630859375 - ], - "bbox": [ - 450.261474609375, - 74.74046325683594, - 547.8023681640625, - 83.67146301269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.40972900390625, - 74.74046325683594, - 547.8023681640625, - 83.67146301269531 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "drug metabolism through activation of the preg-", - "origin": [ - 400.40972900390625, - 89.7281494140625 - ], - "bbox": [ - 400.40972900390625, - 82.74064636230469, - 547.79443359375, - 91.67164611816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.40972900390625, - 82.74064636230469, - 547.79443359375, - 91.67164611816406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "nane X receptor. ", - "origin": [ - 400.40972900390625, - 97.72833251953125 - ], - "bbox": [ - 400.40972900390625, - 90.74082946777344, - 455.15277099609375, - 99.67182922363281 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Proc. Natl. Acad. Sci. USA", - "origin": [ - 456.2765808105469, - 97.72833251953125 - ], - "bbox": [ - 456.2765808105469, - 90.77333068847656, - 534.9486694335938, - 99.57433319091797 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 97", - "origin": [ - 534.9486694335938, - 97.72833251953125 - ], - "bbox": [ - 534.9486694335938, - 90.77333068847656, - 545.7608032226562, - 99.72383117675781 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ",", - "origin": [ - 545.9473876953125, - 97.72833251953125 - ], - "bbox": [ - 545.9473876953125, - 90.74082946777344, - 547.8128662109375, - 99.67182922363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.40972900390625, - 90.74082946777344, - 547.8128662109375, - 99.72383117675781 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "7500–7502 (2000).", - "origin": [ - 400.4097900390625, - 105.728515625 - ], - "bbox": [ - 400.4097900390625, - 98.74101257324219, - 459.4012756347656, - 107.67201232910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4097900390625, - 98.74101257324219, - 459.4012756347656, - 107.67201232910156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "10. Kostrubsky, V.E. ", - "origin": [ - 389.0711975097656, - 113.72869873046875 - ], - "bbox": [ - 389.0711975097656, - 106.74119567871094, - 454.2154541015625, - 115.67219543457031 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 457.7944030761719, - 113.72869873046875 - ], - "bbox": [ - 457.7944030761719, - 106.77369689941406, - 473.760986328125, - 115.57469940185547 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". The Use of Human", - "origin": [ - 473.9494934082031, - 113.72869873046875 - ], - "bbox": [ - 473.9494934082031, - 106.74119567871094, - 547.8115844726562, - 115.67219543457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711975097656, - 106.74119567871094, - 547.8115844726562, - 115.67219543457031 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Hepatocytes to Study Induction of Cytochrome", - "origin": [ - 400.4091491699219, - 121.7288818359375 - ], - "bbox": [ - 400.4091491699219, - 114.74137878417969, - 547.808349609375, - 123.67237854003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4091491699219, - 114.74137878417969, - 547.808349609375, - 123.67237854003906 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "P-450. ", - "origin": [ - 400.4091491699219, - 129.72906494140625 - ], - "bbox": [ - 400.4091491699219, - 122.74156188964844, - 422.1035461425781, - 131.6725616455078 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Drug Metab. Dispos", - "origin": [ - 422.2556457519531, - 129.72906494140625 - ], - "bbox": [ - 422.2556457519531, - 122.77406311035156, - 480.22125244140625, - 131.57505798339844 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". ", - "origin": [ - 480.4007568359375, - 129.72906494140625 - ], - "bbox": [ - 480.4007568359375, - 122.74156188964844, - 484.3163757324219, - 131.6725616455078 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "27", - "origin": [ - 484.4697570800781, - 129.72906494140625 - ], - "bbox": [ - 484.4697570800781, - 122.77406311035156, - 492.1176452636719, - 131.7245635986328 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 887–894 (1999).", - "origin": [ - 492.30419921875, - 129.72906494140625 - ], - "bbox": [ - 492.30419921875, - 122.74156188964844, - 547.81005859375, - 131.6725616455078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4091491699219, - 122.74156188964844, - 547.81005859375, - 131.7245635986328 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "11. Sonnichsen, D.S.", - "origin": [ - 389.0711975097656, - 137.729248046875 - ], - "bbox": [ - 389.0711975097656, - 130.7417449951172, - 452.3207092285156, - 139.67274475097656 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": " et al", - "origin": [ - 452.3207092285156, - 137.729248046875 - ], - "bbox": [ - 452.3207092285156, - 130.7742462158203, - 468.52392578125, - 139.5752410888672 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". Variability in human cy-", - "origin": [ - 468.7124328613281, - 137.729248046875 - ], - "bbox": [ - 468.7124328613281, - 130.7417449951172, - 547.816162109375, - 139.67274475097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711975097656, - 130.7417449951172, - 547.816162109375, - 139.67274475097656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "tochrome ", - "origin": [ - 400.4097900390625, - 145.72943115234375 - ], - "bbox": [ - 400.4097900390625, - 138.74192810058594, - 431.75152587890625, - 147.6729278564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4097900390625, - 138.74192810058594, - 431.75152587890625, - 147.6729278564453 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "P450 ", - "origin": [ - 437.95770263671875, - 145.72943115234375 - ], - "bbox": [ - 437.95770263671875, - 138.74192810058594, - 455.25030517578125, - 147.6729278564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 437.95770263671875, - 138.74192810058594, - 455.25030517578125, - 147.6729278564453 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "paclitaxel ", - "origin": [ - 461.45648193359375, - 145.72943115234375 - ], - "bbox": [ - 461.45648193359375, - 138.74192810058594, - 492.2405700683594, - 147.6729278564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.45648193359375, - 138.74192810058594, - 492.2405700683594, - 147.6729278564453 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "metabolism. ", - "origin": [ - 498.4467468261719, - 145.72943115234375 - ], - "bbox": [ - 498.4467468261719, - 138.74192810058594, - 537.84716796875, - 147.6729278564453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 498.4467468261719, - 138.74192810058594, - 537.84716796875, - 147.6729278564453 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "J.", - "origin": [ - 544.0513305664062, - 145.72943115234375 - ], - "bbox": [ - 544.0513305664062, - 138.77442932128906, - 547.812255859375, - 147.57542419433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 544.0513305664062, - 138.77442932128906, - 547.812255859375, - 147.57542419433594 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Pharmacol. Exp. Ther.", - "origin": [ - 400.4097900390625, - 153.7296142578125 - ], - "bbox": [ - 400.4097900390625, - 146.7746124267578, - 463.530029296875, - 155.5756072998047 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 275", - "origin": [ - 463.530029296875, - 153.7296142578125 - ], - "bbox": [ - 463.530029296875, - 146.7746124267578, - 477.1019592285156, - 155.72511291503906 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 566–575 (1995).", - "origin": [ - 477.2826843261719, - 153.7296142578125 - ], - "bbox": [ - 477.2826843261719, - 146.7421112060547, - 532.3351440429688, - 155.67311096191406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4097900390625, - 146.7421112060547, - 532.3351440429688, - 155.72511291503906 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "12. Sparreboom, A. ", - "origin": [ - 389.0711669921875, - 161.72979736328125 - ], - "bbox": [ - 389.0711669921875, - 154.74229431152344, - 450.01190185546875, - 163.6732940673828 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "et al", - "origin": [ - 450.3083190917969, - 161.72979736328125 - ], - "bbox": [ - 450.3083190917969, - 154.77479553222656, - 463.09576416015625, - 163.57579040527344 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". Limited oral bioavailability", - "origin": [ - 463.284912109375, - 161.72979736328125 - ], - "bbox": [ - 463.284912109375, - 154.74229431152344, - 547.8150024414062, - 163.6732940673828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711669921875, - 154.74229431152344, - 547.8150024414062, - 163.6732940673828 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "and active epithelial excretion of paclitaxel", - "origin": [ - 400.410400390625, - 169.72998046875 - ], - "bbox": [ - 400.410400390625, - 162.7424774169922, - 547.8169555664062, - 171.67347717285156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 162.7424774169922, - 547.8169555664062, - 171.67347717285156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "(Taxol) caused by P-glycoprotein in the intestine.", - "origin": [ - 400.410400390625, - 177.73016357421875 - ], - "bbox": [ - 400.410400390625, - 170.74266052246094, - 547.80029296875, - 179.6736602783203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 170.74266052246094, - 547.80029296875, - 179.6736602783203 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Proc. Natl. Acad. Sci. USA", - "origin": [ - 400.410400390625, - 185.7303466796875 - ], - "bbox": [ - 400.410400390625, - 178.7753448486328, - 474.82635498046875, - 187.5763397216797 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 94", - "origin": [ - 474.82635498046875, - 185.7303466796875 - ], - "bbox": [ - 474.82635498046875, - 178.7753448486328, - 484.5782470703125, - 187.72584533691406 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 2031–2035 (1997).", - "origin": [ - 484.7576599121094, - 185.7303466796875 - ], - "bbox": [ - 484.7576599121094, - 178.7428436279297, - 547.8025512695312, - 187.67384338378906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 178.7428436279297, - 547.8025512695312, - 187.72584533691406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "13. Wandel, C.", - "origin": [ - 389.0718078613281, - 193.73052978515625 - ], - "bbox": [ - 389.0718078613281, - 186.74302673339844, - 433.6761169433594, - 195.6740264892578 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": " et al", - "origin": [ - 433.6761169433594, - 193.73052978515625 - ], - "bbox": [ - 433.6761169433594, - 186.77552795410156, - 448.17498779296875, - 195.57652282714844 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ". P-glycoprotein and cytochrome", - "origin": [ - 448.3524475097656, - 193.73052978515625 - ], - "bbox": [ - 448.3524475097656, - 186.74302673339844, - 547.7998046875, - 195.6740264892578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0718078613281, - 186.74302673339844, - 547.7998046875, - 195.6740264892578 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "P-4503A Inhibition: dissociation of inhibitory po-", - "origin": [ - 400.410400390625, - 201.730712890625 - ], - "bbox": [ - 400.410400390625, - 194.7432098388672, - 547.7952270507812, - 203.67420959472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 194.7432098388672, - 547.7952270507812, - 203.67420959472656 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "tencies. ", - "origin": [ - 400.410400390625, - 209.73089599609375 - ], - "bbox": [ - 400.410400390625, - 202.74339294433594, - 425.4042053222656, - 211.6743927001953 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Cancer Res.", - "origin": [ - 425.38665771484375, - 209.73089599609375 - ], - "bbox": [ - 425.38665771484375, - 202.77589416503906, - 458.6497802734375, - 211.57688903808594 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 59", - "origin": [ - 458.6497802734375, - 209.73089599609375 - ], - "bbox": [ - 458.6497802734375, - 202.77589416503906, - 468.3139343261719, - 211.7263946533203 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 3944–3948 (1999).", - "origin": [ - 468.49334716796875, - 209.73089599609375 - ], - "bbox": [ - 468.49334716796875, - 202.74339294433594, - 531.3639526367188, - 211.6743927001953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 202.74339294433594, - 531.3639526367188, - 211.7263946533203 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "14. Schuetz, E.G., Schinkel, A.H., Relling, M.V. &", - "origin": [ - 389.07177734375, - 217.7310791015625 - ], - "bbox": [ - 389.07177734375, - 210.7435760498047, - 547.8118896484375, - 219.67457580566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07177734375, - 210.7435760498047, - 547.8118896484375, - 219.67457580566406 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "Schuetz, J.D. P-glycoprotein: a major determi-", - "origin": [ - 400.4103698730469, - 225.73126220703125 - ], - "bbox": [ - 400.4103698730469, - 218.74375915527344, - 547.7881469726562, - 227.6747589111328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4103698730469, - 218.74375915527344, - 547.7881469726562, - 227.6747589111328 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "nant of rifampicin-inducible expression of cy-", - "origin": [ - 400.4103698730469, - 233.7314453125 - ], - "bbox": [ - 400.4103698730469, - 226.7439422607422, - 547.7880249023438, - 235.67494201660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4103698730469, - 226.7439422607422, - 547.7880249023438, - 235.67494201660156 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "tochrome P4503A in mice and humans. ", - "origin": [ - 400.4103698730469, - 241.73162841796875 - ], - "bbox": [ - 400.4103698730469, - 234.74412536621094, - 531.6941528320312, - 243.6751251220703 - ] - }, - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Proc.", - "origin": [ - 533.5856323242188, - 241.73162841796875 - ], - "bbox": [ - 533.5856323242188, - 234.77662658691406, - 547.8141479492188, - 243.57762145996094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.4103698730469, - 234.74412536621094, - 547.8141479492188, - 243.6751251220703 - ] - }, - { - "spans": [ - { - "size": 6.5, - "flags": 2, - "font": "StoneSans-Italic", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.2840000092983246, - "text": "Natl. Acad. Sci. USA", - "origin": [ - 400.410400390625, - 249.7318115234375 - ], - "bbox": [ - 400.410400390625, - 242.7768096923828, - 458.317626953125, - 251.5778045654297 - ] - }, - { - "size": 6.5, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " 93", - "origin": [ - 458.317626953125, - 249.7318115234375 - ], - "bbox": [ - 458.317626953125, - 242.7768096923828, - 467.9837341308594, - 251.72731018066406 - ] - }, - { - "size": 6.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": ", 4001–4005 (1996).", - "origin": [ - 468.16314697265625, - 249.7318115234375 - ], - "bbox": [ - 468.16314697265625, - 242.7443084716797, - 531.0337524414062, - 251.67530822753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.410400390625, - 242.7443084716797, - 531.0337524414062, - 251.72731018066406 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 389.0708923339844, - 267.86749267578125, - 517.5281982421875, - 288.0252380371094 - ], - "lines": [ - { - "spans": [ - { - "size": 4.130000114440918, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "1", - "origin": [ - 389.0708923339844, - 272.0 - ], - "bbox": [ - 389.0708923339844, - 268.0723571777344, - 391.4414978027344, - 273.1151123046875 - ] - }, - { - "size": 7.5, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "St. Jude Children’s Research Hospital", - "origin": [ - 391.55218505859375, - 275.0 - ], - "bbox": [ - 391.55218505859375, - 267.86749267578125, - 517.5281982421875, - 277.0249938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0708923339844, - 267.86749267578125, - 517.5281982421875, - 277.0249938964844 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Memphis, Tennessee, USA", - "origin": [ - 389.0711975097656, - 286.000244140625 - ], - "bbox": [ - 389.0711975097656, - 278.86773681640625, - 477.8186950683594, - 288.0252380371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711975097656, - 278.86773681640625, - 477.8186950683594, - 288.0252380371094 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 389.0708923339844, - 289.86749267578125, - 493.24176025390625, - 321.0254821777344 - ], - "lines": [ - { - "spans": [ - { - "size": 4.130000114440918, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "2", - "origin": [ - 389.0708923339844, - 294.0 - ], - "bbox": [ - 389.0708923339844, - 290.0723571777344, - 391.4414978027344, - 295.1151123046875 - ] - }, - { - "size": 7.5, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "University of Pittsburgh", - "origin": [ - 391.55218505859375, - 297.0 - ], - "bbox": [ - 391.55218505859375, - 289.86749267578125, - 472.0602111816406, - 299.0249938964844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0708923339844, - 289.86749267578125, - 472.0602111816406, - 299.0249938964844 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Pittsburgh, Pennsylvania, USA", - "origin": [ - 389.0711975097656, - 308.000244140625 - ], - "bbox": [ - 389.0711975097656, - 300.86773681640625, - 493.24176025390625, - 310.0252380371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711975097656, - 300.86773681640625, - 493.24176025390625, - 310.0252380371094 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "Email: strom@pitt.edu", - "origin": [ - 389.0711975097656, - 319.00048828125 - ], - "bbox": [ - 389.0711975097656, - 311.86798095703125, - 465.125732421875, - 321.0254821777344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711975097656, - 311.86798095703125, - 465.125732421875, - 321.0254821777344 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 47.56480026245117, - 403.21075439453125, - 207.65908813476562, - 574.3322143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 23.989999771118164, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "R", - "origin": [ - 47.56480026245117, - 429.0 - ], - "bbox": [ - 47.56480026245117, - 403.21075439453125, - 60.90324020385742, - 436.1730041503906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 47.56480026245117, - 403.21075439453125, - 60.90324020385742, - 436.1730041503906 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "heumatoid arthritis (RA)", - "origin": [ - 62.78839874267578, - 418.0 - ], - "bbox": [ - 62.78839874267578, - 409.0775146484375, - 157.63082885742188, - 420.481689453125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " is the most", - "origin": [ - 157.63082885742188, - 418.0 - ], - "bbox": [ - 157.63082885742188, - 409.2601013183594, - 207.65493774414062, - 420.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 62.78839874267578, - 409.0775146484375, - 207.65493774414062, - 420.481689453125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "common inflammatory arthritis, af-", - "origin": [ - 62.78839874267578, - 429.0 - ], - "bbox": [ - 62.78839874267578, - 420.2601013183594, - 207.65908813476562, - 431.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 62.78839874267578, - 420.2601013183594, - 207.65908813476562, - 431.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "fecting about 1% of adults", - "origin": [ - 48.91328811645508, - 440.0 - ], - "bbox": [ - 48.91328811645508, - 431.2601013183594, - 154.34652709960938, - 442.3323059082031 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "1", - "origin": [ - 154.57470703125, - 436.67999267578125 - ], - "bbox": [ - 154.57470703125, - 431.8677978515625, - 157.19789123535156, - 437.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". The disease", - "origin": [ - 157.32069396972656, - 440.0 - ], - "bbox": [ - 157.32069396972656, - 431.2601013183594, - 207.65188598632812, - 442.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91328811645508, - 431.2601013183594, - 207.65188598632812, - 442.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "is usually marked by synovial inflam-", - "origin": [ - 48.91355895996094, - 451.0 - ], - "bbox": [ - 48.91355895996094, - 442.2601013183594, - 207.64280700683594, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 442.2601013183594, - 207.64280700683594, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mation and hyperplasia in the small", - "origin": [ - 48.91355895996094, - 462.0 - ], - "bbox": [ - 48.91355895996094, - 453.2601013183594, - 207.64280700683594, - 464.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 453.2601013183594, - 207.64280700683594, - 464.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "joints of the hands and feet, although", - "origin": [ - 48.91355895996094, - 473.0 - ], - "bbox": [ - 48.91355895996094, - 464.2601013183594, - 207.63363647460938, - 475.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 464.2601013183594, - 207.63363647460938, - 475.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "larger joints are frequently affected.", - "origin": [ - 48.91355895996094, - 484.0 - ], - "bbox": [ - 48.91355895996094, - 475.2601013183594, - 207.64027404785156, - 486.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 475.2601013183594, - 207.64027404785156, - 486.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Treatment of RA, though greatly im-", - "origin": [ - 48.91355895996094, - 495.0 - ], - "bbox": [ - 48.91355895996094, - 486.2601013183594, - 207.6427764892578, - 497.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 486.2601013183594, - 207.6427764892578, - 497.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "proved in the last decade, remains an", - "origin": [ - 48.91355895996094, - 506.0 - ], - "bbox": [ - 48.91355895996094, - 497.2601013183594, - 207.64276123046875, - 508.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 497.2601013183594, - 207.64276123046875, - 508.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "unmet medical need. Even with the ad-", - "origin": [ - 48.91355895996094, - 517.0 - ], - "bbox": [ - 48.91355895996094, - 508.2601013183594, - 207.6511688232422, - 519.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 508.2601013183594, - 207.6511688232422, - 519.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "vent of novel therapeutics like in-", - "origin": [ - 48.91355895996094, - 528.0 - ], - "bbox": [ - 48.91355895996094, - 519.2600708007812, - 207.6427764892578, - 530.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 519.2600708007812, - 207.6427764892578, - 530.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "hibitors ", - "origin": [ - 48.91355895996094, - 539.0 - ], - "bbox": [ - 48.91355895996094, - 530.2600708007812, - 83.22576904296875, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 530.2600708007812, - 83.22576904296875, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "of ", - "origin": [ - 91.84365844726562, - 539.0 - ], - "bbox": [ - 91.84365844726562, - 530.2600708007812, - 102.49256134033203, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 91.84365844726562, - 530.2600708007812, - 102.49256134033203, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "TNF-", - "origin": [ - 111.1104507446289, - 539.0 - ], - "bbox": [ - 111.1104507446289, - 530.2600708007812, - 130.57810974121094, - 541.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 0, - "font": "Symbol", - "color": 0, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "α", - "origin": [ - 130.8196258544922, - 539.0 - ], - "bbox": [ - 130.8196258544922, - 530.6170043945312, - 136.0569305419922, - 541.431884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.1104507446289, - 530.2600708007812, - 136.0569305419922, - 541.431884765625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and ", - "origin": [ - 147.26358032226562, - 539.0 - ], - "bbox": [ - 147.26358032226562, - 530.2600708007812, - 165.05462646484375, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 147.26358032226562, - 530.2600708007812, - 165.05462646484375, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "IL-1, ", - "origin": [ - 173.67251586914062, - 539.0 - ], - "bbox": [ - 173.67251586914062, - 530.2600708007812, - 194.8084716796875, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.67251586914062, - 530.2600708007812, - 194.8084716796875, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "a", - "origin": [ - 203.42636108398438, - 539.0 - ], - "bbox": [ - 203.42636108398438, - 530.2600708007812, - 207.65106201171875, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 203.42636108398438, - 530.2600708007812, - 207.65106201171875, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "significant percentage of patients con-", - "origin": [ - 48.91355895996094, - 550.0 - ], - "bbox": [ - 48.91355895996094, - 541.2600708007812, - 207.63446044921875, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 541.2600708007812, - 207.63446044921875, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tinue to exhibit signs and symptoms of", - "origin": [ - 48.91355895996094, - 560.9999389648438 - ], - "bbox": [ - 48.91355895996094, - 552.260009765625, - 207.64944458007812, - 563.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 552.260009765625, - 207.64944458007812, - 563.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "synovitis. In this issue, Delgado ", - "origin": [ - 48.91355895996094, - 571.9999389648438 - ], - "bbox": [ - 48.91355895996094, - 563.260009765625, - 183.99440002441406, - 574.3322143554688 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al.", - "origin": [ - 184.92898559570312, - 571.9999389648438 - ], - "bbox": [ - 184.92898559570312, - 564.1066284179688, - 204.79917907714844, - 574.240966796875 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 205.0330047607422, - 568.6799926757812 - ], - "bbox": [ - 205.0330047607422, - 563.8677978515625, - 207.65618896484375, - 569.9641723632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91355895996094, - 563.260009765625, - 207.65618896484375, - 574.3322143554688 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 48.91339874267578, - 574.2600708007812, - 207.6841278076172, - 739.332275390625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "describe how administration of the va-", - "origin": [ - 48.91339874267578, - 583.0 - ], - "bbox": [ - 48.91339874267578, - 574.2600708007812, - 207.6426544189453, - 585.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 574.2600708007812, - 207.6426544189453, - 585.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "soactive intestinal peptide (VIP) sup-", - "origin": [ - 48.91339874267578, - 594.0 - ], - "bbox": [ - 48.91339874267578, - 585.2600708007812, - 207.63514709472656, - 596.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 585.2600708007812, - 207.63514709472656, - 596.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "presses ", - "origin": [ - 48.91339874267578, - 605.0 - ], - "bbox": [ - 48.91339874267578, - 596.2600708007812, - 79.53623962402344, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 596.2600708007812, - 79.53623962402344, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "inflammatory ", - "origin": [ - 96.63423919677734, - 605.0 - ], - "bbox": [ - 96.63423919677734, - 596.2600708007812, - 155.29034423828125, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.63423919677734, - 596.2600708007812, - 155.29034423828125, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "arthritis,", - "origin": [ - 172.3883514404297, - 605.0 - ], - "bbox": [ - 172.3883514404297, - 596.2600708007812, - 207.64263916015625, - 607.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 172.3883514404297, - 596.2600708007812, - 207.64263916015625, - 607.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "providing new insight into the mecha-", - "origin": [ - 48.91339874267578, - 615.9999389648438 - ], - "bbox": [ - 48.91339874267578, - 607.260009765625, - 207.6343231201172, - 618.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 607.260009765625, - 207.6343231201172, - 618.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "nisms of this disease.", - "origin": [ - 48.91339874267578, - 626.9999389648438 - ], - "bbox": [ - 48.91339874267578, - 618.260009765625, - 134.1643829345703, - 629.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 618.260009765625, - 134.1643829345703, - 629.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The pathogenesis of RA is not fully", - "origin": [ - 57.417579650878906, - 637.9999389648438 - ], - "bbox": [ - 57.417579650878906, - 629.260009765625, - 207.65924072265625, - 640.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 57.417579650878906, - 629.260009765625, - 207.65924072265625, - 640.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "understood and many different cell", - "origin": [ - 48.91339874267578, - 648.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 640.2599487304688, - 207.67245483398438, - 651.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 640.2599487304688, - 207.67245483398438, - 651.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "types are involved in the decades-long", - "origin": [ - 48.91339874267578, - 659.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 651.2599487304688, - 207.66915893554688, - 662.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 651.2599487304688, - 207.66915893554688, - 662.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "process of synovial of inflammation", - "origin": [ - 48.91339874267578, - 670.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 662.2599487304688, - 207.6691436767578, - 673.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 662.2599487304688, - 207.6691436767578, - 673.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and ", - "origin": [ - 48.91339874267578, - 681.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 673.2599487304688, - 66.70694732666016, - 684.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 673.2599487304688, - 66.70694732666016, - 684.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "joint ", - "origin": [ - 76.34573364257812, - 681.9998779296875 - ], - "bbox": [ - 76.34573364257812, - 673.2599487304688, - 98.5482406616211, - 684.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 76.34573364257812, - 673.2599487304688, - 98.5482406616211, - 684.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "destruction. ", - "origin": [ - 108.18702697753906, - 681.9998779296875 - ], - "bbox": [ - 108.18702697753906, - 673.2599487304688, - 159.681884765625, - 684.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 108.18702697753906, - 673.2599487304688, - 159.681884765625, - 684.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Although", - "origin": [ - 169.3206787109375, - 681.9998779296875 - ], - "bbox": [ - 169.3206787109375, - 673.2599487304688, - 207.6683349609375, - 684.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.3206787109375, - 673.2599487304688, - 207.6683349609375, - 684.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "macrophages and fibroblast-like syn-", - "origin": [ - 48.91339874267578, - 692.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 684.2599487304688, - 207.67083740234375, - 695.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 684.2599487304688, - 207.67083740234375, - 695.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "oviocytes are the primary sources of", - "origin": [ - 48.91339874267578, - 703.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 695.2599487304688, - 207.67164611816406, - 706.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 695.2599487304688, - 207.67164611816406, - 706.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the pro-inflammatory cytokines and", - "origin": [ - 48.91339874267578, - 714.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 706.2599487304688, - 207.67001342773438, - 717.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 706.2599487304688, - 207.67001342773438, - 717.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "proteolytic enzymes that mediate joint", - "origin": [ - 48.91339874267578, - 725.9998779296875 - ], - "bbox": [ - 48.91339874267578, - 717.2599487304688, - 207.6841278076172, - 728.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 717.2599487304688, - 207.6841278076172, - 728.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "damage, CD4", - "origin": [ - 48.91339874267578, - 736.9998168945312 - ], - "bbox": [ - 48.91339874267578, - 728.2598876953125, - 104.24700164794922, - 739.3320922851562 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "+", - "origin": [ - 104.47969818115234, - 733.6799926757812 - ], - "bbox": [ - 104.47969818115234, - 728.8677978515625, - 107.10287475585938, - 734.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 107.10287475585938, - 733.6799926757812 - ], - "bbox": [ - 107.10287475585938, - 724.9400634765625, - 110.72750091552734, - 739.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "T cells probably have a", - "origin": [ - 110.72750091552734, - 737.0 - ], - "bbox": [ - 110.72750091552734, - 728.2600708007812, - 207.64495849609375, - 739.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 48.91339874267578, - 724.9400634765625, - 207.64495849609375, - 739.332275390625 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 218.9918670654297, - 442.2603454589844, - 378.22283935546875, - 739.332275390625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "key role in the initiation and perpetua-", - "origin": [ - 218.9918670654297, - 451.000244140625 - ], - "bbox": [ - 218.9918670654297, - 442.2603454589844, - 378.2099304199219, - 453.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 442.2603454589844, - 378.2099304199219, - 453.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tion of disease. Over 10 years ago, stud-", - "origin": [ - 218.9918670654297, - 462.000244140625 - ], - "bbox": [ - 218.9918670654297, - 453.2603454589844, - 378.2024230957031, - 464.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 453.2603454589844, - 378.2024230957031, - 464.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ies of RA patients indicated that", - "origin": [ - 218.9918670654297, - 473.000244140625 - ], - "bbox": [ - 218.9918670654297, - 464.2603454589844, - 378.1942138671875, - 475.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 464.2603454589844, - 378.1942138671875, - 475.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "synovial T cells are relatively quiescent", - "origin": [ - 218.9918670654297, - 484.000244140625 - ], - "bbox": [ - 218.9918670654297, - 475.2603454589844, - 378.19012451171875, - 486.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 475.2603454589844, - 378.19012451171875, - 486.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and produce surprisingly few cytokines", - "origin": [ - 218.9918670654297, - 495.000244140625 - ], - "bbox": [ - 218.9918670654297, - 486.2603454589844, - 378.2041320800781, - 497.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 486.2603454589844, - 378.2041320800781, - 497.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "compared with other T-cell–mediated", - "origin": [ - 218.9918670654297, - 506.000244140625 - ], - "bbox": [ - 218.9918670654297, - 497.2603454589844, - 378.19586181640625, - 508.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 497.2603454589844, - 378.19586181640625, - 508.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "chronic diseases", - "origin": [ - 218.9918670654297, - 517.000244140625 - ], - "bbox": [ - 218.9918670654297, - 508.2603454589844, - 286.8917236328125, - 519.33251953125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "3", - "origin": [ - 287.1361083984375, - 513.6799926757812 - ], - "bbox": [ - 287.1361083984375, - 508.8677978515625, - 289.75927734375, - 514.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". More recently, low", - "origin": [ - 289.8872985839844, - 517.0 - ], - "bbox": [ - 289.8872985839844, - 508.2601013183594, - 378.2001647949219, - 519.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9918670654297, - 508.2601013183594, - 378.2001647949219, - 519.33251953125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "levels of several Th1 cytokines such as", - "origin": [ - 218.99200439453125, - 528.0 - ], - "bbox": [ - 218.99200439453125, - 519.2600708007812, - 378.1810302734375, - 530.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99200439453125, - 519.2600708007812, - 378.1810302734375, - 530.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "IFN-", - "origin": [ - 218.99200439453125, - 539.0 - ], - "bbox": [ - 218.99200439453125, - 530.2600708007812, - 236.2551727294922, - 541.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 0, - "font": "Symbol", - "color": 0, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "γ", - "origin": [ - 236.4842529296875, - 539.0 - ], - "bbox": [ - 236.4842529296875, - 530.6170043945312, - 239.8955535888672, - 541.431884765625 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " and IL-17 have been identified in", - "origin": [ - 239.8955535888672, - 539.0 - ], - "bbox": [ - 239.8955535888672, - 530.2600708007812, - 378.19915771484375, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99200439453125, - 530.2600708007812, - 378.19915771484375, - 541.431884765625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "RA synovium, whereas Th2 cytokines", - "origin": [ - 218.99200439453125, - 550.0 - ], - "bbox": [ - 218.99200439453125, - 541.2600708007812, - 378.2142333984375, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99200439453125, - 541.2600708007812, - 378.2142333984375, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "such as IL-4 are nearly absent", - "origin": [ - 218.99200439453125, - 560.9999389648438 - ], - "bbox": [ - 218.99200439453125, - 552.260009765625, - 337.1142272949219, - 563.3322143554688 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "4", - "origin": [ - 337.3442077636719, - 557.6799926757812 - ], - "bbox": [ - 337.3442077636719, - 552.8677978515625, - 339.9673767089844, - 558.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". The cur-", - "origin": [ - 340.0902099609375, - 561.0 - ], - "bbox": [ - 340.0902099609375, - 552.2600708007812, - 378.2054443359375, - 563.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99200439453125, - 552.260009765625, - 378.2054443359375, - 563.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rent paradigm proposes that in the", - "origin": [ - 218.99237060546875, - 572.0 - ], - "bbox": [ - 218.99237060546875, - 563.2600708007812, - 378.1946716308594, - 574.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 563.2600708007812, - 378.1946716308594, - 574.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "rheumatoid synovium, a Th1 bias un-", - "origin": [ - 218.99237060546875, - 583.0 - ], - "bbox": [ - 218.99237060546875, - 574.2600708007812, - 378.194580078125, - 585.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 574.2600708007812, - 378.194580078125, - 585.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "derlies chronic synovial inflammation.", - "origin": [ - 218.99237060546875, - 593.9999389648438 - ], - "bbox": [ - 218.99237060546875, - 585.260009765625, - 378.1936950683594, - 596.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 585.260009765625, - 378.1936950683594, - 596.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Conversely, a lack of Th2 cytokines,", - "origin": [ - 218.99237060546875, - 604.9999389648438 - ], - "bbox": [ - 218.99237060546875, - 596.260009765625, - 378.1864013671875, - 607.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 596.260009765625, - 378.1864013671875, - 607.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "which antagonize many Th1 functions", - "origin": [ - 218.99237060546875, - 615.9999389648438 - ], - "bbox": [ - 218.99237060546875, - 607.260009765625, - 378.1847229003906, - 618.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 607.260009765625, - 378.1847229003906, - 618.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and can directly suppress effector mol-", - "origin": [ - 218.99237060546875, - 626.9998779296875 - ], - "bbox": [ - 218.99237060546875, - 618.2599487304688, - 378.1905212402344, - 629.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 618.2599487304688, - 378.1905212402344, - 629.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ecule ", - "origin": [ - 218.99237060546875, - 637.9998779296875 - ], - "bbox": [ - 218.99237060546875, - 629.2599487304688, - 242.4440155029297, - 640.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 629.2599487304688, - 242.4440155029297, - 640.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "production ", - "origin": [ - 249.27243041992188, - 637.9998779296875 - ], - "bbox": [ - 249.27243041992188, - 629.2599487304688, - 297.2962341308594, - 640.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 249.27243041992188, - 629.2599487304688, - 297.2962341308594, - 640.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by ", - "origin": [ - 304.1246337890625, - 637.9998779296875 - ], - "bbox": [ - 304.1246337890625, - 629.2599487304688, - 316.46673583984375, - 640.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.1246337890625, - 629.2599487304688, - 316.46673583984375, - 640.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "synoviocytes,", - "origin": [ - 323.2951354980469, - 637.9998779296875 - ], - "bbox": [ - 323.2951354980469, - 629.2599487304688, - 378.19134521484375, - 640.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.2951354980469, - 629.2599487304688, - 378.19134521484375, - 640.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "leads to uncontrolled Th1-type re-", - "origin": [ - 218.99237060546875, - 648.9998779296875 - ], - "bbox": [ - 218.99237060546875, - 640.2599487304688, - 378.1938171386719, - 651.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 640.2599487304688, - 378.1938171386719, - 651.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sponses", - "origin": [ - 218.99237060546875, - 659.9998779296875 - ], - "bbox": [ - 218.99237060546875, - 651.2599487304688, - 250.0675811767578, - 662.3321533203125 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "5", - "origin": [ - 250.31089782714844, - 656.6799926757812 - ], - "bbox": [ - 250.31089782714844, - 651.8677978515625, - 252.93408203125, - 657.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ". Therefore, enhancement of", - "origin": [ - 253.06210327148438, - 660.0 - ], - "bbox": [ - 253.06210327148438, - 651.2600708007812, - 378.21209716796875, - 662.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99237060546875, - 651.2599487304688, - 378.21209716796875, - 662.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Th2 function and suppression Th1 cells", - "origin": [ - 218.9922637939453, - 671.0 - ], - "bbox": [ - 218.9922637939453, - 662.2600708007812, - 378.19708251953125, - 673.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9922637939453, - 662.2600708007812, - 378.19708251953125, - 673.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "has been proposed as a therapeutic ap-", - "origin": [ - 218.9922637939453, - 682.0 - ], - "bbox": [ - 218.9922637939453, - 673.2600708007812, - 378.2145080566406, - 684.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9922637939453, - 673.2600708007812, - 378.2145080566406, - 684.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "proach to RA.", - "origin": [ - 218.9922637939453, - 693.0 - ], - "bbox": [ - 218.9922637939453, - 684.2600708007812, - 274.1208801269531, - 695.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.9922637939453, - 684.2600708007812, - 274.1208801269531, - 695.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "The findings of Delgado ", - "origin": [ - 227.49644470214844, - 704.0 - ], - "bbox": [ - 227.49644470214844, - 695.2600708007812, - 332.37109375, - 706.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al.", - "origin": [ - 333.9024353027344, - 704.0 - ], - "bbox": [ - 333.9024353027344, - 696.106689453125, - 354.34869384765625, - 706.2410278320312 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 354.58648681640625, - 700.6799926757812 - ], - "bbox": [ - 354.58648681640625, - 695.8677978515625, - 357.20965576171875, - 701.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 357.20965576171875, - 700.6799926757812 - ], - "bbox": [ - 357.20965576171875, - 691.9400634765625, - 361.2427062988281, - 706.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sup-", - "origin": [ - 361.2427062988281, - 704.0 - ], - "bbox": [ - 361.2427062988281, - 695.2600708007812, - 378.20623779296875, - 706.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.49644470214844, - 691.9400634765625, - 378.20623779296875, - 706.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "port this hypothesis by demonstrating", - "origin": [ - 218.99232482910156, - 715.0 - ], - "bbox": [ - 218.99232482910156, - 706.2600708007812, - 378.2145690917969, - 717.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99232482910156, - 706.2600708007812, - 378.2145690917969, - 717.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "that VIP treatment dramatically sup-", - "origin": [ - 218.99232482910156, - 726.0 - ], - "bbox": [ - 218.99232482910156, - 717.2600708007812, - 378.22283935546875, - 728.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99232482910156, - 717.2600708007812, - 378.22283935546875, - 728.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "presses clinical joint disease in murine", - "origin": [ - 218.99232482910156, - 737.0 - ], - "bbox": [ - 218.99232482910156, - 728.2600708007812, - 378.2146301269531, - 739.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.99232482910156, - 728.2600708007812, - 378.2146301269531, - 739.332275390625 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 389.0709533691406, - 409.2603454589844, - 548.087646484375, - 739.3322143554688 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "collagen-induced arthritis (CIA). VIP", - "origin": [ - 389.0709533691406, - 418.000244140625 - ], - "bbox": [ - 389.0709533691406, - 409.2603454589844, - 548.0850219726562, - 420.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0709533691406, - 409.2603454589844, - 548.0850219726562, - 420.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "regulates adaptive and innate immune", - "origin": [ - 389.0709533691406, - 429.000244140625 - ], - "bbox": [ - 389.0709533691406, - 420.2603454589844, - 548.085693359375, - 431.3325500488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0709533691406, - 420.2603454589844, - 548.085693359375, - 431.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "responses", - "origin": [ - 389.0709533691406, - 440.000244140625 - ], - "bbox": [ - 389.0709533691406, - 431.2603454589844, - 427.797119140625, - 442.3325500488281 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "6", - "origin": [ - 428.01910400390625, - 436.67999267578125 - ], - "bbox": [ - 428.01910400390625, - 431.8677978515625, - 430.64227294921875, - 437.96417236328125 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": ", and also causes secretory di-", - "origin": [ - 430.76129150390625, - 440.0 - ], - "bbox": [ - 430.76129150390625, - 431.2601013183594, - 548.0735473632812, - 442.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0709533691406, - 431.2601013183594, - 548.0735473632812, - 442.3325500488281 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "arrhea in patients with VIP-producing", - "origin": [ - 389.07122802734375, - 451.0 - ], - "bbox": [ - 389.07122802734375, - 442.2601013183594, - 548.0543823242188, - 453.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 442.2601013183594, - 548.0543823242188, - 453.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tumors. Although VIP is considered to", - "origin": [ - 389.07122802734375, - 462.0 - ], - "bbox": [ - 389.07122802734375, - 453.2601013183594, - 548.0535888671875, - 464.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 453.2601013183594, - 548.0535888671875, - 464.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "be an immunosuppressant, it is now", - "origin": [ - 389.07122802734375, - 473.0 - ], - "bbox": [ - 389.07122802734375, - 464.2601013183594, - 548.0452880859375, - 475.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 464.2601013183594, - 548.0452880859375, - 475.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "clear that VIP has multiple, complex", - "origin": [ - 389.07122802734375, - 484.0 - ], - "bbox": [ - 389.07122802734375, - 475.2601013183594, - 548.0535888671875, - 486.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 475.2601013183594, - 548.0535888671875, - 486.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "functions. Its pleotropic actions have a", - "origin": [ - 389.07122802734375, - 495.0 - ], - "bbox": [ - 389.07122802734375, - 486.2601013183594, - 548.0452270507812, - 497.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 486.2601013183594, - 548.0452270507812, - 497.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "salutary effect on both inflammation", - "origin": [ - 389.07122802734375, - 506.0 - ], - "bbox": [ - 389.07122802734375, - 497.2601013183594, - 548.0552368164062, - 508.3323059082031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 497.2601013183594, - 548.0552368164062, - 508.3323059082031 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "and immunity in the CIA model. For", - "origin": [ - 389.07122802734375, - 517.0 - ], - "bbox": [ - 389.07122802734375, - 508.2601013183594, - 548.0601806640625, - 519.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 508.2601013183594, - 548.0601806640625, - 519.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "example, VIP suppresses Th1 cell func-", - "origin": [ - 389.07122802734375, - 528.0 - ], - "bbox": [ - 389.07122802734375, - 519.2600708007812, - 548.041259765625, - 530.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 519.2600708007812, - 548.041259765625, - 530.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "tion and differentiation, as demon-", - "origin": [ - 389.07122802734375, - 539.0 - ], - "bbox": [ - 389.07122802734375, - 530.2600708007812, - 548.0576171875, - 541.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 530.2600708007812, - 548.0576171875, - 541.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "strated ", - "origin": [ - 389.07122802734375, - 550.0 - ], - "bbox": [ - 389.07122802734375, - 541.2600708007812, - 419.17120361328125, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 541.2600708007812, - 419.17120361328125, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "by ", - "origin": [ - 428.717041015625, - 550.0 - ], - "bbox": [ - 428.717041015625, - 541.2600708007812, - 441.05914306640625, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 428.717041015625, - 541.2600708007812, - 441.05914306640625, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "the ", - "origin": [ - 450.60498046875, - 550.0 - ], - "bbox": [ - 450.60498046875, - 541.2600708007812, - 466.337646484375, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 450.60498046875, - 541.2600708007812, - 466.337646484375, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "decreased ", - "origin": [ - 475.88348388671875, - 550.0 - ], - "bbox": [ - 475.88348388671875, - 541.2600708007812, - 517.5702514648438, - 552.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 475.88348388671875, - 541.2600708007812, - 517.5702514648438, - 552.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "IFN-", - "origin": [ - 527.1160888671875, - 550.0 - ], - "bbox": [ - 527.1160888671875, - 541.2600708007812, - 544.4091186523438, - 552.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 0, - "font": "Symbol", - "color": 0, - "ascender": 1.0099999904632568, - "descender": -0.2930000126361847, - "text": "γ", - "origin": [ - 544.6563720703125, - 550.0 - ], - "bbox": [ - 544.6563720703125, - 541.6170043945312, - 548.0676879882812, - 552.431884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 527.1160888671875, - 541.2600708007812, - 548.0676879882812, - 552.431884765625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "expression. On the other hand, Th2", - "origin": [ - 389.07122802734375, - 560.9999389648438 - ], - "bbox": [ - 389.07122802734375, - 552.260009765625, - 548.0728759765625, - 563.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 552.260009765625, - 548.0728759765625, - 563.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "function is enhanced in VIP-treated", - "origin": [ - 389.07122802734375, - 571.9999389648438 - ], - "bbox": [ - 389.07122802734375, - 563.260009765625, - 548.0759887695312, - 574.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 563.260009765625, - 548.0759887695312, - 574.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "mice, as determined by the observed", - "origin": [ - 389.07122802734375, - 582.9999389648438 - ], - "bbox": [ - 389.07122802734375, - 574.260009765625, - 548.0818481445312, - 585.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 574.260009765625, - 548.0818481445312, - 585.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "increased in IL-4 production. VIP-", - "origin": [ - 389.07122802734375, - 593.9998779296875 - ], - "bbox": [ - 389.07122802734375, - 585.2599487304688, - 548.0828247070312, - 596.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 585.2599487304688, - 548.0828247070312, - 596.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "treated mice produced lower levels of", - "origin": [ - 389.07122802734375, - 604.9998779296875 - ], - "bbox": [ - 389.07122802734375, - 596.2599487304688, - 548.087646484375, - 607.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 596.2599487304688, - 548.087646484375, - 607.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "anti-type II collagen antibodies, indi-", - "origin": [ - 389.07122802734375, - 615.9998779296875 - ], - "bbox": [ - 389.07122802734375, - 607.2599487304688, - 548.0861206054688, - 618.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 607.2599487304688, - 548.0861206054688, - 618.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "cating a downregulation of B-cell re-", - "origin": [ - 389.07122802734375, - 626.9998779296875 - ], - "bbox": [ - 389.07122802734375, - 618.2599487304688, - 548.087646484375, - 629.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 618.2599487304688, - 548.087646484375, - 629.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "sponses.", - "origin": [ - 389.07122802734375, - 637.9998779296875 - ], - "bbox": [ - 389.07122802734375, - 629.2599487304688, - 422.7070007324219, - 640.3321533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07122802734375, - 629.2599487304688, - 422.7070007324219, - 640.3321533203125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "Delgado ", - "origin": [ - 397.5754089355469, - 648.9998168945312 - ], - "bbox": [ - 397.5754089355469, - 640.2598876953125, - 433.7584533691406, - 651.3320922851562 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "et al.", - "origin": [ - 435.4209289550781, - 648.9998168945312 - ], - "bbox": [ - 435.4209289550781, - 641.1065063476562, - 456.1925354003906, - 651.2408447265625 - ] - }, - { - "size": 4.570000171661377, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "2", - "origin": [ - 456.47869873046875, - 645.6799926757812 - ], - "bbox": [ - 456.47869873046875, - 640.8677978515625, - 459.10186767578125, - 646.9641723632812 - ] - }, - { - "size": 8.300000190734863, - "flags": 5, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 459.10186767578125, - 645.6799926757812 - ], - "bbox": [ - 459.10186767578125, - 636.9400634765625, - 463.2972106933594, - 651.332275390625 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "also report that VIP", - "origin": [ - 463.2972106933594, - 649.0 - ], - "bbox": [ - 463.2972106933594, - 640.2600708007812, - 548.0693359375, - 651.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 397.5754089355469, - 636.9400634765625, - 548.0693359375, - 651.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "treatment suppresses production of", - "origin": [ - 389.0711364746094, - 660.0 - ], - "bbox": [ - 389.0711364746094, - 651.2600708007812, - 548.067626953125, - 662.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 651.2600708007812, - 548.067626953125, - 662.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "pro-inflammatory mediators, as well as", - "origin": [ - 389.0711364746094, - 671.0 - ], - "bbox": [ - 389.0711364746094, - 662.2600708007812, - 548.0618896484375, - 673.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 662.2600708007812, - 548.0618896484375, - 673.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "expression of the metalloproteinase", - "origin": [ - 389.0711364746094, - 682.0 - ], - "bbox": [ - 389.0711364746094, - 673.2600708007812, - 548.0692749023438, - 684.332275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 673.2600708007812, - 548.0692749023438, - 684.332275390625 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "gelatinase (MMP-2). MMP-2 is believed", - "origin": [ - 389.0711364746094, - 692.9999389648438 - ], - "bbox": [ - 389.0711364746094, - 684.260009765625, - 548.054443359375, - 695.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 684.260009765625, - 548.054443359375, - 695.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "to contribute to joint destruction in", - "origin": [ - 389.0711364746094, - 703.9999389648438 - ], - "bbox": [ - 389.0711364746094, - 695.260009765625, - 548.0684814453125, - 706.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 695.260009765625, - 548.0684814453125, - 706.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "paws of arthritic mice. ", - "origin": [ - 389.0711364746094, - 714.9999389648438 - ], - "bbox": [ - 389.0711364746094, - 706.260009765625, - 486.4566650390625, - 717.3322143554688 - ] - }, - { - "size": 8.300000190734863, - "flags": 6, - "font": "StoneSerif-Italic", - "color": 0, - "ascender": 0.9509999752044678, - "descender": -0.27000001072883606, - "text": "In vitro", - "origin": [ - 487.387939453125, - 714.9999389648438 - ], - "bbox": [ - 487.387939453125, - 707.1066284179688, - 516.1656494140625, - 717.240966796875 - ] - }, - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " studies", - "origin": [ - 516.1656494140625, - 714.9999389648438 - ], - "bbox": [ - 516.1656494140625, - 706.260009765625, - 548.067626953125, - 717.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.0711364746094, - 706.260009765625, - 548.067626953125, - 717.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "indicate that VIP may act directly on", - "origin": [ - 389.07110595703125, - 725.9999389648438 - ], - "bbox": [ - 389.07110595703125, - 717.260009765625, - 548.07080078125, - 728.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07110595703125, - 717.260009765625, - 548.07080078125, - 728.3322143554688 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "synoviocytes, although an indirect ac-", - "origin": [ - 389.07110595703125, - 736.9999389648438 - ], - "bbox": [ - 389.07110595703125, - 728.260009765625, - 548.0684204101562, - 739.3322143554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 389.07110595703125, - 728.260009765625, - 548.0684204101562, - 739.3322143554688 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 123.66940307617188, - 330.6000061035156, - 472.97113037109375, - 358.1400146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 18.70828628540039, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "VIP: A very important protein in arthritis", - "origin": [ - 123.66940307617188, - 352.0 - ], - "bbox": [ - 123.66940307617188, - 330.6000061035156, - 472.97113037109375, - 358.1400146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 123.66940307617188, - 330.6000061035156, - 472.97113037109375, - 358.1400146484375 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 77.16777801513672, - 365.1189880371094, - 519.5211181640625, - 398.548095703125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "Many studies have shown that immune system modulation can be used to treat various forms of arthritis. A", - "origin": [ - 79.47019958496094, - 374.0 - ], - "bbox": [ - 79.47019958496094, - 365.1189880371094, - 517.215576171875, - 376.548095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 79.47019958496094, - 365.1189880371094, - 517.215576171875, - 376.548095703125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "vasoactive intestinal peptide has recently been shown to have potent anti-inflammatory effects, indicating a", - "origin": [ - 77.16777801513672, - 385.0 - ], - "bbox": [ - 77.16777801513672, - 376.1189880371094, - 519.5211181640625, - 387.548095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 77.16777801513672, - 376.1189880371094, - 519.5211181640625, - 387.548095703125 - ] - }, - { - "spans": [ - { - "size": 8.300000190734863, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "new therapeutic approach for inflammatory arthritis (pages 563-568).", - "origin": [ - 155.35626220703125, - 396.0 - ], - "bbox": [ - 155.35626220703125, - 387.1189880371094, - 441.32440185546875, - 398.548095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 155.35626220703125, - 387.1189880371094, - 441.32440185546875, - 398.548095703125 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 257.51519775390625, - 417.4169921875, - 339.20843505859375, - 432.09100341796875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "G", - "origin": [ - 257.51519775390625, - 429.0 - ], - "bbox": [ - 257.51519775390625, - 417.4169921875, - 266.2712097167969, - 432.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "ARY", - "origin": [ - 266.32049560546875, - 429.0 - ], - "bbox": [ - 266.32049560546875, - 420.312744140625, - 282.3601379394531, - 431.3182373046875 - ] - }, - { - "size": 11.0, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": " S. F", - "origin": [ - 282.3601379394531, - 429.0 - ], - "bbox": [ - 282.3601379394531, - 417.4169921875, - 302.6263122558594, - 432.09100341796875 - ] - }, - { - "size": 8.25, - "flags": 4, - "font": "StoneSerif", - "color": 0, - "ascender": 1.0529999732971191, - "descender": -0.2809999883174896, - "text": "IRESTEIN", - "origin": [ - 302.677490234375, - 429.0 - ], - "bbox": [ - 302.677490234375, - 420.312744140625, - 339.20843505859375, - 431.3182373046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 257.51519775390625, - 417.4169921875, - 339.20843505859375, - 432.09100341796875 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "Helvetica-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "© 2001 Nature Publishing Group http://medicine.nature.com", - "origin": [ - 33.34590148925781, - 426.85760498046875 - ], - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "Helvetica-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "© 2001 Nature Publishing Group http://medicine.nature.com", - "origin": [ - 235.89329528808594, - 24.6602783203125 - ], - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 15, - "type": 0, - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "Helvetica-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "© 2001 Nature Publishing Group http://medicine.nature.com", - "origin": [ - 235.89329528808594, - 24.6602783203125 - ], - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 235.89329528808594, - 15.030278205871582, - 495.5804138183594, - 27.42327880859375 - ] - } - ], - "tag": "on-image" - }, - { - "number": 14, - "type": 0, - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "Helvetica-Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "© 2001 Nature Publishing Group http://medicine.nature.com", - "origin": [ - 33.34590148925781, - 426.85760498046875 - ], - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 23.715900421142578, - 167.17172241210938, - 36.10890197753906, - 426.85760498046875 - ] - } - ], - "tag": "rotate" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 440.2159118652344, - 20.472000122070312, - 558.233642578125, - 37.09199905395508 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "StoneSerif-Bold", - "color": 0, - "ascender": 1.0440000295639038, - "descender": -0.3409999907016754, - "text": "NEWS & VIEWS ", - "origin": [ - 440.2159118652344, - 33.0 - ], - "bbox": [ - 440.2159118652344, - 20.472000122070312, - 558.233642578125, - 37.09199905395508 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 440.2159118652344, - 20.472000122070312, - 558.233642578125, - 37.09199905395508 - ] - } - ], - "tag": "header" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 43.5, - 750.9375, - 553.7387084960938, - 761.2424926757812 - ], - "lines": [ - { - "spans": [ - { - "size": 6.0, - "flags": 16, - "font": "StoneSans-Semibold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": "NATURE MEDICINE", - "origin": [ - 43.5, - 759.0 - ], - "bbox": [ - 43.5, - 752.5800170898438, - 101.01300811767578, - 760.8419799804688 - ] - }, - { - "size": 6.0, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " • VOLUME 7 • NUMBER 5 • MAY 2001", - "origin": [ - 101.01300811767578, - 759.0 - ], - "bbox": [ - 101.01300811767578, - 752.5499877929688, - 222.2921905517578, - 760.7940063476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 43.5, - 752.5499877929688, - 222.2921905517578, - 760.8419799804688 - ] - }, - { - "spans": [ - { - "size": 7.5, - "flags": 0, - "font": "StoneSans", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": "537", - "origin": [ - 540.23876953125, - 759.0 - ], - "bbox": [ - 540.23876953125, - 750.9375, - 553.7387084960938, - 761.2424926757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 540.23876953125, - 750.9375, - 553.7387084960938, - 761.2424926757812 - ] - } - ], - "tag": "footer" - } - ], - "droped_image_block": [ - { - "bbox": [ - 43, - 14.030278205871582, - 554, - 38 - ], - "image_path": "images/1_43_14_554_38.jpg", - "tag": "header" - } - ], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 1, - "page_size": [ - 612.0, - 792.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\346\230\245\345\215\225\345\210\227_\350\256\272\346\226\207-\345\233\276\343\200\201\350\241\250\343\200\201\345\205\254\345\274\217_5_\345\270\246\347\211\271\346\256\212table.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\346\230\245\345\215\225\345\210\227_\350\256\272\346\226\207-\345\233\276\343\200\201\350\241\250\343\200\201\345\205\254\345\274\217_5_\345\270\246\347\211\271\346\256\212table.pdf/preproc_out.json" deleted file mode 100644 index fe9bf2eb2..000000000 --- "a/tests/assets/pre_proc_results/\346\230\245\345\215\225\345\210\227_\350\256\272\346\226\207-\345\233\276\343\200\201\350\241\250\343\200\201\345\205\254\345\274\217_5_\345\270\246\347\211\271\346\256\212table.pdf/preproc_out.json" +++ /dev/null @@ -1,4715 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 218.7359161376953, - 244.05642700195312, - 401.4249572753906, - 250.0885772705078 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "-600", - "origin": [ - 218.7359161376953, - 248.94436645507812 - ], - "bbox": [ - 218.7359161376953, - 244.05642700195312, - 229.54310607910156, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7359161376953, - 244.05642700195312, - 229.54310607910156, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "-400", - "origin": [ - 247.53271484375, - 248.94436645507812 - ], - "bbox": [ - 247.53271484375, - 244.05642700195312, - 258.33990478515625, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.53271484375, - 244.05642700195312, - 258.33990478515625, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "-200", - "origin": [ - 276.32952880859375, - 248.94436645507812 - ], - "bbox": [ - 276.32952880859375, - 244.05642700195312, - 287.1366882324219, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.32952880859375, - 244.05642700195312, - 287.1366882324219, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "0", - "origin": [ - 309.02825927734375, - 248.94436645507812 - ], - "bbox": [ - 309.02825927734375, - 244.05642700195312, - 312.0311584472656, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 309.02825927734375, - 244.05642700195312, - 312.0311584472656, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "200", - "origin": [ - 334.8221740722656, - 248.94436645507812 - ], - "bbox": [ - 334.8221740722656, - 244.05642700195312, - 343.8313903808594, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.8221740722656, - 244.05642700195312, - 343.8313903808594, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "400", - "origin": [ - 363.61895751953125, - 248.94436645507812 - ], - "bbox": [ - 363.61895751953125, - 244.05642700195312, - 372.628173828125, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.61895751953125, - 244.05642700195312, - 372.628173828125, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "600", - "origin": [ - 392.415771484375, - 248.94436645507812 - ], - "bbox": [ - 392.415771484375, - 244.05642700195312, - 401.4249572753906, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 392.415771484375, - 244.05642700195312, - 401.4249572753906, - 250.0885772705078 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 300.9251708984375, - 257.0149841308594, - 320.13494873046875, - 263.047119140625 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "Position", - "origin": [ - 300.9251708984375, - 261.9029235839844 - ], - "bbox": [ - 300.9251708984375, - 257.0149841308594, - 320.13494873046875, - 263.047119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 300.9251708984375, - 257.0149841308594, - 320.13494873046875, - 263.047119140625 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 204.3939971923828, - 264.4266052246094, - 407.6073303222656, - 276.3937683105469 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Figure 1:", - "origin": [ - 204.3939971923828, - 273.39300537109375 - ], - "bbox": [ - 204.3939971923828, - 264.4266052246094, - 257.3674621582031, - 276.3937683105469 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " Dynamic order size function", - "origin": [ - 257.3674621582031, - 273.39300537109375 - ], - "bbox": [ - 257.3674621582031, - 264.4266052246094, - 407.6073303222656, - 276.3937683105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 204.3939971923828, - 264.4266052246094, - 407.6073303222656, - 276.3937683105469 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 70.86599731445312, - 301.5943603515625, - 180.2700958251953, - 315.95489501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "2.3", - "origin": [ - 70.86599731445312, - 312.35400390625 - ], - "bbox": [ - 70.86599731445312, - 301.5943603515625, - 91.49583435058594, - 315.95489501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 301.5943603515625, - 91.49583435058594, - 315.95489501953125 - ] - }, - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Algorithm", - "origin": [ - 107.649658203125, - 312.35400390625 - ], - "bbox": [ - 107.649658203125, - 301.5943603515625, - 180.2700958251953, - 315.95489501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.649658203125, - 301.5943603515625, - 180.2700958251953, - 315.95489501953125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 70.86599731445312, - 322.99261474609375, - 541.1835327148438, - 378.29681396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "As a market maker, we are interested in implementing an algorithm that places bid and ask", - "origin": [ - 70.86599731445312, - 331.9590148925781 - ], - "bbox": [ - 70.86599731445312, - 322.99261474609375, - 541.1834106445312, - 334.95977783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 322.99261474609375, - 541.1834106445312, - 334.95977783203125 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "quotes in the limit order book at all times. However, we are aware that in very brief periods,", - "origin": [ - 70.86599731445312, - 346.405029296875 - ], - "bbox": [ - 70.86599731445312, - 337.4386291503906, - 541.1835327148438, - 349.4057922363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 337.4386291503906, - 541.1835327148438, - 349.4057922363281 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "we must hold one-sided quotes for the sake of profitability. This situation occurs when both", - "origin": [ - 70.86599731445312, - 360.8510437011719 - ], - "bbox": [ - 70.86599731445312, - 351.8846435546875, - 541.15966796875, - 363.851806640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 351.8846435546875, - 541.15966796875, - 363.851806640625 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "buy and sell orders are not filled at the same time interval.", - "origin": [ - 70.86599731445312, - 375.2960510253906 - ], - "bbox": [ - 70.86599731445312, - 366.32965087890625, - 373.1651916503906, - 378.29681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 366.32965087890625, - 373.1651916503906, - 378.29681396484375 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 70.86599731445312, - 395.2216491699219, - 541.195556640625, - 479.4178771972656 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Therefore, our strategy iterates as follows. During the trading day, we quote a bid and ask", - "origin": [ - 70.86599731445312, - 404.18804931640625 - ], - "bbox": [ - 70.86599731445312, - 395.2216491699219, - 541.195556640625, - 407.1888122558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 395.2216491699219, - 541.195556640625, - 407.1888122558594 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "spread if we have no orders in the limit order book. If only one of these orders is filled, we", - "origin": [ - 70.86599731445312, - 418.6340637207031 - ], - "bbox": [ - 70.86599731445312, - 409.66766357421875, - 541.1597290039062, - 421.63482666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 409.66766357421875, - 541.1597290039062, - 421.63482666015625 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "wait for 5 seconds for the outstanding order to be executed. If this does not happen, then", - "origin": [ - 70.86599731445312, - 433.080078125 - ], - "bbox": [ - 70.86599731445312, - 424.1136779785156, - 541.15966796875, - 436.0808410644531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 424.1136779785156, - 541.15966796875, - 436.0808410644531 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "we cancel the order and place new bid and ask quotes. Finally, whenever we have two orders", - "origin": [ - 70.86599731445312, - 447.52508544921875 - ], - "bbox": [ - 70.86599731445312, - 438.5586853027344, - 541.15966796875, - 450.5258483886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 438.5586853027344, - 541.15966796875, - 450.5258483886719 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "in the limit order book, we update our quotes every second. The summary of the trading", - "origin": [ - 70.86599731445312, - 461.9710998535156 - ], - "bbox": [ - 70.86599731445312, - 453.00469970703125, - 541.1715087890625, - 464.97186279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 453.00469970703125, - 541.1715087890625, - 464.97186279296875 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "algorithm is shown in Algorithm 1.", - "origin": [ - 70.86599731445312, - 476.4171142578125 - ], - "bbox": [ - 70.86599731445312, - 467.4507141113281, - 250.50485229492188, - 479.4178771972656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 467.4507141113281, - 250.50485229492188, - 479.4178771972656 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 70.86599731445312, - 493.0885925292969, - 282.3121032714844, - 505.0557556152344 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Algorithm 1", - "origin": [ - 70.86599731445312, - 502.05499267578125 - ], - "bbox": [ - 70.86599731445312, - 493.0885925292969, - 142.5972137451172, - 505.0557556152344 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " Market Making Algorithm", - "origin": [ - 142.5972137451172, - 502.05499267578125 - ], - "bbox": [ - 142.5972137451172, - 493.0885925292969, - 282.3121032714844, - 505.0557556152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 493.0885925292969, - 282.3121032714844, - 505.0557556152344 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 70.86599731445312, - 509.6600036621094, - 223.3946075439453, - 519.6226196289062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "while", - "origin": [ - 70.86599731445312, - 517.1319580078125 - ], - "bbox": [ - 70.86599731445312, - 509.6600036621094, - 97.1174545288086, - 519.6226196289062 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " current time", - "origin": [ - 97.1174545288086, - 517.1319580078125 - ], - "bbox": [ - 97.1174545288086, - 509.6600036621094, - 154.4302978515625, - 519.6226196289062 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " <", - "origin": [ - 154.4302978515625, - 517.1319580078125 - ], - "bbox": [ - 154.4302978515625, - 509.6600036621094, - 165.72293090820312, - 519.6226196289062 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " end time", - "origin": [ - 165.72293090820312, - 517.1319580078125 - ], - "bbox": [ - 165.72293090820312, - 509.6600036621094, - 207.23257446289062, - 519.6226196289062 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " do", - "origin": [ - 207.23257446289062, - 517.1319580078125 - ], - "bbox": [ - 207.23257446289062, - 509.6600036621094, - 223.3946075439453, - 519.6226196289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 509.6600036621094, - 223.3946075439453, - 519.6226196289062 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 88.8239974975586, - 521.6151123046875, - 218.38882446289062, - 531.5776977539062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "if", - "origin": [ - 88.8239974975586, - 529.0870361328125 - ], - "bbox": [ - 88.8239974975586, - 521.6151123046875, - 95.49893951416016, - 531.5776977539062 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " no orders in the book", - "origin": [ - 95.49893951416016, - 529.0870361328125 - ], - "bbox": [ - 95.49893951416016, - 521.6151123046875, - 191.5699462890625, - 531.5776977539062 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " then", - "origin": [ - 191.5699462890625, - 529.0870361328125 - ], - "bbox": [ - 191.5699462890625, - 521.6151123046875, - 218.38882446289062, - 531.5776977539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.8239974975586, - 521.6151123046875, - 218.38882446289062, - 531.5776977539062 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 88.8239974975586, - 532.1200561523438, - 230.73681640625, - 554.0376586914062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "Quote bid and ask prices", - "origin": [ - 106.78099822998047, - 539.5919799804688 - ], - "bbox": [ - 106.78099822998047, - 532.1200561523438, - 215.692138671875, - 542.0826416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 532.1200561523438, - 215.692138671875, - 542.0826416015625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "else if", - "origin": [ - 88.8239974975586, - 551.5469970703125 - ], - "bbox": [ - 88.8239974975586, - 544.0750732421875, - 117.51628112792969, - 554.0376586914062 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 1 order in the book", - "origin": [ - 117.51628112792969, - 551.5469970703125 - ], - "bbox": [ - 117.51628112792969, - 544.0750732421875, - 203.91925048828125, - 554.0376586914062 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " then", - "origin": [ - 203.91925048828125, - 551.5469970703125 - ], - "bbox": [ - 203.91925048828125, - 544.0750732421875, - 230.73681640625, - 554.0376586914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.8239974975586, - 544.0750732421875, - 230.73681640625, - 554.0376586914062 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 106.78099822998047, - 556.0300903320312, - 340.81182861328125, - 565.99267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "if", - "origin": [ - 106.78099822998047, - 563.5020141601562 - ], - "bbox": [ - 106.78099822998047, - 556.0300903320312, - 113.45594024658203, - 565.99267578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " current time - execution time", - "origin": [ - 113.45594024658203, - 563.5020141601562 - ], - "bbox": [ - 113.45594024658203, - 556.0300903320312, - 245.48193359375, - 565.99267578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " >", - "origin": [ - 245.48193359375, - 563.5020141601562 - ], - "bbox": [ - 245.48193359375, - 556.0300903320312, - 256.7689514160156, - 565.99267578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " waiting time", - "origin": [ - 256.7689514160156, - 563.5020141601562 - ], - "bbox": [ - 256.7689514160156, - 556.0300903320312, - 314.3194274902344, - 565.99267578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " then", - "origin": [ - 314.3194274902344, - 563.5020141601562 - ], - "bbox": [ - 314.3194274902344, - 556.0300903320312, - 340.81182861328125, - 565.99267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 556.0300903320312, - 340.81182861328125, - 565.99267578125 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 106.78099822998047, - 566.5350952148438, - 387.64208984375, - 588.4526977539062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "Cancel the outstanding order Quote new bid and ask prices", - "origin": [ - 124.73899841308594, - 574.0070190429688 - ], - "bbox": [ - 124.73899841308594, - 566.5350952148438, - 387.64208984375, - 576.4976806640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.73899841308594, - 566.5350952148438, - 387.64208984375, - 576.4976806640625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "else", - "origin": [ - 106.78099822998047, - 585.9620361328125 - ], - "bbox": [ - 106.78099822998047, - 578.4901123046875, - 124.982666015625, - 588.4526977539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 578.4901123046875, - 124.982666015625, - 588.4526977539062 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 88.8239974975586, - 588.8850708007812, - 234.809814453125, - 623.753662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "Wait", - "origin": [ - 124.73899841308594, - 596.3569946289062 - ], - "bbox": [ - 124.73899841308594, - 588.8850708007812, - 145.77005004882812, - 598.84765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.73899841308594, - 588.8850708007812, - 145.77005004882812, - 598.84765625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "end", - "origin": [ - 106.78099822998047, - 608.31201171875 - ], - "bbox": [ - 106.78099822998047, - 600.840087890625, - 124.75353240966797, - 610.8026733398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 600.840087890625, - 124.75353240966797, - 610.8026733398438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "else if", - "origin": [ - 88.8239974975586, - 621.2630004882812 - ], - "bbox": [ - 88.8239974975586, - 613.7910766601562, - 117.51628112792969, - 623.753662109375 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 2 orders in the book", - "origin": [ - 117.51628112792969, - 621.2630004882812 - ], - "bbox": [ - 117.51628112792969, - 613.7910766601562, - 207.99395751953125, - 623.753662109375 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " then", - "origin": [ - 207.99395751953125, - 621.2630004882812 - ], - "bbox": [ - 207.99395751953125, - 613.7910766601562, - 234.809814453125, - 623.753662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.8239974975586, - 613.7910766601562, - 234.809814453125, - 623.753662109375 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 106.78099822998047, - 625.7470703125, - 320.15081787109375, - 635.7096557617188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "if", - "origin": [ - 106.78099822998047, - 633.218994140625 - ], - "bbox": [ - 106.78099822998047, - 625.7470703125, - 113.45594024658203, - 635.7096557617188 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " current time - quote time", - "origin": [ - 113.45594024658203, - 633.218994140625 - ], - "bbox": [ - 113.45594024658203, - 625.7470703125, - 228.1270751953125, - 635.7096557617188 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " >", - "origin": [ - 228.1270751953125, - 633.218994140625 - ], - "bbox": [ - 228.1270751953125, - 625.7470703125, - 239.41793823242188, - 635.7096557617188 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " update time", - "origin": [ - 239.41793823242188, - 633.218994140625 - ], - "bbox": [ - 239.41793823242188, - 625.7470703125, - 293.6598205566406, - 635.7096557617188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " then", - "origin": [ - 293.6598205566406, - 633.218994140625 - ], - "bbox": [ - 293.6598205566406, - 625.7470703125, - 320.15081787109375, - 635.7096557617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 625.7470703125, - 320.15081787109375, - 635.7096557617188 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 106.78099822998047, - 636.2520751953125, - 339.154052734375, - 658.169677734375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "Cancel both order Quote new bid and ask prices", - "origin": [ - 124.73899841308594, - 643.7239990234375 - ], - "bbox": [ - 124.73899841308594, - 636.2520751953125, - 339.154052734375, - 646.2146606445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.73899841308594, - 636.2520751953125, - 339.154052734375, - 646.2146606445312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "else", - "origin": [ - 106.78099822998047, - 655.6790161132812 - ], - "bbox": [ - 106.78099822998047, - 648.2070922851562, - 124.982666015625, - 658.169677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 648.2070922851562, - 124.982666015625, - 658.169677734375 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 70.86599731445312, - 658.60107421875, - 145.77005004882812, - 706.4216918945312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "Wait", - "origin": [ - 124.73899841308594, - 666.072998046875 - ], - "bbox": [ - 124.73899841308594, - 658.60107421875, - 145.77005004882812, - 668.5636596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.73899841308594, - 658.60107421875, - 145.77005004882812, - 668.5636596679688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "end", - "origin": [ - 106.78099822998047, - 678.0280151367188 - ], - "bbox": [ - 106.78099822998047, - 670.5560913085938, - 124.75353240966797, - 680.5186767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 670.5560913085938, - 124.75353240966797, - 680.5186767578125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "end", - "origin": [ - 88.8239974975586, - 690.97998046875 - ], - "bbox": [ - 88.8239974975586, - 683.508056640625, - 106.7965316772461, - 693.4706420898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.8239974975586, - 683.508056640625, - 106.7965316772461, - 693.4706420898438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "end", - "origin": [ - 70.86599731445312, - 703.9310302734375 - ], - "bbox": [ - 70.86599731445312, - 696.4591064453125, - 88.83853149414062, - 706.4216918945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 696.4591064453125, - 88.83853149414062, - 706.4216918945312 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 303.0740051269531, - 742.0555419921875, - 308.92010498046875, - 754.022705078125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "5", - "origin": [ - 303.0740051269531, - 751.02197265625 - ], - "bbox": [ - 303.0740051269531, - 742.0555419921875, - 308.92010498046875, - 754.022705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 303.0740051269531, - 742.0555419921875, - 308.92010498046875, - 754.022705078125 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 213, - 97, - 404, - 241 - ], - "image_path": "images/0_213_97_404_241.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 97, - 612.0, - 754.022705078125 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 218.7359161376953, - 244.05642700195312, - 401.4249572753906, - 250.0885772705078 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "-600", - "origin": [ - 218.7359161376953, - 248.94436645507812 - ], - "bbox": [ - 218.7359161376953, - 244.05642700195312, - 229.54310607910156, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 218.7359161376953, - 244.05642700195312, - 229.54310607910156, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "-400", - "origin": [ - 247.53271484375, - 248.94436645507812 - ], - "bbox": [ - 247.53271484375, - 244.05642700195312, - 258.33990478515625, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 247.53271484375, - 244.05642700195312, - 258.33990478515625, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "-200", - "origin": [ - 276.32952880859375, - 248.94436645507812 - ], - "bbox": [ - 276.32952880859375, - 244.05642700195312, - 287.1366882324219, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 276.32952880859375, - 244.05642700195312, - 287.1366882324219, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "0", - "origin": [ - 309.02825927734375, - 248.94436645507812 - ], - "bbox": [ - 309.02825927734375, - 244.05642700195312, - 312.0311584472656, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 309.02825927734375, - 244.05642700195312, - 312.0311584472656, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "200", - "origin": [ - 334.8221740722656, - 248.94436645507812 - ], - "bbox": [ - 334.8221740722656, - 244.05642700195312, - 343.8313903808594, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 334.8221740722656, - 244.05642700195312, - 343.8313903808594, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "400", - "origin": [ - 363.61895751953125, - 248.94436645507812 - ], - "bbox": [ - 363.61895751953125, - 244.05642700195312, - 372.628173828125, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 363.61895751953125, - 244.05642700195312, - 372.628173828125, - 250.0885772705078 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "600", - "origin": [ - 392.415771484375, - 248.94436645507812 - ], - "bbox": [ - 392.415771484375, - 244.05642700195312, - 401.4249572753906, - 250.0885772705078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 392.415771484375, - 244.05642700195312, - 401.4249572753906, - 250.0885772705078 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 204.56497192382812, - 98.10565948486328, - 210.5971221923828, - 214.63441467285156 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "20", - "origin": [ - 209.45291137695312, - 214.63441467285156 - ], - "bbox": [ - 204.56497192382812, - 208.6283721923828, - 210.5971221923828, - 214.63441467285156 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 204.56497192382812, - 208.6283721923828, - 210.5971221923828, - 214.63441467285156 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "40", - "origin": [ - 209.45291137695312, - 187.37918090820312 - ], - "bbox": [ - 204.56497192382812, - 181.37315368652344, - 210.5971221923828, - 187.37918090820312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 204.56497192382812, - 181.37315368652344, - 210.5971221923828, - 187.37918090820312 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "60", - "origin": [ - 209.45291137695312, - 160.1239013671875 - ], - "bbox": [ - 204.56497192382812, - 154.1178741455078, - 210.5971221923828, - 160.1239013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 204.56497192382812, - 154.1178741455078, - 210.5971221923828, - 160.1239013671875 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "80", - "origin": [ - 209.45291137695312, - 132.86863708496094 - ], - "bbox": [ - 204.56497192382812, - 126.86260223388672, - 210.5971221923828, - 132.86863708496094 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 204.56497192382812, - 126.86260223388672, - 210.5971221923828, - 132.86863708496094 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "100", - "origin": [ - 209.45291137695312, - 107.11483764648438 - ], - "bbox": [ - 204.56497192382812, - 98.10565948486328, - 210.5971221923828, - 107.11483764648438 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 204.56497192382812, - 98.10565948486328, - 210.5971221923828, - 107.11483764648438 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 300.9251708984375, - 257.0149841308594, - 320.13494873046875, - 263.047119140625 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "Position", - "origin": [ - 300.9251708984375, - 261.9029235839844 - ], - "bbox": [ - 300.9251708984375, - 257.0149841308594, - 320.13494873046875, - 263.047119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 300.9251708984375, - 257.0149841308594, - 320.13494873046875, - 263.047119140625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 191.60641479492188, - 154.45327758789062, - 197.63856506347656, - 180.2589111328125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "Order Size", - "origin": [ - 196.49435424804688, - 180.2589111328125 - ], - "bbox": [ - 191.60641479492188, - 154.45327758789062, - 197.63856506347656, - 180.2589111328125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 191.60641479492188, - 154.45327758789062, - 197.63856506347656, - 180.2589111328125 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 349.5140686035156, - 150.92593383789062, - 386.73431396484375, - 163.4373779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "Sell 100 shares", - "origin": [ - 349.5140686035156, - 155.81387329101562 - ], - "bbox": [ - 349.5140686035156, - 150.92593383789062, - 386.73431396484375, - 156.9580841064453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.5140686035156, - 150.92593383789062, - 386.73431396484375, - 156.9580841064453 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": " Buy at function", - "origin": [ - 349.5140686035156, - 162.2931671142578 - ], - "bbox": [ - 349.5140686035156, - 157.4052276611328, - 386.7329406738281, - 163.4373779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.5140686035156, - 157.4052276611328, - 386.7329406738281, - 163.4373779296875 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 234.1765899658203, - 150.92593383789062, - 271.697021484375, - 163.4373779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "Buy 100 shares", - "origin": [ - 234.1765899658203, - 155.81387329101562 - ], - "bbox": [ - 234.1765899658203, - 150.92593383789062, - 271.697021484375, - 156.9580841064453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.1765899658203, - 150.92593383789062, - 271.697021484375, - 156.9580841064453 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": " Sell at function", - "origin": [ - 234.47714233398438, - 162.2931671142578 - ], - "bbox": [ - 234.47714233398438, - 157.4052276611328, - 271.39581298828125, - 163.4373779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.47714233398438, - 157.4052276611328, - 271.39581298828125, - 163.4373779296875 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 204.3939971923828, - 264.4266052246094, - 407.6073303222656, - 276.3937683105469 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Figure 1:", - "origin": [ - 204.3939971923828, - 273.39300537109375 - ], - "bbox": [ - 204.3939971923828, - 264.4266052246094, - 257.3674621582031, - 276.3937683105469 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " Dynamic order size function", - "origin": [ - 257.3674621582031, - 273.39300537109375 - ], - "bbox": [ - 257.3674621582031, - 264.4266052246094, - 407.6073303222656, - 276.3937683105469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 204.3939971923828, - 264.4266052246094, - 407.6073303222656, - 276.3937683105469 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 70.86599731445312, - 301.5943603515625, - 180.2700958251953, - 315.95489501953125 - ], - "lines": [ - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "2.3", - "origin": [ - 70.86599731445312, - 312.35400390625 - ], - "bbox": [ - 70.86599731445312, - 301.5943603515625, - 91.49583435058594, - 315.95489501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 301.5943603515625, - 91.49583435058594, - 315.95489501953125 - ] - }, - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Algorithm", - "origin": [ - 107.649658203125, - 312.35400390625 - ], - "bbox": [ - 107.649658203125, - 301.5943603515625, - 180.2700958251953, - 315.95489501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.649658203125, - 301.5943603515625, - 180.2700958251953, - 315.95489501953125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 70.86599731445312, - 322.99261474609375, - 541.1835327148438, - 378.29681396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "As a market maker, we are interested in implementing an algorithm that places bid and ask", - "origin": [ - 70.86599731445312, - 331.9590148925781 - ], - "bbox": [ - 70.86599731445312, - 322.99261474609375, - 541.1834106445312, - 334.95977783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 322.99261474609375, - 541.1834106445312, - 334.95977783203125 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "quotes in the limit order book at all times. However, we are aware that in very brief periods,", - "origin": [ - 70.86599731445312, - 346.405029296875 - ], - "bbox": [ - 70.86599731445312, - 337.4386291503906, - 541.1835327148438, - 349.4057922363281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 337.4386291503906, - 541.1835327148438, - 349.4057922363281 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "we must hold one-sided quotes for the sake of profitability. This situation occurs when both", - "origin": [ - 70.86599731445312, - 360.8510437011719 - ], - "bbox": [ - 70.86599731445312, - 351.8846435546875, - 541.15966796875, - 363.851806640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 351.8846435546875, - 541.15966796875, - 363.851806640625 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "buy and sell orders are not filled at the same time interval.", - "origin": [ - 70.86599731445312, - 375.2960510253906 - ], - "bbox": [ - 70.86599731445312, - 366.32965087890625, - 373.1651916503906, - 378.29681396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 366.32965087890625, - 373.1651916503906, - 378.29681396484375 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 70.86599731445312, - 395.2216491699219, - 541.195556640625, - 479.4178771972656 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Therefore, our strategy iterates as follows. During the trading day, we quote a bid and ask", - "origin": [ - 70.86599731445312, - 404.18804931640625 - ], - "bbox": [ - 70.86599731445312, - 395.2216491699219, - 541.195556640625, - 407.1888122558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 395.2216491699219, - 541.195556640625, - 407.1888122558594 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "spread if we have no orders in the limit order book. If only one of these orders is filled, we", - "origin": [ - 70.86599731445312, - 418.6340637207031 - ], - "bbox": [ - 70.86599731445312, - 409.66766357421875, - 541.1597290039062, - 421.63482666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 409.66766357421875, - 541.1597290039062, - 421.63482666015625 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "wait for 5 seconds for the outstanding order to be executed. If this does not happen, then", - "origin": [ - 70.86599731445312, - 433.080078125 - ], - "bbox": [ - 70.86599731445312, - 424.1136779785156, - 541.15966796875, - 436.0808410644531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 424.1136779785156, - 541.15966796875, - 436.0808410644531 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "we cancel the order and place new bid and ask quotes. Finally, whenever we have two orders", - "origin": [ - 70.86599731445312, - 447.52508544921875 - ], - "bbox": [ - 70.86599731445312, - 438.5586853027344, - 541.15966796875, - 450.5258483886719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 438.5586853027344, - 541.15966796875, - 450.5258483886719 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "in the limit order book, we update our quotes every second. The summary of the trading", - "origin": [ - 70.86599731445312, - 461.9710998535156 - ], - "bbox": [ - 70.86599731445312, - 453.00469970703125, - 541.1715087890625, - 464.97186279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 453.00469970703125, - 541.1715087890625, - 464.97186279296875 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "algorithm is shown in Algorithm 1.", - "origin": [ - 70.86599731445312, - 476.4171142578125 - ], - "bbox": [ - 70.86599731445312, - 467.4507141113281, - 250.50485229492188, - 479.4178771972656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 467.4507141113281, - 250.50485229492188, - 479.4178771972656 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 70.86599731445312, - 493.0885925292969, - 282.3121032714844, - 505.0557556152344 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Algorithm 1", - "origin": [ - 70.86599731445312, - 502.05499267578125 - ], - "bbox": [ - 70.86599731445312, - 493.0885925292969, - 142.5972137451172, - 505.0557556152344 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " Market Making Algorithm", - "origin": [ - 142.5972137451172, - 502.05499267578125 - ], - "bbox": [ - 142.5972137451172, - 493.0885925292969, - 282.3121032714844, - 505.0557556152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 493.0885925292969, - 282.3121032714844, - 505.0557556152344 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 70.86599731445312, - 509.6600036621094, - 223.3946075439453, - 519.6226196289062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "while", - "origin": [ - 70.86599731445312, - 517.1319580078125 - ], - "bbox": [ - 70.86599731445312, - 509.6600036621094, - 97.1174545288086, - 519.6226196289062 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " current time", - "origin": [ - 97.1174545288086, - 517.1319580078125 - ], - "bbox": [ - 97.1174545288086, - 509.6600036621094, - 154.4302978515625, - 519.6226196289062 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " <", - "origin": [ - 154.4302978515625, - 517.1319580078125 - ], - "bbox": [ - 154.4302978515625, - 509.6600036621094, - 165.72293090820312, - 519.6226196289062 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " end time", - "origin": [ - 165.72293090820312, - 517.1319580078125 - ], - "bbox": [ - 165.72293090820312, - 509.6600036621094, - 207.23257446289062, - 519.6226196289062 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " do", - "origin": [ - 207.23257446289062, - 517.1319580078125 - ], - "bbox": [ - 207.23257446289062, - 509.6600036621094, - 223.3946075439453, - 519.6226196289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 509.6600036621094, - 223.3946075439453, - 519.6226196289062 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 88.8239974975586, - 521.6151123046875, - 218.38882446289062, - 531.5776977539062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "if", - "origin": [ - 88.8239974975586, - 529.0870361328125 - ], - "bbox": [ - 88.8239974975586, - 521.6151123046875, - 95.49893951416016, - 531.5776977539062 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " no orders in the book", - "origin": [ - 95.49893951416016, - 529.0870361328125 - ], - "bbox": [ - 95.49893951416016, - 521.6151123046875, - 191.5699462890625, - 531.5776977539062 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " then", - "origin": [ - 191.5699462890625, - 529.0870361328125 - ], - "bbox": [ - 191.5699462890625, - 521.6151123046875, - 218.38882446289062, - 531.5776977539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.8239974975586, - 521.6151123046875, - 218.38882446289062, - 531.5776977539062 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 88.8239974975586, - 532.1200561523438, - 230.73681640625, - 554.0376586914062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "Quote bid and ask prices", - "origin": [ - 106.78099822998047, - 539.5919799804688 - ], - "bbox": [ - 106.78099822998047, - 532.1200561523438, - 215.692138671875, - 542.0826416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 532.1200561523438, - 215.692138671875, - 542.0826416015625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "else if", - "origin": [ - 88.8239974975586, - 551.5469970703125 - ], - "bbox": [ - 88.8239974975586, - 544.0750732421875, - 117.51628112792969, - 554.0376586914062 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 1 order in the book", - "origin": [ - 117.51628112792969, - 551.5469970703125 - ], - "bbox": [ - 117.51628112792969, - 544.0750732421875, - 203.91925048828125, - 554.0376586914062 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " then", - "origin": [ - 203.91925048828125, - 551.5469970703125 - ], - "bbox": [ - 203.91925048828125, - 544.0750732421875, - 230.73681640625, - 554.0376586914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.8239974975586, - 544.0750732421875, - 230.73681640625, - 554.0376586914062 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 106.78099822998047, - 556.0300903320312, - 340.81182861328125, - 565.99267578125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "if", - "origin": [ - 106.78099822998047, - 563.5020141601562 - ], - "bbox": [ - 106.78099822998047, - 556.0300903320312, - 113.45594024658203, - 565.99267578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " current time - execution time", - "origin": [ - 113.45594024658203, - 563.5020141601562 - ], - "bbox": [ - 113.45594024658203, - 556.0300903320312, - 245.48193359375, - 565.99267578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " >", - "origin": [ - 245.48193359375, - 563.5020141601562 - ], - "bbox": [ - 245.48193359375, - 556.0300903320312, - 256.7689514160156, - 565.99267578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " waiting time", - "origin": [ - 256.7689514160156, - 563.5020141601562 - ], - "bbox": [ - 256.7689514160156, - 556.0300903320312, - 314.3194274902344, - 565.99267578125 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " then", - "origin": [ - 314.3194274902344, - 563.5020141601562 - ], - "bbox": [ - 314.3194274902344, - 556.0300903320312, - 340.81182861328125, - 565.99267578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 556.0300903320312, - 340.81182861328125, - 565.99267578125 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 106.78099822998047, - 566.5350952148438, - 387.64208984375, - 588.4526977539062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "Cancel the outstanding order Quote new bid and ask prices", - "origin": [ - 124.73899841308594, - 574.0070190429688 - ], - "bbox": [ - 124.73899841308594, - 566.5350952148438, - 387.64208984375, - 576.4976806640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.73899841308594, - 566.5350952148438, - 387.64208984375, - 576.4976806640625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "else", - "origin": [ - 106.78099822998047, - 585.9620361328125 - ], - "bbox": [ - 106.78099822998047, - 578.4901123046875, - 124.982666015625, - 588.4526977539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 578.4901123046875, - 124.982666015625, - 588.4526977539062 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 88.8239974975586, - 588.8850708007812, - 234.809814453125, - 623.753662109375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "Wait", - "origin": [ - 124.73899841308594, - 596.3569946289062 - ], - "bbox": [ - 124.73899841308594, - 588.8850708007812, - 145.77005004882812, - 598.84765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.73899841308594, - 588.8850708007812, - 145.77005004882812, - 598.84765625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "end", - "origin": [ - 106.78099822998047, - 608.31201171875 - ], - "bbox": [ - 106.78099822998047, - 600.840087890625, - 124.75353240966797, - 610.8026733398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 600.840087890625, - 124.75353240966797, - 610.8026733398438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "else if", - "origin": [ - 88.8239974975586, - 621.2630004882812 - ], - "bbox": [ - 88.8239974975586, - 613.7910766601562, - 117.51628112792969, - 623.753662109375 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 2 orders in the book", - "origin": [ - 117.51628112792969, - 621.2630004882812 - ], - "bbox": [ - 117.51628112792969, - 613.7910766601562, - 207.99395751953125, - 623.753662109375 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " then", - "origin": [ - 207.99395751953125, - 621.2630004882812 - ], - "bbox": [ - 207.99395751953125, - 613.7910766601562, - 234.809814453125, - 623.753662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.8239974975586, - 613.7910766601562, - 234.809814453125, - 623.753662109375 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 106.78099822998047, - 625.7470703125, - 320.15081787109375, - 635.7096557617188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "if", - "origin": [ - 106.78099822998047, - 633.218994140625 - ], - "bbox": [ - 106.78099822998047, - 625.7470703125, - 113.45594024658203, - 635.7096557617188 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " current time - quote time", - "origin": [ - 113.45594024658203, - 633.218994140625 - ], - "bbox": [ - 113.45594024658203, - 625.7470703125, - 228.1270751953125, - 635.7096557617188 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " >", - "origin": [ - 228.1270751953125, - 633.218994140625 - ], - "bbox": [ - 228.1270751953125, - 625.7470703125, - 239.41793823242188, - 635.7096557617188 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMTI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " update time", - "origin": [ - 239.41793823242188, - 633.218994140625 - ], - "bbox": [ - 239.41793823242188, - 625.7470703125, - 293.6598205566406, - 635.7096557617188 - ] - }, - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " then", - "origin": [ - 293.6598205566406, - 633.218994140625 - ], - "bbox": [ - 293.6598205566406, - 625.7470703125, - 320.15081787109375, - 635.7096557617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 625.7470703125, - 320.15081787109375, - 635.7096557617188 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 106.78099822998047, - 636.2520751953125, - 339.154052734375, - 658.169677734375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "Cancel both order Quote new bid and ask prices", - "origin": [ - 124.73899841308594, - 643.7239990234375 - ], - "bbox": [ - 124.73899841308594, - 636.2520751953125, - 339.154052734375, - 646.2146606445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.73899841308594, - 636.2520751953125, - 339.154052734375, - 646.2146606445312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "else", - "origin": [ - 106.78099822998047, - 655.6790161132812 - ], - "bbox": [ - 106.78099822998047, - 648.2070922851562, - 124.982666015625, - 658.169677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 648.2070922851562, - 124.982666015625, - 658.169677734375 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 70.86599731445312, - 658.60107421875, - 145.77005004882812, - 706.4216918945312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "Wait", - "origin": [ - 124.73899841308594, - 666.072998046875 - ], - "bbox": [ - 124.73899841308594, - 658.60107421875, - 145.77005004882812, - 668.5636596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 124.73899841308594, - 658.60107421875, - 145.77005004882812, - 668.5636596679688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "end", - "origin": [ - 106.78099822998047, - 678.0280151367188 - ], - "bbox": [ - 106.78099822998047, - 670.5560913085938, - 124.75353240966797, - 680.5186767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.78099822998047, - 670.5560913085938, - 124.75353240966797, - 680.5186767578125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "end", - "origin": [ - 88.8239974975586, - 690.97998046875 - ], - "bbox": [ - 88.8239974975586, - 683.508056640625, - 106.7965316772461, - 693.4706420898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 88.8239974975586, - 683.508056640625, - 106.7965316772461, - 693.4706420898438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "end", - "origin": [ - 70.86599731445312, - 703.9310302734375 - ], - "bbox": [ - 70.86599731445312, - 696.4591064453125, - 88.83853149414062, - 706.4216918945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 696.4591064453125, - 88.83853149414062, - 706.4216918945312 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 303.0740051269531, - 742.0555419921875, - 308.92010498046875, - 754.022705078125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "5", - "origin": [ - 303.0740051269531, - 751.02197265625 - ], - "bbox": [ - 303.0740051269531, - 742.0555419921875, - 308.92010498046875, - 754.022705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 303.0740051269531, - 742.0555419921875, - 308.92010498046875, - 754.022705078125 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 4, - "type": 0, - "bbox": [ - 349.5140686035156, - 150.92593383789062, - 386.73431396484375, - 163.4373779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "Sell 100 shares", - "origin": [ - 349.5140686035156, - 155.81387329101562 - ], - "bbox": [ - 349.5140686035156, - 150.92593383789062, - 386.73431396484375, - 156.9580841064453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.5140686035156, - 150.92593383789062, - 386.73431396484375, - 156.9580841064453 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": " Buy at function", - "origin": [ - 349.5140686035156, - 162.2931671142578 - ], - "bbox": [ - 349.5140686035156, - 157.4052276611328, - 386.7329406738281, - 163.4373779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.5140686035156, - 157.4052276611328, - 386.7329406738281, - 163.4373779296875 - ] - } - ], - "tag": "on-image" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 234.1765899658203, - 150.92593383789062, - 271.697021484375, - 163.4373779296875 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "Buy 100 shares", - "origin": [ - 234.1765899658203, - 155.81387329101562 - ], - "bbox": [ - 234.1765899658203, - 150.92593383789062, - 271.697021484375, - 156.9580841064453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.1765899658203, - 150.92593383789062, - 271.697021484375, - 156.9580841064453 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": " Sell at function", - "origin": [ - 234.47714233398438, - 162.2931671142578 - ], - "bbox": [ - 234.47714233398438, - 157.4052276611328, - 271.39581298828125, - 163.4373779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.47714233398438, - 157.4052276611328, - 271.39581298828125, - 163.4373779296875 - ] - } - ], - "tag": "on-image" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 204.56497192382812, - 98.10565948486328, - 210.5971221923828, - 214.63441467285156 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "20", - "origin": [ - 209.45291137695312, - 214.63441467285156 - ], - "bbox": [ - 204.56497192382812, - 208.6283721923828, - 210.5971221923828, - 214.63441467285156 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 204.56497192382812, - 208.6283721923828, - 210.5971221923828, - 214.63441467285156 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "40", - "origin": [ - 209.45291137695312, - 187.37918090820312 - ], - "bbox": [ - 204.56497192382812, - 181.37315368652344, - 210.5971221923828, - 187.37918090820312 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 204.56497192382812, - 181.37315368652344, - 210.5971221923828, - 187.37918090820312 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "60", - "origin": [ - 209.45291137695312, - 160.1239013671875 - ], - "bbox": [ - 204.56497192382812, - 154.1178741455078, - 210.5971221923828, - 160.1239013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 204.56497192382812, - 154.1178741455078, - 210.5971221923828, - 160.1239013671875 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "80", - "origin": [ - 209.45291137695312, - 132.86863708496094 - ], - "bbox": [ - 204.56497192382812, - 126.86260223388672, - 210.5971221923828, - 132.86863708496094 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 204.56497192382812, - 126.86260223388672, - 210.5971221923828, - 132.86863708496094 - ] - }, - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "100", - "origin": [ - 209.45291137695312, - 107.11483764648438 - ], - "bbox": [ - 204.56497192382812, - 98.10565948486328, - 210.5971221923828, - 107.11483764648438 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 204.56497192382812, - 98.10565948486328, - 210.5971221923828, - 107.11483764648438 - ] - } - ], - "tag": "vertical_text" - }, - { - "number": 3, - "type": 0, - "bbox": [ - 191.60641479492188, - 154.45327758789062, - 197.63856506347656, - 180.2589111328125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.399400234222412, - "flags": 4, - "font": "ArialMT", - "color": 0, - "ascender": 0.9052734375, - "descender": -0.2119140625, - "text": "Order Size", - "origin": [ - 196.49435424804688, - 180.2589111328125 - ], - "bbox": [ - 191.60641479492188, - 154.45327758789062, - 197.63856506347656, - 180.2589111328125 - ] - } - ], - "wmode": 0, - "dir": [ - 0.0, - -1.0 - ], - "bbox": [ - 191.60641479492188, - 154.45327758789062, - 197.63856506347656, - 180.2589111328125 - ] - } - ], - "tag": "rotate" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\347\272\2572\345\210\227_10.1002_mrm.24141_4.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\347\272\2572\345\210\227_10.1002_mrm.24141_4.pdf/preproc_out.json" deleted file mode 100644 index 16ee9fe5f..000000000 --- "a/tests/assets/pre_proc_results/\347\272\2572\345\210\227_10.1002_mrm.24141_4.pdf/preproc_out.json" +++ /dev/null @@ -1,11506 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 60.49040222167969, - 74.48785400390625, - 300.5429382324219, - 303.50885009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "provide the filtered displacements at each data point", - "origin": [ - 60.49129867553711, - 81.21282958984375 - ], - "bbox": [ - 60.49129867553711, - 74.48785400390625, - 300.4942932128906, - 83.48785400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 74.48785400390625, - 300.4942932128906, - 83.48785400390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "using a Cooley-Tukey wavenumber filter with a window", - "origin": [ - 60.49129867553711, - 92.2108154296875 - ], - "bbox": [ - 60.49129867553711, - 85.48583984375, - 300.5293884277344, - 94.48583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 85.48583984375, - 300.5293884277344, - 94.48583984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "width from 10 to 100 with", - "origin": [ - 60.49129867553711, - 103.20880126953125 - ], - "bbox": [ - 60.49129867553711, - 96.48382568359375, - 177.07821655273438, - 105.48382568359375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMP13", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " D", - "origin": [ - 177.07821655273438, - 103.20880126953125 - ], - "bbox": [ - 177.07821655273438, - 95.99079895019531, - 187.24099731445312, - 105.92680358886719 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "k", - "origin": [ - 187.25628662109375, - 103.20880126953125 - ], - "bbox": [ - 187.25628662109375, - 96.5511474609375, - 192.2242889404297, - 105.55113983154297 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 192.2242889404297, - 103.20880126953125 - ], - "bbox": [ - 192.2242889404297, - 96.27880096435547, - 203.3140869140625, - 111.83080291748047 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 1 for the longitudinal", - "origin": [ - 203.3140869140625, - 103.20880126953125 - ], - "bbox": [ - 203.3140869140625, - 96.48382568359375, - 300.50604248046875, - 105.48382568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 95.99079895019531, - 300.50604248046875, - 111.83080291748047 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "components, and from 100 to 200 with", - "origin": [ - 60.49040222167969, - 114.20770263671875 - ], - "bbox": [ - 60.49040222167969, - 107.48272705078125, - 231.3914031982422, - 116.48272705078125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMP13", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " D", - "origin": [ - 231.3914031982422, - 114.20770263671875 - ], - "bbox": [ - 231.3914031982422, - 106.98970031738281, - 241.72250366210938, - 116.92570495605469 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "k", - "origin": [ - 241.73779296875, - 114.20770263671875 - ], - "bbox": [ - 241.73779296875, - 107.550048828125, - 246.70579528808594, - 116.55004119873047 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 246.70579528808594, - 114.20770263671875 - ], - "bbox": [ - 246.70579528808594, - 107.27770233154297, - 258.02239990234375, - 122.82970428466797 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 1 for the", - "origin": [ - 258.02239990234375, - 114.20770263671875 - ], - "bbox": [ - 258.02239990234375, - 107.48272705078125, - 300.5122985839844, - 116.48272705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 106.98970031738281, - 300.5122985839844, - 122.82970428466797 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "transverse", - "origin": [ - 60.49040222167969, - 125.2056884765625 - ], - "bbox": [ - 60.49040222167969, - 118.480712890625, - 102.4574203491211, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 118.480712890625, - 102.4574203491211, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "components.", - "origin": [ - 110.04171752929688, - 125.2056884765625 - ], - "bbox": [ - 110.04171752929688, - 118.480712890625, - 163.06971740722656, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.04171752929688, - 118.480712890625, - 163.06971740722656, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "These", - "origin": [ - 170.64862060546875, - 125.2056884765625 - ], - "bbox": [ - 170.64862060546875, - 118.480712890625, - 195.19161987304688, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.64862060546875, - 118.480712890625, - 195.19161987304688, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "window", - "origin": [ - 202.79391479492188, - 125.2056884765625 - ], - "bbox": [ - 202.79391479492188, - 118.480712890625, - 236.80490112304688, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.79391479492188, - 118.480712890625, - 236.80490112304688, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "widths", - "origin": [ - 244.40719604492188, - 125.2056884765625 - ], - "bbox": [ - 244.40719604492188, - 118.480712890625, - 272.97320556640625, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 244.40719604492188, - 118.480712890625, - 272.97320556640625, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "were", - "origin": [ - 280.5215148925781, - 125.2056884765625 - ], - "bbox": [ - 280.5215148925781, - 118.480712890625, - 300.4835205078125, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.5215148925781, - 118.480712890625, - 300.4835205078125, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "obtained from an analysis of the longitudinal and trans-", - "origin": [ - 60.49040222167969, - 136.20367431640625 - ], - "bbox": [ - 60.49040222167969, - 129.47869873046875, - 300.5150146484375, - 138.47869873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 129.47869873046875, - 300.5150146484375, - 138.47869873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "verse wavenumber spectra, in an attempt to isolate the", - "origin": [ - 60.49040222167969, - 147.20166015625 - ], - "bbox": [ - 60.49040222167969, - 140.4766845703125, - 300.5168151855469, - 149.4766845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 140.4766845703125, - 300.5168151855469, - 149.4766845703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dominant wave components for each wave type (29).", - "origin": [ - 60.49040222167969, - 158.19964599609375 - ], - "bbox": [ - 60.49040222167969, - 151.47467041015625, - 300.510498046875, - 160.47467041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 151.47467041015625, - 300.510498046875, - 160.47467041015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "While such a limited window width compromises spa-", - "origin": [ - 60.49040222167969, - 169.1976318359375 - ], - "bbox": [ - 60.49040222167969, - 162.47265625, - 300.51593017578125, - 171.47265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 162.47265625, - 300.51593017578125, - 171.47265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tial information concerning the location, this is unimpor-", - "origin": [ - 60.49040222167969, - 180.19561767578125 - ], - "bbox": [ - 60.49040222167969, - 173.47064208984375, - 300.49969482421875, - 182.47064208984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 173.47064208984375, - 300.49969482421875, - 182.47064208984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tant for our purposes since the spatial-spectral filter is", - "origin": [ - 60.49040222167969, - 191.193603515625 - ], - "bbox": [ - 60.49040222167969, - 184.4686279296875, - 300.5249328613281, - 193.4686279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 184.4686279296875, - 300.5249328613281, - 193.4686279296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "performed at each point along the fiber pathways, there-", - "origin": [ - 60.49040222167969, - 202.19158935546875 - ], - "bbox": [ - 60.49040222167969, - 195.46661376953125, - 300.5374755859375, - 204.46661376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 195.46661376953125, - 300.5374755859375, - 204.46661376953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fore each spatial location is directly related to its specific", - "origin": [ - 60.49040222167969, - 213.1895751953125 - ], - "bbox": [ - 60.49040222167969, - 206.464599609375, - 300.5429382324219, - 215.464599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 206.464599609375, - 300.5429382324219, - 215.464599609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "spectrum. The necessary spatial derivatives were subse-", - "origin": [ - 60.49040222167969, - 224.18756103515625 - ], - "bbox": [ - 60.49040222167969, - 217.46258544921875, - 300.49249267578125, - 226.46258544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 217.46258544921875, - 300.49249267578125, - 226.46258544921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "quently performed in", - "origin": [ - 60.49040222167969, - 235.185546875 - ], - "bbox": [ - 60.49040222167969, - 228.4605712890625, - 150.25640869140625, - 237.4605712890625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " k", - "origin": [ - 150.25640869140625, - 235.185546875 - ], - "bbox": [ - 150.25640869140625, - 228.52789306640625, - 158.71820068359375, - 237.52789306640625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "-space, and inversions of the pre-", - "origin": [ - 158.6822052001953, - 235.185546875 - ], - "bbox": [ - 158.6822052001953, - 228.4605712890625, - 300.4654846191406, - 237.4605712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 228.4605712890625, - 300.4654846191406, - 237.52789306640625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "vious equations were performed in real space yielding", - "origin": [ - 60.49040222167969, - 246.18353271484375 - ], - "bbox": [ - 60.49040222167969, - 239.45855712890625, - 300.52850341796875, - 248.45855712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 239.45855712890625, - 300.52850341796875, - 248.45855712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the complex elastic coefficients. It should be pointed out", - "origin": [ - 60.49040222167969, - 257.23822021484375 - ], - "bbox": [ - 60.49040222167969, - 250.51324462890625, - 300.4762878417969, - 259.51324462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 250.51324462890625, - 300.4762878417969, - 259.51324462890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "that the inversions for the moduli occur in the local", - "origin": [ - 60.49040222167969, - 268.23712158203125 - ], - "bbox": [ - 60.49040222167969, - 261.51214599609375, - 300.5401916503906, - 270.51214599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 261.51214599609375, - 300.5401916503906, - 270.51214599609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "coordinate system of the individual fibers, not the global", - "origin": [ - 60.49040222167969, - 279.23602294921875 - ], - "bbox": [ - 60.49040222167969, - 272.51104736328125, - 300.5195007324219, - 281.51104736328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 272.51104736328125, - 300.5195007324219, - 281.51104736328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "reference", - "origin": [ - 60.49040222167969, - 290.23492431640625 - ], - "bbox": [ - 60.49040222167969, - 283.50994873046875, - 98.44340515136719, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 283.50994873046875, - 98.44340515136719, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "frame,", - "origin": [ - 106.75310516357422, - 290.23492431640625 - ], - "bbox": [ - 106.75310516357422, - 283.50994873046875, - 132.70912170410156, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.75310516357422, - 283.50994873046875, - 132.70912170410156, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "so", - "origin": [ - 140.9396209716797, - 290.23492431640625 - ], - "bbox": [ - 140.9396209716797, - 283.50994873046875, - 149.9306182861328, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.9396209716797, - 283.50994873046875, - 149.9306182861328, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "no", - "origin": [ - 158.2313232421875, - 290.23492431640625 - ], - "bbox": [ - 158.2313232421875, - 283.50994873046875, - 168.72532653808594, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.2313232421875, - 283.50994873046875, - 168.72532653808594, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Bond", - "origin": [ - 177.05392456054688, - 290.23492431640625 - ], - "bbox": [ - 177.05392456054688, - 283.50994873046875, - 199.06793212890625, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 177.05392456054688, - 283.50994873046875, - 199.06793212890625, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "transformations", - "origin": [ - 207.32904052734375, - 290.23492431640625 - ], - "bbox": [ - 207.32904052734375, - 283.50994873046875, - 272.2460021972656, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 207.32904052734375, - 283.50994873046875, - 272.2460021972656, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "were", - "origin": [ - 280.52239990234375, - 290.23492431640625 - ], - "bbox": [ - 280.52239990234375, - 283.50994873046875, - 300.4844055175781, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.52239990234375, - 283.50994873046875, - 300.4844055175781, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "required (20).", - "origin": [ - 60.49040222167969, - 301.23382568359375 - ], - "bbox": [ - 60.49040222167969, - 294.50885009765625, - 116.87811279296875, - 303.50885009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 294.50885009765625, - 116.87811279296875, - 303.50885009765625 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 60.49040222167969, - 317.91900634765625, - 209.62222290039062, - 326.91900634765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Three-Dimensional Vector Field MRE", - "origin": [ - 60.49040222167969, - 325.0451354980469 - ], - "bbox": [ - 60.49040222167969, - 317.91900634765625, - 209.62222290039062, - 326.91900634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 317.91900634765625, - 209.62222290039062, - 326.91900634765625 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 60.49040222167969, - 334.874755859375, - 300.53216552734375, - 519.849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "For the MRE measurement, the experiment was run on a", - "origin": [ - 60.49040222167969, - 341.5997314453125 - ], - "bbox": [ - 60.49040222167969, - 334.874755859375, - 300.498779296875, - 343.874755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 334.874755859375, - 300.498779296875, - 343.874755859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "standard 1.5T clinical MRI scanner (Siemens, Erlangen,", - "origin": [ - 60.49040222167969, - 352.59771728515625 - ], - "bbox": [ - 60.49040222167969, - 345.87274169921875, - 300.4843444824219, - 354.87274169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 345.87274169921875, - 300.4843444824219, - 354.87274169921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Germany). A head-cradle extended-piston driver was", - "origin": [ - 60.49040222167969, - 363.595703125 - ], - "bbox": [ - 60.49040222167969, - 356.8707275390625, - 300.5104675292969, - 365.8707275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 356.8707275390625, - 300.5104675292969, - 365.8707275390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "used for 50 Hz harmonic head stimulation. A single-shot", - "origin": [ - 60.49040222167969, - 374.59368896484375 - ], - "bbox": [ - 60.49040222167969, - 367.86871337890625, - 300.51593017578125, - 376.86871337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 367.86871337890625, - 300.51593017578125, - 376.86871337890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "spin-echo EPI sequence was developed for rapid 3D", - "origin": [ - 60.49040222167969, - 385.5916748046875 - ], - "bbox": [ - 60.49040222167969, - 378.86669921875, - 300.5123291015625, - 387.86669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 378.86669921875, - 300.5123291015625, - 387.86669921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "motion field acquisition capable of acquiring a full set of", - "origin": [ - 60.49040222167969, - 396.58966064453125 - ], - "bbox": [ - 60.49040222167969, - 389.86468505859375, - 300.5060119628906, - 398.86468505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 389.86468505859375, - 300.5060119628906, - 398.86468505859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "MRE data within less than 6 mins per volunteer. A full", - "origin": [ - 60.49040222167969, - 407.587646484375 - ], - "bbox": [ - 60.49040222167969, - 400.8626708984375, - 300.48077392578125, - 409.8626708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 400.8626708984375, - 300.48077392578125, - 409.8626708984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "set of MRE data consisted of 30 adjacent transverse", - "origin": [ - 60.49040222167969, - 418.58563232421875 - ], - "bbox": [ - 60.49040222167969, - 411.86065673828125, - 300.48980712890625, - 420.86065673828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 411.86065673828125, - 300.48980712890625, - 420.86065673828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "image slices with a 2", - "origin": [ - 60.49040222167969, - 429.5836181640625 - ], - "bbox": [ - 60.49040222167969, - 422.858642578125, - 148.68592834472656, - 431.858642578125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 148.68592834472656, - 429.5836181640625 - ], - "bbox": [ - 148.68592834472656, - 422.65362548828125, - 158.6389923095703, - 438.20562744140625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 2", - "origin": [ - 158.6389923095703, - 429.5836181640625 - ], - "bbox": [ - 158.6389923095703, - 422.858642578125, - 166.71200561523438, - 431.858642578125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 166.71200561523438, - 429.5836181640625 - ], - "bbox": [ - 166.71200561523438, - 422.65362548828125, - 176.6678009033203, - 438.20562744140625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 2 mm", - "origin": [ - 176.6678009033203, - 429.5836181640625 - ], - "bbox": [ - 176.6678009033203, - 422.858642578125, - 203.6966094970703, - 431.858642578125 - ] - }, - { - "size": 6.363489627838135, - "flags": 5, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "3", - "origin": [ - 203.64089965820312, - 425.5653991699219 - ], - "bbox": [ - 203.64089965820312, - 420.81048583984375, - 207.36685180664062, - 427.1739807128906 - ] - }, - { - "size": 9.0, - "flags": 5, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " ", - "origin": [ - 207.36685180664062, - 425.5653991699219 - ], - "bbox": [ - 207.36685180664062, - 418.8404235839844, - 210.44400024414062, - 427.8404235839844 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "isotropic spatial reso-", - "origin": [ - 210.44400024414062, - 429.5906982421875 - ], - "bbox": [ - 210.44400024414062, - 422.86572265625, - 300.4718933105469, - 431.86572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 418.8404235839844, - 300.4718933105469, - 438.20562744140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "lution (128", - "origin": [ - 60.49139404296875, - 440.58868408203125 - ], - "bbox": [ - 60.49139404296875, - 433.86370849609375, - 108.44071197509766, - 442.86370849609375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 108.44071197509766, - 440.58868408203125 - ], - "bbox": [ - 108.44071197509766, - 433.65869140625, - 120.37289428710938, - 449.210693359375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 112 pixels). The three directions of the", - "origin": [ - 120.37289428710938, - 440.58868408203125 - ], - "bbox": [ - 120.37289428710938, - 433.86370849609375, - 300.5168762207031, - 442.86370849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 433.65869140625, - 300.5168762207031, - 449.210693359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "encoding gradient provided the phase and the three Car-", - "origin": [ - 60.49139404296875, - 451.586669921875 - ], - "bbox": [ - 60.49139404296875, - 444.8616943359375, - 300.4835510253906, - 453.8616943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 444.8616943359375, - 300.4835510253906, - 453.8616943359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tesian components of the displacement field at eight", - "origin": [ - 60.49139404296875, - 462.58465576171875 - ], - "bbox": [ - 60.49139404296875, - 455.85968017578125, - 300.53216552734375, - 464.85968017578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 455.85968017578125, - 300.53216552734375, - 464.85968017578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "equally spaced time steps over one vibration period, and", - "origin": [ - 60.49139404296875, - 473.5826416015625 - ], - "bbox": [ - 60.49139404296875, - 466.857666015625, - 300.4979553222656, - 475.857666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 466.857666015625, - 300.4979553222656, - 475.857666015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "two averages were performed. The motion encoding gra-", - "origin": [ - 60.49139404296875, - 484.58062744140625 - ], - "bbox": [ - 60.49139404296875, - 477.85565185546875, - 300.5205078125, - 486.85565185546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 477.85565185546875, - 300.5205078125, - 486.85565185546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dient was composed of three periods of a 60 Hz cosine", - "origin": [ - 60.49139404296875, - 495.57861328125 - ], - "bbox": [ - 60.49139404296875, - 488.8536376953125, - 300.5159912109375, - 497.8536376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 488.8536376953125, - 300.5159912109375, - 497.8536376953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "approximated by a trapezoidal shape providing the first", - "origin": [ - 60.49139404296875, - 506.57659912109375 - ], - "bbox": [ - 60.49139404296875, - 499.85162353515625, - 300.5169372558594, - 508.85162353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 499.85162353515625, - 300.5169372558594, - 508.85162353515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "moment nulling.", - "origin": [ - 60.49139404296875, - 517.5745849609375 - ], - "bbox": [ - 60.49139404296875, - 510.849609375, - 129.9975128173828, - 519.849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 510.849609375, - 129.9975128173828, - 519.849609375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 60.49139404296875, - 534.259765625, - 160.36172485351562, - 543.259765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Diffusion Tensor Imaging", - "origin": [ - 60.49139404296875, - 541.3858642578125 - ], - "bbox": [ - 60.49139404296875, - 534.259765625, - 160.36172485351562, - 543.259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 534.259765625, - 160.36172485351562, - 543.259765625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 60.49139404296875, - 551.2155151367188, - 300.5412902832031, - 692.2523193359375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "For the fiber position measurement, diffusion tensor imag-", - "origin": [ - 60.49139404296875, - 557.9404907226562 - ], - "bbox": [ - 60.49139404296875, - 551.2155151367188, - 300.4772644042969, - 560.2155151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 551.2155151367188, - 300.4772644042969, - 560.2155151367188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ing (DTI) data was acquired using a single-shot EPI", - "origin": [ - 60.49139404296875, - 568.9384765625 - ], - "bbox": [ - 60.49139404296875, - 562.2135009765625, - 300.4682922363281, - 571.2135009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 562.2135009765625, - 300.4682922363281, - 571.2135009765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "sequence (TR/TE-8500/96 ms) with 12 noncolinear direc-", - "origin": [ - 60.49139404296875, - 579.9365234375 - ], - "bbox": [ - 60.49139404296875, - 573.2115478515625, - 300.48358154296875, - 582.2115478515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 573.2115478515625, - 300.48358154296875, - 582.2115478515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tions and one", - "origin": [ - 60.49139404296875, - 590.9912109375 - ], - "bbox": [ - 60.49139404296875, - 584.2662353515625, - 116.81610107421875, - 593.2662353515625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " B", - "origin": [ - 116.81610107421875, - 590.9912109375 - ], - "bbox": [ - 116.81610107421875, - 584.3335571289062, - 125.20049285888672, - 593.3335571289062 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "0", - "origin": [ - 125.2345962524414, - 592.4692993164062 - ], - "bbox": [ - 125.2345962524414, - 587.71435546875, - 128.96054077148438, - 594.077880859375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " volume (", - "origin": [ - 128.96054077148438, - 592.4692993164062 - ], - "bbox": [ - 128.96054077148438, - 584.2703247070312, - 168.0881805419922, - 594.7443237304688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "b", - "origin": [ - 168.09449768066406, - 590.9953002929688 - ], - "bbox": [ - 168.09449768066406, - 584.337646484375, - 173.0625, - 593.337646484375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "-value", - "origin": [ - 173.02650451660156, - 590.9953002929688 - ], - "bbox": [ - 173.02650451660156, - 584.2703247070312, - 198.51449584960938, - 593.2703247070312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 198.51449584960938, - 590.9953002929688 - ], - "bbox": [ - 198.51449584960938, - 584.0653076171875, - 208.0760955810547, - 599.6173095703125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 1000 mm/s", - "origin": [ - 208.0760955810547, - 590.9953002929688 - ], - "bbox": [ - 208.0760955810547, - 584.2703247070312, - 256.5968933105469, - 593.2703247070312 - ] - }, - { - "size": 6.363489627838135, - "flags": 5, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "2", - "origin": [ - 256.5920104980469, - 586.9700927734375 - ], - "bbox": [ - 256.5920104980469, - 582.2151489257812, - 260.3179626464844, - 588.5786743164062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", six aver-", - "origin": [ - 260.33380126953125, - 590.9953002929688 - ], - "bbox": [ - 260.33380126953125, - 584.2703247070312, - 300.49267578125, - 593.2703247070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 582.2151489257812, - 300.49267578125, - 599.6173095703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ages). Spatial resolution and image slice positions were the", - "origin": [ - 60.49150085449219, - 601.9932861328125 - ], - "bbox": [ - 60.49150085449219, - 595.268310546875, - 300.5205383300781, - 604.268310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 595.268310546875, - 300.5205383300781, - 604.268310546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "same as in MRE. Total acquisition time was 12 mins per", - "origin": [ - 60.49150085449219, - 612.9913330078125 - ], - "bbox": [ - 60.49150085449219, - 606.266357421875, - 300.4755554199219, - 615.266357421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 606.266357421875, - 300.4755554199219, - 615.266357421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "volunteer. Tensor calculation and tractography along the", - "origin": [ - 60.49150085449219, - 623.9893188476562 - ], - "bbox": [ - 60.49150085449219, - 617.2643432617188, - 300.51971435546875, - 626.2643432617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 617.2643432617188, - 300.51971435546875, - 626.2643432617188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CST was performed using the tools from the FMRIB Soft-", - "origin": [ - 60.49150085449219, - 634.9873046875 - ], - "bbox": [ - 60.49150085449219, - 628.2623291015625, - 300.5169677734375, - 637.2623291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 628.2623291015625, - 300.5169677734375, - 637.2623291015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ware Library (FSL), i.e., dtifit and probtrackx (30). The cen-", - "origin": [ - 60.49150085449219, - 645.9852905273438 - ], - "bbox": [ - 60.49150085449219, - 639.2603149414062, - 300.5412902832031, - 648.2603149414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 639.2603149414062, - 300.5412902832031, - 648.2603149414062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tral part of the CST was obtained by tracking from a seed", - "origin": [ - 60.49150085449219, - 656.9832763671875 - ], - "bbox": [ - 60.49150085449219, - 650.25830078125, - 300.4881896972656, - 659.25830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 650.25830078125, - 300.4881896972656, - 659.25830078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "region below the primary motor cortex to a target region in", - "origin": [ - 60.49150085449219, - 667.9813232421875 - ], - "bbox": [ - 60.49150085449219, - 661.25634765625, - 300.4971923828125, - 670.25634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 661.25634765625, - 300.4971923828125, - 670.25634765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the medulla oblongata, i.e., the pyramids that may be eas-", - "origin": [ - 60.49150085449219, - 678.9793090820312 - ], - "bbox": [ - 60.49150085449219, - 672.2543334960938, - 300.5124816894531, - 681.2543334960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 672.2543334960938, - 300.5124816894531, - 681.2543334960938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ily visualized in color coded fractional anisotropy maps.", - "origin": [ - 60.49150085449219, - 689.977294921875 - ], - "bbox": [ - 60.49150085449219, - 683.2523193359375, - 290.1552734375, - 692.2523193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 683.2523193359375, - 290.1552734375, - 692.2523193359375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 60.49150085449219, - 706.5706176757812, - 100.9636001586914, - 715.66064453125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "RESULTS", - "origin": [ - 60.49150085449219, - 713.7886352539062 - ], - "bbox": [ - 60.49150085449219, - 706.5706176757812, - 100.9636001586914, - 715.66064453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 706.5706176757812, - 100.9636001586914, - 715.66064453125 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 60.491302490234375, - 723.5048217773438, - 300.5342712402344, - 754.5054321289062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "In Fig. 2, we show the MRI of the head as well as the", - "origin": [ - 60.49150085449219, - 730.2297973632812 - ], - "bbox": [ - 60.49150085449219, - 723.5048217773438, - 285.66522216796875, - 732.5048217773438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " u", - "origin": [ - 285.66522216796875, - 730.2297973632812 - ], - "bbox": [ - 285.66522216796875, - 723.5721435546875, - 294.2061767578125, - 732.5721435546875 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "x", - "origin": [ - 294.2361145019531, - 731.7637939453125 - ], - "bbox": [ - 294.2361145019531, - 727.0088500976562, - 297.9620666503906, - 733.3723754882812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ",", - "origin": [ - 297.9779052734375, - 730.2330932617188 - ], - "bbox": [ - 297.9779052734375, - 723.5081176757812, - 300.50689697265625, - 732.5081176757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 723.5048217773438, - 300.50689697265625, - 733.3723754882812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "u", - "origin": [ - 60.491302490234375, - 741.2310791015625 - ], - "bbox": [ - 60.491302490234375, - 734.5734252929688, - 66.01730346679688, - 743.5734252929688 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "y", - "origin": [ - 66.04720306396484, - 742.76220703125 - ], - "bbox": [ - 66.04720306396484, - 738.0072631835938, - 69.77314758300781, - 744.3707885742188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", and", - "origin": [ - 69.78900146484375, - 741.2315063476562 - ], - "bbox": [ - 69.78900146484375, - 734.5065307617188, - 91.4070053100586, - 743.5065307617188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " u", - "origin": [ - 91.4070053100586, - 741.2315063476562 - ], - "bbox": [ - 91.4070053100586, - 734.5738525390625, - 100.54290771484375, - 743.5738525390625 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "z", - "origin": [ - 100.5165023803711, - 742.76220703125 - ], - "bbox": [ - 100.5165023803711, - 738.0072631835938, - 103.89144897460938, - 744.3707885742188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " displacement components at the top and bot-", - "origin": [ - 103.89144897460938, - 742.76220703125 - ], - "bbox": [ - 103.89144897460938, - 734.5065307617188, - 300.5342712402344, - 745.0372314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491302490234375, - 734.5065307617188, - 300.5342712402344, - 745.0372314453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tom of the field of view (FOV) provided by MRE.", - "origin": [ - 60.49169921875, - 752.2304077148438 - ], - "bbox": [ - 60.49169921875, - 745.5054321289062, - 266.0166015625, - 754.5054321289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49169921875, - 745.5054321289062, - 266.0166015625, - 754.5054321289062 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 312.49090576171875, - 74.4879150390625, - 552.53271484375, - 754.5003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "In Fig. 3, we show the CSTs for all five volunteers as", - "origin": [ - 321.506103515625, - 81.212890625 - ], - "bbox": [ - 321.506103515625, - 74.4879150390625, - 552.49658203125, - 83.4879150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.506103515625, - 74.4879150390625, - 552.49658203125, - 83.4879150390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "provided by DTI and tractography, as well as the global", - "origin": [ - 312.49169921875, - 92.21087646484375 - ], - "bbox": [ - 312.49169921875, - 85.48590087890625, - 552.52001953125, - 94.48590087890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 85.48590087890625, - 552.52001953125, - 94.48590087890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "reference frame. Each arrow represents a unit vector rep-", - "origin": [ - 312.49169921875, - 103.2088623046875 - ], - "bbox": [ - 312.49169921875, - 96.48388671875, - 552.5263061523438, - 105.48388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 96.48388671875, - 552.5263061523438, - 105.48388671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "resentative of the direction of highest diffusivity, and it", - "origin": [ - 312.49169921875, - 114.20684814453125 - ], - "bbox": [ - 312.49169921875, - 107.48187255859375, - 552.522705078125, - 116.48187255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 107.48187255859375, - 552.522705078125, - 116.48187255859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "can be observed that there is considerable variation in", - "origin": [ - 312.49169921875, - 125.204833984375 - ], - "bbox": [ - 312.49169921875, - 118.4798583984375, - 552.499267578125, - 127.4798583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 118.4798583984375, - 552.499267578125, - 127.4798583984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the orientation and shape of the individual CSTs. In the", - "origin": [ - 312.49169921875, - 136.20281982421875 - ], - "bbox": [ - 312.49169921875, - 129.47784423828125, - 552.5199584960938, - 138.47784423828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 129.47784423828125, - 552.5199584960938, - 138.47784423828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "lower regions, however, the average radius of the CSTs", - "origin": [ - 312.49169921875, - 147.2008056640625 - ], - "bbox": [ - 312.49169921875, - 140.475830078125, - 552.47314453125, - 149.475830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 140.475830078125, - 552.47314453125, - 149.475830078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "were determined to be on the order of 5 mm while they", - "origin": [ - 312.49169921875, - 158.19879150390625 - ], - "bbox": [ - 312.49169921875, - 151.47381591796875, - 552.4964599609375, - 160.47381591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 151.47381591796875, - 552.4964599609375, - 160.47381591796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "appear be on the order of around 6–8 mm near the top of", - "origin": [ - 312.49169921875, - 169.19677734375 - ], - "bbox": [ - 312.49169921875, - 162.4718017578125, - 552.50732421875, - 171.4718017578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 162.4718017578125, - 552.50732421875, - 171.4718017578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the FOV as the fibers flare out and become less densely", - "origin": [ - 312.49169921875, - 180.19476318359375 - ], - "bbox": [ - 312.49169921875, - 173.46978759765625, - 552.4866333007812, - 182.46978759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 173.46978759765625, - 552.4866333007812, - 182.46978759765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "packed.", - "origin": [ - 312.49169921875, - 191.1927490234375 - ], - "bbox": [ - 312.49169921875, - 184.4677734375, - 344.5406799316406, - 193.4677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 184.4677734375, - 344.5406799316406, - 193.4677734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "In Fig. 4a, we show the results from the DTI and trac-", - "origin": [ - 321.506103515625, - 202.19073486328125 - ], - "bbox": [ - 321.506103515625, - 195.46575927734375, - 552.5109252929688, - 204.46575927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.506103515625, - 195.46575927734375, - 552.5109252929688, - 204.46575927734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tography for an evaluation of the fiber pathways com-", - "origin": [ - 312.49169921875, - 213.188720703125 - ], - "bbox": [ - 312.49169921875, - 206.4637451171875, - 552.4984130859375, - 215.4637451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 206.4637451171875, - 552.4984130859375, - 215.4637451171875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "prising the CSTs for volunteer 3, while in Fig. 4b, we", - "origin": [ - 312.49169921875, - 224.18670654296875 - ], - "bbox": [ - 312.49169921875, - 217.46173095703125, - 552.513671875, - 226.46173095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 217.46173095703125, - 552.513671875, - 226.46173095703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "show the unfiltered waves propagating along these path-", - "origin": [ - 312.49169921875, - 235.1846923828125 - ], - "bbox": [ - 312.49169921875, - 228.459716796875, - 552.4812622070312, - 237.459716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 228.459716796875, - 552.4812622070312, - 237.459716796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ways. Figure 4c portrays the application of the spatial-", - "origin": [ - 312.49169921875, - 246.18267822265625 - ], - "bbox": [ - 312.49169921875, - 239.45770263671875, - 552.5145263671875, - 248.45770263671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 239.45770263671875, - 552.5145263671875, - 248.45770263671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "spectral filter and Helmholtz decomposition for the", - "origin": [ - 312.49169921875, - 257.23736572265625 - ], - "bbox": [ - 312.49169921875, - 250.51239013671875, - 552.5200805664062, - 259.51239013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 250.51239013671875, - 552.5200805664062, - 259.51239013671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "transverse wave components propagating along the CST", - "origin": [ - 312.49169921875, - 268.23626708984375 - ], - "bbox": [ - 312.49169921875, - 261.51129150390625, - 552.4758911132812, - 270.51129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 261.51129150390625, - 552.4758911132812, - 270.51129150390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fibers from the bottom to the top, while Fig. 4d portrays", - "origin": [ - 312.49169921875, - 279.23516845703125 - ], - "bbox": [ - 312.49169921875, - 272.51019287109375, - 552.4866943359375, - 281.51019287109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 272.51019287109375, - 552.4866943359375, - 281.51019287109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the equivalent values for the longitudinal wave compo-", - "origin": [ - 312.49169921875, - 290.23406982421875 - ], - "bbox": [ - 312.49169921875, - 283.50909423828125, - 552.5047607421875, - 292.50909423828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 283.50909423828125, - 552.5047607421875, - 292.50909423828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "nents. In Fig. 4b–d, the arrows indicate the displacement", - "origin": [ - 312.49169921875, - 301.23297119140625 - ], - "bbox": [ - 312.49169921875, - 294.50799560546875, - 552.5325927734375, - 303.50799560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 294.50799560546875, - 552.5325927734375, - 303.50799560546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "directions, while their lengths indicate relative ampli-", - "origin": [ - 312.49169921875, - 312.23187255859375 - ], - "bbox": [ - 312.49169921875, - 305.50689697265625, - 552.5317993164062, - 314.50689697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 305.50689697265625, - 552.5317993164062, - 314.50689697265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tudes. The dynamic range for 4b is", - "origin": [ - 312.49169921875, - 323.23077392578125 - ], - "bbox": [ - 312.49169921875, - 316.50579833984375, - 463.8554992675781, - 325.50579833984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 463.8554992675781, - 323.23077392578125 - ], - "bbox": [ - 463.8554992675781, - 315.9227600097656, - 475.27020263671875, - 325.2917785644531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "80 microns, while", - "origin": [ - 475.2566833496094, - 323.23077392578125 - ], - "bbox": [ - 475.2566833496094, - 316.50579833984375, - 552.5198974609375, - 325.50579833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 315.9227600097656, - 552.5198974609375, - 325.50579833984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "for 4c and d, the dynamic range is", - "origin": [ - 312.49169921875, - 334.228759765625 - ], - "bbox": [ - 312.49169921875, - 327.5037841796875, - 466.6338195800781, - 336.5037841796875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 466.6338195800781, - 334.228759765625 - ], - "bbox": [ - 466.6338195800781, - 326.9207458496094, - 478.5588073730469, - 336.2897644042969 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "2 microns. Addi-", - "origin": [ - 478.60198974609375, - 334.228759765625 - ], - "bbox": [ - 478.60198974609375, - 327.5037841796875, - 552.5117797851562, - 336.5037841796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 326.9207458496094, - 552.5117797851562, - 336.5037841796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tionally, Figures 4b-d represent the displacements in one", - "origin": [ - 312.49169921875, - 345.22674560546875 - ], - "bbox": [ - 312.49169921875, - 338.50177001953125, - 552.5074462890625, - 347.50177001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 338.50177001953125, - 552.5074462890625, - 347.50177001953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "point in time in the harmonic cycle-specifically t", - "origin": [ - 312.49169921875, - 356.2247314453125 - ], - "bbox": [ - 312.49169921875, - 349.499755859375, - 518.17333984375, - 358.499755859375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 518.17333984375, - 356.2247314453125 - ], - "bbox": [ - 518.17333984375, - 349.29473876953125, - 528.1083374023438, - 364.84674072265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 0.", - "origin": [ - 528.1083374023438, - 356.2247314453125 - ], - "bbox": [ - 528.1083374023438, - 349.499755859375, - 538.540283203125, - 358.499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 349.29473876953125, - 538.540283203125, - 364.84674072265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Figure 5 shows a comparison of the real and imaginary", - "origin": [ - 321.50616455078125, - 367.22271728515625 - ], - "bbox": [ - 321.50616455078125, - 360.49774169921875, - 552.510986328125, - 369.49774169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.50616455078125, - 360.49774169921875, - 552.510986328125, - 369.49774169921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "components for the shear coefficient, C", - "origin": [ - 312.49176025390625, - 378.220703125 - ], - "bbox": [ - 312.49176025390625, - 371.4957275390625, - 479.7819519042969, - 380.4957275390625 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 479.7919921875, - 379.7008972167969 - ], - "bbox": [ - 479.7919921875, - 374.94598388671875, - 487.24322509765625, - 381.3094787597656 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", as well as the", - "origin": [ - 487.21881103515625, - 378.2268981933594 - ], - "bbox": [ - 487.21881103515625, - 371.5019226074219, - 552.513916015625, - 380.5019226074219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49176025390625, - 371.4957275390625, - 552.513916015625, - 381.3094787597656 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "corresponding velocity and attenuation for all five volun-", - "origin": [ - 312.49102783203125, - 389.2248840332031 - ], - "bbox": [ - 312.49102783203125, - 382.4999084472656, - 552.531005859375, - 391.4999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49102783203125, - 382.4999084472656, - 552.531005859375, - 391.4999084472656 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "teers in both the right and left CSTs from the base to the", - "origin": [ - 312.49102783203125, - 400.2228698730469 - ], - "bbox": [ - 312.49102783203125, - 393.4978942871094, - 552.5193481445312, - 402.4978942871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49102783203125, - 393.4978942871094, - 552.5193481445312, - 402.4978942871094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "top of the FOV, while Fig. 6 shows the equivalent values", - "origin": [ - 312.49102783203125, - 411.2208557128906 - ], - "bbox": [ - 312.49102783203125, - 404.4958801269531, - 552.5157470703125, - 413.4958801269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49102783203125, - 404.4958801269531, - 552.5157470703125, - 413.4958801269531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "for the longitudinal coefficient, C", - "origin": [ - 312.49102783203125, - 422.2188415527344 - ], - "bbox": [ - 312.49102783203125, - 415.4938659667969, - 451.8875732421875, - 424.4938659667969 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "33", - "origin": [ - 451.84228515625, - 423.6946105957031 - ], - "bbox": [ - 451.84228515625, - 418.939697265625, - 459.29351806640625, - 425.3031921386719 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ".", - "origin": [ - 459.3258972167969, - 422.2206115722656 - ], - "bbox": [ - 459.3258972167969, - 415.4956359863281, - 461.8548889160156, - 424.4956359863281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49102783203125, - 415.4938659667969, - 461.8548889160156, - 425.3031921386719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "As can be observed, both the shear and longitudinal", - "origin": [ - 321.50531005859375, - 433.2185974121094 - ], - "bbox": [ - 321.50531005859375, - 426.4936218261719, - 552.5100708007812, - 435.4936218261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.50531005859375, - 426.4936218261719, - 552.5100708007812, - 435.4936218261719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "coefficients vary as a function of position, decreasing in", - "origin": [ - 312.49090576171875, - 444.2165832519531 - ], - "bbox": [ - 312.49090576171875, - 437.4916076660156, - 552.4993896484375, - 446.4916076660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 437.4916076660156, - 552.4993896484375, - 446.4916076660156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "stiffness as one moves from the base to the top of the", - "origin": [ - 312.49090576171875, - 455.2145690917969 - ], - "bbox": [ - 312.49090576171875, - 448.4895935058594, - 552.5164794921875, - 457.4895935058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 448.4895935058594, - 552.5164794921875, - 457.4895935058594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CST. Utilizing Eqs. 8 and 9 for the evaluation of the ve-", - "origin": [ - 312.49090576171875, - 466.2125549316406 - ], - "bbox": [ - 312.49090576171875, - 459.4875793457031, - 552.5281372070312, - 468.4875793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 459.4875793457031, - 552.5281372070312, - 468.4875793457031 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "locity and attenuation, we see that the shear wave veloc-", - "origin": [ - 312.49090576171875, - 477.2105407714844 - ], - "bbox": [ - 312.49090576171875, - 470.4855651855469, - 552.519287109375, - 479.4855651855469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 470.4855651855469, - 552.519287109375, - 479.4855651855469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ities range from 2 to 2.2 m/s, while the longitudinal", - "origin": [ - 312.49090576171875, - 488.2085266113281 - ], - "bbox": [ - 312.49090576171875, - 481.4835510253906, - 552.50927734375, - 490.4835510253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 481.4835510253906, - 552.50927734375, - 490.4835510253906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "wave velocities range from around 5–7 m/s, and are", - "origin": [ - 312.49090576171875, - 499.2065124511719 - ], - "bbox": [ - 312.49090576171875, - 492.4815368652344, - 552.5263061523438, - 501.4815368652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 492.4815368652344, - 552.5263061523438, - 501.4815368652344 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "rather consistent with position until one reaches the top", - "origin": [ - 312.49090576171875, - 510.2044982910156 - ], - "bbox": [ - 312.49090576171875, - 503.4795227050781, - 552.53271484375, - 512.4795532226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 503.4795227050781, - 552.53271484375, - 512.4795532226562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "of the pathways. There are two particular exceptions to", - "origin": [ - 312.49090576171875, - 521.2025146484375 - ], - "bbox": [ - 312.49090576171875, - 514.4775390625, - 552.5075073242188, - 523.4775390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 514.4775390625, - 552.5075073242188, - 523.4775390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "this concerning the right and left CSTs of Volunteer 1.", - "origin": [ - 312.49090576171875, - 532.200439453125 - ], - "bbox": [ - 312.49090576171875, - 525.4754638671875, - 552.4921875, - 534.4754638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 525.4754638671875, - 552.4921875, - 534.4754638671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "As shown in Fig. 3, there are serious bends near the top", - "origin": [ - 312.49090576171875, - 543.198486328125 - ], - "bbox": [ - 312.49090576171875, - 536.4735107421875, - 552.4760131835938, - 545.4735107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 536.4735107421875, - 552.4760131835938, - 545.4735107421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "of the fiber bundle (although the bending is not so", - "origin": [ - 312.49090576171875, - 554.1964721679688 - ], - "bbox": [ - 312.49090576171875, - 547.4714965820312, - 552.5111694335938, - 556.4714965820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 547.4714965820312, - 552.5111694335938, - 556.4714965820312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "obvious in the left CST due to the perspective angle of", - "origin": [ - 312.49090576171875, - 565.1944580078125 - ], - "bbox": [ - 312.49090576171875, - 558.469482421875, - 552.505615234375, - 567.469482421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 558.469482421875, - 552.505615234375, - 567.469482421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the image). As shown in Fig. 5e, this bend in the right", - "origin": [ - 312.49090576171875, - 576.1924438476562 - ], - "bbox": [ - 312.49090576171875, - 569.4674682617188, - 552.5164794921875, - 578.4674682617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 569.4674682617188, - 552.5164794921875, - 578.4674682617188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CST effects the shear wave velocity by inducing a slow-", - "origin": [ - 312.49090576171875, - 587.1904296875 - ], - "bbox": [ - 312.49090576171875, - 580.4654541015625, - 552.5092163085938, - 589.4654541015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 580.4654541015625, - 552.5092163085938, - 589.4654541015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ing as the shear wave makes the turn along the wave-", - "origin": [ - 312.49090576171875, - 598.1884765625 - ], - "bbox": [ - 312.49090576171875, - 591.4635009765625, - 552.5038452148438, - 600.4635009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 591.4635009765625, - 552.5038452148438, - 600.4635009765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "guide, and has an opposite effect on the longitudinal", - "origin": [ - 312.49090576171875, - 609.1864624023438 - ], - "bbox": [ - 312.49090576171875, - 602.4614868164062, - 552.5110473632812, - 611.4614868164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 602.4614868164062, - 552.5110473632812, - 611.4614868164062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "wave velocity of the left CST as shown in Fig. 6f. The", - "origin": [ - 312.49090576171875, - 620.2411499023438 - ], - "bbox": [ - 312.49090576171875, - 613.5161743164062, - 552.5101928710938, - 622.5161743164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 613.5161743164062, - 552.5101928710938, - 622.5161743164062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "causes of these anomalies are currently unknown and", - "origin": [ - 312.49090576171875, - 631.2391357421875 - ], - "bbox": [ - 312.49090576171875, - 624.51416015625, - 552.4967041015625, - 633.51416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 624.51416015625, - 552.4967041015625, - 633.51416015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "will be addressed in future waveguide analysis.", - "origin": [ - 312.49090576171875, - 642.2371826171875 - ], - "bbox": [ - 312.49090576171875, - 635.51220703125, - 511.9480895996094, - 644.51220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 635.51220703125, - 511.9480895996094, - 644.51220703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "There also appears to be a negative attenuation value", - "origin": [ - 321.50531005859375, - 653.2351684570312 - ], - "bbox": [ - 321.50531005859375, - 646.5101928710938, - 552.518310546875, - 655.5101928710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.50531005859375, - 646.5101928710938, - 552.518310546875, - 655.5101928710938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "(i.e., an increase in wave amplitude) near the base of the", - "origin": [ - 312.49090576171875, - 664.2340698242188 - ], - "bbox": [ - 312.49090576171875, - 657.5090942382812, - 552.5192260742188, - 666.5090942382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 657.5090942382812, - 552.5192260742188, - 666.5090942382812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CST in virtually every volunteer and in both the longitu-", - "origin": [ - 312.49090576171875, - 675.2329711914062 - ], - "bbox": [ - 312.49090576171875, - 668.5079956054688, - 552.5020141601562, - 677.5079956054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 668.5079956054688, - 552.5020141601562, - 677.5079956054688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dinal and shear parameters. As this is very unusual", - "origin": [ - 312.49090576171875, - 686.2318725585938 - ], - "bbox": [ - 312.49090576171875, - 679.5068969726562, - 552.4822998046875, - 688.5068969726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 679.5068969726562, - 552.4822998046875, - 688.5068969726562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "behavior, it was questioned whether the effects that are", - "origin": [ - 312.49090576171875, - 697.2307739257812 - ], - "bbox": [ - 312.49090576171875, - 690.5057983398438, - 552.5291137695312, - 699.5057983398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 690.5057983398438, - 552.5291137695312, - 699.5057983398438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "being evaluated reflect genuine and interesting biological", - "origin": [ - 312.49090576171875, - 708.2296752929688 - ], - "bbox": [ - 312.49090576171875, - 701.5046997070312, - 552.5048828125, - 710.5046997070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 701.5046997070312, - 552.5048828125, - 710.5046997070312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "features of waveguides, or whether they were simply a", - "origin": [ - 312.49090576171875, - 719.2285766601562 - ], - "bbox": [ - 312.49090576171875, - 712.5036010742188, - 552.4993896484375, - 721.5036010742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 712.5036010742188, - 552.4993896484375, - 721.5036010742188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "consequence of the details of our methods. Upon further", - "origin": [ - 312.49090576171875, - 730.2274780273438 - ], - "bbox": [ - 312.49090576171875, - 723.5025024414062, - 552.4949340820312, - 732.5025024414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 723.5025024414062, - 552.4949340820312, - 732.5025024414062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "analysis, it was observed that in this region, the CSTs", - "origin": [ - 312.49090576171875, - 741.2263793945312 - ], - "bbox": [ - 312.49090576171875, - 734.5014038085938, - 552.473388671875, - 743.5014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 734.5014038085938, - 552.473388671875, - 743.5014038085938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "pass", - "origin": [ - 312.49090576171875, - 752.2252807617188 - ], - "bbox": [ - 312.49090576171875, - 745.5003051757812, - 330.56292724609375, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 745.5003051757812, - 330.56292724609375, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "through", - "origin": [ - 338.11663818359375, - 752.2252807617188 - ], - "bbox": [ - 338.11663818359375, - 745.5003051757812, - 370.6246337890625, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.11663818359375, - 745.5003051757812, - 370.6246337890625, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "several", - "origin": [ - 378.1999206542969, - 752.2252807617188 - ], - "bbox": [ - 378.1999206542969, - 745.5003051757812, - 407.1529235839844, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 378.1999206542969, - 745.5003051757812, - 407.1529235839844, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "structures", - "origin": [ - 414.71112060546875, - 752.2252807617188 - ], - "bbox": [ - 414.71112060546875, - 745.5003051757812, - 455.733154296875, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.71112060546875, - 745.5003051757812, - 455.733154296875, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "including", - "origin": [ - 463.2985534667969, - 752.2252807617188 - ], - "bbox": [ - 463.2985534667969, - 745.5003051757812, - 503.3935852050781, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.2985534667969, - 745.5003051757812, - 503.3935852050781, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the", - "origin": [ - 510.9220886230469, - 752.2252807617188 - ], - "bbox": [ - 510.9220886230469, - 745.5003051757812, - 523.945068359375, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.9220886230469, - 745.5003051757812, - 523.945068359375, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "basal", - "origin": [ - 531.5023803710938, - 752.2252807617188 - ], - "bbox": [ - 531.5023803710938, - 745.5003051757812, - 552.4904174804688, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 531.5023803710938, - 745.5003051757812, - 552.4904174804688, - 754.5003051757812 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 180.0, - 95.97156398104265, - 213.6, - 104.60900473933648 - ], - "image_path": "equations_inline/0_180_95_213_104.jpg" - }, - { - "bbox": [ - 234.71999999999997, - 107.00829383886254, - 268.32, - 115.64573459715639 - ], - "image_path": "equations_inline/0_234_107_268_115.jpg" - }, - { - "bbox": [ - 152.64, - 227.93246445497627, - 159.83999999999997, - 237.04976303317534 - ], - "image_path": "equations_inline/0_152_227_159_237.jpg" - }, - { - "bbox": [ - 513.5999999999999, - 349.3364928909952, - 537.12, - 357.49407582938386 - ], - "image_path": "equations_inline/0_513_349_537_357.jpg" - }, - { - "bbox": [ - 472.79999999999995, - 370.4502369668246, - 490.55999999999995, - 381.4869668246445 - ], - "image_path": "equations_inline/0_472_370_490_381.jpg" - }, - { - "bbox": [ - 444.96, - 415.0770142180094, - 459.84, - 425.1540284360189 - ], - "image_path": "equations_inline/0_444_415_459_425.jpg" - }, - { - "bbox": [ - 142.56, - 422.27488151658764, - 185.27999999999997, - 431.87203791469193 - ], - "image_path": "equations_inline/0_142_422_185_431.jpg" - }, - { - "bbox": [ - 118.08, - 583.5071090047393, - 130.56, - 593.5841232227488 - ], - "image_path": "equations_inline/0_118_583_130_593.jpg" - }, - { - "bbox": [ - 288.0, - 725.0651658767772, - 300.0, - 733.2227488151658 - ], - "image_path": "equations_inline/0_288_725_300_733.jpg" - }, - { - "bbox": [ - 59.519999999999996, - 736.1018957345971, - 72.0, - 745.6990521327014 - ], - "image_path": "equations_inline/0_59_736_72_745.jpg" - }, - { - "bbox": [ - 94.08, - 736.1018957345971, - 105.11999999999999, - 743.7796208530805 - ], - "image_path": "equations_inline/0_94_736_105_743.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 50.68699264526367, - 612.0, - 58.686893463134766 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 60.49040222167969, - 74.48785400390625, - 300.5429382324219, - 754.5054321289062 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 312.49090576171875, - 74.48785400390625, - 552.53271484375, - 754.5054321289062 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 60.49040222167969, - 74.48785400390625, - 300.5429382324219, - 303.50885009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "provide the filtered displacements at each data point", - "origin": [ - 60.49129867553711, - 81.21282958984375 - ], - "bbox": [ - 60.49129867553711, - 74.48785400390625, - 300.4942932128906, - 83.48785400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 74.48785400390625, - 300.4942932128906, - 83.48785400390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "using a Cooley-Tukey wavenumber filter with a window", - "origin": [ - 60.49129867553711, - 92.2108154296875 - ], - "bbox": [ - 60.49129867553711, - 85.48583984375, - 300.5293884277344, - 94.48583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 85.48583984375, - 300.5293884277344, - 94.48583984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "width from 10 to 100 with", - "origin": [ - 60.49129867553711, - 103.20880126953125 - ], - "bbox": [ - 60.49129867553711, - 96.48382568359375, - 177.07821655273438, - 105.48382568359375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMP13", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " D", - "origin": [ - 177.07821655273438, - 103.20880126953125 - ], - "bbox": [ - 177.07821655273438, - 95.99079895019531, - 187.24099731445312, - 105.92680358886719 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "k", - "origin": [ - 187.25628662109375, - 103.20880126953125 - ], - "bbox": [ - 187.25628662109375, - 96.5511474609375, - 192.2242889404297, - 105.55113983154297 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 192.2242889404297, - 103.20880126953125 - ], - "bbox": [ - 192.2242889404297, - 96.27880096435547, - 203.3140869140625, - 111.83080291748047 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 1 for the longitudinal", - "origin": [ - 203.3140869140625, - 103.20880126953125 - ], - "bbox": [ - 203.3140869140625, - 96.48382568359375, - 300.50604248046875, - 105.48382568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 95.99079895019531, - 300.50604248046875, - 111.83080291748047 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "components, and from 100 to 200 with", - "origin": [ - 60.49040222167969, - 114.20770263671875 - ], - "bbox": [ - 60.49040222167969, - 107.48272705078125, - 231.3914031982422, - 116.48272705078125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMP13", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " D", - "origin": [ - 231.3914031982422, - 114.20770263671875 - ], - "bbox": [ - 231.3914031982422, - 106.98970031738281, - 241.72250366210938, - 116.92570495605469 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "k", - "origin": [ - 241.73779296875, - 114.20770263671875 - ], - "bbox": [ - 241.73779296875, - 107.550048828125, - 246.70579528808594, - 116.55004119873047 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 246.70579528808594, - 114.20770263671875 - ], - "bbox": [ - 246.70579528808594, - 107.27770233154297, - 258.02239990234375, - 122.82970428466797 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 1 for the", - "origin": [ - 258.02239990234375, - 114.20770263671875 - ], - "bbox": [ - 258.02239990234375, - 107.48272705078125, - 300.5122985839844, - 116.48272705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 106.98970031738281, - 300.5122985839844, - 122.82970428466797 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "transverse", - "origin": [ - 60.49040222167969, - 125.2056884765625 - ], - "bbox": [ - 60.49040222167969, - 118.480712890625, - 102.4574203491211, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 118.480712890625, - 102.4574203491211, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "components.", - "origin": [ - 110.04171752929688, - 125.2056884765625 - ], - "bbox": [ - 110.04171752929688, - 118.480712890625, - 163.06971740722656, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 110.04171752929688, - 118.480712890625, - 163.06971740722656, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "These", - "origin": [ - 170.64862060546875, - 125.2056884765625 - ], - "bbox": [ - 170.64862060546875, - 118.480712890625, - 195.19161987304688, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 170.64862060546875, - 118.480712890625, - 195.19161987304688, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "window", - "origin": [ - 202.79391479492188, - 125.2056884765625 - ], - "bbox": [ - 202.79391479492188, - 118.480712890625, - 236.80490112304688, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 202.79391479492188, - 118.480712890625, - 236.80490112304688, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "widths", - "origin": [ - 244.40719604492188, - 125.2056884765625 - ], - "bbox": [ - 244.40719604492188, - 118.480712890625, - 272.97320556640625, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 244.40719604492188, - 118.480712890625, - 272.97320556640625, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "were", - "origin": [ - 280.5215148925781, - 125.2056884765625 - ], - "bbox": [ - 280.5215148925781, - 118.480712890625, - 300.4835205078125, - 127.480712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.5215148925781, - 118.480712890625, - 300.4835205078125, - 127.480712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "obtained from an analysis of the longitudinal and trans-", - "origin": [ - 60.49040222167969, - 136.20367431640625 - ], - "bbox": [ - 60.49040222167969, - 129.47869873046875, - 300.5150146484375, - 138.47869873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 129.47869873046875, - 300.5150146484375, - 138.47869873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "verse wavenumber spectra, in an attempt to isolate the", - "origin": [ - 60.49040222167969, - 147.20166015625 - ], - "bbox": [ - 60.49040222167969, - 140.4766845703125, - 300.5168151855469, - 149.4766845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 140.4766845703125, - 300.5168151855469, - 149.4766845703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dominant wave components for each wave type (29).", - "origin": [ - 60.49040222167969, - 158.19964599609375 - ], - "bbox": [ - 60.49040222167969, - 151.47467041015625, - 300.510498046875, - 160.47467041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 151.47467041015625, - 300.510498046875, - 160.47467041015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "While such a limited window width compromises spa-", - "origin": [ - 60.49040222167969, - 169.1976318359375 - ], - "bbox": [ - 60.49040222167969, - 162.47265625, - 300.51593017578125, - 171.47265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 162.47265625, - 300.51593017578125, - 171.47265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tial information concerning the location, this is unimpor-", - "origin": [ - 60.49040222167969, - 180.19561767578125 - ], - "bbox": [ - 60.49040222167969, - 173.47064208984375, - 300.49969482421875, - 182.47064208984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 173.47064208984375, - 300.49969482421875, - 182.47064208984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tant for our purposes since the spatial-spectral filter is", - "origin": [ - 60.49040222167969, - 191.193603515625 - ], - "bbox": [ - 60.49040222167969, - 184.4686279296875, - 300.5249328613281, - 193.4686279296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 184.4686279296875, - 300.5249328613281, - 193.4686279296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "performed at each point along the fiber pathways, there-", - "origin": [ - 60.49040222167969, - 202.19158935546875 - ], - "bbox": [ - 60.49040222167969, - 195.46661376953125, - 300.5374755859375, - 204.46661376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 195.46661376953125, - 300.5374755859375, - 204.46661376953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fore each spatial location is directly related to its specific", - "origin": [ - 60.49040222167969, - 213.1895751953125 - ], - "bbox": [ - 60.49040222167969, - 206.464599609375, - 300.5429382324219, - 215.464599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 206.464599609375, - 300.5429382324219, - 215.464599609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "spectrum. The necessary spatial derivatives were subse-", - "origin": [ - 60.49040222167969, - 224.18756103515625 - ], - "bbox": [ - 60.49040222167969, - 217.46258544921875, - 300.49249267578125, - 226.46258544921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 217.46258544921875, - 300.49249267578125, - 226.46258544921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "quently performed in", - "origin": [ - 60.49040222167969, - 235.185546875 - ], - "bbox": [ - 60.49040222167969, - 228.4605712890625, - 150.25640869140625, - 237.4605712890625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " k", - "origin": [ - 150.25640869140625, - 235.185546875 - ], - "bbox": [ - 150.25640869140625, - 228.52789306640625, - 158.71820068359375, - 237.52789306640625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "-space, and inversions of the pre-", - "origin": [ - 158.6822052001953, - 235.185546875 - ], - "bbox": [ - 158.6822052001953, - 228.4605712890625, - 300.4654846191406, - 237.4605712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 228.4605712890625, - 300.4654846191406, - 237.52789306640625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "vious equations were performed in real space yielding", - "origin": [ - 60.49040222167969, - 246.18353271484375 - ], - "bbox": [ - 60.49040222167969, - 239.45855712890625, - 300.52850341796875, - 248.45855712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 239.45855712890625, - 300.52850341796875, - 248.45855712890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the complex elastic coefficients. It should be pointed out", - "origin": [ - 60.49040222167969, - 257.23822021484375 - ], - "bbox": [ - 60.49040222167969, - 250.51324462890625, - 300.4762878417969, - 259.51324462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 250.51324462890625, - 300.4762878417969, - 259.51324462890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "that the inversions for the moduli occur in the local", - "origin": [ - 60.49040222167969, - 268.23712158203125 - ], - "bbox": [ - 60.49040222167969, - 261.51214599609375, - 300.5401916503906, - 270.51214599609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 261.51214599609375, - 300.5401916503906, - 270.51214599609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "coordinate system of the individual fibers, not the global", - "origin": [ - 60.49040222167969, - 279.23602294921875 - ], - "bbox": [ - 60.49040222167969, - 272.51104736328125, - 300.5195007324219, - 281.51104736328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 272.51104736328125, - 300.5195007324219, - 281.51104736328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "reference", - "origin": [ - 60.49040222167969, - 290.23492431640625 - ], - "bbox": [ - 60.49040222167969, - 283.50994873046875, - 98.44340515136719, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 283.50994873046875, - 98.44340515136719, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "frame,", - "origin": [ - 106.75310516357422, - 290.23492431640625 - ], - "bbox": [ - 106.75310516357422, - 283.50994873046875, - 132.70912170410156, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.75310516357422, - 283.50994873046875, - 132.70912170410156, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "so", - "origin": [ - 140.9396209716797, - 290.23492431640625 - ], - "bbox": [ - 140.9396209716797, - 283.50994873046875, - 149.9306182861328, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.9396209716797, - 283.50994873046875, - 149.9306182861328, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "no", - "origin": [ - 158.2313232421875, - 290.23492431640625 - ], - "bbox": [ - 158.2313232421875, - 283.50994873046875, - 168.72532653808594, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.2313232421875, - 283.50994873046875, - 168.72532653808594, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Bond", - "origin": [ - 177.05392456054688, - 290.23492431640625 - ], - "bbox": [ - 177.05392456054688, - 283.50994873046875, - 199.06793212890625, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 177.05392456054688, - 283.50994873046875, - 199.06793212890625, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "transformations", - "origin": [ - 207.32904052734375, - 290.23492431640625 - ], - "bbox": [ - 207.32904052734375, - 283.50994873046875, - 272.2460021972656, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 207.32904052734375, - 283.50994873046875, - 272.2460021972656, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "were", - "origin": [ - 280.52239990234375, - 290.23492431640625 - ], - "bbox": [ - 280.52239990234375, - 283.50994873046875, - 300.4844055175781, - 292.50994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.52239990234375, - 283.50994873046875, - 300.4844055175781, - 292.50994873046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "required (20).", - "origin": [ - 60.49040222167969, - 301.23382568359375 - ], - "bbox": [ - 60.49040222167969, - 294.50885009765625, - 116.87811279296875, - 303.50885009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 294.50885009765625, - 116.87811279296875, - 303.50885009765625 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 60.49040222167969, - 317.91900634765625, - 209.62222290039062, - 326.91900634765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Three-Dimensional Vector Field MRE", - "origin": [ - 60.49040222167969, - 325.0451354980469 - ], - "bbox": [ - 60.49040222167969, - 317.91900634765625, - 209.62222290039062, - 326.91900634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 317.91900634765625, - 209.62222290039062, - 326.91900634765625 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 60.49040222167969, - 334.874755859375, - 300.53216552734375, - 519.849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "For the MRE measurement, the experiment was run on a", - "origin": [ - 60.49040222167969, - 341.5997314453125 - ], - "bbox": [ - 60.49040222167969, - 334.874755859375, - 300.498779296875, - 343.874755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 334.874755859375, - 300.498779296875, - 343.874755859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "standard 1.5T clinical MRI scanner (Siemens, Erlangen,", - "origin": [ - 60.49040222167969, - 352.59771728515625 - ], - "bbox": [ - 60.49040222167969, - 345.87274169921875, - 300.4843444824219, - 354.87274169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 345.87274169921875, - 300.4843444824219, - 354.87274169921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Germany). A head-cradle extended-piston driver was", - "origin": [ - 60.49040222167969, - 363.595703125 - ], - "bbox": [ - 60.49040222167969, - 356.8707275390625, - 300.5104675292969, - 365.8707275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 356.8707275390625, - 300.5104675292969, - 365.8707275390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "used for 50 Hz harmonic head stimulation. A single-shot", - "origin": [ - 60.49040222167969, - 374.59368896484375 - ], - "bbox": [ - 60.49040222167969, - 367.86871337890625, - 300.51593017578125, - 376.86871337890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 367.86871337890625, - 300.51593017578125, - 376.86871337890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "spin-echo EPI sequence was developed for rapid 3D", - "origin": [ - 60.49040222167969, - 385.5916748046875 - ], - "bbox": [ - 60.49040222167969, - 378.86669921875, - 300.5123291015625, - 387.86669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 378.86669921875, - 300.5123291015625, - 387.86669921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "motion field acquisition capable of acquiring a full set of", - "origin": [ - 60.49040222167969, - 396.58966064453125 - ], - "bbox": [ - 60.49040222167969, - 389.86468505859375, - 300.5060119628906, - 398.86468505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 389.86468505859375, - 300.5060119628906, - 398.86468505859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "MRE data within less than 6 mins per volunteer. A full", - "origin": [ - 60.49040222167969, - 407.587646484375 - ], - "bbox": [ - 60.49040222167969, - 400.8626708984375, - 300.48077392578125, - 409.8626708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 400.8626708984375, - 300.48077392578125, - 409.8626708984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "set of MRE data consisted of 30 adjacent transverse", - "origin": [ - 60.49040222167969, - 418.58563232421875 - ], - "bbox": [ - 60.49040222167969, - 411.86065673828125, - 300.48980712890625, - 420.86065673828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 411.86065673828125, - 300.48980712890625, - 420.86065673828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "image slices with a 2", - "origin": [ - 60.49040222167969, - 429.5836181640625 - ], - "bbox": [ - 60.49040222167969, - 422.858642578125, - 148.68592834472656, - 431.858642578125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 148.68592834472656, - 429.5836181640625 - ], - "bbox": [ - 148.68592834472656, - 422.65362548828125, - 158.6389923095703, - 438.20562744140625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 2", - "origin": [ - 158.6389923095703, - 429.5836181640625 - ], - "bbox": [ - 158.6389923095703, - 422.858642578125, - 166.71200561523438, - 431.858642578125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 166.71200561523438, - 429.5836181640625 - ], - "bbox": [ - 166.71200561523438, - 422.65362548828125, - 176.6678009033203, - 438.20562744140625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 2 mm", - "origin": [ - 176.6678009033203, - 429.5836181640625 - ], - "bbox": [ - 176.6678009033203, - 422.858642578125, - 203.6966094970703, - 431.858642578125 - ] - }, - { - "size": 6.363489627838135, - "flags": 5, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "3", - "origin": [ - 203.64089965820312, - 425.5653991699219 - ], - "bbox": [ - 203.64089965820312, - 420.81048583984375, - 207.36685180664062, - 427.1739807128906 - ] - }, - { - "size": 9.0, - "flags": 5, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " ", - "origin": [ - 207.36685180664062, - 425.5653991699219 - ], - "bbox": [ - 207.36685180664062, - 418.8404235839844, - 210.44400024414062, - 427.8404235839844 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "isotropic spatial reso-", - "origin": [ - 210.44400024414062, - 429.5906982421875 - ], - "bbox": [ - 210.44400024414062, - 422.86572265625, - 300.4718933105469, - 431.86572265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 418.8404235839844, - 300.4718933105469, - 438.20562744140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "lution (128", - "origin": [ - 60.49139404296875, - 440.58868408203125 - ], - "bbox": [ - 60.49139404296875, - 433.86370849609375, - 108.44071197509766, - 442.86370849609375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 108.44071197509766, - 440.58868408203125 - ], - "bbox": [ - 108.44071197509766, - 433.65869140625, - 120.37289428710938, - 449.210693359375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 112 pixels). The three directions of the", - "origin": [ - 120.37289428710938, - 440.58868408203125 - ], - "bbox": [ - 120.37289428710938, - 433.86370849609375, - 300.5168762207031, - 442.86370849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 433.65869140625, - 300.5168762207031, - 449.210693359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "encoding gradient provided the phase and the three Car-", - "origin": [ - 60.49139404296875, - 451.586669921875 - ], - "bbox": [ - 60.49139404296875, - 444.8616943359375, - 300.4835510253906, - 453.8616943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 444.8616943359375, - 300.4835510253906, - 453.8616943359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tesian components of the displacement field at eight", - "origin": [ - 60.49139404296875, - 462.58465576171875 - ], - "bbox": [ - 60.49139404296875, - 455.85968017578125, - 300.53216552734375, - 464.85968017578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 455.85968017578125, - 300.53216552734375, - 464.85968017578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "equally spaced time steps over one vibration period, and", - "origin": [ - 60.49139404296875, - 473.5826416015625 - ], - "bbox": [ - 60.49139404296875, - 466.857666015625, - 300.4979553222656, - 475.857666015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 466.857666015625, - 300.4979553222656, - 475.857666015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "two averages were performed. The motion encoding gra-", - "origin": [ - 60.49139404296875, - 484.58062744140625 - ], - "bbox": [ - 60.49139404296875, - 477.85565185546875, - 300.5205078125, - 486.85565185546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 477.85565185546875, - 300.5205078125, - 486.85565185546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dient was composed of three periods of a 60 Hz cosine", - "origin": [ - 60.49139404296875, - 495.57861328125 - ], - "bbox": [ - 60.49139404296875, - 488.8536376953125, - 300.5159912109375, - 497.8536376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 488.8536376953125, - 300.5159912109375, - 497.8536376953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "approximated by a trapezoidal shape providing the first", - "origin": [ - 60.49139404296875, - 506.57659912109375 - ], - "bbox": [ - 60.49139404296875, - 499.85162353515625, - 300.5169372558594, - 508.85162353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 499.85162353515625, - 300.5169372558594, - 508.85162353515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "moment nulling.", - "origin": [ - 60.49139404296875, - 517.5745849609375 - ], - "bbox": [ - 60.49139404296875, - 510.849609375, - 129.9975128173828, - 519.849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 510.849609375, - 129.9975128173828, - 519.849609375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 60.49139404296875, - 534.259765625, - 160.36172485351562, - 543.259765625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Diffusion Tensor Imaging", - "origin": [ - 60.49139404296875, - 541.3858642578125 - ], - "bbox": [ - 60.49139404296875, - 534.259765625, - 160.36172485351562, - 543.259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 534.259765625, - 160.36172485351562, - 543.259765625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 60.49139404296875, - 551.2155151367188, - 300.5412902832031, - 692.2523193359375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "For the fiber position measurement, diffusion tensor imag-", - "origin": [ - 60.49139404296875, - 557.9404907226562 - ], - "bbox": [ - 60.49139404296875, - 551.2155151367188, - 300.4772644042969, - 560.2155151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 551.2155151367188, - 300.4772644042969, - 560.2155151367188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ing (DTI) data was acquired using a single-shot EPI", - "origin": [ - 60.49139404296875, - 568.9384765625 - ], - "bbox": [ - 60.49139404296875, - 562.2135009765625, - 300.4682922363281, - 571.2135009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 562.2135009765625, - 300.4682922363281, - 571.2135009765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "sequence (TR/TE-8500/96 ms) with 12 noncolinear direc-", - "origin": [ - 60.49139404296875, - 579.9365234375 - ], - "bbox": [ - 60.49139404296875, - 573.2115478515625, - 300.48358154296875, - 582.2115478515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 573.2115478515625, - 300.48358154296875, - 582.2115478515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tions and one", - "origin": [ - 60.49139404296875, - 590.9912109375 - ], - "bbox": [ - 60.49139404296875, - 584.2662353515625, - 116.81610107421875, - 593.2662353515625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " B", - "origin": [ - 116.81610107421875, - 590.9912109375 - ], - "bbox": [ - 116.81610107421875, - 584.3335571289062, - 125.20049285888672, - 593.3335571289062 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "0", - "origin": [ - 125.2345962524414, - 592.4692993164062 - ], - "bbox": [ - 125.2345962524414, - 587.71435546875, - 128.96054077148438, - 594.077880859375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " volume (", - "origin": [ - 128.96054077148438, - 592.4692993164062 - ], - "bbox": [ - 128.96054077148438, - 584.2703247070312, - 168.0881805419922, - 594.7443237304688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "b", - "origin": [ - 168.09449768066406, - 590.9953002929688 - ], - "bbox": [ - 168.09449768066406, - 584.337646484375, - 173.0625, - 593.337646484375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "-value", - "origin": [ - 173.02650451660156, - 590.9953002929688 - ], - "bbox": [ - 173.02650451660156, - 584.2703247070312, - 198.51449584960938, - 593.2703247070312 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 198.51449584960938, - 590.9953002929688 - ], - "bbox": [ - 198.51449584960938, - 584.0653076171875, - 208.0760955810547, - 599.6173095703125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 1000 mm/s", - "origin": [ - 208.0760955810547, - 590.9953002929688 - ], - "bbox": [ - 208.0760955810547, - 584.2703247070312, - 256.5968933105469, - 593.2703247070312 - ] - }, - { - "size": 6.363489627838135, - "flags": 5, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "2", - "origin": [ - 256.5920104980469, - 586.9700927734375 - ], - "bbox": [ - 256.5920104980469, - 582.2151489257812, - 260.3179626464844, - 588.5786743164062 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", six aver-", - "origin": [ - 260.33380126953125, - 590.9953002929688 - ], - "bbox": [ - 260.33380126953125, - 584.2703247070312, - 300.49267578125, - 593.2703247070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49139404296875, - 582.2151489257812, - 300.49267578125, - 599.6173095703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ages). Spatial resolution and image slice positions were the", - "origin": [ - 60.49150085449219, - 601.9932861328125 - ], - "bbox": [ - 60.49150085449219, - 595.268310546875, - 300.5205383300781, - 604.268310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 595.268310546875, - 300.5205383300781, - 604.268310546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "same as in MRE. Total acquisition time was 12 mins per", - "origin": [ - 60.49150085449219, - 612.9913330078125 - ], - "bbox": [ - 60.49150085449219, - 606.266357421875, - 300.4755554199219, - 615.266357421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 606.266357421875, - 300.4755554199219, - 615.266357421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "volunteer. Tensor calculation and tractography along the", - "origin": [ - 60.49150085449219, - 623.9893188476562 - ], - "bbox": [ - 60.49150085449219, - 617.2643432617188, - 300.51971435546875, - 626.2643432617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 617.2643432617188, - 300.51971435546875, - 626.2643432617188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CST was performed using the tools from the FMRIB Soft-", - "origin": [ - 60.49150085449219, - 634.9873046875 - ], - "bbox": [ - 60.49150085449219, - 628.2623291015625, - 300.5169677734375, - 637.2623291015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 628.2623291015625, - 300.5169677734375, - 637.2623291015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ware Library (FSL), i.e., dtifit and probtrackx (30). The cen-", - "origin": [ - 60.49150085449219, - 645.9852905273438 - ], - "bbox": [ - 60.49150085449219, - 639.2603149414062, - 300.5412902832031, - 648.2603149414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 639.2603149414062, - 300.5412902832031, - 648.2603149414062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tral part of the CST was obtained by tracking from a seed", - "origin": [ - 60.49150085449219, - 656.9832763671875 - ], - "bbox": [ - 60.49150085449219, - 650.25830078125, - 300.4881896972656, - 659.25830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 650.25830078125, - 300.4881896972656, - 659.25830078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "region below the primary motor cortex to a target region in", - "origin": [ - 60.49150085449219, - 667.9813232421875 - ], - "bbox": [ - 60.49150085449219, - 661.25634765625, - 300.4971923828125, - 670.25634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 661.25634765625, - 300.4971923828125, - 670.25634765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the medulla oblongata, i.e., the pyramids that may be eas-", - "origin": [ - 60.49150085449219, - 678.9793090820312 - ], - "bbox": [ - 60.49150085449219, - 672.2543334960938, - 300.5124816894531, - 681.2543334960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 672.2543334960938, - 300.5124816894531, - 681.2543334960938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ily visualized in color coded fractional anisotropy maps.", - "origin": [ - 60.49150085449219, - 689.977294921875 - ], - "bbox": [ - 60.49150085449219, - 683.2523193359375, - 290.1552734375, - 692.2523193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 683.2523193359375, - 290.1552734375, - 692.2523193359375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 60.49150085449219, - 706.5706176757812, - 100.9636001586914, - 715.66064453125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "RESULTS", - "origin": [ - 60.49150085449219, - 713.7886352539062 - ], - "bbox": [ - 60.49150085449219, - 706.5706176757812, - 100.9636001586914, - 715.66064453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 706.5706176757812, - 100.9636001586914, - 715.66064453125 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 60.491302490234375, - 723.5048217773438, - 300.5342712402344, - 754.5054321289062 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "In Fig. 2, we show the MRI of the head as well as the", - "origin": [ - 60.49150085449219, - 730.2297973632812 - ], - "bbox": [ - 60.49150085449219, - 723.5048217773438, - 285.66522216796875, - 732.5048217773438 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " u", - "origin": [ - 285.66522216796875, - 730.2297973632812 - ], - "bbox": [ - 285.66522216796875, - 723.5721435546875, - 294.2061767578125, - 732.5721435546875 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "x", - "origin": [ - 294.2361145019531, - 731.7637939453125 - ], - "bbox": [ - 294.2361145019531, - 727.0088500976562, - 297.9620666503906, - 733.3723754882812 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ",", - "origin": [ - 297.9779052734375, - 730.2330932617188 - ], - "bbox": [ - 297.9779052734375, - 723.5081176757812, - 300.50689697265625, - 732.5081176757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49150085449219, - 723.5048217773438, - 300.50689697265625, - 733.3723754882812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "u", - "origin": [ - 60.491302490234375, - 741.2310791015625 - ], - "bbox": [ - 60.491302490234375, - 734.5734252929688, - 66.01730346679688, - 743.5734252929688 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "y", - "origin": [ - 66.04720306396484, - 742.76220703125 - ], - "bbox": [ - 66.04720306396484, - 738.0072631835938, - 69.77314758300781, - 744.3707885742188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", and", - "origin": [ - 69.78900146484375, - 741.2315063476562 - ], - "bbox": [ - 69.78900146484375, - 734.5065307617188, - 91.4070053100586, - 743.5065307617188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " u", - "origin": [ - 91.4070053100586, - 741.2315063476562 - ], - "bbox": [ - 91.4070053100586, - 734.5738525390625, - 100.54290771484375, - 743.5738525390625 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "z", - "origin": [ - 100.5165023803711, - 742.76220703125 - ], - "bbox": [ - 100.5165023803711, - 738.0072631835938, - 103.89144897460938, - 744.3707885742188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " displacement components at the top and bot-", - "origin": [ - 103.89144897460938, - 742.76220703125 - ], - "bbox": [ - 103.89144897460938, - 734.5065307617188, - 300.5342712402344, - 745.0372314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491302490234375, - 734.5065307617188, - 300.5342712402344, - 745.0372314453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tom of the field of view (FOV) provided by MRE.", - "origin": [ - 60.49169921875, - 752.2304077148438 - ], - "bbox": [ - 60.49169921875, - 745.5054321289062, - 266.0166015625, - 754.5054321289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49169921875, - 745.5054321289062, - 266.0166015625, - 754.5054321289062 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 312.49090576171875, - 74.4879150390625, - 552.53271484375, - 754.5003051757812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "In Fig. 3, we show the CSTs for all five volunteers as", - "origin": [ - 321.506103515625, - 81.212890625 - ], - "bbox": [ - 321.506103515625, - 74.4879150390625, - 552.49658203125, - 83.4879150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.506103515625, - 74.4879150390625, - 552.49658203125, - 83.4879150390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "provided by DTI and tractography, as well as the global", - "origin": [ - 312.49169921875, - 92.21087646484375 - ], - "bbox": [ - 312.49169921875, - 85.48590087890625, - 552.52001953125, - 94.48590087890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 85.48590087890625, - 552.52001953125, - 94.48590087890625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "reference frame. Each arrow represents a unit vector rep-", - "origin": [ - 312.49169921875, - 103.2088623046875 - ], - "bbox": [ - 312.49169921875, - 96.48388671875, - 552.5263061523438, - 105.48388671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 96.48388671875, - 552.5263061523438, - 105.48388671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "resentative of the direction of highest diffusivity, and it", - "origin": [ - 312.49169921875, - 114.20684814453125 - ], - "bbox": [ - 312.49169921875, - 107.48187255859375, - 552.522705078125, - 116.48187255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 107.48187255859375, - 552.522705078125, - 116.48187255859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "can be observed that there is considerable variation in", - "origin": [ - 312.49169921875, - 125.204833984375 - ], - "bbox": [ - 312.49169921875, - 118.4798583984375, - 552.499267578125, - 127.4798583984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 118.4798583984375, - 552.499267578125, - 127.4798583984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the orientation and shape of the individual CSTs. In the", - "origin": [ - 312.49169921875, - 136.20281982421875 - ], - "bbox": [ - 312.49169921875, - 129.47784423828125, - 552.5199584960938, - 138.47784423828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 129.47784423828125, - 552.5199584960938, - 138.47784423828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "lower regions, however, the average radius of the CSTs", - "origin": [ - 312.49169921875, - 147.2008056640625 - ], - "bbox": [ - 312.49169921875, - 140.475830078125, - 552.47314453125, - 149.475830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 140.475830078125, - 552.47314453125, - 149.475830078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "were determined to be on the order of 5 mm while they", - "origin": [ - 312.49169921875, - 158.19879150390625 - ], - "bbox": [ - 312.49169921875, - 151.47381591796875, - 552.4964599609375, - 160.47381591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 151.47381591796875, - 552.4964599609375, - 160.47381591796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "appear be on the order of around 6–8 mm near the top of", - "origin": [ - 312.49169921875, - 169.19677734375 - ], - "bbox": [ - 312.49169921875, - 162.4718017578125, - 552.50732421875, - 171.4718017578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 162.4718017578125, - 552.50732421875, - 171.4718017578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the FOV as the fibers flare out and become less densely", - "origin": [ - 312.49169921875, - 180.19476318359375 - ], - "bbox": [ - 312.49169921875, - 173.46978759765625, - 552.4866333007812, - 182.46978759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 173.46978759765625, - 552.4866333007812, - 182.46978759765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "packed.", - "origin": [ - 312.49169921875, - 191.1927490234375 - ], - "bbox": [ - 312.49169921875, - 184.4677734375, - 344.5406799316406, - 193.4677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 184.4677734375, - 344.5406799316406, - 193.4677734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "In Fig. 4a, we show the results from the DTI and trac-", - "origin": [ - 321.506103515625, - 202.19073486328125 - ], - "bbox": [ - 321.506103515625, - 195.46575927734375, - 552.5109252929688, - 204.46575927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.506103515625, - 195.46575927734375, - 552.5109252929688, - 204.46575927734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tography for an evaluation of the fiber pathways com-", - "origin": [ - 312.49169921875, - 213.188720703125 - ], - "bbox": [ - 312.49169921875, - 206.4637451171875, - 552.4984130859375, - 215.4637451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 206.4637451171875, - 552.4984130859375, - 215.4637451171875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "prising the CSTs for volunteer 3, while in Fig. 4b, we", - "origin": [ - 312.49169921875, - 224.18670654296875 - ], - "bbox": [ - 312.49169921875, - 217.46173095703125, - 552.513671875, - 226.46173095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 217.46173095703125, - 552.513671875, - 226.46173095703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "show the unfiltered waves propagating along these path-", - "origin": [ - 312.49169921875, - 235.1846923828125 - ], - "bbox": [ - 312.49169921875, - 228.459716796875, - 552.4812622070312, - 237.459716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 228.459716796875, - 552.4812622070312, - 237.459716796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ways. Figure 4c portrays the application of the spatial-", - "origin": [ - 312.49169921875, - 246.18267822265625 - ], - "bbox": [ - 312.49169921875, - 239.45770263671875, - 552.5145263671875, - 248.45770263671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 239.45770263671875, - 552.5145263671875, - 248.45770263671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "spectral filter and Helmholtz decomposition for the", - "origin": [ - 312.49169921875, - 257.23736572265625 - ], - "bbox": [ - 312.49169921875, - 250.51239013671875, - 552.5200805664062, - 259.51239013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 250.51239013671875, - 552.5200805664062, - 259.51239013671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "transverse wave components propagating along the CST", - "origin": [ - 312.49169921875, - 268.23626708984375 - ], - "bbox": [ - 312.49169921875, - 261.51129150390625, - 552.4758911132812, - 270.51129150390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 261.51129150390625, - 552.4758911132812, - 270.51129150390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fibers from the bottom to the top, while Fig. 4d portrays", - "origin": [ - 312.49169921875, - 279.23516845703125 - ], - "bbox": [ - 312.49169921875, - 272.51019287109375, - 552.4866943359375, - 281.51019287109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 272.51019287109375, - 552.4866943359375, - 281.51019287109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the equivalent values for the longitudinal wave compo-", - "origin": [ - 312.49169921875, - 290.23406982421875 - ], - "bbox": [ - 312.49169921875, - 283.50909423828125, - 552.5047607421875, - 292.50909423828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 283.50909423828125, - 552.5047607421875, - 292.50909423828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "nents. In Fig. 4b–d, the arrows indicate the displacement", - "origin": [ - 312.49169921875, - 301.23297119140625 - ], - "bbox": [ - 312.49169921875, - 294.50799560546875, - 552.5325927734375, - 303.50799560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 294.50799560546875, - 552.5325927734375, - 303.50799560546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "directions, while their lengths indicate relative ampli-", - "origin": [ - 312.49169921875, - 312.23187255859375 - ], - "bbox": [ - 312.49169921875, - 305.50689697265625, - 552.5317993164062, - 314.50689697265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 305.50689697265625, - 552.5317993164062, - 314.50689697265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tudes. The dynamic range for 4b is", - "origin": [ - 312.49169921875, - 323.23077392578125 - ], - "bbox": [ - 312.49169921875, - 316.50579833984375, - 463.8554992675781, - 325.50579833984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 463.8554992675781, - 323.23077392578125 - ], - "bbox": [ - 463.8554992675781, - 315.9227600097656, - 475.27020263671875, - 325.2917785644531 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "80 microns, while", - "origin": [ - 475.2566833496094, - 323.23077392578125 - ], - "bbox": [ - 475.2566833496094, - 316.50579833984375, - 552.5198974609375, - 325.50579833984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 315.9227600097656, - 552.5198974609375, - 325.50579833984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "for 4c and d, the dynamic range is", - "origin": [ - 312.49169921875, - 334.228759765625 - ], - "bbox": [ - 312.49169921875, - 327.5037841796875, - 466.6338195800781, - 336.5037841796875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 466.6338195800781, - 334.228759765625 - ], - "bbox": [ - 466.6338195800781, - 326.9207458496094, - 478.5588073730469, - 336.2897644042969 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "2 microns. Addi-", - "origin": [ - 478.60198974609375, - 334.228759765625 - ], - "bbox": [ - 478.60198974609375, - 327.5037841796875, - 552.5117797851562, - 336.5037841796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 326.9207458496094, - 552.5117797851562, - 336.5037841796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tionally, Figures 4b-d represent the displacements in one", - "origin": [ - 312.49169921875, - 345.22674560546875 - ], - "bbox": [ - 312.49169921875, - 338.50177001953125, - 552.5074462890625, - 347.50177001953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 338.50177001953125, - 552.5074462890625, - 347.50177001953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "point in time in the harmonic cycle-specifically t", - "origin": [ - 312.49169921875, - 356.2247314453125 - ], - "bbox": [ - 312.49169921875, - 349.499755859375, - 518.17333984375, - 358.499755859375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 518.17333984375, - 356.2247314453125 - ], - "bbox": [ - 518.17333984375, - 349.29473876953125, - 528.1083374023438, - 364.84674072265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 0.", - "origin": [ - 528.1083374023438, - 356.2247314453125 - ], - "bbox": [ - 528.1083374023438, - 349.499755859375, - 538.540283203125, - 358.499755859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49169921875, - 349.29473876953125, - 538.540283203125, - 364.84674072265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Figure 5 shows a comparison of the real and imaginary", - "origin": [ - 321.50616455078125, - 367.22271728515625 - ], - "bbox": [ - 321.50616455078125, - 360.49774169921875, - 552.510986328125, - 369.49774169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.50616455078125, - 360.49774169921875, - 552.510986328125, - 369.49774169921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "components for the shear coefficient, C", - "origin": [ - 312.49176025390625, - 378.220703125 - ], - "bbox": [ - 312.49176025390625, - 371.4957275390625, - 479.7819519042969, - 380.4957275390625 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 479.7919921875, - 379.7008972167969 - ], - "bbox": [ - 479.7919921875, - 374.94598388671875, - 487.24322509765625, - 381.3094787597656 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", as well as the", - "origin": [ - 487.21881103515625, - 378.2268981933594 - ], - "bbox": [ - 487.21881103515625, - 371.5019226074219, - 552.513916015625, - 380.5019226074219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49176025390625, - 371.4957275390625, - 552.513916015625, - 381.3094787597656 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "corresponding velocity and attenuation for all five volun-", - "origin": [ - 312.49102783203125, - 389.2248840332031 - ], - "bbox": [ - 312.49102783203125, - 382.4999084472656, - 552.531005859375, - 391.4999084472656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49102783203125, - 382.4999084472656, - 552.531005859375, - 391.4999084472656 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "teers in both the right and left CSTs from the base to the", - "origin": [ - 312.49102783203125, - 400.2228698730469 - ], - "bbox": [ - 312.49102783203125, - 393.4978942871094, - 552.5193481445312, - 402.4978942871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49102783203125, - 393.4978942871094, - 552.5193481445312, - 402.4978942871094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "top of the FOV, while Fig. 6 shows the equivalent values", - "origin": [ - 312.49102783203125, - 411.2208557128906 - ], - "bbox": [ - 312.49102783203125, - 404.4958801269531, - 552.5157470703125, - 413.4958801269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49102783203125, - 404.4958801269531, - 552.5157470703125, - 413.4958801269531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "for the longitudinal coefficient, C", - "origin": [ - 312.49102783203125, - 422.2188415527344 - ], - "bbox": [ - 312.49102783203125, - 415.4938659667969, - 451.8875732421875, - 424.4938659667969 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "33", - "origin": [ - 451.84228515625, - 423.6946105957031 - ], - "bbox": [ - 451.84228515625, - 418.939697265625, - 459.29351806640625, - 425.3031921386719 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ".", - "origin": [ - 459.3258972167969, - 422.2206115722656 - ], - "bbox": [ - 459.3258972167969, - 415.4956359863281, - 461.8548889160156, - 424.4956359863281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49102783203125, - 415.4938659667969, - 461.8548889160156, - 425.3031921386719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "As can be observed, both the shear and longitudinal", - "origin": [ - 321.50531005859375, - 433.2185974121094 - ], - "bbox": [ - 321.50531005859375, - 426.4936218261719, - 552.5100708007812, - 435.4936218261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.50531005859375, - 426.4936218261719, - 552.5100708007812, - 435.4936218261719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "coefficients vary as a function of position, decreasing in", - "origin": [ - 312.49090576171875, - 444.2165832519531 - ], - "bbox": [ - 312.49090576171875, - 437.4916076660156, - 552.4993896484375, - 446.4916076660156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 437.4916076660156, - 552.4993896484375, - 446.4916076660156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "stiffness as one moves from the base to the top of the", - "origin": [ - 312.49090576171875, - 455.2145690917969 - ], - "bbox": [ - 312.49090576171875, - 448.4895935058594, - 552.5164794921875, - 457.4895935058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 448.4895935058594, - 552.5164794921875, - 457.4895935058594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CST. Utilizing Eqs. 8 and 9 for the evaluation of the ve-", - "origin": [ - 312.49090576171875, - 466.2125549316406 - ], - "bbox": [ - 312.49090576171875, - 459.4875793457031, - 552.5281372070312, - 468.4875793457031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 459.4875793457031, - 552.5281372070312, - 468.4875793457031 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "locity and attenuation, we see that the shear wave veloc-", - "origin": [ - 312.49090576171875, - 477.2105407714844 - ], - "bbox": [ - 312.49090576171875, - 470.4855651855469, - 552.519287109375, - 479.4855651855469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 470.4855651855469, - 552.519287109375, - 479.4855651855469 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ities range from 2 to 2.2 m/s, while the longitudinal", - "origin": [ - 312.49090576171875, - 488.2085266113281 - ], - "bbox": [ - 312.49090576171875, - 481.4835510253906, - 552.50927734375, - 490.4835510253906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 481.4835510253906, - 552.50927734375, - 490.4835510253906 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "wave velocities range from around 5–7 m/s, and are", - "origin": [ - 312.49090576171875, - 499.2065124511719 - ], - "bbox": [ - 312.49090576171875, - 492.4815368652344, - 552.5263061523438, - 501.4815368652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 492.4815368652344, - 552.5263061523438, - 501.4815368652344 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "rather consistent with position until one reaches the top", - "origin": [ - 312.49090576171875, - 510.2044982910156 - ], - "bbox": [ - 312.49090576171875, - 503.4795227050781, - 552.53271484375, - 512.4795532226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 503.4795227050781, - 552.53271484375, - 512.4795532226562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "of the pathways. There are two particular exceptions to", - "origin": [ - 312.49090576171875, - 521.2025146484375 - ], - "bbox": [ - 312.49090576171875, - 514.4775390625, - 552.5075073242188, - 523.4775390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 514.4775390625, - 552.5075073242188, - 523.4775390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "this concerning the right and left CSTs of Volunteer 1.", - "origin": [ - 312.49090576171875, - 532.200439453125 - ], - "bbox": [ - 312.49090576171875, - 525.4754638671875, - 552.4921875, - 534.4754638671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 525.4754638671875, - 552.4921875, - 534.4754638671875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "As shown in Fig. 3, there are serious bends near the top", - "origin": [ - 312.49090576171875, - 543.198486328125 - ], - "bbox": [ - 312.49090576171875, - 536.4735107421875, - 552.4760131835938, - 545.4735107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 536.4735107421875, - 552.4760131835938, - 545.4735107421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "of the fiber bundle (although the bending is not so", - "origin": [ - 312.49090576171875, - 554.1964721679688 - ], - "bbox": [ - 312.49090576171875, - 547.4714965820312, - 552.5111694335938, - 556.4714965820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 547.4714965820312, - 552.5111694335938, - 556.4714965820312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "obvious in the left CST due to the perspective angle of", - "origin": [ - 312.49090576171875, - 565.1944580078125 - ], - "bbox": [ - 312.49090576171875, - 558.469482421875, - 552.505615234375, - 567.469482421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 558.469482421875, - 552.505615234375, - 567.469482421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the image). As shown in Fig. 5e, this bend in the right", - "origin": [ - 312.49090576171875, - 576.1924438476562 - ], - "bbox": [ - 312.49090576171875, - 569.4674682617188, - 552.5164794921875, - 578.4674682617188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 569.4674682617188, - 552.5164794921875, - 578.4674682617188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CST effects the shear wave velocity by inducing a slow-", - "origin": [ - 312.49090576171875, - 587.1904296875 - ], - "bbox": [ - 312.49090576171875, - 580.4654541015625, - 552.5092163085938, - 589.4654541015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 580.4654541015625, - 552.5092163085938, - 589.4654541015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ing as the shear wave makes the turn along the wave-", - "origin": [ - 312.49090576171875, - 598.1884765625 - ], - "bbox": [ - 312.49090576171875, - 591.4635009765625, - 552.5038452148438, - 600.4635009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 591.4635009765625, - 552.5038452148438, - 600.4635009765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "guide, and has an opposite effect on the longitudinal", - "origin": [ - 312.49090576171875, - 609.1864624023438 - ], - "bbox": [ - 312.49090576171875, - 602.4614868164062, - 552.5110473632812, - 611.4614868164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 602.4614868164062, - 552.5110473632812, - 611.4614868164062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "wave velocity of the left CST as shown in Fig. 6f. The", - "origin": [ - 312.49090576171875, - 620.2411499023438 - ], - "bbox": [ - 312.49090576171875, - 613.5161743164062, - 552.5101928710938, - 622.5161743164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 613.5161743164062, - 552.5101928710938, - 622.5161743164062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "causes of these anomalies are currently unknown and", - "origin": [ - 312.49090576171875, - 631.2391357421875 - ], - "bbox": [ - 312.49090576171875, - 624.51416015625, - 552.4967041015625, - 633.51416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 624.51416015625, - 552.4967041015625, - 633.51416015625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "will be addressed in future waveguide analysis.", - "origin": [ - 312.49090576171875, - 642.2371826171875 - ], - "bbox": [ - 312.49090576171875, - 635.51220703125, - 511.9480895996094, - 644.51220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 635.51220703125, - 511.9480895996094, - 644.51220703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "There also appears to be a negative attenuation value", - "origin": [ - 321.50531005859375, - 653.2351684570312 - ], - "bbox": [ - 321.50531005859375, - 646.5101928710938, - 552.518310546875, - 655.5101928710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.50531005859375, - 646.5101928710938, - 552.518310546875, - 655.5101928710938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "(i.e., an increase in wave amplitude) near the base of the", - "origin": [ - 312.49090576171875, - 664.2340698242188 - ], - "bbox": [ - 312.49090576171875, - 657.5090942382812, - 552.5192260742188, - 666.5090942382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 657.5090942382812, - 552.5192260742188, - 666.5090942382812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CST in virtually every volunteer and in both the longitu-", - "origin": [ - 312.49090576171875, - 675.2329711914062 - ], - "bbox": [ - 312.49090576171875, - 668.5079956054688, - 552.5020141601562, - 677.5079956054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 668.5079956054688, - 552.5020141601562, - 677.5079956054688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dinal and shear parameters. As this is very unusual", - "origin": [ - 312.49090576171875, - 686.2318725585938 - ], - "bbox": [ - 312.49090576171875, - 679.5068969726562, - 552.4822998046875, - 688.5068969726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 679.5068969726562, - 552.4822998046875, - 688.5068969726562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "behavior, it was questioned whether the effects that are", - "origin": [ - 312.49090576171875, - 697.2307739257812 - ], - "bbox": [ - 312.49090576171875, - 690.5057983398438, - 552.5291137695312, - 699.5057983398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 690.5057983398438, - 552.5291137695312, - 699.5057983398438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "being evaluated reflect genuine and interesting biological", - "origin": [ - 312.49090576171875, - 708.2296752929688 - ], - "bbox": [ - 312.49090576171875, - 701.5046997070312, - 552.5048828125, - 710.5046997070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 701.5046997070312, - 552.5048828125, - 710.5046997070312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "features of waveguides, or whether they were simply a", - "origin": [ - 312.49090576171875, - 719.2285766601562 - ], - "bbox": [ - 312.49090576171875, - 712.5036010742188, - 552.4993896484375, - 721.5036010742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 712.5036010742188, - 552.4993896484375, - 721.5036010742188 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "consequence of the details of our methods. Upon further", - "origin": [ - 312.49090576171875, - 730.2274780273438 - ], - "bbox": [ - 312.49090576171875, - 723.5025024414062, - 552.4949340820312, - 732.5025024414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 723.5025024414062, - 552.4949340820312, - 732.5025024414062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "analysis, it was observed that in this region, the CSTs", - "origin": [ - 312.49090576171875, - 741.2263793945312 - ], - "bbox": [ - 312.49090576171875, - 734.5014038085938, - 552.473388671875, - 743.5014038085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 734.5014038085938, - 552.473388671875, - 743.5014038085938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "pass", - "origin": [ - 312.49090576171875, - 752.2252807617188 - ], - "bbox": [ - 312.49090576171875, - 745.5003051757812, - 330.56292724609375, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49090576171875, - 745.5003051757812, - 330.56292724609375, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "through", - "origin": [ - 338.11663818359375, - 752.2252807617188 - ], - "bbox": [ - 338.11663818359375, - 745.5003051757812, - 370.6246337890625, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.11663818359375, - 745.5003051757812, - 370.6246337890625, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "several", - "origin": [ - 378.1999206542969, - 752.2252807617188 - ], - "bbox": [ - 378.1999206542969, - 745.5003051757812, - 407.1529235839844, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 378.1999206542969, - 745.5003051757812, - 407.1529235839844, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "structures", - "origin": [ - 414.71112060546875, - 752.2252807617188 - ], - "bbox": [ - 414.71112060546875, - 745.5003051757812, - 455.733154296875, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 414.71112060546875, - 745.5003051757812, - 455.733154296875, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "including", - "origin": [ - 463.2985534667969, - 752.2252807617188 - ], - "bbox": [ - 463.2985534667969, - 745.5003051757812, - 503.3935852050781, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.2985534667969, - 745.5003051757812, - 503.3935852050781, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the", - "origin": [ - 510.9220886230469, - 752.2252807617188 - ], - "bbox": [ - 510.9220886230469, - 745.5003051757812, - 523.945068359375, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 510.9220886230469, - 745.5003051757812, - 523.945068359375, - 754.5003051757812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "basal", - "origin": [ - 531.5023803710938, - 752.2252807617188 - ], - "bbox": [ - 531.5023803710938, - 745.5003051757812, - 552.4904174804688, - 754.5003051757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 531.5023803710938, - 745.5003051757812, - 552.4904174804688, - 754.5003051757812 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "4", - "origin": [ - 60.49129867553711, - 56.6646728515625 - ], - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 64.90724182128906, - 58.686893463134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 64.90724182128906, - 58.686893463134766 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Romano et al.", - "origin": [ - 501.5601806640625, - 56.6646728515625 - ], - "bbox": [ - 501.5601806640625, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 501.5601806640625, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 8, - "type": 0, - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "4", - "origin": [ - 60.49129867553711, - 56.6646728515625 - ], - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 64.90724182128906, - 58.686893463134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 64.90724182128906, - 58.686893463134766 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Romano et al.", - "origin": [ - 501.5601806640625, - 56.6646728515625 - ], - "bbox": [ - 501.5601806640625, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 501.5601806640625, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 810.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\347\272\2572\345\210\227_ViLT_6_\346\226\207\345\255\227_\350\241\250\346\240\274.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\347\272\2572\345\210\227_ViLT_6_\346\226\207\345\255\227_\350\241\250\346\240\274.pdf/preproc_out.json" deleted file mode 100644 index e951caf24..000000000 --- "a/tests/assets/pre_proc_results/\347\272\2572\345\210\227_ViLT_6_\346\226\207\345\255\227_\350\241\250\346\240\274.pdf/preproc_out.json" +++ /dev/null @@ -1,16850 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 4, - "type": 0, - "bbox": [ - 55.439998626708984, - 213.75054931640625, - 252.251220703125, - 225.75547790527344 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "et al.", - "origin": [ - 55.439998626708984, - 222.95599365234375 - ], - "bbox": [ - 55.439998626708984, - 213.75054931640625, - 74.80728149414062, - 225.75547790527344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 74.80728149414062, - 222.95599365234375 - ], - "bbox": [ - 74.80728149414062, - 213.75054931640625, - 77.29792785644531, - 225.75547790527344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2018", - "origin": [ - 77.29792785644531, - 222.95599365234375 - ], - "bbox": [ - 77.29792785644531, - 213.75054931640625, - 99.71377563476562, - 225.75547790527344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ").", - "origin": [ - 99.71377563476562, - 222.95599365234375 - ], - "bbox": [ - 99.71377563476562, - 213.75054931640625, - 105.52196502685547, - 225.75547790527344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Table 1", - "origin": [ - 105.52196502685547, - 222.95599365234375 - ], - "bbox": [ - 105.52196502685547, - 213.75054931640625, - 137.97015380859375, - 225.75547790527344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " reports the dataset statistics.", - "origin": [ - 137.97015380859375, - 222.95599365234375 - ], - "bbox": [ - 137.97015380859375, - 213.75054931640625, - 252.251220703125, - 225.75547790527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 213.75054931640625, - 252.251220703125, - 225.75547790527344 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 54.97200012207031, - 231.68353271484375, - 291.09637451171875, - 351.2854919433594 - ], - "lines": [ - { - "spans": [ - { - "size": 10.051863670349121, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We evaluate ViLT on two widely explored types of vision-", - "origin": [ - 54.97200012207031, - 240.88897705078125 - ], - "bbox": [ - 54.97200012207031, - 231.68353271484375, - 291.09637451171875, - 243.68846130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.97200012207031, - 231.68353271484375, - 291.09637451171875, - 243.68846130371094 - ] - }, - { - "spans": [ - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and-language downstream tasks: for", - "origin": [ - 55.439998626708984, - 252.843994140625 - ], - "bbox": [ - 55.439998626708984, - 243.6385498046875, - 201.251708984375, - 255.6434783935547 - ] - }, - { - "size": 10.012289047241211, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " classification", - "origin": [ - 201.251708984375, - 252.843994140625 - ], - "bbox": [ - 201.251708984375, - 243.6385498046875, - 256.83441162109375, - 255.5338897705078 - ] - }, - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ", we use", - "origin": [ - 256.8330078125, - 252.843994140625 - ], - "bbox": [ - 256.8330078125, - 243.6385498046875, - 289.4447021484375, - 255.6434783935547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 243.6385498046875, - 289.4447021484375, - 255.6434783935547 - ] - }, - { - "spans": [ - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VQAv2 (", - "origin": [ - 55.082000732421875, - 264.79901123046875 - ], - "bbox": [ - 55.082000732421875, - 255.59356689453125, - 91.2114486694336, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Goyal et al.", - "origin": [ - 91.2114486694336, - 264.79901123046875 - ], - "bbox": [ - 91.2114486694336, - 255.59356689453125, - 136.7416229248047, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 136.7416229248047, - 264.79901123046875 - ], - "bbox": [ - 136.7416229248047, - 255.59356689453125, - 139.19740295410156, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2017", - "origin": [ - 139.19740295410156, - 264.79901123046875 - ], - "bbox": [ - 139.19740295410156, - 255.59356689453125, - 161.32888793945312, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") and NLVR2 (", - "origin": [ - 161.32888793945312, - 264.79901123046875 - ], - "bbox": [ - 161.32888793945312, - 255.59356689453125, - 220.1890411376953, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Suhr et al.", - "origin": [ - 220.1890411376953, - 264.79901123046875 - ], - "bbox": [ - 220.1890411376953, - 255.59356689453125, - 260.3656005859375, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 260.3656005859375, - 264.79901123046875 - ], - "bbox": [ - 260.3656005859375, - 255.59356689453125, - 262.8213806152344, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2018", - "origin": [ - 262.8213806152344, - 264.79901123046875 - ], - "bbox": [ - 262.8213806152344, - 255.59356689453125, - 284.96270751953125, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "),", - "origin": [ - 284.96270751953125, - 264.79901123046875 - ], - "bbox": [ - 284.96270751953125, - 255.59356689453125, - 290.6895751953125, - 267.5985107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.082000732421875, - 255.59356689453125, - 290.6895751953125, - 267.5985107421875 - ] - }, - { - "spans": [ - { - "size": 9.982504844665527, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and for", - "origin": [ - 55.439998626708984, - 276.7550048828125 - ], - "bbox": [ - 55.439998626708984, - 267.549560546875, - 84.03701782226562, - 279.55450439453125 - ] - }, - { - "size": 9.982504844665527, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " retrieval", - "origin": [ - 84.03701782226562, - 276.7550048828125 - ], - "bbox": [ - 84.03701782226562, - 267.549560546875, - 120.4452896118164, - 279.4449157714844 - ] - }, - { - "size": 9.982504844665527, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ", we use MSCOCO and Flickr30K (F30K)", - "origin": [ - 120.4469985961914, - 276.7550048828125 - ], - "bbox": [ - 120.4469985961914, - 267.549560546875, - 290.1084899902344, - 279.55450439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 267.549560546875, - 290.1084899902344, - 279.55450439453125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 55.11199951171875, - 288.7099914550781 - ], - "bbox": [ - 55.11199951171875, - 279.5045471191406, - 58.49589538574219, - 291.5094909667969 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Plummer et al.", - "origin": [ - 58.49589538574219, - 288.7099914550781 - ], - "bbox": [ - 58.49589538574219, - 279.5045471191406, - 119.6397705078125, - 291.5094909667969 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 119.6397705078125, - 288.7099914550781 - ], - "bbox": [ - 119.6397705078125, - 279.5045471191406, - 122.18023681640625, - 291.5094909667969 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2015", - "origin": [ - 122.18023681640625, - 288.7099914550781 - ], - "bbox": [ - 122.18023681640625, - 279.5045471191406, - 145.82688903808594, - 291.5094909667969 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") re-splited by", - "origin": [ - 145.82688903808594, - 288.7099914550781 - ], - "bbox": [ - 145.82688903808594, - 279.5045471191406, - 204.42013549804688, - 291.5094909667969 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Karpathy & Fei-Fei", - "origin": [ - 204.42013549804688, - 288.7099914550781 - ], - "bbox": [ - 204.42013549804688, - 279.5045471191406, - 289.4443664550781, - 291.5094909667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.11199951171875, - 279.5045471191406, - 289.4443664550781, - 291.5094909667969 - ] - }, - { - "spans": [ - { - "size": 9.867501258850098, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 55.11199951171875, - 300.6650085449219 - ], - "bbox": [ - 55.11199951171875, - 291.4595642089844, - 58.366512298583984, - 303.4645080566406 - ] - }, - { - "size": 9.867501258850098, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2015", - "origin": [ - 58.366512298583984, - 300.6650085449219 - ], - "bbox": [ - 58.366512298583984, - 291.4595642089844, - 77.91313934326172, - 303.4645080566406 - ] - }, - { - "size": 9.867501258850098, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "). For the classification tasks, we fine-tune three times", - "origin": [ - 77.91313934326172, - 300.6650085449219 - ], - "bbox": [ - 77.91313934326172, - 291.4595642089844, - 289.43695068359375, - 303.4645080566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.11199951171875, - 291.4595642089844, - 289.43695068359375, - 303.4645080566406 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "with different initialization seeds for the head and data or-", - "origin": [ - 55.082000732421875, - 312.6199951171875 - ], - "bbox": [ - 55.082000732421875, - 303.41455078125, - 291.0910949707031, - 315.41949462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.082000732421875, - 303.41455078125, - 291.0910949707031, - 315.41949462890625 - ] - }, - { - "spans": [ - { - "size": 10.046924591064453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "dering and report the mean scores. We report the standard", - "origin": [ - 55.439998626708984, - 324.57501220703125 - ], - "bbox": [ - 55.439998626708984, - 315.36956787109375, - 289.4377136230469, - 327.37451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 315.36956787109375, - 289.4377136230469, - 327.37451171875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "deviation in", - "origin": [ - 55.439998626708984, - 336.5299987792969 - ], - "bbox": [ - 55.439998626708984, - 327.3245544433594, - 104.0949478149414, - 339.3294982910156 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Table 5", - "origin": [ - 104.0949478149414, - 336.5299987792969 - ], - "bbox": [ - 104.0949478149414, - 327.3245544433594, - 137.87295532226562, - 339.3294982910156 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " along with ablation studies. For the", - "origin": [ - 137.87295532226562, - 336.5299987792969 - ], - "bbox": [ - 137.87295532226562, - 327.3245544433594, - 289.43707275390625, - 339.3294982910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 327.3245544433594, - 289.43707275390625, - 339.3294982910156 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "retrieval tasks, we only fine-tune once.", - "origin": [ - 55.439998626708984, - 348.4859924316406 - ], - "bbox": [ - 55.439998626708984, - 339.2805480957031, - 209.0532684326172, - 351.2854919433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 339.2805480957031, - 209.0532684326172, - 351.2854919433594 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 55.439998626708984, - 364.0549011230469, - 172.76951599121094, - 377.0162353515625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "4.2. Implementation Details", - "origin": [ - 55.439998626708984, - 373.6189880371094 - ], - "bbox": [ - 55.439998626708984, - 364.0549011230469, - 172.76951599121094, - 377.0162353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 364.0549011230469, - 172.76951599121094, - 377.0162353515625 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 55.051998138427734, - 383.0655517578125, - 291.0975341796875, - 466.801513671875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.902643203735352, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "For all experiments, we use AdamW optimizer (", - "origin": [ - 55.439998626708984, - 392.27099609375 - ], - "bbox": [ - 55.439998626708984, - 383.0655517578125, - 245.54869079589844, - 395.07049560546875 - ] - }, - { - "size": 9.902643203735352, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Loshchilov", - "origin": [ - 245.54869079589844, - 392.27099609375 - ], - "bbox": [ - 245.54869079589844, - 383.0655517578125, - 289.68487548828125, - 395.07049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 383.0655517578125, - 289.68487548828125, - 395.07049560546875 - ] - }, - { - "spans": [ - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "& Hutter", - "origin": [ - 55.051998138427734, - 404.22601318359375 - ], - "bbox": [ - 55.051998138427734, - 395.02056884765625, - 90.24198913574219, - 407.0255126953125 - ] - }, - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 90.24198913574219, - 404.22601318359375 - ], - "bbox": [ - 90.24198913574219, - 395.02056884765625, - 92.69528198242188, - 407.0255126953125 - ] - }, - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2018", - "origin": [ - 92.69528198242188, - 404.22601318359375 - ], - "bbox": [ - 92.69528198242188, - 395.02056884765625, - 114.81414031982422, - 407.0255126953125 - ] - }, - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") with base learning rate of", - "origin": [ - 114.81414031982422, - 404.22601318359375 - ], - "bbox": [ - 114.81414031982422, - 395.02056884765625, - 220.4429931640625, - 407.0255126953125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 10", - "origin": [ - 220.4429931640625, - 404.22601318359375 - ], - "bbox": [ - 220.4429931640625, - 396.7540588378906, - 232.88958740234375, - 406.7166748046875 - ] - }, - { - "size": 6.973800182342529, - "flags": 7, - "font": "CMSY7", - "color": 0, - "ascender": 0.7820000052452087, - "descender": -0.9509999752044678, - "text": "−", - "origin": [ - 232.88900756835938, - 400.61102294921875 - ], - "bbox": [ - 232.88900756835938, - 395.1575012207031, - 239.10963439941406, - 407.24310302734375 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "CMR7", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "4", - "origin": [ - 239.1160125732422, - 400.61102294921875 - ], - "bbox": [ - 239.1160125732422, - 395.38067626953125, - 243.0841064453125, - 402.3544616699219 - ] - }, - { - "size": 9.887598037719727, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 243.0841064453125, - 400.61102294921875 - ], - "bbox": [ - 243.0841064453125, - 391.40557861328125, - 246.07200622558594, - 407.0255126953125 - ] - }, - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and weight", - "origin": [ - 246.07200622558594, - 404.22601318359375 - ], - "bbox": [ - 246.07200622558594, - 395.02056884765625, - 289.4364013671875, - 407.0255126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.051998138427734, - 391.40557861328125, - 289.4364013671875, - 407.24310302734375 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "decay of", - "origin": [ - 55.439998626708984, - 416.1820068359375 - ], - "bbox": [ - 55.439998626708984, - 406.9765625, - 88.49871063232422, - 418.98150634765625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 10", - "origin": [ - 88.49871063232422, - 416.1820068359375 - ], - "bbox": [ - 88.49871063232422, - 408.7100524902344, - 100.62460327148438, - 418.67266845703125 - ] - }, - { - "size": 6.973800182342529, - "flags": 7, - "font": "CMSY7", - "color": 0, - "ascender": 0.7820000052452087, - "descender": -0.9509999752044678, - "text": "−", - "origin": [ - 100.625, - 412.5660095214844 - ], - "bbox": [ - 100.625, - 407.11248779296875, - 106.84562683105469, - 419.1980895996094 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "CMR7", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "2", - "origin": [ - 106.85099792480469, - 412.5660095214844 - ], - "bbox": [ - 106.85099792480469, - 407.3356628417969, - 110.819091796875, - 414.3094482421875 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ". The learning rate was warmed up for 10% of", - "origin": [ - 111.32099914550781, - 416.1820068359375 - ], - "bbox": [ - 111.32099914550781, - 406.9765625, - 289.4435119628906, - 418.98150634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 406.9765625, - 289.4435119628906, - 419.1980895996094 - ] - }, - { - "spans": [ - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the total training steps and was decayed linearly to zero for", - "origin": [ - 55.439998626708984, - 428.1369934082031 - ], - "bbox": [ - 55.439998626708984, - 418.9315490722656, - 289.6070251464844, - 430.9364929199219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 418.9315490722656, - 289.6070251464844, - 430.9364929199219 - ] - }, - { - "spans": [ - { - "size": 9.95761775970459, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the rest of the training. Note that downstream performance", - "origin": [ - 55.439998626708984, - 440.0920104980469 - ], - "bbox": [ - 55.439998626708984, - 430.8865661621094, - 289.4364929199219, - 442.8915100097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 430.8865661621094, - 289.4364929199219, - 442.8915100097656 - ] - }, - { - "spans": [ - { - "size": 9.932666778564453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "may be further improved if we customize the hyperparame-", - "origin": [ - 55.439998626708984, - 452.0469970703125 - ], - "bbox": [ - 55.439998626708984, - 442.841552734375, - 291.0975341796875, - 454.84649658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 442.841552734375, - 291.0975341796875, - 454.84649658203125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ters to each task.", - "origin": [ - 55.439998626708984, - 464.00201416015625 - ], - "bbox": [ - 55.439998626708984, - 454.79656982421875, - 121.8406982421875, - 466.801513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 454.79656982421875, - 121.8406982421875, - 466.801513671875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 54.97200012207031, - 472.72955322265625, - 291.0934143066406, - 628.1964721679688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We resize the shorter edge of input images to 384 and limit", - "origin": [ - 54.97200012207031, - 481.93499755859375 - ], - "bbox": [ - 54.97200012207031, - 472.72955322265625, - 289.4366760253906, - 484.7344970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.97200012207031, - 472.72955322265625, - 289.4366760253906, - 484.7344970703125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the longer edge to under 640 while preserving the aspect", - "origin": [ - 55.439998626708984, - 493.8900146484375 - ], - "bbox": [ - 55.439998626708984, - 484.6845703125, - 289.4370422363281, - 496.68951416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 484.6845703125, - 289.4370422363281, - 496.68951416015625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ratio. This resizing scheme is also used during object de-", - "origin": [ - 55.439998626708984, - 505.8450012207031 - ], - "bbox": [ - 55.439998626708984, - 496.6395568847656, - 291.0934143066406, - 508.6445007324219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 496.6395568847656, - 291.0934143066406, - 508.6445007324219 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tection in other VLP models, but with a larger size of the", - "origin": [ - 55.439998626708984, - 517.7999877929688 - ], - "bbox": [ - 55.439998626708984, - 508.59454345703125, - 289.43701171875, - 520.5994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 508.59454345703125, - 289.43701171875, - 520.5994873046875 - ] - }, - { - "spans": [ - { - "size": 9.872529029846191, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "shorter edge (800). Patch projection of ViLT-B/32 yields 12", - "origin": [ - 55.439998626708984, - 529.7559814453125 - ], - "bbox": [ - 55.439998626708984, - 520.550537109375, - 289.4363708496094, - 532.5554809570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 520.550537109375, - 289.4363708496094, - 532.5554809570312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": "×", - "origin": [ - 55.439998626708984, - 541.7109985351562 - ], - "bbox": [ - 55.439998626708984, - 533.989990234375, - 63.180938720703125, - 551.2750854492188 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 20 = 240 patches for an image with a resolution of 384", - "origin": [ - 63.180938720703125, - 541.7109985351562 - ], - "bbox": [ - 63.180938720703125, - 532.5055541992188, - 279.2786865234375, - 544.510498046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ×", - "origin": [ - 279.2786865234375, - 541.7109985351562 - ], - "bbox": [ - 279.2786865234375, - 533.989990234375, - 289.43292236328125, - 551.2750854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 532.5055541992188, - 289.43292236328125, - 551.2750854492188 - ] - }, - { - "spans": [ - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "640. As this is a rarely reached upper limit, we sample 200", - "origin": [ - 55.439998626708984, - 553.666015625 - ], - "bbox": [ - 55.439998626708984, - 544.4605712890625, - 289.441162109375, - 556.4655151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 544.4605712890625, - 289.441162109375, - 556.4655151367188 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "patches at maximum during pre-training. We interpolate", - "origin": [ - 55.439998626708984, - 565.6209716796875 - ], - "bbox": [ - 55.439998626708984, - 556.41552734375, - 289.4370422363281, - 568.4204711914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 556.41552734375, - 289.4370422363281, - 568.4204711914062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "V", - "origin": [ - 55.439998626708984, - 577.5759887695312 - ], - "bbox": [ - 55.439998626708984, - 570.1040649414062, - 61.24819564819336, - 580.066650390625 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 61.24819564819336, - 577.5759887695312 - ], - "bbox": [ - 61.24819564819336, - 567.5172119140625, - 63.465999603271484, - 579.53564453125 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "pos", - "origin": [ - 63.465999603271484, - 573.9609985351562 - ], - "bbox": [ - 63.465999603271484, - 567.5172119140625, - 73.15260314941406, - 575.920654296875 - ] - }, - { - "size": 10.061732292175293, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 73.15260314941406, - 573.9609985351562 - ], - "bbox": [ - 73.15260314941406, - 564.7555541992188, - 76.23699951171875, - 580.37548828125 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "of ViT-B/32 to fit the size of each image and pad the", - "origin": [ - 76.23699951171875, - 577.5759887695312 - ], - "bbox": [ - 76.23699951171875, - 568.3705444335938, - 289.44287109375, - 580.37548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 564.7555541992188, - 289.44287109375, - 580.37548828125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "patches for batch training. Note that the resulting image", - "origin": [ - 55.439998626708984, - 589.531005859375 - ], - "bbox": [ - 55.439998626708984, - 580.3255615234375, - 289.43701171875, - 592.3305053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 580.3255615234375, - 289.43701171875, - 592.3305053710938 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "resolution is four times smaller than 800", - "origin": [ - 55.439998626708984, - 601.4869995117188 - ], - "bbox": [ - 55.439998626708984, - 592.2815551757812, - 222.37889099121094, - 604.2864990234375 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ×", - "origin": [ - 222.37889099121094, - 601.4869995117188 - ], - "bbox": [ - 222.37889099121094, - 593.7659912109375, - 233.10093688964844, - 611.0510864257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 1,333, which", - "origin": [ - 233.10093688964844, - 601.4869995117188 - ], - "bbox": [ - 233.10093688964844, - 592.2815551757812, - 289.4427490234375, - 604.2864990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 592.2815551757812, - 289.4427490234375, - 611.0510864257812 - ] - }, - { - "spans": [ - { - "size": 10.007330894470215, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "is the size that all other VLP models use for inputs to their", - "origin": [ - 55.439998626708984, - 613.4420166015625 - ], - "bbox": [ - 55.439998626708984, - 604.236572265625, - 289.6075134277344, - 616.2415161132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 604.236572265625, - 289.6075134277344, - 616.2415161132812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "visual embedders.", - "origin": [ - 55.191001892089844, - 625.39697265625 - ], - "bbox": [ - 55.191001892089844, - 616.1915283203125, - 127.13092041015625, - 628.1964721679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.191001892089844, - 616.1915283203125, - 127.13092041015625, - 628.1964721679688 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 54.97200012207031, - 634.1245727539062, - 291.185791015625, - 717.8604736328125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.007330894470215, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We use the", - "origin": [ - 54.97200012207031, - 643.3300170898438 - ], - "bbox": [ - 54.97200012207031, - 634.1245727539062, - 98.78981018066406, - 646.1295166015625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 0, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": " bert-base-uncased", - "origin": [ - 98.78981018066406, - 643.3300170898438 - ], - "bbox": [ - 98.78981018066406, - 635.2503662109375, - 202.89346313476562, - 645.691162109375 - ] - }, - { - "size": 10.007330894470215, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " tokenizer to tokenize", - "origin": [ - 202.89346313476562, - 643.3300170898438 - ], - "bbox": [ - 202.89346313476562, - 634.1245727539062, - 289.4389953613281, - 646.1295166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.97200012207031, - 634.1245727539062, - 289.4389953613281, - 646.1295166015625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "text inputs. Instead of fine-tuning from pre-trained BERT,", - "origin": [ - 55.439998626708984, - 655.2850341796875 - ], - "bbox": [ - 55.439998626708984, - 646.07958984375, - 290.6869201660156, - 658.0845336914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 646.07958984375, - 290.6869201660156, - 658.0845336914062 - ] - }, - { - "spans": [ - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "we learn the textual embedding-related parameters", - "origin": [ - 55.082000732421875, - 667.239990234375 - ], - "bbox": [ - 55.082000732421875, - 658.0345458984375, - 255.87881469726562, - 670.0394897460938 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " t", - "origin": [ - 255.87881469726562, - 667.239990234375 - ], - "bbox": [ - 255.87881469726562, - 659.76806640625, - 261.96649169921875, - 669.7306518554688 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "class", - "origin": [ - 261.9679870605469, - 668.7340087890625 - ], - "bbox": [ - 261.9679870605469, - 662.2902221679688, - 275.5250549316406, - 670.6936645507812 - ] - }, - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 276.02301025390625, - 667.239990234375 - ], - "bbox": [ - 276.02301025390625, - 658.0345458984375, - 278.5036926269531, - 670.0394897460938 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " T", - "origin": [ - 278.5036926269531, - 667.239990234375 - ], - "bbox": [ - 278.5036926269531, - 659.76806640625, - 286.817138671875, - 669.7306518554688 - ] - }, - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 288.2049865722656, - 667.239990234375 - ], - "bbox": [ - 288.2049865722656, - 658.0345458984375, - 290.6856689453125, - 670.0394897460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.082000732421875, - 658.0345458984375, - 290.6856689453125, - 670.6936645507812 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and", - "origin": [ - 55.439998626708984, - 679.1950073242188 - ], - "bbox": [ - 55.439998626708984, - 669.9895629882812, - 70.11371612548828, - 681.9945068359375 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " T", - "origin": [ - 70.11371612548828, - 679.1950073242188 - ], - "bbox": [ - 70.11371612548828, - 671.7230834960938, - 79.49015808105469, - 681.6856689453125 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 79.49015808105469, - 679.1950073242188 - ], - "bbox": [ - 79.49015808105469, - 669.13623046875, - 80.87699890136719, - 681.1546630859375 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "pos", - "origin": [ - 80.87699890136719, - 675.5800170898438 - ], - "bbox": [ - 80.87699890136719, - 669.13623046875, - 90.56360626220703, - 677.5396728515625 - ] - }, - { - "size": 10.061732292175293, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 90.56360626220703, - 675.5800170898438 - ], - "bbox": [ - 90.56360626220703, - 666.3745727539062, - 94.62000274658203, - 681.9945068359375 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "from scratch. Although beneficial", - "origin": [ - 94.62000274658203, - 679.1950073242188 - ], - "bbox": [ - 94.62000274658203, - 669.9895629882812, - 236.99774169921875, - 681.9945068359375 - ] - }, - { - "size": 10.061732292175293, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " prima facie", - "origin": [ - 236.99774169921875, - 679.1950073242188 - ], - "bbox": [ - 236.99774169921875, - 669.9895629882812, - 288.1439514160156, - 681.8848876953125 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 288.1449890136719, - 679.1950073242188 - ], - "bbox": [ - 288.1449890136719, - 669.9895629882812, - 290.6854553222656, - 681.9945068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 666.3745727539062, - 290.6854553222656, - 681.9945068359375 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "employing a pre-trained text-only BERT does not guarantee", - "origin": [ - 55.439998626708984, - 691.1500244140625 - ], - "bbox": [ - 55.439998626708984, - 681.944580078125, - 289.4382019042969, - 693.9495239257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 681.944580078125, - 289.4382019042969, - 693.9495239257812 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "performance gain for vision and language downstream tasks.", - "origin": [ - 55.439998626708984, - 703.1060180664062 - ], - "bbox": [ - 55.439998626708984, - 693.9005737304688, - 291.185791015625, - 705.905517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 693.9005737304688, - 291.185791015625, - 705.905517578125 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Counterevidence has already been reported by", - "origin": [ - 55.439998626708984, - 715.0609741210938 - ], - "bbox": [ - 55.439998626708984, - 705.8555297851562, - 234.49002075195312, - 717.8604736328125 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Tan & Bansal", - "origin": [ - 234.49002075195312, - 715.0609741210938 - ], - "bbox": [ - 234.49002075195312, - 705.8555297851562, - 289.4381408691406, - 717.8604736328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 705.8555297851562, - 289.4381408691406, - 717.8604736328125 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 307.11199951171875, - 331.0715637207031, - 541.4420166015625, - 355.031494140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 307.11199951171875, - 340.2770080566406 - ], - "bbox": [ - 307.11199951171875, - 331.0715637207031, - 310.3631896972656, - 343.0765075683594 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2019", - "origin": [ - 310.3631896972656, - 340.2770080566406 - ], - "bbox": [ - 310.3631896972656, - 331.0715637207031, - 329.8899230957031, - 343.0765075683594 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "), where initializing with pre-trained BERT parameters", - "origin": [ - 329.8899230957031, - 340.2770080566406 - ], - "bbox": [ - 329.8899230957031, - 331.0715637207031, - 541.4420166015625, - 343.0765075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.11199951171875, - 331.0715637207031, - 541.4420166015625, - 343.0765075683594 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "led to weaker performance than pre-training from scratch.", - "origin": [ - 307.44000244140625, - 352.23199462890625 - ], - "bbox": [ - 307.44000244140625, - 343.02655029296875, - 538.064208984375, - 355.031494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 343.02655029296875, - 538.064208984375, - 355.031494140625 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 306.97198486328125, - 360.9595642089844, - 541.4391479492188, - 408.8294982910156 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We pre-train ViLT-B/32 for 100K or 200K steps on 64", - "origin": [ - 306.97198486328125, - 370.1650085449219 - ], - "bbox": [ - 306.97198486328125, - 360.9595642089844, - 541.4364624023438, - 372.9645080566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.97198486328125, - 360.9595642089844, - 541.4364624023438, - 372.9645080566406 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "NVIDIA V100 GPUs with a batch size of 4,096. For all", - "origin": [ - 307.44000244140625, - 382.1199951171875 - ], - "bbox": [ - 307.44000244140625, - 372.91455078125, - 541.4370727539062, - 384.91949462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 372.91455078125, - 541.4370727539062, - 384.91949462890625 - ] - }, - { - "spans": [ - { - "size": 9.90765380859375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "downstream tasks, we train for ten epochs with a batch size", - "origin": [ - 307.44000244140625, - 394.07501220703125 - ], - "bbox": [ - 307.44000244140625, - 384.86956787109375, - 541.4391479492188, - 396.87451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 384.86956787109375, - 541.4391479492188, - 396.87451171875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "of 256 for VQAv2/retrieval tasks and 128 for NLVR2.", - "origin": [ - 307.44000244140625, - 406.0299987792969 - ], - "bbox": [ - 307.44000244140625, - 396.8245544433594, - 522.9608764648438, - 408.8294982910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 396.8245544433594, - 522.9608764648438, - 408.8294982910156 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 307.44000244140625, - 421.59991455078125, - 408.3810729980469, - 434.5612487792969 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "4.3. Classification Tasks", - "origin": [ - 307.44000244140625, - 431.16400146484375 - ], - "bbox": [ - 307.44000244140625, - 421.59991455078125, - 408.3810729980469, - 434.5612487792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 421.59991455078125, - 408.3810729980469, - 434.5612487792969 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 306.97198486328125, - 440.6105651855469, - 542.82861328125, - 476.5255126953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We evaluate ViLT-B/32 on two commonly used datasets:", - "origin": [ - 306.97198486328125, - 449.8160095214844 - ], - "bbox": [ - 306.97198486328125, - 440.6105651855469, - 542.82861328125, - 452.6155090332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.97198486328125, - 440.6105651855469, - 542.82861328125, - 452.6155090332031 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VQAv2 and NLVR2. We use a two-layer MLP of hidden", - "origin": [ - 307.0820007324219, - 461.77099609375 - ], - "bbox": [ - 307.0820007324219, - 452.5655517578125, - 541.44482421875, - 464.57049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.0820007324219, - 452.5655517578125, - 541.44482421875, - 464.57049560546875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "size 1,536 as the fine-tuned downstream head.", - "origin": [ - 307.44000244140625, - 473.72601318359375 - ], - "bbox": [ - 307.44000244140625, - 464.52056884765625, - 490.9112854003906, - 476.5255126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 464.52056884765625, - 490.9112854003906, - 476.5255126953125 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 307.44000244140625, - 505.19189453125, - 543.0897216796875, - 601.2415161132812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Visual Question Answering.", - "origin": [ - 307.44000244140625, - 514.7559814453125 - ], - "bbox": [ - 307.44000244140625, - 505.19189453125, - 426.682373046875, - 518.1531982421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 505.19189453125, - 426.682373046875, - 518.1531982421875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "The VQAv2 task asks for", - "origin": [ - 436.64300537109375, - 514.7559814453125 - ], - "bbox": [ - 436.64300537109375, - 505.550537109375, - 541.6047973632812, - 517.5554809570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 436.64300537109375, - 505.550537109375, - 541.6047973632812, - 517.5554809570312 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "answers given pairs of an image and a question in natural", - "origin": [ - 307.44000244140625, - 526.7109985351562 - ], - "bbox": [ - 307.44000244140625, - 517.5055541992188, - 541.437255859375, - 529.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 517.5055541992188, - 541.437255859375, - 529.510498046875 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "language. The annotated answers are originally in free-form", - "origin": [ - 307.44000244140625, - 538.666015625 - ], - "bbox": [ - 307.44000244140625, - 529.4605712890625, - 541.4381713867188, - 541.4655151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 529.4605712890625, - 541.4381713867188, - 541.4655151367188 - ] - }, - { - "spans": [ - { - "size": 9.9176664352417, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "natural language, but it is a common practice to convert the", - "origin": [ - 307.44000244140625, - 550.6209716796875 - ], - "bbox": [ - 307.44000244140625, - 541.41552734375, - 541.4385986328125, - 553.4204711914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 541.41552734375, - 541.4385986328125, - 553.4204711914062 - ] - }, - { - "spans": [ - { - "size": 9.997407913208008, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "task to a classification task with 3,129 answer classes. Fol-", - "origin": [ - 307.44000244140625, - 562.5759887695312 - ], - "bbox": [ - 307.44000244140625, - 553.3705444335938, - 543.0897216796875, - 565.37548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 553.3705444335938, - 543.0897216796875, - 565.37548828125 - ] - }, - { - "spans": [ - { - "size": 9.867501258850098, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "lowing this practice, we fine-tune ViLT-B/32 on the VQAv2", - "origin": [ - 307.44000244140625, - 574.531982421875 - ], - "bbox": [ - 307.44000244140625, - 565.3265380859375, - 541.4424438476562, - 577.3314819335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 565.3265380859375, - 541.4424438476562, - 577.3314819335938 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "train and validation sets while reserving 1,000 validation", - "origin": [ - 307.44000244140625, - 586.4869995117188 - ], - "bbox": [ - 307.44000244140625, - 577.2815551757812, - 541.4371337890625, - 589.2864990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 577.2815551757812, - 541.4371337890625, - 589.2864990234375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "images and their related questions for internal validation.", - "origin": [ - 307.44000244140625, - 598.4420166015625 - ], - "bbox": [ - 307.44000244140625, - 589.236572265625, - 534.6370849609375, - 601.2415161132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 589.236572265625, - 534.6370849609375, - 601.2415161132812 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 306.97198486328125, - 603.5535888671875, - 543.1849365234375, - 678.9495239257812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.882577896118164, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We report the test-dev score results", - "origin": [ - 306.97198486328125, - 616.375 - ], - "bbox": [ - 306.97198486328125, - 607.1695556640625, - 444.697265625, - 619.1744995117188 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "6", - "origin": [ - 444.70001220703125, - 612.759033203125 - ], - "bbox": [ - 444.70001220703125, - 606.3152465820312, - 448.1869201660156, - 614.7186889648438 - ] - }, - { - "size": 9.882577896118164, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 448.1869201660156, - 612.759033203125 - ], - "bbox": [ - 448.1869201660156, - 603.5535888671875, - 451.177001953125, - 619.1744995117188 - ] - }, - { - "size": 9.882577896118164, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "from the submission to", - "origin": [ - 451.177001953125, - 616.375 - ], - "bbox": [ - 451.177001953125, - 607.1695556640625, - 541.4448852539062, - 619.1744995117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.97198486328125, - 603.5535888671875, - 541.4448852539062, - 619.1744995117188 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the evaluation server. ViLT falls short of VQA score com-", - "origin": [ - 307.44000244140625, - 628.3300170898438 - ], - "bbox": [ - 307.44000244140625, - 619.1245727539062, - 543.0934448242188, - 631.1295166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 619.1245727539062, - 543.0934448242188, - 631.1295166015625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "pared to other VLP models with a heavy visual embedder.", - "origin": [ - 307.44000244140625, - 640.2850341796875 - ], - "bbox": [ - 307.44000244140625, - 631.07958984375, - 543.1849365234375, - 643.0845336914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 631.07958984375, - 543.1849365234375, - 643.0845336914062 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We suspect a detached object representation generated by", - "origin": [ - 306.97198486328125, - 652.239990234375 - ], - "bbox": [ - 306.97198486328125, - 643.0345458984375, - 541.7923583984375, - 655.0394897460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.97198486328125, - 643.0345458984375, - 541.7923583984375, - 655.0394897460938 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the object detector eases the training of VQA since questions", - "origin": [ - 307.44000244140625, - 664.1950073242188 - ], - "bbox": [ - 307.44000244140625, - 654.9895629882812, - 541.4381103515625, - 666.9945068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 654.9895629882812, - 541.4381103515625, - 666.9945068359375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "in VQA typically ask about objects.", - "origin": [ - 307.44000244140625, - 676.1500244140625 - ], - "bbox": [ - 307.44000244140625, - 666.944580078125, - 450.22393798828125, - 678.9495239257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 666.944580078125, - 450.22393798828125, - 678.9495239257812 - ] - } - ] - } - ], - "images": [], - "tables": [ - { - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 290.11322021484375, - 187.49012756347656 - ], - "image_path": "tables/0_54_74_290_187.jpg" - }, - { - "bbox": [ - 306.89300537109375, - 74.81703186035156, - 543.0096435546875, - 290 - ], - "image_path": "tables/0_306_74_543_290.jpg" - } - ], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 222.23999999999998, - 395.52, - 244.79999999999998, - 406.08 - ], - "image_path": "equations_inline/0_222_395_244_406.jpg" - }, - { - "bbox": [ - 90.24, - 407.52, - 112.32, - 418.55999999999995 - ], - "image_path": "equations_inline/0_90_407_112_418.jpg" - }, - { - "bbox": [ - 58.08, - 534.7199999999999, - 101.27999999999999, - 543.8399999999999 - ], - "image_path": "equations_inline/0_58_534_101_543.jpg" - }, - { - "bbox": [ - 54.239999999999995, - 569.76, - 74.88, - 579.36 - ], - "image_path": "equations_inline/0_54_569_74_579.jpg" - }, - { - "bbox": [ - 206.39999999999998, - 594.24, - 259.68, - 604.8 - ], - "image_path": "equations_inline/0_206_594_259_604.jpg" - }, - { - "bbox": [ - 72.96, - 671.52, - 92.16, - 681.12 - ], - "image_path": "equations_inline/0_72_671_92_681.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 45.50126647949219, - 612.0, - 57.16654968261719 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 54.893001556396484, - 74.81703186035156, - 291.185791015625, - 717.8604736328125 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 306.89300537109375, - 74.81703186035156, - 543.1849365234375, - 717.8604736328125 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision", - "origin": [ - 134.13299560546875, - 54.1090087890625 - ], - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 290.11322021484375, - 118.49856567382812 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Table 1.", - "origin": [ - 54.893001556396484, - 83.10198974609375 - ], - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 83.55857849121094, - 85.62155151367188 - ] - }, - { - "size": 8.880810737609863, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Pre-training dataset statistics. Caption length is the length", - "origin": [ - 83.55857849121094, - 83.10198974609375 - ], - "bbox": [ - 83.55857849121094, - 74.81703186035156, - 289.4371337890625, - 85.62155151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 289.4371337890625, - 85.62155151367188 - ] - }, - { - "spans": [ - { - "size": 9.046737670898438, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "of tokens from pre-trained", - "origin": [ - 55.439998626708984, - 94.06097412109375 - ], - "bbox": [ - 55.439998626708984, - 85.77601623535156, - 151.27272033691406, - 96.58053588867188 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 0, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": " bert-base-uncased", - "origin": [ - 151.27272033691406, - 94.06097412109375 - ], - "bbox": [ - 151.27272033691406, - 86.78922271728516, - 244.95823669433594, - 96.1860122680664 - ] - }, - { - "size": 9.046737670898438, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " tokenizer.", - "origin": [ - 244.95823669433594, - 94.06097412109375 - ], - "bbox": [ - 244.95823669433594, - 85.77601623535156, - 282.852294921875, - 96.58053588867188 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " †", - "origin": [ - 282.852294921875, - 94.06097412109375 - ], - "bbox": [ - 282.852294921875, - 85.77601623535156, - 290.11322021484375, - 96.58053588867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 85.77601623535156, - 290.11322021484375, - 96.58053588867188 - ] - }, - { - "spans": [ - { - "size": 8.988788604736328, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "GCC and SBU provide only image urls, so we collect the images", - "origin": [ - 55.439998626708984, - 105.02001953125 - ], - "bbox": [ - 55.439998626708984, - 96.73506164550781, - 289.4436950683594, - 107.53958129882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 96.73506164550781, - 289.4436950683594, - 107.53958129882812 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "from urls which were still accessible.", - "origin": [ - 55.439998626708984, - 115.97900390625 - ], - "bbox": [ - 55.439998626708984, - 107.69404602050781, - 188.91384887695312, - 118.49856567382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 107.69404602050781, - 188.91384887695312, - 118.49856567382812 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 61.849998474121094, - 123.37742614746094, - 283.0293884277344, - 135.5024871826172 - ], - "lines": [ - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Dataset", - "origin": [ - 61.849998474121094, - 132.67498779296875 - ], - "bbox": [ - 61.849998474121094, - 123.37742614746094, - 92.0268325805664, - 135.5024871826172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.849998474121094, - 123.37742614746094, - 92.0268325805664, - 135.5024871826172 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "# Images", - "origin": [ - 116.29710388183594, - 132.67498779296875 - ], - "bbox": [ - 116.29710388183594, - 123.37742614746094, - 152.90374755859375, - 135.5024871826172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 116.29710388183594, - 123.37742614746094, - 152.90374755859375, - 135.5024871826172 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "# Captions", - "origin": [ - 164.85775756835938, - 132.67498779296875 - ], - "bbox": [ - 164.85775756835938, - 123.37742614746094, - 208.1859893798828, - 135.5024871826172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 164.85775756835938, - 123.37742614746094, - 208.1859893798828, - 135.5024871826172 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Caption Length", - "origin": [ - 220.13999938964844, - 132.67498779296875 - ], - "bbox": [ - 220.13999938964844, - 123.37742614746094, - 283.0293884277344, - 135.5024871826172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.13999938964844, - 123.37742614746094, - 283.0293884277344, - 135.5024871826172 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 61.849998474121094, - 138.4414520263672, - 278.1010437011719, - 187.49012756347656 - ], - "lines": [ - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MSCOCO", - "origin": [ - 61.849998474121094, - 147.739013671875 - ], - "bbox": [ - 61.849998474121094, - 138.4414520263672, - 104.34309387207031, - 150.56651306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.849998474121094, - 138.4414520263672, - 104.34309387207031, - 150.56651306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "113K", - "origin": [ - 123.42121887207031, - 147.739013671875 - ], - "bbox": [ - 123.42121887207031, - 138.4414520263672, - 145.77963256835938, - 150.56651306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 123.42121887207031, - 138.4414520263672, - 145.77963256835938, - 150.56651306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "567K", - "origin": [ - 175.34266662597656, - 147.739013671875 - ], - "bbox": [ - 175.34266662597656, - 138.4414520263672, - 197.70108032226562, - 150.56651306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.34266662597656, - 138.4414520263672, - 197.70108032226562, - 150.56651306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "11.81", - "origin": [ - 225.07054138183594, - 147.739013671875 - ], - "bbox": [ - 225.07054138183594, - 138.4414520263672, - 247.710693359375, - 150.56651306152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ±", - "origin": [ - 247.710693359375, - 147.739013671875 - ], - "bbox": [ - 247.710693359375, - 140.01800537109375, - 257.96893310546875, - 157.30311584472656 - ] - }, - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2.81", - "origin": [ - 257.96893310546875, - 147.739013671875 - ], - "bbox": [ - 257.96893310546875, - 138.4414520263672, - 278.1010437011719, - 150.56651306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.07054138183594, - 138.4414520263672, - 278.1010437011719, - 157.30311584472656 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VG", - "origin": [ - 61.850006103515625, - 157.802001953125 - ], - "bbox": [ - 61.850006103515625, - 148.5044403076172, - 76.22903442382812, - 160.62950134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.850006103515625, - 148.5044403076172, - 76.22903442382812, - 160.62950134277344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "108K", - "origin": [ - 123.42123413085938, - 157.802001953125 - ], - "bbox": [ - 123.42123413085938, - 148.5044403076172, - 145.77964782714844, - 160.62950134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 123.42123413085938, - 148.5044403076172, - 145.77964782714844, - 160.62950134277344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "5.41M", - "origin": [ - 173.24972534179688, - 157.802001953125 - ], - "bbox": [ - 173.24972534179688, - 148.5044403076172, - 199.8041229248047, - 160.62950134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.24972534179688, - 148.5044403076172, - 199.8041229248047, - 160.62950134277344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "5.53", - "origin": [ - 227.5861358642578, - 157.802001953125 - ], - "bbox": [ - 227.5861358642578, - 148.5044403076172, - 245.1951446533203, - 160.62950134277344 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ±", - "origin": [ - 245.1951446533203, - 157.802001953125 - ], - "bbox": [ - 245.1951446533203, - 150.08099365234375, - 255.45294189453125, - 167.36610412597656 - ] - }, - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 1.76", - "origin": [ - 255.45294189453125, - 157.802001953125 - ], - "bbox": [ - 255.45294189453125, - 148.5044403076172, - 275.5850524902344, - 160.62950134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.5861358642578, - 148.5044403076172, - 275.5850524902344, - 167.36610412597656 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "GCC", - "origin": [ - 61.850006103515625, - 167.864013671875 - ], - "bbox": [ - 61.850006103515625, - 158.5664520263672, - 82.53810119628906, - 170.69151306152344 - ] - }, - { - "size": 7.043499946594238, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†", - "origin": [ - 82.53800964355469, - 165.8170166015625 - ], - "bbox": [ - 82.53800964355469, - 159.30882263183594, - 86.05976104736328, - 167.79623413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.850006103515625, - 158.5664520263672, - 86.05976104736328, - 170.69151306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "3.01M", - "origin": [ - 121.32400512695312, - 167.864013671875 - ], - "bbox": [ - 121.32400512695312, - 158.5664520263672, - 147.87840270996094, - 170.69151306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 121.32400512695312, - 158.5664520263672, - 147.87840270996094, - 170.69151306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "3.01M", - "origin": [ - 173.24545288085938, - 167.864013671875 - ], - "bbox": [ - 173.24545288085938, - 158.5664520263672, - 199.7998504638672, - 170.69151306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.24545288085938, - 158.5664520263672, - 199.7998504638672, - 170.69151306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "10.66", - "origin": [ - 225.07635498046875, - 167.864013671875 - ], - "bbox": [ - 225.07635498046875, - 158.5664520263672, - 247.7165069580078, - 170.69151306152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ±", - "origin": [ - 247.7165069580078, - 167.864013671875 - ], - "bbox": [ - 247.7165069580078, - 160.14300537109375, - 257.9689636230469, - 177.42811584472656 - ] - }, - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 4.93", - "origin": [ - 257.9689636230469, - 167.864013671875 - ], - "bbox": [ - 257.9689636230469, - 158.5664520263672, - 278.1010437011719, - 170.69151306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.07635498046875, - 158.5664520263672, - 278.1010437011719, - 177.42811584472656 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "SBU", - "origin": [ - 61.850006103515625, - 177.926025390625 - ], - "bbox": [ - 61.850006103515625, - 168.6284637451172, - 81.320556640625, - 180.75352478027344 - ] - }, - { - "size": 7.043499946594238, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†", - "origin": [ - 81.32000732421875, - 175.8790283203125 - ], - "bbox": [ - 81.32000732421875, - 169.37083435058594, - 84.84175872802734, - 177.85824584960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.850006103515625, - 168.6284637451172, - 84.84175872802734, - 180.75352478027344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "867K", - "origin": [ - 123.42201232910156, - 177.926025390625 - ], - "bbox": [ - 123.42201232910156, - 168.6284637451172, - 145.78042602539062, - 180.75352478027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 123.42201232910156, - 168.6284637451172, - 145.78042602539062, - 180.75352478027344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "867K", - "origin": [ - 175.3434600830078, - 177.926025390625 - ], - "bbox": [ - 175.3434600830078, - 168.6284637451172, - 197.70187377929688, - 180.75352478027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.3434600830078, - 168.6284637451172, - 197.70187377929688, - 180.75352478027344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "15.0", - "origin": [ - 227.58689880371094, - 177.926025390625 - ], - "bbox": [ - 227.58689880371094, - 168.6284637451172, - 245.19590759277344, - 180.75352478027344 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ±", - "origin": [ - 245.19590759277344, - 177.926025390625 - ], - "bbox": [ - 245.19590759277344, - 170.20501708984375, - 255.45294189453125, - 187.49012756347656 - ] - }, - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 7.74", - "origin": [ - 255.45294189453125, - 177.926025390625 - ], - "bbox": [ - 255.45294189453125, - 168.6284637451172, - 275.5850524902344, - 180.75352478027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.58689880371094, - 168.6284637451172, - 275.5850524902344, - 187.49012756347656 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 55.439998626708984, - 213.75054931640625, - 252.251220703125, - 225.75547790527344 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "et al.", - "origin": [ - 55.439998626708984, - 222.95599365234375 - ], - "bbox": [ - 55.439998626708984, - 213.75054931640625, - 74.80728149414062, - 225.75547790527344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 74.80728149414062, - 222.95599365234375 - ], - "bbox": [ - 74.80728149414062, - 213.75054931640625, - 77.29792785644531, - 225.75547790527344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2018", - "origin": [ - 77.29792785644531, - 222.95599365234375 - ], - "bbox": [ - 77.29792785644531, - 213.75054931640625, - 99.71377563476562, - 225.75547790527344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ").", - "origin": [ - 99.71377563476562, - 222.95599365234375 - ], - "bbox": [ - 99.71377563476562, - 213.75054931640625, - 105.52196502685547, - 225.75547790527344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Table 1", - "origin": [ - 105.52196502685547, - 222.95599365234375 - ], - "bbox": [ - 105.52196502685547, - 213.75054931640625, - 137.97015380859375, - 225.75547790527344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " reports the dataset statistics.", - "origin": [ - 137.97015380859375, - 222.95599365234375 - ], - "bbox": [ - 137.97015380859375, - 213.75054931640625, - 252.251220703125, - 225.75547790527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 213.75054931640625, - 252.251220703125, - 225.75547790527344 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 54.97200012207031, - 231.68353271484375, - 291.09637451171875, - 351.2854919433594 - ], - "lines": [ - { - "spans": [ - { - "size": 10.051863670349121, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We evaluate ViLT on two widely explored types of vision-", - "origin": [ - 54.97200012207031, - 240.88897705078125 - ], - "bbox": [ - 54.97200012207031, - 231.68353271484375, - 291.09637451171875, - 243.68846130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.97200012207031, - 231.68353271484375, - 291.09637451171875, - 243.68846130371094 - ] - }, - { - "spans": [ - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and-language downstream tasks: for", - "origin": [ - 55.439998626708984, - 252.843994140625 - ], - "bbox": [ - 55.439998626708984, - 243.6385498046875, - 201.251708984375, - 255.6434783935547 - ] - }, - { - "size": 10.012289047241211, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " classification", - "origin": [ - 201.251708984375, - 252.843994140625 - ], - "bbox": [ - 201.251708984375, - 243.6385498046875, - 256.83441162109375, - 255.5338897705078 - ] - }, - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ", we use", - "origin": [ - 256.8330078125, - 252.843994140625 - ], - "bbox": [ - 256.8330078125, - 243.6385498046875, - 289.4447021484375, - 255.6434783935547 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 243.6385498046875, - 289.4447021484375, - 255.6434783935547 - ] - }, - { - "spans": [ - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VQAv2 (", - "origin": [ - 55.082000732421875, - 264.79901123046875 - ], - "bbox": [ - 55.082000732421875, - 255.59356689453125, - 91.2114486694336, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Goyal et al.", - "origin": [ - 91.2114486694336, - 264.79901123046875 - ], - "bbox": [ - 91.2114486694336, - 255.59356689453125, - 136.7416229248047, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 136.7416229248047, - 264.79901123046875 - ], - "bbox": [ - 136.7416229248047, - 255.59356689453125, - 139.19740295410156, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2017", - "origin": [ - 139.19740295410156, - 264.79901123046875 - ], - "bbox": [ - 139.19740295410156, - 255.59356689453125, - 161.32888793945312, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") and NLVR2 (", - "origin": [ - 161.32888793945312, - 264.79901123046875 - ], - "bbox": [ - 161.32888793945312, - 255.59356689453125, - 220.1890411376953, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Suhr et al.", - "origin": [ - 220.1890411376953, - 264.79901123046875 - ], - "bbox": [ - 220.1890411376953, - 255.59356689453125, - 260.3656005859375, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 260.3656005859375, - 264.79901123046875 - ], - "bbox": [ - 260.3656005859375, - 255.59356689453125, - 262.8213806152344, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2018", - "origin": [ - 262.8213806152344, - 264.79901123046875 - ], - "bbox": [ - 262.8213806152344, - 255.59356689453125, - 284.96270751953125, - 267.5985107421875 - ] - }, - { - "size": 9.89261531829834, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "),", - "origin": [ - 284.96270751953125, - 264.79901123046875 - ], - "bbox": [ - 284.96270751953125, - 255.59356689453125, - 290.6895751953125, - 267.5985107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.082000732421875, - 255.59356689453125, - 290.6895751953125, - 267.5985107421875 - ] - }, - { - "spans": [ - { - "size": 9.982504844665527, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and for", - "origin": [ - 55.439998626708984, - 276.7550048828125 - ], - "bbox": [ - 55.439998626708984, - 267.549560546875, - 84.03701782226562, - 279.55450439453125 - ] - }, - { - "size": 9.982504844665527, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " retrieval", - "origin": [ - 84.03701782226562, - 276.7550048828125 - ], - "bbox": [ - 84.03701782226562, - 267.549560546875, - 120.4452896118164, - 279.4449157714844 - ] - }, - { - "size": 9.982504844665527, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ", we use MSCOCO and Flickr30K (F30K)", - "origin": [ - 120.4469985961914, - 276.7550048828125 - ], - "bbox": [ - 120.4469985961914, - 267.549560546875, - 290.1084899902344, - 279.55450439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 267.549560546875, - 290.1084899902344, - 279.55450439453125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 55.11199951171875, - 288.7099914550781 - ], - "bbox": [ - 55.11199951171875, - 279.5045471191406, - 58.49589538574219, - 291.5094909667969 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Plummer et al.", - "origin": [ - 58.49589538574219, - 288.7099914550781 - ], - "bbox": [ - 58.49589538574219, - 279.5045471191406, - 119.6397705078125, - 291.5094909667969 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 119.6397705078125, - 288.7099914550781 - ], - "bbox": [ - 119.6397705078125, - 279.5045471191406, - 122.18023681640625, - 291.5094909667969 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2015", - "origin": [ - 122.18023681640625, - 288.7099914550781 - ], - "bbox": [ - 122.18023681640625, - 279.5045471191406, - 145.82688903808594, - 291.5094909667969 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") re-splited by", - "origin": [ - 145.82688903808594, - 288.7099914550781 - ], - "bbox": [ - 145.82688903808594, - 279.5045471191406, - 204.42013549804688, - 291.5094909667969 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Karpathy & Fei-Fei", - "origin": [ - 204.42013549804688, - 288.7099914550781 - ], - "bbox": [ - 204.42013549804688, - 279.5045471191406, - 289.4443664550781, - 291.5094909667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.11199951171875, - 279.5045471191406, - 289.4443664550781, - 291.5094909667969 - ] - }, - { - "spans": [ - { - "size": 9.867501258850098, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 55.11199951171875, - 300.6650085449219 - ], - "bbox": [ - 55.11199951171875, - 291.4595642089844, - 58.366512298583984, - 303.4645080566406 - ] - }, - { - "size": 9.867501258850098, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2015", - "origin": [ - 58.366512298583984, - 300.6650085449219 - ], - "bbox": [ - 58.366512298583984, - 291.4595642089844, - 77.91313934326172, - 303.4645080566406 - ] - }, - { - "size": 9.867501258850098, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "). For the classification tasks, we fine-tune three times", - "origin": [ - 77.91313934326172, - 300.6650085449219 - ], - "bbox": [ - 77.91313934326172, - 291.4595642089844, - 289.43695068359375, - 303.4645080566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.11199951171875, - 291.4595642089844, - 289.43695068359375, - 303.4645080566406 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "with different initialization seeds for the head and data or-", - "origin": [ - 55.082000732421875, - 312.6199951171875 - ], - "bbox": [ - 55.082000732421875, - 303.41455078125, - 291.0910949707031, - 315.41949462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.082000732421875, - 303.41455078125, - 291.0910949707031, - 315.41949462890625 - ] - }, - { - "spans": [ - { - "size": 10.046924591064453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "dering and report the mean scores. We report the standard", - "origin": [ - 55.439998626708984, - 324.57501220703125 - ], - "bbox": [ - 55.439998626708984, - 315.36956787109375, - 289.4377136230469, - 327.37451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 315.36956787109375, - 289.4377136230469, - 327.37451171875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "deviation in", - "origin": [ - 55.439998626708984, - 336.5299987792969 - ], - "bbox": [ - 55.439998626708984, - 327.3245544433594, - 104.0949478149414, - 339.3294982910156 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Table 5", - "origin": [ - 104.0949478149414, - 336.5299987792969 - ], - "bbox": [ - 104.0949478149414, - 327.3245544433594, - 137.87295532226562, - 339.3294982910156 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " along with ablation studies. For the", - "origin": [ - 137.87295532226562, - 336.5299987792969 - ], - "bbox": [ - 137.87295532226562, - 327.3245544433594, - 289.43707275390625, - 339.3294982910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 327.3245544433594, - 289.43707275390625, - 339.3294982910156 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "retrieval tasks, we only fine-tune once.", - "origin": [ - 55.439998626708984, - 348.4859924316406 - ], - "bbox": [ - 55.439998626708984, - 339.2805480957031, - 209.0532684326172, - 351.2854919433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 339.2805480957031, - 209.0532684326172, - 351.2854919433594 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 55.439998626708984, - 364.0549011230469, - 172.76951599121094, - 377.0162353515625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "4.2. Implementation Details", - "origin": [ - 55.439998626708984, - 373.6189880371094 - ], - "bbox": [ - 55.439998626708984, - 364.0549011230469, - 172.76951599121094, - 377.0162353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 364.0549011230469, - 172.76951599121094, - 377.0162353515625 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 55.051998138427734, - 383.0655517578125, - 291.0975341796875, - 466.801513671875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.902643203735352, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "For all experiments, we use AdamW optimizer (", - "origin": [ - 55.439998626708984, - 392.27099609375 - ], - "bbox": [ - 55.439998626708984, - 383.0655517578125, - 245.54869079589844, - 395.07049560546875 - ] - }, - { - "size": 9.902643203735352, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Loshchilov", - "origin": [ - 245.54869079589844, - 392.27099609375 - ], - "bbox": [ - 245.54869079589844, - 383.0655517578125, - 289.68487548828125, - 395.07049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 383.0655517578125, - 289.68487548828125, - 395.07049560546875 - ] - }, - { - "spans": [ - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "& Hutter", - "origin": [ - 55.051998138427734, - 404.22601318359375 - ], - "bbox": [ - 55.051998138427734, - 395.02056884765625, - 90.24198913574219, - 407.0255126953125 - ] - }, - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 90.24198913574219, - 404.22601318359375 - ], - "bbox": [ - 90.24198913574219, - 395.02056884765625, - 92.69528198242188, - 407.0255126953125 - ] - }, - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2018", - "origin": [ - 92.69528198242188, - 404.22601318359375 - ], - "bbox": [ - 92.69528198242188, - 395.02056884765625, - 114.81414031982422, - 407.0255126953125 - ] - }, - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") with base learning rate of", - "origin": [ - 114.81414031982422, - 404.22601318359375 - ], - "bbox": [ - 114.81414031982422, - 395.02056884765625, - 220.4429931640625, - 407.0255126953125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 10", - "origin": [ - 220.4429931640625, - 404.22601318359375 - ], - "bbox": [ - 220.4429931640625, - 396.7540588378906, - 232.88958740234375, - 406.7166748046875 - ] - }, - { - "size": 6.973800182342529, - "flags": 7, - "font": "CMSY7", - "color": 0, - "ascender": 0.7820000052452087, - "descender": -0.9509999752044678, - "text": "−", - "origin": [ - 232.88900756835938, - 400.61102294921875 - ], - "bbox": [ - 232.88900756835938, - 395.1575012207031, - 239.10963439941406, - 407.24310302734375 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "CMR7", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "4", - "origin": [ - 239.1160125732422, - 400.61102294921875 - ], - "bbox": [ - 239.1160125732422, - 395.38067626953125, - 243.0841064453125, - 402.3544616699219 - ] - }, - { - "size": 9.887598037719727, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 243.0841064453125, - 400.61102294921875 - ], - "bbox": [ - 243.0841064453125, - 391.40557861328125, - 246.07200622558594, - 407.0255126953125 - ] - }, - { - "size": 9.887598037719727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and weight", - "origin": [ - 246.07200622558594, - 404.22601318359375 - ], - "bbox": [ - 246.07200622558594, - 395.02056884765625, - 289.4364013671875, - 407.0255126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.051998138427734, - 391.40557861328125, - 289.4364013671875, - 407.24310302734375 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "decay of", - "origin": [ - 55.439998626708984, - 416.1820068359375 - ], - "bbox": [ - 55.439998626708984, - 406.9765625, - 88.49871063232422, - 418.98150634765625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "CMR10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " 10", - "origin": [ - 88.49871063232422, - 416.1820068359375 - ], - "bbox": [ - 88.49871063232422, - 408.7100524902344, - 100.62460327148438, - 418.67266845703125 - ] - }, - { - "size": 6.973800182342529, - "flags": 7, - "font": "CMSY7", - "color": 0, - "ascender": 0.7820000052452087, - "descender": -0.9509999752044678, - "text": "−", - "origin": [ - 100.625, - 412.5660095214844 - ], - "bbox": [ - 100.625, - 407.11248779296875, - 106.84562683105469, - 419.1980895996094 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "CMR7", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "2", - "origin": [ - 106.85099792480469, - 412.5660095214844 - ], - "bbox": [ - 106.85099792480469, - 407.3356628417969, - 110.819091796875, - 414.3094482421875 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ". The learning rate was warmed up for 10% of", - "origin": [ - 111.32099914550781, - 416.1820068359375 - ], - "bbox": [ - 111.32099914550781, - 406.9765625, - 289.4435119628906, - 418.98150634765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 406.9765625, - 289.4435119628906, - 419.1980895996094 - ] - }, - { - "spans": [ - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the total training steps and was decayed linearly to zero for", - "origin": [ - 55.439998626708984, - 428.1369934082031 - ], - "bbox": [ - 55.439998626708984, - 418.9315490722656, - 289.6070251464844, - 430.9364929199219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 418.9315490722656, - 289.6070251464844, - 430.9364929199219 - ] - }, - { - "spans": [ - { - "size": 9.95761775970459, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the rest of the training. Note that downstream performance", - "origin": [ - 55.439998626708984, - 440.0920104980469 - ], - "bbox": [ - 55.439998626708984, - 430.8865661621094, - 289.4364929199219, - 442.8915100097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 430.8865661621094, - 289.4364929199219, - 442.8915100097656 - ] - }, - { - "spans": [ - { - "size": 9.932666778564453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "may be further improved if we customize the hyperparame-", - "origin": [ - 55.439998626708984, - 452.0469970703125 - ], - "bbox": [ - 55.439998626708984, - 442.841552734375, - 291.0975341796875, - 454.84649658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 442.841552734375, - 291.0975341796875, - 454.84649658203125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ters to each task.", - "origin": [ - 55.439998626708984, - 464.00201416015625 - ], - "bbox": [ - 55.439998626708984, - 454.79656982421875, - 121.8406982421875, - 466.801513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 454.79656982421875, - 121.8406982421875, - 466.801513671875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 54.97200012207031, - 472.72955322265625, - 291.0934143066406, - 628.1964721679688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We resize the shorter edge of input images to 384 and limit", - "origin": [ - 54.97200012207031, - 481.93499755859375 - ], - "bbox": [ - 54.97200012207031, - 472.72955322265625, - 289.4366760253906, - 484.7344970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.97200012207031, - 472.72955322265625, - 289.4366760253906, - 484.7344970703125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the longer edge to under 640 while preserving the aspect", - "origin": [ - 55.439998626708984, - 493.8900146484375 - ], - "bbox": [ - 55.439998626708984, - 484.6845703125, - 289.4370422363281, - 496.68951416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 484.6845703125, - 289.4370422363281, - 496.68951416015625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ratio. This resizing scheme is also used during object de-", - "origin": [ - 55.439998626708984, - 505.8450012207031 - ], - "bbox": [ - 55.439998626708984, - 496.6395568847656, - 291.0934143066406, - 508.6445007324219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 496.6395568847656, - 291.0934143066406, - 508.6445007324219 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tection in other VLP models, but with a larger size of the", - "origin": [ - 55.439998626708984, - 517.7999877929688 - ], - "bbox": [ - 55.439998626708984, - 508.59454345703125, - 289.43701171875, - 520.5994873046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 508.59454345703125, - 289.43701171875, - 520.5994873046875 - ] - }, - { - "spans": [ - { - "size": 9.872529029846191, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "shorter edge (800). Patch projection of ViLT-B/32 yields 12", - "origin": [ - 55.439998626708984, - 529.7559814453125 - ], - "bbox": [ - 55.439998626708984, - 520.550537109375, - 289.4363708496094, - 532.5554809570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 520.550537109375, - 289.4363708496094, - 532.5554809570312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": "×", - "origin": [ - 55.439998626708984, - 541.7109985351562 - ], - "bbox": [ - 55.439998626708984, - 533.989990234375, - 63.180938720703125, - 551.2750854492188 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 20 = 240 patches for an image with a resolution of 384", - "origin": [ - 63.180938720703125, - 541.7109985351562 - ], - "bbox": [ - 63.180938720703125, - 532.5055541992188, - 279.2786865234375, - 544.510498046875 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ×", - "origin": [ - 279.2786865234375, - 541.7109985351562 - ], - "bbox": [ - 279.2786865234375, - 533.989990234375, - 289.43292236328125, - 551.2750854492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 532.5055541992188, - 289.43292236328125, - 551.2750854492188 - ] - }, - { - "spans": [ - { - "size": 9.937662124633789, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "640. As this is a rarely reached upper limit, we sample 200", - "origin": [ - 55.439998626708984, - 553.666015625 - ], - "bbox": [ - 55.439998626708984, - 544.4605712890625, - 289.441162109375, - 556.4655151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 544.4605712890625, - 289.441162109375, - 556.4655151367188 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "patches at maximum during pre-training. We interpolate", - "origin": [ - 55.439998626708984, - 565.6209716796875 - ], - "bbox": [ - 55.439998626708984, - 556.41552734375, - 289.4370422363281, - 568.4204711914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 556.41552734375, - 289.4370422363281, - 568.4204711914062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "V", - "origin": [ - 55.439998626708984, - 577.5759887695312 - ], - "bbox": [ - 55.439998626708984, - 570.1040649414062, - 61.24819564819336, - 580.066650390625 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 61.24819564819336, - 577.5759887695312 - ], - "bbox": [ - 61.24819564819336, - 567.5172119140625, - 63.465999603271484, - 579.53564453125 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "pos", - "origin": [ - 63.465999603271484, - 573.9609985351562 - ], - "bbox": [ - 63.465999603271484, - 567.5172119140625, - 73.15260314941406, - 575.920654296875 - ] - }, - { - "size": 10.061732292175293, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 73.15260314941406, - 573.9609985351562 - ], - "bbox": [ - 73.15260314941406, - 564.7555541992188, - 76.23699951171875, - 580.37548828125 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "of ViT-B/32 to fit the size of each image and pad the", - "origin": [ - 76.23699951171875, - 577.5759887695312 - ], - "bbox": [ - 76.23699951171875, - 568.3705444335938, - 289.44287109375, - 580.37548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 564.7555541992188, - 289.44287109375, - 580.37548828125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "patches for batch training. Note that the resulting image", - "origin": [ - 55.439998626708984, - 589.531005859375 - ], - "bbox": [ - 55.439998626708984, - 580.3255615234375, - 289.43701171875, - 592.3305053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 580.3255615234375, - 289.43701171875, - 592.3305053710938 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "resolution is four times smaller than 800", - "origin": [ - 55.439998626708984, - 601.4869995117188 - ], - "bbox": [ - 55.439998626708984, - 592.2815551757812, - 222.37889099121094, - 604.2864990234375 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ×", - "origin": [ - 222.37889099121094, - 601.4869995117188 - ], - "bbox": [ - 222.37889099121094, - 593.7659912109375, - 233.10093688964844, - 611.0510864257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 1,333, which", - "origin": [ - 233.10093688964844, - 601.4869995117188 - ], - "bbox": [ - 233.10093688964844, - 592.2815551757812, - 289.4427490234375, - 604.2864990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 592.2815551757812, - 289.4427490234375, - 611.0510864257812 - ] - }, - { - "spans": [ - { - "size": 10.007330894470215, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "is the size that all other VLP models use for inputs to their", - "origin": [ - 55.439998626708984, - 613.4420166015625 - ], - "bbox": [ - 55.439998626708984, - 604.236572265625, - 289.6075134277344, - 616.2415161132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 604.236572265625, - 289.6075134277344, - 616.2415161132812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "visual embedders.", - "origin": [ - 55.191001892089844, - 625.39697265625 - ], - "bbox": [ - 55.191001892089844, - 616.1915283203125, - 127.13092041015625, - 628.1964721679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.191001892089844, - 616.1915283203125, - 127.13092041015625, - 628.1964721679688 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 54.97200012207031, - 634.1245727539062, - 291.185791015625, - 717.8604736328125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.007330894470215, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We use the", - "origin": [ - 54.97200012207031, - 643.3300170898438 - ], - "bbox": [ - 54.97200012207031, - 634.1245727539062, - 98.78981018066406, - 646.1295166015625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 0, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": " bert-base-uncased", - "origin": [ - 98.78981018066406, - 643.3300170898438 - ], - "bbox": [ - 98.78981018066406, - 635.2503662109375, - 202.89346313476562, - 645.691162109375 - ] - }, - { - "size": 10.007330894470215, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " tokenizer to tokenize", - "origin": [ - 202.89346313476562, - 643.3300170898438 - ], - "bbox": [ - 202.89346313476562, - 634.1245727539062, - 289.4389953613281, - 646.1295166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.97200012207031, - 634.1245727539062, - 289.4389953613281, - 646.1295166015625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "text inputs. Instead of fine-tuning from pre-trained BERT,", - "origin": [ - 55.439998626708984, - 655.2850341796875 - ], - "bbox": [ - 55.439998626708984, - 646.07958984375, - 290.6869201660156, - 658.0845336914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 646.07958984375, - 290.6869201660156, - 658.0845336914062 - ] - }, - { - "spans": [ - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "we learn the textual embedding-related parameters", - "origin": [ - 55.082000732421875, - 667.239990234375 - ], - "bbox": [ - 55.082000732421875, - 658.0345458984375, - 255.87881469726562, - 670.0394897460938 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " t", - "origin": [ - 255.87881469726562, - 667.239990234375 - ], - "bbox": [ - 255.87881469726562, - 659.76806640625, - 261.96649169921875, - 669.7306518554688 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "class", - "origin": [ - 261.9679870605469, - 668.7340087890625 - ], - "bbox": [ - 261.9679870605469, - 662.2902221679688, - 275.5250549316406, - 670.6936645507812 - ] - }, - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 276.02301025390625, - 667.239990234375 - ], - "bbox": [ - 276.02301025390625, - 658.0345458984375, - 278.5036926269531, - 670.0394897460938 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " T", - "origin": [ - 278.5036926269531, - 667.239990234375 - ], - "bbox": [ - 278.5036926269531, - 659.76806640625, - 286.817138671875, - 669.7306518554688 - ] - }, - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 288.2049865722656, - 667.239990234375 - ], - "bbox": [ - 288.2049865722656, - 658.0345458984375, - 290.6856689453125, - 670.0394897460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.082000732421875, - 658.0345458984375, - 290.6856689453125, - 670.6936645507812 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and", - "origin": [ - 55.439998626708984, - 679.1950073242188 - ], - "bbox": [ - 55.439998626708984, - 669.9895629882812, - 70.11371612548828, - 681.9945068359375 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " T", - "origin": [ - 70.11371612548828, - 679.1950073242188 - ], - "bbox": [ - 70.11371612548828, - 671.7230834960938, - 79.49015808105469, - 681.6856689453125 - ] - }, - { - "size": 6.973800182342529, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 79.49015808105469, - 679.1950073242188 - ], - "bbox": [ - 79.49015808105469, - 669.13623046875, - 80.87699890136719, - 681.1546630859375 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "pos", - "origin": [ - 80.87699890136719, - 675.5800170898438 - ], - "bbox": [ - 80.87699890136719, - 669.13623046875, - 90.56360626220703, - 677.5396728515625 - ] - }, - { - "size": 10.061732292175293, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 90.56360626220703, - 675.5800170898438 - ], - "bbox": [ - 90.56360626220703, - 666.3745727539062, - 94.62000274658203, - 681.9945068359375 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "from scratch. Although beneficial", - "origin": [ - 94.62000274658203, - 679.1950073242188 - ], - "bbox": [ - 94.62000274658203, - 669.9895629882812, - 236.99774169921875, - 681.9945068359375 - ] - }, - { - "size": 10.061732292175293, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " prima facie", - "origin": [ - 236.99774169921875, - 679.1950073242188 - ], - "bbox": [ - 236.99774169921875, - 669.9895629882812, - 288.1439514160156, - 681.8848876953125 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 288.1449890136719, - 679.1950073242188 - ], - "bbox": [ - 288.1449890136719, - 669.9895629882812, - 290.6854553222656, - 681.9945068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 666.3745727539062, - 290.6854553222656, - 681.9945068359375 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "employing a pre-trained text-only BERT does not guarantee", - "origin": [ - 55.439998626708984, - 691.1500244140625 - ], - "bbox": [ - 55.439998626708984, - 681.944580078125, - 289.4382019042969, - 693.9495239257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 681.944580078125, - 289.4382019042969, - 693.9495239257812 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "performance gain for vision and language downstream tasks.", - "origin": [ - 55.439998626708984, - 703.1060180664062 - ], - "bbox": [ - 55.439998626708984, - 693.9005737304688, - 291.185791015625, - 705.905517578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 693.9005737304688, - 291.185791015625, - 705.905517578125 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Counterevidence has already been reported by", - "origin": [ - 55.439998626708984, - 715.0609741210938 - ], - "bbox": [ - 55.439998626708984, - 705.8555297851562, - 234.49002075195312, - 717.8604736328125 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Tan & Bansal", - "origin": [ - 234.49002075195312, - 715.0609741210938 - ], - "bbox": [ - 234.49002075195312, - 705.8555297851562, - 289.4381408691406, - 717.8604736328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 705.8555297851562, - 289.4381408691406, - 717.8604736328125 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 306.89300537109375, - 74.81703186035156, - 543.0096435546875, - 157.44583129882812 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Table 2.", - "origin": [ - 306.89300537109375, - 83.10198974609375 - ], - "bbox": [ - 306.89300537109375, - 74.81703186035156, - 335.5586242675781, - 85.62155151367188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Comparison of ViLT-B/32 with other models on down-", - "origin": [ - 335.5586242675781, - 83.10198974609375 - ], - "bbox": [ - 335.5586242675781, - 74.81703186035156, - 542.9296875, - 85.62155151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.89300537109375, - 74.81703186035156, - 542.9296875, - 85.62155151367188 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "stream classification tasks. We use MCAN (", - "origin": [ - 307.44000244140625, - 94.06097412109375 - ], - "bbox": [ - 307.44000244140625, - 85.77601623535156, - 469.575439453125, - 96.58053588867188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Yu et al.", - "origin": [ - 469.575439453125, - 94.06097412109375 - ], - "bbox": [ - 469.575439453125, - 85.77601623535156, - 499.93011474609375, - 96.58053588867188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 499.93011474609375, - 94.06097412109375 - ], - "bbox": [ - 499.93011474609375, - 85.77601623535156, - 502.216552734375, - 96.58053588867188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 502.216552734375, - 94.06097412109375 - ], - "bbox": [ - 502.216552734375, - 85.77601623535156, - 522.849365234375, - 96.58053588867188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") and", - "origin": [ - 522.849365234375, - 94.06097412109375 - ], - "bbox": [ - 522.849365234375, - 85.77601623535156, - 541.4426879882812, - 96.58053588867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 85.77601623535156, - 541.4426879882812, - 96.58053588867188 - ] - }, - { - "spans": [ - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MaxEnt (", - "origin": [ - 307.44000244140625, - 105.02001953125 - ], - "bbox": [ - 307.44000244140625, - 96.73506164550781, - 340.4881591796875, - 107.53958129882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Suhr et al.", - "origin": [ - 340.4881591796875, - 105.02001953125 - ], - "bbox": [ - 340.4881591796875, - 96.73506164550781, - 375.583740234375, - 107.53958129882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 375.583740234375, - 105.02001953125 - ], - "bbox": [ - 375.583740234375, - 96.73506164550781, - 377.780517578125, - 107.53958129882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2018", - "origin": [ - 377.780517578125, - 105.02001953125 - ], - "bbox": [ - 377.780517578125, - 96.73506164550781, - 397.1559753417969, - 107.53958129882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") for VQAv2 and NLVR2 w/o VLP SOTA", - "origin": [ - 397.1559753417969, - 105.02001953125 - ], - "bbox": [ - 397.1559753417969, - 96.73506164550781, - 541.7647705078125, - 107.53958129882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 96.73506164550781, - 541.7647705078125, - 107.53958129882812 - ] - }, - { - "spans": [ - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "results.", - "origin": [ - 307.44000244140625, - 115.97900390625 - ], - "bbox": [ - 307.44000244140625, - 107.69404602050781, - 332.579833984375, - 118.49856567382812 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " †", - "origin": [ - 332.579833984375, - 115.97900390625 - ], - "bbox": [ - 332.579833984375, - 107.69404602050781, - 339.68817138671875, - 118.49856567382812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " additionally used GQA, VQAv2, VG-QA for pre-training.", - "origin": [ - 339.68817138671875, - 115.97900390625 - ], - "bbox": [ - 339.68817138671875, - 107.69404602050781, - 543.00830078125, - 118.49856567382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 107.69404602050781, - 543.00830078125, - 118.49856567382812 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "‡", - "origin": [ - 306.99200439453125, - 126.93798828125 - ], - "bbox": [ - 306.99200439453125, - 118.65303039550781, - 311.4752197265625, - 129.45755004882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " made additional use of the Open Images (", - "origin": [ - 311.4752197265625, - 126.93798828125 - ], - "bbox": [ - 311.4752197265625, - 118.65303039550781, - 457.8251037597656, - 129.45755004882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Kuznetsova et al.", - "origin": [ - 457.8251037597656, - 126.93798828125 - ], - "bbox": [ - 457.8251037597656, - 118.65303039550781, - 517.4629516601562, - 129.45755004882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 517.4629516601562, - 126.93798828125 - ], - "bbox": [ - 517.4629516601562, - 118.65303039550781, - 519.6597290039062, - 129.45755004882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 519.6597290039062, - 126.93798828125 - ], - "bbox": [ - 519.6597290039062, - 118.65303039550781, - 539.1143798828125, - 129.45755004882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ")", - "origin": [ - 539.1143798828125, - 126.93798828125 - ], - "bbox": [ - 539.1143798828125, - 118.65303039550781, - 542.0404663085938, - 129.45755004882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.99200439453125, - 118.65303039550781, - 542.0404663085938, - 129.45755004882812 - ] - }, - { - "spans": [ - { - "size": 8.997727394104004, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "dataset.", - "origin": [ - 307.44000244140625, - 137.89697265625 - ], - "bbox": [ - 307.44000244140625, - 129.6120147705078, - 334.7712707519531, - 140.41653442382812 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " a", - "origin": [ - 334.7712707519531, - 137.89697265625 - ], - "bbox": [ - 334.7712707519531, - 129.34205627441406, - 344.1470642089844, - 140.41653442382812 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMSY9", - "color": 0, - "ascender": 0.7770000100135803, - "descender": -0.9580000042915344, - "text": "⃝", - "origin": [ - 337.5489807128906, - 137.89703369140625 - ], - "bbox": [ - 337.5489807128906, - 130.93014526367188, - 346.7574768066406, - 146.48684692382812 - ] - }, - { - "size": 8.997727394104004, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " indicates RandAugment is applied during fine-tuning.", - "origin": [ - 346.7574768066406, - 137.89703369140625 - ], - "bbox": [ - 346.7574768066406, - 129.6120147705078, - 543.0096435546875, - 140.41659545898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 129.34205627441406, - 543.0096435546875, - 146.48684692382812 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "+", - "origin": [ - 309.5199890136719, - 148.58599853515625 - ], - "bbox": [ - 309.5199890136719, - 140.30104064941406, - 314.5770263671875, - 151.10556030273438 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMSY9", - "color": 0, - "ascender": 0.7770000100135803, - "descender": -0.9580000042915344, - "text": "⃝", - "origin": [ - 307.44000244140625, - 148.85601806640625 - ], - "bbox": [ - 307.44000244140625, - 141.88912963867188, - 316.64849853515625, - 157.44583129882812 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " indicates model trained for a longer 200K pre-training steps.", - "origin": [ - 316.64849853515625, - 148.85601806640625 - ], - "bbox": [ - 316.64849853515625, - 140.57106018066406, - 535.794189453125, - 151.37557983398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 140.30104064941406, - 535.794189453125, - 157.44583129882812 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 314.04901123046875, - 158.3745880126953, - 534.8319702148438, - 176.6396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Visual", - "origin": [ - 314.04901123046875, - 165.83099365234375 - ], - "bbox": [ - 314.04901123046875, - 158.3745880126953, - 334.6347961425781, - 168.09857177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.04901123046875, - 158.3745880126953, - 334.6347961425781, - 168.09857177734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Embed", - "origin": [ - 314.04901123046875, - 174.37200927734375 - ], - "bbox": [ - 314.04901123046875, - 166.9156036376953, - 336.91046142578125, - 176.63958740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.04901123046875, - 166.9156036376953, - 336.91046142578125, - 176.63958740234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Model", - "origin": [ - 349.197021484375, - 170.04302978515625 - ], - "bbox": [ - 349.197021484375, - 162.5866241455078, - 370.2669982910156, - 172.31060791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 162.5866241455078, - 370.2669982910156, - 172.31060791015625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Time", - "origin": [ - 420.3270263671875, - 165.8310546875 - ], - "bbox": [ - 420.3270263671875, - 158.37464904785156, - 437.0797119140625, - 168.0986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.3270263671875, - 158.37464904785156, - 437.0797119140625, - 168.0986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(ms)", - "origin": [ - 422.28802490234375, - 174.3720703125 - ], - "bbox": [ - 422.28802490234375, - 166.91566467285156, - 437.0798034667969, - 176.6396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.28802490234375, - 166.91566467285156, - 437.0798034667969, - 176.6396484375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VQAv2", - "origin": [ - 449.2320251464844, - 166.00909423828125 - ], - "bbox": [ - 449.2320251464844, - 158.5526885986328, - 474.18353271484375, - 168.27667236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.2320251464844, - 158.5526885986328, - 474.18353271484375, - 168.27667236328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "NLVR2", - "origin": [ - 497.9891357421875, - 166.00909423828125 - ], - "bbox": [ - 497.9891357421875, - 158.5526885986328, - 523.1827392578125, - 168.27667236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 497.9891357421875, - 158.5526885986328, - 523.1827392578125, - 168.27667236328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "test-dev", - "origin": [ - 449.0350341796875, - 174.078125 - ], - "bbox": [ - 449.0350341796875, - 166.62171936035156, - 474.3819580078125, - 176.345703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.0350341796875, - 166.62171936035156, - 474.3819580078125, - 176.345703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "dev", - "origin": [ - 489.690185546875, - 174.078125 - ], - "bbox": [ - 489.690185546875, - 166.62171936035156, - 501.1410827636719, - 176.345703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.690185546875, - 166.62171936035156, - 501.1410827636719, - 176.345703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "test-P", - "origin": [ - 516.4492797851562, - 174.078125 - ], - "bbox": [ - 516.4492797851562, - 166.62171936035156, - 534.8319702148438, - 176.345703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.4492797851562, - 166.62171936035156, - 534.8319702148438, - 176.345703125 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 314.04901123046875, - 203.90260314941406, - 337.2413330078125, - 213.6265869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Region", - "origin": [ - 314.04901123046875, - 211.3590087890625 - ], - "bbox": [ - 314.04901123046875, - 203.90260314941406, - 337.2413330078125, - 213.6265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.04901123046875, - 203.90260314941406, - 337.2413330078125, - 213.6265869140625 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 349.197021484375, - 179.69361877441406, - 534.7194213867188, - 237.835693359375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "w/o VLP SOTA", - "origin": [ - 349.197021484375, - 187.1500244140625 - ], - "bbox": [ - 349.197021484375, - 179.69361877441406, - 400.5767822265625, - 189.4176025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 179.69361877441406, - 400.5767822265625, - 189.4176025390625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 420.60577392578125, - 187.1500244140625 - ], - "bbox": [ - 420.60577392578125, - 179.69361877441406, - 437.0760498046875, - 189.4176025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.60577392578125, - 179.69361877441406, - 437.0760498046875, - 189.4176025390625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.63", - "origin": [ - 452.6263732910156, - 187.1500244140625 - ], - "bbox": [ - 452.6263732910156, - 179.69361877441406, - 470.783203125, - 189.4176025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263732910156, - 179.69361877441406, - 470.783203125, - 189.4176025390625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "54.80", - "origin": [ - 486.3335266113281, - 187.1500244140625 - ], - "bbox": [ - 486.3335266113281, - 179.69361877441406, - 504.4903564453125, - 189.4176025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3335266113281, - 179.69361877441406, - 504.4903564453125, - 189.4176025390625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "53.50", - "origin": [ - 516.5626220703125, - 187.1500244140625 - ], - "bbox": [ - 516.5626220703125, - 179.69361877441406, - 534.7194213867188, - 189.4176025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5626220703125, - 179.69361877441406, - 534.7194213867188, - 189.4176025390625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLBERT", - "origin": [ - 349.197021484375, - 195.22003173828125 - ], - "bbox": [ - 349.197021484375, - 187.7636260986328, - 381.8550109863281, - 197.48760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 187.7636260986328, - 381.8550109863281, - 197.48760986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~920", - "origin": [ - 420.605712890625, - 195.22003173828125 - ], - "bbox": [ - 420.605712890625, - 187.7636260986328, - 437.07598876953125, - 197.48760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.605712890625, - 187.7636260986328, - 437.07598876953125, - 197.48760986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.55", - "origin": [ - 452.6263122558594, - 195.22003173828125 - ], - "bbox": [ - 452.6263122558594, - 187.7636260986328, - 470.78314208984375, - 197.48760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263122558594, - 187.7636260986328, - 470.78314208984375, - 197.48760986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 494.0722961425781, - 195.22003173828125 - ], - "bbox": [ - 494.0722961425781, - 187.7636260986328, - 496.759521484375, - 197.48760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 494.0722961425781, - 187.7636260986328, - 496.759521484375, - 197.48760986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 524.2933349609375, - 195.22003173828125 - ], - "bbox": [ - 524.2933349609375, - 187.7636260986328, - 526.9805297851562, - 197.48760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 524.2933349609375, - 187.7636260986328, - 526.9805297851562, - 197.48760986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VisualBERT", - "origin": [ - 349.197021484375, - 203.2890625 - ], - "bbox": [ - 349.197021484375, - 195.83265686035156, - 389.9247131347656, - 205.556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 195.83265686035156, - 389.9247131347656, - 205.556640625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~925", - "origin": [ - 420.605712890625, - 203.2890625 - ], - "bbox": [ - 420.605712890625, - 195.83265686035156, - 437.07598876953125, - 205.556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.605712890625, - 195.83265686035156, - 437.07598876953125, - 205.556640625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.80", - "origin": [ - 452.6263122558594, - 203.2890625 - ], - "bbox": [ - 452.6263122558594, - 195.83265686035156, - 470.78314208984375, - 205.556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263122558594, - 195.83265686035156, - 470.78314208984375, - 205.556640625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "67.40", - "origin": [ - 486.3334655761719, - 203.2890625 - ], - "bbox": [ - 486.3334655761719, - 195.83265686035156, - 504.49029541015625, - 205.556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3334655761719, - 195.83265686035156, - 504.49029541015625, - 205.556640625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "67.00", - "origin": [ - 516.5625610351562, - 203.2890625 - ], - "bbox": [ - 516.5625610351562, - 195.83265686035156, - 534.7193603515625, - 205.556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5625610351562, - 195.83265686035156, - 534.7193603515625, - 205.556640625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "LXMERT", - "origin": [ - 349.197021484375, - 211.35906982421875 - ], - "bbox": [ - 349.197021484375, - 203.9026641845703, - 381.8872985839844, - 213.62664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 203.9026641845703, - 381.8872985839844, - 213.62664794921875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 420.605712890625, - 211.35906982421875 - ], - "bbox": [ - 420.605712890625, - 203.9026641845703, - 437.07598876953125, - 213.62664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.605712890625, - 203.9026641845703, - 437.07598876953125, - 213.62664794921875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.42", - "origin": [ - 452.6263122558594, - 211.35906982421875 - ], - "bbox": [ - 452.6263122558594, - 203.9026641845703, - 470.78314208984375, - 213.62664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263122558594, - 203.9026641845703, - 470.78314208984375, - 213.62664794921875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.90", - "origin": [ - 486.3334655761719, - 211.35906982421875 - ], - "bbox": [ - 486.3334655761719, - 203.9026641845703, - 504.49029541015625, - 213.62664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3334655761719, - 203.9026641845703, - 504.49029541015625, - 213.62664794921875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.50", - "origin": [ - 516.5625610351562, - 211.35906982421875 - ], - "bbox": [ - 516.5625610351562, - 203.9026641845703, - 534.7193603515625, - 213.62664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5625610351562, - 203.9026641845703, - 534.7193603515625, - 213.62664794921875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "UNITER-Base", - "origin": [ - 349.197021484375, - 219.4290771484375 - ], - "bbox": [ - 349.197021484375, - 211.97267150878906, - 397.15521240234375, - 221.6966552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 211.97267150878906, - 397.15521240234375, - 221.6966552734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 420.60577392578125, - 219.4290771484375 - ], - "bbox": [ - 420.60577392578125, - 211.97267150878906, - 437.0760498046875, - 221.6966552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.60577392578125, - 211.97267150878906, - 437.0760498046875, - 221.6966552734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.70", - "origin": [ - 452.6263732910156, - 219.4290771484375 - ], - "bbox": [ - 452.6263732910156, - 211.97267150878906, - 470.783203125, - 221.6966552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263732910156, - 211.97267150878906, - 470.783203125, - 221.6966552734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.85", - "origin": [ - 486.3335266113281, - 219.4290771484375 - ], - "bbox": [ - 486.3335266113281, - 211.97267150878906, - 504.4903564453125, - 221.6966552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3335266113281, - 211.97267150878906, - 504.4903564453125, - 221.6966552734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.80", - "origin": [ - 516.5626220703125, - 219.4290771484375 - ], - "bbox": [ - 516.5626220703125, - 211.97267150878906, - 534.7194213867188, - 221.6966552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5626220703125, - 211.97267150878906, - 534.7194213867188, - 221.6966552734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "OSCAR-Base", - "origin": [ - 349.197021484375, - 227.49908447265625 - ], - "bbox": [ - 349.197021484375, - 220.0426788330078, - 394.47607421875, - 229.76666259765625 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†", - "origin": [ - 394.47601318359375, - 225.8570556640625 - ], - "bbox": [ - 394.47601318359375, - 220.63755798339844, - 397.3004150390625, - 227.44436645507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 220.0426788330078, - 397.3004150390625, - 229.76666259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 420.6090087890625, - 227.49908447265625 - ], - "bbox": [ - 420.6090087890625, - 220.0426788330078, - 437.07928466796875, - 229.76666259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.6090087890625, - 220.0426788330078, - 437.07928466796875, - 229.76666259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "73.16", - "origin": [ - 452.6296081542969, - 227.49908447265625 - ], - "bbox": [ - 452.6296081542969, - 220.0426788330078, - 470.78643798828125, - 229.76666259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6296081542969, - 220.0426788330078, - 470.78643798828125, - 229.76666259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "78.07", - "origin": [ - 486.3367614746094, - 227.49908447265625 - ], - "bbox": [ - 486.3367614746094, - 220.0426788330078, - 504.49359130859375, - 229.76666259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3367614746094, - 220.0426788330078, - 504.49359130859375, - 229.76666259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "78.36", - "origin": [ - 516.5578002929688, - 227.49908447265625 - ], - "bbox": [ - 516.5578002929688, - 220.0426788330078, - 534.714599609375, - 229.76666259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5578002929688, - 220.0426788330078, - 534.714599609375, - 229.76666259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VinVL-Base", - "origin": [ - 349.197021484375, - 235.568115234375 - ], - "bbox": [ - 349.197021484375, - 228.11170959472656, - 389.948974609375, - 237.835693359375 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†‡", - "origin": [ - 389.94903564453125, - 233.9271240234375 - ], - "bbox": [ - 389.94903564453125, - 228.70762634277344, - 395.59783935546875, - 235.51443481445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 228.11170959472656, - 395.59783935546875, - 237.835693359375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~650", - "origin": [ - 420.6090393066406, - 235.568115234375 - ], - "bbox": [ - 420.6090393066406, - 228.11170959472656, - 437.0793151855469, - 237.835693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.6090393066406, - 228.11170959472656, - 437.0793151855469, - 237.835693359375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.95", - "origin": [ - 452.629638671875, - 235.568115234375 - ], - "bbox": [ - 452.629638671875, - 228.11170959472656, - 470.7864685058594, - 237.835693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.629638671875, - 228.11170959472656, - 470.7864685058594, - 237.835693359375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "82.05", - "origin": [ - 486.3367919921875, - 235.568115234375 - ], - "bbox": [ - 486.3367919921875, - 228.11170959472656, - 504.4936218261719, - 237.835693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3367919921875, - 228.11170959472656, - 504.4936218261719, - 237.835693359375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.08", - "origin": [ - 516.5578002929688, - 235.568115234375 - ], - "bbox": [ - 516.5578002929688, - 228.11170959472656, - 534.714599609375, - 237.835693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5578002929688, - 228.11170959472656, - 534.714599609375, - 237.835693359375 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 314.04901123046875, - 241.18360900878906, - 534.719482421875, - 258.97760009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Grid", - "origin": [ - 314.04901123046875, - 252.67498779296875 - ], - "bbox": [ - 314.04901123046875, - 245.2185821533203, - 328.8407897949219, - 254.94256591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.04901123046875, - 245.2185821533203, - 328.8407897949219, - 254.94256591796875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Pixel-BERT-X152", - "origin": [ - 349.197021484375, - 248.6400146484375 - ], - "bbox": [ - 349.197021484375, - 241.18360900878906, - 408.37213134765625, - 250.9075927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 241.18360900878906, - 408.37213134765625, - 250.9075927734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~160", - "origin": [ - 420.6058044433594, - 248.6400146484375 - ], - "bbox": [ - 420.6058044433594, - 241.18360900878906, - 437.0760803222656, - 250.9075927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.6058044433594, - 241.18360900878906, - 437.0760803222656, - 250.9075927734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.45", - "origin": [ - 452.62640380859375, - 248.6400146484375 - ], - "bbox": [ - 452.62640380859375, - 241.18360900878906, - 470.7832336425781, - 250.9075927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.62640380859375, - 241.18360900878906, - 470.7832336425781, - 250.9075927734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "76.50", - "origin": [ - 486.33355712890625, - 248.6400146484375 - ], - "bbox": [ - 486.33355712890625, - 241.18360900878906, - 504.4903869628906, - 250.9075927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.33355712890625, - 241.18360900878906, - 504.4903869628906, - 250.9075927734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "77.20", - "origin": [ - 516.5626831054688, - 248.6400146484375 - ], - "bbox": [ - 516.5626831054688, - 241.18360900878906, - 534.719482421875, - 250.9075927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5626831054688, - 241.18360900878906, - 534.719482421875, - 250.9075927734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Pixel-BERT-R50", - "origin": [ - 349.197021484375, - 256.71002197265625 - ], - "bbox": [ - 349.197021484375, - 249.2536163330078, - 403.8934326171875, - 258.97760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 249.2536163330078, - 403.8934326171875, - 258.97760009765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~60", - "origin": [ - 424.640625, - 256.71002197265625 - ], - "bbox": [ - 424.640625, - 249.2536163330078, - 437.0760498046875, - 258.97760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.640625, - 249.2536163330078, - 437.0760498046875, - 258.97760009765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.35", - "origin": [ - 452.6263732910156, - 256.71002197265625 - ], - "bbox": [ - 452.6263732910156, - 249.2536163330078, - 470.783203125, - 258.97760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263732910156, - 249.2536163330078, - 470.783203125, - 258.97760009765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.70", - "origin": [ - 486.3335266113281, - 256.71002197265625 - ], - "bbox": [ - 486.3335266113281, - 249.2536163330078, - 504.4903564453125, - 258.97760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3335266113281, - 249.2536163330078, - 504.4903564453125, - 258.97760009765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.40", - "origin": [ - 516.5626220703125, - 256.71002197265625 - ], - "bbox": [ - 516.5626220703125, - 249.2536163330078, - 534.7194213867188, - 258.97760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5626220703125, - 249.2536163330078, - 534.7194213867188, - 258.97760009765625 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 314.04901123046875, - 262.3255920410156, - 534.719482421875, - 289.94671630859375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Linear", - "origin": [ - 314.04901123046875, - 277.85101318359375 - ], - "bbox": [ - 314.04901123046875, - 270.3946228027344, - 335.1109313964844, - 280.11859130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.04901123046875, - 270.3946228027344, - 335.1109313964844, - 280.11859130859375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 349.197021484375, - 269.781982421875 - ], - "bbox": [ - 349.197021484375, - 262.3255920410156, - 383.5416564941406, - 272.049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 262.3255920410156, - 383.5416564941406, - 272.049560546875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 424.6406555175781, - 269.781982421875 - ], - "bbox": [ - 424.6406555175781, - 262.3255920410156, - 437.0760803222656, - 272.049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.6406555175781, - 262.3255920410156, - 437.0760803222656, - 272.049560546875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.33", - "origin": [ - 452.62640380859375, - 269.781982421875 - ], - "bbox": [ - 452.62640380859375, - 262.3255920410156, - 470.7832336425781, - 272.049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.62640380859375, - 262.3255920410156, - 470.7832336425781, - 272.049560546875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.41", - "origin": [ - 486.33355712890625, - 269.781982421875 - ], - "bbox": [ - 486.33355712890625, - 262.3255920410156, - 504.4903869628906, - 272.049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.33355712890625, - 262.3255920410156, - 504.4903869628906, - 272.049560546875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.57", - "origin": [ - 516.5626831054688, - 269.781982421875 - ], - "bbox": [ - 516.5626831054688, - 262.3255920410156, - 534.719482421875, - 272.049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5626831054688, - 262.3255920410156, - 534.719482421875, - 272.049560546875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 349.197021484375, - 277.8509521484375 - ], - "bbox": [ - 349.197021484375, - 270.3945617675781, - 383.5416564941406, - 280.1185302734375 - ] - }, - { - "size": 5.648799896240234, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 383.5416564941406, - 277.8509521484375 - ], - "bbox": [ - 383.5416564941406, - 270.81048583984375, - 385.9400329589844, - 279.4382629394531 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "a", - "origin": [ - 385.9400329589844, - 276.02996826171875 - ], - "bbox": [ - 385.9400329589844, - 270.81048583984375, - 388.4480895996094, - 277.6172790527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 270.3945617675781, - 388.4480895996094, - 280.1185302734375 - ] - }, - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMSY6", - "color": 0, - "ascender": 0.7860000133514404, - "descender": -0.9480000138282776, - "text": "⃝", - "origin": [ - 383.5410461425781, - 276.2099609375 - ], - "bbox": [ - 383.5410461425781, - 271.5115661621094, - 390.8456726074219, - 281.8767395019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 383.5410461425781, - 271.5115661621094, - 390.8456726074219, - 281.8767395019531 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 424.64404296875, - 277.8509521484375 - ], - "bbox": [ - 424.64404296875, - 270.3945617675781, - 437.0794677734375, - 280.1185302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.64404296875, - 270.3945617675781, - 437.0794677734375, - 280.1185302734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.85", - "origin": [ - 452.6297912597656, - 277.8509521484375 - ], - "bbox": [ - 452.6297912597656, - 270.3945617675781, - 470.78662109375, - 280.1185302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6297912597656, - 270.3945617675781, - 470.78662109375, - 280.1185302734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.91", - "origin": [ - 486.3369445800781, - 277.8509521484375 - ], - "bbox": [ - 486.3369445800781, - 270.3945617675781, - 504.4937744140625, - 280.1185302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3369445800781, - 270.3945617675781, - 504.4937744140625, - 280.1185302734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.57", - "origin": [ - 516.5579833984375, - 277.8509521484375 - ], - "bbox": [ - 516.5579833984375, - 270.3945617675781, - 534.7147827148438, - 280.1185302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5579833984375, - 270.3945617675781, - 534.7147827148438, - 280.1185302734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 349.1970520019531, - 285.92095947265625 - ], - "bbox": [ - 349.1970520019531, - 278.4645690917969, - 383.54168701171875, - 288.18853759765625 - ] - }, - { - "size": 5.648799896240234, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 383.54168701171875, - 285.92095947265625 - ], - "bbox": [ - 383.54168701171875, - 278.8804626464844, - 385.9400634765625, - 287.5082702636719 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "a", - "origin": [ - 385.9400634765625, - 284.0999450683594 - ], - "bbox": [ - 385.9400634765625, - 278.8804626464844, - 388.4481201171875, - 285.687255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.1970520019531, - 278.4645690917969, - 388.4481201171875, - 288.18853759765625 - ] - }, - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMSY6", - "color": 0, - "ascender": 0.7860000133514404, - "descender": -0.9480000138282776, - "text": "⃝", - "origin": [ - 383.54107666015625, - 284.2799377441406 - ], - "bbox": [ - 383.54107666015625, - 279.58154296875, - 390.845703125, - 289.94671630859375 - ] - }, - { - "size": 5.648799896240234, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " +", - "origin": [ - 390.845703125, - 284.2799377441406 - ], - "bbox": [ - 390.845703125, - 278.8804626464844, - 396.0929870605469, - 285.86724853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 383.54107666015625, - 278.8804626464844, - 396.0929870605469, - 289.94671630859375 - ] - }, - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMSY6", - "color": 0, - "ascender": 0.7860000133514404, - "descender": -0.9480000138282776, - "text": "⃝", - "origin": [ - 390.8470764160156, - 284.2799377441406 - ], - "bbox": [ - 390.8470764160156, - 279.58154296875, - 398.1517028808594, - 289.94671630859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.8470764160156, - 279.58154296875, - 398.1517028808594, - 289.94671630859375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 424.6440734863281, - 285.9209289550781 - ], - "bbox": [ - 424.6440734863281, - 278.46453857421875, - 437.0794982910156, - 288.1885070800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.6440734863281, - 278.46453857421875, - 437.0794982910156, - 288.1885070800781 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.26", - "origin": [ - 452.62982177734375, - 285.9209289550781 - ], - "bbox": [ - 452.62982177734375, - 278.46453857421875, - 470.7866516113281, - 288.1885070800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.62982177734375, - 278.46453857421875, - 470.7866516113281, - 288.1885070800781 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.70", - "origin": [ - 486.33697509765625, - 285.9209289550781 - ], - "bbox": [ - 486.33697509765625, - 278.46453857421875, - 504.4938049316406, - 288.1885070800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.33697509765625, - 278.46453857421875, - 504.4938049316406, - 288.1885070800781 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "76.13", - "origin": [ - 516.5579833984375, - 285.9209289550781 - ], - "bbox": [ - 516.5579833984375, - 278.46453857421875, - 534.7147827148438, - 288.1885070800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5579833984375, - 278.46453857421875, - 534.7147827148438, - 288.1885070800781 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 307.11199951171875, - 331.0715637207031, - 541.4420166015625, - 355.031494140625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 307.11199951171875, - 340.2770080566406 - ], - "bbox": [ - 307.11199951171875, - 331.0715637207031, - 310.3631896972656, - 343.0765075683594 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2019", - "origin": [ - 310.3631896972656, - 340.2770080566406 - ], - "bbox": [ - 310.3631896972656, - 331.0715637207031, - 329.8899230957031, - 343.0765075683594 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "), where initializing with pre-trained BERT parameters", - "origin": [ - 329.8899230957031, - 340.2770080566406 - ], - "bbox": [ - 329.8899230957031, - 331.0715637207031, - 541.4420166015625, - 343.0765075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.11199951171875, - 331.0715637207031, - 541.4420166015625, - 343.0765075683594 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "led to weaker performance than pre-training from scratch.", - "origin": [ - 307.44000244140625, - 352.23199462890625 - ], - "bbox": [ - 307.44000244140625, - 343.02655029296875, - 538.064208984375, - 355.031494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 343.02655029296875, - 538.064208984375, - 355.031494140625 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 306.97198486328125, - 360.9595642089844, - 541.4391479492188, - 408.8294982910156 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We pre-train ViLT-B/32 for 100K or 200K steps on 64", - "origin": [ - 306.97198486328125, - 370.1650085449219 - ], - "bbox": [ - 306.97198486328125, - 360.9595642089844, - 541.4364624023438, - 372.9645080566406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.97198486328125, - 360.9595642089844, - 541.4364624023438, - 372.9645080566406 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "NVIDIA V100 GPUs with a batch size of 4,096. For all", - "origin": [ - 307.44000244140625, - 382.1199951171875 - ], - "bbox": [ - 307.44000244140625, - 372.91455078125, - 541.4370727539062, - 384.91949462890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 372.91455078125, - 541.4370727539062, - 384.91949462890625 - ] - }, - { - "spans": [ - { - "size": 9.90765380859375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "downstream tasks, we train for ten epochs with a batch size", - "origin": [ - 307.44000244140625, - 394.07501220703125 - ], - "bbox": [ - 307.44000244140625, - 384.86956787109375, - 541.4391479492188, - 396.87451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 384.86956787109375, - 541.4391479492188, - 396.87451171875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "of 256 for VQAv2/retrieval tasks and 128 for NLVR2.", - "origin": [ - 307.44000244140625, - 406.0299987792969 - ], - "bbox": [ - 307.44000244140625, - 396.8245544433594, - 522.9608764648438, - 408.8294982910156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 396.8245544433594, - 522.9608764648438, - 408.8294982910156 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 307.44000244140625, - 421.59991455078125, - 408.3810729980469, - 434.5612487792969 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "4.3. Classification Tasks", - "origin": [ - 307.44000244140625, - 431.16400146484375 - ], - "bbox": [ - 307.44000244140625, - 421.59991455078125, - 408.3810729980469, - 434.5612487792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 421.59991455078125, - 408.3810729980469, - 434.5612487792969 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 306.97198486328125, - 440.6105651855469, - 542.82861328125, - 476.5255126953125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We evaluate ViLT-B/32 on two commonly used datasets:", - "origin": [ - 306.97198486328125, - 449.8160095214844 - ], - "bbox": [ - 306.97198486328125, - 440.6105651855469, - 542.82861328125, - 452.6155090332031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.97198486328125, - 440.6105651855469, - 542.82861328125, - 452.6155090332031 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VQAv2 and NLVR2. We use a two-layer MLP of hidden", - "origin": [ - 307.0820007324219, - 461.77099609375 - ], - "bbox": [ - 307.0820007324219, - 452.5655517578125, - 541.44482421875, - 464.57049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.0820007324219, - 452.5655517578125, - 541.44482421875, - 464.57049560546875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "size 1,536 as the fine-tuned downstream head.", - "origin": [ - 307.44000244140625, - 473.72601318359375 - ], - "bbox": [ - 307.44000244140625, - 464.52056884765625, - 490.9112854003906, - 476.5255126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 464.52056884765625, - 490.9112854003906, - 476.5255126953125 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 307.44000244140625, - 505.19189453125, - 543.0897216796875, - 601.2415161132812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Visual Question Answering.", - "origin": [ - 307.44000244140625, - 514.7559814453125 - ], - "bbox": [ - 307.44000244140625, - 505.19189453125, - 426.682373046875, - 518.1531982421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 505.19189453125, - 426.682373046875, - 518.1531982421875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "The VQAv2 task asks for", - "origin": [ - 436.64300537109375, - 514.7559814453125 - ], - "bbox": [ - 436.64300537109375, - 505.550537109375, - 541.6047973632812, - 517.5554809570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 436.64300537109375, - 505.550537109375, - 541.6047973632812, - 517.5554809570312 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "answers given pairs of an image and a question in natural", - "origin": [ - 307.44000244140625, - 526.7109985351562 - ], - "bbox": [ - 307.44000244140625, - 517.5055541992188, - 541.437255859375, - 529.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 517.5055541992188, - 541.437255859375, - 529.510498046875 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "language. The annotated answers are originally in free-form", - "origin": [ - 307.44000244140625, - 538.666015625 - ], - "bbox": [ - 307.44000244140625, - 529.4605712890625, - 541.4381713867188, - 541.4655151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 529.4605712890625, - 541.4381713867188, - 541.4655151367188 - ] - }, - { - "spans": [ - { - "size": 9.9176664352417, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "natural language, but it is a common practice to convert the", - "origin": [ - 307.44000244140625, - 550.6209716796875 - ], - "bbox": [ - 307.44000244140625, - 541.41552734375, - 541.4385986328125, - 553.4204711914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 541.41552734375, - 541.4385986328125, - 553.4204711914062 - ] - }, - { - "spans": [ - { - "size": 9.997407913208008, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "task to a classification task with 3,129 answer classes. Fol-", - "origin": [ - 307.44000244140625, - 562.5759887695312 - ], - "bbox": [ - 307.44000244140625, - 553.3705444335938, - 543.0897216796875, - 565.37548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 553.3705444335938, - 543.0897216796875, - 565.37548828125 - ] - }, - { - "spans": [ - { - "size": 9.867501258850098, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "lowing this practice, we fine-tune ViLT-B/32 on the VQAv2", - "origin": [ - 307.44000244140625, - 574.531982421875 - ], - "bbox": [ - 307.44000244140625, - 565.3265380859375, - 541.4424438476562, - 577.3314819335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 565.3265380859375, - 541.4424438476562, - 577.3314819335938 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "train and validation sets while reserving 1,000 validation", - "origin": [ - 307.44000244140625, - 586.4869995117188 - ], - "bbox": [ - 307.44000244140625, - 577.2815551757812, - 541.4371337890625, - 589.2864990234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 577.2815551757812, - 541.4371337890625, - 589.2864990234375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "images and their related questions for internal validation.", - "origin": [ - 307.44000244140625, - 598.4420166015625 - ], - "bbox": [ - 307.44000244140625, - 589.236572265625, - 534.6370849609375, - 601.2415161132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 589.236572265625, - 534.6370849609375, - 601.2415161132812 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 306.97198486328125, - 603.5535888671875, - 543.1849365234375, - 678.9495239257812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.882577896118164, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We report the test-dev score results", - "origin": [ - 306.97198486328125, - 616.375 - ], - "bbox": [ - 306.97198486328125, - 607.1695556640625, - 444.697265625, - 619.1744995117188 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "6", - "origin": [ - 444.70001220703125, - 612.759033203125 - ], - "bbox": [ - 444.70001220703125, - 606.3152465820312, - 448.1869201660156, - 614.7186889648438 - ] - }, - { - "size": 9.882577896118164, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 448.1869201660156, - 612.759033203125 - ], - "bbox": [ - 448.1869201660156, - 603.5535888671875, - 451.177001953125, - 619.1744995117188 - ] - }, - { - "size": 9.882577896118164, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "from the submission to", - "origin": [ - 451.177001953125, - 616.375 - ], - "bbox": [ - 451.177001953125, - 607.1695556640625, - 541.4448852539062, - 619.1744995117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.97198486328125, - 603.5535888671875, - 541.4448852539062, - 619.1744995117188 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the evaluation server. ViLT falls short of VQA score com-", - "origin": [ - 307.44000244140625, - 628.3300170898438 - ], - "bbox": [ - 307.44000244140625, - 619.1245727539062, - 543.0934448242188, - 631.1295166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 619.1245727539062, - 543.0934448242188, - 631.1295166015625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "pared to other VLP models with a heavy visual embedder.", - "origin": [ - 307.44000244140625, - 640.2850341796875 - ], - "bbox": [ - 307.44000244140625, - 631.07958984375, - 543.1849365234375, - 643.0845336914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 631.07958984375, - 543.1849365234375, - 643.0845336914062 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We suspect a detached object representation generated by", - "origin": [ - 306.97198486328125, - 652.239990234375 - ], - "bbox": [ - 306.97198486328125, - 643.0345458984375, - 541.7923583984375, - 655.0394897460938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.97198486328125, - 643.0345458984375, - 541.7923583984375, - 655.0394897460938 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the object detector eases the training of VQA since questions", - "origin": [ - 307.44000244140625, - 664.1950073242188 - ], - "bbox": [ - 307.44000244140625, - 654.9895629882812, - 541.4381103515625, - 666.9945068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 654.9895629882812, - 541.4381103515625, - 666.9945068359375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "in VQA typically ask about objects.", - "origin": [ - 307.44000244140625, - 676.1500244140625 - ], - "bbox": [ - 307.44000244140625, - 666.944580078125, - 450.22393798828125, - 678.9495239257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 666.944580078125, - 450.22393798828125, - 678.9495239257812 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 307.44000244140625, - 685.8026733398438, - 542.5167236328125, - 717.5805053710938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "6", - "origin": [ - 320.0929870605469, - 691.3259887695312 - ], - "bbox": [ - 320.0929870605469, - 685.8026733398438, - 323.081787109375, - 693.0056762695312 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VQA score is calculated by comparing the inferred answer", - "origin": [ - 323.5799865722656, - 695.135009765625 - ], - "bbox": [ - 323.5799865722656, - 686.8500366210938, - 541.5958862304688, - 697.654541015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.0929870605469, - 685.8026733398438, - 541.5958862304688, - 697.654541015625 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "to 10 ground-truth answers: see", - "origin": [ - 307.44000244140625, - 705.0980224609375 - ], - "bbox": [ - 307.44000244140625, - 696.8130493164062, - 426.59979248046875, - 707.6175537109375 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 5234, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": " https://visualqa.org/", - "origin": [ - 426.59979248046875, - 705.0980224609375 - ], - "bbox": [ - 426.59979248046875, - 697.8262939453125, - 542.5167236328125, - 707.2230834960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 696.8130493164062, - 542.5167236328125, - 707.6175537109375 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 5234, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": "evaluation.html", - "origin": [ - 307.44000244140625, - 715.0609741210938 - ], - "bbox": [ - 307.44000244140625, - 707.7892456054688, - 388.1377868652344, - 717.18603515625 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " for details.", - "origin": [ - 388.1377868652344, - 715.0609741210938 - ], - "bbox": [ - 388.1377868652344, - 706.7760009765625, - 428.728271484375, - 717.5805053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 706.7760009765625, - 428.728271484375, - 717.5805053710938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 22, - "type": 0, - "bbox": [ - 307.44000244140625, - 685.8026733398438, - 542.5167236328125, - 717.5805053710938 - ], - "lines": [ - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "6", - "origin": [ - 320.0929870605469, - 691.3259887695312 - ], - "bbox": [ - 320.0929870605469, - 685.8026733398438, - 323.081787109375, - 693.0056762695312 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VQA score is calculated by comparing the inferred answer", - "origin": [ - 323.5799865722656, - 695.135009765625 - ], - "bbox": [ - 323.5799865722656, - 686.8500366210938, - 541.5958862304688, - 697.654541015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.0929870605469, - 685.8026733398438, - 541.5958862304688, - 697.654541015625 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "to 10 ground-truth answers: see", - "origin": [ - 307.44000244140625, - 705.0980224609375 - ], - "bbox": [ - 307.44000244140625, - 696.8130493164062, - 426.59979248046875, - 707.6175537109375 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 5234, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": " https://visualqa.org/", - "origin": [ - 426.59979248046875, - 705.0980224609375 - ], - "bbox": [ - 426.59979248046875, - 697.8262939453125, - 542.5167236328125, - 707.2230834960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 696.8130493164062, - 542.5167236328125, - 707.6175537109375 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 5234, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": "evaluation.html", - "origin": [ - 307.44000244140625, - 715.0609741210938 - ], - "bbox": [ - 307.44000244140625, - 707.7892456054688, - 388.1377868652344, - 717.18603515625 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " for details.", - "origin": [ - 388.1377868652344, - 715.0609741210938 - ], - "bbox": [ - 388.1377868652344, - 706.7760009765625, - 428.728271484375, - 717.5805053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 706.7760009765625, - 428.728271484375, - 717.5805053710938 - ] - } - ], - "tag": "footnote" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 290.11322021484375, - 118.49856567382812 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Table 1.", - "origin": [ - 54.893001556396484, - 83.10198974609375 - ], - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 83.55857849121094, - 85.62155151367188 - ] - }, - { - "size": 8.880810737609863, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Pre-training dataset statistics. Caption length is the length", - "origin": [ - 83.55857849121094, - 83.10198974609375 - ], - "bbox": [ - 83.55857849121094, - 74.81703186035156, - 289.4371337890625, - 85.62155151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 289.4371337890625, - 85.62155151367188 - ] - }, - { - "spans": [ - { - "size": 9.046737670898438, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "of tokens from pre-trained", - "origin": [ - 55.439998626708984, - 94.06097412109375 - ], - "bbox": [ - 55.439998626708984, - 85.77601623535156, - 151.27272033691406, - 96.58053588867188 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusMonL-Regu", - "color": 0, - "ascender": 0.8109999895095825, - "descender": -0.2370000034570694, - "text": " bert-base-uncased", - "origin": [ - 151.27272033691406, - 94.06097412109375 - ], - "bbox": [ - 151.27272033691406, - 86.78922271728516, - 244.95823669433594, - 96.1860122680664 - ] - }, - { - "size": 9.046737670898438, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " tokenizer.", - "origin": [ - 244.95823669433594, - 94.06097412109375 - ], - "bbox": [ - 244.95823669433594, - 85.77601623535156, - 282.852294921875, - 96.58053588867188 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " †", - "origin": [ - 282.852294921875, - 94.06097412109375 - ], - "bbox": [ - 282.852294921875, - 85.77601623535156, - 290.11322021484375, - 96.58053588867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 85.77601623535156, - 290.11322021484375, - 96.58053588867188 - ] - }, - { - "spans": [ - { - "size": 8.988788604736328, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "GCC and SBU provide only image urls, so we collect the images", - "origin": [ - 55.439998626708984, - 105.02001953125 - ], - "bbox": [ - 55.439998626708984, - 96.73506164550781, - 289.4436950683594, - 107.53958129882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 96.73506164550781, - 289.4436950683594, - 107.53958129882812 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "from urls which were still accessible.", - "origin": [ - 55.439998626708984, - 115.97900390625 - ], - "bbox": [ - 55.439998626708984, - 107.69404602050781, - 188.91384887695312, - 118.49856567382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 107.69404602050781, - 188.91384887695312, - 118.49856567382812 - ] - } - ], - "tag": "on-table" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 61.849998474121094, - 123.37742614746094, - 283.0293884277344, - 135.5024871826172 - ], - "lines": [ - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Dataset", - "origin": [ - 61.849998474121094, - 132.67498779296875 - ], - "bbox": [ - 61.849998474121094, - 123.37742614746094, - 92.0268325805664, - 135.5024871826172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.849998474121094, - 123.37742614746094, - 92.0268325805664, - 135.5024871826172 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "# Images", - "origin": [ - 116.29710388183594, - 132.67498779296875 - ], - "bbox": [ - 116.29710388183594, - 123.37742614746094, - 152.90374755859375, - 135.5024871826172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 116.29710388183594, - 123.37742614746094, - 152.90374755859375, - 135.5024871826172 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "# Captions", - "origin": [ - 164.85775756835938, - 132.67498779296875 - ], - "bbox": [ - 164.85775756835938, - 123.37742614746094, - 208.1859893798828, - 135.5024871826172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 164.85775756835938, - 123.37742614746094, - 208.1859893798828, - 135.5024871826172 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Caption Length", - "origin": [ - 220.13999938964844, - 132.67498779296875 - ], - "bbox": [ - 220.13999938964844, - 123.37742614746094, - 283.0293884277344, - 135.5024871826172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 220.13999938964844, - 123.37742614746094, - 283.0293884277344, - 135.5024871826172 - ] - } - ], - "tag": "on-table" - }, - { - "number": 3, - "type": 0, - "bbox": [ - 61.849998474121094, - 138.4414520263672, - 278.1010437011719, - 187.49012756347656 - ], - "lines": [ - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MSCOCO", - "origin": [ - 61.849998474121094, - 147.739013671875 - ], - "bbox": [ - 61.849998474121094, - 138.4414520263672, - 104.34309387207031, - 150.56651306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.849998474121094, - 138.4414520263672, - 104.34309387207031, - 150.56651306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "113K", - "origin": [ - 123.42121887207031, - 147.739013671875 - ], - "bbox": [ - 123.42121887207031, - 138.4414520263672, - 145.77963256835938, - 150.56651306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 123.42121887207031, - 138.4414520263672, - 145.77963256835938, - 150.56651306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "567K", - "origin": [ - 175.34266662597656, - 147.739013671875 - ], - "bbox": [ - 175.34266662597656, - 138.4414520263672, - 197.70108032226562, - 150.56651306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.34266662597656, - 138.4414520263672, - 197.70108032226562, - 150.56651306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "11.81", - "origin": [ - 225.07054138183594, - 147.739013671875 - ], - "bbox": [ - 225.07054138183594, - 138.4414520263672, - 247.710693359375, - 150.56651306152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ±", - "origin": [ - 247.710693359375, - 147.739013671875 - ], - "bbox": [ - 247.710693359375, - 140.01800537109375, - 257.96893310546875, - 157.30311584472656 - ] - }, - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2.81", - "origin": [ - 257.96893310546875, - 147.739013671875 - ], - "bbox": [ - 257.96893310546875, - 138.4414520263672, - 278.1010437011719, - 150.56651306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.07054138183594, - 138.4414520263672, - 278.1010437011719, - 157.30311584472656 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VG", - "origin": [ - 61.850006103515625, - 157.802001953125 - ], - "bbox": [ - 61.850006103515625, - 148.5044403076172, - 76.22903442382812, - 160.62950134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.850006103515625, - 148.5044403076172, - 76.22903442382812, - 160.62950134277344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "108K", - "origin": [ - 123.42123413085938, - 157.802001953125 - ], - "bbox": [ - 123.42123413085938, - 148.5044403076172, - 145.77964782714844, - 160.62950134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 123.42123413085938, - 148.5044403076172, - 145.77964782714844, - 160.62950134277344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "5.41M", - "origin": [ - 173.24972534179688, - 157.802001953125 - ], - "bbox": [ - 173.24972534179688, - 148.5044403076172, - 199.8041229248047, - 160.62950134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.24972534179688, - 148.5044403076172, - 199.8041229248047, - 160.62950134277344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "5.53", - "origin": [ - 227.5861358642578, - 157.802001953125 - ], - "bbox": [ - 227.5861358642578, - 148.5044403076172, - 245.1951446533203, - 160.62950134277344 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ±", - "origin": [ - 245.1951446533203, - 157.802001953125 - ], - "bbox": [ - 245.1951446533203, - 150.08099365234375, - 255.45294189453125, - 167.36610412597656 - ] - }, - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 1.76", - "origin": [ - 255.45294189453125, - 157.802001953125 - ], - "bbox": [ - 255.45294189453125, - 148.5044403076172, - 275.5850524902344, - 160.62950134277344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.5861358642578, - 148.5044403076172, - 275.5850524902344, - 167.36610412597656 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "GCC", - "origin": [ - 61.850006103515625, - 167.864013671875 - ], - "bbox": [ - 61.850006103515625, - 158.5664520263672, - 82.53810119628906, - 170.69151306152344 - ] - }, - { - "size": 7.043499946594238, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†", - "origin": [ - 82.53800964355469, - 165.8170166015625 - ], - "bbox": [ - 82.53800964355469, - 159.30882263183594, - 86.05976104736328, - 167.79623413085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.850006103515625, - 158.5664520263672, - 86.05976104736328, - 170.69151306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "3.01M", - "origin": [ - 121.32400512695312, - 167.864013671875 - ], - "bbox": [ - 121.32400512695312, - 158.5664520263672, - 147.87840270996094, - 170.69151306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 121.32400512695312, - 158.5664520263672, - 147.87840270996094, - 170.69151306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "3.01M", - "origin": [ - 173.24545288085938, - 167.864013671875 - ], - "bbox": [ - 173.24545288085938, - 158.5664520263672, - 199.7998504638672, - 170.69151306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 173.24545288085938, - 158.5664520263672, - 199.7998504638672, - 170.69151306152344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "10.66", - "origin": [ - 225.07635498046875, - 167.864013671875 - ], - "bbox": [ - 225.07635498046875, - 158.5664520263672, - 247.7165069580078, - 170.69151306152344 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ±", - "origin": [ - 247.7165069580078, - 167.864013671875 - ], - "bbox": [ - 247.7165069580078, - 160.14300537109375, - 257.9689636230469, - 177.42811584472656 - ] - }, - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 4.93", - "origin": [ - 257.9689636230469, - 167.864013671875 - ], - "bbox": [ - 257.9689636230469, - 158.5664520263672, - 278.1010437011719, - 170.69151306152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 225.07635498046875, - 158.5664520263672, - 278.1010437011719, - 177.42811584472656 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "SBU", - "origin": [ - 61.850006103515625, - 177.926025390625 - ], - "bbox": [ - 61.850006103515625, - 168.6284637451172, - 81.320556640625, - 180.75352478027344 - ] - }, - { - "size": 7.043499946594238, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†", - "origin": [ - 81.32000732421875, - 175.8790283203125 - ], - "bbox": [ - 81.32000732421875, - 169.37083435058594, - 84.84175872802734, - 177.85824584960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.850006103515625, - 168.6284637451172, - 84.84175872802734, - 180.75352478027344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "867K", - "origin": [ - 123.42201232910156, - 177.926025390625 - ], - "bbox": [ - 123.42201232910156, - 168.6284637451172, - 145.78042602539062, - 180.75352478027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 123.42201232910156, - 168.6284637451172, - 145.78042602539062, - 180.75352478027344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "867K", - "origin": [ - 175.3434600830078, - 177.926025390625 - ], - "bbox": [ - 175.3434600830078, - 168.6284637451172, - 197.70187377929688, - 180.75352478027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 175.3434600830078, - 168.6284637451172, - 197.70187377929688, - 180.75352478027344 - ] - }, - { - "spans": [ - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "15.0", - "origin": [ - 227.58689880371094, - 177.926025390625 - ], - "bbox": [ - 227.58689880371094, - 168.6284637451172, - 245.19590759277344, - 180.75352478027344 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ±", - "origin": [ - 245.19590759277344, - 177.926025390625 - ], - "bbox": [ - 245.19590759277344, - 170.20501708984375, - 255.45294189453125, - 187.49012756347656 - ] - }, - { - "size": 10.062299728393555, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 7.74", - "origin": [ - 255.45294189453125, - 177.926025390625 - ], - "bbox": [ - 255.45294189453125, - 168.6284637451172, - 275.5850524902344, - 180.75352478027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 227.58689880371094, - 168.6284637451172, - 275.5850524902344, - 187.49012756347656 - ] - } - ], - "tag": "on-table" - }, - { - "number": 10, - "type": 0, - "bbox": [ - 306.89300537109375, - 74.81703186035156, - 543.0096435546875, - 157.44583129882812 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Table 2.", - "origin": [ - 306.89300537109375, - 83.10198974609375 - ], - "bbox": [ - 306.89300537109375, - 74.81703186035156, - 335.5586242675781, - 85.62155151367188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Comparison of ViLT-B/32 with other models on down-", - "origin": [ - 335.5586242675781, - 83.10198974609375 - ], - "bbox": [ - 335.5586242675781, - 74.81703186035156, - 542.9296875, - 85.62155151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.89300537109375, - 74.81703186035156, - 542.9296875, - 85.62155151367188 - ] - }, - { - "spans": [ - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "stream classification tasks. We use MCAN (", - "origin": [ - 307.44000244140625, - 94.06097412109375 - ], - "bbox": [ - 307.44000244140625, - 85.77601623535156, - 469.575439453125, - 96.58053588867188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Yu et al.", - "origin": [ - 469.575439453125, - 94.06097412109375 - ], - "bbox": [ - 469.575439453125, - 85.77601623535156, - 499.93011474609375, - 96.58053588867188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 499.93011474609375, - 94.06097412109375 - ], - "bbox": [ - 499.93011474609375, - 85.77601623535156, - 502.216552734375, - 96.58053588867188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 502.216552734375, - 94.06097412109375 - ], - "bbox": [ - 502.216552734375, - 85.77601623535156, - 522.849365234375, - 96.58053588867188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") and", - "origin": [ - 522.849365234375, - 94.06097412109375 - ], - "bbox": [ - 522.849365234375, - 85.77601623535156, - 541.4426879882812, - 96.58053588867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 85.77601623535156, - 541.4426879882812, - 96.58053588867188 - ] - }, - { - "spans": [ - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MaxEnt (", - "origin": [ - 307.44000244140625, - 105.02001953125 - ], - "bbox": [ - 307.44000244140625, - 96.73506164550781, - 340.4881591796875, - 107.53958129882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Suhr et al.", - "origin": [ - 340.4881591796875, - 105.02001953125 - ], - "bbox": [ - 340.4881591796875, - 96.73506164550781, - 375.583740234375, - 107.53958129882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 375.583740234375, - 105.02001953125 - ], - "bbox": [ - 375.583740234375, - 96.73506164550781, - 377.780517578125, - 107.53958129882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2018", - "origin": [ - 377.780517578125, - 105.02001953125 - ], - "bbox": [ - 377.780517578125, - 96.73506164550781, - 397.1559753417969, - 107.53958129882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") for VQAv2 and NLVR2 w/o VLP SOTA", - "origin": [ - 397.1559753417969, - 105.02001953125 - ], - "bbox": [ - 397.1559753417969, - 96.73506164550781, - 541.7647705078125, - 107.53958129882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 96.73506164550781, - 541.7647705078125, - 107.53958129882812 - ] - }, - { - "spans": [ - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "results.", - "origin": [ - 307.44000244140625, - 115.97900390625 - ], - "bbox": [ - 307.44000244140625, - 107.69404602050781, - 332.579833984375, - 118.49856567382812 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " †", - "origin": [ - 332.579833984375, - 115.97900390625 - ], - "bbox": [ - 332.579833984375, - 107.69404602050781, - 339.68817138671875, - 118.49856567382812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " additionally used GQA, VQAv2, VG-QA for pre-training.", - "origin": [ - 339.68817138671875, - 115.97900390625 - ], - "bbox": [ - 339.68817138671875, - 107.69404602050781, - 543.00830078125, - 118.49856567382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 107.69404602050781, - 543.00830078125, - 118.49856567382812 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "‡", - "origin": [ - 306.99200439453125, - 126.93798828125 - ], - "bbox": [ - 306.99200439453125, - 118.65303039550781, - 311.4752197265625, - 129.45755004882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " made additional use of the Open Images (", - "origin": [ - 311.4752197265625, - 126.93798828125 - ], - "bbox": [ - 311.4752197265625, - 118.65303039550781, - 457.8251037597656, - 129.45755004882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Kuznetsova et al.", - "origin": [ - 457.8251037597656, - 126.93798828125 - ], - "bbox": [ - 457.8251037597656, - 118.65303039550781, - 517.4629516601562, - 129.45755004882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 517.4629516601562, - 126.93798828125 - ], - "bbox": [ - 517.4629516601562, - 118.65303039550781, - 519.6597290039062, - 129.45755004882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020", - "origin": [ - 519.6597290039062, - 126.93798828125 - ], - "bbox": [ - 519.6597290039062, - 118.65303039550781, - 539.1143798828125, - 129.45755004882812 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ")", - "origin": [ - 539.1143798828125, - 126.93798828125 - ], - "bbox": [ - 539.1143798828125, - 118.65303039550781, - 542.0404663085938, - 129.45755004882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.99200439453125, - 118.65303039550781, - 542.0404663085938, - 129.45755004882812 - ] - }, - { - "spans": [ - { - "size": 8.997727394104004, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "dataset.", - "origin": [ - 307.44000244140625, - 137.89697265625 - ], - "bbox": [ - 307.44000244140625, - 129.6120147705078, - 334.7712707519531, - 140.41653442382812 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " a", - "origin": [ - 334.7712707519531, - 137.89697265625 - ], - "bbox": [ - 334.7712707519531, - 129.34205627441406, - 344.1470642089844, - 140.41653442382812 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMSY9", - "color": 0, - "ascender": 0.7770000100135803, - "descender": -0.9580000042915344, - "text": "⃝", - "origin": [ - 337.5489807128906, - 137.89703369140625 - ], - "bbox": [ - 337.5489807128906, - 130.93014526367188, - 346.7574768066406, - 146.48684692382812 - ] - }, - { - "size": 8.997727394104004, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " indicates RandAugment is applied during fine-tuning.", - "origin": [ - 346.7574768066406, - 137.89703369140625 - ], - "bbox": [ - 346.7574768066406, - 129.6120147705078, - 543.0096435546875, - 140.41659545898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 129.34205627441406, - 543.0096435546875, - 146.48684692382812 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "+", - "origin": [ - 309.5199890136719, - 148.58599853515625 - ], - "bbox": [ - 309.5199890136719, - 140.30104064941406, - 314.5770263671875, - 151.10556030273438 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMSY9", - "color": 0, - "ascender": 0.7770000100135803, - "descender": -0.9580000042915344, - "text": "⃝", - "origin": [ - 307.44000244140625, - 148.85601806640625 - ], - "bbox": [ - 307.44000244140625, - 141.88912963867188, - 316.64849853515625, - 157.44583129882812 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " indicates model trained for a longer 200K pre-training steps.", - "origin": [ - 316.64849853515625, - 148.85601806640625 - ], - "bbox": [ - 316.64849853515625, - 140.57106018066406, - 535.794189453125, - 151.37557983398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 140.30104064941406, - 535.794189453125, - 157.44583129882812 - ] - } - ], - "tag": "on-table" - }, - { - "number": 11, - "type": 0, - "bbox": [ - 314.04901123046875, - 158.3745880126953, - 534.8319702148438, - 176.6396484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Visual", - "origin": [ - 314.04901123046875, - 165.83099365234375 - ], - "bbox": [ - 314.04901123046875, - 158.3745880126953, - 334.6347961425781, - 168.09857177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.04901123046875, - 158.3745880126953, - 334.6347961425781, - 168.09857177734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Embed", - "origin": [ - 314.04901123046875, - 174.37200927734375 - ], - "bbox": [ - 314.04901123046875, - 166.9156036376953, - 336.91046142578125, - 176.63958740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.04901123046875, - 166.9156036376953, - 336.91046142578125, - 176.63958740234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Model", - "origin": [ - 349.197021484375, - 170.04302978515625 - ], - "bbox": [ - 349.197021484375, - 162.5866241455078, - 370.2669982910156, - 172.31060791015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 162.5866241455078, - 370.2669982910156, - 172.31060791015625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Time", - "origin": [ - 420.3270263671875, - 165.8310546875 - ], - "bbox": [ - 420.3270263671875, - 158.37464904785156, - 437.0797119140625, - 168.0986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.3270263671875, - 158.37464904785156, - 437.0797119140625, - 168.0986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(ms)", - "origin": [ - 422.28802490234375, - 174.3720703125 - ], - "bbox": [ - 422.28802490234375, - 166.91566467285156, - 437.0798034667969, - 176.6396484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 422.28802490234375, - 166.91566467285156, - 437.0798034667969, - 176.6396484375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VQAv2", - "origin": [ - 449.2320251464844, - 166.00909423828125 - ], - "bbox": [ - 449.2320251464844, - 158.5526885986328, - 474.18353271484375, - 168.27667236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.2320251464844, - 158.5526885986328, - 474.18353271484375, - 168.27667236328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "NLVR2", - "origin": [ - 497.9891357421875, - 166.00909423828125 - ], - "bbox": [ - 497.9891357421875, - 158.5526885986328, - 523.1827392578125, - 168.27667236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 497.9891357421875, - 158.5526885986328, - 523.1827392578125, - 168.27667236328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "test-dev", - "origin": [ - 449.0350341796875, - 174.078125 - ], - "bbox": [ - 449.0350341796875, - 166.62171936035156, - 474.3819580078125, - 176.345703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 449.0350341796875, - 166.62171936035156, - 474.3819580078125, - 176.345703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "dev", - "origin": [ - 489.690185546875, - 174.078125 - ], - "bbox": [ - 489.690185546875, - 166.62171936035156, - 501.1410827636719, - 176.345703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 489.690185546875, - 166.62171936035156, - 501.1410827636719, - 176.345703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "test-P", - "origin": [ - 516.4492797851562, - 174.078125 - ], - "bbox": [ - 516.4492797851562, - 166.62171936035156, - 534.8319702148438, - 176.345703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.4492797851562, - 166.62171936035156, - 534.8319702148438, - 176.345703125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 314.04901123046875, - 203.90260314941406, - 337.2413330078125, - 213.6265869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Region", - "origin": [ - 314.04901123046875, - 211.3590087890625 - ], - "bbox": [ - 314.04901123046875, - 203.90260314941406, - 337.2413330078125, - 213.6265869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.04901123046875, - 203.90260314941406, - 337.2413330078125, - 213.6265869140625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 349.197021484375, - 179.69361877441406, - 534.7194213867188, - 237.835693359375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "w/o VLP SOTA", - "origin": [ - 349.197021484375, - 187.1500244140625 - ], - "bbox": [ - 349.197021484375, - 179.69361877441406, - 400.5767822265625, - 189.4176025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 179.69361877441406, - 400.5767822265625, - 189.4176025390625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 420.60577392578125, - 187.1500244140625 - ], - "bbox": [ - 420.60577392578125, - 179.69361877441406, - 437.0760498046875, - 189.4176025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.60577392578125, - 179.69361877441406, - 437.0760498046875, - 189.4176025390625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.63", - "origin": [ - 452.6263732910156, - 187.1500244140625 - ], - "bbox": [ - 452.6263732910156, - 179.69361877441406, - 470.783203125, - 189.4176025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263732910156, - 179.69361877441406, - 470.783203125, - 189.4176025390625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "54.80", - "origin": [ - 486.3335266113281, - 187.1500244140625 - ], - "bbox": [ - 486.3335266113281, - 179.69361877441406, - 504.4903564453125, - 189.4176025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3335266113281, - 179.69361877441406, - 504.4903564453125, - 189.4176025390625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "53.50", - "origin": [ - 516.5626220703125, - 187.1500244140625 - ], - "bbox": [ - 516.5626220703125, - 179.69361877441406, - 534.7194213867188, - 189.4176025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5626220703125, - 179.69361877441406, - 534.7194213867188, - 189.4176025390625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLBERT", - "origin": [ - 349.197021484375, - 195.22003173828125 - ], - "bbox": [ - 349.197021484375, - 187.7636260986328, - 381.8550109863281, - 197.48760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 187.7636260986328, - 381.8550109863281, - 197.48760986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~920", - "origin": [ - 420.605712890625, - 195.22003173828125 - ], - "bbox": [ - 420.605712890625, - 187.7636260986328, - 437.07598876953125, - 197.48760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.605712890625, - 187.7636260986328, - 437.07598876953125, - 197.48760986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.55", - "origin": [ - 452.6263122558594, - 195.22003173828125 - ], - "bbox": [ - 452.6263122558594, - 187.7636260986328, - 470.78314208984375, - 197.48760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263122558594, - 187.7636260986328, - 470.78314208984375, - 197.48760986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 494.0722961425781, - 195.22003173828125 - ], - "bbox": [ - 494.0722961425781, - 187.7636260986328, - 496.759521484375, - 197.48760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 494.0722961425781, - 187.7636260986328, - 496.759521484375, - 197.48760986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 524.2933349609375, - 195.22003173828125 - ], - "bbox": [ - 524.2933349609375, - 187.7636260986328, - 526.9805297851562, - 197.48760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 524.2933349609375, - 187.7636260986328, - 526.9805297851562, - 197.48760986328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VisualBERT", - "origin": [ - 349.197021484375, - 203.2890625 - ], - "bbox": [ - 349.197021484375, - 195.83265686035156, - 389.9247131347656, - 205.556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 195.83265686035156, - 389.9247131347656, - 205.556640625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~925", - "origin": [ - 420.605712890625, - 203.2890625 - ], - "bbox": [ - 420.605712890625, - 195.83265686035156, - 437.07598876953125, - 205.556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.605712890625, - 195.83265686035156, - 437.07598876953125, - 205.556640625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.80", - "origin": [ - 452.6263122558594, - 203.2890625 - ], - "bbox": [ - 452.6263122558594, - 195.83265686035156, - 470.78314208984375, - 205.556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263122558594, - 195.83265686035156, - 470.78314208984375, - 205.556640625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "67.40", - "origin": [ - 486.3334655761719, - 203.2890625 - ], - "bbox": [ - 486.3334655761719, - 195.83265686035156, - 504.49029541015625, - 205.556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3334655761719, - 195.83265686035156, - 504.49029541015625, - 205.556640625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "67.00", - "origin": [ - 516.5625610351562, - 203.2890625 - ], - "bbox": [ - 516.5625610351562, - 195.83265686035156, - 534.7193603515625, - 205.556640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5625610351562, - 195.83265686035156, - 534.7193603515625, - 205.556640625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "LXMERT", - "origin": [ - 349.197021484375, - 211.35906982421875 - ], - "bbox": [ - 349.197021484375, - 203.9026641845703, - 381.8872985839844, - 213.62664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 203.9026641845703, - 381.8872985839844, - 213.62664794921875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 420.605712890625, - 211.35906982421875 - ], - "bbox": [ - 420.605712890625, - 203.9026641845703, - 437.07598876953125, - 213.62664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.605712890625, - 203.9026641845703, - 437.07598876953125, - 213.62664794921875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.42", - "origin": [ - 452.6263122558594, - 211.35906982421875 - ], - "bbox": [ - 452.6263122558594, - 203.9026641845703, - 470.78314208984375, - 213.62664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263122558594, - 203.9026641845703, - 470.78314208984375, - 213.62664794921875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.90", - "origin": [ - 486.3334655761719, - 211.35906982421875 - ], - "bbox": [ - 486.3334655761719, - 203.9026641845703, - 504.49029541015625, - 213.62664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3334655761719, - 203.9026641845703, - 504.49029541015625, - 213.62664794921875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.50", - "origin": [ - 516.5625610351562, - 211.35906982421875 - ], - "bbox": [ - 516.5625610351562, - 203.9026641845703, - 534.7193603515625, - 213.62664794921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5625610351562, - 203.9026641845703, - 534.7193603515625, - 213.62664794921875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "UNITER-Base", - "origin": [ - 349.197021484375, - 219.4290771484375 - ], - "bbox": [ - 349.197021484375, - 211.97267150878906, - 397.15521240234375, - 221.6966552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 211.97267150878906, - 397.15521240234375, - 221.6966552734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 420.60577392578125, - 219.4290771484375 - ], - "bbox": [ - 420.60577392578125, - 211.97267150878906, - 437.0760498046875, - 221.6966552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.60577392578125, - 211.97267150878906, - 437.0760498046875, - 221.6966552734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.70", - "origin": [ - 452.6263732910156, - 219.4290771484375 - ], - "bbox": [ - 452.6263732910156, - 211.97267150878906, - 470.783203125, - 221.6966552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263732910156, - 211.97267150878906, - 470.783203125, - 221.6966552734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.85", - "origin": [ - 486.3335266113281, - 219.4290771484375 - ], - "bbox": [ - 486.3335266113281, - 211.97267150878906, - 504.4903564453125, - 221.6966552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3335266113281, - 211.97267150878906, - 504.4903564453125, - 221.6966552734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.80", - "origin": [ - 516.5626220703125, - 219.4290771484375 - ], - "bbox": [ - 516.5626220703125, - 211.97267150878906, - 534.7194213867188, - 221.6966552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5626220703125, - 211.97267150878906, - 534.7194213867188, - 221.6966552734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "OSCAR-Base", - "origin": [ - 349.197021484375, - 227.49908447265625 - ], - "bbox": [ - 349.197021484375, - 220.0426788330078, - 394.47607421875, - 229.76666259765625 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†", - "origin": [ - 394.47601318359375, - 225.8570556640625 - ], - "bbox": [ - 394.47601318359375, - 220.63755798339844, - 397.3004150390625, - 227.44436645507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 220.0426788330078, - 397.3004150390625, - 229.76666259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 420.6090087890625, - 227.49908447265625 - ], - "bbox": [ - 420.6090087890625, - 220.0426788330078, - 437.07928466796875, - 229.76666259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.6090087890625, - 220.0426788330078, - 437.07928466796875, - 229.76666259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "73.16", - "origin": [ - 452.6296081542969, - 227.49908447265625 - ], - "bbox": [ - 452.6296081542969, - 220.0426788330078, - 470.78643798828125, - 229.76666259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6296081542969, - 220.0426788330078, - 470.78643798828125, - 229.76666259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "78.07", - "origin": [ - 486.3367614746094, - 227.49908447265625 - ], - "bbox": [ - 486.3367614746094, - 220.0426788330078, - 504.49359130859375, - 229.76666259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3367614746094, - 220.0426788330078, - 504.49359130859375, - 229.76666259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "78.36", - "origin": [ - 516.5578002929688, - 227.49908447265625 - ], - "bbox": [ - 516.5578002929688, - 220.0426788330078, - 534.714599609375, - 229.76666259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5578002929688, - 220.0426788330078, - 534.714599609375, - 229.76666259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VinVL-Base", - "origin": [ - 349.197021484375, - 235.568115234375 - ], - "bbox": [ - 349.197021484375, - 228.11170959472656, - 389.948974609375, - 237.835693359375 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†‡", - "origin": [ - 389.94903564453125, - 233.9271240234375 - ], - "bbox": [ - 389.94903564453125, - 228.70762634277344, - 395.59783935546875, - 235.51443481445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 228.11170959472656, - 395.59783935546875, - 237.835693359375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~650", - "origin": [ - 420.6090393066406, - 235.568115234375 - ], - "bbox": [ - 420.6090393066406, - 228.11170959472656, - 437.0793151855469, - 237.835693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.6090393066406, - 228.11170959472656, - 437.0793151855469, - 237.835693359375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.95", - "origin": [ - 452.629638671875, - 235.568115234375 - ], - "bbox": [ - 452.629638671875, - 228.11170959472656, - 470.7864685058594, - 237.835693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.629638671875, - 228.11170959472656, - 470.7864685058594, - 237.835693359375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "82.05", - "origin": [ - 486.3367919921875, - 235.568115234375 - ], - "bbox": [ - 486.3367919921875, - 228.11170959472656, - 504.4936218261719, - 237.835693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3367919921875, - 228.11170959472656, - 504.4936218261719, - 237.835693359375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.08", - "origin": [ - 516.5578002929688, - 235.568115234375 - ], - "bbox": [ - 516.5578002929688, - 228.11170959472656, - 534.714599609375, - 237.835693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5578002929688, - 228.11170959472656, - 534.714599609375, - 237.835693359375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 14, - "type": 0, - "bbox": [ - 314.04901123046875, - 241.18360900878906, - 534.719482421875, - 258.97760009765625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Grid", - "origin": [ - 314.04901123046875, - 252.67498779296875 - ], - "bbox": [ - 314.04901123046875, - 245.2185821533203, - 328.8407897949219, - 254.94256591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.04901123046875, - 245.2185821533203, - 328.8407897949219, - 254.94256591796875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Pixel-BERT-X152", - "origin": [ - 349.197021484375, - 248.6400146484375 - ], - "bbox": [ - 349.197021484375, - 241.18360900878906, - 408.37213134765625, - 250.9075927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 241.18360900878906, - 408.37213134765625, - 250.9075927734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~160", - "origin": [ - 420.6058044433594, - 248.6400146484375 - ], - "bbox": [ - 420.6058044433594, - 241.18360900878906, - 437.0760803222656, - 250.9075927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 420.6058044433594, - 241.18360900878906, - 437.0760803222656, - 250.9075927734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.45", - "origin": [ - 452.62640380859375, - 248.6400146484375 - ], - "bbox": [ - 452.62640380859375, - 241.18360900878906, - 470.7832336425781, - 250.9075927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.62640380859375, - 241.18360900878906, - 470.7832336425781, - 250.9075927734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "76.50", - "origin": [ - 486.33355712890625, - 248.6400146484375 - ], - "bbox": [ - 486.33355712890625, - 241.18360900878906, - 504.4903869628906, - 250.9075927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.33355712890625, - 241.18360900878906, - 504.4903869628906, - 250.9075927734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "77.20", - "origin": [ - 516.5626831054688, - 248.6400146484375 - ], - "bbox": [ - 516.5626831054688, - 241.18360900878906, - 534.719482421875, - 250.9075927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5626831054688, - 241.18360900878906, - 534.719482421875, - 250.9075927734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Pixel-BERT-R50", - "origin": [ - 349.197021484375, - 256.71002197265625 - ], - "bbox": [ - 349.197021484375, - 249.2536163330078, - 403.8934326171875, - 258.97760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 249.2536163330078, - 403.8934326171875, - 258.97760009765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~60", - "origin": [ - 424.640625, - 256.71002197265625 - ], - "bbox": [ - 424.640625, - 249.2536163330078, - 437.0760498046875, - 258.97760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.640625, - 249.2536163330078, - 437.0760498046875, - 258.97760009765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.35", - "origin": [ - 452.6263732910156, - 256.71002197265625 - ], - "bbox": [ - 452.6263732910156, - 249.2536163330078, - 470.783203125, - 258.97760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6263732910156, - 249.2536163330078, - 470.783203125, - 258.97760009765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.70", - "origin": [ - 486.3335266113281, - 256.71002197265625 - ], - "bbox": [ - 486.3335266113281, - 249.2536163330078, - 504.4903564453125, - 258.97760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3335266113281, - 249.2536163330078, - 504.4903564453125, - 258.97760009765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.40", - "origin": [ - 516.5626220703125, - 256.71002197265625 - ], - "bbox": [ - 516.5626220703125, - 249.2536163330078, - 534.7194213867188, - 258.97760009765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5626220703125, - 249.2536163330078, - 534.7194213867188, - 258.97760009765625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 15, - "type": 0, - "bbox": [ - 314.04901123046875, - 262.3255920410156, - 534.719482421875, - 289.94671630859375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Linear", - "origin": [ - 314.04901123046875, - 277.85101318359375 - ], - "bbox": [ - 314.04901123046875, - 270.3946228027344, - 335.1109313964844, - 280.11859130859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 314.04901123046875, - 270.3946228027344, - 335.1109313964844, - 280.11859130859375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 349.197021484375, - 269.781982421875 - ], - "bbox": [ - 349.197021484375, - 262.3255920410156, - 383.5416564941406, - 272.049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 262.3255920410156, - 383.5416564941406, - 272.049560546875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 424.6406555175781, - 269.781982421875 - ], - "bbox": [ - 424.6406555175781, - 262.3255920410156, - 437.0760803222656, - 272.049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.6406555175781, - 262.3255920410156, - 437.0760803222656, - 272.049560546875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.33", - "origin": [ - 452.62640380859375, - 269.781982421875 - ], - "bbox": [ - 452.62640380859375, - 262.3255920410156, - 470.7832336425781, - 272.049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.62640380859375, - 262.3255920410156, - 470.7832336425781, - 272.049560546875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.41", - "origin": [ - 486.33355712890625, - 269.781982421875 - ], - "bbox": [ - 486.33355712890625, - 262.3255920410156, - 504.4903869628906, - 272.049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.33355712890625, - 262.3255920410156, - 504.4903869628906, - 272.049560546875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.57", - "origin": [ - 516.5626831054688, - 269.781982421875 - ], - "bbox": [ - 516.5626831054688, - 262.3255920410156, - 534.719482421875, - 272.049560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5626831054688, - 262.3255920410156, - 534.719482421875, - 272.049560546875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 349.197021484375, - 277.8509521484375 - ], - "bbox": [ - 349.197021484375, - 270.3945617675781, - 383.5416564941406, - 280.1185302734375 - ] - }, - { - "size": 5.648799896240234, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 383.5416564941406, - 277.8509521484375 - ], - "bbox": [ - 383.5416564941406, - 270.81048583984375, - 385.9400329589844, - 279.4382629394531 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "a", - "origin": [ - 385.9400329589844, - 276.02996826171875 - ], - "bbox": [ - 385.9400329589844, - 270.81048583984375, - 388.4480895996094, - 277.6172790527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.197021484375, - 270.3945617675781, - 388.4480895996094, - 280.1185302734375 - ] - }, - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMSY6", - "color": 0, - "ascender": 0.7860000133514404, - "descender": -0.9480000138282776, - "text": "⃝", - "origin": [ - 383.5410461425781, - 276.2099609375 - ], - "bbox": [ - 383.5410461425781, - 271.5115661621094, - 390.8456726074219, - 281.8767395019531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 383.5410461425781, - 271.5115661621094, - 390.8456726074219, - 281.8767395019531 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 424.64404296875, - 277.8509521484375 - ], - "bbox": [ - 424.64404296875, - 270.3945617675781, - 437.0794677734375, - 280.1185302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.64404296875, - 270.3945617675781, - 437.0794677734375, - 280.1185302734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.85", - "origin": [ - 452.6297912597656, - 277.8509521484375 - ], - "bbox": [ - 452.6297912597656, - 270.3945617675781, - 470.78662109375, - 280.1185302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.6297912597656, - 270.3945617675781, - 470.78662109375, - 280.1185302734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.91", - "origin": [ - 486.3369445800781, - 277.8509521484375 - ], - "bbox": [ - 486.3369445800781, - 270.3945617675781, - 504.4937744140625, - 280.1185302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.3369445800781, - 270.3945617675781, - 504.4937744140625, - 280.1185302734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.57", - "origin": [ - 516.5579833984375, - 277.8509521484375 - ], - "bbox": [ - 516.5579833984375, - 270.3945617675781, - 534.7147827148438, - 280.1185302734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5579833984375, - 270.3945617675781, - 534.7147827148438, - 280.1185302734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 349.1970520019531, - 285.92095947265625 - ], - "bbox": [ - 349.1970520019531, - 278.4645690917969, - 383.54168701171875, - 288.18853759765625 - ] - }, - { - "size": 5.648799896240234, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 383.54168701171875, - 285.92095947265625 - ], - "bbox": [ - 383.54168701171875, - 278.8804626464844, - 385.9400634765625, - 287.5082702636719 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "a", - "origin": [ - 385.9400634765625, - 284.0999450683594 - ], - "bbox": [ - 385.9400634765625, - 278.8804626464844, - 388.4481201171875, - 285.687255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 349.1970520019531, - 278.4645690917969, - 388.4481201171875, - 288.18853759765625 - ] - }, - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMSY6", - "color": 0, - "ascender": 0.7860000133514404, - "descender": -0.9480000138282776, - "text": "⃝", - "origin": [ - 383.54107666015625, - 284.2799377441406 - ], - "bbox": [ - 383.54107666015625, - 279.58154296875, - 390.845703125, - 289.94671630859375 - ] - }, - { - "size": 5.648799896240234, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " +", - "origin": [ - 390.845703125, - 284.2799377441406 - ], - "bbox": [ - 390.845703125, - 278.8804626464844, - 396.0929870605469, - 285.86724853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 383.54107666015625, - 278.8804626464844, - 396.0929870605469, - 289.94671630859375 - ] - }, - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMSY6", - "color": 0, - "ascender": 0.7860000133514404, - "descender": -0.9480000138282776, - "text": "⃝", - "origin": [ - 390.8470764160156, - 284.2799377441406 - ], - "bbox": [ - 390.8470764160156, - 279.58154296875, - 398.1517028808594, - 289.94671630859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 390.8470764160156, - 279.58154296875, - 398.1517028808594, - 289.94671630859375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 424.6440734863281, - 285.9209289550781 - ], - "bbox": [ - 424.6440734863281, - 278.46453857421875, - 437.0794982910156, - 288.1885070800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 424.6440734863281, - 278.46453857421875, - 437.0794982910156, - 288.1885070800781 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.26", - "origin": [ - 452.62982177734375, - 285.9209289550781 - ], - "bbox": [ - 452.62982177734375, - 278.46453857421875, - 470.7866516113281, - 288.1885070800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 452.62982177734375, - 278.46453857421875, - 470.7866516113281, - 288.1885070800781 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.70", - "origin": [ - 486.33697509765625, - 285.9209289550781 - ], - "bbox": [ - 486.33697509765625, - 278.46453857421875, - 504.4938049316406, - 288.1885070800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.33697509765625, - 278.46453857421875, - 504.4938049316406, - 288.1885070800781 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "76.13", - "origin": [ - 516.5579833984375, - 285.9209289550781 - ], - "bbox": [ - 516.5579833984375, - 278.46453857421875, - 534.7147827148438, - 288.1885070800781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 516.5579833984375, - 278.46453857421875, - 534.7147827148438, - 288.1885070800781 - ] - } - ], - "tag": "on-table" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision", - "origin": [ - 134.13299560546875, - 54.1090087890625 - ], - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\344\270\255\346\226\207_\345\220\214\350\212\261\351\241\272\346\225\260\346\215\256\346\216\245\345\217\243\347\224\250\346\210\267\346\211\213\345\206\214-windows-Python_17_\346\256\265\350\220\275_\350\241\250\346\240\274.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\344\270\255\346\226\207_\345\220\214\350\212\261\351\241\272\346\225\260\346\215\256\346\216\245\345\217\243\347\224\250\346\210\267\346\211\213\345\206\214-windows-Python_17_\346\256\265\350\220\275_\350\241\250\346\240\274.pdf/preproc_out.json" deleted file mode 100644 index fae9f5b92..000000000 --- "a/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\344\270\255\346\226\207_\345\220\214\350\212\261\351\241\272\346\225\260\346\215\256\346\216\245\345\217\243\347\224\250\346\210\267\346\211\213\345\206\214-windows-Python_17_\346\256\265\350\220\275_\350\241\250\346\240\274.pdf/preproc_out.json" +++ /dev/null @@ -1,3299 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 77.68998718261719, - 233.5977783203125, - 98.3449935913086 - ], - "lines": [ - { - "spans": [ - { - "size": 15.0, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "2.2.4.", - "origin": [ - 54.0, - 93.739990234375 - ], - "bbox": [ - 54.0, - 77.868408203125, - 94.62966918945312, - 97.665771484375 - ] - }, - { - "size": 15.0, - "flags": 16, - "font": "Arial,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 94.58399963378906, - 93.739990234375 - ], - "bbox": [ - 94.58399963378906, - 77.68998718261719, - 98.75399780273438, - 98.3449935913086 - ] - }, - { - "size": 15.0, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "高频序列:THS_HF ", - "origin": [ - 96.02400207519531, - 93.739990234375 - ], - "bbox": [ - 96.02400207519531, - 77.868408203125, - 233.5977783203125, - 97.665771484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 77.68998718261719, - 233.5977783203125, - 98.3449935913086 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 54.0, - 126.34083557128906, - 491.2098693847656, - 137.38084411621094 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 8, - "font": "Consolas", - "color": 0, - "ascender": 0.74267578125, - "descender": -0.25732421875, - "text": "THS_HF (codes,indicators,HFS_parameters,startdate,enddate,dataformat) ", - "origin": [ - 54.0, - 134.53997802734375 - ], - "bbox": [ - 54.0, - 126.34083557128906, - 491.2098693847656, - 137.38084411621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 126.34083557128906, - 491.2098693847656, - 137.38084411621094 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 54.0, - 153.45846557617188, - 541.2357788085938, - 168.02932739257812 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "该命令用来获取证券的分钟 K 线数据,包括历史日期和当前日期。分钟线的周期可以自己选定,目前", - "origin": [ - 54.0, - 165.13995361328125 - ], - "bbox": [ - 54.0, - 153.45846557617188, - 541.2357788085938, - 168.02932739257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 153.45846557617188, - 541.2357788085938, - 168.02932739257812 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 54.0, - 184.65847778320312, - 541.3866577148438, - 199.22933959960938 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "可选的周期有 1 分钟、3 分钟、5 分钟、10 分钟、15 分钟、30 分钟和 60 分钟。通过高频序列函数还", - "origin": [ - 54.0, - 196.3399658203125 - ], - "bbox": [ - 54.0, - 184.65847778320312, - 541.3866577148438, - 199.22933959960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 184.65847778320312, - 541.3866577148438, - 199.22933959960938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 54.0, - 215.85848999023438, - 541.1953125, - 230.42935180664062 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "可以获取证券的逐笔成交数据以及一些技术指标数据。其他的技术指标参数用户也可以自己选定,如", - "origin": [ - 54.0, - 227.53997802734375 - ], - "bbox": [ - 54.0, - 215.85848999023438, - 541.1953125, - 230.42935180664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 215.85848999023438, - 541.1953125, - 230.42935180664062 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 54.0, - 247.05850219726562, - 299.2367248535156, - 261.6293640136719 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "最大周期数、复权方式和非交易间隔处理等参数。 ", - "origin": [ - 54.0, - 258.739990234375 - ], - "bbox": [ - 54.0, - 247.05850219726562, - 299.2367248535156, - 261.6293640136719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 247.05850219726562, - 299.2367248535156, - 261.6293640136719 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 75.02400207519531, - 278.2884826660156, - 78.29071807861328, - 292.8593444824219 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": " ", - "origin": [ - 75.02400207519531, - 289.969970703125 - ], - "bbox": [ - 75.02400207519531, - 278.2884826660156, - 78.29071807861328, - 292.8593444824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.02400207519531, - 278.2884826660156, - 78.29071807861328, - 292.8593444824219 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 54.0, - 309.6084899902344, - 90.31228637695312, - 324.1793518066406 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "参数: ", - "origin": [ - 54.0, - 321.28997802734375 - ], - "bbox": [ - 54.0, - 309.6084899902344, - 90.31228637695312, - 324.1793518066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 309.6084899902344, - 90.31228637695312, - 324.1793518066406 - ] - } - ] - } - ], - "images": [], - "tables": [ - { - "bbox": [ - 54, - 332, - 542, - 740 - ], - "image_path": "tables/0_54_332_542_740.jpg" - } - ], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 44.11700439453125, - 595.3200073242188, - 740 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "同花顺数据接口使用说明 ", - "origin": [ - 248.2100067138672, - 53.63995361328125 - ], - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 77.68998718261719, - 233.5977783203125, - 98.3449935913086 - ], - "lines": [ - { - "spans": [ - { - "size": 15.0, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "2.2.4.", - "origin": [ - 54.0, - 93.739990234375 - ], - "bbox": [ - 54.0, - 77.868408203125, - 94.62966918945312, - 97.665771484375 - ] - }, - { - "size": 15.0, - "flags": 16, - "font": "Arial,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 94.58399963378906, - 93.739990234375 - ], - "bbox": [ - 94.58399963378906, - 77.68998718261719, - 98.75399780273438, - 98.3449935913086 - ] - }, - { - "size": 15.0, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "高频序列:THS_HF ", - "origin": [ - 96.02400207519531, - 93.739990234375 - ], - "bbox": [ - 96.02400207519531, - 77.868408203125, - 233.5977783203125, - 97.665771484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 77.68998718261719, - 233.5977783203125, - 98.3449935913086 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 54.0, - 126.34083557128906, - 491.2098693847656, - 137.38084411621094 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 8, - "font": "Consolas", - "color": 0, - "ascender": 0.74267578125, - "descender": -0.25732421875, - "text": "THS_HF (codes,indicators,HFS_parameters,startdate,enddate,dataformat) ", - "origin": [ - 54.0, - 134.53997802734375 - ], - "bbox": [ - 54.0, - 126.34083557128906, - 491.2098693847656, - 137.38084411621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 126.34083557128906, - 491.2098693847656, - 137.38084411621094 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 54.0, - 153.45846557617188, - 541.2357788085938, - 168.02932739257812 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "该命令用来获取证券的分钟 K 线数据,包括历史日期和当前日期。分钟线的周期可以自己选定,目前", - "origin": [ - 54.0, - 165.13995361328125 - ], - "bbox": [ - 54.0, - 153.45846557617188, - 541.2357788085938, - 168.02932739257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 153.45846557617188, - 541.2357788085938, - 168.02932739257812 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 54.0, - 184.65847778320312, - 541.3866577148438, - 199.22933959960938 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "可选的周期有 1 分钟、3 分钟、5 分钟、10 分钟、15 分钟、30 分钟和 60 分钟。通过高频序列函数还", - "origin": [ - 54.0, - 196.3399658203125 - ], - "bbox": [ - 54.0, - 184.65847778320312, - 541.3866577148438, - 199.22933959960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 184.65847778320312, - 541.3866577148438, - 199.22933959960938 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 54.0, - 215.85848999023438, - 541.1953125, - 230.42935180664062 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "可以获取证券的逐笔成交数据以及一些技术指标数据。其他的技术指标参数用户也可以自己选定,如", - "origin": [ - 54.0, - 227.53997802734375 - ], - "bbox": [ - 54.0, - 215.85848999023438, - 541.1953125, - 230.42935180664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 215.85848999023438, - 541.1953125, - 230.42935180664062 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 54.0, - 247.05850219726562, - 299.2367248535156, - 261.6293640136719 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "最大周期数、复权方式和非交易间隔处理等参数。 ", - "origin": [ - 54.0, - 258.739990234375 - ], - "bbox": [ - 54.0, - 247.05850219726562, - 299.2367248535156, - 261.6293640136719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 247.05850219726562, - 299.2367248535156, - 261.6293640136719 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 75.02400207519531, - 278.2884826660156, - 78.29071807861328, - 292.8593444824219 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": " ", - "origin": [ - 75.02400207519531, - 289.969970703125 - ], - "bbox": [ - 75.02400207519531, - 278.2884826660156, - 78.29071807861328, - 292.8593444824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.02400207519531, - 278.2884826660156, - 78.29071807861328, - 292.8593444824219 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 54.0, - 309.6084899902344, - 90.31228637695312, - 324.1793518066406 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "参数: ", - "origin": [ - 54.0, - 321.28997802734375 - ], - "bbox": [ - 54.0, - 309.6084899902344, - 90.31228637695312, - 324.1793518066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 309.6084899902344, - 90.31228637695312, - 324.1793518066406 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 59.66400146484375, - 341.2884826660156, - 355.91827392578125, - 355.8593444824219 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "参数 ", - "origin": [ - 59.66400146484375, - 352.969970703125 - ], - "bbox": [ - 59.66400146484375, - 341.2884826660156, - 84.91228485107422, - 355.8593444824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.66400146484375, - 341.2884826660156, - 84.91228485107422, - 355.8593444824219 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "参数名称 ", - "origin": [ - 156.74000549316406, - 352.969970703125 - ], - "bbox": [ - 156.74000549316406, - 341.2884826660156, - 204.09828186035156, - 355.8593444824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.74000549316406, - 341.2884826660156, - 204.09828186035156, - 355.8593444824219 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "参数类型 ", - "origin": [ - 234.41000366210938, - 352.969970703125 - ], - "bbox": [ - 234.41000366210938, - 341.2884826660156, - 281.73828125, - 355.8593444824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.41000366210938, - 341.2884826660156, - 281.73828125, - 355.8593444824219 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "参数描述 ", - "origin": [ - 308.57000732421875, - 352.969970703125 - ], - "bbox": [ - 308.57000732421875, - 341.2884826660156, - 355.91827392578125, - 355.8593444824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 341.2884826660156, - 355.91827392578125, - 355.8593444824219 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.66400146484375, - 372.8484802246094, - 539.7399291992188, - 387.4193420410156 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Codes ", - "origin": [ - 59.66400146484375, - 384.52996826171875 - ], - "bbox": [ - 59.66400146484375, - 372.8484802246094, - 95.69071960449219, - 387.4193420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.66400146484375, - 372.8484802246094, - 95.69071960449219, - 387.4193420410156 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "代码 ", - "origin": [ - 156.74000549316406, - 384.52996826171875 - ], - "bbox": [ - 156.74000549316406, - 372.8484802246094, - 181.9667205810547, - 387.4193420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.74000549316406, - 372.8484802246094, - 181.9667205810547, - 387.4193420410156 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "字符串 ", - "origin": [ - 234.41000366210938, - 384.52996826171875 - ], - "bbox": [ - 234.41000366210938, - 372.8484802246094, - 270.6767272949219, - 387.4193420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.41000366210938, - 372.8484802246094, - 270.6767272949219, - 387.4193420410156 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "半角逗号连接的同花顺代码,支持多代码,如:", - "origin": [ - 308.57000732421875, - 384.52996826171875 - ], - "bbox": [ - 308.57000732421875, - 372.8484802246094, - 539.7399291992188, - 387.4193420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 372.8484802246094, - 539.7399291992188, - 387.4193420410156 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 308.57000732421875, - 404.0484924316406, - 430.896728515625, - 418.6193542480469 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "'600004.SH,300330.SZ' ", - "origin": [ - 308.57000732421875, - 415.72998046875 - ], - "bbox": [ - 308.57000732421875, - 404.0484924316406, - 430.896728515625, - 418.6193542480469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 404.0484924316406, - 430.896728515625, - 418.6193542480469 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.66400146484375, - 435.7485046386719, - 535.7799682617188, - 450.3193664550781 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Indicators ", - "origin": [ - 59.66400146484375, - 447.42999267578125 - ], - "bbox": [ - 59.66400146484375, - 435.7485046386719, - 114.88671875, - 450.3193664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.66400146484375, - 435.7485046386719, - 114.88671875, - 450.3193664550781 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "指标 ", - "origin": [ - 156.74000549316406, - 447.42999267578125 - ], - "bbox": [ - 156.74000549316406, - 435.7485046386719, - 181.9667205810547, - 450.3193664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.74000549316406, - 435.7485046386719, - 181.9667205810547, - 450.3193664550781 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "字符串 ", - "origin": [ - 234.41000366210938, - 447.42999267578125 - ], - "bbox": [ - 234.41000366210938, - 435.7485046386719, - 270.6767272949219, - 450.3193664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.41000366210938, - 435.7485046386719, - 270.6767272949219, - 450.3193664550781 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "分号连接的指标名,支持多指标,指标名可以通", - "origin": [ - 308.57000732421875, - 447.42999267578125 - ], - "bbox": [ - 308.57000732421875, - 435.7485046386719, - 535.7799682617188, - 450.3193664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 435.7485046386719, - 535.7799682617188, - 450.3193664550781 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 308.57000732421875, - 466.948486328125, - 512.7667236328125, - 481.51934814453125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "过 SuperCommand 客户端直接生成命令 ", - "origin": [ - 308.57000732421875, - 478.6299743652344 - ], - "bbox": [ - 308.57000732421875, - 466.948486328125, - 512.7667236328125, - 481.51934814453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 466.948486328125, - 512.7667236328125, - 481.51934814453125 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.66400146484375, - 498.6285095214844, - 223.61000061035156, - 513.1994018554688 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "HFS_parameters 高频序列输出", - "origin": [ - 59.66400146484375, - 510.30999755859375 - ], - "bbox": [ - 59.66400146484375, - 498.6285095214844, - 223.61000061035156, - 513.1994018554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.66400146484375, - 498.6285095214844, - 223.61000061035156, - 513.1994018554688 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 156.74000549316406, - 529.8285522460938, - 181.9667205810547, - 544.3994140625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "设置 ", - "origin": [ - 156.74000549316406, - 541.510009765625 - ], - "bbox": [ - 156.74000549316406, - 529.8285522460938, - 181.9667205810547, - 544.3994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.74000549316406, - 529.8285522460938, - 181.9667205810547, - 544.3994140625 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 234.41000366210938, - 498.6285095214844, - 528.6985473632812, - 513.1994018554688 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "字符串 ", - "origin": [ - 234.41000366210938, - 510.30999755859375 - ], - "bbox": [ - 234.41000366210938, - 498.6285095214844, - 270.6767272949219, - 513.1994018554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.41000366210938, - 498.6285095214844, - 270.6767272949219, - 513.1994018554688 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "半角逗号连接的日期序列输出的设置,单项设", - "origin": [ - 308.57000732421875, - 510.30999755859375 - ], - "bbox": [ - 308.57000732421875, - 498.6285095214844, - 528.6985473632812, - 513.1994018554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 498.6285095214844, - 528.6985473632812, - 513.1994018554688 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 308.57000732421875, - 529.8285522460938, - 528.6985473632812, - 544.3994140625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "置用冒号分隔赋值。可以设置日期序列输出的", - "origin": [ - 308.57000732421875, - 541.510009765625 - ], - "bbox": [ - 308.57000732421875, - 529.8285522460938, - 528.6985473632812, - 544.3994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 529.8285522460938, - 528.6985473632812, - 544.3994140625 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 308.57000732421875, - 561.0285034179688, - 528.699951171875, - 575.599365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "时间周期、日期类型、非交易间隔处理等情况", - "origin": [ - 308.57000732421875, - 572.7099609375 - ], - "bbox": [ - 308.57000732421875, - 561.0285034179688, - 528.699951171875, - 575.599365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 561.0285034179688, - 528.699951171875, - 575.599365234375 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 308.57000732421875, - 592.228515625, - 374.6886291503906, - 606.7993774414062 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "的处理。例如", - "origin": [ - 308.57000732421875, - 603.9099731445312 - ], - "bbox": [ - 308.57000732421875, - 592.228515625, - 374.6886291503906, - 606.7993774414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 592.228515625, - 374.6886291503906, - 606.7993774414062 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 308.57000732421875, - 623.4585571289062, - 535.8999633789062, - 638.0294189453125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "'Interval:W,Fill:Previous,Days:WorkDays’。", - "origin": [ - 308.57000732421875, - 635.1400146484375 - ], - "bbox": [ - 308.57000732421875, - 623.4585571289062, - 535.8999633789062, - 638.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 623.4585571289062, - 535.8999633789062, - 638.0294189453125 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 308.57000732421875, - 654.6585083007812, - 498.8467102050781, - 669.2293701171875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "各项设置的参数见高频序列输出设置表 ", - "origin": [ - 308.57000732421875, - 666.3399658203125 - ], - "bbox": [ - 308.57000732421875, - 654.6585083007812, - 498.8467102050781, - 669.2293701171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 654.6585083007812, - 498.8467102050781, - 669.2293701171875 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 59.66400146484375, - 686.4585571289062, - 539.0481567382812, - 701.0294189453125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "startdate ", - "origin": [ - 59.66400146484375, - 698.1400146484375 - ], - "bbox": [ - 59.66400146484375, - 686.4585571289062, - 109.96671295166016, - 701.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.66400146484375, - 686.4585571289062, - 109.96671295166016, - 701.0294189453125 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "开始时间 ", - "origin": [ - 156.74000549316406, - 698.1400146484375 - ], - "bbox": [ - 156.74000549316406, - 686.4585571289062, - 204.07672119140625, - 701.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.74000549316406, - 686.4585571289062, - 204.07672119140625, - 701.0294189453125 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "字符串 ", - "origin": [ - 234.41000366210938, - 698.1400146484375 - ], - "bbox": [ - 234.41000366210938, - 686.4585571289062, - 270.6767272949219, - 701.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.41000366210938, - 686.4585571289062, - 270.6767272949219, - 701.0294189453125 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "开 始 时 间 , 时 间 格 式 为", - "origin": [ - 308.57000732421875, - 698.1400146484375 - ], - "bbox": [ - 308.57000732421875, - 686.4585571289062, - 452.32867431640625, - 701.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 686.4585571289062, - 452.32867431640625, - 701.0294189453125 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "YYYY-MM-DD ", - "origin": [ - 461.3800048828125, - 698.1400146484375 - ], - "bbox": [ - 461.3800048828125, - 686.4585571289062, - 539.0481567382812, - 701.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.3800048828125, - 686.4585571289062, - 539.0481567382812, - 701.0294189453125 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 308.57000732421875, - 717.6585083007812, - 512.5267333984375, - 732.2293701171875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "HH:MM:SS,例如 2019-12-10 09:30:00 ", - "origin": [ - 308.57000732421875, - 729.3399658203125 - ], - "bbox": [ - 308.57000732421875, - 717.6585083007812, - 512.5267333984375, - 732.2293701171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 717.6585083007812, - 512.5267333984375, - 732.2293701171875 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 9, - "type": 0, - "bbox": [ - 59.66400146484375, - 341.2884826660156, - 355.91827392578125, - 355.8593444824219 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "参数 ", - "origin": [ - 59.66400146484375, - 352.969970703125 - ], - "bbox": [ - 59.66400146484375, - 341.2884826660156, - 84.91228485107422, - 355.8593444824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.66400146484375, - 341.2884826660156, - 84.91228485107422, - 355.8593444824219 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "参数名称 ", - "origin": [ - 156.74000549316406, - 352.969970703125 - ], - "bbox": [ - 156.74000549316406, - 341.2884826660156, - 204.09828186035156, - 355.8593444824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.74000549316406, - 341.2884826660156, - 204.09828186035156, - 355.8593444824219 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "参数类型 ", - "origin": [ - 234.41000366210938, - 352.969970703125 - ], - "bbox": [ - 234.41000366210938, - 341.2884826660156, - 281.73828125, - 355.8593444824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.41000366210938, - 341.2884826660156, - 281.73828125, - 355.8593444824219 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "参数描述 ", - "origin": [ - 308.57000732421875, - 352.969970703125 - ], - "bbox": [ - 308.57000732421875, - 341.2884826660156, - 355.91827392578125, - 355.8593444824219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 341.2884826660156, - 355.91827392578125, - 355.8593444824219 - ] - } - ], - "tag": "on-table" - }, - { - "number": 10, - "type": 0, - "bbox": [ - 59.66400146484375, - 372.8484802246094, - 539.7399291992188, - 387.4193420410156 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Codes ", - "origin": [ - 59.66400146484375, - 384.52996826171875 - ], - "bbox": [ - 59.66400146484375, - 372.8484802246094, - 95.69071960449219, - 387.4193420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.66400146484375, - 372.8484802246094, - 95.69071960449219, - 387.4193420410156 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "代码 ", - "origin": [ - 156.74000549316406, - 384.52996826171875 - ], - "bbox": [ - 156.74000549316406, - 372.8484802246094, - 181.9667205810547, - 387.4193420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.74000549316406, - 372.8484802246094, - 181.9667205810547, - 387.4193420410156 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "字符串 ", - "origin": [ - 234.41000366210938, - 384.52996826171875 - ], - "bbox": [ - 234.41000366210938, - 372.8484802246094, - 270.6767272949219, - 387.4193420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.41000366210938, - 372.8484802246094, - 270.6767272949219, - 387.4193420410156 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "半角逗号连接的同花顺代码,支持多代码,如:", - "origin": [ - 308.57000732421875, - 384.52996826171875 - ], - "bbox": [ - 308.57000732421875, - 372.8484802246094, - 539.7399291992188, - 387.4193420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 372.8484802246094, - 539.7399291992188, - 387.4193420410156 - ] - } - ], - "tag": "on-table" - }, - { - "number": 11, - "type": 0, - "bbox": [ - 308.57000732421875, - 404.0484924316406, - 430.896728515625, - 418.6193542480469 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "'600004.SH,300330.SZ' ", - "origin": [ - 308.57000732421875, - 415.72998046875 - ], - "bbox": [ - 308.57000732421875, - 404.0484924316406, - 430.896728515625, - 418.6193542480469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 404.0484924316406, - 430.896728515625, - 418.6193542480469 - ] - } - ], - "tag": "on-table" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 59.66400146484375, - 435.7485046386719, - 535.7799682617188, - 450.3193664550781 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Indicators ", - "origin": [ - 59.66400146484375, - 447.42999267578125 - ], - "bbox": [ - 59.66400146484375, - 435.7485046386719, - 114.88671875, - 450.3193664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.66400146484375, - 435.7485046386719, - 114.88671875, - 450.3193664550781 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "指标 ", - "origin": [ - 156.74000549316406, - 447.42999267578125 - ], - "bbox": [ - 156.74000549316406, - 435.7485046386719, - 181.9667205810547, - 450.3193664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.74000549316406, - 435.7485046386719, - 181.9667205810547, - 450.3193664550781 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "字符串 ", - "origin": [ - 234.41000366210938, - 447.42999267578125 - ], - "bbox": [ - 234.41000366210938, - 435.7485046386719, - 270.6767272949219, - 450.3193664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.41000366210938, - 435.7485046386719, - 270.6767272949219, - 450.3193664550781 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "分号连接的指标名,支持多指标,指标名可以通", - "origin": [ - 308.57000732421875, - 447.42999267578125 - ], - "bbox": [ - 308.57000732421875, - 435.7485046386719, - 535.7799682617188, - 450.3193664550781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 435.7485046386719, - 535.7799682617188, - 450.3193664550781 - ] - } - ], - "tag": "on-table" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 308.57000732421875, - 466.948486328125, - 512.7667236328125, - 481.51934814453125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "过 SuperCommand 客户端直接生成命令 ", - "origin": [ - 308.57000732421875, - 478.6299743652344 - ], - "bbox": [ - 308.57000732421875, - 466.948486328125, - 512.7667236328125, - 481.51934814453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 466.948486328125, - 512.7667236328125, - 481.51934814453125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 14, - "type": 0, - "bbox": [ - 59.66400146484375, - 498.6285095214844, - 223.61000061035156, - 513.1994018554688 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "HFS_parameters 高频序列输出", - "origin": [ - 59.66400146484375, - 510.30999755859375 - ], - "bbox": [ - 59.66400146484375, - 498.6285095214844, - 223.61000061035156, - 513.1994018554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.66400146484375, - 498.6285095214844, - 223.61000061035156, - 513.1994018554688 - ] - } - ], - "tag": "on-table" - }, - { - "number": 15, - "type": 0, - "bbox": [ - 156.74000549316406, - 529.8285522460938, - 181.9667205810547, - 544.3994140625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "设置 ", - "origin": [ - 156.74000549316406, - 541.510009765625 - ], - "bbox": [ - 156.74000549316406, - 529.8285522460938, - 181.9667205810547, - 544.3994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.74000549316406, - 529.8285522460938, - 181.9667205810547, - 544.3994140625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 16, - "type": 0, - "bbox": [ - 234.41000366210938, - 498.6285095214844, - 528.6985473632812, - 513.1994018554688 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "字符串 ", - "origin": [ - 234.41000366210938, - 510.30999755859375 - ], - "bbox": [ - 234.41000366210938, - 498.6285095214844, - 270.6767272949219, - 513.1994018554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.41000366210938, - 498.6285095214844, - 270.6767272949219, - 513.1994018554688 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "半角逗号连接的日期序列输出的设置,单项设", - "origin": [ - 308.57000732421875, - 510.30999755859375 - ], - "bbox": [ - 308.57000732421875, - 498.6285095214844, - 528.6985473632812, - 513.1994018554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 498.6285095214844, - 528.6985473632812, - 513.1994018554688 - ] - } - ], - "tag": "on-table" - }, - { - "number": 17, - "type": 0, - "bbox": [ - 308.57000732421875, - 529.8285522460938, - 528.6985473632812, - 544.3994140625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "置用冒号分隔赋值。可以设置日期序列输出的", - "origin": [ - 308.57000732421875, - 541.510009765625 - ], - "bbox": [ - 308.57000732421875, - 529.8285522460938, - 528.6985473632812, - 544.3994140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 529.8285522460938, - 528.6985473632812, - 544.3994140625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 18, - "type": 0, - "bbox": [ - 308.57000732421875, - 561.0285034179688, - 528.699951171875, - 575.599365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "时间周期、日期类型、非交易间隔处理等情况", - "origin": [ - 308.57000732421875, - 572.7099609375 - ], - "bbox": [ - 308.57000732421875, - 561.0285034179688, - 528.699951171875, - 575.599365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 561.0285034179688, - 528.699951171875, - 575.599365234375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 19, - "type": 0, - "bbox": [ - 308.57000732421875, - 592.228515625, - 374.6886291503906, - 606.7993774414062 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "的处理。例如", - "origin": [ - 308.57000732421875, - 603.9099731445312 - ], - "bbox": [ - 308.57000732421875, - 592.228515625, - 374.6886291503906, - 606.7993774414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 592.228515625, - 374.6886291503906, - 606.7993774414062 - ] - } - ], - "tag": "on-table" - }, - { - "number": 20, - "type": 0, - "bbox": [ - 308.57000732421875, - 623.4585571289062, - 535.8999633789062, - 638.0294189453125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "'Interval:W,Fill:Previous,Days:WorkDays’。", - "origin": [ - 308.57000732421875, - 635.1400146484375 - ], - "bbox": [ - 308.57000732421875, - 623.4585571289062, - 535.8999633789062, - 638.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 623.4585571289062, - 535.8999633789062, - 638.0294189453125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 21, - "type": 0, - "bbox": [ - 308.57000732421875, - 654.6585083007812, - 498.8467102050781, - 669.2293701171875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "各项设置的参数见高频序列输出设置表 ", - "origin": [ - 308.57000732421875, - 666.3399658203125 - ], - "bbox": [ - 308.57000732421875, - 654.6585083007812, - 498.8467102050781, - 669.2293701171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 654.6585083007812, - 498.8467102050781, - 669.2293701171875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 22, - "type": 0, - "bbox": [ - 59.66400146484375, - 686.4585571289062, - 539.0481567382812, - 701.0294189453125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "startdate ", - "origin": [ - 59.66400146484375, - 698.1400146484375 - ], - "bbox": [ - 59.66400146484375, - 686.4585571289062, - 109.96671295166016, - 701.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 59.66400146484375, - 686.4585571289062, - 109.96671295166016, - 701.0294189453125 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "开始时间 ", - "origin": [ - 156.74000549316406, - 698.1400146484375 - ], - "bbox": [ - 156.74000549316406, - 686.4585571289062, - 204.07672119140625, - 701.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.74000549316406, - 686.4585571289062, - 204.07672119140625, - 701.0294189453125 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "字符串 ", - "origin": [ - 234.41000366210938, - 698.1400146484375 - ], - "bbox": [ - 234.41000366210938, - 686.4585571289062, - 270.6767272949219, - 701.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 234.41000366210938, - 686.4585571289062, - 270.6767272949219, - 701.0294189453125 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "开 始 时 间 , 时 间 格 式 为", - "origin": [ - 308.57000732421875, - 698.1400146484375 - ], - "bbox": [ - 308.57000732421875, - 686.4585571289062, - 452.32867431640625, - 701.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 686.4585571289062, - 452.32867431640625, - 701.0294189453125 - ] - }, - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "YYYY-MM-DD ", - "origin": [ - 461.3800048828125, - 698.1400146484375 - ], - "bbox": [ - 461.3800048828125, - 686.4585571289062, - 539.0481567382812, - 701.0294189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 461.3800048828125, - 686.4585571289062, - 539.0481567382812, - 701.0294189453125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 23, - "type": 0, - "bbox": [ - 308.57000732421875, - 717.6585083007812, - 512.5267333984375, - 732.2293701171875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "HH:MM:SS,例如 2019-12-10 09:30:00 ", - "origin": [ - 308.57000732421875, - 729.3399658203125 - ], - "bbox": [ - 308.57000732421875, - 717.6585083007812, - 512.5267333984375, - 732.2293701171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 308.57000732421875, - 717.6585083007812, - 512.5267333984375, - 732.2293701171875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "同花顺数据接口使用说明 ", - "origin": [ - 248.2100067138672, - 53.63995361328125 - ], - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.3200073242188, - 841.9199829101562 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\344\270\255\346\226\207_\345\220\214\350\212\261\351\241\272\346\225\260\346\215\256\346\216\245\345\217\243\347\224\250\346\210\267\346\211\213\345\206\214-windows-Python_4_\346\256\265\350\220\275_\345\233\276\347\211\207.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\344\270\255\346\226\207_\345\220\214\350\212\261\351\241\272\346\225\260\346\215\256\346\216\245\345\217\243\347\224\250\346\210\267\346\211\213\345\206\214-windows-Python_4_\346\256\265\350\220\275_\345\233\276\347\211\207.pdf/preproc_out.json" deleted file mode 100644 index ba23281a4..000000000 --- "a/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\344\270\255\346\226\207_\345\220\214\350\212\261\351\241\272\346\225\260\346\215\256\346\216\245\345\217\243\347\224\250\346\210\267\346\211\213\345\206\214-windows-Python_4_\346\256\265\350\220\275_\345\233\276\347\211\207.pdf/preproc_out.json" +++ /dev/null @@ -1,1990 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 98.93720245361328, - 361.2389221191406, - 126.53228759765625 - ], - "lines": [ - { - "spans": [ - { - "size": 20.040000915527344, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "1.", - "origin": [ - 54.0, - 120.3800048828125 - ], - "bbox": [ - 54.0, - 99.17556762695312, - 72.08432006835938, - 125.62484741210938 - ] - }, - { - "size": 20.040000915527344, - "flags": 16, - "font": "Arial,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 72.02400207519531, - 120.3800048828125 - ], - "bbox": [ - 72.02400207519531, - 98.93720245361328, - 77.59512329101562, - 126.53228759765625 - ] - }, - { - "size": 20.040000915527344, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "同花顺数据接口编程环境的安装 ", - "origin": [ - 75.26399993896484, - 120.3800048828125 - ], - "bbox": [ - 75.26399993896484, - 99.17556762695312, - 361.2389221191406, - 125.62484741210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 98.93720245361328, - 361.2389221191406, - 126.53228759765625 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 54.0, - 157.1828155517578, - 324.74371337890625, - 179.15972900390625 - ], - "lines": [ - { - "spans": [ - { - "size": 15.960000038146973, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "1.1.", - "origin": [ - 54.0, - 174.260009765625 - ], - "bbox": [ - 54.0, - 157.37265014648438, - 82.79612731933594, - 178.43704223632812 - ] - }, - { - "size": 15.960000038146973, - "flags": 16, - "font": "Arial,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 82.94400024414062, - 174.260009765625 - ], - "bbox": [ - 82.94400024414062, - 157.1828155517578, - 87.3808822631836, - 179.15972900390625 - ] - }, - { - "size": 15.960000038146973, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "同花顺数据接口对系统环境要求 ", - "origin": [ - 96.02400207519531, - 174.260009765625 - ], - "bbox": [ - 96.02400207519531, - 157.37265014648438, - 324.74371337890625, - 178.43704223632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 157.1828155517578, - 324.74371337890625, - 179.15972900390625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 78.02400207519531, - 204.3920135498047, - 311.5967102050781, - 219.56097412109375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "1)", - "origin": [ - 78.02400207519531, - 216.260009765625 - ], - "bbox": [ - 78.02400207519531, - 204.57852172851562, - 88.19123077392578, - 219.14938354492188 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "Arial", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 88.10399627685547, - 216.260009765625 - ], - "bbox": [ - 88.10399627685547, - 204.3920135498047, - 91.1731185913086, - 219.56097412109375 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Windows 系统,支持 32 位和 64 位系统; ", - "origin": [ - 99.02400207519531, - 216.260009765625 - ], - "bbox": [ - 99.02400207519531, - 204.57852172851562, - 311.5967102050781, - 219.14938354492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.02400207519531, - 204.3920135498047, - 311.5967102050781, - 219.56097412109375 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 78.02400207519531, - 235.5919647216797, - 355.2967224121094, - 250.76092529296875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "2)", - "origin": [ - 78.02400207519531, - 247.4599609375 - ], - "bbox": [ - 78.02400207519531, - 235.77847290039062, - 88.19123077392578, - 250.34933471679688 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "Arial", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 88.10399627685547, - 247.4599609375 - ], - "bbox": [ - 88.10399627685547, - 235.5919647216797, - 91.1731185913086, - 250.76092529296875 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "安装时因为要写注册表,因此需要系统管理员权限; ", - "origin": [ - 99.02400207519531, - 247.4599609375 - ], - "bbox": [ - 99.02400207519531, - 235.77847290039062, - 355.2967224121094, - 250.34933471679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.02400207519531, - 235.5919647216797, - 355.2967224121094, - 250.76092529296875 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 78.02400207519531, - 266.8219909667969, - 541.537109375, - 281.990966796875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "3)", - "origin": [ - 78.02400207519531, - 278.69000244140625 - ], - "bbox": [ - 78.02400207519531, - 267.0085144042969, - 88.19123077392578, - 281.5793762207031 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "Arial", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 88.10399627685547, - 278.69000244140625 - ], - "bbox": [ - 88.10399627685547, - 266.8219909667969, - 91.1731185913086, - 281.990966796875 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Python 语言开发环境要求:Python2.7.0 或者 Python3.5.1 的 32 位&64 位及以上的各个", - "origin": [ - 99.02400207519531, - 278.69000244140625 - ], - "bbox": [ - 99.02400207519531, - 267.0085144042969, - 541.537109375, - 281.5793762207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.02400207519531, - 266.8219909667969, - 541.537109375, - 281.990966796875 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 99.02400207519531, - 298.2084655761719, - 175.24671936035156, - 312.7793273925781 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Python 版本; ", - "origin": [ - 99.02400207519531, - 309.88995361328125 - ], - "bbox": [ - 99.02400207519531, - 298.2084655761719, - 175.24671936035156, - 312.7793273925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.02400207519531, - 298.2084655761719, - 175.24671936035156, - 312.7793273925781 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 54.0, - 329.802978515625, - 56.93390655517578, - 343.95172119140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.5600004196167, - "flags": 0, - "font": "Arial Unicode MS", - "color": 0, - "ascender": 1.06884765625, - "descender": -0.27099609375, - "text": " ", - "origin": [ - 54.0, - 341.0899963378906 - ], - "bbox": [ - 54.0, - 329.802978515625, - 56.93390655517578, - 343.95172119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 329.802978515625, - 56.93390655517578, - 343.95172119140625 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 54.0, - 370.332763671875, - 275.76373291015625, - 392.3096923828125 - ], - "lines": [ - { - "spans": [ - { - "size": 15.960000038146973, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "1.2.", - "origin": [ - 54.0, - 387.40997314453125 - ], - "bbox": [ - 54.0, - 370.5226135253906, - 82.79612731933594, - 391.5870056152344 - ] - }, - { - "size": 15.960000038146973, - "flags": 16, - "font": "Arial,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 82.94400024414062, - 387.40997314453125 - ], - "bbox": [ - 82.94400024414062, - 370.332763671875, - 87.3808822631836, - 392.3096923828125 - ] - }, - { - "size": 15.960000038146973, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Windows 下的环境安装 ", - "origin": [ - 96.02400207519531, - 387.40997314453125 - ], - "bbox": [ - 96.02400207519531, - 370.5226135253906, - 275.76373291015625, - 391.5870056152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.332763671875, - 275.76373291015625, - 392.3096923828125 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 75.02400207519531, - 417.8484802246094, - 518.2867431640625, - 432.4193420410156 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "在脚本中使用数据接口相关函数提取数据之前,我们需要根据编程环境安装相关的环境包。 ", - "origin": [ - 75.02400207519531, - 429.52996826171875 - ], - "bbox": [ - 75.02400207519531, - 417.8484802246094, - 518.2867431640625, - 432.4193420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.02400207519531, - 417.8484802246094, - 518.2867431640625, - 432.4193420410156 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 75.02400207519531, - 449.0684814453125, - 541.453125, - 463.63934326171875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "当您首次使用超级指令时,系统会自动打开环境安装工具(如下图)。如果系统询问是否要允许该", - "origin": [ - 75.02400207519531, - 460.7499694824219 - ], - "bbox": [ - 75.02400207519531, - 449.0684814453125, - 541.453125, - 463.63934326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.02400207519531, - 449.0684814453125, - 541.453125, - 463.63934326171875 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 54.0, - 480.26849365234375, - 177.74720764160156, - 494.83935546875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "文件,请点击“运行”。", - "origin": [ - 54.0, - 491.9499816894531 - ], - "bbox": [ - 54.0, - 480.26849365234375, - 175.07565307617188, - 494.83935546875 - ] - }, - { - "size": 9.960000038146973, - "flags": 0, - "font": "Arial Unicode MS", - "color": 0, - "ascender": 1.06884765625, - "descender": -0.27099609375, - "text": " ", - "origin": [ - 174.97999572753906, - 491.9499816894531 - ], - "bbox": [ - 174.97999572753906, - 481.30426025390625, - 177.74720764160156, - 494.64910888671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.26849365234375, - 177.74720764160156, - 494.83935546875 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 400.3900146484375, - 631.9342041015625, - 403.1572265625, - 645.279052734375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.960000038146973, - "flags": 0, - "font": "Arial Unicode MS", - "color": 0, - "ascender": 1.06884765625, - "descender": -0.27099609375, - "text": " ", - "origin": [ - 400.3900146484375, - 642.5799560546875 - ], - "bbox": [ - 400.3900146484375, - 631.9342041015625, - 403.1572265625, - 645.279052734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.3900146484375, - 631.9342041015625, - 403.1572265625, - 645.279052734375 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 75.02400207519531, - 651.8984985351562, - 537.0039672851562, - 666.4693603515625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "运行环境初始化工具后,系统会询问您需要安装的环境的相关编程语言。请选择您将来会使用的", - "origin": [ - 75.02400207519531, - 663.5799560546875 - ], - "bbox": [ - 75.02400207519531, - 651.8984985351562, - 537.0039672851562, - 666.4693603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.02400207519531, - 651.8984985351562, - 537.0039672851562, - 666.4693603515625 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 54.0, - 683.0985107421875, - 287.81719970703125, - 697.6693725585938 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "所有编程语言的环境(可以多选)并点击确定。", - "origin": [ - 54.0, - 694.7799682617188 - ], - "bbox": [ - 54.0, - 683.0985107421875, - 285.1112976074219, - 697.6693725585938 - ] - }, - { - "size": 9.960000038146973, - "flags": 0, - "font": "Arial Unicode MS", - "color": 0, - "ascender": 1.06884765625, - "descender": -0.27099609375, - "text": " ", - "origin": [ - 285.04998779296875, - 694.7799682617188 - ], - "bbox": [ - 285.04998779296875, - 684.1342163085938, - 287.81719970703125, - 697.4790649414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 683.0985107421875, - 287.81719970703125, - 697.6693725585938 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 194, - 504, - 400, - 642 - ], - "image_path": "images/0_194_504_400_642.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 44.11700439453125, - 595.3200073242188, - 494.83935546875 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 194, - 504, - 400, - 645.279052734375 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 400.3900146484375, - 504, - 403.1572265625, - 645.279052734375 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 651.8984985351562, - 595.3200073242188, - 697.6693725585938 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "同花顺数据接口使用说明 ", - "origin": [ - 248.2100067138672, - 53.63995361328125 - ], - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 54.0, - 98.93720245361328, - 361.2389221191406, - 126.53228759765625 - ], - "lines": [ - { - "spans": [ - { - "size": 20.040000915527344, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "1.", - "origin": [ - 54.0, - 120.3800048828125 - ], - "bbox": [ - 54.0, - 99.17556762695312, - 72.08432006835938, - 125.62484741210938 - ] - }, - { - "size": 20.040000915527344, - "flags": 16, - "font": "Arial,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 72.02400207519531, - 120.3800048828125 - ], - "bbox": [ - 72.02400207519531, - 98.93720245361328, - 77.59512329101562, - 126.53228759765625 - ] - }, - { - "size": 20.040000915527344, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "同花顺数据接口编程环境的安装 ", - "origin": [ - 75.26399993896484, - 120.3800048828125 - ], - "bbox": [ - 75.26399993896484, - 99.17556762695312, - 361.2389221191406, - 125.62484741210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 98.93720245361328, - 361.2389221191406, - 126.53228759765625 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 54.0, - 157.1828155517578, - 324.74371337890625, - 179.15972900390625 - ], - "lines": [ - { - "spans": [ - { - "size": 15.960000038146973, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "1.1.", - "origin": [ - 54.0, - 174.260009765625 - ], - "bbox": [ - 54.0, - 157.37265014648438, - 82.79612731933594, - 178.43704223632812 - ] - }, - { - "size": 15.960000038146973, - "flags": 16, - "font": "Arial,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 82.94400024414062, - 174.260009765625 - ], - "bbox": [ - 82.94400024414062, - 157.1828155517578, - 87.3808822631836, - 179.15972900390625 - ] - }, - { - "size": 15.960000038146973, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "同花顺数据接口对系统环境要求 ", - "origin": [ - 96.02400207519531, - 174.260009765625 - ], - "bbox": [ - 96.02400207519531, - 157.37265014648438, - 324.74371337890625, - 178.43704223632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 157.1828155517578, - 324.74371337890625, - 179.15972900390625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 78.02400207519531, - 204.3920135498047, - 311.5967102050781, - 219.56097412109375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "1)", - "origin": [ - 78.02400207519531, - 216.260009765625 - ], - "bbox": [ - 78.02400207519531, - 204.57852172851562, - 88.19123077392578, - 219.14938354492188 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "Arial", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 88.10399627685547, - 216.260009765625 - ], - "bbox": [ - 88.10399627685547, - 204.3920135498047, - 91.1731185913086, - 219.56097412109375 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Windows 系统,支持 32 位和 64 位系统; ", - "origin": [ - 99.02400207519531, - 216.260009765625 - ], - "bbox": [ - 99.02400207519531, - 204.57852172851562, - 311.5967102050781, - 219.14938354492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.02400207519531, - 204.3920135498047, - 311.5967102050781, - 219.56097412109375 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 78.02400207519531, - 235.5919647216797, - 355.2967224121094, - 250.76092529296875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "2)", - "origin": [ - 78.02400207519531, - 247.4599609375 - ], - "bbox": [ - 78.02400207519531, - 235.77847290039062, - 88.19123077392578, - 250.34933471679688 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "Arial", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 88.10399627685547, - 247.4599609375 - ], - "bbox": [ - 88.10399627685547, - 235.5919647216797, - 91.1731185913086, - 250.76092529296875 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "安装时因为要写注册表,因此需要系统管理员权限; ", - "origin": [ - 99.02400207519531, - 247.4599609375 - ], - "bbox": [ - 99.02400207519531, - 235.77847290039062, - 355.2967224121094, - 250.34933471679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.02400207519531, - 235.5919647216797, - 355.2967224121094, - 250.76092529296875 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 78.02400207519531, - 266.8219909667969, - 541.537109375, - 281.990966796875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "3)", - "origin": [ - 78.02400207519531, - 278.69000244140625 - ], - "bbox": [ - 78.02400207519531, - 267.0085144042969, - 88.19123077392578, - 281.5793762207031 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "Arial", - "color": 0, - "ascender": 1.0750000476837158, - "descender": -0.29899999499320984, - "text": " ", - "origin": [ - 88.10399627685547, - 278.69000244140625 - ], - "bbox": [ - 88.10399627685547, - 266.8219909667969, - 91.1731185913086, - 281.990966796875 - ] - }, - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Python 语言开发环境要求:Python2.7.0 或者 Python3.5.1 的 32 位&64 位及以上的各个", - "origin": [ - 99.02400207519531, - 278.69000244140625 - ], - "bbox": [ - 99.02400207519531, - 267.0085144042969, - 541.537109375, - 281.5793762207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.02400207519531, - 266.8219909667969, - 541.537109375, - 281.990966796875 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 99.02400207519531, - 298.2084655761719, - 175.24671936035156, - 312.7793273925781 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Python 版本; ", - "origin": [ - 99.02400207519531, - 309.88995361328125 - ], - "bbox": [ - 99.02400207519531, - 298.2084655761719, - 175.24671936035156, - 312.7793273925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.02400207519531, - 298.2084655761719, - 175.24671936035156, - 312.7793273925781 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 54.0, - 329.802978515625, - 56.93390655517578, - 343.95172119140625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.5600004196167, - "flags": 0, - "font": "Arial Unicode MS", - "color": 0, - "ascender": 1.06884765625, - "descender": -0.27099609375, - "text": " ", - "origin": [ - 54.0, - 341.0899963378906 - ], - "bbox": [ - 54.0, - 329.802978515625, - 56.93390655517578, - 343.95172119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 329.802978515625, - 56.93390655517578, - 343.95172119140625 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 54.0, - 370.332763671875, - 275.76373291015625, - 392.3096923828125 - ], - "lines": [ - { - "spans": [ - { - "size": 15.960000038146973, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "1.2.", - "origin": [ - 54.0, - 387.40997314453125 - ], - "bbox": [ - 54.0, - 370.5226135253906, - 82.79612731933594, - 391.5870056152344 - ] - }, - { - "size": 15.960000038146973, - "flags": 16, - "font": "Arial,Bold", - "color": 0, - "ascender": 1.0700000524520874, - "descender": -0.3070000112056732, - "text": " ", - "origin": [ - 82.94400024414062, - 387.40997314453125 - ], - "bbox": [ - 82.94400024414062, - 370.332763671875, - 87.3808822631836, - 392.3096923828125 - ] - }, - { - "size": 15.960000038146973, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "Windows 下的环境安装 ", - "origin": [ - 96.02400207519531, - 387.40997314453125 - ], - "bbox": [ - 96.02400207519531, - 370.5226135253906, - 275.76373291015625, - 391.5870056152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 370.332763671875, - 275.76373291015625, - 392.3096923828125 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 75.02400207519531, - 417.8484802246094, - 518.2867431640625, - 432.4193420410156 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "在脚本中使用数据接口相关函数提取数据之前,我们需要根据编程环境安装相关的环境包。 ", - "origin": [ - 75.02400207519531, - 429.52996826171875 - ], - "bbox": [ - 75.02400207519531, - 417.8484802246094, - 518.2867431640625, - 432.4193420410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.02400207519531, - 417.8484802246094, - 518.2867431640625, - 432.4193420410156 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 75.02400207519531, - 449.0684814453125, - 541.453125, - 463.63934326171875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "当您首次使用超级指令时,系统会自动打开环境安装工具(如下图)。如果系统询问是否要允许该", - "origin": [ - 75.02400207519531, - 460.7499694824219 - ], - "bbox": [ - 75.02400207519531, - 449.0684814453125, - 541.453125, - 463.63934326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.02400207519531, - 449.0684814453125, - 541.453125, - 463.63934326171875 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 54.0, - 480.26849365234375, - 177.74720764160156, - 494.83935546875 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "文件,请点击“运行”。", - "origin": [ - 54.0, - 491.9499816894531 - ], - "bbox": [ - 54.0, - 480.26849365234375, - 175.07565307617188, - 494.83935546875 - ] - }, - { - "size": 9.960000038146973, - "flags": 0, - "font": "Arial Unicode MS", - "color": 0, - "ascender": 1.06884765625, - "descender": -0.27099609375, - "text": " ", - "origin": [ - 174.97999572753906, - 491.9499816894531 - ], - "bbox": [ - 174.97999572753906, - 481.30426025390625, - 177.74720764160156, - 494.64910888671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 480.26849365234375, - 177.74720764160156, - 494.83935546875 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 400.3900146484375, - 631.9342041015625, - 403.1572265625, - 645.279052734375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.960000038146973, - "flags": 0, - "font": "Arial Unicode MS", - "color": 0, - "ascender": 1.06884765625, - "descender": -0.27099609375, - "text": " ", - "origin": [ - 400.3900146484375, - 642.5799560546875 - ], - "bbox": [ - 400.3900146484375, - 631.9342041015625, - 403.1572265625, - 645.279052734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 400.3900146484375, - 631.9342041015625, - 403.1572265625, - 645.279052734375 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 75.02400207519531, - 651.8984985351562, - 537.0039672851562, - 666.4693603515625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "运行环境初始化工具后,系统会询问您需要安装的环境的相关编程语言。请选择您将来会使用的", - "origin": [ - 75.02400207519531, - 663.5799560546875 - ], - "bbox": [ - 75.02400207519531, - 651.8984985351562, - 537.0039672851562, - 666.4693603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 75.02400207519531, - 651.8984985351562, - 537.0039672851562, - 666.4693603515625 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 54.0, - 683.0985107421875, - 287.81719970703125, - 697.6693725585938 - ], - "lines": [ - { - "spans": [ - { - "size": 11.039999961853027, - "flags": 0, - "font": "微软雅黑", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "所有编程语言的环境(可以多选)并点击确定。", - "origin": [ - 54.0, - 694.7799682617188 - ], - "bbox": [ - 54.0, - 683.0985107421875, - 285.1112976074219, - 697.6693725585938 - ] - }, - { - "size": 9.960000038146973, - "flags": 0, - "font": "Arial Unicode MS", - "color": 0, - "ascender": 1.06884765625, - "descender": -0.27099609375, - "text": " ", - "origin": [ - 285.04998779296875, - 694.7799682617188 - ], - "bbox": [ - 285.04998779296875, - 684.1342163085938, - 287.81719970703125, - 697.4790649414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.0, - 683.0985107421875, - 287.81719970703125, - 697.6693725585938 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 0, - "type": 0, - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 16, - "font": "微软雅黑,Bold", - "color": 0, - "ascender": 1.05810546875, - "descender": -0.26171875, - "text": "同花顺数据接口使用说明 ", - "origin": [ - 248.2100067138672, - 53.63995361328125 - ], - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 248.2100067138672, - 44.11700439453125, - 349.9106750488281, - 55.99542236328125 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.3200073242188, - 841.9199829101562 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\350\256\272\346\226\207-\345\233\276\343\200\201\350\241\250\343\200\201\345\205\254\345\274\217_14_\345\260\221\351\207\217\346\226\207\345\255\227_\345\217\214\345\210\227\345\233\276\347\211\207.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\350\256\272\346\226\207-\345\233\276\343\200\201\350\241\250\343\200\201\345\205\254\345\274\217_14_\345\260\221\351\207\217\346\226\207\345\255\227_\345\217\214\345\210\227\345\233\276\347\211\207.pdf/preproc_out.json" deleted file mode 100644 index acb8c705b..000000000 --- "a/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\350\256\272\346\226\207-\345\233\276\343\200\201\350\241\250\343\200\201\345\205\254\345\274\217_14_\345\260\221\351\207\217\346\226\207\345\255\227_\345\217\214\345\210\227\345\233\276\347\211\207.pdf/preproc_out.json" +++ /dev/null @@ -1,1541 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 352.5272216796875, - 87.14205169677734 - ], - "lines": [ - { - "spans": [ - { - "size": 17.21540069580078, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Appendix: Results for All Stocks", - "origin": [ - 70.86599731445312, - 82.82098388671875 - ], - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 352.5272216796875, - 87.14205169677734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 352.5272216796875, - 87.14205169677734 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 70.86599731445312, - 96.43633270263672, - 318.9691162109375, - 110.79688262939453 - ], - "lines": [ - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Optimal Strategy on June 12, 2017", - "origin": [ - 70.86599731445312, - 107.19598388671875 - ], - "bbox": [ - 70.86599731445312, - 96.43633270263672, - 318.9691162109375, - 110.79688262939453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 96.43633270263672, - 318.9691162109375, - 110.79688262939453 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 258.81500244140625, - 703.692626953125, - 353.17724609375, - 715.6597290039062 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Figure 8:", - "origin": [ - 258.81500244140625, - 712.6589965820312 - ], - "bbox": [ - 258.81500244140625, - 703.692626953125, - 311.78851318359375, - 715.6597290039062 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " AMZN", - "origin": [ - 311.78851318359375, - 712.6589965820312 - ], - "bbox": [ - 311.78851318359375, - 703.692626953125, - 353.17724609375, - 715.6597290039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.81500244140625, - 703.692626953125, - 353.17724609375, - 715.6597290039062 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 300.1470031738281, - 742.0555419921875, - 311.8511657714844, - 754.022705078125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "14", - "origin": [ - 300.1470031738281, - 751.02197265625 - ], - "bbox": [ - 300.1470031738281, - 742.0555419921875, - 311.8511657714844, - 754.022705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 300.1470031738281, - 742.0555419921875, - 311.8511657714844, - 754.022705078125 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 93.6, - 138.72, - 491.99999999999994, - 414.4307556152344 - ], - "image_path": "images/0_93_138_491_414.jpg" - }, - { - "bbox": [ - 101.27999999999999, - 428, - 508, - 701.76 - ], - "image_path": "images/0_101_428_508_701.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 69.90943145751953, - 612.0, - 754.022705078125 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 352.5272216796875, - 87.14205169677734 - ], - "lines": [ - { - "spans": [ - { - "size": 17.21540069580078, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Appendix: Results for All Stocks", - "origin": [ - 70.86599731445312, - 82.82098388671875 - ], - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 352.5272216796875, - 87.14205169677734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 352.5272216796875, - 87.14205169677734 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 70.86599731445312, - 96.43633270263672, - 318.9691162109375, - 110.79688262939453 - ], - "lines": [ - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Optimal Strategy on June 12, 2017", - "origin": [ - 70.86599731445312, - 107.19598388671875 - ], - "bbox": [ - 70.86599731445312, - 96.43633270263672, - 318.9691162109375, - 110.79688262939453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 96.43633270263672, - 318.9691162109375, - 110.79688262939453 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 169.5970001220703, - 249.4862060546875, - 449.02734375, - 260.3952941894531 - ], - "lines": [ - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(a)", - "origin": [ - 169.5970001220703, - 257.66802978515625 - ], - "bbox": [ - 169.5970001220703, - 249.4862060546875, - 185.44793701171875, - 260.3952941894531 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " P&L", - "origin": [ - 185.44793701171875, - 257.66802978515625 - ], - "bbox": [ - 185.44793701171875, - 251.69046020507812, - 207.2648468017578, - 259.6605529785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.5970001220703, - 249.4862060546875, - 207.2648468017578, - 260.3952941894531 - ] - }, - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(b)", - "origin": [ - 398.0950012207031, - 257.66802978515625 - ], - "bbox": [ - 398.0950012207031, - 249.4862060546875, - 414.81866455078125, - 260.3952941894531 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Position", - "origin": [ - 414.81866455078125, - 257.66802978515625 - ], - "bbox": [ - 414.81866455078125, - 251.69046020507812, - 449.02734375, - 259.6605529785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.0950012207031, - 249.4862060546875, - 449.02734375, - 260.3952941894531 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 152.4810028076172, - 379.33416748046875, - 477.43707275390625, - 390.2432556152344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(c)", - "origin": [ - 152.4810028076172, - 387.5159912109375 - ], - "bbox": [ - 152.4810028076172, - 379.33416748046875, - 167.8083038330078, - 390.2432556152344 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Quoted Prices", - "origin": [ - 167.8083038330078, - 387.5159912109375 - ], - "bbox": [ - 167.8083038330078, - 381.5384216308594, - 224.36753845214844, - 389.5085144042969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.4810028076172, - 379.33416748046875, - 224.36753845214844, - 390.2432556152344 - ] - }, - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(d)", - "origin": [ - 369.6619873046875, - 387.5159912109375 - ], - "bbox": [ - 369.6619873046875, - 379.33416748046875, - 386.3856506347656, - 390.2432556152344 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Optimal bid-ask spread", - "origin": [ - 386.3856506347656, - 387.5159912109375 - ], - "bbox": [ - 386.3856506347656, - 381.5384216308594, - 477.43707275390625, - 389.5085144042969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 369.6619873046875, - 379.33416748046875, - 477.43707275390625, - 390.2432556152344 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 260.115966796875, - 401.4635925292969, - 351.8719787597656, - 413.4307556152344 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Figure 7:", - "origin": [ - 260.115966796875, - 410.42999267578125 - ], - "bbox": [ - 260.115966796875, - 401.4635925292969, - 313.0894775390625, - 413.4307556152344 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " AAPL", - "origin": [ - 313.0894775390625, - 410.42999267578125 - ], - "bbox": [ - 313.0894775390625, - 401.4635925292969, - 351.8719787597656, - 413.4307556152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.115966796875, - 401.4635925292969, - 351.8719787597656, - 413.4307556152344 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 169.5970001220703, - 548.8792114257812, - 449.02734375, - 559.788330078125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(a)", - "origin": [ - 169.5970001220703, - 557.06103515625 - ], - "bbox": [ - 169.5970001220703, - 548.8792114257812, - 185.44793701171875, - 559.788330078125 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " P&L", - "origin": [ - 185.44793701171875, - 557.06103515625 - ], - "bbox": [ - 185.44793701171875, - 551.0834350585938, - 207.2648468017578, - 559.0535888671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.5970001220703, - 548.8792114257812, - 207.2648468017578, - 559.788330078125 - ] - }, - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(b)", - "origin": [ - 398.0950012207031, - 557.06103515625 - ], - "bbox": [ - 398.0950012207031, - 548.8792114257812, - 414.81866455078125, - 559.788330078125 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Position", - "origin": [ - 414.81866455078125, - 557.06103515625 - ], - "bbox": [ - 414.81866455078125, - 551.0834350585938, - 449.02734375, - 559.0535888671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.0950012207031, - 548.8792114257812, - 449.02734375, - 559.788330078125 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 152.4810028076172, - 681.5631713867188, - 477.43707275390625, - 692.4722900390625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(c)", - "origin": [ - 152.4810028076172, - 689.7449951171875 - ], - "bbox": [ - 152.4810028076172, - 681.5631713867188, - 167.8083038330078, - 692.4722900390625 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Quoted Prices", - "origin": [ - 167.8083038330078, - 689.7449951171875 - ], - "bbox": [ - 167.8083038330078, - 683.7673950195312, - 224.36753845214844, - 691.737548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.4810028076172, - 681.5631713867188, - 224.36753845214844, - 692.4722900390625 - ] - }, - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(d)", - "origin": [ - 369.6619873046875, - 689.7449951171875 - ], - "bbox": [ - 369.6619873046875, - 681.5631713867188, - 386.3856506347656, - 692.4722900390625 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Optimal bid-ask spread", - "origin": [ - 386.3856506347656, - 689.7449951171875 - ], - "bbox": [ - 386.3856506347656, - 683.7673950195312, - 477.43707275390625, - 691.737548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 369.6619873046875, - 681.5631713867188, - 477.43707275390625, - 692.4722900390625 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 258.81500244140625, - 703.692626953125, - 353.17724609375, - 715.6597290039062 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Figure 8:", - "origin": [ - 258.81500244140625, - 712.6589965820312 - ], - "bbox": [ - 258.81500244140625, - 703.692626953125, - 311.78851318359375, - 715.6597290039062 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " AMZN", - "origin": [ - 311.78851318359375, - 712.6589965820312 - ], - "bbox": [ - 311.78851318359375, - 703.692626953125, - 353.17724609375, - 715.6597290039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.81500244140625, - 703.692626953125, - 353.17724609375, - 715.6597290039062 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 300.1470031738281, - 742.0555419921875, - 311.8511657714844, - 754.022705078125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "14", - "origin": [ - 300.1470031738281, - 751.02197265625 - ], - "bbox": [ - 300.1470031738281, - 742.0555419921875, - 311.8511657714844, - 754.022705078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 300.1470031738281, - 742.0555419921875, - 311.8511657714844, - 754.022705078125 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 2, - "type": 0, - "bbox": [ - 169.5970001220703, - 249.4862060546875, - 449.02734375, - 260.3952941894531 - ], - "lines": [ - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(a)", - "origin": [ - 169.5970001220703, - 257.66802978515625 - ], - "bbox": [ - 169.5970001220703, - 249.4862060546875, - 185.44793701171875, - 260.3952941894531 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " P&L", - "origin": [ - 185.44793701171875, - 257.66802978515625 - ], - "bbox": [ - 185.44793701171875, - 251.69046020507812, - 207.2648468017578, - 259.6605529785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.5970001220703, - 249.4862060546875, - 207.2648468017578, - 260.3952941894531 - ] - }, - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(b)", - "origin": [ - 398.0950012207031, - 257.66802978515625 - ], - "bbox": [ - 398.0950012207031, - 249.4862060546875, - 414.81866455078125, - 260.3952941894531 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Position", - "origin": [ - 414.81866455078125, - 257.66802978515625 - ], - "bbox": [ - 414.81866455078125, - 251.69046020507812, - 449.02734375, - 259.6605529785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.0950012207031, - 249.4862060546875, - 449.02734375, - 260.3952941894531 - ] - } - ], - "tag": "on-image" - }, - { - "number": 3, - "type": 0, - "bbox": [ - 152.4810028076172, - 379.33416748046875, - 477.43707275390625, - 390.2432556152344 - ], - "lines": [ - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(c)", - "origin": [ - 152.4810028076172, - 387.5159912109375 - ], - "bbox": [ - 152.4810028076172, - 379.33416748046875, - 167.8083038330078, - 390.2432556152344 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Quoted Prices", - "origin": [ - 167.8083038330078, - 387.5159912109375 - ], - "bbox": [ - 167.8083038330078, - 381.5384216308594, - 224.36753845214844, - 389.5085144042969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.4810028076172, - 379.33416748046875, - 224.36753845214844, - 390.2432556152344 - ] - }, - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(d)", - "origin": [ - 369.6619873046875, - 387.5159912109375 - ], - "bbox": [ - 369.6619873046875, - 379.33416748046875, - 386.3856506347656, - 390.2432556152344 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Optimal bid-ask spread", - "origin": [ - 386.3856506347656, - 387.5159912109375 - ], - "bbox": [ - 386.3856506347656, - 381.5384216308594, - 477.43707275390625, - 389.5085144042969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 369.6619873046875, - 379.33416748046875, - 477.43707275390625, - 390.2432556152344 - ] - } - ], - "tag": "on-image" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 260.115966796875, - 401.4635925292969, - 351.8719787597656, - 413.4307556152344 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Figure 7:", - "origin": [ - 260.115966796875, - 410.42999267578125 - ], - "bbox": [ - 260.115966796875, - 401.4635925292969, - 313.0894775390625, - 413.4307556152344 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " AAPL", - "origin": [ - 313.0894775390625, - 410.42999267578125 - ], - "bbox": [ - 313.0894775390625, - 401.4635925292969, - 351.8719787597656, - 413.4307556152344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 260.115966796875, - 401.4635925292969, - 351.8719787597656, - 413.4307556152344 - ] - } - ], - "tag": "on-image" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 169.5970001220703, - 548.8792114257812, - 449.02734375, - 559.788330078125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(a)", - "origin": [ - 169.5970001220703, - 557.06103515625 - ], - "bbox": [ - 169.5970001220703, - 548.8792114257812, - 185.44793701171875, - 559.788330078125 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " P&L", - "origin": [ - 185.44793701171875, - 557.06103515625 - ], - "bbox": [ - 185.44793701171875, - 551.0834350585938, - 207.2648468017578, - 559.0535888671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.5970001220703, - 548.8792114257812, - 207.2648468017578, - 559.788330078125 - ] - }, - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(b)", - "origin": [ - 398.0950012207031, - 557.06103515625 - ], - "bbox": [ - 398.0950012207031, - 548.8792114257812, - 414.81866455078125, - 559.788330078125 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Position", - "origin": [ - 414.81866455078125, - 557.06103515625 - ], - "bbox": [ - 414.81866455078125, - 551.0834350585938, - 449.02734375, - 559.0535888671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.0950012207031, - 548.8792114257812, - 449.02734375, - 559.788330078125 - ] - } - ], - "tag": "on-image" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 152.4810028076172, - 681.5631713867188, - 477.43707275390625, - 692.4722900390625 - ], - "lines": [ - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(c)", - "origin": [ - 152.4810028076172, - 689.7449951171875 - ], - "bbox": [ - 152.4810028076172, - 681.5631713867188, - 167.8083038330078, - 692.4722900390625 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Quoted Prices", - "origin": [ - 167.8083038330078, - 689.7449951171875 - ], - "bbox": [ - 167.8083038330078, - 683.7673950195312, - 224.36753845214844, - 691.737548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.4810028076172, - 681.5631713867188, - 224.36753845214844, - 692.4722900390625 - ] - }, - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(d)", - "origin": [ - 369.6619873046875, - 689.7449951171875 - ], - "bbox": [ - 369.6619873046875, - 681.5631713867188, - 386.3856506347656, - 692.4722900390625 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Optimal bid-ask spread", - "origin": [ - 386.3856506347656, - 689.7449951171875 - ], - "bbox": [ - 386.3856506347656, - 683.7673950195312, - 477.43707275390625, - 691.737548828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 369.6619873046875, - 681.5631713867188, - 477.43707275390625, - 692.4722900390625 - ] - } - ], - "tag": "on-image" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\350\256\272\346\226\207-\345\233\276\343\200\201\350\241\250\343\200\201\345\205\254\345\274\217_6_\345\215\225\345\210\227\346\226\207\345\255\227_\345\217\214\345\210\227\345\233\276\347\211\207.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\350\256\272\346\226\207-\345\233\276\343\200\201\350\241\250\343\200\201\345\205\254\345\274\217_6_\345\215\225\345\210\227\346\226\207\345\255\227_\345\217\214\345\210\227\345\233\276\347\211\207.pdf/preproc_out.json" deleted file mode 100644 index 6464c430e..000000000 --- "a/tests/assets/pre_proc_results/\347\272\257\345\215\225\345\210\227_\350\256\272\346\226\207-\345\233\276\343\200\201\350\241\250\343\200\201\345\205\254\345\274\217_6_\345\215\225\345\210\227\346\226\207\345\255\227_\345\217\214\345\210\227\345\233\276\347\211\207.pdf/preproc_out.json" +++ /dev/null @@ -1,3950 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 254.62322998046875, - 87.14205169677734 - ], - "lines": [ - { - "spans": [ - { - "size": 17.21540069580078, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "3", - "origin": [ - 70.86599731445312, - 82.82098388671875 - ], - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 80.54105377197266, - 87.14205169677734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 80.54105377197266, - 87.14205169677734 - ] - }, - { - "spans": [ - { - "size": 17.21540069580078, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Trading Simulator", - "origin": [ - 99.92559051513672, - 82.82098388671875 - ], - "bbox": [ - 99.92559051513672, - 69.90943145751953, - 254.62322998046875, - 87.14205169677734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.92559051513672, - 69.90943145751953, - 254.62322998046875, - 87.14205169677734 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 70.86599731445312, - 97.57760620117188, - 541.1954956054688, - 167.3277130126953 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "We build a trading simulator to assess our strategy. The principal constituent of the simulator", - "origin": [ - 70.86599731445312, - 106.54400634765625 - ], - "bbox": [ - 70.86599731445312, - 97.57760620117188, - 541.1954956054688, - 109.54476165771484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 97.57760620117188, - 541.1954956054688, - 109.54476165771484 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "is market order dynamics because as a market maker, we only use limit orders which are", - "origin": [ - 70.86599731445312, - 120.989990234375 - ], - "bbox": [ - 70.86599731445312, - 112.02359008789062, - 541.1715698242188, - 123.9907455444336 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 112.02359008789062, - 541.1715698242188, - 123.9907455444336 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "matched and filled by market orders. Given this model, we can simulate order executions", - "origin": [ - 70.86599731445312, - 135.43597412109375 - ], - "bbox": [ - 70.86599731445312, - 126.46957397460938, - 541.1595458984375, - 138.4367218017578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 126.46957397460938, - 541.1595458984375, - 138.4367218017578 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "and run our market making strategy. For simplicity, we make the following assumptions: 1)", - "origin": [ - 70.86599731445312, - 149.8809814453125 - ], - "bbox": [ - 70.86599731445312, - 140.91458129882812, - 541.1954956054688, - 152.88172912597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 140.91458129882812, - 541.1954956054688, - 152.88172912597656 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "No latency, 2) No price impact, and 3) No competition with other market makers.", - "origin": [ - 70.86599731445312, - 164.32696533203125 - ], - "bbox": [ - 70.86599731445312, - 155.36056518554688, - 492.39453125, - 167.3277130126953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 155.36056518554688, - 492.39453125, - 167.3277130126953 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 70.86599731445312, - 185.66729736328125, - 280.7078552246094, - 200.02783203125 - ], - "lines": [ - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "3.1", - "origin": [ - 70.86599731445312, - 196.42694091796875 - ], - "bbox": [ - 70.86599731445312, - 185.66729736328125, - 91.49583435058594, - 200.02783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 185.66729736328125, - 91.49583435058594, - 200.02783203125 - ] - }, - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Market Order Dynamics", - "origin": [ - 107.649658203125, - 196.42694091796875 - ], - "bbox": [ - 107.649658203125, - 185.66729736328125, - 280.7078552246094, - 200.02783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.649658203125, - 185.66729736328125, - 280.7078552246094, - 200.02783203125 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 70.86599731445312, - 207.06454467773438, - 541.195556640625, - 247.9236602783203 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Let", - "origin": [ - 70.86599731445312, - 216.03094482421875 - ], - "bbox": [ - 70.86599731445312, - 207.06454467773438, - 87.92607116699219, - 219.0316925048828 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " ξ", - "origin": [ - 87.92607116699219, - 216.03094482421875 - ], - "bbox": [ - 87.92607116699219, - 207.06454467773438, - 98.43186950683594, - 219.01974487304688 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " denote the depth of our quote in the order book.", - "origin": [ - 98.43186950683594, - 216.03094482421875 - ], - "bbox": [ - 98.43186950683594, - 207.06454467773438, - 367.8896789550781, - 219.0316925048828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 207.06454467773438, - 367.8896789550781, - 219.0316925048828 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "We use a Time-Inhomogeneous", - "origin": [ - 377.5733642578125, - 216.03094482421875 - ], - "bbox": [ - 377.5733642578125, - 207.06454467773438, - 541.168212890625, - 219.0316925048828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.5733642578125, - 207.06454467773438, - 541.168212890625, - 219.0316925048828 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Poisson Process to model the number of arrivals of market orders that are matched with the", - "origin": [ - 70.86599731445312, - 230.4769287109375 - ], - "bbox": [ - 70.86599731445312, - 221.51052856445312, - 541.195556640625, - 233.47767639160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 221.51052856445312, - 541.195556640625, - 233.47767639160156 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "limit order at the depth of", - "origin": [ - 70.86599731445312, - 244.92291259765625 - ], - "bbox": [ - 70.86599731445312, - 235.95651245117188, - 206.473876953125, - 247.9236602783203 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " ξ", - "origin": [ - 206.473876953125, - 244.92291259765625 - ], - "bbox": [ - 206.473876953125, - 235.95651245117188, - 215.4668731689453, - 247.91171264648438 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": ":", - "origin": [ - 216.05299377441406, - 244.92291259765625 - ], - "bbox": [ - 216.05299377441406, - 235.95651245117188, - 219.2928466796875, - 247.9236602783203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 235.95651245117188, - 219.2928466796875, - 247.9236602783203 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 238.87399291992188, - 252.1325225830078, - 317.85052490234375, - 297.33331298828125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "N", - "origin": [ - 238.87399291992188, - 278.21893310546875 - ], - "bbox": [ - 238.87399291992188, - 269.2525329589844, - 248.2468719482422, - 281.2077331542969 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "t", - "origin": [ - 248.24798583984375, - 280.0119323730469 - ], - "bbox": [ - 248.24798583984375, - 274.03436279296875, - 251.300537109375, - 282.00445556640625 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ∼", - "origin": [ - 251.300537109375, - 280.0119323730469 - ], - "bbox": [ - 251.300537109375, - 268.9536437988281, - 264.4141845703125, - 291.4889221191406 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Pois", - "origin": [ - 264.4141845703125, - 278.21893310546875 - ], - "bbox": [ - 264.4141845703125, - 269.2525329589844, - 292.0489196777344, - 281.2077331542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 238.87399291992188, - 268.9536437988281, - 292.0489196777344, - 291.4889221191406 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMEX10", - "color": 0, - "ascender": 0.7720000147819519, - "descender": -2.9600000381469727, - "text": "��", - "origin": [ - 294.0429992675781, - 261.3619384765625 - ], - "bbox": [ - 294.0429992675781, - 252.1325225830078, - 309.4781188964844, - 297.33331298828125 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " t", - "origin": [ - 309.4781188964844, - 261.9459228515625 - ], - "bbox": [ - 309.4781188964844, - 255.96835327148438, - 317.85052490234375, - 267.0934753417969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 294.0429992675781, - 252.1325225830078, - 317.85052490234375, - 297.33331298828125 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 309.4849853515625, - 252.1325225830078, - 373.1240539550781, - 296.74932861328125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "0", - "origin": [ - 309.4849853515625, - 289.011962890625 - ], - "bbox": [ - 309.4849853515625, - 283.0343933105469, - 313.71710205078125, - 291.0044860839844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 309.4849853515625, - 283.0343933105469, - 313.71710205078125, - 291.0044860839844 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "λ", - "origin": [ - 320.34698486328125, - 278.21893310546875 - ], - "bbox": [ - 320.34698486328125, - 269.2525329589844, - 327.17340087890625, - 281.2077331542969 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "(", - "origin": [ - 327.17498779296875, - 278.21893310546875 - ], - "bbox": [ - 327.17498779296875, - 269.2525329589844, - 331.71795654296875, - 281.2196960449219 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "s, ξ", - "origin": [ - 331.7279968261719, - 278.21893310546875 - ], - "bbox": [ - 331.7279968261719, - 269.2525329589844, - 347.592529296875, - 281.2077331542969 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": ")", - "origin": [ - 348.1759948730469, - 278.21893310546875 - ], - "bbox": [ - 348.1759948730469, - 269.2525329589844, - 352.7189636230469, - 281.2196960449219 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "ds", - "origin": [ - 352.72900390625, - 278.21893310546875 - ], - "bbox": [ - 352.72900390625, - 269.2525329589844, - 364.3255615234375, - 281.2077331542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.34698486328125, - 269.2525329589844, - 364.3255615234375, - 281.2196960449219 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMEX10", - "color": 0, - "ascender": 0.7720000147819519, - "descender": -2.9600000381469727, - "text": "�", - "origin": [ - 364.32501220703125, - 261.3619384765625 - ], - "bbox": [ - 364.32501220703125, - 252.1325225830078, - 373.1240539550781, - 296.74932861328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.32501220703125, - 252.1325225830078, - 373.1240539550781, - 296.74932861328125 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 70.86599731445312, - 301.863525390625, - 541.1835327148438, - 328.2767028808594 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Analogous to the market making model, the intensity function is assumed to be a product", - "origin": [ - 70.86599731445312, - 310.8299255371094 - ], - "bbox": [ - 70.86599731445312, - 301.863525390625, - 541.1835327148438, - 313.8306884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 301.863525390625, - 541.1835327148438, - 313.8306884765625 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "of time and depth components in the following form:", - "origin": [ - 70.86599731445312, - 325.27593994140625 - ], - "bbox": [ - 70.86599731445312, - 316.3095397949219, - 341.4840087890625, - 328.2767028808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 316.3095397949219, - 341.4840087890625, - 328.2767028808594 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 266.2590026855469, - 340.5322265625, - 344.928955078125, - 355.46246337890625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "λ", - "origin": [ - 266.2590026855469, - 351.67694091796875 - ], - "bbox": [ - 266.2590026855469, - 342.7105407714844, - 273.0854187011719, - 354.6657409667969 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "(", - "origin": [ - 273.0880126953125, - 351.67694091796875 - ], - "bbox": [ - 273.0880126953125, - 342.7105407714844, - 277.6309814453125, - 354.6777038574219 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "t, ξ", - "origin": [ - 277.6400146484375, - 351.67694091796875 - ], - "bbox": [ - 277.6400146484375, - 342.7105407714844, - 292.225341796875, - 354.6657409667969 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": ") =", - "origin": [ - 292.802001953125, - 351.67694091796875 - ], - "bbox": [ - 292.802001953125, - 342.7105407714844, - 309.77838134765625, - 354.6777038574219 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " α", - "origin": [ - 309.77838134765625, - 351.67694091796875 - ], - "bbox": [ - 309.77838134765625, - 342.7105407714844, - 320.5371398925781, - 354.6657409667969 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "t", - "origin": [ - 320.5460205078125, - 353.4699401855469 - ], - "bbox": [ - 320.5460205078125, - 347.49237060546875, - 323.59857177734375, - 355.46246337890625 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "e", - "origin": [ - 324.1020202636719, - 351.67694091796875 - ], - "bbox": [ - 324.1020202636719, - 342.7105407714844, - 329.5177307128906, - 354.6657409667969 - ] - }, - { - "size": 7.970099925994873, - "flags": 7, - "font": "CMSY8", - "color": 0, - "ascender": 0.7789999842643738, - "descender": -0.9549999833106995, - "text": "−", - "origin": [ - 329.52801513671875, - 346.7409362792969 - ], - "bbox": [ - 329.52801513671875, - 340.5322265625, - 336.111328125, - 354.3523864746094 - ] - }, - { - "size": 7.970099925994873, - "flags": 7, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "µξ", - "origin": [ - 336.114013671875, - 346.7409362792969 - ], - "bbox": [ - 336.114013671875, - 340.76336669921875, - 344.928955078125, - 348.73345947265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.2590026855469, - 340.5322265625, - 344.928955078125, - 355.46246337890625 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 70.86602783203125, - 369.1115417480469, - 541.2076416015625, - 438.86175537109375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "A piece-wise linear bathtub shape is adopted for the time component", - "origin": [ - 70.86602783203125, - 378.07794189453125 - ], - "bbox": [ - 70.86602783203125, - 369.1115417480469, - 412.8326110839844, - 381.0787048339844 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " α", - "origin": [ - 412.8326110839844, - 378.07794189453125 - ], - "bbox": [ - 412.8326110839844, - 369.1115417480469, - 422.9041442871094, - 381.0667419433594 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "t", - "origin": [ - 422.9140319824219, - 379.8709411621094 - ], - "bbox": [ - 422.9140319824219, - 373.89337158203125, - 425.9665832519531, - 381.86346435546875 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " based on the empirical", - "origin": [ - 425.9665832519531, - 379.8709411621094 - ], - "bbox": [ - 425.9665832519531, - 369.1115417480469, - 541.1262817382812, - 382.8717041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86602783203125, - 369.1115417480469, - 541.1262817382812, - 382.8717041015625 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "result of intraday volume pattern as discussed in Cartea, Jaimungal, and Penalva (2015). The", - "origin": [ - 70.86602783203125, - 392.5239562988281 - ], - "bbox": [ - 70.86602783203125, - 383.55755615234375, - 541.2076416015625, - 395.52471923828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86602783203125, - 383.55755615234375, - 541.2076416015625, - 395.52471923828125 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "depth component", - "origin": [ - 70.86602783203125, - 406.969970703125 - ], - "bbox": [ - 70.86602783203125, - 398.0035705566406, - 160.70938110351562, - 409.9707336425781 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " e", - "origin": [ - 160.70938110351562, - 406.969970703125 - ], - "bbox": [ - 160.70938110351562, - 398.0035705566406, - 170.77574157714844, - 409.9587707519531 - ] - }, - { - "size": 7.970099925994873, - "flags": 7, - "font": "CMSY8", - "color": 0, - "ascender": 0.7789999842643738, - "descender": -0.9549999833106995, - "text": "−", - "origin": [ - 170.78602600097656, - 402.6309814453125 - ], - "bbox": [ - 170.78602600097656, - 396.4222717285156, - 177.36932373046875, - 410.242431640625 - ] - }, - { - "size": 7.970099925994873, - "flags": 7, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "µξ", - "origin": [ - 177.3720245361328, - 402.6309814453125 - ], - "bbox": [ - 177.3720245361328, - 396.6534118652344, - 186.18695068359375, - 404.6235046386719 - ] - }, - { - "size": 11.9552001953125, - "flags": 5, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " ", - "origin": [ - 186.18695068359375, - 402.6309814453125 - ], - "bbox": [ - 186.18695068359375, - 393.6645812988281, - 191.6480255126953, - 409.9707336425781 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "is a decreasing function of depth", - "origin": [ - 191.6480255126953, - 406.969970703125 - ], - "bbox": [ - 191.6480255126953, - 398.0035705566406, - 361.9977111816406, - 409.9707336425781 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " ξ", - "origin": [ - 361.9977111816406, - 406.969970703125 - ], - "bbox": [ - 361.9977111816406, - 398.0035705566406, - 371.7598876953125, - 409.9587707519531 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " since the deeper a quote is, the", - "origin": [ - 371.7598876953125, - 406.969970703125 - ], - "bbox": [ - 371.7598876953125, - 398.0035705566406, - 541.12890625, - 409.9707336425781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86602783203125, - 393.6645812988281, - 541.12890625, - 410.242431640625 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "less likely it is for the order to be executed due to the lower priority. Figure 3 illustrates the", - "origin": [ - 70.86602783203125, - 421.41497802734375 - ], - "bbox": [ - 70.86602783203125, - 412.4485778808594, - 541.1715698242188, - 424.4157409667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86602783203125, - 412.4485778808594, - 541.1715698242188, - 424.4157409667969 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "shape of these two components respectively.", - "origin": [ - 70.86602783203125, - 435.8609924316406 - ], - "bbox": [ - 70.86602783203125, - 426.89459228515625, - 295.80316162109375, - 438.86175537109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86602783203125, - 426.89459228515625, - 295.80316162109375, - 438.86175537109375 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 141.322998046875, - 657.8391723632812, - 476.9964599609375, - 668.874755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(a)", - "origin": [ - 141.322998046875, - 666.02099609375 - ], - "bbox": [ - 141.322998046875, - 657.8391723632812, - 157.17393493652344, - 668.748291015625 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Time component", - "origin": [ - 157.17393493652344, - 666.02099609375 - ], - "bbox": [ - 157.17393493652344, - 660.0433959960938, - 223.90237426757812, - 668.0135498046875 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " α", - "origin": [ - 223.90237426757812, - 666.02099609375 - ], - "bbox": [ - 223.90237426757812, - 660.0433959960938, - 232.19158935546875, - 668.0135498046875 - ] - }, - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMMI6", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "t", - "origin": [ - 232.19398498535156, - 667.0170288085938 - ], - "bbox": [ - 232.19398498535156, - 662.5338134765625, - 235.03932189941406, - 668.5114135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.322998046875, - 657.8391723632812, - 235.03932189941406, - 668.748291015625 - ] - }, - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(b)", - "origin": [ - 369.4700012207031, - 666.02099609375 - ], - "bbox": [ - 369.4700012207031, - 657.8391723632812, - 386.19366455078125, - 668.748291015625 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Depth component", - "origin": [ - 386.19366455078125, - 666.02099609375 - ], - "bbox": [ - 386.19366455078125, - 660.0433959960938, - 456.562744140625, - 668.0135498046875 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " e", - "origin": [ - 456.562744140625, - 666.02099609375 - ], - "bbox": [ - 456.562744140625, - 660.0433959960938, - 463.3373107910156, - 668.0135498046875 - ] - }, - { - "size": 5.97760009765625, - "flags": 7, - "font": "CMSY6", - "color": 0, - "ascender": 0.7860000133514404, - "descender": -0.9480000138282776, - "text": "−", - "origin": [ - 463.3440246582031, - 663.2080078125 - ], - "bbox": [ - 463.3440246582031, - 658.5096435546875, - 469.094482421875, - 668.874755859375 - ] - }, - { - "size": 5.97760009765625, - "flags": 7, - "font": "CMMI6", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "µξ", - "origin": [ - 469.10003662109375, - 663.2080078125 - ], - "bbox": [ - 469.10003662109375, - 658.7247924804688, - 476.9964599609375, - 664.702392578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 369.4700012207031, - 657.8391723632812, - 476.9964599609375, - 668.874755859375 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 196.47503662109375, - 679.9686279296875, - 415.5171203613281, - 691.9357299804688 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Figure 2:", - "origin": [ - 196.47503662109375, - 688.9349975585938 - ], - "bbox": [ - 196.47503662109375, - 679.9686279296875, - 249.44851684570312, - 691.9357299804688 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " The shape of intensity function", - "origin": [ - 249.44851684570312, - 688.9349975585938 - ], - "bbox": [ - 249.44851684570312, - 679.9686279296875, - 415.5171203613281, - 691.9357299804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 196.47503662109375, - 679.9686279296875, - 415.5171203613281, - 691.9357299804688 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 303.07403564453125, - 742.0556640625, - 308.9201354980469, - 754.0227661132812 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "6", - "origin": [ - 303.07403564453125, - 751.0220336914062 - ], - "bbox": [ - 303.07403564453125, - 742.0556640625, - 308.9201354980469, - 754.0227661132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 303.07403564453125, - 742.0556640625, - 308.9201354980469, - 754.0227661132812 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 84, - 452, - 292, - 650 - ], - "image_path": "images/0_84_452_292_650.jpg" - }, - { - "bbox": [ - 319, - 452, - 527, - 650 - ], - "image_path": "images/0_319_452_527_650.jpg" - } - ], - "tables": [], - "interline_equations": [ - { - "bbox": [ - 238.07999999999998, - 259.68, - 372.96, - 291.84 - ], - "image_path": "equation_interline/0_238_259_372_291.jpg" - }, - { - "bbox": [ - 264.96, - 340.79999999999995, - 347.03999999999996, - 356.64 - ], - "image_path": "equation_interline/0_264_340_347_356.jpg" - } - ], - "inline_equations": [ - { - "bbox": [ - 92.16, - 207.83999999999997, - 100.32, - 220.32 - ], - "image_path": "equations_inline/0_92_207_100_220.jpg" - }, - { - "bbox": [ - 209.27999999999997, - 237.11999999999998, - 217.44, - 249.6 - ], - "image_path": "equations_inline/0_209_237_217_249.jpg" - }, - { - "bbox": [ - 414.71999999999997, - 372.96, - 427.67999999999995, - 382.08 - ], - "image_path": "equations_inline/0_414_372_427_382.jpg" - }, - { - "bbox": [ - 164.64, - 397.44, - 188.64, - 408.96 - ], - "image_path": "equations_inline/0_164_397_188_408.jpg" - }, - { - "bbox": [ - 365.28, - 398.88, - 373.44, - 411.84 - ], - "image_path": "equations_inline/0_365_398_373_411.jpg" - }, - { - "bbox": [ - 458.4, - 659.04, - 478.08, - 668.16 - ], - "image_path": "equations_inline/0_458_659_478_668.jpg" - }, - { - "bbox": [ - 226.07999999999998, - 662.4, - 236.64, - 669.12 - ], - "image_path": "equations_inline/0_226_662_236_669.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 69.90943145751953, - 612.0, - 297.33331298828125 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 301.863525390625, - 612.0, - 438.86175537109375 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 84, - 452, - 292, - 650 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 319, - 452, - 527, - 650 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 657.8391723632812, - 612.0, - 754.0227661132812 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 254.62322998046875, - 87.14205169677734 - ], - "lines": [ - { - "spans": [ - { - "size": 17.21540069580078, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "3", - "origin": [ - 70.86599731445312, - 82.82098388671875 - ], - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 80.54105377197266, - 87.14205169677734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 69.90943145751953, - 80.54105377197266, - 87.14205169677734 - ] - }, - { - "spans": [ - { - "size": 17.21540069580078, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Trading Simulator", - "origin": [ - 99.92559051513672, - 82.82098388671875 - ], - "bbox": [ - 99.92559051513672, - 69.90943145751953, - 254.62322998046875, - 87.14205169677734 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 99.92559051513672, - 69.90943145751953, - 254.62322998046875, - 87.14205169677734 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 70.86599731445312, - 97.57760620117188, - 541.1954956054688, - 167.3277130126953 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "We build a trading simulator to assess our strategy. The principal constituent of the simulator", - "origin": [ - 70.86599731445312, - 106.54400634765625 - ], - "bbox": [ - 70.86599731445312, - 97.57760620117188, - 541.1954956054688, - 109.54476165771484 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 97.57760620117188, - 541.1954956054688, - 109.54476165771484 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "is market order dynamics because as a market maker, we only use limit orders which are", - "origin": [ - 70.86599731445312, - 120.989990234375 - ], - "bbox": [ - 70.86599731445312, - 112.02359008789062, - 541.1715698242188, - 123.9907455444336 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 112.02359008789062, - 541.1715698242188, - 123.9907455444336 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "matched and filled by market orders. Given this model, we can simulate order executions", - "origin": [ - 70.86599731445312, - 135.43597412109375 - ], - "bbox": [ - 70.86599731445312, - 126.46957397460938, - 541.1595458984375, - 138.4367218017578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 126.46957397460938, - 541.1595458984375, - 138.4367218017578 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "and run our market making strategy. For simplicity, we make the following assumptions: 1)", - "origin": [ - 70.86599731445312, - 149.8809814453125 - ], - "bbox": [ - 70.86599731445312, - 140.91458129882812, - 541.1954956054688, - 152.88172912597656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 140.91458129882812, - 541.1954956054688, - 152.88172912597656 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "No latency, 2) No price impact, and 3) No competition with other market makers.", - "origin": [ - 70.86599731445312, - 164.32696533203125 - ], - "bbox": [ - 70.86599731445312, - 155.36056518554688, - 492.39453125, - 167.3277130126953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 155.36056518554688, - 492.39453125, - 167.3277130126953 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 70.86599731445312, - 185.66729736328125, - 280.7078552246094, - 200.02783203125 - ], - "lines": [ - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "3.1", - "origin": [ - 70.86599731445312, - 196.42694091796875 - ], - "bbox": [ - 70.86599731445312, - 185.66729736328125, - 91.49583435058594, - 200.02783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 185.66729736328125, - 91.49583435058594, - 200.02783203125 - ] - }, - { - "spans": [ - { - "size": 14.346199989318848, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Market Order Dynamics", - "origin": [ - 107.649658203125, - 196.42694091796875 - ], - "bbox": [ - 107.649658203125, - 185.66729736328125, - 280.7078552246094, - 200.02783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 107.649658203125, - 185.66729736328125, - 280.7078552246094, - 200.02783203125 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 70.86599731445312, - 207.06454467773438, - 541.195556640625, - 247.9236602783203 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Let", - "origin": [ - 70.86599731445312, - 216.03094482421875 - ], - "bbox": [ - 70.86599731445312, - 207.06454467773438, - 87.92607116699219, - 219.0316925048828 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " ξ", - "origin": [ - 87.92607116699219, - 216.03094482421875 - ], - "bbox": [ - 87.92607116699219, - 207.06454467773438, - 98.43186950683594, - 219.01974487304688 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " denote the depth of our quote in the order book.", - "origin": [ - 98.43186950683594, - 216.03094482421875 - ], - "bbox": [ - 98.43186950683594, - 207.06454467773438, - 367.8896789550781, - 219.0316925048828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 207.06454467773438, - 367.8896789550781, - 219.0316925048828 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "We use a Time-Inhomogeneous", - "origin": [ - 377.5733642578125, - 216.03094482421875 - ], - "bbox": [ - 377.5733642578125, - 207.06454467773438, - 541.168212890625, - 219.0316925048828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.5733642578125, - 207.06454467773438, - 541.168212890625, - 219.0316925048828 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Poisson Process to model the number of arrivals of market orders that are matched with the", - "origin": [ - 70.86599731445312, - 230.4769287109375 - ], - "bbox": [ - 70.86599731445312, - 221.51052856445312, - 541.195556640625, - 233.47767639160156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 221.51052856445312, - 541.195556640625, - 233.47767639160156 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "limit order at the depth of", - "origin": [ - 70.86599731445312, - 244.92291259765625 - ], - "bbox": [ - 70.86599731445312, - 235.95651245117188, - 206.473876953125, - 247.9236602783203 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " ξ", - "origin": [ - 206.473876953125, - 244.92291259765625 - ], - "bbox": [ - 206.473876953125, - 235.95651245117188, - 215.4668731689453, - 247.91171264648438 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": ":", - "origin": [ - 216.05299377441406, - 244.92291259765625 - ], - "bbox": [ - 216.05299377441406, - 235.95651245117188, - 219.2928466796875, - 247.9236602783203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 235.95651245117188, - 219.2928466796875, - 247.9236602783203 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 238.87399291992188, - 252.1325225830078, - 317.85052490234375, - 297.33331298828125 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "N", - "origin": [ - 238.87399291992188, - 278.21893310546875 - ], - "bbox": [ - 238.87399291992188, - 269.2525329589844, - 248.2468719482422, - 281.2077331542969 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "t", - "origin": [ - 248.24798583984375, - 280.0119323730469 - ], - "bbox": [ - 248.24798583984375, - 274.03436279296875, - 251.300537109375, - 282.00445556640625 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMSY10", - "color": 0, - "ascender": 0.7749999761581421, - "descender": -0.9599999785423279, - "text": " ∼", - "origin": [ - 251.300537109375, - 280.0119323730469 - ], - "bbox": [ - 251.300537109375, - 268.9536437988281, - 264.4141845703125, - 291.4889221191406 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Pois", - "origin": [ - 264.4141845703125, - 278.21893310546875 - ], - "bbox": [ - 264.4141845703125, - 269.2525329589844, - 292.0489196777344, - 281.2077331542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 238.87399291992188, - 268.9536437988281, - 292.0489196777344, - 291.4889221191406 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMEX10", - "color": 0, - "ascender": 0.7720000147819519, - "descender": -2.9600000381469727, - "text": "��", - "origin": [ - 294.0429992675781, - 261.3619384765625 - ], - "bbox": [ - 294.0429992675781, - 252.1325225830078, - 309.4781188964844, - 297.33331298828125 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " t", - "origin": [ - 309.4781188964844, - 261.9459228515625 - ], - "bbox": [ - 309.4781188964844, - 255.96835327148438, - 317.85052490234375, - 267.0934753417969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 294.0429992675781, - 252.1325225830078, - 317.85052490234375, - 297.33331298828125 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 309.4849853515625, - 252.1325225830078, - 373.1240539550781, - 296.74932861328125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "0", - "origin": [ - 309.4849853515625, - 289.011962890625 - ], - "bbox": [ - 309.4849853515625, - 283.0343933105469, - 313.71710205078125, - 291.0044860839844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 309.4849853515625, - 283.0343933105469, - 313.71710205078125, - 291.0044860839844 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "λ", - "origin": [ - 320.34698486328125, - 278.21893310546875 - ], - "bbox": [ - 320.34698486328125, - 269.2525329589844, - 327.17340087890625, - 281.2077331542969 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "(", - "origin": [ - 327.17498779296875, - 278.21893310546875 - ], - "bbox": [ - 327.17498779296875, - 269.2525329589844, - 331.71795654296875, - 281.2196960449219 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "s, ξ", - "origin": [ - 331.7279968261719, - 278.21893310546875 - ], - "bbox": [ - 331.7279968261719, - 269.2525329589844, - 347.592529296875, - 281.2077331542969 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": ")", - "origin": [ - 348.1759948730469, - 278.21893310546875 - ], - "bbox": [ - 348.1759948730469, - 269.2525329589844, - 352.7189636230469, - 281.2196960449219 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "ds", - "origin": [ - 352.72900390625, - 278.21893310546875 - ], - "bbox": [ - 352.72900390625, - 269.2525329589844, - 364.3255615234375, - 281.2077331542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 320.34698486328125, - 269.2525329589844, - 364.3255615234375, - 281.2196960449219 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMEX10", - "color": 0, - "ascender": 0.7720000147819519, - "descender": -2.9600000381469727, - "text": "�", - "origin": [ - 364.32501220703125, - 261.3619384765625 - ], - "bbox": [ - 364.32501220703125, - 252.1325225830078, - 373.1240539550781, - 296.74932861328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 364.32501220703125, - 252.1325225830078, - 373.1240539550781, - 296.74932861328125 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 70.86599731445312, - 301.863525390625, - 541.1835327148438, - 328.2767028808594 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Analogous to the market making model, the intensity function is assumed to be a product", - "origin": [ - 70.86599731445312, - 310.8299255371094 - ], - "bbox": [ - 70.86599731445312, - 301.863525390625, - 541.1835327148438, - 313.8306884765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 301.863525390625, - 541.1835327148438, - 313.8306884765625 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "of time and depth components in the following form:", - "origin": [ - 70.86599731445312, - 325.27593994140625 - ], - "bbox": [ - 70.86599731445312, - 316.3095397949219, - 341.4840087890625, - 328.2767028808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86599731445312, - 316.3095397949219, - 341.4840087890625, - 328.2767028808594 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 266.2590026855469, - 340.5322265625, - 344.928955078125, - 355.46246337890625 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "λ", - "origin": [ - 266.2590026855469, - 351.67694091796875 - ], - "bbox": [ - 266.2590026855469, - 342.7105407714844, - 273.0854187011719, - 354.6657409667969 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "(", - "origin": [ - 273.0880126953125, - 351.67694091796875 - ], - "bbox": [ - 273.0880126953125, - 342.7105407714844, - 277.6309814453125, - 354.6777038574219 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "t, ξ", - "origin": [ - 277.6400146484375, - 351.67694091796875 - ], - "bbox": [ - 277.6400146484375, - 342.7105407714844, - 292.225341796875, - 354.6657409667969 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": ") =", - "origin": [ - 292.802001953125, - 351.67694091796875 - ], - "bbox": [ - 292.802001953125, - 342.7105407714844, - 309.77838134765625, - 354.6777038574219 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " α", - "origin": [ - 309.77838134765625, - 351.67694091796875 - ], - "bbox": [ - 309.77838134765625, - 342.7105407714844, - 320.5371398925781, - 354.6657409667969 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "t", - "origin": [ - 320.5460205078125, - 353.4699401855469 - ], - "bbox": [ - 320.5460205078125, - 347.49237060546875, - 323.59857177734375, - 355.46246337890625 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "e", - "origin": [ - 324.1020202636719, - 351.67694091796875 - ], - "bbox": [ - 324.1020202636719, - 342.7105407714844, - 329.5177307128906, - 354.6657409667969 - ] - }, - { - "size": 7.970099925994873, - "flags": 7, - "font": "CMSY8", - "color": 0, - "ascender": 0.7789999842643738, - "descender": -0.9549999833106995, - "text": "−", - "origin": [ - 329.52801513671875, - 346.7409362792969 - ], - "bbox": [ - 329.52801513671875, - 340.5322265625, - 336.111328125, - 354.3523864746094 - ] - }, - { - "size": 7.970099925994873, - "flags": 7, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "µξ", - "origin": [ - 336.114013671875, - 346.7409362792969 - ], - "bbox": [ - 336.114013671875, - 340.76336669921875, - 344.928955078125, - 348.73345947265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 266.2590026855469, - 340.5322265625, - 344.928955078125, - 355.46246337890625 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 70.86602783203125, - 369.1115417480469, - 541.2076416015625, - 438.86175537109375 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "A piece-wise linear bathtub shape is adopted for the time component", - "origin": [ - 70.86602783203125, - 378.07794189453125 - ], - "bbox": [ - 70.86602783203125, - 369.1115417480469, - 412.8326110839844, - 381.0787048339844 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " α", - "origin": [ - 412.8326110839844, - 378.07794189453125 - ], - "bbox": [ - 412.8326110839844, - 369.1115417480469, - 422.9041442871094, - 381.0667419433594 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "t", - "origin": [ - 422.9140319824219, - 379.8709411621094 - ], - "bbox": [ - 422.9140319824219, - 373.89337158203125, - 425.9665832519531, - 381.86346435546875 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " based on the empirical", - "origin": [ - 425.9665832519531, - 379.8709411621094 - ], - "bbox": [ - 425.9665832519531, - 369.1115417480469, - 541.1262817382812, - 382.8717041015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86602783203125, - 369.1115417480469, - 541.1262817382812, - 382.8717041015625 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "result of intraday volume pattern as discussed in Cartea, Jaimungal, and Penalva (2015). The", - "origin": [ - 70.86602783203125, - 392.5239562988281 - ], - "bbox": [ - 70.86602783203125, - 383.55755615234375, - 541.2076416015625, - 395.52471923828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86602783203125, - 383.55755615234375, - 541.2076416015625, - 395.52471923828125 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "depth component", - "origin": [ - 70.86602783203125, - 406.969970703125 - ], - "bbox": [ - 70.86602783203125, - 398.0035705566406, - 160.70938110351562, - 409.9707336425781 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " e", - "origin": [ - 160.70938110351562, - 406.969970703125 - ], - "bbox": [ - 160.70938110351562, - 398.0035705566406, - 170.77574157714844, - 409.9587707519531 - ] - }, - { - "size": 7.970099925994873, - "flags": 7, - "font": "CMSY8", - "color": 0, - "ascender": 0.7789999842643738, - "descender": -0.9549999833106995, - "text": "−", - "origin": [ - 170.78602600097656, - 402.6309814453125 - ], - "bbox": [ - 170.78602600097656, - 396.4222717285156, - 177.36932373046875, - 410.242431640625 - ] - }, - { - "size": 7.970099925994873, - "flags": 7, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "µξ", - "origin": [ - 177.3720245361328, - 402.6309814453125 - ], - "bbox": [ - 177.3720245361328, - 396.6534118652344, - 186.18695068359375, - 404.6235046386719 - ] - }, - { - "size": 11.9552001953125, - "flags": 5, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " ", - "origin": [ - 186.18695068359375, - 402.6309814453125 - ], - "bbox": [ - 186.18695068359375, - 393.6645812988281, - 191.6480255126953, - 409.9707336425781 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "is a decreasing function of depth", - "origin": [ - 191.6480255126953, - 406.969970703125 - ], - "bbox": [ - 191.6480255126953, - 398.0035705566406, - 361.9977111816406, - 409.9707336425781 - ] - }, - { - "size": 11.9552001953125, - "flags": 6, - "font": "CMMI12", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " ξ", - "origin": [ - 361.9977111816406, - 406.969970703125 - ], - "bbox": [ - 361.9977111816406, - 398.0035705566406, - 371.7598876953125, - 409.9587707519531 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " since the deeper a quote is, the", - "origin": [ - 371.7598876953125, - 406.969970703125 - ], - "bbox": [ - 371.7598876953125, - 398.0035705566406, - 541.12890625, - 409.9707336425781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86602783203125, - 393.6645812988281, - 541.12890625, - 410.242431640625 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "less likely it is for the order to be executed due to the lower priority. Figure 3 illustrates the", - "origin": [ - 70.86602783203125, - 421.41497802734375 - ], - "bbox": [ - 70.86602783203125, - 412.4485778808594, - 541.1715698242188, - 424.4157409667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86602783203125, - 412.4485778808594, - 541.1715698242188, - 424.4157409667969 - ] - }, - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "shape of these two components respectively.", - "origin": [ - 70.86602783203125, - 435.8609924316406 - ], - "bbox": [ - 70.86602783203125, - 426.89459228515625, - 295.80316162109375, - 438.86175537109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 70.86602783203125, - 426.89459228515625, - 295.80316162109375, - 438.86175537109375 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 141.322998046875, - 657.8391723632812, - 476.9964599609375, - 668.874755859375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(a)", - "origin": [ - 141.322998046875, - 666.02099609375 - ], - "bbox": [ - 141.322998046875, - 657.8391723632812, - 157.17393493652344, - 668.748291015625 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Time component", - "origin": [ - 157.17393493652344, - 666.02099609375 - ], - "bbox": [ - 157.17393493652344, - 660.0433959960938, - 223.90237426757812, - 668.0135498046875 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " α", - "origin": [ - 223.90237426757812, - 666.02099609375 - ], - "bbox": [ - 223.90237426757812, - 660.0433959960938, - 232.19158935546875, - 668.0135498046875 - ] - }, - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMMI6", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "t", - "origin": [ - 232.19398498535156, - 667.0170288085938 - ], - "bbox": [ - 232.19398498535156, - 662.5338134765625, - 235.03932189941406, - 668.5114135742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.322998046875, - 657.8391723632812, - 235.03932189941406, - 668.748291015625 - ] - }, - { - "spans": [ - { - "size": 10.909099578857422, - "flags": 20, - "font": "CMBX10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "(b)", - "origin": [ - 369.4700012207031, - 666.02099609375 - ], - "bbox": [ - 369.4700012207031, - 657.8391723632812, - 386.19366455078125, - 668.748291015625 - ] - }, - { - "size": 7.970099925994873, - "flags": 4, - "font": "CMR8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " Depth component", - "origin": [ - 386.19366455078125, - 666.02099609375 - ], - "bbox": [ - 386.19366455078125, - 660.0433959960938, - 456.562744140625, - 668.0135498046875 - ] - }, - { - "size": 7.970099925994873, - "flags": 6, - "font": "CMMI8", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": " e", - "origin": [ - 456.562744140625, - 666.02099609375 - ], - "bbox": [ - 456.562744140625, - 660.0433959960938, - 463.3373107910156, - 668.0135498046875 - ] - }, - { - "size": 5.97760009765625, - "flags": 7, - "font": "CMSY6", - "color": 0, - "ascender": 0.7860000133514404, - "descender": -0.9480000138282776, - "text": "−", - "origin": [ - 463.3440246582031, - 663.2080078125 - ], - "bbox": [ - 463.3440246582031, - 658.5096435546875, - 469.094482421875, - 668.874755859375 - ] - }, - { - "size": 5.97760009765625, - "flags": 7, - "font": "CMMI6", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "µξ", - "origin": [ - 469.10003662109375, - 663.2080078125 - ], - "bbox": [ - 469.10003662109375, - 658.7247924804688, - 476.9964599609375, - 664.702392578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 369.4700012207031, - 657.8391723632812, - 476.9964599609375, - 668.874755859375 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 196.47503662109375, - 679.9686279296875, - 415.5171203613281, - 691.9357299804688 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 20, - "font": "CMBX12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "Figure 2:", - "origin": [ - 196.47503662109375, - 688.9349975585938 - ], - "bbox": [ - 196.47503662109375, - 679.9686279296875, - 249.44851684570312, - 691.9357299804688 - ] - }, - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": " The shape of intensity function", - "origin": [ - 249.44851684570312, - 688.9349975585938 - ], - "bbox": [ - 249.44851684570312, - 679.9686279296875, - 415.5171203613281, - 691.9357299804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 196.47503662109375, - 679.9686279296875, - 415.5171203613281, - 691.9357299804688 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 303.07403564453125, - 742.0556640625, - 308.9201354980469, - 754.0227661132812 - ], - "lines": [ - { - "spans": [ - { - "size": 11.9552001953125, - "flags": 4, - "font": "CMR12", - "color": 0, - "ascender": 0.75, - "descender": -0.25099998712539673, - "text": "6", - "origin": [ - 303.07403564453125, - 751.0220336914062 - ], - "bbox": [ - 303.07403564453125, - 742.0556640625, - 308.9201354980469, - 754.0227661132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 303.07403564453125, - 742.0556640625, - 308.9201354980469, - 754.0227661132812 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\351\241\266\351\203\2502\345\210\227\346\226\207\345\255\227 \345\272\225\351\203\250\350\267\250\346\240\217\350\241\250\346\240\274_10.1002_mrm.24141_10.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\351\241\266\351\203\2502\345\210\227\346\226\207\345\255\227 \345\272\225\351\203\250\350\267\250\346\240\217\350\241\250\346\240\274_10.1002_mrm.24141_10.pdf/preproc_out.json" deleted file mode 100644 index 722a32031..000000000 --- "a/tests/assets/pre_proc_results/\351\241\266\351\203\2502\345\210\227\346\226\207\345\255\227 \345\272\225\351\203\250\350\267\250\346\240\217\350\241\250\346\240\274_10.1002_mrm.24141_10.pdf/preproc_out.json" +++ /dev/null @@ -1,13205 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 60.49129867553711, - 309.7633361816406, - 300.5473327636719, - 384.7512512207031 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "to the radius and frequency as shown in Eq. 10, and not", - "origin": [ - 60.49129867553711, - 316.4883117675781 - ], - "bbox": [ - 60.49129867553711, - 309.7633361816406, - 300.4762878417969, - 318.7633361816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 309.7633361816406, - 300.4762878417969, - 318.7633361816406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "be a result of propagation within a fibrous waveguide", - "origin": [ - 60.49129867553711, - 327.4862976074219 - ], - "bbox": [ - 60.49129867553711, - 320.7613220214844, - 300.48614501953125, - 329.7613220214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 320.7613220214844, - 300.48614501953125, - 329.7613220214844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "characterized by transverse isotropy. Future analysis is", - "origin": [ - 60.49129867553711, - 338.4842834472656 - ], - "bbox": [ - 60.49129867553711, - 331.7593078613281, - 300.5267333984375, - 340.7593078613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 331.7593078613281, - 300.5267333984375, - 340.7593078613281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "warranted, yet it is clear that while a shear wave velocity", - "origin": [ - 60.49129867553711, - 349.4822692871094 - ], - "bbox": [ - 60.49129867553711, - 342.7572937011719, - 300.5473327636719, - 351.7572937011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 342.7572937011719, - 300.5473327636719, - 351.7572937011719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "of 2.1 m/s is not uncharacteristic of biological media, a", - "origin": [ - 60.49129867553711, - 360.4802551269531 - ], - "bbox": [ - 60.49129867553711, - 353.7552795410156, - 300.5023498535156, - 362.7552795410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 353.7552795410156, - 300.5023498535156, - 362.7552795410156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "longitudinal wave velocity of 5.7 m/s is uncharacteristic,", - "origin": [ - 60.49129867553711, - 371.4782409667969 - ], - "bbox": [ - 60.49129867553711, - 364.7532653808594, - 300.53033447265625, - 373.7532653808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 364.7532653808594, - 300.53033447265625, - 373.7532653808594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "and may be a consequence of waveguide effects.", - "origin": [ - 60.49129867553711, - 382.4762268066406 - ], - "bbox": [ - 60.49129867553711, - 375.7512512207031, - 262.7366027832031, - 384.7512512207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 375.7512512207031, - 262.7366027832031, - 384.7512512207031 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 60.49129867553711, - 400.8830261230469, - 116.77730560302734, - 409.9730224609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "DISCUSSION", - "origin": [ - 60.49129867553711, - 408.10101318359375 - ], - "bbox": [ - 60.49129867553711, - 400.8830261230469, - 116.77730560302734, - 409.9730224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 400.8830261230469, - 116.77730560302734, - 409.9730224609375 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 60.49129867553711, - 417.8172302246094, - 300.5392761230469, - 580.8457641601562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "In this article, we have presented waveguide elastogra-", - "origin": [ - 60.49129867553711, - 424.5422058105469 - ], - "bbox": [ - 60.49129867553711, - 417.8172302246094, - 300.5231018066406, - 426.8172302246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 417.8172302246094, - 300.5231018066406, - 426.8172302246094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "phy for the evaluation of the anisotropic elastic parame-", - "origin": [ - 60.49129867553711, - 435.5401916503906 - ], - "bbox": [ - 60.49129867553711, - 428.8152160644531, - 300.5392761230469, - 437.8152160644531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 428.8152160644531, - 300.5392761230469, - 437.8152160644531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ters of white matter tracts in the human brain using a", - "origin": [ - 60.49129867553711, - 446.5381774902344 - ], - "bbox": [ - 60.49129867553711, - 439.8132019042969, - 300.498779296875, - 448.8132019042969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 439.8132019042969, - 300.498779296875, - 448.8132019042969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fusion of DTI, MRE, spatial-spectral filtering, the Helm-", - "origin": [ - 60.49129867553711, - 457.5361633300781 - ], - "bbox": [ - 60.49129867553711, - 450.8111877441406, - 300.51226806640625, - 459.8111877441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 450.8111877441406, - 300.51226806640625, - 459.8111877441406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "holtz decomposition and inversions. We used DTI to", - "origin": [ - 60.49129867553711, - 468.5341491699219 - ], - "bbox": [ - 60.49129867553711, - 461.8091735839844, - 300.50689697265625, - 470.8091735839844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 461.8091735839844, - 300.50689697265625, - 470.8091735839844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "evaluate the pathways of the corticospinal tracts, MRE to", - "origin": [ - 60.49129867553711, - 479.5321350097656 - ], - "bbox": [ - 60.49129867553711, - 472.8071594238281, - 300.5068664550781, - 481.8071594238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 472.8071594238281, - 300.5068664550781, - 481.8071594238281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "measure the dynamic displacements throughout an iso-", - "origin": [ - 60.49129867553711, - 490.5301208496094 - ], - "bbox": [ - 60.49129867553711, - 483.8051452636719, - 300.4978942871094, - 492.8051452636719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 483.8051452636719, - 300.4978942871094, - 492.8051452636719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tropically sampled volume surrounding the tracts subject", - "origin": [ - 60.49129867553711, - 501.5281066894531 - ], - "bbox": [ - 60.49129867553711, - 494.8031311035156, - 300.4952087402344, - 503.8031311035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 494.8031311035156, - 300.4952087402344, - 503.8031311035156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "to monochromatic excitation, applied spatial-spectral fil-", - "origin": [ - 60.49129867553711, - 512.526123046875 - ], - "bbox": [ - 60.49129867553711, - 505.8011474609375, - 300.5050964355469, - 514.8011474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 505.8011474609375, - 300.5050964355469, - 514.8011474609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tering and a Helmholtz decomposition to obtain only", - "origin": [ - 60.49129867553711, - 523.5240478515625 - ], - "bbox": [ - 60.49129867553711, - 516.799072265625, - 300.51226806640625, - 525.799072265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 516.799072265625, - 300.51226806640625, - 525.799072265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "those wave components which were traveling along spe-", - "origin": [ - 60.49129867553711, - 534.5220947265625 - ], - "bbox": [ - 60.49129867553711, - 527.797119140625, - 300.51678466796875, - 536.797119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 527.797119140625, - 300.51678466796875, - 536.797119140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "cific directions with respect to the fiber orientation, and", - "origin": [ - 60.49129867553711, - 545.52001953125 - ], - "bbox": [ - 60.49129867553711, - 538.7950439453125, - 300.4978942871094, - 547.7950439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 538.7950439453125, - 300.4978942871094, - 547.7950439453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "applied anisotropic inversions for the evaluation of the", - "origin": [ - 60.49129867553711, - 556.5747680664062 - ], - "bbox": [ - 60.49129867553711, - 549.8497924804688, - 300.5195007324219, - 558.8497924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 549.8497924804688, - 300.5195007324219, - 558.8497924804688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "elastic parameters. This method was applied to the CSTs", - "origin": [ - 60.49129867553711, - 567.57275390625 - ], - "bbox": [ - 60.49129867553711, - 560.8477783203125, - 300.4726867675781, - 569.8477783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 560.8477783203125, - 300.4726867675781, - 569.8477783203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "of five healthy, human volunteers ranging in age from 25", - "origin": [ - 60.49129867553711, - 578.5707397460938 - ], - "bbox": [ - 60.49129867553711, - 571.8457641601562, - 300.49334716796875, - 580.8457641601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 571.8457641601562, - 300.49334716796875, - 580.8457641601562 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 312.4913024902344, - 74.478759765625, - 552.5448608398438, - 580.0426025390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "to 50 years, and obtained consistent results between all", - "origin": [ - 312.4913024902344, - 81.2037353515625 - ], - "bbox": [ - 312.4913024902344, - 74.478759765625, - 552.4844360351562, - 83.478759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 74.478759765625, - 552.4844360351562, - 83.478759765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the data. While every effort was made to provide consist-", - "origin": [ - 312.4913024902344, - 92.20172119140625 - ], - "bbox": [ - 312.4913024902344, - 85.47674560546875, - 552.4772338867188, - 94.47674560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 85.47674560546875, - 552.4772338867188, - 94.47674560546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ent measurements for all volunteers using a common an-", - "origin": [ - 312.4913024902344, - 103.19970703125 - ], - "bbox": [ - 312.4913024902344, - 96.4747314453125, - 552.5187377929688, - 105.4747314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 96.4747314453125, - 552.5187377929688, - 105.4747314453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "atomical target for reference, due to physical variations", - "origin": [ - 312.4913024902344, - 114.19769287109375 - ], - "bbox": [ - 312.4913024902344, - 107.47271728515625, - 552.486328125, - 116.47271728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 107.47271728515625, - 552.486328125, - 116.47271728515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "in the cranial size and shape, the measured portion of", - "origin": [ - 312.4913024902344, - 125.1956787109375 - ], - "bbox": [ - 312.4913024902344, - 118.470703125, - 552.5071411132812, - 127.470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 118.470703125, - 552.5071411132812, - 127.470703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the CSTs will necessarily vary from person to person.", - "origin": [ - 312.4913024902344, - 136.19366455078125 - ], - "bbox": [ - 312.4913024902344, - 129.46868896484375, - 552.5133056640625, - 138.46868896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 129.46868896484375, - 552.5133056640625, - 138.46868896484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "That is to say that 6 cm of the CST of one volunteer will", - "origin": [ - 312.4913024902344, - 147.191650390625 - ], - "bbox": [ - 312.4913024902344, - 140.4666748046875, - 552.5267333984375, - 149.4666748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 140.4666748046875, - 552.5267333984375, - 149.4666748046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "not be exactly identical to 6 cm of another volunteer in", - "origin": [ - 312.4913024902344, - 158.18963623046875 - ], - "bbox": [ - 312.4913024902344, - 151.46466064453125, - 552.4979248046875, - 160.46466064453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 151.46466064453125, - 552.4979248046875, - 160.46466064453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "terms of the portion of the CSTs within the FOV.", - "origin": [ - 312.4913024902344, - 169.1876220703125 - ], - "bbox": [ - 312.4913024902344, - 162.462646484375, - 518.2367553710938, - 171.462646484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 162.462646484375, - 518.2367553710938, - 171.462646484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "By implementing a higher order anisotropic model such", - "origin": [ - 321.5057067871094, - 180.18560791015625 - ], - "bbox": [ - 321.5057067871094, - 173.46063232421875, - 552.494384765625, - 182.46063232421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.5057067871094, - 173.46063232421875, - 552.494384765625, - 182.46063232421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "as Orthotropy, a lower order Hexagonal model presented", - "origin": [ - 312.4913024902344, - 191.18359375 - ], - "bbox": [ - 312.4913024902344, - 184.4586181640625, - 552.5059814453125, - 193.4586181640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 184.4586181640625, - 552.5059814453125, - 193.4586181640625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "itself as a reasonable approximation by exposing redun-", - "origin": [ - 312.4913024902344, - 202.18157958984375 - ], - "bbox": [ - 312.4913024902344, - 195.45660400390625, - 552.5213012695312, - 204.45660400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 195.45660400390625, - 552.5213012695312, - 204.45660400390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dancies in the elastic coefficients and pure longitudinal", - "origin": [ - 312.4913024902344, - 213.1795654296875 - ], - "bbox": [ - 312.4913024902344, - 206.45458984375, - 552.5106201171875, - 215.45458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 206.45458984375, - 552.5106201171875, - 215.45458984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "mode angles, and reflected the physical morphology of the", - "origin": [ - 312.4913024902344, - 224.17755126953125 - ], - "bbox": [ - 312.4913024902344, - 217.45257568359375, - 552.5196533203125, - 226.45257568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 217.45257568359375, - 552.5196533203125, - 226.45257568359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CSTs. Beginning with a higher order model in this way", - "origin": [ - 312.4913024902344, - 235.175537109375 - ], - "bbox": [ - 312.4913024902344, - 228.4505615234375, - 552.49169921875, - 237.4505615234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 228.4505615234375, - 552.49169921875, - 237.4505615234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "alleviates imposing simplistic assumptions, a priori, in", - "origin": [ - 312.4913024902344, - 246.17352294921875 - ], - "bbox": [ - 312.4913024902344, - 239.44854736328125, - 552.4998779296875, - 248.44854736328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 239.44854736328125, - 552.4998779296875, - 248.44854736328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the analysis of unknown media. It was further demon-", - "origin": [ - 312.4913024902344, - 257.22821044921875 - ], - "bbox": [ - 312.4913024902344, - 250.50323486328125, - 552.4971313476562, - 259.50323486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 250.50323486328125, - 552.4971313476562, - 259.50323486328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "strated that there was a simple relationship between shear", - "origin": [ - 312.4913024902344, - 268.22711181640625 - ], - "bbox": [ - 312.4913024902344, - 261.50213623046875, - 552.4962768554688, - 270.50213623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 261.50213623046875, - 552.4962768554688, - 270.50213623046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "wave velocity, longitudinal wave velocity, frequency, and", - "origin": [ - 312.4913024902344, - 279.22601318359375 - ], - "bbox": [ - 312.4913024902344, - 272.50103759765625, - 552.4969482421875, - 281.50103759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 272.50103759765625, - 552.4969482421875, - 281.50103759765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "radius of the CSTs, similar in behavior to the vibrational", - "origin": [ - 312.4913024902344, - 290.22491455078125 - ], - "bbox": [ - 312.4913024902344, - 283.49993896484375, - 552.5178833007812, - 292.49993896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 283.49993896484375, - 552.5178833007812, - 292.49993896484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "modes of thin rods, and that these longitudinal and shear", - "origin": [ - 312.4913024902344, - 301.22381591796875 - ], - "bbox": [ - 312.4913024902344, - 294.49884033203125, - 552.4971923828125, - 303.49884033203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 294.49884033203125, - 552.4971923828125, - 303.49884033203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "wave velocities were on the order of 5.7 m/s and 2.1 m/s,", - "origin": [ - 312.4913024902344, - 312.22271728515625 - ], - "bbox": [ - 312.4913024902344, - 305.49774169921875, - 552.488037109375, - 314.49774169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 305.49774169921875, - 552.488037109375, - 314.49774169921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "respectively. Finally, it should be mentioned that wave-", - "origin": [ - 312.4913024902344, - 323.22161865234375 - ], - "bbox": [ - 312.4913024902344, - 316.49664306640625, - 552.5060424804688, - 325.49664306640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 316.49664306640625, - 552.5060424804688, - 325.49664306640625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "guide elastography is capable of providing information", - "origin": [ - 312.4913024902344, - 334.22052001953125 - ], - "bbox": [ - 312.4913024902344, - 327.49554443359375, - 552.5142211914062, - 336.49554443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 327.49554443359375, - 552.5142211914062, - 336.49554443359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "about the mechanical properties and integrity of nerve", - "origin": [ - 312.4913024902344, - 345.21942138671875 - ], - "bbox": [ - 312.4913024902344, - 338.49444580078125, - 552.534912109375, - 347.49444580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 338.49444580078125, - 552.534912109375, - 347.49444580078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fiber tracts in less than 20 mins, which is already feasible", - "origin": [ - 312.4913024902344, - 356.21832275390625 - ], - "bbox": [ - 312.4913024902344, - 349.49334716796875, - 552.495361328125, - 358.49334716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 349.49334716796875, - 552.495361328125, - 358.49334716796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "in a clinical environment for addressing diagnostic issues.", - "origin": [ - 312.4913024902344, - 367.21722412109375 - ], - "bbox": [ - 312.4913024902344, - 360.49224853515625, - 551.3568725585938, - 369.49224853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 360.49224853515625, - 551.3568725585938, - 369.49224853515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Future research will apply this approach to other", - "origin": [ - 321.5057067871094, - 378.2152099609375 - ], - "bbox": [ - 321.5057067871094, - 371.490234375, - 552.5034790039062, - 380.490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.5057067871094, - 371.490234375, - 552.5034790039062, - 380.490234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "white matter structures in the brain and other fibrous tis-", - "origin": [ - 312.4913024902344, - 389.21319580078125 - ], - "bbox": [ - 312.4913024902344, - 382.48822021484375, - 552.5107421875, - 391.48822021484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 382.48822021484375, - 552.5107421875, - 391.48822021484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "sues, e.g., muscle, as well as to anisotropic phantoms for", - "origin": [ - 312.4913024902344, - 400.211181640625 - ], - "bbox": [ - 312.4913024902344, - 393.4862060546875, - 552.5151977539062, - 402.4862060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 393.4862060546875, - 552.5151977539062, - 402.4862060546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "validation. Unfortunately, to date, no such phantom has", - "origin": [ - 312.4913024902344, - 411.20916748046875 - ], - "bbox": [ - 312.4913024902344, - 404.48419189453125, - 552.5249633789062, - 413.48419189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 404.48419189453125, - 552.5249633789062, - 413.48419189453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "been successfully constructed, as it is difficult to build a", - "origin": [ - 312.4913024902344, - 422.2071533203125 - ], - "bbox": [ - 312.4913024902344, - 415.482177734375, - 552.5025634765625, - 424.482177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 415.482177734375, - 552.5025634765625, - 424.482177734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "structure with sufficient water diffusion to provide sig-", - "origin": [ - 312.4913024902344, - 433.20513916015625 - ], - "bbox": [ - 312.4913024902344, - 426.48016357421875, - 552.4827880859375, - 435.48016357421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 426.48016357421875, - 552.4827880859375, - 435.48016357421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "nificant FA for DTI and tractography, while providing", - "origin": [ - 312.4913024902344, - 444.203125 - ], - "bbox": [ - 312.4913024902344, - 437.4781494140625, - 552.529541015625, - 446.4781494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 437.4781494140625, - 552.529541015625, - 446.4781494140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "adequate signal to noise and stiffness for a reasonable", - "origin": [ - 312.4913024902344, - 455.20111083984375 - ], - "bbox": [ - 312.4913024902344, - 448.47613525390625, - 552.5448608398438, - 457.47613525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 448.47613525390625, - 552.5448608398438, - 457.47613525390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "measurement of the dynamic elastic displacements using", - "origin": [ - 312.4913024902344, - 466.1990966796875 - ], - "bbox": [ - 312.4913024902344, - 459.47412109375, - 552.4880981445312, - 468.47412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 459.47412109375, - 552.4880981445312, - 468.47412109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "MRE. The construction of such a phantom that will sat-", - "origin": [ - 312.4913024902344, - 477.19708251953125 - ], - "bbox": [ - 312.4913024902344, - 470.47210693359375, - 552.482666015625, - 479.47210693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 470.47210693359375, - 552.482666015625, - 479.47210693359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "isfy these criteria is currently under investigation.", - "origin": [ - 312.4913024902344, - 488.195068359375 - ], - "bbox": [ - 312.4913024902344, - 481.4700927734375, - 521.81884765625, - 490.4700927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 481.4700927734375, - 521.81884765625, - 490.4700927734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Although we began with an Orthotropic model under", - "origin": [ - 321.5057067871094, - 499.36407470703125 - ], - "bbox": [ - 321.5057067871094, - 492.63909912109375, - 552.4736328125, - 501.63909912109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.5057067871094, - 492.63909912109375, - 552.4736328125, - 501.63909912109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the initial assumption that this degree of anisotropy", - "origin": [ - 312.4913024902344, - 510.53216552734375 - ], - "bbox": [ - 312.4913024902344, - 503.80718994140625, - 552.4783325195312, - 512.8071899414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 503.80718994140625, - 552.4783325195312, - 512.8071899414062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "exceeds that observed in human tissue, more complex", - "origin": [ - 312.4913024902344, - 521.7569580078125 - ], - "bbox": [ - 312.4913024902344, - 515.031982421875, - 552.52587890625, - 524.031982421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 515.031982421875, - 552.52587890625, - 524.031982421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dynamical models may be required. Therefore, we will", - "origin": [ - 312.4913024902344, - 532.9817504882812 - ], - "bbox": [ - 312.4913024902344, - 526.2567749023438, - 552.4681396484375, - 535.2567749023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 526.2567749023438, - 552.4681396484375, - 535.2567749023438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "potentially use other models appropriate for different", - "origin": [ - 312.4913024902344, - 544.1498413085938 - ], - "bbox": [ - 312.4913024902344, - 537.4248657226562, - 552.4935302734375, - 546.4248657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 537.4248657226562, - 552.4935302734375, - 546.4248657226562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "structures and investigate the use of multiple frequencies", - "origin": [ - 312.4913024902344, - 555.3746337890625 - ], - "bbox": [ - 312.4913024902344, - 548.649658203125, - 552.5286865234375, - 557.649658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 548.649658203125, - 552.5286865234375, - 557.649658203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "such that dispersion analysis can be performed. In par-", - "origin": [ - 312.4913024902344, - 566.542724609375 - ], - "bbox": [ - 312.4913024902344, - 559.8177490234375, - 552.5250244140625, - 568.8177490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 559.8177490234375, - 552.5250244140625, - 568.8177490234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ticular, as the longitudinal wave speeds within the CSTs", - "origin": [ - 312.4913024902344, - 577.767578125 - ], - "bbox": [ - 312.4913024902344, - 571.0426025390625, - 552.4738159179688, - 580.0426025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 571.0426025390625, - 552.4738159179688, - 580.0426025390625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 60.49128723144531, - 265.8202209472656, - 300.56268310546875, - 293.83270263671875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "FIG. 7. Real part, imaginary part, and magnitude of the", - "origin": [ - 60.49129867553711, - 272.15447998046875 - ], - "bbox": [ - 60.49129867553711, - 265.8202209472656, - 262.7303161621094, - 273.82012939453125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " y", - "origin": [ - 262.7303161621094, - 272.15447998046875 - ], - "bbox": [ - 262.7303161621094, - 265.8202209472656, - 269.38067626953125, - 273.82012939453125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-compo-", - "origin": [ - 269.3470764160156, - 272.15447998046875 - ], - "bbox": [ - 269.3470764160156, - 265.8202209472656, - 300.56268310546875, - 273.82012939453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 265.8202209472656, - 300.56268310546875, - 273.82012939453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "nent of the shear wave displacement along the right CST of volun-", - "origin": [ - 60.49128723144531, - 282.13275146484375 - ], - "bbox": [ - 60.49128723144531, - 275.7984924316406, - 300.5363464355469, - 283.79840087890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49128723144531, - 275.7984924316406, - 300.5363464355469, - 283.79840087890625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "teer 3. Arrow indicates vertical location of maximum amplitude.", - "origin": [ - 60.49128723144531, - 292.16705322265625 - ], - "bbox": [ - 60.49128723144531, - 285.8327941894531, - 288.5667724609375, - 293.83270263671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49128723144531, - 285.8327941894531, - 288.5667724609375, - 293.83270263671875 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 60.49129867553711, - 734.1038818359375, - 304.8695983886719, - 761.3621826171875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Longitudinal propagation angles", - "origin": [ - 60.491363525390625, - 740.4381103515625 - ], - "bbox": [ - 60.491363525390625, - 734.1038818359375, - 175.78271484375, - 742.103759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491363525390625, - 734.1038818359375, - 175.78271484375, - 742.103759765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMP13", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "h", - "origin": [ - 60.49129867553711, - 750.415771484375 - ], - "bbox": [ - 60.49129867553711, - 743.19775390625, - 64.99130249023438, - 753.1337890625 - ] - }, - { - "size": 6.300000190734863, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "p", - "origin": [ - 64.97010040283203, - 751.7764282226562 - ], - "bbox": [ - 64.97010040283203, - 746.6608276367188, - 69.16590118408203, - 753.2191162109375 - ] - }, - { - "size": 4.5, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "1", - "origin": [ - 69.16529846191406, - 752.7401733398438 - ], - "bbox": [ - 69.16529846191406, - 749.377685546875, - 71.64929962158203, - 753.877685546875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 71.64929962158203, - 752.7401733398438 - ], - "bbox": [ - 71.64929962158203, - 743.4857788085938, - 82.10479736328125, - 761.3621826171875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 45.26", - "origin": [ - 82.10479736328125, - 750.415771484375 - ], - "bbox": [ - 82.10479736328125, - 743.6907958984375, - 106.98710632324219, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 106.97949981689453, - 747.184326171875 - ], - "bbox": [ - 106.97949981689453, - 742.3333129882812, - 110.12950134277344, - 753.2197265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "6", - "origin": [ - 110.60780334472656, - 750.415771484375 - ], - "bbox": [ - 110.60780334472656, - 743.1077880859375, - 118.10480499267578, - 752.4767456054688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "6.87", - "origin": [ - 118.14800262451172, - 750.415771484375 - ], - "bbox": [ - 118.14800262451172, - 743.6907958984375, - 135.5810089111328, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 135.55270385742188, - 747.184326171875 - ], - "bbox": [ - 135.55270385742188, - 742.3333129882812, - 138.70269775390625, - 753.2197265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ",", - "origin": [ - 139.18099975585938, - 750.415771484375 - ], - "bbox": [ - 139.18099975585938, - 743.6907958984375, - 141.7100067138672, - 752.6907958984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMP13", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " h", - "origin": [ - 141.7100067138672, - 750.415771484375 - ], - "bbox": [ - 141.7100067138672, - 743.19775390625, - 149.17999267578125, - 753.1337890625 - ] - }, - { - "size": 6.300000190734863, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "p", - "origin": [ - 149.2156982421875, - 751.7764282226562 - ], - "bbox": [ - 149.2156982421875, - 746.6608276367188, - 153.4114990234375, - 753.2191162109375 - ] - }, - { - "size": 4.5, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "2", - "origin": [ - 153.41099548339844, - 752.7401733398438 - ], - "bbox": [ - 153.41099548339844, - 749.377685546875, - 155.89498901367188, - 753.877685546875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 155.89498901367188, - 752.7401733398438 - ], - "bbox": [ - 155.89498901367188, - 743.4857788085938, - 166.29368591308594, - 761.3621826171875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 44.12", - "origin": [ - 166.29368591308594, - 750.415771484375 - ], - "bbox": [ - 166.29368591308594, - 743.6907958984375, - 191.17601013183594, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 191.1685028076172, - 747.184326171875 - ], - "bbox": [ - 191.1685028076172, - 742.3333129882812, - 194.31849670410156, - 753.2197265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "6", - "origin": [ - 194.7967987060547, - 750.415771484375 - ], - "bbox": [ - 194.7967987060547, - 743.1077880859375, - 202.29379272460938, - 752.4767456054688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "12.6", - "origin": [ - 202.33700561523438, - 750.415771484375 - ], - "bbox": [ - 202.33700561523438, - 743.6907958984375, - 219.77001953125, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 219.74169921875, - 747.184326171875 - ], - "bbox": [ - 219.74169921875, - 742.3333129882812, - 222.89169311523438, - 753.2197265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ",", - "origin": [ - 223.3699951171875, - 750.415771484375 - ], - "bbox": [ - 223.3699951171875, - 743.6907958984375, - 225.8990020751953, - 752.6907958984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " f", - "origin": [ - 225.8990020751953, - 750.415771484375 - ], - "bbox": [ - 225.8990020751953, - 743.1077880859375, - 234.8629913330078, - 752.4767456054688 - ] - }, - { - "size": 6.300000190734863, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "g", - "origin": [ - 234.87869262695312, - 752.513427734375 - ], - "bbox": [ - 234.87869262695312, - 747.3978271484375, - 238.35629272460938, - 753.9561157226562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 238.35629272460938, - 752.513427734375 - ], - "bbox": [ - 238.35629272460938, - 743.4857788085938, - 248.27169799804688, - 761.1354370117188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 38.39", - "origin": [ - 248.27169799804688, - 750.415771484375 - ], - "bbox": [ - 248.27169799804688, - 743.6907958984375, - 273.2106628417969, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 273.1463928222656, - 747.184326171875 - ], - "bbox": [ - 273.1463928222656, - 742.3333129882812, - 276.29638671875, - 753.2197265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "6", - "origin": [ - 276.8313903808594, - 750.415771484375 - ], - "bbox": [ - 276.8313903808594, - 743.1077880859375, - 284.3283996582031, - 752.4767456054688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "9.87", - "origin": [ - 284.31488037109375, - 750.415771484375 - ], - "bbox": [ - 284.31488037109375, - 743.6907958984375, - 301.7478332519531, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 301.7196044921875, - 747.184326171875 - ], - "bbox": [ - 301.7196044921875, - 742.3333129882812, - 304.8695983886719, - 753.2197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 742.3333129882812, - 304.8695983886719, - 761.3621826171875 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 63, - 74, - 297, - 254 - ], - "image_path": "images/0_63_74_297_254.jpg" - } - ], - "tables": [ - { - "bbox": [ - 60, - 602.5194091796875, - 553, - 731 - ], - "image_path": "tables/0_60_602_553_731.jpg" - } - ], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 264.47999999999996, - 266.80094786729853, - 270.71999999999997, - 275.4383886255924 - ], - "image_path": "equations_inline/0_264_266_270_275.jpg" - }, - { - "bbox": [ - 58.559999999999995, - 742.8199052132701, - 140.64, - 754.3364928909951 - ], - "image_path": "equations_inline/0_58_742_140_754.jpg" - }, - { - "bbox": [ - 228.95999999999998, - 742.8199052132701, - 306.23999999999995, - 755.2962085308056 - ], - "image_path": "equations_inline/0_228_742_306_755.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 50.68699264526367, - 612.0, - 58.686893463134766 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 60.49128723144531, - 74, - 300.56268310546875, - 580.8457641601562 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 312.4913024902344, - 74, - 552.5448608398438, - 580.8457641601562 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 602.5194091796875, - 612.0, - 761.3621826171875 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 60.49129867553711, - 309.7633361816406, - 300.5473327636719, - 384.7512512207031 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "to the radius and frequency as shown in Eq. 10, and not", - "origin": [ - 60.49129867553711, - 316.4883117675781 - ], - "bbox": [ - 60.49129867553711, - 309.7633361816406, - 300.4762878417969, - 318.7633361816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 309.7633361816406, - 300.4762878417969, - 318.7633361816406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "be a result of propagation within a fibrous waveguide", - "origin": [ - 60.49129867553711, - 327.4862976074219 - ], - "bbox": [ - 60.49129867553711, - 320.7613220214844, - 300.48614501953125, - 329.7613220214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 320.7613220214844, - 300.48614501953125, - 329.7613220214844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "characterized by transverse isotropy. Future analysis is", - "origin": [ - 60.49129867553711, - 338.4842834472656 - ], - "bbox": [ - 60.49129867553711, - 331.7593078613281, - 300.5267333984375, - 340.7593078613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 331.7593078613281, - 300.5267333984375, - 340.7593078613281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "warranted, yet it is clear that while a shear wave velocity", - "origin": [ - 60.49129867553711, - 349.4822692871094 - ], - "bbox": [ - 60.49129867553711, - 342.7572937011719, - 300.5473327636719, - 351.7572937011719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 342.7572937011719, - 300.5473327636719, - 351.7572937011719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "of 2.1 m/s is not uncharacteristic of biological media, a", - "origin": [ - 60.49129867553711, - 360.4802551269531 - ], - "bbox": [ - 60.49129867553711, - 353.7552795410156, - 300.5023498535156, - 362.7552795410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 353.7552795410156, - 300.5023498535156, - 362.7552795410156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "longitudinal wave velocity of 5.7 m/s is uncharacteristic,", - "origin": [ - 60.49129867553711, - 371.4782409667969 - ], - "bbox": [ - 60.49129867553711, - 364.7532653808594, - 300.53033447265625, - 373.7532653808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 364.7532653808594, - 300.53033447265625, - 373.7532653808594 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "and may be a consequence of waveguide effects.", - "origin": [ - 60.49129867553711, - 382.4762268066406 - ], - "bbox": [ - 60.49129867553711, - 375.7512512207031, - 262.7366027832031, - 384.7512512207031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 375.7512512207031, - 262.7366027832031, - 384.7512512207031 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 60.49129867553711, - 400.8830261230469, - 116.77730560302734, - 409.9730224609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvHelneu-B", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.20800000429153442, - "text": "DISCUSSION", - "origin": [ - 60.49129867553711, - 408.10101318359375 - ], - "bbox": [ - 60.49129867553711, - 400.8830261230469, - 116.77730560302734, - 409.9730224609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 400.8830261230469, - 116.77730560302734, - 409.9730224609375 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 60.49129867553711, - 417.8172302246094, - 300.5392761230469, - 580.8457641601562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "In this article, we have presented waveguide elastogra-", - "origin": [ - 60.49129867553711, - 424.5422058105469 - ], - "bbox": [ - 60.49129867553711, - 417.8172302246094, - 300.5231018066406, - 426.8172302246094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 417.8172302246094, - 300.5231018066406, - 426.8172302246094 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "phy for the evaluation of the anisotropic elastic parame-", - "origin": [ - 60.49129867553711, - 435.5401916503906 - ], - "bbox": [ - 60.49129867553711, - 428.8152160644531, - 300.5392761230469, - 437.8152160644531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 428.8152160644531, - 300.5392761230469, - 437.8152160644531 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ters of white matter tracts in the human brain using a", - "origin": [ - 60.49129867553711, - 446.5381774902344 - ], - "bbox": [ - 60.49129867553711, - 439.8132019042969, - 300.498779296875, - 448.8132019042969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 439.8132019042969, - 300.498779296875, - 448.8132019042969 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fusion of DTI, MRE, spatial-spectral filtering, the Helm-", - "origin": [ - 60.49129867553711, - 457.5361633300781 - ], - "bbox": [ - 60.49129867553711, - 450.8111877441406, - 300.51226806640625, - 459.8111877441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 450.8111877441406, - 300.51226806640625, - 459.8111877441406 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "holtz decomposition and inversions. We used DTI to", - "origin": [ - 60.49129867553711, - 468.5341491699219 - ], - "bbox": [ - 60.49129867553711, - 461.8091735839844, - 300.50689697265625, - 470.8091735839844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 461.8091735839844, - 300.50689697265625, - 470.8091735839844 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "evaluate the pathways of the corticospinal tracts, MRE to", - "origin": [ - 60.49129867553711, - 479.5321350097656 - ], - "bbox": [ - 60.49129867553711, - 472.8071594238281, - 300.5068664550781, - 481.8071594238281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 472.8071594238281, - 300.5068664550781, - 481.8071594238281 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "measure the dynamic displacements throughout an iso-", - "origin": [ - 60.49129867553711, - 490.5301208496094 - ], - "bbox": [ - 60.49129867553711, - 483.8051452636719, - 300.4978942871094, - 492.8051452636719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 483.8051452636719, - 300.4978942871094, - 492.8051452636719 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tropically sampled volume surrounding the tracts subject", - "origin": [ - 60.49129867553711, - 501.5281066894531 - ], - "bbox": [ - 60.49129867553711, - 494.8031311035156, - 300.4952087402344, - 503.8031311035156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 494.8031311035156, - 300.4952087402344, - 503.8031311035156 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "to monochromatic excitation, applied spatial-spectral fil-", - "origin": [ - 60.49129867553711, - 512.526123046875 - ], - "bbox": [ - 60.49129867553711, - 505.8011474609375, - 300.5050964355469, - 514.8011474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 505.8011474609375, - 300.5050964355469, - 514.8011474609375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tering and a Helmholtz decomposition to obtain only", - "origin": [ - 60.49129867553711, - 523.5240478515625 - ], - "bbox": [ - 60.49129867553711, - 516.799072265625, - 300.51226806640625, - 525.799072265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 516.799072265625, - 300.51226806640625, - 525.799072265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "those wave components which were traveling along spe-", - "origin": [ - 60.49129867553711, - 534.5220947265625 - ], - "bbox": [ - 60.49129867553711, - 527.797119140625, - 300.51678466796875, - 536.797119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 527.797119140625, - 300.51678466796875, - 536.797119140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "cific directions with respect to the fiber orientation, and", - "origin": [ - 60.49129867553711, - 545.52001953125 - ], - "bbox": [ - 60.49129867553711, - 538.7950439453125, - 300.4978942871094, - 547.7950439453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 538.7950439453125, - 300.4978942871094, - 547.7950439453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "applied anisotropic inversions for the evaluation of the", - "origin": [ - 60.49129867553711, - 556.5747680664062 - ], - "bbox": [ - 60.49129867553711, - 549.8497924804688, - 300.5195007324219, - 558.8497924804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 549.8497924804688, - 300.5195007324219, - 558.8497924804688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "elastic parameters. This method was applied to the CSTs", - "origin": [ - 60.49129867553711, - 567.57275390625 - ], - "bbox": [ - 60.49129867553711, - 560.8477783203125, - 300.4726867675781, - 569.8477783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 560.8477783203125, - 300.4726867675781, - 569.8477783203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "of five healthy, human volunteers ranging in age from 25", - "origin": [ - 60.49129867553711, - 578.5707397460938 - ], - "bbox": [ - 60.49129867553711, - 571.8457641601562, - 300.49334716796875, - 580.8457641601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 571.8457641601562, - 300.49334716796875, - 580.8457641601562 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 312.4913024902344, - 74.478759765625, - 552.5448608398438, - 580.0426025390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "to 50 years, and obtained consistent results between all", - "origin": [ - 312.4913024902344, - 81.2037353515625 - ], - "bbox": [ - 312.4913024902344, - 74.478759765625, - 552.4844360351562, - 83.478759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 74.478759765625, - 552.4844360351562, - 83.478759765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the data. While every effort was made to provide consist-", - "origin": [ - 312.4913024902344, - 92.20172119140625 - ], - "bbox": [ - 312.4913024902344, - 85.47674560546875, - 552.4772338867188, - 94.47674560546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 85.47674560546875, - 552.4772338867188, - 94.47674560546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ent measurements for all volunteers using a common an-", - "origin": [ - 312.4913024902344, - 103.19970703125 - ], - "bbox": [ - 312.4913024902344, - 96.4747314453125, - 552.5187377929688, - 105.4747314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 96.4747314453125, - 552.5187377929688, - 105.4747314453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "atomical target for reference, due to physical variations", - "origin": [ - 312.4913024902344, - 114.19769287109375 - ], - "bbox": [ - 312.4913024902344, - 107.47271728515625, - 552.486328125, - 116.47271728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 107.47271728515625, - 552.486328125, - 116.47271728515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "in the cranial size and shape, the measured portion of", - "origin": [ - 312.4913024902344, - 125.1956787109375 - ], - "bbox": [ - 312.4913024902344, - 118.470703125, - 552.5071411132812, - 127.470703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 118.470703125, - 552.5071411132812, - 127.470703125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the CSTs will necessarily vary from person to person.", - "origin": [ - 312.4913024902344, - 136.19366455078125 - ], - "bbox": [ - 312.4913024902344, - 129.46868896484375, - 552.5133056640625, - 138.46868896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 129.46868896484375, - 552.5133056640625, - 138.46868896484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "That is to say that 6 cm of the CST of one volunteer will", - "origin": [ - 312.4913024902344, - 147.191650390625 - ], - "bbox": [ - 312.4913024902344, - 140.4666748046875, - 552.5267333984375, - 149.4666748046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 140.4666748046875, - 552.5267333984375, - 149.4666748046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "not be exactly identical to 6 cm of another volunteer in", - "origin": [ - 312.4913024902344, - 158.18963623046875 - ], - "bbox": [ - 312.4913024902344, - 151.46466064453125, - 552.4979248046875, - 160.46466064453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 151.46466064453125, - 552.4979248046875, - 160.46466064453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "terms of the portion of the CSTs within the FOV.", - "origin": [ - 312.4913024902344, - 169.1876220703125 - ], - "bbox": [ - 312.4913024902344, - 162.462646484375, - 518.2367553710938, - 171.462646484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 162.462646484375, - 518.2367553710938, - 171.462646484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "By implementing a higher order anisotropic model such", - "origin": [ - 321.5057067871094, - 180.18560791015625 - ], - "bbox": [ - 321.5057067871094, - 173.46063232421875, - 552.494384765625, - 182.46063232421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.5057067871094, - 173.46063232421875, - 552.494384765625, - 182.46063232421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "as Orthotropy, a lower order Hexagonal model presented", - "origin": [ - 312.4913024902344, - 191.18359375 - ], - "bbox": [ - 312.4913024902344, - 184.4586181640625, - 552.5059814453125, - 193.4586181640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 184.4586181640625, - 552.5059814453125, - 193.4586181640625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "itself as a reasonable approximation by exposing redun-", - "origin": [ - 312.4913024902344, - 202.18157958984375 - ], - "bbox": [ - 312.4913024902344, - 195.45660400390625, - 552.5213012695312, - 204.45660400390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 195.45660400390625, - 552.5213012695312, - 204.45660400390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dancies in the elastic coefficients and pure longitudinal", - "origin": [ - 312.4913024902344, - 213.1795654296875 - ], - "bbox": [ - 312.4913024902344, - 206.45458984375, - 552.5106201171875, - 215.45458984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 206.45458984375, - 552.5106201171875, - 215.45458984375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "mode angles, and reflected the physical morphology of the", - "origin": [ - 312.4913024902344, - 224.17755126953125 - ], - "bbox": [ - 312.4913024902344, - 217.45257568359375, - 552.5196533203125, - 226.45257568359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 217.45257568359375, - 552.5196533203125, - 226.45257568359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "CSTs. Beginning with a higher order model in this way", - "origin": [ - 312.4913024902344, - 235.175537109375 - ], - "bbox": [ - 312.4913024902344, - 228.4505615234375, - 552.49169921875, - 237.4505615234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 228.4505615234375, - 552.49169921875, - 237.4505615234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "alleviates imposing simplistic assumptions, a priori, in", - "origin": [ - 312.4913024902344, - 246.17352294921875 - ], - "bbox": [ - 312.4913024902344, - 239.44854736328125, - 552.4998779296875, - 248.44854736328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 239.44854736328125, - 552.4998779296875, - 248.44854736328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the analysis of unknown media. It was further demon-", - "origin": [ - 312.4913024902344, - 257.22821044921875 - ], - "bbox": [ - 312.4913024902344, - 250.50323486328125, - 552.4971313476562, - 259.50323486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 250.50323486328125, - 552.4971313476562, - 259.50323486328125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "strated that there was a simple relationship between shear", - "origin": [ - 312.4913024902344, - 268.22711181640625 - ], - "bbox": [ - 312.4913024902344, - 261.50213623046875, - 552.4962768554688, - 270.50213623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 261.50213623046875, - 552.4962768554688, - 270.50213623046875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "wave velocity, longitudinal wave velocity, frequency, and", - "origin": [ - 312.4913024902344, - 279.22601318359375 - ], - "bbox": [ - 312.4913024902344, - 272.50103759765625, - 552.4969482421875, - 281.50103759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 272.50103759765625, - 552.4969482421875, - 281.50103759765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "radius of the CSTs, similar in behavior to the vibrational", - "origin": [ - 312.4913024902344, - 290.22491455078125 - ], - "bbox": [ - 312.4913024902344, - 283.49993896484375, - 552.5178833007812, - 292.49993896484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 283.49993896484375, - 552.5178833007812, - 292.49993896484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "modes of thin rods, and that these longitudinal and shear", - "origin": [ - 312.4913024902344, - 301.22381591796875 - ], - "bbox": [ - 312.4913024902344, - 294.49884033203125, - 552.4971923828125, - 303.49884033203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 294.49884033203125, - 552.4971923828125, - 303.49884033203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "wave velocities were on the order of 5.7 m/s and 2.1 m/s,", - "origin": [ - 312.4913024902344, - 312.22271728515625 - ], - "bbox": [ - 312.4913024902344, - 305.49774169921875, - 552.488037109375, - 314.49774169921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 305.49774169921875, - 552.488037109375, - 314.49774169921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "respectively. Finally, it should be mentioned that wave-", - "origin": [ - 312.4913024902344, - 323.22161865234375 - ], - "bbox": [ - 312.4913024902344, - 316.49664306640625, - 552.5060424804688, - 325.49664306640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 316.49664306640625, - 552.5060424804688, - 325.49664306640625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "guide elastography is capable of providing information", - "origin": [ - 312.4913024902344, - 334.22052001953125 - ], - "bbox": [ - 312.4913024902344, - 327.49554443359375, - 552.5142211914062, - 336.49554443359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 327.49554443359375, - 552.5142211914062, - 336.49554443359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "about the mechanical properties and integrity of nerve", - "origin": [ - 312.4913024902344, - 345.21942138671875 - ], - "bbox": [ - 312.4913024902344, - 338.49444580078125, - 552.534912109375, - 347.49444580078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 338.49444580078125, - 552.534912109375, - 347.49444580078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fiber tracts in less than 20 mins, which is already feasible", - "origin": [ - 312.4913024902344, - 356.21832275390625 - ], - "bbox": [ - 312.4913024902344, - 349.49334716796875, - 552.495361328125, - 358.49334716796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 349.49334716796875, - 552.495361328125, - 358.49334716796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "in a clinical environment for addressing diagnostic issues.", - "origin": [ - 312.4913024902344, - 367.21722412109375 - ], - "bbox": [ - 312.4913024902344, - 360.49224853515625, - 551.3568725585938, - 369.49224853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 360.49224853515625, - 551.3568725585938, - 369.49224853515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Future research will apply this approach to other", - "origin": [ - 321.5057067871094, - 378.2152099609375 - ], - "bbox": [ - 321.5057067871094, - 371.490234375, - 552.5034790039062, - 380.490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.5057067871094, - 371.490234375, - 552.5034790039062, - 380.490234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "white matter structures in the brain and other fibrous tis-", - "origin": [ - 312.4913024902344, - 389.21319580078125 - ], - "bbox": [ - 312.4913024902344, - 382.48822021484375, - 552.5107421875, - 391.48822021484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 382.48822021484375, - 552.5107421875, - 391.48822021484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "sues, e.g., muscle, as well as to anisotropic phantoms for", - "origin": [ - 312.4913024902344, - 400.211181640625 - ], - "bbox": [ - 312.4913024902344, - 393.4862060546875, - 552.5151977539062, - 402.4862060546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 393.4862060546875, - 552.5151977539062, - 402.4862060546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "validation. Unfortunately, to date, no such phantom has", - "origin": [ - 312.4913024902344, - 411.20916748046875 - ], - "bbox": [ - 312.4913024902344, - 404.48419189453125, - 552.5249633789062, - 413.48419189453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 404.48419189453125, - 552.5249633789062, - 413.48419189453125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "been successfully constructed, as it is difficult to build a", - "origin": [ - 312.4913024902344, - 422.2071533203125 - ], - "bbox": [ - 312.4913024902344, - 415.482177734375, - 552.5025634765625, - 424.482177734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 415.482177734375, - 552.5025634765625, - 424.482177734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "structure with sufficient water diffusion to provide sig-", - "origin": [ - 312.4913024902344, - 433.20513916015625 - ], - "bbox": [ - 312.4913024902344, - 426.48016357421875, - 552.4827880859375, - 435.48016357421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 426.48016357421875, - 552.4827880859375, - 435.48016357421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "nificant FA for DTI and tractography, while providing", - "origin": [ - 312.4913024902344, - 444.203125 - ], - "bbox": [ - 312.4913024902344, - 437.4781494140625, - 552.529541015625, - 446.4781494140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 437.4781494140625, - 552.529541015625, - 446.4781494140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "adequate signal to noise and stiffness for a reasonable", - "origin": [ - 312.4913024902344, - 455.20111083984375 - ], - "bbox": [ - 312.4913024902344, - 448.47613525390625, - 552.5448608398438, - 457.47613525390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 448.47613525390625, - 552.5448608398438, - 457.47613525390625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "measurement of the dynamic elastic displacements using", - "origin": [ - 312.4913024902344, - 466.1990966796875 - ], - "bbox": [ - 312.4913024902344, - 459.47412109375, - 552.4880981445312, - 468.47412109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 459.47412109375, - 552.4880981445312, - 468.47412109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "MRE. The construction of such a phantom that will sat-", - "origin": [ - 312.4913024902344, - 477.19708251953125 - ], - "bbox": [ - 312.4913024902344, - 470.47210693359375, - 552.482666015625, - 479.47210693359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 470.47210693359375, - 552.482666015625, - 479.47210693359375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "isfy these criteria is currently under investigation.", - "origin": [ - 312.4913024902344, - 488.195068359375 - ], - "bbox": [ - 312.4913024902344, - 481.4700927734375, - 521.81884765625, - 490.4700927734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 481.4700927734375, - 521.81884765625, - 490.4700927734375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Although we began with an Orthotropic model under", - "origin": [ - 321.5057067871094, - 499.36407470703125 - ], - "bbox": [ - 321.5057067871094, - 492.63909912109375, - 552.4736328125, - 501.63909912109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 321.5057067871094, - 492.63909912109375, - 552.4736328125, - 501.63909912109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the initial assumption that this degree of anisotropy", - "origin": [ - 312.4913024902344, - 510.53216552734375 - ], - "bbox": [ - 312.4913024902344, - 503.80718994140625, - 552.4783325195312, - 512.8071899414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 503.80718994140625, - 552.4783325195312, - 512.8071899414062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "exceeds that observed in human tissue, more complex", - "origin": [ - 312.4913024902344, - 521.7569580078125 - ], - "bbox": [ - 312.4913024902344, - 515.031982421875, - 552.52587890625, - 524.031982421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 515.031982421875, - 552.52587890625, - 524.031982421875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dynamical models may be required. Therefore, we will", - "origin": [ - 312.4913024902344, - 532.9817504882812 - ], - "bbox": [ - 312.4913024902344, - 526.2567749023438, - 552.4681396484375, - 535.2567749023438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 526.2567749023438, - 552.4681396484375, - 535.2567749023438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "potentially use other models appropriate for different", - "origin": [ - 312.4913024902344, - 544.1498413085938 - ], - "bbox": [ - 312.4913024902344, - 537.4248657226562, - 552.4935302734375, - 546.4248657226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 537.4248657226562, - 552.4935302734375, - 546.4248657226562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "structures and investigate the use of multiple frequencies", - "origin": [ - 312.4913024902344, - 555.3746337890625 - ], - "bbox": [ - 312.4913024902344, - 548.649658203125, - 552.5286865234375, - 557.649658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 548.649658203125, - 552.5286865234375, - 557.649658203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "such that dispersion analysis can be performed. In par-", - "origin": [ - 312.4913024902344, - 566.542724609375 - ], - "bbox": [ - 312.4913024902344, - 559.8177490234375, - 552.5250244140625, - 568.8177490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 559.8177490234375, - 552.5250244140625, - 568.8177490234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ticular, as the longitudinal wave speeds within the CSTs", - "origin": [ - 312.4913024902344, - 577.767578125 - ], - "bbox": [ - 312.4913024902344, - 571.0426025390625, - 552.4738159179688, - 580.0426025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.4913024902344, - 571.0426025390625, - 552.4738159179688, - 580.0426025390625 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 60.49128723144531, - 265.8202209472656, - 300.56268310546875, - 293.83270263671875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "FIG. 7. Real part, imaginary part, and magnitude of the", - "origin": [ - 60.49129867553711, - 272.15447998046875 - ], - "bbox": [ - 60.49129867553711, - 265.8202209472656, - 262.7303161621094, - 273.82012939453125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " y", - "origin": [ - 262.7303161621094, - 272.15447998046875 - ], - "bbox": [ - 262.7303161621094, - 265.8202209472656, - 269.38067626953125, - 273.82012939453125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-compo-", - "origin": [ - 269.3470764160156, - 272.15447998046875 - ], - "bbox": [ - 269.3470764160156, - 265.8202209472656, - 300.56268310546875, - 273.82012939453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 265.8202209472656, - 300.56268310546875, - 273.82012939453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "nent of the shear wave displacement along the right CST of volun-", - "origin": [ - 60.49128723144531, - 282.13275146484375 - ], - "bbox": [ - 60.49128723144531, - 275.7984924316406, - 300.5363464355469, - 283.79840087890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49128723144531, - 275.7984924316406, - 300.5363464355469, - 283.79840087890625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "teer 3. Arrow indicates vertical location of maximum amplitude.", - "origin": [ - 60.49128723144531, - 292.16705322265625 - ], - "bbox": [ - 60.49128723144531, - 285.8327941894531, - 288.5667724609375, - 293.83270263671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49128723144531, - 285.8327941894531, - 288.5667724609375, - 293.83270263671875 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 60.49129867553711, - 602.5194091796875, - 488.74273681640625, - 620.5535278320312 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Table 1", - "origin": [ - 60.49129867553711, - 608.8536376953125 - ], - "bbox": [ - 60.49129867553711, - 602.5194091796875, - 86.4501953125, - 610.519287109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 602.5194091796875, - 86.4501953125, - 610.519287109375 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Elastic coefficients, their mean values, and standard deviations. Velocity and attenuation calculated using Eqs. 8 and 9", - "origin": [ - 60.49129867553711, - 618.8878784179688 - ], - "bbox": [ - 60.49129867553711, - 612.5536499023438, - 488.74273681640625, - 620.5535278320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 612.5536499023438, - 488.74273681640625, - 620.5535278320312 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 72.51034545898438, - 626.5985717773438, - 540.492431640625, - 642.2559814453125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Parameter", - "origin": [ - 72.51034545898438, - 634.5916748046875 - ], - "bbox": [ - 72.51034545898438, - 628.2574462890625, - 109.21068572998047, - 636.25732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.51034545898438, - 628.2574462890625, - 109.21068572998047, - 636.25732421875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Re((Pa", - "origin": [ - 161.68763732910156, - 634.5916748046875 - ], - "bbox": [ - 161.68763732910156, - 628.2574462890625, - 184.9913330078125, - 636.25732421875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 184.9913330078125, - 634.5916748046875 - ], - "bbox": [ - 184.9913330078125, - 628.4317626953125, - 189.8128662109375, - 642.2555541992188 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " m", - "origin": [ - 189.8128662109375, - 634.5916748046875 - ], - "bbox": [ - 189.8128662109375, - 628.2574462890625, - 199.30393981933594, - 636.25732421875 - ] - }, - { - "size": 5.656318187713623, - "flags": 5, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "3", - "origin": [ - 199.27549743652344, - 631.0772094726562 - ], - "bbox": [ - 199.27549743652344, - 626.5985717773438, - 202.58738708496094, - 632.2548828125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")/kg)", - "origin": [ - 202.56370544433594, - 634.5921020507812 - ], - "bbox": [ - 202.56370544433594, - 628.2578735351562, - 217.79551696777344, - 636.2577514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.68763732910156, - 626.5985717773438, - 217.79551696777344, - 642.2555541992188 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Im((Pa", - "origin": [ - 270.2548522949219, - 634.5921020507812 - ], - "bbox": [ - 270.2548522949219, - 628.2578735351562, - 292.6466064453125, - 636.2577514648438 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 292.6466064453125, - 634.5921020507812 - ], - "bbox": [ - 292.6466064453125, - 628.4321899414062, - 297.4161376953125, - 642.2559814453125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " m", - "origin": [ - 297.4161376953125, - 634.5921020507812 - ], - "bbox": [ - 297.4161376953125, - 628.2578735351562, - 306.9072265625, - 636.2577514648438 - ] - }, - { - "size": 5.656318187713623, - "flags": 5, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "3", - "origin": [ - 306.87860107421875, - 631.0772094726562 - ], - "bbox": [ - 306.87860107421875, - 626.5985717773438, - 310.19049072265625, - 632.2548828125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")/kg)", - "origin": [ - 310.2235107421875, - 634.5921020507812 - ], - "bbox": [ - 310.2235107421875, - 628.2578735351562, - 325.4553527832031, - 636.2577514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.2548522949219, - 626.5985717773438, - 325.4553527832031, - 642.2559814453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Velocity (m/s)", - "origin": [ - 377.9147033691406, - 634.5921020507812 - ], - "bbox": [ - 377.9147033691406, - 628.2578735351562, - 425.7333068847656, - 636.2577514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.9147033691406, - 628.2578735351562, - 425.7333068847656, - 636.2577514648438 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Attenuation (m", - "origin": [ - 478.1478576660156, - 634.5921020507812 - ], - "bbox": [ - 478.1478576660156, - 628.2578735351562, - 530.543212890625, - 636.2577514648438 - ] - }, - { - "size": 5.656318187713623, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 530.4754028320312, - 631.0772094726562 - ], - "bbox": [ - 530.4754028320312, - 626.97119140625, - 535.0952758789062, - 636.1857299804688 - ] - }, - { - "size": 5.656318187713623, - "flags": 5, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "1", - "origin": [ - 535.1240234375, - 631.0772094726562 - ], - "bbox": [ - 535.1240234375, - 626.5985717773438, - 538.4359130859375, - 632.2548828125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")", - "origin": [ - 538.4124755859375, - 634.5921020507812 - ], - "bbox": [ - 538.4124755859375, - 628.2578735351562, - 540.492431640625, - 636.2577514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.1478576660156, - 626.5985717773438, - 540.492431640625, - 636.2577514648438 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.50918579101562, - 641.4190673828125, - 535.2482299804688, - 730.4469604492188 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.51190185546875, - 647.9151611328125 - ], - "bbox": [ - 72.51190185546875, - 641.5809326171875, - 78.25582885742188, - 649.580810546875 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "11", - "origin": [ - 78.23619842529297, - 649.218994140625 - ], - "bbox": [ - 78.23619842529297, - 644.7403564453125, - 84.86058044433594, - 650.3966674804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.51190185546875, - 641.5809326171875, - 84.86058044433594, - 650.3966674804688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "28.33", - "origin": [ - 163.89920043945312, - 647.9149780273438 - ], - "bbox": [ - 163.89920043945312, - 641.5807495117188, - 183.81092834472656, - 649.5806274414062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81092834472656, - 647.9149780273438 - ], - "bbox": [ - 183.81092834472656, - 641.4190673828125, - 193.0700225830078, - 649.7469482421875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 1.66", - "origin": [ - 193.0700225830078, - 647.9149780273438 - ], - "bbox": [ - 193.0700225830078, - 641.5807495117188, - 211.1993865966797, - 649.5806274414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.89920043945312, - 641.4190673828125, - 211.1993865966797, - 649.7469482421875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "0.73", - "origin": [ - 275.7537841796875, - 647.9149780273438 - ], - "bbox": [ - 275.7537841796875, - 641.5807495117188, - 291.2496337890625, - 649.5806274414062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2496337890625, - 647.9149780273438 - ], - "bbox": [ - 291.2496337890625, - 641.4190673828125, - 300.5022888183594, - 649.7469482421875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 2.17", - "origin": [ - 300.5022888183594, - 647.9149780273438 - ], - "bbox": [ - 300.5022888183594, - 641.5807495117188, - 318.6317138671875, - 649.5806274414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.7537841796875, - 641.4190673828125, - 318.6317138671875, - 649.7469482421875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "5.34", - "origin": [ - 380.35174560546875, - 647.9149780273438 - ], - "bbox": [ - 380.35174560546875, - 641.5807495117188, - 395.84759521484375, - 649.5806274414062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.84759521484375, - 647.9149780273438 - ], - "bbox": [ - 395.84759521484375, - 641.4190673828125, - 405.1001892089844, - 649.7469482421875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.15", - "origin": [ - 405.1001892089844, - 647.9149780273438 - ], - "bbox": [ - 405.1001892089844, - 641.5807495117188, - 423.2864074707031, - 649.5806274414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.35174560546875, - 641.4190673828125, - 423.2864074707031, - 649.7469482421875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "1.59", - "origin": [ - 487.8975830078125, - 647.9149780273438 - ], - "bbox": [ - 487.8975830078125, - 641.5807495117188, - 503.3934326171875, - 649.5806274414062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.3934326171875, - 647.9149780273438 - ], - "bbox": [ - 503.3934326171875, - 641.4190673828125, - 512.6460571289062, - 649.7469482421875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 1.86", - "origin": [ - 512.6460571289062, - 647.9149780273438 - ], - "bbox": [ - 512.6460571289062, - 641.5807495117188, - 530.832275390625, - 649.5806274414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.8975830078125, - 641.4190673828125, - 530.832275390625, - 649.7469482421875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50918579101562, - 657.8924560546875 - ], - "bbox": [ - 72.50918579101562, - 651.5582275390625, - 78.25311279296875, - 659.55810546875 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "22", - "origin": [ - 78.23619842529297, - 659.2536010742188 - ], - "bbox": [ - 78.23619842529297, - 654.7749633789062, - 84.86058044433594, - 660.4312744140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50918579101562, - 651.5582275390625, - 84.86058044433594, - 660.4312744140625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "29.08", - "origin": [ - 163.89920043945312, - 657.8928833007812 - ], - "bbox": [ - 163.89920043945312, - 651.5586547851562, - 183.81092834472656, - 659.5585327148438 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81092834472656, - 657.8928833007812 - ], - "bbox": [ - 183.81092834472656, - 651.39697265625, - 193.0700225830078, - 659.724853515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 2.67", - "origin": [ - 193.0700225830078, - 657.8928833007812 - ], - "bbox": [ - 193.0700225830078, - 651.5586547851562, - 211.1993865966797, - 659.5585327148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.89920043945312, - 651.39697265625, - 211.1993865966797, - 659.724853515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-0.8", - "origin": [ - 277.0577697753906, - 657.8928833007812 - ], - "bbox": [ - 277.0577697753906, - 651.5586547851562, - 291.2176208496094, - 659.5585327148438 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2176208496094, - 657.8928833007812 - ], - "bbox": [ - 291.2176208496094, - 651.39697265625, - 300.5022888183594, - 659.724853515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 4.17", - "origin": [ - 300.5022888183594, - 657.8928833007812 - ], - "bbox": [ - 300.5022888183594, - 651.5586547851562, - 318.6317138671875, - 659.5585327148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.0577697753906, - 651.39697265625, - 318.6317138671875, - 659.724853515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "5.43", - "origin": [ - 380.35174560546875, - 657.8928833007812 - ], - "bbox": [ - 380.35174560546875, - 651.5586547851562, - 395.84759521484375, - 659.5585327148438 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.84759521484375, - 657.8928833007812 - ], - "bbox": [ - 395.84759521484375, - 651.39697265625, - 405.1001892089844, - 659.724853515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.26", - "origin": [ - 405.1001892089844, - 657.8928833007812 - ], - "bbox": [ - 405.1001892089844, - 651.5586547851562, - 423.2864074707031, - 659.5585327148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.35174560546875, - 651.39697265625, - 423.2864074707031, - 659.724853515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "2.99", - "origin": [ - 487.8975830078125, - 657.8928833007812 - ], - "bbox": [ - 487.8975830078125, - 651.5586547851562, - 503.3934326171875, - 659.5585327148438 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.3934326171875, - 657.8928833007812 - ], - "bbox": [ - 503.3934326171875, - 651.39697265625, - 512.6460571289062, - 659.724853515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 4.69", - "origin": [ - 512.6460571289062, - 657.8928833007812 - ], - "bbox": [ - 512.6460571289062, - 651.5586547851562, - 530.832275390625, - 659.5585327148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.8975830078125, - 651.39697265625, - 530.832275390625, - 659.724853515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50918579101562, - 667.9271850585938 - ], - "bbox": [ - 72.50918579101562, - 661.5929565429688, - 78.25311279296875, - 669.5928344726562 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "33", - "origin": [ - 78.23619842529297, - 669.2315063476562 - ], - "bbox": [ - 78.23619842529297, - 664.7528686523438, - 84.86058044433594, - 670.4091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50918579101562, - 661.5929565429688, - 84.86058044433594, - 670.4091796875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "26.69", - "origin": [ - 163.89920043945312, - 667.9276123046875 - ], - "bbox": [ - 163.89920043945312, - 661.5933837890625, - 183.81092834472656, - 669.59326171875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81092834472656, - 667.9276123046875 - ], - "bbox": [ - 183.81092834472656, - 661.4317016601562, - 193.0700225830078, - 669.7595825195312 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 8.21", - "origin": [ - 193.0700225830078, - 667.9276123046875 - ], - "bbox": [ - 193.0700225830078, - 661.5933837890625, - 211.1993865966797, - 669.59326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.89920043945312, - 661.4317016601562, - 211.1993865966797, - 669.7595825195312 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-8.77", - "origin": [ - 272.6354064941406, - 667.9276123046875 - ], - "bbox": [ - 272.6354064941406, - 661.5933837890625, - 291.2112121582031, - 669.59326171875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2112121582031, - 667.9276123046875 - ], - "bbox": [ - 291.2112121582031, - 661.4317016601562, - 300.5022888183594, - 669.7595825195312 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 10.85", - "origin": [ - 300.5022888183594, - 667.9276123046875 - ], - "bbox": [ - 300.5022888183594, - 661.5933837890625, - 323.04766845703125, - 669.59326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.6354064941406, - 661.4317016601562, - 323.04766845703125, - 669.7595825195312 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "5.73", - "origin": [ - 380.35174560546875, - 667.9276123046875 - ], - "bbox": [ - 380.35174560546875, - 661.5933837890625, - 395.84759521484375, - 669.59326171875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.84759521484375, - 667.9276123046875 - ], - "bbox": [ - 395.84759521484375, - 661.4317016601562, - 405.1001892089844, - 669.7595825195312 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.57", - "origin": [ - 405.1001892089844, - 667.9276123046875 - ], - "bbox": [ - 405.1001892089844, - 661.5933837890625, - 423.2864074707031, - 669.59326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.35174560546875, - 661.4317016601562, - 423.2864074707031, - 669.7595825195312 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "10.68", - "origin": [ - 483.4752502441406, - 667.9276123046875 - ], - "bbox": [ - 483.4752502441406, - 661.5933837890625, - 503.3870544433594, - 669.59326171875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.3870544433594, - 667.9276123046875 - ], - "bbox": [ - 503.3870544433594, - 661.4317016601562, - 512.6460571289062, - 669.7595825195312 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 12.63", - "origin": [ - 512.6460571289062, - 667.9276123046875 - ], - "bbox": [ - 512.6460571289062, - 661.5933837890625, - 535.2482299804688, - 669.59326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.4752502441406, - 661.4317016601562, - 535.2482299804688, - 669.7595825195312 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50918579101562, - 677.9050903320312 - ], - "bbox": [ - 72.50918579101562, - 671.5708618164062, - 78.25311279296875, - 679.5707397460938 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "44", - "origin": [ - 78.23619842529297, - 679.2662353515625 - ], - "bbox": [ - 78.23619842529297, - 674.78759765625, - 84.86058044433594, - 680.4439086914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50918579101562, - 671.5708618164062, - 84.86058044433594, - 680.4439086914062 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "4.04", - "origin": [ - 168.32119750976562, - 677.905517578125 - ], - "bbox": [ - 168.32119750976562, - 671.5712890625, - 183.81698608398438, - 679.5711669921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81698608398438, - 677.905517578125 - ], - "bbox": [ - 183.81698608398438, - 671.4096069335938, - 193.06968688964844, - 679.7374877929688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.51", - "origin": [ - 193.06968688964844, - 677.905517578125 - ], - "bbox": [ - 193.06968688964844, - 671.5712890625, - 211.1990509033203, - 679.5711669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.32119750976562, - 671.4096069335938, - 211.1990509033203, - 679.7374877929688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-0.89", - "origin": [ - 272.63507080078125, - 677.905517578125 - ], - "bbox": [ - 272.63507080078125, - 671.5712890625, - 291.21087646484375, - 679.5711669921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.21087646484375, - 677.905517578125 - ], - "bbox": [ - 291.21087646484375, - 671.4096069335938, - 300.501953125, - 679.7374877929688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.96", - "origin": [ - 300.501953125, - 677.905517578125 - ], - "bbox": [ - 300.501953125, - 671.5712890625, - 318.6313781738281, - 679.5711669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.63507080078125, - 671.4096069335938, - 318.6313781738281, - 679.7374877929688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "2.09", - "origin": [ - 380.3514099121094, - 677.905517578125 - ], - "bbox": [ - 380.3514099121094, - 671.5712890625, - 395.8472595214844, - 679.5711669921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.8472595214844, - 677.905517578125 - ], - "bbox": [ - 395.8472595214844, - 671.4096069335938, - 405.099853515625, - 679.7374877929688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.07", - "origin": [ - 405.099853515625, - 677.905517578125 - ], - "bbox": [ - 405.099853515625, - 671.5712890625, - 423.28607177734375, - 679.5711669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.3514099121094, - 671.4096069335938, - 423.28607177734375, - 679.7374877929688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "17.49", - "origin": [ - 483.47491455078125, - 677.905517578125 - ], - "bbox": [ - 483.47491455078125, - 671.5712890625, - 503.38671875, - 679.5711669921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.38671875, - 677.905517578125 - ], - "bbox": [ - 503.38671875, - 671.4096069335938, - 512.645751953125, - 679.7374877929688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 19.57", - "origin": [ - 512.645751953125, - 677.905517578125 - ], - "bbox": [ - 512.645751953125, - 671.5712890625, - 535.2479248046875, - 679.5711669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.47491455078125, - 671.4096069335938, - 535.2479248046875, - 679.7374877929688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50967407226562, - 687.8837890625 - ], - "bbox": [ - 72.50967407226562, - 681.549560546875, - 78.25360107421875, - 689.5494384765625 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "55", - "origin": [ - 78.23619842529297, - 689.2440795898438 - ], - "bbox": [ - 78.23619842529297, - 684.7654418945312, - 84.86058044433594, - 690.4217529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50967407226562, - 681.549560546875, - 84.86058044433594, - 690.4217529296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "4.04", - "origin": [ - 168.32119750976562, - 687.8834838867188 - ], - "bbox": [ - 168.32119750976562, - 681.5492553710938, - 183.81698608398438, - 689.5491333007812 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81698608398438, - 687.8834838867188 - ], - "bbox": [ - 183.81698608398438, - 681.3875732421875, - 193.06968688964844, - 689.7154541015625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.32", - "origin": [ - 193.06968688964844, - 687.8834838867188 - ], - "bbox": [ - 193.06968688964844, - 681.5492553710938, - 211.1990509033203, - 689.5491333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.32119750976562, - 681.3875732421875, - 211.1990509033203, - 689.7154541015625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-0.88", - "origin": [ - 272.63507080078125, - 687.8834838867188 - ], - "bbox": [ - 272.63507080078125, - 681.5492553710938, - 291.21087646484375, - 689.5491333007812 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.21087646484375, - 687.8834838867188 - ], - "bbox": [ - 291.21087646484375, - 681.3875732421875, - 300.501953125, - 689.7154541015625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 1.00", - "origin": [ - 300.501953125, - 687.8834838867188 - ], - "bbox": [ - 300.501953125, - 681.5492553710938, - 318.6313781738281, - 689.5491333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.63507080078125, - 681.3875732421875, - 318.6313781738281, - 689.7154541015625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "2.09", - "origin": [ - 380.3514099121094, - 687.8834838867188 - ], - "bbox": [ - 380.3514099121094, - 681.5492553710938, - 395.8472595214844, - 689.5491333007812 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.8472595214844, - 687.8834838867188 - ], - "bbox": [ - 395.8472595214844, - 681.3875732421875, - 405.099853515625, - 689.7154541015625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.07", - "origin": [ - 405.099853515625, - 687.8834838867188 - ], - "bbox": [ - 405.099853515625, - 681.5492553710938, - 423.28607177734375, - 689.5491333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.3514099121094, - 681.3875732421875, - 423.28607177734375, - 689.7154541015625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "17.42", - "origin": [ - 483.47491455078125, - 687.8834838867188 - ], - "bbox": [ - 483.47491455078125, - 681.5492553710938, - 503.38671875, - 689.5491333007812 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.38671875, - 687.8834838867188 - ], - "bbox": [ - 503.38671875, - 681.3875732421875, - 512.645751953125, - 689.7154541015625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 20.75", - "origin": [ - 512.645751953125, - 687.8834838867188 - ], - "bbox": [ - 512.645751953125, - 681.5492553710938, - 535.2479248046875, - 689.5491333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.47491455078125, - 681.3875732421875, - 535.2479248046875, - 689.7154541015625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50967407226562, - 697.9177856445312 - ], - "bbox": [ - 72.50967407226562, - 691.5835571289062, - 78.25360107421875, - 699.5834350585938 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "66", - "origin": [ - 78.23619842529297, - 699.2219848632812 - ], - "bbox": [ - 78.23619842529297, - 694.7433471679688, - 84.86058044433594, - 700.399658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50967407226562, - 691.5835571289062, - 84.86058044433594, - 700.399658203125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "4.59", - "origin": [ - 168.32119750976562, - 697.918212890625 - ], - "bbox": [ - 168.32119750976562, - 691.583984375, - 183.81698608398438, - 699.5838623046875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81698608398438, - 697.918212890625 - ], - "bbox": [ - 183.81698608398438, - 691.4223022460938, - 193.06968688964844, - 699.7501831054688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.39", - "origin": [ - 193.06968688964844, - 697.918212890625 - ], - "bbox": [ - 193.06968688964844, - 691.583984375, - 211.1990509033203, - 699.5838623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.32119750976562, - 691.4223022460938, - 211.1990509033203, - 699.7501831054688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "0.01", - "origin": [ - 275.7534484863281, - 697.918212890625 - ], - "bbox": [ - 275.7534484863281, - 691.583984375, - 291.2492980957031, - 699.5838623046875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2492980957031, - 697.918212890625 - ], - "bbox": [ - 291.2492980957031, - 691.4223022460938, - 300.501953125, - 699.7501831054688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.47", - "origin": [ - 300.501953125, - 697.918212890625 - ], - "bbox": [ - 300.501953125, - 691.583984375, - 318.6313781738281, - 699.5838623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.7534484863281, - 691.4223022460938, - 318.6313781738281, - 699.7501831054688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "2.17", - "origin": [ - 380.3514099121094, - 697.918212890625 - ], - "bbox": [ - 380.3514099121094, - 691.583984375, - 395.8472595214844, - 699.5838623046875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.8472595214844, - 697.918212890625 - ], - "bbox": [ - 395.8472595214844, - 691.4223022460938, - 405.099853515625, - 699.7501831054688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.16", - "origin": [ - 405.099853515625, - 697.918212890625 - ], - "bbox": [ - 405.099853515625, - 691.583984375, - 423.28607177734375, - 699.5838623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.3514099121094, - 691.4223022460938, - 423.28607177734375, - 699.7501831054688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "4.68", - "origin": [ - 487.89727783203125, - 697.918212890625 - ], - "bbox": [ - 487.89727783203125, - 691.583984375, - 503.39312744140625, - 699.5838623046875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.39312744140625, - 697.918212890625 - ], - "bbox": [ - 503.39312744140625, - 691.4223022460938, - 512.645751953125, - 699.7501831054688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 17.44", - "origin": [ - 512.645751953125, - 697.918212890625 - ], - "bbox": [ - 512.645751953125, - 691.583984375, - 535.2479248046875, - 699.5838623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.89727783203125, - 691.4223022460938, - 535.2479248046875, - 699.7501831054688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50967407226562, - 707.8956909179688 - ], - "bbox": [ - 72.50967407226562, - 701.5614624023438, - 78.25360107421875, - 709.5613403320312 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "12", - "origin": [ - 78.23619842529297, - 709.2567138671875 - ], - "bbox": [ - 78.23619842529297, - 704.778076171875, - 84.86058044433594, - 710.4343872070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50967407226562, - 701.5614624023438, - 84.86058044433594, - 710.4343872070312 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "17.52", - "origin": [ - 163.89920043945312, - 707.8961181640625 - ], - "bbox": [ - 163.89920043945312, - 701.5618896484375, - 183.81092834472656, - 709.561767578125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81092834472656, - 707.8961181640625 - ], - "bbox": [ - 183.81092834472656, - 701.4002075195312, - 193.0700225830078, - 709.7280883789062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 5.46", - "origin": [ - 193.0700225830078, - 707.8961181640625 - ], - "bbox": [ - 193.0700225830078, - 701.5618896484375, - 211.1993865966797, - 709.561767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.89920043945312, - 701.4002075195312, - 211.1993865966797, - 709.7280883789062 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-1.79", - "origin": [ - 272.6354064941406, - 707.8961181640625 - ], - "bbox": [ - 272.6354064941406, - 701.5618896484375, - 291.2112121582031, - 709.561767578125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2112121582031, - 707.8961181640625 - ], - "bbox": [ - 291.2112121582031, - 701.4002075195312, - 300.5022888183594, - 709.7280883789062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 4.59", - "origin": [ - 300.5022888183594, - 707.8961181640625 - ], - "bbox": [ - 300.5022888183594, - 701.5618896484375, - 318.6317138671875, - 709.561767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.6354064941406, - 701.4002075195312, - 318.6317138671875, - 709.7280883789062 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 399.797119140625, - 707.8961181640625 - ], - "bbox": [ - 399.797119140625, - 701.5618896484375, - 403.79705810546875, - 709.561767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.797119140625, - 701.5618896484375, - 403.79705810546875, - 709.561767578125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 507.34295654296875, - 707.8961181640625 - ], - "bbox": [ - 507.34295654296875, - 701.5618896484375, - 511.3428955078125, - 709.561767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.34295654296875, - 701.5618896484375, - 511.3428955078125, - 709.561767578125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50994873046875, - 717.9303588867188 - ], - "bbox": [ - 72.50994873046875, - 711.5961303710938, - 78.25387573242188, - 719.5960083007812 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "13", - "origin": [ - 78.23619842529297, - 719.2346801757812 - ], - "bbox": [ - 78.23619842529297, - 714.7560424804688, - 84.86058044433594, - 720.412353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50994873046875, - 711.5961303710938, - 84.86058044433594, - 720.412353515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "9.45", - "origin": [ - 168.32119750976562, - 717.9307861328125 - ], - "bbox": [ - 168.32119750976562, - 711.5965576171875, - 183.81698608398438, - 719.596435546875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81698608398438, - 717.9307861328125 - ], - "bbox": [ - 183.81698608398438, - 711.4348754882812, - 193.06968688964844, - 719.7627563476562 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 6.18", - "origin": [ - 193.06968688964844, - 717.9307861328125 - ], - "bbox": [ - 193.06968688964844, - 711.5965576171875, - 211.1990509033203, - 719.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.32119750976562, - 711.4348754882812, - 211.1990509033203, - 719.7627563476562 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-2.81", - "origin": [ - 272.63507080078125, - 717.9307861328125 - ], - "bbox": [ - 272.63507080078125, - 711.5965576171875, - 291.21087646484375, - 719.596435546875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.21087646484375, - 717.9307861328125 - ], - "bbox": [ - 291.21087646484375, - 711.4348754882812, - 300.501953125, - 719.7627563476562 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 8.04", - "origin": [ - 300.501953125, - 717.9307861328125 - ], - "bbox": [ - 300.501953125, - 711.5965576171875, - 318.6313781738281, - 719.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.63507080078125, - 711.4348754882812, - 318.6313781738281, - 719.7627563476562 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 399.7967529296875, - 717.9307861328125 - ], - "bbox": [ - 399.7967529296875, - 711.5965576171875, - 403.79669189453125, - 719.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.7967529296875, - 711.5965576171875, - 403.79669189453125, - 719.596435546875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 507.34259033203125, - 717.9307861328125 - ], - "bbox": [ - 507.34259033203125, - 711.5965576171875, - 511.342529296875, - 719.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.34259033203125, - 711.5965576171875, - 511.342529296875, - 719.596435546875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50961303710938, - 727.9090576171875 - ], - "bbox": [ - 72.50961303710938, - 721.5748291015625, - 78.2535400390625, - 729.57470703125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "23", - "origin": [ - 78.23619842529297, - 729.269287109375 - ], - "bbox": [ - 78.23619842529297, - 724.7906494140625, - 84.86058044433594, - 730.4469604492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50961303710938, - 721.5748291015625, - 84.86058044433594, - 730.4469604492188 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "7.92", - "origin": [ - 168.32119750976562, - 727.90869140625 - ], - "bbox": [ - 168.32119750976562, - 721.574462890625, - 183.81698608398438, - 729.5743408203125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81698608398438, - 727.90869140625 - ], - "bbox": [ - 183.81698608398438, - 721.4127807617188, - 193.06968688964844, - 729.7406616210938 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 2.361", - "origin": [ - 193.06968688964844, - 727.90869140625 - ], - "bbox": [ - 193.06968688964844, - 721.574462890625, - 215.614990234375, - 729.5743408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.32119750976562, - 721.4127807617188, - 215.614990234375, - 729.7406616210938 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "0.45", - "origin": [ - 275.7534484863281, - 727.90869140625 - ], - "bbox": [ - 275.7534484863281, - 721.574462890625, - 291.2492980957031, - 729.5743408203125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2492980957031, - 727.90869140625 - ], - "bbox": [ - 291.2492980957031, - 721.4127807617188, - 300.501953125, - 729.7406616210938 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 2.03", - "origin": [ - 300.501953125, - 727.90869140625 - ], - "bbox": [ - 300.501953125, - 721.574462890625, - 318.6313781738281, - 729.5743408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.7534484863281, - 721.4127807617188, - 318.6313781738281, - 729.7406616210938 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 399.7967529296875, - 727.90869140625 - ], - "bbox": [ - 399.7967529296875, - 721.574462890625, - 403.79669189453125, - 729.5743408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.7967529296875, - 721.574462890625, - 403.79669189453125, - 729.5743408203125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 507.34259033203125, - 727.90869140625 - ], - "bbox": [ - 507.34259033203125, - 721.574462890625, - 511.342529296875, - 729.5743408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.34259033203125, - 721.574462890625, - 511.342529296875, - 729.5743408203125 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 60.49129867553711, - 734.1038818359375, - 304.8695983886719, - 761.3621826171875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Longitudinal propagation angles", - "origin": [ - 60.491363525390625, - 740.4381103515625 - ], - "bbox": [ - 60.491363525390625, - 734.1038818359375, - 175.78271484375, - 742.103759765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.491363525390625, - 734.1038818359375, - 175.78271484375, - 742.103759765625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMP13", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "h", - "origin": [ - 60.49129867553711, - 750.415771484375 - ], - "bbox": [ - 60.49129867553711, - 743.19775390625, - 64.99130249023438, - 753.1337890625 - ] - }, - { - "size": 6.300000190734863, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "p", - "origin": [ - 64.97010040283203, - 751.7764282226562 - ], - "bbox": [ - 64.97010040283203, - 746.6608276367188, - 69.16590118408203, - 753.2191162109375 - ] - }, - { - "size": 4.5, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "1", - "origin": [ - 69.16529846191406, - 752.7401733398438 - ], - "bbox": [ - 69.16529846191406, - 749.377685546875, - 71.64929962158203, - 753.877685546875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 71.64929962158203, - 752.7401733398438 - ], - "bbox": [ - 71.64929962158203, - 743.4857788085938, - 82.10479736328125, - 761.3621826171875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 45.26", - "origin": [ - 82.10479736328125, - 750.415771484375 - ], - "bbox": [ - 82.10479736328125, - 743.6907958984375, - 106.98710632324219, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 106.97949981689453, - 747.184326171875 - ], - "bbox": [ - 106.97949981689453, - 742.3333129882812, - 110.12950134277344, - 753.2197265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "6", - "origin": [ - 110.60780334472656, - 750.415771484375 - ], - "bbox": [ - 110.60780334472656, - 743.1077880859375, - 118.10480499267578, - 752.4767456054688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "6.87", - "origin": [ - 118.14800262451172, - 750.415771484375 - ], - "bbox": [ - 118.14800262451172, - 743.6907958984375, - 135.5810089111328, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 135.55270385742188, - 747.184326171875 - ], - "bbox": [ - 135.55270385742188, - 742.3333129882812, - 138.70269775390625, - 753.2197265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ",", - "origin": [ - 139.18099975585938, - 750.415771484375 - ], - "bbox": [ - 139.18099975585938, - 743.6907958984375, - 141.7100067138672, - 752.6907958984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMP13", - "color": 2301727, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": " h", - "origin": [ - 141.7100067138672, - 750.415771484375 - ], - "bbox": [ - 141.7100067138672, - 743.19775390625, - 149.17999267578125, - 753.1337890625 - ] - }, - { - "size": 6.300000190734863, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "p", - "origin": [ - 149.2156982421875, - 751.7764282226562 - ], - "bbox": [ - 149.2156982421875, - 746.6608276367188, - 153.4114990234375, - 753.2191162109375 - ] - }, - { - "size": 4.5, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "2", - "origin": [ - 153.41099548339844, - 752.7401733398438 - ], - "bbox": [ - 153.41099548339844, - 749.377685546875, - 155.89498901367188, - 753.877685546875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 155.89498901367188, - 752.7401733398438 - ], - "bbox": [ - 155.89498901367188, - 743.4857788085938, - 166.29368591308594, - 761.3621826171875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 44.12", - "origin": [ - 166.29368591308594, - 750.415771484375 - ], - "bbox": [ - 166.29368591308594, - 743.6907958984375, - 191.17601013183594, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 191.1685028076172, - 747.184326171875 - ], - "bbox": [ - 191.1685028076172, - 742.3333129882812, - 194.31849670410156, - 753.2197265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "6", - "origin": [ - 194.7967987060547, - 750.415771484375 - ], - "bbox": [ - 194.7967987060547, - 743.1077880859375, - 202.29379272460938, - 752.4767456054688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "12.6", - "origin": [ - 202.33700561523438, - 750.415771484375 - ], - "bbox": [ - 202.33700561523438, - 743.6907958984375, - 219.77001953125, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 219.74169921875, - 747.184326171875 - ], - "bbox": [ - 219.74169921875, - 742.3333129882812, - 222.89169311523438, - 753.2197265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ",", - "origin": [ - 223.3699951171875, - 750.415771484375 - ], - "bbox": [ - 223.3699951171875, - 743.6907958984375, - 225.8990020751953, - 752.6907958984375 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " f", - "origin": [ - 225.8990020751953, - 750.415771484375 - ], - "bbox": [ - 225.8990020751953, - 743.1077880859375, - 234.8629913330078, - 752.4767456054688 - ] - }, - { - "size": 6.300000190734863, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "g", - "origin": [ - 234.87869262695312, - 752.513427734375 - ], - "bbox": [ - 234.87869262695312, - 747.3978271484375, - 238.35629272460938, - 753.9561157226562 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " ¼", - "origin": [ - 238.35629272460938, - 752.513427734375 - ], - "bbox": [ - 238.35629272460938, - 743.4857788085938, - 248.27169799804688, - 761.1354370117188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": " 38.39", - "origin": [ - 248.27169799804688, - 750.415771484375 - ], - "bbox": [ - 248.27169799804688, - 743.6907958984375, - 273.2106628417969, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 273.1463928222656, - 747.184326171875 - ], - "bbox": [ - 273.1463928222656, - 742.3333129882812, - 276.29638671875, - 753.2197265625 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "6", - "origin": [ - 276.8313903808594, - 750.415771484375 - ], - "bbox": [ - 276.8313903808594, - 743.1077880859375, - 284.3283996582031, - 752.4767456054688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "9.87", - "origin": [ - 284.31488037109375, - 750.415771484375 - ], - "bbox": [ - 284.31488037109375, - 743.6907958984375, - 301.7478332519531, - 752.6907958984375 - ] - }, - { - "size": 6.300000190734863, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 301.7196044921875, - 747.184326171875 - ], - "bbox": [ - 301.7196044921875, - 742.3333129882812, - 304.8695983886719, - 753.2197265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 742.3333129882812, - 304.8695983886719, - 761.3621826171875 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "10", - "origin": [ - 60.49129867553711, - 56.6646728515625 - ], - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 69.32318878173828, - 58.686893463134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 69.32318878173828, - 58.686893463134766 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Romano et al.", - "origin": [ - 501.5601806640625, - 56.6646728515625 - ], - "bbox": [ - 501.5601806640625, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 501.5601806640625, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 5, - "type": 0, - "bbox": [ - 60.49129867553711, - 602.5194091796875, - 488.74273681640625, - 620.5535278320312 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Table 1", - "origin": [ - 60.49129867553711, - 608.8536376953125 - ], - "bbox": [ - 60.49129867553711, - 602.5194091796875, - 86.4501953125, - 610.519287109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 602.5194091796875, - 86.4501953125, - 610.519287109375 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Elastic coefficients, their mean values, and standard deviations. Velocity and attenuation calculated using Eqs. 8 and 9", - "origin": [ - 60.49129867553711, - 618.8878784179688 - ], - "bbox": [ - 60.49129867553711, - 612.5536499023438, - 488.74273681640625, - 620.5535278320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 612.5536499023438, - 488.74273681640625, - 620.5535278320312 - ] - } - ], - "tag": "on-table" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 72.51034545898438, - 626.5985717773438, - 540.492431640625, - 642.2559814453125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Parameter", - "origin": [ - 72.51034545898438, - 634.5916748046875 - ], - "bbox": [ - 72.51034545898438, - 628.2574462890625, - 109.21068572998047, - 636.25732421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.51034545898438, - 628.2574462890625, - 109.21068572998047, - 636.25732421875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Re((Pa", - "origin": [ - 161.68763732910156, - 634.5916748046875 - ], - "bbox": [ - 161.68763732910156, - 628.2574462890625, - 184.9913330078125, - 636.25732421875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 184.9913330078125, - 634.5916748046875 - ], - "bbox": [ - 184.9913330078125, - 628.4317626953125, - 189.8128662109375, - 642.2555541992188 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " m", - "origin": [ - 189.8128662109375, - 634.5916748046875 - ], - "bbox": [ - 189.8128662109375, - 628.2574462890625, - 199.30393981933594, - 636.25732421875 - ] - }, - { - "size": 5.656318187713623, - "flags": 5, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "3", - "origin": [ - 199.27549743652344, - 631.0772094726562 - ], - "bbox": [ - 199.27549743652344, - 626.5985717773438, - 202.58738708496094, - 632.2548828125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")/kg)", - "origin": [ - 202.56370544433594, - 634.5921020507812 - ], - "bbox": [ - 202.56370544433594, - 628.2578735351562, - 217.79551696777344, - 636.2577514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.68763732910156, - 626.5985717773438, - 217.79551696777344, - 642.2555541992188 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Im((Pa", - "origin": [ - 270.2548522949219, - 634.5921020507812 - ], - "bbox": [ - 270.2548522949219, - 628.2578735351562, - 292.6466064453125, - 636.2577514648438 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 292.6466064453125, - 634.5921020507812 - ], - "bbox": [ - 292.6466064453125, - 628.4321899414062, - 297.4161376953125, - 642.2559814453125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " m", - "origin": [ - 297.4161376953125, - 634.5921020507812 - ], - "bbox": [ - 297.4161376953125, - 628.2578735351562, - 306.9072265625, - 636.2577514648438 - ] - }, - { - "size": 5.656318187713623, - "flags": 5, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "3", - "origin": [ - 306.87860107421875, - 631.0772094726562 - ], - "bbox": [ - 306.87860107421875, - 626.5985717773438, - 310.19049072265625, - 632.2548828125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")/kg)", - "origin": [ - 310.2235107421875, - 634.5921020507812 - ], - "bbox": [ - 310.2235107421875, - 628.2578735351562, - 325.4553527832031, - 636.2577514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 270.2548522949219, - 626.5985717773438, - 325.4553527832031, - 642.2559814453125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Velocity (m/s)", - "origin": [ - 377.9147033691406, - 634.5921020507812 - ], - "bbox": [ - 377.9147033691406, - 628.2578735351562, - 425.7333068847656, - 636.2577514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 377.9147033691406, - 628.2578735351562, - 425.7333068847656, - 636.2577514648438 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "Attenuation (m", - "origin": [ - 478.1478576660156, - 634.5921020507812 - ], - "bbox": [ - 478.1478576660156, - 628.2578735351562, - 530.543212890625, - 636.2577514648438 - ] - }, - { - "size": 5.656318187713623, - "flags": 5, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 530.4754028320312, - 631.0772094726562 - ], - "bbox": [ - 530.4754028320312, - 626.97119140625, - 535.0952758789062, - 636.1857299804688 - ] - }, - { - "size": 5.656318187713623, - "flags": 5, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "1", - "origin": [ - 535.1240234375, - 631.0772094726562 - ], - "bbox": [ - 535.1240234375, - 626.5985717773438, - 538.4359130859375, - 632.2548828125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ")", - "origin": [ - 538.4124755859375, - 634.5921020507812 - ], - "bbox": [ - 538.4124755859375, - 628.2578735351562, - 540.492431640625, - 636.2577514648438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 478.1478576660156, - 626.5985717773438, - 540.492431640625, - 636.2577514648438 - ] - } - ], - "tag": "on-table" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 72.50918579101562, - 641.4190673828125, - 535.2482299804688, - 730.4469604492188 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.51190185546875, - 647.9151611328125 - ], - "bbox": [ - 72.51190185546875, - 641.5809326171875, - 78.25582885742188, - 649.580810546875 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "11", - "origin": [ - 78.23619842529297, - 649.218994140625 - ], - "bbox": [ - 78.23619842529297, - 644.7403564453125, - 84.86058044433594, - 650.3966674804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.51190185546875, - 641.5809326171875, - 84.86058044433594, - 650.3966674804688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "28.33", - "origin": [ - 163.89920043945312, - 647.9149780273438 - ], - "bbox": [ - 163.89920043945312, - 641.5807495117188, - 183.81092834472656, - 649.5806274414062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81092834472656, - 647.9149780273438 - ], - "bbox": [ - 183.81092834472656, - 641.4190673828125, - 193.0700225830078, - 649.7469482421875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 1.66", - "origin": [ - 193.0700225830078, - 647.9149780273438 - ], - "bbox": [ - 193.0700225830078, - 641.5807495117188, - 211.1993865966797, - 649.5806274414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.89920043945312, - 641.4190673828125, - 211.1993865966797, - 649.7469482421875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "0.73", - "origin": [ - 275.7537841796875, - 647.9149780273438 - ], - "bbox": [ - 275.7537841796875, - 641.5807495117188, - 291.2496337890625, - 649.5806274414062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2496337890625, - 647.9149780273438 - ], - "bbox": [ - 291.2496337890625, - 641.4190673828125, - 300.5022888183594, - 649.7469482421875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 2.17", - "origin": [ - 300.5022888183594, - 647.9149780273438 - ], - "bbox": [ - 300.5022888183594, - 641.5807495117188, - 318.6317138671875, - 649.5806274414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.7537841796875, - 641.4190673828125, - 318.6317138671875, - 649.7469482421875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "5.34", - "origin": [ - 380.35174560546875, - 647.9149780273438 - ], - "bbox": [ - 380.35174560546875, - 641.5807495117188, - 395.84759521484375, - 649.5806274414062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.84759521484375, - 647.9149780273438 - ], - "bbox": [ - 395.84759521484375, - 641.4190673828125, - 405.1001892089844, - 649.7469482421875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.15", - "origin": [ - 405.1001892089844, - 647.9149780273438 - ], - "bbox": [ - 405.1001892089844, - 641.5807495117188, - 423.2864074707031, - 649.5806274414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.35174560546875, - 641.4190673828125, - 423.2864074707031, - 649.7469482421875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "1.59", - "origin": [ - 487.8975830078125, - 647.9149780273438 - ], - "bbox": [ - 487.8975830078125, - 641.5807495117188, - 503.3934326171875, - 649.5806274414062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.3934326171875, - 647.9149780273438 - ], - "bbox": [ - 503.3934326171875, - 641.4190673828125, - 512.6460571289062, - 649.7469482421875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 1.86", - "origin": [ - 512.6460571289062, - 647.9149780273438 - ], - "bbox": [ - 512.6460571289062, - 641.5807495117188, - 530.832275390625, - 649.5806274414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.8975830078125, - 641.4190673828125, - 530.832275390625, - 649.7469482421875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50918579101562, - 657.8924560546875 - ], - "bbox": [ - 72.50918579101562, - 651.5582275390625, - 78.25311279296875, - 659.55810546875 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "22", - "origin": [ - 78.23619842529297, - 659.2536010742188 - ], - "bbox": [ - 78.23619842529297, - 654.7749633789062, - 84.86058044433594, - 660.4312744140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50918579101562, - 651.5582275390625, - 84.86058044433594, - 660.4312744140625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "29.08", - "origin": [ - 163.89920043945312, - 657.8928833007812 - ], - "bbox": [ - 163.89920043945312, - 651.5586547851562, - 183.81092834472656, - 659.5585327148438 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81092834472656, - 657.8928833007812 - ], - "bbox": [ - 183.81092834472656, - 651.39697265625, - 193.0700225830078, - 659.724853515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 2.67", - "origin": [ - 193.0700225830078, - 657.8928833007812 - ], - "bbox": [ - 193.0700225830078, - 651.5586547851562, - 211.1993865966797, - 659.5585327148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.89920043945312, - 651.39697265625, - 211.1993865966797, - 659.724853515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-0.8", - "origin": [ - 277.0577697753906, - 657.8928833007812 - ], - "bbox": [ - 277.0577697753906, - 651.5586547851562, - 291.2176208496094, - 659.5585327148438 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2176208496094, - 657.8928833007812 - ], - "bbox": [ - 291.2176208496094, - 651.39697265625, - 300.5022888183594, - 659.724853515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 4.17", - "origin": [ - 300.5022888183594, - 657.8928833007812 - ], - "bbox": [ - 300.5022888183594, - 651.5586547851562, - 318.6317138671875, - 659.5585327148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.0577697753906, - 651.39697265625, - 318.6317138671875, - 659.724853515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "5.43", - "origin": [ - 380.35174560546875, - 657.8928833007812 - ], - "bbox": [ - 380.35174560546875, - 651.5586547851562, - 395.84759521484375, - 659.5585327148438 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.84759521484375, - 657.8928833007812 - ], - "bbox": [ - 395.84759521484375, - 651.39697265625, - 405.1001892089844, - 659.724853515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.26", - "origin": [ - 405.1001892089844, - 657.8928833007812 - ], - "bbox": [ - 405.1001892089844, - 651.5586547851562, - 423.2864074707031, - 659.5585327148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.35174560546875, - 651.39697265625, - 423.2864074707031, - 659.724853515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "2.99", - "origin": [ - 487.8975830078125, - 657.8928833007812 - ], - "bbox": [ - 487.8975830078125, - 651.5586547851562, - 503.3934326171875, - 659.5585327148438 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.3934326171875, - 657.8928833007812 - ], - "bbox": [ - 503.3934326171875, - 651.39697265625, - 512.6460571289062, - 659.724853515625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 4.69", - "origin": [ - 512.6460571289062, - 657.8928833007812 - ], - "bbox": [ - 512.6460571289062, - 651.5586547851562, - 530.832275390625, - 659.5585327148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.8975830078125, - 651.39697265625, - 530.832275390625, - 659.724853515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50918579101562, - 667.9271850585938 - ], - "bbox": [ - 72.50918579101562, - 661.5929565429688, - 78.25311279296875, - 669.5928344726562 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "33", - "origin": [ - 78.23619842529297, - 669.2315063476562 - ], - "bbox": [ - 78.23619842529297, - 664.7528686523438, - 84.86058044433594, - 670.4091796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50918579101562, - 661.5929565429688, - 84.86058044433594, - 670.4091796875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "26.69", - "origin": [ - 163.89920043945312, - 667.9276123046875 - ], - "bbox": [ - 163.89920043945312, - 661.5933837890625, - 183.81092834472656, - 669.59326171875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81092834472656, - 667.9276123046875 - ], - "bbox": [ - 183.81092834472656, - 661.4317016601562, - 193.0700225830078, - 669.7595825195312 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 8.21", - "origin": [ - 193.0700225830078, - 667.9276123046875 - ], - "bbox": [ - 193.0700225830078, - 661.5933837890625, - 211.1993865966797, - 669.59326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.89920043945312, - 661.4317016601562, - 211.1993865966797, - 669.7595825195312 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-8.77", - "origin": [ - 272.6354064941406, - 667.9276123046875 - ], - "bbox": [ - 272.6354064941406, - 661.5933837890625, - 291.2112121582031, - 669.59326171875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2112121582031, - 667.9276123046875 - ], - "bbox": [ - 291.2112121582031, - 661.4317016601562, - 300.5022888183594, - 669.7595825195312 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 10.85", - "origin": [ - 300.5022888183594, - 667.9276123046875 - ], - "bbox": [ - 300.5022888183594, - 661.5933837890625, - 323.04766845703125, - 669.59326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.6354064941406, - 661.4317016601562, - 323.04766845703125, - 669.7595825195312 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "5.73", - "origin": [ - 380.35174560546875, - 667.9276123046875 - ], - "bbox": [ - 380.35174560546875, - 661.5933837890625, - 395.84759521484375, - 669.59326171875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.84759521484375, - 667.9276123046875 - ], - "bbox": [ - 395.84759521484375, - 661.4317016601562, - 405.1001892089844, - 669.7595825195312 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.57", - "origin": [ - 405.1001892089844, - 667.9276123046875 - ], - "bbox": [ - 405.1001892089844, - 661.5933837890625, - 423.2864074707031, - 669.59326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.35174560546875, - 661.4317016601562, - 423.2864074707031, - 669.7595825195312 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "10.68", - "origin": [ - 483.4752502441406, - 667.9276123046875 - ], - "bbox": [ - 483.4752502441406, - 661.5933837890625, - 503.3870544433594, - 669.59326171875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.3870544433594, - 667.9276123046875 - ], - "bbox": [ - 503.3870544433594, - 661.4317016601562, - 512.6460571289062, - 669.7595825195312 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 12.63", - "origin": [ - 512.6460571289062, - 667.9276123046875 - ], - "bbox": [ - 512.6460571289062, - 661.5933837890625, - 535.2482299804688, - 669.59326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.4752502441406, - 661.4317016601562, - 535.2482299804688, - 669.7595825195312 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50918579101562, - 677.9050903320312 - ], - "bbox": [ - 72.50918579101562, - 671.5708618164062, - 78.25311279296875, - 679.5707397460938 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "44", - "origin": [ - 78.23619842529297, - 679.2662353515625 - ], - "bbox": [ - 78.23619842529297, - 674.78759765625, - 84.86058044433594, - 680.4439086914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50918579101562, - 671.5708618164062, - 84.86058044433594, - 680.4439086914062 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "4.04", - "origin": [ - 168.32119750976562, - 677.905517578125 - ], - "bbox": [ - 168.32119750976562, - 671.5712890625, - 183.81698608398438, - 679.5711669921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81698608398438, - 677.905517578125 - ], - "bbox": [ - 183.81698608398438, - 671.4096069335938, - 193.06968688964844, - 679.7374877929688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.51", - "origin": [ - 193.06968688964844, - 677.905517578125 - ], - "bbox": [ - 193.06968688964844, - 671.5712890625, - 211.1990509033203, - 679.5711669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.32119750976562, - 671.4096069335938, - 211.1990509033203, - 679.7374877929688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-0.89", - "origin": [ - 272.63507080078125, - 677.905517578125 - ], - "bbox": [ - 272.63507080078125, - 671.5712890625, - 291.21087646484375, - 679.5711669921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.21087646484375, - 677.905517578125 - ], - "bbox": [ - 291.21087646484375, - 671.4096069335938, - 300.501953125, - 679.7374877929688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.96", - "origin": [ - 300.501953125, - 677.905517578125 - ], - "bbox": [ - 300.501953125, - 671.5712890625, - 318.6313781738281, - 679.5711669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.63507080078125, - 671.4096069335938, - 318.6313781738281, - 679.7374877929688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "2.09", - "origin": [ - 380.3514099121094, - 677.905517578125 - ], - "bbox": [ - 380.3514099121094, - 671.5712890625, - 395.8472595214844, - 679.5711669921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.8472595214844, - 677.905517578125 - ], - "bbox": [ - 395.8472595214844, - 671.4096069335938, - 405.099853515625, - 679.7374877929688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.07", - "origin": [ - 405.099853515625, - 677.905517578125 - ], - "bbox": [ - 405.099853515625, - 671.5712890625, - 423.28607177734375, - 679.5711669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.3514099121094, - 671.4096069335938, - 423.28607177734375, - 679.7374877929688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "17.49", - "origin": [ - 483.47491455078125, - 677.905517578125 - ], - "bbox": [ - 483.47491455078125, - 671.5712890625, - 503.38671875, - 679.5711669921875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.38671875, - 677.905517578125 - ], - "bbox": [ - 503.38671875, - 671.4096069335938, - 512.645751953125, - 679.7374877929688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 19.57", - "origin": [ - 512.645751953125, - 677.905517578125 - ], - "bbox": [ - 512.645751953125, - 671.5712890625, - 535.2479248046875, - 679.5711669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.47491455078125, - 671.4096069335938, - 535.2479248046875, - 679.7374877929688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50967407226562, - 687.8837890625 - ], - "bbox": [ - 72.50967407226562, - 681.549560546875, - 78.25360107421875, - 689.5494384765625 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "55", - "origin": [ - 78.23619842529297, - 689.2440795898438 - ], - "bbox": [ - 78.23619842529297, - 684.7654418945312, - 84.86058044433594, - 690.4217529296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50967407226562, - 681.549560546875, - 84.86058044433594, - 690.4217529296875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "4.04", - "origin": [ - 168.32119750976562, - 687.8834838867188 - ], - "bbox": [ - 168.32119750976562, - 681.5492553710938, - 183.81698608398438, - 689.5491333007812 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81698608398438, - 687.8834838867188 - ], - "bbox": [ - 183.81698608398438, - 681.3875732421875, - 193.06968688964844, - 689.7154541015625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.32", - "origin": [ - 193.06968688964844, - 687.8834838867188 - ], - "bbox": [ - 193.06968688964844, - 681.5492553710938, - 211.1990509033203, - 689.5491333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.32119750976562, - 681.3875732421875, - 211.1990509033203, - 689.7154541015625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-0.88", - "origin": [ - 272.63507080078125, - 687.8834838867188 - ], - "bbox": [ - 272.63507080078125, - 681.5492553710938, - 291.21087646484375, - 689.5491333007812 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.21087646484375, - 687.8834838867188 - ], - "bbox": [ - 291.21087646484375, - 681.3875732421875, - 300.501953125, - 689.7154541015625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 1.00", - "origin": [ - 300.501953125, - 687.8834838867188 - ], - "bbox": [ - 300.501953125, - 681.5492553710938, - 318.6313781738281, - 689.5491333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.63507080078125, - 681.3875732421875, - 318.6313781738281, - 689.7154541015625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "2.09", - "origin": [ - 380.3514099121094, - 687.8834838867188 - ], - "bbox": [ - 380.3514099121094, - 681.5492553710938, - 395.8472595214844, - 689.5491333007812 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.8472595214844, - 687.8834838867188 - ], - "bbox": [ - 395.8472595214844, - 681.3875732421875, - 405.099853515625, - 689.7154541015625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.07", - "origin": [ - 405.099853515625, - 687.8834838867188 - ], - "bbox": [ - 405.099853515625, - 681.5492553710938, - 423.28607177734375, - 689.5491333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.3514099121094, - 681.3875732421875, - 423.28607177734375, - 689.7154541015625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "17.42", - "origin": [ - 483.47491455078125, - 687.8834838867188 - ], - "bbox": [ - 483.47491455078125, - 681.5492553710938, - 503.38671875, - 689.5491333007812 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.38671875, - 687.8834838867188 - ], - "bbox": [ - 503.38671875, - 681.3875732421875, - 512.645751953125, - 689.7154541015625 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 20.75", - "origin": [ - 512.645751953125, - 687.8834838867188 - ], - "bbox": [ - 512.645751953125, - 681.5492553710938, - 535.2479248046875, - 689.5491333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 483.47491455078125, - 681.3875732421875, - 535.2479248046875, - 689.7154541015625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50967407226562, - 697.9177856445312 - ], - "bbox": [ - 72.50967407226562, - 691.5835571289062, - 78.25360107421875, - 699.5834350585938 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "66", - "origin": [ - 78.23619842529297, - 699.2219848632812 - ], - "bbox": [ - 78.23619842529297, - 694.7433471679688, - 84.86058044433594, - 700.399658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50967407226562, - 691.5835571289062, - 84.86058044433594, - 700.399658203125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "4.59", - "origin": [ - 168.32119750976562, - 697.918212890625 - ], - "bbox": [ - 168.32119750976562, - 691.583984375, - 183.81698608398438, - 699.5838623046875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81698608398438, - 697.918212890625 - ], - "bbox": [ - 183.81698608398438, - 691.4223022460938, - 193.06968688964844, - 699.7501831054688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.39", - "origin": [ - 193.06968688964844, - 697.918212890625 - ], - "bbox": [ - 193.06968688964844, - 691.583984375, - 211.1990509033203, - 699.5838623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.32119750976562, - 691.4223022460938, - 211.1990509033203, - 699.7501831054688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "0.01", - "origin": [ - 275.7534484863281, - 697.918212890625 - ], - "bbox": [ - 275.7534484863281, - 691.583984375, - 291.2492980957031, - 699.5838623046875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2492980957031, - 697.918212890625 - ], - "bbox": [ - 291.2492980957031, - 691.4223022460938, - 300.501953125, - 699.7501831054688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.47", - "origin": [ - 300.501953125, - 697.918212890625 - ], - "bbox": [ - 300.501953125, - 691.583984375, - 318.6313781738281, - 699.5838623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.7534484863281, - 691.4223022460938, - 318.6313781738281, - 699.7501831054688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "2.17", - "origin": [ - 380.3514099121094, - 697.918212890625 - ], - "bbox": [ - 380.3514099121094, - 691.583984375, - 395.8472595214844, - 699.5838623046875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 395.8472595214844, - 697.918212890625 - ], - "bbox": [ - 395.8472595214844, - 691.4223022460938, - 405.099853515625, - 699.7501831054688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 0.16", - "origin": [ - 405.099853515625, - 697.918212890625 - ], - "bbox": [ - 405.099853515625, - 691.583984375, - 423.28607177734375, - 699.5838623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 380.3514099121094, - 691.4223022460938, - 423.28607177734375, - 699.7501831054688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "4.68", - "origin": [ - 487.89727783203125, - 697.918212890625 - ], - "bbox": [ - 487.89727783203125, - 691.583984375, - 503.39312744140625, - 699.5838623046875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 503.39312744140625, - 697.918212890625 - ], - "bbox": [ - 503.39312744140625, - 691.4223022460938, - 512.645751953125, - 699.7501831054688 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 17.44", - "origin": [ - 512.645751953125, - 697.918212890625 - ], - "bbox": [ - 512.645751953125, - 691.583984375, - 535.2479248046875, - 699.5838623046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.89727783203125, - 691.4223022460938, - 535.2479248046875, - 699.7501831054688 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50967407226562, - 707.8956909179688 - ], - "bbox": [ - 72.50967407226562, - 701.5614624023438, - 78.25360107421875, - 709.5613403320312 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "12", - "origin": [ - 78.23619842529297, - 709.2567138671875 - ], - "bbox": [ - 78.23619842529297, - 704.778076171875, - 84.86058044433594, - 710.4343872070312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50967407226562, - 701.5614624023438, - 84.86058044433594, - 710.4343872070312 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "17.52", - "origin": [ - 163.89920043945312, - 707.8961181640625 - ], - "bbox": [ - 163.89920043945312, - 701.5618896484375, - 183.81092834472656, - 709.561767578125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81092834472656, - 707.8961181640625 - ], - "bbox": [ - 183.81092834472656, - 701.4002075195312, - 193.0700225830078, - 709.7280883789062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 5.46", - "origin": [ - 193.0700225830078, - 707.8961181640625 - ], - "bbox": [ - 193.0700225830078, - 701.5618896484375, - 211.1993865966797, - 709.561767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 163.89920043945312, - 701.4002075195312, - 211.1993865966797, - 709.7280883789062 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-1.79", - "origin": [ - 272.6354064941406, - 707.8961181640625 - ], - "bbox": [ - 272.6354064941406, - 701.5618896484375, - 291.2112121582031, - 709.561767578125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2112121582031, - 707.8961181640625 - ], - "bbox": [ - 291.2112121582031, - 701.4002075195312, - 300.5022888183594, - 709.7280883789062 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 4.59", - "origin": [ - 300.5022888183594, - 707.8961181640625 - ], - "bbox": [ - 300.5022888183594, - 701.5618896484375, - 318.6317138671875, - 709.561767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.6354064941406, - 701.4002075195312, - 318.6317138671875, - 709.7280883789062 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 399.797119140625, - 707.8961181640625 - ], - "bbox": [ - 399.797119140625, - 701.5618896484375, - 403.79705810546875, - 709.561767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.797119140625, - 701.5618896484375, - 403.79705810546875, - 709.561767578125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 507.34295654296875, - 707.8961181640625 - ], - "bbox": [ - 507.34295654296875, - 701.5618896484375, - 511.3428955078125, - 709.561767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.34295654296875, - 701.5618896484375, - 511.3428955078125, - 709.561767578125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50994873046875, - 717.9303588867188 - ], - "bbox": [ - 72.50994873046875, - 711.5961303710938, - 78.25387573242188, - 719.5960083007812 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "13", - "origin": [ - 78.23619842529297, - 719.2346801757812 - ], - "bbox": [ - 78.23619842529297, - 714.7560424804688, - 84.86058044433594, - 720.412353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50994873046875, - 711.5961303710938, - 84.86058044433594, - 720.412353515625 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "9.45", - "origin": [ - 168.32119750976562, - 717.9307861328125 - ], - "bbox": [ - 168.32119750976562, - 711.5965576171875, - 183.81698608398438, - 719.596435546875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81698608398438, - 717.9307861328125 - ], - "bbox": [ - 183.81698608398438, - 711.4348754882812, - 193.06968688964844, - 719.7627563476562 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 6.18", - "origin": [ - 193.06968688964844, - 717.9307861328125 - ], - "bbox": [ - 193.06968688964844, - 711.5965576171875, - 211.1990509033203, - 719.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.32119750976562, - 711.4348754882812, - 211.1990509033203, - 719.7627563476562 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "-2.81", - "origin": [ - 272.63507080078125, - 717.9307861328125 - ], - "bbox": [ - 272.63507080078125, - 711.5965576171875, - 291.21087646484375, - 719.596435546875 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.21087646484375, - 717.9307861328125 - ], - "bbox": [ - 291.21087646484375, - 711.4348754882812, - 300.501953125, - 719.7627563476562 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 8.04", - "origin": [ - 300.501953125, - 717.9307861328125 - ], - "bbox": [ - 300.501953125, - 711.5965576171875, - 318.6313781738281, - 719.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 272.63507080078125, - 711.4348754882812, - 318.6313781738281, - 719.7627563476562 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 399.7967529296875, - 717.9307861328125 - ], - "bbox": [ - 399.7967529296875, - 711.5965576171875, - 403.79669189453125, - 719.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.7967529296875, - 711.5965576171875, - 403.79669189453125, - 719.596435546875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 507.34259033203125, - 717.9307861328125 - ], - "bbox": [ - 507.34259033203125, - 711.5965576171875, - 511.342529296875, - 719.596435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.34259033203125, - 711.5965576171875, - 511.342529296875, - 719.596435546875 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "C", - "origin": [ - 72.50961303710938, - 727.9090576171875 - ], - "bbox": [ - 72.50961303710938, - 721.5748291015625, - 78.2535400390625, - 729.57470703125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "23", - "origin": [ - 78.23619842529297, - 729.269287109375 - ], - "bbox": [ - 78.23619842529297, - 724.7906494140625, - 84.86058044433594, - 730.4469604492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 72.50961303710938, - 721.5748291015625, - 84.86058044433594, - 730.4469604492188 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "7.92", - "origin": [ - 168.32119750976562, - 727.90869140625 - ], - "bbox": [ - 168.32119750976562, - 721.574462890625, - 183.81698608398438, - 729.5743408203125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 183.81698608398438, - 727.90869140625 - ], - "bbox": [ - 183.81698608398438, - 721.4127807617188, - 193.06968688964844, - 729.7406616210938 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 2.361", - "origin": [ - 193.06968688964844, - 727.90869140625 - ], - "bbox": [ - 193.06968688964844, - 721.574462890625, - 215.614990234375, - 729.5743408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 168.32119750976562, - 721.4127807617188, - 215.614990234375, - 729.7406616210938 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "0.45", - "origin": [ - 275.7534484863281, - 727.90869140625 - ], - "bbox": [ - 275.7534484863281, - 721.574462890625, - 291.2492980957031, - 729.5743408203125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": " 6", - "origin": [ - 291.2492980957031, - 727.90869140625 - ], - "bbox": [ - 291.2492980957031, - 721.4127807617188, - 300.501953125, - 729.7406616210938 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " 2.03", - "origin": [ - 300.501953125, - 727.90869140625 - ], - "bbox": [ - 300.501953125, - 721.574462890625, - 318.6313781738281, - 729.5743408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.7534484863281, - 721.4127807617188, - 318.6313781738281, - 729.7406616210938 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 399.7967529296875, - 727.90869140625 - ], - "bbox": [ - 399.7967529296875, - 721.574462890625, - 403.79669189453125, - 729.5743408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.7967529296875, - 721.574462890625, - 403.79669189453125, - 729.5743408203125 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "–", - "origin": [ - 507.34259033203125, - 727.90869140625 - ], - "bbox": [ - 507.34259033203125, - 721.574462890625, - 511.342529296875, - 729.5743408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 507.34259033203125, - 721.574462890625, - 511.342529296875, - 729.5743408203125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 9, - "type": 0, - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "10", - "origin": [ - 60.49129867553711, - 56.6646728515625 - ], - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 69.32318878173828, - 58.686893463134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 50.68699264526367, - 69.32318878173828, - 58.686893463134766 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "Romano et al.", - "origin": [ - 501.5601806640625, - 56.6646728515625 - ], - "bbox": [ - 501.5601806640625, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 501.5601806640625, - 50.68699264526367, - 552.5379028320312, - 58.686893463134766 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 810.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\351\241\266\351\203\250title \346\221\230\350\246\201\357\274\214\345\272\225\351\203\250\345\217\214\345\210\227_10.1016_j.ijheatmasstransfer.2006.10.031_1.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\351\241\266\351\203\250title \346\221\230\350\246\201\357\274\214\345\272\225\351\203\250\345\217\214\345\210\227_10.1016_j.ijheatmasstransfer.2006.10.031_1.pdf/preproc_out.json" deleted file mode 100644 index 708e08545..000000000 --- "a/tests/assets/pre_proc_results/\351\241\266\351\203\250title \346\221\230\350\246\201\357\274\214\345\272\225\351\203\250\345\217\214\345\210\227_10.1016_j.ijheatmasstransfer.2006.10.031_1.pdf/preproc_out.json" +++ /dev/null @@ -1,6502 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 111.91179656982422, - 151.62049865722656, - 493.12152099609375, - 189.2074737548828 - ], - "lines": [ - { - "spans": [ - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "A modified", - "origin": [ - 111.91179656982422, - 165.2034912109375 - ], - "bbox": [ - 111.91179656982422, - 151.97616577148438, - 193.91107177734375, - 169.2512969970703 - ] - }, - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 193.91107177734375, - 165.2034912109375 - ], - "bbox": [ - 193.91107177734375, - 152.49676513671875, - 208.6084747314453, - 169.43316650390625 - ] - }, - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 208.57290649414062, - 165.2034912109375 - ], - "bbox": [ - 208.57290649414062, - 151.97616577148438, - 217.04110717773438, - 169.2512969970703 - ] - }, - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 217.07667541503906, - 165.2034912109375 - ], - "bbox": [ - 217.07667541503906, - 151.62049865722656, - 223.59718322753906, - 170.3182830810547 - ] - }, - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence model for the simulation", - "origin": [ - 223.59718322753906, - 165.2034912109375 - ], - "bbox": [ - 223.59718322753906, - 151.97616577148438, - 493.12152099609375, - 169.2512969970703 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.91179656982422, - 151.62049865722656, - 493.12152099609375, - 170.3182830810547 - ] - }, - { - "spans": [ - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "of two-phase flow and heat transfer in condensers", - "origin": [ - 119.22493743896484, - 185.15966796875 - ], - "bbox": [ - 119.22493743896484, - 171.93234252929688, - 485.8185119628906, - 189.2074737548828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.22493743896484, - 171.93234252929688, - 485.8185119628906, - 189.2074737548828 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 215.65980529785156, - 204.2411346435547, - 389.4046630859375, - 217.45167541503906 - ], - "lines": [ - { - "spans": [ - { - "size": 12.951499938964844, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Hong Gang Hu, Chao Zhang", - "origin": [ - 215.65980529785156, - 214.35626220703125 - ], - "bbox": [ - 215.65980529785156, - 204.2411346435547, - 382.3869934082031, - 217.45167541503906 - ] - }, - { - "size": 9.15743350982666, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 382.3869934082031, - 214.35626220703125 - ], - "bbox": [ - 382.3869934082031, - 204.60897827148438, - 384.54791259765625, - 216.4196014404297 - ] - }, - { - "size": 9.15743350982666, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "*", - "origin": [ - 384.54791259765625, - 211.35150146484375 - ], - "bbox": [ - 384.54791259765625, - 204.60897827148438, - 389.4046630859375, - 213.4148406982422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.65980529785156, - 204.2411346435547, - 389.4046630859375, - 217.45167541503906 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 93.31649780273438, - 227.76544189453125, - 511.8199462890625, - 235.7356414794922 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Department of Mechanical and Materials Engineering, The University of Western Ontario, London, Ont., Canada N6A 5B9", - "origin": [ - 93.31649780273438, - 233.74517822265625 - ], - "bbox": [ - 93.31649780273438, - 227.76544189453125, - 511.8199462890625, - 235.7356414794922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.31649780273438, - 227.76544189453125, - 511.8199462890625, - 235.7356414794922 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 182.32449340820312, - 243.564453125, - 422.76068115234375, - 261.6719665527344 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Received 19 February 2006; received in revised form 21 October 2006", - "origin": [ - 182.32449340820312, - 249.7891845703125 - ], - "bbox": [ - 182.32449340820312, - 243.564453125, - 422.76068115234375, - 251.69406127929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.32449340820312, - 243.564453125, - 422.76068115234375, - 251.69406127929688 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Available online 28 December 2006", - "origin": [ - 241.45541381835938, - 259.76708984375 - ], - "bbox": [ - 241.45541381835938, - 253.5423583984375, - 363.6911315917969, - 261.6719665527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.45541381835938, - 253.5423583984375, - 363.6911315917969, - 261.6719665527344 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 42.51969909667969, - 294.19921875, - 74.71768951416016, - 303.16552734375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Abstract", - "origin": [ - 42.51969909667969, - 300.9263000488281 - ], - "bbox": [ - 42.51969909667969, - 294.19921875, - 74.71768951416016, - 303.16552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 294.19921875, - 74.71768951416016, - 303.16552734375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 42.518798828125, - 315.61846923828125, - 562.5670166015625, - 402.12274169921875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "A modified", - "origin": [ - 54.19830322265625, - 322.8094482421875 - ], - "bbox": [ - 54.19830322265625, - 315.8067626953125, - 97.17288970947266, - 324.952392578125 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 97.17288970947266, - 322.8094482421875 - ], - "bbox": [ - 97.17288970947266, - 316.0823669433594, - 104.4840087890625, - 325.0486755371094 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 104.48490142822266, - 322.8094482421875 - ], - "bbox": [ - 104.48490142822266, - 315.8067626953125, - 108.96804809570312, - 324.952392578125 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 108.96356964111328, - 322.8094482421875 - ], - "bbox": [ - 108.96356964111328, - 315.61846923828125, - 112.41559600830078, - 325.51727294921875 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence model is developed in this study to simulate the gas–liquid two-phase flow and heat transfer in steam sur-", - "origin": [ - 112.41559600830078, - 322.8094482421875 - ], - "bbox": [ - 112.41559600830078, - 315.8067626953125, - 562.5374755859375, - 324.952392578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.19830322265625, - 315.61846923828125, - 562.5374755859375, - 325.51727294921875 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "face condensers. A quasi-three-dimensional algorithm is used to simulate the fluid flow and heat transfer in steam surface condensers.", - "origin": [ - 42.51880645751953, - 333.75103759765625 - ], - "bbox": [ - 42.51880645751953, - 326.74835205078125, - 562.544677734375, - 335.89398193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51880645751953, - 326.74835205078125, - 562.544677734375, - 335.89398193359375 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The numerical method is based on the conservation equations of mass and momentum for both gas-phase and liquid-phase, and mass", - "origin": [ - 42.51880645751953, - 344.692626953125 - ], - "bbox": [ - 42.51880645751953, - 337.68994140625, - 562.5401611328125, - 346.8355712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51880645751953, - 337.68994140625, - 562.5401611328125, - 346.8355712890625 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fraction conservation equation for non-condensable gases. The numerical simulation of an experimental steam surface condenser has", - "origin": [ - 42.51880645751953, - 355.6907043457031 - ], - "bbox": [ - 42.51880645751953, - 348.6880187988281, - 562.5070190429688, - 357.8336486816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51880645751953, - 348.6880187988281, - 562.5070190429688, - 357.8336486816406 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "been conducted using the proposed modified", - "origin": [ - 42.51880645751953, - 366.6322937011719 - ], - "bbox": [ - 42.51880645751953, - 359.6296081542969, - 219.62481689453125, - 368.7752380371094 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 219.62481689453125, - 366.6322937011719 - ], - "bbox": [ - 219.62481689453125, - 359.90521240234375, - 228.13107299804688, - 368.87152099609375 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 228.13197326660156, - 366.6322937011719 - ], - "bbox": [ - 228.13197326660156, - 359.6296081542969, - 232.61512756347656, - 368.7752380371094 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 232.6106414794922, - 366.6322937011719 - ], - "bbox": [ - 232.6106414794922, - 359.4413146972656, - 236.0626678466797, - 369.3401184082031 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence model. The results obtained from the proposed model agree well with", - "origin": [ - 236.0626678466797, - 366.6322937011719 - ], - "bbox": [ - 236.0626678466797, - 359.6296081542969, - 562.5670166015625, - 368.7752380371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51880645751953, - 359.4413146972656, - 562.5670166015625, - 369.3401184082031 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the experimental results and the results also show an obvious improvement in the prediction accuracy comparing with previous results", - "origin": [ - 42.518798828125, - 377.5738830566406 - ], - "bbox": [ - 42.518798828125, - 370.5711975097656, - 562.516845703125, - 379.7168273925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.518798828125, - 370.5711975097656, - 562.516845703125, - 379.7168273925781 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "where a constant value for the turbulent viscosity was used.", - "origin": [ - 42.518798828125, - 388.57196044921875 - ], - "bbox": [ - 42.518798828125, - 381.56927490234375, - 275.0284423828125, - 390.71490478515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.518798828125, - 381.56927490234375, - 275.0284423828125, - 390.71490478515625 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvPSSym", - "color": 0, - "ascender": 1.0099999904632568, - "descender": -0.29100000858306885, - "text": "�", - "origin": [ - 42.518798828125, - 399.5135498046875 - ], - "bbox": [ - 42.518798828125, - 390.45758056640625, - 49.611141204833984, - 402.12274169921875 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvTimes", - "color": 0, - "ascender": 0.765999972820282, - "descender": -0.21199999749660492, - "text": " 2006 Elsevier Ltd. All rights reserved.", - "origin": [ - 49.611141204833984, - 399.5135498046875 - ], - "bbox": [ - 49.611141204833984, - 392.4908752441406, - 199.3896026611328, - 401.4571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.518798828125, - 390.45758056640625, - 199.3896026611328, - 402.12274169921875 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 42.51969909667969, - 414.38299560546875, - 481.2185363769531, - 423.1820983886719 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Keywords:", - "origin": [ - 42.51969909667969, - 420.77508544921875 - ], - "bbox": [ - 42.51969909667969, - 414.79534912109375, - 77.77986145019531, - 422.76556396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Heat transfer; Numerical simulation; Condenser; Porous medium; Gas–liquid two-phase flow;", - "origin": [ - 77.77986145019531, - 420.77508544921875 - ], - "bbox": [ - 77.77986145019531, - 414.55035400390625, - 405.2344665527344, - 422.6799621582031 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 405.2344665527344, - 420.77508544921875 - ], - "bbox": [ - 405.2344665527344, - 414.79534912109375, - 412.0827331542969, - 422.76556396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 412.04608154296875, - 420.77508544921875 - ], - "bbox": [ - 412.04608154296875, - 414.55035400390625, - 416.03118896484375, - 422.6799621582031 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 416.0144348144531, - 420.77508544921875 - ], - "bbox": [ - 416.0144348144531, - 414.38299560546875, - 419.08294677734375, - 423.1820983886719 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence model", - "origin": [ - 419.08294677734375, - 420.77508544921875 - ], - "bbox": [ - 419.08294677734375, - 414.55035400390625, - 481.2185363769531, - 422.6799621582031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 414.38299560546875, - 481.2185363769531, - 423.1820983886719 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 42.51969909667969, - 455.93365478515625, - 104.82978057861328, - 465.896240234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "1. Introduction", - "origin": [ - 42.51969909667969, - 463.408203125 - ], - "bbox": [ - 42.51969909667969, - 455.93365478515625, - 104.82978057861328, - 465.896240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 455.93365478515625, - 104.82978057861328, - 465.896240234375 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 42.51969909667969, - 479.5516052246094, - 293.58221435546875, - 669.0313110351562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Steam surface condensers are widely used in the power", - "origin": [ - 54.48179244995117, - 487.3323974609375 - ], - "bbox": [ - 54.48179244995117, - 479.5516052246094, - 293.4746398925781, - 489.7134704589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.48179244995117, - 479.5516052246094, - 293.4746398925781, - 489.7134704589844 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "generation industry. And the improvement of the perfor-", - "origin": [ - 42.51969909667969, - 499.29449462890625 - ], - "bbox": [ - 42.51969909667969, - 491.5137023925781, - 293.58221435546875, - 501.6755676269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 491.5137023925781, - 293.58221435546875, - 501.6755676269531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "mance of condensers could result in a significant increase", - "origin": [ - 42.51969909667969, - 511.256591796875 - ], - "bbox": [ - 42.51969909667969, - 503.4757995605469, - 293.5214538574219, - 513.6376342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 503.4757995605469, - 293.5214538574219, - 513.6376342773438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in the efficiency and energy saving. Therefore, it is of great", - "origin": [ - 42.51969909667969, - 523.2186889648438 - ], - "bbox": [ - 42.51969909667969, - 515.4379272460938, - 293.5342712402344, - 525.5997314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 515.4379272460938, - 293.5342712402344, - 525.5997314453125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "importance to understand the fluid flow and heat transfer", - "origin": [ - 42.51969909667969, - 535.1240234375 - ], - "bbox": [ - 42.51969909667969, - 527.34326171875, - 293.5503234863281, - 537.5050659179688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 527.34326171875, - 293.5503234863281, - 537.5050659179688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in condensers in order to improve the design of condensers.", - "origin": [ - 42.51969909667969, - 547.0860595703125 - ], - "bbox": [ - 42.51969909667969, - 539.3052978515625, - 293.57928466796875, - 549.4671020507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 539.3052978515625, - 293.57928466796875, - 549.4671020507812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "However, the experimental method is very expensive and", - "origin": [ - 42.51969909667969, - 559.0482177734375 - ], - "bbox": [ - 42.51969909667969, - 551.2674560546875, - 293.5452880859375, - 561.4292602539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 551.2674560546875, - 293.5452880859375, - 561.4292602539062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "time-consuming. With the development of computer tech-", - "origin": [ - 42.51969909667969, - 571.01025390625 - ], - "bbox": [ - 42.51969909667969, - 563.2294921875, - 293.5304260253906, - 573.3912963867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 563.2294921875, - 293.5304260253906, - 573.3912963867188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "nology, it becomes possible to simulate a complicated fluid", - "origin": [ - 42.51969909667969, - 582.972412109375 - ], - "bbox": [ - 42.51969909667969, - 575.191650390625, - 293.5213928222656, - 585.3534545898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 575.191650390625, - 293.5213928222656, - 585.3534545898438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "flow and heat transfer process by numerical methods. The", - "origin": [ - 42.51969909667969, - 594.9344482421875 - ], - "bbox": [ - 42.51969909667969, - 587.1536865234375, - 293.5423583984375, - 597.3154907226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 587.1536865234375, - 293.5423583984375, - 597.3154907226562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fluid flow in steam surface condensers is turbulent and", - "origin": [ - 42.51969909667969, - 606.8966064453125 - ], - "bbox": [ - 42.51969909667969, - 599.1158447265625, - 293.5463562011719, - 609.2776489257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 599.1158447265625, - 293.5463562011719, - 609.2776489257812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "multi-phase with distributed flow resistance due to tube", - "origin": [ - 42.51969909667969, - 618.858642578125 - ], - "bbox": [ - 42.51969909667969, - 611.077880859375, - 293.5124816894531, - 621.2396850585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 611.077880859375, - 293.5124816894531, - 621.2396850585938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "bundles.", - "origin": [ - 42.51969909667969, - 630.7639770507812 - ], - "bbox": [ - 42.51969909667969, - 622.9832153320312, - 78.17285919189453, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 622.9832153320312, - 78.17285919189453, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Therefore,", - "origin": [ - 86.34219360351562, - 630.7639770507812 - ], - "bbox": [ - 86.34219360351562, - 622.9832153320312, - 130.80227661132812, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.34219360351562, - 622.9832153320312, - 130.80227661132812, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "a", - "origin": [ - 139.00946044921875, - 630.7639770507812 - ], - "bbox": [ - 139.00946044921875, - 622.9832153320312, - 143.99075317382812, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.00946044921875, - 622.9832153320312, - 143.99075317382812, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "suitable", - "origin": [ - 152.16207885742188, - 630.7639770507812 - ], - "bbox": [ - 152.16207885742188, - 622.9832153320312, - 185.0286865234375, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.16207885742188, - 622.9832153320312, - 185.0286865234375, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "turbulence", - "origin": [ - 193.26377868652344, - 630.7639770507812 - ], - "bbox": [ - 193.26377868652344, - 622.9832153320312, - 238.24293518066406, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.26377868652344, - 622.9832153320312, - 238.24293518066406, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "model", - "origin": [ - 246.441162109375, - 630.7639770507812 - ], - "bbox": [ - 246.441162109375, - 622.9832153320312, - 272.6726989746094, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.441162109375, - 622.9832153320312, - 272.6726989746094, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "for", - "origin": [ - 280.9097900390625, - 630.7639770507812 - ], - "bbox": [ - 280.9097900390625, - 622.9832153320312, - 293.5622863769531, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.9097900390625, - 622.9832153320312, - 293.5622863769531, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "multi-phase flows with distributed flow resistance is neces-", - "origin": [ - 42.51969909667969, - 642.72607421875 - ], - "bbox": [ - 42.51969909667969, - 634.9453125, - 293.5284729003906, - 645.1071166992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 634.9453125, - 293.5284729003906, - 645.1071166992188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "sary in order to simulate the performance of steam", - "origin": [ - 42.51969909667969, - 654.6881713867188 - ], - "bbox": [ - 42.51969909667969, - 646.9074096679688, - 293.5114440917969, - 657.0692138671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 646.9074096679688, - 293.5114440917969, - 657.0692138671875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "condensers more accurately. The numerical simulations", - "origin": [ - 42.51969909667969, - 666.6502685546875 - ], - "bbox": [ - 42.51969909667969, - 658.8695068359375, - 293.4934997558594, - 669.0313110351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 658.8695068359375, - 293.4934997558594, - 669.0313110351562 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 311.52679443359375, - 455.62646484375, - 562.5614624023438, - 716.8787231445312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "of fluid flow and heat transfer in steam surface condensers", - "origin": [ - 311.52679443359375, - 463.4072570800781 - ], - "bbox": [ - 311.52679443359375, - 455.62646484375, - 562.544189453125, - 465.788330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 455.62646484375, - 562.544189453125, - 465.788330078125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "have been conducted by several researchers", - "origin": [ - 311.52679443359375, - 475.3693542480469 - ], - "bbox": [ - 311.52679443359375, - 467.58856201171875, - 493.5595703125, - 477.75042724609375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [1–8]", - "origin": [ - 493.5595703125, - 475.3693542480469 - ], - "bbox": [ - 493.5595703125, - 467.58856201171875, - 516.2721557617188, - 477.75042724609375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ". However,", - "origin": [ - 516.3578491210938, - 475.3693542480469 - ], - "bbox": [ - 516.3578491210938, - 467.58856201171875, - 562.54931640625, - 477.75042724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 467.58856201171875, - 562.54931640625, - 477.75042724609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in these studies, either the turbulent effect was neglected", - "origin": [ - 311.52679443359375, - 487.3314514160156 - ], - "bbox": [ - 311.52679443359375, - 479.5506591796875, - 547.0266723632812, - 489.7125244140625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [1]", - "origin": [ - 547.0266723632812, - 487.3314514160156 - ], - "bbox": [ - 547.0266723632812, - 479.5506591796875, - 559.82666015625, - 489.7125244140625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ",", - "origin": [ - 559.8406372070312, - 487.3314514160156 - ], - "bbox": [ - 559.8406372070312, - 479.5506591796875, - 562.530517578125, - 489.7125244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 479.5506591796875, - 562.530517578125, - 489.7125244140625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "or a constant ratio of the turbulent viscosity to the dynamic", - "origin": [ - 311.5268249511719, - 499.2935485839844 - ], - "bbox": [ - 311.5268249511719, - 491.51275634765625, - 562.5424194335938, - 501.67462158203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5268249511719, - 491.51275634765625, - 562.5424194335938, - 501.67462158203125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "viscosity was used", - "origin": [ - 311.5268249511719, - 511.2556457519531 - ], - "bbox": [ - 311.5268249511719, - 503.474853515625, - 390.9217834472656, - 513.63671875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2–6]", - "origin": [ - 390.9217834472656, - 511.2556457519531 - ], - "bbox": [ - 390.9217834472656, - 503.474853515625, - 415.30224609375, - 513.63671875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ", or a simple algebraic expression", - "origin": [ - 415.3311462402344, - 511.2556457519531 - ], - "bbox": [ - 415.3311462402344, - 503.474853515625, - 562.5303955078125, - 513.63671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5268249511719, - 503.474853515625, - 562.5303955078125, - 513.63671875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "was used to determine the turbulent viscosity", - "origin": [ - 311.5268249511719, - 523.2177734375 - ], - "bbox": [ - 311.5268249511719, - 515.43701171875, - 508.4097900390625, - 525.5988159179688 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [7,8]", - "origin": [ - 508.4097900390625, - 523.2177734375 - ], - "bbox": [ - 508.4097900390625, - 515.43701171875, - 530.0813598632812, - 525.5988159179688 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ". In the", - "origin": [ - 530.1341552734375, - 523.2177734375 - ], - "bbox": [ - 530.1341552734375, - 515.43701171875, - 562.5244140625, - 525.5988159179688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5268249511719, - 515.43701171875, - 562.5244140625, - 525.5988159179688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "numerical simulation of the two-phase flow with distrib-", - "origin": [ - 311.52679443359375, - 535.123046875 - ], - "bbox": [ - 311.52679443359375, - 527.34228515625, - 562.5384521484375, - 537.5040893554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 527.34228515625, - 562.5384521484375, - 537.5040893554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "uted flow resistance in a steam generator conducted by", - "origin": [ - 311.52679443359375, - 547.0851440429688 - ], - "bbox": [ - 311.52679443359375, - 539.3043823242188, - 562.5503540039062, - 549.4661865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 539.3043823242188, - 562.5503540039062, - 549.4661865234375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Stosic and Stevanovic", - "origin": [ - 311.52679443359375, - 559.0472412109375 - ], - "bbox": [ - 311.52679443359375, - 551.2664794921875, - 410.744384765625, - 561.4282836914062 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [9]", - "origin": [ - 410.744384765625, - 559.0472412109375 - ], - "bbox": [ - 410.744384765625, - 551.2664794921875, - 426.9963073730469, - 561.4282836914062 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ", the flow was assumed non-", - "origin": [ - 427.01025390625, - 559.0472412109375 - ], - "bbox": [ - 427.01025390625, - 551.2664794921875, - 562.5353393554688, - 561.4282836914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 551.2664794921875, - 562.5353393554688, - 561.4282836914062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "viscous and the turbulent effect was indirectly taken into", - "origin": [ - 311.52777099609375, - 571.0093383789062 - ], - "bbox": [ - 311.52777099609375, - 563.2285766601562, - 562.5016479492188, - 573.390380859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 563.2285766601562, - 562.5016479492188, - 573.390380859375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "account through friction or drag terms. Therefore, the", - "origin": [ - 311.52777099609375, - 582.971435546875 - ], - "bbox": [ - 311.52777099609375, - 575.190673828125, - 562.5214233398438, - 585.3524780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 575.190673828125, - 562.5214233398438, - 585.3524780273438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "objectives of this study are to develop a suitable turbulence", - "origin": [ - 311.52777099609375, - 594.9335327148438 - ], - "bbox": [ - 311.52777099609375, - 587.1527709960938, - 562.5263671875, - 597.3145751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 587.1527709960938, - 562.5263671875, - 597.3145751953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "model for gas–liquid two-phase flows in steam surface con-", - "origin": [ - 311.52777099609375, - 606.8956298828125 - ], - "bbox": [ - 311.52777099609375, - 599.1148681640625, - 562.5224609375, - 609.2766723632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 599.1148681640625, - 562.5224609375, - 609.2766723632812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "densers where distributed flow resistance exists and valid", - "origin": [ - 311.52777099609375, - 618.8577270507812 - ], - "bbox": [ - 311.52777099609375, - 611.0769653320312, - 562.5614624023438, - 621.23876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 611.0769653320312, - 562.5614624023438, - 621.23876953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the proposed turbulence model using experimental data.", - "origin": [ - 311.52777099609375, - 630.7630615234375 - ], - "bbox": [ - 311.52777099609375, - 622.9822998046875, - 554.5576171875, - 633.1441040039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 622.9822998046875, - 554.5576171875, - 633.1441040039062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The experimental steam surface condenser and experi-", - "origin": [ - 323.4898681640625, - 642.72509765625 - ], - "bbox": [ - 323.4898681640625, - 634.9443359375, - 562.5276489257812, - 645.1061401367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.4898681640625, - 634.9443359375, - 562.5276489257812, - 645.1061401367188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "mental data from Al-Sanea et al.", - "origin": [ - 311.52777099609375, - 654.687255859375 - ], - "bbox": [ - 311.52777099609375, - 646.906494140625, - 459.59490966796875, - 657.0682983398438 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [6]", - "origin": [ - 459.59490966796875, - 654.687255859375 - ], - "bbox": [ - 459.59490966796875, - 646.906494140625, - 474.3923645019531, - 657.0682983398438 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " and Bush et al.", - "origin": [ - 474.3923645019531, - 654.687255859375 - ], - "bbox": [ - 474.3923645019531, - 646.906494140625, - 547.6961059570312, - 657.0682983398438 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [8]", - "origin": [ - 547.6961059570312, - 654.687255859375 - ], - "bbox": [ - 547.6961059570312, - 646.906494140625, - 562.5493774414062, - 657.0682983398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 646.906494140625, - 562.5493774414062, - 657.0682983398438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "are selected in this study to validate the proposed numeri-", - "origin": [ - 311.5277404785156, - 666.6492919921875 - ], - "bbox": [ - 311.5277404785156, - 658.8685302734375, - 562.49853515625, - 669.0303344726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 658.8685302734375, - 562.49853515625, - 669.0303344726562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "cal model. The numerical results obtained by the current", - "origin": [ - 311.5277404785156, - 678.6114501953125 - ], - "bbox": [ - 311.5277404785156, - 670.8306884765625, - 562.4717407226562, - 680.9924926757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 670.8306884765625, - 562.4717407226562, - 680.9924926757812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "numerical model are also compared with the results by", - "origin": [ - 311.5277404785156, - 690.573486328125 - ], - "bbox": [ - 311.5277404785156, - 682.792724609375, - 562.5543823242188, - 692.9545288085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 682.792724609375, - 562.5543823242188, - 692.9545288085938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "using the numerical model with a constant turbulent", - "origin": [ - 311.5277404785156, - 702.53564453125 - ], - "bbox": [ - 311.5277404785156, - 694.7548828125, - 562.5224609375, - 704.9166870117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 694.7548828125, - 562.5224609375, - 704.9166870117188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "viscosity.", - "origin": [ - 311.5277404785156, - 714.4976806640625 - ], - "bbox": [ - 311.5277404785156, - 706.7169189453125, - 350.49249267578125, - 716.8787231445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 706.7169189453125, - 350.49249267578125, - 716.8787231445312 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 42.519691467285156, - 728.3912353515625, - 287.8009948730469, - 748.3529663085938 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSTim", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "0017-9310/$ - see front matter", - "origin": [ - 42.51969909667969, - 736.441162109375 - ], - "bbox": [ - 42.51969909667969, - 730.46142578125, - 145.98406982421875, - 738.431640625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSSym", - "color": 0, - "ascender": 1.0099999904632568, - "descender": -0.29100000858306885, - "text": " �", - "origin": [ - 145.98406982421875, - 736.441162109375 - ], - "bbox": [ - 145.98406982421875, - 728.3912353515625, - 154.89712524414062, - 738.760498046875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSTim", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " 2006 Elsevier Ltd. All rights reserved.", - "origin": [ - 154.89712524414062, - 736.441162109375 - ], - "bbox": [ - 154.89712524414062, - 730.46142578125, - 287.8009948730469, - 738.431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 728.3912353515625, - 287.8009948730469, - 738.760498046875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSTim", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "doi:10.1016/j.ijheatmasstransfer.2006.10.031", - "origin": [ - 42.519691467285156, - 746.3624877929688 - ], - "bbox": [ - 42.519691467285156, - 740.3827514648438, - 192.16505432128906, - 748.3529663085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.519691467285156, - 740.3827514648438, - 192.16505432128906, - 748.3529663085938 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 47.90549850463867, - 695.0101318359375, - 228.9374237060547, - 716.4918212890625 - ], - "lines": [ - { - "spans": [ - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "*", - "origin": [ - 47.90549850463867, - 701.23486328125 - ], - "bbox": [ - 47.90549850463867, - 697.0856323242188, - 50.89419937133789, - 702.5045776367188 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Corresponding author.", - "origin": [ - 50.89419937133789, - 701.23486328125 - ], - "bbox": [ - 50.89419937133789, - 695.0101318359375, - 132.94271850585938, - 706.6546630859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 47.90549850463867, - 695.0101318359375, - 132.94271850585938, - 706.6546630859375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "E-mail address:", - "origin": [ - 54.311912536621094, - 714.5013427734375 - ], - "bbox": [ - 54.311912536621094, - 708.5216064453125, - 106.61077117919922, - 716.4918212890625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " zhangc@engga.uwo.ca", - "origin": [ - 106.61077117919922, - 714.5013427734375 - ], - "bbox": [ - 106.61077117919922, - 708.276611328125, - 186.3072052001953, - 716.40625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " (C. Zhang).", - "origin": [ - 186.3072052001953, - 714.5013427734375 - ], - "bbox": [ - 186.3072052001953, - 708.276611328125, - 228.9374237060547, - 716.40625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.311912536621094, - 708.276611328125, - 228.9374237060547, - 716.4918212890625 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 458.0806579589844, - 113.45264434814453, - 562.5825805664062, - 121.58224487304688 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "www.elsevier.com/locate/ijhmt", - "origin": [ - 458.0806579589844, - 119.6773681640625 - ], - "bbox": [ - 458.0806579589844, - 113.45264434814453, - 562.5825805664062, - 121.58224487304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.0806579589844, - 113.45264434814453, - 562.5825805664062, - 121.58224487304688 - ] - } - ] - } - ], - "images": [], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 98.4528605962933, - 316.35187424425635, - 105.65672844480257, - 324.99274486094316 - ], - "image_path": "equations_inline/0_98_316_105_324.jpg" - }, - { - "bbox": [ - 222.3593875906527, - 360.03627569528413, - 230.04351329572924, - 368.67714631197094 - ], - "image_path": "equations_inline/0_222_360_230_368.jpg" - }, - { - "bbox": [ - 41.30217566478646, - 392.67956469165654, - 50.42707493956486, - 401.8004836759371 - ], - "image_path": "equations_inline/0_41_392_50_401.jpg" - }, - { - "bbox": [ - 406.7784045124899, - 414.76178960096735, - 413.5020145044319, - 422.92261185006043 - ], - "image_path": "equations_inline/0_406_414_413_422.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 42, - 47, - 96, - 107.97769165039062 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 166.05349731445312, - 47, - 408.7239074707031, - 107.97769165039062 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 477, - 47, - 562, - 107.97769165039062 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 113.45264434814453, - 595.2760009765625, - 423.1820983886719 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 42.51969909667969, - 455.62646484375, - 293.58221435546875, - 716.8787231445312 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 311.52679443359375, - 455.62646484375, - 562.5614624023438, - 716.8787231445312 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 0, - 728.3912353515625, - 595.2760009765625, - 748.3529663085938 - ], - "layout_label": "H", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 111.91179656982422, - 151.62049865722656, - 493.12152099609375, - 189.2074737548828 - ], - "lines": [ - { - "spans": [ - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "A modified", - "origin": [ - 111.91179656982422, - 165.2034912109375 - ], - "bbox": [ - 111.91179656982422, - 151.97616577148438, - 193.91107177734375, - 169.2512969970703 - ] - }, - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 193.91107177734375, - 165.2034912109375 - ], - "bbox": [ - 193.91107177734375, - 152.49676513671875, - 208.6084747314453, - 169.43316650390625 - ] - }, - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 208.57290649414062, - 165.2034912109375 - ], - "bbox": [ - 208.57290649414062, - 151.97616577148438, - 217.04110717773438, - 169.2512969970703 - ] - }, - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 217.07667541503906, - 165.2034912109375 - ], - "bbox": [ - 217.07667541503906, - 151.62049865722656, - 223.59718322753906, - 170.3182830810547 - ] - }, - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence model for the simulation", - "origin": [ - 223.59718322753906, - 165.2034912109375 - ], - "bbox": [ - 223.59718322753906, - 151.97616577148438, - 493.12152099609375, - 169.2512969970703 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 111.91179656982422, - 151.62049865722656, - 493.12152099609375, - 170.3182830810547 - ] - }, - { - "spans": [ - { - "size": 16.936399459838867, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "of two-phase flow and heat transfer in condensers", - "origin": [ - 119.22493743896484, - 185.15966796875 - ], - "bbox": [ - 119.22493743896484, - 171.93234252929688, - 485.8185119628906, - 189.2074737548828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 119.22493743896484, - 171.93234252929688, - 485.8185119628906, - 189.2074737548828 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 215.65980529785156, - 204.2411346435547, - 389.4046630859375, - 217.45167541503906 - ], - "lines": [ - { - "spans": [ - { - "size": 12.951499938964844, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Hong Gang Hu, Chao Zhang", - "origin": [ - 215.65980529785156, - 214.35626220703125 - ], - "bbox": [ - 215.65980529785156, - 204.2411346435547, - 382.3869934082031, - 217.45167541503906 - ] - }, - { - "size": 9.15743350982666, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " ", - "origin": [ - 382.3869934082031, - 214.35626220703125 - ], - "bbox": [ - 382.3869934082031, - 204.60897827148438, - 384.54791259765625, - 216.4196014404297 - ] - }, - { - "size": 9.15743350982666, - "flags": 5, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "*", - "origin": [ - 384.54791259765625, - 211.35150146484375 - ], - "bbox": [ - 384.54791259765625, - 204.60897827148438, - 389.4046630859375, - 213.4148406982422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.65980529785156, - 204.2411346435547, - 389.4046630859375, - 217.45167541503906 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 93.31649780273438, - 227.76544189453125, - 511.8199462890625, - 235.7356414794922 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Department of Mechanical and Materials Engineering, The University of Western Ontario, London, Ont., Canada N6A 5B9", - "origin": [ - 93.31649780273438, - 233.74517822265625 - ], - "bbox": [ - 93.31649780273438, - 227.76544189453125, - 511.8199462890625, - 235.7356414794922 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 93.31649780273438, - 227.76544189453125, - 511.8199462890625, - 235.7356414794922 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 182.32449340820312, - 243.564453125, - 422.76068115234375, - 261.6719665527344 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Received 19 February 2006; received in revised form 21 October 2006", - "origin": [ - 182.32449340820312, - 249.7891845703125 - ], - "bbox": [ - 182.32449340820312, - 243.564453125, - 422.76068115234375, - 251.69406127929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 182.32449340820312, - 243.564453125, - 422.76068115234375, - 251.69406127929688 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Available online 28 December 2006", - "origin": [ - 241.45541381835938, - 259.76708984375 - ], - "bbox": [ - 241.45541381835938, - 253.5423583984375, - 363.6911315917969, - 261.6719665527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 241.45541381835938, - 253.5423583984375, - 363.6911315917969, - 261.6719665527344 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 42.51969909667969, - 294.19921875, - 74.71768951416016, - 303.16552734375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Abstract", - "origin": [ - 42.51969909667969, - 300.9263000488281 - ], - "bbox": [ - 42.51969909667969, - 294.19921875, - 74.71768951416016, - 303.16552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 294.19921875, - 74.71768951416016, - 303.16552734375 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 42.518798828125, - 315.61846923828125, - 562.5670166015625, - 402.12274169921875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "A modified", - "origin": [ - 54.19830322265625, - 322.8094482421875 - ], - "bbox": [ - 54.19830322265625, - 315.8067626953125, - 97.17288970947266, - 324.952392578125 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 97.17288970947266, - 322.8094482421875 - ], - "bbox": [ - 97.17288970947266, - 316.0823669433594, - 104.4840087890625, - 325.0486755371094 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 104.48490142822266, - 322.8094482421875 - ], - "bbox": [ - 104.48490142822266, - 315.8067626953125, - 108.96804809570312, - 324.952392578125 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 108.96356964111328, - 322.8094482421875 - ], - "bbox": [ - 108.96356964111328, - 315.61846923828125, - 112.41559600830078, - 325.51727294921875 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence model is developed in this study to simulate the gas–liquid two-phase flow and heat transfer in steam sur-", - "origin": [ - 112.41559600830078, - 322.8094482421875 - ], - "bbox": [ - 112.41559600830078, - 315.8067626953125, - 562.5374755859375, - 324.952392578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.19830322265625, - 315.61846923828125, - 562.5374755859375, - 325.51727294921875 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "face condensers. A quasi-three-dimensional algorithm is used to simulate the fluid flow and heat transfer in steam surface condensers.", - "origin": [ - 42.51880645751953, - 333.75103759765625 - ], - "bbox": [ - 42.51880645751953, - 326.74835205078125, - 562.544677734375, - 335.89398193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51880645751953, - 326.74835205078125, - 562.544677734375, - 335.89398193359375 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The numerical method is based on the conservation equations of mass and momentum for both gas-phase and liquid-phase, and mass", - "origin": [ - 42.51880645751953, - 344.692626953125 - ], - "bbox": [ - 42.51880645751953, - 337.68994140625, - 562.5401611328125, - 346.8355712890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51880645751953, - 337.68994140625, - 562.5401611328125, - 346.8355712890625 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fraction conservation equation for non-condensable gases. The numerical simulation of an experimental steam surface condenser has", - "origin": [ - 42.51880645751953, - 355.6907043457031 - ], - "bbox": [ - 42.51880645751953, - 348.6880187988281, - 562.5070190429688, - 357.8336486816406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51880645751953, - 348.6880187988281, - 562.5070190429688, - 357.8336486816406 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "been conducted using the proposed modified", - "origin": [ - 42.51880645751953, - 366.6322937011719 - ], - "bbox": [ - 42.51880645751953, - 359.6296081542969, - 219.62481689453125, - 368.7752380371094 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 219.62481689453125, - 366.6322937011719 - ], - "bbox": [ - 219.62481689453125, - 359.90521240234375, - 228.13107299804688, - 368.87152099609375 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 228.13197326660156, - 366.6322937011719 - ], - "bbox": [ - 228.13197326660156, - 359.6296081542969, - 232.61512756347656, - 368.7752380371094 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 232.6106414794922, - 366.6322937011719 - ], - "bbox": [ - 232.6106414794922, - 359.4413146972656, - 236.0626678466797, - 369.3401184082031 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence model. The results obtained from the proposed model agree well with", - "origin": [ - 236.0626678466797, - 366.6322937011719 - ], - "bbox": [ - 236.0626678466797, - 359.6296081542969, - 562.5670166015625, - 368.7752380371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51880645751953, - 359.4413146972656, - 562.5670166015625, - 369.3401184082031 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the experimental results and the results also show an obvious improvement in the prediction accuracy comparing with previous results", - "origin": [ - 42.518798828125, - 377.5738830566406 - ], - "bbox": [ - 42.518798828125, - 370.5711975097656, - 562.516845703125, - 379.7168273925781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.518798828125, - 370.5711975097656, - 562.516845703125, - 379.7168273925781 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "where a constant value for the turbulent viscosity was used.", - "origin": [ - 42.518798828125, - 388.57196044921875 - ], - "bbox": [ - 42.518798828125, - 381.56927490234375, - 275.0284423828125, - 390.71490478515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.518798828125, - 381.56927490234375, - 275.0284423828125, - 390.71490478515625 - ] - }, - { - "spans": [ - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvPSSym", - "color": 0, - "ascender": 1.0099999904632568, - "descender": -0.29100000858306885, - "text": "�", - "origin": [ - 42.518798828125, - 399.5135498046875 - ], - "bbox": [ - 42.518798828125, - 390.45758056640625, - 49.611141204833984, - 402.12274169921875 - ] - }, - { - "size": 8.966300010681152, - "flags": 4, - "font": "AdvTimes", - "color": 0, - "ascender": 0.765999972820282, - "descender": -0.21199999749660492, - "text": " 2006 Elsevier Ltd. All rights reserved.", - "origin": [ - 49.611141204833984, - 399.5135498046875 - ], - "bbox": [ - 49.611141204833984, - 392.4908752441406, - 199.3896026611328, - 401.4571533203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.518798828125, - 390.45758056640625, - 199.3896026611328, - 402.12274169921875 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 42.51969909667969, - 414.38299560546875, - 481.2185363769531, - 423.1820983886719 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Keywords:", - "origin": [ - 42.51969909667969, - 420.77508544921875 - ], - "bbox": [ - 42.51969909667969, - 414.79534912109375, - 77.77986145019531, - 422.76556396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Heat transfer; Numerical simulation; Condenser; Porous medium; Gas–liquid two-phase flow;", - "origin": [ - 77.77986145019531, - 420.77508544921875 - ], - "bbox": [ - 77.77986145019531, - 414.55035400390625, - 405.2344665527344, - 422.6799621582031 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 405.2344665527344, - 420.77508544921875 - ], - "bbox": [ - 405.2344665527344, - 414.79534912109375, - 412.0827331542969, - 422.76556396484375 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 412.04608154296875, - 420.77508544921875 - ], - "bbox": [ - 412.04608154296875, - 414.55035400390625, - 416.03118896484375, - 422.6799621582031 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 416.0144348144531, - 420.77508544921875 - ], - "bbox": [ - 416.0144348144531, - 414.38299560546875, - 419.08294677734375, - 423.1820983886719 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence model", - "origin": [ - 419.08294677734375, - 420.77508544921875 - ], - "bbox": [ - 419.08294677734375, - 414.55035400390625, - 481.2185363769531, - 422.6799621582031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 414.38299560546875, - 481.2185363769531, - 423.1820983886719 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 42.51969909667969, - 455.93365478515625, - 104.82978057861328, - 465.896240234375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "1. Introduction", - "origin": [ - 42.51969909667969, - 463.408203125 - ], - "bbox": [ - 42.51969909667969, - 455.93365478515625, - 104.82978057861328, - 465.896240234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 455.93365478515625, - 104.82978057861328, - 465.896240234375 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 42.51969909667969, - 479.5516052246094, - 293.58221435546875, - 669.0313110351562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Steam surface condensers are widely used in the power", - "origin": [ - 54.48179244995117, - 487.3323974609375 - ], - "bbox": [ - 54.48179244995117, - 479.5516052246094, - 293.4746398925781, - 489.7134704589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.48179244995117, - 479.5516052246094, - 293.4746398925781, - 489.7134704589844 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "generation industry. And the improvement of the perfor-", - "origin": [ - 42.51969909667969, - 499.29449462890625 - ], - "bbox": [ - 42.51969909667969, - 491.5137023925781, - 293.58221435546875, - 501.6755676269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 491.5137023925781, - 293.58221435546875, - 501.6755676269531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "mance of condensers could result in a significant increase", - "origin": [ - 42.51969909667969, - 511.256591796875 - ], - "bbox": [ - 42.51969909667969, - 503.4757995605469, - 293.5214538574219, - 513.6376342773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 503.4757995605469, - 293.5214538574219, - 513.6376342773438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in the efficiency and energy saving. Therefore, it is of great", - "origin": [ - 42.51969909667969, - 523.2186889648438 - ], - "bbox": [ - 42.51969909667969, - 515.4379272460938, - 293.5342712402344, - 525.5997314453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 515.4379272460938, - 293.5342712402344, - 525.5997314453125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "importance to understand the fluid flow and heat transfer", - "origin": [ - 42.51969909667969, - 535.1240234375 - ], - "bbox": [ - 42.51969909667969, - 527.34326171875, - 293.5503234863281, - 537.5050659179688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 527.34326171875, - 293.5503234863281, - 537.5050659179688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in condensers in order to improve the design of condensers.", - "origin": [ - 42.51969909667969, - 547.0860595703125 - ], - "bbox": [ - 42.51969909667969, - 539.3052978515625, - 293.57928466796875, - 549.4671020507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 539.3052978515625, - 293.57928466796875, - 549.4671020507812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "However, the experimental method is very expensive and", - "origin": [ - 42.51969909667969, - 559.0482177734375 - ], - "bbox": [ - 42.51969909667969, - 551.2674560546875, - 293.5452880859375, - 561.4292602539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 551.2674560546875, - 293.5452880859375, - 561.4292602539062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "time-consuming. With the development of computer tech-", - "origin": [ - 42.51969909667969, - 571.01025390625 - ], - "bbox": [ - 42.51969909667969, - 563.2294921875, - 293.5304260253906, - 573.3912963867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 563.2294921875, - 293.5304260253906, - 573.3912963867188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "nology, it becomes possible to simulate a complicated fluid", - "origin": [ - 42.51969909667969, - 582.972412109375 - ], - "bbox": [ - 42.51969909667969, - 575.191650390625, - 293.5213928222656, - 585.3534545898438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 575.191650390625, - 293.5213928222656, - 585.3534545898438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "flow and heat transfer process by numerical methods. The", - "origin": [ - 42.51969909667969, - 594.9344482421875 - ], - "bbox": [ - 42.51969909667969, - 587.1536865234375, - 293.5423583984375, - 597.3154907226562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 587.1536865234375, - 293.5423583984375, - 597.3154907226562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fluid flow in steam surface condensers is turbulent and", - "origin": [ - 42.51969909667969, - 606.8966064453125 - ], - "bbox": [ - 42.51969909667969, - 599.1158447265625, - 293.5463562011719, - 609.2776489257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 599.1158447265625, - 293.5463562011719, - 609.2776489257812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "multi-phase with distributed flow resistance due to tube", - "origin": [ - 42.51969909667969, - 618.858642578125 - ], - "bbox": [ - 42.51969909667969, - 611.077880859375, - 293.5124816894531, - 621.2396850585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 611.077880859375, - 293.5124816894531, - 621.2396850585938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "bundles.", - "origin": [ - 42.51969909667969, - 630.7639770507812 - ], - "bbox": [ - 42.51969909667969, - 622.9832153320312, - 78.17285919189453, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 622.9832153320312, - 78.17285919189453, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Therefore,", - "origin": [ - 86.34219360351562, - 630.7639770507812 - ], - "bbox": [ - 86.34219360351562, - 622.9832153320312, - 130.80227661132812, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 86.34219360351562, - 622.9832153320312, - 130.80227661132812, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "a", - "origin": [ - 139.00946044921875, - 630.7639770507812 - ], - "bbox": [ - 139.00946044921875, - 622.9832153320312, - 143.99075317382812, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.00946044921875, - 622.9832153320312, - 143.99075317382812, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "suitable", - "origin": [ - 152.16207885742188, - 630.7639770507812 - ], - "bbox": [ - 152.16207885742188, - 622.9832153320312, - 185.0286865234375, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 152.16207885742188, - 622.9832153320312, - 185.0286865234375, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "turbulence", - "origin": [ - 193.26377868652344, - 630.7639770507812 - ], - "bbox": [ - 193.26377868652344, - 622.9832153320312, - 238.24293518066406, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.26377868652344, - 622.9832153320312, - 238.24293518066406, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "model", - "origin": [ - 246.441162109375, - 630.7639770507812 - ], - "bbox": [ - 246.441162109375, - 622.9832153320312, - 272.6726989746094, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.441162109375, - 622.9832153320312, - 272.6726989746094, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "for", - "origin": [ - 280.9097900390625, - 630.7639770507812 - ], - "bbox": [ - 280.9097900390625, - 622.9832153320312, - 293.5622863769531, - 633.14501953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 280.9097900390625, - 622.9832153320312, - 293.5622863769531, - 633.14501953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "multi-phase flows with distributed flow resistance is neces-", - "origin": [ - 42.51969909667969, - 642.72607421875 - ], - "bbox": [ - 42.51969909667969, - 634.9453125, - 293.5284729003906, - 645.1071166992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 634.9453125, - 293.5284729003906, - 645.1071166992188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "sary in order to simulate the performance of steam", - "origin": [ - 42.51969909667969, - 654.6881713867188 - ], - "bbox": [ - 42.51969909667969, - 646.9074096679688, - 293.5114440917969, - 657.0692138671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 646.9074096679688, - 293.5114440917969, - 657.0692138671875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "condensers more accurately. The numerical simulations", - "origin": [ - 42.51969909667969, - 666.6502685546875 - ], - "bbox": [ - 42.51969909667969, - 658.8695068359375, - 293.4934997558594, - 669.0313110351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 658.8695068359375, - 293.4934997558594, - 669.0313110351562 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 311.52679443359375, - 455.62646484375, - 562.5614624023438, - 716.8787231445312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "of fluid flow and heat transfer in steam surface condensers", - "origin": [ - 311.52679443359375, - 463.4072570800781 - ], - "bbox": [ - 311.52679443359375, - 455.62646484375, - 562.544189453125, - 465.788330078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 455.62646484375, - 562.544189453125, - 465.788330078125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "have been conducted by several researchers", - "origin": [ - 311.52679443359375, - 475.3693542480469 - ], - "bbox": [ - 311.52679443359375, - 467.58856201171875, - 493.5595703125, - 477.75042724609375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [1–8]", - "origin": [ - 493.5595703125, - 475.3693542480469 - ], - "bbox": [ - 493.5595703125, - 467.58856201171875, - 516.2721557617188, - 477.75042724609375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ". However,", - "origin": [ - 516.3578491210938, - 475.3693542480469 - ], - "bbox": [ - 516.3578491210938, - 467.58856201171875, - 562.54931640625, - 477.75042724609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 467.58856201171875, - 562.54931640625, - 477.75042724609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "in these studies, either the turbulent effect was neglected", - "origin": [ - 311.52679443359375, - 487.3314514160156 - ], - "bbox": [ - 311.52679443359375, - 479.5506591796875, - 547.0266723632812, - 489.7125244140625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [1]", - "origin": [ - 547.0266723632812, - 487.3314514160156 - ], - "bbox": [ - 547.0266723632812, - 479.5506591796875, - 559.82666015625, - 489.7125244140625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ",", - "origin": [ - 559.8406372070312, - 487.3314514160156 - ], - "bbox": [ - 559.8406372070312, - 479.5506591796875, - 562.530517578125, - 489.7125244140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 479.5506591796875, - 562.530517578125, - 489.7125244140625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "or a constant ratio of the turbulent viscosity to the dynamic", - "origin": [ - 311.5268249511719, - 499.2935485839844 - ], - "bbox": [ - 311.5268249511719, - 491.51275634765625, - 562.5424194335938, - 501.67462158203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5268249511719, - 491.51275634765625, - 562.5424194335938, - 501.67462158203125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "viscosity was used", - "origin": [ - 311.5268249511719, - 511.2556457519531 - ], - "bbox": [ - 311.5268249511719, - 503.474853515625, - 390.9217834472656, - 513.63671875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2–6]", - "origin": [ - 390.9217834472656, - 511.2556457519531 - ], - "bbox": [ - 390.9217834472656, - 503.474853515625, - 415.30224609375, - 513.63671875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ", or a simple algebraic expression", - "origin": [ - 415.3311462402344, - 511.2556457519531 - ], - "bbox": [ - 415.3311462402344, - 503.474853515625, - 562.5303955078125, - 513.63671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5268249511719, - 503.474853515625, - 562.5303955078125, - 513.63671875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "was used to determine the turbulent viscosity", - "origin": [ - 311.5268249511719, - 523.2177734375 - ], - "bbox": [ - 311.5268249511719, - 515.43701171875, - 508.4097900390625, - 525.5988159179688 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [7,8]", - "origin": [ - 508.4097900390625, - 523.2177734375 - ], - "bbox": [ - 508.4097900390625, - 515.43701171875, - 530.0813598632812, - 525.5988159179688 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ". In the", - "origin": [ - 530.1341552734375, - 523.2177734375 - ], - "bbox": [ - 530.1341552734375, - 515.43701171875, - 562.5244140625, - 525.5988159179688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5268249511719, - 515.43701171875, - 562.5244140625, - 525.5988159179688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "numerical simulation of the two-phase flow with distrib-", - "origin": [ - 311.52679443359375, - 535.123046875 - ], - "bbox": [ - 311.52679443359375, - 527.34228515625, - 562.5384521484375, - 537.5040893554688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 527.34228515625, - 562.5384521484375, - 537.5040893554688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "uted flow resistance in a steam generator conducted by", - "origin": [ - 311.52679443359375, - 547.0851440429688 - ], - "bbox": [ - 311.52679443359375, - 539.3043823242188, - 562.5503540039062, - 549.4661865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 539.3043823242188, - 562.5503540039062, - 549.4661865234375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Stosic and Stevanovic", - "origin": [ - 311.52679443359375, - 559.0472412109375 - ], - "bbox": [ - 311.52679443359375, - 551.2664794921875, - 410.744384765625, - 561.4282836914062 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [9]", - "origin": [ - 410.744384765625, - 559.0472412109375 - ], - "bbox": [ - 410.744384765625, - 551.2664794921875, - 426.9963073730469, - 561.4282836914062 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ", the flow was assumed non-", - "origin": [ - 427.01025390625, - 559.0472412109375 - ], - "bbox": [ - 427.01025390625, - 551.2664794921875, - 562.5353393554688, - 561.4282836914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52679443359375, - 551.2664794921875, - 562.5353393554688, - 561.4282836914062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "viscous and the turbulent effect was indirectly taken into", - "origin": [ - 311.52777099609375, - 571.0093383789062 - ], - "bbox": [ - 311.52777099609375, - 563.2285766601562, - 562.5016479492188, - 573.390380859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 563.2285766601562, - 562.5016479492188, - 573.390380859375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "account through friction or drag terms. Therefore, the", - "origin": [ - 311.52777099609375, - 582.971435546875 - ], - "bbox": [ - 311.52777099609375, - 575.190673828125, - 562.5214233398438, - 585.3524780273438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 575.190673828125, - 562.5214233398438, - 585.3524780273438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "objectives of this study are to develop a suitable turbulence", - "origin": [ - 311.52777099609375, - 594.9335327148438 - ], - "bbox": [ - 311.52777099609375, - 587.1527709960938, - 562.5263671875, - 597.3145751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 587.1527709960938, - 562.5263671875, - 597.3145751953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "model for gas–liquid two-phase flows in steam surface con-", - "origin": [ - 311.52777099609375, - 606.8956298828125 - ], - "bbox": [ - 311.52777099609375, - 599.1148681640625, - 562.5224609375, - 609.2766723632812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 599.1148681640625, - 562.5224609375, - 609.2766723632812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "densers where distributed flow resistance exists and valid", - "origin": [ - 311.52777099609375, - 618.8577270507812 - ], - "bbox": [ - 311.52777099609375, - 611.0769653320312, - 562.5614624023438, - 621.23876953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 611.0769653320312, - 562.5614624023438, - 621.23876953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the proposed turbulence model using experimental data.", - "origin": [ - 311.52777099609375, - 630.7630615234375 - ], - "bbox": [ - 311.52777099609375, - 622.9822998046875, - 554.5576171875, - 633.1441040039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 622.9822998046875, - 554.5576171875, - 633.1441040039062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The experimental steam surface condenser and experi-", - "origin": [ - 323.4898681640625, - 642.72509765625 - ], - "bbox": [ - 323.4898681640625, - 634.9443359375, - 562.5276489257812, - 645.1061401367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 323.4898681640625, - 634.9443359375, - 562.5276489257812, - 645.1061401367188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "mental data from Al-Sanea et al.", - "origin": [ - 311.52777099609375, - 654.687255859375 - ], - "bbox": [ - 311.52777099609375, - 646.906494140625, - 459.59490966796875, - 657.0682983398438 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [6]", - "origin": [ - 459.59490966796875, - 654.687255859375 - ], - "bbox": [ - 459.59490966796875, - 646.906494140625, - 474.3923645019531, - 657.0682983398438 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " and Bush et al.", - "origin": [ - 474.3923645019531, - 654.687255859375 - ], - "bbox": [ - 474.3923645019531, - 646.906494140625, - 547.6961059570312, - 657.0682983398438 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [8]", - "origin": [ - 547.6961059570312, - 654.687255859375 - ], - "bbox": [ - 547.6961059570312, - 646.906494140625, - 562.5493774414062, - 657.0682983398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.52777099609375, - 646.906494140625, - 562.5493774414062, - 657.0682983398438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "are selected in this study to validate the proposed numeri-", - "origin": [ - 311.5277404785156, - 666.6492919921875 - ], - "bbox": [ - 311.5277404785156, - 658.8685302734375, - 562.49853515625, - 669.0303344726562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 658.8685302734375, - 562.49853515625, - 669.0303344726562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "cal model. The numerical results obtained by the current", - "origin": [ - 311.5277404785156, - 678.6114501953125 - ], - "bbox": [ - 311.5277404785156, - 670.8306884765625, - 562.4717407226562, - 680.9924926757812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 670.8306884765625, - 562.4717407226562, - 680.9924926757812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "numerical model are also compared with the results by", - "origin": [ - 311.5277404785156, - 690.573486328125 - ], - "bbox": [ - 311.5277404785156, - 682.792724609375, - 562.5543823242188, - 692.9545288085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 682.792724609375, - 562.5543823242188, - 692.9545288085938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "using the numerical model with a constant turbulent", - "origin": [ - 311.5277404785156, - 702.53564453125 - ], - "bbox": [ - 311.5277404785156, - 694.7548828125, - 562.5224609375, - 704.9166870117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 694.7548828125, - 562.5224609375, - 704.9166870117188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "viscosity.", - "origin": [ - 311.5277404785156, - 714.4976806640625 - ], - "bbox": [ - 311.5277404785156, - 706.7169189453125, - 350.49249267578125, - 716.8787231445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.5277404785156, - 706.7169189453125, - 350.49249267578125, - 716.8787231445312 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 42.519691467285156, - 728.3912353515625, - 287.8009948730469, - 748.3529663085938 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSTim", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "0017-9310/$ - see front matter", - "origin": [ - 42.51969909667969, - 736.441162109375 - ], - "bbox": [ - 42.51969909667969, - 730.46142578125, - 145.98406982421875, - 738.431640625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSSym", - "color": 0, - "ascender": 1.0099999904632568, - "descender": -0.29100000858306885, - "text": " �", - "origin": [ - 145.98406982421875, - 736.441162109375 - ], - "bbox": [ - 145.98406982421875, - 728.3912353515625, - 154.89712524414062, - 738.760498046875 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSTim", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " 2006 Elsevier Ltd. All rights reserved.", - "origin": [ - 154.89712524414062, - 736.441162109375 - ], - "bbox": [ - 154.89712524414062, - 730.46142578125, - 287.8009948730469, - 738.431640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.51969909667969, - 728.3912353515625, - 287.8009948730469, - 738.760498046875 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvPSTim", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "doi:10.1016/j.ijheatmasstransfer.2006.10.031", - "origin": [ - 42.519691467285156, - 746.3624877929688 - ], - "bbox": [ - 42.519691467285156, - 740.3827514648438, - 192.16505432128906, - 748.3529663085938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.519691467285156, - 740.3827514648438, - 192.16505432128906, - 748.3529663085938 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 47.90549850463867, - 695.0101318359375, - 228.9374237060547, - 716.4918212890625 - ], - "lines": [ - { - "spans": [ - { - "size": 5.635257720947266, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "*", - "origin": [ - 47.90549850463867, - 701.23486328125 - ], - "bbox": [ - 47.90549850463867, - 697.0856323242188, - 50.89419937133789, - 702.5045776367188 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Corresponding author.", - "origin": [ - 50.89419937133789, - 701.23486328125 - ], - "bbox": [ - 50.89419937133789, - 695.0101318359375, - 132.94271850585938, - 706.6546630859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 47.90549850463867, - 695.0101318359375, - 132.94271850585938, - 706.6546630859375 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "E-mail address:", - "origin": [ - 54.311912536621094, - 714.5013427734375 - ], - "bbox": [ - 54.311912536621094, - 708.5216064453125, - 106.61077117919922, - 716.4918212890625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " zhangc@engga.uwo.ca", - "origin": [ - 106.61077117919922, - 714.5013427734375 - ], - "bbox": [ - 106.61077117919922, - 708.276611328125, - 186.3072052001953, - 716.40625 - ] - }, - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " (C. Zhang).", - "origin": [ - 186.3072052001953, - 714.5013427734375 - ], - "bbox": [ - 186.3072052001953, - 708.276611328125, - 228.9374237060547, - 716.40625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.311912536621094, - 708.276611328125, - 228.9374237060547, - 716.4918212890625 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 458.0806579589844, - 113.45264434814453, - 562.5825805664062, - 121.58224487304688 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "www.elsevier.com/locate/ijhmt", - "origin": [ - 458.0806579589844, - 119.6773681640625 - ], - "bbox": [ - 458.0806579589844, - 113.45264434814453, - 562.5825805664062, - 121.58224487304688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.0806579589844, - 113.45264434814453, - 562.5825805664062, - 121.58224487304688 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 166.05349731445312, - 99.84809112548828, - 408.7239074707031, - 107.97769165039062 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "International Journal of Heat and Mass Transfer 50 (2007) 1641–1648", - "origin": [ - 166.05349731445312, - 106.07281494140625 - ], - "bbox": [ - 166.05349731445312, - 99.84809112548828, - 408.7239074707031, - 107.97769165039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 166.05349731445312, - 99.84809112548828, - 408.7239074707031, - 107.97769165039062 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 13, - "type": 0, - "bbox": [ - 166.05349731445312, - 99.84809112548828, - 408.7239074707031, - 107.97769165039062 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "International Journal of Heat and Mass Transfer 50 (2007) 1641–1648", - "origin": [ - 166.05349731445312, - 106.07281494140625 - ], - "bbox": [ - 166.05349731445312, - 99.84809112548828, - 408.7239074707031, - 107.97769165039062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 166.05349731445312, - 99.84809112548828, - 408.7239074707031, - 107.97769165039062 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [ - { - "bbox": [ - 42, - 48, - 96, - 107 - ], - "image_path": "images/0_42_48_96_107.jpg", - "tag": "header" - }, - { - "bbox": [ - 477, - 48, - 562, - 107 - ], - "image_path": "images/0_477_48_562_107.jpg", - "tag": "header" - }, - { - "bbox": [ - 202, - 47, - 372, - 81 - ], - "image_path": "images/0_202_47_372_81.jpg", - "tag": "header" - } - ], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.2760009765625, - 793.7009887695312 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\351\241\266\351\203\250\350\241\250\346\240\274_\344\270\2132\345\210\227_ViLT_7.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\351\241\266\351\203\250\350\241\250\346\240\274_\344\270\2132\345\210\227_ViLT_7.pdf/preproc_out.json" deleted file mode 100644 index 792cf6985..000000000 --- "a/tests/assets/pre_proc_results/\351\241\266\351\203\250\350\241\250\346\240\274_\344\270\2132\345\210\227_ViLT_7.pdf/preproc_out.json" +++ /dev/null @@ -1,26657 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 14, - "type": 0, - "bbox": [ - 55.11199951171875, - 407.7289123535156, - 291.0986328125, - 539.6444702148438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Natural Language for Visual Reasoning.", - "origin": [ - 55.439998626708984, - 417.2929992675781 - ], - "bbox": [ - 55.439998626708984, - 407.7289123535156, - 228.85894775390625, - 420.69024658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 407.7289123535156, - 228.85894775390625, - 420.69024658203125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "The NLVR2", - "origin": [ - 238.82200622558594, - 417.2929992675781 - ], - "bbox": [ - 238.82200622558594, - 408.0875549316406, - 289.4382019042969, - 420.0924987792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 238.82200622558594, - 408.0875549316406, - 289.4382019042969, - 420.0924987792969 - ] - }, - { - "spans": [ - { - "size": 10.051863670349121, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "task is a binary classification task given triplets of two im-", - "origin": [ - 55.439998626708984, - 429.24798583984375 - ], - "bbox": [ - 55.439998626708984, - 420.04254150390625, - 291.0978698730469, - 432.0474853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 420.04254150390625, - 291.0978698730469, - 432.0474853515625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ages and a question in natural language. As there are two", - "origin": [ - 55.439998626708984, - 441.2040100097656 - ], - "bbox": [ - 55.439998626708984, - 431.9985656738281, - 289.43701171875, - 444.0035095214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 431.9985656738281, - 289.43701171875, - 444.0035095214844 - ] - }, - { - "spans": [ - { - "size": 10.051863670349121, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "input images unlike the pre-training setup, multiple strate-", - "origin": [ - 55.439998626708984, - 453.15899658203125 - ], - "bbox": [ - 55.439998626708984, - 443.95355224609375, - 291.097900390625, - 455.95849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 443.95355224609375, - 291.097900390625, - 455.95849609375 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "gies exist", - "origin": [ - 55.439998626708984, - 465.114013671875 - ], - "bbox": [ - 55.439998626708984, - 455.9085693359375, - 91.8280029296875, - 467.91351318359375 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "7", - "origin": [ - 91.83300018310547, - 461.4989929199219 - ], - "bbox": [ - 91.83300018310547, - 455.0552062988281, - 95.31990051269531, - 463.4586181640625 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ". Following OSCAR (", - "origin": [ - 95.81800079345703, - 465.114013671875 - ], - "bbox": [ - 95.81800079345703, - 455.9085693359375, - 181.5987548828125, - 467.91351318359375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Li et al.", - "origin": [ - 181.5987548828125, - 465.114013671875 - ], - "bbox": [ - 181.5987548828125, - 455.9085693359375, - 211.55274963378906, - 467.91351318359375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 211.55274963378906, - 465.114013671875 - ], - "bbox": [ - 211.55274963378906, - 455.9085693359375, - 213.99359130859375, - 467.91351318359375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020b", - "origin": [ - 213.99359130859375, - 465.114013671875 - ], - "bbox": [ - 213.99359130859375, - 455.9085693359375, - 240.77442932128906, - 467.91351318359375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") and VinVL", - "origin": [ - 240.77442932128906, - 465.114013671875 - ], - "bbox": [ - 240.77442932128906, - 455.9085693359375, - 289.9328918457031, - 467.91351318359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 455.0552062988281, - 289.9328918457031, - 467.91351318359375 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 55.11199951171875, - 477.0690002441406 - ], - "bbox": [ - 55.11199951171875, - 467.8635559082031, - 58.49589538574219, - 479.8684997558594 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Zhang et al.", - "origin": [ - 58.49589538574219, - 477.0690002441406 - ], - "bbox": [ - 58.49589538574219, - 467.8635559082031, - 108.38043212890625, - 479.8684997558594 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 108.38043212890625, - 477.0690002441406 - ], - "bbox": [ - 108.38043212890625, - 467.8635559082031, - 110.9208984375, - 479.8684997558594 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2021", - "origin": [ - 110.9208984375, - 477.0690002441406 - ], - "bbox": [ - 110.9208984375, - 467.8635559082031, - 134.58786010742188, - 479.8684997558594 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "), we use the", - "origin": [ - 134.58786010742188, - 477.0690002441406 - ], - "bbox": [ - 134.58786010742188, - 467.8635559082031, - 188.59808349609375, - 479.8684997558594 - ] - }, - { - "size": 10.061732292175293, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " pair", - "origin": [ - 188.59808349609375, - 477.0690002441406 - ], - "bbox": [ - 188.59808349609375, - 467.8635559082031, - 208.89181518554688, - 479.7589111328125 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " method. Here, the", - "origin": [ - 208.89181518554688, - 477.0690002441406 - ], - "bbox": [ - 208.89181518554688, - 467.8635559082031, - 289.4389343261719, - 479.8684997558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.11199951171875, - 467.8635559082031, - 289.4389343261719, - 479.8684997558594 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "triplet input is reformulated into two pairs (question, im-", - "origin": [ - 55.439998626708984, - 489.02398681640625 - ], - "bbox": [ - 55.439998626708984, - 479.81854248046875, - 291.0933837890625, - 491.823486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 479.81854248046875, - 291.0933837890625, - 491.823486328125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "age1) and (question, image2), and each pair goes through", - "origin": [ - 55.439998626708984, - 500.97900390625 - ], - "bbox": [ - 55.439998626708984, - 491.7735595703125, - 289.4369812011719, - 503.77850341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 491.7735595703125, - 289.4369812011719, - 503.77850341796875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the ViLT. The head takes the concatenation of two pooled", - "origin": [ - 55.439998626708984, - 512.9349975585938 - ], - "bbox": [ - 55.439998626708984, - 503.72955322265625, - 289.4370422363281, - 515.7344970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 503.72955322265625, - 289.4370422363281, - 515.7344970703125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "representations (", - "origin": [ - 55.439998626708984, - 524.8900146484375 - ], - "bbox": [ - 55.439998626708984, - 515.6845703125, - 122.9959945678711, - 527.6895141601562 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "p", - "origin": [ - 122.99800109863281, - 524.8900146484375 - ], - "bbox": [ - 122.99800109863281, - 517.4180908203125, - 128.00918579101562, - 527.3806762695312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") as input and outputs the binary predic-", - "origin": [ - 128.01100158691406, - 524.8900146484375 - ], - "bbox": [ - 128.01100158691406, - 515.6845703125, - 291.0986328125, - 527.6895141601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 515.6845703125, - 291.0986328125, - 527.6895141601562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tion.", - "origin": [ - 55.439998626708984, - 536.844970703125 - ], - "bbox": [ - 55.439998626708984, - 527.6395263671875, - 73.43244934082031, - 539.6444702148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 527.6395263671875, - 73.43244934082031, - 539.6444702148438 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 55.13100051879883, - 545.5725708007812, - 289.4440002441406, - 581.4874877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.877554893493652, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Table 2", - "origin": [ - 55.13100051879883, - 554.7780151367188 - ], - "bbox": [ - 55.13100051879883, - 545.5725708007812, - 84.03083801269531, - 557.5775146484375 - ] - }, - { - "size": 9.877554893493652, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " shows the results. ViLT-B/32 maintains competitive", - "origin": [ - 84.03083801269531, - 554.7780151367188 - ], - "bbox": [ - 84.03083801269531, - 545.5725708007812, - 289.4440002441406, - 557.5775146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.13100051879883, - 545.5725708007812, - 289.4440002441406, - 557.5775146484375 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "performance on both datasets considering its remarkable", - "origin": [ - 55.439998626708984, - 566.7330322265625 - ], - "bbox": [ - 55.439998626708984, - 557.527587890625, - 289.4369812011719, - 569.5325317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 557.527587890625, - 289.4369812011719, - 569.5325317382812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "inference speed.", - "origin": [ - 55.439998626708984, - 578.68798828125 - ], - "bbox": [ - 55.439998626708984, - 569.4825439453125, - 120.1669921875, - 581.4874877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 569.4825439453125, - 120.1669921875, - 581.4874877929688 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 55.439998626708984, - 594.2568969726562, - 138.3985595703125, - 607.2182006835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "4.4. Retrieval Tasks", - "origin": [ - 55.439998626708984, - 603.8209838867188 - ], - "bbox": [ - 55.439998626708984, - 594.2568969726562, - 138.3985595703125, - 607.2182006835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 594.2568969726562, - 138.3985595703125, - 607.2182006835938 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 54.97200012207031, - 613.2685546875, - 291.0960388183594, - 661.1384887695312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We fine-tune ViLT-B/32 on the", - "origin": [ - 54.97200012207031, - 622.4739990234375 - ], - "bbox": [ - 54.97200012207031, - 613.2685546875, - 179.05935668945312, - 625.2734985351562 - ] - }, - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Karpathy & Fei-Fei", - "origin": [ - 179.05935668945312, - 622.4739990234375 - ], - "bbox": [ - 179.05935668945312, - 613.2685546875, - 260.79486083984375, - 625.2734985351562 - ] - }, - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " (", - "origin": [ - 260.79486083984375, - 622.4739990234375 - ], - "bbox": [ - 260.79486083984375, - 613.2685546875, - 266.6309509277344, - 625.2734985351562 - ] - }, - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2015", - "origin": [ - 266.6309509277344, - 622.4739990234375 - ], - "bbox": [ - 266.6309509277344, - 613.2685546875, - 286.75543212890625, - 625.2734985351562 - ] - }, - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ")", - "origin": [ - 286.75543212890625, - 622.4739990234375 - ], - "bbox": [ - 286.75543212890625, - 613.2685546875, - 290.10614013671875, - 625.2734985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.97200012207031, - 613.2685546875, - 290.10614013671875, - 625.2734985351562 - ] - }, - { - "spans": [ - { - "size": 9.9126615524292, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "split of MSCOCO and F30K. For image-to-text and text-to-", - "origin": [ - 55.439998626708984, - 634.4290161132812 - ], - "bbox": [ - 55.439998626708984, - 625.2235717773438, - 291.0960388183594, - 637.228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 625.2235717773438, - 291.0960388183594, - 637.228515625 - ] - }, - { - "spans": [ - { - "size": 10.022196769714355, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "image retrieval, we measure both zero-shot and fine-tuned", - "origin": [ - 55.439998626708984, - 646.384033203125 - ], - "bbox": [ - 55.439998626708984, - 637.1785888671875, - 289.4366149902344, - 649.1835327148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 637.1785888671875, - 289.4366149902344, - 649.1835327148438 - ] - }, - { - "spans": [ - { - "size": 10.002370834350586, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "performance", - "origin": [ - 55.439998626708984, - 658.3389892578125 - ], - "bbox": [ - 55.439998626708984, - 649.133544921875, - 106.18373107910156, - 661.1384887695312 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "8", - "origin": [ - 106.18399810791016, - 654.7239990234375 - ], - "bbox": [ - 106.18399810791016, - 648.2802124023438, - 109.6708984375, - 656.6836547851562 - ] - }, - { - "size": 10.002370834350586, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ". We initialize the similarity score head from", - "origin": [ - 110.16899871826172, - 658.3389892578125 - ], - "bbox": [ - 110.16899871826172, - 649.133544921875, - 289.4441833496094, - 661.1384887695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 648.2802124023438, - 289.4441833496094, - 661.1384887695312 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 307.44000244140625, - 408.0875549316406, - 541.4385986328125, - 455.95849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the pre-trained ITM head, particularly the part that computes", - "origin": [ - 307.44000244140625, - 417.2929992675781 - ], - "bbox": [ - 307.44000244140625, - 408.0875549316406, - 541.4381713867188, - 420.0924987792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 408.0875549316406, - 541.4381713867188, - 420.0924987792969 - ] - }, - { - "spans": [ - { - "size": 9.9176664352417, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the true-pair logits. We sample 15 random texts as negative", - "origin": [ - 307.44000244140625, - 429.24798583984375 - ], - "bbox": [ - 307.44000244140625, - 420.04254150390625, - 541.4385986328125, - 432.0474853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 420.04254150390625, - 541.4385986328125, - 432.0474853515625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "samples and tune the model with cross-entropy loss that", - "origin": [ - 307.44000244140625, - 441.2040100097656 - ], - "bbox": [ - 307.44000244140625, - 431.9985656738281, - 541.4371948242188, - 444.0035095214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 431.9985656738281, - 541.4371948242188, - 444.0035095214844 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "maximizes the scores on positive pairs.", - "origin": [ - 307.44000244140625, - 453.15899658203125 - ], - "bbox": [ - 307.44000244140625, - 443.95355224609375, - 463.10565185546875, - 455.95849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 443.95355224609375, - 463.10565185546875, - 455.95849609375 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 306.9720153808594, - 461.8865661621094, - 543.095703125, - 533.66650390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We report the zero shot retrieval results in", - "origin": [ - 306.9720153808594, - 471.0920104980469 - ], - "bbox": [ - 306.9720153808594, - 461.8865661621094, - 473.61639404296875, - 473.8915100097656 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Table 3", - "origin": [ - 473.61639404296875, - 471.0920104980469 - ], - "bbox": [ - 473.61639404296875, - 461.8865661621094, - 505.46685791015625, - 473.8915100097656 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " and fine-", - "origin": [ - 505.46685791015625, - 471.0920104980469 - ], - "bbox": [ - 505.46685791015625, - 461.8865661621094, - 543.095703125, - 473.8915100097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.9720153808594, - 461.8865661621094, - 543.095703125, - 473.8915100097656 - ] - }, - { - "spans": [ - { - "size": 10.046924591064453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tuned results in", - "origin": [ - 307.44000244140625, - 483.0469970703125 - ], - "bbox": [ - 307.44000244140625, - 473.841552734375, - 369.2652282714844, - 485.84649658203125 - ] - }, - { - "size": 10.046924591064453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Table 4", - "origin": [ - 369.2652282714844, - 483.0469970703125 - ], - "bbox": [ - 369.2652282714844, - 473.841552734375, - 401.5760803222656, - 485.84649658203125 - ] - }, - { - "size": 10.046924591064453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ". At zero-shot retrieval, ViLT-B/32", - "origin": [ - 401.5760803222656, - 483.0469970703125 - ], - "bbox": [ - 401.5760803222656, - 473.841552734375, - 541.4376831054688, - 485.84649658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 473.841552734375, - 541.4376831054688, - 485.84649658203125 - ] - }, - { - "spans": [ - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "performs better in general than ImageBERT despite Image-", - "origin": [ - 307.44000244140625, - 495.00201416015625 - ], - "bbox": [ - 307.44000244140625, - 485.79656982421875, - 543.0950927734375, - 497.801513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 485.79656982421875, - 543.0950927734375, - 497.801513671875 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "BERT’s pre-training on a larger (14M) dataset. At fine-tuned", - "origin": [ - 307.44000244140625, - 506.9570007324219 - ], - "bbox": [ - 307.44000244140625, - 497.7515563964844, - 541.4380493164062, - 509.7565002441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 497.7515563964844, - 541.4380493164062, - 509.7565002441406 - ] - }, - { - "spans": [ - { - "size": 9.882577896118164, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "retrieval, recalls for ViLT-B/32 are higher by a large margin", - "origin": [ - 307.44000244140625, - 518.9119873046875 - ], - "bbox": [ - 307.44000244140625, - 509.70654296875, - 541.4425048828125, - 521.7114868164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 509.70654296875, - 541.4425048828125, - 521.7114868164062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "than the second fastest model (Pixel-BERT-R50).", - "origin": [ - 307.44000244140625, - 530.8670043945312 - ], - "bbox": [ - 307.44000244140625, - 521.6615600585938, - 503.80279541015625, - 533.66650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 521.6615600585938, - 503.80279541015625, - 533.66650390625 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 307.44000244140625, - 546.4368896484375, - 389.3724365234375, - 559.398193359375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "4.5. Ablation Study", - "origin": [ - 307.44000244140625, - 556.0009765625 - ], - "bbox": [ - 307.44000244140625, - 546.4368896484375, - 389.3724365234375, - 559.398193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 546.4368896484375, - 389.3724365234375, - 559.398193359375 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 307.44000244140625, - 565.4475708007812, - 541.4437866210938, - 613.3175048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "In", - "origin": [ - 307.44000244140625, - 574.6530151367188 - ], - "bbox": [ - 307.44000244140625, - 565.4475708007812, - 315.90484619140625, - 577.4525146484375 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Table 5", - "origin": [ - 315.90484619140625, - 574.6530151367188 - ], - "bbox": [ - 315.90484619140625, - 565.4475708007812, - 349.8556213378906, - 577.4525146484375 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ", we perform various ablations. More training", - "origin": [ - 349.8556213378906, - 574.6530151367188 - ], - "bbox": [ - 349.8556213378906, - 565.4475708007812, - 541.4371948242188, - 577.4525146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 565.4475708007812, - 541.4371948242188, - 577.4525146484375 - ] - }, - { - "spans": [ - { - "size": 9.932666778564453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "steps, whole word masking, and image augmentation come", - "origin": [ - 307.44000244140625, - 586.6080322265625 - ], - "bbox": [ - 307.44000244140625, - 577.402587890625, - 541.4437866210938, - 589.4075317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 577.402587890625, - 541.4437866210938, - 589.4075317382812 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "to be beneficial, whereas an additional training objective", - "origin": [ - 307.44000244140625, - 598.56298828125 - ], - "bbox": [ - 307.44000244140625, - 589.3575439453125, - 541.4371337890625, - 601.3624877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 589.3575439453125, - 541.4371337890625, - 601.3624877929688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "does not help.", - "origin": [ - 307.44000244140625, - 610.5180053710938 - ], - "bbox": [ - 307.44000244140625, - 601.3125610351562, - 363.0611877441406, - 613.3175048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 601.3125610351562, - 363.0611877441406, - 613.3175048828125 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 307.11199951171875, - 619.2455444335938, - 543.0953369140625, - 714.9365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "It has been reported that the number of training iterations", - "origin": [ - 307.44000244140625, - 628.4509887695312 - ], - "bbox": [ - 307.44000244140625, - 619.2455444335938, - 541.437255859375, - 631.25048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 619.2455444335938, - 541.437255859375, - 631.25048828125 - ] - }, - { - "spans": [ - { - "size": 10.022196769714355, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "affects the performance of self-supervised models (", - "origin": [ - 307.44000244140625, - 640.406005859375 - ], - "bbox": [ - 307.44000244140625, - 631.2005615234375, - 514.2449951171875, - 643.2055053710938 - ] - }, - { - "size": 10.022196769714355, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Devlin", - "origin": [ - 514.2449951171875, - 640.406005859375 - ], - "bbox": [ - 514.2449951171875, - 631.2005615234375, - 541.4365844726562, - 643.2055053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 631.2005615234375, - 541.4365844726562, - 643.2055053710938 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "et al.", - "origin": [ - 307.44000244140625, - 652.3609619140625 - ], - "bbox": [ - 307.44000244140625, - 643.155517578125, - 327.3470764160156, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 327.3470764160156, - 652.3609619140625 - ], - "bbox": [ - 327.3470764160156, - 643.155517578125, - 329.8875427246094, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 329.8875427246094, - 652.3609619140625 - ], - "bbox": [ - 329.8875427246094, - 643.155517578125, - 352.9041748046875, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 352.9041748046875, - 652.3609619140625 - ], - "bbox": [ - 352.9041748046875, - 643.155517578125, - 355.7291564941406, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Chen et al.", - "origin": [ - 355.7291564941406, - 652.3609619140625 - ], - "bbox": [ - 355.7291564941406, - 643.155517578125, - 402.4737243652344, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 402.4737243652344, - 652.3609619140625 - ], - "bbox": [ - 402.4737243652344, - 643.155517578125, - 405.0141906738281, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020a", - "origin": [ - 405.0141906738281, - 652.3609619140625 - ], - "bbox": [ - 405.0141906738281, - 643.155517578125, - 432.5426940917969, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 432.5426940917969, - 652.3609619140625 - ], - "bbox": [ - 432.5426940917969, - 643.155517578125, - 435.36767578125, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "b", - "origin": [ - 435.36767578125, - 652.3609619140625 - ], - "bbox": [ - 435.36767578125, - 643.155517578125, - 440.4486083984375, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "). As VLP is also a form", - "origin": [ - 440.4486083984375, - 652.3609619140625 - ], - "bbox": [ - 440.4486083984375, - 643.155517578125, - 541.4371948242188, - 655.1604614257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 643.155517578125, - 541.4371948242188, - 655.1604614257812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "of self-supervised training, we examine the effects of train-", - "origin": [ - 307.44000244140625, - 664.3170166015625 - ], - "bbox": [ - 307.44000244140625, - 655.111572265625, - 543.0953369140625, - 667.1165161132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 655.111572265625, - 543.0953369140625, - 667.1165161132812 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ing durations. As expected, the performance constantly", - "origin": [ - 307.44000244140625, - 676.27197265625 - ], - "bbox": [ - 307.44000244140625, - 667.0665283203125, - 541.7928466796875, - 679.0714721679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 667.0665283203125, - 541.7928466796875, - 679.0714721679688 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "increases as we train the model for longer training steps", - "origin": [ - 307.44000244140625, - 688.2269897460938 - ], - "bbox": [ - 307.44000244140625, - 679.0215454101562, - 541.4371948242188, - 691.0264892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 679.0215454101562, - 541.4371948242188, - 691.0264892578125 - ] - }, - { - "spans": [ - { - "size": 10.032095909118652, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(rows 1~3). Masking whole words for the MLM objective", - "origin": [ - 307.11199951171875, - 700.1820068359375 - ], - "bbox": [ - 307.11199951171875, - 690.9765625, - 541.4395141601562, - 702.9815063476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.11199951171875, - 690.9765625, - 541.4395141601562, - 702.9815063476562 - ] - }, - { - "spans": [ - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(rows 3~4) and fine-tuning with augmentation (row 6) also", - "origin": [ - 307.11199951171875, - 712.1370239257812 - ], - "bbox": [ - 307.11199951171875, - 702.9315795898438, - 541.442138671875, - 714.9365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.11199951171875, - 702.9315795898438, - 541.442138671875, - 714.9365234375 - ] - } - ] - } - ], - "images": [], - "tables": [ - { - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 542, - 201 - ], - "image_path": "tables/0_54_74_542_201.jpg" - }, - { - "bbox": [ - 54.893001556396484, - 214.4070587158203, - 542.1132202148438, - 382 - ], - "image_path": "tables/0_54_214_542_382.jpg" - } - ], - "interline_equations": [], - "inline_equations": [], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 45.50126647949219, - 612.0, - 382 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 54.97200012207031, - 407.7289123535156, - 291.0986328125, - 714.9365234375 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 306.9720153808594, - 407.7289123535156, - 543.095703125, - 714.9365234375 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision", - "origin": [ - 134.13299560546875, - 54.1090087890625 - ], - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 541.441650390625, - 113.60983276367188 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Table 3.", - "origin": [ - 54.893001556396484, - 83.10198974609375 - ], - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 83.55857849121094, - 85.62155151367188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Comparison of ViLT-B/32 with other VLP models on downstream zero-shot retrieval tasks. We exclude the models of which", - "origin": [ - 83.55857849121094, - 83.10198974609375 - ], - "bbox": [ - 83.55857849121094, - 74.81703186035156, - 541.4404296875, - 85.62155151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 541.4404296875, - 85.62155151367188 - ] - }, - { - "spans": [ - { - "size": 8.970882415771484, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "zero-shot retrieval performances were not reported in their original papers.", - "origin": [ - 55.439998626708984, - 94.06097412109375 - ], - "bbox": [ - 55.439998626708984, - 85.77601623535156, - 323.1033935546875, - 96.58053588867188 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " †", - "origin": [ - 323.1033935546875, - 94.06097412109375 - ], - "bbox": [ - 323.1033935546875, - 85.77601623535156, - 330.3671875, - 96.58053588867188 - ] - }, - { - "size": 8.970882415771484, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " is pre-trained with a 10M proprietary vision-and-language", - "origin": [ - 330.3671875, - 94.06097412109375 - ], - "bbox": [ - 330.3671875, - 85.77601623535156, - 541.441650390625, - 96.58053588867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 85.77601623535156, - 541.441650390625, - 96.58053588867188 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "dataset in addition to the 4M dataset of GCC+SBU. +", - "origin": [ - 55.439998626708984, - 105.02001953125 - ], - "bbox": [ - 55.439998626708984, - 96.46504211425781, - 249.8550567626953, - 107.53958129882812 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMSY9", - "color": 0, - "ascender": 0.7770000100135803, - "descender": -0.9580000042915344, - "text": "⃝", - "origin": [ - 242.71900939941406, - 105.02001953125 - ], - "bbox": [ - 242.71900939941406, - 98.0531234741211, - 251.92750549316406, - 113.60983276367188 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " indicates model trained for a longer 200K pre-training steps.", - "origin": [ - 251.92750549316406, - 105.02001953125 - ], - "bbox": [ - 251.92750549316406, - 96.73506164550781, - 471.0732116699219, - 107.53958129882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 96.46504211425781, - 471.0732116699219, - 113.60983276367188 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 61.63600158691406, - 118.42750549316406, - 173.44876098632812, - 136.6915283203125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Visual", - "origin": [ - 61.63600158691406, - 125.88397216796875 - ], - "bbox": [ - 61.63600158691406, - 118.42756652832031, - 82.22180938720703, - 128.15155029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.63600158691406, - 118.42756652832031, - 82.22180938720703, - 128.15155029296875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Embed", - "origin": [ - 61.63600158691406, - 134.4239501953125 - ], - "bbox": [ - 61.63600158691406, - 126.96754455566406, - 84.49746704101562, - 136.6915283203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.63600158691406, - 126.96754455566406, - 84.49746704101562, - 136.6915283203125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Model", - "origin": [ - 96.78300476074219, - 130.242919921875 - ], - "bbox": [ - 96.78300476074219, - 122.78651428222656, - 117.85299682617188, - 132.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 122.78651428222656, - 117.85299682617188, - 132.510498046875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Time", - "origin": [ - 156.6959991455078, - 125.8839111328125 - ], - "bbox": [ - 156.6959991455078, - 118.42750549316406, - 173.44869995117188, - 128.1514892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.6959991455078, - 118.42750549316406, - 173.44869995117188, - 128.1514892578125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(ms)", - "origin": [ - 158.65699768066406, - 134.42388916015625 - ], - "bbox": [ - 158.65699768066406, - 126.96748352050781, - 173.44876098632812, - 136.69146728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.65699768066406, - 126.96748352050781, - 173.44876098632812, - 136.69146728515625 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 185.4040069580078, - 114.71650695800781, - 535.2415161132812, - 140.5794677734375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Zero-Shot Text Retrieval", - "origin": [ - 229.85400390625, - 122.17291259765625 - ], - "bbox": [ - 229.85400390625, - 114.71650695800781, - 309.8973388671875, - 124.44049835205078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.85400390625, - 114.71650695800781, - 309.8973388671875, - 124.44049835205078 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Zero-Shot Image Retrieval", - "origin": [ - 407.71826171875, - 122.17291259765625 - ], - "bbox": [ - 407.71826171875, - 114.71650695800781, - 493.8219909667969, - 124.44049835205078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 407.71826171875, - 114.71650695800781, - 493.8219909667969, - 124.44049835205078 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Flickr30k (1K)", - "origin": [ - 200.3330078125, - 130.242919921875 - ], - "bbox": [ - 200.3330078125, - 122.78651428222656, - 248.96910095214844, - 132.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.3330078125, - 122.78651428222656, - 248.96910095214844, - 132.510498046875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MSCOCO (5K)", - "origin": [ - 289.4305725097656, - 130.242919921875 - ], - "bbox": [ - 289.4305725097656, - 122.78651428222656, - 340.7619323730469, - 132.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.4305725097656, - 122.78651428222656, - 340.7619323730469, - 132.510498046875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Flickr30k (1K)", - "origin": [ - 381.2314758300781, - 130.242919921875 - ], - "bbox": [ - 381.2314758300781, - 122.78651428222656, - 429.86761474609375, - 132.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 381.2314758300781, - 122.78651428222656, - 429.86761474609375, - 132.510498046875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MSCOCO (5K)", - "origin": [ - 470.3291015625, - 130.242919921875 - ], - "bbox": [ - 470.3291015625, - 122.78651428222656, - 521.660400390625, - 132.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 470.3291015625, - 122.78651428222656, - 521.660400390625, - 132.510498046875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 185.4040069580078, - 138.3118896484375 - ], - "bbox": [ - 185.4040069580078, - 130.85548400878906, - 202.2535400390625, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 185.4040069580078, - 130.85548400878906, - 202.2535400390625, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 214.20477294921875, - 138.3118896484375 - ], - "bbox": [ - 214.20477294921875, - 130.85548400878906, - 231.05430603027344, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.20477294921875, - 130.85548400878906, - 231.05430603027344, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 243.0135955810547, - 138.3118896484375 - ], - "bbox": [ - 243.0135955810547, - 130.85548400878906, - 263.8979797363281, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 243.0135955810547, - 130.85548400878906, - 263.8979797363281, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 275.8492126464844, - 138.3118896484375 - ], - "bbox": [ - 275.8492126464844, - 130.85548400878906, - 292.69873046875, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.8492126464844, - 130.85548400878906, - 292.69873046875, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 304.65802001953125, - 138.3118896484375 - ], - "bbox": [ - 304.65802001953125, - 130.85548400878906, - 321.5075378417969, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.65802001953125, - 130.85548400878906, - 321.5075378417969, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 333.4587707519531, - 138.3118896484375 - ], - "bbox": [ - 333.4587707519531, - 130.85548400878906, - 354.3431396484375, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.4587707519531, - 130.85548400878906, - 354.3431396484375, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 366.30242919921875, - 138.3118896484375 - ], - "bbox": [ - 366.30242919921875, - 130.85548400878906, - 383.1519470214844, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 366.30242919921875, - 130.85548400878906, - 383.1519470214844, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 395.1031799316406, - 138.3118896484375 - ], - "bbox": [ - 395.1031799316406, - 130.85548400878906, - 411.95269775390625, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.1031799316406, - 130.85548400878906, - 411.95269775390625, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 423.9119873046875, - 138.3118896484375 - ], - "bbox": [ - 423.9119873046875, - 130.85548400878906, - 444.7963562011719, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.9119873046875, - 130.85548400878906, - 444.7963562011719, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 456.7475891113281, - 138.3118896484375 - ], - "bbox": [ - 456.7475891113281, - 130.85548400878906, - 473.59710693359375, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 456.7475891113281, - 130.85548400878906, - 473.59710693359375, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 485.556396484375, - 138.3118896484375 - ], - "bbox": [ - 485.556396484375, - 130.85548400878906, - 502.4059143066406, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 485.556396484375, - 130.85548400878906, - 502.4059143066406, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 514.3571166992188, - 138.3118896484375 - ], - "bbox": [ - 514.3571166992188, - 130.85548400878906, - 535.2415161132812, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.3571166992188, - 130.85548400878906, - 535.2415161132812, - 140.5794677734375 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 61.63600158691406, - 156.03260803222656, - 84.82832336425781, - 165.756591796875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Region", - "origin": [ - 61.63600158691406, - 163.489013671875 - ], - "bbox": [ - 61.63600158691406, - 156.03260803222656, - 84.82832336425781, - 165.756591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.63600158691406, - 156.03260803222656, - 84.82832336425781, - 165.756591796875 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 96.78300476074219, - 143.92762756347656, - 531.864990234375, - 177.860595703125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLBERT", - "origin": [ - 96.78300476074219, - 151.384033203125 - ], - "bbox": [ - 96.78300476074219, - 143.92762756347656, - 129.4410858154297, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 143.92762756347656, - 129.4410858154297, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 156.9748992919922, - 151.384033203125 - ], - "bbox": [ - 156.9748992919922, - 143.92762756347656, - 173.44515991210938, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.9748992919922, - 143.92762756347656, - 173.44515991210938, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 192.48158264160156, - 151.384033203125 - ], - "bbox": [ - 192.48158264160156, - 143.92762756347656, - 195.16879272460938, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.48158264160156, - 143.92762756347656, - 195.16879272460938, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 221.2904052734375, - 151.384033203125 - ], - "bbox": [ - 221.2904052734375, - 143.92762756347656, - 223.9776153564453, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.2904052734375, - 143.92762756347656, - 223.9776153564453, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 252.1085968017578, - 151.384033203125 - ], - "bbox": [ - 252.1085968017578, - 143.92762756347656, - 254.79580688476562, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.1085968017578, - 143.92762756347656, - 254.79580688476562, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 282.9348449707031, - 151.384033203125 - ], - "bbox": [ - 282.9348449707031, - 143.92762756347656, - 285.6220703125, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.9348449707031, - 143.92762756347656, - 285.6220703125, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 311.7356262207031, - 151.384033203125 - ], - "bbox": [ - 311.7356262207031, - 143.92762756347656, - 314.4228515625, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.7356262207031, - 143.92762756347656, - 314.4228515625, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 342.5618896484375, - 151.384033203125 - ], - "bbox": [ - 342.5618896484375, - 143.92762756347656, - 345.2491149902344, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.5618896484375, - 143.92762756347656, - 345.2491149902344, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "31.9", - "origin": [ - 367.666748046875, - 151.384033203125 - ], - "bbox": [ - 367.666748046875, - 143.92762756347656, - 381.7887268066406, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.666748046875, - 143.92762756347656, - 381.7887268066406, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "61.1", - "origin": [ - 396.4674987792969, - 151.384033203125 - ], - "bbox": [ - 396.4674987792969, - 143.92762756347656, - 410.5894775390625, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.4674987792969, - 143.92762756347656, - 410.5894775390625, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.8", - "origin": [ - 427.29376220703125, - 151.384033203125 - ], - "bbox": [ - 427.29376220703125, - 143.92762756347656, - 441.4157409667969, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.29376220703125, - 143.92762756347656, - 441.4157409667969, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 463.8333740234375, - 151.384033203125 - ], - "bbox": [ - 463.8333740234375, - 143.92762756347656, - 466.5205993652344, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.8333740234375, - 143.92762756347656, - 466.5205993652344, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 492.6341552734375, - 151.384033203125 - ], - "bbox": [ - 492.6341552734375, - 143.92762756347656, - 495.3213806152344, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.6341552734375, - 143.92762756347656, - 495.3213806152344, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 523.46044921875, - 151.384033203125 - ], - "bbox": [ - 523.46044921875, - 143.92762756347656, - 526.1476440429688, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 523.46044921875, - 143.92762756347656, - 526.1476440429688, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Unicoder-VL", - "origin": [ - 96.78300476074219, - 159.45404052734375 - ], - "bbox": [ - 96.78300476074219, - 151.9976348876953, - 140.0930938720703, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 151.9976348876953, - 140.0930938720703, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~925", - "origin": [ - 156.97491455078125, - 159.45404052734375 - ], - "bbox": [ - 156.97491455078125, - 151.9976348876953, - 173.44517517089844, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.97491455078125, - 151.9976348876953, - 173.44517517089844, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "64.3", - "origin": [ - 186.76824951171875, - 159.45404052734375 - ], - "bbox": [ - 186.76824951171875, - 151.9976348876953, - 200.89022827148438, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.76824951171875, - 151.9976348876953, - 200.89022827148438, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.8", - "origin": [ - 215.5690155029297, - 159.45404052734375 - ], - "bbox": [ - 215.5690155029297, - 151.9976348876953, - 229.6909942626953, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.5690155029297, - 151.9976348876953, - 229.6909942626953, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.3", - "origin": [ - 246.39527893066406, - 159.45404052734375 - ], - "bbox": [ - 246.39527893066406, - 151.9976348876953, - 260.5172424316406, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.39527893066406, - 151.9976348876953, - 260.5172424316406, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 282.93487548828125, - 159.45404052734375 - ], - "bbox": [ - 282.93487548828125, - 151.9976348876953, - 285.6221008300781, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.93487548828125, - 151.9976348876953, - 285.6221008300781, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 311.73565673828125, - 159.45404052734375 - ], - "bbox": [ - 311.73565673828125, - 151.9976348876953, - 314.4228820800781, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.73565673828125, - 151.9976348876953, - 314.4228820800781, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 342.5619201660156, - 159.45404052734375 - ], - "bbox": [ - 342.5619201660156, - 151.9976348876953, - 345.2491455078125, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.5619201660156, - 151.9976348876953, - 345.2491455078125, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "48.4", - "origin": [ - 367.6667785644531, - 159.45404052734375 - ], - "bbox": [ - 367.6667785644531, - 151.9976348876953, - 381.78875732421875, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.6667785644531, - 151.9976348876953, - 381.78875732421875, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "76.0", - "origin": [ - 396.467529296875, - 159.45404052734375 - ], - "bbox": [ - 396.467529296875, - 151.9976348876953, - 410.5895080566406, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.467529296875, - 151.9976348876953, - 410.5895080566406, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.2", - "origin": [ - 427.2937927246094, - 159.45404052734375 - ], - "bbox": [ - 427.2937927246094, - 151.9976348876953, - 441.415771484375, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.2937927246094, - 151.9976348876953, - 441.415771484375, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 463.8334045410156, - 159.45404052734375 - ], - "bbox": [ - 463.8334045410156, - 151.9976348876953, - 466.5206298828125, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.8334045410156, - 151.9976348876953, - 466.5206298828125, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 492.6341857910156, - 159.45404052734375 - ], - "bbox": [ - 492.6341857910156, - 151.9976348876953, - 495.3214111328125, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.6341857910156, - 151.9976348876953, - 495.3214111328125, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 523.46044921875, - 159.45404052734375 - ], - "bbox": [ - 523.46044921875, - 151.9976348876953, - 526.1476440429688, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 523.46044921875, - 151.9976348876953, - 526.1476440429688, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "UNITER-Base", - "origin": [ - 96.78300476074219, - 167.5240478515625 - ], - "bbox": [ - 96.78300476074219, - 160.06764221191406, - 144.74124145507812, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 160.06764221191406, - 144.74124145507812, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 156.97491455078125, - 167.5240478515625 - ], - "bbox": [ - 156.97491455078125, - 160.06764221191406, - 173.44517517089844, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.97491455078125, - 160.06764221191406, - 173.44517517089844, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.7", - "origin": [ - 186.76824951171875, - 167.5240478515625 - ], - "bbox": [ - 186.76824951171875, - 160.06764221191406, - 200.89022827148438, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.76824951171875, - 160.06764221191406, - 200.89022827148438, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.7", - "origin": [ - 215.5690155029297, - 167.5240478515625 - ], - "bbox": [ - 215.5690155029297, - 160.06764221191406, - 229.6909942626953, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.5690155029297, - 160.06764221191406, - 229.6909942626953, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "98.0", - "origin": [ - 246.39527893066406, - 167.5240478515625 - ], - "bbox": [ - 246.39527893066406, - 160.06764221191406, - 260.5172424316406, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.39527893066406, - 160.06764221191406, - 260.5172424316406, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 282.93487548828125, - 167.5240478515625 - ], - "bbox": [ - 282.93487548828125, - 160.06764221191406, - 285.6221008300781, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.93487548828125, - 160.06764221191406, - 285.6221008300781, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 311.73565673828125, - 167.5240478515625 - ], - "bbox": [ - 311.73565673828125, - 160.06764221191406, - 314.4228820800781, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.73565673828125, - 160.06764221191406, - 314.4228820800781, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 342.5619201660156, - 167.5240478515625 - ], - "bbox": [ - 342.5619201660156, - 160.06764221191406, - 345.2491455078125, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.5619201660156, - 160.06764221191406, - 345.2491455078125, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "66.2", - "origin": [ - 367.6667785644531, - 167.5240478515625 - ], - "bbox": [ - 367.6667785644531, - 160.06764221191406, - 381.78875732421875, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.6667785644531, - 160.06764221191406, - 381.78875732421875, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "88.4", - "origin": [ - 396.467529296875, - 167.5240478515625 - ], - "bbox": [ - 396.467529296875, - 160.06764221191406, - 410.5895080566406, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.467529296875, - 160.06764221191406, - 410.5895080566406, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.9", - "origin": [ - 427.2937927246094, - 167.5240478515625 - ], - "bbox": [ - 427.2937927246094, - 160.06764221191406, - 441.415771484375, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.2937927246094, - 160.06764221191406, - 441.415771484375, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 463.8334045410156, - 167.5240478515625 - ], - "bbox": [ - 463.8334045410156, - 160.06764221191406, - 466.5206298828125, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.8334045410156, - 160.06764221191406, - 466.5206298828125, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 492.6341857910156, - 167.5240478515625 - ], - "bbox": [ - 492.6341857910156, - 160.06764221191406, - 495.3214111328125, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.6341857910156, - 160.06764221191406, - 495.3214111328125, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 523.46044921875, - 167.5240478515625 - ], - "bbox": [ - 523.46044921875, - 160.06764221191406, - 526.1476440429688, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 523.46044921875, - 160.06764221191406, - 526.1476440429688, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ImageBERT", - "origin": [ - 96.78300476074219, - 175.593017578125 - ], - "bbox": [ - 96.78300476074219, - 168.13661193847656, - 137.09117126464844, - 177.860595703125 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†", - "origin": [ - 137.09100341796875, - 173.9520263671875 - ], - "bbox": [ - 137.09100341796875, - 168.73252868652344, - 139.9154052734375, - 175.53933715820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 168.13661193847656, - 139.9154052734375, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~925", - "origin": [ - 156.97900390625, - 175.593017578125 - ], - "bbox": [ - 156.97900390625, - 168.13661193847656, - 173.4492645263672, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.97900390625, - 168.13661193847656, - 173.4492645263672, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.7", - "origin": [ - 186.76426696777344, - 175.593017578125 - ], - "bbox": [ - 186.76426696777344, - 168.13661193847656, - 200.88624572753906, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.76426696777344, - 168.13661193847656, - 200.88624572753906, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "90.2", - "origin": [ - 215.57310485839844, - 175.593017578125 - ], - "bbox": [ - 215.57310485839844, - 168.13661193847656, - 229.69508361816406, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.57310485839844, - 168.13661193847656, - 229.69508361816406, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "94.0", - "origin": [ - 246.39129638671875, - 175.593017578125 - ], - "bbox": [ - 246.39129638671875, - 168.13661193847656, - 260.5132751464844, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.39129638671875, - 168.13661193847656, - 260.5132751464844, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "44.0", - "origin": [ - 277.2175598144531, - 175.593017578125 - ], - "bbox": [ - 277.2175598144531, - 168.13661193847656, - 291.33953857421875, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.2175598144531, - 168.13661193847656, - 291.33953857421875, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.2", - "origin": [ - 306.018310546875, - 175.593017578125 - ], - "bbox": [ - 306.018310546875, - 168.13661193847656, - 320.1402893066406, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.018310546875, - 168.13661193847656, - 320.1402893066406, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.4", - "origin": [ - 336.8445739746094, - 175.593017578125 - ], - "bbox": [ - 336.8445739746094, - 168.13661193847656, - 350.966552734375, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.8445739746094, - 168.13661193847656, - 350.966552734375, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "54.3", - "origin": [ - 367.6627502441406, - 175.593017578125 - ], - "bbox": [ - 367.6627502441406, - 168.13661193847656, - 381.78472900390625, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.6627502441406, - 168.13661193847656, - 381.78472900390625, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "79.6", - "origin": [ - 396.4715881347656, - 175.593017578125 - ], - "bbox": [ - 396.4715881347656, - 168.13661193847656, - 410.59356689453125, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.4715881347656, - 168.13661193847656, - 410.59356689453125, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.5", - "origin": [ - 427.2897644042969, - 175.593017578125 - ], - "bbox": [ - 427.2897644042969, - 168.13661193847656, - 441.4117431640625, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.2897644042969, - 168.13661193847656, - 441.4117431640625, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "32.3", - "origin": [ - 458.11602783203125, - 175.593017578125 - ], - "bbox": [ - 458.11602783203125, - 168.13661193847656, - 472.2380065917969, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.11602783203125, - 168.13661193847656, - 472.2380065917969, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "59.0", - "origin": [ - 486.9167785644531, - 175.593017578125 - ], - "bbox": [ - 486.9167785644531, - 168.13661193847656, - 501.03875732421875, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.9167785644531, - 168.13661193847656, - 501.03875732421875, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.2", - "origin": [ - 517.7430419921875, - 175.593017578125 - ], - "bbox": [ - 517.7430419921875, - 168.13661193847656, - 531.864990234375, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 517.7430419921875, - 168.13661193847656, - 531.864990234375, - 177.860595703125 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 61.63600158691406, - 181.20863342285156, - 531.8651123046875, - 200.75978088378906 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Linear", - "origin": [ - 61.63600158691406, - 192.70001220703125 - ], - "bbox": [ - 61.63600158691406, - 185.2436065673828, - 82.69792175292969, - 194.96759033203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.63600158691406, - 185.2436065673828, - 82.69792175292969, - 194.96759033203125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 96.78300476074219, - 188.6650390625 - ], - "bbox": [ - 96.78300476074219, - 181.20863342285156, - 131.12765502929688, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 181.20863342285156, - 131.12765502929688, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 161.00975036621094, - 188.6650390625 - ], - "bbox": [ - 161.00975036621094, - 181.20863342285156, - 173.44515991210938, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.00975036621094, - 181.20863342285156, - 173.44515991210938, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "69.7", - "origin": [ - 186.7682342529297, - 188.6650390625 - ], - "bbox": [ - 186.7682342529297, - 181.20863342285156, - 200.8902130126953, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.7682342529297, - 181.20863342285156, - 200.8902130126953, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "91.0", - "origin": [ - 215.56900024414062, - 188.6650390625 - ], - "bbox": [ - 215.56900024414062, - 181.20863342285156, - 229.69097900390625, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.56900024414062, - 181.20863342285156, - 229.69097900390625, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.0", - "origin": [ - 246.395263671875, - 188.6650390625 - ], - "bbox": [ - 246.395263671875, - 181.20863342285156, - 260.5172424316406, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.395263671875, - 181.20863342285156, - 260.5172424316406, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "53.4", - "origin": [ - 277.21343994140625, - 188.6650390625 - ], - "bbox": [ - 277.21343994140625, - 181.20863342285156, - 291.3354187011719, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.21343994140625, - 181.20863342285156, - 291.3354187011719, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.7", - "origin": [ - 306.02227783203125, - 188.6650390625 - ], - "bbox": [ - 306.02227783203125, - 181.20863342285156, - 320.1442565917969, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.02227783203125, - 181.20863342285156, - 320.1442565917969, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "88.8", - "origin": [ - 336.8404541015625, - 188.6650390625 - ], - "bbox": [ - 336.8404541015625, - 181.20863342285156, - 350.9624328613281, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.8404541015625, - 181.20863342285156, - 350.9624328613281, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "51.3", - "origin": [ - 367.6667175292969, - 188.6650390625 - ], - "bbox": [ - 367.6667175292969, - 181.20863342285156, - 381.7886962890625, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.6667175292969, - 181.20863342285156, - 381.7886962890625, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "79.9", - "origin": [ - 396.46746826171875, - 188.6650390625 - ], - "bbox": [ - 396.46746826171875, - 181.20863342285156, - 410.5894470214844, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.46746826171875, - 181.20863342285156, - 410.5894470214844, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.9", - "origin": [ - 427.2937316894531, - 188.6650390625 - ], - "bbox": [ - 427.2937316894531, - 181.20863342285156, - 441.41571044921875, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.2937316894531, - 181.20863342285156, - 441.41571044921875, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "37.3", - "origin": [ - 458.1119079589844, - 188.6650390625 - ], - "bbox": [ - 458.1119079589844, - 181.20863342285156, - 472.23388671875, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.1119079589844, - 181.20863342285156, - 472.23388671875, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "67.4", - "origin": [ - 486.9207458496094, - 188.6650390625 - ], - "bbox": [ - 486.9207458496094, - 181.20863342285156, - 501.042724609375, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.9207458496094, - 181.20863342285156, - 501.042724609375, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "79.0", - "origin": [ - 517.7389526367188, - 188.6650390625 - ], - "bbox": [ - 517.7389526367188, - 181.20863342285156, - 531.8609008789062, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 517.7389526367188, - 181.20863342285156, - 531.8609008789062, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 96.78300476074219, - 196.73504638671875 - ], - "bbox": [ - 96.78300476074219, - 189.2786407470703, - 131.12765502929688, - 199.00262451171875 - ] - }, - { - "size": 5.648799896240234, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 131.12765502929688, - 196.73504638671875 - ], - "bbox": [ - 131.12765502929688, - 189.6935272216797, - 133.18800354003906, - 198.32235717773438 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "+", - "origin": [ - 133.18800354003906, - 194.91302490234375 - ], - "bbox": [ - 133.18800354003906, - 189.6935272216797, - 136.37393188476562, - 196.50033569335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 189.2786407470703, - 136.37393188476562, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMSY6", - "color": 0, - "ascender": 0.7860000133514404, - "descender": -0.9480000138282776, - "text": "⃝", - "origin": [ - 131.1280059814453, - 195.093017578125 - ], - "bbox": [ - 131.1280059814453, - 190.39462280273438, - 138.43263244628906, - 200.75978088378906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.1280059814453, - 190.39462280273438, - 138.43263244628906, - 200.75978088378906 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 161.01400756835938, - 196.73504638671875 - ], - "bbox": [ - 161.01400756835938, - 189.2786407470703, - 173.4494171142578, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.01400756835938, - 189.2786407470703, - 173.4494171142578, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "73.2", - "origin": [ - 186.76441955566406, - 196.73504638671875 - ], - "bbox": [ - 186.76441955566406, - 189.2786407470703, - 200.8863983154297, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.76441955566406, - 189.2786407470703, - 200.8863983154297, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "93.6", - "origin": [ - 215.57325744628906, - 196.73504638671875 - ], - "bbox": [ - 215.57325744628906, - 189.2786407470703, - 229.6952362060547, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.57325744628906, - 189.2786407470703, - 229.6952362060547, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.5", - "origin": [ - 246.39144897460938, - 196.73504638671875 - ], - "bbox": [ - 246.39144897460938, - 189.2786407470703, - 260.513427734375, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.39144897460938, - 189.2786407470703, - 260.513427734375, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "56.5", - "origin": [ - 277.21771240234375, - 196.73504638671875 - ], - "bbox": [ - 277.21771240234375, - 189.2786407470703, - 291.3396911621094, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.21771240234375, - 189.2786407470703, - 291.3396911621094, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "82.6", - "origin": [ - 306.0184631347656, - 196.73504638671875 - ], - "bbox": [ - 306.0184631347656, - 189.2786407470703, - 320.14044189453125, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.0184631347656, - 189.2786407470703, - 320.14044189453125, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "89.6", - "origin": [ - 336.8447265625, - 196.73504638671875 - ], - "bbox": [ - 336.8447265625, - 189.2786407470703, - 350.9667053222656, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.8447265625, - 189.2786407470703, - 350.9667053222656, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "55.0", - "origin": [ - 367.66290283203125, - 196.73504638671875 - ], - "bbox": [ - 367.66290283203125, - 189.2786407470703, - 381.7848815917969, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.66290283203125, - 189.2786407470703, - 381.7848815917969, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "82.5", - "origin": [ - 396.47174072265625, - 196.73504638671875 - ], - "bbox": [ - 396.47174072265625, - 189.2786407470703, - 410.5937194824219, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.47174072265625, - 189.2786407470703, - 410.5937194824219, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "89.8", - "origin": [ - 427.2899169921875, - 196.73504638671875 - ], - "bbox": [ - 427.2899169921875, - 189.2786407470703, - 441.4118957519531, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.2899169921875, - 189.2786407470703, - 441.4118957519531, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "40.4", - "origin": [ - 458.1161804199219, - 196.73504638671875 - ], - "bbox": [ - 458.1161804199219, - 189.2786407470703, - 472.2381591796875, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.1161804199219, - 189.2786407470703, - 472.2381591796875, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.0", - "origin": [ - 486.91693115234375, - 196.73504638671875 - ], - "bbox": [ - 486.91693115234375, - 189.2786407470703, - 501.0389099121094, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.91693115234375, - 189.2786407470703, - 501.0389099121094, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "81.1", - "origin": [ - 517.7431640625, - 196.73504638671875 - ], - "bbox": [ - 517.7431640625, - 189.2786407470703, - 531.8651123046875, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 517.7431640625, - 189.2786407470703, - 531.8651123046875, - 199.00262451171875 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 54.893001556396484, - 214.4070587158203, - 542.1132202148438, - 253.19882202148438 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Table 4.", - "origin": [ - 54.893001556396484, - 222.6920166015625 - ], - "bbox": [ - 54.893001556396484, - 214.4070587158203, - 83.55857849121094, - 225.21157836914062 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Comparison of ViLT-B/32 with other models on downstream retrieval tasks. We use SCAN for w/o VLP SOTA results.", - "origin": [ - 83.55857849121094, - 222.6920166015625 - ], - "bbox": [ - 83.55857849121094, - 214.4070587158203, - 532.8981323242188, - 225.21157836914062 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " †", - "origin": [ - 532.8981323242188, - 222.6920166015625 - ], - "bbox": [ - 532.8981323242188, - 214.4070587158203, - 542.1132202148438, - 225.21157836914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.893001556396484, - 214.4070587158203, - 542.1132202148438, - 225.21157836914062 - ] - }, - { - "spans": [ - { - "size": 9.024493217468262, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "additionally used GQA, VQAv2, VG-QA for pre-training.", - "origin": [ - 55.439998626708984, - 233.6510009765625 - ], - "bbox": [ - 55.439998626708984, - 225.3660430908203, - 266.11944580078125, - 236.17056274414062 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ‡", - "origin": [ - 266.11944580078125, - 233.6510009765625 - ], - "bbox": [ - 266.11944580078125, - 225.3660430908203, - 273.3831787109375, - 236.17056274414062 - ] - }, - { - "size": 9.024493217468262, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " additionally used the Open Images dataset.", - "origin": [ - 273.3831787109375, - 233.6510009765625 - ], - "bbox": [ - 273.3831787109375, - 225.3660430908203, - 431.3805236816406, - 236.17056274414062 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " a", - "origin": [ - 431.3805236816406, - 233.6510009765625 - ], - "bbox": [ - 431.3805236816406, - 225.0950469970703, - 440.7660827636719, - 236.17056274414062 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMSY9", - "color": 0, - "ascender": 0.7770000100135803, - "descender": -0.9580000042915344, - "text": "⃝", - "origin": [ - 434.1679992675781, - 233.6510009765625 - ], - "bbox": [ - 434.1679992675781, - 226.68411254882812, - 443.3764953613281, - 242.24081420898438 - ] - }, - { - "size": 9.024493217468262, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " indicates RandAugment is", - "origin": [ - 443.3764953613281, - 233.6510009765625 - ], - "bbox": [ - 443.3764953613281, - 225.3660430908203, - 541.4431762695312, - 236.17056274414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 225.0950469970703, - 541.4431762695312, - 242.24081420898438 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "applied during fine-tuning. +", - "origin": [ - 55.439998626708984, - 244.6090087890625 - ], - "bbox": [ - 55.439998626708984, - 236.0540313720703, - 161.24205017089844, - 247.12857055664062 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMSY9", - "color": 0, - "ascender": 0.7770000100135803, - "descender": -0.9580000042915344, - "text": "⃝", - "origin": [ - 154.1060028076172, - 244.6090087890625 - ], - "bbox": [ - 154.1060028076172, - 237.64212036132812, - 163.3144989013672, - 253.19882202148438 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " indicates model trained for a longer 200K pre-training steps.", - "origin": [ - 163.3144989013672, - 244.6090087890625 - ], - "bbox": [ - 163.3144989013672, - 236.3240509033203, - 382.4602355957031, - 247.12857055664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 236.0540313720703, - 382.4602355957031, - 253.19882202148438 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 61.90599822998047, - 257.89068603515625, - 181.26605224609375, - 275.5896911621094 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Visual", - "origin": [ - 61.90599822998047, - 265.07098388671875 - ], - "bbox": [ - 61.90599822998047, - 257.89068603515625, - 81.72956085205078, - 267.2546081542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.90599822998047, - 257.89068603515625, - 81.72956085205078, - 267.2546081542969 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Embed", - "origin": [ - 61.90599822998047, - 273.406005859375 - ], - "bbox": [ - 61.90599822998047, - 266.2257080078125, - 83.92095947265625, - 275.5896301269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.90599822998047, - 266.2257080078125, - 83.92095947265625, - 275.5896301269531 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Model", - "origin": [ - 96.19499969482422, - 269.32403564453125 - ], - "bbox": [ - 96.19499969482422, - 262.14373779296875, - 116.48482513427734, - 271.5076599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 262.14373779296875, - 116.48482513427734, - 271.5076599121094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Time", - "origin": [ - 165.13299560546875, - 265.071044921875 - ], - "bbox": [ - 165.13299560546875, - 257.8907470703125, - 181.265380859375, - 267.2546691894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.13299560546875, - 257.8907470703125, - 181.265380859375, - 267.2546691894531 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(ms)", - "origin": [ - 167.02200317382812, - 273.40606689453125 - ], - "bbox": [ - 167.02200317382812, - 266.22576904296875, - 181.26605224609375, - 275.5896911621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.02200317382812, - 266.22576904296875, - 181.26605224609375, - 275.5896911621094 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 193.22000122070312, - 254.3727264404297, - 534.976318359375, - 279.2786560058594 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Text Retrieval", - "origin": [ - 253.85800170898438, - 261.55303955078125 - ], - "bbox": [ - 253.85800170898438, - 254.3727264404297, - 297.4837951660156, - 263.7366638183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.85800170898438, - 254.3727264404297, - 297.4837951660156, - 263.7366638183594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Image Retrieval", - "origin": [ - 427.79400634765625, - 261.55303955078125 - ], - "bbox": [ - 427.79400634765625, - 254.3727264404297, - 477.2557678222656, - 263.7366638183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.79400634765625, - 254.3727264404297, - 477.2557678222656, - 263.7366638183594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Flickr30k (1K)", - "origin": [ - 208.03900146484375, - 269.32403564453125 - ], - "bbox": [ - 208.03900146484375, - 262.14373779296875, - 254.8742218017578, - 271.5076599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.03900146484375, - 262.14373779296875, - 254.8742218017578, - 271.5076599121094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MSCOCO (5K)", - "origin": [ - 295.1663513183594, - 269.32403564453125 - ], - "bbox": [ - 295.1663513183594, - 262.14373779296875, - 344.5970458984375, - 271.5076599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.1663513183594, - 262.14373779296875, - 344.5970458984375, - 271.5076599121094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Flickr30k (1K)", - "origin": [ - 384.8969421386719, - 269.32403564453125 - ], - "bbox": [ - 384.8969421386719, - 262.14373779296875, - 431.7320861816406, - 271.5076599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 384.8969421386719, - 262.14373779296875, - 431.7320861816406, - 271.5076599121094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MSCOCO (5K)", - "origin": [ - 472.0242004394531, - 269.32403564453125 - ], - "bbox": [ - 472.0242004394531, - 262.14373779296875, - 521.4548950195312, - 271.5076599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 472.0242004394531, - 262.14373779296875, - 521.4548950195312, - 271.5076599121094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 193.22000122070312, - 277.09503173828125 - ], - "bbox": [ - 193.22000122070312, - 269.91473388671875, - 209.44564819335938, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.22000122070312, - 269.91473388671875, - 209.44564819335938, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 221.3972930908203, - 277.09503173828125 - ], - "bbox": [ - 221.3972930908203, - 269.91473388671875, - 237.62294006347656, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.3972930908203, - 269.91473388671875, - 237.62294006347656, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 249.5823516845703, - 277.09503173828125 - ], - "bbox": [ - 249.5823516845703, - 269.91473388671875, - 269.69342041015625, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 249.5823516845703, - 269.91473388671875, - 269.69342041015625, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 281.6450500488281, - 277.09503173828125 - ], - "bbox": [ - 281.6450500488281, - 269.91473388671875, - 297.8706970214844, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 281.6450500488281, - 269.91473388671875, - 297.8706970214844, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 309.8301086425781, - 277.09503173828125 - ], - "bbox": [ - 309.8301086425781, - 269.91473388671875, - 326.0557556152344, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 309.8301086425781, - 269.91473388671875, - 326.0557556152344, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 338.00738525390625, - 277.09503173828125 - ], - "bbox": [ - 338.00738525390625, - 269.91473388671875, - 358.11846923828125, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.00738525390625, - 269.91473388671875, - 358.11846923828125, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 370.077880859375, - 277.09503173828125 - ], - "bbox": [ - 370.077880859375, - 269.91473388671875, - 386.30352783203125, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 370.077880859375, - 269.91473388671875, - 386.30352783203125, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 398.2551574707031, - 277.09503173828125 - ], - "bbox": [ - 398.2551574707031, - 269.91473388671875, - 414.4808044433594, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.2551574707031, - 269.91473388671875, - 414.4808044433594, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 426.4402160644531, - 277.09503173828125 - ], - "bbox": [ - 426.4402160644531, - 269.91473388671875, - 446.5513000488281, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 426.4402160644531, - 269.91473388671875, - 446.5513000488281, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 458.5029296875, - 277.09503173828125 - ], - "bbox": [ - 458.5029296875, - 269.91473388671875, - 474.72857666015625, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.5029296875, - 269.91473388671875, - 474.72857666015625, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 486.6802062988281, - 277.09503173828125 - ], - "bbox": [ - 486.6802062988281, - 269.91473388671875, - 502.9058532714844, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.6802062988281, - 269.91473388671875, - 502.9058532714844, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 514.8652954101562, - 277.09503173828125 - ], - "bbox": [ - 514.8652954101562, - 269.91473388671875, - 534.976318359375, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.8652954101562, - 269.91473388671875, - 534.976318359375, - 279.2786560058594 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 61.90599822998047, - 302.1147155761719, - 84.23957061767578, - 311.4786376953125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Region", - "origin": [ - 61.90599822998047, - 309.2950134277344 - ], - "bbox": [ - 61.90599822998047, - 302.1147155761719, - 84.23957061767578, - 311.4786376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.90599822998047, - 302.1147155761719, - 84.23957061767578, - 311.4786376953125 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 96.19499969482422, - 282.68670654296875, - 531.7224731445312, - 330.9056091308594 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "w/o VLP SOTA", - "origin": [ - 96.19499969482422, - 289.86700439453125 - ], - "bbox": [ - 96.19499969482422, - 282.68670654296875, - 145.67233276367188, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 282.68670654296875, - 145.67233276367188, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 165.40264892578125, - 289.86700439453125 - ], - "bbox": [ - 165.40264892578125, - 282.68670654296875, - 181.2630615234375, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.40264892578125, - 282.68670654296875, - 181.2630615234375, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "67.4", - "origin": [ - 194.5357666015625, - 289.86700439453125 - ], - "bbox": [ - 194.5357666015625, - 282.68670654296875, - 208.1348419189453, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.5357666015625, - 282.68670654296875, - 208.1348419189453, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "90.3", - "origin": [ - 222.71304321289062, - 289.86700439453125 - ], - "bbox": [ - 222.71304321289062, - 282.68670654296875, - 236.31211853027344, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.71304321289062, - 282.68670654296875, - 236.31211853027344, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.8", - "origin": [ - 252.8408203125, - 289.86700439453125 - ], - "bbox": [ - 252.8408203125, - 282.68670654296875, - 266.4398498535156, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.8408203125, - 282.68670654296875, - 266.4398498535156, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "50.4", - "origin": [ - 282.9607849121094, - 289.86700439453125 - ], - "bbox": [ - 282.9607849121094, - 282.68670654296875, - 296.559814453125, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.9607849121094, - 282.68670654296875, - 296.559814453125, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "82.2", - "origin": [ - 311.1457824707031, - 289.86700439453125 - ], - "bbox": [ - 311.1457824707031, - 282.68670654296875, - 324.74481201171875, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.1457824707031, - 282.68670654296875, - 324.74481201171875, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "90.0", - "origin": [ - 341.2657470703125, - 289.86700439453125 - ], - "bbox": [ - 341.2657470703125, - 282.68670654296875, - 354.8647766113281, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657470703125, - 282.68670654296875, - 354.8647766113281, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "48.6", - "origin": [ - 371.3857116699219, - 289.86700439453125 - ], - "bbox": [ - 371.3857116699219, - 282.68670654296875, - 384.9847412109375, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.3857116699219, - 282.68670654296875, - 384.9847412109375, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "77.7", - "origin": [ - 399.5707092285156, - 289.86700439453125 - ], - "bbox": [ - 399.5707092285156, - 282.68670654296875, - 413.16973876953125, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5707092285156, - 282.68670654296875, - 413.16973876953125, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.2", - "origin": [ - 429.690673828125, - 289.86700439453125 - ], - "bbox": [ - 429.690673828125, - 282.68670654296875, - 443.2897033691406, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.690673828125, - 282.68670654296875, - 443.2897033691406, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "38.6", - "origin": [ - 459.81842041015625, - 289.86700439453125 - ], - "bbox": [ - 459.81842041015625, - 282.68670654296875, - 473.4174499511719, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.81842041015625, - 282.68670654296875, - 473.4174499511719, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "69.3", - "origin": [ - 487.99566650390625, - 289.86700439453125 - ], - "bbox": [ - 487.99566650390625, - 282.68670654296875, - 501.5946960449219, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.99566650390625, - 282.68670654296875, - 501.5946960449219, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.4", - "origin": [ - 518.1234130859375, - 289.86700439453125 - ], - "bbox": [ - 518.1234130859375, - 282.68670654296875, - 531.7224731445312, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1234130859375, - 282.68670654296875, - 531.7224731445312, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLBERT-Base", - "origin": [ - 96.19499969482422, - 297.63800048828125 - ], - "bbox": [ - 96.19499969482422, - 290.45770263671875, - 144.6232452392578, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 290.45770263671875, - 144.6232452392578, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~920", - "origin": [ - 165.4026336669922, - 297.63800048828125 - ], - "bbox": [ - 165.4026336669922, - 290.45770263671875, - 181.26304626464844, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.4026336669922, - 290.45770263671875, - 181.26304626464844, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 200.03753662109375, - 297.63800048828125 - ], - "bbox": [ - 200.03753662109375, - 290.45770263671875, - 202.625244140625, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.03753662109375, - 290.45770263671875, - 202.625244140625, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 228.22259521484375, - 297.63800048828125 - ], - "bbox": [ - 228.22259521484375, - 290.45770263671875, - 230.810302734375, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.22259521484375, - 290.45770263671875, - 230.810302734375, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 258.34259033203125, - 297.63800048828125 - ], - "bbox": [ - 258.34259033203125, - 290.45770263671875, - 260.9302978515625, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.34259033203125, - 290.45770263671875, - 260.9302978515625, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 288.4703674316406, - 297.63800048828125 - ], - "bbox": [ - 288.4703674316406, - 290.45770263671875, - 291.0580749511719, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.4703674316406, - 290.45770263671875, - 291.0580749511719, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 316.64764404296875, - 297.63800048828125 - ], - "bbox": [ - 316.64764404296875, - 290.45770263671875, - 319.2353515625, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.64764404296875, - 290.45770263671875, - 319.2353515625, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 346.76763916015625, - 297.63800048828125 - ], - "bbox": [ - 346.76763916015625, - 290.45770263671875, - 349.3553466796875, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.76763916015625, - 290.45770263671875, - 349.3553466796875, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "58.2", - "origin": [ - 371.3858337402344, - 297.63800048828125 - ], - "bbox": [ - 371.3858337402344, - 290.45770263671875, - 384.98486328125, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.3858337402344, - 290.45770263671875, - 384.98486328125, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "84.9", - "origin": [ - 399.5708312988281, - 297.63800048828125 - ], - "bbox": [ - 399.5708312988281, - 290.45770263671875, - 413.16986083984375, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5708312988281, - 290.45770263671875, - 413.16986083984375, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "91.5", - "origin": [ - 429.6907958984375, - 297.63800048828125 - ], - "bbox": [ - 429.6907958984375, - 290.45770263671875, - 443.2898254394531, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.6907958984375, - 290.45770263671875, - 443.2898254394531, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 465.3203125, - 297.63800048828125 - ], - "bbox": [ - 465.3203125, - 290.45770263671875, - 467.90802001953125, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 465.3203125, - 290.45770263671875, - 467.90802001953125, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 493.50537109375, - 297.63800048828125 - ], - "bbox": [ - 493.50537109375, - 290.45770263671875, - 496.09307861328125, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 493.50537109375, - 290.45770263671875, - 496.09307861328125, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 523.6253662109375, - 297.63800048828125 - ], - "bbox": [ - 523.6253662109375, - 290.45770263671875, - 526.2130737304688, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 523.6253662109375, - 290.45770263671875, - 526.2130737304688, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Unicoder-VL", - "origin": [ - 96.19499969482422, - 305.40899658203125 - ], - "bbox": [ - 96.19499969482422, - 298.22869873046875, - 137.9014129638672, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 298.22869873046875, - 137.9014129638672, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~925", - "origin": [ - 165.4026336669922, - 305.40899658203125 - ], - "bbox": [ - 165.4026336669922, - 298.22869873046875, - 181.26304626464844, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.4026336669922, - 298.22869873046875, - 181.26304626464844, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "86.2", - "origin": [ - 194.53573608398438, - 305.40899658203125 - ], - "bbox": [ - 194.53573608398438, - 298.22869873046875, - 208.1348114013672, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.53573608398438, - 298.22869873046875, - 208.1348114013672, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.3", - "origin": [ - 222.7130126953125, - 305.40899658203125 - ], - "bbox": [ - 222.7130126953125, - 298.22869873046875, - 236.3120880126953, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.7130126953125, - 298.22869873046875, - 236.3120880126953, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "99.0", - "origin": [ - 252.84078979492188, - 305.40899658203125 - ], - "bbox": [ - 252.84078979492188, - 298.22869873046875, - 266.4398193359375, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.84078979492188, - 298.22869873046875, - 266.4398193359375, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "62.3", - "origin": [ - 282.96075439453125, - 305.40899658203125 - ], - "bbox": [ - 282.96075439453125, - 298.22869873046875, - 296.5597839355469, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96075439453125, - 298.22869873046875, - 296.5597839355469, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.1", - "origin": [ - 311.145751953125, - 305.40899658203125 - ], - "bbox": [ - 311.145751953125, - 298.22869873046875, - 324.7447814941406, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.145751953125, - 298.22869873046875, - 324.7447814941406, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.8", - "origin": [ - 341.2657165527344, - 305.40899658203125 - ], - "bbox": [ - 341.2657165527344, - 298.22869873046875, - 354.86474609375, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657165527344, - 298.22869873046875, - 354.86474609375, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.5", - "origin": [ - 371.38568115234375, - 305.40899658203125 - ], - "bbox": [ - 371.38568115234375, - 298.22869873046875, - 384.9847106933594, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.38568115234375, - 298.22869873046875, - 384.9847106933594, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "91.2", - "origin": [ - 399.5706787109375, - 305.40899658203125 - ], - "bbox": [ - 399.5706787109375, - 298.22869873046875, - 413.1697082519531, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5706787109375, - 298.22869873046875, - 413.1697082519531, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.2", - "origin": [ - 429.6906433105469, - 305.40899658203125 - ], - "bbox": [ - 429.6906433105469, - 298.22869873046875, - 443.2896728515625, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.6906433105469, - 298.22869873046875, - 443.2896728515625, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "48.4", - "origin": [ - 459.8183898925781, - 305.40899658203125 - ], - "bbox": [ - 459.8183898925781, - 298.22869873046875, - 473.41741943359375, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8183898925781, - 298.22869873046875, - 473.41741943359375, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "76.7", - "origin": [ - 487.9956359863281, - 305.40899658203125 - ], - "bbox": [ - 487.9956359863281, - 298.22869873046875, - 501.59466552734375, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9956359863281, - 298.22869873046875, - 501.59466552734375, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.9", - "origin": [ - 518.1233520507812, - 305.40899658203125 - ], - "bbox": [ - 518.1233520507812, - 298.22869873046875, - 531.722412109375, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1233520507812, - 298.22869873046875, - 531.722412109375, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "UNITER-Base", - "origin": [ - 96.19499969482422, - 313.17999267578125 - ], - "bbox": [ - 96.19499969482422, - 305.99969482421875, - 142.37745666503906, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 305.99969482421875, - 142.37745666503906, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 165.4026336669922, - 313.17999267578125 - ], - "bbox": [ - 165.4026336669922, - 305.99969482421875, - 181.26304626464844, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.4026336669922, - 305.99969482421875, - 181.26304626464844, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.9", - "origin": [ - 194.53573608398438, - 313.17999267578125 - ], - "bbox": [ - 194.53573608398438, - 305.99969482421875, - 208.1348114013672, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.53573608398438, - 305.99969482421875, - 208.1348114013672, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "97.1", - "origin": [ - 222.7130126953125, - 313.17999267578125 - ], - "bbox": [ - 222.7130126953125, - 305.99969482421875, - 236.3120880126953, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.7130126953125, - 305.99969482421875, - 236.3120880126953, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "98.8", - "origin": [ - 252.84078979492188, - 313.17999267578125 - ], - "bbox": [ - 252.84078979492188, - 305.99969482421875, - 266.4398193359375, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.84078979492188, - 305.99969482421875, - 266.4398193359375, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "64.4", - "origin": [ - 282.96075439453125, - 313.17999267578125 - ], - "bbox": [ - 282.96075439453125, - 305.99969482421875, - 296.5597839355469, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96075439453125, - 305.99969482421875, - 296.5597839355469, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.4", - "origin": [ - 311.145751953125, - 313.17999267578125 - ], - "bbox": [ - 311.145751953125, - 305.99969482421875, - 324.7447814941406, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.145751953125, - 305.99969482421875, - 324.7447814941406, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "93.1", - "origin": [ - 341.2657165527344, - 313.17999267578125 - ], - "bbox": [ - 341.2657165527344, - 305.99969482421875, - 354.86474609375, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657165527344, - 305.99969482421875, - 354.86474609375, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.5", - "origin": [ - 371.38568115234375, - 313.17999267578125 - ], - "bbox": [ - 371.38568115234375, - 305.99969482421875, - 384.9847106933594, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.38568115234375, - 305.99969482421875, - 384.9847106933594, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.4", - "origin": [ - 399.5706787109375, - 313.17999267578125 - ], - "bbox": [ - 399.5706787109375, - 305.99969482421875, - 413.1697082519531, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5706787109375, - 305.99969482421875, - 413.1697082519531, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.1", - "origin": [ - 429.6906433105469, - 313.17999267578125 - ], - "bbox": [ - 429.6906433105469, - 305.99969482421875, - 443.2896728515625, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.6906433105469, - 305.99969482421875, - 443.2896728515625, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "50.3", - "origin": [ - 459.8183898925781, - 313.17999267578125 - ], - "bbox": [ - 459.8183898925781, - 305.99969482421875, - 473.41741943359375, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8183898925781, - 305.99969482421875, - 473.41741943359375, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "78.5", - "origin": [ - 487.9956359863281, - 313.17999267578125 - ], - "bbox": [ - 487.9956359863281, - 305.99969482421875, - 501.59466552734375, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9956359863281, - 305.99969482421875, - 501.59466552734375, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.2", - "origin": [ - 518.1233520507812, - 313.17999267578125 - ], - "bbox": [ - 518.1233520507812, - 305.99969482421875, - 531.722412109375, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1233520507812, - 305.99969482421875, - 531.722412109375, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "OSCAR-Base", - "origin": [ - 96.19499969482422, - 320.95098876953125 - ], - "bbox": [ - 96.19499969482422, - 313.77069091796875, - 139.79751586914062, - 323.1346130371094 - ] - }, - { - "size": 5.439599990844727, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†", - "origin": [ - 139.79600524902344, - 319.3699951171875 - ], - "bbox": [ - 139.79600524902344, - 314.34381103515625, - 142.51580810546875, - 320.8985290527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 313.77069091796875, - 142.51580810546875, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 165.40499877929688, - 320.95098876953125 - ], - "bbox": [ - 165.40499877929688, - 313.77069091796875, - 181.26541137695312, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.40499877929688, - 313.77069091796875, - 181.26541137695312, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 200.03990173339844, - 320.95098876953125 - ], - "bbox": [ - 200.03990173339844, - 313.77069091796875, - 202.6276092529297, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.03990173339844, - 313.77069091796875, - 202.6276092529297, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 228.21717834472656, - 320.95098876953125 - ], - "bbox": [ - 228.21717834472656, - 313.77069091796875, - 230.8048858642578, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.21717834472656, - 313.77069091796875, - 230.8048858642578, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 258.344970703125, - 320.95098876953125 - ], - "bbox": [ - 258.344970703125, - 313.77069091796875, - 260.93267822265625, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.344970703125, - 313.77069091796875, - 260.93267822265625, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.0", - "origin": [ - 282.9631652832031, - 320.95098876953125 - ], - "bbox": [ - 282.9631652832031, - 313.77069091796875, - 296.56219482421875, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.9631652832031, - 313.77069091796875, - 296.56219482421875, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "91.1", - "origin": [ - 311.1404113769531, - 320.95098876953125 - ], - "bbox": [ - 311.1404113769531, - 313.77069091796875, - 324.73944091796875, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.1404113769531, - 313.77069091796875, - 324.73944091796875, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.5", - "origin": [ - 341.2681579589844, - 320.95098876953125 - ], - "bbox": [ - 341.2681579589844, - 313.77069091796875, - 354.8671875, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2681579589844, - 313.77069091796875, - 354.8671875, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 376.8976745605469, - 320.95098876953125 - ], - "bbox": [ - 376.8976745605469, - 313.77069091796875, - 379.4853820800781, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.8976745605469, - 313.77069091796875, - 379.4853820800781, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 405.074951171875, - 320.95098876953125 - ], - "bbox": [ - 405.074951171875, - 313.77069091796875, - 407.66265869140625, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 405.074951171875, - 313.77069091796875, - 407.66265869140625, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 435.1949462890625, - 320.95098876953125 - ], - "bbox": [ - 435.1949462890625, - 313.77069091796875, - 437.78265380859375, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.1949462890625, - 313.77069091796875, - 437.78265380859375, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "54.0", - "origin": [ - 459.8131408691406, - 320.95098876953125 - ], - "bbox": [ - 459.8131408691406, - 313.77069091796875, - 473.41217041015625, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8131408691406, - 313.77069091796875, - 473.41217041015625, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.8", - "origin": [ - 487.9981384277344, - 320.95098876953125 - ], - "bbox": [ - 487.9981384277344, - 313.77069091796875, - 501.59716796875, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9981384277344, - 313.77069091796875, - 501.59716796875, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "88.5", - "origin": [ - 518.1181030273438, - 320.95098876953125 - ], - "bbox": [ - 518.1181030273438, - 313.77069091796875, - 531.7171630859375, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1181030273438, - 313.77069091796875, - 531.7171630859375, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VinVL-Base", - "origin": [ - 96.19499969482422, - 328.72198486328125 - ], - "bbox": [ - 96.19499969482422, - 321.54168701171875, - 135.4380340576172, - 330.9056091308594 - ] - }, - { - "size": 5.439599990844727, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†‡", - "origin": [ - 135.43699645996094, - 327.1409912109375 - ], - "bbox": [ - 135.43699645996094, - 322.11480712890625, - 140.87660217285156, - 328.6695251464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 321.54168701171875, - 140.87660217285156, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~650", - "origin": [ - 165.40499877929688, - 328.72198486328125 - ], - "bbox": [ - 165.40499877929688, - 321.54168701171875, - 181.26541137695312, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.40499877929688, - 321.54168701171875, - 181.26541137695312, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 200.03990173339844, - 328.72198486328125 - ], - "bbox": [ - 200.03990173339844, - 321.54168701171875, - 202.6276092529297, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.03990173339844, - 321.54168701171875, - 202.6276092529297, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 228.21717834472656, - 328.72198486328125 - ], - "bbox": [ - 228.21717834472656, - 321.54168701171875, - 230.8048858642578, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.21717834472656, - 321.54168701171875, - 230.8048858642578, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 258.344970703125, - 328.72198486328125 - ], - "bbox": [ - 258.344970703125, - 321.54168701171875, - 260.93267822265625, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.344970703125, - 321.54168701171875, - 260.93267822265625, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.6", - "origin": [ - 282.9631652832031, - 328.72198486328125 - ], - "bbox": [ - 282.9631652832031, - 321.54168701171875, - 296.56219482421875, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.9631652832031, - 321.54168701171875, - 296.56219482421875, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.6", - "origin": [ - 311.1404113769531, - 328.72198486328125 - ], - "bbox": [ - 311.1404113769531, - 321.54168701171875, - 324.73944091796875, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.1404113769531, - 321.54168701171875, - 324.73944091796875, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.3", - "origin": [ - 341.2681579589844, - 328.72198486328125 - ], - "bbox": [ - 341.2681579589844, - 321.54168701171875, - 354.8671875, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2681579589844, - 321.54168701171875, - 354.8671875, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 376.8976745605469, - 328.72198486328125 - ], - "bbox": [ - 376.8976745605469, - 321.54168701171875, - 379.4853820800781, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.8976745605469, - 321.54168701171875, - 379.4853820800781, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 405.074951171875, - 328.72198486328125 - ], - "bbox": [ - 405.074951171875, - 321.54168701171875, - 407.66265869140625, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 405.074951171875, - 321.54168701171875, - 407.66265869140625, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 435.1949462890625, - 328.72198486328125 - ], - "bbox": [ - 435.1949462890625, - 321.54168701171875, - 437.78265380859375, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.1949462890625, - 321.54168701171875, - 437.78265380859375, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "58.1", - "origin": [ - 459.8131408691406, - 328.72198486328125 - ], - "bbox": [ - 459.8131408691406, - 321.54168701171875, - 473.41217041015625, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8131408691406, - 321.54168701171875, - 473.41217041015625, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.2", - "origin": [ - 487.9981384277344, - 328.72198486328125 - ], - "bbox": [ - 487.9981384277344, - 321.54168701171875, - 501.59716796875, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9981384277344, - 321.54168701171875, - 501.59716796875, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "90.1", - "origin": [ - 518.1181030273438, - 328.72198486328125 - ], - "bbox": [ - 518.1181030273438, - 321.54168701171875, - 531.7171630859375, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1181030273438, - 321.54168701171875, - 531.7171630859375, - 330.9056091308594 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 61.90599822998047, - 334.314697265625, - 531.7224731445312, - 351.4486083984375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Grid", - "origin": [ - 61.90599822998047, - 345.3800048828125 - ], - "bbox": [ - 61.90599822998047, - 338.19970703125, - 76.15005493164062, - 347.5636291503906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.90599822998047, - 338.19970703125, - 76.15005493164062, - 347.5636291503906 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Pixel-BERT-X152", - "origin": [ - 96.19499969482422, - 341.4949951171875 - ], - "bbox": [ - 96.19499969482422, - 334.314697265625, - 153.17901611328125, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 334.314697265625, - 153.17901611328125, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~160", - "origin": [ - 165.40264892578125, - 341.4949951171875 - ], - "bbox": [ - 165.40264892578125, - 334.314697265625, - 181.2630615234375, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.40264892578125, - 334.314697265625, - 181.2630615234375, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.0", - "origin": [ - 194.5357666015625, - 341.4949951171875 - ], - "bbox": [ - 194.5357666015625, - 334.314697265625, - 208.1348419189453, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.5357666015625, - 334.314697265625, - 208.1348419189453, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "98.9", - "origin": [ - 222.71304321289062, - 341.4949951171875 - ], - "bbox": [ - 222.71304321289062, - 334.314697265625, - 236.31211853027344, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.71304321289062, - 334.314697265625, - 236.31211853027344, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "99.5", - "origin": [ - 252.8408203125, - 341.4949951171875 - ], - "bbox": [ - 252.8408203125, - 334.314697265625, - 266.4398498535156, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.8408203125, - 334.314697265625, - 266.4398498535156, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "63.6", - "origin": [ - 282.9607849121094, - 341.4949951171875 - ], - "bbox": [ - 282.9607849121094, - 334.314697265625, - 296.559814453125, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.9607849121094, - 334.314697265625, - 296.559814453125, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.5", - "origin": [ - 311.1457824707031, - 341.4949951171875 - ], - "bbox": [ - 311.1457824707031, - 334.314697265625, - 324.74481201171875, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.1457824707031, - 334.314697265625, - 324.74481201171875, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "93.6", - "origin": [ - 341.2657470703125, - 341.4949951171875 - ], - "bbox": [ - 341.2657470703125, - 334.314697265625, - 354.8647766113281, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657470703125, - 334.314697265625, - 354.8647766113281, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.5", - "origin": [ - 371.3857116699219, - 341.4949951171875 - ], - "bbox": [ - 371.3857116699219, - 334.314697265625, - 384.9847412109375, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.3857116699219, - 334.314697265625, - 384.9847412109375, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.1", - "origin": [ - 399.5707092285156, - 341.4949951171875 - ], - "bbox": [ - 399.5707092285156, - 334.314697265625, - 413.16973876953125, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5707092285156, - 334.314697265625, - 413.16973876953125, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.8", - "origin": [ - 429.690673828125, - 341.4949951171875 - ], - "bbox": [ - 429.690673828125, - 334.314697265625, - 443.2897033691406, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.690673828125, - 334.314697265625, - 443.2897033691406, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "50.1", - "origin": [ - 459.81842041015625, - 341.4949951171875 - ], - "bbox": [ - 459.81842041015625, - 334.314697265625, - 473.4174499511719, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.81842041015625, - 334.314697265625, - 473.4174499511719, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "77.6", - "origin": [ - 487.99566650390625, - 341.4949951171875 - ], - "bbox": [ - 487.99566650390625, - 334.314697265625, - 501.5946960449219, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.99566650390625, - 334.314697265625, - 501.5946960449219, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "86.2", - "origin": [ - 518.1234130859375, - 341.4949951171875 - ], - "bbox": [ - 518.1234130859375, - 334.314697265625, - 531.7224731445312, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1234130859375, - 334.314697265625, - 531.7224731445312, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Pixel-BERT-R50", - "origin": [ - 96.19499969482422, - 349.2649841308594 - ], - "bbox": [ - 96.19499969482422, - 342.0846862792969, - 148.8661651611328, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 342.0846862792969, - 148.8661651611328, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~60", - "origin": [ - 169.2880859375, - 349.2649841308594 - ], - "bbox": [ - 169.2880859375, - 342.0846862792969, - 181.26304626464844, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.2880859375, - 342.0846862792969, - 181.26304626464844, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.7", - "origin": [ - 194.53573608398438, - 349.2649841308594 - ], - "bbox": [ - 194.53573608398438, - 342.0846862792969, - 208.1348114013672, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.53573608398438, - 342.0846862792969, - 208.1348114013672, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "94.7", - "origin": [ - 222.7130126953125, - 349.2649841308594 - ], - "bbox": [ - 222.7130126953125, - 342.0846862792969, - 236.3120880126953, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.7130126953125, - 342.0846862792969, - 236.3120880126953, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "97.1", - "origin": [ - 252.84078979492188, - 349.2649841308594 - ], - "bbox": [ - 252.84078979492188, - 342.0846862792969, - 266.4398193359375, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.84078979492188, - 342.0846862792969, - 266.4398193359375, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "59.8", - "origin": [ - 282.96075439453125, - 349.2649841308594 - ], - "bbox": [ - 282.96075439453125, - 342.0846862792969, - 296.5597839355469, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96075439453125, - 342.0846862792969, - 296.5597839355469, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.5", - "origin": [ - 311.145751953125, - 349.2649841308594 - ], - "bbox": [ - 311.145751953125, - 342.0846862792969, - 324.7447814941406, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.145751953125, - 342.0846862792969, - 324.7447814941406, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "91.6", - "origin": [ - 341.2657165527344, - 349.2649841308594 - ], - "bbox": [ - 341.2657165527344, - 342.0846862792969, - 354.86474609375, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657165527344, - 342.0846862792969, - 354.86474609375, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "53.4", - "origin": [ - 371.38568115234375, - 349.2649841308594 - ], - "bbox": [ - 371.38568115234375, - 342.0846862792969, - 384.9847106933594, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.38568115234375, - 342.0846862792969, - 384.9847106933594, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.4", - "origin": [ - 399.5706787109375, - 349.2649841308594 - ], - "bbox": [ - 399.5706787109375, - 342.0846862792969, - 413.1697082519531, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5706787109375, - 342.0846862792969, - 413.1697082519531, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "88.5", - "origin": [ - 429.6906433105469, - 349.2649841308594 - ], - "bbox": [ - 429.6906433105469, - 342.0846862792969, - 443.2896728515625, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.6906433105469, - 342.0846862792969, - 443.2896728515625, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "41.1", - "origin": [ - 459.8183898925781, - 349.2649841308594 - ], - "bbox": [ - 459.8183898925781, - 342.0846862792969, - 473.41741943359375, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8183898925781, - 342.0846862792969, - 473.41741943359375, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "69.7", - "origin": [ - 487.9956359863281, - 349.2649841308594 - ], - "bbox": [ - 487.9956359863281, - 342.0846862792969, - 501.59466552734375, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9956359863281, - 342.0846862792969, - 501.59466552734375, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.5", - "origin": [ - 518.1233520507812, - 349.2649841308594 - ], - "bbox": [ - 518.1233520507812, - 342.0846862792969, - 531.722412109375, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1233520507812, - 342.0846862792969, - 531.722412109375, - 351.4486083984375 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 61.90599822998047, - 354.8576965332031, - 531.722412109375, - 380.70135498046875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Linear", - "origin": [ - 61.90599822998047, - 369.8089904785156 - ], - "bbox": [ - 61.90599822998047, - 362.6286926269531, - 82.18804168701172, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.90599822998047, - 362.6286926269531, - 82.18804168701172, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 96.19499969482422, - 362.0379943847656 - ], - "bbox": [ - 96.19499969482422, - 354.8576965332031, - 129.2679443359375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 354.8576965332031, - 129.2679443359375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 169.2880859375, - 362.0379943847656 - ], - "bbox": [ - 169.2880859375, - 354.8576965332031, - 181.26304626464844, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.2880859375, - 354.8576965332031, - 181.26304626464844, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "81.4", - "origin": [ - 194.53573608398438, - 362.0379943847656 - ], - "bbox": [ - 194.53573608398438, - 354.8576965332031, - 208.1348114013672, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.53573608398438, - 354.8576965332031, - 208.1348114013672, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.6", - "origin": [ - 222.7130126953125, - 362.0379943847656 - ], - "bbox": [ - 222.7130126953125, - 354.8576965332031, - 236.3120880126953, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.7130126953125, - 354.8576965332031, - 236.3120880126953, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "97.6", - "origin": [ - 252.84078979492188, - 362.0379943847656 - ], - "bbox": [ - 252.84078979492188, - 354.8576965332031, - 266.4398193359375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.84078979492188, - 354.8576965332031, - 266.4398193359375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "61.8", - "origin": [ - 282.96075439453125, - 362.0379943847656 - ], - "bbox": [ - 282.96075439453125, - 354.8576965332031, - 296.5597839355469, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96075439453125, - 354.8576965332031, - 296.5597839355469, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "86.2", - "origin": [ - 311.145751953125, - 362.0379943847656 - ], - "bbox": [ - 311.145751953125, - 354.8576965332031, - 324.7447814941406, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.145751953125, - 354.8576965332031, - 324.7447814941406, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.6", - "origin": [ - 341.2657165527344, - 362.0379943847656 - ], - "bbox": [ - 341.2657165527344, - 354.8576965332031, - 354.86474609375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657165527344, - 354.8576965332031, - 354.86474609375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "61.9", - "origin": [ - 371.38568115234375, - 362.0379943847656 - ], - "bbox": [ - 371.38568115234375, - 354.8576965332031, - 384.9847106933594, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.38568115234375, - 354.8576965332031, - 384.9847106933594, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "86.8", - "origin": [ - 399.5706787109375, - 362.0379943847656 - ], - "bbox": [ - 399.5706787109375, - 354.8576965332031, - 413.1697082519531, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5706787109375, - 354.8576965332031, - 413.1697082519531, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.8", - "origin": [ - 429.6906433105469, - 362.0379943847656 - ], - "bbox": [ - 429.6906433105469, - 354.8576965332031, - 443.2896728515625, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.6906433105469, - 354.8576965332031, - 443.2896728515625, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "41.3", - "origin": [ - 459.8183898925781, - 362.0379943847656 - ], - "bbox": [ - 459.8183898925781, - 354.8576965332031, - 473.41741943359375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8183898925781, - 354.8576965332031, - 473.41741943359375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.0", - "origin": [ - 487.9956359863281, - 362.0379943847656 - ], - "bbox": [ - 487.9956359863281, - 354.8576965332031, - 501.59466552734375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9956359863281, - 354.8576965332031, - 501.59466552734375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "82.5", - "origin": [ - 518.1233520507812, - 362.0379943847656 - ], - "bbox": [ - 518.1233520507812, - 354.8576965332031, - 531.722412109375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1233520507812, - 354.8576965332031, - 531.722412109375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 96.19499969482422, - 369.8089904785156 - ], - "bbox": [ - 96.19499969482422, - 362.6286926269531, - 129.2679443359375, - 371.99261474609375 - ] - }, - { - "size": 5.439599990844727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 129.2679443359375, - 369.8089904785156 - ], - "bbox": [ - 129.2679443359375, - 363.05181884765625, - 131.4499969482422, - 371.3375244140625 - ] - }, - { - "size": 5.439599990844727, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "a", - "origin": [ - 131.4499969482422, - 368.0780029296875 - ], - "bbox": [ - 131.4499969482422, - 363.05181884765625, - 133.86517333984375, - 369.6065368652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 362.6286926269531, - 133.86517333984375, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 4.981299877166748, - "flags": 6, - "font": "CMSY5", - "color": 0, - "ascender": 0.7910000085830688, - "descender": -0.9440000057220459, - "text": "⃝", - "origin": [ - 129.26699829101562, - 368.22900390625 - ], - "bbox": [ - 129.26699829101562, - 364.2887878417969, - 136.04653930664062, - 372.9313659667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.26699829101562, - 364.2887878417969, - 136.04653930664062, - 372.9313659667969 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 169.2899932861328, - 369.8089904785156 - ], - "bbox": [ - 169.2899932861328, - 362.6286926269531, - 181.26495361328125, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.2899932861328, - 362.6286926269531, - 181.26495361328125, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.7", - "origin": [ - 194.52987670898438, - 369.8089904785156 - ], - "bbox": [ - 194.52987670898438, - 362.6286926269531, - 208.1289520263672, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.52987670898438, - 362.6286926269531, - 208.1289520263672, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "97.2", - "origin": [ - 222.71493530273438, - 369.8089904785156 - ], - "bbox": [ - 222.71493530273438, - 362.6286926269531, - 236.3140106201172, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.71493530273438, - 362.6286926269531, - 236.3140106201172, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "98.1", - "origin": [ - 252.83494567871094, - 369.8089904785156 - ], - "bbox": [ - 252.83494567871094, - 362.6286926269531, - 266.4339904785156, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.83494567871094, - 362.6286926269531, - 266.4339904785156, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "62.9", - "origin": [ - 282.96270751953125, - 369.8089904785156 - ], - "bbox": [ - 282.96270751953125, - 362.6286926269531, - 296.5617370605469, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96270751953125, - 362.6286926269531, - 296.5617370605469, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.1", - "origin": [ - 311.13995361328125, - 369.8089904785156 - ], - "bbox": [ - 311.13995361328125, - 362.6286926269531, - 324.7389831542969, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.13995361328125, - 362.6286926269531, - 324.7389831542969, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.7", - "origin": [ - 341.2677001953125, - 369.8089904785156 - ], - "bbox": [ - 341.2677001953125, - 362.6286926269531, - 354.8667297363281, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2677001953125, - 362.6286926269531, - 354.8667297363281, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "62.2", - "origin": [ - 371.3876647949219, - 369.8089904785156 - ], - "bbox": [ - 371.3876647949219, - 362.6286926269531, - 384.9866943359375, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.3876647949219, - 362.6286926269531, - 384.9866943359375, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.6", - "origin": [ - 399.5726623535156, - 369.8089904785156 - ], - "bbox": [ - 399.5726623535156, - 362.6286926269531, - 413.17169189453125, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5726623535156, - 362.6286926269531, - 413.17169189453125, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "93.2", - "origin": [ - 429.692626953125, - 369.8089904785156 - ], - "bbox": [ - 429.692626953125, - 362.6286926269531, - 443.2916564941406, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.692626953125, - 362.6286926269531, - 443.2916564941406, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "42.6", - "origin": [ - 459.8125915527344, - 369.8089904785156 - ], - "bbox": [ - 459.8125915527344, - 362.6286926269531, - 473.41162109375, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8125915527344, - 362.6286926269531, - 473.41162109375, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.8", - "origin": [ - 487.9975891113281, - 369.8089904785156 - ], - "bbox": [ - 487.9975891113281, - 362.6286926269531, - 501.59661865234375, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9975891113281, - 362.6286926269531, - 501.59661865234375, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.4", - "origin": [ - 518.1175537109375, - 369.8089904785156 - ], - "bbox": [ - 518.1175537109375, - 362.6286926269531, - 531.7166137695312, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1175537109375, - 362.6286926269531, - 531.7166137695312, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 96.19499206542969, - 377.5799865722656 - ], - "bbox": [ - 96.19499206542969, - 370.3996887207031, - 129.26792907714844, - 379.76361083984375 - ] - }, - { - "size": 5.439599990844727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 129.26792907714844, - 377.5799865722656 - ], - "bbox": [ - 129.26792907714844, - 370.82281494140625, - 131.4499969482422, - 379.1085205078125 - ] - }, - { - "size": 5.439599990844727, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "a", - "origin": [ - 131.4499969482422, - 375.8489990234375 - ], - "bbox": [ - 131.4499969482422, - 370.82281494140625, - 133.86517333984375, - 377.3775329589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499206542969, - 370.3996887207031, - 133.86517333984375, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 4.981299877166748, - "flags": 6, - "font": "CMSY5", - "color": 0, - "ascender": 0.7910000085830688, - "descender": -0.9440000057220459, - "text": "⃝", - "origin": [ - 129.26699829101562, - 375.9989929199219 - ], - "bbox": [ - 129.26699829101562, - 372.05877685546875, - 136.04653930664062, - 380.70135498046875 - ] - }, - { - "size": 5.439599990844727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " +", - "origin": [ - 136.04653930664062, - 375.9989929199219 - ], - "bbox": [ - 136.04653930664062, - 370.82281494140625, - 140.971923828125, - 377.52752685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.26699829101562, - 370.82281494140625, - 140.971923828125, - 380.70135498046875 - ] - }, - { - "spans": [ - { - "size": 4.981299877166748, - "flags": 6, - "font": "CMSY5", - "color": 0, - "ascender": 0.7910000085830688, - "descender": -0.9440000057220459, - "text": "⃝", - "origin": [ - 136.0469970703125, - 375.9989929199219 - ], - "bbox": [ - 136.0469970703125, - 372.05877685546875, - 142.8265380859375, - 380.70135498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.0469970703125, - 372.05877685546875, - 142.8265380859375, - 380.70135498046875 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 169.2899932861328, - 377.5799865722656 - ], - "bbox": [ - 169.2899932861328, - 370.3996887207031, - 181.26495361328125, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.2899932861328, - 370.3996887207031, - 181.26495361328125, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.5", - "origin": [ - 194.52987670898438, - 377.5799865722656 - ], - "bbox": [ - 194.52987670898438, - 370.3996887207031, - 208.1289520263672, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.52987670898438, - 370.3996887207031, - 208.1289520263672, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.7", - "origin": [ - 222.71493530273438, - 377.5799865722656 - ], - "bbox": [ - 222.71493530273438, - 370.3996887207031, - 236.3140106201172, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.71493530273438, - 370.3996887207031, - 236.3140106201172, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "98.6", - "origin": [ - 252.83494567871094, - 377.5799865722656 - ], - "bbox": [ - 252.83494567871094, - 370.3996887207031, - 266.4339904785156, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.83494567871094, - 370.3996887207031, - 266.4339904785156, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "61.5", - "origin": [ - 282.96270751953125, - 377.5799865722656 - ], - "bbox": [ - 282.96270751953125, - 370.3996887207031, - 296.5617370605469, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96270751953125, - 370.3996887207031, - 296.5617370605469, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "86.3", - "origin": [ - 311.13995361328125, - 377.5799865722656 - ], - "bbox": [ - 311.13995361328125, - 370.3996887207031, - 324.7389831542969, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.13995361328125, - 370.3996887207031, - 324.7389831542969, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.7", - "origin": [ - 341.2677001953125, - 377.5799865722656 - ], - "bbox": [ - 341.2677001953125, - 370.3996887207031, - 354.8667297363281, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2677001953125, - 370.3996887207031, - 354.8667297363281, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "64.4", - "origin": [ - 371.3876647949219, - 377.5799865722656 - ], - "bbox": [ - 371.3876647949219, - 370.3996887207031, - 384.9866943359375, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.3876647949219, - 370.3996887207031, - 384.9866943359375, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "88.7", - "origin": [ - 399.5726623535156, - 377.5799865722656 - ], - "bbox": [ - 399.5726623535156, - 370.3996887207031, - 413.17169189453125, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5726623535156, - 370.3996887207031, - 413.17169189453125, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "93.8", - "origin": [ - 429.692626953125, - 377.5799865722656 - ], - "bbox": [ - 429.692626953125, - 370.3996887207031, - 443.2916564941406, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.692626953125, - 370.3996887207031, - 443.2916564941406, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "42.7", - "origin": [ - 459.8125915527344, - 377.5799865722656 - ], - "bbox": [ - 459.8125915527344, - 370.3996887207031, - 473.41162109375, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8125915527344, - 370.3996887207031, - 473.41162109375, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.9", - "origin": [ - 487.9975891113281, - 377.5799865722656 - ], - "bbox": [ - 487.9975891113281, - 370.3996887207031, - 501.59661865234375, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9975891113281, - 370.3996887207031, - 501.59661865234375, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.1", - "origin": [ - 518.1175537109375, - 377.5799865722656 - ], - "bbox": [ - 518.1175537109375, - 370.3996887207031, - 531.7166137695312, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1175537109375, - 370.3996887207031, - 531.7166137695312, - 379.76361083984375 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 55.11199951171875, - 407.7289123535156, - 291.0986328125, - 539.6444702148438 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "Natural Language for Visual Reasoning.", - "origin": [ - 55.439998626708984, - 417.2929992675781 - ], - "bbox": [ - 55.439998626708984, - 407.7289123535156, - 228.85894775390625, - 420.69024658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 407.7289123535156, - 228.85894775390625, - 420.69024658203125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "The NLVR2", - "origin": [ - 238.82200622558594, - 417.2929992675781 - ], - "bbox": [ - 238.82200622558594, - 408.0875549316406, - 289.4382019042969, - 420.0924987792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 238.82200622558594, - 408.0875549316406, - 289.4382019042969, - 420.0924987792969 - ] - }, - { - "spans": [ - { - "size": 10.051863670349121, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "task is a binary classification task given triplets of two im-", - "origin": [ - 55.439998626708984, - 429.24798583984375 - ], - "bbox": [ - 55.439998626708984, - 420.04254150390625, - 291.0978698730469, - 432.0474853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 420.04254150390625, - 291.0978698730469, - 432.0474853515625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ages and a question in natural language. As there are two", - "origin": [ - 55.439998626708984, - 441.2040100097656 - ], - "bbox": [ - 55.439998626708984, - 431.9985656738281, - 289.43701171875, - 444.0035095214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 431.9985656738281, - 289.43701171875, - 444.0035095214844 - ] - }, - { - "spans": [ - { - "size": 10.051863670349121, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "input images unlike the pre-training setup, multiple strate-", - "origin": [ - 55.439998626708984, - 453.15899658203125 - ], - "bbox": [ - 55.439998626708984, - 443.95355224609375, - 291.097900390625, - 455.95849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 443.95355224609375, - 291.097900390625, - 455.95849609375 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "gies exist", - "origin": [ - 55.439998626708984, - 465.114013671875 - ], - "bbox": [ - 55.439998626708984, - 455.9085693359375, - 91.8280029296875, - 467.91351318359375 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "7", - "origin": [ - 91.83300018310547, - 461.4989929199219 - ], - "bbox": [ - 91.83300018310547, - 455.0552062988281, - 95.31990051269531, - 463.4586181640625 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ". Following OSCAR (", - "origin": [ - 95.81800079345703, - 465.114013671875 - ], - "bbox": [ - 95.81800079345703, - 455.9085693359375, - 181.5987548828125, - 467.91351318359375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Li et al.", - "origin": [ - 181.5987548828125, - 465.114013671875 - ], - "bbox": [ - 181.5987548828125, - 455.9085693359375, - 211.55274963378906, - 467.91351318359375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 211.55274963378906, - 465.114013671875 - ], - "bbox": [ - 211.55274963378906, - 455.9085693359375, - 213.99359130859375, - 467.91351318359375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020b", - "origin": [ - 213.99359130859375, - 465.114013671875 - ], - "bbox": [ - 213.99359130859375, - 455.9085693359375, - 240.77442932128906, - 467.91351318359375 - ] - }, - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") and VinVL", - "origin": [ - 240.77442932128906, - 465.114013671875 - ], - "bbox": [ - 240.77442932128906, - 455.9085693359375, - 289.9328918457031, - 467.91351318359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 455.0552062988281, - 289.9328918457031, - 467.91351318359375 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(", - "origin": [ - 55.11199951171875, - 477.0690002441406 - ], - "bbox": [ - 55.11199951171875, - 467.8635559082031, - 58.49589538574219, - 479.8684997558594 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Zhang et al.", - "origin": [ - 58.49589538574219, - 477.0690002441406 - ], - "bbox": [ - 58.49589538574219, - 467.8635559082031, - 108.38043212890625, - 479.8684997558594 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 108.38043212890625, - 477.0690002441406 - ], - "bbox": [ - 108.38043212890625, - 467.8635559082031, - 110.9208984375, - 479.8684997558594 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2021", - "origin": [ - 110.9208984375, - 477.0690002441406 - ], - "bbox": [ - 110.9208984375, - 467.8635559082031, - 134.58786010742188, - 479.8684997558594 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "), we use the", - "origin": [ - 134.58786010742188, - 477.0690002441406 - ], - "bbox": [ - 134.58786010742188, - 467.8635559082031, - 188.59808349609375, - 479.8684997558594 - ] - }, - { - "size": 10.061732292175293, - "flags": 6, - "font": "NimbusRomNo9L-ReguItal", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.27000001072883606, - "text": " pair", - "origin": [ - 188.59808349609375, - 477.0690002441406 - ], - "bbox": [ - 188.59808349609375, - 467.8635559082031, - 208.89181518554688, - 479.7589111328125 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " method. Here, the", - "origin": [ - 208.89181518554688, - 477.0690002441406 - ], - "bbox": [ - 208.89181518554688, - 467.8635559082031, - 289.4389343261719, - 479.8684997558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.11199951171875, - 467.8635559082031, - 289.4389343261719, - 479.8684997558594 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "triplet input is reformulated into two pairs (question, im-", - "origin": [ - 55.439998626708984, - 489.02398681640625 - ], - "bbox": [ - 55.439998626708984, - 479.81854248046875, - 291.0933837890625, - 491.823486328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 479.81854248046875, - 291.0933837890625, - 491.823486328125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "age1) and (question, image2), and each pair goes through", - "origin": [ - 55.439998626708984, - 500.97900390625 - ], - "bbox": [ - 55.439998626708984, - 491.7735595703125, - 289.4369812011719, - 503.77850341796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 491.7735595703125, - 289.4369812011719, - 503.77850341796875 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the ViLT. The head takes the concatenation of two pooled", - "origin": [ - 55.439998626708984, - 512.9349975585938 - ], - "bbox": [ - 55.439998626708984, - 503.72955322265625, - 289.4370422363281, - 515.7344970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 503.72955322265625, - 289.4370422363281, - 515.7344970703125 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "representations (", - "origin": [ - 55.439998626708984, - 524.8900146484375 - ], - "bbox": [ - 55.439998626708984, - 515.6845703125, - 122.9959945678711, - 527.6895141601562 - ] - }, - { - "size": 9.962599754333496, - "flags": 6, - "font": "CMMI10", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "p", - "origin": [ - 122.99800109863281, - 524.8900146484375 - ], - "bbox": [ - 122.99800109863281, - 517.4180908203125, - 128.00918579101562, - 527.3806762695312 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ") as input and outputs the binary predic-", - "origin": [ - 128.01100158691406, - 524.8900146484375 - ], - "bbox": [ - 128.01100158691406, - 515.6845703125, - 291.0986328125, - 527.6895141601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 515.6845703125, - 291.0986328125, - 527.6895141601562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tion.", - "origin": [ - 55.439998626708984, - 536.844970703125 - ], - "bbox": [ - 55.439998626708984, - 527.6395263671875, - 73.43244934082031, - 539.6444702148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 527.6395263671875, - 73.43244934082031, - 539.6444702148438 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 55.13100051879883, - 545.5725708007812, - 289.4440002441406, - 581.4874877929688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.877554893493652, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Table 2", - "origin": [ - 55.13100051879883, - 554.7780151367188 - ], - "bbox": [ - 55.13100051879883, - 545.5725708007812, - 84.03083801269531, - 557.5775146484375 - ] - }, - { - "size": 9.877554893493652, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " shows the results. ViLT-B/32 maintains competitive", - "origin": [ - 84.03083801269531, - 554.7780151367188 - ], - "bbox": [ - 84.03083801269531, - 545.5725708007812, - 289.4440002441406, - 557.5775146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.13100051879883, - 545.5725708007812, - 289.4440002441406, - 557.5775146484375 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "performance on both datasets considering its remarkable", - "origin": [ - 55.439998626708984, - 566.7330322265625 - ], - "bbox": [ - 55.439998626708984, - 557.527587890625, - 289.4369812011719, - 569.5325317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 557.527587890625, - 289.4369812011719, - 569.5325317382812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "inference speed.", - "origin": [ - 55.439998626708984, - 578.68798828125 - ], - "bbox": [ - 55.439998626708984, - 569.4825439453125, - 120.1669921875, - 581.4874877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 569.4825439453125, - 120.1669921875, - 581.4874877929688 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 55.439998626708984, - 594.2568969726562, - 138.3985595703125, - 607.2182006835938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "4.4. Retrieval Tasks", - "origin": [ - 55.439998626708984, - 603.8209838867188 - ], - "bbox": [ - 55.439998626708984, - 594.2568969726562, - 138.3985595703125, - 607.2182006835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 594.2568969726562, - 138.3985595703125, - 607.2182006835938 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 54.97200012207031, - 613.2685546875, - 291.0960388183594, - 661.1384887695312 - ], - "lines": [ - { - "spans": [ - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We fine-tune ViLT-B/32 on the", - "origin": [ - 54.97200012207031, - 622.4739990234375 - ], - "bbox": [ - 54.97200012207031, - 613.2685546875, - 179.05935668945312, - 625.2734985351562 - ] - }, - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Karpathy & Fei-Fei", - "origin": [ - 179.05935668945312, - 622.4739990234375 - ], - "bbox": [ - 179.05935668945312, - 613.2685546875, - 260.79486083984375, - 625.2734985351562 - ] - }, - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " (", - "origin": [ - 260.79486083984375, - 622.4739990234375 - ], - "bbox": [ - 260.79486083984375, - 613.2685546875, - 266.6309509277344, - 625.2734985351562 - ] - }, - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "2015", - "origin": [ - 266.6309509277344, - 622.4739990234375 - ], - "bbox": [ - 266.6309509277344, - 613.2685546875, - 286.75543212890625, - 625.2734985351562 - ] - }, - { - "size": 10.012289047241211, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ")", - "origin": [ - 286.75543212890625, - 622.4739990234375 - ], - "bbox": [ - 286.75543212890625, - 613.2685546875, - 290.10614013671875, - 625.2734985351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.97200012207031, - 613.2685546875, - 290.10614013671875, - 625.2734985351562 - ] - }, - { - "spans": [ - { - "size": 9.9126615524292, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "split of MSCOCO and F30K. For image-to-text and text-to-", - "origin": [ - 55.439998626708984, - 634.4290161132812 - ], - "bbox": [ - 55.439998626708984, - 625.2235717773438, - 291.0960388183594, - 637.228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 625.2235717773438, - 291.0960388183594, - 637.228515625 - ] - }, - { - "spans": [ - { - "size": 10.022196769714355, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "image retrieval, we measure both zero-shot and fine-tuned", - "origin": [ - 55.439998626708984, - 646.384033203125 - ], - "bbox": [ - 55.439998626708984, - 637.1785888671875, - 289.4366149902344, - 649.1835327148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 637.1785888671875, - 289.4366149902344, - 649.1835327148438 - ] - }, - { - "spans": [ - { - "size": 10.002370834350586, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "performance", - "origin": [ - 55.439998626708984, - 658.3389892578125 - ], - "bbox": [ - 55.439998626708984, - 649.133544921875, - 106.18373107910156, - 661.1384887695312 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "8", - "origin": [ - 106.18399810791016, - 654.7239990234375 - ], - "bbox": [ - 106.18399810791016, - 648.2802124023438, - 109.6708984375, - 656.6836547851562 - ] - }, - { - "size": 10.002370834350586, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ". We initialize the similarity score head from", - "origin": [ - 110.16899871826172, - 658.3389892578125 - ], - "bbox": [ - 110.16899871826172, - 649.133544921875, - 289.4441833496094, - 661.1384887695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 648.2802124023438, - 289.4441833496094, - 661.1384887695312 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 55.439998626708984, - 667.8306884765625, - 290.562744140625, - 710.45751953125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "7", - "origin": [ - 68.09300231933594, - 673.35400390625 - ], - "bbox": [ - 68.09300231933594, - 667.8306884765625, - 71.08180236816406, - 675.03369140625 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "UNITER proposed three downstream head setups: pair, triplet,", - "origin": [ - 71.58000183105469, - 677.1630249023438 - ], - "bbox": [ - 71.58000183105469, - 668.8780517578125, - 290.562744140625, - 679.6825561523438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.09300231933594, - 667.8306884765625, - 290.562744140625, - 679.6825561523438 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and pair-biattn.", - "origin": [ - 55.439998626708984, - 687.125 - ], - "bbox": [ - 55.439998626708984, - 678.8400268554688, - 110.04537200927734, - 689.64453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 678.8400268554688, - 110.04537200927734, - 689.64453125 - ] - }, - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "8", - "origin": [ - 68.09300231933594, - 694.1669921875 - ], - "bbox": [ - 68.09300231933594, - 688.6436767578125, - 71.08180236816406, - 695.8466796875 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@K corresponds to whether the ground truth is included", - "origin": [ - 71.58000183105469, - 697.9760131835938 - ], - "bbox": [ - 71.58000183105469, - 689.6910400390625, - 289.4403991699219, - 700.4955444335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.09300231933594, - 688.6436767578125, - 289.4403991699219, - 700.4955444335938 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "among top K results from the validation set.", - "origin": [ - 55.439998626708984, - 707.93798828125 - ], - "bbox": [ - 55.439998626708984, - 699.6530151367188, - 213.11416625976562, - 710.45751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 699.6530151367188, - 213.11416625976562, - 710.45751953125 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 307.44000244140625, - 408.0875549316406, - 541.4385986328125, - 455.95849609375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the pre-trained ITM head, particularly the part that computes", - "origin": [ - 307.44000244140625, - 417.2929992675781 - ], - "bbox": [ - 307.44000244140625, - 408.0875549316406, - 541.4381713867188, - 420.0924987792969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 408.0875549316406, - 541.4381713867188, - 420.0924987792969 - ] - }, - { - "spans": [ - { - "size": 9.9176664352417, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "the true-pair logits. We sample 15 random texts as negative", - "origin": [ - 307.44000244140625, - 429.24798583984375 - ], - "bbox": [ - 307.44000244140625, - 420.04254150390625, - 541.4385986328125, - 432.0474853515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 420.04254150390625, - 541.4385986328125, - 432.0474853515625 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "samples and tune the model with cross-entropy loss that", - "origin": [ - 307.44000244140625, - 441.2040100097656 - ], - "bbox": [ - 307.44000244140625, - 431.9985656738281, - 541.4371948242188, - 444.0035095214844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 431.9985656738281, - 541.4371948242188, - 444.0035095214844 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "maximizes the scores on positive pairs.", - "origin": [ - 307.44000244140625, - 453.15899658203125 - ], - "bbox": [ - 307.44000244140625, - 443.95355224609375, - 463.10565185546875, - 455.95849609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 443.95355224609375, - 463.10565185546875, - 455.95849609375 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 306.9720153808594, - 461.8865661621094, - 543.095703125, - 533.66650390625 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "We report the zero shot retrieval results in", - "origin": [ - 306.9720153808594, - 471.0920104980469 - ], - "bbox": [ - 306.9720153808594, - 461.8865661621094, - 473.61639404296875, - 473.8915100097656 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Table 3", - "origin": [ - 473.61639404296875, - 471.0920104980469 - ], - "bbox": [ - 473.61639404296875, - 461.8865661621094, - 505.46685791015625, - 473.8915100097656 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " and fine-", - "origin": [ - 505.46685791015625, - 471.0920104980469 - ], - "bbox": [ - 505.46685791015625, - 461.8865661621094, - 543.095703125, - 473.8915100097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.9720153808594, - 461.8865661621094, - 543.095703125, - 473.8915100097656 - ] - }, - { - "spans": [ - { - "size": 10.046924591064453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "tuned results in", - "origin": [ - 307.44000244140625, - 483.0469970703125 - ], - "bbox": [ - 307.44000244140625, - 473.841552734375, - 369.2652282714844, - 485.84649658203125 - ] - }, - { - "size": 10.046924591064453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Table 4", - "origin": [ - 369.2652282714844, - 483.0469970703125 - ], - "bbox": [ - 369.2652282714844, - 473.841552734375, - 401.5760803222656, - 485.84649658203125 - ] - }, - { - "size": 10.046924591064453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ". At zero-shot retrieval, ViLT-B/32", - "origin": [ - 401.5760803222656, - 483.0469970703125 - ], - "bbox": [ - 401.5760803222656, - 473.841552734375, - 541.4376831054688, - 485.84649658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 473.841552734375, - 541.4376831054688, - 485.84649658203125 - ] - }, - { - "spans": [ - { - "size": 9.942654609680176, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "performs better in general than ImageBERT despite Image-", - "origin": [ - 307.44000244140625, - 495.00201416015625 - ], - "bbox": [ - 307.44000244140625, - 485.79656982421875, - 543.0950927734375, - 497.801513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 485.79656982421875, - 543.0950927734375, - 497.801513671875 - ] - }, - { - "spans": [ - { - "size": 9.862470626831055, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "BERT’s pre-training on a larger (14M) dataset. At fine-tuned", - "origin": [ - 307.44000244140625, - 506.9570007324219 - ], - "bbox": [ - 307.44000244140625, - 497.7515563964844, - 541.4380493164062, - 509.7565002441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 497.7515563964844, - 541.4380493164062, - 509.7565002441406 - ] - }, - { - "spans": [ - { - "size": 9.882577896118164, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "retrieval, recalls for ViLT-B/32 are higher by a large margin", - "origin": [ - 307.44000244140625, - 518.9119873046875 - ], - "bbox": [ - 307.44000244140625, - 509.70654296875, - 541.4425048828125, - 521.7114868164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 509.70654296875, - 541.4425048828125, - 521.7114868164062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "than the second fastest model (Pixel-BERT-R50).", - "origin": [ - 307.44000244140625, - 530.8670043945312 - ], - "bbox": [ - 307.44000244140625, - 521.6615600585938, - 503.80279541015625, - 533.66650390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 521.6615600585938, - 503.80279541015625, - 533.66650390625 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 307.44000244140625, - 546.4368896484375, - 389.3724365234375, - 559.398193359375 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "4.5. Ablation Study", - "origin": [ - 307.44000244140625, - 556.0009765625 - ], - "bbox": [ - 307.44000244140625, - 546.4368896484375, - 389.3724365234375, - 559.398193359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 546.4368896484375, - 389.3724365234375, - 559.398193359375 - ] - } - ] - }, - { - "number": 22, - "type": 0, - "bbox": [ - 307.44000244140625, - 565.4475708007812, - 541.4437866210938, - 613.3175048828125 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "In", - "origin": [ - 307.44000244140625, - 574.6530151367188 - ], - "bbox": [ - 307.44000244140625, - 565.4475708007812, - 315.90484619140625, - 577.4525146484375 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Table 5", - "origin": [ - 315.90484619140625, - 574.6530151367188 - ], - "bbox": [ - 315.90484619140625, - 565.4475708007812, - 349.8556213378906, - 577.4525146484375 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ", we perform various ablations. More training", - "origin": [ - 349.8556213378906, - 574.6530151367188 - ], - "bbox": [ - 349.8556213378906, - 565.4475708007812, - 541.4371948242188, - 577.4525146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 565.4475708007812, - 541.4371948242188, - 577.4525146484375 - ] - }, - { - "spans": [ - { - "size": 9.932666778564453, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "steps, whole word masking, and image augmentation come", - "origin": [ - 307.44000244140625, - 586.6080322265625 - ], - "bbox": [ - 307.44000244140625, - 577.402587890625, - 541.4437866210938, - 589.4075317382812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 577.402587890625, - 541.4437866210938, - 589.4075317382812 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "to be beneficial, whereas an additional training objective", - "origin": [ - 307.44000244140625, - 598.56298828125 - ], - "bbox": [ - 307.44000244140625, - 589.3575439453125, - 541.4371337890625, - 601.3624877929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 589.3575439453125, - 541.4371337890625, - 601.3624877929688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "does not help.", - "origin": [ - 307.44000244140625, - 610.5180053710938 - ], - "bbox": [ - 307.44000244140625, - 601.3125610351562, - 363.0611877441406, - 613.3175048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 601.3125610351562, - 363.0611877441406, - 613.3175048828125 - ] - } - ] - }, - { - "number": 23, - "type": 0, - "bbox": [ - 307.11199951171875, - 619.2455444335938, - 543.0953369140625, - 714.9365234375 - ], - "lines": [ - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "It has been reported that the number of training iterations", - "origin": [ - 307.44000244140625, - 628.4509887695312 - ], - "bbox": [ - 307.44000244140625, - 619.2455444335938, - 541.437255859375, - 631.25048828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 619.2455444335938, - 541.437255859375, - 631.25048828125 - ] - }, - { - "spans": [ - { - "size": 10.022196769714355, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "affects the performance of self-supervised models (", - "origin": [ - 307.44000244140625, - 640.406005859375 - ], - "bbox": [ - 307.44000244140625, - 631.2005615234375, - 514.2449951171875, - 643.2055053710938 - ] - }, - { - "size": 10.022196769714355, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Devlin", - "origin": [ - 514.2449951171875, - 640.406005859375 - ], - "bbox": [ - 514.2449951171875, - 631.2005615234375, - 541.4365844726562, - 643.2055053710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 631.2005615234375, - 541.4365844726562, - 643.2055053710938 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "et al.", - "origin": [ - 307.44000244140625, - 652.3609619140625 - ], - "bbox": [ - 307.44000244140625, - 643.155517578125, - 327.3470764160156, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 327.3470764160156, - 652.3609619140625 - ], - "bbox": [ - 327.3470764160156, - 643.155517578125, - 329.8875427246094, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2019", - "origin": [ - 329.8875427246094, - 652.3609619140625 - ], - "bbox": [ - 329.8875427246094, - 643.155517578125, - 352.9041748046875, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 352.9041748046875, - 652.3609619140625 - ], - "bbox": [ - 352.9041748046875, - 643.155517578125, - 355.7291564941406, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Chen et al.", - "origin": [ - 355.7291564941406, - 652.3609619140625 - ], - "bbox": [ - 355.7291564941406, - 643.155517578125, - 402.4737243652344, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ",", - "origin": [ - 402.4737243652344, - 652.3609619140625 - ], - "bbox": [ - 402.4737243652344, - 643.155517578125, - 405.0141906738281, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " 2020a", - "origin": [ - 405.0141906738281, - 652.3609619140625 - ], - "bbox": [ - 405.0141906738281, - 643.155517578125, - 432.5426940917969, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": ";", - "origin": [ - 432.5426940917969, - 652.3609619140625 - ], - "bbox": [ - 432.5426940917969, - 643.155517578125, - 435.36767578125, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 5234, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "b", - "origin": [ - 435.36767578125, - 652.3609619140625 - ], - "bbox": [ - 435.36767578125, - 643.155517578125, - 440.4486083984375, - 655.1604614257812 - ] - }, - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "). As VLP is also a form", - "origin": [ - 440.4486083984375, - 652.3609619140625 - ], - "bbox": [ - 440.4486083984375, - 643.155517578125, - 541.4371948242188, - 655.1604614257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 643.155517578125, - 541.4371948242188, - 655.1604614257812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "of self-supervised training, we examine the effects of train-", - "origin": [ - 307.44000244140625, - 664.3170166015625 - ], - "bbox": [ - 307.44000244140625, - 655.111572265625, - 543.0953369140625, - 667.1165161132812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 655.111572265625, - 543.0953369140625, - 667.1165161132812 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ing durations. As expected, the performance constantly", - "origin": [ - 307.44000244140625, - 676.27197265625 - ], - "bbox": [ - 307.44000244140625, - 667.0665283203125, - 541.7928466796875, - 679.0714721679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 667.0665283203125, - 541.7928466796875, - 679.0714721679688 - ] - }, - { - "spans": [ - { - "size": 10.061732292175293, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "increases as we train the model for longer training steps", - "origin": [ - 307.44000244140625, - 688.2269897460938 - ], - "bbox": [ - 307.44000244140625, - 679.0215454101562, - 541.4371948242188, - 691.0264892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.44000244140625, - 679.0215454101562, - 541.4371948242188, - 691.0264892578125 - ] - }, - { - "spans": [ - { - "size": 10.032095909118652, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(rows 1~3). Masking whole words for the MLM objective", - "origin": [ - 307.11199951171875, - 700.1820068359375 - ], - "bbox": [ - 307.11199951171875, - 690.9765625, - 541.4395141601562, - 702.9815063476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.11199951171875, - 690.9765625, - 541.4395141601562, - 702.9815063476562 - ] - }, - { - "spans": [ - { - "size": 9.972557067871094, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(rows 3~4) and fine-tuning with augmentation (row 6) also", - "origin": [ - 307.11199951171875, - 712.1370239257812 - ], - "bbox": [ - 307.11199951171875, - 702.9315795898438, - 541.442138671875, - 714.9365234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 307.11199951171875, - 702.9315795898438, - 541.442138671875, - 714.9365234375 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 18, - "type": 0, - "bbox": [ - 55.439998626708984, - 667.8306884765625, - 290.562744140625, - 710.45751953125 - ], - "lines": [ - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "7", - "origin": [ - 68.09300231933594, - 673.35400390625 - ], - "bbox": [ - 68.09300231933594, - 667.8306884765625, - 71.08180236816406, - 675.03369140625 - ] - }, - { - "size": 8.876283645629883, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "UNITER proposed three downstream head setups: pair, triplet,", - "origin": [ - 71.58000183105469, - 677.1630249023438 - ], - "bbox": [ - 71.58000183105469, - 668.8780517578125, - 290.562744140625, - 679.6825561523438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.09300231933594, - 667.8306884765625, - 290.562744140625, - 679.6825561523438 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "and pair-biattn.", - "origin": [ - 55.439998626708984, - 687.125 - ], - "bbox": [ - 55.439998626708984, - 678.8400268554688, - 110.04537200927734, - 689.64453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 678.8400268554688, - 110.04537200927734, - 689.64453125 - ] - }, - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "8", - "origin": [ - 68.09300231933594, - 694.1669921875 - ], - "bbox": [ - 68.09300231933594, - 688.6436767578125, - 71.08180236816406, - 695.8466796875 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@K corresponds to whether the ground truth is included", - "origin": [ - 71.58000183105469, - 697.9760131835938 - ], - "bbox": [ - 71.58000183105469, - 689.6910400390625, - 289.4403991699219, - 700.4955444335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 68.09300231933594, - 688.6436767578125, - 289.4403991699219, - 700.4955444335938 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "among top K results from the validation set.", - "origin": [ - 55.439998626708984, - 707.93798828125 - ], - "bbox": [ - 55.439998626708984, - 699.6530151367188, - 213.11416625976562, - 710.45751953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 699.6530151367188, - 213.11416625976562, - 710.45751953125 - ] - } - ], - "tag": "footnote" - }, - { - "number": 1, - "type": 0, - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 541.441650390625, - 113.60983276367188 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Table 3.", - "origin": [ - 54.893001556396484, - 83.10198974609375 - ], - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 83.55857849121094, - 85.62155151367188 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Comparison of ViLT-B/32 with other VLP models on downstream zero-shot retrieval tasks. We exclude the models of which", - "origin": [ - 83.55857849121094, - 83.10198974609375 - ], - "bbox": [ - 83.55857849121094, - 74.81703186035156, - 541.4404296875, - 85.62155151367188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.893001556396484, - 74.81703186035156, - 541.4404296875, - 85.62155151367188 - ] - }, - { - "spans": [ - { - "size": 8.970882415771484, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "zero-shot retrieval performances were not reported in their original papers.", - "origin": [ - 55.439998626708984, - 94.06097412109375 - ], - "bbox": [ - 55.439998626708984, - 85.77601623535156, - 323.1033935546875, - 96.58053588867188 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " †", - "origin": [ - 323.1033935546875, - 94.06097412109375 - ], - "bbox": [ - 323.1033935546875, - 85.77601623535156, - 330.3671875, - 96.58053588867188 - ] - }, - { - "size": 8.970882415771484, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " is pre-trained with a 10M proprietary vision-and-language", - "origin": [ - 330.3671875, - 94.06097412109375 - ], - "bbox": [ - 330.3671875, - 85.77601623535156, - 541.441650390625, - 96.58053588867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 85.77601623535156, - 541.441650390625, - 96.58053588867188 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "dataset in addition to the 4M dataset of GCC+SBU. +", - "origin": [ - 55.439998626708984, - 105.02001953125 - ], - "bbox": [ - 55.439998626708984, - 96.46504211425781, - 249.8550567626953, - 107.53958129882812 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMSY9", - "color": 0, - "ascender": 0.7770000100135803, - "descender": -0.9580000042915344, - "text": "⃝", - "origin": [ - 242.71900939941406, - 105.02001953125 - ], - "bbox": [ - 242.71900939941406, - 98.0531234741211, - 251.92750549316406, - 113.60983276367188 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " indicates model trained for a longer 200K pre-training steps.", - "origin": [ - 251.92750549316406, - 105.02001953125 - ], - "bbox": [ - 251.92750549316406, - 96.73506164550781, - 471.0732116699219, - 107.53958129882812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 96.46504211425781, - 471.0732116699219, - 113.60983276367188 - ] - } - ], - "tag": "on-table" - }, - { - "number": 2, - "type": 0, - "bbox": [ - 61.63600158691406, - 118.42750549316406, - 173.44876098632812, - 136.6915283203125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Visual", - "origin": [ - 61.63600158691406, - 125.88397216796875 - ], - "bbox": [ - 61.63600158691406, - 118.42756652832031, - 82.22180938720703, - 128.15155029296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.63600158691406, - 118.42756652832031, - 82.22180938720703, - 128.15155029296875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Embed", - "origin": [ - 61.63600158691406, - 134.4239501953125 - ], - "bbox": [ - 61.63600158691406, - 126.96754455566406, - 84.49746704101562, - 136.6915283203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.63600158691406, - 126.96754455566406, - 84.49746704101562, - 136.6915283203125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Model", - "origin": [ - 96.78300476074219, - 130.242919921875 - ], - "bbox": [ - 96.78300476074219, - 122.78651428222656, - 117.85299682617188, - 132.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 122.78651428222656, - 117.85299682617188, - 132.510498046875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Time", - "origin": [ - 156.6959991455078, - 125.8839111328125 - ], - "bbox": [ - 156.6959991455078, - 118.42750549316406, - 173.44869995117188, - 128.1514892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.6959991455078, - 118.42750549316406, - 173.44869995117188, - 128.1514892578125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(ms)", - "origin": [ - 158.65699768066406, - 134.42388916015625 - ], - "bbox": [ - 158.65699768066406, - 126.96748352050781, - 173.44876098632812, - 136.69146728515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 158.65699768066406, - 126.96748352050781, - 173.44876098632812, - 136.69146728515625 - ] - } - ], - "tag": "on-table" - }, - { - "number": 3, - "type": 0, - "bbox": [ - 185.4040069580078, - 114.71650695800781, - 535.2415161132812, - 140.5794677734375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Zero-Shot Text Retrieval", - "origin": [ - 229.85400390625, - 122.17291259765625 - ], - "bbox": [ - 229.85400390625, - 114.71650695800781, - 309.8973388671875, - 124.44049835205078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 229.85400390625, - 114.71650695800781, - 309.8973388671875, - 124.44049835205078 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Zero-Shot Image Retrieval", - "origin": [ - 407.71826171875, - 122.17291259765625 - ], - "bbox": [ - 407.71826171875, - 114.71650695800781, - 493.8219909667969, - 124.44049835205078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 407.71826171875, - 114.71650695800781, - 493.8219909667969, - 124.44049835205078 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Flickr30k (1K)", - "origin": [ - 200.3330078125, - 130.242919921875 - ], - "bbox": [ - 200.3330078125, - 122.78651428222656, - 248.96910095214844, - 132.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.3330078125, - 122.78651428222656, - 248.96910095214844, - 132.510498046875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MSCOCO (5K)", - "origin": [ - 289.4305725097656, - 130.242919921875 - ], - "bbox": [ - 289.4305725097656, - 122.78651428222656, - 340.7619323730469, - 132.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 289.4305725097656, - 122.78651428222656, - 340.7619323730469, - 132.510498046875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Flickr30k (1K)", - "origin": [ - 381.2314758300781, - 130.242919921875 - ], - "bbox": [ - 381.2314758300781, - 122.78651428222656, - 429.86761474609375, - 132.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 381.2314758300781, - 122.78651428222656, - 429.86761474609375, - 132.510498046875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MSCOCO (5K)", - "origin": [ - 470.3291015625, - 130.242919921875 - ], - "bbox": [ - 470.3291015625, - 122.78651428222656, - 521.660400390625, - 132.510498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 470.3291015625, - 122.78651428222656, - 521.660400390625, - 132.510498046875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 185.4040069580078, - 138.3118896484375 - ], - "bbox": [ - 185.4040069580078, - 130.85548400878906, - 202.2535400390625, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 185.4040069580078, - 130.85548400878906, - 202.2535400390625, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 214.20477294921875, - 138.3118896484375 - ], - "bbox": [ - 214.20477294921875, - 130.85548400878906, - 231.05430603027344, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 214.20477294921875, - 130.85548400878906, - 231.05430603027344, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 243.0135955810547, - 138.3118896484375 - ], - "bbox": [ - 243.0135955810547, - 130.85548400878906, - 263.8979797363281, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 243.0135955810547, - 130.85548400878906, - 263.8979797363281, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 275.8492126464844, - 138.3118896484375 - ], - "bbox": [ - 275.8492126464844, - 130.85548400878906, - 292.69873046875, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 275.8492126464844, - 130.85548400878906, - 292.69873046875, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 304.65802001953125, - 138.3118896484375 - ], - "bbox": [ - 304.65802001953125, - 130.85548400878906, - 321.5075378417969, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.65802001953125, - 130.85548400878906, - 321.5075378417969, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 333.4587707519531, - 138.3118896484375 - ], - "bbox": [ - 333.4587707519531, - 130.85548400878906, - 354.3431396484375, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 333.4587707519531, - 130.85548400878906, - 354.3431396484375, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 366.30242919921875, - 138.3118896484375 - ], - "bbox": [ - 366.30242919921875, - 130.85548400878906, - 383.1519470214844, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 366.30242919921875, - 130.85548400878906, - 383.1519470214844, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 395.1031799316406, - 138.3118896484375 - ], - "bbox": [ - 395.1031799316406, - 130.85548400878906, - 411.95269775390625, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 395.1031799316406, - 130.85548400878906, - 411.95269775390625, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 423.9119873046875, - 138.3118896484375 - ], - "bbox": [ - 423.9119873046875, - 130.85548400878906, - 444.7963562011719, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 423.9119873046875, - 130.85548400878906, - 444.7963562011719, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 456.7475891113281, - 138.3118896484375 - ], - "bbox": [ - 456.7475891113281, - 130.85548400878906, - 473.59710693359375, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 456.7475891113281, - 130.85548400878906, - 473.59710693359375, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 485.556396484375, - 138.3118896484375 - ], - "bbox": [ - 485.556396484375, - 130.85548400878906, - 502.4059143066406, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 485.556396484375, - 130.85548400878906, - 502.4059143066406, - 140.5794677734375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 514.3571166992188, - 138.3118896484375 - ], - "bbox": [ - 514.3571166992188, - 130.85548400878906, - 535.2415161132812, - 140.5794677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.3571166992188, - 130.85548400878906, - 535.2415161132812, - 140.5794677734375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 4, - "type": 0, - "bbox": [ - 61.63600158691406, - 156.03260803222656, - 84.82832336425781, - 165.756591796875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Region", - "origin": [ - 61.63600158691406, - 163.489013671875 - ], - "bbox": [ - 61.63600158691406, - 156.03260803222656, - 84.82832336425781, - 165.756591796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.63600158691406, - 156.03260803222656, - 84.82832336425781, - 165.756591796875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 5, - "type": 0, - "bbox": [ - 96.78300476074219, - 143.92762756347656, - 531.864990234375, - 177.860595703125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLBERT", - "origin": [ - 96.78300476074219, - 151.384033203125 - ], - "bbox": [ - 96.78300476074219, - 143.92762756347656, - 129.4410858154297, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 143.92762756347656, - 129.4410858154297, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 156.9748992919922, - 151.384033203125 - ], - "bbox": [ - 156.9748992919922, - 143.92762756347656, - 173.44515991210938, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.9748992919922, - 143.92762756347656, - 173.44515991210938, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 192.48158264160156, - 151.384033203125 - ], - "bbox": [ - 192.48158264160156, - 143.92762756347656, - 195.16879272460938, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 192.48158264160156, - 143.92762756347656, - 195.16879272460938, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 221.2904052734375, - 151.384033203125 - ], - "bbox": [ - 221.2904052734375, - 143.92762756347656, - 223.9776153564453, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.2904052734375, - 143.92762756347656, - 223.9776153564453, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 252.1085968017578, - 151.384033203125 - ], - "bbox": [ - 252.1085968017578, - 143.92762756347656, - 254.79580688476562, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.1085968017578, - 143.92762756347656, - 254.79580688476562, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 282.9348449707031, - 151.384033203125 - ], - "bbox": [ - 282.9348449707031, - 143.92762756347656, - 285.6220703125, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.9348449707031, - 143.92762756347656, - 285.6220703125, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 311.7356262207031, - 151.384033203125 - ], - "bbox": [ - 311.7356262207031, - 143.92762756347656, - 314.4228515625, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.7356262207031, - 143.92762756347656, - 314.4228515625, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 342.5618896484375, - 151.384033203125 - ], - "bbox": [ - 342.5618896484375, - 143.92762756347656, - 345.2491149902344, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.5618896484375, - 143.92762756347656, - 345.2491149902344, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "31.9", - "origin": [ - 367.666748046875, - 151.384033203125 - ], - "bbox": [ - 367.666748046875, - 143.92762756347656, - 381.7887268066406, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.666748046875, - 143.92762756347656, - 381.7887268066406, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "61.1", - "origin": [ - 396.4674987792969, - 151.384033203125 - ], - "bbox": [ - 396.4674987792969, - 143.92762756347656, - 410.5894775390625, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.4674987792969, - 143.92762756347656, - 410.5894775390625, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.8", - "origin": [ - 427.29376220703125, - 151.384033203125 - ], - "bbox": [ - 427.29376220703125, - 143.92762756347656, - 441.4157409667969, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.29376220703125, - 143.92762756347656, - 441.4157409667969, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 463.8333740234375, - 151.384033203125 - ], - "bbox": [ - 463.8333740234375, - 143.92762756347656, - 466.5205993652344, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.8333740234375, - 143.92762756347656, - 466.5205993652344, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 492.6341552734375, - 151.384033203125 - ], - "bbox": [ - 492.6341552734375, - 143.92762756347656, - 495.3213806152344, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.6341552734375, - 143.92762756347656, - 495.3213806152344, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 523.46044921875, - 151.384033203125 - ], - "bbox": [ - 523.46044921875, - 143.92762756347656, - 526.1476440429688, - 153.651611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 523.46044921875, - 143.92762756347656, - 526.1476440429688, - 153.651611328125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Unicoder-VL", - "origin": [ - 96.78300476074219, - 159.45404052734375 - ], - "bbox": [ - 96.78300476074219, - 151.9976348876953, - 140.0930938720703, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 151.9976348876953, - 140.0930938720703, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~925", - "origin": [ - 156.97491455078125, - 159.45404052734375 - ], - "bbox": [ - 156.97491455078125, - 151.9976348876953, - 173.44517517089844, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.97491455078125, - 151.9976348876953, - 173.44517517089844, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "64.3", - "origin": [ - 186.76824951171875, - 159.45404052734375 - ], - "bbox": [ - 186.76824951171875, - 151.9976348876953, - 200.89022827148438, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.76824951171875, - 151.9976348876953, - 200.89022827148438, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.8", - "origin": [ - 215.5690155029297, - 159.45404052734375 - ], - "bbox": [ - 215.5690155029297, - 151.9976348876953, - 229.6909942626953, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.5690155029297, - 151.9976348876953, - 229.6909942626953, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.3", - "origin": [ - 246.39527893066406, - 159.45404052734375 - ], - "bbox": [ - 246.39527893066406, - 151.9976348876953, - 260.5172424316406, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.39527893066406, - 151.9976348876953, - 260.5172424316406, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 282.93487548828125, - 159.45404052734375 - ], - "bbox": [ - 282.93487548828125, - 151.9976348876953, - 285.6221008300781, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.93487548828125, - 151.9976348876953, - 285.6221008300781, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 311.73565673828125, - 159.45404052734375 - ], - "bbox": [ - 311.73565673828125, - 151.9976348876953, - 314.4228820800781, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.73565673828125, - 151.9976348876953, - 314.4228820800781, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 342.5619201660156, - 159.45404052734375 - ], - "bbox": [ - 342.5619201660156, - 151.9976348876953, - 345.2491455078125, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.5619201660156, - 151.9976348876953, - 345.2491455078125, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "48.4", - "origin": [ - 367.6667785644531, - 159.45404052734375 - ], - "bbox": [ - 367.6667785644531, - 151.9976348876953, - 381.78875732421875, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.6667785644531, - 151.9976348876953, - 381.78875732421875, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "76.0", - "origin": [ - 396.467529296875, - 159.45404052734375 - ], - "bbox": [ - 396.467529296875, - 151.9976348876953, - 410.5895080566406, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.467529296875, - 151.9976348876953, - 410.5895080566406, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.2", - "origin": [ - 427.2937927246094, - 159.45404052734375 - ], - "bbox": [ - 427.2937927246094, - 151.9976348876953, - 441.415771484375, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.2937927246094, - 151.9976348876953, - 441.415771484375, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 463.8334045410156, - 159.45404052734375 - ], - "bbox": [ - 463.8334045410156, - 151.9976348876953, - 466.5206298828125, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.8334045410156, - 151.9976348876953, - 466.5206298828125, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 492.6341857910156, - 159.45404052734375 - ], - "bbox": [ - 492.6341857910156, - 151.9976348876953, - 495.3214111328125, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.6341857910156, - 151.9976348876953, - 495.3214111328125, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 523.46044921875, - 159.45404052734375 - ], - "bbox": [ - 523.46044921875, - 151.9976348876953, - 526.1476440429688, - 161.72161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 523.46044921875, - 151.9976348876953, - 526.1476440429688, - 161.72161865234375 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "UNITER-Base", - "origin": [ - 96.78300476074219, - 167.5240478515625 - ], - "bbox": [ - 96.78300476074219, - 160.06764221191406, - 144.74124145507812, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 160.06764221191406, - 144.74124145507812, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 156.97491455078125, - 167.5240478515625 - ], - "bbox": [ - 156.97491455078125, - 160.06764221191406, - 173.44517517089844, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.97491455078125, - 160.06764221191406, - 173.44517517089844, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.7", - "origin": [ - 186.76824951171875, - 167.5240478515625 - ], - "bbox": [ - 186.76824951171875, - 160.06764221191406, - 200.89022827148438, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.76824951171875, - 160.06764221191406, - 200.89022827148438, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.7", - "origin": [ - 215.5690155029297, - 167.5240478515625 - ], - "bbox": [ - 215.5690155029297, - 160.06764221191406, - 229.6909942626953, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.5690155029297, - 160.06764221191406, - 229.6909942626953, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "98.0", - "origin": [ - 246.39527893066406, - 167.5240478515625 - ], - "bbox": [ - 246.39527893066406, - 160.06764221191406, - 260.5172424316406, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.39527893066406, - 160.06764221191406, - 260.5172424316406, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 282.93487548828125, - 167.5240478515625 - ], - "bbox": [ - 282.93487548828125, - 160.06764221191406, - 285.6221008300781, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.93487548828125, - 160.06764221191406, - 285.6221008300781, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 311.73565673828125, - 167.5240478515625 - ], - "bbox": [ - 311.73565673828125, - 160.06764221191406, - 314.4228820800781, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.73565673828125, - 160.06764221191406, - 314.4228820800781, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 342.5619201660156, - 167.5240478515625 - ], - "bbox": [ - 342.5619201660156, - 160.06764221191406, - 345.2491455078125, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 342.5619201660156, - 160.06764221191406, - 345.2491455078125, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "66.2", - "origin": [ - 367.6667785644531, - 167.5240478515625 - ], - "bbox": [ - 367.6667785644531, - 160.06764221191406, - 381.78875732421875, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.6667785644531, - 160.06764221191406, - 381.78875732421875, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "88.4", - "origin": [ - 396.467529296875, - 167.5240478515625 - ], - "bbox": [ - 396.467529296875, - 160.06764221191406, - 410.5895080566406, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.467529296875, - 160.06764221191406, - 410.5895080566406, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.9", - "origin": [ - 427.2937927246094, - 167.5240478515625 - ], - "bbox": [ - 427.2937927246094, - 160.06764221191406, - 441.415771484375, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.2937927246094, - 160.06764221191406, - 441.415771484375, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 463.8334045410156, - 167.5240478515625 - ], - "bbox": [ - 463.8334045410156, - 160.06764221191406, - 466.5206298828125, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 463.8334045410156, - 160.06764221191406, - 466.5206298828125, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 492.6341857910156, - 167.5240478515625 - ], - "bbox": [ - 492.6341857910156, - 160.06764221191406, - 495.3214111328125, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 492.6341857910156, - 160.06764221191406, - 495.3214111328125, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 523.46044921875, - 167.5240478515625 - ], - "bbox": [ - 523.46044921875, - 160.06764221191406, - 526.1476440429688, - 169.7916259765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 523.46044921875, - 160.06764221191406, - 526.1476440429688, - 169.7916259765625 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ImageBERT", - "origin": [ - 96.78300476074219, - 175.593017578125 - ], - "bbox": [ - 96.78300476074219, - 168.13661193847656, - 137.09117126464844, - 177.860595703125 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†", - "origin": [ - 137.09100341796875, - 173.9520263671875 - ], - "bbox": [ - 137.09100341796875, - 168.73252868652344, - 139.9154052734375, - 175.53933715820312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 168.13661193847656, - 139.9154052734375, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~925", - "origin": [ - 156.97900390625, - 175.593017578125 - ], - "bbox": [ - 156.97900390625, - 168.13661193847656, - 173.4492645263672, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 156.97900390625, - 168.13661193847656, - 173.4492645263672, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.7", - "origin": [ - 186.76426696777344, - 175.593017578125 - ], - "bbox": [ - 186.76426696777344, - 168.13661193847656, - 200.88624572753906, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.76426696777344, - 168.13661193847656, - 200.88624572753906, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "90.2", - "origin": [ - 215.57310485839844, - 175.593017578125 - ], - "bbox": [ - 215.57310485839844, - 168.13661193847656, - 229.69508361816406, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.57310485839844, - 168.13661193847656, - 229.69508361816406, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "94.0", - "origin": [ - 246.39129638671875, - 175.593017578125 - ], - "bbox": [ - 246.39129638671875, - 168.13661193847656, - 260.5132751464844, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.39129638671875, - 168.13661193847656, - 260.5132751464844, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "44.0", - "origin": [ - 277.2175598144531, - 175.593017578125 - ], - "bbox": [ - 277.2175598144531, - 168.13661193847656, - 291.33953857421875, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.2175598144531, - 168.13661193847656, - 291.33953857421875, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.2", - "origin": [ - 306.018310546875, - 175.593017578125 - ], - "bbox": [ - 306.018310546875, - 168.13661193847656, - 320.1402893066406, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.018310546875, - 168.13661193847656, - 320.1402893066406, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.4", - "origin": [ - 336.8445739746094, - 175.593017578125 - ], - "bbox": [ - 336.8445739746094, - 168.13661193847656, - 350.966552734375, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.8445739746094, - 168.13661193847656, - 350.966552734375, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "54.3", - "origin": [ - 367.6627502441406, - 175.593017578125 - ], - "bbox": [ - 367.6627502441406, - 168.13661193847656, - 381.78472900390625, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.6627502441406, - 168.13661193847656, - 381.78472900390625, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "79.6", - "origin": [ - 396.4715881347656, - 175.593017578125 - ], - "bbox": [ - 396.4715881347656, - 168.13661193847656, - 410.59356689453125, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.4715881347656, - 168.13661193847656, - 410.59356689453125, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.5", - "origin": [ - 427.2897644042969, - 175.593017578125 - ], - "bbox": [ - 427.2897644042969, - 168.13661193847656, - 441.4117431640625, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.2897644042969, - 168.13661193847656, - 441.4117431640625, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "32.3", - "origin": [ - 458.11602783203125, - 175.593017578125 - ], - "bbox": [ - 458.11602783203125, - 168.13661193847656, - 472.2380065917969, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.11602783203125, - 168.13661193847656, - 472.2380065917969, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "59.0", - "origin": [ - 486.9167785644531, - 175.593017578125 - ], - "bbox": [ - 486.9167785644531, - 168.13661193847656, - 501.03875732421875, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.9167785644531, - 168.13661193847656, - 501.03875732421875, - 177.860595703125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.2", - "origin": [ - 517.7430419921875, - 175.593017578125 - ], - "bbox": [ - 517.7430419921875, - 168.13661193847656, - 531.864990234375, - 177.860595703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 517.7430419921875, - 168.13661193847656, - 531.864990234375, - 177.860595703125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 6, - "type": 0, - "bbox": [ - 61.63600158691406, - 181.20863342285156, - 531.8651123046875, - 200.75978088378906 - ], - "lines": [ - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Linear", - "origin": [ - 61.63600158691406, - 192.70001220703125 - ], - "bbox": [ - 61.63600158691406, - 185.2436065673828, - 82.69792175292969, - 194.96759033203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.63600158691406, - 185.2436065673828, - 82.69792175292969, - 194.96759033203125 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 96.78300476074219, - 188.6650390625 - ], - "bbox": [ - 96.78300476074219, - 181.20863342285156, - 131.12765502929688, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 181.20863342285156, - 131.12765502929688, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 161.00975036621094, - 188.6650390625 - ], - "bbox": [ - 161.00975036621094, - 181.20863342285156, - 173.44515991210938, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.00975036621094, - 181.20863342285156, - 173.44515991210938, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "69.7", - "origin": [ - 186.7682342529297, - 188.6650390625 - ], - "bbox": [ - 186.7682342529297, - 181.20863342285156, - 200.8902130126953, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.7682342529297, - 181.20863342285156, - 200.8902130126953, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "91.0", - "origin": [ - 215.56900024414062, - 188.6650390625 - ], - "bbox": [ - 215.56900024414062, - 181.20863342285156, - 229.69097900390625, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.56900024414062, - 181.20863342285156, - 229.69097900390625, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.0", - "origin": [ - 246.395263671875, - 188.6650390625 - ], - "bbox": [ - 246.395263671875, - 181.20863342285156, - 260.5172424316406, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.395263671875, - 181.20863342285156, - 260.5172424316406, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "53.4", - "origin": [ - 277.21343994140625, - 188.6650390625 - ], - "bbox": [ - 277.21343994140625, - 181.20863342285156, - 291.3354187011719, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.21343994140625, - 181.20863342285156, - 291.3354187011719, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.7", - "origin": [ - 306.02227783203125, - 188.6650390625 - ], - "bbox": [ - 306.02227783203125, - 181.20863342285156, - 320.1442565917969, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.02227783203125, - 181.20863342285156, - 320.1442565917969, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "88.8", - "origin": [ - 336.8404541015625, - 188.6650390625 - ], - "bbox": [ - 336.8404541015625, - 181.20863342285156, - 350.9624328613281, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.8404541015625, - 181.20863342285156, - 350.9624328613281, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "51.3", - "origin": [ - 367.6667175292969, - 188.6650390625 - ], - "bbox": [ - 367.6667175292969, - 181.20863342285156, - 381.7886962890625, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.6667175292969, - 181.20863342285156, - 381.7886962890625, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "79.9", - "origin": [ - 396.46746826171875, - 188.6650390625 - ], - "bbox": [ - 396.46746826171875, - 181.20863342285156, - 410.5894470214844, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.46746826171875, - 181.20863342285156, - 410.5894470214844, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.9", - "origin": [ - 427.2937316894531, - 188.6650390625 - ], - "bbox": [ - 427.2937316894531, - 181.20863342285156, - 441.41571044921875, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.2937316894531, - 181.20863342285156, - 441.41571044921875, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "37.3", - "origin": [ - 458.1119079589844, - 188.6650390625 - ], - "bbox": [ - 458.1119079589844, - 181.20863342285156, - 472.23388671875, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.1119079589844, - 181.20863342285156, - 472.23388671875, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "67.4", - "origin": [ - 486.9207458496094, - 188.6650390625 - ], - "bbox": [ - 486.9207458496094, - 181.20863342285156, - 501.042724609375, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.9207458496094, - 181.20863342285156, - 501.042724609375, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "79.0", - "origin": [ - 517.7389526367188, - 188.6650390625 - ], - "bbox": [ - 517.7389526367188, - 181.20863342285156, - 531.8609008789062, - 190.9326171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 517.7389526367188, - 181.20863342285156, - 531.8609008789062, - 190.9326171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 96.78300476074219, - 196.73504638671875 - ], - "bbox": [ - 96.78300476074219, - 189.2786407470703, - 131.12765502929688, - 199.00262451171875 - ] - }, - { - "size": 5.648799896240234, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 131.12765502929688, - 196.73504638671875 - ], - "bbox": [ - 131.12765502929688, - 189.6935272216797, - 133.18800354003906, - 198.32235717773438 - ] - }, - { - "size": 5.648799896240234, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "+", - "origin": [ - 133.18800354003906, - 194.91302490234375 - ], - "bbox": [ - 133.18800354003906, - 189.6935272216797, - 136.37393188476562, - 196.50033569335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.78300476074219, - 189.2786407470703, - 136.37393188476562, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 5.97760009765625, - "flags": 6, - "font": "CMSY6", - "color": 0, - "ascender": 0.7860000133514404, - "descender": -0.9480000138282776, - "text": "⃝", - "origin": [ - 131.1280059814453, - 195.093017578125 - ], - "bbox": [ - 131.1280059814453, - 190.39462280273438, - 138.43263244628906, - 200.75978088378906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 131.1280059814453, - 190.39462280273438, - 138.43263244628906, - 200.75978088378906 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 161.01400756835938, - 196.73504638671875 - ], - "bbox": [ - 161.01400756835938, - 189.2786407470703, - 173.4494171142578, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 161.01400756835938, - 189.2786407470703, - 173.4494171142578, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "73.2", - "origin": [ - 186.76441955566406, - 196.73504638671875 - ], - "bbox": [ - 186.76441955566406, - 189.2786407470703, - 200.8863983154297, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 186.76441955566406, - 189.2786407470703, - 200.8863983154297, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "93.6", - "origin": [ - 215.57325744628906, - 196.73504638671875 - ], - "bbox": [ - 215.57325744628906, - 189.2786407470703, - 229.6952362060547, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 215.57325744628906, - 189.2786407470703, - 229.6952362060547, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.5", - "origin": [ - 246.39144897460938, - 196.73504638671875 - ], - "bbox": [ - 246.39144897460938, - 189.2786407470703, - 260.513427734375, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 246.39144897460938, - 189.2786407470703, - 260.513427734375, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "56.5", - "origin": [ - 277.21771240234375, - 196.73504638671875 - ], - "bbox": [ - 277.21771240234375, - 189.2786407470703, - 291.3396911621094, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 277.21771240234375, - 189.2786407470703, - 291.3396911621094, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "82.6", - "origin": [ - 306.0184631347656, - 196.73504638671875 - ], - "bbox": [ - 306.0184631347656, - 189.2786407470703, - 320.14044189453125, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 306.0184631347656, - 189.2786407470703, - 320.14044189453125, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "89.6", - "origin": [ - 336.8447265625, - 196.73504638671875 - ], - "bbox": [ - 336.8447265625, - 189.2786407470703, - 350.9667053222656, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 336.8447265625, - 189.2786407470703, - 350.9667053222656, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "55.0", - "origin": [ - 367.66290283203125, - 196.73504638671875 - ], - "bbox": [ - 367.66290283203125, - 189.2786407470703, - 381.7848815917969, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 367.66290283203125, - 189.2786407470703, - 381.7848815917969, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "82.5", - "origin": [ - 396.47174072265625, - 196.73504638671875 - ], - "bbox": [ - 396.47174072265625, - 189.2786407470703, - 410.5937194824219, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 396.47174072265625, - 189.2786407470703, - 410.5937194824219, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "89.8", - "origin": [ - 427.2899169921875, - 196.73504638671875 - ], - "bbox": [ - 427.2899169921875, - 189.2786407470703, - 441.4118957519531, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.2899169921875, - 189.2786407470703, - 441.4118957519531, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "40.4", - "origin": [ - 458.1161804199219, - 196.73504638671875 - ], - "bbox": [ - 458.1161804199219, - 189.2786407470703, - 472.2381591796875, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.1161804199219, - 189.2786407470703, - 472.2381591796875, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.0", - "origin": [ - 486.91693115234375, - 196.73504638671875 - ], - "bbox": [ - 486.91693115234375, - 189.2786407470703, - 501.0389099121094, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.91693115234375, - 189.2786407470703, - 501.0389099121094, - 199.00262451171875 - ] - }, - { - "spans": [ - { - "size": 8.069700241088867, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "81.1", - "origin": [ - 517.7431640625, - 196.73504638671875 - ], - "bbox": [ - 517.7431640625, - 189.2786407470703, - 531.8651123046875, - 199.00262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 517.7431640625, - 189.2786407470703, - 531.8651123046875, - 199.00262451171875 - ] - } - ], - "tag": "on-table" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 54.893001556396484, - 214.4070587158203, - 542.1132202148438, - 253.19882202148438 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 6, - "font": "NimbusRomNo9L-Regu-Slant", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Table 4.", - "origin": [ - 54.893001556396484, - 222.6920166015625 - ], - "bbox": [ - 54.893001556396484, - 214.4070587158203, - 83.55857849121094, - 225.21157836914062 - ] - }, - { - "size": 9.055620193481445, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " Comparison of ViLT-B/32 with other models on downstream retrieval tasks. We use SCAN for w/o VLP SOTA results.", - "origin": [ - 83.55857849121094, - 222.6920166015625 - ], - "bbox": [ - 83.55857849121094, - 214.4070587158203, - 532.8981323242188, - 225.21157836914062 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " †", - "origin": [ - 532.8981323242188, - 222.6920166015625 - ], - "bbox": [ - 532.8981323242188, - 214.4070587158203, - 542.1132202148438, - 225.21157836914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 54.893001556396484, - 214.4070587158203, - 542.1132202148438, - 225.21157836914062 - ] - }, - { - "spans": [ - { - "size": 9.024493217468262, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "additionally used GQA, VQAv2, VG-QA for pre-training.", - "origin": [ - 55.439998626708984, - 233.6510009765625 - ], - "bbox": [ - 55.439998626708984, - 225.3660430908203, - 266.11944580078125, - 236.17056274414062 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ‡", - "origin": [ - 266.11944580078125, - 233.6510009765625 - ], - "bbox": [ - 266.11944580078125, - 225.3660430908203, - 273.3831787109375, - 236.17056274414062 - ] - }, - { - "size": 9.024493217468262, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " additionally used the Open Images dataset.", - "origin": [ - 273.3831787109375, - 233.6510009765625 - ], - "bbox": [ - 273.3831787109375, - 225.3660430908203, - 431.3805236816406, - 236.17056274414062 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " a", - "origin": [ - 431.3805236816406, - 233.6510009765625 - ], - "bbox": [ - 431.3805236816406, - 225.0950469970703, - 440.7660827636719, - 236.17056274414062 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMSY9", - "color": 0, - "ascender": 0.7770000100135803, - "descender": -0.9580000042915344, - "text": "⃝", - "origin": [ - 434.1679992675781, - 233.6510009765625 - ], - "bbox": [ - 434.1679992675781, - 226.68411254882812, - 443.3764953613281, - 242.24081420898438 - ] - }, - { - "size": 9.024493217468262, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " indicates RandAugment is", - "origin": [ - 443.3764953613281, - 233.6510009765625 - ], - "bbox": [ - 443.3764953613281, - 225.3660430908203, - 541.4431762695312, - 236.17056274414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 225.0950469970703, - 541.4431762695312, - 242.24081420898438 - ] - }, - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "applied during fine-tuning. +", - "origin": [ - 55.439998626708984, - 244.6090087890625 - ], - "bbox": [ - 55.439998626708984, - 236.0540313720703, - 161.24205017089844, - 247.12857055664062 - ] - }, - { - "size": 8.966400146484375, - "flags": 6, - "font": "CMSY9", - "color": 0, - "ascender": 0.7770000100135803, - "descender": -0.9580000042915344, - "text": "⃝", - "origin": [ - 154.1060028076172, - 244.6090087890625 - ], - "bbox": [ - 154.1060028076172, - 237.64212036132812, - 163.3144989013672, - 253.19882202148438 - ] - }, - { - "size": 8.966400146484375, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " indicates model trained for a longer 200K pre-training steps.", - "origin": [ - 163.3144989013672, - 244.6090087890625 - ], - "bbox": [ - 163.3144989013672, - 236.3240509033203, - 382.4602355957031, - 247.12857055664062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 55.439998626708984, - 236.0540313720703, - 382.4602355957031, - 253.19882202148438 - ] - } - ], - "tag": "on-table" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 61.90599822998047, - 257.89068603515625, - 181.26605224609375, - 275.5896911621094 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Visual", - "origin": [ - 61.90599822998047, - 265.07098388671875 - ], - "bbox": [ - 61.90599822998047, - 257.89068603515625, - 81.72956085205078, - 267.2546081542969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.90599822998047, - 257.89068603515625, - 81.72956085205078, - 267.2546081542969 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Embed", - "origin": [ - 61.90599822998047, - 273.406005859375 - ], - "bbox": [ - 61.90599822998047, - 266.2257080078125, - 83.92095947265625, - 275.5896301269531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.90599822998047, - 266.2257080078125, - 83.92095947265625, - 275.5896301269531 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Model", - "origin": [ - 96.19499969482422, - 269.32403564453125 - ], - "bbox": [ - 96.19499969482422, - 262.14373779296875, - 116.48482513427734, - 271.5076599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 262.14373779296875, - 116.48482513427734, - 271.5076599121094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Time", - "origin": [ - 165.13299560546875, - 265.071044921875 - ], - "bbox": [ - 165.13299560546875, - 257.8907470703125, - 181.265380859375, - 267.2546691894531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.13299560546875, - 257.8907470703125, - 181.265380859375, - 267.2546691894531 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "(ms)", - "origin": [ - 167.02200317382812, - 273.40606689453125 - ], - "bbox": [ - 167.02200317382812, - 266.22576904296875, - 181.26605224609375, - 275.5896911621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 167.02200317382812, - 266.22576904296875, - 181.26605224609375, - 275.5896911621094 - ] - } - ], - "tag": "on-table" - }, - { - "number": 9, - "type": 0, - "bbox": [ - 193.22000122070312, - 254.3727264404297, - 534.976318359375, - 279.2786560058594 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Text Retrieval", - "origin": [ - 253.85800170898438, - 261.55303955078125 - ], - "bbox": [ - 253.85800170898438, - 254.3727264404297, - 297.4837951660156, - 263.7366638183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 253.85800170898438, - 254.3727264404297, - 297.4837951660156, - 263.7366638183594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Image Retrieval", - "origin": [ - 427.79400634765625, - 261.55303955078125 - ], - "bbox": [ - 427.79400634765625, - 254.3727264404297, - 477.2557678222656, - 263.7366638183594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 427.79400634765625, - 254.3727264404297, - 477.2557678222656, - 263.7366638183594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Flickr30k (1K)", - "origin": [ - 208.03900146484375, - 269.32403564453125 - ], - "bbox": [ - 208.03900146484375, - 262.14373779296875, - 254.8742218017578, - 271.5076599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 208.03900146484375, - 262.14373779296875, - 254.8742218017578, - 271.5076599121094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MSCOCO (5K)", - "origin": [ - 295.1663513183594, - 269.32403564453125 - ], - "bbox": [ - 295.1663513183594, - 262.14373779296875, - 344.5970458984375, - 271.5076599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 295.1663513183594, - 262.14373779296875, - 344.5970458984375, - 271.5076599121094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Flickr30k (1K)", - "origin": [ - 384.8969421386719, - 269.32403564453125 - ], - "bbox": [ - 384.8969421386719, - 262.14373779296875, - 431.7320861816406, - 271.5076599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 384.8969421386719, - 262.14373779296875, - 431.7320861816406, - 271.5076599121094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "MSCOCO (5K)", - "origin": [ - 472.0242004394531, - 269.32403564453125 - ], - "bbox": [ - 472.0242004394531, - 262.14373779296875, - 521.4548950195312, - 271.5076599121094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 472.0242004394531, - 262.14373779296875, - 521.4548950195312, - 271.5076599121094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 193.22000122070312, - 277.09503173828125 - ], - "bbox": [ - 193.22000122070312, - 269.91473388671875, - 209.44564819335938, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 193.22000122070312, - 269.91473388671875, - 209.44564819335938, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 221.3972930908203, - 277.09503173828125 - ], - "bbox": [ - 221.3972930908203, - 269.91473388671875, - 237.62294006347656, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 221.3972930908203, - 269.91473388671875, - 237.62294006347656, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 249.5823516845703, - 277.09503173828125 - ], - "bbox": [ - 249.5823516845703, - 269.91473388671875, - 269.69342041015625, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 249.5823516845703, - 269.91473388671875, - 269.69342041015625, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 281.6450500488281, - 277.09503173828125 - ], - "bbox": [ - 281.6450500488281, - 269.91473388671875, - 297.8706970214844, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 281.6450500488281, - 269.91473388671875, - 297.8706970214844, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 309.8301086425781, - 277.09503173828125 - ], - "bbox": [ - 309.8301086425781, - 269.91473388671875, - 326.0557556152344, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 309.8301086425781, - 269.91473388671875, - 326.0557556152344, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 338.00738525390625, - 277.09503173828125 - ], - "bbox": [ - 338.00738525390625, - 269.91473388671875, - 358.11846923828125, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 338.00738525390625, - 269.91473388671875, - 358.11846923828125, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 370.077880859375, - 277.09503173828125 - ], - "bbox": [ - 370.077880859375, - 269.91473388671875, - 386.30352783203125, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 370.077880859375, - 269.91473388671875, - 386.30352783203125, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 398.2551574707031, - 277.09503173828125 - ], - "bbox": [ - 398.2551574707031, - 269.91473388671875, - 414.4808044433594, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 398.2551574707031, - 269.91473388671875, - 414.4808044433594, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 426.4402160644531, - 277.09503173828125 - ], - "bbox": [ - 426.4402160644531, - 269.91473388671875, - 446.5513000488281, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 426.4402160644531, - 269.91473388671875, - 446.5513000488281, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@1", - "origin": [ - 458.5029296875, - 277.09503173828125 - ], - "bbox": [ - 458.5029296875, - 269.91473388671875, - 474.72857666015625, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 458.5029296875, - 269.91473388671875, - 474.72857666015625, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@5", - "origin": [ - 486.6802062988281, - 277.09503173828125 - ], - "bbox": [ - 486.6802062988281, - 269.91473388671875, - 502.9058532714844, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 486.6802062988281, - 269.91473388671875, - 502.9058532714844, - 279.2786560058594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "R@10", - "origin": [ - 514.8652954101562, - 277.09503173828125 - ], - "bbox": [ - 514.8652954101562, - 269.91473388671875, - 534.976318359375, - 279.2786560058594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 514.8652954101562, - 269.91473388671875, - 534.976318359375, - 279.2786560058594 - ] - } - ], - "tag": "on-table" - }, - { - "number": 10, - "type": 0, - "bbox": [ - 61.90599822998047, - 302.1147155761719, - 84.23957061767578, - 311.4786376953125 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Region", - "origin": [ - 61.90599822998047, - 309.2950134277344 - ], - "bbox": [ - 61.90599822998047, - 302.1147155761719, - 84.23957061767578, - 311.4786376953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.90599822998047, - 302.1147155761719, - 84.23957061767578, - 311.4786376953125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 11, - "type": 0, - "bbox": [ - 96.19499969482422, - 282.68670654296875, - 531.7224731445312, - 330.9056091308594 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "w/o VLP SOTA", - "origin": [ - 96.19499969482422, - 289.86700439453125 - ], - "bbox": [ - 96.19499969482422, - 282.68670654296875, - 145.67233276367188, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 282.68670654296875, - 145.67233276367188, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 165.40264892578125, - 289.86700439453125 - ], - "bbox": [ - 165.40264892578125, - 282.68670654296875, - 181.2630615234375, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.40264892578125, - 282.68670654296875, - 181.2630615234375, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "67.4", - "origin": [ - 194.5357666015625, - 289.86700439453125 - ], - "bbox": [ - 194.5357666015625, - 282.68670654296875, - 208.1348419189453, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.5357666015625, - 282.68670654296875, - 208.1348419189453, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "90.3", - "origin": [ - 222.71304321289062, - 289.86700439453125 - ], - "bbox": [ - 222.71304321289062, - 282.68670654296875, - 236.31211853027344, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.71304321289062, - 282.68670654296875, - 236.31211853027344, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.8", - "origin": [ - 252.8408203125, - 289.86700439453125 - ], - "bbox": [ - 252.8408203125, - 282.68670654296875, - 266.4398498535156, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.8408203125, - 282.68670654296875, - 266.4398498535156, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "50.4", - "origin": [ - 282.9607849121094, - 289.86700439453125 - ], - "bbox": [ - 282.9607849121094, - 282.68670654296875, - 296.559814453125, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.9607849121094, - 282.68670654296875, - 296.559814453125, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "82.2", - "origin": [ - 311.1457824707031, - 289.86700439453125 - ], - "bbox": [ - 311.1457824707031, - 282.68670654296875, - 324.74481201171875, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.1457824707031, - 282.68670654296875, - 324.74481201171875, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "90.0", - "origin": [ - 341.2657470703125, - 289.86700439453125 - ], - "bbox": [ - 341.2657470703125, - 282.68670654296875, - 354.8647766113281, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657470703125, - 282.68670654296875, - 354.8647766113281, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "48.6", - "origin": [ - 371.3857116699219, - 289.86700439453125 - ], - "bbox": [ - 371.3857116699219, - 282.68670654296875, - 384.9847412109375, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.3857116699219, - 282.68670654296875, - 384.9847412109375, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "77.7", - "origin": [ - 399.5707092285156, - 289.86700439453125 - ], - "bbox": [ - 399.5707092285156, - 282.68670654296875, - 413.16973876953125, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5707092285156, - 282.68670654296875, - 413.16973876953125, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.2", - "origin": [ - 429.690673828125, - 289.86700439453125 - ], - "bbox": [ - 429.690673828125, - 282.68670654296875, - 443.2897033691406, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.690673828125, - 282.68670654296875, - 443.2897033691406, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "38.6", - "origin": [ - 459.81842041015625, - 289.86700439453125 - ], - "bbox": [ - 459.81842041015625, - 282.68670654296875, - 473.4174499511719, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.81842041015625, - 282.68670654296875, - 473.4174499511719, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "69.3", - "origin": [ - 487.99566650390625, - 289.86700439453125 - ], - "bbox": [ - 487.99566650390625, - 282.68670654296875, - 501.5946960449219, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.99566650390625, - 282.68670654296875, - 501.5946960449219, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.4", - "origin": [ - 518.1234130859375, - 289.86700439453125 - ], - "bbox": [ - 518.1234130859375, - 282.68670654296875, - 531.7224731445312, - 292.0506286621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1234130859375, - 282.68670654296875, - 531.7224731445312, - 292.0506286621094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLBERT-Base", - "origin": [ - 96.19499969482422, - 297.63800048828125 - ], - "bbox": [ - 96.19499969482422, - 290.45770263671875, - 144.6232452392578, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 290.45770263671875, - 144.6232452392578, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~920", - "origin": [ - 165.4026336669922, - 297.63800048828125 - ], - "bbox": [ - 165.4026336669922, - 290.45770263671875, - 181.26304626464844, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.4026336669922, - 290.45770263671875, - 181.26304626464844, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 200.03753662109375, - 297.63800048828125 - ], - "bbox": [ - 200.03753662109375, - 290.45770263671875, - 202.625244140625, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.03753662109375, - 290.45770263671875, - 202.625244140625, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 228.22259521484375, - 297.63800048828125 - ], - "bbox": [ - 228.22259521484375, - 290.45770263671875, - 230.810302734375, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.22259521484375, - 290.45770263671875, - 230.810302734375, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 258.34259033203125, - 297.63800048828125 - ], - "bbox": [ - 258.34259033203125, - 290.45770263671875, - 260.9302978515625, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.34259033203125, - 290.45770263671875, - 260.9302978515625, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 288.4703674316406, - 297.63800048828125 - ], - "bbox": [ - 288.4703674316406, - 290.45770263671875, - 291.0580749511719, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 288.4703674316406, - 290.45770263671875, - 291.0580749511719, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 316.64764404296875, - 297.63800048828125 - ], - "bbox": [ - 316.64764404296875, - 290.45770263671875, - 319.2353515625, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 316.64764404296875, - 290.45770263671875, - 319.2353515625, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 346.76763916015625, - 297.63800048828125 - ], - "bbox": [ - 346.76763916015625, - 290.45770263671875, - 349.3553466796875, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 346.76763916015625, - 290.45770263671875, - 349.3553466796875, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "58.2", - "origin": [ - 371.3858337402344, - 297.63800048828125 - ], - "bbox": [ - 371.3858337402344, - 290.45770263671875, - 384.98486328125, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.3858337402344, - 290.45770263671875, - 384.98486328125, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "84.9", - "origin": [ - 399.5708312988281, - 297.63800048828125 - ], - "bbox": [ - 399.5708312988281, - 290.45770263671875, - 413.16986083984375, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5708312988281, - 290.45770263671875, - 413.16986083984375, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "91.5", - "origin": [ - 429.6907958984375, - 297.63800048828125 - ], - "bbox": [ - 429.6907958984375, - 290.45770263671875, - 443.2898254394531, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.6907958984375, - 290.45770263671875, - 443.2898254394531, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 465.3203125, - 297.63800048828125 - ], - "bbox": [ - 465.3203125, - 290.45770263671875, - 467.90802001953125, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 465.3203125, - 290.45770263671875, - 467.90802001953125, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 493.50537109375, - 297.63800048828125 - ], - "bbox": [ - 493.50537109375, - 290.45770263671875, - 496.09307861328125, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 493.50537109375, - 290.45770263671875, - 496.09307861328125, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 523.6253662109375, - 297.63800048828125 - ], - "bbox": [ - 523.6253662109375, - 290.45770263671875, - 526.2130737304688, - 299.8216247558594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 523.6253662109375, - 290.45770263671875, - 526.2130737304688, - 299.8216247558594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Unicoder-VL", - "origin": [ - 96.19499969482422, - 305.40899658203125 - ], - "bbox": [ - 96.19499969482422, - 298.22869873046875, - 137.9014129638672, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 298.22869873046875, - 137.9014129638672, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~925", - "origin": [ - 165.4026336669922, - 305.40899658203125 - ], - "bbox": [ - 165.4026336669922, - 298.22869873046875, - 181.26304626464844, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.4026336669922, - 298.22869873046875, - 181.26304626464844, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "86.2", - "origin": [ - 194.53573608398438, - 305.40899658203125 - ], - "bbox": [ - 194.53573608398438, - 298.22869873046875, - 208.1348114013672, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.53573608398438, - 298.22869873046875, - 208.1348114013672, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.3", - "origin": [ - 222.7130126953125, - 305.40899658203125 - ], - "bbox": [ - 222.7130126953125, - 298.22869873046875, - 236.3120880126953, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.7130126953125, - 298.22869873046875, - 236.3120880126953, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "99.0", - "origin": [ - 252.84078979492188, - 305.40899658203125 - ], - "bbox": [ - 252.84078979492188, - 298.22869873046875, - 266.4398193359375, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.84078979492188, - 298.22869873046875, - 266.4398193359375, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "62.3", - "origin": [ - 282.96075439453125, - 305.40899658203125 - ], - "bbox": [ - 282.96075439453125, - 298.22869873046875, - 296.5597839355469, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96075439453125, - 298.22869873046875, - 296.5597839355469, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.1", - "origin": [ - 311.145751953125, - 305.40899658203125 - ], - "bbox": [ - 311.145751953125, - 298.22869873046875, - 324.7447814941406, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.145751953125, - 298.22869873046875, - 324.7447814941406, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.8", - "origin": [ - 341.2657165527344, - 305.40899658203125 - ], - "bbox": [ - 341.2657165527344, - 298.22869873046875, - 354.86474609375, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657165527344, - 298.22869873046875, - 354.86474609375, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.5", - "origin": [ - 371.38568115234375, - 305.40899658203125 - ], - "bbox": [ - 371.38568115234375, - 298.22869873046875, - 384.9847106933594, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.38568115234375, - 298.22869873046875, - 384.9847106933594, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "91.2", - "origin": [ - 399.5706787109375, - 305.40899658203125 - ], - "bbox": [ - 399.5706787109375, - 298.22869873046875, - 413.1697082519531, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5706787109375, - 298.22869873046875, - 413.1697082519531, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.2", - "origin": [ - 429.6906433105469, - 305.40899658203125 - ], - "bbox": [ - 429.6906433105469, - 298.22869873046875, - 443.2896728515625, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.6906433105469, - 298.22869873046875, - 443.2896728515625, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "48.4", - "origin": [ - 459.8183898925781, - 305.40899658203125 - ], - "bbox": [ - 459.8183898925781, - 298.22869873046875, - 473.41741943359375, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8183898925781, - 298.22869873046875, - 473.41741943359375, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "76.7", - "origin": [ - 487.9956359863281, - 305.40899658203125 - ], - "bbox": [ - 487.9956359863281, - 298.22869873046875, - 501.59466552734375, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9956359863281, - 298.22869873046875, - 501.59466552734375, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.9", - "origin": [ - 518.1233520507812, - 305.40899658203125 - ], - "bbox": [ - 518.1233520507812, - 298.22869873046875, - 531.722412109375, - 307.5926208496094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1233520507812, - 298.22869873046875, - 531.722412109375, - 307.5926208496094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "UNITER-Base", - "origin": [ - 96.19499969482422, - 313.17999267578125 - ], - "bbox": [ - 96.19499969482422, - 305.99969482421875, - 142.37745666503906, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 305.99969482421875, - 142.37745666503906, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 165.4026336669922, - 313.17999267578125 - ], - "bbox": [ - 165.4026336669922, - 305.99969482421875, - 181.26304626464844, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.4026336669922, - 305.99969482421875, - 181.26304626464844, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.9", - "origin": [ - 194.53573608398438, - 313.17999267578125 - ], - "bbox": [ - 194.53573608398438, - 305.99969482421875, - 208.1348114013672, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.53573608398438, - 305.99969482421875, - 208.1348114013672, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "97.1", - "origin": [ - 222.7130126953125, - 313.17999267578125 - ], - "bbox": [ - 222.7130126953125, - 305.99969482421875, - 236.3120880126953, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.7130126953125, - 305.99969482421875, - 236.3120880126953, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "98.8", - "origin": [ - 252.84078979492188, - 313.17999267578125 - ], - "bbox": [ - 252.84078979492188, - 305.99969482421875, - 266.4398193359375, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.84078979492188, - 305.99969482421875, - 266.4398193359375, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "64.4", - "origin": [ - 282.96075439453125, - 313.17999267578125 - ], - "bbox": [ - 282.96075439453125, - 305.99969482421875, - 296.5597839355469, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96075439453125, - 305.99969482421875, - 296.5597839355469, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.4", - "origin": [ - 311.145751953125, - 313.17999267578125 - ], - "bbox": [ - 311.145751953125, - 305.99969482421875, - 324.7447814941406, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.145751953125, - 305.99969482421875, - 324.7447814941406, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "93.1", - "origin": [ - 341.2657165527344, - 313.17999267578125 - ], - "bbox": [ - 341.2657165527344, - 305.99969482421875, - 354.86474609375, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657165527344, - 305.99969482421875, - 354.86474609375, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.5", - "origin": [ - 371.38568115234375, - 313.17999267578125 - ], - "bbox": [ - 371.38568115234375, - 305.99969482421875, - 384.9847106933594, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.38568115234375, - 305.99969482421875, - 384.9847106933594, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.4", - "origin": [ - 399.5706787109375, - 313.17999267578125 - ], - "bbox": [ - 399.5706787109375, - 305.99969482421875, - 413.1697082519531, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5706787109375, - 305.99969482421875, - 413.1697082519531, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.1", - "origin": [ - 429.6906433105469, - 313.17999267578125 - ], - "bbox": [ - 429.6906433105469, - 305.99969482421875, - 443.2896728515625, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.6906433105469, - 305.99969482421875, - 443.2896728515625, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "50.3", - "origin": [ - 459.8183898925781, - 313.17999267578125 - ], - "bbox": [ - 459.8183898925781, - 305.99969482421875, - 473.41741943359375, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8183898925781, - 305.99969482421875, - 473.41741943359375, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "78.5", - "origin": [ - 487.9956359863281, - 313.17999267578125 - ], - "bbox": [ - 487.9956359863281, - 305.99969482421875, - 501.59466552734375, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9956359863281, - 305.99969482421875, - 501.59466552734375, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.2", - "origin": [ - 518.1233520507812, - 313.17999267578125 - ], - "bbox": [ - 518.1233520507812, - 305.99969482421875, - 531.722412109375, - 315.3636169433594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1233520507812, - 305.99969482421875, - 531.722412109375, - 315.3636169433594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "OSCAR-Base", - "origin": [ - 96.19499969482422, - 320.95098876953125 - ], - "bbox": [ - 96.19499969482422, - 313.77069091796875, - 139.79751586914062, - 323.1346130371094 - ] - }, - { - "size": 5.439599990844727, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†", - "origin": [ - 139.79600524902344, - 319.3699951171875 - ], - "bbox": [ - 139.79600524902344, - 314.34381103515625, - 142.51580810546875, - 320.8985290527344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 313.77069091796875, - 142.51580810546875, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~900", - "origin": [ - 165.40499877929688, - 320.95098876953125 - ], - "bbox": [ - 165.40499877929688, - 313.77069091796875, - 181.26541137695312, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.40499877929688, - 313.77069091796875, - 181.26541137695312, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 200.03990173339844, - 320.95098876953125 - ], - "bbox": [ - 200.03990173339844, - 313.77069091796875, - 202.6276092529297, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.03990173339844, - 313.77069091796875, - 202.6276092529297, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 228.21717834472656, - 320.95098876953125 - ], - "bbox": [ - 228.21717834472656, - 313.77069091796875, - 230.8048858642578, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.21717834472656, - 313.77069091796875, - 230.8048858642578, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 258.344970703125, - 320.95098876953125 - ], - "bbox": [ - 258.344970703125, - 313.77069091796875, - 260.93267822265625, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.344970703125, - 313.77069091796875, - 260.93267822265625, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "70.0", - "origin": [ - 282.9631652832031, - 320.95098876953125 - ], - "bbox": [ - 282.9631652832031, - 313.77069091796875, - 296.56219482421875, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.9631652832031, - 313.77069091796875, - 296.56219482421875, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "91.1", - "origin": [ - 311.1404113769531, - 320.95098876953125 - ], - "bbox": [ - 311.1404113769531, - 313.77069091796875, - 324.73944091796875, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.1404113769531, - 313.77069091796875, - 324.73944091796875, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.5", - "origin": [ - 341.2681579589844, - 320.95098876953125 - ], - "bbox": [ - 341.2681579589844, - 313.77069091796875, - 354.8671875, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2681579589844, - 313.77069091796875, - 354.8671875, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 376.8976745605469, - 320.95098876953125 - ], - "bbox": [ - 376.8976745605469, - 313.77069091796875, - 379.4853820800781, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.8976745605469, - 313.77069091796875, - 379.4853820800781, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 405.074951171875, - 320.95098876953125 - ], - "bbox": [ - 405.074951171875, - 313.77069091796875, - 407.66265869140625, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 405.074951171875, - 313.77069091796875, - 407.66265869140625, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 435.1949462890625, - 320.95098876953125 - ], - "bbox": [ - 435.1949462890625, - 313.77069091796875, - 437.78265380859375, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.1949462890625, - 313.77069091796875, - 437.78265380859375, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "54.0", - "origin": [ - 459.8131408691406, - 320.95098876953125 - ], - "bbox": [ - 459.8131408691406, - 313.77069091796875, - 473.41217041015625, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8131408691406, - 313.77069091796875, - 473.41217041015625, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.8", - "origin": [ - 487.9981384277344, - 320.95098876953125 - ], - "bbox": [ - 487.9981384277344, - 313.77069091796875, - 501.59716796875, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9981384277344, - 313.77069091796875, - 501.59716796875, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "88.5", - "origin": [ - 518.1181030273438, - 320.95098876953125 - ], - "bbox": [ - 518.1181030273438, - 313.77069091796875, - 531.7171630859375, - 323.1346130371094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1181030273438, - 313.77069091796875, - 531.7171630859375, - 323.1346130371094 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "VinVL-Base", - "origin": [ - 96.19499969482422, - 328.72198486328125 - ], - "bbox": [ - 96.19499969482422, - 321.54168701171875, - 135.4380340576172, - 330.9056091308594 - ] - }, - { - "size": 5.439599990844727, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "†‡", - "origin": [ - 135.43699645996094, - 327.1409912109375 - ], - "bbox": [ - 135.43699645996094, - 322.11480712890625, - 140.87660217285156, - 328.6695251464844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 321.54168701171875, - 140.87660217285156, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~650", - "origin": [ - 165.40499877929688, - 328.72198486328125 - ], - "bbox": [ - 165.40499877929688, - 321.54168701171875, - 181.26541137695312, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.40499877929688, - 321.54168701171875, - 181.26541137695312, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 200.03990173339844, - 328.72198486328125 - ], - "bbox": [ - 200.03990173339844, - 321.54168701171875, - 202.6276092529297, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 200.03990173339844, - 321.54168701171875, - 202.6276092529297, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 228.21717834472656, - 328.72198486328125 - ], - "bbox": [ - 228.21717834472656, - 321.54168701171875, - 230.8048858642578, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 228.21717834472656, - 321.54168701171875, - 230.8048858642578, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 258.344970703125, - 328.72198486328125 - ], - "bbox": [ - 258.344970703125, - 321.54168701171875, - 260.93267822265625, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 258.344970703125, - 321.54168701171875, - 260.93267822265625, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "74.6", - "origin": [ - 282.9631652832031, - 328.72198486328125 - ], - "bbox": [ - 282.9631652832031, - 321.54168701171875, - 296.56219482421875, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.9631652832031, - 321.54168701171875, - 296.56219482421875, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.6", - "origin": [ - 311.1404113769531, - 328.72198486328125 - ], - "bbox": [ - 311.1404113769531, - 321.54168701171875, - 324.73944091796875, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.1404113769531, - 321.54168701171875, - 324.73944091796875, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.3", - "origin": [ - 341.2681579589844, - 328.72198486328125 - ], - "bbox": [ - 341.2681579589844, - 321.54168701171875, - 354.8671875, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2681579589844, - 321.54168701171875, - 354.8671875, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 376.8976745605469, - 328.72198486328125 - ], - "bbox": [ - 376.8976745605469, - 321.54168701171875, - 379.4853820800781, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 376.8976745605469, - 321.54168701171875, - 379.4853820800781, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 405.074951171875, - 328.72198486328125 - ], - "bbox": [ - 405.074951171875, - 321.54168701171875, - 407.66265869140625, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 405.074951171875, - 321.54168701171875, - 407.66265869140625, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "-", - "origin": [ - 435.1949462890625, - 328.72198486328125 - ], - "bbox": [ - 435.1949462890625, - 321.54168701171875, - 437.78265380859375, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 435.1949462890625, - 321.54168701171875, - 437.78265380859375, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "58.1", - "origin": [ - 459.8131408691406, - 328.72198486328125 - ], - "bbox": [ - 459.8131408691406, - 321.54168701171875, - 473.41217041015625, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8131408691406, - 321.54168701171875, - 473.41217041015625, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.2", - "origin": [ - 487.9981384277344, - 328.72198486328125 - ], - "bbox": [ - 487.9981384277344, - 321.54168701171875, - 501.59716796875, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9981384277344, - 321.54168701171875, - 501.59716796875, - 330.9056091308594 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "90.1", - "origin": [ - 518.1181030273438, - 328.72198486328125 - ], - "bbox": [ - 518.1181030273438, - 321.54168701171875, - 531.7171630859375, - 330.9056091308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1181030273438, - 321.54168701171875, - 531.7171630859375, - 330.9056091308594 - ] - } - ], - "tag": "on-table" - }, - { - "number": 12, - "type": 0, - "bbox": [ - 61.90599822998047, - 334.314697265625, - 531.7224731445312, - 351.4486083984375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Grid", - "origin": [ - 61.90599822998047, - 345.3800048828125 - ], - "bbox": [ - 61.90599822998047, - 338.19970703125, - 76.15005493164062, - 347.5636291503906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.90599822998047, - 338.19970703125, - 76.15005493164062, - 347.5636291503906 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Pixel-BERT-X152", - "origin": [ - 96.19499969482422, - 341.4949951171875 - ], - "bbox": [ - 96.19499969482422, - 334.314697265625, - 153.17901611328125, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 334.314697265625, - 153.17901611328125, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~160", - "origin": [ - 165.40264892578125, - 341.4949951171875 - ], - "bbox": [ - 165.40264892578125, - 334.314697265625, - 181.2630615234375, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 165.40264892578125, - 334.314697265625, - 181.2630615234375, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.0", - "origin": [ - 194.5357666015625, - 341.4949951171875 - ], - "bbox": [ - 194.5357666015625, - 334.314697265625, - 208.1348419189453, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.5357666015625, - 334.314697265625, - 208.1348419189453, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "98.9", - "origin": [ - 222.71304321289062, - 341.4949951171875 - ], - "bbox": [ - 222.71304321289062, - 334.314697265625, - 236.31211853027344, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.71304321289062, - 334.314697265625, - 236.31211853027344, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "99.5", - "origin": [ - 252.8408203125, - 341.4949951171875 - ], - "bbox": [ - 252.8408203125, - 334.314697265625, - 266.4398498535156, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.8408203125, - 334.314697265625, - 266.4398498535156, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "63.6", - "origin": [ - 282.9607849121094, - 341.4949951171875 - ], - "bbox": [ - 282.9607849121094, - 334.314697265625, - 296.559814453125, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.9607849121094, - 334.314697265625, - 296.559814453125, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.5", - "origin": [ - 311.1457824707031, - 341.4949951171875 - ], - "bbox": [ - 311.1457824707031, - 334.314697265625, - 324.74481201171875, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.1457824707031, - 334.314697265625, - 324.74481201171875, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "93.6", - "origin": [ - 341.2657470703125, - 341.4949951171875 - ], - "bbox": [ - 341.2657470703125, - 334.314697265625, - 354.8647766113281, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657470703125, - 334.314697265625, - 354.8647766113281, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "71.5", - "origin": [ - 371.3857116699219, - 341.4949951171875 - ], - "bbox": [ - 371.3857116699219, - 334.314697265625, - 384.9847412109375, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.3857116699219, - 334.314697265625, - 384.9847412109375, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.1", - "origin": [ - 399.5707092285156, - 341.4949951171875 - ], - "bbox": [ - 399.5707092285156, - 334.314697265625, - 413.16973876953125, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5707092285156, - 334.314697265625, - 413.16973876953125, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.8", - "origin": [ - 429.690673828125, - 341.4949951171875 - ], - "bbox": [ - 429.690673828125, - 334.314697265625, - 443.2897033691406, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.690673828125, - 334.314697265625, - 443.2897033691406, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "50.1", - "origin": [ - 459.81842041015625, - 341.4949951171875 - ], - "bbox": [ - 459.81842041015625, - 334.314697265625, - 473.4174499511719, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.81842041015625, - 334.314697265625, - 473.4174499511719, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "77.6", - "origin": [ - 487.99566650390625, - 341.4949951171875 - ], - "bbox": [ - 487.99566650390625, - 334.314697265625, - 501.5946960449219, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.99566650390625, - 334.314697265625, - 501.5946960449219, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "86.2", - "origin": [ - 518.1234130859375, - 341.4949951171875 - ], - "bbox": [ - 518.1234130859375, - 334.314697265625, - 531.7224731445312, - 343.6786193847656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1234130859375, - 334.314697265625, - 531.7224731445312, - 343.6786193847656 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Pixel-BERT-R50", - "origin": [ - 96.19499969482422, - 349.2649841308594 - ], - "bbox": [ - 96.19499969482422, - 342.0846862792969, - 148.8661651611328, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 342.0846862792969, - 148.8661651611328, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~60", - "origin": [ - 169.2880859375, - 349.2649841308594 - ], - "bbox": [ - 169.2880859375, - 342.0846862792969, - 181.26304626464844, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.2880859375, - 342.0846862792969, - 181.26304626464844, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "75.7", - "origin": [ - 194.53573608398438, - 349.2649841308594 - ], - "bbox": [ - 194.53573608398438, - 342.0846862792969, - 208.1348114013672, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.53573608398438, - 342.0846862792969, - 208.1348114013672, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "94.7", - "origin": [ - 222.7130126953125, - 349.2649841308594 - ], - "bbox": [ - 222.7130126953125, - 342.0846862792969, - 236.3120880126953, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.7130126953125, - 342.0846862792969, - 236.3120880126953, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "97.1", - "origin": [ - 252.84078979492188, - 349.2649841308594 - ], - "bbox": [ - 252.84078979492188, - 342.0846862792969, - 266.4398193359375, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.84078979492188, - 342.0846862792969, - 266.4398193359375, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "59.8", - "origin": [ - 282.96075439453125, - 349.2649841308594 - ], - "bbox": [ - 282.96075439453125, - 342.0846862792969, - 296.5597839355469, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96075439453125, - 342.0846862792969, - 296.5597839355469, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "85.5", - "origin": [ - 311.145751953125, - 349.2649841308594 - ], - "bbox": [ - 311.145751953125, - 342.0846862792969, - 324.7447814941406, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.145751953125, - 342.0846862792969, - 324.7447814941406, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "91.6", - "origin": [ - 341.2657165527344, - 349.2649841308594 - ], - "bbox": [ - 341.2657165527344, - 342.0846862792969, - 354.86474609375, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657165527344, - 342.0846862792969, - 354.86474609375, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "53.4", - "origin": [ - 371.38568115234375, - 349.2649841308594 - ], - "bbox": [ - 371.38568115234375, - 342.0846862792969, - 384.9847106933594, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.38568115234375, - 342.0846862792969, - 384.9847106933594, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.4", - "origin": [ - 399.5706787109375, - 349.2649841308594 - ], - "bbox": [ - 399.5706787109375, - 342.0846862792969, - 413.1697082519531, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5706787109375, - 342.0846862792969, - 413.1697082519531, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "88.5", - "origin": [ - 429.6906433105469, - 349.2649841308594 - ], - "bbox": [ - 429.6906433105469, - 342.0846862792969, - 443.2896728515625, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.6906433105469, - 342.0846862792969, - 443.2896728515625, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "41.1", - "origin": [ - 459.8183898925781, - 349.2649841308594 - ], - "bbox": [ - 459.8183898925781, - 342.0846862792969, - 473.41741943359375, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8183898925781, - 342.0846862792969, - 473.41741943359375, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "69.7", - "origin": [ - 487.9956359863281, - 349.2649841308594 - ], - "bbox": [ - 487.9956359863281, - 342.0846862792969, - 501.59466552734375, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9956359863281, - 342.0846862792969, - 501.59466552734375, - 351.4486083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "80.5", - "origin": [ - 518.1233520507812, - 349.2649841308594 - ], - "bbox": [ - 518.1233520507812, - 342.0846862792969, - 531.722412109375, - 351.4486083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1233520507812, - 342.0846862792969, - 531.722412109375, - 351.4486083984375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 13, - "type": 0, - "bbox": [ - 61.90599822998047, - 354.8576965332031, - 531.722412109375, - 380.70135498046875 - ], - "lines": [ - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "Linear", - "origin": [ - 61.90599822998047, - 369.8089904785156 - ], - "bbox": [ - 61.90599822998047, - 362.6286926269531, - 82.18804168701172, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 61.90599822998047, - 362.6286926269531, - 82.18804168701172, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 96.19499969482422, - 362.0379943847656 - ], - "bbox": [ - 96.19499969482422, - 354.8576965332031, - 129.2679443359375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 354.8576965332031, - 129.2679443359375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 169.2880859375, - 362.0379943847656 - ], - "bbox": [ - 169.2880859375, - 354.8576965332031, - 181.26304626464844, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.2880859375, - 354.8576965332031, - 181.26304626464844, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "81.4", - "origin": [ - 194.53573608398438, - 362.0379943847656 - ], - "bbox": [ - 194.53573608398438, - 354.8576965332031, - 208.1348114013672, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.53573608398438, - 354.8576965332031, - 208.1348114013672, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "95.6", - "origin": [ - 222.7130126953125, - 362.0379943847656 - ], - "bbox": [ - 222.7130126953125, - 354.8576965332031, - 236.3120880126953, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.7130126953125, - 354.8576965332031, - 236.3120880126953, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "97.6", - "origin": [ - 252.84078979492188, - 362.0379943847656 - ], - "bbox": [ - 252.84078979492188, - 354.8576965332031, - 266.4398193359375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.84078979492188, - 354.8576965332031, - 266.4398193359375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "61.8", - "origin": [ - 282.96075439453125, - 362.0379943847656 - ], - "bbox": [ - 282.96075439453125, - 354.8576965332031, - 296.5597839355469, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96075439453125, - 354.8576965332031, - 296.5597839355469, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "86.2", - "origin": [ - 311.145751953125, - 362.0379943847656 - ], - "bbox": [ - 311.145751953125, - 354.8576965332031, - 324.7447814941406, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.145751953125, - 354.8576965332031, - 324.7447814941406, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.6", - "origin": [ - 341.2657165527344, - 362.0379943847656 - ], - "bbox": [ - 341.2657165527344, - 354.8576965332031, - 354.86474609375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2657165527344, - 354.8576965332031, - 354.86474609375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "61.9", - "origin": [ - 371.38568115234375, - 362.0379943847656 - ], - "bbox": [ - 371.38568115234375, - 354.8576965332031, - 384.9847106933594, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.38568115234375, - 354.8576965332031, - 384.9847106933594, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "86.8", - "origin": [ - 399.5706787109375, - 362.0379943847656 - ], - "bbox": [ - 399.5706787109375, - 354.8576965332031, - 413.1697082519531, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5706787109375, - 354.8576965332031, - 413.1697082519531, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.8", - "origin": [ - 429.6906433105469, - 362.0379943847656 - ], - "bbox": [ - 429.6906433105469, - 354.8576965332031, - 443.2896728515625, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.6906433105469, - 354.8576965332031, - 443.2896728515625, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "41.3", - "origin": [ - 459.8183898925781, - 362.0379943847656 - ], - "bbox": [ - 459.8183898925781, - 354.8576965332031, - 473.41741943359375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8183898925781, - 354.8576965332031, - 473.41741943359375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.0", - "origin": [ - 487.9956359863281, - 362.0379943847656 - ], - "bbox": [ - 487.9956359863281, - 354.8576965332031, - 501.59466552734375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9956359863281, - 354.8576965332031, - 501.59466552734375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "82.5", - "origin": [ - 518.1233520507812, - 362.0379943847656 - ], - "bbox": [ - 518.1233520507812, - 354.8576965332031, - 531.722412109375, - 364.22161865234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1233520507812, - 354.8576965332031, - 531.722412109375, - 364.22161865234375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 96.19499969482422, - 369.8089904785156 - ], - "bbox": [ - 96.19499969482422, - 362.6286926269531, - 129.2679443359375, - 371.99261474609375 - ] - }, - { - "size": 5.439599990844727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 129.2679443359375, - 369.8089904785156 - ], - "bbox": [ - 129.2679443359375, - 363.05181884765625, - 131.4499969482422, - 371.3375244140625 - ] - }, - { - "size": 5.439599990844727, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "a", - "origin": [ - 131.4499969482422, - 368.0780029296875 - ], - "bbox": [ - 131.4499969482422, - 363.05181884765625, - 133.86517333984375, - 369.6065368652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499969482422, - 362.6286926269531, - 133.86517333984375, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 4.981299877166748, - "flags": 6, - "font": "CMSY5", - "color": 0, - "ascender": 0.7910000085830688, - "descender": -0.9440000057220459, - "text": "⃝", - "origin": [ - 129.26699829101562, - 368.22900390625 - ], - "bbox": [ - 129.26699829101562, - 364.2887878417969, - 136.04653930664062, - 372.9313659667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.26699829101562, - 364.2887878417969, - 136.04653930664062, - 372.9313659667969 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 169.2899932861328, - 369.8089904785156 - ], - "bbox": [ - 169.2899932861328, - 362.6286926269531, - 181.26495361328125, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.2899932861328, - 362.6286926269531, - 181.26495361328125, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.7", - "origin": [ - 194.52987670898438, - 369.8089904785156 - ], - "bbox": [ - 194.52987670898438, - 362.6286926269531, - 208.1289520263672, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.52987670898438, - 362.6286926269531, - 208.1289520263672, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "97.2", - "origin": [ - 222.71493530273438, - 369.8089904785156 - ], - "bbox": [ - 222.71493530273438, - 362.6286926269531, - 236.3140106201172, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.71493530273438, - 362.6286926269531, - 236.3140106201172, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "98.1", - "origin": [ - 252.83494567871094, - 369.8089904785156 - ], - "bbox": [ - 252.83494567871094, - 362.6286926269531, - 266.4339904785156, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.83494567871094, - 362.6286926269531, - 266.4339904785156, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "62.9", - "origin": [ - 282.96270751953125, - 369.8089904785156 - ], - "bbox": [ - 282.96270751953125, - 362.6286926269531, - 296.5617370605469, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96270751953125, - 362.6286926269531, - 296.5617370605469, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.1", - "origin": [ - 311.13995361328125, - 369.8089904785156 - ], - "bbox": [ - 311.13995361328125, - 362.6286926269531, - 324.7389831542969, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.13995361328125, - 362.6286926269531, - 324.7389831542969, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.7", - "origin": [ - 341.2677001953125, - 369.8089904785156 - ], - "bbox": [ - 341.2677001953125, - 362.6286926269531, - 354.8667297363281, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2677001953125, - 362.6286926269531, - 354.8667297363281, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "62.2", - "origin": [ - 371.3876647949219, - 369.8089904785156 - ], - "bbox": [ - 371.3876647949219, - 362.6286926269531, - 384.9866943359375, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.3876647949219, - 362.6286926269531, - 384.9866943359375, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "87.6", - "origin": [ - 399.5726623535156, - 369.8089904785156 - ], - "bbox": [ - 399.5726623535156, - 362.6286926269531, - 413.17169189453125, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5726623535156, - 362.6286926269531, - 413.17169189453125, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "93.2", - "origin": [ - 429.692626953125, - 369.8089904785156 - ], - "bbox": [ - 429.692626953125, - 362.6286926269531, - 443.2916564941406, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.692626953125, - 362.6286926269531, - 443.2916564941406, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "42.6", - "origin": [ - 459.8125915527344, - 369.8089904785156 - ], - "bbox": [ - 459.8125915527344, - 362.6286926269531, - 473.41162109375, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8125915527344, - 362.6286926269531, - 473.41162109375, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.8", - "origin": [ - 487.9975891113281, - 369.8089904785156 - ], - "bbox": [ - 487.9975891113281, - 362.6286926269531, - 501.59661865234375, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9975891113281, - 362.6286926269531, - 501.59661865234375, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.4", - "origin": [ - 518.1175537109375, - 369.8089904785156 - ], - "bbox": [ - 518.1175537109375, - 362.6286926269531, - 531.7166137695312, - 371.99261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1175537109375, - 362.6286926269531, - 531.7166137695312, - 371.99261474609375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "ViLT-B/32", - "origin": [ - 96.19499206542969, - 377.5799865722656 - ], - "bbox": [ - 96.19499206542969, - 370.3996887207031, - 129.26792907714844, - 379.76361083984375 - ] - }, - { - "size": 5.439599990844727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " ", - "origin": [ - 129.26792907714844, - 377.5799865722656 - ], - "bbox": [ - 129.26792907714844, - 370.82281494140625, - 131.4499969482422, - 379.1085205078125 - ] - }, - { - "size": 5.439599990844727, - "flags": 5, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "a", - "origin": [ - 131.4499969482422, - 375.8489990234375 - ], - "bbox": [ - 131.4499969482422, - 370.82281494140625, - 133.86517333984375, - 377.3775329589844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 96.19499206542969, - 370.3996887207031, - 133.86517333984375, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 4.981299877166748, - "flags": 6, - "font": "CMSY5", - "color": 0, - "ascender": 0.7910000085830688, - "descender": -0.9440000057220459, - "text": "⃝", - "origin": [ - 129.26699829101562, - 375.9989929199219 - ], - "bbox": [ - 129.26699829101562, - 372.05877685546875, - 136.04653930664062, - 380.70135498046875 - ] - }, - { - "size": 5.439599990844727, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": " +", - "origin": [ - 136.04653930664062, - 375.9989929199219 - ], - "bbox": [ - 136.04653930664062, - 370.82281494140625, - 140.971923828125, - 377.52752685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 129.26699829101562, - 370.82281494140625, - 140.971923828125, - 380.70135498046875 - ] - }, - { - "spans": [ - { - "size": 4.981299877166748, - "flags": 6, - "font": "CMSY5", - "color": 0, - "ascender": 0.7910000085830688, - "descender": -0.9440000057220459, - "text": "⃝", - "origin": [ - 136.0469970703125, - 375.9989929199219 - ], - "bbox": [ - 136.0469970703125, - 372.05877685546875, - 142.8265380859375, - 380.70135498046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.0469970703125, - 372.05877685546875, - 142.8265380859375, - 380.70135498046875 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "~15", - "origin": [ - 169.2899932861328, - 377.5799865722656 - ], - "bbox": [ - 169.2899932861328, - 370.3996887207031, - 181.26495361328125, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 169.2899932861328, - 370.3996887207031, - 181.26495361328125, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.5", - "origin": [ - 194.52987670898438, - 377.5799865722656 - ], - "bbox": [ - 194.52987670898438, - 370.3996887207031, - 208.1289520263672, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 194.52987670898438, - 370.3996887207031, - 208.1289520263672, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "96.7", - "origin": [ - 222.71493530273438, - 377.5799865722656 - ], - "bbox": [ - 222.71493530273438, - 370.3996887207031, - 236.3140106201172, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 222.71493530273438, - 370.3996887207031, - 236.3140106201172, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "98.6", - "origin": [ - 252.83494567871094, - 377.5799865722656 - ], - "bbox": [ - 252.83494567871094, - 370.3996887207031, - 266.4339904785156, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 252.83494567871094, - 370.3996887207031, - 266.4339904785156, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "61.5", - "origin": [ - 282.96270751953125, - 377.5799865722656 - ], - "bbox": [ - 282.96270751953125, - 370.3996887207031, - 296.5617370605469, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 282.96270751953125, - 370.3996887207031, - 296.5617370605469, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "86.3", - "origin": [ - 311.13995361328125, - 377.5799865722656 - ], - "bbox": [ - 311.13995361328125, - 370.3996887207031, - 324.7389831542969, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 311.13995361328125, - 370.3996887207031, - 324.7389831542969, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "92.7", - "origin": [ - 341.2677001953125, - 377.5799865722656 - ], - "bbox": [ - 341.2677001953125, - 370.3996887207031, - 354.8667297363281, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 341.2677001953125, - 370.3996887207031, - 354.8667297363281, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "64.4", - "origin": [ - 371.3876647949219, - 377.5799865722656 - ], - "bbox": [ - 371.3876647949219, - 370.3996887207031, - 384.9866943359375, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 371.3876647949219, - 370.3996887207031, - 384.9866943359375, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "88.7", - "origin": [ - 399.5726623535156, - 377.5799865722656 - ], - "bbox": [ - 399.5726623535156, - 370.3996887207031, - 413.17169189453125, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 399.5726623535156, - 370.3996887207031, - 413.17169189453125, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "93.8", - "origin": [ - 429.692626953125, - 377.5799865722656 - ], - "bbox": [ - 429.692626953125, - 370.3996887207031, - 443.2916564941406, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 429.692626953125, - 370.3996887207031, - 443.2916564941406, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "42.7", - "origin": [ - 459.8125915527344, - 377.5799865722656 - ], - "bbox": [ - 459.8125915527344, - 370.3996887207031, - 473.41162109375, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 459.8125915527344, - 370.3996887207031, - 473.41162109375, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "72.9", - "origin": [ - 487.9975891113281, - 377.5799865722656 - ], - "bbox": [ - 487.9975891113281, - 370.3996887207031, - 501.59661865234375, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 487.9975891113281, - 370.3996887207031, - 501.59661865234375, - 379.76361083984375 - ] - }, - { - "spans": [ - { - "size": 7.770899772644043, - "flags": 4, - "font": "NimbusRomNo9L-Regu", - "color": 0, - "ascender": 0.9240000247955322, - "descender": -0.2809999883174896, - "text": "83.1", - "origin": [ - 518.1175537109375, - 377.5799865722656 - ], - "bbox": [ - 518.1175537109375, - 370.3996887207031, - 531.7166137695312, - 379.76361083984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 518.1175537109375, - 370.3996887207031, - 531.7166137695312, - 379.76361083984375 - ] - } - ], - "tag": "on-table" - }, - { - "number": 0, - "type": 0, - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ], - "lines": [ - { - "spans": [ - { - "size": 8.966400146484375, - "flags": 20, - "font": "NimbusRomNo9L-Medi", - "color": 0, - "ascender": 0.9599999785423279, - "descender": -0.3409999907016754, - "text": "ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision", - "origin": [ - 134.13299560546875, - 54.1090087890625 - ], - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 134.13299560546875, - 45.50126647949219, - 462.4287414550781, - 57.16654968261719 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\351\241\266\351\203\250\350\267\250\345\210\227\350\241\250_\345\272\225\351\203\2502\345\210\227\346\226\207\345\255\227_10.1016_j.ijheatmasstransfer.2006.10.031_2.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\351\241\266\351\203\250\350\267\250\345\210\227\350\241\250_\345\272\225\351\203\2502\345\210\227\346\226\207\345\255\227_10.1016_j.ijheatmasstransfer.2006.10.031_2.pdf/preproc_out.json" deleted file mode 100644 index 5c0811437..000000000 --- "a/tests/assets/pre_proc_results/\351\241\266\351\203\250\350\267\250\345\210\227\350\241\250_\345\272\225\351\203\2502\345\210\227\346\226\207\345\255\227_10.1016_j.ijheatmasstransfer.2006.10.031_2.pdf/preproc_out.json" +++ /dev/null @@ -1,11840 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 32.71179962158203, - 440.0029296875, - 115.10250091552734, - 449.96551513671875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2. Numerical model", - "origin": [ - 32.71179962158203, - 447.47747802734375 - ], - "bbox": [ - 32.71179962158203, - 440.0029296875, - 115.10250091552734, - 449.96551513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 440.0029296875, - 115.10250091552734, - 449.96551513671875 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 32.71179962158203, - 463.6208801269531, - 283.7743225097656, - 748.7405395507812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "There are two distinct flow regions in the steam surface", - "origin": [ - 44.673892974853516, - 471.40167236328125 - ], - "bbox": [ - 44.673892974853516, - 463.6208801269531, - 283.7045593261719, - 473.7827453613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 44.673892974853516, - 463.6208801269531, - 283.7045593261719, - 473.7827453613281 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "condenser, i.e. the tube-side and shell-side. The cooling", - "origin": [ - 32.71179962158203, - 483.36376953125 - ], - "bbox": [ - 32.71179962158203, - 475.5829772949219, - 283.7314453125, - 485.7448425292969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 475.5829772949219, - 283.7314453125, - 485.7448425292969 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "water flows through the tube-side continuously and tube-", - "origin": [ - 32.71179962158203, - 495.32586669921875 - ], - "bbox": [ - 32.71179962158203, - 487.5450744628906, - 283.6806640625, - 497.7069396972656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 487.5450744628906, - 283.6806640625, - 497.7069396972656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "side flows have been very well studied. Therefore, the focus", - "origin": [ - 32.71179962158203, - 507.2879638671875 - ], - "bbox": [ - 32.71179962158203, - 499.5071716308594, - 283.6856384277344, - 509.6690368652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 499.5071716308594, - 283.6856384277344, - 509.6690368652344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "of the numerical simulation of steam surface condensers is", - "origin": [ - 32.71179962158203, - 519.2500610351562 - ], - "bbox": [ - 32.71179962158203, - 511.4692687988281, - 283.7503967285156, - 521.631103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 511.4692687988281, - 283.7503967285156, - 521.631103515625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "on the shell-side flow and heat transfer. The effect of the", - "origin": [ - 32.71179962158203, - 531.212158203125 - ], - "bbox": [ - 32.71179962158203, - 523.431396484375, - 283.7075500488281, - 533.5932006835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 523.431396484375, - 283.7075500488281, - 533.5932006835938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tube-side flow on the shell-side flow is through the heat", - "origin": [ - 32.71179962158203, - 543.117431640625 - ], - "bbox": [ - 32.71179962158203, - 535.336669921875, - 283.6986083984375, - 545.4984741210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 535.336669921875, - 283.6986083984375, - 545.4984741210938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "transfer between them. The shell-side fluid is a mixture of", - "origin": [ - 32.71179962158203, - 555.07958984375 - ], - "bbox": [ - 32.71179962158203, - 547.298828125, - 283.71746826171875, - 557.4606323242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 547.298828125, - 283.71746826171875, - 557.4606323242188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "vapor, non-condensable gases (mainly air), and liquid.", - "origin": [ - 32.71179962158203, - 567.0416259765625 - ], - "bbox": [ - 32.71179962158203, - 559.2608642578125, - 283.7702941894531, - 569.4226684570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 559.2608642578125, - 283.7702941894531, - 569.4226684570312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The vapor in the mixture will become condensate due to", - "origin": [ - 32.71179962158203, - 579.0037841796875 - ], - "bbox": [ - 32.71179962158203, - 571.2230224609375, - 283.719482421875, - 581.3848266601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 571.2230224609375, - 283.719482421875, - 581.3848266601562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the heat transfer between the vapor and cooling water that", - "origin": [ - 32.71179962158203, - 590.9658203125 - ], - "bbox": [ - 32.71179962158203, - 583.18505859375, - 283.7383728027344, - 593.3468627929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 583.18505859375, - 283.7383728027344, - 593.3468627929688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "flows on tube-side. The numerical model used in this study", - "origin": [ - 32.71179962158203, - 602.927978515625 - ], - "bbox": [ - 32.71179962158203, - 595.147216796875, - 283.6915588378906, - 605.3090209960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 595.147216796875, - 283.6915588378906, - 605.3090209960938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "includes the effects of turbulence, non-condensable gases,", - "origin": [ - 32.71179962158203, - 614.8900146484375 - ], - "bbox": [ - 32.71179962158203, - 607.1092529296875, - 283.70458984375, - 617.2710571289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 607.1092529296875, - 283.70458984375, - 617.2710571289062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "phase change, interphase friction and distributed flow resis-", - "origin": [ - 32.71179962158203, - 626.8521728515625 - ], - "bbox": [ - 32.71179962158203, - 619.0714111328125, - 283.75439453125, - 629.2332153320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 619.0714111328125, - 283.75439453125, - 629.2332153320312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tance due to tube bundles on the fluid flow and heat trans-", - "origin": [ - 32.71179962158203, - 638.7574462890625 - ], - "bbox": [ - 32.71179962158203, - 630.9766845703125, - 283.7743225097656, - 641.1384887695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 630.9766845703125, - 283.7743225097656, - 641.1384887695312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fer on the shell-side of condensers.", - "origin": [ - 32.71179962158203, - 650.7195434570312 - ], - "bbox": [ - 32.71179962158203, - 642.9387817382812, - 182.17771911621094, - 653.1005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 642.9387817382812, - 182.17771911621094, - 653.1005859375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Partition plates are commonly used in power plant con-", - "origin": [ - 44.673892974853516, - 662.681640625 - ], - "bbox": [ - 44.673892974853516, - 654.90087890625, - 283.7743225097656, - 665.0626831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 44.673892974853516, - 654.90087890625, - 283.7743225097656, - 665.0626831054688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "densers to support tube bundles. These partition plates", - "origin": [ - 32.71179962158203, - 674.6437377929688 - ], - "bbox": [ - 32.71179962158203, - 666.8629760742188, - 283.70458984375, - 677.0247802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 666.8629760742188, - 283.70458984375, - 677.0247802734375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "restrict the flow in the third direction on the shell-side of", - "origin": [ - 32.71179962158203, - 686.6058349609375 - ], - "bbox": [ - 32.71179962158203, - 678.8250732421875, - 283.718505859375, - 688.9868774414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 678.8250732421875, - 283.718505859375, - 688.9868774414062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the condenser. In addition, the cooling tubes in each sector,", - "origin": [ - 32.71179962158203, - 698.5679321289062 - ], - "bbox": [ - 32.71179962158203, - 690.7871704101562, - 283.77032470703125, - 700.948974609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 690.7871704101562, - 283.77032470703125, - 700.948974609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "which is between the two adjacent partition plates, are rel-", - "origin": [ - 32.71179962158203, - 710.530029296875 - ], - "bbox": [ - 32.71179962158203, - 702.749267578125, - 283.7125244140625, - 712.9110717773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 702.749267578125, - 283.7125244140625, - 712.9110717773438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "ative short. So, the increase in cooling water temperature in", - "origin": [ - 32.71179962158203, - 722.4921264648438 - ], - "bbox": [ - 32.71179962158203, - 714.7113647460938, - 283.7135314941406, - 724.8731689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 714.7113647460938, - 283.7135314941406, - 724.8731689453125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "each sector is much smaller than the temperature difference", - "origin": [ - 32.71179962158203, - 734.3974609375 - ], - "bbox": [ - 32.71179962158203, - 726.61669921875, - 283.6478271484375, - 736.7785034179688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 726.61669921875, - 283.6478271484375, - 736.7785034179688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "between the shell-side fluid and the cooling water. There-", - "origin": [ - 32.71179962158203, - 746.3594970703125 - ], - "bbox": [ - 32.71179962158203, - 738.5787353515625, - 283.764404296875, - 748.7405395507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 738.5787353515625, - 283.764404296875, - 748.7405395507812 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 301.7188720703125, - 439.69476318359375, - 552.7246704101562, - 593.344970703125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fore, the fluid flow in each sector can be assumed two-", - "origin": [ - 301.7189025878906, - 447.4755554199219 - ], - "bbox": [ - 301.7189025878906, - 439.69476318359375, - 552.7088012695312, - 449.85662841796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7189025878906, - 439.69476318359375, - 552.7088012695312, - 449.85662841796875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "dimensional. The link between sectors is through the", - "origin": [ - 301.7189025878906, - 459.4376525878906 - ], - "bbox": [ - 301.7189025878906, - 451.6568603515625, - 552.7128295898438, - 461.8187255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7189025878906, - 451.6568603515625, - 552.7128295898438, - 461.8187255859375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "cooling water temperature. Therefore, the quasi-three-", - "origin": [ - 301.7189025878906, - 471.3997497558594 - ], - "bbox": [ - 301.7189025878906, - 463.61895751953125, - 552.7246704101562, - 473.78082275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7189025878906, - 463.61895751953125, - 552.7246704101562, - 473.78082275390625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "dimensional approach suggested by Zhang and Bokil", - "origin": [ - 301.7189025878906, - 483.3618469238281 - ], - "bbox": [ - 301.7189025878906, - 475.5810546875, - 537.8932495117188, - 485.742919921875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 537.8932495117188, - 483.3618469238281 - ], - "bbox": [ - 537.8932495117188, - 475.5810546875, - 552.6837158203125, - 485.742919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7189025878906, - 475.5810546875, - 552.6837158203125, - 485.742919921875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "is employed in this study, in which the three-dimensional", - "origin": [ - 301.7188720703125, - 495.3239440917969 - ], - "bbox": [ - 301.7188720703125, - 487.54315185546875, - 552.6517944335938, - 497.70501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 487.54315185546875, - 552.6517944335938, - 497.70501708984375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "effect due to the cooling water temperature gradients is", - "origin": [ - 301.7188720703125, - 507.2860412597656 - ], - "bbox": [ - 301.7188720703125, - 499.5052490234375, - 552.70263671875, - 509.6671142578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 499.5052490234375, - 552.70263671875, - 509.6671142578125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "taken into account by a series of step by step two-dimen-", - "origin": [ - 301.7188720703125, - 519.2481689453125 - ], - "bbox": [ - 301.7188720703125, - 511.4673767089844, - 552.7116088867188, - 521.6292114257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 511.4673767089844, - 552.7116088867188, - 521.6292114257812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "sional calculations, each being for one sector. In this study,", - "origin": [ - 301.7188720703125, - 531.210205078125 - ], - "bbox": [ - 301.7188720703125, - 523.429443359375, - 552.6658325195312, - 533.5912475585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 523.429443359375, - 552.6658325195312, - 533.5912475585938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the numerical model proposed by Zhang and Bokil", - "origin": [ - 301.7188720703125, - 543.1155395507812 - ], - "bbox": [ - 301.7188720703125, - 535.3347778320312, - 537.0454711914062, - 545.49658203125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 537.0454711914062, - 543.1155395507812 - ], - "bbox": [ - 537.0454711914062, - 535.3347778320312, - 552.6837158203125, - 545.49658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 535.3347778320312, - 552.6837158203125, - 545.49658203125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "for the simulation of gas–liquid two-phase flows in con-", - "origin": [ - 301.7188720703125, - 555.07763671875 - ], - "bbox": [ - 301.7188720703125, - 547.296875, - 552.714599609375, - 557.4586791992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 547.296875, - 552.714599609375, - 557.4586791992188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "densers, where a constant turbulent viscosity was used,", - "origin": [ - 301.7188720703125, - 567.0397338867188 - ], - "bbox": [ - 301.7188720703125, - 559.2589721679688, - 552.6896362304688, - 569.4207763671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 559.2589721679688, - 552.6896362304688, - 569.4207763671875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "has been extended to include a modified", - "origin": [ - 301.7188720703125, - 579.0018310546875 - ], - "bbox": [ - 301.7188720703125, - 571.2210693359375, - 484.0555725097656, - 581.3828735351562 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 484.0555725097656, - 579.0018310546875 - ], - "bbox": [ - 484.0555725097656, - 571.5272827148438, - 494.1514587402344, - 581.4898681640625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 494.133544921875, - 579.0018310546875 - ], - "bbox": [ - 494.133544921875, - 571.2210693359375, - 499.1148376464844, - 581.3828735351562 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 499.122802734375, - 579.0018310546875 - ], - "bbox": [ - 499.122802734375, - 571.0118408203125, - 502.9584045410156, - 582.0105590820312 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence", - "origin": [ - 502.9584045410156, - 579.0018310546875 - ], - "bbox": [ - 502.9584045410156, - 571.2210693359375, - 552.7193603515625, - 581.3828735351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 571.0118408203125, - 552.7193603515625, - 582.0105590820312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "model.", - "origin": [ - 301.7188720703125, - 590.9639282226562 - ], - "bbox": [ - 301.7188720703125, - 583.1831665039062, - 330.6403503417969, - 593.344970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 583.1831665039062, - 330.6403503417969, - 593.344970703125 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 301.7188720703125, - 607.41357421875, - 372.77410888671875, - 617.3761596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2.1. Assumptions", - "origin": [ - 301.7188720703125, - 614.8881225585938 - ], - "bbox": [ - 301.7188720703125, - 607.41357421875, - 372.77410888671875, - 617.3761596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 607.41357421875, - 372.77410888671875, - 617.3761596679688 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 301.7188720703125, - 630.9747314453125, - 552.6996459960938, - 653.0986938476562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The following assumptions are made in the numerical", - "origin": [ - 313.6241760253906, - 638.7554931640625 - ], - "bbox": [ - 313.6241760253906, - 630.9747314453125, - 552.6996459960938, - 641.1365356445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.6241760253906, - 630.9747314453125, - 552.6996459960938, - 641.1365356445312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "model:", - "origin": [ - 301.7188720703125, - 650.7176513671875 - ], - "bbox": [ - 301.7188720703125, - 642.9368896484375, - 330.6403503417969, - 653.0986938476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 642.9368896484375, - 330.6403503417969, - 653.0986938476562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 304.66680908203125, - 666.8610229492188, - 552.760498046875, - 755.9017944335938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 304.66680908203125, - 674.6417846679688 - ], - "bbox": [ - 304.66680908203125, - 666.9705810546875, - 309.6481018066406, - 684.1859741210938 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " The mixture of vapor and air, which is named as the gas-", - "origin": [ - 309.6481018066406, - 674.6417846679688 - ], - "bbox": [ - 309.6481018066406, - 666.8610229492188, - 552.760498046875, - 677.0228271484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.66680908203125, - 666.8610229492188, - 552.760498046875, - 684.1859741210938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "phase, is considered as a perfect gas, the proportions", - "origin": [ - 313.6241760253906, - 686.6038818359375 - ], - "bbox": [ - 313.6241760253906, - 678.8231201171875, - 552.7334594726562, - 688.9849243164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.6241760253906, - 678.8231201171875, - 552.7334594726562, - 688.9849243164062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "being defined by the air mass fraction.", - "origin": [ - 313.6241760253906, - 698.5659790039062 - ], - "bbox": [ - 313.6241760253906, - 690.7852172851562, - 479.7825012207031, - 700.947021484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.6241760253906, - 690.7852172851562, - 479.7825012207031, - 700.947021484375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 304.66680908203125, - 710.528076171875 - ], - "bbox": [ - 304.66680908203125, - 702.8568725585938, - 309.6481018066406, - 720.072265625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Both vapor and liquid condensate are saturated.", - "origin": [ - 309.6481018066406, - 710.528076171875 - ], - "bbox": [ - 309.6481018066406, - 702.747314453125, - 522.9114990234375, - 712.9091186523438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.66680908203125, - 702.747314453125, - 522.9114990234375, - 720.072265625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 304.66680908203125, - 722.4901733398438 - ], - "bbox": [ - 304.66680908203125, - 714.8189697265625, - 309.6481018066406, - 732.0343627929688 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " The diffusion terms for the liquid condensate are", - "origin": [ - 309.6481018066406, - 722.4901733398438 - ], - "bbox": [ - 309.6481018066406, - 714.7094116210938, - 552.7127685546875, - 724.8712158203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.66680908203125, - 714.7094116210938, - 552.7127685546875, - 732.0343627929688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "negligible.", - "origin": [ - 313.6241760253906, - 734.3955078125 - ], - "bbox": [ - 313.6241760253906, - 726.61474609375, - 356.8489685058594, - 736.7765502929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.6241760253906, - 726.61474609375, - 356.8489685058594, - 736.7765502929688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 304.66680908203125, - 746.3576049804688 - ], - "bbox": [ - 304.66680908203125, - 738.6864013671875, - 309.6481018066406, - 755.9017944335938 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Pressure is assumed common to both phases.", - "origin": [ - 309.6481018066406, - 746.3576049804688 - ], - "bbox": [ - 309.6481018066406, - 738.5768432617188, - 508.7906799316406, - 748.7386474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.66680908203125, - 738.5768432617188, - 508.7906799316406, - 755.9017944335938 - ] - } - ] - } - ], - "images": [], - "tables": [ - { - "bbox": [ - 32, - 70, - 553, - 419 - ], - "image_path": "tables/0_32_70_553_419.jpg" - } - ], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 487.4617244157937, - 571.7376058041112, - 495.6261079774375, - 581.3385731559855 - ], - "image_path": "equations_inline/0_487_571_495_581.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 47.407169342041016, - 595.2760009765625, - 419 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 32.71179962158203, - 439.69476318359375, - 283.7743225097656, - 755.9017944335938 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 301.7188720703125, - 439.69476318359375, - 552.760498046875, - 755.9017944335938 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 32.71179962158203, - 440.0029296875, - 115.10250091552734, - 449.96551513671875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2. Numerical model", - "origin": [ - 32.71179962158203, - 447.47747802734375 - ], - "bbox": [ - 32.71179962158203, - 440.0029296875, - 115.10250091552734, - 449.96551513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 440.0029296875, - 115.10250091552734, - 449.96551513671875 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 32.71179962158203, - 463.6208801269531, - 283.7743225097656, - 748.7405395507812 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "There are two distinct flow regions in the steam surface", - "origin": [ - 44.673892974853516, - 471.40167236328125 - ], - "bbox": [ - 44.673892974853516, - 463.6208801269531, - 283.7045593261719, - 473.7827453613281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 44.673892974853516, - 463.6208801269531, - 283.7045593261719, - 473.7827453613281 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "condenser, i.e. the tube-side and shell-side. The cooling", - "origin": [ - 32.71179962158203, - 483.36376953125 - ], - "bbox": [ - 32.71179962158203, - 475.5829772949219, - 283.7314453125, - 485.7448425292969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 475.5829772949219, - 283.7314453125, - 485.7448425292969 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "water flows through the tube-side continuously and tube-", - "origin": [ - 32.71179962158203, - 495.32586669921875 - ], - "bbox": [ - 32.71179962158203, - 487.5450744628906, - 283.6806640625, - 497.7069396972656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 487.5450744628906, - 283.6806640625, - 497.7069396972656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "side flows have been very well studied. Therefore, the focus", - "origin": [ - 32.71179962158203, - 507.2879638671875 - ], - "bbox": [ - 32.71179962158203, - 499.5071716308594, - 283.6856384277344, - 509.6690368652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 499.5071716308594, - 283.6856384277344, - 509.6690368652344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "of the numerical simulation of steam surface condensers is", - "origin": [ - 32.71179962158203, - 519.2500610351562 - ], - "bbox": [ - 32.71179962158203, - 511.4692687988281, - 283.7503967285156, - 521.631103515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 511.4692687988281, - 283.7503967285156, - 521.631103515625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "on the shell-side flow and heat transfer. The effect of the", - "origin": [ - 32.71179962158203, - 531.212158203125 - ], - "bbox": [ - 32.71179962158203, - 523.431396484375, - 283.7075500488281, - 533.5932006835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 523.431396484375, - 283.7075500488281, - 533.5932006835938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tube-side flow on the shell-side flow is through the heat", - "origin": [ - 32.71179962158203, - 543.117431640625 - ], - "bbox": [ - 32.71179962158203, - 535.336669921875, - 283.6986083984375, - 545.4984741210938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 535.336669921875, - 283.6986083984375, - 545.4984741210938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "transfer between them. The shell-side fluid is a mixture of", - "origin": [ - 32.71179962158203, - 555.07958984375 - ], - "bbox": [ - 32.71179962158203, - 547.298828125, - 283.71746826171875, - 557.4606323242188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 547.298828125, - 283.71746826171875, - 557.4606323242188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "vapor, non-condensable gases (mainly air), and liquid.", - "origin": [ - 32.71179962158203, - 567.0416259765625 - ], - "bbox": [ - 32.71179962158203, - 559.2608642578125, - 283.7702941894531, - 569.4226684570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 559.2608642578125, - 283.7702941894531, - 569.4226684570312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The vapor in the mixture will become condensate due to", - "origin": [ - 32.71179962158203, - 579.0037841796875 - ], - "bbox": [ - 32.71179962158203, - 571.2230224609375, - 283.719482421875, - 581.3848266601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 571.2230224609375, - 283.719482421875, - 581.3848266601562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the heat transfer between the vapor and cooling water that", - "origin": [ - 32.71179962158203, - 590.9658203125 - ], - "bbox": [ - 32.71179962158203, - 583.18505859375, - 283.7383728027344, - 593.3468627929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 583.18505859375, - 283.7383728027344, - 593.3468627929688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "flows on tube-side. The numerical model used in this study", - "origin": [ - 32.71179962158203, - 602.927978515625 - ], - "bbox": [ - 32.71179962158203, - 595.147216796875, - 283.6915588378906, - 605.3090209960938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 595.147216796875, - 283.6915588378906, - 605.3090209960938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "includes the effects of turbulence, non-condensable gases,", - "origin": [ - 32.71179962158203, - 614.8900146484375 - ], - "bbox": [ - 32.71179962158203, - 607.1092529296875, - 283.70458984375, - 617.2710571289062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 607.1092529296875, - 283.70458984375, - 617.2710571289062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "phase change, interphase friction and distributed flow resis-", - "origin": [ - 32.71179962158203, - 626.8521728515625 - ], - "bbox": [ - 32.71179962158203, - 619.0714111328125, - 283.75439453125, - 629.2332153320312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 619.0714111328125, - 283.75439453125, - 629.2332153320312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tance due to tube bundles on the fluid flow and heat trans-", - "origin": [ - 32.71179962158203, - 638.7574462890625 - ], - "bbox": [ - 32.71179962158203, - 630.9766845703125, - 283.7743225097656, - 641.1384887695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 630.9766845703125, - 283.7743225097656, - 641.1384887695312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fer on the shell-side of condensers.", - "origin": [ - 32.71179962158203, - 650.7195434570312 - ], - "bbox": [ - 32.71179962158203, - 642.9387817382812, - 182.17771911621094, - 653.1005859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 642.9387817382812, - 182.17771911621094, - 653.1005859375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "Partition plates are commonly used in power plant con-", - "origin": [ - 44.673892974853516, - 662.681640625 - ], - "bbox": [ - 44.673892974853516, - 654.90087890625, - 283.7743225097656, - 665.0626831054688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 44.673892974853516, - 654.90087890625, - 283.7743225097656, - 665.0626831054688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "densers to support tube bundles. These partition plates", - "origin": [ - 32.71179962158203, - 674.6437377929688 - ], - "bbox": [ - 32.71179962158203, - 666.8629760742188, - 283.70458984375, - 677.0247802734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 666.8629760742188, - 283.70458984375, - 677.0247802734375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "restrict the flow in the third direction on the shell-side of", - "origin": [ - 32.71179962158203, - 686.6058349609375 - ], - "bbox": [ - 32.71179962158203, - 678.8250732421875, - 283.718505859375, - 688.9868774414062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 678.8250732421875, - 283.718505859375, - 688.9868774414062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the condenser. In addition, the cooling tubes in each sector,", - "origin": [ - 32.71179962158203, - 698.5679321289062 - ], - "bbox": [ - 32.71179962158203, - 690.7871704101562, - 283.77032470703125, - 700.948974609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 690.7871704101562, - 283.77032470703125, - 700.948974609375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "which is between the two adjacent partition plates, are rel-", - "origin": [ - 32.71179962158203, - 710.530029296875 - ], - "bbox": [ - 32.71179962158203, - 702.749267578125, - 283.7125244140625, - 712.9110717773438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 702.749267578125, - 283.7125244140625, - 712.9110717773438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "ative short. So, the increase in cooling water temperature in", - "origin": [ - 32.71179962158203, - 722.4921264648438 - ], - "bbox": [ - 32.71179962158203, - 714.7113647460938, - 283.7135314941406, - 724.8731689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 714.7113647460938, - 283.7135314941406, - 724.8731689453125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "each sector is much smaller than the temperature difference", - "origin": [ - 32.71179962158203, - 734.3974609375 - ], - "bbox": [ - 32.71179962158203, - 726.61669921875, - 283.6478271484375, - 736.7785034179688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 726.61669921875, - 283.6478271484375, - 736.7785034179688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "between the shell-side fluid and the cooling water. There-", - "origin": [ - 32.71179962158203, - 746.3594970703125 - ], - "bbox": [ - 32.71179962158203, - 738.5787353515625, - 283.764404296875, - 748.7405395507812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 738.5787353515625, - 283.764404296875, - 748.7405395507812 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 301.7188720703125, - 439.69476318359375, - 552.7246704101562, - 593.344970703125 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "fore, the fluid flow in each sector can be assumed two-", - "origin": [ - 301.7189025878906, - 447.4755554199219 - ], - "bbox": [ - 301.7189025878906, - 439.69476318359375, - 552.7088012695312, - 449.85662841796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7189025878906, - 439.69476318359375, - 552.7088012695312, - 449.85662841796875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "dimensional. The link between sectors is through the", - "origin": [ - 301.7189025878906, - 459.4376525878906 - ], - "bbox": [ - 301.7189025878906, - 451.6568603515625, - 552.7128295898438, - 461.8187255859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7189025878906, - 451.6568603515625, - 552.7128295898438, - 461.8187255859375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "cooling water temperature. Therefore, the quasi-three-", - "origin": [ - 301.7189025878906, - 471.3997497558594 - ], - "bbox": [ - 301.7189025878906, - 463.61895751953125, - 552.7246704101562, - 473.78082275390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7189025878906, - 463.61895751953125, - 552.7246704101562, - 473.78082275390625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "dimensional approach suggested by Zhang and Bokil", - "origin": [ - 301.7189025878906, - 483.3618469238281 - ], - "bbox": [ - 301.7189025878906, - 475.5810546875, - 537.8932495117188, - 485.742919921875 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 537.8932495117188, - 483.3618469238281 - ], - "bbox": [ - 537.8932495117188, - 475.5810546875, - 552.6837158203125, - 485.742919921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7189025878906, - 475.5810546875, - 552.6837158203125, - 485.742919921875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "is employed in this study, in which the three-dimensional", - "origin": [ - 301.7188720703125, - 495.3239440917969 - ], - "bbox": [ - 301.7188720703125, - 487.54315185546875, - 552.6517944335938, - 497.70501708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 487.54315185546875, - 552.6517944335938, - 497.70501708984375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "effect due to the cooling water temperature gradients is", - "origin": [ - 301.7188720703125, - 507.2860412597656 - ], - "bbox": [ - 301.7188720703125, - 499.5052490234375, - 552.70263671875, - 509.6671142578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 499.5052490234375, - 552.70263671875, - 509.6671142578125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "taken into account by a series of step by step two-dimen-", - "origin": [ - 301.7188720703125, - 519.2481689453125 - ], - "bbox": [ - 301.7188720703125, - 511.4673767089844, - 552.7116088867188, - 521.6292114257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 511.4673767089844, - 552.7116088867188, - 521.6292114257812 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "sional calculations, each being for one sector. In this study,", - "origin": [ - 301.7188720703125, - 531.210205078125 - ], - "bbox": [ - 301.7188720703125, - 523.429443359375, - 552.6658325195312, - 533.5912475585938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 523.429443359375, - 552.6658325195312, - 533.5912475585938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "the numerical model proposed by Zhang and Bokil", - "origin": [ - 301.7188720703125, - 543.1155395507812 - ], - "bbox": [ - 301.7188720703125, - 535.3347778320312, - 537.0454711914062, - 545.49658203125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 102, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " [2]", - "origin": [ - 537.0454711914062, - 543.1155395507812 - ], - "bbox": [ - 537.0454711914062, - 535.3347778320312, - 552.6837158203125, - 545.49658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 535.3347778320312, - 552.6837158203125, - 545.49658203125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "for the simulation of gas–liquid two-phase flows in con-", - "origin": [ - 301.7188720703125, - 555.07763671875 - ], - "bbox": [ - 301.7188720703125, - 547.296875, - 552.714599609375, - 557.4586791992188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 547.296875, - 552.714599609375, - 557.4586791992188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "densers, where a constant turbulent viscosity was used,", - "origin": [ - 301.7188720703125, - 567.0397338867188 - ], - "bbox": [ - 301.7188720703125, - 559.2589721679688, - 552.6896362304688, - 569.4207763671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 559.2589721679688, - 552.6896362304688, - 569.4207763671875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "has been extended to include a modified", - "origin": [ - 301.7188720703125, - 579.0018310546875 - ], - "bbox": [ - 301.7188720703125, - 571.2210693359375, - 484.0555725097656, - 581.3828735351562 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 484.0555725097656, - 579.0018310546875 - ], - "bbox": [ - 484.0555725097656, - 571.5272827148438, - 494.1514587402344, - 581.4898681640625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 494.133544921875, - 579.0018310546875 - ], - "bbox": [ - 494.133544921875, - 571.2210693359375, - 499.1148376464844, - 581.3828735351562 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 499.122802734375, - 579.0018310546875 - ], - "bbox": [ - 499.122802734375, - 571.0118408203125, - 502.9584045410156, - 582.0105590820312 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " turbulence", - "origin": [ - 502.9584045410156, - 579.0018310546875 - ], - "bbox": [ - 502.9584045410156, - 571.2210693359375, - 552.7193603515625, - 581.3828735351562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 571.0118408203125, - 552.7193603515625, - 582.0105590820312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "model.", - "origin": [ - 301.7188720703125, - 590.9639282226562 - ], - "bbox": [ - 301.7188720703125, - 583.1831665039062, - 330.6403503417969, - 593.344970703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 583.1831665039062, - 330.6403503417969, - 593.344970703125 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 301.7188720703125, - 607.41357421875, - 372.77410888671875, - 617.3761596679688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "2.1. Assumptions", - "origin": [ - 301.7188720703125, - 614.8881225585938 - ], - "bbox": [ - 301.7188720703125, - 607.41357421875, - 372.77410888671875, - 617.3761596679688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 607.41357421875, - 372.77410888671875, - 617.3761596679688 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 301.7188720703125, - 630.9747314453125, - 552.6996459960938, - 653.0986938476562 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "The following assumptions are made in the numerical", - "origin": [ - 313.6241760253906, - 638.7554931640625 - ], - "bbox": [ - 313.6241760253906, - 630.9747314453125, - 552.6996459960938, - 641.1365356445312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.6241760253906, - 630.9747314453125, - 552.6996459960938, - 641.1365356445312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "model:", - "origin": [ - 301.7188720703125, - 650.7176513671875 - ], - "bbox": [ - 301.7188720703125, - 642.9368896484375, - 330.6403503417969, - 653.0986938476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7188720703125, - 642.9368896484375, - 330.6403503417969, - 653.0986938476562 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 304.66680908203125, - 666.8610229492188, - 552.760498046875, - 755.9017944335938 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 304.66680908203125, - 674.6417846679688 - ], - "bbox": [ - 304.66680908203125, - 666.9705810546875, - 309.6481018066406, - 684.1859741210938 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " The mixture of vapor and air, which is named as the gas-", - "origin": [ - 309.6481018066406, - 674.6417846679688 - ], - "bbox": [ - 309.6481018066406, - 666.8610229492188, - 552.760498046875, - 677.0228271484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.66680908203125, - 666.8610229492188, - 552.760498046875, - 684.1859741210938 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "phase, is considered as a perfect gas, the proportions", - "origin": [ - 313.6241760253906, - 686.6038818359375 - ], - "bbox": [ - 313.6241760253906, - 678.8231201171875, - 552.7334594726562, - 688.9849243164062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.6241760253906, - 678.8231201171875, - 552.7334594726562, - 688.9849243164062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "being defined by the air mass fraction.", - "origin": [ - 313.6241760253906, - 698.5659790039062 - ], - "bbox": [ - 313.6241760253906, - 690.7852172851562, - 479.7825012207031, - 700.947021484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.6241760253906, - 690.7852172851562, - 479.7825012207031, - 700.947021484375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 304.66680908203125, - 710.528076171875 - ], - "bbox": [ - 304.66680908203125, - 702.8568725585938, - 309.6481018066406, - 720.072265625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Both vapor and liquid condensate are saturated.", - "origin": [ - 309.6481018066406, - 710.528076171875 - ], - "bbox": [ - 309.6481018066406, - 702.747314453125, - 522.9114990234375, - 712.9091186523438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.66680908203125, - 702.747314453125, - 522.9114990234375, - 720.072265625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 304.66680908203125, - 722.4901733398438 - ], - "bbox": [ - 304.66680908203125, - 714.8189697265625, - 309.6481018066406, - 732.0343627929688 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " The diffusion terms for the liquid condensate are", - "origin": [ - 309.6481018066406, - 722.4901733398438 - ], - "bbox": [ - 309.6481018066406, - 714.7094116210938, - 552.7127685546875, - 724.8712158203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.66680908203125, - 714.7094116210938, - 552.7127685546875, - 732.0343627929688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "negligible.", - "origin": [ - 313.6241760253906, - 734.3955078125 - ], - "bbox": [ - 313.6241760253906, - 726.61474609375, - 356.8489685058594, - 736.7765502929688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 313.6241760253906, - 726.61474609375, - 356.8489685058594, - 736.7765502929688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "�", - "origin": [ - 304.66680908203125, - 746.3576049804688 - ], - "bbox": [ - 304.66680908203125, - 738.6864013671875, - 309.6481018066406, - 755.9017944335938 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " Pressure is assumed common to both phases.", - "origin": [ - 309.6481018066406, - 746.3576049804688 - ], - "bbox": [ - 309.6481018066406, - 738.5768432617188, - 508.7906799316406, - 748.7386474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 304.66680908203125, - 738.5768432617188, - 508.7906799316406, - 755.9017944335938 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 42.68980026245117, - 79.37945556640625, - 100.96005249023438, - 89.34204864501953 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Nomenclature", - "origin": [ - 42.68980026245117, - 86.85400390625 - ], - "bbox": [ - 42.68980026245117, - 79.37945556640625, - 100.96005249023438, - 89.34204864501953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.68980026245117, - 79.37945556640625, - 100.96005249023438, - 89.34204864501953 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 42.689659118652344, - 102.99740600585938, - 283.70538330078125, - 412.1504211425781 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "A", - "origin": [ - 42.68980026245117, - 110.7781982421875 - ], - "bbox": [ - 42.68980026245117, - 103.30364990234375, - 49.84294891357422, - 113.26624298095703 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.68980026245117, - 103.30364990234375, - 49.84294891357422, - 113.26624298095703 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "heat transfer area of a given control volume", - "origin": [ - 78.51929473876953, - 110.7781982421875 - ], - "bbox": [ - 78.51929473876953, - 102.99740600585938, - 269.6049499511719, - 113.15925598144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51929473876953, - 102.99740600585938, - 269.6049499511719, - 113.15925598144531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "A", - "origin": [ - 42.68980026245117, - 122.74029541015625 - ], - "bbox": [ - 42.68980026245117, - 115.2657470703125, - 49.84294891357422, - 125.22834014892578 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 49.83300018310547, - 124.38458251953125 - ], - "bbox": [ - 49.83300018310547, - 119.19795989990234, - 53.957435607910156, - 125.9717788696289 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.68980026245117, - 115.2657470703125, - 53.957435607910156, - 125.9717788696289 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "total projected area of droplets in a given con-", - "origin": [ - 78.51969909667969, - 122.7406005859375 - ], - "bbox": [ - 78.51969909667969, - 114.95980834960938, - 283.70538330078125, - 125.12165832519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 114.95980834960938, - 283.70538330078125, - 125.12165832519531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "trol volume", - "origin": [ - 78.51969909667969, - 134.64593505859375 - ], - "bbox": [ - 78.51969909667969, - 126.86514282226562, - 128.5050506591797, - 137.02699279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 126.86514282226562, - 128.5050506591797, - 137.02699279785156 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "C", - "origin": [ - 42.69020462036133, - 146.6080322265625 - ], - "bbox": [ - 42.69020462036133, - 139.13348388671875, - 49.843353271484375, - 149.09608459472656 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 49.83300018310547, - 148.3089599609375 - ], - "bbox": [ - 49.83300018310547, - 143.12234497070312, - 53.56890106201172, - 149.8961639404297 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ",", - "origin": [ - 53.574798583984375, - 146.60821533203125 - ], - "bbox": [ - 53.574798583984375, - 138.82742309570312, - 56.26470184326172, - 148.98927307128906 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " C", - "origin": [ - 56.26470184326172, - 146.60821533203125 - ], - "bbox": [ - 56.26470184326172, - 139.1336669921875, - 66.73738861083984, - 149.0962677001953 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 66.7842025756836, - 148.3089599609375 - ], - "bbox": [ - 66.7842025756836, - 143.12234497070312, - 70.52010345458984, - 149.8961639404297 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ",", - "origin": [ - 70.5260009765625, - 146.60821533203125 - ], - "bbox": [ - 70.5260009765625, - 138.82742309570312, - 73.21590423583984, - 148.98927307128906 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " C", - "origin": [ - 73.21590423583984, - 146.60821533203125 - ], - "bbox": [ - 73.21590423583984, - 139.1336669921875, - 83.68858337402344, - 149.0962677001953 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 83.73539733886719, - 148.3089599609375 - ], - "bbox": [ - 83.73539733886719, - 142.98287963867188, - 87.85983276367188, - 150.31454467773438 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " constants in", - "origin": [ - 87.85983276367188, - 148.3089599609375 - ], - "bbox": [ - 87.85983276367188, - 138.82742309570312, - 145.55551147460938, - 150.6900177001953 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 145.55551147460938, - 146.60821533203125 - ], - "bbox": [ - 145.55551147460938, - 139.1336669921875, - 154.2219696044922, - 149.0962677001953 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 154.2040252685547, - 146.60821533203125 - ], - "bbox": [ - 154.2040252685547, - 138.82742309570312, - 159.18531799316406, - 148.98927307128906 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 159.19329833984375, - 146.60821533203125 - ], - "bbox": [ - 159.19329833984375, - 138.6182098388672, - 163.02890014648438, - 149.61691284179688 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " model", - "origin": [ - 163.02890014648438, - 146.60821533203125 - ], - "bbox": [ - 163.02890014648438, - 138.82742309570312, - 192.62478637695312, - 148.98927307128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 138.6182098388672, - 192.62478637695312, - 150.6900177001953 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "C", - "origin": [ - 42.689659118652344, - 158.5703125 - ], - "bbox": [ - 42.689659118652344, - 151.09576416015625, - 49.842803955078125, - 161.05836486816406 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 49.83300018310547, - 160.27117919921875 - ], - "bbox": [ - 49.83300018310547, - 155.08456420898438, - 52.321109771728516, - 161.85838317871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.689659118652344, - 151.09576416015625, - 52.321109771728516, - 161.85838317871094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "interphase friction coefficient", - "origin": [ - 78.51969909667969, - 158.57037353515625 - ], - "bbox": [ - 78.51969909667969, - 150.78958129882812, - 203.1298828125, - 160.95143127441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 150.78958129882812, - 203.1298828125, - 160.95143127441406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "C", - "origin": [ - 42.69020462036133, - 170.532470703125 - ], - "bbox": [ - 42.69020462036133, - 163.05792236328125, - 49.843353271484375, - 173.02052307128906 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "phase", - "origin": [ - 49.83300018310547, - 172.17669677734375 - ], - "bbox": [ - 49.83300018310547, - 166.99008178710938, - 67.95958709716797, - 173.76390075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 163.05792236328125, - 67.95958709716797, - 173.76390075683594 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "constant", - "origin": [ - 78.51969909667969, - 170.53271484375 - ], - "bbox": [ - 78.51969909667969, - 162.75192260742188, - 114.89116668701172, - 172.9137725830078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 162.75192260742188, - 114.89116668701172, - 172.9137725830078 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 42.69020462036133, - 182.49481201171875 - ], - "bbox": [ - 42.69020462036133, - 175.020263671875, - 50.36140441894531, - 184.9828643798828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 175.020263671875, - 50.36140441894531, - 184.9828643798828 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "diffusivity of air in steam", - "origin": [ - 78.51969909667969, - 182.49481201171875 - ], - "bbox": [ - 78.51969909667969, - 174.71401977539062, - 186.87591552734375, - 184.87586975097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 174.71401977539062, - 186.87591552734375, - 184.87586975097656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 42.69020462036133, - 194.4569091796875 - ], - "bbox": [ - 42.69020462036133, - 186.98236083984375, - 50.36140441894531, - 196.94496154785156 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 50.343299865722656, - 196.10107421875 - ], - "bbox": [ - 50.343299865722656, - 190.91445922851562, - 54.467735290527344, - 197.6882781982422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 186.98236083984375, - 54.467735290527344, - 197.6882781982422 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "diameter of a droplet", - "origin": [ - 78.51969909667969, - 194.45697021484375 - ], - "bbox": [ - 78.51969909667969, - 186.67617797851562, - 170.4047393798828, - 196.83802795410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 186.67617797851562, - 170.4047393798828, - 196.83802795410156 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 42.69020462036133, - 206.4190673828125 - ], - "bbox": [ - 42.69020462036133, - 198.94451904296875, - 50.36140441894531, - 208.90711975097656 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "e", - "origin": [ - 50.343299865722656, - 208.06329345703125 - ], - "bbox": [ - 50.343299865722656, - 202.87667846679688, - 53.60847473144531, - 209.65049743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 198.94451904296875, - 53.60847473144531, - 209.65049743652344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "effective diffusivity of air in steam", - "origin": [ - 78.51969909667969, - 206.4193115234375 - ], - "bbox": [ - 78.51969909667969, - 198.63851928710938, - 224.23464965820312, - 208.8003692626953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 198.63851928710938, - 224.23464965820312, - 208.8003692626953 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 42.69020462036133, - 218.38140869140625 - ], - "bbox": [ - 42.69020462036133, - 210.9068603515625, - 50.36140441894531, - 220.8694610595703 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "t", - "origin": [ - 50.343299865722656, - 220.0255126953125 - ], - "bbox": [ - 50.343299865722656, - 214.83889770507812, - 52.8314094543457, - 221.6127166748047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 210.9068603515625, - 52.8314094543457, - 221.6127166748047 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "turbulent diffusivity of air in steam", - "origin": [ - 78.51969909667969, - 218.38140869140625 - ], - "bbox": [ - 78.51969909667969, - 210.60061645507812, - 229.8475799560547, - 220.76246643066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 210.60061645507812, - 229.8475799560547, - 220.76246643066406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "F", - "origin": [ - 42.69020462036133, - 230.2867431640625 - ], - "bbox": [ - 42.69020462036133, - 222.81219482421875, - 48.70761489868164, - 232.77479553222656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 222.81219482421875, - 48.70761489868164, - 232.77479553222656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "force due to flow resistance", - "origin": [ - 78.51969909667969, - 230.2867431640625 - ], - "bbox": [ - 78.51969909667969, - 222.50595092773438, - 196.73390197753906, - 232.6678009033203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 222.50595092773438, - 196.73390197753906, - 232.6678009033203 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 42.69020462036133, - 242.24884033203125 - ], - "bbox": [ - 42.69020462036133, - 234.7742919921875, - 46.00775146484375, - 244.7368927001953 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 45.977901458740234, - 243.95001220703125 - ], - "bbox": [ - 45.977901458740234, - 238.76339721679688, - 50.102333068847656, - 245.53721618652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 234.7742919921875, - 50.102333068847656, - 245.53721618652344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "friction factor", - "origin": [ - 78.51969909667969, - 242.24920654296875 - ], - "bbox": [ - 78.51969909667969, - 234.46841430664062, - 138.53738403320312, - 244.63026428222656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 234.46841430664062, - 138.53738403320312, - 244.63026428222656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 42.69020462036133, - 254.2113037109375 - ], - "bbox": [ - 42.69020462036133, - 246.73675537109375, - 47.671504974365234, - 256.6993408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 246.73675537109375, - 47.671504974365234, - 256.6993408203125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "gravitational acceleration", - "origin": [ - 78.51969909667969, - 254.2113037109375 - ], - "bbox": [ - 78.51969909667969, - 246.43051147460938, - 187.45372009277344, - 256.5923767089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 246.43051147460938, - 187.45372009277344, - 256.5923767089844 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "G", - "origin": [ - 42.69020462036133, - 266.17340087890625 - ], - "bbox": [ - 42.69020462036133, - 258.6988525390625, - 49.843353271484375, - 268.66143798828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 258.6988525390625, - 49.843353271484375, - 268.66143798828125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "generation of turbulent kinetic energy", - "origin": [ - 78.51969909667969, - 266.17340087890625 - ], - "bbox": [ - 78.51969909667969, - 258.3926086425781, - 241.9063262939453, - 268.5544738769531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 258.3926086425781, - 241.9063262939453, - 268.5544738769531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "k", - "origin": [ - 42.69020462036133, - 278.135498046875 - ], - "bbox": [ - 42.69020462036133, - 270.66094970703125, - 47.9803466796875, - 280.62353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 270.66094970703125, - 47.9803466796875, - 280.62353515625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "gas-phase turbulent kinetic energy", - "origin": [ - 78.51969909667969, - 278.135498046875 - ], - "bbox": [ - 78.51969909667969, - 270.3547058105469, - 226.05381774902344, - 280.5165710449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 270.3547058105469, - 226.05381774902344, - 280.5165710449219 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "_", - "origin": [ - 44.90090560913086, - 290.0408020019531 - ], - "bbox": [ - 44.90090560913086, - 282.56884765625, - 47.5908088684082, - 292.5314636230469 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 42.69020462036133, - 290.09759521484375 - ], - "bbox": [ - 42.69020462036133, - 281.1810607910156, - 49.843353271484375, - 292.4786682128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 281.1810607910156, - 49.843353271484375, - 292.5314636230469 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "vapor condensation rate per unit volume", - "origin": [ - 78.51969909667969, - 290.09759521484375 - ], - "bbox": [ - 78.51969909667969, - 282.3168029785156, - 255.20443725585938, - 292.4786682128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 282.3168029785156, - 255.20443725585938, - 292.4786682128906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "p", - "origin": [ - 42.69020462036133, - 302.0596923828125 - ], - "bbox": [ - 42.69020462036133, - 294.58514404296875, - 47.671504974365234, - 304.5477294921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 294.58514404296875, - 47.671504974365234, - 304.5477294921875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "pressure", - "origin": [ - 78.51969909667969, - 302.0596923828125 - ], - "bbox": [ - 78.51969909667969, - 294.2789001464844, - 113.65679931640625, - 304.4407653808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 294.2789001464844, - 113.65679931640625, - 304.4407653808594 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "q", - "origin": [ - 42.69020462036133, - 314.02178955078125 - ], - "bbox": [ - 42.69020462036133, - 306.5472412109375, - 47.671504974365234, - 316.50982666015625 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "00", - "origin": [ - 47.6786994934082, - 310.39398193359375 - ], - "bbox": [ - 47.6786994934082, - 305.024169921875, - 51.44455337524414, - 317.07489013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 305.024169921875, - 51.44455337524414, - 317.07489013671875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "heat flux", - "origin": [ - 78.51969909667969, - 314.02239990234375 - ], - "bbox": [ - 78.51969909667969, - 306.2416076660156, - 116.04283905029297, - 316.4034729003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 306.2416076660156, - 116.04283905029297, - 316.4034729003906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "R", - "origin": [ - 42.69020462036133, - 325.9277038574219 - ], - "bbox": [ - 42.69020462036133, - 318.4531555175781, - 49.843353271484375, - 328.4157409667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 318.4531555175781, - 49.843353271484375, - 328.4157409667969 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "source term due to tube bundles", - "origin": [ - 78.51969909667969, - 325.9277038574219 - ], - "bbox": [ - 78.51969909667969, - 318.14691162109375, - 218.23422241210938, - 328.30877685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 318.14691162109375, - 218.23422241210938, - 328.30877685546875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "U", - "origin": [ - 42.69020462036133, - 337.8898010253906 - ], - "bbox": [ - 42.69020462036133, - 330.4152526855469, - 50.36140441894531, - 340.3778381347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 330.4152526855469, - 50.36140441894531, - 340.3778381347656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "velocity magnitude", - "origin": [ - 78.51969909667969, - 337.8898010253906 - ], - "bbox": [ - 78.51969909667969, - 330.1090087890625, - 159.89222717285156, - 340.2708740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 330.1090087890625, - 159.89222717285156, - 340.2708740234375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 42.69020462036133, - 349.8518981933594 - ], - "bbox": [ - 42.69020462036133, - 342.3773498535156, - 47.671504974365234, - 352.3399353027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 342.3773498535156, - 47.671504974365234, - 352.3399353027344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "velocity component in", - "origin": [ - 78.51969909667969, - 349.8518981933594 - ], - "bbox": [ - 78.51969909667969, - 342.07110595703125, - 174.1287841796875, - 352.23297119140625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 174.1287841796875, - 349.8518981933594 - ], - "bbox": [ - 174.1287841796875, - 342.3773498535156, - 183.00445556640625, - 352.3399353027344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-direction", - "origin": [ - 183.00445556640625, - 349.8518981933594 - ], - "bbox": [ - 183.00445556640625, - 342.07110595703125, - 224.13804626464844, - 352.23297119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 342.07110595703125, - 224.13804626464844, - 352.3399353027344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "V", - "origin": [ - 42.69020080566406, - 361.8139953613281 - ], - "bbox": [ - 42.69020080566406, - 354.3394470214844, - 49.843345642089844, - 364.3020324707031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020080566406, - 354.3394470214844, - 49.843345642089844, - 364.3020324707031 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "volume", - "origin": [ - 78.51969909667969, - 361.8139953613281 - ], - "bbox": [ - 78.51969909667969, - 354.033203125, - 109.79627990722656, - 364.195068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 354.033203125, - 109.79627990722656, - 364.195068359375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 42.69020462036133, - 373.7760925292969 - ], - "bbox": [ - 42.69020462036133, - 366.3015441894531, - 47.043861389160156, - 376.2641296386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 366.3015441894531, - 47.043861389160156, - 376.2641296386719 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "velocity component in", - "origin": [ - 78.51969909667969, - 373.7760925292969 - ], - "bbox": [ - 78.51969909667969, - 365.99530029296875, - 174.1287841796875, - 376.15716552734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 174.1287841796875, - 373.7760925292969 - ], - "bbox": [ - 174.1287841796875, - 366.3015441894531, - 182.48638916015625, - 376.2641296386719 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-direction", - "origin": [ - 182.49436950683594, - 373.7760925292969 - ], - "bbox": [ - 182.49436950683594, - 365.99530029296875, - 223.65286254882812, - 376.15716552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 365.99530029296875, - 223.65286254882812, - 376.2641296386719 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "W", - "origin": [ - 42.69020080566406, - 385.7381896972656 - ], - "bbox": [ - 42.69020080566406, - 378.2636413574219, - 52.543212890625, - 388.2262268066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020080566406, - 378.2636413574219, - 52.543212890625, - 388.2262268066406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "source term due to the interphase friction", - "origin": [ - 78.51969909667969, - 385.7381896972656 - ], - "bbox": [ - 78.51969909667969, - 377.9573974609375, - 258.33367919921875, - 388.1192626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 377.9573974609375, - 258.33367919921875, - 388.1192626953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 42.69020462036133, - 397.7002868652344 - ], - "bbox": [ - 42.69020462036133, - 390.2257385253906, - 48.18955993652344, - 400.1883239746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 390.2257385253906, - 48.18955993652344, - 400.1883239746094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 78.51969909667969, - 397.7002868652344 - ], - "bbox": [ - 78.51969909667969, - 390.2257385253906, - 84.01905059814453, - 400.1883239746094 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-coordinate", - "origin": [ - 84.01905059814453, - 397.7002868652344 - ], - "bbox": [ - 84.01905059814453, - 389.91949462890625, - 132.96131896972656, - 400.08135986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 389.91949462890625, - 132.96131896972656, - 400.1883239746094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 42.69020462036133, - 409.6623840332031 - ], - "bbox": [ - 42.69020462036133, - 402.1878356933594, - 47.671504974365234, - 412.1504211425781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 402.1878356933594, - 47.671504974365234, - 412.1504211425781 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 78.51969909667969, - 409.6623840332031 - ], - "bbox": [ - 78.51969909667969, - 402.1878356933594, - 83.5009994506836, - 412.1504211425781 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-coordinate", - "origin": [ - 83.50897216796875, - 409.6623840332031 - ], - "bbox": [ - 83.50897216796875, - 401.881591796875, - 132.4442596435547, - 412.04345703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 401.881591796875, - 132.4442596435547, - 412.1504211425781 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 301.71881103515625, - 103.3038330078125, - 521.7967529296875, - 233.29513549804688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Greek symbols", - "origin": [ - 301.71881103515625, - 110.77838134765625 - ], - "bbox": [ - 301.71881103515625, - 103.3038330078125, - 363.11431884765625, - 113.26642608642578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 103.3038330078125, - 363.11431884765625, - 113.26642608642578 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "a", - "origin": [ - 301.71881103515625, - 122.740478515625 - ], - "bbox": [ - 301.71881103515625, - 114.75047302246094, - 306.7001037597656, - 125.74918365478516 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 114.75047302246094, - 306.7001037597656, - 125.74918365478516 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "local porosity", - "origin": [ - 337.5483093261719, - 122.740478515625 - ], - "bbox": [ - 337.5483093261719, - 114.95968627929688, - 396.36553955078125, - 125.12153625488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5483093261719, - 114.95968627929688, - 396.36553955078125, - 125.12153625488281 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 301.71881103515625, - 134.64581298828125 - ], - "bbox": [ - 301.71881103515625, - 126.65580749511719, - 307.2181701660156, - 137.65451049804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 126.65580749511719, - 307.2181701660156, - 137.65451049804688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "volume fraction", - "origin": [ - 337.5483093261719, - 134.64581298828125 - ], - "bbox": [ - 337.5483093261719, - 126.86502075195312, - 405.68157958984375, - 137.02687072753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5483093261719, - 126.86502075195312, - 405.68157958984375, - 137.02687072753906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 301.71881103515625, - 146.60791015625 - ], - "bbox": [ - 301.71881103515625, - 138.61790466308594, - 305.5544128417969, - 149.61660766601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 138.61790466308594, - 305.5544128417969, - 149.61660766601562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "dissipation rate of turbulent kinetic energy", - "origin": [ - 337.5483093261719, - 146.60791015625 - ], - "bbox": [ - 337.5483093261719, - 138.82711791992188, - 521.7967529296875, - 148.9889678955078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5483093261719, - 138.82711791992188, - 521.7967529296875, - 148.9889678955078 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 301.71881103515625, - 158.57000732421875 - ], - "bbox": [ - 301.71881103515625, - 150.5800018310547, - 307.2181701660156, - 161.57870483398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 150.5800018310547, - 307.2181701660156, - 161.57870483398438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "laminar dynamic viscosity", - "origin": [ - 337.5483093261719, - 158.57000732421875 - ], - "bbox": [ - 337.5483093261719, - 150.78921508789062, - 449.7322082519531, - 160.95106506347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5483093261719, - 150.78921508789062, - 449.7322082519531, - 160.95106506347656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 301.71881103515625, - 170.5321044921875 - ], - "bbox": [ - 301.71881103515625, - 162.54209899902344, - 307.2181701660156, - 173.54080200195312 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "e", - "origin": [ - 307.21881103515625, - 172.17669677734375 - ], - "bbox": [ - 307.21881103515625, - 166.99008178710938, - 310.4839782714844, - 173.76390075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 162.54209899902344, - 310.4839782714844, - 173.76390075683594 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "effective viscosity", - "origin": [ - 337.54949951171875, - 170.53271484375 - ], - "bbox": [ - 337.54949951171875, - 162.75192260742188, - 411.18414306640625, - 172.9137725830078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 162.75192260742188, - 411.18414306640625, - 172.9137725830078 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 301.7200012207031, - 182.49481201171875 - ], - "bbox": [ - 301.7200012207031, - 174.5048065185547, - 307.2193603515625, - 185.50350952148438 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "t", - "origin": [ - 307.21881103515625, - 184.138916015625 - ], - "bbox": [ - 307.21881103515625, - 178.95230102539062, - 309.7069091796875, - 185.7261199951172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 174.5048065185547, - 309.7069091796875, - 185.7261199951172 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "turbulent viscosity", - "origin": [ - 337.54949951171875, - 182.49481201171875 - ], - "bbox": [ - 337.54949951171875, - 174.71401977539062, - 416.7970275878906, - 184.87586975097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 174.71401977539062, - 416.7970275878906, - 184.87586975097656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 301.7200012207031, - 194.4569091796875 - ], - "bbox": [ - 301.7200012207031, - 186.46690368652344, - 307.2193603515625, - 197.46560668945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 186.46690368652344, - 307.2193603515625, - 197.46560668945312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "density", - "origin": [ - 337.54949951171875, - 194.4569091796875 - ], - "bbox": [ - 337.54949951171875, - 186.67611694335938, - 367.7939758300781, - 196.8379669189453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 186.67611694335938, - 367.7939758300781, - 196.8379669189453 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "r", - "origin": [ - 301.7200012207031, - 206.41900634765625 - ], - "bbox": [ - 301.7200012207031, - 198.4290008544922, - 307.2193603515625, - 209.42770385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 198.4290008544922, - 307.2193603515625, - 209.42770385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "turbulent Prandtl number", - "origin": [ - 337.54949951171875, - 206.41900634765625 - ], - "bbox": [ - 337.54949951171875, - 198.63821411132812, - 448.69232177734375, - 208.80006408691406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 198.63821411132812, - 448.69232177734375, - 208.80006408691406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "s", - "origin": [ - 301.7200012207031, - 218.381103515625 - ], - "bbox": [ - 301.7200012207031, - 210.39109802246094, - 306.07366943359375, - 221.38980102539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 210.39109802246094, - 306.07366943359375, - 221.38980102539062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "shear stress", - "origin": [ - 337.54949951171875, - 218.381103515625 - ], - "bbox": [ - 337.54949951171875, - 210.60031127929688, - 386.47186279296875, - 220.7621612548828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 210.60031127929688, - 386.47186279296875, - 220.7621612548828 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 301.7200012207031, - 230.28643798828125 - ], - "bbox": [ - 301.7200012207031, - 222.2964324951172, - 308.3551025390625, - 233.29513549804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 222.2964324951172, - 308.3551025390625, - 233.29513549804688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "generalized variable", - "origin": [ - 337.54949951171875, - 230.28643798828125 - ], - "bbox": [ - 337.54949951171875, - 222.50564575195312, - 422.6411437988281, - 232.66749572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 222.50564575195312, - 422.6411437988281, - 232.66749572753906 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 301.7200012207031, - 246.736083984375, - 542.7848510742188, - 400.70770263671875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Subscripts", - "origin": [ - 301.7200012207031, - 254.21063232421875 - ], - "bbox": [ - 301.7200012207031, - 246.736083984375, - 344.6458740234375, - 256.69866943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 246.736083984375, - 344.6458740234375, - 256.69866943359375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "a", - "origin": [ - 301.7200012207031, - 266.1727294921875 - ], - "bbox": [ - 301.7200012207031, - 258.3919372558594, - 306.7012939453125, - 268.5538024902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 258.3919372558594, - 306.7012939453125, - 268.5538024902344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "air", - "origin": [ - 337.54949951171875, - 266.1727294921875 - ], - "bbox": [ - 337.54949951171875, - 258.3919372558594, - 349.0563049316406, - 268.5538024902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 258.3919372558594, - 349.0563049316406, - 268.5538024902344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 301.7200012207031, - 278.13482666015625 - ], - "bbox": [ - 301.7200012207031, - 270.3540344238281, - 306.7012939453125, - 280.5158996582031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 270.3540344238281, - 306.7012939453125, - 280.5158996582031 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "gas-phase (mixture of vapor and non-condens-", - "origin": [ - 337.54949951171875, - 278.13482666015625 - ], - "bbox": [ - 337.54949951171875, - 270.3540344238281, - 542.7848510742188, - 280.5158996582031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 270.3540344238281, - 542.7848510742188, - 280.5158996582031 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "able gases)", - "origin": [ - 337.54949951171875, - 290.096923828125 - ], - "bbox": [ - 337.54949951171875, - 282.3161315917969, - 383.77398681640625, - 292.4779968261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 282.3161315917969, - 383.77398681640625, - 292.4779968261719 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "k", - "origin": [ - 301.7200012207031, - 302.05902099609375 - ], - "bbox": [ - 301.7200012207031, - 294.58447265625, - 307.0101318359375, - 304.54705810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 294.58447265625, - 307.0101318359375, - 304.54705810546875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "parameter for turbulent kinetic energy", - "origin": [ - 337.54949951171875, - 302.05902099609375 - ], - "bbox": [ - 337.54949951171875, - 294.2782287597656, - 503.088134765625, - 304.4400939941406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 294.2782287597656, - 503.088134765625, - 304.4400939941406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 301.7200012207031, - 314.0211181640625 - ], - "bbox": [ - 301.7200012207031, - 306.2403259277344, - 304.409912109375, - 316.4021911621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 306.2403259277344, - 304.409912109375, - 316.4021911621094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "liquid-phase", - "origin": [ - 337.54949951171875, - 314.0211181640625 - ], - "bbox": [ - 337.54949951171875, - 306.2403259277344, - 389.6977844238281, - 316.4021911621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 306.2403259277344, - 389.6977844238281, - 316.4021911621094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 301.7200012207031, - 325.9264221191406 - ], - "bbox": [ - 301.7200012207031, - 318.4518737792969, - 309.3912048339844, - 328.4144592285156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 318.4518737792969, - 309.3912048339844, - 328.4144592285156 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "phase in question (g or l)", - "origin": [ - 337.54949951171875, - 325.9264221191406 - ], - "bbox": [ - 337.54949951171875, - 318.1456298828125, - 446.5672607421875, - 328.3074951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 318.1456298828125, - 446.5672607421875, - 328.3074951171875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "t", - "origin": [ - 301.7200012207031, - 337.8885192871094 - ], - "bbox": [ - 301.7200012207031, - 330.10772705078125, - 305.03753662109375, - 340.26959228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 330.10772705078125, - 305.03753662109375, - 340.26959228515625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "turbulence", - "origin": [ - 337.54949951171875, - 337.8885192871094 - ], - "bbox": [ - 337.54949951171875, - 330.10772705078125, - 382.5286865234375, - 340.26959228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 330.10772705078125, - 382.5286865234375, - 340.26959228515625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 301.7200012207031, - 349.8506164550781 - ], - "bbox": [ - 301.7200012207031, - 342.3760681152344, - 307.2193603515625, - 352.3386535644531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 342.3760681152344, - 307.2193603515625, - 352.3386535644531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "parameter in", - "origin": [ - 337.54949951171875, - 349.8506164550781 - ], - "bbox": [ - 337.54949951171875, - 342.06982421875, - 392.50921630859375, - 352.231689453125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 392.50921630859375, - 349.8506164550781 - ], - "bbox": [ - 392.50921630859375, - 342.3760681152344, - 401.3858642578125, - 352.3386535644531 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 401.3858642578125, - 349.8506164550781 - ], - "bbox": [ - 401.3858642578125, - 342.06982421875, - 494.2951354980469, - 352.231689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 342.06982421875, - 494.2951354980469, - 352.3386535644531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 301.72003173828125, - 361.8127136230469 - ], - "bbox": [ - 301.72003173828125, - 354.3381652832031, - 306.7013244628906, - 364.3007507324219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.72003173828125, - 354.3381652832031, - 306.7013244628906, - 364.3007507324219 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "parameter in", - "origin": [ - 337.5495300292969, - 361.8127136230469 - ], - "bbox": [ - 337.5495300292969, - 354.03192138671875, - 392.5092468261719, - 364.19378662109375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 392.5092468261719, - 361.8127136230469 - ], - "bbox": [ - 392.5092468261719, - 354.3381652832031, - 400.8678283691406, - 364.3007507324219 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 400.87579345703125, - 361.8127136230469 - ], - "bbox": [ - 400.87579345703125, - 354.03192138671875, - 493.7850646972656, - 364.19378662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5495300292969, - 354.03192138671875, - 493.7850646972656, - 364.3007507324219 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 301.72003173828125, - 373.7748107910156 - ], - "bbox": [ - 301.72003173828125, - 365.7848205566406, - 305.5556335449219, - 376.78350830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.72003173828125, - 365.7848205566406, - 305.5556335449219, - 376.78350830078125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "parameter for turbulent kinetic energy dissipa-", - "origin": [ - 337.5495300292969, - 373.7748107910156 - ], - "bbox": [ - 337.5495300292969, - 365.9940185546875, - 542.6954345703125, - 376.1558837890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5495300292969, - 365.9940185546875, - 542.6954345703125, - 376.1558837890625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tion rate", - "origin": [ - 337.5495300292969, - 385.7369079589844 - ], - "bbox": [ - 337.5495300292969, - 377.95611572265625, - 374.447021484375, - 388.11798095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5495300292969, - 377.95611572265625, - 374.447021484375, - 388.11798095703125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 301.72003173828125, - 397.6990051269531 - ], - "bbox": [ - 301.72003173828125, - 389.7090148925781, - 308.3551330566406, - 400.70770263671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.72003173828125, - 389.7090148925781, - 308.3551330566406, - 400.70770263671875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "parameter for generalized variable", - "origin": [ - 337.5495300292969, - 397.6990051269531 - ], - "bbox": [ - 337.5495300292969, - 389.918212890625, - 485.4722900390625, - 400.080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5495300292969, - 389.918212890625, - 485.4722900390625, - 400.080078125 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 32.71179962158203, - 47.407169342041016, - 449.1446838378906, - 55.62236404418945 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1642", - "origin": [ - 32.71179962158203, - 53.63189697265625 - ], - "bbox": [ - 32.71179962158203, - 47.407169342041016, - 48.652198791503906, - 55.536773681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 47.407169342041016, - 48.652198791503906, - 55.536773681640625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "H.G. Hu, C. Zhang / International Journal of Heat and Mass Transfer 50 (2007) 1641–1648", - "origin": [ - 136.29013061523438, - 53.63189697265625 - ], - "bbox": [ - 136.29013061523438, - 47.652164459228516, - 449.1446838378906, - 55.62236404418945 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.29013061523438, - 47.652164459228516, - 449.1446838378906, - 55.62236404418945 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 6, - "type": 0, - "bbox": [ - 42.68980026245117, - 79.37945556640625, - 100.96005249023438, - 89.34204864501953 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSTim-B", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Nomenclature", - "origin": [ - 42.68980026245117, - 86.85400390625 - ], - "bbox": [ - 42.68980026245117, - 79.37945556640625, - 100.96005249023438, - 89.34204864501953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.68980026245117, - 79.37945556640625, - 100.96005249023438, - 89.34204864501953 - ] - } - ], - "tag": "on-table" - }, - { - "number": 7, - "type": 0, - "bbox": [ - 42.689659118652344, - 102.99740600585938, - 283.70538330078125, - 412.1504211425781 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "A", - "origin": [ - 42.68980026245117, - 110.7781982421875 - ], - "bbox": [ - 42.68980026245117, - 103.30364990234375, - 49.84294891357422, - 113.26624298095703 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.68980026245117, - 103.30364990234375, - 49.84294891357422, - 113.26624298095703 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "heat transfer area of a given control volume", - "origin": [ - 78.51929473876953, - 110.7781982421875 - ], - "bbox": [ - 78.51929473876953, - 102.99740600585938, - 269.6049499511719, - 113.15925598144531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51929473876953, - 102.99740600585938, - 269.6049499511719, - 113.15925598144531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "A", - "origin": [ - 42.68980026245117, - 122.74029541015625 - ], - "bbox": [ - 42.68980026245117, - 115.2657470703125, - 49.84294891357422, - 125.22834014892578 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 49.83300018310547, - 124.38458251953125 - ], - "bbox": [ - 49.83300018310547, - 119.19795989990234, - 53.957435607910156, - 125.9717788696289 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.68980026245117, - 115.2657470703125, - 53.957435607910156, - 125.9717788696289 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "total projected area of droplets in a given con-", - "origin": [ - 78.51969909667969, - 122.7406005859375 - ], - "bbox": [ - 78.51969909667969, - 114.95980834960938, - 283.70538330078125, - 125.12165832519531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 114.95980834960938, - 283.70538330078125, - 125.12165832519531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "trol volume", - "origin": [ - 78.51969909667969, - 134.64593505859375 - ], - "bbox": [ - 78.51969909667969, - 126.86514282226562, - 128.5050506591797, - 137.02699279785156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 126.86514282226562, - 128.5050506591797, - 137.02699279785156 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "C", - "origin": [ - 42.69020462036133, - 146.6080322265625 - ], - "bbox": [ - 42.69020462036133, - 139.13348388671875, - 49.843353271484375, - 149.09608459472656 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1", - "origin": [ - 49.83300018310547, - 148.3089599609375 - ], - "bbox": [ - 49.83300018310547, - 143.12234497070312, - 53.56890106201172, - 149.8961639404297 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ",", - "origin": [ - 53.574798583984375, - 146.60821533203125 - ], - "bbox": [ - 53.574798583984375, - 138.82742309570312, - 56.26470184326172, - 148.98927307128906 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " C", - "origin": [ - 56.26470184326172, - 146.60821533203125 - ], - "bbox": [ - 56.26470184326172, - 139.1336669921875, - 66.73738861083984, - 149.0962677001953 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "2", - "origin": [ - 66.7842025756836, - 148.3089599609375 - ], - "bbox": [ - 66.7842025756836, - 143.12234497070312, - 70.52010345458984, - 149.8961639404297 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": ",", - "origin": [ - 70.5260009765625, - 146.60821533203125 - ], - "bbox": [ - 70.5260009765625, - 138.82742309570312, - 73.21590423583984, - 148.98927307128906 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " C", - "origin": [ - 73.21590423583984, - 146.60821533203125 - ], - "bbox": [ - 73.21590423583984, - 139.1336669921875, - 83.68858337402344, - 149.0962677001953 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 83.73539733886719, - 148.3089599609375 - ], - "bbox": [ - 83.73539733886719, - 142.98287963867188, - 87.85983276367188, - 150.31454467773438 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " constants in", - "origin": [ - 87.85983276367188, - 148.3089599609375 - ], - "bbox": [ - 87.85983276367188, - 138.82742309570312, - 145.55551147460938, - 150.6900177001953 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " k", - "origin": [ - 145.55551147460938, - 146.60821533203125 - ], - "bbox": [ - 145.55551147460938, - 139.1336669921875, - 154.2219696044922, - 149.0962677001953 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "–", - "origin": [ - 154.2040252685547, - 146.60821533203125 - ], - "bbox": [ - 154.2040252685547, - 138.82742309570312, - 159.18531799316406, - 148.98927307128906 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 159.19329833984375, - 146.60821533203125 - ], - "bbox": [ - 159.19329833984375, - 138.6182098388672, - 163.02890014648438, - 149.61691284179688 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": " model", - "origin": [ - 163.02890014648438, - 146.60821533203125 - ], - "bbox": [ - 163.02890014648438, - 138.82742309570312, - 192.62478637695312, - 148.98927307128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 138.6182098388672, - 192.62478637695312, - 150.6900177001953 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "C", - "origin": [ - 42.689659118652344, - 158.5703125 - ], - "bbox": [ - 42.689659118652344, - 151.09576416015625, - 49.842803955078125, - 161.05836486816406 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 49.83300018310547, - 160.27117919921875 - ], - "bbox": [ - 49.83300018310547, - 155.08456420898438, - 52.321109771728516, - 161.85838317871094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.689659118652344, - 151.09576416015625, - 52.321109771728516, - 161.85838317871094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "interphase friction coefficient", - "origin": [ - 78.51969909667969, - 158.57037353515625 - ], - "bbox": [ - 78.51969909667969, - 150.78958129882812, - 203.1298828125, - 160.95143127441406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 150.78958129882812, - 203.1298828125, - 160.95143127441406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "C", - "origin": [ - 42.69020462036133, - 170.532470703125 - ], - "bbox": [ - 42.69020462036133, - 163.05792236328125, - 49.843353271484375, - 173.02052307128906 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "phase", - "origin": [ - 49.83300018310547, - 172.17669677734375 - ], - "bbox": [ - 49.83300018310547, - 166.99008178710938, - 67.95958709716797, - 173.76390075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 163.05792236328125, - 67.95958709716797, - 173.76390075683594 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "constant", - "origin": [ - 78.51969909667969, - 170.53271484375 - ], - "bbox": [ - 78.51969909667969, - 162.75192260742188, - 114.89116668701172, - 172.9137725830078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 162.75192260742188, - 114.89116668701172, - 172.9137725830078 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 42.69020462036133, - 182.49481201171875 - ], - "bbox": [ - 42.69020462036133, - 175.020263671875, - 50.36140441894531, - 184.9828643798828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 175.020263671875, - 50.36140441894531, - 184.9828643798828 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "diffusivity of air in steam", - "origin": [ - 78.51969909667969, - 182.49481201171875 - ], - "bbox": [ - 78.51969909667969, - 174.71401977539062, - 186.87591552734375, - 184.87586975097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 174.71401977539062, - 186.87591552734375, - 184.87586975097656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 42.69020462036133, - 194.4569091796875 - ], - "bbox": [ - 42.69020462036133, - 186.98236083984375, - 50.36140441894531, - 196.94496154785156 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 50.343299865722656, - 196.10107421875 - ], - "bbox": [ - 50.343299865722656, - 190.91445922851562, - 54.467735290527344, - 197.6882781982422 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 186.98236083984375, - 54.467735290527344, - 197.6882781982422 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "diameter of a droplet", - "origin": [ - 78.51969909667969, - 194.45697021484375 - ], - "bbox": [ - 78.51969909667969, - 186.67617797851562, - 170.4047393798828, - 196.83802795410156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 186.67617797851562, - 170.4047393798828, - 196.83802795410156 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 42.69020462036133, - 206.4190673828125 - ], - "bbox": [ - 42.69020462036133, - 198.94451904296875, - 50.36140441894531, - 208.90711975097656 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "e", - "origin": [ - 50.343299865722656, - 208.06329345703125 - ], - "bbox": [ - 50.343299865722656, - 202.87667846679688, - 53.60847473144531, - 209.65049743652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 198.94451904296875, - 53.60847473144531, - 209.65049743652344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "effective diffusivity of air in steam", - "origin": [ - 78.51969909667969, - 206.4193115234375 - ], - "bbox": [ - 78.51969909667969, - 198.63851928710938, - 224.23464965820312, - 208.8003692626953 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 198.63851928710938, - 224.23464965820312, - 208.8003692626953 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "D", - "origin": [ - 42.69020462036133, - 218.38140869140625 - ], - "bbox": [ - 42.69020462036133, - 210.9068603515625, - 50.36140441894531, - 220.8694610595703 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "t", - "origin": [ - 50.343299865722656, - 220.0255126953125 - ], - "bbox": [ - 50.343299865722656, - 214.83889770507812, - 52.8314094543457, - 221.6127166748047 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 210.9068603515625, - 52.8314094543457, - 221.6127166748047 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "turbulent diffusivity of air in steam", - "origin": [ - 78.51969909667969, - 218.38140869140625 - ], - "bbox": [ - 78.51969909667969, - 210.60061645507812, - 229.8475799560547, - 220.76246643066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 210.60061645507812, - 229.8475799560547, - 220.76246643066406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "F", - "origin": [ - 42.69020462036133, - 230.2867431640625 - ], - "bbox": [ - 42.69020462036133, - 222.81219482421875, - 48.70761489868164, - 232.77479553222656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 222.81219482421875, - 48.70761489868164, - 232.77479553222656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "force due to flow resistance", - "origin": [ - 78.51969909667969, - 230.2867431640625 - ], - "bbox": [ - 78.51969909667969, - 222.50595092773438, - 196.73390197753906, - 232.6678009033203 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 222.50595092773438, - 196.73390197753906, - 232.6678009033203 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "f", - "origin": [ - 42.69020462036133, - 242.24884033203125 - ], - "bbox": [ - 42.69020462036133, - 234.7742919921875, - 46.00775146484375, - 244.7368927001953 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "d", - "origin": [ - 45.977901458740234, - 243.95001220703125 - ], - "bbox": [ - 45.977901458740234, - 238.76339721679688, - 50.102333068847656, - 245.53721618652344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 234.7742919921875, - 50.102333068847656, - 245.53721618652344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "friction factor", - "origin": [ - 78.51969909667969, - 242.24920654296875 - ], - "bbox": [ - 78.51969909667969, - 234.46841430664062, - 138.53738403320312, - 244.63026428222656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 234.46841430664062, - 138.53738403320312, - 244.63026428222656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 42.69020462036133, - 254.2113037109375 - ], - "bbox": [ - 42.69020462036133, - 246.73675537109375, - 47.671504974365234, - 256.6993408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 246.73675537109375, - 47.671504974365234, - 256.6993408203125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "gravitational acceleration", - "origin": [ - 78.51969909667969, - 254.2113037109375 - ], - "bbox": [ - 78.51969909667969, - 246.43051147460938, - 187.45372009277344, - 256.5923767089844 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 246.43051147460938, - 187.45372009277344, - 256.5923767089844 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "G", - "origin": [ - 42.69020462036133, - 266.17340087890625 - ], - "bbox": [ - 42.69020462036133, - 258.6988525390625, - 49.843353271484375, - 268.66143798828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 258.6988525390625, - 49.843353271484375, - 268.66143798828125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "generation of turbulent kinetic energy", - "origin": [ - 78.51969909667969, - 266.17340087890625 - ], - "bbox": [ - 78.51969909667969, - 258.3926086425781, - 241.9063262939453, - 268.5544738769531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 258.3926086425781, - 241.9063262939453, - 268.5544738769531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "k", - "origin": [ - 42.69020462036133, - 278.135498046875 - ], - "bbox": [ - 42.69020462036133, - 270.66094970703125, - 47.9803466796875, - 280.62353515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 270.66094970703125, - 47.9803466796875, - 280.62353515625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "gas-phase turbulent kinetic energy", - "origin": [ - 78.51969909667969, - 278.135498046875 - ], - "bbox": [ - 78.51969909667969, - 270.3547058105469, - 226.05381774902344, - 280.5165710449219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 270.3547058105469, - 226.05381774902344, - 280.5165710449219 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvP4C4E59", - "color": 0, - "ascender": 0.75, - "descender": -0.25, - "text": "_", - "origin": [ - 44.90090560913086, - 290.0408020019531 - ], - "bbox": [ - 44.90090560913086, - 282.56884765625, - 47.5908088684082, - 292.5314636230469 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvSPSMI", - "color": 0, - "ascender": 0.8949999809265137, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 42.69020462036133, - 290.09759521484375 - ], - "bbox": [ - 42.69020462036133, - 281.1810607910156, - 49.843353271484375, - 292.4786682128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 281.1810607910156, - 49.843353271484375, - 292.5314636230469 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "vapor condensation rate per unit volume", - "origin": [ - 78.51969909667969, - 290.09759521484375 - ], - "bbox": [ - 78.51969909667969, - 282.3168029785156, - 255.20443725585938, - 292.4786682128906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 282.3168029785156, - 255.20443725585938, - 292.4786682128906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "p", - "origin": [ - 42.69020462036133, - 302.0596923828125 - ], - "bbox": [ - 42.69020462036133, - 294.58514404296875, - 47.671504974365234, - 304.5477294921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 294.58514404296875, - 47.671504974365234, - 304.5477294921875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "pressure", - "origin": [ - 78.51969909667969, - 302.0596923828125 - ], - "bbox": [ - 78.51969909667969, - 294.2789001464844, - 113.65679931640625, - 304.4407653808594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 294.2789001464844, - 113.65679931640625, - 304.4407653808594 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "q", - "origin": [ - 42.69020462036133, - 314.02178955078125 - ], - "bbox": [ - 42.69020462036133, - 306.5472412109375, - 47.671504974365234, - 316.50982666015625 - ] - }, - { - "size": 6.973800182342529, - "flags": 5, - "font": "AdvP4C4E74", - "color": 0, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": "00", - "origin": [ - 47.6786994934082, - 310.39398193359375 - ], - "bbox": [ - 47.6786994934082, - 305.024169921875, - 51.44455337524414, - 317.07489013671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 305.024169921875, - 51.44455337524414, - 317.07489013671875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "heat flux", - "origin": [ - 78.51969909667969, - 314.02239990234375 - ], - "bbox": [ - 78.51969909667969, - 306.2416076660156, - 116.04283905029297, - 316.4034729003906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 306.2416076660156, - 116.04283905029297, - 316.4034729003906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "R", - "origin": [ - 42.69020462036133, - 325.9277038574219 - ], - "bbox": [ - 42.69020462036133, - 318.4531555175781, - 49.843353271484375, - 328.4157409667969 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 318.4531555175781, - 49.843353271484375, - 328.4157409667969 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "source term due to tube bundles", - "origin": [ - 78.51969909667969, - 325.9277038574219 - ], - "bbox": [ - 78.51969909667969, - 318.14691162109375, - 218.23422241210938, - 328.30877685546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 318.14691162109375, - 218.23422241210938, - 328.30877685546875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "U", - "origin": [ - 42.69020462036133, - 337.8898010253906 - ], - "bbox": [ - 42.69020462036133, - 330.4152526855469, - 50.36140441894531, - 340.3778381347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 330.4152526855469, - 50.36140441894531, - 340.3778381347656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "velocity magnitude", - "origin": [ - 78.51969909667969, - 337.8898010253906 - ], - "bbox": [ - 78.51969909667969, - 330.1090087890625, - 159.89222717285156, - 340.2708740234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 330.1090087890625, - 159.89222717285156, - 340.2708740234375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "u", - "origin": [ - 42.69020462036133, - 349.8518981933594 - ], - "bbox": [ - 42.69020462036133, - 342.3773498535156, - 47.671504974365234, - 352.3399353027344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 342.3773498535156, - 47.671504974365234, - 352.3399353027344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "velocity component in", - "origin": [ - 78.51969909667969, - 349.8518981933594 - ], - "bbox": [ - 78.51969909667969, - 342.07110595703125, - 174.1287841796875, - 352.23297119140625 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 174.1287841796875, - 349.8518981933594 - ], - "bbox": [ - 174.1287841796875, - 342.3773498535156, - 183.00445556640625, - 352.3399353027344 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-direction", - "origin": [ - 183.00445556640625, - 349.8518981933594 - ], - "bbox": [ - 183.00445556640625, - 342.07110595703125, - 224.13804626464844, - 352.23297119140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 342.07110595703125, - 224.13804626464844, - 352.3399353027344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "V", - "origin": [ - 42.69020080566406, - 361.8139953613281 - ], - "bbox": [ - 42.69020080566406, - 354.3394470214844, - 49.843345642089844, - 364.3020324707031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020080566406, - 354.3394470214844, - 49.843345642089844, - 364.3020324707031 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "volume", - "origin": [ - 78.51969909667969, - 361.8139953613281 - ], - "bbox": [ - 78.51969909667969, - 354.033203125, - 109.79627990722656, - 364.195068359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 354.033203125, - 109.79627990722656, - 364.195068359375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "v", - "origin": [ - 42.69020462036133, - 373.7760925292969 - ], - "bbox": [ - 42.69020462036133, - 366.3015441894531, - 47.043861389160156, - 376.2641296386719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 366.3015441894531, - 47.043861389160156, - 376.2641296386719 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "velocity component in", - "origin": [ - 78.51969909667969, - 373.7760925292969 - ], - "bbox": [ - 78.51969909667969, - 365.99530029296875, - 174.1287841796875, - 376.15716552734375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 174.1287841796875, - 373.7760925292969 - ], - "bbox": [ - 174.1287841796875, - 366.3015441894531, - 182.48638916015625, - 376.2641296386719 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-direction", - "origin": [ - 182.49436950683594, - 373.7760925292969 - ], - "bbox": [ - 182.49436950683594, - 365.99530029296875, - 223.65286254882812, - 376.15716552734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 365.99530029296875, - 223.65286254882812, - 376.2641296386719 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "W", - "origin": [ - 42.69020080566406, - 385.7381896972656 - ], - "bbox": [ - 42.69020080566406, - 378.2636413574219, - 52.543212890625, - 388.2262268066406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020080566406, - 378.2636413574219, - 52.543212890625, - 388.2262268066406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "source term due to the interphase friction", - "origin": [ - 78.51969909667969, - 385.7381896972656 - ], - "bbox": [ - 78.51969909667969, - 377.9573974609375, - 258.33367919921875, - 388.1192626953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 377.9573974609375, - 258.33367919921875, - 388.1192626953125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 42.69020462036133, - 397.7002868652344 - ], - "bbox": [ - 42.69020462036133, - 390.2257385253906, - 48.18955993652344, - 400.1883239746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 390.2257385253906, - 48.18955993652344, - 400.1883239746094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 78.51969909667969, - 397.7002868652344 - ], - "bbox": [ - 78.51969909667969, - 390.2257385253906, - 84.01905059814453, - 400.1883239746094 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-coordinate", - "origin": [ - 84.01905059814453, - 397.7002868652344 - ], - "bbox": [ - 84.01905059814453, - 389.91949462890625, - 132.96131896972656, - 400.08135986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 389.91949462890625, - 132.96131896972656, - 400.1883239746094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 42.69020462036133, - 409.6623840332031 - ], - "bbox": [ - 42.69020462036133, - 402.1878356933594, - 47.671504974365234, - 412.1504211425781 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 42.69020462036133, - 402.1878356933594, - 47.671504974365234, - 412.1504211425781 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 78.51969909667969, - 409.6623840332031 - ], - "bbox": [ - 78.51969909667969, - 402.1878356933594, - 83.5009994506836, - 412.1504211425781 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-coordinate", - "origin": [ - 83.50897216796875, - 409.6623840332031 - ], - "bbox": [ - 83.50897216796875, - 401.881591796875, - 132.4442596435547, - 412.04345703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 78.51969909667969, - 401.881591796875, - 132.4442596435547, - 412.1504211425781 - ] - } - ], - "tag": "on-table" - }, - { - "number": 8, - "type": 0, - "bbox": [ - 301.71881103515625, - 103.3038330078125, - 521.7967529296875, - 233.29513549804688 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Greek symbols", - "origin": [ - 301.71881103515625, - 110.77838134765625 - ], - "bbox": [ - 301.71881103515625, - 103.3038330078125, - 363.11431884765625, - 113.26642608642578 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 103.3038330078125, - 363.11431884765625, - 113.26642608642578 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "a", - "origin": [ - 301.71881103515625, - 122.740478515625 - ], - "bbox": [ - 301.71881103515625, - 114.75047302246094, - 306.7001037597656, - 125.74918365478516 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 114.75047302246094, - 306.7001037597656, - 125.74918365478516 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "local porosity", - "origin": [ - 337.5483093261719, - 122.740478515625 - ], - "bbox": [ - 337.5483093261719, - 114.95968627929688, - 396.36553955078125, - 125.12153625488281 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5483093261719, - 114.95968627929688, - 396.36553955078125, - 125.12153625488281 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "b", - "origin": [ - 301.71881103515625, - 134.64581298828125 - ], - "bbox": [ - 301.71881103515625, - 126.65580749511719, - 307.2181701660156, - 137.65451049804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 126.65580749511719, - 307.2181701660156, - 137.65451049804688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "volume fraction", - "origin": [ - 337.5483093261719, - 134.64581298828125 - ], - "bbox": [ - 337.5483093261719, - 126.86502075195312, - 405.68157958984375, - 137.02687072753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5483093261719, - 126.86502075195312, - 405.68157958984375, - 137.02687072753906 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 301.71881103515625, - 146.60791015625 - ], - "bbox": [ - 301.71881103515625, - 138.61790466308594, - 305.5544128417969, - 149.61660766601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 138.61790466308594, - 305.5544128417969, - 149.61660766601562 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "dissipation rate of turbulent kinetic energy", - "origin": [ - 337.5483093261719, - 146.60791015625 - ], - "bbox": [ - 337.5483093261719, - 138.82711791992188, - 521.7967529296875, - 148.9889678955078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5483093261719, - 138.82711791992188, - 521.7967529296875, - 148.9889678955078 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 301.71881103515625, - 158.57000732421875 - ], - "bbox": [ - 301.71881103515625, - 150.5800018310547, - 307.2181701660156, - 161.57870483398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 150.5800018310547, - 307.2181701660156, - 161.57870483398438 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "laminar dynamic viscosity", - "origin": [ - 337.5483093261719, - 158.57000732421875 - ], - "bbox": [ - 337.5483093261719, - 150.78921508789062, - 449.7322082519531, - 160.95106506347656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5483093261719, - 150.78921508789062, - 449.7322082519531, - 160.95106506347656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 301.71881103515625, - 170.5321044921875 - ], - "bbox": [ - 301.71881103515625, - 162.54209899902344, - 307.2181701660156, - 173.54080200195312 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "e", - "origin": [ - 307.21881103515625, - 172.17669677734375 - ], - "bbox": [ - 307.21881103515625, - 166.99008178710938, - 310.4839782714844, - 173.76390075683594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.71881103515625, - 162.54209899902344, - 310.4839782714844, - 173.76390075683594 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "effective viscosity", - "origin": [ - 337.54949951171875, - 170.53271484375 - ], - "bbox": [ - 337.54949951171875, - 162.75192260742188, - 411.18414306640625, - 172.9137725830078 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 162.75192260742188, - 411.18414306640625, - 172.9137725830078 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "l", - "origin": [ - 301.7200012207031, - 182.49481201171875 - ], - "bbox": [ - 301.7200012207031, - 174.5048065185547, - 307.2193603515625, - 185.50350952148438 - ] - }, - { - "size": 7.044162273406982, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "t", - "origin": [ - 307.21881103515625, - 184.138916015625 - ], - "bbox": [ - 307.21881103515625, - 178.95230102539062, - 309.7069091796875, - 185.7261199951172 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 174.5048065185547, - 309.7069091796875, - 185.7261199951172 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "turbulent viscosity", - "origin": [ - 337.54949951171875, - 182.49481201171875 - ], - "bbox": [ - 337.54949951171875, - 174.71401977539062, - 416.7970275878906, - 184.87586975097656 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 174.71401977539062, - 416.7970275878906, - 184.87586975097656 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "q", - "origin": [ - 301.7200012207031, - 194.4569091796875 - ], - "bbox": [ - 301.7200012207031, - 186.46690368652344, - 307.2193603515625, - 197.46560668945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 186.46690368652344, - 307.2193603515625, - 197.46560668945312 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "density", - "origin": [ - 337.54949951171875, - 194.4569091796875 - ], - "bbox": [ - 337.54949951171875, - 186.67611694335938, - 367.7939758300781, - 196.8379669189453 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 186.67611694335938, - 367.7939758300781, - 196.8379669189453 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "r", - "origin": [ - 301.7200012207031, - 206.41900634765625 - ], - "bbox": [ - 301.7200012207031, - 198.4290008544922, - 307.2193603515625, - 209.42770385742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 198.4290008544922, - 307.2193603515625, - 209.42770385742188 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "turbulent Prandtl number", - "origin": [ - 337.54949951171875, - 206.41900634765625 - ], - "bbox": [ - 337.54949951171875, - 198.63821411132812, - 448.69232177734375, - 208.80006408691406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 198.63821411132812, - 448.69232177734375, - 208.80006408691406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "s", - "origin": [ - 301.7200012207031, - 218.381103515625 - ], - "bbox": [ - 301.7200012207031, - 210.39109802246094, - 306.07366943359375, - 221.38980102539062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 210.39109802246094, - 306.07366943359375, - 221.38980102539062 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "shear stress", - "origin": [ - 337.54949951171875, - 218.381103515625 - ], - "bbox": [ - 337.54949951171875, - 210.60031127929688, - 386.47186279296875, - 220.7621612548828 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 210.60031127929688, - 386.47186279296875, - 220.7621612548828 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 301.7200012207031, - 230.28643798828125 - ], - "bbox": [ - 301.7200012207031, - 222.2964324951172, - 308.3551025390625, - 233.29513549804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 222.2964324951172, - 308.3551025390625, - 233.29513549804688 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "generalized variable", - "origin": [ - 337.54949951171875, - 230.28643798828125 - ], - "bbox": [ - 337.54949951171875, - 222.50564575195312, - 422.6411437988281, - 232.66749572753906 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 222.50564575195312, - 422.6411437988281, - 232.66749572753906 - ] - } - ], - "tag": "on-table" - }, - { - "number": 9, - "type": 0, - "bbox": [ - 301.7200012207031, - 246.736083984375, - 542.7848510742188, - 400.70770263671875 - ], - "lines": [ - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "Subscripts", - "origin": [ - 301.7200012207031, - 254.21063232421875 - ], - "bbox": [ - 301.7200012207031, - 246.736083984375, - 344.6458740234375, - 256.69866943359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 246.736083984375, - 344.6458740234375, - 256.69866943359375 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "a", - "origin": [ - 301.7200012207031, - 266.1727294921875 - ], - "bbox": [ - 301.7200012207031, - 258.3919372558594, - 306.7012939453125, - 268.5538024902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 258.3919372558594, - 306.7012939453125, - 268.5538024902344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "air", - "origin": [ - 337.54949951171875, - 266.1727294921875 - ], - "bbox": [ - 337.54949951171875, - 258.3919372558594, - 349.0563049316406, - 268.5538024902344 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 258.3919372558594, - 349.0563049316406, - 268.5538024902344 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "g", - "origin": [ - 301.7200012207031, - 278.13482666015625 - ], - "bbox": [ - 301.7200012207031, - 270.3540344238281, - 306.7012939453125, - 280.5158996582031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 270.3540344238281, - 306.7012939453125, - 280.5158996582031 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "gas-phase (mixture of vapor and non-condens-", - "origin": [ - 337.54949951171875, - 278.13482666015625 - ], - "bbox": [ - 337.54949951171875, - 270.3540344238281, - 542.7848510742188, - 280.5158996582031 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 270.3540344238281, - 542.7848510742188, - 280.5158996582031 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "able gases)", - "origin": [ - 337.54949951171875, - 290.096923828125 - ], - "bbox": [ - 337.54949951171875, - 282.3161315917969, - 383.77398681640625, - 292.4779968261719 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 282.3161315917969, - 383.77398681640625, - 292.4779968261719 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "k", - "origin": [ - 301.7200012207031, - 302.05902099609375 - ], - "bbox": [ - 301.7200012207031, - 294.58447265625, - 307.0101318359375, - 304.54705810546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 294.58447265625, - 307.0101318359375, - 304.54705810546875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "parameter for turbulent kinetic energy", - "origin": [ - 337.54949951171875, - 302.05902099609375 - ], - "bbox": [ - 337.54949951171875, - 294.2782287597656, - 503.088134765625, - 304.4400939941406 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 294.2782287597656, - 503.088134765625, - 304.4400939941406 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "l", - "origin": [ - 301.7200012207031, - 314.0211181640625 - ], - "bbox": [ - 301.7200012207031, - 306.2403259277344, - 304.409912109375, - 316.4021911621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 306.2403259277344, - 304.409912109375, - 316.4021911621094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "liquid-phase", - "origin": [ - 337.54949951171875, - 314.0211181640625 - ], - "bbox": [ - 337.54949951171875, - 306.2403259277344, - 389.6977844238281, - 316.4021911621094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 306.2403259277344, - 389.6977844238281, - 316.4021911621094 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "m", - "origin": [ - 301.7200012207031, - 325.9264221191406 - ], - "bbox": [ - 301.7200012207031, - 318.4518737792969, - 309.3912048339844, - 328.4144592285156 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 318.4518737792969, - 309.3912048339844, - 328.4144592285156 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "phase in question (g or l)", - "origin": [ - 337.54949951171875, - 325.9264221191406 - ], - "bbox": [ - 337.54949951171875, - 318.1456298828125, - 446.5672607421875, - 328.3074951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 318.1456298828125, - 446.5672607421875, - 328.3074951171875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "t", - "origin": [ - 301.7200012207031, - 337.8885192871094 - ], - "bbox": [ - 301.7200012207031, - 330.10772705078125, - 305.03753662109375, - 340.26959228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 330.10772705078125, - 305.03753662109375, - 340.26959228515625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "turbulence", - "origin": [ - 337.54949951171875, - 337.8885192871094 - ], - "bbox": [ - 337.54949951171875, - 330.10772705078125, - 382.5286865234375, - 340.26959228515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 330.10772705078125, - 382.5286865234375, - 340.26959228515625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "x", - "origin": [ - 301.7200012207031, - 349.8506164550781 - ], - "bbox": [ - 301.7200012207031, - 342.3760681152344, - 307.2193603515625, - 352.3386535644531 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.7200012207031, - 342.3760681152344, - 307.2193603515625, - 352.3386535644531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "parameter in", - "origin": [ - 337.54949951171875, - 349.8506164550781 - ], - "bbox": [ - 337.54949951171875, - 342.06982421875, - 392.50921630859375, - 352.231689453125 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " x", - "origin": [ - 392.50921630859375, - 349.8506164550781 - ], - "bbox": [ - 392.50921630859375, - 342.3760681152344, - 401.3858642578125, - 352.3386535644531 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 401.3858642578125, - 349.8506164550781 - ], - "bbox": [ - 401.3858642578125, - 342.06982421875, - 494.2951354980469, - 352.231689453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.54949951171875, - 342.06982421875, - 494.2951354980469, - 352.3386535644531 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "y", - "origin": [ - 301.72003173828125, - 361.8127136230469 - ], - "bbox": [ - 301.72003173828125, - 354.3381652832031, - 306.7013244628906, - 364.3007507324219 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.72003173828125, - 354.3381652832031, - 306.7013244628906, - 364.3007507324219 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "parameter in", - "origin": [ - 337.5495300292969, - 361.8127136230469 - ], - "bbox": [ - 337.5495300292969, - 354.03192138671875, - 392.5092468261719, - 364.19378662109375 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": " y", - "origin": [ - 392.5092468261719, - 361.8127136230469 - ], - "bbox": [ - 392.5092468261719, - 354.3381652832031, - 400.8678283691406, - 364.3007507324219 - ] - }, - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "-momentum equation", - "origin": [ - 400.87579345703125, - 361.8127136230469 - ], - "bbox": [ - 400.87579345703125, - 354.03192138671875, - 493.7850646972656, - 364.19378662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5495300292969, - 354.03192138671875, - 493.7850646972656, - 364.3007507324219 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "e", - "origin": [ - 301.72003173828125, - 373.7748107910156 - ], - "bbox": [ - 301.72003173828125, - 365.7848205566406, - 305.5556335449219, - 376.78350830078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.72003173828125, - 365.7848205566406, - 305.5556335449219, - 376.78350830078125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "parameter for turbulent kinetic energy dissipa-", - "origin": [ - 337.5495300292969, - 373.7748107910156 - ], - "bbox": [ - 337.5495300292969, - 365.9940185546875, - 542.6954345703125, - 376.1558837890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5495300292969, - 365.9940185546875, - 542.6954345703125, - 376.1558837890625 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "tion rate", - "origin": [ - 337.5495300292969, - 385.7369079589844 - ], - "bbox": [ - 337.5495300292969, - 377.95611572265625, - 374.447021484375, - 388.11798095703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5495300292969, - 377.95611572265625, - 374.447021484375, - 388.11798095703125 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvPSMP10", - "color": 0, - "ascender": 0.8019999861717224, - "descender": -0.3019999861717224, - "text": "/", - "origin": [ - 301.72003173828125, - 397.6990051269531 - ], - "bbox": [ - 301.72003173828125, - 389.7090148925781, - 308.3551330566406, - 400.70770263671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 301.72003173828125, - 389.7090148925781, - 308.3551330566406, - 400.70770263671875 - ] - }, - { - "spans": [ - { - "size": 9.962599754333496, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "parameter for generalized variable", - "origin": [ - 337.5495300292969, - 397.6990051269531 - ], - "bbox": [ - 337.5495300292969, - 389.918212890625, - 485.4722900390625, - 400.080078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 337.5495300292969, - 389.918212890625, - 485.4722900390625, - 400.080078125 - ] - } - ], - "tag": "on-table" - }, - { - "number": 10, - "type": 0, - "bbox": [ - 32.71179962158203, - 47.407169342041016, - 449.1446838378906, - 55.62236404418945 - ], - "lines": [ - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM", - "color": 0, - "ascender": 0.781000018119812, - "descender": -0.23899999260902405, - "text": "1642", - "origin": [ - 32.71179962158203, - 53.63189697265625 - ], - "bbox": [ - 32.71179962158203, - 47.407169342041016, - 48.652198791503906, - 55.536773681640625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 32.71179962158203, - 47.407169342041016, - 48.652198791503906, - 55.536773681640625 - ] - }, - { - "spans": [ - { - "size": 7.970200061798096, - "flags": 4, - "font": "AdvEPSTIM-I", - "color": 0, - "ascender": 0.7179999947547913, - "descender": -0.23899999260902405, - "text": "H.G. Hu, C. Zhang / International Journal of Heat and Mass Transfer 50 (2007) 1641–1648", - "origin": [ - 136.29013061523438, - 53.63189697265625 - ], - "bbox": [ - 136.29013061523438, - 47.652164459228516, - 449.1446838378906, - 55.62236404418945 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 136.29013061523438, - 47.652164459228516, - 449.1446838378906, - 55.62236404418945 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 595.2760009765625, - 793.7009887695312 - ] - } -} \ No newline at end of file diff --git "a/tests/assets/pre_proc_results/\351\241\266\351\203\250\351\207\221\345\255\227\345\241\224\345\275\242\345\270\203\345\261\200\347\232\204\345\233\276\347\211\207_10.1002_mrm.24141_5.pdf/preproc_out.json" "b/tests/assets/pre_proc_results/\351\241\266\351\203\250\351\207\221\345\255\227\345\241\224\345\275\242\345\270\203\345\261\200\347\232\204\345\233\276\347\211\207_10.1002_mrm.24141_5.pdf/preproc_out.json" deleted file mode 100644 index e9a091555..000000000 --- "a/tests/assets/pre_proc_results/\351\241\266\351\203\250\351\207\221\345\255\227\345\241\224\345\275\242\345\270\203\345\261\200\347\232\204\345\233\276\347\211\207_10.1002_mrm.24141_5.pdf/preproc_out.json" +++ /dev/null @@ -1,3520 +0,0 @@ -{ - "page_0": { - "para_blocks": {}, - "preproc_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 60.49040222167969, - 558.5318603515625, - 300.5392761230469, - 754.4978637695312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ganglia, the thalamus, and the globus pallidus. There-", - "origin": [ - 60.49129867553711, - 565.2568359375 - ], - "bbox": [ - 60.49129867553711, - 558.5318603515625, - 300.5320739746094, - 567.5318603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 558.5318603515625, - 300.5320739746094, - 567.5318603515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fore, we attribute the apparent anomalies in attenuation", - "origin": [ - 60.49129867553711, - 576.2548217773438 - ], - "bbox": [ - 60.49129867553711, - 569.5298461914062, - 300.5132141113281, - 578.5298461914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 569.5298461914062, - 300.5132141113281, - 578.5298461914062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "to be due to boundary effects caused by these structures", - "origin": [ - 60.49129867553711, - 587.2528076171875 - ], - "bbox": [ - 60.49129867553711, - 580.52783203125, - 300.51141357421875, - 589.52783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 580.52783203125, - 300.51141357421875, - 589.52783203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "since deflections of the CSTs in this area are forced to be", - "origin": [ - 60.49129867553711, - 598.2507934570312 - ], - "bbox": [ - 60.49129867553711, - 591.5258178710938, - 300.5356750488281, - 600.5258178710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 591.5258178710938, - 300.5356750488281, - 600.5258178710938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "partially internally reflected, thereby inducing a local fo-", - "origin": [ - 60.49129867553711, - 609.248779296875 - ], - "bbox": [ - 60.49129867553711, - 602.5238037109375, - 300.49969482421875, - 611.5238037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 602.5238037109375, - 300.49969482421875, - 611.5238037109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "cusing or increase in amplitude as the waves pass", - "origin": [ - 60.49129867553711, - 620.246826171875 - ], - "bbox": [ - 60.49129867553711, - 613.5218505859375, - 300.5212707519531, - 622.5218505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 613.5218505859375, - 300.5212707519531, - 622.5218505859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "through this region. Once the waves have passed through", - "origin": [ - 60.49129867553711, - 631.2448120117188 - ], - "bbox": [ - 60.49129867553711, - 624.5198364257812, - 300.5014953613281, - 633.5198364257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 624.5198364257812, - 300.5014953613281, - 633.5198364257812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "this area, they attenuate nearly linearly as they propagate", - "origin": [ - 60.49129867553711, - 642.2427978515625 - ], - "bbox": [ - 60.49129867553711, - 635.517822265625, - 300.5392761230469, - 644.517822265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 635.517822265625, - 300.5392761230469, - 644.517822265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "towards the top of the CSTs. To demonstrate this behav-", - "origin": [ - 60.49129867553711, - 653.2408447265625 - ], - "bbox": [ - 60.49129867553711, - 646.515869140625, - 300.4979248046875, - 655.515869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 646.515869140625, - 300.4979248046875, - 655.515869140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ior, we show below in Fig. 7 the", - "origin": [ - 60.49129867553711, - 664.2388305664062 - ], - "bbox": [ - 60.49129867553711, - 657.5138549804688, - 210.3745880126953, - 666.5138549804688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " y", - "origin": [ - 210.3745880126953, - 664.2388305664062 - ], - "bbox": [ - 210.3745880126953, - 657.5811767578125, - 220.05589294433594, - 666.5811767578125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "-component of the", - "origin": [ - 220.0811004638672, - 664.2388305664062 - ], - "bbox": [ - 220.0811004638672, - 657.5138549804688, - 300.51409912109375, - 666.5138549804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 657.5138549804688, - 300.51409912109375, - 666.5811767578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "shear displacement along the right CST of volunteer 3.", - "origin": [ - 60.49040222167969, - 675.23681640625 - ], - "bbox": [ - 60.49040222167969, - 668.5118408203125, - 300.4915771484375, - 677.5118408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 668.5118408203125, - 300.4915771484375, - 677.5118408203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "The spatial-spectral filter was performed on the data,", - "origin": [ - 60.49040222167969, - 686.2348022460938 - ], - "bbox": [ - 60.49040222167969, - 679.5098266601562, - 300.51763916015625, - 688.5098266601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 679.5098266601562, - 300.51763916015625, - 688.5098266601562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "and the Helmholtz decomposition was used to separate", - "origin": [ - 60.49040222167969, - 697.2327880859375 - ], - "bbox": [ - 60.49040222167969, - 690.5078125, - 300.5284729003906, - 699.5078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 690.5078125, - 300.5284729003906, - 699.5078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the displacement into its shear and longitudinal compo-", - "origin": [ - 60.49040222167969, - 708.2308349609375 - ], - "bbox": [ - 60.49040222167969, - 701.505859375, - 300.5041198730469, - 710.505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 701.505859375, - 300.5041198730469, - 710.505859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "nents. It should be mentioned that the amplitude of the", - "origin": [ - 60.49040222167969, - 719.2288208007812 - ], - "bbox": [ - 60.49040222167969, - 712.5038452148438, - 300.5185852050781, - 721.5038452148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 712.5038452148438, - 300.5185852050781, - 721.5038452148438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "raw data is", - "origin": [ - 60.49040222167969, - 730.226806640625 - ], - "bbox": [ - 60.49040222167969, - 723.5018310546875, - 106.62980651855469, - 732.5018310546875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 106.62980651855469, - 730.226806640625 - ], - "bbox": [ - 106.62980651855469, - 723.2968139648438, - 116.62970733642578, - 738.8488159179688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "6", - "origin": [ - 116.67290496826172, - 730.226806640625 - ], - "bbox": [ - 116.67290496826172, - 722.9188232421875, - 124.16990661621094, - 732.2877807617188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "80 microns, but due to the filtering proce-", - "origin": [ - 124.21310424804688, - 730.226806640625 - ], - "bbox": [ - 124.21310424804688, - 723.5018310546875, - 300.5221862792969, - 732.5018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 722.9188232421875, - 300.5221862792969, - 738.8488159179688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dure the resulting amplitude is on the order of 1.2", - "origin": [ - 60.49040603637695, - 741.224853515625 - ], - "bbox": [ - 60.49040603637695, - 734.4998779296875, - 300.526611328125, - 743.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040603637695, - 734.4998779296875, - 300.526611328125, - 743.4998779296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "microns.", - "origin": [ - 60.49040603637695, - 752.2228393554688 - ], - "bbox": [ - 60.49040603637695, - 745.4978637695312, - 96.46340942382812, - 754.4978637695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040603637695, - 745.4978637695312, - 96.46340942382812, - 754.4978637695312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "This rather large difference in amplitude is", - "origin": [ - 106.86650848388672, - 752.2228393554688 - ], - "bbox": [ - 106.86650848388672, - 745.4978637695312, - 300.5240173339844, - 754.4978637695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.86650848388672, - 745.4978637695312, - 300.5240173339844, - 754.4978637695312 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 312.49041748046875, - 558.524658203125, - 552.5358276367188, - 754.5016479492188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "due to the removal of many wavenumber components", - "origin": [ - 312.49041748046875, - 565.2496337890625 - ], - "bbox": [ - 312.49041748046875, - 558.524658203125, - 552.5185546875, - 567.524658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 558.524658203125, - 552.5185546875, - 567.524658203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "which are not propagating along the particular CST path-", - "origin": [ - 312.49041748046875, - 576.2476196289062 - ], - "bbox": [ - 312.49041748046875, - 569.5226440429688, - 552.4808959960938, - 578.5226440429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 569.5226440429688, - 552.4808959960938, - 578.5226440429688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "way. In Fig. 7, we show the real and imaginary parts of", - "origin": [ - 312.49041748046875, - 587.24560546875 - ], - "bbox": [ - 312.49041748046875, - 580.5206298828125, - 552.5052490234375, - 589.5206298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 580.5206298828125, - 552.5052490234375, - 589.5206298828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "this displacement, as well as the magnitude along the", - "origin": [ - 312.49041748046875, - 598.24365234375 - ], - "bbox": [ - 312.49041748046875, - 591.5186767578125, - 552.5179443359375, - 600.5186767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 591.5186767578125, - 552.5179443359375, - 600.5186767578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "pathway. As can be observed, the shear wave amplitude", - "origin": [ - 312.49041748046875, - 609.2416381835938 - ], - "bbox": [ - 312.49041748046875, - 602.5166625976562, - 552.49072265625, - 611.5166625976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 602.5166625976562, - 552.49072265625, - 611.5166625976562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "increases from the bottom of the CST to a peak value", - "origin": [ - 312.49041748046875, - 620.2396240234375 - ], - "bbox": [ - 312.49041748046875, - 613.5146484375, - 552.5159301757812, - 622.5146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 613.5146484375, - 552.5159301757812, - 622.5146484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "around 1.6 cm from the base, then attenuates nearly line-", - "origin": [ - 312.49041748046875, - 631.2376708984375 - ], - "bbox": [ - 312.49041748046875, - 624.5126953125, - 552.5025024414062, - 633.5126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 624.5126953125, - 552.5025024414062, - 633.5126953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "arly towards the top of the CST. This displacement is", - "origin": [ - 312.49041748046875, - 642.2356567382812 - ], - "bbox": [ - 312.49041748046875, - 635.5106811523438, - 552.46826171875, - 644.5106811523438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 635.5106811523438, - 552.46826171875, - 644.5106811523438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "utilized in Eq. 4b for a solution of the shear coefficient", - "origin": [ - 312.49041748046875, - 653.233642578125 - ], - "bbox": [ - 312.49041748046875, - 646.5086669921875, - 552.5277099609375, - 655.5086669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 646.5086669921875, - 552.5277099609375, - 655.5086669921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "C", - "origin": [ - 312.49041748046875, - 664.2316284179688 - ], - "bbox": [ - 312.49041748046875, - 657.5066528320312, - 318.4844055175781, - 666.5066528320312 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 318.5007019042969, - 665.7166137695312 - ], - "bbox": [ - 318.5007019042969, - 660.961669921875, - 325.9526062011719, - 667.3251953125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", and the solution for this inversion is shown in Fig.", - "origin": [ - 325.98419189453125, - 664.2426147460938 - ], - "bbox": [ - 325.98419189453125, - 657.5176391601562, - 552.4962158203125, - 666.5176391601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 657.5066528320312, - 552.4962158203125, - 667.3251953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "5. As shown in Fig. 5g, the blue dotted line corresponds", - "origin": [ - 312.49139404296875, - 675.2406005859375 - ], - "bbox": [ - 312.49139404296875, - 668.515625, - 552.5106811523438, - 677.515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 668.515625, - 552.5106811523438, - 677.515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "to volunteer 3, and the attenuation crosses zero at", - "origin": [ - 312.49139404296875, - 686.2385864257812 - ], - "bbox": [ - 312.49139404296875, - 679.5136108398438, - 552.4909057617188, - 688.5136108398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 679.5136108398438, - 552.4909057617188, - 688.5136108398438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "exactly the point of amplitude inflection of Fig. 7. Addi-", - "origin": [ - 312.49139404296875, - 697.236572265625 - ], - "bbox": [ - 312.49139404296875, - 690.5115966796875, - 552.5160522460938, - 699.5115966796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 690.5115966796875, - 552.5160522460938, - 699.5115966796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tionally, the wave velocity obtained from the wavelength", - "origin": [ - 312.49139404296875, - 708.234619140625 - ], - "bbox": [ - 312.49139404296875, - 701.5096435546875, - 552.5358276367188, - 710.5096435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 701.5096435546875, - 552.5358276367188, - 710.5096435546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "in Fig. 7 is around 2.2 m/s, which is nearly exactly the", - "origin": [ - 312.49139404296875, - 719.2326049804688 - ], - "bbox": [ - 312.49139404296875, - 712.5076293945312, - 552.5187377929688, - 721.5076293945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 712.5076293945312, - 552.5187377929688, - 721.5076293945312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "value determined using Eq. 8 and the moduli obtained", - "origin": [ - 312.49139404296875, - 730.2305908203125 - ], - "bbox": [ - 312.49139404296875, - 723.505615234375, - 552.5169677734375, - 732.505615234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 723.505615234375, - 552.5169677734375, - 732.505615234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "from the inversion, and is shown in Fig. 5e (blue dotted", - "origin": [ - 312.49139404296875, - 741.2286376953125 - ], - "bbox": [ - 312.49139404296875, - 734.503662109375, - 552.51611328125, - 743.503662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 734.503662109375, - 552.51611328125, - 743.503662109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "line). This, however, is only one explanation for this", - "origin": [ - 312.49139404296875, - 752.2266235351562 - ], - "bbox": [ - 312.49139404296875, - 745.5016479492188, - 552.4872436523438, - 754.5016479492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 745.5016479492188, - 552.4872436523438, - 754.5016479492188 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 139.69129943847656, - 527.684814453125, - 473.3660888671875, - 537.0452880859375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "FIG. 2. MRI of the head and", - "origin": [ - 139.69129943847656, - 534.01904296875 - ], - "bbox": [ - 139.69129943847656, - 527.684814453125, - 243.8323516845703, - 535.6846923828125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " u", - "origin": [ - 243.8323516845703, - 534.01904296875 - ], - "bbox": [ - 243.8323516845703, - 527.684814453125, - 250.85951232910156, - 535.6846923828125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "x", - "origin": [ - 250.86610412597656, - 535.379638671875 - ], - "bbox": [ - 250.86610412597656, - 530.9010009765625, - 253.98599243164062, - 536.5573120117188 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ",", - "origin": [ - 253.9842071533203, - 534.01904296875 - ], - "bbox": [ - 253.9842071533203, - 527.684814453125, - 256.232177734375, - 535.6846923828125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " u", - "origin": [ - 256.232177734375, - 534.01904296875 - ], - "bbox": [ - 256.232177734375, - 527.684814453125, - 263.33209228515625, - 535.6846923828125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "y,", - "origin": [ - 263.28179931640625, - 535.379638671875 - ], - "bbox": [ - 263.28179931640625, - 530.9010009765625, - 267.51885986328125, - 536.5573120117188 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " and", - "origin": [ - 267.51885986328125, - 535.379638671875 - ], - "bbox": [ - 267.51885986328125, - 527.684814453125, - 283.6861267089844, - 537.0452880859375 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " u", - "origin": [ - 283.6861267089844, - 534.01904296875 - ], - "bbox": [ - 283.6861267089844, - 527.684814453125, - 290.77166748046875, - 535.6846923828125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "z", - "origin": [ - 290.72119140625, - 535.379638671875 - ], - "bbox": [ - 290.72119140625, - 530.9010009765625, - 293.5950927734375, - 536.5573120117188 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " displacements at the top and bottom of the FOV.", - "origin": [ - 293.5950927734375, - 535.379638671875 - ], - "bbox": [ - 293.5950927734375, - 527.684814453125, - 473.3660888671875, - 537.0452880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.69129943847656, - 527.684814453125, - 473.3660888671875, - 537.0452880859375 - ] - } - ] - } - ], - "images": [ - { - "bbox": [ - 66, - 74, - 546, - 516 - ], - "image_path": "images/0_66_74_546_516.jpg" - } - ], - "tables": [], - "interline_equations": [], - "inline_equations": [ - { - "bbox": [ - 257.76, - 529.2831753554502, - 268.32, - 537.4407582938388 - ], - "image_path": "equations_inline/0_257_529_268_537.jpg" - }, - { - "bbox": [ - 285.12, - 529.2831753554502, - 295.2, - 536.4810426540284 - ], - "image_path": "equations_inline/0_285_529_295_536.jpg" - }, - { - "bbox": [ - 311.03999999999996, - 656.9253554502369, - 328.79999999999995, - 667.4822274881516 - ], - "image_path": "equations_inline/0_311_656_328_667.jpg" - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 0, - 50.68894577026367, - 612.0, - 537.0452880859375 - ], - "layout_label": "H", - "sub_layout": [] - }, - { - "layout_bbox": [ - 60.49040222167969, - 558.524658203125, - 300.5392761230469, - 754.5016479492188 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 312.49041748046875, - 558.524658203125, - 552.5358276367188, - 754.5016479492188 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "pymu_raw_blocks": [ - { - "number": 0, - "type": 0, - "bbox": [ - 60.49040222167969, - 558.5318603515625, - 300.5392761230469, - 754.4978637695312 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ganglia, the thalamus, and the globus pallidus. There-", - "origin": [ - 60.49129867553711, - 565.2568359375 - ], - "bbox": [ - 60.49129867553711, - 558.5318603515625, - 300.5320739746094, - 567.5318603515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 558.5318603515625, - 300.5320739746094, - 567.5318603515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "fore, we attribute the apparent anomalies in attenuation", - "origin": [ - 60.49129867553711, - 576.2548217773438 - ], - "bbox": [ - 60.49129867553711, - 569.5298461914062, - 300.5132141113281, - 578.5298461914062 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 569.5298461914062, - 300.5132141113281, - 578.5298461914062 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "to be due to boundary effects caused by these structures", - "origin": [ - 60.49129867553711, - 587.2528076171875 - ], - "bbox": [ - 60.49129867553711, - 580.52783203125, - 300.51141357421875, - 589.52783203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 580.52783203125, - 300.51141357421875, - 589.52783203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "since deflections of the CSTs in this area are forced to be", - "origin": [ - 60.49129867553711, - 598.2507934570312 - ], - "bbox": [ - 60.49129867553711, - 591.5258178710938, - 300.5356750488281, - 600.5258178710938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 591.5258178710938, - 300.5356750488281, - 600.5258178710938 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "partially internally reflected, thereby inducing a local fo-", - "origin": [ - 60.49129867553711, - 609.248779296875 - ], - "bbox": [ - 60.49129867553711, - 602.5238037109375, - 300.49969482421875, - 611.5238037109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 602.5238037109375, - 300.49969482421875, - 611.5238037109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "cusing or increase in amplitude as the waves pass", - "origin": [ - 60.49129867553711, - 620.246826171875 - ], - "bbox": [ - 60.49129867553711, - 613.5218505859375, - 300.5212707519531, - 622.5218505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 613.5218505859375, - 300.5212707519531, - 622.5218505859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "through this region. Once the waves have passed through", - "origin": [ - 60.49129867553711, - 631.2448120117188 - ], - "bbox": [ - 60.49129867553711, - 624.5198364257812, - 300.5014953613281, - 633.5198364257812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 624.5198364257812, - 300.5014953613281, - 633.5198364257812 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "this area, they attenuate nearly linearly as they propagate", - "origin": [ - 60.49129867553711, - 642.2427978515625 - ], - "bbox": [ - 60.49129867553711, - 635.517822265625, - 300.5392761230469, - 644.517822265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 635.517822265625, - 300.5392761230469, - 644.517822265625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "towards the top of the CSTs. To demonstrate this behav-", - "origin": [ - 60.49129867553711, - 653.2408447265625 - ], - "bbox": [ - 60.49129867553711, - 646.515869140625, - 300.4979248046875, - 655.515869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 646.515869140625, - 300.4979248046875, - 655.515869140625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "ior, we show below in Fig. 7 the", - "origin": [ - 60.49129867553711, - 664.2388305664062 - ], - "bbox": [ - 60.49129867553711, - 657.5138549804688, - 210.3745880126953, - 666.5138549804688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": " y", - "origin": [ - 210.3745880126953, - 664.2388305664062 - ], - "bbox": [ - 210.3745880126953, - 657.5811767578125, - 220.05589294433594, - 666.5811767578125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "-component of the", - "origin": [ - 220.0811004638672, - 664.2388305664062 - ], - "bbox": [ - 220.0811004638672, - 657.5138549804688, - 300.51409912109375, - 666.5138549804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49129867553711, - 657.5138549804688, - 300.51409912109375, - 666.5811767578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "shear displacement along the right CST of volunteer 3.", - "origin": [ - 60.49040222167969, - 675.23681640625 - ], - "bbox": [ - 60.49040222167969, - 668.5118408203125, - 300.4915771484375, - 677.5118408203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 668.5118408203125, - 300.4915771484375, - 677.5118408203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "The spatial-spectral filter was performed on the data,", - "origin": [ - 60.49040222167969, - 686.2348022460938 - ], - "bbox": [ - 60.49040222167969, - 679.5098266601562, - 300.51763916015625, - 688.5098266601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 679.5098266601562, - 300.51763916015625, - 688.5098266601562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "and the Helmholtz decomposition was used to separate", - "origin": [ - 60.49040222167969, - 697.2327880859375 - ], - "bbox": [ - 60.49040222167969, - 690.5078125, - 300.5284729003906, - 699.5078125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 690.5078125, - 300.5284729003906, - 699.5078125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "the displacement into its shear and longitudinal compo-", - "origin": [ - 60.49040222167969, - 708.2308349609375 - ], - "bbox": [ - 60.49040222167969, - 701.505859375, - 300.5041198730469, - 710.505859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 701.505859375, - 300.5041198730469, - 710.505859375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "nents. It should be mentioned that the amplitude of the", - "origin": [ - 60.49040222167969, - 719.2288208007812 - ], - "bbox": [ - 60.49040222167969, - 712.5038452148438, - 300.5185852050781, - 721.5038452148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 712.5038452148438, - 300.5185852050781, - 721.5038452148438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "raw data is", - "origin": [ - 60.49040222167969, - 730.226806640625 - ], - "bbox": [ - 60.49040222167969, - 723.5018310546875, - 106.62980651855469, - 732.5018310546875 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP4C4E74", - "color": 2301727, - "ascender": 0.7699999809265137, - "descender": -0.9580000042915344, - "text": " �", - "origin": [ - 106.62980651855469, - 730.226806640625 - ], - "bbox": [ - 106.62980651855469, - 723.2968139648438, - 116.62970733642578, - 738.8488159179688 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvP80675", - "color": 2301727, - "ascender": 0.8119999766349792, - "descender": -0.2290000021457672, - "text": "6", - "origin": [ - 116.67290496826172, - 730.226806640625 - ], - "bbox": [ - 116.67290496826172, - 722.9188232421875, - 124.16990661621094, - 732.2877807617188 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "80 microns, but due to the filtering proce-", - "origin": [ - 124.21310424804688, - 730.226806640625 - ], - "bbox": [ - 124.21310424804688, - 723.5018310546875, - 300.5221862792969, - 732.5018310546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040222167969, - 722.9188232421875, - 300.5221862792969, - 738.8488159179688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "dure the resulting amplitude is on the order of 1.2", - "origin": [ - 60.49040603637695, - 741.224853515625 - ], - "bbox": [ - 60.49040603637695, - 734.4998779296875, - 300.526611328125, - 743.4998779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040603637695, - 734.4998779296875, - 300.526611328125, - 743.4998779296875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "microns.", - "origin": [ - 60.49040603637695, - 752.2228393554688 - ], - "bbox": [ - 60.49040603637695, - 745.4978637695312, - 96.46340942382812, - 754.4978637695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49040603637695, - 745.4978637695312, - 96.46340942382812, - 754.4978637695312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "This rather large difference in amplitude is", - "origin": [ - 106.86650848388672, - 752.2228393554688 - ], - "bbox": [ - 106.86650848388672, - 745.4978637695312, - 300.5240173339844, - 754.4978637695312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 106.86650848388672, - 745.4978637695312, - 300.5240173339844, - 754.4978637695312 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 312.49041748046875, - 558.524658203125, - 552.5358276367188, - 754.5016479492188 - ], - "lines": [ - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "due to the removal of many wavenumber components", - "origin": [ - 312.49041748046875, - 565.2496337890625 - ], - "bbox": [ - 312.49041748046875, - 558.524658203125, - 552.5185546875, - 567.524658203125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 558.524658203125, - 552.5185546875, - 567.524658203125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "which are not propagating along the particular CST path-", - "origin": [ - 312.49041748046875, - 576.2476196289062 - ], - "bbox": [ - 312.49041748046875, - 569.5226440429688, - 552.4808959960938, - 578.5226440429688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 569.5226440429688, - 552.4808959960938, - 578.5226440429688 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "way. In Fig. 7, we show the real and imaginary parts of", - "origin": [ - 312.49041748046875, - 587.24560546875 - ], - "bbox": [ - 312.49041748046875, - 580.5206298828125, - 552.5052490234375, - 589.5206298828125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 580.5206298828125, - 552.5052490234375, - 589.5206298828125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "this displacement, as well as the magnitude along the", - "origin": [ - 312.49041748046875, - 598.24365234375 - ], - "bbox": [ - 312.49041748046875, - 591.5186767578125, - 552.5179443359375, - 600.5186767578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 591.5186767578125, - 552.5179443359375, - 600.5186767578125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "pathway. As can be observed, the shear wave amplitude", - "origin": [ - 312.49041748046875, - 609.2416381835938 - ], - "bbox": [ - 312.49041748046875, - 602.5166625976562, - 552.49072265625, - 611.5166625976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 602.5166625976562, - 552.49072265625, - 611.5166625976562 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "increases from the bottom of the CST to a peak value", - "origin": [ - 312.49041748046875, - 620.2396240234375 - ], - "bbox": [ - 312.49041748046875, - 613.5146484375, - 552.5159301757812, - 622.5146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 613.5146484375, - 552.5159301757812, - 622.5146484375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "around 1.6 cm from the base, then attenuates nearly line-", - "origin": [ - 312.49041748046875, - 631.2376708984375 - ], - "bbox": [ - 312.49041748046875, - 624.5126953125, - 552.5025024414062, - 633.5126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 624.5126953125, - 552.5025024414062, - 633.5126953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "arly towards the top of the CST. This displacement is", - "origin": [ - 312.49041748046875, - 642.2356567382812 - ], - "bbox": [ - 312.49041748046875, - 635.5106811523438, - 552.46826171875, - 644.5106811523438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 635.5106811523438, - 552.46826171875, - 644.5106811523438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "utilized in Eq. 4b for a solution of the shear coefficient", - "origin": [ - 312.49041748046875, - 653.233642578125 - ], - "bbox": [ - 312.49041748046875, - 646.5086669921875, - 552.5277099609375, - 655.5086669921875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 646.5086669921875, - 552.5277099609375, - 655.5086669921875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "C", - "origin": [ - 312.49041748046875, - 664.2316284179688 - ], - "bbox": [ - 312.49041748046875, - 657.5066528320312, - 318.4844055175781, - 666.5066528320312 - ] - }, - { - "size": 6.363489627838135, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "44", - "origin": [ - 318.5007019042969, - 665.7166137695312 - ], - "bbox": [ - 318.5007019042969, - 660.961669921875, - 325.9526062011719, - 667.3251953125 - ] - }, - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": ", and the solution for this inversion is shown in Fig.", - "origin": [ - 325.98419189453125, - 664.2426147460938 - ], - "bbox": [ - 325.98419189453125, - 657.5176391601562, - 552.4962158203125, - 666.5176391601562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49041748046875, - 657.5066528320312, - 552.4962158203125, - 667.3251953125 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "5. As shown in Fig. 5g, the blue dotted line corresponds", - "origin": [ - 312.49139404296875, - 675.2406005859375 - ], - "bbox": [ - 312.49139404296875, - 668.515625, - 552.5106811523438, - 677.515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 668.515625, - 552.5106811523438, - 677.515625 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "to volunteer 3, and the attenuation crosses zero at", - "origin": [ - 312.49139404296875, - 686.2385864257812 - ], - "bbox": [ - 312.49139404296875, - 679.5136108398438, - 552.4909057617188, - 688.5136108398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 679.5136108398438, - 552.4909057617188, - 688.5136108398438 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "exactly the point of amplitude inflection of Fig. 7. Addi-", - "origin": [ - 312.49139404296875, - 697.236572265625 - ], - "bbox": [ - 312.49139404296875, - 690.5115966796875, - 552.5160522460938, - 699.5115966796875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 690.5115966796875, - 552.5160522460938, - 699.5115966796875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "tionally, the wave velocity obtained from the wavelength", - "origin": [ - 312.49139404296875, - 708.234619140625 - ], - "bbox": [ - 312.49139404296875, - 701.5096435546875, - 552.5358276367188, - 710.5096435546875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 701.5096435546875, - 552.5358276367188, - 710.5096435546875 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "in Fig. 7 is around 2.2 m/s, which is nearly exactly the", - "origin": [ - 312.49139404296875, - 719.2326049804688 - ], - "bbox": [ - 312.49139404296875, - 712.5076293945312, - 552.5187377929688, - 721.5076293945312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 712.5076293945312, - 552.5187377929688, - 721.5076293945312 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "value determined using Eq. 8 and the moduli obtained", - "origin": [ - 312.49139404296875, - 730.2305908203125 - ], - "bbox": [ - 312.49139404296875, - 723.505615234375, - 552.5169677734375, - 732.505615234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 723.505615234375, - 552.5169677734375, - 732.505615234375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "from the inversion, and is shown in Fig. 5e (blue dotted", - "origin": [ - 312.49139404296875, - 741.2286376953125 - ], - "bbox": [ - 312.49139404296875, - 734.503662109375, - 552.51611328125, - 743.503662109375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 734.503662109375, - 552.51611328125, - 743.503662109375 - ] - }, - { - "spans": [ - { - "size": 9.0, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "line). This, however, is only one explanation for this", - "origin": [ - 312.49139404296875, - 752.2266235351562 - ], - "bbox": [ - 312.49139404296875, - 745.5016479492188, - 552.4872436523438, - 754.5016479492188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 312.49139404296875, - 745.5016479492188, - 552.4872436523438, - 754.5016479492188 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 139.69129943847656, - 527.684814453125, - 473.3660888671875, - 537.0452880859375 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "FIG. 2. MRI of the head and", - "origin": [ - 139.69129943847656, - 534.01904296875 - ], - "bbox": [ - 139.69129943847656, - 527.684814453125, - 243.8323516845703, - 535.6846923828125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " u", - "origin": [ - 243.8323516845703, - 534.01904296875 - ], - "bbox": [ - 243.8323516845703, - 527.684814453125, - 250.85951232910156, - 535.6846923828125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "x", - "origin": [ - 250.86610412597656, - 535.379638671875 - ], - "bbox": [ - 250.86610412597656, - 530.9010009765625, - 253.98599243164062, - 536.5573120117188 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": ",", - "origin": [ - 253.9842071533203, - 534.01904296875 - ], - "bbox": [ - 253.9842071533203, - 527.684814453125, - 256.232177734375, - 535.6846923828125 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " u", - "origin": [ - 256.232177734375, - 534.01904296875 - ], - "bbox": [ - 256.232177734375, - 527.684814453125, - 263.33209228515625, - 535.6846923828125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "y,", - "origin": [ - 263.28179931640625, - 535.379638671875 - ], - "bbox": [ - 263.28179931640625, - 530.9010009765625, - 267.51885986328125, - 536.5573120117188 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " and", - "origin": [ - 267.51885986328125, - 535.379638671875 - ], - "bbox": [ - 267.51885986328125, - 527.684814453125, - 283.6861267089844, - 537.0452880859375 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-I", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " u", - "origin": [ - 283.6861267089844, - 534.01904296875 - ], - "bbox": [ - 283.6861267089844, - 527.684814453125, - 290.77166748046875, - 535.6846923828125 - ] - }, - { - "size": 5.656318187713623, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": "z", - "origin": [ - 290.72119140625, - 535.379638671875 - ], - "bbox": [ - 290.72119140625, - 530.9010009765625, - 293.5950927734375, - 536.5573120117188 - ] - }, - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvHelneu-R", - "color": 2301727, - "ascender": 0.7910000085830688, - "descender": -0.20800000429153442, - "text": " displacements at the top and bottom of the FOV.", - "origin": [ - 293.5950927734375, - 535.379638671875 - ], - "bbox": [ - 293.5950927734375, - 527.684814453125, - 473.3660888671875, - 537.0452880859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 139.69129943847656, - 527.684814453125, - 473.3660888671875, - 537.0452880859375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 60.49205017089844, - 50.68894577026367, - 552.5219116210938, - 58.748680114746094 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "In Vivo Waveguide Elastography of White Matter Tracts", - "origin": [ - 60.49205017089844, - 56.6666259765625 - ], - "bbox": [ - 60.49205017089844, - 50.748783111572266, - 267.2974853515625, - 58.748680114746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49205017089844, - 50.748783111572266, - 267.2974853515625, - 58.748680114746094 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "5", - "origin": [ - 548.10595703125, - 56.6666259765625 - ], - "bbox": [ - 548.10595703125, - 50.68894577026367, - 552.5219116210938, - 58.688846588134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 548.10595703125, - 50.68894577026367, - 552.5219116210938, - 58.688846588134766 - ] - } - ] - } - ], - "global_statistic": {}, - "droped_text_block": [ - { - "number": 3, - "type": 0, - "bbox": [ - 60.49205017089844, - 50.68894577026367, - 552.5219116210938, - 58.748680114746094 - ], - "lines": [ - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL-I", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25999999046325684, - "text": "In Vivo Waveguide Elastography of White Matter Tracts", - "origin": [ - 60.49205017089844, - 56.6666259765625 - ], - "bbox": [ - 60.49205017089844, - 50.748783111572266, - 267.2974853515625, - 58.748680114746094 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 60.49205017089844, - 50.748783111572266, - 267.2974853515625, - 58.748680114746094 - ] - }, - { - "spans": [ - { - "size": 7.999899864196777, - "flags": 4, - "font": "AdvPSMEL", - "color": 2301727, - "ascender": 0.7390000224113464, - "descender": -0.25, - "text": "5", - "origin": [ - 548.10595703125, - 56.6666259765625 - ], - "bbox": [ - 548.10595703125, - 50.68894577026367, - 552.5219116210938, - 58.688846588134766 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 548.10595703125, - 50.68894577026367, - 552.5219116210938, - 58.688846588134766 - ] - } - ], - "tag": "header" - } - ], - "droped_image_block": [], - "droped_table_block": [], - "image_backup": [], - "table_backup": [], - "page_idx": 0, - "page_size": [ - 612.0, - 810.0 - ] - } -} \ No newline at end of file diff --git a/tests/clean_coverage.py b/tests/clean_coverage.py index 80c261db7..970ac1e3b 100644 --- a/tests/clean_coverage.py +++ b/tests/clean_coverage.py @@ -1,3 +1,4 @@ +# Copyright (c) Opendatalab. All rights reserved. """ clean coverage """ diff --git a/tests/get_coverage.py b/tests/get_coverage.py index 885b59a4d..b3af04cef 100644 --- a/tests/get_coverage.py +++ b/tests/get_coverage.py @@ -1,3 +1,4 @@ +# Copyright (c) Opendatalab. All rights reserved. """ get cov """ diff --git a/tests/magic-pdf.json b/tests/magic-pdf.json deleted file mode 100644 index 80d937b33..000000000 --- a/tests/magic-pdf.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "temp-output-dir": "/tmp/" -} diff --git a/tests/overall_indicator.py b/tests/overall_indicator.py deleted file mode 100644 index 67f1c9b3a..000000000 --- a/tests/overall_indicator.py +++ /dev/null @@ -1,456 +0,0 @@ -import json -import pandas as pd -import numpy as np -import re -from nltk.translate.bleu_score import sentence_bleu -import time -import argparse -import os -from sklearn.metrics import classification_report,confusion_matrix -from collections import Counter -from sklearn import metrics -from pandas import isnull - - -def indicator_cal(json_standard,json_test): - - json_standard = pd.DataFrame(json_standard) - json_test = pd.DataFrame(json_test) - - - - '''数据集总体指标''' - - a=json_test[['id','mid_json']] - b=json_standard[['id','mid_json','pass_label']] - outer_merge=pd.merge(a,b,on='id',how='outer') - outer_merge.columns=['id','standard_mid_json','test_mid_json','pass_label'] - standard_exist=outer_merge.standard_mid_json.apply(lambda x: not isnull(x)) - test_exist=outer_merge.test_mid_json.apply(lambda x: not isnull(x)) - - overall_report = {} - overall_report['accuracy']=metrics.accuracy_score(standard_exist,test_exist) - overall_report['precision']=metrics.precision_score(standard_exist,test_exist) - overall_report['recall']=metrics.recall_score(standard_exist,test_exist) - overall_report['f1_score']=metrics.f1_score(standard_exist,test_exist) - - - inner_merge=pd.merge(a,b,on='id',how='inner') - inner_merge.columns=['id','standard_mid_json','test_mid_json','pass_label'] - json_standard = inner_merge['standard_mid_json']#check一下是否对齐 - json_test = inner_merge['test_mid_json'] - - - - - '''批量读取中间生成的json文件''' - test_inline_equations=[] - test_interline_equations=[] - test_inline_euqations_bboxs=[] - test_interline_equations_bboxs=[] - test_dropped_text_bboxes=[] - test_dropped_text_tag=[] - test_dropped_image_bboxes=[] - test_dropped_table_bboxes=[] - test_preproc_num=[]#阅读顺序 - test_para_num=[] - test_para_text=[] - - for i in json_test: - mid_json=pd.DataFrame(i) - mid_json=mid_json.iloc[:,:-1] - for j1 in mid_json.loc['inline_equations',:]: - page_in_text=[] - page_in_bbox=[] - for k1 in j1: - page_in_text.append(k1['latex_text']) - page_in_bbox.append(k1['bbox']) - test_inline_equations.append(page_in_text) - test_inline_euqations_bboxs.append(page_in_bbox) - for j2 in mid_json.loc['interline_equations',:]: - page_in_text=[] - page_in_bbox=[] - for k2 in j2: - page_in_text.append(k2['latex_text']) - test_interline_equations.append(page_in_text) - test_interline_equations_bboxs.append(page_in_bbox) - - for j3 in mid_json.loc['droped_text_block',:]: - page_in_bbox=[] - page_in_tag=[] - for k3 in j3: - page_in_bbox.append(k3['bbox']) - #如果k3中存在tag这个key - if 'tag' in k3.keys(): - page_in_tag.append(k3['tag']) - else: - page_in_tag.append('None') - test_dropped_text_tag.append(page_in_tag) - test_dropped_text_bboxes.append(page_in_bbox) - for j4 in mid_json.loc['droped_image_block',:]: - test_dropped_image_bboxes.append(j4) - for j5 in mid_json.loc['droped_table_block',:]: - test_dropped_table_bboxes.append(j5) - for j6 in mid_json.loc['preproc_blocks',:]: - page_in=[] - for k6 in j6: - page_in.append(k6['number']) - test_preproc_num.append(page_in) - - test_pdf_text=[] - for j7 in mid_json.loc['para_blocks',:]: - test_para_num.append(len(j7)) - for k7 in j7: - test_pdf_text.append(k7['text']) - test_para_text.append(test_pdf_text) - - - - standard_inline_equations=[] - standard_interline_equations=[] - standard_inline_euqations_bboxs=[] - standard_interline_equations_bboxs=[] - standard_dropped_text_bboxes=[] - standard_dropped_text_tag=[] - standard_dropped_image_bboxes=[] - standard_dropped_table_bboxes=[] - standard_preproc_num=[]#阅读顺序 - standard_para_num=[] - standard_para_text=[] - - for i in json_standard: - mid_json=pd.DataFrame(i) - mid_json=mid_json.iloc[:,:-1] - for j1 in mid_json.loc['inline_equations',:]: - page_in_text=[] - page_in_bbox=[] - for k1 in j1: - page_in_text.append(k1['latex_text']) - page_in_bbox.append(k1['bbox']) - standard_inline_equations.append(page_in_text) - standard_inline_euqations_bboxs.append(page_in_bbox) - for j2 in mid_json.loc['interline_equations',:]: - page_in_text=[] - page_in_bbox=[] - for k2 in j2: - page_in_text.append(k2['latex_text']) - page_in_bbox.append(k2['bbox']) - standard_interline_equations.append(page_in_text) - standard_interline_equations_bboxs.append(page_in_bbox) - for j3 in mid_json.loc['droped_text_block',:]: - page_in_bbox=[] - page_in_tag=[] - for k3 in j3: - page_in_bbox.append(k3['bbox']) - if 'tag' in k3.keys(): - page_in_tag.append(k3['tag']) - else: - page_in_tag.append('None') - standard_dropped_text_bboxes.append(page_in_bbox) - standard_dropped_text_tag.append(page_in_tag) - for j4 in mid_json.loc['droped_image_block',:]: - standard_dropped_image_bboxes.append(j4) - for j5 in mid_json.loc['droped_table_block',:]: - standard_dropped_table_bboxes.append(j5) - for j6 in mid_json.loc['preproc_blocks',:]: - page_in=[] - for k6 in j6: - page_in.append(k6['number']) - standard_preproc_num.append(page_in) - - standard_pdf_text=[] - for j7 in mid_json.loc['para_blocks',:]: - standard_para_num.append(len(j7)) - for k7 in j7: - standard_pdf_text.append(k7['text']) - standard_para_text.append(standard_pdf_text) - - - """ - 在计算指标之前最好先确认基本统计信息是否一致 - """ - - - ''' - 计算pdf之间的总体编辑距离和bleu - 这里只计算正例的pdf - ''' - - test_para_text=np.asarray(test_para_text, dtype = object)[inner_merge['pass_label']=='yes'] - standard_para_text=np.asarray(standard_para_text, dtype = object)[inner_merge['pass_label']=='yes'] - - pdf_dis=[] - pdf_bleu=[] - for a,b in zip(test_para_text,standard_para_text): - a1=[ ''.join(i) for i in a] - b1=[ ''.join(i) for i in b] - pdf_dis.append(Levenshtein_Distance(a1,b1)) - pdf_bleu.append(sentence_bleu([a1],b1)) - overall_report['pdf间的平均编辑距离']=np.mean(pdf_dis) - overall_report['pdf间的平均bleu']=np.mean(pdf_bleu) - - - '''行内公式编辑距离和bleu''' - dis1=[] - bleu1=[] - - test_inline_equations=[ ''.join(i) for i in test_inline_equations] - standard_inline_equations=[ ''.join(i) for i in standard_inline_equations] - - for a,b in zip(test_inline_equations,standard_inline_equations): - if len(a)==0 and len(b)==0: - continue - else: - if a==b: - dis1.append(0) - bleu1.append(1) - else: - dis1.append(Levenshtein_Distance(a,b)) - bleu1.append(sentence_bleu([a],b)) - inline_equations_edit=np.mean(dis1) - inline_equations_bleu=np.mean(bleu1) - - '''行内公式bbox匹配相关指标''' - inline_equations_bbox_report=bbox_match_indicator(test_inline_euqations_bboxs,standard_inline_euqations_bboxs) - - - '''行间公式编辑距离和bleu''' - dis2=[] - bleu2=[] - - test_interline_equations=[ ''.join(i) for i in test_interline_equations] - standard_interline_equations=[ ''.join(i) for i in standard_interline_equations] - - for a,b in zip(test_interline_equations,standard_interline_equations): - if len(a)==0 and len(b)==0: - continue - else: - if a==b: - dis2.append(0) - bleu2.append(1) - else: - dis2.append(Levenshtein_Distance(a,b)) - bleu2.append(sentence_bleu([a],b)) - interline_equations_edit=np.mean(dis2) - interline_equations_bleu=np.mean(bleu2) - - - '''行间公式bbox匹配相关指标''' - interline_equations_bbox_report=bbox_match_indicator(test_interline_equations_bboxs,standard_interline_equations_bboxs) - - - - - '''可以先检查page和bbox数量是否一致''' - - '''dropped_text_block的bbox匹配相关指标''' - test_text_bbox=[] - standard_text_bbox=[] - test_tag=[] - standard_tag=[] - - - index=0 - for a,b in zip(test_dropped_text_bboxes,standard_dropped_text_bboxes): - test_page_tag=[] - standard_page_tag=[] - test_page_bbox=[] - standard_page_bbox=[] - if len(a)==0 and len(b)==0: - pass - else: - for i in range(len(b)): - judge=0 - standard_page_tag.append(standard_dropped_text_tag[index][i]) - standard_page_bbox.append(1) - for j in range(len(a)): - if bbox_offset(b[i],a[j]): - judge=1 - test_page_tag.append(test_dropped_text_tag[index][j]) - test_page_bbox.append(1) - break - if judge==0: - test_page_tag.append('None') - test_page_bbox.append(0) - - - if len(test_dropped_text_tag[index])+test_page_tag.count('None')>len(standard_dropped_text_tag[index]):#有多删的情况出现 - test_page_tag1=test_page_tag.copy() - if 'None' in test_page_tag: - test_page_tag1=test_page_tag1.remove('None') - else: - test_page_tag1=test_page_tag - - diff=list((Counter(test_dropped_text_tag[index]) - Counter(test_page_tag1)).elements()) - - test_page_tag.extend(diff) - standard_page_tag.extend(['None']*len(diff)) - test_page_bbox.extend([1]*len(diff)) - standard_page_bbox.extend([0]*len(diff)) - - test_tag.extend(test_page_tag) - standard_tag.extend(standard_page_tag) - test_text_bbox.extend(test_page_bbox) - standard_text_bbox.extend(standard_page_bbox) - - index+=1 - - - text_block_report = {} - text_block_report['accuracy']=metrics.accuracy_score(standard_text_bbox,test_text_bbox) - text_block_report['precision']=metrics.precision_score(standard_text_bbox,test_text_bbox) - text_block_report['recall']=metrics.recall_score(standard_text_bbox,test_text_bbox) - text_block_report['f1_score']=metrics.f1_score(standard_text_bbox,test_text_bbox) - - '''删除的text_block的tag的准确率,召回率和f1-score''' - text_block_tag_report = classification_report(y_true=standard_tag , y_pred=test_tag,output_dict=True) - del text_block_tag_report['None'] - del text_block_tag_report["macro avg"] - del text_block_tag_report["weighted avg"] - - - '''dropped_image_block的bbox匹配相关指标''' - '''有数据格式不一致的问题''' - image_block_report=bbox_match_indicator(test_dropped_image_bboxes,standard_dropped_image_bboxes) - - - '''dropped_table_block的bbox匹配相关指标''' - table_block_report=bbox_match_indicator(test_dropped_table_bboxes,standard_dropped_table_bboxes) - - - '''阅读顺序编辑距离的均值''' - preproc_num_dis=[] - for a,b in zip(test_preproc_num,standard_preproc_num): - preproc_num_dis.append(Levenshtein_Distance(a,b)) - preproc_num_edit=np.mean(preproc_num_dis) - - - - '''分段准确率''' - test_para_num=np.array(test_para_num) - standard_para_num=np.array(standard_para_num) - acc_para=np.mean(test_para_num==standard_para_num) - - - output=pd.DataFrame() - output['总体指标']=[overall_report] - output['行内公式平均编辑距离']=[inline_equations_edit] - output['行间公式平均编辑距离']=[interline_equations_edit] - output['行内公式平均bleu']=[inline_equations_bleu] - output['行间公式平均bleu']=[interline_equations_bleu] - output['行内公式识别相关指标']=[inline_equations_bbox_report] - output['行间公式识别相关指标']=[interline_equations_bbox_report] - output['阅读顺序平均编辑距离']=[preproc_num_edit] - output['分段准确率']=[acc_para] - output['删除的text block的相关指标']=[text_block_report] - output['删除的image block的相关指标']=[image_block_report] - output['删除的table block的相关指标']=[table_block_report] - output['删除的text block的tag相关指标']=[text_block_tag_report] - - - return output - -""" -计算编辑距离 -""" -def Levenshtein_Distance(str1, str2): - matrix = [[ i + j for j in range(len(str2) + 1)] for i in range(len(str1) + 1)] - for i in range(1, len(str1)+1): - for j in range(1, len(str2)+1): - if(str1[i-1] == str2[j-1]): - d = 0 - else: - d = 1 - matrix[i][j] = min(matrix[i-1][j]+1, matrix[i][j-1]+1, matrix[i-1][j-1]+d) - return matrix[len(str1)][len(str2)] - - -''' -计算bbox偏移量是否符合标准的函数 -''' -def bbox_offset(b_t,b_s): - '''b_t是test_doc里的bbox,b_s是standard_doc里的bbox''' - x1_t,y1_t,x2_t,y2_t=b_t - x1_s,y1_s,x2_s,y2_s=b_s - x1=max(x1_t,x1_s) - x2=min(x2_t,x2_s) - y1=max(y1_t,y1_s) - y2=min(y2_t,y2_s) - area_overlap=(x2-x1)*(y2-y1) - area_t=(x2_t-x1_t)*(y2_t-y1_t)+(x2_s-x1_s)*(y2_s-y1_s)-area_overlap - if area_t-area_overlap==0 or area_overlap/(area_t-area_overlap)>0.95: - return True - else: - return False - - -'''bbox匹配和对齐函数,输出相关指标''' -'''输入的是以page为单位的bbox列表''' -def bbox_match_indicator(test_bbox_list,standard_bbox_list): - - test_bbox=[] - standard_bbox=[] - for a,b in zip(test_bbox_list,standard_bbox_list): - - test_page_bbox=[] - standard_page_bbox=[] - if len(a)==0 and len(b)==0: - pass - else: - for i in b: - if len(i)!=4: - continue - else: - judge=0 - standard_page_bbox.append(1) - for j in a: - if bbox_offset(i,j): - judge=1 - test_page_bbox.append(1) - break - if judge==0: - test_page_bbox.append(0) - - diff_num=len(a)+test_page_bbox.count(0)-len(b) - if diff_num>0:#有多删的情况出现 - test_page_bbox.extend([1]*diff_num) - standard_page_bbox.extend([0]*diff_num) - - - test_bbox.extend(test_page_bbox) - standard_bbox.extend(standard_page_bbox) - - - block_report = {} - block_report['accuracy']=metrics.accuracy_score(standard_bbox,test_bbox) - block_report['precision']=metrics.precision_score(standard_bbox,test_bbox) - block_report['recall']=metrics.recall_score(standard_bbox,test_bbox) - block_report['f1_score']=metrics.f1_score(standard_bbox,test_bbox) - - return block_report - - - - - -parser = argparse.ArgumentParser() -parser.add_argument('--test', type=str) -parser.add_argument('--standard', type=str) -args = parser.parse_args() -pdf_json_test = args.test -pdf_json_standard = args.standard - - - -if __name__ == '__main__': - - pdf_json_test = [json.loads(line) - for line in open(pdf_json_test, 'r', encoding='utf-8')] - pdf_json_standard = [json.loads(line) - for line in open(pdf_json_standard, 'r', encoding='utf-8')] - - overall_indicator=indicator_cal(pdf_json_standard,pdf_json_test) - - '''计算的指标输出到overall_indicator_output.json中''' - overall_indicator.to_json('overall_indicator_output.json',orient='records',lines=True,force_ascii=False) - \ No newline at end of file diff --git a/tests/preproc_2_parasplit_example.json b/tests/preproc_2_parasplit_example.json deleted file mode 100644 index c918ff2e8..000000000 --- a/tests/preproc_2_parasplit_example.json +++ /dev/null @@ -1,271 +0,0 @@ -{ - "page_0":{ - "para_blocks": [ - { - "block_id": 0, - "bbox": [39.0, 34.719993591308594, 347.1359558105469, 51.2079963684082], - "text": "IOP Conference Series: Earth and Environmental Science", - "dir": [1.0, 0.0], - "X0": 39.0, - "X1": 347.1359558105469, - "avg_char_width": 6.4194990793863935, - "avg_char_height": 16.48800277709961, - "block_font_type": "Helvetica", - "block_font_size": 12.0, - "is_segmented": 1, - "paras": [ - { - "para_id": 0, - "bbox": [39.0, 34.719993591308594, 347.1359558105469, 51.2079963684082], - "text": "IOP Conference Series: Earth and Environmental Science", - "is_matched": 1, - "is_title": 0, - "font_type": "Helvetica", - "font_size": 12.0, - "font_color": 0, - "neighbor_paras": [null, null] - } - ], - "bboxes_para": [[39.0, 34.719993591308594, 347.1359558105469, 51.2079963684082]] - }, - { - "block_id": 1, - "bbox": [39.0, 111.38001251220703, 143.67001342773438, 123.77301025390625], - "text": "PAPER • OPEN ACCESS", - "dir": [1.0, 0.0], - "X0": 39.0, - "X1": 143.67001342773438, - "avg_char_width": 6.541875839233398, - "avg_char_height": 12.392997741699219, - "block_font_type": "Helvetica-Bold", - "block_font_size": 9.0, - "is_segmented": 1, - "paras": [ - { - "para_id": 0, - "bbox": [39.0, 111.38001251220703, 143.67001342773438, 123.77301025390625], - "text": "PAPER • OPEN ACCESS", - "is_matched": 1, - "is_title": 0, - "font_type": "Helvetica-Bold", - "font_size": 9.0, - "font_color": 0, - "neighbor_paras": [null, null] - }, - { - "para_id": 1, - "bbox": [39.0, 111.38001251220703, 143.67001342773438, 123.77301025390625], - "text": "PAPER • OPEN ACCESS", - "is_matched": 1, - "is_title": 0, - "font_type": "Helvetica-Bold", - "font_size": 9.0, - "font_color": 0, - "neighbor_paras": [null, null] - } - ], - "bboxes_para": [[39.0, 111.38001251220703, 143.67001342773438, 123.77301025390625]] - } - ], - - "preproc_blocks":[ //这里已经把重叠,页眉,页脚,垂直,旋转,水印,图片,表格删掉了 - { - "number": 0, - "type": 0, - "bbox": [ - 428.93170166015625, - 744.921142578125, - 541.5675048828125, - 757.8131713867188 - ], - "lines": [ - { - "spans": [ - { - "size": 11.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 0, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "3", - "origin": [ - 536.37548828125, - 755.3601684570312 - ], - "bbox": [ - 536.37548828125, - 744.921142578125, - 541.5675048828125, - 757.8131713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 536.37548828125, - 744.921142578125, - 541.5675048828125, - 757.8131713867188 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 0, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "Spektrum ", - "origin": [ - 428.93170166015625, - 755.3601684570312 - ], - "bbox": [ - 428.93170166015625, - 747.7681884765625, - 458.7516174316406, - 757.1441650390625 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "UniversNextPro-Cond", - "color": 0, - "ascender": 0.9359999895095825, - "descender": -0.21400000154972076, - "text": "der Wissenschaft ", - "origin": [ - 458.431884765625, - 755.3601684570312 - ], - "bbox": [ - 458.431884765625, - 747.8721923828125, - 508.0399169921875, - 757.0721435546875 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "7.21", - "origin": [ - 510.2349853515625, - 755.3601684570312 - ], - "bbox": [ - 510.2349853515625, - 747.9281616210938, - 524.5621948242188, - 757.1361694335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 428.93170166015625, - 747.7681884765625, - 524.5621948242188, - 757.1441650390625 - ] - } - ] - } - ], - - "images":[ - { - "bbox":[0,0,1,1], - "image_path":"path/to/image.jpg" - }, - { - "bbox":[1,2,3,4], - "image_path":"path/to/image.jpg" - } - ], - - "tables":[ - { - "bbox":[0,0,1,1], - "image_path":"path/to/image.jpg" - }, - { - "bbox":[1,2,3,4], - "image_path":"path/to/image.jpg" - } - ], - - "interline_equations":[ - { - "bbox":[0,0,1,1], - "image_path":"path/to/equation.jpg" - }, - { - "bbox":[1,2,3,4], - "image_path":"path/to/equation.jpg" - } - ], - - "inline_equations":[ - { - "bbox":[0,0,1,1], - "image_path":"path/to/equation.jpg" - }, - { - "bbox":[1,2,3,4], - "image_path":"path/to/equation.jpg" - } - ], - - "layout_bboxes":[ - { - "layout_bbox": [0,0, 1,1], - "layout_label":"V|H|B" //未处理|垂直|水平|BAD_LAYOUT - }, - { - "layout_bbox": [1,2,3,4], - "layout_label":"V|H|B" - } - ], - "pymu_raw_blocks":[], //未删减的pymupdf的block,含文字图片等 - - "global_statistic":{//全局性统计信息 - - }, - "droped_text_block":[//被丢弃的文字 - - - ], - "droped_image_block":[ - - ], - "droped_table_block":[ - - ], - "image_backup":[//暂时不参与处理的图片,例如互相层叠的图片,先放这里,最后组合的时候放到页面开头段落之后。 - - ], - "table_backup":[//同上 - - ] - }, - "page_1":{ - - } -} \ No newline at end of file diff --git a/tests/pymu_textblocks.json b/tests/pymu_textblocks.json deleted file mode 100644 index 00c44f7e1..000000000 --- a/tests/pymu_textblocks.json +++ /dev/null @@ -1,2745 +0,0 @@ -[ - { - "number": 0, - "type": 0, - "bbox": [ - 428.93170166015625, - 744.921142578125, - 541.5675048828125, - 757.8131713867188 - ], - "lines": [ - { - "spans": [ - { - "size": 11.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 0, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "3", - "origin": [ - 536.37548828125, - 755.3601684570312 - ], - "bbox": [ - 536.37548828125, - 744.921142578125, - 541.5675048828125, - 757.8131713867188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 536.37548828125, - 744.921142578125, - 541.5675048828125, - 757.8131713867188 - ] - }, - { - "spans": [ - { - "size": 8.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 0, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "Spektrum ", - "origin": [ - 428.93170166015625, - 755.3601684570312 - ], - "bbox": [ - 428.93170166015625, - 747.7681884765625, - 458.7516174316406, - 757.1441650390625 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "UniversNextPro-Cond", - "color": 0, - "ascender": 0.9359999895095825, - "descender": -0.21400000154972076, - "text": "der Wissenschaft ", - "origin": [ - 458.431884765625, - 755.3601684570312 - ], - "bbox": [ - 458.431884765625, - 747.8721923828125, - 508.0399169921875, - 757.0721435546875 - ] - }, - { - "size": 8.0, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "7.21", - "origin": [ - 510.2349853515625, - 755.3601684570312 - ], - "bbox": [ - 510.2349853515625, - 747.9281616210938, - 524.5621948242188, - 757.1361694335938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 428.93170166015625, - 747.7681884765625, - 524.5621948242188, - 757.1441650390625 - ] - } - ] - }, - { - "number": 1, - "type": 0, - "bbox": [ - 41.19110107421875, - 182.531494140625, - 67.2332992553711, - 208.57369995117188 - ], - "lines": [ - { - "spans": [ - { - "size": 26.042200088500977, - "flags": 0, - "font": "Webdings", - "color": 0, - "ascender": 0.7998046875, - "descender": -0.2001953125, - "text": "\uf034", - "origin": [ - 41.19110107421875, - 203.36016845703125 - ], - "bbox": [ - 41.19110107421875, - 182.531494140625, - 67.2332992553711, - 208.57369995117188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 41.19110107421875, - 182.531494140625, - 67.2332992553711, - 208.57369995117188 - ] - } - ] - }, - { - "number": 2, - "type": 0, - "bbox": [ - 62.02479934692383, - 183.73141479492188, - 355.3616027832031, - 205.3001708984375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "W\u00e4hrend ich diese Zeilen schreibe, ist vom vermeintlichen Wonnemonat ", - "origin": [ - 62.02479934692383, - 191.86016845703125 - ], - "bbox": [ - 62.02479934692383, - 183.73141479492188, - 354.2161865234375, - 193.80267333984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 62.02479934692383, - 183.73141479492188, - 354.2161865234375, - 193.80267333984375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Mai wenig zu sp\u00fcren. Das Wetter erinnert eher an den Herbst. Allerdings ", - "origin": [ - 62.02479934692383, - 203.357666015625 - ], - "bbox": [ - 62.02479934692383, - 195.22891235351562, - 355.3616027832031, - 205.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 62.02479934692383, - 195.22891235351562, - 355.3616027832031, - 205.3001708984375 - ] - } - ] - }, - { - "number": 3, - "type": 0, - "bbox": [ - 50.956050872802734, - 206.72640991210938, - 354.5810852050781, - 251.2901611328125 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "fehlt ein f\u00fcr mich wichtiger Bestandteil dieser Jahreszeit: die im Wald sprie-", - "origin": [ - 50.956050872802734, - 214.85516357421875 - ], - "bbox": [ - 50.956050872802734, - 206.72640991210938, - 351.9472961425781, - 216.79766845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.956050872802734, - 206.72640991210938, - 351.9472961425781, - 216.79766845703125 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "\u00dfenden Speisepilze wie Steinpilz oder Pfifferling. Sie bereichern unseren ", - "origin": [ - 50.9560546875, - 226.3526611328125 - ], - "bbox": [ - 50.9560546875, - 218.22390747070312, - 342.05816650390625, - 228.295166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 218.22390747070312, - 342.05816650390625, - 228.295166015625 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Essensplan ab August oder September, etwa als Teil von So\u00dfen oder Nudel-", - "origin": [ - 50.9560546875, - 237.85015869140625 - ], - "bbox": [ - 50.9560546875, - 229.72140502929688, - 354.5810852050781, - 239.79266357421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 229.72140502929688, - 354.5810852050781, - 239.79266357421875 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "gerichten. ", - "origin": [ - 50.9560546875, - 249.34765625 - ], - "bbox": [ - 50.9560546875, - 241.21890258789062, - 93.7059326171875, - 251.2901611328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 241.21890258789062, - 93.7059326171875, - 251.2901611328125 - ] - } - ] - }, - { - "number": 4, - "type": 0, - "bbox": [ - 62.29605484008789, - 252.71640014648438, - 359.1162414550781, - 262.78765869140625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Da ich kein Pilzexperte bin, vermeide ich jedoch Experimente. In den Korb ", - "origin": [ - 62.29605484008789, - 260.84515380859375 - ], - "bbox": [ - 62.29605484008789, - 252.71640014648438, - 359.1162414550781, - 262.78765869140625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 62.29605484008789, - 252.71640014648438, - 359.1162414550781, - 262.78765869140625 - ] - } - ] - }, - { - "number": 5, - "type": 0, - "bbox": [ - 50.9560546875, - 264.2138977050781, - 363.3572082519531, - 320.275146484375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "kommen nur sehr wenige Arten, die ich wirklich kenne. Alle anderen lasse ich ", - "origin": [ - 50.9560546875, - 272.3426513671875 - ], - "bbox": [ - 50.9560546875, - 264.2138977050781, - 363.3572082519531, - 274.28515625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 264.2138977050781, - 363.3572082519531, - 274.28515625 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "gerne stehen und erfreue mich allenfalls an Form (wie bei der Stinkmorchel) ", - "origin": [ - 50.9560546875, - 283.84014892578125 - ], - "bbox": [ - 50.9560546875, - 275.7113952636719, - 356.4150390625, - 285.78265380859375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 275.7113952636719, - 356.4150390625, - 285.78265380859375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "oder Farbe (etwa bei den Fliegenpilzen). \u00dcberhaupt bilden Speisepilze nur ", - "origin": [ - 50.9560546875, - 295.337646484375 - ], - "bbox": [ - 50.9560546875, - 287.2088928222656, - 345.9955749511719, - 297.2801513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 287.2088928222656, - 345.9955749511719, - 297.2801513671875 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "einen sehr kleinen Teil der Vielfalt in diesem dritten Reich der eukaryotischen ", - "origin": [ - 50.9560546875, - 306.83514404296875 - ], - "bbox": [ - 50.9560546875, - 298.7063903808594, - 360.0507507324219, - 308.77764892578125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 298.7063903808594, - 360.0507507324219, - 308.77764892578125 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Lebewesen. ", - "origin": [ - 50.9560546875, - 318.3326416015625 - ], - "bbox": [ - 50.9560546875, - 310.2038879394531, - 101.7909164428711, - 320.275146484375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 310.2038879394531, - 101.7909164428711, - 320.275146484375 - ] - } - ] - }, - { - "number": 6, - "type": 0, - "bbox": [ - 62.29605484008789, - 321.7013854980469, - 355.1341247558594, - 331.77264404296875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Un\u00fcberschaubar gro\u00df ist beispielsweise die Abteilung der Schlauchpilze, ", - "origin": [ - 62.29605484008789, - 329.83013916015625 - ], - "bbox": [ - 62.29605484008789, - 321.7013854980469, - 355.1341247558594, - 331.77264404296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 62.29605484008789, - 321.7013854980469, - 355.1341247558594, - 331.77264404296875 - ] - } - ] - }, - { - "number": 7, - "type": 0, - "bbox": [ - 50.9560546875, - 333.1988830566406, - 364.4510498046875, - 469.74261474609375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "zu der unter anderem viele Hefe- und Schimmelpilze geh\u00f6ren, welche ", - "origin": [ - 50.9560546875, - 341.32763671875 - ], - "bbox": [ - 50.9560546875, - 333.1988830566406, - 331.2386779785156, - 343.2701416015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 333.1988830566406, - 331.2386779785156, - 343.2701416015625 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Mensch, Tier oder Pflanze schaden k\u00f6nnen. Der dunklen Seite der Pilze ", - "origin": [ - 50.9560546875, - 352.82513427734375 - ], - "bbox": [ - 50.9560546875, - 344.6963806152344, - 337.2332763671875, - 354.76763916015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 344.6963806152344, - 337.2332763671875, - 354.76763916015625 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "widmen wir eine dreiteilige Serie, die mit dieser Ausgabe beginnt. Pilze k\u00f6n-", - "origin": [ - 50.9560546875, - 364.3226318359375 - ], - "bbox": [ - 50.9560546875, - 356.1938781738281, - 353.47857666015625, - 366.26513671875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 356.1938781738281, - 353.47857666015625, - 366.26513671875 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "nen gef\u00e4hrliche Infektionskrankheiten bei Menschen ausl\u00f6sen und sich dabei ", - "origin": [ - 50.9560546875, - 375.82012939453125 - ], - "bbox": [ - 50.9560546875, - 367.6913757324219, - 361.5155334472656, - 377.76263427734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 367.6913757324219, - 361.5155334472656, - 377.76263427734375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "in Krankenh\u00e4usern ausbreiten. Andere werden durch uns und den Welthandel ", - "origin": [ - 50.9560546875, - 387.317626953125 - ], - "bbox": [ - 50.9560546875, - 379.1888732910156, - 364.4510498046875, - 389.2601318359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 379.1888732910156, - 364.4510498046875, - 389.2601318359375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "weltweit verschleppt und gef\u00e4hrden Tier- und Pflanzenarten in den betroffe-", - "origin": [ - 50.9560546875, - 398.81512451171875 - ], - "bbox": [ - 50.9560546875, - 390.6863708496094, - 354.6072998046875, - 400.75762939453125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 390.6863708496094, - 354.6072998046875, - 400.75762939453125 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "nen Gebieten, etwa Amphibien in S\u00fcdamerika, Flederm\u00e4use in Nordamerika ", - "origin": [ - 50.9560546875, - 410.3126220703125 - ], - "bbox": [ - 50.9560546875, - 402.1838684082031, - 357.4117126464844, - 412.255126953125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 402.1838684082031, - 357.4117126464844, - 412.255126953125 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "oder Eschen in Europa. Und eine dritte Gruppe zerst\u00f6rt ganze Ernten und ", - "origin": [ - 50.9560546875, - 421.81011962890625 - ], - "bbox": [ - 50.9560546875, - 413.6813659667969, - 344.6148376464844, - 423.75262451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 413.6813659667969, - 344.6148376464844, - 423.75262451171875 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "bedroht dadurch Millionen Menschen mit Hunger. Mit diesen Sch\u00e4dlingen ", - "origin": [ - 50.9560546875, - 433.3076171875 - ], - "bbox": [ - 50.9560546875, - 425.1788635253906, - 349.48773193359375, - 435.2501220703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 425.1788635253906, - 349.48773193359375, - 435.2501220703125 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "beginnt auch unsere Serie. Thomas Miedaner von der Universit\u00e4t Hohenheim ", - "origin": [ - 50.9560546875, - 444.80511474609375 - ], - "bbox": [ - 50.9560546875, - 436.6763610839844, - 361.98358154296875, - 446.74761962890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 436.6763610839844, - 361.98358154296875, - 446.74761962890625 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "erkl\u00e4rt ab S. 38, wie die Pilze Pflanzen befallen und wie wir sie bek\u00e4mpfen ", - "origin": [ - 50.9560546875, - 456.3026123046875 - ], - "bbox": [ - 50.9560546875, - 448.1738586425781, - 348.68878173828125, - 458.2451171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 448.1738586425781, - 348.68878173828125, - 458.2451171875 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "k\u00f6nnen, um Ernten zu sichern. ", - "origin": [ - 50.9560546875, - 467.80010986328125 - ], - "bbox": [ - 50.9560546875, - 459.6713562011719, - 174.7528076171875, - 469.74261474609375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 459.6713562011719, - 174.7528076171875, - 469.74261474609375 - ] - } - ] - }, - { - "number": 8, - "type": 0, - "bbox": [ - 62.29605484008789, - 471.1688537597656, - 361.9923095703125, - 481.2401123046875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Ebenfalls in diesem Heft starten wir noch eine zweite Serie, die sich einem ", - "origin": [ - 62.29605484008789, - 479.297607421875 - ], - "bbox": [ - 62.29605484008789, - 471.1688537597656, - 361.9923095703125, - 481.2401123046875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 62.29605484008789, - 471.1688537597656, - 361.9923095703125, - 481.2401123046875 - ] - } - ] - }, - { - "number": 9, - "type": 0, - "bbox": [ - 50.9560546875, - 482.6663513183594, - 363.50958251953125, - 561.7225952148438 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "besonderen Kosmos widmet: unserem Bewusstsein. Seit Jahrhunderten ver- ", - "origin": [ - 50.9560546875, - 490.79510498046875 - ], - "bbox": [ - 50.9560546875, - 482.6663513183594, - 359.8135681152344, - 492.73760986328125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 482.6663513183594, - 359.8135681152344, - 492.73760986328125 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "suchen wir es zu ergr\u00fcnden, und dennoch sind viele Fragen offengeblieben. ", - "origin": [ - 50.9560546875, - 502.2926025390625 - ], - "bbox": [ - 50.9560546875, - 494.1638488769531, - 356.0458984375, - 504.235107421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 494.1638488769531, - 356.0458984375, - 504.235107421875 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Nun sollen k\u00fcnstliche neuronale Netze \u2013 der \u00bbGeist in der Maschine\u00ab bildet ab ", - "origin": [ - 50.9560546875, - 513.7901000976562 - ], - "bbox": [ - 50.9560546875, - 505.6613464355469, - 363.50958251953125, - 515.7326049804688 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 505.6613464355469, - 363.50958251953125, - 515.7326049804688 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "S. 12 den Auftakt der dreiteiligen Serie \u2013 und die Mathematik uns bei der", - "origin": [ - 50.9560546875, - 525.28759765625 - ], - "bbox": [ - 50.9560546875, - 517.1588745117188, - 339.90899658203125, - 527.2301025390625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 517.1588745117188, - 339.90899658203125, - 527.2301025390625 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Aufkl\u00e4rung unseres Geistes helfen. Und auch Experimente spielen weiterhin", - "origin": [ - 50.9560546875, - 536.7850952148438 - ], - "bbox": [ - 50.9560546875, - 528.6563720703125, - 354.7044677734375, - 538.7276000976562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 528.6563720703125, - 354.7044677734375, - 538.7276000976562 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "eine Rolle. Eines davon will zwei der prominentesten Modelle auf den Pr\u00fcf-", - "origin": [ - 50.9560546875, - 548.2825927734375 - ], - "bbox": [ - 50.9560546875, - 540.1538696289062, - 349.18231201171875, - 550.22509765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 540.1538696289062, - 349.18231201171875, - 550.22509765625 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "stand stellen \u2013 und diese entweder best\u00e4tigen oder widerlegen.", - "origin": [ - 50.9560546875, - 559.7800903320312 - ], - "bbox": [ - 50.9560546875, - 551.6513671875, - 304.5346374511719, - 561.7225952148438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 551.6513671875, - 304.5346374511719, - 561.7225952148438 - ] - } - ] - }, - { - "number": 10, - "type": 0, - "bbox": [ - 50.9560546875, - 574.6550903320312, - 96.47882080078125, - 584.726318359375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Herzlich Ihr", - "origin": [ - 50.9560546875, - 582.7838134765625 - ], - "bbox": [ - 50.9560546875, - 574.6550903320312, - 96.47882080078125, - 584.726318359375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 50.9560546875, - 574.6550903320312, - 96.47882080078125, - 584.726318359375 - ] - } - ] - }, - { - "number": 11, - "type": 0, - "bbox": [ - 411.0242004394531, - 51.734458923339844, - 501.3325500488281, - 65.42646026611328 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 4, - "font": "UniversNextPro-LightCond", - "color": 0, - "ascender": 0.9269999861717224, - "descender": -0.21400000154972076, - "text": "IN DIESER AUSGABE", - "origin": [ - 411.0242004394531, - 62.85845947265625 - ], - "bbox": [ - 411.0242004394531, - 51.734458923339844, - 501.3325500488281, - 65.42646026611328 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0242004394531, - 51.734458923339844, - 501.3325500488281, - 65.42646026611328 - ] - } - ] - }, - { - "number": 12, - "type": 0, - "bbox": [ - 140.31619262695312, - 672.9744873046875, - 215.28738403320312, - 687.0385131835938 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 18293, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "NEU AM KIOSK!", - "origin": [ - 140.31619262695312, - 684.3624877929688 - ], - "bbox": [ - 140.31619262695312, - 672.9744873046875, - 215.28738403320312, - 687.0385131835938 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.31619262695312, - 672.9744873046875, - 215.28738403320312, - 687.0385131835938 - ] - } - ] - }, - { - "number": 13, - "type": 0, - "bbox": [ - 140.3148956298828, - 689.556396484375, - 358.1094970703125, - 734.295166015625 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 0, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "Spektrum", - "origin": [ - 140.3148956298828, - 697.8601684570312 - ], - "bbox": [ - 140.3148956298828, - 689.556396484375, - 171.02561950683594, - 699.8114013671875 - ] - }, - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": " ", - "origin": [ - 170.66864013671875, - 697.8601684570312 - ], - "bbox": [ - 170.66864013671875, - 689.7314453125, - 173.20614624023438, - 699.8026733398438 - ] - }, - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Cond", - "color": 0, - "ascender": 0.9359999895095825, - "descender": -0.21400000154972076, - "text": "SPEZIAL ", - "origin": [ - 173.07489013671875, - 697.8601684570312 - ], - "bbox": [ - 173.07489013671875, - 689.670166015625, - 202.37429809570312, - 699.732666015625 - ] - }, - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Physik \u2013 Mathematik \u2013 Technik 2.21 ", - "origin": [ - 202.2473907470703, - 697.8601684570312 - ], - "bbox": [ - 202.2473907470703, - 689.7314453125, - 346.1961975097656, - 699.8026733398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 140.3148956298828, - 689.556396484375, - 346.1961975097656, - 699.8114013671875 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "zeigt, wie sich die komplexen Systeme unserer Um-", - "origin": [ - 141.31239318847656, - 709.357666015625 - ], - "bbox": [ - 141.31239318847656, - 701.2289428710938, - 347.72491455078125, - 711.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.31239318847656, - 701.2289428710938, - 347.72491455078125, - 711.3001708984375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "welt in Computermodellen nachstellen lassen und ", - "origin": [ - 141.31239318847656, - 720.8551635742188 - ], - "bbox": [ - 141.31239318847656, - 712.7264404296875, - 343.4996337890625, - 722.7976684570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.31239318847656, - 712.7264404296875, - 343.4996337890625, - 722.7976684570312 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "damit etwa zuverl\u00e4ssigere Wetterprognosen erlauben.", - "origin": [ - 141.31239318847656, - 732.3526611328125 - ], - "bbox": [ - 141.31239318847656, - 724.2239379882812, - 358.1094970703125, - 734.295166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 141.31239318847656, - 724.2239379882812, - 358.1094970703125, - 734.295166015625 - ] - } - ] - }, - { - "number": 14, - "type": 0, - "bbox": [ - 411.0046081542969, - 224.47216796875, - 499.610107421875, - 250.03616333007812 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 18293, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "PATRICK KRAUSS, ", - "origin": [ - 411.0046081542969, - 235.86016845703125 - ], - "bbox": [ - 411.0046081542969, - 224.47216796875, - 499.610107421875, - 238.53616333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 224.47216796875, - 499.610107421875, - 238.53616333007812 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 18293, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "ANDREAS MAIER ", - "origin": [ - 411.0046081542969, - 247.36016845703125 - ], - "bbox": [ - 411.0046081542969, - 235.97216796875, - 495.9274597167969, - 250.03616333007812 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 235.97216796875, - 495.9274597167969, - 250.03616333007812 - ] - } - ] - }, - { - "number": 15, - "type": 0, - "bbox": [ - 411.00457763671875, - 252.73141479492188, - 545.2821044921875, - 308.79266357421875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Ob auch Maschinen ein Bewusst-", - "origin": [ - 411.0046081542969, - 260.86016845703125 - ], - "bbox": [ - 411.0046081542969, - 252.73141479492188, - 545.2821044921875, - 262.80267333984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 252.73141479492188, - 545.2821044921875, - 262.80267333984375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "sein entwickeln k\u00f6nnen, ergr\u00fcn-", - "origin": [ - 411.00457763671875, - 272.357666015625 - ], - "bbox": [ - 411.00457763671875, - 264.2289123535156, - 539.4808349609375, - 274.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.00457763671875, - 264.2289123535156, - 539.4808349609375, - 274.3001708984375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "den der Neurowissenschaftler ", - "origin": [ - 411.00457763671875, - 283.85516357421875 - ], - "bbox": [ - 411.00457763671875, - 275.7264099121094, - 533.7821655273438, - 285.79766845703125 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.00457763671875, - 275.7264099121094, - 533.7821655273438, - 285.79766845703125 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Patrick Krau\u00df und der Informati-", - "origin": [ - 411.00457763671875, - 295.3526611328125 - ], - "bbox": [ - 411.00457763671875, - 287.2239074707031, - 539.7171020507812, - 297.295166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.00457763671875, - 287.2239074707031, - 539.7171020507812, - 297.295166015625 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "ker Andreas Maier ab S. 12.", - "origin": [ - 411.00457763671875, - 306.85015869140625 - ], - "bbox": [ - 411.00457763671875, - 298.7214050292969, - 520.12744140625, - 308.79266357421875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.00457763671875, - 298.7214050292969, - 520.12744140625, - 308.79266357421875 - ] - } - ] - }, - { - "number": 16, - "type": 0, - "bbox": [ - 411.0046081542969, - 592.47216796875, - 524.23046875, - 618.0322265625 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 18293, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "ANNE-C\u00c9CILE ORGERIE, ", - "origin": [ - 411.0046081542969, - 603.8601684570312 - ], - "bbox": [ - 411.0046081542969, - 592.47216796875, - 524.23046875, - 606.5361938476562 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 592.47216796875, - 524.23046875, - 606.5361938476562 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 18293, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "LAURENT LEF\u00c8VRE", - "origin": [ - 411.0046081542969, - 615.356201171875 - ], - "bbox": [ - 411.0046081542969, - 603.9682006835938, - 500.13458251953125, - 618.0322265625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 603.9682006835938, - 500.13458251953125, - 618.0322265625 - ] - } - ] - }, - { - "number": 17, - "type": 0, - "bbox": [ - 411.0046081542969, - 620.7314453125, - 545.0808715820312, - 676.7926635742188 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Die beiden franz\u00f6sischen For-", - "origin": [ - 411.0046081542969, - 628.8601684570312 - ], - "bbox": [ - 411.0046081542969, - 620.7314453125, - 529.3833618164062, - 630.8026733398438 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 620.7314453125, - 529.3833618164062, - 630.8026733398438 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "scher widmen sich ab S. 76 der ", - "origin": [ - 411.0046081542969, - 640.357666015625 - ], - "bbox": [ - 411.0046081542969, - 632.2289428710938, - 538.6320190429688, - 642.3001708984375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 632.2289428710938, - 538.6320190429688, - 642.3001708984375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Frage, welche \u00f6kologischen ", - "origin": [ - 411.0046081542969, - 651.8551635742188 - ], - "bbox": [ - 411.0046081542969, - 643.7264404296875, - 525.0968017578125, - 653.7976684570312 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 643.7264404296875, - 525.0968017578125, - 653.7976684570312 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Folgen die fortschreitende Digita-", - "origin": [ - 411.0046081542969, - 663.3526611328125 - ], - "bbox": [ - 411.0046081542969, - 655.2239379882812, - 545.0808715820312, - 665.295166015625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 655.2239379882812, - 545.0808715820312, - 665.295166015625 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "lisierung mit sich bringt.", - "origin": [ - 411.0046081542969, - 674.8501586914062 - ], - "bbox": [ - 411.0046081542969, - 666.721435546875, - 507.412109375, - 676.7926635742188 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 666.721435546875, - 507.412109375, - 676.7926635742188 - ] - } - ] - }, - { - "number": 18, - "type": 0, - "bbox": [ - 411.0046081542969, - 408.4721984863281, - 503.6938171386719, - 434.03619384765625 - ], - "lines": [ - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 18293, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "BERNHARD WOOD, ", - "origin": [ - 411.0046081542969, - 419.8601989746094 - ], - "bbox": [ - 411.0046081542969, - 408.4721984863281, - 503.6938171386719, - 422.53619384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 408.4721984863281, - 503.6938171386719, - 422.53619384765625 - ] - }, - { - "spans": [ - { - "size": 12.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 18293, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "ALEXIS WILLIAMS", - "origin": [ - 411.0046081542969, - 431.3601989746094 - ], - "bbox": [ - 411.0046081542969, - 419.9721984863281, - 498.00225830078125, - 434.03619384765625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0046081542969, - 419.9721984863281, - 498.00225830078125, - 434.03619384765625 - ] - } - ] - }, - { - "number": 19, - "type": 0, - "bbox": [ - 411.0049743652344, - 436.7312316894531, - 546.5139770507812, - 492.5574951171875 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Der Pal\u00e4oanthropologe und seine ", - "origin": [ - 411.0050048828125, - 444.8599853515625 - ], - "bbox": [ - 411.0050048828125, - 436.7312316894531, - 546.5139770507812, - 446.802490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0050048828125, - 436.7312316894531, - 546.5139770507812, - 446.802490234375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Doktorandin rekonstruieren das ", - "origin": [ - 411.0050048828125, - 456.3599853515625 - ], - "bbox": [ - 411.0050048828125, - 448.2312316894531, - 539.9134521484375, - 458.302490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0050048828125, - 448.2312316894531, - 539.9134521484375, - 458.302490234375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "einstige Leben des r\u00e4tselhaften ", - "origin": [ - 411.0049743652344, - 467.8599853515625 - ], - "bbox": [ - 411.0049743652344, - 459.7312316894531, - 538.4785766601562, - 469.802490234375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0049743652344, - 459.7312316894531, - 538.4785766601562, - 469.802490234375 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "\u00bbNussknackermenschen\u00ab ", - "origin": [ - 411.0570068359375, - 479.114990234375 - ], - "bbox": [ - 411.0570068359375, - 470.9862365722656, - 515.9761352539062, - 481.0574951171875 - ] - }, - { - "size": 8.75, - "flags": 6, - "font": "UniversNextPro-Italic", - "color": 0, - "ascender": 0.9490000009536743, - "descender": -0.21400000154972076, - "text": "Paran-", - "origin": [ - 515.7671508789062, - 479.114990234375 - ], - "bbox": [ - 515.7671508789062, - 470.8112487792969, - 542.5921630859375, - 480.98748779296875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0570068359375, - 470.8112487792969, - 542.5921630859375, - 481.0574951171875 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 6, - "font": "UniversNextPro-Italic", - "color": 0, - "ascender": 0.9490000009536743, - "descender": -0.21400000154972076, - "text": "thropus boisei", - "origin": [ - 411.0050048828125, - 490.614990234375 - ], - "bbox": [ - 411.0050048828125, - 482.3112487792969, - 468.2322998046875, - 492.48748779296875 - ] - }, - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": " (S. 30).", - "origin": [ - 468.3193054199219, - 490.614990234375 - ], - "bbox": [ - 468.3193054199219, - 482.4862365722656, - 497.2737731933594, - 492.5574951171875 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 411.0050048828125, - 482.3112487792969, - 497.2737731933594, - 492.5574951171875 - ] - } - ] - }, - { - "number": 20, - "type": 0, - "bbox": [ - 137.12600708007812, - 48.90245819091797, - 338.1016540527344, - 135.09446716308594 - ], - "lines": [ - { - "spans": [ - { - "size": 28.0, - "flags": 4, - "font": "UniversNextPro-LightCond", - "color": 0, - "ascender": 0.9269999861717224, - "descender": -0.21400000154972076, - "text": "EDITORIAL", - "origin": [ - 137.12600708007812, - 74.85845947265625 - ], - "bbox": [ - 137.12600708007812, - 48.90245819091797, - 240.1044158935547, - 80.85045623779297 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 137.12600708007812, - 48.90245819091797, - 240.1044158935547, - 80.85045623779297 - ] - }, - { - "spans": [ - { - "size": 28.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 18293, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "DIE DUNKLE SEITE ", - "origin": [ - 137.12600708007812, - 101.85845947265625 - ], - "bbox": [ - 137.12600708007812, - 75.28646087646484, - 338.1016540527344, - 108.10246276855469 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 137.12600708007812, - 75.28646087646484, - 338.1016540527344, - 108.10246276855469 - ] - }, - { - "spans": [ - { - "size": 28.0, - "flags": 20, - "font": "UniversNextPro-BoldCond", - "color": 18293, - "ascender": 0.9490000009536743, - "descender": -0.22300000488758087, - "text": "DER PILZE", - "origin": [ - 137.12600708007812, - 128.8504638671875 - ], - "bbox": [ - 137.12600708007812, - 102.2784652709961, - 246.24761962890625, - 135.09446716308594 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 137.12600708007812, - 102.2784652709961, - 246.24761962890625, - 135.09446716308594 - ] - } - ] - }, - { - "number": 21, - "type": 0, - "bbox": [ - 137.12600708007812, - 137.89901733398438, - 273.66534423828125, - 159.4677734375 - ], - "lines": [ - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 0, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "Daniel Lingenh\u00f6hl, Chefredakteur ", - "origin": [ - 137.12600708007812, - 146.02777099609375 - ], - "bbox": [ - 137.12600708007812, - 137.89901733398438, - 273.66534423828125, - 147.97027587890625 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 137.12600708007812, - 137.89901733398438, - 273.66534423828125, - 147.97027587890625 - ] - }, - { - "spans": [ - { - "size": 8.75, - "flags": 4, - "font": "UniversNextPro-Regular", - "color": 9152454, - "ascender": 0.9290000200271606, - "descender": -0.22200000286102295, - "text": "lingenhoehl@spektrum.de", - "origin": [ - 137.12600708007812, - 157.5252685546875 - ], - "bbox": [ - 137.12600708007812, - 149.39651489257812, - 242.86016845703125, - 159.4677734375 - ] - } - ], - "wmode": 0, - "dir": [ - 1.0, - 0.0 - ], - "bbox": [ - 137.12600708007812, - 149.39651489257812, - 242.86016845703125, - 159.4677734375 - ] - } - ] - } - ] \ No newline at end of file diff --git a/tests/retry_env.sh b/tests/retry_env.sh deleted file mode 100644 index fbe1f2d60..000000000 --- a/tests/retry_env.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -max_retries=5 -retry_count=0 - -while true; do - # prepare env - #python -m pip install -r requirements-qa.txt - python -m pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com -i https://pypi.tuna.tsinghua.edu.cn/simple - python -m pip install paddlepaddle-gpu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ - exit_code=$? - if [ $exit_code -eq 0 ]; then - echo "test.sh 成功执行!" - break - else - let retry_count+=1 - if [ $retry_count -ge $max_retries ]; then - echo "达到最大重试次数 ($max_retries),放弃重试。" - exit 1 - fi - echo "test.sh 执行失败 (退出码: $exit_code)。尝试第 $retry_count 次重试..." - sleep 5 - fi -done diff --git a/tests/test_bookname.txt b/tests/test_bookname.txt deleted file mode 100644 index 7a9dfe993..000000000 --- a/tests/test_bookname.txt +++ /dev/null @@ -1,87 +0,0 @@ - # "scihub/scihub_37000000/libgen.scimag37068000-37068999.zip_10.1080/0015587X.1936.9718622" 新的特殊扫描版,需要更新检测规则 - # demo_meta_scan(book_name="zlib/zlib_21814955") - # demo_meta_scan(book_name="zlib/zlib_22115997") # meta_scan - # demo_classify_by_type("scihub/scihub_04600000/libgen.scimag04690000-04690999.zip_10.1016/s0378-4347(98)00269-2") # classify - # demo_parse_pdf("scihub/scihub_28400000/libgen.scimag28413000-28413999.zip_10.2307/1316224") - # demo_parse_pdf(book_name="scihub/scihub_65300000/libgen.scimag65336000-65336999.zip_10.1021/acs.jcim.7b00151") # parse_pdf - # demo_parse_pdf(book_name="scihub/scihub_76500000/libgen.scimag76506000-76506999.zip_10.1016/j.nanoen.2019.103943") # parse_pdf - # demo_parse_pdf(book_name="zlib/zlib_22115997") # parse_pdf - # demo_parse_pdf(book_name="zlib/zlib_21814957") # parse_pdf - # demo_parse_pdf(book_name="zlib/zlib_21929367",start_page_id=48) # parse_pdf - # demo_save_tables(book_name="scihub/scihub_17200000/libgen.scimag17236000-17236999.zip_10.1016/s0002-9440(10)65013-4") # parse_pdf - # demo_parse_pdf(book_name="scihub/scihub_50200000/libgen.scimag50226000-50226999.zip_10.0000/cyberleninka.ru/article/n/chislennoe-modelirovanie-udarnogo-vozdeystviya-vysokoskorostnoy-strui-na-tverdoe-telo") - - # 无限循环爆内存 - # demo_parse_pdf(book_name="scihub/scihub_10400000/libgen.scimag10461000-10461999.zip_10.1038/4671055a") - # demo_parse_pdf(book_name="scihub/scihub_36400000/libgen.scimag36418000-36418999.zip_10.1038/scientificamerican0115-82b") - # 10000页的pdf,中间态dict过大 - # demo_parse_pdf(book_name="zlib/zlib_17498382") - # demo_parse_pdf(book_name="zlib/zlib_22006221") - - # footnote - # demo_parse_pdf(book_name="scihub/scihub_09700000/libgen.scimag09782000-09782999.zip_10.1111/j.1540-627x.2006.00176.x") - # demo_parse_pdf(book_name="scihub/scihub_17400000/libgen.scimag17488000-17488999.zip_10.1016/s0043-1354(02)00581-x") - # demo_parse_pdf(book_name="scihub/scihub_17000000/libgen.scimag17000000-17000999.zip_10.1016/j.pain.2004.06.005") - # demo_parse_pdf(book_name="scihub/scihub_46700000/libgen.scimag46727000-46727999.zip_10.2174/157341210791202627") - # demo_parse_pdf(book_name="scihub/scihub_68900000/libgen.scimag68948000-68948999.zip_10.1002/uog.18760") - # demo_parse_pdf(book_name="scihub/scihub_64600000/libgen.scimag64628000-64628999.zip_10.3892/mmr.2017.6343") - # demo_parse_pdf(book_name="scihub/scihub_47200000/libgen.scimag47212000-47212999.zip_10.7589/0090-3558-40.3.579") - # demo_parse_pdf(book_name="scihub/scihub_30400000/libgen.scimag30438000-30438999.zip_10.1021/ja048851k") - # demo_parse_pdf(book_name="scihub/scihub_43600000/libgen.scimag43628000-43628999.zip_10.1093/toxsci/kfi111") - # demo_parse_pdf(book_name="scihub/scihub_14000000/libgen.scimag14081000-14081999.zip_10.1016/s0923-4748(00)00034-5") - # demo_parse_pdf(book_name="scihub/scihub_47200000/libgen.scimag47212000-47212999.zip_10.7589/0090-3558-40.3.579") - demo_parse_pdf(book_name="scihub/scihub_43200000/libgen.scimag43208000-43208999.zip_10.1645/0022-3395(2000)086[0275:podsri]2.0.co;2") - # demo_parse_pdf(book_name="scihub/scihub_55700000/libgen.scimag55717000-55717999.zip_10.1007/s10067-016-3303-0") - - # 内容缺失 - # demo_parse_pdf(book_name="scihub/scihub_76900000/libgen.scimag76990000-76990999.zip_10.1145/3314111.3319829") - # demo_parse_pdf(book_name="scihub/scihub_84600000/libgen.scimag84652000-84652999.zip_10.1163/1876312x-00001010") - - # block line乱序 - # demo_parse_pdf(book_name="scihub/scihub_04800000/libgen.scimag04807000-04807999.zip_10.1016/s0927-7765(97)00029-5") - # demo_parse_pdf(book_name="scihub/scihub_37000000/libgen.scimag37007000-37007999.zip_10.0000/docserver.ingentaconnect.com/generic-24bf2a7237e7") - # demo_parse_pdf(book_name="scihub/scihub_44700000/libgen.scimag44733000-44733999.zip_10.1063/1.3631048") - # demo_parse_pdf(book_name="scihub/scihub_21100000/libgen.scimag21124000-21124999.zip_10.1080/10447318.2002.9669130") - # demo_parse_pdf(book_name="scihub/scihub_80100000/libgen.scimag80185000-80185999.zip_10.1353/sib.0.0003") - - # footnote - demo_parse_pdf(book_name="scihub/scihub_09700000/libgen.scimag09782000-09782999.zip_10.1111/j.1540-627x.2006.00176.x") - demo_parse_pdf(book_name="scihub/scihub_17400000/libgen.scimag17488000-17488999.zip_10.1016/s0043-1354(02)00581-x") - demo_parse_pdf(book_name="scihub/scihub_17000000/libgen.scimag17000000-17000999.zip_10.1016/j.pain.2004.06.005") - demo_parse_pdf(book_name="scihub/scihub_46700000/libgen.scimag46727000-46727999.zip_10.2174/157341210791202627") - demo_parse_pdf(book_name="scihub/scihub_64600000/libgen.scimag64628000-64628999.zip_10.3892/mmr.2017.6343") - demo_parse_pdf(book_name="scihub/scihub_47200000/libgen.scimag47212000-47212999.zip_10.7589/0090-3558-40.3.579") - demo_parse_pdf(book_name="scihub/scihub_43600000/libgen.scimag43628000-43628999.zip_10.1093/toxsci/kfi111") - demo_parse_pdf(book_name="scihub/scihub_14000000/libgen.scimag14081000-14081999.zip_10.1016/s0923-4748(00)00034-5") - demo_parse_pdf(book_name="scihub/scihub_55700000/libgen.scimag55717000-55717999.zip_10.1007/s10067-016-3303-0") - demo_parse_pdf(book_name="scihub/scihub_86500000/libgen.scimag86560000-86560999.zip_10.1007/s10995-021-03207-2") - demo_parse_pdf(book_name="scihub/scihub_42100000/libgen.scimag42162000-42162999.zip_10.1093/notesj/gjm116") - demo_parse_pdf(book_name="scihub/scihub_07500000/libgen.scimag07500000-07500999.zip_10.1007/s00412-005-0007-7") - demo_parse_pdf(book_name="scihub/scihub_50800000/libgen.scimag50827000-50827999.zip_10.1210/jc.2015-4251") - demo_parse_pdf(book_name="scihub/scihub_07500000/libgen.scimag07537000-07537999.zip_10.1007/s004320050323") - demo_parse_pdf(book_name="scihub/scihub_24600000/libgen.scimag24665000-24665999.zip_10.1016/S0387-7604(89)80007-5") - demo_parse_pdf(book_name="scihub/scihub_76200000/libgen.scimag76297000-76297999.zip_10.4018/jehmc.2011040101") - demo_parse_pdf(book_name="scihub/scihub_29400000/libgen.scimag29456000-29456999.zip_10.1177/0883911505049656") - demo_parse_pdf(book_name="scihub/scihub_30200000/libgen.scimag30263000-30263999.zip_10.1081/scc-200036639") - demo_parse_pdf(book_name="scihub/scihub_71200000/libgen.scimag71224000-71224999.zip_10.1038/s41396-018-0231-9") - demo_parse_pdf(book_name="scihub/scihub_30100000/libgen.scimag30175000-30175999.zip_10.1300/j035v17n04_03") - demo_parse_pdf(book_name="scihub/scihub_18900000/libgen.scimag18981000-18981999.zip_10.1016/j.neuroimage.2006.06.030") - demo_parse_pdf(book_name="scihub/scihub_53100000/libgen.scimag53119000-53119999.zip_10.1097/01.npt.0000282350.63993.7a") - demo_parse_pdf(book_name="scihub/scihub_10000000/libgen.scimag10071000-10071999.zip_10.1111/j.1750-8606.2011.00190.x") - demo_parse_pdf(book_name="scihub/scihub_64000000/libgen.scimag64030000-64030999.zip_10.1080/1612197X.2017.1292302") - demo_parse_pdf(book_name="scihub/scihub_86000000/libgen.scimag86085000-86085999.zip_10.1016/j.enzmictec.2020.109742") - demo_parse_pdf(book_name="scihub/scihub_51000000/libgen.scimag51049000-51049999.zip_10.1117/12.2227997") - demo_parse_pdf(book_name="scihub/scihub_43700000/libgen.scimag43768000-43768999.zip_10.1063/1.4895640") - demo_parse_pdf(book_name="scihub/scihub_05000000/libgen.scimag05036000-05036999.zip_10.1046/j.1365-2036.2000.00699.x") - - #色块内文本 - # demo_parse_pdf(book_name="scihub/scihub_87200000/libgen.scimag87202000-87202999.zip_10.1080/10220461.2021.1894971") - - # 0226 - demo_parse_pdf(book_name="scihub/scihub_76100000/libgen.scimag76174000-76174999.zip_10.1016/j.annemergmed.2019.01.040") - demo_parse_pdf(book_name="scihub/scihub_37400000/libgen.scimag37409000-37409999.zip_10.1177/0961203307085251") - demo_parse_pdf(book_name="scihub/scihub_26100000/libgen.scimag26107000-26107999.zip_10.1002/ajim.22195") - demo_parse_pdf(book_name="scihub/scihub_13100000/libgen.scimag13186000-13186999.zip_10.1016/j.brainres.2006.02.013") - demo_parse_pdf(book_name="scihub/scihub_75200000/libgen.scimag75297000-75297999.zip_10.1177/00393207160461-203") - demo_parse_pdf(book_name="scihub/scihub_34200000/libgen.scimag34255000-34255999.zip_10.1093/ojls/gqi025") - demo_parse_pdf(book_name="scihub/scihub_11300000/libgen.scimag11331000-11331999.zip_10.1208/s12249-011-9638-6") \ No newline at end of file diff --git a/tests/test_cli/conf/__init__py b/tests/test_cli/conf/__init__py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/test_cli/conf/conf.py b/tests/test_cli/conf/conf.py deleted file mode 100644 index 6ee4da720..000000000 --- a/tests/test_cli/conf/conf.py +++ /dev/null @@ -1,8 +0,0 @@ -import os -conf = { -"code_path": os.environ.get('GITHUB_WORKSPACE'), -"pdf_dev_path" : os.environ.get('GITHUB_WORKSPACE') + "/tests/test_cli/pdf_dev", -"pdf_res_path": "/tmp/magic-pdf", -"jsonl_path": "s3://llm-qatest-pnorm/mineru/test/line1.jsonl", -"s3_pdf_path": "s3://llm-qatest-pnorm/mineru/test/test_rearch_report.pdf" -} \ No newline at end of file diff --git a/tests/test_cli/conftest.py b/tests/test_cli/conftest.py deleted file mode 100644 index f7df67f6b..000000000 --- a/tests/test_cli/conftest.py +++ /dev/null @@ -1,17 +0,0 @@ -import pytest -import torch - -def clear_gpu_memory(): - ''' - clear GPU memory - ''' - torch.cuda.empty_cache() - print("GPU memory cleared.") - -@pytest.hookimpl(tryfirst=True, hookwrapper=True) -def pytest_runtest_teardown(item, nextitem): - ''' - clear GPU memory after each test - ''' - yield - clear_gpu_memory() \ No newline at end of file diff --git a/tests/test_cli/lib/__init__.py b/tests/test_cli/lib/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/test_cli/lib/calculate_score.py b/tests/test_cli/lib/calculate_score.py deleted file mode 100644 index a7c140d69..000000000 --- a/tests/test_cli/lib/calculate_score.py +++ /dev/null @@ -1,116 +0,0 @@ -""" -calculate_score -""" -import os -import re -import json -from Levenshtein import distance -from lib import scoring -from nltk.translate.bleu_score import sentence_bleu, SmoothingFunction -from nltk.tokenize import word_tokenize -import nltk -nltk.download('punkt') - -class Scoring: - """ - calculate_score - """ - def __init__(self, result_path): - """ - init - """ - self.edit_distances = [] - self.bleu_scores = [] - self.sim_scores = [] - self.filenames = [] - self.score_dict = {} - self.anntion_cnt = 0 - self.fw = open(result_path, "w+", encoding='utf-8') - - def simple_bleu_score(self, candidate, reference): - """ - get bleu score - """ - candidate_tokens = word_tokenize(candidate) - reference_tokens = word_tokenize(reference) - return sentence_bleu([reference_tokens], candidate_tokens, smoothing_function=SmoothingFunction().method1) - - - def preprocess_string(self, s): - """ - preprocess_string - """ - sub_enter = re.sub(r'\n+', '\n', s) - return re.sub(r' ', ' ', sub_enter) - - def calculate_similarity(self, annotion, actual, tool_type): - """ - calculate_similarity - """ - class_dict = {} - edit_distances = [] - bleu_scores = [] - sim_scores = list() - total_file = 0 - for filename in os.listdir(annotion): - if filename.endswith('.md') and not filename.startswith('.'): - total_file = total_file + 1 - with open(os.path.join(annotion, filename), 'r', encoding='utf-8') as file_a: - content_a = file_a.read() - self.anntion_cnt = self.anntion_cnt + 1 - filepath_b = os.path.join(actual, filename) - if os.path.exists(filepath_b): - with open(filepath_b, 'r', encoding='utf-8') as file_b: - content_b = file_b.read() - self.filenames.append(filename) - edit_dist = distance(self.preprocess_string(content_b),self.preprocess_string(content_a)) / max(len(content_a), len(content_b)) - self.edit_distances.append(edit_dist) - edit_distances.append(edit_dist) - bleu_score = self.simple_bleu_score(content_b, content_a) - bleu_scores.append(bleu_score) - self.bleu_scores.append(bleu_score) - score = scoring.score_text(content_b, content_a) - sim_scores.append(score) - self.sim_scores.append(score) - class_dict[filename] = {"edit_dist": edit_dist, "bleu_score": bleu_score, "sim_score": score} - self.score_dict[filename] = {"edit_dist": edit_dist, "bleu_score": bleu_score, "sim_score": score} - else: - print(f"File {filename} not found in actual directory.") - class_average_edit_distance = sum(edit_distances) / len(edit_distances) if edit_distances else 0 - class_average_bleu_score = sum(bleu_scores) / len(bleu_scores) if bleu_scores else 0 - class_average_sim_score = sum(sim_scores) / len(sim_scores) if sim_scores else 0 - self.fw.write(json.dumps(class_dict, ensure_ascii=False) + "\n") - ratio = len(class_dict)/total_file - self.fw.write(f"{tool_type} extract ratio: {ratio}" + "\n") - self.fw.write(f"{tool_type} Average Levenshtein Distance: {class_average_edit_distance}" + "\n") - self.fw.write(f"{tool_type} Average BLEU Score: {class_average_bleu_score}" + "\n") - self.fw.write(f"{tool_type} Average Sim Score: {class_average_sim_score}" + "\n") - print (f"{tool_type} extract ratio: {ratio}") - print (f"{tool_type} Average Levenshtein Distance: {class_average_edit_distance}") - print (f"{tool_type} Average BLEU Score: {class_average_bleu_score}") - print (f"{tool_type} Average Sim Score: {class_average_sim_score}") - return self.score_dict - - def summary_scores(self): - """ - calculate the average of edit distance, bleu score and sim score - """ - over_all_dict = dict() - average_edit_distance = sum(self.edit_distances) / len(self.edit_distances) if self.edit_distances else 0 - average_bleu_score = sum(self.bleu_scores) / len(self.bleu_scores) if self.bleu_scores else 0 - average_sim_score = sum(self.sim_scores) / len(self.sim_scores) if self.sim_scores else 0 - over_all_dict["average_edit_distance"] = average_edit_distance - over_all_dict["average_bleu_score"] = average_bleu_score - over_all_dict["average_sim_score"] = average_sim_score - self.fw.write(json.dumps(over_all_dict, ensure_ascii=False) + "\n") - return over_all_dict - - def calculate_similarity_total(self, tool_type, download_dir): - """ - calculate the average of edit distance, bleu score and sim score - """ - annotion = os.path.join(download_dir, "annotations", "cleaned") - actual = os.path.join(download_dir, tool_type, "cleaned") - score = self.calculate_similarity(annotion, actual, tool_type) - return score - diff --git a/tests/test_cli/lib/common.py b/tests/test_cli/lib/common.py deleted file mode 100644 index 6da6c94c3..000000000 --- a/tests/test_cli/lib/common.py +++ /dev/null @@ -1,79 +0,0 @@ -"""common definitions.""" -import os -import shutil -import re -import json -def check_shell(cmd): - """shell successful.""" - res = os.system(cmd) - assert res == 0 - -def update_config_file(file_path, key, value): - """update config file.""" - with open(file_path, 'r', encoding="utf-8") as f: - config = json.loads(f.read()) - config[key] = value - with open(file_path, 'w', encoding="utf-8") as f: - f.write(json.dumps(config)) - -def cli_count_folders_and_check_contents(file_path): - """" count cli files.""" - if os.path.exists(file_path): - for files in os.listdir(file_path): - folder_count = os.path.getsize(os.path.join(file_path, files)) - assert folder_count > 0 - assert len(os.listdir(file_path)) > 5 - -def sdk_count_folders_and_check_contents(file_path): - """count folders.""" - if os.path.exists(file_path): - file_count = os.path.getsize(file_path) - assert file_count > 0 - else: - exit(1) - - -def delete_file(path): - """delete file.""" - if not os.path.exists(path): - if os.path.isfile(path): - try: - os.remove(path) - print(f"File '{path}' deleted.") - except TypeError as e: - print(f"Error deleting file '{path}': {e}") - elif os.path.isdir(path): - try: - shutil.rmtree(path) - print(f"Directory '{path}' and its contents deleted.") - except TypeError as e: - print(f"Error deleting directory '{path}': {e}") - -def check_latex_table_exists(file_path): - """check latex table exists.""" - pattern = r'\\begin\{tabular\}.*?\\end\{tabular\}' - with open(file_path, 'r', encoding='utf-8') as file: - content = file.read() - matches = re.findall(pattern, content, re.DOTALL) - return len(matches) > 0 - -def check_html_table_exists(file_path): - """check html table exists.""" - pattern = r'.*?' - with open(file_path, 'r', encoding='utf-8') as file: - content = file.read() - matches = re.findall(pattern, content, re.DOTALL) - return len(matches) > 0 - -def check_close_tables(file_path): - """delete no tables.""" - latex_pattern = r'\\begin\{tabular\}.*?\\end\{tabular\}' - html_pattern = r'.*?' - with open(file_path, 'r', encoding='utf-8') as file: - content = file.read() - latex_matches = re.findall(latex_pattern, content, re.DOTALL) - html_matches = re.findall(html_pattern, content, re.DOTALL) - if len(latex_matches) == 0 and len(html_matches) == 0: - return True - else: - return False \ No newline at end of file diff --git a/tests/test_cli/lib/pre_clean.py b/tests/test_cli/lib/pre_clean.py deleted file mode 100644 index 4f423021d..000000000 --- a/tests/test_cli/lib/pre_clean.py +++ /dev/null @@ -1,128 +0,0 @@ -""" -clean data -""" -import argparse -import os -import re -import htmltabletomd # type: ignore -import pypandoc -import argparse - -parser = argparse.ArgumentParser(description="get tool type") -parser.add_argument( - "--tool_name", - type=str, - required=True, - help="input tool name", -) -parser.add_argument( - "--download_dir", - type=str, - required=True, - help="input download dir", -) -args = parser.parse_args() - -def clean_markdown_images(content): - """ - clean markdown images - """ - pattern = re.compile(r'!\[[^\]]*\]\([^)]*\)', re.IGNORECASE) - cleaned_content = pattern.sub('', content) - return cleaned_content - -def clean_ocrmath_photo(content): - """ - clean ocrmath photo - """ - pattern = re.compile(r'\\includegraphics\[.*?\]\{.*?\}', re.IGNORECASE) - cleaned_content = pattern.sub('', content) - return cleaned_content - -def convert_html_table_to_md(html_table): - """ - convert html table to markdown table - """ - lines = html_table.strip().split('\n') - md_table = '' - if lines and '' in lines[0]: - in_thead = True - for line in lines: - if '' in line: - cells = re.findall(r'(.*?)', line) - md_table += '| ' + ' | '.join(cells) + ' |\n' - in_thead = False - elif '' in line and not in_thead: - cells = re.findall(r'(.*?)', line) - md_table += '| ' + ' | '.join(cells) + ' |\n' - md_table = md_table.rstrip() + '\n' - return md_table - -def convert_latext_to_md(content): - """ - convert latex table to markdown table - """ - tables = re.findall(r'\\begin\{tabular\}(.*?)\\end\{tabular\}', content, re.DOTALL) - placeholders = [] - for table in tables: - placeholder = f"" - replace_str = f"\\begin{{tabular}}{table}cl\\end{{tabular}}" - content = content.replace(replace_str, placeholder) - try: - pypandoc.convert_text(replace_str, format="latex", to="md", outputfile="output.md", encoding="utf-8") - except: - markdown_string = replace_str - else: - markdown_string = open('output.md', 'r', encoding='utf-8').read() - placeholders.append((placeholder, markdown_string)) - new_content = content - for placeholder, md_table in placeholders: - new_content = new_content.replace(placeholder, md_table) - # 写入文件 - return new_content - - -def convert_htmltale_to_md(content): - """ - convert html table to markdown table - """ - tables = re.findall(r'(.*?)
    ', content, re.DOTALL) - placeholders = [] - for table in tables: - placeholder = f"" - content = content.replace(f"{table}
    ", placeholder) - try: - convert_table = htmltabletomd.convert_table(table) - except: - convert_table = table - placeholders.append((placeholder,convert_table)) - new_content = content - for placeholder, md_table in placeholders: - new_content = new_content.replace(placeholder, md_table) - # 写入文件 - return new_content - -def clean_data(prod_type, download_dir): - """ - clean data - """ - tgt_dir = os.path.join(download_dir, prod_type, "cleaned") - if not os.path.exists(tgt_dir): - os.makedirs(tgt_dir) - source_dir = os.path.join(download_dir, prod_type) - filenames = os.listdir(source_dir) - for filename in filenames: - if filename.endswith('.md'): - input_file = os.path.join(source_dir, filename) - output_file = os.path.join(tgt_dir, "cleaned_" + filename) - with open(input_file, 'r', encoding='utf-8') as fr: - content = fr.read() - new_content = clean_markdown_images(content) - with open(output_file, 'w', encoding='utf-8') as fw: - fw.write(new_content) - - -if __name__ == '__main__': - tool_type = args.tool_name - download_dir = args.download_dir - clean_data(tool_type, download_dir) diff --git a/tests/test_cli/lib/scoring.py b/tests/test_cli/lib/scoring.py deleted file mode 100644 index acb4b788f..000000000 --- a/tests/test_cli/lib/scoring.py +++ /dev/null @@ -1,51 +0,0 @@ -""" -Calculate simscore, refer to (https://github.com/VikParuchuri/marker?tab=readme-ov-file) -""" -import math - -from rapidfuzz import fuzz -import re -import regex -from statistics import mean - -CHUNK_MIN_CHARS = 25 - -def chunk_text(text, chunk_len=500): - chunks = [text[i:i+chunk_len] for i in range(0, len(text), chunk_len)] - chunks = [c for c in chunks if c.strip() and len(c) > CHUNK_MIN_CHARS] - return chunks - - -def overlap_score(hypothesis_chunks, reference_chunks): - if len(reference_chunks) > 0: - length_modifier = len(hypothesis_chunks) / len(reference_chunks) - else: - length_modifier = 0 - search_distance = max(len(reference_chunks) // 5, 10) - chunk_scores = [] - for i, hyp_chunk in enumerate(hypothesis_chunks): - max_score = 0 - total_len = 0 - i_offset = int(i * length_modifier) - chunk_range = range(max(0, i_offset-search_distance), min(len(reference_chunks), i_offset+search_distance)) - for j in chunk_range: - ref_chunk = reference_chunks[j] - score = fuzz.ratio(hyp_chunk, ref_chunk, score_cutoff=30) / 100 - if score > max_score: - max_score = score - total_len = len(ref_chunk) - chunk_scores.append(max_score) - return chunk_scores - - -def score_text(hypothesis, reference): - # Returns a 0-1 alignment score - hypothesis_chunks = chunk_text(hypothesis) - reference_chunks = chunk_text(reference) - chunk_scores = overlap_score(hypothesis_chunks, reference_chunks) - if len(chunk_scores) > 0: - mean_score = mean(chunk_scores) - return mean_score - else: - return 0 - #return mean(chunk_scores) \ No newline at end of file diff --git a/tests/test_cli/magic-pdf.json b/tests/test_cli/magic-pdf.json deleted file mode 100644 index 2c0223db0..000000000 --- a/tests/test_cli/magic-pdf.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "bucket_info":{ - "bucket-name-1":["ak", "sk", "endpoint"], - "bucket-name-2":["ak", "sk", "endpoint"] - }, - "temp-output-dir":"/tmp", - "models-dir":"/tmp/models", - "device-mode":"cpu" -} \ No newline at end of file diff --git a/tests/test_cli/pdf_dev/annotations/cleaned/cleaned_research_report_1f978cd81fb7260c8f7644039ec2c054.md b/tests/test_cli/pdf_dev/annotations/cleaned/cleaned_research_report_1f978cd81fb7260c8f7644039ec2c054.md deleted file mode 100644 index 19ea35b9d..000000000 --- a/tests/test_cli/pdf_dev/annotations/cleaned/cleaned_research_report_1f978cd81fb7260c8f7644039ec2c054.md +++ /dev/null @@ -1,246 +0,0 @@ -## 增持(维持) - -所属行业:机械设备 - -当前价格(元): 82.42 - -## 证券分析师 - -倪正洋 - -资格编号:S0120521020003 - -邮箱: nizy@tebon.com.cn - -## 研究助理 - -杨云道 - -邮箱: yangyx@tebon.com.cn - - - -| 沪深 300 对比 | $1 \mathrm{M}$ | $2 \mathrm{M}$ | $3 \mathrm{M}$ | -| :--- | ---: | ---: | ---: | -| 绝对涨幅(\%) | 7.18 | 32.88 | 80.86 | -| 相对涨幅(\%) | 8.10 | 25.93 | 78.39 | - -资料来源: 德邦研究所, 聚源数据 - -## 相关研究 - -1.《高测股份 (688556): 光伏金刚线及硅片切割代工业务推动公司 22Q1 业绩大超预期》, 2022.4.29 - -2.《光伏设备: 光伏高效电池扩产提速,关键设备商各领风骚》, 2022.4.10 3. 《高测股份 (688556.SH): 再签建湖 10GW 硅片切割代工产能,强化代工业务成长逻辑》, 2022.4.7 - -3.《高测股份 (688556.SH): 签订晶澳曲靖 2.2 亿元切割设备合同,看好 22 年代工业绩释放+HJT 切割工艺进步》, 2022.3.9 - -4.《高测股份 (688556.SH): 21 年业绩预告超市场预期,关注切片代工利润释放》, 2022.1.24 - -# 高测股份 $(688556.5 H):$ 扩产 4000 万公里金刚线,强化光伏碰片切割三元布局 - -## 投资要点 - -- 事件:公司拟与蓝关县人民政府签署的《壶关年产 12000 万千米金刚线项目投资协议书》,项目一期计划建设年产 4,000万千米金刚线产能,预计一期总投资额约 6.66 亿元; 后续年产 8,000 万千米金刚线项目尚未具体约定,存在较大不确定性。 -- 顺应下游需求扩张, 金刚线产能快速扩产, 保证公司内供+外销。光伏金刚线需求 22 年提升源于两方面:1)2022 年光伏产业链景气度高涨,1-5 月光伏装机同比 $+24.4 \%$, 带动产业链各环节开工率提升, 硅片前期扩产产能逐步落地, 金刚线需求释放;2)由于多晶硅料价格持续维持高位,细线化、薄片化趋势加速,其中细线化要求金刚线线径由 40 线、 38 线向 36 线、 35 线进步, 带动单 GW 切割线耗不断提升。目前 36 线单 GW 切割线耗约 50 万公里, 较 38 线提升约 $30 \%$ 。公司于 2021 年对金刚线进行 “ 1 机 12 线” 技改,技改完成后,公司 22 年 1 季度产能 712 万公里, 年化产能超 2500 万公里。公司目前切片代工产能约 47GW, 对应远期金刚线产能超 2300 万公里。本次扩产再一次扩充公司金刚线产能, 强化金刚线产能内供+外销布局。 -- 依托萦关低成本电价提升金刚线盈利能力, 顺应硅料节约持续推动细线化布局。公司在山西长治金刚线生产厂区采购电力的平均单价较青岛金刚线生产厂区采购电力的平均单价低, 2020 年度公司陆续将青岛的金刚线生产线搬迁到山西长治並关厂区,随着山西长治金刚线生产厂区金刚线产量增加,公司采购电力的平均单价呈下降趋势。目前公司电力采购单价从 2019 年 0.8 元/kwh 降低到 2022 年 Q1 的 0.39 元/kwh,並关后续拓展有望进一步降低公司金刚线电价成本。金刚线线径越细,锯㖓越小,切割时产生的锯㖓硅料损失越少,同样一根硅棒可切割加工出的硅片数量越多,制造硅片所需的硅材料越少。相同切割工艺下,金刚线越细,固结在钢线基体上的金刚石微粉颗粒越小,切割加工时对硅片的表面损伤越小,硅片表面质量越好,砝片 TTV 等质量指标表现也就越好。金刚线母线直径已由 2016 年的 80um 降至 2022 年上半年的 36、38、40um,此外高线速、柔性化和智能化等均是金刚线及切片技术进步方向, 公司在薄片、细线化、高线速、柔性智能化方面均有领先布局, 推动切割工艺持续进步。 -- 切割工艺的持续进步领先, 是保障公司利润释放的核心壁垒。公司光伏硅片切割三元布局包括硅片切割及机加工设备、砝片切割耗材 (金刚线) 以及切割代工业务。公司 2021 年依托前期设备+耗材布局切割代工业务, 目前已公布 47GW 产能 (乐山5GW 示范基地、乐山 20GW 大硅片及配套项目、建湖一期 10GW 项目,建湖二期 $12 \mathrm{GW}$ 项目), 客户包括通威、京运通、美科及建湖周边电池企业。22 年底公司有望实现超 20GW 切割代工产能, 且当前终端客户主要为下游电池企业。客户选择切割代工模式的核心在于凭借高测的专业化服务实现快速上产, 同时可获得较自建硅片切割产能或购买硅片更多的超额利润。超额利润的核心在于高测股份的切割代工技术领先, 可实现更多的硅片切割红利, 并与客户共享。未来随着金刚线扩产和切割技术进步, 公司光伏硅片切割代工利润弹性有望持续释放。 -- 盈利预测与投资建议:预计公司 2022-2024 年归母净利润 4.7、7.2、9.3 亿元,对应 PE 30、20、15 倍,维持 “增持” 评级。 -- 风险提示:硅片扩产不及预期,公司代工业务利润波动风险,市场竞争加剧。 - -
    股票数据
    总股本(百万股):227.92
    流通 A 股(百万股):167.01
    52 周内股价区间(元):21.60-97.40
    总市值(百万元):18,785.44
    总资产(百万元):3,508.81
    每股净资产(元):5.50
    咨料来源,公司公告
    - -
    主要财务数据及预测
    202020212022E2023E2024E
    营业收入(百万元)7461,5673,6845,0565,752
    (+/-)YOY(%)4.5\%110.0\%135.1\%37.2\%13.8\%
    净利润(百万元)59173471717933
    (+/-)YOY(%)83.8\%193.4\%172.8\%52.2\%30.1\%
    全面摊薄 EPS(元)0.431.072.914.435.77
    毛利率(\%)35.3\%33.7\%35.0\%36.0\%38.0\%
    净资产收益率(\%)6.0\%15.0\%27.9\%28.8\%26.5\%
    - -资料来源: 公司年报 (2020-2021),德邦研究所 - -备注: 净利润为归属母公司所有者的净利润 - -## 财务报表分析和预测 - -| 主要财务指标 | 2021 | $2022 E$ | $2023 E$ | $2024 E$ | -| :--- | ---: | ---: | ---: | ---: | -| 每股指标(元) | | | | | -| 每股收益 | 1.07 | 2.91 | 4.43 | 5.77 | -| 每股净资产 | 7.13 | 10.43 | 15.39 | 21.76 | -| 每股经营现金流 | 0.47 | 1.27 | 4.07 | 5.02 | -| 每股股利 | 0.11 | 0.11 | 0.11 | 0.11 | -| 价值评估(倍) | | | | | -| P/E | 82.90 | 30.47 | 20.02 | 15.38 | -| P/B | 12.44 | 8.50 | 5.76 | 4.08 | -| P/S | 8.52 | 3.62 | 2.64 | 2.32 | -| EV/EBITDA | 49.85 | 24.12 | 15.68 | 11.46 | -| 股息率\% | $0.1 \%$ | $0.1 \%$ | $0.1 \%$ | $0.1 \%$ | -| 盈利能力指标(\%) | | | | | -| 毛利率 | $33.7 \%$ | $35.0 \%$ | $36.0 \%$ | $38.0 \%$ | -| 净利润率 | $11.0 \%$ | $12.8 \%$ | $14.2 \%$ | $16.2 \%$ | -| 净资产收益率 | $15.0 \%$ | $27.9 \%$ | $28.8 \%$ | $26.5 \%$ | -| 资产回报率 | $5.3 \%$ | $7.9 \%$ | $8.5 \%$ | $9.2 \%$ | -| 投资回报率 | $15.3 \%$ | $25.9 \%$ | $24.6 \%$ | $23.7 \%$ | -| 盈利增长(\%) | | | | | -| 营业收入增长率 | $110.0 \%$ | $135.1 \%$ | $37.2 \%$ | $13.8 \%$ | -| EBIT 增长率 | $233.7 \%$ | $150.7 \%$ | $52.3 \%$ | $31.9 \%$ | -| 净利润增长率 | $193.4 \%$ | $172.8 \%$ | $52.2 \%$ | $30.1 \%$ | -| 偿倩能力指标 | | | | | -| 资产负债率 | $64.3 \%$ | $71.5 \%$ | $70.6 \%$ | $65.3 \%$ | -| 流动比率 | 1.2 | 1.2 | 1.3 | 1.4 | -| 速动比率 | 0.9 | 0.9 | 1.0 | 1.1 | -| 现金比率 | 0.2 | 0.1 | 0.2 | 0.3 | -| 经营效率指标 | | | | | -| 应收怅款周转天数 | 161.7 | 165.1 | 164.9 | 164.4 | -| 存货周转天数 | 196.1 | 170.0 | 180.0 | 190.0 | -| 总资产周转率 | 0.5 | 0.6 | 0.6 | 0.6 | -| 固定资产周转率 | 4.2 | 8.6 | 10.3 | 11.1 | - -| 现金流量表(百万元) | 2021 | $2022 E$ | 2023E | 2024E | -| :--- | ---: | ---: | ---: | ---: | -| 净利润 | 173 | 471 | 717 | 933 | -| 少数股东损益 | 0 | 0 | 0 | 0 | -| 非现金支出 | 107 | 114 | 133 | 147 | -| 非经营收益 | 17 | 1 | 4 | 14 | -| 营运资金变动 | -220 | -382 | -195 | -283 | -| 经营活动现金流 | 76 | 205 | 658 | 812 | -| 资产 | -83 | -184 | -203 | -169 | -| 投资 | 229 | 0 | 0 | 0 | -| 其他 | 6 | 9 | 13 | 14 | -| 投资活动现金流 | 151 | -175 | -190 | -155 | -| 债权募资 | -80 | 39 | 321 | 64 | -| 股权募资 | 0 | 0 | 0 | 0 | -| 其他活 | -21 | -3 | -14 | -25 | -| 融资活动现金流 | -101 | 36 | 307 | 39 | -| 现金净流量 | 127 | 66 | 775 | 696 | - -备注: 表中计算估值指标的收盘价日期为 7 月 19 日 - -资料来源: 公司年报 (2020-2021), 德邦研究所 - -| 利润表(百万元) | 2021 | 2022E | 2023E | 2024E | -| :---: | :---: | :---: | :---: | :---: | -| 营业总收入 | 1,567 | 3,684 | 5,056 | 5,752 | -| 营业成本 | 1,038 | 2,394 | 3,236 | 3,567 | -| 毛利率\% | $33.7 \%$ | $35.0 \%$ | $36.0 \%$ | $38.0 \%$ | -| 营业税金及附加 | 6 | 18 | 25 | 29 | -| 营业税金率\% | $0.4 \%$ | $0.5 \%$ | $0.5 \%$ | $0.5 \%$ | -| 营业费用 | 63 | 147 | 193 | 209 | -| 营业费用率\% | $4.0 \%$ | $4.0 \%$ | $3.8 \%$ | $3.6 \%$ | -| 管理费用 | 131 | 313 | 409 | 444 | -| 管理费用率\% | $8.4 \%$ | $8.5 \%$ | $8.1 \%$ | $7.7 \%$ | -| 研发费用 | 117 | 276 | 379 | 431 | -| 研发费用率\% | $7.5 \%$ | $7.5 \%$ | $7.5 \%$ | $7.5 \%$ | -| EBIT | 213 | 534 | 814 | 1,074 | -| 财务费用 | 7 | 1 | 11 | 19 | -| 财务费用率\% | $0.4 \%$ | $0.0 \%$ | $0.2 \%$ | $0.3 \%$ | -| 资产减值损失 | -33 | -63 | -86 | -98 | -| 投资收益 | 5 | 9 | 13 | 14 | -| 营业利润 | 212 | 531 | 800 | 1,040 | -| 营业外收支 | -25 | -8 | -3 | -3 | -| 利润总额 | 187 | 523 | 797 | 1,037 | -| EBITDA | 282 | 582 | 865 | 1,129 | -| 所得税 | 14 | 52 | 80 | 104 | -| 有效所得税率\% | $7.7 \%$ | $10.0 \%$ | $10.0 \%$ | $10.0 \%$ | -| 少数股东损益 | 0 | 0 | 0 | $\mathbf{0}-1-2$ | -| 归属母公司所有者净利润 | 173 | 471 | 717 | 933 | - -| 资产负债表(百万元) | 2021 | 2022E | 2023E | $2024 E$ | -| :---: | :---: | :---: | :---: | :---: | -| 货币资金 | 427 | 494 | 1,269 | 1,965 | -| 应收账款及应收票据 | 1,173 | 2,806 | 3,798 | 4,344 | -| 存货 | 558 | 1,115 | 1,596 | 1,857 | -| 其它流动资产 | 266 | 578 | 736 | 778 | -| 流动资产合计 | 2,424 | 4,992 | 7,400 | 8,943 | -| 长期股权投资 | 0 | 0 | 0 | 0 | -| 固定资产 | 370 | 429 | 491 | 516 | -| 在建工程 | 169 | 183 | 205 | 226 | -| 无形资产 | 42 | 56 | 69 | 80 | -| 非流动资产合计 | 811 | 940 | 1,087 | 1,198 | -| 资产总计 | 3,235 | 5,932 | 8,487 | 10,141 | -| 短期借款 | 28 | 68 | 388 | 452 | -| 应付票据及应付账款 | 1,401 | 3,197 | 4,302 | 4,760 | -| 预收账款 | 0 | 0 | 0 | 0 | -| 其它流动负债 | 560 | 887 | 1,214 | 1,314 | -| 流动负债合计 | 1,989 | 4,152 | 5,904 | 6,527 | -| 长期借款 | 0 | 0 | 0 | 0 | -| 其它长期负债 | 92 | 92 | 92 | 92 | -| 非流动负债合计 | 92 | 92 | 92 | 92 | -| 负债总计 | 2,081 | 4,243 | 5,996 | 6,619 | -| 实收资本 | 162 | 162 | 162 | 162 | -| 普通股股东权益 | 1,154 | 1,688 | 2,491 | 3,522 | -| 少数股东权益 | 0 | 0 | 0 | 0 | -| 负债和所有者权益合计 | 3,235 | 5,932 | 8,487 | 10,141 | - -## 信息披露 - -## 分析师与研究助理简介 - -倪正洋,2021 年加入德邦证券,任研究所大制造组组长、机械行业首席分析师,拥有 5 年机械研究经验,1 年高端装备产业经验,南京大学材料学学士、上海交通大学材料学硕士。2020 年获得 iFinD 机械行业最具人气分析师, 所在团队曾获机械行业 2019 年新财富第三名,2017 年新财富第二名,2017 年金牛奖第二名,2016 年新财富第四名。 - -## 分析师声明 - -本人具有中国证券业协会授予的证券投资咨询执业资格,以勤勉的职业态度,独立、客观地出具本报告。本报告所采用的数据和信息均来自市场公开信息, 本人不保证该等信息的准确性或完整性。分析逻辑基于作者的职业理解,清晰准确地反映了作者的研究观点,结论不受任何第三方的授意或影响,特此声明。 - -## 投资评级说明 - -1.投资评级的比较和评级标准: - -以报告发布后的 6 个月内的市场表现为比较标准,报告发布日后 6 个月内的公司股价(或行业指数)的张跌幅相对同期市场基准指数的涨跌幅; - -2.市场基准指数的比较标准: - -A 股市场以上证综指或深证成指为基准;香港市场以恒生指数为基准;美国市场以标普 500 或纳斯达克综合指数为基准。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1. 投资评级的比较和评级标准: 以报告发布后的 6 个月内的市场表 现为比较标准,报告发布日后 6 个 月内的公司股价(或行业指数)的 涨跌幅相对同期市场基准指数的涨 跌幅:
    2. 市场基准指数的比较标准: A股市场以上证综指或深证成指为基 准; 香港市场以恒生指数为基准; 美 国市场以标普500或纳斯达克综合指 数为基准。
    类型评级说明
    股票评级
    买入相对强于市场表现 20%以上;
    增持相对强于市场表现 5% 20%;
    中性相对市场表现在-5% +5%之间波动;
    减持相对弱于市场表现 5%以下。
    行业投资评级
    优于大市预期行业整体回报高于基准指数整体水平10%以上;
    中性预期行业整体回报介于基准指数整体水平-10%与 10%之间;
    弱于大市预期行业整体回报低于基准指数整体水平 10%以下。
    - -## 法律声明 - -本报告仅供德邦证券股份有限公司(以下简称 “本公司”)的客户使用。本公司不会因接收人收到本报告而视其为客户。在任何情况下,本报告中的信息或所表述的意见并不构成对任何人的投资建议。在任何情况下,本公司不对任何人因使用本报告中的任何内容所引致的任何损失负任何责任。 - -本报告所载的资料、意见及推测仅反映本公司于发布本报告当日的判断,本报告所指的证券或投资标的的价格、价值及投资收入可能会波动。在不同时期,本公司可发出与本报告所载资料、意见及推测不一致的报告。 - -市场有风险,投资需谨慎。本报告所载的信息、材料及结论只提供特定客户作参考,不构成投资建议,也没有考虑到个别客户特殊的投资目标、财务状况或需要。客户应考虑本报告中的任何意见或建议是否符合其特定状况。在法律许可的情况下,德邦证券及其所属关联机构可能会持有报告中提到的公司所发行的证券并进行交易,还可能为这些公司提供投资银行服务或其他服务。 - -本报告仅向特定客户传送,未经德邦证券研究所书面授权,本研究报告的任何部分均不得以任何方式制作任何形式的拷贝、复印件或复制品,或再次分发给任何其他人,或以任何侵犯本公司版权的其他方式使用。所有本报告中使用的商标、服务标记及标记均为本公司的商标、服务标记及标记。如欲引用或转载本文内容, 务必联络德邦证券研究所并获得许可, 并需注明出处为德邦证券研究所,且不得对本文进行有悖原意的引用和删改。 - -根据中国证监会核发的经营证券业务许可,德邦证券股份有限公司的经营范围包括证券投资咨询业务。 \ No newline at end of file diff --git a/tests/test_cli/pdf_dev/line1.jsonl b/tests/test_cli/pdf_dev/line1.jsonl deleted file mode 100644 index 1fac8c111..000000000 --- a/tests/test_cli/pdf_dev/line1.jsonl +++ /dev/null @@ -1 +0,0 @@ -{"track_id": "e8824f5a-9fcb-4ee5-b2d4-6bf2c67019dc", "path": "s3://sci-hub/enbook-scimag/78800000/libgen.scimag78872000-78872999/10.1017/cbo9780511770425.012.pdf", "file_type": "pdf", "content_type": "application/pdf", "content_length": 80078, "title": "German Idealism and the Concept of Punishment || Conclusion", "remark": {"file_id": "scihub_78800000/libgen.scimag78872000-78872999.zip_10.1017/cbo9780511770425.012", "file_source_type": "paper", "original_file_id": "10.1017/cbo9780511770425.012", "file_name": "10.1017/cbo9780511770425.012.pdf", "author": "Merle, Jean-Christophe"}, "doc_layout_result": [{"layout_dets": [{"category_id": 2, "poly": [591.1976318359375, 1620.9306640625, 630.57958984375, 1620.9306640625, 630.57958984375, 1643.831787109375, 591.1976318359375, 1643.831787109375], "score": 0.9999933242797852}, {"category_id": 1, "poly": [174.7235870361328, 566.96728515625, 1048.540771484375, 566.96728515625, 1048.540771484375, 1502.302978515625, 174.7235870361328, 1502.302978515625], "score": 0.9999879598617554}, {"category_id": 2, "poly": [45.86769104003906, 1717.0513916015625, 1142.835693359375, 1717.0513916015625, 1142.835693359375, 1762.06494140625, 45.86769104003906, 1762.06494140625], "score": 0.9998946189880371}, {"category_id": 1, "poly": [175.40235900878906, 1504.3228759765625, 1044.1571044921875, 1504.3228759765625, 1044.1571044921875, 1575.264892578125, 175.40235900878906, 1575.264892578125], "score": 0.9997720718383789}, {"category_id": 0, "poly": [462.2110595703125, 220.74905395507812, 755.4266357421875, 220.74905395507812, 755.4266357421875, 257.0824279785156, 462.2110595703125, 257.0824279785156], "score": 0.8909987211227417}, {"category_id": 15, "poly": [587.0, 1616.0, 636.0, 1616.0, 636.0, 1656.0, 587.0, 1656.0], "score": 1.0, "text": "187"}, {"category_id": 15, "poly": [171.0, 568.0, 1044.0, 570.0, 1044.0, 608.0, 171.0, 606.0], "score": 0.98, "text": " In Part 1, we examined the Kantian, retributivist thesis, according to"}, {"category_id": 15, "poly": [171.0, 604.0, 1043.0, 608.0, 1042.0, 645.0, 171.0, 641.0], "score": 0.99, "text": "which the criminal is punished, because he or she merits it. Two interpret-"}, {"category_id": 15, "poly": [174.0, 647.0, 1039.0, 647.0, 1039.0, 679.0, 174.0, 679.0], "score": 0.99, "text": "ations of the Kantian concept of right are possible (see Chapter 1)."}, {"category_id": 15, "poly": [178.0, 684.0, 1039.0, 684.0, 1039.0, 711.0, 178.0, 711.0], "score": 0.99, "text": "On the one hand, according to the liberal interpretation, which does"}, {"category_id": 15, "poly": [180.0, 720.0, 1037.0, 720.0, 1037.0, 746.0, 180.0, 746.0], "score": 0.98, "text": "not refer to the internal disposition of human beings, right is defined"}, {"category_id": 15, "poly": [178.0, 756.0, 1041.0, 756.0, 1041.0, 782.0, 178.0, 782.0], "score": 0.96, "text": "merely as being the coexistence of the freedom of action of all"}, {"category_id": 15, "poly": [173.0, 784.0, 1043.0, 786.0, 1042.0, 823.0, 172.0, 821.0], "score": 0.99, "text": "human beings according to the principle of equality of right. On"}, {"category_id": 15, "poly": [174.0, 823.0, 1042.0, 823.0, 1042.0, 861.0, 174.0, 861.0], "score": 0.99, "text": "the other hand, according to the moral interpretation, which substan-"}, {"category_id": 15, "poly": [178.0, 861.0, 1041.0, 861.0, 1041.0, 892.0, 178.0, 892.0], "score": 0.98, "text": "tially refers to the internal dispositions of human beings, right"}, {"category_id": 15, "poly": [174.0, 894.0, 1043.0, 896.0, 1042.0, 930.0, 174.0, 928.0], "score": 1.0, "text": "should implement the content of the categorical imperative as far as"}, {"category_id": 15, "poly": [172.0, 932.0, 1042.0, 928.0, 1043.0, 964.0, 173.0, 968.0], "score": 1.0, "text": "possible through the application of coercion. In accordance with both"}, {"category_id": 15, "poly": [178.0, 971.0, 1039.0, 971.0, 1039.0, 998.0, 178.0, 998.0], "score": 1.0, "text": "of these interpretations, two dimensions can be distinguished in the"}, {"category_id": 15, "poly": [176.0, 1005.0, 1037.0, 1005.0, 1037.0, 1037.0, 176.0, 1037.0], "score": 0.99, "text": "Kantian retributivist thesis: one genuine dimension of legal ethics,"}, {"category_id": 15, "poly": [176.0, 1041.0, 1042.0, 1041.0, 1042.0, 1072.0, 176.0, 1072.0], "score": 0.99, "text": "which is a dimension independent of the internal dispositions of"}, {"category_id": 15, "poly": [176.0, 1076.0, 1041.0, 1076.0, 1041.0, 1108.0, 176.0, 1108.0], "score": 1.0, "text": "individuals (see Chapter 2), and a dimension of personal ethics (see"}, {"category_id": 15, "poly": [174.0, 1112.0, 1044.0, 1110.0, 1044.0, 1142.0, 174.0, 1144.0], "score": 0.99, "text": "Chapter 3). The dimension of legal ethics of the Kantian retributivist"}, {"category_id": 15, "poly": [173.0, 1144.0, 1043.0, 1146.0, 1042.0, 1183.0, 172.0, 1181.0], "score": 0.99, "text": "thesis contradicts the requirement for the coexistence of all freedoms,"}, {"category_id": 15, "poly": [176.0, 1185.0, 1044.0, 1185.0, 1044.0, 1217.0, 176.0, 1217.0], "score": 0.99, "text": "of which the freedom of the criminal is a part too, and of which it"}, {"category_id": 15, "poly": [178.0, 1221.0, 1042.0, 1221.0, 1042.0, 1252.0, 178.0, 1252.0], "score": 0.99, "text": "ought again to become a part - at least in the most direct way. The"}, {"category_id": 15, "poly": [178.0, 1256.0, 1042.0, 1256.0, 1042.0, 1288.0, 178.0, 1288.0], "score": 1.0, "text": "dimension of personal ethics contradicts the postulate of the highest"}, {"category_id": 15, "poly": [174.0, 1290.0, 1046.0, 1290.0, 1046.0, 1328.0, 174.0, 1328.0], "score": 1.0, "text": "good, which rather requires forgiveness toward the criminal as long as"}, {"category_id": 15, "poly": [176.0, 1329.0, 1042.0, 1329.0, 1042.0, 1361.0, 176.0, 1361.0], "score": 0.99, "text": "this forgiveness is compatible with the concern for the safety of the"}, {"category_id": 15, "poly": [176.0, 1365.0, 1044.0, 1365.0, 1044.0, 1397.0, 176.0, 1397.0], "score": 1.0, "text": "other citizens. Hence, Kant's concept of right as well as his concept of"}, {"category_id": 15, "poly": [176.0, 1401.0, 1042.0, 1401.0, 1042.0, 1432.0, 176.0, 1432.0], "score": 0.99, "text": "virtue require rehabilitation instead of retribution, which ought to"}, {"category_id": 15, "poly": [178.0, 1438.0, 1041.0, 1438.0, 1041.0, 1470.0, 178.0, 1470.0], "score": 0.98, "text": "occur after the shortest possible period of specific deterrence, that is,"}, {"category_id": 15, "poly": [178.0, 1476.0, 572.0, 1476.0, 572.0, 1502.0, 178.0, 1502.0], "score": 1.0, "text": "after a period of incapacitation."}, {"category_id": 15, "poly": [47.0, 1718.0, 1140.0, 1718.0, 1140.0, 1742.0, 47.0, 1742.0], "score": 0.99, "text": "Downloaded from https://www.cambridge.org/core. Universiteit Leiden / LUMC, on 29 Nov 2019 at 23:02:12, subject to the Cambridge Core"}, {"category_id": 15, "poly": [47.0, 1740.0, 947.0, 1740.0, 947.0, 1764.0, 47.0, 1764.0], "score": 0.99, "text": "terms of use, available at https://www.cambridge.org/core/terms. https://doi.org/10.1017/CB09780511770425.012"}, {"category_id": 15, "poly": [208.0, 1508.0, 1046.0, 1508.0, 1046.0, 1539.0, 208.0, 1539.0], "score": 0.97, "text": "In Part 11, I showed how this justification of punishment as a"}, {"category_id": 15, "poly": [173.0, 1543.0, 1043.0, 1547.0, 1042.0, 1579.0, 172.0, 1575.0], "score": 0.98, "text": "rehabilitation occurring after a period of specific deterrence was"}, {"category_id": 15, "poly": [463.0, 223.0, 758.0, 223.0, 758.0, 261.0, 463.0, 261.0], "score": 1.0, "text": "CONCLUSION"}], "judge": {"final_judge": true, "search_judge": true, "score_judge": true, "cannot_find": false, "search_list": [[94.38621520996094, 0.8934143414341433, 0.9166666666666667, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-18233558.pdf_664.jpg"], [96.75828552246094, 0.3755625562556255, 0.40909090909090906, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/996474.pdf_5.jpg"], [101.54622650146484, 0.9999999999999999, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/llm-raw-scihub-o.O-bf01324542.pdf_1.jpg"], [103.87814331054688, 0.9999999999999999, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/af03a51e581f58ba77807426b6fffed5f72e11d9618c38ac397c0746027f70f8.pdf_8.jpg"], [104.06207275390625, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/1012690215583482.pdf_7.jpg"], [107.45576477050781, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-21539592.pdf_279.jpg"], [109.10279846191406, 0.16666666666666666, 0.16666666666666666, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/24e03d05a7386b44b247c74e52e037c2.pdf_20.jpg"], [111.90066528320312, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-19260283.pdf_8703.jpg"], [112.17504119873047, 0.9999999999999999, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/cbo9780511760433.011.pdf_6.jpg"], [112.317626953125, 0.801980198019802, 0.8, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/dianzishu_zhongwenzaixian-o.O-61571679.pdf_158.jpg"]]}, "page_info": {"page_no": 0, "height": 1800, "width": 1200}}, {"layout_dets": [{"category_id": 1, "poly": [186.0487518310547, 160.72091674804688, 1053.1669921875, 160.72091674804688, 1053.1669921875, 1062.760009765625, 186.0487518310547, 1062.760009765625], "score": 0.9999426603317261}, {"category_id": 2, "poly": [530.0048828125, 96.8239517211914, 706.0452880859375, 96.8239517211914, 706.0452880859375, 116.67359161376953, 530.0048828125, 116.67359161376953], "score": 0.9998738765716553}, {"category_id": 2, "poly": [45.27268981933594, 1716.4654541015625, 1144.2857666015625, 1716.4654541015625, 1144.2857666015625, 1766.255859375, 45.27268981933594, 1766.255859375], "score": 0.9995562434196472}, {"category_id": 1, "poly": [183.6819305419922, 1063.69482421875, 1052.115966796875, 1063.69482421875, 1052.115966796875, 1570.769287109375, 183.6819305419922, 1570.769287109375], "score": 0.9991673231124878}, {"category_id": 2, "poly": [188.42965698242188, 93.00428771972656, 232.87054443359375, 93.00428771972656, 232.87054443359375, 116.07218933105469, 188.42965698242188, 116.07218933105469], "score": 0.9988474249839783}, {"category_id": 15, "poly": [186.0, 167.0, 1054.0, 167.0, 1054.0, 204.0, 186.0, 204.0], "score": 1.0, "text": "supported on the basis of the liberal interpretation of Kant's concept"}, {"category_id": 15, "poly": [186.0, 202.0, 1054.0, 202.0, 1054.0, 240.0, 186.0, 240.0], "score": 0.99, "text": "of right by Fichte (see Chapter 4) and Hegel (see Chapter 5): the"}, {"category_id": 15, "poly": [184.0, 240.0, 1054.0, 242.0, 1054.0, 274.0, 184.0, 272.0], "score": 0.98, "text": "criminal is punished, in order that he or she might once again become part"}, {"category_id": 15, "poly": [186.0, 278.0, 1054.0, 278.0, 1054.0, 309.0, 186.0, 309.0], "score": 0.99, "text": "of the commonwealth. Fichte begins with the question of the treatment"}, {"category_id": 15, "poly": [186.0, 313.0, 1052.0, 313.0, 1052.0, 345.0, 186.0, 345.0], "score": 0.99, "text": "of the criminal and by a thought experiment initially draws the"}, {"category_id": 15, "poly": [184.0, 347.0, 1050.0, 349.0, 1050.0, 383.0, 184.0, 381.0], "score": 0.99, "text": "logical conclusion of crime. The logically consistent consequence"}, {"category_id": 15, "poly": [186.0, 384.0, 1050.0, 384.0, 1050.0, 416.0, 186.0, 416.0], "score": 0.98, "text": "of it would not be retaliation, but instead the exclusion of the"}, {"category_id": 15, "poly": [188.0, 424.0, 1046.0, 424.0, 1046.0, 450.0, 188.0, 450.0], "score": 0.99, "text": "criminal from the commonwealth and the revocation of his or her"}, {"category_id": 15, "poly": [186.0, 458.0, 1050.0, 458.0, 1050.0, 489.0, 186.0, 489.0], "score": 0.96, "text": "legal status. The public punishment derived from right as such"}, {"category_id": 15, "poly": [184.0, 493.0, 1052.0, 489.0, 1052.0, 521.0, 184.0, 525.0], "score": 0.99, "text": "emerges as an alternative to this fate that is better for the criminal"}, {"category_id": 15, "poly": [184.0, 529.0, 1050.0, 527.0, 1050.0, 559.0, 184.0, 561.0], "score": 1.0, "text": "so long as the alternative punishment amounts neither to the death"}, {"category_id": 15, "poly": [184.0, 564.0, 1050.0, 561.0, 1050.0, 594.0, 184.0, 598.0], "score": 0.99, "text": "penalty nor to torture but rather to a sentence of incarceration. Such"}, {"category_id": 15, "poly": [182.0, 600.0, 1050.0, 598.0, 1050.0, 630.0, 182.0, 632.0], "score": 0.98, "text": "an expiation, therefore, is not an evil, but rather a chance, which"}, {"category_id": 15, "poly": [186.0, 636.0, 1052.0, 636.0, 1052.0, 667.0, 186.0, 667.0], "score": 0.99, "text": "Fichte constructs in such a way that the criminal can be reformed"}, {"category_id": 15, "poly": [184.0, 669.0, 1050.0, 673.0, 1050.0, 705.0, 184.0, 701.0], "score": 0.98, "text": "and then finally reintegrated into the commonwealth. Hegel, in turn,"}, {"category_id": 15, "poly": [188.0, 711.0, 1048.0, 711.0, 1048.0, 737.0, 188.0, 737.0], "score": 0.99, "text": "chooses as his guideline not the treatment of the criminal, but the"}, {"category_id": 15, "poly": [186.0, 744.0, 1050.0, 744.0, 1050.0, 776.0, 186.0, 776.0], "score": 0.99, "text": "reestablishment of right as the negation of the negation - in which"}, {"category_id": 15, "poly": [186.0, 780.0, 1050.0, 780.0, 1050.0, 812.0, 186.0, 812.0], "score": 0.98, "text": "crime is the negation and the punishment is the negation of the"}, {"category_id": 15, "poly": [182.0, 814.0, 1054.0, 812.0, 1054.0, 849.0, 182.0, 851.0], "score": 0.99, "text": "negation. In so doing, the “negation\" of the negation is in no case, as"}, {"category_id": 15, "poly": [180.0, 849.0, 1052.0, 847.0, 1052.0, 885.0, 180.0, 887.0], "score": 0.99, "text": "it is often mistakenly assumed to be, of the same sort as the simple"}, {"category_id": 15, "poly": [188.0, 885.0, 1050.0, 887.0, 1050.0, 921.0, 187.0, 919.0], "score": 0.99, "text": "\"negation\" is, and thus it should not be taken to be a response to the"}, {"category_id": 15, "poly": [184.0, 922.0, 1050.0, 926.0, 1050.0, 958.0, 184.0, 954.0], "score": 0.98, "text": "evil of the crime by a second evil. Contrary to many interpretations,"}, {"category_id": 15, "poly": [186.0, 960.0, 1050.0, 960.0, 1050.0, 992.0, 186.0, 992.0], "score": 0.98, "text": "Hegel is not a retributivist, even though he - like Fichte as well -"}, {"category_id": 15, "poly": [184.0, 994.0, 1052.0, 996.0, 1052.0, 1029.0, 184.0, 1027.0], "score": 1.0, "text": "assigns to retributivism a (merely) instrumental, psychological role in"}, {"category_id": 15, "poly": [186.0, 1033.0, 1048.0, 1033.0, 1048.0, 1065.0, 186.0, 1065.0], "score": 1.0, "text": "conveying to the convicted criminal the significance of the punishment."}, {"category_id": 15, "poly": [531.0, 96.0, 705.0, 96.0, 705.0, 122.0, 531.0, 122.0], "score": 1.0, "text": "CONCLUSION"}, {"category_id": 15, "poly": [47.0, 1718.0, 1140.0, 1718.0, 1140.0, 1742.0, 47.0, 1742.0], "score": 0.99, "text": "Downloaded from https://www.cambridge.org/core. Universiteit Leiden / LUMC, on 29 Nov 2019 at 23:02:12, subject to the Cambridge Core"}, {"category_id": 15, "poly": [47.0, 1740.0, 947.0, 1740.0, 947.0, 1764.0, 47.0, 1764.0], "score": 0.99, "text": "terms of use, available at https://www.cambridge.org/core/terms. https://doi.org/10.1017/CB09780511770425.012"}, {"category_id": 15, "poly": [218.0, 1067.0, 1052.0, 1067.0, 1052.0, 1099.0, 218.0, 1099.0], "score": 0.98, "text": "In Part 111, it finally turned out that retributivism could often demand"}, {"category_id": 15, "poly": [184.0, 1101.0, 1050.0, 1099.0, 1050.0, 1136.0, 184.0, 1138.0], "score": 0.99, "text": "punishment without any respect for humanity in the person of the criminal."}, {"category_id": 15, "poly": [186.0, 1138.0, 1048.0, 1138.0, 1048.0, 1170.0, 186.0, 1170.0], "score": 0.99, "text": "Nietzsche offers a plausible account of the genesis of retaliative"}, {"category_id": 15, "poly": [182.0, 1174.0, 1054.0, 1170.0, 1054.0, 1207.0, 182.0, 1211.0], "score": 0.98, "text": "punishment (see Chapter 6), in which the motive of the institution"}, {"category_id": 15, "poly": [182.0, 1207.0, 1052.0, 1209.0, 1052.0, 1247.0, 182.0, 1245.0], "score": 1.0, "text": "of such punishments stems not from the respect for human dignity,"}, {"category_id": 15, "poly": [182.0, 1245.0, 1050.0, 1247.0, 1050.0, 1281.0, 182.0, 1279.0], "score": 0.99, "text": "but rather from a universal human cruelty toward the criminal,"}, {"category_id": 15, "poly": [184.0, 1282.0, 1052.0, 1282.0, 1052.0, 1320.0, 184.0, 1320.0], "score": 0.99, "text": "which hinders rather than awakens the emergence of bad conscience"}, {"category_id": 15, "poly": [184.0, 1320.0, 1050.0, 1320.0, 1050.0, 1352.0, 184.0, 1352.0], "score": 0.99, "text": "and remorse in the criminal. When the state establishes a monopoly"}, {"category_id": 15, "poly": [184.0, 1356.0, 1052.0, 1354.0, 1052.0, 1386.0, 184.0, 1388.0], "score": 1.0, "text": "on violence and guarantees public security, the people are deprived"}, {"category_id": 15, "poly": [184.0, 1389.0, 1050.0, 1393.0, 1050.0, 1425.0, 184.0, 1421.0], "score": 1.0, "text": "of the exercise of this cruelty and punishments become comparatively"}, {"category_id": 15, "poly": [188.0, 1431.0, 1046.0, 1431.0, 1046.0, 1457.0, 188.0, 1457.0], "score": 0.98, "text": "mild, such as those we have known since the end of the eighteenth"}, {"category_id": 15, "poly": [186.0, 1464.0, 1048.0, 1464.0, 1048.0, 1496.0, 186.0, 1496.0], "score": 0.99, "text": "century. In order to keep the promise I made in the introduction"}, {"category_id": 15, "poly": [184.0, 1500.0, 1050.0, 1500.0, 1050.0, 1532.0, 184.0, 1532.0], "score": 0.99, "text": "to draw conclusions resulting from the rehabilitative alternative to"}, {"category_id": 15, "poly": [186.0, 1539.0, 1048.0, 1539.0, 1048.0, 1566.0, 186.0, 1566.0], "score": 0.98, "text": "retributivism, I finally argue (see Chapter 7) for a treatment of even"}, {"category_id": 15, "poly": [186.0, 88.0, 238.0, 88.0, 238.0, 126.0, 186.0, 126.0], "score": 1.0, "text": "188"}], "judge": {"final_judge": true, "search_judge": true, "score_judge": true, "cannot_find": false, "search_list": [[39.50499725341797, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/S0021875817000378.pdf_1.jpg"], [41.84830856323242, 0.875, 0.875, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/llm-raw-the-eye-o.O-Kularatna%20-%20Electronic%20Circuit%20Design%20-%20From%20Concept%20to%20Implementation%20%28CRC%2C%202008%29.pdf_418.jpg"], [43.40003967285156, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9781139088398.007.pdf_29.jpg"], [45.80609893798828, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/s0308-521x%2898%2900056-0.pdf_3.jpg"], [46.35636901855469, 0.9999999999999999, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/cbo9780511760433.011.pdf_6.jpg"], [47.62663269042969, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/9b04f5410f803df1f5f93aa3778059efe90db326c19f5d7ba85414c96739b3bd.pdf_5.jpg"], [48.572166442871094, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/9781316090930.077.pdf_10.jpg"], [49.02326202392578, 0.8585572842998586, 0.8571428571428571, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9780511551246.006.pdf_7.jpg"], [51.011962890625, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16659265.pdf_116.jpg"], [51.50635528564453, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16579787.pdf_143.jpg"]]}, "page_info": {"page_no": 1, "height": 1800, "width": 1200}}, {"layout_dets": [{"category_id": 1, "poly": [175.82254028320312, 164.97610473632812, 1042.52001953125, 164.97610473632812, 1042.52001953125, 486.8489685058594, 175.82254028320312, 486.8489685058594], "score": 0.9999958872795105}, {"category_id": 1, "poly": [175.0261688232422, 488.64630126953125, 1042.31494140625, 488.64630126953125, 1042.31494140625, 630.5396728515625, 175.0261688232422, 630.5396728515625], "score": 0.9999914169311523}, {"category_id": 1, "poly": [176.41859436035156, 634.0240478515625, 1042.75146484375, 634.0240478515625, 1042.75146484375, 1133.243896484375, 176.41859436035156, 1133.243896484375], "score": 0.9999879598617554}, {"category_id": 1, "poly": [176.31527709960938, 1137.04638671875, 1043.9735107421875, 1137.04638671875, 1043.9735107421875, 1422.5234375, 176.31527709960938, 1422.5234375], "score": 0.9999839067459106}, {"category_id": 1, "poly": [175.19686889648438, 1425.6923828125, 1043.77490234375, 1425.6923828125, 1043.77490234375, 1567.9383544921875, 175.19686889648438, 1567.9383544921875], "score": 0.9999608993530273}, {"category_id": 2, "poly": [46.6263427734375, 1717.93212890625, 1142.532958984375, 1717.93212890625, 1142.532958984375, 1763.221435546875, 46.6263427734375, 1763.221435546875], "score": 0.9998235106468201}, {"category_id": 2, "poly": [522.332275390625, 97.51979064941406, 698.2937622070312, 97.51979064941406, 698.2937622070312, 115.27900695800781, 522.332275390625, 115.27900695800781], "score": 0.9945440292358398}, {"category_id": 2, "poly": [998.44140625, 93.58056640625, 1041.410400390625, 93.58056640625, 1041.410400390625, 119.96952819824219, 998.44140625, 119.96952819824219], "score": 0.37564584612846375}, {"category_id": 2, "poly": [522.0667724609375, 90.3890380859375, 1037.992431640625, 90.3890380859375, 1037.992431640625, 121.25892639160156, 522.0667724609375, 121.25892639160156], "score": 0.25465917587280273}, {"category_id": 15, "poly": [178.0, 171.0, 1041.0, 171.0, 1041.0, 197.0, 178.0, 197.0], "score": 0.97, "text": "the most serious and most inhumane criminals - in other words"}, {"category_id": 15, "poly": [174.0, 202.0, 1044.0, 202.0, 1044.0, 240.0, 174.0, 240.0], "score": 1.0, "text": "those who have perpetrated crimes against humanity - that is no"}, {"category_id": 15, "poly": [174.0, 240.0, 1042.0, 240.0, 1042.0, 272.0, 174.0, 272.0], "score": 0.98, "text": "more severe than how other criminals are treated. Even these"}, {"category_id": 15, "poly": [174.0, 277.0, 1041.0, 277.0, 1041.0, 309.0, 174.0, 309.0], "score": 0.99, "text": "cases ought to be subject to the statute of limitations: the degree"}, {"category_id": 15, "poly": [172.0, 311.0, 1046.0, 311.0, 1046.0, 349.0, 172.0, 349.0], "score": 0.99, "text": "of punishment ought not to be higher - which is to say, proportional"}, {"category_id": 15, "poly": [174.0, 349.0, 1042.0, 349.0, 1042.0, 381.0, 174.0, 381.0], "score": 0.99, "text": "to the crime - but ought, instead, to tend to become less; the"}, {"category_id": 15, "poly": [176.0, 384.0, 1041.0, 384.0, 1041.0, 416.0, 176.0, 416.0], "score": 0.99, "text": "idea ought to be abandoned that the monstrousness of such crimes"}, {"category_id": 15, "poly": [174.0, 422.0, 1044.0, 422.0, 1044.0, 454.0, 174.0, 454.0], "score": 0.98, "text": "justifies the punishment - and indeed, the most severe possible"}, {"category_id": 15, "poly": [174.0, 458.0, 321.0, 458.0, 321.0, 489.0, 174.0, 489.0], "score": 1.0, "text": "punishment."}, {"category_id": 15, "poly": [208.0, 489.0, 1043.0, 491.0, 1042.0, 523.0, 208.0, 521.0], "score": 0.97, "text": "Further conclusions can be drawn from my critique of retributivism"}, {"category_id": 15, "poly": [176.0, 531.0, 1041.0, 531.0, 1041.0, 562.0, 176.0, 562.0], "score": 0.99, "text": "as well as from my alternative proposal. At this point, I would like"}, {"category_id": 15, "poly": [174.0, 559.0, 1044.0, 563.0, 1044.0, 600.0, 174.0, 596.0], "score": 0.99, "text": "briefly to outline how the penal system should be reformed according"}, {"category_id": 15, "poly": [176.0, 602.0, 510.0, 602.0, 510.0, 634.0, 176.0, 634.0], "score": 0.99, "text": "to my alternative proposal."}, {"category_id": 15, "poly": [210.0, 636.0, 1041.0, 636.0, 1041.0, 668.0, 210.0, 668.0], "score": 1.0, "text": "1. There ought to be no fixed duration within the judgment for"}, {"category_id": 15, "poly": [178.0, 671.0, 1041.0, 671.0, 1041.0, 703.0, 178.0, 703.0], "score": 0.99, "text": "incarceration. Instead of designating a certain duration, the degree of"}, {"category_id": 15, "poly": [178.0, 709.0, 1041.0, 709.0, 1041.0, 741.0, 178.0, 741.0], "score": 0.98, "text": "punishment ought to be determined by a goal. The criminal ought to"}, {"category_id": 15, "poly": [176.0, 744.0, 1042.0, 744.0, 1042.0, 776.0, 176.0, 776.0], "score": 0.99, "text": "expiate the punishment for as long as he or she still poses more of a"}, {"category_id": 15, "poly": [174.0, 780.0, 1042.0, 778.0, 1043.0, 810.0, 174.0, 812.0], "score": 0.99, "text": "danger to the commonwealth than the other citizens do. In order for"}, {"category_id": 15, "poly": [173.0, 810.0, 1044.0, 814.0, 1044.0, 851.0, 172.0, 847.0], "score": 1.0, "text": "that to occur, the criterion employed to suspend punishment may"}, {"category_id": 15, "poly": [178.0, 851.0, 1041.0, 851.0, 1041.0, 883.0, 178.0, 883.0], "score": 0.99, "text": "not be the absolute safety of society, because every “normal\" citizen"}, {"category_id": 15, "poly": [178.0, 891.0, 1039.0, 891.0, 1039.0, 917.0, 178.0, 917.0], "score": 0.98, "text": "who consistently remains true to the law could, at any time, commit a"}, {"category_id": 15, "poly": [174.0, 922.0, 1041.0, 922.0, 1041.0, 960.0, 174.0, 960.0], "score": 1.0, "text": "crime. Even now, punishments are reduced by sentences of parole,"}, {"category_id": 15, "poly": [176.0, 958.0, 1041.0, 958.0, 1041.0, 990.0, 176.0, 990.0], "score": 0.99, "text": "and in the case of good behavior prisoners are released before their"}, {"category_id": 15, "poly": [174.0, 996.0, 1044.0, 996.0, 1044.0, 1028.0, 174.0, 1028.0], "score": 0.99, "text": "sentences are up. Others are allowed to work outside the prison"}, {"category_id": 15, "poly": [176.0, 1029.0, 1043.0, 1033.0, 1042.0, 1065.0, 176.0, 1061.0], "score": 0.99, "text": "during the day. Such leeway, already customary nowadays, ought"}, {"category_id": 15, "poly": [173.0, 1063.0, 1046.0, 1065.0, 1046.0, 1103.0, 172.0, 1101.0], "score": 0.98, "text": "to be expanded to the general abolition of every designation of"}, {"category_id": 15, "poly": [175.0, 1102.0, 293.0, 1107.0, 292.0, 1135.0, 174.0, 1130.0], "score": 1.0, "text": "duration."}, {"category_id": 15, "poly": [208.0, 1140.0, 1044.0, 1140.0, 1044.0, 1172.0, 208.0, 1172.0], "score": 0.99, "text": "2. The principle of proportionality between crime and punishment"}, {"category_id": 15, "poly": [174.0, 1174.0, 1043.0, 1178.0, 1042.0, 1209.0, 174.0, 1206.0], "score": 0.99, "text": "has to be rejected. Admittedly, it is to be expected that, on average,"}, {"category_id": 15, "poly": [176.0, 1211.0, 1042.0, 1211.0, 1042.0, 1243.0, 176.0, 1243.0], "score": 0.99, "text": "thieves can be rehabilitated in a shorter period of time than multiple"}, {"category_id": 15, "poly": [178.0, 1251.0, 1039.0, 1251.0, 1039.0, 1277.0, 178.0, 1277.0], "score": 0.99, "text": "murderers who have tortured their victims. One would, therefore,"}, {"category_id": 15, "poly": [176.0, 1284.0, 1046.0, 1284.0, 1046.0, 1316.0, 176.0, 1316.0], "score": 0.99, "text": "probably observe a clear, statistical correlation between the gravity of"}, {"category_id": 15, "poly": [176.0, 1318.0, 1042.0, 1318.0, 1042.0, 1350.0, 176.0, 1350.0], "score": 0.99, "text": "the deed and the length of the process of rehabilitation. But this link"}, {"category_id": 15, "poly": [174.0, 1356.0, 1042.0, 1356.0, 1042.0, 1388.0, 174.0, 1388.0], "score": 1.0, "text": "should not be a matter of principle, and there would certainly also be"}, {"category_id": 15, "poly": [176.0, 1393.0, 319.0, 1393.0, 319.0, 1425.0, 176.0, 1425.0], "score": 1.0, "text": "exceptions."}, {"category_id": 15, "poly": [210.0, 1427.0, 1035.0, 1427.0, 1035.0, 1459.0, 210.0, 1459.0], "score": 0.98, "text": "3. A reform of penal law ought not to involve punishments becom"}, {"category_id": 15, "poly": [176.0, 1462.0, 1041.0, 1462.0, 1041.0, 1500.0, 176.0, 1500.0], "score": 0.99, "text": "ing generally severer or generally milder. In effect, some punishments"}, {"category_id": 15, "poly": [172.0, 1498.0, 1042.0, 1498.0, 1042.0, 1536.0, 172.0, 1536.0], "score": 0.99, "text": "would become milder, others severer, all depending on the behavior"}, {"category_id": 15, "poly": [173.0, 1534.0, 489.0, 1536.0, 489.0, 1568.0, 172.0, 1566.0], "score": 0.99, "text": "of the individual convict."}, {"category_id": 15, "poly": [47.0, 1718.0, 1140.0, 1718.0, 1140.0, 1742.0, 47.0, 1742.0], "score": 0.99, "text": "Downloaded from https://www.cambridge.org/core. Universiteit Leiden / LUMC, on 29 Nov 2019 at 23:02:12, subject to the Cambridge Core"}, {"category_id": 15, "poly": [47.0, 1740.0, 947.0, 1740.0, 947.0, 1764.0, 47.0, 1764.0], "score": 0.99, "text": "terms of use, available at https://www.cambridge.org/core/terms. https://doi.org/10.1017/CB09780511770425.012"}, {"category_id": 15, "poly": [521.0, 96.0, 698.0, 96.0, 698.0, 122.0, 521.0, 122.0], "score": 1.0, "text": "CONCLUSION"}, {"category_id": 15, "poly": [997.0, 85.0, 1050.0, 93.0, 1043.0, 135.0, 990.0, 126.0], "score": 1.0, "text": "189"}, {"category_id": 15, "poly": [519.0, 96.0, 698.0, 96.0, 698.0, 120.0, 519.0, 120.0], "score": 1.0, "text": "CONCLUSION"}, {"category_id": 15, "poly": [994.0, 90.0, 1042.0, 90.0, 1042.0, 128.0, 994.0, 128.0], "score": 0.94, "text": "18c"}], "judge": {"final_judge": false, "search_judge": true, "score_judge": false, "cannot_find": false, "search_list": [[36.69752502441406, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/9781316090930.077.pdf_10.jpg"], [40.50537109375, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/S0021875817000378.pdf_1.jpg"], [41.02143096923828, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9781139088398.007.pdf_29.jpg"], [42.51865005493164, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/9b04f5410f803df1f5f93aa3778059efe90db326c19f5d7ba85414c96739b3bd.pdf_5.jpg"], [42.62116241455078, 0.8585572842998586, 0.8571428571428571, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9780511551246.006.pdf_7.jpg"], [43.375648498535156, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-17538478.pdf_170.jpg"], [44.16658020019531, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/s0308-521x%2898%2900056-0.pdf_3.jpg"], [48.920310974121094, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16659265.pdf_116.jpg"], [53.29656982421875, 0.9763765850269237, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/56cc29cee9e859a5314952b8184da882e2482d7bc17234b4ca333bfffe5f74f3.pdf_25.jpg"], [55.937252044677734, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/cd.56.pdf_7.jpg"]]}, "page_info": {"page_no": 2, "height": 1800, "width": 1200}}, {"layout_dets": [{"category_id": 1, "poly": [185.3686065673828, 165.37498474121094, 1052.01220703125, 165.37498474121094, 1052.01220703125, 414.7894287109375, 185.3686065673828, 414.7894287109375], "score": 0.9999960660934448}, {"category_id": 1, "poly": [185.46505737304688, 416.8759460449219, 1052.6064453125, 416.8759460449219, 1052.6064453125, 1062.604736328125, 185.46505737304688, 1062.604736328125], "score": 0.9999892115592957}, {"category_id": 1, "poly": [213.8837127685547, 1301.325927734375, 1022.60888671875, 1301.325927734375, 1022.60888671875, 1606.255126953125, 213.8837127685547, 1606.255126953125], "score": 0.9999889135360718}, {"category_id": 1, "poly": [184.8633270263672, 1065.1739501953125, 1052.293701171875, 1065.1739501953125, 1052.293701171875, 1281.30322265625, 184.8633270263672, 1281.30322265625], "score": 0.9999887943267822}, {"category_id": 2, "poly": [529.9339599609375, 96.61219024658203, 706.3160400390625, 96.61219024658203, 706.3160400390625, 116.91444396972656, 529.9339599609375, 116.91444396972656], "score": 0.9997703433036804}, {"category_id": 2, "poly": [44.089691162109375, 1716.933837890625, 1143.9229736328125, 1716.933837890625, 1143.9229736328125, 1764.7646484375, 44.089691162109375, 1764.7646484375], "score": 0.9995508193969727}, {"category_id": 2, "poly": [188.29161071777344, 96.93939971923828, 233.20518493652344, 96.93939971923828, 233.20518493652344, 119.71417236328125, 188.29161071777344, 119.71417236328125], "score": 0.9983097910881042}, {"category_id": 15, "poly": [214.0, 167.0, 1052.0, 165.0, 1052.0, 202.0, 214.0, 204.0], "score": 0.99, "text": "4. Psychological assessments of the convicts should occur regularly"}, {"category_id": 15, "poly": [186.0, 204.0, 1052.0, 204.0, 1052.0, 236.0, 186.0, 236.0], "score": 0.98, "text": "and they should be thorough. A process such as the following is"}, {"category_id": 15, "poly": [182.0, 238.0, 1056.0, 236.0, 1056.0, 274.0, 182.0, 276.0], "score": 0.99, "text": "conceivable. At the beginning of serving a sentence the criterion for"}, {"category_id": 15, "poly": [184.0, 278.0, 1054.0, 278.0, 1054.0, 309.0, 184.0, 309.0], "score": 1.0, "text": "a discharge would be especially strong. The criterion would weaken as"}, {"category_id": 15, "poly": [186.0, 313.0, 1056.0, 313.0, 1056.0, 345.0, 186.0, 345.0], "score": 0.98, "text": "time passes and would finally reverse so that gradually the burden of"}, {"category_id": 15, "poly": [184.0, 347.0, 1054.0, 343.0, 1054.0, 381.0, 184.0, 384.0], "score": 0.99, "text": "proof might stand on the side of the commonwealth to prove that the"}, {"category_id": 15, "poly": [186.0, 382.0, 671.0, 386.0, 671.0, 418.0, 186.0, 414.0], "score": 1.0, "text": "convict must, in fact, remain in prison."}, {"category_id": 15, "poly": [212.0, 418.0, 1052.0, 416.0, 1052.0, 454.0, 212.0, 456.0], "score": 1.0, "text": " 5. Retributivism likes to contend that only retaliation is just for the"}, {"category_id": 15, "poly": [186.0, 458.0, 1050.0, 458.0, 1050.0, 489.0, 186.0, 489.0], "score": 0.98, "text": "victim and every other punishment would be unjust, for the criminal"}, {"category_id": 15, "poly": [186.0, 491.0, 1050.0, 491.0, 1050.0, 523.0, 186.0, 523.0], "score": 0.99, "text": "as well as for the victim. In the current penal system, this argument"}, {"category_id": 15, "poly": [184.0, 531.0, 1052.0, 527.0, 1052.0, 559.0, 184.0, 563.0], "score": 0.99, "text": "rather appears to be an empty consolation for the fate of the victim"}, {"category_id": 15, "poly": [186.0, 564.0, 1050.0, 564.0, 1050.0, 596.0, 186.0, 596.0], "score": 0.98, "text": "that turns out to be scandalous. Anyone who suffers grave bodily"}, {"category_id": 15, "poly": [186.0, 600.0, 1050.0, 600.0, 1050.0, 632.0, 186.0, 632.0], "score": 0.99, "text": "injury is better off having it occur in the course of an automobile"}, {"category_id": 15, "poly": [186.0, 638.0, 1050.0, 638.0, 1050.0, 664.0, 186.0, 664.0], "score": 0.97, "text": "accident for which he or she is not liable, rather than by a serial"}, {"category_id": 15, "poly": [184.0, 669.0, 1052.0, 669.0, 1052.0, 707.0, 184.0, 707.0], "score": 0.99, "text": "killer, because the damages awarded to victims of criminal acts are"}, {"category_id": 15, "poly": [188.0, 709.0, 1050.0, 709.0, 1050.0, 741.0, 188.0, 741.0], "score": 0.99, "text": "especially low. One should make it clear to the public what a criminal"}, {"category_id": 15, "poly": [184.0, 742.0, 1052.0, 742.0, 1052.0, 780.0, 184.0, 780.0], "score": 0.99, "text": "trial really means. Whereas potential compensation for damages,"}, {"category_id": 15, "poly": [184.0, 778.0, 1052.0, 778.0, 1052.0, 816.0, 184.0, 816.0], "score": 1.0, "text": "including pain and suffering, should satisfy the claims of the victims,"}, {"category_id": 15, "poly": [184.0, 814.0, 1054.0, 810.0, 1054.0, 847.0, 184.0, 851.0], "score": 0.99, "text": "punishment applies only to the interests of the commonwealth as"}, {"category_id": 15, "poly": [180.0, 847.0, 1056.0, 849.0, 1056.0, 887.0, 180.0, 885.0], "score": 0.99, "text": "a whole regarding public security. Therefore, a twofold process is"}, {"category_id": 15, "poly": [188.0, 887.0, 1050.0, 887.0, 1050.0, 919.0, 188.0, 919.0], "score": 0.99, "text": "conducted, even if both concerns are to be dealt with in the same"}, {"category_id": 15, "poly": [188.0, 924.0, 1050.0, 924.0, 1050.0, 956.0, 188.0, 956.0], "score": 0.98, "text": "trial. Instead of exclusively and systematically calling for harsher"}, {"category_id": 15, "poly": [184.0, 958.0, 1054.0, 958.0, 1054.0, 996.0, 184.0, 996.0], "score": 0.98, "text": "punishments as a way to win popular support, politicians should"}, {"category_id": 15, "poly": [184.0, 994.0, 1050.0, 996.0, 1050.0, 1029.0, 184.0, 1027.0], "score": 0.99, "text": "primarily think of a better and more respectful compensation for"}, {"category_id": 15, "poly": [184.0, 1029.0, 330.0, 1033.0, 329.0, 1063.0, 183.0, 1059.0], "score": 0.96, "text": "the victims."}, {"category_id": 15, "poly": [216.0, 1309.0, 1016.0, 1309.0, 1016.0, 1335.0, 216.0, 1335.0], "score": 0.98, "text": "I find no intuitive plausibility at all in first basing criminal liability"}, {"category_id": 15, "poly": [216.0, 1339.0, 1020.0, 1339.0, 1020.0, 1371.0, 216.0, 1371.0], "score": 0.99, "text": "on moral blameworthiness, but then basing moral blameworthiness in"}, {"category_id": 15, "poly": [214.0, 1373.0, 1020.0, 1371.0, 1020.0, 1402.0, 214.0, 1404.0], "score": 0.99, "text": "turn upon the actual harm or absence of harm caused. The ancient"}, {"category_id": 15, "poly": [216.0, 1404.0, 1018.0, 1406.0, 1018.0, 1438.0, 216.0, 1436.0], "score": 0.99, "text": "view, that liability should be based not upon blameworthiness at all but"}, {"category_id": 15, "poly": [216.0, 1440.0, 1018.0, 1440.0, 1018.0, 1472.0, 216.0, 1472.0], "score": 1.0, "text": "instead directly upon the amount of harm caused, seems to me more"}, {"category_id": 15, "poly": [218.0, 1472.0, 1020.0, 1472.0, 1020.0, 1504.0, 218.0, 1504.0], "score": 0.99, "text": "honest, though no more plausible. It seems almost as if the retentionist"}, {"category_id": 15, "poly": [216.0, 1506.0, 1018.0, 1506.0, 1018.0, 1538.0, 216.0, 1538.0], "score": 1.0, "text": "is so fixated on actual harm that he keeps searching for the question"}, {"category_id": 15, "poly": [216.0, 1539.0, 1018.0, 1539.0, 1018.0, 1571.0, 216.0, 1571.0], "score": 0.99, "text": "to which it is the right answer. Not the question: “What ought to be"}, {"category_id": 15, "poly": [218.0, 1573.0, 1018.0, 1573.0, 1018.0, 1605.0, 218.0, 1605.0], "score": 0.99, "text": "the basis of criminal liability?” Moral blameworthiness is a plausible"}, {"category_id": 15, "poly": [214.0, 1063.0, 1052.0, 1065.0, 1052.0, 1103.0, 214.0, 1101.0], "score": 1.0, "text": "6. An attempt ought always to be punished in the same degree as"}, {"category_id": 15, "poly": [186.0, 1104.0, 1052.0, 1104.0, 1052.0, 1136.0, 186.0, 1136.0], "score": 0.99, "text": "the crime itself. This is not the case nowadays. Instead, attempts at"}, {"category_id": 15, "poly": [186.0, 1140.0, 1052.0, 1140.0, 1052.0, 1172.0, 186.0, 1172.0], "score": 0.98, "text": "only some of the graver crimes are punishable, while carrying a lesser"}, {"category_id": 15, "poly": [186.0, 1176.0, 1054.0, 1176.0, 1054.0, 1208.0, 186.0, 1208.0], "score": 0.99, "text": "degree of punishment. Feinberg convincingly traced back this situ-"}, {"category_id": 15, "poly": [184.0, 1211.0, 1052.0, 1209.0, 1052.0, 1241.0, 184.0, 1243.0], "score": 0.99, "text": "ation to the conjunction that retributivism wants to create between the"}, {"category_id": 15, "poly": [182.0, 1247.0, 849.0, 1241.0, 849.0, 1279.0, 182.0, 1284.0], "score": 0.99, "text": "gravity of a deed and the wickedness of the criminal:"}, {"category_id": 15, "poly": [531.0, 96.0, 705.0, 96.0, 705.0, 122.0, 531.0, 122.0], "score": 1.0, "text": "CONCLUSION"}, {"category_id": 15, "poly": [47.0, 1718.0, 1140.0, 1718.0, 1140.0, 1742.0, 47.0, 1742.0], "score": 0.99, "text": "Downloaded from https://www.cambridge.org/core. Universiteit Leiden / LUMC, on 29 Nov 2019 at 23:02:12, subject to the Cambridge Core"}, {"category_id": 15, "poly": [47.0, 1740.0, 947.0, 1740.0, 947.0, 1764.0, 47.0, 1764.0], "score": 0.99, "text": "terms of use, available at https://www.cambridge.org/core/terms. https://doi.org/10.1017/CB09780511770425.012"}, {"category_id": 15, "poly": [186.0, 94.0, 238.0, 94.0, 238.0, 133.0, 186.0, 133.0], "score": 1.0, "text": "190"}], "judge": {"final_judge": true, "search_judge": true, "score_judge": true, "cannot_find": false, "search_list": [[41.68920135498047, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9781139088398.007.pdf_29.jpg"], [43.99999237060547, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16659265.pdf_116.jpg"], [47.899986267089844, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/S0021875817000378.pdf_1.jpg"], [53.44574737548828, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-17538478.pdf_170.jpg"], [53.91181182861328, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/3055e0d8130c7a197bc6e020afe9bea1edef31f33b720cc326dd404d8e3f82d5.pdf_5.jpg"], [58.740882873535156, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16579787.pdf_143.jpg"], [59.2061767578125, 0.9889988998899888, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_needrop_coco/val/GTM_036_-_ISBN978-3-662-41914-4_-_John_L._Kelley,_Isaac_Namioka_-_Linear_Topological_Spaces.pdf_103.jpg"], [59.52695083618164, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/9781316090930.077.pdf_10.jpg"], [60.09637451171875, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/s0308-521x%2898%2900056-0.pdf_3.jpg"], [60.416297912597656, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-17906973.pdf_256.jpg"]]}, "page_info": {"page_no": 3, "height": 1800, "width": 1200}}, {"layout_dets": [{"category_id": 1, "poly": [208.5929718017578, 165.96209716796875, 1010.32470703125, 165.96209716796875, 1010.32470703125, 329.7188415527344, 208.5929718017578, 329.7188415527344], "score": 0.9999969005584717}, {"category_id": 2, "poly": [174.37802124023438, 1464.2734375, 1045.14501953125, 1464.2734375, 1045.14501953125, 1605.363037109375, 174.37802124023438, 1605.363037109375], "score": 0.9999966621398926}, {"category_id": 1, "poly": [177.10716247558594, 609.9269409179688, 1042.040771484375, 609.9269409179688, 1042.040771484375, 858.5154418945312, 177.10716247558594, 858.5154418945312], "score": 0.9999957084655762}, {"category_id": 1, "poly": [177.40283203125, 861.0873413085938, 1045.0654296875, 861.0873413085938, 1045.0654296875, 1398.7373046875, 177.40283203125, 1398.7373046875], "score": 0.9999825358390808}, {"category_id": 1, "poly": [177.2109375, 502.820068359375, 1042.8372802734375, 502.820068359375, 1042.8372802734375, 604.543212890625, 177.2109375, 604.543212890625], "score": 0.999982476234436}, {"category_id": 1, "poly": [175.66241455078125, 356.98065185546875, 1042.0137939453125, 356.98065185546875, 1042.0137939453125, 498.08172607421875, 175.66241455078125, 498.08172607421875], "score": 0.999974250793457}, {"category_id": 2, "poly": [522.0990600585938, 96.80659484863281, 698.2033081054688, 96.80659484863281, 698.2033081054688, 116.644287109375, 522.0990600585938, 116.644287109375], "score": 0.9998497366905212}, {"category_id": 2, "poly": [46.28608703613281, 1718.5791015625, 1142.74658203125, 1718.5791015625, 1142.74658203125, 1762.618408203125, 46.28608703613281, 1762.618408203125], "score": 0.999698281288147}, {"category_id": 2, "poly": [998.3409423828125, 96.98823547363281, 1038.1510009765625, 96.98823547363281, 1038.1510009765625, 120.72357177734375, 998.3409423828125, 120.72357177734375], "score": 0.9855232238769531}, {"category_id": 15, "poly": [210.0, 171.0, 1009.0, 171.0, 1009.0, 197.0, 210.0, 197.0], "score": 0.98, "text": "answer to that question. Not the question: “\"What is the basis of moral"}, {"category_id": 15, "poly": [206.0, 199.0, 1009.0, 201.0, 1009.0, 233.0, 206.0, 231.0], "score": 0.97, "text": "blameworthiness?” The traditional multiplicity of culpability conditions,"}, {"category_id": 15, "poly": [208.0, 234.0, 1009.0, 234.0, 1009.0, 272.0, 208.0, 272.0], "score": 1.0, "text": "motives, mitigations, aggravations, and so on, answers that question. How"}, {"category_id": 15, "poly": [208.0, 268.0, 1009.0, 268.0, 1009.0, 300.0, 208.0, 300.0], "score": 0.98, "text": "about the question: “What is a necessary condition for tort liability?\" Now,"}, {"category_id": 15, "poly": [210.0, 304.0, 429.0, 304.0, 429.0, 330.0, 210.0, 330.0], "score": 0.97, "text": "that is more like it.'"}, {"category_id": 15, "poly": [172.0, 1463.0, 1046.0, 1461.0, 1046.0, 1492.0, 173.0, 1494.0], "score": 0.98, "text": "1. Joel Feinberg, Problems at the roots of law: essays in legal and political theory (Oxford: Oxford"}, {"category_id": 15, "poly": [203.0, 1489.0, 512.0, 1491.0, 512.0, 1523.0, 202.0, 1521.0], "score": 1.0, "text": "University Press, 2003), p. 100."}, {"category_id": 15, "poly": [171.0, 1517.0, 778.0, 1521.0, 778.0, 1553.0, 171.0, 1549.0], "score": 0.95, "text": "2. Cf. ZeF Ak vIl1:366. Practical philosophy, ed. Gregor, p. 355."}, {"category_id": 15, "poly": [171.0, 1547.0, 1046.0, 1543.0, 1046.0, 1575.0, 171.0, 1579.0], "score": 0.98, "text": " 3. Cf. Book 2, Chapter 1, I1.2 of Hugo Grotius, The rights of war and peace, ed. Richard Tuck"}, {"category_id": 15, "poly": [204.0, 1575.0, 788.0, 1575.0, 788.0, 1607.0, 204.0, 1607.0], "score": 0.96, "text": "(3 vols., Indianapolis: Liberty Fund, Inc., 2005), pp. 395-6."}, {"category_id": 15, "poly": [210.0, 611.0, 1044.0, 611.0, 1044.0, 643.0, 210.0, 643.0], "score": 0.99, "text": "First, penal law cannot be about the (purely moral) wickedness of"}, {"category_id": 15, "poly": [176.0, 645.0, 1041.0, 645.0, 1041.0, 677.0, 176.0, 677.0], "score": 1.0, "text": "human beings, but instead only about the observance of the laws or"}, {"category_id": 15, "poly": [174.0, 681.0, 1042.0, 679.0, 1043.0, 716.0, 174.0, 718.0], "score": 0.97, "text": "about the infringement of right. Even if we were all “devils,\"? as Kant"}, {"category_id": 15, "poly": [174.0, 720.0, 1044.0, 720.0, 1044.0, 752.0, 174.0, 752.0], "score": 0.99, "text": "notes in Toward perpetual peace, it would still not mean that we all ought"}, {"category_id": 15, "poly": [174.0, 754.0, 1044.0, 756.0, 1044.0, 788.0, 174.0, 786.0], "score": 0.99, "text": "to be punished with deterrence in mind, before having committed any"}, {"category_id": 15, "poly": [174.0, 786.0, 1044.0, 789.0, 1044.0, 827.0, 174.0, 823.0], "score": 0.99, "text": "misdeed. Only those who cannot be hindered from committing"}, {"category_id": 15, "poly": [174.0, 827.0, 889.0, 825.0, 889.0, 857.0, 174.0, 859.0], "score": 1.0, "text": "crimes by moral or external reasons should be punished."}, {"category_id": 15, "poly": [212.0, 866.0, 1037.0, 866.0, 1037.0, 892.0, 212.0, 892.0], "score": 0.98, "text": "Secondly, it is not retributivism, but the justification of punishment"}, {"category_id": 15, "poly": [174.0, 900.0, 1042.0, 900.0, 1042.0, 932.0, 174.0, 932.0], "score": 0.98, "text": "as a rehabilitation that is compatible with that path via which Kant"}, {"category_id": 15, "poly": [174.0, 936.0, 1041.0, 936.0, 1041.0, 968.0, 174.0, 968.0], "score": 0.98, "text": "wants to reach global “perpetual peace,”\" the condition by which the"}, {"category_id": 15, "poly": [176.0, 971.0, 1041.0, 971.0, 1041.0, 1003.0, 176.0, 1003.0], "score": 1.0, "text": "state of law would reign over the entire world. The modern tradition"}, {"category_id": 15, "poly": [176.0, 1009.0, 1041.0, 1009.0, 1041.0, 1041.0, 176.0, 1041.0], "score": 0.99, "text": "of natural right that Kant critically draws upon recognizes three just"}, {"category_id": 15, "poly": [174.0, 1042.0, 1042.0, 1042.0, 1042.0, 1080.0, 174.0, 1080.0], "score": 0.98, "text": "intentions for waging war: legitimate self-defense, recovery of one's"}, {"category_id": 15, "poly": [176.0, 1080.0, 1041.0, 1080.0, 1041.0, 1112.0, 176.0, 1112.0], "score": 1.0, "text": "own goods stolen by the enemy and punishment of an unjust enemy.3"}, {"category_id": 15, "poly": [176.0, 1114.0, 1042.0, 1114.0, 1042.0, 1146.0, 176.0, 1146.0], "score": 0.98, "text": "This “punishment\" of the vanquished enemy is intended to mean"}, {"category_id": 15, "poly": [173.0, 1147.0, 1043.0, 1149.0, 1042.0, 1187.0, 172.0, 1185.0], "score": 0.99, "text": "deterrence by the theorists of just war - for instance, Hugo Grotius,"}, {"category_id": 15, "poly": [176.0, 1187.0, 1042.0, 1187.0, 1042.0, 1219.0, 176.0, 1219.0], "score": 1.0, "text": "Samuel von Pufendorf, Emer de Vattel, etc. The aim is a peace that is"}, {"category_id": 15, "poly": [174.0, 1221.0, 1042.0, 1221.0, 1042.0, 1258.0, 174.0, 1258.0], "score": 0.99, "text": "just toward both parties. In this respect, punishment is allowed only in"}, {"category_id": 15, "poly": [174.0, 1260.0, 1042.0, 1260.0, 1042.0, 1292.0, 174.0, 1292.0], "score": 0.99, "text": "so far as to bring about security for the victor. This theory pursues the"}, {"category_id": 15, "poly": [174.0, 1296.0, 1042.0, 1292.0, 1043.0, 1324.0, 174.0, 1328.0], "score": 0.98, "text": "goal of ensuring that no future injustice is carried out that would"}, {"category_id": 15, "poly": [172.0, 1329.0, 1044.0, 1327.0, 1044.0, 1365.0, 173.0, 1367.0], "score": 0.99, "text": "present a just ground for a further war. If this deterrent intent turns"}, {"category_id": 15, "poly": [174.0, 1365.0, 1043.0, 1369.0, 1042.0, 1401.0, 174.0, 1397.0], "score": 0.99, "text": "out to be efficacious, there will then be a continuously decreasing"}, {"category_id": 15, "poly": [206.0, 499.0, 1043.0, 501.0, 1042.0, 540.0, 206.0, 538.0], "score": 0.98, "text": "Beyond these concrete suggestions for the reform of penal law, as"}, {"category_id": 15, "poly": [174.0, 538.0, 1044.0, 538.0, 1044.0, 576.0, 174.0, 576.0], "score": 1.0, "text": "the result of my inquiry I must address four points of more general"}, {"category_id": 15, "poly": [175.0, 575.0, 278.0, 580.0, 277.0, 608.0, 174.0, 603.0], "score": 1.0, "text": "interest."}, {"category_id": 15, "poly": [176.0, 362.0, 1041.0, 362.0, 1041.0, 388.0, 176.0, 388.0], "score": 0.99, "text": "In this,modern retributivism encounters the question of how the"}, {"category_id": 15, "poly": [176.0, 396.0, 1041.0, 396.0, 1041.0, 428.0, 176.0, 428.0], "score": 0.99, "text": "inner, moral guilt of a person should be punished in a legal system,"}, {"category_id": 15, "poly": [174.0, 431.0, 1042.0, 431.0, 1042.0, 463.0, 174.0, 463.0], "score": 0.99, "text": "if the system intends to be in charge only of freedom of action, and"}, {"category_id": 15, "poly": [173.0, 465.0, 373.0, 469.0, 373.0, 501.0, 172.0, 497.0], "score": 0.98, "text": "not of morality."}, {"category_id": 15, "poly": [521.0, 96.0, 698.0, 96.0, 698.0, 122.0, 521.0, 122.0], "score": 1.0, "text": "CONCLUSION"}, {"category_id": 15, "poly": [47.0, 1718.0, 1140.0, 1718.0, 1140.0, 1742.0, 47.0, 1742.0], "score": 0.99, "text": "Downloaded from https://www.cambridge.org/core. Universiteit Leiden / LUMC, on 29 Nov 2019 at 23:02:12, subject to the Cambridge Core"}, {"category_id": 15, "poly": [47.0, 1740.0, 947.0, 1740.0, 947.0, 1764.0, 47.0, 1764.0], "score": 0.99, "text": "terms of use, available at https://www.cambridge.org/core/terms. https://doi.org/10.1017/CB09780511770425.012"}, {"category_id": 15, "poly": [994.0, 94.0, 1042.0, 94.0, 1042.0, 135.0, 994.0, 135.0], "score": 1.0, "text": "191"}], "judge": {"final_judge": true, "search_judge": true, "score_judge": true, "cannot_find": false, "search_list": [[42.49473571777344, 0.9999999999999999, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/cbo9780511760433.011.pdf_6.jpg"], [45.52565383911133, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/9781316090930.077.pdf_10.jpg"], [48.47557067871094, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/S0021875817000378.pdf_1.jpg"], [57.737430572509766, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9781139088398.007.pdf_29.jpg"], [63.47295379638672, 0.8585572842998586, 0.8571428571428571, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9780511551246.006.pdf_7.jpg"], [67.77276611328125, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/9b04f5410f803df1f5f93aa3778059efe90db326c19f5d7ba85414c96739b3bd.pdf_5.jpg"], [68.51680755615234, 0.7508250825082508, 0.8333333333333333, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-17460514.pdf_136.jpg"], [69.3848876953125, 0.841645464856083, 0.894736842105263, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-21539592.pdf_118.jpg"], [71.19905853271484, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/s0308-521x%2898%2900056-0.pdf_3.jpg"], [72.05766296386719, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16659265.pdf_116.jpg"]]}, "page_info": {"page_no": 4, "height": 1800, "width": 1200}}, {"layout_dets": [{"category_id": 1, "poly": [184.727783203125, 271.4600830078125, 1052.316650390625, 271.4600830078125, 1052.316650390625, 1029.473388671875, 184.727783203125, 1029.473388671875], "score": 0.9999801516532898}, {"category_id": 1, "poly": [186.22146606445312, 167.005859375, 1051.9786376953125, 167.005859375, 1051.9786376953125, 273.18701171875, 186.22146606445312, 273.18701171875], "score": 0.999976634979248}, {"category_id": 1, "poly": [184.1583251953125, 1198.971923828125, 1051.592529296875, 1198.971923828125, 1051.592529296875, 1379.938232421875, 184.1583251953125, 1379.938232421875], "score": 0.99996417760849}, {"category_id": 1, "poly": [218.41763305664062, 1050.196044921875, 1020.513916015625, 1050.196044921875, 1020.513916015625, 1179.5579833984375, 218.41763305664062, 1179.5579833984375], "score": 0.9999620318412781}, {"category_id": 2, "poly": [530.0177612304688, 96.61994934082031, 705.89306640625, 96.61994934082031, 705.89306640625, 116.91352844238281, 530.0177612304688, 116.91352844238281], "score": 0.9999382495880127}, {"category_id": 2, "poly": [188.27479553222656, 97.35215759277344, 232.25900268554688, 97.35215759277344, 232.25900268554688, 120.34793090820312, 188.27479553222656, 120.34793090820312], "score": 0.9998762011528015}, {"category_id": 2, "poly": [183.3179931640625, 1571.567626953125, 757.7682495117188, 1571.567626953125, 757.7682495117188, 1605.43115234375, 183.3179931640625, 1605.43115234375], "score": 0.9998016357421875}, {"category_id": 2, "poly": [44.46903991699219, 1717.2734375, 1143.86669921875, 1717.2734375, 1143.86669921875, 1763.428466796875, 44.46903991699219, 1763.428466796875], "score": 0.999756932258606}, {"category_id": 1, "poly": [214.36976623535156, 1399.7822265625, 1021.4419555664062, 1399.7822265625, 1021.4419555664062, 1532.3251953125, 214.36976623535156, 1532.3251953125], "score": 0.9992384910583496}, {"category_id": 15, "poly": [218.0, 277.0, 1050.0, 277.0, 1050.0, 309.0, 218.0, 309.0], "score": 1.0, "text": "Let us now imagine what consequences a retributivist conception"}, {"category_id": 15, "poly": [186.0, 311.0, 1048.0, 311.0, 1048.0, 343.0, 186.0, 343.0], "score": 0.99, "text": "of punishment might have for this theory. If the vanquished enemy"}, {"category_id": 15, "poly": [186.0, 349.0, 1050.0, 349.0, 1050.0, 381.0, 186.0, 381.0], "score": 1.0, "text": "should fail to understand that the victor's case is just, the retributive"}, {"category_id": 15, "poly": [186.0, 386.0, 1048.0, 386.0, 1048.0, 418.0, 186.0, 418.0], "score": 0.99, "text": "punishment by the victor will be perceived by the vanquished as"}, {"category_id": 15, "poly": [186.0, 422.0, 1050.0, 422.0, 1050.0, 454.0, 186.0, 454.0], "score": 0.99, "text": "being unjust. Unlike in national law, in international law there are"}, {"category_id": 15, "poly": [184.0, 458.0, 1050.0, 458.0, 1050.0, 489.0, 184.0, 489.0], "score": 0.99, "text": "no higher-ranking judges, so that every sovereign is his or her own"}, {"category_id": 15, "poly": [184.0, 493.0, 1050.0, 493.0, 1050.0, 525.0, 184.0, 525.0], "score": 0.99, "text": "judge, and although there cannot be two parties whose suits are"}, {"category_id": 15, "poly": [186.0, 531.0, 1048.0, 531.0, 1048.0, 562.0, 186.0, 562.0], "score": 0.99, "text": "ultimately equally just, there can be two bona fide parties waging war"}, {"category_id": 15, "poly": [184.0, 562.0, 1048.0, 562.0, 1048.0, 600.0, 184.0, 600.0], "score": 1.0, "text": "whose reasons for war appear completely legitimate and prima facie"}, {"category_id": 15, "poly": [186.0, 604.0, 1048.0, 604.0, 1048.0, 630.0, 186.0, 630.0], "score": 0.98, "text": "just. Unlike a punishment that is meant to deter and to protect against"}, {"category_id": 15, "poly": [182.0, 634.0, 1050.0, 636.0, 1050.0, 668.0, 182.0, 666.0], "score": 0.99, "text": "the recurrence of the grounds that led to war, retributivism requires"}, {"category_id": 15, "poly": [184.0, 669.0, 1052.0, 671.0, 1052.0, 705.0, 184.0, 703.0], "score": 0.99, "text": "the vanquished not only to assume liability for all damages caused in"}, {"category_id": 15, "poly": [186.0, 709.0, 1052.0, 709.0, 1052.0, 741.0, 186.0, 741.0], "score": 0.99, "text": "the war (compensation, reparations, etc.), but also to serve a severe"}, {"category_id": 15, "poly": [186.0, 744.0, 1048.0, 744.0, 1048.0, 776.0, 186.0, 776.0], "score": 0.99, "text": "punishment. If the vanquished enemies waged the war in good faith,"}, {"category_id": 15, "poly": [186.0, 780.0, 1050.0, 780.0, 1050.0, 812.0, 186.0, 812.0], "score": 1.0, "text": "this retributive punishment will then be perceived by them to be"}, {"category_id": 15, "poly": [188.0, 819.0, 1048.0, 819.0, 1048.0, 846.0, 188.0, 846.0], "score": 0.98, "text": "unjust and thus may consitute a possible causa iusta for a future war."}, {"category_id": 15, "poly": [182.0, 847.0, 1050.0, 849.0, 1050.0, 887.0, 182.0, 885.0], "score": 0.99, "text": "For this reason, such a retributive punishment stumbles into a contra-"}, {"category_id": 15, "poly": [186.0, 889.0, 1046.0, 889.0, 1046.0, 921.0, 186.0, 921.0], "score": 0.98, "text": "diction with Kant's primary objective, that is, with perpetual peace."}, {"category_id": 15, "poly": [184.0, 922.0, 1046.0, 922.0, 1046.0, 960.0, 184.0, 960.0], "score": 0.97, "text": "Kant's first preliminary article deprives every retaliation of its pre"}, {"category_id": 15, "poly": [182.0, 962.0, 1052.0, 958.0, 1052.0, 990.0, 182.0, 994.0], "score": 1.0, "text": "requisite by requiring that possible discoveries about the past should"}, {"category_id": 15, "poly": [182.0, 994.0, 593.0, 996.0, 592.0, 1028.0, 182.0, 1026.0], "score": 1.0, "text": "not be taken into consideration:"}, {"category_id": 15, "poly": [184.0, 167.0, 1050.0, 171.0, 1050.0, 203.0, 184.0, 199.0], "score": 0.98, "text": "number of wars. Since the victor has already obtained supremacy,"}, {"category_id": 15, "poly": [186.0, 202.0, 1050.0, 202.0, 1050.0, 240.0, 186.0, 240.0], "score": 0.99, "text": "the punishment is often mild. Herein lies the strategy of the theory"}, {"category_id": 15, "poly": [184.0, 240.0, 694.0, 240.0, 694.0, 278.0, 184.0, 278.0], "score": 0.99, "text": "of just war for the preservation of peace."}, {"category_id": 15, "poly": [184.0, 1202.0, 1050.0, 1204.0, 1050.0, 1236.0, 184.0, 1234.0], "score": 0.98, "text": "Even though Kant had the material claims of the warring parties"}, {"category_id": 15, "poly": [186.0, 1239.0, 1050.0, 1239.0, 1050.0, 1271.0, 186.0, 1271.0], "score": 0.98, "text": "in mind in this passage, this remark certainly also applies in the realm"}, {"category_id": 15, "poly": [186.0, 1275.0, 1050.0, 1275.0, 1050.0, 1307.0, 186.0, 1307.0], "score": 0.99, "text": "of penal law. Even in the Doctrine of right, Kant recommends the same"}, {"category_id": 15, "poly": [184.0, 1312.0, 1052.0, 1312.0, 1052.0, 1344.0, 184.0, 1344.0], "score": 1.0, "text": "strategy for (civil) peace on the national level, as the following repeat-"}, {"category_id": 15, "poly": [186.0, 1348.0, 501.0, 1348.0, 501.0, 1380.0, 186.0, 1380.0], "score": 0.99, "text": "edly cited passage shows:"}, {"category_id": 15, "poly": [216.0, 1048.0, 1020.0, 1050.0, 1020.0, 1082.0, 216.0, 1080.0], "score": 0.99, "text": "Causes for a future war, existent even if as yet unrecognized by the"}, {"category_id": 15, "poly": [218.0, 1084.0, 1020.0, 1084.0, 1020.0, 1116.0, 218.0, 1116.0], "score": 1.0, "text": "contracting parties themselves, are all annihilated by a peace treaty, no"}, {"category_id": 15, "poly": [214.0, 1116.0, 1020.0, 1118.0, 1020.0, 1149.0, 214.0, 1147.0], "score": 0.99, "text": " matter how acute and skilled the sleuthing by which they may be picked"}, {"category_id": 15, "poly": [216.0, 1149.0, 568.0, 1147.0, 568.0, 1179.0, 216.0, 1181.0], "score": 1.0, "text": "out of documents in archives.4"}, {"category_id": 15, "poly": [531.0, 96.0, 705.0, 96.0, 705.0, 122.0, 531.0, 122.0], "score": 1.0, "text": "CONCLUSION"}, {"category_id": 15, "poly": [186.0, 94.0, 236.0, 94.0, 236.0, 133.0, 186.0, 133.0], "score": 1.0, "text": "192"}, {"category_id": 15, "poly": [180.0, 1571.0, 761.0, 1573.0, 761.0, 1611.0, 180.0, 1609.0], "score": 0.95, "text": "4. ZeF Ak v1I:344f. Practial philosophy, ed. Gregor, p. 317."}, {"category_id": 15, "poly": [47.0, 1718.0, 1140.0, 1718.0, 1140.0, 1742.0, 47.0, 1742.0], "score": 0.99, "text": "Downloaded from https://www.cambridge.org/core. Universiteit Leiden / LUMC, on 29 Nov 2019 at 23:02:12, subject to the Cambridge Core"}, {"category_id": 15, "poly": [47.0, 1740.0, 947.0, 1740.0, 947.0, 1764.0, 47.0, 1764.0], "score": 0.99, "text": "terms of use, available at https://www.cambridge.org/core/terms. https://doi.org/10.1017/CB09780511770425.012"}, {"category_id": 15, "poly": [218.0, 1401.0, 1020.0, 1403.0, 1020.0, 1434.0, 217.0, 1432.0], "score": 0.99, "text": "Accordingly, every murderer - anyone who commits murder, orders"}, {"category_id": 15, "poly": [216.0, 1434.0, 1020.0, 1436.0, 1020.0, 1468.0, 216.0, 1466.0], "score": 0.99, "text": "it, or is an accomplice in it - must suffer death; this is what justice, as"}, {"category_id": 15, "poly": [221.0, 1472.0, 1016.0, 1472.0, 1016.0, 1498.0, 221.0, 1498.0], "score": 0.99, "text": "the idea of judicial authority, wills in accordance with universal laws that"}, {"category_id": 15, "poly": [219.0, 1502.0, 1016.0, 1502.0, 1016.0, 1534.0, 219.0, 1534.0], "score": 0.99, "text": "are grounded a priori. - If, however, the number of accomplices (correi)"}], "judge": {"final_judge": true, "search_judge": true, "score_judge": true, "cannot_find": false, "search_list": [[40.74649429321289, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/S0021875817000378.pdf_1.jpg"], [53.54270935058594, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16659265.pdf_116.jpg"], [54.149959564208984, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9781139088398.007.pdf_29.jpg"], [54.50128173828125, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-17538478.pdf_170.jpg"], [57.446693420410156, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/9781316090930.077.pdf_10.jpg"], [58.946285247802734, 0.8585572842998586, 0.8571428571428571, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9780511551246.006.pdf_7.jpg"], [60.244834899902344, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/2f84035610deb9378036cb7a5498b885486cf8e0acfde755081b3484bcff8eed.pdf_15.jpg"], [62.2381591796875, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/3055e0d8130c7a197bc6e020afe9bea1edef31f33b720cc326dd404d8e3f82d5.pdf_5.jpg"], [65.60747528076172, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/j.1933-1592.2007.00043.x.pdf_10.jpg"], [66.23817443847656, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16579787.pdf_143.jpg"]]}, "page_info": {"page_no": 5, "height": 1800, "width": 1200}}, {"layout_dets": [{"category_id": 1, "poly": [209.057373046875, 166.58755493164062, 1013.1092529296875, 166.58755493164062, 1013.1092529296875, 562.8868408203125, 209.057373046875, 562.8868408203125], "score": 0.9999966621398926}, {"category_id": 2, "poly": [174.6002655029297, 1438.158447265625, 1043.0218505859375, 1438.158447265625, 1043.0218505859375, 1605.958251953125, 174.6002655029297, 1605.958251953125], "score": 0.9999958872795105}, {"category_id": 1, "poly": [176.8579559326172, 584.760498046875, 1042.1436767578125, 584.760498046875, 1042.1436767578125, 689.208740234375, 176.8579559326172, 689.208740234375], "score": 0.9999874830245972}, {"category_id": 1, "poly": [177.20567321777344, 691.1987915039062, 1046.5733642578125, 691.1987915039062, 1046.5733642578125, 1374.988525390625, 177.20567321777344, 1374.988525390625], "score": 0.9999780654907227}, {"category_id": 2, "poly": [522.219482421875, 97.335205078125, 697.4724731445312, 97.335205078125, 697.4724731445312, 116.0723648071289, 522.219482421875, 116.0723648071289], "score": 0.9999210834503174}, {"category_id": 2, "poly": [46.051116943359375, 1718.153076171875, 1142.74169921875, 1718.153076171875, 1142.74169921875, 1762.79638671875, 46.051116943359375, 1762.79638671875], "score": 0.9998273849487305}, {"category_id": 2, "poly": [998.376708984375, 98.30541229248047, 1041.080810546875, 98.30541229248047, 1041.080810546875, 120.7616958618164, 998.376708984375, 120.7616958618164], "score": 0.9945587515830994}, {"category_id": 13, "poly": [873, 1547, 948, 1547, 948, 1575, 873, 1575], "score": 0.41, "latex": "{}^{2}33^{-8}5"}, {"category_id": 15, "poly": [208.0, 169.0, 1009.0, 169.0, 1009.0, 201.0, 208.0, 201.0], "score": 0.99, "text": "to such a deed is so great that the state, in order to have no such"}, {"category_id": 15, "poly": [206.0, 201.0, 1011.0, 199.0, 1011.0, 231.0, 206.0, 233.0], "score": 0.98, "text": "criminals in it, could soon find itself without subjects; and if the state"}, {"category_id": 15, "poly": [208.0, 232.0, 1011.0, 232.0, 1011.0, 264.0, 208.0, 264.0], "score": 0.99, "text": "still does not want to dissolve, that is, to pass over into the state of"}, {"category_id": 15, "poly": [210.0, 270.0, 1009.0, 270.0, 1009.0, 296.0, 210.0, 296.0], "score": 1.0, "text": "nature, which is far worse because there is no external justice at all in"}, {"category_id": 15, "poly": [208.0, 304.0, 1011.0, 304.0, 1011.0, 330.0, 208.0, 330.0], "score": 0.98, "text": "it . . . then the sovereign must also have it in his power, in this case of"}, {"category_id": 15, "poly": [208.0, 334.0, 1012.0, 334.0, 1012.0, 366.0, 208.0, 366.0], "score": 0.99, "text": "necessity (casus necessitatis), to assume the role of judge (to represent"}, {"category_id": 15, "poly": [208.0, 368.0, 1012.0, 368.0, 1012.0, 399.0, 208.0, 399.0], "score": 0.98, "text": "him) and pronounce a judgment that decrees for the criminals a"}, {"category_id": 15, "poly": [208.0, 401.0, 1011.0, 401.0, 1011.0, 433.0, 208.0, 433.0], "score": 0.99, "text": "sentence other than capital punishment, such as deportation, which"}, {"category_id": 15, "poly": [208.0, 435.0, 1012.0, 435.0, 1012.0, 467.0, 208.0, 467.0], "score": 0.99, "text": "still preserves the population. This cannot be done in accordance with"}, {"category_id": 15, "poly": [210.0, 467.0, 1012.0, 467.0, 1012.0, 499.0, 210.0, 499.0], "score": 0.99, "text": "public law but it can be done by an executive decree that is, by an act of"}, {"category_id": 15, "poly": [210.0, 501.0, 1011.0, 501.0, 1011.0, 532.0, 210.0, 532.0], "score": 0.99, "text": "the right of majesty which, as clemency, can always be exercised only in"}, {"category_id": 15, "poly": [210.0, 534.0, 405.0, 534.0, 405.0, 561.0, 210.0, 561.0], "score": 0.98, "text": "individual cases.5"}, {"category_id": 15, "poly": [173.0, 1434.0, 722.0, 1436.0, 722.0, 1470.0, 172.0, 1468.0], "score": 0.98, "text": "5. RL Ak vI:334. Practical philosophy, ed. Gregor, p. 475."}, {"category_id": 15, "poly": [171.0, 1461.0, 750.0, 1464.0, 750.0, 1496.0, 171.0, 1492.0], "score": 0.96, "text": "6. ZeF Ak v11:344f. Practical philosophy, ed. Gregor, p. 321."}, {"category_id": 15, "poly": [172.0, 1491.0, 1042.0, 1491.0, 1042.0, 1522.0, 172.0, 1522.0], "score": 0.97, "text": "7. Cf. RL Ak vI:247. Practical philosophy, ed. Gregor, Pp. 401-2. Also, cf. Reinhard Brandt,"}, {"category_id": 15, "poly": [204.0, 1519.0, 1044.0, 1521.0, 1044.0, 1547.0, 204.0, 1545.0], "score": 0.98, "text": "“Das Erlaubnisgesetz, oder: Vernunft und Geschichte in Kants Rechtslehre,”in Brandt"}, {"category_id": 15, "poly": [171.0, 1571.0, 722.0, 1575.0, 722.0, 1607.0, 171.0, 1603.0], "score": 0.97, "text": " 8. RL Ak vI:23o. Practical philosophy, ed. Gregor, p. 387."}, {"category_id": 15, "poly": [204.0, 1543.0, 872.0, 1547.0, 872.0, 1579.0, 204.0, 1575.0], "score": 0.98, "text": "(ed.), Rechtsphilosophie der Aufklirung (Berlin: De Gruyter, 1982), Pp."}, {"category_id": 15, "poly": [176.0, 585.0, 1039.0, 587.0, 1039.0, 619.0, 176.0, 617.0], "score": 0.99, "text": "Here abiding by the law is set aside in favor of preserving civil peace for"}, {"category_id": 15, "poly": [178.0, 624.0, 1041.0, 624.0, 1041.0, 656.0, 178.0, 656.0], "score": 1.0, "text": "the very reason of preserving it, because civil peace is the sole prerequis-"}, {"category_id": 15, "poly": [178.0, 662.0, 936.0, 662.0, 936.0, 688.0, 178.0, 688.0], "score": 0.98, "text": "ite for a state of law in which laws can be issued and enforced."}, {"category_id": 15, "poly": [214.0, 698.0, 1039.0, 698.0, 1039.0, 724.0, 214.0, 724.0], "score": 0.99, "text": "This problem, to which retributivism is exposed within the Kantian"}, {"category_id": 15, "poly": [178.0, 731.0, 1042.0, 731.0, 1042.0, 763.0, 178.0, 763.0], "score": 0.99, "text": "philosophy of right, is actually related, thirdly, to a fundamental"}, {"category_id": 15, "poly": [178.0, 771.0, 1039.0, 771.0, 1039.0, 797.0, 178.0, 797.0], "score": 0.99, "text": "problem: retributivism is not compatible with an important principle"}, {"category_id": 15, "poly": [176.0, 804.0, 1042.0, 804.0, 1042.0, 836.0, 176.0, 836.0], "score": 0.99, "text": "of the Kantian philosophy of right, that is, with the permissive law"}, {"category_id": 15, "poly": [178.0, 840.0, 1041.0, 840.0, 1041.0, 872.0, 178.0, 872.0], "score": 1.0, "text": "(see Sections 2.4 and 4.4). The permissive law allows an exception"}, {"category_id": 15, "poly": [174.0, 872.0, 1041.0, 876.0, 1041.0, 908.0, 174.0, 904.0], "score": 1.0, "text": "to be made to law's implementation, so long as this exception only"}, {"category_id": 15, "poly": [176.0, 911.0, 1041.0, 911.0, 1041.0, 943.0, 176.0, 943.0], "score": 0.99, "text": "concerns what has occurred up to then and not that which either is"}, {"category_id": 15, "poly": [178.0, 951.0, 1039.0, 951.0, 1039.0, 977.0, 178.0, 977.0], "score": 0.98, "text": "occurring in the present or will occur in the future. Such an exception"}, {"category_id": 15, "poly": [178.0, 982.0, 1041.0, 982.0, 1041.0, 1014.0, 178.0, 1014.0], "score": 0.98, "text": "should provide for the peaceful establishment of a state of law where"}, {"category_id": 15, "poly": [174.0, 1018.0, 1042.0, 1016.0, 1043.0, 1050.0, 174.0, 1052.0], "score": 0.99, "text": "the application of the law to the existing situation would lead to"}, {"category_id": 15, "poly": [174.0, 1054.0, 1039.0, 1052.0, 1039.0, 1086.0, 174.0, 1088.0], "score": 0.99, "text": "regression to the state of nature or into civil war. However, the imple-"}, {"category_id": 15, "poly": [176.0, 1091.0, 1042.0, 1091.0, 1042.0, 1123.0, 176.0, 1123.0], "score": 1.0, "text": "mentation of the law in the present and in the future is not allowed to"}, {"category_id": 15, "poly": [176.0, 1127.0, 1042.0, 1127.0, 1042.0, 1159.0, 176.0, 1159.0], "score": 0.98, "text": "be postponed ad calendas graecas,° but instead should occur in the"}, {"category_id": 15, "poly": [174.0, 1161.0, 1042.0, 1161.0, 1042.0, 1198.0, 174.0, 1198.0], "score": 0.99, "text": "most direct way possible.7 Now, Kant defines right as being the “sum"}, {"category_id": 15, "poly": [180.0, 1200.0, 1041.0, 1200.0, 1041.0, 1226.0, 180.0, 1226.0], "score": 0.96, "text": "of the conditions under which the choice of one can be united with"}, {"category_id": 15, "poly": [172.0, 1230.0, 1046.0, 1222.0, 1046.0, 1266.0, 173.0, 1273.0], "score": 0.98, "text": "the choice of another in accordance with a universal law of freedom,\"8"}, {"category_id": 15, "poly": [178.0, 1273.0, 1037.0, 1273.0, 1037.0, 1299.0, 178.0, 1299.0], "score": 0.97, "text": "by which the power of choice (Willkir) of all human beings - there-"}, {"category_id": 15, "poly": [174.0, 1305.0, 1041.0, 1307.0, 1041.0, 1341.0, 174.0, 1339.0], "score": 0.99, "text": "fore, also of the criminal - is meant. Thus, if there is in fact a way"}, {"category_id": 15, "poly": [176.0, 1341.0, 1041.0, 1341.0, 1041.0, 1372.0, 176.0, 1372.0], "score": 0.99, "text": "enabling one to reintegrate the criminal into society in the most direct"}, {"category_id": 15, "poly": [521.0, 96.0, 698.0, 96.0, 698.0, 122.0, 521.0, 122.0], "score": 1.0, "text": "CONCLUSION"}, {"category_id": 15, "poly": [47.0, 1718.0, 1140.0, 1718.0, 1140.0, 1742.0, 47.0, 1742.0], "score": 0.99, "text": "Downloaded from https://www.cambridge.org/core. Universiteit Leiden / LUMC, on 29 Nov 2019 at 23:02:12, subject to the Cambridge Core"}, {"category_id": 15, "poly": [47.0, 1740.0, 947.0, 1740.0, 947.0, 1764.0, 47.0, 1764.0], "score": 0.99, "text": "terms of use, available at https://www.cambridge.org/core/terms. https://doi.org/10.1017/CB09780511770425.012"}, {"category_id": 15, "poly": [994.0, 96.0, 1046.0, 96.0, 1046.0, 133.0, 994.0, 133.0], "score": 1.0, "text": "193"}], "judge": {"final_judge": true, "search_judge": true, "score_judge": true, "cannot_find": false, "search_list": [[40.12925720214844, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/S0021875817000378.pdf_1.jpg"], [44.1798095703125, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/9781316090930.077.pdf_10.jpg"], [45.294715881347656, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16659265.pdf_116.jpg"], [47.02918243408203, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/2f84035610deb9378036cb7a5498b885486cf8e0acfde755081b3484bcff8eed.pdf_15.jpg"], [50.920448303222656, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/cfa6f24ed2cbc9340cf61712f14b4314.pdf_2.jpg"], [51.11970520019531, 0.8585572842998586, 0.8571428571428571, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9780511551246.006.pdf_7.jpg"], [51.694923400878906, 0.9999999999999999, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/cbo9780511760433.011.pdf_6.jpg"], [52.53438186645508, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/j.1933-1592.2007.00043.x.pdf_10.jpg"], [55.34433364868164, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/7c4e3e519f7e8481ec5cdb09dd1e35a1a79860ea1d440673c9aecb9c9057148a.pdf_17.jpg"], [60.43921661376953, 0.9999999999999999, 0.9999999999999999, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16821367.pdf_72.jpg"]]}, "page_info": {"page_no": 6, "height": 1800, "width": 1200}}, {"layout_dets": [{"category_id": 2, "poly": [186.12176513671875, 1434.665283203125, 1055.1126708984375, 1434.665283203125, 1055.1126708984375, 1606.65869140625, 186.12176513671875, 1606.65869140625], "score": 0.9999961853027344}, {"category_id": 1, "poly": [186.0970001220703, 239.26547241210938, 1051.49169921875, 239.26547241210938, 1051.49169921875, 559.2838134765625, 186.0970001220703, 559.2838134765625], "score": 0.9999932646751404}, {"category_id": 1, "poly": [185.57730102539062, 560.2919311523438, 1053.283935546875, 560.2919311523438, 1053.283935546875, 1354.54833984375, 185.57730102539062, 1354.54833984375], "score": 0.9999884366989136}, {"category_id": 2, "poly": [529.962646484375, 96.66432189941406, 706.2738037109375, 96.66432189941406, 706.2738037109375, 117.434814453125, 529.962646484375, 117.434814453125], "score": 0.9999491572380066}, {"category_id": 1, "poly": [186.09828186035156, 167.3245391845703, 1051.122802734375, 167.3245391845703, 1051.122802734375, 237.27932739257812, 186.09828186035156, 237.27932739257812], "score": 0.9999098777770996}, {"category_id": 2, "poly": [188.15760803222656, 97.43172454833984, 232.75328063964844, 97.43172454833984, 232.75328063964844, 123.55609130859375, 188.15760803222656, 123.55609130859375], "score": 0.9998123049736023}, {"category_id": 2, "poly": [45.75640869140625, 1718.0703125, 1142.839111328125, 1718.0703125, 1142.839111328125, 1762.819580078125, 45.75640869140625, 1762.819580078125], "score": 0.9997363090515137}, {"category_id": 13, "poly": [619, 419, 639, 419, 639, 452, 619, 452], "score": 0.74, "latex": "\\S"}, {"category_id": 13, "poly": [1033, 352, 1052, 352, 1052, 374, 1033, 374], "score": 0.33, "latex": "a"}, {"category_id": 15, "poly": [189.0, 1436.0, 1052.0, 1436.0, 1052.0, 1468.0, 189.0, 1468.0], "score": 0.98, "text": " 9. Cf. Gustav Radbruch, Rechtsphilosophie, ed. Erik Wolf, seventh edition (Stuttgart:"}, {"category_id": 15, "poly": [218.0, 1461.0, 506.0, 1463.0, 506.0, 1494.0, 217.0, 1492.0], "score": 0.98, "text": "K. F. Koehler, 1970), p. 265."}, {"category_id": 15, "poly": [184.0, 1491.0, 398.0, 1491.0, 398.0, 1522.0, 184.0, 1522.0], "score": 0.98, "text": "10. Lev. 24:20 (KJV)."}, {"category_id": 15, "poly": [182.0, 1519.0, 1057.0, 1517.0, 1058.0, 1549.0, 182.0, 1551.0], "score": 0.98, "text": "11. Chapter 12, entitled “The purpose of punishment,\" in Cesare Beccaria, On crimes and"}, {"category_id": 15, "poly": [221.0, 1549.0, 1054.0, 1549.0, 1054.0, 1575.0, 221.0, 1575.0], "score": 0.98, "text": "punishments, in Beccaria, On crimes and punishments and other writings, ed. Richard"}, {"category_id": 15, "poly": [219.0, 1573.0, 1052.0, 1575.0, 1052.0, 1607.0, 219.0, 1605.0], "score": 0.99, "text": " Bellamy, trans. Richard Davies (Cambridge: Cambridge University Press, 1995), p. 31."}, {"category_id": 15, "poly": [218.0, 240.0, 1052.0, 240.0, 1052.0, 272.0, 218.0, 272.0], "score": 0.99, "text": "The categorical imperative of right consists not only in an ideal"}, {"category_id": 15, "poly": [186.0, 276.0, 1052.0, 276.0, 1052.0, 307.0, 186.0, 307.0], "score": 0.98, "text": "legal system, but also in the steps that are necessary for either the"}, {"category_id": 15, "poly": [186.0, 313.0, 1052.0, 313.0, 1052.0, 345.0, 186.0, 345.0], "score": 0.99, "text": "establishment or the reestablishment of this legal system. Writings"}, {"category_id": 15, "poly": [186.0, 382.0, 1054.0, 382.0, 1054.0, 420.0, 186.0, 420.0], "score": 0.99, "text": "cosmopolitan purpose belong to the latter dimension of the categorical"}, {"category_id": 15, "poly": [182.0, 454.0, 1052.0, 452.0, 1052.0, 489.0, 182.0, 491.0], "score": 1.0, "text": "editorial section of the Doctrine of right, which has to do primarily with"}, {"category_id": 15, "poly": [184.0, 489.0, 1052.0, 491.0, 1052.0, 525.0, 184.0, 523.0], "score": 1.0, "text": "the ideal legal system, and therefore with the first dimension, penal"}, {"category_id": 15, "poly": [186.0, 529.0, 819.0, 529.0, 819.0, 561.0, 186.0, 561.0], "score": 1.0, "text": "law can be categorized into the second dimension."}, {"category_id": 15, "poly": [186.0, 422.0, 618.0, 422.0, 618.0, 454.0, 186.0, 454.0], "score": 0.99, "text": "imperative of right. Even though"}, {"category_id": 15, "poly": [640.0, 422.0, 1052.0, 422.0, 1052.0, 454.0, 640.0, 454.0], "score": 0.97, "text": " 49E devoted to penal law is an"}, {"category_id": 15, "poly": [184.0, 347.0, 1032.0, 349.0, 1032.0, 381.0, 184.0, 379.0], "score": 0.98, "text": "such as Toward perpetual peace and Idea for a universal history with"}, {"category_id": 15, "poly": [218.0, 564.0, 1052.0, 564.0, 1052.0, 596.0, 218.0, 596.0], "score": 0.99, "text": "In this respect, Gustav Radbruch's dichotomy between right as a"}, {"category_id": 15, "poly": [186.0, 600.0, 1050.0, 600.0, 1050.0, 632.0, 186.0, 632.0], "score": 0.98, "text": "realm of justice in compensation (commutative justice) and an extra-"}, {"category_id": 15, "poly": [188.0, 634.0, 1048.0, 634.0, 1048.0, 666.0, 188.0, 666.0], "score": 0.99, "text": "legal realm of distributive justice and social utility is to be resolutely"}, {"category_id": 15, "poly": [184.0, 669.0, 1054.0, 667.0, 1054.0, 705.0, 184.0, 707.0], "score": 0.99, "text": "rejected.9 Penal law, which incontrovertibly constitutes an essential"}, {"category_id": 15, "poly": [188.0, 709.0, 1052.0, 709.0, 1052.0, 741.0, 188.0, 741.0], "score": 0.99, "text": "component of right, pertains neither to commutative justice nor to"}, {"category_id": 15, "poly": [184.0, 741.0, 1056.0, 741.0, 1056.0, 784.0, 184.0, 784.0], "score": 0.99, "text": "corrective justice. The former presupposes the agreement of all"}, {"category_id": 15, "poly": [186.0, 780.0, 1052.0, 780.0, 1052.0, 812.0, 186.0, 812.0], "score": 0.99, "text": "parties over the conditions and the items of the trade. Be it only for"}, {"category_id": 15, "poly": [184.0, 814.0, 1052.0, 816.0, 1052.0, 848.0, 184.0, 846.0], "score": 0.99, "text": "this reason, punishment cannot rest on commutative justice. Not even"}, {"category_id": 15, "poly": [182.0, 847.0, 1052.0, 849.0, 1052.0, 887.0, 182.0, 885.0], "score": 0.99, "text": "retributivism can be described as a trade. “Eye for eye, tooth for"}, {"category_id": 15, "poly": [186.0, 885.0, 1050.0, 889.0, 1050.0, 921.0, 186.0, 917.0], "score": 0.98, "text": "tooth\"io or “the retribution of what one merits\" does not mean"}, {"category_id": 15, "poly": [188.0, 924.0, 1050.0, 924.0, 1050.0, 956.0, 188.0, 956.0], "score": 0.99, "text": "trading eyes or teeth, or trading the deserts of a human being for"}, {"category_id": 15, "poly": [184.0, 958.0, 1052.0, 960.0, 1052.0, 992.0, 184.0, 990.0], "score": 0.99, "text": "the infliction of evils by another human being. Now, the return to the"}, {"category_id": 15, "poly": [188.0, 994.0, 1052.0, 994.0, 1052.0, 1026.0, 188.0, 1026.0], "score": 0.99, "text": "status quo ante pertains to corrective justice. However, how can the status"}, {"category_id": 15, "poly": [186.0, 1033.0, 1050.0, 1029.0, 1050.0, 1061.0, 186.0, 1065.0], "score": 0.98, "text": "quo ante of a murder victim be reestablished even to a small extent?"}, {"category_id": 15, "poly": [186.0, 1069.0, 1050.0, 1069.0, 1050.0, 1101.0, 186.0, 1101.0], "score": 0.98, "text": "In this respect, Cesare Beccaria's rhetorical question is irrefutable:"}, {"category_id": 15, "poly": [186.0, 1102.0, 1052.0, 1102.0, 1052.0, 1140.0, 186.0, 1140.0], "score": 1.0, "text": "\"Can the wailings of a wretch, perhaps, undo what has been done"}, {"category_id": 15, "poly": [182.0, 1134.0, 1052.0, 1136.0, 1052.0, 1174.0, 182.0, 1172.0], "score": 0.98, "text": "and turn back the clock?11 The punishment, rather, has to do with"}, {"category_id": 15, "poly": [189.0, 1179.0, 1048.0, 1179.0, 1048.0, 1206.0, 189.0, 1206.0], "score": 0.98, "text": "distributive justice, because it assures every human being of integration"}, {"category_id": 15, "poly": [186.0, 1213.0, 1048.0, 1213.0, 1048.0, 1245.0, 186.0, 1245.0], "score": 0.99, "text": "or of reintegration into the commonwealth - regardless of his or her"}, {"category_id": 15, "poly": [184.0, 1247.0, 1048.0, 1251.0, 1048.0, 1283.0, 184.0, 1279.0], "score": 0.99, "text": "achievements or actions up to then - for the simple reason that every"}, {"category_id": 15, "poly": [184.0, 1282.0, 1052.0, 1282.0, 1052.0, 1320.0, 184.0, 1320.0], "score": 0.99, "text": "human being as a being capable of reason has an innate, unforfeitable"}, {"category_id": 15, "poly": [186.0, 1320.0, 352.0, 1320.0, 352.0, 1352.0, 186.0, 1352.0], "score": 0.96, "text": "right to such."}, {"category_id": 15, "poly": [531.0, 96.0, 705.0, 96.0, 705.0, 122.0, 531.0, 122.0], "score": 1.0, "text": "CONCLUSION"}, {"category_id": 15, "poly": [188.0, 172.0, 1050.0, 172.0, 1050.0, 199.0, 188.0, 199.0], "score": 0.99, "text": "way, then this way is commanded. If this way actually exists at all, then"}, {"category_id": 15, "poly": [186.0, 206.0, 771.0, 206.0, 771.0, 238.0, 186.0, 238.0], "score": 1.0, "text": "it is, per definitionem, rehabilitative punishment."}, {"category_id": 15, "poly": [186.0, 94.0, 236.0, 94.0, 236.0, 133.0, 186.0, 133.0], "score": 1.0, "text": "194"}, {"category_id": 15, "poly": [47.0, 1718.0, 1140.0, 1718.0, 1140.0, 1742.0, 47.0, 1742.0], "score": 0.99, "text": "Downloaded from https://www.cambridge.org/core. Universiteit Leiden / LUMC, on 29 Nov 2019 at 23:02:12, subject to the Cambridge Core"}, {"category_id": 15, "poly": [47.0, 1740.0, 947.0, 1740.0, 947.0, 1764.0, 47.0, 1764.0], "score": 0.99, "text": "terms of use, available at https://www.cambridge.org/core/terms. https://doi.org/10.1017/CB09780511770425.012"}], "judge": {"final_judge": true, "search_judge": true, "score_judge": true, "cannot_find": false, "search_list": [[33.46018600463867, 0.9999999999999999, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/cbo9780511760433.011.pdf_6.jpg"], [46.74518585205078, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/9781316090930.077.pdf_10.jpg"], [49.379337310791016, 0.8585572842998586, 0.8571428571428571, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9780511551246.006.pdf_7.jpg"], [52.24210739135742, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/9781316691311.003.pdf_24.jpg"], [53.57355499267578, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/dianzishu_zhongwenzaixian-o.O-61022629.pdf_160.jpg"], [55.98894500732422, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/S0021875817000378.pdf_1.jpg"], [56.5302848815918, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-21539592.pdf_279.jpg"], [60.459964752197266, 0.7508250825082508, 0.8333333333333333, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-17460514.pdf_136.jpg"], [62.29426193237305, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-19315297.pdf_6.jpg"], [65.522705078125, 0.9999999999999999, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/df156e8465ff477c90a1393a0ab5947e448ed696ac0d3ea982480f5c237a29e1.pdf_8.jpg"]]}, "page_info": {"page_no": 7, "height": 1800, "width": 1200}}, {"layout_dets": [{"category_id": 2, "poly": [178.1744384765625, 1379.4212646484375, 1044.2001953125, 1379.4212646484375, 1044.2001953125, 1602.649658203125, 178.1744384765625, 1602.649658203125], "score": 0.9999977350234985}, {"category_id": 1, "poly": [176.4250030517578, 849.6359252929688, 1042.470947265625, 849.6359252929688, 1042.470947265625, 1206.6923828125, 176.4250030517578, 1206.6923828125], "score": 0.9999918937683105}, {"category_id": 1, "poly": [176.7879180908203, 165.97573852539062, 1044.6990966796875, 165.97573852539062, 1044.6990966796875, 845.2696533203125, 176.7879180908203, 845.2696533203125], "score": 0.9999825358390808}, {"category_id": 2, "poly": [522.218994140625, 97.64007568359375, 697.3997802734375, 97.64007568359375, 697.3997802734375, 115.09343719482422, 522.218994140625, 115.09343719482422], "score": 0.9997891187667847}, {"category_id": 1, "poly": [175.1726531982422, 1210.41357421875, 1044.1864013671875, 1210.41357421875, 1044.1864013671875, 1317.754150390625, 175.1726531982422, 1317.754150390625], "score": 0.9997514486312866}, {"category_id": 2, "poly": [45.92216491699219, 1717.8394775390625, 1142.5506591796875, 1717.8394775390625, 1142.5506591796875, 1762.9683837890625, 45.92216491699219, 1762.9683837890625], "score": 0.9996484518051147}, {"category_id": 2, "poly": [998.3270874023438, 98.5640869140625, 1040.5067138671875, 98.5640869140625, 1040.5067138671875, 120.62263488769531, 998.3270874023438, 120.62263488769531], "score": 0.9967317581176758}, {"category_id": 13, "poly": [333, 1384, 350, 1384, 350, 1408, 333, 1408], "score": 0.37, "latex": "5"}, {"category_id": 13, "poly": [536, 1522, 610, 1522, 610, 1547, 536, 1547], "score": 0.27, "latex": "^{159-72}"}, {"category_id": 15, "poly": [219.0, 1410.0, 801.0, 1410.0, 801.0, 1436.0, 219.0, 1436.0], "score": 0.98, "text": "(University Park: Pennsylvania State University Press, 2o02)."}, {"category_id": 15, "poly": [176.0, 1436.0, 1046.0, 1436.0, 1046.0, 1468.0, 176.0, 1468.0], "score": 1.0, "text": "13. This very arrangement of priority holds equally, by the way, for other realms in the"}, {"category_id": 15, "poly": [219.0, 1464.0, 1042.0, 1464.0, 1042.0, 1491.0, 219.0, 1491.0], "score": 0.99, "text": "Kantian doctrine of right, for example property: cf. Jean-Christophe Merle (ed.),"}, {"category_id": 15, "poly": [221.0, 1492.0, 1046.0, 1492.0, 1046.0, 1519.0, 221.0, 1519.0], "score": 0.96, "text": "“Eigentumsrecht,” in Merle (ed.), Johann Gottlieb Fichte: Grundlage des Naturrechts"}, {"category_id": 15, "poly": [218.0, 1549.0, 1044.0, 1549.0, 1044.0, 1575.0, 218.0, 1575.0], "score": 0.98, "text": "Justice et progres: contribution a une doctrine du droit économique et social (Paris:Presses"}, {"category_id": 15, "poly": [212.0, 1569.0, 535.0, 1575.0, 534.0, 1607.0, 212.0, 1601.0], "score": 0.99, "text": "Universitaires de France, 1997)."}, {"category_id": 15, "poly": [176.0, 1382.0, 332.0, 1382.0, 332.0, 1408.0, 176.0, 1408.0], "score": 0.98, "text": "12.Cf. chapter"}, {"category_id": 15, "poly": [351.0, 1382.0, 1044.0, 1382.0, 1044.0, 1408.0, 351.0, 1408.0], "score": 0.99, "text": "in Otfried Hoffe, Categorical principles of law: a counterpoint to modernity"}, {"category_id": 15, "poly": [218.0, 1517.0, 535.0, 1519.0, 535.0, 1551.0, 217.0, 1549.0], "score": 0.97, "text": "(Berlin: De Gruyter, 2001), Pp."}, {"category_id": 15, "poly": [611.0, 1517.0, 1044.0, 1519.0, 1044.0, 1551.0, 611.0, 1549.0], "score": 0.99, "text": "; and Section 2.3 in Jean-Christophe Merle,"}, {"category_id": 15, "poly": [208.0, 849.0, 1043.0, 851.0, 1042.0, 883.0, 208.0, 881.0], "score": 0.99, "text": "We therefore find a twofold hierarchization of moral goods that"}, {"category_id": 15, "poly": [176.0, 887.0, 1041.0, 885.0, 1041.0, 917.0, 176.0, 919.0], "score": 0.99, "text": "can collide with one another. First, the commonwealth would receive"}, {"category_id": 15, "poly": [176.0, 924.0, 1041.0, 921.0, 1041.0, 952.0, 176.0, 956.0], "score": 0.98, "text": "precedence over individual freedom in the case of a collision, which"}, {"category_id": 15, "poly": [174.0, 960.0, 1041.0, 960.0, 1041.0, 992.0, 174.0, 992.0], "score": 0.97, "text": "is why it is allowed provisionally either to limit or to suspend the"}, {"category_id": 15, "poly": [176.0, 998.0, 1041.0, 998.0, 1041.0, 1024.0, 176.0, 1024.0], "score": 0.99, "text": "freedom of the criminal. Secondly, in the case of a collision, individual"}, {"category_id": 15, "poly": [174.0, 1029.0, 1043.0, 1031.0, 1042.0, 1063.0, 174.0, 1061.0], "score": 0.99, "text": "freedom receives precedence over the consequences, which the"}, {"category_id": 15, "poly": [176.0, 1069.0, 1041.0, 1069.0, 1041.0, 1101.0, 176.0, 1101.0], "score": 0.99, "text": "actions of individuals should otherwise imply; this is why crime should"}, {"category_id": 15, "poly": [173.0, 1099.0, 1041.0, 1103.0, 1041.0, 1140.0, 172.0, 1136.0], "score": 0.99, "text": "be forgiven by society - with consideration for the first priority, that is,"}, {"category_id": 15, "poly": [174.0, 1140.0, 1046.0, 1140.0, 1046.0, 1172.0, 174.0, 1172.0], "score": 0.99, "text": "with consideration for the security of the commonwealth - in the most"}, {"category_id": 15, "poly": [176.0, 1176.0, 457.0, 1172.0, 458.0, 1206.0, 177.0, 1210.0], "score": 1.0, "text": "directmannerpossible.3"}, {"category_id": 15, "poly": [210.0, 171.0, 1037.0, 171.0, 1037.0, 202.0, 210.0, 202.0], "score": 0.99, "text": "Fourthly, the categorical legal imperative of integration or reinte"}, {"category_id": 15, "poly": [172.0, 203.0, 1042.0, 201.0, 1043.0, 240.0, 173.0, 242.0], "score": 0.98, "text": "gration into the commonwealth likewise derives a deeper grounding"}, {"category_id": 15, "poly": [176.0, 242.0, 1035.0, 242.0, 1035.0, 268.0, 176.0, 268.0], "score": 0.98, "text": "in the Kantian foundation of morality, namely in the empirical cir"}, {"category_id": 15, "poly": [176.0, 278.0, 1044.0, 278.0, 1044.0, 309.0, 176.0, 309.0], "score": 0.99, "text": "cumstances of the exercise of autonomy in a limited being capable of"}, {"category_id": 15, "poly": [174.0, 313.0, 1042.0, 313.0, 1042.0, 345.0, 174.0, 345.0], "score": 0.99, "text": "reason who can also act against his or her duty, irrationally. On the"}, {"category_id": 15, "poly": [176.0, 349.0, 1041.0, 349.0, 1041.0, 381.0, 176.0, 381.0], "score": 0.99, "text": "one hand, a human being should bear the responsibility for his or her"}, {"category_id": 15, "poly": [176.0, 384.0, 1039.0, 384.0, 1039.0, 416.0, 176.0, 416.0], "score": 0.99, "text": "actions because he or she has freedom of action. On the other hand,"}, {"category_id": 15, "poly": [178.0, 424.0, 1041.0, 424.0, 1041.0, 450.0, 178.0, 450.0], "score": 0.98, "text": "the consequences of actions carried out in the past should not lead to"}, {"category_id": 15, "poly": [176.0, 458.0, 1039.0, 458.0, 1039.0, 489.0, 176.0, 489.0], "score": 0.99, "text": "the consequence that a person can no longer act freely in the future."}, {"category_id": 15, "poly": [174.0, 489.0, 1043.0, 491.0, 1042.0, 525.0, 174.0, 523.0], "score": 0.99, "text": "These two dimensions do not limit one another. The consequences of"}, {"category_id": 15, "poly": [178.0, 532.0, 1041.0, 532.0, 1041.0, 559.0, 178.0, 559.0], "score": 0.97, "text": "the actions hitherto done are limited by the commandment that"}, {"category_id": 15, "poly": [172.0, 563.0, 1042.0, 561.0, 1043.0, 598.0, 173.0, 600.0], "score": 1.0, "text": "requires treating every human being as a being capable of reason with"}, {"category_id": 15, "poly": [172.0, 600.0, 1044.0, 598.0, 1044.0, 630.0, 173.0, 632.0], "score": 0.99, "text": "an inalienable freedom of action. Now, this inalienable freedom of"}, {"category_id": 15, "poly": [171.0, 632.0, 1046.0, 634.0, 1046.0, 671.0, 171.0, 669.0], "score": 0.97, "text": " action is not limited by the consequences of past actions. Rather, it is"}, {"category_id": 15, "poly": [178.0, 669.0, 1039.0, 669.0, 1039.0, 701.0, 178.0, 701.0], "score": 0.99, "text": "limited by the same inalienable freedom of action of the other human"}, {"category_id": 15, "poly": [174.0, 705.0, 1039.0, 707.0, 1039.0, 741.0, 174.0, 739.0], "score": 0.99, "text": "beings. It is only for this reason that the Kantian concept of right is an"}, {"category_id": 15, "poly": [174.0, 742.0, 1042.0, 742.0, 1042.0, 780.0, 174.0, 780.0], "score": 0.99, "text": "object of the categorical imperative, which we may also term the"}, {"category_id": 15, "poly": [176.0, 780.0, 1044.0, 778.0, 1044.0, 812.0, 176.0, 814.0], "score": 0.97, "text": "\"categorical imperative of right,” to borrow Otfried Hoffe's"}, {"category_id": 15, "poly": [174.0, 820.0, 346.0, 811.0, 347.0, 843.0, 175.0, 852.0], "score": 0.99, "text": "expression.12"}, {"category_id": 15, "poly": [521.0, 96.0, 698.0, 96.0, 698.0, 122.0, 521.0, 122.0], "score": 1.0, "text": "CONCLUSION"}, {"category_id": 15, "poly": [208.0, 1207.0, 1041.0, 1211.0, 1041.0, 1247.0, 208.0, 1243.0], "score": 0.99, "text": "At the center of the Kantian idea of autonomy, under the guidance"}, {"category_id": 15, "poly": [176.0, 1249.0, 1041.0, 1249.0, 1041.0, 1281.0, 176.0, 1281.0], "score": 0.99, "text": "of which we always ought to act and to which, therefore, the legal"}, {"category_id": 15, "poly": [174.0, 1283.0, 1044.0, 1281.0, 1044.0, 1318.0, 174.0, 1320.0], "score": 0.97, "text": "system is subject, is the forward-looking project of the full"}, {"category_id": 15, "poly": [47.0, 1718.0, 1140.0, 1718.0, 1140.0, 1742.0, 47.0, 1742.0], "score": 0.99, "text": "Downloaded from https://www.cambridge.org/core. Universiteit Leiden / LUMC, on 29 Nov 2019 at 23:02:12, subject to the Cambridge Core"}, {"category_id": 15, "poly": [47.0, 1740.0, 947.0, 1740.0, 947.0, 1764.0, 47.0, 1764.0], "score": 0.99, "text": "terms of use, available at https://www.cambridge.org/core/terms. https://doi.org/10.1017/CB09780511770425.012"}, {"category_id": 15, "poly": [994.0, 96.0, 1046.0, 96.0, 1046.0, 133.0, 994.0, 133.0], "score": 1.0, "text": "195"}], "judge": {"final_judge": true, "search_judge": true, "score_judge": true, "cannot_find": false, "search_list": [[33.45214080810547, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/S0021875817000378.pdf_1.jpg"], [35.846343994140625, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9781139088398.007.pdf_29.jpg"], [45.88932418823242, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16659265.pdf_116.jpg"], [52.46403503417969, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/s0308-521x%2898%2900056-0.pdf_3.jpg"], [53.79743957519531, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/9b04f5410f803df1f5f93aa3778059efe90db326c19f5d7ba85414c96739b3bd.pdf_5.jpg"], [56.742919921875, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-17538478.pdf_170.jpg"], [57.389892578125, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/cd.56.pdf_7.jpg"], [58.915245056152344, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/3055e0d8130c7a197bc6e020afe9bea1edef31f33b720cc326dd404d8e3f82d5.pdf_5.jpg"], [60.87705612182617, 0.8585572842998586, 0.8571428571428571, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/CBO9780511551246.006.pdf_7.jpg"], [62.43968963623047, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/enbook-zlib-o.O-16579787.pdf_143.jpg"]]}, "page_info": {"page_no": 8, "height": 1800, "width": 1200}}, {"layout_dets": [{"category_id": 1, "poly": [185.55514526367188, 165.05636596679688, 1051.962158203125, 165.05636596679688, 1051.962158203125, 416.17791748046875, 185.55514526367188, 416.17791748046875], "score": 0.9999955892562866}, {"category_id": 1, "poly": [187.62872314453125, 471.3214416503906, 1053.895263671875, 471.3214416503906, 1053.895263671875, 669.642822265625, 187.62872314453125, 669.642822265625], "score": 0.9999722838401794}, {"category_id": 2, "poly": [529.6675415039062, 95.03907775878906, 706.549072265625, 95.03907775878906, 706.549072265625, 118.32815551757812, 529.6675415039062, 118.32815551757812], "score": 0.9998582601547241}, {"category_id": 2, "poly": [46.07423400878906, 1718.798583984375, 1141.189208984375, 1718.798583984375, 1141.189208984375, 1761.908935546875, 46.07423400878906, 1761.908935546875], "score": 0.9997307658195496}, {"category_id": 2, "poly": [189.4586181640625, 93.21783447265625, 232.76022338867188, 93.21783447265625, 232.76022338867188, 121.17974853515625, 189.4586181640625, 121.17974853515625], "score": 0.9981511831283569}, {"category_id": 15, "poly": [189.0, 169.0, 1050.0, 169.0, 1050.0, 201.0, 189.0, 201.0], "score": 1.0, "text": "development of the human being as a being capable of reason, and"}, {"category_id": 15, "poly": [184.0, 203.0, 1052.0, 201.0, 1052.0, 238.0, 184.0, 240.0], "score": 0.99, "text": "not the painfully exact accounting of the misdeeds of humanity in the"}, {"category_id": 15, "poly": [184.0, 242.0, 1052.0, 238.0, 1052.0, 270.0, 184.0, 274.0], "score": 0.98, "text": "epoch of the - as Kant terms it - \"baby walker.\"14 As Albert Camus"}, {"category_id": 15, "poly": [182.0, 274.0, 1052.0, 272.0, 1052.0, 309.0, 182.0, 311.0], "score": 0.99, "text": "observed in the debate over the death penalty, one could equally"}, {"category_id": 15, "poly": [184.0, 313.0, 1052.0, 313.0, 1052.0, 345.0, 184.0, 345.0], "score": 0.99, "text": "say of retributivists that: “we all know today's executioners are human-"}, {"category_id": 15, "poly": [180.0, 343.0, 1052.0, 347.0, 1052.0, 384.0, 180.0, 381.0], "score": 0.98, "text": "ists.\"15 It is just that we do not hold the same concept of humanity"}, {"category_id": 15, "poly": [186.0, 388.0, 319.0, 388.0, 319.0, 414.0, 186.0, 414.0], "score": 1.0, "text": "astheydo."}, {"category_id": 15, "poly": [188.0, 476.0, 1054.0, 476.0, 1054.0, 502.0, 188.0, 502.0], "score": 0.97, "text": "14. The epoch of the Gangelwagen, a device used by children learning to walk. Was"}, {"category_id": 15, "poly": [225.0, 501.0, 1048.0, 501.0, 1048.0, 532.0, 225.0, 532.0], "score": 0.96, "text": "ist Aufklarung? Ak vil1:35. Practical philosophy, ed. Gregor, p. 17: “walking wagon.'"}, {"category_id": 15, "poly": [223.0, 523.0, 1056.0, 525.0, 1056.0, 563.0, 223.0, 561.0], "score": 0.98, "text": "Also found in KrV B 174. Critique of pure reason, ed. Guyer and Wood, p. 269:"}, {"category_id": 15, "poly": [227.0, 557.0, 392.0, 559.0, 392.0, 585.0, 227.0, 583.0], "score": 0.97, "text": "\"leading-strings.\""}, {"category_id": 15, "poly": [186.0, 583.0, 1054.0, 583.0, 1054.0, 615.0, 186.0, 615.0], "score": 0.99, "text": "15. Albert Camus, Reflections on the guillotine: an essay on capital punishment by the 1957"}, {"category_id": 15, "poly": [227.0, 613.0, 1052.0, 613.0, 1052.0, 639.0, 227.0, 639.0], "score": 0.97, "text": "Nobel Prize winner, trans. Richard Howard (Michigan City, Ind.: Fridtjof-Karla"}, {"category_id": 15, "poly": [224.0, 639.0, 486.0, 645.0, 485.0, 671.0, 223.0, 665.0], "score": 0.98, "text": "Publications,1959),p.50."}, {"category_id": 15, "poly": [531.0, 96.0, 705.0, 96.0, 705.0, 122.0, 531.0, 122.0], "score": 1.0, "text": "CONCLUSION"}, {"category_id": 15, "poly": [47.0, 1718.0, 1140.0, 1718.0, 1140.0, 1742.0, 47.0, 1742.0], "score": 0.99, "text": "Downloaded from https://www.cambridge.org/core. Universiteit Leiden / LUMC, on 29 Nov 2019 at 23:02:12, subject to the Cambridge Core"}, {"category_id": 15, "poly": [47.0, 1740.0, 947.0, 1740.0, 947.0, 1764.0, 47.0, 1764.0], "score": 0.99, "text": "terms of use, available at https://www.cambridge.org/core/terms. https://doi.org/10.1017/CB09780511770425.012"}, {"category_id": 15, "poly": [186.0, 90.0, 238.0, 90.0, 238.0, 131.0, 186.0, 131.0], "score": 1.0, "text": "196"}], "judge": {"final_judge": false, "search_judge": false, "score_judge": true, "cannot_find": false, "search_list": [[77.21629333496094, 0.33333333333333326, 0.3333333333333333, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/llm-raw-scihub-o.O-chin.201025015.pdf_1.jpg"], [77.38577270507812, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/dianzishu_zhongwenzaixian-o.O-63684477.pdf_135.jpg"], [79.51431274414062, 0.6, 0.6, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/dianzishu_zhongwenzaixian-o.O-61565574.pdf_160.jpg"], [81.59078216552734, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_yanbao_ppt_merge_coco/val/f46a4b51b0a0355bc4b1b70e17ff98676c2ccce736c95d59003e770f5f31fdfc.pdf_1.jpg"], [82.08332824707031, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/9783110260007.843.pdf_7.jpg"], [88.55247497558594, 0.9999999999999999, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_scihub_coco/val/el%3A20045932.pdf_1.jpg"], [88.88130187988281, 0.5841584158415841, 0.75, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_docstructbench/val/dianzishu_zhongwenzaixian-o.O-61560140.pdf_58.jpg"], [89.059814453125, 0.9381188118811882, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/jiaocai_en_851.jpg"], [90.42997741699219, 1.0, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_needrop_coco/val/jiaocai_needrop_en_3222.jpg"], [99.1190414428711, 0.9834983498349833, 1.0, "/mnt/hwfile/opendatalab/ouyanglinke/PDF_Formula/layout_jiaocai_coco/val/2017_Applied(Overall).pdf_0.jpg"]]}, "page_info": {"page_no": 9, "height": 1800, "width": 1200}}]} diff --git a/tests/test_cli/pdf_dev/pdf/test_rearch_report.pdf b/tests/test_cli/pdf_dev/pdf/test_rearch_report.pdf deleted file mode 100644 index 11b338153..000000000 Binary files a/tests/test_cli/pdf_dev/pdf/test_rearch_report.pdf and /dev/null differ diff --git a/tests/test_cli/pdf_dev/result.json b/tests/test_cli/pdf_dev/result.json deleted file mode 100644 index 86b06043a..000000000 --- a/tests/test_cli/pdf_dev/result.json +++ /dev/null @@ -1 +0,0 @@ -{"average_sim_score":0.6505598645664856, "average_edit_distance":0.2514908429188901, "average_bleu_score": 0.5808819533975296} \ No newline at end of file diff --git a/tests/test_cli/pdf_dev/test_model.json b/tests/test_cli/pdf_dev/test_model.json deleted file mode 100644 index 0d1faaff0..000000000 --- a/tests/test_cli/pdf_dev/test_model.json +++ /dev/null @@ -1,1472 +0,0 @@ -[ - { - "layout_dets": [ - { - "category_id": 1, - "poly": [ - 578.2055053710938, - 672.8831787109375, - 1579.973388671875, - 672.8831787109375, - 1579.973388671875, - 1034.681640625, - 578.2055053710938, - 1034.681640625 - ], - "score": 0.9999963045120239 - }, - { - "category_id": 1, - "poly": [ - 583.6041259765625, - 1067.1112060546875, - 1579.822265625, - 1067.1112060546875, - 1579.822265625, - 1537.1324462890625, - 583.6041259765625, - 1537.1324462890625 - ], - "score": 0.9999961853027344 - }, - { - "category_id": 1, - "poly": [ - 585.4341430664062, - 1568.220703125, - 1578.5487060546875, - 1568.220703125, - 1578.5487060546875, - 1931.516845703125, - 585.4341430664062, - 1931.516845703125 - ], - "score": 0.9999949336051941 - }, - { - "category_id": 1, - "poly": [ - 578.491455078125, - 532.0020141601562, - 1577.96337890625, - 532.0020141601562, - 1577.96337890625, - 641.0128784179688, - 578.491455078125, - 641.0128784179688 - ], - "score": 0.999992847442627 - }, - { - "category_id": 1, - "poly": [ - 66.43791961669922, - 1776.6951904296875, - 530.4810180664062, - 1776.6951904296875, - 530.4810180664062, - 1883.127685546875, - 66.43791961669922, - 1883.127685546875 - ], - "score": 0.9999925494194031 - }, - { - "category_id": 3, - "poly": [ - 70.23656463623047, - 818.9393920898438, - 517.8253784179688, - 818.9393920898438, - 517.8253784179688, - 1076.5823974609375, - 70.23656463623047, - 1076.5823974609375 - ], - "score": 0.9999912977218628 - }, - { - "category_id": 1, - "poly": [ - 64.99957275390625, - 651.9596557617188, - 436.5134582519531, - 651.9596557617188, - 436.5134582519531, - 723.5758056640625, - 64.99957275390625, - 723.5758056640625 - ], - "score": 0.9999804496765137 - }, - { - "category_id": 0, - "poly": [ - 556.2775268554688, - 270.2123107910156, - 1577.8211669921875, - 270.2123107910156, - 1577.8211669921875, - 408.9685974121094, - 556.2775268554688, - 408.9685974121094 - ], - "score": 0.9999696016311646 - }, - { - "category_id": 1, - "poly": [ - 67.8562240600586, - 1342.2239990234375, - 530.5654296875, - 1342.2239990234375, - 530.5654296875, - 1447.843017578125, - 67.8562240600586, - 1447.843017578125 - ], - "score": 0.9999648928642273 - }, - { - "category_id": 1, - "poly": [ - 65.74958801269531, - 1631.3671875, - 530.32861328125, - 1631.3671875, - 530.32861328125, - 1772.413818359375, - 65.74958801269531, - 1772.413818359375 - ], - "score": 0.9999628067016602 - }, - { - "category_id": 1, - "poly": [ - 588.5570068359375, - 2068.54931640625, - 1525.3253173828125, - 2068.54931640625, - 1525.3253173828125, - 2103.89013671875, - 588.5570068359375, - 2103.89013671875 - ], - "score": 0.9999607801437378 - }, - { - "category_id": 1, - "poly": [ - 586.5548706054688, - 1963.105712890625, - 1556.578125, - 1963.105712890625, - 1556.578125, - 2034.8116455078125, - 586.5548706054688, - 2034.8116455078125 - ], - "score": 0.9999469518661499 - }, - { - "category_id": 5, - "poly": [ - 59.96487045288086, - 1110.6282958984375, - 529.9209594726562, - 1110.6282958984375, - 529.9209594726562, - 1225.2921142578125, - 59.96487045288086, - 1225.2921142578125 - ], - "score": 0.999945878982544 - }, - { - "category_id": 2, - "poly": [ - 70.25292205810547, - 103.42201232910156, - 420.4892578125, - 103.42201232910156, - 420.4892578125, - 223.39370727539062, - 70.25292205810547, - 223.39370727539062 - ], - "score": 0.9999405145645142 - }, - { - "category_id": 2, - "poly": [ - 1081.0203857421875, - 2244.87890625, - 1554.669189453125, - 2244.87890625, - 1554.669189453125, - 2275.28662109375, - 1081.0203857421875, - 2275.28662109375 - ], - "score": 0.9999217987060547 - }, - { - "category_id": 1, - "poly": [ - 68.85404968261719, - 345.9093017578125, - 307.9080810546875, - 345.9093017578125, - 307.9080810546875, - 409.0098876953125, - 68.85404968261719, - 409.0098876953125 - ], - "score": 0.9999183416366577 - }, - { - "category_id": 0, - "poly": [ - 65.58759307861328, - 1295.9366455078125, - 180.4149932861328, - 1295.9366455078125, - 180.4149932861328, - 1328.867919921875, - 65.58759307861328, - 1328.867919921875 - ], - "score": 0.9998926520347595 - }, - { - "category_id": 2, - "poly": [ - 1245.0789794921875, - 108.83513641357422, - 1576.3131103515625, - 108.83513641357422, - 1576.3131103515625, - 219.29042053222656, - 1245.0789794921875, - 219.29042053222656 - ], - "score": 0.9995975494384766 - }, - { - "category_id": 1, - "poly": [ - 65.75041961669922, - 483.5210266113281, - 428.6028137207031, - 483.5210266113281, - 428.6028137207031, - 586.8894653320312, - 65.75041961669922, - 586.8894653320312 - ], - "score": 0.9993270635604858 - }, - { - "category_id": 0, - "poly": [ - 65.02926635742188, - 445.02288818359375, - 208.3317108154297, - 445.02288818359375, - 208.3317108154297, - 476.65252685546875, - 65.02926635742188, - 476.65252685546875 - ], - "score": 0.9992279410362244 - }, - { - "category_id": 0, - "poly": [ - 556.96630859375, - 453.08447265625, - 673.0485229492188, - 453.08447265625, - 673.0485229492188, - 490.60455322265625, - 556.96630859375, - 490.60455322265625 - ], - "score": 0.9949817657470703 - }, - { - "category_id": 1, - "poly": [ - 66.26518249511719, - 1524.234130859375, - 530.2540283203125, - 1524.234130859375, - 530.2540283203125, - 1627.5291748046875, - 66.26518249511719, - 1627.5291748046875 - ], - "score": 0.9919581413269043 - }, - { - "category_id": 7, - "poly": [ - 62.5564079284668, - 1227.41943359375, - 380.10693359375, - 1227.41943359375, - 380.10693359375, - 1252.8614501953125, - 62.5564079284668, - 1252.8614501953125 - ], - "score": 0.9918426275253296 - }, - { - "category_id": 1, - "poly": [ - 66.80464935302734, - 1451.4775390625, - 527.3795166015625, - 1451.4775390625, - 527.3795166015625, - 1519.5836181640625, - 66.80464935302734, - 1519.5836181640625 - ], - "score": 0.9883899688720703 - }, - { - "category_id": 0, - "poly": [ - 65.36080932617188, - 605.3754272460938, - 181.24375915527344, - 605.3754272460938, - 181.24375915527344, - 637.0076904296875, - 65.36080932617188, - 637.0076904296875 - ], - "score": 0.9870840311050415 - }, - { - "category_id": 0, - "poly": [ - 178.82904052734375, - 264.6627197265625, - 396.52825927734375, - 264.6627197265625, - 396.52825927734375, - 315.41900634765625, - 178.82904052734375, - 315.41900634765625 - ], - "score": 0.9779323935508728 - }, - { - "category_id": 4, - "poly": [ - 66.15127563476562, - 767.24658203125, - 181.25694274902344, - 767.24658203125, - 181.25694274902344, - 799.7832641601562, - 66.15127563476562, - 799.7832641601562 - ], - "score": 0.8932801485061646 - }, - { - "category_id": 13, - "poly": [ - 590, - 747, - 688, - 747, - 688, - 778, - 590, - 778 - ], - "score": 0.91, - "latex": "+24.4\\%" - }, - { - "category_id": 13, - "poly": [ - 1433, - 855, - 1492, - 855, - 1492, - 886, - 1433, - 886 - ], - "score": 0.86, - "latex": "30\\%" - }, - { - "category_id": 13, - "poly": [ - 238, - 689, - 264, - 689, - 264, - 717, - 238, - 717 - ], - "score": 0.34, - "latex": "@" - }, - { - "category_id": 13, - "poly": [ - 702, - 1002, - 722, - 1002, - 722, - 1026, - 702, - 1026 - ], - "score": 0.33, - "latex": "^+" - }, - { - "category_id": 13, - "poly": [ - 177, - 1154, - 223, - 1154, - 223, - 1185, - 177, - 1185 - ], - "score": 0.28, - "latex": "(\\%)" - } - ], - "page_info": { - "page_no": 0, - "height": 2339, - "width": 1654 - } - }, - { - "layout_dets": [ - { - "category_id": 2, - "poly": [ - 88.00849151611328, - 31.891826629638672, - 300.7432861328125, - 31.891826629638672, - 300.7432861328125, - 113.5999755859375, - 88.00849151611328, - 113.5999755859375 - ], - "score": 0.9999986886978149 - }, - { - "category_id": 2, - "poly": [ - 771.0192260742188, - 2213.479248046875, - 827.4273681640625, - 2213.479248046875, - 827.4273681640625, - 2239.40185546875, - 771.0192260742188, - 2239.40185546875 - ], - "score": 0.9999963641166687 - }, - { - "category_id": 7, - "poly": [ - 544.2962646484375, - 488.5493469238281, - 988.3958129882812, - 488.5493469238281, - 988.3958129882812, - 541.0634155273438, - 544.2962646484375, - 541.0634155273438 - ], - "score": 0.9999918341636658 - }, - { - "category_id": 2, - "poly": [ - 1082.88232421875, - 82.37471771240234, - 1519.4150390625, - 82.37471771240234, - 1519.4150390625, - 114.9271011352539, - 1082.88232421875, - 114.9271011352539 - ], - "score": 0.9999632835388184 - }, - { - "category_id": 2, - "poly": [ - 1009.1597900390625, - 2210.9462890625, - 1535.9239501953125, - 2210.9462890625, - 1535.9239501953125, - 2241.830322265625, - 1009.1597900390625, - 2241.830322265625 - ], - "score": 0.9999324679374695 - }, - { - "category_id": 5, - "poly": [ - 537.349365234375, - 156.8784637451172, - 1584.9866943359375, - 156.8784637451172, - 1584.9866943359375, - 485.3042907714844, - 537.349365234375, - 485.3042907714844 - ], - "score": 0.9985955953598022 - }, - { - "category_id": 7, - "poly": [ - 62.69784927368164, - 443.4034118652344, - 249.9097137451172, - 443.4034118652344, - 249.9097137451172, - 467.4612731933594, - 62.69784927368164, - 467.4612731933594 - ], - "score": 0.9873980283737183 - }, - { - "category_id": 5, - "poly": [ - 61.374210357666016, - 138.51153564453125, - 528.30517578125, - 138.51153564453125, - 528.30517578125, - 443.5376281738281, - 61.374210357666016, - 443.5376281738281 - ], - "score": 0.9232220649719238 - }, - { - "category_id": 6, - "poly": [ - 548.1119384765625, - 148.7312774658203, - 797.3070678710938, - 148.7312774658203, - 797.3070678710938, - 180.74609375, - 548.1119384765625, - 180.74609375 - ], - "score": 0.6074804663658142 - }, - { - "category_id": 13, - "poly": [ - 864, - 455, - 922, - 455, - 922, - 482, - 864, - 482 - ], - "score": 0.74, - "latex": "6.0\\%" - }, - { - "category_id": 13, - "poly": [ - 850, - 418, - 922, - 418, - 922, - 445, - 850, - 445 - ], - "score": 0.64, - "latex": "35.3\\%" - }, - { - "category_id": 13, - "poly": [ - 1501, - 270, - 1571, - 270, - 1571, - 298, - 1501, - 298 - ], - "score": 0.54, - "latex": "13.8\\%" - }, - { - "category_id": 13, - "poly": [ - 1013, - 454, - 1083, - 454, - 1083, - 482, - 1013, - 482 - ], - "score": 0.52, - "latex": "15.0\\%" - }, - { - "category_id": 13, - "poly": [ - 1012, - 417, - 1083, - 417, - 1083, - 444, - 1012, - 444 - ], - "score": 0.52, - "latex": "33.7\\%" - }, - { - "category_id": 13, - "poly": [ - 689, - 456, - 725, - 456, - 725, - 482, - 689, - 482 - ], - "score": 0.48, - "latex": "(\\%)" - }, - { - "category_id": 13, - "poly": [ - 850, - 344, - 922, - 344, - 922, - 372, - 850, - 372 - ], - "score": 0.4, - "latex": "83.8\\%" - }, - { - "category_id": 13, - "poly": [ - 863, - 270, - 922, - 270, - 922, - 298, - 863, - 298 - ], - "score": 0.4, - "latex": "4.5\\%" - }, - { - "category_id": 13, - "poly": [ - 1334, - 270, - 1406, - 270, - 1406, - 298, - 1334, - 298 - ], - "score": 0.35, - "latex": "37.2\\%" - }, - { - "category_id": 13, - "poly": [ - 618, - 419, - 656, - 419, - 656, - 446, - 618, - 446 - ], - "score": 0.35, - "latex": "(\\%)" - } - ], - "page_info": { - "page_no": 1, - "height": 2339, - "width": 1654 - } - }, - { - "layout_dets": [ - { - "category_id": 2, - "poly": [ - 87.9037094116211, - 31.59800148010254, - 300.9930419921875, - 31.59800148010254, - 300.9930419921875, - 113.4053955078125, - 87.9037094116211, - 113.4053955078125 - ], - "score": 0.9999939799308777 - }, - { - "category_id": 2, - "poly": [ - 1008.992919921875, - 2209.248779296875, - 1534.9334716796875, - 2209.248779296875, - 1534.9334716796875, - 2242.77294921875, - 1008.992919921875, - 2242.77294921875 - ], - "score": 0.9999377131462097 - }, - { - "category_id": 2, - "poly": [ - 770.6600341796875, - 2212.857666015625, - 827.4126586914062, - 2212.857666015625, - 827.4126586914062, - 2239.77197265625, - 770.6600341796875, - 2239.77197265625 - ], - "score": 0.9998395442962646 - }, - { - "category_id": 2, - "poly": [ - 1082.096923828125, - 82.25012969970703, - 1518.9267578125, - 82.25012969970703, - 1518.9267578125, - 114.52576446533203, - 1082.096923828125, - 114.52576446533203 - ], - "score": 0.9996457099914551 - }, - { - "category_id": 7, - "poly": [ - 95.39900970458984, - 1846.6380615234375, - 564.4166870117188, - 1846.6380615234375, - 564.4166870117188, - 1899.209716796875, - 95.39900970458984, - 1899.209716796875 - ], - "score": 0.9908766746520996 - }, - { - "category_id": 6, - "poly": [ - 95.4662094116211, - 173.42832946777344, - 470.21905517578125, - 173.42832946777344, - 470.21905517578125, - 217.74632263183594, - 95.4662094116211, - 217.74632263183594 - ], - "score": 0.9437939524650574 - }, - { - "category_id": 5, - "poly": [ - 854.1142578125, - 1043.93603515625, - 1592.0174560546875, - 1043.93603515625, - 1592.0174560546875, - 1846.16552734375, - 854.1142578125, - 1846.16552734375 - ], - "score": 0.8844046592712402 - }, - { - "category_id": 5, - "poly": [ - 92.02946472167969, - 1331.8909912109375, - 814.2915649414062, - 1331.8909912109375, - 814.2915649414062, - 1842.6195068359375, - 92.02946472167969, - 1842.6195068359375 - ], - "score": 0.8743430972099304 - }, - { - "category_id": 5, - "poly": [ - 851.83984375, - 224.99559020996094, - 1592.4068603515625, - 224.99559020996094, - 1592.4068603515625, - 1018.7105712890625, - 851.83984375, - 1018.7105712890625 - ], - "score": 0.8650150299072266 - }, - { - "category_id": 5, - "poly": [ - 91.79800415039062, - 224.10838317871094, - 816.58154296875, - 224.10838317871094, - 816.58154296875, - 1248.422607421875, - 91.79800415039062, - 1248.422607421875 - ], - "score": 0.8604844808578491 - }, - { - "category_id": 5, - "poly": [ - 85.19661712646484, - 220.71524047851562, - 1602.3074951171875, - 220.71524047851562, - 1602.3074951171875, - 1844.488525390625, - 85.19661712646484, - 1844.488525390625 - ], - "score": 0.6638449430465698 - }, - { - "category_id": 13, - "poly": [ - 737, - 704, - 804, - 704, - 804, - 730, - 737, - 730 - ], - "score": 0.56, - "latex": "\\pmb{26.5\\%}" - }, - { - "category_id": 13, - "poly": [ - 738, - 673, - 804, - 673, - 804, - 699, - 738, - 699 - ], - "score": 0.48, - "latex": "\\pmb{16.2\\%}" - }, - { - "category_id": 13, - "poly": [ - 736, - 767, - 805, - 767, - 805, - 795, - 736, - 795 - ], - "score": 0.48, - "latex": "\\mathbf{\\lambda_{23.7\\%}}" - }, - { - "category_id": 13, - "poly": [ - 231, - 611, - 268, - 611, - 268, - 638, - 231, - 638 - ], - "score": 0.47, - "latex": "(\\%)" - }, - { - "category_id": 13, - "poly": [ - 749, - 736, - 804, - 736, - 804, - 763, - 749, - 763 - ], - "score": 0.41, - "latex": "\\pmb{9.2\\%}" - }, - { - "category_id": 13, - "poly": [ - 737, - 641, - 804, - 641, - 804, - 668, - 737, - 668 - ], - "score": 0.41, - "latex": "{\\bf38.0\\%}" - }, - { - "category_id": 13, - "poly": [ - 748, - 577, - 805, - 577, - 805, - 606, - 748, - 606 - ], - "score": 0.35, - "latex": "0.1\\%" - }, - { - "category_id": 13, - "poly": [ - 187, - 800, - 222, - 800, - 222, - 827, - 187, - 827 - ], - "score": 0.32, - "latex": "(\\%)" - }, - { - "category_id": 13, - "poly": [ - 738, - 830, - 805, - 830, - 805, - 857, - 738, - 857 - ], - "score": 0.28, - "latex": "\\mathbf{13.8\\%}" - }, - { - "category_id": 13, - "poly": [ - 737, - 862, - 805, - 862, - 805, - 889, - 737, - 889 - ], - "score": 0.27, - "latex": "\\mathbf{31.9\\%}" - }, - { - "category_id": 13, - "poly": [ - 736, - 955, - 804, - 955, - 804, - 983, - 736, - 983 - ], - "score": 0.26, - "latex": "\\pmb{65.3\\%}" - } - ], - "page_info": { - "page_no": 2, - "height": 2339, - "width": 1654 - } - }, - { - "layout_dets": [ - { - "category_id": 2, - "poly": [ - 86.3010025024414, - 32.05937194824219, - 303.65325927734375, - 32.05937194824219, - 303.65325927734375, - 114.77494049072266, - 86.3010025024414, - 114.77494049072266 - ], - "score": 0.9999954700469971 - }, - { - "category_id": 1, - "poly": [ - 108.4952392578125, - 590.2026977539062, - 1536.75146484375, - 590.2026977539062, - 1536.75146484375, - 688.4915771484375, - 108.4952392578125, - 688.4915771484375 - ], - "score": 0.9999932646751404 - }, - { - "category_id": 0, - "poly": [ - 95.94864654541016, - 1205.4134521484375, - 252.92477416992188, - 1205.4134521484375, - 252.92477416992188, - 1246.0015869140625, - 95.94864654541016, - 1246.0015869140625 - ], - "score": 0.999992847442627 - }, - { - "category_id": 1, - "poly": [ - 106.48407745361328, - 338.27471923828125, - 1568.86328125, - 338.27471923828125, - 1568.86328125, - 437.84783935546875, - 106.48407745361328, - 437.84783935546875 - ], - "score": 0.9999897480010986 - }, - { - "category_id": 2, - "poly": [ - 767.6918334960938, - 2212.269287109375, - 830.787353515625, - 2212.269287109375, - 830.787353515625, - 2239.28515625, - 767.6918334960938, - 2239.28515625 - ], - "score": 0.9999850988388062 - }, - { - "category_id": 0, - "poly": [ - 96.18482208251953, - 508.36334228515625, - 291.4427490234375, - 508.36334228515625, - 291.4427490234375, - 549.4661865234375, - 96.18482208251953, - 549.4661865234375 - ], - "score": 0.9999837875366211 - }, - { - "category_id": 2, - "poly": [ - 1082.2672119140625, - 81.18732452392578, - 1520.2149658203125, - 81.18732452392578, - 1520.2149658203125, - 116.55751037597656, - 1082.2672119140625, - 116.55751037597656 - ], - "score": 0.9999496340751648 - }, - { - "category_id": 0, - "poly": [ - 96.45167541503906, - 157.92835998535156, - 319.21392822265625, - 157.92835998535156, - 319.21392822265625, - 213.8436279296875, - 96.45167541503906, - 213.8436279296875 - ], - "score": 0.9999274015426636 - }, - { - "category_id": 0, - "poly": [ - 96.99238586425781, - 257.6522216796875, - 483.6472473144531, - 257.6522216796875, - 483.6472473144531, - 301.53717041015625, - 96.99238586425781, - 301.53717041015625 - ], - "score": 0.9999104738235474 - }, - { - "category_id": 2, - "poly": [ - 1008.8760986328125, - 2208.609375, - 1536.0474853515625, - 2208.609375, - 1536.0474853515625, - 2243.414306640625, - 1008.8760986328125, - 2243.414306640625 - ], - "score": 0.9998928308486938 - }, - { - "category_id": 1, - "poly": [ - 108.46533203125, - 1288.0927734375, - 1546.7518310546875, - 1288.0927734375, - 1546.7518310546875, - 1383.8438720703125, - 108.46533203125, - 1383.8438720703125 - ], - "score": 0.9997898936271667 - }, - { - "category_id": 1, - "poly": [ - 107.81462860107422, - 1678.24609375, - 1227.880615234375, - 1678.24609375, - 1227.880615234375, - 1711.37255859375, - 107.81462860107422, - 1711.37255859375 - ], - "score": 0.99957275390625 - }, - { - "category_id": 5, - "poly": [ - 109.75360107421875, - 810.0169677734375, - 1579.9549560546875, - 810.0169677734375, - 1579.9549560546875, - 1171.6383056640625, - 109.75360107421875, - 1171.6383056640625 - ], - "score": 0.9994542598724365 - }, - { - "category_id": 1, - "poly": [ - 106.46218872070312, - 1548.299072265625, - 1540.3388671875, - 1548.299072265625, - 1540.3388671875, - 1676.67919921875, - 106.46218872070312, - 1676.67919921875 - ], - "score": 0.9886452555656433 - }, - { - "category_id": 1, - "poly": [ - 107.52558898925781, - 1386.4000244140625, - 1540.886962890625, - 1386.4000244140625, - 1540.886962890625, - 1447.8128662109375, - 107.52558898925781, - 1447.8128662109375 - ], - "score": 0.9709398150444031 - }, - { - "category_id": 1, - "poly": [ - 107.66414642333984, - 1451.8369140625, - 1537.99169921875, - 1451.8369140625, - 1537.99169921875, - 1546.690185546875, - 107.66414642333984, - 1546.690185546875 - ], - "score": 0.9590120315551758 - }, - { - "category_id": 6, - "poly": [ - 95.90371704101562, - 728.2855224609375, - 328.1967468261719, - 728.2855224609375, - 328.1967468261719, - 768.121826171875, - 95.90371704101562, - 768.121826171875 - ], - "score": 0.6999977827072144 - }, - { - "category_id": 1, - "poly": [ - 106.67481994628906, - 1371.857421875, - 1544.84814453125, - 1371.857421875, - 1544.84814453125, - 1678.67236328125, - 106.67481994628906, - 1678.67236328125 - ], - "score": 0.5645973086357117 - }, - { - "category_id": 0, - "poly": [ - 95.94171142578125, - 728.264404296875, - 328.1947937011719, - 728.264404296875, - 328.1947937011719, - 768.1663818359375, - 95.94171142578125, - 768.1663818359375 - ], - "score": 0.30702608823776245 - }, - { - "category_id": 13, - "poly": [ - 1247, - 887, - 1353, - 887, - 1353, - 914, - 1247, - 914 - ], - "score": 0.91, - "latex": "5\\%{\\sim}20\\%" - }, - { - "category_id": 13, - "poly": [ - 1181, - 923, - 1290, - 923, - 1290, - 950, - 1181, - 950 - ], - "score": 0.9, - "latex": "-5\\%{+}5\\%" - }, - { - "category_id": 13, - "poly": [ - 1416, - 1047, - 1469, - 1047, - 1469, - 1077, - 1416, - 1077 - ], - "score": 0.87, - "latex": "10\\%" - }, - { - "category_id": 13, - "poly": [ - 1254, - 963, - 1296, - 963, - 1296, - 991, - 1254, - 991 - ], - "score": 0.86, - "latex": "5\\%" - }, - { - "category_id": 13, - "poly": [ - 1373, - 1003, - 1428, - 1003, - 1428, - 1032, - 1373, - 1032 - ], - "score": 0.86, - "latex": "10\\%" - }, - { - "category_id": 13, - "poly": [ - 1332, - 1047, - 1388, - 1047, - 1388, - 1076, - 1332, - 1076 - ], - "score": 0.86, - "latex": "\\cdot10\\%" - }, - { - "category_id": 13, - "poly": [ - 1373, - 1112, - 1428, - 1112, - 1428, - 1141, - 1373, - 1141 - ], - "score": 0.85, - "latex": "10\\%" - }, - { - "category_id": 13, - "poly": [ - 1248, - 854, - 1302, - 854, - 1302, - 880, - 1248, - 880 - ], - "score": 0.85, - "latex": "z0\\%" - } - ], - "page_info": { - "page_no": 3, - "height": 2339, - "width": 1654 - } - } -] \ No newline at end of file diff --git a/tests/test_cli/test_bench.py b/tests/test_cli/test_bench.py deleted file mode 100644 index 23e7bdfd7..000000000 --- a/tests/test_cli/test_bench.py +++ /dev/null @@ -1,54 +0,0 @@ -""" -bench -""" -import os -import shutil -import json -from lib import calculate_score -import pytest -from conf import conf - -code_path = os.environ.get('GITHUB_WORKSPACE') -pdf_dev_path = conf.conf["pdf_dev_path"] -pdf_res_path = conf.conf["pdf_res_path"] - -class TestBench(): - """ - test bench - """ - def test_ci_ben(self): - """ - ci benchmark - """ - fr = open(os.path.join(pdf_dev_path, "result.json"), "r", encoding="utf-8") - lines = fr.readlines() - last_line = lines[-1].strip() - last_score = json.loads(last_line) - last_simscore = last_score["average_sim_score"] - last_editdistance = last_score["average_edit_distance"] - last_bleu = last_score["average_bleu_score"] - os.system(f"python tests/test_cli/lib/pre_clean.py --tool_name mineru --download_dir {pdf_dev_path}") - now_score = get_score() - print ("now_score:", now_score) - if not os.path.exists(os.path.join(pdf_dev_path, "ci")): - os.makedirs(os.path.join(pdf_dev_path, "ci"), exist_ok=True) - fw = open(os.path.join(pdf_dev_path, "ci", "result.json"), "w+", encoding="utf-8") - fw.write(json.dumps(now_score) + "\n") - now_simscore = now_score["average_sim_score"] - now_editdistance = now_score["average_edit_distance"] - now_bleu = now_score["average_bleu_score"] - assert last_simscore <= now_simscore - assert last_editdistance <= now_editdistance - assert last_bleu <= now_bleu - - -def get_score(): - """ - get score - """ - score = calculate_score.Scoring(os.path.join(pdf_dev_path, "result.json")) - score.calculate_similarity_total("mineru", pdf_dev_path) - res = score.summary_scores() - return res - - diff --git a/tests/test_cli/test_bench_gpu.py b/tests/test_cli/test_bench_gpu.py deleted file mode 100644 index 4d380a1e7..000000000 --- a/tests/test_cli/test_bench_gpu.py +++ /dev/null @@ -1,82 +0,0 @@ -import pytest -import os -from conf import conf -import os -import json -from magic_pdf.pipe.UNIPipe import UNIPipe -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter -from lib import calculate_score -import shutil -pdf_res_path = conf.conf["pdf_res_path"] -code_path = conf.conf["code_path"] -pdf_dev_path = conf.conf["pdf_dev_path"] -class TestCliCuda: - """ - test cli cuda - """ - def test_pdf_sdk_cuda(self): - """ - pdf sdk cuda - """ - clean_magicpdf(pdf_res_path) - pdf_to_markdown() - fr = open(os.path.join(pdf_dev_path, "result.json"), "r", encoding="utf-8") - lines = fr.readlines() - last_line = lines[-1].strip() - last_score = json.loads(last_line) - last_simscore = last_score["average_sim_score"] - last_editdistance = last_score["average_edit_distance"] - last_bleu = last_score["average_bleu_score"] - os.system(f"python tests/test_cli/lib/pre_clean.py --tool_name mineru --download_dir {pdf_dev_path}") - now_score = get_score() - print ("now_score:", now_score) - if not os.path.exists(os.path.join(pdf_dev_path, "ci")): - os.makedirs(os.path.join(pdf_dev_path, "ci"), exist_ok=True) - fw = open(os.path.join(pdf_dev_path, "ci", "result.json"), "w+", encoding="utf-8") - fw.write(json.dumps(now_score) + "\n") - now_simscore = now_score["average_sim_score"] - now_editdistance = now_score["average_edit_distance"] - now_bleu = now_score["average_bleu_score"] - assert last_simscore <= now_simscore - assert last_editdistance <= now_editdistance - assert last_bleu <= now_bleu - -def pdf_to_markdown(): - """ - pdf to md - """ - demo_names = list() - pdf_path = os.path.join(pdf_dev_path, "pdf") - for pdf_file in os.listdir(pdf_path): - if pdf_file.endswith('.pdf'): - demo_names.append(pdf_file.split('.')[0]) - for demo_name in demo_names: - pdf_path = os.path.join(pdf_dev_path, "pdf", f"{demo_name}.pdf") - cmd = "magic-pdf pdf-command --pdf %s --inside_model true" % (pdf_path) - os.system(cmd) - dir_path = os.path.join(pdf_dev_path, "mineru") - if not os.path.exists(dir_path): - os.makedirs(dir_path, exist_ok=True) - res_path = os.path.join(dir_path, f"{demo_name}.md") - src_path = os.path.join(pdf_res_path, demo_name, "auto", f"{demo_name}.md") - shutil.copy(src_path, res_path) - - - -def get_score(): - """ - get score - """ - score = calculate_score.Scoring(os.path.join(pdf_dev_path, "result.json")) - score.calculate_similarity_total("mineru", pdf_dev_path) - res = score.summary_scores() - return res - - -def clean_magicpdf(pdf_res_path): - """ - clean magicpdf - """ - cmd = "rm -rf %s" % (pdf_res_path) - os.system(cmd) - diff --git a/tests/test_cli/test_cli_sdk.py b/tests/test_cli/test_cli_sdk.py deleted file mode 100644 index d4d6fa825..000000000 --- a/tests/test_cli/test_cli_sdk.py +++ /dev/null @@ -1,346 +0,0 @@ -"""test cli and sdk.""" -import logging -import os -import pytest -from conf import conf -from lib import common -import time -import magic_pdf.model as model_config -from magic_pdf.pipe.UNIPipe import UNIPipe -from magic_pdf.rw.DiskReaderWriter import DiskReaderWriter -from magic_pdf.rw.S3ReaderWriter import S3ReaderWriter -model_config.__use_inside_model__ = True -pdf_res_path = conf.conf['pdf_res_path'] -code_path = conf.conf['code_path'] -pdf_dev_path = conf.conf['pdf_dev_path'] - - -class TestCli: - """test cli.""" - - @pytest.mark.P0 - def test_pdf_auto_sdk(self): - """pdf sdk auto test.""" - demo_names = list() - pdf_path = os.path.join(pdf_dev_path, 'pdf') - for pdf_file in os.listdir(pdf_path): - if pdf_file.endswith('.pdf'): - demo_names.append(pdf_file.split('.')[0]) - for demo_name in demo_names: - pdf_path = os.path.join(pdf_dev_path, 'pdf', f'{demo_name}.pdf') - print(pdf_path) - pdf_bytes = open(pdf_path, 'rb').read() - local_image_dir = os.path.join(pdf_dev_path, 'pdf', 'images') - image_dir = str(os.path.basename(local_image_dir)) - image_writer = DiskReaderWriter(local_image_dir) - model_json = list() - jso_useful_key = {'_pdf_type': '', 'model_list': model_json} - pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer) - pipe.pipe_classify() - if len(model_json) == 0: - if model_config.__use_inside_model__: - pipe.pipe_analyze() - else: - exit(1) - pipe.pipe_parse() - md_content = pipe.pipe_mk_markdown(image_dir, drop_mode='none') - dir_path = os.path.join(pdf_dev_path, 'mineru') - if not os.path.exists(dir_path): - os.makedirs(dir_path, exist_ok=True) - res_path = os.path.join(dir_path, f'{demo_name}.md') - common.delete_file(res_path) - with open(res_path, 'w+', encoding='utf-8') as f: - f.write(md_content) - common.sdk_count_folders_and_check_contents(res_path) - - @pytest.mark.P0 - def test_pdf_ocr_sdk(self): - """pdf sdk ocr test.""" - time.sleep(2) - demo_names = list() - pdf_path = os.path.join(pdf_dev_path, 'pdf') - for pdf_file in os.listdir(pdf_path): - if pdf_file.endswith('.pdf'): - demo_names.append(pdf_file.split('.')[0]) - for demo_name in demo_names: - pdf_path = os.path.join(pdf_dev_path, 'pdf', f'{demo_name}.pdf') - print(pdf_path) - pdf_bytes = open(pdf_path, 'rb').read() - local_image_dir = os.path.join(pdf_dev_path, 'pdf', 'images') - image_dir = str(os.path.basename(local_image_dir)) - image_writer = DiskReaderWriter(local_image_dir) - model_json = list() - jso_useful_key = {'_pdf_type': 'ocr', 'model_list': model_json} - pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer) - pipe.pipe_classify() - if len(model_json) == 0: - if model_config.__use_inside_model__: - pipe.pipe_analyze() - else: - exit(1) - pipe.pipe_parse() - md_content = pipe.pipe_mk_markdown(image_dir, drop_mode='none') - dir_path = os.path.join(pdf_dev_path, 'mineru') - if not os.path.exists(dir_path): - os.makedirs(dir_path, exist_ok=True) - res_path = os.path.join(dir_path, f'{demo_name}.md') - common.delete_file(res_path) - with open(res_path, 'w+', encoding='utf-8') as f: - f.write(md_content) - common.sdk_count_folders_and_check_contents(res_path) - - @pytest.mark.P0 - def test_pdf_txt_sdk(self): - """pdf sdk txt test.""" - time.sleep(2) - demo_names = list() - pdf_path = os.path.join(pdf_dev_path, 'pdf') - for pdf_file in os.listdir(pdf_path): - if pdf_file.endswith('.pdf'): - demo_names.append(pdf_file.split('.')[0]) - for demo_name in demo_names: - pdf_path = os.path.join(pdf_dev_path, 'pdf', f'{demo_name}.pdf') - pdf_bytes = open(pdf_path, 'rb').read() - local_image_dir = os.path.join(pdf_dev_path, 'pdf', 'images') - image_dir = str(os.path.basename(local_image_dir)) - image_writer = DiskReaderWriter(local_image_dir) - model_json = list() - jso_useful_key = {'_pdf_type': 'txt', 'model_list': model_json} - pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer) - pipe.pipe_classify() - if len(model_json) == 0: - if model_config.__use_inside_model__: - pipe.pipe_analyze() - else: - exit(1) - pipe.pipe_parse() - md_content = pipe.pipe_mk_markdown(image_dir, drop_mode='none') - dir_path = os.path.join(pdf_dev_path, 'mineru') - if not os.path.exists(dir_path): - os.makedirs(dir_path, exist_ok=True) - res_path = os.path.join(dir_path, f'{demo_name}.md') - common.delete_file(res_path) - with open(res_path, 'w+', encoding='utf-8') as f: - f.write(md_content) - common.sdk_count_folders_and_check_contents(res_path) - - @pytest.mark.P0 - def test_pdf_cli_auto(self): - """magic_pdf cli test auto.""" - time.sleep(2) - demo_names = [] - pdf_path = os.path.join(pdf_dev_path, 'pdf') - for pdf_file in os.listdir(pdf_path): - if pdf_file.endswith('.pdf'): - demo_names.append(pdf_file.split('.')[0]) - for demo_name in demo_names: - res_path = os.path.join(pdf_dev_path, 'mineru') - common.delete_file(res_path) - cmd = 'magic-pdf -p %s -o %s -m %s' % (os.path.join( - pdf_path, f'{demo_name}.pdf'), res_path, 'auto') - logging.info(cmd) - os.system(cmd) - common.cli_count_folders_and_check_contents( - os.path.join(res_path, demo_name, 'auto')) - - @pytest.mark.P0 - def test_pdf_cli_txt(self): - """magic_pdf cli test txt.""" - time.sleep(2) - demo_names = [] - pdf_path = os.path.join(pdf_dev_path, 'pdf') - for pdf_file in os.listdir(pdf_path): - if pdf_file.endswith('.pdf'): - demo_names.append(pdf_file.split('.')[0]) - for demo_name in demo_names: - res_path = os.path.join(pdf_dev_path, 'mineru') - common.delete_file(res_path) - cmd = 'magic-pdf -p %s -o %s -m %s' % (os.path.join( - pdf_path, f'{demo_name}.pdf'), res_path, 'txt') - logging.info(cmd) - os.system(cmd) - common.cli_count_folders_and_check_contents( - os.path.join(res_path, demo_name, 'txt')) - - @pytest.mark.P0 - def test_pdf_cli_ocr(self): - """magic_pdf cli test ocr.""" - time.sleep(2) - demo_names = [] - pdf_path = os.path.join(pdf_dev_path, 'pdf') - for pdf_file in os.listdir(pdf_path): - if pdf_file.endswith('.pdf'): - demo_names.append(pdf_file.split('.')[0]) - for demo_name in demo_names: - res_path = os.path.join(pdf_dev_path, 'mineru') - common.delete_file(res_path) - cmd = 'magic-pdf -p %s -o %s -m %s' % (os.path.join( - pdf_path, f'{demo_name}.pdf'), res_path, 'ocr') - logging.info(cmd) - os.system(cmd) - common.cli_count_folders_and_check_contents( - os.path.join(res_path, demo_name, 'ocr')) - - @pytest.mark.skip(reason='out-of-date api') - @pytest.mark.P1 - def test_pdf_dev_cli_local_jsonl_txt(self): - """magic_pdf_dev cli local txt.""" - time.sleep(2) - jsonl_path = os.path.join(pdf_dev_path, 'line1.jsonl') - cmd = 'magic-pdf-dev --jsonl %s --method %s' % (jsonl_path, "txt") - logging.info(cmd) - os.system(cmd) - - @pytest.mark.skip(reason='out-of-date api') - @pytest.mark.P1 - def test_pdf_dev_cli_local_jsonl_ocr(self): - """magic_pdf_dev cli local ocr.""" - time.sleep(2) - jsonl_path = os.path.join(pdf_dev_path, 'line1.jsonl') - cmd = 'magic-pdf-dev --jsonl %s --method %s' % (jsonl_path, 'ocr') - logging.info(cmd) - os.system(cmd) - - @pytest.mark.skip(reason='out-of-date api') - @pytest.mark.P1 - def test_pdf_dev_cli_local_jsonl_auto(self): - """magic_pdf_dev cli local auto.""" - time.sleep(2) - jsonl_path = os.path.join(pdf_dev_path, 'line1.jsonl') - cmd = 'magic-pdf-dev --jsonl %s --method %s' % (jsonl_path, 'auto') - logging.info(cmd) - os.system(cmd) - - @pytest.mark.skip(reason='out-of-date api') - @pytest.mark.P1 - def test_pdf_dev_cli_s3_jsonl_txt(self): - """magic_pdf_dev cli s3 txt.""" - time.sleep(2) - jsonl_path = os.path.join(pdf_dev_path, 'line1.jsonl') - cmd = 'magic-pdf-dev --jsonl %s --method %s' % (jsonl_path, "txt") - logging.info(cmd) - os.system(cmd) - - @pytest.mark.skip(reason='out-of-date api') - @pytest.mark.P1 - def test_pdf_dev_cli_s3_jsonl_ocr(self): - """magic_pdf_dev cli s3 ocr.""" - time.sleep(2) - jsonl_path = os.path.join(pdf_dev_path, 'line1.jsonl') - cmd = 'magic-pdf-dev --jsonl %s --method %s' % (jsonl_path, 'ocr') - logging.info(cmd) - os.system(cmd) - - @pytest.mark.skip(reason='out-of-date api') - @pytest.mark.P1 - def test_pdf_dev_cli_s3_jsonl_auto(self): - """magic_pdf_dev cli s3 auto.""" - time.sleep(2) - jsonl_path = os.path.join(pdf_dev_path, 'line1.jsonl') - cmd = 'magic-pdf-dev --jsonl %s --method %s' % (jsonl_path, 'auto') - logging.info(cmd) - os.system(cmd) - - @pytest.mark.P1 - def test_pdf_dev_cli_pdf_json_auto(self): - """magic_pdf_dev cli pdf+json auto.""" - time.sleep(2) - json_path = os.path.join(pdf_dev_path, 'test_model.json') - pdf_path = os.path.join(pdf_dev_path, 'pdf', 'test_rearch_report.pdf') - cmd = 'magic-pdf-dev --pdf %s --json %s --method %s' % (pdf_path, json_path, 'auto') - logging.info(cmd) - os.system(cmd) - - @pytest.mark.skip(reason='out-of-date api') - @pytest.mark.P1 - def test_pdf_dev_cli_pdf_json_ocr(self): - """magic_pdf_dev cli pdf+json ocr.""" - time.sleep(2) - json_path = os.path.join(pdf_dev_path, 'test_model.json') - pdf_path = os.path.join(pdf_dev_path, 'pdf', 'test_rearch_report.pdf') - cmd = 'magic-pdf-dev --pdf %s --json %s --method %s' % (pdf_path, json_path, 'auto') - logging.info(cmd) - os.system(cmd) - - @pytest.mark.P1 - def test_s3_sdk_suto(self): - """ - test s3 sdk auto. - """ - time.sleep(2) - pdf_ak = os.getenv('pdf_ak') - print (pdf_ak) - pdf_sk = os.environ.get('pdf_sk', "") - pdf_bucket = os.environ.get('bucket', "") - pdf_endpoint = os.environ.get('pdf_endpoint', "") - s3_pdf_path = conf.conf["s3_pdf_path"] - image_dir = "s3://" + pdf_bucket + "/mineru/test/output" - print (image_dir) - s3pdf_cli = S3ReaderWriter(pdf_ak, pdf_sk, pdf_endpoint) - s3image_cli = S3ReaderWriter(pdf_ak, pdf_sk, pdf_endpoint, parent_path=image_dir) - pdf_bytes = s3pdf_cli.read(s3_pdf_path, mode=s3pdf_cli.MODE_BIN) - jso_useful_key = {"_pdf_type": "", "model_list": []} - pipe = UNIPipe(pdf_bytes, jso_useful_key, s3image_cli) - pipe.pipe_classify() - pipe.pipe_analyze() - pipe.pipe_parse() - md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none") - assert len(md_content) > 0 - - @pytest.mark.P1 - def test_local_magic_pdf_open_st_table(self): - """magic pdf cli open st table.""" - time.sleep(2) - pre_cmd = "cp ~/magic_pdf_st.json ~/magic-pdf.json" - print (pre_cmd) - os.system(pre_cmd) - pdf_path = os.path.join(pdf_dev_path, "pdf", "test_rearch_report.pdf") - common.delete_file(pdf_res_path) - cli_cmd = "magic-pdf -p %s -o %s" % (pdf_path, pdf_res_path) - os.system(cli_cmd) - res = common.check_latex_table_exists(os.path.join(pdf_res_path, "test_rearch_report", "auto", "test_rearch_report.md")) - assert res is True - - @pytest.mark.P1 - def test_local_magic_pdf_open_html_table(self): - """magic pdf cli open html table.""" - time.sleep(2) - pre_cmd = "cp ~/magic_pdf_html.json ~/magic-pdf.json" - os.system(pre_cmd) - pdf_path = os.path.join(pdf_dev_path, "pdf", "test_rearch_report.pdf") - common.delete_file(pdf_res_path) - cli_cmd = "magic-pdf -p %s -o %s" % (pdf_path, pdf_res_path) - os.system(cli_cmd) - res = common.check_html_table_exists(os.path.join(pdf_res_path, "test_rearch_report", "auto", "test_rearch_report.md")) - assert res is True - - @pytest.mark.P1 - def test_magic_pdf_close_html_table_cpu(self): - """magic pdf cli close html table cpu mode.""" - time.sleep(2) - pre_cmd = "cp ~/magic_pdf_html_table_cpu.json ~/magic-pdf.json" - os.system(pre_cmd) - pdf_path = os.path.join(pdf_dev_path, "pdf", "test_rearch_report.pdf") - common.delete_file(pdf_res_path) - cli_cmd = "magic-pdf -p %s -o %s" % (pdf_path, pdf_res_path) - os.system(cli_cmd) - res = common.check_html_table_exists(os.path.join(pdf_res_path, "test_rearch_report", "auto", "test_rearch_report.md")) - assert res is True - - @pytest.mark.P1 - def test_local_magic_pdf_close_html_table(self): - """magic pdf cli close table.""" - time.sleep(2) - pre_cmd = "cp ~/magic_pdf_close_table.json ~/magic-pdf.json" - os.system(pre_cmd) - pdf_path = os.path.join(pdf_dev_path, "pdf", "test_rearch_report.pdf") - common.delete_file(pdf_res_path) - cli_cmd = "magic-pdf -p %s -o %s" % (pdf_path, pdf_res_path) - os.system(cli_cmd) - res = common.check_close_tables(os.path.join(pdf_res_path, "test_rearch_report", "auto", "test_rearch_report.md")) - assert res is True - - - -if __name__ == '__main__': - pytest.main() diff --git a/tests/test_commons.py b/tests/test_commons.py deleted file mode 100644 index 146a41b5c..000000000 --- a/tests/test_commons.py +++ /dev/null @@ -1,80 +0,0 @@ -import io -import json -import os - -import boto3 -from botocore.config import Config - -from magic_pdf.libs.commons import fitz -from magic_pdf.libs.config_reader import get_s3_config_dict - -from magic_pdf.libs.commons import join_path, json_dump_path, read_file, parse_bucket_key -from loguru import logger - -test_pdf_dir_path = "s3://llm-pdf-text/unittest/pdf/" - - -def get_test_pdf_json(book_name): - json_path = join_path(json_dump_path, book_name + ".json") - s3_config = get_s3_config_dict(json_path) - file_content = read_file(json_path, s3_config) - json_str = file_content.decode('utf-8') - json_object = json.loads(json_str) - return json_object - - -def read_test_file(book_name): - test_pdf_path = join_path(test_pdf_dir_path, book_name + ".pdf") - s3_config = get_s3_config_dict(test_pdf_path) - try: - file_content = read_file(test_pdf_path, s3_config) - return file_content - except Exception as e: - if "NoSuchKey" in str(e): - logger.warning("File not found in test_pdf_path. Downloading from orig_s3_pdf_path.") - try: - json_object = get_test_pdf_json(book_name) - orig_s3_pdf_path = json_object.get('file_location') - s3_config = get_s3_config_dict(orig_s3_pdf_path) - file_content = read_file(orig_s3_pdf_path, s3_config) - s3_client = get_s3_client(test_pdf_path) - bucket_name, bucket_key = parse_bucket_key(test_pdf_path) - file_obj = io.BytesIO(file_content) - s3_client.upload_fileobj(file_obj, bucket_name, bucket_key) - return file_content - except Exception as e: - logger.exception(e) - else: - logger.exception(e) - - -def get_docs_from_test_pdf(book_name): - file_content = read_test_file(book_name) - return fitz.open("pdf", file_content) - - -def get_test_json_data(directory_path, json_file_name): - with open(os.path.join(directory_path, json_file_name), "r", encoding='utf-8') as f: - test_data = json.load(f) - return test_data - - -def get_s3_client(path): - s3_config = get_s3_config_dict(path) - try: - return boto3.client( - "s3", - aws_access_key_id=s3_config["ak"], - aws_secret_access_key=s3_config["sk"], - endpoint_url=s3_config["endpoint"], - config=Config(s3={"addressing_style": "path"}, retries={"max_attempts": 8, "mode": "standard"}), - ) - except: - # older boto3 do not support retries.mode param. - return boto3.client( - "s3", - aws_access_key_id=s3_config["ak"], - aws_secret_access_key=s3_config["sk"], - endpoint_url=s3_config["endpoint"], - config=Config(s3={"addressing_style": "path"}, retries={"max_attempts": 8}), - ) diff --git a/tests/test_data/__init__.py b/tests/test_data/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/test_data/assets/jsonl/test_01.jsonl b/tests/test_data/assets/jsonl/test_01.jsonl deleted file mode 100644 index e3bfabb40..000000000 --- a/tests/test_data/assets/jsonl/test_01.jsonl +++ /dev/null @@ -1 +0,0 @@ -{"track_id":"e8824f5a-9fcb-4ee5-b2d4-6bf2c67019dc","path":"s3://sci-hub/enbook-scimag/78800000/libgen.scimag78872000-78872999/10.1017/cbo9780511770425.012.pdf","file_type":"pdf","content_type":"application/pdf","content_length":80078,"title":"German Idealism and the Concept of Punishment || Conclusion","remark":{"file_id":"scihub_78800000/libgen.scimag78872000-78872999.zip_10.1017/cbo9780511770425.012","file_source_type":"paper","original_file_id":"10.1017/cbo9780511770425.012","file_name":"10.1017/cbo9780511770425.012.pdf","author":"Merle, Jean-Christophe"}} diff --git a/tests/test_data/assets/jsonl/test_02.jsonl b/tests/test_data/assets/jsonl/test_02.jsonl deleted file mode 100644 index cbed86755..000000000 --- a/tests/test_data/assets/jsonl/test_02.jsonl +++ /dev/null @@ -1 +0,0 @@ -{"track_id":"e8824f5a-9fcb-4ee5-b2d4-6bf2c67019dc","path":"tests/test_data/assets/pdfs/test_02.pdf","file_type":"pdf","content_type":"application/pdf","content_length":80078,"title":"German Idealism and the Concept of Punishment || Conclusion","remark":{"file_id":"scihub_78800000/libgen.scimag78872000-78872999.zip_10.1017/cbo9780511770425.012","file_source_type":"paper","original_file_id":"10.1017/cbo9780511770425.012","file_name":"10.1017/cbo9780511770425.012.pdf","author":"Merle, Jean-Christophe"}} diff --git a/tests/test_data/assets/pdfs/test_01.pdf b/tests/test_data/assets/pdfs/test_01.pdf deleted file mode 100644 index 229be9cee..000000000 Binary files a/tests/test_data/assets/pdfs/test_01.pdf and /dev/null differ diff --git a/tests/test_data/assets/pdfs/test_02.pdf b/tests/test_data/assets/pdfs/test_02.pdf deleted file mode 100644 index 1adcc01c5..000000000 Binary files a/tests/test_data/assets/pdfs/test_02.pdf and /dev/null differ diff --git a/tests/test_data/assets/pngs/test_01.png b/tests/test_data/assets/pngs/test_01.png deleted file mode 100644 index d247efc08..000000000 Binary files a/tests/test_data/assets/pngs/test_01.png and /dev/null differ diff --git a/tests/test_data/assets/pngs/test_02.png b/tests/test_data/assets/pngs/test_02.png deleted file mode 100644 index 1f3e79212..000000000 Binary files a/tests/test_data/assets/pngs/test_02.png and /dev/null differ diff --git a/tests/test_data/data_reader_writer/__init__.py b/tests/test_data/data_reader_writer/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/test_data/data_reader_writer/test_filebase.py b/tests/test_data/data_reader_writer/test_filebase.py deleted file mode 100644 index 8978db4f7..000000000 --- a/tests/test_data/data_reader_writer/test_filebase.py +++ /dev/null @@ -1,24 +0,0 @@ -import os -import shutil - -from magic_pdf.data.data_reader_writer import (FileBasedDataReader, - FileBasedDataWriter) - - -def test_filebased_reader_writer(): - - unitest_dir = '/tmp/magic_pdf/unittest/data/filebased_reader_writer' - sub_dir = os.path.join(unitest_dir, 'sub') - abs_fn = os.path.join(unitest_dir, 'abspath.txt') - - os.makedirs(sub_dir, exist_ok=True) - - writer = FileBasedDataWriter(sub_dir) - reader = FileBasedDataReader(sub_dir) - - writer.write('test.txt', b'hello world') - assert reader.read('test.txt') == b'hello world' - - writer.write(abs_fn, b'hello world') - assert reader.read(abs_fn) == b'hello world' - shutil.rmtree(unitest_dir) diff --git a/tests/test_data/data_reader_writer/test_multi_bucket_s3.py b/tests/test_data/data_reader_writer/test_multi_bucket_s3.py deleted file mode 100644 index e032d6b81..000000000 --- a/tests/test_data/data_reader_writer/test_multi_bucket_s3.py +++ /dev/null @@ -1,82 +0,0 @@ -import json -import os - -import fitz -import pytest - -from magic_pdf.data.data_reader_writer import (MultiBucketS3DataReader, - MultiBucketS3DataWriter) -from magic_pdf.data.schemas import S3Config - - -@pytest.mark.skipif( - os.getenv('S3_ACCESS_KEY_2', None) is None, reason='need s3 config!' -) -def test_multi_bucket_s3_reader_writer(): - """test multi bucket s3 reader writer must config s3 config in the - environment export S3_BUCKET=xxx export S3_ACCESS_KEY=xxx export - S3_SECRET_KEY=xxx export S3_ENDPOINT=xxx. - - export S3_BUCKET_2=xxx export S3_ACCESS_KEY_2=xxx export S3_SECRET_KEY_2=xxx export S3_ENDPOINT_2=xxx - """ - bucket = os.getenv('S3_BUCKET', '') - ak = os.getenv('S3_ACCESS_KEY', '') - sk = os.getenv('S3_SECRET_KEY', '') - endpoint_url = os.getenv('S3_ENDPOINT', '') - - bucket_2 = os.getenv('S3_BUCKET_2', '') - ak_2 = os.getenv('S3_ACCESS_KEY_2', '') - sk_2 = os.getenv('S3_SECRET_KEY_2', '') - endpoint_url_2 = os.getenv('S3_ENDPOINT_2', '') - - s3configs = [ - S3Config( - bucket_name=bucket, access_key=ak, secret_key=sk, endpoint_url=endpoint_url - ), - S3Config( - bucket_name=bucket_2, - access_key=ak_2, - secret_key=sk_2, - endpoint_url=endpoint_url_2, - ), - ] - - reader = MultiBucketS3DataReader(default_bucket=bucket, s3_configs=s3configs) - writer = MultiBucketS3DataWriter(default_bucket=bucket, s3_configs=s3configs) - - bits = reader.read('meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl') - - assert bits == reader.read( - f's3://{bucket}/meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl' - ) - - bits = reader.read( - f's3://{bucket_2}/enbook-scimag/78800000/libgen.scimag78872000-78872999/10.1017/cbo9780511770425.012.pdf' - ) - docs = fitz.open('pdf', bits) - assert len(docs) == 10 - - bits = reader.read( - 'meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl?bytes=566,713' - ) - assert bits == reader.read_at( - 'meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl', 566, 713 - ) - assert len(json.loads(bits)) > 0 - - writer.write_string( - 'unittest/data/data_reader_writer/multi_bucket_s3_data/test01.txt', 'abc' - ) - - assert 'abc'.encode() == reader.read( - 'unittest/data/data_reader_writer/multi_bucket_s3_data/test01.txt' - ) - - writer.write( - 'unittest/data/data_reader_writer/multi_bucket_s3_data/test02.txt', - '123'.encode(), - ) - - assert '123'.encode() == reader.read( - 'unittest/data/data_reader_writer/multi_bucket_s3_data/test02.txt' - ) diff --git a/tests/test_data/data_reader_writer/test_s3.py b/tests/test_data/data_reader_writer/test_s3.py deleted file mode 100644 index aaa9da128..000000000 --- a/tests/test_data/data_reader_writer/test_s3.py +++ /dev/null @@ -1,53 +0,0 @@ -import json -import os - -import pytest - -from magic_pdf.data.data_reader_writer import S3DataReader, S3DataWriter - - -@pytest.mark.skipif( - os.getenv('S3_ACCESS_KEY', None) is None, reason='need s3 config!' -) -def test_multi_bucket_s3_reader_writer(): - """test multi bucket s3 reader writer must config s3 config in the - environment export S3_BUCKET=xxx export S3_ACCESS_KEY=xxx export - S3_SECRET_KEY=xxx export S3_ENDPOINT=xxx.""" - bucket = os.getenv('S3_BUCKET', '') - ak = os.getenv('S3_ACCESS_KEY', '') - sk = os.getenv('S3_SECRET_KEY', '') - endpoint_url = os.getenv('S3_ENDPOINT', '') - - reader = S3DataReader(bucket=bucket, ak=ak, sk=sk, endpoint_url=endpoint_url) - writer = S3DataWriter(bucket=bucket, ak=ak, sk=sk, endpoint_url=endpoint_url) - - bits = reader.read('meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl') - - assert bits == reader.read( - f's3://{bucket}/meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl' - ) - - bits = reader.read( - 'meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl?bytes=566,713' - ) - assert bits == reader.read_at( - 'meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl', 566, 713 - ) - assert len(json.loads(bits)) > 0 - - writer.write_string( - 'unittest/data/data_reader_writer/multi_bucket_s3_data/test01.txt', 'abc' - ) - - assert 'abc'.encode() == reader.read( - 'unittest/data/data_reader_writer/multi_bucket_s3_data/test01.txt' - ) - - writer.write( - f'{bucket}/unittest/data/data_reader_writer/multi_bucket_s3_data/test02.txt', - '123'.encode(), - ) - - assert '123'.encode() == reader.read( - 'unittest/data/data_reader_writer/multi_bucket_s3_data/test02.txt' - ) diff --git a/tests/test_data/io/__init__.py b/tests/test_data/io/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/test_data/io/test_s3.py b/tests/test_data/io/test_s3.py deleted file mode 100644 index ce84a2a82..000000000 --- a/tests/test_data/io/test_s3.py +++ /dev/null @@ -1,55 +0,0 @@ -import json -import os - -import pytest - -from magic_pdf.data.io.s3 import S3Reader, S3Writer - - -@pytest.mark.skipif( - os.getenv('S3_ACCESS_KEY', None) is None, reason='s3 config not found' -) -def test_s3_reader(): - """test s3 reader. - - must config s3 config in the environment export S3_BUCKET=xxx export S3_ACCESS_KEY=xxx export S3_SECRET_KEY=xxx - export S3_ENDPOINT=xxx - """ - - bucket = os.getenv('S3_BUCKET', '') - ak = os.getenv('S3_ACCESS_KEY', '') - sk = os.getenv('S3_SECRET_KEY', '') - endpoint_url = os.getenv('S3_ENDPOINT', '') - reader = S3Reader(bucket=bucket, ak=ak, sk=sk, endpoint_url=endpoint_url) - bits = reader.read( - 'meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl' - ) - assert len(bits) > 0 - - bits = reader.read_at( - 'meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl', - 566, - 713, - ) - assert len(json.loads(bits)) > 0 - - -@pytest.mark.skipif( - os.getenv('S3_ACCESS_KEY', None) is None, reason='s3 config not found' -) -def test_s3_writer(): - """test s3 reader. - - must config s3 config in the environment export S3_BUCKET=xxx export S3_ACCESS_KEY=xxx export S3_SECRET_KEY=xxx - export S3_ENDPOINT=xxx - """ - bucket = os.getenv('S3_BUCKET', '') - ak = os.getenv('S3_ACCESS_KEY', '') - sk = os.getenv('S3_SECRET_KEY', '') - endpoint_url = os.getenv('S3_ENDPOINT', '') - writer = S3Writer(bucket=bucket, ak=ak, sk=sk, endpoint_url=endpoint_url) - test_fn = 'unittest/io/test.jsonl' - writer.write(test_fn, '123'.encode()) - reader = S3Reader(bucket=bucket, ak=ak, sk=sk, endpoint_url=endpoint_url) - bits = reader.read(test_fn) - assert bits.decode() == '123' diff --git a/tests/test_data/test_dataset.py b/tests/test_data/test_dataset.py deleted file mode 100644 index 8e3b186cc..000000000 --- a/tests/test_data/test_dataset.py +++ /dev/null @@ -1,18 +0,0 @@ - -from magic_pdf.data.dataset import ImageDataset, PymuDocDataset - - -def test_pymudataset(): - with open('tests/test_data/assets/pdfs/test_01.pdf', 'rb') as f: - bits = f.read() - datasets = PymuDocDataset(bits) - assert len(datasets) > 0 - assert datasets.get_page(0).get_page_info().h > 100 - - -def test_imagedataset(): - with open('tests/test_data/assets/pngs/test_01.png', 'rb') as f: - bits = f.read() - datasets = ImageDataset(bits) - assert len(datasets) == 1 - assert datasets.get_page(0).get_page_info().w > 100 diff --git a/tests/test_data/test_read_api.py b/tests/test_data/test_read_api.py deleted file mode 100644 index a8fcf356c..000000000 --- a/tests/test_data/test_read_api.py +++ /dev/null @@ -1,78 +0,0 @@ -import os - -import pytest - -from magic_pdf.data.data_reader_writer import MultiBucketS3DataReader -from magic_pdf.data.read_api import (read_jsonl, read_local_images, - read_local_pdfs) -from magic_pdf.data.schemas import S3Config - - -def test_read_local_pdfs(): - datasets = read_local_pdfs('tests/test_data/assets/pdfs') - assert len(datasets) == 2 - assert len(datasets[0]) > 0 - assert len(datasets[1]) > 0 - - assert datasets[0].get_page(0).get_page_info().w > 0 - assert datasets[0].get_page(0).get_page_info().h > 0 - - -def test_read_local_images(): - datasets = read_local_images('tests/test_data/assets/pngs', suffixes=['png']) - assert len(datasets) == 2 - assert len(datasets[0]) == 1 - assert len(datasets[1]) == 1 - - assert datasets[0].get_page(0).get_page_info().w > 0 - assert datasets[0].get_page(0).get_page_info().h > 0 - - -@pytest.mark.skipif( - os.getenv('S3_ACCESS_KEY_2', None) is None, reason='need s3 config!' -) -def test_read_json(): - """test multi bucket s3 reader writer must config s3 config in the - environment export S3_BUCKET=xxx export S3_ACCESS_KEY=xxx export - S3_SECRET_KEY=xxx export S3_ENDPOINT=xxx. - - export S3_BUCKET_2=xxx export S3_ACCESS_KEY_2=xxx export S3_SECRET_KEY_2=xxx export S3_ENDPOINT_2=xxx - """ - bucket = os.getenv('S3_BUCKET', '') - ak = os.getenv('S3_ACCESS_KEY', '') - sk = os.getenv('S3_SECRET_KEY', '') - endpoint_url = os.getenv('S3_ENDPOINT', '') - - bucket_2 = os.getenv('S3_BUCKET_2', '') - ak_2 = os.getenv('S3_ACCESS_KEY_2', '') - sk_2 = os.getenv('S3_SECRET_KEY_2', '') - endpoint_url_2 = os.getenv('S3_ENDPOINT_2', '') - - s3configs = [ - S3Config( - bucket_name=bucket, access_key=ak, secret_key=sk, endpoint_url=endpoint_url - ), - S3Config( - bucket_name=bucket_2, - access_key=ak_2, - secret_key=sk_2, - endpoint_url=endpoint_url_2, - ), - ] - - reader = MultiBucketS3DataReader(bucket, s3configs) - - datasets = read_jsonl( - f's3://{bucket}/meta-index/scihub/v001/scihub/part-66210c190659-000026.jsonl', - reader, - ) - assert len(datasets) > 0 - assert len(datasets[0]) == 10 - - datasets = read_jsonl('tests/test_data/assets/jsonl/test_01.jsonl', reader) - assert len(datasets) == 1 - assert len(datasets[0]) == 10 - - datasets = read_jsonl('tests/test_data/assets/jsonl/test_02.jsonl') - assert len(datasets) == 1 - assert len(datasets[0]) == 1 diff --git a/tests/test_footnote/footnote_bookid.txt b/tests/test_footnote/footnote_bookid.txt deleted file mode 100644 index 55d34f3ed..000000000 --- a/tests/test_footnote/footnote_bookid.txt +++ /dev/null @@ -1,28 +0,0 @@ -demo_parse_pdf(book_name="scihub/scihub_09700000/libgen.scimag09782000-09782999.zip_10.1111/j.1540-627x.2006.00176.x") -demo_parse_pdf(book_name="scihub/scihub_17400000/libgen.scimag17488000-17488999.zip_10.1016/s0043-1354(02)00581-x") -demo_parse_pdf(book_name="scihub/scihub_17000000/libgen.scimag17000000-17000999.zip_10.1016/j.pain.2004.06.005") -demo_parse_pdf(book_name="scihub/scihub_46700000/libgen.scimag46727000-46727999.zip_10.2174/157341210791202627") -demo_parse_pdf(book_name="scihub/scihub_64600000/libgen.scimag64628000-64628999.zip_10.3892/mmr.2017.6343") -demo_parse_pdf(book_name="scihub/scihub_47200000/libgen.scimag47212000-47212999.zip_10.7589/0090-3558-40.3.579") -demo_parse_pdf(book_name="scihub/scihub_43600000/libgen.scimag43628000-43628999.zip_10.1093/toxsci/kfi111") -demo_parse_pdf(book_name="scihub/scihub_14000000/libgen.scimag14081000-14081999.zip_10.1016/s0923-4748(00)00034-5") -demo_parse_pdf(book_name="scihub/scihub_55700000/libgen.scimag55717000-55717999.zip_10.1007/s10067-016-3303-0") -demo_parse_pdf(book_name="scihub/scihub_86500000/libgen.scimag86560000-86560999.zip_10.1007/s10995-021-03207-2") -demo_parse_pdf(book_name="scihub/scihub_42100000/libgen.scimag42162000-42162999.zip_10.1093/notesj/gjm116") -demo_parse_pdf(book_name="scihub/scihub_07500000/libgen.scimag07500000-07500999.zip_10.1007/s00412-005-0007-7") -demo_parse_pdf(book_name="scihub/scihub_50800000/libgen.scimag50827000-50827999.zip_10.1210/jc.2015-4251") -demo_parse_pdf(book_name="scihub/scihub_07500000/libgen.scimag07537000-07537999.zip_10.1007/s004320050323") -demo_parse_pdf(book_name="scihub/scihub_24600000/libgen.scimag24665000-24665999.zip_10.1016/S0387-7604(89)80007-5") -demo_parse_pdf(book_name="scihub/scihub_76200000/libgen.scimag76297000-76297999.zip_10.4018/jehmc.2011040101") -demo_parse_pdf(book_name="scihub/scihub_29400000/libgen.scimag29456000-29456999.zip_10.1177/0883911505049656") -demo_parse_pdf(book_name="scihub/scihub_30200000/libgen.scimag30263000-30263999.zip_10.1081/scc-200036639") -demo_parse_pdf(book_name="scihub/scihub_71200000/libgen.scimag71224000-71224999.zip_10.1038/s41396-018-0231-9") -demo_parse_pdf(book_name="scihub/scihub_30100000/libgen.scimag30175000-30175999.zip_10.1300/j035v17n04_03") -demo_parse_pdf(book_name="scihub/scihub_18900000/libgen.scimag18981000-18981999.zip_10.1016/j.neuroimage.2006.06.030") -demo_parse_pdf(book_name="scihub/scihub_53100000/libgen.scimag53119000-53119999.zip_10.1097/01.npt.0000282350.63993.7a") -demo_parse_pdf(book_name="scihub/scihub_10000000/libgen.scimag10071000-10071999.zip_10.1111/j.1750-8606.2011.00190.x") -demo_parse_pdf(book_name="scihub/scihub_64000000/libgen.scimag64030000-64030999.zip_10.1080/1612197X.2017.1292302") -demo_parse_pdf(book_name="scihub/scihub_86000000/libgen.scimag86085000-86085999.zip_10.1016/j.enzmictec.2020.109742") -demo_parse_pdf(book_name="scihub/scihub_51000000/libgen.scimag51049000-51049999.zip_10.1117/12.2227997") -demo_parse_pdf(book_name="scihub/scihub_43700000/libgen.scimag43768000-43768999.zip_10.1063/1.4895640") -demo_parse_pdf(book_name="scihub/scihub_05000000/libgen.scimag05036000-05036999.zip_10.1046/j.1365-2036.2000.00699.x") \ No newline at end of file diff --git a/tests/test_integrations/test_rag/assets/middle.json b/tests/test_integrations/test_rag/assets/middle.json deleted file mode 100644 index 44d3e06ca..000000000 --- a/tests/test_integrations/test_rag/assets/middle.json +++ /dev/null @@ -1,2302 +0,0 @@ -{ - "pdf_info": [ - { - "preproc_blocks": [ - { - "type": "text", - "bbox": [ - 47, - 57, - 299, - 93 - ], - "lines": [ - { - "bbox": [ - 47, - 57, - 299, - 68 - ], - "spans": [ - { - "bbox": [ - 49, - 57, - 298, - 68 - ], - "score": 0.98, - "content": "of the synthetic stereo scene from a single camera perspective", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 71, - 299, - 80 - ], - "spans": [ - { - "bbox": [ - 49, - 71, - 299, - 80 - ], - "score": 0.96, - "content": "along with the ground truth disparity,occlusion map,and", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 82, - 123, - 93 - ], - "spans": [ - { - "bbox": [ - 49, - 82, - 123, - 93 - ], - "score": 0.99, - "content": "discontinuitymap.", - "type": "text" - } - ] - } - ] - }, - { - "type": "image", - "bbox": [ - 47, - 100, - 301, - 535 - ], - "blocks": [ - { - "bbox": [ - 51, - 100, - 292, - 484 - ], - "type": "image_body", - "lines": [ - { - "bbox": [ - 51, - 100, - 292, - 484 - ], - "spans": [ - { - "bbox": [ - 51, - 100, - 292, - 484 - ], - "score": 0.9999815225601196, - "type": "image", - "image_path": "b07d74524eac6f46b5505b48b1e10db23f2b45cb2d21d5fec72e967e61255811.jpg" - } - ] - } - ] - }, - { - "bbox": [ - 47, - 488, - 301, - 535 - ], - "type": "image_caption", - "lines": [ - { - "bbox": [ - 49, - 490, - 299, - 499 - ], - "spans": [ - { - "bbox": [ - 49, - 490, - 299, - 499 - ], - "score": 1.0, - "content": "Figure2:Twosampleframesfromthesyntheticvideose-", - "type": "text" - } - ] - }, - { - "bbox": [ - 48, - 501, - 300, - 512 - ], - "spans": [ - { - "bbox": [ - 48, - 501, - 300, - 512 - ], - "score": 1.0, - "content": "quence (1st row), along with their corresponding ground truth", - "type": "text" - } - ] - }, - { - "bbox": [ - 48, - 513, - 299, - 523 - ], - "spans": [ - { - "bbox": [ - 48, - 513, - 299, - 523 - ], - "score": 0.98, - "content": "disparity (2nd row), occlusion map (3rd row), and discontinuity", - "type": "text" - } - ] - }, - { - "bbox": [ - 48, - 525, - 110, - 535 - ], - "spans": [ - { - "bbox": [ - 48, - 525, - 110, - 535 - ], - "score": 0.99, - "content": "map (4th row).", - "type": "text" - } - ] - } - ] - } - ] - }, - { - "type": "text", - "bbox": [ - 47, - 549, - 299, - 678 - ], - "lines": [ - { - "bbox": [ - 58, - 549, - 299, - 558 - ], - "spans": [ - { - "bbox": [ - 58, - 549, - 298, - 558 - ], - "score": 0.98, - "content": "Theresultsof temporalstereomatching aregiveninFigure", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 561, - 299, - 570 - ], - "spans": [ - { - "bbox": [ - 47, - 561, - 298, - 570 - ], - "score": 0.98, - "content": "3foruniformadditivenoiseconfinedtotherangesof±O", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 573, - 299, - 582 - ], - "spans": [ - { - "bbox": [ - 49, - 573, - 299, - 582 - ], - "score": 0.96, - "content": "±20, and ±40. Each performance plot is given as a function", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 585, - 299, - 594 - ], - "spans": [ - { - "bbox": [ - 48, - 585, - 299, - 594 - ], - "score": 0.95, - "content": "of the feedback coefficient X. As with the majority of temporal", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 597, - 299, - 606 - ], - "spans": [ - { - "bbox": [ - 49, - 597, - 299, - 606 - ], - "score": 0.99, - "content": "stereomatching methods,improvements are negligible when", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 609, - 299, - 618 - ], - "spans": [ - { - "bbox": [ - 48, - 609, - 299, - 618 - ], - "score": 0.97, - "content": "no noise is added to the images [1o], [19]. This is largely due", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 621, - 299, - 629 - ], - "spans": [ - { - "bbox": [ - 48, - 621, - 299, - 629 - ], - "score": 1.0, - "content": "tothefactthatthevideousedtoevaluatethesemethodsis", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 633, - 299, - 641 - ], - "spans": [ - { - "bbox": [ - 48, - 633, - 299, - 641 - ], - "score": 1.0, - "content": "computergeneratedwithverylittlenoisetostartwith,thus", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 644, - 299, - 654 - ], - "spans": [ - { - "bbox": [ - 48, - 644, - 299, - 654 - ], - "score": 0.98, - "content": "the noise suppression achieved with temporal stereo matching", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 657, - 299, - 666 - ], - "spans": [ - { - "bbox": [ - 48, - 657, - 299, - 666 - ], - "score": 0.98, - "content": "showslittletonoimprovementovermethodsthatoperate on", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 669, - 113, - 678 - ], - "spans": [ - { - "bbox": [ - 48, - 669, - 113, - 678 - ], - "score": 1.0, - "content": "pairsofimages.", - "type": "text" - } - ] - } - ] - }, - { - "type": "text", - "bbox": [ - 47, - 680, - 299, - 725 - ], - "lines": [ - { - "bbox": [ - 58, - 680, - 299, - 690 - ], - "spans": [ - { - "bbox": [ - 59, - 680, - 298, - 690 - ], - "score": 0.97, - "content": "Significantimprovementsin accuracy canbeseenin Figure", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 692, - 299, - 701 - ], - "spans": [ - { - "bbox": [ - 48, - 692, - 298, - 701 - ], - "score": 0.97, - "content": "3 when the noise has ranges of ±20, and ±40.In this scenario", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 703, - 299, - 714 - ], - "spans": [ - { - "bbox": [ - 48, - 703, - 299, - 714 - ], - "score": 0.98, - "content": "the effect of noise in the current frame is reduced by increasing", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 716, - 299, - 725 - ], - "spans": [ - { - "bbox": [ - 48, - 716, - 299, - 725 - ], - "score": 0.96, - "content": "thefeedbackcoefficientX.Thisincreasing ofXhas theeffect", - "type": "text" - } - ] - } - ] - }, - { - "type": "image", - "bbox": [ - 310, - 55, - 564, - 371 - ], - "blocks": [ - { - "bbox": [ - 314, - 55, - 538, - 305 - ], - "type": "image_body", - "lines": [ - { - "bbox": [ - 314, - 55, - 538, - 305 - ], - "spans": [ - { - "bbox": [ - 314, - 55, - 538, - 305 - ], - "score": 0.9999905824661255, - "type": "image", - "image_path": "c7539af438972442d0f86aa46409e6684338ddfd1fbfd6bdacf02220853ccb55.jpg" - } - ] - } - ] - }, - { - "bbox": [ - 310, - 311, - 564, - 371 - ], - "type": "image_caption", - "lines": [ - { - "bbox": [ - 312, - 313, - 562, - 322 - ], - "spans": [ - { - "bbox": [ - 312, - 313, - 562, - 322 - ], - "score": 0.97, - "content": "Figure 3: Performance of temporal matching at different levels", - "type": "text" - } - ] - }, - { - "bbox": [ - 312, - 325, - 561, - 334 - ], - "spans": [ - { - "bbox": [ - 312, - 325, - 561, - 334 - ], - "score": 0.98, - "content": "of uniformly distributed image noise{±0,±20,±40}.Mean", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 336, - 563, - 347 - ], - "spans": [ - { - "bbox": [ - 311, - 336, - 563, - 347 - ], - "score": 0.99, - "content": "squared error (MSE) of disparities is plotted versus the values", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 348, - 561, - 358 - ], - "spans": [ - { - "bbox": [ - 311, - 348, - 561, - 358 - ], - "score": 0.96, - "content": "of the feedback coefficient X. Dashed lines correspond to the", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 360, - 535, - 371 - ], - "spans": [ - { - "bbox": [ - 311, - 360, - 535, - 371 - ], - "score": 0.96, - "content": "values of MSE obtained without temporal aggregation.", - "type": "text" - } - ] - } - ] - } - ] - }, - { - "type": "image", - "bbox": [ - 310, - 418, - 563, - 666 - ], - "blocks": [ - { - "bbox": [ - 314, - 418, - 549, - 623 - ], - "type": "image_body", - "lines": [ - { - "bbox": [ - 314, - 418, - 549, - 623 - ], - "spans": [ - { - "bbox": [ - 314, - 418, - 549, - 623 - ], - "score": 0.9999067783355713, - "type": "image", - "image_path": "9ac4db9197801de4a20dbc9ea17bc0c53afb7290dc8b5b45d9e92e830566cb14.jpg" - } - ] - } - ] - }, - { - "bbox": [ - 310, - 630, - 563, - 666 - ], - "type": "image_caption", - "lines": [ - { - "bbox": [ - 312, - 631, - 562, - 641 - ], - "spans": [ - { - "bbox": [ - 312, - 631, - 562, - 641 - ], - "score": 0.94, - "content": "Figure 4:Optimal values of the feedback coefficient \\ cor-", - "type": "text" - } - ] - }, - { - "bbox": [ - 312, - 644, - 561, - 652 - ], - "spans": [ - { - "bbox": [ - 312, - 644, - 561, - 652 - ], - "score": 0.97, - "content": "responding to the smallest mean squared error (MSE)of the", - "type": "text" - } - ] - }, - { - "bbox": [ - 312, - 655, - 513, - 665 - ], - "spans": [ - { - "bbox": [ - 312, - 655, - 513, - 665 - ], - "score": 0.97, - "content": "disparity estimates for a range of noise strengths.", - "type": "text" - } - ] - } - ] - } - ] - }, - { - "type": "text", - "bbox": [ - 311, - 692, - 563, - 725 - ], - "lines": [ - { - "bbox": [ - 311, - 692, - 563, - 702 - ], - "spans": [ - { - "bbox": [ - 311, - 692, - 562, - 702 - ], - "score": 0.95, - "content": "of averaging out noise in the per-pixel costs by selecting", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 704, - 563, - 713 - ], - "spans": [ - { - "bbox": [ - 311, - 704, - 562, - 713 - ], - "score": 0.98, - "content": "matches based more heavily upon the auxiliary cost, which", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 716, - 563, - 725 - ], - "spans": [ - { - "bbox": [ - 311, - 716, - 563, - 725 - ], - "score": 0.97, - "content": "is essentially a much more stable running average of the cost", - "type": "text" - } - ] - } - ] - } - ], - "layout_bboxes": [ - { - "layout_bbox": [ - 47, - 55, - 301, - 726 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 310, - 55, - 564, - 726 - ], - "layout_label": "V", - "sub_layout": [] - } - ], - "page_idx": 0, - "page_size": [ - 612.0, - 792.0 - ], - "_layout_tree": [ - { - "layout_bbox": [ - 0, - 55, - 612.0, - 726 - ], - "layout_label": "V", - "sub_layout": [ - { - "layout_bbox": [ - 47, - 55, - 564, - 726 - ], - "layout_label": "H", - "sub_layout": [ - { - "layout_bbox": [ - 47, - 55, - 301, - 726 - ], - "layout_label": "V", - "sub_layout": [] - }, - { - "layout_bbox": [ - 310, - 55, - 564, - 726 - ], - "layout_label": "V", - "sub_layout": [] - } - ] - } - ] - } - ], - "images": [ - { - "type": "image", - "bbox": [ - 47, - 100, - 301, - 535 - ], - "blocks": [ - { - "bbox": [ - 51, - 100, - 292, - 484 - ], - "type": "image_body", - "lines": [ - { - "bbox": [ - 51, - 100, - 292, - 484 - ], - "spans": [ - { - "bbox": [ - 51, - 100, - 292, - 484 - ], - "score": 0.9999815225601196, - "type": "image", - "image_path": "b07d74524eac6f46b5505b48b1e10db23f2b45cb2d21d5fec72e967e61255811.jpg" - } - ] - } - ] - }, - { - "bbox": [ - 47, - 488, - 301, - 535 - ], - "type": "image_caption", - "lines": [ - { - "bbox": [ - 49, - 490, - 299, - 499 - ], - "spans": [ - { - "bbox": [ - 49, - 490, - 299, - 499 - ], - "score": 1.0, - "content": "Figure2:Twosampleframesfromthesyntheticvideose-", - "type": "text" - } - ] - }, - { - "bbox": [ - 48, - 501, - 300, - 512 - ], - "spans": [ - { - "bbox": [ - 48, - 501, - 300, - 512 - ], - "score": 1.0, - "content": "quence (1st row), along with their corresponding ground truth", - "type": "text" - } - ] - }, - { - "bbox": [ - 48, - 513, - 299, - 523 - ], - "spans": [ - { - "bbox": [ - 48, - 513, - 299, - 523 - ], - "score": 0.98, - "content": "disparity (2nd row), occlusion map (3rd row), and discontinuity", - "type": "text" - } - ] - }, - { - "bbox": [ - 48, - 525, - 110, - 535 - ], - "spans": [ - { - "bbox": [ - 48, - 525, - 110, - 535 - ], - "score": 0.99, - "content": "map (4th row).", - "type": "text" - } - ] - } - ] - } - ] - }, - { - "type": "image", - "bbox": [ - 310, - 55, - 564, - 371 - ], - "blocks": [ - { - "bbox": [ - 314, - 55, - 538, - 305 - ], - "type": "image_body", - "lines": [ - { - "bbox": [ - 314, - 55, - 538, - 305 - ], - "spans": [ - { - "bbox": [ - 314, - 55, - 538, - 305 - ], - "score": 0.9999905824661255, - "type": "image", - "image_path": "c7539af438972442d0f86aa46409e6684338ddfd1fbfd6bdacf02220853ccb55.jpg" - } - ] - } - ] - }, - { - "bbox": [ - 310, - 311, - 564, - 371 - ], - "type": "image_caption", - "lines": [ - { - "bbox": [ - 312, - 313, - 562, - 322 - ], - "spans": [ - { - "bbox": [ - 312, - 313, - 562, - 322 - ], - "score": 0.97, - "content": "Figure 3: Performance of temporal matching at different levels", - "type": "text" - } - ] - }, - { - "bbox": [ - 312, - 325, - 561, - 334 - ], - "spans": [ - { - "bbox": [ - 312, - 325, - 561, - 334 - ], - "score": 0.98, - "content": "of uniformly distributed image noise{±0,±20,±40}.Mean", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 336, - 563, - 347 - ], - "spans": [ - { - "bbox": [ - 311, - 336, - 563, - 347 - ], - "score": 0.99, - "content": "squared error (MSE) of disparities is plotted versus the values", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 348, - 561, - 358 - ], - "spans": [ - { - "bbox": [ - 311, - 348, - 561, - 358 - ], - "score": 0.96, - "content": "of the feedback coefficient X. Dashed lines correspond to the", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 360, - 535, - 371 - ], - "spans": [ - { - "bbox": [ - 311, - 360, - 535, - 371 - ], - "score": 0.96, - "content": "values of MSE obtained without temporal aggregation.", - "type": "text" - } - ] - } - ] - } - ] - }, - { - "type": "image", - "bbox": [ - 310, - 418, - 563, - 666 - ], - "blocks": [ - { - "bbox": [ - 314, - 418, - 549, - 623 - ], - "type": "image_body", - "lines": [ - { - "bbox": [ - 314, - 418, - 549, - 623 - ], - "spans": [ - { - "bbox": [ - 314, - 418, - 549, - 623 - ], - "score": 0.9999067783355713, - "type": "image", - "image_path": "9ac4db9197801de4a20dbc9ea17bc0c53afb7290dc8b5b45d9e92e830566cb14.jpg" - } - ] - } - ] - }, - { - "bbox": [ - 310, - 630, - 563, - 666 - ], - "type": "image_caption", - "lines": [ - { - "bbox": [ - 312, - 631, - 562, - 641 - ], - "spans": [ - { - "bbox": [ - 312, - 631, - 562, - 641 - ], - "score": 0.94, - "content": "Figure 4:Optimal values of the feedback coefficient \\ cor-", - "type": "text" - } - ] - }, - { - "bbox": [ - 312, - 644, - 561, - 652 - ], - "spans": [ - { - "bbox": [ - 312, - 644, - 561, - 652 - ], - "score": 0.97, - "content": "responding to the smallest mean squared error (MSE)of the", - "type": "text" - } - ] - }, - { - "bbox": [ - 312, - 655, - 513, - 665 - ], - "spans": [ - { - "bbox": [ - 312, - 655, - 513, - 665 - ], - "score": 0.97, - "content": "disparity estimates for a range of noise strengths.", - "type": "text" - } - ] - } - ] - } - ] - } - ], - "tables": [], - "interline_equations": [], - "discarded_blocks": [], - "need_drop": false, - "drop_reason": [], - "para_blocks": [ - { - "type": "text", - "bbox": [ - 47, - 57, - 299, - 93 - ], - "lines": [ - { - "bbox": [ - 47, - 57, - 299, - 68 - ], - "spans": [ - { - "bbox": [ - 49, - 57, - 298, - 68 - ], - "score": 0.98, - "content": "of the synthetic stereo scene from a single camera perspective", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 71, - 299, - 80 - ], - "spans": [ - { - "bbox": [ - 49, - 71, - 299, - 80 - ], - "score": 0.96, - "content": "along with the ground truth disparity,occlusion map,and", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 82, - 123, - 93 - ], - "spans": [ - { - "bbox": [ - 49, - 82, - 123, - 93 - ], - "score": 0.99, - "content": "discontinuitymap.", - "type": "text" - } - ] - } - ] - }, - { - "type": "image", - "bbox": [ - 47, - 100, - 301, - 535 - ], - "blocks": [ - { - "bbox": [ - 51, - 100, - 292, - 484 - ], - "type": "image_body", - "lines": [ - { - "bbox": [ - 51, - 100, - 292, - 484 - ], - "spans": [ - { - "bbox": [ - 51, - 100, - 292, - 484 - ], - "score": 0.9999815225601196, - "type": "image", - "image_path": "b07d74524eac6f46b5505b48b1e10db23f2b45cb2d21d5fec72e967e61255811.jpg" - } - ] - } - ] - }, - { - "bbox": [ - 47, - 488, - 301, - 535 - ], - "type": "image_caption", - "lines": [ - { - "bbox": [ - 49, - 490, - 299, - 499 - ], - "spans": [ - { - "bbox": [ - 49, - 490, - 299, - 499 - ], - "score": 1.0, - "content": "Figure2:Twosampleframesfromthesyntheticvideose-", - "type": "text" - } - ] - }, - { - "bbox": [ - 48, - 501, - 300, - 512 - ], - "spans": [ - { - "bbox": [ - 48, - 501, - 300, - 512 - ], - "score": 1.0, - "content": "quence (1st row), along with their corresponding ground truth", - "type": "text" - } - ] - }, - { - "bbox": [ - 48, - 513, - 299, - 523 - ], - "spans": [ - { - "bbox": [ - 48, - 513, - 299, - 523 - ], - "score": 0.98, - "content": "disparity (2nd row), occlusion map (3rd row), and discontinuity", - "type": "text" - } - ] - }, - { - "bbox": [ - 48, - 525, - 110, - 535 - ], - "spans": [ - { - "bbox": [ - 48, - 525, - 110, - 535 - ], - "score": 0.99, - "content": "map (4th row).", - "type": "text" - } - ] - } - ] - } - ] - }, - { - "type": "text", - "bbox": [ - 47, - 549, - 299, - 678 - ], - "lines": [ - { - "bbox": [ - 58, - 549, - 299, - 558 - ], - "spans": [ - { - "bbox": [ - 58, - 549, - 298, - 558 - ], - "score": 0.98, - "content": "Theresultsof temporalstereomatching aregiveninFigure", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 561, - 299, - 570 - ], - "spans": [ - { - "bbox": [ - 47, - 561, - 298, - 570 - ], - "score": 0.98, - "content": "3foruniformadditivenoiseconfinedtotherangesof±O", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 573, - 299, - 582 - ], - "spans": [ - { - "bbox": [ - 49, - 573, - 299, - 582 - ], - "score": 0.96, - "content": "±20, and ±40. Each performance plot is given as a function", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 585, - 299, - 594 - ], - "spans": [ - { - "bbox": [ - 48, - 585, - 299, - 594 - ], - "score": 0.95, - "content": "of the feedback coefficient X. As with the majority of temporal", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 597, - 299, - 606 - ], - "spans": [ - { - "bbox": [ - 49, - 597, - 299, - 606 - ], - "score": 0.99, - "content": "stereomatching methods,improvements are negligible when", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 609, - 299, - 618 - ], - "spans": [ - { - "bbox": [ - 48, - 609, - 299, - 618 - ], - "score": 0.97, - "content": "no noise is added to the images [1o], [19]. This is largely due", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 621, - 299, - 629 - ], - "spans": [ - { - "bbox": [ - 48, - 621, - 299, - 629 - ], - "score": 1.0, - "content": "tothefactthatthevideousedtoevaluatethesemethodsis", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 633, - 299, - 641 - ], - "spans": [ - { - "bbox": [ - 48, - 633, - 299, - 641 - ], - "score": 1.0, - "content": "computergeneratedwithverylittlenoisetostartwith,thus", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 644, - 299, - 654 - ], - "spans": [ - { - "bbox": [ - 48, - 644, - 299, - 654 - ], - "score": 0.98, - "content": "the noise suppression achieved with temporal stereo matching", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 657, - 299, - 666 - ], - "spans": [ - { - "bbox": [ - 48, - 657, - 299, - 666 - ], - "score": 0.98, - "content": "showslittletonoimprovementovermethodsthatoperate on", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 669, - 113, - 678 - ], - "spans": [ - { - "bbox": [ - 48, - 669, - 113, - 678 - ], - "score": 1.0, - "content": "pairsofimages.", - "type": "text" - } - ] - } - ] - }, - { - "type": "text", - "bbox": [ - 47, - 680, - 299, - 725 - ], - "lines": [ - { - "bbox": [ - 58, - 680, - 299, - 690 - ], - "spans": [ - { - "bbox": [ - 59, - 680, - 298, - 690 - ], - "score": 0.97, - "content": "Significantimprovementsin accuracy canbeseenin Figure", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 692, - 299, - 701 - ], - "spans": [ - { - "bbox": [ - 48, - 692, - 298, - 701 - ], - "score": 0.97, - "content": "3 when the noise has ranges of ±20, and ±40.In this scenario", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 703, - 299, - 714 - ], - "spans": [ - { - "bbox": [ - 48, - 703, - 299, - 714 - ], - "score": 0.98, - "content": "the effect of noise in the current frame is reduced by increasing", - "type": "text" - } - ] - }, - { - "bbox": [ - 47, - 716, - 299, - 725 - ], - "spans": [ - { - "bbox": [ - 48, - 716, - 299, - 725 - ], - "score": 0.96, - "content": "thefeedbackcoefficientX.Thisincreasing ofXhas theeffect", - "type": "text" - } - ] - } - ] - }, - { - "type": "image", - "bbox": [ - 310, - 55, - 564, - 371 - ], - "blocks": [ - { - "bbox": [ - 314, - 55, - 538, - 305 - ], - "type": "image_body", - "lines": [ - { - "bbox": [ - 314, - 55, - 538, - 305 - ], - "spans": [ - { - "bbox": [ - 314, - 55, - 538, - 305 - ], - "score": 0.9999905824661255, - "type": "image", - "image_path": "c7539af438972442d0f86aa46409e6684338ddfd1fbfd6bdacf02220853ccb55.jpg" - } - ] - } - ] - }, - { - "bbox": [ - 310, - 311, - 564, - 371 - ], - "type": "image_caption", - "lines": [ - { - "bbox": [ - 312, - 313, - 562, - 322 - ], - "spans": [ - { - "bbox": [ - 312, - 313, - 562, - 322 - ], - "score": 0.97, - "content": "Figure 3: Performance of temporal matching at different levels", - "type": "text" - } - ] - }, - { - "bbox": [ - 312, - 325, - 561, - 334 - ], - "spans": [ - { - "bbox": [ - 312, - 325, - 561, - 334 - ], - "score": 0.98, - "content": "of uniformly distributed image noise{±0,±20,±40}.Mean", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 336, - 563, - 347 - ], - "spans": [ - { - "bbox": [ - 311, - 336, - 563, - 347 - ], - "score": 0.99, - "content": "squared error (MSE) of disparities is plotted versus the values", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 348, - 561, - 358 - ], - "spans": [ - { - "bbox": [ - 311, - 348, - 561, - 358 - ], - "score": 0.96, - "content": "of the feedback coefficient X. Dashed lines correspond to the", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 360, - 535, - 371 - ], - "spans": [ - { - "bbox": [ - 311, - 360, - 535, - 371 - ], - "score": 0.96, - "content": "values of MSE obtained without temporal aggregation.", - "type": "text" - } - ] - } - ] - } - ] - }, - { - "type": "image", - "bbox": [ - 310, - 418, - 563, - 666 - ], - "blocks": [ - { - "bbox": [ - 314, - 418, - 549, - 623 - ], - "type": "image_body", - "lines": [ - { - "bbox": [ - 314, - 418, - 549, - 623 - ], - "spans": [ - { - "bbox": [ - 314, - 418, - 549, - 623 - ], - "score": 0.9999067783355713, - "type": "image", - "image_path": "9ac4db9197801de4a20dbc9ea17bc0c53afb7290dc8b5b45d9e92e830566cb14.jpg" - } - ] - } - ] - }, - { - "bbox": [ - 310, - 630, - 563, - 666 - ], - "type": "image_caption", - "lines": [ - { - "bbox": [ - 312, - 631, - 562, - 641 - ], - "spans": [ - { - "bbox": [ - 312, - 631, - 562, - 641 - ], - "score": 0.94, - "content": "Figure 4:Optimal values of the feedback coefficient \\ cor-", - "type": "text" - } - ] - }, - { - "bbox": [ - 312, - 644, - 561, - 652 - ], - "spans": [ - { - "bbox": [ - 312, - 644, - 561, - 652 - ], - "score": 0.97, - "content": "responding to the smallest mean squared error (MSE)of the", - "type": "text" - } - ] - }, - { - "bbox": [ - 312, - 655, - 513, - 665 - ], - "spans": [ - { - "bbox": [ - 312, - 655, - 513, - 665 - ], - "score": 0.97, - "content": "disparity estimates for a range of noise strengths.", - "type": "text" - } - ] - } - ] - } - ] - }, - { - "type": "text", - "bbox": [ - 311, - 692, - 563, - 725 - ], - "lines": [ - { - "bbox": [ - 311, - 692, - 563, - 702 - ], - "spans": [ - { - "bbox": [ - 311, - 692, - 562, - 702 - ], - "score": 0.95, - "content": "of averaging out noise in the per-pixel costs by selecting", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 704, - 563, - 713 - ], - "spans": [ - { - "bbox": [ - 311, - 704, - 562, - 713 - ], - "score": 0.98, - "content": "matches based more heavily upon the auxiliary cost, which", - "type": "text" - } - ] - }, - { - "bbox": [ - 311, - 716, - 563, - 725 - ], - "spans": [ - { - "bbox": [ - 311, - 716, - 563, - 725 - ], - "score": 0.97, - "content": "is essentially a much more stable running average of the cost", - "type": "text" - } - ] - } - ] - } - ] - } - ], - "_parse_type": "ocr", - "_version_name": "0.7.0b1" -} diff --git a/tests/test_integrations/test_rag/assets/one_page_with_table_image.2.pdf b/tests/test_integrations/test_rag/assets/one_page_with_table_image.2.pdf deleted file mode 100644 index b13662089..000000000 Binary files a/tests/test_integrations/test_rag/assets/one_page_with_table_image.2.pdf and /dev/null differ diff --git a/tests/test_integrations/test_rag/assets/one_page_with_table_image.pdf b/tests/test_integrations/test_rag/assets/one_page_with_table_image.pdf deleted file mode 100644 index 85fd9a7a2..000000000 Binary files a/tests/test_integrations/test_rag/assets/one_page_with_table_image.pdf and /dev/null differ diff --git a/tests/test_integrations/test_rag/test_api.py b/tests/test_integrations/test_rag/test_api.py deleted file mode 100644 index 99d30c075..000000000 --- a/tests/test_integrations/test_rag/test_api.py +++ /dev/null @@ -1,55 +0,0 @@ -import json -import os -import shutil -import tempfile - -from magic_pdf.integrations.rag.api import DataReader, RagDocumentReader -from magic_pdf.integrations.rag.type import CategoryType -from magic_pdf.integrations.rag.utils import \ - convert_middle_json_to_layout_elements - - -def test_rag_document_reader(): - # setup - unitest_dir = '/tmp/magic_pdf/unittest/integrations/rag' - os.makedirs(unitest_dir, exist_ok=True) - temp_output_dir = tempfile.mkdtemp(dir=unitest_dir) - os.makedirs(temp_output_dir, exist_ok=True) - - # test - with open('tests/test_integrations/test_rag/assets/middle.json') as f: - json_data = json.load(f) - res = convert_middle_json_to_layout_elements(json_data, temp_output_dir) - - doc = RagDocumentReader(res) - assert len(list(iter(doc))) == 1 - - page = list(iter(doc))[0] - assert len(list(iter(page))) == 10 - assert len(page.get_rel_map()) == 3 - - item = list(iter(page))[0] - assert item.category_type == CategoryType.text - - # teardown - shutil.rmtree(temp_output_dir) - - -def test_data_reader(): - # setup - unitest_dir = '/tmp/magic_pdf/unittest/integrations/rag' - os.makedirs(unitest_dir, exist_ok=True) - temp_output_dir = tempfile.mkdtemp(dir=unitest_dir) - os.makedirs(temp_output_dir, exist_ok=True) - - # test - data_reader = DataReader('tests/test_integrations/test_rag/assets', 'ocr', - temp_output_dir) - - assert data_reader.get_documents_count() == 2 - for idx in range(data_reader.get_documents_count()): - document = data_reader.get_document_result(idx) - assert document is not None - - # teardown - shutil.rmtree(temp_output_dir) diff --git a/tests/test_integrations/test_rag/test_utils.py b/tests/test_integrations/test_rag/test_utils.py deleted file mode 100644 index b18c1d8ea..000000000 --- a/tests/test_integrations/test_rag/test_utils.py +++ /dev/null @@ -1,57 +0,0 @@ -import json -import os -import shutil -import tempfile - -from magic_pdf.integrations.rag.type import CategoryType -from magic_pdf.integrations.rag.utils import ( - convert_middle_json_to_layout_elements, inference) - - -def test_convert_middle_json_to_layout_elements(): - # setup - unitest_dir = '/tmp/magic_pdf/unittest/integrations/rag' - os.makedirs(unitest_dir, exist_ok=True) - temp_output_dir = tempfile.mkdtemp(dir=unitest_dir) - os.makedirs(temp_output_dir, exist_ok=True) - - # test - with open('tests/test_integrations/test_rag/assets/middle.json') as f: - json_data = json.load(f) - res = convert_middle_json_to_layout_elements(json_data, temp_output_dir) - - assert len(res) == 1 - assert len(res[0].layout_dets) == 10 - assert res[0].layout_dets[0].anno_id == 0 - assert res[0].layout_dets[0].category_type == CategoryType.text - assert len(res[0].extra.element_relation) == 3 - - # teardown - shutil.rmtree(temp_output_dir) - - -def test_inference(): - - asset_dir = 'tests/test_integrations/test_rag/assets' - # setup - unitest_dir = '/tmp/magic_pdf/unittest/integrations/rag' - os.makedirs(unitest_dir, exist_ok=True) - temp_output_dir = tempfile.mkdtemp(dir=unitest_dir) - os.makedirs(temp_output_dir, exist_ok=True) - - # test - res = inference( - asset_dir + '/one_page_with_table_image.pdf', - temp_output_dir, - 'ocr', - ) - - assert res is not None - assert len(res) == 1 - assert len(res[0].layout_dets) == 10 - assert res[0].layout_dets[0].anno_id == 0 - assert res[0].layout_dets[0].category_type == CategoryType.text - assert len(res[0].extra.element_relation) == 3 - - # teardown - shutil.rmtree(temp_output_dir) diff --git a/tests/test_metascan_classify/test_classify.py b/tests/test_metascan_classify/test_classify.py deleted file mode 100644 index d400356e2..000000000 --- a/tests/test_metascan_classify/test_classify.py +++ /dev/null @@ -1,140 +0,0 @@ -import os - -import pytest - -from magic_pdf.filter.pdf_classify_by_type import classify_by_area, classify_by_text_len, classify_by_avg_words, \ - classify_by_img_num, classify_by_text_layout, classify_by_img_narrow_strips -from magic_pdf.filter.pdf_meta_scan import get_pdf_page_size_pts, get_pdf_textlen_per_page, get_imgs_per_page -from tests.test_commons import get_docs_from_test_pdf, get_test_json_data - -# 获取当前目录 -current_directory = os.path.dirname(os.path.abspath(__file__)) - -''' -根据图片尺寸占页面面积的比例,判断是否为扫描版 -''' -@pytest.mark.parametrize("book_name, expected_bool_classify_by_area", - [ - ("the_eye/the_eye_cdn_00391653", True), # 特殊文字版1.每页存储所有图片,特点是图片占页面比例不大,每页展示可能为0也可能不止1张 - ("scihub/scihub_08400000/libgen.scimag08489000-08489999.zip_10.1016/0370-1573(90)90070-i", False), # 特殊扫描版2,每页存储的扫描页图片数量递增,特点是图占比大,每页展示1张 - ("zlib/zlib_17216416", False), # 特殊扫描版3,有的页面是一整张大图,有的页面是通过一条条小图拼起来的,检测图片占比之前需要先按规则把小图拼成大图 - ("the_eye/the_eye_wtl_00023799", False), # 特殊扫描版4,每一页都是一张张小图拼出来的,检测图片占比之前需要先按规则把小图拼成大图 - ("the_eye/the_eye_cdn_00328381", False), # 特殊扫描版5,每一页都是一张张小图拼出来的,存在多个小图多次重复使用情况,检测图片占比之前需要先按规则把小图拼成大图 - ("scihub/scihub_25800000/libgen.scimag25889000-25889999.zip_10.2307/4153991", False), # 特殊扫描版6,只有三页,其中两页是扫描版 - ("scanned_detection/llm-raw-scihub-o.O-0584-8539%2891%2980165-f", False), # 特殊扫描版7,只有一页且由小图拼成大图 - ("scanned_detection/llm-raw-scihub-o.O-bf01427123", False), # 特殊扫描版8,只有3页且全是大图扫描版 - ("scihub/scihub_41200000/libgen.scimag41253000-41253999.zip_10.1080/00222938709460256", False), # 特殊扫描版12,头两页文字版且有一页没图片,后面扫描版11页 - ("scihub/scihub_37000000/libgen.scimag37068000-37068999.zip_10.1080/0015587X.1936.9718622", False) # 特殊扫描版13,头两页文字版且有一页没图片,后面扫描版3页 - ]) -def test_classify_by_area(book_name, expected_bool_classify_by_area): - test_data = get_test_json_data(current_directory, "test_metascan_classify_data.json") - docs = get_docs_from_test_pdf(book_name) - median_width, median_height = get_pdf_page_size_pts(docs) - page_width = int(median_width) - page_height = int(median_height) - img_sz_list = test_data[book_name]["expected_image_info"] - total_page = len(docs) - text_len_list = get_pdf_textlen_per_page(docs) - bool_classify_by_area = classify_by_area(total_page, page_width, page_height, img_sz_list, text_len_list) - assert bool_classify_by_area == expected_bool_classify_by_area - - -''' -广义上的文字版检测,任何一页大于100字,都认为为文字版 -''' -@pytest.mark.parametrize("book_name, expected_bool_classify_by_text_len", - [ - ("scihub/scihub_67200000/libgen.scimag67237000-67237999.zip_10.1515/crpm-2017-0020", True), # 文字版,少于50页 - ("scihub/scihub_83300000/libgen.scimag83306000-83306999.zip_10.1007/978-3-658-30153-8", True), # 文字版,多于50页 - ("zhongwenzaixian/zhongwenzaixian_65771414", False), # 完全无字的宣传册 - ]) -def test_classify_by_text_len(book_name, expected_bool_classify_by_text_len): - docs = get_docs_from_test_pdf(book_name) - text_len_list = get_pdf_textlen_per_page(docs) - total_page = len(docs) - bool_classify_by_text_len = classify_by_text_len(text_len_list, total_page) - assert bool_classify_by_text_len == expected_bool_classify_by_text_len - - -''' -狭义上的文字版检测,需要平均每页字数大于200字 -''' -@pytest.mark.parametrize("book_name, expected_bool_classify_by_avg_words", - [ - ("zlib/zlib_21207669", False), # 扫描版,书末尾几页有大纲文字 - ("zlib/zlib_19012845", False), # 扫描版,好几本扫描书的集合,每本书末尾有一页文字页 - ("scihub/scihub_67200000/libgen.scimag67237000-67237999.zip_10.1515/crpm-2017-0020", True),# 正常文字版 - ("zhongwenzaixian/zhongwenzaixian_65771414", False), # 宣传册 - ("zhongwenzaixian/zhongwenzaixian_351879", False), # 图解书/无字or少字 - ("zhongwenzaixian/zhongwenzaixian_61357496_pdfvector", False), # 书法集 - ("zhongwenzaixian/zhongwenzaixian_63684541", False), # 设计图 - ("zhongwenzaixian/zhongwenzaixian_61525978", False), # 绘本 - ("zhongwenzaixian/zhongwenzaixian_63679729", False), # 摄影集 - - ]) -def test_classify_by_avg_words(book_name, expected_bool_classify_by_avg_words): - docs = get_docs_from_test_pdf(book_name) - text_len_list = get_pdf_textlen_per_page(docs) - bool_classify_by_avg_words = classify_by_avg_words(text_len_list) - assert bool_classify_by_avg_words == expected_bool_classify_by_avg_words - - -''' -这个规则只针对特殊扫描版1,因为扫描版1的图片信息都由于junk_list的原因被舍弃了,只能通过图片数量来判断 -''' -@pytest.mark.parametrize("book_name, expected_bool_classify_by_img_num", - [ - ("zlib/zlib_21370453", False), # 特殊扫描版1,每页都有所有扫描页图片,特点是图占比大,每页展示1至n张 - ("zlib/zlib_22115997", False), # 特殊扫描版2,类似特1,但是每页数量不完全相等 - ("zlib/zlib_21814957", False), # 特殊扫描版3,类似特1,但是每页数量不完全相等 - ("zlib/zlib_21814955", False), # 特殊扫描版4,类似特1,但是每页数量不完全相等 - ]) -def test_classify_by_img_num(book_name, expected_bool_classify_by_img_num): - test_data = get_test_json_data(current_directory, "test_metascan_classify_data.json") - docs = get_docs_from_test_pdf(book_name) - img_num_list = get_imgs_per_page(docs) - img_sz_list = test_data[book_name]["expected_image_info"] - bool_classify_by_img_num = classify_by_img_num(img_sz_list, img_num_list) - assert bool_classify_by_img_num == expected_bool_classify_by_img_num - - -''' -排除纵向排版的pdf -''' -@pytest.mark.parametrize("book_name, expected_bool_classify_by_text_layout", - [ - ("vertical_detection/三国演义_繁体竖排版", False), # 竖排版本1 - ("vertical_detection/净空法师_大乘无量寿", False), # 竖排版本2 - ("vertical_detection/om3006239", True), # 横排版本1 - ("vertical_detection/isit.2006.261791", True), # 横排版本2 - ]) -def test_classify_by_text_layout(book_name, expected_bool_classify_by_text_layout): - test_data = get_test_json_data(current_directory, "test_metascan_classify_data.json") - text_layout_per_page = test_data[book_name]["expected_text_layout"] - bool_classify_by_text_layout = classify_by_text_layout(text_layout_per_page) - assert bool_classify_by_text_layout == expected_bool_classify_by_text_layout - - -''' -通过检测页面是否由多个窄长条图像组成,来过滤特殊的扫描版 -这个规则只对窄长条组成的pdf进行识别,而不会识别常规的大图扫描pdf -''' -@pytest.mark.parametrize("book_name, expected_bool_classify_by_img_narrow_strips", - [ - ("scihub/scihub_25900000/libgen.scimag25991000-25991999.zip_10.2307/40066695", False), # 特殊扫描版 - ("the_eye/the_eye_wtl_00023799", False), # 特殊扫描版4,每一页都是一张张小图拼出来的,检测图片占比之前需要先按规则把小图拼成大图 - ("the_eye/the_eye_cdn_00328381", False), # 特殊扫描版5,每一页都是一张张小图拼出来的,存在多个小图多次重复使用情况,检测图片占比之前需要先按规则把小图拼成大图 - ("scanned_detection/llm-raw-scihub-o.O-0584-8539%2891%2980165-f", False), # 特殊扫描版7,只有一页且由小图拼成大图 - ("scihub/scihub_25800000/libgen.scimag25889000-25889999.zip_10.2307/4153991", True), # 特殊扫描版6,只有三页,其中两页是扫描版 - ("scanned_detection/llm-raw-scihub-o.O-bf01427123", True), # 特殊扫描版8,只有3页且全是大图扫描版 - ("scihub/scihub_53700000/libgen.scimag53724000-53724999.zip_10.1097/00129191-200509000-00018", True), # 特殊文本版,有一长条,但是只有一条 - ]) -def test_classify_by_img_narrow_strips(book_name, expected_bool_classify_by_img_narrow_strips): - test_data = get_test_json_data(current_directory, "test_metascan_classify_data.json") - img_sz_list = test_data[book_name]["expected_image_info"] - docs = get_docs_from_test_pdf(book_name) - median_width, median_height = get_pdf_page_size_pts(docs) - page_width = int(median_width) - page_height = int(median_height) - bool_classify_by_img_narrow_strips = classify_by_img_narrow_strips(page_width, page_height, img_sz_list) - assert bool_classify_by_img_narrow_strips == expected_bool_classify_by_img_narrow_strips \ No newline at end of file diff --git a/tests/test_metascan_classify/test_meta_scan.py b/tests/test_metascan_classify/test_meta_scan.py deleted file mode 100644 index efb3c47b2..000000000 --- a/tests/test_metascan_classify/test_meta_scan.py +++ /dev/null @@ -1,84 +0,0 @@ -import os - -import pytest -from magic_pdf.filter.pdf_meta_scan import get_pdf_page_size_pts, get_image_info, get_pdf_text_layout_per_page, get_language -from tests.test_commons import get_docs_from_test_pdf, get_test_json_data - -# 获取当前目录 -current_directory = os.path.dirname(os.path.abspath(__file__)) - -''' -获取pdf的宽与高,宽和高各用一个list,分别取中位数 -''' -@pytest.mark.parametrize("book_name, expected_width, expected_height", - [ - ("zlib/zlib_17058115", 795, 1002), # pdf中最大页与最小页差异极大个例 - ("the_eye/the_eye_wtl_00023799", 616, 785) # 采样的前50页存在中位数大小页面横竖旋转情况 - ]) -def test_get_pdf_page_size_pts(book_name, expected_width, expected_height): - docs = get_docs_from_test_pdf(book_name) - median_width, median_height = get_pdf_page_size_pts(docs) - - assert int(median_width) == expected_width - assert int(median_height) == expected_height - - -''' -获取pdf前50页的图片信息,为了提速,对特殊扫描版1的情况做了过滤,其余情况都正常取图片信息 -''' -@pytest.mark.parametrize("book_name", - [ - "zlib/zlib_21370453", # 特殊扫描版1,每页都有所有扫描页图片,特点是图占比大,每页展示1至n张 - "the_eye/the_eye_cdn_00391653", # 特殊文字版1.每页存储所有图片,特点是图片占页面比例不大,每页展示可能为0也可能不止1张,这种pdf需要拿前10页抽样检测img大小和个数,如果符合需要清空junklist - "scihub/scihub_08400000/libgen.scimag08489000-08489999.zip_10.1016/0370-1573(90)90070-i", # 扫描版2,每页存储的扫描页图片数量递增,特点是图占比大,每页展示1张,需要清空junklist跑前50页图片信息用于分类判断 - "zlib/zlib_17216416", # 特殊扫描版3,有的页面是一整张大图,有的页面是通过一条条小图拼起来的 - "the_eye/the_eye_wtl_00023799", # 特殊扫描版4,每一页都是一张张小图拼出来的 - "the_eye/the_eye_cdn_00328381", # 特殊扫描版5,每一页都是一张张小图拼出来的,但是存在多个小图多次重复使用情况 - "scihub/scihub_25800000/libgen.scimag25889000-25889999.zip_10.2307/4153991", # 特殊扫描版6,只有3页且其中两页是扫描页 - "scanned_detection/llm-raw-scihub-o.O-0584-8539%2891%2980165-f", # 特殊扫描版7,只有一页,且是一张张小图拼出来的 - "scanned_detection/llm-raw-scihub-o.O-bf01427123", # 特殊扫描版8,只有3页且全是大图扫描版 - "zlib/zlib_22115997", # 特殊扫描版9,类似特1,但是每页数量不完全相等 - "zlib/zlib_21814957", # 特殊扫描版10,类似特1,但是每页数量不完全相等 - "zlib/zlib_21814955", # 特殊扫描版11,类似特1,但是每页数量不完全相等 - "scihub/scihub_41200000/libgen.scimag41253000-41253999.zip_10.1080/00222938709460256", # 特殊扫描版12,头两页文字版且有一页没图片,后面扫描版11页 - "scihub/scihub_37000000/libgen.scimag37068000-37068999.zip_10.1080/0015587X.1936.9718622" # 特殊扫描版13,头两页文字版且有一页没图片,后面扫描版3页 - ]) -def test_get_image_info(book_name): - test_data = get_test_json_data(current_directory, "test_metascan_classify_data.json") - docs = get_docs_from_test_pdf(book_name) - page_width_pts, page_height_pts = get_pdf_page_size_pts(docs) - image_info, junk_img_bojids = get_image_info(docs, page_width_pts, page_height_pts) - - assert image_info == test_data[book_name]["expected_image_info"] - assert junk_img_bojids == test_data[book_name]["expected_junk_img_bojids"] - - -''' -获取pdf前50页的文本布局信息,输出list,每个元素为一个页面的横竖排信息 -''' -@pytest.mark.parametrize("book_name", - [ - "vertical_detection/三国演义_繁体竖排版", # 竖排版本1 - "vertical_detection/净空法师_大乘无量寿", # 竖排版本2 - "vertical_detection/om3006239", # 横排版本1 - "vertical_detection/isit.2006.261791" # 横排版本2 - ]) -def test_get_text_layout_info(book_name): - test_data = get_test_json_data(current_directory, "test_metascan_classify_data.json") - - docs = get_docs_from_test_pdf(book_name) - text_layout_info = get_pdf_text_layout_per_page(docs) - assert text_layout_info == test_data[book_name]["expected_text_layout"] - - -''' -获取pdf的语言信息 -''' -@pytest.mark.parametrize("book_name, expected_language", - [ - ("scihub/scihub_05000000/libgen.scimag05023000-05023999.zip_10.1034/j.1601-0825.2003.02933.x", "en"), # 英文论文 - ]) -def test_get_text_language_info(book_name, expected_language): - docs = get_docs_from_test_pdf(book_name) - text_language = get_language(docs) - assert text_language == expected_language diff --git a/tests/test_metascan_classify/test_metascan_classify_data.json b/tests/test_metascan_classify/test_metascan_classify_data.json deleted file mode 100644 index 6ea17c954..000000000 --- a/tests/test_metascan_classify/test_metascan_classify_data.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "zlib/zlib_21370453": { - "expected_image_info": [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], - "expected_junk_img_bojids": [3259, 3268, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3269, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3270, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3271, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3272, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3273, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3274, 3418, 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3275, 3428, 3429, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3276, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3277, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3260, 3278, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3279, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3280, 3478, 3479, 3480, 3481, 3482, 3483, 3484, 3485, 3486, 3487, 3281, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3282, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3283, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3284, 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3527, 3285, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3286, 3538, 3539, 3540, 3541, 3542, 3543, 3544, 3545, 3546, 3547, 3287, 3548, 3549, 3550, 3551, 3552, 3553, 3554, 3555, 3556, 3557, 3261, 3288, 3558, 3559, 3560, 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3262, 3298, 3299, 3300, 3301, 3302, 3303, 3304, 3305, 3306, 3307, 3263, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3264, 3318, 3319, 3320, 3321, 3322, 3323, 3324, 3325, 3326, 3327, 3265, 3328, 3329, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3266, 3338, 3339, 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347, 3267, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3561, 3563, 3565, 3567, 3569, 3571, 3573, 3575, 3577, 3579, 3581, 3583, 3585, 3587, 3589, 3591, 3593, 3595, 3597, 3599, 3601, 3603, 3605, 3607, 3609, 3611, 3613, 3615, 3617, 3619, 3621, 3623, 3625, 3627, 3629, 3631, 3633, 3635, 3637, 3639, 3641, 3643, 3645, 3647, 3649, 3651, 3653, 3655, 3657, 3659, 3661, 3663, 3665, 3667, 3669, 3671, 3673, 3675, 3677, 3679, 3681, 3683, 3685, 3687, 3689, 3691, 3693, 3695, 3697, 3699, 3701, 3703, 3705, 3707, 3709, 3711, 3713, 3715, 3717, 3719, 3721, 3723, 3725, 3727, 3729, 3731, 3733, 3735, 3737, 3739, 3741, 3743, 3745, 3747, 3749, 3751, 3753, 3755, 3757, 3759, 3761, 3763, 3765, 3767, 3769, 3771, 3773, 3775, 3777, 3779, 3781, 3783, 3785, 3787, 3789, 3791, 3793, 3795, 3797, 3799, 3801, 3803, 3805, 3807, 3809, 3811, 3813, 3815, 3817, 3819, 3821, 3823, 3825, 3827, 3829, 3831, 3833, 3835, 3837, 3839, 3841, 3843, 3845, 3847, 3849, 3851, 3853, 3855, 3857, 3859, 3861, 3863, 3865, 3867, 3869, 3871, 3873, 3875, 3877, 3879, 3881, 3883, 3885, 3887, 3889, 3891, 3893, 3895, 3897, 3899, 3901, 3903, 3905, 3907, 3909, 3911, 3913, 3915, 3917, 3919, 3921, 3923, 3925, 3927, 3929, 3931, 3933, 3935, 3937, 3939, 3941, 3943, 3945, 3947, 3949, 3951, 3953, 3955, 3957, 3959, 3961, 3963, 3965, 3967, 3969, 3971, 3973, 3975, 3977, 3979, 3981, 3983, 3985, 3987, 3989, 3991, 3993, 3995, 3997, 3999, 4001, 4003, 4005, 4007, 4009, 4011, 4013, 4015, 4017, 4019, 4021, 4023, 4025, 4027, 4029, 4031, 4033, 4035, 4037, 4039, 4041, 4043, 4045, 4047, 4049, 4051, 4053, 4055, 4057, 4059, 4061, 4063, 4065, 4067, 4069, 4071, 4073, 4075, 4077, 4079, 4081, 4083, 4085, 4087, 4089, 4091, 4093, 4095, 4097, 4099, 4101, 4103, 4105, 4107, 4109, 4111, 4113, 4115, 4117, 4119, 4121, 4123, 4125, 4127, 4129] - }, - "the_eye/the_eye_cdn_00391653" : { - "expected_image_info": [[[54, 233, 558, 670, 3]], [[442, 104, 535, 268, 7]], [], [], [], [], [], [], [], [[324, 128, 557, 476, 25]], [[54, 129, 288, 313, 29], [54, 476, 287, 630, 30], [324, 266, 557, 403, 31]], [[54, 54, 287, 374, 37], [324, 53, 557, 288, 38]], [[324, 66, 557, 447, 43]], [[54, 78, 288, 306, 47], [54, 331, 287, 648, 48], [324, 179, 557, 300, 49], [324, 387, 557, 580, 50]], [[54, 254, 557, 672, 57]], [[54, 53, 287, 211, 61], [54, 386, 287, 688, 62]], [[63, 54, 548, 360, 67]], [[62, 54, 549, 489, 71]], [[324, 53, 557, 399, 75]], [[54, 117, 557, 323, 79]], [[68, 60, 275, 272, 83], [60, 347, 280, 617, 84], [340, 354, 541, 633, 85]], [], [[54, 442, 557, 687, 93]], [[49, 66, 282, 439, 97], [324, 441, 558, 658, 98]], [[54, 241, 287, 315, 103], [66, 516, 545, 690, 104]], [[54, 53, 557, 655, 109]], [[54, 50, 557, 689, 113]], [[324, 79, 557, 656, 117]], [[109, 54, 502, 685, 121]], [[54, 379, 288, 642, 125]], [], [[156, 49, 455, 617, 131]], [[54, 40, 557, 679, 135]], [[54, 166, 557, 665, 139]], [[67, 45, 544, 691, 143]], [[54, 43, 557, 694, 147]], [[54, 53, 557, 372, 151]], [], [], [], [], [[54, 153, 557, 659, 163]], [[54, 53, 287, 223, 167], [324, 273, 557, 422, 168], [324, 430, 557, 554, 169]], [[324, 466, 557, 641, 175]], [[49, 279, 283, 390, 179], [324, 54, 558, 568, 180]], [[54, 66, 287, 477, 185]], [[54, 87, 557, 459, 189]], [[173, 47, 438, 693, 193]], [[54, 79, 557, 571, 197]], [[54, 54, 557, 679, 201]]], - "expected_junk_img_bojids": [] - }, - "scihub/scihub_08400000/libgen.scimag08489000-08489999.zip_10.1016/0370-1573(90)90070-i" : { - "expected_image_info": [[[-10, -10, 590, 729, 1273]], [[-10, -10, 590, 729, 1277]], [[-10, -10, 590, 729, 807]], [[-10, -10, 590, 729, 809]], [[-10, -10, 590, 729, 811]], [[-10, -10, 590, 729, 813]], [[-10, -10, 590, 729, 815]], [[-10, -10, 590, 729, 817]], [[-10, -10, 590, 729, 819]], [[-10, -10, 590, 729, 821]], [[-10, -10, 590, 729, 823]], [[-10, -10, 590, 729, 825]], [[-10, -10, 590, 729, 827]], [[-10, -10, 590, 729, 829]], [[-10, -10, 590, 729, 831]], [[-10, -10, 590, 729, 833]], [[-10, -10, 590, 729, 835]], [[-10, -10, 590, 729, 837]], [[-10, -10, 590, 729, 839]], [[-10, -10, 590, 729, 841]], [[-10, -10, 590, 729, 843]], [[-10, -10, 590, 729, 845]], [[-10, -10, 590, 729, 847]], [[-10, -10, 590, 729, 849]], [[-10, -10, 590, 729, 851]], [[-10, -10, 590, 729, 853]], [[-10, -10, 590, 729, 855]], [[-10, -10, 590, 729, 857]], [[-10, -10, 590, 729, 859]], [[-10, -10, 590, 729, 861]], [[-10, -10, 590, 729, 863]], [[-10, -10, 590, 729, 865]], [[-10, -10, 590, 729, 867]], [[-10, -10, 590, 729, 869]], [[-10, -10, 590, 729, 871]], [[-10, -10, 590, 729, 873]], [[-10, -10, 590, 729, 875]], [[-10, -10, 590, 729, 877]], [[-10, -10, 590, 729, 879]], [[-10, -10, 590, 729, 881]], [[-10, -10, 590, 729, 883]], [[-10, -10, 590, 729, 885]], [[-10, -10, 590, 729, 887]], [[-10, -10, 590, 729, 889]], [[-10, -10, 590, 729, 891]], [[-10, -10, 590, 729, 893]], [[-10, -10, 590, 729, 895]], [[-10, -10, 590, 729, 897]], [[-10, -10, 590, 729, 899]], [[-10, -10, 590, 729, 901]]], - "expected_junk_img_bojids": [] - }, - "zlib/zlib_17216416" : { - "expected_image_info": [[[0, 0, 531, 720, 36742]], [[0, 0, 529, 28, 59], [0, 28, 529, 57, 61], [0, 57, 529, 86, 63], [0, 86, 529, 115, 65], [0, 114, 529, 143, 67], [0, 143, 529, 172, 69], [0, 172, 529, 201, 71], [0, 201, 529, 230, 73], [0, 230, 529, 259, 75], [0, 259, 529, 287, 77], [0, 287, 529, 316, 79], [0, 345, 529, 374, 83], [0, 403, 529, 431, 87], [0, 431, 529, 460, 89], [0, 547, 529, 575, 97], [0, 575, 529, 604, 99], [0, 604, 529, 633, 101], [0, 633, 529, 662, 103], [0, 662, 529, 691, 105], [0, 691, 529, 719, 107], [0, 719, 529, 737, 109]], [[0, 0, 519, 28, 131], [0, 28, 519, 57, 133], [0, 57, 519, 86, 135], [0, 86, 519, 115, 137], [0, 115, 519, 144, 139], [0, 143, 519, 172, 141], [0, 172, 519, 201, 143], [0, 201, 519, 230, 145], [0, 230, 519, 259, 147], [0, 288, 519, 316, 151], [0, 316, 519, 345, 153], [0, 345, 519, 374, 155], [0, 374, 519, 403, 157], [0, 403, 519, 432, 159], [0, 460, 519, 489, 163], [0, 489, 519, 518, 165], [0, 518, 519, 547, 167], [0, 547, 519, 576, 169], [0, 576, 519, 604, 171], [0, 604, 519, 633, 173], [0, 633, 519, 662, 175], [0, 662, 519, 691, 177], [0, 691, 519, 720, 179]], [[0, 0, 528, 28, 201], [0, 28, 528, 57, 203], [0, 57, 528, 86, 205], [0, 85, 528, 114, 207], [0, 114, 528, 143, 209], [0, 143, 528, 172, 211], [0, 172, 528, 201, 213], [0, 201, 528, 230, 215], [0, 229, 528, 258, 217], [0, 258, 528, 287, 219], [0, 287, 528, 316, 221], [0, 316, 528, 345, 223], [0, 345, 528, 374, 225], [0, 374, 528, 402, 227], [0, 402, 528, 431, 229], [0, 431, 528, 460, 231], [0, 460, 528, 489, 233], [0, 489, 528, 518, 235], [0, 518, 528, 546, 237], [0, 546, 528, 575, 239], [0, 575, 528, 604, 241], [0, 604, 528, 633, 243], [0, 633, 528, 662, 245], [0, 662, 528, 690, 247], [0, 690, 528, 719, 249], [0, 719, 528, 737, 251]], [[0, 0, 528, 29, 273], [0, 57, 528, 86, 277], [0, 86, 528, 115, 279], [0, 115, 528, 144, 281], [0, 144, 528, 173, 283], [0, 173, 528, 202, 285], [0, 201, 528, 230, 287], [0, 230, 528, 259, 289], [0, 259, 528, 288, 291], [0, 288, 528, 317, 293], [0, 317, 528, 346, 295], [0, 346, 528, 374, 297], [0, 374, 528, 403, 299], [0, 403, 528, 432, 301], [0, 432, 528, 461, 303], [0, 576, 528, 605, 313], [0, 662, 528, 691, 319], [0, 691, 528, 720, 321], [0, 720, 528, 736, 323]], [[0, 0, 529, 29, 345], [0, 29, 529, 58, 347], [0, 57, 529, 86, 349], [0, 86, 529, 115, 351], [0, 115, 529, 144, 353], [0, 144, 529, 173, 355], [0, 173, 529, 202, 357], [0, 201, 529, 230, 359], [0, 230, 529, 259, 361], [0, 259, 529, 288, 363], [0, 288, 529, 317, 365], [0, 317, 529, 346, 367], [0, 346, 529, 374, 369], [0, 374, 529, 403, 371], [0, 403, 529, 432, 373], [0, 432, 529, 461, 375], [0, 461, 529, 490, 377], [0, 490, 529, 518, 379], [0, 518, 529, 547, 381], [0, 547, 529, 576, 383], [0, 576, 529, 605, 385], [0, 605, 529, 634, 387], [0, 634, 529, 662, 389], [0, 662, 529, 691, 391], [0, 691, 529, 720, 393], [0, 720, 529, 740, 395]], [[0, 0, 519, 29, 417], [0, 29, 519, 58, 419], [0, 58, 519, 88, 421], [0, 88, 519, 117, 423], [0, 117, 519, 147, 425], [0, 147, 519, 176, 427], [0, 176, 519, 205, 429], [0, 205, 519, 235, 431], [0, 235, 519, 264, 433], [0, 264, 519, 294, 435], [0, 294, 519, 323, 437], [0, 323, 519, 352, 439], [0, 352, 519, 382, 441], [0, 382, 519, 411, 443], [0, 411, 519, 441, 445], [0, 441, 519, 470, 447], [0, 470, 519, 499, 449], [0, 499, 519, 529, 451], [0, 529, 519, 558, 453], [0, 558, 519, 588, 455], [0, 588, 519, 617, 457], [0, 646, 519, 676, 461], [0, 705, 519, 734, 465]], [[0, 0, 529, 28, 487], [0, 28, 529, 57, 489], [0, 57, 529, 86, 491], [0, 86, 529, 115, 493], [0, 115, 529, 144, 495], [0, 143, 529, 172, 497], [0, 172, 529, 201, 499], [0, 201, 529, 230, 501], [0, 230, 529, 259, 503], [0, 259, 529, 288, 505], [0, 288, 529, 316, 507], [0, 316, 529, 345, 509], [0, 345, 529, 374, 511], [0, 374, 529, 403, 513], [0, 403, 529, 432, 515], [0, 432, 529, 460, 517], [0, 460, 529, 489, 519], [0, 489, 529, 518, 521], [0, 518, 529, 547, 523], [0, 547, 529, 576, 525], [0, 576, 529, 604, 527], [0, 604, 529, 633, 529], [0, 633, 529, 662, 531], [0, 662, 529, 691, 533], [0, 691, 529, 720, 535], [0, 720, 529, 739, 537]], [[0, 0, 519, 29, 559], [0, 29, 519, 58, 561], [0, 57, 519, 86, 563], [0, 86, 519, 115, 565], [0, 115, 519, 144, 567], [0, 144, 519, 173, 569], [0, 173, 519, 202, 571], [0, 201, 519, 230, 573], [0, 230, 519, 259, 575], [0, 259, 519, 288, 577], [0, 288, 519, 317, 579], [0, 317, 519, 346, 581], [0, 346, 519, 374, 583], [0, 374, 519, 403, 585], [0, 403, 519, 432, 587], [0, 432, 519, 461, 589], [0, 461, 519, 490, 591], [0, 490, 519, 518, 593], [0, 518, 519, 547, 595], [0, 547, 519, 576, 597], [0, 576, 519, 605, 599], [0, 605, 519, 634, 601], [0, 634, 519, 662, 603], [0, 691, 519, 720, 607]], [[0, 0, 519, 28, 629], [0, 28, 519, 57, 631], [0, 57, 519, 86, 633], [0, 86, 519, 115, 635], [0, 114, 519, 143, 637], [0, 143, 519, 172, 639], [0, 172, 519, 201, 641], [0, 201, 519, 230, 643], [0, 230, 519, 259, 645], [0, 259, 519, 287, 647], [0, 287, 519, 316, 649], [0, 316, 519, 345, 651], [0, 345, 519, 374, 653], [0, 374, 519, 403, 655], [0, 403, 519, 431, 657], [0, 431, 519, 460, 659], [0, 460, 519, 489, 661], [0, 489, 519, 518, 663], [0, 518, 519, 547, 665], [0, 547, 519, 575, 667], [0, 575, 519, 604, 669], [0, 604, 519, 633, 671], [0, 633, 519, 662, 673], [0, 662, 519, 691, 675], [0, 691, 519, 719, 677]], [[0, 0, 519, 29, 699], [0, 29, 519, 58, 701], [0, 58, 519, 88, 703], [0, 88, 519, 117, 705], [0, 117, 519, 147, 707], [0, 147, 519, 176, 709], [0, 176, 519, 205, 711], [0, 205, 519, 235, 713], [0, 235, 519, 264, 715], [0, 264, 519, 294, 717], [0, 294, 519, 323, 719], [0, 323, 519, 352, 721], [0, 352, 519, 382, 723], [0, 382, 519, 411, 725], [0, 411, 519, 441, 727], [0, 441, 519, 470, 729], [0, 470, 519, 499, 731], [0, 499, 519, 529, 733], [0, 529, 519, 558, 735], [0, 558, 519, 588, 737], [0, 588, 519, 617, 739], [0, 617, 519, 646, 741], [0, 646, 519, 676, 743], [0, 705, 519, 734, 747]], [[0, 0, 519, 28, 769], [0, 28, 519, 57, 771], [0, 57, 519, 86, 773], [0, 86, 519, 115, 775], [0, 114, 519, 143, 777], [0, 143, 519, 172, 779], [0, 172, 519, 201, 781], [0, 201, 519, 230, 783], [0, 230, 519, 259, 785], [0, 259, 519, 287, 787], [0, 287, 519, 316, 789], [0, 316, 519, 345, 791], [0, 345, 519, 374, 793], [0, 374, 519, 403, 795], [0, 403, 519, 431, 797], [0, 431, 519, 460, 799], [0, 460, 519, 489, 801], [0, 489, 519, 518, 803], [0, 518, 519, 547, 805], [0, 547, 519, 575, 807], [0, 575, 519, 604, 809], [0, 604, 519, 633, 811], [0, 633, 519, 662, 813], [0, 691, 519, 719, 817]], [[0, 0, 523, 28, 839], [0, 28, 523, 57, 841], [0, 57, 523, 86, 843], [0, 86, 523, 115, 845], [0, 115, 523, 144, 847], [0, 143, 523, 172, 849], [0, 172, 523, 201, 851], [0, 201, 523, 230, 853], [0, 230, 523, 259, 855], [0, 259, 523, 288, 857], [0, 288, 523, 316, 859], [0, 316, 523, 345, 861], [0, 345, 523, 374, 863], [0, 374, 523, 403, 865], [0, 403, 523, 432, 867], [0, 432, 523, 460, 869], [0, 460, 523, 489, 871], [0, 489, 523, 518, 873], [0, 518, 523, 547, 875], [0, 547, 523, 576, 877], [0, 576, 523, 604, 879], [0, 604, 523, 633, 881], [0, 633, 523, 662, 883], [0, 662, 523, 691, 885], [0, 720, 523, 734, 889]], [[0, 0, 525, 28, 911], [0, 57, 525, 86, 915], [0, 85, 525, 114, 917], [0, 114, 525, 143, 919], [0, 143, 525, 172, 921], [0, 172, 525, 201, 923], [0, 201, 525, 230, 925], [0, 229, 525, 258, 927], [0, 258, 525, 287, 929], [0, 287, 525, 316, 931], [0, 316, 525, 345, 933], [0, 345, 525, 374, 935], [0, 374, 525, 402, 937], [0, 431, 525, 460, 941], [0, 460, 525, 489, 943], [0, 489, 525, 518, 945], [0, 518, 525, 546, 947], [0, 546, 525, 575, 949], [0, 575, 525, 604, 951], [0, 662, 525, 690, 957], [0, 719, 525, 735, 961]], [[0, 0, 519, 28, 983], [0, 28, 519, 57, 985], [0, 57, 519, 86, 987], [0, 86, 519, 115, 989], [0, 115, 519, 144, 991], [0, 143, 519, 172, 993], [0, 172, 519, 201, 995], [0, 201, 519, 230, 997], [0, 230, 519, 259, 999], [0, 259, 519, 288, 1001], [0, 288, 519, 316, 1003], [0, 316, 519, 345, 1005], [0, 345, 519, 374, 1007], [0, 374, 519, 403, 1009], [0, 403, 519, 432, 1011], [0, 432, 519, 460, 1013], [0, 460, 519, 489, 1015], [0, 489, 519, 518, 1017], [0, 518, 519, 547, 1019], [0, 576, 519, 604, 1023], [0, 633, 519, 662, 1027], [0, 691, 519, 720, 1031]], [[0, 0, 525, 29, 1053], [0, 57, 525, 86, 1057], [0, 173, 525, 202, 1065], [0, 201, 525, 230, 1067], [0, 230, 525, 259, 1069], [0, 259, 525, 288, 1071], [0, 288, 525, 317, 1073], [0, 317, 525, 346, 1075], [0, 346, 525, 374, 1077], [0, 374, 525, 403, 1079], [0, 403, 525, 432, 1081], [0, 432, 525, 461, 1083], [0, 461, 525, 490, 1085], [0, 490, 525, 518, 1087], [0, 518, 525, 547, 1089], [0, 547, 525, 576, 1091], [0, 576, 525, 605, 1093], [0, 605, 525, 634, 1095], [0, 634, 525, 662, 1097], [0, 662, 525, 691, 1099], [0, 691, 525, 720, 1101], [0, 720, 525, 736, 1103]], [[0, 0, 519, 28, 1125], [0, 28, 519, 57, 1127], [0, 57, 519, 86, 1129], [0, 86, 519, 115, 1131], [0, 114, 519, 143, 1133], [0, 143, 519, 172, 1135], [0, 172, 519, 201, 1137], [0, 201, 519, 230, 1139], [0, 230, 519, 259, 1141], [0, 259, 519, 287, 1143], [0, 287, 519, 316, 1145], [0, 316, 519, 345, 1147], [0, 345, 519, 374, 1149], [0, 374, 519, 403, 1151], [0, 403, 519, 431, 1153], [0, 431, 519, 460, 1155], [0, 460, 519, 489, 1157], [0, 489, 519, 518, 1159], [0, 518, 519, 547, 1161], [0, 547, 519, 575, 1163], [0, 575, 519, 604, 1165], [0, 604, 519, 633, 1167], [0, 633, 519, 662, 1169], [0, 662, 519, 691, 1171], [0, 691, 519, 719, 1173]], [[0, 0, 525, 29, 1233], [0, 57, 525, 86, 1237], [0, 86, 525, 115, 1239], [0, 115, 525, 144, 1241], [0, 144, 525, 173, 1243], [0, 172, 525, 201, 1245], [0, 201, 525, 230, 1247], [0, 230, 525, 259, 1249], [0, 259, 525, 288, 1251], [0, 288, 525, 317, 1253], [0, 317, 525, 345, 1255], [0, 345, 525, 374, 1257], [0, 374, 525, 403, 1259], [0, 403, 525, 432, 1261], [0, 432, 525, 461, 1263], [0, 461, 525, 489, 1265], [0, 489, 525, 518, 1267], [0, 518, 525, 547, 1269], [0, 547, 525, 576, 1271], [0, 576, 525, 605, 1273], [0, 605, 525, 633, 1275], [0, 633, 525, 662, 1277], [0, 662, 525, 691, 1279], [0, 720, 525, 736, 1283]], [[0, 0, 523, 29, 1305], [0, 57, 523, 86, 1309], [0, 86, 523, 115, 1311], [0, 115, 523, 144, 1313], [0, 144, 523, 173, 1315], [0, 173, 523, 202, 1317], [0, 201, 523, 230, 1319], [0, 230, 523, 259, 1321], [0, 259, 523, 288, 1323], [0, 288, 523, 317, 1325], [0, 317, 523, 346, 1327], [0, 346, 523, 374, 1329], [0, 374, 523, 403, 1331], [0, 403, 523, 432, 1333], [0, 432, 523, 461, 1335], [0, 461, 523, 490, 1337], [0, 490, 523, 518, 1339], [0, 518, 523, 547, 1341], [0, 547, 523, 576, 1343], [0, 576, 523, 605, 1345], [0, 605, 523, 634, 1347], [0, 634, 523, 662, 1349], [0, 662, 523, 691, 1351], [0, 720, 523, 736, 1355]], [[0, 0, 528, 28, 1377], [0, 57, 528, 86, 1381], [0, 85, 528, 114, 1383], [0, 114, 528, 143, 1385], [0, 143, 528, 172, 1387], [0, 172, 528, 201, 1389], [0, 201, 528, 230, 1391], [0, 229, 528, 258, 1393], [0, 258, 528, 287, 1395], [0, 287, 528, 316, 1397], [0, 316, 528, 345, 1399], [0, 345, 528, 374, 1401], [0, 374, 528, 402, 1403], [0, 402, 528, 431, 1405], [0, 431, 528, 460, 1407], [0, 460, 528, 489, 1409], [0, 489, 528, 518, 1411], [0, 518, 528, 546, 1413], [0, 546, 528, 575, 1415], [0, 575, 528, 604, 1417], [0, 604, 528, 633, 1419], [0, 633, 528, 662, 1421], [0, 662, 528, 690, 1423], [0, 719, 528, 737, 1427]], [[0, 0, 519, 28, 1449], [0, 28, 519, 57, 1451], [0, 57, 519, 86, 1453], [0, 86, 519, 115, 1455], [0, 114, 519, 143, 1457], [0, 143, 519, 172, 1459], [0, 172, 519, 201, 1461], [0, 201, 519, 230, 1463], [0, 230, 519, 259, 1465], [0, 259, 519, 287, 1467], [0, 287, 519, 316, 1469], [0, 316, 519, 345, 1471], [0, 345, 519, 374, 1473], [0, 374, 519, 403, 1475], [0, 403, 519, 431, 1477], [0, 431, 519, 460, 1479], [0, 460, 519, 489, 1481], [0, 489, 519, 518, 1483], [0, 518, 519, 547, 1485], [0, 547, 519, 575, 1487], [0, 575, 519, 604, 1489], [0, 604, 519, 633, 1491], [0, 633, 519, 662, 1493], [0, 662, 519, 691, 1495], [0, 691, 519, 719, 1497]], [[0, 0, 529, 28, 1519], [0, 57, 529, 86, 1523], [0, 86, 529, 115, 1525], [0, 115, 529, 144, 1527], [0, 143, 529, 172, 1529], [0, 172, 529, 201, 1531], [0, 201, 529, 230, 1533], [0, 230, 529, 259, 1535], [0, 259, 529, 288, 1537], [0, 288, 529, 316, 1539], [0, 316, 529, 345, 1541], [0, 345, 529, 374, 1543], [0, 374, 529, 403, 1545], [0, 403, 529, 432, 1547], [0, 432, 529, 460, 1549], [0, 460, 529, 489, 1551], [0, 489, 529, 518, 1553], [0, 518, 529, 547, 1555], [0, 547, 529, 576, 1557], [0, 576, 529, 604, 1559], [0, 604, 529, 633, 1561], [0, 633, 529, 662, 1563], [0, 662, 529, 691, 1565], [0, 720, 529, 738, 1569]], [[0, 0, 525, 28, 1591], [0, 57, 525, 86, 1595], [0, 86, 525, 115, 1597], [0, 114, 525, 143, 1599], [0, 143, 525, 172, 1601], [0, 172, 525, 201, 1603], [0, 201, 525, 230, 1605], [0, 230, 525, 259, 1607], [0, 259, 525, 287, 1609], [0, 287, 525, 316, 1611], [0, 316, 525, 345, 1613], [0, 345, 525, 374, 1615], [0, 374, 525, 403, 1617], [0, 403, 525, 431, 1619], [0, 431, 525, 460, 1621], [0, 460, 525, 489, 1623], [0, 489, 525, 518, 1625], [0, 518, 525, 547, 1627], [0, 547, 525, 575, 1629], [0, 575, 525, 604, 1631], [0, 604, 525, 633, 1633], [0, 633, 525, 662, 1635], [0, 662, 525, 691, 1637], [0, 719, 525, 736, 1641]], [[0, 0, 528, 28, 1663], [0, 57, 528, 86, 1667], [0, 85, 528, 114, 1669], [0, 114, 528, 143, 1671], [0, 143, 528, 172, 1673], [0, 172, 528, 201, 1675], [0, 201, 528, 230, 1677], [0, 229, 528, 258, 1679], [0, 258, 528, 287, 1681], [0, 287, 528, 316, 1683], [0, 316, 528, 345, 1685], [0, 345, 528, 374, 1687], [0, 374, 528, 402, 1689], [0, 402, 528, 431, 1691], [0, 431, 528, 460, 1693], [0, 460, 528, 489, 1695], [0, 489, 528, 518, 1697], [0, 518, 528, 546, 1699], [0, 546, 528, 575, 1701], [0, 575, 528, 604, 1703], [0, 604, 528, 633, 1705], [0, 633, 528, 662, 1707], [0, 662, 528, 690, 1709], [0, 719, 528, 737, 1713]], [[0, 0, 519, 28, 1735], [0, 28, 519, 57, 1737], [0, 57, 519, 86, 1739], [0, 86, 519, 115, 1741], [0, 114, 519, 143, 1743], [0, 143, 519, 172, 1745], [0, 172, 519, 201, 1747], [0, 201, 519, 230, 1749], [0, 230, 519, 259, 1751], [0, 259, 519, 287, 1753], [0, 287, 519, 316, 1755], [0, 316, 519, 345, 1757], [0, 345, 519, 374, 1759], [0, 374, 519, 403, 1761], [0, 403, 519, 431, 1763], [0, 431, 519, 460, 1765], [0, 460, 519, 489, 1767], [0, 489, 519, 518, 1769], [0, 518, 519, 547, 1771], [0, 547, 519, 575, 1773], [0, 575, 519, 604, 1775], [0, 604, 519, 633, 1777], [0, 633, 519, 662, 1779], [0, 662, 519, 691, 1781], [0, 691, 519, 719, 1783]], [[0, 0, 525, 29, 1805], [0, 57, 525, 86, 1809], [0, 86, 525, 115, 1811], [0, 115, 525, 144, 1813], [0, 144, 525, 173, 1815], [0, 173, 525, 202, 1817], [0, 201, 525, 230, 1819], [0, 230, 525, 259, 1821], [0, 259, 525, 288, 1823], [0, 288, 525, 317, 1825], [0, 317, 525, 346, 1827], [0, 346, 525, 374, 1829], [0, 374, 525, 403, 1831], [0, 403, 525, 432, 1833], [0, 432, 525, 461, 1835], [0, 461, 525, 490, 1837], [0, 490, 525, 518, 1839], [0, 518, 525, 547, 1841], [0, 547, 525, 576, 1843], [0, 576, 525, 605, 1845], [0, 605, 525, 634, 1847], [0, 634, 525, 662, 1849], [0, 662, 525, 691, 1851], [0, 720, 525, 736, 1855]], [[0, 0, 519, 28, 1877], [0, 28, 519, 57, 1879], [0, 57, 519, 86, 1881], [0, 86, 519, 115, 1883], [0, 115, 519, 144, 1885], [0, 143, 519, 172, 1887], [0, 172, 519, 201, 1889], [0, 201, 519, 230, 1891], [0, 230, 519, 259, 1893], [0, 259, 519, 288, 1895], [0, 288, 519, 316, 1897], [0, 316, 519, 345, 1899], [0, 345, 519, 374, 1901], [0, 374, 519, 403, 1903], [0, 403, 519, 432, 1905], [0, 432, 519, 460, 1907], [0, 460, 519, 489, 1909], [0, 489, 519, 518, 1911], [0, 518, 519, 547, 1913], [0, 547, 519, 576, 1915], [0, 576, 519, 604, 1917], [0, 604, 519, 633, 1919], [0, 633, 519, 662, 1921], [0, 662, 519, 691, 1923], [0, 691, 519, 720, 1925]], [[0, 0, 525, 29, 1947], [0, 57, 525, 86, 1951], [0, 86, 525, 115, 1953], [0, 115, 525, 144, 1955], [0, 144, 525, 173, 1957], [0, 173, 525, 202, 1959], [0, 201, 525, 230, 1961], [0, 230, 525, 259, 1963], [0, 259, 525, 288, 1965], [0, 288, 525, 317, 1967], [0, 317, 525, 346, 1969], [0, 346, 525, 374, 1971], [0, 374, 525, 403, 1973], [0, 403, 525, 432, 1975], [0, 432, 525, 461, 1977], [0, 461, 525, 490, 1979], [0, 490, 525, 518, 1981], [0, 518, 525, 547, 1983], [0, 547, 525, 576, 1985], [0, 576, 525, 605, 1987], [0, 605, 525, 634, 1989], [0, 634, 525, 662, 1991], [0, 662, 525, 691, 1993], [0, 720, 525, 736, 1997]], [[0, 0, 519, 28, 2019], [0, 28, 519, 57, 2021], [0, 57, 519, 86, 2023], [0, 86, 519, 115, 2025], [0, 115, 519, 144, 2027], [0, 143, 519, 172, 2029], [0, 172, 519, 201, 2031], [0, 201, 519, 230, 2033], [0, 230, 519, 259, 2035], [0, 259, 519, 288, 2037], [0, 288, 519, 316, 2039], [0, 316, 519, 345, 2041], [0, 345, 519, 374, 2043], [0, 374, 519, 403, 2045], [0, 403, 519, 432, 2047], [0, 432, 519, 460, 2049], [0, 460, 519, 489, 2051], [0, 489, 519, 518, 2053], [0, 518, 519, 547, 2055], [0, 547, 519, 576, 2057], [0, 576, 519, 604, 2059], [0, 604, 519, 633, 2061], [0, 633, 519, 662, 2063], [0, 662, 519, 691, 2065], [0, 691, 519, 720, 2067]], [[0, 0, 525, 28, 2089], [0, 57, 525, 86, 2093], [0, 85, 525, 114, 2095], [0, 114, 525, 143, 2097], [0, 143, 525, 172, 2099], [0, 172, 525, 201, 2101], [0, 201, 525, 230, 2103], [0, 229, 525, 258, 2105], [0, 258, 525, 287, 2107], [0, 287, 525, 316, 2109], [0, 316, 525, 345, 2111], [0, 345, 525, 374, 2113], [0, 374, 525, 402, 2115], [0, 402, 525, 431, 2117], [0, 431, 525, 460, 2119], [0, 460, 525, 489, 2121], [0, 489, 525, 518, 2123], [0, 518, 525, 546, 2125], [0, 546, 525, 575, 2127], [0, 575, 525, 604, 2129], [0, 604, 525, 633, 2131], [0, 633, 525, 662, 2133], [0, 662, 525, 690, 2135], [0, 719, 525, 735, 2139]], [[0, 0, 519, 28, 2197], [0, 28, 519, 57, 2199], [0, 57, 519, 86, 2201], [0, 85, 519, 114, 2203], [0, 114, 519, 143, 2205], [0, 143, 519, 172, 2207], [0, 172, 519, 201, 2209], [0, 201, 519, 230, 2211], [0, 229, 519, 258, 2213], [0, 258, 519, 287, 2215], [0, 287, 519, 316, 2217], [0, 316, 519, 345, 2219], [0, 345, 519, 374, 2221], [0, 374, 519, 402, 2223], [0, 402, 519, 431, 2225], [0, 431, 519, 460, 2227], [0, 460, 519, 489, 2229], [0, 489, 519, 518, 2231], [0, 518, 519, 546, 2233], [0, 546, 519, 575, 2235], [0, 575, 519, 604, 2237], [0, 604, 519, 633, 2239], [0, 633, 519, 662, 2241], [0, 662, 519, 690, 2243], [0, 690, 519, 719, 2245]], [[0, 0, 527, 29, 2305], [0, 57, 527, 86, 2309], [0, 86, 527, 115, 2311], [0, 115, 527, 144, 2313], [0, 144, 527, 173, 2315], [0, 172, 527, 201, 2317], [0, 201, 527, 230, 2319], [0, 230, 527, 259, 2321], [0, 259, 527, 288, 2323], [0, 288, 527, 317, 2325], [0, 317, 527, 345, 2327], [0, 345, 527, 374, 2329], [0, 374, 527, 403, 2331], [0, 403, 527, 432, 2333], [0, 432, 527, 461, 2335], [0, 461, 527, 489, 2337], [0, 489, 527, 518, 2339], [0, 518, 527, 547, 2341], [0, 547, 527, 576, 2343], [0, 576, 527, 605, 2345], [0, 605, 527, 633, 2347], [0, 633, 527, 662, 2349], [0, 662, 527, 691, 2351], [0, 720, 527, 738, 2355]], [[0, 0, 519, 28, 2377], [0, 28, 519, 57, 2379], [0, 57, 519, 86, 2381], [0, 85, 519, 114, 2383], [0, 114, 519, 143, 2385], [0, 143, 519, 172, 2387], [0, 172, 519, 201, 2389], [0, 201, 519, 230, 2391], [0, 229, 519, 258, 2393], [0, 258, 519, 287, 2395], [0, 287, 519, 316, 2397], [0, 316, 519, 345, 2399], [0, 345, 519, 374, 2401], [0, 374, 519, 402, 2403], [0, 402, 519, 431, 2405], [0, 431, 519, 460, 2407], [0, 460, 519, 489, 2409], [0, 489, 519, 518, 2411], [0, 518, 519, 546, 2413], [0, 546, 519, 575, 2415], [0, 575, 519, 604, 2417], [0, 604, 519, 633, 2419], [0, 633, 519, 662, 2421], [0, 662, 519, 690, 2423], [0, 690, 519, 719, 2425]], [[0, 0, 525, 29, 2447], [0, 29, 525, 58, 2449], [0, 57, 525, 86, 2451], [0, 86, 525, 115, 2453], [0, 115, 525, 144, 2455], [0, 144, 525, 173, 2457], [0, 173, 525, 202, 2459], [0, 201, 525, 230, 2461], [0, 230, 525, 259, 2463], [0, 259, 525, 288, 2465], [0, 288, 525, 317, 2467], [0, 317, 525, 346, 2469], [0, 346, 525, 374, 2471], [0, 374, 525, 403, 2473], [0, 403, 525, 432, 2475], [0, 432, 525, 461, 2477], [0, 461, 525, 490, 2479], [0, 490, 525, 518, 2481], [0, 518, 525, 547, 2483], [0, 547, 525, 576, 2485], [0, 576, 525, 605, 2487], [0, 605, 525, 634, 2489], [0, 634, 525, 662, 2491], [0, 662, 525, 691, 2493], [0, 720, 525, 736, 2497]], [[0, 0, 519, 28, 2519], [0, 28, 519, 57, 2521], [0, 57, 519, 86, 2523], [0, 85, 519, 114, 2525], [0, 114, 519, 143, 2527], [0, 143, 519, 172, 2529], [0, 172, 519, 201, 2531], [0, 201, 519, 230, 2533], [0, 229, 519, 258, 2535], [0, 258, 519, 287, 2537], [0, 287, 519, 316, 2539], [0, 316, 519, 345, 2541], [0, 345, 519, 374, 2543], [0, 374, 519, 402, 2545], [0, 402, 519, 431, 2547], [0, 431, 519, 460, 2549], [0, 460, 519, 489, 2551], [0, 489, 519, 518, 2553], [0, 518, 519, 546, 2555], [0, 546, 519, 575, 2557], [0, 575, 519, 604, 2559], [0, 604, 519, 633, 2561], [0, 633, 519, 662, 2563], [0, 662, 519, 690, 2565], [0, 690, 519, 719, 2567]], [[0, 0, 527, 28, 2589], [0, 57, 527, 86, 2593], [0, 86, 527, 115, 2595], [0, 115, 527, 144, 2597], [0, 143, 527, 172, 2599], [0, 172, 527, 201, 2601], [0, 201, 527, 230, 2603], [0, 230, 527, 259, 2605], [0, 259, 527, 288, 2607], [0, 288, 527, 316, 2609], [0, 316, 527, 345, 2611], [0, 345, 527, 374, 2613], [0, 374, 527, 403, 2615], [0, 403, 527, 432, 2617], [0, 432, 527, 460, 2619], [0, 460, 527, 489, 2621], [0, 489, 527, 518, 2623], [0, 518, 527, 547, 2625], [0, 547, 527, 576, 2627], [0, 576, 527, 604, 2629], [0, 604, 527, 633, 2631], [0, 633, 527, 662, 2633], [0, 662, 527, 691, 2635], [0, 720, 527, 738, 2639]], [[0, 0, 519, 28, 2661], [0, 57, 519, 86, 2665], [0, 86, 519, 115, 2667], [0, 115, 519, 144, 2669], [0, 143, 519, 172, 2671], [0, 172, 519, 201, 2673], [0, 201, 519, 230, 2675], [0, 230, 519, 259, 2677], [0, 259, 519, 288, 2679], [0, 288, 519, 316, 2681], [0, 316, 519, 345, 2683], [0, 345, 519, 374, 2685], [0, 374, 519, 403, 2687], [0, 403, 519, 432, 2689], [0, 432, 519, 460, 2691], [0, 460, 519, 489, 2693], [0, 489, 519, 518, 2695], [0, 518, 519, 547, 2697], [0, 547, 519, 576, 2699], [0, 576, 519, 604, 2701], [0, 604, 519, 633, 2703], [0, 633, 519, 662, 2705], [0, 662, 519, 691, 2707], [0, 691, 519, 720, 2709]], [[0, 0, 525, 29, 2731], [0, 29, 525, 58, 2733], [0, 57, 525, 86, 2735], [0, 86, 525, 115, 2737], [0, 115, 525, 144, 2739], [0, 144, 525, 173, 2741], [0, 173, 525, 202, 2743], [0, 201, 525, 230, 2745], [0, 230, 525, 259, 2747], [0, 259, 525, 288, 2749], [0, 288, 525, 317, 2751], [0, 317, 525, 346, 2753], [0, 346, 525, 374, 2755], [0, 374, 525, 403, 2757], [0, 403, 525, 432, 2759], [0, 432, 525, 461, 2761], [0, 576, 525, 605, 2771], [0, 662, 525, 691, 2777], [0, 720, 525, 736, 2781]], [[0, 0, 519, 28, 2803], [0, 28, 519, 57, 2805], [0, 57, 519, 86, 2807], [0, 85, 519, 114, 2809], [0, 114, 519, 143, 2811], [0, 143, 519, 172, 2813], [0, 172, 519, 201, 2815], [0, 201, 519, 230, 2817], [0, 229, 519, 258, 2819], [0, 258, 519, 287, 2821], [0, 287, 519, 316, 2823], [0, 316, 519, 345, 2825], [0, 345, 519, 374, 2827], [0, 374, 519, 402, 2829], [0, 402, 519, 431, 2831], [0, 431, 519, 460, 2833], [0, 460, 519, 489, 2835], [0, 489, 519, 518, 2837], [0, 518, 519, 546, 2839], [0, 546, 519, 575, 2841], [0, 575, 519, 604, 2843], [0, 604, 519, 633, 2845], [0, 633, 519, 662, 2847], [0, 690, 519, 719, 2851]], [[0, 0, 529, 29, 2873], [0, 57, 529, 86, 2877], [0, 201, 529, 230, 2887], [0, 230, 529, 259, 2889], [0, 259, 529, 288, 2891], [0, 288, 529, 317, 2893], [0, 317, 529, 345, 2895], [0, 345, 529, 374, 2897], [0, 374, 529, 403, 2899], [0, 403, 529, 432, 2901], [0, 432, 529, 461, 2903], [0, 461, 529, 489, 2905], [0, 489, 529, 518, 2907], [0, 518, 529, 547, 2909], [0, 547, 529, 576, 2911], [0, 576, 529, 605, 2913], [0, 605, 529, 633, 2915], [0, 633, 529, 662, 2917], [0, 662, 529, 691, 2919], [0, 691, 529, 720, 2921], [0, 720, 529, 740, 2923]], [[0, 0, 528, 29, 2945], [0, 57, 528, 86, 2949], [0, 86, 528, 115, 2951], [0, 115, 528, 144, 2953], [0, 144, 528, 173, 2955], [0, 173, 528, 202, 2957], [0, 201, 528, 230, 2959], [0, 230, 528, 259, 2961], [0, 259, 528, 288, 2963], [0, 288, 528, 317, 2965], [0, 317, 528, 346, 2967], [0, 346, 528, 374, 2969], [0, 374, 528, 403, 2971], [0, 403, 528, 432, 2973], [0, 432, 528, 461, 2975], [0, 461, 528, 490, 2977], [0, 490, 528, 518, 2979], [0, 518, 528, 547, 2981], [0, 547, 528, 576, 2983], [0, 576, 528, 605, 2985], [0, 605, 528, 634, 2987], [0, 634, 528, 662, 2989], [0, 662, 528, 691, 2991], [0, 720, 528, 736, 2995]], [[0, 0, 519, 29, 3017], [0, 58, 519, 88, 3021], [0, 88, 519, 117, 3023], [0, 117, 519, 147, 3025], [0, 147, 519, 176, 3027], [0, 176, 519, 205, 3029], [0, 205, 519, 235, 3031], [0, 235, 519, 264, 3033], [0, 264, 519, 294, 3035], [0, 294, 519, 323, 3037], [0, 323, 519, 352, 3039], [0, 352, 519, 382, 3041], [0, 382, 519, 411, 3043], [0, 411, 519, 441, 3045], [0, 441, 519, 470, 3047], [0, 470, 519, 499, 3049], [0, 499, 519, 529, 3051], [0, 529, 519, 558, 3053], [0, 558, 519, 588, 3055], [0, 588, 519, 617, 3057], [0, 617, 519, 646, 3059], [0, 646, 519, 676, 3061], [0, 676, 519, 705, 3063], [0, 705, 519, 734, 3065]], [[0, 0, 519, 29, 3087], [0, 29, 519, 58, 3089], [0, 57, 519, 86, 3091], [0, 86, 519, 115, 3093], [0, 115, 519, 144, 3095], [0, 144, 519, 173, 3097], [0, 173, 519, 202, 3099], [0, 201, 519, 230, 3101], [0, 230, 519, 259, 3103], [0, 259, 519, 288, 3105], [0, 288, 519, 317, 3107], [0, 317, 519, 346, 3109], [0, 346, 519, 374, 3111], [0, 374, 519, 403, 3113], [0, 403, 519, 432, 3115], [0, 432, 519, 461, 3117], [0, 461, 519, 490, 3119], [0, 490, 519, 518, 3121], [0, 518, 519, 547, 3123], [0, 547, 519, 576, 3125], [0, 576, 519, 605, 3127], [0, 605, 519, 634, 3129], [0, 634, 519, 662, 3131], [0, 662, 519, 691, 3133], [0, 691, 519, 720, 3135]], [[0, 0, 529, 29, 3157], [0, 57, 529, 86, 3161], [0, 86, 529, 115, 3163], [0, 115, 529, 144, 3165], [0, 144, 529, 173, 3167], [0, 172, 529, 201, 3169], [0, 201, 529, 230, 3171], [0, 230, 529, 259, 3173], [0, 259, 529, 288, 3175], [0, 288, 529, 317, 3177], [0, 317, 529, 345, 3179], [0, 345, 529, 374, 3181], [0, 374, 529, 403, 3183], [0, 403, 529, 432, 3185], [0, 432, 529, 461, 3187], [0, 461, 529, 489, 3189], [0, 489, 529, 518, 3191], [0, 518, 529, 547, 3193], [0, 547, 529, 576, 3195], [0, 576, 529, 605, 3197], [0, 605, 529, 633, 3199], [0, 633, 529, 662, 3201], [0, 662, 529, 691, 3203], [0, 720, 529, 740, 3207]], [[0, 0, 525, 29, 3229], [0, 29, 525, 58, 3231], [0, 57, 525, 86, 3233], [0, 86, 525, 115, 3235], [0, 115, 525, 144, 3237], [0, 144, 525, 173, 3239], [0, 173, 525, 202, 3241], [0, 201, 525, 230, 3243], [0, 230, 525, 259, 3245], [0, 259, 525, 288, 3247], [0, 288, 525, 317, 3249], [0, 317, 525, 346, 3251], [0, 346, 525, 374, 3253], [0, 374, 525, 403, 3255], [0, 403, 525, 432, 3257], [0, 432, 525, 461, 3259], [0, 461, 525, 490, 3261], [0, 490, 525, 518, 3263], [0, 518, 525, 547, 3265], [0, 547, 525, 576, 3267], [0, 576, 525, 605, 3269], [0, 605, 525, 634, 3271], [0, 634, 525, 662, 3273], [0, 662, 525, 691, 3275], [0, 720, 525, 736, 3279]], [[0, 0, 523, 28, 3301], [0, 56, 523, 85, 3305], [0, 85, 523, 113, 3307], [0, 113, 523, 142, 3309], [0, 142, 523, 170, 3311], [0, 170, 523, 199, 3313], [0, 199, 523, 227, 3315], [0, 227, 523, 256, 3317], [0, 256, 523, 284, 3319], [0, 284, 523, 313, 3321], [0, 313, 523, 341, 3323], [0, 341, 523, 370, 3325], [0, 370, 523, 398, 3327], [0, 398, 523, 427, 3329], [0, 427, 523, 455, 3331], [0, 455, 523, 484, 3333], [0, 484, 523, 512, 3335], [0, 512, 523, 541, 3337], [0, 541, 523, 569, 3339], [0, 569, 523, 598, 3341], [0, 598, 523, 626, 3343], [0, 626, 523, 655, 3345], [0, 655, 523, 683, 3347]], [[0, 0, 519, 29, 3371], [0, 58, 519, 88, 3375], [0, 88, 519, 117, 3377], [0, 117, 519, 147, 3379], [0, 147, 519, 176, 3381], [0, 176, 519, 205, 3383], [0, 205, 519, 235, 3385], [0, 235, 519, 264, 3387], [0, 264, 519, 294, 3389], [0, 294, 519, 323, 3391], [0, 323, 519, 352, 3393], [0, 352, 519, 382, 3395], [0, 382, 519, 411, 3397], [0, 411, 519, 441, 3399], [0, 441, 519, 470, 3401], [0, 470, 519, 499, 3403], [0, 499, 519, 529, 3405], [0, 529, 519, 558, 3407], [0, 558, 519, 588, 3409], [0, 588, 519, 617, 3411], [0, 617, 519, 646, 3413], [0, 646, 519, 676, 3415], [0, 676, 519, 705, 3417], [0, 705, 519, 734, 3419]], [[0, 0, 527, 28, 3441], [0, 28, 527, 57, 3443], [0, 57, 527, 86, 3445], [0, 86, 527, 115, 3447], [0, 114, 527, 143, 3449], [0, 143, 527, 172, 3451], [0, 172, 527, 201, 3453], [0, 201, 527, 230, 3455], [0, 230, 527, 259, 3457], [0, 259, 527, 287, 3459], [0, 287, 527, 316, 3461], [0, 316, 527, 345, 3463], [0, 345, 527, 374, 3465], [0, 374, 527, 403, 3467], [0, 403, 527, 431, 3469], [0, 431, 527, 460, 3471], [0, 460, 527, 489, 3473], [0, 489, 527, 518, 3475], [0, 518, 527, 547, 3477], [0, 547, 527, 575, 3479], [0, 575, 527, 604, 3481], [0, 604, 527, 633, 3483], [0, 633, 527, 662, 3485], [0, 662, 527, 691, 3487], [0, 691, 527, 719, 3489], [0, 719, 527, 737, 3491]], [[0, 0, 519, 29, 3513], [0, 29, 519, 58, 3515], [0, 58, 519, 88, 3517], [0, 88, 519, 117, 3519], [0, 117, 519, 147, 3521], [0, 147, 519, 176, 3523], [0, 176, 519, 205, 3525], [0, 205, 519, 235, 3527], [0, 235, 519, 264, 3529], [0, 264, 519, 294, 3531], [0, 294, 519, 323, 3533], [0, 323, 519, 352, 3535], [0, 352, 519, 382, 3537], [0, 382, 519, 411, 3539], [0, 411, 519, 441, 3541], [0, 441, 519, 470, 3543], [0, 470, 519, 499, 3545], [0, 499, 519, 529, 3547], [0, 529, 519, 558, 3549], [0, 558, 519, 588, 3551], [0, 588, 519, 617, 3553], [0, 617, 519, 646, 3555], [0, 646, 519, 676, 3557], [0, 676, 519, 705, 3559], [0, 705, 519, 734, 3561]], [[0, 0, 527, 29, 3583], [0, 29, 527, 58, 3585], [0, 57, 527, 86, 3587], [0, 86, 527, 115, 3589], [0, 115, 527, 144, 3591], [0, 144, 527, 173, 3593], [0, 173, 527, 202, 3595], [0, 201, 527, 230, 3597], [0, 230, 527, 259, 3599], [0, 259, 527, 288, 3601], [0, 288, 527, 317, 3603], [0, 317, 527, 346, 3605], [0, 346, 527, 374, 3607], [0, 374, 527, 403, 3609], [0, 403, 527, 432, 3611], [0, 432, 527, 461, 3613], [0, 461, 527, 490, 3615], [0, 490, 527, 518, 3617], [0, 518, 527, 547, 3619], [0, 576, 527, 605, 3623], [0, 605, 527, 634, 3625], [0, 634, 527, 662, 3627], [0, 662, 527, 691, 3629], [0, 720, 527, 738, 3633]]], - "expected_junk_img_bojids": [] - }, - "the_eye/the_eye_wtl_00023799" : { - "expected_image_info": [[[0, 0, 610, 55, 6500], [0, 55, 610, 110, 6502], [0, 110, 610, 166, 6504], [0, 166, 610, 221, 6506], [0, 221, 610, 276, 6508], [0, 276, 610, 332, 6510], [0, 332, 610, 387, 6512], [0, 387, 610, 443, 6514], [0, 443, 610, 498, 6516], [0, 498, 610, 554, 6518], [0, 554, 610, 609, 6520], [0, 609, 610, 664, 6522], [0, 664, 610, 720, 6524], [0, 720, 610, 775, 6526], [0, 775, 610, 783, 6528]], [[0, 0, 616, 54, 37], [0, 54, 616, 108, 39], [0, 108, 616, 163, 41], [0, 163, 616, 217, 43], [0, 217, 616, 272, 45], [0, 272, 616, 326, 47], [0, 326, 616, 381, 49], [0, 381, 616, 435, 51], [0, 435, 616, 490, 53], [0, 490, 616, 544, 55], [0, 544, 616, 599, 57], [0, 599, 616, 653, 59], [0, 653, 616, 708, 61], [0, 708, 616, 762, 63], [0, 762, 616, 790, 65]], [[0, 0, 619, 54, 102], [0, 54, 619, 109, 104], [0, 109, 619, 163, 106], [0, 163, 619, 218, 108], [0, 218, 619, 272, 110], [0, 272, 619, 327, 112], [0, 327, 619, 381, 114], [0, 381, 619, 435, 116], [0, 435, 619, 490, 118], [0, 490, 619, 544, 120], [0, 544, 619, 599, 122], [0, 599, 619, 653, 124], [0, 653, 619, 708, 126], [0, 708, 619, 762, 128], [0, 762, 619, 791, 130]], [[0, 0, 616, 54, 167], [0, 54, 616, 108, 169], [0, 108, 616, 163, 171], [0, 163, 616, 217, 173], [0, 217, 616, 272, 175], [0, 272, 616, 326, 177], [0, 326, 616, 381, 179], [0, 381, 616, 435, 181], [0, 435, 616, 490, 183], [0, 490, 616, 544, 185], [0, 544, 616, 599, 187], [0, 599, 616, 653, 189], [0, 653, 616, 708, 191], [0, 708, 616, 762, 193], [0, 762, 616, 787, 195]], [[0, 0, 610, 55, 232], [0, 55, 610, 111, 234], [0, 111, 610, 166, 236], [0, 166, 610, 222, 238], [0, 222, 610, 278, 240], [0, 278, 610, 333, 242], [0, 333, 610, 389, 244], [0, 389, 610, 445, 246], [0, 445, 610, 501, 248], [0, 501, 610, 556, 250], [0, 556, 610, 612, 252], [0, 612, 610, 668, 254], [0, 668, 610, 723, 256], [0, 723, 610, 779, 258], [0, 779, 610, 786, 260]], [[0, 0, 610, 55, 297], [0, 55, 610, 111, 299], [0, 111, 610, 166, 301], [0, 166, 610, 221, 303], [0, 221, 610, 277, 305], [0, 277, 610, 332, 307], [0, 332, 610, 388, 309], [0, 388, 610, 443, 311], [0, 443, 610, 499, 313], [0, 499, 610, 554, 315], [0, 554, 610, 610, 317], [0, 610, 610, 665, 319], [0, 665, 610, 720, 321], [0, 720, 610, 776, 323], [0, 776, 610, 783, 325]], [[0, 0, 789, 42, 362], [0, 42, 789, 85, 364], [0, 85, 789, 127, 366], [0, 127, 789, 170, 368], [0, 170, 789, 213, 370], [0, 213, 789, 256, 372], [0, 256, 789, 298, 374], [0, 298, 789, 341, 376], [0, 341, 789, 384, 378], [0, 384, 789, 427, 380], [0, 427, 789, 469, 382], [0, 469, 789, 512, 384], [0, 512, 789, 555, 386], [0, 555, 789, 597, 388], [0, 597, 789, 619, 390]], [[0, 0, 610, 55, 427], [0, 55, 610, 110, 429], [0, 110, 610, 166, 431], [0, 166, 610, 221, 433], [0, 221, 610, 276, 435], [0, 276, 610, 332, 437], [0, 332, 610, 387, 439], [0, 387, 610, 443, 441], [0, 443, 610, 498, 443], [0, 498, 610, 554, 445], [0, 554, 610, 609, 447], [0, 609, 610, 664, 449], [0, 664, 610, 720, 451], [0, 720, 610, 775, 453], [0, 775, 610, 783, 455]], [[0, 0, 619, 54, 492], [0, 54, 619, 108, 494], [0, 108, 619, 163, 496], [0, 163, 619, 217, 498], [0, 217, 619, 272, 500], [0, 272, 619, 326, 502], [0, 326, 619, 381, 504], [0, 381, 619, 435, 506], [0, 435, 619, 490, 508], [0, 490, 619, 544, 510], [0, 544, 619, 599, 512], [0, 599, 619, 653, 514], [0, 653, 619, 708, 516], [0, 708, 619, 762, 518], [0, 762, 619, 790, 520]], [[0, 0, 610, 55, 557], [0, 55, 610, 111, 559], [0, 111, 610, 166, 561], [0, 166, 610, 222, 563], [0, 222, 610, 277, 565], [0, 277, 610, 333, 567], [0, 333, 610, 388, 569], [0, 388, 610, 443, 571], [0, 443, 610, 499, 573], [0, 499, 610, 554, 575], [0, 554, 610, 610, 577], [0, 610, 610, 665, 579], [0, 665, 610, 721, 581], [0, 721, 610, 776, 583], [0, 776, 610, 783, 585]], [[0, 0, 610, 55, 622], [0, 55, 610, 110, 624], [0, 110, 610, 166, 626], [0, 166, 610, 221, 628], [0, 221, 610, 276, 630], [0, 276, 610, 332, 632], [0, 332, 610, 387, 634], [0, 387, 610, 443, 636], [0, 443, 610, 498, 638], [0, 498, 610, 554, 640], [0, 554, 610, 609, 642], [0, 609, 610, 664, 644], [0, 664, 610, 720, 646], [0, 720, 610, 775, 648], [0, 775, 610, 783, 650]], [[0, 0, 610, 55, 687], [0, 55, 610, 111, 689], [0, 111, 610, 166, 691], [0, 166, 610, 222, 693], [0, 222, 610, 278, 695], [0, 278, 610, 333, 697], [0, 333, 610, 389, 699], [0, 389, 610, 445, 701], [0, 445, 610, 501, 703], [0, 501, 610, 556, 705], [0, 556, 610, 612, 707], [0, 612, 610, 668, 709], [0, 668, 610, 723, 711], [0, 723, 610, 779, 713], [0, 779, 610, 786, 715]], [[0, 0, 610, 55, 752], [0, 55, 610, 111, 754], [0, 111, 610, 166, 756], [0, 166, 610, 222, 758], [0, 222, 610, 278, 760], [0, 278, 610, 333, 762], [0, 333, 610, 389, 764], [0, 389, 610, 445, 766], [0, 445, 610, 501, 768], [0, 501, 610, 556, 770], [0, 556, 610, 612, 772], [0, 612, 610, 668, 774], [0, 668, 610, 723, 776], [0, 723, 610, 779, 778], [0, 779, 610, 786, 780]], [[0, 0, 610, 55, 817], [0, 55, 610, 111, 819], [0, 111, 610, 166, 821], [0, 166, 610, 221, 823], [0, 221, 610, 277, 825], [0, 277, 610, 332, 827], [0, 332, 610, 388, 829], [0, 388, 610, 443, 831], [0, 443, 610, 499, 833], [0, 499, 610, 554, 835], [0, 554, 610, 610, 837], [0, 610, 610, 665, 839], [0, 665, 610, 720, 841], [0, 720, 610, 776, 843], [0, 776, 610, 783, 845]], [[0, 0, 610, 55, 882], [0, 55, 610, 111, 884], [0, 111, 610, 166, 886], [0, 166, 610, 222, 888], [0, 222, 610, 277, 890], [0, 277, 610, 333, 892], [0, 333, 610, 388, 894], [0, 388, 610, 443, 896], [0, 443, 610, 499, 898], [0, 499, 610, 554, 900], [0, 554, 610, 610, 902], [0, 610, 610, 665, 904], [0, 665, 610, 721, 906], [0, 721, 610, 776, 908], [0, 776, 610, 783, 910]], [[0, 0, 610, 55, 947], [0, 55, 610, 111, 949], [0, 111, 610, 166, 951], [0, 166, 610, 222, 953], [0, 222, 610, 277, 955], [0, 277, 610, 333, 957], [0, 333, 610, 388, 959], [0, 388, 610, 443, 961], [0, 443, 610, 499, 963], [0, 499, 610, 554, 965], [0, 554, 610, 610, 967], [0, 610, 610, 665, 969], [0, 665, 610, 721, 971], [0, 721, 610, 776, 973], [0, 776, 610, 783, 975]], [[0, 0, 610, 55, 1012], [0, 55, 610, 110, 1014], [0, 110, 610, 166, 1016], [0, 166, 610, 221, 1018], [0, 221, 610, 276, 1020], [0, 276, 610, 332, 1022], [0, 332, 610, 387, 1024], [0, 387, 610, 443, 1026], [0, 443, 610, 498, 1028], [0, 498, 610, 554, 1030], [0, 554, 610, 609, 1032], [0, 609, 610, 664, 1034], [0, 664, 610, 720, 1036], [0, 720, 610, 775, 1038], [0, 775, 610, 783, 1040]], [[0, 0, 610, 55, 1077], [0, 55, 610, 111, 1079], [0, 111, 610, 166, 1081], [0, 166, 610, 222, 1083], [0, 222, 610, 278, 1085], [0, 278, 610, 333, 1087], [0, 333, 610, 389, 1089], [0, 389, 610, 445, 1091], [0, 445, 610, 501, 1093], [0, 501, 610, 556, 1095], [0, 556, 610, 612, 1097], [0, 612, 610, 668, 1099], [0, 668, 610, 723, 1101], [0, 723, 610, 779, 1103], [0, 779, 610, 786, 1105]], [[0, 0, 610, 55, 1142], [0, 55, 610, 110, 1144], [0, 110, 610, 166, 1146], [0, 166, 610, 221, 1148], [0, 221, 610, 276, 1150], [0, 276, 610, 332, 1152], [0, 332, 610, 387, 1154], [0, 387, 610, 443, 1156], [0, 443, 610, 498, 1158], [0, 498, 610, 554, 1160], [0, 554, 610, 609, 1162], [0, 609, 610, 664, 1164], [0, 664, 610, 720, 1166], [0, 720, 610, 775, 1168], [0, 775, 610, 783, 1170]], [[0, 0, 622, 54, 1207], [0, 54, 622, 108, 1209], [0, 108, 622, 163, 1211], [0, 163, 622, 217, 1213], [0, 217, 622, 272, 1215], [0, 272, 622, 326, 1217], [0, 326, 622, 381, 1219], [0, 381, 622, 435, 1221], [0, 435, 622, 490, 1223], [0, 490, 622, 544, 1225], [0, 544, 622, 599, 1227], [0, 599, 622, 653, 1229], [0, 653, 622, 708, 1231], [0, 708, 622, 762, 1233], [0, 762, 622, 793, 1235]], [[0, 0, 619, 54, 1272], [0, 54, 619, 109, 1274], [0, 109, 619, 163, 1276], [0, 163, 619, 218, 1278], [0, 218, 619, 272, 1280], [0, 272, 619, 327, 1282], [0, 327, 619, 381, 1284], [0, 381, 619, 435, 1286], [0, 435, 619, 490, 1288], [0, 490, 619, 544, 1290], [0, 544, 619, 599, 1292], [0, 599, 619, 653, 1294], [0, 653, 619, 708, 1296], [0, 708, 619, 762, 1298], [0, 762, 619, 791, 1300]], [[0, 0, 610, 55, 1337], [0, 55, 610, 111, 1339], [0, 111, 610, 166, 1341], [0, 166, 610, 222, 1343], [0, 222, 610, 278, 1345], [0, 278, 610, 333, 1347], [0, 333, 610, 389, 1349], [0, 389, 610, 445, 1351], [0, 445, 610, 501, 1353], [0, 501, 610, 556, 1355], [0, 556, 610, 612, 1357], [0, 612, 610, 668, 1359], [0, 668, 610, 723, 1361], [0, 723, 610, 779, 1363], [0, 779, 610, 786, 1365]], [[0, 0, 616, 54, 1402], [0, 54, 616, 108, 1404], [0, 108, 616, 163, 1406], [0, 163, 616, 217, 1408], [0, 217, 616, 272, 1410], [0, 272, 616, 326, 1412], [0, 326, 616, 381, 1414], [0, 381, 616, 435, 1416], [0, 435, 616, 490, 1418], [0, 490, 616, 544, 1420], [0, 544, 616, 599, 1422], [0, 599, 616, 653, 1424], [0, 653, 616, 708, 1426], [0, 708, 616, 762, 1428], [0, 762, 616, 790, 1430]], [[0, 0, 616, 54, 1467], [0, 54, 616, 109, 1469], [0, 109, 616, 163, 1471], [0, 163, 616, 218, 1473], [0, 218, 616, 272, 1475], [0, 272, 616, 327, 1477], [0, 327, 616, 381, 1479], [0, 381, 616, 436, 1481], [0, 436, 616, 490, 1483], [0, 490, 616, 545, 1485], [0, 545, 616, 599, 1487], [0, 599, 616, 653, 1489], [0, 653, 616, 708, 1491], [0, 708, 616, 762, 1493], [0, 762, 616, 791, 1495]], [[0, 0, 610, 55, 1532], [0, 55, 610, 111, 1534], [0, 111, 610, 166, 1536], [0, 166, 610, 221, 1538], [0, 221, 610, 277, 1540], [0, 277, 610, 332, 1542], [0, 332, 610, 388, 1544], [0, 388, 610, 443, 1546], [0, 443, 610, 499, 1548], [0, 499, 610, 554, 1550], [0, 554, 610, 610, 1552], [0, 610, 610, 665, 1554], [0, 665, 610, 720, 1556], [0, 720, 610, 776, 1558], [0, 776, 610, 783, 1560]], [[0, 0, 616, 54, 1597], [0, 54, 616, 108, 1599], [0, 108, 616, 163, 1601], [0, 163, 616, 217, 1603], [0, 217, 616, 272, 1605], [0, 272, 616, 326, 1607], [0, 326, 616, 381, 1609], [0, 381, 616, 435, 1611], [0, 435, 616, 490, 1613], [0, 490, 616, 544, 1615], [0, 544, 616, 599, 1617], [0, 599, 616, 653, 1619], [0, 653, 616, 708, 1621], [0, 708, 616, 762, 1623], [0, 762, 616, 787, 1625]], [[0, 0, 619, 54, 1662], [0, 54, 619, 109, 1664], [0, 109, 619, 163, 1666], [0, 163, 619, 218, 1668], [0, 218, 619, 272, 1670], [0, 272, 619, 327, 1672], [0, 327, 619, 381, 1674], [0, 381, 619, 435, 1676], [0, 435, 619, 490, 1678], [0, 490, 619, 544, 1680], [0, 544, 619, 599, 1682], [0, 599, 619, 653, 1684], [0, 653, 619, 708, 1686], [0, 708, 619, 762, 1688], [0, 762, 619, 791, 1690]], [[0, 0, 610, 56, 1727], [0, 56, 610, 111, 1729], [0, 111, 610, 167, 1731], [0, 167, 610, 223, 1733], [0, 223, 610, 278, 1735], [0, 278, 610, 334, 1737], [0, 334, 610, 390, 1739], [0, 390, 610, 445, 1741], [0, 445, 610, 501, 1743], [0, 501, 610, 557, 1745], [0, 557, 610, 612, 1747], [0, 612, 610, 668, 1749], [0, 668, 610, 724, 1751], [0, 724, 610, 780, 1753], [0, 780, 610, 787, 1755]], [[0, 0, 622, 54, 1792], [0, 54, 622, 109, 1794], [0, 108, 622, 163, 1796], [0, 163, 622, 217, 1798], [0, 217, 622, 272, 1800], [0, 272, 622, 326, 1802], [0, 326, 622, 381, 1804], [0, 381, 622, 435, 1806], [0, 435, 622, 490, 1808], [0, 490, 622, 544, 1810], [0, 544, 622, 599, 1812], [0, 599, 622, 653, 1814], [0, 653, 622, 708, 1816], [0, 708, 622, 762, 1818], [0, 762, 622, 793, 1820]], [[0, 0, 791, 42, 1857], [0, 42, 791, 85, 1859], [0, 85, 791, 127, 1861], [0, 127, 791, 170, 1863], [0, 170, 791, 213, 1865], [0, 213, 791, 255, 1867], [0, 255, 791, 298, 1869], [0, 298, 791, 341, 1871], [0, 341, 791, 384, 1873], [0, 384, 791, 426, 1875], [0, 426, 791, 469, 1877], [0, 469, 791, 512, 1879], [0, 512, 791, 554, 1881], [0, 597, 791, 622, 1885]], [[0, 0, 610, 55, 1922], [0, 55, 610, 111, 1924], [0, 111, 610, 166, 1926], [0, 166, 610, 222, 1928], [0, 222, 610, 277, 1930], [0, 277, 610, 333, 1932], [0, 333, 610, 388, 1934], [0, 388, 610, 443, 1936], [0, 443, 610, 499, 1938], [0, 499, 610, 554, 1940], [0, 554, 610, 610, 1942], [0, 610, 610, 665, 1944], [0, 665, 610, 721, 1946], [0, 721, 610, 776, 1948], [0, 776, 610, 783, 1950]], [[0, 0, 610, 55, 1987], [0, 55, 610, 110, 1989], [0, 110, 610, 166, 1991], [0, 166, 610, 221, 1993], [0, 221, 610, 276, 1995], [0, 276, 610, 332, 1997], [0, 332, 610, 387, 1999], [0, 387, 610, 443, 2001], [0, 443, 610, 498, 2003], [0, 498, 610, 554, 2005], [0, 554, 610, 609, 2007], [0, 609, 610, 664, 2009], [0, 664, 610, 720, 2011], [0, 720, 610, 775, 2013], [0, 775, 610, 783, 2015]], [[0, 0, 610, 55, 2052], [0, 55, 610, 111, 2054], [0, 111, 610, 166, 2056], [0, 166, 610, 221, 2058], [0, 221, 610, 277, 2060], [0, 277, 610, 332, 2062], [0, 332, 610, 388, 2064], [0, 388, 610, 443, 2066], [0, 443, 610, 499, 2068], [0, 499, 610, 554, 2070], [0, 554, 610, 610, 2072], [0, 610, 610, 665, 2074], [0, 665, 610, 720, 2076], [0, 720, 610, 776, 2078], [0, 776, 610, 783, 2080]], [[0, 0, 618, 54, 2117], [0, 54, 618, 109, 2119], [0, 109, 618, 163, 2121], [0, 163, 618, 218, 2123], [0, 218, 618, 272, 2125], [0, 272, 618, 327, 2127], [0, 327, 618, 381, 2129], [0, 381, 618, 436, 2131], [0, 436, 618, 490, 2133], [0, 490, 618, 545, 2135], [0, 545, 618, 599, 2137], [0, 599, 618, 654, 2139], [0, 654, 618, 708, 2141], [0, 708, 618, 763, 2143], [0, 763, 618, 791, 2145]], [[0, 0, 619, 54, 2182], [0, 54, 619, 108, 2184], [0, 108, 619, 163, 2186], [0, 163, 619, 217, 2188], [0, 217, 619, 272, 2190], [0, 272, 619, 326, 2192], [0, 326, 619, 381, 2194], [0, 381, 619, 435, 2196], [0, 435, 619, 489, 2198], [0, 489, 619, 544, 2200], [0, 544, 619, 598, 2202], [0, 598, 619, 653, 2204], [0, 653, 619, 707, 2206], [0, 707, 619, 762, 2208], [0, 762, 619, 790, 2210]], [[0, 0, 616, 54, 2247], [0, 53, 616, 108, 2249], [0, 108, 616, 162, 2251], [0, 162, 616, 217, 2253], [0, 217, 616, 271, 2255], [0, 271, 616, 326, 2257], [0, 326, 616, 380, 2259], [0, 380, 616, 435, 2261], [0, 435, 616, 489, 2263], [0, 489, 616, 544, 2265], [0, 544, 616, 598, 2267], [0, 598, 616, 653, 2269], [0, 653, 616, 707, 2271], [0, 707, 616, 762, 2273], [0, 762, 616, 790, 2275]], [[0, 0, 610, 55, 2312], [0, 55, 610, 111, 2314], [0, 111, 610, 166, 2316], [0, 166, 610, 222, 2318], [0, 222, 610, 277, 2320], [0, 277, 610, 333, 2322], [0, 333, 610, 388, 2324], [0, 388, 610, 443, 2326], [0, 443, 610, 499, 2328], [0, 499, 610, 554, 2330], [0, 554, 610, 610, 2332], [0, 610, 610, 665, 2334], [0, 665, 610, 721, 2336], [0, 721, 610, 776, 2338], [0, 776, 610, 783, 2340]], [[0, 0, 627, 53, 2377], [0, 53, 627, 106, 2379], [0, 106, 627, 160, 2381], [0, 160, 627, 213, 2383], [0, 213, 627, 266, 2385], [0, 266, 627, 320, 2387], [0, 320, 627, 373, 2389], [0, 373, 627, 426, 2391], [0, 426, 627, 479, 2393], [0, 479, 627, 533, 2395], [0, 533, 627, 586, 2397], [0, 586, 627, 639, 2399], [0, 639, 627, 693, 2401], [0, 693, 627, 746, 2403], [0, 746, 627, 795, 2405]], [[0, 0, 610, 55, 2442], [0, 55, 610, 111, 2444], [0, 111, 610, 166, 2446], [0, 166, 610, 221, 2448], [0, 221, 610, 277, 2450], [0, 277, 610, 332, 2452], [0, 332, 610, 388, 2454], [0, 388, 610, 443, 2456], [0, 443, 610, 499, 2458], [0, 499, 610, 554, 2460], [0, 554, 610, 610, 2462], [0, 610, 610, 665, 2464], [0, 665, 610, 720, 2466], [0, 720, 610, 776, 2468], [0, 776, 610, 783, 2470]], [[0, 0, 610, 55, 2507], [0, 55, 610, 110, 2509], [0, 110, 610, 166, 2511], [0, 166, 610, 221, 2513], [0, 221, 610, 276, 2515], [0, 276, 610, 332, 2517], [0, 332, 610, 387, 2519], [0, 387, 610, 443, 2521], [0, 443, 610, 498, 2523], [0, 498, 610, 554, 2525], [0, 554, 610, 609, 2527], [0, 609, 610, 664, 2529], [0, 664, 610, 720, 2531], [0, 720, 610, 775, 2533], [0, 775, 610, 783, 2535]], [[0, 0, 616, 54, 2572], [0, 54, 616, 108, 2574], [0, 108, 616, 163, 2576], [0, 163, 616, 217, 2578], [0, 217, 616, 272, 2580], [0, 272, 616, 326, 2582], [0, 326, 616, 381, 2584], [0, 381, 616, 435, 2586], [0, 435, 616, 489, 2588], [0, 489, 616, 544, 2590], [0, 544, 616, 598, 2592], [0, 598, 616, 653, 2594], [0, 653, 616, 707, 2596], [0, 707, 616, 762, 2598], [0, 762, 616, 790, 2600]], [[0, 0, 616, 54, 2637], [0, 54, 616, 109, 2639], [0, 109, 616, 163, 2641], [0, 163, 616, 218, 2643], [0, 218, 616, 272, 2645], [0, 272, 616, 327, 2647], [0, 327, 616, 381, 2649], [0, 381, 616, 435, 2651], [0, 435, 616, 490, 2653], [0, 490, 616, 544, 2655], [0, 544, 616, 599, 2657], [0, 599, 616, 653, 2659], [0, 653, 616, 708, 2661], [0, 708, 616, 762, 2663], [0, 762, 616, 791, 2665]], [[0, 0, 619, 54, 2702], [0, 54, 619, 109, 2704], [0, 109, 619, 163, 2706], [0, 163, 619, 218, 2708], [0, 218, 619, 272, 2710], [0, 272, 619, 327, 2712], [0, 327, 619, 381, 2714], [0, 381, 619, 435, 2716], [0, 435, 619, 490, 2718], [0, 490, 619, 544, 2720], [0, 544, 619, 599, 2722], [0, 599, 619, 653, 2724], [0, 653, 619, 708, 2726], [0, 708, 619, 762, 2728], [0, 762, 619, 791, 2730]], [[0, 0, 616, 54, 2767], [0, 54, 616, 109, 2769], [0, 109, 616, 163, 2771], [0, 163, 616, 218, 2773], [0, 218, 616, 272, 2775], [0, 272, 616, 327, 2777], [0, 327, 616, 381, 2779], [0, 381, 616, 435, 2781], [0, 435, 616, 490, 2783], [0, 490, 616, 544, 2785], [0, 544, 616, 599, 2787], [0, 599, 616, 653, 2789], [0, 653, 616, 708, 2791], [0, 708, 616, 762, 2793], [0, 762, 616, 791, 2795]], [[0, 0, 610, 55, 2832], [0, 55, 610, 111, 2834], [0, 111, 610, 166, 2836], [0, 166, 610, 222, 2838], [0, 222, 610, 278, 2840], [0, 278, 610, 333, 2842], [0, 333, 610, 389, 2844], [0, 389, 610, 445, 2846], [0, 445, 610, 501, 2848], [0, 501, 610, 556, 2850], [0, 556, 610, 612, 2852], [0, 612, 610, 668, 2854], [0, 668, 610, 723, 2856], [0, 723, 610, 779, 2858], [0, 779, 610, 786, 2860]], [[0, 0, 622, 54, 2897], [0, 54, 622, 109, 2899], [0, 108, 622, 163, 2901], [0, 163, 622, 217, 2903], [0, 217, 622, 272, 2905], [0, 272, 622, 326, 2907], [0, 326, 622, 381, 2909], [0, 381, 622, 435, 2911], [0, 435, 622, 490, 2913], [0, 490, 622, 544, 2915], [0, 544, 622, 599, 2917], [0, 599, 622, 653, 2919], [0, 653, 622, 708, 2921], [0, 708, 622, 762, 2923], [0, 762, 622, 793, 2925]], [[0, 0, 624, 53, 2962], [0, 53, 624, 107, 2964], [0, 107, 624, 160, 2966], [0, 160, 624, 214, 2968], [0, 214, 624, 267, 2970], [0, 267, 624, 321, 2972], [0, 321, 624, 374, 2974], [0, 374, 624, 428, 2976], [0, 428, 624, 481, 2978], [0, 481, 624, 535, 2980], [0, 535, 624, 588, 2982], [0, 588, 624, 642, 2984], [0, 642, 624, 695, 2986], [0, 695, 624, 749, 2988], [0, 749, 624, 798, 2990]], [[0, 0, 619, 54, 3027], [0, 54, 619, 108, 3029], [0, 108, 619, 163, 3031], [0, 163, 619, 217, 3033], [0, 217, 619, 272, 3035], [0, 272, 619, 326, 3037], [0, 326, 619, 381, 3039], [0, 381, 619, 435, 3041], [0, 435, 619, 489, 3043], [0, 489, 619, 544, 3045], [0, 544, 619, 598, 3047], [0, 598, 619, 653, 3049], [0, 653, 619, 707, 3051], [0, 707, 619, 762, 3053], [0, 762, 619, 790, 3055]], [[0, 0, 619, 54, 3092], [0, 54, 619, 109, 3094], [0, 109, 619, 163, 3096], [0, 163, 619, 218, 3098], [0, 218, 619, 272, 3100], [0, 272, 619, 327, 3102], [0, 327, 619, 381, 3104], [0, 381, 619, 435, 3106], [0, 435, 619, 490, 3108], [0, 490, 619, 544, 3110], [0, 544, 619, 599, 3112], [0, 599, 619, 653, 3114], [0, 653, 619, 708, 3116], [0, 708, 619, 762, 3118], [0, 762, 619, 791, 3120]], [[0, 0, 610, 55, 3157], [0, 55, 610, 111, 3159], [0, 111, 610, 166, 3161], [0, 166, 610, 221, 3163], [0, 221, 610, 277, 3165], [0, 277, 610, 332, 3167], [0, 332, 610, 388, 3169], [0, 388, 610, 443, 3171], [0, 443, 610, 499, 3173], [0, 499, 610, 554, 3175], [0, 554, 610, 610, 3177], [0, 610, 610, 665, 3179], [0, 665, 610, 720, 3181], [0, 720, 610, 776, 3183], [0, 776, 610, 783, 3185]]], - "expected_junk_img_bojids": [] - }, - "vertical_detection/三国演义_繁体竖排版" : { - "expected_text_layout": [ - "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical" - ] - }, - "vertical_detection/净空法师_大乘无量寿" : { - "expected_text_layout" : [ - "vertical", "unknow", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical", "vertical" - ] - }, - "vertical_detection/om3006239" : { - "expected_text_layout" : [ - "horizontal", "horizontal", "horizontal", "horizontal", "horizontal", "horizontal", "horizontal", "horizontal", "horizontal", "horizontal" - ] - }, - "vertical_detection/isit.2006.261791" : { - "expected_text_layout" : [ - "horizontal", "horizontal", "horizontal", "horizontal", "horizontal" - ] - }, - "the_eye/the_eye_cdn_00328381" : { - "expected_image_info": [[[0, 0, 405, 36, 11428], [0, 73, 405, 110, 11429], [0, 147, 405, 184, 11430], [0, 184, 405, 222, 11431], [0, 222, 405, 258, 11432], [0, 258, 405, 295, 11433], [0, 295, 405, 333, 11434], [0, 333, 405, 369, 11435], [0, 369, 405, 406, 11436], [0, 406, 405, 444, 11437], [0, 444, 405, 480, 11438], [0, 517, 405, 555, 11439]], [[0, 0, 402, 37, 9852], [0, 555, 402, 592, 4], [0, 592, 402, 628, 5]], [[0, 0, 396, 38, 9854], [0, 38, 396, 76, 10], [0, 76, 396, 114, 11], [0, 114, 396, 152, 12], [0, 152, 396, 191, 13], [0, 191, 396, 229, 14], [0, 229, 396, 267, 15], [0, 267, 396, 305, 16], [0, 305, 396, 344, 17], [0, 344, 396, 382, 18], [0, 382, 396, 420, 19], [0, 420, 396, 458, 20], [0, 458, 396, 497, 21], [0, 497, 396, 535, 22], [0, 535, 396, 573, 23], [0, 573, 396, 611, 24], [0, 650, 396, 671, 9853]], [[0, 0, 396, 38, 9854], [0, 38, 396, 76, 29], [0, 76, 396, 114, 30], [0, 114, 396, 153, 31], [0, 153, 396, 191, 32], [0, 191, 396, 229, 33], [0, 229, 396, 267, 34], [0, 267, 396, 306, 35], [0, 497, 396, 535, 36], [0, 573, 396, 612, 37], [0, 612, 396, 650, 38], [0, 650, 396, 672, 9853]], [[0, 0, 396, 38, 9854], [0, 38, 396, 76, 43], [0, 76, 396, 114, 44], [0, 114, 396, 153, 45], [0, 153, 396, 191, 46], [0, 191, 396, 229, 47], [0, 229, 396, 267, 48], [0, 267, 396, 306, 49], [0, 306, 396, 344, 50], [0, 344, 396, 382, 51], [0, 382, 396, 420, 52], [0, 420, 396, 459, 53], [0, 459, 396, 497, 54], [0, 497, 396, 535, 55], [0, 535, 396, 573, 56], [0, 573, 396, 612, 57], [0, 612, 396, 650, 58], [0, 650, 396, 672, 9853]], [[0, 0, 396, 38, 63], [0, 38, 396, 76, 64], [0, 76, 396, 114, 65], [0, 114, 396, 152, 66], [0, 152, 396, 191, 67], [0, 191, 396, 229, 68], [0, 229, 396, 267, 69], [0, 267, 396, 305, 70], [0, 305, 396, 344, 71], [0, 344, 396, 382, 72], [0, 382, 396, 420, 73], [0, 420, 396, 458, 74], [0, 458, 396, 497, 75], [0, 497, 396, 535, 76], [0, 535, 396, 573, 9854], [0, 611, 396, 650, 77], [0, 650, 396, 671, 9853]], [[0, 0, 402, 36, 9852], [0, 73, 402, 110, 82], [0, 110, 402, 147, 83], [0, 147, 402, 184, 84], [0, 184, 402, 222, 85], [0, 222, 402, 258, 86], [0, 258, 402, 295, 87], [0, 295, 402, 333, 88], [0, 333, 402, 369, 89], [0, 369, 402, 406, 90], [0, 406, 402, 444, 91], [0, 444, 402, 480, 92], [0, 480, 402, 517, 93], [0, 517, 402, 555, 94], [0, 555, 402, 591, 95], [0, 591, 402, 628, 96]], [[0, 0, 396, 38, 101], [0, 38, 396, 76, 102], [0, 76, 396, 114, 103], [0, 114, 396, 152, 104], [0, 152, 396, 191, 105], [0, 191, 396, 229, 106], [0, 229, 396, 267, 107], [0, 267, 396, 305, 108], [0, 305, 396, 344, 109], [0, 344, 396, 382, 110], [0, 382, 396, 420, 111], [0, 420, 396, 458, 112], [0, 458, 396, 497, 113], [0, 497, 396, 535, 114], [0, 535, 396, 573, 115], [0, 573, 396, 611, 116], [0, 611, 396, 650, 117], [0, 650, 396, 671, 9853]], [[0, 0, 396, 38, 122], [0, 38, 396, 76, 123], [0, 76, 396, 114, 124], [0, 114, 396, 152, 125], [0, 152, 396, 191, 126], [0, 191, 396, 229, 127], [0, 229, 396, 267, 128], [0, 267, 396, 305, 129], [0, 305, 396, 344, 130], [0, 344, 396, 382, 131], [0, 382, 396, 420, 132], [0, 420, 396, 458, 133], [0, 458, 396, 497, 134], [0, 497, 396, 535, 135], [0, 535, 396, 573, 136], [0, 573, 396, 611, 137], [0, 611, 396, 650, 138], [0, 650, 396, 671, 9853]], [[0, 0, 396, 38, 143], [0, 38, 396, 76, 144], [0, 76, 396, 114, 145], [0, 114, 396, 153, 146], [0, 153, 396, 191, 147], [0, 191, 396, 229, 148], [0, 229, 396, 267, 149], [0, 267, 396, 306, 150], [0, 306, 396, 344, 151], [0, 344, 396, 382, 152], [0, 382, 396, 420, 153], [0, 420, 396, 459, 154], [0, 459, 396, 497, 155], [0, 497, 396, 535, 156], [0, 535, 396, 573, 157], [0, 573, 396, 612, 158], [0, 612, 396, 650, 159], [0, 650, 396, 672, 9853]], [[0, 0, 396, 38, 164], [0, 38, 396, 76, 165], [0, 76, 396, 115, 166], [0, 115, 396, 153, 167], [0, 153, 396, 191, 168], [0, 191, 396, 229, 169], [0, 229, 396, 268, 170], [0, 268, 396, 306, 171], [0, 306, 396, 344, 172], [0, 344, 396, 382, 173], [0, 382, 396, 421, 174], [0, 421, 396, 459, 175], [0, 459, 396, 497, 176], [0, 497, 396, 535, 177], [0, 535, 396, 574, 178], [0, 574, 396, 612, 179], [0, 612, 396, 650, 180], [0, 650, 396, 672, 9853]], [[0, 0, 396, 38, 185], [0, 38, 396, 76, 186], [0, 76, 396, 114, 187], [0, 114, 396, 153, 188], [0, 153, 396, 191, 189], [0, 191, 396, 229, 190], [0, 229, 396, 267, 191], [0, 267, 396, 306, 192], [0, 306, 396, 344, 193], [0, 344, 396, 382, 194], [0, 382, 396, 420, 195], [0, 420, 396, 459, 196], [0, 459, 396, 497, 197], [0, 497, 396, 535, 198], [0, 535, 396, 573, 199], [0, 573, 396, 612, 200], [0, 612, 396, 650, 201], [0, 650, 396, 672, 9853]], [[0, 0, 396, 38, 206], [0, 38, 396, 76, 207], [0, 76, 396, 114, 208], [0, 114, 396, 153, 209], [0, 153, 396, 191, 210], [0, 191, 396, 229, 211], [0, 229, 396, 267, 212], [0, 267, 396, 306, 213], [0, 306, 396, 344, 214], [0, 344, 396, 382, 215], [0, 382, 396, 420, 216], [0, 420, 396, 459, 217], [0, 459, 396, 497, 218], [0, 497, 396, 535, 219], [0, 535, 396, 573, 220], [0, 573, 396, 612, 221], [0, 612, 396, 650, 222], [0, 650, 396, 672, 223]], [[0, 0, 396, 38, 228], [0, 38, 396, 76, 229], [0, 76, 396, 114, 230], [0, 114, 396, 153, 231], [0, 153, 396, 191, 232], [0, 191, 396, 229, 233], [0, 229, 396, 267, 234], [0, 267, 396, 306, 235], [0, 306, 396, 344, 236], [0, 344, 396, 382, 237], [0, 382, 396, 420, 238], [0, 420, 396, 459, 239], [0, 459, 396, 497, 240], [0, 497, 396, 535, 241], [0, 535, 396, 573, 242], [0, 573, 396, 612, 243], [0, 612, 396, 650, 244], [0, 650, 396, 672, 9853]], [[0, 0, 396, 38, 249], [0, 38, 396, 76, 250], [0, 76, 396, 115, 251], [0, 115, 396, 153, 252], [0, 153, 396, 191, 253], [0, 191, 396, 229, 254], [0, 229, 396, 268, 255], [0, 268, 396, 306, 256], [0, 306, 396, 344, 257], [0, 344, 396, 382, 258], [0, 382, 396, 421, 259], [0, 421, 396, 459, 260], [0, 459, 396, 497, 261], [0, 497, 396, 535, 262], [0, 535, 396, 574, 263], [0, 574, 396, 612, 264], [0, 612, 396, 650, 265], [0, 650, 396, 672, 9853]], [[0, 0, 396, 38, 270], [0, 38, 396, 76, 271], [0, 76, 396, 114, 272], [0, 114, 396, 153, 273], [0, 153, 396, 191, 274], [0, 191, 396, 229, 275], [0, 229, 396, 267, 276], [0, 267, 396, 306, 277], [0, 306, 396, 344, 278], [0, 344, 396, 382, 279], [0, 382, 396, 420, 280], [0, 420, 396, 459, 281], [0, 459, 396, 497, 282], [0, 497, 396, 535, 283], [0, 535, 396, 573, 284], [0, 573, 396, 612, 285], [0, 612, 396, 650, 286], [0, 650, 396, 672, 9853]], [[0, 0, 396, 38, 291], [0, 38, 396, 76, 292], [0, 76, 396, 114, 293], [0, 114, 396, 152, 294], [0, 152, 396, 191, 295], [0, 191, 396, 229, 296], [0, 229, 396, 267, 297], [0, 267, 396, 305, 298], [0, 305, 396, 344, 299], [0, 344, 396, 382, 300], [0, 382, 396, 420, 301], [0, 420, 396, 458, 302], [0, 458, 396, 497, 303], [0, 497, 396, 535, 304], [0, 535, 396, 573, 305], [0, 573, 396, 611, 306], [0, 611, 396, 650, 307], [0, 650, 396, 671, 9853]], [[0, 0, 402, 36, 312], [0, 36, 402, 73, 313], [0, 73, 402, 110, 314], [0, 110, 402, 147, 315], [0, 147, 402, 184, 316], [0, 184, 402, 222, 317], [0, 222, 402, 258, 318], [0, 258, 402, 295, 319], [0, 295, 402, 333, 320], [0, 333, 402, 369, 321], [0, 369, 402, 406, 322], [0, 406, 402, 444, 323], [0, 444, 402, 480, 324], [0, 480, 402, 517, 325], [0, 517, 402, 555, 326], [0, 555, 402, 591, 327], [0, 591, 402, 628, 328], [0, 628, 402, 666, 9852]], [[0, 0, 405, 36, 11428], [0, 36, 405, 73, 333], [0, 73, 405, 110, 334], [0, 110, 405, 147, 335], [0, 147, 405, 184, 336], [0, 184, 405, 222, 337], [0, 222, 405, 258, 338], [0, 258, 405, 295, 339], [0, 295, 405, 333, 340], [0, 333, 405, 369, 341], [0, 369, 405, 406, 342], [0, 406, 405, 444, 343], [0, 444, 405, 480, 344], [0, 480, 405, 517, 345], [0, 517, 405, 555, 346], [0, 555, 405, 591, 347], [0, 591, 405, 628, 348]], [[0, 0, 396, 38, 353], [0, 38, 396, 76, 354], [0, 76, 396, 114, 355], [0, 114, 396, 153, 356], [0, 153, 396, 191, 357], [0, 191, 396, 229, 358], [0, 229, 396, 267, 359], [0, 267, 396, 306, 360], [0, 306, 396, 344, 361], [0, 344, 396, 382, 362], [0, 382, 396, 420, 363], [0, 420, 396, 459, 364], [0, 459, 396, 497, 365], [0, 497, 396, 535, 366], [0, 535, 396, 573, 367], [0, 573, 396, 612, 368], [0, 612, 396, 650, 369], [0, 650, 396, 672, 9853]], [[0, 0, 405, 36, 11428], [0, 36, 405, 73, 374], [0, 73, 405, 110, 375], [0, 110, 405, 147, 376], [0, 147, 405, 184, 377], [0, 184, 405, 222, 378], [0, 222, 405, 258, 379], [0, 258, 405, 295, 380], [0, 295, 405, 333, 381], [0, 333, 405, 369, 382], [0, 369, 405, 406, 383], [0, 406, 405, 444, 384], [0, 444, 405, 480, 385], [0, 480, 405, 517, 386], [0, 517, 405, 555, 387], [0, 555, 405, 591, 388], [0, 591, 405, 628, 389]], [[0, 0, 402, 36, 394], [0, 36, 402, 73, 395], [0, 73, 402, 110, 396], [0, 110, 402, 147, 397], [0, 147, 402, 184, 398], [0, 184, 402, 222, 399], [0, 222, 402, 258, 400], [0, 258, 402, 295, 401], [0, 295, 402, 333, 402], [0, 333, 402, 369, 403], [0, 369, 402, 406, 404], [0, 406, 402, 444, 405], [0, 444, 402, 480, 406], [0, 480, 402, 517, 407], [0, 517, 402, 555, 408], [0, 555, 402, 591, 409], [0, 591, 402, 628, 410], [0, 628, 402, 666, 9852]], [[0, 0, 405, 36, 415], [0, 36, 405, 73, 416], [0, 73, 405, 110, 417], [0, 110, 405, 147, 418], [0, 147, 405, 184, 419], [0, 184, 405, 222, 420], [0, 222, 405, 258, 421], [0, 258, 405, 295, 422], [0, 295, 405, 333, 423], [0, 333, 405, 369, 424], [0, 369, 405, 406, 425], [0, 406, 405, 444, 426], [0, 444, 405, 480, 427], [0, 480, 405, 517, 428], [0, 517, 405, 555, 429], [0, 555, 405, 591, 430], [0, 591, 405, 628, 431], [0, 628, 405, 666, 11428]], [[0, 0, 396, 38, 436], [0, 38, 396, 76, 437], [0, 76, 396, 115, 438], [0, 115, 396, 153, 439], [0, 153, 396, 191, 440], [0, 191, 396, 229, 441], [0, 229, 396, 268, 442], [0, 268, 396, 306, 443], [0, 306, 396, 344, 444], [0, 344, 396, 382, 445], [0, 382, 396, 421, 446], [0, 421, 396, 459, 447], [0, 459, 396, 497, 448], [0, 497, 396, 535, 449], [0, 535, 396, 574, 450], [0, 574, 396, 612, 451], [0, 612, 396, 650, 452], [0, 650, 396, 672, 9853]], [[0, 0, 402, 36, 457], [0, 36, 402, 73, 458], [0, 73, 402, 110, 459], [0, 110, 402, 147, 460], [0, 147, 402, 184, 461], [0, 184, 402, 222, 462], [0, 222, 402, 258, 463], [0, 258, 402, 295, 464], [0, 295, 402, 333, 465], [0, 333, 402, 369, 466], [0, 369, 402, 406, 467], [0, 406, 402, 444, 468], [0, 444, 402, 480, 469], [0, 480, 402, 517, 470], [0, 517, 402, 555, 471], [0, 555, 402, 591, 472], [0, 591, 402, 628, 473], [0, 628, 402, 666, 9852]], [[0, 0, 405, 36, 478], [0, 36, 405, 73, 479], [0, 73, 405, 110, 480], [0, 110, 405, 147, 481], [0, 147, 405, 185, 482], [0, 185, 405, 221, 483], [0, 221, 405, 259, 484], [0, 259, 405, 296, 485], [0, 296, 405, 333, 486], [0, 333, 405, 370, 487], [0, 370, 405, 407, 488], [0, 407, 405, 444, 489], [0, 444, 405, 481, 490], [0, 481, 405, 518, 491], [0, 518, 405, 555, 492], [0, 555, 405, 593, 493], [0, 593, 405, 629, 494], [0, 629, 405, 667, 11428]], [[0, 0, 405, 36, 499], [0, 36, 405, 73, 500], [0, 73, 405, 110, 501], [0, 110, 405, 147, 502], [0, 147, 405, 184, 503], [0, 184, 405, 222, 504], [0, 222, 405, 258, 505], [0, 258, 405, 295, 506], [0, 295, 405, 333, 507], [0, 333, 405, 369, 508], [0, 369, 405, 406, 509], [0, 406, 405, 444, 510], [0, 444, 405, 480, 511], [0, 480, 405, 517, 512], [0, 517, 405, 555, 513], [0, 555, 405, 591, 514], [0, 591, 405, 628, 515], [0, 628, 405, 666, 11428]], [[0, 0, 402, 36, 520], [0, 36, 402, 73, 521], [0, 73, 402, 110, 522], [0, 110, 402, 147, 523], [0, 147, 402, 184, 524], [0, 184, 402, 222, 525], [0, 222, 402, 258, 526], [0, 258, 402, 295, 527], [0, 295, 402, 333, 528], [0, 333, 402, 369, 529], [0, 369, 402, 406, 530], [0, 406, 402, 444, 531], [0, 444, 402, 480, 532], [0, 480, 402, 517, 533], [0, 517, 402, 555, 534], [0, 555, 402, 591, 535], [0, 591, 402, 628, 536], [0, 628, 402, 666, 9852]], [[0, 0, 408, 37, 9858], [0, 37, 408, 73, 541], [0, 73, 408, 110, 542], [0, 110, 408, 147, 543], [0, 147, 408, 184, 544], [0, 184, 408, 220, 545], [0, 220, 408, 257, 546], [0, 257, 408, 294, 547], [0, 294, 408, 331, 548], [0, 331, 408, 367, 549], [0, 367, 408, 404, 550], [0, 404, 408, 441, 551], [0, 441, 408, 478, 552], [0, 478, 408, 514, 553], [0, 514, 408, 551, 554], [0, 551, 408, 588, 555], [0, 588, 408, 625, 556], [0, 625, 408, 661, 557], [0, 661, 408, 679, 9859]], [[0, 0, 401, 38, 562], [0, 38, 401, 75, 563], [0, 75, 401, 113, 564], [0, 113, 401, 150, 565], [0, 150, 401, 188, 566], [0, 188, 401, 225, 567], [0, 225, 401, 263, 568], [0, 263, 401, 300, 569], [0, 300, 401, 338, 570], [0, 338, 401, 375, 571], [0, 375, 401, 413, 572], [0, 413, 401, 450, 573], [0, 450, 401, 488, 574], [0, 488, 401, 525, 575], [0, 525, 401, 563, 576], [0, 563, 401, 600, 577], [0, 600, 401, 638, 578], [0, 638, 401, 674, 9860]], [[0, 0, 402, 36, 583], [0, 36, 402, 73, 584], [0, 73, 402, 110, 585], [0, 110, 402, 147, 586], [0, 147, 402, 184, 587], [0, 184, 402, 222, 588], [0, 222, 402, 258, 589], [0, 258, 402, 295, 590], [0, 295, 402, 333, 591], [0, 333, 402, 369, 592], [0, 369, 402, 406, 593], [0, 406, 402, 444, 594], [0, 444, 402, 480, 595], [0, 480, 402, 517, 596], [0, 517, 402, 555, 597], [0, 555, 402, 591, 598], [0, 591, 402, 628, 599], [0, 628, 402, 666, 600]], [[0, 0, 405, 36, 605], [0, 36, 405, 73, 606], [0, 73, 405, 110, 607], [0, 110, 405, 147, 608], [0, 147, 405, 184, 609], [0, 184, 405, 222, 610], [0, 222, 405, 258, 611], [0, 258, 405, 295, 612], [0, 295, 405, 333, 613], [0, 333, 405, 369, 614], [0, 369, 405, 406, 615], [0, 406, 405, 444, 616], [0, 444, 405, 480, 617], [0, 480, 405, 517, 618], [0, 517, 405, 555, 619], [0, 555, 405, 591, 620], [0, 591, 405, 628, 621], [0, 628, 405, 666, 11428]], [[0, 0, 402, 36, 9852], [0, 36, 402, 73, 626], [0, 73, 402, 110, 627], [0, 110, 402, 147, 628], [0, 147, 402, 184, 629], [0, 184, 402, 222, 630], [0, 222, 402, 258, 631], [0, 258, 402, 295, 632], [0, 295, 402, 333, 633], [0, 333, 402, 369, 634], [0, 369, 402, 406, 635], [0, 406, 402, 444, 636], [0, 444, 402, 480, 637], [0, 480, 402, 517, 638], [0, 517, 402, 555, 639], [0, 555, 402, 591, 640], [0, 591, 402, 628, 641], [0, 628, 402, 666, 642]], [[0, 0, 406, 36, 647], [0, 36, 406, 73, 648], [0, 73, 406, 110, 649], [0, 110, 406, 147, 650], [0, 147, 406, 185, 651], [0, 185, 406, 221, 652], [0, 221, 406, 259, 653], [0, 259, 406, 296, 654], [0, 296, 406, 333, 655], [0, 333, 406, 370, 656], [0, 370, 406, 407, 657], [0, 407, 406, 444, 658], [0, 444, 406, 481, 659], [0, 481, 406, 518, 660], [0, 518, 406, 555, 661], [0, 555, 406, 593, 662], [0, 593, 406, 629, 663], [0, 629, 406, 667, 9861]], [[0, 0, 396, 38, 668], [0, 38, 396, 76, 669], [0, 76, 396, 114, 670], [0, 114, 396, 152, 671], [0, 152, 396, 191, 672], [0, 191, 396, 229, 673], [0, 229, 396, 267, 674], [0, 267, 396, 305, 675], [0, 305, 396, 344, 676], [0, 344, 396, 382, 677], [0, 382, 396, 420, 678], [0, 420, 396, 458, 679], [0, 458, 396, 497, 680], [0, 497, 396, 535, 681], [0, 535, 396, 573, 682], [0, 573, 396, 611, 683], [0, 611, 396, 650, 684], [0, 650, 396, 671, 9853]], [[0, 0, 405, 36, 689], [0, 36, 405, 73, 690], [0, 73, 405, 110, 691], [0, 110, 405, 147, 692], [0, 147, 405, 184, 693], [0, 184, 405, 222, 694], [0, 222, 405, 258, 695], [0, 258, 405, 295, 696], [0, 295, 405, 333, 697], [0, 333, 405, 369, 698], [0, 369, 405, 406, 699], [0, 406, 405, 444, 700], [0, 444, 405, 480, 701], [0, 480, 405, 517, 702], [0, 517, 405, 555, 703], [0, 555, 405, 591, 704], [0, 591, 405, 628, 705], [0, 628, 405, 666, 11428]], [[0, 0, 401, 38, 710], [0, 38, 401, 75, 711], [0, 75, 401, 113, 712], [0, 113, 401, 150, 713], [0, 150, 401, 188, 714], [0, 188, 401, 225, 715], [0, 225, 401, 263, 716], [0, 263, 401, 300, 717], [0, 300, 401, 338, 718], [0, 338, 401, 375, 719], [0, 375, 401, 413, 720], [0, 413, 401, 450, 721], [0, 450, 401, 488, 722], [0, 488, 401, 525, 723], [0, 525, 401, 563, 724], [0, 563, 401, 600, 725], [0, 600, 401, 638, 726], [0, 638, 401, 674, 9860]], [[0, 0, 400, 38, 731], [0, 38, 400, 75, 732], [0, 75, 400, 113, 733], [0, 113, 400, 150, 734], [0, 150, 400, 188, 735], [0, 188, 400, 225, 736], [0, 225, 400, 263, 737], [0, 263, 400, 300, 738], [0, 300, 400, 338, 739], [0, 338, 400, 375, 740], [0, 375, 400, 413, 741], [0, 413, 400, 450, 742], [0, 450, 400, 488, 743], [0, 488, 400, 525, 744], [0, 525, 400, 563, 745], [0, 563, 400, 600, 746], [0, 600, 400, 638, 747], [0, 638, 400, 674, 9860]], [[0, 0, 396, 38, 752], [0, 38, 396, 76, 753], [0, 76, 396, 114, 754], [0, 114, 396, 152, 755], [0, 152, 396, 191, 756], [0, 191, 396, 229, 757], [0, 229, 396, 267, 758], [0, 267, 396, 305, 759], [0, 305, 396, 344, 760], [0, 344, 396, 382, 761], [0, 382, 396, 420, 762], [0, 420, 396, 458, 763], [0, 458, 396, 497, 764], [0, 497, 396, 535, 765], [0, 535, 396, 573, 766], [0, 573, 396, 611, 767], [0, 611, 396, 650, 768], [0, 650, 396, 671, 9853]], [[0, 0, 396, 38, 773], [0, 38, 396, 76, 774], [0, 76, 396, 114, 775], [0, 114, 396, 152, 776], [0, 152, 396, 191, 777], [0, 191, 396, 229, 778], [0, 229, 396, 267, 779], [0, 267, 396, 305, 780], [0, 305, 396, 344, 781], [0, 344, 396, 382, 782], [0, 382, 396, 420, 783], [0, 420, 396, 458, 784], [0, 458, 396, 497, 785], [0, 497, 396, 535, 786], [0, 535, 396, 573, 787], [0, 573, 396, 611, 788], [0, 611, 396, 650, 789], [0, 650, 396, 671, 9853]], [[0, 0, 408, 36, 9858], [0, 36, 408, 73, 794], [0, 73, 408, 110, 795], [0, 110, 408, 146, 796], [0, 146, 408, 183, 797], [0, 183, 408, 220, 798], [0, 220, 408, 257, 799], [0, 257, 408, 293, 800], [0, 293, 408, 330, 801], [0, 330, 408, 367, 802], [0, 367, 408, 404, 803], [0, 404, 408, 440, 804], [0, 440, 408, 477, 805], [0, 477, 408, 514, 806], [0, 514, 408, 551, 807], [0, 551, 408, 587, 808], [0, 587, 408, 624, 809], [0, 624, 408, 661, 810], [0, 661, 408, 677, 9862]], [[0, 0, 396, 38, 815], [0, 38, 396, 76, 816], [0, 76, 396, 114, 817], [0, 114, 396, 153, 818], [0, 153, 396, 191, 819], [0, 191, 396, 229, 820], [0, 229, 396, 267, 821], [0, 267, 396, 306, 822], [0, 306, 396, 344, 823], [0, 344, 396, 382, 824], [0, 382, 396, 420, 825], [0, 420, 396, 459, 826], [0, 459, 396, 497, 827], [0, 497, 396, 535, 828], [0, 535, 396, 573, 829], [0, 573, 396, 612, 830], [0, 612, 396, 650, 831], [0, 650, 396, 672, 9853]], [[0, 0, 410, 37, 9863], [0, 37, 410, 73, 836], [0, 73, 410, 110, 837], [0, 110, 410, 147, 838], [0, 147, 410, 184, 839], [0, 184, 410, 220, 840], [0, 220, 410, 257, 841], [0, 257, 410, 294, 842], [0, 294, 410, 331, 843], [0, 331, 410, 367, 844], [0, 367, 410, 404, 845], [0, 404, 410, 441, 846], [0, 441, 410, 478, 847], [0, 478, 410, 514, 848], [0, 514, 410, 551, 849], [0, 551, 410, 588, 850], [0, 588, 410, 625, 851], [0, 625, 410, 661, 852], [0, 661, 410, 679, 9864]], [[0, 0, 396, 38, 857], [0, 38, 396, 76, 858], [0, 76, 396, 114, 859], [0, 114, 396, 153, 860], [0, 153, 396, 191, 861], [0, 191, 396, 229, 862], [0, 229, 396, 267, 863], [0, 267, 396, 306, 864], [0, 306, 396, 344, 865], [0, 344, 396, 382, 866], [0, 382, 396, 420, 867], [0, 420, 396, 459, 868], [0, 459, 396, 497, 869], [0, 497, 396, 535, 870], [0, 535, 396, 573, 871], [0, 573, 396, 612, 872], [0, 612, 396, 650, 873], [0, 650, 396, 672, 9853]], [[0, 0, 396, 38, 878], [0, 38, 396, 76, 879], [0, 76, 396, 114, 880], [0, 114, 396, 152, 881], [0, 152, 396, 191, 882], [0, 191, 396, 229, 883], [0, 229, 396, 267, 884], [0, 267, 396, 305, 885], [0, 305, 396, 344, 886], [0, 344, 396, 382, 887], [0, 382, 396, 420, 888], [0, 420, 396, 458, 889], [0, 458, 396, 497, 890], [0, 497, 396, 535, 891], [0, 535, 396, 573, 892], [0, 573, 396, 611, 893], [0, 611, 396, 650, 894], [0, 650, 396, 671, 9853]], [[0, 0, 402, 36, 899], [0, 36, 402, 73, 900], [0, 73, 402, 110, 901], [0, 110, 402, 147, 902], [0, 147, 402, 184, 903], [0, 184, 402, 222, 904], [0, 222, 402, 258, 905], [0, 258, 402, 295, 906], [0, 295, 402, 333, 907], [0, 333, 402, 369, 908], [0, 369, 402, 406, 909], [0, 406, 402, 444, 910], [0, 444, 402, 480, 911], [0, 480, 402, 517, 912], [0, 517, 402, 555, 913], [0, 555, 402, 591, 914], [0, 591, 402, 628, 915], [0, 628, 402, 666, 916]], [[0, 0, 402, 36, 921], [0, 36, 402, 73, 922], [0, 73, 402, 110, 923], [0, 110, 402, 147, 924], [0, 147, 402, 184, 925], [0, 184, 402, 222, 926], [0, 222, 402, 258, 927], [0, 258, 402, 295, 928], [0, 295, 402, 333, 929], [0, 333, 402, 369, 930], [0, 369, 402, 406, 931], [0, 406, 402, 444, 932], [0, 444, 402, 480, 933], [0, 480, 402, 517, 934], [0, 517, 402, 555, 935], [0, 555, 402, 591, 936], [0, 591, 402, 628, 937], [0, 628, 402, 666, 938]], [[0, 0, 406, 36, 943], [0, 36, 406, 73, 944], [0, 73, 406, 110, 945], [0, 110, 406, 147, 946], [0, 147, 406, 185, 947], [0, 185, 406, 221, 948], [0, 221, 406, 259, 949], [0, 259, 406, 296, 950], [0, 296, 406, 333, 951], [0, 333, 406, 370, 952], [0, 370, 406, 407, 953], [0, 407, 406, 444, 954], [0, 444, 406, 481, 955], [0, 481, 406, 518, 956], [0, 518, 406, 555, 957], [0, 555, 406, 593, 958], [0, 593, 406, 629, 959], [0, 629, 406, 667, 960]], [[0, 0, 405, 36, 965], [0, 36, 405, 73, 966], [0, 73, 405, 110, 967], [0, 110, 405, 147, 968], [0, 147, 405, 185, 969], [0, 185, 405, 221, 970], [0, 221, 405, 259, 971], [0, 259, 405, 296, 972], [0, 296, 405, 333, 973], [0, 333, 405, 370, 974], [0, 370, 405, 407, 975], [0, 407, 405, 444, 976], [0, 444, 405, 481, 977], [0, 481, 405, 518, 978], [0, 518, 405, 555, 979], [0, 555, 405, 593, 980], [0, 593, 405, 629, 981], [0, 629, 405, 667, 11428]], [[0, 0, 410, 37, 9863], [0, 37, 410, 73, 986], [0, 73, 410, 110, 987], [0, 110, 410, 147, 988], [0, 147, 410, 184, 989], [0, 184, 410, 220, 990], [0, 220, 410, 257, 991], [0, 257, 410, 294, 992], [0, 294, 410, 331, 993], [0, 331, 410, 367, 994], [0, 367, 410, 404, 995], [0, 404, 410, 441, 996], [0, 441, 410, 478, 997], [0, 478, 410, 514, 998], [0, 514, 410, 551, 999], [0, 551, 410, 588, 1000], [0, 588, 410, 625, 1001], [0, 625, 410, 661, 1002], [0, 661, 410, 679, 9864]]], - "expected_junk_img_bojids": [] - }, - "scihub/scihub_25800000/libgen.scimag25889000-25889999.zip_10.2307/4153991" : { - "expected_image_info": [[[50,726,110,792,21],[50,80,202,230,22]],[[0,0,468,720,17]],[[0,0,468,720,31]]], - "expected_junk_img_bojids": [] - }, - "scanned_detection/llm-raw-scihub-o.O-0584-8539%2891%2980165-f" : { - "expected_image_info": [[[0, 0, 504, 29, 33], [0, 29, 504, 59, 35], [0, 59, 504, 89, 37], [0, 89, 504, 119, 39], [0, 119, 504, 148, 41], [0, 148, 504, 178, 43], [0, 178, 504, 208, 45], [0, 208, 504, 238, 47], [0, 238, 504, 267, 49], [0, 267, 504, 297, 51], [0, 297, 504, 327, 53], [0, 327, 504, 357, 55], [0, 357, 504, 386, 57], [0, 386, 504, 416, 59], [0, 416, 504, 446, 61], [0, 446, 504, 476, 63], [0, 476, 504, 505, 65], [0, 505, 504, 535, 67], [0, 535, 504, 565, 69], [0, 565, 504, 595, 71], [0, 595, 504, 624, 73], [0, 624, 504, 654, 75], [0, 654, 504, 684, 77], [0, 684, 504, 714, 79], [0, 714, 504, 744, 81], [0, 773, 504, 792, 83]]], - "expected_junk_img_bojids": [] - }, - "scanned_detection/llm-raw-scihub-o.O-bf01427123" : { - "expected_image_info": [[[0, 0, 532, 698, 76]], [[0, 0, 532, 698, 14]], [[0, 0, 532, 698, 30]]], - "expected_junk_img_bojids": [] - }, - "scihub/scihub_25900000/libgen.scimag25991000-25991999.zip_10.2307/40066695" : { - "expected_image_info": [[[50, 726, 110, 792, 113], [50, 80, 168, 230, 114]], [[0, 709, 468, 717, 17], [0, 226, 468, 233, 21], [0, 218, 468, 226, 22], [0, 233, 468, 241, 33], [0, 272, 468, 280, 39], [0, 280, 468, 288, 41], [0, 288, 468, 296, 42], [0, 296, 468, 304, 43], [0, 241, 468, 249, 44], [0, 249, 468, 257, 45], [0, 257, 468, 265, 46], [0, 265, 468, 272, 47], [0, 592, 468, 600, 50], [0, 304, 468, 311, 53], [0, 545, 468, 553, 54], [0, 577, 468, 584, 55], [0, 569, 468, 577, 56], [0, 561, 468, 569, 57], [0, 553, 468, 561, 58], [0, 311, 468, 319, 59], [0, 319, 468, 327, 60], [0, 374, 468, 382, 61], [0, 382, 468, 389, 62], [0, 358, 468, 366, 63], [0, 366, 468, 374, 64], [0, 343, 468, 350, 65], [0, 350, 468, 358, 66], [0, 327, 468, 335, 67], [0, 335, 468, 343, 68], [0, 538, 468, 545, 69], [0, 530, 468, 538, 70], [0, 506, 468, 514, 71], [0, 499, 468, 506, 72], [0, 522, 468, 530, 73], [0, 514, 468, 522, 74], [0, 475, 468, 483, 75], [0, 467, 468, 475, 76], [0, 491, 468, 499, 77], [0, 483, 468, 491, 78], [0, 116, 468, 124, 84], [0, 124, 468, 132, 85], [0, 460, 468, 467, 86], [0, 148, 468, 155, 87], [0, 452, 468, 460, 88], [0, 140, 468, 148, 89], [0, 444, 468, 452, 90], [0, 132, 468, 140, 91], [0, 436, 468, 444, 93], [0, 717, 468, 720, 94], [0, 428, 468, 436, 95], [0, 421, 468, 428, 96], [0, 413, 468, 421, 98], [0, 405, 468, 413, 99], [0, 397, 468, 405, 100], [0, 389, 468, 397, 101], [0, 171, 468, 179, 102], [0, 179, 468, 187, 103], [0, 155, 468, 163, 104], [0, 163, 468, 171, 105], [0, 202, 468, 210, 106], [0, 210, 468, 218, 107], [0, 187, 468, 194, 108], [0, 194, 468, 202, 109]], [[0, 709, 468, 717, 123], [0, 210, 468, 218, 133], [0, 226, 468, 233, 134], [0, 218, 468, 226, 135], [0, 241, 468, 249, 136], [0, 233, 468, 241, 137], [0, 257, 468, 265, 138], [0, 249, 468, 257, 139], [0, 272, 468, 280, 140], [0, 265, 468, 272, 141], [0, 280, 468, 288, 142], [0, 124, 468, 132, 143], [0, 592, 468, 600, 144], [0, 140, 468, 148, 154], [0, 132, 468, 140, 155], [0, 171, 468, 179, 156], [0, 163, 468, 171, 157], [0, 155, 468, 163, 158], [0, 148, 468, 155, 159], [0, 202, 468, 210, 160], [0, 194, 468, 202, 161], [0, 187, 468, 194, 162], [0, 179, 468, 187, 163], [0, 608, 468, 616, 164], [0, 319, 468, 327, 165], [0, 600, 468, 608, 166], [0, 327, 468, 335, 167], [0, 335, 468, 343, 169], [0, 343, 468, 350, 171], [0, 350, 468, 358, 173], [0, 358, 468, 366, 175], [0, 288, 468, 296, 180], [0, 296, 468, 304, 181], [0, 304, 468, 311, 182], [0, 311, 468, 319, 183], [0, 116, 468, 124, 187], [0, 717, 468, 720, 206], [0, 366, 468, 374, 207], [0, 389, 468, 397, 208], [0, 374, 468, 382, 212], [0, 382, 468, 389, 213]]] - }, - "scihub/scihub_53700000/libgen.scimag53724000-53724999.zip_10.1097/00129191-200509000-00018": { - "expected_image_info": [[[-2, 0, 603, 80, 24]], [[-3, 0, 602, 80, 24]]] - }, - "zlib/zlib_22115997": { - "expected_image_info": [[[0, 0, 426, 603, 11080]], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], - "expected_junk_img_bojids": [3830, 3831, 3832, 3837, 3833, 3838, 3842, 3834, 3835, 3836, 3839, 3840, 3841, 3872, 3854, 3868, 3850, 3869, 3847, 3873, 3866, 3870, 3857, 3858, 3871, 3855, 3849, 3874, 3843, 3859, 3844, 3853, 3860, 3856, 3851, 3861, 3862, 3845, 3846, 3863, 3848, 3864, 3865, 3867, 3852, 3899, 3906, 3894, 3903, 3902, 3901, 3895, 3905, 3884, 3879, 3904, 3875, 3876, 3889, 3888, 3877, 3882, 3885, 3878, 3896, 3880, 3881, 3890, 3900, 3883, 3891, 3893, 3886, 3887, 3892, 3897, 3898, 3918, 3922, 3936, 3913, 3938, 3920, 3908, 3937, 3909, 3926, 3923, 3919, 3933, 3907, 3934, 3914, 3921, 3931, 3915, 3916, 3924, 3925, 3910, 3927, 3935, 3928, 3929, 3930, 3932, 3911, 3912, 3917, 3965, 3960, 3942, 3951, 3958, 3946, 3952, 3947, 3939, 3963, 3943, 3968, 3969, 3950, 3964, 3961, 3962, 3944, 3966, 3970, 3959, 3967, 3940, 3941, 3945, 3948, 3953, 3949, 3954, 3955, 3956, 3957, 3982, 3991, 3998, 3984, 3975, 4002, 3974, 3999, 3976, 4000, 3985, 3992, 4001, 3971, 3989, 3988, 3983, 3977, 3980, 3997, 3986, 3990, 3993, 3987, 3972, 3994, 3995, 3996, 3973, 3978, 3979, 3981, 4006, 4007, 4010, 4011, 4019, 4016, 4009, 4017, 4012, 4008, 4018, 4003, 4013, 4004, 4014, 4005, 4015, 3796, 3789, 3792, 3790, 3797, 3768, 3783, 3791, 3766, 3773, 3778, 3774, 3767, 3788, 3793, 3769, 3775, 3794, 3776, 3777, 3795, 3779, 3784, 3770, 3772, 3771, 3780, 3781, 3785, 3782, 3786, 3787, 3829, 3811, 3802, 3814, 3820, 3822, 3799, 3806, 3823, 3808, 3809, 3816, 3826, 3804, 3805, 3810, 3827, 3812, 3813, 3828, 3807, 3821, 3824, 3815, 3801, 3803, 3817, 3825, 3818, 3819, 3798, 3800, 3765, 2839, 2818, 2824, 2821, 2833, 2813, 2825, 2823, 2837, 2819, 2838, 2816, 2842, 2835, 2840, 2822, 2830, 2814, 2812, 2815, 2841, 2826, 2827, 2832, 2843, 2817, 2820, 2836, 2828, 2829, 2831, 2834, 2866, 2875, 2865, 2867, 2846, 2859, 2854, 2855, 2856, 2861, 2860, 2850, 2857, 2858, 2862, 2853, 2863, 2852, 2848, 2868, 2873, 2869, 2872, 2864, 2870, 2871, 2845, 2874, 2847, 2844, 2849, 2851, 2885, 2898, 2882, 2876, 2886, 2892, 2884, 2880, 2900, 2905, 2899, 2904, 2895, 2887, 2894, 2906, 2890, 2893, 2877, 2889, 2878, 2888, 2896, 2891, 2897, 2901, 2881, 2902, 2907, 2903, 2879, 2883, 2921, 2915, 2916, 2923, 2924, 2939, 2933, 2919, 2935, 2925, 2926, 2912, 2917, 2936, 2937, 2931, 2932, 2918, 2927, 2908, 2922, 2928, 2913, 2920, 2929, 2930, 2934, 2938, 2909, 2910, 2911, 2914, 2953, 2942, 2947, 2950, 2954, 2956, 2940, 2955, 2941, 2944, 2969, 2961, 2957, 2962, 2945, 2946, 2943, 2949, 2958, 2968, 2948, 2951, 2952, 2959, 2960, 2963, 2970, 2964, 2965, 2966, 2967, 2971, 2982, 2978, 3003, 2985, 3001, 2998, 2991, 3002, 2996, 2972, 2973, 2992, 2974, 2975, 3000, 2986, 2983, 2993, 2976, 2999, 2977, 2984, 2979, 2980, 2994, 2987, 2981, 2988, 2995, 2989, 2990, 2997, 3008, 3032, 3015, 3028, 3005, 3012, 3029, 3014, 3016, 3022, 3033, 3010, 3011, 3017, 3034, 3018, 3023, 3035, 3030, 3024, 3004, 3031, 3006, 3007, 3019, 3020, 3021, 3025, 3026, 3027, 3009, 3013, 3057, 3037, 3065, 3038, 3055, 3051, 3066, 3039, 3049, 3058, 3056, 3064, 3052, 3040, 3067, 3059, 3044, 3041, 3060, 3036, 3061, 3042, 3062, 3050, 3063, 3043, 3045, 3053, 3046, 3047, 3048, 3054, 3081, 3072, 3099, 3071, 3089, 3069, 3097, 3070, 3087, 3083, 3079, 3077, 3090, 3074, 3091, 3068, 3073, 3085, 3095, 3080, 3075, 3092, 3076, 3082, 3088, 3093, 3094, 3098, 3096, 3078, 3084, 3086, 3125, 3110, 3111, 3126, 3107, 3112, 3108, 3100, 3124, 3113, 3115, 3101, 3114, 3122, 3103, 3127, 3104, 3129, 3105, 3121, 3123, 3106, 3128, 3130, 3116, 3117, 3131, 3109, 3118, 3119, 3120, 3102, 3150, 3138, 3143, 3146, 3136, 3132, 3145, 3151, 3147, 3141, 3148, 3142, 3152, 3154, 3153, 3133, 3137, 3168, 3164, 3173, 3174, 3160, 3167, 3169, 3170, 3157, 3176, 3163, 3197, 3192, 3190, 3187, 3188, 3189, 3194, 3186, 3193, 3196, 3204, 3203, 3212, 3211, 3220, 3201, 3199, 3205, 3200, 3214, 3216, 3223, 3241, 3227, 3235, 3224, 3222, 3225, 3221, 3226, 3233, 3238, 3253, 3260, 3250, 3254, 3251, 3252, 3257, 3243, 3258, 3247, 3281, 3272, 3284, 3278, 3275, 3274, 3270, 3277, 3264, 3269, 3265, 3288, 3304, 3305, 3294, 3286, 3300, 3291, 3287, 3293, 3290, 3295, 3307, 3322, 3323, 3309, 3317, 3308, 3312, 3310, 3314, 3320, 3328, 3348, 3329, 3327, 3332, 3337, 3345, 3346, 3331, 3343, 3347, 3367, 3358, 3351, 3350, 3356, 3369, 3361, 3362, 3364, 3365, 3366, 3390, 3379, 3373, 3386, 3387, 3374, 3385, 3375, 3378, 3389, 3407, 3401, 3391, 3406, 3411, 3398, 3409, 3392, 3393, 3402, 3394, 3431, 3427, 3416, 3430, 3418, 3429, 3414, 3424, 3421, 3422, 3428, 3439, 3451, 3443, 3450, 3436, 3440, 3434, 3448, 3452, 3437, 3464, 3471, 3462, 3465, 3461, 3456, 3457, 3475, 3468, 3459, 3467, 3493, 3494, 3482, 3496, 3497, 3484, 3478, 3488, 3479, 3491, 3481, 3510, 3505, 3506, 3512, 3504, 3501, 3508, 3500, 3509, 3513, 3540, 3521, 3527, 3528, 3534, 3537, 3520, 3535, 3529, 3538, 3524, 3551, 3555, 3542, 3556, 3552, 3554, 3544, 3559, 3558, 3546, 3560, 3571, 3572, 3564, 3576, 3573, 3575, 3565, 3577, 3582, 3578, 3598, 3604, 3587, 3602, 3601, 3590, 3588, 3595, 3585, 3593, 3594, 3622, 3623, 3611, 3624, 3625, 3615, 3621, 3616, 3618, 3610, 3620, 3635, 3636, 3629, 3639, 3627, 3630, 3631, 3632, 3633, 3645, 3648, 3655, 3667, 3665, 3666, 3668, 3647, 3656, 3652, 3653, 3664, 3685, 3687, 3673, 3683, 3680, 3688, 3681, 3669, 3684, 3674, 3686, 3703, 3706, 3708, 3698, 3691, 3699, 3704, 3705, 3693, 3694, 3711, 3721, 3723, 3724, 3732, 3727, 3728, 3715, 3730, 3716, 3718, 3743, 3749, 3752, 3741, 3744, 3733, 3742, 3746, 3736, 3737, 3750, 3761, 3755, 3756, 3762, 3764, 2759, 2748, 2762, 2749, 2755, 2768, 2764, 2750, 2751, 2756, 2766, 2780, 2774, 2789, 2771, 2788, 2772, 2783, 2773, 2786, 2787, 2776, 2800, 2809, 2804, 2792, 2811, 2806, 2793, 2807, 2797, 2808, 2325, 2332, 2335, 2341, 2321, 2331, 2333, 2327, 2337, 2324, 2339, 2351, 2344, 2361, 2360, 2343, 2359, 2356, 2347, 2350, 2353, 2357, 2382, 2367, 2383, 2374, 2369, 2379, 2363, 2366, 2365, 2380, 2397, 2401, 2403, 2402, 2392, 2404, 2384, 2385, 2390, 2387, 2394, 2425, 2413, 2411, 2415, 2418, 2426, 2421, 2410, 2420, 2408, 2409, 2445, 2447, 2428, 2438, 2430, 2442, 2433, 2441, 2439, 2443, 2454, 2449, 2451, 2455, 2460, 2465, 2468, 2457, 2461, 2464, 2466, 2486, 2490, 2471, 2470, 2473, 2483, 2472, 2487, 2484, 2485, 2489, 2499, 2511, 2496, 2509, 2502, 2491, 2505, 2506, 2494, 2495, 2532, 2526, 2521, 2531, 2522, 2533, 2515, 2520, 2513, 2524, 2528, 2547, 2551, 2542, 2554, 2543, 2538, 2549, 2548, 2536, 2550, 2537, 2556, 2568, 2559, 2560, 2574, 2570, 2565, 2567, 2575, 2562, 2579, 2597, 2592, 2585, 2577, 2586, 2581, 2587, 2590, 2591, 2593, 2617, 2601, 2605, 2607, 2608, 2610, 2609, 2603, 2613, 2604, 2615, 2622, 2623, 2638, 2625, 2628, 2636, 2637, 2631, 2629, 2633, 2640, 2645, 2660, 2646, 2642, 2657, 2650, 2648, 2651, 2654, 2652, 2677, 2680, 2665, 2671, 2673, 2674, 2676, 2679, 2662, 2664, 2666, 2696, 2685, 2686, 2687, 2702, 2691, 2692, 2693, 2698, 2699, 2719, 2721, 2711, 2705, 2723, 2720, 2704, 2707, 2708, 2712, 2710, 2732, 2739, 2744, 2745, 2743, 2741, 2730, 2746, 2734, 2742, 2735] - }, - "zlib/zlib_21814957": { - "expected_image_info": [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], - "expected_junk_img_bojids": [8472, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8579, 8580, 8482, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590, 8483, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8599, 8600, 8484, 8601, 8602, 8603, 8604, 8605, 8606, 8607, 8608, 8609, 8610, 8485, 8611, 8612, 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, 8486, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8487, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8488, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8489, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8490, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8491, 8671, 8672, 8673, 8674, 8675, 8676, 8677, 8678, 8679, 8680, 8492, 8681, 8682, 8683, 8684, 8685, 8686, 8687, 8688, 8689, 8690, 8493, 8691, 8692, 8693, 8694, 8695, 8696, 8697, 8698, 8699, 8700, 8494, 8701, 8702, 8703, 8704, 8705, 8706, 8707, 8708, 8709, 8710, 8495, 8711, 8712, 8713, 8714, 8715, 8716, 8717, 8718, 8719, 8720, 8496, 8721, 8722, 8723, 8724, 8725, 8726, 8727, 8728, 8729, 8730, 8497, 8731, 8732, 8733, 8734, 8735, 8736, 8737, 8738, 8739, 8740, 8498, 8741, 8742, 8743, 8744, 8745, 8746, 8747, 8748, 8749, 8750, 8499, 8751, 8752, 8753, 8754, 8755, 8756, 8757, 8758, 8759, 8760, 8500, 8761, 8762, 8763, 8764, 8765, 8766, 8767, 8768, 8769, 8770, 8501, 8771, 8772, 8773, 8774, 8775, 8776, 8777, 8778, 8779, 8780, 8502, 8781, 8782, 8783, 8784, 8785, 8786, 8787, 8788, 8789, 8790, 8503, 8791, 8792, 8793, 8794, 8795, 8796, 8797, 8798, 8799, 8800, 8504, 8801, 8802, 8803, 8804, 8805, 8806, 8807, 8808, 8809, 8810, 8505, 8811, 8812, 8813, 8814, 8815, 8816, 8817, 8818, 8819, 8820, 8506, 8821, 8822, 8823, 8824, 8825, 8826, 8827, 8828, 8829, 8830, 8507, 8831, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8508, 8841, 8842, 8843, 8844, 8845, 8846, 8847, 8848, 8849, 8850, 8509, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8510, 8861, 8862, 8863, 8864, 8865, 8866, 8867, 8868, 8869, 8870, 8511, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, 8880, 8512, 8881, 8882, 8883, 8884, 8885, 8886, 8887, 8888, 8889, 8890, 8513, 8891, 8892, 8893, 8894, 8895, 8896, 8897, 8898, 8899, 8900, 8514, 8901, 8902, 8903, 8904, 8905, 8906, 8907, 8908, 8909, 8910, 8515, 8911, 8912, 8913, 8914, 8915, 8916, 8917, 8918, 8919, 8920, 8516, 8921, 8922, 8923, 8924, 8925, 8926, 8927, 8928, 8929, 8930, 8517, 8931, 8932, 8933, 8934, 8935, 8936, 8937, 8938, 8939, 8940, 8518, 8941, 8942, 8943, 8944, 8945, 8946, 8947, 8948, 8949, 8950, 8519, 8951, 8952, 8953, 8954, 8955, 8956, 8957, 8958, 8959, 8960, 8520, 8961, 8962, 8963, 8964, 8965, 8966, 8967, 8968, 8969, 8970, 8476, 8521, 8971, 8972, 8973, 8974, 8975, 8976, 8977, 8978, 8979, 8980, 8522, 8981, 8982, 8983, 8984, 8985, 8986, 8987, 8988, 8989, 8990, 8523, 8991, 8992, 8993, 8994, 8995, 8996, 8997, 8998, 8999, 9000, 8524, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9009, 9010, 8525, 9011, 9012, 9013, 9014, 9015, 9016, 9017, 9018, 9019, 9020, 8526, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 8527, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9038, 9039, 9040, 8528, 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9048, 9049, 9050, 8529, 9051, 9052, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 8530, 9061, 9062, 9063, 9064, 9065, 9066, 9067, 9068, 9069, 9070, 8531, 9071, 9072, 9073, 9074, 9075, 9076, 9077, 9078, 9079, 9080, 8532, 9081, 9082, 9083, 9084, 9085, 9086, 9087, 9088, 9089, 9090, 8533, 9091, 9092, 9093, 9094, 9095, 9096, 9097, 9098, 9099, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8478, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8479, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8480, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 9100, 9102, 9104, 9106, 9108, 9110, 9112, 9114, 9116, 9118, 9120, 9122, 9124, 9126, 9128, 9130, 9132, 9134, 9136, 9138, 9140, 9142, 9144, 9146, 9148, 9150, 9152, 9154, 9156, 9158, 9160, 9162, 9164, 9166, 9168, 9170, 9172, 9174, 9176, 9178, 9180, 9182, 9184, 9186, 9188, 9190, 9192, 9194, 9196, 9198, 9200, 9202, 9204, 9206, 9208, 9210, 9212, 9214, 9216, 9218, 9220, 9222, 9224, 9226, 9228, 9230, 9232, 9234, 9236, 9238, 9240, 9242, 9244, 9246, 9248, 9250, 9252, 9254, 9256, 9258, 9260, 9262, 9264, 9266, 9268, 9270, 9272, 9274, 9276, 9278, 9280, 9282, 9284, 9286, 9288, 9290, 9292, 9294, 9296, 9298, 9300, 9302, 9304, 9306, 9308, 9310, 9312, 9314, 9316, 9318, 9320, 9322, 9324, 9326, 9328, 9330, 9332, 9334, 9336, 9338, 9340, 9342, 9344, 9346, 9348, 9350, 9352, 9354, 9356, 9358, 9360, 9362, 9364, 9366, 9368, 9370, 9372, 9374, 9376, 9378, 9380, 9382, 9384, 9386, 9388, 9390, 9392, 9394, 9396, 9398, 9400, 9402, 9404, 9406, 9408, 9410, 9412, 9414, 9416, 9418, 9420, 9422, 9424, 9426, 9428, 9430, 9432, 9434, 9436, 9438, 9440, 9442, 9444, 9446, 9448, 9450, 9452, 9454, 9456, 9458, 9460, 9462, 9464, 9466, 9468, 9470, 9472, 9474, 9476, 9478, 9480, 9482, 9484, 9486, 9488, 9490, 9492, 9494, 9496, 9498, 9500, 9502, 9504, 9506, 9508, 9510, 9512, 9514, 9516, 9518, 9520, 9522, 9524, 9526, 9528, 9530, 9532, 9534, 9536, 9538, 9540, 9542, 9544, 9546, 9548, 9550, 9552, 9554, 9556, 9558, 9560, 9562, 9564, 9566, 9568, 9570, 9572, 9574, 9576, 9578, 9580, 9582, 9584, 9586, 9588, 9590, 9592, 9594, 9596, 9598, 9600, 9602, 9604, 9606, 9608, 9610, 9612, 9614, 9616, 9618, 9620, 9622, 9624, 9626, 9628, 9630, 9632, 9634, 9636, 9638, 9640, 9642, 9644, 9646, 9648, 9650, 9652, 9654, 9656, 9658, 9660, 9662, 9664, 9666, 9668, 9670, 9672, 9674, 9676, 9678, 9680, 9682, 9684, 9686, 9688, 9690, 9692, 9694, 9696, 9698, 9700, 9702, 9704, 9706, 9708, 9710, 9712, 9714, 9716, 9718, 9720, 9722, 9724, 9726, 9728, 9730, 9732, 9734, 9736, 9738, 9740, 9742, 9744, 9746, 9748, 9750, 9752, 9754, 9756, 9758, 9760, 9762, 9764, 9766, 9768, 9770, 9772, 9774, 9776, 9778, 9780, 9782, 9784, 9786, 9788, 9790, 9792, 9794, 9796, 9798, 9800, 9802, 9804, 9806, 9808, 9810, 9812, 9814, 9816, 9818, 9820, 9822, 9824, 9826, 9828, 9830, 9832, 9834, 9836, 9838, 9840, 9842, 9844, 9846, 9848, 9850, 9852, 9854, 9856, 9858, 9860, 9862, 9864, 9866, 9868, 9870, 9872, 9874, 9876, 9878, 9880, 9882, 9884, 9886, 9888, 9890, 9892, 9894, 9896, 9898, 9900, 9902, 9904, 9906, 9908, 9910, 9912, 9914, 9916, 9918, 9920, 9922, 9924, 9926, 9928, 9930, 9932, 9934, 9936, 9938, 9940, 9942, 9944, 9946, 9948, 9950, 9952, 9954, 9956, 9958, 9960, 9962, 9964, 9966, 9968, 9970, 9972, 9974, 9976, 9978, 9980, 9982, 9984, 9986, 9988, 9990, 9992, 9994, 9996, 9998, 10000, 10002, 10004, 10006, 10008, 10010, 10012, 10014, 10016, 10018, 10020, 10022, 10024, 10026, 10028, 10030, 10032, 10034, 10036, 10038, 10040, 10042, 10044, 10046, 10048, 10050, 10052, 10054, 10056, 10058, 10060, 10062, 10064, 10066, 10068, 10070, 10072, 10074, 10076, 10078, 10080, 10082, 10084, 10086, 10088, 10090, 10092, 10094, 10096, 10098, 10100, 10102, 10104, 10106, 10108, 10110, 10112, 10114, 10116, 10118, 10120, 10122, 10124, 10126, 10128, 10130, 10132, 10134, 10136, 10138, 10140, 10142, 10144, 10146, 10148, 10150, 10152, 10154, 10156, 10158, 10160, 10162, 10164, 10166, 10168, 10170, 10172, 10174, 10176, 10178, 10180, 10182, 10184, 10186, 10188, 10190, 10192, 10194, 10196, 10198, 10200, 10202, 10204, 10206, 10208, 10210, 10212, 10214, 10216, 10218, 10220, 10222, 10224, 10226, 10228, 10230, 10232, 10234, 10236, 10238, 10240, 10242, 10244, 10246, 10248, 10250, 10252, 10254, 10256, 10258, 10260, 10262, 10264, 10266, 10268, 10270, 10272, 10274, 10276, 10278, 10280, 10282, 10284, 10286, 10288, 10290, 10292, 10294, 10296, 10298, 10300, 10302, 10304, 10306, 10308, 10310, 10312, 10314, 10316, 10318, 10320, 10322, 10324, 10326, 10328, 10330, 10332, 10334, 10336, 10338, 10340, 10342, 10344, 10346, 8481, 8477, 8473, 8474, 8475, 10348, 10350, 10352, 10354] - }, - "zlib/zlib_21814955": { - "expected_image_info": [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], - "expected_junk_img_bojids": [5678, 5687, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5688, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5689, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5690, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5691, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5692, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5693, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5694, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5695, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5696, 5867, 5868, 5869, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5697, 5877, 5878, 5879, 5880, 5881, 5882, 5883, 5884, 5885, 5886, 5698, 5887, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5699, 5897, 5898, 5899, 5900, 5901, 5902, 5903, 5904, 5905, 5906, 5700, 5907, 5908, 5909, 5910, 5911, 5912, 5913, 5914, 5915, 5916, 5701, 5917, 5918, 5919, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5702, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5703, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5944, 5945, 5946, 5704, 5947, 5948, 5949, 5950, 5951, 5952, 5953, 5954, 5955, 5956, 5705, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5706, 5967, 5968, 5969, 5970, 5971, 5972, 5973, 5974, 5975, 5976, 5707, 5977, 5978, 5979, 5980, 5981, 5982, 5983, 5984, 5985, 5986, 5708, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5709, 5997, 5998, 5999, 6000, 6001, 6002, 6003, 6004, 6005, 6006, 5710, 6007, 6008, 6009, 6010, 6011, 6012, 6013, 6014, 6015, 6016, 5711, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 5712, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 5713, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 5714, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 5715, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 5716, 6067, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 5717, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 5718, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 5719, 6097, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6105, 6106, 5720, 6107, 6108, 6109, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 5721, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 5722, 6127, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 5723, 6137, 6138, 6139, 6140, 6141, 6142, 6143, 6144, 6145, 6146, 5724, 6147, 6148, 6149, 6150, 6151, 6152, 6153, 6154, 6155, 6156, 5725, 6157, 6158, 6159, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 5726, 6167, 6168, 6169, 6170, 6171, 6172, 6173, 6174, 6175, 6176, 5682, 5727, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 5728, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 5729, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 5730, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 5731, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 5732, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 5733, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 5734, 6247, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5685, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5686, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 6248, 6250, 6252, 6254, 6256, 6258, 6260, 6262, 6264, 6266, 6268, 6270, 6272, 6274, 6276, 6278, 6280, 6282, 6284, 6286, 6288, 6290, 6292, 6294, 6296, 6298, 6300, 6302, 6304, 6306, 6308, 6310, 6312, 6314, 6316, 6318, 6320, 6322, 6324, 6326, 6328, 6330, 6332, 6334, 6336, 6338, 6340, 6342, 6344, 6346, 6348, 6350, 6352, 6354, 6356, 6358, 6360, 6362, 6364, 6366, 6368, 6370, 6372, 6374, 6376, 6378, 6380, 6382, 6384, 6386, 6388, 6390, 6392, 6394, 6396, 6398, 6400, 6402, 6404, 6406, 6408, 6410, 6412, 6414, 6416, 6418, 6420, 6422, 6424, 6426, 6428, 6430, 6432, 6434, 6436, 6438, 6440, 6442, 6444, 6446, 6448, 6450, 6452, 6454, 6456, 6458, 6460, 6462, 6464, 6466, 6468, 6470, 6472, 6474, 6476, 6478, 6480, 6482, 6484, 6486, 6488, 6490, 6492, 6494, 6496, 6498, 6500, 6502, 6504, 6506, 6508, 6510, 6512, 6514, 6516, 6518, 6520, 6522, 6524, 6526, 6528, 6530, 6532, 6534, 6536, 6538, 6540, 6542, 6544, 6546, 6548, 6550, 6552, 6554, 6556, 6558, 6560, 6562, 6564, 6566, 6568, 6570, 6572, 6574, 6576, 6578, 6580, 6582, 6584, 6586, 6588, 6590, 6592, 6594, 6596, 6598, 6600, 6602, 6604, 6606, 6608, 6610, 6612, 6614, 6616, 6618, 6620, 6622, 6624, 6626, 6628, 6630, 6632, 6634, 6636, 6638, 6640, 6642, 6644, 6646, 6648, 6650, 6652, 6654, 6656, 6658, 6660, 6662, 6664, 6666, 6668, 6670, 6672, 6674, 6676, 6678, 6680, 6682, 6684, 6686, 6688, 6690, 6692, 6694, 6696, 6698, 6700, 6702, 6704, 6706, 6708, 6710, 6712, 6714, 6716, 6718, 6720, 6722, 6724, 6726, 6728, 6730, 6732, 6734, 6736, 6738, 6740, 6742, 6744, 6746, 6748, 6750, 6752, 6754, 6756, 6758, 6760, 6762, 6764, 6766, 6768, 6770, 6772, 6774, 6776, 6778, 6780, 6782, 6784, 6786, 6788, 6790, 6792, 6794, 6796, 6798, 6800, 6802, 6804, 6806, 6808, 6810, 6812, 6814, 6816, 6818, 6820, 6822, 6824, 6826, 6828, 6830, 6832, 6834, 6836, 6838, 6840, 6842, 6844, 6846, 6848, 6850, 6852, 6854, 6856, 6858, 6860, 6862, 6864, 6866, 6868, 6870, 6872, 6874, 6876, 6878, 6880, 6882, 6884, 6886, 6888, 6890, 6892, 6894, 6896, 6898, 6900, 6902, 6904, 6906, 6908, 6910, 6912, 6914, 6916, 6918, 6920, 6922, 6924, 6926, 6928, 6930, 6932, 6934, 6936, 6938, 6940, 6942, 6944, 6946, 6948, 6950, 6952, 6954, 6956, 6958, 6960, 6962, 6964, 6966, 6968, 6970, 6972, 6974, 6976, 6978, 6980, 6982, 6984, 6986, 6988, 6990, 6992, 6994, 6996, 6998, 7000, 7002, 7004, 7006, 7008, 7010, 7012, 7014, 7016, 7018, 7020, 7022, 7024, 7026, 7028, 7030, 7032, 7034, 7036, 7038, 7040, 7042, 7044, 7046, 7048, 7050, 7052, 7054, 7056, 7058, 7060, 7062, 7064, 7066, 7068, 7070, 7072, 7074, 7076, 7078, 7080, 7082, 7084, 7086, 7088, 7090, 7092, 7094, 7096, 7098, 7100, 7102, 7104, 7106, 7108, 7110, 7112, 7114, 7116, 7118, 7120, 7122, 7124, 7126, 7128, 7130, 7132, 7134, 7136, 7138, 7140, 7142, 7144, 7146, 7148, 7150, 7152, 7154, 7156, 7158, 7160, 7162, 7164, 7166, 7168, 7170, 7172, 7174, 7176, 7178, 7180, 7182, 7184, 7186, 7188, 7190, 7192, 7194, 7196, 7198, 7200, 7202, 7204, 7206, 7208, 7210, 7212, 7214, 7216, 7218, 7220, 7222, 7224, 7226, 7228, 7230, 7232, 7234, 7236, 7238, 7240, 7242, 7244, 7246, 7248, 7250, 7252, 7254, 7256, 7258, 7260, 7262, 7264, 7266, 7268, 7270, 7272, 7274, 7276, 7278, 7280, 7282, 7284, 7286, 7288, 7290, 7292, 7294, 7296, 7298, 7300, 7302, 7304, 7306, 7308, 7310, 7312, 7314, 7316, 7318, 7320, 7322, 7324, 7326, 7328, 7330, 7332, 7334, 7336, 7338, 7340, 7342, 7344, 7346, 7348, 7350, 7352, 7354, 7356, 7358, 7360, 7362, 7364, 7366, 7368, 7370, 7372, 7374, 7376, 7378, 5679, 5680, 5681, 5683, 5684, 7380, 7382, 7384, 7386] - }, - "scihub/scihub_41200000/libgen.scimag41253000-41253999.zip_10.1080/00222938709460256": { - "expected_image_info": [[[21, 117, 144, 290, 44]], [], [[0, -9, 383, 602, 84]], [[2, -7, 385, 604, 91]], [[1, -9, 384, 602, 96]], [[1, -9, 384, 602, 104]], [[0, -5, 383, 606, 109]], [[3, -7, 386, 604, 114]], [[0, -6, 383, 605, 119]], [[0, 0, 383, 611, 124]], [[-4, 1, 379, 613, 131]], [[-1, -4, 382, 607, 138]], [[-1, -12, 382, 599, 144]]], - "expected_junk_img_bojids": [] - }, - "scihub/scihub_37000000/libgen.scimag37068000-37068999.zip_10.1080/0015587X.1936.9718622": { - "expected_image_info": [[[21, 117, 144, 277, 20]], [], [[0, 0, 430, 649, 53]], [[0, 0, 430, 649, 77]], [[0, 0, 430, 649, 80]]], - "expected_junk_img_bojids": [] - } -} diff --git a/tests/test_model/__init__.py b/tests/test_model/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/test_model/assets/test_01.model.json b/tests/test_model/assets/test_01.model.json deleted file mode 100644 index ee79509e2..000000000 --- a/tests/test_model/assets/test_01.model.json +++ /dev/null @@ -1,687 +0,0 @@ -[ - { - "layout_dets": [ - { - "category_id": 3, - "poly": [ - 776.7277221679688, - 688.448974609375, - 1242.224365234375, - 688.448974609375, - 1242.224365234375, - 1182.0628662109375, - 776.7277221679688, - 1182.0628662109375 - ], - "score": 0.999997079372406 - }, - { - "category_id": 3, - "poly": [ - 775.9269409179688, - 1389.754638671875, - 1243.672119140625, - 1389.754638671875, - 1243.672119140625, - 1859.716064453125, - 775.9269409179688, - 1859.716064453125 - ], - "score": 0.9999949932098389 - }, - { - "category_id": 1, - "poly": [ - 752.11572265625, - 1939.3634033203125, - 1430.1146240234375, - 1939.3634033203125, - 1430.1146240234375, - 2041.1771240234375, - 752.11572265625, - 2041.1771240234375 - ], - "score": 0.999975323677063 - }, - { - "category_id": 3, - "poly": [ - 46.55152893066406, - 686.12939453125, - 638.8861083984375, - 686.12939453125, - 638.8861083984375, - 1803.419189453125, - 46.55152893066406, - 1803.419189453125 - ], - "score": 0.999961256980896 - }, - { - "category_id": 3, - "poly": [ - 33.684722900390625, - 150.77980041503906, - 1238.0679931640625, - 150.77980041503906, - 1238.0679931640625, - 524.98291015625, - 33.684722900390625, - 524.98291015625 - ], - "score": 0.9999504089355469 - }, - { - "category_id": 1, - "poly": [ - 24.685693740844727, - 1875.9998779296875, - 703.5064697265625, - 1875.9998779296875, - 703.5064697265625, - 2050.7431640625, - 24.685693740844727, - 2050.7431640625 - ], - "score": 0.9999105334281921 - }, - { - "category_id": 1, - "poly": [ - 750.97705078125, - 1252.206787109375, - 1430.0809326171875, - 1252.206787109375, - 1430.0809326171875, - 1357.2947998046875, - 750.97705078125, - 1357.2947998046875 - ], - "score": 0.999853789806366 - }, - { - "category_id": 4, - "poly": [ - 904.842041015625, - 1213.027099609375, - 1273.5655517578125, - 1213.027099609375, - 1273.5655517578125, - 1242.717529296875, - 904.842041015625, - 1242.717529296875 - ], - "score": 0.9995817542076111 - }, - { - "category_id": 4, - "poly": [ - 905.3208618164062, - 1898.5325927734375, - 1273.1282958984375, - 1898.5325927734375, - 1273.1282958984375, - 1928.9906005859375, - 905.3208618164062, - 1928.9906005859375 - ], - "score": 0.9986443519592285 - }, - { - "category_id": 4, - "poly": [ - 372.0135498046875, - 556.02685546875, - 1084.9647216796875, - 556.02685546875, - 1084.9647216796875, - 586.6792602539062, - 372.0135498046875, - 586.6792602539062 - ], - "score": 0.9985352754592896 - }, - { - "category_id": 2, - "poly": [ - 1350.63671875, - 79.77919006347656, - 1379.6220703125, - 79.77919006347656, - 1379.6220703125, - 99.83788299560547, - 1350.63671875, - 99.83788299560547 - ], - "score": 0.9973036646842957 - }, - { - "category_id": 4, - "poly": [ - 203.2659912109375, - 597.2034912109375, - 1251.0240478515625, - 597.2034912109375, - 1251.0240478515625, - 657.985595703125, - 203.2659912109375, - 657.985595703125 - ], - "score": 0.9622809886932373 - }, - { - "category_id": 0, - "poly": [ - 70.87332916259766, - 1834.5714111328125, - 657.8504638671875, - 1834.5714111328125, - 657.8504638671875, - 1865.07373046875, - 70.87332916259766, - 1865.07373046875 - ], - "score": 0.8580453395843506 - }, - { - "category_id": 1, - "poly": [ - 189.0360870361328, - 597.2406616210938, - 1252.3204345703125, - 597.2406616210938, - 1252.3204345703125, - 658.4781494140625, - 189.0360870361328, - 658.4781494140625 - ], - "score": 0.3083903193473816 - }, - { - "category_id": 13, - "poly": [ - 1190, - 1980, - 1206, - 1980, - 1206, - 1997, - 1190, - 1997 - ], - "score": 0.51, - "latex": ":" - }, - { - "category_id": 13, - "poly": [ - 1219, - 1331, - 1235, - 1331, - 1235, - 1348, - 1219, - 1348 - ], - "score": 0.49, - "latex": ":" - }, - { - "category_id": 13, - "poly": [ - 798, - 2016, - 813, - 2016, - 813, - 2033, - 798, - 2033 - ], - "score": 0.41, - "latex": ":" - }, - { - "category_id": 13, - "poly": [ - 135, - 1991, - 148, - 1991, - 148, - 2006, - 135, - 2006 - ], - "score": 0.39, - "latex": ":" - }, - { - "category_id": 13, - "poly": [ - 400, - 1916, - 416, - 1916, - 416, - 1933, - 400, - 1933 - ], - "score": 0.38, - "latex": ":" - }, - { - "category_id": 13, - "poly": [ - 1148, - 1944, - 1162, - 1944, - 1162, - 1961, - 1148, - 1961 - ], - "score": 0.31, - "latex": ":" - }, - { - "category_id": 15, - "poly": [ - 798.0, - 1943.0, - 1147.0, - 1943.0, - 1147.0, - 1968.0, - 798.0, - 1968.0 - ], - "score": 0.95, - "text": "Fig 4 SSCP analysis of FHIT exon 4. T" - }, - { - "category_id": 15, - "poly": [ - 1163.0, - 1943.0, - 1425.0, - 1943.0, - 1425.0, - 1968.0, - 1163.0, - 1968.0 - ], - "score": 0.96, - "text": "Tumor tissue ; N :Corresponding" - }, - { - "category_id": 15, - "poly": [ - 755.0, - 1979.0, - 1189.0, - 1979.0, - 1189.0, - 2004.0, - 755.0, - 2004.0 - ], - "score": 0.92, - "text": "normal tissue ; M : PBR322/Hae II Marker ; ssDNA" - }, - { - "category_id": 15, - "poly": [ - 1207.0, - 1979.0, - 1422.0, - 1979.0, - 1422.0, - 2004.0, - 1207.0, - 2004.0 - ], - "score": 0.97, - "text": "Single-stranded DNA ; ds-" - }, - { - "category_id": 15, - "poly": [ - 755.0, - 2015.0, - 797.0, - 2015.0, - 797.0, - 2038.0, - 755.0, - 2038.0 - ], - "score": 1.0, - "text": "DNA" - }, - { - "category_id": 15, - "poly": [ - 814.0, - 2015.0, - 996.0, - 2015.0, - 996.0, - 2038.0, - 814.0, - 2038.0 - ], - "score": 0.98, - "text": "Double-stranded DNA" - }, - { - "category_id": 15, - "poly": [ - 71.0, - 1880.0, - 698.0, - 1880.0, - 698.0, - 1902.0, - 71.0, - 1902.0 - ], - "score": 0.96, - "text": "Fig 2Alterations of PCR amplified products of FHIT exon 3,4,5 and" - }, - { - "category_id": 15, - "poly": [ - 28.0, - 1916.0, - 399.0, - 1916.0, - 399.0, - 1937.0, - 28.0, - 1937.0 - ], - "score": 0.98, - "text": "microsatellite marker D3S1300、D3S1312.A" - }, - { - "category_id": 15, - "poly": [ - 417.0, - 1916.0, - 701.0, - 1916.0, - 701.0, - 1937.0, - 417.0, - 1937.0 - ], - "score": 0.9, - "text": "Deletion of exon5(arrows);B :" - }, - { - "category_id": 15, - "poly": [ - 29.0, - 1953.0, - 700.0, - 1953.0, - 700.0, - 1974.0, - 29.0, - 1974.0 - ], - "score": 0.95, - "text": "Deletion of exon 3 A( arrows);C : Deletion of microsatellite marker D3S1300," - }, - { - "category_id": 15, - "poly": [ - 28.0, - 1989.0, - 134.0, - 1989.0, - 134.0, - 2014.0, - 28.0, - 2014.0 - ], - "score": 1.0, - "text": "D3S1312.T" - }, - { - "category_id": 15, - "poly": [ - 149.0, - 1989.0, - 696.0, - 1989.0, - 696.0, - 2014.0, - 149.0, - 2014.0 - ], - "score": 0.96, - "text": "Tumor ; N : Corresponding normal tissue ; L : Corresponding lymph" - }, - { - "category_id": 15, - "poly": [ - 30.0, - 2027.0, - 634.0, - 2027.0, - 634.0, - 2047.0, - 30.0, - 2047.0 - ], - "score": 0.94, - "text": "node tissue;M :DL2000 DNA marker;L1:Lewis ;A :A549;S SPAC-1" - }, - { - "category_id": 15, - "poly": [ - 801.0, - 1259.0, - 1427.0, - 1259.0, - 1427.0, - 1280.0, - 801.0, - 1280.0 - ], - "score": 0.94, - "text": "Fig 3SSCP analysis of FHIT exon 3.The arrow indicateda deletion of" - }, - { - "category_id": 15, - "poly": [ - 757.0, - 1294.0, - 1424.0, - 1294.0, - 1424.0, - 1318.0, - 757.0, - 1318.0 - ], - "score": 0.96, - "text": "exon 3 of 41T. T : Tumor tissue ; N : Corresponding normal tissue ; M PBR322/" - }, - { - "category_id": 15, - "poly": [ - 755.0, - 1329.0, - 1218.0, - 1329.0, - 1218.0, - 1355.0, - 755.0, - 1355.0 - ], - "score": 0.95, - "text": "Hae Il Marker / ssDNA : Single-stranded DNA ; dsDNA" - }, - { - "category_id": 15, - "poly": [ - 1236.0, - 1329.0, - 1418.0, - 1329.0, - 1418.0, - 1355.0, - 1236.0, - 1355.0 - ], - "score": 1.0, - "text": "Double-strandedDNA" - }, - { - "category_id": 15, - "poly": [ - 910.0, - 1217.0, - 1269.0, - 1217.0, - 1269.0, - 1241.0, - 910.0, - 1241.0 - ], - "score": 1.0, - "text": "图3FHIT基因外显子3的SSCP分析" - }, - { - "category_id": 15, - "poly": [ - 909.0, - 1904.0, - 1269.0, - 1904.0, - 1269.0, - 1927.0, - 909.0, - 1927.0 - ], - "score": 1.0, - "text": "图4FHIT基因外显子4的SSCP分析" - }, - { - "category_id": 15, - "poly": [ - 374.0, - 563.0, - 1077.0, - 563.0, - 1077.0, - 583.0, - 374.0, - 583.0 - ], - "score": 0.99, - "text": "图1FHIT基因外显子3、4、5、8和微卫星灶的PCR扩增产物琼脂糖电泳图" - }, - { - "category_id": 15, - "poly": [ - 1351.0, - 81.0, - 1376.0, - 81.0, - 1376.0, - 102.0, - 1351.0, - 102.0 - ], - "score": 1.0, - "text": "13" - }, - { - "category_id": 15, - "poly": [ - 207.0, - 600.0, - 1245.0, - 600.0, - 1245.0, - 624.0, - 207.0, - 624.0 - ], - "score": 0.96, - "text": "Fig 1 Agarose electrophoresis of PCR products of exor( A)3 ,4 ,5 ,8 and three microsatellite markers( B)of FHIT gene" - }, - { - "category_id": 15, - "poly": [ - 309.0, - 634.0, - 1142.0, - 634.0, - 1142.0, - 662.0, - 309.0, - 662.0 - ], - "score": 0.97, - "text": "M1 :DL2000 DNA marker ; M2 PBR322/Hae Il marker ; T :Tumor ; N :Corresponding normal tissue" - }, - { - "category_id": 15, - "poly": [ - 73.0, - 1840.0, - 651.0, - 1840.0, - 651.0, - 1864.0, - 73.0, - 1864.0 - ], - "score": 1.0, - "text": "图2FHIT基因外显子和微卫星灶PCR扩增产物缺失电泳图" - }, - { - "category_id": 15, - "poly": [ - 207.0, - 600.0, - 1245.0, - 600.0, - 1245.0, - 625.0, - 207.0, - 625.0 - ], - "score": 0.96, - "text": "Fig 1 Agarose electrophoresis of PCR products of exor A)3 ,4 ,5 ,8 and three microsatellite markers( B)of FHIT gene" - }, - { - "category_id": 15, - "poly": [ - 309.0, - 635.0, - 1142.0, - 635.0, - 1142.0, - 661.0, - 309.0, - 661.0 - ], - "score": 0.97, - "text": "M1 :DL2000 DNA marker ; M2 PBR322/Hae Il marker ; T Tumor ; N :Corresponding normal tissue" - } - ], - "page_info": { - "page_no": 0, - "height": 2080, - "width": 1472 - } - } -] diff --git a/tests/test_model/assets/test_01.pdf b/tests/test_model/assets/test_01.pdf deleted file mode 100644 index e45004999..000000000 Binary files a/tests/test_model/assets/test_01.pdf and /dev/null differ diff --git a/tests/test_model/assets/test_02.model.json b/tests/test_model/assets/test_02.model.json deleted file mode 100644 index 0a3089871..000000000 --- a/tests/test_model/assets/test_02.model.json +++ /dev/null @@ -1,17564 +0,0 @@ -[ - { - "layout_dets": [ - { - "category_id": 2, - "poly": [ - 118.60955810546875, - 198.658203125, - 267.46044921875, - 198.658203125, - 267.46044921875, - 363.13531494140625, - 118.60955810546875, - 363.13531494140625 - ], - "score": 0.9999977946281433 - }, - { - "category_id": 2, - "poly": [ - 1082.397216796875, - 196.80734252929688, - 1380.781005859375, - 196.80734252929688, - 1380.781005859375, - 394.29400634765625, - 1082.397216796875, - 394.29400634765625 - ], - "score": 0.9999669790267944 - }, - { - "category_id": 2, - "poly": [ - 117.83770751953125, - 1687.9595947265625, - 1381.0810546875, - 1687.9595947265625, - 1381.0810546875, - 1765.1331787109375, - 117.83770751953125, - 1765.1331787109375 - ], - "score": 0.9999470114707947 - }, - { - "category_id": 1, - "poly": [ - 212.48126220703125, - 622.498291015625, - 1290.409423828125, - 622.498291015625, - 1290.409423828125, - 731.6904296875, - 212.48126220703125, - 731.6904296875 - ], - "score": 0.9999340772628784 - }, - { - "category_id": 0, - "poly": [ - 244.640625, - 473.26220703125, - 1256.727294921875, - 473.26220703125, - 1256.727294921875, - 519.3681640625, - 244.640625, - 519.3681640625 - ], - "score": 0.9999324083328247 - }, - { - "category_id": 1, - "poly": [ - 391.2038269042969, - 752.9738159179688, - 1106.6009521484375, - 752.9738159179688, - 1106.6009521484375, - 773.8135986328125, - 391.2038269042969, - 773.8135986328125 - ], - "score": 0.999659538269043 - }, - { - "category_id": 1, - "poly": [ - 116.69463348388672, - 912.680908203125, - 1383.009521484375, - 912.680908203125, - 1383.009521484375, - 1526.5164794921875, - 116.69463348388672, - 1526.5164794921875 - ], - "score": 0.9996497631072998 - }, - { - "category_id": 2, - "poly": [ - 556.8428344726562, - 344.6543273925781, - 942.172119140625, - 344.6543273925781, - 942.172119140625, - 368.55316162109375, - 556.8428344726562, - 368.55316162109375 - ], - "score": 0.9996120929718018 - }, - { - "category_id": 0, - "poly": [ - 118.258544921875, - 864.1715087890625, - 210.07864379882812, - 864.1715087890625, - 210.07864379882812, - 889.3430786132812, - 118.258544921875, - 889.3430786132812 - ], - "score": 0.999344527721405 - }, - { - "category_id": 1, - "poly": [ - 241.03976440429688, - 551.4166870117188, - 1255.7645263671875, - 551.4166870117188, - 1255.7645263671875, - 595.4854736328125, - 241.03976440429688, - 595.4854736328125 - ], - "score": 0.9993418455123901 - }, - { - "category_id": 2, - "poly": [ - 117.89942169189453, - 1794.3287353515625, - 772.7922973632812, - 1794.3287353515625, - 772.7922973632812, - 1842.42919921875, - 117.89942169189453, - 1842.42919921875 - ], - "score": 0.9991039633750916 - }, - { - "category_id": 2, - "poly": [ - 515.6521606445312, - 193.61793518066406, - 985.9738159179688, - 193.61793518066406, - 985.9738159179688, - 291.953125, - 515.6521606445312, - 291.953125 - ], - "score": 0.9970645904541016 - }, - { - "category_id": 1, - "poly": [ - 117.53016662597656, - 1570.8095703125, - 865.2678833007812, - 1570.8095703125, - 865.2678833007812, - 1593.182861328125, - 117.53016662597656, - 1593.182861328125 - ], - "score": 0.9883127212524414 - }, - { - "category_id": 1, - "poly": [ - 119.48209381103516, - 1508.9144287109375, - 539.9886474609375, - 1508.9144287109375, - 539.9886474609375, - 1534.0999755859375, - 119.48209381103516, - 1534.0999755859375 - ], - "score": 0.8136677742004395 - }, - { - "category_id": 2, - "poly": [ - 1083.8271484375, - 374.8357238769531, - 1380.78369140625, - 374.8357238769531, - 1380.78369140625, - 395.9932861328125, - 1083.8271484375, - 395.9932861328125 - ], - "score": 0.3611733317375183 - }, - { - "category_id": 2, - "poly": [ - 515.6149291992188, - 196.63461303710938, - 984.0328369140625, - 196.63461303710938, - 984.0328369140625, - 221.70213317871094, - 515.6149291992188, - 221.70213317871094 - ], - "score": 0.33345672488212585 - }, - { - "category_id": 13, - "poly": [ - 714, - 1383, - 767, - 1383, - 767, - 1411, - 714, - 1411 - ], - "score": 0.89, - "latex": "N_{\\mathrm{zero}}" - }, - { - "category_id": 13, - "poly": [ - 571, - 1351, - 636, - 1351, - 636, - 1380, - 571, - 1380 - ], - "score": 0.87, - "latex": "(N_{\\mathrm{zero}})" - }, - { - "category_id": 13, - "poly": [ - 398, - 1793, - 419, - 1793, - 419, - 1815, - 398, - 1815 - ], - "score": 0.75, - "latex": "\\circledcirc" - }, - { - "category_id": 13, - "poly": [ - 116, - 1509, - 140, - 1509, - 140, - 1533, - 116, - 1533 - ], - "score": 0.73, - "latex": "\\copyright" - }, - { - "category_id": 13, - "poly": [ - 315, - 1713, - 479, - 1713, - 479, - 1739, - 315, - 1739 - ], - "score": 0.36, - "latex": "+61\\ 3\\ 9450\\ 8719" - }, - { - "category_id": 13, - "poly": [ - 148, - 1743, - 166, - 1743, - 166, - 1765, - 148, - 1765 - ], - "score": 0.35, - "latex": "E" - }, - { - "category_id": 13, - "poly": [ - 369, - 1743, - 387, - 1743, - 387, - 1764, - 369, - 1764 - ], - "score": 0.26, - "latex": "@" - }, - { - "category_id": 15, - "poly": [ - 124.0, - 343.0, - 263.0, - 343.0, - 263.0, - 364.0, - 124.0, - 364.0 - ], - "score": 0.93, - "text": "ELSEVIER" - }, - { - "category_id": 15, - "poly": [ - 1168.0, - 218.0, - 1284.0, - 218.0, - 1284.0, - 251.0, - 1168.0, - 251.0 - ], - "score": 0.99, - "text": "Journal" - }, - { - "category_id": 15, - "poly": [ - 1173.0, - 259.0, - 1206.0, - 259.0, - 1206.0, - 287.0, - 1173.0, - 287.0 - ], - "score": 0.93, - "text": "Of" - }, - { - "category_id": 15, - "poly": [ - 1163.0, - 296.0, - 1376.0, - 296.0, - 1376.0, - 346.0, - 1163.0, - 346.0 - ], - "score": 1.0, - "text": "Hydrology" - }, - { - "category_id": 15, - "poly": [ - 1084.0, - 376.0, - 1379.0, - 376.0, - 1379.0, - 393.0, - 1084.0, - 393.0 - ], - "score": 0.99, - "text": "www.elsevier.com/locate/jhydrol" - }, - { - "category_id": 15, - "poly": [ - 134.0, - 1688.0, - 1377.0, - 1688.0, - 1377.0, - 1715.0, - 134.0, - 1715.0 - ], - "score": 0.99, - "text": "* Corresponding author. Address: Forest Science Centre, Department of Sustainability and Environment, P.O. Box 137, Heidelberg, Vic." - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1718.0, - 314.0, - 1718.0, - 314.0, - 1741.0, - 118.0, - 1741.0 - ], - "score": 0.99, - "text": "3084,Australia.Tel.:" - }, - { - "category_id": 15, - "poly": [ - 480.0, - 1718.0, - 701.0, - 1718.0, - 701.0, - 1741.0, - 480.0, - 1741.0 - ], - "score": 0.98, - "text": ";fax:+61394508644." - }, - { - "category_id": 15, - "poly": [ - 167.0, - 1748.0, - 655.0, - 1748.0, - 655.0, - 1768.0, - 167.0, - 1768.0 - ], - "score": 0.98, - "text": "-mailaddress:patrickl@unimelb.edu.au(P.N.J.Lane)." - }, - { - "category_id": 15, - "poly": [ - 211.0, - 623.0, - 1285.0, - 623.0, - 1285.0, - 653.0, - 211.0, - 653.0 - ], - "score": 0.97, - "text": "aSchool of Forest and EcosystemStudies,University ofMelbourne,P.O.Box 137,Heidelberg,Victoria 3084,Australia" - }, - { - "category_id": 15, - "poly": [ - 457.0, - 649.0, - 1038.0, - 649.0, - 1038.0, - 679.0, - 457.0, - 679.0 - ], - "score": 0.98, - "text": "bCSIRODivision of Land and Water,Canberra,ACT,Australia" - }, - { - "category_id": 15, - "poly": [ - 368.0, - 676.0, - 1127.0, - 676.0, - 1127.0, - 709.0, - 368.0, - 709.0 - ], - "score": 0.98, - "text": "cCooperative Research Centre for Catchment Hydrology, Canberra, ACT, Australia" - }, - { - "category_id": 15, - "poly": [ - 303.0, - 704.0, - 1198.0, - 704.0, - 1198.0, - 739.0, - 303.0, - 739.0 - ], - "score": 0.96, - "text": "Department of Civil and Environmental Engineering, University of Melbourne, Victoria, Australia" - }, - { - "category_id": 15, - "poly": [ - 247.0, - 475.0, - 1252.0, - 475.0, - 1252.0, - 518.0, - 247.0, - 518.0 - ], - "score": 0.99, - "text": "The response of flow duration curves to afforestation" - }, - { - "category_id": 15, - "poly": [ - 389.0, - 754.0, - 1107.0, - 754.0, - 1107.0, - 775.0, - 389.0, - 775.0 - ], - "score": 0.99, - "text": "Received1October 2003;revised22December2004;accepted3January2005" - }, - { - "category_id": 15, - "poly": [ - 141.0, - 914.0, - 1380.0, - 914.0, - 1380.0, - 944.0, - 141.0, - 944.0 - ], - "score": 0.99, - "text": "The hydrologic effect of replacing pasture or other short crops with trees is reasonably well understood on a mean annual" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 948.0, - 1377.0, - 948.0, - 1377.0, - 972.0, - 120.0, - 972.0 - ], - "score": 0.98, - "text": "basis. The impact on flow regime, as described by the annual flow duration curve (FDC) is less certain. A method to assess the" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 979.0, - 1379.0, - 979.0, - 1379.0, - 1003.0, - 120.0, - 1003.0 - ], - "score": 0.98, - "text": "impact of plantation establishment on FDCs was developed. The starting point for the analyses was the assumption that rainfall" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1010.0, - 1379.0, - 1010.0, - 1379.0, - 1038.0, - 117.0, - 1038.0 - ], - "score": 1.0, - "text": "and vegetation age are the principal drivers of evapotranspiration. A key objective was to remove the variability in the rainfall" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1042.0, - 1377.0, - 1042.0, - 1377.0, - 1066.0, - 119.0, - 1066.0 - ], - "score": 0.98, - "text": "signal, leaving changes in streamflow solely attributable to the evapotranspiration of the plantation. A method was developed to" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1074.0, - 1379.0, - 1074.0, - 1379.0, - 1098.0, - 119.0, - 1098.0 - ], - "score": 0.97, - "text": "(1) fit a model to the observed annual time series of FDC percentiles; i.e. 1Oth percentile for each year of record with annual" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1106.0, - 1377.0, - 1106.0, - 1377.0, - 1130.0, - 119.0, - 1130.0 - ], - "score": 0.99, - "text": "rainfall and plantation age as parameters, (2) replace the annual rainfall variation with the long term mean to obtain climate" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1137.0, - 1379.0, - 1137.0, - 1379.0, - 1160.0, - 119.0, - 1160.0 - ], - "score": 0.96, - "text": "adjusted FDCs, and (3) quantify changes in FDC percentiles as plantations age. Data from 10 catchments from Australia, South" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1165.0, - 1379.0, - 1165.0, - 1379.0, - 1194.0, - 117.0, - 1194.0 - ], - "score": 0.98, - "text": "Africa and New Zealand were used. The model was able to represent flow variation for the majority of percentiles at eight of the" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1199.0, - 1379.0, - 1199.0, - 1379.0, - 1223.0, - 120.0, - 1223.0 - ], - "score": 0.98, - "text": "10 catchments, particularly for the 10-5Oth percentiles. The adjusted FDCs revealed variable patterns in flow reductions with" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1232.0, - 1377.0, - 1232.0, - 1377.0, - 1255.0, - 119.0, - 1255.0 - ], - "score": 0.97, - "text": "two types of responses(groups)being identified.Group1 catchments show a substantial increase in the number of zeroflow" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1261.0, - 1377.0, - 1261.0, - 1377.0, - 1285.0, - 119.0, - 1285.0 - ], - "score": 0.98, - "text": "days, with low flows being more affected than high fows. Group 2 catchments show a more uniform reduction in flows across" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1294.0, - 1380.0, - 1294.0, - 1380.0, - 1318.0, - 119.0, - 1318.0 - ], - "score": 0.98, - "text": "all percentiles. The differences may be partly explained by storage characteristics. The modelled flow reductions were in accord" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1324.0, - 1382.0, - 1324.0, - 1382.0, - 1350.0, - 119.0, - 1350.0 - ], - "score": 0.99, - "text": "with published results of paired catchment experiments. An additional analysis was performed to characterise the impact of" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1354.0, - 570.0, - 1354.0, - 570.0, - 1382.0, - 117.0, - 1382.0 - ], - "score": 0.95, - "text": "afforestation on thenumber ofzeroflowdays" - }, - { - "category_id": 15, - "poly": [ - 637.0, - 1354.0, - 1380.0, - 1354.0, - 1380.0, - 1382.0, - 637.0, - 1382.0 - ], - "score": 0.99, - "text": "for the catchments in group 1. This model performed particularly well, and" - }, - { - "category_id": 15, - "poly": [ - 116.0, - 1385.0, - 713.0, - 1385.0, - 713.0, - 1414.0, - 116.0, - 1414.0 - ], - "score": 0.99, - "text": "when adjusted for climate, indicated a significant increase in" - }, - { - "category_id": 15, - "poly": [ - 768.0, - 1385.0, - 1379.0, - 1385.0, - 1379.0, - 1414.0, - 768.0, - 1414.0 - ], - "score": 0.98, - "text": ".The zero flow day method could be used to determine change" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1420.0, - 1379.0, - 1420.0, - 1379.0, - 1444.0, - 117.0, - 1444.0 - ], - "score": 0.99, - "text": "in the occurrence of any given flow in response to afforestation. The methods used in this study proved satisfactory in removing" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1452.0, - 1379.0, - 1452.0, - 1379.0, - 1476.0, - 119.0, - 1476.0 - ], - "score": 0.99, - "text": "the rainfall variability, and have added useful insight into the hydrologic impacts of plantation establishment. This approach" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1483.0, - 1376.0, - 1483.0, - 1376.0, - 1506.0, - 119.0, - 1506.0 - ], - "score": 0.97, - "text": "provides a methodologyfor understanding catchment response to afforestation,where paired catchment data is not available." - }, - { - "category_id": 15, - "poly": [ - 141.0, - 1512.0, - 536.0, - 1512.0, - 536.0, - 1531.0, - 141.0, - 1531.0 - ], - "score": 0.91, - "text": "2nn5FlcevierRVAllriohtsrecerved" - }, - { - "category_id": 15, - "poly": [ - 559.0, - 346.0, - 938.0, - 346.0, - 938.0, - 369.0, - 559.0, - 369.0 - ], - "score": 0.97, - "text": "Journalof Hydrology 310(2005)253-265" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 864.0, - 212.0, - 864.0, - 212.0, - 888.0, - 117.0, - 888.0 - ], - "score": 1.0, - "text": "Abstract" - }, - { - "category_id": 15, - "poly": [ - 235.0, - 547.0, - 1253.0, - 547.0, - 1253.0, - 608.0, - 235.0, - 608.0 - ], - "score": 0.94, - "text": "Patrick N.J. Laneac,*, Alice E. Bestb.c.d, Klaus Hickelb.c, Lu Zhangb." - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1794.0, - 397.0, - 1794.0, - 397.0, - 1817.0, - 117.0, - 1817.0 - ], - "score": 0.97, - "text": "0022-1694/$ -see front matter" - }, - { - "category_id": 15, - "poly": [ - 420.0, - 1794.0, - 770.0, - 1794.0, - 770.0, - 1817.0, - 420.0, - 1817.0 - ], - "score": 0.98, - "text": "2005 Elsevier B.V.All rights reserved" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1824.0, - 422.0, - 1824.0, - 422.0, - 1842.0, - 119.0, - 1842.0 - ], - "score": 0.99, - "text": "doi:10.1016/j.jhydrol.2005.01.006" - }, - { - "category_id": 15, - "poly": [ - 517.0, - 193.0, - 984.0, - 193.0, - 984.0, - 220.0, - 517.0, - 220.0 - ], - "score": 0.98, - "text": "Available online atwww.sciencedirect.com" - }, - { - "category_id": 15, - "poly": [ - 601.0, - 248.0, - 723.0, - 248.0, - 723.0, - 269.0, - 601.0, - 269.0 - ], - "score": 0.99, - "text": "SCIENCE" - }, - { - "category_id": 15, - "poly": [ - 791.0, - 248.0, - 897.0, - 248.0, - 897.0, - 267.0, - 791.0, - 267.0 - ], - "score": 0.97, - "text": "OIRECT" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1572.0, - 865.0, - 1572.0, - 865.0, - 1595.0, - 118.0, - 1595.0 - ], - "score": 0.98, - "text": "Keywords: Afforestation; Flow duration curves; Flow reduction;Paired catchments" - }, - { - "category_id": 15, - "poly": [ - 141.0, - 1512.0, - 537.0, - 1512.0, - 537.0, - 1535.0, - 141.0, - 1535.0 - ], - "score": 0.98, - "text": "2005 Elsevier B.V.All rights reserved" - }, - { - "category_id": 15, - "poly": [ - 1084.0, - 374.0, - 1381.0, - 374.0, - 1381.0, - 396.0, - 1084.0, - 396.0 - ], - "score": 1.0, - "text": "www.elsevier.com/locate/jhydrol" - }, - { - "category_id": 15, - "poly": [ - 519.0, - 198.0, - 981.0, - 198.0, - 981.0, - 220.0, - 519.0, - 220.0 - ], - "score": 0.99, - "text": "Availableonlineatwww.sciencedirect.com" - } - ], - "page_info": { - "page_no": 0, - "height": 2064, - "width": 1512 - } - }, - { - "layout_dets": [ - { - "category_id": 4, - "poly": [ - 793.3238525390625, - 764.6008911132812, - 1394.982177734375, - 764.6008911132812, - 1394.982177734375, - 817.2584228515625, - 793.3238525390625, - 817.2584228515625 - ], - "score": 0.9999980926513672 - }, - { - "category_id": 1, - "poly": [ - 794.8445434570312, - 847.7525024414062, - 1396.7862548828125, - 847.7525024414062, - 1396.7862548828125, - 1280.268310546875, - 794.8445434570312, - 1280.268310546875 - ], - "score": 0.9999948740005493 - }, - { - "category_id": 1, - "poly": [ - 794.4091796875, - 1281.1240234375, - 1397.727783203125, - 1281.1240234375, - 1397.727783203125, - 1847.862060546875, - 794.4091796875, - 1847.862060546875 - ], - "score": 0.9999915957450867 - }, - { - "category_id": 3, - "poly": [ - 800.3482055664062, - 254.34396362304688, - 1385.85546875, - 254.34396362304688, - 1385.85546875, - 741.2379760742188, - 800.3482055664062, - 741.2379760742188 - ], - "score": 0.9999874830245972 - }, - { - "category_id": 1, - "poly": [ - 131.33212280273438, - 1017.2642211914062, - 731.5430297851562, - 1017.2642211914062, - 731.5430297851562, - 1848.0374755859375, - 131.33212280273438, - 1848.0374755859375 - ], - "score": 0.9999839663505554 - }, - { - "category_id": 1, - "poly": [ - 132.01792907714844, - 317.6101379394531, - 731.1533813476562, - 317.6101379394531, - 731.1533813476562, - 1015.9430541992188, - 132.01792907714844, - 1015.9430541992188 - ], - "score": 0.9999791979789734 - }, - { - "category_id": 0, - "poly": [ - 130.92127990722656, - 250.8260040283203, - 312.45001220703125, - 250.8260040283203, - 312.45001220703125, - 284.91973876953125, - 130.92127990722656, - 284.91973876953125 - ], - "score": 0.9999523162841797 - }, - { - "category_id": 2, - "poly": [ - 130.0436248779297, - 194.7170867919922, - 166.79232788085938, - 194.7170867919922, - 166.79232788085938, - 215.29795837402344, - 130.0436248779297, - 215.29795837402344 - ], - "score": 0.9999291300773621 - }, - { - "category_id": 2, - "poly": [ - 480.5660400390625, - 194.7841339111328, - 1045.443115234375, - 194.7841339111328, - 1045.443115234375, - 218.79908752441406, - 480.5660400390625, - 218.79908752441406 - ], - "score": 0.9998185038566589 - }, - { - "category_id": 13, - "poly": [ - 984, - 1180, - 1065, - 1180, - 1065, - 1211, - 984, - 1211 - ], - "score": 0.88, - "latex": "<\\!20\\%" - }, - { - "category_id": 13, - "poly": [ - 128, - 1415, - 183, - 1415, - 183, - 1445, - 128, - 1445 - ], - "score": 0.86, - "latex": "95\\%" - }, - { - "category_id": 13, - "poly": [ - 573, - 618, - 723, - 618, - 723, - 649, - 573, - 649 - ], - "score": 0.67, - "latex": "400{-}500\\ \\mathrm{mm}" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 768.0, - 1390.0, - 768.0, - 1390.0, - 790.0, - 796.0, - 790.0 - ], - "score": 0.96, - "text": "Fig.1.Annual flow duration curves of daily flows from Pine Creek" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 796.0, - 993.0, - 796.0, - 993.0, - 815.0, - 796.0, - 815.0 - ], - "score": 0.99, - "text": "Australia,1989-2000." - }, - { - "category_id": 15, - "poly": [ - 796.0, - 853.0, - 1392.0, - 853.0, - 1392.0, - 877.0, - 796.0, - 877.0 - ], - "score": 0.97, - "text": "apply on a seasonal or shorter scale.Further, the" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 886.0, - 1391.0, - 886.0, - 1391.0, - 912.0, - 797.0, - 912.0 - ], - "score": 0.98, - "text": "observed impacts of any land use change on flows may" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 920.0, - 1391.0, - 920.0, - 1391.0, - 944.0, - 796.0, - 944.0 - ], - "score": 0.96, - "text": "beexaggerated or understated depending onthe" - }, - { - "category_id": 15, - "poly": [ - 794.0, - 952.0, - 1393.0, - 952.0, - 1393.0, - 978.0, - 794.0, - 978.0 - ], - "score": 0.96, - "text": "prevailing climate.Observationsof flowduring" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 987.0, - 1392.0, - 987.0, - 1392.0, - 1011.0, - 796.0, - 1011.0 - ], - "score": 0.95, - "text": "extended wet or dry spells, or with high annual" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1021.0, - 1392.0, - 1021.0, - 1392.0, - 1045.0, - 797.0, - 1045.0 - ], - "score": 0.99, - "text": "variability can obscure the real impacts. Fig. 1 plots" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1053.0, - 1392.0, - 1053.0, - 1392.0, - 1077.0, - 796.0, - 1077.0 - ], - "score": 0.97, - "text": "annual FDCs over12years ofplantationgrowthforone" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1086.0, - 1391.0, - 1086.0, - 1391.0, - 1109.0, - 797.0, - 1109.0 - ], - "score": 0.97, - "text": "of thecatchmentsusedin thisstudy,Pine Creek.The" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1120.0, - 1390.0, - 1120.0, - 1390.0, - 1145.0, - 796.0, - 1145.0 - ], - "score": 0.94, - "text": "net change inflow is obscured byrainfallvariability:" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1155.0, - 1391.0, - 1155.0, - 1391.0, - 1175.0, - 796.0, - 1175.0 - ], - "score": 0.99, - "text": "e.g.thegreatestchangeintheFDCisin1996,withthe" - }, - { - "category_id": 15, - "poly": [ - 798.0, - 1187.0, - 983.0, - 1187.0, - 983.0, - 1210.0, - 798.0, - 1210.0 - ], - "score": 0.99, - "text": "streamflowing" - }, - { - "category_id": 15, - "poly": [ - 1066.0, - 1187.0, - 1391.0, - 1187.0, - 1391.0, - 1210.0, - 1066.0, - 1210.0 - ], - "score": 1.0, - "text": "ofthetime.Thismaybe" - }, - { - "category_id": 15, - "poly": [ - 798.0, - 1221.0, - 1389.0, - 1221.0, - 1389.0, - 1244.0, - 798.0, - 1244.0 - ], - "score": 0.96, - "text": "comparedwith2o00,wherethereissubstantially" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 1250.0, - 940.0, - 1250.0, - 940.0, - 1281.0, - 795.0, - 1281.0 - ], - "score": 1.0, - "text": "higherflows." - }, - { - "category_id": 15, - "poly": [ - 832.0, - 1287.0, - 1393.0, - 1287.0, - 1393.0, - 1310.0, - 832.0, - 1310.0 - ], - "score": 0.98, - "text": "Thispaperpresentstheresultsof aproject aimed at" - }, - { - "category_id": 15, - "poly": [ - 798.0, - 1321.0, - 1394.0, - 1321.0, - 1394.0, - 1345.0, - 798.0, - 1345.0 - ], - "score": 0.99, - "text": "quantifyingchangesinannualflowregimeof" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 1353.0, - 1393.0, - 1353.0, - 1393.0, - 1380.0, - 795.0, - 1380.0 - ], - "score": 0.98, - "text": "catchments following plantation establishment. The" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1389.0, - 1392.0, - 1389.0, - 1392.0, - 1411.0, - 797.0, - 1411.0 - ], - "score": 0.99, - "text": "flowregimeisrepresentedbytheflowdurationcurve" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1420.0, - 1393.0, - 1420.0, - 1393.0, - 1443.0, - 797.0, - 1443.0 - ], - "score": 1.0, - "text": "(FDC).Thekeyassumptionwasthatrainfalland" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1453.0, - 1391.0, - 1453.0, - 1391.0, - 1479.0, - 796.0, - 1479.0 - ], - "score": 0.98, - "text": "forest age are the principal drivers of evapotranspira-" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 1487.0, - 1394.0, - 1487.0, - 1394.0, - 1513.0, - 795.0, - 1513.0 - ], - "score": 0.97, - "text": "tion. For any generalisation of response of the FDC to" - }, - { - "category_id": 15, - "poly": [ - 799.0, - 1521.0, - 1393.0, - 1521.0, - 1393.0, - 1545.0, - 799.0, - 1545.0 - ], - "score": 0.98, - "text": "vegetation change, the variation in the annual climate" - }, - { - "category_id": 15, - "poly": [ - 798.0, - 1554.0, - 1393.0, - 1554.0, - 1393.0, - 1577.0, - 798.0, - 1577.0 - ], - "score": 1.0, - "text": "signalmustberemoved.Thetime-testedsolutionto" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1588.0, - 1393.0, - 1588.0, - 1393.0, - 1612.0, - 797.0, - 1612.0 - ], - "score": 0.99, - "text": "this problem is the paired-catchment (control versus" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1620.0, - 1393.0, - 1620.0, - 1393.0, - 1645.0, - 796.0, - 1645.0 - ], - "score": 0.96, - "text": "treatment)experiment. The benefits in such studies" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1654.0, - 1391.0, - 1654.0, - 1391.0, - 1677.0, - 796.0, - 1677.0 - ], - "score": 1.0, - "text": "aremanifold:unambiguousmeasuresoftrends," - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1688.0, - 1391.0, - 1688.0, - 1391.0, - 1712.0, - 796.0, - 1712.0 - ], - "score": 0.96, - "text": "insights intothe processes driving those trends," - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1722.0, - 1391.0, - 1722.0, - 1391.0, - 1744.0, - 796.0, - 1744.0 - ], - "score": 1.0, - "text": "excellentopportunitiesformodelparameterisation" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1752.0, - 1390.0, - 1752.0, - 1390.0, - 1777.0, - 796.0, - 1777.0 - ], - "score": 1.0, - "text": "andvalidation.Howeverthesedataarenotreadily" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1787.0, - 1391.0, - 1787.0, - 1391.0, - 1811.0, - 797.0, - 1811.0 - ], - "score": 0.95, - "text": "available for the range of treamtments and environ-" - }, - { - "category_id": 15, - "poly": [ - 798.0, - 1822.0, - 1391.0, - 1822.0, - 1391.0, - 1845.0, - 798.0, - 1845.0 - ], - "score": 0.97, - "text": "ments required.Consequently, the aims of this project" - }, - { - "category_id": 15, - "poly": [ - 166.0, - 1022.0, - 728.0, - 1022.0, - 728.0, - 1047.0, - 166.0, - 1047.0 - ], - "score": 0.96, - "text": "Zhang et al.(1999,2001)developed simple and" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1057.0, - 728.0, - 1057.0, - 728.0, - 1081.0, - 133.0, - 1081.0 - ], - "score": 0.95, - "text": "easily parameterised models topredict changes in" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1089.0, - 728.0, - 1089.0, - 728.0, - 1113.0, - 132.0, - 1113.0 - ], - "score": 0.98, - "text": "mean annual flows following afforestation. However," - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1121.0, - 727.0, - 1121.0, - 727.0, - 1147.0, - 132.0, - 1147.0 - ], - "score": 0.98, - "text": "there is a need to consider the annual flow regime as the" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1158.0, - 727.0, - 1158.0, - 727.0, - 1181.0, - 133.0, - 1181.0 - ], - "score": 1.0, - "text": "relativechangesinhighandlowflowsmayhave" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1189.0, - 727.0, - 1189.0, - 727.0, - 1214.0, - 131.0, - 1214.0 - ], - "score": 0.97, - "text": "considerable site specific and downstream impacts." - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1221.0, - 728.0, - 1221.0, - 728.0, - 1246.0, - 133.0, - 1246.0 - ], - "score": 0.94, - "text": "Sikka et al.(2003)recently showed a change from" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1256.0, - 728.0, - 1256.0, - 728.0, - 1279.0, - 132.0, - 1279.0 - ], - "score": 1.0, - "text": "grasslandtoEucalyptusglobulusplantationsinIndia" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1288.0, - 726.0, - 1288.0, - 726.0, - 1313.0, - 132.0, - 1313.0 - ], - "score": 0.99, - "text": "decreasedalowflowindexbyafactoroftwoduringthe" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1321.0, - 729.0, - 1321.0, - 729.0, - 1346.0, - 131.0, - 1346.0 - ], - "score": 0.96, - "text": "first rotation (9 years), and by 3.75 during the second" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1355.0, - 727.0, - 1355.0, - 727.0, - 1379.0, - 133.0, - 1379.0 - ], - "score": 0.98, - "text": "rotation, with more subdued impact on peak flows. The" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1387.0, - 729.0, - 1387.0, - 729.0, - 1414.0, - 131.0, - 1414.0 - ], - "score": 0.97, - "text": "index was defined as the 10 day average flow exceeded" - }, - { - "category_id": 15, - "poly": [ - 184.0, - 1421.0, - 727.0, - 1421.0, - 727.0, - 1446.0, - 184.0, - 1446.0 - ], - "score": 0.96, - "text": "of thetime,obtained from analysis of10-dayflow" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1454.0, - 729.0, - 1454.0, - 729.0, - 1480.0, - 132.0, - 1480.0 - ], - "score": 0.95, - "text": "duration curves.Scott and Smith (1997) reported" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1488.0, - 729.0, - 1488.0, - 729.0, - 1515.0, - 131.0, - 1515.0 - ], - "score": 0.98, - "text": "proportionallygreater reductionsinlowflows" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1522.0, - 729.0, - 1522.0, - 729.0, - 1545.0, - 133.0, - 1545.0 - ], - "score": 0.97, - "text": "(75-1oothpercentiles)thanannualflowsfromSouth" - }, - { - "category_id": 15, - "poly": [ - 135.0, - 1556.0, - 728.0, - 1556.0, - 728.0, - 1576.0, - 135.0, - 1576.0 - ], - "score": 1.0, - "text": "Africanresearchcatchmentsunderconversionsfrom" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1590.0, - 729.0, - 1590.0, - 729.0, - 1610.0, - 132.0, - 1610.0 - ], - "score": 0.99, - "text": "grasstopineandeucalyptplantations,whileBosch" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1621.0, - 727.0, - 1621.0, - 727.0, - 1644.0, - 133.0, - 1644.0 - ], - "score": 0.99, - "text": "(1979)foundthegreatestreductioninseasonalflow" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1653.0, - 727.0, - 1653.0, - 727.0, - 1678.0, - 131.0, - 1678.0 - ], - "score": 1.0, - "text": "fromthesummerwetseason.FaheyandJackson" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1687.0, - 727.0, - 1687.0, - 727.0, - 1710.0, - 133.0, - 1710.0 - ], - "score": 0.99, - "text": "(1997)reportedthereductioninpeakflowswastwice" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1719.0, - 727.0, - 1719.0, - 727.0, - 1742.0, - 132.0, - 1742.0 - ], - "score": 0.99, - "text": "thatoftotalflowandlowflowsforpine afforestationin" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1755.0, - 728.0, - 1755.0, - 728.0, - 1778.0, - 132.0, - 1778.0 - ], - "score": 1.0, - "text": "NewZealand.Thegeneralisationsthatcanbedrawn" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1785.0, - 727.0, - 1785.0, - 727.0, - 1813.0, - 131.0, - 1813.0 - ], - "score": 1.0, - "text": "from annual analyses, where processes and hydrologic" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1822.0, - 728.0, - 1822.0, - 728.0, - 1845.0, - 133.0, - 1845.0 - ], - "score": 1.0, - "text": "responsesaretoacertainextentintegratedmaynot" - }, - { - "category_id": 15, - "poly": [ - 166.0, - 322.0, - 728.0, - 322.0, - 728.0, - 350.0, - 166.0, - 350.0 - ], - "score": 0.98, - "text": "Widespread afforestation through plantation estab-" - }, - { - "category_id": 15, - "poly": [ - 129.0, - 355.0, - 726.0, - 355.0, - 726.0, - 384.0, - 129.0, - 384.0 - ], - "score": 0.99, - "text": "lishment on non-forested land represents a potentially" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 391.0, - 726.0, - 391.0, - 726.0, - 416.0, - 133.0, - 416.0 - ], - "score": 1.0, - "text": "significantalterationofcatchmentevapotranspiration" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 426.0, - 728.0, - 426.0, - 728.0, - 449.0, - 133.0, - 449.0 - ], - "score": 1.0, - "text": "(ET).Usingdatacollatedfrommultiplecatchment" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 458.0, - 729.0, - 458.0, - 729.0, - 480.0, - 133.0, - 480.0 - ], - "score": 1.0, - "text": "studies,researchershavedemonstratedaconsistent" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 489.0, - 729.0, - 489.0, - 729.0, - 514.0, - 132.0, - 514.0 - ], - "score": 0.95, - "text": "difference in ET between forests and grass or short" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 524.0, - 729.0, - 524.0, - 729.0, - 546.0, - 133.0, - 546.0 - ], - "score": 0.99, - "text": "crops,andtherelationshipbetweenETandrainfallon" - }, - { - "category_id": 15, - "poly": [ - 129.0, - 557.0, - 728.0, - 557.0, - 728.0, - 579.0, - 129.0, - 579.0 - ], - "score": 0.96, - "text": "a meanannualbasis (Holmes andSinclair,1986;" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 588.0, - 727.0, - 588.0, - 727.0, - 616.0, - 131.0, - 616.0 - ], - "score": 0.95, - "text": "Vertessy and Bessard, 1999; Zhang et al., 1999," - }, - { - "category_id": 15, - "poly": [ - 132.0, - 622.0, - 572.0, - 622.0, - 572.0, - 648.0, - 132.0, - 648.0 - ], - "score": 0.96, - "text": "2001).Once annual rainfall exceeds" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 657.0, - 728.0, - 657.0, - 728.0, - 681.0, - 132.0, - 681.0 - ], - "score": 0.99, - "text": "there is an increasing divergence between forest and" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 691.0, - 728.0, - 691.0, - 728.0, - 713.0, - 131.0, - 713.0 - ], - "score": 0.97, - "text": "grasslandET(Zhangetal.,20o1).Researchfrom" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 724.0, - 728.0, - 724.0, - 728.0, - 748.0, - 133.0, - 748.0 - ], - "score": 0.96, - "text": "SouthAfrica inparticular has demonstratedflow" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 758.0, - 729.0, - 758.0, - 729.0, - 781.0, - 133.0, - 781.0 - ], - "score": 1.0, - "text": "reductionfollowingafforestationwithbothpineand" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 791.0, - 728.0, - 791.0, - 728.0, - 813.0, - 132.0, - 813.0 - ], - "score": 0.98, - "text": "eucalyptspecies(Bosch,1979;VanLilletal.,1980;" - }, - { - "category_id": 15, - "poly": [ - 134.0, - 824.0, - 729.0, - 824.0, - 729.0, - 847.0, - 134.0, - 847.0 - ], - "score": 0.99, - "text": "VanWyk,1987;BoschandVonGadow,1990;Scott" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 856.0, - 727.0, - 856.0, - 727.0, - 880.0, - 132.0, - 880.0 - ], - "score": 0.99, - "text": "and Smith, 1997; Scott et al., 2000). In regions, where" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 891.0, - 728.0, - 891.0, - 728.0, - 914.0, - 133.0, - 914.0 - ], - "score": 1.0, - "text": "waterisanincreasinglyvaluableresource,prediction" - }, - { - "category_id": 15, - "poly": [ - 134.0, - 922.0, - 727.0, - 922.0, - 727.0, - 946.0, - 134.0, - 946.0 - ], - "score": 0.97, - "text": "of the long-term hydrologic impact of afforestation is" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 957.0, - 728.0, - 957.0, - 728.0, - 980.0, - 132.0, - 980.0 - ], - "score": 1.0, - "text": "aprerequisitefortheoptimalplanningofcatchment" - }, - { - "category_id": 15, - "poly": [ - 130.0, - 987.0, - 232.0, - 987.0, - 232.0, - 1013.0, - 130.0, - 1013.0 - ], - "score": 1.0, - "text": "landuse." - }, - { - "category_id": 15, - "poly": [ - 130.0, - 253.0, - 310.0, - 253.0, - 310.0, - 282.0, - 130.0, - 282.0 - ], - "score": 1.0, - "text": "1. Introduction" - }, - { - "category_id": 15, - "poly": [ - 129.0, - 195.0, - 167.0, - 195.0, - 167.0, - 219.0, - 129.0, - 219.0 - ], - "score": 1.0, - "text": "254" - }, - { - "category_id": 15, - "poly": [ - 482.0, - 197.0, - 1040.0, - 197.0, - 1040.0, - 220.0, - 482.0, - 220.0 - ], - "score": 0.99, - "text": "P.N.J.Laneet al./JournalofHydrology310(2005)253-265" - } - ], - "page_info": { - "page_no": 1, - "height": 2064, - "width": 1512 - } - }, - { - "layout_dets": [ - { - "category_id": 0, - "poly": [ - 117.98583221435547, - 651.4143676757812, - 250.4243927001953, - 651.4143676757812, - 250.4243927001953, - 681.6177978515625, - 117.98583221435547, - 681.6177978515625 - ], - "score": 0.9999960660934448 - }, - { - "category_id": 1, - "poly": [ - 117.66859436035156, - 252.15028381347656, - 717.0852661132812, - 252.15028381347656, - 717.0852661132812, - 583.2984619140625, - 117.66859436035156, - 583.2984619140625 - ], - "score": 0.9999945163726807 - }, - { - "category_id": 1, - "poly": [ - 781.6583251953125, - 254.4632568359375, - 1380.35498046875, - 254.4632568359375, - 1380.35498046875, - 383.93988037109375, - 781.6583251953125, - 383.93988037109375 - ], - "score": 0.9999942779541016 - }, - { - "category_id": 1, - "poly": [ - 117.45108795166016, - 787.5255126953125, - 717.2050170898438, - 787.5255126953125, - 717.2050170898438, - 1283.052001953125, - 117.45108795166016, - 1283.052001953125 - ], - "score": 0.9999866485595703 - }, - { - "category_id": 1, - "poly": [ - 781.4449462890625, - 518.4725952148438, - 1381.476806640625, - 518.4725952148438, - 1381.476806640625, - 1115.634033203125, - 781.4449462890625, - 1115.634033203125 - ], - "score": 0.9999841451644897 - }, - { - "category_id": 1, - "poly": [ - 117.63248443603516, - 1283.588134765625, - 717.8546752929688, - 1283.588134765625, - 717.8546752929688, - 1846.96337890625, - 117.63248443603516, - 1846.96337890625 - ], - "score": 0.9999801516532898 - }, - { - "category_id": 1, - "poly": [ - 781.0757446289062, - 1281.677490234375, - 1381.9857177734375, - 1281.677490234375, - 1381.9857177734375, - 1846.426025390625, - 781.0757446289062, - 1846.426025390625 - ], - "score": 0.9999785423278809 - }, - { - "category_id": 0, - "poly": [ - 118.35875701904297, - 719.4396362304688, - 523.7080688476562, - 719.4396362304688, - 523.7080688476562, - 748.3139038085938, - 118.35875701904297, - 748.3139038085938 - ], - "score": 0.999972939491272 - }, - { - "category_id": 2, - "poly": [ - 1346.603759765625, - 195.0556182861328, - 1381.0526123046875, - 195.0556182861328, - 1381.0526123046875, - 216.44448852539062, - 1346.603759765625, - 216.44448852539062 - ], - "score": 0.9999720454216003 - }, - { - "category_id": 9, - "poly": [ - 1346.9273681640625, - 438.05438232421875, - 1379.6627197265625, - 438.05438232421875, - 1379.6627197265625, - 465.9045104980469, - 1346.9273681640625, - 465.9045104980469 - ], - "score": 0.999956488609314 - }, - { - "category_id": 8, - "poly": [ - 776.7713012695312, - 1153.820556640625, - 1201.1727294921875, - 1153.820556640625, - 1201.1727294921875, - 1238.2696533203125, - 776.7713012695312, - 1238.2696533203125 - ], - "score": 0.9999523162841797 - }, - { - "category_id": 9, - "poly": [ - 1347.7716064453125, - 1178.136474609375, - 1379.205810546875, - 1178.136474609375, - 1379.205810546875, - 1209.233154296875, - 1347.7716064453125, - 1209.233154296875 - ], - "score": 0.9999113082885742 - }, - { - "category_id": 2, - "poly": [ - 466.5557861328125, - 194.43609619140625, - 1031.927490234375, - 194.43609619140625, - 1031.927490234375, - 219.32997131347656, - 466.5557861328125, - 219.32997131347656 - ], - "score": 0.9998723864555359 - }, - { - "category_id": 8, - "poly": [ - 779.8624877929688, - 430.4825439453125, - 996.8544311523438, - 430.4825439453125, - 996.8544311523438, - 471.1011047363281, - 779.8624877929688, - 471.1011047363281 - ], - "score": 0.9997532367706299 - }, - { - "category_id": 14, - "poly": [ - 777, - 1156, - 1200, - 1156, - 1200, - 1237, - 777, - 1237 - ], - "score": 0.92, - "latex": "Q_{\\mathcal{U}}=a+b(\\Delta P)+\\frac{Y}{1+\\exp\\left(\\frac{T-T_{\\mathrm{half}}}{S}\\right)}" - }, - { - "category_id": 13, - "poly": [ - 1150, - 520, - 1201, - 520, - 1201, - 551, - 1150, - 551 - ], - "score": 0.9, - "latex": "f(P)" - }, - { - "category_id": 13, - "poly": [ - 1210, - 1384, - 1262, - 1384, - 1262, - 1414, - 1210, - 1414 - ], - "score": 0.9, - "latex": "T_{\\mathrm{half}}" - }, - { - "category_id": 13, - "poly": [ - 856, - 520, - 897, - 520, - 897, - 550, - 856, - 550 - ], - "score": 0.9, - "latex": "Q_{\\%}" - }, - { - "category_id": 13, - "poly": [ - 930, - 552, - 982, - 552, - 982, - 584, - 930, - 584 - ], - "score": 0.89, - "latex": "g(T)" - }, - { - "category_id": 13, - "poly": [ - 857, - 1285, - 898, - 1285, - 898, - 1315, - 857, - 1315 - ], - "score": 0.89, - "latex": "Q_{\\%}" - }, - { - "category_id": 13, - "poly": [ - 1196, - 1649, - 1278, - 1649, - 1278, - 1678, - 1196, - 1678 - ], - "score": 0.89, - "latex": "\\Delta P\\!=\\!0" - }, - { - "category_id": 13, - "poly": [ - 1270, - 1483, - 1311, - 1483, - 1311, - 1515, - 1270, - 1515 - ], - "score": 0.89, - "latex": "Q_{\\%}" - }, - { - "category_id": 13, - "poly": [ - 1259, - 1418, - 1301, - 1418, - 1301, - 1449, - 1259, - 1449 - ], - "score": 0.89, - "latex": "Q_{\\%}" - }, - { - "category_id": 13, - "poly": [ - 1075, - 1682, - 1140, - 1682, - 1140, - 1711, - 1075, - 1711 - ], - "score": 0.88, - "latex": "a\\!+\\!Y." - }, - { - "category_id": 13, - "poly": [ - 895, - 1483, - 976, - 1483, - 976, - 1512, - 895, - 1512 - ], - "score": 0.88, - "latex": "\\Delta P\\!=\\!0" - }, - { - "category_id": 13, - "poly": [ - 1206, - 1285, - 1252, - 1285, - 1252, - 1315, - 1206, - 1315 - ], - "score": 0.88, - "latex": "Q_{50}" - }, - { - "category_id": 13, - "poly": [ - 779, - 1682, - 821, - 1682, - 821, - 1714, - 779, - 1714 - ], - "score": 0.88, - "latex": "Q_{\\%}" - }, - { - "category_id": 13, - "poly": [ - 1313, - 1649, - 1374, - 1649, - 1374, - 1678, - 1313, - 1678 - ], - "score": 0.87, - "latex": "T\\!=\\!0" - }, - { - "category_id": 14, - "poly": [ - 777, - 432, - 997, - 432, - 997, - 470, - 777, - 470 - ], - "score": 0.83, - "latex": "Q_{\\mathcal{I}_{\\theta}}=f(P)+g(T)" - }, - { - "category_id": 13, - "poly": [ - 963, - 1350, - 1002, - 1350, - 1002, - 1378, - 963, - 1378 - ], - "score": 0.8, - "latex": "\\Delta P" - }, - { - "category_id": 13, - "poly": [ - 989, - 1318, - 1012, - 1318, - 1012, - 1345, - 989, - 1345 - ], - "score": 0.64, - "latex": "Y" - }, - { - "category_id": 13, - "poly": [ - 1077, - 1318, - 1098, - 1318, - 1098, - 1345, - 1077, - 1345 - ], - "score": 0.64, - "latex": "S" - }, - { - "category_id": 13, - "poly": [ - 1239, - 1583, - 1262, - 1583, - 1262, - 1611, - 1239, - 1611 - ], - "score": 0.51, - "latex": "S" - }, - { - "category_id": 13, - "poly": [ - 989, - 1488, - 1008, - 1488, - 1008, - 1511, - 989, - 1511 - ], - "score": 0.3, - "latex": "a" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 655.0, - 250.0, - 655.0, - 250.0, - 679.0, - 117.0, - 679.0 - ], - "score": 1.0, - "text": "2. Methods" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 259.0, - 713.0, - 259.0, - 713.0, - 282.0, - 119.0, - 282.0 - ], - "score": 0.97, - "text": "wereto(1)fitamodeltotheobservedannualtime" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 293.0, - 715.0, - 293.0, - 715.0, - 317.0, - 119.0, - 317.0 - ], - "score": 0.97, - "text": "series of FDC percentiles; i.e. 10th percentile for each" - }, - { - "category_id": 15, - "poly": [ - 115.0, - 323.0, - 714.0, - 323.0, - 714.0, - 353.0, - 115.0, - 353.0 - ], - "score": 0.99, - "text": "year of record with annual rainfall and plantation age" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 360.0, - 715.0, - 360.0, - 715.0, - 382.0, - 118.0, - 382.0 - ], - "score": 0.99, - "text": "asparameters,(2)replacetheannualrainfallvariation" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 393.0, - 715.0, - 393.0, - 715.0, - 416.0, - 120.0, - 416.0 - ], - "score": 1.0, - "text": "withthelongtermmeantoobtainclimateadjusted" - }, - { - "category_id": 15, - "poly": [ - 116.0, - 423.0, - 716.0, - 423.0, - 716.0, - 452.0, - 116.0, - 452.0 - ], - "score": 0.99, - "text": "FDCs, and (3) quantify changes in FDC percentiles as" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 460.0, - 714.0, - 460.0, - 714.0, - 485.0, - 118.0, - 485.0 - ], - "score": 0.99, - "text": "plantations age. If the climate signal, represented by" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 490.0, - 714.0, - 490.0, - 714.0, - 517.0, - 117.0, - 517.0 - ], - "score": 0.98, - "text": "rainfall, could be successfully removed, the resulting" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 522.0, - 715.0, - 522.0, - 715.0, - 551.0, - 118.0, - 551.0 - ], - "score": 0.98, - "text": "changes in the FDC would be solely attributable to the" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 558.0, - 238.0, - 558.0, - 238.0, - 583.0, - 119.0, - 583.0 - ], - "score": 0.99, - "text": "vegetation." - }, - { - "category_id": 15, - "poly": [ - 785.0, - 259.0, - 1377.0, - 259.0, - 1377.0, - 283.0, - 785.0, - 283.0 - ], - "score": 0.97, - "text": "closure, a time term is required to represent plantation" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 293.0, - 1380.0, - 293.0, - 1380.0, - 317.0, - 782.0, - 317.0 - ], - "score": 0.96, - "text": "growth.A simple model relating the time series of" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 323.0, - 1379.0, - 323.0, - 1379.0, - 351.0, - 782.0, - 351.0 - ], - "score": 0.98, - "text": "each decile with rainfall and vegetation characteristics" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 355.0, - 1011.0, - 355.0, - 1011.0, - 385.0, - 782.0, - 385.0 - ], - "score": 0.98, - "text": "can be expressed as:" - }, - { - "category_id": 15, - "poly": [ - 150.0, - 789.0, - 713.0, - 789.0, - 713.0, - 816.0, - 150.0, - 816.0 - ], - "score": 0.99, - "text": "Flowdurationcurvesdisplaythe relationship" - }, - { - "category_id": 15, - "poly": [ - 116.0, - 822.0, - 715.0, - 822.0, - 715.0, - 850.0, - 116.0, - 850.0 - ], - "score": 0.97, - "text": "between streamflowand the percentage of time" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 856.0, - 712.0, - 856.0, - 712.0, - 881.0, - 117.0, - 881.0 - ], - "score": 1.0, - "text": "thestreamflowisexceededasacumulativedensity" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 888.0, - 715.0, - 888.0, - 715.0, - 915.0, - 117.0, - 915.0 - ], - "score": 0.99, - "text": "function They can be constructed for any time period" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 922.0, - 715.0, - 922.0, - 715.0, - 948.0, - 118.0, - 948.0 - ], - "score": 0.99, - "text": "(daily, weekly, monthly, etc.) and provide a graphical" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 956.0, - 711.0, - 956.0, - 711.0, - 981.0, - 118.0, - 981.0 - ], - "score": 0.99, - "text": "andstatisticalviewofhistoricstreamflowvariability" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 991.0, - 714.0, - 991.0, - 714.0, - 1014.0, - 117.0, - 1014.0 - ], - "score": 1.0, - "text": "inasinglecatchmentoracomparisonofinter-" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1022.0, - 715.0, - 1022.0, - 715.0, - 1048.0, - 117.0, - 1048.0 - ], - "score": 0.98, - "text": "catchment flow regimes. Vogel and Fennessey (1994)" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1055.0, - 712.0, - 1055.0, - 712.0, - 1080.0, - 118.0, - 1080.0 - ], - "score": 0.96, - "text": "and Smakhtin(1999,2001)demonstrate the utility" - }, - { - "category_id": 15, - "poly": [ - 116.0, - 1088.0, - 714.0, - 1088.0, - 714.0, - 1116.0, - 116.0, - 1116.0 - ], - "score": 0.98, - "text": "(and caveats) of FDCs in characterising, comparing" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1123.0, - 715.0, - 1123.0, - 715.0, - 1150.0, - 119.0, - 1150.0 - ], - "score": 0.96, - "text": "and predicting flow regimes at varying temporal" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1155.0, - 716.0, - 1155.0, - 716.0, - 1180.0, - 117.0, - 1180.0 - ], - "score": 0.98, - "text": "scales.Fig.1isanexampleof annualFDCs" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1190.0, - 712.0, - 1190.0, - 712.0, - 1212.0, - 119.0, - 1212.0 - ], - "score": 1.0, - "text": "constructedfromdailyflows.Fortheconsideration" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1220.0, - 714.0, - 1220.0, - 714.0, - 1248.0, - 117.0, - 1248.0 - ], - "score": 0.99, - "text": "of annual flow regime, daily fows are an appropriate" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1257.0, - 474.0, - 1257.0, - 474.0, - 1280.0, - 119.0, - 1280.0 - ], - "score": 1.0, - "text": "timestepforFDCconstruction." - }, - { - "category_id": 15, - "poly": [ - 787.0, - 524.0, - 855.0, - 524.0, - 855.0, - 548.0, - 787.0, - 548.0 - ], - "score": 1.0, - "text": "where" - }, - { - "category_id": 15, - "poly": [ - 898.0, - 524.0, - 1149.0, - 524.0, - 1149.0, - 548.0, - 898.0, - 548.0 - ], - "score": 0.99, - "text": "is the percentile flow," - }, - { - "category_id": 15, - "poly": [ - 1202.0, - 524.0, - 1380.0, - 524.0, - 1380.0, - 548.0, - 1202.0, - 548.0 - ], - "score": 0.97, - "text": "is a function of" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 558.0, - 929.0, - 558.0, - 929.0, - 581.0, - 783.0, - 581.0 - ], - "score": 1.0, - "text": "rainfalland" - }, - { - "category_id": 15, - "poly": [ - 983.0, - 558.0, - 1378.0, - 558.0, - 1378.0, - 581.0, - 983.0, - 581.0 - ], - "score": 1.0, - "text": "isafunctionoftheageofthe" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 590.0, - 1379.0, - 590.0, - 1379.0, - 613.0, - 783.0, - 613.0 - ], - "score": 1.0, - "text": "plantation.Annualrainfallwaschosenastherainfall" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 624.0, - 1380.0, - 624.0, - 1380.0, - 647.0, - 784.0, - 647.0 - ], - "score": 1.0, - "text": "statisticasitprovedtobethemostrobustpredictorof" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 656.0, - 1379.0, - 656.0, - 1379.0, - 682.0, - 783.0, - 682.0 - ], - "score": 0.95, - "text": "flow over the whole range of flow percentiles,as" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 692.0, - 1379.0, - 692.0, - 1379.0, - 716.0, - 785.0, - 716.0 - ], - "score": 1.0, - "text": "compared with rainfall percentiles; e.g. median rain-" - }, - { - "category_id": 15, - "poly": [ - 781.0, - 720.0, - 1380.0, - 720.0, - 1380.0, - 748.0, - 781.0, - 748.0 - ], - "score": 0.96, - "text": "fall versus 1oth flow percentile. The use of annual" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 757.0, - 1378.0, - 757.0, - 1378.0, - 781.0, - 783.0, - 781.0 - ], - "score": 0.97, - "text": "rainfall also minimises parameter complexity. The" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 788.0, - 1379.0, - 788.0, - 1379.0, - 815.0, - 783.0, - 815.0 - ], - "score": 0.98, - "text": "choice of model form is dependent on selecting a" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 822.0, - 1379.0, - 822.0, - 1379.0, - 846.0, - 782.0, - 846.0 - ], - "score": 0.98, - "text": "function that describes the relationship betweenforest" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 856.0, - 1381.0, - 856.0, - 1381.0, - 880.0, - 782.0, - 880.0 - ], - "score": 0.96, - "text": "age and ET.Scott and Smith (1997) demonstrated" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 890.0, - 1379.0, - 890.0, - 1379.0, - 913.0, - 784.0, - 913.0 - ], - "score": 0.99, - "text": "cumulativereductionsinannualandlowflows" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 922.0, - 1379.0, - 922.0, - 1379.0, - 946.0, - 783.0, - 946.0 - ], - "score": 1.0, - "text": "resultingfromafforestationfittedasigmoidal" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 956.0, - 1378.0, - 956.0, - 1378.0, - 979.0, - 784.0, - 979.0 - ], - "score": 1.0, - "text": "function,similartoforestgrowthfunctions.Conse-" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 990.0, - 1378.0, - 990.0, - 1378.0, - 1013.0, - 784.0, - 1013.0 - ], - "score": 1.0, - "text": "quently,weusedasigmoidalfunctiontocharacterise" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1022.0, - 1376.0, - 1022.0, - 1376.0, - 1046.0, - 784.0, - 1046.0 - ], - "score": 0.95, - "text": "the impact of plantation growth on each flow decile." - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1055.0, - 1378.0, - 1055.0, - 1378.0, - 1080.0, - 783.0, - 1080.0 - ], - "score": 0.96, - "text": "Fig.2a is a schematicof thechangein theFDCover" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1087.0, - 1137.0, - 1087.0, - 1137.0, - 1113.0, - 783.0, - 1113.0 - ], - "score": 0.97, - "text": "time. The model took the form:" - }, - { - "category_id": 15, - "poly": [ - 152.0, - 1288.0, - 712.0, - 1288.0, - 712.0, - 1313.0, - 152.0, - 1313.0 - ], - "score": 1.0, - "text": "FDCswerecomputedfromthedistributionofdaily" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1322.0, - 712.0, - 1322.0, - 712.0, - 1347.0, - 119.0, - 1347.0 - ], - "score": 0.99, - "text": "flowsforeachyearofrecordbasedonthe appropriate" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1356.0, - 714.0, - 1356.0, - 714.0, - 1378.0, - 119.0, - 1378.0 - ], - "score": 0.98, - "text": "wateryears(May-AprilorNovember-October)for" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1389.0, - 714.0, - 1389.0, - 714.0, - 1413.0, - 119.0, - 1413.0 - ], - "score": 0.97, - "text": "10Southern Hemisphere catchments.Each 10th" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1423.0, - 715.0, - 1423.0, - 715.0, - 1444.0, - 118.0, - 1444.0 - ], - "score": 0.98, - "text": "percentile(decile)wasextractedfromtheannual" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1454.0, - 715.0, - 1454.0, - 715.0, - 1479.0, - 117.0, - 1479.0 - ], - "score": 1.0, - "text": "FDCsofeachcatchmenttoformthedatasetsfor" - }, - { - "category_id": 15, - "poly": [ - 121.0, - 1490.0, - 714.0, - 1490.0, - 714.0, - 1513.0, - 121.0, - 1513.0 - ], - "score": 0.98, - "text": "analysis.For thepurposeof characterisingchanges in" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1522.0, - 715.0, - 1522.0, - 715.0, - 1545.0, - 120.0, - 1545.0 - ], - "score": 0.99, - "text": "eachofthedeciles,itisassumedthatthetimeseriesis" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1556.0, - 714.0, - 1556.0, - 714.0, - 1579.0, - 120.0, - 1579.0 - ], - "score": 1.0, - "text": "principallyafunctionofclimateandvegetation" - }, - { - "category_id": 15, - "poly": [ - 121.0, - 1588.0, - 714.0, - 1588.0, - 714.0, - 1611.0, - 121.0, - 1611.0 - ], - "score": 1.0, - "text": "characteristics.Givenrainfallisgenerallythemost" - }, - { - "category_id": 15, - "poly": [ - 121.0, - 1622.0, - 715.0, - 1622.0, - 715.0, - 1645.0, - 121.0, - 1645.0 - ], - "score": 1.0, - "text": "importantfactoraffectingstreamflowandthemost" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1654.0, - 714.0, - 1654.0, - 714.0, - 1677.0, - 119.0, - 1677.0 - ], - "score": 1.0, - "text": "easilyaccesseddata,itischosentorepresentthe" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1687.0, - 716.0, - 1687.0, - 716.0, - 1713.0, - 119.0, - 1713.0 - ], - "score": 0.97, - "text": "climate. Catchment physical properties such as soil" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1722.0, - 714.0, - 1722.0, - 714.0, - 1744.0, - 118.0, - 1744.0 - ], - "score": 1.0, - "text": "propertiesandtopographyareassumedtobetime" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1755.0, - 715.0, - 1755.0, - 715.0, - 1778.0, - 118.0, - 1778.0 - ], - "score": 1.0, - "text": "invariantandthereforetheirimpactonrunoffis" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1786.0, - 714.0, - 1786.0, - 714.0, - 1812.0, - 118.0, - 1812.0 - ], - "score": 0.97, - "text": "considered constant throughout the analysis.As trees" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1821.0, - 712.0, - 1821.0, - 712.0, - 1847.0, - 118.0, - 1847.0 - ], - "score": 0.98, - "text": "intercept and transpire at increasing rates until canopy" - }, - { - "category_id": 15, - "poly": [ - 787.0, - 1289.0, - 856.0, - 1289.0, - 856.0, - 1313.0, - 787.0, - 1313.0 - ], - "score": 1.0, - "text": "where" - }, - { - "category_id": 15, - "poly": [ - 899.0, - 1289.0, - 1205.0, - 1289.0, - 1205.0, - 1313.0, - 899.0, - 1313.0 - ], - "score": 0.96, - "text": "is the percentile flow (i.e." - }, - { - "category_id": 15, - "poly": [ - 1253.0, - 1289.0, - 1377.0, - 1289.0, - 1377.0, - 1313.0, - 1253.0, - 1313.0 - ], - "score": 0.98, - "text": "is the 50th" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1323.0, - 988.0, - 1323.0, - 988.0, - 1345.0, - 782.0, - 1345.0 - ], - "score": 0.98, - "text": "percentileflow)," - }, - { - "category_id": 15, - "poly": [ - 1013.0, - 1323.0, - 1076.0, - 1323.0, - 1076.0, - 1345.0, - 1013.0, - 1345.0 - ], - "score": 1.0, - "text": "and" - }, - { - "category_id": 15, - "poly": [ - 1099.0, - 1323.0, - 1378.0, - 1323.0, - 1378.0, - 1345.0, - 1099.0, - 1345.0 - ], - "score": 1.0, - "text": "arecoefficientsofthe" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 1356.0, - 962.0, - 1356.0, - 962.0, - 1377.0, - 785.0, - 1377.0 - ], - "score": 0.99, - "text": "sigmoidalterm," - }, - { - "category_id": 15, - "poly": [ - 1003.0, - 1356.0, - 1379.0, - 1356.0, - 1379.0, - 1377.0, - 1003.0, - 1377.0 - ], - "score": 1.0, - "text": "isthedeviationofannualrainfall" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1388.0, - 1209.0, - 1388.0, - 1209.0, - 1413.0, - 783.0, - 1413.0 - ], - "score": 0.96, - "text": "from theperiod ofrecord average, and" - }, - { - "category_id": 15, - "poly": [ - 1263.0, - 1388.0, - 1378.0, - 1388.0, - 1378.0, - 1413.0, - 1263.0, - 1413.0 - ], - "score": 0.95, - "text": "is the time" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1422.0, - 1258.0, - 1422.0, - 1258.0, - 1446.0, - 784.0, - 1446.0 - ], - "score": 0.96, - "text": "in years at which half of the reduction in" - }, - { - "category_id": 15, - "poly": [ - 1302.0, - 1422.0, - 1379.0, - 1422.0, - 1379.0, - 1446.0, - 1302.0, - 1446.0 - ], - "score": 0.98, - "text": "due to" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1455.0, - 1378.0, - 1455.0, - 1378.0, - 1479.0, - 784.0, - 1479.0 - ], - "score": 0.98, - "text": "afforestation has taken place.For the average climate" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1487.0, - 894.0, - 1487.0, - 894.0, - 1512.0, - 783.0, - 1512.0 - ], - "score": 1.0, - "text": "condition" - }, - { - "category_id": 15, - "poly": [ - 1009.0, - 1487.0, - 1269.0, - 1487.0, - 1269.0, - 1512.0, - 1009.0, - 1512.0 - ], - "score": 0.95, - "text": "becomes the value of" - }, - { - "category_id": 15, - "poly": [ - 1312.0, - 1487.0, - 1378.0, - 1487.0, - 1378.0, - 1512.0, - 1312.0, - 1512.0 - ], - "score": 1.0, - "text": "when" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1521.0, - 1380.0, - 1521.0, - 1380.0, - 1545.0, - 783.0, - 1545.0 - ], - "score": 0.97, - "text": "the newequilibriumplantation water use under" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 1555.0, - 1377.0, - 1555.0, - 1377.0, - 1578.0, - 785.0, - 1578.0 - ], - "score": 1.0, - "text": "afforestationisreached.Ythengivesthemagnitude" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1588.0, - 1238.0, - 1588.0, - 1238.0, - 1612.0, - 784.0, - 1612.0 - ], - "score": 0.95, - "text": "of change due to afforestation,and " - }, - { - "category_id": 15, - "poly": [ - 1263.0, - 1588.0, - 1377.0, - 1588.0, - 1377.0, - 1612.0, - 1263.0, - 1612.0 - ], - "score": 0.99, - "text": "describes" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1619.0, - 1380.0, - 1619.0, - 1380.0, - 1647.0, - 782.0, - 1647.0 - ], - "score": 0.98, - "text": "the shape of the response as shown in Fig. 2b. For" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1654.0, - 1195.0, - 1654.0, - 1195.0, - 1680.0, - 783.0, - 1680.0 - ], - "score": 0.98, - "text": "the average pre-treatment condition" - }, - { - "category_id": 15, - "poly": [ - 1279.0, - 1654.0, - 1312.0, - 1654.0, - 1312.0, - 1680.0, - 1279.0, - 1680.0 - ], - "score": 1.0, - "text": "at" - }, - { - "category_id": 15, - "poly": [ - 822.0, - 1687.0, - 1074.0, - 1687.0, - 1074.0, - 1713.0, - 822.0, - 1713.0 - ], - "score": 0.99, - "text": "approximately equals" - }, - { - "category_id": 15, - "poly": [ - 1141.0, - 1687.0, - 1378.0, - 1687.0, - 1378.0, - 1713.0, - 1141.0, - 1713.0 - ], - "score": 0.98, - "text": "Estimation of a pre-" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1721.0, - 1378.0, - 1721.0, - 1378.0, - 1745.0, - 784.0, - 1745.0 - ], - "score": 0.99, - "text": "afforestationconditionwouldnot requirethetime" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1754.0, - 1380.0, - 1754.0, - 1380.0, - 1778.0, - 782.0, - 1778.0 - ], - "score": 0.96, - "text": "term.Details of the optimisation scheme and" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1787.0, - 1378.0, - 1787.0, - 1378.0, - 1812.0, - 783.0, - 1812.0 - ], - "score": 0.96, - "text": "sensitivity tests oninitialparametervalues aregiven" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1820.0, - 1018.0, - 1820.0, - 1018.0, - 1844.0, - 783.0, - 1844.0 - ], - "score": 0.96, - "text": "in Lane et al. (2003)." - }, - { - "category_id": 15, - "poly": [ - 117.0, - 721.0, - 523.0, - 721.0, - 523.0, - 750.0, - 117.0, - 750.0 - ], - "score": 0.98, - "text": "2.1. Characterisation of fow regime" - }, - { - "category_id": 15, - "poly": [ - 1345.0, - 196.0, - 1381.0, - 196.0, - 1381.0, - 219.0, - 1345.0, - 219.0 - ], - "score": 1.0, - "text": "255" - }, - { - "category_id": 15, - "poly": [ - 468.0, - 196.0, - 1028.0, - 196.0, - 1028.0, - 220.0, - 468.0, - 220.0 - ], - "score": 0.96, - "text": "P.N.J.Lane et al./ Journal of Hydrology 310(2005) 253-265" - } - ], - "page_info": { - "page_no": 2, - "height": 2064, - "width": 1512 - } - }, - { - "layout_dets": [ - { - "category_id": 9, - "poly": [ - 1360.4927978515625, - 806.4982299804688, - 1393.562255859375, - 806.4982299804688, - 1393.562255859375, - 835.6339721679688, - 1360.4927978515625, - 835.6339721679688 - ], - "score": 0.9999969005584717 - }, - { - "category_id": 0, - "poly": [ - 794.8597412109375, - 500.950927734375, - 1061.779052734375, - 500.950927734375, - 1061.779052734375, - 529.2664794921875, - 794.8597412109375, - 529.2664794921875 - ], - "score": 0.9999960660934448 - }, - { - "category_id": 1, - "poly": [ - 795.16552734375, - 877.1219482421875, - 1396.0081787109375, - 877.1219482421875, - 1396.0081787109375, - 1240.2757568359375, - 795.16552734375, - 1240.2757568359375 - ], - "score": 0.9999922513961792 - }, - { - "category_id": 1, - "poly": [ - 795.3323974609375, - 1244.0330810546875, - 1393.7725830078125, - 1244.0330810546875, - 1393.7725830078125, - 1508.4620361328125, - 795.3323974609375, - 1508.4620361328125 - ], - "score": 0.9999896883964539 - }, - { - "category_id": 9, - "poly": [ - 1360.60400390625, - 1543.2252197265625, - 1393.3878173828125, - 1543.2252197265625, - 1393.3878173828125, - 1573.743896484375, - 1360.60400390625, - 1573.743896484375 - ], - "score": 0.99998939037323 - }, - { - "category_id": 3, - "poly": [ - 143.59278869628906, - 259.15484619140625, - 713.1118774414062, - 259.15484619140625, - 713.1118774414062, - 1178.9329833984375, - 143.59278869628906, - 1178.9329833984375 - ], - "score": 0.9999875426292419 - }, - { - "category_id": 9, - "poly": [ - 695.6785888671875, - 1697.92626953125, - 729.6533813476562, - 1697.92626953125, - 729.6533813476562, - 1727.179443359375, - 695.6785888671875, - 1727.179443359375 - ], - "score": 0.9999865293502808 - }, - { - "category_id": 1, - "poly": [ - 794.4083862304688, - 566.5299072265625, - 1394.3333740234375, - 566.5299072265625, - 1394.3333740234375, - 762.97998046875, - 794.4083862304688, - 762.97998046875 - ], - "score": 0.9999858736991882 - }, - { - "category_id": 2, - "poly": [ - 130.26800537109375, - 194.78128051757812, - 166.77423095703125, - 194.78128051757812, - 166.77423095703125, - 214.85980224609375, - 130.26800537109375, - 214.85980224609375 - ], - "score": 0.999983549118042 - }, - { - "category_id": 4, - "poly": [ - 130.88475036621094, - 1202.541748046875, - 732.7880859375, - 1202.541748046875, - 732.7880859375, - 1255.5113525390625, - 130.88475036621094, - 1255.5113525390625 - ], - "score": 0.9999827146530151 - }, - { - "category_id": 1, - "poly": [ - 131.37588500976562, - 1355.726318359375, - 730.2669067382812, - 1355.726318359375, - 730.2669067382812, - 1652.2847900390625, - 131.37588500976562, - 1652.2847900390625 - ], - "score": 0.9999791979789734 - }, - { - "category_id": 1, - "poly": [ - 131.3990020751953, - 1783.6968994140625, - 730.2479858398438, - 1783.6968994140625, - 730.2479858398438, - 1845.9527587890625, - 131.3990020751953, - 1845.9527587890625 - ], - "score": 0.9999774694442749 - }, - { - "category_id": 8, - "poly": [ - 793.2936401367188, - 779.8841552734375, - 1107.38330078125, - 779.8841552734375, - 1107.38330078125, - 863.30126953125, - 793.2936401367188, - 863.30126953125 - ], - "score": 0.9999751448631287 - }, - { - "category_id": 1, - "poly": [ - 793.5782470703125, - 254.07586669921875, - 1395.4632568359375, - 254.07586669921875, - 1395.4632568359375, - 448.5629577636719, - 793.5782470703125, - 448.5629577636719 - ], - "score": 0.9999668002128601 - }, - { - "category_id": 9, - "poly": [ - 1360.520263671875, - 1667.31787109375, - 1393.381591796875, - 1667.31787109375, - 1393.381591796875, - 1697.6356201171875, - 1360.520263671875, - 1697.6356201171875 - ], - "score": 0.9999586939811707 - }, - { - "category_id": 2, - "poly": [ - 481.1078186035156, - 195.15699768066406, - 1044.8504638671875, - 195.15699768066406, - 1044.8504638671875, - 218.15432739257812, - 481.1078186035156, - 218.15432739257812 - ], - "score": 0.9999558329582214 - }, - { - "category_id": 8, - "poly": [ - 792.6296997070312, - 1522.0426025390625, - 1110.239501953125, - 1522.0426025390625, - 1110.239501953125, - 1603.29150390625, - 792.6296997070312, - 1603.29150390625 - ], - "score": 0.9999276995658875 - }, - { - "category_id": 8, - "poly": [ - 793.1000366210938, - 1664.317138671875, - 976.23876953125, - 1664.317138671875, - 976.23876953125, - 1699.446533203125, - 793.1000366210938, - 1699.446533203125 - ], - "score": 0.9999255537986755 - }, - { - "category_id": 1, - "poly": [ - 795.8680419921875, - 1716.1470947265625, - 1394.599853515625, - 1716.1470947265625, - 1394.599853515625, - 1844.9285888671875, - 795.8680419921875, - 1844.9285888671875 - ], - "score": 0.9999062418937683 - }, - { - "category_id": 1, - "poly": [ - 792.8858642578125, - 1620.9166259765625, - 840.123046875, - 1620.9166259765625, - 840.123046875, - 1649.06201171875, - 792.8858642578125, - 1649.06201171875 - ], - "score": 0.999884307384491 - }, - { - "category_id": 8, - "poly": [ - 128.5625, - 1678.517333984375, - 566.567626953125, - 1678.517333984375, - 566.567626953125, - 1756.288330078125, - 128.5625, - 1756.288330078125 - ], - "score": 0.9992296099662781 - }, - { - "category_id": 0, - "poly": [ - 130.90809631347656, - 1288.0635986328125, - 436.2228088378906, - 1288.0635986328125, - 436.2228088378906, - 1318.1854248046875, - 130.90809631347656, - 1318.1854248046875 - ], - "score": 0.9975306987762451 - }, - { - "category_id": 14, - "poly": [ - 790, - 777, - 1108, - 777, - 1108, - 863, - 790, - 863 - ], - "score": 0.94, - "latex": "E=1.0-\\frac{\\sum_{i=1}^{N}(O_{i}-P_{i})^{2}}{\\sum_{i-1}^{N}(O_{i}-\\bar{O})^{2}}" - }, - { - "category_id": 14, - "poly": [ - 790, - 1521, - 1110, - 1521, - 1110, - 1602, - 790, - 1602 - ], - "score": 0.94, - "latex": "Q_{\\mathcal{q}_{o}}=a+\\frac{Y}{1+\\exp\\left(\\frac{T-T_{\\mathrm{half}}}{S}\\right)}" - }, - { - "category_id": 14, - "poly": [ - 125, - 1674, - 566, - 1674, - 566, - 1756, - 125, - 1756 - ], - "score": 0.93, - "latex": "N_{\\mathrm{zero}}=a+b(\\Delta P)+\\frac{Y}{1+\\exp\\left(\\frac{T-T_{\\mathrm{half}}}{S}\\right)}" - }, - { - "category_id": 13, - "poly": [ - 1306, - 319, - 1388, - 319, - 1388, - 349, - 1306, - 349 - ], - "score": 0.91, - "latex": "\\Delta P\\!=\\!0" - }, - { - "category_id": 13, - "poly": [ - 529, - 1555, - 589, - 1555, - 589, - 1585, - 529, - 1585 - ], - "score": 0.9, - "latex": "N_{\\mathrm{zero}}" - }, - { - "category_id": 13, - "poly": [ - 1281, - 1176, - 1365, - 1176, - 1365, - 1205, - 1281, - 1205 - ], - "score": 0.9, - "latex": "E\\!>\\!0.7" - }, - { - "category_id": 13, - "poly": [ - 880, - 1173, - 931, - 1173, - 931, - 1206, - 880, - 1206 - ], - "score": 0.89, - "latex": "\\!0.7" - }, - { - "category_id": 13, - "poly": [ - 160, - 1682, - 231, - 1682, - 231, - 1713, - 160, - 1713 - ], - "score": 0.88, - "latex": "a+Y)" - }, - { - "category_id": 13, - "poly": [ - 116, - 320, - 188, - 320, - 188, - 351, - 116, - 351 - ], - "score": 0.88, - "latex": "(77\\%)" - }, - { - "category_id": 13, - "poly": [ - 268, - 751, - 324, - 751, - 324, - 781, - 268, - 781 - ], - "score": 0.87, - "latex": "80\\%" - }, - { - "category_id": 13, - "poly": [ - 628, - 585, - 684, - 585, - 684, - 615, - 628, - 615 - ], - "score": 0.87, - "latex": "75\\%" - }, - { - "category_id": 13, - "poly": [ - 602, - 619, - 644, - 619, - 644, - 647, - 602, - 647 - ], - "score": 0.85, - "latex": "9\\%" - }, - { - "category_id": 13, - "poly": [ - 533, - 784, - 577, - 784, - 577, - 814, - 533, - 814 - ], - "score": 0.83, - "latex": "9\\%" - }, - { - "category_id": 13, - "poly": [ - 323, - 1384, - 364, - 1384, - 364, - 1412, - 323, - 1412 - ], - "score": 0.77, - "latex": "\\Delta P" - }, - { - "category_id": 13, - "poly": [ - 286, - 852, - 308, - 852, - 308, - 879, - 286, - 879 - ], - "score": 0.75, - "latex": "E" - }, - { - "category_id": 13, - "poly": [ - 409, - 885, - 432, - 885, - 432, - 912, - 409, - 912 - ], - "score": 0.71, - "latex": "E" - }, - { - "category_id": 13, - "poly": [ - 484, - 254, - 524, - 254, - 524, - 284, - 484, - 284 - ], - "score": 0.7, - "latex": "(E)" - }, - { - "category_id": 13, - "poly": [ - 566, - 1085, - 590, - 1085, - 590, - 1112, - 566, - 1112 - ], - "score": 0.7, - "latex": "E" - }, - { - "category_id": 13, - "poly": [ - 315, - 919, - 334, - 919, - 334, - 946, - 315, - 946 - ], - "score": 0.66, - "latex": "^b" - }, - { - "category_id": 13, - "poly": [ - 376, - 587, - 394, - 587, - 394, - 614, - 376, - 614 - ], - "score": 0.62, - "latex": "^b" - }, - { - "category_id": 13, - "poly": [ - 460, - 1051, - 478, - 1051, - 478, - 1077, - 460, - 1077 - ], - "score": 0.59, - "latex": "^b" - }, - { - "category_id": 13, - "poly": [ - 451, - 319, - 552, - 319, - 552, - 350, - 451, - 350 - ], - "score": 0.46, - "latex": "60\\%\\ 0.8" - }, - { - "category_id": 13, - "poly": [ - 498, - 719, - 522, - 719, - 522, - 746, - 498, - 746 - ], - "score": 0.45, - "latex": "Y" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 762.0, - 1379.0, - 762.0, - 1379.0, - 784.0, - 782.0, - 784.0 - ], - "score": 0.96, - "text": "Fig.3.Examples of observed and flow duration curves adjusted for" - }, - { - "category_id": 15, - "poly": [ - 781.0, - 791.0, - 1379.0, - 791.0, - 1379.0, - 810.0, - 781.0, - 810.0 - ], - "score": 0.99, - "text": "averagerainfallfollowingafforestationforStewartsCreek5," - }, - { - "category_id": 15, - "poly": [ - 782.0, - 818.0, - 868.0, - 818.0, - 868.0, - 838.0, - 782.0, - 838.0 - ], - "score": 1.0, - "text": "Australia." - }, - { - "category_id": 15, - "poly": [ - 119.0, - 258.0, - 483.0, - 258.0, - 483.0, - 282.0, - 119.0, - 282.0 - ], - "score": 0.99, - "text": "thecoefficientofefficiency" - }, - { - "category_id": 15, - "poly": [ - 525.0, - 258.0, - 714.0, - 258.0, - 714.0, - 282.0, - 525.0, - 282.0 - ], - "score": 1.0, - "text": "foreachflow" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 293.0, - 713.0, - 293.0, - 713.0, - 317.0, - 118.0, - 317.0 - ], - "score": 0.97, - "text": "percentile at all the catchments. The majority of fits" - }, - { - "category_id": 15, - "poly": [ - 189.0, - 326.0, - 295.0, - 326.0, - 295.0, - 349.0, - 189.0, - 349.0 - ], - "score": 1.0, - "text": "returned" - }, - { - "category_id": 15, - "poly": [ - 381.0, - 326.0, - 450.0, - 326.0, - 450.0, - 349.0, - 381.0, - 349.0 - ], - "score": 0.9, - "text": ",with" - }, - { - "category_id": 15, - "poly": [ - 553.0, - 326.0, - 714.0, - 326.0, - 714.0, - 349.0, - 553.0, - 349.0 - ], - "score": 0.97, - "text": "or better.The" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 358.0, - 714.0, - 358.0, - 714.0, - 382.0, - 120.0, - 382.0 - ], - "score": 0.97, - "text": "significance of the rainfall and time terms is given in" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 391.0, - 715.0, - 391.0, - 715.0, - 414.0, - 119.0, - 414.0 - ], - "score": 1.0, - "text": "Table3foralldeciles,wheresolutionswerefound." - }, - { - "category_id": 15, - "poly": [ - 119.0, - 425.0, - 714.0, - 425.0, - 714.0, - 449.0, - 119.0, - 449.0 - ], - "score": 0.96, - "text": "There were not enough data to fit the model in five" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 457.0, - 714.0, - 457.0, - 714.0, - 482.0, - 117.0, - 482.0 - ], - "score": 0.96, - "text": "instancesbecause ofextended periods of zeroflows." - }, - { - "category_id": 15, - "poly": [ - 118.0, - 490.0, - 714.0, - 490.0, - 714.0, - 516.0, - 118.0, - 516.0 - ], - "score": 0.99, - "text": "This problem is addressed to some extent in the zero" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 525.0, - 715.0, - 525.0, - 715.0, - 549.0, - 119.0, - 549.0 - ], - "score": 0.97, - "text": "flow analysis. If the rainfall signal is tobe separated" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 557.0, - 714.0, - 557.0, - 714.0, - 581.0, - 119.0, - 581.0 - ], - "score": 0.97, - "text": "from the vegetation signal the rainfall terms must be" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 592.0, - 375.0, - 592.0, - 375.0, - 616.0, - 120.0, - 616.0 - ], - "score": 0.99, - "text": "significant. This term," - }, - { - "category_id": 15, - "poly": [ - 395.0, - 592.0, - 627.0, - 592.0, - 627.0, - 616.0, - 395.0, - 616.0 - ], - "score": 0.96, - "text": ",was significant for" - }, - { - "category_id": 15, - "poly": [ - 685.0, - 592.0, - 717.0, - 592.0, - 717.0, - 616.0, - 685.0, - 616.0 - ], - "score": 1.0, - "text": "of" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 623.0, - 601.0, - 623.0, - 601.0, - 648.0, - 118.0, - 648.0 - ], - "score": 0.96, - "text": "the deciles at the 0.05 level, and a further" - }, - { - "category_id": 15, - "poly": [ - 645.0, - 623.0, - 714.0, - 623.0, - 714.0, - 648.0, - 645.0, - 648.0 - ], - "score": 1.0, - "text": "atthe" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 656.0, - 715.0, - 656.0, - 715.0, - 682.0, - 117.0, - 682.0 - ], - "score": 0.99, - "text": "0.10 level. The incidence of significance was greatest" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 691.0, - 716.0, - 691.0, - 716.0, - 714.0, - 118.0, - 714.0 - ], - "score": 1.0, - "text": "forthe10-50thpercentilesat45ofthe50datasetsat" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 724.0, - 497.0, - 724.0, - 497.0, - 747.0, - 119.0, - 747.0 - ], - "score": 0.97, - "text": "the0.051evel.Thetimeterm," - }, - { - "category_id": 15, - "poly": [ - 523.0, - 724.0, - 714.0, - 724.0, - 714.0, - 747.0, - 523.0, - 747.0 - ], - "score": 1.0, - "text": "returnedsimilar" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 757.0, - 267.0, - 757.0, - 267.0, - 781.0, - 119.0, - 781.0 - ], - "score": 0.99, - "text": "results, with" - }, - { - "category_id": 15, - "poly": [ - 325.0, - 757.0, - 714.0, - 757.0, - 714.0, - 781.0, - 325.0, - 781.0 - ], - "score": 0.94, - "text": " of the deciles significant at O.05" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 790.0, - 532.0, - 790.0, - 532.0, - 814.0, - 119.0, - 814.0 - ], - "score": 1.0, - "text": "level.Therewereanadditional" - }, - { - "category_id": 15, - "poly": [ - 578.0, - 790.0, - 714.0, - 790.0, - 714.0, - 814.0, - 578.0, - 814.0 - ], - "score": 0.97, - "text": "of deciles" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 823.0, - 431.0, - 823.0, - 431.0, - 849.0, - 120.0, - 849.0 - ], - "score": 0.99, - "text": "significant at the 0.10 level." - }, - { - "category_id": 15, - "poly": [ - 834.0, - 884.0, - 1379.0, - 884.0, - 1379.0, - 909.0, - 834.0, - 909.0 - ], - "score": 0.97, - "text": "values aregiveninTable 4.Fig.3 shows that for" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 917.0, - 1379.0, - 917.0, - 1379.0, - 941.0, - 783.0, - 941.0 - ], - "score": 0.99, - "text": "most deciles the adjusted FDCs are identical for 12" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 952.0, - 1377.0, - 952.0, - 1377.0, - 977.0, - 784.0, - 977.0 - ], - "score": 0.99, - "text": "and20yearsaftertreatment.Thisfigureclearly" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 984.0, - 1377.0, - 984.0, - 1377.0, - 1010.0, - 783.0, - 1010.0 - ], - "score": 0.96, - "text": "demonstrates the necessityfor FDC adjustment," - }, - { - "category_id": 15, - "poly": [ - 781.0, - 1017.0, - 1162.0, - 1017.0, - 1162.0, - 1043.0, - 781.0, - 1043.0 - ], - "score": 0.97, - "text": "particularly for the 20years FDC" - }, - { - "category_id": 15, - "poly": [ - 154.0, - 855.0, - 285.0, - 855.0, - 285.0, - 879.0, - 154.0, - 879.0 - ], - "score": 1.0, - "text": "Thepoorest" - }, - { - "category_id": 15, - "poly": [ - 309.0, - 855.0, - 713.0, - 855.0, - 713.0, - 879.0, - 309.0, - 879.0 - ], - "score": 0.99, - "text": "valueswere thosefromLambrechts-" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 888.0, - 408.0, - 888.0, - 408.0, - 912.0, - 117.0, - 912.0 - ], - "score": 0.98, - "text": "bos A and B. The high" - }, - { - "category_id": 15, - "poly": [ - 433.0, - 888.0, - 716.0, - 888.0, - 716.0, - 912.0, - 433.0, - 912.0 - ], - "score": 0.98, - "text": "for 50-100th deciles at" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 924.0, - 314.0, - 924.0, - 314.0, - 947.0, - 119.0, - 947.0 - ], - "score": 0.99, - "text": "Biesievlei,where" - }, - { - "category_id": 15, - "poly": [ - 335.0, - 924.0, - 714.0, - 924.0, - 714.0, - 947.0, - 335.0, - 947.0 - ], - "score": 0.96, - "text": "was notsignificant are notable.In" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 957.0, - 714.0, - 957.0, - 714.0, - 980.0, - 120.0, - 980.0 - ], - "score": 0.99, - "text": "generalthemodelfitsthehigherflows(lowerdeciles)" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 990.0, - 715.0, - 990.0, - 715.0, - 1012.0, - 119.0, - 1012.0 - ], - "score": 0.98, - "text": "better,mostofthepoorerfitsareinthe80-100" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1024.0, - 714.0, - 1024.0, - 714.0, - 1045.0, - 118.0, - 1045.0 - ], - "score": 1.0, - "text": "percentilerange.Thiscanbeexpectedgiventheresults" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1056.0, - 459.0, - 1056.0, - 459.0, - 1078.0, - 119.0, - 1078.0 - ], - "score": 0.98, - "text": "ofthesignificancetestsfor" - }, - { - "category_id": 15, - "poly": [ - 479.0, - 1056.0, - 714.0, - 1056.0, - 714.0, - 1078.0, - 479.0, - 1078.0 - ], - "score": 0.98, - "text": ".Theresultsofthe" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1089.0, - 565.0, - 1089.0, - 565.0, - 1114.0, - 117.0, - 1114.0 - ], - "score": 0.99, - "text": "sensitivityanalysissuggestedthat the" - }, - { - "category_id": 15, - "poly": [ - 591.0, - 1089.0, - 716.0, - 1089.0, - 716.0, - 1114.0, - 591.0, - 1114.0 - ], - "score": 1.0, - "text": "valuesfor" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1122.0, - 714.0, - 1122.0, - 714.0, - 1146.0, - 119.0, - 1146.0 - ], - "score": 0.96, - "text": "Glendhu 2 and for 10th and 20th percentiles from" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1155.0, - 714.0, - 1155.0, - 714.0, - 1179.0, - 118.0, - 1179.0 - ], - "score": 0.95, - "text": "Cathedral Peak3 may exaggerate the goodness offit to" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1189.0, - 642.0, - 1189.0, - 642.0, - 1212.0, - 119.0, - 1212.0 - ], - "score": 0.97, - "text": "theexactformof themodel (Laneet al.,2003)" - }, - { - "category_id": 15, - "poly": [ - 817.0, - 1051.0, - 1379.0, - 1051.0, - 1379.0, - 1076.0, - 817.0, - 1076.0 - ], - "score": 0.97, - "text": "Therelative net flowchangedue toafforestation is" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 1086.0, - 877.0, - 1086.0, - 877.0, - 1109.0, - 785.0, - 1109.0 - ], - "score": 1.0, - "text": "givenby" - }, - { - "category_id": 15, - "poly": [ - 976.0, - 1086.0, - 1377.0, - 1086.0, - 1377.0, - 1109.0, - 976.0, - 1109.0 - ], - "score": 0.99, - "text": ",whichrepresentsthechangefromthe" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 1118.0, - 1379.0, - 1118.0, - 1379.0, - 1142.0, - 785.0, - 1142.0 - ], - "score": 0.96, - "text": "old equilibrium water use condition of pre-treatment" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1152.0, - 1381.0, - 1152.0, - 1381.0, - 1175.0, - 784.0, - 1175.0 - ], - "score": 1.0, - "text": "vegetationtothenewequilibriumconditionatforest" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 1186.0, - 1379.0, - 1186.0, - 1379.0, - 1210.0, - 785.0, - 1210.0 - ], - "score": 0.98, - "text": "canopy closure. This quantity is plotted for all catchments" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1218.0, - 1378.0, - 1218.0, - 1378.0, - 1241.0, - 783.0, - 1241.0 - ], - "score": 0.97, - "text": "in Fig.4.Somedecileshavebeen removedfrom thedata" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1252.0, - 1378.0, - 1252.0, - 1378.0, - 1274.0, - 784.0, - 1274.0 - ], - "score": 0.97, - "text": "set,the10thand50thpercentileforGlendhu2andthe" - }, - { - "category_id": 15, - "poly": [ - 787.0, - 1284.0, - 1378.0, - 1284.0, - 1378.0, - 1308.0, - 787.0, - 1308.0 - ], - "score": 0.97, - "text": "10th and 20th percentiles from Cathedral Peak 3. The" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 1317.0, - 1378.0, - 1317.0, - 1378.0, - 1342.0, - 785.0, - 1342.0 - ], - "score": 1.0, - "text": "optimisedvalueofawaszeroornearzeroforthesecases," - }, - { - "category_id": 15, - "poly": [ - 786.0, - 1352.0, - 1378.0, - 1352.0, - 1378.0, - 1375.0, - 786.0, - 1375.0 - ], - "score": 0.99, - "text": "whichisnotconsistentwith theconceptualmodel.The" - }, - { - "category_id": 15, - "poly": [ - 786.0, - 1385.0, - 1378.0, - 1385.0, - 1378.0, - 1409.0, - 786.0, - 1409.0 - ], - "score": 0.97, - "text": "changes shown in Fig. 4 are variable. However, there are" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 1419.0, - 1377.0, - 1419.0, - 1377.0, - 1443.0, - 785.0, - 1443.0 - ], - "score": 0.98, - "text": "some commonalities between catchment responses. Two" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1452.0, - 1379.0, - 1452.0, - 1379.0, - 1476.0, - 783.0, - 1476.0 - ], - "score": 0.97, - "text": "types of responses (groups) were identified. Group 1" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1485.0, - 1381.0, - 1485.0, - 1381.0, - 1508.0, - 783.0, - 1508.0 - ], - "score": 0.99, - "text": "catchments showasubstantialincreaseinthenumber of" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1519.0, - 1379.0, - 1519.0, - 1379.0, - 1543.0, - 784.0, - 1543.0 - ], - "score": 0.99, - "text": "zero flow days, with a greater proportional reduction in" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1552.0, - 1380.0, - 1552.0, - 1380.0, - 1575.0, - 783.0, - 1575.0 - ], - "score": 0.99, - "text": "lowflowsthanhighflows.Group2catchmentsshowa" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1586.0, - 1379.0, - 1586.0, - 1379.0, - 1608.0, - 782.0, - 1608.0 - ], - "score": 0.99, - "text": "moreuniformproportionalreductioninflowsacrossall" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1618.0, - 1378.0, - 1618.0, - 1378.0, - 1643.0, - 782.0, - 1643.0 - ], - "score": 0.98, - "text": "percentiles, albeit with some variability. The catchments" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1652.0, - 974.0, - 1652.0, - 974.0, - 1676.0, - 784.0, - 1676.0 - ], - "score": 0.95, - "text": "in eachgroup are:" - }, - { - "category_id": 15, - "poly": [ - 152.0, - 1321.0, - 713.0, - 1321.0, - 713.0, - 1346.0, - 152.0, - 1346.0 - ], - "score": 0.98, - "text": "Followingthesuccessfulfittingof(2)tothe" - }, - { - "category_id": 15, - "poly": [ - 121.0, - 1356.0, - 714.0, - 1356.0, - 714.0, - 1379.0, - 121.0, - 1379.0 - ], - "score": 0.99, - "text": "observedpercentiles,theFDCswereadjustedfor" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1391.0, - 322.0, - 1391.0, - 322.0, - 1414.0, - 120.0, - 1414.0 - ], - "score": 1.0, - "text": "climatebysetting" - }, - { - "category_id": 15, - "poly": [ - 365.0, - 1391.0, - 714.0, - 1391.0, - 714.0, - 1414.0, - 365.0, - 1414.0 - ], - "score": 0.96, - "text": "to zero, representing long term" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1423.0, - 714.0, - 1423.0, - 714.0, - 1445.0, - 119.0, - 1445.0 - ], - "score": 1.0, - "text": "averageannualrainfall.TheclimateadjustedFDCs" - }, - { - "category_id": 15, - "poly": [ - 116.0, - 1454.0, - 715.0, - 1454.0, - 715.0, - 1480.0, - 116.0, - 1480.0 - ], - "score": 0.99, - "text": "produce anestimationofthechangeinflow" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1486.0, - 716.0, - 1486.0, - 716.0, - 1513.0, - 117.0, - 1513.0 - ], - "score": 0.95, - "text": "percentiles over time for eachcatchment due to" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1520.0, - 715.0, - 1520.0, - 715.0, - 1545.0, - 119.0, - 1545.0 - ], - "score": 0.98, - "text": "afforestation thatmaybeviewed intwoforms:new" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1554.0, - 715.0, - 1554.0, - 715.0, - 1579.0, - 118.0, - 1579.0 - ], - "score": 0.97, - "text": "FDCs, adjusted for climate, as exemplified in Fig. 3" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1588.0, - 715.0, - 1588.0, - 715.0, - 1612.0, - 118.0, - 1612.0 - ], - "score": 0.97, - "text": "for Stewarts Creek 5, and a comparison between all" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1621.0, - 712.0, - 1621.0, - 712.0, - 1645.0, - 119.0, - 1645.0 - ], - "score": 0.98, - "text": "catchments of the maximum change in yield (given by" - }, - { - "category_id": 15, - "poly": [ - 121.0, - 1655.0, - 714.0, - 1655.0, - 714.0, - 1678.0, - 121.0, - 1678.0 - ], - "score": 0.98, - "text": "Y)foreachflowpercentilefrombaselineflows(given" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1688.0, - 159.0, - 1688.0, - 159.0, - 1710.0, - 119.0, - 1710.0 - ], - "score": 1.0, - "text": "by" - }, - { - "category_id": 15, - "poly": [ - 232.0, - 1688.0, - 715.0, - 1688.0, - 715.0, - 1710.0, - 232.0, - 1710.0 - ], - "score": 1.0, - "text": "asshowninFig.4.Wherethenew" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1721.0, - 714.0, - 1721.0, - 714.0, - 1744.0, - 120.0, - 1744.0 - ], - "score": 1.0, - "text": "equilibriumofmaximumwateruseisreached,the" - }, - { - "category_id": 15, - "poly": [ - 122.0, - 1755.0, - 714.0, - 1755.0, - 714.0, - 1778.0, - 122.0, - 1778.0 - ], - "score": 1.0, - "text": "adjustedFDCsforindividualyearsshouldbeidentical" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1786.0, - 713.0, - 1786.0, - 713.0, - 1811.0, - 118.0, - 1811.0 - ], - "score": 0.96, - "text": "if rainfallvariabilityhas been accounted for.The new" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1818.0, - 600.0, - 1818.0, - 600.0, - 1850.0, - 118.0, - 1850.0 - ], - "score": 0.99, - "text": "equilibrium is approximately reached for" - }, - { - "category_id": 15, - "poly": [ - 1344.0, - 196.0, - 1382.0, - 196.0, - 1382.0, - 219.0, - 1344.0, - 219.0 - ], - "score": 1.0, - "text": "259" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 1712.0, - 1320.0, - 1712.0, - 1320.0, - 1736.0, - 785.0, - 1736.0 - ], - "score": 1.0, - "text": "Group 1: Stewarts Creek, Pine Creek, and Redhill" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 1744.0, - 1377.0, - 1744.0, - 1377.0, - 1769.0, - 785.0, - 1769.0 - ], - "score": 0.96, - "text": "Group 2:Cathedral Peak 2 and 3,Lambrechtsbos A." - }, - { - "category_id": 15, - "poly": [ - 891.0, - 1777.0, - 1379.0, - 1777.0, - 1379.0, - 1803.0, - 891.0, - 1803.0 - ], - "score": 1.0, - "text": "Lambrechtsbos B, Glendhu 2, Biesievlei and" - }, - { - "category_id": 15, - "poly": [ - 893.0, - 1810.0, - 1067.0, - 1810.0, - 1067.0, - 1837.0, - 893.0, - 1837.0 - ], - "score": 1.0, - "text": "TraralgonCreek" - }, - { - "category_id": 15, - "poly": [ - 469.0, - 197.0, - 1029.0, - 197.0, - 1029.0, - 220.0, - 469.0, - 220.0 - ], - "score": 0.99, - "text": "P.N.J.Laneet al./JournalofHydrology310(2005)253-265" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1254.0, - 688.0, - 1254.0, - 688.0, - 1284.0, - 118.0, - 1284.0 - ], - "score": 0.97, - "text": "4.2. Adjusted FDCs—magnitude of flow reductions" - } - ], - "page_info": { - "page_no": 6, - "height": 2064, - "width": 1512 - } - }, - { - "layout_dets": [ - { - "category_id": 6, - "poly": [ - 130.8647003173828, - 1373.554931640625, - 409.2564392089844, - 1373.554931640625, - 409.2564392089844, - 1428.904541015625, - 130.8647003173828, - 1428.904541015625 - ], - "score": 0.9999980926513672 - }, - { - "category_id": 5, - "poly": [ - 125.87389373779297, - 1427.83544921875, - 1397.271484375, - 1427.83544921875, - 1397.271484375, - 1811.2467041015625, - 125.87389373779297, - 1811.2467041015625 - ], - "score": 0.999991774559021 - }, - { - "category_id": 1, - "poly": [ - 796.4015502929688, - 907.420166015625, - 1393.103759765625, - 907.420166015625, - 1393.103759765625, - 1312.5423583984375, - 796.4015502929688, - 1312.5423583984375 - ], - "score": 0.9999879598617554 - }, - { - "category_id": 1, - "poly": [ - 131.5682373046875, - 838.7388305664062, - 728.2155151367188, - 838.7388305664062, - 728.2155151367188, - 1313.8204345703125, - 131.5682373046875, - 1313.8204345703125 - ], - "score": 0.999987781047821 - }, - { - "category_id": 3, - "poly": [ - 304.8876953125, - 255.1979522705078, - 1220.4678955078125, - 255.1979522705078, - 1220.4678955078125, - 708.6326293945312, - 304.8876953125, - 708.6326293945312 - ], - "score": 0.9999865889549255 - }, - { - "category_id": 2, - "poly": [ - 131.3226318359375, - 196.32550048828125, - 166.26792907714844, - 196.32550048828125, - 166.26792907714844, - 214.9618377685547, - 131.3226318359375, - 214.9618377685547 - ], - "score": 0.9999861717224121 - }, - { - "category_id": 0, - "poly": [ - 794.9564819335938, - 839.493408203125, - 1117.9090576171875, - 839.493408203125, - 1117.9090576171875, - 868.1661987304688, - 794.9564819335938, - 868.1661987304688 - ], - "score": 0.9999852180480957 - }, - { - "category_id": 2, - "poly": [ - 481.3118591308594, - 195.47975158691406, - 1044.29833984375, - 195.47975158691406, - 1044.29833984375, - 218.9685516357422, - 481.3118591308594, - 218.9685516357422 - ], - "score": 0.9999847412109375 - }, - { - "category_id": 4, - "poly": [ - 510.6107177734375, - 733.9615478515625, - 1013.2381591796875, - 733.9615478515625, - 1013.2381591796875, - 759.1690673828125, - 510.6107177734375, - 759.1690673828125 - ], - "score": 0.9998294711112976 - }, - { - "category_id": 7, - "poly": [ - 129.30935668945312, - 1816.606689453125, - 940.408447265625, - 1816.606689453125, - 940.408447265625, - 1842.029541015625, - 129.30935668945312, - 1842.029541015625 - ], - "score": 0.9996983408927917 - }, - { - "category_id": 13, - "poly": [ - 759, - 733, - 840, - 733, - 840, - 759, - 759, - 759 - ], - "score": 0.9, - "latex": "Y/(Y\\!+\\!a)" - }, - { - "category_id": 13, - "poly": [ - 815, - 1077, - 867, - 1077, - 867, - 1108, - 815, - 1108 - ], - "score": 0.89, - "latex": "T_{\\mathrm{half}}" - }, - { - "category_id": 13, - "poly": [ - 1088, - 1179, - 1140, - 1179, - 1140, - 1211, - 1088, - 1211 - ], - "score": 0.89, - "latex": "T_{\\mathrm{half}}" - }, - { - "category_id": 13, - "poly": [ - 130, - 1247, - 196, - 1247, - 196, - 1277, - 130, - 1277 - ], - "score": 0.84, - "latex": "100\\%" - }, - { - "category_id": 13, - "poly": [ - 209, - 1042, - 276, - 1042, - 276, - 1072, - 209, - 1072 - ], - "score": 0.84, - "latex": "100\\%" - }, - { - "category_id": 13, - "poly": [ - 1174, - 940, - 1224, - 940, - 1224, - 971, - 1174, - 971 - ], - "score": 0.83, - "latex": "T_{\\mathrm{half}}" - }, - { - "category_id": 13, - "poly": [ - 129, - 1401, - 172, - 1401, - 172, - 1428, - 129, - 1428 - ], - "score": 0.7, - "latex": "T_{\\mathrm{half}}" - }, - { - "category_id": 15, - "poly": [ - 130.0, - 1375.0, - 202.0, - 1375.0, - 202.0, - 1396.0, - 130.0, - 1396.0 - ], - "score": 0.95, - "text": "Table 4" - }, - { - "category_id": 15, - "poly": [ - 173.0, - 1404.0, - 406.0, - 1404.0, - 406.0, - 1426.0, - 173.0, - 1426.0 - ], - "score": 0.98, - "text": "(years) for all catchments" - }, - { - "category_id": 15, - "poly": [ - 831.0, - 911.0, - 1391.0, - 911.0, - 1391.0, - 935.0, - 831.0, - 935.0 - ], - "score": 0.97, - "text": "The speed of flow responses to afforestation can be" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 944.0, - 1173.0, - 944.0, - 1173.0, - 971.0, - 795.0, - 971.0 - ], - "score": 0.96, - "text": "evaluated by examining the value of" - }, - { - "category_id": 15, - "poly": [ - 1225.0, - 944.0, - 1393.0, - 944.0, - 1393.0, - 971.0, - 1225.0, - 971.0 - ], - "score": 0.98, - "text": "(Table 4).There" - }, - { - "category_id": 15, - "poly": [ - 794.0, - 977.0, - 1393.0, - 977.0, - 1393.0, - 1005.0, - 794.0, - 1005.0 - ], - "score": 1.0, - "text": "is substantial variation in response times both over the" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 1015.0, - 1392.0, - 1015.0, - 1392.0, - 1036.0, - 795.0, - 1036.0 - ], - "score": 1.0, - "text": "percentilespreadinsomeindividualcatchments,and" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1047.0, - 1392.0, - 1047.0, - 1392.0, - 1071.0, - 796.0, - 1071.0 - ], - "score": 0.96, - "text": "between the catchments. The majority of responses have" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1083.0, - 814.0, - 1083.0, - 814.0, - 1105.0, - 796.0, - 1105.0 - ], - "score": 0.96, - "text": "a" - }, - { - "category_id": 15, - "poly": [ - 868.0, - 1083.0, - 1392.0, - 1083.0, - 1392.0, - 1105.0, - 868.0, - 1105.0 - ], - "score": 0.99, - "text": "valuebetween5and10years.PineCreekand" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1116.0, - 1392.0, - 1116.0, - 1392.0, - 1139.0, - 796.0, - 1139.0 - ], - "score": 0.99, - "text": "StewartsCreek,Redhill andLambrechtsbosAexhibitthe" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1150.0, - 1393.0, - 1150.0, - 1393.0, - 1175.0, - 796.0, - 1175.0 - ], - "score": 1.0, - "text": "fastestresponses,withBiesievleishowingthemost" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1183.0, - 1087.0, - 1183.0, - 1087.0, - 1209.0, - 796.0, - 1209.0 - ], - "score": 0.98, - "text": "uniformly slowresponse." - }, - { - "category_id": 15, - "poly": [ - 1141.0, - 1183.0, - 1393.0, - 1183.0, - 1393.0, - 1209.0, - 1141.0, - 1209.0 - ], - "score": 0.99, - "text": "for theSouthAfrican" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1219.0, - 1392.0, - 1219.0, - 1392.0, - 1243.0, - 797.0, - 1243.0 - ], - "score": 0.98, - "text": "catchments display a good correspondence to published" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1253.0, - 1392.0, - 1253.0, - 1392.0, - 1276.0, - 797.0, - 1276.0 - ], - "score": 0.98, - "text": "annualchanges(Scottetal.,2000;VanWyk,1987)," - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1288.0, - 1392.0, - 1288.0, - 1392.0, - 1310.0, - 796.0, - 1310.0 - ], - "score": 0.99, - "text": "exceptingthe10-20thdecilesforbothCathedralPeak" - }, - { - "category_id": 15, - "poly": [ - 166.0, - 843.0, - 729.0, - 843.0, - 729.0, - 867.0, - 166.0, - 867.0 - ], - "score": 0.94, - "text": "Group1 exhibit both the highest reduction of" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 875.0, - 728.0, - 875.0, - 728.0, - 902.0, - 131.0, - 902.0 - ], - "score": 0.97, - "text": "flows overall, and show the largest proportional" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 910.0, - 728.0, - 910.0, - 728.0, - 939.0, - 131.0, - 939.0 - ], - "score": 0.97, - "text": "reduction at lower flows, leading to a complete" - }, - { - "category_id": 15, - "poly": [ - 130.0, - 946.0, - 729.0, - 946.0, - 729.0, - 969.0, - 130.0, - 969.0 - ], - "score": 0.99, - "text": "cessationofflow.Comparisonof flowreductionsis" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 980.0, - 729.0, - 980.0, - 729.0, - 1003.0, - 131.0, - 1003.0 - ], - "score": 1.0, - "text": "hinderedslightlybytherangeofafforestationatthe" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1014.0, - 729.0, - 1014.0, - 729.0, - 1037.0, - 131.0, - 1037.0 - ], - "score": 0.97, - "text": "catchments(Table 1).These results couldbe scaled" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1048.0, - 208.0, - 1048.0, - 208.0, - 1072.0, - 131.0, - 1072.0 - ], - "score": 0.99, - "text": "upto" - }, - { - "category_id": 15, - "poly": [ - 277.0, - 1048.0, - 731.0, - 1048.0, - 731.0, - 1072.0, - 277.0, - 1072.0 - ], - "score": 0.93, - "text": " afforested if it is assumed there is a" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1082.0, - 726.0, - 1082.0, - 726.0, - 1105.0, - 131.0, - 1105.0 - ], - "score": 0.97, - "text": "linear relationshipbetweentheareaplantedandflow" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1116.0, - 728.0, - 1116.0, - 728.0, - 1139.0, - 132.0, - 1139.0 - ], - "score": 0.99, - "text": "reductions.Asthereisnoevidencethatthisisthe" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1151.0, - 728.0, - 1151.0, - 728.0, - 1175.0, - 132.0, - 1175.0 - ], - "score": 0.96, - "text": "case we have not presented scaled reductions here." - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1184.0, - 730.0, - 1184.0, - 730.0, - 1209.0, - 131.0, - 1209.0 - ], - "score": 0.98, - "text": "Linear scaling wouldshiftthereductioncurves" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1218.0, - 728.0, - 1218.0, - 728.0, - 1242.0, - 132.0, - 1242.0 - ], - "score": 0.94, - "text": "upward for those catchments that are less than" - }, - { - "category_id": 15, - "poly": [ - 197.0, - 1250.0, - 728.0, - 1250.0, - 728.0, - 1279.0, - 197.0, - 1279.0 - ], - "score": 0.95, - "text": " afforested, but would not change the shape" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1287.0, - 485.0, - 1287.0, - 485.0, - 1314.0, - 132.0, - 1314.0 - ], - "score": 0.98, - "text": "of the curves or our groupings." - }, - { - "category_id": 15, - "poly": [ - 130.0, - 196.0, - 167.0, - 196.0, - 167.0, - 218.0, - 130.0, - 218.0 - ], - "score": 1.0, - "text": "260" - }, - { - "category_id": 15, - "poly": [ - 794.0, - 840.0, - 1118.0, - 840.0, - 1118.0, - 869.0, - 794.0, - 869.0 - ], - "score": 0.99, - "text": "4.3. Timing of fow reductions" - }, - { - "category_id": 15, - "poly": [ - 481.0, - 196.0, - 1042.0, - 196.0, - 1042.0, - 220.0, - 481.0, - 220.0 - ], - "score": 0.96, - "text": "P.N.J.Lane et al./ Journal of Hydrology 310(2005) 253-265" - }, - { - "category_id": 15, - "poly": [ - 513.0, - 737.0, - 758.0, - 737.0, - 758.0, - 760.0, - 513.0, - 760.0 - ], - "score": 0.95, - "text": "Fig. 4. Net flow reductions" - }, - { - "category_id": 15, - "poly": [ - 841.0, - 737.0, - 1009.0, - 737.0, - 1009.0, - 760.0, - 841.0, - 760.0 - ], - "score": 0.99, - "text": "for all catchments" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1820.0, - 936.0, - 1820.0, - 936.0, - 1843.0, - 131.0, - 1843.0 - ], - "score": 0.97, - "text": "Note that no solution could be found for the 5O percentile for Glendhu indicted by the ns" - } - ], - "page_info": { - "page_no": 7, - "height": 2064, - "width": 1512 - } - }, - { - "layout_dets": [ - { - "category_id": 6, - "poly": [ - 114.02448272705078, - 252.96278381347656, - 1384.26953125, - 252.96278381347656, - 1384.26953125, - 336.2478332519531, - 114.02448272705078, - 336.2478332519531 - ], - "score": 0.9999914169311523 - }, - { - "category_id": 1, - "poly": [ - 782.927978515625, - 1059.080810546875, - 1379.0045166015625, - 1059.080810546875, - 1379.0045166015625, - 1518.4134521484375, - 782.927978515625, - 1518.4134521484375 - ], - "score": 0.9999841451644897 - }, - { - "category_id": 1, - "poly": [ - 117.70939636230469, - 1242.48876953125, - 715.529052734375, - 1242.48876953125, - 715.529052734375, - 1847.1575927734375, - 117.70939636230469, - 1847.1575927734375 - ], - "score": 0.9999837279319763 - }, - { - "category_id": 5, - "poly": [ - 112.87651062011719, - 340.12884521484375, - 1386.6334228515625, - 340.12884521484375, - 1386.6334228515625, - 690.6670532226562, - 112.87651062011719, - 690.6670532226562 - ], - "score": 0.9999768733978271 - }, - { - "category_id": 0, - "poly": [ - 782.4056396484375, - 1617.4853515625, - 928.7228393554688, - 1617.4853515625, - 928.7228393554688, - 1646.1173095703125, - 782.4056396484375, - 1646.1173095703125 - ], - "score": 0.9999604225158691 - }, - { - "category_id": 1, - "poly": [ - 782.9052734375, - 1683.71533203125, - 1379.5103759765625, - 1683.71533203125, - 1379.5103759765625, - 1845.6593017578125, - 782.9052734375, - 1845.6593017578125 - ], - "score": 0.9999464750289917 - }, - { - "category_id": 1, - "poly": [ - 119.27631378173828, - 994.8147583007812, - 712.2225341796875, - 994.8147583007812, - 712.2225341796875, - 1120.854736328125, - 119.27631378173828, - 1120.854736328125 - ], - "score": 0.9999319911003113 - }, - { - "category_id": 0, - "poly": [ - 783.0419921875, - 993.3599243164062, - 987.883056640625, - 993.3599243164062, - 987.883056640625, - 1020.2771606445312, - 783.0419921875, - 1020.2771606445312 - ], - "score": 0.9998669624328613 - }, - { - "category_id": 2, - "poly": [ - 1346.875, - 196.13433837890625, - 1379.426025390625, - 196.13433837890625, - 1379.426025390625, - 215.6661834716797, - 1346.875, - 215.6661834716797 - ], - "score": 0.9998455047607422 - }, - { - "category_id": 0, - "poly": [ - 119.71259307861328, - 1178.468994140625, - 627.7359008789062, - 1178.468994140625, - 627.7359008789062, - 1205.4873046875, - 119.71259307861328, - 1205.4873046875 - ], - "score": 0.9995098114013672 - }, - { - "category_id": 2, - "poly": [ - 464.848388671875, - 193.9952392578125, - 1033.1187744140625, - 193.9952392578125, - 1033.1187744140625, - 218.6742706298828, - 464.848388671875, - 218.6742706298828 - ], - "score": 0.9992669820785522 - }, - { - "category_id": 7, - "poly": [ - 116.6382827758789, - 699.0242309570312, - 1381.2982177734375, - 699.0242309570312, - 1381.2982177734375, - 856.2595825195312, - 116.6382827758789, - 856.2595825195312 - ], - "score": 0.9891747236251831 - }, - { - "category_id": 13, - "poly": [ - 458, - 778, - 601, - 778, - 601, - 806, - 458, - 806 - ], - "score": 0.91, - "latex": "\\sum Y/\\sum(a+Y)" - }, - { - "category_id": 13, - "poly": [ - 169, - 1025, - 221, - 1025, - 221, - 1056, - 169, - 1056 - ], - "score": 0.91, - "latex": "T_{\\mathrm{half}}" - }, - { - "category_id": 13, - "poly": [ - 464, - 750, - 607, - 750, - 607, - 778, - 464, - 778 - ], - "score": 0.88, - "latex": "\\sum Y/\\sum(a+Y)" - }, - { - "category_id": 13, - "poly": [ - 1201, - 1191, - 1277, - 1191, - 1277, - 1221, - 1201, - 1221 - ], - "score": 0.88, - "latex": "\\Delta N_{\\mathrm{zero}}" - }, - { - "category_id": 13, - "poly": [ - 1296, - 1323, - 1350, - 1323, - 1350, - 1353, - 1296, - 1353 - ], - "score": 0.86, - "latex": "50\\%" - }, - { - "category_id": 13, - "poly": [ - 1078, - 1159, - 1101, - 1159, - 1101, - 1185, - 1078, - 1185 - ], - "score": 0.77, - "latex": "E" - }, - { - "category_id": 13, - "poly": [ - 1113, - 1192, - 1133, - 1192, - 1133, - 1219, - 1113, - 1219 - ], - "score": 0.69, - "latex": "^b" - }, - { - "category_id": 13, - "poly": [ - 375, - 811, - 390, - 811, - 390, - 830, - 375, - 830 - ], - "score": 0.67, - "latex": "a" - }, - { - "category_id": 13, - "poly": [ - 990, - 1196, - 1003, - 1196, - 1003, - 1218, - 990, - 1218 - ], - "score": 0.61, - "latex": "t^{\\star}" - }, - { - "category_id": 13, - "poly": [ - 1066, - 812, - 1080, - 812, - 1080, - 830, - 1066, - 830 - ], - "score": 0.58, - "latex": "a" - }, - { - "category_id": 13, - "poly": [ - 431, - 808, - 448, - 808, - 448, - 830, - 431, - 830 - ], - "score": 0.46, - "latex": "Y" - }, - { - "category_id": 13, - "poly": [ - 1246, - 1357, - 1283, - 1357, - 1283, - 1386, - 1246, - 1386 - ], - "score": 0.43, - "latex": "\\mathrm{Ck}" - }, - { - "category_id": 13, - "poly": [ - 773, - 779, - 827, - 779, - 827, - 804, - 773, - 804 - ], - "score": 0.42, - "latex": "100\\mathrm{th}" - }, - { - "category_id": 13, - "poly": [ - 1107, - 1357, - 1144, - 1357, - 1144, - 1386, - 1107, - 1386 - ], - "score": 0.41, - "latex": "\\mathrm{Ck}" - }, - { - "category_id": 13, - "poly": [ - 640, - 807, - 684, - 807, - 684, - 831, - 640, - 831 - ], - "score": 0.29, - "latex": "20\\mathrm{th}" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 257.0, - 188.0, - 257.0, - 188.0, - 277.0, - 117.0, - 277.0 - ], - "score": 1.0, - "text": "Table5" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 284.0, - 1381.0, - 284.0, - 1381.0, - 308.0, - 117.0, - 308.0 - ], - "score": 0.99, - "text": "Published flow reductions from paired catchment analyses, after Scott et al. (2000), Hickel (2001), Nandakumar and Mein (1993) and Fahey and" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 313.0, - 679.0, - 313.0, - 679.0, - 337.0, - 117.0, - 337.0 - ], - "score": 0.96, - "text": "Jackson(1997) compared to estimated reductions in this study" - }, - { - "category_id": 15, - "poly": [ - 818.0, - 1063.0, - 1379.0, - 1063.0, - 1379.0, - 1087.0, - 818.0, - 1087.0 - ], - "score": 0.98, - "text": "As this analysis could only be applied, where there" - }, - { - "category_id": 15, - "poly": [ - 781.0, - 1095.0, - 1380.0, - 1095.0, - 1380.0, - 1122.0, - 781.0, - 1122.0 - ], - "score": 0.98, - "text": "was consistent drying up of streams, it was confined to" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1130.0, - 1378.0, - 1130.0, - 1378.0, - 1151.0, - 784.0, - 1151.0 - ], - "score": 0.99, - "text": "StewartsCreek,PineCreekandRedhillcatchments.The" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1162.0, - 1077.0, - 1162.0, - 1077.0, - 1186.0, - 783.0, - 1186.0 - ], - "score": 1.0, - "text": "modelreturnedvaluesof" - }, - { - "category_id": 15, - "poly": [ - 1102.0, - 1162.0, - 1378.0, - 1162.0, - 1378.0, - 1186.0, - 1102.0, - 1186.0 - ], - "score": 0.94, - "text": "of 0.95, 0.99and 0.99," - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1197.0, - 989.0, - 1197.0, - 989.0, - 1222.0, - 784.0, - 1222.0 - ], - "score": 1.0, - "text": "respectively.The" - }, - { - "category_id": 15, - "poly": [ - 1004.0, - 1197.0, - 1112.0, - 1197.0, - 1112.0, - 1222.0, - 1004.0, - 1222.0 - ], - "score": 0.98, - "text": "-testson" - }, - { - "category_id": 15, - "poly": [ - 1134.0, - 1197.0, - 1200.0, - 1197.0, - 1200.0, - 1222.0, - 1134.0, - 1222.0 - ], - "score": 1.0, - "text": "and" - }, - { - "category_id": 15, - "poly": [ - 1278.0, - 1197.0, - 1380.0, - 1197.0, - 1380.0, - 1222.0, - 1278.0, - 1222.0 - ], - "score": 1.0, - "text": "returned" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1230.0, - 1380.0, - 1230.0, - 1380.0, - 1254.0, - 783.0, - 1254.0 - ], - "score": 0.97, - "text": "significant results at the 0.05 level for both parameters at" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1261.0, - 1379.0, - 1261.0, - 1379.0, - 1286.0, - 783.0, - 1286.0 - ], - "score": 1.0, - "text": "allthreecatchments.Theclimateadjustedzeroflow" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1295.0, - 1377.0, - 1295.0, - 1377.0, - 1319.0, - 783.0, - 1319.0 - ], - "score": 0.98, - "text": "days are shown in Fig. 5. The increases in zero flow days" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1330.0, - 1295.0, - 1330.0, - 1295.0, - 1351.0, - 782.0, - 1351.0 - ], - "score": 1.0, - "text": "aresubstantialwithflowsconfinedtolessthan" - }, - { - "category_id": 15, - "poly": [ - 1351.0, - 1330.0, - 1379.0, - 1330.0, - 1379.0, - 1351.0, - 1351.0, - 1351.0 - ], - "score": 1.0, - "text": "of" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1360.0, - 1106.0, - 1360.0, - 1106.0, - 1387.0, - 783.0, - 1387.0 - ], - "score": 0.99, - "text": "thetimebyyear8 atStewarts" - }, - { - "category_id": 15, - "poly": [ - 1145.0, - 1360.0, - 1245.0, - 1360.0, - 1245.0, - 1387.0, - 1145.0, - 1387.0 - ], - "score": 0.96, - "text": "and Pine" - }, - { - "category_id": 15, - "poly": [ - 1284.0, - 1360.0, - 1378.0, - 1360.0, - 1378.0, - 1387.0, - 1284.0, - 1387.0 - ], - "score": 0.99, - "text": "and year" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1393.0, - 1380.0, - 1393.0, - 1380.0, - 1420.0, - 783.0, - 1420.0 - ], - "score": 0.99, - "text": "11 at Redhill. The latter has changed from an almost" - }, - { - "category_id": 15, - "poly": [ - 779.0, - 1428.0, - 1379.0, - 1428.0, - 1379.0, - 1454.0, - 779.0, - 1454.0 - ], - "score": 0.98, - "text": "permanent to a highly intermittent stream. The curves" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1462.0, - 1379.0, - 1462.0, - 1379.0, - 1486.0, - 782.0, - 1486.0 - ], - "score": 0.96, - "text": "are also in sensible agreement with the flow reductions" - }, - { - "category_id": 15, - "poly": [ - 781.0, - 1493.0, - 882.0, - 1493.0, - 882.0, - 1521.0, - 781.0, - 1521.0 - ], - "score": 1.0, - "text": "in Fig. 4." - }, - { - "category_id": 15, - "poly": [ - 152.0, - 1247.0, - 714.0, - 1247.0, - 714.0, - 1272.0, - 152.0, - 1272.0 - ], - "score": 0.94, - "text": "A further check on the overall model performance is" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1283.0, - 714.0, - 1283.0, - 714.0, - 1304.0, - 119.0, - 1304.0 - ], - "score": 1.0, - "text": "acomparisonwithpublishedresultsofpairedcatchment" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1316.0, - 714.0, - 1316.0, - 714.0, - 1339.0, - 120.0, - 1339.0 - ], - "score": 1.0, - "text": "studies.Thedatathatcanbecomparedwithourresults" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1350.0, - 714.0, - 1350.0, - 714.0, - 1374.0, - 120.0, - 1374.0 - ], - "score": 0.97, - "text": "are presented in Table 5 and can be broadly compared" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1381.0, - 714.0, - 1381.0, - 714.0, - 1406.0, - 119.0, - 1406.0 - ], - "score": 0.97, - "text": "with Fig. 4. These data are reductions in years with near" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1415.0, - 717.0, - 1415.0, - 717.0, - 1440.0, - 118.0, - 1440.0 - ], - "score": 0.98, - "text": "average annual rainfall,and at a time after treatment" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1450.0, - 714.0, - 1450.0, - 714.0, - 1474.0, - 120.0, - 1474.0 - ], - "score": 0.98, - "text": "when maximum changes in streamflow have occurred." - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1483.0, - 714.0, - 1483.0, - 714.0, - 1506.0, - 119.0, - 1506.0 - ], - "score": 1.0, - "text": "Table5alsoincludesestimatesonthetotalandlowflow" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1516.0, - 713.0, - 1516.0, - 713.0, - 1541.0, - 118.0, - 1541.0 - ], - "score": 0.97, - "text": "reductions calculated from this study.Results from Pine" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1552.0, - 716.0, - 1552.0, - 716.0, - 1576.0, - 120.0, - 1576.0 - ], - "score": 0.98, - "text": "Creek and Traralgon Creek are not included in Table 5" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1584.0, - 715.0, - 1584.0, - 715.0, - 1609.0, - 118.0, - 1609.0 - ], - "score": 0.97, - "text": "as these catchments are not paired.Exact comparisons" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1619.0, - 714.0, - 1619.0, - 714.0, - 1643.0, - 120.0, - 1643.0 - ], - "score": 0.98, - "text": "are impossible because of the rainfall variability, and" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1650.0, - 713.0, - 1650.0, - 713.0, - 1678.0, - 117.0, - 1678.0 - ], - "score": 0.96, - "text": "lack of calibration period for Redhill. Despite this," - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1684.0, - 714.0, - 1684.0, - 714.0, - 1709.0, - 118.0, - 1709.0 - ], - "score": 1.0, - "text": "Table5showsthattotalandlowflowreductions" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1720.0, - 714.0, - 1720.0, - 714.0, - 1744.0, - 120.0, - 1744.0 - ], - "score": 0.98, - "text": "estimated from our study are comparable to the results" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1753.0, - 714.0, - 1753.0, - 714.0, - 1776.0, - 119.0, - 1776.0 - ], - "score": 0.98, - "text": "frompairedcatchmentstudies,indicating that our" - }, - { - "category_id": 15, - "poly": [ - 121.0, - 1787.0, - 714.0, - 1787.0, - 714.0, - 1811.0, - 121.0, - 1811.0 - ], - "score": 0.95, - "text": "simple model has successfully removed the rainfall" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1820.0, - 187.0, - 1820.0, - 187.0, - 1846.0, - 120.0, - 1846.0 - ], - "score": 0.95, - "text": "signal." - }, - { - "category_id": 15, - "poly": [ - 781.0, - 1617.0, - 928.0, - 1617.0, - 928.0, - 1645.0, - 781.0, - 1645.0 - ], - "score": 1.0, - "text": "5. Discussion" - }, - { - "category_id": 15, - "poly": [ - 817.0, - 1687.0, - 1378.0, - 1687.0, - 1378.0, - 1712.0, - 817.0, - 1712.0 - ], - "score": 0.97, - "text": "The aims of the project have largely been met. The" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1721.0, - 1377.0, - 1721.0, - 1377.0, - 1745.0, - 782.0, - 1745.0 - ], - "score": 0.97, - "text": "general characterisation of FDCs and adjustment fon" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1754.0, - 1380.0, - 1754.0, - 1380.0, - 1781.0, - 782.0, - 1781.0 - ], - "score": 0.99, - "text": "climate has been very encouraging given the task of" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 1788.0, - 1380.0, - 1788.0, - 1380.0, - 1812.0, - 785.0, - 1812.0 - ], - "score": 0.96, - "text": "fitting our model to 10 flow percentiles, for 10 different" - }, - { - "category_id": 15, - "poly": [ - 781.0, - 1819.0, - 1378.0, - 1819.0, - 1378.0, - 1846.0, - 781.0, - 1846.0 - ], - "score": 0.93, - "text": "catchments (resulting in 1oo model fits) with" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 995.0, - 711.0, - 995.0, - 711.0, - 1019.0, - 118.0, - 1019.0 - ], - "score": 0.98, - "text": "catchments and the lower deciles at Lambrechtsbos B" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1028.0, - 168.0, - 1028.0, - 168.0, - 1056.0, - 117.0, - 1056.0 - ], - "score": 1.0, - "text": "The" - }, - { - "category_id": 15, - "poly": [ - 222.0, - 1028.0, - 710.0, - 1028.0, - 710.0, - 1056.0, - 222.0, - 1056.0 - ], - "score": 0.97, - "text": "from Glendhu 2 appears to be substantially" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1064.0, - 711.0, - 1064.0, - 711.0, - 1088.0, - 118.0, - 1088.0 - ], - "score": 0.98, - "text": "lower than other published data (Fahey and Jackson" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1095.0, - 187.0, - 1095.0, - 187.0, - 1122.0, - 118.0, - 1122.0 - ], - "score": 0.99, - "text": "1997)." - }, - { - "category_id": 15, - "poly": [ - 783.0, - 994.0, - 987.0, - 994.0, - 987.0, - 1020.0, - 783.0, - 1020.0 - ], - "score": 1.0, - "text": "4.5.Zerofowdays" - }, - { - "category_id": 15, - "poly": [ - 1345.0, - 195.0, - 1381.0, - 195.0, - 1381.0, - 219.0, - 1345.0, - 219.0 - ], - "score": 1.0, - "text": "261" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1182.0, - 626.0, - 1182.0, - 626.0, - 1205.0, - 120.0, - 1205.0 - ], - "score": 0.99, - "text": "4.4.Comparisonwithpairedcatchmentstudies" - }, - { - "category_id": 15, - "poly": [ - 469.0, - 197.0, - 1028.0, - 197.0, - 1028.0, - 220.0, - 469.0, - 220.0 - ], - "score": 0.99, - "text": "P.N.J.Laneet al./JournalofHydrology310(2005)253-265" - }, - { - "category_id": 15, - "poly": [ - 127.0, - 696.0, - 1381.0, - 696.0, - 1381.0, - 727.0, - 127.0, - 727.0 - ], - "score": 0.99, - "text": "a Rainfall refers to the rainfall in the year used for comparison of results. The value in brackets refers to the deviation from the mean annual" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 728.0, - 406.0, - 728.0, - 406.0, - 751.0, - 117.0, - 751.0 - ], - "score": 0.97, - "text": "rainfall for the period of record." - }, - { - "category_id": 15, - "poly": [ - 124.0, - 748.0, - 463.0, - 748.0, - 463.0, - 782.0, - 124.0, - 782.0 - ], - "score": 0.99, - "text": "b Total fow reduction calculated by" - }, - { - "category_id": 15, - "poly": [ - 608.0, - 748.0, - 740.0, - 748.0, - 740.0, - 782.0, - 608.0, - 782.0 - ], - "score": 1.0, - "text": "for all deciles." - }, - { - "category_id": 15, - "poly": [ - 126.0, - 777.0, - 457.0, - 777.0, - 457.0, - 808.0, - 126.0, - 808.0 - ], - "score": 0.97, - "text": "c Low fow reduction calculated by" - }, - { - "category_id": 15, - "poly": [ - 602.0, - 777.0, - 772.0, - 777.0, - 772.0, - 808.0, - 602.0, - 808.0 - ], - "score": 0.99, - "text": "for 70, 80, 90 and" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 777.0, - 933.0, - 777.0, - 933.0, - 808.0, - 828.0, - 808.0 - ], - "score": 0.97, - "text": "percentiles." - }, - { - "category_id": 15, - "poly": [ - 126.0, - 803.0, - 374.0, - 803.0, - 374.0, - 839.0, - 126.0, - 839.0 - ], - "score": 0.97, - "text": "d For Cathedral Peak 3 the" - }, - { - "category_id": 15, - "poly": [ - 391.0, - 803.0, - 430.0, - 803.0, - 430.0, - 839.0, - 391.0, - 839.0 - ], - "score": 1.0, - "text": "and" - }, - { - "category_id": 15, - "poly": [ - 449.0, - 803.0, - 639.0, - 803.0, - 639.0, - 839.0, - 449.0, - 839.0 - ], - "score": 1.0, - "text": "values for the 10 and" - }, - { - "category_id": 15, - "poly": [ - 685.0, - 803.0, - 1065.0, - 803.0, - 1065.0, - 839.0, - 685.0, - 839.0 - ], - "score": 0.99, - "text": "percentiles were excluded as the values of" - }, - { - "category_id": 15, - "poly": [ - 1081.0, - 803.0, - 1380.0, - 803.0, - 1380.0, - 839.0, - 1081.0, - 839.0 - ], - "score": 0.99, - "text": "were lower then the values of the" - }, - { - "category_id": 15, - "poly": [ - 116.0, - 836.0, - 309.0, - 836.0, - 309.0, - 861.0, - 116.0, - 861.0 - ], - "score": 0.98, - "text": "30-100th percentiles." - } - ], - "page_info": { - "page_no": 8, - "height": 2064, - "width": 1512 - } - }, - { - "layout_dets": [ - { - "category_id": 4, - "poly": [ - 131.2040557861328, - 1337.5989990234375, - 733.35986328125, - 1337.5989990234375, - 733.35986328125, - 1417.8536376953125, - 131.2040557861328, - 1417.8536376953125 - ], - "score": 0.9999973177909851 - }, - { - "category_id": 1, - "poly": [ - 131.22463989257812, - 1444.04736328125, - 731.0685424804688, - 1444.04736328125, - 731.0685424804688, - 1847.82861328125, - 131.22463989257812, - 1847.82861328125 - ], - "score": 0.9999927282333374 - }, - { - "category_id": 1, - "poly": [ - 794.774169921875, - 255.46112060546875, - 1396.0106201171875, - 255.46112060546875, - 1396.0106201171875, - 1082.3992919921875, - 794.774169921875, - 1082.3992919921875 - ], - "score": 0.9999898672103882 - }, - { - "category_id": 3, - "poly": [ - 134.4781036376953, - 257.3968200683594, - 736.1229248046875, - 257.3968200683594, - 736.1229248046875, - 1314.7186279296875, - 134.4781036376953, - 1314.7186279296875 - ], - "score": 0.9999856948852539 - }, - { - "category_id": 2, - "poly": [ - 131.43182373046875, - 196.0782012939453, - 165.26609802246094, - 196.0782012939453, - 165.26609802246094, - 215.07960510253906, - 131.43182373046875, - 215.07960510253906 - ], - "score": 0.9999679923057556 - }, - { - "category_id": 1, - "poly": [ - 795.1036376953125, - 1085.7911376953125, - 1395.2923583984375, - 1085.7911376953125, - 1395.2923583984375, - 1847.192138671875, - 795.1036376953125, - 1847.192138671875 - ], - "score": 0.9999593496322632 - }, - { - "category_id": 2, - "poly": [ - 480.6620178222656, - 195.42437744140625, - 1044.6075439453125, - 195.42437744140625, - 1044.6075439453125, - 218.66488647460938, - 480.6620178222656, - 218.66488647460938 - ], - "score": 0.9999507665634155 - }, - { - "category_id": 13, - "poly": [ - 1045, - 452, - 1098, - 452, - 1098, - 482, - 1045, - 482 - ], - "score": 0.87, - "latex": "27\\%" - }, - { - "category_id": 15, - "poly": [ - 130.0, - 1341.0, - 729.0, - 1341.0, - 729.0, - 1364.0, - 130.0, - 1364.0 - ], - "score": 0.96, - "text": "Fig.5. Number of zero flow days for average rainfall following" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1369.0, - 727.0, - 1369.0, - 727.0, - 1388.0, - 132.0, - 1388.0 - ], - "score": 0.99, - "text": "afforestationforStewartsCreek5,RedhillandPineCreek." - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1397.0, - 218.0, - 1397.0, - 218.0, - 1416.0, - 131.0, - 1416.0 - ], - "score": 0.96, - "text": "Australia." - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1447.0, - 727.0, - 1447.0, - 727.0, - 1476.0, - 132.0, - 1476.0 - ], - "score": 0.99, - "text": "substantially varying spatial scales, soils and geology," - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1483.0, - 727.0, - 1483.0, - 727.0, - 1506.0, - 133.0, - 1506.0 - ], - "score": 1.0, - "text": "speciesplantedandclimaticenvironments.Although" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1516.0, - 727.0, - 1516.0, - 727.0, - 1539.0, - 132.0, - 1539.0 - ], - "score": 0.96, - "text": "there were poor resultsfor individual deciles,the FDCs" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1551.0, - 728.0, - 1551.0, - 728.0, - 1575.0, - 133.0, - 1575.0 - ], - "score": 0.96, - "text": "at eight of the10 catchments were adequatelydescribed" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1583.0, - 729.0, - 1583.0, - 729.0, - 1607.0, - 131.0, - 1607.0 - ], - "score": 0.99, - "text": "by Eq. (2). The results of the statistical tests in which the" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1618.0, - 727.0, - 1618.0, - 727.0, - 1642.0, - 132.0, - 1642.0 - ], - "score": 0.98, - "text": "rainfall term was significant for most deciles demon-" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1651.0, - 727.0, - 1651.0, - 727.0, - 1678.0, - 133.0, - 1678.0 - ], - "score": 0.98, - "text": "strated the model structure was appropriate for adjusting" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1685.0, - 728.0, - 1685.0, - 728.0, - 1709.0, - 132.0, - 1709.0 - ], - "score": 0.95, - "text": "the FDCs for climatic (rainfall) variability.The" - }, - { - "category_id": 15, - "poly": [ - 134.0, - 1720.0, - 728.0, - 1720.0, - 728.0, - 1744.0, - 134.0, - 1744.0 - ], - "score": 0.96, - "text": "comparisons of our results with published paired" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1752.0, - 728.0, - 1752.0, - 728.0, - 1777.0, - 131.0, - 1777.0 - ], - "score": 0.97, - "text": "catchmentanalyses are satisfactory,althoughthe" - }, - { - "category_id": 15, - "poly": [ - 134.0, - 1787.0, - 729.0, - 1787.0, - 729.0, - 1811.0, - 134.0, - 1811.0 - ], - "score": 0.97, - "text": "different methodologies make direct comparisons of" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1820.0, - 730.0, - 1820.0, - 730.0, - 1844.0, - 133.0, - 1844.0 - ], - "score": 0.98, - "text": "deciles withtotalflowuncertain.Lowflows at" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 259.0, - 1390.0, - 259.0, - 1390.0, - 282.0, - 796.0, - 282.0 - ], - "score": 1.0, - "text": "LambrechtsbosBappeartobeover-estimatedbyour" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 294.0, - 1390.0, - 294.0, - 1390.0, - 317.0, - 797.0, - 317.0 - ], - "score": 0.96, - "text": "model, which is unsurprising as the model fit was poor." - }, - { - "category_id": 15, - "poly": [ - 798.0, - 326.0, - 1392.0, - 326.0, - 1392.0, - 350.0, - 798.0, - 350.0 - ], - "score": 0.99, - "text": "The remaining four South African catchments, and also" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 359.0, - 1392.0, - 359.0, - 1392.0, - 383.0, - 796.0, - 383.0 - ], - "score": 0.97, - "text": "Redhill and Stewarts Creek are in good agreement with" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 391.0, - 1395.0, - 391.0, - 1395.0, - 418.0, - 797.0, - 418.0 - ], - "score": 1.0, - "text": "the published values, particularly when the deviation of" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 426.0, - 1392.0, - 426.0, - 1392.0, - 450.0, - 797.0, - 450.0 - ], - "score": 0.97, - "text": "average rainfall is considered. Glendhu 2 reductions are" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 459.0, - 1044.0, - 459.0, - 1044.0, - 483.0, - 797.0, - 483.0 - ], - "score": 1.0, - "text": "closetothereported" - }, - { - "category_id": 15, - "poly": [ - 1099.0, - 459.0, - 1392.0, - 459.0, - 1392.0, - 483.0, - 1099.0, - 483.0 - ], - "score": 0.95, - "text": ",but our model produces" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 493.0, - 1390.0, - 493.0, - 1390.0, - 516.0, - 796.0, - 516.0 - ], - "score": 0.95, - "text": "a heavier impact on thelower flows. Overall, it appears" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 525.0, - 1393.0, - 525.0, - 1393.0, - 548.0, - 796.0, - 548.0 - ], - "score": 1.0, - "text": "therearenosignificantdiscrepancieswiththepublished" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 559.0, - 1391.0, - 559.0, - 1391.0, - 583.0, - 796.0, - 583.0 - ], - "score": 0.98, - "text": "paired catchment analyses.We suggest our technique" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 593.0, - 1393.0, - 593.0, - 1393.0, - 615.0, - 796.0, - 615.0 - ], - "score": 1.0, - "text": "representsanalternativetothepaired-catchmentmethod" - }, - { - "category_id": 15, - "poly": [ - 793.0, - 623.0, - 1392.0, - 623.0, - 1392.0, - 651.0, - 793.0, - 651.0 - ], - "score": 0.98, - "text": "for assessing hydrologic response to vegetation treat-" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 659.0, - 1393.0, - 659.0, - 1393.0, - 679.0, - 795.0, - 679.0 - ], - "score": 1.0, - "text": "ment,wherepaireddataareunavailable.Themethod" - }, - { - "category_id": 15, - "poly": [ - 794.0, - 690.0, - 1392.0, - 690.0, - 1392.0, - 713.0, - 794.0, - 713.0 - ], - "score": 0.95, - "text": "has not yet resultedin a predictive model,but has" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 725.0, - 1392.0, - 725.0, - 1392.0, - 748.0, - 796.0, - 748.0 - ], - "score": 0.98, - "text": "increasedourknowledgeof afforestationimpacts.This" - }, - { - "category_id": 15, - "poly": [ - 794.0, - 756.0, - 1396.0, - 756.0, - 1396.0, - 783.0, - 794.0, - 783.0 - ], - "score": 0.98, - "text": "is a valuable outcome given the contentious issue of" - }, - { - "category_id": 15, - "poly": [ - 798.0, - 789.0, - 1392.0, - 789.0, - 1392.0, - 813.0, - 798.0, - 813.0 - ], - "score": 0.97, - "text": "afforestation in Australia and other countries, and a" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 824.0, - 1393.0, - 824.0, - 1393.0, - 846.0, - 796.0, - 846.0 - ], - "score": 1.0, - "text": "currentpaucityofdataoninter-annualflows.Itshould" - }, - { - "category_id": 15, - "poly": [ - 793.0, - 855.0, - 1391.0, - 855.0, - 1391.0, - 884.0, - 793.0, - 884.0 - ], - "score": 0.98, - "text": "be noted that nine of the 10 catchment were pine species." - }, - { - "category_id": 15, - "poly": [ - 794.0, - 889.0, - 1394.0, - 889.0, - 1394.0, - 914.0, - 794.0, - 914.0 - ], - "score": 1.0, - "text": "Moredataisrequiredtocomparetheimpactof" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 924.0, - 1391.0, - 924.0, - 1391.0, - 948.0, - 796.0, - 948.0 - ], - "score": 0.99, - "text": "hardwood species, particularly eucalypts, on the FDC." - }, - { - "category_id": 15, - "poly": [ - 798.0, - 956.0, - 1391.0, - 956.0, - 1391.0, - 979.0, - 798.0, - 979.0 - ], - "score": 0.98, - "text": "Unfortunately thesedata arecurrentlyscarce.Thereare" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 988.0, - 1392.0, - 988.0, - 1392.0, - 1014.0, - 796.0, - 1014.0 - ], - "score": 0.97, - "text": "substantial data on the physiological controls of eucalypt" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1024.0, - 1393.0, - 1024.0, - 1393.0, - 1047.0, - 797.0, - 1047.0 - ], - "score": 0.95, - "text": "water use(seeWhitehead andBeadle,2004),butnot at" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1058.0, - 1010.0, - 1058.0, - 1010.0, - 1079.0, - 797.0, - 1079.0 - ], - "score": 1.0, - "text": "thecatchmentscale" - }, - { - "category_id": 15, - "poly": [ - 129.0, - 195.0, - 167.0, - 195.0, - 167.0, - 219.0, - 129.0, - 219.0 - ], - "score": 1.0, - "text": "262" - }, - { - "category_id": 15, - "poly": [ - 830.0, - 1088.0, - 1393.0, - 1088.0, - 1393.0, - 1113.0, - 830.0, - 1113.0 - ], - "score": 0.99, - "text": "Themodelfitsshowwehavequantifiedthenet" - }, - { - "category_id": 15, - "poly": [ - 798.0, - 1123.0, - 1390.0, - 1123.0, - 1390.0, - 1147.0, - 798.0, - 1147.0 - ], - "score": 0.99, - "text": "impactofafforestationforthemajorityoftheflow" - }, - { - "category_id": 15, - "poly": [ - 794.0, - 1156.0, - 1393.0, - 1156.0, - 1393.0, - 1180.0, - 794.0, - 1180.0 - ], - "score": 0.99, - "text": "percentiles in the 10 catchments. Results for the 10-50th" - }, - { - "category_id": 15, - "poly": [ - 794.0, - 1190.0, - 1394.0, - 1190.0, - 1394.0, - 1215.0, - 794.0, - 1215.0 - ], - "score": 0.99, - "text": "percentiles wereparticularlyencouraging.Itisnot" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1224.0, - 1391.0, - 1224.0, - 1391.0, - 1245.0, - 796.0, - 1245.0 - ], - "score": 0.99, - "text": "surprisingthattherelationshipbetweenrainfallandflow" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1254.0, - 1391.0, - 1254.0, - 1391.0, - 1279.0, - 796.0, - 1279.0 - ], - "score": 0.98, - "text": "diminishes at lower flows (60-100th percentile),where" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1289.0, - 1392.0, - 1289.0, - 1392.0, - 1312.0, - 796.0, - 1312.0 - ], - "score": 1.0, - "text": "seasonalstorageeffectsandrainfalldistributionbecome" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1323.0, - 1393.0, - 1323.0, - 1393.0, - 1345.0, - 796.0, - 1345.0 - ], - "score": 0.99, - "text": "moreimportantdriversforrunoffgeneration.The" - }, - { - "category_id": 15, - "poly": [ - 794.0, - 1355.0, - 1393.0, - 1355.0, - 1393.0, - 1378.0, - 794.0, - 1378.0 - ], - "score": 0.99, - "text": "poorestmodelfitsweregainedforLambrechtsbosA" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1388.0, - 1392.0, - 1388.0, - 1392.0, - 1411.0, - 797.0, - 1411.0 - ], - "score": 0.99, - "text": "andB.ThelikelyreasonatLambrechtsbosAisan" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1421.0, - 1393.0, - 1421.0, - 1393.0, - 1444.0, - 797.0, - 1444.0 - ], - "score": 1.0, - "text": "observedannualdecreaseinstandwateruseafter12" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 1456.0, - 1392.0, - 1456.0, - 1392.0, - 1477.0, - 795.0, - 1477.0 - ], - "score": 0.98, - "text": "years(Scottetal.,2000)whichdoesnotconformtothe" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1489.0, - 1394.0, - 1489.0, - 1394.0, - 1511.0, - 797.0, - 1511.0 - ], - "score": 0.99, - "text": "sigmoidalformofourmodeloverthefull19yearsof" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1521.0, - 1393.0, - 1521.0, - 1393.0, - 1544.0, - 796.0, - 1544.0 - ], - "score": 0.97, - "text": "record.Thefailureof themodel tofit thelower flows at" - }, - { - "category_id": 15, - "poly": [ - 794.0, - 1553.0, - 1393.0, - 1553.0, - 1393.0, - 1578.0, - 794.0, - 1578.0 - ], - "score": 0.97, - "text": "LambrechtsbosB is not as explicable.A decrease in" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1588.0, - 1392.0, - 1588.0, - 1392.0, - 1611.0, - 797.0, - 1611.0 - ], - "score": 1.0, - "text": "standwateruseinthiscatchmentisobservedasthe" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1622.0, - 1392.0, - 1622.0, - 1392.0, - 1645.0, - 796.0, - 1645.0 - ], - "score": 0.96, - "text": "plantation ages,butdoesnot occur during thefirst 20" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 1656.0, - 1391.0, - 1656.0, - 1391.0, - 1677.0, - 795.0, - 1677.0 - ], - "score": 0.98, - "text": "yearsaftertreatment(Scottetal.,2000).Otherdatafrom" - }, - { - "category_id": 15, - "poly": [ - 796.0, - 1685.0, - 1392.0, - 1685.0, - 1392.0, - 1711.0, - 796.0, - 1711.0 - ], - "score": 0.92, - "text": "South Africa (Scott et al.,2000)indicate there are" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1718.0, - 1389.0, - 1718.0, - 1389.0, - 1745.0, - 797.0, - 1745.0 - ], - "score": 0.98, - "text": "diminished flow reductions as plantations age, but again" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 1754.0, - 1393.0, - 1754.0, - 1393.0, - 1779.0, - 795.0, - 1779.0 - ], - "score": 0.97, - "text": "generally after 20 years.Our use of an asymptotic curve" - }, - { - "category_id": 15, - "poly": [ - 797.0, - 1788.0, - 1393.0, - 1788.0, - 1393.0, - 1810.0, - 797.0, - 1810.0 - ], - "score": 1.0, - "text": "assumesanewequilibriumofstandwateruseis" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 1818.0, - 1390.0, - 1818.0, - 1390.0, - 1846.0, - 795.0, - 1846.0 - ], - "score": 0.98, - "text": "reached. The results of the model fitting generally justify" - }, - { - "category_id": 15, - "poly": [ - 481.0, - 196.0, - 1042.0, - 196.0, - 1042.0, - 220.0, - 481.0, - 220.0 - ], - "score": 0.96, - "text": "P.N.J.Lane et al./ Journal of Hydrology 310(2005) 253-265" - } - ], - "page_info": { - "page_no": 9, - "height": 2064, - "width": 1512 - } - }, - { - "layout_dets": [ - { - "category_id": 1, - "poly": [ - 117.55418395996094, - 251.62586975097656, - 717.4569702148438, - 251.62586975097656, - 717.4569702148438, - 582.5938720703125, - 117.55418395996094, - 582.5938720703125 - ], - "score": 0.9999960660934448 - }, - { - "category_id": 1, - "poly": [ - 781.7598266601562, - 253.2869873046875, - 1382.113525390625, - 253.2869873046875, - 1382.113525390625, - 749.5455322265625, - 781.7598266601562, - 749.5455322265625 - ], - "score": 0.9999920129776001 - }, - { - "category_id": 1, - "poly": [ - 780.9730224609375, - 1416.1875, - 1381.69287109375, - 1416.1875, - 1381.69287109375, - 1847.7166748046875, - 780.9730224609375, - 1847.7166748046875 - ], - "score": 0.9999914169311523 - }, - { - "category_id": 1, - "poly": [ - 117.01396942138672, - 1416.33447265625, - 717.9161987304688, - 1416.33447265625, - 717.9161987304688, - 1848.1839599609375, - 117.01396942138672, - 1848.1839599609375 - ], - "score": 0.9999870657920837 - }, - { - "category_id": 1, - "poly": [ - 781.1908569335938, - 752.2108154296875, - 1380.9827880859375, - 752.2108154296875, - 1380.9827880859375, - 1280.6949462890625, - 781.1908569335938, - 1280.6949462890625 - ], - "score": 0.9999850988388062 - }, - { - "category_id": 1, - "poly": [ - 117.43836975097656, - 885.7890014648438, - 718.2291870117188, - 885.7890014648438, - 718.2291870117188, - 1415.08984375, - 117.43836975097656, - 1415.08984375 - ], - "score": 0.9999825358390808 - }, - { - "category_id": 1, - "poly": [ - 118.48710632324219, - 587.1766357421875, - 716.4562377929688, - 587.1766357421875, - 716.4562377929688, - 883.3397216796875, - 118.48710632324219, - 883.3397216796875 - ], - "score": 0.9999718070030212 - }, - { - "category_id": 2, - "poly": [ - 1346.4129638671875, - 196.0000762939453, - 1381.5977783203125, - 196.0000762939453, - 1381.5977783203125, - 216.04489135742188, - 1346.4129638671875, - 216.04489135742188 - ], - "score": 0.9999490976333618 - }, - { - "category_id": 0, - "poly": [ - 781.2360229492188, - 1351.0572509765625, - 1112.8250732421875, - 1351.0572509765625, - 1112.8250732421875, - 1380.2672119140625, - 781.2360229492188, - 1380.2672119140625 - ], - "score": 0.9996971487998962 - }, - { - "category_id": 2, - "poly": [ - 466.37176513671875, - 195.2890167236328, - 1031.220458984375, - 195.2890167236328, - 1031.220458984375, - 219.7666778564453, - 466.37176513671875, - 219.7666778564453 - ], - "score": 0.9995570182800293 - }, - { - "category_id": 13, - "poly": [ - 510, - 1017, - 563, - 1017, - 563, - 1047, - 510, - 1047 - ], - "score": 0.89, - "latex": "85\\%" - }, - { - "category_id": 13, - "poly": [ - 1121, - 321, - 1143, - 321, - 1143, - 347, - 1121, - 347 - ], - "score": 0.55, - "latex": "E." - }, - { - "category_id": 13, - "poly": [ - 433, - 354, - 456, - 354, - 456, - 380, - 433, - 380 - ], - "score": 0.46, - "latex": "E." - }, - { - "category_id": 13, - "poly": [ - 578, - 1018, - 683, - 1018, - 683, - 1048, - 578, - 1048 - ], - "score": 0.39, - "latex": "1260\\,\\mathrm{mm}" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 257.0, - 713.0, - 257.0, - 713.0, - 283.0, - 120.0, - 283.0 - ], - "score": 0.98, - "text": "this assumption for the length of commercial plantation" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 293.0, - 711.0, - 293.0, - 711.0, - 317.0, - 119.0, - 317.0 - ], - "score": 0.97, - "text": "growth (up to 20 years) considered here. The physio-" - }, - { - "category_id": 15, - "poly": [ - 121.0, - 325.0, - 714.0, - 325.0, - 714.0, - 349.0, - 121.0, - 349.0 - ], - "score": 0.97, - "text": "logical relationshipbetween stand age andwaterusefor" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 360.0, - 432.0, - 360.0, - 432.0, - 383.0, - 119.0, - 383.0 - ], - "score": 1.0, - "text": "plantationspeciesotherthan" - }, - { - "category_id": 15, - "poly": [ - 457.0, - 360.0, - 715.0, - 360.0, - 715.0, - 383.0, - 457.0, - 383.0 - ], - "score": 1.0, - "text": "regnanshavenotbeen" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 388.0, - 714.0, - 388.0, - 714.0, - 419.0, - 118.0, - 419.0 - ], - "score": 0.99, - "text": "thoroughly investigated, although Cornish and Vertessy" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 422.0, - 716.0, - 422.0, - 716.0, - 454.0, - 117.0, - 454.0 - ], - "score": 0.98, - "text": "(2001) and Roberts et al. (2001) have shown young" - }, - { - "category_id": 15, - "poly": [ - 121.0, - 461.0, - 714.0, - 461.0, - 714.0, - 482.0, - 121.0, - 482.0 - ], - "score": 1.0, - "text": "mixedspecieseucalyptforestsmayusemorewaterthan" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 490.0, - 714.0, - 490.0, - 714.0, - 517.0, - 118.0, - 517.0 - ], - "score": 0.99, - "text": "mature stands, and Putahena and Cordery (2000) suggest" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 525.0, - 714.0, - 525.0, - 714.0, - 549.0, - 120.0, - 549.0 - ], - "score": 1.0, - "text": "maximumPinusradiatawaterusemayhavebeen" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 559.0, - 654.0, - 559.0, - 654.0, - 580.0, - 120.0, - 580.0 - ], - "score": 0.99, - "text": "reachedafter12years,withasubsequentdecline." - }, - { - "category_id": 15, - "poly": [ - 819.0, - 259.0, - 1376.0, - 259.0, - 1376.0, - 282.0, - 819.0, - 282.0 - ], - "score": 0.99, - "text": "TraralgonCreekwouldbeexpected tohaveboththe" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 292.0, - 1377.0, - 292.0, - 1377.0, - 317.0, - 782.0, - 317.0 - ], - "score": 0.97, - "text": "most subdued flow reductions and longer response time" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 325.0, - 1120.0, - 325.0, - 1120.0, - 351.0, - 782.0, - 351.0 - ], - "score": 0.93, - "text": "because of the large area of" - }, - { - "category_id": 15, - "poly": [ - 1144.0, - 325.0, - 1381.0, - 325.0, - 1381.0, - 351.0, - 1144.0, - 351.0 - ], - "score": 0.98, - "text": "regnans forest,and" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 359.0, - 1380.0, - 359.0, - 1380.0, - 380.0, - 784.0, - 380.0 - ], - "score": 1.0, - "text": "uncertainvegetationrecord.Peakstandwateruseofa" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 389.0, - 1377.0, - 389.0, - 1377.0, - 417.0, - 782.0, - 417.0 - ], - "score": 0.96, - "text": "natural stand of this species is around 30 years." - }, - { - "category_id": 15, - "poly": [ - 786.0, - 425.0, - 1377.0, - 425.0, - 1377.0, - 448.0, - 786.0, - 448.0 - ], - "score": 0.98, - "text": "Additionallyinthislarge,‘realworld'catchment" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 458.0, - 1379.0, - 458.0, - 1379.0, - 483.0, - 783.0, - 483.0 - ], - "score": 1.0, - "text": "thereisacontinuouscycleofforestmanagement" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 489.0, - 1380.0, - 489.0, - 1380.0, - 517.0, - 783.0, - 517.0 - ], - "score": 0.99, - "text": "which includes harvesting. A mixture of pasture and" - }, - { - "category_id": 15, - "poly": [ - 785.0, - 522.0, - 1379.0, - 522.0, - 1379.0, - 551.0, - 785.0, - 551.0 - ], - "score": 0.98, - "text": "'scrub', which could represent significant understorey" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 558.0, - 1377.0, - 558.0, - 1377.0, - 580.0, - 784.0, - 580.0 - ], - "score": 0.99, - "text": "stands,werereplacedbyplantationspecies.Conse-" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 591.0, - 1382.0, - 591.0, - 1382.0, - 617.0, - 783.0, - 617.0 - ], - "score": 0.99, - "text": "quently the difference between pre and post treatment" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 625.0, - 1381.0, - 625.0, - 1381.0, - 648.0, - 783.0, - 648.0 - ], - "score": 0.96, - "text": "ETmaybeless than atother catchments.Reductions of" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 657.0, - 1377.0, - 657.0, - 1377.0, - 682.0, - 784.0, - 682.0 - ], - "score": 0.96, - "text": "this magnitude could be more readily expected in larger," - }, - { - "category_id": 15, - "poly": [ - 783.0, - 689.0, - 1378.0, - 689.0, - 1378.0, - 715.0, - 783.0, - 715.0 - ], - "score": 0.97, - "text": "multi land use catchments than the very high impacts" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 723.0, - 1291.0, - 723.0, - 1291.0, - 747.0, - 784.0, - 747.0 - ], - "score": 0.98, - "text": "estimated at the smaller Australian catchments." - }, - { - "category_id": 15, - "poly": [ - 818.0, - 1421.0, - 1380.0, - 1421.0, - 1380.0, - 1449.0, - 818.0, - 1449.0 - ], - "score": 0.97, - "text": "This project sought to (i) develop a method to remove" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1455.0, - 1377.0, - 1455.0, - 1377.0, - 1479.0, - 783.0, - 1479.0 - ], - "score": 0.96, - "text": "the climate signal from streamflow records to identify" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1489.0, - 1379.0, - 1489.0, - 1379.0, - 1512.0, - 784.0, - 1512.0 - ], - "score": 0.99, - "text": "theimpactofvegetationonflowfromafforested" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1522.0, - 1378.0, - 1522.0, - 1378.0, - 1546.0, - 784.0, - 1546.0 - ], - "score": 0.97, - "text": "catchments,and (i) quantify this impact on the flow" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1554.0, - 1380.0, - 1554.0, - 1380.0, - 1581.0, - 783.0, - 1581.0 - ], - "score": 0.96, - "text": "duration curve. A simple model was proposed that" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1588.0, - 1380.0, - 1588.0, - 1380.0, - 1613.0, - 782.0, - 1613.0 - ], - "score": 0.97, - "text": "considered the age of plantation and the annual rainfall" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1623.0, - 1378.0, - 1623.0, - 1378.0, - 1646.0, - 784.0, - 1646.0 - ], - "score": 0.98, - "text": "tobetheprincipal driversfor evapotranspiration.This" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1655.0, - 1378.0, - 1655.0, - 1378.0, - 1677.0, - 784.0, - 1677.0 - ], - "score": 0.99, - "text": "modelwasfittedtotheobserveddecilesoftheFDC,and" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1688.0, - 1378.0, - 1688.0, - 1378.0, - 1712.0, - 784.0, - 1712.0 - ], - "score": 0.97, - "text": "the climate signal was then removed from the stream-" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1718.0, - 1380.0, - 1718.0, - 1380.0, - 1746.0, - 782.0, - 1746.0 - ], - "score": 0.98, - "text": "flow records by adjusting the FDC for average rainfall" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1755.0, - 1378.0, - 1755.0, - 1378.0, - 1777.0, - 783.0, - 1777.0 - ], - "score": 1.0, - "text": "overtheperiodofrecord.Themodelwastestedand" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1787.0, - 1377.0, - 1787.0, - 1377.0, - 1811.0, - 784.0, - 1811.0 - ], - "score": 0.97, - "text": "applied to 10 afforested catchments.We successfully" - }, - { - "category_id": 15, - "poly": [ - 782.0, - 1818.0, - 1379.0, - 1818.0, - 1379.0, - 1845.0, - 782.0, - 1845.0 - ], - "score": 0.96, - "text": "fitted our model to catchments with varying spatial" - }, - { - "category_id": 15, - "poly": [ - 154.0, - 1422.0, - 713.0, - 1422.0, - 713.0, - 1448.0, - 154.0, - 1448.0 - ], - "score": 0.98, - "text": "The response groups may be in part explained by the" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1457.0, - 714.0, - 1457.0, - 714.0, - 1478.0, - 119.0, - 1478.0 - ], - "score": 1.0, - "text": "storagecharacteristicsofthecatchments.Accurate" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1489.0, - 714.0, - 1489.0, - 714.0, - 1512.0, - 118.0, - 1512.0 - ], - "score": 0.99, - "text": "measuresofstoragearenotavailablefrom theliterature," - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1521.0, - 715.0, - 1521.0, - 715.0, - 1544.0, - 119.0, - 1544.0 - ], - "score": 0.97, - "text": "but thesoil depths and thebaseflowindex(Table1)both" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1555.0, - 714.0, - 1555.0, - 714.0, - 1577.0, - 120.0, - 1577.0 - ], - "score": 1.0, - "text": "showthethreesoutheasternAustraliancatchmentswith" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1589.0, - 715.0, - 1589.0, - 715.0, - 1612.0, - 120.0, - 1612.0 - ], - "score": 1.0, - "text": "thegreatestreductionarelikelytohavethelowest" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1622.0, - 712.0, - 1622.0, - 712.0, - 1646.0, - 120.0, - 1646.0 - ], - "score": 0.99, - "text": "storage capacity. The greater flow reductions, particu-" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1653.0, - 714.0, - 1653.0, - 714.0, - 1679.0, - 119.0, - 1679.0 - ], - "score": 0.95, - "text": "larly for low flows,could be expected under these" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1687.0, - 714.0, - 1687.0, - 714.0, - 1711.0, - 118.0, - 1711.0 - ], - "score": 0.99, - "text": "conditions. Inclusion of a storage term in the model is an" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1719.0, - 715.0, - 1719.0, - 715.0, - 1746.0, - 120.0, - 1746.0 - ], - "score": 0.99, - "text": "obvious option for improving the analysis. However the" - }, - { - "category_id": 15, - "poly": [ - 121.0, - 1755.0, - 716.0, - 1755.0, - 716.0, - 1779.0, - 121.0, - 1779.0 - ], - "score": 0.96, - "text": "addition of extra parameters would be at the cost of" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1789.0, - 712.0, - 1789.0, - 712.0, - 1812.0, - 120.0, - 1812.0 - ], - "score": 0.97, - "text": "maintaining model simplicity,particularly as character" - }, - { - "category_id": 15, - "poly": [ - 120.0, - 1821.0, - 517.0, - 1821.0, - 517.0, - 1847.0, - 120.0, - 1847.0 - ], - "score": 0.99, - "text": "ising a transient storage is not trivial." - }, - { - "category_id": 15, - "poly": [ - 818.0, - 758.0, - 1376.0, - 758.0, - 1376.0, - 781.0, - 818.0, - 781.0 - ], - "score": 1.0, - "text": "Theanalysisofzeroflowdayswassuccessful" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 790.0, - 1378.0, - 790.0, - 1378.0, - 815.0, - 784.0, - 815.0 - ], - "score": 0.98, - "text": "demonstrating that theimpact onflowintermittence can" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 824.0, - 1377.0, - 824.0, - 1377.0, - 847.0, - 783.0, - 847.0 - ], - "score": 0.99, - "text": "beevaluatedwithoutof theentireFDC.Thiswashelpful" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 857.0, - 1379.0, - 857.0, - 1379.0, - 881.0, - 784.0, - 881.0 - ], - "score": 0.99, - "text": "as the change in the higher percentiles (low flows) could" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 890.0, - 1378.0, - 890.0, - 1378.0, - 912.0, - 783.0, - 912.0 - ], - "score": 1.0, - "text": "notalwaysbemodelled.Theresultsforthethree" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 924.0, - 1378.0, - 924.0, - 1378.0, - 945.0, - 784.0, - 945.0 - ], - "score": 1.0, - "text": "catchmentsanalysedarearatherstarkindicationofthe" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 958.0, - 1378.0, - 958.0, - 1378.0, - 980.0, - 783.0, - 980.0 - ], - "score": 1.0, - "text": "potentialforhighlyincreasedzeroflowperiodsinsmall" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 989.0, - 1377.0, - 989.0, - 1377.0, - 1013.0, - 783.0, - 1013.0 - ], - "score": 0.98, - "text": "catchments, at least in south-eastern Australia. However." - }, - { - "category_id": 15, - "poly": [ - 781.0, - 1022.0, - 1381.0, - 1022.0, - 1381.0, - 1046.0, - 781.0, - 1046.0 - ], - "score": 0.99, - "text": "it should be noted these curves probably represent a" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1056.0, - 1379.0, - 1056.0, - 1379.0, - 1079.0, - 783.0, - 1079.0 - ], - "score": 1.0, - "text": "maximumresponseastheyareallderivedfromsmall" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1090.0, - 1376.0, - 1090.0, - 1376.0, - 1114.0, - 784.0, - 1114.0 - ], - "score": 0.96, - "text": "catchments with smallstorage capacities and large" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1123.0, - 1379.0, - 1123.0, - 1379.0, - 1146.0, - 783.0, - 1146.0 - ], - "score": 0.99, - "text": "percentagesof afforestation.Thismethodcouldbeused" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1156.0, - 1377.0, - 1156.0, - 1377.0, - 1180.0, - 783.0, - 1180.0 - ], - "score": 0.95, - "text": "to determine change in the occurrence of any given flow" - }, - { - "category_id": 15, - "poly": [ - 781.0, - 1188.0, - 1379.0, - 1188.0, - 1379.0, - 1213.0, - 781.0, - 1213.0 - ], - "score": 1.0, - "text": "inresponsetoafforestation;e.g.todeterminethe" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1219.0, - 1379.0, - 1219.0, - 1379.0, - 1249.0, - 783.0, - 1249.0 - ], - "score": 0.94, - "text": "likelihood of maintaining a reservoir storage or an" - }, - { - "category_id": 15, - "poly": [ - 783.0, - 1255.0, - 1376.0, - 1255.0, - 1376.0, - 1280.0, - 783.0, - 1280.0 - ], - "score": 0.98, - "text": "environmentalflowthatrequires anaveragecriticalflow." - }, - { - "category_id": 15, - "poly": [ - 154.0, - 889.0, - 714.0, - 889.0, - 714.0, - 914.0, - 154.0, - 914.0 - ], - "score": 0.99, - "text": "Themagnitudeof theresponsewithinGroup2varies" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 924.0, - 715.0, - 924.0, - 715.0, - 946.0, - 118.0, - 946.0 - ], - "score": 0.99, - "text": "considerably,withgreaterreductioninflowsinthetwo" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 955.0, - 714.0, - 955.0, - 714.0, - 980.0, - 118.0, - 980.0 - ], - "score": 0.98, - "text": "Cathedral Peak catchments,and Lambrechtsbos B." - }, - { - "category_id": 15, - "poly": [ - 119.0, - 991.0, - 714.0, - 991.0, - 714.0, - 1014.0, - 119.0, - 1014.0 - ], - "score": 1.0, - "text": "Potentialevaporationisinphasewithrainfallatthe" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1024.0, - 509.0, - 1024.0, - 509.0, - 1047.0, - 119.0, - 1047.0 - ], - "score": 1.0, - "text": "CathedralPeaksitesastheyreceive" - }, - { - "category_id": 15, - "poly": [ - 684.0, - 1024.0, - 715.0, - 1024.0, - 715.0, - 1047.0, - 684.0, - 1047.0 - ], - "score": 0.81, - "text": "on" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1056.0, - 716.0, - 1056.0, - 716.0, - 1079.0, - 119.0, - 1079.0 - ], - "score": 0.98, - "text": "average)of theirrainfallinsummer.Theconjunction of" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1089.0, - 713.0, - 1089.0, - 713.0, - 1116.0, - 118.0, - 1116.0 - ], - "score": 0.98, - "text": "peak demand and plant water availability may explain" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1120.0, - 715.0, - 1120.0, - 715.0, - 1148.0, - 118.0, - 1148.0 - ], - "score": 0.98, - "text": "the high reductions relative to the remaining catchments" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 1156.0, - 715.0, - 1156.0, - 715.0, - 1182.0, - 117.0, - 1182.0 - ], - "score": 0.96, - "text": "in Group 2. In addition, the stocking density was" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1188.0, - 712.0, - 1188.0, - 712.0, - 1213.0, - 118.0, - 1213.0 - ], - "score": 0.96, - "text": "described as‘abnormally dense’by Scott et al.(2000)" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1221.0, - 715.0, - 1221.0, - 715.0, - 1246.0, - 118.0, - 1246.0 - ], - "score": 0.99, - "text": "Growthat Glendhu2wasnotablyslow(Faheyand" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1254.0, - 714.0, - 1254.0, - 714.0, - 1279.0, - 118.0, - 1279.0 - ], - "score": 0.95, - "text": "Jackson, 1997) and Lambrechtsbos A and Biesievlei are" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1289.0, - 714.0, - 1289.0, - 714.0, - 1313.0, - 119.0, - 1313.0 - ], - "score": 0.94, - "text": "described as being within sub optimalgrowth zones" - }, - { - "category_id": 15, - "poly": [ - 121.0, - 1322.0, - 714.0, - 1322.0, - 714.0, - 1346.0, - 121.0, - 1346.0 - ], - "score": 0.96, - "text": "(Scott and Smith,1997) characterised by these authors" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 1356.0, - 715.0, - 1356.0, - 715.0, - 1378.0, - 118.0, - 1378.0 - ], - "score": 1.0, - "text": "ashavingrelativelyslowresponsetimesandlesser" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 1388.0, - 578.0, - 1388.0, - 578.0, - 1412.0, - 119.0, - 1412.0 - ], - "score": 0.97, - "text": "reductions that those at more optimal sites" - }, - { - "category_id": 15, - "poly": [ - 152.0, - 590.0, - 713.0, - 590.0, - 713.0, - 616.0, - 152.0, - 616.0 - ], - "score": 0.98, - "text": "The small Australian catchments converted to pine in" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 627.0, - 715.0, - 627.0, - 715.0, - 647.0, - 119.0, - 647.0 - ], - "score": 0.99, - "text": "responsegroup1(StewartsCreek5,PineCreekand" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 657.0, - 713.0, - 657.0, - 713.0, - 683.0, - 118.0, - 683.0 - ], - "score": 0.97, - "text": "Redhill) have similar shallow soils, potential evapo-" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 691.0, - 711.0, - 691.0, - 711.0, - 714.0, - 119.0, - 714.0 - ], - "score": 0.99, - "text": "transpirationandrainfalldistribution(relativelyuni-" - }, - { - "category_id": 15, - "poly": [ - 117.0, - 724.0, - 713.0, - 724.0, - 713.0, - 749.0, - 117.0, - 749.0 - ], - "score": 0.96, - "text": "form)although Stewarts Creek is significantly wetter." - }, - { - "category_id": 15, - "poly": [ - 117.0, - 756.0, - 714.0, - 756.0, - 714.0, - 782.0, - 117.0, - 782.0 - ], - "score": 0.96, - "text": "The combination of small catchment area and the" - }, - { - "category_id": 15, - "poly": [ - 119.0, - 791.0, - 715.0, - 791.0, - 715.0, - 815.0, - 119.0, - 815.0 - ], - "score": 0.97, - "text": "increased transpirativedemand that exceedssummer" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 821.0, - 714.0, - 821.0, - 714.0, - 851.0, - 118.0, - 851.0 - ], - "score": 0.99, - "text": "and autumn rainfall and stored water results in the large" - }, - { - "category_id": 15, - "poly": [ - 118.0, - 856.0, - 635.0, - 856.0, - 635.0, - 885.0, - 118.0, - 885.0 - ], - "score": 0.99, - "text": "impact on lower flows, compared to high flows." - }, - { - "category_id": 15, - "poly": [ - 1345.0, - 196.0, - 1382.0, - 196.0, - 1382.0, - 218.0, - 1345.0, - 218.0 - ], - "score": 1.0, - "text": "263" - }, - { - "category_id": 15, - "poly": [ - 784.0, - 1354.0, - 1110.0, - 1354.0, - 1110.0, - 1379.0, - 784.0, - 1379.0 - ], - "score": 0.99, - "text": "6.Summary andconclusions" - }, - { - "category_id": 15, - "poly": [ - 469.0, - 197.0, - 1028.0, - 197.0, - 1028.0, - 220.0, - 469.0, - 220.0 - ], - "score": 0.99, - "text": "P.N.J.Laneet al./JournalofHydrology310(2005)253-265" - } - ], - "page_info": { - "page_no": 10, - "height": 2064, - "width": 1512 - } - }, - { - "layout_dets": [ - { - "category_id": 1, - "poly": [ - 129.7504425048828, - 253.22445678710938, - 731.6268920898438, - 253.22445678710938, - 731.6268920898438, - 850.9736328125, - 129.7504425048828, - 850.9736328125 - ], - "score": 0.9999896287918091 - }, - { - "category_id": 1, - "poly": [ - 130.6014862060547, - 1007.985107421875, - 731.66796875, - 1007.985107421875, - 731.66796875, - 1439.5816650390625, - 130.6014862060547, - 1439.5816650390625 - ], - "score": 0.9999825954437256 - }, - { - "category_id": 1, - "poly": [ - 130.93617248535156, - 1596.6112060546875, - 731.9217529296875, - 1596.6112060546875, - 731.9217529296875, - 1846.48779296875, - 130.93617248535156, - 1846.48779296875 - ], - "score": 0.9999703168869019 - }, - { - "category_id": 2, - "poly": [ - 128.89547729492188, - 194.6790008544922, - 167.4661407470703, - 194.6790008544922, - 167.4661407470703, - 216.0607147216797, - 128.89547729492188, - 216.0607147216797 - ], - "score": 0.9999610781669617 - }, - { - "category_id": 0, - "poly": [ - 131.96646118164062, - 943.1311645507812, - 353.8561706542969, - 943.1311645507812, - 353.8561706542969, - 973.1969604492188, - 131.96646118164062, - 973.1969604492188 - ], - "score": 0.9999556541442871 - }, - { - "category_id": 1, - "poly": [ - 785.2122192382812, - 248.98667907714844, - 1401.3350830078125, - 248.98667907714844, - 1401.3350830078125, - 1848.1571044921875, - 785.2122192382812, - 1848.1571044921875 - ], - "score": 0.9999303817749023 - }, - { - "category_id": 0, - "poly": [ - 130.318115234375, - 1534.687255859375, - 256.7127685546875, - 1534.687255859375, - 256.7127685546875, - 1561.822509765625, - 130.318115234375, - 1561.822509765625 - ], - "score": 0.9999189376831055 - }, - { - "category_id": 2, - "poly": [ - 479.6887512207031, - 194.76837158203125, - 1046.6405029296875, - 194.76837158203125, - 1046.6405029296875, - 219.2889862060547, - 479.6887512207031, - 219.2889862060547 - ], - "score": 0.9995745420455933 - }, - { - "category_id": 13, - "poly": [ - 1067, - 1022, - 1120, - 1022, - 1120, - 1049, - 1067, - 1049 - ], - "score": 0.57, - "latex": "219\\,\\mathrm{p}" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 259.0, - 729.0, - 259.0, - 729.0, - 280.0, - 133.0, - 280.0 - ], - "score": 0.98, - "text": "scales,speciesandenvironments,andhaveshownthatit" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 294.0, - 728.0, - 294.0, - 728.0, - 315.0, - 132.0, - 315.0 - ], - "score": 1.0, - "text": "providesameansofseparatingtheinfluenceofclimate" - }, - { - "category_id": 15, - "poly": [ - 134.0, - 326.0, - 727.0, - 326.0, - 727.0, - 350.0, - 134.0, - 350.0 - ], - "score": 0.96, - "text": "and vegetation on the FDCs.The modelled results" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 356.0, - 729.0, - 356.0, - 729.0, - 384.0, - 131.0, - 384.0 - ], - "score": 0.97, - "text": "showed the greatest proportional impacts were for" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 393.0, - 725.0, - 393.0, - 725.0, - 413.0, - 133.0, - 413.0 - ], - "score": 0.99, - "text": "medianandlowerflows.Theflowreductionsfromthe" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 423.0, - 729.0, - 423.0, - 729.0, - 448.0, - 132.0, - 448.0 - ], - "score": 1.0, - "text": "threesmallcatchmentsSEAustralianwerethehighest" - }, - { - "category_id": 15, - "poly": [ - 134.0, - 458.0, - 731.0, - 458.0, - 731.0, - 482.0, - 134.0, - 482.0 - ], - "score": 0.99, - "text": "and may reflect lower storages. The characterisation of" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 490.0, - 729.0, - 490.0, - 729.0, - 515.0, - 131.0, - 515.0 - ], - "score": 0.99, - "text": "thenumberofzeroflowdayswas alsosuccessfulfor" - }, - { - "category_id": 15, - "poly": [ - 130.0, - 523.0, - 729.0, - 523.0, - 729.0, - 551.0, - 130.0, - 551.0 - ], - "score": 0.98, - "text": "these catchments in indicating a significant increase in" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 556.0, - 726.0, - 556.0, - 726.0, - 581.0, - 132.0, - 581.0 - ], - "score": 0.99, - "text": "zeroflows.Theflowreductionsidentified hereprobably" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 593.0, - 728.0, - 593.0, - 728.0, - 614.0, - 132.0, - 614.0 - ], - "score": 1.0, - "text": "representamaximumeffectgiventhesizeofthe" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 625.0, - 725.0, - 625.0, - 725.0, - 648.0, - 133.0, - 648.0 - ], - "score": 1.0, - "text": "catchments,levelofafforestationandtheshallowsoils" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 657.0, - 727.0, - 657.0, - 727.0, - 681.0, - 133.0, - 681.0 - ], - "score": 0.98, - "text": "These results have yielded useful new insights on the" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 691.0, - 730.0, - 691.0, - 730.0, - 714.0, - 132.0, - 714.0 - ], - "score": 1.0, - "text": "contentiousissueofthehydrologicalimpactof" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 721.0, - 728.0, - 721.0, - 728.0, - 749.0, - 133.0, - 749.0 - ], - "score": 0.97, - "text": "afforestation. This research has led to the development" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 756.0, - 729.0, - 756.0, - 729.0, - 780.0, - 132.0, - 780.0 - ], - "score": 0.98, - "text": "of a method to assess the net impact of afforestation on" - }, - { - "category_id": 15, - "poly": [ - 130.0, - 788.0, - 727.0, - 788.0, - 727.0, - 816.0, - 130.0, - 816.0 - ], - "score": 0.98, - "text": "the flow duration curve which does not require paired-" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 825.0, - 591.0, - 825.0, - 591.0, - 849.0, - 133.0, - 849.0 - ], - "score": 0.99, - "text": "catchments to remove climatic variability." - }, - { - "category_id": 15, - "poly": [ - 165.0, - 1014.0, - 726.0, - 1014.0, - 726.0, - 1038.0, - 165.0, - 1038.0 - ], - "score": 0.94, - "text": "The authors would like tothank RoryNathan." - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1048.0, - 728.0, - 1048.0, - 728.0, - 1071.0, - 132.0, - 1071.0 - ], - "score": 0.98, - "text": "Narendra Tuteja,Tom McMahon,Geoff Podger,Rob" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1079.0, - 725.0, - 1079.0, - 725.0, - 1105.0, - 133.0, - 1105.0 - ], - "score": 0.99, - "text": "Vertessy, Glen Walker and Peter Hairsine for particu-" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1111.0, - 728.0, - 1111.0, - 728.0, - 1139.0, - 131.0, - 1139.0 - ], - "score": 0.99, - "text": "larly helpful discussions on methodologies and reviews," - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1146.0, - 728.0, - 1146.0, - 728.0, - 1171.0, - 131.0, - 1171.0 - ], - "score": 0.96, - "text": "Richard Morton for valuable statistical advice,Dave" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1180.0, - 726.0, - 1180.0, - 726.0, - 1205.0, - 132.0, - 1205.0 - ], - "score": 0.97, - "text": "Scottfor supplying theSouthAfrican data,BarryFahey" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1213.0, - 728.0, - 1213.0, - 728.0, - 1237.0, - 132.0, - 1237.0 - ], - "score": 0.97, - "text": "for the New Zealand data, and Hancocks Victorian" - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1245.0, - 726.0, - 1245.0, - 726.0, - 1270.0, - 131.0, - 1270.0 - ], - "score": 0.97, - "text": "Plantationsfor vegetation data.Thestudywasfunded by" - }, - { - "category_id": 15, - "poly": [ - 133.0, - 1280.0, - 729.0, - 1280.0, - 729.0, - 1303.0, - 133.0, - 1303.0 - ], - "score": 1.0, - "text": "theVictorianDepartmentofNaturalResourcesand" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1314.0, - 729.0, - 1314.0, - 729.0, - 1337.0, - 132.0, - 1337.0 - ], - "score": 0.97, - "text": "EnvironmentPrivateForestryUnit,the CRC for" - }, - { - "category_id": 15, - "poly": [ - 130.0, - 1344.0, - 729.0, - 1344.0, - 729.0, - 1372.0, - 130.0, - 1372.0 - ], - "score": 0.99, - "text": "Catchment Hydrology, and the MDBC funded project" - }, - { - "category_id": 15, - "poly": [ - 135.0, - 1377.0, - 727.0, - 1377.0, - 727.0, - 1405.0, - 135.0, - 1405.0 - ], - "score": 0.98, - "text": "Integrated assessment of the effects of land use changes" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 1412.0, - 554.0, - 1412.0, - 554.0, - 1437.0, - 132.0, - 1437.0 - ], - "score": 0.96, - "text": "on water yield and salt loads'(D2013)." - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1602.0, - 729.0, - 1602.0, - 729.0, - 1625.0, - 131.0, - 1625.0 - ], - "score": 0.97, - "text": "Bosch, J.M.,1979. Treatment effects on annual and dry period" - }, - { - "category_id": 15, - "poly": [ - 164.0, - 1629.0, - 726.0, - 1629.0, - 726.0, - 1650.0, - 164.0, - 1650.0 - ], - "score": 0.98, - "text": "streamflow at CathedralPeak.SouthAfricanForestryJournal 108" - }, - { - "category_id": 15, - "poly": [ - 164.0, - 1656.0, - 224.0, - 1656.0, - 224.0, - 1677.0, - 164.0, - 1677.0 - ], - "score": 0.99, - "text": "29-37." - }, - { - "category_id": 15, - "poly": [ - 130.0, - 1684.0, - 729.0, - 1684.0, - 729.0, - 1706.0, - 130.0, - 1706.0 - ], - "score": 0.97, - "text": "Bosch, J.M., Von Gadow, K.,1990. Regulating afforestation for water" - }, - { - "category_id": 15, - "poly": [ - 164.0, - 1712.0, - 727.0, - 1712.0, - 727.0, - 1734.0, - 164.0, - 1734.0 - ], - "score": 0.97, - "text": "conservation inSouthAfrica.Suid-AfrikaanseBosboutydskrif 153," - }, - { - "category_id": 15, - "poly": [ - 165.0, - 1741.0, - 222.0, - 1741.0, - 222.0, - 1759.0, - 165.0, - 1759.0 - ], - "score": 0.98, - "text": "41-54." - }, - { - "category_id": 15, - "poly": [ - 131.0, - 1768.0, - 730.0, - 1768.0, - 730.0, - 1790.0, - 131.0, - 1790.0 - ], - "score": 0.98, - "text": "Chiew,F.H.S.,McMahon, T.A.,1993.Assessing the adequacy of" - }, - { - "category_id": 15, - "poly": [ - 165.0, - 1796.0, - 729.0, - 1796.0, - 729.0, - 1815.0, - 165.0, - 1815.0 - ], - "score": 1.0, - "text": "catchmentstreamflowyieldestimates.AustralianJournalofSoil" - }, - { - "category_id": 15, - "poly": [ - 165.0, - 1823.0, - 360.0, - 1823.0, - 360.0, - 1843.0, - 165.0, - 1843.0 - ], - "score": 0.99, - "text": "Research31,665-680." - }, - { - "category_id": 15, - "poly": [ - 129.0, - 195.0, - 167.0, - 195.0, - 167.0, - 218.0, - 129.0, - 218.0 - ], - "score": 1.0, - "text": "264" - }, - { - "category_id": 15, - "poly": [ - 132.0, - 945.0, - 352.0, - 945.0, - 352.0, - 972.0, - 132.0, - 972.0 - ], - "score": 1.0, - "text": "Acknowledgements" - }, - { - "category_id": 15, - "poly": [ - 792.0, - 253.0, - 1396.0, - 253.0, - 1396.0, - 285.0, - 792.0, - 285.0 - ], - "score": 0.98, - "text": "Cornish, P.M., Vertessy, R.A., 2001. Forest age-induced changes in" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 287.0, - 1396.0, - 287.0, - 1396.0, - 311.0, - 828.0, - 311.0 - ], - "score": 0.99, - "text": "evapotranspiration and water yield in a eucalypt forest. Journal of" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 315.0, - 1029.0, - 315.0, - 1029.0, - 340.0, - 828.0, - 340.0 - ], - "score": 0.99, - "text": "Hydrology 242,43-63." - }, - { - "category_id": 15, - "poly": [ - 794.0, - 341.0, - 1393.0, - 341.0, - 1393.0, - 368.0, - 794.0, - 368.0 - ], - "score": 0.98, - "text": "Fahey, B., Jackson, R., 1997. Hydrological impacts of converting" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 373.0, - 1394.0, - 373.0, - 1394.0, - 396.0, - 828.0, - 396.0 - ], - "score": 0.95, - "text": "native forests and grasslands to pine plantations, South" - }, - { - "category_id": 15, - "poly": [ - 825.0, - 394.0, - 1396.0, - 394.0, - 1396.0, - 428.0, - 825.0, - 428.0 - ], - "score": 0.97, - "text": "Island, New Zealand. Agricultural and Forest Meteorology 84," - }, - { - "category_id": 15, - "poly": [ - 826.0, - 428.0, - 888.0, - 428.0, - 888.0, - 453.0, - 826.0, - 453.0 - ], - "score": 1.0, - "text": "69-82." - }, - { - "category_id": 15, - "poly": [ - 795.0, - 455.0, - 1392.0, - 455.0, - 1392.0, - 480.0, - 795.0, - 480.0 - ], - "score": 0.98, - "text": "Hickel, K., 2001. The effect of pine afforestation on flow regime in" - }, - { - "category_id": 15, - "poly": [ - 823.0, - 481.0, - 1394.0, - 481.0, - 1394.0, - 513.0, - 823.0, - 513.0 - ], - "score": 0.99, - "text": " small upland catchments. Masters Thesis, University of Stuttgart," - }, - { - "category_id": 15, - "poly": [ - 822.0, - 514.0, - 889.0, - 514.0, - 889.0, - 536.0, - 822.0, - 536.0 - ], - "score": 1.0, - "text": "p.134." - }, - { - "category_id": 15, - "poly": [ - 794.0, - 542.0, - 1394.0, - 542.0, - 1394.0, - 566.0, - 794.0, - 566.0 - ], - "score": 0.98, - "text": "Holmes, J.W., Sinclair, J.A., 1986. Water yield from some afforested" - }, - { - "category_id": 15, - "poly": [ - 830.0, - 572.0, - 1394.0, - 572.0, - 1394.0, - 596.0, - 830.0, - 596.0 - ], - "score": 0.95, - "text": "catchments in Victoria. In Hydrology and Water Resources" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 600.0, - 1392.0, - 600.0, - 1392.0, - 625.0, - 828.0, - 625.0 - ], - "score": 0.99, - "text": "Symposium, Griffith University, Brisbane 25-27 November 1986," - }, - { - "category_id": 15, - "poly": [ - 824.0, - 629.0, - 937.0, - 629.0, - 937.0, - 649.0, - 824.0, - 649.0 - ], - "score": 0.96, - "text": "pp.214-218" - }, - { - "category_id": 15, - "poly": [ - 795.0, - 655.0, - 1394.0, - 655.0, - 1394.0, - 680.0, - 795.0, - 680.0 - ], - "score": 0.98, - "text": "Lane, P.N.J., Best, A.E., Hickel, K., Zhang, L., 2003. The effect" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 685.0, - 1392.0, - 685.0, - 1392.0, - 710.0, - 828.0, - 710.0 - ], - "score": 0.99, - "text": "of afforestation on flow duration curves. Cooperative Research" - }, - { - "category_id": 15, - "poly": [ - 826.0, - 712.0, - 1394.0, - 712.0, - 1394.0, - 742.0, - 826.0, - 742.0 - ], - "score": 0.96, - "text": "Centre for Catchment Hydrology Technical Report 0O3/13," - }, - { - "category_id": 15, - "poly": [ - 822.0, - 742.0, - 883.0, - 742.0, - 883.0, - 764.0, - 822.0, - 764.0 - ], - "score": 0.98, - "text": "p.25." - }, - { - "category_id": 15, - "poly": [ - 792.0, - 770.0, - 1391.0, - 770.0, - 1391.0, - 793.0, - 792.0, - 793.0 - ], - "score": 0.97, - "text": "Legates, D.R., McCabe, G.J., 1999. Evaluating the use of ^goodness-" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 798.0, - 1392.0, - 798.0, - 1392.0, - 823.0, - 828.0, - 823.0 - ], - "score": 0.97, - "text": "of-fit’ measures in hydrologic and hydroclimatic model validation." - }, - { - "category_id": 15, - "poly": [ - 828.0, - 827.0, - 1179.0, - 827.0, - 1179.0, - 850.0, - 828.0, - 850.0 - ], - "score": 0.98, - "text": "Water Resources Research 35,233-241." - }, - { - "category_id": 15, - "poly": [ - 792.0, - 851.0, - 1396.0, - 851.0, - 1396.0, - 880.0, - 792.0, - 880.0 - ], - "score": 1.0, - "text": "Lyne, V.D., Hollick, M., 1979. Stochastic time-varying rainfall-runoff" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 883.0, - 1392.0, - 883.0, - 1392.0, - 908.0, - 828.0, - 908.0 - ], - "score": 0.98, - "text": "modelling. Hydrology and Water Resources Symposium, Perth." - }, - { - "category_id": 15, - "poly": [ - 828.0, - 912.0, - 1220.0, - 912.0, - 1220.0, - 936.0, - 828.0, - 936.0 - ], - "score": 0.99, - "text": "Institution of Engineers, Australia, pp. 89-92." - }, - { - "category_id": 15, - "poly": [ - 794.0, - 940.0, - 1392.0, - 940.0, - 1392.0, - 965.0, - 794.0, - 965.0 - ], - "score": 0.98, - "text": "Nandakumar, N., Mein, R.G., 1993. Analysis of paired catchment data" - }, - { - "category_id": 15, - "poly": [ - 825.0, - 965.0, - 1396.0, - 965.0, - 1396.0, - 997.0, - 825.0, - 997.0 - ], - "score": 0.98, - "text": "to determine the hydrologic effects of changes in vegetative cover" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 998.0, - 1394.0, - 998.0, - 1394.0, - 1023.0, - 828.0, - 1023.0 - ], - "score": 0.99, - "text": "on yield. Technical Report for Project UM010, Monash University" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 1027.0, - 1066.0, - 1027.0, - 1066.0, - 1052.0, - 828.0, - 1052.0 - ], - "score": 0.97, - "text": "Dept. of Civil Engineering," - }, - { - "category_id": 15, - "poly": [ - 792.0, - 1050.0, - 1396.0, - 1050.0, - 1396.0, - 1082.0, - 792.0, - 1082.0 - ], - "score": 0.99, - "text": "Nash, J.E., Sutcliffe, J.V., 1970. River flow forecasting through" - }, - { - "category_id": 15, - "poly": [ - 826.0, - 1080.0, - 1398.0, - 1080.0, - 1398.0, - 1110.0, - 826.0, - 1110.0 - ], - "score": 0.99, - "text": "conceptual models, I, A discussion of principals. Journal of" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 1112.0, - 1041.0, - 1112.0, - 1041.0, - 1137.0, - 828.0, - 1137.0 - ], - "score": 0.98, - "text": "Hydrology 10, 282-290." - }, - { - "category_id": 15, - "poly": [ - 794.0, - 1137.0, - 1398.0, - 1137.0, - 1398.0, - 1167.0, - 794.0, - 1167.0 - ], - "score": 0.99, - "text": "Putahena, W.M., Cordery, I., 2000. Some hydrological effects of" - }, - { - "category_id": 15, - "poly": [ - 826.0, - 1167.0, - 1396.0, - 1167.0, - 1396.0, - 1197.0, - 826.0, - 1197.0 - ], - "score": 0.99, - "text": "changing forest cover from eucalyptus to Pinus radiata. Agricul-" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 1197.0, - 1188.0, - 1197.0, - 1188.0, - 1222.0, - 828.0, - 1222.0 - ], - "score": 0.99, - "text": "tural and Forest Meteorology 100, 59-72." - }, - { - "category_id": 15, - "poly": [ - 792.0, - 1223.0, - 1396.0, - 1223.0, - 1396.0, - 1253.0, - 792.0, - 1253.0 - ], - "score": 0.98, - "text": "Roberts, S., Vertessy, R.A., Grayson, R.G., 2001. Transpiration from" - }, - { - "category_id": 15, - "poly": [ - 825.0, - 1250.0, - 1396.0, - 1250.0, - 1396.0, - 1282.0, - 825.0, - 1282.0 - ], - "score": 0.99, - "text": "Eucalyptus sieberi (L. Johnson) forests of different age. Forest" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 1280.0, - 1184.0, - 1280.0, - 1184.0, - 1310.0, - 828.0, - 1310.0 - ], - "score": 0.98, - "text": "Ecology and Management 143, 153-161." - }, - { - "category_id": 15, - "poly": [ - 792.0, - 1307.0, - 1396.0, - 1307.0, - 1396.0, - 1338.0, - 792.0, - 1338.0 - ], - "score": 0.99, - "text": "Scott, D.F., Smith, R.E., 1997. Preliminary empirical models to predict" - }, - { - "category_id": 15, - "poly": [ - 825.0, - 1335.0, - 1394.0, - 1335.0, - 1394.0, - 1367.0, - 825.0, - 1367.0 - ], - "score": 0.99, - "text": "reductions in total and low flows resulting from afforestation." - }, - { - "category_id": 15, - "poly": [ - 826.0, - 1365.0, - 1045.0, - 1365.0, - 1045.0, - 1392.0, - 826.0, - 1392.0 - ], - "score": 0.96, - "text": "Water S.A. 23, 135-140." - }, - { - "category_id": 15, - "poly": [ - 795.0, - 1393.0, - 1391.0, - 1393.0, - 1391.0, - 1418.0, - 795.0, - 1418.0 - ], - "score": 0.93, - "text": "Scott, D.F., Prinsloo, F.W., Moses, G., Mehlomakulu, M.," - }, - { - "category_id": 15, - "poly": [ - 826.0, - 1423.0, - 1392.0, - 1423.0, - 1392.0, - 1448.0, - 826.0, - 1448.0 - ], - "score": 0.95, - "text": "Simmers, A.D.A., 2000. Area-analysis of the South African" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 1452.0, - 1392.0, - 1452.0, - 1392.0, - 1477.0, - 828.0, - 1477.0 - ], - "score": 0.96, - "text": "catchment afforestation experimental data. WRC Report" - }, - { - "category_id": 15, - "poly": [ - 827.0, - 1478.0, - 954.0, - 1478.0, - 954.0, - 1507.0, - 827.0, - 1507.0 - ], - "score": 0.99, - "text": "No. 810/1/00." - }, - { - "category_id": 15, - "poly": [ - 792.0, - 1505.0, - 1396.0, - 1505.0, - 1396.0, - 1537.0, - 792.0, - 1537.0 - ], - "score": 0.99, - "text": "Sikka, A.K., Samra, J.S., Sharda, V.N., Samraj, P., Lakshmanan, V.," - }, - { - "category_id": 15, - "poly": [ - 826.0, - 1537.0, - 1394.0, - 1537.0, - 1394.0, - 1563.0, - 826.0, - 1563.0 - ], - "score": 0.99, - "text": "2003. Low fow and high responses to converting natural grassland" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 1567.0, - 1396.0, - 1567.0, - 1396.0, - 1592.0, - 828.0, - 1592.0 - ], - "score": 0.98, - "text": "into bluegum (Eucalyptus globulus) in Ningiris watersheds of" - }, - { - "category_id": 15, - "poly": [ - 825.0, - 1590.0, - 1234.0, - 1590.0, - 1234.0, - 1622.0, - 825.0, - 1622.0 - ], - "score": 0.99, - "text": "South India. Journal of Hydrology 270, 12-26." - }, - { - "category_id": 15, - "poly": [ - 795.0, - 1624.0, - 1392.0, - 1624.0, - 1392.0, - 1648.0, - 795.0, - 1648.0 - ], - "score": 0.99, - "text": "Smakhtin, V.U., 1999. A concept of pragmatic hydrological time series" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 1652.0, - 1394.0, - 1652.0, - 1394.0, - 1677.0, - 828.0, - 1677.0 - ], - "score": 0.99, - "text": "modelling and its application in South African context. In Ninth" - }, - { - "category_id": 15, - "poly": [ - 825.0, - 1677.0, - 1396.0, - 1677.0, - 1396.0, - 1709.0, - 825.0, - 1709.0 - ], - "score": 0.97, - "text": "South African National Hydrology Symposium, 29-30 November" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 1707.0, - 966.0, - 1707.0, - 966.0, - 1737.0, - 828.0, - 1737.0 - ], - "score": 1.0, - "text": "1999, pp. 1-11." - }, - { - "category_id": 15, - "poly": [ - 792.0, - 1733.0, - 1398.0, - 1733.0, - 1398.0, - 1765.0, - 792.0, - 1765.0 - ], - "score": 0.99, - "text": "Smakhtin, V.U., 2001. Low flow hydrology: a review. Journal of" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 1765.0, - 1050.0, - 1765.0, - 1050.0, - 1790.0, - 828.0, - 1790.0 - ], - "score": 0.98, - "text": "Hydrology 240, 147-186." - }, - { - "category_id": 15, - "poly": [ - 794.0, - 1790.0, - 1396.0, - 1790.0, - 1396.0, - 1822.0, - 794.0, - 1822.0 - ], - "score": 0.98, - "text": "Van Lill, W.S., Kruger, F.J., Van Wyk, D.B., 1980. The effect of" - }, - { - "category_id": 15, - "poly": [ - 828.0, - 1824.0, - 1394.0, - 1824.0, - 1394.0, - 1848.0, - 828.0, - 1848.0 - ], - "score": 0.98, - "text": "afforestation with Eucalyptus grandis Hill ex Maiden and Pinus" - }, - { - "category_id": 15, - "poly": [ - 130.0, - 1533.0, - 257.0, - 1533.0, - 257.0, - 1561.0, - 130.0, - 1561.0 - ], - "score": 1.0, - "text": "References" - }, - { - "category_id": 15, - "poly": [ - 482.0, - 196.0, - 1041.0, - 196.0, - 1041.0, - 220.0, - 482.0, - 220.0 - ], - "score": 0.97, - "text": "P.N.J.Lane et al./ Journal ofHydrology 310(2005)253-265" - } - ], - "page_info": { - "page_no": 11, - "height": 2064, - "width": 1512 - } - }, - { - "layout_dets": [ - { - "category_id": 1, - "poly": [ - 775.5120849609375, - 251.32174682617188, - 1385.47265625, - 251.32174682617188, - 1385.47265625, - 615.240478515625, - 775.5120849609375, - 615.240478515625 - ], - "score": 0.9999982714653015 - }, - { - "category_id": 1, - "poly": [ - 116.47637939453125, - 255.4496612548828, - 719.7019653320312, - 255.4496612548828, - 719.7019653320312, - 616.0682373046875, - 116.47637939453125, - 616.0682373046875 - ], - "score": 0.9999979734420776 - }, - { - "category_id": 2, - "poly": [ - 1346.1534423828125, - 194.16160583496094, - 1382.1688232421875, - 194.16160583496094, - 1382.1688232421875, - 217.01524353027344, - 1346.1534423828125, - 217.01524353027344 - ], - "score": 0.9999814033508301 - }, - { - "category_id": 2, - "poly": [ - 465.8272705078125, - 194.28224182128906, - 1032.5506591796875, - 194.28224182128906, - 1032.5506591796875, - 220.2495880126953, - 465.8272705078125, - 220.2495880126953 - ], - "score": 0.9999077320098877 - }, - { - "category_id": 15, - "poly": [ - 785.0, - 257.0, - 1379.0, - 257.0, - 1379.0, - 280.0, - 785.0, - 280.0 - ], - "score": 0.97, - "text": "Vogel, R.M.,Fennessey, N.M., 1994. Flow duration curves. 1. New" - }, - { - "category_id": 15, - "poly": [ - 815.0, - 284.0, - 1381.0, - 284.0, - 1381.0, - 309.0, - 815.0, - 309.0 - ], - "score": 0.97, - "text": "interpretation and confidence intervals. Journal of Water Planning" - }, - { - "category_id": 15, - "poly": [ - 816.0, - 312.0, - 1123.0, - 312.0, - 1123.0, - 335.0, - 816.0, - 335.0 - ], - "score": 0.96, - "text": "and Management 120 (4),485-504." - }, - { - "category_id": 15, - "poly": [ - 782.0, - 339.0, - 1383.0, - 339.0, - 1383.0, - 366.0, - 782.0, - 366.0 - ], - "score": 0.97, - "text": "Whitehead, D., Beadle C.L., 2004. Physiological regulation of" - }, - { - "category_id": 15, - "poly": [ - 815.0, - 368.0, - 1379.0, - 368.0, - 1379.0, - 394.0, - 815.0, - 394.0 - ], - "score": 1.0, - "text": "productivity and water use in Eucalyptus: a review. Forest Ecology" - }, - { - "category_id": 15, - "poly": [ - 815.0, - 396.0, - 1098.0, - 396.0, - 1098.0, - 420.0, - 815.0, - 420.0 - ], - "score": 0.99, - "text": "and Management, 193, 113-140." - }, - { - "category_id": 15, - "poly": [ - 785.0, - 425.0, - 1382.0, - 425.0, - 1382.0, - 445.0, - 785.0, - 445.0 - ], - "score": 0.97, - "text": "Zhang,L.,Dawes,W.R.,Walker,G.R.,1999.Predicting the effect of" - }, - { - "category_id": 15, - "poly": [ - 817.0, - 454.0, - 1378.0, - 454.0, - 1378.0, - 474.0, - 817.0, - 474.0 - ], - "score": 1.0, - "text": "vegetationchangesoncatchmentaveragewaterbalance.Coop-" - }, - { - "category_id": 15, - "poly": [ - 814.0, - 479.0, - 1380.0, - 479.0, - 1380.0, - 501.0, - 814.0, - 501.0 - ], - "score": 0.97, - "text": "erative ResearchCentre for Catchment HydrologyTechnical" - }, - { - "category_id": 15, - "poly": [ - 816.0, - 508.0, - 988.0, - 508.0, - 988.0, - 529.0, - 816.0, - 529.0 - ], - "score": 0.99, - "text": "Report99/12,p.35." - }, - { - "category_id": 15, - "poly": [ - 783.0, - 533.0, - 1381.0, - 533.0, - 1381.0, - 558.0, - 783.0, - 558.0 - ], - "score": 0.97, - "text": "Zhang, L., Dawes, W.R.,Walker, G.R.,2001.Response of mean" - }, - { - "category_id": 15, - "poly": [ - 815.0, - 562.0, - 1382.0, - 562.0, - 1382.0, - 586.0, - 815.0, - 586.0 - ], - "score": 0.98, - "text": "annual evapotranspiration to vegetation changes at catchment" - }, - { - "category_id": 15, - "poly": [ - 815.0, - 590.0, - 1217.0, - 590.0, - 1217.0, - 610.0, - 815.0, - 610.0 - ], - "score": 0.99, - "text": "scale.WaterResourcesResearch37,701-708." - }, - { - "category_id": 15, - "poly": [ - 149.0, - 257.0, - 715.0, - 257.0, - 715.0, - 280.0, - 149.0, - 280.0 - ], - "score": 0.97, - "text": "patula Schlect.et Cham.on streamflow fromexperimental" - }, - { - "category_id": 15, - "poly": [ - 151.0, - 284.0, - 712.0, - 284.0, - 712.0, - 307.0, - 151.0, - 307.0 - ], - "score": 0.98, - "text": "catchments at Mokubulaan, Transvaal. Journal of Hydrology 48" - }, - { - "category_id": 15, - "poly": [ - 153.0, - 314.0, - 230.0, - 314.0, - 230.0, - 333.0, - 153.0, - 333.0 - ], - "score": 1.0, - "text": "107-118." - }, - { - "category_id": 15, - "poly": [ - 117.0, - 339.0, - 717.0, - 339.0, - 717.0, - 363.0, - 117.0, - 363.0 - ], - "score": 0.98, - "text": "Van Wyk, D.B.,1987. Some effects of afforestation on streamflow" - }, - { - "category_id": 15, - "poly": [ - 149.0, - 368.0, - 715.0, - 368.0, - 715.0, - 391.0, - 149.0, - 391.0 - ], - "score": 0.97, - "text": "in the Western Cape Province, South Africa.Water S.A. 13," - }, - { - "category_id": 15, - "poly": [ - 149.0, - 395.0, - 210.0, - 395.0, - 210.0, - 417.0, - 149.0, - 417.0 - ], - "score": 1.0, - "text": "31-36." - }, - { - "category_id": 15, - "poly": [ - 117.0, - 422.0, - 715.0, - 422.0, - 715.0, - 449.0, - 117.0, - 449.0 - ], - "score": 0.96, - "text": "Vertessy, R.A., Bessard, Y., 1999. Anticipating the negative" - }, - { - "category_id": 15, - "poly": [ - 151.0, - 452.0, - 717.0, - 452.0, - 717.0, - 476.0, - 151.0, - 476.0 - ], - "score": 0.97, - "text": "hydrologic effects of plantation expansion: results from a" - }, - { - "category_id": 15, - "poly": [ - 149.0, - 477.0, - 716.0, - 477.0, - 716.0, - 503.0, - 149.0, - 503.0 - ], - "score": 1.0, - "text": "GIS-based analysis on the Murrumbidgee Basin, in: Croke, J.," - }, - { - "category_id": 15, - "poly": [ - 149.0, - 507.0, - 717.0, - 507.0, - 717.0, - 530.0, - 149.0, - 530.0 - ], - "score": 0.99, - "text": "Lane, P.N.J. (Eds.), Forest Management for Water Quality and" - }, - { - "category_id": 15, - "poly": [ - 152.0, - 534.0, - 716.0, - 534.0, - 716.0, - 558.0, - 152.0, - 558.0 - ], - "score": 0.99, - "text": "Quantity: Proceedings of the 2nd Erosion in Forests Meeting" - }, - { - "category_id": 15, - "poly": [ - 151.0, - 563.0, - 716.0, - 563.0, - 716.0, - 584.0, - 151.0, - 584.0 - ], - "score": 0.98, - "text": "CooperativeResearchCentre for Catchment Hydrology,Report" - }, - { - "category_id": 15, - "poly": [ - 149.0, - 588.0, - 299.0, - 588.0, - 299.0, - 615.0, - 149.0, - 615.0 - ], - "score": 0.97, - "text": "99/6,Pp.69-73." - }, - { - "category_id": 15, - "poly": [ - 1345.0, - 196.0, - 1382.0, - 196.0, - 1382.0, - 219.0, - 1345.0, - 219.0 - ], - "score": 1.0, - "text": "265" - }, - { - "category_id": 15, - "poly": [ - 470.0, - 197.0, - 1026.0, - 197.0, - 1026.0, - 220.0, - 470.0, - 220.0 - ], - "score": 0.98, - "text": "P.N.J.Laneet al./JournalofHydrology310(2005)253-265" - } - ], - "page_info": { - "page_no": 12, - "height": 2064, - "width": 1512 - } - } -] diff --git a/tests/test_model/assets/test_02.pdf b/tests/test_model/assets/test_02.pdf deleted file mode 100644 index c9405d621..000000000 Binary files a/tests/test_model/assets/test_02.pdf and /dev/null differ diff --git a/tests/test_model/test_magic_model.py b/tests/test_model/test_magic_model.py deleted file mode 100644 index 4fc4139cf..000000000 --- a/tests/test_model/test_magic_model.py +++ /dev/null @@ -1,31 +0,0 @@ -import json - -from magic_pdf.data.read_api import read_local_pdfs -from magic_pdf.model.magic_model import MagicModel - - -def test_magic_model_image_v2(): - datasets = read_local_pdfs('tests/test_model/assets/test_01.pdf') - with open('tests/test_model/assets/test_01.model.json') as f: - model_json = json.load(f) - - magic_model = MagicModel(model_json, datasets[0]) - - imgs = magic_model.get_imgs_v2(0) - print(imgs) - - tables = magic_model.get_tables_v2(0) - print(tables) - - -def test_magic_model_table_v2(): - datasets = read_local_pdfs('tests/test_model/assets/test_02.pdf') - with open('tests/test_model/assets/test_02.model.json') as f: - model_json = json.load(f) - - magic_model = MagicModel(model_json, datasets[0]) - tables = magic_model.get_tables_v2(5) - print(tables) - - tables = magic_model.get_tables_v2(8) - print(tables) diff --git a/tests/test_para/para_test_pdf_ids.ini b/tests/test_para/para_test_pdf_ids.ini deleted file mode 100644 index 516f6b5a7..000000000 --- a/tests/test_para/para_test_pdf_ids.ini +++ /dev/null @@ -1,157 +0,0 @@ -# """ -# Para Test Cases of Sci-Hub -# """ - -demo_parse_pdf(book_name="scihub/scihub_04600000/libgen.scimag04690000-04690999.zip_10.1016/s0378-4347(98)00269-2") # layout -demo_parse_pdf(book_name="scihub/scihub_18500000/libgen.scimag18539000-18539999.zip_10.1039/c2ob27232f") # layout -demo_parse_pdf(book_name="scihub/scihub_28400000/libgen.scimag28413000-28413999.zip_10.2307/1316224") # layout -demo_parse_pdf(book_name="scihub/scihub_00500000/libgen.scimag00527000-00527999.zip_10.1002/app.25178") # 标题,Done。Layout,TODO。公式替换,TODO。 - -# """ -# FOR TEST : 0115~0119 数据测试 -# https://aicarrier.feishu.cn/wiki/PIBKwMja9iBySpkV5Ywcy5zdnFE -demo_parse_pdf(book_name="scihub/scihub_18000000/libgen.scimag18064000-18064999.zip_10.1016/s1385-299x(98)00049-x") # 标题序列。二级标题待识别,TODO。 -demo_parse_pdf(book_name="scihub/scihub_24400000/libgen.scimag24401000-24401999.zip_10.1016/j.toxicon.2014.02.018") # 标题序列 -demo_parse_pdf(book_name="scihub/scihub_29200000/libgen.scimag29285000-29285999.zip_10.1016/j.tiv.2014.09.004") # 标题序列 - -demo_parse_pdf(book_name="scihub/scihub_87000000/libgen.scimag87032000-87032999.zip_10.3390/rs13010076") # 标题,问题较多,待处理 -demo_parse_pdf(book_name="scihub/scihub_75300000/libgen.scimag75322000-75322999.zip_10.7748/ns2007.05.21.34.35.c4550") # 标题、段落。DONE -demo_parse_pdf(book_name="scihub/scihub_11400000/libgen.scimag11451000-11451999.zip_10.1017/s0009838811000231") # 标题 -demo_parse_pdf(book_name="scihub/scihub_23000000/libgen.scimag23039000-23039999.zip_10.1007/s10897-013-9674-3") # 标题 -demo_parse_pdf(book_name="scihub/scihub_23400000/libgen.scimag23485000-23485999.zip_10.1016/S0891-5849(13)00133-0") # 标题 -demo_parse_pdf(book_name="scihub/scihub_36500000/libgen.scimag36588000-36588999.zip_10.1109/adprl.2014.7010623") # 标题 -demo_parse_pdf(book_name="scihub/scihub_47300000/libgen.scimag47374000-47374999.zip_10.1016/B978-0-12-410502-7.00005-3") # 标题 -demo_parse_pdf(book_name="scihub/scihub_80300000/libgen.scimag80371000-80371999.zip_10.1097/MJT.0000000000001112") # 标题 -demo_parse_pdf(book_name="scihub/scihub_82500000/libgen.scimag82595000-82595999.zip_10.1016/B978-0-12-817752-5.00003-2") # 标题 -demo_parse_pdf(book_name="scihub/scihub_01900000/libgen.scimag01914000-01914999.zip_10.1006/ndsh.1998.0025") # 标题。240 pages。DONES -demo_parse_pdf(book_name="scihub/scihub_09700000/libgen.scimag09714000-09714999.zip_10.1111/j.1524-4733.2009.00592_2.x") # 标题。240 pages - -demo_parse_pdf(book_name="scihub/scihub_87300000/libgen.scimag87385000-87385999.zip_10.1515/pthp-2020-0016") # 段落切割 -demo_parse_pdf(book_name="scihub/scihub_23000000/libgen.scimag23003000-23003999.zip_10.1007/s12264-013-1404-1") # 段落, -demo_parse_pdf(book_name="scihub/scihub_37000000/libgen.scimag37068000-37068999.zip_10.1080/0015587X.1936.9718622") # 跨页段落合并。第二页文字没有出现。 -demo_parse_pdf(book_name="scihub/scihub_84500000/libgen.scimag84570000-84570999.zip_10.1017/S0033583520000086") # 分段 -# END TEST CASES: 0115~0119 数据测试 -# """ - -demo_parse_pdf(book_name="scihub/scihub_18000000/libgen.scimag18064000-18064999.zip_10.1016/s1385-299x(98)00049-x") # 标题序列。二级标题待识别,TODO。 -demo_parse_pdf(book_name="scihub/scihub_24400000/libgen.scimag24401000-24401999.zip_10.1016/j.toxicon.2014.02.018") # 标题序列 -demo_parse_pdf(book_name="scihub/scihub_29200000/libgen.scimag29285000-29285999.zip_10.1016/j.tiv.2014.09.004") # 标题序列 -demo_parse_pdf(book_name="scihub/scihub_50900000/libgen.scimag50902000-50902999.zip_10.1007/s12274-016-1035-8") # 标题序列 - -demo_parse_pdf(book_name="scihub/scihub_87000000/libgen.scimag87032000-87032999.zip_10.3390/rs13010076") # 标题,问题较多,待处理 -demo_parse_pdf(book_name="scihub/scihub_87000000/libgen.scimag87032000-87032999.zip_10.3390/rs13010076") # 标题,问题较多,待处理 - -demo_parse_pdf(book_name="scihub/scihub_62600000/libgen.scimag62633000-62633999.zip_10.2169/internalmedicine.54.2755") # 标题、段落。DONE -demo_parse_pdf(book_name="scihub/scihub_75300000/libgen.scimag75322000-75322999.zip_10.7748/ns2007.05.21.34.35.c4550") # 标题、段落。DONE -demo_parse_pdf(book_name="scihub/scihub_11400000/libgen.scimag11451000-11451999.zip_10.1017/s0009838811000231") # 标题 -demo_parse_pdf(book_name="scihub/scihub_23000000/libgen.scimag23039000-23039999.zip_10.1007/s10897-013-9674-3") # 标题 -demo_parse_pdf(book_name="scihub/scihub_23400000/libgen.scimag23485000-23485999.zip_10.1016/S0891-5849(13)00133-0") # 标题 -demo_parse_pdf(book_name="scihub/scihub_36500000/libgen.scimag36588000-36588999.zip_10.1109/adprl.2014.7010623") # 标题 -demo_parse_pdf(book_name="scihub/scihub_47300000/libgen.scimag47374000-47374999.zip_10.1016/B978-0-12-410502-7.00005-3") # 标题 -demo_parse_pdf(book_name="scihub/scihub_80300000/libgen.scimag80371000-80371999.zip_10.1097/MJT.0000000000001112") # 标题 -demo_parse_pdf(book_name="scihub/scihub_82500000/libgen.scimag82595000-82595999.zip_10.1016/B978-0-12-817752-5.00003-2") # 标题 -# demo_parse_pdf(book_name="scihub/scihub_01900000/libgen.scimag01914000-01914999.zip_10.1006/ndsh.1998.0025") # 标题。240 pages。DONES -# demo_parse_pdf(book_name="scihub/scihub_09700000/libgen.scimag09714000-09714999.zip_10.1111/j.1524-4733.2009.00592_2.x") # 标题。240 pages - -demo_parse_pdf(book_name="scihub/scihub_87300000/libgen.scimag87385000-87385999.zip_10.1515/pthp-2020-0016") # 段落切割 -demo_parse_pdf(book_name="scihub/scihub_23000000/libgen.scimag23003000-23003999.zip_10.1007/s12264-013-1404-1") # 段落, -demo_parse_pdf(book_name="scihub/scihub_37000000/libgen.scimag37068000-37068999.zip_10.1080/0015587X.1936.9718622") # 跨页段落合并。第二页文字没有出现。 -demo_parse_pdf(book_name="scihub/scihub_84500000/libgen.scimag84570000-84570999.zip_10.1017/S0033583520000086") # 分段 - -demo_parse_pdf(book_name="scihub/scihub_31800000/libgen.scimag31824000-31824999.zip_10.1109/med.2012.6265668") # 复杂公式 -demo_parse_pdf(book_name="scihub/scihub_36800000/libgen.scimag36890000-36890999.zip_10.2514/1.4659") # 标题,公式 -demo_parse_pdf(book_name="scihub/scihub_58900000/libgen.scimag58981000-58981999.zip_10.1504/ijep.2014.065921") # 公式 - -demo_parse_pdf(book_name="scihub/scihub_23900000/libgen.scimag23969000-23969999.zip_10.1016/S0008-4182(06)80004-9") # 判断是否原生文本。DONE -demo_parse_pdf(book_name="scihub/scihub_69400000/libgen.scimag69479000-69479999.zip_10.1002/0470871660.part1") # 段落连接,分隔符。TODO -demo_parse_pdf(book_name="scihub/scihub_38000000/libgen.scimag38025000-38025999.zip_10.1557/JMR.2001.0368") # 标题,标题字体比正文略小。TODO - -demo_parse_pdf(book_name="scihub/scihub_12600000/libgen.scimag12683000-12683999.zip_10.1007/s10126-001-0057-7") # one block one line. SKIP -demo_parse_pdf(book_name="scihub/scihub_68900000/libgen.scimag68948000-68948999.zip_10.1002/uog.18760") # # 标题和正文混在一个block内部。SKIP -demo_parse_pdf(book_name="scihub/scihub_09700000/libgen.scimag09782000-09782999.zip_10.1111/j.1540-627x.2006.00176.x") # 标题和正文混在一个block内部。SKIP - -demo_parse_pdf(book_name="scihub/scihub_45700000/libgen.scimag45725000-45725999.zip_10.1210/en.2008-1281") # 段落合并。DONE。S3文件失效。 -demo_parse_pdf(book_name="scihub/scihub_47200000/libgen.scismag47212000-47212999.zip_10.7589/0090-3558-40.3.579") # 段落合并。DONE。S3文件失效。 -demo_parse_pdf(book_name="scihub/scihub_83100000/libgen.scimag83192000-83192999.zip_10.1680/jcoma.20.00045") # 段落合并,标题等。DONE。S3文件失效。 - -demo_parse_pdf(book_name="scihub/scihub_47200000/libgen.scismag47212000-47212999.zip_10.7589/0090-3558-40.3.579") # 段落合并。DONE -demo_parse_pdf(book_name="scihub/scihub_80800000/libgen.scimag80896000-80896999.zip_10.1080/13552600.2019.1695968") # 跨页合并paragraph。DONE - -demo_parse_pdf(book_name="scihub/scihub_59800000/libgen.scimag59898000-59898999.zip_10.1002/0471469572.ch5") # 上一段以结束标点结束时,误合并了第二段。DONE.该PDF存在大量图注干扰正文合并的情况。TODO - -demo_parse_pdf(book_name="scihub/scihub_61700000/libgen.scimag61796000-61796999.zip_10.1080/10511970.2016.1162889") # 上一段以结束标点结束时,误合并了第二段。DONE -demo_parse_pdf(book_name="scihub/scihub_54500000/libgen.scimag54597000-54597999.zip_10.1186/s40814-015-0033-z") # DONE -demo_parse_pdf(book_name="scihub/scihub_82000000/libgen.scimag82096000-82096999.zip_10.1016/j.mehy.2020.109851") # 该部分文字被当成页眉页脚删除。SKIP -demo_parse_pdf(book_name="scihub/scihub_84600000/libgen.scimag84652000-84652999.zip_10.1163/1876312x-00001010") # 内容丢失。DONE -demo_parse_pdf(book_name="scihub/scihub_17000000/libgen.scimag17000000-17000999.zip_10.1016/j.pain.2004.06.005") # No19,排查多出空格的情况。DONE -demo_parse_pdf(book_name="scihub/scihub_01500000/libgen.scimag01561000-01561999.zip_10.1002/jmor.10887") # 标题。TODO -demo_parse_pdf(book_name="scihub/scihub_09700000/libgen.scimag09782000-09782999.zip_10.1111/j.1540-627x.2006.00176.x") # 段落合并。TODO -demo_parse_pdf(book_name="scihub/scihub_50900000/libgen.scimag50902000-50902999.zip_10.1007/s12274-016-1035-8") # 段落合并。TODO -demo_parse_pdf(book_name="scihub/scihub_62600000/libgen.scimag62633000-62633999.zip_10.2169/internalmedicine.54.2755") # 段落合并。TODO -demo_parse_pdf(book_name="scihub/scihub_73400000/libgen.scimag73490000-73490999.zip_10.1051/epjconf/201714609022") # 段落合并。TODO -demo_parse_pdf(book_name="scihub/scihub_80100000/libgen.scimag80185000-80185999.zip_10.1353/sib.0.0003") # 段落合并。2006年的论文。PDF格式不规范。问题较多。TODO -demo_parse_pdf(book_name="scihub/scihub_62200000/libgen.scimag62272000-62272999.zip_10.1038/srep31158") # 下一页para blocks为空,导致跨页段落合并失败。DONE - -demo_parse_pdf(book_name="scihub/scihub_21100000/libgen.scimag21136000-21136999.zip_10.1080/10407780490277879") # 29. 段落以一个大写字母开头。DONE -demo_parse_pdf(book_name="scihub/scihub_09800000/libgen.scimag09855000-09855999.zip_10.1111/j.1574-0862.2006.00110.x") # 2. DONE -demo_parse_pdf(book_name="scihub/scihub_29400000/libgen.scimag29456000-29456999.zip_10.1177/0883911505049656") # 8,9 -demo_parse_pdf(book_name="scihub/scihub_31800000/libgen.scimag31839000-31839999.zip_10.4028/www.scientific.net/jbbte.19.99") # 14 -demo_parse_pdf(book_name="scihub/scihub_30200000/libgen.scimag30263000-30263999.zip_10.1081/scc-200036639") # 21 -demo_parse_pdf(book_name="scihub/scihub_58800000/libgen.scimag58887000-58887999.zip_10.1097/gme.0b013e3181c17c06") # 30 -demo_parse_pdf(book_name="scihub/scihub_09000000/libgen.scimag09082000-09082999.zip_10.1111/j.1365-2222.2010.03605.x") # 31,32 -demo_parse_pdf(book_name="scihub/scihub_71200000/libgen.scimag71224000-71224999.zip_10.1038/s41396-018-0231-9") # 34 -demo_parse_pdf(book_name="scihub/scihub_24600000/libgen.scimag24665000-24665999.zip_10.1016/S0387-7604(89)80007-5") # 39 - -# """ -# Found by wang zhi -# 2024-1-24 -# """ -demo_parse_pdf(book_name="scihub/scihub_42100000/libgen.scimag42132000-42132999.zip_10.1080/15205430903457430") # 3 -demo_parse_pdf(book_name="scihub/scihub_20000000/libgen.scimag20099000-20099999.zip_10.1016/s0015-0282(02)03774-3") # 4 -demo_parse_pdf(book_name="scihub/scihub_64900000/libgen.scimag64993000-64993999.zip_10.1097/SIH.0000000000000179") # 5 -demo_parse_pdf(book_name="scihub/scihub_01000000/libgen.scimag01040000-01040999.zip_10.1002/chin.200846224") # 12 -demo_parse_pdf(book_name="scihub/scihub_42100000/libgen.scimag42162000-42162999.zip_10.1093/notesj/gjm116") # 13 -demo_parse_pdf(book_name="scihub/scihub_73100000/libgen.scimag73198000-73198999.zip_10.1007/978-1-4842-4197-4_4") # 20 -demo_parse_pdf(book_name="scihub/scihub_16500000/libgen.scimag16596000-16596999.zip_10.1016/j.febslet.2005.05.011") # 24 -demo_parse_pdf(book_name="scihub/scihub_53900000/libgen.scimag53941000-53941999.zip_10.1016/s0264-3707(15)00099-x") # 26 -demo_parse_pdf(book_name="scihub/scihub_60800000/libgen.scimag60801000-60801999.zip_10.1680/mpal.2014.167.1.61") # 27 -demo_parse_pdf(book_name="scihub/scihub_14100000/libgen.scimag14109000-14109999.zip_10.1016/s0960-9822(00)00772-7") # 32 -demo_parse_pdf(book_name="scihub/scihub_76200000/libgen.scimag76297000-76297999.zip_10.4018/jehmc.2011040101") # 33 -demo_parse_pdf(book_name="scihub/scihub_77600000/libgen.scimag77607000-77607999.zip_10.1016/j.nut.2019.08.013") # 40 -demo_parse_pdf(book_name="scihub/scihub_82100000/libgen.scimag82168000-82168999.zip_10.1061/(ASCE)SU.1943-5428.0000323") # 42 - -# """ -# 跨页合并段落多出文字问题 -# """ - -demo_parse_pdf(book_name="scihub/scihub_48600000/libgen.scimag48645000-48645999.zip_10.1163/22941932-90000220") # wang zhi, 31。DONE -demo_parse_pdf(book_name="scihub/scihub_09000000/libgen.scimag09082000-09082999.zip_10.1111/j.1365-2222.2010.03605.x") # xiang, 32 -demo_parse_pdf(book_name="scihub/scihub_09800000/libgen.scimag09855000-09855999.zip_10.1111/j.1574-0862.2006.00110.x") # wang zhi, 18。DONE -demo_parse_pdf(book_name="scihub/scihub_76200000/libgen.scimag76297000-76297999.zip_10.4018/jehmc.2011040101") # xiang, 4,5,6。 DONE - -# """ -# 内容丢失问题 -# """ - -# """ -# 标题丢失 -# """ -demo_parse_pdf(book_name="scihub/scihub_31800000/libgen.scimag31824000-31824999.zip_10.1109/med.2012.6265668") # xiang. 被text_block_horizontal_overlap规则drop. - -demo_parse_pdf(book_name="scihub/scihub_01800000/libgen.scimag01870000-01870999.zip_10.1006/jcis.2000.7105") # wangzhi, 1-24, 67. 内容缺失,丢失内容 "thus, there is a". Checking... - -demo_parse_pdf(book_name="scihub/") # - -# """ -# Found by Liu Silu -# 2024-02-04 -# """ -demo_parse_pdf(book_name="scihub/scihub_38900000/libgen.scimag38917000-38917999.zip_10.1142/S0219649208002159") # - - - - - - - -demo_parse_pdf(book_name="scihub/") # \ No newline at end of file diff --git a/tests/test_para/test_hyphen_at_line_end.py b/tests/test_para/test_hyphen_at_line_end.py deleted file mode 100644 index 57cf313d7..000000000 --- a/tests/test_para/test_hyphen_at_line_end.py +++ /dev/null @@ -1,28 +0,0 @@ - -from magic_pdf.dict2md.ocr_mkcontent import __is_hyphen_at_line_end - - -def test_hyphen_at_line_end(): - """ - 测试行尾是不是一个连字符 - """ - test_cases_ok = [ - "I am zhang-", - "you are zhang- ", - "math-", - "This is a TEST-", - "This is a TESTing-", - "美国人 hello-", - ] - test_cases_bad = [ - "This is a TEST$-", - "This is a TEST21-", - "中国人-", - "美国人 hello人-", - "this is 123-", - ] - for test_case in test_cases_ok: - assert __is_hyphen_at_line_end(test_case) - - for test_case in test_cases_bad: - assert not __is_hyphen_at_line_end(test_case) \ No newline at end of file diff --git a/tests/test_para/test_para_pipeline.py b/tests/test_para/test_para_pipeline.py deleted file mode 100644 index 612e9bc17..000000000 --- a/tests/test_para/test_para_pipeline.py +++ /dev/null @@ -1,56 +0,0 @@ -import unittest - -""" -Execute the following command to run the tests under directory code-clean: - - python -m tests.test_para.test_para_pipeline - - or - - pytest -v -s app/pdf_toolbox/tests/test_para/test_para_pipeline.py - -""" - -from tests.test_para.test_pdf2text_recogPara_Common import ( - TestIsBboxOverlap, - TestIsInBbox, - TestIsBboxOverlap, - TestIsLineLeftAlignedFromNeighbors, - TestIsLineRightAlignedFromNeighbors, -) -from tests.test_para.test_pdf2text_recogPara_EquationsProcessor import TestCalcOverlapPct -from tests.test_para.test_pdf2text_recogPara_BlockInnerParasProcessor import TestIsConsistentLines -from tests.test_para.test_pdf2text_recogPara_BlockContinuationProcessor import ( - TestIsAlphabetChar, - TestIsChineseChar, - TestIsOtherLetterChar, -) -from tests.test_para.test_pdf2text_recogPara_TitleProcessor import TestTitleProcessor - - -# Test suite -suite = unittest.TestSuite() - -# Test cases from test_pdf2text_recogPara_Common -suite.addTest(unittest.makeSuite(TestIsBboxOverlap)) -suite.addTest(unittest.makeSuite(TestIsInBbox)) -suite.addTest(unittest.makeSuite(TestIsBboxOverlap)) -suite.addTest(unittest.makeSuite(TestIsLineLeftAlignedFromNeighbors)) -suite.addTest(unittest.makeSuite(TestIsLineRightAlignedFromNeighbors)) - -# Test cases from test_pdf2text_recogPara_EquationsProcessor -suite.addTest(unittest.makeSuite(TestCalcOverlapPct)) - -# Test cases from test_pdf2text_recogPara_BlockInnerParasProcessor -suite.addTest(unittest.makeSuite(TestIsConsistentLines)) - -# Test cases from test_pdf2text_recogPara_BlockContinuationProcessor -suite.addTest(unittest.makeSuite(TestIsAlphabetChar)) -suite.addTest(unittest.makeSuite(TestIsChineseChar)) -suite.addTest(unittest.makeSuite(TestIsOtherLetterChar)) - -# Test cases from test_pdf2text_recogPara_TitleProcessor -suite.addTest(unittest.makeSuite(TestTitleProcessor)) - -# Run test suite -unittest.TextTestRunner(verbosity=2).run(suite) diff --git a/tests/test_para/test_pdf2text_recogPara_BlockContinuationProcessor.py b/tests/test_para/test_pdf2text_recogPara_BlockContinuationProcessor.py deleted file mode 100644 index a52ec77b3..000000000 --- a/tests/test_para/test_pdf2text_recogPara_BlockContinuationProcessor.py +++ /dev/null @@ -1,65 +0,0 @@ -import unittest - -from magic_pdf.post_proc.detect_para import BlockContinuationProcessor - -# from ... pdf2text_recogPara import BlockContinuationProcessor # another way to import - -""" -Execute the following command to run the test under directory code-clean: - - python -m tests.test_para.test_pdf2text_recogPara_ClassName - - or - - pytest -v -s app/pdf_toolbox/tests/test_para/test_pdf2text_recogPara_BlockContinuationProcessor.py - -""" - - -class TestIsAlphabetChar(unittest.TestCase): - def setUp(self): - self.obj = BlockContinuationProcessor() - - def test_is_alphabet_char(self): - char = "A" - result = self.obj._is_alphabet_char(char) - self.assertTrue(result) - - def test_is_not_alphabet_char(self): - char = "1" - result = self.obj._is_alphabet_char(char) - self.assertFalse(result) - - -class TestIsChineseChar(unittest.TestCase): - def setUp(self): - self.obj = BlockContinuationProcessor() - - def test_is_chinese_char(self): - char = "中" - result = self.obj._is_chinese_char(char) - self.assertTrue(result) - - def test_is_not_chinese_char(self): - char = "A" - result = self.obj._is_chinese_char(char) - self.assertFalse(result) - - -class TestIsOtherLetterChar(unittest.TestCase): - def setUp(self): - self.obj = BlockContinuationProcessor() - - def test_is_other_letter_char(self): - char = "Ä" - result = self.obj._is_other_letter_char(char) - self.assertTrue(result) - - def test_is_not_other_letter_char(self): - char = "A" - result = self.obj._is_other_letter_char(char) - self.assertFalse(result) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_para/test_pdf2text_recogPara_BlockInnerParasProcessor.py b/tests/test_para/test_pdf2text_recogPara_BlockInnerParasProcessor.py deleted file mode 100644 index 1d0834384..000000000 --- a/tests/test_para/test_pdf2text_recogPara_BlockInnerParasProcessor.py +++ /dev/null @@ -1,107 +0,0 @@ -import unittest - -from magic_pdf.post_proc.detect_para import BlockTerminationProcessor - -# from ... pdf2text_recogPara import BlockInnerParasProcessor # another way to import - -""" -Execute the following command to run the test under directory code-clean: - - python -m tests.test_para.test_pdf2text_recogPara_ClassName - - or - - pytest -v -s app/pdf_toolbox/tests/test_para/test_pdf2text_recogPara_BlockInnerParasProcessor.py - -""" - - -class TestIsConsistentLines(unittest.TestCase): - def setUp(self): - self.obj = BlockTerminationProcessor() - - def test_consistent_with_prev_line(self): - curr_line = {"spans": [{"size": 12, "font": "Arial"}]} - prev_line = {"spans": [{"size": 12, "font": "Arial"}]} - next_line = None - consistent_direction = 0 - result = self.obj._is_consistent_lines(curr_line, prev_line, next_line, consistent_direction) - self.assertTrue(result) - - def test_consistent_with_next_line(self): - curr_line = {"spans": [{"size": 12, "font": "Arial"}]} - prev_line = None - next_line = {"spans": [{"size": 12, "font": "Arial"}]} - consistent_direction = 1 - result = self.obj._is_consistent_lines(curr_line, prev_line, next_line, consistent_direction) - self.assertTrue(result) - - def test_consistent_with_both_lines(self): - curr_line = {"spans": [{"size": 12, "font": "Arial"}]} - prev_line = {"spans": [{"size": 12, "font": "Arial"}]} - next_line = {"spans": [{"size": 12, "font": "Arial"}]} - consistent_direction = 2 - result = self.obj._is_consistent_lines(curr_line, prev_line, next_line, consistent_direction) - self.assertTrue(result) - - def test_inconsistent_with_prev_line(self): - curr_line = {"spans": [{"size": 12, "font": "Arial"}]} - prev_line = {"spans": [{"size": 14, "font": "Arial"}]} - next_line = None - consistent_direction = 0 - result = self.obj._is_consistent_lines(curr_line, prev_line, next_line, consistent_direction) - self.assertFalse(result) - - def test_inconsistent_with_next_line(self): - curr_line = {"spans": [{"size": 12, "font": "Arial"}]} - prev_line = None - next_line = {"spans": [{"size": 14, "font": "Arial"}]} - consistent_direction = 1 - result = self.obj._is_consistent_lines(curr_line, prev_line, next_line, consistent_direction) - self.assertFalse(result) - - def test_inconsistent_with_both_lines(self): - curr_line = {"spans": [{"size": 12, "font": "Arial"}]} - prev_line = {"spans": [{"size": 14, "font": "Arial"}]} - next_line = {"spans": [{"size": 14, "font": "Arial"}]} - consistent_direction = 2 - result = self.obj._is_consistent_lines(curr_line, prev_line, next_line, consistent_direction) - self.assertFalse(result) - - def test_invalid_consistent_direction(self): - curr_line = {"spans": [{"size": 12, "font": "Arial"}]} - prev_line = None - next_line = None - consistent_direction = 3 - result = self.obj._is_consistent_lines(curr_line, prev_line, next_line, consistent_direction) - self.assertFalse(result) - - def test_possible_start_of_para(self): - curr_line = {"bbox": (0, 0, 100, 10)} - prev_line = {"bbox": (0, 20, 100, 30)} - next_line = {"bbox": (0, 40, 100, 50)} - X0 = 0 - X1 = 100 - avg_char_width = 5 - avg_font_size = 10 - - result, _, _ = self.obj._is_possible_start_of_para( - curr_line, prev_line, next_line, X0, X1, avg_char_width, avg_font_size - ) - self.assertTrue(result) - - def test_not_possible_start_of_para(self): - curr_line = {"bbox": (0, 0, 100, 10)} - prev_line = {"bbox": (0, 20, 100, 30)} - next_line = {"bbox": (0, 40, 100, 50)} - X0 = 0 - X1 = 100 - avg_char_width = 5 - avg_font_size = 10 - - result, _, _ = self.obj._is_possible_start_of_para(curr_line, prev_line, next_line, X0, X1, avg_char_width, avg_font_size) - self.assertTrue(result) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_para/test_pdf2text_recogPara_Common.py b/tests/test_para/test_pdf2text_recogPara_Common.py deleted file mode 100644 index 6c518d2a7..000000000 --- a/tests/test_para/test_pdf2text_recogPara_Common.py +++ /dev/null @@ -1,211 +0,0 @@ -import unittest - -from magic_pdf.post_proc.detect_para import ( - is_bbox_overlap, - is_in_bbox, - is_line_right_aligned_from_neighbors, - is_line_left_aligned_from_neighbors, -) - -# from ... pdf2text_recogPara import * # another way to import - -""" -Execute the following command to run the test under directory code-clean: - - python -m tests.test_para.test_pdf2text_recogPara_Common - - or - - pytest -v -s app/pdf_toolbox/tests/test_para/test_pdf2text_recogPara_Common.py - -""" - - -class TestIsBboxOverlap(unittest.TestCase): - def test_overlap(self): - bbox1 = [0, 0, 10, 10] - bbox2 = [5, 5, 15, 15] - result = is_bbox_overlap(bbox1, bbox2) - self.assertTrue(result) - - def test_no_overlap(self): - bbox1 = [0, 0, 10, 10] - bbox2 = [11, 11, 15, 15] - result = is_bbox_overlap(bbox1, bbox2) - self.assertFalse(result) - - def test_partial_overlap(self): - bbox1 = [0, 0, 10, 10] - bbox2 = [5, 5, 15, 15] - result = is_bbox_overlap(bbox1, bbox2) - self.assertTrue(result) - - def test_same_bbox(self): - bbox1 = [0, 0, 10, 10] - bbox2 = [0, 0, 10, 10] - result = is_bbox_overlap(bbox1, bbox2) - self.assertTrue(result) - - -# Test is_in_bbox function -class TestIsInBbox(unittest.TestCase): - def test_bbox1_in_bbox2(self): - bbox1 = [0, 0, 10, 10] - bbox2 = [0, 0, 20, 20] - result = is_in_bbox(bbox1, bbox2) - self.assertTrue(result) - - def test_bbox1_not_in_bbox2(self): - bbox1 = [0, 0, 30, 30] - bbox2 = [0, 0, 20, 20] - result = is_in_bbox(bbox1, bbox2) - self.assertFalse(result) - - def test_bbox1_equal_to_bbox2(self): - bbox1 = [0, 0, 20, 20] - bbox2 = [0, 0, 20, 20] - result = is_in_bbox(bbox1, bbox2) - self.assertTrue(result) - - def test_bbox1_partially_in_bbox2(self): - bbox1 = [10, 10, 30, 30] - bbox2 = [0, 0, 20, 20] - result = is_in_bbox(bbox1, bbox2) - self.assertFalse(result) - - -# Test is_line_right_aligned_from_neighbors function -class TestIsLineRightAlignedFromNeighbors(unittest.TestCase): - def test_right_aligned_with_prev_line(self): - curr_line_bbox = [0, 0, 100, 100] - prev_line_bbox = [0, 0, 90, 100] - next_line_bbox = None - avg_char_width = 10 - direction = 0 - result = is_line_right_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_right_aligned_with_next_line(self): - curr_line_bbox = [0, 0, 100, 100] - prev_line_bbox = None - next_line_bbox = [0, 0, 110, 100] - avg_char_width = 10 - direction = 1 - result = is_line_right_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_right_aligned_with_both_lines(self): - curr_line_bbox = [0, 0, 100, 100] - prev_line_bbox = [0, 0, 90, 100] - next_line_bbox = [0, 0, 110, 100] - avg_char_width = 10 - direction = 2 - result = is_line_right_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_not_right_aligned_with_prev_line(self): - curr_line_bbox = [0, 0, 100, 100] - prev_line_bbox = [0, 0, 80, 100] - next_line_bbox = None - avg_char_width = 10 - direction = 0 - result = is_line_right_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_not_right_aligned_with_next_line(self): - curr_line_bbox = [0, 0, 100, 100] - prev_line_bbox = None - next_line_bbox = [0, 0, 120, 100] - avg_char_width = 10 - direction = 1 - result = is_line_right_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_not_right_aligned_with_both_lines(self): - curr_line_bbox = [0, 0, 100, 100] - prev_line_bbox = [0, 0, 80, 100] - next_line_bbox = [0, 0, 120, 100] - avg_char_width = 10 - direction = 2 - result = is_line_right_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_invalid_direction(self): - curr_line_bbox = [0, 0, 100, 100] - prev_line_bbox = None - next_line_bbox = None - avg_char_width = 10 - direction = 3 - result = is_line_right_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - -# Test is_line_left_aligned_from_neighbors function -class TestIsLineLeftAlignedFromNeighbors(unittest.TestCase): - - def test_left_aligned_with_prev_line(self): - curr_line_bbox = [10, 20, 30, 40] - prev_line_bbox = [5, 20, 30, 40] - next_line_bbox = None - avg_char_width = 5.0 - direction = 0 - result = is_line_left_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_left_aligned_with_next_line(self): - curr_line_bbox = [10, 20, 30, 40] - prev_line_bbox = None - next_line_bbox = [15, 20, 30, 40] - avg_char_width = 5.0 - direction = 1 - result = is_line_left_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_left_aligned_with_both_lines(self): - curr_line_bbox = [10, 20, 30, 40] - prev_line_bbox = [5, 20, 30, 40] - next_line_bbox = [15, 20, 30, 40] - avg_char_width = 5.0 - direction = 2 - result = is_line_left_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_not_left_aligned_with_prev_line(self): - curr_line_bbox = [10, 20, 30, 40] - prev_line_bbox = [5, 20, 30, 40] - next_line_bbox = None - avg_char_width = 5.0 - direction = 0 - result = is_line_left_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_not_left_aligned_with_next_line(self): - curr_line_bbox = [10, 20, 30, 40] - prev_line_bbox = None - next_line_bbox = [15, 20, 30, 40] - avg_char_width = 5.0 - direction = 1 - result = is_line_left_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_not_left_aligned_with_both_lines(self): - curr_line_bbox = [10, 20, 30, 40] - prev_line_bbox = [5, 20, 30, 40] - next_line_bbox = [15, 20, 30, 40] - avg_char_width = 5.0 - direction = 2 - result = is_line_left_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - def test_invalid_direction(self): - curr_line_bbox = [10, 20, 30, 40] - prev_line_bbox = None - next_line_bbox = None - avg_char_width = 5.0 - direction = 3 - result = is_line_left_aligned_from_neighbors(curr_line_bbox, prev_line_bbox, next_line_bbox, avg_char_width, direction) - self.assertFalse(result) - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_para/test_pdf2text_recogPara_TitleProcessor.py b/tests/test_para/test_pdf2text_recogPara_TitleProcessor.py deleted file mode 100644 index b822ac5b5..000000000 --- a/tests/test_para/test_pdf2text_recogPara_TitleProcessor.py +++ /dev/null @@ -1,59 +0,0 @@ -import json -import unittest - -from utils_for_test_para import UtilsForTestPara -from magic_pdf.post_proc.detect_para import TitleProcessor - -# from ... pdf2text_recogPara import * # another way to import - -""" -Execute the following command to run the test under directory code-clean: - - python -m tests.test_para.test_pdf2text_recogPara_ClassName - - or - - pytest -v -s app/pdf_toolbox/tests/test_para/test_pdf2text_recogPara_TitleProcessor.py - -""" - - -class TestTitleProcessor(unittest.TestCase): - def setUp(self): - self.title_processor = TitleProcessor() - self.utils = UtilsForTestPara() - self.preproc_out_jsons = self.utils.read_preproc_out_jfiles() - - def test_batch_process_blocks_detect_titles(self): - """ - Test the function detect_titles with preprocessed output JSON - """ - for preproc_out_json in self.preproc_out_jsons: - with open(preproc_out_json, "r", encoding="utf-8") as f: - preproc_dict = json.load(f) - preproc_dict["statistics"] = {} - result = self.title_processor.batch_detect_titles(preproc_dict) - for page_id, blocks in preproc_dict.items(): - if page_id.startswith("page_"): - pass - else: - continue - - def test_batch_process_blocks_recog_title_level(self): - """ - Test the function batch_process_blocks_recog_title_level with preprocessed output JSON - """ - for preproc_out_json in self.preproc_out_jsons: - with open(preproc_out_json, "r", encoding="utf-8") as f: - preproc_dict = json.load(f) - preproc_dict["statistics"] = {} - result = self.title_processor.batch_recog_title_level(preproc_dict) - for page_id, blocks in preproc_dict.items(): - if page_id.startswith("page_"): - pass - else: - continue - - -if __name__ == "__main__": - unittest.main() diff --git a/tests/test_para/utils_for_test_para.py b/tests/test_para/utils_for_test_para.py deleted file mode 100644 index cc65a7d97..000000000 --- a/tests/test_para/utils_for_test_para.py +++ /dev/null @@ -1,45 +0,0 @@ -import os - -class UtilsForTestPara: - def __init__(self): - curr_dir = os.path.dirname(os.path.abspath(__file__)) - parent_dir = os.path.dirname(curr_dir) - assets_dir = os.path.join(parent_dir, "assets") - self.default_pre_proc_out_dir = os.path.join(assets_dir, "pre_proc_results") - - if not os.path.exists(assets_dir): - raise FileNotFoundError("The assets directory does not exist. Please check the path.") - - def read_preproc_out_jfiles(self, input_dir=None): - """ - Read all preproc_out.json files under the directory input_dir - - Parameters - ---------- - input_dir : str - The directory where the preproc_out.json files are located. - The default is default_pre_proc_out_dir. - - Returns - ------- - preproc_out_jsons : list - A list of paths of preproc_out.json files. - - """ - if input_dir is None: - input_dir = self.default_pre_proc_out_dir - - preproc_out_jsons = [] - for root, dirs, files in os.walk(input_dir): - for file in files: - if file.endswith("preproc_out.json"): - preproc_out_json_abs_path = os.path.join(root, file) - preproc_out_jsons.append(preproc_out_json_abs_path) - - return preproc_out_jsons - -if __name__ == "__main__": - utils = UtilsForTestPara() - preproc_out_jsons = utils.read_preproc_out_jfiles() - for preproc_out_json in preproc_out_jsons: - print(preproc_out_json) \ No newline at end of file diff --git a/tests/test_table/assets/table.jpg b/tests/test_table/assets/table.jpg deleted file mode 100644 index 95fdf84d9..000000000 Binary files a/tests/test_table/assets/table.jpg and /dev/null differ diff --git a/tests/test_table/test_tablemaster.py b/tests/test_table/test_tablemaster.py deleted file mode 100644 index 5e8f55205..000000000 --- a/tests/test_table/test_tablemaster.py +++ /dev/null @@ -1,18 +0,0 @@ -import unittest -from PIL import Image -from magic_pdf.model.ppTableModel import ppTableModel - -class TestppTableModel(unittest.TestCase): - def test_image2html(self): - img = Image.open("tests/test_table/assets/table.jpg") - # 修改table模型路径 - config = {"device": "cuda", - "model_dir": "D:/models/PDF-Extract-Kit/models/TabRec/TableMaster"} - table_model = ppTableModel(config) - res = table_model.img2html(img) - true_value = """
    MethodsRPFFPS
    SegLink [26]70.086.077.08.9
    PixelLink [4]73.283.077.8-
    TextSnake [18]73.983.278.31.1
    TextField [37]75.987.481.35.2
    MSR[38]76.787.481.7-
    FTSN[3]77.187.682.0-
    LSE[30]81.784.282.9-
    CRAFT [2]78.288.282.98.6
    MCN [16]7988.83-
    ATRR[35]82.185.283.6-
    PAN [34]83.884.484.130.2
    DB[12]79.291.584.932.0
    DRRG [41]82.3088.0585.08-
    Ours (SynText)80.6885.4082.9712.68
    Ours (MLT-17)84.5486.6285.5712.31
    \n""" - self.assertEqual(true_value, res) - - -if __name__ == "__main__": - unittest.main() \ No newline at end of file diff --git a/tests/test_tools/__init__.py b/tests/test_tools/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/test_tools/assets/cli/path/cli_test_01.pdf b/tests/test_tools/assets/cli/path/cli_test_01.pdf deleted file mode 100644 index 229be9cee..000000000 Binary files a/tests/test_tools/assets/cli/path/cli_test_01.pdf and /dev/null differ diff --git a/tests/test_tools/assets/cli/path/cli_test_02.pdf b/tests/test_tools/assets/cli/path/cli_test_02.pdf deleted file mode 100644 index 1adcc01c5..000000000 Binary files a/tests/test_tools/assets/cli/path/cli_test_02.pdf and /dev/null differ diff --git a/tests/test_tools/assets/cli/pdf/cli_test_01.pdf b/tests/test_tools/assets/cli/pdf/cli_test_01.pdf deleted file mode 100644 index 229be9cee..000000000 Binary files a/tests/test_tools/assets/cli/pdf/cli_test_01.pdf and /dev/null differ diff --git a/tests/test_tools/assets/cli_dev/cli_test_01.jsonl b/tests/test_tools/assets/cli_dev/cli_test_01.jsonl deleted file mode 100644 index c9ca39c72..000000000 --- a/tests/test_tools/assets/cli_dev/cli_test_01.jsonl +++ /dev/null @@ -1 +0,0 @@ -{"file_location":"tests/test_tools/assets/cli_dev/cli_test_01.pdf","doc_layout_result":[{"layout_dets":[{"category_id":1,"poly":[882.4013061523438,169.93817138671875,1552.350341796875,169.93817138671875,1552.350341796875,625.8263549804688,882.4013061523438,625.8263549804688],"score":0.999992311000824},{"category_id":1,"poly":[882.474853515625,1450.92822265625,1551.4490966796875,1450.92822265625,1551.4490966796875,1877.5712890625,882.474853515625,1877.5712890625],"score":0.9999903440475464},{"category_id":1,"poly":[881.6513061523438,626.2058715820312,1552.1400146484375,626.2058715820312,1552.1400146484375,1450.604736328125,881.6513061523438,1450.604736328125],"score":0.9999856352806091},{"category_id":1,"poly":[149.41075134277344,232.1595001220703,819.0465087890625,232.1595001220703,819.0465087890625,625.8865356445312,149.41075134277344,625.8865356445312],"score":0.99998539686203},{"category_id":1,"poly":[149.3945770263672,1215.5172119140625,817.8850708007812,1215.5172119140625,817.8850708007812,1304.873291015625,149.3945770263672,1304.873291015625],"score":0.9999765157699585},{"category_id":1,"poly":[882.6979370117188,1880.13916015625,1552.15185546875,1880.13916015625,1552.15185546875,2031.339599609375,882.6979370117188,2031.339599609375],"score":0.9999744892120361},{"category_id":1,"poly":[148.96054077148438,743.3055419921875,818.6231689453125,743.3055419921875,818.6231689453125,1074.2369384765625,148.96054077148438,1074.2369384765625],"score":0.9999669790267944},{"category_id":1,"poly":[148.8435516357422,1791.14306640625,818.6885375976562,1791.14306640625,818.6885375976562,2030.794189453125,148.8435516357422,2030.794189453125],"score":0.9999618530273438},{"category_id":0,"poly":[150.7009735107422,684.0087890625,623.5106201171875,684.0087890625,623.5106201171875,717.03662109375,150.7009735107422,717.03662109375],"score":0.9999415278434753},{"category_id":8,"poly":[146.48068237304688,1331.6737060546875,317.2640075683594,1331.6737060546875,317.2640075683594,1400.1722412109375,146.48068237304688,1400.1722412109375],"score":0.9998958110809326},{"category_id":1,"poly":[149.42420959472656,1430.8782958984375,818.9042358398438,1430.8782958984375,818.9042358398438,1672.7386474609375,149.42420959472656,1672.7386474609375],"score":0.9998599290847778},{"category_id":1,"poly":[149.18746948242188,172.10252380371094,818.5662231445312,172.10252380371094,818.5662231445312,230.4594268798828,149.18746948242188,230.4594268798828],"score":0.9997718334197998},{"category_id":0,"poly":[149.0175018310547,1732.1090087890625,702.1005859375,1732.1090087890625,702.1005859375,1763.6046142578125,149.0175018310547,1763.6046142578125],"score":0.9997085928916931},{"category_id":2,"poly":[1519.802490234375,98.59099578857422,1551.985107421875,98.59099578857422,1551.985107421875,119.48420715332031,1519.802490234375,119.48420715332031],"score":0.9995552897453308},{"category_id":8,"poly":[146.9109649658203,1100.156494140625,544.2803344726562,1100.156494140625,544.2803344726562,1184.929443359375,146.9109649658203,1184.929443359375],"score":0.9995207786560059},{"category_id":2,"poly":[148.11611938476562,99.87767791748047,318.926025390625,99.87767791748047,318.926025390625,120.70393371582031,148.11611938476562,120.70393371582031],"score":0.999351441860199},{"category_id":9,"poly":[791.7642211914062,1130.056396484375,818.6940307617188,1130.056396484375,818.6940307617188,1161.1080322265625,791.7642211914062,1161.1080322265625],"score":0.9908884763717651},{"category_id":9,"poly":[788.37060546875,1346.8450927734375,818.5010986328125,1346.8450927734375,818.5010986328125,1377.370361328125,788.37060546875,1377.370361328125],"score":0.9873985052108765},{"category_id":14,"poly":[146,1103,543,1103,543,1184,146,1184],"score":0.94,"latex":"E\\!\\left(W\\right)\\!=\\!\\frac{E\\!\\left[H^{2}\\right]}{2E\\!\\left[H\\right]}\\!=\\!\\frac{E\\!\\left[H\\right]}{2}\\!\\!\\left(1\\!+\\!\\operatorname{CV}\\!\\left(H\\right)^{2}\\right)"},{"category_id":13,"poly":[1196,354,1278,354,1278,384,1196,384],"score":0.91,"latex":"p(1-q)"},{"category_id":13,"poly":[881,415,1020,415,1020,444,881,444],"score":0.91,"latex":"(1-p)(1-q)"},{"category_id":14,"poly":[147,1333,318,1333,318,1400,147,1400],"score":0.91,"latex":"\\mathbf{CV}\\big(H\\big)\\!=\\!\\frac{\\boldsymbol{\\upsigma}_{H}}{E\\big[H\\big]}"},{"category_id":13,"poly":[1197,657,1263,657,1263,686,1197,686],"score":0.9,"latex":"(1-p)"},{"category_id":13,"poly":[213,1217,263,1217,263,1244,213,1244],"score":0.88,"latex":"E[X]"},{"category_id":13,"poly":[214,1434,245,1434,245,1459,214,1459],"score":0.87,"latex":"\\upsigma_{H}"},{"category_id":13,"poly":[324,2002,373,2002,373,2028,324,2028],"score":0.84,"latex":"30\\%"},{"category_id":13,"poly":[1209,693,1225,693,1225,717,1209,717],"score":0.83,"latex":"p"},{"category_id":13,"poly":[990,449,1007,449,1007,474,990,474],"score":0.81,"latex":"p"},{"category_id":13,"poly":[346,1277,369,1277,369,1301,346,1301],"score":0.81,"latex":"H"},{"category_id":13,"poly":[1137,661,1154,661,1154,686,1137,686],"score":0.81,"latex":"p"},{"category_id":13,"poly":[522,1432,579,1432,579,1459,522,1459],"score":0.81,"latex":"H\\left(4\\right)"},{"category_id":13,"poly":[944,540,962,540,962,565,944,565],"score":0.8,"latex":"p"},{"category_id":13,"poly":[1444,936,1461,936,1461,961,1444,961],"score":0.79,"latex":"p"},{"category_id":13,"poly":[602,1247,624,1247,624,1270,602,1270],"score":0.78,"latex":"H"},{"category_id":13,"poly":[147,1247,167,1247,167,1271,147,1271],"score":0.77,"latex":"X"},{"category_id":13,"poly":[210,1246,282,1246,282,1274,210,1274],"score":0.77,"latex":"\\operatorname{CV}(H)"},{"category_id":13,"poly":[1346,268,1361,268,1361,292,1346,292],"score":0.76,"latex":"q"},{"category_id":13,"poly":[215,957,238,957,238,981,215,981],"score":0.74,"latex":"H"},{"category_id":13,"poly":[149,956,173,956,173,981,149,981],"score":0.63,"latex":"W"},{"category_id":13,"poly":[924,841,1016,841,1016,868,924,868],"score":0.56,"latex":"8{\\cdot}00\\;\\mathrm{a.m}"},{"category_id":13,"poly":[956,871,1032,871,1032,898,956,898],"score":0.43,"latex":"20~\\mathrm{min}"},{"category_id":13,"poly":[1082,781,1112,781,1112,808,1082,808],"score":0.41,"latex":"(l)"},{"category_id":13,"poly":[697,1821,734,1821,734,1847,697,1847],"score":0.3,"latex":"^{1\\mathrm{~h~}}"}],"page_info":{"page_no":0,"height":2200,"width":1700}}]} \ No newline at end of file diff --git a/tests/test_tools/assets/cli_dev/cli_test_01.model.json b/tests/test_tools/assets/cli_dev/cli_test_01.model.json deleted file mode 100644 index a55f91fea..000000000 --- a/tests/test_tools/assets/cli_dev/cli_test_01.model.json +++ /dev/null @@ -1,638 +0,0 @@ -[ - { - "layout_dets": [ - { - "category_id": 1, - "poly": [ - 882.4013061523438, - 169.93817138671875, - 1552.350341796875, - 169.93817138671875, - 1552.350341796875, - 625.8263549804688, - 882.4013061523438, - 625.8263549804688 - ], - "score": 0.999992311000824 - }, - { - "category_id": 1, - "poly": [ - 882.474853515625, - 1450.92822265625, - 1551.4490966796875, - 1450.92822265625, - 1551.4490966796875, - 1877.5712890625, - 882.474853515625, - 1877.5712890625 - ], - "score": 0.9999903440475464 - }, - { - "category_id": 1, - "poly": [ - 881.6513061523438, - 626.2058715820312, - 1552.1400146484375, - 626.2058715820312, - 1552.1400146484375, - 1450.604736328125, - 881.6513061523438, - 1450.604736328125 - ], - "score": 0.9999856352806091 - }, - { - "category_id": 1, - "poly": [ - 149.41075134277344, - 232.1595001220703, - 819.0465087890625, - 232.1595001220703, - 819.0465087890625, - 625.8865356445312, - 149.41075134277344, - 625.8865356445312 - ], - "score": 0.99998539686203 - }, - { - "category_id": 1, - "poly": [ - 149.3945770263672, - 1215.5172119140625, - 817.8850708007812, - 1215.5172119140625, - 817.8850708007812, - 1304.873291015625, - 149.3945770263672, - 1304.873291015625 - ], - "score": 0.9999765157699585 - }, - { - "category_id": 1, - "poly": [ - 882.6979370117188, - 1880.13916015625, - 1552.15185546875, - 1880.13916015625, - 1552.15185546875, - 2031.339599609375, - 882.6979370117188, - 2031.339599609375 - ], - "score": 0.9999744892120361 - }, - { - "category_id": 1, - "poly": [ - 148.96054077148438, - 743.3055419921875, - 818.6231689453125, - 743.3055419921875, - 818.6231689453125, - 1074.2369384765625, - 148.96054077148438, - 1074.2369384765625 - ], - "score": 0.9999669790267944 - }, - { - "category_id": 1, - "poly": [ - 148.8435516357422, - 1791.14306640625, - 818.6885375976562, - 1791.14306640625, - 818.6885375976562, - 2030.794189453125, - 148.8435516357422, - 2030.794189453125 - ], - "score": 0.9999618530273438 - }, - { - "category_id": 0, - "poly": [ - 150.7009735107422, - 684.0087890625, - 623.5106201171875, - 684.0087890625, - 623.5106201171875, - 717.03662109375, - 150.7009735107422, - 717.03662109375 - ], - "score": 0.9999415278434753 - }, - { - "category_id": 8, - "poly": [ - 146.48068237304688, - 1331.6737060546875, - 317.2640075683594, - 1331.6737060546875, - 317.2640075683594, - 1400.1722412109375, - 146.48068237304688, - 1400.1722412109375 - ], - "score": 0.9998958110809326 - }, - { - "category_id": 1, - "poly": [ - 149.42420959472656, - 1430.8782958984375, - 818.9042358398438, - 1430.8782958984375, - 818.9042358398438, - 1672.7386474609375, - 149.42420959472656, - 1672.7386474609375 - ], - "score": 0.9998599290847778 - }, - { - "category_id": 1, - "poly": [ - 149.18746948242188, - 172.10252380371094, - 818.5662231445312, - 172.10252380371094, - 818.5662231445312, - 230.4594268798828, - 149.18746948242188, - 230.4594268798828 - ], - "score": 0.9997718334197998 - }, - { - "category_id": 0, - "poly": [ - 149.0175018310547, - 1732.1090087890625, - 702.1005859375, - 1732.1090087890625, - 702.1005859375, - 1763.6046142578125, - 149.0175018310547, - 1763.6046142578125 - ], - "score": 0.9997085928916931 - }, - { - "category_id": 2, - "poly": [ - 1519.802490234375, - 98.59099578857422, - 1551.985107421875, - 98.59099578857422, - 1551.985107421875, - 119.48420715332031, - 1519.802490234375, - 119.48420715332031 - ], - "score": 0.9995552897453308 - }, - { - "category_id": 8, - "poly": [ - 146.9109649658203, - 1100.156494140625, - 544.2803344726562, - 1100.156494140625, - 544.2803344726562, - 1184.929443359375, - 146.9109649658203, - 1184.929443359375 - ], - "score": 0.9995207786560059 - }, - { - "category_id": 2, - "poly": [ - 148.11611938476562, - 99.87767791748047, - 318.926025390625, - 99.87767791748047, - 318.926025390625, - 120.70393371582031, - 148.11611938476562, - 120.70393371582031 - ], - "score": 0.999351441860199 - }, - { - "category_id": 9, - "poly": [ - 791.7642211914062, - 1130.056396484375, - 818.6940307617188, - 1130.056396484375, - 818.6940307617188, - 1161.1080322265625, - 791.7642211914062, - 1161.1080322265625 - ], - "score": 0.9908884763717651 - }, - { - "category_id": 9, - "poly": [ - 788.37060546875, - 1346.8450927734375, - 818.5010986328125, - 1346.8450927734375, - 818.5010986328125, - 1377.370361328125, - 788.37060546875, - 1377.370361328125 - ], - "score": 0.9873985052108765 - }, - { - "category_id": 14, - "poly": [ - 146, - 1103, - 543, - 1103, - 543, - 1184, - 146, - 1184 - ], - "score": 0.94, - "latex": "E\\!\\left(W\\right)\\!=\\!\\frac{E\\!\\left[H^{2}\\right]}{2E\\!\\left[H\\right]}\\!=\\!\\frac{E\\!\\left[H\\right]}{2}\\!\\!\\left(1\\!+\\!\\operatorname{CV}\\!\\left(H\\right)^{2}\\right)" - }, - { - "category_id": 13, - "poly": [ - 1196, - 354, - 1278, - 354, - 1278, - 384, - 1196, - 384 - ], - "score": 0.91, - "latex": "p(1-q)" - }, - { - "category_id": 13, - "poly": [ - 881, - 415, - 1020, - 415, - 1020, - 444, - 881, - 444 - ], - "score": 0.91, - "latex": "(1-p)(1-q)" - }, - { - "category_id": 14, - "poly": [ - 147, - 1333, - 318, - 1333, - 318, - 1400, - 147, - 1400 - ], - "score": 0.91, - "latex": "\\mathbf{CV}\\big(H\\big)\\!=\\!\\frac{\\boldsymbol{\\upsigma}_{H}}{E\\big[H\\big]}" - }, - { - "category_id": 13, - "poly": [ - 1197, - 657, - 1263, - 657, - 1263, - 686, - 1197, - 686 - ], - "score": 0.9, - "latex": "(1-p)" - }, - { - "category_id": 13, - "poly": [ - 213, - 1217, - 263, - 1217, - 263, - 1244, - 213, - 1244 - ], - "score": 0.88, - "latex": "E[X]" - }, - { - "category_id": 13, - "poly": [ - 214, - 1434, - 245, - 1434, - 245, - 1459, - 214, - 1459 - ], - "score": 0.87, - "latex": "\\upsigma_{H}" - }, - { - "category_id": 13, - "poly": [ - 324, - 2002, - 373, - 2002, - 373, - 2028, - 324, - 2028 - ], - "score": 0.84, - "latex": "30\\%" - }, - { - "category_id": 13, - "poly": [ - 1209, - 693, - 1225, - 693, - 1225, - 717, - 1209, - 717 - ], - "score": 0.83, - "latex": "p" - }, - { - "category_id": 13, - "poly": [ - 990, - 449, - 1007, - 449, - 1007, - 474, - 990, - 474 - ], - "score": 0.81, - "latex": "p" - }, - { - "category_id": 13, - "poly": [ - 346, - 1277, - 369, - 1277, - 369, - 1301, - 346, - 1301 - ], - "score": 0.81, - "latex": "H" - }, - { - "category_id": 13, - "poly": [ - 1137, - 661, - 1154, - 661, - 1154, - 686, - 1137, - 686 - ], - "score": 0.81, - "latex": "p" - }, - { - "category_id": 13, - "poly": [ - 522, - 1432, - 579, - 1432, - 579, - 1459, - 522, - 1459 - ], - "score": 0.81, - "latex": "H\\left(4\\right)" - }, - { - "category_id": 13, - "poly": [ - 944, - 540, - 962, - 540, - 962, - 565, - 944, - 565 - ], - "score": 0.8, - "latex": "p" - }, - { - "category_id": 13, - "poly": [ - 1444, - 936, - 1461, - 936, - 1461, - 961, - 1444, - 961 - ], - "score": 0.79, - "latex": "p" - }, - { - "category_id": 13, - "poly": [ - 602, - 1247, - 624, - 1247, - 624, - 1270, - 602, - 1270 - ], - "score": 0.78, - "latex": "H" - }, - { - "category_id": 13, - "poly": [ - 147, - 1247, - 167, - 1247, - 167, - 1271, - 147, - 1271 - ], - "score": 0.77, - "latex": "X" - }, - { - "category_id": 13, - "poly": [ - 210, - 1246, - 282, - 1246, - 282, - 1274, - 210, - 1274 - ], - "score": 0.77, - "latex": "\\operatorname{CV}(H)" - }, - { - "category_id": 13, - "poly": [ - 1346, - 268, - 1361, - 268, - 1361, - 292, - 1346, - 292 - ], - "score": 0.76, - "latex": "q" - }, - { - "category_id": 13, - "poly": [ - 215, - 957, - 238, - 957, - 238, - 981, - 215, - 981 - ], - "score": 0.74, - "latex": "H" - }, - { - "category_id": 13, - "poly": [ - 149, - 956, - 173, - 956, - 173, - 981, - 149, - 981 - ], - "score": 0.63, - "latex": "W" - }, - { - "category_id": 13, - "poly": [ - 924, - 841, - 1016, - 841, - 1016, - 868, - 924, - 868 - ], - "score": 0.56, - "latex": "8{\\cdot}00\\;\\mathrm{a.m}" - }, - { - "category_id": 13, - "poly": [ - 956, - 871, - 1032, - 871, - 1032, - 898, - 956, - 898 - ], - "score": 0.43, - "latex": "20~\\mathrm{min}" - }, - { - "category_id": 13, - "poly": [ - 1082, - 781, - 1112, - 781, - 1112, - 808, - 1082, - 808 - ], - "score": 0.41, - "latex": "(l)" - }, - { - "category_id": 13, - "poly": [ - 697, - 1821, - 734, - 1821, - 734, - 1847, - 697, - 1847 - ], - "score": 0.3, - "latex": "^{1\\mathrm{~h~}}" - } - ], - "page_info": { - "page_no": 0, - "height": 2200, - "width": 1700 - } - } -] \ No newline at end of file diff --git a/tests/test_tools/assets/cli_dev/cli_test_01.pdf b/tests/test_tools/assets/cli_dev/cli_test_01.pdf deleted file mode 100644 index 229be9cee..000000000 Binary files a/tests/test_tools/assets/cli_dev/cli_test_01.pdf and /dev/null differ diff --git a/tests/test_tools/assets/common/cli_test_01.pdf b/tests/test_tools/assets/common/cli_test_01.pdf deleted file mode 100644 index 229be9cee..000000000 Binary files a/tests/test_tools/assets/common/cli_test_01.pdf and /dev/null differ diff --git a/tests/test_tools/test_cli.py b/tests/test_tools/test_cli.py deleted file mode 100644 index e66b6d636..000000000 --- a/tests/test_tools/test_cli.py +++ /dev/null @@ -1,125 +0,0 @@ -import tempfile -import os -import shutil -from click.testing import CliRunner - -from magic_pdf.tools.cli import cli - - -def test_cli_pdf(): - # setup - unitest_dir = "/tmp/magic_pdf/unittest/tools" - filename = "cli_test_01" - os.makedirs(unitest_dir, exist_ok=True) - temp_output_dir = tempfile.mkdtemp(dir="/tmp/magic_pdf/unittest/tools") - - # run - runner = CliRunner() - result = runner.invoke( - cli, - [ - "-p", - "tests/test_tools/assets/cli/pdf/cli_test_01.pdf", - "-o", - temp_output_dir, - ], - ) - - # check - assert result.exit_code == 0 - - base_output_dir = os.path.join(temp_output_dir, "cli_test_01/auto") - - r = os.stat(os.path.join(base_output_dir, f"{filename}.md")) - assert r.st_size > 7000 - - r = os.stat(os.path.join(base_output_dir, "middle.json")) - assert r.st_size > 200000 - - r = os.stat(os.path.join(base_output_dir, "model.json")) - assert r.st_size > 15000 - - r = os.stat(os.path.join(base_output_dir, "origin.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "layout.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "spans.pdf")) - assert r.st_size > 500000 - - assert os.path.exists(os.path.join(base_output_dir, "images")) is True - assert os.path.isdir(os.path.join(base_output_dir, "images")) is True - assert os.path.exists(os.path.join(base_output_dir, "content_list.json")) is False - - # teardown - shutil.rmtree(temp_output_dir) - - -def test_cli_path(): - # setup - unitest_dir = "/tmp/magic_pdf/unittest/tools" - os.makedirs(unitest_dir, exist_ok=True) - temp_output_dir = tempfile.mkdtemp(dir="/tmp/magic_pdf/unittest/tools") - - # run - runner = CliRunner() - result = runner.invoke( - cli, ["-p", "tests/test_tools/assets/cli/path", "-o", temp_output_dir] - ) - - # check - assert result.exit_code == 0 - - filename = "cli_test_01" - base_output_dir = os.path.join(temp_output_dir, "cli_test_01/auto") - - r = os.stat(os.path.join(base_output_dir, f"{filename}.md")) - assert r.st_size > 7000 - - r = os.stat(os.path.join(base_output_dir, "middle.json")) - assert r.st_size > 200000 - - r = os.stat(os.path.join(base_output_dir, "model.json")) - assert r.st_size > 15000 - - r = os.stat(os.path.join(base_output_dir, "origin.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "layout.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "spans.pdf")) - assert r.st_size > 500000 - - assert os.path.exists(os.path.join(base_output_dir, "images")) is True - assert os.path.isdir(os.path.join(base_output_dir, "images")) is True - assert os.path.exists(os.path.join(base_output_dir, "content_list.json")) is False - - base_output_dir = os.path.join(temp_output_dir, "cli_test_02/auto") - filename = "cli_test_02" - - r = os.stat(os.path.join(base_output_dir, f"{filename}.md")) - assert r.st_size > 5000 - - r = os.stat(os.path.join(base_output_dir, "middle.json")) - assert r.st_size > 200000 - - r = os.stat(os.path.join(base_output_dir, "model.json")) - assert r.st_size > 15000 - - r = os.stat(os.path.join(base_output_dir, "origin.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "layout.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "spans.pdf")) - assert r.st_size > 500000 - - assert os.path.exists(os.path.join(base_output_dir, "images")) is True - assert os.path.isdir(os.path.join(base_output_dir, "images")) is True - assert os.path.exists(os.path.join(base_output_dir, "content_list.json")) is False - - # teardown - shutil.rmtree(temp_output_dir) diff --git a/tests/test_tools/test_cli_dev.py b/tests/test_tools/test_cli_dev.py deleted file mode 100644 index 56470237d..000000000 --- a/tests/test_tools/test_cli_dev.py +++ /dev/null @@ -1,120 +0,0 @@ -import tempfile -import os -import shutil -from click.testing import CliRunner - -from magic_pdf.tools import cli_dev - - -def test_cli_pdf(): - # setup - unitest_dir = "/tmp/magic_pdf/unittest/tools" - filename = "cli_test_01" - os.makedirs(unitest_dir, exist_ok=True) - temp_output_dir = tempfile.mkdtemp(dir="/tmp/magic_pdf/unittest/tools") - - # run - runner = CliRunner() - result = runner.invoke( - cli_dev.cli, - [ - "pdf", - "-p", - "tests/test_tools/assets/cli/pdf/cli_test_01.pdf", - "-j", - "tests/test_tools/assets/cli_dev/cli_test_01.model.json", - "-o", - temp_output_dir, - ], - ) - - # check - assert result.exit_code == 0 - - base_output_dir = os.path.join(temp_output_dir, "cli_test_01/auto") - - r = os.stat(os.path.join(base_output_dir, "content_list.json")) - assert r.st_size > 5000 - - r = os.stat(os.path.join(base_output_dir, f"{filename}.md")) - assert r.st_size > 7000 - - r = os.stat(os.path.join(base_output_dir, "middle.json")) - assert r.st_size > 200000 - - r = os.stat(os.path.join(base_output_dir, "model.json")) - assert r.st_size > 15000 - - r = os.stat(os.path.join(base_output_dir, "origin.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "layout.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "spans.pdf")) - assert r.st_size > 500000 - - assert os.path.exists(os.path.join(base_output_dir, "images")) is True - assert os.path.isdir(os.path.join(base_output_dir, "images")) is True - - # teardown - shutil.rmtree(temp_output_dir) - - -def test_cli_jsonl(): - # setup - unitest_dir = "/tmp/magic_pdf/unittest/tools" - filename = "cli_test_01" - os.makedirs(unitest_dir, exist_ok=True) - temp_output_dir = tempfile.mkdtemp(dir="/tmp/magic_pdf/unittest/tools") - - def mock_read_s3_path(s3path): - with open(s3path, "rb") as f: - return f.read() - - cli_dev.read_s3_path = mock_read_s3_path # mock - - # run - runner = CliRunner() - result = runner.invoke( - cli_dev.cli, - [ - "jsonl", - "-j", - "tests/test_tools/assets/cli_dev/cli_test_01.jsonl", - "-o", - temp_output_dir, - ], - ) - - # check - assert result.exit_code == 0 - - base_output_dir = os.path.join(temp_output_dir, "cli_test_01/auto") - - r = os.stat(os.path.join(base_output_dir, "content_list.json")) - assert r.st_size > 5000 - - r = os.stat(os.path.join(base_output_dir, f"{filename}.md")) - assert r.st_size > 7000 - - r = os.stat(os.path.join(base_output_dir, "middle.json")) - assert r.st_size > 200000 - - r = os.stat(os.path.join(base_output_dir, "model.json")) - assert r.st_size > 15000 - - r = os.stat(os.path.join(base_output_dir, "origin.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "layout.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "spans.pdf")) - assert r.st_size > 500000 - - assert os.path.exists(os.path.join(base_output_dir, "images")) is True - assert os.path.isdir(os.path.join(base_output_dir, "images")) is True - - # teardown - shutil.rmtree(temp_output_dir) diff --git a/tests/test_tools/test_common.py b/tests/test_tools/test_common.py deleted file mode 100644 index 60105efac..000000000 --- a/tests/test_tools/test_common.py +++ /dev/null @@ -1,57 +0,0 @@ -import tempfile -import os -import shutil - -import pytest - -from magic_pdf.tools.common import do_parse - - -@pytest.mark.parametrize("method", ["auto", "txt", "ocr"]) -def test_common_do_parse(method): - # setup - unitest_dir = "/tmp/magic_pdf/unittest/tools" - filename = "fake" - os.makedirs(unitest_dir, exist_ok=True) - - temp_output_dir = tempfile.mkdtemp(dir="/tmp/magic_pdf/unittest/tools") - - # run - with open("tests/test_tools/assets/common/cli_test_01.pdf", "rb") as f: - bits = f.read() - do_parse(temp_output_dir, - filename, - bits, [], - method, - False, - f_dump_content_list=True) - - # check - base_output_dir = os.path.join(temp_output_dir, f"fake/{method}") - - r = os.stat(os.path.join(base_output_dir, "content_list.json")) - assert r.st_size > 5000 - - r = os.stat(os.path.join(base_output_dir, f"{filename}.md")) - assert r.st_size > 7000 - - r = os.stat(os.path.join(base_output_dir, "middle.json")) - assert r.st_size > 200000 - - r = os.stat(os.path.join(base_output_dir, "model.json")) - assert r.st_size > 15000 - - r = os.stat(os.path.join(base_output_dir, "origin.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "layout.pdf")) - assert r.st_size > 500000 - - r = os.stat(os.path.join(base_output_dir, "spans.pdf")) - assert r.st_size > 500000 - - os.path.exists(os.path.join(base_output_dir, "images")) - os.path.isdir(os.path.join(base_output_dir, "images")) - - # teardown - shutil.rmtree(temp_output_dir) diff --git a/tests/unittest/pdfs/test.pdf b/tests/unittest/pdfs/test.pdf new file mode 100644 index 000000000..009632f69 Binary files /dev/null and b/tests/unittest/pdfs/test.pdf differ diff --git a/tests/unittest/test_e2e.py b/tests/unittest/test_e2e.py new file mode 100644 index 000000000..cb7cb2064 --- /dev/null +++ b/tests/unittest/test_e2e.py @@ -0,0 +1,220 @@ +# Copyright (c) Opendatalab. All rights reserved. +import json +import os +from pathlib import Path +from loguru import logger +from bs4 import BeautifulSoup +from fuzzywuzzy import fuzz +from mineru.cli.common import ( + convert_pdf_bytes_to_bytes, + prepare_env, + read_fn, +) +from mineru.data.data_reader_writer import FileBasedDataWriter +from mineru.utils.enum_class import MakeMode +from mineru.backend.pipeline.pipeline_analyze import ( + doc_analyze_streaming as pipeline_doc_analyze_streaming, +) +from mineru.backend.pipeline.pipeline_middle_json_mkcontent import ( + union_make as pipeline_union_make, +) + + +def test_pipeline_with_two_config(): + __dir__ = os.path.dirname(os.path.abspath(__file__)) + pdf_files_dir = os.path.join(__dir__, "pdfs") + output_dir = os.path.join(__dir__, "output") + pdf_suffixes = [".pdf"] + image_suffixes = [".png", ".jpeg", ".jpg"] + + doc_path_list = [] + for doc_path in Path(pdf_files_dir).glob("*"): + if doc_path.suffix in pdf_suffixes + image_suffixes: + doc_path_list.append(doc_path) + + # os.environ["MINERU_MODEL_SOURCE"] = "modelscope" + + pdf_file_names = [] + pdf_bytes_list = [] + p_lang_list = [] + for path in doc_path_list: + file_name = str(Path(path).stem) + pdf_bytes = read_fn(path) + pdf_file_names.append(file_name) + pdf_bytes_list.append(pdf_bytes) + p_lang_list.append("en") + for idx, pdf_bytes in enumerate(pdf_bytes_list): + new_pdf_bytes = convert_pdf_bytes_to_bytes(pdf_bytes) + pdf_bytes_list[idx] = new_pdf_bytes + + run_pipeline_parse( + pdf_file_names, + pdf_bytes_list, + p_lang_list, + output_dir, + parse_method="txt", + ) + res_json_path = ( + Path(__file__).parent / "output" / "test" / "txt" / "test_content_list.json" + ).as_posix() + assert_content(res_json_path, parse_method="txt") + run_pipeline_parse( + pdf_file_names, + pdf_bytes_list, + p_lang_list, + output_dir, + parse_method="ocr", + ) + res_json_path = ( + Path(__file__).parent / "output" / "test" / "ocr" / "test_content_list.json" + ).as_posix() + assert_content(res_json_path, parse_method="ocr") + + +def run_pipeline_parse( + pdf_file_names, + pdf_bytes_list, + p_lang_list, + output_dir, + parse_method, +): + image_writer_list = [] + output_info = [] + for pdf_file_name in pdf_file_names: + local_image_dir, local_md_dir = prepare_env(output_dir, pdf_file_name, parse_method) + image_writer_list.append(FileBasedDataWriter(local_image_dir)) + output_info.append((pdf_file_name, local_image_dir, local_md_dir)) + + def on_doc_ready(doc_index, model_list, middle_json, ocr_enable): + del ocr_enable + pdf_file_name, local_image_dir, local_md_dir = output_info[doc_index] + write_infer_result( + pdf_file_name, + local_image_dir, + local_md_dir, + middle_json, + model_list, + ) + + pipeline_doc_analyze_streaming( + pdf_bytes_list, + image_writer_list, + p_lang_list, + on_doc_ready, + parse_method=parse_method, + ) + + +def write_infer_result( + pdf_file_name, + local_image_dir, + local_md_dir, + middle_json, + model_list, +): + md_writer = FileBasedDataWriter(local_md_dir) + pdf_info = middle_json["pdf_info"] + image_dir = str(os.path.basename(local_image_dir)) + + md_content_str = pipeline_union_make(pdf_info, MakeMode.MM_MD, image_dir) + md_writer.write_string( + f"{pdf_file_name}.md", + md_content_str, + ) + + content_list = pipeline_union_make(pdf_info, MakeMode.CONTENT_LIST, image_dir) + md_writer.write_string( + f"{pdf_file_name}_content_list.json", + json.dumps(content_list, ensure_ascii=False, indent=4), + ) + + md_writer.write_string( + f"{pdf_file_name}_middle.json", + json.dumps(middle_json, ensure_ascii=False, indent=4), + ) + + md_writer.write_string( + f"{pdf_file_name}_model.json", + json.dumps(model_list, ensure_ascii=False, indent=4), + ) + + logger.info(f"local output dir is {local_md_dir}") + + +def validate_html(html_content): + try: + soup = BeautifulSoup(html_content, "html.parser") + return True + except Exception as e: + return False + + +def assert_content(content_path, parse_method="txt"): + content_list = [] + with open(content_path, "r", encoding="utf-8") as file: + content_list = json.load(file) + logger.info(content_list) + type_set = set() + for content_dict in content_list: + match content_dict["type"]: + # 图片校验,只校验 Caption + case "image": + type_set.add("image") + assert ( + fuzz.ratio( + content_dict["image_caption"][0], + "Figure 1: Figure Caption", + ) + > 90 + ) + # 表格校验,校验 Caption,表格格式和表格内容 + case "table": + type_set.add("table") + assert ( + fuzz.ratio( + content_dict["table_caption"][0], + "Table 1: Table Caption", + ) + > 90 + ) + assert validate_html(content_dict["table_body"]) + target_str_list = [ + "Model", + "Testing", + "Error", + "Linear", + "Regression", + "0.98740", + "1321.2", + "Gray", + "Prediction", + "0.00617", + "687", + ] + correct_count = 0 + for target_str in target_str_list: + if target_str in content_dict["table_body"]: + correct_count += 1 + if parse_method == "txt" or parse_method == "ocr": + assert correct_count > 0.9 * len(target_str_list) + elif parse_method == "vlm": + assert correct_count > 0.7 * len(target_str_list) + else: + assert False + # 公式校验,检测是否含有公式元素 + case "equation": + type_set.add("equation") + target_str_list = ["$$", "lambda", "frac", "bar"] + for target_str in target_str_list: + assert target_str in content_dict["text"] + # 文本校验,文本相似度超过90 + case "text": + type_set.add("text") + assert ( + fuzz.ratio( + content_dict["text"], + "Trump graduated from the Wharton School of the University of Pennsylvania with a bachelor's degree in 1968. He became president of his father's real estate business in 1971 and renamed it The Trump Organization.", + ) + > 90 + ) + assert len(type_set) >= 4 diff --git a/tests/unittest/test_table/assets/table.jpg b/tests/unittest/test_table/assets/table.jpg deleted file mode 100644 index 95fdf84d9..000000000 Binary files a/tests/unittest/test_table/assets/table.jpg and /dev/null differ diff --git a/tests/unittest/test_table/test_tablemaster.py b/tests/unittest/test_table/test_tablemaster.py deleted file mode 100644 index ac68732ba..000000000 --- a/tests/unittest/test_table/test_tablemaster.py +++ /dev/null @@ -1,14 +0,0 @@ -import pytest -from PIL import Image -from magic_pdf.model.ppTableModel import ppTableModel - -class TestppTableModel: - def test_image2html(self): - img = Image.open("tests/unittest/test_table/assets/table.jpg") - # 修改table模型路径 - config = {"device": "cuda", - "model_dir": "/home/quyuan/.cache/modelscope/hub/opendatalab/PDF-Extract-Kit/models/TabRec/TableMaster"} - table_model = ppTableModel(config) - res = table_model.img2html(img) - true_value = """
    MethodsRPFFPS
    SegLink[26]70.086.077.08.9
    PixelLink[4]73.283.077.8
    TextSnake [18]73.983.278.31.1
    TextField [37]75.987.481.35.2
    MSR[38]76.787.481.7-
    FTSN [3]77.187.682.0-
    LSE[30]81.784.282.9-
    CRAFT [2]78.288.282.98.6
    MCN[16]798883-
    ATRR[35]82.185.283.6
    PAN [34]83.884.484.130.2
    DB[12]79.291.584.932.0
    DRRG [41]82.3088.0585.08
    Ours (SynText)80.6885.4082.9712.68
    Ours (MLT-17)84.5486.62
    \n""" - assert res == true_value diff --git a/tests/unittest/test_unit.py b/tests/unittest/test_unit.py deleted file mode 100644 index 37e6af5cb..000000000 --- a/tests/unittest/test_unit.py +++ /dev/null @@ -1,542 +0,0 @@ -import os - -import pytest - -from magic_pdf.libs.boxbase import (__is_overlaps_y_exceeds_threshold, - _is_bottom_full_overlap, _is_in, - _is_in_or_part_overlap, - _is_in_or_part_overlap_with_area_ratio, - _is_left_overlap, _is_part_overlap, - _is_vertical_full_overlap, _left_intersect, - _right_intersect, bbox_distance, - bbox_relative_pos, calculate_iou, - calculate_overlap_area_2_minbox_area_ratio, - calculate_overlap_area_in_bbox1_area_ratio, - find_bottom_nearest_text_bbox, - find_left_nearest_text_bbox, - find_right_nearest_text_bbox, - find_top_nearest_text_bbox, - get_bbox_in_boundary, - get_minbox_if_overlap_by_ratio) -from magic_pdf.libs.commons import get_top_percent_list, join_path, mymax -from magic_pdf.libs.config_reader import get_s3_config -from magic_pdf.libs.path_utils import parse_s3path - - -# 输入一个列表,如果列表空返回0,否则返回最大元素 -@pytest.mark.parametrize('list_input, target_num', - [ - ([0, 0, 0, 0], 0), - ([0], 0), - ([1, 2, 5, 8, 4], 8), - ([], 0), - ([1.1, 7.6, 1.009, 9.9], 9.9), - ([1.0 * 10 ** 2, 3.5 * 10 ** 3, 0.9 * 10 ** 6], 0.9 * 10 ** 6), - ]) -def test_list_max(list_input: list, target_num) -> None: - """ - list_input: 输入列表元素,元素均为数字类型 - """ - assert target_num == mymax(list_input) - - -# 连接多个参数生成路径信息,使用"/"作为连接符,生成的结果需要是一个合法路径 -@pytest.mark.parametrize('path_input, target_path', [ - (['https:', '', 'www.baidu.com'], 'https://www.baidu.com'), - (['https:', 'www.baidu.com'], 'https:/www.baidu.com'), - (['D:', 'file', 'pythonProject', 'demo' + '.py'], 'D:/file/pythonProject/demo.py'), -]) -def test_join_path(path_input: list, target_path: str) -> None: - """ - path_input: 输入path的列表,列表元素均为字符串 - """ - assert target_path == join_path(*path_input) - - -# 获取列表中前百分之多少的元素 -@pytest.mark.parametrize('num_list, percent, target_num_list', [ - ([], 0.75, []), - ([-5, -10, 9, 3, 7, -7, 0, 23, -1, -11], 0.8, [23, 9, 7, 3, 0, -1, -5, -7]), - ([-5, -10, 9, 3, 7, -7, 0, 23, -1, -11], 0, []), - ([-5, -10, 9, 3, 7, -7, 0, 23, -1, -11, 28], 0.8, [28, 23, 9, 7, 3, 0, -1, -5]) -]) -def test_get_top_percent_list(num_list: list, percent: float, target_num_list: list) -> None: - """ - num_list: 数字列表,列表元素为数字 - percent: 占比,float, 向下取证 - """ - assert target_num_list == get_top_percent_list(num_list, percent) - - -# 输入一个s3路径,返回bucket名字和其余部分(key) -@pytest.mark.parametrize('s3_path, target_data', [ - ('s3://bucket/path/to/my/file.txt', 'bucket'), - ('s3a://bucket1/path/to/my/file2.txt', 'bucket1'), - # ("/path/to/my/file1.txt", "path"), - # ("bucket/path/to/my/file2.txt", "bucket"), -]) -def test_parse_s3path(s3_path: str, target_data: str): - """ - s3_path: s3路径 - 如果为无效路径,则返回对应的bucket名字和其余部分 - 如果为异常路径 例如:file2.txt,则报异常 - """ - bucket_name, key = parse_s3path(s3_path) - assert target_data == bucket_name - - -# 2个box是否处于包含或者部分重合关系。 -# 如果某边界重合算重合。 -# 部分边界重合,其他在内部也算包含 -@pytest.mark.parametrize('box1, box2, target_bool', [ - ((120, 133, 223, 248), (128, 168, 269, 295), True), - ((137, 53, 245, 157), (134, 11, 200, 147), True), # 部分重合 - ((137, 56, 211, 116), (140, 66, 202, 199), True), # 部分重合 - ((42, 34, 69, 65), (42, 34, 69, 65), True), # 部分重合 - ((39, 63, 87, 106), (37, 66, 85, 109), True), # 部分重合 - ((13, 37, 55, 66), (7, 46, 49, 75), True), # 部分重合 - ((56, 83, 85, 104), (64, 85, 93, 106), True), # 部分重合 - ((12, 53, 48, 94), (14, 53, 50, 94), True), # 部分重合 - ((43, 54, 93, 131), (55, 82, 77, 106), True), # 包含 - ((63, 2, 134, 71), (72, 43, 104, 78), True), # 包含 - ((25, 57, 109, 127), (26, 73, 49, 95), True), # 包含 - ((24, 47, 111, 115), (34, 81, 58, 106), True), # 包含 - ((34, 8, 105, 83), (76, 20, 116, 45), True), # 包含 -]) -def test_is_in_or_part_overlap(box1: tuple, box2: tuple, target_bool: bool) -> None: - """ - box1: 坐标数组 - box2: 坐标数组 - """ - assert target_bool == _is_in_or_part_overlap(box1, box2) - - -# 如果box1在box2内部,返回True -# 如果是部分重合的,则重合面积占box1的比例大于阈值时候返回True -@pytest.mark.parametrize('box1, box2, target_bool', [ - ((35, 28, 108, 90), (47, 60, 83, 96), False), # 包含 box1 up box2, box2 多半,box1少半 - ((65, 151, 92, 177), (49, 99, 105, 198), True), # 包含 box1 in box2 - ((80, 62, 112, 84), (74, 40, 144, 111), True), # 包含 box1 in box2 - ((65, 88, 127, 144), (92, 102, 131, 139), False), # 包含 box2 多半,box1约一半 - ((92, 102, 131, 139), (65, 88, 127, 144), True), # 包含 box1 多半 - ((100, 93, 199, 168), (169, 126, 198, 165), False), # 包含 box2 in box1 - ((26, 75, 106, 172), (65, 108, 90, 128), False), # 包含 box2 in box1 - ((28, 90, 77, 126), (35, 84, 84, 120), True), # 相交 box1多半,box2多半 - ((37, 6, 69, 52), (28, 3, 60, 49), True), # 相交 box1多半,box2多半 - ((94, 29, 133, 60), (84, 30, 123, 61), True), # 相交 box1多半,box2多半 -]) -def test_is_in_or_part_overlap_with_area_ratio(box1: tuple, box2: tuple, target_bool: bool) -> None: - out_bool = _is_in_or_part_overlap_with_area_ratio(box1, box2) - assert target_bool == out_bool - - -# box1在box2内部或者box2在box1内部返回True。如果部分边界重合也算作包含。 -@pytest.mark.parametrize('box1, box2, target_bool', [ - # ((), (), "Error"), # Error - ((65, 151, 92, 177), (49, 99, 105, 198), True), # 包含 box1 in box2 - ((80, 62, 112, 84), (74, 40, 144, 111), True), # 包含 box1 in box2 - ((76, 140, 154, 277), (121, 326, 192, 384), False), # 分离 - ((65, 88, 127, 144), (92, 102, 131, 139), False), # 包含 box2 多半,box1约一半 - ((92, 102, 131, 139), (65, 88, 127, 144), False), # 包含 box1 多半 - ((68, 94, 118, 120), (68, 90, 118, 122), True), # 包含,box1 in box2 两边x相切 - ((69, 94, 118, 120), (68, 90, 118, 122), True), # 包含,box1 in box2 一边x相切 - ((69, 114, 118, 122), (68, 90, 118, 122), True), # 包含,box1 in box2 一边y相切 - # ((100, 93, 199, 168), (169, 126, 198, 165), True), # 包含 box2 in box1 Error - # ((26, 75, 106, 172), (65, 108, 90, 128), True), # 包含 box2 in box1 Error - # ((38, 94, 122, 120), (68, 94, 118, 120), True), # 包含,box2 in box1 两边y相切 Error - # ((68, 34, 118, 158), (68, 94, 118, 120), True), # 包含,box2 in box1 两边x相切 Error - # ((68, 34, 118, 158), (68, 94, 84, 120), True), # 包含,box2 in box1 一边x相切 Error - # ((27, 94, 118, 158), (68, 94, 84, 120), True), # 包含,box2 in box1 一边y相切 Error -]) -def test_is_in(box1: tuple, box2: tuple, target_bool: bool) -> None: - assert target_bool == _is_in(box1, box2) - - -# 仅仅是部分包含关系,返回True,如果是完全包含关系则返回False -@pytest.mark.parametrize('box1, box2, target_bool', [ - ((65, 151, 92, 177), (49, 99, 105, 198), False), # 包含 box1 in box2 - ((80, 62, 112, 84), (74, 40, 144, 111), False), # 包含 box1 in box2 - # ((76, 140, 154, 277), (121, 326, 192, 384), False), # 分离 Error - ((76, 140, 154, 277), (121, 277, 192, 384), True), # 外相切 - ((65, 88, 127, 144), (92, 102, 131, 139), True), # 包含 box2 多半,box1约一半 - ((92, 102, 131, 139), (65, 88, 127, 144), True), # 包含 box1 多半 - ((68, 94, 118, 120), (68, 90, 118, 122), False), # 包含,box1 in box2 两边x相切 - ((69, 94, 118, 120), (68, 90, 118, 122), False), # 包含,box1 in box2 一边x相切 - ((69, 114, 118, 122), (68, 90, 118, 122), False), # 包含,box1 in box2 一边y相切 - # ((26, 75, 106, 172), (65, 108, 90, 128), False), # 包含 box2 in box1 Error - # ((38, 94, 122, 120), (68, 94, 118, 120), False), # 包含,box2 in box1 两边y相切 Error - # ((68, 34, 118, 158), (68, 94, 84, 120), False), # 包含,box2 in box1 一边x相切 Error - -]) -def test_is_part_overlap(box1: tuple, box2: tuple, target_bool: bool) -> None: - assert target_bool == _is_part_overlap(box1, box2) - - -# left_box右侧是否和right_box左侧有部分重叠 -@pytest.mark.parametrize('box1, box2, target_bool', [ - (None, None, False), - ((88, 81, 222, 173), (60, 221, 123, 358), False), # 分离 - ((121, 149, 184, 289), (172, 130, 230, 268), True), # box1 left bottom box2 相交 - ((172, 130, 230, 268), (121, 149, 184, 289), False), # box2 left bottom box1 相交 - ((109, 68, 182, 146), (215, 188, 277, 253), False), # box1 top left box2 分离 - ((117, 53, 222, 176), (174, 142, 298, 276), True), # box1 left top box2 相交 - ((174, 142, 298, 276), (117, 53, 222, 176), False), # box2 left top box1 相交 - ((65, 88, 127, 144), (92, 102, 131, 139), True), # box1 left box2 y:box2 in box1 - ((92, 102, 131, 139), (65, 88, 127, 144), False), # box2 left box1 y:box1 in box2 - ((182, 130, 230, 268), (121, 149, 174, 289), False), # box2 left box1 分离 - ((1, 10, 26, 45), (3, 4, 20, 39), True), # box1 bottom box2 x:box2 in box1 -]) -def test_left_intersect(box1: tuple, box2: tuple, target_bool: bool) -> None: - assert target_bool == _left_intersect(box1, box2) - - -# left_box左侧是否和right_box右侧部分重叠 -@pytest.mark.parametrize('box1, box2, target_bool', [ - (None, None, False), - ((88, 81, 222, 173), (60, 221, 123, 358), False), # 分离 - ((121, 149, 184, 289), (172, 130, 230, 268), False), # box1 left bottom box2 相交 - ((172, 130, 230, 268), (121, 149, 184, 289), True), # box2 left bottom box1 相交 - ((109, 68, 182, 146), (215, 188, 277, 253), False), # box1 top left box2 分离 - ((117, 53, 222, 176), (174, 142, 298, 276), False), # box1 left top box2 相交 - ((174, 142, 298, 276), (117, 53, 222, 176), True), # box2 left top box1 相交 - ((65, 88, 127, 144), (92, 102, 131, 139), False), # box1 left box2 y:box2 in box1 - # ((92, 102, 131, 139), (65, 88, 127, 144), True), # box2 left box1 y:box1 in box2 Error - ((182, 130, 230, 268), (121, 149, 174, 289), False), # box2 left box1 分离 - # ((1, 10, 26, 45), (3, 4, 20, 39), False), # box1 bottom box2 x:box2 in box1 Error -]) -def test_right_intersect(box1: tuple, box2: tuple, target_bool: bool) -> None: - assert target_bool == _right_intersect(box1, box2) - - -# x方向上:要么box1包含box2, 要么box2包含box1。不能部分包含 -# y方向上:box1和box2有重叠 -@pytest.mark.parametrize('box1, box2, target_bool', [ - # (None, None, False), # Error - ((35, 28, 108, 90), (47, 60, 83, 96), True), # box1 top box2, x:box2 in box1, y:有重叠 - ((35, 28, 98, 90), (27, 60, 103, 96), True), # box1 top box2, x:box1 in box2, y:有重叠 - ((57, 77, 130, 210), (59, 219, 119, 293), False), # box1 top box2, x: box2 in box1, y:无重叠 - ((47, 60, 83, 96), (35, 28, 108, 90), True), # box2 top box1, x:box1 in box2, y:有重叠 - ((27, 60, 103, 96), (35, 28, 98, 90), True), # box2 top box1, x:box2 in box1, y:有重叠 - ((59, 219, 119, 293), (57, 77, 130, 210), False), # box2 top box1, x: box1 in box2, y:无重叠 - ((35, 28, 55, 90), (57, 60, 83, 96), False), # box1 top box2, x:无重叠, y:有重叠 - ((47, 60, 63, 96), (65, 28, 108, 90), False), # box2 top box1, x:无重叠, y:有重叠 -]) -def test_is_vertical_full_overlap(box1: tuple, box2: tuple, target_bool: bool) -> None: - assert target_bool == _is_vertical_full_overlap(box1, box2) - - -# 检查box1下方和box2的上方有轻微的重叠,轻微程度收到y_tolerance的限制 -@pytest.mark.parametrize('box1, box2, target_bool', [ - (None, None, False), - ((35, 28, 108, 90), (47, 89, 83, 116), True), # box1 top box2, y:有重叠 - ((35, 28, 108, 90), (47, 60, 83, 96), False), # box1 top box2, y:有重叠且过多 - ((57, 77, 130, 210), (59, 219, 119, 293), False), # box1 top box2, y:无重叠 - ((47, 60, 83, 96), (35, 28, 108, 90), False), # box2 top box1, y:有重叠且过多 - ((27, 89, 103, 116), (35, 28, 98, 90), False), # box2 top box1, y:有重叠 - ((59, 219, 119, 293), (57, 77, 130, 210), False), # box2 top box1, y:无重叠 -]) -def test_is_bottom_full_overlap(box1: tuple, box2: tuple, target_bool: bool) -> None: - assert target_bool == _is_bottom_full_overlap(box1, box2) - - -# 检查box1的左侧是否和box2有重叠 -@pytest.mark.parametrize('box1, box2, target_bool', [ - (None, None, False), - ((88, 81, 222, 173), (60, 221, 123, 358), False), # 分离 - # ((121, 149, 184, 289), (172, 130, 230, 268), False), # box1 left bottom box2 相交 Error - # ((172, 130, 230, 268), (121, 149, 184, 289), True), # box2 left bottom box1 相交 Error - ((109, 68, 182, 146), (215, 188, 277, 253), False), # box1 top left box2 分离 - ((117, 53, 222, 176), (174, 142, 298, 276), False), # box1 left top box2 相交 - # ((174, 142, 298, 276), (117, 53, 222, 176), True), # box2 left top box1 相交 Error - # ((65, 88, 127, 144), (92, 102, 131, 139), False), # box1 left box2 y:box2 in box1 Error - ((1, 10, 26, 45), (3, 4, 20, 39), True), # box1 middle bottom box2 x:box2 in box1 - -]) -def test_is_left_overlap(box1: tuple, box2: tuple, target_bool: bool) -> None: - assert target_bool == _is_left_overlap(box1, box2) - - -# 查两个bbox在y轴上是否有重叠,并且该重叠区域的高度占两个bbox高度更低的那个超过阈值 -@pytest.mark.parametrize('box1, box2, target_bool', [ - # (None, None, "Error"), # Error - ((51, 69, 192, 147), (75, 48, 132, 187), True), # y: box1 in box2 - ((51, 39, 192, 197), (75, 48, 132, 187), True), # y: box2 in box1 - ((88, 81, 222, 173), (60, 221, 123, 358), False), # y: box1 top box2 - ((109, 68, 182, 196), (215, 188, 277, 253), False), # y: box1 top box2 little - ((109, 68, 182, 196), (215, 78, 277, 253), True), # y: box1 top box2 more - ((109, 68, 182, 196), (215, 138, 277, 213), False), # y: box1 top box2 more but lower overlap_ratio_threshold - ((109, 68, 182, 196), (215, 138, 277, 203), True), # y: box1 top box2 more and more overlap_ratio_threshold -]) -def test_is_overlaps_y_exceeds_threshold(box1: tuple, box2: tuple, target_bool: bool) -> None: - assert target_bool == __is_overlaps_y_exceeds_threshold(box1, box2) - - -# Determine the coordinates of the intersection rectangle -@pytest.mark.parametrize('box1, box2, target_num', [ - # (None, None, "Error"), # Error - ((88, 81, 222, 173), (60, 221, 123, 358), 0.0), # 分离 - ((76, 140, 154, 277), (121, 326, 192, 384), 0.0), # 分离 - ((142, 109, 238, 164), (134, 211, 224, 270), 0.0), # 分离 - ((109, 68, 182, 196), (175, 138, 277, 213), 0.024475524475524476), # 相交 - ((56, 90, 170, 219), (103, 212, 171, 304), 0.02288586346557361), # 相交 - ((109, 126, 204, 245), (130, 127, 232, 186), 0.33696071621517326), # 相交 - ((109, 126, 204, 245), (110, 127, 232, 206), 0.5493822593770807), # 相交 - ((76, 140, 154, 277), (121, 277, 192, 384), 0.0) # 相切 -]) -def test_calculate_iou(box1: tuple, box2: tuple, target_num: float) -> None: - assert target_num == calculate_iou(box1, box2) - - -# 计算box1和box2的重叠面积占最小面积的box的比例 -@pytest.mark.parametrize('box1, box2, target_num', [ - # (None, None, "Error"), # Error - ((142, 109, 238, 164), (134, 211, 224, 270), 0.0), # 分离 - ((88, 81, 222, 173), (60, 221, 123, 358), 0.0), # 分离 - ((76, 140, 154, 277), (121, 326, 192, 384), 0.0), # 分离 - ((76, 140, 154, 277), (121, 277, 192, 384), 0.0), # 相切 - ((109, 126, 204, 245), (110, 127, 232, 206), 0.7704918032786885), # 相交 - ((56, 90, 170, 219), (103, 212, 171, 304), 0.07496803069053709), # 相交 - ((121, 149, 184, 289), (172, 130, 230, 268), 0.17841079460269865), # 相交 - ((51, 69, 192, 147), (75, 48, 132, 187), 0.5611510791366906), # 相交 - ((117, 53, 222, 176), (174, 142, 298, 276), 0.12636469221835075), # 相交 - ((102, 60, 233, 203), (70, 190, 220, 319), 0.08188757807078417), # 相交 - ((109, 126, 204, 245), (130, 127, 232, 186), 0.7254901960784313), # 相交 -]) -def test_calculate_overlap_area_2_minbox_area_ratio(box1: tuple, box2: tuple, target_num: float) -> None: - assert target_num == calculate_overlap_area_2_minbox_area_ratio(box1, box2) - - -# 计算box1和box2的重叠面积占bbox1的比例 -@pytest.mark.parametrize('box1, box2, target_num', [ - # (None, None, "Error"), # Error - ((142, 109, 238, 164), (134, 211, 224, 270), 0.0), # 分离 - ((88, 81, 222, 173), (60, 221, 123, 358), 0.0), # 分离 - ((76, 140, 154, 277), (121, 326, 192, 384), 0.0), # 分离 - ((76, 140, 154, 277), (121, 277, 192, 384), 0.0), # 相切 - ((142, 109, 238, 164), (134, 164, 224, 270), 0.0), # 相切 - ((109, 126, 204, 245), (110, 127, 232, 206), 0.6568774878372402), # 相交 - ((56, 90, 170, 219), (103, 212, 171, 304), 0.03189174486604107), # 相交 - ((121, 149, 184, 289), (172, 130, 230, 268), 0.1619047619047619), # 相交 - ((51, 69, 192, 147), (75, 48, 132, 187), 0.40425531914893614), # 相交 - ((117, 53, 222, 176), (174, 142, 298, 276), 0.12636469221835075), # 相交 - ((102, 60, 233, 203), (70, 190, 220, 319), 0.08188757807078417), # 相交 - ((109, 126, 204, 245), (130, 127, 232, 186), 0.38620079610791685), # 相交 -]) -def test_calculate_overlap_area_in_bbox1_area_ratio(box1: tuple, box2: tuple, target_num: float) -> None: - assert target_num == calculate_overlap_area_in_bbox1_area_ratio(box1, box2) - - -# 计算两个bbox重叠的面积占最小面积的box的比例,如果比例大于ratio,则返回小的那个bbox,否则返回None -@pytest.mark.parametrize('box1, box2, ratio, target_box', [ - # (None, None, 0.8, "Error"), # Error - ((142, 109, 238, 164), (134, 211, 224, 270), 0.0, None), # 分离 - ((109, 126, 204, 245), (110, 127, 232, 206), 0.5, (110, 127, 232, 206)), - ((56, 90, 170, 219), (103, 212, 171, 304), 0.5, None), - ((121, 149, 184, 289), (172, 130, 230, 268), 0.5, None), - ((51, 69, 192, 147), (75, 48, 132, 187), 0.5, (75, 48, 132, 187)), - ((117, 53, 222, 176), (174, 142, 298, 276), 0.5, None), - ((102, 60, 233, 203), (70, 190, 220, 319), 0.5, None), - ((109, 126, 204, 245), (130, 127, 232, 186), 0.5, (130, 127, 232, 186)), -]) -def test_get_minbox_if_overlap_by_ratio(box1: tuple, box2: tuple, ratio: float, target_box: list) -> None: - assert target_box == get_minbox_if_overlap_by_ratio(box1, box2, ratio) - - -# 根据boundry获取在这个范围内的所有的box的列表,完全包含关系 -@pytest.mark.parametrize('boxes, boundary, target_boxs', [ - # ([], (), "Error"), # Error - ([], (110, 340, 209, 387), []), - ([(142, 109, 238, 164)], (134, 211, 224, 270), []), # 分离 - ([(109, 126, 204, 245), (110, 127, 232, 206)], (105, 116, 258, 300), [(109, 126, 204, 245), (110, 127, 232, 206)]), - ([(109, 126, 204, 245), (110, 127, 232, 206)], (105, 116, 258, 230), [(110, 127, 232, 206)]), - ([(81, 280, 123, 315), (282, 203, 342, 247), (183, 100, 300, 155), (46, 99, 133, 148), (33, 156, 97, 211), - (137, 29, 287, 87)], (80, 90, 249, 200), []), - ([(81, 280, 123, 315), (282, 203, 342, 247), (183, 100, 300, 155), (46, 99, 133, 148), (33, 156, 97, 211), - (137, 29, 287, 87)], (30, 20, 349, 320), - [(81, 280, 123, 315), (282, 203, 342, 247), (183, 100, 300, 155), (46, 99, 133, 148), (33, 156, 97, 211), - (137, 29, 287, 87)]), - ([(81, 280, 123, 315), (282, 203, 342, 247), (183, 100, 300, 155), (46, 99, 133, 148), (33, 156, 97, 211), - (137, 29, 287, 87)], (30, 20, 200, 320), - [(81, 280, 123, 315), (46, 99, 133, 148), (33, 156, 97, 211)]), -]) -def test_get_bbox_in_boundary(boxes: list, boundary: tuple, target_boxs: list) -> None: - assert target_boxs == get_bbox_in_boundary(boxes, boundary) - - -# 寻找上方距离最近的box,margin 4个单位, x方向有重合,y方向最近的 -@pytest.mark.parametrize('pymu_blocks, obj_box, target_boxs', [ - ([{'bbox': (81, 280, 123, 315)}, {'bbox': (282, 203, 342, 247)}, {'bbox': (183, 100, 300, 155)}, - {'bbox': (46, 99, 133, 148)}, {'bbox': (33, 156, 97, 211)}, - {'bbox': (137, 29, 287, 87)}], (81, 280, 123, 315), {'bbox': (33, 156, 97, 211)}), - # ([{"bbox": (168, 120, 263, 159)}, - # {"bbox": (231, 61, 279, 159)}, - # {"bbox": (35, 85, 136, 110)}, - # {"bbox": (228, 193, 347, 225)}, - # {"bbox": (144, 264, 188, 323)}, - # {"bbox": (62, 37, 126, 64)}], (228, 193, 347, 225), - # [{"bbox": (168, 120, 263, 159)}, {"bbox": (231, 61, 279, 159)}]), # y:方向最近的有两个,x: 两个均有重合 Error - ([{'bbox': (35, 85, 136, 159)}, - {'bbox': (168, 120, 263, 159)}, - {'bbox': (231, 61, 279, 118)}, - {'bbox': (228, 193, 347, 225)}, - {'bbox': (144, 264, 188, 323)}, - {'bbox': (62, 37, 126, 64)}], (228, 193, 347, 225), - {'bbox': (168, 120, 263, 159)},), # y:方向最近的有两个,x:只有一个有重合 - ([{'bbox': (239, 115, 379, 167)}, - {'bbox': (33, 237, 104, 262)}, - {'bbox': (124, 288, 168, 325)}, - {'bbox': (242, 291, 379, 340)}, - {'bbox': (55, 117, 121, 154)}, - {'bbox': (266, 183, 384, 217)}, ], (124, 288, 168, 325), {'bbox': (55, 117, 121, 154)}), - ([{'bbox': (239, 115, 379, 167)}, - {'bbox': (33, 237, 104, 262)}, - {'bbox': (124, 288, 168, 325)}, - {'bbox': (242, 291, 379, 340)}, - {'bbox': (55, 117, 119, 154)}, - {'bbox': (266, 183, 384, 217)}, ], (124, 288, 168, 325), None), # x没有重合 - ([{'bbox': (80, 90, 249, 200)}, - {'bbox': (183, 100, 240, 155)}, ], (183, 100, 240, 155), None), # 包含 -]) -def test_find_top_nearest_text_bbox(pymu_blocks: list, obj_box: tuple, target_boxs: dict) -> None: - assert target_boxs == find_top_nearest_text_bbox(pymu_blocks, obj_box) - - -# 寻找下方距离自己最近的box, x方向有重合,y方向最近的 -@pytest.mark.parametrize('pymu_blocks, obj_box, target_boxs', [ - ([{'bbox': (165, 96, 300, 114)}, - {'bbox': (11, 157, 139, 201)}, - {'bbox': (124, 208, 265, 262)}, - {'bbox': (124, 283, 248, 306)}, - {'bbox': (39, 267, 84, 301)}, - {'bbox': (36, 89, 114, 145)}, ], (165, 96, 300, 114), {'bbox': (124, 208, 265, 262)}), - ([{'bbox': (187, 37, 303, 49)}, - {'bbox': (2, 227, 90, 283)}, - {'bbox': (158, 174, 200, 212)}, - {'bbox': (259, 174, 324, 228)}, - {'bbox': (205, 61, 316, 97)}, - {'bbox': (295, 248, 374, 287)}, ], (205, 61, 316, 97), {'bbox': (259, 174, 324, 228)}), # y有两个最近的, x只有一个重合 - # ([{"bbox": (187, 37, 303, 49)}, - # {"bbox": (2, 227, 90, 283)}, - # {"bbox": (259, 174, 324, 228)}, - # {"bbox": (205, 61, 316, 97)}, - # {"bbox": (295, 248, 374, 287)}, - # {"bbox": (158, 174, 209, 212)}, ], (205, 61, 316, 97), - # [{"bbox": (259, 174, 324, 228)}, {"bbox": (158, 174, 209, 212)}]), # x有重合,y有两个最近的 Error - ([{'bbox': (287, 132, 398, 191)}, - {'bbox': (44, 141, 163, 188)}, - {'bbox': (132, 191, 240, 241)}, - {'bbox': (81, 25, 142, 67)}, - {'bbox': (74, 297, 116, 314)}, - {'bbox': (77, 84, 224, 107)}, ], (287, 132, 398, 191), None), # x没有重合 - ([{'bbox': (80, 90, 249, 200)}, - {'bbox': (183, 100, 240, 155)}, ], (183, 100, 240, 155), None), # 包含 -]) -def test_find_bottom_nearest_text_bbox(pymu_blocks: list, obj_box: tuple, target_boxs: dict) -> None: - assert target_boxs == find_bottom_nearest_text_bbox(pymu_blocks, obj_box) - - -# 寻找左侧距离自己最近的box, y方向有重叠,x方向最近 -@pytest.mark.parametrize('pymu_blocks, obj_box, target_boxs', [ - ([{'bbox': (80, 90, 249, 200)}, {'bbox': (183, 100, 240, 155)}], (183, 100, 240, 155), None), # 包含 - ([{'bbox': (28, 90, 77, 126)}, {'bbox': (35, 84, 84, 120)}], (35, 84, 84, 120), None), # y:重叠,x:重叠大于2 - ([{'bbox': (28, 90, 77, 126)}, {'bbox': (75, 84, 134, 120)}], (75, 84, 134, 120), {'bbox': (28, 90, 77, 126)}), - # y:重叠,x:重叠小于等于2 - ([{'bbox': (239, 115, 379, 167)}, - {'bbox': (33, 237, 104, 262)}, - {'bbox': (124, 288, 168, 325)}, - {'bbox': (242, 291, 379, 340)}, - {'bbox': (55, 113, 161, 154)}, - {'bbox': (266, 123, 384, 217)}], (266, 123, 384, 217), {'bbox': (55, 113, 161, 154)}), # y重叠,x left - # ([{"bbox": (136, 219, 268, 240)}, - # {"bbox": (169, 115, 268, 181)}, - # {"bbox": (33, 237, 104, 262)}, - # {"bbox": (124, 288, 168, 325)}, - # {"bbox": (55, 117, 161, 154)}, - # {"bbox": (266, 183, 384, 217)}], (266, 183, 384, 217), - # [{"bbox": (136, 219, 267, 240)}, {"bbox": (169, 115, 267, 181)}]), # y有重叠,x重叠小于2或者在left Error -]) -def test_find_left_nearest_text_bbox(pymu_blocks: list, obj_box: tuple, target_boxs: dict) -> None: - assert target_boxs == find_left_nearest_text_bbox(pymu_blocks, obj_box) - - -# 寻找右侧距离自己最近的box, y方向有重叠,x方向最近 -@pytest.mark.parametrize('pymu_blocks, obj_box, target_boxs', [ - ([{'bbox': (80, 90, 249, 200)}, {'bbox': (183, 100, 240, 155)}], (183, 100, 240, 155), None), # 包含 - ([{'bbox': (28, 90, 77, 126)}, {'bbox': (35, 84, 84, 120)}], (28, 90, 77, 126), None), # y:重叠,x:重叠大于2 - ([{'bbox': (28, 90, 77, 126)}, {'bbox': (75, 84, 134, 120)}], (28, 90, 77, 126), {'bbox': (75, 84, 134, 120)}), - # y:重叠,x:重叠小于等于2 - ([{'bbox': (239, 115, 379, 167)}, - {'bbox': (33, 237, 104, 262)}, - {'bbox': (124, 288, 168, 325)}, - {'bbox': (242, 291, 379, 340)}, - {'bbox': (55, 113, 161, 154)}, - {'bbox': (266, 123, 384, 217)}], (55, 113, 161, 154), {'bbox': (239, 115, 379, 167)}), # y重叠,x right - # ([{"bbox": (169, 115, 298, 181)}, - # {"bbox": (169, 219, 268, 240)}, - # {"bbox": (33, 177, 104, 262)}, - # {"bbox": (124, 288, 168, 325)}, - # {"bbox": (55, 117, 161, 154)}, - # {"bbox": (266, 183, 384, 217)}], (33, 177, 104, 262), - # [{"bbox": (169, 115, 298, 181)}, {"bbox": (169, 219, 268, 240)}]), # y有重叠,x重叠小于2或者在right Error -]) -def test_find_right_nearest_text_bbox(pymu_blocks: list, obj_box: tuple, target_boxs: dict) -> None: - assert target_boxs == find_right_nearest_text_bbox(pymu_blocks, obj_box) - - -# 判断两个矩形框的相对位置关系 (left, right, bottom, top) -@pytest.mark.parametrize('box1, box2, target_box', [ - # (None, None, "Error"), # Error - ((80, 90, 249, 200), (183, 100, 240, 155), (False, False, False, False)), # 包含 - # ((124, 81, 222, 173), (60, 221, 123, 358), (False, True, False, True)), # 分离,右上 Error - ((142, 109, 238, 164), (134, 211, 224, 270), (False, False, False, True)), # 分离,上 - # ((51, 69, 192, 147), (205, 198, 282, 297), (True, False, False, True)), # 分离,左上 Error - # ((101, 149, 164, 289), (172, 130, 230, 268), (True, False, False, False)), # 分离,左 Error - # ((69, 196, 124, 285), (130, 127, 232, 186), (True, False, True, False)), # 分离,左下 Error - ((103, 212, 171, 304), (56, 90, 170, 209), (False, False, True, False)), # 分离,下 - # ((124, 367, 222, 415), (60, 221, 123, 358), (False, True, True, False)), # 分离,右下 Error - # ((172, 130, 230, 268), (101, 149, 164, 289), (False, True, False, False)), # 分离,右 Error -]) -def test_bbox_relative_pos(box1: tuple, box2: tuple, target_box: tuple) -> None: - assert target_box == bbox_relative_pos(box1, box2) - - -# 计算两个矩形框的距离 -""" -受bbox_relative_pos方法的影响,左右相反,这里计算结果全部受影响,在错误的基础上计算出了正确的结果 -""" - - -@pytest.mark.parametrize('box1, box2, target_num', [ - # (None, None, "Error"), # Error - ((80, 90, 249, 200), (183, 100, 240, 155), 0.0), # 包含 - ((142, 109, 238, 164), (134, 211, 224, 270), 47.0), # 分离,上 - ((103, 212, 171, 304), (56, 90, 170, 209), 3.0), # 分离,下 - ((101, 149, 164, 289), (172, 130, 230, 268), 8.0), # 分离,左 - ((172, 130, 230, 268), (101, 149, 164, 289), 8.0), # 分离,右 - ((80.3, 90.8, 249.0, 200.5), (183.8, 100.6, 240.2, 155.1), 0.0), # 包含 - ((142.3, 109.5, 238.9, 164.2), (134.4, 211.2, 224.8, 270.1), 47.0), # 分离,上 - ((103.5, 212.6, 171.1, 304.8), (56.1, 90.9, 170.6, 209.2), 3.4), # 分离,下 - ((101.1, 149.3, 164.9, 289.0), (172.1, 130.1, 230.5, 268.5), 7.2), # 分离,左 - ((172.1, 130.3, 230.1, 268.1), (101.2, 149.9, 164.3, 289.1), 7.8), # 分离,右 - ((124.3, 81.1, 222.5, 173.8), (60.3, 221.5, 123.0, 358.9), 47.717711596429254), # 分离,右上 - ((51.2, 69.31, 192.5, 147.9), (205.0, 198.1, 282.98, 297.09), 51.73287156151299), # 分离,左上 - ((124.3, 367.1, 222.9, 415.7), (60.9, 221.4, 123.2, 358.6), 8.570880934886448), # 分离,右下 - ((69.9, 196.2, 124.1, 285.7), (130.0, 127.3, 232.6, 186.1), 11.69700816448377), # 分离,左下 -]) -def test_bbox_distance(box1: tuple, box2: tuple, target_num: float) -> None: - assert target_num - bbox_distance(box1, box2) < 1 - - -@pytest.mark.skip(reason='skip') -# 根据bucket_name获取s3配置ak,sk,endpoint -def test_get_s3_config() -> None: - bucket_name = os.getenv('bucket_name') - target_data = os.getenv('target_data') - assert convert_string_to_list(target_data) == list(get_s3_config(bucket_name)) - - -def convert_string_to_list(s): - cleaned_s = s.strip("'") - items = cleaned_s.split(',') - cleaned_items = [item.strip() for item in items] - return cleaned_items diff --git a/update_version.py b/update_version.py index b51081625..eb8be946a 100644 --- a/update_version.py +++ b/update_version.py @@ -1,3 +1,4 @@ +# Copyright (c) Opendatalab. All rights reserved. import os import subprocess @@ -7,17 +8,17 @@ def get_version(): try: version = subprocess.check_output(command).decode().strip() version_parts = version.split("-") - if len(version_parts) > 1 and version_parts[0].startswith("magic_pdf"): + if len(version_parts) > 1 and version_parts[0].startswith("mineru"): return version_parts[1] else: - raise ValueError(f"Invalid version tag {version}. Expected format is magic_pdf--released.") + raise ValueError(f"Invalid version tag {version}. Expected format is mineru--released.") except Exception as e: print(e) return "0.0.0" def write_version_to_commons(version): - commons_path = os.path.join(os.path.dirname(__file__), 'magic_pdf', 'libs', 'version.py') + commons_path = os.path.join(os.path.dirname(__file__), 'mineru', 'version.py') with open(commons_path, 'w') as f: f.write(f'__version__ = "{version}"\n')